tera-system-ui 0.1.76 → 0.2.2

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 (1085) hide show
  1. package/dist/components/accordion/Accordion.recipe.d.ts +125 -0
  2. package/dist/components/accordion/Accordion.recipe.js +28 -0
  3. package/dist/components/accordion/components/Accordion.svelte +4 -1
  4. package/dist/components/accordion/components/AccordionContent.svelte +4 -6
  5. package/dist/components/accordion/components/AccordionItem.svelte +3 -2
  6. package/dist/components/accordion/components/AccordionTrigger.svelte +11 -9
  7. package/dist/components/accordion/components/AccordionTrigger.svelte.d.ts +3 -0
  8. package/dist/components/accordion/index.d.ts +2 -1
  9. package/dist/components/accordion/index.js +1 -0
  10. package/dist/components/alert/Alert.recipe.d.ts +113 -0
  11. package/dist/components/alert/Alert.recipe.js +53 -0
  12. package/dist/components/alert/Alert.svelte +28 -18
  13. package/dist/components/alert/Alert.svelte.d.ts +2 -13
  14. package/dist/components/alert/index.d.ts +2 -0
  15. package/dist/components/alert/index.js +1 -0
  16. package/dist/components/avatar/Avatar.recipe.d.ts +113 -0
  17. package/dist/components/avatar/Avatar.recipe.js +37 -0
  18. package/dist/components/avatar/Avatar.svelte +19 -24
  19. package/dist/components/avatar/Avatar.svelte.d.ts +1 -1
  20. package/dist/components/avatar/index.d.ts +2 -1
  21. package/dist/components/avatar/index.js +1 -0
  22. package/dist/components/badge/Badge.recipe.d.ts +68 -0
  23. package/dist/components/badge/Badge.recipe.js +35 -0
  24. package/dist/components/badge/Badge.svelte +15 -7
  25. package/dist/components/badge/Badge.svelte.d.ts +1 -1
  26. package/dist/components/badge/index.d.ts +2 -1
  27. package/dist/components/badge/index.js +1 -0
  28. package/dist/components/bottom-sheet/BottomSheet.recipe.d.ts +130 -0
  29. package/dist/components/bottom-sheet/BottomSheet.recipe.js +47 -0
  30. package/dist/components/bottom-sheet/BottomSheet.svelte +1123 -0
  31. package/dist/components/bottom-sheet/BottomSheet.svelte.d.ts +4 -0
  32. package/dist/components/bottom-sheet/bottomSheetStore.svelte.d.ts +39 -0
  33. package/dist/components/bottom-sheet/bottomSheetStore.svelte.js +158 -0
  34. package/dist/components/bottom-sheet/index.d.ts +5 -0
  35. package/dist/components/bottom-sheet/index.js +3 -0
  36. package/dist/components/button/Button.recipe.d.ts +131 -0
  37. package/dist/components/button/Button.recipe.js +120 -0
  38. package/dist/components/button/Button.svelte +37 -23
  39. package/dist/components/button/Button.svelte.d.ts +1 -1
  40. package/dist/components/button/index.d.ts +2 -1
  41. package/dist/components/button/index.js +1 -0
  42. package/dist/components/card/{Card.d.ts → Card.recipe.d.ts} +18 -6
  43. package/dist/components/card/Card.recipe.js +41 -0
  44. package/dist/components/card/Card.svelte +5 -5
  45. package/dist/components/card/Card.svelte.d.ts +1 -1
  46. package/dist/components/card/index.d.ts +2 -1
  47. package/dist/components/card/index.js +1 -0
  48. package/dist/components/checkbox/Checkbox.recipe.d.ts +80 -0
  49. package/dist/components/checkbox/Checkbox.recipe.js +39 -0
  50. package/dist/components/checkbox/Checkbox.svelte +29 -35
  51. package/dist/components/checkbox/Checkbox.svelte.d.ts +1 -1
  52. package/dist/components/checkbox/index.d.ts +2 -1
  53. package/dist/components/checkbox/index.js +1 -0
  54. package/dist/components/combobox/Combobox.recipe.d.ts +138 -0
  55. package/dist/components/combobox/Combobox.recipe.js +50 -0
  56. package/dist/components/combobox/Combobox.svelte +57 -37
  57. package/dist/components/combobox/Combobox.svelte.d.ts +1 -1
  58. package/dist/components/combobox/index.d.ts +2 -1
  59. package/dist/components/combobox/index.js +1 -0
  60. package/dist/components/command/Command.recipe.d.ts +92 -0
  61. package/dist/components/command/Command.recipe.js +31 -0
  62. package/dist/components/command/components/command-empty.svelte +2 -2
  63. package/dist/components/command/components/command-group.svelte +4 -3
  64. package/dist/components/command/components/command-input.svelte +3 -7
  65. package/dist/components/command/components/command-item.svelte +2 -5
  66. package/dist/components/command/components/command-link-item.svelte +2 -5
  67. package/dist/components/command/components/command-list.svelte +2 -2
  68. package/dist/components/command/components/command-separator.svelte +2 -2
  69. package/dist/components/command/components/command-shortcut.svelte +2 -2
  70. package/dist/components/command/components/command-shortcut.svelte.d.ts +1 -1
  71. package/dist/components/command/components/command.svelte +2 -5
  72. package/dist/components/command/index.d.ts +2 -0
  73. package/dist/components/command/index.js +1 -0
  74. package/dist/components/date-range-picker/DateRangePicker.recipe.d.ts +220 -0
  75. package/dist/components/date-range-picker/DateRangePicker.recipe.js +113 -0
  76. package/dist/components/date-range-picker/DateRangePicker.svelte +53 -72
  77. package/dist/components/date-range-picker/DateRangePicker.svelte.d.ts +1 -1
  78. package/dist/components/date-range-picker/index.d.ts +2 -1
  79. package/dist/components/date-range-picker/index.js +1 -0
  80. package/dist/components/dialog/Dialog.recipe.d.ts +229 -0
  81. package/dist/components/dialog/Dialog.recipe.js +68 -0
  82. package/dist/components/dialog/Dialog.svelte +21 -39
  83. package/dist/components/dialog/Dialog.svelte.d.ts +1 -1
  84. package/dist/components/dialog/index.d.ts +2 -1
  85. package/dist/components/dialog/index.js +1 -0
  86. package/dist/components/drawer/Drawer.recipe.d.ts +140 -0
  87. package/dist/components/drawer/Drawer.recipe.js +50 -0
  88. package/dist/components/drawer/Drawer.svelte +16 -24
  89. package/dist/components/drawer/Drawer.svelte.d.ts +2 -14
  90. package/dist/components/drawer/index.d.ts +1 -0
  91. package/dist/components/drawer/index.js +1 -0
  92. package/dist/components/dropdown-menu/{DropdownMenu.d.ts → DropdownMenu.recipe.d.ts} +63 -4
  93. package/dist/components/dropdown-menu/DropdownMenu.recipe.js +41 -0
  94. package/dist/components/dropdown-menu/components/DropdownMenu.svelte +3 -8
  95. package/dist/components/dropdown-menu/components/DropdownMenu.svelte.d.ts +1 -1
  96. package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte +3 -2
  97. package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte.d.ts +1 -1
  98. package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte +3 -2
  99. package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte.d.ts +1 -1
  100. package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte +3 -9
  101. package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte.d.ts +1 -1
  102. package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte +3 -2
  103. package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte.d.ts +1 -1
  104. package/dist/components/dropdown-menu/index.d.ts +2 -1
  105. package/dist/components/dropdown-menu/index.js +1 -0
  106. package/dist/components/fonts/TeraFontMono.svelte +1 -1
  107. package/dist/components/fonts/TeraFontMono.svelte.d.ts +1 -1
  108. package/dist/components/input/Input.recipe.d.ts +166 -0
  109. package/dist/components/input/Input.recipe.js +86 -0
  110. package/dist/components/input/Input.svelte +43 -38
  111. package/dist/components/input/Input.svelte.d.ts +1 -1
  112. package/dist/components/input/index.d.ts +2 -1
  113. package/dist/components/input/index.js +1 -0
  114. package/dist/components/label/Label.recipe.d.ts +46 -0
  115. package/dist/components/label/Label.recipe.js +27 -0
  116. package/dist/components/label/Label.svelte +2 -2
  117. package/dist/components/label/Label.svelte.d.ts +1 -1
  118. package/dist/components/label/index.d.ts +2 -1
  119. package/dist/components/label/index.js +1 -0
  120. package/dist/components/popover/Popover.recipe.d.ts +80 -0
  121. package/dist/components/popover/Popover.recipe.js +23 -0
  122. package/dist/components/popover/Popover.svelte +4 -8
  123. package/dist/components/popover/Popover.svelte.d.ts +1 -1
  124. package/dist/components/popover/index.d.ts +2 -1
  125. package/dist/components/popover/index.js +1 -0
  126. package/dist/components/popover-responsive/PopoverResponsive.recipe.d.ts +85 -0
  127. package/dist/components/popover-responsive/PopoverResponsive.recipe.js +27 -0
  128. package/dist/components/popover-responsive/PopoverResponsive.svelte +38 -5
  129. package/dist/components/popover-responsive/PopoverResponsive.svelte.d.ts +1 -1
  130. package/dist/components/popover-responsive/index.d.ts +2 -1
  131. package/dist/components/popover-responsive/index.js +1 -0
  132. package/dist/components/select/Select.recipe.d.ts +190 -0
  133. package/dist/components/select/Select.recipe.js +51 -0
  134. package/dist/components/select/Select.svelte +18 -24
  135. package/dist/components/select/Select.svelte.d.ts +1 -1
  136. package/dist/components/select/index.d.ts +2 -1
  137. package/dist/components/select/index.js +1 -0
  138. package/dist/components/skeleton/Skeleton.recipe.d.ts +89 -0
  139. package/dist/components/skeleton/Skeleton.recipe.js +41 -0
  140. package/dist/components/skeleton/Skeleton.svelte +7 -6
  141. package/dist/components/skeleton/Skeleton.svelte.d.ts +2 -10
  142. package/dist/components/skeleton/index.d.ts +2 -0
  143. package/dist/components/skeleton/index.js +1 -0
  144. package/dist/components/slider/Slider.recipe.d.ts +115 -0
  145. package/dist/components/slider/Slider.recipe.js +50 -0
  146. package/dist/components/slider/Slider.svelte +6 -12
  147. package/dist/components/slider/Slider.svelte.d.ts +1 -1
  148. package/dist/components/slider/index.d.ts +3 -1
  149. package/dist/components/slider/index.js +1 -0
  150. package/dist/components/spinner/Spinner.recipe.d.ts +60 -0
  151. package/dist/components/spinner/Spinner.recipe.js +38 -0
  152. package/dist/components/spinner/Spinner.svelte +2 -2
  153. package/dist/components/spinner/Spinner.svelte.d.ts +2 -8
  154. package/dist/components/spinner/index.d.ts +2 -0
  155. package/dist/components/spinner/index.js +1 -0
  156. package/dist/components/star-rating/StarRating.recipe.d.ts +49 -0
  157. package/dist/components/star-rating/StarRating.recipe.js +29 -0
  158. package/dist/components/star-rating/StarRating.svelte +39 -35
  159. package/dist/components/star-rating/StarRating.svelte.d.ts +1 -1
  160. package/dist/components/star-rating/index.d.ts +2 -1
  161. package/dist/components/star-rating/index.js +1 -0
  162. package/dist/components/switch/Switch.recipe.d.ts +81 -0
  163. package/dist/components/switch/Switch.recipe.js +38 -0
  164. package/dist/components/switch/Switch.svelte +27 -36
  165. package/dist/components/switch/Switch.svelte.d.ts +1 -1
  166. package/dist/components/switch/index.d.ts +2 -1
  167. package/dist/components/switch/index.js +1 -0
  168. package/dist/components/table/Table.recipe.d.ts +134 -0
  169. package/dist/components/table/Table.recipe.js +44 -0
  170. package/dist/components/table/Table.svelte +10 -10
  171. package/dist/components/table/Table.svelte.d.ts +2 -17
  172. package/dist/components/table/index.d.ts +2 -0
  173. package/dist/components/table/index.js +1 -0
  174. package/dist/components/tabs/Tabs.recipe.d.ts +161 -0
  175. package/dist/components/tabs/Tabs.recipe.js +76 -0
  176. package/dist/components/tabs/Tabs.svelte.d.ts +2 -58
  177. package/dist/components/tabs/Tabs.svelte.js +3 -0
  178. package/dist/components/tabs/components/Tabs.svelte +8 -8
  179. package/dist/components/tabs/components/Tabs.svelte.d.ts +1 -1
  180. package/dist/components/tabs/components/TabsContent.svelte +3 -2
  181. package/dist/components/tabs/components/TabsContent.svelte.d.ts +1 -1
  182. package/dist/components/tabs/components/TabsItem.svelte +11 -36
  183. package/dist/components/tabs/components/TabsItem.svelte.d.ts +1 -1
  184. package/dist/components/tabs/components/TabsList.svelte +13 -42
  185. package/dist/components/tabs/components/TabsList.svelte.d.ts +1 -1
  186. package/dist/components/tabs/index.d.ts +2 -1
  187. package/dist/components/tabs/index.js +1 -0
  188. package/dist/components/text-area/TextArea.recipe.d.ts +181 -0
  189. package/dist/components/text-area/TextArea.recipe.js +81 -0
  190. package/dist/components/text-area/TextArea.svelte +68 -63
  191. package/dist/components/text-area/TextArea.svelte.d.ts +1 -1
  192. package/dist/components/text-area/index.d.ts +2 -1
  193. package/dist/components/text-area/index.js +1 -0
  194. package/dist/components/toast/ToastContainer.svelte +15 -16
  195. package/dist/components/tooltip/Tooltip.recipe.d.ts +79 -0
  196. package/dist/components/tooltip/Tooltip.recipe.js +26 -0
  197. package/dist/components/tooltip/Tooltip.svelte +10 -7
  198. package/dist/components/tooltip/Tooltip.svelte.d.ts +1 -1
  199. package/dist/components/tooltip/index.d.ts +2 -1
  200. package/dist/components/tooltip/index.js +1 -0
  201. package/dist/index.d.ts +55 -65
  202. package/dist/index.js +28 -37
  203. package/dist/{components → internal}/icons/IconCheck.svelte +3 -4
  204. package/dist/{components → internal}/icons/IconChevronDown.svelte +3 -4
  205. package/dist/{components → internal}/icons/IconSearch.svelte +3 -4
  206. package/dist/{components → internal}/icons/IconX.svelte +3 -4
  207. package/dist/internal/icons/index.d.ts +4 -0
  208. package/dist/internal/icons/index.js +4 -0
  209. package/dist/llms/accordion.md +2 -1
  210. package/dist/llms/alert.md +7 -2
  211. package/dist/llms/avatar.md +2 -2
  212. package/dist/llms/badge.md +4 -0
  213. package/dist/llms/bottom-sheet.md +44 -0
  214. package/dist/llms/button.md +7 -1
  215. package/dist/llms/card.md +2 -0
  216. package/dist/llms/checkbox.md +2 -1
  217. package/dist/llms/colors.md +20 -20
  218. package/dist/llms/combobox.md +8 -2
  219. package/dist/llms/command.md +2 -0
  220. package/dist/llms/date-range-picker.md +12 -2
  221. package/dist/llms/dialog.md +9 -4
  222. package/dist/llms/drawer.md +13 -8
  223. package/dist/llms/dropdown-menu.md +11 -2
  224. package/dist/llms/index.md +1 -13
  225. package/dist/llms/input.md +3 -0
  226. package/dist/llms/label.md +2 -0
  227. package/dist/llms/popover-responsive.md +10 -2
  228. package/dist/llms/popover.md +1 -1
  229. package/dist/llms/select.md +2 -1
  230. package/dist/llms/skeleton.md +8 -5
  231. package/dist/llms/slider.md +5 -3
  232. package/dist/llms/spinner.md +6 -2
  233. package/dist/llms/star-rating.md +3 -0
  234. package/dist/llms/switch.md +2 -1
  235. package/dist/llms/table.md +14 -7
  236. package/dist/llms/tabs.md +18 -3
  237. package/dist/llms/text-area.md +3 -0
  238. package/dist/llms/tooltip.md +2 -1
  239. package/dist/recipes/index.d.ts +79 -0
  240. package/dist/recipes/index.js +52 -0
  241. package/dist/stories/ComponentOverview.stories.svelte +346 -350
  242. package/dist/themes/tera-ui-base.css +149 -62
  243. package/dist/themes/theme-cv-builder.css +146 -0
  244. package/dist/themes/theme-professional.css +8 -33
  245. package/dist/tokens/index.d.ts +168 -0
  246. package/dist/tokens/index.js +122 -0
  247. package/dist/types/index.d.ts +19 -24
  248. package/package.json +30 -50
  249. package/registry/accordion.json +65 -0
  250. package/registry/alert.json +43 -0
  251. package/registry/avatar.json +43 -0
  252. package/registry/badge.json +43 -0
  253. package/registry/bottom-sheet.json +50 -0
  254. package/registry/button.json +43 -0
  255. package/registry/card.json +43 -0
  256. package/registry/checkbox.json +45 -0
  257. package/registry/combobox.json +45 -0
  258. package/registry/command.json +109 -0
  259. package/registry/date-range-picker.json +48 -0
  260. package/registry/dialog.json +50 -0
  261. package/registry/drawer.json +45 -0
  262. package/registry/dropdown-menu.json +72 -0
  263. package/registry/fonts.json +41 -0
  264. package/registry/index.json +193 -0
  265. package/registry/input.json +43 -0
  266. package/registry/label.json +44 -0
  267. package/registry/popover-responsive.json +46 -0
  268. package/registry/popover.json +44 -0
  269. package/registry/select.json +51 -0
  270. package/registry/skeleton.json +43 -0
  271. package/registry/slider.json +44 -0
  272. package/registry/spinner.json +43 -0
  273. package/registry/star-rating.json +43 -0
  274. package/registry/switch.json +44 -0
  275. package/registry/table.json +45 -0
  276. package/registry/tabs.json +71 -0
  277. package/registry/text-area.json +43 -0
  278. package/registry/toast.json +41 -0
  279. package/registry/tooltip.json +44 -0
  280. package/scripts/generate-ts-index.js +1 -18
  281. package/scripts/tera-ui.mjs +171 -0
  282. package/dist/components/accordion/Accordion.d.ts +0 -52
  283. package/dist/components/accordion/Accordion.js +0 -11
  284. package/dist/components/ai/ChatBubble.svelte +0 -35
  285. package/dist/components/ai/ChatBubble.svelte.d.ts +0 -12
  286. package/dist/components/ai/PromptInput.svelte +0 -58
  287. package/dist/components/ai/PromptInput.svelte.d.ts +0 -13
  288. package/dist/components/ai/StreamText.svelte +0 -41
  289. package/dist/components/ai/StreamText.svelte.d.ts +0 -11
  290. package/dist/components/ai/SuggestionChips.svelte +0 -34
  291. package/dist/components/ai/SuggestionChips.svelte.d.ts +0 -10
  292. package/dist/components/ai/ThinkingLoader.svelte +0 -34
  293. package/dist/components/ai/ThinkingLoader.svelte.d.ts +0 -11
  294. package/dist/components/ai/index.d.ts +0 -5
  295. package/dist/components/ai/index.js +0 -5
  296. package/dist/components/avatar/Avatar.d.ts +0 -45
  297. package/dist/components/avatar/Avatar.js +0 -35
  298. package/dist/components/badge/Badge.d.ts +0 -52
  299. package/dist/components/badge/Badge.js +0 -22
  300. package/dist/components/brand-logo/BrandLogo.d.ts +0 -38
  301. package/dist/components/brand-logo/BrandLogo.js +0 -18
  302. package/dist/components/brand-logo/BrandLogo.svelte +0 -36
  303. package/dist/components/brand-logo/BrandLogo.svelte.d.ts +0 -4
  304. package/dist/components/brand-logo/index.d.ts +0 -2
  305. package/dist/components/brand-logo/index.js +0 -1
  306. package/dist/components/button/Button.d.ts +0 -113
  307. package/dist/components/button/Button.js +0 -135
  308. package/dist/components/card/Card.js +0 -28
  309. package/dist/components/checkbox/Checkbox.d.ts +0 -32
  310. package/dist/components/checkbox/Checkbox.js +0 -11
  311. package/dist/components/combobox/Combobox.d.ts +0 -47
  312. package/dist/components/combobox/Combobox.js +0 -5
  313. package/dist/components/date-range-picker/DateRangePicker.types.d.ts +0 -38
  314. package/dist/components/date-range-picker/DateRangePicker.types.js +0 -1
  315. package/dist/components/dialog/Dialog.d.ts +0 -55
  316. package/dist/components/dialog/Dialog.js +0 -1
  317. package/dist/components/dropdown-menu/DropdownMenu.js +0 -1
  318. package/dist/components/header/Header.d.ts +0 -11
  319. package/dist/components/header/Header.js +0 -7
  320. package/dist/components/header/Header.svelte +0 -33
  321. package/dist/components/header/Header.svelte.d.ts +0 -5
  322. package/dist/components/header/header.scss +0 -20
  323. package/dist/components/header/index.d.ts +0 -2
  324. package/dist/components/header/index.js +0 -1
  325. package/dist/components/header/package.json +0 -14
  326. package/dist/components/icons/IconArrowBigRightFilled.svelte +0 -7
  327. package/dist/components/icons/IconArrowBigRightFilled.svelte.d.ts +0 -5
  328. package/dist/components/icons/IconBook.svelte +0 -7
  329. package/dist/components/icons/IconBook.svelte.d.ts +0 -5
  330. package/dist/components/icons/IconBookmarkPlus.svelte +0 -7
  331. package/dist/components/icons/IconBookmarkPlus.svelte.d.ts +0 -5
  332. package/dist/components/icons/IconCalculator.svelte +0 -7
  333. package/dist/components/icons/IconCalculator.svelte.d.ts +0 -5
  334. package/dist/components/icons/IconCoin.svelte +0 -7
  335. package/dist/components/icons/IconCoin.svelte.d.ts +0 -5
  336. package/dist/components/icons/IconCoinConvert.svelte +0 -17
  337. package/dist/components/icons/IconCoinConvert.svelte.d.ts +0 -4
  338. package/dist/components/icons/IconCopy.svelte +0 -7
  339. package/dist/components/icons/IconCopy.svelte.d.ts +0 -5
  340. package/dist/components/icons/IconCopyCheckFilled.svelte +0 -7
  341. package/dist/components/icons/IconCopyCheckFilled.svelte.d.ts +0 -5
  342. package/dist/components/icons/IconHamburger.svelte +0 -7
  343. package/dist/components/icons/IconHamburger.svelte.d.ts +0 -4
  344. package/dist/components/icons/IconLanguage.svelte +0 -7
  345. package/dist/components/icons/IconLanguage.svelte.d.ts +0 -5
  346. package/dist/components/icons/IconLoader2.svelte +0 -7
  347. package/dist/components/icons/IconLoader2.svelte.d.ts +0 -5
  348. package/dist/components/icons/IconLogout.svelte +0 -7
  349. package/dist/components/icons/IconLogout.svelte.d.ts +0 -5
  350. package/dist/components/icons/IconMoon.svelte +0 -7
  351. package/dist/components/icons/IconMoon.svelte.d.ts +0 -4
  352. package/dist/components/icons/IconPointFilled.svelte +0 -7
  353. package/dist/components/icons/IconPointFilled.svelte.d.ts +0 -5
  354. package/dist/components/icons/IconSettings.svelte +0 -7
  355. package/dist/components/icons/IconSettings.svelte.d.ts +0 -5
  356. package/dist/components/icons/IconSun.svelte +0 -7
  357. package/dist/components/icons/IconSun.svelte.d.ts +0 -4
  358. package/dist/components/icons/IconSwitchHorizontal.svelte +0 -7
  359. package/dist/components/icons/IconSwitchHorizontal.svelte.d.ts +0 -5
  360. package/dist/components/icons/IconSwitchVertical.svelte +0 -7
  361. package/dist/components/icons/IconSwitchVertical.svelte.d.ts +0 -5
  362. package/dist/components/icons/IconTransform.svelte +0 -7
  363. package/dist/components/icons/IconTransform.svelte.d.ts +0 -5
  364. package/dist/components/icons/index.d.ts +0 -23
  365. package/dist/components/icons/index.js +0 -23
  366. package/dist/components/input/Input.d.ts +0 -72
  367. package/dist/components/input/Input.js +0 -45
  368. package/dist/components/label/Label.d.ts +0 -38
  369. package/dist/components/label/Label.js +0 -18
  370. package/dist/components/language-picker-button/LanguagePickerButton.d.ts +0 -15
  371. package/dist/components/language-picker-button/LanguagePickerButton.js +0 -7
  372. package/dist/components/language-picker-button/LanguagePickerButton.svelte +0 -78
  373. package/dist/components/language-picker-button/LanguagePickerButton.svelte.d.ts +0 -7
  374. package/dist/components/language-picker-button/index.d.ts +0 -2
  375. package/dist/components/language-picker-button/index.js +0 -1
  376. package/dist/components/light-dark-toggle/LightDarkToggle.d.ts +0 -11
  377. package/dist/components/light-dark-toggle/LightDarkToggle.js +0 -7
  378. package/dist/components/light-dark-toggle/LightDarkToggle.svelte +0 -33
  379. package/dist/components/light-dark-toggle/LightDarkToggle.svelte.d.ts +0 -4
  380. package/dist/components/light-dark-toggle/index.d.ts +0 -2
  381. package/dist/components/light-dark-toggle/index.js +0 -1
  382. package/dist/components/marketing/FeatureCard.svelte +0 -37
  383. package/dist/components/marketing/FeatureCard.svelte.d.ts +0 -13
  384. package/dist/components/marketing/PricingCard.svelte +0 -48
  385. package/dist/components/marketing/PricingCard.svelte.d.ts +0 -15
  386. package/dist/components/marketing/StatBlock.svelte +0 -14
  387. package/dist/components/marketing/StatBlock.svelte.d.ts +0 -10
  388. package/dist/components/marketing/TestimonialCard.svelte +0 -24
  389. package/dist/components/marketing/TestimonialCard.svelte.d.ts +0 -12
  390. package/dist/components/marketing/index.d.ts +0 -4
  391. package/dist/components/marketing/index.js +0 -4
  392. package/dist/components/popover/Popover.d.ts +0 -37
  393. package/dist/components/popover/Popover.js +0 -1
  394. package/dist/components/popover-responsive/PopoverResponsive.d.ts +0 -22
  395. package/dist/components/popover-responsive/PopoverResponsive.js +0 -1
  396. package/dist/components/select/Select.d.ts +0 -106
  397. package/dist/components/select/Select.js +0 -24
  398. package/dist/components/side-navigation/SideNavigation.d.ts +0 -72
  399. package/dist/components/side-navigation/SideNavigation.js +0 -91
  400. package/dist/components/side-navigation/SideNavigation.svelte +0 -143
  401. package/dist/components/side-navigation/SideNavigation.svelte.d.ts +0 -4
  402. package/dist/components/side-navigation/SideNavigationGroup.svelte +0 -40
  403. package/dist/components/side-navigation/SideNavigationGroup.svelte.d.ts +0 -10
  404. package/dist/components/side-navigation/SideNavigationItem.svelte +0 -18
  405. package/dist/components/side-navigation/SideNavigationItem.svelte.d.ts +0 -8
  406. package/dist/components/side-navigation/SideNavigationLayout.svelte +0 -19
  407. package/dist/components/side-navigation/SideNavigationLayout.svelte.d.ts +0 -9
  408. package/dist/components/side-navigation/index.d.ts +0 -5
  409. package/dist/components/side-navigation/index.js +0 -4
  410. package/dist/components/side-navigation/sidenav.scss +0 -226
  411. package/dist/components/slider/Slider.d.ts +0 -28
  412. package/dist/components/slider/Slider.js +0 -1
  413. package/dist/components/star-rating/StarRating.d.ts +0 -31
  414. package/dist/components/star-rating/StarRating.js +0 -15
  415. package/dist/components/switch/Switch.d.ts +0 -27
  416. package/dist/components/switch/Switch.js +0 -11
  417. package/dist/components/tera-ui-context/TeraUiContext.d.ts +0 -11
  418. package/dist/components/tera-ui-context/TeraUiContext.js +0 -1
  419. package/dist/components/tera-ui-context/TeraUiContext.svelte +0 -13
  420. package/dist/components/tera-ui-context/TeraUiContext.svelte.d.ts +0 -4
  421. package/dist/components/tera-ui-context/global-context-store.d.ts +0 -3
  422. package/dist/components/tera-ui-context/global-context-store.js +0 -2
  423. package/dist/components/tera-ui-context/global-context.d.ts +0 -3
  424. package/dist/components/tera-ui-context/global-context.js +0 -24
  425. package/dist/components/tera-ui-context/index.d.ts +0 -2
  426. package/dist/components/tera-ui-context/index.js +0 -1
  427. package/dist/components/text-area/TextArea.d.ts +0 -87
  428. package/dist/components/text-area/TextArea.js +0 -48
  429. package/dist/components/tooltip/Tooltip.d.ts +0 -23
  430. package/dist/components/tooltip/Tooltip.js +0 -1
  431. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.d.ts +0 -14
  432. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.js +0 -7
  433. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte +0 -48
  434. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte.d.ts +0 -4
  435. package/dist/components/user-avatar-with-menu/index.d.ts +0 -2
  436. package/dist/components/user-avatar-with-menu/index.js +0 -1
  437. package/dist/i18n/index.d.ts +0 -1
  438. package/dist/i18n/index.js +0 -1
  439. package/dist/i18n/language.d.ts +0 -2
  440. package/dist/i18n/language.js +0 -45
  441. package/dist/internal/service/user.service.d.ts +0 -2
  442. package/dist/internal/service/user.service.js +0 -20
  443. package/dist/llms/ai.md +0 -110
  444. package/dist/llms/brand-logo.md +0 -30
  445. package/dist/llms/header.md +0 -26
  446. package/dist/llms/icons.md +0 -43
  447. package/dist/llms/language-picker-button.md +0 -30
  448. package/dist/llms/light-dark-toggle.md +0 -26
  449. package/dist/llms/marketing.md +0 -95
  450. package/dist/llms/side-navigation.md +0 -51
  451. package/dist/llms/tera-ui-context.md +0 -30
  452. package/dist/llms/user-avatar-with-menu.md +0 -28
  453. package/dist/paraglide/.prettierignore +0 -3
  454. package/dist/paraglide/README.md +0 -162
  455. package/dist/paraglide/messages/_index.d.ts +0 -106
  456. package/dist/paraglide/messages/_index.js +0 -439
  457. package/dist/paraglide/messages/ar.d.ts +0 -23
  458. package/dist/paraglide/messages/ar.js +0 -38
  459. package/dist/paraglide/messages/bg.d.ts +0 -23
  460. package/dist/paraglide/messages/bg.js +0 -38
  461. package/dist/paraglide/messages/bn.d.ts +0 -23
  462. package/dist/paraglide/messages/bn.js +0 -38
  463. package/dist/paraglide/messages/ca.d.ts +0 -23
  464. package/dist/paraglide/messages/ca.js +0 -38
  465. package/dist/paraglide/messages/cs.d.ts +0 -23
  466. package/dist/paraglide/messages/cs.js +0 -38
  467. package/dist/paraglide/messages/da.d.ts +0 -23
  468. package/dist/paraglide/messages/da.js +0 -38
  469. package/dist/paraglide/messages/de.d.ts +0 -23
  470. package/dist/paraglide/messages/de.js +0 -38
  471. package/dist/paraglide/messages/el.d.ts +0 -23
  472. package/dist/paraglide/messages/el.js +0 -38
  473. package/dist/paraglide/messages/en.d.ts +0 -23
  474. package/dist/paraglide/messages/en.js +0 -38
  475. package/dist/paraglide/messages/es.d.ts +0 -23
  476. package/dist/paraglide/messages/es.js +0 -38
  477. package/dist/paraglide/messages/fi.d.ts +0 -23
  478. package/dist/paraglide/messages/fi.js +0 -38
  479. package/dist/paraglide/messages/fr.d.ts +0 -23
  480. package/dist/paraglide/messages/fr.js +0 -38
  481. package/dist/paraglide/messages/he.d.ts +0 -23
  482. package/dist/paraglide/messages/he.js +0 -38
  483. package/dist/paraglide/messages/hi.d.ts +0 -23
  484. package/dist/paraglide/messages/hi.js +0 -38
  485. package/dist/paraglide/messages/hu.d.ts +0 -23
  486. package/dist/paraglide/messages/hu.js +0 -38
  487. package/dist/paraglide/messages/id.d.ts +0 -23
  488. package/dist/paraglide/messages/id.js +0 -38
  489. package/dist/paraglide/messages/it.d.ts +0 -23
  490. package/dist/paraglide/messages/it.js +0 -38
  491. package/dist/paraglide/messages/ja.d.ts +0 -23
  492. package/dist/paraglide/messages/ja.js +0 -38
  493. package/dist/paraglide/messages/ko.d.ts +0 -23
  494. package/dist/paraglide/messages/ko.js +0 -38
  495. package/dist/paraglide/messages/lt.d.ts +0 -23
  496. package/dist/paraglide/messages/lt.js +0 -38
  497. package/dist/paraglide/messages/lv.d.ts +0 -23
  498. package/dist/paraglide/messages/lv.js +0 -38
  499. package/dist/paraglide/messages/ms.d.ts +0 -23
  500. package/dist/paraglide/messages/ms.js +0 -38
  501. package/dist/paraglide/messages/nl.d.ts +0 -23
  502. package/dist/paraglide/messages/nl.js +0 -38
  503. package/dist/paraglide/messages/no.d.ts +0 -23
  504. package/dist/paraglide/messages/no.js +0 -38
  505. package/dist/paraglide/messages/pl.d.ts +0 -23
  506. package/dist/paraglide/messages/pl.js +0 -38
  507. package/dist/paraglide/messages/pt.d.ts +0 -23
  508. package/dist/paraglide/messages/pt.js +0 -38
  509. package/dist/paraglide/messages/ro.d.ts +0 -23
  510. package/dist/paraglide/messages/ro.js +0 -38
  511. package/dist/paraglide/messages/ru.d.ts +0 -23
  512. package/dist/paraglide/messages/ru.js +0 -38
  513. package/dist/paraglide/messages/sk.d.ts +0 -23
  514. package/dist/paraglide/messages/sk.js +0 -38
  515. package/dist/paraglide/messages/sl.d.ts +0 -23
  516. package/dist/paraglide/messages/sl.js +0 -38
  517. package/dist/paraglide/messages/sq.d.ts +0 -23
  518. package/dist/paraglide/messages/sq.js +0 -38
  519. package/dist/paraglide/messages/sr.d.ts +0 -23
  520. package/dist/paraglide/messages/sr.js +0 -38
  521. package/dist/paraglide/messages/sv.d.ts +0 -23
  522. package/dist/paraglide/messages/sv.js +0 -38
  523. package/dist/paraglide/messages/sw.d.ts +0 -23
  524. package/dist/paraglide/messages/sw.js +0 -38
  525. package/dist/paraglide/messages/ta.d.ts +0 -23
  526. package/dist/paraglide/messages/ta.js +0 -38
  527. package/dist/paraglide/messages/te.d.ts +0 -23
  528. package/dist/paraglide/messages/te.js +0 -38
  529. package/dist/paraglide/messages/th.d.ts +0 -23
  530. package/dist/paraglide/messages/th.js +0 -38
  531. package/dist/paraglide/messages/tl.d.ts +0 -23
  532. package/dist/paraglide/messages/tl.js +0 -38
  533. package/dist/paraglide/messages/tr.d.ts +0 -23
  534. package/dist/paraglide/messages/tr.js +0 -38
  535. package/dist/paraglide/messages/uk.d.ts +0 -23
  536. package/dist/paraglide/messages/uk.js +0 -38
  537. package/dist/paraglide/messages/vi.d.ts +0 -23
  538. package/dist/paraglide/messages/vi.js +0 -38
  539. package/dist/paraglide/messages/zh-CN.d.ts +0 -23
  540. package/dist/paraglide/messages/zh-CN.js +0 -38
  541. package/dist/paraglide/messages/zh-TW.d.ts +0 -23
  542. package/dist/paraglide/messages/zh-TW.js +0 -38
  543. package/dist/paraglide/messages.d.ts +0 -2
  544. package/dist/paraglide/messages.js +0 -4
  545. package/dist/paraglide/registry.d.ts +0 -34
  546. package/dist/paraglide/registry.js +0 -46
  547. package/dist/paraglide/runtime.d.ts +0 -758
  548. package/dist/paraglide/runtime.js +0 -1990
  549. package/dist/paraglide/server.d.ts +0 -96
  550. package/dist/paraglide/server.js +0 -277
  551. package/dist/tera-i18n/README.md +0 -105
  552. package/dist/tera-i18n/assets/world-flags/Algeria.svg +0 -13
  553. package/dist/tera-i18n/assets/world-flags/East Timor.svg +0 -13
  554. package/dist/tera-i18n/assets/world-flags/Rapa Nui.svg +0 -11
  555. package/dist/tera-i18n/assets/world-flags/abkhazia.svg +0 -23
  556. package/dist/tera-i18n/assets/world-flags/afghanistan.svg +0 -14
  557. package/dist/tera-i18n/assets/world-flags/aland islands.svg +0 -15
  558. package/dist/tera-i18n/assets/world-flags/albania.svg +0 -11
  559. package/dist/tera-i18n/assets/world-flags/american samoa.svg +0 -15
  560. package/dist/tera-i18n/assets/world-flags/andorra.svg +0 -15
  561. package/dist/tera-i18n/assets/world-flags/angola.svg +0 -14
  562. package/dist/tera-i18n/assets/world-flags/anguilla.svg +0 -19
  563. package/dist/tera-i18n/assets/world-flags/antigua and barbuda.svg +0 -15
  564. package/dist/tera-i18n/assets/world-flags/argentina.svg +0 -13
  565. package/dist/tera-i18n/assets/world-flags/armenia.svg +0 -12
  566. package/dist/tera-i18n/assets/world-flags/aruba.svg +0 -15
  567. package/dist/tera-i18n/assets/world-flags/australia.svg +0 -21
  568. package/dist/tera-i18n/assets/world-flags/austria.svg +0 -12
  569. package/dist/tera-i18n/assets/world-flags/azerbaijan.svg +0 -14
  570. package/dist/tera-i18n/assets/world-flags/azores islands.svg +0 -21
  571. package/dist/tera-i18n/assets/world-flags/bahamas.svg +0 -13
  572. package/dist/tera-i18n/assets/world-flags/bahrain.svg +0 -11
  573. package/dist/tera-i18n/assets/world-flags/balearic islands.svg +0 -16
  574. package/dist/tera-i18n/assets/world-flags/bangladesh.svg +0 -11
  575. package/dist/tera-i18n/assets/world-flags/barbados.svg +0 -13
  576. package/dist/tera-i18n/assets/world-flags/basque country.svg +0 -20
  577. package/dist/tera-i18n/assets/world-flags/belarus.svg +0 -18
  578. package/dist/tera-i18n/assets/world-flags/belgium.svg +0 -12
  579. package/dist/tera-i18n/assets/world-flags/belize.svg +0 -17
  580. package/dist/tera-i18n/assets/world-flags/benin.svg +0 -12
  581. package/dist/tera-i18n/assets/world-flags/bermuda.svg +0 -20
  582. package/dist/tera-i18n/assets/world-flags/bhutan.svg +0 -13
  583. package/dist/tera-i18n/assets/world-flags/bolivia.svg +0 -12
  584. package/dist/tera-i18n/assets/world-flags/bonaire.svg +0 -14
  585. package/dist/tera-i18n/assets/world-flags/bosnia and herzegovina.svg +0 -13
  586. package/dist/tera-i18n/assets/world-flags/botswana.svg +0 -13
  587. package/dist/tera-i18n/assets/world-flags/brazil.svg +0 -14
  588. package/dist/tera-i18n/assets/world-flags/british columbia.svg +0 -31
  589. package/dist/tera-i18n/assets/world-flags/british indian ocean territory.svg +0 -29
  590. package/dist/tera-i18n/assets/world-flags/british virgin islands.svg +0 -24
  591. package/dist/tera-i18n/assets/world-flags/brunei.svg +0 -19
  592. package/dist/tera-i18n/assets/world-flags/bulgaria.svg +0 -12
  593. package/dist/tera-i18n/assets/world-flags/burkina faso.svg +0 -12
  594. package/dist/tera-i18n/assets/world-flags/burundi.svg +0 -18
  595. package/dist/tera-i18n/assets/world-flags/cambodia.svg +0 -13
  596. package/dist/tera-i18n/assets/world-flags/cameroon.svg +0 -13
  597. package/dist/tera-i18n/assets/world-flags/canada.svg +0 -13
  598. package/dist/tera-i18n/assets/world-flags/canary islands.svg +0 -12
  599. package/dist/tera-i18n/assets/world-flags/cape verde.svg +0 -23
  600. package/dist/tera-i18n/assets/world-flags/catalonia.svg +0 -7
  601. package/dist/tera-i18n/assets/world-flags/cayman islands.svg +0 -20
  602. package/dist/tera-i18n/assets/world-flags/central african republic.svg +0 -20
  603. package/dist/tera-i18n/assets/world-flags/ceuta.svg +0 -29
  604. package/dist/tera-i18n/assets/world-flags/chad.svg +0 -12
  605. package/dist/tera-i18n/assets/world-flags/chile.svg +0 -13
  606. package/dist/tera-i18n/assets/world-flags/china.svg +0 -15
  607. package/dist/tera-i18n/assets/world-flags/cocos island.svg +0 -19
  608. package/dist/tera-i18n/assets/world-flags/colombia.svg +0 -12
  609. package/dist/tera-i18n/assets/world-flags/comoros.svg +0 -19
  610. package/dist/tera-i18n/assets/world-flags/cook islands.svg +0 -22
  611. package/dist/tera-i18n/assets/world-flags/corsica.svg +0 -12
  612. package/dist/tera-i18n/assets/world-flags/costa rica.svg +0 -13
  613. package/dist/tera-i18n/assets/world-flags/croatia.svg +0 -31
  614. package/dist/tera-i18n/assets/world-flags/cuba.svg +0 -16
  615. package/dist/tera-i18n/assets/world-flags/curacao.svg +0 -14
  616. package/dist/tera-i18n/assets/world-flags/cyprus.svg +0 -12
  617. package/dist/tera-i18n/assets/world-flags/czech republic.svg +0 -12
  618. package/dist/tera-i18n/assets/world-flags/democratic republic of congo.svg +0 -14
  619. package/dist/tera-i18n/assets/world-flags/denmark.svg +0 -14
  620. package/dist/tera-i18n/assets/world-flags/djibouti.svg +0 -13
  621. package/dist/tera-i18n/assets/world-flags/dominica.svg +0 -34
  622. package/dist/tera-i18n/assets/world-flags/dominican republic.svg +0 -17
  623. package/dist/tera-i18n/assets/world-flags/ecuador.svg +0 -15
  624. package/dist/tera-i18n/assets/world-flags/egypt.svg +0 -13
  625. package/dist/tera-i18n/assets/world-flags/el salvador.svg +0 -15
  626. package/dist/tera-i18n/assets/world-flags/england.svg +0 -11
  627. package/dist/tera-i18n/assets/world-flags/equatorial guinea.svg +0 -16
  628. package/dist/tera-i18n/assets/world-flags/eritrea.svg +0 -13
  629. package/dist/tera-i18n/assets/world-flags/estonia.svg +0 -12
  630. package/dist/tera-i18n/assets/world-flags/ethiopia.svg +0 -15
  631. package/dist/tera-i18n/assets/world-flags/european union.svg +0 -18
  632. package/dist/tera-i18n/assets/world-flags/falkland islands.svg +0 -18
  633. package/dist/tera-i18n/assets/world-flags/faroe islands.svg +0 -12
  634. package/dist/tera-i18n/assets/world-flags/fiji.svg +0 -18
  635. package/dist/tera-i18n/assets/world-flags/finland.svg +0 -11
  636. package/dist/tera-i18n/assets/world-flags/france.svg +0 -12
  637. package/dist/tera-i18n/assets/world-flags/french polynesia.svg +0 -17
  638. package/dist/tera-i18n/assets/world-flags/gabon.svg +0 -12
  639. package/dist/tera-i18n/assets/world-flags/galapagos islands.svg +0 -12
  640. package/dist/tera-i18n/assets/world-flags/gambia.svg +0 -13
  641. package/dist/tera-i18n/assets/world-flags/georgia.svg +0 -15
  642. package/dist/tera-i18n/assets/world-flags/germany.svg +0 -12
  643. package/dist/tera-i18n/assets/world-flags/ghana.svg +0 -13
  644. package/dist/tera-i18n/assets/world-flags/gibraltar.svg +0 -13
  645. package/dist/tera-i18n/assets/world-flags/greece.svg +0 -15
  646. package/dist/tera-i18n/assets/world-flags/greenland.svg +0 -13
  647. package/dist/tera-i18n/assets/world-flags/grenada.svg +0 -27
  648. package/dist/tera-i18n/assets/world-flags/guam.svg +0 -18
  649. package/dist/tera-i18n/assets/world-flags/guatemala.svg +0 -14
  650. package/dist/tera-i18n/assets/world-flags/guernsey.svg +0 -12
  651. package/dist/tera-i18n/assets/world-flags/guinea bissau.svg +0 -14
  652. package/dist/tera-i18n/assets/world-flags/guinea.svg +0 -12
  653. package/dist/tera-i18n/assets/world-flags/guyana.svg +0 -15
  654. package/dist/tera-i18n/assets/world-flags/haiti.svg +0 -17
  655. package/dist/tera-i18n/assets/world-flags/hawaii.svg +0 -15
  656. package/dist/tera-i18n/assets/world-flags/honduras.svg +0 -17
  657. package/dist/tera-i18n/assets/world-flags/hong kong.svg +0 -15
  658. package/dist/tera-i18n/assets/world-flags/hungary.svg +0 -12
  659. package/dist/tera-i18n/assets/world-flags/iceland.svg +0 -15
  660. package/dist/tera-i18n/assets/world-flags/india.svg +0 -15
  661. package/dist/tera-i18n/assets/world-flags/indonesia.svg +0 -11
  662. package/dist/tera-i18n/assets/world-flags/iran.svg +0 -13
  663. package/dist/tera-i18n/assets/world-flags/iraq.svg +0 -15
  664. package/dist/tera-i18n/assets/world-flags/ireland.svg +0 -12
  665. package/dist/tera-i18n/assets/world-flags/isle of man.svg +0 -11
  666. package/dist/tera-i18n/assets/world-flags/israel.svg +0 -13
  667. package/dist/tera-i18n/assets/world-flags/italy.svg +0 -12
  668. package/dist/tera-i18n/assets/world-flags/ivory coast.svg +0 -12
  669. package/dist/tera-i18n/assets/world-flags/jamaica.svg +0 -14
  670. package/dist/tera-i18n/assets/world-flags/japan.svg +0 -11
  671. package/dist/tera-i18n/assets/world-flags/jersey.svg +0 -13
  672. package/dist/tera-i18n/assets/world-flags/jordan.svg +0 -14
  673. package/dist/tera-i18n/assets/world-flags/kazakhstan.svg +0 -13
  674. package/dist/tera-i18n/assets/world-flags/kenya.svg +0 -19
  675. package/dist/tera-i18n/assets/world-flags/kiribati.svg +0 -17
  676. package/dist/tera-i18n/assets/world-flags/kosovo.svg +0 -17
  677. package/dist/tera-i18n/assets/world-flags/kuwait.svg +0 -13
  678. package/dist/tera-i18n/assets/world-flags/kyrgyzstan.svg +0 -16
  679. package/dist/tera-i18n/assets/world-flags/laos.svg +0 -13
  680. package/dist/tera-i18n/assets/world-flags/latvia.svg +0 -12
  681. package/dist/tera-i18n/assets/world-flags/lebanon.svg +0 -13
  682. package/dist/tera-i18n/assets/world-flags/lesotho.svg +0 -13
  683. package/dist/tera-i18n/assets/world-flags/liberia.svg +0 -23
  684. package/dist/tera-i18n/assets/world-flags/libya.svg +0 -14
  685. package/dist/tera-i18n/assets/world-flags/liechtenstein.svg +0 -12
  686. package/dist/tera-i18n/assets/world-flags/lithuania.svg +0 -12
  687. package/dist/tera-i18n/assets/world-flags/luxembourg.svg +0 -12
  688. package/dist/tera-i18n/assets/world-flags/macao.svg +0 -18
  689. package/dist/tera-i18n/assets/world-flags/madagascar.svg +0 -12
  690. package/dist/tera-i18n/assets/world-flags/madeira.svg +0 -14
  691. package/dist/tera-i18n/assets/world-flags/malawi.svg +0 -13
  692. package/dist/tera-i18n/assets/world-flags/malaysia.svg +0 -17
  693. package/dist/tera-i18n/assets/world-flags/maldives.svg +0 -12
  694. package/dist/tera-i18n/assets/world-flags/mali.svg +0 -12
  695. package/dist/tera-i18n/assets/world-flags/malta.svg +0 -12
  696. package/dist/tera-i18n/assets/world-flags/marshall island.svg +0 -13
  697. package/dist/tera-i18n/assets/world-flags/martinique.svg +0 -18
  698. package/dist/tera-i18n/assets/world-flags/mauritania.svg +0 -12
  699. package/dist/tera-i18n/assets/world-flags/mauritius.svg +0 -13
  700. package/dist/tera-i18n/assets/world-flags/melilla.svg +0 -25
  701. package/dist/tera-i18n/assets/world-flags/mexico.svg +0 -14
  702. package/dist/tera-i18n/assets/world-flags/micronesia.svg +0 -14
  703. package/dist/tera-i18n/assets/world-flags/moldova.svg +0 -15
  704. package/dist/tera-i18n/assets/world-flags/monaco.svg +0 -11
  705. package/dist/tera-i18n/assets/world-flags/mongolia.svg +0 -19
  706. package/dist/tera-i18n/assets/world-flags/montenegro.svg +0 -15
  707. package/dist/tera-i18n/assets/world-flags/montserrat.svg +0 -17
  708. package/dist/tera-i18n/assets/world-flags/morocco.svg +0 -11
  709. package/dist/tera-i18n/assets/world-flags/mozambique.svg +0 -17
  710. package/dist/tera-i18n/assets/world-flags/myanmar.svg +0 -13
  711. package/dist/tera-i18n/assets/world-flags/namibia.svg +0 -14
  712. package/dist/tera-i18n/assets/world-flags/nato.svg +0 -19
  713. package/dist/tera-i18n/assets/world-flags/nauru.svg +0 -14
  714. package/dist/tera-i18n/assets/world-flags/nepal.svg +0 -16
  715. package/dist/tera-i18n/assets/world-flags/netherlands.svg +0 -12
  716. package/dist/tera-i18n/assets/world-flags/new zealand.svg +0 -18
  717. package/dist/tera-i18n/assets/world-flags/nicaragua.svg +0 -16
  718. package/dist/tera-i18n/assets/world-flags/niger.svg +0 -13
  719. package/dist/tera-i18n/assets/world-flags/nigeria.svg +0 -12
  720. package/dist/tera-i18n/assets/world-flags/niue.svg +0 -20
  721. package/dist/tera-i18n/assets/world-flags/norfolk island.svg +0 -13
  722. package/dist/tera-i18n/assets/world-flags/north korea.svg +0 -15
  723. package/dist/tera-i18n/assets/world-flags/northern cyprus.svg +0 -14
  724. package/dist/tera-i18n/assets/world-flags/northern marianas islands.svg +0 -14
  725. package/dist/tera-i18n/assets/world-flags/norway.svg +0 -15
  726. package/dist/tera-i18n/assets/world-flags/oman.svg +0 -15
  727. package/dist/tera-i18n/assets/world-flags/orkney islands.svg +0 -15
  728. package/dist/tera-i18n/assets/world-flags/ossetia.svg +0 -12
  729. package/dist/tera-i18n/assets/world-flags/pakistan.svg +0 -14
  730. package/dist/tera-i18n/assets/world-flags/palau.svg +0 -11
  731. package/dist/tera-i18n/assets/world-flags/palestine.svg +0 -13
  732. package/dist/tera-i18n/assets/world-flags/panama.svg +0 -14
  733. package/dist/tera-i18n/assets/world-flags/papua new guinea.svg +0 -17
  734. package/dist/tera-i18n/assets/world-flags/paraguay.svg +0 -14
  735. package/dist/tera-i18n/assets/world-flags/peru.svg +0 -12
  736. package/dist/tera-i18n/assets/world-flags/philippines.svg +0 -16
  737. package/dist/tera-i18n/assets/world-flags/pitcairn islands.svg +0 -18
  738. package/dist/tera-i18n/assets/world-flags/poland.svg +0 -11
  739. package/dist/tera-i18n/assets/world-flags/portugal.svg +0 -14
  740. package/dist/tera-i18n/assets/world-flags/puerto rico.svg +0 -15
  741. package/dist/tera-i18n/assets/world-flags/qatar.svg +0 -11
  742. package/dist/tera-i18n/assets/world-flags/republic of macedonia.svg +0 -20
  743. package/dist/tera-i18n/assets/world-flags/republic of the congo.svg +0 -12
  744. package/dist/tera-i18n/assets/world-flags/romania.svg +0 -12
  745. package/dist/tera-i18n/assets/world-flags/russia.svg +0 -12
  746. package/dist/tera-i18n/assets/world-flags/rwanda.svg +0 -13
  747. package/dist/tera-i18n/assets/world-flags/saba island.svg +0 -15
  748. package/dist/tera-i18n/assets/world-flags/sahrawi arab democratic republic.svg +0 -15
  749. package/dist/tera-i18n/assets/world-flags/samoa.svg +0 -16
  750. package/dist/tera-i18n/assets/world-flags/san marino.svg +0 -16
  751. package/dist/tera-i18n/assets/world-flags/sao tome and prince.svg +0 -15
  752. package/dist/tera-i18n/assets/world-flags/sardinia.svg +0 -23
  753. package/dist/tera-i18n/assets/world-flags/saudi arabia.svg +0 -16
  754. package/dist/tera-i18n/assets/world-flags/scotland.svg +0 -14
  755. package/dist/tera-i18n/assets/world-flags/senegal.svg +0 -13
  756. package/dist/tera-i18n/assets/world-flags/serbia.svg +0 -16
  757. package/dist/tera-i18n/assets/world-flags/seychelles.svg +0 -14
  758. package/dist/tera-i18n/assets/world-flags/sierra leone.svg +0 -12
  759. package/dist/tera-i18n/assets/world-flags/singapore.svg +0 -17
  760. package/dist/tera-i18n/assets/world-flags/sint eustatius.svg +0 -20
  761. package/dist/tera-i18n/assets/world-flags/sint maarten.svg +0 -17
  762. package/dist/tera-i18n/assets/world-flags/slovakia.svg +0 -16
  763. package/dist/tera-i18n/assets/world-flags/slovenia.svg +0 -13
  764. package/dist/tera-i18n/assets/world-flags/solomon islands.svg +0 -17
  765. package/dist/tera-i18n/assets/world-flags/somalia.svg +0 -11
  766. package/dist/tera-i18n/assets/world-flags/somaliland.svg +0 -18
  767. package/dist/tera-i18n/assets/world-flags/south africa.svg +0 -15
  768. package/dist/tera-i18n/assets/world-flags/south korea.svg +0 -30
  769. package/dist/tera-i18n/assets/world-flags/south sudan.svg +0 -15
  770. package/dist/tera-i18n/assets/world-flags/spain.png +0 -0
  771. package/dist/tera-i18n/assets/world-flags/spain.svg +0 -676
  772. package/dist/tera-i18n/assets/world-flags/sri lanka.svg +0 -15
  773. package/dist/tera-i18n/assets/world-flags/st barts.svg +0 -16
  774. package/dist/tera-i18n/assets/world-flags/st lucia.svg +0 -13
  775. package/dist/tera-i18n/assets/world-flags/st vincent and the grenadines.svg +0 -15
  776. package/dist/tera-i18n/assets/world-flags/sudan.svg +0 -13
  777. package/dist/tera-i18n/assets/world-flags/suriname.svg +0 -14
  778. package/dist/tera-i18n/assets/world-flags/swaziland.svg +0 -21
  779. package/dist/tera-i18n/assets/world-flags/sweden.svg +0 -14
  780. package/dist/tera-i18n/assets/world-flags/switzerland.svg +0 -11
  781. package/dist/tera-i18n/assets/world-flags/syria.svg +0 -14
  782. package/dist/tera-i18n/assets/world-flags/taiwan.svg +0 -14
  783. package/dist/tera-i18n/assets/world-flags/tajikistan.svg +0 -20
  784. package/dist/tera-i18n/assets/world-flags/tanzania.svg +0 -13
  785. package/dist/tera-i18n/assets/world-flags/thailand.svg +0 -13
  786. package/dist/tera-i18n/assets/world-flags/tibet.svg +0 -22
  787. package/dist/tera-i18n/assets/world-flags/togo.svg +0 -15
  788. package/dist/tera-i18n/assets/world-flags/tokelau.svg +0 -15
  789. package/dist/tera-i18n/assets/world-flags/tonga.svg +0 -12
  790. package/dist/tera-i18n/assets/world-flags/transnistria.svg +0 -12
  791. package/dist/tera-i18n/assets/world-flags/trinidad and tobago.svg +0 -13
  792. package/dist/tera-i18n/assets/world-flags/tunisia.svg +0 -13
  793. package/dist/tera-i18n/assets/world-flags/turkey.svg +0 -12
  794. package/dist/tera-i18n/assets/world-flags/turkmenistan.svg +0 -30
  795. package/dist/tera-i18n/assets/world-flags/turks and caicos.svg +0 -19
  796. package/dist/tera-i18n/assets/world-flags/tuvalu.svg +0 -25
  797. package/dist/tera-i18n/assets/world-flags/uganda.svg +0 -16
  798. package/dist/tera-i18n/assets/world-flags/ukraine.svg +0 -11
  799. package/dist/tera-i18n/assets/world-flags/united arab emirates.svg +0 -13
  800. package/dist/tera-i18n/assets/world-flags/united kingdom.svg +0 -23
  801. package/dist/tera-i18n/assets/world-flags/united nations.svg +0 -12
  802. package/dist/tera-i18n/assets/world-flags/united states.svg +0 -15
  803. package/dist/tera-i18n/assets/world-flags/uruguay.svg +0 -16
  804. package/dist/tera-i18n/assets/world-flags/uzbekista/314/201n.svg +0 -27
  805. package/dist/tera-i18n/assets/world-flags/uzbekist/303/241n.svg +0 -27
  806. package/dist/tera-i18n/assets/world-flags/vanuatu.svg +0 -32
  807. package/dist/tera-i18n/assets/world-flags/vatican city.svg +0 -13
  808. package/dist/tera-i18n/assets/world-flags/venezuela.svg +0 -20
  809. package/dist/tera-i18n/assets/world-flags/vietnam.svg +0 -11
  810. package/dist/tera-i18n/assets/world-flags/virgin islands.svg +0 -18
  811. package/dist/tera-i18n/assets/world-flags/wales.svg +0 -12
  812. package/dist/tera-i18n/assets/world-flags/yemen.svg +0 -12
  813. package/dist/tera-i18n/assets/world-flags/zambia.svg +0 -14
  814. package/dist/tera-i18n/assets/world-flags/zimbabwe.svg +0 -20
  815. package/dist/tera-i18n/dev-tools/translator/.env +0 -2
  816. package/dist/tera-i18n/dev-tools/translator/gpt-translator-calculator-seo.js +0 -79
  817. package/dist/tera-i18n/dev-tools/translator/gpt-translator-i18n-message.js +0 -274
  818. package/dist/tera-i18n/dev-tools/translator/gpt-translator.js +0 -128
  819. package/dist/tera-i18n/dev-tools/translator/index.js +0 -2
  820. package/dist/tera-i18n/dev-tools/translator/package-lock.json +0 -780
  821. package/dist/tera-i18n/dev-tools/translator/package.json +0 -20
  822. package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-calculator.md +0 -34
  823. package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-cv-maker.md +0 -149
  824. package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-system.txt +0 -1
  825. package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt.txt +0 -14
  826. package/dist/tera-i18n/dev-tools/translator/tsconfig.json +0 -17
  827. package/dist/tera-i18n/dev-tools/translator/types/supported-languages.js +0 -90
  828. package/dist/tera-i18n/projects/common/all-language-data.d.ts +0 -3
  829. package/dist/tera-i18n/projects/common/all-language-data.js +0 -141
  830. package/dist/tera-i18n/projects/common/messages/en.json +0 -0
  831. package/dist/tera-i18n/projects/common/types/language.d.ts +0 -6
  832. package/dist/tera-i18n/projects/common/types/language.js +0 -1
  833. package/dist/tera-i18n/projects/cv-maker/messages/ar-AE.json +0 -94
  834. package/dist/tera-i18n/projects/cv-maker/messages/ar-EG.json +0 -94
  835. package/dist/tera-i18n/projects/cv-maker/messages/ar-IQ.json +0 -94
  836. package/dist/tera-i18n/projects/cv-maker/messages/ar-SA.json +0 -94
  837. package/dist/tera-i18n/projects/cv-maker/messages/ar-SD.json +0 -94
  838. package/dist/tera-i18n/projects/cv-maker/messages/ar-YE.json +0 -94
  839. package/dist/tera-i18n/projects/cv-maker/messages/ar.json +0 -95
  840. package/dist/tera-i18n/projects/cv-maker/messages/bg.json +0 -95
  841. package/dist/tera-i18n/projects/cv-maker/messages/bn.json +0 -95
  842. package/dist/tera-i18n/projects/cv-maker/messages/ca.json +0 -95
  843. package/dist/tera-i18n/projects/cv-maker/messages/cs.json +0 -95
  844. package/dist/tera-i18n/projects/cv-maker/messages/da.json +0 -95
  845. package/dist/tera-i18n/projects/cv-maker/messages/de.json +0 -95
  846. package/dist/tera-i18n/projects/cv-maker/messages/el.json +0 -95
  847. package/dist/tera-i18n/projects/cv-maker/messages/en-AE.json +0 -94
  848. package/dist/tera-i18n/projects/cv-maker/messages/en-AU.json +0 -94
  849. package/dist/tera-i18n/projects/cv-maker/messages/en-CA.json +0 -94
  850. package/dist/tera-i18n/projects/cv-maker/messages/en-GB.json +0 -94
  851. package/dist/tera-i18n/projects/cv-maker/messages/en-ID.json +0 -94
  852. package/dist/tera-i18n/projects/cv-maker/messages/en-IN.json +0 -94
  853. package/dist/tera-i18n/projects/cv-maker/messages/en-NZ.json +0 -94
  854. package/dist/tera-i18n/projects/cv-maker/messages/en-PH.json +0 -94
  855. package/dist/tera-i18n/projects/cv-maker/messages/en-PK.json +0 -94
  856. package/dist/tera-i18n/projects/cv-maker/messages/en-SA.json +0 -94
  857. package/dist/tera-i18n/projects/cv-maker/messages/en-US.json +0 -94
  858. package/dist/tera-i18n/projects/cv-maker/messages/en-ZA.json +0 -94
  859. package/dist/tera-i18n/projects/cv-maker/messages/en.json +0 -92
  860. package/dist/tera-i18n/projects/cv-maker/messages/es-419.json +0 -94
  861. package/dist/tera-i18n/projects/cv-maker/messages/es-AR.json +0 -94
  862. package/dist/tera-i18n/projects/cv-maker/messages/es-ES.json +0 -94
  863. package/dist/tera-i18n/projects/cv-maker/messages/es-MX.json +0 -94
  864. package/dist/tera-i18n/projects/cv-maker/messages/es.json +0 -95
  865. package/dist/tera-i18n/projects/cv-maker/messages/fi.json +0 -95
  866. package/dist/tera-i18n/projects/cv-maker/messages/fr-MA.json +0 -94
  867. package/dist/tera-i18n/projects/cv-maker/messages/fr.json +0 -95
  868. package/dist/tera-i18n/projects/cv-maker/messages/he.json +0 -95
  869. package/dist/tera-i18n/projects/cv-maker/messages/hi.json +0 -95
  870. package/dist/tera-i18n/projects/cv-maker/messages/hr.json +0 -94
  871. package/dist/tera-i18n/projects/cv-maker/messages/hu.json +0 -95
  872. package/dist/tera-i18n/projects/cv-maker/messages/id.json +0 -95
  873. package/dist/tera-i18n/projects/cv-maker/messages/it.json +0 -95
  874. package/dist/tera-i18n/projects/cv-maker/messages/ja.json +0 -95
  875. package/dist/tera-i18n/projects/cv-maker/messages/ko.json +0 -95
  876. package/dist/tera-i18n/projects/cv-maker/messages/lt.json +0 -95
  877. package/dist/tera-i18n/projects/cv-maker/messages/lv.json +0 -95
  878. package/dist/tera-i18n/projects/cv-maker/messages/ms-MY.json +0 -94
  879. package/dist/tera-i18n/projects/cv-maker/messages/ms.json +0 -95
  880. package/dist/tera-i18n/projects/cv-maker/messages/nl.json +0 -95
  881. package/dist/tera-i18n/projects/cv-maker/messages/no.json +0 -95
  882. package/dist/tera-i18n/projects/cv-maker/messages/pl.json +0 -95
  883. package/dist/tera-i18n/projects/cv-maker/messages/pt-BR.json +0 -94
  884. package/dist/tera-i18n/projects/cv-maker/messages/pt-PT.json +0 -94
  885. package/dist/tera-i18n/projects/cv-maker/messages/pt.json +0 -95
  886. package/dist/tera-i18n/projects/cv-maker/messages/ro.json +0 -95
  887. package/dist/tera-i18n/projects/cv-maker/messages/ru.json +0 -95
  888. package/dist/tera-i18n/projects/cv-maker/messages/sk.json +0 -95
  889. package/dist/tera-i18n/projects/cv-maker/messages/sl.json +0 -95
  890. package/dist/tera-i18n/projects/cv-maker/messages/sq.json +0 -95
  891. package/dist/tera-i18n/projects/cv-maker/messages/sr.json +0 -95
  892. package/dist/tera-i18n/projects/cv-maker/messages/sv.json +0 -95
  893. package/dist/tera-i18n/projects/cv-maker/messages/sw.json +0 -95
  894. package/dist/tera-i18n/projects/cv-maker/messages/ta.json +0 -95
  895. package/dist/tera-i18n/projects/cv-maker/messages/te.json +0 -95
  896. package/dist/tera-i18n/projects/cv-maker/messages/th.json +0 -95
  897. package/dist/tera-i18n/projects/cv-maker/messages/tl.json +0 -95
  898. package/dist/tera-i18n/projects/cv-maker/messages/tr.json +0 -95
  899. package/dist/tera-i18n/projects/cv-maker/messages/uk.json +0 -95
  900. package/dist/tera-i18n/projects/cv-maker/messages/vi.json +0 -95
  901. package/dist/tera-i18n/projects/cv-maker/messages/zh-CN.json +0 -95
  902. package/dist/tera-i18n/projects/cv-maker/messages/zh-TW.json +0 -95
  903. package/dist/tera-i18n/projects/cv-maker/messages/zh.json +0 -94
  904. package/dist/tera-i18n/projects/cv-maker/project.inlang/settings.json +0 -84
  905. package/dist/tera-i18n/projects/cv-maker/supported-language.d.ts +0 -1
  906. package/dist/tera-i18n/projects/cv-maker/supported-language.js +0 -81
  907. package/dist/tera-i18n/projects/mathda/messages/en.json +0 -4
  908. package/dist/tera-i18n/projects/mathda/messages/vi.json +0 -4
  909. package/dist/tera-i18n/projects/mathda/project.inlang/settings.json +0 -15
  910. package/dist/tera-i18n/projects/mathda/supported-language.d.ts +0 -1
  911. package/dist/tera-i18n/projects/mathda/supported-language.js +0 -4
  912. package/dist/tera-i18n/projects/tera-calculator/messages/bg.json +0 -183
  913. package/dist/tera-i18n/projects/tera-calculator/messages/bn.json +0 -183
  914. package/dist/tera-i18n/projects/tera-calculator/messages/ca.json +0 -183
  915. package/dist/tera-i18n/projects/tera-calculator/messages/cs.json +0 -183
  916. package/dist/tera-i18n/projects/tera-calculator/messages/da.json +0 -183
  917. package/dist/tera-i18n/projects/tera-calculator/messages/de.json +0 -183
  918. package/dist/tera-i18n/projects/tera-calculator/messages/el.json +0 -183
  919. package/dist/tera-i18n/projects/tera-calculator/messages/en-IN.json +0 -183
  920. package/dist/tera-i18n/projects/tera-calculator/messages/en-PH.json +0 -183
  921. package/dist/tera-i18n/projects/tera-calculator/messages/en-US.json +0 -183
  922. package/dist/tera-i18n/projects/tera-calculator/messages/en.json +0 -189
  923. package/dist/tera-i18n/projects/tera-calculator/messages/es.json +0 -183
  924. package/dist/tera-i18n/projects/tera-calculator/messages/fi.json +0 -183
  925. package/dist/tera-i18n/projects/tera-calculator/messages/fr.json +0 -183
  926. package/dist/tera-i18n/projects/tera-calculator/messages/hi.json +0 -183
  927. package/dist/tera-i18n/projects/tera-calculator/messages/hu.json +0 -183
  928. package/dist/tera-i18n/projects/tera-calculator/messages/id.json +0 -183
  929. package/dist/tera-i18n/projects/tera-calculator/messages/it.json +0 -183
  930. package/dist/tera-i18n/projects/tera-calculator/messages/ja.json +0 -183
  931. package/dist/tera-i18n/projects/tera-calculator/messages/ko.json +0 -183
  932. package/dist/tera-i18n/projects/tera-calculator/messages/lt.json +0 -183
  933. package/dist/tera-i18n/projects/tera-calculator/messages/lv.json +0 -183
  934. package/dist/tera-i18n/projects/tera-calculator/messages/ms.json +0 -183
  935. package/dist/tera-i18n/projects/tera-calculator/messages/nl.json +0 -183
  936. package/dist/tera-i18n/projects/tera-calculator/messages/no.json +0 -183
  937. package/dist/tera-i18n/projects/tera-calculator/messages/pl.json +0 -183
  938. package/dist/tera-i18n/projects/tera-calculator/messages/pt.json +0 -183
  939. package/dist/tera-i18n/projects/tera-calculator/messages/ro.json +0 -183
  940. package/dist/tera-i18n/projects/tera-calculator/messages/ru.json +0 -183
  941. package/dist/tera-i18n/projects/tera-calculator/messages/sk.json +0 -183
  942. package/dist/tera-i18n/projects/tera-calculator/messages/sl.json +0 -183
  943. package/dist/tera-i18n/projects/tera-calculator/messages/sq.json +0 -183
  944. package/dist/tera-i18n/projects/tera-calculator/messages/sr.json +0 -183
  945. package/dist/tera-i18n/projects/tera-calculator/messages/sv.json +0 -183
  946. package/dist/tera-i18n/projects/tera-calculator/messages/sw.json +0 -183
  947. package/dist/tera-i18n/projects/tera-calculator/messages/ta.json +0 -183
  948. package/dist/tera-i18n/projects/tera-calculator/messages/te.json +0 -183
  949. package/dist/tera-i18n/projects/tera-calculator/messages/th.json +0 -183
  950. package/dist/tera-i18n/projects/tera-calculator/messages/tl.json +0 -183
  951. package/dist/tera-i18n/projects/tera-calculator/messages/tr.json +0 -183
  952. package/dist/tera-i18n/projects/tera-calculator/messages/uk.json +0 -183
  953. package/dist/tera-i18n/projects/tera-calculator/messages/vi.json +0 -183
  954. package/dist/tera-i18n/projects/tera-calculator/messages/zh-CN.json +0 -183
  955. package/dist/tera-i18n/projects/tera-calculator/messages/zh-TW.json +0 -183
  956. package/dist/tera-i18n/projects/tera-calculator/project.inlang/settings.json +0 -57
  957. package/dist/tera-i18n/projects/tera-calculator/supported-language.d.ts +0 -1
  958. package/dist/tera-i18n/projects/tera-calculator/supported-language.js +0 -48
  959. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/de.json +0 -1876
  960. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/en.json +0 -1876
  961. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/es.json +0 -1876
  962. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/fr.json +0 -1876
  963. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/it.json +0 -1876
  964. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/ja.json +0 -1876
  965. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/ko.json +0 -1876
  966. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/pt.json +0 -1876
  967. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/ru.json +0 -1876
  968. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/vi.json +0 -1876
  969. package/dist/tera-i18n/projects/tera-converter/messages/auto-generated/zh-CN.json +0 -1876
  970. package/dist/tera-i18n/projects/tera-converter/messages/de.json +0 -41
  971. package/dist/tera-i18n/projects/tera-converter/messages/en.json +0 -42
  972. package/dist/tera-i18n/projects/tera-converter/messages/es.json +0 -41
  973. package/dist/tera-i18n/projects/tera-converter/messages/fr.json +0 -41
  974. package/dist/tera-i18n/projects/tera-converter/messages/it.json +0 -41
  975. package/dist/tera-i18n/projects/tera-converter/messages/ja.json +0 -41
  976. package/dist/tera-i18n/projects/tera-converter/messages/ko.json +0 -41
  977. package/dist/tera-i18n/projects/tera-converter/messages/pt.json +0 -41
  978. package/dist/tera-i18n/projects/tera-converter/messages/ru.json +0 -41
  979. package/dist/tera-i18n/projects/tera-converter/messages/vi.json +0 -41
  980. package/dist/tera-i18n/projects/tera-converter/messages/zh-CN.json +0 -41
  981. package/dist/tera-i18n/projects/tera-converter/project.inlang/project_id +0 -1
  982. package/dist/tera-i18n/projects/tera-converter/project.inlang/settings.json +0 -27
  983. package/dist/tera-i18n/projects/tera-converter/supported-language.d.ts +0 -1
  984. package/dist/tera-i18n/projects/tera-converter/supported-language.js +0 -13
  985. package/dist/tera-i18n/projects/tera-system-ui/messages/ar.json +0 -10
  986. package/dist/tera-i18n/projects/tera-system-ui/messages/bg.json +0 -10
  987. package/dist/tera-i18n/projects/tera-system-ui/messages/bn.json +0 -10
  988. package/dist/tera-i18n/projects/tera-system-ui/messages/ca.json +0 -10
  989. package/dist/tera-i18n/projects/tera-system-ui/messages/cs.json +0 -10
  990. package/dist/tera-i18n/projects/tera-system-ui/messages/da.json +0 -10
  991. package/dist/tera-i18n/projects/tera-system-ui/messages/de.json +0 -10
  992. package/dist/tera-i18n/projects/tera-system-ui/messages/el.json +0 -10
  993. package/dist/tera-i18n/projects/tera-system-ui/messages/en.json +0 -10
  994. package/dist/tera-i18n/projects/tera-system-ui/messages/es.json +0 -10
  995. package/dist/tera-i18n/projects/tera-system-ui/messages/fi.json +0 -10
  996. package/dist/tera-i18n/projects/tera-system-ui/messages/fr.json +0 -10
  997. package/dist/tera-i18n/projects/tera-system-ui/messages/he.json +0 -10
  998. package/dist/tera-i18n/projects/tera-system-ui/messages/hi.json +0 -10
  999. package/dist/tera-i18n/projects/tera-system-ui/messages/hu.json +0 -10
  1000. package/dist/tera-i18n/projects/tera-system-ui/messages/id.json +0 -10
  1001. package/dist/tera-i18n/projects/tera-system-ui/messages/it.json +0 -10
  1002. package/dist/tera-i18n/projects/tera-system-ui/messages/ja.json +0 -10
  1003. package/dist/tera-i18n/projects/tera-system-ui/messages/ko.json +0 -10
  1004. package/dist/tera-i18n/projects/tera-system-ui/messages/lt.json +0 -10
  1005. package/dist/tera-i18n/projects/tera-system-ui/messages/lv.json +0 -10
  1006. package/dist/tera-i18n/projects/tera-system-ui/messages/ms.json +0 -10
  1007. package/dist/tera-i18n/projects/tera-system-ui/messages/nl.json +0 -10
  1008. package/dist/tera-i18n/projects/tera-system-ui/messages/no.json +0 -10
  1009. package/dist/tera-i18n/projects/tera-system-ui/messages/pl.json +0 -10
  1010. package/dist/tera-i18n/projects/tera-system-ui/messages/pt.json +0 -10
  1011. package/dist/tera-i18n/projects/tera-system-ui/messages/ro.json +0 -10
  1012. package/dist/tera-i18n/projects/tera-system-ui/messages/ru.json +0 -10
  1013. package/dist/tera-i18n/projects/tera-system-ui/messages/sk.json +0 -10
  1014. package/dist/tera-i18n/projects/tera-system-ui/messages/sl.json +0 -10
  1015. package/dist/tera-i18n/projects/tera-system-ui/messages/sq.json +0 -10
  1016. package/dist/tera-i18n/projects/tera-system-ui/messages/sr.json +0 -10
  1017. package/dist/tera-i18n/projects/tera-system-ui/messages/sv.json +0 -10
  1018. package/dist/tera-i18n/projects/tera-system-ui/messages/sw.json +0 -10
  1019. package/dist/tera-i18n/projects/tera-system-ui/messages/ta.json +0 -10
  1020. package/dist/tera-i18n/projects/tera-system-ui/messages/te.json +0 -10
  1021. package/dist/tera-i18n/projects/tera-system-ui/messages/th.json +0 -10
  1022. package/dist/tera-i18n/projects/tera-system-ui/messages/tl.json +0 -10
  1023. package/dist/tera-i18n/projects/tera-system-ui/messages/tr.json +0 -10
  1024. package/dist/tera-i18n/projects/tera-system-ui/messages/uk.json +0 -10
  1025. package/dist/tera-i18n/projects/tera-system-ui/messages/vi.json +0 -10
  1026. package/dist/tera-i18n/projects/tera-system-ui/messages/zh-CN.json +0 -10
  1027. package/dist/tera-i18n/projects/tera-system-ui/messages/zh-TW.json +0 -10
  1028. package/dist/tera-i18n/projects/tera-system-ui/project.inlang/settings.json +0 -59
  1029. package/dist/tera-i18n/projects/tera-system-ui/supported-language.d.ts +0 -1
  1030. package/dist/tera-i18n/projects/tera-system-ui/supported-language.js +0 -45
  1031. package/dist/tera-i18n/projects/tera-tools/messages/ar.json +0 -70
  1032. package/dist/tera-i18n/projects/tera-tools/messages/bg.json +0 -70
  1033. package/dist/tera-i18n/projects/tera-tools/messages/bn.json +0 -70
  1034. package/dist/tera-i18n/projects/tera-tools/messages/ca.json +0 -70
  1035. package/dist/tera-i18n/projects/tera-tools/messages/cs.json +0 -70
  1036. package/dist/tera-i18n/projects/tera-tools/messages/da.json +0 -70
  1037. package/dist/tera-i18n/projects/tera-tools/messages/de.json +0 -70
  1038. package/dist/tera-i18n/projects/tera-tools/messages/el.json +0 -70
  1039. package/dist/tera-i18n/projects/tera-tools/messages/en.json +0 -96
  1040. package/dist/tera-i18n/projects/tera-tools/messages/es.json +0 -70
  1041. package/dist/tera-i18n/projects/tera-tools/messages/fi.json +0 -70
  1042. package/dist/tera-i18n/projects/tera-tools/messages/fr.json +0 -70
  1043. package/dist/tera-i18n/projects/tera-tools/messages/he.json +0 -70
  1044. package/dist/tera-i18n/projects/tera-tools/messages/hi.json +0 -70
  1045. package/dist/tera-i18n/projects/tera-tools/messages/hu.json +0 -70
  1046. package/dist/tera-i18n/projects/tera-tools/messages/id.json +0 -70
  1047. package/dist/tera-i18n/projects/tera-tools/messages/it.json +0 -70
  1048. package/dist/tera-i18n/projects/tera-tools/messages/ja.json +0 -70
  1049. package/dist/tera-i18n/projects/tera-tools/messages/ko.json +0 -70
  1050. package/dist/tera-i18n/projects/tera-tools/messages/lt.json +0 -70
  1051. package/dist/tera-i18n/projects/tera-tools/messages/lv.json +0 -70
  1052. package/dist/tera-i18n/projects/tera-tools/messages/ms.json +0 -70
  1053. package/dist/tera-i18n/projects/tera-tools/messages/nl.json +0 -70
  1054. package/dist/tera-i18n/projects/tera-tools/messages/no.json +0 -70
  1055. package/dist/tera-i18n/projects/tera-tools/messages/pl.json +0 -70
  1056. package/dist/tera-i18n/projects/tera-tools/messages/pt.json +0 -70
  1057. package/dist/tera-i18n/projects/tera-tools/messages/ro.json +0 -70
  1058. package/dist/tera-i18n/projects/tera-tools/messages/ru.json +0 -70
  1059. package/dist/tera-i18n/projects/tera-tools/messages/sk.json +0 -70
  1060. package/dist/tera-i18n/projects/tera-tools/messages/sl.json +0 -70
  1061. package/dist/tera-i18n/projects/tera-tools/messages/sq.json +0 -70
  1062. package/dist/tera-i18n/projects/tera-tools/messages/sr.json +0 -70
  1063. package/dist/tera-i18n/projects/tera-tools/messages/sv.json +0 -70
  1064. package/dist/tera-i18n/projects/tera-tools/messages/sw.json +0 -70
  1065. package/dist/tera-i18n/projects/tera-tools/messages/ta.json +0 -70
  1066. package/dist/tera-i18n/projects/tera-tools/messages/te.json +0 -70
  1067. package/dist/tera-i18n/projects/tera-tools/messages/th.json +0 -70
  1068. package/dist/tera-i18n/projects/tera-tools/messages/tl.json +0 -70
  1069. package/dist/tera-i18n/projects/tera-tools/messages/tr.json +0 -70
  1070. package/dist/tera-i18n/projects/tera-tools/messages/uk.json +0 -70
  1071. package/dist/tera-i18n/projects/tera-tools/messages/vi.json +0 -70
  1072. package/dist/tera-i18n/projects/tera-tools/messages/zh-CN.json +0 -70
  1073. package/dist/tera-i18n/projects/tera-tools/messages/zh-TW.json +0 -70
  1074. package/dist/tera-i18n/projects/tera-tools/project.inlang/project_id +0 -1
  1075. package/dist/tera-i18n/projects/tera-tools/project.inlang/settings.json +0 -61
  1076. package/dist/tera-i18n/projects/tera-tools/supported-language.d.ts +0 -1
  1077. package/dist/tera-i18n/projects/tera-tools/supported-language.js +0 -45
  1078. package/dist/themes/theme-ai.css +0 -100
  1079. package/dist/themes/theme-marketing.css +0 -91
  1080. /package/dist/{components → internal}/icons/IconCheck.svelte.d.ts +0 -0
  1081. /package/dist/{components → internal}/icons/IconChevronDown.svelte.d.ts +0 -0
  1082. /package/dist/{components → internal}/icons/IconSearch.svelte.d.ts +0 -0
  1083. /package/dist/{components → internal}/icons/IconX.svelte.d.ts +0 -0
  1084. /package/dist/{components → internal}/icons/Icons.d.ts +0 -0
  1085. /package/dist/{components → internal}/icons/Icons.js +0 -0
