@jovertical/mise-design-system 0.0.0-stage → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (869) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSES/shadcn-svelte.txt +23 -0
  3. package/LICENSES/shadcn-ui.txt +21 -0
  4. package/LICENSES/tailwindcss.txt +21 -0
  5. package/README.md +127 -2
  6. package/bin/mise-theme.js +12 -0
  7. package/dist/components/actions/button/button-variants.d.ts +37 -0
  8. package/dist/components/actions/button/button-variants.js +99 -0
  9. package/dist/components/actions/button/button.svelte +84 -0
  10. package/dist/components/actions/button/button.svelte.d.ts +17 -0
  11. package/dist/components/actions/button/index.d.ts +2 -0
  12. package/dist/components/actions/button/index.js +2 -0
  13. package/dist/components/actions/command/command-dialog.svelte +60 -0
  14. package/dist/components/actions/command/command-dialog.svelte.d.ts +17 -0
  15. package/dist/components/actions/command/command-empty.svelte +24 -0
  16. package/dist/components/actions/command/command-empty.svelte.d.ts +6 -0
  17. package/dist/components/actions/command/command-group.svelte +43 -0
  18. package/dist/components/actions/command/command-group.svelte.d.ts +8 -0
  19. package/dist/components/actions/command/command-input.svelte +38 -0
  20. package/dist/components/actions/command/command-input.svelte.d.ts +6 -0
  21. package/dist/components/actions/command/command-item.svelte +27 -0
  22. package/dist/components/actions/command/command-item.svelte.d.ts +6 -0
  23. package/dist/components/actions/command/command-list.svelte +24 -0
  24. package/dist/components/actions/command/command-list.svelte.d.ts +6 -0
  25. package/dist/components/actions/command/command-separator.svelte +24 -0
  26. package/dist/components/actions/command/command-separator.svelte.d.ts +6 -0
  27. package/dist/components/actions/command/command-shortcut.svelte +33 -0
  28. package/dist/components/actions/command/command-shortcut.svelte.d.ts +7 -0
  29. package/dist/components/actions/command/command.svelte +37 -0
  30. package/dist/components/actions/command/command.svelte.d.ts +10 -0
  31. package/dist/components/actions/command/index.d.ts +9 -0
  32. package/dist/components/actions/command/index.js +9 -0
  33. package/dist/components/actions/dropdown-menu/dropdown-menu-checkbox-item.svelte +52 -0
  34. package/dist/components/actions/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  35. package/dist/components/actions/dropdown-menu/dropdown-menu-content.svelte +38 -0
  36. package/dist/components/actions/dropdown-menu/dropdown-menu-content.svelte.d.ts +8 -0
  37. package/dist/components/actions/dropdown-menu/dropdown-menu-group.svelte +16 -0
  38. package/dist/components/actions/dropdown-menu/dropdown-menu-group.svelte.d.ts +5 -0
  39. package/dist/components/actions/dropdown-menu/dropdown-menu-item.svelte +39 -0
  40. package/dist/components/actions/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -0
  41. package/dist/components/actions/dropdown-menu/dropdown-menu-label.svelte +37 -0
  42. package/dist/components/actions/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  43. package/dist/components/actions/dropdown-menu/dropdown-menu-portal.svelte +16 -0
  44. package/dist/components/actions/dropdown-menu/dropdown-menu-portal.svelte.d.ts +5 -0
  45. package/dist/components/actions/dropdown-menu/dropdown-menu-radio-group.svelte +25 -0
  46. package/dist/components/actions/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +5 -0
  47. package/dist/components/actions/dropdown-menu/dropdown-menu-radio-item.svelte +50 -0
  48. package/dist/components/actions/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +9 -0
  49. package/dist/components/actions/dropdown-menu/dropdown-menu-separator.svelte +23 -0
  50. package/dist/components/actions/dropdown-menu/dropdown-menu-separator.svelte.d.ts +5 -0
  51. package/dist/components/actions/dropdown-menu/dropdown-menu-shortcut.svelte +32 -0
  52. package/dist/components/actions/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +6 -0
  53. package/dist/components/actions/dropdown-menu/dropdown-menu-sub-content.svelte +26 -0
  54. package/dist/components/actions/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +5 -0
  55. package/dist/components/actions/dropdown-menu/dropdown-menu-sub-trigger.svelte +41 -0
  56. package/dist/components/actions/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  57. package/dist/components/actions/dropdown-menu/dropdown-menu-sub.svelte +16 -0
  58. package/dist/components/actions/dropdown-menu/dropdown-menu-sub.svelte.d.ts +5 -0
  59. package/dist/components/actions/dropdown-menu/dropdown-menu-trigger.svelte +16 -0
  60. package/dist/components/actions/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +5 -0
  61. package/dist/components/actions/dropdown-menu/dropdown-menu.svelte +16 -0
  62. package/dist/components/actions/dropdown-menu/dropdown-menu.svelte.d.ts +5 -0
  63. package/dist/components/actions/dropdown-menu/index.d.ts +15 -0
  64. package/dist/components/actions/dropdown-menu/index.js +15 -0
  65. package/dist/components/actions/theme-toggle/index.d.ts +3 -0
  66. package/dist/components/actions/theme-toggle/index.js +3 -0
  67. package/dist/components/actions/theme-toggle/theme-provider.svelte +49 -0
  68. package/dist/components/actions/theme-toggle/theme-provider.svelte.d.ts +19 -0
  69. package/dist/components/actions/theme-toggle/theme-toggle.svelte +48 -0
  70. package/dist/components/actions/theme-toggle/theme-toggle.svelte.d.ts +13 -0
  71. package/dist/components/actions/theme-toggle/theme.svelte.d.ts +17 -0
  72. package/dist/components/actions/theme-toggle/theme.svelte.js +45 -0
  73. package/dist/components/data-display/avatar/avatar-fallback.svelte +29 -0
  74. package/dist/components/data-display/avatar/avatar-fallback.svelte.d.ts +6 -0
  75. package/dist/components/data-display/avatar/avatar-image.svelte +23 -0
  76. package/dist/components/data-display/avatar/avatar-image.svelte.d.ts +5 -0
  77. package/dist/components/data-display/avatar/avatar-status.svelte +48 -0
  78. package/dist/components/data-display/avatar/avatar-status.svelte.d.ts +16 -0
  79. package/dist/components/data-display/avatar/avatar.svelte +24 -0
  80. package/dist/components/data-display/avatar/avatar.svelte.d.ts +6 -0
  81. package/dist/components/data-display/avatar/index.d.ts +5 -0
  82. package/dist/components/data-display/avatar/index.js +5 -0
  83. package/dist/components/data-display/avatar/presence-dot.svelte +42 -0
  84. package/dist/components/data-display/avatar/presence-dot.svelte.d.ts +14 -0
  85. package/dist/components/data-display/badge/badge-variants.d.ts +6 -0
  86. package/dist/components/data-display/badge/badge-variants.js +53 -0
  87. package/dist/components/data-display/badge/badge.svelte +66 -0
  88. package/dist/components/data-display/badge/badge.svelte.d.ts +29 -0
  89. package/dist/components/data-display/badge/index.d.ts +2 -0
  90. package/dist/components/data-display/badge/index.js +2 -0
  91. package/dist/components/data-display/chart/chart-defaults.d.ts +22 -0
  92. package/dist/components/data-display/chart/chart-defaults.js +19 -0
  93. package/dist/components/data-display/chart/chart-style.svelte +49 -0
  94. package/dist/components/data-display/chart/chart-style.svelte.d.ts +9 -0
  95. package/dist/components/data-display/chart/chart-tooltip.svelte +201 -0
  96. package/dist/components/data-display/chart/chart-tooltip.svelte.d.ts +30 -0
  97. package/dist/components/data-display/chart/chart-utils.d.ts +42 -0
  98. package/dist/components/data-display/chart/chart-utils.js +42 -0
  99. package/dist/components/data-display/chart/chart.svelte +105 -0
  100. package/dist/components/data-display/chart/chart.svelte.d.ts +15 -0
  101. package/dist/components/data-display/chart/index.d.ts +5 -0
  102. package/dist/components/data-display/chart/index.js +5 -0
  103. package/dist/components/data-display/checklist/checklist-card.svelte +157 -0
  104. package/dist/components/data-display/checklist/checklist-card.svelte.d.ts +47 -0
  105. package/dist/components/data-display/checklist/checklist-row-heading.svelte +56 -0
  106. package/dist/components/data-display/checklist/checklist-row-heading.svelte.d.ts +10 -0
  107. package/dist/components/data-display/checklist/checklist-task-row.svelte +101 -0
  108. package/dist/components/data-display/checklist/checklist-task-row.svelte.d.ts +9 -0
  109. package/dist/components/data-display/checklist/checklist-types.d.ts +51 -0
  110. package/dist/components/data-display/checklist/checklist-types.js +6 -0
  111. package/dist/components/data-display/checklist/checklist.svelte +78 -0
  112. package/dist/components/data-display/checklist/checklist.svelte.d.ts +24 -0
  113. package/dist/components/data-display/checklist/index.d.ts +3 -0
  114. package/dist/components/data-display/checklist/index.js +2 -0
  115. package/dist/components/data-display/data-table/data-table-column-header.svelte +99 -0
  116. package/dist/components/data-display/data-table/data-table-column-header.svelte.d.ts +38 -0
  117. package/dist/components/data-display/data-table/data-table-column-toggle.svelte +68 -0
  118. package/dist/components/data-display/data-table/data-table-column-toggle.svelte.d.ts +33 -0
  119. package/dist/components/data-display/data-table/data-table-export-menu.svelte +93 -0
  120. package/dist/components/data-display/data-table/data-table-export-menu.svelte.d.ts +18 -0
  121. package/dist/components/data-display/data-table/data-table-faceted-filter.svelte +133 -0
  122. package/dist/components/data-display/data-table/data-table-faceted-filter.svelte.d.ts +50 -0
  123. package/dist/components/data-display/data-table/data-table-row-actions.svelte +79 -0
  124. package/dist/components/data-display/data-table/data-table-row-actions.svelte.d.ts +28 -0
  125. package/dist/components/data-display/data-table/data-table-toolbar.svelte +180 -0
  126. package/dist/components/data-display/data-table/data-table-toolbar.svelte.d.ts +70 -0
  127. package/dist/components/data-display/data-table/data-table-view-toggle.svelte +39 -0
  128. package/dist/components/data-display/data-table/data-table-view-toggle.svelte.d.ts +12 -0
  129. package/dist/components/data-display/data-table/data-table.svelte +468 -0
  130. package/dist/components/data-display/data-table/data-table.svelte.d.ts +103 -0
  131. package/dist/components/data-display/data-table/features.d.ts +51 -0
  132. package/dist/components/data-display/data-table/features.js +27 -0
  133. package/dist/components/data-display/data-table/index.d.ts +9 -0
  134. package/dist/components/data-display/data-table/index.js +9 -0
  135. package/dist/components/data-display/delta-badge/delta-badge.svelte +87 -0
  136. package/dist/components/data-display/delta-badge/delta-badge.svelte.d.ts +39 -0
  137. package/dist/components/data-display/delta-badge/index.d.ts +1 -0
  138. package/dist/components/data-display/delta-badge/index.js +1 -0
  139. package/dist/components/data-display/entity-label/entity-label.svelte +77 -0
  140. package/dist/components/data-display/entity-label/entity-label.svelte.d.ts +33 -0
  141. package/dist/components/data-display/entity-label/index.d.ts +1 -0
  142. package/dist/components/data-display/entity-label/index.js +1 -0
  143. package/dist/components/data-display/fact-list/fact-list-item.svelte +113 -0
  144. package/dist/components/data-display/fact-list/fact-list-item.svelte.d.ts +43 -0
  145. package/dist/components/data-display/fact-list/fact-list.svelte +48 -0
  146. package/dist/components/data-display/fact-list/fact-list.svelte.d.ts +21 -0
  147. package/dist/components/data-display/fact-list/index.d.ts +2 -0
  148. package/dist/components/data-display/fact-list/index.js +2 -0
  149. package/dist/components/data-display/icon-chip/icon-chip-variants.d.ts +21 -0
  150. package/dist/components/data-display/icon-chip/icon-chip-variants.js +44 -0
  151. package/dist/components/data-display/icon-chip/icon-chip.svelte +53 -0
  152. package/dist/components/data-display/icon-chip/icon-chip.svelte.d.ts +23 -0
  153. package/dist/components/data-display/icon-chip/index.d.ts +2 -0
  154. package/dist/components/data-display/icon-chip/index.js +2 -0
  155. package/dist/components/data-display/item/index.d.ts +11 -0
  156. package/dist/components/data-display/item/index.js +11 -0
  157. package/dist/components/data-display/item/item-actions.svelte +27 -0
  158. package/dist/components/data-display/item/item-actions.svelte.d.ts +6 -0
  159. package/dist/components/data-display/item/item-content.svelte +27 -0
  160. package/dist/components/data-display/item/item-content.svelte.d.ts +6 -0
  161. package/dist/components/data-display/item/item-description.svelte +39 -0
  162. package/dist/components/data-display/item/item-description.svelte.d.ts +7 -0
  163. package/dist/components/data-display/item/item-footer.svelte +27 -0
  164. package/dist/components/data-display/item/item-footer.svelte.d.ts +6 -0
  165. package/dist/components/data-display/item/item-group.svelte +34 -0
  166. package/dist/components/data-display/item/item-group.svelte.d.ts +11 -0
  167. package/dist/components/data-display/item/item-header.svelte +27 -0
  168. package/dist/components/data-display/item/item-header.svelte.d.ts +6 -0
  169. package/dist/components/data-display/item/item-media.svelte +63 -0
  170. package/dist/components/data-display/item/item-media.svelte.d.ts +23 -0
  171. package/dist/components/data-display/item/item-separator.svelte +25 -0
  172. package/dist/components/data-display/item/item-separator.svelte.d.ts +5 -0
  173. package/dist/components/data-display/item/item-title.svelte +27 -0
  174. package/dist/components/data-display/item/item-title.svelte.d.ts +6 -0
  175. package/dist/components/data-display/item/item-variants.d.ts +17 -0
  176. package/dist/components/data-display/item/item-variants.js +37 -0
  177. package/dist/components/data-display/item/item.svelte +70 -0
  178. package/dist/components/data-display/item/item.svelte.d.ts +30 -0
  179. package/dist/components/data-display/metric-bar/index.d.ts +2 -0
  180. package/dist/components/data-display/metric-bar/index.js +2 -0
  181. package/dist/components/data-display/metric-bar/metric-bar.svelte +122 -0
  182. package/dist/components/data-display/metric-bar/metric-bar.svelte.d.ts +41 -0
  183. package/dist/components/data-display/metric-bar/metric-rank.svelte +33 -0
  184. package/dist/components/data-display/metric-bar/metric-rank.svelte.d.ts +12 -0
  185. package/dist/components/data-display/metric-grid/index.d.ts +1 -0
  186. package/dist/components/data-display/metric-grid/index.js +1 -0
  187. package/dist/components/data-display/metric-grid/metric-grid.svelte +66 -0
  188. package/dist/components/data-display/metric-grid/metric-grid.svelte.d.ts +35 -0
  189. package/dist/components/data-display/metric-row/index.d.ts +1 -0
  190. package/dist/components/data-display/metric-row/index.js +1 -0
  191. package/dist/components/data-display/metric-row/metric-row.svelte +175 -0
  192. package/dist/components/data-display/metric-row/metric-row.svelte.d.ts +58 -0
  193. package/dist/components/data-display/radial-stat/index.d.ts +1 -0
  194. package/dist/components/data-display/radial-stat/index.js +1 -0
  195. package/dist/components/data-display/radial-stat/radial-stat.svelte +113 -0
  196. package/dist/components/data-display/radial-stat/radial-stat.svelte.d.ts +35 -0
  197. package/dist/components/data-display/readiness/index.d.ts +3 -0
  198. package/dist/components/data-display/readiness/index.js +3 -0
  199. package/dist/components/data-display/readiness/readiness-summarise.d.ts +40 -0
  200. package/dist/components/data-display/readiness/readiness-summarise.js +25 -0
  201. package/dist/components/data-display/readiness/readiness-summary.svelte +65 -0
  202. package/dist/components/data-display/readiness/readiness-summary.svelte.d.ts +19 -0
  203. package/dist/components/data-display/readiness/readiness.svelte +102 -0
  204. package/dist/components/data-display/readiness/readiness.svelte.d.ts +22 -0
  205. package/dist/components/data-display/segmented-bar/index.d.ts +1 -0
  206. package/dist/components/data-display/segmented-bar/index.js +1 -0
  207. package/dist/components/data-display/segmented-bar/segmented-bar.svelte +116 -0
  208. package/dist/components/data-display/segmented-bar/segmented-bar.svelte.d.ts +34 -0
  209. package/dist/components/data-display/segmented-code/index.d.ts +1 -0
  210. package/dist/components/data-display/segmented-code/index.js +1 -0
  211. package/dist/components/data-display/segmented-code/segmented-code.svelte +84 -0
  212. package/dist/components/data-display/segmented-code/segmented-code.svelte.d.ts +27 -0
  213. package/dist/components/data-display/sparkline/index.d.ts +1 -0
  214. package/dist/components/data-display/sparkline/index.js +1 -0
  215. package/dist/components/data-display/sparkline/sparkline.svelte +98 -0
  216. package/dist/components/data-display/sparkline/sparkline.svelte.d.ts +22 -0
  217. package/dist/components/data-display/stat-tile/index.d.ts +1 -0
  218. package/dist/components/data-display/stat-tile/index.js +1 -0
  219. package/dist/components/data-display/stat-tile/stat-tile.svelte +328 -0
  220. package/dist/components/data-display/stat-tile/stat-tile.svelte.d.ts +125 -0
  221. package/dist/components/data-display/table/context.d.ts +2 -0
  222. package/dist/components/data-display/table/context.js +16 -0
  223. package/dist/components/data-display/table/index.d.ts +8 -0
  224. package/dist/components/data-display/table/index.js +8 -0
  225. package/dist/components/data-display/table/table-body.svelte +28 -0
  226. package/dist/components/data-display/table/table-body.svelte.d.ts +7 -0
  227. package/dist/components/data-display/table/table-caption.svelte +28 -0
  228. package/dist/components/data-display/table/table-caption.svelte.d.ts +7 -0
  229. package/dist/components/data-display/table/table-cell.svelte +45 -0
  230. package/dist/components/data-display/table/table-cell.svelte.d.ts +9 -0
  231. package/dist/components/data-display/table/table-footer.svelte +28 -0
  232. package/dist/components/data-display/table/table-footer.svelte.d.ts +7 -0
  233. package/dist/components/data-display/table/table-head.svelte +54 -0
  234. package/dist/components/data-display/table/table-head.svelte.d.ts +15 -0
  235. package/dist/components/data-display/table/table-header.svelte +28 -0
  236. package/dist/components/data-display/table/table-header.svelte.d.ts +7 -0
  237. package/dist/components/data-display/table/table-row.svelte +31 -0
  238. package/dist/components/data-display/table/table-row.svelte.d.ts +7 -0
  239. package/dist/components/data-display/table/table.svelte +47 -0
  240. package/dist/components/data-display/table/table.svelte.d.ts +14 -0
  241. package/dist/components/data-display/timeline/index.d.ts +8 -0
  242. package/dist/components/data-display/timeline/index.js +8 -0
  243. package/dist/components/data-display/timeline/timeline-connector.svelte +33 -0
  244. package/dist/components/data-display/timeline/timeline-connector.svelte.d.ts +11 -0
  245. package/dist/components/data-display/timeline/timeline-content.svelte +35 -0
  246. package/dist/components/data-display/timeline/timeline-content.svelte.d.ts +7 -0
  247. package/dist/components/data-display/timeline/timeline-dot.svelte +57 -0
  248. package/dist/components/data-display/timeline/timeline-dot.svelte.d.ts +21 -0
  249. package/dist/components/data-display/timeline/timeline-item.svelte +26 -0
  250. package/dist/components/data-display/timeline/timeline-item.svelte.d.ts +6 -0
  251. package/dist/components/data-display/timeline/timeline-skeleton.svelte +43 -0
  252. package/dist/components/data-display/timeline/timeline-skeleton.svelte.d.ts +9 -0
  253. package/dist/components/data-display/timeline/timeline-title.svelte +30 -0
  254. package/dist/components/data-display/timeline/timeline-title.svelte.d.ts +7 -0
  255. package/dist/components/data-display/timeline/timeline-variants.d.ts +12 -0
  256. package/dist/components/data-display/timeline/timeline-variants.js +34 -0
  257. package/dist/components/data-display/timeline/timeline.svelte +38 -0
  258. package/dist/components/data-display/timeline/timeline.svelte.d.ts +18 -0
  259. package/dist/components/data-display/tree-leaf/index.d.ts +1 -0
  260. package/dist/components/data-display/tree-leaf/index.js +1 -0
  261. package/dist/components/data-display/tree-leaf/tree-leaf.svelte +87 -0
  262. package/dist/components/data-display/tree-leaf/tree-leaf.svelte.d.ts +30 -0
  263. package/dist/components/feedback/alert/alert-action.svelte +36 -0
  264. package/dist/components/feedback/alert/alert-action.svelte.d.ts +11 -0
  265. package/dist/components/feedback/alert/alert-description.svelte +38 -0
  266. package/dist/components/feedback/alert/alert-description.svelte.d.ts +9 -0
  267. package/dist/components/feedback/alert/alert-title.svelte +30 -0
  268. package/dist/components/feedback/alert/alert-title.svelte.d.ts +9 -0
  269. package/dist/components/feedback/alert/alert-variants.d.ts +11 -0
  270. package/dist/components/feedback/alert/alert-variants.js +26 -0
  271. package/dist/components/feedback/alert/alert.svelte +38 -0
  272. package/dist/components/feedback/alert/alert.svelte.d.ts +15 -0
  273. package/dist/components/feedback/alert/index.d.ts +5 -0
  274. package/dist/components/feedback/alert/index.js +5 -0
  275. package/dist/components/feedback/empty/empty-content.svelte +30 -0
  276. package/dist/components/feedback/empty/empty-content.svelte.d.ts +6 -0
  277. package/dist/components/feedback/empty/empty-description.svelte +35 -0
  278. package/dist/components/feedback/empty/empty-description.svelte.d.ts +6 -0
  279. package/dist/components/feedback/empty/empty-header.svelte +27 -0
  280. package/dist/components/feedback/empty/empty-header.svelte.d.ts +6 -0
  281. package/dist/components/feedback/empty/empty-media.svelte +43 -0
  282. package/dist/components/feedback/empty/empty-media.svelte.d.ts +14 -0
  283. package/dist/components/feedback/empty/empty-title.svelte +27 -0
  284. package/dist/components/feedback/empty/empty-title.svelte.d.ts +6 -0
  285. package/dist/components/feedback/empty/empty-variants.d.ts +10 -0
  286. package/dist/components/feedback/empty/empty-variants.js +20 -0
  287. package/dist/components/feedback/empty/empty.svelte +36 -0
  288. package/dist/components/feedback/empty/empty.svelte.d.ts +11 -0
  289. package/dist/components/feedback/empty/index.d.ts +7 -0
  290. package/dist/components/feedback/empty/index.js +7 -0
  291. package/dist/components/feedback/empty-state/empty-state.svelte +45 -0
  292. package/dist/components/feedback/empty-state/empty-state.svelte.d.ts +19 -0
  293. package/dist/components/feedback/empty-state/index.d.ts +1 -0
  294. package/dist/components/feedback/empty-state/index.js +1 -0
  295. package/dist/components/feedback/error-state/error-state.svelte +102 -0
  296. package/dist/components/feedback/error-state/error-state.svelte.d.ts +37 -0
  297. package/dist/components/feedback/error-state/index.d.ts +1 -0
  298. package/dist/components/feedback/error-state/index.js +1 -0
  299. package/dist/components/feedback/feature-preview/feature-preview.svelte +102 -0
  300. package/dist/components/feedback/feature-preview/feature-preview.svelte.d.ts +34 -0
  301. package/dist/components/feedback/feature-preview/index.d.ts +1 -0
  302. package/dist/components/feedback/feature-preview/index.js +1 -0
  303. package/dist/components/feedback/loading-state/index.d.ts +1 -0
  304. package/dist/components/feedback/loading-state/index.js +1 -0
  305. package/dist/components/feedback/loading-state/loading-state.svelte +48 -0
  306. package/dist/components/feedback/loading-state/loading-state.svelte.d.ts +18 -0
  307. package/dist/components/feedback/locked-overlay/index.d.ts +1 -0
  308. package/dist/components/feedback/locked-overlay/index.js +1 -0
  309. package/dist/components/feedback/locked-overlay/locked-overlay.svelte +77 -0
  310. package/dist/components/feedback/locked-overlay/locked-overlay.svelte.d.ts +31 -0
  311. package/dist/components/feedback/navigation-progress/index.d.ts +1 -0
  312. package/dist/components/feedback/navigation-progress/index.js +1 -0
  313. package/dist/components/feedback/navigation-progress/navigation-progress.svelte +93 -0
  314. package/dist/components/feedback/navigation-progress/navigation-progress.svelte.d.ts +20 -0
  315. package/dist/components/feedback/progress/index.d.ts +1 -0
  316. package/dist/components/feedback/progress/index.js +1 -0
  317. package/dist/components/feedback/progress/progress.svelte +48 -0
  318. package/dist/components/feedback/progress/progress.svelte.d.ts +12 -0
  319. package/dist/components/feedback/skeleton/index.d.ts +1 -0
  320. package/dist/components/feedback/skeleton/index.js +1 -0
  321. package/dist/components/feedback/skeleton/skeleton.svelte +33 -0
  322. package/dist/components/feedback/skeleton/skeleton.svelte.d.ts +10 -0
  323. package/dist/components/feedback/sonner/index.d.ts +2 -0
  324. package/dist/components/feedback/sonner/index.js +2 -0
  325. package/dist/components/feedback/sonner/sonner.svelte +87 -0
  326. package/dist/components/feedback/sonner/sonner.svelte.d.ts +6 -0
  327. package/dist/components/feedback/spinner/index.d.ts +1 -0
  328. package/dist/components/feedback/spinner/index.js +1 -0
  329. package/dist/components/feedback/spinner/spinner.svelte +50 -0
  330. package/dist/components/feedback/spinner/spinner.svelte.d.ts +17 -0
  331. package/dist/components/forms/button-group/button-group-separator.svelte +31 -0
  332. package/dist/components/forms/button-group/button-group-separator.svelte.d.ts +6 -0
  333. package/dist/components/forms/button-group/button-group-text.svelte +46 -0
  334. package/dist/components/forms/button-group/button-group-text.svelte.d.ts +12 -0
  335. package/dist/components/forms/button-group/button-group-variants.d.ts +13 -0
  336. package/dist/components/forms/button-group/button-group-variants.js +20 -0
  337. package/dist/components/forms/button-group/button-group.svelte +46 -0
  338. package/dist/components/forms/button-group/button-group.svelte.d.ts +14 -0
  339. package/dist/components/forms/button-group/index.d.ts +4 -0
  340. package/dist/components/forms/button-group/index.js +4 -0
  341. package/dist/components/forms/calendar/calendar-caption.svelte +103 -0
  342. package/dist/components/forms/calendar/calendar-caption.svelte.d.ts +16 -0
  343. package/dist/components/forms/calendar/calendar-classes.d.ts +23 -0
  344. package/dist/components/forms/calendar/calendar-classes.js +36 -0
  345. package/dist/components/forms/calendar/calendar.svelte +120 -0
  346. package/dist/components/forms/calendar/calendar.svelte.d.ts +21 -0
  347. package/dist/components/forms/calendar/index.d.ts +3 -0
  348. package/dist/components/forms/calendar/index.js +2 -0
  349. package/dist/components/forms/calendar/range-calendar.svelte +114 -0
  350. package/dist/components/forms/calendar/range-calendar.svelte.d.ts +18 -0
  351. package/dist/components/forms/checkbox/checkbox.svelte +55 -0
  352. package/dist/components/forms/checkbox/checkbox.svelte.d.ts +6 -0
  353. package/dist/components/forms/checkbox/index.d.ts +1 -0
  354. package/dist/components/forms/checkbox/index.js +1 -0
  355. package/dist/components/forms/choice-row/choice-row-readonly.svelte +56 -0
  356. package/dist/components/forms/choice-row/choice-row-readonly.svelte.d.ts +17 -0
  357. package/dist/components/forms/choice-row/choice-row.svelte +129 -0
  358. package/dist/components/forms/choice-row/choice-row.svelte.d.ts +53 -0
  359. package/dist/components/forms/choice-row/index.d.ts +2 -0
  360. package/dist/components/forms/choice-row/index.js +2 -0
  361. package/dist/components/forms/combobox/combobox-chip.svelte +65 -0
  362. package/dist/components/forms/combobox/combobox-chip.svelte.d.ts +14 -0
  363. package/dist/components/forms/combobox/combobox-chips-input.svelte +23 -0
  364. package/dist/components/forms/combobox/combobox-chips-input.svelte.d.ts +6 -0
  365. package/dist/components/forms/combobox/combobox-chips.svelte +35 -0
  366. package/dist/components/forms/combobox/combobox-chips.svelte.d.ts +10 -0
  367. package/dist/components/forms/combobox/combobox-content.svelte +52 -0
  368. package/dist/components/forms/combobox/combobox-content.svelte.d.ts +11 -0
  369. package/dist/components/forms/combobox/combobox-context.d.ts +6 -0
  370. package/dist/components/forms/combobox/combobox-context.js +9 -0
  371. package/dist/components/forms/combobox/combobox-empty.svelte +28 -0
  372. package/dist/components/forms/combobox/combobox-empty.svelte.d.ts +6 -0
  373. package/dist/components/forms/combobox/combobox-group.svelte +15 -0
  374. package/dist/components/forms/combobox/combobox-group.svelte.d.ts +5 -0
  375. package/dist/components/forms/combobox/combobox-input.svelte +98 -0
  376. package/dist/components/forms/combobox/combobox-input.svelte.d.ts +16 -0
  377. package/dist/components/forms/combobox/combobox-item.svelte +61 -0
  378. package/dist/components/forms/combobox/combobox-item.svelte.d.ts +9 -0
  379. package/dist/components/forms/combobox/combobox-label.svelte +25 -0
  380. package/dist/components/forms/combobox/combobox-label.svelte.d.ts +5 -0
  381. package/dist/components/forms/combobox/combobox-list.svelte +27 -0
  382. package/dist/components/forms/combobox/combobox-list.svelte.d.ts +5 -0
  383. package/dist/components/forms/combobox/combobox-separator.svelte +22 -0
  384. package/dist/components/forms/combobox/combobox-separator.svelte.d.ts +5 -0
  385. package/dist/components/forms/combobox/combobox-trigger.svelte +36 -0
  386. package/dist/components/forms/combobox/combobox-trigger.svelte.d.ts +6 -0
  387. package/dist/components/forms/combobox/combobox.svelte +49 -0
  388. package/dist/components/forms/combobox/combobox.svelte.d.ts +23 -0
  389. package/dist/components/forms/combobox/index.d.ts +13 -0
  390. package/dist/components/forms/combobox/index.js +13 -0
  391. package/dist/components/forms/date-picker/date-picker.svelte +149 -0
  392. package/dist/components/forms/date-picker/date-picker.svelte.d.ts +45 -0
  393. package/dist/components/forms/date-picker/index.d.ts +1 -0
  394. package/dist/components/forms/date-picker/index.js +1 -0
  395. package/dist/components/forms/field/field-content.svelte +27 -0
  396. package/dist/components/forms/field/field-content.svelte.d.ts +6 -0
  397. package/dist/components/forms/field/field-description.svelte +40 -0
  398. package/dist/components/forms/field/field-description.svelte.d.ts +6 -0
  399. package/dist/components/forms/field/field-error.svelte +57 -0
  400. package/dist/components/forms/field/field-error.svelte.d.ts +15 -0
  401. package/dist/components/forms/field/field-group.svelte +30 -0
  402. package/dist/components/forms/field/field-group.svelte.d.ts +6 -0
  403. package/dist/components/forms/field/field-label.svelte +49 -0
  404. package/dist/components/forms/field/field-label.svelte.d.ts +12 -0
  405. package/dist/components/forms/field/field-legend.svelte +44 -0
  406. package/dist/components/forms/field/field-legend.svelte.d.ts +8 -0
  407. package/dist/components/forms/field/field-separator.svelte +37 -0
  408. package/dist/components/forms/field/field-separator.svelte.d.ts +6 -0
  409. package/dist/components/forms/field/field-set.svelte +31 -0
  410. package/dist/components/forms/field/field-set.svelte.d.ts +6 -0
  411. package/dist/components/forms/field/field-title.svelte +30 -0
  412. package/dist/components/forms/field/field-title.svelte.d.ts +6 -0
  413. package/dist/components/forms/field/field-variants.d.ts +10 -0
  414. package/dist/components/forms/field/field-variants.js +26 -0
  415. package/dist/components/forms/field/field.svelte +45 -0
  416. package/dist/components/forms/field/field.svelte.d.ts +14 -0
  417. package/dist/components/forms/field/index.d.ts +11 -0
  418. package/dist/components/forms/field/index.js +11 -0
  419. package/dist/components/forms/form/form-button.svelte +19 -0
  420. package/dist/components/forms/form/form-button.svelte.d.ts +6 -0
  421. package/dist/components/forms/form/form-description.svelte +28 -0
  422. package/dist/components/forms/form/form-description.svelte.d.ts +7 -0
  423. package/dist/components/forms/form/form-element-field.svelte +47 -0
  424. package/dist/components/forms/form/form-element-field.svelte.d.ts +35 -0
  425. package/dist/components/forms/form/form-field-errors.svelte +48 -0
  426. package/dist/components/forms/form/form-field-errors.svelte.d.ts +9 -0
  427. package/dist/components/forms/form/form-field.svelte +56 -0
  428. package/dist/components/forms/form/form-field.svelte.d.ts +42 -0
  429. package/dist/components/forms/form/form-fieldset.svelte +41 -0
  430. package/dist/components/forms/form/form-fieldset.svelte.d.ts +29 -0
  431. package/dist/components/forms/form/form-label.svelte +47 -0
  432. package/dist/components/forms/form/form-label.svelte.d.ts +10 -0
  433. package/dist/components/forms/form/form-legend.svelte +28 -0
  434. package/dist/components/forms/form/form-legend.svelte.d.ts +7 -0
  435. package/dist/components/forms/form/form-types.d.ts +13 -0
  436. package/dist/components/forms/form/form-types.js +1 -0
  437. package/dist/components/forms/form/form.svelte +38 -0
  438. package/dist/components/forms/form/form.svelte.d.ts +38 -0
  439. package/dist/components/forms/form/index.d.ts +11 -0
  440. package/dist/components/forms/form/index.js +10 -0
  441. package/dist/components/forms/input/index.d.ts +1 -0
  442. package/dist/components/forms/input/index.js +1 -0
  443. package/dist/components/forms/input/input.svelte +58 -0
  444. package/dist/components/forms/input/input.svelte.d.ts +13 -0
  445. package/dist/components/forms/input-group/index.d.ts +7 -0
  446. package/dist/components/forms/input-group/index.js +7 -0
  447. package/dist/components/forms/input-group/input-group-addon.svelte +51 -0
  448. package/dist/components/forms/input-group/input-group-addon.svelte.d.ts +10 -0
  449. package/dist/components/forms/input-group/input-group-button.svelte +39 -0
  450. package/dist/components/forms/input-group/input-group-button.svelte.d.ts +8 -0
  451. package/dist/components/forms/input-group/input-group-input.svelte +33 -0
  452. package/dist/components/forms/input-group/input-group-input.svelte.d.ts +5 -0
  453. package/dist/components/forms/input-group/input-group-text.svelte +30 -0
  454. package/dist/components/forms/input-group/input-group-text.svelte.d.ts +7 -0
  455. package/dist/components/forms/input-group/input-group-textarea.svelte +39 -0
  456. package/dist/components/forms/input-group/input-group-textarea.svelte.d.ts +11 -0
  457. package/dist/components/forms/input-group/input-group-variants.d.ts +14 -0
  458. package/dist/components/forms/input-group/input-group-variants.js +32 -0
  459. package/dist/components/forms/input-group/input-group.svelte +44 -0
  460. package/dist/components/forms/input-group/input-group.svelte.d.ts +11 -0
  461. package/dist/components/forms/input-otp/index.d.ts +4 -0
  462. package/dist/components/forms/input-otp/index.js +4 -0
  463. package/dist/components/forms/input-otp/input-otp-group.svelte +40 -0
  464. package/dist/components/forms/input-otp/input-otp-group.svelte.d.ts +12 -0
  465. package/dist/components/forms/input-otp/input-otp-separator.svelte +28 -0
  466. package/dist/components/forms/input-otp/input-otp-separator.svelte.d.ts +6 -0
  467. package/dist/components/forms/input-otp/input-otp-slot.svelte +56 -0
  468. package/dist/components/forms/input-otp/input-otp-slot.svelte.d.ts +8 -0
  469. package/dist/components/forms/input-otp/input-otp.svelte +40 -0
  470. package/dist/components/forms/input-otp/input-otp.svelte.d.ts +10 -0
  471. package/dist/components/forms/label/index.d.ts +1 -0
  472. package/dist/components/forms/label/index.js +1 -0
  473. package/dist/components/forms/label/label.svelte +26 -0
  474. package/dist/components/forms/label/label.svelte.d.ts +5 -0
  475. package/dist/components/forms/media-dropzone/index.d.ts +2 -0
  476. package/dist/components/forms/media-dropzone/index.js +1 -0
  477. package/dist/components/forms/media-dropzone/media-dropzone.svelte +248 -0
  478. package/dist/components/forms/media-dropzone/media-dropzone.svelte.d.ts +42 -0
  479. package/dist/components/forms/media-dropzone/media-uploader.svelte.d.ts +81 -0
  480. package/dist/components/forms/media-dropzone/media-uploader.svelte.js +177 -0
  481. package/dist/components/forms/number-input/index.d.ts +3 -0
  482. package/dist/components/forms/number-input/index.js +2 -0
  483. package/dist/components/forms/number-input/number-input-field.svelte +157 -0
  484. package/dist/components/forms/number-input/number-input-field.svelte.d.ts +21 -0
  485. package/dist/components/forms/number-input/number-input-math.d.ts +21 -0
  486. package/dist/components/forms/number-input/number-input-math.js +43 -0
  487. package/dist/components/forms/number-input/number-input.svelte +175 -0
  488. package/dist/components/forms/number-input/number-input.svelte.d.ts +53 -0
  489. package/dist/components/forms/quantity-input/index.d.ts +1 -0
  490. package/dist/components/forms/quantity-input/index.js +1 -0
  491. package/dist/components/forms/quantity-input/quantity-input.svelte +262 -0
  492. package/dist/components/forms/quantity-input/quantity-input.svelte.d.ts +75 -0
  493. package/dist/components/forms/radio-group/index.d.ts +2 -0
  494. package/dist/components/forms/radio-group/index.js +2 -0
  495. package/dist/components/forms/radio-group/radio-group-item.svelte +41 -0
  496. package/dist/components/forms/radio-group/radio-group-item.svelte.d.ts +6 -0
  497. package/dist/components/forms/radio-group/radio-group.svelte +30 -0
  498. package/dist/components/forms/radio-group/radio-group.svelte.d.ts +5 -0
  499. package/dist/components/forms/select/index.d.ts +10 -0
  500. package/dist/components/forms/select/index.js +10 -0
  501. package/dist/components/forms/select/select-content.svelte +53 -0
  502. package/dist/components/forms/select/select-content.svelte.d.ts +9 -0
  503. package/dist/components/forms/select/select-group.svelte +16 -0
  504. package/dist/components/forms/select/select-group.svelte.d.ts +5 -0
  505. package/dist/components/forms/select/select-item.svelte +67 -0
  506. package/dist/components/forms/select/select-item.svelte.d.ts +13 -0
  507. package/dist/components/forms/select/select-label.svelte +23 -0
  508. package/dist/components/forms/select/select-label.svelte.d.ts +5 -0
  509. package/dist/components/forms/select/select-scroll-down-button.svelte +30 -0
  510. package/dist/components/forms/select/select-scroll-down-button.svelte.d.ts +6 -0
  511. package/dist/components/forms/select/select-scroll-up-button.svelte +30 -0
  512. package/dist/components/forms/select/select-scroll-up-button.svelte.d.ts +6 -0
  513. package/dist/components/forms/select/select-separator.svelte +26 -0
  514. package/dist/components/forms/select/select-separator.svelte.d.ts +6 -0
  515. package/dist/components/forms/select/select-trigger.svelte +48 -0
  516. package/dist/components/forms/select/select-trigger.svelte.d.ts +14 -0
  517. package/dist/components/forms/select/select-value.svelte +16 -0
  518. package/dist/components/forms/select/select-value.svelte.d.ts +5 -0
  519. package/dist/components/forms/select/select.svelte +33 -0
  520. package/dist/components/forms/select/select.svelte.d.ts +20 -0
  521. package/dist/components/forms/switch/index.d.ts +1 -0
  522. package/dist/components/forms/switch/index.js +1 -0
  523. package/dist/components/forms/switch/switch.svelte +41 -0
  524. package/dist/components/forms/switch/switch.svelte.d.ts +7 -0
  525. package/dist/components/forms/switch-field/index.d.ts +1 -0
  526. package/dist/components/forms/switch-field/index.js +1 -0
  527. package/dist/components/forms/switch-field/switch-field.svelte +124 -0
  528. package/dist/components/forms/switch-field/switch-field.svelte.d.ts +51 -0
  529. package/dist/components/forms/textarea/index.d.ts +1 -0
  530. package/dist/components/forms/textarea/index.js +1 -0
  531. package/dist/components/forms/textarea/textarea.svelte +70 -0
  532. package/dist/components/forms/textarea/textarea.svelte.d.ts +12 -0
  533. package/dist/components/forms/time-picker/index.d.ts +1 -0
  534. package/dist/components/forms/time-picker/index.js +1 -0
  535. package/dist/components/forms/time-picker/time-picker.svelte +127 -0
  536. package/dist/components/forms/time-picker/time-picker.svelte.d.ts +20 -0
  537. package/dist/components/forms/toggle/index.d.ts +2 -0
  538. package/dist/components/forms/toggle/index.js +2 -0
  539. package/dist/components/forms/toggle/toggle-variants.d.ts +13 -0
  540. package/dist/components/forms/toggle/toggle-variants.js +63 -0
  541. package/dist/components/forms/toggle/toggle.svelte +48 -0
  542. package/dist/components/forms/toggle/toggle.svelte.d.ts +16 -0
  543. package/dist/components/forms/toggle-group/index.d.ts +2 -0
  544. package/dist/components/forms/toggle-group/index.js +2 -0
  545. package/dist/components/forms/toggle-group/toggle-group-item.svelte +60 -0
  546. package/dist/components/forms/toggle-group/toggle-group-item.svelte.d.ts +9 -0
  547. package/dist/components/forms/toggle-group/toggle-group.svelte +82 -0
  548. package/dist/components/forms/toggle-group/toggle-group.svelte.d.ts +21 -0
  549. package/dist/components/layout/aside-card/aside-card.svelte +76 -0
  550. package/dist/components/layout/aside-card/aside-card.svelte.d.ts +19 -0
  551. package/dist/components/layout/aside-card/index.d.ts +1 -0
  552. package/dist/components/layout/aside-card/index.js +1 -0
  553. package/dist/components/layout/card/card-action.svelte +33 -0
  554. package/dist/components/layout/card/card-action.svelte.d.ts +12 -0
  555. package/dist/components/layout/card/card-content.svelte +48 -0
  556. package/dist/components/layout/card/card-content.svelte.d.ts +19 -0
  557. package/dist/components/layout/card/card-description.svelte +32 -0
  558. package/dist/components/layout/card/card-description.svelte.d.ts +6 -0
  559. package/dist/components/layout/card/card-footer.svelte +62 -0
  560. package/dist/components/layout/card/card-footer.svelte.d.ts +23 -0
  561. package/dist/components/layout/card/card-header.svelte +48 -0
  562. package/dist/components/layout/card/card-header.svelte.d.ts +17 -0
  563. package/dist/components/layout/card/card-title.svelte +61 -0
  564. package/dist/components/layout/card/card-title.svelte.d.ts +26 -0
  565. package/dist/components/layout/card/card.svelte +60 -0
  566. package/dist/components/layout/card/card.svelte.d.ts +19 -0
  567. package/dist/components/layout/card/index.d.ts +7 -0
  568. package/dist/components/layout/card/index.js +7 -0
  569. package/dist/components/layout/card-grid/card-grid-cell.svelte +32 -0
  570. package/dist/components/layout/card-grid/card-grid-cell.svelte.d.ts +11 -0
  571. package/dist/components/layout/card-grid/card-grid.svelte +51 -0
  572. package/dist/components/layout/card-grid/card-grid.svelte.d.ts +17 -0
  573. package/dist/components/layout/card-grid/index.d.ts +2 -0
  574. package/dist/components/layout/card-grid/index.js +2 -0
  575. package/dist/components/layout/card-list/card-list.svelte +59 -0
  576. package/dist/components/layout/card-list/card-list.svelte.d.ts +27 -0
  577. package/dist/components/layout/card-list/index.d.ts +1 -0
  578. package/dist/components/layout/card-list/index.js +1 -0
  579. package/dist/components/layout/collapsible/collapsible-content.svelte +16 -0
  580. package/dist/components/layout/collapsible/collapsible-content.svelte.d.ts +5 -0
  581. package/dist/components/layout/collapsible/collapsible-trigger.svelte +16 -0
  582. package/dist/components/layout/collapsible/collapsible-trigger.svelte.d.ts +5 -0
  583. package/dist/components/layout/collapsible/collapsible.svelte +22 -0
  584. package/dist/components/layout/collapsible/collapsible.svelte.d.ts +10 -0
  585. package/dist/components/layout/collapsible/index.d.ts +3 -0
  586. package/dist/components/layout/collapsible/index.js +3 -0
  587. package/dist/components/layout/page-header/index.d.ts +1 -0
  588. package/dist/components/layout/page-header/index.js +1 -0
  589. package/dist/components/layout/page-header/page-header.svelte +118 -0
  590. package/dist/components/layout/page-header/page-header.svelte.d.ts +34 -0
  591. package/dist/components/layout/page-layout/index.d.ts +1 -0
  592. package/dist/components/layout/page-layout/index.js +1 -0
  593. package/dist/components/layout/page-layout/page-layout.svelte +30 -0
  594. package/dist/components/layout/page-layout/page-layout.svelte.d.ts +10 -0
  595. package/dist/components/layout/separator/index.d.ts +1 -0
  596. package/dist/components/layout/separator/index.js +1 -0
  597. package/dist/components/layout/separator/separator.svelte +34 -0
  598. package/dist/components/layout/separator/separator.svelte.d.ts +5 -0
  599. package/dist/components/layout/summary-card/index.d.ts +1 -0
  600. package/dist/components/layout/summary-card/index.js +1 -0
  601. package/dist/components/layout/summary-card/summary-card.svelte +51 -0
  602. package/dist/components/layout/summary-card/summary-card.svelte.d.ts +23 -0
  603. package/dist/components/navigation/breadcrumb/breadcrumb-ellipsis.svelte +38 -0
  604. package/dist/components/navigation/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +9 -0
  605. package/dist/components/navigation/breadcrumb/breadcrumb-item.svelte +30 -0
  606. package/dist/components/navigation/breadcrumb/breadcrumb-item.svelte.d.ts +10 -0
  607. package/dist/components/navigation/breadcrumb/breadcrumb-link.svelte +42 -0
  608. package/dist/components/navigation/breadcrumb/breadcrumb-link.svelte.d.ts +12 -0
  609. package/dist/components/navigation/breadcrumb/breadcrumb-list.svelte +26 -0
  610. package/dist/components/navigation/breadcrumb/breadcrumb-list.svelte.d.ts +6 -0
  611. package/dist/components/navigation/breadcrumb/breadcrumb-page.svelte +31 -0
  612. package/dist/components/navigation/breadcrumb/breadcrumb-page.svelte.d.ts +10 -0
  613. package/dist/components/navigation/breadcrumb/breadcrumb-separator.svelte +39 -0
  614. package/dist/components/navigation/breadcrumb/breadcrumb-separator.svelte.d.ts +9 -0
  615. package/dist/components/navigation/breadcrumb/breadcrumb.svelte +32 -0
  616. package/dist/components/navigation/breadcrumb/breadcrumb.svelte.d.ts +11 -0
  617. package/dist/components/navigation/breadcrumb/index.d.ts +7 -0
  618. package/dist/components/navigation/breadcrumb/index.js +7 -0
  619. package/dist/components/navigation/sidebar/context.svelte.d.ts +26 -0
  620. package/dist/components/navigation/sidebar/context.svelte.js +61 -0
  621. package/dist/components/navigation/sidebar/index.d.ts +25 -0
  622. package/dist/components/navigation/sidebar/index.js +25 -0
  623. package/dist/components/navigation/sidebar/sidebar-content.svelte +32 -0
  624. package/dist/components/navigation/sidebar/sidebar-content.svelte.d.ts +7 -0
  625. package/dist/components/navigation/sidebar/sidebar-footer.svelte +28 -0
  626. package/dist/components/navigation/sidebar/sidebar-footer.svelte.d.ts +6 -0
  627. package/dist/components/navigation/sidebar/sidebar-group-action.svelte +50 -0
  628. package/dist/components/navigation/sidebar/sidebar-group-action.svelte.d.ts +12 -0
  629. package/dist/components/navigation/sidebar/sidebar-group-content.svelte +36 -0
  630. package/dist/components/navigation/sidebar/sidebar-group-content.svelte.d.ts +6 -0
  631. package/dist/components/navigation/sidebar/sidebar-group-label.svelte +51 -0
  632. package/dist/components/navigation/sidebar/sidebar-group-label.svelte.d.ts +12 -0
  633. package/dist/components/navigation/sidebar/sidebar-group.svelte +32 -0
  634. package/dist/components/navigation/sidebar/sidebar-group.svelte.d.ts +6 -0
  635. package/dist/components/navigation/sidebar/sidebar-header.svelte +33 -0
  636. package/dist/components/navigation/sidebar/sidebar-header.svelte.d.ts +6 -0
  637. package/dist/components/navigation/sidebar/sidebar-input.svelte +31 -0
  638. package/dist/components/navigation/sidebar/sidebar-input.svelte.d.ts +5 -0
  639. package/dist/components/navigation/sidebar/sidebar-inset.svelte +32 -0
  640. package/dist/components/navigation/sidebar/sidebar-inset.svelte.d.ts +6 -0
  641. package/dist/components/navigation/sidebar/sidebar-menu-action.svelte +58 -0
  642. package/dist/components/navigation/sidebar/sidebar-menu-action.svelte.d.ts +14 -0
  643. package/dist/components/navigation/sidebar/sidebar-menu-badge.svelte +42 -0
  644. package/dist/components/navigation/sidebar/sidebar-menu-badge.svelte.d.ts +6 -0
  645. package/dist/components/navigation/sidebar/sidebar-menu-button.svelte +97 -0
  646. package/dist/components/navigation/sidebar/sidebar-menu-button.svelte.d.ts +20 -0
  647. package/dist/components/navigation/sidebar/sidebar-menu-item.svelte +33 -0
  648. package/dist/components/navigation/sidebar/sidebar-menu-item.svelte.d.ts +6 -0
  649. package/dist/components/navigation/sidebar/sidebar-menu-skeleton.svelte +46 -0
  650. package/dist/components/navigation/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
  651. package/dist/components/navigation/sidebar/sidebar-menu-sub-button.svelte +64 -0
  652. package/dist/components/navigation/sidebar/sidebar-menu-sub-button.svelte.d.ts +14 -0
  653. package/dist/components/navigation/sidebar/sidebar-menu-sub-item.svelte +33 -0
  654. package/dist/components/navigation/sidebar/sidebar-menu-sub-item.svelte.d.ts +6 -0
  655. package/dist/components/navigation/sidebar/sidebar-menu-sub.svelte +37 -0
  656. package/dist/components/navigation/sidebar/sidebar-menu-sub.svelte.d.ts +6 -0
  657. package/dist/components/navigation/sidebar/sidebar-menu.svelte +28 -0
  658. package/dist/components/navigation/sidebar/sidebar-menu.svelte.d.ts +6 -0
  659. package/dist/components/navigation/sidebar/sidebar-provider.svelte +74 -0
  660. package/dist/components/navigation/sidebar/sidebar-provider.svelte.d.ts +19 -0
  661. package/dist/components/navigation/sidebar/sidebar-rail.svelte +42 -0
  662. package/dist/components/navigation/sidebar/sidebar-rail.svelte.d.ts +6 -0
  663. package/dist/components/navigation/sidebar/sidebar-separator.svelte +29 -0
  664. package/dist/components/navigation/sidebar/sidebar-separator.svelte.d.ts +5 -0
  665. package/dist/components/navigation/sidebar/sidebar-trigger.svelte +40 -0
  666. package/dist/components/navigation/sidebar/sidebar-trigger.svelte.d.ts +5 -0
  667. package/dist/components/navigation/sidebar/sidebar-variants.d.ts +11 -0
  668. package/dist/components/navigation/sidebar/sidebar-variants.js +40 -0
  669. package/dist/components/navigation/sidebar/sidebar.svelte +152 -0
  670. package/dist/components/navigation/sidebar/sidebar.svelte.d.ts +17 -0
  671. package/dist/components/navigation/stepper/index.d.ts +2 -0
  672. package/dist/components/navigation/stepper/index.js +2 -0
  673. package/dist/components/navigation/stepper/stepper-chip.svelte +42 -0
  674. package/dist/components/navigation/stepper/stepper-chip.svelte.d.ts +16 -0
  675. package/dist/components/navigation/stepper/stepper-navigation.svelte +112 -0
  676. package/dist/components/navigation/stepper/stepper-navigation.svelte.d.ts +36 -0
  677. package/dist/components/navigation/stepper/stepper.svelte +364 -0
  678. package/dist/components/navigation/stepper/stepper.svelte.d.ts +65 -0
  679. package/dist/components/navigation/tabs/index.d.ts +4 -0
  680. package/dist/components/navigation/tabs/index.js +4 -0
  681. package/dist/components/navigation/tabs/tabs-content.svelte +23 -0
  682. package/dist/components/navigation/tabs/tabs-content.svelte.d.ts +5 -0
  683. package/dist/components/navigation/tabs/tabs-list.svelte +24 -0
  684. package/dist/components/navigation/tabs/tabs-list.svelte.d.ts +5 -0
  685. package/dist/components/navigation/tabs/tabs-trigger.svelte +24 -0
  686. package/dist/components/navigation/tabs/tabs-trigger.svelte.d.ts +5 -0
  687. package/dist/components/navigation/tabs/tabs.svelte +30 -0
  688. package/dist/components/navigation/tabs/tabs.svelte.d.ts +5 -0
  689. package/dist/components/overlays/alert-dialog/alert-dialog-action.svelte +50 -0
  690. package/dist/components/overlays/alert-dialog/alert-dialog-action.svelte.d.ts +7 -0
  691. package/dist/components/overlays/alert-dialog/alert-dialog-cancel.svelte +34 -0
  692. package/dist/components/overlays/alert-dialog/alert-dialog-cancel.svelte.d.ts +7 -0
  693. package/dist/components/overlays/alert-dialog/alert-dialog-content.svelte +45 -0
  694. package/dist/components/overlays/alert-dialog/alert-dialog-content.svelte.d.ts +12 -0
  695. package/dist/components/overlays/alert-dialog/alert-dialog-description.svelte +23 -0
  696. package/dist/components/overlays/alert-dialog/alert-dialog-description.svelte.d.ts +5 -0
  697. package/dist/components/overlays/alert-dialog/alert-dialog-footer.svelte +35 -0
  698. package/dist/components/overlays/alert-dialog/alert-dialog-footer.svelte.d.ts +6 -0
  699. package/dist/components/overlays/alert-dialog/alert-dialog-header.svelte +35 -0
  700. package/dist/components/overlays/alert-dialog/alert-dialog-header.svelte.d.ts +6 -0
  701. package/dist/components/overlays/alert-dialog/alert-dialog-media.svelte +35 -0
  702. package/dist/components/overlays/alert-dialog/alert-dialog-media.svelte.d.ts +6 -0
  703. package/dist/components/overlays/alert-dialog/alert-dialog-overlay.svelte +26 -0
  704. package/dist/components/overlays/alert-dialog/alert-dialog-overlay.svelte.d.ts +5 -0
  705. package/dist/components/overlays/alert-dialog/alert-dialog-portal.svelte +16 -0
  706. package/dist/components/overlays/alert-dialog/alert-dialog-portal.svelte.d.ts +5 -0
  707. package/dist/components/overlays/alert-dialog/alert-dialog-title.svelte +26 -0
  708. package/dist/components/overlays/alert-dialog/alert-dialog-title.svelte.d.ts +5 -0
  709. package/dist/components/overlays/alert-dialog/alert-dialog-trigger.svelte +16 -0
  710. package/dist/components/overlays/alert-dialog/alert-dialog-trigger.svelte.d.ts +5 -0
  711. package/dist/components/overlays/alert-dialog/alert-dialog.svelte +34 -0
  712. package/dist/components/overlays/alert-dialog/alert-dialog.svelte.d.ts +12 -0
  713. package/dist/components/overlays/alert-dialog/index.d.ts +12 -0
  714. package/dist/components/overlays/alert-dialog/index.js +12 -0
  715. package/dist/components/overlays/dialog/dialog-close.svelte +16 -0
  716. package/dist/components/overlays/dialog/dialog-close.svelte.d.ts +5 -0
  717. package/dist/components/overlays/dialog/dialog-content.svelte +79 -0
  718. package/dist/components/overlays/dialog/dialog-content.svelte.d.ts +26 -0
  719. package/dist/components/overlays/dialog/dialog-description.svelte +23 -0
  720. package/dist/components/overlays/dialog/dialog-description.svelte.d.ts +5 -0
  721. package/dist/components/overlays/dialog/dialog-footer.svelte +27 -0
  722. package/dist/components/overlays/dialog/dialog-footer.svelte.d.ts +6 -0
  723. package/dist/components/overlays/dialog/dialog-header.svelte +27 -0
  724. package/dist/components/overlays/dialog/dialog-header.svelte.d.ts +6 -0
  725. package/dist/components/overlays/dialog/dialog-overlay.svelte +26 -0
  726. package/dist/components/overlays/dialog/dialog-overlay.svelte.d.ts +5 -0
  727. package/dist/components/overlays/dialog/dialog-portal.svelte +16 -0
  728. package/dist/components/overlays/dialog/dialog-portal.svelte.d.ts +5 -0
  729. package/dist/components/overlays/dialog/dialog-title.svelte +23 -0
  730. package/dist/components/overlays/dialog/dialog-title.svelte.d.ts +5 -0
  731. package/dist/components/overlays/dialog/dialog-trigger.svelte +16 -0
  732. package/dist/components/overlays/dialog/dialog-trigger.svelte.d.ts +5 -0
  733. package/dist/components/overlays/dialog/dialog.svelte +16 -0
  734. package/dist/components/overlays/dialog/dialog.svelte.d.ts +5 -0
  735. package/dist/components/overlays/dialog/index.d.ts +10 -0
  736. package/dist/components/overlays/dialog/index.js +10 -0
  737. package/dist/components/overlays/drawer/drawer-close.svelte +16 -0
  738. package/dist/components/overlays/drawer/drawer-close.svelte.d.ts +5 -0
  739. package/dist/components/overlays/drawer/drawer-content.svelte +50 -0
  740. package/dist/components/overlays/drawer/drawer-content.svelte.d.ts +8 -0
  741. package/dist/components/overlays/drawer/drawer-description.svelte +23 -0
  742. package/dist/components/overlays/drawer/drawer-description.svelte.d.ts +5 -0
  743. package/dist/components/overlays/drawer/drawer-footer.svelte +27 -0
  744. package/dist/components/overlays/drawer/drawer-footer.svelte.d.ts +6 -0
  745. package/dist/components/overlays/drawer/drawer-header.svelte +30 -0
  746. package/dist/components/overlays/drawer/drawer-header.svelte.d.ts +6 -0
  747. package/dist/components/overlays/drawer/drawer-overlay.svelte +26 -0
  748. package/dist/components/overlays/drawer/drawer-overlay.svelte.d.ts +5 -0
  749. package/dist/components/overlays/drawer/drawer-portal.svelte +16 -0
  750. package/dist/components/overlays/drawer/drawer-portal.svelte.d.ts +5 -0
  751. package/dist/components/overlays/drawer/drawer-title.svelte +23 -0
  752. package/dist/components/overlays/drawer/drawer-title.svelte.d.ts +5 -0
  753. package/dist/components/overlays/drawer/drawer-trigger.svelte +16 -0
  754. package/dist/components/overlays/drawer/drawer-trigger.svelte.d.ts +5 -0
  755. package/dist/components/overlays/drawer/drawer.svelte +28 -0
  756. package/dist/components/overlays/drawer/drawer.svelte.d.ts +11 -0
  757. package/dist/components/overlays/drawer/index.d.ts +10 -0
  758. package/dist/components/overlays/drawer/index.js +10 -0
  759. package/dist/components/overlays/hint/hint.svelte +69 -0
  760. package/dist/components/overlays/hint/hint.svelte.d.ts +32 -0
  761. package/dist/components/overlays/hint/index.d.ts +1 -0
  762. package/dist/components/overlays/hint/index.js +1 -0
  763. package/dist/components/overlays/hover-card/hover-card-content.svelte +46 -0
  764. package/dist/components/overlays/hover-card/hover-card-content.svelte.d.ts +12 -0
  765. package/dist/components/overlays/hover-card/hover-card-trigger.svelte +18 -0
  766. package/dist/components/overlays/hover-card/hover-card-trigger.svelte.d.ts +5 -0
  767. package/dist/components/overlays/hover-card/hover-card.svelte +22 -0
  768. package/dist/components/overlays/hover-card/hover-card.svelte.d.ts +10 -0
  769. package/dist/components/overlays/hover-card/index.d.ts +3 -0
  770. package/dist/components/overlays/hover-card/index.js +3 -0
  771. package/dist/components/overlays/popover/index.d.ts +3 -0
  772. package/dist/components/overlays/popover/index.js +3 -0
  773. package/dist/components/overlays/popover/popover-content.svelte +54 -0
  774. package/dist/components/overlays/popover/popover-content.svelte.d.ts +19 -0
  775. package/dist/components/overlays/popover/popover-trigger.svelte +16 -0
  776. package/dist/components/overlays/popover/popover-trigger.svelte.d.ts +5 -0
  777. package/dist/components/overlays/popover/popover.svelte +22 -0
  778. package/dist/components/overlays/popover/popover.svelte.d.ts +10 -0
  779. package/dist/components/overlays/sheet/index.d.ts +8 -0
  780. package/dist/components/overlays/sheet/index.js +8 -0
  781. package/dist/components/overlays/sheet/sheet-close.svelte +16 -0
  782. package/dist/components/overlays/sheet/sheet-close.svelte.d.ts +5 -0
  783. package/dist/components/overlays/sheet/sheet-content.svelte +71 -0
  784. package/dist/components/overlays/sheet/sheet-content.svelte.d.ts +18 -0
  785. package/dist/components/overlays/sheet/sheet-description.svelte +23 -0
  786. package/dist/components/overlays/sheet/sheet-description.svelte.d.ts +5 -0
  787. package/dist/components/overlays/sheet/sheet-footer.svelte +27 -0
  788. package/dist/components/overlays/sheet/sheet-footer.svelte.d.ts +6 -0
  789. package/dist/components/overlays/sheet/sheet-header.svelte +27 -0
  790. package/dist/components/overlays/sheet/sheet-header.svelte.d.ts +6 -0
  791. package/dist/components/overlays/sheet/sheet-title.svelte +23 -0
  792. package/dist/components/overlays/sheet/sheet-title.svelte.d.ts +5 -0
  793. package/dist/components/overlays/sheet/sheet-trigger.svelte +16 -0
  794. package/dist/components/overlays/sheet/sheet-trigger.svelte.d.ts +5 -0
  795. package/dist/components/overlays/sheet/sheet.svelte +20 -0
  796. package/dist/components/overlays/sheet/sheet.svelte.d.ts +9 -0
  797. package/dist/components/overlays/tooltip/index.d.ts +4 -0
  798. package/dist/components/overlays/tooltip/index.js +4 -0
  799. package/dist/components/overlays/tooltip/tooltip-content.svelte +58 -0
  800. package/dist/components/overlays/tooltip/tooltip-content.svelte.d.ts +14 -0
  801. package/dist/components/overlays/tooltip/tooltip-provider.svelte +16 -0
  802. package/dist/components/overlays/tooltip/tooltip-provider.svelte.d.ts +5 -0
  803. package/dist/components/overlays/tooltip/tooltip-trigger.svelte +16 -0
  804. package/dist/components/overlays/tooltip/tooltip-trigger.svelte.d.ts +5 -0
  805. package/dist/components/overlays/tooltip/tooltip.svelte +21 -0
  806. package/dist/components/overlays/tooltip/tooltip.svelte.d.ts +5 -0
  807. package/dist/components/typography/heading/heading.svelte +60 -0
  808. package/dist/components/typography/heading/heading.svelte.d.ts +23 -0
  809. package/dist/components/typography/heading/index.d.ts +1 -0
  810. package/dist/components/typography/heading/index.js +1 -0
  811. package/dist/components/typography/text/index.d.ts +1 -0
  812. package/dist/components/typography/text/index.js +1 -0
  813. package/dist/components/typography/text/text.svelte +84 -0
  814. package/dist/components/typography/text/text.svelte.d.ts +31 -0
  815. package/dist/form.d.ts +9 -0
  816. package/dist/form.js +9 -0
  817. package/dist/hooks/is-mobile.svelte.d.ts +15 -0
  818. package/dist/hooks/is-mobile.svelte.js +17 -0
  819. package/dist/index.d.ts +94 -0
  820. package/dist/index.js +101 -0
  821. package/dist/styles/components.css +192 -0
  822. package/dist/theme.css +535 -0
  823. package/dist/tokens/cli.d.ts +11 -0
  824. package/dist/tokens/cli.js +58 -0
  825. package/dist/tokens/config.d.ts +39 -0
  826. package/dist/tokens/config.js +46 -0
  827. package/dist/tokens/emit-web.d.ts +11 -0
  828. package/dist/tokens/emit-web.js +172 -0
  829. package/dist/tokens/geometry.d.ts +62 -0
  830. package/dist/tokens/geometry.js +67 -0
  831. package/dist/tokens/info.d.ts +10 -0
  832. package/dist/tokens/info.js +62 -0
  833. package/dist/tokens/presets.d.ts +51 -0
  834. package/dist/tokens/presets.js +35 -0
  835. package/dist/tokens/semantic.d.ts +32 -0
  836. package/dist/tokens/semantic.js +158 -0
  837. package/dist/tokens/tailwind-palette.d.ts +356 -0
  838. package/dist/tokens/tailwind-palette.js +352 -0
  839. package/dist/tokens.d.ts +11 -0
  840. package/dist/tokens.js +11 -0
  841. package/dist/utils/cn.d.ts +11 -0
  842. package/dist/utils/cn.js +14 -0
  843. package/dist/utils/monotone-path.d.ts +10 -0
  844. package/dist/utils/monotone-path.js +52 -0
  845. package/dist/utils/segmented-control.d.ts +47 -0
  846. package/dist/utils/segmented-control.js +53 -0
  847. package/dist/utils/tone.d.ts +78 -0
  848. package/dist/utils/tone.js +119 -0
  849. package/dist/utils/types.d.ts +17 -0
  850. package/dist/utils/types.js +6 -0
  851. package/package.json +124 -3
  852. package/skills/mise/SKILL.md +159 -0
  853. package/skills/mise/components/actions.md +200 -0
  854. package/skills/mise/components/data-display.md +728 -0
  855. package/skills/mise/components/feedback.md +198 -0
  856. package/skills/mise/components/forms.md +712 -0
  857. package/skills/mise/components/layout.md +178 -0
  858. package/skills/mise/components/navigation.md +250 -0
  859. package/skills/mise/components/overlays.md +291 -0
  860. package/skills/mise/components/typography.md +36 -0
  861. package/skills/mise/recipes/dashboard-page.md +40 -0
  862. package/skills/mise/recipes/dashboard-page.svelte +132 -0
  863. package/skills/mise/recipes/data-table.md +39 -0
  864. package/skills/mise/recipes/data-table.svelte +130 -0
  865. package/skills/mise/recipes/form-sveltekit.svelte +79 -0
  866. package/skills/mise/recipes/form.md +82 -0
  867. package/skills/mise/recipes/form.svelte +158 -0
  868. package/skills/mise/setup.md +99 -0
  869. package/skills/mise/theming.md +82 -0
