svelte-firekit 0.1.6 → 0.1.8

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 (355) hide show
  1. package/README.md +365 -308
  2. package/dist/components/docs/doc-content.svelte +19 -0
  3. package/dist/components/docs/doc-content.svelte.d.ts +6 -0
  4. package/dist/components/docs/doc-header.svelte +24 -0
  5. package/dist/components/docs/doc-header.svelte.d.ts +13 -0
  6. package/dist/components/docs/doc-renderer.svelte +27 -0
  7. package/dist/components/docs/doc-renderer.svelte.d.ts +8 -0
  8. package/dist/components/docs/mobile-table-of-contents.svelte +42 -0
  9. package/dist/components/docs/mobile-table-of-contents.svelte.d.ts +3 -0
  10. package/dist/components/docs/table-of-contents.svelte +33 -0
  11. package/dist/components/docs/table-of-contents.svelte.d.ts +4 -0
  12. package/dist/components/docs/toc.svelte.d.ts +16 -0
  13. package/dist/components/docs/toc.svelte.js +59 -0
  14. package/dist/components/{Collection.svelte → firekit/Collection.svelte} +2 -2
  15. package/dist/components/{Doc.svelte → firekit/Doc.svelte} +11 -11
  16. package/dist/components/{Doc.svelte.d.ts → firekit/Doc.svelte.d.ts} +1 -1
  17. package/dist/components/{Node.svelte → firekit/Node.svelte} +2 -2
  18. package/dist/components/{auth-guard.svelte → firekit/auth-guard.svelte} +5 -5
  19. package/dist/components/{auth-guard.svelte.d.ts → firekit/auth-guard.svelte.d.ts} +1 -1
  20. package/dist/components/{custom-guard.svelte → firekit/custom-guard.svelte} +5 -5
  21. package/dist/components/{custom-guard.svelte.d.ts → firekit/custom-guard.svelte.d.ts} +1 -1
  22. package/dist/components/{download-url.svelte → firekit/download-url.svelte} +2 -2
  23. package/dist/components/{firebase-app.svelte → firekit/firebase-app.svelte} +5 -2
  24. package/dist/components/{node-list.svelte → firekit/node-list.svelte} +2 -2
  25. package/dist/components/{signed-in.svelte → firekit/signed-in.svelte} +3 -3
  26. package/dist/components/{signed-in.svelte.d.ts → firekit/signed-in.svelte.d.ts} +1 -1
  27. package/dist/components/{signed-out.svelte → firekit/signed-out.svelte} +2 -2
  28. package/dist/components/{storage-list.svelte → firekit/storage-list.svelte} +2 -2
  29. package/dist/components/{upload-task.svelte → firekit/upload-task.svelte} +2 -2
  30. package/dist/components/nav/app-sidebar.svelte +175 -0
  31. package/dist/components/nav/app-sidebar.svelte.d.ts +9 -0
  32. package/dist/components/nav/auto-breadcrumb.svelte +41 -0
  33. package/dist/components/nav/auto-breadcrumb.svelte.d.ts +3 -0
  34. package/dist/components/nav/dark-mode-toggle.svelte +17 -0
  35. package/dist/components/nav/dark-mode-toggle.svelte.d.ts +18 -0
  36. package/dist/components/nav/nav-components.svelte +24 -0
  37. package/dist/components/nav/nav-components.svelte.d.ts +11 -0
  38. package/dist/components/nav/nav-main.svelte +45 -0
  39. package/dist/components/nav/nav-main.svelte.d.ts +11 -0
  40. package/dist/components/nav/nav-secondary.svelte +32 -0
  41. package/dist/components/nav/nav-secondary.svelte.d.ts +14 -0
  42. package/dist/components/nav/site-header.svelte +32 -0
  43. package/dist/components/nav/site-header.svelte.d.ts +18 -0
  44. package/dist/components/ui/avatar/avatar-fallback.svelte +17 -0
  45. package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +4 -0
  46. package/dist/components/ui/avatar/avatar-image.svelte +17 -0
  47. package/dist/components/ui/avatar/avatar-image.svelte.d.ts +4 -0
  48. package/dist/components/ui/avatar/avatar.svelte +19 -0
  49. package/dist/components/ui/avatar/avatar.svelte.d.ts +4 -0
  50. package/dist/components/ui/avatar/index.d.ts +4 -0
  51. package/dist/components/ui/avatar/index.js +6 -0
  52. package/dist/components/ui/badge/badge.svelte +50 -0
  53. package/dist/components/ui/badge/badge.svelte.d.ts +32 -0
  54. package/dist/components/ui/badge/index.d.ts +2 -0
  55. package/dist/components/ui/badge/index.js +2 -0
  56. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
  57. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
  58. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +20 -0
  59. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
  60. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +31 -0
  61. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
  62. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +23 -0
  63. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
  64. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +23 -0
  65. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
  66. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +27 -0
  67. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
  68. package/dist/components/ui/breadcrumb/breadcrumb.svelte +21 -0
  69. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
  70. package/dist/components/ui/breadcrumb/index.d.ts +8 -0
  71. package/dist/components/ui/breadcrumb/index.js +10 -0
  72. package/dist/components/ui/button/button.svelte +80 -0
  73. package/dist/components/ui/button/button.svelte.d.ts +58 -0
  74. package/dist/components/ui/button/index.d.ts +2 -0
  75. package/dist/components/ui/button/index.js +4 -0
  76. package/dist/components/ui/card/card-action.svelte +20 -0
  77. package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
  78. package/dist/components/ui/card/card-content.svelte +15 -0
  79. package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
  80. package/dist/components/ui/card/card-description.svelte +20 -0
  81. package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
  82. package/dist/components/ui/card/card-footer.svelte +20 -0
  83. package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
  84. package/dist/components/ui/card/card-header.svelte +23 -0
  85. package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
  86. package/dist/components/ui/card/card-title.svelte +20 -0
  87. package/dist/components/ui/card/card-title.svelte.d.ts +5 -0
  88. package/dist/components/ui/card/card.svelte +23 -0
  89. package/dist/components/ui/card/card.svelte.d.ts +5 -0
  90. package/dist/components/ui/card/index.d.ts +8 -0
  91. package/dist/components/ui/card/index.js +10 -0
  92. package/dist/components/ui/chart/chart-container.svelte +80 -0
  93. package/dist/components/ui/chart/chart-container.svelte.d.ts +9 -0
  94. package/dist/components/ui/chart/chart-style.svelte +36 -0
  95. package/dist/components/ui/chart/chart-style.svelte.d.ts +8 -0
  96. package/dist/components/ui/chart/chart-tooltip.svelte +159 -0
  97. package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +27 -0
  98. package/dist/components/ui/chart/chart-utils.d.ts +36 -0
  99. package/dist/components/ui/chart/chart-utils.js +33 -0
  100. package/dist/components/ui/chart/index.d.ts +4 -0
  101. package/dist/components/ui/chart/index.js +4 -0
  102. package/dist/components/ui/checkbox/checkbox.svelte +36 -0
  103. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
  104. package/dist/components/ui/checkbox/index.d.ts +2 -0
  105. package/dist/components/ui/checkbox/index.js +4 -0
  106. package/dist/components/ui/data-table/data-table.svelte.d.ts +40 -0
  107. package/dist/components/ui/data-table/data-table.svelte.js +110 -0
  108. package/dist/components/ui/data-table/flex-render.svelte +36 -0
  109. package/dist/components/ui/data-table/flex-render.svelte.d.ts +30 -0
  110. package/dist/components/ui/data-table/index.d.ts +3 -0
  111. package/dist/components/ui/data-table/index.js +3 -0
  112. package/dist/components/ui/data-table/render-helpers.d.ts +90 -0
  113. package/dist/components/ui/data-table/render-helpers.js +99 -0
  114. package/dist/components/ui/dialog/dialog-close.svelte +7 -0
  115. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
  116. package/dist/components/ui/dialog/dialog-content.svelte +43 -0
  117. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +11 -0
  118. package/dist/components/ui/dialog/dialog-description.svelte +17 -0
  119. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
  120. package/dist/components/ui/dialog/dialog-footer.svelte +20 -0
  121. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +5 -0
  122. package/dist/components/ui/dialog/dialog-header.svelte +20 -0
  123. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
  124. package/dist/components/ui/dialog/dialog-overlay.svelte +20 -0
  125. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
  126. package/dist/components/ui/dialog/dialog-title.svelte +17 -0
  127. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
  128. package/dist/components/ui/dialog/dialog-trigger.svelte +7 -0
  129. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
  130. package/dist/components/ui/dialog/index.d.ts +11 -0
  131. package/dist/components/ui/dialog/index.js +14 -0
  132. package/dist/components/ui/drawer/drawer-close.svelte +7 -0
  133. package/dist/components/ui/drawer/drawer-close.svelte.d.ts +4 -0
  134. package/dist/components/ui/drawer/drawer-content.svelte +37 -0
  135. package/dist/components/ui/drawer/drawer-content.svelte.d.ts +7 -0
  136. package/dist/components/ui/drawer/drawer-description.svelte +17 -0
  137. package/dist/components/ui/drawer/drawer-description.svelte.d.ts +4 -0
  138. package/dist/components/ui/drawer/drawer-footer.svelte +20 -0
  139. package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +5 -0
  140. package/dist/components/ui/drawer/drawer-header.svelte +20 -0
  141. package/dist/components/ui/drawer/drawer-header.svelte.d.ts +5 -0
  142. package/dist/components/ui/drawer/drawer-nested.svelte +12 -0
  143. package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +3 -0
  144. package/dist/components/ui/drawer/drawer-overlay.svelte +20 -0
  145. package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +4 -0
  146. package/dist/components/ui/drawer/drawer-title.svelte +17 -0
  147. package/dist/components/ui/drawer/drawer-title.svelte.d.ts +4 -0
  148. package/dist/components/ui/drawer/drawer-trigger.svelte +7 -0
  149. package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +4 -0
  150. package/dist/components/ui/drawer/drawer.svelte +12 -0
  151. package/dist/components/ui/drawer/drawer.svelte.d.ts +3 -0
  152. package/dist/components/ui/drawer/index.d.ts +13 -0
  153. package/dist/components/ui/drawer/index.js +15 -0
  154. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +41 -0
  155. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  156. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +27 -0
  157. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +7 -0
  158. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  159. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
  160. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +7 -0
  161. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
  162. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
  163. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
  164. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
  165. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  166. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  167. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
  168. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +31 -0
  169. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
  170. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  171. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
  172. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
  173. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
  174. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
  175. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -0
  176. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  177. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  178. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  179. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
  180. package/dist/components/ui/dropdown-menu/index.d.ts +25 -0
  181. package/dist/components/ui/dropdown-menu/index.js +17 -0
  182. package/dist/components/ui/input/index.d.ts +2 -0
  183. package/dist/components/ui/input/index.js +4 -0
  184. package/dist/components/ui/input/input.svelte +51 -0
  185. package/dist/components/ui/input/input.svelte.d.ts +13 -0
  186. package/dist/components/ui/label/index.d.ts +2 -0
  187. package/dist/components/ui/label/index.js +4 -0
  188. package/dist/components/ui/label/label.svelte +20 -0
  189. package/dist/components/ui/label/label.svelte.d.ts +4 -0
  190. package/dist/components/ui/scroll-area/index.d.ts +3 -0
  191. package/dist/components/ui/scroll-area/index.js +5 -0
  192. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  193. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
  194. package/dist/components/ui/scroll-area/scroll-area.svelte +40 -0
  195. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +10 -0
  196. package/dist/components/ui/select/index.d.ts +11 -0
  197. package/dist/components/ui/select/index.js +14 -0
  198. package/dist/components/ui/select/select-content.svelte +40 -0
  199. package/dist/components/ui/select/select-content.svelte.d.ts +8 -0
  200. package/dist/components/ui/select/select-group-heading.svelte +21 -0
  201. package/dist/components/ui/select/select-group-heading.svelte.d.ts +10 -0
  202. package/dist/components/ui/select/select-group.svelte +7 -0
  203. package/dist/components/ui/select/select-group.svelte.d.ts +4 -0
  204. package/dist/components/ui/select/select-item.svelte +38 -0
  205. package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
  206. package/dist/components/ui/select/select-label.svelte +20 -0
  207. package/dist/components/ui/select/select-label.svelte.d.ts +6 -0
  208. package/dist/components/ui/select/select-scroll-down-button.svelte +20 -0
  209. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
  210. package/dist/components/ui/select/select-scroll-up-button.svelte +20 -0
  211. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
  212. package/dist/components/ui/select/select-separator.svelte +18 -0
  213. package/dist/components/ui/select/select-separator.svelte.d.ts +4 -0
  214. package/dist/components/ui/select/select-trigger.svelte +29 -0
  215. package/dist/components/ui/select/select-trigger.svelte.d.ts +8 -0
  216. package/dist/components/ui/separator/index.d.ts +2 -0
  217. package/dist/components/ui/separator/index.js +4 -0
  218. package/dist/components/ui/separator/separator.svelte +20 -0
  219. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  220. package/dist/components/ui/sheet/index.d.ts +11 -0
  221. package/dist/components/ui/sheet/index.js +14 -0
  222. package/dist/components/ui/sheet/sheet-close.svelte +7 -0
  223. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
  224. package/dist/components/ui/sheet/sheet-content.svelte +58 -0
  225. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +35 -0
  226. package/dist/components/ui/sheet/sheet-description.svelte +17 -0
  227. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
  228. package/dist/components/ui/sheet/sheet-footer.svelte +20 -0
  229. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
  230. package/dist/components/ui/sheet/sheet-header.svelte +20 -0
  231. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
  232. package/dist/components/ui/sheet/sheet-overlay.svelte +20 -0
  233. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
  234. package/dist/components/ui/sheet/sheet-title.svelte +17 -0
  235. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
  236. package/dist/components/ui/sheet/sheet-trigger.svelte +7 -0
  237. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
  238. package/dist/components/ui/sidebar/constants.d.ts +6 -0
  239. package/dist/components/ui/sidebar/constants.js +6 -0
  240. package/dist/components/ui/sidebar/context.svelte.d.ts +42 -0
  241. package/dist/components/ui/sidebar/context.svelte.js +54 -0
  242. package/dist/components/ui/sidebar/index.d.ts +25 -0
  243. package/dist/components/ui/sidebar/index.js +27 -0
  244. package/dist/components/ui/sidebar/sidebar-content.svelte +24 -0
  245. package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +5 -0
  246. package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -0
  247. package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +5 -0
  248. package/dist/components/ui/sidebar/sidebar-group-action.svelte +36 -0
  249. package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +11 -0
  250. package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -0
  251. package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +5 -0
  252. package/dist/components/ui/sidebar/sidebar-group-label.svelte +34 -0
  253. package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +11 -0
  254. package/dist/components/ui/sidebar/sidebar-group.svelte +21 -0
  255. package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +5 -0
  256. package/dist/components/ui/sidebar/sidebar-header.svelte +21 -0
  257. package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +5 -0
  258. package/dist/components/ui/sidebar/sidebar-input.svelte +21 -0
  259. package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +11 -0
  260. package/dist/components/ui/sidebar/sidebar-inset.svelte +24 -0
  261. package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +5 -0
  262. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +43 -0
  263. package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +12 -0
  264. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +29 -0
  265. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +5 -0
  266. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +103 -0
  267. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +51 -0
  268. package/dist/components/ui/sidebar/sidebar-menu-item.svelte +21 -0
  269. package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +5 -0
  270. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +36 -0
  271. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
  272. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +43 -0
  273. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +13 -0
  274. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +21 -0
  275. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +5 -0
  276. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +25 -0
  277. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +5 -0
  278. package/dist/components/ui/sidebar/sidebar-menu.svelte +21 -0
  279. package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +5 -0
  280. package/dist/components/ui/sidebar/sidebar-provider.svelte +53 -0
  281. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +9 -0
  282. package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -0
  283. package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +5 -0
  284. package/dist/components/ui/sidebar/sidebar-separator.svelte +19 -0
  285. package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +13 -0
  286. package/dist/components/ui/sidebar/sidebar-trigger.svelte +35 -0
  287. package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +8 -0
  288. package/dist/components/ui/sidebar/sidebar.svelte +104 -0
  289. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +10 -0
  290. package/dist/components/ui/skeleton/index.d.ts +2 -0
  291. package/dist/components/ui/skeleton/index.js +4 -0
  292. package/dist/components/ui/skeleton/skeleton.svelte +17 -0
  293. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +5 -0
  294. package/dist/components/ui/table/index.d.ts +9 -0
  295. package/dist/components/ui/table/index.js +11 -0
  296. package/dist/components/ui/table/table-body.svelte +20 -0
  297. package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
  298. package/dist/components/ui/table/table-caption.svelte +20 -0
  299. package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
  300. package/dist/components/ui/table/table-cell.svelte +20 -0
  301. package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
  302. package/dist/components/ui/table/table-footer.svelte +20 -0
  303. package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
  304. package/dist/components/ui/table/table-head.svelte +23 -0
  305. package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
  306. package/dist/components/ui/table/table-header.svelte +20 -0
  307. package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
  308. package/dist/components/ui/table/table-row.svelte +23 -0
  309. package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
  310. package/dist/components/ui/table/table.svelte +22 -0
  311. package/dist/components/ui/table/table.svelte.d.ts +5 -0
  312. package/dist/components/ui/tabs/index.d.ts +5 -0
  313. package/dist/components/ui/tabs/index.js +7 -0
  314. package/dist/components/ui/tabs/tabs-content.svelte +17 -0
  315. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
  316. package/dist/components/ui/tabs/tabs-list.svelte +20 -0
  317. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
  318. package/dist/components/ui/tabs/tabs-trigger.svelte +20 -0
  319. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  320. package/dist/components/ui/tabs/tabs.svelte +19 -0
  321. package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
  322. package/dist/components/ui/toggle/index.d.ts +3 -0
  323. package/dist/components/ui/toggle/index.js +5 -0
  324. package/dist/components/ui/toggle/toggle.svelte +52 -0
  325. package/dist/components/ui/toggle/toggle.svelte.d.ts +43 -0
  326. package/dist/components/ui/toggle-group/index.d.ts +3 -0
  327. package/dist/components/ui/toggle-group/index.js +5 -0
  328. package/dist/components/ui/toggle-group/toggle-group-item.svelte +34 -0
  329. package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +6 -0
  330. package/dist/components/ui/toggle-group/toggle-group.svelte +47 -0
  331. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +8 -0
  332. package/dist/components/ui/tooltip/index.d.ts +7 -0
  333. package/dist/components/ui/tooltip/index.js +9 -0
  334. package/dist/components/ui/tooltip/tooltip-content.svelte +47 -0
  335. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +7 -0
  336. package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  337. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
  338. package/dist/hooks/is-mobile.svelte.d.ts +4 -0
  339. package/dist/hooks/is-mobile.svelte.js +7 -0
  340. package/dist/index.d.ts +12 -12
  341. package/dist/index.js +12 -12
  342. package/dist/types/docs.d.ts +67 -0
  343. package/dist/types/docs.js +1 -0
  344. package/dist/types/index.d.ts +3 -3
  345. package/dist/utils.d.ts +15 -0
  346. package/dist/utils.js +44 -0
  347. package/package.json +34 -6
  348. /package/dist/components/{Collection.svelte.d.ts → firekit/Collection.svelte.d.ts} +0 -0
  349. /package/dist/components/{Node.svelte.d.ts → firekit/Node.svelte.d.ts} +0 -0
  350. /package/dist/components/{download-url.svelte.d.ts → firekit/download-url.svelte.d.ts} +0 -0
  351. /package/dist/components/{firebase-app.svelte.d.ts → firekit/firebase-app.svelte.d.ts} +0 -0
  352. /package/dist/components/{node-list.svelte.d.ts → firekit/node-list.svelte.d.ts} +0 -0
  353. /package/dist/components/{signed-out.svelte.d.ts → firekit/signed-out.svelte.d.ts} +0 -0
  354. /package/dist/components/{storage-list.svelte.d.ts → firekit/storage-list.svelte.d.ts} +0 -0
  355. /package/dist/components/{upload-task.svelte.d.ts → firekit/upload-task.svelte.d.ts} +0 -0
