@box-kite/react 2.2.14 → 2.2.16

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 (136) hide show
  1. package/.claude/rules/box-kite-rules.md +1 -1
  2. package/.claude/skills/box-kite/SKILL.md +1 -1
  3. package/.claude/skills/box-kite/references/styling.md +1 -1
  4. package/.cursor/rules/box-kite.mdc +1 -1
  5. package/AGENTS.md +1 -1
  6. package/BOX_AI_CONTEXT.md +16 -0
  7. package/BOX_KITE_AI_CONTEXT.md +16 -0
  8. package/behavior.cjs +1 -1
  9. package/behavior.mjs +16 -16
  10. package/catalog.cjs +1 -1
  11. package/catalog.mjs +1 -1
  12. package/client.cjs +1 -1
  13. package/client.mjs +10 -10
  14. package/components/accordion.cjs +1 -1
  15. package/components/accordion.mjs +95 -91
  16. package/components/calendar.cjs +1 -1
  17. package/components/calendar.mjs +212 -210
  18. package/components/chart.cjs +1 -1
  19. package/components/chart.d.ts +8 -3
  20. package/components/chart.mjs +70 -65
  21. package/components/combobox.cjs +1 -1
  22. package/components/combobox.mjs +187 -186
  23. package/components/dashboard.cjs +1 -1
  24. package/components/dashboard.d.ts +1 -44
  25. package/components/dashboard.mjs +202 -201
  26. package/components/dataGrid/components/dataGridListLayout.d.ts +1 -1
  27. package/components/dataGrid/contracts/dataGridContract.d.ts +1 -1
  28. package/components/dataGrid/models/gridModel.d.ts +1 -1
  29. package/components/dataGrid.cjs +2 -2
  30. package/components/dataGrid.mjs +10 -10
  31. package/components/dateField.cjs +1 -1
  32. package/components/dateField.mjs +96 -96
  33. package/components/datePicker.cjs +1 -1
  34. package/components/datePicker.mjs +177 -179
  35. package/components/dialog.cjs +1 -1
  36. package/components/dialog.d.ts +2 -64
  37. package/components/dialog.mjs +130 -126
  38. package/components/form.cjs +1 -1
  39. package/components/form.d.ts +4 -3
  40. package/components/form.mjs +25 -22
  41. package/components/menu.cjs +1 -1
  42. package/components/menu.d.ts +2 -73
  43. package/components/menu.mjs +222 -218
  44. package/components/overlay.cjs +1 -1
  45. package/components/overlay.mjs +43 -43
  46. package/components/popover.cjs +1 -1
  47. package/components/popover.d.ts +1 -41
  48. package/components/popover.mjs +55 -51
  49. package/components/radioGroup.cjs +1 -1
  50. package/components/radioGroup.mjs +59 -55
  51. package/components/slider.cjs +1 -1
  52. package/components/slider.d.ts +1 -55
  53. package/components/slider.mjs +92 -90
  54. package/components/sortableList.cjs +1 -1
  55. package/components/sortableList.mjs +149 -148
  56. package/components/swipeItem.cjs +1 -1
  57. package/components/swipeItem.mjs +100 -100
  58. package/components/tabs.cjs +1 -1
  59. package/components/tabs.mjs +135 -132
  60. package/components/toaster.cjs +1 -1
  61. package/components/toaster.d.ts +1 -37
  62. package/components/toaster.mjs +130 -128
  63. package/components/tooltip.cjs +1 -1
  64. package/components/tooltip.d.ts +1 -34
  65. package/components/tooltip.mjs +73 -69
  66. package/components/virtualList.cjs +1 -1
  67. package/components/virtualList.mjs +88 -87
  68. package/interactionListening.cjs +1 -1
  69. package/interactionListening.mjs +3 -3
  70. package/layer.cjs +1 -1
  71. package/layer.mjs +1 -1
  72. package/package.json +31 -30
  73. package/placement.cjs +1 -1
  74. package/placement.mjs +1 -1
  75. package/platform.cjs +1 -1
  76. package/platform.mjs +17 -14
  77. package/react/componentsContext.d.ts +1 -1
  78. package/react-shared.cjs +1 -1
  79. package/react-shared.mjs +1 -1
  80. package/scrolling.cjs +1 -1
  81. package/scrolling.mjs +1 -1
  82. package/utils/chart/chartUtils.d.ts +3 -2
  83. package/utils/dashboard/dashboardUtils.d.ts +1 -1
  84. package/utils/dom/domUtils.d.ts +6 -0
  85. package/create/src/agents.d.ts +0 -22
  86. package/create/src/agents.test.d.ts +0 -1
  87. package/create/src/index.d.ts +0 -1
  88. package/create/src/options.d.ts +0 -31
  89. package/create/src/options.test.d.ts +0 -1
  90. package/create/src/packageManager.d.ts +0 -5
  91. package/create/src/project.d.ts +0 -27
  92. package/create/src/project.test.d.ts +0 -1
  93. package/create/templates/ts/designs/azure.d.ts +0 -5
  94. package/create/templates/ts/designs/ember.d.ts +0 -5
  95. package/create/templates/ts/designs/mono.d.ts +0 -5
  96. package/create/templates/ts/src/App.d.ts +0 -2
  97. package/create/templates/ts/src/design.d.ts +0 -5
  98. package/create/templates/ts/src/main.d.ts +0 -0
  99. package/mcp/src/data.d.ts +0 -90
  100. package/mcp/src/data.test.d.ts +0 -1
  101. package/mcp/src/engine.d.ts +0 -23
  102. package/mcp/src/index.d.ts +0 -1
  103. package/mcp/src/search.d.ts +0 -26
  104. package/mcp/src/search.test.d.ts +0 -1
  105. package/mcp/src/server.d.ts +0 -18
  106. package/mcp/src/server.test.d.ts +0 -1
  107. package/mcp/src/styles.d.ts +0 -27
  108. package/mcp/src/styles.test.d.ts +0 -1
  109. package/mcp/src/tools.d.ts +0 -18
  110. package/mcp/src/vocabulary.d.ts +0 -41
  111. package/registry/blocks/dashboard-shell/dashboard-shell.d.ts +0 -24
  112. package/registry/blocks/dashboard-shell/dashboard-stats.d.ts +0 -13
  113. package/registry/blocks/data-grid/invoice-rows.d.ts +0 -15
  114. package/registry/blocks/data-grid/invoices-grid.d.ts +0 -1
  115. package/registry/blocks/settings-form/settings-form.d.ts +0 -17
  116. package/registry/designs/store/address-form.d.ts +0 -11
  117. package/registry/designs/store/cart-items.d.ts +0 -10
  118. package/registry/designs/store/cart-page.d.ts +0 -4
  119. package/registry/designs/store/checkout-page.d.ts +0 -7
  120. package/registry/designs/store/credit-card-form.d.ts +0 -10
  121. package/registry/designs/store/form-field.d.ts +0 -19
  122. package/registry/designs/store/order-summary.d.ts +0 -18
  123. package/registry/designs/store/product-art.d.ts +0 -26
  124. package/registry/designs/store/product-card.d.ts +0 -11
  125. package/registry/designs/store/product-gallery.d.ts +0 -11
  126. package/registry/designs/store/product-grid.d.ts +0 -10
  127. package/registry/designs/store/product-page.d.ts +0 -5
  128. package/registry/designs/store/quantity-stepper.d.ts +0 -13
  129. package/registry/designs/store/shipping-method.d.ts +0 -14
  130. package/registry/designs/store/store-data.d.ts +0 -53
  131. package/registry/designs/store/store-design.d.ts +0 -63
  132. package/registry/designs/store/store-shell.d.ts +0 -12
  133. package/registry/designs/store/storefront-page.d.ts +0 -4
  134. package/registry/designs/store/variant-picker.d.ts +0 -15
  135. package/supabase/functions/collect/index.d.ts +0 -30
  136. package/supabase/functions/collect/index.test.d.ts +0 -1
