@kanzo-tech/ui 0.0.1-alpha

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 (499) hide show
  1. package/README.md +60 -0
  2. package/dist/analytics.d.ts +36 -0
  3. package/dist/analytics.d.ts.map +1 -0
  4. package/dist/analytics.js +155 -0
  5. package/dist/analytics.js.map +1 -0
  6. package/dist/charts/arrow.d.ts +37 -0
  7. package/dist/charts/arrow.d.ts.map +1 -0
  8. package/dist/charts/arrow.js +29 -0
  9. package/dist/charts/arrow.js.map +1 -0
  10. package/dist/charts/chart-axes.d.ts +59 -0
  11. package/dist/charts/chart-axes.d.ts.map +1 -0
  12. package/dist/charts/chart-axes.js +39 -0
  13. package/dist/charts/chart-axes.js.map +1 -0
  14. package/dist/charts/chart-config.d.ts +52 -0
  15. package/dist/charts/chart-config.d.ts.map +1 -0
  16. package/dist/charts/chart-config.js +43 -0
  17. package/dist/charts/chart-config.js.map +1 -0
  18. package/dist/charts/chart-inputs.d.ts +174 -0
  19. package/dist/charts/chart-inputs.d.ts.map +1 -0
  20. package/dist/charts/chart-inputs.js +382 -0
  21. package/dist/charts/chart-inputs.js.map +1 -0
  22. package/dist/charts/chart-interactors.d.ts +75 -0
  23. package/dist/charts/chart-interactors.d.ts.map +1 -0
  24. package/dist/charts/chart-interactors.js +35 -0
  25. package/dist/charts/chart-interactors.js.map +1 -0
  26. package/dist/charts/chart-legend.d.ts +38 -0
  27. package/dist/charts/chart-legend.d.ts.map +1 -0
  28. package/dist/charts/chart-legend.js +49 -0
  29. package/dist/charts/chart-legend.js.map +1 -0
  30. package/dist/charts/chart-marks.d.ts +124 -0
  31. package/dist/charts/chart-marks.d.ts.map +1 -0
  32. package/dist/charts/chart-marks.js +109 -0
  33. package/dist/charts/chart-marks.js.map +1 -0
  34. package/dist/charts/chart-root.d.ts +90 -0
  35. package/dist/charts/chart-root.d.ts.map +1 -0
  36. package/dist/charts/chart-root.js +162 -0
  37. package/dist/charts/chart-root.js.map +1 -0
  38. package/dist/charts/chart-spec.d.ts +126 -0
  39. package/dist/charts/chart-spec.d.ts.map +1 -0
  40. package/dist/charts/chart-spec.js +133 -0
  41. package/dist/charts/chart-spec.js.map +1 -0
  42. package/dist/charts/chart-stat.d.ts +23 -0
  43. package/dist/charts/chart-stat.d.ts.map +1 -0
  44. package/dist/charts/chart-stat.js +24 -0
  45. package/dist/charts/chart-stat.js.map +1 -0
  46. package/dist/charts/id-set-client.d.ts +42 -0
  47. package/dist/charts/id-set-client.d.ts.map +1 -0
  48. package/dist/charts/id-set-client.js +43 -0
  49. package/dist/charts/id-set-client.js.map +1 -0
  50. package/dist/charts/mosaic-provider.d.ts +70 -0
  51. package/dist/charts/mosaic-provider.d.ts.map +1 -0
  52. package/dist/charts/mosaic-provider.js +53 -0
  53. package/dist/charts/mosaic-provider.js.map +1 -0
  54. package/dist/charts/query-client.d.ts +22 -0
  55. package/dist/charts/query-client.d.ts.map +1 -0
  56. package/dist/charts/query-client.js +26 -0
  57. package/dist/charts/query-client.js.map +1 -0
  58. package/dist/charts/tokenized-plot.d.ts +26 -0
  59. package/dist/charts/tokenized-plot.d.ts.map +1 -0
  60. package/dist/charts/tokenized-plot.js +41 -0
  61. package/dist/charts/tokenized-plot.js.map +1 -0
  62. package/dist/charts/use-chart-query.d.ts +30 -0
  63. package/dist/charts/use-chart-query.d.ts.map +1 -0
  64. package/dist/charts/use-chart-query.js +19 -0
  65. package/dist/charts/use-chart-query.js.map +1 -0
  66. package/dist/composites/CodeEditor.d.ts +64 -0
  67. package/dist/composites/CodeEditor.d.ts.map +1 -0
  68. package/dist/composites/CodeEditor.js +521 -0
  69. package/dist/composites/CodeEditor.js.map +1 -0
  70. package/dist/composites/MadeWith.d.ts +39 -0
  71. package/dist/composites/MadeWith.d.ts.map +1 -0
  72. package/dist/composites/MadeWith.js +30 -0
  73. package/dist/composites/MadeWith.js.map +1 -0
  74. package/dist/composites/Preferences.d.ts +155 -0
  75. package/dist/composites/Preferences.d.ts.map +1 -0
  76. package/dist/composites/Preferences.js +501 -0
  77. package/dist/composites/Preferences.js.map +1 -0
  78. package/dist/composites/Questionnaire.d.ts +215 -0
  79. package/dist/composites/Questionnaire.d.ts.map +1 -0
  80. package/dist/composites/Questionnaire.js +422 -0
  81. package/dist/composites/Questionnaire.js.map +1 -0
  82. package/dist/composites/SidebarIdentity.d.ts +63 -0
  83. package/dist/composites/SidebarIdentity.d.ts.map +1 -0
  84. package/dist/composites/SidebarIdentity.js +103 -0
  85. package/dist/composites/SidebarIdentity.js.map +1 -0
  86. package/dist/composites/code-editor-search.d.ts +40 -0
  87. package/dist/composites/code-editor-search.d.ts.map +1 -0
  88. package/dist/composites/code-editor-search.js +212 -0
  89. package/dist/composites/code-editor-search.js.map +1 -0
  90. package/dist/composites/sidebar.d.ts +129 -0
  91. package/dist/composites/sidebar.d.ts.map +1 -0
  92. package/dist/composites/sidebar.js +671 -0
  93. package/dist/composites/sidebar.js.map +1 -0
  94. package/dist/composites/theme-notice.d.ts +54 -0
  95. package/dist/composites/theme-notice.d.ts.map +1 -0
  96. package/dist/composites/theme-notice.js +19 -0
  97. package/dist/composites/theme-notice.js.map +1 -0
  98. package/dist/editor.d.ts +3 -0
  99. package/dist/editor.d.ts.map +1 -0
  100. package/dist/editor.js +6 -0
  101. package/dist/editor.js.map +1 -0
  102. package/dist/guard-corpus.d.ts +63 -0
  103. package/dist/guard-corpus.d.ts.map +1 -0
  104. package/dist/index.d.ts +112 -0
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js +696 -0
  107. package/dist/index.js.map +1 -0
  108. package/dist/layouts/section.d.ts +166 -0
  109. package/dist/layouts/section.d.ts.map +1 -0
  110. package/dist/layouts/section.js +153 -0
  111. package/dist/layouts/section.js.map +1 -0
  112. package/dist/layouts/shell.d.ts +128 -0
  113. package/dist/layouts/shell.d.ts.map +1 -0
  114. package/dist/layouts/shell.js +107 -0
  115. package/dist/layouts/shell.js.map +1 -0
  116. package/dist/lib/cn.d.ts +4 -0
  117. package/dist/lib/cn.d.ts.map +1 -0
  118. package/dist/lib/cn.js +9 -0
  119. package/dist/lib/cn.js.map +1 -0
  120. package/dist/lib/is-active-path.d.ts +13 -0
  121. package/dist/lib/is-active-path.d.ts.map +1 -0
  122. package/dist/lib/is-active-path.js +7 -0
  123. package/dist/lib/is-active-path.js.map +1 -0
  124. package/dist/lib/theme-tick.d.ts +37 -0
  125. package/dist/lib/theme-tick.d.ts.map +1 -0
  126. package/dist/lib/theme-tick.js +30 -0
  127. package/dist/lib/theme-tick.js.map +1 -0
  128. package/dist/lib/token-color.d.ts +74 -0
  129. package/dist/lib/token-color.d.ts.map +1 -0
  130. package/dist/lib/token-color.js +35 -0
  131. package/dist/lib/token-color.js.map +1 -0
  132. package/dist/lib/use-is-mobile.d.ts +2 -0
  133. package/dist/lib/use-is-mobile.d.ts.map +1 -0
  134. package/dist/lib/use-is-mobile.js +17 -0
  135. package/dist/lib/use-is-mobile.js.map +1 -0
  136. package/dist/shark-parity.divergences.d.ts +104 -0
  137. package/dist/shark-parity.divergences.d.ts.map +1 -0
  138. package/dist/simples/FacetFilter.d.ts +57 -0
  139. package/dist/simples/FacetFilter.d.ts.map +1 -0
  140. package/dist/simples/FacetFilter.js +167 -0
  141. package/dist/simples/FacetFilter.js.map +1 -0
  142. package/dist/simples/FieldArray.d.ts +42 -0
  143. package/dist/simples/FieldArray.d.ts.map +1 -0
  144. package/dist/simples/FieldArray.js +76 -0
  145. package/dist/simples/FieldArray.js.map +1 -0
  146. package/dist/simples/Link.d.ts +38 -0
  147. package/dist/simples/Link.d.ts.map +1 -0
  148. package/dist/simples/Link.js +24 -0
  149. package/dist/simples/Link.js.map +1 -0
  150. package/dist/simples/accordion.d.ts +8 -0
  151. package/dist/simples/accordion.d.ts.map +1 -0
  152. package/dist/simples/accordion.js +78 -0
  153. package/dist/simples/accordion.js.map +1 -0
  154. package/dist/simples/action-bar.d.ts +101 -0
  155. package/dist/simples/action-bar.d.ts.map +1 -0
  156. package/dist/simples/action-bar.js +195 -0
  157. package/dist/simples/action-bar.js.map +1 -0
  158. package/dist/simples/alert-dialog.d.ts +24 -0
  159. package/dist/simples/alert-dialog.d.ts.map +1 -0
  160. package/dist/simples/alert-dialog.js +43 -0
  161. package/dist/simples/alert-dialog.js.map +1 -0
  162. package/dist/simples/alert.d.ts +36 -0
  163. package/dist/simples/alert.d.ts.map +1 -0
  164. package/dist/simples/alert.js +123 -0
  165. package/dist/simples/alert.js.map +1 -0
  166. package/dist/simples/avatar.d.ts +37 -0
  167. package/dist/simples/avatar.d.ts.map +1 -0
  168. package/dist/simples/avatar.js +133 -0
  169. package/dist/simples/avatar.js.map +1 -0
  170. package/dist/simples/badge.d.ts +66 -0
  171. package/dist/simples/badge.d.ts.map +1 -0
  172. package/dist/simples/badge.js +138 -0
  173. package/dist/simples/badge.js.map +1 -0
  174. package/dist/simples/breadcrumb.d.ts +19 -0
  175. package/dist/simples/breadcrumb.d.ts.map +1 -0
  176. package/dist/simples/breadcrumb.js +107 -0
  177. package/dist/simples/breadcrumb.js.map +1 -0
  178. package/dist/simples/button-group.d.ts +19 -0
  179. package/dist/simples/button-group.d.ts.map +1 -0
  180. package/dist/simples/button-group.js +69 -0
  181. package/dist/simples/button-group.js.map +1 -0
  182. package/dist/simples/button.d.ts +148 -0
  183. package/dist/simples/button.d.ts.map +1 -0
  184. package/dist/simples/button.js +157 -0
  185. package/dist/simples/button.js.map +1 -0
  186. package/dist/simples/calendar.d.ts +45 -0
  187. package/dist/simples/calendar.d.ts.map +1 -0
  188. package/dist/simples/calendar.js +342 -0
  189. package/dist/simples/calendar.js.map +1 -0
  190. package/dist/simples/card.d.ts +43 -0
  191. package/dist/simples/card.d.ts.map +1 -0
  192. package/dist/simples/card.js +151 -0
  193. package/dist/simples/card.js.map +1 -0
  194. package/dist/simples/checkbox.d.ts +25 -0
  195. package/dist/simples/checkbox.d.ts.map +1 -0
  196. package/dist/simples/checkbox.js +103 -0
  197. package/dist/simples/checkbox.js.map +1 -0
  198. package/dist/simples/client-only.d.ts +3 -0
  199. package/dist/simples/client-only.d.ts.map +1 -0
  200. package/dist/simples/client-only.js +7 -0
  201. package/dist/simples/client-only.js.map +1 -0
  202. package/dist/simples/clipboard.d.ts +11 -0
  203. package/dist/simples/clipboard.d.ts.map +1 -0
  204. package/dist/simples/clipboard.js +99 -0
  205. package/dist/simples/clipboard.js.map +1 -0
  206. package/dist/simples/collapsible.d.ts +8 -0
  207. package/dist/simples/collapsible.d.ts.map +1 -0
  208. package/dist/simples/collapsible.js +79 -0
  209. package/dist/simples/collapsible.js.map +1 -0
  210. package/dist/simples/color-picker.d.ts +62 -0
  211. package/dist/simples/color-picker.d.ts.map +1 -0
  212. package/dist/simples/color-picker.js +391 -0
  213. package/dist/simples/color-picker.js.map +1 -0
  214. package/dist/simples/combobox.d.ts +66 -0
  215. package/dist/simples/combobox.d.ts.map +1 -0
  216. package/dist/simples/combobox.js +230 -0
  217. package/dist/simples/combobox.js.map +1 -0
  218. package/dist/simples/command.d.ts +45 -0
  219. package/dist/simples/command.d.ts.map +1 -0
  220. package/dist/simples/command.js +180 -0
  221. package/dist/simples/command.js.map +1 -0
  222. package/dist/simples/data-list.d.ts +25 -0
  223. package/dist/simples/data-list.d.ts.map +1 -0
  224. package/dist/simples/data-list.js +62 -0
  225. package/dist/simples/data-list.js.map +1 -0
  226. package/dist/simples/date-picker.d.ts +16 -0
  227. package/dist/simples/date-picker.d.ts.map +1 -0
  228. package/dist/simples/date-picker.js +117 -0
  229. package/dist/simples/date-picker.js.map +1 -0
  230. package/dist/simples/diagnostic.d.ts +138 -0
  231. package/dist/simples/diagnostic.d.ts.map +1 -0
  232. package/dist/simples/diagnostic.js +288 -0
  233. package/dist/simples/diagnostic.js.map +1 -0
  234. package/dist/simples/dialog.d.ts +100 -0
  235. package/dist/simples/dialog.d.ts.map +1 -0
  236. package/dist/simples/dialog.js +267 -0
  237. package/dist/simples/dialog.js.map +1 -0
  238. package/dist/simples/download-trigger.d.ts +3 -0
  239. package/dist/simples/download-trigger.d.ts.map +1 -0
  240. package/dist/simples/download-trigger.js +7 -0
  241. package/dist/simples/download-trigger.js.map +1 -0
  242. package/dist/simples/editable.d.ts +23 -0
  243. package/dist/simples/editable.d.ts.map +1 -0
  244. package/dist/simples/editable.js +70 -0
  245. package/dist/simples/editable.js.map +1 -0
  246. package/dist/simples/field.d.ts +58 -0
  247. package/dist/simples/field.d.ts.map +1 -0
  248. package/dist/simples/field.js +285 -0
  249. package/dist/simples/field.js.map +1 -0
  250. package/dist/simples/file-upload.d.ts +19 -0
  251. package/dist/simples/file-upload.d.ts.map +1 -0
  252. package/dist/simples/file-upload.js +192 -0
  253. package/dist/simples/file-upload.js.map +1 -0
  254. package/dist/simples/float.d.ts +45 -0
  255. package/dist/simples/float.d.ts.map +1 -0
  256. package/dist/simples/float.js +40 -0
  257. package/dist/simples/float.js.map +1 -0
  258. package/dist/simples/floating-panel.d.ts +25 -0
  259. package/dist/simples/floating-panel.d.ts.map +1 -0
  260. package/dist/simples/floating-panel.js +95 -0
  261. package/dist/simples/floating-panel.js.map +1 -0
  262. package/dist/simples/highlight.d.ts +6 -0
  263. package/dist/simples/highlight.d.ts.map +1 -0
  264. package/dist/simples/highlight.js +24 -0
  265. package/dist/simples/highlight.js.map +1 -0
  266. package/dist/simples/hover-card.d.ts +11 -0
  267. package/dist/simples/hover-card.d.ts.map +1 -0
  268. package/dist/simples/hover-card.js +83 -0
  269. package/dist/simples/hover-card.js.map +1 -0
  270. package/dist/simples/image-cropper.d.ts +17 -0
  271. package/dist/simples/image-cropper.d.ts.map +1 -0
  272. package/dist/simples/image-cropper.js +139 -0
  273. package/dist/simples/image-cropper.js.map +1 -0
  274. package/dist/simples/input-group.d.ts +116 -0
  275. package/dist/simples/input-group.d.ts.map +1 -0
  276. package/dist/simples/input-group.js +245 -0
  277. package/dist/simples/input-group.js.map +1 -0
  278. package/dist/simples/input.d.ts +26 -0
  279. package/dist/simples/input.d.ts.map +1 -0
  280. package/dist/simples/input.js +60 -0
  281. package/dist/simples/input.js.map +1 -0
  282. package/dist/simples/item.d.ts +72 -0
  283. package/dist/simples/item.d.ts.map +1 -0
  284. package/dist/simples/item.js +180 -0
  285. package/dist/simples/item.js.map +1 -0
  286. package/dist/simples/json-tree-view.d.ts +7 -0
  287. package/dist/simples/json-tree-view.d.ts.map +1 -0
  288. package/dist/simples/json-tree-view.js +71 -0
  289. package/dist/simples/json-tree-view.js.map +1 -0
  290. package/dist/simples/kbd.d.ts +25 -0
  291. package/dist/simples/kbd.d.ts.map +1 -0
  292. package/dist/simples/kbd.js +50 -0
  293. package/dist/simples/kbd.js.map +1 -0
  294. package/dist/simples/listbox.d.ts +46 -0
  295. package/dist/simples/listbox.d.ts.map +1 -0
  296. package/dist/simples/listbox.js +218 -0
  297. package/dist/simples/listbox.js.map +1 -0
  298. package/dist/simples/menu.d.ts +60 -0
  299. package/dist/simples/menu.d.ts.map +1 -0
  300. package/dist/simples/menu.js +294 -0
  301. package/dist/simples/menu.js.map +1 -0
  302. package/dist/simples/native-select.d.ts +36 -0
  303. package/dist/simples/native-select.d.ts.map +1 -0
  304. package/dist/simples/native-select.js +77 -0
  305. package/dist/simples/native-select.js.map +1 -0
  306. package/dist/simples/number-input.d.ts +35 -0
  307. package/dist/simples/number-input.d.ts.map +1 -0
  308. package/dist/simples/number-input.js +142 -0
  309. package/dist/simples/number-input.js.map +1 -0
  310. package/dist/simples/pagination.d.ts +11 -0
  311. package/dist/simples/pagination.d.ts.map +1 -0
  312. package/dist/simples/pagination.js +78 -0
  313. package/dist/simples/pagination.js.map +1 -0
  314. package/dist/simples/password-input.d.ts +23 -0
  315. package/dist/simples/password-input.d.ts.map +1 -0
  316. package/dist/simples/password-input.js +90 -0
  317. package/dist/simples/password-input.js.map +1 -0
  318. package/dist/simples/pin-input.d.ts +30 -0
  319. package/dist/simples/pin-input.d.ts.map +1 -0
  320. package/dist/simples/pin-input.js +71 -0
  321. package/dist/simples/pin-input.js.map +1 -0
  322. package/dist/simples/popover.d.ts +42 -0
  323. package/dist/simples/popover.d.ts.map +1 -0
  324. package/dist/simples/popover.js +188 -0
  325. package/dist/simples/popover.js.map +1 -0
  326. package/dist/simples/progress.d.ts +23 -0
  327. package/dist/simples/progress.d.ts.map +1 -0
  328. package/dist/simples/progress.js +82 -0
  329. package/dist/simples/progress.js.map +1 -0
  330. package/dist/simples/prose.d.ts +17 -0
  331. package/dist/simples/prose.d.ts.map +1 -0
  332. package/dist/simples/prose.js +18 -0
  333. package/dist/simples/prose.js.map +1 -0
  334. package/dist/simples/radio-group.d.ts +23 -0
  335. package/dist/simples/radio-group.d.ts.map +1 -0
  336. package/dist/simples/radio-group.js +149 -0
  337. package/dist/simples/radio-group.js.map +1 -0
  338. package/dist/simples/rating.d.ts +10 -0
  339. package/dist/simples/rating.d.ts.map +1 -0
  340. package/dist/simples/rating.js +81 -0
  341. package/dist/simples/rating.js.map +1 -0
  342. package/dist/simples/resizable.d.ts +16 -0
  343. package/dist/simples/resizable.d.ts.map +1 -0
  344. package/dist/simples/resizable.js +57 -0
  345. package/dist/simples/resizable.js.map +1 -0
  346. package/dist/simples/scroll-area.d.ts +23 -0
  347. package/dist/simples/scroll-area.d.ts.map +1 -0
  348. package/dist/simples/scroll-area.js +88 -0
  349. package/dist/simples/scroll-area.js.map +1 -0
  350. package/dist/simples/segment-group.d.ts +27 -0
  351. package/dist/simples/segment-group.d.ts.map +1 -0
  352. package/dist/simples/segment-group.js +129 -0
  353. package/dist/simples/segment-group.js.map +1 -0
  354. package/dist/simples/select.d.ts +34 -0
  355. package/dist/simples/select.d.ts.map +1 -0
  356. package/dist/simples/select.js +258 -0
  357. package/dist/simples/select.js.map +1 -0
  358. package/dist/simples/separator.d.ts +12 -0
  359. package/dist/simples/separator.d.ts.map +1 -0
  360. package/dist/simples/separator.js +27 -0
  361. package/dist/simples/separator.js.map +1 -0
  362. package/dist/simples/sheet.d.ts +94 -0
  363. package/dist/simples/sheet.d.ts.map +1 -0
  364. package/dist/simples/sheet.js +172 -0
  365. package/dist/simples/sheet.js.map +1 -0
  366. package/dist/simples/show.d.ts +10 -0
  367. package/dist/simples/show.d.ts.map +1 -0
  368. package/dist/simples/show.js +9 -0
  369. package/dist/simples/show.js.map +1 -0
  370. package/dist/simples/skeleton.d.ts +3 -0
  371. package/dist/simples/skeleton.d.ts.map +1 -0
  372. package/dist/simples/skeleton.js +23 -0
  373. package/dist/simples/skeleton.js.map +1 -0
  374. package/dist/simples/skip-nav.d.ts +54 -0
  375. package/dist/simples/skip-nav.d.ts.map +1 -0
  376. package/dist/simples/skip-nav.js +42 -0
  377. package/dist/simples/skip-nav.js.map +1 -0
  378. package/dist/simples/slider.d.ts +29 -0
  379. package/dist/simples/slider.d.ts.map +1 -0
  380. package/dist/simples/slider.js +189 -0
  381. package/dist/simples/slider.js.map +1 -0
  382. package/dist/simples/spinner.d.ts +2 -0
  383. package/dist/simples/spinner.d.ts.map +1 -0
  384. package/dist/simples/spinner.js +20 -0
  385. package/dist/simples/spinner.js.map +1 -0
  386. package/dist/simples/stat-tile.d.ts +31 -0
  387. package/dist/simples/stat-tile.d.ts.map +1 -0
  388. package/dist/simples/stat-tile.js +64 -0
  389. package/dist/simples/stat-tile.js.map +1 -0
  390. package/dist/simples/status.d.ts +48 -0
  391. package/dist/simples/status.d.ts.map +1 -0
  392. package/dist/simples/status.js +57 -0
  393. package/dist/simples/status.js.map +1 -0
  394. package/dist/simples/steps.d.ts +20 -0
  395. package/dist/simples/steps.d.ts.map +1 -0
  396. package/dist/simples/steps.js +171 -0
  397. package/dist/simples/steps.js.map +1 -0
  398. package/dist/simples/suggestions.d.ts +43 -0
  399. package/dist/simples/suggestions.d.ts.map +1 -0
  400. package/dist/simples/suggestions.js +38 -0
  401. package/dist/simples/suggestions.js.map +1 -0
  402. package/dist/simples/swatch.d.ts +73 -0
  403. package/dist/simples/swatch.d.ts.map +1 -0
  404. package/dist/simples/swatch.js +35 -0
  405. package/dist/simples/swatch.js.map +1 -0
  406. package/dist/simples/switch.d.ts +5 -0
  407. package/dist/simples/switch.d.ts.map +1 -0
  408. package/dist/simples/switch.js +71 -0
  409. package/dist/simples/switch.js.map +1 -0
  410. package/dist/simples/table.d.ts +55 -0
  411. package/dist/simples/table.d.ts.map +1 -0
  412. package/dist/simples/table.js +166 -0
  413. package/dist/simples/table.js.map +1 -0
  414. package/dist/simples/tabs.d.ts +55 -0
  415. package/dist/simples/tabs.d.ts.map +1 -0
  416. package/dist/simples/tabs.js +133 -0
  417. package/dist/simples/tabs.js.map +1 -0
  418. package/dist/simples/tags-input.d.ts +64 -0
  419. package/dist/simples/tags-input.d.ts.map +1 -0
  420. package/dist/simples/tags-input.js +228 -0
  421. package/dist/simples/tags-input.js.map +1 -0
  422. package/dist/simples/textarea.d.ts +6 -0
  423. package/dist/simples/textarea.d.ts.map +1 -0
  424. package/dist/simples/textarea.js +34 -0
  425. package/dist/simples/textarea.js.map +1 -0
  426. package/dist/simples/toast.d.ts +20 -0
  427. package/dist/simples/toast.d.ts.map +1 -0
  428. package/dist/simples/toast.js +127 -0
  429. package/dist/simples/toast.js.map +1 -0
  430. package/dist/simples/toggle-group.d.ts +20 -0
  431. package/dist/simples/toggle-group.d.ts.map +1 -0
  432. package/dist/simples/toggle-group.js +82 -0
  433. package/dist/simples/toggle-group.js.map +1 -0
  434. package/dist/simples/toggle.d.ts +35 -0
  435. package/dist/simples/toggle.d.ts.map +1 -0
  436. package/dist/simples/toggle.js +57 -0
  437. package/dist/simples/toggle.js.map +1 -0
  438. package/dist/simples/tooltip.d.ts +8 -0
  439. package/dist/simples/tooltip.d.ts.map +1 -0
  440. package/dist/simples/tooltip.js +80 -0
  441. package/dist/simples/tooltip.js.map +1 -0
  442. package/dist/simples/tour.d.ts +81 -0
  443. package/dist/simples/tour.d.ts.map +1 -0
  444. package/dist/simples/tour.js +253 -0
  445. package/dist/simples/tour.js.map +1 -0
  446. package/dist/simples/tree-view.d.ts +64 -0
  447. package/dist/simples/tree-view.d.ts.map +1 -0
  448. package/dist/simples/tree-view.js +300 -0
  449. package/dist/simples/tree-view.js.map +1 -0
  450. package/dist/styles.css +2 -0
  451. package/dist/table/data-table-content.d.ts +18 -0
  452. package/dist/table/data-table-content.d.ts.map +1 -0
  453. package/dist/table/data-table-content.js +53 -0
  454. package/dist/table/data-table-content.js.map +1 -0
  455. package/dist/table/data-table-pagination.d.ts +8 -0
  456. package/dist/table/data-table-pagination.d.ts.map +1 -0
  457. package/dist/table/data-table-pagination.js +65 -0
  458. package/dist/table/data-table-pagination.js.map +1 -0
  459. package/dist/table/data-table-root.d.ts +10 -0
  460. package/dist/table/data-table-root.d.ts.map +1 -0
  461. package/dist/table/data-table-root.js +21 -0
  462. package/dist/table/data-table-root.js.map +1 -0
  463. package/dist/table/data-table-toolbar.d.ts +44 -0
  464. package/dist/table/data-table-toolbar.d.ts.map +1 -0
  465. package/dist/table/data-table-toolbar.js +87 -0
  466. package/dist/table/data-table-toolbar.js.map +1 -0
  467. package/dist/table/select-column.d.ts +16 -0
  468. package/dist/table/select-column.d.ts.map +1 -0
  469. package/dist/table/select-column.js +39 -0
  470. package/dist/table/select-column.js.map +1 -0
  471. package/dist/table/sortableHeader.d.ts +25 -0
  472. package/dist/table/sortableHeader.d.ts.map +1 -0
  473. package/dist/table/sortableHeader.js +43 -0
  474. package/dist/table/sortableHeader.js.map +1 -0
  475. package/dist/table/use-data-table.d.ts +40 -0
  476. package/dist/table/use-data-table.d.ts.map +1 -0
  477. package/dist/table/use-data-table.js +65 -0
  478. package/dist/table/use-data-table.js.map +1 -0
  479. package/dist/table.d.ts +15 -0
  480. package/dist/table.d.ts.map +1 -0
  481. package/dist/table.js +22 -0
  482. package/dist/table.js.map +1 -0
  483. package/dist/theme/KanzoTheme.d.ts +74 -0
  484. package/dist/theme/KanzoTheme.d.ts.map +1 -0
  485. package/dist/theme/KanzoTheme.js +61 -0
  486. package/dist/theme/KanzoTheme.js.map +1 -0
  487. package/dist/theme/KanzoThemeProvider.d.ts +144 -0
  488. package/dist/theme/KanzoThemeProvider.d.ts.map +1 -0
  489. package/dist/theme/KanzoThemeProvider.js +271 -0
  490. package/dist/theme/KanzoThemeProvider.js.map +1 -0
  491. package/dist/theme/theme-context.d.ts +146 -0
  492. package/dist/theme/theme-context.d.ts.map +1 -0
  493. package/dist/theme/theme-context.js +18 -0
  494. package/dist/theme/theme-context.js.map +1 -0
  495. package/dist/theme/theme-script.d.ts +17 -0
  496. package/dist/theme/theme-script.d.ts.map +1 -0
  497. package/dist/theme/theme-script.js +16 -0
  498. package/dist/theme/theme-script.js.map +1 -0
  499. package/package.json +201 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,166 @@
