@vireo-ai/trellis-ui 0.1.40 → 0.1.41
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/package.json +1 -1
- package/packages/client/types/components/common.d.ts +3 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +217 -217
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-VFYcNVM5.js → capability-motion-C_8mc71v.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-VFYcNVM5.js.map → capability-motion-C_8mc71v.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ds2wQEQq.js +3 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ds2wQEQq.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-BOd_thC-.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Bmzg6DLB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Bmzg6DLB.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-LUzMUcng.js → entry.generated-51hjJ_lu.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-LUzMUcng.js.map → entry.generated-51hjJ_lu.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C35Q-qoz.js → entry.generated-BLloDlP5.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C35Q-qoz.js.map → entry.generated-BLloDlP5.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-UHQD4FyC.js → entry.generated-BO0EDjBb.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-UHQD4FyC.js.map → entry.generated-BO0EDjBb.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-2VgVfygk.js → entry.generated-BPZeXRC3.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-2VgVfygk.js.map → entry.generated-BPZeXRC3.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D91HRlIV.js → entry.generated-BoOsILKj.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D91HRlIV.js.map → entry.generated-BoOsILKj.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C7Kas-N2.js → entry.generated-C1JdfrdC.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C7Kas-N2.js.map → entry.generated-C1JdfrdC.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BVBXXN6t.js → entry.generated-C8pt5QeK.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BVBXXN6t.js.map → entry.generated-C8pt5QeK.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-bERshNT6.js → entry.generated-DJMDdEtO.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-bERshNT6.js.map → entry.generated-DJMDdEtO.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cc5mRBBS.js → entry.generated-DjMJNzy1.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cc5mRBBS.js.map → entry.generated-DjMJNzy1.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-B7ROYMLZ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-B7ROYMLZ.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-D44EkjK3.js → motion-BhADgUVd.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-D44EkjK3.js.map → motion-BhADgUVd.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-BWVDkV-D.js → ui-egQWc4ws.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-BWVDkV-D.js.map → ui-egQWc4ws.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +78 -78
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BU1g9uTC.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BU1g9uTC.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-LsAXy99P.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-LsAXy99P.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-C5DAZC4R.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-C5DAZC4R.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./capability-motion-VFYcNVM5.js";import{f as t,l as n,n as r,u as i}from"./codecs-Cb1ns_47.js";import{i as a,n as o,r as s}from"./dom-qAeVl7dc.js";import{i as c,t as l}from"./alpine-machine-BS13dbK4.js";import{t as u}from"./alpine-data-CytyCyfk.js";import{t as d}from"./collection-navigation-CtNDGKcQ.js";import{n as f,t as p}from"./styles-TfvwVPGw.js";import{t as m}from"./merge-bindings-C8ewA_FD.js";import{t as h}from"./machine-Dqut4h89.js";import{n as g,t as _}from"./props-change-2xfsIAEN.js";import{t as v}from"./semantic-observer-BUswpsNx.js";import{C as y,h as b}from"./common-BOd_thC-.js";var x=[`single`,`multiple`],S=y,C=[`trailing`,`leading`];[...C];var w=b;[...w];var T={mode:n(x,`single`),animate:r,collapsible:r,disabled:r,orientation:n(S,`vertical`),defaultValue:t,defaultValues:t,value:t,values:t,loop:r.default(!0),iconPosition:n(C,`trailing`),headingAs:n(w,`h3`),class:t},E=[c({name:`opening`,state:`changing`,projectEach:e=>e.context.change.openingValues.map(e=>({value:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{open:e=>({type:`OPEN`,value:e}),close:e=>({type:`CLOSE`,value:e}),toggle:e=>({type:`TOGGLE`,value:e}),setValues:e=>({type:`SET_VALUES`,values:e})}}),c({name:`closing`,state:`changing`,projectEach:e=>e.context.change.closingValues.map(e=>({value:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{open:e=>({type:`OPEN`,value:e}),close:e=>({type:`CLOSE`,value:e}),toggle:e=>({type:`TOGGLE`,value:e}),setValues:e=>({type:`SET_VALUES`,values:e})}})],D=e=>typeof e==`string`?e:``,O=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],k=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean),A=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),j=(e,t,n)=>{let r=new Set(e.filter(e=>n.values.includes(e))),i=n.values.filter(e=>r.has(e));return t.mode===`single`?i.slice(0,1):i},M=e=>e.mode===`multiple`?k(e.values||e.value):e.value?[e.value]:[],N=e=>g(e.event)?.props??e.props,P=e=>e.event.type===`ITEMS_CHANGED`?{values:O(e.event.values),disabledValues:O(e.event.disabledValues)}:e.context.collection,F=(e,t,n)=>{let r=e.context.selection.values,i=D(e.event.value);switch(e.event.type){case`OPEN`:return!i||n.disabledValues.includes(i)?r:t.mode===`single`?[i]:[...r,i];case`CLOSE`:return!i||n.disabledValues.includes(i)||t.mode===`single`&&!t.collapsible&&r.includes(i)?r:r.filter(e=>e!==i);case`TOGGLE`:return!i||n.disabledValues.includes(i)?r:r.includes(i)?t.mode===`single`&&!t.collapsible?r:r.filter(e=>e!==i):t.mode===`single`?[i]:[...r,i];case`SET_VALUES`:return O(e.event.values);case`PROPS_CHANGED`:return _(e.event,`value`,`values`)?M(t):r;case`ITEMS_CHANGED`:return r;default:return r}},I=e=>{let t=N(e),n=P(e);return j(F(e,t,n),t,n)},L=e=>!([`OPEN`,`CLOSE`,`TOGGLE`,`SET_VALUES`].includes(e.event.type)&&e.props.disabled)&&!A(e.context.selection.values,I(e)),R=({props:e,context:t,effects:n})=>h({initial:`stable`,states:{stable:{tags:[`stable`],on:{OPEN:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},CLOSE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},SET_VALUES:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},PROPS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncProps`}],ITEMS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncItems`}]}},changing:{tags:[`changing`,`transitioning`],on:{CHANGE_DONE:{target:`stable`,effects:`finishChange`},CHANGE_ERROR:{target:`stable`,effects:`finishChange`},OPEN:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},CLOSE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},SET_VALUES:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},PROPS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncProps`}],ITEMS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncItems`}]}}}},{context:t,props:e,reducers:{applyChange:e=>{let t=I(e),n=e.context.selection.values;return{props:N(e),context:{...e.context,selection:{values:t},change:{openingValues:t.filter(e=>!n.includes(e)),closingValues:n.filter(e=>!t.includes(e))},collection:P(e)}}},reconcile:e=>({props:N(e),context:{...e.context,collection:P(e),selection:{values:I(e)}}})},effects:{prepareChange:n.prepareChange,finishChange:n.finishChange,syncProps:n.syncProps,syncItems:n.syncItems}}),z=p({definition:{component:`ui.accordion`,parts:{root:{base:`grid w-full min-w-0 gap-0`,variants:{orientation:{vertical:``,horizontal:`gap-2 md:grid-flow-col md:auto-cols-fr`}},defaults:{orientation:`vertical`}},item:{base:`min-w-0 border-b-edge-separator border-separator last:border-b-0 data-disabled:opacity-50`},heading:{base:`block text-surface-ink`},trigger:{base:[`flex min-h-control-xlg w-full min-w-0 items-center gap-2 rounded-control-sm border border-transparent px-3 py-2`,`text-left text-sm font-medium text-surface-ink outline-none`,`focus-visible:ui-focus-ring`,`data-disabled:pointer-events-none data-disabled:opacity-50`]},triggerLabel:{base:`min-w-0 flex-1`},icon:{base:`size-icon shrink-0 fill-current text-icon`},content:{base:`overflow-hidden text-sm text-surface-ink-muted`},contentInner:{base:`min-w-0 px-3 pb-3 pt-1`}}}}),B=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean),V=e=>e?`open`:`closed`,H=e=>e.trim().replace(/[^a-zA-Z0-9_-]+/g,`-`)||`item`,U=()=>{let e=null,t=null,n=null,r=e=>e,c=()=>{if(!e)throw Error(`Accordion has not been initialized.`);return e},u=e=>e.closest(`[data-ui-accordion]`)===c(),p=()=>Array.from(c().querySelectorAll(`[data-ui-accordion-item]`)).filter(u).map((e,t)=>{let n=e.querySelector(`[data-ui-accordion-trigger]`),r=e.querySelector(`[data-ui-accordion-content]`);return!(n instanceof HTMLButtonElement)||!r||!u(n)||!u(r)?null:(e.dataset.value||=`item-${t+1}`,{item:e,heading:e.querySelector(`[data-ui-accordion-heading]`),trigger:n,content:r,value:e.dataset.value,disabled:o({value:e.dataset.itemDisabled})})}).filter(e=>e!==null),h=e=>p().find(t=>t.value===e)??null,g=e=>{if(!(e instanceof Element))return null;let t=e.closest(`[data-ui-accordion-item]`);return t&&u(t)?p().find(e=>e.item===t)??null:null},_=()=>{let e=p();return{values:e.map(e=>e.value),disabledValues:e.filter(e=>e.disabled).map(e=>e.value)}},y=(e,t,n)=>{let r=new Set(e),i=n.filter(e=>r.has(e));return t.mode===`single`?i.slice(0,1):i},b=e=>{let t=_(),n=e.mode===`multiple`?B(e.values||e.value):e.value?[e.value]:[],r=e.mode===`multiple`?B(e.defaultValues):e.defaultValue?[e.defaultValue]:[],i=p().filter(e=>o({value:e.item.dataset.open})).map(e=>e.value);return{selection:{values:y(n.length>0?n:r.length>0?r:i,e,t.values)},change:{openingValues:[],closingValues:[]},collection:t}},x=()=>N.getCommittedSnapshot().props,S=()=>N.getCommittedSnapshot().context,C=e=>S().selection.values.includes(e.value),w=e=>x().disabled||e.disabled,D=e=>x().mode===`multiple`||x().collapsible||!C(e),O=()=>{let e=x(),t=S().selection.values;i({el:c(),schema:T,key:`value`,value:e.mode===`single`?t[0]??``:``}),i({el:c(),schema:T,key:`values`,value:e.mode===`multiple`?t.join(`,`):``}),c().dataset.orientation=e.orientation,c().dataset.iconPosition=e.iconPosition,c().dataset.mode=e.mode,e.disabled?c().setAttribute(`data-disabled`,``):c().removeAttribute(`data-disabled`)},k,A=e=>{let t=x(),n=C(e),i=V(n),a=w(e),o=N.hasTag(`changing`)&&S().change.closingValues.includes(e.value);e.item.dataset.state=i,e.item.dataset.orientation=t.orientation,e.item.className=f({part:z.parts.item,props:t,className:e.item.dataset.class??``}),e.heading?.setAttribute(`data-state`,i),e.heading?.setAttribute(`data-orientation`,t.orientation);let s=H(e.value);e.trigger.id||=r(`accordion-trigger-${s}`),e.content.id||=r(`accordion-content-${s}`),e.trigger.type=`button`,e.trigger.dataset.state=i,e.trigger.dataset.orientation=t.orientation,e.trigger.className=f({part:z.parts.trigger,props:t,className:e.trigger.dataset.class??``}),e.trigger.setAttribute(`aria-expanded`,n?`true`:`false`),e.trigger.setAttribute(`aria-controls`,e.content.id),e.content.dataset.state=i,e.content.dataset.orientation=t.orientation,e.content.setAttribute(`aria-labelledby`,e.trigger.id),e.content.hidden=!n&&!o,[e.item,e.heading,e.trigger,e.content].forEach(e=>{e&&(a?e.setAttribute(`data-disabled`,``):e.removeAttribute(`data-disabled`))}),e.trigger.disabled=a,a||n&&!D(e)?e.trigger.setAttribute(`aria-disabled`,`true`):e.trigger.removeAttribute(`aria-disabled`)},j=()=>{O(),p().forEach(A)},M=()=>{let e=[...S().selection.values];s({el:c(),name:`ui:change`,detail:{value:x().mode===`single`?e[0]??``:``,values:e}})},N=l({schema:T,hooks:E,resolveTransitionElement:({data:e})=>{let t=e.value;return h(t)?.content??null},createMachine:({props:e})=>R({props:e,context:b(e),effects:{prepareChange:()=>{j(),M()},finishChange:()=>{j()},syncProps:j,syncItems:j}})}),P=()=>{if(!t)throw Error(`Accordion navigation has not been initialized.`);return t},F=()=>{let e=_();N.send({type:`ITEMS_CHANGED`,...e})},I=(e,t)=>{t?.preventDefault(),!w(e)&&N.send({type:`TOGGLE`,value:e.value,motion:!(t instanceof KeyboardEvent)})},L=e=>{let t=g(e.target);!t||!(e.target instanceof Node)||!t.trigger.contains(e.target)||I(t,e)},U=e=>{let t=g(e.target);if(!(!t||e.target!==t.trigger)){if(e.key===`Enter`||e.key===` `){I(t,e);return}if(e.key===`Home`){e.preventDefault(),P().focusFirst();return}if(e.key===`End`){e.preventDefault(),P().focusLast();return}if(x().orientation===`vertical`){e.key===`ArrowDown`?(e.preventDefault(),P().focusNext()):e.key===`ArrowUp`&&(e.preventDefault(),P().focusPrevious());return}e.key===`ArrowRight`?(e.preventDefault(),a({el:c()})?P().focusPrevious():P().focusNext()):e.key===`ArrowLeft`&&(e.preventDefault(),a({el:c()})?P().focusNext():P().focusPrevious())}},W=e=>{let t=g(e.target);t&&e.target===t.trigger&&!w(t)&&P().activateItem({el:t.trigger})},G=()=>{n=v({targets:c(),read:_,onChange:F,observer:{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`data-value`,`data-item-disabled`]}})};return k={...N,get value(){return x().mode===`single`?this.snapshot.current?.context.selection.values[0]??``:``},get values(){return[...this.snapshot.current?.context.selection.values??[]]},init(){e=this.$el,r=this.$id.bind(this),N.connect(this.$el,this.snapshot),t=d({root:c,itemSelector:`[data-ui-accordion-trigger]`,isDisabled:e=>e.hasAttribute(`disabled`),loop:()=>x().loop}),j(),G()},destroy(){n?.(),n=null,N.disconnect(),t=null,e=null},get root(){let e=this.snapshot.current?.props??x();return m({inputs:[f({part:z.parts.root,props:e,className:e.class}),{"data-ui-accordion":``,":data-orientation":()=>x().orientation,":data-disabled":()=>x().disabled?``:void 0,"@click":L,"@keydown":e=>{e instanceof KeyboardEvent&&U(e)},"@focusin":W}]})},open(e){N.send({type:`OPEN`,value:e})},close(e){N.send({type:`CLOSE`,value:e})},toggle(e,t){let n=h(e);n&&I(n,t)},isOpen(e){return this.snapshot.current?.context.selection.values.includes(e)??!1}},k},W=u(`UiAccordion`,U),G=new WeakSet,K=t=>{G.has(t)||(G.add(t),e(t),W(t))};export{U as n,K as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{t as e}from"./capability-motion-C_8mc71v.js";import{f as t,l as n,n as r,u as i}from"./codecs-Cb1ns_47.js";import{i as a,n as o,r as s}from"./dom-qAeVl7dc.js";import{i as c,t as l}from"./alpine-machine-BS13dbK4.js";import{t as u}from"./alpine-data-CytyCyfk.js";import{t as d}from"./collection-navigation-CtNDGKcQ.js";import{n as f,t as p}from"./styles-TfvwVPGw.js";import{t as m}from"./merge-bindings-C8ewA_FD.js";import{t as h}from"./machine-Dqut4h89.js";import{n as g,t as _}from"./props-change-2xfsIAEN.js";import{t as v}from"./semantic-observer-BUswpsNx.js";import{C as y,h as b}from"./common-BOd_thC-.js";var x=[`single`,`multiple`],S=y,C=[`trailing`,`leading`];[...C];var w=b;[...w];var T={mode:n(x,`single`),animate:r,collapsible:r,disabled:r,orientation:n(S,`vertical`),defaultValue:t,defaultValues:t,value:t,values:t,loop:r.default(!0),iconPosition:n(C,`trailing`),headingAs:n(w,`h3`),class:t},E=[c({name:`opening`,state:`changing`,projectEach:e=>e.context.change.openingValues.map(e=>({value:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{open:e=>({type:`OPEN`,value:e}),close:e=>({type:`CLOSE`,value:e}),toggle:e=>({type:`TOGGLE`,value:e}),setValues:e=>({type:`SET_VALUES`,values:e})}}),c({name:`closing`,state:`changing`,projectEach:e=>e.context.change.closingValues.map(e=>({value:e})),onDone:`CHANGE_DONE`,onError:`CHANGE_ERROR`,sends:{open:e=>({type:`OPEN`,value:e}),close:e=>({type:`CLOSE`,value:e}),toggle:e=>({type:`TOGGLE`,value:e}),setValues:e=>({type:`SET_VALUES`,values:e})}})],D=e=>typeof e==`string`?e:``,O=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],k=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean),A=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),j=(e,t,n)=>{let r=new Set(e.filter(e=>n.values.includes(e))),i=n.values.filter(e=>r.has(e));return t.mode===`single`?i.slice(0,1):i},M=e=>e.mode===`multiple`?k(e.values||e.value):e.value?[e.value]:[],N=e=>g(e.event)?.props??e.props,P=e=>e.event.type===`ITEMS_CHANGED`?{values:O(e.event.values),disabledValues:O(e.event.disabledValues)}:e.context.collection,F=(e,t,n)=>{let r=e.context.selection.values,i=D(e.event.value);switch(e.event.type){case`OPEN`:return!i||n.disabledValues.includes(i)?r:t.mode===`single`?[i]:[...r,i];case`CLOSE`:return!i||n.disabledValues.includes(i)||t.mode===`single`&&!t.collapsible&&r.includes(i)?r:r.filter(e=>e!==i);case`TOGGLE`:return!i||n.disabledValues.includes(i)?r:r.includes(i)?t.mode===`single`&&!t.collapsible?r:r.filter(e=>e!==i):t.mode===`single`?[i]:[...r,i];case`SET_VALUES`:return O(e.event.values);case`PROPS_CHANGED`:return _(e.event,`value`,`values`)?M(t):r;case`ITEMS_CHANGED`:return r;default:return r}},I=e=>{let t=N(e),n=P(e);return j(F(e,t,n),t,n)},L=e=>!([`OPEN`,`CLOSE`,`TOGGLE`,`SET_VALUES`].includes(e.event.type)&&e.props.disabled)&&!A(e.context.selection.values,I(e)),R=({props:e,context:t,effects:n})=>h({initial:`stable`,states:{stable:{tags:[`stable`],on:{OPEN:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},CLOSE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},SET_VALUES:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},PROPS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncProps`}],ITEMS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncItems`}]}},changing:{tags:[`changing`,`transitioning`],on:{CHANGE_DONE:{target:`stable`,effects:`finishChange`},CHANGE_ERROR:{target:`stable`,effects:`finishChange`},OPEN:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},CLOSE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},TOGGLE:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},SET_VALUES:{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},PROPS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncProps`}],ITEMS_CHANGED:[{target:`changing`,guard:L,reduce:`applyChange`,effects:`prepareChange`},{reduce:`reconcile`,effects:`syncItems`}]}}}},{context:t,props:e,reducers:{applyChange:e=>{let t=I(e),n=e.context.selection.values;return{props:N(e),context:{...e.context,selection:{values:t},change:{openingValues:t.filter(e=>!n.includes(e)),closingValues:n.filter(e=>!t.includes(e))},collection:P(e)}}},reconcile:e=>({props:N(e),context:{...e.context,collection:P(e),selection:{values:I(e)}}})},effects:{prepareChange:n.prepareChange,finishChange:n.finishChange,syncProps:n.syncProps,syncItems:n.syncItems}}),z=p({definition:{component:`ui.accordion`,parts:{root:{base:`grid w-full min-w-0 gap-0`,variants:{orientation:{vertical:``,horizontal:`gap-2 md:grid-flow-col md:auto-cols-fr`}},defaults:{orientation:`vertical`}},item:{base:`min-w-0 border-b-edge-separator border-separator last:border-b-0 data-disabled:opacity-50`},heading:{base:`block text-surface-ink`},trigger:{base:[`flex min-h-control-xlg w-full min-w-0 items-center gap-2 rounded-control-sm border border-transparent px-3 py-2`,`text-left text-sm font-medium text-surface-ink outline-none`,`focus-visible:ui-focus-ring`,`data-disabled:pointer-events-none data-disabled:opacity-50`]},triggerLabel:{base:`min-w-0 flex-1`},icon:{base:`size-icon shrink-0 fill-current text-icon`},content:{base:`overflow-hidden text-sm text-surface-ink-muted`},contentInner:{base:`min-w-0 px-3 pb-3 pt-1`}}}}),B=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean),V=e=>e?`open`:`closed`,H=e=>e.trim().replace(/[^a-zA-Z0-9_-]+/g,`-`)||`item`,U=()=>{let e=null,t=null,n=null,r=e=>e,c=()=>{if(!e)throw Error(`Accordion has not been initialized.`);return e},u=e=>e.closest(`[data-ui-accordion]`)===c(),p=()=>Array.from(c().querySelectorAll(`[data-ui-accordion-item]`)).filter(u).map((e,t)=>{let n=e.querySelector(`[data-ui-accordion-trigger]`),r=e.querySelector(`[data-ui-accordion-content]`);return!(n instanceof HTMLButtonElement)||!r||!u(n)||!u(r)?null:(e.dataset.value||=`item-${t+1}`,{item:e,heading:e.querySelector(`[data-ui-accordion-heading]`),trigger:n,content:r,value:e.dataset.value,disabled:o({value:e.dataset.itemDisabled})})}).filter(e=>e!==null),h=e=>p().find(t=>t.value===e)??null,g=e=>{if(!(e instanceof Element))return null;let t=e.closest(`[data-ui-accordion-item]`);return t&&u(t)?p().find(e=>e.item===t)??null:null},_=()=>{let e=p();return{values:e.map(e=>e.value),disabledValues:e.filter(e=>e.disabled).map(e=>e.value)}},y=(e,t,n)=>{let r=new Set(e),i=n.filter(e=>r.has(e));return t.mode===`single`?i.slice(0,1):i},b=e=>{let t=_(),n=e.mode===`multiple`?B(e.values||e.value):e.value?[e.value]:[],r=e.mode===`multiple`?B(e.defaultValues):e.defaultValue?[e.defaultValue]:[],i=p().filter(e=>o({value:e.item.dataset.open})).map(e=>e.value);return{selection:{values:y(n.length>0?n:r.length>0?r:i,e,t.values)},change:{openingValues:[],closingValues:[]},collection:t}},x=()=>N.getCommittedSnapshot().props,S=()=>N.getCommittedSnapshot().context,C=e=>S().selection.values.includes(e.value),w=e=>x().disabled||e.disabled,D=e=>x().mode===`multiple`||x().collapsible||!C(e),O=()=>{let e=x(),t=S().selection.values;i({el:c(),schema:T,key:`value`,value:e.mode===`single`?t[0]??``:``}),i({el:c(),schema:T,key:`values`,value:e.mode===`multiple`?t.join(`,`):``}),c().dataset.orientation=e.orientation,c().dataset.iconPosition=e.iconPosition,c().dataset.mode=e.mode,e.disabled?c().setAttribute(`data-disabled`,``):c().removeAttribute(`data-disabled`)},k,A=e=>{let t=x(),n=C(e),i=V(n),a=w(e),o=N.hasTag(`changing`)&&S().change.closingValues.includes(e.value);e.item.dataset.state=i,e.item.dataset.orientation=t.orientation,e.item.className=f({part:z.parts.item,props:t,className:e.item.dataset.class??``}),e.heading?.setAttribute(`data-state`,i),e.heading?.setAttribute(`data-orientation`,t.orientation);let s=H(e.value);e.trigger.id||=r(`accordion-trigger-${s}`),e.content.id||=r(`accordion-content-${s}`),e.trigger.type=`button`,e.trigger.dataset.state=i,e.trigger.dataset.orientation=t.orientation,e.trigger.className=f({part:z.parts.trigger,props:t,className:e.trigger.dataset.class??``}),e.trigger.setAttribute(`aria-expanded`,n?`true`:`false`),e.trigger.setAttribute(`aria-controls`,e.content.id),e.content.dataset.state=i,e.content.dataset.orientation=t.orientation,e.content.setAttribute(`aria-labelledby`,e.trigger.id),e.content.hidden=!n&&!o,[e.item,e.heading,e.trigger,e.content].forEach(e=>{e&&(a?e.setAttribute(`data-disabled`,``):e.removeAttribute(`data-disabled`))}),e.trigger.disabled=a,a||n&&!D(e)?e.trigger.setAttribute(`aria-disabled`,`true`):e.trigger.removeAttribute(`aria-disabled`)},j=()=>{O(),p().forEach(A)},M=()=>{let e=[...S().selection.values];s({el:c(),name:`ui:change`,detail:{value:x().mode===`single`?e[0]??``:``,values:e}})},N=l({schema:T,hooks:E,resolveTransitionElement:({data:e})=>{let t=e.value;return h(t)?.content??null},createMachine:({props:e})=>R({props:e,context:b(e),effects:{prepareChange:()=>{j(),M()},finishChange:()=>{j()},syncProps:j,syncItems:j}})}),P=()=>{if(!t)throw Error(`Accordion navigation has not been initialized.`);return t},F=()=>{let e=_();N.send({type:`ITEMS_CHANGED`,...e})},I=(e,t)=>{t?.preventDefault(),!w(e)&&N.send({type:`TOGGLE`,value:e.value,motion:!(t instanceof KeyboardEvent)})},L=e=>{let t=g(e.target);!t||!(e.target instanceof Node)||!t.trigger.contains(e.target)||I(t,e)},U=e=>{let t=g(e.target);if(!(!t||e.target!==t.trigger)){if(e.key===`Enter`||e.key===` `){I(t,e);return}if(e.key===`Home`){e.preventDefault(),P().focusFirst();return}if(e.key===`End`){e.preventDefault(),P().focusLast();return}if(x().orientation===`vertical`){e.key===`ArrowDown`?(e.preventDefault(),P().focusNext()):e.key===`ArrowUp`&&(e.preventDefault(),P().focusPrevious());return}e.key===`ArrowRight`?(e.preventDefault(),a({el:c()})?P().focusPrevious():P().focusNext()):e.key===`ArrowLeft`&&(e.preventDefault(),a({el:c()})?P().focusNext():P().focusPrevious())}},W=e=>{let t=g(e.target);t&&e.target===t.trigger&&!w(t)&&P().activateItem({el:t.trigger})},G=()=>{n=v({targets:c(),read:_,onChange:F,observer:{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`data-value`,`data-item-disabled`]}})};return k={...N,get value(){return x().mode===`single`?this.snapshot.current?.context.selection.values[0]??``:``},get values(){return[...this.snapshot.current?.context.selection.values??[]]},init(){e=this.$el,r=this.$id.bind(this),N.connect(this.$el,this.snapshot),t=d({root:c,itemSelector:`[data-ui-accordion-trigger]`,isDisabled:e=>e.hasAttribute(`disabled`),loop:()=>x().loop}),j(),G()},destroy(){n?.(),n=null,N.disconnect(),t=null,e=null},get root(){let e=this.snapshot.current?.props??x();return m({inputs:[f({part:z.parts.root,props:e,className:e.class}),{"data-ui-accordion":``,":data-orientation":()=>x().orientation,":data-disabled":()=>x().disabled?``:void 0,"@click":L,"@keydown":e=>{e instanceof KeyboardEvent&&U(e)},"@focusin":W}]})},open(e){N.send({type:`OPEN`,value:e})},close(e){N.send({type:`CLOSE`,value:e})},toggle(e,t){let n=h(e);n&&I(n,t)},isOpen(e){return this.snapshot.current?.context.selection.values.includes(e)??!1}},k},W=u(`UiAccordion`,U),G=new WeakSet,K=t=>{G.has(t)||(G.add(t),e(t),W(t))};export{U as n,K as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-BO0EDjBb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-UHQD4FyC.js","names":[],"sources":["../../../../../../../../client/src/components/accordion/contract.ts","../../../../../../../../client/src/components/accordion/machine.ts","../../../../../../../../client/src/components/accordion/styles.ts","../../../../../../../../client/src/components/accordion/index.ts","../../../../../../../../client/src/components/accordion/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {HEADING_LEVELS, ORIENTATIONS, type HeadingLevel, type Orientation} from '../common';\n\nconst ACCORDION_MODES = ['single', 'multiple'] as const;\nconst ACCORDION_ORIENTATIONS = ORIENTATIONS;\nconst ACCORDION_ICON_POSITIONS = ['trailing', 'leading'] as const;\nconst ACCORDION_ITEM_ICON_POSITIONS = ['inherit', ...ACCORDION_ICON_POSITIONS] as const;\nconst ACCORDION_HEADING_AS = HEADING_LEVELS;\nconst ACCORDION_ITEM_HEADING_AS = ['inherit', ...ACCORDION_HEADING_AS] as const;\n\nconst accordionSchema = {\n mode: oneOf(ACCORDION_MODES, 'single'),\n animate: bool,\n collapsible: bool,\n disabled: bool,\n orientation: oneOf(ACCORDION_ORIENTATIONS, 'vertical'),\n defaultValue: string,\n defaultValues: string,\n value: string,\n values: string,\n loop: bool.default(true),\n iconPosition: oneOf(ACCORDION_ICON_POSITIONS, 'trailing'),\n headingAs: oneOf(ACCORDION_HEADING_AS, 'h3'),\n class: string,\n};\n\ntype AccordionMode = typeof ACCORDION_MODES[number];\ntype AccordionOrientation = Orientation;\ntype AccordionIconPosition = typeof ACCORDION_ICON_POSITIONS[number];\ntype AccordionItemIconPosition = typeof ACCORDION_ITEM_ICON_POSITIONS[number];\ntype AccordionHeadingAs = HeadingLevel;\ntype AccordionItemHeadingAs = typeof ACCORDION_ITEM_HEADING_AS[number];\ntype AccordionProps = SchemaToProps<typeof accordionSchema>;\n\nexport {\n ACCORDION_HEADING_AS,\n ACCORDION_ICON_POSITIONS,\n ACCORDION_ITEM_HEADING_AS,\n ACCORDION_ITEM_ICON_POSITIONS,\n ACCORDION_ORIENTATIONS,\n ACCORDION_MODES,\n accordionSchema,\n};\nexport type {\n AccordionHeadingAs,\n AccordionIconPosition,\n AccordionItemHeadingAs,\n AccordionItemIconPosition,\n AccordionOrientation,\n AccordionProps,\n AccordionMode,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {AccordionProps} from './contract';\n\ntype AccordionContext = {\n selection: {values: string[]};\n change: {openingValues: string[]; closingValues: string[]};\n collection: {values: string[]; disabledValues: string[]};\n};\n\ntype AccordionTransitionData = {value: string};\n\ntype AccordionMachineEffects = {\n prepareChange(scope: MachineScope<AccordionContext, AccordionProps>): void;\n finishChange(scope: MachineScope<AccordionContext, AccordionProps>): void;\n syncProps(scope: MachineScope<AccordionContext, AccordionProps>): void;\n syncItems(scope: MachineScope<AccordionContext, AccordionProps>): void;\n};\n\ntype CreateAccordionMachineOptions = {\n props: AccordionProps;\n context: AccordionContext;\n effects: AccordionMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'changing',\n projectEach: (snapshot) => snapshot.context.change.openingValues.map((value) => ({value})),\n onDone: 'CHANGE_DONE',\n onError: 'CHANGE_ERROR',\n sends: {\n open: (value: string) => ({type: 'OPEN', value}),\n close: (value: string) => ({type: 'CLOSE', value}),\n toggle: (value: string) => ({type: 'TOGGLE', value}),\n setValues: (values: string[]) => ({type: 'SET_VALUES', values}),\n },\n} satisfies TransitionHookDefinition<AccordionContext, AccordionProps, AccordionTransitionData, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'changing',\n projectEach: (snapshot) => snapshot.context.change.closingValues.map((value) => ({value})),\n onDone: 'CHANGE_DONE',\n onError: 'CHANGE_ERROR',\n sends: {\n open: (value: string) => ({type: 'OPEN', value}),\n close: (value: string) => ({type: 'CLOSE', value}),\n toggle: (value: string) => ({type: 'TOGGLE', value}),\n setValues: (values: string[]) => ({type: 'SET_VALUES', values}),\n },\n} satisfies TransitionHookDefinition<AccordionContext, AccordionProps, AccordionTransitionData, 'closing'>);\n\nconst accordionHooks = [openingHook, closingHook] as const;\n\nconst stringValue = (value: unknown): string => typeof value === 'string' ? value : '';\nconst stringValues = (value: unknown): string[] => Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : [];\nconst splitValues = (value: string): string[] => value.split(',').map((item) => item.trim()).filter(Boolean);\nconst sameValues = (left: readonly string[], right: readonly string[]): boolean => (\n left.length === right.length && left.every((value, index) => value === right[index])\n);\n\nconst normalizeValues = (\n values: readonly string[],\n props: AccordionProps,\n collection: AccordionContext['collection'],\n): string[] => {\n const requested = new Set(values.filter((value) => collection.values.includes(value)));\n const ordered = collection.values.filter((value) => requested.has(value));\n return props.mode === 'single' ? ordered.slice(0, 1) : ordered;\n};\n\nconst controlledValues = (props: AccordionProps): string[] => (\n props.mode === 'multiple' ? splitValues(props.values || props.value) : props.value ? [props.value] : []\n);\n\nconst nextProps = (scope: MachineScope<AccordionContext, AccordionProps>): AccordionProps => (\n propsChangedEvent<AccordionProps>(scope.event)?.props ?? scope.props\n);\n\nconst nextCollection = (\n scope: MachineScope<AccordionContext, AccordionProps>,\n): AccordionContext['collection'] => {\n if (scope.event.type !== 'ITEMS_CHANGED') return scope.context.collection;\n return {\n values: stringValues(scope.event.values),\n disabledValues: stringValues(scope.event.disabledValues),\n };\n};\n\nconst requestedValues = (\n scope: MachineScope<AccordionContext, AccordionProps>,\n props: AccordionProps,\n collection: AccordionContext['collection'],\n): string[] => {\n const current = scope.context.selection.values;\n const value = stringValue(scope.event.value);\n switch (scope.event.type) {\n case 'OPEN':\n if (!value || collection.disabledValues.includes(value)) return current;\n return props.mode === 'single' ? [value] : [...current, value];\n case 'CLOSE':\n if (\n !value\n || collection.disabledValues.includes(value)\n || (props.mode === 'single' && !props.collapsible && current.includes(value))\n ) return current;\n return current.filter((item) => item !== value);\n case 'TOGGLE':\n if (!value || collection.disabledValues.includes(value)) return current;\n if (!current.includes(value)) return props.mode === 'single' ? [value] : [...current, value];\n if (props.mode === 'single' && !props.collapsible) return current;\n return current.filter((item) => item !== value);\n case 'SET_VALUES':\n return stringValues(scope.event.values);\n case 'PROPS_CHANGED':\n if (propsChanged<AccordionProps>(scope.event, 'value', 'values')) return controlledValues(props);\n return current;\n case 'ITEMS_CHANGED':\n return current;\n default:\n return current;\n }\n};\n\nconst nextValues = (scope: MachineScope<AccordionContext, AccordionProps>): string[] => {\n const props = nextProps(scope);\n const collection = nextCollection(scope);\n return normalizeValues(requestedValues(scope, props, collection), props, collection);\n};\n\nconst selectionChanges = (scope: MachineScope<AccordionContext, AccordionProps>): boolean => (\n !(\n ['OPEN', 'CLOSE', 'TOGGLE', 'SET_VALUES'].includes(scope.event.type)\n && scope.props.disabled\n ) && !sameValues(scope.context.selection.values, nextValues(scope))\n);\n\nconst createAccordionMachine = ({\n props,\n context,\n effects,\n}: CreateAccordionMachineOptions): Machine<AccordionContext, AccordionProps> => createMachine<AccordionContext, AccordionProps>({\n initial: 'stable',\n states: {\n stable: {\n tags: ['stable'],\n on: {\n OPEN: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n CLOSE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n SET_VALUES: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n PROPS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n changing: {\n tags: ['changing', 'transitioning'],\n on: {\n CHANGE_DONE: {target: 'stable', effects: 'finishChange'},\n CHANGE_ERROR: {target: 'stable', effects: 'finishChange'},\n OPEN: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n CLOSE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n SET_VALUES: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n PROPS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n applyChange: (scope) => {\n const values = nextValues(scope);\n const previous = scope.context.selection.values;\n return {\n props: nextProps(scope),\n context: {\n ...scope.context,\n selection: {values},\n change: {\n openingValues: values.filter((value) => !previous.includes(value)),\n closingValues: previous.filter((value) => !values.includes(value)),\n },\n collection: nextCollection(scope),\n },\n };\n },\n reconcile: (scope) => ({\n props: nextProps(scope),\n context: {\n ...scope.context,\n collection: nextCollection(scope),\n selection: {values: nextValues(scope)},\n },\n }),\n },\n effects: {\n prepareChange: effects.prepareChange,\n finishChange: effects.finishChange,\n syncProps: effects.syncProps,\n syncItems: effects.syncItems,\n },\n});\n\nexport {accordionHooks, createAccordionMachine};\nexport type {\n AccordionContext,\n AccordionMachineEffects,\n AccordionTransitionData,\n CreateAccordionMachineOptions,\n};\n","import {defineStyles} from '../../runtime';\n\nconst accordionStyles = defineStyles({definition: {\n component: 'ui.accordion',\n parts: {\n root: {\n base: 'grid w-full min-w-0 gap-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: 'gap-2 md:grid-flow-col md:auto-cols-fr',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n item: {\n base: 'min-w-0 border-b-edge-separator border-separator last:border-b-0 data-disabled:opacity-50',\n },\n heading: {\n base: 'block text-surface-ink',\n },\n trigger: {\n base: [\n 'flex min-h-control-xlg w-full min-w-0 items-center gap-2 rounded-control-sm border border-transparent px-3 py-2',\n 'text-left text-sm font-medium text-surface-ink outline-none',\n 'focus-visible:ui-focus-ring',\n 'data-disabled:pointer-events-none data-disabled:opacity-50',\n ],\n },\n triggerLabel: {\n base: 'min-w-0 flex-1',\n },\n icon: {\n base: 'size-icon shrink-0 fill-current text-icon',\n },\n content: {\n base: 'overflow-hidden text-sm text-surface-ink-muted',\n },\n contentInner: {\n base: 'min-w-0 px-3 pb-3 pt-1',\n },\n },\n}});\n\nexport {accordionStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n type BindingObject,\n createCollectionNavigation,\n type CollectionNavigation,\n defineAlpineData,\n mergeBindings,\n type MachineSnapshot,\n observeSemanticChanges,\n reflectSchemaProp,\n resolveStyle,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {asBool, dispatch, isRtl} from '@client/utils';\nimport {accordionSchema, type AccordionMode, type AccordionProps} from './contract';\nimport {\n accordionHooks,\n createAccordionMachine,\n type AccordionContext,\n type AccordionTransitionData,\n} from './machine';\nimport {accordionStyles} from './styles';\n\ntype AccordionTransitionName = (typeof accordionHooks)[number]['name'];\ntype AccordionTransition<TName extends AccordionTransitionName = AccordionTransitionName> = TransitionForHook<\n Extract<(typeof accordionHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype AccordionItemRecord = {\n item: HTMLElement;\n heading: HTMLElement | null;\n trigger: HTMLButtonElement;\n content: HTMLElement;\n value: string;\n disabled: boolean;\n};\n\n/**\n * Public Alpine API for `ui.accordion`.\n *\n * @public\n */\ninterface UiAccordionApi {\n /** Open value in single mode, otherwise an empty string. */\n readonly value: string;\n\n /** Open values in document order. */\n readonly values: readonly string[];\n\n /** Opens an enabled item. In single mode it replaces the current value. */\n open(value: string): void;\n\n /** Closes an item when the current mode permits it. */\n close(value: string): void;\n\n /** Reverses an item's current disclosure state. */\n toggle(value: string, event?: Event): void;\n\n /** Whether an item belongs to the current open-value set. */\n isOpen(value: string): boolean;\n}\n\ntype AccordionData = AlpineMachine<AccordionContext, AccordionProps, typeof accordionHooks> & UiAccordionApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n};\n\nconst splitValues = (value: string): string[] => value.split(',').map((item) => item.trim()).filter(Boolean);\nconst stateFor = (open: boolean): 'open' | 'closed' => open ? 'open' : 'closed';\nconst safeIdPart = (value: string): string => value.trim().replace(/[^a-zA-Z0-9_-]+/g, '-') || 'item';\n\nconst UiAccordion = (): TrellisAlpineComponent<AccordionData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let collection: CollectionNavigation | null = null;\n let disconnectObserver: (() => void) | null = null;\n let idFor = (key: string): string => key;\n\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Accordion has not been initialized.');\n return rootEl;\n };\n\n const owns = (element: Element): boolean => element.closest('[data-ui-accordion]') === root();\n\n const items = (): AccordionItemRecord[] => Array.from(\n root().querySelectorAll<HTMLElement>('[data-ui-accordion-item]'),\n ).filter(owns).map((item, index) => {\n const trigger = item.querySelector<HTMLElement>('[data-ui-accordion-trigger]');\n const content = item.querySelector<HTMLElement>('[data-ui-accordion-content]');\n if (!(trigger instanceof HTMLButtonElement) || !content || !owns(trigger) || !owns(content)) return null;\n item.dataset.value ||= `item-${index + 1}`;\n return {\n item,\n heading: item.querySelector<HTMLElement>('[data-ui-accordion-heading]'),\n trigger,\n content,\n value: item.dataset.value,\n disabled: asBool({value: item.dataset.itemDisabled}),\n } satisfies AccordionItemRecord;\n }).filter((item): item is AccordionItemRecord => item !== null);\n\n const itemForValue = (value: string): AccordionItemRecord | null => (\n items().find((item) => item.value === value) ?? null\n );\n\n const itemFrom = (target: EventTarget | null): AccordionItemRecord | null => {\n if (!(target instanceof Element)) return null;\n const itemEl = target.closest<HTMLElement>('[data-ui-accordion-item]');\n return itemEl && owns(itemEl) ? items().find((item) => item.item === itemEl) ?? null : null;\n };\n\n const collectionContext = (): AccordionContext['collection'] => {\n const records = items();\n return {\n values: records.map((item) => item.value),\n disabledValues: records.filter((item) => item.disabled).map((item) => item.value),\n };\n };\n\n const normalize = (\n values: readonly string[],\n props: AccordionProps,\n itemValues: readonly string[],\n ): string[] => {\n const requested = new Set(values);\n const ordered = itemValues.filter((value) => requested.has(value));\n return props.mode === 'single' ? ordered.slice(0, 1) : ordered;\n };\n\n const initialContext = (props: AccordionProps): AccordionContext => {\n const collectionState = collectionContext();\n const controlled = props.mode === 'multiple'\n ? splitValues(props.values || props.value)\n : props.value ? [props.value] : [];\n const defaults = props.mode === 'multiple'\n ? splitValues(props.defaultValues)\n : props.defaultValue ? [props.defaultValue] : [];\n const authored = items().filter((item) => asBool({value: item.item.dataset.open})).map((item) => item.value);\n const requested = controlled.length > 0 ? controlled : defaults.length > 0 ? defaults : authored;\n return {\n selection: {values: normalize(requested, props, collectionState.values)},\n change: {openingValues: [], closingValues: []},\n collection: collectionState,\n };\n };\n\n const currentProps = (): Readonly<AccordionProps> => bridge.getCommittedSnapshot().props;\n const currentContext = (): Readonly<AccordionContext> => bridge.getCommittedSnapshot().context;\n\n const itemIsOpen = (item: AccordionItemRecord): boolean => currentContext().selection.values.includes(item.value);\n const itemIsDisabled = (item: AccordionItemRecord): boolean => currentProps().disabled || item.disabled;\n const canCollapse = (item: AccordionItemRecord): boolean => (\n currentProps().mode === 'multiple' || currentProps().collapsible || !itemIsOpen(item)\n );\n\n const syncRoot = (): void => {\n const props = currentProps();\n const values = currentContext().selection.values;\n reflectSchemaProp({\n el: root(),\n schema: accordionSchema,\n key: 'value',\n value: props.mode === 'single' ? values[0] ?? '' : '',\n });\n reflectSchemaProp({\n el: root(),\n schema: accordionSchema,\n key: 'values',\n value: props.mode === 'multiple' ? values.join(',') : '',\n });\n root().dataset.orientation = props.orientation;\n root().dataset.iconPosition = props.iconPosition;\n root().dataset.mode = props.mode;\n if (props.disabled) root().setAttribute('data-disabled', '');\n else root().removeAttribute('data-disabled');\n };\n\n let component!: TrellisAlpineComponent<AccordionData>;\n\n const syncItem = (item: AccordionItemRecord): void => {\n const props = currentProps();\n const open = itemIsOpen(item);\n const state = stateFor(open);\n const disabled = itemIsDisabled(item);\n const closing = bridge.hasTag('changing') && currentContext().change.closingValues.includes(item.value);\n\n item.item.dataset.state = state;\n item.item.dataset.orientation = props.orientation;\n item.item.className = resolveStyle({\n part: accordionStyles.parts.item,\n props,\n className: item.item.dataset.class ?? '',\n });\n item.heading?.setAttribute('data-state', state);\n item.heading?.setAttribute('data-orientation', props.orientation);\n\n const idPart = safeIdPart(item.value);\n item.trigger.id ||= idFor(`accordion-trigger-${idPart}`);\n item.content.id ||= idFor(`accordion-content-${idPart}`);\n item.trigger.type = 'button';\n item.trigger.dataset.state = state;\n item.trigger.dataset.orientation = props.orientation;\n item.trigger.className = resolveStyle({\n part: accordionStyles.parts.trigger,\n props,\n className: item.trigger.dataset.class ?? '',\n });\n item.trigger.setAttribute('aria-expanded', open ? 'true' : 'false');\n item.trigger.setAttribute('aria-controls', item.content.id);\n item.content.dataset.state = state;\n item.content.dataset.orientation = props.orientation;\n item.content.setAttribute('aria-labelledby', item.trigger.id);\n item.content.hidden = !open && !closing;\n\n [item.item, item.heading, item.trigger, item.content].forEach((element) => {\n if (!element) return;\n if (disabled) element.setAttribute('data-disabled', '');\n else element.removeAttribute('data-disabled');\n });\n item.trigger.disabled = disabled;\n if (disabled || (open && !canCollapse(item))) item.trigger.setAttribute('aria-disabled', 'true');\n else item.trigger.removeAttribute('aria-disabled');\n };\n\n const syncAll = (): void => {\n syncRoot();\n items().forEach(syncItem);\n };\n\n const emitChange = (): void => {\n const values = [...currentContext().selection.values];\n dispatch({el: root(), name: 'ui:change', detail: {\n value: currentProps().mode === 'single' ? values[0] ?? '' : '',\n values,\n }});\n };\n\n const bridge = createAlpineMachine({\n schema: accordionSchema,\n hooks: accordionHooks,\n resolveTransitionElement: ({data}) => {\n const value = (data as AccordionTransitionData).value;\n return itemForValue(value)?.content ?? null;\n },\n createMachine: ({props}) => createAccordionMachine({\n props,\n context: initialContext(props),\n effects: {\n prepareChange: () => {\n syncAll();\n emitChange();\n },\n finishChange: () => {\n syncAll();\n },\n syncProps: syncAll,\n syncItems: syncAll,\n },\n }),\n });\n\n const collectionNav = (): CollectionNavigation => {\n if (!collection) throw new Error('Accordion navigation has not been initialized.');\n return collection;\n };\n\n const sendItemsChanged = (): void => {\n const next = collectionContext();\n bridge.send({type: 'ITEMS_CHANGED', ...next});\n };\n\n const handleToggle = (item: AccordionItemRecord, event?: Event): void => {\n event?.preventDefault();\n if (itemIsDisabled(item)) return;\n bridge.send({type: 'TOGGLE', value: item.value, motion: !(event instanceof KeyboardEvent)});\n };\n\n const handleClick = (event: Event): void => {\n const item = itemFrom(event.target);\n if (!item || !(event.target instanceof Node) || !item.trigger.contains(event.target)) return;\n handleToggle(item, event);\n };\n\n const handleKeydown = (event: KeyboardEvent): void => {\n const item = itemFrom(event.target);\n if (!item || event.target !== item.trigger) return;\n if (event.key === 'Enter' || event.key === ' ') {\n handleToggle(item, event);\n return;\n }\n if (event.key === 'Home') {\n event.preventDefault();\n collectionNav().focusFirst();\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n collectionNav().focusLast();\n return;\n }\n if (currentProps().orientation === 'vertical') {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n collectionNav().focusNext();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n collectionNav().focusPrevious();\n }\n return;\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusPrevious();\n else collectionNav().focusNext();\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusNext();\n else collectionNav().focusPrevious();\n }\n };\n\n const handleFocus = (event: Event): void => {\n const item = itemFrom(event.target);\n if (item && event.target === item.trigger && !itemIsDisabled(item)) {\n collectionNav().activateItem({el: item.trigger});\n }\n };\n\n const setupObserver = (): void => {\n disconnectObserver = observeSemanticChanges({\n targets: root(),\n read: collectionContext,\n onChange: sendItemsChanged,\n observer: {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-value', 'data-item-disabled'],\n },\n });\n };\n\n component = {\n ...bridge,\n get value(): string {\n return currentProps().mode === 'single' ? this.snapshot.current?.context.selection.values[0] ?? '' : '';\n },\n get values(): readonly string[] {\n return [...this.snapshot.current?.context.selection.values ?? []];\n },\n init(): void {\n rootEl = this.$el;\n idFor = this.$id.bind(this);\n bridge.connect(this.$el, this.snapshot);\n collection = createCollectionNavigation({\n root,\n itemSelector: '[data-ui-accordion-trigger]',\n isDisabled: (el) => el.hasAttribute('disabled'),\n loop: () => currentProps().loop,\n });\n syncAll();\n setupObserver();\n },\n destroy(): void {\n disconnectObserver?.();\n disconnectObserver = null;\n bridge.disconnect();\n collection = null;\n rootEl = null;\n },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: accordionStyles.parts.root, props, className: props.class}),\n {\n 'data-ui-accordion': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n '@click': handleClick,\n '@keydown': (event: Event) => {\n if (event instanceof KeyboardEvent) handleKeydown(event);\n },\n '@focusin': handleFocus,\n },\n ]});\n },\n open(value: string): void {\n bridge.send({type: 'OPEN', value});\n },\n close(value: string): void {\n bridge.send({type: 'CLOSE', value});\n },\n toggle(value: string, event?: Event): void {\n const item = itemForValue(value);\n if (item) handleToggle(item, event);\n },\n isOpen(value: string): boolean {\n return this.snapshot.current?.context.selection.values.includes(value) ?? false;\n },\n };\n\n return component;\n};\n\nconst registerAccordion = defineAlpineData('UiAccordion', UiAccordion);\n\nexport {registerAccordion, UiAccordion};\nexport type {AccordionData, AccordionMode, AccordionTransition, UiAccordionApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerAccordion as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerAccordion = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerAccordion};\nexport default registerAccordion;\nexport * from './index';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.generated-BO0EDjBb.js","names":[],"sources":["../../../../../../../../client/src/components/accordion/contract.ts","../../../../../../../../client/src/components/accordion/machine.ts","../../../../../../../../client/src/components/accordion/styles.ts","../../../../../../../../client/src/components/accordion/index.ts","../../../../../../../../client/src/components/accordion/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {HEADING_LEVELS, ORIENTATIONS, type HeadingLevel, type Orientation} from '../common';\n\nconst ACCORDION_MODES = ['single', 'multiple'] as const;\nconst ACCORDION_ORIENTATIONS = ORIENTATIONS;\nconst ACCORDION_ICON_POSITIONS = ['trailing', 'leading'] as const;\nconst ACCORDION_ITEM_ICON_POSITIONS = ['inherit', ...ACCORDION_ICON_POSITIONS] as const;\nconst ACCORDION_HEADING_AS = HEADING_LEVELS;\nconst ACCORDION_ITEM_HEADING_AS = ['inherit', ...ACCORDION_HEADING_AS] as const;\n\nconst accordionSchema = {\n mode: oneOf(ACCORDION_MODES, 'single'),\n animate: bool,\n collapsible: bool,\n disabled: bool,\n orientation: oneOf(ACCORDION_ORIENTATIONS, 'vertical'),\n defaultValue: string,\n defaultValues: string,\n value: string,\n values: string,\n loop: bool.default(true),\n iconPosition: oneOf(ACCORDION_ICON_POSITIONS, 'trailing'),\n headingAs: oneOf(ACCORDION_HEADING_AS, 'h3'),\n class: string,\n};\n\ntype AccordionMode = typeof ACCORDION_MODES[number];\ntype AccordionOrientation = Orientation;\ntype AccordionIconPosition = typeof ACCORDION_ICON_POSITIONS[number];\ntype AccordionItemIconPosition = typeof ACCORDION_ITEM_ICON_POSITIONS[number];\ntype AccordionHeadingAs = HeadingLevel;\ntype AccordionItemHeadingAs = typeof ACCORDION_ITEM_HEADING_AS[number];\ntype AccordionProps = SchemaToProps<typeof accordionSchema>;\n\nexport {\n ACCORDION_HEADING_AS,\n ACCORDION_ICON_POSITIONS,\n ACCORDION_ITEM_HEADING_AS,\n ACCORDION_ITEM_ICON_POSITIONS,\n ACCORDION_ORIENTATIONS,\n ACCORDION_MODES,\n accordionSchema,\n};\nexport type {\n AccordionHeadingAs,\n AccordionIconPosition,\n AccordionItemHeadingAs,\n AccordionItemIconPosition,\n AccordionOrientation,\n AccordionProps,\n AccordionMode,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {AccordionProps} from './contract';\n\ntype AccordionContext = {\n selection: {values: string[]};\n change: {openingValues: string[]; closingValues: string[]};\n collection: {values: string[]; disabledValues: string[]};\n};\n\ntype AccordionTransitionData = {value: string};\n\ntype AccordionMachineEffects = {\n prepareChange(scope: MachineScope<AccordionContext, AccordionProps>): void;\n finishChange(scope: MachineScope<AccordionContext, AccordionProps>): void;\n syncProps(scope: MachineScope<AccordionContext, AccordionProps>): void;\n syncItems(scope: MachineScope<AccordionContext, AccordionProps>): void;\n};\n\ntype CreateAccordionMachineOptions = {\n props: AccordionProps;\n context: AccordionContext;\n effects: AccordionMachineEffects;\n};\n\nconst openingHook = defineHook({\n name: 'opening',\n state: 'changing',\n projectEach: (snapshot) => snapshot.context.change.openingValues.map((value) => ({value})),\n onDone: 'CHANGE_DONE',\n onError: 'CHANGE_ERROR',\n sends: {\n open: (value: string) => ({type: 'OPEN', value}),\n close: (value: string) => ({type: 'CLOSE', value}),\n toggle: (value: string) => ({type: 'TOGGLE', value}),\n setValues: (values: string[]) => ({type: 'SET_VALUES', values}),\n },\n} satisfies TransitionHookDefinition<AccordionContext, AccordionProps, AccordionTransitionData, 'opening'>);\n\nconst closingHook = defineHook({\n name: 'closing',\n state: 'changing',\n projectEach: (snapshot) => snapshot.context.change.closingValues.map((value) => ({value})),\n onDone: 'CHANGE_DONE',\n onError: 'CHANGE_ERROR',\n sends: {\n open: (value: string) => ({type: 'OPEN', value}),\n close: (value: string) => ({type: 'CLOSE', value}),\n toggle: (value: string) => ({type: 'TOGGLE', value}),\n setValues: (values: string[]) => ({type: 'SET_VALUES', values}),\n },\n} satisfies TransitionHookDefinition<AccordionContext, AccordionProps, AccordionTransitionData, 'closing'>);\n\nconst accordionHooks = [openingHook, closingHook] as const;\n\nconst stringValue = (value: unknown): string => typeof value === 'string' ? value : '';\nconst stringValues = (value: unknown): string[] => Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : [];\nconst splitValues = (value: string): string[] => value.split(',').map((item) => item.trim()).filter(Boolean);\nconst sameValues = (left: readonly string[], right: readonly string[]): boolean => (\n left.length === right.length && left.every((value, index) => value === right[index])\n);\n\nconst normalizeValues = (\n values: readonly string[],\n props: AccordionProps,\n collection: AccordionContext['collection'],\n): string[] => {\n const requested = new Set(values.filter((value) => collection.values.includes(value)));\n const ordered = collection.values.filter((value) => requested.has(value));\n return props.mode === 'single' ? ordered.slice(0, 1) : ordered;\n};\n\nconst controlledValues = (props: AccordionProps): string[] => (\n props.mode === 'multiple' ? splitValues(props.values || props.value) : props.value ? [props.value] : []\n);\n\nconst nextProps = (scope: MachineScope<AccordionContext, AccordionProps>): AccordionProps => (\n propsChangedEvent<AccordionProps>(scope.event)?.props ?? scope.props\n);\n\nconst nextCollection = (\n scope: MachineScope<AccordionContext, AccordionProps>,\n): AccordionContext['collection'] => {\n if (scope.event.type !== 'ITEMS_CHANGED') return scope.context.collection;\n return {\n values: stringValues(scope.event.values),\n disabledValues: stringValues(scope.event.disabledValues),\n };\n};\n\nconst requestedValues = (\n scope: MachineScope<AccordionContext, AccordionProps>,\n props: AccordionProps,\n collection: AccordionContext['collection'],\n): string[] => {\n const current = scope.context.selection.values;\n const value = stringValue(scope.event.value);\n switch (scope.event.type) {\n case 'OPEN':\n if (!value || collection.disabledValues.includes(value)) return current;\n return props.mode === 'single' ? [value] : [...current, value];\n case 'CLOSE':\n if (\n !value\n || collection.disabledValues.includes(value)\n || (props.mode === 'single' && !props.collapsible && current.includes(value))\n ) return current;\n return current.filter((item) => item !== value);\n case 'TOGGLE':\n if (!value || collection.disabledValues.includes(value)) return current;\n if (!current.includes(value)) return props.mode === 'single' ? [value] : [...current, value];\n if (props.mode === 'single' && !props.collapsible) return current;\n return current.filter((item) => item !== value);\n case 'SET_VALUES':\n return stringValues(scope.event.values);\n case 'PROPS_CHANGED':\n if (propsChanged<AccordionProps>(scope.event, 'value', 'values')) return controlledValues(props);\n return current;\n case 'ITEMS_CHANGED':\n return current;\n default:\n return current;\n }\n};\n\nconst nextValues = (scope: MachineScope<AccordionContext, AccordionProps>): string[] => {\n const props = nextProps(scope);\n const collection = nextCollection(scope);\n return normalizeValues(requestedValues(scope, props, collection), props, collection);\n};\n\nconst selectionChanges = (scope: MachineScope<AccordionContext, AccordionProps>): boolean => (\n !(\n ['OPEN', 'CLOSE', 'TOGGLE', 'SET_VALUES'].includes(scope.event.type)\n && scope.props.disabled\n ) && !sameValues(scope.context.selection.values, nextValues(scope))\n);\n\nconst createAccordionMachine = ({\n props,\n context,\n effects,\n}: CreateAccordionMachineOptions): Machine<AccordionContext, AccordionProps> => createMachine<AccordionContext, AccordionProps>({\n initial: 'stable',\n states: {\n stable: {\n tags: ['stable'],\n on: {\n OPEN: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n CLOSE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n SET_VALUES: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n PROPS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n changing: {\n tags: ['changing', 'transitioning'],\n on: {\n CHANGE_DONE: {target: 'stable', effects: 'finishChange'},\n CHANGE_ERROR: {target: 'stable', effects: 'finishChange'},\n OPEN: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n CLOSE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n TOGGLE: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n SET_VALUES: {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n PROPS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n {target: 'changing', guard: selectionChanges, reduce: 'applyChange', effects: 'prepareChange'},\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n applyChange: (scope) => {\n const values = nextValues(scope);\n const previous = scope.context.selection.values;\n return {\n props: nextProps(scope),\n context: {\n ...scope.context,\n selection: {values},\n change: {\n openingValues: values.filter((value) => !previous.includes(value)),\n closingValues: previous.filter((value) => !values.includes(value)),\n },\n collection: nextCollection(scope),\n },\n };\n },\n reconcile: (scope) => ({\n props: nextProps(scope),\n context: {\n ...scope.context,\n collection: nextCollection(scope),\n selection: {values: nextValues(scope)},\n },\n }),\n },\n effects: {\n prepareChange: effects.prepareChange,\n finishChange: effects.finishChange,\n syncProps: effects.syncProps,\n syncItems: effects.syncItems,\n },\n});\n\nexport {accordionHooks, createAccordionMachine};\nexport type {\n AccordionContext,\n AccordionMachineEffects,\n AccordionTransitionData,\n CreateAccordionMachineOptions,\n};\n","import {defineStyles} from '../../runtime';\n\nconst accordionStyles = defineStyles({definition: {\n component: 'ui.accordion',\n parts: {\n root: {\n base: 'grid w-full min-w-0 gap-0',\n variants: {\n orientation: {\n vertical: '',\n horizontal: 'gap-2 md:grid-flow-col md:auto-cols-fr',\n },\n },\n defaults: {\n orientation: 'vertical',\n },\n },\n item: {\n base: 'min-w-0 border-b-edge-separator border-separator last:border-b-0 data-disabled:opacity-50',\n },\n heading: {\n base: 'block text-surface-ink',\n },\n trigger: {\n base: [\n 'flex min-h-control-xlg w-full min-w-0 items-center gap-2 rounded-control-sm border border-transparent px-3 py-2',\n 'text-left text-sm font-medium text-surface-ink outline-none',\n 'focus-visible:ui-focus-ring',\n 'data-disabled:pointer-events-none data-disabled:opacity-50',\n ],\n },\n triggerLabel: {\n base: 'min-w-0 flex-1',\n },\n icon: {\n base: 'size-icon shrink-0 fill-current text-icon',\n },\n content: {\n base: 'overflow-hidden text-sm text-surface-ink-muted',\n },\n contentInner: {\n base: 'min-w-0 px-3 pb-3 pt-1',\n },\n },\n}});\n\nexport {accordionStyles};\n","import type Alpine from 'alpinejs';\n\nimport {\n type AlpineMachine,\n createAlpineMachine,\n type BindingObject,\n createCollectionNavigation,\n type CollectionNavigation,\n defineAlpineData,\n mergeBindings,\n type MachineSnapshot,\n observeSemanticChanges,\n reflectSchemaProp,\n resolveStyle,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {asBool, dispatch, isRtl} from '@client/utils';\nimport {accordionSchema, type AccordionMode, type AccordionProps} from './contract';\nimport {\n accordionHooks,\n createAccordionMachine,\n type AccordionContext,\n type AccordionTransitionData,\n} from './machine';\nimport {accordionStyles} from './styles';\n\ntype AccordionTransitionName = (typeof accordionHooks)[number]['name'];\ntype AccordionTransition<TName extends AccordionTransitionName = AccordionTransitionName> = TransitionForHook<\n Extract<(typeof accordionHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype AccordionItemRecord = {\n item: HTMLElement;\n heading: HTMLElement | null;\n trigger: HTMLButtonElement;\n content: HTMLElement;\n value: string;\n disabled: boolean;\n};\n\n/**\n * Public Alpine API for `ui.accordion`.\n *\n * @public\n */\ninterface UiAccordionApi {\n /** Open value in single mode, otherwise an empty string. */\n readonly value: string;\n\n /** Open values in document order. */\n readonly values: readonly string[];\n\n /** Opens an enabled item. In single mode it replaces the current value. */\n open(value: string): void;\n\n /** Closes an item when the current mode permits it. */\n close(value: string): void;\n\n /** Reverses an item's current disclosure state. */\n toggle(value: string, event?: Event): void;\n\n /** Whether an item belongs to the current open-value set. */\n isOpen(value: string): boolean;\n}\n\ntype AccordionData = AlpineMachine<AccordionContext, AccordionProps, typeof accordionHooks> & UiAccordionApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n};\n\nconst splitValues = (value: string): string[] => value.split(',').map((item) => item.trim()).filter(Boolean);\nconst stateFor = (open: boolean): 'open' | 'closed' => open ? 'open' : 'closed';\nconst safeIdPart = (value: string): string => value.trim().replace(/[^a-zA-Z0-9_-]+/g, '-') || 'item';\n\nconst UiAccordion = (): TrellisAlpineComponent<AccordionData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let collection: CollectionNavigation | null = null;\n let disconnectObserver: (() => void) | null = null;\n let idFor = (key: string): string => key;\n\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Accordion has not been initialized.');\n return rootEl;\n };\n\n const owns = (element: Element): boolean => element.closest('[data-ui-accordion]') === root();\n\n const items = (): AccordionItemRecord[] => Array.from(\n root().querySelectorAll<HTMLElement>('[data-ui-accordion-item]'),\n ).filter(owns).map((item, index) => {\n const trigger = item.querySelector<HTMLElement>('[data-ui-accordion-trigger]');\n const content = item.querySelector<HTMLElement>('[data-ui-accordion-content]');\n if (!(trigger instanceof HTMLButtonElement) || !content || !owns(trigger) || !owns(content)) return null;\n item.dataset.value ||= `item-${index + 1}`;\n return {\n item,\n heading: item.querySelector<HTMLElement>('[data-ui-accordion-heading]'),\n trigger,\n content,\n value: item.dataset.value,\n disabled: asBool({value: item.dataset.itemDisabled}),\n } satisfies AccordionItemRecord;\n }).filter((item): item is AccordionItemRecord => item !== null);\n\n const itemForValue = (value: string): AccordionItemRecord | null => (\n items().find((item) => item.value === value) ?? null\n );\n\n const itemFrom = (target: EventTarget | null): AccordionItemRecord | null => {\n if (!(target instanceof Element)) return null;\n const itemEl = target.closest<HTMLElement>('[data-ui-accordion-item]');\n return itemEl && owns(itemEl) ? items().find((item) => item.item === itemEl) ?? null : null;\n };\n\n const collectionContext = (): AccordionContext['collection'] => {\n const records = items();\n return {\n values: records.map((item) => item.value),\n disabledValues: records.filter((item) => item.disabled).map((item) => item.value),\n };\n };\n\n const normalize = (\n values: readonly string[],\n props: AccordionProps,\n itemValues: readonly string[],\n ): string[] => {\n const requested = new Set(values);\n const ordered = itemValues.filter((value) => requested.has(value));\n return props.mode === 'single' ? ordered.slice(0, 1) : ordered;\n };\n\n const initialContext = (props: AccordionProps): AccordionContext => {\n const collectionState = collectionContext();\n const controlled = props.mode === 'multiple'\n ? splitValues(props.values || props.value)\n : props.value ? [props.value] : [];\n const defaults = props.mode === 'multiple'\n ? splitValues(props.defaultValues)\n : props.defaultValue ? [props.defaultValue] : [];\n const authored = items().filter((item) => asBool({value: item.item.dataset.open})).map((item) => item.value);\n const requested = controlled.length > 0 ? controlled : defaults.length > 0 ? defaults : authored;\n return {\n selection: {values: normalize(requested, props, collectionState.values)},\n change: {openingValues: [], closingValues: []},\n collection: collectionState,\n };\n };\n\n const currentProps = (): Readonly<AccordionProps> => bridge.getCommittedSnapshot().props;\n const currentContext = (): Readonly<AccordionContext> => bridge.getCommittedSnapshot().context;\n\n const itemIsOpen = (item: AccordionItemRecord): boolean => currentContext().selection.values.includes(item.value);\n const itemIsDisabled = (item: AccordionItemRecord): boolean => currentProps().disabled || item.disabled;\n const canCollapse = (item: AccordionItemRecord): boolean => (\n currentProps().mode === 'multiple' || currentProps().collapsible || !itemIsOpen(item)\n );\n\n const syncRoot = (): void => {\n const props = currentProps();\n const values = currentContext().selection.values;\n reflectSchemaProp({\n el: root(),\n schema: accordionSchema,\n key: 'value',\n value: props.mode === 'single' ? values[0] ?? '' : '',\n });\n reflectSchemaProp({\n el: root(),\n schema: accordionSchema,\n key: 'values',\n value: props.mode === 'multiple' ? values.join(',') : '',\n });\n root().dataset.orientation = props.orientation;\n root().dataset.iconPosition = props.iconPosition;\n root().dataset.mode = props.mode;\n if (props.disabled) root().setAttribute('data-disabled', '');\n else root().removeAttribute('data-disabled');\n };\n\n let component!: TrellisAlpineComponent<AccordionData>;\n\n const syncItem = (item: AccordionItemRecord): void => {\n const props = currentProps();\n const open = itemIsOpen(item);\n const state = stateFor(open);\n const disabled = itemIsDisabled(item);\n const closing = bridge.hasTag('changing') && currentContext().change.closingValues.includes(item.value);\n\n item.item.dataset.state = state;\n item.item.dataset.orientation = props.orientation;\n item.item.className = resolveStyle({\n part: accordionStyles.parts.item,\n props,\n className: item.item.dataset.class ?? '',\n });\n item.heading?.setAttribute('data-state', state);\n item.heading?.setAttribute('data-orientation', props.orientation);\n\n const idPart = safeIdPart(item.value);\n item.trigger.id ||= idFor(`accordion-trigger-${idPart}`);\n item.content.id ||= idFor(`accordion-content-${idPart}`);\n item.trigger.type = 'button';\n item.trigger.dataset.state = state;\n item.trigger.dataset.orientation = props.orientation;\n item.trigger.className = resolveStyle({\n part: accordionStyles.parts.trigger,\n props,\n className: item.trigger.dataset.class ?? '',\n });\n item.trigger.setAttribute('aria-expanded', open ? 'true' : 'false');\n item.trigger.setAttribute('aria-controls', item.content.id);\n item.content.dataset.state = state;\n item.content.dataset.orientation = props.orientation;\n item.content.setAttribute('aria-labelledby', item.trigger.id);\n item.content.hidden = !open && !closing;\n\n [item.item, item.heading, item.trigger, item.content].forEach((element) => {\n if (!element) return;\n if (disabled) element.setAttribute('data-disabled', '');\n else element.removeAttribute('data-disabled');\n });\n item.trigger.disabled = disabled;\n if (disabled || (open && !canCollapse(item))) item.trigger.setAttribute('aria-disabled', 'true');\n else item.trigger.removeAttribute('aria-disabled');\n };\n\n const syncAll = (): void => {\n syncRoot();\n items().forEach(syncItem);\n };\n\n const emitChange = (): void => {\n const values = [...currentContext().selection.values];\n dispatch({el: root(), name: 'ui:change', detail: {\n value: currentProps().mode === 'single' ? values[0] ?? '' : '',\n values,\n }});\n };\n\n const bridge = createAlpineMachine({\n schema: accordionSchema,\n hooks: accordionHooks,\n resolveTransitionElement: ({data}) => {\n const value = (data as AccordionTransitionData).value;\n return itemForValue(value)?.content ?? null;\n },\n createMachine: ({props}) => createAccordionMachine({\n props,\n context: initialContext(props),\n effects: {\n prepareChange: () => {\n syncAll();\n emitChange();\n },\n finishChange: () => {\n syncAll();\n },\n syncProps: syncAll,\n syncItems: syncAll,\n },\n }),\n });\n\n const collectionNav = (): CollectionNavigation => {\n if (!collection) throw new Error('Accordion navigation has not been initialized.');\n return collection;\n };\n\n const sendItemsChanged = (): void => {\n const next = collectionContext();\n bridge.send({type: 'ITEMS_CHANGED', ...next});\n };\n\n const handleToggle = (item: AccordionItemRecord, event?: Event): void => {\n event?.preventDefault();\n if (itemIsDisabled(item)) return;\n bridge.send({type: 'TOGGLE', value: item.value, motion: !(event instanceof KeyboardEvent)});\n };\n\n const handleClick = (event: Event): void => {\n const item = itemFrom(event.target);\n if (!item || !(event.target instanceof Node) || !item.trigger.contains(event.target)) return;\n handleToggle(item, event);\n };\n\n const handleKeydown = (event: KeyboardEvent): void => {\n const item = itemFrom(event.target);\n if (!item || event.target !== item.trigger) return;\n if (event.key === 'Enter' || event.key === ' ') {\n handleToggle(item, event);\n return;\n }\n if (event.key === 'Home') {\n event.preventDefault();\n collectionNav().focusFirst();\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n collectionNav().focusLast();\n return;\n }\n if (currentProps().orientation === 'vertical') {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n collectionNav().focusNext();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n collectionNav().focusPrevious();\n }\n return;\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusPrevious();\n else collectionNav().focusNext();\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusNext();\n else collectionNav().focusPrevious();\n }\n };\n\n const handleFocus = (event: Event): void => {\n const item = itemFrom(event.target);\n if (item && event.target === item.trigger && !itemIsDisabled(item)) {\n collectionNav().activateItem({el: item.trigger});\n }\n };\n\n const setupObserver = (): void => {\n disconnectObserver = observeSemanticChanges({\n targets: root(),\n read: collectionContext,\n onChange: sendItemsChanged,\n observer: {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-value', 'data-item-disabled'],\n },\n });\n };\n\n component = {\n ...bridge,\n get value(): string {\n return currentProps().mode === 'single' ? this.snapshot.current?.context.selection.values[0] ?? '' : '';\n },\n get values(): readonly string[] {\n return [...this.snapshot.current?.context.selection.values ?? []];\n },\n init(): void {\n rootEl = this.$el;\n idFor = this.$id.bind(this);\n bridge.connect(this.$el, this.snapshot);\n collection = createCollectionNavigation({\n root,\n itemSelector: '[data-ui-accordion-trigger]',\n isDisabled: (el) => el.hasAttribute('disabled'),\n loop: () => currentProps().loop,\n });\n syncAll();\n setupObserver();\n },\n destroy(): void {\n disconnectObserver?.();\n disconnectObserver = null;\n bridge.disconnect();\n collection = null;\n rootEl = null;\n },\n get root(): BindingObject {\n const props = this.snapshot.current?.props ?? currentProps();\n return mergeBindings({inputs: [\n resolveStyle({part: accordionStyles.parts.root, props, className: props.class}),\n {\n 'data-ui-accordion': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-disabled': () => currentProps().disabled ? '' : undefined,\n '@click': handleClick,\n '@keydown': (event: Event) => {\n if (event instanceof KeyboardEvent) handleKeydown(event);\n },\n '@focusin': handleFocus,\n },\n ]});\n },\n open(value: string): void {\n bridge.send({type: 'OPEN', value});\n },\n close(value: string): void {\n bridge.send({type: 'CLOSE', value});\n },\n toggle(value: string, event?: Event): void {\n const item = itemForValue(value);\n if (item) handleToggle(item, event);\n },\n isOpen(value: string): boolean {\n return this.snapshot.current?.context.selection.values.includes(value) ?? false;\n },\n };\n\n return component;\n};\n\nconst registerAccordion = defineAlpineData('UiAccordion', UiAccordion);\n\nexport {registerAccordion, UiAccordion};\nexport type {AccordionData, AccordionMode, AccordionTransition, UiAccordionApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerAccordion as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerAccordion = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerAccordion};\nexport default registerAccordion;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e}from"./bridge-B4S_D6hV.js";import{t}from"./capability-motion-VFYcNVM5.js";import{c as n,f as r,l as i,n as a,s as o,u as s}from"./codecs-Cb1ns_47.js";import{n as c,r as l,s as u,t as d}from"./dom-qAeVl7dc.js";import{i as f,t as p}from"./alpine-machine-BS13dbK4.js";import{t as m}from"./alpine-data-CytyCyfk.js";import{n as ee}from"./anchored-popover-BXEMsLrA.js";import{n as te,t as h}from"./styles-TfvwVPGw.js";import{t as ne}from"./merge-bindings-C8ewA_FD.js";import{t as g}from"./machine-Dqut4h89.js";import{n as _,t as v}from"./props-change-2xfsIAEN.js";import{t as re}from"./dismissable-layer-BROE-Ln2.js";import{i as y,n as ie,r as ae,t as oe}from"./form-control-BkVb2Qed.js";import{D as b,S as x,T as S,a as C,d as w,f as T,i as E,m as D,p as O,r as se,t as k,u as A,w as j}from"./common-BOd_thC-.js";var M=null,ce=t=>{typeof customElements>`u`||customElements.get(`calendar-date`)||(M??=e(()=>import(`./cally-Z6G-rzr-.js`),[]))},N=[`single`,`range`],P=[`enhanced`,`native`],le=[`auto`,`confirm`],ue=[`neutral`,`accent`],F=se,I=[`left`,`right`,`top`,`bottom`],L=b,R=A,z={name:r,value:r,startName:r,endName:r,mode:i(N,`single`),placeholder:r,min:r,max:r,today:r,openTo:r,forceOpenTo:a,months:n.clamp(0,12).default(0),firstDayOfWeek:n.clamp(-1,6).default(0),locale:r,format:r.default(`%Y-%m-%d`),rangeSeparator:r.default(`/`),showOutsideDays:a,showWeekNumbers:a,fixedWeeks:a.default(!0),selectableHeader:a,withToday:a,clearable:a,disabled:a,readonly:a,required:a,invalid:a,side:i(S,`bottom`),align:i(k,`start`),offset:n.clamp(-100,100).default(0),gap:n.clamp(0,50).default(4),variant:i(P,`enhanced`),color:i(ue,`neutral`),radius:i(F,`md`),surface:i(L,`+2`),elevation:i(R,`3`),close:i(le,`auto`),presets:o.array([]),presetsPosition:i(I,`left`),preset:r,presetName:r,triggerClass:r,inputClass:r,popoverClass:r,calendarClass:r,presetsClass:r,presetClass:r,class:r,form:r};i(I,`left`);var de=[f({name:`opening`,state:`disclosure.opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`,sends:{close:()=>({type:`CLOSE`})}}),f({name:`closing`,state:`disclosure.closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`,sends:{open:()=>({type:`OPEN`})}}),f({name:`parsing`,state:`feature.parsing`,project:e=>({input:e.context.input.value}),onDone:`PARSING_DONE`,onError:`PARSING_ERROR`,sends:{select:e=>({type:`SELECT`,value:e,source:`input`}),clear:()=>({type:`CLEAR`})}}),f({name:`selecting`,state:`feature.selecting`,project:e=>({value:e.context.selection.value,previousValue:e.context.selection.previousValue,source:e.context.selection.source,preset:e.context.preset.value}),onDone:`SELECTING_DONE`,onError:`SELECTING_ERROR`,sends:{select:e=>({type:`SELECT`,value:e,source:`input`}),clear:()=>({type:`CLEAR`}),close:()=>({type:`CLOSE`})}})],B=e=>_(e)?.props??null,V=e=>e.disabled||e.readonly,H=(e,t)=>typeof e[t]==`string`?e[t]:``,U=e=>{let t=H(e,`source`);return t===`calendar`||t===`input`||t===`preset`||t===`today`||t===`props`?t:`clear`},W=({event:e})=>{let t=B(e);return!!(t&&(v(e,`disabled`)&&t.disabled||v(e,`readonly`)&&t.readonly))},G=({props:e})=>e.close===`auto`,K=(e,t,n)=>({...e,selection:{value:n,pendingValue:n,previousValue:e.selection.value,source:U(t)},input:{value:H(t,`input`),valid:!0},preset:{value:H(t,`preset`)}}),fe=({props:e,context:t,effects:n})=>g({type:`parallel`,states:{disclosure:{initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:G,effects:`prepareClose`},APPLY:{target:`closing`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:W,effects:`prepareClose`}}},open:{tags:[`visible`,`expanded`,`interactive`,`open`],on:{CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:G,effects:`prepareClose`},APPLY:{target:`closing`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:W,effects:`prepareClose`}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`}}}}},feature:{initial:`idle`,states:{idle:{on:{INPUT:{target:`editing`,reduce:`setInput`,effects:`syncInput`},PENDING:{target:`editing`,reduce:`setPending`,effects:`syncPending`},PARSE:{target:`parsing`,reduce:`setInvalidInput`,effects:`markInvalid`},SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{reduce:`replaceProps`,effects:`syncProps`}],PRESETS_CHANGED:{effects:`syncPresets`}}},editing:{tags:[`editing`],on:{INPUT:{target:`editing`,reduce:`setInput`,effects:`syncInput`},PENDING:{target:`editing`,reduce:`setPending`,effects:`syncPending`},PARSE:{target:`parsing`,reduce:`setInvalidInput`,effects:`markInvalid`},SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},CANCEL:{target:`idle`,reduce:`resetDraft`,effects:`syncPending`},CLOSE:{target:`idle`,reduce:`resetDraft`,effects:`syncPending`},PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{reduce:`replaceProps`,effects:`syncProps`}],PRESETS_CHANGED:{effects:`syncPresets`}}},parsing:{tags:[`editing`,`parsing`],on:{SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},INPUT:{target:`editing`,reduce:`setInput`,effects:`syncInput`},PARSING_DONE:`editing`,PARSING_ERROR:`editing`,CLOSE:{target:`idle`,reduce:`resetDraft`,effects:`syncPending`},PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{target:`editing`,reduce:`replaceProps`,effects:`syncProps`}]}},selecting:{tags:[`selecting`],on:{SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},SELECTING_DONE:`idle`,SELECTING_ERROR:`idle`,PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{reduce:`replaceProps`,effects:`syncProps`}],PRESETS_CHANGED:{effects:`syncPresets`}}}}}}},{context:t,props:e,reducers:{beginOpen:({context:e})=>({context:{...e,selection:{...e.selection,pendingValue:e.selection.value}}}),setInput:({context:e,event:t})=>({context:{...e,input:{value:H(t,`input`),valid:!0}}}),setInvalidInput:({context:e,event:t})=>({context:{...e,input:{value:H(t,`input`),valid:!1}}}),setPending:({context:e,event:t})=>({context:{...e,selection:{...e.selection,pendingValue:H(t,`value`),source:U(t)},preset:{value:H(t,`preset`)}}}),select:({context:e,event:t})=>({context:K(e,t,H(t,`value`))}),clear:({context:e})=>({context:K(e,{type:`CLEAR`},``)}),apply:({context:e})=>({context:K(e,{type:`SELECT`,source:e.selection.source},e.selection.pendingValue)}),resetDraft:({context:e})=>({context:{...e,selection:{...e.selection,pendingValue:e.selection.value},input:{value:``,valid:!0}}}),replaceProps:({context:e,event:t})=>{let n=B(t);if(n)return v(t,`value`)?{props:n,context:K(e,{type:`PROPS_CHANGED`,source:`props`},n.value)}:{props:n}}},guards:{canOpen:({props:e})=>!V(e),valueChanged:({event:e})=>v(e,`value`)},effects:{prepareOpen:n.prepareOpen,finishOpen:n.finishOpen,prepareClose:n.prepareClose,finishClose:n.finishClose,syncInput:n.syncInput,syncPending:n.syncPending,markInvalid:n.markInvalid,commitSelection:n.commitSelection,syncProps:n.syncProps,syncPresets:n.syncPresets}}),pe=h({definition:{component:`ui.date-picker`,parts:{root:{base:`relative inline-grid w-full min-w-0`},trigger:{base:[D,E.lg,`text-left`],variants:{radius:C},defaults:{radius:`md`}},customTrigger:{base:[`inline-flex min-h-control-lg min-w-control-lg shrink-0 items-center justify-center gap-control-gap px-2 text-sm outline-none`],variants:{radius:C},defaults:{radius:`md`}},input:{base:[`min-w-0 flex-1 text-sm`,T]},icon:{base:`size-icon shrink-0 fill-current text-surface-ink-muted`},action:{base:w},popover:{base:[j,`max-h-lg overflow-hidden rounded-overlay-sm`]},panel:{base:`grid min-w-72 max-w-[calc(100vw-2rem)] gap-0 overflow-hidden`,variants:{hasPresets:{true:``,false:``},presetsPosition:{left:``,right:``,top:``,bottom:``}},compounds:[{when:{hasPresets:!0,presetsPosition:`left`},class:`sm:grid-cols-[minmax(9rem,11rem)_auto]`},{when:{hasPresets:!0,presetsPosition:`right`},class:`sm:grid-cols-[auto_minmax(9rem,11rem)]`}],defaults:{hasPresets:!1,presetsPosition:`left`}},calendarWrap:{base:`relative grid size-full place-items-center overflow-x-auto overflow-y-auto p-popover-padding`},calendar:{base:`grid max-w-full gap-2 text-sm`},presets:{base:[`grid content-start gap-1 p-popover-padding`]},preset:{base:x},footer:{base:`flex items-center justify-end gap-2 p-popover-padding`},nativeWrapper:{base:`relative w-full min-w-0`},native:{base:[O,E.lg],variants:{radius:C},defaults:{radius:`md`}}}}}),q=/^\d{4}-\d{2}-\d{2}$/,J=/^\d{4}-\d{2}-\d{2}\/\d{4}-\d{2}-\d{2}$/,me=/%[Ymd]/g,he=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),Y=e=>{let t=0,n=``;for(let r of e.matchAll(/[\s/-]+/g))n+=he(e.slice(t,r.index)),n+=`(?:\\s|[/-])+`,t=(r.index??0)+r[0].length;return n+he(e.slice(t))},ge=e=>{let t=[],n=0,r=``;for(let i of e.matchAll(me)){r+=Y(e.slice(n,i.index));let a=i[0];t.push(a),r+=a===`%Y`?`(\\d{4})`:`(\\d{2})`,n=(i.index??0)+a.length}return r+=Y(e.slice(n)),{source:r,tokens:t}},X=(e,t)=>{let n=Object.fromEntries(t.map((t,n)=>[t,e[n]??``])),r=Number(n[`%Y`]),i=Number(n[`%m`]),a=Number(n[`%d`]);if(!r||!i||!a||new Set(t).size!==3)return null;let o=new Date(Date.UTC(r,i-1,a));return o.getUTCFullYear()!==r||o.getUTCMonth()!==i-1||o.getUTCDate()!==a?null:`${String(r).padStart(4,`0`)}-${String(i).padStart(2,`0`)}-${String(a).padStart(2,`0`)}`},_e=({input:e,format:t,range:n,separator:r})=>{let i=ge(t);if(!n){let t=e.trim().match(RegExp(`^${i.source}$`));return t?X(t.slice(1),i.tokens):null}let a=e.trim().match(RegExp(`^${i.source}${Y(r)}${i.source}$`));if(!a)return null;let o=i.tokens.length,s=X(a.slice(1,o+1),i.tokens),c=X(a.slice(o+1),i.tokens);return s&&c&&s<=c?`${s}/${c}`:null},Z=(e,t)=>{if(!q.test(e))return e;let[n=``,r=``,i=``]=e.split(`-`);return t.replaceAll(`%Y`,n).replaceAll(`%m`,r).replaceAll(`%d`,i)},ve=e=>e.replaceAll(`%Y`,`YYYY`).replaceAll(`%m`,`MM`).replaceAll(`%d`,`DD`),ye=({input:e,format:t,separator:n})=>{let r=new Set(`${t.replace(me,``)}${n}`);return Array.from(e).filter(e=>/[0-9]/.test(e)||/[\s/-]/.test(e)||r.has(e)).join(``)},be=({input:e,format:t,range:n,separator:r})=>{let i=t.replaceAll(`%Y`,`9999`).replaceAll(`%m`,`99`).replaceAll(`%d`,`99`),a=n?`${i}${r}${i}`:i,o=e.match(/[0-9]/g)??[],s=0,c=``;for(let e=0;e<a.length;e+=1){let t=a[e]??``;if(t===`9`){let e=o[s];if(e===void 0)break;c+=e,s+=1;continue}s>0&&a.slice(e+1).includes(`9`)&&(c+=t)}return c},xe=({value:e,format:t,range:n,separator:r})=>{if(!e)return``;if(!n)return Z(e,t);if(!J.test(e))return e;let[i=``,a=``]=e.split(`/`);return`${Z(i,t)}${r}${Z(a,t)}`},Se=(e,t,n)=>(J.test(e)?e.split(`/`):[e]).every(e=>q.test(e)&&(!t||e>=t)&&(!n||e<=n)),Ce=100,we=10,Q=e=>{let[t=``,n=``]=e.split(`/`);return[t,n]},Te=()=>new Date().getFullYear(),Ee=()=>`${Te()-Ce}-01-01`,De=()=>`${Te()+we}-12-31`,$=()=>new Date().toISOString().slice(0,10),Oe=(e,t)=>q.test(e)?new Intl.DateTimeFormat(t||void 0,{month:`long`,timeZone:`UTC`,year:`numeric`}).format(new Date(`${e}T00:00:00.000Z`)):``,ke=e=>({value:e.dataset.value??``,label:e.dataset.label??e.textContent?.trim()??``,start:e.dataset.start??``,end:e.dataset.end??``,disabled:c({value:e.dataset.disabled})}),Ae=()=>{let e=null,t=``,n=``,r=null,i=[],a=``,o=``,c=``,f=``,m=!1,h=()=>{if(!e)throw Error(`Date picker has not been initialized.`);return e},g=()=>B.getCommittedSnapshot().props,_=()=>B.getCommittedSnapshot().context,v=()=>{let e=h().querySelector(`[data-ui-date-picker-trigger]`);if(!e)throw Error(`Date picker requires a trigger.`);return e},b=()=>{let e=h().querySelector(`[data-ui-date-picker-input]`);if(!e)throw Error(`Date picker requires an input.`);return e},x=()=>h().querySelector(`[data-ui-date-picker-toggle]`),S=()=>{let e=h().querySelector(`[data-ui-date-picker-popover]`);if(!e)throw Error(`Date picker requires a popover.`);return e},C=()=>h().querySelector(`[data-ui-date-picker-calendar]`),w=()=>h().querySelector(`[data-ui-date-picker-hidden-inputs]`),T=()=>h().querySelector(`[data-ui-date-picker-preset-inputs]`),E=()=>g().mode===`range`,D=()=>g().months||(E()?2:1),O=()=>{let e=Array.from(h().querySelectorAll(`[data-ui-date-picker-preset]`)).map(ke).filter(e=>e.value&&e.start&&e.end);return e.length?e:g().presets},se=e=>xe({value:e,format:g().format,range:E(),separator:g().rangeSeparator}),k=e=>{let t=O().find(t=>(E()?`${t.start}/${t.end}`:t.start)===e),n=O().find(e=>e.value===`custom`);return t?.value??(e&&n?`custom`:``)},A=e=>{let t=h().querySelector(`[data-ui-date-picker-calendar-heading]`);if(!t)return;let n=g();t.textContent=Oe(e||Q(_().selection.value||n.openTo||n.today||$())[0],n.locale)},j=()=>{let e=C();if(!e)return;let t=g(),n=_(),r=n.selection.pendingValue;customElements.get(`calendar-date`)&&(e.value=r),e.setAttribute(`value`,r),u({el:e,attr:`tentative`,present:E()&&!!r&&!J.test(r)}),e.setAttribute(`months`,String(D())),e.style.setProperty(`--ui-date-picker-month-columns`,String(D())),e.setAttribute(`min`,t.min||Ee()),e.setAttribute(`max`,t.max||De()),t.today?e.setAttribute(`today`,t.today):e.removeAttribute(`today`);let i=t.forceOpenTo?t.openTo:n.selection.value||t.openTo||t.today||$();e.setAttribute(`focused-date`,Q(i)[0]),t.locale?e.setAttribute(`locale`,t.locale):e.removeAttribute(`locale`),t.firstDayOfWeek>=0&&e.setAttribute(`first-day-of-week`,String(t.firstDayOfWeek));let a=!t.selectableHeader&&D()===1;u({el:e,attr:`data-inline-heading`,present:a,value:`true`}),u({el:e,attr:`data-hide-month-heading`,present:t.selectableHeader&&!E()||a,value:`true`}),u({el:e,attr:`data-fixed-weeks`,present:t.fixedWeeks,value:`true`}),u({el:e,attr:`show-outside-days`,present:t.showOutsideDays||t.fixedWeeks}),u({el:e,attr:`show-week-numbers`,present:t.showWeekNumbers})},M=()=>{let e=_().selection.pendingValue||_().selection.value;h().querySelectorAll(`[data-ui-date-picker-preset]`).forEach(t=>{let n=ke(t);u({el:t,attr:`data-selected`,present:(E()?`${n.start}/${n.end}`:n.start)===e,value:`true`}),u({el:t,attr:`data-disabled`,present:n.disabled??!1,value:`true`})})},ce=()=>{let e=w();if(!e)return;let t=g(),n=_().selection.value;if(!E()){a=y({container:e,currentKey:a,state:{name:t.name,values:n?[n]:[],required:t.required,form:t.form,marker:`data-ui-date-picker-hidden-input`}});return}let[r,i]=Q(n);if(t.startName||t.endName){let n=JSON.stringify({startName:t.startName,endName:t.endName,start:r,end:i,form:t.form});if(n===a)return;e.replaceChildren(),[[t.startName,r],[t.endName,i]].forEach(([n,r])=>{if(!n)return;let i=document.createElement(`input`);i.type=`hidden`,i.name=n,i.value=r??``,i.setAttribute(`data-ui-date-picker-hidden-input`,``),t.form&&i.setAttribute(`form`,t.form),e.append(i)}),a=n;return}a=y({container:e,currentKey:a,state:{name:t.name,values:n?[n]:[],required:t.required,form:t.form,marker:`data-ui-date-picker-hidden-input`}})},N=()=>{let e=T();if(!e)return;let t=g(),n=k(_().selection.value);o=y({container:e,currentKey:o,state:{name:t.presetName,values:n?[n]:[],form:t.form,marker:`data-ui-date-picker-preset-input`}})},P=()=>{let e=g(),r=_(),i=B.hasTag(`visible`),a=B.hasTag(`expanded`),o=v(),s=b(),l=S();o.id=t,l.id=n,l.dataset.state=a?`open`:`closed`,l.hidden=!i,o.dataset.state=a?`open`:`closed`,ie({el:o,state:e,value:`true`});let u=x()??o;u.setAttribute(`aria-haspopup`,`dialog`),u.setAttribute(`aria-expanded`,a?`true`:`false`),u.setAttribute(`aria-controls`,n),o instanceof HTMLButtonElement&&(o.disabled=e.disabled);let d=B.hasTag(`editing`)?r.input.value:se(r.selection.value);ae({input:s,state:{name:``,value:d,disabled:e.disabled,readonly:e.readonly,required:e.required&&e.mode===`single`,invalid:e.invalid||!r.input.valid}}),s.placeholder=V.effectivePlaceholder(),h().querySelectorAll(`[data-ui-date-picker-clear], [data-ui-date-picker-toggle]`).forEach(t=>{t.disabled=e.disabled}),f=d;let p=h().querySelector(`[data-ui-date-picker-live]`);p&&(p.textContent=c)},le=()=>{let e=h().querySelector(`[data-ui-date-picker-calendar-today]`),t=h().querySelector(`[data-ui-date-picker-today-day]`);if(!e||!t)return;let n=g().today||$(),r=q.test(n)?String(Number(n.slice(-2))):``;t.textContent=r,e.setAttribute(`aria-label`,r?`Go to today, ${n}`:`Go to today`)},ue=()=>{let e=g(),t=S();t.dataset.uiSurface=e.surface,t.dataset.uiElevation=e.elevation},F=()=>{s({el:h(),schema:z,key:`value`,value:_().selection.value}),P(),j(),A(),le(),ue(),ce(),N(),M(),B.hasTag(`visible`)&&r?.sync()},I=()=>{oe({container:w(),fallback:h(),marker:`data-ui-date-picker-hidden-input`}),l({el:h(),name:`ui:change`})},L=(e,t,n=``)=>{g().disabled||g().readonly||B.send({type:`SELECT`,value:e,source:t,preset:n})},R=e=>{let t=g(),n=_e({input:e,format:t.format,range:E(),separator:t.rangeSeparator});return n&&Se(n,t.min,t.max)?n:null},B=p({schema:z,hooks:de,createMachine:({props:e})=>fe({props:e,context:{selection:{value:e.value,pendingValue:e.value,previousValue:e.value,source:`props`},input:{value:``,valid:!0},preset:{value:e.preset}},effects:{prepareOpen:()=>{let e=S();e.hidden=!1,r?.open(),F()},finishOpen:()=>{m&&C()?.focus({preventScroll:!0}),m=!1,l({el:h(),name:`ui:open`})},prepareClose:F,finishClose:()=>{let e=S();r?.close(),e.hidden=!0,m&&v().focus({preventScroll:!0}),m=!1,F(),l({el:h(),name:`ui:close`})},syncInput:P,syncPending:()=>{P(),j(),M()},markInvalid:()=>{b().setCustomValidity(`Enter a date in ${g().format}`),P(),l({el:h(),name:`ui:invalid`})},commitSelection:()=>{b().setCustomValidity(``);let e=_();c=e.selection.value?E()?`Range selected`:`Date selected`:`Date cleared`,F(),I(),l({el:h(),name:e.selection.value?`ui:select`:`ui:clear`})},syncProps:F,syncPresets:()=>{M(),N()}}}),resolveTransitionElement:({name:e,root:t})=>e===`opening`||e===`closing`?t.querySelector(`[data-ui-date-picker-popover]`):e===`parsing`?t.querySelector(`[data-ui-date-picker-input]`):t}),V;return V={...B,get isOpen(){return B.hasTag(`expanded`)},get isEditing(){return B.hasTag(`editing`)},get value(){return B.getCommittedSnapshot().context.selection.value},get pendingValue(){return B.getCommittedSnapshot().context.selection.pendingValue},get preset(){return k(B.getCommittedSnapshot().context.selection.value)},get root(){return ne({inputs:[te({part:pe.parts.root,props:B.getCommittedSnapshot().props,className:B.getCommittedSnapshot().props.class}),{"data-ui-date-picker":``,":data-state":()=>V.isOpen?`open`:`closed`}]})},effectivePlaceholder(){let e=B.getCommittedSnapshot().props;if(e.placeholder)return e.placeholder;let t=ve(e.format);return e.mode===`range`?`${t}${e.rangeSeparator}${t}`:t},open(e){e?.preventDefault(),e instanceof KeyboardEvent&&(m=!0),B.send(`OPEN`)},close(e){e?.preventDefault(),e instanceof KeyboardEvent&&(m=!0),B.send(`CLOSE`)},toggle(e){e?.preventDefault(),B.send(`TOGGLE`)},select(e,t){t?.preventDefault(),Se(e,g().min,g().max)&&(E()?J.test(e):q.test(e))&&L(e,`input`)},selectPreset(e,t){if(t?.preventDefault(),g().disabled||g().readonly)return;let n=O().find(t=>t.value===e);if(!n||n.disabled)return;let r=E()?`${n.start}/${n.end}`:n.start;g().close===`confirm`?B.send({type:`PENDING`,value:r,source:`preset`,preset:e}):L(r,`preset`,e)},selectToday(e){if(e?.preventDefault(),g().disabled||g().readonly)return;let t=g().today||$(),n=E()?`${t}/${t}`:t;g().close===`confirm`?B.send({type:`PENDING`,value:n,source:`today`}):L(n,`today`)},clear(e){e?.preventDefault(),!(g().disabled||g().readonly)&&B.send(`CLEAR`)},cancel(e){e?.preventDefault(),B.send(`CANCEL`),B.send(`CLOSE`)},init(){e=this.$el,t=this.$id(`date-picker-trigger`),n=this.$id(`date-picker-popover`),B.connect(this.$el,this.snapshot),r=ee({reference:v,floating:S,position:()=>g().side,align:()=>g().align,gap:()=>g().gap,offset:()=>g().offset,matchReferenceWidth:!1});let a=v(),o=b(),s=S();d({target:a,event:`click`,cleanup:i,handler:e=>{let t=e.target;t instanceof Element&&t.closest(`[data-ui-date-picker-clear]`)?V.clear(e):V.toggle(e)}}),d({target:a,event:`keydown`,cleanup:i,handler:e=>{let t=e;(t.key===`ArrowDown`||t.key===`Enter`||t.key===` `)&&!V.isOpen?V.open(t):t.key===`Escape`&&V.isOpen&&V.close(t)}}),d({target:h(),event:`keydown`,cleanup:i,handler:e=>{let t=e;t.key===`Escape`&&V.isOpen&&V.close(t)}}),d({target:o,event:`input`,cleanup:i,handler:()=>{let e=o.selectionStart??o.value.length,t=(o.value.slice(0,e).match(/[0-9]/g)??[]).length,n=ye({input:o.value,format:g().format,separator:g().rangeSeparator});if(f.length-n.length!==1&&(n=be({input:n,format:g().format,range:E(),separator:g().rangeSeparator})),o.value!==n){o.value=n;let e=0,r=n.length;for(let i=0;i<n.length;i+=1)if(/[0-9]/.test(n[i]??``)&&(e+=1),e===t){for(r=i+1;r<n.length&&!/[0-9]/.test(n[r]??``);)r+=1;break}o.setSelectionRange(r,r)}f=n,B.send({type:`INPUT`,input:n});let r=R(n);r&&L(r,`input`)}}),d({target:o,event:`change`,cleanup:i,handler:()=>{let e=R(o.value);e?L(e,`input`):o.value.trim()?B.send({type:`PARSE`,input:o.value}):B.send(`CLEAR`)}}),d({target:s,event:`pointerdown`,cleanup:i,handler:e=>e.stopPropagation()}),d({target:s,event:`click`,cleanup:i,handler:e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-ui-date-picker-preset]`);n?V.selectPreset(n.dataset.value??``,e):t.closest(`[data-ui-date-picker-clear]`)?V.clear(e):t.closest(`[data-ui-date-picker-cancel]`)?V.cancel(e):t.closest(`[data-ui-date-picker-apply]`)?B.send(`APPLY`):t.closest(`[data-ui-date-picker-today]`)&&V.selectToday(e)}});let l=C();l&&(customElements.whenDefined(`calendar-date`).then(()=>{e&&j()}),d({target:l,event:`change`,cleanup:i,handler:()=>{let e=l.value;E()&&!J.test(e)?(c=`Start date selected`,B.send({type:`PENDING`,value:e,source:`calendar`})):g().close===`confirm`?B.send({type:`PENDING`,value:e,source:`calendar`}):L(e,`calendar`)}}),d({target:l,event:`focusday`,cleanup:i,handler:e=>{let t=e.detail;t instanceof Date&&A(t.toISOString().slice(0,10))}})),i.push(re({isEnabled:()=>V.isOpen,roots:()=>[h(),s],onDismiss:()=>V.close()}));let u=new MutationObserver(()=>B.send(`PRESETS_CHANGED`));u.observe(h(),{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`data-value`,`data-start`,`data-end`,`data-disabled`]}),i.push(()=>u.disconnect()),F()},destroy(){i.forEach(e=>e()),i=[],r?.destroy(),r=null,B.disconnect(),e=null}},V},je=m(`UiDatePicker`,Ae),Me=new WeakSet,Ne=e=>{Me.has(e)||(Me.add(e),t(e),ce(e),je(e))};export{Ae as n,Ne as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{o as e}from"./bridge-B4S_D6hV.js";import{t}from"./capability-motion-C_8mc71v.js";import{c as n,f as r,l as i,n as a,s as o,u as s}from"./codecs-Cb1ns_47.js";import{n as c,r as l,s as u,t as d}from"./dom-qAeVl7dc.js";import{i as f,t as p}from"./alpine-machine-BS13dbK4.js";import{t as m}from"./alpine-data-CytyCyfk.js";import{n as ee}from"./anchored-popover-BXEMsLrA.js";import{n as te,t as h}from"./styles-TfvwVPGw.js";import{t as ne}from"./merge-bindings-C8ewA_FD.js";import{t as g}from"./machine-Dqut4h89.js";import{n as _,t as v}from"./props-change-2xfsIAEN.js";import{t as re}from"./dismissable-layer-BROE-Ln2.js";import{i as y,n as ie,r as ae,t as oe}from"./form-control-BkVb2Qed.js";import{D as b,S as x,T as S,a as C,d as w,f as T,i as E,m as D,p as O,r as se,t as k,u as A,w as j}from"./common-BOd_thC-.js";var M=null,ce=t=>{typeof customElements>`u`||customElements.get(`calendar-date`)||(M??=e(()=>import(`./cally-Z6G-rzr-.js`),[]))},N=[`single`,`range`],P=[`enhanced`,`native`],le=[`auto`,`confirm`],ue=[`neutral`,`accent`],F=se,I=[`left`,`right`,`top`,`bottom`],L=b,R=A,z={name:r,value:r,startName:r,endName:r,mode:i(N,`single`),placeholder:r,min:r,max:r,today:r,openTo:r,forceOpenTo:a,months:n.clamp(0,12).default(0),firstDayOfWeek:n.clamp(-1,6).default(0),locale:r,format:r.default(`%Y-%m-%d`),rangeSeparator:r.default(`/`),showOutsideDays:a,showWeekNumbers:a,fixedWeeks:a.default(!0),selectableHeader:a,withToday:a,clearable:a,disabled:a,readonly:a,required:a,invalid:a,side:i(S,`bottom`),align:i(k,`start`),offset:n.clamp(-100,100).default(0),gap:n.clamp(0,50).default(4),variant:i(P,`enhanced`),color:i(ue,`neutral`),radius:i(F,`md`),surface:i(L,`+2`),elevation:i(R,`3`),close:i(le,`auto`),presets:o.array([]),presetsPosition:i(I,`left`),preset:r,presetName:r,triggerClass:r,inputClass:r,popoverClass:r,calendarClass:r,presetsClass:r,presetClass:r,class:r,form:r};i(I,`left`);var de=[f({name:`opening`,state:`disclosure.opening`,project:()=>({}),onDone:`OPENING_DONE`,onError:`OPENING_ERROR`,sends:{close:()=>({type:`CLOSE`})}}),f({name:`closing`,state:`disclosure.closing`,project:()=>({}),onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`,sends:{open:()=>({type:`OPEN`})}}),f({name:`parsing`,state:`feature.parsing`,project:e=>({input:e.context.input.value}),onDone:`PARSING_DONE`,onError:`PARSING_ERROR`,sends:{select:e=>({type:`SELECT`,value:e,source:`input`}),clear:()=>({type:`CLEAR`})}}),f({name:`selecting`,state:`feature.selecting`,project:e=>({value:e.context.selection.value,previousValue:e.context.selection.previousValue,source:e.context.selection.source,preset:e.context.preset.value}),onDone:`SELECTING_DONE`,onError:`SELECTING_ERROR`,sends:{select:e=>({type:`SELECT`,value:e,source:`input`}),clear:()=>({type:`CLEAR`}),close:()=>({type:`CLOSE`})}})],B=e=>_(e)?.props??null,V=e=>e.disabled||e.readonly,H=(e,t)=>typeof e[t]==`string`?e[t]:``,U=e=>{let t=H(e,`source`);return t===`calendar`||t===`input`||t===`preset`||t===`today`||t===`props`?t:`clear`},W=({event:e})=>{let t=B(e);return!!(t&&(v(e,`disabled`)&&t.disabled||v(e,`readonly`)&&t.readonly))},G=({props:e})=>e.close===`auto`,K=(e,t,n)=>({...e,selection:{value:n,pendingValue:n,previousValue:e.selection.value,source:U(t)},input:{value:H(t,`input`),valid:!0},preset:{value:H(t,`preset`)}}),fe=({props:e,context:t,effects:n})=>g({type:`parallel`,states:{disclosure:{initial:`closed`,states:{closed:{tags:[`closed`],on:{OPEN:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`}}},opening:{tags:[`visible`,`expanded`,`interactive`,`transitioning`],on:{OPENING_DONE:{target:`open`,effects:`finishOpen`},OPENING_ERROR:{target:`open`,effects:`finishOpen`},CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:G,effects:`prepareClose`},APPLY:{target:`closing`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:W,effects:`prepareClose`}}},open:{tags:[`visible`,`expanded`,`interactive`,`open`],on:{CLOSE:{target:`closing`,effects:`prepareClose`},TOGGLE:{target:`closing`,effects:`prepareClose`},SELECT:{target:`closing`,guard:G,effects:`prepareClose`},APPLY:{target:`closing`,effects:`prepareClose`},PROPS_CHANGED:{target:`closing`,guard:W,effects:`prepareClose`}}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:{target:`closed`,effects:`finishClose`},CLOSING_ERROR:{target:`closed`,effects:`finishClose`},OPEN:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`},TOGGLE:{target:`opening`,guard:`canOpen`,reduce:`beginOpen`,effects:`prepareOpen`}}}}},feature:{initial:`idle`,states:{idle:{on:{INPUT:{target:`editing`,reduce:`setInput`,effects:`syncInput`},PENDING:{target:`editing`,reduce:`setPending`,effects:`syncPending`},PARSE:{target:`parsing`,reduce:`setInvalidInput`,effects:`markInvalid`},SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{reduce:`replaceProps`,effects:`syncProps`}],PRESETS_CHANGED:{effects:`syncPresets`}}},editing:{tags:[`editing`],on:{INPUT:{target:`editing`,reduce:`setInput`,effects:`syncInput`},PENDING:{target:`editing`,reduce:`setPending`,effects:`syncPending`},PARSE:{target:`parsing`,reduce:`setInvalidInput`,effects:`markInvalid`},SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},CANCEL:{target:`idle`,reduce:`resetDraft`,effects:`syncPending`},CLOSE:{target:`idle`,reduce:`resetDraft`,effects:`syncPending`},PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{reduce:`replaceProps`,effects:`syncProps`}],PRESETS_CHANGED:{effects:`syncPresets`}}},parsing:{tags:[`editing`,`parsing`],on:{SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},INPUT:{target:`editing`,reduce:`setInput`,effects:`syncInput`},PARSING_DONE:`editing`,PARSING_ERROR:`editing`,CLOSE:{target:`idle`,reduce:`resetDraft`,effects:`syncPending`},PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{target:`editing`,reduce:`replaceProps`,effects:`syncProps`}]}},selecting:{tags:[`selecting`],on:{SELECT:{target:`selecting`,reduce:`select`,effects:`commitSelection`},CLEAR:{target:`selecting`,reduce:`clear`,effects:`commitSelection`},APPLY:{target:`selecting`,reduce:`apply`,effects:`commitSelection`},SELECTING_DONE:`idle`,SELECTING_ERROR:`idle`,PROPS_CHANGED:[{target:`selecting`,guard:`valueChanged`,reduce:`replaceProps`,effects:`commitSelection`},{reduce:`replaceProps`,effects:`syncProps`}],PRESETS_CHANGED:{effects:`syncPresets`}}}}}}},{context:t,props:e,reducers:{beginOpen:({context:e})=>({context:{...e,selection:{...e.selection,pendingValue:e.selection.value}}}),setInput:({context:e,event:t})=>({context:{...e,input:{value:H(t,`input`),valid:!0}}}),setInvalidInput:({context:e,event:t})=>({context:{...e,input:{value:H(t,`input`),valid:!1}}}),setPending:({context:e,event:t})=>({context:{...e,selection:{...e.selection,pendingValue:H(t,`value`),source:U(t)},preset:{value:H(t,`preset`)}}}),select:({context:e,event:t})=>({context:K(e,t,H(t,`value`))}),clear:({context:e})=>({context:K(e,{type:`CLEAR`},``)}),apply:({context:e})=>({context:K(e,{type:`SELECT`,source:e.selection.source},e.selection.pendingValue)}),resetDraft:({context:e})=>({context:{...e,selection:{...e.selection,pendingValue:e.selection.value},input:{value:``,valid:!0}}}),replaceProps:({context:e,event:t})=>{let n=B(t);if(n)return v(t,`value`)?{props:n,context:K(e,{type:`PROPS_CHANGED`,source:`props`},n.value)}:{props:n}}},guards:{canOpen:({props:e})=>!V(e),valueChanged:({event:e})=>v(e,`value`)},effects:{prepareOpen:n.prepareOpen,finishOpen:n.finishOpen,prepareClose:n.prepareClose,finishClose:n.finishClose,syncInput:n.syncInput,syncPending:n.syncPending,markInvalid:n.markInvalid,commitSelection:n.commitSelection,syncProps:n.syncProps,syncPresets:n.syncPresets}}),pe=h({definition:{component:`ui.date-picker`,parts:{root:{base:`relative inline-grid w-full min-w-0`},trigger:{base:[D,E.lg,`text-left`],variants:{radius:C},defaults:{radius:`md`}},customTrigger:{base:[`inline-flex min-h-control-lg min-w-control-lg shrink-0 items-center justify-center gap-control-gap px-2 text-sm outline-none`],variants:{radius:C},defaults:{radius:`md`}},input:{base:[`min-w-0 flex-1 text-sm`,T]},icon:{base:`size-icon shrink-0 fill-current text-surface-ink-muted`},action:{base:w},popover:{base:[j,`max-h-lg overflow-hidden rounded-overlay-sm`]},panel:{base:`grid min-w-72 max-w-[calc(100vw-2rem)] gap-0 overflow-hidden`,variants:{hasPresets:{true:``,false:``},presetsPosition:{left:``,right:``,top:``,bottom:``}},compounds:[{when:{hasPresets:!0,presetsPosition:`left`},class:`sm:grid-cols-[minmax(9rem,11rem)_auto]`},{when:{hasPresets:!0,presetsPosition:`right`},class:`sm:grid-cols-[auto_minmax(9rem,11rem)]`}],defaults:{hasPresets:!1,presetsPosition:`left`}},calendarWrap:{base:`relative grid size-full place-items-center overflow-x-auto overflow-y-auto p-popover-padding`},calendar:{base:`grid max-w-full gap-2 text-sm`},presets:{base:[`grid content-start gap-1 p-popover-padding`]},preset:{base:x},footer:{base:`flex items-center justify-end gap-2 p-popover-padding`},nativeWrapper:{base:`relative w-full min-w-0`},native:{base:[O,E.lg],variants:{radius:C},defaults:{radius:`md`}}}}}),q=/^\d{4}-\d{2}-\d{2}$/,J=/^\d{4}-\d{2}-\d{2}\/\d{4}-\d{2}-\d{2}$/,me=/%[Ymd]/g,he=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),Y=e=>{let t=0,n=``;for(let r of e.matchAll(/[\s/-]+/g))n+=he(e.slice(t,r.index)),n+=`(?:\\s|[/-])+`,t=(r.index??0)+r[0].length;return n+he(e.slice(t))},ge=e=>{let t=[],n=0,r=``;for(let i of e.matchAll(me)){r+=Y(e.slice(n,i.index));let a=i[0];t.push(a),r+=a===`%Y`?`(\\d{4})`:`(\\d{2})`,n=(i.index??0)+a.length}return r+=Y(e.slice(n)),{source:r,tokens:t}},X=(e,t)=>{let n=Object.fromEntries(t.map((t,n)=>[t,e[n]??``])),r=Number(n[`%Y`]),i=Number(n[`%m`]),a=Number(n[`%d`]);if(!r||!i||!a||new Set(t).size!==3)return null;let o=new Date(Date.UTC(r,i-1,a));return o.getUTCFullYear()!==r||o.getUTCMonth()!==i-1||o.getUTCDate()!==a?null:`${String(r).padStart(4,`0`)}-${String(i).padStart(2,`0`)}-${String(a).padStart(2,`0`)}`},_e=({input:e,format:t,range:n,separator:r})=>{let i=ge(t);if(!n){let t=e.trim().match(RegExp(`^${i.source}$`));return t?X(t.slice(1),i.tokens):null}let a=e.trim().match(RegExp(`^${i.source}${Y(r)}${i.source}$`));if(!a)return null;let o=i.tokens.length,s=X(a.slice(1,o+1),i.tokens),c=X(a.slice(o+1),i.tokens);return s&&c&&s<=c?`${s}/${c}`:null},Z=(e,t)=>{if(!q.test(e))return e;let[n=``,r=``,i=``]=e.split(`-`);return t.replaceAll(`%Y`,n).replaceAll(`%m`,r).replaceAll(`%d`,i)},ve=e=>e.replaceAll(`%Y`,`YYYY`).replaceAll(`%m`,`MM`).replaceAll(`%d`,`DD`),ye=({input:e,format:t,separator:n})=>{let r=new Set(`${t.replace(me,``)}${n}`);return Array.from(e).filter(e=>/[0-9]/.test(e)||/[\s/-]/.test(e)||r.has(e)).join(``)},be=({input:e,format:t,range:n,separator:r})=>{let i=t.replaceAll(`%Y`,`9999`).replaceAll(`%m`,`99`).replaceAll(`%d`,`99`),a=n?`${i}${r}${i}`:i,o=e.match(/[0-9]/g)??[],s=0,c=``;for(let e=0;e<a.length;e+=1){let t=a[e]??``;if(t===`9`){let e=o[s];if(e===void 0)break;c+=e,s+=1;continue}s>0&&a.slice(e+1).includes(`9`)&&(c+=t)}return c},xe=({value:e,format:t,range:n,separator:r})=>{if(!e)return``;if(!n)return Z(e,t);if(!J.test(e))return e;let[i=``,a=``]=e.split(`/`);return`${Z(i,t)}${r}${Z(a,t)}`},Se=(e,t,n)=>(J.test(e)?e.split(`/`):[e]).every(e=>q.test(e)&&(!t||e>=t)&&(!n||e<=n)),Ce=100,we=10,Q=e=>{let[t=``,n=``]=e.split(`/`);return[t,n]},Te=()=>new Date().getFullYear(),Ee=()=>`${Te()-Ce}-01-01`,De=()=>`${Te()+we}-12-31`,$=()=>new Date().toISOString().slice(0,10),Oe=(e,t)=>q.test(e)?new Intl.DateTimeFormat(t||void 0,{month:`long`,timeZone:`UTC`,year:`numeric`}).format(new Date(`${e}T00:00:00.000Z`)):``,ke=e=>({value:e.dataset.value??``,label:e.dataset.label??e.textContent?.trim()??``,start:e.dataset.start??``,end:e.dataset.end??``,disabled:c({value:e.dataset.disabled})}),Ae=()=>{let e=null,t=``,n=``,r=null,i=[],a=``,o=``,c=``,f=``,m=!1,h=()=>{if(!e)throw Error(`Date picker has not been initialized.`);return e},g=()=>B.getCommittedSnapshot().props,_=()=>B.getCommittedSnapshot().context,v=()=>{let e=h().querySelector(`[data-ui-date-picker-trigger]`);if(!e)throw Error(`Date picker requires a trigger.`);return e},b=()=>{let e=h().querySelector(`[data-ui-date-picker-input]`);if(!e)throw Error(`Date picker requires an input.`);return e},x=()=>h().querySelector(`[data-ui-date-picker-toggle]`),S=()=>{let e=h().querySelector(`[data-ui-date-picker-popover]`);if(!e)throw Error(`Date picker requires a popover.`);return e},C=()=>h().querySelector(`[data-ui-date-picker-calendar]`),w=()=>h().querySelector(`[data-ui-date-picker-hidden-inputs]`),T=()=>h().querySelector(`[data-ui-date-picker-preset-inputs]`),E=()=>g().mode===`range`,D=()=>g().months||(E()?2:1),O=()=>{let e=Array.from(h().querySelectorAll(`[data-ui-date-picker-preset]`)).map(ke).filter(e=>e.value&&e.start&&e.end);return e.length?e:g().presets},se=e=>xe({value:e,format:g().format,range:E(),separator:g().rangeSeparator}),k=e=>{let t=O().find(t=>(E()?`${t.start}/${t.end}`:t.start)===e),n=O().find(e=>e.value===`custom`);return t?.value??(e&&n?`custom`:``)},A=e=>{let t=h().querySelector(`[data-ui-date-picker-calendar-heading]`);if(!t)return;let n=g();t.textContent=Oe(e||Q(_().selection.value||n.openTo||n.today||$())[0],n.locale)},j=()=>{let e=C();if(!e)return;let t=g(),n=_(),r=n.selection.pendingValue;customElements.get(`calendar-date`)&&(e.value=r),e.setAttribute(`value`,r),u({el:e,attr:`tentative`,present:E()&&!!r&&!J.test(r)}),e.setAttribute(`months`,String(D())),e.style.setProperty(`--ui-date-picker-month-columns`,String(D())),e.setAttribute(`min`,t.min||Ee()),e.setAttribute(`max`,t.max||De()),t.today?e.setAttribute(`today`,t.today):e.removeAttribute(`today`);let i=t.forceOpenTo?t.openTo:n.selection.value||t.openTo||t.today||$();e.setAttribute(`focused-date`,Q(i)[0]),t.locale?e.setAttribute(`locale`,t.locale):e.removeAttribute(`locale`),t.firstDayOfWeek>=0&&e.setAttribute(`first-day-of-week`,String(t.firstDayOfWeek));let a=!t.selectableHeader&&D()===1;u({el:e,attr:`data-inline-heading`,present:a,value:`true`}),u({el:e,attr:`data-hide-month-heading`,present:t.selectableHeader&&!E()||a,value:`true`}),u({el:e,attr:`data-fixed-weeks`,present:t.fixedWeeks,value:`true`}),u({el:e,attr:`show-outside-days`,present:t.showOutsideDays||t.fixedWeeks}),u({el:e,attr:`show-week-numbers`,present:t.showWeekNumbers})},M=()=>{let e=_().selection.pendingValue||_().selection.value;h().querySelectorAll(`[data-ui-date-picker-preset]`).forEach(t=>{let n=ke(t);u({el:t,attr:`data-selected`,present:(E()?`${n.start}/${n.end}`:n.start)===e,value:`true`}),u({el:t,attr:`data-disabled`,present:n.disabled??!1,value:`true`})})},ce=()=>{let e=w();if(!e)return;let t=g(),n=_().selection.value;if(!E()){a=y({container:e,currentKey:a,state:{name:t.name,values:n?[n]:[],required:t.required,form:t.form,marker:`data-ui-date-picker-hidden-input`}});return}let[r,i]=Q(n);if(t.startName||t.endName){let n=JSON.stringify({startName:t.startName,endName:t.endName,start:r,end:i,form:t.form});if(n===a)return;e.replaceChildren(),[[t.startName,r],[t.endName,i]].forEach(([n,r])=>{if(!n)return;let i=document.createElement(`input`);i.type=`hidden`,i.name=n,i.value=r??``,i.setAttribute(`data-ui-date-picker-hidden-input`,``),t.form&&i.setAttribute(`form`,t.form),e.append(i)}),a=n;return}a=y({container:e,currentKey:a,state:{name:t.name,values:n?[n]:[],required:t.required,form:t.form,marker:`data-ui-date-picker-hidden-input`}})},N=()=>{let e=T();if(!e)return;let t=g(),n=k(_().selection.value);o=y({container:e,currentKey:o,state:{name:t.presetName,values:n?[n]:[],form:t.form,marker:`data-ui-date-picker-preset-input`}})},P=()=>{let e=g(),r=_(),i=B.hasTag(`visible`),a=B.hasTag(`expanded`),o=v(),s=b(),l=S();o.id=t,l.id=n,l.dataset.state=a?`open`:`closed`,l.hidden=!i,o.dataset.state=a?`open`:`closed`,ie({el:o,state:e,value:`true`});let u=x()??o;u.setAttribute(`aria-haspopup`,`dialog`),u.setAttribute(`aria-expanded`,a?`true`:`false`),u.setAttribute(`aria-controls`,n),o instanceof HTMLButtonElement&&(o.disabled=e.disabled);let d=B.hasTag(`editing`)?r.input.value:se(r.selection.value);ae({input:s,state:{name:``,value:d,disabled:e.disabled,readonly:e.readonly,required:e.required&&e.mode===`single`,invalid:e.invalid||!r.input.valid}}),s.placeholder=V.effectivePlaceholder(),h().querySelectorAll(`[data-ui-date-picker-clear], [data-ui-date-picker-toggle]`).forEach(t=>{t.disabled=e.disabled}),f=d;let p=h().querySelector(`[data-ui-date-picker-live]`);p&&(p.textContent=c)},le=()=>{let e=h().querySelector(`[data-ui-date-picker-calendar-today]`),t=h().querySelector(`[data-ui-date-picker-today-day]`);if(!e||!t)return;let n=g().today||$(),r=q.test(n)?String(Number(n.slice(-2))):``;t.textContent=r,e.setAttribute(`aria-label`,r?`Go to today, ${n}`:`Go to today`)},ue=()=>{let e=g(),t=S();t.dataset.uiSurface=e.surface,t.dataset.uiElevation=e.elevation},F=()=>{s({el:h(),schema:z,key:`value`,value:_().selection.value}),P(),j(),A(),le(),ue(),ce(),N(),M(),B.hasTag(`visible`)&&r?.sync()},I=()=>{oe({container:w(),fallback:h(),marker:`data-ui-date-picker-hidden-input`}),l({el:h(),name:`ui:change`})},L=(e,t,n=``)=>{g().disabled||g().readonly||B.send({type:`SELECT`,value:e,source:t,preset:n})},R=e=>{let t=g(),n=_e({input:e,format:t.format,range:E(),separator:t.rangeSeparator});return n&&Se(n,t.min,t.max)?n:null},B=p({schema:z,hooks:de,createMachine:({props:e})=>fe({props:e,context:{selection:{value:e.value,pendingValue:e.value,previousValue:e.value,source:`props`},input:{value:``,valid:!0},preset:{value:e.preset}},effects:{prepareOpen:()=>{let e=S();e.hidden=!1,r?.open(),F()},finishOpen:()=>{m&&C()?.focus({preventScroll:!0}),m=!1,l({el:h(),name:`ui:open`})},prepareClose:F,finishClose:()=>{let e=S();r?.close(),e.hidden=!0,m&&v().focus({preventScroll:!0}),m=!1,F(),l({el:h(),name:`ui:close`})},syncInput:P,syncPending:()=>{P(),j(),M()},markInvalid:()=>{b().setCustomValidity(`Enter a date in ${g().format}`),P(),l({el:h(),name:`ui:invalid`})},commitSelection:()=>{b().setCustomValidity(``);let e=_();c=e.selection.value?E()?`Range selected`:`Date selected`:`Date cleared`,F(),I(),l({el:h(),name:e.selection.value?`ui:select`:`ui:clear`})},syncProps:F,syncPresets:()=>{M(),N()}}}),resolveTransitionElement:({name:e,root:t})=>e===`opening`||e===`closing`?t.querySelector(`[data-ui-date-picker-popover]`):e===`parsing`?t.querySelector(`[data-ui-date-picker-input]`):t}),V;return V={...B,get isOpen(){return B.hasTag(`expanded`)},get isEditing(){return B.hasTag(`editing`)},get value(){return B.getCommittedSnapshot().context.selection.value},get pendingValue(){return B.getCommittedSnapshot().context.selection.pendingValue},get preset(){return k(B.getCommittedSnapshot().context.selection.value)},get root(){return ne({inputs:[te({part:pe.parts.root,props:B.getCommittedSnapshot().props,className:B.getCommittedSnapshot().props.class}),{"data-ui-date-picker":``,":data-state":()=>V.isOpen?`open`:`closed`}]})},effectivePlaceholder(){let e=B.getCommittedSnapshot().props;if(e.placeholder)return e.placeholder;let t=ve(e.format);return e.mode===`range`?`${t}${e.rangeSeparator}${t}`:t},open(e){e?.preventDefault(),e instanceof KeyboardEvent&&(m=!0),B.send(`OPEN`)},close(e){e?.preventDefault(),e instanceof KeyboardEvent&&(m=!0),B.send(`CLOSE`)},toggle(e){e?.preventDefault(),B.send(`TOGGLE`)},select(e,t){t?.preventDefault(),Se(e,g().min,g().max)&&(E()?J.test(e):q.test(e))&&L(e,`input`)},selectPreset(e,t){if(t?.preventDefault(),g().disabled||g().readonly)return;let n=O().find(t=>t.value===e);if(!n||n.disabled)return;let r=E()?`${n.start}/${n.end}`:n.start;g().close===`confirm`?B.send({type:`PENDING`,value:r,source:`preset`,preset:e}):L(r,`preset`,e)},selectToday(e){if(e?.preventDefault(),g().disabled||g().readonly)return;let t=g().today||$(),n=E()?`${t}/${t}`:t;g().close===`confirm`?B.send({type:`PENDING`,value:n,source:`today`}):L(n,`today`)},clear(e){e?.preventDefault(),!(g().disabled||g().readonly)&&B.send(`CLEAR`)},cancel(e){e?.preventDefault(),B.send(`CANCEL`),B.send(`CLOSE`)},init(){e=this.$el,t=this.$id(`date-picker-trigger`),n=this.$id(`date-picker-popover`),B.connect(this.$el,this.snapshot),r=ee({reference:v,floating:S,position:()=>g().side,align:()=>g().align,gap:()=>g().gap,offset:()=>g().offset,matchReferenceWidth:!1});let a=v(),o=b(),s=S();d({target:a,event:`click`,cleanup:i,handler:e=>{let t=e.target;t instanceof Element&&t.closest(`[data-ui-date-picker-clear]`)?V.clear(e):V.toggle(e)}}),d({target:a,event:`keydown`,cleanup:i,handler:e=>{let t=e;(t.key===`ArrowDown`||t.key===`Enter`||t.key===` `)&&!V.isOpen?V.open(t):t.key===`Escape`&&V.isOpen&&V.close(t)}}),d({target:h(),event:`keydown`,cleanup:i,handler:e=>{let t=e;t.key===`Escape`&&V.isOpen&&V.close(t)}}),d({target:o,event:`input`,cleanup:i,handler:()=>{let e=o.selectionStart??o.value.length,t=(o.value.slice(0,e).match(/[0-9]/g)??[]).length,n=ye({input:o.value,format:g().format,separator:g().rangeSeparator});if(f.length-n.length!==1&&(n=be({input:n,format:g().format,range:E(),separator:g().rangeSeparator})),o.value!==n){o.value=n;let e=0,r=n.length;for(let i=0;i<n.length;i+=1)if(/[0-9]/.test(n[i]??``)&&(e+=1),e===t){for(r=i+1;r<n.length&&!/[0-9]/.test(n[r]??``);)r+=1;break}o.setSelectionRange(r,r)}f=n,B.send({type:`INPUT`,input:n});let r=R(n);r&&L(r,`input`)}}),d({target:o,event:`change`,cleanup:i,handler:()=>{let e=R(o.value);e?L(e,`input`):o.value.trim()?B.send({type:`PARSE`,input:o.value}):B.send(`CLEAR`)}}),d({target:s,event:`pointerdown`,cleanup:i,handler:e=>e.stopPropagation()}),d({target:s,event:`click`,cleanup:i,handler:e=>{let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-ui-date-picker-preset]`);n?V.selectPreset(n.dataset.value??``,e):t.closest(`[data-ui-date-picker-clear]`)?V.clear(e):t.closest(`[data-ui-date-picker-cancel]`)?V.cancel(e):t.closest(`[data-ui-date-picker-apply]`)?B.send(`APPLY`):t.closest(`[data-ui-date-picker-today]`)&&V.selectToday(e)}});let l=C();l&&(customElements.whenDefined(`calendar-date`).then(()=>{e&&j()}),d({target:l,event:`change`,cleanup:i,handler:()=>{let e=l.value;E()&&!J.test(e)?(c=`Start date selected`,B.send({type:`PENDING`,value:e,source:`calendar`})):g().close===`confirm`?B.send({type:`PENDING`,value:e,source:`calendar`}):L(e,`calendar`)}}),d({target:l,event:`focusday`,cleanup:i,handler:e=>{let t=e.detail;t instanceof Date&&A(t.toISOString().slice(0,10))}})),i.push(re({isEnabled:()=>V.isOpen,roots:()=>[h(),s],onDismiss:()=>V.close()}));let u=new MutationObserver(()=>B.send(`PRESETS_CHANGED`));u.observe(h(),{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`data-value`,`data-start`,`data-end`,`data-disabled`]}),i.push(()=>u.disconnect()),F()},destroy(){i.forEach(e=>e()),i=[],r?.destroy(),r=null,B.disconnect(),e=null}},V},je=m(`UiDatePicker`,Ae),Me=new WeakSet,Ne=e=>{Me.has(e)||(Me.add(e),t(e),ce(e),je(e))};export{Ae as n,Ne as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-BPZeXRC3.js.map
|