@marktiderman/genesis-ui 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/dist/AppShell-BJarYZzz.d.ts +198 -0
  2. package/dist/{chunk-NJMO3VPA.js → chunk-22XB3Q6H.js} +8 -8
  3. package/dist/chunk-22XB3Q6H.js.map +1 -0
  4. package/dist/{chunk-2MXMWBDV.js → chunk-27ELYTGE.js} +6 -6
  5. package/dist/chunk-27ELYTGE.js.map +1 -0
  6. package/dist/chunk-46TZGMFW.js +159 -0
  7. package/dist/chunk-46TZGMFW.js.map +1 -0
  8. package/dist/chunk-4CQHPWJD.js +117 -0
  9. package/dist/chunk-4CQHPWJD.js.map +1 -0
  10. package/dist/{chunk-ZDAT5JDH.js → chunk-65SPT7EA.js} +24 -6
  11. package/dist/chunk-65SPT7EA.js.map +1 -0
  12. package/dist/chunk-6KHY647C.js +67 -0
  13. package/dist/chunk-6KHY647C.js.map +1 -0
  14. package/dist/chunk-6M4NHHKG.js +51 -0
  15. package/dist/chunk-6M4NHHKG.js.map +1 -0
  16. package/dist/{chunk-AI6CCNWK.js → chunk-6NPEMLBA.js} +2 -2
  17. package/dist/chunk-6NPEMLBA.js.map +1 -0
  18. package/dist/chunk-6Q6CLLJ4.js +9 -0
  19. package/dist/chunk-6Q6CLLJ4.js.map +1 -0
  20. package/dist/{chunk-UGHQFQOE.js → chunk-6TVMQH6M.js} +28 -28
  21. package/dist/chunk-6TVMQH6M.js.map +1 -0
  22. package/dist/{chunk-UKSBLFEK.js → chunk-6XPMU65K.js} +5 -5
  23. package/dist/{chunk-UKSBLFEK.js.map → chunk-6XPMU65K.js.map} +1 -1
  24. package/dist/{chunk-YZEA5TGK.js → chunk-7XMZVISM.js} +16 -16
  25. package/dist/chunk-7XMZVISM.js.map +1 -0
  26. package/dist/chunk-A7AHVDG7.js +52 -0
  27. package/dist/chunk-A7AHVDG7.js.map +1 -0
  28. package/dist/chunk-AFZ76Q26.js +84 -0
  29. package/dist/chunk-AFZ76Q26.js.map +1 -0
  30. package/dist/{chunk-4V4H2ZM7.js → chunk-AL5TMEZQ.js} +31 -31
  31. package/dist/chunk-AL5TMEZQ.js.map +1 -0
  32. package/dist/{chunk-O4B5ALO7.js → chunk-AOZGQM6W.js} +3 -3
  33. package/dist/chunk-AOZGQM6W.js.map +1 -0
  34. package/dist/chunk-ARJI2JUV.js +122 -0
  35. package/dist/chunk-ARJI2JUV.js.map +1 -0
  36. package/dist/chunk-AVFZ4P4B.js +25 -0
  37. package/dist/chunk-AVFZ4P4B.js.map +1 -0
  38. package/dist/chunk-B2GIBUQD.js +11 -0
  39. package/dist/chunk-B2GIBUQD.js.map +1 -0
  40. package/dist/{chunk-JXI2MYL3.js → chunk-C46ITXE4.js} +5 -5
  41. package/dist/chunk-C46ITXE4.js.map +1 -0
  42. package/dist/chunk-CNTWQSUT.js +65 -0
  43. package/dist/chunk-CNTWQSUT.js.map +1 -0
  44. package/dist/chunk-D2LIXA2Y.js +65 -0
  45. package/dist/chunk-D2LIXA2Y.js.map +1 -0
  46. package/dist/{chunk-FCGFG4RV.js → chunk-D4JTQYP5.js} +3 -3
  47. package/dist/{chunk-FCGFG4RV.js.map → chunk-D4JTQYP5.js.map} +1 -1
  48. package/dist/{chunk-T5VX5DYO.js → chunk-F47U5KNW.js} +5 -5
  49. package/dist/chunk-F47U5KNW.js.map +1 -0
  50. package/dist/chunk-FEJAZFP3.js +1100 -0
  51. package/dist/chunk-FEJAZFP3.js.map +1 -0
  52. package/dist/{chunk-2B3MFHBQ.js → chunk-FK42ZGGV.js} +21 -21
  53. package/dist/chunk-FK42ZGGV.js.map +1 -0
  54. package/dist/{chunk-XISSLIMH.js → chunk-FTTNGGLA.js} +2 -2
  55. package/dist/{chunk-XISSLIMH.js.map → chunk-FTTNGGLA.js.map} +1 -1
  56. package/dist/chunk-G5YKBPBF.js +74 -0
  57. package/dist/chunk-G5YKBPBF.js.map +1 -0
  58. package/dist/chunk-GCQFVMPI.js +56 -0
  59. package/dist/chunk-GCQFVMPI.js.map +1 -0
  60. package/dist/{chunk-LDPPIBIJ.js → chunk-IJCT5IJD.js} +3 -3
  61. package/dist/{chunk-LDPPIBIJ.js.map → chunk-IJCT5IJD.js.map} +1 -1
  62. package/dist/{chunk-DGRHPJ3M.js → chunk-J6FBA7PH.js} +3 -3
  63. package/dist/{chunk-DGRHPJ3M.js.map → chunk-J6FBA7PH.js.map} +1 -1
  64. package/dist/chunk-JAMLFMDS.js +12 -0
  65. package/dist/chunk-JAMLFMDS.js.map +1 -0
  66. package/dist/{chunk-C6H7AMO4.js → chunk-LNFF2RBD.js} +9 -9
  67. package/dist/chunk-LNFF2RBD.js.map +1 -0
  68. package/dist/{chunk-QBZMY2AF.js → chunk-M62CHO3N.js} +18 -18
  69. package/dist/chunk-M62CHO3N.js.map +1 -0
  70. package/dist/{chunk-5Q4FABZQ.js → chunk-NUXW6NPP.js} +8 -8
  71. package/dist/chunk-NUXW6NPP.js.map +1 -0
  72. package/dist/{chunk-I6JQHP6D.js → chunk-NWSCYLPT.js} +78 -17
  73. package/dist/chunk-NWSCYLPT.js.map +1 -0
  74. package/dist/{chunk-63FW5ZUA.js → chunk-P3ZL6FGR.js} +7 -7
  75. package/dist/chunk-P3ZL6FGR.js.map +1 -0
  76. package/dist/chunk-P64MFQXZ.js +191 -0
  77. package/dist/chunk-P64MFQXZ.js.map +1 -0
  78. package/dist/chunk-PLIYF6KI.js +52 -0
  79. package/dist/chunk-PLIYF6KI.js.map +1 -0
  80. package/dist/chunk-PSR47JRA.js +26 -0
  81. package/dist/chunk-PSR47JRA.js.map +1 -0
  82. package/dist/{chunk-QLCDAFS7.js → chunk-Q4I4SFBD.js} +3 -3
  83. package/dist/chunk-Q4I4SFBD.js.map +1 -0
  84. package/dist/{chunk-SBJV3K4G.js → chunk-QJ6P2DW6.js} +28 -28
  85. package/dist/chunk-QJ6P2DW6.js.map +1 -0
  86. package/dist/{chunk-IP6TMT3D.js → chunk-R7QFP6EL.js} +3 -3
  87. package/dist/chunk-R7QFP6EL.js.map +1 -0
  88. package/dist/{chunk-WZWR2ELB.js → chunk-SEBU6JCK.js} +6 -6
  89. package/dist/chunk-SEBU6JCK.js.map +1 -0
  90. package/dist/{chunk-7OBL3H5P.js → chunk-SEFK4NZV.js} +3 -3
  91. package/dist/chunk-SEFK4NZV.js.map +1 -0
  92. package/dist/chunk-SRIT4NFQ.js +67 -0
  93. package/dist/chunk-SRIT4NFQ.js.map +1 -0
  94. package/dist/chunk-SY62XJFA.js +19 -0
  95. package/dist/chunk-SY62XJFA.js.map +1 -0
  96. package/dist/{chunk-SVXDWPLO.js → chunk-THD3YOOZ.js} +17 -17
  97. package/dist/chunk-THD3YOOZ.js.map +1 -0
  98. package/dist/chunk-VXFYETRK.js +58 -0
  99. package/dist/chunk-VXFYETRK.js.map +1 -0
  100. package/dist/chunk-XBX6QMR5.js +58 -0
  101. package/dist/chunk-XBX6QMR5.js.map +1 -0
  102. package/dist/{chunk-SCUT2ZCD.js → chunk-XCGZPFT7.js} +17 -17
  103. package/dist/chunk-XCGZPFT7.js.map +1 -0
  104. package/dist/chunk-XMK3T4TA.js +73 -0
  105. package/dist/chunk-XMK3T4TA.js.map +1 -0
  106. package/dist/chunk-YJ6MPS6U.js +226 -0
  107. package/dist/chunk-YJ6MPS6U.js.map +1 -0
  108. package/dist/chunk-YRYQXU3G.js +38 -0
  109. package/dist/chunk-YRYQXU3G.js.map +1 -0
  110. package/dist/{chunk-5J7BP5DI.js → chunk-YWFPMND7.js} +10 -10
  111. package/dist/chunk-YWFPMND7.js.map +1 -0
  112. package/dist/chunk-YYEGAFUE.js +94 -0
  113. package/dist/chunk-YYEGAFUE.js.map +1 -0
  114. package/dist/{chunk-TKA4LOMT.js → chunk-ZZ7H7VVX.js} +8 -8
  115. package/dist/chunk-ZZ7H7VVX.js.map +1 -0
  116. package/dist/components/data/index.d.ts +223 -74
  117. package/dist/components/data/index.js +504 -539
  118. package/dist/components/data/index.js.map +1 -1
  119. package/dist/components/layout/dashboard-page.d.ts +4 -0
  120. package/dist/components/layout/dashboard-page.js +5 -0
  121. package/dist/components/layout/dashboard-page.js.map +1 -0
  122. package/dist/components/layout/detail-page.d.ts +91 -0
  123. package/dist/components/layout/detail-page.js +6 -0
  124. package/dist/components/layout/detail-page.js.map +1 -0
  125. package/dist/components/layout/form-page.d.ts +82 -0
  126. package/dist/components/layout/form-page.js +5 -0
  127. package/dist/components/layout/form-page.js.map +1 -0
  128. package/dist/components/layout/index.d.ts +15 -0
  129. package/dist/components/layout/index.js +21 -0
  130. package/dist/components/layout/index.js.map +1 -0
  131. package/dist/components/layout/settings-page.d.ts +114 -0
  132. package/dist/components/layout/settings-page.js +6 -0
  133. package/dist/components/layout/settings-page.js.map +1 -0
  134. package/dist/components/patterns/empty-state.d.ts +74 -0
  135. package/dist/components/{ui → patterns}/empty-state.js +2 -1
  136. package/dist/components/{ui → patterns}/form-field.d.ts +2 -2
  137. package/dist/components/{ui → patterns}/form-field.js +2 -2
  138. package/dist/components/patterns/index.d.ts +18 -0
  139. package/dist/components/patterns/index.js +18 -0
  140. package/dist/components/patterns/index.js.map +1 -0
  141. package/dist/components/patterns/page-loading.d.ts +25 -0
  142. package/dist/components/patterns/page-loading.js +5 -0
  143. package/dist/components/patterns/page-loading.js.map +1 -0
  144. package/dist/components/patterns/settings-row.d.ts +42 -0
  145. package/dist/components/patterns/settings-row.js +6 -0
  146. package/dist/components/patterns/settings-row.js.map +1 -0
  147. package/dist/components/patterns/status-badge.d.ts +38 -0
  148. package/dist/components/patterns/status-badge.js +4 -0
  149. package/dist/components/patterns/status-badge.js.map +1 -0
  150. package/dist/components/patterns/toggle-row.d.ts +36 -0
  151. package/dist/components/patterns/toggle-row.js +8 -0
  152. package/dist/components/patterns/toggle-row.js.map +1 -0
  153. package/dist/components/patterns/user-avatar.d.ts +34 -0
  154. package/dist/components/patterns/user-avatar.js +5 -0
  155. package/dist/components/patterns/user-avatar.js.map +1 -0
  156. package/dist/components/ui/accessible-icon.d.ts +48 -0
  157. package/dist/components/ui/accessible-icon.js +3 -0
  158. package/dist/components/ui/accessible-icon.js.map +1 -0
  159. package/dist/components/ui/accordion.d.ts +5 -5
  160. package/dist/components/ui/accordion.js +1 -1
  161. package/dist/components/ui/alert-dialog.d.ts +10 -10
  162. package/dist/components/ui/alert-dialog.js +1 -1
  163. package/dist/components/ui/aspect-ratio.d.ts +2 -2
  164. package/dist/components/ui/aspect-ratio.js +1 -1
  165. package/dist/components/ui/avatar.d.ts +4 -4
  166. package/dist/components/ui/avatar.js +1 -1
  167. package/dist/components/ui/button.d.ts +75 -8
  168. package/dist/components/ui/button.js +1 -1
  169. package/dist/components/ui/calendar.js +2 -2
  170. package/dist/components/ui/carousel.d.ts +4 -3
  171. package/dist/components/ui/carousel.js +2 -2
  172. package/dist/components/ui/checkbox.d.ts +2 -2
  173. package/dist/components/ui/checkbox.js +1 -1
  174. package/dist/components/ui/collapsible.d.ts +4 -4
  175. package/dist/components/ui/collapsible.js +1 -1
  176. package/dist/components/ui/command-palette.d.ts +30 -0
  177. package/dist/components/ui/command-palette.js +6 -0
  178. package/dist/components/ui/command-palette.js.map +1 -0
  179. package/dist/components/ui/command.d.ts +9 -9
  180. package/dist/components/ui/command.js +2 -2
  181. package/dist/components/ui/context-menu.d.ts +15 -15
  182. package/dist/components/ui/context-menu.js +1 -1
  183. package/dist/components/ui/date-picker.js +4 -4
  184. package/dist/components/ui/dialog.d.ts +9 -9
  185. package/dist/components/ui/dialog.js +1 -1
  186. package/dist/components/ui/drawer.d.ts +7 -7
  187. package/dist/components/ui/dropdown-menu.d.ts +15 -15
  188. package/dist/components/ui/dropdown-menu.js +1 -1
  189. package/dist/components/ui/hover-card.d.ts +4 -4
  190. package/dist/components/ui/hover-card.js +1 -1
  191. package/dist/components/ui/input-otp.d.ts +2 -2
  192. package/dist/components/ui/label.d.ts +2 -2
  193. package/dist/components/ui/label.js +1 -1
  194. package/dist/components/ui/menubar.d.ts +16 -16
  195. package/dist/components/ui/menubar.js +1 -1
  196. package/dist/components/ui/navigation-menu.d.ts +9 -9
  197. package/dist/components/ui/navigation-menu.js +1 -1
  198. package/dist/components/ui/pagination.js +2 -2
  199. package/dist/components/ui/password-toggle-field.d.ts +121 -0
  200. package/dist/components/ui/password-toggle-field.js +4 -0
  201. package/dist/components/ui/password-toggle-field.js.map +1 -0
  202. package/dist/components/ui/popover.d.ts +4 -4
  203. package/dist/components/ui/popover.js +1 -1
  204. package/dist/components/ui/radio-group.d.ts +3 -3
  205. package/dist/components/ui/radio-group.js +1 -1
  206. package/dist/components/ui/resizable.d.ts +1 -1
  207. package/dist/components/ui/scroll-area.d.ts +60 -3
  208. package/dist/components/ui/scroll-area.js +1 -1
  209. package/dist/components/ui/select.d.ts +9 -9
  210. package/dist/components/ui/select.js +1 -1
  211. package/dist/components/ui/sheet.d.ts +11 -9
  212. package/dist/components/ui/sheet.js +1 -1
  213. package/dist/components/ui/slider.d.ts +2 -2
  214. package/dist/components/ui/slider.js +1 -1
  215. package/dist/components/ui/switch.d.ts +2 -2
  216. package/dist/components/ui/switch.js +1 -1
  217. package/dist/components/ui/tabs.d.ts +29 -14
  218. package/dist/components/ui/tabs.js +1 -1
  219. package/dist/components/ui/toggle-group.d.ts +3 -3
  220. package/dist/components/ui/toggle-group.js +2 -2
  221. package/dist/components/ui/toggle.d.ts +2 -2
  222. package/dist/components/ui/toggle.js +1 -1
  223. package/dist/components/ui/toolbar.d.ts +104 -0
  224. package/dist/components/ui/toolbar.js +6 -0
  225. package/dist/components/ui/toolbar.js.map +1 -0
  226. package/dist/components/ui/tooltip.d.ts +46 -4
  227. package/dist/components/ui/tooltip.js +1 -1
  228. package/dist/components/ui/visually-hidden.d.ts +48 -0
  229. package/dist/components/ui/visually-hidden.js +4 -0
  230. package/dist/components/ui/visually-hidden.js.map +1 -0
  231. package/dist/dashboard-page-C0TihRl5.d.ts +107 -0
  232. package/dist/hooks/index.d.ts +5 -3
  233. package/dist/hooks/index.js +10 -5
  234. package/dist/hooks/use-data-filters.d.ts +1 -1
  235. package/dist/hooks/use-data-filters.js +2 -2
  236. package/dist/hooks/use-keyboard-navigation.d.ts +58 -2
  237. package/dist/hooks/use-keyboard-navigation.js +1 -1
  238. package/dist/hooks/use-resource-page.d.ts +3 -2
  239. package/dist/hooks/use-resource-page.js +2 -2
  240. package/dist/hooks/use-saved-views.d.ts +28 -0
  241. package/dist/hooks/use-saved-views.js +3 -0
  242. package/dist/hooks/use-saved-views.js.map +1 -0
  243. package/dist/hooks/use-view-preference.d.ts +1 -1
  244. package/dist/hooks/use-view-preference.js +1 -1
  245. package/dist/index.d.ts +25 -26
  246. package/dist/index.js +55 -38
  247. package/dist/{navigation-qI86Ldug.d.ts → navigation-CpOEyUSb.d.ts} +4 -0
  248. package/dist/spacing-BS6qECD4.d.ts +191 -0
  249. package/dist/split-Dk9f4Mi0.d.ts +57 -0
  250. package/dist/{use-resource-page-B-CFcikK.d.ts → use-resource-page-CPs6wjKt.d.ts} +10 -2
  251. package/dist/view-settings--KXNT_jE.d.ts +12 -0
  252. package/package.json +77 -32
  253. package/dist/chunk-2B3MFHBQ.js.map +0 -1
  254. package/dist/chunk-2MXMWBDV.js.map +0 -1
  255. package/dist/chunk-4V4H2ZM7.js.map +0 -1
  256. package/dist/chunk-5J7BP5DI.js.map +0 -1
  257. package/dist/chunk-5Q4FABZQ.js.map +0 -1
  258. package/dist/chunk-63FW5ZUA.js.map +0 -1
  259. package/dist/chunk-7OBL3H5P.js.map +0 -1
  260. package/dist/chunk-AI6CCNWK.js.map +0 -1
  261. package/dist/chunk-C6H7AMO4.js.map +0 -1
  262. package/dist/chunk-EI5EGKHL.js +0 -32
  263. package/dist/chunk-EI5EGKHL.js.map +0 -1
  264. package/dist/chunk-I6JQHP6D.js.map +0 -1
  265. package/dist/chunk-IP6TMT3D.js.map +0 -1
  266. package/dist/chunk-JJ4NOMMI.js +0 -73
  267. package/dist/chunk-JJ4NOMMI.js.map +0 -1
  268. package/dist/chunk-JXI2MYL3.js.map +0 -1
  269. package/dist/chunk-KBS4BHME.js +0 -11
  270. package/dist/chunk-KBS4BHME.js.map +0 -1
  271. package/dist/chunk-LRXDZBV2.js +0 -26
  272. package/dist/chunk-LRXDZBV2.js.map +0 -1
  273. package/dist/chunk-NJMO3VPA.js.map +0 -1
  274. package/dist/chunk-O4B5ALO7.js.map +0 -1
  275. package/dist/chunk-OCTV3S4I.js +0 -29
  276. package/dist/chunk-OCTV3S4I.js.map +0 -1
  277. package/dist/chunk-QBZMY2AF.js.map +0 -1
  278. package/dist/chunk-QLCDAFS7.js.map +0 -1
  279. package/dist/chunk-SBJV3K4G.js.map +0 -1
  280. package/dist/chunk-SCUT2ZCD.js.map +0 -1
  281. package/dist/chunk-SVXDWPLO.js.map +0 -1
  282. package/dist/chunk-T465NJRL.js +0 -134
  283. package/dist/chunk-T465NJRL.js.map +0 -1
  284. package/dist/chunk-T5VX5DYO.js.map +0 -1
  285. package/dist/chunk-TKA4LOMT.js.map +0 -1
  286. package/dist/chunk-UGHQFQOE.js.map +0 -1
  287. package/dist/chunk-WALXVR6V.js +0 -9
  288. package/dist/chunk-WALXVR6V.js.map +0 -1
  289. package/dist/chunk-WZWR2ELB.js.map +0 -1
  290. package/dist/chunk-YZEA5TGK.js.map +0 -1
  291. package/dist/chunk-ZDAT5JDH.js.map +0 -1
  292. package/dist/components/ui/empty-state.d.ts +0 -22
  293. /package/dist/components/{ui → patterns}/empty-state.js.map +0 -0
  294. /package/dist/components/{ui → patterns}/form-field.js.map +0 -0
  295. /package/dist/{ViewToggle-DDe_Luj2.d.ts → view-toggle-DDe_Luj2.d.ts} +0 -0