1
+ import { ark } from '@ark-ui/react/factory';
2
+ import { ComponentProps } from 'react';
3
+ import { VariantProps } from 'tailwind-variants';
4
+ /**
5
+ * Section — the content scaffolding that sits INSIDE a shell region.
6
+ *
7
+ * Different axis from `shell.tsx`: the Shell regions position the window, this positions the
8
+ * content within them. They never compete, and a Section nests inside `ShellMain`.
9
+ *
10
+ * This is one vocabulary where there were three. `PageShell` (Header · Title · Description ·
11
+ * Actions · Content · Footer), `SectionHeader` (Icon · Content · Title · Description ·
12
+ * Actions) and `TopBarMain` (TitleGroup · Title · Subtitle · Actions) described the same row
13
+ * — a heading with optional icon, supporting text and end-aligned controls — under three sets
14
+ * of names. `scale` is what actually differed between them.
15
+ *
16
+ * NOT merged, deliberately: `CardHeader` and `DialogHeader` have this same shape but stay with
17
+ * their components. A header wired to a machine belongs to that machine — `DialogHeader` wires
18
+ * Ark's `aria-labelledby`. Precedent that the line is right: `TourHeader` *is* `DialogHeader`.
19
+ * Sharing across machines is fine when the wiring is shared; merging layout with wiring is not.
20
+ *
21
+ * Parts are FLAT exports. Statics are lost when a module becomes a client reference under RSC,
22
+ * so `Section.Header` would read back as `undefined` — a bug we hit for real with `Preferences`.
23
+ */
24
+ export declare const sectionVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "flex min-h-0 flex-1 flex-col", {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "flex min-h-0 flex-1 flex-col", unknown, unknown, undefined>>;
25
+ /** The container. Presentational — the scale lives on the parts that render text. */
26
+ export type SectionRootProps = ComponentProps<typeof ark.div>;
27
+ export declare function SectionRoot({ className, slot, ...rest }: SectionRootProps): import("react").JSX.Element;
28
+ export declare namespace SectionRoot {
29
+ var displayName: string;
30
+ }
31
+ declare const sectionHeaderVariants: import('tailwind-variants').TVReturnType<{
32
+ /** `page` is the top of a screen; `section` is a block within one. The difference is
33
+ * breathing room, and it is the only thing that ever really separated PageShellHeader
34
+ * from SectionHeader. */
35
+ scale: {
36
+ page: string;
37
+ section: string;
38
+ };
39
+ /** Draw a separator under the header. */
40
+ bordered: {
41
+ true: string;
42
+ false: string;
43
+ };
44
+ }, undefined, "flex items-start gap-3", {
45
+ /** `page` is the top of a screen; `section` is a block within one. The difference is
46
+ * breathing room, and it is the only thing that ever really separated PageShellHeader
47
+ * from SectionHeader. */
48
+ scale: {
49
+ page: string;
50
+ section: string;
51
+ };
52
+ /** Draw a separator under the header. */
53
+ bordered: {
54
+ true: string;
55
+ false: string;
56
+ };
57
+ }, undefined, import('tailwind-variants').TVReturnType<{
58
+ /** `page` is the top of a screen; `section` is a block within one. The difference is
59
+ * breathing room, and it is the only thing that ever really separated PageShellHeader
60
+ * from SectionHeader. */
61
+ scale: {
62
+ page: string;
63
+ section: string;
64
+ };
65
+ /** Draw a separator under the header. */
66
+ bordered: {
67
+ true: string;
68
+ false: string;
69
+ };
70
+ }, undefined, "flex items-start gap-3", unknown, unknown, undefined>>;
71
+ export interface SectionHeaderProps extends ComponentProps<typeof ark.header>, VariantProps<typeof sectionHeaderVariants> {
72
+ }
73
+ /**
74
+ * A flex row, not a grid. `PageShellHeader` used a two-column grid so its actions could span
75
+ * both text rows; a flex row with a title group and `ms-auto` on the actions achieves the same
76
+ * alignment, handles the optional icon that the grid could not, and mirrors under RTL without
77
+ * a second code path.
78
+ */
79
+ export declare function SectionHeader({ className, scale, bordered, slot, ...rest }: SectionHeaderProps): import("react").JSX.Element;
80
+ export declare namespace SectionHeader {
81
+ var displayName: string;
82
+ }
83
+ /** Leading icon or badge. `mt-0.5` optically aligns it with the title's cap height. */
84
+ export declare function SectionIcon({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
85
+ export declare namespace SectionIcon {
86
+ var displayName: string;
87
+ }
88
+ /** The text column: title over description. `min-w-0` is what lets the title truncate rather
89
+ * than pushing the actions off the row. */
90
+ export declare function SectionTitleGroup({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
91
+ export declare namespace SectionTitleGroup {
92
+ var displayName: string;
93
+ }
94
+ declare const sectionTitleVariants: import('tailwind-variants').TVReturnType<{
95
+ scale: {
96
+ page: string;
97
+ section: string;
98
+ };
99
+ }, undefined, "truncate text-foreground", {
100
+ scale: {
101
+ page: string;
102
+ section: string;
103
+ };
104
+ }, undefined, import('tailwind-variants').TVReturnType<{
105
+ scale: {
106
+ page: string;
107
+ section: string;
108
+ };
109
+ }, undefined, "truncate text-foreground", unknown, unknown, undefined>>;
110
+ export interface SectionTitleProps extends Omit<ComponentProps<"h2">, "ref">, VariantProps<typeof sectionTitleVariants> {
111
+ /** Heading level, so the title slots into the surrounding document outline. Default 2.
112
+ * Kept SEPARATE from `scale`: how big it looks and where it sits in the outline are
113
+ * different questions, and tying them would force a visual choice to change semantics. */
114
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
115
+ }
116
+ export declare function SectionTitle({ level, scale, className, slot, ...rest }: SectionTitleProps): import("react").JSX.Element;
117
+ export declare namespace SectionTitle {
118
+ var displayName: string;
119
+ }
120
+ /** Supporting text under the title. Was `TopBarSubtitle` and `PageShellDescription` too. */
121
+ export declare function SectionDescription({ className, slot, ...rest }: ComponentProps<typeof ark.p>): import("react").JSX.Element;
122
+ export declare namespace SectionDescription {
123
+ var displayName: string;
124
+ }
125
+ /** End-aligned controls. `ms-auto` rather than the root's `justify-between`: with an optional
126
+ * icon and text column ahead of it, one logical margin pushes the actions to the inline end
127
+ * and still mirrors in RTL. */
128
+ export declare function SectionActions({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
129
+ export declare namespace SectionActions {
130
+ var displayName: string;
131
+ }
132
+ declare const sectionBodyVariants: import('tailwind-variants').TVReturnType<{
133
+ scale: {
134
+ page: string;
135
+ section: string;
136
+ };
137
+ }, undefined, "flex min-h-0 flex-1 flex-col gap-4 overflow-auto", {
138
+ scale: {
139
+ page: string;
140
+ section: string;
141
+ };
142
+ }, undefined, import('tailwind-variants').TVReturnType<{
143
+ scale: {
144
+ page: string;
145
+ section: string;
146
+ };
147
+ }, undefined, "flex min-h-0 flex-1 flex-col gap-4 overflow-auto", unknown, unknown, undefined>>;
148
+ export interface SectionBodyProps extends ComponentProps<typeof ark.section>, VariantProps<typeof sectionBodyVariants> {
149
+ }
150
+ /**
151
+ * The content region. Renders `<section>`, NEVER `<main>` — a Section nests inside a shell
152
+ * that already owns the page's single `<main>` landmark, and two of those are a conformance
153
+ * error that also makes "skip to main content" ambiguous.
154
+ */
155
+ export declare function SectionBody({ className, scale, slot, ...rest }: SectionBodyProps): import("react").JSX.Element;
156
+ export declare namespace SectionBody {
157
+ var displayName: string;
158
+ }
159
+ /** Pinned footer — form actions, a save bar. Unlike the header it carries a surface, because
160
+ * it sits against the bottom of a scrolling body and needs to separate from it. */
161
+ export declare function SectionFooter({ className, slot, ...rest }: ComponentProps<typeof ark.footer>): import("react").JSX.Element;
162
+ export declare namespace SectionFooter {
163
+ var displayName: string;
164
+ }
165
+ export {};
166
+ //# sourceMappingURL=section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/layouts/section.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { ark as i } from "@ark-ui/react/factory";
3
+ import { tv as r } from "tailwind-variants";
4
+ import { cn as n } from "../lib/cn.js";
5
+ const d = r({
6
+ base: "flex min-h-0 flex-1 flex-col"
7
+ });
8
+ function m({ className: e, slot: t, ...o }) {
9
+ return /* @__PURE__ */ a(i.div, { className: n(d(), e), ...o, "data-slot": t ?? "section" });
10
+ }
11
+ m.displayName = "SectionRoot";
12
+ const f = r({
13
+ base: "flex items-start gap-3",
14
+ variants: {
15
+ /** `page` is the top of a screen; `section` is a block within one. The difference is
16
+ * breathing room, and it is the only thing that ever really separated PageShellHeader
17
+ * from SectionHeader. */
18
+ scale: {
19
+ page: "px-4 pt-4 pb-2",
20
+ section: ""
21
+ },
22
+ /** Draw a separator under the header. */
23
+ bordered: { true: "border-b border-border pb-3", false: "" }
24
+ },
25
+ defaultVariants: { scale: "section", bordered: !1 }
26
+ });
27
+ function p({ className: e, scale: t, bordered: o, slot: s, ...c }) {
28
+ return /* @__PURE__ */ a(
29
+ i.header,
30
+ {
31
+ className: n(f({ scale: t, bordered: o }), e),
32
+ ...c,
33
+ "data-slot": s ?? "section-header"
34
+ }
35
+ );
36
+ }
37
+ p.displayName = "SectionHeader";
38
+ function u({ className: e, slot: t, ...o }) {
39
+ return /* @__PURE__ */ a(
40
+ i.div,
41
+ {
42
+ className: n("mt-0.5 shrink-0 text-muted-foreground [&_svg]:size-5", e),
43
+ ...o,
44
+ "data-slot": t ?? "section-icon"
45
+ }
46
+ );
47
+ }
48
+ u.displayName = "SectionIcon";
49
+ function b({ className: e, slot: t, ...o }) {
50
+ return /* @__PURE__ */ a(
51
+ i.div,
52
+ {
53
+ className: n("min-w-0 flex-1", e),
54
+ ...o,
55
+ "data-slot": t ?? "section-title-group"
56
+ }
57
+ );
58
+ }
59
+ b.displayName = "SectionTitleGroup";
60
+ const x = r({
61
+ base: "truncate text-foreground",
62
+ variants: {
63
+ scale: {
64
+ page: "text-lg font-bold",
65
+ section: "text-lg font-semibold"
66
+ }
67
+ },
68
+ defaultVariants: { scale: "section" }
69
+ });
70
+ function N({ level: e = 2, scale: t, className: o, slot: s, ...c }) {
71
+ const l = `h${e}`;
72
+ return /* @__PURE__ */ a(
73
+ l,
74
+ {
75
+ className: n(x({ scale: t }), o),
76
+ ...c,
77
+ slot: s ?? "section-title"
78
+ }
79
+ );
80
+ }
81
+ N.displayName = "SectionTitle";
82
+ function S({ className: e, slot: t, ...o }) {
83
+ return /* @__PURE__ */ a(
84
+ i.p,
85
+ {
86
+ className: n("mt-0.5 text-muted-foreground text-sm", e),
87
+ ...o,
88
+ "data-slot": t ?? "section-description"
89
+ }
90
+ );
91
+ }
92
+ S.displayName = "SectionDescription";
93
+ function g({ className: e, slot: t, ...o }) {
94
+ return /* @__PURE__ */ a(
95
+ i.div,
96
+ {
97
+ className: n("ms-auto flex shrink-0 items-center gap-2 self-center", e),
98
+ ...o,
99
+ "data-slot": t ?? "section-actions"
100
+ }
101
+ );
102
+ }
103
+ g.displayName = "SectionActions";
104
+ const y = r({
105
+ base: "flex min-h-0 flex-1 flex-col gap-4 overflow-auto",
106
+ variants: {
107
+ scale: { page: "p-4", section: "" }
108
+ },
109
+ defaultVariants: { scale: "section" }
110
+ });
111
+ function v({
112
+ className: e,
113
+ scale: t,
114
+ slot: o,
115
+ ...s
116
+ }) {
117
+ return /* @__PURE__ */ a(
118
+ i.section,
119
+ {
120
+ className: n(y({ scale: t }), e),
121
+ ...s,
122
+ "data-slot": o ?? "section-body"
123
+ }
124
+ );
125
+ }
126
+ v.displayName = "SectionBody";
127
+ function h({ className: e, slot: t, ...o }) {
128
+ return /* @__PURE__ */ a(
129
+ i.footer,
130
+ {
131
+ className: n(
132
+ "flex shrink-0 items-center justify-between gap-2 border-t border-border bg-card px-4 py-3",
133
+ e
134
+ ),
135
+ ...o,
136
+ "data-slot": t ?? "section-footer"
137
+ }
138
+ );
139
+ }
140
+ h.displayName = "SectionFooter";
141
+ export {
142
+ g as SectionActions,
143
+ v as SectionBody,
144
+ S as SectionDescription,
145
+ h as SectionFooter,
146
+ p as SectionHeader,
147
+ u as SectionIcon,
148
+ m as SectionRoot,
149
+ N as SectionTitle,
150
+ b as SectionTitleGroup,
151
+ d as sectionVariants
152
+ };
153
+ //# sourceMappingURL=section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section.js","sources":["../../src/layouts/section.tsx"],"sourcesContent":["import { ark } from \"@ark-ui/react/factory\";\nimport type { ComponentProps } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn.js\";\n\n/**\n * Section — the content scaffolding that sits INSIDE a shell region.\n *\n * Different axis from `shell.tsx`: the Shell regions position the window, this positions the\n * content within them. They never compete, and a Section nests inside `ShellMain`.\n *\n * This is one vocabulary where there were three. `PageShell` (Header · Title · Description ·\n * Actions · Content · Footer), `SectionHeader` (Icon · Content · Title · Description ·\n * Actions) and `TopBarMain` (TitleGroup · Title · Subtitle · Actions) described the same row\n * — a heading with optional icon, supporting text and end-aligned controls — under three sets\n * of names. `scale` is what actually differed between them.\n *\n * NOT merged, deliberately: `CardHeader` and `DialogHeader` have this same shape but stay with\n * their components. A header wired to a machine belongs to that machine — `DialogHeader` wires\n * Ark's `aria-labelledby`. Precedent that the line is right: `TourHeader` *is* `DialogHeader`.\n * Sharing across machines is fine when the wiring is shared; merging layout with wiring is not.\n *\n * Parts are FLAT exports. Statics are lost when a module becomes a client reference under RSC,\n * so `Section.Header` would read back as `undefined` — a bug we hit for real with `Preferences`.\n */\n\nexport const sectionVariants = tv({\n base: \"flex min-h-0 flex-1 flex-col\",\n});\n\n/** The container. Presentational — the scale lives on the parts that render text. */\nexport type SectionRootProps = ComponentProps<typeof ark.div>;\n\nexport function SectionRoot({ className, slot, ...rest }: SectionRootProps) {\n return (\n <ark.div className={cn(sectionVariants(), className)} {...rest} data-slot={slot ?? \"section\"} />\n );\n}\nSectionRoot.displayName = \"SectionRoot\";\n\nconst sectionHeaderVariants = tv({\n base: \"flex items-start gap-3\",\n variants: {\n /** `page` is the top of a screen; `section` is a block within one. The difference is\n * breathing room, and it is the only thing that ever really separated PageShellHeader\n * from SectionHeader. */\n scale: {\n page: \"px-4 pt-4 pb-2\",\n section: \"\",\n },\n /** Draw a separator under the header. */\n bordered: { true: \"border-b border-border pb-3\", false: \"\" },\n },\n defaultVariants: { scale: \"section\", bordered: false },\n});\n\nexport interface SectionHeaderProps\n extends ComponentProps<typeof ark.header>,\n VariantProps<typeof sectionHeaderVariants> {}\n\n/**\n * A flex row, not a grid. `PageShellHeader` used a two-column grid so its actions could span\n * both text rows; a flex row with a title group and `ms-auto` on the actions achieves the same\n * alignment, handles the optional icon that the grid could not, and mirrors under RTL without\n * a second code path.\n */\nexport function SectionHeader({ className, scale, bordered, slot, ...rest }: SectionHeaderProps) {\n return (\n <ark.header\n className={cn(sectionHeaderVariants({ scale, bordered }), className)}\n {...rest}\n data-slot={slot ?? \"section-header\"}\n />\n );\n}\nSectionHeader.displayName = \"SectionHeader\";\n\n/** Leading icon or badge. `mt-0.5` optically aligns it with the title's cap height. */\nexport function SectionIcon({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"mt-0.5 shrink-0 text-muted-foreground [&_svg]:size-5\", className)}\n {...rest}\n data-slot={slot ?? \"section-icon\"}\n />\n );\n}\nSectionIcon.displayName = \"SectionIcon\";\n\n/** The text column: title over description. `min-w-0` is what lets the title truncate rather\n * than pushing the actions off the row. */\nexport function SectionTitleGroup({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"min-w-0 flex-1\", className)}\n {...rest}\n data-slot={slot ?? \"section-title-group\"}\n />\n );\n}\nSectionTitleGroup.displayName = \"SectionTitleGroup\";\n\nconst sectionTitleVariants = tv({\n base: \"truncate text-foreground\",\n variants: {\n scale: {\n page: \"text-lg font-bold\",\n section: \"text-lg font-semibold\",\n },\n },\n defaultVariants: { scale: \"section\" },\n});\n\nexport interface SectionTitleProps\n extends Omit<ComponentProps<\"h2\">, \"ref\">,\n VariantProps<typeof sectionTitleVariants> {\n /** Heading level, so the title slots into the surrounding document outline. Default 2.\n * Kept SEPARATE from `scale`: how big it looks and where it sits in the outline are\n * different questions, and tying them would force a visual choice to change semantics. */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport function SectionTitle({ level = 2, scale, className, slot, ...rest }: SectionTitleProps) {\n const Title = `h${level}` as const;\n return (\n <Title\n className={cn(sectionTitleVariants({ scale }), className)}\n {...rest}\n slot={slot ?? \"section-title\"}\n />\n );\n}\nSectionTitle.displayName = \"SectionTitle\";\n\n/** Supporting text under the title. Was `TopBarSubtitle` and `PageShellDescription` too. */\nexport function SectionDescription({ className, slot, ...rest }: ComponentProps<typeof ark.p>) {\n return (\n <ark.p\n className={cn(\"mt-0.5 text-muted-foreground text-sm\", className)}\n {...rest}\n data-slot={slot ?? \"section-description\"}\n />\n );\n}\nSectionDescription.displayName = \"SectionDescription\";\n\n/** End-aligned controls. `ms-auto` rather than the root's `justify-between`: with an optional\n * icon and text column ahead of it, one logical margin pushes the actions to the inline end\n * and still mirrors in RTL. */\nexport function SectionActions({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"ms-auto flex shrink-0 items-center gap-2 self-center\", className)}\n {...rest}\n data-slot={slot ?? \"section-actions\"}\n />\n );\n}\nSectionActions.displayName = \"SectionActions\";\n\nconst sectionBodyVariants = tv({\n base: \"flex min-h-0 flex-1 flex-col gap-4 overflow-auto\",\n variants: {\n scale: { page: \"p-4\", section: \"\" },\n },\n defaultVariants: { scale: \"section\" },\n});\n\nexport interface SectionBodyProps\n extends ComponentProps<typeof ark.section>,\n VariantProps<typeof sectionBodyVariants> {}\n\n/**\n * The content region. Renders `<section>`, NEVER `<main>` — a Section nests inside a shell\n * that already owns the page's single `<main>` landmark, and two of those are a conformance\n * error that also makes \"skip to main content\" ambiguous.\n */\nexport function SectionBody({\n className,\n scale,\n slot,\n ...rest\n}: SectionBodyProps) {\n return (\n <ark.section\n className={cn(sectionBodyVariants({ scale }), className)}\n {...rest}\n data-slot={slot ?? \"section-body\"}\n />\n );\n}\nSectionBody.displayName = \"SectionBody\";\n\n/** Pinned footer — form actions, a save bar. Unlike the header it carries a surface, because\n * it sits against the bottom of a scrolling body and needs to separate from it. */\nexport function SectionFooter({ className, slot, ...rest }: ComponentProps<typeof ark.footer>) {\n return (\n <ark.footer\n className={cn(\n \"flex shrink-0 items-center justify-between gap-2 border-t border-border bg-card px-4 py-3\",\n className,\n )}\n {...rest}\n data-slot={slot ?? \"section-footer\"}\n />\n );\n}\nSectionFooter.displayName = \"SectionFooter\";\n"],"names":["sectionVariants","tv","SectionRoot","className","slot","rest","jsx","ark","cn","sectionHeaderVariants","SectionHeader","scale","bordered","SectionIcon","SectionTitleGroup","sectionTitleVariants","SectionTitle","level","Title","SectionDescription","SectionActions","sectionBodyVariants","SectionBody","SectionFooter"],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { ark } from '@ark-ui/react/factory';
2
+ import { ComponentProps } from 'react';
3
+ import { VariantProps } from 'tailwind-variants';
4
+ /**
5
+ * Shell — the generic layout vocabulary.
6
+ *
7
+ * The library ships composable parts, not named arrangements. `AppShell`, `WorkspaceLayout`
8
+ * and friends were each a specific shape extracted from one product, which is why the layer
9
+ * read as "the metadata view" rather than as a design system. Those arrangements live in
10
+ * `docs/showcases/` now; what is shipped is the vocabulary they are built from.
11
+ *
12
+ * Parts are exported FLAT (`ShellHeader`, not `Shell.Header`). A namespace object built with
13
+ * `Object.assign` does not survive the RSC client boundary — `Preferences` learned that the
14
+ * hard way, and its compound statics had to be re-exported flat.
15
+ */
16
+ /**
17
+ * The regions above and below the body. STRUCTURAL ONLY — placement, and the border that
18
+ * separates the region from its neighbour. No height, no surface, no typography, no font
19
+ * size: whatever you put inside is yours.
20
+ *
21
+ * This is deliberate and was arrived at the hard way. `Toolbar`, `StatusBar` and
22
+ * `TopBarUtility` were three copies of one strip, and the first attempt merged them into a
23
+ * generic `ShellBar` that kept `h-8`, `bg-card`, `text-muted-foreground` and an 11px font —
24
+ * the IDE aesthetic of `Toolbar`, the component that had been explicitly rejected.
25
+ * Generalising an implementation while preserving a rejected appearance is not generalising.
26
+ *
27
+ * So a dense IDE strip is not a component here; it is something you PUT in this region, and
28
+ * it lives in the workspace showcase.
29
+ *
30
+ * No role is declared. A top region is often `banner` and a bottom one `contentinfo`, but a
31
+ * strip is neither and a shell may have several — the call site passes the landmark.
32
+ */
33
+ export declare function ShellHeader({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
34
+ export declare namespace ShellHeader {
35
+ var displayName: string;
36
+ }
37
+ /** The region below the body. Structural only — see {@link ShellHeader}. */
38
+ export declare function ShellFooter({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
39
+ export declare namespace ShellFooter {
40
+ var displayName: string;
41
+ }
42
+ /**
43
+ * The outermost region: a full-height column that bars and the body stack inside.
44
+ *
45
+ * `h-dvh` rather than `h-screen`: on mobile browsers `100vh` includes the retracting URL bar,
46
+ * so a shell sized with it is taller than the visible viewport and its bottom bar sits off
47
+ * screen. `min-h-0` is what lets the body shrink and its own regions scroll instead of the
48
+ * page growing.
49
+ */
50
+ export declare function ShellRoot({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
51
+ export declare namespace ShellRoot {
52
+ var displayName: string;
53
+ }
54
+ /** The horizontal band between the bars: asides and main sit here as siblings, in the order
55
+ * the caller writes them — which is also what makes the layout mirror correctly in RTL. */
56
+ export declare function ShellBody({ className, slot, ...rest }: ComponentProps<typeof ark.div>): import("react").JSX.Element;
57
+ export declare namespace ShellBody {
58
+ var displayName: string;
59
+ }
60
+ /**
61
+ * The primary content region. Renders the `<main>` landmark.
62
+ *
63
+ * EXACTLY ONE per page. Two `<main>` elements are an HTML conformance error and make
64
+ * "skip to main content" ambiguous, so nothing nested inside may render another — nestable
65
+ * containers use `<section>`.
66
+ *
67
+ * That skip link is `SkipNavLink`, and this is what it lands on: wrap this element in
68
+ * `<SkipNavContent asChild>` rather than nesting a target inside it.
69
+ */
70
+ export declare function ShellMain({ className, slot, ...rest }: ComponentProps<typeof ark.main>): import("react").JSX.Element;
71
+ export declare namespace ShellMain {
72
+ var displayName: string;
73
+ }
74
+ declare const shellAsideVariants: import('tailwind-variants').TVReturnType<{
75
+ side: {
76
+ start: string;
77
+ end: string;
78
+ };
79
+ /** Docked (false) sits in the flow and carries the divider. Overlay (true) floats over
80
+ * the content — a narrow-viewport drawer — so it has no divider. */
81
+ overlay: {
82
+ true: string;
83
+ false: string;
84
+ };
85
+ }, undefined, "flex flex-col", {
86
+ side: {
87
+ start: string;
88
+ end: string;
89
+ };
90
+ /** Docked (false) sits in the flow and carries the divider. Overlay (true) floats over
91
+ * the content — a narrow-viewport drawer — so it has no divider. */
92
+ overlay: {
93
+ true: string;
94
+ false: string;
95
+ };
96
+ }, undefined, import('tailwind-variants').TVReturnType<{
97
+ side: {
98
+ start: string;
99
+ end: string;
100
+ };
101
+ /** Docked (false) sits in the flow and carries the divider. Overlay (true) floats over
102
+ * the content — a narrow-viewport drawer — so it has no divider. */
103
+ overlay: {
104
+ true: string;
105
+ false: string;
106
+ };
107
+ }, undefined, "flex flex-col", unknown, unknown, undefined>>;
108
+ export interface ShellAsideProps extends ComponentProps<typeof ark.aside>, VariantProps<typeof shellAsideVariants> {
109
+ /** Docked width in px. Ignored when `overlay`, where the aside fills its container. */
110
+ width?: number;
111
+ }
112
+ /**
113
+ * A side region — navigation, a dock, an inspector. Renders `<aside>`, so it is a
114
+ * complementary landmark: give it an `aria-label` when a page has more than one.
115
+ *
116
+ * Logical properties throughout (`border-e` / `border-s`, `side="start" | "end"`), not
117
+ * physical left/right, so the whole shell mirrors under RTL without a second code path.
118
+ *
119
+ * For a RESIZABLE aside, compose Ark's Splitter around it rather than reaching for a prop —
120
+ * the drag behaviour, keyboard resizing and ARIA come from the machine, and this component
121
+ * stays presentational.
122
+ */
123
+ export declare function ShellAside({ className, side, overlay, width, style, slot, ...rest }: ShellAsideProps): import("react").JSX.Element;
124
+ export declare namespace ShellAside {
125
+ var displayName: string;
126
+ }
127
+ export {};
128
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/layouts/shell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1D;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,+BAQvF;yBARe,WAAW;;;AAW3B,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,+BAQvF;yBARe,WAAW;;;AAW3B;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,+BAQrF;yBARe,SAAS;;;AAWzB;4FAC4F;AAC5F,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,+BAQrF;yBARe,SAAS;;;AAWzB;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,+BAQtF;yBARe,SAAS;;;AAezB,QAAA,MAAM,kBAAkB;;;;;IAIpB;yEACqE;;;;;;;;;;IADrE;yEACqE;;;;;;;;;;IADrE;yEACqE;;;;;4DAYvE,CAAC;AAEH,MAAM,WAAW,eACf,SAAQ,cAAc,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,EACtC,YAAY,CAAC,OAAO,kBAAkB,CAAC;IACzC,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,eAAe,+BAajB;yBArBe,UAAU"}
@@ -0,0 +1,107 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { ark as o } from "@ark-ui/react/factory";
3
+ import { tv as f } from "tailwind-variants";
4
+ import { cn as s } from "../lib/cn.js";
5
+ function h({ className: a, slot: e, ...l }) {
6
+ return /* @__PURE__ */ r(
7
+ o.div,
8
+ {
9
+ className: s("flex shrink-0 flex-col border-b border-border", a),
10
+ ...l,
11
+ "data-slot": e ?? "shell-header"
12
+ }
13
+ );
14
+ }
15
+ h.displayName = "ShellHeader";
16
+ function m({ className: a, slot: e, ...l }) {
17
+ return /* @__PURE__ */ r(
18
+ o.div,
19
+ {
20
+ className: s("flex shrink-0 flex-col border-t border-border", a),
21
+ ...l,
22
+ "data-slot": e ?? "shell-footer"
23
+ }
24
+ );
25
+ }
26
+ m.displayName = "ShellFooter";
27
+ function c({ className: a, slot: e, ...l }) {
28
+ return /* @__PURE__ */ r(
29
+ o.div,
30
+ {
31
+ className: s("flex h-dvh min-h-0 flex-col overflow-hidden", a),
32
+ ...l,
33
+ "data-slot": e ?? "shell-root"
34
+ }
35
+ );
36
+ }
37
+ c.displayName = "ShellRoot";
38
+ function u({ className: a, slot: e, ...l }) {
39
+ return /* @__PURE__ */ r(
40
+ o.div,
41
+ {
42
+ className: s("relative flex min-h-0 flex-1", a),
43
+ ...l,
44
+ "data-slot": e ?? "shell-body"
45
+ }
46
+ );
47
+ }
48
+ u.displayName = "ShellBody";
49
+ function b({ className: a, slot: e, ...l }) {
50
+ return /* @__PURE__ */ r(
51
+ o.main,
52
+ {
53
+ className: s("flex min-w-0 flex-1 flex-col overflow-auto", a),
54
+ ...l,
55
+ "data-slot": e ?? "shell-main"
56
+ }
57
+ );
58
+ }
59
+ b.displayName = "ShellMain";
60
+ const x = f({
61
+ base: "flex flex-col",
62
+ variants: {
63
+ side: { start: "", end: "" },
64
+ /** Docked (false) sits in the flow and carries the divider. Overlay (true) floats over
65
+ * the content — a narrow-viewport drawer — so it has no divider. */
66
+ overlay: {
67
+ true: "absolute inset-0 z-5",
68
+ false: "min-w-0 shrink-0"
69
+ }
70
+ },
71
+ compoundVariants: [
72
+ // The divider belongs to the edge the aside is docked against.
73
+ { overlay: !1, side: "start", class: "border-e border-border" },
74
+ { overlay: !1, side: "end", class: "border-s border-border" }
75
+ ],
76
+ defaultVariants: { side: "start", overlay: !1 }
77
+ });
78
+ function v({
79
+ className: a,
80
+ side: e,
81
+ overlay: l,
82
+ width: d,
83
+ style: t,
84
+ slot: i,
85
+ ...n
86
+ }) {
87
+ return /* @__PURE__ */ r(
88
+ o.aside,
89
+ {
90
+ className: s(x({ side: e, overlay: l }), a),
91
+ "data-side": e ?? "start",
92
+ style: l ? t : { width: d, ...t },
93
+ ...n,
94
+ "data-slot": i ?? "shell-aside"
95
+ }
96
+ );
97
+ }
98
+ v.displayName = "ShellAside";
99
+ export {
100
+ v as ShellAside,
101
+ u as ShellBody,
102
+ m as ShellFooter,
103
+ h as ShellHeader,
104
+ b as ShellMain,
105
+ c as ShellRoot
106
+ };
107
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sources":["../../src/layouts/shell.tsx"],"sourcesContent":["import { ark } from \"@ark-ui/react/factory\";\nimport type { ComponentProps } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn.js\";\n\n/**\n * Shell — the generic layout vocabulary.\n *\n * The library ships composable parts, not named arrangements. `AppShell`, `WorkspaceLayout`\n * and friends were each a specific shape extracted from one product, which is why the layer\n * read as \"the metadata view\" rather than as a design system. Those arrangements live in\n * `docs/showcases/` now; what is shipped is the vocabulary they are built from.\n *\n * Parts are exported FLAT (`ShellHeader`, not `Shell.Header`). A namespace object built with\n * `Object.assign` does not survive the RSC client boundary — `Preferences` learned that the\n * hard way, and its compound statics had to be re-exported flat.\n */\n\n/**\n * The regions above and below the body. STRUCTURAL ONLY — placement, and the border that\n * separates the region from its neighbour. No height, no surface, no typography, no font\n * size: whatever you put inside is yours.\n *\n * This is deliberate and was arrived at the hard way. `Toolbar`, `StatusBar` and\n * `TopBarUtility` were three copies of one strip, and the first attempt merged them into a\n * generic `ShellBar` that kept `h-8`, `bg-card`, `text-muted-foreground` and an 11px font —\n * the IDE aesthetic of `Toolbar`, the component that had been explicitly rejected.\n * Generalising an implementation while preserving a rejected appearance is not generalising.\n *\n * So a dense IDE strip is not a component here; it is something you PUT in this region, and\n * it lives in the workspace showcase.\n *\n * No role is declared. A top region is often `banner` and a bottom one `contentinfo`, but a\n * strip is neither and a shell may have several — the call site passes the landmark.\n */\nexport function ShellHeader({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"flex shrink-0 flex-col border-b border-border\", className)}\n {...rest}\n data-slot={slot ?? \"shell-header\"}\n />\n );\n}\nShellHeader.displayName = \"ShellHeader\";\n\n/** The region below the body. Structural only — see {@link ShellHeader}. */\nexport function ShellFooter({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"flex shrink-0 flex-col border-t border-border\", className)}\n {...rest}\n data-slot={slot ?? \"shell-footer\"}\n />\n );\n}\nShellFooter.displayName = \"ShellFooter\";\n\n/**\n * The outermost region: a full-height column that bars and the body stack inside.\n *\n * `h-dvh` rather than `h-screen`: on mobile browsers `100vh` includes the retracting URL bar,\n * so a shell sized with it is taller than the visible viewport and its bottom bar sits off\n * screen. `min-h-0` is what lets the body shrink and its own regions scroll instead of the\n * page growing.\n */\nexport function ShellRoot({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"flex h-dvh min-h-0 flex-col overflow-hidden\", className)}\n {...rest}\n data-slot={slot ?? \"shell-root\"}\n />\n );\n}\nShellRoot.displayName = \"ShellRoot\";\n\n/** The horizontal band between the bars: asides and main sit here as siblings, in the order\n * the caller writes them — which is also what makes the layout mirror correctly in RTL. */\nexport function ShellBody({ className, slot, ...rest }: ComponentProps<typeof ark.div>) {\n return (\n <ark.div\n className={cn(\"relative flex min-h-0 flex-1\", className)}\n {...rest}\n data-slot={slot ?? \"shell-body\"}\n />\n );\n}\nShellBody.displayName = \"ShellBody\";\n\n/**\n * The primary content region. Renders the `<main>` landmark.\n *\n * EXACTLY ONE per page. Two `<main>` elements are an HTML conformance error and make\n * \"skip to main content\" ambiguous, so nothing nested inside may render another — nestable\n * containers use `<section>`.\n *\n * That skip link is `SkipNavLink`, and this is what it lands on: wrap this element in\n * `<SkipNavContent asChild>` rather than nesting a target inside it.\n */\nexport function ShellMain({ className, slot, ...rest }: ComponentProps<typeof ark.main>) {\n return (\n <ark.main\n className={cn(\"flex min-w-0 flex-1 flex-col overflow-auto\", className)}\n {...rest}\n data-slot={slot ?? \"shell-main\"}\n />\n );\n}\nShellMain.displayName = \"ShellMain\";\n\n// No `bg-card`. A region places its children and separates itself from its neighbour; the surface\n// is the caller's, like every other aesthetic in this layer. It carried one until 2026-08-01, which\n// is the same defect this file rejects `ShellBar` for ninety lines above — the rule was written\n// against a bar that kept `bg-card`, and the aside had kept it too.\nconst shellAsideVariants = tv({\n base: \"flex flex-col\",\n variants: {\n side: { start: \"\", end: \"\" },\n /** Docked (false) sits in the flow and carries the divider. Overlay (true) floats over\n * the content — a narrow-viewport drawer — so it has no divider. */\n overlay: {\n true: \"absolute inset-0 z-5\",\n false: \"min-w-0 shrink-0\",\n },\n },\n compoundVariants: [\n // The divider belongs to the edge the aside is docked against.\n { overlay: false, side: \"start\", class: \"border-e border-border\" },\n { overlay: false, side: \"end\", class: \"border-s border-border\" },\n ],\n defaultVariants: { side: \"start\", overlay: false },\n});\n\nexport interface ShellAsideProps\n extends ComponentProps<typeof ark.aside>,\n VariantProps<typeof shellAsideVariants> {\n /** Docked width in px. Ignored when `overlay`, where the aside fills its container. */\n width?: number;\n}\n\n/**\n * A side region — navigation, a dock, an inspector. Renders `<aside>`, so it is a\n * complementary landmark: give it an `aria-label` when a page has more than one.\n *\n * Logical properties throughout (`border-e` / `border-s`, `side=\"start\" | \"end\"`), not\n * physical left/right, so the whole shell mirrors under RTL without a second code path.\n *\n * For a RESIZABLE aside, compose Ark's Splitter around it rather than reaching for a prop —\n * the drag behaviour, keyboard resizing and ARIA come from the machine, and this component\n * stays presentational.\n */\nexport function ShellAside({\n className,\n side,\n overlay,\n width,\n style,\n slot,\n ...rest\n}: ShellAsideProps) {\n return (\n <ark.aside\n className={cn(shellAsideVariants({ side, overlay }), className)}\n data-side={side ?? \"start\"}\n // `width` is a genuinely computed value the caller owns (and drives from drag state),\n // which is the sanctioned inline-style exception. An overlay fills its container, so\n // applying it there would fight the `inset-0`.\n style={overlay ? style : { width, ...style }}\n {...rest}\n data-slot={slot ?? \"shell-aside\"}\n />\n );\n}\nShellAside.displayName = \"ShellAside\";\n"],"names":["ShellHeader","className","slot","rest","jsx","ark","cn","ShellFooter","ShellRoot","ShellBody","ShellMain","shellAsideVariants","tv","ShellAside","side","overlay","width","style"],"mappings":";;;;AAmCO,SAASA,EAAY,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,KAAwC;AACxF,SACE,gBAAAC;AAAA,IAACC,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWC,EAAG,iDAAiDL,CAAS;AAAA,MACvE,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;AACAF,EAAY,cAAc;AAGnB,SAASO,EAAY,EAAE,WAAAN,GAAW,MAAAC,GAAM,GAAGC,KAAwC;AACxF,SACE,gBAAAC;AAAA,IAACC,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWC,EAAG,iDAAiDL,CAAS;AAAA,MACvE,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;AACAK,EAAY,cAAc;AAUnB,SAASC,EAAU,EAAE,WAAAP,GAAW,MAAAC,GAAM,GAAGC,KAAwC;AACtF,SACE,gBAAAC;AAAA,IAACC,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWC,EAAG,+CAA+CL,CAAS;AAAA,MACrE,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;AACAM,EAAU,cAAc;AAIjB,SAASC,EAAU,EAAE,WAAAR,GAAW,MAAAC,GAAM,GAAGC,KAAwC;AACtF,SACE,gBAAAC;AAAA,IAACC,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWC,EAAG,gCAAgCL,CAAS;AAAA,MACtD,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;AACAO,EAAU,cAAc;AAYjB,SAASC,EAAU,EAAE,WAAAT,GAAW,MAAAC,GAAM,GAAGC,KAAyC;AACvF,SACE,gBAAAC;AAAA,IAACC,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWC,EAAG,8CAA8CL,CAAS;AAAA,MACpE,GAAGE;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;AACAQ,EAAU,cAAc;AAMxB,MAAMC,IAAqBC,EAAG;AAAA,EAC5B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM,EAAE,OAAO,IAAI,KAAK,GAAA;AAAA;AAAA;AAAA,IAGxB,SAAS;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,kBAAkB;AAAA;AAAA,IAEhB,EAAE,SAAS,IAAO,MAAM,SAAS,OAAO,yBAAA;AAAA,IACxC,EAAE,SAAS,IAAO,MAAM,OAAO,OAAO,yBAAA;AAAA,EAAyB;AAAA,EAEjE,iBAAiB,EAAE,MAAM,SAAS,SAAS,GAAA;AAC7C,CAAC;AAoBM,SAASC,EAAW;AAAA,EACzB,WAAAZ;AAAA,EACA,MAAAa;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAf;AAAA,EACA,GAAGC;AACL,GAAoB;AAClB,SACE,gBAAAC;AAAA,IAACC,EAAI;AAAA,IAAJ;AAAA,MACC,WAAWC,EAAGK,EAAmB,EAAE,MAAAG,GAAM,SAAAC,EAAA,CAAS,GAAGd,CAAS;AAAA,MAC9D,aAAWa,KAAQ;AAAA,MAInB,OAAOC,IAAUE,IAAQ,EAAE,OAAAD,GAAO,GAAGC,EAAA;AAAA,MACpC,GAAGd;AAAA,MACJ,aAAWD,KAAQ;AAAA,IAAA;AAAA,EAAA;AAGzB;AACAW,EAAW,cAAc;"}
@@ -0,0 +1,4 @@
1
+ import { ClassValue } from 'clsx';
2
+ /** Merge class names with clsx + tailwind-merge (dedupes conflicting utilities). */
3
+ export declare function cn(...inputs: ClassValue[]): string;
4
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/lib/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,oFAAoF;AACpF,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAElD"}
package/dist/lib/cn.js ADDED
@@ -0,0 +1,9 @@
1
+ import { clsx as o } from "clsx";
2
+ import { twMerge as t } from "tailwind-merge";
3
+ function n(...r) {
4
+ return t(o(r));
5
+ }
6
+ export {
7
+ n as cn
8
+ };
9
+ //# sourceMappingURL=cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.js","sources":["../../src/lib/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Merge class names with clsx + tailwind-merge (dedupes conflicting utilities). */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":";;AAIO,SAASA,KAAMC,GAA8B;AAClD,SAAOC,EAAQC,EAAKF,CAAM,CAAC;AAC7B;"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Is `href` the active route, given the current path?
3
+ *
4
+ * A prefix match, but not `startsWith`: `/settings` is active on `/settings/cloud` and is **not**
5
+ * active on `/settings-archive`. That boundary is the whole reason this is a function rather than
6
+ * an expression written at each call site — it is four lines and it was wrong in two of them.
7
+ *
8
+ * The library ships no navigation component to apply it for you: a nav is a layout tree, so it is
9
+ * hand-composed from `SidebarMenu*` and a router link through `asChild`. This is the one part of
10
+ * that arrangement that is logic rather than markup, so it is the one part that is exported.
11
+ */
12
+ export declare function isActivePath(activePath: string | undefined, href: string | undefined): boolean;
13
+ //# sourceMappingURL=is-active-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-active-path.d.ts","sourceRoot":"","sources":["../../src/lib/is-active-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAM9F"}