@pibit.ai/cure-design-system 0.3.35 → 0.3.40

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.
@@ -1,32 +1,32 @@
1
- import { jsx as o, jsxs as p } from "react/jsx-runtime";
2
- import { useMemo as D, isValidElement as L, cloneElement as M, useRef as A, useState as I, useEffect as K, useLayoutEffect as O } from "react";
3
- import { FlipBackward as W, FlipForward as j, ChevronSelectorVertical as F, DotsHorizontal as P } from "@untitledui/icons";
4
- import { cx as N } from "../../../utils/cn.js";
5
- import { AlignDropdown as H } from "./AlignDropdown.js";
6
- import { GroupByDropdown as T } from "./GroupByDropdown.js";
7
- import { HideFieldsDropdown as G } from "./HideFieldsDropdown.js";
8
- import { RowHeightDropdown as _ } from "./RowHeightDropdown.js";
9
- import { ShowSummaryDropdown as B } from "./ShowSummaryDropdown.js";
10
- import { resolveColumnLabel as V } from "./tableToolbarHelpers.js";
11
- import { useUndoRedoShortcuts as $ } from "./useUndoRedoShortcuts.js";
12
- import { ExpandableSearchInput as q } from "../../../primitives/select/ExpandableSearchInput.js";
13
- import { Button as y } from "../../../primitives/button/button.js";
1
+ import { jsx as n, jsxs as p } from "react/jsx-runtime";
2
+ import { useMemo as S, isValidElement as M, cloneElement as k, useRef as I, useState as O, useEffect as W, useLayoutEffect as U } from "react";
3
+ import { FlipBackward as j, FlipForward as F, ChevronSelectorVertical as P, DotsHorizontal as H } from "@untitledui/icons";
4
+ import { cx as A } from "../../../utils/cn.js";
5
+ import { AlignDropdown as T } from "./AlignDropdown.js";
6
+ import { GroupByDropdown as G } from "./GroupByDropdown.js";
7
+ import { HideFieldsDropdown as _ } from "./HideFieldsDropdown.js";
8
+ import { RowHeightDropdown as B } from "./RowHeightDropdown.js";
9
+ import { ShowSummaryDropdown as V } from "./ShowSummaryDropdown.js";
10
+ import { resolveColumnLabel as $ } from "./tableToolbarHelpers.js";
11
+ import { useUndoRedoShortcuts as q } from "./useUndoRedoShortcuts.js";
12
+ import { ExpandableSearchInput as E } from "../../../primitives/select/ExpandableSearchInput.js";
13
+ import { Button as D } from "../../../primitives/button/button.js";
14
14
  import { Dropdown as x } from "../../../primitives/dropdown/dropdown.js";
