fancy-ui-svelte 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (889) hide show
  1. package/README.md +8 -102
  2. package/dist/fancy-ui/_internals/FieldConsumer.test.svelte +25 -0
  3. package/dist/fancy-ui/_internals/FieldConsumer.test.svelte.d.ts +18 -0
  4. package/dist/fancy-ui/_internals/FieldHarness.test.svelte +37 -0
  5. package/dist/fancy-ui/_internals/FieldHarness.test.svelte.d.ts +8 -0
  6. package/dist/fancy-ui/_internals/Markdown.svelte +227 -0
  7. package/dist/fancy-ui/_internals/Markdown.svelte.d.ts +24 -0
  8. package/dist/fancy-ui/_internals/MarkdownInline.svelte +56 -0
  9. package/dist/fancy-ui/_internals/MarkdownInline.svelte.d.ts +7 -0
  10. package/dist/fancy-ui/_internals/StreamText.svelte +64 -0
  11. package/dist/fancy-ui/_internals/StreamText.svelte.d.ts +14 -0
  12. package/dist/fancy-ui/_internals/StreamText.test.d.ts +1 -0
  13. package/dist/fancy-ui/_internals/StreamText.test.js +77 -0
  14. package/dist/fancy-ui/_internals/ai-types.d.ts +117 -0
  15. package/dist/fancy-ui/_internals/ai-types.js +9 -0
  16. package/dist/fancy-ui/_internals/anchor-position.d.ts +61 -0
  17. package/dist/fancy-ui/_internals/anchor-position.js +158 -0
  18. package/dist/fancy-ui/_internals/anchor-position.test.d.ts +1 -0
  19. package/dist/fancy-ui/_internals/anchor-position.test.js +205 -0
  20. package/dist/fancy-ui/_internals/autoscroll.d.ts +30 -0
  21. package/dist/fancy-ui/_internals/autoscroll.js +149 -0
  22. package/dist/fancy-ui/_internals/autoscroll.test.d.ts +1 -0
  23. package/dist/fancy-ui/_internals/autoscroll.test.js +233 -0
  24. package/dist/fancy-ui/_internals/calendar-core.d.ts +26 -0
  25. package/dist/fancy-ui/_internals/calendar-core.js +75 -0
  26. package/dist/fancy-ui/_internals/calendar-core.test.d.ts +1 -0
  27. package/dist/fancy-ui/_internals/calendar-core.test.js +132 -0
  28. package/dist/fancy-ui/_internals/clipboard.svelte.d.ts +18 -0
  29. package/dist/fancy-ui/_internals/clipboard.svelte.js +58 -0
  30. package/dist/fancy-ui/_internals/clipboard.test.d.ts +1 -0
  31. package/dist/fancy-ui/_internals/clipboard.test.js +97 -0
  32. package/dist/fancy-ui/_internals/diff.d.ts +38 -0
  33. package/dist/fancy-ui/_internals/diff.js +211 -0
  34. package/dist/fancy-ui/_internals/diff.test.d.ts +1 -0
  35. package/dist/fancy-ui/_internals/diff.test.js +261 -0
  36. package/dist/fancy-ui/_internals/dismissable.d.ts +12 -0
  37. package/dist/fancy-ui/_internals/dismissable.js +63 -0
  38. package/dist/fancy-ui/_internals/dismissable.test.d.ts +1 -0
  39. package/dist/fancy-ui/_internals/dismissable.test.js +128 -0
  40. package/dist/fancy-ui/_internals/elapsed.svelte.d.ts +49 -0
  41. package/dist/fancy-ui/_internals/elapsed.svelte.js +106 -0
  42. package/dist/fancy-ui/_internals/elapsed.test.d.ts +1 -0
  43. package/dist/fancy-ui/_internals/elapsed.test.js +124 -0
  44. package/dist/fancy-ui/_internals/field.svelte.d.ts +106 -0
  45. package/dist/fancy-ui/_internals/field.svelte.js +73 -0
  46. package/dist/fancy-ui/_internals/field.test.d.ts +1 -0
  47. package/dist/fancy-ui/_internals/field.test.js +223 -0
  48. package/dist/fancy-ui/_internals/float.d.ts +46 -0
  49. package/dist/fancy-ui/_internals/float.js +177 -0
  50. package/dist/fancy-ui/_internals/float.test.d.ts +1 -0
  51. package/dist/fancy-ui/_internals/float.test.js +242 -0
  52. package/dist/fancy-ui/_internals/focus-trap.d.ts +18 -0
  53. package/dist/fancy-ui/_internals/focus-trap.js +135 -0
  54. package/dist/fancy-ui/_internals/focus-trap.test.d.ts +1 -0
  55. package/dist/fancy-ui/_internals/focus-trap.test.js +229 -0
  56. package/dist/fancy-ui/_internals/host.d.ts +38 -0
  57. package/dist/fancy-ui/_internals/host.js +63 -0
  58. package/dist/fancy-ui/_internals/host.test.d.ts +1 -0
  59. package/dist/fancy-ui/_internals/host.test.js +57 -0
  60. package/dist/fancy-ui/_internals/id.d.ts +11 -0
  61. package/dist/fancy-ui/_internals/id.js +30 -0
  62. package/dist/fancy-ui/_internals/id.test.d.ts +1 -0
  63. package/dist/fancy-ui/_internals/id.test.js +31 -0
  64. package/dist/fancy-ui/_internals/listbox.svelte.d.ts +50 -0
  65. package/dist/fancy-ui/_internals/listbox.svelte.js +207 -0
  66. package/dist/fancy-ui/_internals/listbox.test.d.ts +1 -0
  67. package/dist/fancy-ui/_internals/listbox.test.js +399 -0
  68. package/dist/fancy-ui/_internals/markdown-security.test.d.ts +1 -0
  69. package/dist/fancy-ui/_internals/markdown-security.test.js +258 -0
  70. package/dist/fancy-ui/_internals/markdown.d.ts +66 -0
  71. package/dist/fancy-ui/_internals/markdown.js +586 -0
  72. package/dist/fancy-ui/_internals/markdown.test.d.ts +1 -0
  73. package/dist/fancy-ui/_internals/markdown.test.js +473 -0
  74. package/dist/fancy-ui/_internals/menu.svelte.d.ts +74 -0
  75. package/dist/fancy-ui/_internals/menu.svelte.js +307 -0
  76. package/dist/fancy-ui/_internals/menu.test.d.ts +1 -0
  77. package/dist/fancy-ui/_internals/menu.test.js +393 -0
  78. package/dist/fancy-ui/_internals/portal.d.ts +14 -0
  79. package/dist/fancy-ui/_internals/portal.js +49 -0
  80. package/dist/fancy-ui/_internals/portal.test.d.ts +1 -0
  81. package/dist/fancy-ui/_internals/portal.test.js +57 -0
  82. package/dist/fancy-ui/_internals/relative-time.d.ts +22 -0
  83. package/dist/fancy-ui/_internals/relative-time.js +56 -0
  84. package/dist/fancy-ui/_internals/relative-time.test.d.ts +1 -0
  85. package/dist/fancy-ui/_internals/relative-time.test.js +56 -0
  86. package/dist/fancy-ui/_internals/scroll-lock.d.ts +7 -0
  87. package/dist/fancy-ui/_internals/scroll-lock.js +91 -0
  88. package/dist/fancy-ui/_internals/scroll-lock.test.d.ts +1 -0
  89. package/dist/fancy-ui/_internals/scroll-lock.test.js +98 -0
  90. package/dist/fancy-ui/_internals/stream-text.svelte.d.ts +45 -0
  91. package/dist/fancy-ui/_internals/stream-text.svelte.js +106 -0
  92. package/dist/fancy-ui/_internals/stream-text.test.d.ts +1 -0
  93. package/dist/fancy-ui/_internals/stream-text.test.js +117 -0
  94. package/dist/fancy-ui/_internals/waveform-core.d.ts +33 -0
  95. package/dist/fancy-ui/_internals/waveform-core.js +63 -0
  96. package/dist/fancy-ui/_internals/waveform-core.test.d.ts +1 -0
  97. package/dist/fancy-ui/_internals/waveform-core.test.js +124 -0
  98. package/dist/fancy-ui/agent-plan/AgentPlan.svelte +459 -0
  99. package/dist/fancy-ui/agent-plan/AgentPlan.svelte.d.ts +24 -0
  100. package/dist/fancy-ui/agent-plan/AgentPlan.test.d.ts +1 -0
  101. package/dist/fancy-ui/agent-plan/AgentPlan.test.js +305 -0
  102. package/dist/fancy-ui/agent-plan/README.md +136 -0
  103. package/dist/fancy-ui/agent-plan/index.d.ts +3 -0
  104. package/dist/fancy-ui/agent-plan/index.js +2 -0
  105. package/dist/fancy-ui/ai-data-table/AiDataTable.svelte +214 -0
  106. package/dist/fancy-ui/ai-data-table/AiDataTable.svelte.d.ts +45 -0
  107. package/dist/fancy-ui/ai-data-table/AiDataTable.test.d.ts +1 -0
  108. package/dist/fancy-ui/ai-data-table/AiDataTable.test.js +223 -0
  109. package/dist/fancy-ui/ai-data-table/README.md +147 -0
  110. package/dist/fancy-ui/ai-data-table/index.d.ts +3 -0
  111. package/dist/fancy-ui/ai-data-table/index.js +2 -0
  112. package/dist/fancy-ui/alert-dialog/AlertDialog.svelte +139 -0
  113. package/dist/fancy-ui/alert-dialog/AlertDialog.svelte.d.ts +34 -0
  114. package/dist/fancy-ui/alert-dialog/AlertDialog.test.d.ts +1 -0
  115. package/dist/fancy-ui/alert-dialog/AlertDialog.test.js +254 -0
  116. package/dist/fancy-ui/alert-dialog/README.md +75 -0
  117. package/dist/fancy-ui/alert-dialog/index.d.ts +2 -0
  118. package/dist/fancy-ui/alert-dialog/index.js +2 -0
  119. package/dist/fancy-ui/approval-card/ApprovalCard.svelte +299 -0
  120. package/dist/fancy-ui/approval-card/ApprovalCard.svelte.d.ts +35 -0
  121. package/dist/fancy-ui/approval-card/ApprovalCard.test.d.ts +1 -0
  122. package/dist/fancy-ui/approval-card/ApprovalCard.test.js +175 -0
  123. package/dist/fancy-ui/approval-card/ApprovalCardHarness.test.svelte +35 -0
  124. package/dist/fancy-ui/approval-card/ApprovalCardHarness.test.svelte.d.ts +13 -0
  125. package/dist/fancy-ui/approval-card/README.md +116 -0
  126. package/dist/fancy-ui/approval-card/index.d.ts +3 -0
  127. package/dist/fancy-ui/approval-card/index.js +2 -0
  128. package/dist/fancy-ui/artifact-card/ArtifactCard.svelte +362 -0
  129. package/dist/fancy-ui/artifact-card/ArtifactCard.svelte.d.ts +35 -0
  130. package/dist/fancy-ui/artifact-card/ArtifactCard.test.d.ts +1 -0
  131. package/dist/fancy-ui/artifact-card/ArtifactCard.test.js +214 -0
  132. package/dist/fancy-ui/artifact-card/README.md +124 -0
  133. package/dist/fancy-ui/artifact-card/index.d.ts +3 -0
  134. package/dist/fancy-ui/artifact-card/index.js +2 -0
  135. package/dist/fancy-ui/autocomplete/Autocomplete.svelte +272 -0
  136. package/dist/fancy-ui/autocomplete/Autocomplete.svelte.d.ts +35 -0
  137. package/dist/fancy-ui/autocomplete/Autocomplete.test.d.ts +1 -0
  138. package/dist/fancy-ui/autocomplete/Autocomplete.test.js +400 -0
  139. package/dist/fancy-ui/autocomplete/AutocompleteFieldHarness.test.svelte +68 -0
  140. package/dist/fancy-ui/autocomplete/AutocompleteFieldHarness.test.svelte.d.ts +20 -0
  141. package/dist/fancy-ui/autocomplete/AutocompleteHarness.test.svelte +30 -0
  142. package/dist/fancy-ui/autocomplete/AutocompleteHarness.test.svelte.d.ts +9 -0
  143. package/dist/fancy-ui/autocomplete/AutocompletePanel.svelte +75 -0
  144. package/dist/fancy-ui/autocomplete/AutocompletePanel.svelte.d.ts +18 -0
  145. package/dist/fancy-ui/autocomplete/README.md +160 -0
  146. package/dist/fancy-ui/autocomplete/index.d.ts +4 -0
  147. package/dist/fancy-ui/autocomplete/index.js +3 -0
  148. package/dist/fancy-ui/autocomplete/match.d.ts +6 -0
  149. package/dist/fancy-ui/autocomplete/match.js +16 -0
  150. package/dist/fancy-ui/autocomplete/types.d.ts +32 -0
  151. package/dist/fancy-ui/autocomplete/types.js +1 -0
  152. package/dist/fancy-ui/breadcrumb/Breadcrumb.svelte +145 -0
  153. package/dist/fancy-ui/breadcrumb/Breadcrumb.svelte.d.ts +39 -0
  154. package/dist/fancy-ui/breadcrumb/Breadcrumb.test.d.ts +1 -0
  155. package/dist/fancy-ui/breadcrumb/Breadcrumb.test.js +268 -0
  156. package/dist/fancy-ui/breadcrumb/README.md +119 -0
  157. package/dist/fancy-ui/breadcrumb/index.d.ts +3 -0
  158. package/dist/fancy-ui/breadcrumb/index.js +2 -0
  159. package/dist/fancy-ui/button/Button.svelte +234 -0
  160. package/dist/fancy-ui/button/Button.svelte.d.ts +43 -0
  161. package/dist/fancy-ui/button/Button.test.d.ts +1 -0
  162. package/dist/fancy-ui/button/Button.test.js +231 -0
  163. package/dist/fancy-ui/button/README.md +91 -0
  164. package/dist/fancy-ui/button/index.d.ts +3 -0
  165. package/dist/fancy-ui/button/index.js +2 -0
  166. package/dist/fancy-ui/button/types.d.ts +4 -0
  167. package/dist/fancy-ui/button/types.js +1 -0
  168. package/dist/fancy-ui/button-group/ButtonGroup.svelte +129 -0
  169. package/dist/fancy-ui/button-group/ButtonGroup.svelte.d.ts +17 -0
  170. package/dist/fancy-ui/button-group/ButtonGroup.test.d.ts +1 -0
  171. package/dist/fancy-ui/button-group/ButtonGroup.test.js +133 -0
  172. package/dist/fancy-ui/button-group/ButtonGroupContextProbe.test.svelte +15 -0
  173. package/dist/fancy-ui/button-group/ButtonGroupContextProbe.test.svelte.d.ts +18 -0
  174. package/dist/fancy-ui/button-group/ButtonGroupHarness.test.svelte +21 -0
  175. package/dist/fancy-ui/button-group/ButtonGroupHarness.test.svelte.d.ts +7 -0
  176. package/dist/fancy-ui/button-group/README.md +91 -0
  177. package/dist/fancy-ui/button-group/index.d.ts +4 -0
  178. package/dist/fancy-ui/button-group/index.js +3 -0
  179. package/dist/fancy-ui/button-group/types.d.ts +16 -0
  180. package/dist/fancy-ui/button-group/types.js +10 -0
  181. package/dist/fancy-ui/chat-error/ChatError.svelte +195 -0
  182. package/dist/fancy-ui/chat-error/ChatError.svelte.d.ts +27 -0
  183. package/dist/fancy-ui/chat-error/ChatError.test.d.ts +1 -0
  184. package/dist/fancy-ui/chat-error/ChatError.test.js +94 -0
  185. package/dist/fancy-ui/chat-error/README.md +78 -0
  186. package/dist/fancy-ui/chat-error/index.d.ts +3 -0
  187. package/dist/fancy-ui/chat-error/index.js +2 -0
  188. package/dist/fancy-ui/chat-message/ChatMessage.svelte +205 -0
  189. package/dist/fancy-ui/chat-message/ChatMessage.svelte.d.ts +31 -0
  190. package/dist/fancy-ui/chat-message/ChatMessage.test.d.ts +1 -0
  191. package/dist/fancy-ui/chat-message/ChatMessage.test.js +179 -0
  192. package/dist/fancy-ui/chat-message/ChatMessageAction.svelte +82 -0
  193. package/dist/fancy-ui/chat-message/ChatMessageAction.svelte.d.ts +21 -0
  194. package/dist/fancy-ui/chat-message/ChatMessageActions.svelte +73 -0
  195. package/dist/fancy-ui/chat-message/ChatMessageActions.svelte.d.ts +15 -0
  196. package/dist/fancy-ui/chat-message/ChatMessageBranches.svelte +86 -0
  197. package/dist/fancy-ui/chat-message/ChatMessageBranches.svelte.d.ts +16 -0
  198. package/dist/fancy-ui/chat-message/ChatMessageHarness.test.svelte +47 -0
  199. package/dist/fancy-ui/chat-message/ChatMessageHarness.test.svelte.d.ts +12 -0
  200. package/dist/fancy-ui/chat-message/ChatMessageParts.test.d.ts +1 -0
  201. package/dist/fancy-ui/chat-message/ChatMessageParts.test.js +173 -0
  202. package/dist/fancy-ui/chat-message/README.md +184 -0
  203. package/dist/fancy-ui/chat-message/index.d.ts +10 -0
  204. package/dist/fancy-ui/chat-message/index.js +6 -0
  205. package/dist/fancy-ui/chat-message/types.d.ts +18 -0
  206. package/dist/fancy-ui/chat-message/types.js +10 -0
  207. package/dist/fancy-ui/chat-panel/ChatEmptyState.svelte +80 -0
  208. package/dist/fancy-ui/chat-panel/ChatEmptyState.svelte.d.ts +21 -0
  209. package/dist/fancy-ui/chat-panel/ChatPanel.svelte +303 -0
  210. package/dist/fancy-ui/chat-panel/ChatPanel.svelte.d.ts +29 -0
  211. package/dist/fancy-ui/chat-panel/ChatPanel.test.d.ts +1 -0
  212. package/dist/fancy-ui/chat-panel/ChatPanel.test.js +303 -0
  213. package/dist/fancy-ui/chat-panel/README.md +209 -0
  214. package/dist/fancy-ui/chat-panel/index.d.ts +5 -0
  215. package/dist/fancy-ui/chat-panel/index.js +3 -0
  216. package/dist/fancy-ui/checkbox/Checkbox.svelte +235 -0
  217. package/dist/fancy-ui/checkbox/Checkbox.svelte.d.ts +50 -0
  218. package/dist/fancy-ui/checkbox/Checkbox.test.d.ts +1 -0
  219. package/dist/fancy-ui/checkbox/Checkbox.test.js +237 -0
  220. package/dist/fancy-ui/checkbox/CheckboxFieldHarness.test.svelte +25 -0
  221. package/dist/fancy-ui/checkbox/CheckboxFieldHarness.test.svelte.d.ts +7 -0
  222. package/dist/fancy-ui/checkbox/CheckboxHarness.test.svelte +34 -0
  223. package/dist/fancy-ui/checkbox/CheckboxHarness.test.svelte.d.ts +8 -0
  224. package/dist/fancy-ui/checkbox/README.md +150 -0
  225. package/dist/fancy-ui/checkbox/index.d.ts +3 -0
  226. package/dist/fancy-ui/checkbox/index.js +2 -0
  227. package/dist/fancy-ui/code-diff/CodeDiff.svelte +428 -0
  228. package/dist/fancy-ui/code-diff/CodeDiff.svelte.d.ts +27 -0
  229. package/dist/fancy-ui/code-diff/CodeDiff.test.d.ts +1 -0
  230. package/dist/fancy-ui/code-diff/CodeDiff.test.js +298 -0
  231. package/dist/fancy-ui/code-diff/README.md +82 -0
  232. package/dist/fancy-ui/code-diff/index.d.ts +3 -0
  233. package/dist/fancy-ui/code-diff/index.js +2 -0
  234. package/dist/fancy-ui/combobox/Combobox.svelte +337 -0
  235. package/dist/fancy-ui/combobox/Combobox.svelte.d.ts +35 -0
  236. package/dist/fancy-ui/combobox/Combobox.test.d.ts +1 -0
  237. package/dist/fancy-ui/combobox/Combobox.test.js +445 -0
  238. package/dist/fancy-ui/combobox/ComboboxFieldHarness.test.svelte +69 -0
  239. package/dist/fancy-ui/combobox/ComboboxFieldHarness.test.svelte.d.ts +21 -0
  240. package/dist/fancy-ui/combobox/ComboboxHarness.test.svelte +30 -0
  241. package/dist/fancy-ui/combobox/ComboboxHarness.test.svelte.d.ts +9 -0
  242. package/dist/fancy-ui/combobox/ComboboxPanel.svelte +87 -0
  243. package/dist/fancy-ui/combobox/ComboboxPanel.svelte.d.ts +18 -0
  244. package/dist/fancy-ui/combobox/README.md +168 -0
  245. package/dist/fancy-ui/combobox/index.d.ts +4 -0
  246. package/dist/fancy-ui/combobox/index.js +3 -0
  247. package/dist/fancy-ui/combobox/match.d.ts +15 -0
  248. package/dist/fancy-ui/combobox/match.js +35 -0
  249. package/dist/fancy-ui/combobox/types.d.ts +40 -0
  250. package/dist/fancy-ui/combobox/types.js +12 -0
  251. package/dist/fancy-ui/command-menu/CommandMenu.svelte +547 -0
  252. package/dist/fancy-ui/command-menu/CommandMenu.svelte.d.ts +36 -0
  253. package/dist/fancy-ui/command-menu/CommandMenu.test.d.ts +1 -0
  254. package/dist/fancy-ui/command-menu/CommandMenu.test.js +569 -0
  255. package/dist/fancy-ui/command-menu/README.md +176 -0
  256. package/dist/fancy-ui/command-menu/index.d.ts +2 -0
  257. package/dist/fancy-ui/command-menu/index.js +2 -0
  258. package/dist/fancy-ui/command-menu/match.d.ts +19 -0
  259. package/dist/fancy-ui/command-menu/match.js +124 -0
  260. package/dist/fancy-ui/command-menu/types.d.ts +19 -0
  261. package/dist/fancy-ui/command-menu/types.js +1 -0
  262. package/dist/fancy-ui/composer/Composer.svelte +241 -0
  263. package/dist/fancy-ui/composer/Composer.svelte.d.ts +37 -0
  264. package/dist/fancy-ui/composer/Composer.test.d.ts +1 -0
  265. package/dist/fancy-ui/composer/Composer.test.js +399 -0
  266. package/dist/fancy-ui/composer/ComposerAttachment.svelte +220 -0
  267. package/dist/fancy-ui/composer/ComposerAttachment.svelte.d.ts +15 -0
  268. package/dist/fancy-ui/composer/ComposerAttachments.svelte +158 -0
  269. package/dist/fancy-ui/composer/ComposerAttachments.svelte.d.ts +19 -0
  270. package/dist/fancy-ui/composer/ComposerAttachments.test.d.ts +1 -0
  271. package/dist/fancy-ui/composer/ComposerAttachments.test.js +360 -0
  272. package/dist/fancy-ui/composer/ComposerCommandMenu.svelte +399 -0
  273. package/dist/fancy-ui/composer/ComposerCommandMenu.svelte.d.ts +34 -0
  274. package/dist/fancy-ui/composer/ComposerCommandMenu.test.d.ts +1 -0
  275. package/dist/fancy-ui/composer/ComposerCommandMenu.test.js +311 -0
  276. package/dist/fancy-ui/composer/ComposerHarness.test.svelte +99 -0
  277. package/dist/fancy-ui/composer/ComposerHarness.test.svelte.d.ts +24 -0
  278. package/dist/fancy-ui/composer/ComposerInput.svelte +178 -0
  279. package/dist/fancy-ui/composer/ComposerInput.svelte.d.ts +20 -0
  280. package/dist/fancy-ui/composer/ComposerIntegration.test.d.ts +14 -0
  281. package/dist/fancy-ui/composer/ComposerIntegration.test.js +283 -0
  282. package/dist/fancy-ui/composer/ComposerModelPicker.svelte +375 -0
  283. package/dist/fancy-ui/composer/ComposerModelPicker.svelte.d.ts +19 -0
  284. package/dist/fancy-ui/composer/ComposerSubmit.svelte +85 -0
  285. package/dist/fancy-ui/composer/ComposerSubmit.svelte.d.ts +17 -0
  286. package/dist/fancy-ui/composer/ComposerToolbar.svelte +55 -0
  287. package/dist/fancy-ui/composer/ComposerToolbar.svelte.d.ts +13 -0
  288. package/dist/fancy-ui/composer/ComposerToolbar.test.d.ts +1 -0
  289. package/dist/fancy-ui/composer/ComposerToolbar.test.js +285 -0
  290. package/dist/fancy-ui/composer/IntegrationHarness.test.svelte +142 -0
  291. package/dist/fancy-ui/composer/IntegrationHarness.test.svelte.d.ts +28 -0
  292. package/dist/fancy-ui/composer/README.md +416 -0
  293. package/dist/fancy-ui/composer/caret.d.ts +69 -0
  294. package/dist/fancy-ui/composer/caret.js +197 -0
  295. package/dist/fancy-ui/composer/caret.test.d.ts +1 -0
  296. package/dist/fancy-ui/composer/caret.test.js +87 -0
  297. package/dist/fancy-ui/composer/index.d.ts +18 -0
  298. package/dist/fancy-ui/composer/index.js +10 -0
  299. package/dist/fancy-ui/composer/types.d.ts +61 -0
  300. package/dist/fancy-ui/composer/types.js +18 -0
  301. package/dist/fancy-ui/context-menu/ContextMenu.svelte +147 -0
  302. package/dist/fancy-ui/context-menu/ContextMenu.svelte.d.ts +21 -0
  303. package/dist/fancy-ui/context-menu/ContextMenu.test.d.ts +1 -0
  304. package/dist/fancy-ui/context-menu/ContextMenu.test.js +309 -0
  305. package/dist/fancy-ui/context-menu/ContextMenuContent.svelte +130 -0
  306. package/dist/fancy-ui/context-menu/ContextMenuContent.svelte.d.ts +12 -0
  307. package/dist/fancy-ui/context-menu/ContextMenuHarness.test.svelte +72 -0
  308. package/dist/fancy-ui/context-menu/ContextMenuHarness.test.svelte.d.ts +16 -0
  309. package/dist/fancy-ui/context-menu/ContextMenuTrigger.svelte +72 -0
  310. package/dist/fancy-ui/context-menu/ContextMenuTrigger.svelte.d.ts +14 -0
  311. package/dist/fancy-ui/context-menu/README.md +226 -0
  312. package/dist/fancy-ui/context-menu/index.d.ts +12 -0
  313. package/dist/fancy-ui/context-menu/index.js +19 -0
  314. package/dist/fancy-ui/context-menu/types.d.ts +26 -0
  315. package/dist/fancy-ui/context-menu/types.js +8 -0
  316. package/dist/fancy-ui/context-ring/ContextRing.svelte +407 -0
  317. package/dist/fancy-ui/context-ring/ContextRing.svelte.d.ts +29 -0
  318. package/dist/fancy-ui/context-ring/ContextRing.test.d.ts +1 -0
  319. package/dist/fancy-ui/context-ring/ContextRing.test.js +250 -0
  320. package/dist/fancy-ui/context-ring/README.md +138 -0
  321. package/dist/fancy-ui/context-ring/index.d.ts +3 -0
  322. package/dist/fancy-ui/context-ring/index.js +2 -0
  323. package/dist/fancy-ui/copy-button/CopyButton.svelte +169 -0
  324. package/dist/fancy-ui/copy-button/CopyButton.svelte.d.ts +36 -0
  325. package/dist/fancy-ui/copy-button/CopyButton.test.d.ts +1 -0
  326. package/dist/fancy-ui/copy-button/CopyButton.test.js +183 -0
  327. package/dist/fancy-ui/copy-button/README.md +113 -0
  328. package/dist/fancy-ui/copy-button/index.d.ts +3 -0
  329. package/dist/fancy-ui/copy-button/index.js +2 -0
  330. package/dist/fancy-ui/date-picker/DatePicker.svelte +421 -0
  331. package/dist/fancy-ui/date-picker/DatePicker.svelte.d.ts +38 -0
  332. package/dist/fancy-ui/date-picker/DatePicker.test.d.ts +1 -0
  333. package/dist/fancy-ui/date-picker/DatePicker.test.js +402 -0
  334. package/dist/fancy-ui/date-picker/DatePickerFieldHarness.test.svelte +25 -0
  335. package/dist/fancy-ui/date-picker/DatePickerFieldHarness.test.svelte.d.ts +7 -0
  336. package/dist/fancy-ui/date-picker/DatePickerHarness.test.svelte +29 -0
  337. package/dist/fancy-ui/date-picker/DatePickerHarness.test.svelte.d.ts +7 -0
  338. package/dist/fancy-ui/date-picker/README.md +193 -0
  339. package/dist/fancy-ui/date-picker/date-utils.d.ts +39 -0
  340. package/dist/fancy-ui/date-picker/date-utils.js +116 -0
  341. package/dist/fancy-ui/date-picker/date-utils.test.d.ts +1 -0
  342. package/dist/fancy-ui/date-picker/date-utils.test.js +175 -0
  343. package/dist/fancy-ui/date-picker/index.d.ts +3 -0
  344. package/dist/fancy-ui/date-picker/index.js +2 -0
  345. package/dist/fancy-ui/dialog/Dialog.svelte +149 -0
  346. package/dist/fancy-ui/dialog/Dialog.svelte.d.ts +28 -0
  347. package/dist/fancy-ui/dialog/Dialog.test.d.ts +1 -0
  348. package/dist/fancy-ui/dialog/Dialog.test.js +304 -0
  349. package/dist/fancy-ui/dialog/DialogSurface.svelte +126 -0
  350. package/dist/fancy-ui/dialog/DialogSurface.svelte.d.ts +4 -0
  351. package/dist/fancy-ui/dialog/README.md +95 -0
  352. package/dist/fancy-ui/dialog/index.d.ts +2 -0
  353. package/dist/fancy-ui/dialog/index.js +2 -0
  354. package/dist/fancy-ui/dialog/types.d.ts +58 -0
  355. package/dist/fancy-ui/dialog/types.js +1 -0
  356. package/dist/fancy-ui/drawer/Drawer.svelte +305 -0
  357. package/dist/fancy-ui/drawer/Drawer.svelte.d.ts +26 -0
  358. package/dist/fancy-ui/drawer/Drawer.test.d.ts +1 -0
  359. package/dist/fancy-ui/drawer/Drawer.test.js +283 -0
  360. package/dist/fancy-ui/drawer/DrawerHarness.test.svelte +31 -0
  361. package/dist/fancy-ui/drawer/DrawerHarness.test.svelte.d.ts +7 -0
  362. package/dist/fancy-ui/drawer/README.md +135 -0
  363. package/dist/fancy-ui/drawer/index.d.ts +3 -0
  364. package/dist/fancy-ui/drawer/index.js +2 -0
  365. package/dist/fancy-ui/dropdown-menu/DropdownMenu.svelte +123 -0
  366. package/dist/fancy-ui/dropdown-menu/DropdownMenu.svelte.d.ts +21 -0
  367. package/dist/fancy-ui/dropdown-menu/DropdownMenu.test.d.ts +1 -0
  368. package/dist/fancy-ui/dropdown-menu/DropdownMenu.test.js +504 -0
  369. package/dist/fancy-ui/dropdown-menu/DropdownMenuContent.svelte +155 -0
  370. package/dist/fancy-ui/dropdown-menu/DropdownMenuContent.svelte.d.ts +12 -0
  371. package/dist/fancy-ui/dropdown-menu/DropdownMenuHarness.test.svelte +95 -0
  372. package/dist/fancy-ui/dropdown-menu/DropdownMenuHarness.test.svelte.d.ts +24 -0
  373. package/dist/fancy-ui/dropdown-menu/DropdownMenuItem.svelte +151 -0
  374. package/dist/fancy-ui/dropdown-menu/DropdownMenuItem.svelte.d.ts +22 -0
  375. package/dist/fancy-ui/dropdown-menu/DropdownMenuLabel.svelte +32 -0
  376. package/dist/fancy-ui/dropdown-menu/DropdownMenuLabel.svelte.d.ts +10 -0
  377. package/dist/fancy-ui/dropdown-menu/DropdownMenuSeparator.svelte +18 -0
  378. package/dist/fancy-ui/dropdown-menu/DropdownMenuSeparator.svelte.d.ts +7 -0
  379. package/dist/fancy-ui/dropdown-menu/DropdownMenuSub.svelte +117 -0
  380. package/dist/fancy-ui/dropdown-menu/DropdownMenuSub.svelte.d.ts +8 -0
  381. package/dist/fancy-ui/dropdown-menu/DropdownMenuSubContent.svelte +155 -0
  382. package/dist/fancy-ui/dropdown-menu/DropdownMenuSubContent.svelte.d.ts +12 -0
  383. package/dist/fancy-ui/dropdown-menu/DropdownMenuSubTrigger.svelte +151 -0
  384. package/dist/fancy-ui/dropdown-menu/DropdownMenuSubTrigger.svelte.d.ts +14 -0
  385. package/dist/fancy-ui/dropdown-menu/DropdownMenuTrigger.svelte +96 -0
  386. package/dist/fancy-ui/dropdown-menu/DropdownMenuTrigger.svelte.d.ts +14 -0
  387. package/dist/fancy-ui/dropdown-menu/README.md +394 -0
  388. package/dist/fancy-ui/dropdown-menu/index.d.ts +11 -0
  389. package/dist/fancy-ui/dropdown-menu/index.js +11 -0
  390. package/dist/fancy-ui/dropdown-menu/menu-shared.d.ts +32 -0
  391. package/dist/fancy-ui/dropdown-menu/menu-shared.js +74 -0
  392. package/dist/fancy-ui/dropdown-menu/types.d.ts +97 -0
  393. package/dist/fancy-ui/dropdown-menu/types.js +3 -0
  394. package/dist/fancy-ui/file-upload/FileUpload.svelte +495 -0
  395. package/dist/fancy-ui/file-upload/FileUpload.svelte.d.ts +48 -0
  396. package/dist/fancy-ui/file-upload/FileUpload.test.d.ts +1 -0
  397. package/dist/fancy-ui/file-upload/FileUpload.test.js +286 -0
  398. package/dist/fancy-ui/file-upload/FileUploadFieldHarness.test.svelte +47 -0
  399. package/dist/fancy-ui/file-upload/FileUploadFieldHarness.test.svelte.d.ts +7 -0
  400. package/dist/fancy-ui/file-upload/FileUploadHarness.test.svelte +28 -0
  401. package/dist/fancy-ui/file-upload/FileUploadHarness.test.svelte.d.ts +8 -0
  402. package/dist/fancy-ui/file-upload/README.md +217 -0
  403. package/dist/fancy-ui/file-upload/index.d.ts +3 -0
  404. package/dist/fancy-ui/file-upload/index.js +2 -0
  405. package/dist/fancy-ui/fluid-cursor/FluidCursor.svelte +71 -4
  406. package/dist/fancy-ui/fluid-cursor/FluidCursor.svelte.d.ts +13 -0
  407. package/dist/fancy-ui/fluid-cursor/FluidCursor.test.js +28 -0
  408. package/dist/fancy-ui/fluid-cursor/README.md +27 -0
  409. package/dist/fancy-ui/form-field/FormField.svelte +121 -0
  410. package/dist/fancy-ui/form-field/FormField.svelte.d.ts +4 -0
  411. package/dist/fancy-ui/form-field/FormField.test.d.ts +1 -0
  412. package/dist/fancy-ui/form-field/FormField.test.js +206 -0
  413. package/dist/fancy-ui/form-field/FormFieldControl.test.svelte +37 -0
  414. package/dist/fancy-ui/form-field/FormFieldControl.test.svelte.d.ts +8 -0
  415. package/dist/fancy-ui/form-field/FormFieldHarness.test.svelte +30 -0
  416. package/dist/fancy-ui/form-field/FormFieldHarness.test.svelte.d.ts +4 -0
  417. package/dist/fancy-ui/form-field/FormFieldPairHarness.test.svelte +20 -0
  418. package/dist/fancy-ui/form-field/FormFieldPairHarness.test.svelte.d.ts +18 -0
  419. package/dist/fancy-ui/form-field/README.md +215 -0
  420. package/dist/fancy-ui/form-field/index.d.ts +3 -0
  421. package/dist/fancy-ui/form-field/index.js +2 -0
  422. package/dist/fancy-ui/form-field/types.d.ts +40 -0
  423. package/dist/fancy-ui/form-field/types.js +1 -0
  424. package/dist/fancy-ui/hover-card/HoverCard.svelte +204 -0
  425. package/dist/fancy-ui/hover-card/HoverCard.svelte.d.ts +45 -0
  426. package/dist/fancy-ui/hover-card/HoverCard.test.d.ts +1 -0
  427. package/dist/fancy-ui/hover-card/HoverCard.test.js +243 -0
  428. package/dist/fancy-ui/hover-card/HoverCardAriaHarness.test.svelte +26 -0
  429. package/dist/fancy-ui/hover-card/HoverCardAriaHarness.test.svelte.d.ts +18 -0
  430. package/dist/fancy-ui/hover-card/HoverCardHarness.test.svelte +24 -0
  431. package/dist/fancy-ui/hover-card/HoverCardHarness.test.svelte.d.ts +6 -0
  432. package/dist/fancy-ui/hover-card/README.md +65 -0
  433. package/dist/fancy-ui/hover-card/index.d.ts +2 -0
  434. package/dist/fancy-ui/hover-card/index.js +2 -0
  435. package/dist/fancy-ui/icon-button/IconButton.svelte +111 -0
  436. package/dist/fancy-ui/icon-button/IconButton.svelte.d.ts +45 -0
  437. package/dist/fancy-ui/icon-button/IconButton.test.d.ts +1 -0
  438. package/dist/fancy-ui/icon-button/IconButton.test.js +120 -0
  439. package/dist/fancy-ui/icon-button/README.md +184 -0
  440. package/dist/fancy-ui/icon-button/index.d.ts +2 -0
  441. package/dist/fancy-ui/icon-button/index.js +2 -0
  442. package/dist/fancy-ui/image-generation/ImageGeneration.svelte +274 -0
  443. package/dist/fancy-ui/image-generation/ImageGeneration.svelte.d.ts +28 -0
  444. package/dist/fancy-ui/image-generation/ImageGeneration.test.d.ts +1 -0
  445. package/dist/fancy-ui/image-generation/ImageGeneration.test.js +248 -0
  446. package/dist/fancy-ui/image-generation/README.md +96 -0
  447. package/dist/fancy-ui/image-generation/index.d.ts +3 -0
  448. package/dist/fancy-ui/image-generation/index.js +2 -0
  449. package/dist/fancy-ui/index.d.ts +71 -0
  450. package/dist/fancy-ui/index.js +75 -0
  451. package/dist/fancy-ui/inline-citation/InlineCitation.svelte +289 -0
  452. package/dist/fancy-ui/inline-citation/InlineCitation.svelte.d.ts +24 -0
  453. package/dist/fancy-ui/inline-citation/InlineCitation.test.d.ts +1 -0
  454. package/dist/fancy-ui/inline-citation/InlineCitation.test.js +272 -0
  455. package/dist/fancy-ui/inline-citation/InlineCitationHarness.test.svelte +21 -0
  456. package/dist/fancy-ui/inline-citation/InlineCitationHarness.test.svelte.d.ts +9 -0
  457. package/dist/fancy-ui/inline-citation/README.md +107 -0
  458. package/dist/fancy-ui/inline-citation/index.d.ts +3 -0
  459. package/dist/fancy-ui/inline-citation/index.js +2 -0
  460. package/dist/fancy-ui/input/Input.svelte +123 -0
  461. package/dist/fancy-ui/input/Input.svelte.d.ts +34 -0
  462. package/dist/fancy-ui/input/Input.test.d.ts +1 -0
  463. package/dist/fancy-ui/input/Input.test.js +133 -0
  464. package/dist/fancy-ui/input/InputFieldHarness.test.svelte +49 -0
  465. package/dist/fancy-ui/input/InputFieldHarness.test.svelte.d.ts +7 -0
  466. package/dist/fancy-ui/input/InputHarness.test.svelte +28 -0
  467. package/dist/fancy-ui/input/InputHarness.test.svelte.d.ts +7 -0
  468. package/dist/fancy-ui/input/README.md +126 -0
  469. package/dist/fancy-ui/input/index.d.ts +3 -0
  470. package/dist/fancy-ui/input/index.js +2 -0
  471. package/dist/fancy-ui/label/Label.svelte +54 -0
  472. package/dist/fancy-ui/label/Label.svelte.d.ts +16 -0
  473. package/dist/fancy-ui/label/Label.test.d.ts +1 -0
  474. package/dist/fancy-ui/label/Label.test.js +105 -0
  475. package/dist/fancy-ui/label/LabelHarness.test.svelte +37 -0
  476. package/dist/fancy-ui/label/LabelHarness.test.svelte.d.ts +11 -0
  477. package/dist/fancy-ui/label/README.md +87 -0
  478. package/dist/fancy-ui/label/index.d.ts +2 -0
  479. package/dist/fancy-ui/label/index.js +2 -0
  480. package/dist/fancy-ui/link/Link.svelte +145 -0
  481. package/dist/fancy-ui/link/Link.svelte.d.ts +29 -0
  482. package/dist/fancy-ui/link/Link.test.d.ts +1 -0
  483. package/dist/fancy-ui/link/Link.test.js +170 -0
  484. package/dist/fancy-ui/link/README.md +77 -0
  485. package/dist/fancy-ui/link/index.d.ts +3 -0
  486. package/dist/fancy-ui/link/index.js +2 -0
  487. package/dist/fancy-ui/liquid-text/LiquidText.svelte +52 -11
  488. package/dist/fancy-ui/liquid-text/LiquidText.test.js +1 -3
  489. package/dist/fancy-ui/navbar/Navbar.svelte +88 -0
  490. package/dist/fancy-ui/navbar/Navbar.svelte.d.ts +22 -0
  491. package/dist/fancy-ui/navbar/Navbar.test.d.ts +1 -0
  492. package/dist/fancy-ui/navbar/Navbar.test.js +157 -0
  493. package/dist/fancy-ui/navbar/NavbarLink.svelte +109 -0
  494. package/dist/fancy-ui/navbar/NavbarLink.svelte.d.ts +29 -0
  495. package/dist/fancy-ui/navbar/README.md +137 -0
  496. package/dist/fancy-ui/navbar/index.d.ts +5 -0
  497. package/dist/fancy-ui/navbar/index.js +3 -0
  498. package/dist/fancy-ui/navigation-menu/NavigationMenu.svelte +265 -0
  499. package/dist/fancy-ui/navigation-menu/NavigationMenu.svelte.d.ts +22 -0
  500. package/dist/fancy-ui/navigation-menu/NavigationMenu.test.d.ts +1 -0
  501. package/dist/fancy-ui/navigation-menu/NavigationMenu.test.js +487 -0
  502. package/dist/fancy-ui/navigation-menu/NavigationMenuContent.svelte +130 -0
  503. package/dist/fancy-ui/navigation-menu/NavigationMenuContent.svelte.d.ts +12 -0
  504. package/dist/fancy-ui/navigation-menu/NavigationMenuHarness.test.svelte +78 -0
  505. package/dist/fancy-ui/navigation-menu/NavigationMenuHarness.test.svelte.d.ts +24 -0
  506. package/dist/fancy-ui/navigation-menu/NavigationMenuItem.svelte +43 -0
  507. package/dist/fancy-ui/navigation-menu/NavigationMenuItem.svelte.d.ts +12 -0
  508. package/dist/fancy-ui/navigation-menu/NavigationMenuLink.svelte +93 -0
  509. package/dist/fancy-ui/navigation-menu/NavigationMenuLink.svelte.d.ts +24 -0
  510. package/dist/fancy-ui/navigation-menu/NavigationMenuList.svelte +40 -0
  511. package/dist/fancy-ui/navigation-menu/NavigationMenuList.svelte.d.ts +12 -0
  512. package/dist/fancy-ui/navigation-menu/NavigationMenuTrigger.svelte +137 -0
  513. package/dist/fancy-ui/navigation-menu/NavigationMenuTrigger.svelte.d.ts +12 -0
  514. package/dist/fancy-ui/navigation-menu/README.md +309 -0
  515. package/dist/fancy-ui/navigation-menu/index.d.ts +14 -0
  516. package/dist/fancy-ui/navigation-menu/index.js +8 -0
  517. package/dist/fancy-ui/navigation-menu/types.d.ts +77 -0
  518. package/dist/fancy-ui/navigation-menu/types.js +16 -0
  519. package/dist/fancy-ui/number-input/NumberInput.svelte +282 -0
  520. package/dist/fancy-ui/number-input/NumberInput.svelte.d.ts +33 -0
  521. package/dist/fancy-ui/number-input/NumberInput.test.d.ts +1 -0
  522. package/dist/fancy-ui/number-input/NumberInput.test.js +354 -0
  523. package/dist/fancy-ui/number-input/NumberInputFieldHarness.test.svelte +25 -0
  524. package/dist/fancy-ui/number-input/NumberInputFieldHarness.test.svelte.d.ts +7 -0
  525. package/dist/fancy-ui/number-input/NumberInputHarness.test.svelte +31 -0
  526. package/dist/fancy-ui/number-input/NumberInputHarness.test.svelte.d.ts +10 -0
  527. package/dist/fancy-ui/number-input/README.md +141 -0
  528. package/dist/fancy-ui/number-input/index.d.ts +3 -0
  529. package/dist/fancy-ui/number-input/index.js +2 -0
  530. package/dist/fancy-ui/pagination/Pagination.svelte +226 -0
  531. package/dist/fancy-ui/pagination/Pagination.svelte.d.ts +30 -0
  532. package/dist/fancy-ui/pagination/Pagination.test.d.ts +1 -0
  533. package/dist/fancy-ui/pagination/Pagination.test.js +194 -0
  534. package/dist/fancy-ui/pagination/PaginationHarness.test.svelte +53 -0
  535. package/dist/fancy-ui/pagination/PaginationHarness.test.svelte.d.ts +13 -0
  536. package/dist/fancy-ui/pagination/README.md +117 -0
  537. package/dist/fancy-ui/pagination/index.d.ts +3 -0
  538. package/dist/fancy-ui/pagination/index.js +9 -0
  539. package/dist/fancy-ui/pagination/pagination-range.d.ts +11 -0
  540. package/dist/fancy-ui/pagination/pagination-range.js +77 -0
  541. package/dist/fancy-ui/pagination/pagination-range.test.d.ts +1 -0
  542. package/dist/fancy-ui/pagination/pagination-range.test.js +118 -0
  543. package/dist/fancy-ui/password-input/PasswordInput.svelte +314 -0
  544. package/dist/fancy-ui/password-input/PasswordInput.svelte.d.ts +44 -0
  545. package/dist/fancy-ui/password-input/PasswordInput.test.d.ts +1 -0
  546. package/dist/fancy-ui/password-input/PasswordInput.test.js +290 -0
  547. package/dist/fancy-ui/password-input/PasswordInputFieldHarness.test.svelte +66 -0
  548. package/dist/fancy-ui/password-input/PasswordInputFieldHarness.test.svelte.d.ts +19 -0
  549. package/dist/fancy-ui/password-input/PasswordInputHarness.test.svelte +28 -0
  550. package/dist/fancy-ui/password-input/PasswordInputHarness.test.svelte.d.ts +7 -0
  551. package/dist/fancy-ui/password-input/README.md +135 -0
  552. package/dist/fancy-ui/password-input/index.d.ts +2 -0
  553. package/dist/fancy-ui/password-input/index.js +2 -0
  554. package/dist/fancy-ui/pixel-loader/PixelLoader.svelte +111 -0
  555. package/dist/fancy-ui/pixel-loader/PixelLoader.svelte.d.ts +23 -0
  556. package/dist/fancy-ui/pixel-loader/PixelLoader.test.d.ts +1 -0
  557. package/dist/fancy-ui/pixel-loader/PixelLoader.test.js +77 -0
  558. package/dist/fancy-ui/pixel-loader/README.md +47 -0
  559. package/dist/fancy-ui/pixel-loader/index.d.ts +3 -0
  560. package/dist/fancy-ui/pixel-loader/index.js +2 -0
  561. package/dist/fancy-ui/popover/Popover.svelte +127 -0
  562. package/dist/fancy-ui/popover/Popover.svelte.d.ts +31 -0
  563. package/dist/fancy-ui/popover/Popover.test.d.ts +1 -0
  564. package/dist/fancy-ui/popover/Popover.test.js +246 -0
  565. package/dist/fancy-ui/popover/PopoverContent.svelte +85 -0
  566. package/dist/fancy-ui/popover/PopoverContent.svelte.d.ts +12 -0
  567. package/dist/fancy-ui/popover/README.md +146 -0
  568. package/dist/fancy-ui/popover/index.d.ts +6 -0
  569. package/dist/fancy-ui/popover/index.js +4 -0
  570. package/dist/fancy-ui/popover/types.d.ts +27 -0
  571. package/dist/fancy-ui/popover/types.js +1 -0
  572. package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.svelte +130 -0
  573. package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.svelte.d.ts +24 -0
  574. package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.test.d.ts +1 -0
  575. package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.test.js +129 -0
  576. package/dist/fancy-ui/prompt-suggestions/README.md +77 -0
  577. package/dist/fancy-ui/prompt-suggestions/index.d.ts +3 -0
  578. package/dist/fancy-ui/prompt-suggestions/index.js +2 -0
  579. package/dist/fancy-ui/radio-group/README.md +219 -0
  580. package/dist/fancy-ui/radio-group/RadioGroup.svelte +154 -0
  581. package/dist/fancy-ui/radio-group/RadioGroup.svelte.d.ts +39 -0
  582. package/dist/fancy-ui/radio-group/RadioGroup.test.d.ts +1 -0
  583. package/dist/fancy-ui/radio-group/RadioGroup.test.js +347 -0
  584. package/dist/fancy-ui/radio-group/RadioGroupHarness.test.svelte +67 -0
  585. package/dist/fancy-ui/radio-group/RadioGroupHarness.test.svelte.d.ts +22 -0
  586. package/dist/fancy-ui/radio-group/RadioGroupItem.svelte +148 -0
  587. package/dist/fancy-ui/radio-group/RadioGroupItem.svelte.d.ts +18 -0
  588. package/dist/fancy-ui/radio-group/index.d.ts +6 -0
  589. package/dist/fancy-ui/radio-group/index.js +4 -0
  590. package/dist/fancy-ui/radio-group/types.d.ts +35 -0
  591. package/dist/fancy-ui/radio-group/types.js +12 -0
  592. package/dist/fancy-ui/reasoning-panel/README.md +70 -0
  593. package/dist/fancy-ui/reasoning-panel/ReasoningPanel.svelte +260 -0
  594. package/dist/fancy-ui/reasoning-panel/ReasoningPanel.svelte.d.ts +32 -0
  595. package/dist/fancy-ui/reasoning-panel/ReasoningPanel.test.d.ts +1 -0
  596. package/dist/fancy-ui/reasoning-panel/ReasoningPanel.test.js +163 -0
  597. package/dist/fancy-ui/reasoning-panel/index.d.ts +3 -0
  598. package/dist/fancy-ui/reasoning-panel/index.js +2 -0
  599. package/dist/fancy-ui/recommendation-card/README.md +106 -0
  600. package/dist/fancy-ui/recommendation-card/RecommendationCard.svelte +375 -0
  601. package/dist/fancy-ui/recommendation-card/RecommendationCard.svelte.d.ts +38 -0
  602. package/dist/fancy-ui/recommendation-card/RecommendationCard.test.d.ts +1 -0
  603. package/dist/fancy-ui/recommendation-card/RecommendationCard.test.js +255 -0
  604. package/dist/fancy-ui/recommendation-card/RecommendationCardHarness.test.svelte +33 -0
  605. package/dist/fancy-ui/recommendation-card/RecommendationCardHarness.test.svelte.d.ts +12 -0
  606. package/dist/fancy-ui/recommendation-card/index.d.ts +3 -0
  607. package/dist/fancy-ui/recommendation-card/index.js +2 -0
  608. package/dist/fancy-ui/registry.d.ts +14 -1
  609. package/dist/fancy-ui/registry.js +4879 -40
  610. package/dist/fancy-ui/scroll-anchor/README.md +93 -0
  611. package/dist/fancy-ui/scroll-anchor/ScrollAnchor.svelte +197 -0
  612. package/dist/fancy-ui/scroll-anchor/ScrollAnchor.svelte.d.ts +31 -0
  613. package/dist/fancy-ui/scroll-anchor/ScrollAnchor.test.d.ts +1 -0
  614. package/dist/fancy-ui/scroll-anchor/ScrollAnchor.test.js +206 -0
  615. package/dist/fancy-ui/scroll-anchor/index.d.ts +3 -0
  616. package/dist/fancy-ui/scroll-anchor/index.js +2 -0
  617. package/dist/fancy-ui/search-input/README.md +118 -0
  618. package/dist/fancy-ui/search-input/SearchInput.svelte +261 -0
  619. package/dist/fancy-ui/search-input/SearchInput.svelte.d.ts +43 -0
  620. package/dist/fancy-ui/search-input/SearchInput.test.d.ts +1 -0
  621. package/dist/fancy-ui/search-input/SearchInput.test.js +279 -0
  622. package/dist/fancy-ui/search-input/SearchInputFieldHarness.test.svelte +66 -0
  623. package/dist/fancy-ui/search-input/SearchInputFieldHarness.test.svelte.d.ts +19 -0
  624. package/dist/fancy-ui/search-input/SearchInputHarness.test.svelte +28 -0
  625. package/dist/fancy-ui/search-input/SearchInputHarness.test.svelte.d.ts +7 -0
  626. package/dist/fancy-ui/search-input/index.d.ts +2 -0
  627. package/dist/fancy-ui/search-input/index.js +2 -0
  628. package/dist/fancy-ui/select/README.md +208 -0
  629. package/dist/fancy-ui/select/Select.svelte +361 -0
  630. package/dist/fancy-ui/select/Select.svelte.d.ts +36 -0
  631. package/dist/fancy-ui/select/Select.test.d.ts +1 -0
  632. package/dist/fancy-ui/select/Select.test.js +461 -0
  633. package/dist/fancy-ui/select/SelectHarness.test.svelte +63 -0
  634. package/dist/fancy-ui/select/SelectHarness.test.svelte.d.ts +19 -0
  635. package/dist/fancy-ui/select/SelectPanel.svelte +138 -0
  636. package/dist/fancy-ui/select/SelectPanel.svelte.d.ts +9 -0
  637. package/dist/fancy-ui/select/index.d.ts +3 -0
  638. package/dist/fancy-ui/select/index.js +2 -0
  639. package/dist/fancy-ui/select/types.d.ts +56 -0
  640. package/dist/fancy-ui/select/types.js +1 -0
  641. package/dist/fancy-ui/sheet/README.md +128 -0
  642. package/dist/fancy-ui/sheet/Sheet.svelte +240 -0
  643. package/dist/fancy-ui/sheet/Sheet.svelte.d.ts +30 -0
  644. package/dist/fancy-ui/sheet/Sheet.test.d.ts +1 -0
  645. package/dist/fancy-ui/sheet/Sheet.test.js +236 -0
  646. package/dist/fancy-ui/sheet/SheetHarness.test.svelte +31 -0
  647. package/dist/fancy-ui/sheet/SheetHarness.test.svelte.d.ts +7 -0
  648. package/dist/fancy-ui/sheet/index.d.ts +3 -0
  649. package/dist/fancy-ui/sheet/index.js +2 -0
  650. package/dist/fancy-ui/sidebar/README.md +219 -0
  651. package/dist/fancy-ui/sidebar/Sidebar.svelte +81 -0
  652. package/dist/fancy-ui/sidebar/Sidebar.svelte.d.ts +21 -0
  653. package/dist/fancy-ui/sidebar/Sidebar.test.d.ts +1 -0
  654. package/dist/fancy-ui/sidebar/Sidebar.test.js +307 -0
  655. package/dist/fancy-ui/sidebar/SidebarFooter.svelte +46 -0
  656. package/dist/fancy-ui/sidebar/SidebarFooter.svelte.d.ts +14 -0
  657. package/dist/fancy-ui/sidebar/SidebarGroup.svelte +45 -0
  658. package/dist/fancy-ui/sidebar/SidebarGroup.svelte.d.ts +12 -0
  659. package/dist/fancy-ui/sidebar/SidebarHarness.test.svelte +41 -0
  660. package/dist/fancy-ui/sidebar/SidebarHarness.test.svelte.d.ts +6 -0
  661. package/dist/fancy-ui/sidebar/SidebarItem.svelte +168 -0
  662. package/dist/fancy-ui/sidebar/SidebarItem.svelte.d.ts +32 -0
  663. package/dist/fancy-ui/sidebar/SidebarSeparator.svelte +17 -0
  664. package/dist/fancy-ui/sidebar/SidebarSeparator.svelte.d.ts +9 -0
  665. package/dist/fancy-ui/sidebar/index.d.ts +12 -0
  666. package/dist/fancy-ui/sidebar/index.js +7 -0
  667. package/dist/fancy-ui/sidebar/types.d.ts +23 -0
  668. package/dist/fancy-ui/sidebar/types.js +18 -0
  669. package/dist/fancy-ui/slider/README.md +126 -0
  670. package/dist/fancy-ui/slider/Slider.svelte +252 -0
  671. package/dist/fancy-ui/slider/Slider.svelte.d.ts +31 -0
  672. package/dist/fancy-ui/slider/Slider.test.d.ts +1 -0
  673. package/dist/fancy-ui/slider/Slider.test.js +175 -0
  674. package/dist/fancy-ui/slider/SliderFieldHarness.test.svelte +25 -0
  675. package/dist/fancy-ui/slider/SliderFieldHarness.test.svelte.d.ts +7 -0
  676. package/dist/fancy-ui/slider/SliderHarness.test.svelte +28 -0
  677. package/dist/fancy-ui/slider/SliderHarness.test.svelte.d.ts +7 -0
  678. package/dist/fancy-ui/slider/index.d.ts +3 -0
  679. package/dist/fancy-ui/slider/index.js +2 -0
  680. package/dist/fancy-ui/sources/README.md +189 -0
  681. package/dist/fancy-ui/sources/SourceCard.svelte +174 -0
  682. package/dist/fancy-ui/sources/SourceCard.svelte.d.ts +22 -0
  683. package/dist/fancy-ui/sources/Sources.svelte +75 -0
  684. package/dist/fancy-ui/sources/Sources.svelte.d.ts +22 -0
  685. package/dist/fancy-ui/sources/Sources.test.d.ts +1 -0
  686. package/dist/fancy-ui/sources/Sources.test.js +140 -0
  687. package/dist/fancy-ui/sources/SourcesHarness.test.svelte +36 -0
  688. package/dist/fancy-ui/sources/SourcesHarness.test.svelte.d.ts +12 -0
  689. package/dist/fancy-ui/sources/SourcesList.svelte +123 -0
  690. package/dist/fancy-ui/sources/SourcesList.svelte.d.ts +14 -0
  691. package/dist/fancy-ui/sources/SourcesParts.test.d.ts +1 -0
  692. package/dist/fancy-ui/sources/SourcesParts.test.js +245 -0
  693. package/dist/fancy-ui/sources/SourcesTrigger.svelte +126 -0
  694. package/dist/fancy-ui/sources/SourcesTrigger.svelte.d.ts +12 -0
  695. package/dist/fancy-ui/sources/index.d.ts +10 -0
  696. package/dist/fancy-ui/sources/index.js +6 -0
  697. package/dist/fancy-ui/sources/types.d.ts +26 -0
  698. package/dist/fancy-ui/sources/types.js +10 -0
  699. package/dist/fancy-ui/stepper/README.md +173 -0
  700. package/dist/fancy-ui/stepper/Step.svelte +247 -0
  701. package/dist/fancy-ui/stepper/Step.svelte.d.ts +21 -0
  702. package/dist/fancy-ui/stepper/Stepper.svelte +123 -0
  703. package/dist/fancy-ui/stepper/Stepper.svelte.d.ts +22 -0
  704. package/dist/fancy-ui/stepper/Stepper.test.d.ts +1 -0
  705. package/dist/fancy-ui/stepper/Stepper.test.js +197 -0
  706. package/dist/fancy-ui/stepper/StepperHarness.test.svelte +49 -0
  707. package/dist/fancy-ui/stepper/StepperHarness.test.svelte.d.ts +15 -0
  708. package/dist/fancy-ui/stepper/index.d.ts +6 -0
  709. package/dist/fancy-ui/stepper/index.js +4 -0
  710. package/dist/fancy-ui/stepper/types.d.ts +45 -0
  711. package/dist/fancy-ui/stepper/types.js +1 -0
  712. package/dist/fancy-ui/streaming-text/README.md +80 -0
  713. package/dist/fancy-ui/streaming-text/StreamingText.svelte +126 -0
  714. package/dist/fancy-ui/streaming-text/StreamingText.svelte.d.ts +27 -0
  715. package/dist/fancy-ui/streaming-text/StreamingText.test.d.ts +1 -0
  716. package/dist/fancy-ui/streaming-text/StreamingText.test.js +98 -0
  717. package/dist/fancy-ui/streaming-text/index.d.ts +3 -0
  718. package/dist/fancy-ui/streaming-text/index.js +2 -0
  719. package/dist/fancy-ui/subagent-list/README.md +153 -0
  720. package/dist/fancy-ui/subagent-list/SubagentList.svelte +438 -0
  721. package/dist/fancy-ui/subagent-list/SubagentList.svelte.d.ts +27 -0
  722. package/dist/fancy-ui/subagent-list/SubagentList.test.d.ts +1 -0
  723. package/dist/fancy-ui/subagent-list/SubagentList.test.js +303 -0
  724. package/dist/fancy-ui/subagent-list/index.d.ts +3 -0
  725. package/dist/fancy-ui/subagent-list/index.js +2 -0
  726. package/dist/fancy-ui/switch/README.md +143 -0
  727. package/dist/fancy-ui/switch/Switch.svelte +233 -0
  728. package/dist/fancy-ui/switch/Switch.svelte.d.ts +40 -0
  729. package/dist/fancy-ui/switch/Switch.test.d.ts +1 -0
  730. package/dist/fancy-ui/switch/Switch.test.js +199 -0
  731. package/dist/fancy-ui/switch/SwitchFieldHarness.test.svelte +25 -0
  732. package/dist/fancy-ui/switch/SwitchFieldHarness.test.svelte.d.ts +7 -0
  733. package/dist/fancy-ui/switch/SwitchHarness.test.svelte +28 -0
  734. package/dist/fancy-ui/switch/SwitchHarness.test.svelte.d.ts +7 -0
  735. package/dist/fancy-ui/switch/index.d.ts +3 -0
  736. package/dist/fancy-ui/switch/index.js +2 -0
  737. package/dist/fancy-ui/tabs/README.md +271 -0
  738. package/dist/fancy-ui/tabs/Tabs.svelte +218 -0
  739. package/dist/fancy-ui/tabs/Tabs.svelte.d.ts +26 -0
  740. package/dist/fancy-ui/tabs/Tabs.test.d.ts +1 -0
  741. package/dist/fancy-ui/tabs/Tabs.test.js +392 -0
  742. package/dist/fancy-ui/tabs/TabsContent.svelte +58 -0
  743. package/dist/fancy-ui/tabs/TabsContent.svelte.d.ts +22 -0
  744. package/dist/fancy-ui/tabs/TabsHarness.test.svelte +53 -0
  745. package/dist/fancy-ui/tabs/TabsHarness.test.svelte.d.ts +17 -0
  746. package/dist/fancy-ui/tabs/TabsList.svelte +73 -0
  747. package/dist/fancy-ui/tabs/TabsList.svelte.d.ts +12 -0
  748. package/dist/fancy-ui/tabs/TabsTrigger.svelte +246 -0
  749. package/dist/fancy-ui/tabs/TabsTrigger.svelte.d.ts +16 -0
  750. package/dist/fancy-ui/tabs/index.d.ts +10 -0
  751. package/dist/fancy-ui/tabs/index.js +6 -0
  752. package/dist/fancy-ui/tabs/types.d.ts +66 -0
  753. package/dist/fancy-ui/tabs/types.js +16 -0
  754. package/dist/fancy-ui/terminal-block/README.md +109 -0
  755. package/dist/fancy-ui/terminal-block/TerminalBlock.svelte +263 -0
  756. package/dist/fancy-ui/terminal-block/TerminalBlock.svelte.d.ts +31 -0
  757. package/dist/fancy-ui/terminal-block/TerminalBlock.test.d.ts +1 -0
  758. package/dist/fancy-ui/terminal-block/TerminalBlock.test.js +197 -0
  759. package/dist/fancy-ui/terminal-block/ansi.d.ts +30 -0
  760. package/dist/fancy-ui/terminal-block/ansi.js +163 -0
  761. package/dist/fancy-ui/terminal-block/ansi.test.d.ts +1 -0
  762. package/dist/fancy-ui/terminal-block/ansi.test.js +123 -0
  763. package/dist/fancy-ui/terminal-block/index.d.ts +3 -0
  764. package/dist/fancy-ui/terminal-block/index.js +2 -0
  765. package/dist/fancy-ui/textarea/README.md +134 -0
  766. package/dist/fancy-ui/textarea/Textarea.svelte +225 -0
  767. package/dist/fancy-ui/textarea/Textarea.svelte.d.ts +40 -0
  768. package/dist/fancy-ui/textarea/Textarea.test.d.ts +1 -0
  769. package/dist/fancy-ui/textarea/Textarea.test.js +179 -0
  770. package/dist/fancy-ui/textarea/TextareaFieldHarness.test.svelte +49 -0
  771. package/dist/fancy-ui/textarea/TextareaFieldHarness.test.svelte.d.ts +7 -0
  772. package/dist/fancy-ui/textarea/TextareaHarness.test.svelte +28 -0
  773. package/dist/fancy-ui/textarea/TextareaHarness.test.svelte.d.ts +7 -0
  774. package/dist/fancy-ui/textarea/index.d.ts +3 -0
  775. package/dist/fancy-ui/textarea/index.js +2 -0
  776. package/dist/fancy-ui/thinking-indicator/README.md +64 -0
  777. package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.svelte +189 -0
  778. package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.svelte.d.ts +27 -0
  779. package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.test.d.ts +1 -0
  780. package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.test.js +148 -0
  781. package/dist/fancy-ui/thinking-indicator/index.d.ts +3 -0
  782. package/dist/fancy-ui/thinking-indicator/index.js +2 -0
  783. package/dist/fancy-ui/thread-list/README.md +141 -0
  784. package/dist/fancy-ui/thread-list/ThreadList.svelte +340 -0
  785. package/dist/fancy-ui/thread-list/ThreadList.svelte.d.ts +28 -0
  786. package/dist/fancy-ui/thread-list/ThreadList.test.d.ts +1 -0
  787. package/dist/fancy-ui/thread-list/ThreadList.test.js +267 -0
  788. package/dist/fancy-ui/thread-list/ThreadListHarness.test.svelte +61 -0
  789. package/dist/fancy-ui/thread-list/ThreadListHarness.test.svelte.d.ts +15 -0
  790. package/dist/fancy-ui/thread-list/index.d.ts +3 -0
  791. package/dist/fancy-ui/thread-list/index.js +2 -0
  792. package/dist/fancy-ui/time-picker/README.md +155 -0
  793. package/dist/fancy-ui/time-picker/TimePicker.svelte +297 -0
  794. package/dist/fancy-ui/time-picker/TimePicker.svelte.d.ts +37 -0
  795. package/dist/fancy-ui/time-picker/TimePicker.test.d.ts +1 -0
  796. package/dist/fancy-ui/time-picker/TimePicker.test.js +365 -0
  797. package/dist/fancy-ui/time-picker/TimePickerFieldHarness.test.svelte +35 -0
  798. package/dist/fancy-ui/time-picker/TimePickerFieldHarness.test.svelte.d.ts +11 -0
  799. package/dist/fancy-ui/time-picker/TimePickerHarness.test.svelte +28 -0
  800. package/dist/fancy-ui/time-picker/TimePickerHarness.test.svelte.d.ts +7 -0
  801. package/dist/fancy-ui/time-picker/TimePickerPanel.svelte +109 -0
  802. package/dist/fancy-ui/time-picker/TimePickerPanel.svelte.d.ts +9 -0
  803. package/dist/fancy-ui/time-picker/index.d.ts +3 -0
  804. package/dist/fancy-ui/time-picker/index.js +2 -0
  805. package/dist/fancy-ui/time-picker/time-utils.d.ts +33 -0
  806. package/dist/fancy-ui/time-picker/time-utils.js +96 -0
  807. package/dist/fancy-ui/time-picker/time-utils.test.d.ts +1 -0
  808. package/dist/fancy-ui/time-picker/time-utils.test.js +123 -0
  809. package/dist/fancy-ui/time-picker/types.d.ts +32 -0
  810. package/dist/fancy-ui/time-picker/types.js +1 -0
  811. package/dist/fancy-ui/toast/README.md +180 -0
  812. package/dist/fancy-ui/toast/Toast.svelte +203 -0
  813. package/dist/fancy-ui/toast/Toast.svelte.d.ts +12 -0
  814. package/dist/fancy-ui/toast/Toast.test.d.ts +1 -0
  815. package/dist/fancy-ui/toast/Toast.test.js +274 -0
  816. package/dist/fancy-ui/toast/Toaster.svelte +111 -0
  817. package/dist/fancy-ui/toast/Toaster.svelte.d.ts +12 -0
  818. package/dist/fancy-ui/toast/index.d.ts +4 -0
  819. package/dist/fancy-ui/toast/index.js +4 -0
  820. package/dist/fancy-ui/toast/store.svelte.d.ts +95 -0
  821. package/dist/fancy-ui/toast/store.svelte.js +160 -0
  822. package/dist/fancy-ui/toggle/README.md +89 -0
  823. package/dist/fancy-ui/toggle/Toggle.svelte +120 -0
  824. package/dist/fancy-ui/toggle/Toggle.svelte.d.ts +26 -0
  825. package/dist/fancy-ui/toggle/Toggle.test.d.ts +1 -0
  826. package/dist/fancy-ui/toggle/Toggle.test.js +97 -0
  827. package/dist/fancy-ui/toggle/ToggleHarness.test.svelte +30 -0
  828. package/dist/fancy-ui/toggle/ToggleHarness.test.svelte.d.ts +7 -0
  829. package/dist/fancy-ui/toggle/index.d.ts +3 -0
  830. package/dist/fancy-ui/toggle/index.js +2 -0
  831. package/dist/fancy-ui/toggle-group/README.md +206 -0
  832. package/dist/fancy-ui/toggle-group/ToggleGroup.svelte +259 -0
  833. package/dist/fancy-ui/toggle-group/ToggleGroup.svelte.d.ts +29 -0
  834. package/dist/fancy-ui/toggle-group/ToggleGroup.test.d.ts +1 -0
  835. package/dist/fancy-ui/toggle-group/ToggleGroup.test.js +382 -0
  836. package/dist/fancy-ui/toggle-group/ToggleGroupHarness.test.svelte +50 -0
  837. package/dist/fancy-ui/toggle-group/ToggleGroupHarness.test.svelte.d.ts +18 -0
  838. package/dist/fancy-ui/toggle-group/ToggleGroupItem.svelte +173 -0
  839. package/dist/fancy-ui/toggle-group/ToggleGroupItem.svelte.d.ts +18 -0
  840. package/dist/fancy-ui/toggle-group/index.d.ts +6 -0
  841. package/dist/fancy-ui/toggle-group/index.js +4 -0
  842. package/dist/fancy-ui/toggle-group/types.d.ts +50 -0
  843. package/dist/fancy-ui/toggle-group/types.js +17 -0
  844. package/dist/fancy-ui/tool-call/README.md +137 -0
  845. package/dist/fancy-ui/tool-call/ToolCall.svelte +430 -0
  846. package/dist/fancy-ui/tool-call/ToolCall.svelte.d.ts +30 -0
  847. package/dist/fancy-ui/tool-call/ToolCall.test.d.ts +1 -0
  848. package/dist/fancy-ui/tool-call/ToolCall.test.js +241 -0
  849. package/dist/fancy-ui/tool-call/index.d.ts +3 -0
  850. package/dist/fancy-ui/tool-call/index.js +2 -0
  851. package/dist/fancy-ui/tool-timeline/README.md +106 -0
  852. package/dist/fancy-ui/tool-timeline/ToolTimeline.svelte +263 -0
  853. package/dist/fancy-ui/tool-timeline/ToolTimeline.svelte.d.ts +24 -0
  854. package/dist/fancy-ui/tool-timeline/ToolTimeline.test.d.ts +1 -0
  855. package/dist/fancy-ui/tool-timeline/ToolTimeline.test.js +160 -0
  856. package/dist/fancy-ui/tool-timeline/index.d.ts +3 -0
  857. package/dist/fancy-ui/tool-timeline/index.js +2 -0
  858. package/dist/fancy-ui/tooltip/README.md +133 -0
  859. package/dist/fancy-ui/tooltip/Tooltip.svelte +307 -0
  860. package/dist/fancy-ui/tooltip/Tooltip.svelte.d.ts +32 -0
  861. package/dist/fancy-ui/tooltip/Tooltip.test.d.ts +1 -0
  862. package/dist/fancy-ui/tooltip/Tooltip.test.js +299 -0
  863. package/dist/fancy-ui/tooltip/index.d.ts +3 -0
  864. package/dist/fancy-ui/tooltip/index.js +2 -0
  865. package/dist/fancy-ui/typing-indicator/README.md +49 -0
  866. package/dist/fancy-ui/typing-indicator/TypingIndicator.svelte +97 -0
  867. package/dist/fancy-ui/typing-indicator/TypingIndicator.svelte.d.ts +17 -0
  868. package/dist/fancy-ui/typing-indicator/TypingIndicator.test.d.ts +1 -0
  869. package/dist/fancy-ui/typing-indicator/TypingIndicator.test.js +60 -0
  870. package/dist/fancy-ui/typing-indicator/index.d.ts +3 -0
  871. package/dist/fancy-ui/typing-indicator/index.js +2 -0
  872. package/dist/fancy-ui/voice-input/README.md +149 -0
  873. package/dist/fancy-ui/voice-input/VoiceInput.svelte +407 -0
  874. package/dist/fancy-ui/voice-input/VoiceInput.svelte.d.ts +43 -0
  875. package/dist/fancy-ui/voice-input/VoiceInput.test.d.ts +1 -0
  876. package/dist/fancy-ui/voice-input/VoiceInput.test.js +264 -0
  877. package/dist/fancy-ui/voice-input/VoiceInputHarness.test.svelte +34 -0
  878. package/dist/fancy-ui/voice-input/VoiceInputHarness.test.svelte.d.ts +11 -0
  879. package/dist/fancy-ui/voice-input/index.d.ts +3 -0
  880. package/dist/fancy-ui/voice-input/index.js +2 -0
  881. package/dist/fancy-ui/web-search/README.md +105 -0
  882. package/dist/fancy-ui/web-search/WebSearch.svelte +335 -0
  883. package/dist/fancy-ui/web-search/WebSearch.svelte.d.ts +28 -0
  884. package/dist/fancy-ui/web-search/WebSearch.test.d.ts +1 -0
  885. package/dist/fancy-ui/web-search/WebSearch.test.js +265 -0
  886. package/dist/fancy-ui/web-search/index.d.ts +3 -0
  887. package/dist/fancy-ui/web-search/index.js +2 -0
  888. package/dist/types.d.ts +3 -1
  889. package/package.json +5 -3
