@orochibraru/ui 0.0.0-stage → 0.0.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 (711) hide show
  1. package/README.md +146 -2
  2. package/dist/appearance.d.ts +11 -0
  3. package/dist/appearance.js +16 -0
  4. package/dist/components/blocks/auth-shell.svelte +35 -0
  5. package/dist/components/blocks/auth-shell.svelte.d.ts +11 -0
  6. package/dist/components/blocks/copy-field.svelte +44 -0
  7. package/dist/components/blocks/copy-field.svelte.d.ts +11 -0
  8. package/dist/components/blocks/document-title.svelte +18 -0
  9. package/dist/components/blocks/document-title.svelte.d.ts +6 -0
  10. package/dist/components/blocks/empty-state.svelte +45 -0
  11. package/dist/components/blocks/empty-state.svelte.d.ts +13 -0
  12. package/dist/components/blocks/error-page.svelte +47 -0
  13. package/dist/components/blocks/error-page.svelte.d.ts +12 -0
  14. package/dist/components/blocks/fab.svelte +26 -0
  15. package/dist/components/blocks/fab.svelte.d.ts +11 -0
  16. package/dist/components/blocks/icon-button.svelte +38 -0
  17. package/dist/components/blocks/icon-button.svelte.d.ts +11 -0
  18. package/dist/components/blocks/install-prompt.svelte +156 -0
  19. package/dist/components/blocks/install-prompt.svelte.d.ts +19 -0
  20. package/dist/components/blocks/responsive-sheet.svelte +59 -0
  21. package/dist/components/blocks/responsive-sheet.svelte.d.ts +11 -0
  22. package/dist/components/blocks/setting-switch.svelte +30 -0
  23. package/dist/components/blocks/setting-switch.svelte.d.ts +10 -0
  24. package/dist/components/blocks/stat-card.svelte +52 -0
  25. package/dist/components/blocks/stat-card.svelte.d.ts +14 -0
  26. package/dist/components/blocks/top-loading-bar.svelte +54 -0
  27. package/dist/components/blocks/top-loading-bar.svelte.d.ts +6 -0
  28. package/dist/components/ui/accordion/accordion-content.svelte +28 -0
  29. package/dist/components/ui/accordion/accordion-content.svelte.d.ts +4 -0
  30. package/dist/components/ui/accordion/accordion-item.svelte +18 -0
  31. package/dist/components/ui/accordion/accordion-item.svelte.d.ts +4 -0
  32. package/dist/components/ui/accordion/accordion-trigger.svelte +39 -0
  33. package/dist/components/ui/accordion/accordion-trigger.svelte.d.ts +8 -0
  34. package/dist/components/ui/accordion/accordion.svelte +20 -0
  35. package/dist/components/ui/accordion/accordion.svelte.d.ts +4 -0
  36. package/dist/components/ui/accordion/index.d.ts +5 -0
  37. package/dist/components/ui/accordion/index.js +7 -0
  38. package/dist/components/ui/alert/alert-action.svelte +21 -0
  39. package/dist/components/ui/alert/alert-action.svelte.d.ts +5 -0
  40. package/dist/components/ui/alert/alert-description.svelte +24 -0
  41. package/dist/components/ui/alert/alert-description.svelte.d.ts +5 -0
  42. package/dist/components/ui/alert/alert-title.svelte +24 -0
  43. package/dist/components/ui/alert/alert-title.svelte.d.ts +5 -0
  44. package/dist/components/ui/alert/alert.svelte +45 -0
  45. package/dist/components/ui/alert/alert.svelte.d.ts +26 -0
  46. package/dist/components/ui/alert/index.d.ts +6 -0
  47. package/dist/components/ui/alert/index.js +8 -0
  48. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +28 -0
  49. package/dist/components/ui/alert-dialog/alert-dialog-action.svelte.d.ts +9 -0
  50. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +28 -0
  51. package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +9 -0
  52. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +40 -0
  53. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +11 -0
  54. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +21 -0
  55. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte.d.ts +4 -0
  56. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +24 -0
  57. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +5 -0
  58. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +24 -0
  59. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte.d.ts +5 -0
  60. package/dist/components/ui/alert-dialog/alert-dialog-media.svelte +24 -0
  61. package/dist/components/ui/alert-dialog/alert-dialog-media.svelte.d.ts +5 -0
  62. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +21 -0
  63. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +4 -0
  64. package/dist/components/ui/alert-dialog/alert-dialog-portal.svelte +7 -0
  65. package/dist/components/ui/alert-dialog/alert-dialog-portal.svelte.d.ts +3 -0
  66. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +21 -0
  67. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte.d.ts +4 -0
  68. package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte +14 -0
  69. package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte.d.ts +4 -0
  70. package/dist/components/ui/alert-dialog/alert-dialog.svelte +10 -0
  71. package/dist/components/ui/alert-dialog/alert-dialog.svelte.d.ts +3 -0
  72. package/dist/components/ui/alert-dialog/index.d.ts +13 -0
  73. package/dist/components/ui/alert-dialog/index.js +15 -0
  74. package/dist/components/ui/avatar/avatar-badge.svelte +27 -0
  75. package/dist/components/ui/avatar/avatar-badge.svelte.d.ts +5 -0
  76. package/dist/components/ui/avatar/avatar-fallback.svelte +21 -0
  77. package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +4 -0
  78. package/dist/components/ui/avatar/avatar-group-count.svelte +24 -0
  79. package/dist/components/ui/avatar/avatar-group-count.svelte.d.ts +5 -0
  80. package/dist/components/ui/avatar/avatar-group.svelte +24 -0
  81. package/dist/components/ui/avatar/avatar-group.svelte.d.ts +5 -0
  82. package/dist/components/ui/avatar/avatar-image.svelte +18 -0
  83. package/dist/components/ui/avatar/avatar-image.svelte.d.ts +4 -0
  84. package/dist/components/ui/avatar/avatar.svelte +27 -0
  85. package/dist/components/ui/avatar/avatar.svelte.d.ts +7 -0
  86. package/dist/components/ui/avatar/index.d.ts +7 -0
  87. package/dist/components/ui/avatar/index.js +9 -0
  88. package/dist/components/ui/badge/badge.svelte +54 -0
  89. package/dist/components/ui/badge/badge.svelte.d.ts +38 -0
  90. package/dist/components/ui/badge/index.d.ts +2 -0
  91. package/dist/components/ui/badge/index.js +2 -0
  92. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +29 -0
  93. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
  94. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +21 -0
  95. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
  96. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +32 -0
  97. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
  98. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +24 -0
  99. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
  100. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +24 -0
  101. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
  102. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +28 -0
  103. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
  104. package/dist/components/ui/breadcrumb/breadcrumb.svelte +23 -0
  105. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
  106. package/dist/components/ui/breadcrumb/index.d.ts +8 -0
  107. package/dist/components/ui/breadcrumb/index.js +10 -0
  108. package/dist/components/ui/button/button.svelte +93 -0
  109. package/dist/components/ui/button/button.svelte.d.ts +70 -0
  110. package/dist/components/ui/button/index.d.ts +2 -0
  111. package/dist/components/ui/button/index.js +4 -0
  112. package/dist/components/ui/button-group/button-group-separator.svelte +24 -0
  113. package/dist/components/ui/button-group/button-group-separator.svelte.d.ts +13 -0
  114. package/dist/components/ui/button-group/button-group-text.svelte +32 -0
  115. package/dist/components/ui/button-group/button-group-text.svelte.d.ts +11 -0
  116. package/dist/components/ui/button-group/button-group.svelte +49 -0
  117. package/dist/components/ui/button-group/button-group.svelte.d.ts +26 -0
  118. package/dist/components/ui/button-group/index.d.ts +4 -0
  119. package/dist/components/ui/button-group/index.js +6 -0
  120. package/dist/components/ui/calendar/calendar-caption.svelte +83 -0
  121. package/dist/components/ui/calendar/calendar-caption.svelte.d.ts +19 -0
  122. package/dist/components/ui/calendar/calendar-cell.svelte +20 -0
  123. package/dist/components/ui/calendar/calendar-cell.svelte.d.ts +4 -0
  124. package/dist/components/ui/calendar/calendar-day.svelte +34 -0
  125. package/dist/components/ui/calendar/calendar-day.svelte.d.ts +4 -0
  126. package/dist/components/ui/calendar/calendar-grid-body.svelte +13 -0
  127. package/dist/components/ui/calendar/calendar-grid-body.svelte.d.ts +4 -0
  128. package/dist/components/ui/calendar/calendar-grid-head.svelte +13 -0
  129. package/dist/components/ui/calendar/calendar-grid-head.svelte.d.ts +4 -0
  130. package/dist/components/ui/calendar/calendar-grid-row.svelte +17 -0
  131. package/dist/components/ui/calendar/calendar-grid-row.svelte.d.ts +4 -0
  132. package/dist/components/ui/calendar/calendar-grid.svelte +17 -0
  133. package/dist/components/ui/calendar/calendar-grid.svelte.d.ts +4 -0
  134. package/dist/components/ui/calendar/calendar-head-cell.svelte +20 -0
  135. package/dist/components/ui/calendar/calendar-head-cell.svelte.d.ts +4 -0
  136. package/dist/components/ui/calendar/calendar-header.svelte +20 -0
  137. package/dist/components/ui/calendar/calendar-header.svelte.d.ts +4 -0
  138. package/dist/components/ui/calendar/calendar-heading.svelte +17 -0
  139. package/dist/components/ui/calendar/calendar-heading.svelte.d.ts +4 -0
  140. package/dist/components/ui/calendar/calendar-month-select.svelte +50 -0
  141. package/dist/components/ui/calendar/calendar-month-select.svelte.d.ts +4 -0
  142. package/dist/components/ui/calendar/calendar-month.svelte +20 -0
  143. package/dist/components/ui/calendar/calendar-month.svelte.d.ts +5 -0
  144. package/dist/components/ui/calendar/calendar-months.svelte +20 -0
  145. package/dist/components/ui/calendar/calendar-months.svelte.d.ts +5 -0
  146. package/dist/components/ui/calendar/calendar-nav.svelte +23 -0
  147. package/dist/components/ui/calendar/calendar-nav.svelte.d.ts +5 -0
  148. package/dist/components/ui/calendar/calendar-next-button.svelte +41 -0
  149. package/dist/components/ui/calendar/calendar-next-button.svelte.d.ts +8 -0
  150. package/dist/components/ui/calendar/calendar-prev-button.svelte +41 -0
  151. package/dist/components/ui/calendar/calendar-prev-button.svelte.d.ts +8 -0
  152. package/dist/components/ui/calendar/calendar-year-select.svelte +49 -0
  153. package/dist/components/ui/calendar/calendar-year-select.svelte.d.ts +4 -0
  154. package/dist/components/ui/calendar/calendar.svelte +117 -0
  155. package/dist/components/ui/calendar/calendar.svelte.d.ts +21 -0
  156. package/dist/components/ui/calendar/index.d.ts +19 -0
  157. package/dist/components/ui/calendar/index.js +21 -0
  158. package/dist/components/ui/card/card-action.svelte +24 -0
  159. package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
  160. package/dist/components/ui/card/card-content.svelte +21 -0
  161. package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
  162. package/dist/components/ui/card/card-description.svelte +21 -0
  163. package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
  164. package/dist/components/ui/card/card-footer.svelte +24 -0
  165. package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
  166. package/dist/components/ui/card/card-header.svelte +24 -0
  167. package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
  168. package/dist/components/ui/card/card-title.svelte +24 -0
  169. package/dist/components/ui/card/card-title.svelte.d.ts +5 -0
  170. package/dist/components/ui/card/card.svelte +28 -0
  171. package/dist/components/ui/card/card.svelte.d.ts +8 -0
  172. package/dist/components/ui/card/index.d.ts +8 -0
  173. package/dist/components/ui/card/index.js +10 -0
  174. package/dist/components/ui/checkbox/checkbox.svelte +40 -0
  175. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
  176. package/dist/components/ui/checkbox/index.d.ts +2 -0
  177. package/dist/components/ui/checkbox/index.js +4 -0
  178. package/dist/components/ui/command/command-dialog.svelte +50 -0
  179. package/dist/components/ui/command/command-dialog.svelte.d.ts +14 -0
  180. package/dist/components/ui/command/command-empty.svelte +18 -0
  181. package/dist/components/ui/command/command-empty.svelte.d.ts +4 -0
  182. package/dist/components/ui/command/command-group.svelte +36 -0
  183. package/dist/components/ui/command/command-group.svelte.d.ts +7 -0
  184. package/dist/components/ui/command/command-input.svelte +45 -0
  185. package/dist/components/ui/command/command-input.svelte.d.ts +8 -0
  186. package/dist/components/ui/command/command-item.svelte +29 -0
  187. package/dist/components/ui/command/command-item.svelte.d.ts +4 -0
  188. package/dist/components/ui/command/command-link-item.svelte +22 -0
  189. package/dist/components/ui/command/command-link-item.svelte.d.ts +4 -0
  190. package/dist/components/ui/command/command-list.svelte +21 -0
  191. package/dist/components/ui/command/command-list.svelte.d.ts +4 -0
  192. package/dist/components/ui/command/command-loading.svelte +8 -0
  193. package/dist/components/ui/command/command-loading.svelte.d.ts +4 -0
  194. package/dist/components/ui/command/command-separator.svelte +18 -0
  195. package/dist/components/ui/command/command-separator.svelte.d.ts +4 -0
  196. package/dist/components/ui/command/command-shortcut.svelte +24 -0
  197. package/dist/components/ui/command/command-shortcut.svelte.d.ts +5 -0
  198. package/dist/components/ui/command/command.svelte +29 -0
  199. package/dist/components/ui/command/command.svelte.d.ts +8 -0
  200. package/dist/components/ui/command/index.d.ts +12 -0
  201. package/dist/components/ui/command/index.js +14 -0
  202. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +44 -0
  203. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +10 -0
  204. package/dist/components/ui/context-menu/context-menu-content.svelte +32 -0
  205. package/dist/components/ui/context-menu/context-menu-content.svelte.d.ts +10 -0
  206. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +25 -0
  207. package/dist/components/ui/context-menu/context-menu-group-heading.svelte.d.ts +7 -0
  208. package/dist/components/ui/context-menu/context-menu-group.svelte +12 -0
  209. package/dist/components/ui/context-menu/context-menu-group.svelte.d.ts +4 -0
  210. package/dist/components/ui/context-menu/context-menu-item.svelte +28 -0
  211. package/dist/components/ui/context-menu/context-menu-item.svelte.d.ts +8 -0
  212. package/dist/components/ui/context-menu/context-menu-label.svelte +28 -0
  213. package/dist/components/ui/context-menu/context-menu-label.svelte.d.ts +8 -0
  214. package/dist/components/ui/context-menu/context-menu-portal.svelte +7 -0
  215. package/dist/components/ui/context-menu/context-menu-portal.svelte.d.ts +3 -0
  216. package/dist/components/ui/context-menu/context-menu-radio-group.svelte +16 -0
  217. package/dist/components/ui/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
  218. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +38 -0
  219. package/dist/components/ui/context-menu/context-menu-radio-item.svelte.d.ts +8 -0
  220. package/dist/components/ui/context-menu/context-menu-separator.svelte +18 -0
  221. package/dist/components/ui/context-menu/context-menu-separator.svelte.d.ts +4 -0
  222. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +24 -0
  223. package/dist/components/ui/context-menu/context-menu-shortcut.svelte.d.ts +5 -0
  224. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +35 -0
  225. package/dist/components/ui/context-menu/context-menu-sub-content.svelte.d.ts +10 -0
  226. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +30 -0
  227. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +8 -0
  228. package/dist/components/ui/context-menu/context-menu-sub.svelte +8 -0
  229. package/dist/components/ui/context-menu/context-menu-sub.svelte.d.ts +3 -0
  230. package/dist/components/ui/context-menu/context-menu-trigger.svelte +18 -0
  231. package/dist/components/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
  232. package/dist/components/ui/context-menu/context-menu.svelte +10 -0
  233. package/dist/components/ui/context-menu/context-menu.svelte.d.ts +3 -0
  234. package/dist/components/ui/context-menu/index.d.ts +17 -0
  235. package/dist/components/ui/context-menu/index.js +19 -0
  236. package/dist/components/ui/dialog/dialog-close.svelte +16 -0
  237. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
  238. package/dist/components/ui/dialog/dialog-content.svelte +54 -0
  239. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +12 -0
  240. package/dist/components/ui/dialog/dialog-description.svelte +21 -0
  241. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
  242. package/dist/components/ui/dialog/dialog-footer.svelte +36 -0
  243. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +8 -0
  244. package/dist/components/ui/dialog/dialog-header.svelte +21 -0
  245. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
  246. package/dist/components/ui/dialog/dialog-overlay.svelte +21 -0
  247. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
  248. package/dist/components/ui/dialog/dialog-portal.svelte +7 -0
  249. package/dist/components/ui/dialog/dialog-portal.svelte.d.ts +3 -0
  250. package/dist/components/ui/dialog/dialog-title.svelte +18 -0
  251. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
  252. package/dist/components/ui/dialog/dialog-trigger.svelte +16 -0
  253. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
  254. package/dist/components/ui/dialog/dialog.svelte +8 -0
  255. package/dist/components/ui/dialog/dialog.svelte.d.ts +3 -0
  256. package/dist/components/ui/dialog/index.d.ts +11 -0
  257. package/dist/components/ui/dialog/index.js +13 -0
  258. package/dist/components/ui/drawer/drawer-close.svelte +8 -0
  259. package/dist/components/ui/drawer/drawer-close.svelte.d.ts +4 -0
  260. package/dist/components/ui/drawer/drawer-content.svelte +41 -0
  261. package/dist/components/ui/drawer/drawer-content.svelte.d.ts +10 -0
  262. package/dist/components/ui/drawer/drawer-description.svelte +18 -0
  263. package/dist/components/ui/drawer/drawer-description.svelte.d.ts +4 -0
  264. package/dist/components/ui/drawer/drawer-footer.svelte +21 -0
  265. package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +5 -0
  266. package/dist/components/ui/drawer/drawer-header.svelte +24 -0
  267. package/dist/components/ui/drawer/drawer-header.svelte.d.ts +5 -0
  268. package/dist/components/ui/drawer/drawer-nested.svelte +21 -0
  269. package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +3 -0
  270. package/dist/components/ui/drawer/drawer-overlay.svelte +21 -0
  271. package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +4 -0
  272. package/dist/components/ui/drawer/drawer-portal.svelte +7 -0
  273. package/dist/components/ui/drawer/drawer-portal.svelte.d.ts +3 -0
  274. package/dist/components/ui/drawer/drawer-title.svelte +18 -0
  275. package/dist/components/ui/drawer/drawer-title.svelte.d.ts +4 -0
  276. package/dist/components/ui/drawer/drawer-trigger.svelte +8 -0
  277. package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +4 -0
  278. package/dist/components/ui/drawer/drawer.svelte +21 -0
  279. package/dist/components/ui/drawer/drawer.svelte.d.ts +3 -0
  280. package/dist/components/ui/drawer/index.d.ts +13 -0
  281. package/dist/components/ui/drawer/index.js +15 -0
  282. package/dist/components/ui/drawer/inside.d.ts +4 -0
  283. package/dist/components/ui/drawer/inside.js +10 -0
  284. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  285. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +4 -0
  286. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +47 -0
  287. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  288. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +35 -0
  289. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -0
  290. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +26 -0
  291. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
  292. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +14 -0
  293. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
  294. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +28 -0
  295. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
  296. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +28 -0
  297. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  298. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  299. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte.d.ts +3 -0
  300. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  301. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
  302. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +37 -0
  303. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
  304. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +18 -0
  305. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
  306. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +24 -0
  307. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
  308. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +35 -0
  309. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +10 -0
  310. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +30 -0
  311. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  312. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +10 -0
  313. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte.d.ts +3 -0
  314. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +14 -0
  315. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
  316. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +10 -0
  317. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +3 -0
  318. package/dist/components/ui/dropdown-menu/index.d.ts +18 -0
  319. package/dist/components/ui/dropdown-menu/index.js +18 -0
  320. package/dist/components/ui/empty/empty-content.svelte +24 -0
  321. package/dist/components/ui/empty/empty-content.svelte.d.ts +5 -0
  322. package/dist/components/ui/empty/empty-description.svelte +24 -0
  323. package/dist/components/ui/empty/empty-description.svelte.d.ts +5 -0
  324. package/dist/components/ui/empty/empty-header.svelte +21 -0
  325. package/dist/components/ui/empty/empty-header.svelte.d.ts +5 -0
  326. package/dist/components/ui/empty/empty-media.svelte +46 -0
  327. package/dist/components/ui/empty/empty-media.svelte.d.ts +26 -0
  328. package/dist/components/ui/empty/empty-title.svelte +21 -0
  329. package/dist/components/ui/empty/empty-title.svelte.d.ts +5 -0
  330. package/dist/components/ui/empty/empty.svelte +24 -0
  331. package/dist/components/ui/empty/empty.svelte.d.ts +5 -0
  332. package/dist/components/ui/empty/index.d.ts +7 -0
  333. package/dist/components/ui/empty/index.js +9 -0
  334. package/dist/components/ui/field/field-content.svelte +24 -0
  335. package/dist/components/ui/field/field-content.svelte.d.ts +5 -0
  336. package/dist/components/ui/field/field-description.svelte +26 -0
  337. package/dist/components/ui/field/field-description.svelte.d.ts +5 -0
  338. package/dist/components/ui/field/field-error.svelte +61 -0
  339. package/dist/components/ui/field/field-error.svelte.d.ts +12 -0
  340. package/dist/components/ui/field/field-group.svelte +24 -0
  341. package/dist/components/ui/field/field-group.svelte.d.ts +5 -0
  342. package/dist/components/ui/field/field-label.svelte +26 -0
  343. package/dist/components/ui/field/field-label.svelte.d.ts +10 -0
  344. package/dist/components/ui/field/field-legend.svelte +28 -0
  345. package/dist/components/ui/field/field-legend.svelte.d.ts +8 -0
  346. package/dist/components/ui/field/field-separator.svelte +39 -0
  347. package/dist/components/ui/field/field-separator.svelte.d.ts +9 -0
  348. package/dist/components/ui/field/field-set.svelte +24 -0
  349. package/dist/components/ui/field/field-set.svelte.d.ts +5 -0
  350. package/dist/components/ui/field/field-title.svelte +24 -0
  351. package/dist/components/ui/field/field-title.svelte.d.ts +5 -0
  352. package/dist/components/ui/field/field.svelte +50 -0
  353. package/dist/components/ui/field/field.svelte.d.ts +29 -0
  354. package/dist/components/ui/field/index.d.ts +11 -0
  355. package/dist/components/ui/field/index.js +13 -0
  356. package/dist/components/ui/input/index.d.ts +2 -0
  357. package/dist/components/ui/input/index.js +4 -0
  358. package/dist/components/ui/input/input.svelte +69 -0
  359. package/dist/components/ui/input/input.svelte.d.ts +13 -0
  360. package/dist/components/ui/input-group/index.d.ts +7 -0
  361. package/dist/components/ui/input-group/index.js +9 -0
  362. package/dist/components/ui/input-group/input-group-addon.svelte +58 -0
  363. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +32 -0
  364. package/dist/components/ui/input-group/input-group-button.svelte +53 -0
  365. package/dist/components/ui/input-group/input-group-button.svelte.d.ts +32 -0
  366. package/dist/components/ui/input-group/input-group-input.svelte +24 -0
  367. package/dist/components/ui/input-group/input-group-input.svelte.d.ts +11 -0
  368. package/dist/components/ui/input-group/input-group-text.svelte +23 -0
  369. package/dist/components/ui/input-group/input-group-text.svelte.d.ts +5 -0
  370. package/dist/components/ui/input-group/input-group-textarea.svelte +24 -0
  371. package/dist/components/ui/input-group/input-group-textarea.svelte.d.ts +3 -0
  372. package/dist/components/ui/input-group/input-group.svelte +25 -0
  373. package/dist/components/ui/input-group/input-group.svelte.d.ts +5 -0
  374. package/dist/components/ui/input-otp/index.d.ts +5 -0
  375. package/dist/components/ui/input-otp/index.js +5 -0
  376. package/dist/components/ui/input-otp/input-otp-group.svelte +24 -0
  377. package/dist/components/ui/input-otp/input-otp-group.svelte.d.ts +5 -0
  378. package/dist/components/ui/input-otp/input-otp-separator.svelte +31 -0
  379. package/dist/components/ui/input-otp/input-otp-separator.svelte.d.ts +5 -0
  380. package/dist/components/ui/input-otp/input-otp-slot.svelte +38 -0
  381. package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +4 -0
  382. package/dist/components/ui/input-otp/input-otp.svelte +25 -0
  383. package/dist/components/ui/input-otp/input-otp.svelte.d.ts +4 -0
  384. package/dist/components/ui/label/index.d.ts +2 -0
  385. package/dist/components/ui/label/index.js +4 -0
  386. package/dist/components/ui/label/label.svelte +21 -0
  387. package/dist/components/ui/label/label.svelte.d.ts +4 -0
  388. package/dist/components/ui/menubar/index.d.ts +18 -0
  389. package/dist/components/ui/menubar/index.js +20 -0
  390. package/dist/components/ui/menubar/menubar-checkbox-item.svelte +49 -0
  391. package/dist/components/ui/menubar/menubar-checkbox-item.svelte.d.ts +10 -0
  392. package/dist/components/ui/menubar/menubar-content.svelte +37 -0
  393. package/dist/components/ui/menubar/menubar-content.svelte.d.ts +10 -0
  394. package/dist/components/ui/menubar/menubar-group-heading.svelte +23 -0
  395. package/dist/components/ui/menubar/menubar-group-heading.svelte.d.ts +8 -0
  396. package/dist/components/ui/menubar/menubar-group.svelte +12 -0
  397. package/dist/components/ui/menubar/menubar-group.svelte.d.ts +7 -0
  398. package/dist/components/ui/menubar/menubar-item.svelte +28 -0
  399. package/dist/components/ui/menubar/menubar-item.svelte.d.ts +8 -0
  400. package/dist/components/ui/menubar/menubar-label.svelte +26 -0
  401. package/dist/components/ui/menubar/menubar-label.svelte.d.ts +8 -0
  402. package/dist/components/ui/menubar/menubar-menu.svelte +7 -0
  403. package/dist/components/ui/menubar/menubar-menu.svelte.d.ts +3 -0
  404. package/dist/components/ui/menubar/menubar-portal.svelte +7 -0
  405. package/dist/components/ui/menubar/menubar-portal.svelte.d.ts +3 -0
  406. package/dist/components/ui/menubar/menubar-radio-group.svelte +16 -0
  407. package/dist/components/ui/menubar/menubar-radio-group.svelte.d.ts +4 -0
  408. package/dist/components/ui/menubar/menubar-radio-item.svelte +40 -0
  409. package/dist/components/ui/menubar/menubar-radio-item.svelte.d.ts +8 -0
  410. package/dist/components/ui/menubar/menubar-separator.svelte +18 -0
  411. package/dist/components/ui/menubar/menubar-separator.svelte.d.ts +4 -0
  412. package/dist/components/ui/menubar/menubar-shortcut.svelte +24 -0
  413. package/dist/components/ui/menubar/menubar-shortcut.svelte.d.ts +5 -0
  414. package/dist/components/ui/menubar/menubar-sub-content.svelte +33 -0
  415. package/dist/components/ui/menubar/menubar-sub-content.svelte.d.ts +10 -0
  416. package/dist/components/ui/menubar/menubar-sub-trigger.svelte +30 -0
  417. package/dist/components/ui/menubar/menubar-sub-trigger.svelte.d.ts +8 -0
  418. package/dist/components/ui/menubar/menubar-sub.svelte +8 -0
  419. package/dist/components/ui/menubar/menubar-sub.svelte.d.ts +4 -0
  420. package/dist/components/ui/menubar/menubar-trigger.svelte +21 -0
  421. package/dist/components/ui/menubar/menubar-trigger.svelte.d.ts +4 -0
  422. package/dist/components/ui/menubar/menubar.svelte +21 -0
  423. package/dist/components/ui/menubar/menubar.svelte.d.ts +4 -0
  424. package/dist/components/ui/pagination/index.d.ts +14 -0
  425. package/dist/components/ui/pagination/index.js +16 -0
  426. package/dist/components/ui/pagination/pagination-content.svelte +21 -0
  427. package/dist/components/ui/pagination/pagination-content.svelte.d.ts +5 -0
  428. package/dist/components/ui/pagination/pagination-ellipsis.svelte +28 -0
  429. package/dist/components/ui/pagination/pagination-ellipsis.svelte.d.ts +5 -0
  430. package/dist/components/ui/pagination/pagination-item.svelte +15 -0
  431. package/dist/components/ui/pagination/pagination-item.svelte.d.ts +5 -0
  432. package/dist/components/ui/pagination/pagination-link.svelte +46 -0
  433. package/dist/components/ui/pagination/pagination-link.svelte.d.ts +9 -0
  434. package/dist/components/ui/pagination/pagination-next-button.svelte +33 -0
  435. package/dist/components/ui/pagination/pagination-next-button.svelte.d.ts +4 -0
  436. package/dist/components/ui/pagination/pagination-next.svelte +27 -0
  437. package/dist/components/ui/pagination/pagination-next.svelte.d.ts +4 -0
  438. package/dist/components/ui/pagination/pagination-prev-button.svelte +33 -0
  439. package/dist/components/ui/pagination/pagination-prev-button.svelte.d.ts +4 -0
  440. package/dist/components/ui/pagination/pagination-previous.svelte +27 -0
  441. package/dist/components/ui/pagination/pagination-previous.svelte.d.ts +4 -0
  442. package/dist/components/ui/pagination/pagination.svelte +28 -0
  443. package/dist/components/ui/pagination/pagination.svelte.d.ts +4 -0
  444. package/dist/components/ui/popover/index.d.ts +9 -0
  445. package/dist/components/ui/popover/index.js +11 -0
  446. package/dist/components/ui/popover/popover-close.svelte +8 -0
  447. package/dist/components/ui/popover/popover-close.svelte.d.ts +4 -0
  448. package/dist/components/ui/popover/popover-content.svelte +33 -0
  449. package/dist/components/ui/popover/popover-content.svelte.d.ts +10 -0
  450. package/dist/components/ui/popover/popover-description.svelte +21 -0
  451. package/dist/components/ui/popover/popover-description.svelte.d.ts +5 -0
  452. package/dist/components/ui/popover/popover-header.svelte +21 -0
  453. package/dist/components/ui/popover/popover-header.svelte.d.ts +5 -0
  454. package/dist/components/ui/popover/popover-portal.svelte +7 -0
  455. package/dist/components/ui/popover/popover-portal.svelte.d.ts +3 -0
  456. package/dist/components/ui/popover/popover-title.svelte +21 -0
  457. package/dist/components/ui/popover/popover-title.svelte.d.ts +5 -0
  458. package/dist/components/ui/popover/popover-trigger.svelte +18 -0
  459. package/dist/components/ui/popover/popover-trigger.svelte.d.ts +4 -0
  460. package/dist/components/ui/popover/popover.svelte +8 -0
  461. package/dist/components/ui/popover/popover.svelte.d.ts +3 -0
  462. package/dist/components/ui/progress/index.d.ts +2 -0
  463. package/dist/components/ui/progress/index.js +4 -0
  464. package/dist/components/ui/progress/progress.svelte +31 -0
  465. package/dist/components/ui/progress/progress.svelte.d.ts +4 -0
  466. package/dist/components/ui/radio-group/index.d.ts +3 -0
  467. package/dist/components/ui/radio-group/index.js +5 -0
  468. package/dist/components/ui/radio-group/radio-group-item.svelte +35 -0
  469. package/dist/components/ui/radio-group/radio-group-item.svelte.d.ts +4 -0
  470. package/dist/components/ui/radio-group/radio-group.svelte +20 -0
  471. package/dist/components/ui/radio-group/radio-group.svelte.d.ts +4 -0
  472. package/dist/components/ui/range-calendar/index.d.ts +19 -0
  473. package/dist/components/ui/range-calendar/index.js +21 -0
  474. package/dist/components/ui/range-calendar/range-calendar-caption.svelte +83 -0
  475. package/dist/components/ui/range-calendar/range-calendar-caption.svelte.d.ts +19 -0
  476. package/dist/components/ui/range-calendar/range-calendar-cell.svelte +20 -0
  477. package/dist/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
  478. package/dist/components/ui/range-calendar/range-calendar-day.svelte +37 -0
  479. package/dist/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
  480. package/dist/components/ui/range-calendar/range-calendar-grid-body.svelte +10 -0
  481. package/dist/components/ui/range-calendar/range-calendar-grid-body.svelte.d.ts +4 -0
  482. package/dist/components/ui/range-calendar/range-calendar-grid-head.svelte +10 -0
  483. package/dist/components/ui/range-calendar/range-calendar-grid-head.svelte.d.ts +4 -0
  484. package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte +17 -0
  485. package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
  486. package/dist/components/ui/range-calendar/range-calendar-grid.svelte +17 -0
  487. package/dist/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
  488. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +20 -0
  489. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
  490. package/dist/components/ui/range-calendar/range-calendar-header.svelte +20 -0
  491. package/dist/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
  492. package/dist/components/ui/range-calendar/range-calendar-heading.svelte +17 -0
  493. package/dist/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
  494. package/dist/components/ui/range-calendar/range-calendar-month-select.svelte +50 -0
  495. package/dist/components/ui/range-calendar/range-calendar-month-select.svelte.d.ts +4 -0
  496. package/dist/components/ui/range-calendar/range-calendar-month.svelte +16 -0
  497. package/dist/components/ui/range-calendar/range-calendar-month.svelte.d.ts +5 -0
  498. package/dist/components/ui/range-calendar/range-calendar-months.svelte +20 -0
  499. package/dist/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
  500. package/dist/components/ui/range-calendar/range-calendar-nav.svelte +23 -0
  501. package/dist/components/ui/range-calendar/range-calendar-nav.svelte.d.ts +5 -0
  502. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +41 -0
  503. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +8 -0
  504. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +41 -0
  505. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +8 -0
  506. package/dist/components/ui/range-calendar/range-calendar-year-select.svelte +50 -0
  507. package/dist/components/ui/range-calendar/range-calendar-year-select.svelte.d.ts +4 -0
  508. package/dist/components/ui/range-calendar/range-calendar.svelte +127 -0
  509. package/dist/components/ui/range-calendar/range-calendar.svelte.d.ts +20 -0
  510. package/dist/components/ui/resizable/index.d.ts +4 -0
  511. package/dist/components/ui/resizable/index.js +6 -0
  512. package/dist/components/ui/resizable/resizable-handle.svelte +28 -0
  513. package/dist/components/ui/resizable/resizable-handle.svelte.d.ts +8 -0
  514. package/dist/components/ui/resizable/resizable-pane-group.svelte +22 -0
  515. package/dist/components/ui/resizable/resizable-pane-group.svelte.d.ts +7 -0
  516. package/dist/components/ui/scroll-area/index.d.ts +3 -0
  517. package/dist/components/ui/scroll-area/index.js +5 -0
  518. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  519. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
  520. package/dist/components/ui/scroll-area/scroll-area.svelte +45 -0
  521. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +11 -0
  522. package/dist/components/ui/select/index.d.ts +13 -0
  523. package/dist/components/ui/select/index.js +15 -0
  524. package/dist/components/ui/select/select-content.svelte +47 -0
  525. package/dist/components/ui/select/select-content.svelte.d.ts +11 -0
  526. package/dist/components/ui/select/select-group-heading.svelte +22 -0
  527. package/dist/components/ui/select/select-group-heading.svelte.d.ts +10 -0
  528. package/dist/components/ui/select/select-group.svelte +18 -0
  529. package/dist/components/ui/select/select-group.svelte.d.ts +4 -0
  530. package/dist/components/ui/select/select-item.svelte +45 -0
  531. package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
  532. package/dist/components/ui/select/select-label.svelte +21 -0
  533. package/dist/components/ui/select/select-label.svelte.d.ts +6 -0
  534. package/dist/components/ui/select/select-portal.svelte +7 -0
  535. package/dist/components/ui/select/select-portal.svelte.d.ts +3 -0
  536. package/dist/components/ui/select/select-scroll-down-button.svelte +24 -0
  537. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
  538. package/dist/components/ui/select/select-scroll-up-button.svelte +24 -0
  539. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
  540. package/dist/components/ui/select/select-separator.svelte +19 -0
  541. package/dist/components/ui/select/select-separator.svelte.d.ts +4 -0
  542. package/dist/components/ui/select/select-trigger.svelte +30 -0
  543. package/dist/components/ui/select/select-trigger.svelte.d.ts +8 -0
  544. package/dist/components/ui/select/select-value.svelte +8 -0
  545. package/dist/components/ui/select/select-value.svelte.d.ts +4 -0
  546. package/dist/components/ui/select/select.svelte +11 -0
  547. package/dist/components/ui/select/select.svelte.d.ts +3 -0
  548. package/dist/components/ui/separator/index.d.ts +2 -0
  549. package/dist/components/ui/separator/index.js +4 -0
  550. package/dist/components/ui/separator/separator.svelte +22 -0
  551. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  552. package/dist/components/ui/sheet/index.d.ts +11 -0
  553. package/dist/components/ui/sheet/index.js +13 -0
  554. package/dist/components/ui/sheet/sheet-close.svelte +8 -0
  555. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
  556. package/dist/components/ui/sheet/sheet-content.svelte +61 -0
  557. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +14 -0
  558. package/dist/components/ui/sheet/sheet-description.svelte +18 -0
  559. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
  560. package/dist/components/ui/sheet/sheet-footer.svelte +21 -0
  561. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
  562. package/dist/components/ui/sheet/sheet-header.svelte +21 -0
  563. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
  564. package/dist/components/ui/sheet/sheet-overlay.svelte +21 -0
  565. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
  566. package/dist/components/ui/sheet/sheet-portal.svelte +7 -0
  567. package/dist/components/ui/sheet/sheet-portal.svelte.d.ts +3 -0
  568. package/dist/components/ui/sheet/sheet-title.svelte +18 -0
  569. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
  570. package/dist/components/ui/sheet/sheet-trigger.svelte +8 -0
  571. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
  572. package/dist/components/ui/sheet/sheet.svelte +8 -0
  573. package/dist/components/ui/sheet/sheet.svelte.d.ts +3 -0
  574. package/dist/components/ui/sidebar/constants.d.ts +6 -0
  575. package/dist/components/ui/sidebar/constants.js +6 -0
  576. package/dist/components/ui/sidebar/context.svelte.d.ts +42 -0
  577. package/dist/components/ui/sidebar/context.svelte.js +54 -0
  578. package/dist/components/ui/sidebar/index.d.ts +25 -0
  579. package/dist/components/ui/sidebar/index.js +27 -0
  580. package/dist/components/ui/sidebar/sidebar-content.svelte +25 -0
  581. package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +5 -0
  582. package/dist/components/ui/sidebar/sidebar-footer.svelte +22 -0
  583. package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +5 -0
  584. package/dist/components/ui/sidebar/sidebar-group-action.svelte +34 -0
  585. package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +11 -0
  586. package/dist/components/ui/sidebar/sidebar-group-content.svelte +22 -0
  587. package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +5 -0
  588. package/dist/components/ui/sidebar/sidebar-group-label.svelte +34 -0
  589. package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +11 -0
  590. package/dist/components/ui/sidebar/sidebar-group.svelte +22 -0
  591. package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +5 -0
  592. package/dist/components/ui/sidebar/sidebar-header.svelte +22 -0
  593. package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +5 -0
  594. package/dist/components/ui/sidebar/sidebar-input.svelte +22 -0
  595. package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +11 -0
  596. package/dist/components/ui/sidebar/sidebar-inset.svelte +24 -0
  597. package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +5 -0
  598. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -0
  599. package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +12 -0
  600. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +25 -0
  601. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +5 -0
  602. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +113 -0
  603. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +51 -0
  604. package/dist/components/ui/sidebar/sidebar-menu-item.svelte +22 -0
  605. package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +5 -0
  606. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +37 -0
  607. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
  608. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +40 -0
  609. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +13 -0
  610. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +22 -0
  611. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +5 -0
  612. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +26 -0
  613. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +5 -0
  614. package/dist/components/ui/sidebar/sidebar-menu.svelte +25 -0
  615. package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +5 -0
  616. package/dist/components/ui/sidebar/sidebar-provider.svelte +55 -0
  617. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +9 -0
  618. package/dist/components/ui/sidebar/sidebar-rail.svelte +41 -0
  619. package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +5 -0
  620. package/dist/components/ui/sidebar/sidebar-separator.svelte +20 -0
  621. package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +13 -0
  622. package/dist/components/ui/sidebar/sidebar-trigger.svelte +38 -0
  623. package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +8 -0
  624. package/dist/components/ui/sidebar/sidebar.svelte +108 -0
  625. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +10 -0
  626. package/dist/components/ui/skeleton/index.d.ts +2 -0
  627. package/dist/components/ui/skeleton/index.js +4 -0
  628. package/dist/components/ui/skeleton/skeleton.svelte +18 -0
  629. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +5 -0
  630. package/dist/components/ui/slider/index.d.ts +2 -0
  631. package/dist/components/ui/slider/index.js +4 -0
  632. package/dist/components/ui/slider/slider.svelte +53 -0
  633. package/dist/components/ui/slider/slider.svelte.d.ts +5 -0
  634. package/dist/components/ui/sonner/index.d.ts +1 -0
  635. package/dist/components/ui/sonner/index.js +1 -0
  636. package/dist/components/ui/sonner/sonner.svelte +66 -0
  637. package/dist/components/ui/sonner/sonner.svelte.d.ts +4 -0
  638. package/dist/components/ui/spinner/index.d.ts +1 -0
  639. package/dist/components/ui/spinner/index.js +1 -0
  640. package/dist/components/ui/spinner/spinner.svelte +30 -0
  641. package/dist/components/ui/spinner/spinner.svelte.d.ts +4 -0
  642. package/dist/components/ui/switch/index.d.ts +2 -0
  643. package/dist/components/ui/switch/index.js +4 -0
  644. package/dist/components/ui/switch/switch.svelte +35 -0
  645. package/dist/components/ui/switch/switch.svelte.d.ts +8 -0
  646. package/dist/components/ui/table/index.d.ts +9 -0
  647. package/dist/components/ui/table/index.js +11 -0
  648. package/dist/components/ui/table/table-body.svelte +21 -0
  649. package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
  650. package/dist/components/ui/table/table-caption.svelte +21 -0
  651. package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
  652. package/dist/components/ui/table/table-cell.svelte +24 -0
  653. package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
  654. package/dist/components/ui/table/table-footer.svelte +24 -0
  655. package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
  656. package/dist/components/ui/table/table-head.svelte +24 -0
  657. package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
  658. package/dist/components/ui/table/table-header.svelte +21 -0
  659. package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
  660. package/dist/components/ui/table/table-row.svelte +24 -0
  661. package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
  662. package/dist/components/ui/table/table.svelte +23 -0
  663. package/dist/components/ui/table/table.svelte.d.ts +5 -0
  664. package/dist/components/ui/tabs/index.d.ts +5 -0
  665. package/dist/components/ui/tabs/index.js +7 -0
  666. package/dist/components/ui/tabs/tabs-content.svelte +18 -0
  667. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
  668. package/dist/components/ui/tabs/tabs-list.svelte +43 -0
  669. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +25 -0
  670. package/dist/components/ui/tabs/tabs-trigger.svelte +24 -0
  671. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  672. package/dist/components/ui/tabs/tabs.svelte +20 -0
  673. package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
  674. package/dist/components/ui/textarea/index.d.ts +2 -0
  675. package/dist/components/ui/textarea/index.js +4 -0
  676. package/dist/components/ui/textarea/textarea.svelte +23 -0
  677. package/dist/components/ui/textarea/textarea.svelte.d.ts +5 -0
  678. package/dist/components/ui/toggle/index.d.ts +3 -0
  679. package/dist/components/ui/toggle/index.js +5 -0
  680. package/dist/components/ui/toggle/toggle.svelte +53 -0
  681. package/dist/components/ui/toggle/toggle.svelte.d.ts +43 -0
  682. package/dist/components/ui/toggle-group/index.d.ts +3 -0
  683. package/dist/components/ui/toggle-group/index.js +5 -0
  684. package/dist/components/ui/toggle-group/toggle-group-item.svelte +40 -0
  685. package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +6 -0
  686. package/dist/components/ui/toggle-group/toggle-group.svelte +77 -0
  687. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +17 -0
  688. package/dist/components/ui/tooltip/index.d.ts +6 -0
  689. package/dist/components/ui/tooltip/index.js +8 -0
  690. package/dist/components/ui/tooltip/tooltip-content.svelte +50 -0
  691. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +11 -0
  692. package/dist/components/ui/tooltip/tooltip-portal.svelte +7 -0
  693. package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +4 -0
  694. package/dist/components/ui/tooltip/tooltip-provider.svelte +8 -0
  695. package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +4 -0
  696. package/dist/components/ui/tooltip/tooltip-trigger.svelte +10 -0
  697. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +25 -0
  698. package/dist/components/ui/tooltip/tooltip.svelte +8 -0
  699. package/dist/components/ui/tooltip/tooltip.svelte.d.ts +25 -0
  700. package/dist/haptics.d.ts +8 -0
  701. package/dist/haptics.js +11 -0
  702. package/dist/hooks/is-mobile.svelte.d.ts +4 -0
  703. package/dist/hooks/is-mobile.svelte.js +7 -0
  704. package/dist/page-title.svelte.d.ts +31 -0
  705. package/dist/page-title.svelte.js +33 -0
  706. package/dist/theme.css +440 -0
  707. package/dist/toast.d.ts +43 -0
  708. package/dist/toast.js +85 -0
  709. package/dist/utils.d.ts +11 -0
  710. package/dist/utils.js +1 -0
  711. package/package.json +109 -5
