@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.
- package/.claude/rules/box-kite-rules.md +1 -1
- package/.claude/skills/box-kite/SKILL.md +1 -1
- package/.claude/skills/box-kite/references/styling.md +1 -1
- package/.cursor/rules/box-kite.mdc +1 -1
- package/AGENTS.md +1 -1
- package/BOX_AI_CONTEXT.md +16 -0
- package/BOX_KITE_AI_CONTEXT.md +16 -0
- package/behavior.cjs +1 -1
- package/behavior.mjs +16 -16
- package/catalog.cjs +1 -1
- package/catalog.mjs +1 -1
- package/client.cjs +1 -1
- package/client.mjs +10 -10
- package/components/accordion.cjs +1 -1
- package/components/accordion.mjs +95 -91
- package/components/calendar.cjs +1 -1
- package/components/calendar.mjs +212 -210
- package/components/chart.cjs +1 -1
- package/components/chart.d.ts +8 -3
- package/components/chart.mjs +70 -65
- package/components/combobox.cjs +1 -1
- package/components/combobox.mjs +187 -186
- package/components/dashboard.cjs +1 -1
- package/components/dashboard.d.ts +1 -44
- package/components/dashboard.mjs +202 -201
- package/components/dataGrid/components/dataGridListLayout.d.ts +1 -1
- package/components/dataGrid/contracts/dataGridContract.d.ts +1 -1
- package/components/dataGrid/models/gridModel.d.ts +1 -1
- package/components/dataGrid.cjs +2 -2
- package/components/dataGrid.mjs +10 -10
- package/components/dateField.cjs +1 -1
- package/components/dateField.mjs +96 -96
- package/components/datePicker.cjs +1 -1
- package/components/datePicker.mjs +177 -179
- package/components/dialog.cjs +1 -1
- package/components/dialog.d.ts +2 -64
- package/components/dialog.mjs +130 -126
- package/components/form.cjs +1 -1
- package/components/form.d.ts +4 -3
- package/components/form.mjs +25 -22
- package/components/menu.cjs +1 -1
- package/components/menu.d.ts +2 -73
- package/components/menu.mjs +222 -218
- package/components/overlay.cjs +1 -1
- package/components/overlay.mjs +43 -43
- package/components/popover.cjs +1 -1
- package/components/popover.d.ts +1 -41
- package/components/popover.mjs +55 -51
- package/components/radioGroup.cjs +1 -1
- package/components/radioGroup.mjs +59 -55
- package/components/slider.cjs +1 -1
- package/components/slider.d.ts +1 -55
- package/components/slider.mjs +92 -90
- package/components/sortableList.cjs +1 -1
- package/components/sortableList.mjs +149 -148
- package/components/swipeItem.cjs +1 -1
- package/components/swipeItem.mjs +100 -100
- package/components/tabs.cjs +1 -1
- package/components/tabs.mjs +135 -132
- package/components/toaster.cjs +1 -1
- package/components/toaster.d.ts +1 -37
- package/components/toaster.mjs +130 -128
- package/components/tooltip.cjs +1 -1
- package/components/tooltip.d.ts +1 -34
- package/components/tooltip.mjs +73 -69
- package/components/virtualList.cjs +1 -1
- package/components/virtualList.mjs +88 -87
- package/interactionListening.cjs +1 -1
- package/interactionListening.mjs +3 -3
- package/layer.cjs +1 -1
- package/layer.mjs +1 -1
- package/package.json +31 -30
- package/placement.cjs +1 -1
- package/placement.mjs +1 -1
- package/platform.cjs +1 -1
- package/platform.mjs +17 -14
- package/react/componentsContext.d.ts +1 -1
- package/react-shared.cjs +1 -1
- package/react-shared.mjs +1 -1
- package/scrolling.cjs +1 -1
- package/scrolling.mjs +1 -1
- package/utils/chart/chartUtils.d.ts +3 -2
- package/utils/dashboard/dashboardUtils.d.ts +1 -1
- package/utils/dom/domUtils.d.ts +6 -0
- package/create/src/agents.d.ts +0 -22
- package/create/src/agents.test.d.ts +0 -1
- package/create/src/index.d.ts +0 -1
- package/create/src/options.d.ts +0 -31
- package/create/src/options.test.d.ts +0 -1
- package/create/src/packageManager.d.ts +0 -5
- package/create/src/project.d.ts +0 -27
- package/create/src/project.test.d.ts +0 -1
- package/create/templates/ts/designs/azure.d.ts +0 -5
- package/create/templates/ts/designs/ember.d.ts +0 -5
- package/create/templates/ts/designs/mono.d.ts +0 -5
- package/create/templates/ts/src/App.d.ts +0 -2
- package/create/templates/ts/src/design.d.ts +0 -5
- package/create/templates/ts/src/main.d.ts +0 -0
- package/mcp/src/data.d.ts +0 -90
- package/mcp/src/data.test.d.ts +0 -1
- package/mcp/src/engine.d.ts +0 -23
- package/mcp/src/index.d.ts +0 -1
- package/mcp/src/search.d.ts +0 -26
- package/mcp/src/search.test.d.ts +0 -1
- package/mcp/src/server.d.ts +0 -18
- package/mcp/src/server.test.d.ts +0 -1
- package/mcp/src/styles.d.ts +0 -27
- package/mcp/src/styles.test.d.ts +0 -1
- package/mcp/src/tools.d.ts +0 -18
- package/mcp/src/vocabulary.d.ts +0 -41
- package/registry/blocks/dashboard-shell/dashboard-shell.d.ts +0 -24
- package/registry/blocks/dashboard-shell/dashboard-stats.d.ts +0 -13
- package/registry/blocks/data-grid/invoice-rows.d.ts +0 -15
- package/registry/blocks/data-grid/invoices-grid.d.ts +0 -1
- package/registry/blocks/settings-form/settings-form.d.ts +0 -17
- package/registry/designs/store/address-form.d.ts +0 -11
- package/registry/designs/store/cart-items.d.ts +0 -10
- package/registry/designs/store/cart-page.d.ts +0 -4
- package/registry/designs/store/checkout-page.d.ts +0 -7
- package/registry/designs/store/credit-card-form.d.ts +0 -10
- package/registry/designs/store/form-field.d.ts +0 -19
- package/registry/designs/store/order-summary.d.ts +0 -18
- package/registry/designs/store/product-art.d.ts +0 -26
- package/registry/designs/store/product-card.d.ts +0 -11
- package/registry/designs/store/product-gallery.d.ts +0 -11
- package/registry/designs/store/product-grid.d.ts +0 -10
- package/registry/designs/store/product-page.d.ts +0 -5
- package/registry/designs/store/quantity-stepper.d.ts +0 -13
- package/registry/designs/store/shipping-method.d.ts +0 -14
- package/registry/designs/store/store-data.d.ts +0 -53
- package/registry/designs/store/store-design.d.ts +0 -63
- package/registry/designs/store/store-shell.d.ts +0 -12
- package/registry/designs/store/storefront-page.d.ts +0 -4
- package/registry/designs/store/variant-picker.d.ts +0 -15
- package/supabase/functions/collect/index.d.ts +0 -30
- package/supabase/functions/collect/index.test.d.ts +0 -1
package/components/chart.cjs
CHANGED
|
@@ -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"),
|
|
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;
|
package/components/chart.d.ts
CHANGED
|
@@ -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
|
|
70
|
-
*
|
|
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
|
-
/**
|
|
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
|
/**
|
package/components/chart.mjs
CHANGED
|
@@ -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 {
|
|
5
|
-
import u from "
|
|
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
|
|
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
|
-
})(
|
|
110
|
-
var
|
|
111
|
-
function
|
|
112
|
-
let { data: n, variant: r = "line", min: o, max:
|
|
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:
|
|
115
|
-
}, g =
|
|
116
|
-
return /* @__PURE__ */
|
|
117
|
-
viewBox:
|
|
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
|
-
...
|
|
124
|
-
children: [r === "bar" ? /* @__PURE__ */
|
|
124
|
+
...f,
|
|
125
|
+
children: [r === "bar" ? /* @__PURE__ */ l(i, {
|
|
125
126
|
component: "sparkline.bar",
|
|
126
|
-
d:
|
|
127
|
-
}) : /* @__PURE__ */
|
|
127
|
+
d: p.barsPath(n, h)
|
|
128
|
+
}) : /* @__PURE__ */ u(c, { children: [r === "area" && /* @__PURE__ */ l(i, {
|
|
128
129
|
component: "sparkline.area",
|
|
129
|
-
d:
|
|
130
|
-
}), /* @__PURE__ */
|
|
130
|
+
d: p.areaPath(g)
|
|
131
|
+
}), /* @__PURE__ */ l(i, {
|
|
131
132
|
component: "sparkline.line",
|
|
132
|
-
d:
|
|
133
|
+
d: p.linePath(g)
|
|
133
134
|
})] }), d]
|
|
134
135
|
});
|
|
135
136
|
}
|
|
136
|
-
var
|
|
137
|
-
|
|
138
|
-
function
|
|
139
|
-
let { value: n, thickness: i = 10, trackOpacity: o, children: s, ...
|
|
140
|
-
return /* @__PURE__ */
|
|
141
|
-
viewBox:
|
|
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
|
-
...
|
|
148
|
+
...c,
|
|
148
149
|
children: [
|
|
149
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ l(r, {
|
|
150
151
|
component: "progressRing.track",
|
|
151
|
-
cx:
|
|
152
|
-
cy:
|
|
152
|
+
cx: p.CENTRE,
|
|
153
|
+
cy: p.CENTRE,
|
|
153
154
|
r: d,
|
|
154
155
|
strokeOpacity: o
|
|
155
156
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ l(r, {
|
|
157
158
|
component: "progressRing.arc",
|
|
158
|
-
cx:
|
|
159
|
-
cy:
|
|
159
|
+
cx: p.CENTRE,
|
|
160
|
+
cy: p.CENTRE,
|
|
160
161
|
r: d,
|
|
161
|
-
transform: `rotate(-90 ${
|
|
162
|
-
...
|
|
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
|
|
169
|
-
|
|
170
|
-
function
|
|
171
|
-
let { value: n, thickness: r = 10, trackOpacity: o, sweep: s = 270, start:
|
|
172
|
-
return /* @__PURE__ */
|
|
173
|
-
viewBox:
|
|
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
|
-
...
|
|
180
|
+
...f,
|
|
180
181
|
children: [
|
|
181
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ l(i, {
|
|
182
183
|
component: "gauge.track",
|
|
183
184
|
d: _,
|
|
184
185
|
strokeOpacity: o
|
|
185
186
|
}),
|
|
186
|
-
/* @__PURE__ */
|
|
187
|
+
/* @__PURE__ */ l(i, {
|
|
187
188
|
component: "gauge.arc",
|
|
188
189
|
d: _,
|
|
189
|
-
...
|
|
190
|
+
...p.dash(g, n)
|
|
190
191
|
}),
|
|
191
192
|
d
|
|
192
193
|
]
|
|
193
194
|
});
|
|
194
195
|
}
|
|
195
|
-
var
|
|
196
|
-
|
|
197
|
-
function
|
|
198
|
-
let { data: n, colors: i =
|
|
199
|
-
return /* @__PURE__ */
|
|
200
|
-
viewBox:
|
|
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
|
-
...
|
|
207
|
-
children: [
|
|
207
|
+
...c,
|
|
208
|
+
children: [p.donutSegments(n, f).map((e) => /* @__PURE__ */ l(r, {
|
|
208
209
|
component: "miniDonut.segment",
|
|
209
|
-
cx:
|
|
210
|
-
cy:
|
|
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} ${
|
|
215
|
+
transform: `rotate(${e.rotate - 90} ${p.CENTRE} ${p.CENTRE})`
|
|
215
216
|
}, e.index)), s]
|
|
216
217
|
});
|
|
217
218
|
}
|
|
218
|
-
var
|
|
219
|
-
|
|
220
|
-
function
|
|
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 ?
|
|
227
|
+
...n ? p.seriesVariables(n, void 0, w) : {},
|
|
223
228
|
...r
|
|
224
229
|
};
|
|
225
|
-
return /* @__PURE__ */
|
|
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
|
|
233
|
-
|
|
234
|
-
var
|
|
237
|
+
var E = o(T);
|
|
238
|
+
E.displayName = "ChartContainer";
|
|
239
|
+
var D = E;
|
|
235
240
|
//#endregion
|
|
236
|
-
export {
|
|
241
|
+
export { D as ChartContainer, x as Gauge, C as MiniDonut, y as ProgressRing, _ as Sparkline };
|
package/components/combobox.cjs
CHANGED
|
@@ -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;
|