@exxatdesignux/ui 0.5.2 → 0.5.4

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 (104) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -1
  3. package/consumer-extras/cursor-rules/exxat-accessibility.mdc +1 -1
  4. package/consumer-extras/cursor-rules/exxat-data-tables.mdc +8 -6
  5. package/consumer-extras/cursor-rules/exxat-drawer-vs-dialog.mdc +4 -4
  6. package/consumer-extras/cursor-rules/exxat-ds-agents.mdc +6 -1
  7. package/consumer-extras/cursor-rules/exxat-hub-supported-views.mdc +54 -0
  8. package/consumer-extras/cursor-rules/exxat-nav-single-active.mdc +31 -0
  9. package/consumer-extras/cursor-rules/exxat-no-vaul.mdc +25 -0
  10. package/consumer-extras/cursor-rules/exxat-page-header-actions.mdc +31 -0
  11. package/consumer-extras/cursor-rules/exxat-table-row-preview.mdc +24 -0
  12. package/consumer-extras/cursor-rules/exxat-tabs-chrome.mdc +31 -0
  13. package/consumer-extras/cursor-skills/exxat-drawer-vs-dialog/SKILL.md +5 -5
  14. package/consumer-extras/cursor-skills/exxat-ds-skill/SKILL.md +10 -5
  15. package/consumer-extras/cursor-skills/exxat-ds-skill/references/accessibility.md +1 -1
  16. package/consumer-extras/cursor-skills/exxat-ds-skill/references/data-table-pattern.md +15 -5
  17. package/consumer-extras/cursor-skills/exxat-token-economy/SKILL.md +14 -5
  18. package/consumer-extras/handbook/HANDBOOK.md +1 -1
  19. package/consumer-extras/handbook/reference-implementations.md +2 -2
  20. package/consumer-extras/patterns/consumer-upgrade-checklist.md +14 -1
  21. package/consumer-extras/patterns/data-views-pattern.md +6 -0
  22. package/consumer-extras/patterns/drawer-vs-dialog-pattern.md +50 -0
  23. package/consumer-extras/patterns/hub-supported-views-pattern.md +53 -0
  24. package/dist/components/data-table/index.js +13 -9
  25. package/dist/components/data-table/index.js.map +1 -1
  26. package/dist/components/data-table/pagination.js +13 -9
  27. package/dist/components/data-table/pagination.js.map +1 -1
  28. package/dist/components/data-views/hub-table.d.ts +8 -4
  29. package/dist/components/data-views/hub-table.js +25 -10
  30. package/dist/components/data-views/hub-table.js.map +1 -1
  31. package/dist/components/data-views/index.d.ts +1 -1
  32. package/dist/components/data-views/index.js +25 -10
  33. package/dist/components/data-views/index.js.map +1 -1
  34. package/dist/components/data-views/list-page-connected-view-body.d.ts +1 -1
  35. package/dist/components/data-views/list-page-connected-view-body.js +1 -0
  36. package/dist/components/data-views/list-page-connected-view-body.js.map +1 -1
  37. package/dist/components/table-properties/drawer-button.js +1 -0
  38. package/dist/components/table-properties/drawer-button.js.map +1 -1
  39. package/dist/components/table-properties/drawer.js +1 -0
  40. package/dist/components/table-properties/drawer.js.map +1 -1
  41. package/dist/components/table-properties/index.d.ts +1 -1
  42. package/dist/components/table-properties/index.js +1 -0
  43. package/dist/components/table-properties/index.js.map +1 -1
  44. package/dist/components/templates/index.d.ts +1 -1
  45. package/dist/components/templates/index.js +12 -2
  46. package/dist/components/templates/index.js.map +1 -1
  47. package/dist/components/templates/list-page.d.ts +4 -2
  48. package/dist/components/templates/list-page.js +12 -2
  49. package/dist/components/templates/list-page.js.map +1 -1
  50. package/dist/{data-list-view-registry-CyBoBML4.d.ts → data-list-view-registry-BstmlfQ3.d.ts} +16 -1
  51. package/dist/index.d.ts +2 -3
  52. package/dist/index.js +135 -126
  53. package/dist/index.js.map +1 -1
  54. package/dist/lib/data-list-view-registry.d.ts +1 -1
  55. package/dist/lib/data-list-view-registry.js +17 -1
  56. package/dist/lib/data-list-view-registry.js.map +1 -1
  57. package/dist/lib/data-list-view-surface.d.ts +1 -1
  58. package/dist/lib/data-list-view-surface.js +1 -0
  59. package/dist/lib/data-list-view-surface.js.map +1 -1
  60. package/dist/lib/list-page-table-properties.d.ts +1 -1
  61. package/dist/lib/list-page-table-properties.js +1 -0
  62. package/dist/lib/list-page-table-properties.js.map +1 -1
  63. package/dist/lib/nav-active.d.ts +38 -0
  64. package/dist/lib/nav-active.js +104 -0
  65. package/dist/lib/nav-active.js.map +1 -0
  66. package/package.json +1 -2
  67. package/src/components/data-table/index.tsx +25 -17
  68. package/src/components/data-views/hub-table.tsx +9 -3
  69. package/src/components/templates/list-page.tsx +9 -3
  70. package/src/index.ts +1 -1
  71. package/src/lib/data-list-view-registry.ts +31 -0
  72. package/src/lib/nav-active.ts +162 -0
  73. package/template/.claude/skills/exxat-ds-skill/SKILL.md +2 -1
  74. package/template/.cursor/rules/exxat-accessibility.mdc +1 -1
  75. package/template/AGENTS.md +18 -3
  76. package/template/components/columns-client.tsx +3 -2
  77. package/template/components/columns-showcase.tsx +22 -18
  78. package/template/components/exxat-product-logo.tsx +1 -1
  79. package/template/components/library-table.tsx +62 -23
  80. package/template/components/new-library-item-form.tsx +0 -7
  81. package/template/components/product-wordmark.tsx +1 -1
  82. package/template/components/sidebar/app-sidebar.tsx +14 -106
  83. package/template/components/sidebar/secondary-nav.tsx +22 -4
  84. package/template/components/site-header.tsx +1 -1
  85. package/template/components/tokens-hub-auxiliary-views.tsx +301 -0
  86. package/template/components/tokens-themes-client.tsx +44 -16
  87. package/template/docs/HANDBOOK.md +2 -2
  88. package/template/docs/component-selection-guide.md +1 -1
  89. package/template/docs/consumer-upgrade-checklist.md +51 -0
  90. package/template/docs/data-views-pattern.md +6 -0
  91. package/template/docs/drawer-vs-dialog-pattern.md +8 -8
  92. package/template/docs/glossary.md +2 -1
  93. package/template/docs/hub-supported-views-pattern.md +53 -0
  94. package/template/docs/reference-implementations.md +2 -2
  95. package/template/lib/full-hub-supported-views.ts +8 -0
  96. package/template/lib/library-supported-views.ts +5 -12
  97. package/template/lib/motion-ui.ts +2 -2
  98. package/template/package.json +1 -1
  99. package/tokens/hooks-index.json +2 -2
  100. package/dist/components/ui/drawer.d.ts +0 -16
  101. package/dist/components/ui/drawer.js +0 -125
  102. package/dist/components/ui/drawer.js.map +0 -1
  103. package/src/components/ui/drawer.tsx +0 -134
  104. package/template/components/ui/drawer.tsx +0 -1