@@ -0,0 +1,107 @@
1
+ import * as React from 'react';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ declare const gridVariants: (props?: ({
6
+ cols?: 1 | 2 | 4 | 3 | 5 | 6 | null | undefined;
7
+ gap?: "sm" | "lg" | "none" | "xs" | "md" | "xl" | "2xl" | "3xl" | null | undefined;
8
+ align?: "center" | "end" | "start" | "stretch" | null | undefined;
9
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
10
+ interface GridProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof gridVariants> {
11
+ /** Stable test/automation selector (emitted as `data-testid`). */
12
+ testID?: string;
13
+ }
14
+ /**
15
+ * Grid — two-dimensional flow for card and tile collections.
16
+ *
17
+ * `cols` is the count at the widest breakpoint; the class it emits is a
18
+ * responsive ramp, so a card grid reflows on its own without the consumer
19
+ * writing a single breakpoint.
20
+ *
21
+ * ```tsx
22
+ * <Grid cols={3} gap="lg">
23
+ * {people.map((p) => <PersonCard key={p.id} person={p} />)}
24
+ * </Grid>
25
+ *
26
+ * <Grid cols={4} gap="sm" align="start">
27
+ * {stats.map((s) => <StatCard key={s.id} {...s} />)}
28
+ * </Grid>
29
+ * ```
30
+ *
31
+ * Deliberately NOT here: `grid-template-areas`, explicit row/column
32
+ * placement, and per-child spans. A component that positions a *named*
33
+ * child has stopped positioning things without knowing what they are, and
34
+ * a grid whose children each carry placement props is a CSS file wearing a
35
+ * React costume — reach for `className` at that point.
36
+ *
37
+ * @stability Beta
38
+ */
39
+ declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>;
40
+
41
+ interface DashboardPageProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
42
+ /** Page title. Rendered as the page's single `<h1>`. */
43
+ title: React.ReactNode;
44
+ /** Supporting line under the title — a date range, a scope, a filter. */
45
+ subtitle?: React.ReactNode;
46
+ /** Trailing controls — a period picker, an export, a refresh. */
47
+ actions?: React.ReactNode;
48
+ /**
49
+ * The stat row: `StatCard`s, or anything tile-shaped. Laid out in a `Grid`
50
+ * that ramps down to one column on a phone. Omit it and no grid renders.
51
+ */
52
+ stats?: React.ReactNode;
53
+ /**
54
+ * Tiles across the stat row at the widest breakpoint. Default `4`.
55
+ * Reuses `Grid`'s `cols` scale, so the responsive ramp is the same one
56
+ * every other card grid in the app gets.
57
+ */
58
+ statColumns?: NonNullable<GridProps["cols"]>;
59
+ /** Stable test/automation selector (emitted as `data-testid`). */
60
+ testID?: string;
61
+ }
62
+ /**
63
+ * DashboardPage — a stat row over a flexible region of charts, tables and
64
+ * sections.
65
+ *
66
+ * ```tsx
67
+ * <DashboardPage
68
+ * title="This quarter"
69
+ * subtitle="1 Apr – 30 Jun"
70
+ * actions={<DatePicker … />}
71
+ * stats={
72
+ * <>
73
+ * <StatCard label="Active clients" value={42} />
74
+ * <StatCard label="Sessions" value={318} trend={{ value: 12, label: "vs Q1" }} />
75
+ * </>
76
+ * }
77
+ * >
78
+ * <Section title="Revenue"><ChartContainer …/></Section>
79
+ * <Section title="At risk"><DataTable …/></Section>
80
+ * </DashboardPage>
81
+ * ```
82
+ *
83
+ * The two regions are separated on purpose. Stats are a fixed-shape row that
84
+ * must reflow as a unit; everything below is free-form and stacks. Folding
85
+ * both into one `children` is how the stat row ends up hand-gridded per page,
86
+ * with a different breakpoint each time — the exact drift `Grid` exists to
87
+ * stop.
88
+ *
89
+ * Children stack at `gap-8`, wider than the page's own `gap-6`, so a chart
90
+ * and the table under it don't read as one block.
91
+ *
92
+ * The header row is markup, not a component, and deliberately not
93
+ * `PageHeader` — see `./detail-page` for the measured reasons composing it
94
+ * was rejected across all four templates. Width is left to `Container` —
95
+ * wrap, don't duplicate.
96
+ *
97
+ * This is a **layout**: it positions tiles and regions and never fetches a
98
+ * metric. There is deliberately no data-bound twin — binding a dashboard
99
+ * needs an aggregate/metric contract, and `genesis-core` ships none. Adding
100
+ * a template ahead of its contract is what `docs/FRAMEWORK.md` warns against
101
+ * in "Why templates need the contract first".
102
+ *
103
+ * @stability Beta
104
+ */
105
+ declare const DashboardPage: React.ForwardRefExoticComponent<DashboardPageProps & React.RefAttributes<HTMLDivElement>>;
106
+
107
+ export { DashboardPage as D, Grid as G, type DashboardPageProps as a, type GridProps as b, gridVariants as g };
@@ -4,10 +4,12 @@ export { KeyboardNavOptions, KeyboardNavResult, useKeyboardNavigation } from './
4
4
  export { useIsMobile } from './use-mobile.js';
5
5
  export { useViewPreference } from './use-view-preference.js';
6
6
  export { Density, ViewSettings, useViewSettings } from './use-view-settings.js';
7
+ export { UseSavedViewsReturn, useSavedViews } from './use-saved-views.js';
7
8
  export { RouteMap, createPrefetch } from './use-prefetch.js';
8
- export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, u as useResourcePage } from '../use-resource-page-B-CFcikK.js';
9
- import '../navigation-qI86Ldug.js';
9
+ export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, u as useResourcePage } from '../use-resource-page-CPs6wjKt.js';
10
+ export { CommandPalette, CommandPaletteItem, CommandPaletteProps, useCommandPaletteHotkey } from '../components/ui/command-palette.js';
11
+ import '../navigation-CpOEyUSb.js';
10
12
  import 'react';