@@ -0,0 +1,71 @@
1
+ {
2
+ "$schema": "https://tera-system-ui/registry-item.schema.json",
3
+ "name": "tabs",
4
+ "type": "registry:component",
5
+ "description": "Tabbed content panels (line + iOS variants).",
6
+ "recipe": "src/lib/components/tabs/Tabs.recipe.ts",
7
+ "files": [
8
+ {
9
+ "path": "src/lib/components/tabs/components/Tabs.svelte",
10
+ "target": "components/Tabs.svelte",
11
+ "type": "svelte",
12
+ "content": "<script lang=\"ts\">\n import {Tabs as TabsPrimitive} from 'bits-ui';\n import {type TabsProps, tabsRecipe} from '../Tabs.recipe.js';\n import {setTabsContext} from '../Tabs.svelte.js';\n\n let {\n children,\n // Default to '' (not undefined) so an uncontrolled <Tabs> (no value /\n // bind:value) doesn't bind `undefined` into bits-ui's value, which has a\n // fallback — that combination throws `props_invalid_value` in Svelte 5.\n value = $bindable(''),\n class: className,\n variant = 'line',\n onchange,\n activationMode,\n orientation = 'horizontal',\n loop,\n ...props\n }: TabsProps = $props();\n\n // Pass getter objects so consumers read the current value reactively\n setTabsContext({\n get variant() { return variant; },\n get orientation() { return orientation; }\n });\n\n const r = $derived(tabsRecipe({variant, orientation}));\n</script>\n\n<TabsPrimitive.Root\n bind:value\n onValueChange={onchange}\n {activationMode}\n {orientation}\n {loop}\n class={r.root({class: className})}\n {...props}\n>\n {@render children?.()}\n</TabsPrimitive.Root>\n"
13
+ },
14
+ {
15
+ "path": "src/lib/components/tabs/components/TabsContent.svelte",
16
+ "target": "components/TabsContent.svelte",
17
+ "type": "svelte",
18
+ "content": "<script lang=\"ts\">\n import {Tabs as TabsPrimitive} from 'bits-ui';\n import {tabsRecipe, type TabsContentProps} from '../Tabs.recipe.js';\n\n let {\n children,\n class: className,\n value,\n ref = $bindable(null),\n ...props\n }: TabsContentProps = $props();\n\n const r = tabsRecipe();\n</script>\n\n<TabsPrimitive.Content\n bind:ref\n {value}\n class={r.content({class: className})}\n {...props}\n>\n {@render children?.()}\n</TabsPrimitive.Content>\n"
19
+ },
20
+ {
21
+ "path": "src/lib/components/tabs/components/TabsItem.svelte",
22
+ "target": "components/TabsItem.svelte",
23
+ "type": "svelte",
24
+ "content": "<script lang=\"ts\">\n import {Tabs as TabsPrimitive} from 'bits-ui';\n import {tabsRecipe, type TabsItemProps} from '../Tabs.recipe.js';\n import {getTabsContext} from '../Tabs.svelte.js';\n\n let {\n children,\n class: className,\n value,\n ref = $bindable(null),\n ...props\n }: TabsItemProps = $props();\n\n const ctx = getTabsContext();\n const variant = $derived(ctx.variant);\n const orientation = $derived(ctx.orientation);\n\n const r = $derived(tabsRecipe({variant, orientation}));\n</script>\n\n<TabsPrimitive.Trigger\n bind:ref\n {value}\n class={r.trigger({class: className})}\n {...props}\n>\n {@render children?.()}\n</TabsPrimitive.Trigger>\n"
25
+ },
26
+ {
27
+ "path": "src/lib/components/tabs/components/TabsList.svelte",
28
+ "target": "components/TabsList.svelte",
29
+ "type": "svelte",
30
+ "content": "<script lang=\"ts\">\n import {Tabs as TabsPrimitive} from 'bits-ui';\n import {tabsRecipe, type TabsListProps} from '../Tabs.recipe.js';\n import {getTabsContext} from '../Tabs.svelte.js';\n\n let {\n children,\n class: className,\n indicatorClass,\n ref = $bindable(null),\n ...props\n }: TabsListProps = $props();\n\n const ctx = getTabsContext();\n const variant = $derived(ctx.variant);\n const orientation = $derived(ctx.orientation);\n const isVertical = $derived(orientation === 'vertical');\n\n const r = $derived(tabsRecipe({variant, orientation}));\n\n let tabsList = $state<HTMLElement | null>(null);\n let tabIndicator = $state<HTMLElement | null>(null);\n\n function updateIndicator() {\n if (!tabsList || !tabIndicator) return;\n const active = tabsList.querySelector('[data-state=\"active\"]') as HTMLElement | null;\n if (!active) return;\n const containerRect = tabsList.getBoundingClientRect();\n const rect = active.getBoundingClientRect();\n if (isVertical) {\n tabIndicator.style.top = `${rect.top - containerRect.top}px`;\n tabIndicator.style.height = `${rect.height}px`;\n tabIndicator.style.left = '';\n tabIndicator.style.width = '';\n } else {\n tabIndicator.style.left = `${rect.left - containerRect.left}px`;\n tabIndicator.style.width = `${rect.width}px`;\n tabIndicator.style.top = '';\n tabIndicator.style.height = '';\n }\n }\n\n $effect(() => {\n if (!tabsList) return;\n\n // Initial position (rAF lets the browser settle before measuring)\n requestAnimationFrame(updateIndicator);\n\n // React to BitsUI's data-state attribute changes on trigger buttons\n const mo = new MutationObserver(() => requestAnimationFrame(updateIndicator));\n mo.observe(tabsList, {attributes: true, attributeFilter: ['data-state'], subtree: true});\n\n // Reposition on container resize (e.g. responsive layout shift)\n const ro = new ResizeObserver(() => requestAnimationFrame(updateIndicator));\n ro.observe(tabsList);\n\n return () => {\n mo.disconnect();\n ro.disconnect();\n };\n });\n</script>\n\n<TabsPrimitive.List\n bind:ref={tabsList}\n class={r.list({class: className})}\n {...props}\n>\n {@render children?.()}\n <div\n bind:this={tabIndicator}\n class={r.indicator({class: indicatorClass})}\n ></div>\n</TabsPrimitive.List>\n"
31
+ },
32
+ {
33
+ "path": "src/lib/components/tabs/index.ts",
34
+ "target": "index.ts",
35
+ "type": "ts",
36
+ "content": "export {default as Tabs} from './components/Tabs.svelte'\nexport {default as TabsList} from './components/TabsList.svelte'\nexport {default as TabsItem} from './components/TabsItem.svelte'\nexport {default as TabsContent} from './components/TabsContent.svelte'\n\nexport {tabsRecipe} from './Tabs.recipe'\nexport type {TabsProps, TabsListProps, TabsItemProps, TabsContentProps, TabsRecipeProps, TabsVariant} from './Tabs.recipe'\n"
37
+ },
38
+ {
39
+ "path": "src/lib/components/tabs/Tabs.recipe.ts",
40
+ "target": "Tabs.recipe.ts",
41
+ "type": "recipe",
42
+ "content": "/**\n * Tabs recipe — the canonical styled layer for the base design language.\n *\n * Tabbed content panels built on the BitsUI Tabs primitive (root / list /\n * trigger / content). The tabs are a multi-part component, so the recipe is\n * SLOTTED: each visible part gets a named slot (root, list, trigger, content,\n * indicator) that an app can target independently when extending with\n * `tv({ extend: tabsRecipe, ... })` in typed code.\n *\n * Two visual styles are expressed as a `variant` variant — `line` (underline /\n * accent-bar indicator) and `ios` (segmented control with a sliding pill). The\n * `line` style also adapts to `orientation` (the indicator moves to the right\n * edge when vertical). All of these were previously if/else branches in the\n * markup; no class is lost.\n *\n * Restyle-internals (the lighter rung): the per-component CSS var below\n * (--tera-tabs-radius) lets a theme/app retune the iOS segmented container's\n * corner radius with no code change; it defaults to the global axis token via\n * an inline fallback. See docs/ARCHITECTURE.md for the worked extend example\n * (kept out of this JSDoc so the llms doc generator doesn't grep its tokens).\n */\nimport {tv, type VariantProps} from \"tailwind-variants\";\nimport type {Snippet} from \"svelte\";\n\nexport type TabsVariant = 'line' | 'ios';\n\nexport const tabsRecipe = tv({\n slots: {\n root: 'max-h-full gap-2',\n list: 'relative flex',\n trigger: 'outline-none focus-visible:shadow-focus',\n content: 'overflow-auto',\n indicator: 'absolute pointer-events-none',\n },\n variants: {\n variant: {\n line: {\n trigger: 'tab-button font-semibold px-2.5 py-1.5 rounded text-text-secondary hover:text-primary-token-4 hover:bg-surface-hover transition-[color,background-color] ease-ui duration-[var(--tera-duration-fast)] data-[state=active]:text-primary-token-7',\n indicator: 'rounded-full bg-primary-token-5',\n },\n ios: {\n list: 'bg-neutral-token-3 p-1 rounded-[var(--tera-tabs-radius,var(--tera-radius-lg))]',\n trigger: 'relative z-10 flex-1 px-4 py-1.5 text-sm font-semibold text-center rounded-full select-none text-text-secondary data-[state=active]:text-text-primary transition-colors ease-ui duration-[var(--tera-duration-fast)]',\n indicator: 'inset-y-1 rounded-md bg-surface shadow-sm transition-[left,width] duration-[var(--tera-duration-base)] ease-spring',\n },\n },\n orientation: {\n horizontal: {\n root: 'grid grid-rows-[auto_1fr]',\n },\n vertical: {\n root: 'grid grid-cols-[auto_1fr]',\n },\n },\n },\n compoundVariants: [\n // Default horizontal line style: bottom border + underline indicator\n {\n variant: 'line',\n orientation: 'horizontal',\n class: {\n list: 'gap-2 items-end border-b border-border-default',\n indicator: 'bottom-0 h-0.5 transition-[left,width] duration-[var(--tera-duration-fast)] ease-ui',\n },\n },\n // Vertical line style: right-side accent bar indicator\n {\n variant: 'line',\n orientation: 'vertical',\n class: {\n list: 'flex-col gap-1 border-r border-border-default',\n indicator: 'right-0 w-0.5 transition-[top,height] duration-[var(--tera-duration-fast)] ease-ui',\n },\n },\n ],\n defaultVariants: {\n variant: 'line',\n orientation: 'horizontal',\n },\n});\n\nexport type TabsRecipeProps = VariantProps<typeof tabsRecipe>;\n\nexport interface TabsProps {\n children?: Snippet;\n /** Currently active tab value. Bindable. */\n value?: string;\n /** Called when the active tab changes. */\n onchange?: (newTab: string) => void;\n /** Additional CSS classes for the root element. */\n class?: string;\n /** Visual style of the tab list. */\n variant?: TabsVariant;\n /**\n * How tabs activate on keyboard focus.\n * - 'automatic': tab content switches immediately when a tab receives focus.\n * - 'manual': the user must press Enter or Space to activate a focused tab.\n */\n activationMode?: 'automatic' | 'manual';\n /**\n * Orientation of the tab list.\n * 'vertical' renders the list as a column alongside the content.\n * Only supported with the 'line' variant.\n */\n orientation?: 'horizontal' | 'vertical';\n /** Whether keyboard navigation wraps from the last tab back to the first. */\n loop?: boolean;\n /** Bindable reference to the root element. */\n ref?: HTMLDivElement | null;\n [key: string]: unknown;\n}\n\nexport interface TabsListProps {\n children?: Snippet;\n /** Additional CSS classes for the tab list container. */\n class?: string;\n /** Additional CSS classes for the moving active-tab indicator. */\n indicatorClass?: string;\n ref?: HTMLElement | null;\n [key: string]: unknown;\n}\n\nexport interface TabsItemProps {\n children?: Snippet;\n /** The value this tab represents — must match a TabsContent value. */\n value: string;\n /** Prevents the user from activating this tab. */\n disabled?: boolean;\n /** Additional CSS classes for the tab trigger. */\n class?: string;\n ref?: HTMLElement | null;\n [key: string]: unknown;\n}\n\nexport interface TabsContentProps {\n children?: Snippet;\n /** The value this content panel corresponds to — must match a TabsItem value. */\n value: string;\n /** Additional CSS classes for the content panel. */\n class?: string;\n ref?: HTMLElement | null;\n [key: string]: unknown;\n}\n"
43
+ },
44
+ {
45
+ "path": "src/lib/components/tabs/Tabs.svelte.ts",
46
+ "target": "Tabs.svelte.ts",
47
+ "type": "ts",
48
+ "content": "/**\n * @component Tabs - Tabbed content panels with line and iOS segmented variants.\n * Parts: Tabs, TabsList, TabsItem, TabsContent.\n * Built on BitsUI Tabs primitive.\n *\n * This module holds the runtime context only. Styling and the Props interfaces\n * live in ./Tabs.recipe.ts.\n */\nimport {getContext, setContext} from \"svelte\";\nimport type {TabsVariant} from \"./Tabs.recipe.js\";\n\nexport type {TabsVariant} from \"./Tabs.recipe.js\";\n\nexport type TabsContext = {\n readonly variant: TabsVariant;\n readonly orientation: 'horizontal' | 'vertical';\n};\n\nconst TABS_CTX = 'tera-tabs-ctx';\n\nexport const setTabsContext = (ctx: TabsContext) => setContext(TABS_CTX, ctx);\nexport const getTabsContext = (): TabsContext => getContext<TabsContext>(TABS_CTX) ?? { variant: 'line', orientation: 'horizontal' };\n"
49
+ }
50
+ ],
51
+ "dependencies": [
52
+ "bits-ui",
53
+ "tailwind-variants"
54
+ ],
55
+ "peerDependencies": [
56
+ "svelte"
57
+ ],
58
+ "registryDependencies": [],
59
+ "sharedModules": {
60
+ "utils": false,
61
+ "icons": false,
62
+ "hooks": false
63
+ },
64
+ "exports": [
65
+ "Tabs",
66
+ "TabsList",
67
+ "TabsItem",
68
+ "TabsContent",
69
+ "tabsRecipe"
70
+ ]
71
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://tera-system-ui/registry-item.schema.json",
3
+ "name": "text-area",
4
+ "type": "registry:component",
5
+ "description": "Multi-line text input with auto-resize.",
6
+ "recipe": "src/lib/components/text-area/TextArea.recipe.ts",
7
+ "files": [
8
+ {
9
+ "path": "src/lib/components/text-area/index.ts",
10
+ "target": "index.ts",
11
+ "type": "ts",
12
+ "content": "export {default as TextArea} from './TextArea.svelte'\nexport {textAreaRecipe} from './TextArea.recipe'\nexport type {TextAreaProps, AutoSizeConfig, TextAreaRecipeProps} from './TextArea.recipe'\n"
13
+ },
14
+ {
15
+ "path": "src/lib/components/text-area/TextArea.recipe.ts",
16
+ "target": "TextArea.recipe.ts",
17
+ "type": "recipe",
18
+ "content": "import {tv, type VariantProps} from \"tailwind-variants\";\nimport type {Snippet} from \"svelte\";\nimport type {HTMLTextareaAttributes} from \"svelte/elements\";\n\n/**\n * TextArea recipe — the canonical styled layer for the base design language.\n *\n * Multi-part component, so it slots: `root` (positioning wrapper), `field`\n * (the textarea itself, which carries every variant/state), and `clear` (the\n * optional clear-button affordance). An app owns its look by extending this\n * recipe with `tv({ extend: textAreaRecipe, ... })` in typed code — base\n * sizing and states are inherited; only the design language changes. See\n * docs/ARCHITECTURE.md for the worked example (kept out of this JSDoc so the\n * llms doc generator doesn't grep its variant tokens).\n *\n * Restyle-internals (the lighter rung): the per-component CSS var below\n * (--tera-textarea-radius) lets a theme/app retune the corner radius with no\n * code change; it defaults to a global axis token in tera-ui-base.css.\n */\nexport const textAreaRecipe = tv({\n slots: {\n root: 'relative w-full',\n field: 'w-full inline-flex items-start rounded-[var(--tera-textarea-radius,var(--tera-radius-base))] outline-none font-normal text-text-primary placeholder:text-text-tertiary resize-y transition-[border-color,box-shadow,background-color,height] ease-ui duration-[var(--tera-duration-fast)]',\n clear: 'absolute top-2 right-2 text-neutral-token-7 hover:text-neutral-token-10 transition-colors z-10',\n },\n variants: {\n variant: {\n outlined: {\n field: 'border border-border-default bg-surface hover:border-border-strong focus:border-interactive focus:shadow-focus',\n },\n filled: {\n field: 'bg-surface-sunken border border-transparent shadow-[inset_0_1px_2px_rgba(15,23,42,0.05)] hover:bg-surface-hover focus:bg-surface focus:border-interactive focus:shadow-focus',\n },\n borderless: {\n field: 'bg-transparent border-0 hover:bg-surface-raised focus:bg-surface-raised',\n },\n },\n disabled: {\n true: {\n field: 'cursor-not-allowed bg-surface-sunken text-text-disabled border-border-default resize-none',\n },\n false: {\n field: 'cursor-text',\n },\n },\n size: {\n sm: {field: 'px-[var(--tera-control-px-md)] py-1 text-sm min-h-[60px]'},\n md: {field: 'px-[var(--tera-control-px-md)] py-1.5 text-sm min-h-[80px]'},\n lg: {field: 'px-[var(--tera-control-px-md)] py-2 text-base min-h-[100px]'},\n },\n allowClear: {\n true: {field: 'pr-9'},\n },\n status: {\n error: {\n field: 'border-error-default hover:border-error-hover focus:border-error-default focus:shadow-focus-error',\n },\n warning: {\n field: 'border-warning-default hover:border-warning-hover focus:border-warning-default focus:shadow-focus-warning',\n },\n },\n },\n compoundVariants: [\n {\n variant: 'outlined',\n disabled: true,\n class: {field: 'hover:border-border-default'},\n },\n {\n variant: 'filled',\n disabled: true,\n class: {field: 'hover:bg-surface-sunken'},\n },\n {\n variant: 'borderless',\n disabled: true,\n class: {field: 'hover:bg-transparent'},\n },\n ],\n defaultVariants: {\n variant: 'outlined',\n size: 'md',\n },\n});\n\nexport type TextAreaRecipeProps = VariantProps<typeof textAreaRecipe>;\n\nexport type AutoSizeConfig = boolean | {\n minRows?: number,\n maxRows?: number,\n}\n\nexport interface TextAreaProps extends Omit<HTMLTextareaAttributes, 'disabled' | 'rows' | 'prefix'>, TextAreaRecipeProps {\n children?: Snippet;\n class?: string;\n value?: string;\n ref?: HTMLTextAreaElement | null;\n autoSize?: AutoSizeConfig;\n rows?: number;\n allowClear?: boolean;\n showCount?: boolean;\n maxLength?: number;\n /** Replace the default clear icon (IconX) with custom markup (structural seam). */\n clearIcon?: Snippet;\n}\n"
19
+ },
20
+ {
21
+ "path": "src/lib/components/text-area/TextArea.svelte",
22
+ "target": "TextArea.svelte",
23
+ "type": "svelte",
24
+ "content": "<script lang=\"ts\">\n import {type AutoSizeConfig, type TextAreaProps, textAreaRecipe} from \"./TextArea.recipe\";\n import {IconX} from \"$lib/internal/icons\";\n import type {Attachment} from \"svelte/attachments\";\n\n let {\n children,\n class: className,\n value = $bindable(),\n ref = $bindable(),\n size = 'md',\n disabled,\n variant = 'outlined',\n autoSize,\n rows,\n allowClear,\n showCount,\n maxLength,\n status,\n clearIcon,\n ...props\n }: TextAreaProps = $props();\n\n let textLength = $derived(value?.length || 0);\n\n const r = $derived(textAreaRecipe({ variant, disabled, size, allowClear, status }));\n\n function autoSizeAttachment(autoSize?: AutoSizeConfig): Attachment<HTMLTextAreaElement> {\n return (node) => {\n if (!autoSize) {\n return;\n }\n let minRows: number | null = null;\n let maxRows: number | null = null;\n if (autoSize === true) {\n minRows = 1;\n } else {\n minRows = Math.max(autoSize.minRows || 0, 1);\n maxRows = autoSize.maxRows || null;\n }\n\n const updateSize = () => {\n node.style.height = 'auto';\n const computedStyle = window.getComputedStyle(node);\n const borderTopWidth = parseFloat(computedStyle.borderTopWidth);\n const borderBottomWidth = parseFloat(computedStyle.borderBottomWidth);\n const offset = borderTopWidth + borderBottomWidth;\n const scrollHeight = node.scrollHeight;\n\n const lineHeight = parseFloat(computedStyle.lineHeight);\n const minHeight = minRows! * lineHeight + offset;\n const maxHeight = maxRows ? maxRows * lineHeight : null;\n\n node.style.height = `${Math.max(minHeight, Math.min(scrollHeight, maxHeight ?? scrollHeight))}px`;\n };\n\n // Re-run whenever `value` changes (read it to register the dependency).\n value;\n updateSize();\n };\n }\n\n function clearText() {\n value = '';\n ref?.focus();\n }\n</script>\n\n<div class={r.root()}>\n <textarea\n bind:this={ref}\n {@attach autoSizeAttachment(autoSize)}\n style={autoSize ? \"resize: none; transition-property: border-color, box-shadow, background-color;\" : ''}\n class={r.field({ class: className })}\n {disabled}\n rows={autoSize ? 1 : rows}\n maxlength={maxLength}\n {...props}\n bind:value\n ></textarea>\n\n {#if allowClear && value && !disabled}\n <button\n type=\"button\"\n onclick={clearText}\n class={r.clear()}\n tabindex=\"-1\"\n >\n {#if clearIcon}\n {@render clearIcon()}\n {:else}\n <IconX class=\"size-3.5\"/>\n {/if}\n </button>\n {/if}\n\n {#if showCount}\n <div class=\"absolute bottom-1 right-2 text-xs text-neutral-token-7 pointer-events-none\">\n {textLength}{#if maxLength}/{maxLength}{/if}\n </div>\n {/if}\n</div>\n"
25
+ }
26
+ ],
27
+ "dependencies": [
28
+ "tailwind-variants"
29
+ ],
30
+ "peerDependencies": [
31
+ "svelte"
32
+ ],
33
+ "registryDependencies": [],
34
+ "sharedModules": {
35
+ "utils": false,
36
+ "icons": true,
37
+ "hooks": false
38
+ },
39
+ "exports": [
40
+ "TextArea",
41
+ "textAreaRecipe"
42
+ ]
43
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://tera-system-ui/registry-item.schema.json",
3
+ "name": "toast",
4
+ "type": "registry:component",
5
+ "description": "",
6
+ "recipe": null,
7
+ "files": [
8
+ {
9
+ "path": "src/lib/components/toast/index.ts",
10
+ "target": "index.ts",
11
+ "type": "ts",
12
+ "content": "export {default as ToastContainer} from './ToastContainer.svelte'\nexport {toast} from './toast.svelte.js'\nexport type {ToastItem, ToastVariant} from './toast.svelte.js'\n"
13
+ },
14
+ {
15
+ "path": "src/lib/components/toast/toast.svelte.ts",
16
+ "target": "toast.svelte.ts",
17
+ "type": "ts",
18
+ "content": "export type ToastVariant = 'success' | 'error' | 'info' | 'warning';\n\nexport interface ToastItem {\n id: string;\n variant: ToastVariant;\n message: string;\n description?: string;\n duration?: number;\n action?: { label: string; onclick: () => void };\n}\n\nlet items: ToastItem[] = $state([]);\n\nfunction add(variant: ToastVariant, message: string, opts: Omit<ToastItem, 'id' | 'variant' | 'message'> = {}) {\n const id = crypto.randomUUID();\n const item: ToastItem = { id, variant, message, duration: 4000, ...opts };\n items = [...items.slice(-2), item];\n setTimeout(() => remove(id), item.duration);\n}\n\nfunction remove(id: string) {\n items = items.filter(t => t.id !== id);\n}\n\nexport const toast = {\n get items() { return items; },\n success: (msg: string, opts?: Omit<ToastItem, 'id' | 'variant' | 'message'>) => add('success', msg, opts),\n error: (msg: string, opts?: Omit<ToastItem, 'id' | 'variant' | 'message'>) => add('error', msg, opts),\n info: (msg: string, opts?: Omit<ToastItem, 'id' | 'variant' | 'message'>) => add('info', msg, opts),\n warning: (msg: string, opts?: Omit<ToastItem, 'id' | 'variant' | 'message'>) => add('warning', msg, opts),\n remove,\n};\n"
19
+ },
20
+ {
21
+ "path": "src/lib/components/toast/ToastContainer.svelte",
22
+ "target": "ToastContainer.svelte",
23
+ "type": "svelte",
24
+ "content": "<script lang=\"ts\">\n import {toast, type ToastVariant} from './toast.svelte.js';\n\n // Status carried by a leading icon-chip (matches the redesigned Alert), not a\n // side-stripe bar. Semantic -default/-text tokens so tones stay dark-safe.\n const chipColor: Record<ToastVariant, string> = {\n success: 'bg-success-default/15 text-success-text',\n error: 'bg-error-default/15 text-error-text',\n info: 'bg-information-default/15 text-information-text',\n warning: 'bg-warning-default/15 text-warning-text',\n };\n\n const iconSymbol: Record<ToastVariant, string> = {\n success: '✓', error: '✕', info: 'ℹ', warning: '⚠',\n };\n</script>\n\n<div\n aria-live=\"polite\"\n aria-label=\"Notifications\"\n class=\"fixed bottom-4 right-4 z-[60] flex flex-col gap-2 max-sm:right-1/2 max-sm:translate-x-1/2\"\n>\n {#each toast.items as item (item.id)}\n <div\n class=\"flex items-start gap-3 min-w-[280px] max-w-sm p-3 bg-surface-raised rounded-[var(--tera-toast-radius,var(--border-radius-container))] shadow-lg border border-border-default animate-in slide-in-from-bottom-4 fade-in duration-[var(--tera-duration-slow)] ease-spring\"\n >\n <span class=\"shrink-0 grid place-items-center size-5 rounded-full text-[11px] font-bold leading-none mt-px {chipColor[item.variant]}\" aria-hidden=\"true\">{iconSymbol[item.variant]}</span>\n <div class=\"flex-1 min-w-0\">\n <p class=\"text-sm font-semibold text-text-primary\">{item.message}</p>\n {#if item.description}\n <p class=\"text-sm text-text-secondary mt-0.5\">{item.description}</p>\n {/if}\n {#if item.action}\n <button\n class=\"mt-1.5 text-xs font-semibold text-interactive hover:text-interactive-hover hover:underline transition-colors duration-[var(--tera-duration-fast)] ease-ui\"\n onclick={item.action.onclick}\n >{item.action.label}</button>\n {/if}\n </div>\n <button\n type=\"button\"\n class=\"shrink-0 -m-1.5 p-2.5 rounded text-text-tertiary hover:text-text-primary hover:bg-surface-hover focus-visible:shadow-focus transition-colors duration-[var(--tera-duration-fast)] ease-ui\"\n onclick={() => toast.remove(item.id)}\n aria-label=\"Close\"\n >\n <svg class=\"size-3.5\" viewBox=\"0 0 14 14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M2 2l10 10M12 2l-10 10\"/>\n </svg>\n </button>\n </div>\n {/each}\n</div>\n"
25
+ }
26
+ ],
27
+ "dependencies": [],
28
+ "peerDependencies": [
29
+ "svelte"
30
+ ],
31
+ "registryDependencies": [],
32
+ "sharedModules": {
33
+ "utils": false,
34
+ "icons": false,
35
+ "hooks": false
36
+ },
37
+ "exports": [
38
+ "ToastContainer",
39
+ "toast"
40
+ ]
41
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://tera-system-ui/registry-item.schema.json",
3
+ "name": "tooltip",
4
+ "type": "registry:component",
5
+ "description": "Floating tooltip shown on hover/focus.",
6
+ "recipe": "src/lib/components/tooltip/Tooltip.recipe.ts",
7
+ "files": [
8
+ {
9
+ "path": "src/lib/components/tooltip/index.ts",
10
+ "target": "index.ts",
11
+ "type": "ts",
12
+ "content": "export {default as Tooltip} from './Tooltip.svelte'\nexport {tooltipRecipe} from './Tooltip.recipe'\nexport type {TooltipProps, TooltipRecipeProps} from './Tooltip.recipe'\n"
13
+ },
14
+ {
15
+ "path": "src/lib/components/tooltip/Tooltip.recipe.ts",
16
+ "target": "Tooltip.recipe.ts",
17
+ "type": "recipe",
18
+ "content": "import {tv, type VariantProps} from \"tailwind-variants\";\nimport type {Snippet} from \"svelte\";\n\n/**\n * Tooltip recipe — the canonical styled layer for the base design language.\n *\n * Multi-part component (built on bits-ui Tooltip): the recipe is slotted by role\n * — trigger (the inline wrapper around the trigger element), content (the\n * floating panel) and arrow (the pointer). An app restyles any part\n * independently by extending with `tv({ extend: tooltipRecipe, ... })` in typed\n * code; base layout, animation and color states are inherited.\n *\n * Restyle-internals (the lighter rung): the per-component CSS var below\n * (--tera-tooltip-radius) lets a theme/app retune corner radius with no code\n * change; it defaults to the global axis token via an inline fallback. See\n * docs/ARCHITECTURE.md for worked examples (kept out of this JSDoc so the llms\n * doc generator doesn't grep its tokens).\n */\nexport const tooltipRecipe = tv({\n slots: {\n trigger: 'inline-flex',\n content: `z-50 max-w-[220px] px-2.5 py-1.5 text-xs leading-snug font-mono font-medium tracking-tight rounded-[var(--tera-tooltip-radius,var(--tera-radius-sm))]\n bg-neutral-token-13 text-neutral-token-1 shadow-lg\n animate-in fade-in zoom-in-95 duration-[var(--tera-duration-fast)] ease-ui\n data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95`,\n arrow: 'text-neutral-token-13',\n },\n});\n\nexport type TooltipRecipeProps = VariantProps<typeof tooltipRecipe>;\n\n/**\n * @component Tooltip - Floating label shown on hover or keyboard focus.\n * Built on BitsUI Tooltip primitive with portal rendering.\n */\nexport interface TooltipProps {\n /** Tooltip content — a plain string or a Svelte snippet for rich markup. */\n content: string | Snippet;\n /** Which side of the trigger the tooltip appears on. */\n side?: 'top' | 'bottom' | 'left' | 'right';\n /** Alignment of the tooltip along the chosen side. */\n align?: 'start' | 'center' | 'end';\n /** Distance in pixels between the trigger element and the tooltip panel. */\n sideOffset?: number;\n /** Delay in milliseconds before the tooltip appears after hover/focus. */\n delay?: number;\n /** Prevents the tooltip from ever opening. */\n disabled?: boolean;\n /** The element that triggers the tooltip on hover/focus. */\n children?: Snippet;\n /** Additional CSS classes for the trigger wrapper span. */\n class?: string;\n /** Replace the default pointer arrow with custom markup (structural seam). */\n arrow?: Snippet;\n}\n"
19
+ },
20
+ {
21
+ "path": "src/lib/components/tooltip/Tooltip.svelte",
22
+ "target": "Tooltip.svelte",
23
+ "type": "svelte",
24
+ "content": "<script lang=\"ts\">\n import {Tooltip as TooltipPrimitive} from 'bits-ui';\n import {tooltipRecipe, type TooltipProps} from './Tooltip.recipe.js';\n\n let {\n content,\n side = 'top',\n align = 'center',\n sideOffset = 6,\n delay = 500,\n disabled,\n children,\n arrow,\n class: className = '',\n }: TooltipProps = $props();\n\n const r = tooltipRecipe();\n</script>\n\n<TooltipPrimitive.Provider delayDuration={delay}>\n <TooltipPrimitive.Root {disabled}>\n <TooltipPrimitive.Trigger class={r.trigger({class: className})}>\n {@render children?.()}\n </TooltipPrimitive.Trigger>\n\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n {side}\n {align}\n {sideOffset}\n class={r.content()}\n >\n {#if typeof content === 'string'}\n {content}\n {:else}\n {@render content()}\n {/if}\n {#if arrow}\n {@render arrow()}\n {:else}\n <TooltipPrimitive.Arrow class={r.arrow()} />\n {/if}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n</TooltipPrimitive.Provider>\n"
25
+ }
26
+ ],
27
+ "dependencies": [
28
+ "bits-ui",
29
+ "tailwind-variants"
30
+ ],
31
+ "peerDependencies": [
32
+ "svelte"
33
+ ],
34
+ "registryDependencies": [],
35
+ "sharedModules": {
36
+ "utils": false,
37
+ "icons": false,
38
+ "hooks": false
39
+ },
40
+ "exports": [
41
+ "Tooltip",
42
+ "tooltipRecipe"
43
+ ]
44
+ }
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
  import fs from "fs";