@@ -39,6 +39,7 @@ declare function usesToolbarWithFilteredRows(view: DataListViewType): boolean;
39
39
  * `getDataListViewRenderKind` + `ListPageConnectedViewBody` (never a dashboard fallback).
40
40
  *
41
41
  * @see `docs/data-views-pattern.md` — "View registry and connected bodies"
42
+ * @see `.cursor/rules/exxat-hub-supported-views.mdc` — default hubs use **`FULL_HUB_SUPPORTED_VIEWS`** (seven views)
42
43
  */
43
44
 
44
45
  interface DataListViewDefinition {
@@ -50,6 +51,20 @@ interface DataListViewDefinition {
50
51
  hubMetricsStrip: boolean;
51
52
  }
52
53
  declare const DATA_LIST_VIEW_REGISTRY: readonly DataListViewDefinition[];
54
+ /**
55
+ * Default view allowlist for **primary list hubs** (Placements / Team / Students-style pages).
56
+ * Pair with `ListPageTemplate` + `HubTable` when the hub implements table, list, board,
57
+ * and dashboard renderers. Omit `supportedViewTypes` on both components to use this default.
58
+ */
59
+ declare const PRIMARY_HUB_SUPPORTED_VIEWS: readonly ["table", "list", "board", "dashboard"];
60
+ /**
61
+ * Default allowlist for **list-page hubs** in this design system (Library / Column types /
62
+ * Tokens, etc.). Matches the All questions hub: table, list, board, dashboard, folder,
63
+ * panel, and tree-panel. Pair with renderers for each kind on `HubTable` + `ListPageTemplate`.
64
+ */
65
+ declare const FULL_HUB_SUPPORTED_VIEWS: readonly ["table", "list", "board", "dashboard", "folder", "panel", "tree-panel"];
66
+ /** Every registered view type (includes folder, panel, calendar, tree-panel). */
67
+ declare const ALL_DATA_LIST_VIEW_TYPES: DataListViewType[];
53
68
  declare function dataListViewDefinition(view: DataListViewType): DataListViewDefinition;
54
69
  /** `ListPageTemplate` hub KPI strip — false for calendar and dashboard (inline KPIs). */
55
70
  declare function showsListPageHubMetricsStrip(view: DataListViewType): boolean;
@@ -70,4 +85,4 @@ declare const DATA_LIST_SURFACE_VIEW_TYPES: ReadonlySet<DataListViewType>;
70
85
  declare function isDataListSurfaceViewType(viewType: string): viewType is DataListViewType;
71
86
  declare function isDataListViewTypeSupported(view: DataListViewType, supported: readonly DataListViewType[]): boolean;
72
87
 
73
- export { DATA_LIST_SURFACE_VIEW_TYPES as D, DATA_LIST_VIEW_REGISTRY as a, type DataListViewDefinition as b, type DataListViewRenderKind as c, dataListViewDefinition as d, dataListViewSelectionTilesForHub as e, dataListViewTilesForHub as f, getDataListViewRenderKind as g, isDataListViewTypeSupported as h, isDataListSurfaceViewType as i, usesDataTableComponent as j, usesToolbarWithFilteredRows as k, showsListPageHubMetricsStrip as s, usesDashboardSurface as u };
88
+ export { ALL_DATA_LIST_VIEW_TYPES as A, DATA_LIST_SURFACE_VIEW_TYPES as D, FULL_HUB_SUPPORTED_VIEWS as F, PRIMARY_HUB_SUPPORTED_VIEWS as P, DATA_LIST_VIEW_REGISTRY as a, type DataListViewDefinition as b, type DataListViewRenderKind as c, dataListViewDefinition as d, dataListViewSelectionTilesForHub as e, dataListViewTilesForHub as f, getDataListViewRenderKind as g, isDataListViewTypeSupported as h, isDataListSurfaceViewType as i, usesDataTableComponent as j, usesToolbarWithFilteredRows as k, showsListPageHubMetricsStrip as s, usesDashboardSurface as u };
package/dist/index.d.ts CHANGED
@@ -31,7 +31,8 @@ export { ColumnRow } from './components/table-properties/column-row.js';
31
31
  export { useDraggableList } from './components/table-properties/draggable-list.js';
32
32
  export { CreateListPageEditViewHandlerOptions, OpenTablePropertiesHandle, createListPageEditViewHandler } from './lib/list-page-table-properties.js';
33
33
  export { DATA_LIST_VIEW_TILES, DataListViewType, dataListViewAddShortcut, dataListViewIcon, dataListViewLabel } from './lib/data-list-view.js';
34
- export { D as DATA_LIST_SURFACE_VIEW_TYPES, a as DATA_LIST_VIEW_REGISTRY, b as DataListViewDefinition, c as DataListViewRenderKind, d as dataListViewDefinition, e as dataListViewSelectionTilesForHub, f as dataListViewTilesForHub, g as getDataListViewRenderKind, i as isDataListSurfaceViewType, h as isDataListViewTypeSupported, s as showsListPageHubMetricsStrip, u as usesDashboardSurface, j as usesDataTableComponent, k as usesToolbarWithFilteredRows } from './data-list-view-registry-CyBoBML4.js';
34
+ export { A as ALL_DATA_LIST_VIEW_TYPES, D as DATA_LIST_SURFACE_VIEW_TYPES, a as DATA_LIST_VIEW_REGISTRY, b as DataListViewDefinition, c as DataListViewRenderKind, F as FULL_HUB_SUPPORTED_VIEWS, P as PRIMARY_HUB_SUPPORTED_VIEWS, d as dataListViewDefinition, e as dataListViewSelectionTilesForHub, f as dataListViewTilesForHub, g as getDataListViewRenderKind, i as isDataListSurfaceViewType, h as isDataListViewTypeSupported, s as showsListPageHubMetricsStrip, u as usesDashboardSurface, j as usesDataTableComponent, k as usesToolbarWithFilteredRows } from './data-list-view-registry-BstmlfQ3.js';
35
+ export { buildNavHashClaims, collectNavUrls, isNavHrefActive, navUrlFragment, navUrlPath, normalizePathname, normalizedLocationHash, resolveActiveNavHref } from './lib/nav-active.js';
35
36
  export { BoardLineCount, DEFAULT_DATA_LIST_DISPLAY_OPTIONS, DataListDisplayOptions } from './lib/data-list-display-options.js';
36
37
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './components/ui/accordion.js';
37
38
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './components/ui/alert-dialog.js';
@@ -51,7 +52,6 @@ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGr
51
52
  export { DATE_PICKER_ICON_CLASS, DatePickerField, DatePickerFieldProps, DateTextInputField, DateTextInputFieldProps } from './components/ui/date-picker-field.js';
52
53
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/ui/dialog.js';
53
54
  export { DragHandleGripIcon } from './components/ui/drag-handle-grip.js';
54
- export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './components/ui/drawer.js';
55
55
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Shortcut, useShortcut } from './components/ui/dropdown-menu.js';
56
56
  export { ExportDrawer, ExportDrawerProps } from './components/ui/export-drawer.js';