package/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <img src=".github/logo.png" alt="FancyUI" width="88" height="88" />
3
+ </p>
4
+
1
5
  # fancy-ui
2
6
 
3
7
  Beautiful animation and UI components for **Svelte 5**.
@@ -5,7 +9,7 @@ Beautiful animation and UI components for **Svelte 5**.
5
9
  ![Svelte 5](https://img.shields.io/badge/Svelte-5-FF3E00?logo=svelte&logoColor=white)
6
10
  ![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4-06B6D4?logo=tailwindcss&logoColor=white)
7
11
  ![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6?logo=typescript&logoColor=white)
8
- ![Components](https://img.shields.io/badge/Components-61-8B5CF6)
12
+ ![Components](https://img.shields.io/badge/Components-132-8B5CF6)
9
13
  ![MIT License](https://img.shields.io/badge/License-MIT-green)
10
14
 
11
15
  <p align="center">
@@ -32,107 +36,9 @@ Beautiful animation and UI components for **Svelte 5**.
32
36
  - **Svelte 5 Runes** &mdash; Built with `$state`, `$derived`, `$effect`, and `$props`
33
37
  - **Tailwind CSS 4** &mdash; Utility-first styling with theme tokens
34
38
  - **TypeScript** &mdash; Fully typed props and events
35
- - **61 Components** &mdash; Buttons, text animations, backgrounds, effects, and more
39
+ - **132 Components** &mdash; Core primitives (forms, navigation, overlays) alongside buttons, text animations, backgrounds and effects
36
40
  - **Dark Mode** &mdash; All components support light and dark themes
37
- - **Tested** &mdash; 600+ unit tests with Vitest and Testing Library
38
-
39
- ## Components
40
-
41
- ### Buttons
42
-
43
- | Component | Description | Demo |
44
- | ---------------------- | ---------------------------------------- | -------------------------------------------------------------------------- |
45
- | RainbowButton | Animated rainbow gradient border effect | [Demo](https://fancy-ui.rama.app/docs/components/rainbow-button) |
46
- | RippleButton | Ripple click effect | [Demo](https://fancy-ui.rama.app/docs/components/ripple-button) |
47
- | ShimmerButton | Rotating conic-gradient shimmer border | [Demo](https://fancy-ui.rama.app/docs/components/shimmer-button) |
48
- | GradientButton | Rotating conic-gradient rainbow border | [Demo](https://fancy-ui.rama.app/docs/components/gradient-button) |
49
- | InteractiveHoverButton | Hover effect revealing alternate content | [Demo](https://fancy-ui.rama.app/docs/components/interactive-hover-button) |
50
-
51
- ### Cards
52
-
53
- | Component | Description | Demo |
54
- | ------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- |
55
- | AppleCardCarousel | Horizontal card carousel with spring-animated full-screen expansion | [Demo](https://fancy-ui.rama.app/docs/components/apple-card-carousel) |
56
- | Card3D | 3D tilt card with mouse tracking | [Demo](https://fancy-ui.rama.app/docs/components/card-3d) |
57
- | CardSpotlight | Spotlight effect following mouse | [Demo](https://fancy-ui.rama.app/docs/components/card-spotlight) |
58
- | DirectionAwareHover | Overlay slides in from mouse entry direction | [Demo](https://fancy-ui.rama.app/docs/components/direction-aware-hover) |
59
- | FlipCard | Two-sided card with flip animation | [Demo](https://fancy-ui.rama.app/docs/components/flip-card) |
60
- | GlareCard | Glare reflection effect on hover | [Demo](https://fancy-ui.rama.app/docs/components/glare-card) |
61
- | TextRevealCard | Text reveal on hover | [Demo](https://fancy-ui.rama.app/docs/components/text-reveal-card) |
62
-
63
- ### Text & Typography
64
-
65
- | Component | Description | Demo |
66
- | ------------------ | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
67
- | BlurReveal | Scroll-triggered blur-to-clear reveal | [Demo](https://fancy-ui.rama.app/docs/components/blur-reveal) |
68
- | BoxReveal | Sliding colored box reveal animation | [Demo](https://fancy-ui.rama.app/docs/components/box-reveal) |
69
- | ColourfulText | Per-character color animation | [Demo](https://fancy-ui.rama.app/docs/components/colourful-text) |
70
- | ContainerTextFlip | Text flipping inside a container | [Demo](https://fancy-ui.rama.app/docs/components/container-text-flip) |
71
- | DisplacementText | 3D text with WebGL displacement that follows the cursor using Three.js shaders | [Demo](https://fancy-ui.rama.app/docs/components/displacement-text) |
72
- | EditorialEngine | Live magazine layout with multi-column text flowing around draggable orbs | [Demo](https://fancy-ui.rama.app/docs/components/editorial-engine) |
73
- | FlipWords | Cycling word animation with per-letter effects | [Demo](https://fancy-ui.rama.app/docs/components/flip-words) |
74
- | HyperText | Character scramble on hover | [Demo](https://fancy-ui.rama.app/docs/components/hyper-text) |
75
- | LetterPullup | Staggered letter pull-up animation | [Demo](https://fancy-ui.rama.app/docs/components/letter-pullup) |
76
- | LineReveal | Staggered line-by-line text reveal | [Demo](https://fancy-ui.rama.app/docs/components/line-reveal) |
77
- | LineShadowText | Text with animated line shadow | [Demo](https://fancy-ui.rama.app/docs/components/line-shadow-text) |
78
- | LiquidText | Big text that liquefies along the cursor's path via a WebGL fluid solver | [Demo](https://fancy-ui.rama.app/docs/components/liquid-text) |
79
- | NumberTicker | Animated number counter with easing | [Demo](https://fancy-ui.rama.app/docs/components/number-ticker) |
80
- | SparklesText | Animated SVG sparkle stars overlay | [Demo](https://fancy-ui.rama.app/docs/components/sparkles-text) |
81
- | TerminalText | Terminal-style text streamer with blinking cursor and glitch effect | [Demo](https://fancy-ui.rama.app/docs/components/terminal-text) |
82
- | TextGenerateEffect | Word-by-word text generation effect | [Demo](https://fancy-ui.rama.app/docs/components/text-generate-effect) |
83
-
84
- ### Backgrounds
85
-
86
- | Component | Description | Demo |
87
- | ---------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
88
- | FallingStarsBg | Canvas 3D starfield with motion trails | [Demo](https://fancy-ui.rama.app/docs/components/bg-falling-stars) |
89
- | FlickeringGrid | Canvas grid with flickering opacity | [Demo](https://fancy-ui.rama.app/docs/components/flickering-grid) |
90
- | InteractiveGridPattern | SVG grid with hover highlights | [Demo](https://fancy-ui.rama.app/docs/components/interactive-grid-pattern) |
91
- | MatrixRain | Canvas-based falling glyph rain with configurable color, speed, and density | [Demo](https://fancy-ui.rama.app/docs/components/matrix-rain) |
92
- | StarsBackground | Starfield with parallax mouse tracking | [Demo](https://fancy-ui.rama.app/docs/components/bg-stars) |
93
-
94
- ### Effects & Animations
95
-
96
- | Component | Description | Demo |
97
- | ---------------- | -------------------------------------------------------------- | -------------------------------------------------------------------- |
98
- | AnimatedBeam | SVG beams connecting elements | [Demo](https://fancy-ui.rama.app/docs/components/animated-beam) |
99
- | BorderBeam | Beam effect traveling around borders | [Demo](https://fancy-ui.rama.app/docs/components/border-beam) |
100
- | Confetti | Configurable confetti burst | [Demo](https://fancy-ui.rama.app/docs/components/confetti) |
101
- | FluidCursor | WebGL fluid simulation following cursor | [Demo](https://fancy-ui.rama.app/docs/components/fluid-cursor) |
102
- | FrostedGlass | Frosted glass surface with organic turbulence-noise refraction | [Demo](https://fancy-ui.rama.app/docs/components/frosted-glass) |
103
- | GlowBorder | Animated glowing border with gradients | [Demo](https://fancy-ui.rama.app/docs/components/glow-border) |
104
- | GlowingEffect | Glowing highlight on hover | [Demo](https://fancy-ui.rama.app/docs/components/glowing-effect) |
105
- | ImageTrailCursor | Cursor-following image trail (8 variants) | [Demo](https://fancy-ui.rama.app/docs/components/image-trail-cursor) |
106
- | LiquidGlass | Liquid glass morphism effect | [Demo](https://fancy-ui.rama.app/docs/components/liquid-glass) |
107
- | Meteors | Animated meteor shower effect | [Demo](https://fancy-ui.rama.app/docs/components/meteors) |
108
- | NeonBorder | Dual-color neon glow border | [Demo](https://fancy-ui.rama.app/docs/components/neon-border) |
109
- | Ripple | Expanding ripple rings | [Demo](https://fancy-ui.rama.app/docs/components/ripple) |
110
- | SmoothCursor | Smooth lagging cursor follower | [Demo](https://fancy-ui.rama.app/docs/components/smooth-cursor) |
111
- | Sparkles | Particle sparkle canvas | [Demo](https://fancy-ui.rama.app/docs/components/sparkles) |
112
- | TracingBeam | Scroll-driven tracing beam | [Demo](https://fancy-ui.rama.app/docs/components/tracing-beam) |
113
-
114
- ### Layout
115
-
116
- | Component | Description | Demo |
117
- | --------------- | --------------------------------------------- | ------------------------------------------------------------------ |
118
- | BentoGrid | Bento-style responsive grid layout | [Demo](https://fancy-ui.rama.app/docs/components/bento-grid) |
119
- | Book | 3D book flip animation | [Demo](https://fancy-ui.rama.app/docs/components/book) |
120
- | ContainerScroll | 3D scroll perspective container | [Demo](https://fancy-ui.rama.app/docs/components/container-scroll) |
121
- | Focus | Focus-expand card layout | [Demo](https://fancy-ui.rama.app/docs/components/focus) |
122
- | Marquee | Infinite scrolling for text, images, or cards | [Demo](https://fancy-ui.rama.app/docs/components/marquee) |
123
-
124
- ### Navigation & Display
125
-
126
- | Component | Description | Demo |
127
- | -------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
128
- | AnimatedTestimonials | Testimonial carousel with smooth slide animations and optional autoplay | [Demo](https://fancy-ui.rama.app/docs/components/animated-testimonials) |
129
- | AnimatedTooltip | Avatar row with mouse-following tooltips | [Demo](https://fancy-ui.rama.app/docs/components/animated-tooltip) |
130
- | Compare | Before/after image comparison slider | [Demo](https://fancy-ui.rama.app/docs/components/compare) |
131
- | Dock | Icon dock where items magnify as the cursor approaches | [Demo](https://fancy-ui.rama.app/docs/components/dock) |
132
- | LineHoverLink | Link with 11 animated underline hover effects, pure CSS | [Demo](https://fancy-ui.rama.app/docs/components/line-hover-link) |
133
- | LogoCloud | Marquee, grid, and icon logo layouts | [Demo](https://fancy-ui.rama.app/docs/components/logo-cloud) |
134
- | NoiseReveal | WebGL image reveal with a Perlin-noise dissolve mask | [Demo](https://fancy-ui.rama.app/docs/components/noise-reveal) |
135
- | Timeline | Vertical timeline with scroll-driven progress | [Demo](https://fancy-ui.rama.app/docs/components/timeline) |
41
+ - **Tested** &mdash; 2,900+ unit tests with Vitest and Testing Library
136
42
 
137
43
  ## Quick Start
138
44
 
@@ -245,7 +151,7 @@ Component tests are colocated with their component (see `RainbowButton.test.ts`
245
151
 
246
152
  ## Contributing
247
153
 
248
- Contributions are welcome! 61 components and counting — PRs for new components, bug fixes, and improvements are appreciated.
154
+ Contributions are welcome! 132 components and counting — PRs for new components, bug fixes, and improvements are appreciated.
249
155
 
250
156
  ### Adding a new component
251
157
 
@@ -0,0 +1,25 @@
1
+ <!--
2
+ Test-only rig: a stand-in for "any control in this wave". It calls
3
+ getField() the same way a real one would and dumps the result onto its own
4
+ attributes so a test can read it back — proving `undefined` outside a
5
+ provider, and the exact object a provider published inside one. Not
6
+ exported from index.ts, and not collected by Vitest (the run includes
7
+ `*.test.ts` only).
8
+ -->
9
+ <script lang="ts">
10
+ import { getField } from "./field.svelte.js";
11
+
12
+ const field = getField();
13
+ </script>
14
+
15
+ <div
16
+ data-testid="consumer"
17
+ data-has-field={field !== undefined}
18
+ data-control-id={field?.controlId}
19
+ data-label-id={field?.labelId}
20
+ data-described-by={field?.describedBy}
21
+ data-invalid={field?.invalid}
22
+ data-valid={field?.valid}
23
+ data-required={field?.required}
24
+ data-disabled={field?.disabled}
25
+ ></div>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const FieldConsumer: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type FieldConsumer = InstanceType<typeof FieldConsumer>;
18
+ export default FieldConsumer;
@@ -0,0 +1,37 @@
1
+ <!--
2
+ Test-only rig: publishes `field` under FIELD_KEY when given, then renders a
3
+ FieldConsumer beneath it. `setContext`/`getContext` only resolve through a
4
+ real component tree, so proving getField() sees a provider's value — and
5
+ sees nothing at all with no `field` prop — needs two real component
6
+ instances rather than a raw snippet. Not exported from index.ts, and not
7
+ collected by Vitest (the run includes `*.test.ts` only).
8
+ -->
9
+ <script lang="ts">
10
+ import { setContext, untrack } from "svelte";
11
+ import { FIELD_KEY, type FieldContext } from "./field.svelte.js";
12
+ import FieldConsumer from "./FieldConsumer.test.svelte";
13
+
14
+ interface Props {
15
+ /** Omit to render the consumer with no provider above it at all. */
16
+ field?: FieldContext;
17
+ }
18
+
19
+ let { field }: Props = $props();
20
+
21
+ // setContext must run synchronously during this component's own
22
+ // initialization, never inside an effect — so this deliberately reads
23
+ // `field` exactly once, capturing whatever the harness was mounted with.
24
+ // Publishing `undefined` explicitly is indistinguishable from publishing
25
+ // nothing at all: getField() reads back `undefined` from the context map
26
+ // either way, which is exactly the "no provider" case this harness needs
27
+ // to produce. Wrapped in `untrack` so the compiler's
28
+ // `state_referenced_locally` warning — which exists to catch a *reactive*
29
+ // read that silently only fires once — doesn't fire on a read that is
30
+ // deliberately one-shot.
31
+ setContext(
32
+ FIELD_KEY,
33
+ untrack(() => field)
34
+ );
35
+ </script>
36
+
37
+ <FieldConsumer />
@@ -0,0 +1,8 @@
1
+ import { type FieldContext } from "./field.svelte.js";
2
+ interface Props {
3
+ /** Omit to render the consumer with no provider above it at all. */
4
+ field?: FieldContext;
5
+ }
6
+ declare const FieldHarness: import("svelte").Component<Props, {}, "">;
7
+ type FieldHarness = ReturnType<typeof FieldHarness>;
8
+ export default FieldHarness;
@@ -0,0 +1,227 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from "svelte";
3
+ import type { BlockToken } from "./markdown.js";
4
+
5
+ export interface MarkdownProps {
6
+ /** Markdown source. Safe to update on every streamed chunk. */
7
+ text?: string;
8
+ class?: string;
9
+ /**
10
+ * Already-parsed blocks, used when the component renders itself for a
11
+ * blockquote. Consumers pass `text`.
12
+ */
13
+ blocks?: BlockToken[];
14
+ /**
15
+ * Rendered inline at the very end of the document — a streaming caret, say.
16
+ * Every block here is block-level, so a caret placed after the component
17
+ * would sit on its own line instead of trailing the last character; this
18
+ * puts it inside the last paragraph, heading or list item instead. A
19
+ * document ending in code, a table, a rule, or nothing at all has no inline
20
+ * tail to hold it, and drops it.
21
+ */
22
+ trailingCursor?: Snippet;
23
+ }
24
+ </script>
25
+
26
+ <script lang="ts">
27
+ import { cn } from "../../utils.js";
28
+ import { parseMarkdown } from "./markdown.js";
29
+ import MarkdownInline from "./MarkdownInline.svelte";
30
+ import Self from "./Markdown.svelte";
31
+
32
+ let { text = "", class: className, blocks, trailingCursor }: MarkdownProps = $props();
33
+
34
+ let nodes = $derived(blocks ?? parseMarkdown(text));
35
+ let lastIndex = $derived(nodes.length - 1);
36
+ </script>
37
+
38
+ <div class={cn("ft-md", className)}>
39
+ {#each nodes as block, index}
40
+ {@const cursor = index === lastIndex ? trailingCursor : undefined}
41
+ {#if block.type === "paragraph"}
42
+ <p class="ft-md-p">
43
+ <MarkdownInline tokens={block.children} />{#if cursor}{@render cursor()}{/if}
44
+ </p>
45
+ {:else if block.type === "heading"}
46
+ <svelte:element this={`h${block.depth}`} class="ft-md-h" data-depth={block.depth}
47
+ ><MarkdownInline
48
+ tokens={block.children}
49
+ />{#if cursor}{@render cursor()}{/if}</svelte:element
50
+ >
51
+ {:else if block.type === "code"}
52
+ <pre class="ft-md-pre" data-lang={block.lang || null}><code>{block.text}</code></pre>
53
+ {:else if block.type === "list"}
54
+ {#if block.ordered}
55
+ <ol class="ft-md-ol" start={block.start}>
56
+ {#each block.items as item, itemIndex}
57
+ <li>
58
+ <MarkdownInline
59
+ tokens={item}
60
+ />{#if cursor && itemIndex === block.items.length - 1}{@render cursor()}{/if}
61
+ </li>
62
+ {/each}
63
+ </ol>
64
+ {:else}
65
+ <ul class="ft-md-ul">
66
+ {#each block.items as item, itemIndex}
67
+ <li>
68
+ <MarkdownInline
69
+ tokens={item}
70
+ />{#if cursor && itemIndex === block.items.length - 1}{@render cursor()}{/if}
71
+ </li>
72
+ {/each}
73
+ </ul>
74
+ {/if}
75
+ {:else if block.type === "blockquote"}
76
+ <blockquote class="ft-md-quote">
77
+ <Self blocks={block.children} trailingCursor={cursor} />
78
+ </blockquote>
79
+ {:else if block.type === "table"}
80
+ <div class="ft-md-table-scroll">
81
+ <table class="ft-md-table">
82
+ <thead>
83
+ <tr>
84
+ {#each block.header as cell, i}
85
+ <th style:text-align={block.align[i] ?? undefined}>
86
+ <MarkdownInline tokens={cell} />
87
+ </th>
88
+ {/each}
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+ {#each block.rows as row}
93
+ <tr>
94
+ {#each row as cell, i}
95
+ <td style:text-align={block.align[i] ?? undefined}>
96
+ <MarkdownInline tokens={cell} />
97
+ </td>
98
+ {/each}
99
+ </tr>
100
+ {/each}
101
+ </tbody>
102
+ </table>
103
+ </div>
104
+ {:else if block.type === "hr"}
105
+ <hr class="ft-md-hr" />
106
+ {/if}
107
+ {/each}
108
+ </div>
109
+
110
+ <style>
111
+ /*
112
+ * Typographic normalization, not a theme. Rendered markdown has to stay
113
+ * legible in a host app whose reset has stripped list markers and heading
114
+ * scale, so these defaults restore structure and nothing else — no palette,
115
+ * no font stack, no spacing opinions beyond the flow rhythm. Every value the
116
+ * host is likely to disagree with reads from a custom property first, and
117
+ * colours are mixed from `currentColor` so a dark surface needs no override.
118
+ *
119
+ * Styles are scoped. The blockquote branch renders this same component
120
+ * recursively, and a recursive instance is still this component class, so it
121
+ * carries the same scoping class and inherits every rule below — no :global
122
+ * escape needed. Inline marks (code spans, links, emphasis) belong to
123
+ * MarkdownInline and are styled there.
124
+ */
125
+
126
+ .ft-md {
127
+ line-height: 1.6;
128
+ }
129
+
130
+ /* One rhythm for every block, whatever margins the UA or reset supplies. */
131
+ .ft-md > * {
132
+ margin: 0;
133
+ }
134
+
135
+ .ft-md > * + * {
136
+ margin-block-start: 0.75em;
137
+ }
138
+
139
+ .ft-md > * + .ft-md-h {
140
+ margin-block-start: 1.25em;
141
+ }
142
+
143
+ .ft-md > * + .ft-md-hr,
144
+ .ft-md > .ft-md-hr + * {
145
+ margin-block-start: 1em;
146
+ }
147
+
148
+ .ft-md-h {
149
+ font-weight: 600;
150
+ line-height: 1.25;
151
+ }
152
+
153
+ .ft-md-h[data-depth="1"] {
154
+ font-size: 1.5em;
155
+ }
156
+
157
+ .ft-md-h[data-depth="2"] {
158
+ font-size: 1.3em;
159
+ }
160
+
161
+ .ft-md-h[data-depth="3"] {
162
+ font-size: 1.15em;
163
+ }
164
+
165
+ .ft-md-h[data-depth="4"] {
166
+ font-size: 1.05em;
167
+ }
168
+
169
+ .ft-md-h[data-depth="5"] {
170
+ font-size: 1em;
171
+ }
172
+
173
+ .ft-md-h[data-depth="6"] {
174
+ font-size: 0.95em;
175
+ }
176
+
177
+ .ft-md-ul {
178
+ list-style: disc;
179
+ padding-inline-start: 1.5em;
180
+ }
181
+
182
+ .ft-md-ol {
183
+ list-style: decimal;
184
+ padding-inline-start: 1.5em;
185
+ }
186
+
187
+ .ft-md-quote {
188
+ border-inline-start: 3px solid
189
+ var(--ft-md-quote-border, color-mix(in oklab, currentColor 25%, transparent));
190
+ padding-inline-start: 0.75em;
191
+ color: var(--ft-md-quote-color, color-mix(in oklab, currentColor 75%, transparent));
192
+ }
193
+
194
+ .ft-md-pre {
195
+ background: var(--ft-md-code-bg, color-mix(in oklab, currentColor 8%, transparent));
196
+ border-radius: 6px;
197
+ padding: 0.75em 1em;
198
+ overflow-x: auto;
199
+ font-size: 0.9em;
200
+ line-height: 1.5;
201
+ }
202
+
203
+ /* The wrapper scrolls so a wide table never widens the whole message. */
204
+ .ft-md-table-scroll {
205
+ overflow-x: auto;
206
+ }
207
+
208
+ .ft-md-table {
209
+ border-collapse: collapse;
210
+ }
211
+
212
+ .ft-md-table th,
213
+ .ft-md-table td {
214
+ border: 1px solid var(--ft-md-border, color-mix(in oklab, currentColor 15%, transparent));
215
+ padding: 0.35em 0.6em;
216
+ }
217
+
218
+ .ft-md-table th {
219
+ font-weight: 600;
220
+ }
221
+
222
+ .ft-md-hr {
223
+ border: 0;
224
+ border-block-start: 1px solid
225
+ var(--ft-md-border, color-mix(in oklab, currentColor 15%, transparent));
226
+ }
227
+ </style>
@@ -0,0 +1,24 @@
1
+ import type { Snippet } from "svelte";
2
+ import type { BlockToken } from "./markdown.js";
3
+ export interface MarkdownProps {
4
+ /** Markdown source. Safe to update on every streamed chunk. */
5
+ text?: string;
6
+ class?: string;
7
+ /**
8
+ * Already-parsed blocks, used when the component renders itself for a
9
+ * blockquote. Consumers pass `text`.
10
+ */
11
+ blocks?: BlockToken[];
12
+ /**
13
+ * Rendered inline at the very end of the document — a streaming caret, say.
14
+ * Every block here is block-level, so a caret placed after the component
15
+ * would sit on its own line instead of trailing the last character; this
16
+ * puts it inside the last paragraph, heading or list item instead. A
17
+ * document ending in code, a table, a rule, or nothing at all has no inline
18
+ * tail to hold it, and drops it.
19
+ */
20
+ trailingCursor?: Snippet;
21
+ }
22
+ declare const Markdown: import("svelte").Component<MarkdownProps, {}, "">;
23
+ type Markdown = ReturnType<typeof Markdown>;
24
+ export default Markdown;
@@ -0,0 +1,56 @@
1
+ <script lang="ts" module>
2
+ import type { InlineToken } from "./markdown.js";
3
+
4
+ export interface MarkdownInlineProps {
5
+ tokens: InlineToken[];
6
+ }
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import Self from "./MarkdownInline.svelte";
11
+
12
+ let { tokens }: MarkdownInlineProps = $props();
13
+ </script>
14
+
15
+ <!--
16
+ Whitespace between the branches below would show up in the rendered text, so
17
+ the markup stays tightly packed.
18
+ -->
19
+ {#each tokens as token}{#if token.type === "text"}{token.text}{:else if token.type === "code"}<code
20
+ class="ft-md-code">{token.text}</code
21
+ >{:else if token.type === "strong"}<strong><Self tokens={token.children} /></strong
22
+ >{:else if token.type === "em"}<em><Self tokens={token.children} /></em
23
+ >{:else if token.type === "del"}<del><Self tokens={token.children} /></del
24
+ >{:else if token.type === "link" && token.href !== null}<a
25
+ class="ft-md-link"
26
+ href={token.href}
27
+ rel="noopener noreferrer nofollow ugc"
28
+ target="_blank"><Self tokens={token.children} /></a
29
+ >{:else}<Self tokens={token.children} />{/if}{/each}
30
+
31
+ <style>
32
+ /*
33
+ * The inline half of the markdown defaults; block elements are styled in
34
+ * Markdown.svelte. Both marks below go invisible under a reset that strips
35
+ * link underlines and code backgrounds, which is what makes them worth
36
+ * shipping. Colours mix from `currentColor` so they follow the surface, and
37
+ * both read from a custom property first so a host can restyle them.
38
+ */
39
+
40
+ .ft-md-code {
41
+ background: var(--ft-md-code-bg, color-mix(in oklab, currentColor 8%, transparent));
42
+ border-radius: 4px;
43
+ padding: 0.1em 0.35em;
44
+ font-size: 0.9em;
45
+ }
46
+
47
+ .ft-md-link {
48
+ color: var(--ft-md-link, inherit);
49
+ text-decoration: underline;
50
+ text-underline-offset: 2px;
51
+ }
52
+
53
+ .ft-md-link:hover {
54
+ opacity: 0.8;
55
+ }
56
+ </style>
@@ -0,0 +1,7 @@
1
+ import type { InlineToken } from "./markdown.js";
2
+ export interface MarkdownInlineProps {
3
+ tokens: InlineToken[];
4
+ }
5
+ declare const MarkdownInline: import("svelte").Component<MarkdownInlineProps, {}, "">;
6
+ type MarkdownInline = ReturnType<typeof MarkdownInline>;
7
+ export default MarkdownInline;
@@ -0,0 +1,64 @@
1
+ <script lang="ts" module>
2
+ /**
3
+ * Props for StreamText
4
+ */
5
+ export interface StreamTextProps {
6
+ /** The whole text so far. Hand over a longer string to stream more in. */
7
+ text: string;
8
+ /** How long a newly arrived chunk stays tinted, in ms. */
9
+ settleMs?: number;
10
+ /** Additional CSS classes */
11
+ class?: string;
12
+ }
13
+ </script>
14
+
15
+ <script lang="ts">
16
+ import { onDestroy, untrack } from "svelte";
17
+ import { cn } from "../../utils.js";
18
+ import { createTextStream } from "./stream-text.svelte.js";
19
+
20
+ let { text, settleMs = 350, class: className }: StreamTextProps = $props();
21
+
22
+ // Built once, with the initial text already settled: the server renders the
23
+ // whole string as a single plain span and only later growth animates. Reading
24
+ // the text here is meant to capture its first value, hence the untrack —
25
+ // `settleMs` goes in as a getter so a later duration reaches later chunks
26
+ // instead of leaving them on the mount-time timeout the CSS no longer matches.
27
+ const stream = untrack(() => createTextStream(text, { settleMs: () => settleMs }));
28
+
29
+ // The first run pushes the text the stream was built from, which is a no-op.
30
+ $effect(() => {
31
+ stream.push(text);
32
+ });
33
+
34
+ onDestroy(() => stream.destroy());
35
+ </script>
36
+
37
+ <span class={cn("ft-stream", className)} style="white-space: pre-wrap; --ft-settle: {settleMs}ms"
38
+ >{#each stream.segments as segment (segment.id)}<span class:ft-fresh={segment.fresh}
39
+ >{segment.text}</span
40
+ >{/each}</span
41
+ >
42
+
43
+ <style>
44
+ /*
45
+ * Reduced motion gets plain text at its final colour: with the whole rule
46
+ * behind the query there is no animation to shorten or fall back from.
47
+ */
48
+ @media (prefers-reduced-motion: no-preference) {
49
+ .ft-fresh {
50
+ animation: ft-tint var(--ft-settle, 350ms) ease-out;
51
+ }
52
+
53
+ @keyframes ft-tint {
54
+ from {
55
+ color: var(--ft-tint-color, oklch(0.65 0.15 250));
56
+ opacity: 0.6;
57
+ }
58
+ to {
59
+ color: inherit;
60
+ opacity: 1;
61
+ }
62
+ }
63
+ }
64
+ </style>
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Props for StreamText
3
+ */
4
+ export interface StreamTextProps {
5
+ /** The whole text so far. Hand over a longer string to stream more in. */
6
+ text: string;
7
+ /** How long a newly arrived chunk stays tinted, in ms. */
8
+ settleMs?: number;
9
+ /** Additional CSS classes */
10
+ class?: string;
11
+ }
12
+ declare const StreamText: import("svelte").Component<StreamTextProps, {}, "">;
13
+ type StreamText = ReturnType<typeof StreamText>;
14
+ export default StreamText;
@@ -0,0 +1 @@
1
+ export {};