3
3
 
4
4
  import path from "path";
@@ -109,28 +109,11 @@ function findFilesByPattern(folderPath, namePattern) {
109
109
  const baseLib = './src/lib'
110
110
  const GLOBAL_INDEX_PATH = baseLib + "/index.ts"
111
111
  const COMPONENTS_PATH = baseLib + "/components"
112
- const ICON_COMPONENTS_PATH = baseLib + "/components/icons"
113
112
 
114
- const iconComponentsFileList = findFilesByPattern(ICON_COMPONENTS_PATH, /^Icon\w*\.svelte$/);
115
-
116
- // generate icon index
117
- const importSvelteComponentTemplate = `export {default as Component} from './Component.svelte'`;
118
113
  const importComponentTemplate = `export {Component} from 'path'`;
119
114
  const importTypeTemplate = `export type {Types} from 'path'`;
120
115
 
121
116
 
122
- (() => {
123
- let content = ''
124
- iconComponentsFileList.forEach(file => {
125
- let componentName = file.replace('.svelte', '')
126
- content += importSvelteComponentTemplate.replaceAll('Component', componentName);
127
- content += `\n`
128
- })
129
-
130
- fs.writeFileSync(ICON_COMPONENTS_PATH + '/index.ts', content, 'utf8');
131
- })();
132
-
133
-
134
117
  (() => {
135
118
  const indexFileList = findIndexFiles(COMPONENTS_PATH);
136
119
  let componentContent = ''
@@ -0,0 +1,171 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * tera-ui — the consumer generator (rung 3, "own the styled layer").
4
+ * See docs/ARCHITECTURE.md → "Generator contract".
5
+ *
6
+ * tera-ui list List available components in the registry
7
+ * tera-ui info <name> Show a component's manifest summary
8
+ * tera-ui add <name...> Copy component(s) + their tera deps into your app
9
+ * tera-ui diff [name] Show drift between your owned copies and the registry
10
+ *
11
+ * Run inside a CONSUMER app. Configure once via ./components.json:
12
+ * {
13
+ * "componentsDir": "src/lib/ui", // where owned components are written
14
+ * "alias": "$lib/ui", // import alias that maps to componentsDir
15
+ * "packageName": "tera-system-ui" // the installed package name (for shared imports)
16
+ * }
17
+ *
18
+ * Files are copied with imports rewritten so the consumer owns the styling/markup
19
+ * while still importing the shared token contract, utils, icons and headless bits
20
+ * from the installed package. Edit them freely; `diff` surfaces upstream changes.
21
+ */
22
+ import fs from 'fs';
23
+ import path from 'path';
24
+ import { fileURLToPath } from 'url';
25
+
26
+ const HERE = path.dirname(fileURLToPath(import.meta.url));
27
+ const REGISTRY = path.join(HERE, '..', 'registry');
28
+ const CWD = process.cwd();
29
+
30
+ const C = { dim: s => `\x1b[2m${s}\x1b[0m`, b: s => `\x1b[1m${s}\x1b[0m`, g: s => `\x1b[32m${s}\x1b[0m`, y: s => `\x1b[33m${s}\x1b[0m`, r: s => `\x1b[31m${s}\x1b[0m` };
31
+
32
+ function die(msg) { console.error(C.r('✖ ') + msg); process.exit(1); }
33
+ function readJSON(fp) { try { return JSON.parse(fs.readFileSync(fp, 'utf8')); } catch { return null; } }
34
+
35
+ function loadRegistryIndex() {
36
+ const idx = readJSON(path.join(REGISTRY, 'index.json'));
37
+ if (!idx) die(`registry not found at ${REGISTRY}. Run \`npm run generate-registry\` in the library, or reinstall the package.`);
38
+ return idx;
39
+ }
40
+ function loadManifest(name) {
41
+ const m = readJSON(path.join(REGISTRY, `${name}.json`));
42
+ if (!m) die(`unknown component "${name}". Run \`tera-ui list\`.`);
43
+ return m;
44
+ }
45
+
46
+ function loadConfig() {
47
+ const cfg = readJSON(path.join(CWD, 'components.json')) || {};
48
+ return {
49
+ componentsDir: cfg.componentsDir || 'src/lib/ui',
50
+ alias: (cfg.alias || '$lib/ui').replace(/\/$/, ''),
51
+ packageName: cfg.packageName || 'tera-system-ui',
52
+ };
53
+ }
54
+
55
+ /** Rewrite a copied file's imports so they resolve in the consumer. */
56
+ function rewriteImports(content, { added, current, cfg }) {
57
+ let out = content;
58
+ // 1. Self-references within this component's dir → relative (sub-components are copied alongside).
59
+ out = out.replace(new RegExp(`(['"])\\$lib/components/${current}/([^'"]+)\\1`, 'g'),
60
+ (_, q, rest) => `${q}./${rest}${q}`);
61
+ // 2. Shared library modules → import from the installed package (not copied).
62
+ out = out.replace(/(['"])\$lib\/utils(\/[^'"]*)?\1/g, (_, q) => `${q}${cfg.packageName}/utils${q}`);
63
+ out = out.replace(/(['"])\$lib\/hooks(\/[^'"]*)?\1/g, (_, q) => `${q}${cfg.packageName}/hooks${q}`);
64
+ out = out.replace(/(['"])\$lib\/(actions|internal|tokens)(\/[^'"]*)?\1/g, (_, q, seg, rest) => `${q}${cfg.packageName}/${seg}${rest || ''}${q}`);
65
+ // 3. Other tera components → owned copy if also added, else the package version.
66
+ out = out.replace(/(['"])\$lib\/components\/([a-z][a-z0-9-]*)(\/[^'"]*)?\1/g, (_, q, dep) => {
67
+ if (added.has(dep)) return `${q}${cfg.alias}/${dep}${q}`;
68
+ return `${q}${cfg.packageName}/${dep}${q}`;
69
+ });
70
+ // 4. Bare `$lib` (package root) → the package name.
71
+ out = out.replace(/(['"])\$lib\1/g, (_, q) => `${q}${cfg.packageName}${q}`);
72
+ return out;
73
+ }
74
+
75
+ /** Resolve the full set: requested components + transitive tera deps. */
76
+ function resolveSet(names) {
77
+ const set = new Set();
78
+ const visit = (n) => {
79
+ if (set.has(n)) return;
80
+ const m = readJSON(path.join(REGISTRY, `${n}.json`));
81
+ if (!m) { console.warn(C.y(` ! skipping unknown dependency "${n}"`)); return; }
82
+ set.add(n);
83
+ for (const dep of m.registryDependencies || []) {
84
+ visit(dep);
85
+ }
86
+ };
87
+ names.forEach(visit);
88
+ return set;
89
+ }
90
+
91
+ function cmdList() {
92
+ const idx = loadRegistryIndex();
93
+ console.log(C.b(`\n ${idx.components.length} components available:\n`));
94
+ for (const c of idx.components) {
95
+ const deps = c.registryDependencies?.length ? C.dim(` ← ${c.registryDependencies.join(', ')}`) : '';
96
+ console.log(` ${C.g(c.name.padEnd(22))} ${c.description || ''}${deps}`);
97
+ }
98
+ console.log(C.dim(`\n Add with: tera-ui add <name...>\n`));
99
+ }
100
+
101
+ function cmdInfo(name) {
102
+ const m = loadManifest(name);
103
+ console.log(C.b(`\n ${m.name}`) + (m.description ? ` — ${m.description}` : ''));
104
+ console.log(` recipe: ${m.recipe ? C.g(path.basename(m.recipe)) : C.dim('none')}`);
105
+ console.log(` files: ${m.files.map(f => f.target).join(', ')}`);
106
+ console.log(` npm deps: ${m.dependencies.length ? m.dependencies.join(', ') : C.dim('none')}`);
107
+ console.log(` tera deps: ${m.registryDependencies.length ? m.registryDependencies.join(', ') : C.dim('none')}`);
108
+ console.log(` shared: ${Object.entries(m.sharedModules).filter(([, v]) => v).map(([k]) => k).join(', ') || C.dim('none')}`);
109
+ console.log(` exports: ${m.exports.join(', ')}\n`);
110
+ }
111
+
112
+ function cmdAdd(names) {
113
+ if (!names.length) die('usage: tera-ui add <name...>');
114
+ const cfg = loadConfig();
115
+ const added = resolveSet(names);
116
+ const npmDeps = new Set(['svelte']);
117
+ let written = 0;
118
+
119
+ for (const name of added) {
120
+ const m = loadManifest(name);
121
+ (m.dependencies || []).forEach(d => npmDeps.add(d));
122
+ const destDir = path.join(CWD, cfg.componentsDir, name);
123
+ for (const file of m.files) {
124
+ const dest = path.join(destDir, file.target);
125
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
126
+ const content = rewriteImports(file.content, { added, current: name, cfg });
127
+ fs.writeFileSync(dest, content, 'utf8');
128
+ written++;
129
+ }
130
+ const viaDep = names.includes(name) ? '' : C.dim(' (dependency)');
131
+ console.log(` ${C.g('+')} ${cfg.componentsDir}/${name}/${viaDep}`);
132
+ }
133
+
134
+ console.log(C.b(`\n ${written} files written across ${added.size} component(s).`));
135
+ console.log(` Install peer/npm deps:\n ${C.y('npm i ' + [...npmDeps].join(' '))}`);
136
+ console.log(C.dim(` Import the base token CSS once if you haven't: import '${cfg.packageName}/themes/tera-ui-base';\n`));
137
+ }
138
+
139
+ function cmdDiff(name) {
140
+ const cfg = loadConfig();
141
+ const idx = loadRegistryIndex();
142
+ const names = name ? [name] : idx.components.map(c => c.name);
143
+ let drift = 0;
144
+ for (const n of names) {
145
+ const m = readJSON(path.join(REGISTRY, `${n}.json`));
146
+ if (!m) continue;
147
+ for (const file of m.files) {
148
+ const owned = path.join(CWD, cfg.componentsDir, n, file.target);
149
+ if (!fs.existsSync(owned)) continue; // not pulled
150
+ const upstream = rewriteImports(file.content, { added: new Set([n]), current: n, cfg });
151
+ const local = fs.readFileSync(owned, 'utf8');
152
+ if (local !== upstream) {
153
+ drift++;
154
+ console.log(` ${C.y('~')} ${cfg.componentsDir}/${n}/${file.target} ${C.dim('differs from registry')}`);
155
+ }
156
+ }
157
+ }
158
+ if (!drift) console.log(C.g('\n ✓ no drift — owned components match the registry.\n'));
159
+ else console.log(C.dim(`\n ${drift} file(s) differ. Re-pull with \`tera-ui add\` to overwrite, or keep your edits.\n`));
160
+ }
161
+
162
+ const [cmd, ...args] = process.argv.slice(2);
163
+ switch (cmd) {
164
+ case 'list': cmdList(); break;
165
+ case 'info': cmdInfo(args[0] || die('usage: tera-ui info <name>')); break;
166
+ case 'add': cmdAdd(args); break;
167
+ case 'diff': cmdDiff(args[0]); break;
168
+ default:
169
+ console.log(`tera-ui — own the styled layer\n\n list list available components\n info <name> show a component manifest\n add <name...> copy components into your app (per components.json)\n diff [name] show drift vs the registry\n`);
170
+ if (cmd && cmd !== 'help' && cmd !== '--help') process.exit(1);
171
+ }
@@ -1,52 +0,0 @@
1
- /**
2
- * @component Accordion - Collapsible content panels with single or multi-open support.
3
- * Built on BitsUI Accordion primitive with full keyboard navigation.
4
- */
5
- import { type VariantProps } from "tailwind-variants";
6
- import type { Snippet } from "svelte";
7
- import type { HTMLAttributes, HTMLButtonAttributes } from "svelte/elements";
8
- export declare const styles: import("tailwind-variants").TVReturnType<{}, undefined, "", {}, undefined, import("tailwind-variants").TVReturnType<{}, undefined, "", unknown, unknown, undefined>>;
9
- type AccordionVariants = VariantProps<typeof styles>;
10
- export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onchange'>, AccordionVariants {
11
- children?: Snippet;
12
- /** Additional CSS classes for the root element. */
13
- class?: string;
14
- /** Whether only one item can be open at a time ('single') or many ('multiple'). */
15
- type: 'multiple' | 'single';
16
- /** The currently open item value(s). Bindable. */
17
- value: string | string[];
18
- /** Called when the open item(s) change. */
19
- onchange?: (value: string | string[]) => void;
20
- /** Use controlled mode — manage value externally and pass it back via onchange. */
21
- controlledValue?: boolean;
22
- /** Whether the entire accordion is disabled. */
23
- disabled?: boolean;
24
- /** Whether keyboard navigation wraps around at the first/last item. */
25
- loop?: boolean;
26
- /** Layout orientation — affects arrow-key navigation direction. */
27
- orientation?: 'horizontal' | 'vertical';
28
- /** Bindable reference to the root element. */
29
- ref?: HTMLDivElement | null;
30
- }
31
- export interface AccordionItemProps extends HTMLAttributes<HTMLDivElement> {
32
- /** Unique identifier for this item — matched against the root `value`. */
33
- value: string;
34
- /** Prevents the user from interacting with this specific item. */
35
- disabled?: boolean;
36
- ref?: HTMLDivElement | null;
37
- children?: Snippet;
38
- }
39
- export interface AccordionTriggerProps extends HTMLButtonAttributes {
40
- children?: Snippet;
41
- ref?: HTMLButtonElement | null;
42
- }
43
- export interface AccordionContentProps extends HTMLAttributes<HTMLDivElement> {
44
- children?: Snippet;
45
- /**
46
- * Keep the content mounted in the DOM even when the item is collapsed.
47
- * Useful for Svelte transitions or preserving internal component state.
48
- */
49
- forceMount?: boolean;
50
- ref?: HTMLDivElement | null;
51
- }
52
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * @component Accordion - Collapsible content panels with single or multi-open support.
3
- * Built on BitsUI Accordion primitive with full keyboard navigation.
4
- */
5
- import { tv } from "tailwind-variants";
6
- export const styles = tv({
7
- base: '',
8
- variants: {},
9
- compoundVariants: [],
10
- defaultVariants: {},
11
- });
@@ -1,35 +0,0 @@
1
- <script lang="ts">let { role, content, avatar, timestamp, status = 'sent', class: className = '', } = $props();
2
- const isUser = $derived(role === 'user');
3
- export {};
4
- </script>
5
-
6
- <div
7
- class="flex gap-2 animate-in slide-in-from-bottom-2 fade-in duration-300 ease-spring {isUser ? 'flex-row-reverse' : 'flex-row'} {className}"
8
- >
9
- {#if avatar}
10
- <div class="shrink-0 size-8">{@render avatar()}</div>
11
- {/if}
12
-
13
- <div class="flex flex-col gap-1 max-w-[75%] {isUser ? 'items-end' : 'items-start'}">
14
- <div
15
- class="px-4 py-2.5 text-sm leading-relaxed {isUser
16
- ? 'bg-interactive-subtle text-text-primary rounded-2xl rounded-br-sm'
17
- : 'bg-surface-raised text-text-primary rounded-2xl rounded-bl-sm border border-border-default'}"
18
- >
19
- {#if typeof content === 'string'}
20
- {content}
21
- {:else}
22
- {@render content()}
23
- {/if}
24
- </div>
25
-
26
- <div class="flex items-center gap-1.5 text-[10px] text-text-tertiary">
27
- {#if timestamp}<span>{timestamp}</span>{/if}
28
- {#if isUser && status === 'sending'}
29
- <span class="italic">Sending…</span>
30
- {:else if isUser && status === 'error'}
31
- <span class="text-error-500">Failed to send</span>
32
- {/if}
33
- </div>
34
- </div>
35
- </div>
@@ -1,12 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- type $$ComponentProps = {
3
- role: 'user' | 'assistant';
4
- content: string | Snippet;
5
- avatar?: Snippet;
6
- timestamp?: string;
7
- status?: 'sending' | 'sent' | 'error';
8
- class?: string;
9
- };
10
- declare const ChatBubble: import("svelte").Component<$$ComponentProps, {}, "">;
11
- type ChatBubble = ReturnType<typeof ChatBubble>;
12
- export default ChatBubble;
@@ -1,58 +0,0 @@
1
- <script lang="ts">import ThinkingLoader from './ThinkingLoader.svelte';
2
- import SuggestionChips from './SuggestionChips.svelte';
3
- let { value = $bindable(''), onsubmit, placeholder = 'Ask me anything…', maxLength, loading, disabled, suggestions = [], class: className = '', } = $props();
4
- function handleKeydown(e) {
5
- if (e.key === 'Enter' && !e.shiftKey && !loading && value.trim()) {
6
- e.preventDefault();
7
- submit();
8
- }
9
- }
10
- function submit() {
11
- if (!value.trim() || loading)
12
- return;
13
- onsubmit?.(value);
14
- }
15
- function handleSuggestion(s) {
16
- value = Array.isArray(s) ? s[0] : s;
17
- }
18
- </script>
19
-
20
- <div class="flex flex-col gap-2 {className}">
21
- {#if suggestions.length > 0}
22
- <SuggestionChips {suggestions} onSelect={handleSuggestion} />
23
- {/if}
24
-
25
- <div
26
- class="relative flex items-end gap-2 border rounded bg-surface transition-[border-color,box-shadow] ease-ui duration-150
27
- {loading ? 'border-interactive shadow-glow' : 'border-border-default focus-within:border-interactive focus-within:shadow-focus'}"
28
- >
29
- <textarea
30
- class="flex-1 resize-none bg-transparent outline-none px-3 py-2.5 text-sm text-text-primary placeholder:text-text-tertiary min-h-[42px] max-h-40"
31
- {placeholder}
32
- maxlength={maxLength}
33
- {disabled}
34
- bind:value
35
- onkeydown={handleKeydown}
36
- rows={1}
37
- ></textarea>
38
-
39
- <div class="shrink-0 pb-2 pr-2">
40
- {#if loading}
41
- <ThinkingLoader size="sm" />
42
- {:else}
43
- <button
44
- type="button"
45
- class="size-7 rounded-full flex items-center justify-center transition-colors ease-ui duration-150
46
- {value.trim() ? 'bg-interactive text-interactive-on' : 'bg-surface-hover text-text-tertiary cursor-not-allowed'}"
47
- onclick={submit}
48
- disabled={!value.trim() || disabled}
49
- aria-label="Send"
50
- >
51
- <svg class="size-3.5" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
52
- <path d="M7 12V2M2 7l5-5 5 5"/>
53
- </svg>
54
- </button>
55
- {/if}
56
- </div>
57
- </div>
58
- </div>