@pibit.ai/cure-design-system 0.3.17 → 0.3.18

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 (126) hide show
  1. package/dist/assets/icons/group-by.svg.js +4 -0
  2. package/dist/assets/icons/reorder-dots-new.svg.js +4 -0
  3. package/dist/assets/icons/reorder-dots.svg.js +4 -0
  4. package/dist/assets/icons/resize-1.svg.js +4 -0
  5. package/dist/assets/icons/resize-2.svg.js +4 -0
  6. package/dist/assets/icons/resize-4.svg.js +4 -0
  7. package/dist/assets/icons/resize-5.svg.js +4 -0
  8. package/dist/assets/icons/show-summary.svg.js +4 -0
  9. package/dist/index.d.ts +3 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +125 -64
  12. package/dist/node_modules/framer-motion/dist/es/components/Reorder/Group.js +46 -0
  13. package/dist/node_modules/framer-motion/dist/es/components/Reorder/Item.js +34 -0
  14. package/dist/node_modules/framer-motion/dist/es/components/Reorder/utils/auto-scroll.js +65 -0
  15. package/dist/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.js +17 -0
  16. package/dist/node_modules/framer-motion/dist/es/context/ReorderContext.js +5 -0
  17. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.js +70 -0
  18. package/dist/node_modules/framer-motion/dist/es/value/use-combine-values.js +15 -0
  19. package/dist/node_modules/framer-motion/dist/es/value/use-computed.js +10 -0
  20. package/dist/node_modules/framer-motion/dist/es/value/use-motion-value.js +15 -0
  21. package/dist/node_modules/framer-motion/dist/es/value/use-transform.js +23 -0
  22. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.js +1 -1
  23. package/dist/node_modules/motion-dom/dist/es/utils/transform.js +8 -0
  24. package/dist/node_modules/motion-dom/dist/es/value/index.js +21 -18
  25. package/dist/node_modules/motion-utils/dist/es/array.js +15 -6
  26. package/dist/patterns/table/TablePagination.d.ts +23 -0
  27. package/dist/patterns/table/TablePagination.d.ts.map +1 -0
  28. package/dist/patterns/table/TablePagination.js +60 -0
  29. package/dist/patterns/table/TableWrapper.d.ts +2 -72
  30. package/dist/patterns/table/TableWrapper.d.ts.map +1 -1
  31. package/dist/patterns/table/TableWrapper.js +730 -75
  32. package/dist/patterns/table/index.d.ts +11 -1
  33. package/dist/patterns/table/index.d.ts.map +1 -1
  34. package/dist/patterns/table/pagination-base.d.ts +78 -0
  35. package/dist/patterns/table/pagination-base.d.ts.map +1 -0
  36. package/dist/patterns/table/pagination-base.js +127 -0
  37. package/dist/patterns/table/pagination-card.d.ts +9 -0
  38. package/dist/patterns/table/pagination-card.d.ts.map +1 -0
  39. package/dist/patterns/table/pagination-card.js +65 -0
  40. package/dist/patterns/table/row-height-icons.d.ts +9 -0
  41. package/dist/patterns/table/row-height-icons.d.ts.map +1 -0
  42. package/dist/patterns/table/row-height-icons.js +13 -0
  43. package/dist/patterns/table/storyHelpers/mockToolbarSlots.d.ts +7 -0
  44. package/dist/patterns/table/storyHelpers/mockToolbarSlots.d.ts.map +1 -0
  45. package/dist/patterns/table/storyHelpers/useMockTableState.d.ts +31 -0
  46. package/dist/patterns/table/storyHelpers/useMockTableState.d.ts.map +1 -0
  47. package/dist/patterns/table/storyHelpers/useMockTableToolbar.d.ts +3 -0
  48. package/dist/patterns/table/storyHelpers/useMockTableToolbar.d.ts.map +1 -0
  49. package/dist/patterns/table/table.d.ts +10 -13
  50. package/dist/patterns/table/table.d.ts.map +1 -1
  51. package/dist/patterns/table/table.js +235 -312
  52. package/dist/patterns/table/toolbar/AlignDropdown.d.ts +11 -0
  53. package/dist/patterns/table/toolbar/AlignDropdown.d.ts.map +1 -0
  54. package/dist/patterns/table/toolbar/AlignDropdown.js +77 -0
  55. package/dist/patterns/table/toolbar/BasicSortPanel.d.ts +6 -0
  56. package/dist/patterns/table/toolbar/BasicSortPanel.d.ts.map +1 -0
  57. package/dist/patterns/table/toolbar/BulkActionBar.d.ts +12 -0
  58. package/dist/patterns/table/toolbar/BulkActionBar.d.ts.map +1 -0
  59. package/dist/patterns/table/toolbar/BulkActionBar.js +62 -0
  60. package/dist/patterns/table/toolbar/ColumnHeaderMenu.d.ts +41 -0
  61. package/dist/patterns/table/toolbar/ColumnHeaderMenu.d.ts.map +1 -0
  62. package/dist/patterns/table/toolbar/ColumnHeaderMenu.js +171 -0
  63. package/dist/patterns/table/toolbar/GroupByDropdown.d.ts +11 -0
  64. package/dist/patterns/table/toolbar/GroupByDropdown.d.ts.map +1 -0
  65. package/dist/patterns/table/toolbar/GroupByDropdown.js +80 -0
  66. package/dist/patterns/table/toolbar/HideFieldsDropdown.d.ts +13 -0
  67. package/dist/patterns/table/toolbar/HideFieldsDropdown.d.ts.map +1 -0
  68. package/dist/patterns/table/toolbar/HideFieldsDropdown.js +180 -0
  69. package/dist/patterns/table/toolbar/LegacySortFilterTools.d.ts +9 -0
  70. package/dist/patterns/table/toolbar/LegacySortFilterTools.d.ts.map +1 -0
  71. package/dist/patterns/table/toolbar/RowActionsMenu.d.ts +19 -0
  72. package/dist/patterns/table/toolbar/RowActionsMenu.d.ts.map +1 -0
  73. package/dist/patterns/table/toolbar/RowActionsMenu.js +84 -0
  74. package/dist/patterns/table/toolbar/RowHeightDropdown.d.ts +9 -0
  75. package/dist/patterns/table/toolbar/RowHeightDropdown.d.ts.map +1 -0
  76. package/dist/patterns/table/toolbar/RowHeightDropdown.js +60 -0
  77. package/dist/patterns/table/toolbar/ShowSummaryDropdown.d.ts +8 -0
  78. package/dist/patterns/table/toolbar/ShowSummaryDropdown.d.ts.map +1 -0
  79. package/dist/patterns/table/toolbar/ShowSummaryDropdown.js +22 -0
  80. package/dist/patterns/table/toolbar/SummaryFooter.d.ts +16 -0
  81. package/dist/patterns/table/toolbar/SummaryFooter.d.ts.map +1 -0
  82. package/dist/patterns/table/toolbar/SummaryFooter.js +83 -0
  83. package/dist/patterns/table/toolbar/TableToolbar.d.ts +55 -0
  84. package/dist/patterns/table/toolbar/TableToolbar.d.ts.map +1 -0
  85. package/dist/patterns/table/toolbar/TableToolbar.js +234 -0
  86. package/dist/patterns/table/toolbar/ToolbarRadio.d.ts +18 -0
  87. package/dist/patterns/table/toolbar/ToolbarRadio.d.ts.map +1 -0
  88. package/dist/patterns/table/toolbar/ToolbarRadio.js +63 -0
  89. package/dist/patterns/table/toolbar/index.d.ts +24 -0
  90. package/dist/patterns/table/toolbar/index.d.ts.map +1 -0
  91. package/dist/patterns/table/toolbar/legacyToolbarTypes.d.ts +69 -0
  92. package/dist/patterns/table/toolbar/legacyToolbarTypes.d.ts.map +1 -0
  93. package/dist/patterns/table/toolbar/tableToolbarHelpers.d.ts +35 -0
  94. package/dist/patterns/table/toolbar/tableToolbarHelpers.d.ts.map +1 -0
  95. package/dist/patterns/table/toolbar/tableToolbarHelpers.js +259 -0
  96. package/dist/patterns/table/toolbar/tableToolbarHelpers.test.d.ts +2 -0
  97. package/dist/patterns/table/toolbar/tableToolbarHelpers.test.d.ts.map +1 -0
  98. package/dist/patterns/table/toolbar/toolbarExtensions.d.ts +12 -0
  99. package/dist/patterns/table/toolbar/toolbarExtensions.d.ts.map +1 -0
  100. package/dist/patterns/table/toolbar/toolbarExtensions.js +18 -0
  101. package/dist/patterns/table/toolbar-icons.d.ts +8 -0
  102. package/dist/patterns/table/toolbar-icons.d.ts.map +1 -0
  103. package/dist/patterns/table/toolbar-icons.js +13 -0
  104. package/dist/patterns/table/types.d.ts +141 -0
  105. package/dist/patterns/table/types.d.ts.map +1 -0
  106. package/dist/patterns/table/useGridKeyboardNavigation.d.ts +38 -0
  107. package/dist/patterns/table/useGridKeyboardNavigation.d.ts.map +1 -0
  108. package/dist/patterns/table/useGridKeyboardNavigation.js +65 -0
  109. package/dist/primitives/checkbox/checkbox.d.ts +2 -2
  110. package/dist/primitives/checkbox/checkbox.d.ts.map +1 -1
  111. package/dist/primitives/dropdown/dropdown.d.ts +32 -0
  112. package/dist/primitives/dropdown/dropdown.d.ts.map +1 -0
  113. package/dist/primitives/dropdown/dropdown.js +118 -0
  114. package/dist/primitives/dropdown/index.d.ts +2 -0
  115. package/dist/primitives/dropdown/index.d.ts.map +1 -0
  116. package/dist/primitives/select/ExpandableSearchInput.d.ts +5 -1
  117. package/dist/primitives/select/ExpandableSearchInput.d.ts.map +1 -1
  118. package/dist/primitives/select/ExpandableSearchInput.js +80 -77
  119. package/dist/primitives/shimmer/index.d.ts +2 -0
  120. package/dist/primitives/shimmer/index.d.ts.map +1 -0
  121. package/dist/primitives/shimmer/shimmer.d.ts +24 -0
  122. package/dist/primitives/shimmer/shimmer.d.ts.map +1 -0
  123. package/dist/primitives/shimmer/shimmer.js +37 -0
  124. package/dist/styles/components.css +1 -1
  125. package/dist/styles/theme.css +1 -1
  126. package/package.json +1 -1