57
57
  export { HoverCard, HoverCardContent, HoverCardTrigger } from './components/ui/hover-card.js';
@@ -114,7 +114,6 @@ import 'react-day-picker';
114
114
  import 'recharts';
115
115
  import 'cmdk';
116
116
  import '@radix-ui/react-dialog';
117
- import 'vaul';
118
117
  import 'react-hook-form';
119
118
  import 'sonner';
120
119
  import 'clsx';
package/dist/index.js CHANGED
@@ -20,7 +20,6 @@ import { motion } from 'motion/react';
20
20
  import * as RechartsPrimitive from 'recharts';
21
21
  import { Command as Command$1 } from 'cmdk';
22
22
  import * as DialogPrimitive2 from '@radix-ui/react-dialog';
23
- import { Drawer as Drawer$1 } from 'vaul';
24
23
  import { usePaymentInputs } from 'react-payment-inputs';
25
24
  export { usePaymentInputs } from 'react-payment-inputs';
26
25
  import images from 'react-payment-inputs/images';
@@ -2719,13 +2718,15 @@ function useBulkBarFixedToTableScrollEl(scrollRef, active, fullWidth) {
2719
2718
  const scheduled = rafThrottle(apply);
2720
2719
  const ro = new ResizeObserver(scheduled);
2721
2720
  ro.observe(el);
2721
+ el.addEventListener("scroll", scheduled, { passive: true });
2722
2722
  window.addEventListener("resize", scheduled, { passive: true });
2723
- window.addEventListener("scroll", scheduled, { passive: true, capture: true });
2723
+ window.addEventListener("scroll", scheduled, { passive: true });
2724
2724
  return () => {
2725
2725
  scheduled.cancel();
2726
2726
  ro.disconnect();
2727
+ el.removeEventListener("scroll", scheduled);
2727
2728
  window.removeEventListener("resize", scheduled);
2728
- window.removeEventListener("scroll", scheduled, { capture: true });
2729
+ window.removeEventListener("scroll", scheduled);
2729
2730
  };
2730
2731
  }, [active, fullWidth, scrollRef]);
