@mastra/playground-ui 64.0.0-alpha.8 → 64.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 (155) hide show
  1. package/dist/combobox-BNlVCFgY.cjs +718 -0
  2. package/dist/combobox-BNlVCFgY.cjs.map +1 -0
  3. package/dist/combobox-Bw13EcK0.js +676 -0
  4. package/dist/combobox-Bw13EcK0.js.map +1 -0
  5. package/dist/{combobox-styles-B3jftCXY.js → combobox-styles-Dr66ofEp.js} +2 -2
  6. package/dist/{combobox-styles-B3jftCXY.js.map → combobox-styles-Dr66ofEp.js.map} +1 -1
  7. package/dist/components/Combobox.cjs.js +22 -1
  8. package/dist/components/Combobox.cjs.js.map +1 -1
  9. package/dist/components/Combobox.es.js +2 -2
  10. package/dist/components/DataList.cjs.js +15 -17
  11. package/dist/components/DataList.cjs.js.map +1 -1
  12. package/dist/components/DataList.es.js +4 -5
  13. package/dist/components/DataList.es.js.map +1 -1
  14. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  15. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  16. package/dist/components/FilterBar.es.js +3 -3
  17. package/dist/components/LogsDataList.cjs.js +5 -2
  18. package/dist/components/LogsDataList.cjs.js.map +1 -1
  19. package/dist/components/LogsDataList.es.js +5 -2
  20. package/dist/components/LogsDataList.es.js.map +1 -1
  21. package/dist/components/Meter.cjs.js +172 -0
  22. package/dist/components/Meter.cjs.js.map +1 -0
  23. package/dist/components/Meter.d.ts +2 -0
  24. package/dist/components/Meter.es.js +167 -0
  25. package/dist/components/Meter.es.js.map +1 -0
  26. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  27. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  28. package/dist/components/PropertyFilter.cjs.js +1 -1
  29. package/dist/components/PropertyFilter.es.js +1 -1
  30. package/dist/components/SavedViews.es.js +1 -1
  31. package/dist/components/Table.cjs.js +11 -1
  32. package/dist/components/Table.cjs.js.map +1 -1
  33. package/dist/components/Table.es.js +11 -1
  34. package/dist/components/Table.es.js.map +1 -1
  35. package/dist/{data-list-top-DSr_ocKA.js → data-list-DdCZZctL.js} +332 -5
  36. package/dist/data-list-DdCZZctL.js.map +1 -0
  37. package/dist/{data-list-top-ByT2Mo77.cjs → data-list-ecHsw-zr.cjs} +339 -13
  38. package/dist/data-list-ecHsw-zr.cjs.map +1 -0
  39. package/dist/{data-list-skeleton-B_SXAeE0.js → data-list-skeleton-CGKlcoiI.js} +2 -2
  40. package/dist/{data-list-skeleton-B_SXAeE0.js.map → data-list-skeleton-CGKlcoiI.js.map} +1 -1
  41. package/dist/{data-list-skeleton-BqC9Gggi.cjs → data-list-skeleton-DGMTqeNP.cjs} +6 -6
  42. package/dist/{data-list-skeleton-BqC9Gggi.cjs.map → data-list-skeleton-DGMTqeNP.cjs.map} +1 -1
  43. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -1
  44. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  45. package/dist/domains/chat/tools/badges/workflow-badge.es.js +2 -1
  46. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  47. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
  48. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  49. package/dist/domains/logs/components/logs-list-view.es.js +3 -2
  50. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  51. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  52. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  53. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  54. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  55. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  56. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  57. package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
  58. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  59. package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
  60. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  61. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
  62. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  63. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
  64. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  65. package/dist/domains/traces/components/trace-columns-menu.cjs.js +10 -2
  66. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  67. package/dist/domains/traces/components/trace-columns-menu.es.js +10 -2
  68. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  69. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -1
  70. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  71. package/dist/domains/traces/components/trace-data-panel.es.js +2 -1
  72. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  73. package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
  74. package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +2 -0
  75. package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -1
  76. package/dist/domains/traces/components/traces-list-view-adapter.es.js +2 -0
  77. package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -1
  78. package/dist/domains/traces/components/traces-list-view.cjs.js +13 -5
  79. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  80. package/dist/domains/traces/components/traces-list-view.es.js +12 -4
  81. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  82. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
  83. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  84. package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
  85. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  86. package/dist/domains/traces/trace-list-columns.cjs.js +12 -4
  87. package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
  88. package/dist/domains/traces/trace-list-columns.es.js +12 -4
  89. package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
  90. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  91. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  92. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  93. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  94. package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
  95. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  96. package/dist/ee/signals/components/entity-index-list.es.js +3 -1
  97. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  98. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +3 -1
  99. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  100. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +3 -1
  101. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  102. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  103. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  104. package/dist/{filter-bar-chip-BAqmNIeE.js → filter-bar-chip-BarAq1S2.js} +2 -2
  105. package/dist/{filter-bar-chip-BAqmNIeE.js.map → filter-bar-chip-BarAq1S2.js.map} +1 -1
  106. package/dist/layout/tabbed-container.cjs.js +2 -2
  107. package/dist/layout/tabbed-container.es.js +2 -2
  108. package/dist/{logs-data-list-CoER2Hst.js → logs-data-list-DBJINzIL.js} +2 -3
  109. package/dist/{logs-data-list-CoER2Hst.js.map → logs-data-list-DBJINzIL.js.map} +1 -1
  110. package/dist/{logs-data-list-DRR6cMgl.cjs → logs-data-list-IWZgMCKG.cjs} +21 -22
  111. package/dist/{logs-data-list-DRR6cMgl.cjs.map → logs-data-list-IWZgMCKG.cjs.map} +1 -1
  112. package/dist/{metrics-stacked-bar-chart-BijHfnOd.cjs → metrics-stacked-bar-chart-BofJ8NDc.cjs} +45 -3
  113. package/dist/metrics-stacked-bar-chart-BofJ8NDc.cjs.map +1 -0
  114. package/dist/{metrics-stacked-bar-chart-CdcENBLD.js → metrics-stacked-bar-chart-DcxHznKw.js} +47 -5
  115. package/dist/metrics-stacked-bar-chart-DcxHznKw.js.map +1 -0
  116. package/dist/src/domains/traces/components/traces-list-view.d.ts +4 -0
  117. package/dist/src/domains/traces/trace-list-columns.d.ts +1 -1
  118. package/dist/src/ds/components/Combobox/combobox-parts.d.ts +102 -0
  119. package/dist/src/ds/components/Combobox/combobox.d.ts +17 -3
  120. package/dist/src/ds/components/Combobox/index.d.ts +1 -0
  121. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +7 -0
  122. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +2 -1
  123. package/dist/src/ds/components/Meter/index.d.ts +2 -0
  124. package/dist/src/ds/components/Meter/meter-context.d.ts +6 -0
  125. package/dist/src/ds/components/Meter/meter-key-row.d.ts +6 -0
  126. package/dist/src/ds/components/Meter/meter-root.d.ts +14 -0
  127. package/dist/src/ds/components/Meter/meter-segment.d.ts +5 -0
  128. package/dist/src/ds/components/Meter/meter-source.d.ts +6 -0
  129. package/dist/src/ds/components/Meter/meter.d.ts +6 -0
  130. package/dist/src/ds/components/MetricsStackedBarChart/metrics-stacked-bar-chart.d.ts +1 -0
  131. package/dist/src/ds/components/Table/Table.d.ts +4 -2
  132. package/dist/style.css +196 -2
  133. package/dist/{traces-data-list-B0-fbEpk.cjs → traces-data-list-BH24OVKh.cjs} +23 -19
  134. package/dist/traces-data-list-BH24OVKh.cjs.map +1 -0
  135. package/dist/{traces-data-list-0GcqZUbe.js → traces-data-list-BOJB37dV.js} +8 -4
  136. package/dist/traces-data-list-BOJB37dV.js.map +1 -0
  137. package/package.json +10 -10
  138. package/dist/combobox-DlKD-Q3M.js +0 -208
  139. package/dist/combobox-DlKD-Q3M.js.map +0 -1
  140. package/dist/combobox-VHtZQcl9.cjs +0 -229
  141. package/dist/combobox-VHtZQcl9.cjs.map +0 -1
  142. package/dist/data-list-DUfXIhyC.cjs +0 -142
  143. package/dist/data-list-DUfXIhyC.cjs.map +0 -1
  144. package/dist/data-list-DXQY_iQW.js +0 -138
  145. package/dist/data-list-DXQY_iQW.js.map +0 -1
  146. package/dist/data-list-spacer-ByA4ce2a.js +0 -209
  147. package/dist/data-list-spacer-ByA4ce2a.js.map +0 -1
  148. package/dist/data-list-spacer-tQaBaum4.cjs +0 -218
  149. package/dist/data-list-spacer-tQaBaum4.cjs.map +0 -1
  150. package/dist/data-list-top-ByT2Mo77.cjs.map +0 -1
  151. package/dist/data-list-top-DSr_ocKA.js.map +0 -1
  152. package/dist/metrics-stacked-bar-chart-BijHfnOd.cjs.map +0 -1
  153. package/dist/metrics-stacked-bar-chart-CdcENBLD.js.map +0 -1
  154. package/dist/traces-data-list-0GcqZUbe.js.map +0 -1
  155. package/dist/traces-data-list-B0-fbEpk.cjs.map +0 -1
