tera-system-ui 0.1.64 → 0.1.67

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 (361) hide show
  1. package/dist/COMPONENT_API.md +2 -539
  2. package/dist/components/accordion/Accordion.d.ts +24 -0
  3. package/dist/components/accordion/Accordion.js +4 -0
  4. package/dist/components/accordion/components/Accordion.svelte +2 -8
  5. package/dist/components/accordion/components/AccordionContent.svelte +5 -12
  6. package/dist/components/accordion/components/AccordionItem.svelte +3 -9
  7. package/dist/components/accordion/components/AccordionTrigger.svelte +5 -15
  8. package/dist/components/ai/ChatBubble.svelte +35 -0
  9. package/dist/components/ai/ChatBubble.svelte.d.ts +12 -0
  10. package/dist/components/ai/PromptInput.svelte +58 -0
  11. package/dist/components/ai/PromptInput.svelte.d.ts +13 -0
  12. package/dist/components/ai/StreamText.svelte +41 -0
  13. package/dist/components/ai/StreamText.svelte.d.ts +11 -0
  14. package/dist/components/ai/SuggestionChips.svelte +34 -0
  15. package/dist/components/ai/SuggestionChips.svelte.d.ts +10 -0
  16. package/dist/components/ai/ThinkingLoader.svelte +34 -0
  17. package/dist/components/ai/ThinkingLoader.svelte.d.ts +11 -0
  18. package/dist/components/ai/index.d.ts +5 -0
  19. package/dist/components/ai/index.js +5 -0
  20. package/dist/components/alert/Alert.svelte +47 -0
  21. package/dist/components/alert/Alert.svelte.d.ts +15 -0
  22. package/dist/components/alert/index.d.ts +1 -0
  23. package/dist/components/alert/index.js +1 -0
  24. package/dist/components/avatar/Avatar.svelte +9 -25
  25. package/dist/components/badge/Badge.d.ts +52 -0
  26. package/dist/components/badge/Badge.js +22 -0
  27. package/dist/components/badge/Badge.svelte +22 -0
  28. package/dist/components/badge/Badge.svelte.d.ts +4 -0
  29. package/dist/components/badge/index.d.ts +2 -0
  30. package/dist/components/badge/index.js +1 -0
  31. package/dist/components/brand-logo/BrandLogo.svelte +12 -10
  32. package/dist/components/button/Button.d.ts +2 -2
  33. package/dist/components/button/Button.js +12 -12
  34. package/dist/components/button/Button.svelte +7 -34
  35. package/dist/components/card/Card.d.ts +68 -0
  36. package/dist/components/card/Card.js +28 -0
  37. package/dist/components/card/Card.svelte +33 -0
  38. package/dist/components/card/Card.svelte.d.ts +4 -0
  39. package/dist/components/card/index.d.ts +2 -0
  40. package/dist/components/card/index.js +1 -0
  41. package/dist/components/checkbox/Checkbox.d.ts +25 -4
  42. package/dist/components/checkbox/Checkbox.js +4 -0
  43. package/dist/components/checkbox/Checkbox.svelte +13 -16
  44. package/dist/components/checkbox/Checkbox.svelte.d.ts +2 -2
  45. package/dist/components/combobox/Combobox.d.ts +45 -9
  46. package/dist/components/combobox/Combobox.js +5 -7
  47. package/dist/components/combobox/Combobox.svelte +226 -8
  48. package/dist/components/combobox/Combobox.svelte.d.ts +2 -2
  49. package/dist/components/combobox/index.d.ts +1 -1
  50. package/dist/components/command/components/command-empty.svelte +3 -8
  51. package/dist/components/command/components/command-group.svelte +3 -13
  52. package/dist/components/command/components/command-input.svelte +5 -13
  53. package/dist/components/command/components/command-item.svelte +3 -9
  54. package/dist/components/command/components/command-link-item.svelte +3 -8
  55. package/dist/components/command/components/command-list.svelte +3 -8
  56. package/dist/components/command/components/command-separator.svelte +3 -8
  57. package/dist/components/command/components/command-shortcut.svelte +2 -10
  58. package/dist/components/command/components/command.svelte +29 -42
  59. package/dist/components/date-range-picker/DateRangePicker.svelte +490 -0
  60. package/dist/components/date-range-picker/DateRangePicker.svelte.d.ts +4 -0
  61. package/dist/components/date-range-picker/DateRangePicker.types.d.ts +38 -0
  62. package/dist/components/date-range-picker/DateRangePicker.types.js +1 -0
  63. package/dist/components/date-range-picker/index.d.ts +2 -0
  64. package/dist/components/date-range-picker/index.js +1 -0
  65. package/dist/components/dialog/Dialog.d.ts +43 -121
  66. package/dist/components/dialog/Dialog.js +1 -39
  67. package/dist/components/dialog/Dialog.svelte +103 -113
  68. package/dist/components/dialog/Dialog.svelte.d.ts +1 -2
  69. package/dist/components/dialog/dialog.scss +21 -24
  70. package/dist/components/drawer/Drawer.svelte +63 -0
  71. package/dist/components/drawer/Drawer.svelte.d.ts +16 -0
  72. package/dist/components/drawer/index.d.ts +1 -0
  73. package/dist/components/drawer/index.js +1 -0
  74. package/dist/components/dropdown-menu/DropdownMenu.d.ts +51 -24
  75. package/dist/components/dropdown-menu/DropdownMenu.js +1 -15
  76. package/dist/components/dropdown-menu/components/DropdownMenu.svelte +36 -34
  77. package/dist/components/dropdown-menu/components/DropdownMenu.svelte.d.ts +1 -1
  78. package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte +8 -12
  79. package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte.d.ts +2 -4
  80. package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte +11 -12
  81. package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte.d.ts +2 -4
  82. package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte +27 -30
  83. package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte.d.ts +1 -1
  84. package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte +9 -11
  85. package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte.d.ts +2 -4
  86. package/dist/components/fonts/TeraFontMono.svelte +4 -4
  87. package/dist/components/fonts/TeraFontMono.svelte.d.ts +1 -0
  88. package/dist/components/fonts/TeraFontSansSerif.svelte +4 -4
  89. package/dist/components/fonts/TeraFontSansSerif.svelte.d.ts +1 -1
  90. package/dist/components/header/Header.svelte +6 -9
  91. package/dist/components/header/header.scss +1 -1
  92. package/dist/components/icons/IconArrowBigRightFilled.svelte +3 -7
  93. package/dist/components/icons/IconBook.svelte +3 -6
  94. package/dist/components/icons/IconBookmarkPlus.svelte +3 -6
  95. package/dist/components/icons/IconCalculator.svelte +3 -6
  96. package/dist/components/icons/IconCheck.svelte +3 -6
  97. package/dist/components/icons/IconChevronDown.svelte +3 -6
  98. package/dist/components/icons/IconCoin.svelte +3 -6
  99. package/dist/components/icons/IconCoinConvert.svelte +2 -5
  100. package/dist/components/icons/IconCopy.svelte +3 -6
  101. package/dist/components/icons/IconCopyCheckFilled.svelte +3 -6
  102. package/dist/components/icons/IconHamburger.svelte +3 -6
  103. package/dist/components/icons/IconLanguage.svelte +3 -6
  104. package/dist/components/icons/IconLoader2.svelte +3 -6
  105. package/dist/components/icons/IconLogout.svelte +3 -6
  106. package/dist/components/icons/IconMoon.svelte +3 -6
  107. package/dist/components/icons/IconPointFilled.svelte +3 -6
  108. package/dist/components/icons/IconSearch.svelte +3 -6
  109. package/dist/components/icons/IconSettings.svelte +3 -6
  110. package/dist/components/icons/IconSun.svelte +3 -6
  111. package/dist/components/icons/IconSwitchHorizontal.svelte +3 -6
  112. package/dist/components/icons/IconSwitchVertical.svelte +3 -6
  113. package/dist/components/icons/IconTransform.svelte +3 -6
  114. package/dist/components/icons/IconX.svelte +3 -6
  115. package/dist/components/input/Input.d.ts +2 -2
  116. package/dist/components/input/Input.js +10 -10
  117. package/dist/components/input/Input.svelte +10 -26
  118. package/dist/components/label/Label.d.ts +2 -2
  119. package/dist/components/label/Label.js +2 -2
  120. package/dist/components/label/Label.svelte +4 -12
  121. package/dist/components/language-picker-button/LanguagePickerButton.svelte +23 -42
  122. package/dist/components/light-dark-toggle/LightDarkToggle.svelte +21 -26
  123. package/dist/components/marketing/FeatureCard.svelte +37 -0
  124. package/dist/components/marketing/FeatureCard.svelte.d.ts +13 -0
  125. package/dist/components/marketing/PricingCard.svelte +48 -0
  126. package/dist/components/marketing/PricingCard.svelte.d.ts +15 -0
  127. package/dist/components/marketing/StatBlock.svelte +14 -0
  128. package/dist/components/marketing/StatBlock.svelte.d.ts +10 -0
  129. package/dist/components/marketing/TestimonialCard.svelte +24 -0
  130. package/dist/components/marketing/TestimonialCard.svelte.d.ts +12 -0
  131. package/dist/components/marketing/index.d.ts +4 -0
  132. package/dist/components/marketing/index.js +4 -0
  133. package/dist/components/popover/Popover.d.ts +32 -13
  134. package/dist/components/popover/Popover.js +1 -7
  135. package/dist/components/popover/Popover.svelte +40 -158
  136. package/dist/components/popover/Popover.svelte.d.ts +2 -2
  137. package/dist/components/popover-responsive/PopoverResponsive.d.ts +18 -7
  138. package/dist/components/popover-responsive/PopoverResponsive.js +1 -7
  139. package/dist/components/popover-responsive/PopoverResponsive.svelte +25 -87
  140. package/dist/components/popover-responsive/PopoverResponsive.svelte.d.ts +2 -11
  141. package/dist/components/select/Select.d.ts +60 -23
  142. package/dist/components/select/Select.js +14 -35
  143. package/dist/components/select/Select.svelte +157 -28
  144. package/dist/components/select/Select.svelte.d.ts +2 -3
  145. package/dist/components/select/index.d.ts +1 -1
  146. package/dist/components/side-navigation/SideNavigation.svelte +73 -96
  147. package/dist/components/side-navigation/SideNavigationItem.svelte +2 -2
  148. package/dist/components/side-navigation/SideNavigationLayout.svelte +3 -5
  149. package/dist/components/side-navigation/sidenav.scss +17 -13
  150. package/dist/components/skeleton/Skeleton.svelte +48 -0
  151. package/dist/components/skeleton/Skeleton.svelte.d.ts +12 -0
  152. package/dist/components/skeleton/index.d.ts +1 -0
  153. package/dist/components/skeleton/index.js +1 -0
  154. package/dist/components/slider/Slider.d.ts +25 -15
  155. package/dist/components/slider/Slider.js +1 -7
  156. package/dist/components/slider/Slider.svelte +38 -164
  157. package/dist/components/slider/Slider.svelte.d.ts +1 -1
  158. package/dist/components/spinner/Spinner.svelte +39 -0
  159. package/dist/components/spinner/Spinner.svelte.d.ts +10 -0
  160. package/dist/components/spinner/index.d.ts +1 -0
  161. package/dist/components/spinner/index.js +1 -0
  162. package/dist/components/star-rating/StarRating.svelte +33 -49
  163. package/dist/components/switch/Switch.d.ts +19 -4
  164. package/dist/components/switch/Switch.js +4 -0
  165. package/dist/components/switch/Switch.svelte +13 -17
  166. package/dist/components/switch/Switch.svelte.d.ts +2 -2
  167. package/dist/components/table/Table.svelte +68 -0
  168. package/dist/components/table/Table.svelte.d.ts +40 -0
  169. package/dist/components/table/index.d.ts +1 -0
  170. package/dist/components/table/index.js +1 -0
  171. package/dist/components/tabs/Tabs.svelte.d.ts +45 -16
  172. package/dist/components/tabs/Tabs.svelte.js +8 -18
  173. package/dist/components/tabs/components/Tabs.svelte +27 -33
  174. package/dist/components/tabs/components/Tabs.svelte.d.ts +1 -1
  175. package/dist/components/tabs/components/TabsContent.svelte +13 -36
  176. package/dist/components/tabs/components/TabsContent.svelte.d.ts +2 -5
  177. package/dist/components/tabs/components/TabsItem.svelte +43 -32
  178. package/dist/components/tabs/components/TabsItem.svelte.d.ts +2 -5
  179. package/dist/components/tabs/components/TabsList.svelte +90 -58
  180. package/dist/components/tabs/components/TabsList.svelte.d.ts +2 -4
  181. package/dist/components/tera-ui-context/TeraUiContext.svelte +13 -26
  182. package/dist/components/text-area/TextArea.d.ts +2 -2
  183. package/dist/components/text-area/TextArea.js +9 -9
  184. package/dist/components/text-area/TextArea.svelte +41 -65
  185. package/dist/components/toast/ToastContainer.svelte +50 -0
  186. package/dist/components/toast/ToastContainer.svelte.d.ts +18 -0
  187. package/dist/components/toast/index.d.ts +3 -0
  188. package/dist/components/toast/index.js +2 -0
  189. package/dist/components/toast/toast.svelte.d.ts +22 -0
  190. package/dist/components/toast/toast.svelte.js +18 -0
  191. package/dist/components/tooltip/Tooltip.d.ts +23 -0
  192. package/dist/components/tooltip/Tooltip.js +1 -0
  193. package/dist/components/tooltip/Tooltip.svelte +30 -0
  194. package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
  195. package/dist/components/tooltip/index.d.ts +2 -0
  196. package/dist/components/tooltip/index.js +1 -0
  197. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte +48 -69
  198. package/dist/index.d.ts +19 -2
  199. package/dist/index.js +12 -0
  200. package/dist/llms/accordion.md +90 -0
  201. package/dist/llms/ai.md +110 -0
  202. package/dist/llms/alert.md +29 -0
  203. package/dist/llms/avatar.md +34 -0
  204. package/dist/llms/badge.md +31 -0
  205. package/dist/llms/brand-logo.md +30 -0
  206. package/dist/llms/button.md +37 -0
  207. package/dist/llms/card.md +32 -0
  208. package/dist/llms/checkbox.md +35 -0
  209. package/dist/llms/colors.md +161 -0
  210. package/dist/llms/combobox.md +40 -0
  211. package/dist/llms/command.md +7 -0
  212. package/dist/llms/date-range-picker.md +36 -0
  213. package/dist/llms/dialog.md +45 -0
  214. package/dist/llms/drawer.md +30 -0
  215. package/dist/llms/dropdown-menu.md +112 -0
  216. package/dist/llms/fonts.md +7 -0
  217. package/dist/llms/header.md +26 -0
  218. package/dist/llms/icons.md +43 -0
  219. package/dist/llms/index.md +65 -0
  220. package/dist/llms/input.md +37 -0
  221. package/dist/llms/label.md +30 -0
  222. package/dist/llms/language-picker-button.md +30 -0
  223. package/dist/llms/light-dark-toggle.md +26 -0
  224. package/dist/llms/marketing.md +95 -0
  225. package/dist/llms/popover-responsive.md +32 -0
  226. package/dist/llms/popover.md +40 -0
  227. package/dist/llms/select.md +44 -0
  228. package/dist/llms/side-navigation.md +30 -0
  229. package/dist/llms/skeleton.md +28 -0
  230. package/dist/llms/slider.md +36 -0
  231. package/dist/llms/spinner.md +25 -0
  232. package/dist/llms/star-rating.md +31 -0
  233. package/dist/llms/switch.md +33 -0
  234. package/dist/llms/table.md +30 -0
  235. package/dist/llms/tabs.md +92 -0
  236. package/dist/llms/tera-ui-context.md +30 -0
  237. package/dist/llms/text-area.md +39 -0
  238. package/dist/llms/toast.md +7 -0
  239. package/dist/llms/tooltip.md +32 -0
  240. package/dist/llms/user-avatar-with-menu.md +28 -0
  241. package/dist/paraglide/README.md +72 -3
  242. package/dist/paraglide/messages/_index.d.ts +105 -7
  243. package/dist/paraglide/messages/_index.js +437 -7
  244. package/dist/paraglide/messages/ar.d.ts +23 -0
  245. package/dist/paraglide/messages/ar.js +38 -0
  246. package/dist/paraglide/messages/bg.d.ts +23 -0
  247. package/dist/paraglide/messages/bg.js +38 -0
  248. package/dist/paraglide/messages/bn.d.ts +23 -0
  249. package/dist/paraglide/messages/bn.js +38 -0
  250. package/dist/paraglide/messages/ca.d.ts +23 -0
  251. package/dist/paraglide/messages/ca.js +38 -0
  252. package/dist/paraglide/messages/cs.d.ts +23 -0
  253. package/dist/paraglide/messages/cs.js +38 -0
  254. package/dist/paraglide/messages/da.d.ts +23 -0
  255. package/dist/paraglide/messages/da.js +38 -0
  256. package/dist/paraglide/messages/de.d.ts +23 -0
  257. package/dist/paraglide/messages/de.js +38 -0
  258. package/dist/paraglide/messages/el.d.ts +23 -0
  259. package/dist/paraglide/messages/el.js +38 -0
  260. package/dist/paraglide/messages/en.d.ts +23 -0
  261. package/dist/paraglide/messages/en.js +38 -0
  262. package/dist/paraglide/messages/es.d.ts +23 -0
  263. package/dist/paraglide/messages/es.js +38 -0
  264. package/dist/paraglide/messages/fi.d.ts +23 -0
  265. package/dist/paraglide/messages/fi.js +38 -0
  266. package/dist/paraglide/messages/fr.d.ts +23 -0
  267. package/dist/paraglide/messages/fr.js +38 -0
  268. package/dist/paraglide/messages/he.d.ts +23 -0
  269. package/dist/paraglide/messages/he.js +38 -0
  270. package/dist/paraglide/messages/hi.d.ts +23 -0
  271. package/dist/paraglide/messages/hi.js +38 -0
  272. package/dist/paraglide/messages/hu.d.ts +23 -0
  273. package/dist/paraglide/messages/hu.js +38 -0
  274. package/dist/paraglide/messages/id.d.ts +23 -0
  275. package/dist/paraglide/messages/id.js +38 -0
  276. package/dist/paraglide/messages/it.d.ts +23 -0
  277. package/dist/paraglide/messages/it.js +38 -0
  278. package/dist/paraglide/messages/ja.d.ts +23 -0
  279. package/dist/paraglide/messages/ja.js +38 -0
  280. package/dist/paraglide/messages/ko.d.ts +23 -0
  281. package/dist/paraglide/messages/ko.js +38 -0
  282. package/dist/paraglide/messages/lt.d.ts +23 -0
  283. package/dist/paraglide/messages/lt.js +38 -0
  284. package/dist/paraglide/messages/lv.d.ts +23 -0
  285. package/dist/paraglide/messages/lv.js +38 -0
  286. package/dist/paraglide/messages/ms.d.ts +23 -0
  287. package/dist/paraglide/messages/ms.js +38 -0
  288. package/dist/paraglide/messages/nl.d.ts +23 -0
  289. package/dist/paraglide/messages/nl.js +38 -0
  290. package/dist/paraglide/messages/no.d.ts +23 -0
  291. package/dist/paraglide/messages/no.js +38 -0
  292. package/dist/paraglide/messages/pl.d.ts +23 -0
  293. package/dist/paraglide/messages/pl.js +38 -0
  294. package/dist/paraglide/messages/pt.d.ts +23 -0
  295. package/dist/paraglide/messages/pt.js +38 -0
  296. package/dist/paraglide/messages/ro.d.ts +23 -0
  297. package/dist/paraglide/messages/ro.js +38 -0
  298. package/dist/paraglide/messages/ru.d.ts +23 -0
  299. package/dist/paraglide/messages/ru.js +38 -0
  300. package/dist/paraglide/messages/sk.d.ts +23 -0
  301. package/dist/paraglide/messages/sk.js +38 -0
  302. package/dist/paraglide/messages/sl.d.ts +23 -0
  303. package/dist/paraglide/messages/sl.js +38 -0
  304. package/dist/paraglide/messages/sq.d.ts +23 -0
  305. package/dist/paraglide/messages/sq.js +38 -0
  306. package/dist/paraglide/messages/sr.d.ts +23 -0
  307. package/dist/paraglide/messages/sr.js +38 -0
  308. package/dist/paraglide/messages/sv.d.ts +23 -0
  309. package/dist/paraglide/messages/sv.js +38 -0
  310. package/dist/paraglide/messages/sw.d.ts +23 -0
  311. package/dist/paraglide/messages/sw.js +38 -0
  312. package/dist/paraglide/messages/ta.d.ts +23 -0
  313. package/dist/paraglide/messages/ta.js +38 -0
  314. package/dist/paraglide/messages/te.d.ts +23 -0
  315. package/dist/paraglide/messages/te.js +38 -0
  316. package/dist/paraglide/messages/th.d.ts +23 -0
  317. package/dist/paraglide/messages/th.js +38 -0
  318. package/dist/paraglide/messages/tl.d.ts +23 -0
  319. package/dist/paraglide/messages/tl.js +38 -0
  320. package/dist/paraglide/messages/tr.d.ts +23 -0
  321. package/dist/paraglide/messages/tr.js +38 -0
  322. package/dist/paraglide/messages/uk.d.ts +23 -0
  323. package/dist/paraglide/messages/uk.js +38 -0
  324. package/dist/paraglide/messages/vi.d.ts +23 -0
  325. package/dist/paraglide/messages/vi.js +38 -0
  326. package/dist/paraglide/messages/zh-CN.d.ts +23 -0
  327. package/dist/paraglide/messages/zh-CN.js +38 -0
  328. package/dist/paraglide/messages/zh-TW.d.ts +23 -0
  329. package/dist/paraglide/messages/zh-TW.js +38 -0
  330. package/dist/paraglide/registry.d.ts +13 -0
  331. package/dist/paraglide/registry.js +15 -0
  332. package/dist/paraglide/runtime.d.ts +243 -126
  333. package/dist/paraglide/runtime.js +473 -148
  334. package/dist/paraglide/server.d.ts +13 -20
  335. package/dist/paraglide/server.js +92 -40
  336. package/dist/stories/ComponentOverview.stories.svelte +533 -0
  337. package/dist/stories/ComponentOverview.stories.svelte.d.ts +6 -0
  338. package/dist/themes/tera-ui-base.css +664 -470
  339. package/dist/themes/theme-ai.css +100 -0
  340. package/dist/themes/theme-marketing.css +91 -0
  341. package/dist/themes/theme-professional.css +41 -0
  342. package/package.json +35 -29
  343. package/dist/paraglide/messages/text_account_settings.d.ts +0 -4
  344. package/dist/paraglide/messages/text_account_settings.js +0 -239
  345. package/dist/paraglide/messages/text_calces_documentation.d.ts +0 -4
  346. package/dist/paraglide/messages/text_calces_documentation.js +0 -239
  347. package/dist/paraglide/messages/text_calces_scientific_calculator.d.ts +0 -4
  348. package/dist/paraglide/messages/text_calces_scientific_calculator.js +0 -239
  349. package/dist/paraglide/messages/text_currency_converter.d.ts +0 -4
  350. package/dist/paraglide/messages/text_currency_converter.js +0 -239
  351. package/dist/paraglide/messages/text_logout.d.ts +0 -4
  352. package/dist/paraglide/messages/text_logout.js +0 -239
  353. package/dist/paraglide/messages/text_select_language.d.ts +0 -4
  354. package/dist/paraglide/messages/text_select_language.js +0 -239
  355. package/dist/paraglide/messages/text_unit_converter.d.ts +0 -4
  356. package/dist/paraglide/messages/text_unit_converter.js +0 -239
  357. package/dist/tera-i18n/projects/tera-system-ui/project.inlang/.meta.json +0 -3
  358. package/dist/tera-i18n/projects/tera-system-ui/project.inlang/README.md +0 -103
  359. package/dist/tera-i18n/projects/tera-system-ui/project.inlang/project_id +0 -1
  360. package/dist/themes/tw-preset.cjs +0 -160
  361. package/dist/themes/tw-preset.d.cts +0 -157