2731
2732
  return style;
@@ -2892,11 +2893,13 @@ function DataTableInner({
2892
2893
  };
2893
2894
  update();
2894
2895
  const scheduled = rafThrottle(update);
2895
- window.addEventListener("scroll", scheduled, { passive: true, capture: true });
2896
+ wrapEl.addEventListener("scroll", scheduled, { passive: true });
2897
+ window.addEventListener("scroll", scheduled, { passive: true });
2896
2898
  window.addEventListener("resize", scheduled, { passive: true });
2897
2899
  return () => {
2898
2900
  scheduled.cancel();
2899
- window.removeEventListener("scroll", scheduled, { capture: true });
2901
+ wrapEl.removeEventListener("scroll", scheduled);
2902
+ window.removeEventListener("scroll", scheduled);
2900
2903
  window.removeEventListener("resize", scheduled);
2901
2904
  };
2902
2905
  }, [showColumnHeaders, rows.length, displayCols.length]);
@@ -3333,11 +3336,11 @@ function DataTableInner({
3333
3336
  const rowPy = rowHeight === "compact" ? "py-1" : rowHeight === "comfortable" ? "py-4" : "py-2.5";
3334
3337
  const cs = cellStyle(col.key);
3335
3338
  const tdBase = cn(
3336
- `px-3 ${rowPy} align-middle`,
3339
+ `px-3 ${rowPy} align-middle max-w-0`,
3337
3340
  showGridlines && !isEdgePin && "border-e border-border last:border-e-0",
3338
3341
  "border-b border-border group-last/row:border-b-0",
3339
3342
  isPinned && [
3340
- "z-20 pinned-cell",
3343
+ "z-20 pinned-cell relative",
3341
3344
  "bg-dt-row-bg",
3342
3345
  "group-data-[state=selected]/row:bg-dt-row-selected",
3343
3346
  "group-hover/row:bg-dt-row-hover",
@@ -3387,17 +3390,17 @@ function DataTableInner({
3387
3390
  wrap && "[&_.truncate]:!whitespace-normal [&_.truncate]:!overflow-visible [&_.truncate]:!text-clip"
3388
3391
  ),
3389
3392
  style: tdStyle,
3390
- children: col.cell(row, {
3393
+ children: /* @__PURE__ */ jsx("div", { className: "min-w-0 overflow-hidden", children: col.cell(row, {
3391
3394
  rowIndex,
3392
3395
  selected: isSelected,
3393
3396
  onSelect: (checked) => checked ? setSelected((prev) => /* @__PURE__ */ new Set([...prev, rowId])) : toggleRow(rowId)
3394
- })
3397
+ }) })
3395
3398
  },
3396
3399
  col.key
3397
3400
  );
3398
3401
  }
3399
3402
  const rawVal = String(row[col.key] ?? "");
3400
- return /* @__PURE__ */ jsx("td", { className: cn(tdBase, "text-sm text-foreground/80"), style: tdStyle, children: /* @__PURE__ */ jsx("span", { className: wrap ? "whitespace-normal" : "block truncate", title: !wrap ? rawVal : void 0, children: rawVal }) }, col.key);
3403
+ return /* @__PURE__ */ jsx("td", { className: cn(tdBase, "text-sm text-foreground/80"), style: tdStyle, children: /* @__PURE__ */ jsx("div", { className: "min-w-0 overflow-hidden", children: /* @__PURE__ */ jsx("span", { className: wrap ? "whitespace-normal" : "block truncate", title: !wrap ? rawVal : void 0, children: rawVal }) }) }, col.key);
3401
3404
  })
3402
3405
  },
3403
3406
  String(rowId)
@@ -3795,6 +3798,22 @@ var BY_VALUE = new Map(
3795
3798
  DEFINITIONS.map((d) => [d.value, d])
3796
3799
  );
3797
3800
  var DATA_LIST_VIEW_REGISTRY = DEFINITIONS;
