archos-ui 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/LICENSE +34 -0
  2. package/LICENSE.shadcn-svelte +23 -0
  3. package/README.md +110 -2
  4. package/dist/compat/deprecations.d.ts +2 -0
  5. package/dist/compat/deprecations.d.ts.map +1 -0
  6. package/dist/compat/deprecations.js +8 -0
  7. package/dist/components/alert/alert-description.svelte +9 -0
  8. package/dist/components/alert/alert-description.svelte.d.ts +5 -0
  9. package/dist/components/alert/alert-description.svelte.d.ts.map +1 -0
  10. package/dist/components/alert/alert-title.svelte +9 -0
  11. package/dist/components/alert/alert-title.svelte.d.ts +5 -0
  12. package/dist/components/alert/alert-title.svelte.d.ts.map +1 -0
  13. package/dist/components/alert/alert.svelte +33 -0
  14. package/dist/components/alert/alert.svelte.d.ts +9 -0
  15. package/dist/components/alert/alert.svelte.d.ts.map +1 -0
  16. package/dist/components/alert/index.d.ts +5 -0
  17. package/dist/components/alert/index.d.ts.map +1 -0
  18. package/dist/components/alert/index.js +4 -0
  19. package/dist/components/alert-dialog/alert-dialog-content.svelte +43 -0
  20. package/dist/components/alert-dialog/alert-dialog-content.svelte.d.ts +10 -0
  21. package/dist/components/alert-dialog/alert-dialog-content.svelte.d.ts.map +1 -0
  22. package/dist/components/alert-dialog/index.d.ts +24 -0
  23. package/dist/components/alert-dialog/index.d.ts.map +1 -0
  24. package/dist/components/alert-dialog/index.js +22 -0
  25. package/dist/components/badge/badge-dot.svelte +23 -0
  26. package/dist/components/badge/badge-dot.svelte.d.ts +9 -0
  27. package/dist/components/badge/badge-dot.svelte.d.ts.map +1 -0
  28. package/dist/components/badge/badge.svelte +53 -0
  29. package/dist/components/badge/badge.svelte.d.ts +39 -0
  30. package/dist/components/badge/badge.svelte.d.ts.map +1 -0
  31. package/dist/components/badge/index.d.ts +4 -0
  32. package/dist/components/badge/index.d.ts.map +1 -0
  33. package/dist/components/badge/index.js +3 -0
  34. package/dist/components/bottom-navigation/BottomNavigation.svelte +56 -0
  35. package/dist/components/bottom-navigation/BottomNavigation.svelte.d.ts +16 -0
  36. package/dist/components/bottom-navigation/BottomNavigation.svelte.d.ts.map +1 -0
  37. package/dist/components/bottom-navigation/index.d.ts +2 -0
  38. package/dist/components/bottom-navigation/index.d.ts.map +1 -0
  39. package/dist/components/bottom-navigation/index.js +1 -0
  40. package/dist/components/bottom-sheet/BottomSheet.svelte +68 -0
  41. package/dist/components/bottom-sheet/BottomSheet.svelte.d.ts +13 -0
  42. package/dist/components/bottom-sheet/BottomSheet.svelte.d.ts.map +1 -0
  43. package/dist/components/bottom-sheet/index.d.ts +2 -0
  44. package/dist/components/bottom-sheet/index.d.ts.map +1 -0
  45. package/dist/components/bottom-sheet/index.js +1 -0
  46. package/dist/components/button/button.svelte +128 -0
  47. package/dist/components/button/button.svelte.d.ts +75 -0
  48. package/dist/components/button/button.svelte.d.ts.map +1 -0
  49. package/dist/components/button/index.d.ts +3 -0
  50. package/dist/components/button/index.d.ts.map +1 -0
  51. package/dist/components/button/index.js +4 -0
  52. package/dist/components/card/Card.svelte +38 -0
  53. package/dist/components/card/Card.svelte.d.ts +11 -0
  54. package/dist/components/card/Card.svelte.d.ts.map +1 -0
  55. package/dist/components/card/card-action.svelte +15 -0
  56. package/dist/components/card/card-action.svelte.d.ts +6 -0
  57. package/dist/components/card/card-action.svelte.d.ts.map +1 -0
  58. package/dist/components/card/card-content.svelte +15 -0
  59. package/dist/components/card/card-content.svelte.d.ts +6 -0
  60. package/dist/components/card/card-content.svelte.d.ts.map +1 -0
  61. package/dist/components/card/card-description.svelte +20 -0
  62. package/dist/components/card/card-description.svelte.d.ts +6 -0
  63. package/dist/components/card/card-description.svelte.d.ts.map +1 -0
  64. package/dist/components/card/card-footer.svelte +20 -0
  65. package/dist/components/card/card-footer.svelte.d.ts +6 -0
  66. package/dist/components/card/card-footer.svelte.d.ts.map +1 -0
  67. package/dist/components/card/card-header.svelte +20 -0
  68. package/dist/components/card/card-header.svelte.d.ts +6 -0
  69. package/dist/components/card/card-header.svelte.d.ts.map +1 -0
  70. package/dist/components/card/card-title.svelte +20 -0
  71. package/dist/components/card/card-title.svelte.d.ts +6 -0
  72. package/dist/components/card/card-title.svelte.d.ts.map +1 -0
  73. package/dist/components/card/index.d.ts +10 -0
  74. package/dist/components/card/index.d.ts.map +1 -0
  75. package/dist/components/card/index.js +10 -0
  76. package/dist/components/checkbox/checkbox.svelte +47 -0
  77. package/dist/components/checkbox/checkbox.svelte.d.ts +5 -0
  78. package/dist/components/checkbox/checkbox.svelte.d.ts.map +1 -0
  79. package/dist/components/checkbox/index.d.ts +2 -0
  80. package/dist/components/checkbox/index.d.ts.map +1 -0
  81. package/dist/components/checkbox/index.js +1 -0
  82. package/dist/components/chip/Chip.svelte +46 -0
  83. package/dist/components/chip/Chip.svelte.d.ts +13 -0
  84. package/dist/components/chip/Chip.svelte.d.ts.map +1 -0
  85. package/dist/components/chip/index.d.ts +2 -0
  86. package/dist/components/chip/index.d.ts.map +1 -0
  87. package/dist/components/chip/index.js +1 -0
  88. package/dist/components/collapsible/collapsible.svelte +64 -0
  89. package/dist/components/collapsible/collapsible.svelte.d.ts +18 -0
  90. package/dist/components/collapsible/collapsible.svelte.d.ts.map +1 -0
  91. package/dist/components/collapsible/index.d.ts +7 -0
  92. package/dist/components/collapsible/index.d.ts.map +1 -0
  93. package/dist/components/collapsible/index.js +6 -0
  94. package/dist/components/combobox/combobox-content.svelte +18 -0
  95. package/dist/components/combobox/combobox-content.svelte.d.ts +5 -0
  96. package/dist/components/combobox/combobox-content.svelte.d.ts.map +1 -0
  97. package/dist/components/combobox/combobox-input.svelte +16 -0
  98. package/dist/components/combobox/combobox-input.svelte.d.ts +5 -0
  99. package/dist/components/combobox/combobox-input.svelte.d.ts.map +1 -0
  100. package/dist/components/combobox/combobox-item.svelte +16 -0
  101. package/dist/components/combobox/combobox-item.svelte.d.ts +5 -0
  102. package/dist/components/combobox/combobox-item.svelte.d.ts.map +1 -0
  103. package/dist/components/combobox/combobox.svelte +24 -0
  104. package/dist/components/combobox/combobox.svelte.d.ts +21 -0
  105. package/dist/components/combobox/combobox.svelte.d.ts.map +1 -0
  106. package/dist/components/combobox/index.d.ts +6 -0
  107. package/dist/components/combobox/index.d.ts.map +1 -0
  108. package/dist/components/combobox/index.js +5 -0
  109. package/dist/components/coming-soon/Comingsoon.svelte +77 -0
  110. package/dist/components/coming-soon/Comingsoon.svelte.d.ts +9 -0
  111. package/dist/components/coming-soon/Comingsoon.svelte.d.ts.map +1 -0
  112. package/dist/components/coming-soon/index.d.ts +3 -0
  113. package/dist/components/coming-soon/index.d.ts.map +1 -0
  114. package/dist/components/coming-soon/index.js +4 -0
  115. package/dist/components/command/command-context.d.ts +5 -0
  116. package/dist/components/command/command-context.d.ts.map +1 -0
  117. package/dist/components/command/command-context.js +1 -0
  118. package/dist/components/command/command-empty.svelte +15 -0
  119. package/dist/components/command/command-empty.svelte.d.ts +5 -0
  120. package/dist/components/command/command-empty.svelte.d.ts.map +1 -0
  121. package/dist/components/command/command-group.svelte +26 -0
  122. package/dist/components/command/command-group.svelte.d.ts +8 -0
  123. package/dist/components/command/command-group.svelte.d.ts.map +1 -0
  124. package/dist/components/command/command-input.svelte +24 -0
  125. package/dist/components/command/command-input.svelte.d.ts +5 -0
  126. package/dist/components/command/command-input.svelte.d.ts.map +1 -0
  127. package/dist/components/command/command-item.svelte +16 -0
  128. package/dist/components/command/command-item.svelte.d.ts +5 -0
  129. package/dist/components/command/command-item.svelte.d.ts.map +1 -0
  130. package/dist/components/command/command-list.svelte +17 -0
  131. package/dist/components/command/command-list.svelte.d.ts +5 -0
  132. package/dist/components/command/command-list.svelte.d.ts.map +1 -0
  133. package/dist/components/command/command.svelte +18 -0
  134. package/dist/components/command/command.svelte.d.ts +5 -0
  135. package/dist/components/command/command.svelte.d.ts.map +1 -0
  136. package/dist/components/command/index.d.ts +8 -0
  137. package/dist/components/command/index.d.ts.map +1 -0
  138. package/dist/components/command/index.js +7 -0
  139. package/dist/components/contextual-action-bar/ContextualActionBar.svelte +38 -0
  140. package/dist/components/contextual-action-bar/ContextualActionBar.svelte.d.ts +14 -0
  141. package/dist/components/contextual-action-bar/ContextualActionBar.svelte.d.ts.map +1 -0
  142. package/dist/components/contextual-action-bar/index.d.ts +2 -0
  143. package/dist/components/contextual-action-bar/index.d.ts.map +1 -0
  144. package/dist/components/contextual-action-bar/index.js +1 -0
  145. package/dist/components/dialog/dialog-content.svelte +43 -0
  146. package/dist/components/dialog/dialog-content.svelte.d.ts +10 -0
  147. package/dist/components/dialog/dialog-content.svelte.d.ts.map +1 -0
  148. package/dist/components/dialog/index.d.ts +22 -0
  149. package/dist/components/dialog/index.d.ts.map +1 -0
  150. package/dist/components/dialog/index.js +11 -0
  151. package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.svelte +36 -0
  152. package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  153. package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts.map +1 -0
  154. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +27 -0
  155. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +5 -0
  156. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts.map +1 -0
  157. package/dist/components/dropdown-menu/dropdown-menu-item.svelte +34 -0
  158. package/dist/components/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
  159. package/dist/components/dropdown-menu/dropdown-menu-item.svelte.d.ts.map +1 -0
  160. package/dist/components/dropdown-menu/dropdown-menu-radio-item.svelte +32 -0
  161. package/dist/components/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +9 -0
  162. package/dist/components/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts.map +1 -0
  163. package/dist/components/dropdown-menu/dropdown-menu-separator.svelte +16 -0
  164. package/dist/components/dropdown-menu/dropdown-menu-separator.svelte.d.ts +5 -0
  165. package/dist/components/dropdown-menu/dropdown-menu-separator.svelte.d.ts.map +1 -0
  166. package/dist/components/dropdown-menu/dropdown-menu-sub-content.svelte +22 -0
  167. package/dist/components/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +5 -0
  168. package/dist/components/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts.map +1 -0
  169. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.svelte +25 -0
  170. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +5 -0
  171. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts.map +1 -0
  172. package/dist/components/dropdown-menu/dropdown-menu.svelte +29 -0
  173. package/dist/components/dropdown-menu/dropdown-menu.svelte.d.ts +10 -0
  174. package/dist/components/dropdown-menu/dropdown-menu.svelte.d.ts.map +1 -0
  175. package/dist/components/dropdown-menu/index.d.ts +15 -0
  176. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  177. package/dist/components/dropdown-menu/index.js +14 -0
  178. package/dist/components/dropdown-menu/menu-context.d.ts +5 -0
  179. package/dist/components/dropdown-menu/menu-context.d.ts.map +1 -0
  180. package/dist/components/dropdown-menu/menu-context.js +1 -0
  181. package/dist/components/empty/empty-description.svelte +13 -0
  182. package/dist/components/empty/empty-description.svelte.d.ts +5 -0
  183. package/dist/components/empty/empty-description.svelte.d.ts.map +1 -0
  184. package/dist/components/empty/empty-title.svelte +9 -0
  185. package/dist/components/empty/empty-title.svelte.d.ts +5 -0
  186. package/dist/components/empty/empty-title.svelte.d.ts.map +1 -0
  187. package/dist/components/empty/empty.svelte +22 -0
  188. package/dist/components/empty/empty.svelte.d.ts +7 -0
  189. package/dist/components/empty/empty.svelte.d.ts.map +1 -0
  190. package/dist/components/empty/index.d.ts +5 -0
  191. package/dist/components/empty/index.d.ts.map +1 -0
  192. package/dist/components/empty/index.js +4 -0
  193. package/dist/components/fab/Fab.svelte +29 -0
  194. package/dist/components/fab/Fab.svelte.d.ts +11 -0
  195. package/dist/components/fab/Fab.svelte.d.ts.map +1 -0
  196. package/dist/components/fab/index.d.ts +2 -0
  197. package/dist/components/fab/index.d.ts.map +1 -0
  198. package/dist/components/fab/index.js +1 -0
  199. package/dist/components/field/field-content.svelte +20 -0
  200. package/dist/components/field/field-content.svelte.d.ts +6 -0
  201. package/dist/components/field/field-content.svelte.d.ts.map +1 -0
  202. package/dist/components/field/field-description.svelte +25 -0
  203. package/dist/components/field/field-description.svelte.d.ts +6 -0
  204. package/dist/components/field/field-description.svelte.d.ts.map +1 -0
  205. package/dist/components/field/field-error.svelte +45 -0
  206. package/dist/components/field/field-error.svelte.d.ts +13 -0
  207. package/dist/components/field/field-error.svelte.d.ts.map +1 -0
  208. package/dist/components/field/field-group.svelte +23 -0
  209. package/dist/components/field/field-group.svelte.d.ts +6 -0
  210. package/dist/components/field/field-group.svelte.d.ts.map +1 -0
  211. package/dist/components/field/field-label.svelte +25 -0
  212. package/dist/components/field/field-label.svelte.d.ts +11 -0
  213. package/dist/components/field/field-label.svelte.d.ts.map +1 -0
  214. package/dist/components/field/field-legend.svelte +27 -0
  215. package/dist/components/field/field-legend.svelte.d.ts +9 -0
  216. package/dist/components/field/field-legend.svelte.d.ts.map +1 -0
  217. package/dist/components/field/field-separator.svelte +35 -0
  218. package/dist/components/field/field-separator.svelte.d.ts +10 -0
  219. package/dist/components/field/field-separator.svelte.d.ts.map +1 -0
  220. package/dist/components/field/field-set.svelte +23 -0
  221. package/dist/components/field/field-set.svelte.d.ts +6 -0
  222. package/dist/components/field/field-set.svelte.d.ts.map +1 -0
  223. package/dist/components/field/field-title.svelte +23 -0
  224. package/dist/components/field/field-title.svelte.d.ts +6 -0
  225. package/dist/components/field/field-title.svelte.d.ts.map +1 -0
  226. package/dist/components/field/field.svelte +49 -0
  227. package/dist/components/field/field.svelte.d.ts +30 -0
  228. package/dist/components/field/field.svelte.d.ts.map +1 -0
  229. package/dist/components/field/index.d.ts +13 -0
  230. package/dist/components/field/index.d.ts.map +1 -0
  231. package/dist/components/field/index.js +13 -0
  232. package/dist/components/input/index.d.ts +4 -0
  233. package/dist/components/input/index.d.ts.map +1 -0
  234. package/dist/components/input/index.js +4 -0
  235. package/dist/components/input/input.svelte +83 -0
  236. package/dist/components/input/input.svelte.d.ts +16 -0
  237. package/dist/components/input/input.svelte.d.ts.map +1 -0
  238. package/dist/components/label/index.d.ts +4 -0
  239. package/dist/components/label/index.d.ts.map +1 -0
  240. package/dist/components/label/index.js +4 -0
  241. package/dist/components/label/label.svelte +21 -0
  242. package/dist/components/label/label.svelte.d.ts +6 -0
  243. package/dist/components/label/label.svelte.d.ts.map +1 -0
  244. package/dist/components/legacy-trigger.d.ts +7 -0
  245. package/dist/components/legacy-trigger.d.ts.map +1 -0
  246. package/dist/components/legacy-trigger.js +84 -0
  247. package/dist/components/list/ListGroup.svelte +20 -0
  248. package/dist/components/list/ListGroup.svelte.d.ts +10 -0
  249. package/dist/components/list/ListGroup.svelte.d.ts.map +1 -0
  250. package/dist/components/list/ListRow.svelte +52 -0
  251. package/dist/components/list/ListRow.svelte.d.ts +13 -0
  252. package/dist/components/list/ListRow.svelte.d.ts.map +1 -0
  253. package/dist/components/list/index.d.ts +4 -0
  254. package/dist/components/list/index.d.ts.map +1 -0
  255. package/dist/components/list/index.js +3 -0
  256. package/dist/components/logo/Logo.svelte +54 -0
  257. package/dist/components/logo/Logo.svelte.d.ts +9 -0
  258. package/dist/components/logo/Logo.svelte.d.ts.map +1 -0
  259. package/dist/components/logo/index.d.ts +3 -0
  260. package/dist/components/logo/index.d.ts.map +1 -0
  261. package/dist/components/logo/index.js +4 -0
  262. package/dist/components/logo-icon/LogoIcon.svelte +30 -0
  263. package/dist/components/logo-icon/LogoIcon.svelte.d.ts +9 -0
  264. package/dist/components/logo-icon/LogoIcon.svelte.d.ts.map +1 -0
  265. package/dist/components/logo-icon/index.d.ts +3 -0
  266. package/dist/components/logo-icon/index.d.ts.map +1 -0
  267. package/dist/components/logo-icon/index.js +4 -0
  268. package/dist/components/modal/index.d.ts +4 -0
  269. package/dist/components/modal/index.d.ts.map +1 -0
  270. package/dist/components/modal/index.js +2 -0
  271. package/dist/components/modal/modal.svelte +63 -0
  272. package/dist/components/modal/modal.svelte.d.ts +14 -0
  273. package/dist/components/modal/modal.svelte.d.ts.map +1 -0
  274. package/dist/components/native-select/index.d.ts +5 -0
  275. package/dist/components/native-select/index.d.ts.map +1 -0
  276. package/dist/components/native-select/index.js +4 -0
  277. package/dist/components/native-select/native-select-opt-group.svelte +7 -0
  278. package/dist/components/native-select/native-select-opt-group.svelte.d.ts +5 -0
  279. package/dist/components/native-select/native-select-opt-group.svelte.d.ts.map +1 -0
  280. package/dist/components/native-select/native-select-option.svelte +7 -0
  281. package/dist/components/native-select/native-select-option.svelte.d.ts +5 -0
  282. package/dist/components/native-select/native-select-option.svelte.d.ts.map +1 -0
  283. package/dist/components/native-select/native-select.svelte +32 -0
  284. package/dist/components/native-select/native-select.svelte.d.ts +7 -0
  285. package/dist/components/native-select/native-select.svelte.d.ts.map +1 -0
  286. package/dist/components/page/Page.svelte +156 -0
  287. package/dist/components/page/Page.svelte.d.ts +35 -0
  288. package/dist/components/page/Page.svelte.d.ts.map +1 -0
  289. package/dist/components/page/PageBar.svelte +41 -0
  290. package/dist/components/page/PageBar.svelte.d.ts +11 -0
  291. package/dist/components/page/PageBar.svelte.d.ts.map +1 -0
  292. package/dist/components/page/index.d.ts +4 -0
  293. package/dist/components/page/index.d.ts.map +1 -0
  294. package/dist/components/page/index.js +3 -0
  295. package/dist/components/pagination/index.d.ts +5 -0
  296. package/dist/components/pagination/index.d.ts.map +1 -0
  297. package/dist/components/pagination/index.js +4 -0
  298. package/dist/components/pagination/pagination-context.d.ts +5 -0
  299. package/dist/components/pagination/pagination-context.d.ts.map +1 -0
  300. package/dist/components/pagination/pagination-context.js +1 -0
  301. package/dist/components/pagination/pagination-next.svelte +25 -0
  302. package/dist/components/pagination/pagination-next.svelte.d.ts +5 -0
  303. package/dist/components/pagination/pagination-next.svelte.d.ts.map +1 -0
  304. package/dist/components/pagination/pagination-page.svelte +26 -0
  305. package/dist/components/pagination/pagination-page.svelte.d.ts +5 -0
  306. package/dist/components/pagination/pagination-page.svelte.d.ts.map +1 -0
  307. package/dist/components/pagination/pagination-previous.svelte +25 -0
  308. package/dist/components/pagination/pagination-previous.svelte.d.ts +5 -0
  309. package/dist/components/pagination/pagination-previous.svelte.d.ts.map +1 -0
  310. package/dist/components/pagination/pagination.svelte +24 -0
  311. package/dist/components/pagination/pagination.svelte.d.ts +5 -0
  312. package/dist/components/pagination/pagination.svelte.d.ts.map +1 -0
  313. package/dist/components/pay-button/checkout-adapter.d.ts +25 -0
  314. package/dist/components/pay-button/checkout-adapter.d.ts.map +1 -0
  315. package/dist/components/pay-button/checkout-adapter.js +33 -0
  316. package/dist/components/pay-button/index.d.ts +2 -0
  317. package/dist/components/pay-button/index.d.ts.map +1 -0
  318. package/dist/components/pay-button/index.js +1 -0
  319. package/dist/components/pay-button/pay-button.svelte +218 -0
  320. package/dist/components/pay-button/pay-button.svelte.d.ts +36 -0
  321. package/dist/components/pay-button/pay-button.svelte.d.ts.map +1 -0
  322. package/dist/components/popover/index.d.ts +10 -0
  323. package/dist/components/popover/index.d.ts.map +1 -0
  324. package/dist/components/popover/index.js +8 -0
  325. package/dist/components/popover/popover-content.svelte +35 -0
  326. package/dist/components/popover/popover-content.svelte.d.ts +6 -0
  327. package/dist/components/popover/popover-content.svelte.d.ts.map +1 -0
  328. package/dist/components/popover/popover.svelte +37 -0
  329. package/dist/components/popover/popover.svelte.d.ts +13 -0
  330. package/dist/components/popover/popover.svelte.d.ts.map +1 -0
  331. package/dist/components/radio-group/index.d.ts +4 -0
  332. package/dist/components/radio-group/index.d.ts.map +1 -0
  333. package/dist/components/radio-group/index.js +3 -0
  334. package/dist/components/radio-group/radio-group-item.svelte +25 -0
  335. package/dist/components/radio-group/radio-group-item.svelte.d.ts +5 -0
  336. package/dist/components/radio-group/radio-group-item.svelte.d.ts.map +1 -0
  337. package/dist/components/radio-group/radio-group.svelte +29 -0
  338. package/dist/components/radio-group/radio-group.svelte.d.ts +5 -0
  339. package/dist/components/radio-group/radio-group.svelte.d.ts.map +1 -0
  340. package/dist/components/screen/Screen.svelte +89 -0
  341. package/dist/components/screen/Screen.svelte.d.ts +16 -0
  342. package/dist/components/screen/Screen.svelte.d.ts.map +1 -0
  343. package/dist/components/screen/index.d.ts +2 -0
  344. package/dist/components/screen/index.d.ts.map +1 -0
  345. package/dist/components/screen/index.js +1 -0
  346. package/dist/components/search-bar/SearchBar.svelte +35 -0
  347. package/dist/components/search-bar/SearchBar.svelte.d.ts +12 -0
  348. package/dist/components/search-bar/SearchBar.svelte.d.ts.map +1 -0
  349. package/dist/components/search-bar/index.d.ts +2 -0
  350. package/dist/components/search-bar/index.d.ts.map +1 -0
  351. package/dist/components/search-bar/index.js +1 -0
  352. package/dist/components/segmented-control/SegmentedControl.svelte +38 -0
  353. package/dist/components/segmented-control/SegmentedControl.svelte.d.ts +12 -0
  354. package/dist/components/segmented-control/SegmentedControl.svelte.d.ts.map +1 -0
  355. package/dist/components/segmented-control/index.d.ts +2 -0
  356. package/dist/components/segmented-control/index.d.ts.map +1 -0
  357. package/dist/components/segmented-control/index.js +1 -0
  358. package/dist/components/select/index.d.ts +7 -0
  359. package/dist/components/select/index.d.ts.map +1 -0
  360. package/dist/components/select/index.js +6 -0
  361. package/dist/components/select/select-content.svelte +27 -0
  362. package/dist/components/select/select-content.svelte.d.ts +5 -0
  363. package/dist/components/select/select-content.svelte.d.ts.map +1 -0
  364. package/dist/components/select/select-context.d.ts +6 -0
  365. package/dist/components/select/select-context.d.ts.map +1 -0
  366. package/dist/components/select/select-context.js +1 -0
  367. package/dist/components/select/select-item.svelte +29 -0
  368. package/dist/components/select/select-item.svelte.d.ts +5 -0
  369. package/dist/components/select/select-item.svelte.d.ts.map +1 -0
  370. package/dist/components/select/select-trigger.svelte +25 -0
  371. package/dist/components/select/select-trigger.svelte.d.ts +5 -0
  372. package/dist/components/select/select-trigger.svelte.d.ts.map +1 -0
  373. package/dist/components/select/select-value.svelte +17 -0
  374. package/dist/components/select/select-value.svelte.d.ts +8 -0
  375. package/dist/components/select/select-value.svelte.d.ts.map +1 -0
  376. package/dist/components/select/select.svelte +48 -0
  377. package/dist/components/select/select.svelte.d.ts +20 -0
  378. package/dist/components/select/select.svelte.d.ts.map +1 -0
  379. package/dist/components/separator/index.d.ts +4 -0
  380. package/dist/components/separator/index.d.ts.map +1 -0
  381. package/dist/components/separator/index.js +4 -0
  382. package/dist/components/separator/separator.svelte +28 -0
  383. package/dist/components/separator/separator.svelte.d.ts +6 -0
  384. package/dist/components/separator/separator.svelte.d.ts.map +1 -0
  385. package/dist/components/skeleton/index.d.ts +4 -0
  386. package/dist/components/skeleton/index.d.ts.map +1 -0
  387. package/dist/components/skeleton/index.js +4 -0
  388. package/dist/components/skeleton/skeleton.svelte +27 -0
  389. package/dist/components/skeleton/skeleton.svelte.d.ts +7 -0
  390. package/dist/components/skeleton/skeleton.svelte.d.ts.map +1 -0
  391. package/dist/components/spinner/index.d.ts +3 -0
  392. package/dist/components/spinner/index.d.ts.map +1 -0
  393. package/dist/components/spinner/index.js +2 -0
  394. package/dist/components/spinner/spinner-dots.svelte +19 -0
  395. package/dist/components/spinner/spinner-dots.svelte.d.ts +7 -0
  396. package/dist/components/spinner/spinner-dots.svelte.d.ts.map +1 -0
  397. package/dist/components/spinner/spinner.svelte +21 -0
  398. package/dist/components/spinner/spinner.svelte.d.ts +6 -0
  399. package/dist/components/spinner/spinner.svelte.d.ts.map +1 -0
  400. package/dist/components/switch/index.d.ts +2 -0
  401. package/dist/components/switch/index.d.ts.map +1 -0
  402. package/dist/components/switch/index.js +1 -0
  403. package/dist/components/switch/switch.svelte +37 -0
  404. package/dist/components/switch/switch.svelte.d.ts +5 -0
  405. package/dist/components/switch/switch.svelte.d.ts.map +1 -0
  406. package/dist/components/table/index.d.ts +8 -0
  407. package/dist/components/table/index.d.ts.map +1 -0
  408. package/dist/components/table/index.js +7 -0
  409. package/dist/components/table/table-body.svelte +13 -0
  410. package/dist/components/table/table-body.svelte.d.ts +5 -0
  411. package/dist/components/table/table-body.svelte.d.ts.map +1 -0
  412. package/dist/components/table/table-caption.svelte +11 -0
  413. package/dist/components/table/table-caption.svelte.d.ts +5 -0
  414. package/dist/components/table/table-caption.svelte.d.ts.map +1 -0
  415. package/dist/components/table/table-cell.svelte +9 -0
  416. package/dist/components/table/table-cell.svelte.d.ts +5 -0
  417. package/dist/components/table/table-cell.svelte.d.ts.map +1 -0
  418. package/dist/components/table/table-head.svelte +19 -0
  419. package/dist/components/table/table-head.svelte.d.ts +8 -0
  420. package/dist/components/table/table-head.svelte.d.ts.map +1 -0
  421. package/dist/components/table/table-header.svelte +13 -0
  422. package/dist/components/table/table-header.svelte.d.ts +5 -0
  423. package/dist/components/table/table-header.svelte.d.ts.map +1 -0
  424. package/dist/components/table/table-row.svelte +11 -0
  425. package/dist/components/table/table-row.svelte.d.ts +5 -0
  426. package/dist/components/table/table-row.svelte.d.ts.map +1 -0
  427. package/dist/components/table/table.svelte +22 -0
  428. package/dist/components/table/table.svelte.d.ts +5 -0
  429. package/dist/components/table/table.svelte.d.ts.map +1 -0
  430. package/dist/components/tabs/index.d.ts +8 -0
  431. package/dist/components/tabs/index.d.ts.map +1 -0
  432. package/dist/components/tabs/index.js +7 -0
  433. package/dist/components/tabs/tabs.svelte +58 -0
  434. package/dist/components/tabs/tabs.svelte.d.ts +17 -0
  435. package/dist/components/tabs/tabs.svelte.d.ts.map +1 -0
  436. package/dist/components/textarea/index.d.ts +4 -0
  437. package/dist/components/textarea/index.d.ts.map +1 -0
  438. package/dist/components/textarea/index.js +4 -0
  439. package/dist/components/textarea/textarea.svelte +31 -0
  440. package/dist/components/textarea/textarea.svelte.d.ts +7 -0
  441. package/dist/components/textarea/textarea.svelte.d.ts.map +1 -0
  442. package/dist/components/toast/index.d.ts +4 -0
  443. package/dist/components/toast/index.d.ts.map +1 -0
  444. package/dist/components/toast/index.js +2 -0
  445. package/dist/components/toast/toast.d.ts +24 -0
  446. package/dist/components/toast/toast.d.ts.map +1 -0
  447. package/dist/components/toast/toast.js +47 -0
  448. package/dist/components/toast/toaster.svelte +51 -0
  449. package/dist/components/toast/toaster.svelte.d.ts +9 -0
  450. package/dist/components/toast/toaster.svelte.d.ts.map +1 -0
  451. package/dist/components/toggle/Toggle.svelte +25 -0
  452. package/dist/components/toggle/Toggle.svelte.d.ts +8 -0
  453. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -0
  454. package/dist/components/toggle/index.d.ts +4 -0
  455. package/dist/components/toggle/index.d.ts.map +1 -0
  456. package/dist/components/toggle/index.js +2 -0
  457. package/dist/components/tooltip/index.d.ts +10 -0
  458. package/dist/components/tooltip/index.d.ts.map +1 -0
  459. package/dist/components/tooltip/index.js +8 -0
  460. package/dist/components/tooltip/tooltip-content.svelte +35 -0
  461. package/dist/components/tooltip/tooltip-content.svelte.d.ts +6 -0
  462. package/dist/components/tooltip/tooltip-content.svelte.d.ts.map +1 -0
  463. package/dist/components/tooltip/tooltip.svelte +67 -0
  464. package/dist/components/tooltip/tooltip.svelte.d.ts +12 -0
  465. package/dist/components/tooltip/tooltip.svelte.d.ts.map +1 -0
  466. package/dist/components/top-loader/TopLoader.svelte +48 -0
  467. package/dist/components/top-loader/TopLoader.svelte.d.ts +9 -0
  468. package/dist/components/top-loader/TopLoader.svelte.d.ts.map +1 -0
  469. package/dist/components/top-loader/index.d.ts +2 -0
  470. package/dist/components/top-loader/index.d.ts.map +1 -0
  471. package/dist/components/top-loader/index.js +1 -0
  472. package/dist/index.d.ts +50 -0
  473. package/dist/index.d.ts.map +1 -0
  474. package/dist/index.js +50 -0
  475. package/dist/theme/constant/arch.d.ts +83 -0
  476. package/dist/theme/constant/arch.d.ts.map +1 -0
  477. package/dist/theme/constant/arch.js +83 -0
  478. package/dist/theme/constant/catppuccin.d.ts +72 -0
  479. package/dist/theme/constant/catppuccin.d.ts.map +1 -0
  480. package/dist/theme/constant/catppuccin.js +72 -0
  481. package/dist/theme/constant/everforest.d.ts +72 -0
  482. package/dist/theme/constant/everforest.d.ts.map +1 -0
  483. package/dist/theme/constant/everforest.js +71 -0
  484. package/dist/theme/constant/gruvbox.d.ts +69 -0
  485. package/dist/theme/constant/gruvbox.d.ts.map +1 -0
  486. package/dist/theme/constant/gruvbox.js +69 -0
  487. package/dist/theme/constant/hackerman.d.ts +69 -0
  488. package/dist/theme/constant/hackerman.d.ts.map +1 -0
  489. package/dist/theme/constant/hackerman.js +69 -0
  490. package/dist/theme/constant/index.d.ts +8 -0
  491. package/dist/theme/constant/index.d.ts.map +1 -0
  492. package/dist/theme/constant/index.js +7 -0
  493. package/dist/theme/constant/nord.d.ts +69 -0
  494. package/dist/theme/constant/nord.d.ts.map +1 -0
  495. package/dist/theme/constant/nord.js +69 -0
  496. package/dist/theme/constant/tokyo-night.d.ts +69 -0
  497. package/dist/theme/constant/tokyo-night.d.ts.map +1 -0
  498. package/dist/theme/constant/tokyo-night.js +80 -0
  499. package/dist/theme/index.d.ts +3 -0
  500. package/dist/theme/index.d.ts.map +1 -0
  501. package/dist/theme/index.js +2 -0
  502. package/dist/theme/utils/index.d.ts +992 -0
  503. package/dist/theme/utils/index.d.ts.map +1 -0
  504. package/dist/theme/utils/index.js +27 -0
  505. package/dist/theme.css +1051 -0
  506. package/dist/utils-legacy.d.ts +4 -0
  507. package/dist/utils-legacy.d.ts.map +1 -0
  508. package/dist/utils-legacy.js +4 -0
  509. package/dist/utils.d.ts +13 -0
  510. package/dist/utils.d.ts.map +1 -0
  511. package/dist/utils.js +26 -0
  512. package/package.json +299 -3
