@exxatdesignux/ui 0.5.2 → 0.5.3

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 (82) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/consumer-extras/cursor-rules/exxat-data-tables.mdc +8 -6
  3. package/consumer-extras/cursor-rules/exxat-ds-agents.mdc +2 -1
  4. package/consumer-extras/cursor-rules/exxat-hub-supported-views.mdc +54 -0
  5. package/consumer-extras/cursor-rules/exxat-nav-single-active.mdc +31 -0
  6. package/consumer-extras/cursor-skills/exxat-ds-skill/SKILL.md +8 -3
  7. package/consumer-extras/cursor-skills/exxat-ds-skill/references/data-table-pattern.md +15 -5
  8. package/consumer-extras/cursor-skills/exxat-token-economy/SKILL.md +11 -4
  9. package/consumer-extras/handbook/HANDBOOK.md +1 -1
  10. package/consumer-extras/handbook/reference-implementations.md +2 -2
  11. package/consumer-extras/patterns/data-views-pattern.md +6 -0
  12. package/consumer-extras/patterns/hub-supported-views-pattern.md +53 -0
  13. package/dist/components/data-table/index.js +13 -9
  14. package/dist/components/data-table/index.js.map +1 -1
  15. package/dist/components/data-table/pagination.js +13 -9
  16. package/dist/components/data-table/pagination.js.map +1 -1
  17. package/dist/components/data-views/hub-table.d.ts +8 -4
  18. package/dist/components/data-views/hub-table.js +25 -10
  19. package/dist/components/data-views/hub-table.js.map +1 -1
  20. package/dist/components/data-views/index.d.ts +1 -1
  21. package/dist/components/data-views/index.js +25 -10
  22. package/dist/components/data-views/index.js.map +1 -1
  23. package/dist/components/data-views/list-page-connected-view-body.d.ts +1 -1
  24. package/dist/components/data-views/list-page-connected-view-body.js +1 -0
  25. package/dist/components/data-views/list-page-connected-view-body.js.map +1 -1
  26. package/dist/components/table-properties/drawer-button.js +1 -0
  27. package/dist/components/table-properties/drawer-button.js.map +1 -1
  28. package/dist/components/table-properties/drawer.js +1 -0
  29. package/dist/components/table-properties/drawer.js.map +1 -1
  30. package/dist/components/table-properties/index.d.ts +1 -1
  31. package/dist/components/table-properties/index.js +1 -0
  32. package/dist/components/table-properties/index.js.map +1 -1
  33. package/dist/components/templates/index.d.ts +1 -1
  34. package/dist/components/templates/index.js +12 -2
  35. package/dist/components/templates/index.js.map +1 -1
  36. package/dist/components/templates/list-page.d.ts +4 -2
  37. package/dist/components/templates/list-page.js +12 -2
  38. package/dist/components/templates/list-page.js.map +1 -1
  39. package/dist/{data-list-view-registry-CyBoBML4.d.ts → data-list-view-registry-BstmlfQ3.d.ts} +16 -1
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.js +135 -13
  42. package/dist/index.js.map +1 -1
  43. package/dist/lib/data-list-view-registry.d.ts +1 -1
  44. package/dist/lib/data-list-view-registry.js +17 -1
  45. package/dist/lib/data-list-view-registry.js.map +1 -1
  46. package/dist/lib/data-list-view-surface.d.ts +1 -1
  47. package/dist/lib/data-list-view-surface.js +1 -0
  48. package/dist/lib/data-list-view-surface.js.map +1 -1
  49. package/dist/lib/list-page-table-properties.d.ts +1 -1
  50. package/dist/lib/list-page-table-properties.js +1 -0
  51. package/dist/lib/list-page-table-properties.js.map +1 -1
  52. package/dist/lib/nav-active.d.ts +38 -0
  53. package/dist/lib/nav-active.js +104 -0
  54. package/dist/lib/nav-active.js.map +1 -0
  55. package/package.json +1 -1
  56. package/src/components/data-table/index.tsx +25 -17
  57. package/src/components/data-views/hub-table.tsx +9 -3
  58. package/src/components/templates/list-page.tsx +9 -3
  59. package/src/index.ts +1 -0
  60. package/src/lib/data-list-view-registry.ts +31 -0
  61. package/src/lib/nav-active.ts +162 -0
  62. package/template/.claude/skills/exxat-ds-skill/SKILL.md +2 -1
  63. package/template/AGENTS.md +16 -1
  64. package/template/components/columns-client.tsx +3 -2
  65. package/template/components/columns-showcase.tsx +22 -18
  66. package/template/components/exxat-product-logo.tsx +1 -1
  67. package/template/components/library-table.tsx +62 -23
  68. package/template/components/new-library-item-form.tsx +0 -7
  69. package/template/components/product-wordmark.tsx +1 -1
  70. package/template/components/sidebar/app-sidebar.tsx +14 -106
  71. package/template/components/sidebar/secondary-nav.tsx +22 -4
  72. package/template/components/tokens-hub-auxiliary-views.tsx +301 -0
  73. package/template/components/tokens-themes-client.tsx +44 -16
  74. package/template/docs/HANDBOOK.md +1 -1
  75. package/template/docs/data-views-pattern.md +6 -0
  76. package/template/docs/glossary.md +2 -1
  77. package/template/docs/hub-supported-views-pattern.md +53 -0
  78. package/template/docs/reference-implementations.md +2 -2
  79. package/template/lib/full-hub-supported-views.ts +8 -0
  80. package/template/lib/library-supported-views.ts +5 -12
  81. package/template/package.json +1 -0
  82. package/tokens/hooks-index.json +2 -2