@@ -1,12 +1,13 @@
1
1
  "use client";
2
- import { p as e } from "../platform.mjs";
3
- import t from "../box.mjs";
4
- import { a as n, i as r, o as i } from "../behavior.mjs";
5
- import { r as a } from "../reporting.mjs";
6
- import { useRef as o, useState as s } from "react";
7
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
2
+ import { f as e } from "../react-shared.mjs";
3
+ import { l as t, m as n } from "../platform.mjs";
4
+ import r from "../box.mjs";
5
+ import { a as i, i as a, o } from "../behavior.mjs";
6
+ import { r as s } from "../reporting.mjs";
7
+ import { useCallback as c, useRef as l, useState as u } from "react";
8
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
8
9
  //#region src/utils/slider/sliderUtils.ts
9
- var u;
10
+ var p;
10
11
  (function(e) {
11
12
  function t(e) {
12
13
  let t = String(Math.abs(e));
@@ -106,20 +107,20 @@ var u;
106
107
  return e + t.delta * i;
107
108
  }
108
109
  e.moved = m;
109
- })(u ||= {});
110
- var d = u, f = "data-index";
111
- function p(e, t, n) {
110
+ })(p ||= {});
111
+ var m = p, h = "data-index";
112
+ function g(e, t, n) {
112
113
  return {
113
114
  min: e,
114
115
  max: t,
115
116
  step: n
116
117
  };
117
118
  }