@@ -0,0 +1,105 @@
1
+ <!--
2
+ Origin: the React package 2.23.0 `chart.tsx` (`ChartContainer`), itself shadcn/ui new-york `chart`
3
+ Svelte: shadcn-svelte `chart`
4
+ Diverged: LayerChart for recharts. The classes that restyle the chart are
5
+ shadcn-svelte's, written against LayerChart's `lc-*` class names where
6
+ React's targeted recharts'; they take over React's `chartAxis` (no tick
7
+ lines, no axis line). The id comes from a module counter rather than
8
+ `$props.id()`, which needs Svelte 5.20 where the package supports any Svelte 5.
9
+ -->
10
+ <script lang="ts" module>
11
+ /**
12
+ * The frame a chart draws in: it writes the config's colours as
13
+ * `--color-<key>` for both schemes, scoped to this chart, and restyles
14
+ * LayerChart to the package's quiet axes and grid.
15
+ */
16
+ import type { HTMLAttributes } from 'svelte/elements'
17
+
18
+ import type { WithElementRef } from '../../../utils/types.js'
19
+ import type { ChartConfig } from './chart-utils.js'
20
+
21
+ export type ChartContainerProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
22
+ /** Each series' label and colour; colours are written as `--color-<key>`. */
23
+ config: ChartConfig
24
+ }
25
+
26
+ let instances = 0
27
+ </script>
28
+
29
+ <script lang="ts">
30
+ import { cn } from '../../../utils/cn.js'
31
+ import ChartStyle from './chart-style.svelte'
32
+ import { setChartContext } from './chart-utils.js'
33
+
34
+ const uid = `${++instances}`
35
+
36
+ let {
37
+ ref = $bindable(null),
38
+ id = uid,
39
+ class: className,
40
+ children,
41
+ config,
42
+ ...restProps
43
+ }: ChartContainerProps = $props()
44
+
45
+ const chartId = $derived(`chart-${id || uid.replace(/:/g, '')}`)
46
+
47
+ setChartContext({
48
+ get config() {
49
+ return config
50
+ },
51
+ })
52
+ </script>
53
+
54
+ <div
55
+ bind:this={ref}
56
+ data-chart={chartId}
57
+ data-slot="chart"
58
+ class={cn(
59
+ 'flex aspect-video justify-center overflow-visible text-xs',
60
+ // Overrides
61
+ //
62
+ // Stroke around dots/marks when hovering
63
+ '[&_.lc-highlight-point]:stroke-transparent',
64
+ // override the default stroke color of lines
65
+ '[&_.lc-line]:stroke-border/50',
66
+
67
+ // by default, layerchart shows a line intersecting the point when hovering, this hides that
68
+ '[&_.lc-highlight-line]:stroke-0',
69
+
70
+ // by default, when you hover a point on a stacked series chart, it will drop the opacity
71
+ // of the other series, this overrides that
72
+ '[&_.lc-area-path]:opacity-100 [&_.lc-highlight-line]:opacity-100 [&_.lc-highlight-point]:opacity-100 [&_.lc-spline-path]:opacity-100 [&_.lc-text]:text-xs [&_.lc-text-svg]:overflow-visible',
73
+
74
+ // We don't want the little tick lines between the axis labels and the chart, so we remove
75
+ // the stroke. The alternative is to manually disable `tickMarks` on the x/y axis of every
76
+ // chart.
77
+ '[&_.lc-axis-tick]:stroke-0',
78
+
79
+ // We don't want to display the rule on the x/y axis, as there is already going to be
80
+ // a grid line there and rule ends up overlapping the marks because it is rendered after
81
+ // the marks
82
+ '[&_.lc-rule-x-line:not(.lc-grid-x-rule)]:stroke-0 [&_.lc-rule-y-line:not(.lc-grid-y-rule)]:stroke-0',
83
+ '[&_.lc-grid-x-radial-circle]:stroke-border [&_.lc-grid-x-radial-line]:stroke-border',
84
+ '[&_.lc-grid-y-radial-circle]:stroke-border [&_.lc-grid-y-radial-line]:stroke-border',
85
+
86
+ // Legend adjustments
87
+ '[&_.lc-legend-swatch-button]:items-center [&_.lc-legend-swatch-button]:gap-1.5',
88
+ '[&_.lc-legend-swatch-group]:items-center [&_.lc-legend-swatch-group]:gap-4',
89
+ '[&_.lc-legend-swatch]:size-2.5 [&_.lc-legend-swatch]:rounded-[2px]',
90
+
91
+ // Labels
92
+ '[&_.lc-labels-text:not([fill])]:fill-foreground [&_text]:stroke-transparent',
93
+
94
+ // Tick labels on th x/y axes
95
+ '[&_.lc-axis-tick-label]:fill-muted-foreground [&_.lc-axis-tick-label]:font-normal',
96
+ '[&_.lc-tooltip-rects-g]:fill-transparent',
97
+ '[&_.lc-layout-svg-g]:fill-transparent',
98
+ '[&_.lc-root-container]:w-full',
99
+ className,
100
+ )}
101
+ {...restProps}
102
+ >
103
+ <ChartStyle id={chartId} {config} />
104
+ {@render children?.()}
105
+ </div>
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The frame a chart draws in: it writes the config's colours as
3
+ * `--color-<key>` for both schemes, scoped to this chart, and restyles
4
+ * LayerChart to the package's quiet axes and grid.
5
+ */
6
+ import type { HTMLAttributes } from 'svelte/elements';
7
+ import type { WithElementRef } from '../../../utils/types.js';
8
+ import type { ChartConfig } from './chart-utils.js';
9
+ export type ChartContainerProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
10
+ /** Each series' label and colour; colours are written as `--color-<key>`. */
11
+ config: ChartConfig;
12
+ };
13
+ declare const Chart: import("svelte").Component<ChartContainerProps, {}, "ref">;
14
+ type Chart = ReturnType<typeof Chart>;
15
+ export default Chart;
@@ -0,0 +1,5 @@
1
+ export { type ChartContainerProps, default as ChartContainer } from './chart.svelte';
2
+ export { chartAreaFillOpacity, chartComparisonSeriesClass, chartGrid, chartLineStrokeWidth, } from './chart-defaults.js';
3
+ export { type ChartStyleProps, default as ChartStyle } from './chart-style.svelte';
4
+ export { type ChartTooltipProps, default as ChartTooltip } from './chart-tooltip.svelte';
5
+ export { type ChartConfig, getPayloadConfigFromPayload, useChart } from './chart-utils.js';
@@ -0,0 +1,5 @@
1
+ export { default as ChartContainer } from './chart.svelte';
2
+ export { chartAreaFillOpacity, chartComparisonSeriesClass, chartGrid, chartLineStrokeWidth, } from './chart-defaults.js';
3
+ export { default as ChartStyle } from './chart-style.svelte';
4
+ export { default as ChartTooltip } from './chart-tooltip.svelte';
5
+ export { getPayloadConfigFromPayload, useChart } from './chart-utils.js';
@@ -0,0 +1,157 @@
1
+ <!--
2
+ Origin: the React package 2.23.0 `checklist-card.tsx`
3
+ Diverged: one of the checklist family (round 8 plan, R8-4), its rows drawn by
4
+ the family's shared row heading. `action`, `footer`, `collapsedControl` and
5
+ each item's `action` are snippets. Lucide's list-checks. Spreads the rest
6
+ onto the card, as every component does.
7
+ -->
8
+ <script lang="ts" module>
9
+ import type { Snippet } from 'svelte'
10
+
11
+ import type { CardProps } from '../../layout/card/card.svelte'
12
+ import type { ChecklistCardItem } from './checklist-types.js'
13
+
14
+ /**
15
+ * A progress card small enough to live above a sidebar's nav: a ring, a
16
+ * heading, and the next few unmet rows.
17
+ *
18
+ * Not `ReadinessChecklist`, which answers "what does this page still need
19
+ * from me" and tags rows Required in warning colour. This answers "what is
20
+ * worth doing next", where an untouched row is not a problem.
21
+ *
22
+ * The ring is `success` at the end and `primary` before it, and that is not
23
+ * a prop: a setup checklist has one finish line.
24
+ */
25
+ export type ChecklistCardProps = Omit<CardProps, 'title' | 'children' | 'variant'> & {
26
+ title: string
27
+ /**
28
+ * 0–100, clamped, rounded for the figure only. Not derived from `items`:
29
+ * the card shows the next few rows and the ring counts all of them.
30
+ */
31
+ percent: number
32
+ items: ChecklistCardItem[]
33
+ /**
34
+ * The sidebar's icon-rail mode: no card, just a solid icon button at a nav
35
+ * icon's width, with the share in its accessible name.
36
+ */
37
+ collapsed?: boolean
38
+ /** Replaces the collapsed button, so it can match the caller's own nav buttons. */
39
+ collapsedControl?: Snippet
40
+ /**
41
+ * `md` for a card on its own; `sm` for one pinned above a sidebar's nav.
42
+ * `sm` scales the ring, the title, the rows and the card's padding together.
43
+ */
44
+ size?: 'sm' | 'md'
45
+ /**
46
+ * `outline` drops the fill and the shadow for a visible ring: on a dark
47
+ * sidebar a dark fill barely reads as a card, and a border separates it.
48
+ */
49
+ variant?: 'default' | 'outline'
50
+ /** The header's corner: a "Hide" button. */
51
+ action?: Snippet
52
+ /** The way to the full list: "See all steps". */
53
+ footer?: Snippet
54
+ }
55
+ </script>
56
+
57
+ <script lang="ts">
58
+ import ListChecksIcon from '@lucide/svelte/icons/list-checks'
59
+
60
+ import { cn } from '../../../utils/cn.js'
61
+ import Card from '../../layout/card/card.svelte'
62
+ import CardContent from '../../layout/card/card-content.svelte'
63
+ import CardFooter from '../../layout/card/card-footer.svelte'
64
+ import CardHeader from '../../layout/card/card-header.svelte'
65
+ import CardTitle from '../../layout/card/card-title.svelte'
66
+ import CardList from '../../layout/card-list/card-list.svelte'
67
+ import RadialStat from '../radial-stat/radial-stat.svelte'
68
+ import ChecklistRowHeading from './checklist-row-heading.svelte'
69
+
70
+ let {
71
+ title,
72
+ percent,
73
+ items,
74
+ collapsed = false,
75
+ collapsedControl,
76
+ size = 'md',
77
+ variant = 'default',
78
+ action,
79
+ footer,
80
+ class: className,
81
+ ...rest
82
+ }: ChecklistCardProps = $props()
83
+
84
+ const bounded = $derived(Math.min(100, Math.max(0, percent)))
85
+ // Rounded for the figure only: 99.6% reads 100% while the ring keeps its gap
86
+ // and its unfinished colour.
87
+ const shown = $derived(Math.round(bounded))
88
+ const tone = $derived(bounded >= 100 ? 'success' : 'primary')
89
+ // Collapsed, the name carries the title; expanded, CardTitle is beside it.
90
+ const ringLabel = $derived(collapsed ? `${title}: ${shown}% complete` : `${shown}% complete`)
91
+ const small = $derived(size === 'sm')
92
+ </script>
93
+
94
+ {#if collapsed}
95
+ <div data-slot="checklist-card" class={cn('flex justify-center', className)}>
96
+ {#if collapsedControl}
97
+ {@render collapsedControl()}
98
+ {:else}
99
+ <!-- A solid icon rather than the bare ring: at 0% the ring is an empty
100
+ track, which reads as nothing against a dark rail. -->
101
+ <div
102
+ role="img"
103
+ aria-label={ringLabel}
104
+ class="bg-primary text-primary-foreground flex size-10 items-center justify-center rounded-md"
105
+ >
106
+ <ListChecksIcon aria-hidden="true" class="size-6" />
107
+ </div>
108
+ {/if}
109
+ </div>
110
+ {:else}
111
+ <Card
112
+ class={cn(
113
+ // `sm` tightens --card-spacing itself, so every Card part follows it.
114
+ small && '[--card-spacing:--spacing(3)]',
115
+ // ring-border rather than Card's hairline, which reads as nothing once
116
+ // the fill it separated from is gone too.
117
+ variant === 'outline' && 'bg-transparent shadow-none ring-1 ring-border',
118
+ className,
119
+ )}
120
+ {...rest}
121
+ >
122
+ <CardHeader class="flex items-center gap-3">
123
+ <RadialStat percent={bounded} {tone} diameter={small ? 40 : 48} aria-label={ringLabel} />
124
+ <CardTitle class={cn('flex-1', small && 'text-sm')}>{title}</CardTitle>
125
+ {@render action?.()}
126
+ </CardHeader>
127
+
128
+ {#if items.length > 0}
129
+ <CardContent>
130
+ <!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
131
+ <CardList compact role="list" class={small ? '[&>*]:py-2' : undefined}>
132
+ {#each items as item (item.id)}
133
+ <!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
134
+ <div
135
+ data-slot="checklist-card-item"
136
+ role="listitem"
137
+ class={cn('flex items-center gap-2', small ? 'text-xs' : 'text-sm')}
138
+ >
139
+ <ChecklistRowHeading
140
+ state={item.done ? 'completed' : 'pending'}
141
+ label={item.label}
142
+ {size}
143
+ />
144
+ {#if item.action}
145
+ <div class="shrink-0 text-xs">{@render item.action()}</div>
146
+ {/if}
147
+ </div>
148
+ {/each}
149
+ </CardList>
150
+ </CardContent>
151
+ {/if}
152
+
153
+ {#if footer}
154
+ <CardFooter divided class={cn(small && 'text-xs')}>{@render footer()}</CardFooter>
155
+ {/if}
156
+ </Card>
157
+ {/if}
@@ -0,0 +1,47 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { CardProps } from '../../layout/card/card.svelte';
3
+ import type { ChecklistCardItem } from './checklist-types.js';
4
+ /**
5
+ * A progress card small enough to live above a sidebar's nav: a ring, a
6
+ * heading, and the next few unmet rows.
7
+ *
8
+ * Not `ReadinessChecklist`, which answers "what does this page still need
9
+ * from me" and tags rows Required in warning colour. This answers "what is
10
+ * worth doing next", where an untouched row is not a problem.
11
+ *
12
+ * The ring is `success` at the end and `primary` before it, and that is not
13
+ * a prop: a setup checklist has one finish line.
14
+ */
15
+ export type ChecklistCardProps = Omit<CardProps, 'title' | 'children' | 'variant'> & {
16
+ title: string;
17
+ /**
18
+ * 0–100, clamped, rounded for the figure only. Not derived from `items`:
19
+ * the card shows the next few rows and the ring counts all of them.
20
+ */
21
+ percent: number;
22
+ items: ChecklistCardItem[];
23
+ /**
24
+ * The sidebar's icon-rail mode: no card, just a solid icon button at a nav
25
+ * icon's width, with the share in its accessible name.
26
+ */
27
+ collapsed?: boolean;
28
+ /** Replaces the collapsed button, so it can match the caller's own nav buttons. */
29
+ collapsedControl?: Snippet;
30
+ /**
31
+ * `md` for a card on its own; `sm` for one pinned above a sidebar's nav.
32
+ * `sm` scales the ring, the title, the rows and the card's padding together.
33
+ */
34
+ size?: 'sm' | 'md';
35
+ /**
36
+ * `outline` drops the fill and the shadow for a visible ring: on a dark
37
+ * sidebar a dark fill barely reads as a card, and a border separates it.
38
+ */
39
+ variant?: 'default' | 'outline';
40
+ /** The header's corner: a "Hide" button. */
41
+ action?: Snippet;
42
+ /** The way to the full list: "See all steps". */
43
+ footer?: Snippet;
44
+ };
45
+ declare const ChecklistCard: import("svelte").Component<ChecklistCardProps, {}, "">;
46
+ type ChecklistCard = ReturnType<typeof ChecklistCard>;
47
+ export default ChecklistCard;
@@ -0,0 +1,56 @@
1
+ <!--
2
+ Origin: the React package 2.23.0 `task-checklist.tsx` (`TaskRowHeading`, `TaskStateIcon`), with `checklist-card.tsx`'s row
3
+ Diverged: one part for both components' rows (round 8 plan, R8-4): the icon,
4
+ the state a screen reader hears, and the truncating label. ChecklistCard's
5
+ `done` reads as `completed` and is announced "Completed:"/"Not started:",
6
+ where React's said "Done:"/"Not done:". Lucide's circle-check, filled by
7
+ class, for Tabler's filled check; circle-dashed and circle-minus. Not
8
+ exported.
9
+ -->
10
+ <script lang="ts" module>
11
+ import type { ChecklistTaskState } from './checklist-types.js'
12
+
13
+ export type ChecklistRowHeadingProps = {
14
+ state: ChecklistTaskState
15
+ label: string
16
+ /** `sm` for ChecklistCard's small size. */
17
+ size?: 'sm' | 'md'
18
+ }
19
+ </script>
20
+
21
+ <script lang="ts">
22
+ import CircleCheckIcon from '@lucide/svelte/icons/circle-check'
23
+ import CircleDashedIcon from '@lucide/svelte/icons/circle-dashed'
24
+ import CircleMinusIcon from '@lucide/svelte/icons/circle-minus'
25
+
26
+ import { cn } from '../../../utils/cn.js'
27
+ import { CHECKLIST_STATE_LABEL } from './checklist-types.js'
28
+
29
+ let { state, label, size = 'md' }: ChecklistRowHeadingProps = $props()
30
+
31
+ const iconSize = $derived(size === 'sm' ? 'size-3.5' : 'size-4')
32
+ </script>
33
+
34
+ {#if state === 'completed'}
35
+ <!-- Filled: the circle takes the colour and the check is cut out of it. -->
36
+ <CircleCheckIcon
37
+ aria-hidden="true"
38
+ class={cn('text-success fill-current shrink-0 [&_path]:text-background', iconSize)}
39
+ />
40
+ {:else if state === 'skipped'}
41
+ <CircleMinusIcon aria-hidden="true" class={cn('text-muted-foreground shrink-0', iconSize)} />
42
+ {:else}
43
+ <CircleDashedIcon aria-hidden="true" class={cn('text-muted-foreground shrink-0', iconSize)} />
44
+ {/if}
45
+
46
+ <!-- The state is a glyph and a colour, and neither reaches a screen reader. -->
47
+ <span class="sr-only">{CHECKLIST_STATE_LABEL[state]}</span>
48
+
49
+ <!-- `title` because the row truncates, and a long step name has no other way
50
+ to be read. -->
51
+ <span
52
+ title={label}
53
+ class={cn('min-w-0 flex-1 truncate', state !== 'pending' && 'text-muted-foreground')}
54
+ >
55
+ {label}
56
+ </span>
@@ -0,0 +1,10 @@
1
+ import type { ChecklistTaskState } from './checklist-types.js';
2
+ export type ChecklistRowHeadingProps = {
3
+ state: ChecklistTaskState;
4
+ label: string;
5
+ /** `sm` for ChecklistCard's small size. */
6
+ size?: 'sm' | 'md';
7
+ };
8
+ declare const ChecklistRowHeading: import("svelte").Component<ChecklistRowHeadingProps, {}, "">;
9
+ type ChecklistRowHeading = ReturnType<typeof ChecklistRowHeading>;
10
+ export default ChecklistRowHeading;
@@ -0,0 +1,101 @@
1
+ <!--
2
+ Origin: the React package 2.23.0 `task-checklist.tsx` (`TaskChecklistRow`)
3
+ Diverged: bits-ui Collapsible for Radix's; Lucide's chevron-down. Not exported.
4
+ -->
5
+ <script lang="ts" module>
6
+ import type { ChecklistTask } from './checklist-types.js'
7
+
8
+ export type ChecklistTaskRowProps = {
9
+ task: ChecklistTask
10
+ open: boolean
11
+ onExpandedChange?: (id: string | null) => void
12
+ }
13
+ </script>
14
+
15
+ <script lang="ts">
16
+ import ChevronDownIcon from '@lucide/svelte/icons/chevron-down'
17
+ import { Collapsible as CollapsiblePrimitive } from 'bits-ui'
18
+
19
+ import { cn } from '../../../utils/cn.js'
20
+ import CollapsibleContent from '../../layout/collapsible/collapsible-content.svelte'
21
+ import CollapsibleTrigger from '../../layout/collapsible/collapsible-trigger.svelte'
22
+ import Hint from '../../overlays/hint/hint.svelte'
23
+ import ChecklistRowHeading from './checklist-row-heading.svelte'
24
+
25
+ let { task, open, onExpandedChange }: ChecklistTaskRowProps = $props()
26
+
27
+ const hasBody = $derived(Boolean(task.description || task.media || task.learnMore))
28
+ const focusRing =
29
+ 'focus-visible:border-ring focus-visible:ring-ring/50 rounded-md outline-none focus-visible:ring-[3px]'
30
+ </script>
31
+
32
+ {#snippet trailing()}
33
+ <!-- Sized to its own content, so the Hint reads as attached to the title; the
34
+ spacer after it pushes the actions to the row's far side. -->
35
+ {#if task.hint}
36
+ <Hint>{@render task.hint()}</Hint>
37
+ {/if}
38
+ <div class="min-w-0 flex-1"></div>
39
+ {#if task.actions}
40
+ <div class="shrink-0 text-sm">{@render task.actions()}</div>
41
+ {/if}
42
+ {/snippet}
43
+
44
+ {#if !hasBody}
45
+ <!-- A row with nothing to reveal is not a disclosure, so it does not render
46
+ as one: no chevron that does nothing, no aria-controls pointing nowhere. -->
47
+ <!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
48
+ <div data-slot="checklist-task" role="listitem" class="flex items-center gap-2">
49
+ <div class="flex min-w-0 items-center gap-2 text-sm">
50
+ <ChecklistRowHeading state={task.state} label={task.label} />
51
+ </div>
52
+ {@render trailing()}
53
+ </div>
54
+ {:else}
55
+ <!-- Controlled by the caller's `expandedId`, so the open row and the URL
56
+ fragment are the same fact. Closing reports null. -->
57
+ <!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
58
+ <CollapsiblePrimitive.Root
59
+ data-slot="checklist-task"
60
+ role="listitem"
61
+ {open}
62
+ onOpenChange={(next) => onExpandedChange?.(next ? task.id : null)}
63
+ >
64
+ <div class="flex items-center gap-2">
65
+ <CollapsibleTrigger
66
+ class={cn('flex min-w-0 items-center gap-2 text-left text-sm', focusRing)}
67
+ >
68
+ <ChecklistRowHeading state={task.state} label={task.label} />
69
+ </CollapsibleTrigger>
70
+ {@render trailing()}
71
+ <!-- A second trigger for the same row, in its far corner past the
72
+ actions; one control for a screen reader, two places to reach it. -->
73
+ <CollapsibleTrigger
74
+ class={cn('shrink-0', focusRing)}
75
+ aria-label={open ? 'Collapse' : 'Expand'}
76
+ >
77
+ <ChevronDownIcon
78
+ aria-hidden="true"
79
+ class={cn(
80
+ 'text-muted-foreground size-4 shrink-0 transition-transform',
81
+ open && 'rotate-180',
82
+ )}
83
+ />
84
+ </CollapsibleTrigger>
85
+ </div>
86
+ <CollapsibleContent>
87
+ <!-- Indented past the status icon, so the body hangs under the label. -->
88
+ <div class="flex flex-col gap-3 pt-3 pl-6 text-sm">
89
+ {#if task.description}
90
+ <p class="text-muted-foreground">{task.description}</p>
91
+ {/if}
92
+ {#if task.media}
93
+ <div>{@render task.media()}</div>
94
+ {/if}
95
+ {#if task.learnMore}
96
+ <div>{@render task.learnMore()}</div>
97
+ {/if}
98
+ </div>
99
+ </CollapsibleContent>
100
+ </CollapsiblePrimitive.Root>
101
+ {/if}
@@ -0,0 +1,9 @@
1
+ import type { ChecklistTask } from './checklist-types.js';
2
+ export type ChecklistTaskRowProps = {
3
+ task: ChecklistTask;
4
+ open: boolean;
5
+ onExpandedChange?: (id: string | null) => void;
6
+ };
7
+ declare const ChecklistTaskRow: import("svelte").Component<ChecklistTaskRowProps, {}, "">;
8
+ type ChecklistTaskRow = ReturnType<typeof ChecklistTaskRow>;
9
+ export default ChecklistTaskRow;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Origin: the React package 2.23.0 `task-checklist.tsx` and `checklist-card.tsx` (their item types)
3
+ * Diverged: the two components' row types side by side, sharing one state set
4
+ * (round 8 plan, R8-4). React's `ReactNode` fields are snippets.
5
+ */
6
+ import type { Snippet } from 'svelte';
7
+ /**
8
+ * `skipped` is its own state rather than a flavour of `completed`. A step a
9
+ * location has no use for is finished with, but it was not *done*: folding the
10
+ * two together would claim work that never happened.
11
+ */
12
+ export type ChecklistTaskState = 'completed' | 'skipped' | 'pending';
13
+ export type ChecklistTask = {
14
+ /**
15
+ * Stable, and the value `expandedId` matches on; unique across every group,
16
+ * since it can live in a URL fragment.
17
+ */
18
+ id: string;
19
+ label: string;
20
+ /** Shown when the row is open: what the step is and why it is worth doing. */
21
+ description?: string;
22
+ /** The same kind of fact as `description`, read beside the title in a `Hint`. */
23
+ hint?: Snippet;
24
+ state: ChecklistTaskState;
25
+ /**
26
+ * At the end of the row, beside the disclosure rather than inside it (a
27
+ * button in a button is invalid): "Add a category".
28
+ */
29
+ actions?: Snippet;
30
+ /** Revealed on open: a screenshot or a short clip of the step. */
31
+ media?: Snippet;
32
+ /** Revealed on open: the way to the documentation. */
33
+ learnMore?: Snippet;
34
+ };
35
+ export type ChecklistGroup = {
36
+ /** Stable across renders; the each-block key and nothing else. */
37
+ key: string;
38
+ label: string;
39
+ /** 0–100, clamped. The server's answer, not counted from `tasks`. */
40
+ percent: number;
41
+ tasks: ChecklistTask[];
42
+ };
43
+ export type ChecklistCardItem = {
44
+ id: string;
45
+ label: string;
46
+ done: boolean;
47
+ /** At the end of the row: "Start", pointing at wherever the step is done. */
48
+ action?: Snippet;
49
+ };
50
+ /** Prefixes a row's accessible name, so the states differ without the icon or its colour. */
51
+ export declare const CHECKLIST_STATE_LABEL: Record<ChecklistTaskState, string>;
@@ -0,0 +1,6 @@
1
+ /** Prefixes a row's accessible name, so the states differ without the icon or its colour. */
2
+ export const CHECKLIST_STATE_LABEL = {
3
+ completed: 'Completed:',
4
+ skipped: 'Skipped:',
5
+ pending: 'Not started:',
6
+ };
@@ -0,0 +1,78 @@
1
+ <!--
2
+ Origin: the React package 2.23.0 `task-checklist.tsx` (`TaskChecklist`)
3
+ Diverged: React's TaskChecklist, renamed Checklist in the checklist family
4
+ (round 8 plan, R8-4): "Task" said nothing the list does not. Its rows share
5
+ the family's row heading with ChecklistCard. Spreads the rest onto the
6
+ root, as every component does.
7
+ -->
8
+ <script lang="ts" module>
9
+ import type { HTMLAttributes } from 'svelte/elements'
10
+
11
+ import type { ChecklistGroup } from './checklist-types.js'
12
+
13
+ /**
14
+ * The full "Get started" list: setup steps grouped into cards, each row
15
+ * folding open to its description and whatever the caller hangs off it.
16
+ *
17
+ * The page-sized companion to `ChecklistCard`, which lives above a sidebar's
18
+ * nav and shows the next few rows of one flat list. Not `Readiness`, which
19
+ * answers "what does this page still need before I can save it".
20
+ */
21
+ export type ChecklistProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
22
+ groups: ChecklistGroup[]
23
+ /**
24
+ * The `id` of the one open row, or nothing open. Controlled, with no
25
+ * internal fallback, so it can follow a URL fragment without disagreeing
26
+ * with it. One row at a time by construction.
27
+ */
28
+ expandedId?: string
29
+ /** The id to move to, or `null` when the open row was closed. */
30
+ onExpandedChange?: (id: string | null) => void
31
+ }
32
+ </script>
33
+
34
+ <script lang="ts">
35
+ import { cn } from '../../../utils/cn.js'
36
+ import Progress from '../../feedback/progress/progress.svelte'
37
+ import Card from '../../layout/card/card.svelte'
38
+ import CardContent from '../../layout/card/card-content.svelte'
39
+ import CardHeader from '../../layout/card/card-header.svelte'
40
+ import CardTitle from '../../layout/card/card-title.svelte'
41
+ import CardList from '../../layout/card-list/card-list.svelte'
42
+ import ChecklistTaskRow from './checklist-task-row.svelte'
43
+
44
+ let { groups, expandedId, onExpandedChange, class: className, ...rest }: ChecklistProps = $props()
45
+
46
+ const bound = (percent: number) => Math.min(100, Math.max(0, percent))
47
+ </script>
48
+
49
+ <div data-slot="checklist" class={cn('flex flex-col gap-4', className)} {...rest}>
50
+ {#each groups as group (group.key)}
51
+ {@const percent = bound(group.percent)}
52
+ {@const shown = Math.round(percent)}
53
+ <Card>
54
+ <CardHeader class="gap-3">
55
+ <CardTitle class="justify-between">
56
+ <span title={group.label} class="min-w-0 truncate">{group.label}</span>
57
+ <span class="text-muted-foreground shrink-0 text-sm font-normal tabular-nums"
58
+ >{shown}%</span
59
+ >
60
+ </CardTitle>
61
+ <!-- The name carries the share as well as the group: the bar is the
62
+ sighted reading, the name the whole reading for everyone else. -->
63
+ <Progress value={percent} aria-label="{group.label}: {shown}% complete" />
64
+ </CardHeader>
65
+ {#if group.tasks.length > 0}
66
+ <CardContent>
67
+ <!-- compact: every row is one line until a reader opens it. -->
68
+ <!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
69
+ <CardList compact role="list">
70
+ {#each group.tasks as task (task.id)}
71
+ <ChecklistTaskRow {task} open={task.id === expandedId} {onExpandedChange} />
72
+ {/each}
73
+ </CardList>
74
+ </CardContent>
75
+ {/if}
76
+ </Card>
77
+ {/each}
78
+ </div>