@box-kite/react 2.2.6 → 2.2.8

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