@@ -0,0 +1,234 @@
1
+ import { jsx as o, jsxs as p } from "react/jsx-runtime";
2
+ import { useMemo as D, useRef as O, useState as R, useEffect as A, useLayoutEffect as L } from "react";
3
+ import { FlipBackward as K, FlipForward as W, ChevronSelectorVertical as j, DotsHorizontal as k } from "@untitledui/icons";
4
+ import { cx as I } from "../../../utils/cn.js";
5
+ import { AlignDropdown as P } from "./AlignDropdown.js";
6
+ import { GroupByDropdown as T } from "./GroupByDropdown.js";
7
+ import { HideFieldsDropdown as F } from "./HideFieldsDropdown.js";
8
+ import { RowHeightDropdown as G } from "./RowHeightDropdown.js";
9
+ import { ShowSummaryDropdown as U } from "./ShowSummaryDropdown.js";
10
+ import { resolveColumnLabel as _ } from "./tableToolbarHelpers.js";
11
+ import { ExpandableSearchInput as B } from "../../../primitives/select/ExpandableSearchInput.js";
12
+ import { Button as C } from "../../../primitives/button/button.js";
13
+ import { Dropdown as w } from "../../../primitives/dropdown/dropdown.js";
14
+ import { Icon as H } from "../../../primitives/icon/icon.js";
15
+ const $ = () => /* @__PURE__ */ p("div", { className: "flex items-center gap-2", children: [
16
+ /* @__PURE__ */ o(C, { size: "xs", color: "secondary", iconLeading: /* @__PURE__ */ o(K, { size: 16 }), "aria-label": "Undo", title: "Undo" }),
17
+ /* @__PURE__ */ o(C, { size: "xs", color: "secondary", iconLeading: /* @__PURE__ */ o(W, { size: 16 }), "aria-label": "Redo", title: "Redo" })
18
+ ] }), V = ({ config: e, content: a }) => {
19
+ const l = e.sorts.some((i) => i.field !== "" && i.direction !== "");
20
+ return /* @__PURE__ */ p(
21
+ w.Root,
22
+ {
23
+ isOpen: e.isOpen,
24
+ onOpenChange: (i) => {
25
+ i && e.onSortsChange(e.sorts.map((d) => ({ ...d }))), e.onOpenChange(i);
26
+ },
27
+ children: [
28
+ /* @__PURE__ */ p(
29
+ C,
30
+ {
31
+ size: "xs",
32
+ color: "secondary",
33
+ iconLeading: /* @__PURE__ */ o(j, { size: 12 }),
34
+ className: I(
35
+ l && "ring-1 ring-brand-600 bg-brand-primary text-brand-600 hover:bg-brand-primary hover:text-brand-600"
36
+ ),
37
+ children: [
38
+ "Sort",
39
+ l && /* @__PURE__ */ o("span", { className: "ml-1 text-xs font-semibold text-brand-600", children: e.sorts.length })
40
+ ]
41
+ }
42
+ ),
43
+ /* @__PURE__ */ o(w.Popover, { className: "w-auto min-w-[300px]", children: a })
44
+ ]
45
+ }
46
+ );
47
+ }, q = ({ config: e, content: a }) => {
48
+ const l = e.meaningfulConditionsCount > 0;
49
+ return /* @__PURE__ */ p(w.Root, { isOpen: e.isOpen, onOpenChange: e.onOpenChange, children: [
50
+ /* @__PURE__ */ p(
51
+ C,
52
+ {
53
+ size: "xs",
54
+ color: "secondary",
55
+ iconLeading: /* @__PURE__ */ o(H, { name: "FilterLines", size: 12 }),
56
+ className: I(
57
+ l && "ring-1 ring-brand-600 bg-brand-primary text-brand-600 hover:bg-brand-primary hover:text-brand-600"
58
+ ),
59
+ children: [
60
+ "Filter",
61
+ l && /* @__PURE__ */ o("span", { className: "ml-1 text-xs font-semibold text-brand-600", children: e.meaningfulConditionsCount })
62
+ ]
63
+ }
64
+ ),
65
+ /* @__PURE__ */ o(w.Popover, { className: "w-auto min-w-[300px]", children: a })
66
+ ] });
67
+ }, ce = ({
68
+ className: e,
69
+ fallbackTitle: a,
70
+ showUndoRedo: l = !1,
71
+ sort: i,
72
+ filter: d,
73
+ search: f,
74
+ rowHeight: b,
75
+ hideFields: u,
76
+ align: h,
77
+ groupBy: m,
78
+ summary: g,
79
+ trailing: S,
80
+ searchCollapsible: z,
81
+ disableExtendedTools: n = !1,
82
+ sortContent: r,
83
+ filterContent: t
84
+ }) => {
85
+ const c = D(() => {
86
+ const s = [];
87
+ if (l && s.push({ id: "undo-redo", node: /* @__PURE__ */ o($, {}) }), i && r) {
88
+ const v = i.sorts.some((x) => x.field !== "" && x.direction !== "");
89
+ s.push({
90
+ id: "sort",
91
+ widthKey: v ? String(i.sorts.length) : "",
92
+ node: /* @__PURE__ */ o(V, { config: i, content: r })
93
+ });
94
+ }
95
+ if (d && t && s.push({
96
+ id: "filter",
97
+ widthKey: d.meaningfulConditionsCount > 0 ? String(d.meaningfulConditionsCount) : "",
98
+ node: /* @__PURE__ */ o(q, { config: d, content: t })
99
+ }), b && s.push({
100
+ id: "row-height",
101
+ node: /* @__PURE__ */ o(G, { ...b, isDisabled: n })
102
+ }), u && s.push({
103
+ id: "hide-fields",
104
+ widthKey: u.hiddenColumns.size > 0 ? String(u.hiddenColumns.size) : "",
105
+ node: /* @__PURE__ */ o(F, { ...u, isDisabled: n })
106
+ }), h && s.push({ id: "align", node: /* @__PURE__ */ o(P, { ...h, isDisabled: n }) }), m) {
107
+ const v = m.value ? m.schema.find((N) => N.value === m.value) : void 0, x = v ? _(v, m.labelMeta) : "";
108
+ s.push({
109
+ id: "group-by",
110
+ widthKey: x,
111
+ node: /* @__PURE__ */ o(T, { ...m, isDisabled: n })
112
+ });
113
+ }
114
+ return g && s.push({
115
+ id: "summary",
116
+ node: /* @__PURE__ */ o(U, { ...g, isDisabled: n })
117
+ }), s;
118
+ }, [
119
+ l,
120
+ i,
121
+ r,
122
+ d,
123
+ t,
124
+ b,
125
+ u,
126
+ h,
127
+ m,
128
+ g,
129
+ n
130
+ ]);
131
+ return /* @__PURE__ */ p("div", { className: I("flex justify-between items-center gap-2", e), children: [
132
+ c.length > 0 ? /* @__PURE__ */ o(Q, { items: c }) : a ? /* @__PURE__ */ o("h4", { className: "text-sm font-normal text-secondary", children: a }) : /* @__PURE__ */ o("div", {}),
133
+ /* @__PURE__ */ p("div", { className: "flex items-center gap-2 shrink-0", children: [
134
+ f && /* @__PURE__ */ o(
135
+ B,
136
+ {
137
+ size: "sm",
138
+ placeholder: "Search",
139
+ value: f.value,
140
+ onChange: f.onChange,
141
+ collapsible: z,
142
+ isDisabled: n
143
+ }
144
+ ),
145
+ S
146
+ ] })
147
+ ] });
148
+ }, J = 40, M = 8, Q = ({ items: e }) => {
149
+ const a = O(null), l = O(/* @__PURE__ */ new Map()), [i, d] = R(() => /* @__PURE__ */ new Map()), [f, b] = R(null), u = D(() => e.map((n) => `${n.id}:${n.widthKey ?? ""}`).join("|"), [e]);
150
+ A(() => {
151
+ d(/* @__PURE__ */ new Map());
152
+ }, [u]), L(() => {
153
+ if (i.size === e.length) return;
154
+ const n = /* @__PURE__ */ new Map();
155
+ for (const r of e) {
156
+ const t = l.current.get(r.id);
157
+ t && n.set(r.id, t.getBoundingClientRect().width);
158
+ }
159
+ n.size === e.length && d(n);
160
+ }, [e, i]), L(() => {
161
+ const n = a.current;
162
+ if (!n) return;
163
+ const r = () => {
164
+ a.current && b(a.current.clientWidth);
165
+ };
166
+ r();
167
+ const t = new ResizeObserver(r);
168
+ return t.observe(n), () => t.disconnect();
169
+ }, []);
170
+ const h = i.size === e.length, { visibleIds: m, overflowIds: g } = D(() => {
171
+ if (!h || f == null)
172
+ return {
173
+ visibleIds: new Set(e.map((c) => c.id)),
174
+ overflowIds: /* @__PURE__ */ new Set()
175
+ };
176
+ let n = 0;
177
+ const r = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set();
178
+ for (let c = 0; c < e.length; c++) {
179
+ const s = e[c].id, v = i.get(s) ?? 0, N = e.length - c - 1 > 0 ? J + M : 0;
180
+ if (n + v + N > f) {
181
+ for (let y = c; y < e.length; y++) t.add(e[y].id);
182
+ break;
183
+ }
184
+ n += v + M, r.add(s);
185
+ }
186
+ return { visibleIds: r, overflowIds: t };
187
+ }, [e, i, f, h]), S = e.filter((n) => m.has(n.id)), z = e.filter((n) => g.has(n.id));
188
+ return /* @__PURE__ */ p(
189
+ "div",
190
+ {
191
+ ref: a,
192
+ className: "flex items-center gap-2 min-w-0 flex-1 overflow-hidden",
193
+ style: h ? void 0 : { visibility: "hidden" },
194
+ children: [
195
+ (h ? S : e).map((n) => /* @__PURE__ */ o(
196
+ "div",
197
+ {
198
+ ref: (r) => {
199
+ l.current.set(n.id, r);
200
+ },
201
+ className: "shrink-0",
202
+ children: n.node
203
+ },
204
+ n.id
205
+ )),
206
+ h && z.length > 0 && /* @__PURE__ */ p(w.Root, { children: [
207
+ /* @__PURE__ */ o(
208
+ C,
209
+ {
210
+ size: "xs",
211
+ color: "secondary",
212
+ iconLeading: /* @__PURE__ */ o(k, { size: 16 }),
213
+ "aria-label": "More tools",
214
+ title: "More tools",
215
+ className: "shrink-0"
216
+ }
217
+ ),
218
+ /* @__PURE__ */ o(w.Popover, { className: "w-auto", children: /* @__PURE__ */ o("div", { className: "flex flex-col items-stretch gap-2 p-2 min-w-[180px]", children: z.map((n) => /* @__PURE__ */ o("div", { className: "[&>*]:w-full", children: n.node }, n.id)) }) })
219
+ ] })
220
+ ]
221
+ }
222
+ );
223
+ };
224
+ function he(e) {
225
+ return {
226
+ sort: e.sort,
227
+ filter: e.filter,
228
+ search: e.search
229
+ };
230
+ }
231
+ export {
232
+ ce as TableToolbar,
233
+ he as pickCoreToolbarProps
234
+ };
@@ -0,0 +1,18 @@
1
+ import { FC, ReactNode, Ref } from 'react';
2
+ import { RadioGroupProps as AriaRadioGroupProps, RadioProps as AriaRadioProps } from 'react-aria-components';
3
+ interface RadioGroupContextType {
4
+ size?: "sm" | "md";
5
+ }
6
+ interface RadioButtonProps extends AriaRadioProps {
7
+ size?: "sm" | "md";
8
+ label?: ReactNode;
9
+ ref?: Ref<HTMLLabelElement>;
10
+ }
11
+ export declare const RadioButton: FC<RadioButtonProps>;
12
+ interface RadioGroupProps extends RadioGroupContextType, AriaRadioGroupProps {
13
+ children: ReactNode;
14
+ className?: string;
15
+ }
16
+ export declare const RadioGroup: FC<RadioGroupProps>;
17
+ export {};
18
+ //# sourceMappingURL=ToolbarRadio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarRadio.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/ToolbarRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAGL,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,uBAAuB,CAAC;AAG/B,UAAU,qBAAqB;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAwCD,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA4B5C,CAAC;AAEF,UAAU,eAAgB,SAAQ,qBAAqB,EAAE,mBAAmB;IAC1E,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAM1C,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { jsx as n, jsxs as c, Fragment as u } from "react/jsx-runtime";
2
+ import { createContext as f, useContext as p } from "react";
3
+ import { RadioGroup as g, Radio as b } from "react-aria-components";
4
+ import { cx as a } from "../../../utils/cn.js";
5
+ const d = f(null), x = ({
6
+ className: r,
7
+ isFocusVisible: e,
8
+ isSelected: o,
9
+ isDisabled: i,
10
+ size: t = "sm"
11
+ }) => /* @__PURE__ */ n(
12
+ "div",
13
+ {
14
+ className: a(
15
+ "flex size-4 min-h-4 min-w-4 cursor-pointer appearance-none items-center justify-center rounded-full bg-primary ring-1 ring-primary ring-inset",
16
+ t === "md" && "size-5 min-h-5 min-w-5",
17
+ o && !i && "bg-brand-solid ring-bg-brand-solid",
18
+ i && "cursor-not-allowed border-disabled bg-disabled_subtle",
19
+ e && "outline-2 outline-offset-2 outline-focus-ring",
20
+ r
21
+ ),
22
+ children: /* @__PURE__ */ n(
23
+ "div",
24
+ {
25
+ className: a(
26
+ "size-1.5 rounded-full bg-fg-white opacity-0 transition-inherit-all",
27
+ t === "md" && "size-2",
28
+ i && "bg-fg-disabled_subtle",
29
+ o && "opacity-100"
30
+ )
31
+ }
32
+ )
33
+ }
34
+ ), v = ({ label: r, className: e, size: o = "sm", ...i }) => {
35
+ const t = p(d);
36
+ return o = (t == null ? void 0 : t.size) ?? o, /* @__PURE__ */ n(
37
+ b,
38
+ {
39
+ ...i,
40
+ className: (s) => a(
41
+ "flex items-center gap-2",
42
+ s.isDisabled && "cursor-not-allowed",
43
+ typeof e == "function" ? e(s) : e
44
+ ),
45
+ children: ({ isSelected: s, isDisabled: l, isFocusVisible: m }) => /* @__PURE__ */ c(u, { children: [
46
+ /* @__PURE__ */ n(
47
+ x,
48
+ {
49
+ size: o,
50
+ isSelected: s,
51
+ isDisabled: l,
52
+ isFocusVisible: m
53
+ }
54
+ ),
55
+ r && /* @__PURE__ */ n("p", { className: "text-sm font-medium text-secondary select-none", children: r })
56
+ ] })
57
+ }
58
+ );
59
+ }, G = ({ children: r, className: e, size: o = "sm", ...i }) => /* @__PURE__ */ n(d.Provider, { value: { size: o }, children: /* @__PURE__ */ n(g, { ...i, className: a("flex flex-col gap-4", e), children: r }) });
60
+ export {
61
+ v as RadioButton,
62
+ G as RadioGroup
63
+ };
@@ -0,0 +1,24 @@
1
+ export { TableToolbar, pickCoreToolbarProps } from './TableToolbar';
2
+ export type { TableToolbarProps, SortToolConfig, FilterToolConfig, SearchToolConfig, RowHeightToolConfig, HideFieldsToolConfig, AlignToolConfig, GroupByToolConfig, SummaryToolConfig, } from './TableToolbar';
3
+ export { RowHeightDropdown } from './RowHeightDropdown';
4
+ export type { RowHeightOption } from './RowHeightDropdown';
5
+ export { ROW_HEIGHT_CLASS } from './tableToolbarHelpers';
6
+ export { HideFieldsDropdown } from './HideFieldsDropdown';
7
+ export { AlignDropdown } from './AlignDropdown';
8
+ export { GroupByDropdown } from './GroupByDropdown';
9
+ export { ShowSummaryDropdown } from './ShowSummaryDropdown';
10
+ export { SummaryFooterRow } from './SummaryFooter';
11
+ export type { SummaryFooterRowProps } from './SummaryFooter';
12
+ export { ColumnHeaderMenu } from './ColumnHeaderMenu';
13
+ export type { ColumnMenuAction, ColumnMenuCapabilities } from './ColumnHeaderMenu';
14
+ export { RowActionsMenu } from './RowActionsMenu';
15
+ export type { RowActionsConfig } from './RowActionsMenu';
16
+ export { BulkActionBar } from './BulkActionBar';
17
+ export { registerToolbarExtensions, getToolbarExtensions } from './toolbarExtensions';
18
+ export type { ToolbarExtensionComponents } from './toolbarExtensions';
19
+ export type { LegacySortToolConfig, LegacyFilterToolConfig, LegacySortColumn, LegacySort, } from './legacyToolbarTypes';
20
+ export { BasicSortPanel } from './BasicSortPanel';
21
+ export { LegacySortTool, LegacyFilterTool } from './LegacySortFilterTools';
22
+ export { applyHideAndReorder, getDefaultAlignmentForType, getEffectiveAlignment, alignmentClass, getAggregationsForType, computeAggregation, groupRows, resolveColumnLabel, AGGREGATION_LABELS, } from './tableToolbarHelpers';
23
+ export type { CellAlignment, AggregationType, AggregationOption, RowGroup } from './tableToolbarHelpers';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { ReactNode } from 'react';
2
+ /** Minimal sort column shape — matches platform-ui `SortColumn`. */
3
+ export interface LegacySortColumn {
4
+ key: string;
5
+ label: string;
6
+ sortKey?: string;
7
+ allowSorting?: boolean;
8
+ }
9
+ export interface LegacySort {
10
+ field: string;
11
+ direction: "asc" | "desc" | "";
12
+ }
13
+ /** Matches platform-ui `SortToolConfig` from `useTableState.sortToolConfig`. */
14
+ export interface LegacySortToolConfig {
15
+ sorts: LegacySort[];
16
+ pendingSorts: LegacySort[];
17
+ sortableColumns: LegacySortColumn[];
18
+ isOpen: boolean;
19
+ onOpenChange: (open: boolean) => void;
20
+ onSortsChange: (sorts: LegacySort[]) => void;
21
+ onApply: () => void;
22
+ onCancel: () => void;
23
+ onClear: () => void;
24
+ isApplyDisabled?: boolean;
25
+ }
26
+ /** Matches platform-ui filter field schema. */
27
+ export interface LegacyFilterableFieldSchema {
28
+ field_identifier?: string;
29
+ id?: string;
30
+ label: string;
31
+ data_type: string;
32
+ options?: {
33
+ key: string;
34
+ value: string;
35
+ }[] | null;
36
+ lookup?: {
37
+ object_identifier: string;
38
+ field?: string;
39
+ display_field?: string;
40
+ } | null;
41
+ }
42
+ export interface LegacyFilterCondition {
43
+ id: string;
44
+ type: string;
45
+ fieldId: string;
46
+ operatorId: string;
47
+ value: unknown;
48
+ }
49
+ /** Matches platform-ui `FilterToolConfig` from `useTableState.filterToolConfig`. */
50
+ export interface LegacyFilterToolConfig {
51
+ filterableFields: LegacyFilterableFieldSchema[];
52
+ pendingConditions: LegacyFilterCondition[];
53
+ setPendingConditions: (conditions: LegacyFilterCondition[]) => void;
54
+ meaningfulConditionsCount: number;
55
+ isOpen: boolean;
56
+ onOpenChange: (open: boolean) => void;
57
+ onApply: () => void;
58
+ onClearAll: () => void;
59
+ }
60
+ /** Legacy toolbar keys still passed by platform-ui `useTableState.toolbarProps`. */
61
+ export type LegacyToolbarExtras = {
62
+ sort?: LegacySortToolConfig;
63
+ filter?: LegacyFilterToolConfig;
64
+ sortContent?: ReactNode;
65
+ filterContent?: ReactNode;
66
+ };
67
+ export declare function isLegacySortToolConfig(value: unknown): value is LegacySortToolConfig;
68
+ export declare function isLegacyFilterToolConfig(value: unknown): value is LegacyFilterToolConfig;
69
+ //# sourceMappingURL=legacyToolbarTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyToolbarTypes.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/legacyToolbarTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;CAChC;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,+CAA+C;AAC/C,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvF;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,2BAA2B,EAAE,CAAC;IAChD,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,oBAAoB,EAAE,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,IAAI,CAAC;IACpE,yBAAyB,EAAE,MAAM,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,oFAAoF;AACpF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAIpF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAIxF"}
@@ -0,0 +1,35 @@
1
+ import { TableColumnSchema, TableColumnValueType } from '../types';
2
+ import { RowHeightOption } from './RowHeightDropdown';
3
+ /** Tailwind class applied to `<Table.Row>` for each row-height option. */
4
+ export declare const ROW_HEIGHT_CLASS: Record<RowHeightOption, string>;
5
+ /** Resolve a dot-separated path on nested JSON (arrays match by field_identifier/id/key). */
6
+ export declare function getObjectLabelByPath<T = unknown>(obj: unknown, path: string | undefined): T | undefined;
7
+ /** Get nested value from object using dot notation. */
8
+ export declare function getNestedValue(obj: Record<string, unknown> | null | undefined, path: string | undefined): unknown;
9
+ /** Resolves the display label for a column. */
10
+ export declare function resolveColumnLabel(column: TableColumnSchema, labelMeta?: unknown): string;
11
+ /** Filter schema through `hidden` and reorder by `order`. */
12
+ export declare function applyHideAndReorder(schema: TableColumnSchema[], hidden: ReadonlySet<string>, order: readonly string[]): TableColumnSchema[];
13
+ export type CellAlignment = "left" | "center" | "right";
14
+ export declare function getDefaultAlignmentForType(valueType: TableColumnValueType | undefined): CellAlignment;
15
+ export declare function getEffectiveAlignment(column: TableColumnSchema, overrides: ReadonlyMap<string, CellAlignment>): CellAlignment;
16
+ export declare function alignmentClass(align: CellAlignment): string;
17
+ export type AggregationType = "none" | "count" | "sum" | "average" | "median" | "min" | "max" | "range" | "totalItems";
18
+ export interface AggregationOption {
19
+ id: AggregationType;
20
+ label: string;
21
+ }
22
+ export declare const AGGREGATION_LABELS: Record<AggregationType, string>;
23
+ export declare const AGGREGATION_CELL_LABELS: Record<AggregationType, string>;
24
+ export declare function mapOmDataTypeToAggregationValueType(omDataType: string | undefined): TableColumnValueType | undefined;
25
+ export declare function resolveAggregationValueType(column: Pick<TableColumnSchema, "value" | "value_type" | "data_type">, fieldDataTypeMap?: Readonly<Record<string, string>>): TableColumnValueType | undefined;
26
+ export declare function getAggregationsForType(valueType: TableColumnValueType | undefined): AggregationOption[];
27
+ export declare function getRowColumnValue(row: Record<string, unknown>, key: string): unknown;
28
+ export declare function computeAggregation(rows: ReadonlyArray<Record<string, unknown>>, columnValueKey: string, aggregation: AggregationType): string;
29
+ export interface RowGroup<T> {
30
+ key: string;
31
+ label: string;
32
+ rows: T[];
33
+ }
34
+ export declare function groupRows<T extends Record<string, unknown>>(rows: ReadonlyArray<T>, groupByKey: string | null): RowGroup<T>[];
35
+ //# sourceMappingURL=tableToolbarHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableToolbarHelpers.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/tableToolbarHelpers.ts"],"names":[],"mappings":"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"}