@@ -1,229 +0,0 @@
1
- 'use strict';
2
-
3
- const jsxRuntime = require('react/jsx-runtime');
4
- const combobox = require('@base-ui/react/combobox');
5
- const lucideReact = require('lucide-react');
6
- const React = require('react');
7
- const comboboxStyles = require('./combobox-styles-BK2nGTNl.cjs');
8
- const Button = require('./Button-DH1aTzbs.cjs');
9
- const fieldControlAria = require('./field-control-aria-WzMGs0A4.cjs');
10
- const fieldErrorId = require('./field-error-id-Dbe6IInA.cjs');
11
- const scrollArea = require('./scroll-area-CAY0DNQj.cjs');
12
- const primitives_floating = require('./primitives/floating.cjs.js');
13
- const primitives_fluidMenu = require('./primitives/fluid-menu.cjs.js');
14
- const primitives_formElement = require('./primitives/form-element.cjs.js');
15
- const primitives_passwordManagerAutofill = require('./primitives/password-manager-autofill.cjs.js');
16
- const primitives_portalContainer = require('./primitives/portal-container.cjs.js');
17
- const utils_cn = require('./cn-DlOJCxrS.cjs');
18
-
19
- function _interopNamespaceDefault(e) {
20
- const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
21
- if (e) {
22
- for (const k in e) {
23
- if (k !== 'default') {
24
- const d = Object.getOwnPropertyDescriptor(e, k);
25
- Object.defineProperty(n, k, d.get ? d : {
26
- enumerable: true,
27
- get: () => e[k]
28
- });
29
- }
30
- }
31
- }
32
- n.default = e;
33
- return Object.freeze(n);
34
- }
35
-
36
- const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
37
-
38
- const EMPTY_VALUES = [];
39
- const EMPTY_OPTIONS = [];
40
- function isMultipleCombobox(props) {
41
- return props.multiple === true;
42
- }
43
- const ComboboxItem = React__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Item, { ref: primitives_fluidMenu.useFluidMenuItemRef(ref), ...props }));
44
- ComboboxItem.displayName = "ComboboxItem";
45
- function ComboboxOptionText({ option }) {
46
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: comboboxStyles.comboboxStyles.optionText, children: [
47
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: comboboxStyles.comboboxStyles.optionLabel, children: option.label }),
48
- option.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: comboboxStyles.comboboxStyles.optionDescription, children: option.description })
49
- ] });
50
- }
51
- function Combobox(props) {
52
- const {
53
- options,
54
- placeholder = isMultipleCombobox(props) ? "Select options..." : "Select option...",
55
- searchPlaceholder = "Search...",
56
- emptyText = "No option found.",
57
- className,
58
- disabled = false,
59
- variant = "default",
60
- size = "md",
61
- open,
62
- onOpenChange,
63
- container,
64
- id,
65
- "aria-label": ariaLabel,
66
- "aria-describedby": ariaDescribedBy,
67
- align = "start",
68
- showChevron = true,
69
- iconOnlyValue = false,
70
- allowCustomValue = false,
71
- onInputValueChange,
72
- error,
73
- name
74
- } = props;
75
- const multiple = isMultipleCombobox(props);
76
- const clearLabel = multiple ? props.clearLabel : void 0;
77
- const field = fieldControlAria.useFieldAriaIds();
78
- const generatedName = React__namespace.useId();
79
- const errorName = name ?? generatedName;
80
- const describedBy = [ariaDescribedBy, error ? fieldErrorId.fieldErrorId(errorName) : void 0].filter(Boolean).join(" ") || void 0;
81
- const [inputValue, setInputValue] = React__namespace.useState("");
82
- const customValue = inputValue.trim();
83
- const customOption = !multiple && allowCustomValue && customValue && !options.some((option) => option.value === customValue) ? { label: `Use “${customValue}”`, value: customValue } : void 0;
84
- const displayedOptions = customOption ? [customOption, ...options] : options;
85
- const selectedValues = multiple ? props.value ?? EMPTY_VALUES : EMPTY_VALUES;
86
- const selectedValueSet = React__namespace.useMemo(() => new Set(selectedValues), [selectedValues]);
87
- const selectedOption = multiple ? null : options.find((option) => option.value === props.value) ?? null;
88
- const selectedOptions = multiple ? options.filter((option) => selectedValueSet.has(option.value)) : EMPTY_OPTIONS;
89
- const triggerText = selectedOptions.length === 0 ? placeholder : `${selectedOptions.length} selected`;
90
- const clearSelection = () => {
91
- if (isMultipleCombobox(props)) props.onValueChange?.([]);
92
- };
93
- const resolvedContainer = primitives_portalContainer.usePortalContainer(container);
94
- const { contains } = combobox.Combobox.useFilter();
95
- const filterOption = React__namespace.useCallback(
96
- (option, query) => contains(option.label, query) || (option.keywords?.some((keyword) => contains(keyword, query)) ?? false),
97
- [contains]
98
- );
99
- const menu = primitives_fluidMenu.useFluidMenu();
100
- const iconOnly = Button.isIconButtonSize(size);
101
- const comboboxContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
- /* @__PURE__ */ jsxRuntime.jsxs(
103
- combobox.Combobox.Trigger,
104
- {
105
- id,
106
- "aria-label": ariaLabel ?? (id || field ? void 0 : multiple ? "Select options" : "Select option"),
107
- ...fieldControlAria.keepOwnAccessibleName({ "aria-label": ariaLabel }),
108
- ...primitives_formElement.deprecatedErrorAria(Boolean(error)),
109
- "aria-describedby": describedBy,
110
- "data-shape": iconOnly ? "icon" : void 0,
111
- className: comboboxStyles.comboboxTriggerClass({
112
- variant,
113
- size,
114
- className: utils_cn.cn(iconOnlyValue && "w-auto px-2.5", className)
115
- }),
116
- children: [
117
- iconOnly ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: multiple ? triggerText : /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Value, { placeholder }) }) : multiple ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("truncate", selectedOptions.length === 0 && comboboxStyles.comboboxStyles.placeholder), children: triggerText }) : (
118
- // Keep truncation off the outer wrapper so start adornments are not clipped.
119
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: utils_cn.cn("flex min-w-0 flex-1 items-center", iconOnlyValue ? "justify-center" : "gap-2"), children: [
120
- selectedOption?.start,
121
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: selectedOption?.displayLabel ?? /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Value, { placeholder }) })
122
- ] })
123
- ),
124
- showChevron ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsUpDown, { className: utils_cn.cn(comboboxStyles.comboboxStyles.chevron, (iconOnly || iconOnlyValue) && "ml-0") }) }) : null
125
- ]
126
- }
127
- ),
128
- /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Portal, { container: resolvedContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
129
- combobox.Combobox.Positioner,
130
- {
131
- align,
132
- sideOffset: 4,
133
- positionMethod: primitives_floating.FLOATING_POSITION_METHOD,
134
- className: comboboxStyles.comboboxStyles.positioner,
135
- children: /* @__PURE__ */ jsxRuntime.jsxs(combobox.Combobox.Popup, { className: comboboxStyles.comboboxStyles.popup, children: [
136
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: comboboxStyles.comboboxStyles.searchContainer, children: [
137
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: comboboxStyles.comboboxStyles.searchIcon }),
138
- /* @__PURE__ */ jsxRuntime.jsx(
139
- combobox.Combobox.Input,
140
- {
141
- className: comboboxStyles.comboboxStyles.searchInput,
142
- placeholder: searchPlaceholder,
143
- ...primitives_passwordManagerAutofill.passwordManagerOptOutProps
144
- }
145
- )
146
- ] }),
147
- /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Empty, { className: comboboxStyles.comboboxStyles.empty, children: emptyText }),
148
- /* @__PURE__ */ jsxRuntime.jsx(scrollArea.ScrollArea, { maxHeight: "var(--spacing-dropdown)", children: /* @__PURE__ */ jsxRuntime.jsx(scrollArea.ScrollAreaViewport, { className: "scroll-py-8", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: menu.containerClassName, ...menu.getContainerProps({}), children: /* @__PURE__ */ jsxRuntime.jsx(primitives_fluidMenu.FluidMenuItems, { menu, children: /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.List, { className: comboboxStyles.comboboxStyles.list, children: (option) => {
149
- const isSelected = selectedValueSet.has(option.value);
150
- return /* @__PURE__ */ jsxRuntime.jsx(ComboboxItem, { value: option, className: comboboxStyles.comboboxItemClass({ multiple }), children: multiple ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
151
- option.start,
152
- /* @__PURE__ */ jsxRuntime.jsx(ComboboxOptionText, { option }),
153
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: comboboxStyles.comboboxStyles.itemRightSlot, children: [
154
- option.end ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: comboboxStyles.comboboxStyles.optionEnd, children: option.end }) : null,
155
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: comboboxStyles.comboboxStyles.checkContainer, children: isSelected ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: comboboxStyles.comboboxStyles.checkIcon }) : null })
156
- ] })
157
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
158
- option.start,
159
- /* @__PURE__ */ jsxRuntime.jsx(ComboboxOptionText, { option }),
160
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: comboboxStyles.comboboxStyles.itemRightSlot, children: [
161
- option.end ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: comboboxStyles.comboboxStyles.optionEnd, children: option.end }) : null,
162
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: comboboxStyles.comboboxStyles.checkContainer, children: /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: comboboxStyles.comboboxStyles.checkIcon }) }) })
163
- ] })
164
- ] }) }, option.value);
165
- } }) }) }) }) }),
166
- selectedValues.length > 0 && clearLabel ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("border-t", "border-border", "p-1"), children: /* @__PURE__ */ jsxRuntime.jsx(
167
- Button.Button,
168
- {
169
- type: "button",
170
- variant: "destructive-ghost",
171
- size: "sm",
172
- className: "w-full justify-start",
173
- onClick: clearSelection,
174
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {}),
175
- children: clearLabel
176
- }
177
- ) }) : null
178
- ] })
179
- }
180
- ) })
181
- ] });
182
- const root = multiple ? /* @__PURE__ */ jsxRuntime.jsx(
183
- combobox.Combobox.Root,
184
- {
185
- multiple: true,
186
- autoHighlight: true,
187
- items: displayedOptions,
188
- filter: filterOption,
189
- value: selectedOptions,
190
- onValueChange: (items) => props.onValueChange?.((items ?? []).map((item) => item.value)),
191
- disabled,
192
- open,
193
- onOpenChange,
194
- children: comboboxContent
195
- }
196
- ) : /* @__PURE__ */ jsxRuntime.jsx(
197
- combobox.Combobox.Root,
198
- {
199
- autoHighlight: true,
200
- items: displayedOptions,
201
- filter: filterOption,
202
- value: selectedOption,
203
- inputValue,
204
- onInputValueChange: (value) => {
205
- setInputValue(value);
206
- onInputValueChange?.(value);
207
- },
208
- onValueChange: (item) => {
209
- if (item) {
210
- props.onValueChange?.(item.value);
211
- setInputValue("");
212
- onInputValueChange?.("");
213
- }
214
- },
215
- disabled,
216
- open,
217
- onOpenChange,
218
- children: comboboxContent
219
- }
220
- );
221
- if (!error) return root;
222
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: comboboxStyles.comboboxStyles.root, children: [
223
- root,
224
- /* @__PURE__ */ jsxRuntime.jsx(fieldErrorId.FieldBlock.ErrorMsg, { name: errorName, children: error })
225
- ] });
226
- }
227
-
228
- exports.Combobox = Combobox;
229
- //# sourceMappingURL=combobox-VHtZQcl9.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"combobox-VHtZQcl9.cjs","sources":["../src/ds/components/Combobox/combobox.tsx"],"sourcesContent":["import { Combobox as BaseCombobox } from '@base-ui/react/combobox';\nimport { Check, ChevronsUpDown, Search, X } from 'lucide-react';\nimport * as React from 'react';\nimport { comboboxItemClass, comboboxStyles, comboboxTriggerClass } from './combobox-styles';\nimport type { ComboboxVariant } from './combobox-styles';\nimport { Button, isIconButtonSize } from '@/ds/components/Button/Button';\nimport type { ButtonSize } from '@/ds/components/Button/Button';\nimport { keepOwnAccessibleName, useFieldAriaIds } from '@/ds/components/Field/field-control-aria';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks/block/field-block';\nimport { fieldErrorId } from '@/ds/components/FormFieldBlocks/block/field-error-id';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { deprecatedErrorAria } from '@/ds/primitives/form-element';\nimport { passwordManagerOptOutProps } from '@/ds/primitives/password-manager-autofill';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { cn } from '@/lib/utils';\n\nexport type { ComboboxVariant } from './combobox-styles';\n\nexport type ComboboxOption = {\n label: string;\n value: string;\n description?: string;\n displayLabel?: React.ReactNode;\n start?: React.ReactNode;\n end?: React.ReactNode;\n /** Extra terms the search matches besides `label` (aliases, ids, a provider name). Never displayed. */\n keywords?: readonly string[];\n};\n\ntype ComboboxSharedProps = {\n options: ComboboxOption[];\n placeholder?: React.ReactNode;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n disabled?: boolean;\n variant?: ComboboxVariant;\n /** Icon sizes (`icon-*`) render a chevron-only trigger; pass `aria-label` to name it. */\n size?: ButtonSize;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n container?: HTMLElement | ShadowRoot | null | React.RefObject<HTMLElement | ShadowRoot | null>;\n id?: string;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n /** Which edge of the trigger the popup lines up with. `end` opens it leftwards (e.g. an icon trigger at the end of a row). */\n align?: 'start' | 'center' | 'end';\n showChevron?: boolean;\n iconOnlyValue?: boolean;\n allowCustomValue?: boolean;\n /** Called with the search input text as it changes (and with `''` after a single-mode selection resets it). */\n onInputValueChange?: (value: string) => void;\n /** @deprecated Wrap the combobox in `<Field invalid>` with a `FieldError`. */\n error?: string;\n /** @deprecated Only keyed the `error` message id; a `Field` links its error without one. */\n name?: string;\n};\n\nexport type ComboboxSingleProps = ComboboxSharedProps & {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport type ComboboxMultipleProps = ComboboxSharedProps & {\n multiple: true;\n value?: readonly string[];\n onValueChange?: (value: string[]) => void;\n clearLabel?: string;\n};\n\nexport type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps;\n\nconst EMPTY_VALUES: string[] = [];\nconst EMPTY_OPTIONS: ComboboxOption[] = [];\n\nfunction isMultipleCombobox(props: ComboboxProps): props is ComboboxMultipleProps {\n return props.multiple === true;\n}\n\nconst ComboboxItem = React.forwardRef<HTMLDivElement, BaseCombobox.Item.Props>((props, ref) => (\n <BaseCombobox.Item ref={useFluidMenuItemRef(ref)} {...props} />\n));\nComboboxItem.displayName = 'ComboboxItem';\n\nfunction ComboboxOptionText({ option }: { option: ComboboxOption }) {\n return (\n <span className={comboboxStyles.optionText}>\n <span className={comboboxStyles.optionLabel}>{option.label}</span>\n {option.description && <span className={comboboxStyles.optionDescription}>{option.description}</span>}\n </span>\n );\n}\n\nexport function Combobox(props: ComboboxProps) {\n const {\n options,\n placeholder = isMultipleCombobox(props) ? 'Select options...' : 'Select option...',\n searchPlaceholder = 'Search...',\n emptyText = 'No option found.',\n className,\n disabled = false,\n variant = 'default',\n size = 'md',\n open,\n onOpenChange,\n container,\n id,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n align = 'start',\n showChevron = true,\n iconOnlyValue = false,\n allowCustomValue = false,\n onInputValueChange,\n error,\n name,\n } = props;\n const multiple = isMultipleCombobox(props);\n const clearLabel = multiple ? props.clearLabel : undefined;\n const field = useFieldAriaIds();\n const generatedName = React.useId();\n const errorName = name ?? generatedName;\n const describedBy =\n [ariaDescribedBy, error ? fieldErrorId(errorName) : undefined].filter(Boolean).join(' ') || undefined;\n const [inputValue, setInputValue] = React.useState('');\n const customValue = inputValue.trim();\n const customOption =\n !multiple && allowCustomValue && customValue && !options.some(option => option.value === customValue)\n ? { label: `Use “${customValue}”`, value: customValue }\n : undefined;\n const displayedOptions = customOption ? [customOption, ...options] : options;\n const selectedValues = multiple ? (props.value ?? EMPTY_VALUES) : EMPTY_VALUES;\n const selectedValueSet = React.useMemo(() => new Set(selectedValues), [selectedValues]);\n const selectedOption = multiple ? null : (options.find(option => option.value === props.value) ?? null);\n const selectedOptions = multiple ? options.filter(option => selectedValueSet.has(option.value)) : EMPTY_OPTIONS;\n const triggerText = selectedOptions.length === 0 ? placeholder : `${selectedOptions.length} selected`;\n const clearSelection = () => {\n if (isMultipleCombobox(props)) props.onValueChange?.([]);\n };\n // Default to the nearest SideDialog/Drawer popup so the list stays\n // interactive inside a modal drawer; an explicit `container` still wins.\n const resolvedContainer = usePortalContainer(container);\n const { contains } = BaseCombobox.useFilter();\n // Match the label like Base UI's default filter, plus any keywords the option carries.\n const filterOption = React.useCallback(\n (option: ComboboxOption, query: string) =>\n contains(option.label, query) || (option.keywords?.some(keyword => contains(keyword, query)) ?? false),\n [contains],\n );\n const menu = useFluidMenu<HTMLDivElement>();\n const iconOnly = isIconButtonSize(size);\n\n const comboboxContent = (\n <>\n <BaseCombobox.Trigger\n id={id}\n aria-label={ariaLabel ?? (id || field ? undefined : multiple ? 'Select options' : 'Select option')}\n {...keepOwnAccessibleName({ 'aria-label': ariaLabel })}\n {...deprecatedErrorAria(Boolean(error))}\n aria-describedby={describedBy}\n data-shape={iconOnly ? 'icon' : undefined}\n className={comboboxTriggerClass({\n variant,\n size,\n className: cn(iconOnlyValue && 'w-auto px-2.5', className),\n })}\n >\n {iconOnly ? (\n <span className=\"sr-only\">{multiple ? triggerText : <BaseCombobox.Value placeholder={placeholder} />}</span>\n ) : multiple ? (\n <span className={cn('truncate', selectedOptions.length === 0 && comboboxStyles.placeholder)}>\n {triggerText}\n </span>\n ) : (\n // Keep truncation off the outer wrapper so start adornments are not clipped.\n <span className={cn('flex min-w-0 flex-1 items-center', iconOnlyValue ? 'justify-center' : 'gap-2')}>\n {selectedOption?.start}\n <span className=\"truncate\">\n {selectedOption?.displayLabel ?? <BaseCombobox.Value placeholder={placeholder} />}\n </span>\n </span>\n )}\n {/* Wrap the chevron in a `<span>` so the svg is one level deep and\n escapes Button's `[&>svg]` adornments — mirrors Select's chevron wrap. */}\n {showChevron ? (\n <span className=\"flex shrink-0 items-center\">\n <ChevronsUpDown className={cn(comboboxStyles.chevron, (iconOnly || iconOnlyValue) && 'ml-0')} />\n </span>\n ) : null}\n </BaseCombobox.Trigger>\n\n <BaseCombobox.Portal container={resolvedContainer}>\n <BaseCombobox.Positioner\n align={align}\n sideOffset={4}\n positionMethod={FLOATING_POSITION_METHOD}\n className={comboboxStyles.positioner}\n >\n <BaseCombobox.Popup className={comboboxStyles.popup}>\n <div className={comboboxStyles.searchContainer}>\n <Search className={comboboxStyles.searchIcon} />\n <BaseCombobox.Input\n className={comboboxStyles.searchInput}\n placeholder={searchPlaceholder}\n {...passwordManagerOptOutProps}\n />\n </div>\n <BaseCombobox.Empty className={comboboxStyles.empty}>{emptyText}</BaseCombobox.Empty>\n <ScrollArea maxHeight=\"var(--spacing-dropdown)\">\n <ScrollAreaViewport className=\"scroll-py-8\">\n <div className={menu.containerClassName} {...menu.getContainerProps({})}>\n <FluidMenuItems menu={menu}>\n <BaseCombobox.List className={comboboxStyles.list}>\n {(option: ComboboxOption) => {\n const isSelected = selectedValueSet.has(option.value);\n\n return (\n <ComboboxItem key={option.value} value={option} className={comboboxItemClass({ multiple })}>\n {multiple ? (\n <>\n {option.start}\n <ComboboxOptionText option={option} />\n <span className={comboboxStyles.itemRightSlot}>\n {option.end ? <div className={comboboxStyles.optionEnd}>{option.end}</div> : null}\n <span className={comboboxStyles.checkContainer}>\n {isSelected ? <Check className={comboboxStyles.checkIcon} /> : null}\n </span>\n </span>\n </>\n ) : (\n <>\n {option.start}\n <ComboboxOptionText option={option} />\n <span className={comboboxStyles.itemRightSlot}>\n {option.end ? <div className={comboboxStyles.optionEnd}>{option.end}</div> : null}\n <span className={comboboxStyles.checkContainer}>\n <BaseCombobox.ItemIndicator>\n <Check className={comboboxStyles.checkIcon} />\n </BaseCombobox.ItemIndicator>\n </span>\n </span>\n </>\n )}\n </ComboboxItem>\n );\n }}\n </BaseCombobox.List>\n </FluidMenuItems>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n {selectedValues.length > 0 && clearLabel ? (\n <div className={cn('border-t', 'border-border', 'p-1')}>\n <Button\n type=\"button\"\n variant=\"destructive-ghost\"\n size=\"sm\"\n className=\"w-full justify-start\"\n onClick={clearSelection}\n icon={<X />}\n >\n {clearLabel}\n </Button>\n </div>\n ) : null}\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </>\n );\n\n const root = multiple ? (\n <BaseCombobox.Root\n multiple\n autoHighlight\n items={displayedOptions}\n filter={filterOption}\n value={selectedOptions}\n onValueChange={items => props.onValueChange?.((items ?? []).map(item => item.value))}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n >\n {comboboxContent}\n </BaseCombobox.Root>\n ) : (\n <BaseCombobox.Root\n autoHighlight\n items={displayedOptions}\n filter={filterOption}\n value={selectedOption}\n inputValue={inputValue}\n onInputValueChange={value => {\n setInputValue(value);\n onInputValueChange?.(value);\n }}\n onValueChange={item => {\n if (item) {\n props.onValueChange?.(item.value);\n setInputValue('');\n onInputValueChange?.('');\n }\n }}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n >\n {comboboxContent}\n </BaseCombobox.Root>\n );\n\n if (!error) return root;\n\n return (\n <div className={comboboxStyles.root}>\n {root}\n <FieldBlock.ErrorMsg name={errorName}>{error}</FieldBlock.ErrorMsg>\n </div>\n );\n}\n"],"names":["React","jsx","BaseCombobox","useFluidMenuItemRef","jsxs","comboboxStyles","useFieldAriaIds","fieldErrorId","usePortalContainer","useFluidMenu","isIconButtonSize","Fragment","keepOwnAccessibleName","deprecatedErrorAria","comboboxTriggerClass","cn","ChevronsUpDown","FLOATING_POSITION_METHOD","Search","passwordManagerOptOutProps","ScrollArea","ScrollAreaViewport","FluidMenuItems","comboboxItemClass","Check","Button","X","FieldBlock"],"mappings":"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"}
@@ -1,142 +0,0 @@
1
- 'use strict';
2
-
3
- const dataListTop = require('./data-list-top-ByT2Mo77.cjs');
4
- const jsxRuntime = require('react/jsx-runtime');
5
- const React = require('react');
6
- const hooks_useFluidHover = require('./hooks/use-fluid-hover.cjs.js');
7
- const utils_cn = require('./cn-DlOJCxrS.cjs');
8
- const dataListSpacer = require('./data-list-spacer-tQaBaum4.cjs');
9
- const lucideReact = require('lucide-react');
10
- const Button = require('./Button-DH1aTzbs.cjs');
11
- const Txt = require('./Txt-CIS2G5Jx.cjs');
12
-
13
- const DataListGroup = React.forwardRef(({ className, ...rest }, ref) => {
14
- return /* @__PURE__ */ jsxRuntime.jsx(
15
- "section",
16
- {
17
- ref,
18
- ...{ [hooks_useFluidHover.GROUP_ATTR]: "" },
19
- className: utils_cn.cn("col-span-full grid grid-cols-subgrid gap-y-px [&>:not(.data-list-row)]:col-span-full", className),
20
- ...rest
21
- }
22
- );
23
- });
24
- DataListGroup.displayName = "DataListGroup";
25
-
26
- function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
27
- const showNavigation = typeof currentPage === "number" && currentPage > 0 || hasMore;
28
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-full flex items-center justify-center gap-4 py-3 text-body text-muted-foreground", children: [
29
- /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
30
- "Page ",
31
- /* @__PURE__ */ jsxRuntime.jsx("b", { children: currentPage ? currentPage + 1 : "1" })
32
- ] }),
33
- showNavigation && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4", children: [
34
- typeof currentPage === "number" && currentPage > 0 && /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { type: "button", size: "sm", onClick: onPrevPage, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, {}), children: "Previous" }),
35
- hasMore && /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { type: "button", size: "sm", onClick: onNextPage, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {}), children: "Next" })
36
- ] })
37
- ] });
38
- }
39
-
40
- const DataListRowStatic = React.forwardRef(
41
- ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
42
- const isWrapped = dataListSpacer.useDataListRowWrapperContext();
43
- const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
44
- const cellsClass = hasColumnOverride ? void 0 : "data-list-cells";
45
- const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
46
- return /* @__PURE__ */ jsxRuntime.jsx(
47
- "div",
48
- {
49
- ref,
50
- className: utils_cn.cn(isWrapped ? "grid grid-cols-subgrid gap-4 px-3" : dataListTop.dataListRowStaticStyles, cellsClass, className),
51
- style: resolvedStyle,
52
- "data-featured": featured || void 0,
53
- "data-variant": variant ?? "default",
54
- ...rest,
55
- children
56
- }
57
- );
58
- }
59
- );
60
- DataListRowStatic.displayName = "DataListRowStatic";
61
-
62
- const DataListSubheader = React.forwardRef(
63
- ({ children, className, ...rest }, ref) => {
64
- return /* @__PURE__ */ jsxRuntime.jsx(
65
- "div",
66
- {
67
- ref,
68
- className: utils_cn.cn(
69
- "data-list-subheader relative isolate col-span-full px-3 py-2 text-subheading text-muted-foreground",
70
- "bg-(--data-list-background)",
71
- className
72
- ),
73
- ...rest,
74
- children
75
- }
76
- );
77
- }
78
- );
79
- DataListSubheader.displayName = "DataListSubheader";
80
-
81
- function DataListSubHeading({ children, className }) {
82
- return /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "caption", tone: "faint", className, children });
83
- }
84
-
85
- const DataListTopCells = React.forwardRef(
86
- ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {
87
- return /* @__PURE__ */ jsxRuntime.jsx(
88
- "div",
89
- {
90
- ref,
91
- className: utils_cn.cn(
92
- "pointer-events-none grid grid-cols-subgrid gap-4 px-3 [&>*]:pointer-events-auto",
93
- !colStart && "data-list-cells col-span-full",
94
- flushLeft && "pl-0!",
95
- className
96
- ),
97
- style: colStart ? { ...style, gridColumn: `${colStart} / -1` } : style,
98
- ...rest,
99
- children
100
- }
101
- );
102
- }
103
- );
104
- DataListTopCells.displayName = "DataListTopCells";
105
-
106
- const DataList = Object.assign(dataListTop.DataListRoot, {
107
- Top: dataListTop.DataListTop,
108
- TopCells: DataListTopCells,
109
- TopCell: dataListTop.DataListTopCell,
110
- SortableTopCell: dataListSpacer.DataListSortableTopCell,
111
- TopCellWithTooltip: dataListTop.DataListTopCellWithTooltip,
112
- TopCellSmart: dataListTop.DataListTopCellSmart,
113
- RowWrapper: dataListSpacer.DataListRowWrapper,
114
- RowButton: dataListSpacer.DataListRowButton,
115
- RowLink: dataListSpacer.DataListRowLink,
116
- RowStatic: DataListRowStatic,
117
- Cell: dataListTop.DataListCell,
118
- ActionsCell: dataListTop.DataListActionsCell,
119
- TextCell: dataListTop.DataListTextCell,
120
- NameCell: dataListTop.DataListNameCell,
121
- DescriptionCell: dataListTop.DataListDescriptionCell,
122
- IdCell: dataListTop.DataListIdCell,
123
- RowHeaderCell: dataListTop.DataListRowHeaderCell,
124
- NumberCell: dataListTop.DataListNumberCell,
125
- DateCell: dataListTop.DataListDateCell,
126
- CreatedCell: dataListTop.DataListCreatedCell,
127
- TimeCell: dataListTop.DataListTimeCell,
128
- SelectCell: dataListTop.DataListSelectCell,
129
- TopSelectCell: dataListTop.DataListTopSelectCell,
130
- NoMatch: dataListSpacer.DataListNoMatch,
131
- Group: DataListGroup,
132
- Subheader: DataListSubheader,
133
- SubHeading: DataListSubHeading,
134
- Spacer: dataListSpacer.DataListSpacer,
135
- NextPageLoading: dataListSpacer.DataListNextPageLoading,
136
- Pagination: DataListPagination
137
- });
138
-
139
- exports.DataList = DataList;
140
- exports.DataListSubHeading = DataListSubHeading;
141
- exports.DataListSubheader = DataListSubheader;
142
- //# sourceMappingURL=data-list-DUfXIhyC.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-list-DUfXIhyC.cjs","sources":["../src/ds/components/DataList/data-list-group.tsx","../src/ds/components/DataList/data-list-pagination.tsx","../src/ds/components/DataList/data-list-row-static.tsx","../src/ds/components/DataList/data-list-subheader.tsx","../src/ds/components/DataList/data-list-subheading.tsx","../src/ds/components/DataList/data-list-top-cells.tsx","../src/ds/components/DataList/data-list.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { GROUP_ATTR } from '@/hooks/use-fluid-hover';\nimport { cn } from '@/lib/utils';\n\nexport type DataListGroupProps = ComponentPropsWithoutRef<'section'>;\n\n/** Rows sharing the list's columns; the hover lights them only while the pointer is on or between them. */\nexport const DataListGroup = forwardRef<HTMLElement, DataListGroupProps>(({ className, ...rest }, ref) => {\n return (\n <section\n ref={ref}\n {...{ [GROUP_ATTR]: '' }}\n className={cn('col-span-full grid grid-cols-subgrid gap-y-px [&>:not(.data-list-row)]:col-span-full', className)}\n {...rest}\n />\n );\n});\n\nDataListGroup.displayName = 'DataListGroup';\n","import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport type DataListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: DataListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className=\"col-span-full flex items-center justify-center gap-4 py-3 text-body text-muted-foreground\">\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div className=\"flex gap-4\">\n {typeof currentPage === 'number' && currentPage > 0 && (\n <Button type=\"button\" size=\"sm\" onClick={onPrevPage} icon={<ArrowLeftIcon />}>\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" size=\"sm\" onClick={onNextPage} icon={<ArrowRightIcon />}>\n Next\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useDataListRowWrapperContext } from './data-list-row-wrapper-context';\nimport { dataListRowStaticStyles } from './shared';\nimport type { DataListRowSharedProps } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport type DataListRowStaticProps = ComponentPropsWithoutRef<'div'> & DataListRowSharedProps;\n\n/**\n * Non-interactive row. Use when a row should *display* like a regular row but\n * has no link target or click handler\n */\nexport const DataListRowStatic = forwardRef<HTMLDivElement, DataListRowStaticProps>(\n ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {\n const isWrapped = useDataListRowWrapperContext();\n const hasColumnOverride = colStart !== undefined || colEnd !== undefined;\n const cellsClass = hasColumnOverride ? undefined : 'data-list-cells';\n const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;\n return (\n <div\n ref={ref}\n className={cn(isWrapped ? 'grid grid-cols-subgrid gap-4 px-3' : dataListRowStaticStyles, cellsClass, className)}\n style={resolvedStyle}\n data-featured={featured || undefined}\n data-variant={variant ?? 'default'}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListRowStatic.displayName = 'DataListRowStatic';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubheaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const DataListSubheader = forwardRef<HTMLDivElement, DataListSubheaderProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'data-list-subheader relative isolate col-span-full px-3 py-2 text-subheading text-muted-foreground',\n 'bg-(--data-list-background)',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListSubheader.displayName = 'DataListSubheader';\n","import type { ReactNode } from 'react';\nimport { Txt } from '@/ds/components/Txt';\n\nexport type DataListSubHeadingProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport function DataListSubHeading({ children, className }: DataListSubHeadingProps) {\n return (\n <Txt as=\"span\" variant=\"caption\" tone=\"faint\" className={className}>\n {children}\n </Txt>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListTopCellsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Drop the group's default left margin. Use when this sits as the second\n * child of a gap-0 `DataList.Top`, beside a `DataList.TopSelectCell` that\n * owns the leading column.\n */\n flushLeft?: boolean;\n /**\n * Place the group starting at this column line, spanning through to the\n * last column. Defaults to the full grid (`col-span-full`). Use when this\n * sits beside a leading cell that owns column 1.\n */\n colStart?: number;\n};\n\n/**\n * Non-interactive header equivalent of `DataList.RowButton`. Groups a set of\n * `DataList.TopCell`s with the same horizontal layout (gap, mx, px) as\n * `RowButton`, so columns inside a wrapped `Top` line up cell-for-cell with the\n * columns inside a wrapped `Row`.\n */\nexport const DataListTopCells = forwardRef<HTMLDivElement, DataListTopCellsProps>(\n ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'pointer-events-none grid grid-cols-subgrid gap-4 px-3 [&>*]:pointer-events-auto',\n !colStart && 'data-list-cells col-span-full',\n flushLeft && 'pl-0!',\n className,\n )}\n style={colStart ? { ...style, gridColumn: `${colStart} / -1` } : style}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListTopCells.displayName = 'DataListTopCells';\n","import {\n DataListActionsCell,\n DataListCell,\n DataListTextCell,\n DataListNameCell,\n DataListDescriptionCell,\n DataListIdCell,\n DataListRowHeaderCell,\n DataListNumberCell,\n DataListSelectCell,\n DataListDateCell,\n DataListCreatedCell,\n DataListTimeCell,\n} from './data-list-cells';\nimport { DataListGroup } from './data-list-group';\nimport { DataListNextPageLoading } from './data-list-next-page-loading';\nimport { DataListNoMatch } from './data-list-no-match';\nimport { DataListPagination } from './data-list-pagination';\nimport { DataListRoot } from './data-list-root';\nimport { DataListRowButton } from './data-list-row-button';\nimport { DataListRowLink } from './data-list-row-link';\nimport { DataListRowStatic } from './data-list-row-static';\nimport { DataListRowWrapper } from './data-list-row-wrapper';\nimport { DataListSortableTopCell } from './data-list-sortable-top-cell';\nimport { DataListSpacer } from './data-list-spacer';\nimport { DataListSubheader } from './data-list-subheader';\nimport { DataListSubHeading } from './data-list-subheading';\nimport { DataListTop } from './data-list-top';\nimport {\n DataListTopCell,\n DataListTopCellWithTooltip,\n DataListTopCellSmart,\n DataListTopSelectCell,\n} from './data-list-top-cell';\nimport { DataListTopCells } from './data-list-top-cells';\n\nexport type { DataListRootProps, DataListVariant } from './data-list-root';\nexport type { DataListSortableTopCellProps, DataListSort } from './data-list-sortable-top-cell';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n RowStatic: DataListRowStatic,\n Cell: DataListCell,\n ActionsCell: DataListActionsCell,\n TextCell: DataListTextCell,\n NameCell: DataListNameCell,\n DescriptionCell: DataListDescriptionCell,\n IdCell: DataListIdCell,\n RowHeaderCell: DataListRowHeaderCell,\n NumberCell: DataListNumberCell,\n DateCell: DataListDateCell,\n CreatedCell: DataListCreatedCell,\n TimeCell: DataListTimeCell,\n SelectCell: DataListSelectCell,\n TopSelectCell: DataListTopSelectCell,\n NoMatch: DataListNoMatch,\n Group: DataListGroup,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n NextPageLoading: DataListNextPageLoading,\n Pagination: DataListPagination,\n});\n"],"names":["forwardRef","jsx","GROUP_ATTR","cn","jsxs","Button","ArrowLeftIcon","ArrowRightIcon","useDataListRowWrapperContext","dataListRowStaticStyles","Txt","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListCell","DataListActionsCell","DataListTextCell","DataListNameCell","DataListDescriptionCell","DataListIdCell","DataListRowHeaderCell","DataListNumberCell","DataListDateCell","DataListCreatedCell","DataListTimeCell","DataListSelectCell","DataListTopSelectCell","DataListNoMatch","DataListSpacer","DataListNextPageLoading"],"mappings":"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"}
@@ -1,138 +0,0 @@
1
- import { l as dataListRowStaticStyles, D as DataListRoot, m as DataListTopSelectCell, n as DataListSelectCell, f as DataListTimeCell, j as DataListCreatedCell, g as DataListDateCell, o as DataListNumberCell, p as DataListRowHeaderCell, k as DataListIdCell, q as DataListDescriptionCell, r as DataListNameCell, e as DataListTextCell, t as DataListActionsCell, c as DataListCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-DSr_ocKA.js';
2
- import { jsx, jsxs } from 'react/jsx-runtime';
3
- import { forwardRef } from 'react';
4
- import { GROUP_ATTR } from './hooks/use-fluid-hover.es.js';
5
- import { c as cn } from './cn-CQUhN5Jx.js';
6
- import { u as useDataListRowWrapperContext, D as DataListNextPageLoading, b as DataListSpacer, a as DataListNoMatch, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper, f as DataListSortableTopCell } from './data-list-spacer-ByA4ce2a.js';
7
- import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';
8
- import { B as Button } from './Button-EGoajBQY.js';
9
- import { T as Txt } from './Txt-BtIGLRk1.js';
10
-
11
- const DataListGroup = forwardRef(({ className, ...rest }, ref) => {
12
- return /* @__PURE__ */ jsx(
13
- "section",
14
- {
15
- ref,
16
- ...{ [GROUP_ATTR]: "" },
17
- className: cn("col-span-full grid grid-cols-subgrid gap-y-px [&>:not(.data-list-row)]:col-span-full", className),
18
- ...rest
19
- }
20
- );
21
- });
22
- DataListGroup.displayName = "DataListGroup";
23
-
24
- function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
25
- const showNavigation = typeof currentPage === "number" && currentPage > 0 || hasMore;
26
- return /* @__PURE__ */ jsxs("div", { className: "col-span-full flex items-center justify-center gap-4 py-3 text-body text-muted-foreground", children: [
27
- /* @__PURE__ */ jsxs("span", { children: [
28
- "Page ",
29
- /* @__PURE__ */ jsx("b", { children: currentPage ? currentPage + 1 : "1" })
30
- ] }),
31
- showNavigation && /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
32
- typeof currentPage === "number" && currentPage > 0 && /* @__PURE__ */ jsx(Button, { type: "button", size: "sm", onClick: onPrevPage, icon: /* @__PURE__ */ jsx(ArrowLeftIcon, {}), children: "Previous" }),
33
- hasMore && /* @__PURE__ */ jsx(Button, { type: "button", size: "sm", onClick: onNextPage, icon: /* @__PURE__ */ jsx(ArrowRightIcon, {}), children: "Next" })
34
- ] })
35
- ] });
36
- }
37
-
38
- const DataListRowStatic = forwardRef(
39
- ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
40
- const isWrapped = useDataListRowWrapperContext();
41
- const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
42
- const cellsClass = hasColumnOverride ? void 0 : "data-list-cells";
43
- const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
44
- return /* @__PURE__ */ jsx(
45
- "div",
46
- {
47
- ref,
48
- className: cn(isWrapped ? "grid grid-cols-subgrid gap-4 px-3" : dataListRowStaticStyles, cellsClass, className),
49
- style: resolvedStyle,
50
- "data-featured": featured || void 0,
51
- "data-variant": variant ?? "default",
52
- ...rest,
53
- children
54
- }
55
- );
56
- }
57
- );
58
- DataListRowStatic.displayName = "DataListRowStatic";
59
-
60
- const DataListSubheader = forwardRef(
61
- ({ children, className, ...rest }, ref) => {
62
- return /* @__PURE__ */ jsx(
63
- "div",
64
- {
65
- ref,
66
- className: cn(
67
- "data-list-subheader relative isolate col-span-full px-3 py-2 text-subheading text-muted-foreground",
68
- "bg-(--data-list-background)",
69
- className
70
- ),
71
- ...rest,
72
- children
73
- }
74
- );
75
- }
76
- );
77
- DataListSubheader.displayName = "DataListSubheader";
78
-
79
- function DataListSubHeading({ children, className }) {
80
- return /* @__PURE__ */ jsx(Txt, { as: "span", variant: "caption", tone: "faint", className, children });
81
- }
82
-
83
- const DataListTopCells = forwardRef(
84
- ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {
85
- return /* @__PURE__ */ jsx(
86
- "div",
87
- {
88
- ref,
89
- className: cn(
90
- "pointer-events-none grid grid-cols-subgrid gap-4 px-3 [&>*]:pointer-events-auto",
91
- !colStart && "data-list-cells col-span-full",
92
- flushLeft && "pl-0!",
93
- className
94
- ),
95
- style: colStart ? { ...style, gridColumn: `${colStart} / -1` } : style,
96
- ...rest,
97
- children
98
- }
99
- );
100
- }
101
- );
102
- DataListTopCells.displayName = "DataListTopCells";
103
-
104
- const DataList = Object.assign(DataListRoot, {
105
- Top: DataListTop,
106
- TopCells: DataListTopCells,
107
- TopCell: DataListTopCell,
108
- SortableTopCell: DataListSortableTopCell,
109
- TopCellWithTooltip: DataListTopCellWithTooltip,
110
- TopCellSmart: DataListTopCellSmart,
111
- RowWrapper: DataListRowWrapper,
112
- RowButton: DataListRowButton,
113
- RowLink: DataListRowLink,
114
- RowStatic: DataListRowStatic,
115
- Cell: DataListCell,
116
- ActionsCell: DataListActionsCell,
117
- TextCell: DataListTextCell,
118
- NameCell: DataListNameCell,
119
- DescriptionCell: DataListDescriptionCell,
120
- IdCell: DataListIdCell,
121
- RowHeaderCell: DataListRowHeaderCell,
122
- NumberCell: DataListNumberCell,
123
- DateCell: DataListDateCell,
124
- CreatedCell: DataListCreatedCell,
125
- TimeCell: DataListTimeCell,
126
- SelectCell: DataListSelectCell,
127
- TopSelectCell: DataListTopSelectCell,
128
- NoMatch: DataListNoMatch,
129
- Group: DataListGroup,
130
- Subheader: DataListSubheader,
131
- SubHeading: DataListSubHeading,
132
- Spacer: DataListSpacer,
133
- NextPageLoading: DataListNextPageLoading,
134
- Pagination: DataListPagination
135
- });
136
-
137
- export { DataList as D, DataListSubHeading as a, DataListSubheader as b };
138
- //# sourceMappingURL=data-list-DXQY_iQW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-list-DXQY_iQW.js","sources":["../src/ds/components/DataList/data-list-group.tsx","../src/ds/components/DataList/data-list-pagination.tsx","../src/ds/components/DataList/data-list-row-static.tsx","../src/ds/components/DataList/data-list-subheader.tsx","../src/ds/components/DataList/data-list-subheading.tsx","../src/ds/components/DataList/data-list-top-cells.tsx","../src/ds/components/DataList/data-list.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { GROUP_ATTR } from '@/hooks/use-fluid-hover';\nimport { cn } from '@/lib/utils';\n\nexport type DataListGroupProps = ComponentPropsWithoutRef<'section'>;\n\n/** Rows sharing the list's columns; the hover lights them only while the pointer is on or between them. */\nexport const DataListGroup = forwardRef<HTMLElement, DataListGroupProps>(({ className, ...rest }, ref) => {\n return (\n <section\n ref={ref}\n {...{ [GROUP_ATTR]: '' }}\n className={cn('col-span-full grid grid-cols-subgrid gap-y-px [&>:not(.data-list-row)]:col-span-full', className)}\n {...rest}\n />\n );\n});\n\nDataListGroup.displayName = 'DataListGroup';\n","import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport type DataListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: DataListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className=\"col-span-full flex items-center justify-center gap-4 py-3 text-body text-muted-foreground\">\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div className=\"flex gap-4\">\n {typeof currentPage === 'number' && currentPage > 0 && (\n <Button type=\"button\" size=\"sm\" onClick={onPrevPage} icon={<ArrowLeftIcon />}>\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" size=\"sm\" onClick={onNextPage} icon={<ArrowRightIcon />}>\n Next\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useDataListRowWrapperContext } from './data-list-row-wrapper-context';\nimport { dataListRowStaticStyles } from './shared';\nimport type { DataListRowSharedProps } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport type DataListRowStaticProps = ComponentPropsWithoutRef<'div'> & DataListRowSharedProps;\n\n/**\n * Non-interactive row. Use when a row should *display* like a regular row but\n * has no link target or click handler\n */\nexport const DataListRowStatic = forwardRef<HTMLDivElement, DataListRowStaticProps>(\n ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {\n const isWrapped = useDataListRowWrapperContext();\n const hasColumnOverride = colStart !== undefined || colEnd !== undefined;\n const cellsClass = hasColumnOverride ? undefined : 'data-list-cells';\n const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;\n return (\n <div\n ref={ref}\n className={cn(isWrapped ? 'grid grid-cols-subgrid gap-4 px-3' : dataListRowStaticStyles, cellsClass, className)}\n style={resolvedStyle}\n data-featured={featured || undefined}\n data-variant={variant ?? 'default'}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListRowStatic.displayName = 'DataListRowStatic';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubheaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const DataListSubheader = forwardRef<HTMLDivElement, DataListSubheaderProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'data-list-subheader relative isolate col-span-full px-3 py-2 text-subheading text-muted-foreground',\n 'bg-(--data-list-background)',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListSubheader.displayName = 'DataListSubheader';\n","import type { ReactNode } from 'react';\nimport { Txt } from '@/ds/components/Txt';\n\nexport type DataListSubHeadingProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport function DataListSubHeading({ children, className }: DataListSubHeadingProps) {\n return (\n <Txt as=\"span\" variant=\"caption\" tone=\"faint\" className={className}>\n {children}\n </Txt>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListTopCellsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Drop the group's default left margin. Use when this sits as the second\n * child of a gap-0 `DataList.Top`, beside a `DataList.TopSelectCell` that\n * owns the leading column.\n */\n flushLeft?: boolean;\n /**\n * Place the group starting at this column line, spanning through to the\n * last column. Defaults to the full grid (`col-span-full`). Use when this\n * sits beside a leading cell that owns column 1.\n */\n colStart?: number;\n};\n\n/**\n * Non-interactive header equivalent of `DataList.RowButton`. Groups a set of\n * `DataList.TopCell`s with the same horizontal layout (gap, mx, px) as\n * `RowButton`, so columns inside a wrapped `Top` line up cell-for-cell with the\n * columns inside a wrapped `Row`.\n */\nexport const DataListTopCells = forwardRef<HTMLDivElement, DataListTopCellsProps>(\n ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'pointer-events-none grid grid-cols-subgrid gap-4 px-3 [&>*]:pointer-events-auto',\n !colStart && 'data-list-cells col-span-full',\n flushLeft && 'pl-0!',\n className,\n )}\n style={colStart ? { ...style, gridColumn: `${colStart} / -1` } : style}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListTopCells.displayName = 'DataListTopCells';\n","import {\n DataListActionsCell,\n DataListCell,\n DataListTextCell,\n DataListNameCell,\n DataListDescriptionCell,\n DataListIdCell,\n DataListRowHeaderCell,\n DataListNumberCell,\n DataListSelectCell,\n DataListDateCell,\n DataListCreatedCell,\n DataListTimeCell,\n} from './data-list-cells';\nimport { DataListGroup } from './data-list-group';\nimport { DataListNextPageLoading } from './data-list-next-page-loading';\nimport { DataListNoMatch } from './data-list-no-match';\nimport { DataListPagination } from './data-list-pagination';\nimport { DataListRoot } from './data-list-root';\nimport { DataListRowButton } from './data-list-row-button';\nimport { DataListRowLink } from './data-list-row-link';\nimport { DataListRowStatic } from './data-list-row-static';\nimport { DataListRowWrapper } from './data-list-row-wrapper';\nimport { DataListSortableTopCell } from './data-list-sortable-top-cell';\nimport { DataListSpacer } from './data-list-spacer';\nimport { DataListSubheader } from './data-list-subheader';\nimport { DataListSubHeading } from './data-list-subheading';\nimport { DataListTop } from './data-list-top';\nimport {\n DataListTopCell,\n DataListTopCellWithTooltip,\n DataListTopCellSmart,\n DataListTopSelectCell,\n} from './data-list-top-cell';\nimport { DataListTopCells } from './data-list-top-cells';\n\nexport type { DataListRootProps, DataListVariant } from './data-list-root';\nexport type { DataListSortableTopCellProps, DataListSort } from './data-list-sortable-top-cell';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n RowStatic: DataListRowStatic,\n Cell: DataListCell,\n ActionsCell: DataListActionsCell,\n TextCell: DataListTextCell,\n NameCell: DataListNameCell,\n DescriptionCell: DataListDescriptionCell,\n IdCell: DataListIdCell,\n RowHeaderCell: DataListRowHeaderCell,\n NumberCell: DataListNumberCell,\n DateCell: DataListDateCell,\n CreatedCell: DataListCreatedCell,\n TimeCell: DataListTimeCell,\n SelectCell: DataListSelectCell,\n TopSelectCell: DataListTopSelectCell,\n NoMatch: DataListNoMatch,\n Group: DataListGroup,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n NextPageLoading: DataListNextPageLoading,\n Pagination: DataListPagination,\n});\n"],"names":[],"mappings":"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"}