package/README.md CHANGED
@@ -1,3 +1,147 @@
1
- # Temporary Holding Version
1
+ # @orochibraru/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
+ Svelte 5 components and the theme shared by OpenCount, LocalAssistant, Homerun,
4
+ Sergio's, Nuvio Web and Penombre: the shadcn-svelte primitives (vega style) as
5
+ these apps customised them, a handful of app-level blocks, and the oklch theme
6
+ they all draw from. One package instead of six drifting copies.
7
+
8
+ Built for SvelteKit 3, Svelte 5 runes and Tailwind CSS v4.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ bun add -d @orochibraru/ui
14
+ ```
15
+
16
+ It goes in `devDependencies`: the app bundles it, so nothing from it is needed
17
+ at runtime next to the compiled server.
18
+
19
+ ## Set up the stylesheet
20
+
21
+ Import the theme right after Tailwind in the app's root stylesheet:
22
+
23
+ ```css
24
+ @import "tailwindcss";
25
+ @import "@orochibraru/ui/theme.css";
26
+ ```
27
+
28
+ The theme brings the design tokens, the `data-*` state variants the primitives
29
+ style with, `tw-animate-css`, and an `@source` that makes Tailwind scan the
30
+ package, so no other configuration is needed.
31
+
32
+ ## Use
33
+
34
+ Every primitive is a subpath, with the same exports shadcn-svelte generates:
35
+
36
+ ```svelte
37
+ <script lang="ts">
38
+ import EmptyState from "@orochibraru/ui/blocks/empty-state";
39
+ import { Button } from "@orochibraru/ui/button";
40
+ import * as Dialog from "@orochibraru/ui/dialog";
41
+ import { cn } from "@orochibraru/ui/utils";
42
+ </script>
43
+ ```
44
+
45
+ Moving an app over is a rewrite of its imports:
46
+ `#lib/components/ui/button/index.js` becomes `@orochibraru/ui/button`.
47
+
48
+ Primitives: accordion, alert, alert-dialog, avatar, badge, breadcrumb, button,
49
+ button-group, calendar, card, checkbox, command, context-menu, dialog, drawer,
50
+ dropdown-menu, empty, field, input, input-group, input-otp, label, menubar,
51
+ pagination, popover, progress, radio-group, range-calendar, resizable,
52
+ scroll-area, select, separator, sheet, sidebar, skeleton, slider, sonner,
53
+ spinner, switch, table, tabs, textarea, toggle, toggle-group, tooltip.
54
+
55
+ `input` turns password managers off on fields that don't set `autocomplete`, so
56
+ a search box never gets a login suggestion.
57
+
58
+ ## Blocks
59
+
60
+ Under `@orochibraru/ui/blocks/<name>`:
61
+
62
+ | Block | What it does |
63
+ | ------------------ | --------------------------------------------------------------------------- |
64
+ | `auth-shell` | Centered sign-in layout: heading, optional `brand` and `footer` snippets. |
65
+ | `copy-field` | Monospace value with a copy button and a promise toast. |
66
+ | `document-title` | `<title>` from the page title, suffixed with `appName`. |
67
+ | `empty-state` | Icon, title, subtitle and an action slot for an empty list. |
68
+ | `error-page` | Status, message and error id from `page`, with a link to `homeHref`. |
69
+ | `fab` | Floating action button above the phone tab bar, with a haptic tap. |
70
+ | `icon-button` | Round icon button with a tooltip that doubles as its accessible name. |
71
+ | `install-prompt` | One-time PWA install sheet: native prompt, iOS steps or browser menu steps. |
72
+ | `responsive-sheet` | A dialog on desktop, a bottom drawer under 768px. |
73
+ | `setting-switch` | Labelled switch row for settings forms, posting `name=true` when on. |
74
+ | `stat-card` | Glass card with an icon, a value and a hint, optionally a link. |
75
+ | `top-loading-bar` | Progress bar during SvelteKit navigations, safe-area aware. |
76
+
77
+ Blocks with built-in copy (`copy-field`, `error-page`, `install-prompt`) take a
78
+ `messages` prop. Its keys override the English defaults one by one, which is how
79
+ a French or translated app uses them. Blocks never set the page title: the app
80
+ calls `setPageTitle` itself.
81
+
82
+ `icon-button`, and `copy-field` through it, need a `Tooltip.Provider` above
83
+ them, which apps put in their root layout.
84
+
85
+ ## Modules
86
+
87
+ - `@orochibraru/ui/utils`: `cn` and the shadcn-svelte prop helper types.
88
+ - `@orochibraru/ui/toast`: `enhanceToast` and `saveToast` narrate a form action
89
+ through one promise toast, `toastError` turns anything thrown into a message.
90
+ Form updates keep `reset: false` by default so `bind:value` fields survive a
91
+ submit.
92
+ - `@orochibraru/ui/page-title`: `providePageTitle` once in the root layout,
93
+ `setPageTitle` in pages, `usePageTitle` in app bars.
94
+ - `@orochibraru/ui/appearance`: `applyAppearance` and `appearanceBootScript`
95
+ apply a saved accent, theme, dark variant, font and corner style to `<html>`,
96
+ the boot script before first paint.
97
+ - `@orochibraru/ui/haptics`: `haptic("tap" | "success" | "error")`, a no-op
98
+ where vibration isn't supported.
99
+
100
+ ## Theming
101
+
102
+ Colours derive from two variables, so an app usually overrides only these after
103
+ importing the theme:
104
+
105
+ ```css
106
+ :root {
107
+ --hue: 8;
108
+ --primary-chroma: 0.15;
109
+ }
110
+ ```
111
+
112
+ On `<html>`:
113
+
114
+ - `class="dark"` switches to the dark palette, `data-dark-variant="amoled"`
115
+ makes it pure black.
116
+ - `data-accent` picks a preset: `bordeaux`, `green`, `blue`, `violet`, `rose`,
117
+ `orange`, `amber`, `cyan` or `neutral`.
118
+ - `data-font` (`system`, `serif`, `mono`) and `data-corners="square"` change the
119
+ type and the radius.
120
+
121
+ `class="aurora"` on `<body>` adds the drifting gradient background. It is opt-in
122
+ so apps with a flat look don't get it.
123
+
124
+ The theme also defines the `glass`, `glow`, `no-scrollbar` and `tabular`
125
+ utilities, the `standalone` variant for installed PWAs, `safe-*` spacing for
126
+ notches, the toast styling and the page transitions on phones. Fonts are left to
127
+ each app: set `--app-font` and `--display-font`.
128
+
129
+ ## Develop
130
+
131
+ ```bash
132
+ bun install
133
+ bun run dev
134
+ ```
135
+
136
+ The dev server shows every primitive and block on one page, with an accent and
137
+ dark mode switch. `bun run check`, `bun run test` and `bun run build` are the
138
+ gates; `build` packages `dist/` and runs publint.
139
+
140
+ New upstream components come from the shadcn-svelte CLI (`components.json` is
141
+ set up), followed by `node_modules/.bin/tailwint --fix` on the new files. The
142
+ CLI overwrites any customised primitive a new one depends on (drawer, input and
143
+ sonner carry the apps' changes): copy those aside before `add --overwrite` and
144
+ put them back after.
145
+
146
+ Dependencies use caret ranges, unlike the apps' exact pins, so a consuming app
147
+ dedupes `bits-ui` and friends with its own copy instead of bundling two.
@@ -0,0 +1,11 @@
1
+ export interface AppearanceAttributes {
2
+ accent: string;
3
+ theme: string;
4
+ darkVariant: string;
5
+ font: string;
6
+ corners: string;
7
+ }
8
+ /** Applies an appearance to `<html>`: data attributes for accent, dark variant, font and corners, the `dark` class for the theme. */
9
+ export declare function applyAppearance(root: HTMLElement, appearance: AppearanceAttributes, prefersDark: boolean): void;
10
+ /** An inline script applying `appearance` before first paint, so a reload never flashes the default theme. */
11
+ export declare function appearanceBootScript(appearance: AppearanceAttributes): string;
@@ -0,0 +1,16 @@
1
+ /** Applies an appearance to `<html>`: data attributes for accent, dark variant, font and corners, the `dark` class for the theme. */
2
+ export function applyAppearance(root, appearance, prefersDark) {
3
+ root.dataset.accent = appearance.accent;
4
+ root.dataset.darkVariant = appearance.darkVariant;
5
+ root.dataset.font = appearance.font;
6
+ root.dataset.corners = appearance.corners;
7
+ const dark = appearance.theme === "dark" ||
8
+ (appearance.theme === "system" && prefersDark);
9
+ root.classList.toggle("dark", dark);
10
+ root.style.colorScheme = dark ? "dark" : "light";
11
+ }
12
+ /** An inline script applying `appearance` before first paint, so a reload never flashes the default theme. */
13
+ export function appearanceBootScript(appearance) {
14
+ const values = JSON.stringify(appearance).replaceAll("<", "\\u003c");
15
+ return `<script>(function(){var a=${values};var r=document.documentElement;r.dataset.accent=a.accent;r.dataset.darkVariant=a.darkVariant;r.dataset.font=a.font;r.dataset.corners=a.corners;try{localStorage.setItem("mode-watcher-mode",a.theme)}catch(e){}var d=a.theme==="dark"||(a.theme==="system"&&matchMedia("(prefers-color-scheme: dark)").matches);r.classList.toggle("dark",d);r.style.colorScheme=d?"dark":"light"})()</script>`;
16
+ }
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+
4
+ interface Props {
5
+ heading: string;
6
+ subheading?: string;
7
+ brand?: Snippet;
8
+ children: Snippet;
9
+ footer?: Snippet;
10
+ }
11
+
12
+ const { heading, subheading, brand, children, footer }: Props = $props();
13
+ </script>
14
+
15
+ <div class="pt-safe-top flex min-h-[85dvh] flex-col justify-center px-6 py-12">
16
+ <div class="mx-auto w-full max-w-sm">
17
+ {#if brand}
18
+ <div class="mb-8">
19
+ {@render brand()}
20
+ </div>
21
+ {/if}
22
+ <h1 class="text-3xl font-bold tracking-tight">{heading}</h1>
23
+ {#if subheading}
24
+ <p class="text-muted-foreground mt-2">{subheading}</p>
25
+ {/if}
26
+ <div class="mt-8">
27
+ {@render children()}
28
+ </div>
29
+ {#if footer}
30
+ <p class="text-muted-foreground mt-8 text-center text-sm">
31
+ {@render footer()}
32
+ </p>
33
+ {/if}
34
+ </div>
35
+ </div>
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from "svelte";
2
+ interface Props {
3
+ heading: string;
4
+ subheading?: string;
5
+ brand?: Snippet;
6
+ children: Snippet;
7
+ footer?: Snippet;
8
+ }
9
+ declare const AuthShell: import("svelte").Component<Props, {}, "">;
10
+ type AuthShell = ReturnType<typeof AuthShell>;
11
+ export default AuthShell;
@@ -0,0 +1,44 @@
1
+ <script lang="ts">
2
+ import CheckIcon from "@lucide/svelte/icons/check";
3
+ import CopyIcon from "@lucide/svelte/icons/copy";
4
+ import { toast } from "svelte-sonner";
5
+
6
+ import IconButton from "./icon-button.svelte";
7
+
8
+ const defaultMessages = {
9
+ loading: "Copying",
10
+ success: "Copied.",
11
+ error: "Couldn't copy. Select the text instead.",
12
+ };
13
+
14
+ interface Props {
15
+ value: string;
16
+ label: string;
17
+ messages?: Partial<typeof defaultMessages>;
18
+ }
19
+
20
+ const { value, label, messages = {} }: Props = $props();
21
+
22
+ let copied = $state(false);
23
+
24
+ async function copyCallback() {
25
+ await navigator.clipboard.writeText(value);
26
+ copied = true;
27
+ setTimeout(() => (copied = false), 2000);
28
+ }
29
+
30
+ function handleCopy() {
31
+ toast.promise(copyCallback(), { ...defaultMessages, ...messages });
32
+ }
33
+ </script>
34
+
35
+ <div class="bg-muted flex min-w-0 items-center gap-2 rounded-xl py-1 pr-1 pl-3">
36
+ <span class="min-w-0 flex-1 truncate font-mono text-xs select-all"
37
+ >{value}</span
38
+ >
39
+ <IconButton
40
+ {label}
41
+ icon={copied ? CheckIcon : CopyIcon}
42
+ onclick={handleCopy}
43
+ />
44
+ </div>
@@ -0,0 +1,11 @@
1
+ declare const CopyField: import("svelte").Component<{
2
+ value: string;
3
+ label: string;
4
+ messages?: Partial<{
5
+ loading: string;
6
+ success: string;
7
+ error: string;
8
+ }>;
9
+ }, {}, "">;
10
+ type CopyField = ReturnType<typeof CopyField>;
11
+ export default CopyField;
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import { usePageTitle } from "../../page-title.svelte.js";
3
+
4
+ const { appName }: { appName: string } = $props();
5
+
6
+ const title = usePageTitle();
7
+ const text = $derived(
8
+ !title.current
9
+ ? appName
10
+ : title.current.includes(appName)
11
+ ? title.current
12
+ : `${title.current} · ${appName}`,
13
+ );
14
+ </script>
15
+
16
+ <svelte:head>
17
+ <title>{text}</title>
18
+ </svelte:head>
@@ -0,0 +1,6 @@
1
+ type $$ComponentProps = {
2
+ appName: string;
3
+ };
4
+ declare const DocumentTitle: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type DocumentTitle = ReturnType<typeof DocumentTitle>;
6
+ export default DocumentTitle;
@@ -0,0 +1,45 @@
1
+ <script lang="ts">
2
+ import type { Component, Snippet } from "svelte";
3
+
4
+ import { cn } from "../../utils.js";
5
+
6
+ interface Props {
7
+ icon: Component<{ class?: string }>;
8
+ title: string;
9
+ subtitle?: string;
10
+ children?: Snippet;
11
+ class?: string;
12
+ }
13
+
14
+ const {
15
+ icon: Icon,
16
+ title,
17
+ subtitle,
18
+ children,
19
+ class: className,
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <div
24
+ class={cn(
25
+ "flex flex-col items-center justify-center px-6 py-16 text-center",
26
+ className,
27
+ )}
28
+ >
29
+ <div
30
+ class="bg-accent text-accent-foreground mb-5 flex size-16 items-center justify-center rounded-2xl"
31
+ >
32
+ <Icon class="size-7" />
33
+ </div>
34
+ <p class="text-lg font-semibold tracking-tight">{title}</p>
35
+ {#if subtitle}
36
+ <p class="text-muted-foreground mt-1.5 max-w-xs text-sm text-pretty">
37
+ {subtitle}
38
+ </p>
39
+ {/if}
40
+ {#if children}
41
+ <div class="mt-6">
42
+ {@render children()}
43
+ </div>
44
+ {/if}
45
+ </div>
@@ -0,0 +1,13 @@
1
+ import type { Component, Snippet } from "svelte";
2
+ interface Props {
3
+ icon: Component<{
4
+ class?: string;
5
+ }>;
6
+ title: string;
7
+ subtitle?: string;
8
+ children?: Snippet;
9
+ class?: string;
10
+ }
11
+ declare const EmptyState: Component<Props, {}, "">;
12
+ type EmptyState = ReturnType<typeof EmptyState>;
13
+ export default EmptyState;
@@ -0,0 +1,47 @@
1
+ <script lang="ts">
2
+ import { page } from "$app/state";
3
+
4
+ import { Button } from "../ui/button/index.js";
5
+
6
+ const defaultMessages = {
7
+ notFoundTitle: "Nothing here",
8
+ notFoundDescription: "This page doesn't exist or was moved.",
9
+ errorTitle: "Something went wrong",
10
+ errorId: "Error ID",
11
+ home: "Back home",
12
+ };
13
+
14
+ interface Props {
15
+ homeHref: string;
16
+ messages?: Partial<typeof defaultMessages>;
17
+ }
18
+
19
+ const { homeHref, messages = {} }: Props = $props();
20
+
21
+ const text = $derived({ ...defaultMessages, ...messages });
22
+ const notFound = $derived(page.status === 404);
23
+ </script>
24
+
25
+ <div
26
+ class="pt-safe-top pb-safe-bottom flex min-h-dvh flex-col items-center justify-center gap-6 px-6 text-center"
27
+ >
28
+ <p class="text-primary text-7xl font-bold tracking-tight tabular">
29
+ {page.status}
30
+ </p>
31
+ <div>
32
+ <h1 class="text-xl font-semibold">
33
+ {notFound ? text.notFoundTitle : text.errorTitle}
34
+ </h1>
35
+ <p class="text-muted-foreground mt-2 text-sm">
36
+ {notFound ? text.notFoundDescription : page.error?.message}
37
+ </p>
38
+ {#if page.error?.errorId}
39
+ <p class="text-muted-foreground mt-3 font-mono text-xs">
40
+ {text.errorId}: {page.error.errorId}
41
+ </p>
42
+ {/if}
43
+ </div>
44
+ <Button href={homeHref} size="lg" class="h-11 rounded-full px-6"
45
+ >{text.home}</Button
46
+ >
47
+ </div>
@@ -0,0 +1,12 @@
1
+ declare const ErrorPage: import("svelte").Component<{
2
+ homeHref: string;
3
+ messages?: Partial<{
4
+ notFoundTitle: string;
5
+ notFoundDescription: string;
6
+ errorTitle: string;
7
+ errorId: string;
8
+ home: string;
9
+ }>;
10
+ }, {}, "">;
11
+ type ErrorPage = ReturnType<typeof ErrorPage>;
12
+ export default ErrorPage;
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import type { Component } from "svelte";
3
+
4
+ import { haptic } from "../../haptics.js";
5
+
6
+ interface Props {
7
+ label: string;
8
+ icon: Component<{ class?: string }>;
9
+ onclick: () => void;
10
+ }
11
+
12
+ const { label, icon: Icon, onclick }: Props = $props();
13
+ </script>
14
+
15
+ <button
16
+ type="button"
17
+ aria-label={label}
18
+ onclick={() => {
19
+ haptic("tap");
20
+ onclick();
21
+ }}
22
+ class="from-primary glow fixed right-5 bottom-[calc(max(0.75rem,env(safe-area-inset-bottom))+5.25rem)] z-40 flex size-15 items-center justify-center rounded-2xl bg-linear-to-br to-[oklch(0.62_calc(var(--primary-chroma)*1.1)_calc(var(--hue)+40))] text-white transition-transform duration-200 active:scale-90 md:hidden"
23
+ style="view-transition-name: fab"
24
+ >
25
+ <Icon class="size-7" />
26
+ </button>
@@ -0,0 +1,11 @@
1
+ import type { Component } from "svelte";
2
+ interface Props {
3
+ label: string;
4
+ icon: Component<{
5
+ class?: string;
6
+ }>;
7
+ onclick: () => void;
8
+ }
9
+ declare const Fab: Component<Props, {}, "">;
10
+ type Fab = ReturnType<typeof Fab>;
11
+ export default Fab;
@@ -0,0 +1,38 @@
1
+ <script lang="ts">
2
+ import type { Component } from "svelte";
3
+
4
+ import { Button, type ButtonProps } from "../ui/button/index.js";
5
+ import * as Tooltip from "../ui/tooltip/index.js";
6
+ import { cn } from "../../utils.js";
7
+
8
+ type Props = Omit<ButtonProps, "children"> & {
9
+ label: string;
10
+ icon: Component<{ class?: string }>;
11
+ };
12
+
13
+ const {
14
+ label,
15
+ icon: Icon,
16
+ class: className,
17
+ variant = "ghost",
18
+ ...rest
19
+ }: Props = $props();
20
+ </script>
21
+
22
+ <Tooltip.Root>
23
+ <Tooltip.Trigger>
24
+ {#snippet child({ props })}
25
+ <Button
26
+ {...props}
27
+ {...rest}
28
+ {variant}
29
+ size="icon"
30
+ aria-label={label}
31
+ class={cn("size-11 rounded-full md:size-9", className)}
32
+ >
33
+ <Icon class="size-5" />
34
+ </Button>
35
+ {/snippet}
36
+ </Tooltip.Trigger>
37
+ <Tooltip.Content>{label}</Tooltip.Content>
38
+ </Tooltip.Root>
@@ -0,0 +1,11 @@
1
+ import type { Component } from "svelte";
2
+ import { type ButtonProps } from "../ui/button/index.js";
3
+ type Props = Omit<ButtonProps, "children"> & {
4
+ label: string;
5
+ icon: Component<{
6
+ class?: string;
7
+ }>;
8
+ };
9
+ declare const IconButton: Component<Props, {}, "">;
10
+ type IconButton = ReturnType<typeof IconButton>;
11
+ export default IconButton;
@@ -0,0 +1,156 @@
1
+ <script lang="ts">
2
+ import DownloadIcon from "@lucide/svelte/icons/download";
3
+ import EllipsisVerticalIcon from "@lucide/svelte/icons/ellipsis-vertical";
4
+ import ShareIcon from "@lucide/svelte/icons/share";
5
+ import SquarePlusIcon from "@lucide/svelte/icons/square-plus";
6
+ import { onMount, type Snippet } from "svelte";
7
+
8
+ import ResponsiveSheet from "./responsive-sheet.svelte";
9
+ import { Button } from "../ui/button/index.js";
10
+
11
+ interface InstallPromptEvent extends Event {
12
+ prompt: () => Promise<void>;
13
+ userChoice: Promise<{ outcome: "accepted" | "dismissed" }>;
14
+ }
15
+
16
+ const defaultMessages = {
17
+ description:
18
+ "Open it from your home screen like any app: full screen, quicker to reach, and with notifications.",
19
+ appleShare: "Tap Share in your browser's toolbar or address bar.",
20
+ appleAdd: "Pick Add to Home Screen, then Add.",
21
+ menuOpen: "Open your browser's menu.",
22
+ menuInstall: "Pick Install app or Add to Home screen.",
23
+ gotIt: "Got it",
24
+ install: "Install",
25
+ notNow: "Not now",
26
+ };
27
+
28
+ interface Props {
29
+ appName: string;
30
+ storageKey: string;
31
+ brand?: Snippet;
32
+ title?: string;
33
+ messages?: Partial<typeof defaultMessages>;
34
+ }
35
+
36
+ const {
37
+ appName,
38
+ storageKey,
39
+ brand,
40
+ title = `Install ${appName}`,
41
+ messages = {},
42
+ }: Props = $props();
43
+
44
+ const text = $derived({ ...defaultMessages, ...messages });
45
+
46
+ let open = $state(false);
47
+ let mode = $state<"native" | "apple" | "menu">("native");
48
+ let deferred: InstallPromptEvent | undefined;
49
+
50
+ function alreadyPrompted(): boolean {
51
+ try {
52
+ return localStorage.getItem(storageKey) !== null;
53
+ } catch {
54
+ return true;
55
+ }
56
+ }
57
+
58
+ function show(next: "native" | "apple" | "menu") {
59
+ if (alreadyPrompted()) {
60
+ return;
61
+ }
62
+ mode = next;
63
+ open = true;
64
+ try {
65
+ localStorage.setItem(storageKey, new Date().toISOString());
66
+ } catch {
67
+ open = false;
68
+ }
69
+ }
70
+
71
+ onMount(() => {
72
+ const standalone =
73
+ matchMedia("(display-mode: standalone)").matches ||
74
+ ("standalone" in navigator && navigator.standalone === true);
75
+ const touch = matchMedia("(pointer: coarse)").matches;
76
+ if (standalone || !touch || alreadyPrompted()) {
77
+ return;
78
+ }
79
+ const apple =
80
+ /iPhone|iPad/.test(navigator.userAgent) ||
81
+ (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints > 1);
82
+ if (apple) {
83
+ const timer = setTimeout(() => show("apple"), 1500);
84
+ return () => clearTimeout(timer);
85
+ }
86
+ const capture = (event: Event) => {
87
+ event.preventDefault();
88
+ deferred = event as InstallPromptEvent;
89
+ if (open) {
90
+ mode = "native";
91
+ } else {
92
+ show("native");
93
+ }
94
+ };
95
+ addEventListener("beforeinstallprompt", capture);
96
+ const fallback = setTimeout(() => {
97
+ if (!deferred) {
98
+ show("menu");
99
+ }
100
+ }, 4000);
101
+ return () => {
102
+ removeEventListener("beforeinstallprompt", capture);
103
+ clearTimeout(fallback);
104
+ };
105
+ });
106
+
107
+ async function install() {
108
+ open = false;
109
+ await deferred?.prompt();
110
+ deferred = undefined;
111
+ }
112
+ </script>
113
+
114
+ {#snippet step(Icon: typeof ShareIcon, label: string)}
115
+ <li class="flex items-center gap-3">
116
+ <span
117
+ class="bg-accent text-accent-foreground flex size-9 shrink-0 items-center justify-center rounded-xl"
118
+ ><Icon class="size-4" /></span
119
+ >
120
+ {label}
121
+ </li>
122
+ {/snippet}
123
+
124
+ <ResponsiveSheet bind:open {title} description={text.description}>
125
+ <div class="flex flex-col gap-5 pb-4">
126
+ {#if brand}
127
+ <div class="flex justify-center py-2">
128
+ {@render brand()}
129
+ </div>
130
+ {/if}
131
+ {#if mode === "native"}
132
+ <Button class="glow h-12 rounded-xl text-base" onclick={install}>
133
+ <DownloadIcon />
134
+ {text.install}
135
+ </Button>
136
+ <Button
137
+ variant="ghost"
138
+ class="h-11 rounded-xl"
139
+ onclick={() => (open = false)}>{text.notNow}</Button
140
+ >
141
+ {:else}
142
+ <ol class="flex flex-col gap-3 text-sm">
143
+ {#if mode === "apple"}
144
+ {@render step(ShareIcon, text.appleShare)}
145
+ {@render step(SquarePlusIcon, text.appleAdd)}
146
+ {:else}
147
+ {@render step(EllipsisVerticalIcon, text.menuOpen)}
148
+ {@render step(SquarePlusIcon, text.menuInstall)}
149
+ {/if}
150
+ </ol>
151
+ <Button class="h-12 rounded-xl text-base" onclick={() => (open = false)}
152
+ >{text.gotIt}</Button
153
+ >
154
+ {/if}
155
+ </div>
156
+ </ResponsiveSheet>