package/LICENSE ADDED
@@ -0,0 +1,34 @@
1
+ # Non-Commercial Source Available License
2
+
3
+ Copyright (c) 2026 Arch Technologies Inc
4
+
5
+ ## Permissions
6
+
7
+ You may:
8
+
9
+ - Use this software for personal, non-commercial purposes
10
+ - Modify the software for your own use
11
+ - Distribute copies of the software to others for non-commercial use
12
+ - Run instances of this software for yourself, your friends, or your family
13
+
14
+ ## Restrictions
15
+
16
+ You may NOT:
17
+
18
+ - Use this software for any commercial purpose without a separate written agreement
19
+ - Host this software as a service for paying users
20
+ - Sell access to an instance of this software
21
+ - Integrate this software into a commercial product
22
+ - Use this software to generate revenue in any form (including advertising, donations, or paid support)
23
+
24
+ ## Commercial Use
25
+
26
+ If you wish to use this software commercially (including hosting as a service), please contact:
27
+
28
+ hello@chuksemmanuel.com
29
+
30
+ A commercial license agreement will be provided. Pricing is negotiable based on your use case.
31
+
32
+ ## No Warranty
33
+
34
+ This software is provided "as is" without warranty of any kind.
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Hunter Johnston <https://github.com/huntabyte>
4
+ Copyright (c) 2023 CokaKoala <https://github.com/adriangonz97>
5
+ Copyright (c) 2023 shadcn
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,111 @@
1
- # Temporary Holding Version
1
+ # archos-ui
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Arch's Svelte component library implements the One UI visual language. Components are owned and
4
+ maintained in `src/lib/components`; they do not require a component registry at install time.
5
+
6
+ ## Usage
7
+
8
+ Import components from the public package entry and the theme stylesheet once in the app shell:
9
+
10
+ ```svelte
11
+ <script lang="ts">
12
+ import { Button, Input } from 'archos-ui';
13
+ import 'archos-ui/theme.css';
14
+ </script>
15
+
16
+ <Input aria-label="Search" />
17
+ <Button>Search</Button>
18
+ ```
19
+
20
+ Consumer Tailwind builds must scan their own routes and components. `archos-ui/theme.css` scans its
21
+ own component source, not Arch's platform. The stylesheet defines semantic CSS variables on
22
+ `:root` and `.dark`, Tailwind color/radius aliases, Arch spacing and typography utilities, and
23
+ the minimal base styles needed by current consumers. Load consumer CSS after the theme stylesheet
24
+ to override equal-specificity rules. Higher-specificity selectors and `!important` still follow
25
+ normal CSS cascade rules. Plain CSS can override semantic variables at an app root, for example:
26
+
27
+ ```css
28
+ :root {
29
+ --primary: #2563eb;
30
+ }
31
+ ```
32
+
33
+ The theme stylesheet is the source of truth for Arch's default token values. After changing its
34
+ `:root` or `.dark` declarations, run `pnpm theme:generate` to update the TypeScript theme constant.
35
+ `pnpm check` and `pnpm build` reject stale generated constants. Other named theme definitions retain
36
+ their current compatibility contracts.
37
+
38
+ State-variant and accordion CSS adapted from shadcn-svelte retains its MIT notice in
39
+ [`LICENSE.shadcn-svelte`](./LICENSE.shadcn-svelte). The package has no shadcn-svelte runtime or
40
+ registry dependency.
41
+
42
+ The Phase 9 NativeSelect, Select, Checkbox, Switch, RadioGroup, Spinner, Alert, and Empty families
43
+ adapt the Svelte 5 composition and primitive-wrapping patterns in the local shadcn-svelte reference
44
+ at commit `3ef557c8` (`docs/src/lib/registry/ui/{native-select,select,checkbox,switch,radio-group,spinner,alert,empty}`).
45
+ Their styles and application behavior are Arch-owned; the upstream MIT notice ships with this package.
46
+
47
+ Phase 10 DropdownMenu, Table, Pagination, Command, and Combobox use the same local reference commit
48
+ `3ef557c8` (`docs/src/lib/registry/ui/{dropdown-menu,table,pagination,command}` and the Combobox
49
+ composition examples). Arch provides its own tokens, typed wrappers, toast store, and interaction
50
+ contracts; no upstream component package is a runtime dependency. The upstream MIT notice remains
51
+ in [`LICENSE.shadcn-svelte`](./LICENSE.shadcn-svelte).
52
+
53
+ ## Public API and compatibility
54
+
55
+ Prefer the root entry for existing components. New code may use focused entry points such as
56
+ `archos-ui/button` and `archos-ui/field`; the latter exports the compound parts and their prop types.
57
+ Import class utilities from `archos-ui/utils` and theme helpers from `archos-ui/theme`. Public entry
58
+ points resolve to `dist`, not `src`, so a consuming app needs no Arch repository aliases.
59
+
60
+ | Legacy path | Replacement | Status |
61
+ | ------------------------------------------- | -------------------------------------------- | --------------------------------------------------------- |
62
+ | `archos-ui/utils.js` | `archos-ui/utils` | Supported; one development warning per module load. |
63
+ | `archos-ui/components/<name>` | Focused entry when available, otherwise root | Supported; no warning yet. |
64
+ | `archos-ui/components/<name>/index.js` | Focused entry when available, otherwise root | Supported; no warning yet. |
65
+ | `archos-ui/components/<name>/<file>.svelte` | Public component entry | Supported for existing deep consumers; avoid in new code. |
66
+
67
+ The existing root names remain stable during this overhaul. We will not remove a legacy path
68
+ without a separately documented major-version migration. Warnings are development-only and
69
+ deduplicated; they do not appear in production logs.
70
+
71
+ ## Component contributor recipe
72
+
73
+ 1. Build the component in `src/lib/components/<name>` and expose a typed `Props` alias plus any
74
+ variants from its `index.ts`. Keep native element attributes, `on*` handlers, `children`/other
75
+ snippets, and `ref` in the public type. Forward remaining attributes to the rendered element.
76
+ 2. Treat `class` as a consumer override: merge defaults first and the supplied class last with
77
+ `cn()`. Avoid source-only `archos-ui` imports inside the package; use relative imports.
78
+ 3. Add a focused package export when the component is compound or its types are commonly used.
79
+ Keep its existing root export and legacy deep path working.
80
+ 4. Add a fixture to `tests/public-api.ts` covering native attributes, events, refs, snippets,
81
+ variants, and at least one invalid value. Update `scripts/check-package.mjs` for a new runtime
82
+ subpath and add a regression test for any compatibility behavior.
83
+ 5. Run `pnpm api:check`, `pnpm check`, `pnpm lint`, and `pnpm build` in `packages/ui`. Check a
84
+ generated tarball and a consumer without source aliases before considering the export stable.
85
+
86
+ ## Storybook and shared examples
87
+
88
+ Run `pnpm dev:storybook` from the repository root to start the isolated UI workshop on port 6006.
89
+ It does not restart the platform or docs servers. Run `pnpm build:storybook` for a static build and
90
+ `pnpm test:storybook` for real-browser interaction and accessibility checks. On a machine with
91
+ system Chromium but no Playwright browser download, set `ARCH_TEST_CHROMIUM=/path/to/chromium` for
92
+ the test command. Otherwise install the matching Playwright Chromium binary once.
93
+ Run `pnpm -F archos-ui test:coverage` to generate a component coverage report in
94
+ `packages/ui/coverage/`; CI uploads it as an artifact. Treat uncovered branches as a review list,
95
+ not a reason to weaken tests or claim completeness from a single percentage.
96
+
97
+ Examples live in `examples/`, outside the published package. Each example has one Svelte source
98
+ used by a Storybook story and the matching Astro docs page; `examples/manifest.ts` records the
99
+ story, source, and docs route. Add new examples there rather than copying demo markup between sites.
100
+ The Storybook build resolves App Bridge to `.storybook/mocks/app-bridge.ts`, so stories never call a
101
+ real Arch platform. Console warnings/errors and rejected promises fail interaction tests rather
102
+ than being hidden. Mock any other external integration explicitly before adding its story.
103
+
104
+ ### Visual regression
105
+
106
+ Capture the same story ID at 390, 768, and 1440 pixel widths, in both light and dark themes. Turn
107
+ on the `reducedMotion` toolbar setting, wait for `document.fonts.ready`, and keep the story's data
108
+ and clock deterministic. Name baseline images by story ID, theme, and viewport; review image diffs
109
+ before updating a baseline. Do not treat a baseline update as proof of correctness. Storybook's
110
+ viewport and theme controls provide the matching manual review states until automated screenshot
111
+ baselines are introduced for each component phase.
@@ -0,0 +1,2 @@
1
+ export declare function warnDeprecated(key: string, replacement: string): void;
2
+ //# sourceMappingURL=deprecations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecations.d.ts","sourceRoot":"","sources":["../../src/lib/compat/deprecations.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAIrE"}
@@ -0,0 +1,8 @@
1
+ import { DEV } from 'esm-env';
2
+ const warned = new Set();
3
+ export function warnDeprecated(key, replacement) {
4
+ if (!DEV || warned.has(key))
5
+ return;
6
+ warned.add(key);
7
+ console.warn(`[arch/ui] ${key} is deprecated. Use ${replacement} instead.`);
8
+ }
@@ -0,0 +1,9 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { cn } from '../../utils';
4
+ let { class: className, children, ...restProps }: HTMLAttributes<HTMLParagraphElement> = $props();
5
+ </script>
6
+
7
+ <p data-slot="alert-description" class={cn('opacity-85', className)} {...restProps}>
8
+ {@render children?.()}
9
+ </p>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ declare const AlertDescription: import("svelte").Component<HTMLAttributes<HTMLParagraphElement>, {}, "">;
3
+ type AlertDescription = ReturnType<typeof AlertDescription>;
4
+ export default AlertDescription;
5
+ //# sourceMappingURL=alert-description.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-description.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/alert/alert-description.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAetD,QAAA,MAAM,gBAAgB,0EAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { cn } from '../../utils';
4
+ let { class: className, children, ...restProps }: HTMLAttributes<HTMLHeadingElement> = $props();
5
+ </script>
6
+
7
+ <h3 data-slot="alert-title" class={cn('font-semibold', className)} {...restProps}>
8
+ {@render children?.()}
9
+ </h3>
@@ -0,0 +1,5 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ declare const AlertTitle: import("svelte").Component<HTMLAttributes<HTMLHeadingElement>, {}, "">;
3
+ type AlertTitle = ReturnType<typeof AlertTitle>;
4
+ export default AlertTitle;
5
+ //# sourceMappingURL=alert-title.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-title.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/alert/alert-title.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAetD,QAAA,MAAM,UAAU,wEAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -0,0 +1,33 @@
1
+ <script lang="ts" module>
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { WithElementRef } from '../../utils';
4
+ export type AlertProps = WithElementRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & {
5
+ variant?: 'default' | 'destructive';
6
+ };
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import { cn } from '../../utils';
11
+ let {
12
+ ref = $bindable(null),
13
+ variant = 'default',
14
+ class: className,
15
+ children,
16
+ ...restProps
17
+ }: AlertProps = $props();
18
+ </script>
19
+
20
+ <div
21
+ bind:this={ref}
22
+ role="alert"
23
+ data-slot="alert"
24
+ data-variant={variant}
25
+ class={cn(
26
+ 'border-border bg-card text-card-foreground grid w-full gap-1 rounded-2xl border px-4 py-3 text-sm',
27
+ variant === 'destructive' && 'border-destructive/50 text-destructive',
28
+ className
29
+ )}
30
+ {...restProps}
31
+ >
32
+ {@render children?.()}
33
+ </div>
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { WithElementRef } from '../../utils';
3
+ export type AlertProps = WithElementRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & {
4
+ variant?: 'default' | 'destructive';
5
+ };
6
+ declare const Alert: import("svelte").Component<AlertProps, {}, "ref">;
7
+ type Alert = ReturnType<typeof Alert>;
8
+ export default Alert;
9
+ //# sourceMappingURL=alert.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/alert/alert.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,GAAG;IACxF,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC,CAAC;AA4BJ,QAAA,MAAM,KAAK,mDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ import Root from './alert.svelte';
2
+ import Title from './alert-title.svelte';
3
+ import Description from './alert-description.svelte';
4
+ export { Root, Title, Description, Root as Alert, Title as AlertTitle, Description as AlertDescription };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,KAAK,MAAM,sBAAsB,CAAC;AACzC,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,OAAO,EACL,IAAI,EACJ,KAAK,EACL,WAAW,EACX,IAAI,IAAI,KAAK,EACb,KAAK,IAAI,UAAU,EACnB,WAAW,IAAI,gBAAgB,EAChC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import Root from './alert.svelte';
2
+ import Title from './alert-title.svelte';
3
+ import Description from './alert-description.svelte';
4
+ export { Root, Title, Description, Root as Alert, Title as AlertTitle, Description as AlertDescription };
@@ -0,0 +1,43 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+ import type { AlertDialog as AlertDialogTypes } from 'bits-ui';
4
+
5
+ export type AlertDialogContentProps = Omit<AlertDialogTypes.ContentProps, 'children'> & {
6
+ children: Snippet;
7
+ mobileBottom?: boolean;
8
+ };
9
+ </script>
10
+
11
+ <script lang="ts">
12
+ import { AlertDialog as AlertDialogPrimitive } from 'bits-ui';
13
+ import { cn } from '../../utils';
14
+
15
+ let {
16
+ ref = $bindable(null),
17
+ class: className,
18
+ children,
19
+ mobileBottom = true,
20
+ ...restProps
21
+ }: AlertDialogContentProps = $props();
22
+ </script>
23
+
24
+ <AlertDialogPrimitive.Portal>
25
+ <AlertDialogPrimitive.Overlay
26
+ data-slot="alert-dialog-overlay"
27
+ class="reduce-transparency:bg-black/60 reduce-transparency:backdrop-blur-none fixed inset-0 z-110 bg-black/40 backdrop-blur-sm"
28
+ />
29
+ <AlertDialogPrimitive.Content
30
+ bind:ref
31
+ data-slot="alert-dialog-content"
32
+ class={cn(
33
+ 'bg-card text-card-foreground shadow-overlay fixed z-111 flex max-h-[min(85dvh,48rem)] w-full flex-col gap-4 overflow-y-auto rounded-2xl p-5 outline-none',
34
+ mobileBottom
35
+ ? 'inset-x-0 bottom-0 mx-auto rounded-b-none md:inset-x-auto md:top-1/2 md:bottom-auto md:left-1/2 md:max-w-lg md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-b-2xl'
36
+ : 'top-1/2 left-1/2 max-w-lg -translate-x-1/2 -translate-y-1/2',
37
+ className
38
+ )}
39
+ {...restProps}
40
+ >
41
+ {@render children()}
42
+ </AlertDialogPrimitive.Content>
43
+ </AlertDialogPrimitive.Portal>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { AlertDialog as AlertDialogTypes } from 'bits-ui';
3
+ export type AlertDialogContentProps = Omit<AlertDialogTypes.ContentProps, 'children'> & {
4
+ children: Snippet;
5
+ mobileBottom?: boolean;
6
+ };
7
+ declare const AlertDialogContent: import("svelte").Component<AlertDialogContentProps, {}, "ref">;
8
+ type AlertDialogContent = ReturnType<typeof AlertDialogContent>;
9
+ export default AlertDialogContent;
10
+ //# sourceMappingURL=alert-dialog-content.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-dialog-content.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/alert-dialog/alert-dialog-content.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACtF,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAoCJ,QAAA,MAAM,kBAAkB,gEAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { AlertDialog as Primitive } from 'bits-ui';
2
+ import Content from './alert-dialog-content.svelte';
3
+ export type { AlertDialogContentProps } from './alert-dialog-content.svelte';
4
+ export declare const Root: import("svelte").Component<import("bits-ui").AlertDialogRootPropsWithoutHTML, {}, "open">;
5
+ export declare const Trigger: import("svelte").Component<Primitive.TriggerProps, {}, "ref">;
6
+ export declare const Portal: import("svelte").Component<import("bits-ui").PortalProps, {}, "">;
7
+ export declare const Overlay: import("svelte").Component<Primitive.OverlayProps, {}, "ref">;
8
+ export declare const Title: import("svelte").Component<Primitive.TitleProps, {}, "ref">;
9
+ export declare const Description: import("svelte").Component<Primitive.DescriptionProps, {}, "ref">;
10
+ export declare const Action: import("svelte").Component<Primitive.TriggerProps, {}, "ref">;
11
+ export declare const Cancel: import("svelte").Component<Primitive.TriggerProps, {}, "ref">;
12
+ export { Content };
13
+ export declare const AlertDialog: {
14
+ Root: import("svelte").Component<import("bits-ui").AlertDialogRootPropsWithoutHTML, {}, "open">;
15
+ Trigger: import("svelte").Component<Primitive.TriggerProps, {}, "ref">;
16
+ Portal: import("svelte").Component<import("bits-ui").PortalProps, {}, "">;
17
+ Overlay: import("svelte").Component<Primitive.OverlayProps, {}, "ref">;
18
+ Title: import("svelte").Component<Primitive.TitleProps, {}, "ref">;
19
+ Description: import("svelte").Component<Primitive.DescriptionProps, {}, "ref">;
20
+ Action: import("svelte").Component<Primitive.TriggerProps, {}, "ref">;
21
+ Cancel: import("svelte").Component<Primitive.TriggerProps, {}, "ref">;
22
+ Content: import("svelte").Component<import("./alert-dialog-content.svelte").AlertDialogContentProps, {}, "ref">;
23
+ };
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/alert-dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,OAAO,MAAM,+BAA+B,CAAC;AAEpD,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,eAAO,MAAM,IAAI,2FAAiB,CAAC;AACnC,eAAO,MAAM,OAAO,+DAAoB,CAAC;AACzC,eAAO,MAAM,MAAM,mEAAmB,CAAC;AACvC,eAAO,MAAM,OAAO,+DAAoB,CAAC;AACzC,eAAO,MAAM,KAAK,6DAAkB,CAAC;AACrC,eAAO,MAAM,WAAW,mEAAwB,CAAC;AACjD,eAAO,MAAM,MAAM,+DAAmB,CAAC;AACvC,eAAO,MAAM,MAAM,+DAAmB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,eAAO,MAAM,WAAW;;;;;;;;;;CAUvB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { AlertDialog as Primitive } from 'bits-ui';
2
+ import Content from './alert-dialog-content.svelte';
3
+ export const Root = Primitive.Root;
4
+ export const Trigger = Primitive.Trigger;
5
+ export const Portal = Primitive.Portal;
6
+ export const Overlay = Primitive.Overlay;
7
+ export const Title = Primitive.Title;
8
+ export const Description = Primitive.Description;
9
+ export const Action = Primitive.Action;
10
+ export const Cancel = Primitive.Cancel;
11
+ export { Content };
12
+ export const AlertDialog = {
13
+ Root,
14
+ Trigger,
15
+ Portal,
16
+ Overlay,
17
+ Title,
18
+ Description,
19
+ Action,
20
+ Cancel,
21
+ Content
22
+ };
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../utils';
3
+
4
+ let {
5
+ count,
6
+ label,
7
+ class: className
8
+ }: { count?: number; label?: string; class?: string } = $props();
9
+
10
+ const dot = $derived(count === undefined);
11
+ </script>
12
+
13
+ <!-- One UI badge: a small dot, or a count pill when `count` is given. -->
14
+ <span
15
+ aria-label={label}
16
+ role={label ? 'status' : undefined}
17
+ class={cn(
18
+ 'bg-primary text-primary-foreground inline-flex items-center justify-center rounded-full font-bold',
19
+ dot ? 'size-2' : 'min-h-[16px] min-w-[16px] px-1 text-[10px] leading-none',
20
+ className
21
+ )}
22
+ >{#if !dot}{count! > 99 ? '99+' : count}{/if}</span
23
+ >
@@ -0,0 +1,9 @@
1
+ type $$ComponentProps = {
2
+ count?: number;
3
+ label?: string;
4
+ class?: string;
5
+ };
6
+ declare const BadgeDot: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type BadgeDot = ReturnType<typeof BadgeDot>;
8
+ export default BadgeDot;
9
+ //# sourceMappingURL=badge-dot.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-dot.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/badge/badge-dot.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAsB7E,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,53 @@
1
+ <script lang="ts" module>
2
+ import type { HTMLAnchorAttributes, HTMLAttributes } from 'svelte/elements';
3
+ import type { WithElementRef } from '../../utils';
4
+ import { type VariantProps, tv } from 'tailwind-variants';
5
+
6
+ export const badgeVariants = tv({
7
+ base: 'h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none',
8
+ variants: {
9
+ variant: {
10
+ default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',
11
+ secondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',
12
+ destructive:
13
+ 'bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20',
14
+ outline: 'border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',
15
+ ghost: 'hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50',
16
+ link: 'text-primary-text underline-offset-4 hover:underline'
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ variant: 'default'
21
+ }
22
+ });
23
+
24
+ export type BadgeVariant = VariantProps<typeof badgeVariants>['variant'];
25
+ export type BadgeProps = WithElementRef<
26
+ HTMLAttributes<HTMLElement> & HTMLAnchorAttributes,
27
+ HTMLElement
28
+ > & { variant?: BadgeVariant };
29
+ </script>
30
+
31
+ <script lang="ts">
32
+ import { cn } from '../../utils';
33
+
34
+ let {
35
+ ref = $bindable(null),
36
+ href,
37
+ class: className,
38
+ variant = 'default',
39
+ children,
40
+ ...restProps
41
+ }: BadgeProps = $props();
42
+ </script>
43
+
44
+ <svelte:element
45
+ this={href !== undefined ? 'a' : 'span'}
46
+ bind:this={ref}
47
+ data-slot="badge"
48
+ {href}
49
+ class={cn(badgeVariants({ variant }), className)}
50
+ {...restProps}
51
+ >
52
+ {@render children?.()}
53
+ </svelte:element>
@@ -0,0 +1,39 @@
1
+ import type { HTMLAnchorAttributes, HTMLAttributes } from 'svelte/elements';
2
+ import type { WithElementRef } from '../../utils';
3
+ import { type VariantProps } from 'tailwind-variants';
4
+ export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
5
+ variant: {
6
+ default: string;
7
+ secondary: string;
8
+ destructive: string;
9
+ outline: string;
10
+ ghost: string;
11
+ link: string;
12
+ };
13
+ }, undefined, "h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none", {
14
+ variant: {
15
+ default: string;
16
+ secondary: string;
17
+ destructive: string;
18
+ outline: string;
19
+ ghost: string;
20
+ link: string;
21
+ };
22
+ }, undefined, import("tailwind-variants").TVReturnType<{
23
+ variant: {
24
+ default: string;
25
+ secondary: string;
26
+ destructive: string;
27
+ outline: string;
28
+ ghost: string;
29
+ link: string;
30
+ };
31
+ }, undefined, "h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none", unknown, unknown, undefined>>;
32
+ export type BadgeVariant = VariantProps<typeof badgeVariants>['variant'];
33
+ export type BadgeProps = WithElementRef<HTMLAttributes<HTMLElement> & HTMLAnchorAttributes, HTMLElement> & {
34
+ variant?: BadgeVariant;
35
+ };
36
+ declare const Badge: import("svelte").Component<BadgeProps, {}, "ref">;
37
+ type Badge = ReturnType<typeof Badge>;
38
+ export default Badge;
39
+ //# sourceMappingURL=badge.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/badge/badge.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;4iBAgBxB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC;AACzE,MAAM,MAAM,UAAU,GAAG,cAAc,CACrC,cAAc,CAAC,WAAW,CAAC,GAAG,oBAAoB,EAClD,WAAW,CACZ,GAAG;IAAE,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AA0BjC,QAAA,MAAM,KAAK,mDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default as Badge } from './badge.svelte';
2
+ export { badgeVariants, type BadgeProps, type BadgeVariant } from './badge.svelte';
3
+ export { default as BadgeDot } from './badge-dot.svelte';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default as Badge } from './badge.svelte';
2
+ export { badgeVariants } from './badge.svelte';
3
+ export { default as BadgeDot } from './badge-dot.svelte';
@@ -0,0 +1,56 @@
1
+ <script lang="ts">
2
+ import type { Component } from 'svelte';
3
+ import type { IconProps } from '@lucide/svelte';
4
+ import { cn } from '../../utils';
5
+
6
+ let {
7
+ items,
8
+ active,
9
+ class: className
10
+ }: {
11
+ items: {
12
+ label: string;
13
+ icon: Component<IconProps>;
14
+ href: string;
15
+ badge?: string | number;
16
+ }[];
17
+ active?: string;
18
+ class?: string;
19
+ } = $props();
20
+ </script>
21
+
22
+ <!-- One UI bottom navigation: text-only tabs (icon + label), max 5, no swipe. -->
23
+ <nav
24
+ aria-label="Primary"
25
+ class={cn(
26
+ 'bg-card/95 border-border reduce-transparency:bg-card reduce-transparency:backdrop-blur-none flex h-14 w-full items-center border-t backdrop-blur',
27
+ className
28
+ )}
29
+ >
30
+ <ul class="flex w-full items-center justify-around">
31
+ {#each items as item (item.label)}
32
+ {@const current = active === item.href}
33
+ <li>
34
+ <a
35
+ href={item.href}
36
+ aria-current={current ? 'page' : undefined}
37
+ class={cn(
38
+ 'focus-visible:ring-ring/50 flex flex-col items-center gap-0.5 px-3 py-1 text-[10px] outline-none focus-visible:ring-[3px]',
39
+ current ? 'text-foreground' : 'text-muted-foreground'
40
+ )}
41
+ >
42
+ <span class="relative">
43
+ <item.icon />
44
+ {#if item.badge !== undefined}
45
+ <span
46
+ class="bg-primary text-primary-foreground absolute top-0 right-0 flex min-h-[14px] min-w-[14px] translate-x-1 -translate-y-1 items-center justify-center rounded-full px-1 text-[9px] font-bold"
47
+ >{item.badge}</span
48
+ >
49
+ {/if}
50
+ </span>
51
+ <span>{item.label}</span>
52
+ </a>
53
+ </li>
54
+ {/each}
55
+ </ul>
56
+ </nav>
@@ -0,0 +1,16 @@
1
+ import type { Component } from 'svelte';
2
+ import type { IconProps } from '@lucide/svelte';
3
+ type $$ComponentProps = {
4
+ items: {
5
+ label: string;
6
+ icon: Component<IconProps>;
7
+ href: string;
8
+ badge?: string | number;
9
+ }[];
10
+ active?: string;
11
+ class?: string;
12
+ };
13
+ declare const BottomNavigation: Component<$$ComponentProps, {}, "">;
14
+ type BottomNavigation = ReturnType<typeof BottomNavigation>;
15
+ export default BottomNavigation;
16
+ //# sourceMappingURL=BottomNavigation.svelte.d.ts.map