@box-kite/react 2.2.15 → 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 -38
  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 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime.cjs"),t=require("../react-shared.cjs"),n=require("./svg.cjs");let r=require("react"),i=require("react/jsx-runtime"),a=require("@box-kite/react");a=e.t(a,1);var o;(function(e){let n=e.VIEW=100,r=e.CENTRE=n/2,i=e.FRACTION_STEP=.005;function a(e){return Math.round(e*100)/100}function o(e){return Math.round(Math.min(Math.max(e,0),1)/i)*i}e.fraction=o;function s(e,t={}){if(e.length===0)return[];let i=t.min??Math.min(...e),o=(t.max??Math.max(...e))-i,s=e=>a(o===0?r:n-(e-i)/o*n);if(e.length===1)return[{x:0,y:s(e[0])},{x:n,y:s(e[0])}];let c=n/(e.length-1);return e.map((e,t)=>({x:a(t*c),y:s(e)}))}e.points=s;function c(e){return e.length===0?``:e.map((e,t)=>`${t===0?`M`:`L`}${e.x} ${e.y}`).join(``)}e.linePath=c;function l(e){if(e.length===0)return``;let t=e[e.length-1];return`${c(e)}L${t.x} ${n}L${e[0].x} ${n}Z`}e.areaPath=l;function u(e,t={},r=.25){if(e.length===0)return``;let i=n/e.length,o=a(i*(1-r)),c=a((i-o)/2);return s(e,t).map((e,t)=>{let r=Math.min(e.y,n-1);return`M${a(t*i+c)} ${r}h${o}v${a(n-r)}h${-o}Z`}).join(``)}e.barsPath=u;function d(e){return a(r-e/2)}e.radius=d;function f(e){return a(2*Math.PI*e)}e.circumference=f;function p(e,t){return{strokeDasharray:a(e),strokeDashoffset:a(e*(1-o(t)))}}e.dash=p;function m(e,t){let n=(t-90)*Math.PI/180;return{x:a(r+e*Math.cos(n)),y:a(r+e*Math.sin(n))}}function h(e,t){return a(f(e)*(Math.min(Math.abs(t),360)/360))}e.arcLength=h;function g(e,t,n){if(Math.abs(n)>=360){let n=m(e,t),r=m(e,t+180);return`M${n.x} ${n.y}A${e} ${e} 0 0 1 ${r.x} ${r.y}A${e} ${e} 0 0 1 ${n.x} ${n.y}`}let r=m(e,t),i=m(e,t+n),a=+(Math.abs(n)>180),o=n<0?0:1;return`M${r.x} ${r.y}A${e} ${e} 0 ${a} ${o} ${i.x} ${i.y}`}e.arcPath=g;function _(e,t){let n=e.reduce((e,t)=>e+Math.max(t,0),0);if(n<=0)return[];let r=0;return e.map((e,i)=>{let s=o(Math.max(e,0)/n),c=a(t*s),l=a(r*360);return r+=s,{strokeDasharray:`${c} ${a(t-c)}`,rotate:l,value:e,index:i}})}e.donutSegments=_;let v=e.PALETTE=t.n;e.DARK_PALETTE=t.t,e.paletteVariables=t.r;function y(e,t=v.length){return(Array.isArray(e)?e.map((e,n)=>[e,`var(--chart-${n%t+1})`]):Object.entries(e)).reduce((e,[t,n])=>(e[`color-${t}`]=n,e),{})}e.seriesVariables=y})(o||={});var s=o,c=`0 0 ${s.VIEW} ${s.VIEW}`,l=s.PALETTE;function u(e,t){let{data:r,variant:a=`line`,min:o,max:l,children:u,...d}=e,f={min:o,max:l},p=s.points(r,f);return(0,i.jsxs)(n.Svg,{viewBox:c,component:`sparkline`,preserveAspectRatio:`none`,width:`100%`,height:`1.5rem`,ref:t,...d,children:[a===`bar`?(0,i.jsx)(n.Path,{component:`sparkline.bar`,d:s.barsPath(r,f)}):(0,i.jsxs)(i.Fragment,{children:[a===`area`&&(0,i.jsx)(n.Path,{component:`sparkline.area`,d:s.areaPath(p)}),(0,i.jsx)(n.Path,{component:`sparkline.line`,d:s.linePath(p)})]}),u]})}var d=(0,r.forwardRef)(u);d.displayName=`Sparkline`;function f(e,t){let{value:r,thickness:a=10,trackOpacity:o,children:l,...u}=e,d=s.radius(a),f=s.circumference(d);return(0,i.jsxs)(n.Svg,{viewBox:c,component:`progressRing`,width:`3rem`,height:`3rem`,strokeWidth:a,ref:t,...u,children:[(0,i.jsx)(n.Circle,{component:`progressRing.track`,cx:s.CENTRE,cy:s.CENTRE,r:d,strokeOpacity:o}),(0,i.jsx)(n.Circle,{component:`progressRing.arc`,cx:s.CENTRE,cy:s.CENTRE,r:d,transform:`rotate(-90 ${s.CENTRE} ${s.CENTRE})`,...s.dash(f,r)}),l]})}var p=(0,r.forwardRef)(f);p.displayName=`ProgressRing`;function m(e,t){let{value:r,thickness:a=10,trackOpacity:o,sweep:l=270,start:u=225,children:d,...f}=e,p=s.radius(a),m=s.arcLength(p,l),h=s.arcPath(p,u,l);return(0,i.jsxs)(n.Svg,{viewBox:c,component:`gauge`,width:`4rem`,height:`4rem`,strokeWidth:a,ref:t,...f,children:[(0,i.jsx)(n.Path,{component:`gauge.track`,d:h,strokeOpacity:o}),(0,i.jsx)(n.Path,{component:`gauge.arc`,d:h,...s.dash(m,r)}),d]})}var h=(0,r.forwardRef)(m);h.displayName=`Gauge`;function g(e,t){let{data:r,colors:a=l,thickness:o=20,children:u,...d}=e,f=s.radius(o),p=s.circumference(f);return(0,i.jsxs)(n.Svg,{viewBox:c,component:`miniDonut`,width:`3rem`,height:`3rem`,strokeWidth:o,ref:t,...d,children:[s.donutSegments(r,p).map(e=>(0,i.jsx)(n.Circle,{component:`miniDonut.segment`,cx:s.CENTRE,cy:s.CENTRE,r:f,stroke:a[e.index%a.length],strokeDasharray:e.strokeDasharray,transform:`rotate(${e.rotate-90} ${s.CENTRE} ${s.CENTRE})`},e.index)),u]})}var _=(0,r.forwardRef)(g);_.displayName=`MiniDonut`;function v(e,t){let{series:n,vars:r,...o}=e,c={...n?s.seriesVariables(n):{},...r};return(0,i.jsx)(a.default,{ref:t,component:`chartContainer`,vars:c,...o})}var y=(0,r.forwardRef)(v);y.displayName=`ChartContainer`;var b=y;exports.ChartContainer=b,exports.Gauge=h,exports.MiniDonut=_,exports.ProgressRing=p,exports.Sparkline=d;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime.cjs"),t=require("../react-shared.cjs"),n=require("./svg.cjs");let r=require("react"),i=require("@box-kite/core"),a=require("react/jsx-runtime"),o=require("@box-kite/react");o=e.t(o,1);var s;(function(e){let n=e.VIEW=100,r=e.CENTRE=n/2,i=e.FRACTION_STEP=.005;function a(e){return Math.round(e*100)/100}function o(e){return Math.round(Math.min(Math.max(e,0),1)/i)*i}e.fraction=o;function s(e,t={}){if(e.length===0)return[];let i=t.min??Math.min(...e),o=(t.max??Math.max(...e))-i,s=e=>a(o===0?r:n-(e-i)/o*n);if(e.length===1)return[{x:0,y:s(e[0])},{x:n,y:s(e[0])}];let c=n/(e.length-1);return e.map((e,t)=>({x:a(t*c),y:s(e)}))}e.points=s;function c(e){return e.length===0?``:e.map((e,t)=>`${t===0?`M`:`L`}${e.x} ${e.y}`).join(``)}e.linePath=c;function l(e){if(e.length===0)return``;let t=e[e.length-1];return`${c(e)}L${t.x} ${n}L${e[0].x} ${n}Z`}e.areaPath=l;function u(e,t={},r=.25){if(e.length===0)return``;let i=n/e.length,o=a(i*(1-r)),c=a((i-o)/2);return s(e,t).map((e,t)=>{let r=Math.min(e.y,n-1);return`M${a(t*i+c)} ${r}h${o}v${a(n-r)}h${-o}Z`}).join(``)}e.barsPath=u;function d(e){return a(r-e/2)}e.radius=d;function f(e){return a(2*Math.PI*e)}e.circumference=f;function p(e,t){return{strokeDasharray:a(e),strokeDashoffset:a(e*(1-o(t)))}}e.dash=p;function m(e,t){let n=(t-90)*Math.PI/180;return{x:a(r+e*Math.cos(n)),y:a(r+e*Math.sin(n))}}function h(e,t){return a(f(e)*(Math.min(Math.abs(t),360)/360))}e.arcLength=h;function g(e,t,n){if(Math.abs(n)>=360){let n=m(e,t),r=m(e,t+180);return`M${n.x} ${n.y}A${e} ${e} 0 0 1 ${r.x} ${r.y}A${e} ${e} 0 0 1 ${n.x} ${n.y}`}let r=m(e,t),i=m(e,t+n),a=+(Math.abs(n)>180),o=n<0?0:1;return`M${r.x} ${r.y}A${e} ${e} 0 ${a} ${o} ${i.x} ${i.y}`}e.arcPath=g;function _(e,t){let n=e.reduce((e,t)=>e+Math.max(t,0),0);if(n<=0)return[];let r=0;return e.map((e,i)=>{let s=o(Math.max(e,0)/n),c=a(t*s),l=a(r*360);return r+=s,{strokeDasharray:`${c} ${a(t-c)}`,rotate:l,value:e,index:i}})}e.donutSegments=_;let v=e.PALETTE=t.n;e.DARK_PALETTE=t.t,e.paletteVariables=t.r;function y(e,t=v.length,n=()=>!0){return(Array.isArray(e)?e.map((e,n)=>[e,`var(--chart-${n%t+1})`]):Object.entries(e).filter(([e,t])=>n(t,e))).reduce((e,[t,n])=>(e[`color-${t}`]=n,e),{})}e.seriesVariables=y})(s||={});var c=s,l=`0 0 ${c.VIEW} ${c.VIEW}`,u=c.PALETTE;function d(e,t){let{data:r,variant:i=`line`,min:o,max:s,children:u,...d}=e,f={min:o,max:s},p=c.points(r,f);return(0,a.jsxs)(n.Svg,{viewBox:l,component:`sparkline`,preserveAspectRatio:`none`,width:`100%`,height:`1.5rem`,ref:t,...d,children:[i===`bar`?(0,a.jsx)(n.Path,{component:`sparkline.bar`,d:c.barsPath(r,f)}):(0,a.jsxs)(a.Fragment,{children:[i===`area`&&(0,a.jsx)(n.Path,{component:`sparkline.area`,d:c.areaPath(p)}),(0,a.jsx)(n.Path,{component:`sparkline.line`,d:c.linePath(p)})]}),u]})}var f=(0,r.forwardRef)(d);f.displayName=`Sparkline`;function p(e,t){let{value:r,thickness:i=10,trackOpacity:o,children:s,...u}=e,d=c.radius(i),f=c.circumference(d);return(0,a.jsxs)(n.Svg,{viewBox:l,component:`progressRing`,width:`3rem`,height:`3rem`,strokeWidth:i,ref:t,...u,children:[(0,a.jsx)(n.Circle,{component:`progressRing.track`,cx:c.CENTRE,cy:c.CENTRE,r:d,strokeOpacity:o}),(0,a.jsx)(n.Circle,{component:`progressRing.arc`,cx:c.CENTRE,cy:c.CENTRE,r:d,transform:`rotate(-90 ${c.CENTRE} ${c.CENTRE})`,...c.dash(f,r)}),s]})}var m=(0,r.forwardRef)(p);m.displayName=`ProgressRing`;function h(e,t){let{value:r,thickness:i=10,trackOpacity:o,sweep:s=270,start:u=225,children:d,...f}=e,p=c.radius(i),m=c.arcLength(p,s),h=c.arcPath(p,u,s);return(0,a.jsxs)(n.Svg,{viewBox:l,component:`gauge`,width:`4rem`,height:`4rem`,strokeWidth:i,ref:t,...f,children:[(0,a.jsx)(n.Path,{component:`gauge.track`,d:h,strokeOpacity:o}),(0,a.jsx)(n.Path,{component:`gauge.arc`,d:h,...c.dash(m,r)}),d]})}var g=(0,r.forwardRef)(h);g.displayName=`Gauge`;function _(e,t){let{data:r,colors:i=u,thickness:o=20,children:s,...d}=e,f=c.radius(o),p=c.circumference(f);return(0,a.jsxs)(n.Svg,{viewBox:l,component:`miniDonut`,width:`3rem`,height:`3rem`,strokeWidth:o,ref:t,...d,children:[c.donutSegments(r,p).map(e=>(0,a.jsx)(n.Circle,{component:`miniDonut.segment`,cx:c.CENTRE,cy:c.CENTRE,r:f,stroke:i[e.index%i.length],strokeDasharray:e.strokeDasharray,transform:`rotate(${e.rotate-90} ${c.CENTRE} ${c.CENTRE})`},e.index)),s]})}var v=(0,r.forwardRef)(_);v.displayName=`MiniDonut`;function y(e,t){let n=/^[A-Za-z_$][\w$]*$/.test(t)?t:JSON.stringify(t);return(0,i.getDefaultEngine)().accepts(`fill`,e,()=>`ChartContainer series={{ ${n}: ${JSON.stringify(e)} }} declared nothing, so var(--color-${t}) paints nothing: a series takes what fill takes, and a colour written as CSS goes in vars={{ 'color-${t}': ... }}.`)}function b(e,t){let{series:n,vars:r,...i}=e,s={...n?c.seriesVariables(n,void 0,y):{},...r};return(0,a.jsx)(o.default,{ref:t,component:`chartContainer`,vars:s,...i})}var x=(0,r.forwardRef)(b);x.displayName=`ChartContainer`;var S=x;exports.ChartContainer=S,exports.Gauge=g,exports.MiniDonut=v,exports.ProgressRing=m,exports.Sparkline=f;