11
- import '../ViewToggle-DDe_Luj2.js';
13
+ import '../view-toggle-DDe_Luj2.js';
12
14
  import 'react/jsx-runtime';
13
15
  import '@marktiderman/genesis-core/provider';
@@ -1,9 +1,14 @@
1
+ export { useResourcePage } from '../chunk-Q4I4SFBD.js';
2
+ export { useSavedViews } from '../chunk-GCQFVMPI.js';
3
+ export { useViewPreference } from '../chunk-FTTNGGLA.js';
1
4
  export { useViewSettings } from '../chunk-OZ7ZAYCS.js';
2
- export { useResourcePage } from '../chunk-QLCDAFS7.js';
3
- export { useViewPreference } from '../chunk-XISSLIMH.js';
4
- export { useDataFilters } from '../chunk-FCGFG4RV.js';
5
- import '../chunk-AI6CCNWK.js';
6
- export { useKeyboardNavigation } from '../chunk-T465NJRL.js';
5
+ export { CommandPalette, useCommandPaletteHotkey } from '../chunk-CNTWQSUT.js';
6
+ import '../chunk-SEFK4NZV.js';
7
+ import '../chunk-7XMZVISM.js';
8
+ import '../chunk-NZ5WBA4R.js';
9
+ export { useDataFilters } from '../chunk-D4JTQYP5.js';
10
+ import '../chunk-6NPEMLBA.js';
11
+ export { useKeyboardNavigation } from '../chunk-YJ6MPS6U.js';
7
12
  export { useIsMobile } from '../chunk-M7AU5DDM.js';