@@ -0,0 +1,80 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import ChartStyle from "./chart-style.svelte";
5
+ import { setChartContext, type ChartConfig } from "./chart-utils.js";
6
+
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ ref = $bindable(null),
11
+ id = uid,
12
+ class: className,
13
+ children,
14
+ config,
15
+ ...restProps
16
+ }: WithElementRef<HTMLAttributes<HTMLElement>> & {
17
+ config: ChartConfig;
18
+ } = $props();
19
+
20
+ const chartId = `chart-${id || uid.replace(/:/g, "")}`;
21
+
22
+ setChartContext({
23
+ get config() {
24
+ return config;
25
+ },
26
+ });
27
+ </script>
28
+
29
+ <div
30
+ bind:this={ref}
31
+ data-chart={chartId}
32
+ data-slot="chart"
33
+ class={cn(
34
+ "flex aspect-video justify-center overflow-visible text-xs",
35
+ // Overrides
36
+ //
37
+ // Stroke around dots/marks when hovering
38
+ "[&_.stroke-white]:stroke-transparent",
39
+ // override the default stroke color of lines
40
+ "[&_.lc-line]:stroke-border/50",
41
+
42
+ // by default, layerchart shows a line intersecting the point when hovering, this hides that
43
+ "[&_.lc-highlight-line]:stroke-0",
44
+
45
+ // by default, when you hover a point on a stacked series chart, it will drop the opacity
46
+ // of the other series, this overrides that
47
+ "[&_.lc-area-path]:opacity-100 [&_.lc-highlight-line]:opacity-100 [&_.lc-highlight-point]:opacity-100 [&_.lc-spline-path]:opacity-100 [&_.lc-text-svg]:overflow-visible [&_.lc-text]:text-xs",
48
+
49
+ // We don't want the little tick lines between the axis labels and the chart, so we remove
50
+ // the stroke. The alternative is to manually disable `tickMarks` on the x/y axis of every
51
+ // chart.
52
+ "[&_.lc-axis-tick]:stroke-0",
53
+
54
+ // We don't want to display the rule on the x/y axis, as there is already going to be
55
+ // a grid line there and rule ends up overlapping the marks because it is rendered after
56
+ // the marks
57
+ "[&_.lc-rule-x-line:not(.lc-grid-x-rule)]:stroke-0 [&_.lc-rule-y-line:not(.lc-grid-y-rule)]:stroke-0",
58
+ "[&_.lc-grid-x-radial-line]:stroke-border [&_.lc-grid-x-radial-circle]:stroke-border",
59
+ "[&_.lc-grid-y-radial-line]:stroke-border [&_.lc-grid-y-radial-circle]:stroke-border",
60
+
61
+ // Legend adjustments
62
+ "[&_.lc-legend-swatch-button]:items-center [&_.lc-legend-swatch-button]:gap-1.5",
63
+ "[&_.lc-legend-swatch-group]:items-center [&_.lc-legend-swatch-group]:gap-4",
64
+ "[&_.lc-legend-swatch]:size-2.5 [&_.lc-legend-swatch]:rounded-[2px]",
65
+
66
+ // Labels
67
+ "[&_.lc-labels-text:not([fill])]:fill-foreground [&_text]:stroke-transparent",
68
+
69
+ // Tick labels on th x/y axes
70
+ "[&_.lc-axis-tick-label]:fill-muted-foreground [&_.lc-axis-tick-label]:font-normal",
71
+ "[&_.lc-tooltip-rects-g]:fill-transparent",
72
+ "[&_.lc-layout-svg-g]:fill-transparent",
73
+ "[&_.lc-root-container]:w-full",
74
+ className
75
+ )}
76
+ {...restProps}
77
+ >
78
+ <ChartStyle id={chartId} {config} />
79
+ {@render children?.()}
80
+ </div>
@@ -0,0 +1,9 @@
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { type ChartConfig } from "./chart-utils.js";
4
+ type $$ComponentProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
5
+ config: ChartConfig;
6
+ };
7
+ declare const ChartContainer: import("svelte").Component<$$ComponentProps, {}, "ref">;
8
+ type ChartContainer = ReturnType<typeof ChartContainer>;
9
+ export default ChartContainer;
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import { THEMES, type ChartConfig } from "./chart-utils.js";
3
+
4
+ let { id, config }: { id: string; config: ChartConfig } = $props();
5
+
6
+ const colorConfig = $derived(
7
+ config ? Object.entries(config).filter(([, config]) => config.theme || config.color) : null
8
+ );
9
+
10
+ const themeContents = $derived.by(() => {
11
+ if (!colorConfig || !colorConfig.length) return;
12
+
13
+ const themeContents = [];
14
+ for (let [_theme, prefix] of Object.entries(THEMES)) {
15
+ let content = `${prefix} [data-chart=${id}] {\n`;
16
+ const color = colorConfig.map(([key, itemConfig]) => {
17
+ const theme = _theme as keyof typeof itemConfig.theme;
18
+ const color = itemConfig.theme?.[theme] || itemConfig.color;
19
+ return color ? `\t--color-${key}: ${color};` : null;
20
+ });
21
+
22
+ content += color.join("\n") + "\n}";
23
+
24
+ themeContents.push(content);
25
+ }
26
+
27
+ return themeContents.join("\n");
28
+ });
29
+ </script>
30
+
31
+ {#if themeContents}
32
+ {#key id}
33
+ <!-- eslint-disable-next-line svelte/no-at-html-tags -->
34
+ {@html `<style>${themeContents}</style>`}
35
+ {/key}
36
+ {/if}
@@ -0,0 +1,8 @@
1
+ import { type ChartConfig } from "./chart-utils.js";
2
+ type $$ComponentProps = {
3
+ id: string;
4
+ config: ChartConfig;
5
+ };
6
+ declare const ChartStyle: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type ChartStyle = ReturnType<typeof ChartStyle>;
8
+ export default ChartStyle;
@@ -0,0 +1,159 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef, type WithoutChildren } from "../../../utils.js";
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { getPayloadConfigFromPayload, useChart, type TooltipPayload } from "./chart-utils.js";
5
+ import { getTooltipContext, Tooltip as TooltipPrimitive } from "layerchart";
6
+ import type { Snippet } from "svelte";
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ function defaultFormatter(value: any, _payload: TooltipPayload[]) {
10
+ return `${value}`;
11
+ }
12
+
13
+ let {
14
+ ref = $bindable(null),
15
+ class: className,
16
+ hideLabel = false,
17
+ indicator = "dot",
18
+ hideIndicator = false,
19
+ labelKey,
20
+ label,
21
+ labelFormatter = defaultFormatter,
22
+ labelClassName,
23
+ formatter,
24
+ nameKey,
25
+ color,
26
+ ...restProps
27
+ }: WithoutChildren<WithElementRef<HTMLAttributes<HTMLDivElement>>> & {
28
+ hideLabel?: boolean;
29
+ label?: string;
30
+ indicator?: "line" | "dot" | "dashed";
31
+ nameKey?: string;
32
+ labelKey?: string;
33
+ hideIndicator?: boolean;
34
+ labelClassName?: string;
35
+ labelFormatter?: // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ ((value: any, payload: TooltipPayload[]) => string | number | Snippet) | null;
37
+ formatter?: Snippet<
38
+ [
39
+ {
40
+ value: unknown;
41
+ name: string;
42
+ item: TooltipPayload;
43
+ index: number;
44
+ payload: TooltipPayload[];
45
+ },
46
+ ]
47
+ >;
48
+ } = $props();
49
+
50
+ const chart = useChart();
51
+ const tooltipCtx = getTooltipContext();
52
+
53
+ const formattedLabel = $derived.by(() => {
54
+ if (hideLabel || !tooltipCtx.payload?.length) return null;
55
+
56
+ const [item] = tooltipCtx.payload;
57
+ const key = labelKey ?? item?.label ?? item?.name ?? "value";
58
+
59
+ const itemConfig = getPayloadConfigFromPayload(chart.config, item, key);
60
+
61
+ const value =
62
+ !labelKey && typeof label === "string"
63
+ ? (chart.config[label as keyof typeof chart.config]?.label ?? label)
64
+ : (itemConfig?.label ?? item.label);
65
+
66
+ if (value === undefined) return null;
67
+ if (!labelFormatter) return value;
68
+ return labelFormatter(value, tooltipCtx.payload);
69
+ });
70
+
71
+ const nestLabel = $derived(tooltipCtx.payload.length === 1 && indicator !== "dot");
72
+ </script>
73
+
74
+ {#snippet TooltipLabel()}
75
+ {#if formattedLabel}
76
+ <div class={cn("font-medium", labelClassName)}>
77
+ {#if typeof formattedLabel === "function"}
78
+ {@render formattedLabel()}
79
+ {:else}
80
+ {formattedLabel}
81
+ {/if}
82
+ </div>
83
+ {/if}
84
+ {/snippet}
85
+
86
+ <TooltipPrimitive.Root variant="none">
87
+ <div
88
+ class={cn(
89
+ "border-border/50 bg-background grid min-w-[9rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
90
+ className
91
+ )}
92
+ {...restProps}
93
+ >
94
+ {#if !nestLabel}
95
+ {@render TooltipLabel()}
96
+ {/if}
97
+ <div class="grid gap-1.5">
98
+ {#each tooltipCtx.payload as item, i (item.key + i)}
99
+ {@const key = `${nameKey || item.key || item.name || "value"}`}
100
+ {@const itemConfig = getPayloadConfigFromPayload(chart.config, item, key)}
101
+ {@const indicatorColor = color || item.payload?.color || item.color}
102
+ <div
103
+ class={cn(
104
+ "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:size-2.5",
105
+ indicator === "dot" && "items-center"
106
+ )}
107
+ >
108
+ {#if formatter && item.value !== undefined && item.name}
109
+ {@render formatter({
110
+ value: item.value,
111
+ name: item.name,
112
+ item,
113
+ index: i,
114
+ payload: tooltipCtx.payload,
115
+ })}
116
+ {:else}
117
+ {#if itemConfig?.icon}
118
+ <itemConfig.icon />
119
+ {:else if !hideIndicator}
120
+ <div
121
+ style="--color-bg: {indicatorColor}; --color-border: {indicatorColor};"
122
+ class={cn(
123
+ "border-(--color-border) bg-(--color-bg) shrink-0 rounded-[2px]",
124
+ {
125
+ "size-2.5": indicator === "dot",
126
+ "h-full w-1": indicator === "line",
127
+ "w-0 border-[1.5px] border-dashed bg-transparent":
128
+ indicator === "dashed",
129
+ "my-0.5": nestLabel && indicator === "dashed",
130
+ }
131
+ )}
132
+ ></div>
133
+ {/if}
134
+ <div
135
+ class={cn(
136
+ "flex flex-1 shrink-0 justify-between leading-none",
137
+ nestLabel ? "items-end" : "items-center"
138
+ )}
139
+ >
140
+ <div class="grid gap-1.5">
141
+ {#if nestLabel}
142
+ {@render TooltipLabel()}
143
+ {/if}
144
+ <span class="text-muted-foreground">
145
+ {itemConfig?.label || item.name}
146
+ </span>
147
+ </div>
148
+ {#if item.value !== undefined}
149
+ <span class="text-foreground font-mono font-medium tabular-nums">
150
+ {item.value.toLocaleString()}
151
+ </span>
152
+ {/if}
153
+ </div>
154
+ {/if}
155
+ </div>
156
+ {/each}
157
+ </div>
158
+ </div>
159
+ </TooltipPrimitive.Root>
@@ -0,0 +1,27 @@
1
+ import { type WithElementRef, type WithoutChildren } from "../../../utils.js";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import { type TooltipPayload } from "./chart-utils.js";
4
+ import type { Snippet } from "svelte";
5
+ type $$ComponentProps = WithoutChildren<WithElementRef<HTMLAttributes<HTMLDivElement>>> & {
6
+ hideLabel?: boolean;
7
+ label?: string;
8
+ indicator?: "line" | "dot" | "dashed";
9
+ nameKey?: string;
10
+ labelKey?: string;
11
+ hideIndicator?: boolean;
12
+ labelClassName?: string;
13
+ labelFormatter?: // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ ((value: any, payload: TooltipPayload[]) => string | number | Snippet) | null;
15
+ formatter?: Snippet<[
16
+ {
17
+ value: unknown;
18
+ name: string;
19
+ item: TooltipPayload;
20
+ index: number;
21
+ payload: TooltipPayload[];
22
+ }
23
+ ]>;
24
+ };
25
+ declare const ChartTooltip: import("svelte").Component<$$ComponentProps, {}, "ref">;
26
+ type ChartTooltip = ReturnType<typeof ChartTooltip>;
27
+ export default ChartTooltip;
@@ -0,0 +1,36 @@
1
+ import type { Tooltip } from "layerchart";
2
+ import { type Component, type ComponentProps, type Snippet } from "svelte";
3
+ export declare const THEMES: {
4
+ readonly light: "";
5
+ readonly dark: ".dark";
6
+ };
7
+ export type ChartConfig = {
8
+ [k in string]: {
9
+ label?: string;
10
+ icon?: Component;
11
+ } & ({
12
+ color?: string;
13
+ theme?: never;
14
+ } | {
15
+ color?: never;
16
+ theme: Record<keyof typeof THEMES, string>;
17
+ });
18
+ };
19
+ export type ExtractSnippetParams<T> = T extends Snippet<[infer P]> ? P : never;
20
+ export type TooltipPayload = ExtractSnippetParams<ComponentProps<typeof Tooltip.Root>["children"]>["payload"][number];
21
+ export declare function getPayloadConfigFromPayload(config: ChartConfig, payload: TooltipPayload, key: string): ({
22
+ label?: string;
23
+ icon?: Component;
24
+ } & ({
25
+ color?: string;
26
+ theme?: never;
27
+ } | {
28
+ color?: never;
29
+ theme: Record<keyof typeof THEMES, string>;
30
+ })) | undefined;
31
+ type ChartContextValue = {
32
+ config: ChartConfig;
33
+ };
34
+ export declare function setChartContext(value: ChartContextValue): ChartContextValue;
35
+ export declare function useChart(): ChartContextValue;
36
+ export {};
@@ -0,0 +1,33 @@
1
+ import { getContext, setContext } from "svelte";
2
+ export const THEMES = { light: "", dark: ".dark" };
3
+ // Helper to extract item config from a payload.
4
+ export function getPayloadConfigFromPayload(config, payload, key) {
5
+ if (typeof payload !== "object" || payload === null)
6
+ return undefined;
7
+ const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null
8
+ ? payload.payload
9
+ : undefined;
10
+ let configLabelKey = key;
11
+ if (payload.key === key) {
12
+ configLabelKey = payload.key;
13
+ }
14
+ else if (payload.name === key) {
15
+ configLabelKey = payload.name;
16
+ }
17
+ else if (key in payload && typeof payload[key] === "string") {
18
+ configLabelKey = payload[key];
19
+ }
20
+ else if (payloadPayload !== undefined &&
21
+ key in payloadPayload &&
22
+ typeof payloadPayload[key] === "string") {
23
+ configLabelKey = payloadPayload[key];
24
+ }
25
+ return configLabelKey in config ? config[configLabelKey] : config[key];
26
+ }
27
+ const chartContextKey = Symbol("chart-context");
28
+ export function setChartContext(value) {
29
+ return setContext(chartContextKey, value);
30
+ }
31
+ export function useChart() {
32
+ return getContext(chartContextKey);
33
+ }
@@ -0,0 +1,4 @@
1
+ import ChartContainer from "./chart-container.svelte";
2
+ import ChartTooltip from "./chart-tooltip.svelte";
3
+ export { getPayloadConfigFromPayload, type ChartConfig } from "./chart-utils.js";
4
+ export { ChartContainer, ChartTooltip, ChartContainer as Container, ChartTooltip as Tooltip };
@@ -0,0 +1,4 @@
1
+ import ChartContainer from "./chart-container.svelte";
2
+ import ChartTooltip from "./chart-tooltip.svelte";
3
+ export { getPayloadConfigFromPayload } from "./chart-utils.js";
4
+ export { ChartContainer, ChartTooltip, ChartContainer as Container, ChartTooltip as Tooltip };
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import { Checkbox as CheckboxPrimitive } from "bits-ui";
3
+ import CheckIcon from "@lucide/svelte/icons/check";
4
+ import MinusIcon from "@lucide/svelte/icons/minus";
5
+ import { cn, type WithoutChildrenOrChild } from "../../../utils.js";
6
+
7
+ let {
8
+ ref = $bindable(null),
9
+ checked = $bindable(false),
10
+ indeterminate = $bindable(false),
11
+ class: className,
12
+ ...restProps
13
+ }: WithoutChildrenOrChild<CheckboxPrimitive.RootProps> = $props();
14
+ </script>
15
+
16
+ <CheckboxPrimitive.Root
17
+ bind:ref
18
+ data-slot="checkbox"
19
+ class={cn(
20
+ "border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive shadow-xs peer flex size-4 shrink-0 items-center justify-center rounded-[4px] border outline-none transition-shadow focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
21
+ className
22
+ )}
23
+ bind:checked
24
+ bind:indeterminate
25
+ {...restProps}
26
+ >
27
+ {#snippet children({ checked, indeterminate })}
28
+ <div data-slot="checkbox-indicator" class="text-current transition-none">
29
+ {#if checked}
30
+ <CheckIcon class="size-3.5" />
31
+ {:else if indeterminate}
32
+ <MinusIcon class="size-3.5" />
33
+ {/if}
34
+ </div>
35
+ {/snippet}
36
+ </CheckboxPrimitive.Root>
@@ -0,0 +1,4 @@
1
+ import { Checkbox as CheckboxPrimitive } from "bits-ui";
2
+ declare const Checkbox: import("svelte").Component<Omit<Omit<CheckboxPrimitive.RootProps, "child">, "children">, {}, "ref" | "checked" | "indeterminate">;
3
+ type Checkbox = ReturnType<typeof Checkbox>;
4
+ export default Checkbox;
@@ -0,0 +1,2 @@
1
+ import Root from "./checkbox.svelte";
2
+ export { Root, Root as Checkbox, };
@@ -0,0 +1,4 @@
1
+ import Root from "./checkbox.svelte";
2
+ export { Root,
3
+ //
4
+ Root as Checkbox, };
@@ -0,0 +1,40 @@
1
+ import { type RowData, type TableOptions } from "@tanstack/table-core";
2
+ /**
3
+ * Creates a reactive TanStack table object for Svelte.
4
+ * @param options Table options to create the table with.
5
+ * @returns A reactive table object.
6
+ * @example
7
+ * ```svelte
8
+ * <script>
9
+ * const table = createSvelteTable({ ... })
10
+ * </script>
11
+ *
12
+ * <table>
13
+ * <thead>
14
+ * {#each table.getHeaderGroups() as headerGroup}
15
+ * <tr>
16
+ * {#each headerGroup.headers as header}
17
+ * <th colspan={header.colSpan}>
18
+ * <FlexRender content={header.column.columnDef.header} context={header.getContext()} />
19
+ * </th>
20
+ * {/each}
21
+ * </tr>
22
+ * {/each}
23
+ * </thead>
24
+ * <!-- ... -->
25
+ * </table>
26
+ * ```
27
+ */
28
+ export declare function createSvelteTable<TData extends RowData>(options: TableOptions<TData>): import("@tanstack/table-core").Table<TData>;
29
+ type MaybeThunk<T extends object> = T | (() => T | null | undefined);
30
+ type Intersection<T extends readonly unknown[]> = (T extends [infer H, ...infer R] ? H & Intersection<R> : unknown) & {};
31
+ /**
32
+ * Lazily merges several objects (or thunks) while preserving
33
+ * getter semantics from every source.
34
+ *
35
+ * Proxy-based to avoid known WebKit recursion issue.
36
+ */
37
+ export declare function mergeObjects<Sources extends readonly MaybeThunk<any>[]>(...sources: Sources): Intersection<{
38
+ [K in keyof Sources]: Sources[K];
39
+ }>;
40
+ export {};
@@ -0,0 +1,110 @@
1
+ import { createTable, } from "@tanstack/table-core";
2
+ /**
3
+ * Creates a reactive TanStack table object for Svelte.
4
+ * @param options Table options to create the table with.
5
+ * @returns A reactive table object.
6
+ * @example
7
+ * ```svelte
8
+ * <script>
9
+ * const table = createSvelteTable({ ... })
10
+ * </script>
11
+ *
12
+ * <table>
13
+ * <thead>
14
+ * {#each table.getHeaderGroups() as headerGroup}
15
+ * <tr>
16
+ * {#each headerGroup.headers as header}
17
+ * <th colspan={header.colSpan}>
18
+ * <FlexRender content={header.column.columnDef.header} context={header.getContext()} />
19
+ * </th>
20
+ * {/each}
21
+ * </tr>
22
+ * {/each}
23
+ * </thead>
24
+ * <!-- ... -->
25
+ * </table>
26
+ * ```
27
+ */
28
+ export function createSvelteTable(options) {
29
+ const resolvedOptions = mergeObjects({
30
+ state: {},
31
+ onStateChange() { },
32
+ renderFallbackValue: null,
33
+ mergeOptions: (defaultOptions, options) => {
34
+ return mergeObjects(defaultOptions, options);
35
+ },
36
+ }, options);
37
+ const table = createTable(resolvedOptions);
38
+ let state = $state(table.initialState);
39
+ function updateOptions() {
40
+ table.setOptions((prev) => {
41
+ return mergeObjects(prev, options, {
42
+ state: mergeObjects(state, options.state || {}),
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ onStateChange: (updater) => {
45
+ if (updater instanceof Function)
46
+ state = updater(state);
47
+ else
48
+ state = mergeObjects(state, updater);
49
+ options.onStateChange?.(updater);
50
+ },
51
+ });
52
+ });
53
+ }
54
+ updateOptions();
55
+ $effect.pre(() => {
56
+ updateOptions();
57
+ });
58
+ return table;
59
+ }
60
+ /**
61
+ * Lazily merges several objects (or thunks) while preserving
62
+ * getter semantics from every source.
63
+ *
64
+ * Proxy-based to avoid known WebKit recursion issue.
65
+ */
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ export function mergeObjects(...sources) {
68
+ const resolve = (src) => typeof src === "function" ? (src() ?? undefined) : src;
69
+ const findSourceWithKey = (key) => {
70
+ for (let i = sources.length - 1; i >= 0; i--) {
71
+ const obj = resolve(sources[i]);
72
+ if (obj && key in obj)
73
+ return obj;
74
+ }
75
+ return undefined;
76
+ };
77
+ return new Proxy(Object.create(null), {
78
+ get(_, key) {
79
+ const src = findSourceWithKey(key);
80
+ return src?.[key];
81
+ },
82
+ has(_, key) {
83
+ return !!findSourceWithKey(key);
84
+ },
85
+ ownKeys() {
86
+ const all = new Set();
87
+ for (const s of sources) {
88
+ const obj = resolve(s);
89
+ if (obj) {
90
+ for (const k of Reflect.ownKeys(obj)) {
91
+ all.add(k);
92
+ }
93
+ }
94
+ }
95
+ return [...all];
96
+ },
97
+ getOwnPropertyDescriptor(_, key) {
98
+ const src = findSourceWithKey(key);
99
+ if (!src)
100
+ return undefined;
101
+ return {
102
+ configurable: true,
103
+ enumerable: true,
104
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
+ value: src[key],
106
+ writable: true,
107
+ };
108
+ },
109
+ });
110
+ }
@@ -0,0 +1,36 @@
1
+ <script
2
+ lang="ts"
3
+ generics="TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>"
4
+ >
5
+ import type { CellContext, ColumnDefTemplate, HeaderContext } from "@tanstack/table-core";
6
+ import { RenderComponentConfig, RenderSnippetConfig } from "./render-helpers.js";
7
+ type Props = {
8
+ /** The cell or header field of the current cell's column definition. */
9
+ content?: TContext extends HeaderContext<TData, TValue>
10
+ ? ColumnDefTemplate<HeaderContext<TData, TValue>>
11
+ : TContext extends CellContext<TData, TValue>
12
+ ? ColumnDefTemplate<CellContext<TData, TValue>>
13
+ : never;
14
+ /** The result of the `getContext()` function of the header or cell */
15
+ context: TContext;
16
+ };
17
+
18
+ let { content, context }: Props = $props();
19
+ </script>
20
+
21
+ {#if typeof content === "string"}
22
+ {content}
23
+ {:else if content instanceof Function}
24
+ <!-- It's unlikely that a CellContext will be passed to a Header -->
25
+ <!-- eslint-disable-next-line @typescript-eslint/no-explicit-any -->
26
+ {@const result = content(context as any)}
27
+ {#if result instanceof RenderComponentConfig}
28
+ {@const { component: Component, props } = result}
29
+ <Component {...props} />
30
+ {:else if result instanceof RenderSnippetConfig}
31
+ {@const { snippet, params } = result}
32
+ {@render snippet(params)}
33
+ {:else}
34
+ {result}
35
+ {/if}
36
+ {/if}