@@ -0,0 +1,50 @@
1
+ <script lang="ts">import { toast } from './toast.svelte.js';
2
+ const accentColor = {
3
+ success: 'bg-success-500',
4
+ error: 'bg-error-500',
5
+ info: 'bg-information-500',
6
+ warning: 'bg-warning-500',
7
+ };
8
+ const iconSymbol = {
9
+ success: '✓', error: '✕', info: 'ℹ', warning: '⚠',
10
+ };
11
+ </script>
12
+
13
+ <div
14
+ aria-live="polite"
15
+ aria-label="Notifications"
16
+ class="fixed bottom-4 right-4 z-[9999] flex flex-col gap-2 max-sm:right-1/2 max-sm:translate-x-1/2"
17
+ >
18
+ {#each toast.items as item (item.id)}
19
+ <div
20
+ class="flex items-start gap-3 min-w-[280px] max-w-sm bg-surface-raised rounded-container shadow-lg border border-border-default overflow-hidden animate-in slide-in-from-bottom-4 fade-in duration-300 ease-spring"
21
+ >
22
+ <div class="w-1 self-stretch shrink-0 {accentColor[item.variant]}"></div>
23
+ <div class="flex-1 py-3 pr-3">
24
+ <p class="text-sm font-medium text-text-primary flex items-center gap-1.5">
25
+ <span class="text-xs">{iconSymbol[item.variant]}</span>
26
+ {item.message}
27
+ </p>
28
+ {#if item.description}
29
+ <p class="text-xs text-text-secondary mt-0.5">{item.description}</p>
30
+ {/if}
31
+ {#if item.action}
32
+ <button
33
+ class="mt-1.5 text-xs font-semibold text-interactive hover:underline"
34
+ onclick={item.action.onclick}
35
+ >{item.action.label}</button>
36
+ {/if}
37
+ </div>
38
+ <button
39
+ type="button"
40
+ class="p-3 text-text-tertiary hover:text-text-primary transition-colors"
41
+ onclick={() => toast.remove(item.id)}
42
+ aria-label="Close"
43
+ >
44
+ <svg class="size-3.5" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5">
45
+ <path d="M2 2l10 10M12 2l-10 10"/>
46
+ </svg>
47
+ </button>
48
+ </div>
49
+ {/each}
50
+ </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 ToastContainer: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type ToastContainer = InstanceType<typeof ToastContainer>;
18
+ export default ToastContainer;
@@ -0,0 +1,3 @@
1
+ export { default as ToastContainer } from './ToastContainer.svelte';
2
+ export { toast } from './toast.svelte.js';
3
+ export type { ToastItem, ToastVariant } from './toast.svelte.js';
@@ -0,0 +1,2 @@
1
+ export { default as ToastContainer } from './ToastContainer.svelte';
2
+ export { toast } from './toast.svelte.js';
@@ -0,0 +1,22 @@
1
+ export type ToastVariant = 'success' | 'error' | 'info' | 'warning';
2
+ export interface ToastItem {
3
+ id: string;
4
+ variant: ToastVariant;
5
+ message: string;
6
+ description?: string;
7
+ duration?: number;
8
+ action?: {
9
+ label: string;
10
+ onclick: () => void;
11
+ };
12
+ }
13
+ declare function remove(id: string): void;
14
+ export declare const toast: {
15
+ readonly items: ToastItem[];
16
+ success: (msg: string, opts?: Omit<ToastItem, "id" | "variant" | "message">) => void;
17
+ error: (msg: string, opts?: Omit<ToastItem, "id" | "variant" | "message">) => void;
18
+ info: (msg: string, opts?: Omit<ToastItem, "id" | "variant" | "message">) => void;
19
+ warning: (msg: string, opts?: Omit<ToastItem, "id" | "variant" | "message">) => void;
20
+ remove: typeof remove;
21
+ };
22
+ export {};
@@ -0,0 +1,18 @@
1
+ let items = $state([]);
2
+ function add(variant, message, opts = {}) {
3
+ const id = crypto.randomUUID();
4
+ const item = { id, variant, message, duration: 4000, ...opts };
5
+ items = [...items.slice(-2), item];
6
+ setTimeout(() => remove(id), item.duration);
7
+ }
8
+ function remove(id) {
9
+ items = items.filter(t => t.id !== id);
10
+ }
11
+ export const toast = {
12
+ get items() { return items; },
13
+ success: (msg, opts) => add('success', msg, opts),
14
+ error: (msg, opts) => add('error', msg, opts),
15
+ info: (msg, opts) => add('info', msg, opts),
16
+ warning: (msg, opts) => add('warning', msg, opts),
17
+ remove,
18
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @component Tooltip - Floating label shown on hover or keyboard focus.
3
+ * Built on BitsUI Tooltip primitive with portal rendering.
4
+ */
5
+ import type { Snippet } from "svelte";
6
+ export interface TooltipProps {
7
+ /** Tooltip content — a plain string or a Svelte snippet for rich markup. */
8
+ content: string | Snippet;
9
+ /** Which side of the trigger the tooltip appears on. */
10
+ side?: 'top' | 'bottom' | 'left' | 'right';
11
+ /** Alignment of the tooltip along the chosen side. */
12
+ align?: 'start' | 'center' | 'end';
13
+ /** Distance in pixels between the trigger element and the tooltip panel. */
14
+ sideOffset?: number;
15
+ /** Delay in milliseconds before the tooltip appears after hover/focus. */
16
+ delay?: number;
17
+ /** Prevents the tooltip from ever opening. */
18
+ disabled?: boolean;
19
+ /** The element that triggers the tooltip on hover/focus. */
20
+ children?: Snippet;
21
+ /** Additional CSS classes for the trigger wrapper span. */
22
+ class?: string;
23
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ <script lang="ts">import { Tooltip as TooltipPrimitive } from 'bits-ui';
2
+ let { content, side = 'top', align = 'center', sideOffset = 6, delay = 500, disabled, children, class: className = '', } = $props();
3
+ </script>
4
+
5
+ <TooltipPrimitive.Provider delayDuration={delay}>
6
+ <TooltipPrimitive.Root {disabled}>
7
+ <TooltipPrimitive.Trigger class="inline-flex {className}">
8
+ {@render children?.()}
9
+ </TooltipPrimitive.Trigger>
10
+
11
+ <TooltipPrimitive.Portal>
12
+ <TooltipPrimitive.Content
13
+ {side}
14
+ {align}
15
+ {sideOffset}
16
+ class="z-50 max-w-[200px] px-2.5 py-1.5 text-[10px] leading-tight rounded
17
+ bg-neutral-token-11 text-neutral-token-1 shadow-md
18
+ animate-in fade-in zoom-in-95 duration-150
19
+ data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95"
20
+ >
21
+ {#if typeof content === 'string'}
22
+ {content}
23
+ {:else}
24
+ {@render content()}
25
+ {/if}
26
+ <TooltipPrimitive.Arrow class="text-neutral-token-13" />
27
+ </TooltipPrimitive.Content>
28
+ </TooltipPrimitive.Portal>
29
+ </TooltipPrimitive.Root>
30
+ </TooltipPrimitive.Provider>
@@ -0,0 +1,4 @@
1
+ import type { TooltipProps } from './Tooltip.js';
2
+ declare const Tooltip: import("svelte").Component<TooltipProps, {}, "">;
3
+ type Tooltip = ReturnType<typeof Tooltip>;
4
+ export default Tooltip;
@@ -0,0 +1,2 @@
1
+ export { default as Tooltip } from './Tooltip.svelte';
2
+ export type { TooltipProps } from './Tooltip.js';
@@ -0,0 +1 @@
1
+ export { default as Tooltip } from './Tooltip.svelte';
@@ -1,69 +1,48 @@
1
- <script lang="ts">
2
- import {type UserAvatarWithMenuProps} from "./UserAvatarWithMenu";
3
- import {Avatar} from "../avatar";
4
- import {
5
- DropdownMenu,
6
- DropdownMenuGroup,
7
- DropdownMenuHeader,
8
- DropdownMenuItem,
9
- DropdownMenuSeparator
10
- } from "../dropdown-menu";
11
- import {IconLogout, IconSettings} from "../icons";
12
- import {extractShortUsernameFromEmail} from "../../internal/service/user.service";
13
- import {m} from '../../paraglide/messages.js'
14
-
15
- let {children, user, onLogout, ...props}: UserAvatarWithMenuProps = $props();
16
-
17
- let shortUserName = extractShortUsernameFromEmail(user?.email)
18
- let triggerRef = $state()
19
- let open = $state(false)
20
- </script>
21
-
22
-
23
- {#if user}
24
- <button class="rounded-full focus-visible:ring-0" bind:this={triggerRef}>
25
- <Avatar
26
- userUid={user.userUid}
27
- >
28
- {shortUserName}
29
- </Avatar>
30
- </button>
31
-
32
- <DropdownMenu
33
- bind:open
34
- triggerRef={triggerRef}
35
- class="!min-w-[14rem]"
36
- >
37
- <DropdownMenuHeader>
38
- <div class="grid grid-cols-[auto_1fr] gap-2 overflow-hidden break-all items-center">
39
- <Avatar border={false}
40
- size="lg"
41
- userUid={user.userUid}
42
- >
43
- {shortUserName}
44
- </Avatar>
45
- {#if user.email}
46
- {user.email}
47
- {/if}
48
- </div>
49
-
50
- </DropdownMenuHeader>
51
- <DropdownMenuSeparator/>
52
-
53
- <DropdownMenuGroup>
54
- <DropdownMenuItem
55
- href="/account-settings"
56
- >
57
- <IconSettings/>
58
- {m.text_account_settings()}
59
- </DropdownMenuItem>
60
- </DropdownMenuGroup>
61
- <DropdownMenuSeparator/>
62
- <DropdownMenuGroup>
63
- <DropdownMenuItem onclick={onLogout}>
64
- <IconLogout/>
65
- {m.text_logout()}
66
- </DropdownMenuItem>
67
- </DropdownMenuGroup>
68
- </DropdownMenu>
69
- {/if}
1
+ <script lang="ts">import {} from "./UserAvatarWithMenu";
2
+ import { Avatar } from "../avatar";
3
+ import { DropdownMenu, DropdownMenuGroup, DropdownMenuHeader, DropdownMenuItem, DropdownMenuSeparator } from "../dropdown-menu";
4
+ import { IconLogout, IconSettings } from "../icons";
5
+ import { extractShortUsernameFromEmail } from "../../internal/service/user.service";
6
+ import { m } from '../../paraglide/messages.js';
7
+ let { children, user, onLogout, ...props } = $props();
8
+ let shortUserName = $derived(extractShortUsernameFromEmail(user?.email));
9
+ </script>
10
+
11
+ {#if user}
12
+ <DropdownMenu align="end" class="!min-w-[14rem]">
13
+ {#snippet trigger()}
14
+ <button class="rounded-full focus-visible:ring-0 focus-visible:outline-none cursor-pointer">
15
+ <Avatar userUid={user.userUid}>
16
+ {shortUserName}
17
+ </Avatar>
18
+ </button>
19
+ {/snippet}
20
+
21
+ <DropdownMenuHeader>
22
+ <div class="grid grid-cols-[auto_1fr] gap-2 overflow-hidden break-all items-center">
23
+ <Avatar border={false} size="lg" userUid={user.userUid}>
24
+ {shortUserName}
25
+ </Avatar>
26
+ {#if user.email}
27
+ {user.email}
28
+ {/if}
29
+ </div>
30
+ </DropdownMenuHeader>
31
+ <DropdownMenuSeparator/>
32
+
33
+ <DropdownMenuGroup>
34
+ <DropdownMenuItem href="/account-settings">
35
+ <IconSettings/>
36
+ {m.text_account_settings()}
37
+ </DropdownMenuItem>
38
+ </DropdownMenuGroup>
39
+ <DropdownMenuSeparator/>
40
+
41
+ <DropdownMenuGroup>
42
+ <DropdownMenuItem onclick={onLogout}>
43
+ <IconLogout/>
44
+ {m.text_logout()}
45
+ </DropdownMenuItem>
46
+ </DropdownMenuGroup>
47
+ </DropdownMenu>
48
+ {/if}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,16 @@
1
1
  export { Accordion, AccordionItem, AccordionContent, AccordionTrigger } from './components/accordion/index.js';
2
+ export { ChatBubble, StreamText, ThinkingLoader, SuggestionChips, PromptInput } from './components/ai/index.js';
3
+ export { Alert } from './components/alert/index.js';
2
4
  export { Avatar } from './components/avatar/index.js';
5
+ export { Badge } from './components/badge/index.js';
3
6
  export { BrandLogo } from './components/brand-logo/index.js';
4
7
  export { Button } from './components/button/index.js';
8
+ export { Card } from './components/card/index.js';
5
9
  export { Checkbox } from './components/checkbox/index.js';
6
10
  export { Combobox } from './components/combobox/index.js';
11
+ export { DateRangePicker } from './components/date-range-picker/index.js';
7
12
  export { Dialog } from './components/dialog/index.js';
13
+ export { Drawer } from './components/drawer/index.js';
8
14
  export { DropdownMenu, DropdownMenuItem, DropdownMenuGroup, DropdownMenuHeader, DropdownMenuSeparator } from './components/dropdown-menu/index.js';
9
15
  export { TeraFontSansSerif, TeraFontMono } from './components/fonts/index.js';
10
16
  export { Header } from './components/header/index.js';
@@ -13,23 +19,32 @@ export { Input } from './components/input/index.js';
13
19
  export { Label } from './components/label/index.js';
14
20
  export { LanguagePickerButton } from './components/language-picker-button/index.js';
15
21
  export { LightDarkToggle } from './components/light-dark-toggle/index.js';
22
+ export { FeatureCard, StatBlock, PricingCard, TestimonialCard } from './components/marketing/index.js';
16
23
  export { Popover } from './components/popover/index.js';
17
24
  export { PopoverResponsive } from './components/popover-responsive/index.js';
18
25
  export { Select } from './components/select/index.js';
19
26
  export { SideNavigation, SideNavigationLayout, toggleSideNavigation } from './components/side-navigation/index.js';
27
+ export { Skeleton } from './components/skeleton/index.js';
20
28
  export { Slider } from './components/slider/index.js';
29
+ export { Spinner } from './components/spinner/index.js';
21
30
  export { StarRating } from './components/star-rating/index.js';
22
31
  export { Switch } from './components/switch/index.js';
32
+ export { Table } from './components/table/index.js';
23
33
  export { Tabs, TabsList, TabsItem, TabsContent } from './components/tabs/index.js';
24
34
  export { TeraUiContext } from './components/tera-ui-context/index.js';
25
35
  export { TextArea } from './components/text-area/index.js';
36
+ export { ToastContainer, toast } from './components/toast/index.js';
37
+ export { Tooltip } from './components/tooltip/index.js';
26
38
  export { UserAvatarWithMenu } from './components/user-avatar-with-menu/index.js';
27
39
  export type { AccordionProps, AccordionItemProps, AccordionContentProps, AccordionTriggerProps } from './components/accordion/index.js';
28
40
  export type { AvatarProps } from './components/avatar/index.js';
41
+ export type { BadgeProps } from './components/badge/index.js';
29
42
  export type { BrandLogoProps } from './components/brand-logo/index.js';
30
43
  export type { ButtonProps } from './components/button/index.js';
44
+ export type { CardProps } from './components/card/index.js';
31
45
  export type { CheckboxProps } from './components/checkbox/index.js';
32
- export type { ComboboxProps } from './components/combobox/index.js';
46
+ export type { ComboboxProps, ComboboxItem } from './components/combobox/index.js';
47
+ export type { DateRangePickerProps } from './components/date-range-picker/index.js';
33
48
  export type { DialogProps, DialogPropsAstro } from './components/dialog/index.js';
34
49
  export type { DropdownMenuProps, DropdownMenuItemProps, DropdownMenuGroupProps, DropdownMenuHeaderProps, DropdownMenuSeparatorProps } from './components/dropdown-menu/index.js';
35
50
  export type { HeaderProps } from './components/header/index.js';
@@ -39,7 +54,7 @@ export type { LanguagePickerButtonProps } from './components/language-picker-but
39
54
  export type { LightDarkToggleProps } from './components/light-dark-toggle/index.js';
40
55
  export type { PopoverProps } from './components/popover/index.js';
41
56
  export type { PopoverResponsiveProps } from './components/popover-responsive/index.js';
42
- export type { SelectProps } from './components/select/index.js';
57
+ export type { SelectProps, SelectOption } from './components/select/index.js';
43
58
  export type { SideNavigationItem, SideNavigationProps } from './components/side-navigation/index.js';
44
59
  export type { SliderProps } from './components/slider/index.js';
45
60
  export type { StarRatingProps } from './components/star-rating/index.js';
@@ -47,4 +62,6 @@ export type { SwitchProps } from './components/switch/index.js';
47
62
  export type { TabsProps, TabsListProps, TabsItemProps, TabsContentProps } from './components/tabs/index.js';
48
63
  export type { TeraUiContextProps } from './components/tera-ui-context/index.js';
49
64
  export type { TextAreaProps, AutoSizeConfig } from './components/text-area/index.js';
65
+ export type { ToastItem, ToastVariant } from './components/toast/index.js';
66
+ export type { TooltipProps } from './components/tooltip/index.js';
50
67
  export type { UserAvatarWithMenuProps } from './components/user-avatar-with-menu/index.js';
package/dist/index.js CHANGED
@@ -1,10 +1,16 @@
1
1
  export { Accordion, AccordionItem, AccordionContent, AccordionTrigger } from './components/accordion/index.js';
2
+ export { ChatBubble, StreamText, ThinkingLoader, SuggestionChips, PromptInput } from './components/ai/index.js';
3
+ export { Alert } from './components/alert/index.js';
2
4
  export { Avatar } from './components/avatar/index.js';
5
+ export { Badge } from './components/badge/index.js';
3
6
  export { BrandLogo } from './components/brand-logo/index.js';
4
7
  export { Button } from './components/button/index.js';
8
+ export { Card } from './components/card/index.js';
5
9
  export { Checkbox } from './components/checkbox/index.js';
6
10
  export { Combobox } from './components/combobox/index.js';
11
+ export { DateRangePicker } from './components/date-range-picker/index.js';
7
12
  export { Dialog } from './components/dialog/index.js';
13
+ export { Drawer } from './components/drawer/index.js';
8
14
  export { DropdownMenu, DropdownMenuItem, DropdownMenuGroup, DropdownMenuHeader, DropdownMenuSeparator } from './components/dropdown-menu/index.js';
9
15
  export { TeraFontSansSerif, TeraFontMono } from './components/fonts/index.js';
10
16
  export { Header } from './components/header/index.js';
@@ -13,14 +19,20 @@ export { Input } from './components/input/index.js';
13
19
  export { Label } from './components/label/index.js';
14
20
  export { LanguagePickerButton } from './components/language-picker-button/index.js';
15
21
  export { LightDarkToggle } from './components/light-dark-toggle/index.js';
22
+ export { FeatureCard, StatBlock, PricingCard, TestimonialCard } from './components/marketing/index.js';
16
23
  export { Popover } from './components/popover/index.js';
17
24
  export { PopoverResponsive } from './components/popover-responsive/index.js';
18
25
  export { Select } from './components/select/index.js';
19
26
  export { SideNavigation, SideNavigationLayout, toggleSideNavigation } from './components/side-navigation/index.js';
27
+ export { Skeleton } from './components/skeleton/index.js';
20
28
  export { Slider } from './components/slider/index.js';
29
+ export { Spinner } from './components/spinner/index.js';
21
30
  export { StarRating } from './components/star-rating/index.js';
22
31
  export { Switch } from './components/switch/index.js';
32
+ export { Table } from './components/table/index.js';
23
33
  export { Tabs, TabsList, TabsItem, TabsContent } from './components/tabs/index.js';
24
34
  export { TeraUiContext } from './components/tera-ui-context/index.js';
25
35
  export { TextArea } from './components/text-area/index.js';
36
+ export { ToastContainer, toast } from './components/toast/index.js';
37
+ export { Tooltip } from './components/tooltip/index.js';
26
38
  export { UserAvatarWithMenu } from './components/user-avatar-with-menu/index.js';
@@ -0,0 +1,90 @@
1
+ # Accordion
2
+
3
+ Collapsible accordion with single or multi-open support. Parts: Accordion, AccordionItem, AccordionTrigger, AccordionContent.
4
+
5
+ Built on BitsUI Accordion primitive with full keyboard navigation.
6
+
7
+ ## Import
8
+
9
+ import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from 'tera-system-ui';
10
+ import { Accordion } from 'tera-system-ui/accordion'; // subpath
11
+
12
+ ## Accordion
13
+
14
+ ### Props
15
+
16
+ Name Type Required
17
+ ──────────────────────────────────────────────────────────────────────────
18
+ children Snippet optional
19
+ class string optional Additional CSS classes for the root element.
20
+ type 'multiple' | 'single' required Whether only one item can be open at a time ('single') or many ('multiple').
21
+ value string | string[] required The currently open item value(s). Bindable.
22
+ onchange (value: string | string[]) => void optional Called when the open item(s) change.
23
+ controlledValue boolean optional Use controlled mode — manage value externally and pass it back via onchange.
24
+ disabled boolean optional Whether the entire accordion is disabled.
25
+ loop boolean optional Whether keyboard navigation wraps around at the first/last item.
26
+ orientation 'horizontal' | 'vertical' optional Layout orientation — affects arrow-key navigation direction.
27
+ ref HTMLDivElement optional Bindable reference to the root element.
28
+
29
+ ### Usage
30
+
31
+ <script>
32
+ import { Accordion } from 'tera-system-ui';
33
+ </script>
34
+
35
+ <Accordion>Content</Accordion>
36
+ <Accordion onchange={(v) => console.log(v)} />
37
+
38
+ ## AccordionItem
39
+
40
+ ### Props
41
+
42
+ Name Type Required
43
+ ──────────────────────────────────────────────────────────────────────────
44
+ value string required Unique identifier for this item — matched against the root `value`.
45
+ disabled boolean optional Prevents the user from interacting with this specific item.
46
+ ref HTMLDivElement optional (bindable)
47
+ children Snippet optional
48
+
49
+ ### Usage
50
+
51
+ <script>
52
+ import { AccordionItem } from 'tera-system-ui';
53
+ </script>
54
+
55
+ <AccordionItem>Content</AccordionItem>
56
+
57
+ ## AccordionTrigger
58
+
59
+ ### Props
60
+
61
+ Name Type Required
62
+ ──────────────────────────────────────────────────────────────────────────
63
+ children Snippet optional
64
+ ref HTMLButtonElement optional (bindable)
65
+
66
+ ### Usage
67
+
68
+ <script>
69
+ import { AccordionTrigger } from 'tera-system-ui';
70
+ </script>
71
+
72
+ <AccordionTrigger>Content</AccordionTrigger>
73
+
74
+ ## AccordionContent
75
+
76
+ ### Props
77
+
78
+ Name Type Required
79
+ ──────────────────────────────────────────────────────────────────────────
80
+ children Snippet optional
81
+ forceMount boolean optional Keep the content mounted in the DOM even when the item is collapsed. Useful for Svelte transitions or preserving internal component state.
82
+ ref HTMLDivElement optional (bindable)
83
+
84
+ ### Usage
85
+
86
+ <script>
87
+ import { AccordionContent } from 'tera-system-ui';
88
+ </script>
89
+
90
+ <AccordionContent>Content</AccordionContent>
@@ -0,0 +1,110 @@
1
+ # ChatBubble
2
+
3
+ AI chat UI components: ChatBubble, PromptInput, StreamText, SuggestionChips, ThinkingLoader.
4
+
5
+ ## Import
6
+
7
+ import { ChatBubble, PromptInput, StreamText, SuggestionChips, ThinkingLoader } from 'tera-system-ui';
8
+
9
+ ## ChatBubble
10
+
11
+ ### Props
12
+
13
+ Name Type Required
14
+ ──────────────────────────────────────────────────────────────────────────
15
+ role 'user' | 'assistant' required
16
+ content string | Snippet required
17
+ avatar Snippet optional
18
+ timestamp string optional
19
+ status 'sending' | 'sent' | 'error' optional
20
+ class string optional
21
+
22
+ ### Usage
23
+
24
+ <script>
25
+ import { ChatBubble } from 'tera-system-ui';
26
+ </script>
27
+
28
+ <ChatBubble />
29
+
30
+ ## PromptInput
31
+
32
+ ### Props
33
+
34
+ Name Type Required
35
+ ──────────────────────────────────────────────────────────────────────────
36
+ value string optional
37
+ onsubmit (value: string) => void optional
38
+ placeholder string optional
39
+ maxLength number optional
40
+ loading boolean optional
41
+ disabled boolean optional
42
+ suggestions string[] optional
43
+ class string optional
44
+
45
+ ### Usage
46
+
47
+ <script>
48
+ import { PromptInput } from 'tera-system-ui';
49
+ </script>
50
+
51
+ <PromptInput />
52
+
53
+ ## StreamText
54
+
55
+ ### Props
56
+
57
+ Name Type Required
58
+ ──────────────────────────────────────────────────────────────────────────
59
+ text string required
60
+ speed StreamSpeed optional
61
+ onComplete () => void optional
62
+ cursor boolean optional
63
+ class string optional
64
+
65
+ ### Usage
66
+
67
+ <script>
68
+ import { StreamText } from 'tera-system-ui';
69
+ </script>
70
+
71
+ <StreamText />
72
+
73
+ ## SuggestionChips
74
+
75
+ ### Props
76
+
77
+ Name Type Required
78
+ ──────────────────────────────────────────────────────────────────────────
79
+ suggestions string[] required
80
+ onSelect (value: string | string[]) => void optional
81
+ label string optional
82
+ multiple boolean optional
83
+ class string optional
84
+
85
+ ### Usage
86
+
87
+ <script>
88
+ import { SuggestionChips } from 'tera-system-ui';
89
+ </script>
90
+
91
+ <SuggestionChips />
92
+
93
+ ## ThinkingLoader
94
+
95
+ ### Props
96
+
97
+ Name Type Required
98
+ ──────────────────────────────────────────────────────────────────────────
99
+ variant ThinkingVariant optional
100
+ size ThinkingSize optional
101
+ label string optional
102
+ class string optional
103
+
104
+ ### Usage
105
+
106
+ <script>
107
+ import { ThinkingLoader } from 'tera-system-ui';
108
+ </script>
109
+
110
+ <ThinkingLoader />