118
- function m(e, t) {
119
+ function _(e, t) {
119
120
  return t ? { insetBlockEnd: e } : { insetInlineStart: e };
120
121
  }
121
- function h(e, t, n) {
122
- let r = e.length > 1 ? Math.min(...e) : t.min, i = Math.max(...e), a = d.percent(r, t.min, t.max), o = `${Math.round((d.percent(i, t.min, t.max) - a) * 100) / 100}%`;
122
+ function v(e, t, n) {
123
+ let r = e.length > 1 ? Math.min(...e) : t.min, i = Math.max(...e), a = m.percent(r, t.min, t.max), o = `${Math.round((m.percent(i, t.min, t.max) - a) * 100) / 100}%`;
123
124
  return n ? {
124
125
  insetBlockEnd: `${Math.round(a * 100) / 100}%`,
125
126
  blockSize: o
@@ -128,124 +129,125 @@ function h(e, t, n) {
128
129
  inlineSize: o
129
130
  };
130
131
  }
131
- function g(u) {
132
- let { value: g, defaultValue: _, onValueChange: v, onValueCommit: y, min: b = 0, max: x = 100, step: S = 1, largeStep: C = S * 10, orientation: w = "horizontal", disabled: T = !1, label: E, labelledBy: D, thumbLabels: O, format: k, name: A, props: j, ...M } = u, N = o(null), P = o(null), F = o(null), I = o(!1), [L, R] = s(!1), [z, B] = r({
133
- value: g,
134
- defaultValue: _ ?? b,
135
- onChange: v
136
- }), V = p(b, x, S), H = w === "vertical", U = d.thumbs(z), W = i(z), G = a(y, "slider", "valueCommit"), K = n((e, t) => {
137
- B((t) => d.same(d.thumbs(t), e) ? t : d.shaped(t, e), t);
138
- }), q = (t) => {
139
- let n = P.current;
140
- if (!n) return;
141
- let r = d.valueAt(n.getBoundingClientRect(), t.clientX, t.clientY, w, e(n));
142
- return b + r * (x - b);
143
- }, J = (e) => N.current?.querySelectorAll("[role=\"slider\"]")[e], Y = n((e) => {
144
- if (T || e.button !== 0 || e.defaultPrevented) return;
145
- let t = q(e);
132
+ function y(e, p) {
133
+ let { value: y, defaultValue: b, onValueChange: x, onValueCommit: S, min: C = 0, max: w = 100, step: T = 1, largeStep: E = T * 10, orientation: D = "horizontal", disabled: O = !1, label: k, labelledBy: A, thumbLabels: j, format: M, name: N, props: ee, ...P } = e, F = l(null), I = c((e) => {
134
+ F.current = e, t(p, e);
135
+ }, [p]), L = l(null), R = l(null), z = l(!1), [B, V] = u(!1), [H, te] = a({
136
+ value: y,
137
+ defaultValue: b ?? C,
138
+ onChange: x
139
+ }), U = g(C, w, T), W = D === "vertical", G = m.thumbs(H), K = o(H), q = s(S, "slider", "valueCommit"), J = i((e, t) => {
140
+ te((t) => m.same(m.thumbs(t), e) ? t : m.shaped(t, e), t);
141
+ }), Y = (e) => {
142
+ let t = L.current;
143
+ if (!t) return;
144
+ let r = m.valueAt(t.getBoundingClientRect(), e.clientX, e.clientY, D, n(t));
145
+ return C + r * (w - C);
146
+ }, X = (e) => F.current?.querySelectorAll("[role=\"slider\"]")[e], Z = i((e) => {
147
+ if (O || e.button !== 0 || e.defaultPrevented) return;
148
+ let t = Y(e);
146
149
  if (t === void 0) return;
147
- let n = d.thumbs(W.current), r = d.nearest(n, t);
148
- F.current = r, e.preventDefault(), e.currentTarget.setPointerCapture?.(e.pointerId), J(r)?.focus(), K(d.move(n, r, t, V), {
150
+ let n = m.thumbs(K.current), r = m.nearest(n, t);
151
+ R.current = r, e.preventDefault(), e.currentTarget.setPointerCapture?.(e.pointerId), X(r)?.focus(), J(m.move(n, r, t, U), {
149
152
  reason: "pointer",
150
153
  event: e
151
154
  });
152
- }), X = n((e) => {
153
- let t = F.current;
155
+ }), ne = i((e) => {
156
+ let t = R.current;
154
157
  if (t === null) return;
155
- let n = q(e);
156
- n !== void 0 && (R(!0), K(d.move(d.thumbs(W.current), t, n, V), {
158
+ let n = Y(e);
159
+ n !== void 0 && (V(!0), J(m.move(m.thumbs(K.current), t, n, U), {
157
160
  reason: "pointer",
158
161
  event: e
159
162
  }));
160
- }), Z = n((e) => {
161
- F.current !== null && (F.current = null, R(!1), e.currentTarget.releasePointerCapture?.(e.pointerId), G(W.current, {
163
+ }), Q = i((e) => {
164
+ R.current !== null && (R.current = null, V(!1), e.currentTarget.releasePointerCapture?.(e.pointerId), q(K.current, {
162
165
  reason: "pointer",
163
166
  event: e
164
167
  }));
165
- }), Q = n((t) => {
166
- if (T || t.defaultPrevented) return;
167
- let n = t.target?.closest("[role=\"slider\"]"), r = Number(n?.getAttribute(f) ?? -1);
168
- if (!n || r < 0) return;
169
- let i = d.moveFor(t.key, e(n));
168
+ }), re = i((e) => {
169
+ if (O || e.defaultPrevented) return;
170
+ let t = e.target?.closest("[role=\"slider\"]"), r = Number(t?.getAttribute(h) ?? -1);
171
+ if (!t || r < 0) return;
172
+ let i = m.moveFor(e.key, n(t));
170
173
  if (!i) return;
171
- t.preventDefault(), I.current = !0, R(!0);
172
- let a = d.thumbs(W.current);
173
- K(d.move(a, r, d.moved(a[r], i, V, C), V), {
174
+ e.preventDefault(), z.current = !0, V(!0);
175
+ let a = m.thumbs(K.current);
176
+ J(m.move(a, r, m.moved(a[r], i, U, E), U), {
174
177
  reason: "keyboard",
175
- event: t
178
+ event: e
176
179
  });
177
- }), ee = n((e) => {
178
- I.current && (I.current = !1, R(!1), G(W.current, {
180
+ }), ie = i((e) => {
181
+ z.current && (z.current = !1, V(!1), q(K.current, {
179
182
  reason: "keyboard",
180
183
  event: e
181
184
  }));
182
- }), $ = U.length > 1;
183
- return /* @__PURE__ */ l(t, {
184
- ref: N,
185
+ }), $ = G.length > 1;
186
+ return /* @__PURE__ */ f(r, {
187
+ ref: I,
185
188
  component: "slider",
186
- ...M,
187
- variant: [M.variant, {
188
- vertical: H,
189
- disabled: T
189
+ ...P,
190
+ variant: [P.variant, {
191
+ vertical: W,
192
+ disabled: O
190
193
  }],
191
194
  props: {
192
195
  role: $ ? "group" : void 0,
193
- "aria-label": $ ? E : void 0,
194
- "aria-labelledby": $ ? D : void 0,
195
- ...j,
196
- onPointerDown: Y,
197
- onPointerMove: X,
198
- onPointerUp: Z,
199
- onPointerCancel: Z,
200
- onKeyDown: Q,
201
- onKeyUp: ee
196
+ "aria-label": $ ? k : void 0,
197
+ "aria-labelledby": $ ? A : void 0,
198
+ ...ee,
199
+ onPointerDown: Z,
200
+ onPointerMove: ne,
201
+ onPointerUp: Q,
202
+ onPointerCancel: Q,
203
+ onKeyDown: re,
204
+ onKeyUp: ie
202
205
  },
203
206
  children: [
204
- /* @__PURE__ */ c(t, {
205
- ref: P,
207
+ /* @__PURE__ */ d(r, {
208
+ ref: L,
206
209
  component: "slider.track",
207
- variant: { vertical: H },
208
- children: /* @__PURE__ */ c(t, {
210
+ variant: { vertical: W },
211
+ children: /* @__PURE__ */ d(r, {
209
212
  component: "slider.fill",
210
213
  variant: {
211
- vertical: H,
212
- tracking: L
214
+ vertical: W,
215
+ tracking: B
213
216
  },
214
- style: h(U, V, H)
217
+ style: v(G, U, W)
215
218
  })
216
219
  }),
217
- U.map((e, n) => /* @__PURE__ */ c(t, {
220
+ G.map((e, t) => /* @__PURE__ */ d(r, {
218
221
  component: "slider.thumb",
219
222
  variant: {
220
- vertical: H,
221
- disabled: T,
222
- tracking: L
223
+ vertical: W,
224
+ disabled: O,
225
+ tracking: B
223
226
  },
224
- style: m(d.percentage(e, b, x), H),
227
+ style: _(m.percentage(e, C, w), W),
225
228
  props: {
226
229
  role: "slider",
227
- tabIndex: T ? -1 : 0,
228
- "aria-valuemin": b,
229
- "aria-valuemax": x,
230
+ tabIndex: O ? -1 : 0,
231
+ "aria-valuemin": C,
232
+ "aria-valuemax": w,
230
233
  "aria-valuenow": e,
231
- "aria-valuetext": k?.(e),
232
- "aria-orientation": w,
233
- "aria-label": O?.[n] ?? ($ ? void 0 : E),
234
- "aria-labelledby": O?.[n] || $ ? void 0 : D,
235
- "aria-disabled": T || void 0,
236
- [f]: n
234
+ "aria-valuetext": M?.(e),
235
+ "aria-orientation": D,
236
+ "aria-label": j?.[t] ?? ($ ? void 0 : k),
237
+ "aria-labelledby": j?.[t] || $ ? void 0 : A,
238
+ "aria-disabled": O || void 0,
239
+ [h]: t
237
240
  }
238
- }, n)),
239
- A !== void 0 && U.map((e, t) => /* @__PURE__ */ c("input", {
241
+ }, t)),
242
+ N !== void 0 && G.map((e, t) => /* @__PURE__ */ d("input", {
240
243
  type: "hidden",
241
- name: A,
244
+ name: N,
242
245
  value: e,
243
246
  readOnly: !0
244
247
  }, t))
245
248
  ]
246
249
  });
247
250
  }
248
- var _ = g;
249
- _.displayName = "Slider";
251
+ var b = e(y, "Slider");
250
252
  //#endregion
251
- export { _ as default };
253
+ export { b as default };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../effects.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../reporting.cjs"),a=require("./svg.cjs"),o=require("./visuallyHidden.cjs"),s=require("../scrolling.cjs"),c=require("./list.cjs");let l=require("react"),u=require("react/jsx-runtime");var d;(function(e){e.SLOP=4;function t(e){return e.top+e.height/2}function n(e,n,r){let i=e[n];if(!i)return n;let a=t(i)+r,o=n;if(r>0)for(let r=n+1;r<e.length&&a>t(e[r]);r++)o=r;else for(let r=n-1;r>=0&&a<t(e[r]);r--)o=r;return o}e.targetIndex=n;function r(e,t){let n=e[t];if(!n)return 0;let r=e.length>1?Math.max(0,e[1].top-e[0].top-e[0].height):0;return n.height+r}e.pitchOf=r;function i(e,t,n,i){return t<n&&i>t&&i<=n?-r(e,t):n<t&&i>=n&&i<t?r(e,t):0}e.shiftOf=i;function a(e,t,n){let r=e.slice();if(t===n||t<0||t>=r.length)return r;let[i]=r.splice(t,1);return r.splice(Math.max(0,Math.min(n,r.length)),0,i),r}e.move=a;function o(e,t,n){switch(e){case`ArrowUp`:return Math.max(0,t-1);case`ArrowDown`:return Math.min(n-1,t+1);case`Home`:return 0;case`End`:return n-1;default:return null}}e.keyTarget=o})(d||={});var f=d,p=(0,l.createContext)(null),m=(0,l.createContext)(null),h=48,g=12,_=`:scope > [data-sortable-value]`;function v(e){return e?Array.from(e.querySelectorAll(_)):[]}function y(e){return v(e).map(e=>e.dataset.sortableValue??``)}function b(e){return new Map(v(e).map(e=>[e.dataset.sortableValue??``,e.getBoundingClientRect().top]))}function x(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function S(e,n){let{onOrderChange:a,onOrderCommit:d,children:m,variant:_,props:S,...C}=e,w=(0,l.useRef)(null),T=(0,l.useRef)(null),E=(0,l.useRef)(null),[D,O]=(0,l.useState)(null),[k,A]=(0,l.useState)(0),[j,M]=(0,l.useState)(!1),[N,P]=(0,l.useState)(``),F=`${(0,l.useId)()}-sortable`,I=r.o(D),L=i.r(a,`sortableList`,`orderChange`),R=i.r(d,`sortableList`,`orderCommit`),z=i.i(`sortableList`),ee=(0,l.useCallback)(e=>{w.current=e,typeof n==`function`?n(e):n&&(n.current=e)},[n]),B=(e,t)=>`position ${e.indexOf(t)+1} of ${e.length}`,V=(e,t)=>{E.current=b(w.current),L(e,t)};t.n(()=>{let e=E.current;if(e){E.current=null;for(let t of v(w.current)){let n=e.get(t.dataset.sortableValue??``),r=n===void 0?0:n-t.getBoundingClientRect().top,i=parseFloat(getComputedStyle(t).transitionDuration)*1e3||0;Math.abs(r)<1||i===0||typeof t.animate!=`function`||t.animate([{translate:`0 ${r}px`},{translate:`0 0`}],{duration:i,easing:`ease-out`})}}}),(0,l.useEffect)(()=>{if(!j)return;let e=requestAnimationFrame(()=>M(!1));return()=>cancelAnimationFrame(e)},[j]),t.n(()=>{if(!D||D.pointer)return;let e=v(w.current).find(e=>e.dataset.sortableValue===D.value)?.querySelector(`[data-sortable-handle]`);e&&e.ownerDocument.activeElement!==e&&e.focus()});let H=r.a((e,t)=>{let n=e.pointer,r=w.current;if(!n||!r)return;n.lastY=t;let i=t-r.getBoundingClientRect().top-(n.startY-n.startTop),a=n.order.indexOf(e.value);n.to=f.targetIndex(n.slots,a,i),A(i)}),te=(e,t)=>{let n=w.current;if(!n)return;let r=n.getBoundingClientRect().top,i=v(n),a=i.map(e=>e.dataset.sortableValue??``),o=i.map(e=>{let t=e.getBoundingClientRect();return{top:t.top-r,height:t.height}}),s={value:t.value,name:t.name,origin:a,pointer:{id:t.id,startY:t.y,startTop:r,lastY:e.clientY,slots:o,order:a,to:a.indexOf(t.value)}};O(s),H(s,e.clientY)},U=D?.pointer!==void 0;(0,l.useEffect)(()=>{if(!U)return;let e=s.t(w.current),t=0,n=()=>{let r=I.current;if(r?.pointer){let t=r.pointer.lastY,n=e?e.getBoundingClientRect().top:0,i=e?e.getBoundingClientRect().bottom:window.innerHeight,a=t<n+h?-12:t>i-h?g:0;a&&((e??window).scrollBy(0,a),H(r,t))}t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>cancelAnimationFrame(t)},[U,H,I]);let W=(e,t,n)=>{let r=y(w.current);O({value:e,name:t,origin:r}),z(`grab`,e,{reason:n.type===`keydown`?`keyboard`:`pointer`,event:n,from:r.indexOf(e)}),P(`${t} picked up at ${B(r,e)}. Use the arrow keys to move it, Enter to drop it.`),n.preventDefault()},G=(e,t,n=y(w.current))=>{let r=n.indexOf(e.value);O(null),R(n,{reason:`keyboard`,event:t,value:e.value,from:e.origin.indexOf(e.value),to:r}),P(`${e.name} dropped at ${B(n,e.value)}.`)},K=r.a((e,t)=>{let n=y(w.current);z(`grabCancel`,e.value,{reason:t.type===`keydown`?`escape`:t.type===`blur`?`blur`:`pointercancel`,event:t}),O(null),A(0),x(n,e.origin)||V(e.origin,{reason:e.pointer?`pointer`:`keyboard`,event:t,value:e.value,from:n.indexOf(e.value),to:e.origin.indexOf(e.value)}),P(`${e.name} put back at ${B(e.origin,e.value)}.`)}),q=(e,t,n)=>{let r=y(w.current),i=r.indexOf(e.value);if(i<0||t===i)return r;let a=f.move(r,i,t);return V(a,{reason:`keyboard`,event:n,value:e.value,from:i,to:t}),P(`${e.name}, ${B(a,e.value)}.`),a},J=r.a((e,t,n)=>{e.button!==0||e.defaultPrevented||(e.preventDefault(),e.currentTarget.focus(),e.currentTarget.setPointerCapture?.(e.pointerId),T.current={id:e.pointerId,x:e.clientX,y:e.clientY,value:t,name:n})}),Y=r.a(e=>{let t=I.current;if(t?.pointer&&t.pointer.id===e.pointerId){H(t,e.clientY);return}let n=T.current;!n||n.id!==e.pointerId||Math.hypot(e.clientX-n.x,e.clientY-n.y)<f.SLOP||(T.current=null,te(e,n))}),X=r.a(e=>{let t=T.current;T.current=null;let n=I.current;if(t&&t.id===e.pointerId&&e.type===`pointerup`){n&&!n.pointer?n.value===t.value&&G(n,e):W(t.value,t.name,e);return}let r=n?.pointer;if(!n||!r||r.id!==e.pointerId)return;if(e.currentTarget.releasePointerCapture?.(e.pointerId),M(!0),e.type===`pointercancel`){E.current=b(w.current),K(n,e);return}let i=r.order.indexOf(n.value),a=f.move(r.order,i,r.to),o={reason:`pointer`,event:e,value:n.value,from:i,to:r.to};E.current=b(w.current),O(null),A(0),r.to!==i&&L(a,o),R(a,o),P(`${n.name} dropped at ${B(a,n.value)}.`)}),Z=r.a((e,t,n)=>{if(e.defaultPrevented)return;let r=I.current,i=r&&r.value===t&&!r.pointer?r:void 0;if(!i){(e.key===`Enter`||e.key===` `)&&W(t,n,e);return}if(e.key===`Escape`){e.preventDefault(),K(i,e);return}if(e.key===`Enter`||e.key===` `){e.preventDefault(),G(i,e);return}let a=y(w.current),o=f.keyTarget(e.key,a.indexOf(t),a.length);o!==null&&(e.preventDefault(),q(i,o,e))}),Q=r.a(e=>{setTimeout(()=>{let t=I.current,n=w.current;!t||t.pointer||t.value!==e||!n||n.ownerDocument.activeElement?.closest(`[data-sortable-value]`)?.getAttribute(`data-sortable-value`)!==e&&K(t,new Event(`blur`))})}),$=e=>{let t=I.current;if(!t||t.pointer||!(e.target instanceof Element))return null;let n=e.target.closest(`[data-sortable-value]`);return n&&n.parentElement===w.current&&n.dataset.sortableValue!==t.value?n:null},ne=e=>{$(e)&&e.preventDefault()},re=e=>{let t=$(e),n=I.current;!t||!n||(e.preventDefault(),e.stopPropagation(),G(n,e,q(n,y(w.current).indexOf(t.dataset.sortableValue??``),e)))},ie=(0,l.useMemo)(()=>{let e=D?.pointer,t=e?e.order.indexOf(D.value):-1;return{heldOf:e=>D&&D.value===e?D.pointer?`pointer`:`keyboard`:void 0,translateOf:n=>{if(!e)return;if(n===D.value)return`0 ${Math.round(k)}px`;let r=f.shiftOf(e.slots,t,e.to,e.order.indexOf(n));return r?`0 ${r}px`:void 0},settling:j,instructionsId:F,handleProps:(e,t)=>({type:`button`,"data-sortable-handle":``,"aria-label":`Move ${t}`,"aria-pressed":D?.value===e,"aria-describedby":F,onPointerDown:n=>J(n,e,t),onPointerMove:Y,onPointerUp:X,onPointerCancel:X,onKeyDown:n=>Z(n,e,t),onBlur:()=>Q(e)})}},[D,k,j,F,J,Y,X,Z,Q]);return(0,u.jsxs)(p.Provider,{value:ie,children:[(0,u.jsx)(c.default,{ref:ee,...C,variant:_,userSelect:U?`none`:void 0,props:{...S,onMouseDownCapture:ne,onClickCapture:re},children:m}),(0,u.jsx)(o.default,{props:{role:`status`},children:N}),(0,u.jsx)(o.default,{id:F,children:`Press Enter or Space to pick the item up, the arrow keys to move it, Enter to drop it and Escape to put it back.`})]})}function C(e,t){let{value:n,label:r,disabled:i=!1,variant:a,props:o,...s}=e,d=(0,l.useContext)(p),f=d?.heldOf(n),h=d?.translateOf(n),g=(0,l.useMemo)(()=>({value:n,name:r??n,disabled:i}),[n,r,i]);return(0,u.jsx)(m.Provider,{value:g,children:(0,u.jsx)(c.default.Item,{ref:t,...s,variant:[a,{lifted:f===`pointer`,grabbed:f===`keyboard`,settling:d?.settling??!1}],style:h?{translate:h}:void 0,props:{...o,"data-sortable-value":n}})})}function w(){return(0,u.jsx)(a.Svg,{viewBox:`0 0 16 16`,width:`1rem`,fill:`currentColor`,children:[5,11].flatMap(e=>[3,8,13].map(t=>(0,u.jsx)(a.Circle,{cx:e,cy:t,r:1.4},`${e}-${t}`)))})}function T(e,t){let{children:r,variant:i,props:a,...o}=e,s=(0,l.useContext)(p),c=(0,l.useContext)(m),d=c&&s?s.handleProps(c.value,c.name):{};return n.useBoxElement({tag:`button`,component:`sortableList.handle`,display:`flex`,ai:`center`,jc:`center`,flexShrink:0,width:10,height:10,position:`relative`,zIndex:1,css:{touchAction:`none`},...o,variant:[i,{grabbed:c?s?.heldOf(c.value)!==void 0:!1}],props:{...d,...c?.disabled?{disabled:!0}:{},...a},children:r??(0,u.jsx)(w,{})},t)}var E=e.f(S,`SortableList`);E.Item=e.f(C,`SortableList.Item`),E.Handle=e.f(T,`SortableList.Handle`),exports.SortableUtils=f,exports.default=E;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("../reporting.cjs"),o=require("./svg.cjs"),s=require("./visuallyHidden.cjs"),c=require("../scrolling.cjs"),l=require("./list.cjs");let u=require("react"),d=require("react/jsx-runtime");var f;(function(e){e.SLOP=4;function t(e){return e.top+e.height/2}function n(e,n,r){let i=e[n];if(!i)return n;let a=t(i)+r,o=n;if(r>0)for(let r=n+1;r<e.length&&a>t(e[r]);r++)o=r;else for(let r=n-1;r>=0&&a<t(e[r]);r--)o=r;return o}e.targetIndex=n;function r(e,t){let n=e[t];if(!n)return 0;let r=e.length>1?Math.max(0,e[1].top-e[0].top-e[0].height):0;return n.height+r}e.pitchOf=r;function i(e,t,n,i){return t<n&&i>t&&i<=n?-r(e,t):n<t&&i>=n&&i<t?r(e,t):0}e.shiftOf=i;function a(e,t,n){let r=e.slice();if(t===n||t<0||t>=r.length)return r;let[i]=r.splice(t,1);return r.splice(Math.max(0,Math.min(n,r.length)),0,i),r}e.move=a;function o(e,t,n){switch(e){case`ArrowUp`:return Math.max(0,t-1);case`ArrowDown`:return Math.min(n-1,t+1);case`Home`:return 0;case`End`:return n-1;default:return null}}e.keyTarget=o})(f||={});var p=f,m=(0,u.createContext)(null),h=(0,u.createContext)(null),g=48,ee=12,_=`:scope > [data-sortable-value]`;function v(e){return e?Array.from(e.querySelectorAll(_)):[]}function y(e){return v(e).map(e=>e.dataset.sortableValue??``)}function b(e){return new Map(v(e).map(e=>[e.dataset.sortableValue??``,e.getBoundingClientRect().top]))}function te(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function x(e,r){let{onOrderChange:o,onOrderCommit:f,children:h,variant:_,props:x,...S}=e,C=(0,u.useRef)(null),w=(0,u.useRef)(null),T=(0,u.useRef)(null),[E,D]=(0,u.useState)(null),[O,k]=(0,u.useState)(0),[A,j]=(0,u.useState)(!1),[ne,M]=(0,u.useState)(``),N=`${(0,u.useId)()}-sortable`,P=i.o(E),F=a.r(o,`sortableList`,`orderChange`),I=a.r(f,`sortableList`,`orderCommit`),L=a.i(`sortableList`),R=(0,u.useCallback)(e=>{C.current=e,t.l(r,e)},[r]),z=(e,t)=>`position ${e.indexOf(t)+1} of ${e.length}`,B=(e,t)=>{T.current=b(C.current),F(e,t)};n.n(()=>{let e=T.current;if(e){T.current=null;for(let t of v(C.current)){let n=e.get(t.dataset.sortableValue??``),r=n===void 0?0:n-t.getBoundingClientRect().top,i=parseFloat(getComputedStyle(t).transitionDuration)*1e3||0;Math.abs(r)<1||i===0||typeof t.animate!=`function`||t.animate([{translate:`0 ${r}px`},{translate:`0 0`}],{duration:i,easing:`ease-out`})}}}),(0,u.useEffect)(()=>{if(!A)return;let e=requestAnimationFrame(()=>j(!1));return()=>cancelAnimationFrame(e)},[A]),n.n(()=>{if(!E||E.pointer)return;let e=v(C.current).find(e=>e.dataset.sortableValue===E.value)?.querySelector(`[data-sortable-handle]`);e&&e.ownerDocument.activeElement!==e&&e.focus()});let V=i.a((e,t)=>{let n=e.pointer,r=C.current;if(!n||!r)return;n.lastY=t;let i=t-r.getBoundingClientRect().top-(n.startY-n.startTop),a=n.order.indexOf(e.value);n.to=p.targetIndex(n.slots,a,i),k(i)}),H=(e,t)=>{let n=C.current;if(!n)return;let r=n.getBoundingClientRect().top,i=v(n),a=i.map(e=>e.dataset.sortableValue??``),o=i.map(e=>{let t=e.getBoundingClientRect();return{top:t.top-r,height:t.height}}),s={value:t.value,name:t.name,origin:a,pointer:{id:t.id,startY:t.y,startTop:r,lastY:e.clientY,slots:o,order:a,to:a.indexOf(t.value)}};D(s),V(s,e.clientY)},U=E?.pointer!==void 0;(0,u.useEffect)(()=>{if(!U)return;let e=c.t(C.current),t=0,n=()=>{let r=P.current;if(r?.pointer){let t=r.pointer.lastY,n=e?e.getBoundingClientRect().top:0,i=e?e.getBoundingClientRect().bottom:window.innerHeight,a=t<n+g?-12:t>i-g?ee:0;a&&((e??window).scrollBy(0,a),V(r,t))}t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>cancelAnimationFrame(t)},[U,V,P]);let W=(e,t,n)=>{let r=y(C.current);D({value:e,name:t,origin:r}),L(`grab`,e,{reason:n.type===`keydown`?`keyboard`:`pointer`,event:n,from:r.indexOf(e)}),M(`${t} picked up at ${z(r,e)}. Use the arrow keys to move it, Enter to drop it.`),n.preventDefault()},G=(e,t,n=y(C.current))=>{let r=n.indexOf(e.value);D(null),I(n,{reason:`keyboard`,event:t,value:e.value,from:e.origin.indexOf(e.value),to:r}),M(`${e.name} dropped at ${z(n,e.value)}.`)},K=i.a((e,t)=>{let n=y(C.current);L(`grabCancel`,e.value,{reason:t.type===`keydown`?`escape`:t.type===`blur`?`blur`:`pointercancel`,event:t}),D(null),k(0),te(n,e.origin)||B(e.origin,{reason:e.pointer?`pointer`:`keyboard`,event:t,value:e.value,from:n.indexOf(e.value),to:e.origin.indexOf(e.value)}),M(`${e.name} put back at ${z(e.origin,e.value)}.`)}),q=(e,t,n)=>{let r=y(C.current),i=r.indexOf(e.value);if(i<0||t===i)return r;let a=p.move(r,i,t);return B(a,{reason:`keyboard`,event:n,value:e.value,from:i,to:t}),M(`${e.name}, ${z(a,e.value)}.`),a},J=i.a((e,t,n)=>{e.button!==0||e.defaultPrevented||(e.preventDefault(),e.currentTarget.focus(),e.currentTarget.setPointerCapture?.(e.pointerId),w.current={id:e.pointerId,x:e.clientX,y:e.clientY,value:t,name:n})}),Y=i.a(e=>{let t=P.current;if(t?.pointer&&t.pointer.id===e.pointerId){V(t,e.clientY);return}let n=w.current;!n||n.id!==e.pointerId||Math.hypot(e.clientX-n.x,e.clientY-n.y)<p.SLOP||(w.current=null,H(e,n))}),X=i.a(e=>{let t=w.current;w.current=null;let n=P.current;if(t&&t.id===e.pointerId&&e.type===`pointerup`){n&&!n.pointer?n.value===t.value&&G(n,e):W(t.value,t.name,e);return}let r=n?.pointer;if(!n||!r||r.id!==e.pointerId)return;if(e.currentTarget.releasePointerCapture?.(e.pointerId),j(!0),e.type===`pointercancel`){T.current=b(C.current),K(n,e);return}let i=r.order.indexOf(n.value),a=p.move(r.order,i,r.to),o={reason:`pointer`,event:e,value:n.value,from:i,to:r.to};T.current=b(C.current),D(null),k(0),r.to!==i&&F(a,o),I(a,o),M(`${n.name} dropped at ${z(a,n.value)}.`)}),Z=i.a((e,t,n)=>{if(e.defaultPrevented)return;let r=P.current,i=r&&r.value===t&&!r.pointer?r:void 0;if(!i){(e.key===`Enter`||e.key===` `)&&W(t,n,e);return}if(e.key===`Escape`){e.preventDefault(),K(i,e);return}if(e.key===`Enter`||e.key===` `){e.preventDefault(),G(i,e);return}let a=y(C.current),o=p.keyTarget(e.key,a.indexOf(t),a.length);o!==null&&(e.preventDefault(),q(i,o,e))}),Q=i.a(e=>{setTimeout(()=>{let t=P.current,n=C.current;!t||t.pointer||t.value!==e||!n||n.ownerDocument.activeElement?.closest(`[data-sortable-value]`)?.getAttribute(`data-sortable-value`)!==e&&K(t,new Event(`blur`))})}),$=e=>{let t=P.current;if(!t||t.pointer||!(e.target instanceof Element))return null;let n=e.target.closest(`[data-sortable-value]`);return n&&n.parentElement===C.current&&n.dataset.sortableValue!==t.value?n:null},re=e=>{$(e)&&e.preventDefault()},ie=e=>{let t=$(e),n=P.current;!t||!n||(e.preventDefault(),e.stopPropagation(),G(n,e,q(n,y(C.current).indexOf(t.dataset.sortableValue??``),e)))},ae=(0,u.useMemo)(()=>{let e=E?.pointer,t=e?e.order.indexOf(E.value):-1;return{heldOf:e=>E&&E.value===e?E.pointer?`pointer`:`keyboard`:void 0,translateOf:n=>{if(!e)return;if(n===E.value)return`0 ${Math.round(O)}px`;let r=p.shiftOf(e.slots,t,e.to,e.order.indexOf(n));return r?`0 ${r}px`:void 0},settling:A,instructionsId:N,handleProps:(e,t)=>({type:`button`,"data-sortable-handle":``,"aria-label":`Move ${t}`,"aria-pressed":E?.value===e,"aria-describedby":N,onPointerDown:n=>J(n,e,t),onPointerMove:Y,onPointerUp:X,onPointerCancel:X,onKeyDown:n=>Z(n,e,t),onBlur:()=>Q(e)})}},[E,O,A,N,J,Y,X,Z,Q]);return(0,d.jsxs)(m.Provider,{value:ae,children:[(0,d.jsx)(l.default,{ref:R,...S,variant:_,userSelect:U?`none`:void 0,props:{...x,onMouseDownCapture:re,onClickCapture:ie},children:h}),(0,d.jsx)(s.default,{props:{role:`status`},children:ne}),(0,d.jsx)(s.default,{id:N,children:`Press Enter or Space to pick the item up, the arrow keys to move it, Enter to drop it and Escape to put it back.`})]})}function S(e,t){let{value:n,label:r,disabled:i=!1,variant:a,props:o,...s}=e,c=(0,u.useContext)(m),f=c?.heldOf(n),p=c?.translateOf(n),g=(0,u.useMemo)(()=>({value:n,name:r??n,disabled:i}),[n,r,i]);return(0,d.jsx)(h.Provider,{value:g,children:(0,d.jsx)(l.default.Item,{ref:t,...s,variant:[a,{lifted:f===`pointer`,grabbed:f===`keyboard`,settling:c?.settling??!1}],style:p?{translate:p}:void 0,props:{...o,"data-sortable-value":n}})})}function C(){return(0,d.jsx)(o.Svg,{viewBox:`0 0 16 16`,width:`1rem`,fill:`currentColor`,children:[5,11].flatMap(e=>[3,8,13].map(t=>(0,d.jsx)(o.Circle,{cx:e,cy:t,r:1.4},`${e}-${t}`)))})}function w(e,t){let{children:n,variant:i,props:a,...o}=e,s=(0,u.useContext)(m),c=(0,u.useContext)(h),l=c&&s?s.handleProps(c.value,c.name):{};return r.useBoxElement({tag:`button`,component:`sortableList.handle`,display:`flex`,ai:`center`,jc:`center`,flexShrink:0,width:10,height:10,position:`relative`,zIndex:1,css:{touchAction:`none`},...o,variant:[i,{grabbed:c?s?.heldOf(c.value)!==void 0:!1}],props:{...l,...c?.disabled?{disabled:!0}:{},...a},children:n??(0,d.jsx)(C,{})},t)}var T=e.f(x,`SortableList`);T.Item=e.f(S,`SortableList.Item`),T.Handle=e.f(w,`SortableList.Handle`),exports.SortableUtils=p,exports.default=T;