Parser: skip unit suffix when next ident is a comparison keyword (starts, ends, contains, matches, is, does, in, precedes, follows). Fixes "123 starts with '12'" returning "123starts" instead of true. eval-hs: use hs-compile directly instead of hs-to-sx-from-source with "return " prefix, which was causing the parser to consume the comparison as a string suffix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
13 lines
912 B
Plaintext
13 lines
912 B
Plaintext
;; Generic streamed content chunk — rendered once per yield from the
|
|
;; async generator. The :content expression receives different bindings
|
|
;; each time, and the _stream_id determines which ~shared:pages/suspense slot it fills.
|
|
(defcomp (&key (stream-label :as string) (stream-color :as string) (stream-message :as string) (stream-time :as string))
|
|
(let ((colors (get stream-colors stream-color)))
|
|
(div :class (str "rounded-lg border p-5 space-y-3 " (get colors "border") " " (get colors "bg"))
|
|
(div (~tw :tokens "flex items-center gap-2")
|
|
(div :class (str "w-3 h-3 rounded-full " (get colors "dot")))
|
|
(h2 :class (str "text-lg font-semibold " (get colors "title")) stream-label))
|
|
(p :class (get colors "text") stream-message)
|
|
(p :class (str "text-sm " (get colors "sub"))
|
|
"Resolved at: " (code :class (str "px-1 rounded " (get colors "code")) stream-time)))))
|