15
- import { Icon as E } from "../../../primitives/icon/icon.js";
16
- function J(e, i) {
17
- return L(e) ? M(e, {
15
+ import { Icon as J } from "../../../primitives/icon/icon.js";
16
+ function Q(e, i) {
17
+ return M(e) ? k(e, {
18
18
  onApply: i.onApply,
19
19
  onClear: i.onClear,
20
20
  clearAllSorts: i.onClear
21
21
  }) : e;
22
22
  }
23
- function Q(e, i) {
24
- return L(e) ? M(e, {
23
+ function X(e, i) {
24
+ return M(e) ? k(e, {
25
25
  onApply: i.onApply,
26
26
  onClearAll: i.onClearAll
27
27
  }) : e;
28
28
  }
29
- const X = ({ config: e }) => ($({
29
+ const Y = ({ config: e }) => (q({
30
30
  enabled: e.shortcut ?? !0,
31
31
  canUndo: e.canUndo,
32
32
  canRedo: e.canRedo,
@@ -34,31 +34,31 @@ const X = ({ config: e }) => ($({
34
34
  onRedo: e.onRedo,
35
35
  isDisabled: e.isDisabled
36
36
  }), /* @__PURE__ */ p("div", { className: "flex items-center gap-2", children: [
37
- /* @__PURE__ */ o(
38
- y,
37
+ /* @__PURE__ */ n(
38
+ D,
39
39
  {
40
40
  size: "xs",
41
41
  color: "secondary",
42
- iconLeading: /* @__PURE__ */ o(W, { size: 16 }),
42
+ iconLeading: /* @__PURE__ */ n(j, { size: 16 }),
43
43
  "aria-label": "Undo",
44
44
  title: "Undo",
45
45
  isDisabled: e.isDisabled || !e.canUndo,
46
46
  onClick: e.onUndo
47
47
  }
48
48
  ),
49
- /* @__PURE__ */ o(
50
- y,
49
+ /* @__PURE__ */ n(
50
+ D,
51
51
  {
52
52
  size: "xs",
53
53
  color: "secondary",
54
- iconLeading: /* @__PURE__ */ o(j, { size: 16 }),
54
+ iconLeading: /* @__PURE__ */ n(F, { size: 16 }),
55
55
  "aria-label": "Redo",
56
56
  title: "Redo",
57
57
  isDisabled: e.isDisabled || !e.canRedo,
58
58
  onClick: e.onRedo
59
59
  }
60
60
  )
61
- ] })), Y = ({ config: e, content: i }) => {
61
+ ] })), Z = ({ config: e, content: i }) => {
62
62
  const l = e.sorts.some((r) => r.field !== "" && r.direction !== "");
63
63
  return /* @__PURE__ */ p(
64
64
  x.Root,
@@ -69,45 +69,45 @@ const X = ({ config: e }) => ($({
69
69
  },
70
70
  children: [
71
71
  /* @__PURE__ */ p(
72
- y,
72
+ D,
73
73
  {
74
74
  size: "xs",
75
75
  color: "secondary",
76
- iconLeading: /* @__PURE__ */ o(F, { size: 12 }),
77
- className: N(
76
+ iconLeading: /* @__PURE__ */ n(P, { size: 12 }),
77
+ className: A(
78
78
  l && "ring-1 ring-brand-600 bg-brand-primary text-brand-600 hover:bg-brand-primary hover:text-brand-600"
79
79
  ),
80
80
  children: [
81
81
  "Sort",
82
- l && /* @__PURE__ */ o("span", { className: "ml-1 text-xs font-semibold text-brand-600", children: e.sorts.length })
82
+ l && /* @__PURE__ */ n("span", { className: "ml-1 text-xs font-semibold text-brand-600", children: e.sorts.length })
83
83
  ]
84
84
  }
85
85
  ),
86
- /* @__PURE__ */ o(x.Popover, { className: "w-auto min-w-[300px]", children: i })
86
+ /* @__PURE__ */ n(x.Popover, { className: "w-auto min-w-[300px]", children: i })
87
87
  ]
88
88
  }
89
89
  );
90
- }, Z = ({ config: e, content: i }) => {
90
+ }, ee = ({ config: e, content: i }) => {
91
91
  const l = e.meaningfulConditionsCount > 0;
92
92
  return /* @__PURE__ */ p(x.Root, { isOpen: e.isOpen, onOpenChange: e.onOpenChange, children: [
93
93
  /* @__PURE__ */ p(
94
- y,
94
+ D,
95
95
  {
96
96
  size: "xs",
97
97
  color: "secondary",
98
- iconLeading: /* @__PURE__ */ o(E, { name: "FilterLines", size: 12 }),
99
- className: N(
98
+ iconLeading: /* @__PURE__ */ n(J, { name: "FilterLines", size: 12 }),
99
+ className: A(
100
100
  l && "ring-1 ring-brand-600 bg-brand-primary text-brand-600 hover:bg-brand-primary hover:text-brand-600"
101
101
  ),
102
102
  children: [
103
103
  "Filter",
104
- l && /* @__PURE__ */ o("span", { className: "ml-1 text-xs font-semibold text-brand-600", children: e.meaningfulConditionsCount })
104
+ l && /* @__PURE__ */ n("span", { className: "ml-1 text-xs font-semibold text-brand-600", children: e.meaningfulConditionsCount })
105
105
  ]
106
106
  }
107
107
  ),
108
- /* @__PURE__ */ o(x.Popover, { className: "w-auto min-w-[300px]", children: i })
108
+ /* @__PURE__ */ n(x.Popover, { className: "w-auto min-w-[300px]", children: i })
109
109
  ] });
110
- }, be = ({
110
+ }, we = ({
111
111
  className: e,
112
112
  fallbackTitle: i,
113
113
  undoRedo: l,
@@ -119,122 +119,124 @@ const X = ({ config: e }) => ($({
119
119
  align: h,
120
120
  groupBy: m,
121
121
  summary: g,
122
- trailing: z,
123
- searchCollapsible: R,
124
- disableExtendedTools: n = !1,
125
- sortContent: s,
126
- filterContent: a
122
+ beforeSearch: z,
123
+ trailing: y,
124
+ searchCollapsible: o,
125
+ disableExtendedTools: s = !1,
126
+ sortContent: a,
127
+ filterContent: d
127
128
  }) => {
128
- const d = D(
129
- () => r && s ? J(s, r) : s,
130
- [r, s]
131
- ), b = D(
132
- () => t && a ? Q(a, t) : a,
133
- [t, a]
134
- ), S = D(() => {
129
+ const b = S(
130
+ () => r && a ? Q(a, r) : a,
131
+ [r, a]
132
+ ), w = S(
133
+ () => t && d ? X(d, t) : d,
134
+ [t, d]
135
+ ), N = S(() => {
135
136
  const c = [];
136
- if (l && c.push({ id: "undo-redo", node: /* @__PURE__ */ o(X, { config: l }) }), r && d) {
137
- const w = r.sorts.some((f) => f.field !== "" && f.direction !== "");
137
+ if (l && c.push({ id: "undo-redo", node: /* @__PURE__ */ n(Y, { config: l }) }), r && b) {
138
+ const f = r.sorts.some((R) => R.field !== "" && R.direction !== "");
138
139
  c.push({
139
140
  id: "sort",
140
- widthKey: w ? String(r.sorts.length) : "",
141
- node: /* @__PURE__ */ o(Y, { config: r, content: d })
141
+ widthKey: f ? String(r.sorts.length) : "",
142
+ node: /* @__PURE__ */ n(Z, { config: r, content: b })
142
143
  });
143
144
  }
144
- if (t && b && c.push({
145
+ if (t && w && c.push({
145
146
  id: "filter",
146
147
  widthKey: t.meaningfulConditionsCount > 0 ? String(t.meaningfulConditionsCount) : "",
147
- node: /* @__PURE__ */ o(Z, { config: t, content: b })
148
+ node: /* @__PURE__ */ n(ee, { config: t, content: w })
148
149
  }), C && c.push({
149
150
  id: "row-height",
150
- node: /* @__PURE__ */ o(_, { ...C, isDisabled: n })
151
+ node: /* @__PURE__ */ n(B, { ...C, isDisabled: s })
151
152
  }), v && c.push({
152
153
  id: "hide-fields",
153
154
  widthKey: v.hiddenColumns.size > 0 ? String(v.hiddenColumns.size) : "",
154
- node: /* @__PURE__ */ o(G, { ...v, isDisabled: n })
155
- }), h && c.push({ id: "align", node: /* @__PURE__ */ o(H, { ...h, isDisabled: n }) }), m) {
156
- const w = m.value ? m.schema.find((k) => k.value === m.value) : void 0, f = w ? V(w, m.labelMeta) : "";
155
+ node: /* @__PURE__ */ n(_, { ...v, isDisabled: s })
156
+ }), h && c.push({ id: "align", node: /* @__PURE__ */ n(T, { ...h, isDisabled: s }) }), m) {
157
+ const f = m.value ? m.schema.find((K) => K.value === m.value) : void 0, R = f ? $(f, m.labelMeta) : "";
157
158
  c.push({
158
159
  id: "group-by",
159
- widthKey: f,
160
- node: /* @__PURE__ */ o(T, { ...m, isDisabled: n })
160
+ widthKey: R,
161
+ node: /* @__PURE__ */ n(G, { ...m, isDisabled: s })
161
162
  });
162
163
  }
163
164
  return g && c.push({
164
165
  id: "summary",
165
- node: /* @__PURE__ */ o(B, { ...g, isDisabled: n })
166
+ node: /* @__PURE__ */ n(V, { ...g, isDisabled: s })
166
167
  }), c;
167
168
  }, [
168
169
  l,
169
170
  r,
170
- d,
171
- t,
172
171
  b,
172
+ t,
173
+ w,
173
174
  C,
174
175
  v,
175
176
  h,
176
177
  m,
177
178
  g,
178
- n
179
+ s
179
180
  ]);
180
- return /* @__PURE__ */ p("div", { className: N("flex justify-between items-center gap-2", e), children: [
181
- S.length > 0 ? /* @__PURE__ */ o(ne, { items: S }) : i ? /* @__PURE__ */ o("h4", { className: "text-sm font-normal text-secondary", children: i }) : /* @__PURE__ */ o("div", {}),
181
+ return /* @__PURE__ */ p("div", { className: A("flex justify-between items-center gap-2", e), children: [
182
+ N.length > 0 ? /* @__PURE__ */ n(oe, { items: N }) : i ? /* @__PURE__ */ n("h4", { className: "text-sm font-normal text-secondary", children: i }) : /* @__PURE__ */ n("div", {}),
182
183
  /* @__PURE__ */ p("div", { className: "flex items-center gap-2 shrink-0", children: [
183
- u && /* @__PURE__ */ o(
184
- q,
184
+ z,
185
+ u && /* @__PURE__ */ n(
186
+ E,
185
187
  {
186
188
  size: "sm",
187
189
  placeholder: "Search",
188
190
  value: u.value,
189
191
  onChange: u.onChange,
190
- collapsible: R,
191
- isDisabled: n,
192
+ collapsible: o,
193
+ isDisabled: s,
192
194
  shortcut: u.shortcut
193
195
  }
194
196
  ),
195
- z
197
+ y
196
198
  ] })
197
199
  ] });
198
- }, ee = 40, U = 8, ne = ({ items: e }) => {
199
- const i = A(null), l = A(/* @__PURE__ */ new Map()), [r, t] = I(() => /* @__PURE__ */ new Map()), [u, C] = I(null), v = D(() => e.map((n) => `${n.id}:${n.widthKey ?? ""}`).join("|"), [e]);
200
- K(() => {
200
+ }, ne = 40, L = 8, oe = ({ items: e }) => {
201
+ const i = I(null), l = I(/* @__PURE__ */ new Map()), [r, t] = O(() => /* @__PURE__ */ new Map()), [u, C] = O(null), v = S(() => e.map((o) => `${o.id}:${o.widthKey ?? ""}`).join("|"), [e]);
202
+ W(() => {
201
203
  t(/* @__PURE__ */ new Map());
202
- }, [v]), O(() => {
204
+ }, [v]), U(() => {
203
205
  if (r.size === e.length) return;
204
- const n = /* @__PURE__ */ new Map();
206
+ const o = /* @__PURE__ */ new Map();
205
207
  for (const s of e) {
206
208
  const a = l.current.get(s.id);
207
- a && n.set(s.id, a.getBoundingClientRect().width);
209
+ a && o.set(s.id, a.getBoundingClientRect().width);
208
210
  }
209
- n.size === e.length && t(n);
210
- }, [e, r]), O(() => {
211
- const n = i.current;
212
- if (!n) return;
211
+ o.size === e.length && t(o);
212
+ }, [e, r]), U(() => {
213
+ const o = i.current;
214
+ if (!o) return;
213
215
  const s = () => {
214
216
  i.current && C(i.current.clientWidth);
215
217
  };
216
218
  s();
217
219
  const a = new ResizeObserver(s);
218
- return a.observe(n), () => a.disconnect();
220
+ return a.observe(o), () => a.disconnect();
219
221
  }, []);
220
- const h = r.size === e.length, { visibleIds: m, overflowIds: g } = D(() => {
222
+ const h = r.size === e.length, { visibleIds: m, overflowIds: g } = S(() => {
221
223
  if (!h || u == null)
222
224
  return {
223
225
  visibleIds: new Set(e.map((d) => d.id)),
224
226
  overflowIds: /* @__PURE__ */ new Set()
225
227
  };
226
- let n = 0;
228
+ let o = 0;
227
229
  const s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
228
230
  for (let d = 0; d < e.length; d++) {
229
- const b = e[d].id, S = r.get(b) ?? 0, w = e.length - d - 1 > 0 ? ee + U : 0;
230
- if (n + S + w > u) {
231
+ const b = e[d].id, w = r.get(b) ?? 0, c = e.length - d - 1 > 0 ? ne + L : 0;
232
+ if (o + w + c > u) {
231
233
  for (let f = d; f < e.length; f++) a.add(e[f].id);
232
234
  break;
233
235
  }
234
- n += S + U, s.add(b);
236
+ o += w + L, s.add(b);
235
237
  }
236
238
  return { visibleIds: s, overflowIds: a };
237
- }, [e, r, u, h]), z = e.filter((n) => m.has(n.id)), R = e.filter((n) => g.has(n.id));
239
+ }, [e, r, u, h]), z = e.filter((o) => m.has(o.id)), y = e.filter((o) => g.has(o.id));
238
240
  return /* @__PURE__ */ p(
239
241
  "div",
240
242
  {
@@ -242,36 +244,36 @@ const X = ({ config: e }) => ($({
242
244
  className: "flex items-center gap-2 min-w-0 flex-1 overflow-hidden",
243
245
  style: h ? void 0 : { visibility: "hidden" },
244
246
  children: [
245
- (h ? z : e).map((n) => /* @__PURE__ */ o(
247
+ (h ? z : e).map((o) => /* @__PURE__ */ n(
246
248
  "div",
247
249
  {
248
250
  ref: (s) => {
249
- l.current.set(n.id, s);
251
+ l.current.set(o.id, s);
250
252
  },
251
253
  className: "shrink-0",
252
- children: n.node
254
+ children: o.node
253
255
  },
254
- n.id
256
+ o.id
255
257
  )),
256
- h && R.length > 0 && /* @__PURE__ */ p(x.Root, { children: [
257
- /* @__PURE__ */ o(
258
- y,
258
+ h && y.length > 0 && /* @__PURE__ */ p(x.Root, { children: [
259
+ /* @__PURE__ */ n(
260
+ D,
259
261
  {
260
262
  size: "xs",
261
263
  color: "secondary",
262
- iconLeading: /* @__PURE__ */ o(P, { size: 16 }),
264
+ iconLeading: /* @__PURE__ */ n(H, { size: 16 }),
263
265
  "aria-label": "More tools",
264
266
  title: "More tools",
265
267
  className: "shrink-0"
266
268
  }
267
269
  ),
268
- /* @__PURE__ */ o(x.Popover, { className: "w-auto", children: /* @__PURE__ */ o("div", { className: "flex flex-col items-stretch gap-2 p-2 min-w-[180px]", children: R.map((n) => /* @__PURE__ */ o("div", { className: "[&>*]:w-full", children: n.node }, n.id)) }) })
270
+ /* @__PURE__ */ n(x.Popover, { className: "w-auto", children: /* @__PURE__ */ n("div", { className: "flex flex-col items-stretch gap-2 p-2 min-w-[180px]", children: y.map((o) => /* @__PURE__ */ n("div", { className: "[&>*]:w-full", children: o.node }, o.id)) }) })
269
271
  ] })
270
272
  ]
271
273
  }
272
274
  );
273
275
  };
274
- function we(e) {
276
+ function xe(e) {
275
277
  return {
276
278
  sort: e.sort,
277
279
  filter: e.filter,
@@ -279,6 +281,6 @@ function we(e) {
279
281
  };
280
282
  }
281
283
  export {
282
- be as TableToolbar,
283
- we as pickCoreToolbarProps
284
+ we as TableToolbar,
285
+ xe as pickCoreToolbarProps
284
286
  };
@@ -4,7 +4,7 @@ import { UndoRedoToolConfig } from './toolbar/TableToolbar';
4
4
  import { LegacyFilterToolConfig, LegacySortToolConfig } from './toolbar/legacyToolbarTypes';
5
5
  import { AlignToolConfig, GroupByToolConfig, HideFieldsToolConfig, RowHeightToolConfig, SearchToolConfig, SummaryToolConfig, CellAlignment, ColumnMenuAction, ColumnMenuCapabilities, RowActionsConfig, RowGroup, SummaryFooterRowProps } from './toolbar';
6
6
  import { TableCellRangeRect, TableCellSelection } from './cellRangeSelection';
7
- export type { TableCellCoord, TableCellRangeRect, TableCellSelection } from './cellRangeSelection';
7
+ export type { TableCellCoord, TableCellRangeRect, TableCellSelection, } from './cellRangeSelection';
8
8
  /** Value type used for alignment defaults and aggregation eligibility. */
9
9
  export type TableColumnValueType = "string" | "number" | "currency" | "date" | "percentage" | "decimal_percentage" | "array" | "link";
10
10
  /**
@@ -34,6 +34,41 @@ export interface TableColumnMenuSchema {
34
34
  }
35
35
  /** Alias for `TablePaginationConfig` — matches platform-ui `TableWrapperPaginationConfig`. */
36
36
  export type TableWrapperPaginationConfig = TablePaginationConfig;
37
+ /**
38
+ * Opt-in Excel-style zoom for horizontally wide tables. Values are percentages, and the
39
+ * zoom scales the whole grid — text, padding, row heights and column widths together —
40
+ * so lowering it fits more columns in the available width at a smaller size.
41
+ *
42
+ * Zooming out never paints the grid narrower than its container: the columns shrink while
43
+ * the grid still overflows, then hold once it exactly fills, so the table is never left
44
+ * with dead space to its right.
45
+ *
46
+ * Requires CSS `zoom` (Chrome 128+, Safari, Firefox 126+). On an engine without it the
47
+ * table falls back to its unzoomed layout and the control is not rendered, so there is no
48
+ * dead slider — but there is also no zoom.
49
+ *
50
+ * The object may be a fresh literal on every render; `TableWrapper` keys its internal
51
+ * config off the four values below, not the object identity, so an inline literal will not
52
+ * reset a zoom level the user has set.
53
+ */
54
+ export type TableZoomConfig = {
55
+ /** Initial zoom percentage. Defaults to 100. */
56
+ defaultZoom?: number;
57
+ /**
58
+ * Lowest allowed zoom percentage. Defaults to 60, and is the real limit — zooming out
59
+ * past the point where the grid fits is allowed, so on a table that already fills its
60
+ * container the columns keep shrinking and the right edge pulls in from the container.
61
+ */
62
+ minZoom?: number;
63
+ /** Highest allowed zoom percentage. Defaults to 120. */
64
+ maxZoom?: number;
65
+ /**
66
+ * Increment the slider snaps to, in percentage points. Defaults to 10. Steps are measured
67
+ * from `minZoom`, so a step that divides the range keeps the readout on round numbers.
68
+ * Set to 1 for continuous dragging.
69
+ */
70
+ step?: number;
71
+ };
37
72
  export type TableWrapperToolbarConfig = {
38
73
  sort?: LegacySortToolConfig;
39
74
  filter?: LegacyFilterToolConfig;
@@ -137,6 +172,8 @@ export type TableWrapperProps = {
137
172
  labelMeta?: unknown;
138
173
  toolbarSlot?: ReactNode;
139
174
  fillWidth?: boolean;
175
+ /** Enables compact column zoom controls and calculated column widths. */
176
+ zoom?: TableZoomConfig;
140
177
  rowActions?: RowActionsConfig;
141
178
  onCellActivate?: (info: {
142
179
  rowId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { ReactNode, RefObject } from 'react';
2
2
  export type GridNavDirection = "up" | "down" | "left" | "right";
3
+ /** Options for moving grid focus; `dir` lets the scroll align the edge being travelled toward. */
4
+ export type FocusGridCellOptions = {
5
+ dir?: GridNavDirection | null;
6
+ };
3
7
  export interface GridNeighbor {
4
8
  rowId: string;
5
9
  columnKey: string;
@@ -9,7 +13,7 @@ export interface GridNeighbor {
9
13
  export interface GridNavValue {
10
14
  getNeighbor: (rowId: string, columnKey: string, dir: GridNavDirection) => GridNeighbor | null;
11
15
  getTabNeighbor: (rowId: string, columnKey: string, forward: boolean) => GridNeighbor | null;
12
- focusCell: (rowId: string, columnKey: string) => boolean;
16
+ focusCell: (rowId: string, columnKey: string, options?: FocusGridCellOptions) => boolean;
13
17
  selectCell: (rowId: string, columnKey: string, sourceIndex?: number | null) => void;
14
18
  setEditingCell: (cell: {
15
19
  rowId: string;
@@ -21,8 +25,15 @@ export declare const isWithinCellEditor: (target: EventTarget | null) => boolean
21
25
  export declare const findGridCell: (container: HTMLElement | null, rowId: string, columnKey: string) => HTMLElement | null;
22
26
  export declare const getGridNeighbor: (container: HTMLElement | null, rowIds: readonly string[], columnKeys: readonly string[], rowId: string, columnKey: string, dir: GridNavDirection) => GridNeighbor | null;
23
27
  export declare const getGridTabNeighbor: (container: HTMLElement | null, rowIds: readonly string[], columnKeys: readonly string[], rowId: string, columnKey: string, forward: boolean) => GridNeighbor | null;
24
- export declare const focusGridCellElement: (cell: HTMLElement | null) => boolean;
25
- export declare const focusGridCell: (container: HTMLElement | null, rowId: string, columnKey: string) => boolean;
28
+ /**
29
+ * Focus a cell and bring it fully into view.
30
+ *
31
+ * The implicit scroll from `focus()` is suppressed: it targets the inner focus wrapper and ignores
32
+ * sticky chrome, so it leaves the cell's padding and range border clipped. `scrollGridCellIntoView`
33
+ * scrolls the `<td>` itself, accounting for the sticky header and sticky columns.
34
+ */
35
+ export declare const focusGridCellElement: (cell: HTMLElement | null, options?: FocusGridCellOptions) => boolean;
36
+ export declare const focusGridCell: (container: HTMLElement | null, rowId: string, columnKey: string, options?: FocusGridCellOptions) => boolean;
26
37
  export declare const GridNavProvider: ({ rowIds, columnKeys, containerRef, onSelectCell, onEditingCellChange, children, }: {
27
38
  rowIds: string[];
28
39
  columnKeys: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"useGridKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/useGridKeyboardNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExG,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,KAAK,YAAY,GAAG,IAAI,CAAC;IAC9F,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,YAAY,GAAG,IAAI,CAAC;IAC5F,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpF,cAAc,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7E;AAOD,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,GAAI,QAAQ,WAAW,GAAG,IAAI,KAAG,OAO/D,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,WAAW,WAAW,GAAG,IAAI,EAC7B,OAAO,MAAM,EACb,WAAW,MAAM,KAChB,WAAW,GAAG,IAAqF,CAAC;AA4BvG,eAAO,MAAM,eAAe,GAC1B,WAAW,WAAW,GAAG,IAAI,EAC7B,QAAQ,SAAS,MAAM,EAAE,EACzB,YAAY,SAAS,MAAM,EAAE,EAC7B,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,KAAK,gBAAgB,KACpB,YAAY,GAAG,IAajB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,WAAW,GAAG,IAAI,EAC7B,QAAQ,SAAS,MAAM,EAAE,EACzB,YAAY,SAAS,MAAM,EAAE,EAC7B,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,SAAS,OAAO,KACf,YAAY,GAAG,IAgBjB,CAAC;AAKF,eAAO,MAAM,oBAAoB,GAAI,MAAM,WAAW,GAAG,IAAI,KAAG,OAK/D,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,WAAW,WAAW,GAAG,IAAI,EAAE,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,OAC/B,CAAC;AAElE,eAAO,MAAM,eAAe,GAAI,oFAO7B;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtF,mBAAmB,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,SAAS,CAAC;CACrB,4CA8BA,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,YAAY,GAAG,IAAkC,CAAC"}
1
+ {"version":3,"file":"useGridKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/useGridKeyboardNavigation.tsx"],"names":[],"mappings":"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"}
@@ -1,65 +1,66 @@
1
1
  import { jsx as C } from "react/jsx-runtime";
2
- import { useContext as h, useCallback as g, useMemo as p, createContext as G } from "react";
3
- const x = G(null), S = (e, t) => `[data-grid-cell][data-grid-row-id="${CSS.escape(e)}"][data-grid-col-key="${CSS.escape(t)}"]`, q = (e) => e instanceof HTMLElement ? !!(e.closest('[contenteditable]:not([contenteditable="false"])') || e.closest("input, textarea, select") || e.closest('[role="textbox"]')) : !1, b = (e, t, r) => (e == null ? void 0 : e.querySelector(S(t, r))) ?? null, N = (e, t, r, u, c) => {
4
- if (u < 0 || u >= t.length || c < 0 || c >= r.length) return null;
5
- const s = t[u], i = r[c], l = b(e, s, i);
6
- if (!l) return null;
7
- const n = l.getAttribute("data-grid-source-index"), o = n != null && n !== "" ? Number(n) : NaN;
2
+ import { useContext as p, useCallback as g, useMemo as h, createContext as G } from "react";
3
+ import { scrollGridCellIntoView as S } from "./scrollCellIntoView.js";
4
+ const x = G(null), v = (e, r) => `[data-grid-cell][data-grid-row-id="${CSS.escape(e)}"][data-grid-col-key="${CSS.escape(r)}"]`, M = (e) => e instanceof HTMLElement ? !!(e.closest('[contenteditable]:not([contenteditable="false"])') || e.closest("input, textarea, select") || e.closest('[role="textbox"]')) : !1, b = (e, r, t) => (e == null ? void 0 : e.querySelector(v(r, t))) ?? null, N = (e, r, t, l, c) => {
5
+ if (l < 0 || l >= r.length || c < 0 || c >= t.length) return null;
6
+ const s = r[l], u = t[c], i = b(e, s, u);
7
+ if (!i) return null;
8
+ const n = i.getAttribute("data-grid-source-index"), o = n != null && n !== "" ? Number(n) : NaN;
8
9
  return {
9
10
  rowId: s,
10
- columnKey: i,
11
+ columnKey: u,
11
12
  sourceIndex: Number.isNaN(o) ? null : o,
12
- element: l
13
+ element: i
13
14
  };
14
- }, v = (e, t, r, u, c, s) => {
15
- const i = t.indexOf(u), l = r.indexOf(c);
16
- if (i === -1 || l === -1) return null;
17
- let n = i, o = l;
18
- return s === "up" ? n -= 1 : s === "down" ? n += 1 : s === "left" ? o -= 1 : s === "right" && (o += 1), N(e, t, r, n, o);
19
- }, m = (e, t, r, u, c, s) => {
20
- const i = t.indexOf(u), l = r.indexOf(c);
21
- if (i === -1 || l === -1) return null;
22
- let n = i, o = l + (s ? 1 : -1);
23
- return o >= r.length ? (o = 0, n += 1) : o < 0 && (o = r.length - 1, n -= 1), N(e, t, r, n, o);
24
- }, I = (e) => (e == null ? void 0 : e.querySelector("[data-grid-focus]")) ?? e, O = (e) => {
25
- const t = I(e);
26
- return !t || typeof t.focus != "function" ? !1 : (t.focus(), !0);
27
- }, T = (e, t, r) => O(b(e, t, r)), M = ({
15
+ }, m = (e, r, t, l, c, s) => {
16
+ const u = r.indexOf(l), i = t.indexOf(c);
17
+ if (u === -1 || i === -1) return null;
18
+ let n = u, o = i;
19
+ return s === "up" ? n -= 1 : s === "down" ? n += 1 : s === "left" ? o -= 1 : s === "right" && (o += 1), N(e, r, t, n, o);
20
+ }, I = (e, r, t, l, c, s) => {
21
+ const u = r.indexOf(l), i = t.indexOf(c);
22
+ if (u === -1 || i === -1) return null;
23
+ let n = u, o = i + (s ? 1 : -1);
24
+ return o >= t.length ? (o = 0, n += 1) : o < 0 && (o = t.length - 1, n -= 1), N(e, r, t, n, o);
25
+ }, O = (e) => (e == null ? void 0 : e.querySelector("[data-grid-focus]")) ?? e, T = (e, r = {}) => {
26
+ const t = O(e);
27
+ return !t || typeof t.focus != "function" ? !1 : (t.focus({ preventScroll: !0 }), S(e, { dir: r.dir ?? null }), !0);
28
+ }, E = (e, r, t, l = {}) => T(b(e, r, t), l), P = ({
28
29
  rowIds: e,
29
- columnKeys: t,
30
- containerRef: r,
31
- onSelectCell: u,
30
+ columnKeys: r,
31
+ containerRef: t,
32
+ onSelectCell: l,
32
33
  onEditingCellChange: c,
33
34
  children: s
34
35
  }) => {
35
- const i = g(
36
- (d, f, a) => v(r.current, e, t, d, f, a),
37
- [r, e, t]
38
- ), l = g(
39
- (d, f, a) => m(r.current, e, t, d, f, a),
40
- [r, e, t]
36
+ const u = g(
37
+ (d, f, a) => m(t.current, e, r, d, f, a),
38
+ [t, e, r]
39
+ ), i = g(
40
+ (d, f, a) => I(t.current, e, r, d, f, a),
41
+ [t, e, r]
41
42
  ), n = g(
42
- (d, f) => T(r.current, d, f),
43
- [r]
44
- ), o = p(
43
+ (d, f, a) => E(t.current, d, f, a),
44
+ [t]
45
+ ), o = h(
45
46
  () => ({
46
- getNeighbor: i,
47
- getTabNeighbor: l,
47
+ getNeighbor: u,
48
+ getTabNeighbor: i,
48
49
  focusCell: n,
49
- selectCell: u,
50
+ selectCell: l,
50
51
  setEditingCell: c
51
52
  }),
52
- [i, l, n, u, c]
53
+ [u, i, n, l, c]
53
54
  );
54
55
  return /* @__PURE__ */ C(x.Provider, { value: o, children: s });
55
- }, P = () => h(x);
56
+ }, $ = () => p(x);
56
57
  export {
57
- M as GridNavProvider,
58
+ P as GridNavProvider,
58
59
  b as findGridCell,
59
- T as focusGridCell,
60
- O as focusGridCellElement,
61
- v as getGridNeighbor,
62
- m as getGridTabNeighbor,
63
- q as isWithinCellEditor,
64
- P as useGridKeyboardNavigation
60
+ E as focusGridCell,
61
+ T as focusGridCellElement,
62
+ m as getGridNeighbor,
63
+ I as getGridTabNeighbor,
64
+ M as isWithinCellEditor,
65
+ $ as useGridKeyboardNavigation
65
66
  };