@@ -66,12 +66,17 @@ export interface MiniDonutProps extends ChartProps {
66
66
  export declare const MiniDonut: import('react').ForwardRefExoticComponent<Omit<MiniDonutProps, "ref"> & RefAttributes<SVGSVGElement>>;
67
67
  /**
68
68
  * The series a `<ChartContainer>` draws: `series={['revenue', 'cost']}` takes the palette in order,
69
- * `series={{ revenue: 'emerald-600' }}` names its own paint. A name becomes part of a custom-property
70
- * name, so it has to be a CSS identifier — a dot-path `dataKey` is skipped rather than taking the rest.
69
+ * `series={{ revenue: 'emerald-600', cost: 'brand/40' }}` names its own paint — anything `fill` takes, an
70
+ * `extend()` token included. A name becomes part of a custom-property name, so it has to be a CSS
71
+ * identifier — a dot-path `dataKey` is skipped rather than taking the rest.
71
72
  */
72
73
  export type ChartSeries = readonly string[] | Readonly<Record<string, Paint>>;
73
74
  export interface ChartContainerProps<TTag extends keyof React.JSX.IntrinsicElements = 'div', TKey extends keyof ComponentsAndVariants = never> extends BoxProps<TTag, TKey> {
74
- /** The series drawn inside, and what colour each of them is. */
75
+ /**
76
+ * The series drawn inside, and what colour each of them is: a list takes the palette in order, a record names
77
+ * each series' paint — anything `fill` takes, a `Box.extend()` token included (`{ done: 'brand', open: 'brand/35' }`).
78
+ * A paint `fill` refuses declares nothing and warns in development; a colour written as CSS goes in `vars`.
79
+ */
75
80
  series?: ChartSeries;
76
81
  }
77
82
  /**
@@ -1,10 +1,11 @@
1
1
  import { n as e, r as t, t as n } from "../react-shared.mjs";
2
2
  import { Circle as r, Path as i, Svg as a } from "./svg.mjs";
3
3
  import { forwardRef as o } from "react";
4
- import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
5
- import u from "@box-kite/react";
4
+ import { getDefaultEngine as s } from "@box-kite/core";
5
+ import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
6
+ import d from "@box-kite/react";
6
7
  //#region src/utils/chart/chartUtils.ts
7
- var d;
8
+ var f;
8
9
  (function(r) {
9
10
  let i = r.VIEW = 100, a = r.CENTRE = i / 2, o = r.FRACTION_STEP = .005;
10
11
  function s(e) {
@@ -102,135 +103,139 @@ var d;
102
103
  r.donutSegments = y;
103
104
  let b = r.PALETTE = e;
104
105
  r.DARK_PALETTE = n, r.paletteVariables = t;
105
- function x(e, t = b.length) {
106
- return (Array.isArray(e) ? e.map((e, n) => [e, `var(--chart-${n % t + 1})`]) : Object.entries(e)).reduce((e, [t, n]) => (e[`color-${t}`] = n, e), {});
106
+ function x(e, t = b.length, n = () => !0) {
107
+ return (Array.isArray(e) ? e.map((e, n) => [e, `var(--chart-${n % t + 1})`]) : Object.entries(e).filter(([e, t]) => n(t, e))).reduce((e, [t, n]) => (e[`color-${t}`] = n, e), {});
107
108
  }
108
109
  r.seriesVariables = x;
109
- })(d ||= {});
110
- var f = d, p = `0 0 ${f.VIEW} ${f.VIEW}`, m = f.PALETTE;
111
- function h(e, t) {
112
- let { data: n, variant: r = "line", min: o, max: u, children: d, ...m } = e, h = {
110
+ })(f ||= {});
111
+ var p = f, m = `0 0 ${p.VIEW} ${p.VIEW}`, h = p.PALETTE;
112
+ function g(e, t) {
113
+ let { data: n, variant: r = "line", min: o, max: s, children: d, ...f } = e, h = {
113
114
  min: o,
114
- max: u
115
- }, g = f.points(n, h);
116
- return /* @__PURE__ */ l(a, {
117
- viewBox: p,
115
+ max: s
116
+ }, g = p.points(n, h);
117
+ return /* @__PURE__ */ u(a, {
118
+ viewBox: m,
118
119
  component: "sparkline",
119
120
  preserveAspectRatio: "none",
120
121
  width: "100%",
121
122
  height: "1.5rem",
122
123
  ref: t,
123
- ...m,
124
- children: [r === "bar" ? /* @__PURE__ */ c(i, {
124
+ ...f,
125
+ children: [r === "bar" ? /* @__PURE__ */ l(i, {
125
126
  component: "sparkline.bar",
126
- d: f.barsPath(n, h)
127
- }) : /* @__PURE__ */ l(s, { children: [r === "area" && /* @__PURE__ */ c(i, {
127
+ d: p.barsPath(n, h)
128
+ }) : /* @__PURE__ */ u(c, { children: [r === "area" && /* @__PURE__ */ l(i, {
128
129
  component: "sparkline.area",
129
- d: f.areaPath(g)
130
- }), /* @__PURE__ */ c(i, {
130
+ d: p.areaPath(g)
131
+ }), /* @__PURE__ */ l(i, {
131
132
  component: "sparkline.line",
132
- d: f.linePath(g)
133
+ d: p.linePath(g)
133
134
  })] }), d]
134
135
  });
135
136
  }
136
- var g = /* @__PURE__ */ o(h);
137
- g.displayName = "Sparkline";
138
- function _(e, t) {
139
- let { value: n, thickness: i = 10, trackOpacity: o, children: s, ...u } = e, d = f.radius(i), m = f.circumference(d);
140
- return /* @__PURE__ */ l(a, {
141
- viewBox: p,
137
+ var _ = /* @__PURE__ */ o(g);
138
+ _.displayName = "Sparkline";
139
+ function v(e, t) {
140
+ let { value: n, thickness: i = 10, trackOpacity: o, children: s, ...c } = e, d = p.radius(i), f = p.circumference(d);
141
+ return /* @__PURE__ */ u(a, {
142
+ viewBox: m,
142
143
  component: "progressRing",
143
144
  width: "3rem",
144
145
  height: "3rem",
145
146
  strokeWidth: i,
146
147
  ref: t,
147
- ...u,
148
+ ...c,
148
149
  children: [
149
- /* @__PURE__ */ c(r, {
150
+ /* @__PURE__ */ l(r, {
150
151
  component: "progressRing.track",
151
- cx: f.CENTRE,
152
- cy: f.CENTRE,
152
+ cx: p.CENTRE,
153
+ cy: p.CENTRE,
153
154
  r: d,
154
155
  strokeOpacity: o
155
156
  }),
156
- /* @__PURE__ */ c(r, {
157
+ /* @__PURE__ */ l(r, {
157
158
  component: "progressRing.arc",
158
- cx: f.CENTRE,
159
- cy: f.CENTRE,
159
+ cx: p.CENTRE,
160
+ cy: p.CENTRE,
160
161
  r: d,
161
- transform: `rotate(-90 ${f.CENTRE} ${f.CENTRE})`,
162
- ...f.dash(m, n)
162
+ transform: `rotate(-90 ${p.CENTRE} ${p.CENTRE})`,
163
+ ...p.dash(f, n)
163
164
  }),
164
165
  s
165
166
  ]
166
167
  });
167
168
  }
168
- var v = /* @__PURE__ */ o(_);
169
- v.displayName = "ProgressRing";
170
- function y(e, t) {
171
- let { value: n, thickness: r = 10, trackOpacity: o, sweep: s = 270, start: u = 225, children: d, ...m } = e, h = f.radius(r), g = f.arcLength(h, s), _ = f.arcPath(h, u, s);
172
- return /* @__PURE__ */ l(a, {
173
- viewBox: p,
169
+ var y = /* @__PURE__ */ o(v);
170
+ y.displayName = "ProgressRing";
171
+ function b(e, t) {
172
+ let { value: n, thickness: r = 10, trackOpacity: o, sweep: s = 270, start: c = 225, children: d, ...f } = e, h = p.radius(r), g = p.arcLength(h, s), _ = p.arcPath(h, c, s);
173
+ return /* @__PURE__ */ u(a, {
174
+ viewBox: m,
174
175
  component: "gauge",
175
176
  width: "4rem",
176
177
  height: "4rem",
177
178
  strokeWidth: r,
178
179
  ref: t,
179
- ...m,
180
+ ...f,
180
181
  children: [
181
- /* @__PURE__ */ c(i, {
182
+ /* @__PURE__ */ l(i, {
182
183
  component: "gauge.track",
183
184
  d: _,
184
185
  strokeOpacity: o
185
186
  }),
186
- /* @__PURE__ */ c(i, {
187
+ /* @__PURE__ */ l(i, {
187
188
  component: "gauge.arc",
188
189
  d: _,
189
- ...f.dash(g, n)
190
+ ...p.dash(g, n)
190
191
  }),
191
192
  d
192
193
  ]
193
194
  });
194
195
  }
195
- var b = /* @__PURE__ */ o(y);
196
- b.displayName = "Gauge";
197
- function x(e, t) {
198
- let { data: n, colors: i = m, thickness: o = 20, children: s, ...u } = e, d = f.radius(o), h = f.circumference(d);
199
- return /* @__PURE__ */ l(a, {
200
- viewBox: p,
196
+ var x = /* @__PURE__ */ o(b);
197
+ x.displayName = "Gauge";
198
+ function S(e, t) {
199
+ let { data: n, colors: i = h, thickness: o = 20, children: s, ...c } = e, d = p.radius(o), f = p.circumference(d);
200
+ return /* @__PURE__ */ u(a, {
201
+ viewBox: m,
201
202
  component: "miniDonut",
202
203
  width: "3rem",
203
204
  height: "3rem",
204
205
  strokeWidth: o,
205
206
  ref: t,
206
- ...u,
207
- children: [f.donutSegments(n, h).map((e) => /* @__PURE__ */ c(r, {
207
+ ...c,
208
+ children: [p.donutSegments(n, f).map((e) => /* @__PURE__ */ l(r, {
208
209
  component: "miniDonut.segment",
209
- cx: f.CENTRE,
210
- cy: f.CENTRE,
210
+ cx: p.CENTRE,
211
+ cy: p.CENTRE,
211
212
  r: d,
212
213
  stroke: i[e.index % i.length],
213
214
  strokeDasharray: e.strokeDasharray,
214
- transform: `rotate(${e.rotate - 90} ${f.CENTRE} ${f.CENTRE})`
215
+ transform: `rotate(${e.rotate - 90} ${p.CENTRE} ${p.CENTRE})`
215
216
  }, e.index)), s]
216
217
  });
217
218
  }
218
- var S = /* @__PURE__ */ o(x);
219
- S.displayName = "MiniDonut";
220
- function C(e, t) {
219
+ var C = /* @__PURE__ */ o(S);
220
+ C.displayName = "MiniDonut";
221
+ function w(e, t) {
222
+ let n = /^[A-Za-z_$][\w$]*$/.test(t) ? t : JSON.stringify(t);
223
+ return s().accepts("fill", e, () => `ChartContainer series={{ ${n}: ${JSON.stringify(e)} }} declared nothing, so var(--color-${t}) paints nothing: a series takes what fill takes, and a colour written as CSS goes in vars={{ 'color-${t}': ... }}.`);
224
+ }
225
+ function T(e, t) {
221
226
  let { series: n, vars: r, ...i } = e, a = {
222
- ...n ? f.seriesVariables(n) : {},
227
+ ...n ? p.seriesVariables(n, void 0, w) : {},
223
228
  ...r
224
229
  };
225
- return /* @__PURE__ */ c(u, {
230
+ return /* @__PURE__ */ l(d, {
226
231
  ref: t,
227
232
  component: "chartContainer",
228
233
  vars: a,
229
234
  ...i
230
235
  });
231
236
  }
232
- var w = o(C);
233
- w.displayName = "ChartContainer";
234
- var T = w;
237
+ var E = o(T);
238
+ E.displayName = "ChartContainer";
239
+ var D = E;
235
240
  //#endregion
236
- export { T as ChartContainer, b as Gauge, S as MiniDonut, v as ProgressRing, g as Sparkline };
241
+ export { D as ChartContainer, x as Gauge, C as MiniDonut, y as ProgressRing, _ as Sparkline };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../effects.cjs"),t=require("../box.cjs"),n=require("../behavior.cjs"),r=require("../identity.cjs"),i=require("../reporting.cjs"),a=require("./svg.cjs"),o=require("./flex.cjs"),s=require("./overlay.cjs"),c=require("./presence.cjs");let l=require("react"),u=require("react/jsx-runtime");var d;(function(e){function t(e,t){return typeof e==`function`?e(t):t[e]}e.read=t;function n(e,n){let r=t(e.label,n);return r==null?``:String(r)}e.labelOf=n;function r(e,r){return e.key===void 0?n(e,r):t(e.key,r)}e.keyOf=r;function i(e,n){return e.disabled!==void 0&&t(e.disabled,n)===!0}e.isDisabled=i;let a=/\p{M}/gu;function o(e){return e.normalize(`NFD`).replace(a,``).toLowerCase()}e.normalize=o;function s(e,t){return o(e).includes(o(t))}e.matches=s;function c(e,t,n){return t===``?e:e.filter(e=>s(n(e),t))}e.filterRows=c;function l(e){return e==null?[]:Array.isArray(e)?e:[e]}e.toArray=l;function u(e,t,n){let r=n(t);return e.some(e=>n(e)===r)}e.isSelected=u;function d(e,t,n,r){return n?u(e,t,r)?e.filter(e=>r(e)!==r(t)):[...e,t]:[t]}e.toggle=d;function f(e){let{data:t,def:r,query:i,filter:a,typed:s,createRow:c}=e,l=e=>n(r,e),u=(!s||a===!1?t:a(t,i,l)).map(e=>({kind:`option`,row:e}));return c&&i!==``&&!t.some(e=>o(l(e))===o(i))&&c(i)!==null&&u.push({kind:`create`,query:i}),u}e.rowsFor=f;function p(e,t){return t.kind===`option`&&i(e,t.row)}e.isRowDisabled=p;function m(e,t,n,i=`first`){let a=e=>r(n,e),o=e.findIndex(e=>e.kind===`option`&&u(t,e.row,a));if(o!==-1&&!p(n,e[o]))return o;let s=e.map((e,t)=>p(n,e)?-1:t).filter(e=>e!==-1);return(i===`last`?s[s.length-1]:s[0])??-1}e.activeIndexFor=m})(d||={});var f=d;function p(e){let{selection:t,def:n,display:r,removeLabel:i,onRemove:s,disabled:c,variant:l}=e;return(0,u.jsx)(u.Fragment,{children:t.map(e=>{let t=f.labelOf(n,e);return(0,u.jsxs)(o.default,{component:`combobox.chip`,variant:l,ai:`center`,gap:1,children:[r?.(e)??t,!c&&(0,u.jsx)(o.default,{tag:`button`,component:`combobox.remove`,variant:l,ai:`center`,jc:`center`,props:{type:`button`,tabIndex:-1,"aria-label":i(t),onMouseDown:e=>e.preventDefault(),onClick:t=>{t.stopPropagation(),s(e,t)}},children:(0,u.jsx)(a.Svg,{viewBox:`0 0 24 24`,width:`0.625rem`,props:{fill:`none`},children:(0,u.jsx)(a.Path,{d:`M6 6 18 18M18 6 6 18`,stroke:`currentColor`,strokeWidth:3,strokeLinecap:`round`})})})]},f.keyOf(n,e))})})}var m;(function(e){let t=e.DEFAULT_OVERSCAN=4,n=e.DEFAULT_THRESHOLD=100;e.DEFAULT_ITEM_HEIGHT=36,e.DEFAULT_VIEW_HEIGHT=248;function r(e,t,n){return Math.min(Math.max(e,t),n)}function i(e,t,r=n){return t??e>r}e.shouldVirtualize=i;function a(e){let{count:n,itemHeight:i,viewHeight:a,scrollTop:o,overscan:s=t,activeIndex:c=-1}=e;if(n<=0||i<=0)return{startIndex:0,endIndex:Math.max(0,n),offsetY:0,totalHeight:0};let l=Math.max(1,Math.ceil(a/i)),u=Math.min(n,l+s*2),d=n-u,f=r(Math.floor(o/i)-s,0,d);return c>=0&&c<n&&(c<f?f=r(c-s,0,d):c>=f+u&&(f=r(c+1+s-u,0,d))),{startIndex:f,endIndex:f+u,offsetY:f*i,totalHeight:n*i}}e.windowFor=a})(m||={});var h=m;function g(t){let{count:r,scrollerRef:i,itemHeight:a,viewHeight:o,overscan:s,threshold:c,enabled:u,activeIndex:d}=t,[f,p]=(0,l.useState)({top:0,at:-1}),[m,g]=(0,l.useState)({itemHeight:0,viewHeight:0}),_=(0,l.useRef)(null),v=(0,l.useCallback)(e=>{_.current=e},[]),y=h.shouldVirtualize(r,u,c),b=n.a(()=>{let e=i.current,t=_.current;if(!e||!t)return;let n=t.children,r=n[0],a=n[1],o=a?a.offsetTop-r.offsetTop:r?.offsetHeight??0,s=e.clientHeight;g(e=>e.itemHeight===o&&e.viewHeight===s?e:{itemHeight:o,viewHeight:s})});e.n(()=>{if(!y||(b(),typeof ResizeObserver>`u`))return;let e=i.current;if(!e)return;let t=new ResizeObserver(b);return t.observe(e),()=>t.disconnect()},[y,r,b,i]);let x=n.a(e=>{p({top:e.currentTarget.scrollTop,at:d??-1})}),S=h.windowFor({count:r,itemHeight:a??(m.itemHeight>0?m.itemHeight:h.DEFAULT_ITEM_HEIGHT),viewHeight:o??(m.viewHeight>0?m.viewHeight:h.DEFAULT_VIEW_HEIGHT),scrollTop:f.top,overscan:s,activeIndex:d===f.at?-1:d});return y?{...S,virtualized:y,contentRef:v,onScroll:x}:{startIndex:0,endIndex:r,offsetY:0,totalHeight:0,virtualized:y,contentRef:v,onScroll:x}}function _(e,t,n,r){return e?{role:`listbox`,"aria-labelledby":r,...t?{"aria-multiselectable":!0}:{},...n?{"aria-busy":!0}:{}}:{role:`status`}}function v(e){let{presence:n,rows:r,def:i,display:a,selection:c,multiple:d,activeIndex:p,optionId:m,rowRef:h,onSelect:v}=e,{anchorRef:y,popupRef:b,listboxId:x,labelledBy:S,loading:C,loadingText:ee,emptyText:te,createLabel:w,variant:T,itemsProps:ne}=e,{virtualize:E}=e,{present:D,ref:O,props:re}=n,k=e=>f.keyOf(i,e),[A,ie]=(0,l.useState)(!1),ae=(0,l.useCallback)(e=>ie(e===`top`),[]),j=(0,l.useRef)(null),oe=(0,l.useCallback)(e=>{j.current=e,O(e)},[O]),se=typeof E==`object`?E:{},{virtualized:M,startIndex:N,endIndex:ce,offsetY:le,totalHeight:P,contentRef:F,onScroll:I}=g({count:r.length,scrollerRef:j,enabled:typeof E==`boolean`?E:void 0,activeIndex:p,...se}),L=M?r.slice(N,ce):r,R=(e,t)=>{let n=M?N+t:t,s=e.kind===`option`&&f.isSelected(c,e.row,k),l=f.isRowDisabled(i,e);return(0,u.jsx)(o.default,{ref:h(n),component:`combobox.item`,variant:[T,{create:e.kind===`create`,highlighted:n===p}],selected:s,ai:`center`,gap:2,id:m(n),props:{role:`option`,...M?{"aria-setsize":r.length,"aria-posinset":n+1}:{},...l?{"aria-disabled":!0}:{},onMouseDown:e=>e.preventDefault(),onClick:e=>!l&&v(n,e)},children:e.kind===`create`?w(e.query):a?.(e.row)??f.labelOf(i,e.row)},e.kind===`option`?k(e.row):`create`)};return(0,u.jsx)(s.default,{ref:b,anchor:y,side:`bottom`,align:`start`,offset:.5,matchWidth:!0,onSideChange:ae,children:(0,u.jsxs)(t.default,{ref:oe,component:`combobox.items`,...ne,variant:[T,{closed:!D&&!A,closedUp:!D&&A}],id:x,props:{..._(r.length>0,d,C===!0,S),...re,...M?{onScroll:I}:{}},children:[M?(0,u.jsx)(t.default,{ref:F,component:`combobox.window`,variant:T,style:{height:P,paddingTop:le},children:L.map(R)}):L.map(R),r.length===0&&(0,u.jsx)(t.default,{component:`combobox.message`,variant:T,children:C?ee:te})]})})}var y=new Set([` `,`Home`,`End`,`ArrowLeft`,`ArrowRight`]);function b(s,d){let{data:m,def:h,label:g,labelProps:_,placeholder:b,name:x,disabled:S,props:C,itemsProps:ee,hideIcon:te,filter:w=f.filterRows,loading:T,loadingText:ne=`Loading...`,emptyText:E=`No results`,createRow:D,createLabel:O=e=>`Create "${e}"`,removeLabel:re=e=>`Remove ${e}`,virtualize:k,query:A,defaultQuery:ie,onQueryChange:ae,open:j,defaultOpen:oe,onOpenChange:se,multiple:M=!1,value:N,defaultValue:ce,onValueChange:le,...P}=s,F=r.t(`combobox`),I=P.id??`${F}-field`,L=`${F}-listbox`,R=`${F}-label`,z=g!=null&&g!==!1,ue=(0,l.useCallback)(e=>`${F}-option-${e}`,[F]),B=(0,l.useRef)(null),de=(0,l.useRef)(null),V=(0,l.useRef)(null),fe=(0,l.useCallback)(e=>{V.current=e,typeof d==`function`?d(e):d&&(d.current=e)},[d]),pe=n.a((e,t)=>{le?.(M?e:e[0]??null,t)}),me=(0,l.useMemo)(()=>N===void 0?void 0:f.toArray(N),[N]),[H,he]=i.a({value:me,defaultValue:()=>f.toArray(ce),onChange:pe,interaction:{component:`combobox`,type:`valueChange`,content:[`value`]}}),[U,W]=i.a({value:j,defaultValue:oe??!1,onChange:se,interaction:{component:`combobox`,type:`openChange`}}),[ge,G]=n.i({value:A,defaultValue:ie??``,onChange:ae}),[K,q]=(0,l.useState)(!1),J=(0,l.useCallback)(e=>f.keyOf(h,e),[h]),_e=M||H[0]===void 0?``:f.labelOf(h,H[0]),Y=K||ge!==``?ge:_e,X=(0,l.useMemo)(()=>f.rowsFor({data:m,def:h,query:Y,filter:w,typed:K,createRow:D}),[m,h,Y,w,K,D]),ve=(0,l.useCallback)(e=>X[e]?f.isRowDisabled(h,X[e]):!1,[X,h]),Z=n.a((e,t)=>{W(!1,{reason:e,event:t}),e!==`escape`&&(q(!1),G(``,{reason:`close`,event:t}))}),Q=n.a((e,t)=>{let n=X[e];if(!n||ve(e))return;let r=n.kind===`create`?D?.(n.query):n.row;if(r==null)return;let i=f.isSelected(H,r,J),a=n.kind===`create`?`create`:i&&M?`deselect`:`select`;he(f.toggle(H,r,M,J),{reason:a,event:t}),q(!1),G(``,{reason:`select`,event:t}),M||W(!1,{reason:`select`,event:t})}),ye=n.t({count:X.length,focusItems:!1,defaultActiveIndex:-1,isDisabled:ve,onSelect:Q}),{activeIndex:$,setActiveIndex:be,activeItem:xe}=ye;n.r({enabled:U,inside:[B,de],onDismiss:(e,t)=>Z(e===`escape`?`escape`:`outside-pointer`,t)}),e.n(()=>{!U||$===-1||xe()?.scrollIntoView?.({block:`nearest`})},[U,$,xe]);let Se=(e,t,n)=>{W(!0,{reason:n,event:t});let r=e===`none`?-1:f.activeIndexFor(X,H,h,e);be(r,{reason:`programmatic`,event:t})},Ce=n.a(e=>{q(!0),G(e.target.value,{reason:`input`,event:e}),U||W(!0,{reason:`input`,event:e}),be(-1,{reason:`programmatic`,event:e})}),we=n.a((e,t)=>{he(H.filter(t=>J(t)!==J(e)),{reason:`remove`,event:t})}),Te=e=>{let{key:t}=e;if(t===`ArrowDown`||t===`ArrowUp`){e.preventDefault(),Se(t===`ArrowUp`?`last`:e.altKey?`none`:`first`,e,`trigger`);return}t===`Escape`&&Y!==``&&(q(!0),G(``,{reason:`clear`,event:e}))},Ee=n.a(e=>{if(C?.onKeyDown?.(e),!(e.defaultPrevented||S)){if(e.key===`Backspace`&&M&&Y===``&&H.length>0){we(H[H.length-1],e);return}if(!U){Te(e);return}if(e.key===`Tab`){$!==-1&&Q($,e),Z(`tab`,e);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),$===-1?Z(`trigger`,e):Q($,e);return}if(y.has(e.key)){be(-1,{reason:`programmatic`,event:e});return}ye.onKeyDown(e)}}),De=n.a(e=>{!S&&!U&&Se(`first`,e,`trigger`)}),Oe=n.a(e=>{S||e.target===V.current||(e.preventDefault(),V.current?.focus(),U||Se(`first`,e,`trigger`))}),ke=X.length>0||T===!0||E!==null,Ae=U&&$!==-1&&X.length>0?ue($):void 0,je=(0,u.jsx)(t.default,{tag:`input`,component:`combobox.field`,ref:fe,id:I,disabled:S,props:{...C,role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":U,"aria-controls":U&&ke?L:void 0,"aria-activedescendant":Ae,"aria-labelledby":z?R:C?.[`aria-labelledby`],autoComplete:`off`,spellCheck:!1,type:`text`,value:Y,placeholder:b,onChange:Ce,onKeyDown:Ee,onClick:De}}),Me=!te&&(0,u.jsx)(o.default,{component:`combobox.icon`,rotate:U?180:0,props:{"aria-hidden":!0},children:(0,u.jsx)(a.Svg,{viewBox:`0 0 10 6`,width:`0.6rem`,props:{fill:`none`},children:(0,u.jsx)(a.Path,{d:`m1 1 4 4 4-4`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})})}),Ne=x===void 0?null:H.map(e=>(0,u.jsx)(t.default,{tag:`input`,props:{type:`hidden`,name:x,value:String(J(e))}},J(e))),Pe=ke&&(0,u.jsx)(c.default,{present:U,children:e=>(0,u.jsx)(v,{presence:e,rows:X,def:h,display:h.display,selection:H,multiple:M,activeIndex:$,optionId:ue,rowRef:e=>ye.itemProps(e).ref,onSelect:Q,anchorRef:B,popupRef:de,listboxId:L,labelledBy:z?R:I,loading:T,loadingText:ne,emptyText:E,createLabel:O,virtualize:k,variant:P.variant,itemsProps:ee})}),Fe=(0,u.jsxs)(o.default,{ref:B,component:`combobox`,ai:`center`,gap:1,flexWrap:`wrap`,...P,props:{onPointerDown:Oe},children:[Ne,M&&(0,u.jsx)(p,{selection:H,def:h,display:h.display,removeLabel:re,onRemove:we,disabled:S,variant:P.variant}),je,Me]});return z?(0,u.jsxs)(o.default,{d:`column`,gap:1,width:`fit-content`,children:[(0,u.jsx)(t.default,{tag:`label`,component:`combobox.label`,id:R,..._,props:{htmlFor:I},children:g}),Fe,Pe]}):(0,u.jsxs)(u.Fragment,{children:[Fe,Pe]})}var x=(0,l.forwardRef)(b);x.displayName=`Combobox`,exports.ComboboxUtils=f,exports.default=x;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../effects.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../reporting.cjs"),o=require("./svg.cjs"),s=require("./flex.cjs"),c=require("./overlay.cjs"),l=require("./presence.cjs");let u=require("react"),d=require("react/jsx-runtime");var f;(function(e){function t(e,t){return typeof e==`function`?e(t):t[e]}e.read=t;function n(e,n){let r=t(e.label,n);return r==null?``:String(r)}e.labelOf=n;function r(e,r){return e.key===void 0?n(e,r):t(e.key,r)}e.keyOf=r;function i(e,n){return e.disabled!==void 0&&t(e.disabled,n)===!0}e.isDisabled=i;let a=/\p{M}/gu;function o(e){return e.normalize(`NFD`).replace(a,``).toLowerCase()}e.normalize=o;function s(e,t){return o(e).includes(o(t))}e.matches=s;function c(e,t,n){return t===``?e:e.filter(e=>s(n(e),t))}e.filterRows=c;function l(e){return e==null?[]:Array.isArray(e)?e:[e]}e.toArray=l;function u(e,t,n){let r=n(t);return e.some(e=>n(e)===r)}e.isSelected=u;function d(e,t,n,r){return n?u(e,t,r)?e.filter(e=>r(e)!==r(t)):[...e,t]:[t]}e.toggle=d;function f(e){let{data:t,def:r,query:i,filter:a,typed:s,createRow:c}=e,l=e=>n(r,e),u=(!s||a===!1?t:a(t,i,l)).map(e=>({kind:`option`,row:e}));return c&&i!==``&&!t.some(e=>o(l(e))===o(i))&&c(i)!==null&&u.push({kind:`create`,query:i}),u}e.rowsFor=f;function p(e,t){return t.kind===`option`&&i(e,t.row)}e.isRowDisabled=p;function m(e,t,n,i=`first`){let a=e=>r(n,e),o=e.findIndex(e=>e.kind===`option`&&u(t,e.row,a));if(o!==-1&&!p(n,e[o]))return o;let s=e.map((e,t)=>p(n,e)?-1:t).filter(e=>e!==-1);return(i===`last`?s[s.length-1]:s[0])??-1}e.activeIndexFor=m})(f||={});var p=f;function m(e){let{selection:t,def:n,display:r,removeLabel:i,onRemove:a,disabled:c,variant:l}=e;return(0,d.jsx)(d.Fragment,{children:t.map(e=>{let t=p.labelOf(n,e);return(0,d.jsxs)(s.default,{component:`combobox.chip`,variant:l,ai:`center`,gap:1,children:[r?.(e)??t,!c&&(0,d.jsx)(s.default,{tag:`button`,component:`combobox.remove`,variant:l,ai:`center`,jc:`center`,props:{type:`button`,tabIndex:-1,"aria-label":i(t),onMouseDown:e=>e.preventDefault(),onClick:t=>{t.stopPropagation(),a(e,t)}},children:(0,d.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`0.625rem`,props:{fill:`none`},children:(0,d.jsx)(o.Path,{d:`M6 6 18 18M18 6 6 18`,stroke:`currentColor`,strokeWidth:3,strokeLinecap:`round`})})})]},p.keyOf(n,e))})})}var h;(function(e){let t=e.DEFAULT_OVERSCAN=4,n=e.DEFAULT_THRESHOLD=100;e.DEFAULT_ITEM_HEIGHT=36,e.DEFAULT_VIEW_HEIGHT=248;function r(e,t,n){return Math.min(Math.max(e,t),n)}function i(e,t,r=n){return t??e>r}e.shouldVirtualize=i;function a(e){let{count:n,itemHeight:i,viewHeight:a,scrollTop:o,overscan:s=t,activeIndex:c=-1}=e;if(n<=0||i<=0)return{startIndex:0,endIndex:Math.max(0,n),offsetY:0,totalHeight:0};let l=Math.max(1,Math.ceil(a/i)),u=Math.min(n,l+s*2),d=n-u,f=r(Math.floor(o/i)-s,0,d);return c>=0&&c<n&&(c<f?f=r(c-s,0,d):c>=f+u&&(f=r(c+1+s-u,0,d))),{startIndex:f,endIndex:f+u,offsetY:f*i,totalHeight:n*i}}e.windowFor=a})(h||={});var g=h;function _(e){let{count:n,scrollerRef:i,itemHeight:a,viewHeight:o,overscan:s,threshold:c,enabled:l,activeIndex:d}=e,[f,p]=(0,u.useState)({top:0,at:-1}),[m,h]=(0,u.useState)({itemHeight:0,viewHeight:0}),_=(0,u.useRef)(null),v=(0,u.useCallback)(e=>{_.current=e},[]),y=g.shouldVirtualize(n,l,c),b=r.a(()=>{let e=i.current,t=_.current;if(!e||!t)return;let n=t.children,r=n[0],a=n[1],o=a?a.offsetTop-r.offsetTop:r?.offsetHeight??0,s=e.clientHeight;h(e=>e.itemHeight===o&&e.viewHeight===s?e:{itemHeight:o,viewHeight:s})});t.n(()=>{if(!y||(b(),typeof ResizeObserver>`u`))return;let e=i.current;if(!e)return;let t=new ResizeObserver(b);return t.observe(e),()=>t.disconnect()},[y,n,b,i]);let x=r.a(e=>{p({top:e.currentTarget.scrollTop,at:d??-1})}),S=g.windowFor({count:n,itemHeight:a??(m.itemHeight>0?m.itemHeight:g.DEFAULT_ITEM_HEIGHT),viewHeight:o??(m.viewHeight>0?m.viewHeight:g.DEFAULT_VIEW_HEIGHT),scrollTop:f.top,overscan:s,activeIndex:d===f.at?-1:d});return y?{...S,virtualized:y,contentRef:v,onScroll:x}:{startIndex:0,endIndex:n,offsetY:0,totalHeight:0,virtualized:y,contentRef:v,onScroll:x}}function v(e,t,n,r){return e?{role:`listbox`,"aria-labelledby":r,...t?{"aria-multiselectable":!0}:{},...n?{"aria-busy":!0}:{}}:{role:`status`}}function y(e){let{presence:t,rows:r,def:i,display:a,selection:o,multiple:l,activeIndex:f,optionId:m,rowRef:h,onSelect:g}=e,{anchorRef:y,popupRef:b,listboxId:x,labelledBy:S,loading:C,loadingText:w,emptyText:ee,createLabel:te,variant:T,itemsProps:E}=e,{virtualize:D}=e,{present:O,ref:k,props:ne}=t,A=e=>p.keyOf(i,e),[j,re]=(0,u.useState)(!1),ie=(0,u.useCallback)(e=>re(e===`top`),[]),M=(0,u.useRef)(null),ae=(0,u.useCallback)(e=>{M.current=e,k(e)},[k]),oe=typeof D==`object`?D:{},{virtualized:N,startIndex:P,endIndex:F,offsetY:se,totalHeight:ce,contentRef:I,onScroll:L}=_({count:r.length,scrollerRef:M,enabled:typeof D==`boolean`?D:void 0,activeIndex:f,...oe}),R=N?r.slice(P,F):r,z=(e,t)=>{let n=N?P+t:t,c=e.kind===`option`&&p.isSelected(o,e.row,A),l=p.isRowDisabled(i,e);return(0,d.jsx)(s.default,{ref:h(n),component:`combobox.item`,variant:[T,{create:e.kind===`create`,highlighted:n===f}],selected:c,ai:`center`,gap:2,id:m(n),props:{role:`option`,...N?{"aria-setsize":r.length,"aria-posinset":n+1}:{},...l?{"aria-disabled":!0}:{},onMouseDown:e=>e.preventDefault(),onClick:e=>!l&&g(n,e)},children:e.kind===`create`?te(e.query):a?.(e.row)??p.labelOf(i,e.row)},e.kind===`option`?A(e.row):`create`)};return(0,d.jsx)(c.default,{ref:b,anchor:y,side:`bottom`,align:`start`,offset:.5,matchWidth:!0,onSideChange:ie,children:(0,d.jsxs)(n.default,{ref:ae,component:`combobox.items`,...E,variant:[T,{closed:!O&&!j,closedUp:!O&&j}],id:x,props:{...v(r.length>0,l,C===!0,S),...ne,...N?{onScroll:L}:{}},children:[N?(0,d.jsx)(n.default,{ref:I,component:`combobox.window`,variant:T,style:{height:ce,paddingTop:se},children:R.map(z)}):R.map(z),r.length===0&&(0,d.jsx)(n.default,{component:`combobox.message`,variant:T,children:C?w:ee})]})})}var b=new Set([` `,`Home`,`End`,`ArrowLeft`,`ArrowRight`]);function x(c,f){let{data:h,def:g,label:_,labelProps:v,placeholder:x,name:S,disabled:C,props:w,itemsProps:ee,hideIcon:te,filter:T=p.filterRows,loading:E,loadingText:D=`Loading...`,emptyText:O=`No results`,createRow:k,createLabel:ne=e=>`Create "${e}"`,removeLabel:A=e=>`Remove ${e}`,virtualize:j,query:re,defaultQuery:ie,onQueryChange:M,open:ae,defaultOpen:oe,onOpenChange:N,multiple:P=!1,value:F,defaultValue:se,onValueChange:ce,...I}=c,L=i.t(`combobox`),R=I.id??`${L}-field`,z=`${L}-listbox`,le=`${L}-label`,B=_!=null&&_!==!1,ue=(0,u.useCallback)(e=>`${L}-option-${e}`,[L]),V=(0,u.useRef)(null),de=(0,u.useRef)(null),H=(0,u.useRef)(null),fe=(0,u.useCallback)(t=>{H.current=t,e.l(f,t)},[f]),pe=r.a((e,t)=>{ce?.(P?e:e[0]??null,t)}),me=(0,u.useMemo)(()=>F===void 0?void 0:p.toArray(F),[F]),[U,he]=a.a({value:me,defaultValue:()=>p.toArray(se),onChange:pe,interaction:{component:`combobox`,type:`valueChange`,content:[`value`]}}),[W,G]=a.a({value:ae,defaultValue:oe??!1,onChange:N,interaction:{component:`combobox`,type:`openChange`}}),[ge,K]=r.i({value:re,defaultValue:ie??``,onChange:M}),[_e,q]=(0,u.useState)(!1),J=(0,u.useCallback)(e=>p.keyOf(g,e),[g]),ve=P||U[0]===void 0?``:p.labelOf(g,U[0]),Y=_e||ge!==``?ge:ve,X=(0,u.useMemo)(()=>p.rowsFor({data:h,def:g,query:Y,filter:T,typed:_e,createRow:k}),[h,g,Y,T,_e,k]),ye=(0,u.useCallback)(e=>X[e]?p.isRowDisabled(g,X[e]):!1,[X,g]),Z=r.a((e,t)=>{G(!1,{reason:e,event:t}),e!==`escape`&&(q(!1),K(``,{reason:`close`,event:t}))}),Q=r.a((e,t)=>{let n=X[e];if(!n||ye(e))return;let r=n.kind===`create`?k?.(n.query):n.row;if(r==null)return;let i=p.isSelected(U,r,J),a=n.kind===`create`?`create`:i&&P?`deselect`:`select`;he(p.toggle(U,r,P,J),{reason:a,event:t}),q(!1),K(``,{reason:`select`,event:t}),P||G(!1,{reason:`select`,event:t})}),be=r.t({count:X.length,focusItems:!1,defaultActiveIndex:-1,isDisabled:ye,onSelect:Q}),{activeIndex:$,setActiveIndex:xe,activeItem:Se}=be;r.r({enabled:W,inside:[V,de],onDismiss:(e,t)=>Z(e===`escape`?`escape`:`outside-pointer`,t)}),t.n(()=>{!W||$===-1||Se()?.scrollIntoView?.({block:`nearest`})},[W,$,Se]);let Ce=(e,t,n)=>{G(!0,{reason:n,event:t});let r=e===`none`?-1:p.activeIndexFor(X,U,g,e);xe(r,{reason:`programmatic`,event:t})},we=r.a(e=>{q(!0),K(e.target.value,{reason:`input`,event:e}),W||G(!0,{reason:`input`,event:e}),xe(-1,{reason:`programmatic`,event:e})}),Te=r.a((e,t)=>{he(U.filter(t=>J(t)!==J(e)),{reason:`remove`,event:t})}),Ee=e=>{let{key:t}=e;if(t===`ArrowDown`||t===`ArrowUp`){e.preventDefault(),Ce(t===`ArrowUp`?`last`:e.altKey?`none`:`first`,e,`trigger`);return}t===`Escape`&&Y!==``&&(q(!0),K(``,{reason:`clear`,event:e}))},De=r.a(e=>{if(w?.onKeyDown?.(e),!(e.defaultPrevented||C)){if(e.key===`Backspace`&&P&&Y===``&&U.length>0){Te(U[U.length-1],e);return}if(!W){Ee(e);return}if(e.key===`Tab`){$!==-1&&Q($,e),Z(`tab`,e);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),$===-1?Z(`trigger`,e):Q($,e);return}if(b.has(e.key)){xe(-1,{reason:`programmatic`,event:e});return}be.onKeyDown(e)}}),Oe=r.a(e=>{!C&&!W&&Ce(`first`,e,`trigger`)}),ke=r.a(e=>{C||e.target===H.current||(e.preventDefault(),H.current?.focus(),W||Ce(`first`,e,`trigger`))}),Ae=X.length>0||E===!0||O!==null,je=W&&$!==-1&&X.length>0?ue($):void 0,Me=(0,d.jsx)(n.default,{tag:`input`,component:`combobox.field`,ref:fe,id:R,disabled:C,props:{...w,role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":W,"aria-controls":W&&Ae?z:void 0,"aria-activedescendant":je,"aria-labelledby":B?le:w?.[`aria-labelledby`],autoComplete:`off`,spellCheck:!1,type:`text`,value:Y,placeholder:x,onChange:we,onKeyDown:De,onClick:Oe}}),Ne=!te&&(0,d.jsx)(s.default,{component:`combobox.icon`,rotate:W?180:0,props:{"aria-hidden":!0},children:(0,d.jsx)(o.Svg,{viewBox:`0 0 10 6`,width:`0.6rem`,props:{fill:`none`},children:(0,d.jsx)(o.Path,{d:`m1 1 4 4 4-4`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})})}),Pe=S===void 0?null:U.map(e=>(0,d.jsx)(n.default,{tag:`input`,props:{type:`hidden`,name:S,value:String(J(e))}},J(e))),Fe=Ae&&(0,d.jsx)(l.default,{present:W,children:e=>(0,d.jsx)(y,{presence:e,rows:X,def:g,display:g.display,selection:U,multiple:P,activeIndex:$,optionId:ue,rowRef:e=>be.itemProps(e).ref,onSelect:Q,anchorRef:V,popupRef:de,listboxId:z,labelledBy:B?le:R,loading:E,loadingText:D,emptyText:O,createLabel:ne,virtualize:j,variant:I.variant,itemsProps:ee})}),Ie=(0,d.jsxs)(s.default,{ref:V,component:`combobox`,ai:`center`,gap:1,flexWrap:`wrap`,...I,props:{onPointerDown:ke},children:[Pe,P&&(0,d.jsx)(m,{selection:U,def:g,display:g.display,removeLabel:A,onRemove:Te,disabled:C,variant:I.variant}),Me,Ne]});return B?(0,d.jsxs)(s.default,{d:`column`,gap:1,width:`fit-content`,children:[(0,d.jsx)(n.default,{tag:`label`,component:`combobox.label`,id:le,...v,props:{htmlFor:R},children:_}),Ie,Fe]}):(0,d.jsxs)(d.Fragment,{children:[Ie,Fe]})}var S=(0,u.forwardRef)(x);S.displayName=`Combobox`,exports.ComboboxUtils=p,exports.default=S;