8
13
  export { createPrefetch } from '../chunk-HSHIZHYR.js';
9
14
  export { useOne, useResource, useResourceForm, useWizard } from '@marktiderman/genesis-core/hooks';
@@ -1,4 +1,4 @@
1
- import { S as SearchParamsAdapter } from '../navigation-qI86Ldug.js';
1
+ import { S as SearchParamsAdapter } from '../navigation-CpOEyUSb.js';
2
2
  import 'react';
3
3
 
4
4
  type FilterType = "string" | "multi";
@@ -1,4 +1,4 @@
1
- export { useDataFilters } from '../chunk-FCGFG4RV.js';
2
- import '../chunk-AI6CCNWK.js';
1
+ export { useDataFilters } from '../chunk-D4JTQYP5.js';
2
+ import '../chunk-6NPEMLBA.js';
3
3
  //# sourceMappingURL=use-data-filters.js.map
4
4
  //# sourceMappingURL=use-data-filters.js.map
@@ -1,5 +1,26 @@
1
1
  import * as React from 'react';
2
2
 
3
+ /**
4
+ * Vim/Superhuman-style list navigation: j/k (or Arrow Up/Down) move a
5
+ * focused-item cursor *one row at a time*, Enter opens the focused item, x
6
+ * toggles its selection, and Backspace goes "back" (e.g. closes an open
7
+ * detail view). In a multi-column grid the vertical keys step by the
8
+ * container's live column count and Arrow Left/Right step by one, so the
9
+ * cursor follows the grid the user can see rather than treating it as a flat
10
+ * list. Intended for list/grid views such as `DataGrid` — attach
11
+ * `containerRef` to the scrollable item container so the column count can be
12
+ * measured and focus changes can scroll the focused item into view.
13
+ *
14
+ * Deliberately inert, so a default-on consumer can't break the surrounding
15
+ * app: modified chords (Ctrl/Meta/Alt) are never captured, text-entry
16
+ * surfaces keep every key, focused controls (or anything inside a
17
+ * dialog/menu/listbox) keep theirs, composite widgets keep Backspace, and a
18
+ * key that *does nothing* is never swallowed — Arrow Up/Down fall through to
19
+ * the browser's page scrolling on an empty list, or at either end of a full
20
+ * one, instead of dying silently.
21
+ *
22
+ * @stability Beta
23
+ */
3
24
  interface KeyboardNavOptions {
4
25
  /** Total number of navigable items */
5
26
  itemCount: number;
@@ -7,13 +28,47 @@ interface KeyboardNavOptions {
7
28
  onOpen?: (index: number) => void;
8
29
  /** Called when x is pressed on focused item */
9
30
  onToggleSelect?: (index: number) => void;
31
+ /**
32
+ * Called when Backspace (⌫) is pressed — the conventional "go back" key,
33
+ * e.g. to close an open detail panel/modal and return to the list. Fires
34
+ * regardless of whether an item is currently focused (mirrors Escape),
35
+ * since "go back" should still work if a detail view was opened by mouse
36
+ * click rather than keyboard navigation. Not gated behind `focusedIndex`.
37
+ *
38
+ * Backspace is only intercepted (and its default suppressed) while this
39
+ * is supplied — pass it conditionally, i.e. only while there is something
40
+ * to go back from, so the key stays available to the browser and the
41
+ * surrounding app the rest of the time. Even then it is left alone for
42
+ * text-entry surfaces and for composite widgets that use Backspace
43
+ * themselves (see `KEEPS_BACKSPACE_SELECTOR`).
44
+ */
45
+ onBack?: (focusedIndex: number) => void;
10
46
  /** Ref to the search input to focus on "/" */
11
47
  searchInputRef?: React.RefObject<HTMLInputElement | null>;
12
48
  /** Whether navigation is enabled. Default true */
13
49
  enabled?: boolean;
14
- /** Number of columns in grid for arrow key navigation */
50
+ /**
51
+ * Columns in the navigable grid. Drives the vertical stride: Arrow
52
+ * Down/Up (and j/k) move by `columns`, Arrow Left/Right by one — so in a
53
+ * 3-up grid ArrowDown moves *down* a row instead of one card to the right.
54
+ *
55
+ * Leave unset (the default) to measure the live count off `containerRef`'s
56
+ * resolved `grid-template-columns` on each keypress, which is the only
57
+ * value that stays correct across a responsive column ramp. Pass a number
58
+ * only to override that measurement. Either way a single-column container
59
+ * behaves exactly as a flat list: stride 1, Left/Right inert.
60
+ */
15
61
  columns?: number;
62
+ /**
63
+ * An overlay (detail panel, modal, form) is open above the list. Cursor
64
+ * movement and activation keys are suspended so they can't drive the list
65
+ * hidden behind it, while the dismissal keys (`onBack`/Backspace, Escape)
66
+ * stay live so the overlay can still be closed from the keyboard.
67
+ * Default false.
68
+ */
69
+ overlayOpen?: boolean;
16
70
  }
71
+ /** @stability Beta */
17
72
  interface KeyboardNavResult {
18
73
  /** Currently focused item index (-1 = none) */
19
74
  focusedIndex: number;
@@ -24,6 +79,7 @@ interface KeyboardNavResult {
24
79
  /** Whether keyboard nav is actively engaged (user has pressed j/k) */
25
80
  isActive: boolean;
26
81
  }
27
- declare function useKeyboardNavigation({ itemCount, onOpen, onToggleSelect, searchInputRef, enabled, columns, }: KeyboardNavOptions): KeyboardNavResult;
82
+ /** @stability Beta */
83
+ declare function useKeyboardNavigation({ itemCount, onOpen, onToggleSelect, onBack, searchInputRef, enabled, columns, overlayOpen, }: KeyboardNavOptions): KeyboardNavResult;
28
84
 
29
85
  export { type KeyboardNavOptions, type KeyboardNavResult, useKeyboardNavigation };
@@ -1,3 +1,3 @@
1
- export { useKeyboardNavigation } from '../chunk-T465NJRL.js';
1
+ export { useKeyboardNavigation } from '../chunk-YJ6MPS6U.js';
2
2
  //# sourceMappingURL=use-keyboard-navigation.js.map
3
3
  //# sourceMappingURL=use-keyboard-navigation.js.map
@@ -1,5 +1,6 @@
1
1
  import 'react';
2
- export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, t as titleCase, u as useResourcePage } from '../use-resource-page-B-CFcikK.js';
3
- import '../ViewToggle-DDe_Luj2.js';
2
+ export { R as ResourceActions, a as ResourceColumnDef, U as UseResourcePageProps, b as UseResourcePageReturn, t as titleCase, u as useResourcePage } from '../use-resource-page-CPs6wjKt.js';
3
+ import '../view-toggle-DDe_Luj2.js';
4
4
  import '@marktiderman/genesis-core/provider';
5
5
  import 'react/jsx-runtime';
6
+ import './use-view-settings.js';
@@ -1,4 +1,4 @@
1
- export { titleCase, useResourcePage } from '../chunk-QLCDAFS7.js';
2
- import '../chunk-XISSLIMH.js';
1
+ export { titleCase, useResourcePage } from '../chunk-Q4I4SFBD.js';
2
+ import '../chunk-FTTNGGLA.js';
3
3
  //# sourceMappingURL=use-resource-page.js.map
4
4
  //# sourceMappingURL=use-resource-page.js.map
@@ -0,0 +1,28 @@
1
+ /** Same shape as `DataFilters` `savedViews` items — kept local to avoid cycles. */
2
+ interface SavedViewItem {
3
+ id: string;
4
+ name: string;
5
+ filters: Record<string, unknown>;
6
+ }
7
+ interface UseSavedViewsReturn {
8
+ savedViews: SavedViewItem[];
9
+ saveView: (name: string, filters: Record<string, unknown>) => void;
10
+ deleteView: (id: string) => void;
11
+ loadViewFilters: (id: string) => Record<string, unknown> | null;
12
+ }
13
+ /**
14
+ * Persist `DataFilters` saved-view shape in localStorage.
15
+ *
16
+ * @example
17
+ * const { savedViews, saveView, deleteView } = useSavedViews("genesis-map-views");
18
+ * <DataFilters
19
+ * savedViews={savedViews}
20
+ * canSaveViews
21
+ * onSaveView={(name) => saveView(name, currentFilters)}
22
+ * onLoadView={(filters) => applyFilters(filters)}
23
+ * onDeleteView={deleteView}
24
+ * />
25
+ */
26
+ declare function useSavedViews(storageKey: string): UseSavedViewsReturn;
27
+
28
+ export { type SavedViewItem, type UseSavedViewsReturn, useSavedViews };
@@ -0,0 +1,3 @@
1
+ export { useSavedViews } from '../chunk-GCQFVMPI.js';
2
+ //# sourceMappingURL=use-saved-views.js.map
3
+ //# sourceMappingURL=use-saved-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"use-saved-views.js"}
@@ -1,4 +1,4 @@
1
- import { V as ViewMode } from '../ViewToggle-DDe_Luj2.js';
1
+ import { V as ViewMode } from '../view-toggle-DDe_Luj2.js';
2
2
  import 'react/jsx-runtime';
3
3
 
4
4
  declare function useViewPreference(key: string, defaultMode?: ViewMode): [ViewMode, (mode: ViewMode) => void];
@@ -1,3 +1,3 @@
1
- export { useViewPreference } from '../chunk-XISSLIMH.js';
1
+ export { useViewPreference } from '../chunk-FTTNGGLA.js';
2
2
  //# sourceMappingURL=use-view-preference.js.map
3
3
  //# sourceMappingURL=use-view-preference.js.map
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export { Button, ButtonProps } from './components/ui/button.js';
1
+ export { Button, ButtonAsChildProps, ButtonProps } from './components/ui/button.js';
2
2
  export { Badge, BadgeProps } from './components/ui/badge.js';
3
+ export { StatusBadge, StatusBadgeProps, StatusBadgeStatus, statusBadgeVariants } from './components/patterns/status-badge.js';
3
4
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/ui/card.js';
4
5
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/ui/dialog.js';
5
6
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './components/ui/alert-dialog.js';
@@ -11,16 +12,19 @@ export { Progress } from './components/ui/progress.js';
11
12
  export { Skeleton } from './components/ui/skeleton.js';
12
13
  export { Separator } from './components/ui/separator.js';
13
14
  export { ScrollArea } from './components/ui/scroll-area.js';
14
- export { Tooltip } from './components/ui/tooltip.js';
15
+ export { Tooltip, TooltipProps } from './components/ui/tooltip.js';
15
16
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './components/ui/collapsible.js';
16
17
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './components/ui/dropdown-menu.js';
17
18
  export { Popover, PopoverContent, PopoverTrigger } from './components/ui/popover.js';
18
19
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './components/ui/table.js';
19
20
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from './components/ui/command.js';
20
- export { EmptyState, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from './components/ui/empty-state.js';
21
+ export { CommandPalette, CommandPaletteItem, CommandPaletteProps, useCommandPaletteHotkey } from './components/ui/command-palette.js';
22
+ export { EmptyState, EmptyStateProps, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from './components/patterns/empty-state.js';
21
23
  export { Label } from './components/ui/label.js';
22
24
  export { Textarea } from './components/ui/textarea.js';
23
25
  export { Switch } from './components/ui/switch.js';
26
+ export { SettingsRow, SettingsRowProps } from './components/patterns/settings-row.js';
27
+ export { ToggleRow, ToggleRowProps } from './components/patterns/toggle-row.js';
24
28
  export { RadioGroup, RadioGroupItem } from './components/ui/radio-group.js';
25
29
  export { Alert, AlertDescription, AlertTitle, alertVariants } from './components/ui/alert.js';
26
30
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from './components/ui/pagination.js';
@@ -29,6 +33,7 @@ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHe
29
33
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './components/ui/drawer.js';
30
34
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './components/ui/accordion.js';
31
35
  export { Avatar, AvatarFallback, AvatarImage } from './components/ui/avatar.js';
36
+ export { UserAvatar, UserAvatarProps, userAvatarVariants } from './components/patterns/user-avatar.js';
32
37
  export { Slider } from './components/ui/slider.js';
33
38
  export { Toggle, toggleVariants } from './components/ui/toggle.js';
34
39
  export { ToggleGroup, ToggleGroupItem } from './components/ui/toggle-group.js';
@@ -42,6 +47,7 @@ export { Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, Car
42
47
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './components/ui/resizable.js';
43
48
  export { Toaster } from './components/ui/sonner.js';
44
49
  export { Spinner, SpinnerProps } from './components/ui/spinner.js';
50
+ export { PageLoading, PageLoadingProps, pageLoadingVariants } from './components/patterns/page-loading.js';
45
51
  export { Kbd, KbdProps } from './components/ui/kbd.js';
46
52
  export { H1, H2, H3, H4, Large, Lead, Muted, P, Small } from './components/ui/typography.js';
47
53
  export { ButtonGroup, ButtonGroupProps } from './components/ui/button-group.js';
@@ -49,36 +55,29 @@ export { InputGroup, InputGroupInput, InputGroupPrefix, InputGroupProps, InputGr
49
55
  export { Calendar, CalendarDayButton } from './components/ui/calendar.js';
50
56
  export { DatePicker, DatePickerProps } from './components/ui/date-picker.js';
51
57
  export { ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './components/ui/chart.js';
52
- export { FormDescription, FormError, FormField, FormLabel } from './components/ui/form-field.js';
58
+ export { FormDescription, FormError, FormField, FormLabel } from './components/patterns/form-field.js';
59
+ export { Toolbar, ToolbarButton, ToolbarButtonProps, ToolbarLink, ToolbarLinkProps, ToolbarProps, ToolbarSeparator, ToolbarSeparatorProps, ToolbarToggleGroup, ToolbarToggleItem, ToolbarToggleItemProps, toolbarVariants } from './components/ui/toolbar.js';
60
+ export { VisuallyHidden, VisuallyHiddenProps } from './components/ui/visually-hidden.js';
61
+ export { AccessibleIcon, AccessibleIconProps } from './components/ui/accessible-icon.js';
62
+ export { PasswordToggleField, PasswordToggleFieldIcon, PasswordToggleFieldIconProps, PasswordToggleFieldInput, PasswordToggleFieldInputProps, PasswordToggleFieldProps, PasswordToggleFieldSlot, PasswordToggleFieldSlotProps, PasswordToggleFieldToggle, PasswordToggleFieldToggleProps } from './components/ui/password-toggle-field.js';
63
+ export { C as Container, a as ContainerProps, G as GAP_CLASSES, S as Section, b as SectionProps, c as SpaceToken, d as Stack, e as StackProps, f as containerVariants, s as sectionHeadingVariants, g as spaceScale, h as stackVariants } from './spacing-BS6qECD4.js';
64
+ export { D as DashboardPage, a as DashboardPageProps, G as Grid, b as GridProps, g as gridVariants } from './dashboard-page-C0TihRl5.js';
65
+ export { S as Split, a as SplitBreakpoint, b as SplitProps, c as SplitRatio, s as splitVariants } from './split-Dk9f4Mi0.js';
66
+ export { DetailPage, DetailPageProps } from './components/layout/detail-page.js';
67
+ export { FormPage, FormPageProps } from './components/layout/form-page.js';
68
+ export { SettingsPage, SettingsPageProps, SettingsPageSection } from './components/layout/settings-page.js';
53
69
  export { cn } from './utils.js';
54
- export { D as DefaultLink, G as GenesisLinkProps, L as LinkComponent, N as NavigateFn, S as SearchParamsAdapter, d as defaultNavigate, i as isPathActive, u as useBrowserSearchParams } from './navigation-qI86Ldug.js';
70
+ export { D as DefaultLink, G as GenesisLinkProps, L as LinkComponent, N as NavigateFn, S as SearchParamsAdapter, d as defaultNavigate, i as isPathActive, u as useBrowserSearchParams } from './navigation-CpOEyUSb.js';
55
71
  export { toast } from 'sonner';
56
- import 'react/jsx-runtime';
57
72
  import 'class-variance-authority/types';
58
73
  import 'react';
59
74
  import 'class-variance-authority';
60
- import '@radix-ui/react-dialog';
61
- import '@radix-ui/react-alert-dialog';
62
- import '@radix-ui/react-checkbox';
63
- import '@radix-ui/react-select';
64
- import '@radix-ui/react-collapsible';
65
- import '@radix-ui/react-dropdown-menu';
66
- import '@radix-ui/react-popover';
75
+ import 'react/jsx-runtime';
76
+ import '@marktiderman/genesis-design-system/tokens';
77
+ import 'radix-ui';
67
78
  import 'lucide-react';
68
- import '@radix-ui/react-label';
69
- import '@radix-ui/react-switch';
70
- import '@radix-ui/react-radio-group';
71
79
  import 'vaul';
72
- import '@radix-ui/react-accordion';
73
- import '@radix-ui/react-avatar';
74
- import '@radix-ui/react-slider';
75
- import '@radix-ui/react-toggle';
76
- import '@radix-ui/react-toggle-group';
77
- import '@radix-ui/react-context-menu';
78
- import '@radix-ui/react-hover-card';
79
- import '@radix-ui/react-navigation-menu';
80
- import '@radix-ui/react-menubar';
81
- import '@radix-ui/react-aspect-ratio';
80
+ import '@radix-ui/react-dialog';
82
81
  import 'input-otp';
83
82
  import 'embla-carousel-react';
84
83
  import 'react-resizable-panels';
package/dist/index.js CHANGED
@@ -1,56 +1,73 @@
1
1
  export { H1, H2, H3, H4, Large, Lead, Muted, P, Small } from './chunk-HVQCZFJ7.js';
2
- export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-JJ4NOMMI.js';
3
- export { ToggleGroup, ToggleGroupItem } from './chunk-5Q4FABZQ.js';
4
- export { Toggle, toggleVariants } from './chunk-JXI2MYL3.js';
5
- export { Tooltip } from './chunk-EI5EGKHL.js';
6
- export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './chunk-TAP3PBQT.js';
7
- export { ScrollArea } from './chunk-OCTV3S4I.js';
8
- export { Slider } from './chunk-LRXDZBV2.js';
2
+ export { VisuallyHidden } from './chunk-SY62XJFA.js';
3
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-VXFYETRK.js';
4
+ export { ToggleGroup, ToggleGroupItem } from './chunk-NUXW6NPP.js';
5
+ export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarVariants } from './chunk-YYEGAFUE.js';
6
+ export { Toggle, toggleVariants } from './chunk-C46ITXE4.js';
7
+ export { Tooltip } from './chunk-G5YKBPBF.js';
8
+ export { ScrollArea } from './chunk-6KHY647C.js';
9
+ export { Slider } from './chunk-PSR47JRA.js';
9
10
  export { Toaster, toast } from './chunk-4RAZJ6LL.js';
10
- export { Kbd } from './chunk-FFSDFQQN.js';
11
- export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from './chunk-4V4H2ZM7.js';
12
- export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from './chunk-SVXDWPLO.js';
13
- export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from './chunk-LDPPIBIJ.js';
14
- export { RadioGroup, RadioGroupItem } from './chunk-TKA4LOMT.js';
11
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from './chunk-AL5TMEZQ.js';
12
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from './chunk-THD3YOOZ.js';
13
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from './chunk-IJCT5IJD.js';
14
+ export { PasswordToggleField, PasswordToggleFieldIcon, PasswordToggleFieldInput, PasswordToggleFieldSlot, PasswordToggleFieldToggle } from './chunk-SRIT4NFQ.js';
15
+ export { RadioGroup, RadioGroupItem } from './chunk-ZZ7H7VVX.js';
16
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './chunk-TAP3PBQT.js';
15
17
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-JYPENH7T.js';
16
- export { EmptyState, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from './chunk-ZDAT5JDH.js';
17
- export { HoverCard, HoverCardContent, HoverCardTrigger } from './chunk-63FW5ZUA.js';
18
+ export { HoverCard, HoverCardContent, HoverCardTrigger } from './chunk-P3ZL6FGR.js';
18
19
  export { InputGroup, InputGroupInput, InputGroupPrefix, InputGroupSuffix } from './chunk-GJ6XSCNF.js';
19
20
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from './chunk-K23AQNOM.js';
20
- export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from './chunk-O4B5ALO7.js';
21
+ export { Kbd } from './chunk-FFSDFQQN.js';
21
22
  export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './chunk-QCJAASJT.js';
22
- export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-KBS4BHME.js';
23
- export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './chunk-UGHQFQOE.js';
24
- export { DatePicker } from './chunk-UKSBLFEK.js';
25
- export { AspectRatio } from './chunk-WALXVR6V.js';
26
- export { Avatar, AvatarFallback, AvatarImage } from './chunk-C6H7AMO4.js';
23
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './chunk-6TVMQH6M.js';
24
+ export { DatePicker } from './chunk-6XPMU65K.js';
27
25
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from './chunk-2MQKBZBJ.js';
28
26
  export { ButtonGroup } from './chunk-K4YLKVMX.js';
29
- export { Calendar, CalendarDayButton } from './chunk-DGRHPJ3M.js';
30
- export { Spinner } from './chunk-OVU3Z2MT.js';
31
- export { Switch } from './chunk-2MXMWBDV.js';
27
+ export { Calendar, CalendarDayButton } from './chunk-J6FBA7PH.js';
28
+ export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from './chunk-AOZGQM6W.js';
29
+ export { AccessibleIcon } from './chunk-JAMLFMDS.js';
30
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './chunk-YWFPMND7.js';
31
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-M62CHO3N.js';
32
+ export { AspectRatio } from './chunk-6Q6CLLJ4.js';
33
+ export { Container, Stack, containerVariants, stackVariants } from './chunk-4CQHPWJD.js';
34
+ export { FormPage } from './chunk-PLIYF6KI.js';
35
+ export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-OZZTPE7F.js';
36
+ export { Section, SettingsPage, sectionHeadingVariants } from './chunk-P64MFQXZ.js';
37
+ export { StatusBadge, statusBadgeVariants } from './chunk-XMK3T4TA.js';
38
+ export { ToggleRow } from './chunk-6M4NHHKG.js';
39
+ export { UserAvatar, userAvatarVariants } from './chunk-XBX6QMR5.js';
40
+ export { Avatar, AvatarFallback, AvatarImage } from './chunk-LNFF2RBD.js';
41
+ export { SettingsRow } from './chunk-A7AHVDG7.js';
32
42
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-N2ZFNOOT.js';
33
43
  export { Textarea } from './chunk-YETMISCE.js';
34
- export { Select, SelectContent, SelectGroup, SelectItem, SelectScrollDownButton, SelectScrollUpButton, SelectTrigger, SelectValue } from './chunk-2B3MFHBQ.js';
35
44
  export { Separator } from './chunk-SXSCHWZU.js';
36
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from './chunk-SCUT2ZCD.js';
45
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from './chunk-XCGZPFT7.js';
37
46
  export { Skeleton } from './chunk-QFM4Z2SS.js';
38
47
  export { Progress } from './chunk-W5Y3LG5K.js';
39
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-SBJV3K4G.js';
40
- export { FormDescription, FormError, FormField, FormLabel } from './chunk-IP6TMT3D.js';
41
- export { Label } from './chunk-T5VX5DYO.js';
48
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-QJ6P2DW6.js';
42
49
  export { Input } from './chunk-QSXVL5UB.js';
43
- export { Checkbox } from './chunk-WZWR2ELB.js';
44
- export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from './chunk-7OBL3H5P.js';
45
- export { Popover, PopoverContent, PopoverTrigger } from './chunk-NJMO3VPA.js';
46
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-YZEA5TGK.js';
47
- export { Badge } from './chunk-NPNADZHM.js';
48
- export { Button } from './chunk-I6JQHP6D.js';
50
+ export { Checkbox } from './chunk-SEBU6JCK.js';
49
51
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-FN3FZVUR.js';
50
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './chunk-5J7BP5DI.js';
51
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-QBZMY2AF.js';
52
- export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-OZZTPE7F.js';
52
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-B2GIBUQD.js';
53
+ export { Badge } from './chunk-NPNADZHM.js';
54
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectScrollDownButton, SelectScrollUpButton, SelectTrigger, SelectValue } from './chunk-FK42ZGGV.js';
55
+ export { Popover, PopoverContent, PopoverTrigger } from './chunk-22XB3Q6H.js';
56
+ export { Switch } from './chunk-27ELYTGE.js';
57
+ export { EmptyState, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from './chunk-65SPT7EA.js';
58
+ export { Button } from './chunk-NWSCYLPT.js';
59
+ export { PageLoading, pageLoadingVariants } from './chunk-YRYQXU3G.js';
60
+ export { Spinner } from './chunk-OVU3Z2MT.js';
61
+ export { FormDescription, FormError, FormField, FormLabel } from './chunk-R7QFP6EL.js';
62
+ export { Label } from './chunk-F47U5KNW.js';
63
+ export { DashboardPage, Grid, gridVariants } from './chunk-ARJI2JUV.js';
64
+ export { DetailPage } from './chunk-AFZ76Q26.js';
65
+ export { Split, splitVariants } from './chunk-D2LIXA2Y.js';
66
+ export { GAP_CLASSES, spaceScale } from './chunk-AVFZ4P4B.js';
67
+ export { CommandPalette, useCommandPaletteHotkey } from './chunk-CNTWQSUT.js';
68
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from './chunk-SEFK4NZV.js';
69
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-7XMZVISM.js';
53
70
  export { cn } from './chunk-NZ5WBA4R.js';
54
- export { DefaultLink, defaultNavigate, isPathActive, useBrowserSearchParams } from './chunk-AI6CCNWK.js';
71
+ export { DefaultLink, defaultNavigate, isPathActive, useBrowserSearchParams } from './chunk-6NPEMLBA.js';
55
72
  //# sourceMappingURL=index.js.map
56
73
  //# sourceMappingURL=index.js.map
@@ -26,6 +26,10 @@ interface GenesisLinkProps {
26
26
  children?: ReactNode;
27
27
  /** Set to "page" when the link points at the active route. */
28
28
  "aria-current"?: AnchorHTMLAttributes<HTMLAnchorElement>["aria-current"];
29
+ /** Accessible name — useful when the visible label is hidden (icon rail). */
30
+ "aria-label"?: string;
31
+ /** Native tooltip / title attribute. */
32
+ title?: string;
29
33
  /**
30
34
  * Stable test/automation selector. {@link DefaultLink} renders it as
31
35
  * `data-testid`; injected router adapters (`next/link`, RR `Link`) forward it