@@ -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';
package/dist/index.js CHANGED
@@ -2719,13 +2719,15 @@ function useBulkBarFixedToTableScrollEl(scrollRef, active, fullWidth) {
2719
2719
  const scheduled = rafThrottle(apply);
2720
2720
  const ro = new ResizeObserver(scheduled);
2721
2721
  ro.observe(el);
2722
+ el.addEventListener("scroll", scheduled, { passive: true });
2722
2723
  window.addEventListener("resize", scheduled, { passive: true });
2723
- window.addEventListener("scroll", scheduled, { passive: true, capture: true });
2724
+ window.addEventListener("scroll", scheduled, { passive: true });
2724
2725
  return () => {
2725
2726
  scheduled.cancel();
2726
2727
  ro.disconnect();
2728
+ el.removeEventListener("scroll", scheduled);
2727
2729
  window.removeEventListener("resize", scheduled);
2728
- window.removeEventListener("scroll", scheduled, { capture: true });
2730
+ window.removeEventListener("scroll", scheduled);
2729
2731
  };
2730
2732
  }, [active, fullWidth, scrollRef]);
2731
2733
  return style;
@@ -2892,11 +2894,13 @@ function DataTableInner({
2892
2894
  };
2893
2895
  update();
2894
2896
  const scheduled = rafThrottle(update);
2895
- window.addEventListener("scroll", scheduled, { passive: true, capture: true });
2897
+ wrapEl.addEventListener("scroll", scheduled, { passive: true });
2898
+ window.addEventListener("scroll", scheduled, { passive: true });
2896
2899
  window.addEventListener("resize", scheduled, { passive: true });
2897
2900
  return () => {
2898
2901
  scheduled.cancel();
2899
- window.removeEventListener("scroll", scheduled, { capture: true });
2902
+ wrapEl.removeEventListener("scroll", scheduled);
2903
+ window.removeEventListener("scroll", scheduled);
2900
2904
  window.removeEventListener("resize", scheduled);
2901
2905
  };
2902
2906
  }, [showColumnHeaders, rows.length, displayCols.length]);
@@ -3333,11 +3337,11 @@ function DataTableInner({
3333
3337
  const rowPy = rowHeight === "compact" ? "py-1" : rowHeight === "comfortable" ? "py-4" : "py-2.5";
3334
3338
  const cs = cellStyle(col.key);
3335
3339
  const tdBase = cn(
3336
- `px-3 ${rowPy} align-middle`,
3340
+ `px-3 ${rowPy} align-middle max-w-0`,
3337
3341
  showGridlines && !isEdgePin && "border-e border-border last:border-e-0",
3338
3342
  "border-b border-border group-last/row:border-b-0",
3339
3343
  isPinned && [
3340
- "z-20 pinned-cell",
3344
+ "z-20 pinned-cell relative",
3341
3345
  "bg-dt-row-bg",
3342
3346
  "group-data-[state=selected]/row:bg-dt-row-selected",
3343
3347
  "group-hover/row:bg-dt-row-hover",
@@ -3387,17 +3391,17 @@ function DataTableInner({
3387
3391
  wrap && "[&_.truncate]:!whitespace-normal [&_.truncate]:!overflow-visible [&_.truncate]:!text-clip"
3388
3392
  ),
3389
3393
  style: tdStyle,
3390
- children: col.cell(row, {
3394
+ children: /* @__PURE__ */ jsx("div", { className: "min-w-0 overflow-hidden", children: col.cell(row, {
3391
3395
  rowIndex,
3392
3396
  selected: isSelected,
3393
3397
  onSelect: (checked) => checked ? setSelected((prev) => /* @__PURE__ */ new Set([...prev, rowId])) : toggleRow(rowId)
3394
- })
3398
+ }) })
3395
3399
  },
3396
3400
  col.key
3397
3401
  );
3398
3402
  }
3399
3403
  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);
3404
+ 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
3405
  })
