@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
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import { cn } from './chunk-NZ5WBA4R.js';
3
3
  import * as React from 'react';
4
- import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
4
+ import { RadioGroup as RadioGroup$1 } from 'radix-ui';
5
5
  import { Circle } from 'lucide-react';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var RadioGroup = React.forwardRef(({ className, ...props }, ref) => {
9
9
  return /* @__PURE__ */ jsx(
10
- RadioGroupPrimitive.Root,
10
+ RadioGroup$1.Root,
11
11
  {
12
12
  className: cn("grid gap-2", className),
13
13
  ...props,
@@ -15,10 +15,10 @@ var RadioGroup = React.forwardRef(({ className, ...props }, ref) => {
15
15
  }
16
16
  );
17
17
  });
18
- RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
18
+ RadioGroup.displayName = RadioGroup$1.Root.displayName;
19
19
  var RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => {
20
20
  return /* @__PURE__ */ jsx(
21
- RadioGroupPrimitive.Item,
21
+ RadioGroup$1.Item,
22
22
  {
23
23
  ref,
24
24
  className: cn(
@@ -26,12 +26,12 @@ var RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => {
26
26
  className
27
27
  ),
28
28
  ...props,
29
- children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
29
+ children: /* @__PURE__ */ jsx(RadioGroup$1.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
30
30
  }
31
31
  );
32
32
  });
33
- RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
33
+ RadioGroupItem.displayName = RadioGroup$1.Item.displayName;
34
34
 
35
35
  export { RadioGroup, RadioGroupItem };
36
- //# sourceMappingURL=chunk-TKA4LOMT.js.map
37
- //# sourceMappingURL=chunk-TKA4LOMT.js.map
36
+ //# sourceMappingURL=chunk-ZZ7H7VVX.js.map
37
+ //# sourceMappingURL=chunk-ZZ7H7VVX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/radio-group.tsx"],"names":["RadioGroupPrimitive"],"mappings":";;;;;;AAOA,IAAM,UAAA,GAAmB,iBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACE,GAAA;AAAA,IAACA,YAAA,CAAoB,IAAA;AAAA,IAApB;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA;AAAA,MACpC,GAAG,KAAA;AAAA,MACJ;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,UAAA,CAAW,WAAA,GAAcA,aAAoB,IAAA,CAAK,WAAA;AAElD,IAAM,cAAA,GAAuB,iBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACE,GAAA;AAAA,IAACA,YAAA,CAAoB,IAAA;AAAA,IAApB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0OAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAACA,YAAA,CAAoB,SAAA,EAApB,EAA8B,SAAA,EAAU,oCACvC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,uCAAA,EAAwC,CAAA,EAC5D;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAcA,aAAoB,IAAA,CAAK,WAAA","file":"chunk-ZZ7H7VVX.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { Circle } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nconst RadioGroup = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n"]}
@@ -1,19 +1,25 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { ReactNode, RefObject } from 'react';
4
- import { V as ViewMode } from '../../ViewToggle-DDe_Luj2.js';
5
- export { a as ViewToggle } from '../../ViewToggle-DDe_Luj2.js';
4
+ import { c as PageHeaderOptions, A as AppShell$1, P as PageHeader$1 } from '../../AppShell-BJarYZzz.js';
5
+ export { a as AppShellOptions, b as AppShellProps, N as NavItem, d as PageHeaderProps } from '../../AppShell-BJarYZzz.js';
6
+ import { V as ViewMode } from '../../view-toggle-DDe_Luj2.js';
7
+ export { a as ViewToggle } from '../../view-toggle-DDe_Luj2.js';
6
8
  import { LucideIcon } from 'lucide-react';
7
9
  import { Density } from '../../hooks/use-view-settings.js';
8
- import { a as ResourceColumnDef } from '../../use-resource-page-B-CFcikK.js';
9
- export { D as DataTable, c as DataTableColumn, d as DataTableProps, L as LinkCell, R as ResourceActions, T as ThumbnailCell } from '../../use-resource-page-B-CFcikK.js';
10
- import { L as LinkComponent, N as NavigateFn } from '../../navigation-qI86Ldug.js';
11
- export { D as DefaultLink, G as GenesisLinkProps, d as defaultNavigate, i as isPathActive } from '../../navigation-qI86Ldug.js';
10
+ import { R as ResourceActions, a as ResourceColumnDef } from '../../use-resource-page-CPs6wjKt.js';
11
+ export { D as DataTable, c as DataTableColumn, d as DataTableProps, L as LinkCell, T as ThumbnailCell } from '../../use-resource-page-CPs6wjKt.js';
12
+ export { EmptyState } from '../patterns/empty-state.js';
13
+ export { V as ViewSettings } from '../../view-settings--KXNT_jE.js';
14
+ import { L as LinkComponent, N as NavigateFn } from '../../navigation-CpOEyUSb.js';
15
+ export { D as DefaultLink, G as GenesisLinkProps, d as defaultNavigate, i as isPathActive } from '../../navigation-CpOEyUSb.js';
12
16
  import { UseFormReturn, Control, FieldErrors } from 'react-hook-form';
13
17
  import { WizardStep, UseResourceOptions } from '@marktiderman/genesis-core/hooks';
14
- import { FilterParam } from '@marktiderman/genesis-core/provider';
18
+ import { FilterParam, BaseRecord, Identifier } from '@marktiderman/genesis-core/provider';
15
19
  import { ResourceFormFieldDef } from '@marktiderman/genesis-core';
16
20
  export { FieldType, ResourceFormFieldDef, SelectOption } from '@marktiderman/genesis-core';
21
+ export { CommandPalette, CommandPaletteItem, CommandPaletteProps, useCommandPaletteHotkey } from '../ui/command-palette.js';
22
+ export { UseSavedViewsReturn, useSavedViews } from '../../hooks/use-saved-views.js';
17
23
 
18
24
  interface DataPageShellProps {
19
25
  /** Display title for the page */
@@ -49,9 +55,26 @@ interface DataPageShellProps {
49
55
  /** Whether filters are currently active */
50
56
  hasActiveFilters?: boolean;
51
57
  onClearFilters?: () => void;
58
+ /**
59
+ * When true, filters render inside PageHeader details (collapsed by default).
60
+ * Default false preserves always-visible filters on existing boards.
61
+ */
62
+ filtersCollapsible?: boolean;
63
+ defaultFiltersOpen?: boolean;
64
+ filtersOpen?: boolean;
65
+ onFiltersOpenChange?: (open: boolean) => void;
66
+ filtersLabel?: string;
67
+ filtersHint?: ReactNode;
68
+ /**
69
+ * PageHeader chrome config — developer defaults; users can further
70
+ * customize via the in-header Header options menu.
71
+ */
72
+ headerOptions?: PageHeaderOptions;
73
+ /** Persist user header-option overrides (localStorage) */
74
+ headerOptionsStorageKey?: string;
52
75
  children: ReactNode;
53
76
  }
54
- declare function DataPageShell({ title, icon: Icon, entityName, subtitle, createAction, isLoading, isEmpty, emptyIcon, emptyMessage, emptyAction, hasError, errorMessage, onRetry, count, totalCount, viewMode, onViewModeChange, pageSize, onPageSizeChange, density, onDensityChange, filters, hasActiveFilters, onClearFilters, children, }: DataPageShellProps): react_jsx_runtime.JSX.Element;
77
+ declare function DataPageShell({ title, icon, entityName, subtitle, createAction, isLoading, isEmpty, emptyIcon, emptyMessage, emptyAction, hasError, errorMessage, onRetry, count, totalCount, viewMode, onViewModeChange, pageSize, onPageSizeChange, density, onDensityChange, filters, hasActiveFilters, onClearFilters, filtersCollapsible, defaultFiltersOpen, filtersOpen, onFiltersOpenChange, filtersLabel, filtersHint, headerOptions, headerOptionsStorageKey, children, }: DataPageShellProps): react_jsx_runtime.JSX.Element;
55
78
 
56
79
  interface FilterOption {
57
80
  value: string;
@@ -181,24 +204,6 @@ declare function CurrencyCell(currency?: string, locale?: string): (_item: unkno
181
204
  */
182
205
  declare function BadgeCell(colorMap?: Record<string, "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | "muted">): (_item: unknown, value: unknown) => react_jsx_runtime.JSX.Element | "—";
183
206
 
184
- interface EmptyStateProps {
185
- icon?: LucideIcon;
186
- message?: string;
187
- action?: ReactNode;
188
- /** If true, shows a "no results" message with clear button */
189
- hasFilters?: boolean;
190
- onClearFilters?: () => void;
191
- }
192
- declare function EmptyState({ icon: Icon, message, action, hasFilters, onClearFilters, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
193
-
194
- interface ViewSettingsProps {
195
- pageSize: number;
196
- onPageSizeChange: (size: number) => void;
197
- density: Density;
198
- onDensityChange: (density: Density) => void;
199
- }
200
- declare function ViewSettings({ pageSize, onPageSizeChange, density, onDensityChange, }: ViewSettingsProps): react_jsx_runtime.JSX.Element;
201
-
202
207
  type StatCardColor = "primary" | "success" | "warning" | "info" | "destructive" | "muted";
203
208
  interface StatCardProps {
204
209
  label: string;
@@ -249,6 +254,13 @@ interface DataListProps<T> {
249
254
  }
250
255
  declare function DataList<T>({ items, renderItem, emptyMessage, className, }: DataListProps<T>): react_jsx_runtime.JSX.Element;
251
256
 
257
+ /**
258
+ * Props for {@link DetailPanel} — a shell-agnostic record detail view.
259
+ * `layout` selects only the surrounding shell (inline / dialog / sheet);
260
+ * the header and content below it render identically across all three.
261
+ *
262
+ * @stability Beta
263
+ */
252
264
  interface DetailPanelProps<T> {
253
265
  /** The record to display */
254
266
  item: T | null;
@@ -272,11 +284,57 @@ interface DetailPanelProps<T> {
272
284
  label: string;
273
285
  render?: (value: unknown, item: T) => ReactNode;
274
286
  }>;
275
- /** Panel width */
287
+ /**
288
+ * Panel width. For `"sheet"` / `"inline"` this is a fixed pixel width
289
+ * (matching this component's original, pre-`layout` sizing exactly). For
290
+ * `"dialog"` it maps to Tailwind's modal max-width scale instead, since a
291
+ * centered modal has a different sizing idiom than an edge-anchored panel.
292
+ */
276
293
  width?: "sm" | "md" | "lg";
294
+ /**
295
+ * Rendering shell for the header + content below.
296
+ * - `"sheet"` (default): fixed, right-anchored slide-in panel, composed
297
+ * from the shared `Sheet` primitive. Matches this component's original
298
+ * (pre-`layout`-prop) behavior — existing consumers that don't pass
299
+ * `layout` see no change, other than an overlay now present at all
300
+ * breakpoints (previously mobile-only) since it's a real `Sheet`.
301
+ * - `"dialog"`: centered modal overlay, composed from the shared `Dialog`
302
+ * primitive.
303
+ * - `"inline"`: plain in-flow panel — no overlay, backdrop, or fixed
304
+ * positioning — for master-detail / split-pane layouts.
305
+ */
306
+ layout?: "inline" | "dialog" | "sheet";
277
307
  }
278
- declare function DetailPanel<T extends Record<string, unknown>>({ item, open, onClose, title, subtitle, onEdit, onDelete, children, fields, width, }: DetailPanelProps<T>): react_jsx_runtime.JSX.Element | null;
308
+ declare function DetailPanel<T extends Record<string, unknown>>({ item, open, onClose, title, subtitle, onEdit, onDelete, children, fields, width, layout, }: DetailPanelProps<T>): react_jsx_runtime.JSX.Element | null;
279
309
 
310
+ /**
311
+ * Row-bound actions handed to `renderCard`, on top of the resource-wide
312
+ * `ResourceActions`. `open` is per-row, which is why it lives here rather
313
+ * than on `ResourceActions` — that object is built once and shared by every
314
+ * row and column, so it cannot carry a row-specific callback.
315
+ *
316
+ * @stability Beta
317
+ */
318
+ interface ResourceCardActions<T> extends ResourceActions<T> {
319
+ /**
320
+ * Activate this row — opens the configured detail panel / modal / route,
321
+ * exactly as clicking the built-in card does. Wire it to your card's
322
+ * `onClick` (and call `stopPropagation` on any nested control that should
323
+ * not also activate the row).
324
+ */
325
+ open: () => void;
326
+ }
327
+ /**
328
+ * Config-driven resource page: wires data-fetching (or a pre-fetched `data`
329
+ * array), search/filter/sort, table/grid/list views, and a detail
330
+ * panel/modal/route around a `DataProvider` resource — the CRUD page most
331
+ * apps hand-roll, expressed as one component tree. `renderCard` lets a
332
+ * consumer fully own item presentation while ResourcePage keeps handling
333
+ * data-fetching, filtering, and layout; see also the built-in
334
+ * `useKeyboardNavigation` wiring (`keyboardNavigation` prop) and `gridCols`.
335
+ *
336
+ * @stability Beta
337
+ */
280
338
  interface ResourcePageProps<T extends Record<string, unknown> = Record<string, unknown>> {
281
339
  /** Client-side mode: resource name passed to useResource / DataProvider. */
282
340
  resource?: string;
@@ -332,6 +390,46 @@ interface ResourcePageProps<T extends Record<string, unknown> = Record<string, u
332
390
  variant?: "default" | "destructive";
333
391
  onAction: (ids: string[]) => void | Promise<void>;
334
392
  }>;
393
+ /**
394
+ * Override the default card renderer used for grid view (and, absent a
395
+ * dedicated list layout, list view too — DataGrid falls back to the same
396
+ * renderer there). ResourcePage still owns data-fetching, filtering,
397
+ * sorting, and layout (grid columns, infinite-scroll batching, stagger
398
+ * animation) — this only swaps what's rendered inside each item slot.
399
+ *
400
+ * Receives `ResourceCardActions`: the row's `update`/`remove`/`refetch`
401
+ * plus `open()` to activate the row (opening the configured detail
402
+ * panel/modal/route). Row activation is *not* applied automatically to a
403
+ * custom card — wrapping it would double-fire against cards that bring
404
+ * their own click handling and would hijack clicks on nested buttons — so
405
+ * call `actions.open()` from wherever your card should activate.
406
+ */
407
+ renderCard?: (item: T, index: number, actions: ResourceCardActions<T>) => ReactNode;
408
+ /**
409
+ * Tailwind grid-column classes for the card grid, passed through to
410
+ * `DataGrid`'s `gridCols` — e.g. `"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3"`.
411
+ * Defaults to DataGrid's own responsive 1/2/3/4-column ramp.
412
+ */
413
+ gridCols?: string;
414
+ /**
415
+ * Built-in list keyboard navigation via `useKeyboardNavigation`: j/k (or
416
+ * Arrow Up/Down) move a focus cursor, Enter opens the focused item,
417
+ * Backspace (⌫) closes an open detail view, and x toggles the focused
418
+ * item's selection when `bulkActions` are configured. Set to `false` to
419
+ * opt out.
420
+ *
421
+ * Default-on, and scoped so that being on by default stays safe:
422
+ * - Only while the grid or list view is showing. Table view keeps its own
423
+ * independent sort/pagination, so a flat focus index can't reliably map
424
+ * onto its visible rows.
425
+ * - Cursor keys suspend while a detail panel/modal or the built-in form
426
+ * is open, so they can't drive the list behind the overlay; ⌫ stays
427
+ * live there so it can close it.
428
+ * - Backspace is only intercepted while there's an open detail to close.
429
+ * - Modified chords (Ctrl/Cmd/Alt) are never captured, so an app's
430
+ * Cmd+K-style shortcuts keep working.
431
+ */
432
+ keyboardNavigation?: boolean;
335
433
  toolbar?: ReactNode;
336
434
  emptyState?: ReactNode;
337
435
  /**
@@ -343,9 +441,93 @@ interface ResourcePageProps<T extends Record<string, unknown> = Record<string, u
343
441
  onNavigate?: NavigateFn;
344
442
  resourceOptions?: UseResourceOptions<T>;
345
443
  defaultView?: ViewMode;
444
+ /**
445
+ * Persist key for density / page size via `useViewSettings`.
446
+ * Defaults to `resource` or a slug of `title`.
447
+ */
448
+ viewSettingsKey?: string;
346
449
  }
347
450
  declare function ResourcePage<T extends Record<string, unknown> = Record<string, unknown>>(props: ResourcePageProps<T>): react_jsx_runtime.JSX.Element;
348
451
 
452
+ interface ResourceDetailPageProps<T extends BaseRecord = BaseRecord> {
453
+ /** Resource name, resolved through the mounted `DataProvider`. */
454
+ resource: string;
455
+ /**
456
+ * Record id. Nullish means "not resolved yet" — no request goes out and the
457
+ * page shows its loading state, which is what a route param that hasn't
458
+ * arrived should look like. It is deliberately NOT the not-found state:
459
+ * nothing has been asked, so nothing is missing.
460
+ */
461
+ id: Identifier | undefined | null;
462
+ /**
463
+ * Field used as the page title. Defaults to `name`, then `title`, then the
464
+ * id — the same fallback chain `ResourcePage` uses for a row's label.
465
+ */
466
+ titleField?: string;
467
+ /** Field used as the line under the title. */
468
+ subtitleField?: string;
469
+ /** Provider select/join syntax, e.g. `"*, owner:profiles(name)"`. */
470
+ select?: string;
471
+ /** Slot above the title: a `Breadcrumb`, a back link, a `StatusBadge`. */
472
+ breadcrumb?: ReactNode;
473
+ /** Record-scoped controls, built from the loaded record. */
474
+ actions?: (record: T) => ReactNode;
475
+ /** Metadata column, built from the loaded record. */
476
+ sidebar?: (record: T) => ReactNode;
477
+ /** The primary content region. */
478
+ children: (record: T) => ReactNode;
479
+ className?: string;
480
+ /** Stable test/automation selector (emitted as `data-testid`). */
481
+ testID?: string;
482
+ }
483
+ /**
484
+ * ResourceDetailPage — `DetailPage` with a record bound to it: fetches one
485
+ * record by id through the mounted `DataProvider` and hands it to the title,
486
+ * the actions, the sidebar and the content.
487
+ *
488
+ * ```tsx
489
+ * <ResourceDetailPage
490
+ * resource="people"
491
+ * id={params.id}
492
+ * subtitleField="role"
493
+ * actions={(person) => <Button testID="edit">Edit {person.name}</Button>}
494
+ * sidebar={(person) => <StatCard label="Sessions" value={person.session_count} />}
495
+ * >
496
+ * {(person) => <Section title="Timeline"><Timeline personId={person.id} /></Section>}
497
+ * </ResourceDetailPage>
498
+ * ```
499
+ *
500
+ * This is the detail-route counterpart to `ResourcePage`, which is the list
501
+ * one. Both are **data-bound**, not layouts: they need a resource contract
502
+ * to be useful, which is the layers table's admission test for this tier.
503
+ * The structure they render is a layout and lives one layer down —
504
+ * `DetailPage` in `@marktiderman/genesis-ui/layout` — so an app with its own
505
+ * fetching keeps the page shape without inheriting the provider. That
506
+ * layout/data-bound pairing is the same one `AppShell` and `ResourcePage`
507
+ * already have.
508
+ *
509
+ * The three non-record states are rendered here rather than left to the
510
+ * caller, because a per-app "loading…" is exactly the hand-written code a
511
+ * template exists to remove:
512
+ * - loading, or no id yet -> `PageLoading`
513
+ * - absent -> `EmptyState` saying so, distinct from the error state, since a
514
+ * deleted record and a broken query need different words. Every provider
515
+ * Genesis ships signals "no such row" by throwing rather than by resolving
516
+ * empty, so this state is reached by classifying the error (see
517
+ * `isNotFoundError`) as well as by a falsy `data`
518
+ * - any other failure -> `EmptyState` carrying the provider's message, which
519
+ * is kept verbatim: an error state that hides what went wrong is the one
520
+ * nobody can act on
521
+ *
522
+ * `titleField` is exact: name a field and you get that field, empty string
523
+ * included. The `name` -> `title` -> id chain is the DEFAULT, not a fallback
524
+ * layered under an explicit choice — a page silently titled by a different
525
+ * column than the one asked for is worse than a blank one.
526
+ *
527
+ * @stability Beta
528
+ */
529
+ declare function ResourceDetailPage<T extends BaseRecord = BaseRecord>({ resource, id, titleField, subtitleField, select, breadcrumb, actions, sidebar, children, className, testID, }: ResourceDetailPageProps<T>): react_jsx_runtime.JSX.Element;
530
+
349
531
  interface ResourceFormProps {
350
532
  resource: string;
351
533
  action: "create" | "edit";
@@ -405,52 +587,19 @@ interface WizardFormProps {
405
587
  }
406
588
  declare function WizardForm({ steps, form, fields, onSubmit, isSaving, renderField, action, onInvalid, }: WizardFormProps): react_jsx_runtime.JSX.Element;
407
589
 
408
- interface NavItem {
409
- to: string;
410
- icon: LucideIcon;
411
- label: string;
412
- }
413
590
  /**
414
- * @stability Beta
591
+ * @deprecated Import `AppShell` from `@marktiderman/genesis-ui/layout` instead.
592
+ * `AppShell` is a layout, not a data-bound component. This `/data` alias is
593
+ * removed in the next major — see docs/FRAMEWORK.md rule 5.
594
+ * @stability Deprecated
415
595
  */
416
- interface AppShellProps {
417
- /** App name shown in sidebar header */
418
- appName: string;
419
- /** App logo letter or short text */
420
- appLogo?: string;
421
- /** Navigation items */
422
- navItems: NavItem[];
423
- /** Page content */
424
- children: ReactNode;
425
- /** Show theme toggle (default: true) */
426
- showThemeToggle?: boolean;
427
- /**
428
- * Injectable link component. Defaults to a plain `<a>` (no router). Pass a
429
- * router adapter — e.g. React Router `({ href, ...p }) => <Link to={href} {...p} />`
430
- * or Next.js `next/link` — to get client-side navigation.
431
- */
432
- linkComponent?: LinkComponent;
433
- /**
434
- * Current path used to highlight the active nav item. Router consumers pass
435
- * `useLocation().pathname` (RR) or `usePathname()` (Next). Omit to disable
436
- * active highlighting.
437
- */
438
- activePath?: string;
439
- /**
440
- * Optional custom active-state matcher. Defaults to a prefix match (with `/`
441
- * treated as exact), mirroring React Router `NavLink`.
442
- */
443
- isActive?: (to: string, activePath?: string) => boolean;
444
- }
445
- declare function AppShell({ appName, appLogo, navItems, children, showThemeToggle, linkComponent, activePath, isActive, }: AppShellProps): react_jsx_runtime.JSX.Element;
446
-
447
- interface PageHeaderProps {
448
- title: string;
449
- subtitle?: string;
450
- icon?: LucideIcon;
451
- /** Optional action area (buttons, etc.) */
452
- actions?: ReactNode;
453
- }
454
- declare function PageHeader({ title, subtitle, icon: Icon, actions }: PageHeaderProps): react_jsx_runtime.JSX.Element;
596
+ declare const AppShell: typeof AppShell$1;
597
+ /**
598
+ * @deprecated Import `PageHeader` from `@marktiderman/genesis-ui/layout`
599
+ * instead. `PageHeader` is a layout, not a data-bound component. This `/data`
600
+ * alias is removed in the next major — see docs/FRAMEWORK.md rule 5.
601
+ * @stability Deprecated
602
+ */
603
+ declare const PageHeader: typeof PageHeader$1;
455
604
 
456
- export { AppShell, type AppShellProps, BadgeCell, type BulkAction, type ColumnStatus, CurrencyCell, DataBulkBar, type DataFilterConfig, DataFilters, DataGrid, DataList, type DataListProps, DataPageShell, type DataPageShellProps, DateCell, DetailPanel, type DetailPanelProps, EmptyState, FieldArrayRenderer, FileUploadField, FilterCombobox, type FilterOption, KanbanBoard, type KanbanBoardProps, type KanbanColumn, LinkComponent, type NavItem, NavigateFn, NumberCell, PageHeader, type PageHeaderProps, RelationField, ResourceColumnDef, ResourceForm, type ResourceFormProps, ResourcePage, type ResourcePageProps, StatCard, type StatCardColor, type StatCardProps, ViewMode, ViewSettings, WizardForm };
605
+ export { AppShell, BadgeCell, type BulkAction, type ColumnStatus, CurrencyCell, DataBulkBar, type DataFilterConfig, DataFilters, DataGrid, DataList, type DataListProps, DataPageShell, type DataPageShellProps, DateCell, Density, DetailPanel, type DetailPanelProps, FieldArrayRenderer, FileUploadField, FilterCombobox, type FilterOption, KanbanBoard, type KanbanBoardProps, type KanbanColumn, LinkComponent, NavigateFn, NumberCell, PageHeader, PageHeaderOptions, RelationField, ResourceActions, type ResourceCardActions, ResourceColumnDef, ResourceDetailPage, type ResourceDetailPageProps, ResourceForm, type ResourceFormProps, ResourcePage, type ResourcePageProps, type SavedViewItem, StatCard, type StatCardColor, type StatCardProps, ViewMode, WizardForm };