3801
+ var PRIMARY_HUB_SUPPORTED_VIEWS = [
3802
+ "table",
3803
+ "list",
3804
+ "board",
3805
+ "dashboard"
3806
+ ];
3807
+ var FULL_HUB_SUPPORTED_VIEWS = [
3808
+ "table",
3809
+ "list",
3810
+ "board",
3811
+ "dashboard",
3812
+ "folder",
3813
+ "panel",
3814
+ "tree-panel"
3815
+ ];
3816
+ var ALL_DATA_LIST_VIEW_TYPES = DATA_LIST_VIEW_REGISTRY.map((d) => d.value);
3798
3817
  function dataListViewDefinition(view) {
3799
3818
  const def = BY_VALUE.get(view);
3800
3819
  if (!def) {
@@ -6157,7 +6176,7 @@ function HubTable({
6157
6176
  columns,
6158
6177
  view,
6159
6178
  onViewChange,
6160
- supportedViewTypes,
6179
+ supportedViewTypes: supportedViewTypesProp,
6161
6180
  hubLabel,
6162
6181
  lifecycleTabLabel,
6163
6182
  searchAriaLabel,
@@ -6193,6 +6212,7 @@ function HubTable({
6193
6212
  boardColumnCountBadgeClassName,
6194
6213
  boardEmptyColumnLabel
6195
6214
  }) {
6215
+ const supportedViewTypes = supportedViewTypesProp ?? FULL_HUB_SUPPORTED_VIEWS;
6196
6216
  const filterFields = React10.useMemo(() => columnsToFilterFields(columns), [columns]);
6197
6217
  const fieldDefinitions = React10.useMemo(() => columnsToFieldDefinitions(columns), [columns]);
6198
6218
  const resolveColumnLabel = React10.useCallback(
@@ -8331,8 +8351,8 @@ function ListPageTemplate({
8331
8351
  supportedViewTypes
8332
8352
  }) {
8333
8353
  const addableViewTypes = React10.useMemo(() => {
8334
- if (!supportedViewTypes || supportedViewTypes.length === 0) return VIEW_TYPES;
8335
- const allowed = new Set(supportedViewTypes);
8354
+ const allowlist = supportedViewTypes && supportedViewTypes.length > 0 ? supportedViewTypes : FULL_HUB_SUPPORTED_VIEWS;
8355
+ const allowed = new Set(allowlist);
8336
8356
  return VIEW_TYPES.filter((v) => allowed.has(v.type));
8337
8357
  }, [supportedViewTypes]);
8338
8358
  const controlled = tabsProp !== void 0 && onTabsChange !== void 0 && activeTabIdProp !== void 0 && onActiveTabChange !== void 0;
@@ -8986,6 +9006,107 @@ var DEDICATED_SEARCH_RESULTS_OUTER_CONTENT_CLASSNAME = "border-t border-border/4
8986
9006
  function DedicatedSearchResultsHeaderChrome({ children, className }) {
8987
9007
  return /* @__PURE__ */ jsx("div", { className: cn("border-b border-border/50 bg-muted/15", className), children });
8988
9008
  }
9009
+
9010
+ // src/lib/nav-active.ts
9011
+ function normalizePathname(pathname) {
9012
+ if (pathname.length > 1 && pathname.endsWith("/")) return pathname.slice(0, -1);
9013
+ return pathname;
9014
+ }
9015
+ function navUrlPath(url) {
9016
+ const hash = url.indexOf("#");
9017
+ return hash >= 0 ? url.slice(0, hash) : url;
9018
+ }
9019
+ function navUrlFragment(url) {
9020
+ const i = url.indexOf("#");
9021
+ return i >= 0 ? url.slice(i + 1) : null;
9022
+ }
9023
+ function normalizedLocationHash(locationHash) {
9024
+ if (!locationHash) return "";
9025
+ return locationHash.startsWith("#") ? locationHash.slice(1) : locationHash;
9026
+ }
9027
+ function buildNavHashClaims(urls) {
9028
+ const map = /* @__PURE__ */ new Map();
9029
+ for (const url of urls) {
9030
+ const p = navUrlPath(url);
9031
+ const f = navUrlFragment(url);
9032
+ if (!p || f === null) continue;
9033
+ let set = map.get(p);
9034
+ if (!set) {
9035
+ set = /* @__PURE__ */ new Set();
9036
+ map.set(p, set);
9037
+ }
9038
+ set.add(f);
9039
+ }
9040
+ return map;
9041
+ }
9042
+ function navHasMoreSpecificHashMatch(pathname, locationHash, hashClaimsByPath) {
9043
+ const claims = hashClaimsByPath.get(pathname);
9044
+ if (!claims) return false;
9045
+ const h = normalizedLocationHash(locationHash);
9046
+ if (h === "") return false;
9047
+ return claims.has(h);
9048
+ }
9049
+ function pathnameMatchesNavPath(pathname, pathOnly, locationHash, hashClaimsByPath) {
9050
+ const norm = normalizePathname(pathname);
9051
+ const h = normalizedLocationHash(locationHash);
9052
+ if (pathOnly === "/") {
9053
+ if (norm !== "/" || h !== "") return false;
9054
+ return !navHasMoreSpecificHashMatch("/", locationHash, hashClaimsByPath);
9055
+ }
9056
+ if (norm === pathOnly) {
9057
+ return !navHasMoreSpecificHashMatch(pathOnly, locationHash, hashClaimsByPath);
9058
+ }
9059
+ if (pathOnly === "/library") {
9060
+ return norm.startsWith("/library/");
9061
+ }
9062
+ if (pathOnly.startsWith("/library/")) {
9063
+ return norm === pathOnly;
9064
+ }
9065
+ return norm.startsWith(`${pathOnly}/`);
9066
+ }
9067
+ function resolveActiveNavHref(pathname, candidateUrls, options) {
9068
+ const norm = normalizePathname(pathname);
9069
+ const hashClaims = options?.hashClaimsByPath ?? buildNavHashClaims(candidateUrls);
9070
+ const locationHash = options?.locationHash ?? "";
9071
+ let bestHref = null;
9072
+ let bestLen = -1;
9073
+ for (const url of candidateUrls) {
9074
+ const pathOnly = navUrlPath(url);
9075
+ const frag = navUrlFragment(url);
9076
+ if (!pathOnly || pathOnly === "#") continue;
9077
+ let matches = false;
9078
+ if (frag !== null) {
9079
+ const h = normalizedLocationHash(locationHash);
9080
+ if (pathOnly === "/") matches = norm === "/" && h === frag;
9081
+ else if (pathOnly === "/library") matches = norm.startsWith("/library/") && h === frag;
9082
+ else if (pathOnly.startsWith("/library/")) matches = norm === pathOnly && h === frag;
9083
+ else matches = norm === pathOnly && h === frag;
9084
+ } else {
9085
+ matches = pathnameMatchesNavPath(norm, pathOnly, locationHash, hashClaims);
9086
+ }
9087
+ if (matches && pathOnly.length > bestLen) {
9088
+ bestHref = url;
9089
+ bestLen = pathOnly.length;
9090
+ }
9091
+ }
9092
+ return bestHref;
9093
+ }
9094
+ function isNavHrefActive(pathname, url, allNavUrls, options) {
9095
+ const active = resolveActiveNavHref(pathname, allNavUrls, options);
9096
+ if (!active) return false;
9097
+ return navUrlPath(active) === navUrlPath(url) && navUrlFragment(active) === navUrlFragment(url);
9098
+ }
9099
+ function collectNavUrls(items) {
9100
+ const out = [];
9101
+ const walk = (list) => {
9102
+ for (const it of list) {
9103
+ if (typeof it.url === "string" && it.url.length > 0 && it.url !== "#") out.push(it.url);
9104
+ if (Array.isArray(it.children)) walk(it.children);
9105
+ }
9106
+ };
9107
+ walk(items);
9108
+ return out;
9109
+ }
8989
9110
  function Accordion({
8990
9111
  ...props
8991
9112
  }) {
@@ -10531,118 +10652,6 @@ function ContextMenuShortcut({
10531
10652
  }
10532
10653
  );
10533
10654
  }
10534
- function Drawer({
10535
- ...props
10536
- }) {
10537
- return /* @__PURE__ */ jsx(Drawer$1.Root, { "data-slot": "drawer", ...props });
10538
- }
10539
- function DrawerTrigger({
10540
- ...props
10541
- }) {
10542
- return /* @__PURE__ */ jsx(Drawer$1.Trigger, { "data-slot": "drawer-trigger", ...props });
10543
- }
10544
- function DrawerPortal({
10545
- ...props
10546
- }) {
10547
- return /* @__PURE__ */ jsx(Drawer$1.Portal, { "data-slot": "drawer-portal", ...props });
10548
- }
10549
- function DrawerClose({
10550
- ...props
10551
- }) {
10552
- return /* @__PURE__ */ jsx(Drawer$1.Close, { "data-slot": "drawer-close", ...props });
10553
- }
10554
- function DrawerOverlay({
10555
- className,
10556
- ...props
10557
- }) {
10558
- return /* @__PURE__ */ jsx(
10559
- Drawer$1.Overlay,
10560
- {
10561
- "data-slot": "drawer-overlay",
10562
- className: cn(
10563
- "fixed inset-0 z-50 bg-overlay duration-300 ease-out supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
10564
- className
10565
- ),
10566
- ...props
10567
- }
10568
- );
10569
- }
10570
- function DrawerContent({
10571
- className,
10572
- children,
10573
- ...props
10574
- }) {
10575
- return /* @__PURE__ */ jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
10576
- /* @__PURE__ */ jsx(DrawerOverlay, {}),
10577
- /* @__PURE__ */ jsxs(
10578
- Drawer$1.Content,
10579
- {
10580
- "data-slot": "drawer-content",
10581
- className: cn(
10582
- "group/drawer-content fixed z-50 flex h-auto flex-col bg-background text-sm duration-300 ease-out outline-none data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:start-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-e-xl data-[vaul-drawer-direction=left]:border-e data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:end-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-s-xl data-[vaul-drawer-direction=right]:border-s data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm",
10583
- className
10584
- ),
10585
- ...props,
10586
- children: [
10587
- /* @__PURE__ */ jsx("div", { className: "mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
10588
- children
10589
- ]
10590
- }
10591
- )
10592
- ] });
10593
- }
10594
- function DrawerHeader({ className, ...props }) {
10595
- return /* @__PURE__ */ jsx(
10596
- "div",
10597
- {
10598
- "data-slot": "drawer-header",
10599
- className: cn(
10600
- "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-start",
10601
- className
10602
- ),
10603
- ...props
10604
- }
10605
- );
10606
- }
10607
- function DrawerFooter({ className, ...props }) {
10608
- return /* @__PURE__ */ jsx(
10609
- "div",
10610
- {
10611
- "data-slot": "drawer-footer",
10612
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
10613
- ...props
10614
- }
10615
- );
10616
- }
10617
- function DrawerTitle({
10618
- className,
10619
- ...props
10620
- }) {
10621
- return /* @__PURE__ */ jsx(
10622
- Drawer$1.Title,
10623
- {
10624
- "data-slot": "drawer-title",
10625
- className: cn(
10626
- "font-heading text-base font-medium text-foreground",
10627
- className
10628
- ),
10629
- ...props
10630
- }
10631
- );
10632
- }
10633
- function DrawerDescription({
10634
- className,
10635
- ...props
10636
- }) {
10637
- return /* @__PURE__ */ jsx(
10638
- Drawer$1.Description,
10639
- {
10640
- "data-slot": "drawer-description",
10641
- className: cn("text-sm text-muted-foreground", className),
10642
- ...props
10643
- }
10644
- );
10645
- }
10646
10655
  function HoverCard({
10647
10656
  ...props
10648
10657
  }) {
@@ -13417,6 +13426,6 @@ function useCoachMark({
13417
13426
  };
13418
13427
  }
13419
13428
 
13420
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, AvatarInitials, AvatarLeoAssistant, AvatarNotificationCount, AvatarPlusAction, AvatarStatus, AvatarVerified, Badge, BoardCardIconRow, BoardCardTwoLineBlock, BoardNewCardPlaceholder, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, COACH_MARK_FLOW_COMPLETED_EVENT, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxLabel, CoachMark, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnRow, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountSyncer, DATA_LIST_SURFACE_VIEW_TYPES, DATA_LIST_VIEW_REGISTRY, DATA_LIST_VIEW_TILES, DATE_PICKER_ICON_CLASS, DEDICATED_SEARCH_RESULTS_OUTER_CONTENT_CLASSNAME, DEFAULT_DATA_LIST_DISPLAY_OPTIONS, DROPDOWN_MENU_CONTENT_SURFACE_CLASS, DataRowList, DataTable, DataTablePaginated, DataTableToolbar, DatePickerField, DateTextInputField, DedicatedSearchLandingTemplate, DedicatedSearchResultsHeaderChrome, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DragHandleGripIcon, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFilterCard, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerSortCard, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ExportDrawer, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterDateCalendar, FilterTextValueInput, FinderGroupStrip, FinderPanelView, FolderGridView, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GroupsColumn, HoverCard, HoverCardContent, HoverCardTrigger, HubRecordCard, HubTable, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Kbd, KbdGroup, KeyMetrics, KeyMetricsContent, KeyMetricsProvider, LIST_PAGE_SPLIT_HUB_HEIGHT_STYLE, LIST_PAGE_SPLIT_MILLER_COLUMN_PANEL_CLASS, LIST_PAGE_SPLIT_MILLER_DETAIL_PANEL_CLASS, LIST_PAGE_SPLIT_RESIZABLE_HANDLE_CLASS, LIST_PAGE_VIEW_FRAME_GUTTER, LIST_PAGE_VIEW_FRAME_MAX_ICON_GRID, LIST_PAGE_VIEW_FRAME_MAX_WIDE, Label, ListPageBoardCard, ListPageBoardCardAvatar, ListPageBoardCardBadgeRow, ListPageBoardCardBody, ListPageBoardCardHeader, ListPageBoardCardSecondary, ListPageBoardCardTitleRow, ListPageBoardTemplate, ListPageConnectedViewBody, ListPageSplitDetailsPlaceholder, ListPageSplitHubChrome, ListPageTemplate, ListPageTreeColumnHeader, ListPageTreePanelShell, ListPageViewFrame, ListPageViewNotConfigured, LocalBanner, MaskedInput, NestedSecondaryPanelShell, OPERATOR_LABELS, OS_FOLDER_GLYPH_SRC, OUTLINE_TREE_CHEVRON_GUIDE_SPACER_CLASS, OUTLINE_TREE_COLLAPSIBLE_CONTENT_RAIL_CLASS, OUTLINE_TREE_SUB_ROW_SHIFT_CLASS, OsFolderGlyph, OutlineTreeCollapsibleContentRail, OutlineTreeLeafButton, OutlineTreeMenu, OutlineTreeMenuItem, OutlineTreeSub, OutlineTreeSubItem, PageHeader, PaginationBar, PaymentCardFieldsGroup, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ROW_HEIGHT_TILES, RULE_COLORS, RadioGroup, RadioGroupItem, RadioGroupLabel, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectionTileGrid, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Shortcut, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, StatusBadge, SystemBanner, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TablePropertiesDrawer, TablePropertiesDrawerButton, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tip, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToggleSwitch, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, VIEW_TYPES, ViewSegmentedControl, avatarRootVariants, badgeVariants, buttonVariants, chartTooltipKeyboardSyncProps, checkboxVariants, cn, columnsToFieldDefinitions, columnsToFilterFields, composeRefs, conditionalRuleMatchesRow, createListPageEditViewHandler, dataListViewAddShortcut, dataListViewDefinition, dataListViewIcon, dataListViewLabel, dataListViewSelectionTilesForHub, dataListViewTilesForHub, devLog, exxatInputMaskDefaults, exxatMaskPatterns, exxatTimeMaskOptions, formatDateFromDate, formatDateTimeUS, formatDateUS, formatYmdForDisplay, getAllCoachMarkKeys, getConditionalCellBackground, getConditionalRowBackground, getDataListViewRenderKind, isDataListSurfaceViewType, isDataListViewTypeSupported, isEditableTarget, lineClampClass, localDateToYmd, metricTrendAriaQualifier, metricTrendTone, parseRowDateToYmd, radioGroupItemVariants, rafThrottle, resetAllCoachMarks, resetCoachMarkFlow, selectionTileClassNames, selectionTilePreviewClassNames, showsListPageHubMetricsStrip, statusBadgeVariants, tabsListVariants, toggleVariants, useAltKeyLabel, useAppTheme, useCoachMark, useDraggableList, useExxatCustomMask, useExxatDateMDYMask, useExxatMaskedFieldRef, useExxatPhoneMask, useExxatTimeMask, useExxatZipMask, useFormField, useIsMobile, useKeyMetricsContext, useModKeyLabel, useShortcut, useSidebar, useTableState, usesDashboardSurface, usesDataTableComponent, usesToolbarWithFilteredRows, viewSegmentedButtonClass, viewSegmentedToolbarClass, ymdToLocalDate };
13429
+ export { ALL_DATA_LIST_VIEW_TYPES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, AvatarInitials, AvatarLeoAssistant, AvatarNotificationCount, AvatarPlusAction, AvatarStatus, AvatarVerified, Badge, BoardCardIconRow, BoardCardTwoLineBlock, BoardNewCardPlaceholder, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, COACH_MARK_FLOW_COMPLETED_EVENT, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, CheckboxLabel, CoachMark, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnRow, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountSyncer, DATA_LIST_SURFACE_VIEW_TYPES, DATA_LIST_VIEW_REGISTRY, DATA_LIST_VIEW_TILES, DATE_PICKER_ICON_CLASS, DEDICATED_SEARCH_RESULTS_OUTER_CONTENT_CLASSNAME, DEFAULT_DATA_LIST_DISPLAY_OPTIONS, DROPDOWN_MENU_CONTENT_SURFACE_CLASS, DataRowList, DataTable, DataTablePaginated, DataTableToolbar, DatePickerField, DateTextInputField, DedicatedSearchLandingTemplate, DedicatedSearchResultsHeaderChrome, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DragHandleGripIcon, DrawerFilterCard, DrawerSortCard, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ExportDrawer, FULL_HUB_SUPPORTED_VIEWS, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterDateCalendar, FilterTextValueInput, FinderGroupStrip, FinderPanelView, FolderGridView, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GroupsColumn, HoverCard, HoverCardContent, HoverCardTrigger, HubRecordCard, HubTable, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Kbd, KbdGroup, KeyMetrics, KeyMetricsContent, KeyMetricsProvider, LIST_PAGE_SPLIT_HUB_HEIGHT_STYLE, LIST_PAGE_SPLIT_MILLER_COLUMN_PANEL_CLASS, LIST_PAGE_SPLIT_MILLER_DETAIL_PANEL_CLASS, LIST_PAGE_SPLIT_RESIZABLE_HANDLE_CLASS, LIST_PAGE_VIEW_FRAME_GUTTER, LIST_PAGE_VIEW_FRAME_MAX_ICON_GRID, LIST_PAGE_VIEW_FRAME_MAX_WIDE, Label, ListPageBoardCard, ListPageBoardCardAvatar, ListPageBoardCardBadgeRow, ListPageBoardCardBody, ListPageBoardCardHeader, ListPageBoardCardSecondary, ListPageBoardCardTitleRow, ListPageBoardTemplate, ListPageConnectedViewBody, ListPageSplitDetailsPlaceholder, ListPageSplitHubChrome, ListPageTemplate, ListPageTreeColumnHeader, ListPageTreePanelShell, ListPageViewFrame, ListPageViewNotConfigured, LocalBanner, MaskedInput, NestedSecondaryPanelShell, OPERATOR_LABELS, OS_FOLDER_GLYPH_SRC, OUTLINE_TREE_CHEVRON_GUIDE_SPACER_CLASS, OUTLINE_TREE_COLLAPSIBLE_CONTENT_RAIL_CLASS, OUTLINE_TREE_SUB_ROW_SHIFT_CLASS, OsFolderGlyph, OutlineTreeCollapsibleContentRail, OutlineTreeLeafButton, OutlineTreeMenu, OutlineTreeMenuItem, OutlineTreeSub, OutlineTreeSubItem, PRIMARY_HUB_SUPPORTED_VIEWS, PageHeader, PaginationBar, PaymentCardFieldsGroup, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, ROW_HEIGHT_TILES, RULE_COLORS, RadioGroup, RadioGroupItem, RadioGroupLabel, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectionTileGrid, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Shortcut, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, StatusBadge, SystemBanner, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TablePropertiesDrawer, TablePropertiesDrawerButton, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tip, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToggleSwitch, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, VIEW_TYPES, ViewSegmentedControl, avatarRootVariants, badgeVariants, buildNavHashClaims, buttonVariants, chartTooltipKeyboardSyncProps, checkboxVariants, cn, collectNavUrls, columnsToFieldDefinitions, columnsToFilterFields, composeRefs, conditionalRuleMatchesRow, createListPageEditViewHandler, dataListViewAddShortcut, dataListViewDefinition, dataListViewIcon, dataListViewLabel, dataListViewSelectionTilesForHub, dataListViewTilesForHub, devLog, exxatInputMaskDefaults, exxatMaskPatterns, exxatTimeMaskOptions, formatDateFromDate, formatDateTimeUS, formatDateUS, formatYmdForDisplay, getAllCoachMarkKeys, getConditionalCellBackground, getConditionalRowBackground, getDataListViewRenderKind, isDataListSurfaceViewType, isDataListViewTypeSupported, isEditableTarget, isNavHrefActive, lineClampClass, localDateToYmd, metricTrendAriaQualifier, metricTrendTone, navUrlFragment, navUrlPath, normalizePathname, normalizedLocationHash, parseRowDateToYmd, radioGroupItemVariants, rafThrottle, resetAllCoachMarks, resetCoachMarkFlow, resolveActiveNavHref, selectionTileClassNames, selectionTilePreviewClassNames, showsListPageHubMetricsStrip, statusBadgeVariants, tabsListVariants, toggleVariants, useAltKeyLabel, useAppTheme, useCoachMark, useDraggableList, useExxatCustomMask, useExxatDateMDYMask, useExxatMaskedFieldRef, useExxatPhoneMask, useExxatTimeMask, useExxatZipMask, useFormField, useIsMobile, useKeyMetricsContext, useModKeyLabel, useShortcut, useSidebar, useTableState, usesDashboardSurface, usesDataTableComponent, usesToolbarWithFilteredRows, viewSegmentedButtonClass, viewSegmentedToolbarClass, ymdToLocalDate };
13421
13430
  //# sourceMappingURL=index.js.map
13422
13431
  //# sourceMappingURL=index.js.map