3402
3406
  },
3403
3407
  String(rowId)
@@ -3795,6 +3799,22 @@ var BY_VALUE = new Map(
3795
3799
  DEFINITIONS.map((d) => [d.value, d])
3796
3800
  );
3797
3801
  var DATA_LIST_VIEW_REGISTRY = DEFINITIONS;
3802
+ var PRIMARY_HUB_SUPPORTED_VIEWS = [
3803
+ "table",
3804
+ "list",
3805
+ "board",
3806
+ "dashboard"
3807
+ ];
3808
+ var FULL_HUB_SUPPORTED_VIEWS = [
3809
+ "table",
3810
+ "list",
3811
+ "board",
3812
+ "dashboard",
3813
+ "folder",
3814
+ "panel",
3815
+ "tree-panel"
3816
+ ];
3817
+ var ALL_DATA_LIST_VIEW_TYPES = DATA_LIST_VIEW_REGISTRY.map((d) => d.value);
3798
3818
  function dataListViewDefinition(view) {
3799
3819
  const def = BY_VALUE.get(view);
3800
3820
  if (!def) {
@@ -6157,7 +6177,7 @@ function HubTable({
6157
6177
  columns,
6158
6178
  view,
6159
6179
  onViewChange,
6160
- supportedViewTypes,
6180
+ supportedViewTypes: supportedViewTypesProp,
6161
6181
  hubLabel,
6162
6182
  lifecycleTabLabel,
6163
6183
  searchAriaLabel,
@@ -6193,6 +6213,7 @@ function HubTable({
6193
6213
  boardColumnCountBadgeClassName,
6194
6214
  boardEmptyColumnLabel
6195
6215
  }) {
6216
+ const supportedViewTypes = supportedViewTypesProp ?? FULL_HUB_SUPPORTED_VIEWS;
6196
6217
  const filterFields = React10.useMemo(() => columnsToFilterFields(columns), [columns]);
6197
6218
  const fieldDefinitions = React10.useMemo(() => columnsToFieldDefinitions(columns), [columns]);
6198
6219
  const resolveColumnLabel = React10.useCallback(
@@ -8331,8 +8352,8 @@ function ListPageTemplate({
8331
8352
  supportedViewTypes
8332
8353
  }) {
8333
8354
  const addableViewTypes = React10.useMemo(() => {
8334
- if (!supportedViewTypes || supportedViewTypes.length === 0) return VIEW_TYPES;
8335
- const allowed = new Set(supportedViewTypes);
8355
+ const allowlist = supportedViewTypes && supportedViewTypes.length > 0 ? supportedViewTypes : FULL_HUB_SUPPORTED_VIEWS;
8356
+ const allowed = new Set(allowlist);
8336
8357
  return VIEW_TYPES.filter((v) => allowed.has(v.type));
8337
8358
  }, [supportedViewTypes]);
8338
8359
  const controlled = tabsProp !== void 0 && onTabsChange !== void 0 && activeTabIdProp !== void 0 && onActiveTabChange !== void 0;
@@ -8986,6 +9007,107 @@ var DEDICATED_SEARCH_RESULTS_OUTER_CONTENT_CLASSNAME = "border-t border-border/4
8986
9007
  function DedicatedSearchResultsHeaderChrome({ children, className }) {
8987
9008
  return /* @__PURE__ */ jsx("div", { className: cn("border-b border-border/50 bg-muted/15", className), children });
8988
9009
  }
9010
+
9011
+ // src/lib/nav-active.ts
9012
+ function normalizePathname(pathname) {
9013
+ if (pathname.length > 1 && pathname.endsWith("/")) return pathname.slice(0, -1);
9014
+ return pathname;
9015
+ }
9016
+ function navUrlPath(url) {
9017
+ const hash = url.indexOf("#");
9018
+ return hash >= 0 ? url.slice(0, hash) : url;
9019
+ }
9020
+ function navUrlFragment(url) {
9021
+ const i = url.indexOf("#");
9022
+ return i >= 0 ? url.slice(i + 1) : null;
9023
+ }
9024
+ function normalizedLocationHash(locationHash) {
9025
+ if (!locationHash) return "";
9026
+ return locationHash.startsWith("#") ? locationHash.slice(1) : locationHash;
9027
+ }
9028
+ function buildNavHashClaims(urls) {
9029
+ const map = /* @__PURE__ */ new Map();
9030
+ for (const url of urls) {
9031
+ const p = navUrlPath(url);
9032
+ const f = navUrlFragment(url);
9033
+ if (!p || f === null) continue;
9034
+ let set = map.get(p);
9035
+ if (!set) {
9036
+ set = /* @__PURE__ */ new Set();
9037
+ map.set(p, set);
9038
+ }
9039
+ set.add(f);
9040
+ }
9041
+ return map;
9042
+ }
9043
+ function navHasMoreSpecificHashMatch(pathname, locationHash, hashClaimsByPath) {
9044
+ const claims = hashClaimsByPath.get(pathname);
9045
+ if (!claims) return false;
9046
+ const h = normalizedLocationHash(locationHash);
9047
+ if (h === "") return false;
9048
+ return claims.has(h);
9049
+ }
9050
+ function pathnameMatchesNavPath(pathname, pathOnly, locationHash, hashClaimsByPath) {
9051
+ const norm = normalizePathname(pathname);
9052
+ const h = normalizedLocationHash(locationHash);
9053
+ if (pathOnly === "/") {
9054
+ if (norm !== "/" || h !== "") return false;
9055
+ return !navHasMoreSpecificHashMatch("/", locationHash, hashClaimsByPath);
9056
+ }
9057
+ if (norm === pathOnly) {
9058
+ return !navHasMoreSpecificHashMatch(pathOnly, locationHash, hashClaimsByPath);
9059
+ }
9060
+ if (pathOnly === "/library") {
9061
+ return norm.startsWith("/library/");
9062
+ }
9063
+ if (pathOnly.startsWith("/library/")) {
9064
+ return norm === pathOnly;
9065
+ }
9066
+ return norm.startsWith(`${pathOnly}/`);
9067
+ }
9068
+ function resolveActiveNavHref(pathname, candidateUrls, options) {
9069
+ const norm = normalizePathname(pathname);
9070
+ const hashClaims = options?.hashClaimsByPath ?? buildNavHashClaims(candidateUrls);
9071
+ const locationHash = options?.locationHash ?? "";
9072
+ let bestHref = null;
9073
+ let bestLen = -1;
9074
+ for (const url of candidateUrls) {
9075
+ const pathOnly = navUrlPath(url);
9076
+ const frag = navUrlFragment(url);
9077
+ if (!pathOnly || pathOnly === "#") continue;
9078
+ let matches = false;
9079
+ if (frag !== null) {
9080
+ const h = normalizedLocationHash(locationHash);
9081
+ if (pathOnly === "/") matches = norm === "/" && h === frag;
9082
+ else if (pathOnly === "/library") matches = norm.startsWith("/library/") && h === frag;
9083
+ else if (pathOnly.startsWith("/library/")) matches = norm === pathOnly && h === frag;
9084
+ else matches = norm === pathOnly && h === frag;
9085
+ } else {
9086
+ matches = pathnameMatchesNavPath(norm, pathOnly, locationHash, hashClaims);
9087
+ }
9088
+ if (matches && pathOnly.length > bestLen) {
9089
+ bestHref = url;
9090
+ bestLen = pathOnly.length;
9091
+ }
9092
+ }
9093
+ return bestHref;
9094
+ }
9095
+ function isNavHrefActive(pathname, url, allNavUrls, options) {
9096
+ const active = resolveActiveNavHref(pathname, allNavUrls, options);
9097
+ if (!active) return false;
9098
+ return navUrlPath(active) === navUrlPath(url) && navUrlFragment(active) === navUrlFragment(url);
9099
+ }
9100
+ function collectNavUrls(items) {
9101
+ const out = [];
9102
+ const walk = (list) => {
9103
+ for (const it of list) {
9104
+ if (typeof it.url === "string" && it.url.length > 0 && it.url !== "#") out.push(it.url);
9105
+ if (Array.isArray(it.children)) walk(it.children);
9106
+ }
9107
+ };
9108
+ walk(items);
9109
+ return out;
9110
+ }
8989
9111
  function Accordion({
8990
9112
  ...props
8991
9113
  }) {
@@ -13417,6 +13539,6 @@ function useCoachMark({
13417
13539
  };
13418
13540
  }
13419
13541
 
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 };
13542
+ 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, 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, 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
13543
  //# sourceMappingURL=index.js.map
13422
13544
  //# sourceMappingURL=index.js.map