@box-kite/react 2.2.17 → 2.3.0
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 +6 -4
- package/.claude/skills/box-kite/SKILL.md +6 -4
- package/.claude/skills/box-kite/references/components.md +1 -1
- package/.claude/skills/box-kite/references/patterns.md +1 -1
- package/.claude/skills/box-kite/references/styling.md +2 -2
- package/.cursor/rules/box-kite.mdc +6 -4
- package/AGENTS.md +6 -4
- package/BOX_AI_CONTEXT.md +40 -3
- package/BOX_KITE_AI_CONTEXT.md +40 -3
- package/behavior.cjs +1 -1
- package/behavior.mjs +62 -62
- package/box.cjs +1 -1
- package/box.d.ts +1 -0
- package/box.mjs +1 -1
- package/catalog.cjs +1 -1
- package/catalog.mjs +4 -4
- package/client.cjs +1 -1
- package/client.mjs +11 -11
- package/components/accordion.cjs +1 -1
- package/components/accordion.mjs +1 -1
- package/components/calendar.cjs +1 -1
- package/components/calendar.mjs +21 -20
- package/components/combobox.cjs +1 -1
- package/components/combobox.mjs +1 -1
- package/components/dashboard.cjs +1 -1
- package/components/dashboard.mjs +12 -12
- package/components/dataGrid.cjs +2 -2
- package/components/dataGrid.mjs +5 -5
- package/components/dateField.cjs +1 -1
- package/components/dateField.mjs +6 -6
- package/components/datePicker.cjs +1 -1
- package/components/datePicker.mjs +118 -116
- package/components/dialog.cjs +1 -1
- package/components/dialog.d.ts +1 -1
- package/components/dialog.mjs +108 -101
- package/components/dropdown.cjs +1 -1
- package/components/dropdown.mjs +8 -3
- package/components/form.cjs +1 -1
- package/components/form.mjs +1 -1
- package/components/menu.cjs +1 -1
- package/components/menu.mjs +10 -10
- package/components/overlay.cjs +1 -1
- package/components/overlay.mjs +5 -5
- package/components/popover.cjs +1 -1
- package/components/popover.d.ts +8 -2
- package/components/popover.mjs +58 -55
- package/components/radioGroup.cjs +1 -1
- package/components/radioGroup.mjs +1 -1
- package/components/slider.cjs +1 -1
- package/components/slider.mjs +8 -8
- package/components/sortableList.cjs +1 -1
- package/components/sortableList.mjs +1 -1
- package/components/swipeItem.cjs +1 -1
- package/components/swipeItem.mjs +10 -10
- package/components/tabs.cjs +1 -1
- package/components/tabs.mjs +9 -9
- package/components/toaster.cjs +1 -1
- package/components/toaster.mjs +133 -115
- package/components/tooltip.cjs +1 -1
- package/components/tooltip.mjs +1 -1
- package/components/virtualList.cjs +1 -1
- package/components/virtualList.mjs +1 -1
- package/docs/props.md +6 -6
- package/interactionListening.cjs +1 -1
- package/interactionListening.mjs +1 -1
- package/layer.cjs +1 -1
- package/layer.mjs +17 -14
- package/package.json +2 -2
- package/placement.cjs +1 -1
- package/placement.mjs +10 -10
- package/platform.cjs +1 -1
- package/platform.mjs +23 -11
- package/react-shared.cjs +1 -1
- package/react-shared.mjs +1 -1
- package/rsc.cjs +1 -1
- package/rsc.d.ts +1 -0
- package/rsc.mjs +1 -1
- package/scrolling.cjs +1 -1
- package/scrolling.mjs +1 -1
- package/utils/dom/domUtils.d.ts +9 -0
package/client.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { l as e, u as t } from "./react-shared.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { b as n, g as r, t as i, y as a } from "./platform.mjs";
|
|
3
3
|
import { t as o } from "./effects.mjs";
|
|
4
4
|
import s from "./box.mjs";
|
|
5
5
|
import c, { useCallback as l, useContext as u, useEffect as d, useLayoutEffect as f, useMemo as p, useRef as m, useState as h } from "react";
|
|
@@ -26,11 +26,11 @@ function F({ value: e, children: t }) {
|
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/react/hooks/useVisibility.ts
|
|
28
28
|
function I(e) {
|
|
29
|
-
let { node: t = null, event: n = "click", hideOnScroll:
|
|
29
|
+
let { node: t = null, event: n = "click", hideOnScroll: i = !1, hideOnResize: a = !1, hideOnEscape: o = !0 } = e ?? {}, [s, c] = h(!1), l = m(null);
|
|
30
30
|
return d(() => {
|
|
31
31
|
function e(e) {
|
|
32
32
|
let n = t ?? l.current;
|
|
33
|
-
n && !
|
|
33
|
+
n && !r(e, [n]) && c(!1);
|
|
34
34
|
}
|
|
35
35
|
function u() {
|
|
36
36
|
c(!1);
|
|
@@ -39,7 +39,7 @@ function I(e) {
|
|
|
39
39
|
e.key === "Escape" && c(!1);
|
|
40
40
|
}
|
|
41
41
|
let f = new AbortController();
|
|
42
|
-
return s && (window.addEventListener(n, e, f), o && window.addEventListener("keydown", d, f), a && window.addEventListener("resize", u, f),
|
|
42
|
+
return s && (window.addEventListener(n, e, f), o && window.addEventListener("keydown", d, f), a && window.addEventListener("resize", u, f), i && window.addEventListener("scroll", e, {
|
|
43
43
|
signal: f.signal,
|
|
44
44
|
capture: !0
|
|
45
45
|
})), () => {
|
|
@@ -51,7 +51,7 @@ function I(e) {
|
|
|
51
51
|
n,
|
|
52
52
|
o,
|
|
53
53
|
a,
|
|
54
|
-
|
|
54
|
+
i
|
|
55
55
|
]), [
|
|
56
56
|
s,
|
|
57
57
|
c,
|
|
@@ -84,14 +84,14 @@ var B;
|
|
|
84
84
|
x().flushSync();
|
|
85
85
|
}
|
|
86
86
|
e.flushSync = t;
|
|
87
|
-
function
|
|
87
|
+
function r() {
|
|
88
88
|
x().clear();
|
|
89
89
|
}
|
|
90
|
-
e.clear =
|
|
91
|
-
function
|
|
90
|
+
e.clear = r;
|
|
91
|
+
function i() {
|
|
92
92
|
return x().getStyles();
|
|
93
93
|
}
|
|
94
|
-
e.getStyles =
|
|
94
|
+
e.getStyles = i;
|
|
95
95
|
function o() {
|
|
96
96
|
return x().getStyleTag();
|
|
97
97
|
}
|
|
@@ -101,7 +101,7 @@ var B;
|
|
|
101
101
|
}
|
|
102
102
|
e.styleElementId = s;
|
|
103
103
|
function c({ componentAttribute: e, ...t }) {
|
|
104
|
-
e !== void 0 && n(e), t.warnings !== void 0 &&
|
|
104
|
+
e !== void 0 && n(e), t.warnings !== void 0 && a(t.warnings), Object.keys(t).length > 0 && x().configure(t);
|
|
105
105
|
}
|
|
106
106
|
e.configure = c;
|
|
107
107
|
})(B ||= {}), N(c);
|
|
@@ -207,7 +207,7 @@ function G(e) {
|
|
|
207
207
|
function K(e = !0) {
|
|
208
208
|
let [t] = U.useTheme(), n = p(() => {
|
|
209
209
|
if (!e) return null;
|
|
210
|
-
let t =
|
|
210
|
+
let t = i();
|
|
211
211
|
if (!t) return null;
|
|
212
212
|
let n = "box-kite-portal", r = t.getElementById(n);
|
|
213
213
|
return r || (r = document.createElement("div"), r.id = n, document.body.appendChild(r)), r;
|
package/components/accordion.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../reporting.cjs");let o=require("react"),s=require("react/jsx-runtime");var c;(function(e){e.ROOT_ATTRIBUTE=`data-accordion`,e.TRIGGER_ATTRIBUTE=`data-accordion-trigger`;let t=e.ROOT_SELECTOR=`[data-accordion]`,n=e.TRIGGER_SELECTOR=`[data-accordion-trigger]`;function r(e,n){return n instanceof Element&&n.closest(t)===e}e.owns=r;function i(e){return e?[...e.querySelectorAll(n)].filter(t=>r(e,t)):[]}e.triggers=i;function a(e){return e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}e.isDisabled=a;function o(e,t,n,r){let i=e.length;if(i===0)return;let o=t<0||t>=i?n>0?-1:i:t;for(let t=0;t<i;t++){if(o+=n,o<0||o>=i){if(!r)return;o=(o%i+i)%i}if(!a(e[o]))return e[o]}}e.step=o;function s(e,t){return o(e,t===1?-1:e.length,t,!1)}e.edge=s;function c(e,t){return t instanceof HTMLElement?e.indexOf(t):-1}e.indexOf=c;function l(e){if(e===`ArrowDown`)return{kind:`step`,delta:1};if(e===`ArrowUp`)return{kind:`step`,delta:-1};if(e===`Home`)return{kind:`edge`,delta:1};if(e===`End`)return{kind:`edge`,delta:-1}}e.moveFor=l;function u(e,t,n,r){return n.kind===`edge`?s(e,n.delta):o(e,t,n.delta,r)}e.target=u;function d(e,t,n){return e.includes(t)?e.filter(e=>e!==t):n?[...e,t]:[t]}e.toggle=d})(c||={});var l=c,u=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],d=(0,o.createContext)(null),f=(0,o.createContext)(null);function p(e){let t=(0,o.useContext)(d);if(!t)throw Error(`<${e}> has to be rendered inside an <Accordion>.`);return t}function m(e){let t=(0,o.useContext)(f);if(!t)throw Error(`<${e}> has to be rendered inside an <Accordion.Item>.`);return t}function h(e,i){let{children:c,value:u,defaultValue:f,onValueChange:p,multiple:m=!1,loop:h=!0,level:g=3,props:_,...v}=e,y=(0,o.useRef)(null),b=(0,o.useCallback)(e=>{y.current=e,t.
|
|
1
|
+
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../reporting.cjs");let o=require("react"),s=require("react/jsx-runtime");var c;(function(e){e.ROOT_ATTRIBUTE=`data-accordion`,e.TRIGGER_ATTRIBUTE=`data-accordion-trigger`;let t=e.ROOT_SELECTOR=`[data-accordion]`,n=e.TRIGGER_SELECTOR=`[data-accordion-trigger]`;function r(e,n){return n instanceof Element&&n.closest(t)===e}e.owns=r;function i(e){return e?[...e.querySelectorAll(n)].filter(t=>r(e,t)):[]}e.triggers=i;function a(e){return e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}e.isDisabled=a;function o(e,t,n,r){let i=e.length;if(i===0)return;let o=t<0||t>=i?n>0?-1:i:t;for(let t=0;t<i;t++){if(o+=n,o<0||o>=i){if(!r)return;o=(o%i+i)%i}if(!a(e[o]))return e[o]}}e.step=o;function s(e,t){return o(e,t===1?-1:e.length,t,!1)}e.edge=s;function c(e,t){return t instanceof HTMLElement?e.indexOf(t):-1}e.indexOf=c;function l(e){if(e===`ArrowDown`)return{kind:`step`,delta:1};if(e===`ArrowUp`)return{kind:`step`,delta:-1};if(e===`Home`)return{kind:`edge`,delta:1};if(e===`End`)return{kind:`edge`,delta:-1}}e.moveFor=l;function u(e,t,n,r){return n.kind===`edge`?s(e,n.delta):o(e,t,n.delta,r)}e.target=u;function d(e,t,n){return e.includes(t)?e.filter(e=>e!==t):n?[...e,t]:[t]}e.toggle=d})(c||={});var l=c,u=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],d=(0,o.createContext)(null),f=(0,o.createContext)(null);function p(e){let t=(0,o.useContext)(d);if(!t)throw Error(`<${e}> has to be rendered inside an <Accordion>.`);return t}function m(e){let t=(0,o.useContext)(f);if(!t)throw Error(`<${e}> has to be rendered inside an <Accordion.Item>.`);return t}function h(e,i){let{children:c,value:u,defaultValue:f,onValueChange:p,multiple:m=!1,loop:h=!0,level:g=3,props:_,...v}=e,y=(0,o.useRef)(null),b=(0,o.useCallback)(e=>{y.current=e,t.d(i,e)},[i]),[x,S]=a.a({value:u,defaultValue:f??[],onChange:p,interaction:{component:`accordion`,type:`valueChange`}}),C=r.a((e,t)=>{S(t=>l.toggle(t,e,m),t)}),w=r.a(e=>{let t=y.current;if(!t||e.defaultPrevented||!l.owns(t,e.target))return;let n=l.triggers(t),r=l.indexOf(n,e.target);if(r===-1)return;let i=l.moveFor(e.key);if(!i)return;let a=l.target(n,r,i,h);a&&(e.preventDefault(),a.focus())}),T=(0,o.useMemo)(()=>({open:x,level:g,toggle:C}),[x,g,C]);return(0,s.jsx)(d.Provider,{value:T,children:(0,s.jsx)(n.default,{ref:b,component:`accordion`,...v,props:{[l.ROOT_ATTRIBUTE]:``,..._,onKeyDown:w},children:c})})}function g(e){let{value:t,children:r,disabled:a=!1,props:c,...l}=e,{open:u}=p(`Accordion.Item`),d=i.t(`accordion`),m=u.includes(t),h=(0,o.useMemo)(()=>({value:t,open:m,disabled:a,triggerId:`${d}-trigger`,panelId:`${d}-panel`}),[t,m,a,d]);return(0,s.jsx)(f.Provider,{value:h,children:(0,s.jsx)(n.default,{component:`accordion.item`,...l,props:c,children:r})})}g.displayName=`Accordion.Item`;function _(e){let{children:t,level:i,arrow:a=!0,props:o,...c}=e,{level:d,toggle:f}=p(`Accordion.Trigger`),{value:h,open:g,disabled:_,triggerId:v,panelId:y}=m(`Accordion.Trigger`),b=r.a(e=>f(h,{reason:`trigger`,event:e}));return(0,s.jsx)(n.default,{tag:u[(i??d)-1],component:`accordion.heading`,children:(0,s.jsxs)(n.default,{tag:`button`,component:`accordion.trigger`,...c,disabled:_,id:v,props:{type:`button`,"aria-expanded":g,"aria-controls":y,[l.TRIGGER_ATTRIBUTE]:``,...o,onClick:b},children:[t,a&&(0,s.jsx)(n.default,{tag:`span`,component:`accordion.arrow`,variant:{open:g},props:{"aria-hidden":!0}})]})})}_.displayName=`Accordion.Trigger`;function v(e){let{children:t,props:r,...i}=e,{open:a,triggerId:o,panelId:c}=m(`Accordion.Panel`);return(0,s.jsx)(n.default,{component:`accordion.track`,variant:{closed:!a},children:(0,s.jsx)(n.default,{component:`accordion.clip`,children:(0,s.jsx)(n.default,{component:`accordion.panel`,...i,id:c,props:{role:`region`,"aria-labelledby":o,...r},children:t})})})}v.displayName=`Accordion.Panel`;function y(e){let{children:t,trigger:c,open:l,defaultOpen:u=!1,onOpenChange:d,props:f,...p}=e,m=i.t(`collapsible`),h=`${m}-trigger`,g=`${m}-panel`,[_,v]=a.a({value:l,defaultValue:u,onChange:d,interaction:{component:`collapsible`,type:`openChange`}}),y=r.a(e=>v(e=>!e,{reason:`trigger`,event:e})),b=(0,o.useMemo)(()=>({props:{id:h,type:`button`,"aria-expanded":_,"aria-controls":g,onClick:y}}),[h,g,_,y]);return(0,s.jsxs)(n.default,{component:`collapsible`,...p,props:f,children:[c(b),(0,s.jsx)(n.default,{component:`collapsible.track`,variant:{closed:!_},children:(0,s.jsx)(n.default,{component:`collapsible.clip`,children:(0,s.jsx)(n.default,{component:`collapsible.panel`,id:g,children:t})})})]})}y.displayName=`Collapsible`;var b=e.f(h,`Accordion`);b.Item=g,b.Trigger=_,b.Panel=v,exports.Collapsible=y,exports.default=b;
|
package/components/accordion.mjs
CHANGED
package/components/calendar.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../dates.cjs"),o=require("../date-math.cjs"),s=require("../reporting.cjs"),c=require("./svg.cjs"),ee=require("../date-environment.cjs"),te=require("./visuallyHidden.cjs");let l=require("react"),u=require("react/jsx-runtime");function d(e){let t=a.f(e);return t&&t.kind===`date`?t.fields:null}function f(e){return a.w({...e,...a.V})}function ne(e,t,n){let r={year:e,month:t,day:1},i=a.U(r,-a.Q(a.G(r)-n,7));return Array.from({length:6},(e,r)=>{let o=Array.from({length:7},(e,n)=>{let o=a.U(i,r*7+n);return{date:f(o),day:o.day,outside:o.month!==t}}),s=a.U(i,r*7+a.Q(4-n,7));return{week:a.Z(s).week,days:o}})}function re(e,t,n,r){let i=r.rtl?`ArrowLeft`:`ArrowRight`,o=r.rtl?`ArrowRight`:`ArrowLeft`;switch(t){case i:return a.U(e,1);case o:return a.U(e,-1);case`ArrowDown`:return a.U(e,7);case`ArrowUp`:return a.U(e,-7);case`Home`:return a.U(e,-a.Q(a.G(e)-r.firstDay,7));case`End`:return a.U(e,6-a.Q(a.G(e)-r.firstDay,7));case`PageUp`:return a.W(e,n?-12:-1);case`PageDown`:return a.W(e,n?12:1);default:return null}}function ie(e,t){return t.min!=null&&a.q(e)<a.q(t.min)||t.max!=null&&a.q(e)>a.q(t.max)}function p(e,t){return t.min&&a.q(e)<a.q(t.min)?t.min:t.max&&a.q(e)>a.q(t.max)?t.max:e}function m(e,t){return a.q(e)<=a.q(t)?[e,t]:[t,e]}function ae(e,t,n){if(!t||!n)return t&&a.q(e)===a.q(t)?`start`:null;let[r,i]=m(t,n),o=a.q(e);return o===a.q(r)?`start`:o===a.q(i)?`end`:o>a.q(r)&&o<a.q(i)?`middle`:null}function oe(e,t,n){let[r,i]=m(e,t);for(let e=a.q(r);e<=a.q(i);e++)if(n(f(a.U({year:1970,month:1,day:1},e))))return!0;return!1}var h=`data-date`,g=12;function _(e,t){return e!==null&&t!==null&&a.q(e)===a.q(t)}function v(e,c){let{mode:v=`single`,value:b,defaultValue:le=null,onValueChange:ue,min:S,max:de,isDateUnavailable:C,locale:fe,zone:pe,firstDayOfWeek:me,months:w=1,weekNumbers:T=!1,showOutsideDays:he=!0,focusedDate:ge,defaultFocusedDate:_e,onFocusedDateChange:ve,disabled:E=!1,readOnly:ye=!1,autoFocus:be=!1,label:D,previousLabel:xe=`Previous`,nextLabel:Se=`Next`,props:Ce,...O}=e,k=ee.n({locale:fe,zone:pe}),{locale:A}=k,j=d(o.N(k.zone)),M=me??a.S(A).firstDay,N=e=>se(A).format(e),P=v===`range`,F=(0,l.useMemo)(()=>({min:d(S),max:d(de)}),[S,de]),[I,L]=s.a({value:b,defaultValue:le,onChange:(e,t)=>{ue?.(e,P?t:{...t,...o.x(e,k.zone)})},interaction:{component:`calendar`,type:`valueChange`,content:[`value`]}}),R=P?null:d(I),z=P&&I?I:null,[B,V]=(0,l.useState)(null),[we,H]=(0,l.useState)(null),Te=f(p(d(_e)??R??d(z?.start)??j,F)),[Ee,U]=r.i({value:ge,defaultValue:Te,onChange:ve}),W=d(Ee)??j,[G,De]=(0,l.useState)(`day`),K=s.i(`calendar`),[q,Oe]=(0,l.useState)(()=>y(W)),J=q;(y(W)<q||y(W)>q+w-1)&&(J=y(W)<q?y(W):y(W)-w+1,Oe(J));let ke=(0,l.useRef)(null),Ae=(0,l.useCallback)(e=>{ke.current=e,t.l(c,e)},[c]),Y=(0,l.useRef)(be),je=i.t(`calendar`);(0,l.useEffect)(()=>{Y.current&&(Y.current=!1,ke.current?.querySelector(`[${h}="${Ee}"]`)?.focus())});let Me=e=>ie(e,F),Ne=e=>C?.(f(e))??!1,X=(e,t,n)=>{Y.current=n,U(f(p(e,F)),{reason:t})},Pe=(e,t)=>{if(E||ye||Me(e)||Ne(e))return;if(X(e,`select`,!1),!P){L(f(e),{reason:`select`,event:t});return}if(!B){V(e),H(e);return}let[n,r]=m(B,e);V(null),H(null),!(C&&oe(n,r,C))&&L({start:f(n),end:f(r)},{reason:`select`,event:t})},Fe=r.a(e=>{if(E)return;if(e.key===`Enter`||e.key===` `){e.preventDefault(),Pe(W,e);return}if(e.key===`Escape`&&B){e.preventDefault(),e.stopPropagation(),V(null),H(null);return}let n=re(W,e.key,e.shiftKey,{rtl:t.m(e.currentTarget),firstDay:M});n&&(e.preventDefault(),X(n,`keyboard`,!0),B&&H(p(n,F)))}),Ie=e=>{let t=a.W(W,e*(G===`day`?w:G===`month`?12:144));G===`day`&&Oe(J+e*w),X(t,`navigate`,!1),K(`pageChange`,f(t),{reason:e===1?`next`:`previous`,content:[`value`]})},Z=Array.from({length:w},(e,t)=>({year:Math.floor((J+t)/12),month:(J+t)%12+1,day:1})),Q=`${je}-title`,Le=G===`day`&&w>1,Re=G===`day`?Z.map(e=>a.t(f(e),{locale:A,month:`long`,year:`numeric`})).join(` – `):G===`month`?N(W.year):`${N(x(W.year))} – ${N(x(W.year)+g-1)}`,ze=a.C(A,`short`),Be=ze.some(e=>e.length>4)?a.C(A,`narrow`):ze,Ve=a.C(A,`long`),He=Array.from({length:7},(e,t)=>(M+t)%7),Ue=B?we??B:null,We=B??d(z?.start),$=B?Ue:d(z?.end),Ge=e=>{let t=d(e.date),r=Me(t),i=Ne(t),o=P?ae(t,We,$):null,s=P?o!==null:_(t,R),c=_(t,j),ee=_(t,W);return e.outside&&(!he||w>1)?(0,u.jsx)(n.default,{tag:`td`,component:`calendar.cell`,display:`table-cell`,props:{role:`gridcell`}},e.date):(0,u.jsx)(n.default,{tag:`td`,component:`calendar.cell`,display:`table-cell`,p:0,py:.5,variant:{rangeStart:o===`start`&&$!==null&&!_(We,$),rangeEnd:o===`end`,rangeMiddle:o===`middle`},props:{role:`gridcell`,"aria-selected":s||void 0,"aria-disabled":r||E||void 0,"aria-current":c?`date`:void 0},children:(0,u.jsx)(n.default,{component:`calendar.day`,display:`flex`,ai:`center`,jc:`center`,width:9,height:9,mx:`auto`,borderRadius:999,fontSize:14,css:{fontVariantNumeric:`tabular-nums`},variant:{today:c,selected:s&&o!==`middle`,outside:e.outside,blocked:r||E,unavailable:i},props:{[h]:e.date,tabIndex:ee&&!r&&!E?0:-1,"aria-label":a.t(e.date,{locale:A,dateStyle:`full`}),onClick:e=>Pe(t,e),onPointerEnter:()=>B&&H(t)},children:N(e.day)})},e.date)},Ke=(e,n,r,i,a,o)=>{let s=t.m(e.currentTarget),c={ArrowUp:-r,ArrowDown:r,[s?`ArrowRight`:`ArrowLeft`]:-1,[s?`ArrowLeft`:`ArrowRight`]:1};e.key===`Enter`||e.key===` `?(e.preventDefault(),i(o)):e.key in c&&(e.preventDefault(),a(Math.max(0,Math.min(n-1,o+c[e.key])),e.currentTarget.parentElement))},qe=()=>{let e=a.x(A,`short`),t=x(W.year),r=G===`month`?e.map((e,t)=>({label:e,active:t+1===W.month,current:j.year===W.year&&j.month===t+1})):Array.from({length:g},(e,n)=>({label:N(t+n),active:t+n===W.year,current:j.year===t+n})),i=e=>G===`month`?{...W,month:e+1,day:1}:{...W,year:t+e,day:1},o=e=>{let t=i(e);Y.current=!0,U(f(p({...t,day:Math.min(W.day,28)},F)),{reason:`navigate`}),De(G===`year`?`month`:`day`),K(`viewChange`,G===`year`?`month`:`day`,{reason:`zoom-in`})},s=(e,t)=>{let n=i(e);U(f({...n,day:Math.min(W.day,28)}),{reason:`keyboard`}),t?.querySelector(`[data-zoom="${e}"]`)?.focus()};return(0,u.jsx)(n.default,{display:`grid`,gridTemplateColumns:3,gap:1,props:{role:`group`,"aria-labelledby":Q},children:r.map((e,t)=>(0,u.jsx)(n.default,{tag:`button`,component:`calendar.zoomItem`,variant:{selected:e.active,today:e.current},py:2,borderRadius:2,disabled:E,props:{type:`button`,"data-zoom":t,tabIndex:e.active?0:-1,"aria-pressed":e.active,onClick:()=>o(t),onKeyDown:e=>Ke(e,r.length,3,o,s,t)},children:e.label},e.label))})},Je=(e,t)=>{let r=ne(e.year,e.month,M),i=a.t(f(e),{locale:A,month:`long`,year:`numeric`});return(0,u.jsxs)(n.default,{tag:`table`,css:{borderCollapse:`collapse`,tableLayout:`fixed`},props:{role:`grid`,"aria-label":w>1?i:void 0,"aria-labelledby":w>1?void 0:Q,"aria-readonly":ye||void 0,onKeyDown:Fe},children:[(0,u.jsx)(n.default,{tag:`thead`,display:`table-header-group`,children:(0,u.jsxs)(n.default,{tag:`tr`,display:`table-row`,children:[T&&(0,u.jsx)(n.default,{tag:`th`,display:`table-cell`,component:`calendar.weekday`,props:{"aria-hidden":!0}}),He.map(e=>(0,u.jsx)(n.default,{tag:`th`,display:`table-cell`,component:`calendar.weekday`,pb:1,fontSize:12,props:{scope:`col`,abbr:Ve[e]},children:Be[e]},e))]})}),(0,u.jsx)(n.default,{tag:`tbody`,display:`table-row-group`,children:r.map(e=>(0,u.jsxs)(n.default,{tag:`tr`,display:`table-row`,children:[T&&(0,u.jsx)(n.default,{tag:`td`,display:`table-cell`,component:`calendar.weekNumber`,fontSize:11,textAlign:`center`,props:{role:`rowheader`},children:N(e.week)}),e.days.map(Ge)]},e.days[0].date))})]},t)};return(0,u.jsxs)(n.default,{ref:Ae,component:`calendar`,display:`inline-block`,...O,variant:[O.variant,{disabled:E}],props:{role:D?`group`:void 0,"aria-label":D,...Ce,onPointerLeave:()=>B&&H(B)},children:[(0,u.jsxs)(n.default,{position:`relative`,minHeight:8,mb:2,children:[(0,u.jsx)(n.default,{tag:`button`,component:`calendar.nav`,position:`absolute`,top:0,insetStart:0,display:`inline-flex`,ai:`center`,jc:`center`,width:8,height:8,borderRadius:2,disabled:E,props:{type:`button`,"aria-label":xe,onClick:()=>Ie(-1)},children:(0,u.jsx)(ce,{direction:-1})}),Le?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(n.default,{display:`flex`,gap:4,children:Z.map(e=>(0,u.jsx)(n.default,{flex1:!0,textAlign:`center`,py:1.5,fontSize:14,fontWeight:600,props:{"aria-hidden":!0},children:a.t(f(e),{locale:A,month:`long`,year:`numeric`})},f(e)))}),(0,u.jsx)(te.default,{id:Q,props:{"aria-live":`polite`},children:Re})]}):(0,u.jsx)(n.default,{display:`flex`,jc:`center`,px:9,children:(0,u.jsx)(n.default,{tag:`button`,component:`calendar.title`,py:1.5,px:3,borderRadius:2,fontSize:14,id:Q,disabled:E||G===`year`,props:{type:`button`,"aria-live":`polite`,onClick:()=>{De(G===`day`?`month`:`year`),K(`viewChange`,G===`day`?`month`:`year`,{reason:`zoom-out`})}},children:Re})}),(0,u.jsx)(n.default,{tag:`button`,component:`calendar.nav`,position:`absolute`,top:0,insetEnd:0,display:`inline-flex`,ai:`center`,jc:`center`,width:8,height:8,borderRadius:2,disabled:E,props:{type:`button`,"aria-label":Se,onClick:()=>Ie(1)},children:(0,u.jsx)(ce,{direction:1})})]}),G===`day`?(0,u.jsx)(n.default,{display:`flex`,gap:4,ai:`start`,children:Z.map(Je)}):qe()]})}function y(e){return e.year*12+e.month-1}var b=new Map;function se(e){let t=b.get(e);return t||(t=new Intl.NumberFormat(e,{useGrouping:!1}),b.set(e,t)),t}function x(e){return e-(e%g+g)%g}function ce({direction:e}){return(0,u.jsx)(c.Svg,{viewBox:`0 0 16 16`,width:`1rem`,height:`1rem`,rtl:{flip:`xAxis`},props:{fill:`none`},children:(0,u.jsx)(c.Path,{d:e===1?`M6 3l5 5-5 5`:`M10 3L5 8l5 5`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})})}var le=e.f(v,`Calendar`);exports.default=le;
|
|
1
|
+
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../dates.cjs"),o=require("../date-math.cjs"),s=require("../reporting.cjs"),c=require("./svg.cjs"),ee=require("../date-environment.cjs"),te=require("./visuallyHidden.cjs");let l=require("react"),u=require("react/jsx-runtime");function d(e){let t=a.f(e);return t&&t.kind===`date`?t.fields:null}function f(e){return a.w({...e,...a.V})}function ne(e,t,n){let r={year:e,month:t,day:1},i=a.U(r,-a.Q(a.G(r)-n,7));return Array.from({length:6},(e,r)=>{let o=Array.from({length:7},(e,n)=>{let o=a.U(i,r*7+n);return{date:f(o),day:o.day,outside:o.month!==t}}),s=a.U(i,r*7+a.Q(4-n,7));return{week:a.Z(s).week,days:o}})}function re(e,t,n,r){let i=r.rtl?`ArrowLeft`:`ArrowRight`,o=r.rtl?`ArrowRight`:`ArrowLeft`;switch(t){case i:return a.U(e,1);case o:return a.U(e,-1);case`ArrowDown`:return a.U(e,7);case`ArrowUp`:return a.U(e,-7);case`Home`:return a.U(e,-a.Q(a.G(e)-r.firstDay,7));case`End`:return a.U(e,6-a.Q(a.G(e)-r.firstDay,7));case`PageUp`:return a.W(e,n?-12:-1);case`PageDown`:return a.W(e,n?12:1);default:return null}}function ie(e,t){return t.min!=null&&a.q(e)<a.q(t.min)||t.max!=null&&a.q(e)>a.q(t.max)}function p(e,t){return t.min&&a.q(e)<a.q(t.min)?t.min:t.max&&a.q(e)>a.q(t.max)?t.max:e}function m(e,t){return a.q(e)<=a.q(t)?[e,t]:[t,e]}function ae(e,t,n){if(!t||!n)return t&&a.q(e)===a.q(t)?`start`:null;let[r,i]=m(t,n),o=a.q(e);return o===a.q(r)?`start`:o===a.q(i)?`end`:o>a.q(r)&&o<a.q(i)?`middle`:null}function oe(e,t,n){let[r,i]=m(e,t);for(let e=a.q(r);e<=a.q(i);e++)if(n(f(a.U({year:1970,month:1,day:1},e))))return!0;return!1}var h=`data-date`,g=12;function _(e,t){return e!==null&&t!==null&&a.q(e)===a.q(t)}function v(e,c){let{mode:v=`single`,value:b,defaultValue:le=null,onValueChange:ue,min:S,max:de,isDateUnavailable:C,locale:fe,zone:pe,firstDayOfWeek:me,months:w=1,weekNumbers:T=!1,showOutsideDays:he=!0,focusedDate:ge,defaultFocusedDate:_e,onFocusedDateChange:ve,disabled:E=!1,readOnly:ye=!1,autoFocus:be=!1,label:D,previousLabel:xe=`Previous`,nextLabel:Se=`Next`,props:Ce,...O}=e,k=ee.n({locale:fe,zone:pe}),{locale:A}=k,j=d(o.N(k.zone)),M=me??a.S(A).firstDay,N=e=>se(A).format(e),P=v===`range`,F=(0,l.useMemo)(()=>({min:d(S),max:d(de)}),[S,de]),[I,L]=s.a({value:b,defaultValue:le,onChange:(e,t)=>{ue?.(e,P?t:{...t,...o.x(e,k.zone)})},interaction:{component:`calendar`,type:`valueChange`,content:[`value`]}}),R=P?null:d(I),z=P&&I?I:null,[B,V]=(0,l.useState)(null),[we,H]=(0,l.useState)(null),Te=f(p(d(_e)??R??d(z?.start)??j,F)),[Ee,U]=r.i({value:ge,defaultValue:Te,onChange:ve}),W=d(Ee)??j,[G,De]=(0,l.useState)(`day`),K=s.i(`calendar`),[q,Oe]=(0,l.useState)(()=>y(W)),J=q;(y(W)<q||y(W)>q+w-1)&&(J=y(W)<q?y(W):y(W)-w+1,Oe(J));let ke=(0,l.useRef)(null),Ae=(0,l.useCallback)(e=>{ke.current=e,t.d(c,e)},[c]),Y=(0,l.useRef)(be),je=i.t(`calendar`);(0,l.useEffect)(()=>{Y.current&&(Y.current=!1,ke.current?.querySelector(`[${h}="${Ee}"]`)?.focus())});let Me=e=>ie(e,F),Ne=e=>C?.(f(e))??!1,X=(e,t,n)=>{Y.current=n,U(f(p(e,F)),{reason:t})},Pe=(e,t)=>{if(E||ye||Me(e)||Ne(e))return;if(X(e,`select`,!1),!P){L(f(e),{reason:`select`,event:t});return}if(!B){V(e),H(e);return}let[n,r]=m(B,e);V(null),H(null),!(C&&oe(n,r,C))&&L({start:f(n),end:f(r)},{reason:`select`,event:t})},Fe=r.a(e=>{if(E)return;if(e.key===`Enter`||e.key===` `){e.preventDefault(),Pe(W,e);return}if(e.key===`Escape`&&B){e.preventDefault(),e.stopPropagation(),V(null),H(null);return}let n=re(W,e.key,e.shiftKey,{rtl:t._(e.currentTarget),firstDay:M});n&&(e.preventDefault(),X(n,`keyboard`,!0),B&&H(p(n,F)))}),Ie=e=>{let t=a.W(W,e*(G===`day`?w:G===`month`?12:144));G===`day`&&Oe(J+e*w),X(t,`navigate`,!1),K(`pageChange`,f(t),{reason:e===1?`next`:`previous`,content:[`value`]})},Z=Array.from({length:w},(e,t)=>({year:Math.floor((J+t)/12),month:(J+t)%12+1,day:1})),Q=`${je}-title`,Le=G===`day`&&w>1,Re=G===`day`?Z.map(e=>a.t(f(e),{locale:A,month:`long`,year:`numeric`})).join(` – `):G===`month`?N(W.year):`${N(x(W.year))} – ${N(x(W.year)+g-1)}`,ze=a.C(A,`short`),Be=ze.some(e=>e.length>4)?a.C(A,`narrow`):ze,Ve=a.C(A,`long`),He=Array.from({length:7},(e,t)=>(M+t)%7),Ue=B?we??B:null,We=B??d(z?.start),$=B?Ue:d(z?.end),Ge=e=>{let t=d(e.date),r=Me(t),i=Ne(t),o=P?ae(t,We,$):null,s=P?o!==null:_(t,R),c=_(t,j),ee=_(t,W);return e.outside&&(!he||w>1)?(0,u.jsx)(n.default,{tag:`td`,component:`calendar.cell`,display:`table-cell`,props:{role:`gridcell`}},e.date):(0,u.jsx)(n.default,{tag:`td`,component:`calendar.cell`,display:`table-cell`,p:0,py:.5,variant:{rangeStart:o===`start`&&$!==null&&!_(We,$),rangeEnd:o===`end`,rangeMiddle:o===`middle`},props:{role:`gridcell`,"aria-selected":s||void 0,"aria-disabled":r||E||void 0,"aria-current":c?`date`:void 0},children:(0,u.jsx)(n.default,{component:`calendar.day`,display:`flex`,ai:`center`,jc:`center`,height:`control`,aspectRatio:`square`,mx:`auto`,borderRadius:999,fontSize:`control`,css:{fontVariantNumeric:`tabular-nums`},variant:{today:c,selected:s&&o!==`middle`,outside:e.outside,blocked:r||E,unavailable:i},props:{[h]:e.date,tabIndex:ee&&!r&&!E?0:-1,"aria-label":a.t(e.date,{locale:A,dateStyle:`full`}),onClick:e=>Pe(t,e),onPointerEnter:()=>B&&H(t)},children:N(e.day)})},e.date)},Ke=(e,n,r,i,a,o)=>{let s=t._(e.currentTarget),c={ArrowUp:-r,ArrowDown:r,[s?`ArrowRight`:`ArrowLeft`]:-1,[s?`ArrowLeft`:`ArrowRight`]:1};e.key===`Enter`||e.key===` `?(e.preventDefault(),i(o)):e.key in c&&(e.preventDefault(),a(Math.max(0,Math.min(n-1,o+c[e.key])),e.currentTarget.parentElement))},qe=()=>{let e=a.x(A,`short`),t=x(W.year),r=G===`month`?e.map((e,t)=>({label:e,active:t+1===W.month,current:j.year===W.year&&j.month===t+1})):Array.from({length:g},(e,n)=>({label:N(t+n),active:t+n===W.year,current:j.year===t+n})),i=e=>G===`month`?{...W,month:e+1,day:1}:{...W,year:t+e,day:1},o=e=>{let t=i(e);Y.current=!0,U(f(p({...t,day:Math.min(W.day,28)},F)),{reason:`navigate`}),De(G===`year`?`month`:`day`),K(`viewChange`,G===`year`?`month`:`day`,{reason:`zoom-in`})},s=(e,t)=>{let n=i(e);U(f({...n,day:Math.min(W.day,28)}),{reason:`keyboard`}),t?.querySelector(`[data-zoom="${e}"]`)?.focus()};return(0,u.jsx)(n.default,{display:`grid`,gridTemplateColumns:3,gap:1,props:{role:`group`,"aria-labelledby":Q},children:r.map((e,t)=>(0,u.jsx)(n.default,{tag:`button`,component:`calendar.zoomItem`,variant:{selected:e.active,today:e.current},minHeight:`control`,fontSize:`control`,borderRadius:2,disabled:E,props:{type:`button`,"data-zoom":t,tabIndex:e.active?0:-1,"aria-pressed":e.active,onClick:()=>o(t),onKeyDown:e=>Ke(e,r.length,3,o,s,t)},children:e.label},e.label))})},Je=(e,t)=>{let r=ne(e.year,e.month,M),i=a.t(f(e),{locale:A,month:`long`,year:`numeric`});return(0,u.jsxs)(n.default,{tag:`table`,css:{borderCollapse:`collapse`,tableLayout:`fixed`},props:{role:`grid`,"aria-label":w>1?i:void 0,"aria-labelledby":w>1?void 0:Q,"aria-readonly":ye||void 0,onKeyDown:Fe},children:[(0,u.jsx)(n.default,{tag:`thead`,display:`table-header-group`,children:(0,u.jsxs)(n.default,{tag:`tr`,display:`table-row`,children:[T&&(0,u.jsx)(n.default,{tag:`th`,display:`table-cell`,component:`calendar.weekday`,props:{"aria-hidden":!0}}),He.map(e=>(0,u.jsx)(n.default,{tag:`th`,display:`table-cell`,component:`calendar.weekday`,pb:1,fontSize:12,props:{scope:`col`,abbr:Ve[e]},children:Be[e]},e))]})}),(0,u.jsx)(n.default,{tag:`tbody`,display:`table-row-group`,children:r.map(e=>(0,u.jsxs)(n.default,{tag:`tr`,display:`table-row`,children:[T&&(0,u.jsx)(n.default,{tag:`td`,display:`table-cell`,component:`calendar.weekNumber`,fontSize:11,textAlign:`center`,props:{role:`rowheader`},children:N(e.week)}),e.days.map(Ge)]},e.days[0].date))})]},t)};return(0,u.jsxs)(n.default,{ref:Ae,component:`calendar`,display:`inline-block`,...O,variant:[O.variant,{disabled:E}],props:{role:D?`group`:void 0,"aria-label":D,...Ce,onPointerLeave:()=>B&&H(B)},children:[(0,u.jsxs)(n.default,{position:`relative`,minHeight:`control`,mb:2,children:[(0,u.jsx)(n.default,{tag:`button`,component:`calendar.nav`,position:`absolute`,top:0,insetStart:0,display:`inline-flex`,ai:`center`,jc:`center`,height:`control`,aspectRatio:`square`,borderRadius:2,disabled:E,props:{type:`button`,"aria-label":xe,onClick:()=>Ie(-1)},children:(0,u.jsx)(ce,{direction:-1})}),Le?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(n.default,{display:`flex`,gap:4,children:Z.map(e=>(0,u.jsx)(n.default,{flex1:!0,textAlign:`center`,py:1.5,fontSize:14,fontWeight:600,props:{"aria-hidden":!0},children:a.t(f(e),{locale:A,month:`long`,year:`numeric`})},f(e)))}),(0,u.jsx)(te.default,{id:Q,props:{"aria-live":`polite`},children:Re})]}):(0,u.jsx)(n.default,{display:`flex`,jc:`center`,px:13,children:(0,u.jsx)(n.default,{tag:`button`,component:`calendar.title`,minHeight:`control`,px:3,borderRadius:2,fontSize:`control`,id:Q,disabled:E||G===`year`,props:{type:`button`,"aria-live":`polite`,onClick:()=>{De(G===`day`?`month`:`year`),K(`viewChange`,G===`day`?`month`:`year`,{reason:`zoom-out`})}},children:Re})}),(0,u.jsx)(n.default,{tag:`button`,component:`calendar.nav`,position:`absolute`,top:0,insetEnd:0,display:`inline-flex`,ai:`center`,jc:`center`,height:`control`,aspectRatio:`square`,borderRadius:2,disabled:E,props:{type:`button`,"aria-label":Se,onClick:()=>Ie(1)},children:(0,u.jsx)(ce,{direction:1})})]}),G===`day`?(0,u.jsx)(n.default,{display:`flex`,gap:4,ai:`start`,children:Z.map(Je)}):qe()]})}function y(e){return e.year*12+e.month-1}var b=new Map;function se(e){let t=b.get(e);return t||(t=new Intl.NumberFormat(e,{useGrouping:!1}),b.set(e,t)),t}function x(e){return e-(e%g+g)%g}function ce({direction:e}){return(0,u.jsx)(c.Svg,{viewBox:`0 0 16 16`,width:`1rem`,height:`1rem`,rtl:{flip:`xAxis`},props:{fill:`none`},children:(0,u.jsx)(c.Path,{d:e===1?`M6 3l5 5-5 5`:`M10 3L5 8l5 5`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})})}var le=e.f(v,`Calendar`);exports.default=le;
|
package/components/calendar.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { f as e } from "../react-shared.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { _ as t, d as n } from "../platform.mjs";
|
|
4
4
|
import r from "../box.mjs";
|
|
5
5
|
import { a as i, i as a } from "../behavior.mjs";
|
|
6
6
|
import { t as o } from "../identity.mjs";
|
|
@@ -115,7 +115,7 @@ function Ce(e, c) {
|
|
|
115
115
|
}), W = y(Be) ?? M, [G, Ve] = g("day"), K = se("calendar"), [q, He] = g(() => T(W)), J = q;
|
|
116
116
|
(T(W) < q || T(W) > q + E - 1) && (J = T(W) < q ? T(W) : T(W) - E + 1, He(J));
|
|
117
117
|
let Ue = he(null), We = fe((e) => {
|
|
118
|
-
Ue.current = e,
|
|
118
|
+
Ue.current = e, n(c, e);
|
|
119
119
|
}, [c]), Y = he(je), Ge = o("calendar");
|
|
120
120
|
pe(() => {
|
|
121
121
|
Y.current && (Y.current = !1, Ue.current?.querySelector(`[${Se}="${Be}"]`)?.focus());
|
|
@@ -153,11 +153,11 @@ function Ce(e, c) {
|
|
|
153
153
|
e.preventDefault(), e.stopPropagation(), V(null), H(null);
|
|
154
154
|
return;
|
|
155
155
|
}
|
|
156
|
-
let
|
|
157
|
-
rtl:
|
|
156
|
+
let n = ve(W, e.key, e.shiftKey, {
|
|
157
|
+
rtl: t(e.currentTarget),
|
|
158
158
|
firstDay: N
|
|
159
159
|
});
|
|
160
|
-
|
|
160
|
+
n && (e.preventDefault(), X(n, "keyboard", !0), B && H(x(n, I)));
|
|
161
161
|
}), Xe = (e) => {
|
|
162
162
|
let t = d(W, e * (G === "day" ? E : G === "month" ? 12 : 144));
|
|
163
163
|
G === "day" && He(J + e * E), X(t, "navigate", !1), K("pageChange", b(t), {
|
|
@@ -201,11 +201,11 @@ function Ce(e, c) {
|
|
|
201
201
|
display: "flex",
|
|
202
202
|
ai: "center",
|
|
203
203
|
jc: "center",
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
height: "control",
|
|
205
|
+
aspectRatio: "square",
|
|
206
206
|
mx: "auto",
|
|
207
207
|
borderRadius: 999,
|
|
208
|
-
fontSize:
|
|
208
|
+
fontSize: "control",
|
|
209
209
|
css: { fontVariantNumeric: "tabular-nums" },
|
|
210
210
|
variant: {
|
|
211
211
|
today: s,
|
|
@@ -227,14 +227,14 @@ function Ce(e, c) {
|
|
|
227
227
|
children: P(e.day)
|
|
228
228
|
})
|
|
229
229
|
}, e.date);
|
|
230
|
-
}, ot = (e,
|
|
231
|
-
let s =
|
|
230
|
+
}, ot = (e, n, r, i, a, o) => {
|
|
231
|
+
let s = t(e.currentTarget), c = {
|
|
232
232
|
ArrowUp: -r,
|
|
233
233
|
ArrowDown: r,
|
|
234
234
|
[s ? "ArrowRight" : "ArrowLeft"]: -1,
|
|
235
235
|
[s ? "ArrowLeft" : "ArrowRight"]: 1
|
|
236
236
|
};
|
|
237
|
-
e.key === "Enter" || e.key === " " ? (e.preventDefault(), i(o)) : e.key in c && (e.preventDefault(), a(Math.max(0, Math.min(
|
|
237
|
+
e.key === "Enter" || e.key === " " ? (e.preventDefault(), i(o)) : e.key in c && (e.preventDefault(), a(Math.max(0, Math.min(n - 1, o + c[e.key])), e.currentTarget.parentElement));
|
|
238
238
|
}, st = () => {
|
|
239
239
|
let e = re(j, "short"), t = D(W.year), n = G === "month" ? e.map((e, t) => ({
|
|
240
240
|
label: e,
|
|
@@ -280,7 +280,8 @@ function Ce(e, c) {
|
|
|
280
280
|
selected: e.active,
|
|
281
281
|
today: e.current
|
|
282
282
|
},
|
|
283
|
-
|
|
283
|
+
minHeight: "control",
|
|
284
|
+
fontSize: "control",
|
|
284
285
|
borderRadius: 2,
|
|
285
286
|
disabled: k,
|
|
286
287
|
props: {
|
|
@@ -370,7 +371,7 @@ function Ce(e, c) {
|
|
|
370
371
|
},
|
|
371
372
|
children: [/* @__PURE__ */ v(r, {
|
|
372
373
|
position: "relative",
|
|
373
|
-
minHeight:
|
|
374
|
+
minHeight: "control",
|
|
374
375
|
mb: 2,
|
|
375
376
|
children: [
|
|
376
377
|
/* @__PURE__ */ _(r, {
|
|
@@ -382,8 +383,8 @@ function Ce(e, c) {
|
|
|
382
383
|
display: "inline-flex",
|
|
383
384
|
ai: "center",
|
|
384
385
|
jc: "center",
|
|
385
|
-
|
|
386
|
-
|
|
386
|
+
height: "control",
|
|
387
|
+
aspectRatio: "square",
|
|
387
388
|
borderRadius: 2,
|
|
388
389
|
disabled: k,
|
|
389
390
|
props: {
|
|
@@ -416,14 +417,14 @@ function Ce(e, c) {
|
|
|
416
417
|
})] }) : /* @__PURE__ */ _(r, {
|
|
417
418
|
display: "flex",
|
|
418
419
|
jc: "center",
|
|
419
|
-
px:
|
|
420
|
+
px: 13,
|
|
420
421
|
children: /* @__PURE__ */ _(r, {
|
|
421
422
|
tag: "button",
|
|
422
423
|
component: "calendar.title",
|
|
423
|
-
|
|
424
|
+
minHeight: "control",
|
|
424
425
|
px: 3,
|
|
425
426
|
borderRadius: 2,
|
|
426
|
-
fontSize:
|
|
427
|
+
fontSize: "control",
|
|
427
428
|
id: Q,
|
|
428
429
|
disabled: k || G === "year",
|
|
429
430
|
props: {
|
|
@@ -445,8 +446,8 @@ function Ce(e, c) {
|
|
|
445
446
|
display: "inline-flex",
|
|
446
447
|
ai: "center",
|
|
447
448
|
jc: "center",
|
|
448
|
-
|
|
449
|
-
|
|
449
|
+
height: "control",
|
|
450
|
+
aspectRatio: "square",
|
|
450
451
|
borderRadius: 2,
|
|
451
452
|
disabled: k,
|
|
452
453
|
props: {
|
package/components/combobox.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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.d(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;
|
package/components/combobox.mjs
CHANGED
package/components/dashboard.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../dashboardSchema.cjs"),a=require("../reporting.cjs"),o=require("./svg.cjs"),s=require("./visuallyHidden.cjs");let c=require("react"),l=require("react/jsx-runtime");var u;(function(e){let t=e.VERSION=1,n=e.MIN_COLUMNS=1,r=e.MAX_COLUMNS=24;function a(e,t,n){return Math.min(Math.max(e,t),n)}function o(e,t){return typeof e==`number`&&Number.isFinite(e)?Math.round(e):t}function s(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}e.overlaps=s;function c(e,t){return e.find(e=>e.id!==t.id&&s(e,t))}function l(e,t){let n=Math.min(e.maxW??t,t),r=a(o(e.w,1),Math.max(1,Math.min(e.minW??1,n)),Math.max(1,n)),i=a(o(e.h,1),Math.max(1,e.minH??1),Math.max(1,e.maxH??2**53-1));return{...e,w:r,h:i,x:a(o(e.x,0),0,t-r),y:Math.max(o(e.y,0),0)}}function u(e,t){return e.y-t.y||e.x-t.x}function d(e,t){let i=a(o(t,12),n,r),s=e.map(e=>l(e,i)),d=e=>+!e.fixed,f=[...s].sort((e,t)=>d(e)-d(t)||u(e,t)),p=[];for(let e of f){if(e.fixed){p.push(e);continue}let t={...e};for(;t.y>0&&!c(p,{...t,y:t.y-1});)t.y--;let n=c(p,t);for(;n;)t.y=n.y+n.h,n=c(p,t);p.push(t)}return p.sort(u)}e.resolve=d;function f(e){let i=a(o(e.columns,12),n,r);return{version:t,columns:i,items:d(e.items,i)}}e.normalize=f;function p(e,t){return e.items.find(e=>e.id===t)}e.itemOf=p;function m(e){return new Map(e.items.map((e,t)=>[e.id,t]))}e.ranks=m;function h(e,t){let n=n=>!s(t,n)&&!e.some(e=>e.id!==n.id&&e.id!==t.id&&s(e,n));return e.map(e=>{if(e.id===t.id)return t;if(e.fixed===!0||!s(e,t))return e;let r={...e,y:Math.max(t.y-e.h,0)};return n(r)?r:{...e,y:t.y+t.h}})}function g(e,t,i,s){let c=p(e,t);if(!c||c.fixed)return e;let u=l({...c,x:i,y:s},a(o(e.columns,12),n,r));return f({...e,items:h(e.items,u)})}e.moveTo=g;function _(e,t,n,r){let i=p(e,t);if(!i||i.fixed)return e;let a=e.items.map(e=>e.id===t?{...e,w:n,h:r}:e);return f({...e,items:a})}e.resizeTo=_;function v(e,t){let n=e.items.reduce((e,t)=>Math.max(e,t.y+t.h),0);return f({...e,items:[...e.items,{x:0,y:n,...t}]})}e.add=v;function y(e,t){return f({...e,items:e.items.filter(e=>e.id!==t)})}e.remove=y;function b(e,i){let s=a(o(i,12),n,r);if(s===e.columns)return f(e);let c=s/e.columns,l=e=>e===void 0?void 0:a(Math.max(1,Math.round(e*c)),1,s),u=e.items.map(e=>{let t=a(Math.max(1,Math.round(e.w*c)),1,s);return{...e,w:t,x:a(Math.floor(e.x*c),0,s-t),minW:l(e.minW),maxW:l(e.maxW)}});return f({version:t,columns:s,items:u})}e.project=b;function x(e,t){return e===t?!0:e.columns!==t.columns||e.items.length!==t.items.length?!1:e.items.every((e,n)=>{let r=t.items[n];return e.id===r.id&&e.x===r.x&&e.y===r.y&&e.w===r.w&&e.h===r.h})}e.same=x;function S(e,t,n){return{columns:n.x>0?Math.round(e/n.x):0,rows:n.y>0?Math.round(t/n.y):0}}e.cellsMoved=S;function C(e){return typeof e==`string`&&e.length>0}function w(e){return typeof e==`number`&&Number.isFinite(e)}function T(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e)){n.push({code:`invalid-item`,path:t,message:`A layout item has to be an object.`});return}let r=e;if(!C(r.id)){n.push({code:`invalid-item`,path:`${t}.id`,message:`A layout item needs an id naming the widget it places.`});return}if(!w(r.x)||!w(r.y)||!w(r.w)||!w(r.h)){n.push({code:`invalid-item`,path:t,message:`Item "${r.id}" needs numeric x, y, w and h.`});return}let i=[`minW`,`minH`,`maxW`,`maxH`].reduce((e,t)=>(w(r[t])&&(e[t]=Math.round(r[t])),e),{});return{id:r.id,x:Math.round(r.x),y:Math.round(r.y),w:Math.round(r.w),h:Math.round(r.h),...i,...r.fixed===!0?{fixed:!0}:{}}}function E(e,i=12){let o=[],s={version:t,columns:i,items:[]};if(typeof e!=`object`||!e||Array.isArray(e))return o.push({code:`not-an-object`,path:``,message:`A layout has to be an object.`}),{layout:f(s),issues:o};let c=e;c.version!==t&&o.push({code:`version`,path:`version`,message:`Layout version ${String(c.version)} was read as version ${t}.`});let l=w(c.columns)?a(Math.round(c.columns),n,r):i;if(w(c.columns)||o.push({code:`columns`,path:`columns`,message:`No column count, so the layout was read in ${i}.`}),!Array.isArray(c.items))return o.push({code:`items`,path:`items`,message:`A layout needs an items array.`}),{layout:f({...s,columns:l}),issues:o};let u=new Set,d=c.items.reduce((e,t,n)=>{let r=T(t,`items.${n}`,o);return r?u.has(r.id)?(o.push({code:`duplicate-id`,path:`items.${n}.id`,message:`Two items are called "${r.id}"; the second was dropped.`}),e):(u.add(r.id),e.push(r),e):e},[]);return{layout:f({version:t,columns:l,items:d}),issues:o}}e.parse=E,e.SCHEMA=i.t})(u||={});var d=u,f=[`xs`,`sm`,`md`,`lg`,`xl`,`xxl`],p=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],m=(0,c.createContext)(null);function h(e,t,n){return Math.min(Math.max(e,t),n)}function g(e){if(typeof e==`number`)return[{count:h(Math.round(e),d.MIN_COLUMNS,d.MAX_COLUMNS)}];let t=f.filter(t=>typeof e[t]==`number`).map(t=>({size:t,count:h(Math.round(e[t]),d.MIN_COLUMNS,d.MAX_COLUMNS)}));return t.length>0?t:[{count:12}]}function _(e){return{gridColumnStart:e.x+1,gridColumnEnd:e.x+1+e.w,gridRowStart:e.y+1,gridRowEnd:e.y+1+e.h}}function v(e){return`max${e[0].toUpperCase()}${e.slice(1)}`}function y(e,t){let n=t?-1:1;if(e===`ArrowLeft`)return{x:-n,y:0};if(e===`ArrowRight`)return{x:n,y:0};if(e===`ArrowUp`)return{x:0,y:-1};if(e===`ArrowDown`)return{x:0,y:1}}function b(e){return`column ${e.x+1}, row ${e.y+1}`}function x(e){return`${e.w} ${e.w===1?`column`:`columns`} by ${e.h} ${e.h===1?`row`:`rows`}`}function S(e,i){let{children:o,layout:u,defaultLayout:p,onLayoutChange:h,onLayoutCommit:S,columns:C={xs:1,md:6,xxl:12},rowHeight:w=24,editable:T=!1,label:E,labelledBy:D,props:O,...k}=e,A=(0,c.useRef)(null),j=(0,c.useCallback)(e=>{A.current=e,t.l(i,e)},[i]),[M,N]=(0,c.useState)(null),[P,F]=(0,c.useState)(null),[ee,I]=(0,c.useState)(``),L=`${(0,c.useId)()}-dashboard`,[R,te]=r.i({value:u,defaultValue:p??{version:d.VERSION,columns:12,items:[]},onChange:h}),z=(0,c.useMemo)(()=>d.normalize(R),[R]),B=r.o(z),V=a.r(S,`dashboard`,`layoutCommit`),ne=typeof C==`number`?String(C):f.map(e=>C[e]??``).join(),H=(0,c.useMemo)(()=>g(C),[ne]),U=H[H.length-1],W=(0,c.useMemo)(()=>{let e=d.ranks(z),t=new Map;for(let n of H){let r=n.count===U.count?z:d.project(z,n.count),i=U.count/n.count;for(let a of r.items){let r=t.get(a.id)??{order:e.get(a.id)??0,fixed:a.fixed===!0},o=_({...a,x:Math.round(a.x*i),w:Math.round((a.x+a.w)*i)-Math.round(a.x*i)});n===H[0]?r.placement=o:r.query={...r.query,[n.size]:o},t.set(a.id,r)}}return t},[z,H,U.count]),G=r.a((e,t)=>{d.same(e,B.current)||te(e,t)}),re=(e,t)=>{let n=e.getBoundingClientRect(),r=A.current,i=r&&typeof getComputedStyle==`function`?getComputedStyle(r):void 0,a=Number.parseFloat(i?.columnGap??``)||0,o=Number.parseFloat(i?.rowGap??``)||0;return{x:(n.width+a)/t.w,y:(n.height+o)/t.h}},ie=e=>e instanceof Element?e.closest(`[data-widget-id]`):null,K=(e,t,n,r)=>{let i=e.kind===`move`?d.moveTo(B.current,e.id,t,n):d.resizeTo(B.current,e.id,t,n);return G(i,{reason:e.kind,event:r}),i},q=r.a((e,n,r,i)=>{let a=d.itemOf(B.current,n),o=ie(e.currentTarget);!T||e.button!==0||e.defaultPrevented||!a||a.fixed||!o||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),e.currentTarget.focus(),N({id:n,kind:i,name:r,origin:a,before:B.current,pointer:{id:e.pointerId,x:e.clientX,y:e.clientY,step:re(o,a),rtl:t.m(o)}}))}),J=r.a((e,t)=>{if(!M?.pointer||M.id!==t)return;let{x:n,y:r,step:i,rtl:a}=M.pointer,o={x:e.clientX-n,y:e.clientY-r},s=d.cellsMoved(a?-o.x:o.x,o.y,i),c=M.origin,l=M.kind===`move`?K(M,c.x+s.columns,c.y+s.rows,e):K(M,c.w+s.columns,c.h+s.rows,e),u=d.itemOf(l,t);if(M.kind!==`move`||!u)return;let f={x:(u.x-c.x)*i.x*(a?-1:1),y:(u.y-c.y)*i.y};F({translate:`${Math.round(o.x-f.x)}px ${Math.round(o.y-f.y)}px`})}),Y=r.a((e,t)=>{if(!M?.pointer||M.id!==t)return;let n=d.itemOf(B.current,t);e.currentTarget.releasePointerCapture?.(M.pointer.id),N(null),F(null),V(B.current,{reason:M.kind,event:e}),n&&I(M.kind===`move`?`${M.name} moved to ${b(n)}.`:`${M.name} resized to ${x(n)}.`)}),X=a.i(`dashboard`),Z=r.a((e,t)=>{X(`grabCancel`,e.id,{reason:t.type===`blur`?`blur`:`escape`,event:t}),G(e.before,{reason:e.kind,event:t}),N(null),I(`${e.name} put back at ${b(e.origin)}.`)}),Q=r.a((e,n,r,i)=>{if(!T||e.defaultPrevented)return;let a=M&&M.id===n&&M.kind===i&&!M.pointer?M:void 0,o=d.itemOf(B.current,n);if(!o)return;if(!a){if(e.key!==`Enter`&&e.key!==` `||o.fixed)return;e.preventDefault(),N({id:n,kind:i,name:r,origin:o,before:B.current}),X(`grab`,n,{reason:i,event:e}),I(i===`move`?`${r} picked up at ${b(o)}. Use the arrow keys to move it.`:`${r} held for resizing at ${x(o)}. Use the arrow keys to resize it.`);return}if(e.key===`Escape`){e.preventDefault(),Z(a,e);return}if(e.key===`Enter`||e.key===` `){e.preventDefault(),N(null),V(B.current,{reason:i,event:e}),I(i===`move`?`${r} dropped at ${b(o)}.`:`${r} resized to ${x(o)}.`);return}let s=y(e.key,t.m(e.currentTarget));if(!s)return;e.preventDefault();let c=i===`move`?K(a,o.x+s.x,o.y+s.y,e):K(a,o.w+s.x,o.h+s.y,e),l=d.itemOf(c,n);l&&I(i===`move`?`${r}, ${b(l)}.`:`${r}, ${x(l)}.`)}),ae=r.a((e,t,n)=>{M&&M.id===t&&M.kind===n&&!M.pointer&&Z(M,e)}),oe=(0,c.useMemo)(()=>({editable:T,placementOf:e=>W.get(e),heldOf:e=>M&&M.id===e?M:void 0,offsetOf:e=>M&&M.id===e&&P?P:void 0,outsideAuthoring:U.size?{[v(U.size)]:{display:`none`}}:void 0,instructionsId:L,handleProps:(e,t,n)=>({type:`button`,"aria-label":n===`move`?`Move ${t}`:`Resize ${t}`,"aria-pressed":!!(M&&M.id===e&&M.kind===n),"aria-describedby":L,onPointerDown:r=>q(r,e,t,n),onPointerMove:t=>J(t,e),onPointerUp:t=>Y(t,e),onPointerCancel:t=>Y(t,e),onKeyDown:r=>Q(r,e,t,n),onBlur:t=>ae(t,e,n)})}),[T,W,M,P,U.size,L,q,J,Y,Q,ae]),$=M?W.get(M.id):void 0;return(0,l.jsxs)(m.Provider,{value:oe,children:[(0,l.jsxs)(n.default,{ref:j,component:`dashboard`,...k,variant:[k.variant,{dragging:M!==null}],vars:{"dashboard-row":`${w/4}rem`},gridTemplateColumns:U.count,props:{role:`list`,"aria-label":E,"aria-labelledby":D,...O},children:[o,$&&(0,l.jsx)(n.default,{component:`dashboard.placeholder`,order:$.order,cq:$.query,...$.placement,props:{role:`presentation`,"aria-hidden":!0}})]}),(0,l.jsx)(s.default,{props:{role:`status`},children:ee}),(0,l.jsx)(s.default,{id:L,children:`Press Enter or Space to pick the widget up, the arrow keys to move or resize it, Enter to drop it and Escape to put it back.`})]})}function C({kind:e}){return e===`resize`?(0,l.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`1rem`,height:`1rem`,rtl:{flip:`xAxis`},props:{fill:`none`},children:(0,l.jsx)(o.Path,{d:`M20 10 10 20M20 16l-4 4`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`})}):(0,l.jsxs)(o.Svg,{viewBox:`0 0 24 24`,width:`1rem`,height:`1rem`,children:[[8,12,16].map(e=>(0,l.jsx)(o.Circle,{cx:9,cy:e,r:1.4,fill:`currentColor`},e)),[8,12,16].map(e=>(0,l.jsx)(o.Circle,{cx:15,cy:e,r:1.4,fill:`currentColor`},e))]})}function w(){return(0,l.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`1rem`,height:`1rem`,props:{fill:`none`},children:(0,l.jsx)(o.Path,{d:`M20 12a8 8 0 1 1-2.6-5.9M20 4v4h-4`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})})}function T(e){let{id:t,children:r,title:i,name:o,description:s,actions:u,level:d=3,loading:f=!1,error:h,empty:g,onRefresh:_,refreshLabel:v,props:y,...b}=e,x=(0,c.useContext)(m),S=t===void 0?void 0:x?.placementOf(t),T=t===void 0?void 0:x?.heldOf(t),E=o??(typeof i==`string`?i:void 0)??t??`Widget`,D=x?.editable===!0&&S!==void 0&&!S.fixed,O=a.r((e,t)=>_?.(),`widget`,`refresh`),k=e=>D&&t!==void 0?(0,l.jsx)(n.default,{component:`widget.handle`,tag:`button`,variant:{editable:!0,grabbed:T?.kind===e,corner:e===`resize`},cq:x?.outsideAuthoring,props:x?.handleProps(t,E,e),children:(0,l.jsx)(C,{kind:e})}):null,A=()=>f?(0,l.jsx)(n.default,{component:`widget.skeleton`,props:{"aria-hidden":!0},children:[80,100,60].map(e=>(0,l.jsx)(n.default,{component:`widget.skeleton.bar`,width:`${e}%`},e))}):h?(0,l.jsxs)(n.default,{component:`widget.message`,variant:{error:!0},props:{role:`status`},children:[h,_&&(0,l.jsx)(n.default,{tag:`button`,component:`widget.retry`,props:{type:`button`,onClick:e=>O(t,{reason:`retry`,event:e})},children:`Try again`})]}):g?(0,l.jsx)(n.default,{component:`widget.message`,children:g===!0?`Nothing to show yet.`:g}):r,j=i!==void 0||s!==void 0||u!==void 0||_!==void 0||D;return(0,l.jsxs)(n.default,{component:`widget`,...b,variant:[b.variant,{dragging:T?.pointer!==void 0,grabbed:T!==void 0&&T.pointer===void 0}],order:S?.order,cq:S?.query,...S?.placement,style:{...t===void 0?void 0:x?.offsetOf(t),...b.style},props:{role:S?`listitem`:void 0,"aria-busy":f||void 0,"data-widget-id":t,...y},children:[j&&(0,l.jsxs)(n.default,{component:`widget.header`,children:[k(`move`),(0,l.jsxs)(n.default,{component:`widget.label`,children:[i!==void 0&&(0,l.jsx)(n.default,{component:`widget.title`,tag:p[d-1],children:i}),s!==void 0&&(0,l.jsx)(n.default,{component:`widget.description`,children:s})]}),_&&(0,l.jsx)(n.default,{component:`widget.handle`,tag:`button`,variant:{editable:!0},props:{type:`button`,"aria-label":v??`Refresh ${E}`,onClick:e=>O(t,{reason:`refresh`,event:e})},children:(0,l.jsx)(w,{})}),u!==void 0&&(0,l.jsx)(n.default,{component:`widget.actions`,children:u})]}),(0,l.jsx)(n.default,{component:`widget.body`,children:A()}),k(`resize`)]})}var E=e.f(S,`DashboardGrid`),D=T;D.displayName=`Widget`,exports.DashboardUtils=d,exports.Widget=D,exports.default=E;
|
|
1
|
+
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../dashboardSchema.cjs"),a=require("../reporting.cjs"),o=require("./svg.cjs"),s=require("./visuallyHidden.cjs");let c=require("react"),l=require("react/jsx-runtime");var u;(function(e){let t=e.VERSION=1,n=e.MIN_COLUMNS=1,r=e.MAX_COLUMNS=24;function a(e,t,n){return Math.min(Math.max(e,t),n)}function o(e,t){return typeof e==`number`&&Number.isFinite(e)?Math.round(e):t}function s(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}e.overlaps=s;function c(e,t){return e.find(e=>e.id!==t.id&&s(e,t))}function l(e,t){let n=Math.min(e.maxW??t,t),r=a(o(e.w,1),Math.max(1,Math.min(e.minW??1,n)),Math.max(1,n)),i=a(o(e.h,1),Math.max(1,e.minH??1),Math.max(1,e.maxH??2**53-1));return{...e,w:r,h:i,x:a(o(e.x,0),0,t-r),y:Math.max(o(e.y,0),0)}}function u(e,t){return e.y-t.y||e.x-t.x}function d(e,t){let i=a(o(t,12),n,r),s=e.map(e=>l(e,i)),d=e=>+!e.fixed,f=[...s].sort((e,t)=>d(e)-d(t)||u(e,t)),p=[];for(let e of f){if(e.fixed){p.push(e);continue}let t={...e};for(;t.y>0&&!c(p,{...t,y:t.y-1});)t.y--;let n=c(p,t);for(;n;)t.y=n.y+n.h,n=c(p,t);p.push(t)}return p.sort(u)}e.resolve=d;function f(e){let i=a(o(e.columns,12),n,r);return{version:t,columns:i,items:d(e.items,i)}}e.normalize=f;function p(e,t){return e.items.find(e=>e.id===t)}e.itemOf=p;function m(e){return new Map(e.items.map((e,t)=>[e.id,t]))}e.ranks=m;function h(e,t){let n=n=>!s(t,n)&&!e.some(e=>e.id!==n.id&&e.id!==t.id&&s(e,n));return e.map(e=>{if(e.id===t.id)return t;if(e.fixed===!0||!s(e,t))return e;let r={...e,y:Math.max(t.y-e.h,0)};return n(r)?r:{...e,y:t.y+t.h}})}function g(e,t,i,s){let c=p(e,t);if(!c||c.fixed)return e;let u=l({...c,x:i,y:s},a(o(e.columns,12),n,r));return f({...e,items:h(e.items,u)})}e.moveTo=g;function _(e,t,n,r){let i=p(e,t);if(!i||i.fixed)return e;let a=e.items.map(e=>e.id===t?{...e,w:n,h:r}:e);return f({...e,items:a})}e.resizeTo=_;function v(e,t){let n=e.items.reduce((e,t)=>Math.max(e,t.y+t.h),0);return f({...e,items:[...e.items,{x:0,y:n,...t}]})}e.add=v;function y(e,t){return f({...e,items:e.items.filter(e=>e.id!==t)})}e.remove=y;function b(e,i){let s=a(o(i,12),n,r);if(s===e.columns)return f(e);let c=s/e.columns,l=e=>e===void 0?void 0:a(Math.max(1,Math.round(e*c)),1,s),u=e.items.map(e=>{let t=a(Math.max(1,Math.round(e.w*c)),1,s);return{...e,w:t,x:a(Math.floor(e.x*c),0,s-t),minW:l(e.minW),maxW:l(e.maxW)}});return f({version:t,columns:s,items:u})}e.project=b;function x(e,t){return e===t?!0:e.columns!==t.columns||e.items.length!==t.items.length?!1:e.items.every((e,n)=>{let r=t.items[n];return e.id===r.id&&e.x===r.x&&e.y===r.y&&e.w===r.w&&e.h===r.h})}e.same=x;function S(e,t,n){return{columns:n.x>0?Math.round(e/n.x):0,rows:n.y>0?Math.round(t/n.y):0}}e.cellsMoved=S;function C(e){return typeof e==`string`&&e.length>0}function w(e){return typeof e==`number`&&Number.isFinite(e)}function T(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e)){n.push({code:`invalid-item`,path:t,message:`A layout item has to be an object.`});return}let r=e;if(!C(r.id)){n.push({code:`invalid-item`,path:`${t}.id`,message:`A layout item needs an id naming the widget it places.`});return}if(!w(r.x)||!w(r.y)||!w(r.w)||!w(r.h)){n.push({code:`invalid-item`,path:t,message:`Item "${r.id}" needs numeric x, y, w and h.`});return}let i=[`minW`,`minH`,`maxW`,`maxH`].reduce((e,t)=>(w(r[t])&&(e[t]=Math.round(r[t])),e),{});return{id:r.id,x:Math.round(r.x),y:Math.round(r.y),w:Math.round(r.w),h:Math.round(r.h),...i,...r.fixed===!0?{fixed:!0}:{}}}function E(e,i=12){let o=[],s={version:t,columns:i,items:[]};if(typeof e!=`object`||!e||Array.isArray(e))return o.push({code:`not-an-object`,path:``,message:`A layout has to be an object.`}),{layout:f(s),issues:o};let c=e;c.version!==t&&o.push({code:`version`,path:`version`,message:`Layout version ${String(c.version)} was read as version ${t}.`});let l=w(c.columns)?a(Math.round(c.columns),n,r):i;if(w(c.columns)||o.push({code:`columns`,path:`columns`,message:`No column count, so the layout was read in ${i}.`}),!Array.isArray(c.items))return o.push({code:`items`,path:`items`,message:`A layout needs an items array.`}),{layout:f({...s,columns:l}),issues:o};let u=new Set,d=c.items.reduce((e,t,n)=>{let r=T(t,`items.${n}`,o);return r?u.has(r.id)?(o.push({code:`duplicate-id`,path:`items.${n}.id`,message:`Two items are called "${r.id}"; the second was dropped.`}),e):(u.add(r.id),e.push(r),e):e},[]);return{layout:f({version:t,columns:l,items:d}),issues:o}}e.parse=E,e.SCHEMA=i.t})(u||={});var d=u,f=[`xs`,`sm`,`md`,`lg`,`xl`,`xxl`],p=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],m=(0,c.createContext)(null);function h(e,t,n){return Math.min(Math.max(e,t),n)}function g(e){if(typeof e==`number`)return[{count:h(Math.round(e),d.MIN_COLUMNS,d.MAX_COLUMNS)}];let t=f.filter(t=>typeof e[t]==`number`).map(t=>({size:t,count:h(Math.round(e[t]),d.MIN_COLUMNS,d.MAX_COLUMNS)}));return t.length>0?t:[{count:12}]}function _(e){return{gridColumnStart:e.x+1,gridColumnEnd:e.x+1+e.w,gridRowStart:e.y+1,gridRowEnd:e.y+1+e.h}}function v(e){return`max${e[0].toUpperCase()}${e.slice(1)}`}function y(e,t){let n=t?-1:1;if(e===`ArrowLeft`)return{x:-n,y:0};if(e===`ArrowRight`)return{x:n,y:0};if(e===`ArrowUp`)return{x:0,y:-1};if(e===`ArrowDown`)return{x:0,y:1}}function b(e){return`column ${e.x+1}, row ${e.y+1}`}function x(e){return`${e.w} ${e.w===1?`column`:`columns`} by ${e.h} ${e.h===1?`row`:`rows`}`}function S(e,i){let{children:o,layout:u,defaultLayout:p,onLayoutChange:h,onLayoutCommit:S,columns:C={xs:1,md:6,xxl:12},rowHeight:w=24,editable:T=!1,label:E,labelledBy:D,props:O,...k}=e,A=(0,c.useRef)(null),j=(0,c.useCallback)(e=>{A.current=e,t.d(i,e)},[i]),[M,N]=(0,c.useState)(null),[P,F]=(0,c.useState)(null),[ee,I]=(0,c.useState)(``),L=`${(0,c.useId)()}-dashboard`,[R,te]=r.i({value:u,defaultValue:p??{version:d.VERSION,columns:12,items:[]},onChange:h}),z=(0,c.useMemo)(()=>d.normalize(R),[R]),B=r.o(z),V=a.r(S,`dashboard`,`layoutCommit`),ne=typeof C==`number`?String(C):f.map(e=>C[e]??``).join(),H=(0,c.useMemo)(()=>g(C),[ne]),U=H[H.length-1],W=(0,c.useMemo)(()=>{let e=d.ranks(z),t=new Map;for(let n of H){let r=n.count===U.count?z:d.project(z,n.count),i=U.count/n.count;for(let a of r.items){let r=t.get(a.id)??{order:e.get(a.id)??0,fixed:a.fixed===!0},o=_({...a,x:Math.round(a.x*i),w:Math.round((a.x+a.w)*i)-Math.round(a.x*i)});n===H[0]?r.placement=o:r.query={...r.query,[n.size]:o},t.set(a.id,r)}}return t},[z,H,U.count]),G=r.a((e,t)=>{d.same(e,B.current)||te(e,t)}),re=(e,t)=>{let n=e.getBoundingClientRect(),r=A.current,i=r&&typeof getComputedStyle==`function`?getComputedStyle(r):void 0,a=Number.parseFloat(i?.columnGap??``)||0,o=Number.parseFloat(i?.rowGap??``)||0;return{x:(n.width+a)/t.w,y:(n.height+o)/t.h}},ie=e=>e instanceof Element?e.closest(`[data-widget-id]`):null,K=(e,t,n,r)=>{let i=e.kind===`move`?d.moveTo(B.current,e.id,t,n):d.resizeTo(B.current,e.id,t,n);return G(i,{reason:e.kind,event:r}),i},q=r.a((e,n,r,i)=>{let a=d.itemOf(B.current,n),o=ie(e.currentTarget);!T||e.button!==0||e.defaultPrevented||!a||a.fixed||!o||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),e.currentTarget.focus(),N({id:n,kind:i,name:r,origin:a,before:B.current,pointer:{id:e.pointerId,x:e.clientX,y:e.clientY,step:re(o,a),rtl:t._(o)}}))}),J=r.a((e,t)=>{if(!M?.pointer||M.id!==t)return;let{x:n,y:r,step:i,rtl:a}=M.pointer,o={x:e.clientX-n,y:e.clientY-r},s=d.cellsMoved(a?-o.x:o.x,o.y,i),c=M.origin,l=M.kind===`move`?K(M,c.x+s.columns,c.y+s.rows,e):K(M,c.w+s.columns,c.h+s.rows,e),u=d.itemOf(l,t);if(M.kind!==`move`||!u)return;let f={x:(u.x-c.x)*i.x*(a?-1:1),y:(u.y-c.y)*i.y};F({translate:`${Math.round(o.x-f.x)}px ${Math.round(o.y-f.y)}px`})}),Y=r.a((e,t)=>{if(!M?.pointer||M.id!==t)return;let n=d.itemOf(B.current,t);e.currentTarget.releasePointerCapture?.(M.pointer.id),N(null),F(null),V(B.current,{reason:M.kind,event:e}),n&&I(M.kind===`move`?`${M.name} moved to ${b(n)}.`:`${M.name} resized to ${x(n)}.`)}),X=a.i(`dashboard`),Z=r.a((e,t)=>{X(`grabCancel`,e.id,{reason:t.type===`blur`?`blur`:`escape`,event:t}),G(e.before,{reason:e.kind,event:t}),N(null),I(`${e.name} put back at ${b(e.origin)}.`)}),Q=r.a((e,n,r,i)=>{if(!T||e.defaultPrevented)return;let a=M&&M.id===n&&M.kind===i&&!M.pointer?M:void 0,o=d.itemOf(B.current,n);if(!o)return;if(!a){if(e.key!==`Enter`&&e.key!==` `||o.fixed)return;e.preventDefault(),N({id:n,kind:i,name:r,origin:o,before:B.current}),X(`grab`,n,{reason:i,event:e}),I(i===`move`?`${r} picked up at ${b(o)}. Use the arrow keys to move it.`:`${r} held for resizing at ${x(o)}. Use the arrow keys to resize it.`);return}if(e.key===`Escape`){e.preventDefault(),Z(a,e);return}if(e.key===`Enter`||e.key===` `){e.preventDefault(),N(null),V(B.current,{reason:i,event:e}),I(i===`move`?`${r} dropped at ${b(o)}.`:`${r} resized to ${x(o)}.`);return}let s=y(e.key,t._(e.currentTarget));if(!s)return;e.preventDefault();let c=i===`move`?K(a,o.x+s.x,o.y+s.y,e):K(a,o.w+s.x,o.h+s.y,e),l=d.itemOf(c,n);l&&I(i===`move`?`${r}, ${b(l)}.`:`${r}, ${x(l)}.`)}),ae=r.a((e,t,n)=>{M&&M.id===t&&M.kind===n&&!M.pointer&&Z(M,e)}),oe=(0,c.useMemo)(()=>({editable:T,placementOf:e=>W.get(e),heldOf:e=>M&&M.id===e?M:void 0,offsetOf:e=>M&&M.id===e&&P?P:void 0,outsideAuthoring:U.size?{[v(U.size)]:{display:`none`}}:void 0,instructionsId:L,handleProps:(e,t,n)=>({type:`button`,"aria-label":n===`move`?`Move ${t}`:`Resize ${t}`,"aria-pressed":!!(M&&M.id===e&&M.kind===n),"aria-describedby":L,onPointerDown:r=>q(r,e,t,n),onPointerMove:t=>J(t,e),onPointerUp:t=>Y(t,e),onPointerCancel:t=>Y(t,e),onKeyDown:r=>Q(r,e,t,n),onBlur:t=>ae(t,e,n)})}),[T,W,M,P,U.size,L,q,J,Y,Q,ae]),$=M?W.get(M.id):void 0;return(0,l.jsxs)(m.Provider,{value:oe,children:[(0,l.jsxs)(n.default,{ref:j,component:`dashboard`,...k,variant:[k.variant,{dragging:M!==null}],vars:{"dashboard-row":`${w/4}rem`},gridTemplateColumns:U.count,props:{role:`list`,"aria-label":E,"aria-labelledby":D,...O},children:[o,$&&(0,l.jsx)(n.default,{component:`dashboard.placeholder`,order:$.order,cq:$.query,...$.placement,props:{role:`presentation`,"aria-hidden":!0}})]}),(0,l.jsx)(s.default,{props:{role:`status`},children:ee}),(0,l.jsx)(s.default,{id:L,children:`Press Enter or Space to pick the widget up, the arrow keys to move or resize it, Enter to drop it and Escape to put it back.`})]})}function C({kind:e}){return e===`resize`?(0,l.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`1rem`,height:`1rem`,rtl:{flip:`xAxis`},props:{fill:`none`},children:(0,l.jsx)(o.Path,{d:`M20 10 10 20M20 16l-4 4`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`})}):(0,l.jsxs)(o.Svg,{viewBox:`0 0 24 24`,width:`1rem`,height:`1rem`,children:[[8,12,16].map(e=>(0,l.jsx)(o.Circle,{cx:9,cy:e,r:1.4,fill:`currentColor`},e)),[8,12,16].map(e=>(0,l.jsx)(o.Circle,{cx:15,cy:e,r:1.4,fill:`currentColor`},e))]})}function w(){return(0,l.jsx)(o.Svg,{viewBox:`0 0 24 24`,width:`1rem`,height:`1rem`,props:{fill:`none`},children:(0,l.jsx)(o.Path,{d:`M20 12a8 8 0 1 1-2.6-5.9M20 4v4h-4`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})})}function T(e){let{id:t,children:r,title:i,name:o,description:s,actions:u,level:d=3,loading:f=!1,error:h,empty:g,onRefresh:_,refreshLabel:v,props:y,...b}=e,x=(0,c.useContext)(m),S=t===void 0?void 0:x?.placementOf(t),T=t===void 0?void 0:x?.heldOf(t),E=o??(typeof i==`string`?i:void 0)??t??`Widget`,D=x?.editable===!0&&S!==void 0&&!S.fixed,O=a.r((e,t)=>_?.(),`widget`,`refresh`),k=e=>D&&t!==void 0?(0,l.jsx)(n.default,{component:`widget.handle`,tag:`button`,variant:{editable:!0,grabbed:T?.kind===e,corner:e===`resize`},cq:x?.outsideAuthoring,props:x?.handleProps(t,E,e),children:(0,l.jsx)(C,{kind:e})}):null,A=()=>f?(0,l.jsx)(n.default,{component:`widget.skeleton`,props:{"aria-hidden":!0},children:[80,100,60].map(e=>(0,l.jsx)(n.default,{component:`widget.skeleton.bar`,width:`${e}%`},e))}):h?(0,l.jsxs)(n.default,{component:`widget.message`,variant:{error:!0},props:{role:`status`},children:[h,_&&(0,l.jsx)(n.default,{tag:`button`,component:`widget.retry`,props:{type:`button`,onClick:e=>O(t,{reason:`retry`,event:e})},children:`Try again`})]}):g?(0,l.jsx)(n.default,{component:`widget.message`,children:g===!0?`Nothing to show yet.`:g}):r,j=i!==void 0||s!==void 0||u!==void 0||_!==void 0||D;return(0,l.jsxs)(n.default,{component:`widget`,...b,variant:[b.variant,{dragging:T?.pointer!==void 0,grabbed:T!==void 0&&T.pointer===void 0}],order:S?.order,cq:S?.query,...S?.placement,style:{...t===void 0?void 0:x?.offsetOf(t),...b.style},props:{role:S?`listitem`:void 0,"aria-busy":f||void 0,"data-widget-id":t,...y},children:[j&&(0,l.jsxs)(n.default,{component:`widget.header`,children:[k(`move`),(0,l.jsxs)(n.default,{component:`widget.label`,children:[i!==void 0&&(0,l.jsx)(n.default,{component:`widget.title`,tag:p[d-1],children:i}),s!==void 0&&(0,l.jsx)(n.default,{component:`widget.description`,children:s})]}),_&&(0,l.jsx)(n.default,{component:`widget.handle`,tag:`button`,variant:{editable:!0},props:{type:`button`,"aria-label":v??`Refresh ${E}`,onClick:e=>O(t,{reason:`refresh`,event:e})},children:(0,l.jsx)(w,{})}),u!==void 0&&(0,l.jsx)(n.default,{component:`widget.actions`,children:u})]}),(0,l.jsx)(n.default,{component:`widget.body`,children:A()}),k(`resize`)]})}var E=e.f(S,`DashboardGrid`),D=T;D.displayName=`Widget`,exports.DashboardUtils=d,exports.Widget=D,exports.default=E;
|
package/components/dashboard.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { f as e } from "../react-shared.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { _ as t, d as n } from "../platform.mjs";
|
|
4
4
|
import r from "../box.mjs";
|
|
5
5
|
import { a as i, i as a, o } from "../behavior.mjs";
|
|
6
6
|
import { t as s } from "../dashboardSchema.mjs";
|
|
@@ -342,7 +342,7 @@ function N(e, s) {
|
|
|
342
342
|
md: 6,
|
|
343
343
|
xxl: 12
|
|
344
344
|
}, rowHeight: E = 24, editable: O = !1, label: N, labelledBy: ne, props: re, ...P } = e, F = y(null), I = h((e) => {
|
|
345
|
-
F.current = e,
|
|
345
|
+
F.current = e, n(s, e);
|
|
346
346
|
}, [s]), [L, R] = b(null), [z, B] = b(null), [ie, V] = b(""), H = `${_()}-dashboard`, [U, ae] = a({
|
|
347
347
|
value: d,
|
|
348
348
|
defaultValue: f ?? {
|
|
@@ -389,10 +389,10 @@ function N(e, s) {
|
|
|
389
389
|
reason: e.kind,
|
|
390
390
|
event: r
|
|
391
391
|
}), i;
|
|
392
|
-
}, le = i((e,
|
|
393
|
-
let a = w.itemOf(G.current,
|
|
392
|
+
}, le = i((e, n, r, i) => {
|
|
393
|
+
let a = w.itemOf(G.current, n), o = ce(e.currentTarget);
|
|
394
394
|
!O || e.button !== 0 || e.defaultPrevented || !a || a.fixed || !o || (e.preventDefault(), e.currentTarget.setPointerCapture?.(e.pointerId), e.currentTarget.focus(), R({
|
|
395
|
-
id:
|
|
395
|
+
id: n,
|
|
396
396
|
kind: i,
|
|
397
397
|
name: r,
|
|
398
398
|
origin: a,
|
|
@@ -402,7 +402,7 @@ function N(e, s) {
|
|
|
402
402
|
x: e.clientX,
|
|
403
403
|
y: e.clientY,
|
|
404
404
|
step: se(o, a),
|
|
405
|
-
rtl:
|
|
405
|
+
rtl: t(o)
|
|
406
406
|
}
|
|
407
407
|
}));
|
|
408
408
|
}), ue = i((e, t) => {
|
|
@@ -432,19 +432,19 @@ function N(e, s) {
|
|
|
432
432
|
reason: e.kind,
|
|
433
433
|
event: t
|
|
434
434
|
}), R(null), V(`${e.name} put back at ${j(e.origin)}.`);
|
|
435
|
-
}), pe = i((e,
|
|
435
|
+
}), pe = i((e, n, r, i) => {
|
|
436
436
|
if (!O || e.defaultPrevented) return;
|
|
437
|
-
let a = L && L.id ===
|
|
437
|
+
let a = L && L.id === n && L.kind === i && !L.pointer ? L : void 0, o = w.itemOf(G.current, n);
|
|
438
438
|
if (!o) return;
|
|
439
439
|
if (!a) {
|
|
440
440
|
if (e.key !== "Enter" && e.key !== " " || o.fixed) return;
|
|
441
441
|
e.preventDefault(), R({
|
|
442
|
-
id:
|
|
442
|
+
id: n,
|
|
443
443
|
kind: i,
|
|
444
444
|
name: r,
|
|
445
445
|
origin: o,
|
|
446
446
|
before: G.current
|
|
447
|
-
}), de("grab",
|
|
447
|
+
}), de("grab", n, {
|
|
448
448
|
reason: i,
|
|
449
449
|
event: e
|
|
450
450
|
}), V(i === "move" ? `${r} picked up at ${j(o)}. Use the arrow keys to move it.` : `${r} held for resizing at ${M(o)}. Use the arrow keys to resize it.`);
|
|
@@ -461,10 +461,10 @@ function N(e, s) {
|
|
|
461
461
|
}), V(i === "move" ? `${r} dropped at ${j(o)}.` : `${r} resized to ${M(o)}.`);
|
|
462
462
|
return;
|
|
463
463
|
}
|
|
464
|
-
let s = te(e.key,
|
|
464
|
+
let s = te(e.key, t(e.currentTarget));
|
|
465
465
|
if (!s) return;
|
|
466
466
|
e.preventDefault();
|
|
467
|
-
let c = i === "move" ? Z(a, o.x + s.x, o.y + s.y, e) : Z(a, o.w + s.x, o.h + s.y, e), l = w.itemOf(c,
|
|
467
|
+
let c = i === "move" ? Z(a, o.x + s.x, o.y + s.y, e) : Z(a, o.w + s.x, o.h + s.y, e), l = w.itemOf(c, n);
|
|
468
468
|
l && V(i === "move" ? `${r}, ${j(l)}.` : `${r}, ${M(l)}.`);
|
|
469
469
|
}), me = i((e, t, n) => {
|
|
470
470
|
L && L.id === t && L.kind === n && !L.pointer && fe(L, e);
|