wimui 0.48.0 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/components/ai/ModelSelector/ModelSelector.cjs +1 -1
  2. package/dist/components/ai/ModelSelector/ModelSelector.js +1 -0
  3. package/dist/components/data-display/TreeView/TreeView.cjs +1 -1
  4. package/dist/components/data-display/TreeView/TreeView.js +2 -2
  5. package/dist/components/form/PhoneInput/PhoneInput.cjs +1 -1
  6. package/dist/components/form/PhoneInput/PhoneInput.js +93 -28
  7. package/dist/components/form/PhoneInput/phone-input.module.cjs +1 -1
  8. package/dist/components/form/PhoneInput/phone-input.module.js +6 -5
  9. package/dist/components/form/Select/useSelect.cjs +1 -1
  10. package/dist/components/form/Select/useSelect.js +3 -0
  11. package/dist/components/media/Lightbox/Lightbox.cjs +1 -1
  12. package/dist/components/media/Lightbox/Lightbox.js +1 -0
  13. package/dist/components/overlay/BottomSheet/BottomSheet.cjs +1 -1
  14. package/dist/components/overlay/BottomSheet/BottomSheet.js +54 -42
  15. package/dist/components/overlay/ContextMenu/ContextMenu.cjs +1 -1
  16. package/dist/components/overlay/ContextMenu/ContextMenu.js +31 -26
  17. package/dist/components/overlay/FocusTrap/FocusTrap.cjs +1 -1
  18. package/dist/components/overlay/FocusTrap/FocusTrap.js +10 -8
  19. package/dist/i18n/generated/keys.d.ts +1 -1
  20. package/dist/i18n/generated/resources.cjs +1 -1
  21. package/dist/i18n/generated/resources.js +6 -3
  22. package/dist/llms-full.txt +1 -1
  23. package/dist/llms.txt +1 -1
  24. package/dist/locales/en/components.json +2 -1
  25. package/dist/locales/ja/components.json +2 -1
  26. package/dist/locales/pt/components.json +2 -1
  27. package/dist/styles.css +1 -1
  28. package/dist/wimui.umd.css +1 -1
  29. package/dist/wimui.umd.js +3 -3
  30. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../layout/Transition/Transition.cjs"),n=require("../../../icon/check.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("./model-selector.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=e=>e>=1e6?`${(e/1e6).toFixed(e%1e6==0?0:1)}M`:e>=1e3?`${(e/1e3).toFixed(e%1e3==0?0:1)}K`:String(e),u=(e,t=`$`)=>`${t}${e}`,d=o.default.forwardRef(({models:e,value:d,defaultValue:f,onChange:p,size:m=`md`,disabled:h=!1,fullWidth:g=!1,showPricing:_=!0,showContext:v=!0,labels:y,className:b,...x},S)=>{let{placeholder:C=`Select a model`,contextLabel:w=`Context`,inputLabel:T=`In`,outputLabel:E=`Out`,perTokensLabel:D=`/1M`,triggerAriaLabel:O=`Select a model`}=y??{},k=d!==void 0,[A,j]=(0,o.useState)(f),M=k?d:A,N=e.find(e=>e.id===M),[P,F]=(0,o.useState)(!1),[I,L]=(0,o.useState)(-1),R=(0,o.useRef)(null),z=(0,o.useRef)(null),B=(0,o.useId)(),V=`${B}-listbox`,H=(0,o.useCallback)(e=>{R.current=e,typeof S==`function`?S(e):S&&(S.current=e)},[S]);(0,o.useEffect)(()=>{if(!P)return;let e=e=>{R.current&&!R.current.contains(e.target)&&F(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[P]);let U=e=>{e.disabled||(k||j(e.id),p?.(e.id,e),F(!1))},W=(t,n)=>{let r=t;for(let t=0;t<e.length;t++){if(!e[r]?.disabled)return r;r=(r+n+e.length)%e.length}return-1},G=t=>{let n=e.findIndex(e=>e.id===M);L(t??(n>=0?n:W(0,1))),F(!0)},K=t=>{L(n=>{let r=n;for(let n=0;n<e.length&&(r=(r+t+e.length)%e.length,e[r]?.disabled);n++);return r})},q=t=>{if(!h)switch(t.key){case`ArrowDown`:case`ArrowUp`:t.preventDefault(),P?K(t.key===`ArrowDown`?1:-1):G();break;case`Home`:case`End`:t.preventDefault(),t.key===`Home`?P?L(W(0,1)):G(W(0,1)):P?L(W(e.length-1,-1)):G(W(e.length-1,-1));break;case`Enter`:case` `:if(t.preventDefault(),!P)G();else{let t=e[I];t&&U(t)}break;case`Escape`:P&&(t.preventDefault(),F(!1));break;case`Tab`:F(!1)}};(0,o.useEffect)(()=>{P&&I>=0&&(z.current?.querySelectorAll(`[role="option"]`)?.[I])?.scrollIntoView({block:`nearest`})},[I,P]);let J=e=>{let t=[];if(v&&e.contextLength&&t.push((0,c.jsxs)(`span`,{className:a.default.meta,children:[w,` `,l(e.contextLength)]},`ctx`)),_&&e.pricing){let{input:n,output:r,currency:i}=e.pricing;n!==void 0&&t.push((0,c.jsxs)(`span`,{className:a.default.meta,children:[T,` `,u(n,i),D]},`in`)),r!==void 0&&t.push((0,c.jsxs)(`span`,{className:a.default.meta,children:[E,` `,u(r,i),D]},`out`))}return t.length===0?null:(0,c.jsx)(`span`,{className:a.default.metaRow,children:t})};return(0,c.jsxs)(`div`,{ref:H,className:(0,s.default)(`wim-model-selector`,a.default.root,a.default[m],g&&a.default.fullWidth,h&&a.default.disabled,b),...x,children:[(0,c.jsxs)(`button`,{type:`button`,role:`combobox`,className:a.default.trigger,"aria-haspopup":`listbox`,"aria-expanded":P,"aria-controls":P?V:void 0,"aria-activedescendant":P&&I>=0?`${B}-opt-${I}`:void 0,"aria-label":O,disabled:h,onClick:()=>{h||(P?F(!1):G())},onKeyDown:q,onKeyUp:e=>{e.key===` `&&e.preventDefault()},children:[(0,c.jsx)(`span`,{className:a.default.triggerLabel,children:N?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`span`,{className:a.default.triggerName,children:N.name}),N.badge&&(0,c.jsx)(`span`,{className:a.default.badge,children:N.badge})]}):(0,c.jsx)(`span`,{className:a.default.placeholder,children:C})}),(0,c.jsx)(i.Icon,{component:r.default,size:`sm`,className:(0,s.default)(a.default.chevron,P&&a.default.chevronOpen)})]}),(0,c.jsx)(t.Transition,{show:P,preset:`scale`,unmount:!0,className:a.default.dropdownWrapper,children:(0,c.jsx)(`ul`,{ref:z,id:V,role:`listbox`,"aria-label":O,className:a.default.dropdown,onMouseDown:e=>e.preventDefault(),children:e.map((e,t)=>{let r=e.id===M;return(0,c.jsxs)(`li`,{id:`${B}-opt-${t}`,role:`option`,"aria-selected":r,"aria-disabled":e.disabled||void 0,className:(0,s.default)(a.default.option,t===I&&a.default.active,e.disabled&&a.default.optionDisabled),onMouseEnter:()=>L(t),onClick:()=>U(e),children:[(0,c.jsx)(`span`,{className:a.default.check,"aria-hidden":`true`,children:r&&(0,c.jsx)(i.Icon,{component:n.default,size:`sm`})}),(0,c.jsxs)(`span`,{className:a.default.optionBody,children:[(0,c.jsxs)(`span`,{className:a.default.optionHeader,children:[(0,c.jsx)(`span`,{className:a.default.optionName,children:e.name}),e.badge&&(0,c.jsx)(`span`,{className:a.default.badge,children:e.badge})]}),e.description&&(0,c.jsx)(`span`,{className:a.default.description,children:e.description}),J(e)]})]},e.id)})})})]})});d.displayName=`ModelSelector`,exports.ModelSelector=d;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../layout/Transition/Transition.cjs"),n=require("../../../icon/check.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("./model-selector.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=e=>e>=1e6?`${(e/1e6).toFixed(e%1e6==0?0:1)}M`:e>=1e3?`${(e/1e3).toFixed(e%1e3==0?0:1)}K`:String(e),u=(e,t=`$`)=>`${t}${e}`,d=o.default.forwardRef(({models:e,value:d,defaultValue:f,onChange:p,size:m=`md`,disabled:h=!1,fullWidth:g=!1,showPricing:_=!0,showContext:v=!0,labels:y,className:b,...x},S)=>{let{placeholder:C=`Select a model`,contextLabel:w=`Context`,inputLabel:T=`In`,outputLabel:E=`Out`,perTokensLabel:D=`/1M`,triggerAriaLabel:O=`Select a model`}=y??{},k=d!==void 0,[A,j]=(0,o.useState)(f),M=k?d:A,N=e.find(e=>e.id===M),[P,F]=(0,o.useState)(!1),[I,L]=(0,o.useState)(-1),R=(0,o.useRef)(null),z=(0,o.useRef)(null),B=(0,o.useId)(),V=`${B}-listbox`,H=(0,o.useCallback)(e=>{R.current=e,typeof S==`function`?S(e):S&&(S.current=e)},[S]);(0,o.useEffect)(()=>{if(!P)return;let e=e=>{R.current&&!R.current.contains(e.target)&&F(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[P]);let U=e=>{e.disabled||(k||j(e.id),p?.(e.id,e),F(!1))},W=(t,n)=>{let r=t;for(let t=0;t<e.length;t++){if(!e[r]?.disabled)return r;r=(r+n+e.length)%e.length}return-1},G=t=>{let n=e.findIndex(e=>e.id===M);L(t??(n>=0?n:W(0,1))),F(!0)},K=t=>{L(n=>{let r=n;for(let n=0;n<e.length&&(r=(r+t+e.length)%e.length,e[r]?.disabled);n++);return r})},q=t=>{if(!h)switch(t.key){case`ArrowDown`:case`ArrowUp`:t.preventDefault(),P?K(t.key===`ArrowDown`?1:-1):G();break;case`Home`:case`End`:t.preventDefault(),t.key===`Home`?P?L(W(0,1)):G(W(0,1)):P?L(W(e.length-1,-1)):G(W(e.length-1,-1));break;case`Enter`:case` `:if(t.preventDefault(),!P)G();else{let t=e[I];t&&U(t)}break;case`Escape`:P&&(t.preventDefault(),F(!1));break;case`Tab`:F(!1)}};(0,o.useEffect)(()=>{P&&I>=0&&(z.current?.querySelectorAll(`[role="option"]`)?.[I])?.scrollIntoView({block:`nearest`})},[I,P]);let J=e=>{let t=[];if(v&&e.contextLength&&t.push((0,c.jsxs)(`span`,{className:a.default.meta,children:[w,` `,l(e.contextLength)]},`ctx`)),_&&e.pricing){let{input:n,output:r,currency:i}=e.pricing;n!==void 0&&t.push((0,c.jsxs)(`span`,{className:a.default.meta,children:[T,` `,u(n,i),D]},`in`)),r!==void 0&&t.push((0,c.jsxs)(`span`,{className:a.default.meta,children:[E,` `,u(r,i),D]},`out`))}return t.length===0?null:(0,c.jsx)(`span`,{className:a.default.metaRow,children:t})};return(0,c.jsxs)(`div`,{ref:H,className:(0,s.default)(`wim-model-selector`,a.default.root,a.default[m],g&&a.default.fullWidth,h&&a.default.disabled,b),...x,children:[(0,c.jsxs)(`button`,{type:`button`,role:`combobox`,className:a.default.trigger,"aria-haspopup":`listbox`,"aria-expanded":P,"aria-controls":P?V:void 0,"aria-activedescendant":P&&I>=0?`${B}-opt-${I}`:void 0,"aria-label":O,disabled:h,onClick:()=>{h||(P?F(!1):G())},onKeyDown:q,onKeyUp:e=>{e.key===` `&&e.preventDefault()},children:[(0,c.jsx)(`span`,{className:a.default.triggerLabel,children:N?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`span`,{className:a.default.triggerName,children:N.name}),N.badge&&(0,c.jsx)(`span`,{className:a.default.badge,children:N.badge})]}):(0,c.jsx)(`span`,{className:a.default.placeholder,children:C})}),(0,c.jsx)(i.Icon,{component:r.default,size:`sm`,className:(0,s.default)(a.default.chevron,P&&a.default.chevronOpen)})]}),(0,c.jsx)(t.Transition,{show:P,preset:`scale`,unmount:!0,className:a.default.dropdownWrapper,children:(0,c.jsx)(`ul`,{ref:z,id:V,role:`listbox`,"aria-label":O,tabIndex:-1,className:a.default.dropdown,onMouseDown:e=>e.preventDefault(),children:e.map((e,t)=>{let r=e.id===M;return(0,c.jsxs)(`li`,{id:`${B}-opt-${t}`,role:`option`,"aria-selected":r,"aria-disabled":e.disabled||void 0,className:(0,s.default)(a.default.option,t===I&&a.default.active,e.disabled&&a.default.optionDisabled),onMouseEnter:()=>L(t),onClick:()=>U(e),children:[(0,c.jsx)(`span`,{className:a.default.check,"aria-hidden":`true`,children:r&&(0,c.jsx)(i.Icon,{component:n.default,size:`sm`})}),(0,c.jsxs)(`span`,{className:a.default.optionBody,children:[(0,c.jsxs)(`span`,{className:a.default.optionHeader,children:[(0,c.jsx)(`span`,{className:a.default.optionName,children:e.name}),e.badge&&(0,c.jsx)(`span`,{className:a.default.badge,children:e.badge})]}),e.description&&(0,c.jsx)(`span`,{className:a.default.description,children:e.description}),J(e)]})]},e.id)})})})]})});d.displayName=`ModelSelector`,exports.ModelSelector=d;
@@ -146,6 +146,7 @@ var h = (e) => e >= 1e6 ? `${(e / 1e6).toFixed(e % 1e6 == 0 ? 0 : 1)}M` : e >= 1
146
146
  id: q,
147
147
  role: "listbox",
148
148
  "aria-label": P,
149
+ tabIndex: -1,
149
150
  className: i.dropdown,
150
151
  onMouseDown: (e) => e.preventDefault(),
151
152
  children: a.map((e, n) => {
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-right.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("../VirtualList/VirtualList.cjs"),o=require("./tree-view.module.cjs"),s=require("./useTreeViewItemExpansion.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=(0,c.createContext)(null),f=()=>{let e=(0,c.useContext)(d);if(!e)throw Error(`TreeView components must be used within a TreeView`);return e},p=40,m=100;function h(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function g(e,t,n,r=0){let i=[];for(let a of e){let e=h(a.label),o=!n||e.toLowerCase().includes(n.toLowerCase()),s=n&&a.children?_(a.children,n):!1;if(n&&!o&&!s)continue;i.push({...a,depth:r,hasChildren:!!(a.children&&a.children.length>0)});let c=t.includes(a.value)||!!n&&s;a.children&&a.children.length>0&&c&&i.push(...g(a.children,t,n,r+1))}return i}function _(e,t){return e.some(e=>h(e.label).toLowerCase().includes(t.toLowerCase())||(e.children?_(e.children,t):!1))}function v(e,t){for(let n of e){if(n.value===t){let e=[],t=n=>{for(let r of n)e.push(r.value),r.children&&t(r.children)};return n.children&&t(n.children),e}if(n.children){let e=v(n.children,t);if(e!==null)return e}}return null}function y(e,t,n=[]){for(let r of e){if(r.value===t)return n;if(r.children){let e=y(r.children,t,[...n,r.value]);if(e!==null)return e}}return null}function b(e,t){let n=[],r=new Set(t);function i(e){if(!e.children?.length)return r.has(e.value)?`checked`:`unchecked`;let t=e.children.map(i),a=t.every(e=>e===`checked`),o=t.some(e=>e!==`unchecked`);return a?(r.add(e.value),`checked`):o?(n.push(e.value),`indeterminate`):`unchecked`}for(let t of e)i(t);return{indeterminateValues:n,effectiveCheckedSet:r}}var x=({children:e,nodes:s,className:f,multiSelect:_=!1,checkable:x=!1,checkStrategy:S=`cascade`,searchable:C=!1,defaultExpandedValues:w=[],defaultSelectedValues:T=[],defaultCheckedValues:ee=[],onCheckedChange:E,onSelectedChange:D,width:O,virtualThreshold:k=m,labels:A={},labelId:j,styles:M})=>{let{t:N}=t.useWimTranslation(`components`),{searchPlaceholder:P,searchAriaLabel:F=N(`treeview.search_aria`),expandLabel:I=e=>N(`treeview.expand`,{label:e}),collapseLabel:L=e=>N(`treeview.collapse`,{label:e})}=A,[R,z]=(0,c.useState)(w),[B,V]=(0,c.useState)(T),[H,U]=(0,c.useState)(ee),[W,te]=(0,c.useState)(``),[G,K]=(0,c.useState)(T[0]||null),q=c.default.useRef(null),{indeterminateValues:J,effectiveCheckedSet:Y}=(0,c.useMemo)(()=>!s||S!==`cascade`?{indeterminateValues:[],effectiveCheckedSet:new Set(H)}:b(s,new Set(H)),[s,S,H]),X=(0,c.useCallback)(e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),Z=(0,c.useCallback)(e=>{if(_)V(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return D?.(n),n});else{let t=[e];V(t),D?.(t)}},[_,D]),Q=(0,c.useCallback)(e=>{U(t=>{let n;if(!s)return n=t.includes(e)?t.filter(t=>t!==e):[...t,e],E?.(n),n;if(S===`cascade`){let{indeterminateValues:r}=b(s,new Set(t)),i=t.includes(e)&&!r.includes(e),a=[e,...v(s,e)??[]];n=i?t.filter(e=>!a.includes(e)):[...t,...a.filter(e=>!t.includes(e))];let{indeterminateValues:o,effectiveCheckedSet:c}=b(s,new Set(n));E?.([...c].filter(e=>!o.includes(e)))}else{if(t.includes(e))n=t.filter(t=>t!==e);else{let r=y(s,e)??[],i=v(s,e)??[],a=new Set([...r,...i]);n=[...t.filter(e=>!a.has(e)),e]}E?.(n)}return n})},[S,s,E]),ne=(0,c.useMemo)(()=>({expandedValues:R,selectedValues:B,checkedValues:H,indeterminateValues:J,focusedValue:G,toggleExpand:X,select:Z,toggleCheck:Q,setFocusedValue:K,containerRef:q,multiSelect:_,checkable:x,checkStrategy:S,searchQuery:W,labels:{expandLabel:I,collapseLabel:L}}),[R,B,H,J,G,X,Z,Q,_,x,S,W,I,L]),$=(0,c.useMemo)(()=>s?g(s,R,W):[],[s,R,W]),re=!!s&&$.length>=k,ie=(0,c.useCallback)((e,t,n)=>{switch(e.key){case`Enter`:case` `:e.preventDefault(),Z(t.value),x&&Q(t.value);break;case`ArrowDown`:e.preventDefault(),n<$.length-1&&K($[n+1].value);break;case`ArrowUp`:e.preventDefault(),n>0&&K($[n-1].value);break;case`Home`:e.preventDefault(),$.length>0&&K($[0].value);break;case`End`:e.preventDefault(),$.length>0&&K($[$.length-1].value);break;case`ArrowRight`:e.preventDefault(),t.hasChildren&&!R.includes(t.value)?X(t.value):t.hasChildren&&n<$.length-1&&K($[n+1].value);break;case`ArrowLeft`:if(e.preventDefault(),t.hasChildren&&R.includes(t.value))X(t.value);else for(let e=n-1;e>=0;e--)if($[e].depth<t.depth){K($[e].value);break}}},[$,R,Z,x,Q,X]),ae=(0,c.useCallback)((e,t)=>{let a=B.includes(e.value),s=Y.has(e.value),c=J.includes(e.value),d=R.includes(e.value),f=G===e.value,p=h(e.label);return(0,u.jsx)(`div`,{className:(0,l.default)(o.default.item,a&&o.default.selected,e.disabled&&o.default.disabled,M?.item),role:`treeitem`,"aria-expanded":e.hasChildren?d:void 0,"aria-selected":a,"aria-disabled":e.disabled,"aria-setsize":$.length,"aria-posinset":t+1,"aria-level":e.depth+1,"data-value":e.value,tabIndex:f?0:-1,onClick:t=>{t.stopPropagation(),K(e.value),e.disabled||(_&&x?Q(e.value):Z(e.value))},onKeyDown:n=>{n.stopPropagation(),ie(n,e,t)},onFocus:t=>{t.stopPropagation(),K(e.value)},style:{paddingLeft:e.depth*20},children:(0,u.jsx)(i.BaseListItem,{className:(0,l.default)(o.default.labelContainer,M?.labelContainer),active:a,disabled:e.disabled,icon:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.iconWrapper,M?.iconWrapper),children:[e.hasChildren?(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,d&&o.default.expanded,M?.expandBtn),onClick:t=>{t.stopPropagation(),e.disabled||X(e.value)},disabled:e.disabled,"aria-label":d?L(p):I(p),tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}):(0,u.jsx)(`span`,{className:o.default.spacer}),x&&(0,u.jsx)(`input`,{type:`checkbox`,className:(0,l.default)(o.default.checkbox,M?.checkbox),checked:s&&!c,ref:e=>{e&&(e.indeterminate=c)},onChange:t=>{t.stopPropagation(),e.disabled||Q(e.value)},disabled:e.disabled,onClick:e=>e.stopPropagation(),"aria-label":p,tabIndex:-1}),e.icon&&(0,u.jsx)(`span`,{className:(0,l.default)(o.default.icon,M?.icon),children:e.icon})]}),children:e.label})},e.value)},[B,Y,J,R,G,$.length,_,x,Z,Q,X,ie,I,L,M]);return(0,u.jsx)(d.Provider,{value:ne,children:(0,u.jsxs)(`div`,{ref:q,"data-testid":`tree-view-root`,className:(0,l.default)(`wim-tree-view`,o.default.root,!!s&&o.default.dataDriven,f,M?.root),role:`tree`,"aria-label":A.treeAriaLabel,"aria-labelledby":A.treeAriaLabel?void 0:j,style:{width:O,maxWidth:`100%`},tabIndex:G?-1:0,onFocus:e=>{e.target===q.current&&(s?G?K(G):$.length>0&&K($[0].value):G?(q.current?.querySelector(`[role="treeitem"][data-value="${G}"]`))?.focus():(q.current?.querySelector(`[role="treeitem"]`))?.focus())},children:[C&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.search,M?.search),children:(0,u.jsx)(`input`,{type:`text`,"data-testid":`tree-view-search-input`,className:(0,l.default)(o.default.searchInput,M?.searchInput),placeholder:P,value:W,onChange:e=>te(e.target.value),"aria-label":F})}),s?re?(0,u.jsx)(a.VirtualList,{items:$,itemHeight:p,height:400,renderItem:ae,itemRole:`none`,role:`presentation`}):$.map((e,t)=>ae(e,t)):e]})})},S=({value:e,label:t,icon:a,children:d,className:p,disabled:m=!1})=>{let{expandedValues:g,selectedValues:_,checkedValues:v,indeterminateValues:y,focusedValue:b,toggleExpand:x,select:C,toggleCheck:w,setFocusedValue:T,containerRef:ee,multiSelect:E,checkable:D,searchQuery:O}=f(),k=c.default.useId(),A=`wim-tree-view-item-checkbox-${k}`,j=`wim-tree-view-item-label-${k}`,M=h(t),N=!O||M.toLowerCase().includes(O.toLowerCase()),P=c.default.useMemo(()=>{if(!O||!d)return!1;let e=t=>c.default.Children.toArray(t).some(t=>{if(!c.default.isValidElement(t)||t.type!==S)return!1;let n=t.props,r=n.label;return h(r).toLowerCase().includes(O.toLowerCase())?!0:n.children?e(n.children):!1});return e(d)},[d,O]),F=!!O&&P,I=g.includes(e)||F,L=_.includes(e),R=v.includes(e),z=y.includes(e),B=!!c.default.Children.count(d),{shouldRender:V,isVisualExpanded:H,handleTransitionEnd:U}=s.useTreeViewItemExpansion(I);return O&&!N&&!P?null:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.item,L&&o.default.selected,m&&o.default.disabled,p),role:`treeitem`,"aria-expanded":B?I:void 0,"aria-selected":L,"aria-disabled":m,"data-value":e,onClick:t=>{t.stopPropagation(),T(e),m||(E&&D?w(e):C(e))},onKeyDown:t=>{if(m)return;t.stopPropagation();let n=Array.from(ee.current?.querySelectorAll(`[role="treeitem"]:not([aria-disabled="true"])`)||[]),r=n.indexOf(t.currentTarget);switch(t.key){case`Enter`:case` `:t.preventDefault(),C(e),D&&w(e);break;case`ArrowDown`:t.preventDefault(),r<n.length-1&&n[r+1].focus();break;case`ArrowUp`:t.preventDefault(),r>0&&n[r-1].focus();break;case`Home`:t.preventDefault(),n.length>0&&n[0].focus();break;case`End`:t.preventDefault(),n.length>0&&n[n.length-1].focus();break;case`ArrowRight`:B&&(I?(t.preventDefault(),r<n.length-1&&n[r+1].focus()):(t.preventDefault(),x(e)));break;case`ArrowLeft`:if(B&&I)t.preventDefault(),x(e);else{t.preventDefault();let e=t.currentTarget.parentElement?.closest(`[role="treeitem"]`);e&&e.focus()}}},onFocus:t=>{t.stopPropagation(),T(e)},tabIndex:b===e?0:-1,children:[(0,u.jsx)(i.BaseListItem,{id:j,className:o.default.labelContainer,active:L,disabled:m,icon:(0,u.jsxs)(`div`,{className:o.default.iconWrapper,children:[B&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,I&&o.default.expanded),onClick:t=>{t.stopPropagation(),!m&&B&&x(e)},disabled:m,"aria-label":I?`Collapse ${typeof t==`string`?t:``}`:`Expand ${typeof t==`string`?t:``}`,tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}),!B&&(0,u.jsx)(`span`,{className:o.default.spacer}),D&&(0,u.jsx)(`input`,{id:A,type:`checkbox`,className:o.default.checkbox,checked:R&&!z,ref:e=>{e&&(e.indeterminate=z)},onChange:t=>{t.stopPropagation(),m||w(e)},disabled:m,onClick:e=>e.stopPropagation(),"aria-labelledby":j,tabIndex:-1}),a&&(0,u.jsx)(`span`,{className:o.default.icon,children:a})]}),children:t}),B&&V&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.children,H&&o.default.expanded),onTransitionEnd:U,style:{gridTemplateRows:H?`1fr`:`0fr`},children:(0,u.jsx)(`div`,{className:o.default.childrenInner,role:`group`,children:d})})]})};x.displayName=`TreeView`,S.displayName=`TreeView.Item`;var C=x;C.Item=S,exports.TreeView=C,exports.default=C,exports.TreeViewItem=S;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-right.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("../VirtualList/VirtualList.cjs"),o=require("./tree-view.module.cjs"),s=require("./useTreeViewItemExpansion.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=(0,c.createContext)(null),f=()=>{let e=(0,c.useContext)(d);if(!e)throw Error(`TreeView components must be used within a TreeView`);return e},p=40,m=100;function h(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function g(e,t,n,r=0){let i=[];for(let a of e){let e=h(a.label),o=!n||e.toLowerCase().includes(n.toLowerCase()),s=n&&a.children?_(a.children,n):!1;if(n&&!o&&!s)continue;i.push({...a,depth:r,hasChildren:!!(a.children&&a.children.length>0)});let c=t.includes(a.value)||!!n&&s;a.children&&a.children.length>0&&c&&i.push(...g(a.children,t,n,r+1))}return i}function _(e,t){return e.some(e=>h(e.label).toLowerCase().includes(t.toLowerCase())||(e.children?_(e.children,t):!1))}function v(e,t){for(let n of e){if(n.value===t){let e=[],t=n=>{for(let r of n)e.push(r.value),r.children&&t(r.children)};return n.children&&t(n.children),e}if(n.children){let e=v(n.children,t);if(e!==null)return e}}return null}function y(e,t,n=[]){for(let r of e){if(r.value===t)return n;if(r.children){let e=y(r.children,t,[...n,r.value]);if(e!==null)return e}}return null}function b(e,t){let n=[],r=new Set(t);function i(e){if(!e.children?.length)return r.has(e.value)?`checked`:`unchecked`;let t=e.children.map(i),a=t.every(e=>e===`checked`),o=t.some(e=>e!==`unchecked`);return a?(r.add(e.value),`checked`):o?(n.push(e.value),`indeterminate`):`unchecked`}for(let t of e)i(t);return{indeterminateValues:n,effectiveCheckedSet:r}}var x=({children:e,nodes:s,className:f,multiSelect:_=!1,checkable:x=!1,checkStrategy:S=`cascade`,searchable:C=!1,defaultExpandedValues:w=[],defaultSelectedValues:T=[],defaultCheckedValues:ee=[],onCheckedChange:E,onSelectedChange:D,width:O,virtualThreshold:k=m,labels:A={},labelId:j,styles:M})=>{let{t:N}=t.useWimTranslation(`components`),{searchPlaceholder:P,searchAriaLabel:F=N(`treeview.search_aria`),expandLabel:I=e=>N(`treeview.expand`,{label:e}),collapseLabel:L=e=>N(`treeview.collapse`,{label:e})}=A,[R,z]=(0,c.useState)(w),[B,V]=(0,c.useState)(T),[H,U]=(0,c.useState)(ee),[W,te]=(0,c.useState)(``),[G,K]=(0,c.useState)(T[0]||null),q=c.default.useRef(null),{indeterminateValues:J,effectiveCheckedSet:Y}=(0,c.useMemo)(()=>!s||S!==`cascade`?{indeterminateValues:[],effectiveCheckedSet:new Set(H)}:b(s,new Set(H)),[s,S,H]),X=(0,c.useCallback)(e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),Z=(0,c.useCallback)(e=>{if(_)V(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return D?.(n),n});else{let t=[e];V(t),D?.(t)}},[_,D]),Q=(0,c.useCallback)(e=>{U(t=>{let n;if(!s)return n=t.includes(e)?t.filter(t=>t!==e):[...t,e],E?.(n),n;if(S===`cascade`){let{indeterminateValues:r}=b(s,new Set(t)),i=t.includes(e)&&!r.includes(e),a=[e,...v(s,e)??[]];n=i?t.filter(e=>!a.includes(e)):[...t,...a.filter(e=>!t.includes(e))];let{indeterminateValues:o,effectiveCheckedSet:c}=b(s,new Set(n));E?.([...c].filter(e=>!o.includes(e)))}else{if(t.includes(e))n=t.filter(t=>t!==e);else{let r=y(s,e)??[],i=v(s,e)??[],a=new Set([...r,...i]);n=[...t.filter(e=>!a.has(e)),e]}E?.(n)}return n})},[S,s,E]),ne=(0,c.useMemo)(()=>({expandedValues:R,selectedValues:B,checkedValues:H,indeterminateValues:J,focusedValue:G,toggleExpand:X,select:Z,toggleCheck:Q,setFocusedValue:K,containerRef:q,multiSelect:_,checkable:x,checkStrategy:S,searchQuery:W,labels:{expandLabel:I,collapseLabel:L}}),[R,B,H,J,G,X,Z,Q,_,x,S,W,I,L]),$=(0,c.useMemo)(()=>s?g(s,R,W):[],[s,R,W]),re=!!s&&$.length>=k,ie=(0,c.useCallback)((e,t,n)=>{switch(e.key){case`Enter`:case` `:e.preventDefault(),Z(t.value),x&&Q(t.value);break;case`ArrowDown`:e.preventDefault(),n<$.length-1&&K($[n+1].value);break;case`ArrowUp`:e.preventDefault(),n>0&&K($[n-1].value);break;case`Home`:e.preventDefault(),$.length>0&&K($[0].value);break;case`End`:e.preventDefault(),$.length>0&&K($[$.length-1].value);break;case`ArrowRight`:e.preventDefault(),t.hasChildren&&!R.includes(t.value)?X(t.value):t.hasChildren&&n<$.length-1&&K($[n+1].value);break;case`ArrowLeft`:if(e.preventDefault(),t.hasChildren&&R.includes(t.value))X(t.value);else for(let e=n-1;e>=0;e--)if($[e].depth<t.depth){K($[e].value);break}}},[$,R,Z,x,Q,X]),ae=(0,c.useCallback)((e,t)=>{let a=B.includes(e.value),s=Y.has(e.value),c=J.includes(e.value),d=R.includes(e.value),f=G===e.value,p=h(e.label);return(0,u.jsx)(`div`,{className:(0,l.default)(o.default.item,a&&o.default.selected,e.disabled&&o.default.disabled,M?.item),role:`treeitem`,"aria-expanded":e.hasChildren?d:void 0,"aria-selected":a,"aria-disabled":e.disabled,"aria-setsize":$.length,"aria-posinset":t+1,"aria-level":e.depth+1,"data-value":e.value,tabIndex:f?0:-1,onClick:t=>{t.stopPropagation(),K(e.value),e.disabled||(_&&x?Q(e.value):Z(e.value))},onKeyDown:n=>{n.key!==`Tab`&&n.stopPropagation(),ie(n,e,t)},onFocus:t=>{t.stopPropagation(),K(e.value)},style:{paddingLeft:e.depth*20},children:(0,u.jsx)(i.BaseListItem,{className:(0,l.default)(o.default.labelContainer,M?.labelContainer),active:a,disabled:e.disabled,icon:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.iconWrapper,M?.iconWrapper),children:[e.hasChildren?(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,d&&o.default.expanded,M?.expandBtn),onClick:t=>{t.stopPropagation(),e.disabled||X(e.value)},disabled:e.disabled,"aria-label":d?L(p):I(p),tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}):(0,u.jsx)(`span`,{className:o.default.spacer}),x&&(0,u.jsx)(`input`,{type:`checkbox`,className:(0,l.default)(o.default.checkbox,M?.checkbox),checked:s&&!c,ref:e=>{e&&(e.indeterminate=c)},onChange:t=>{t.stopPropagation(),e.disabled||Q(e.value)},disabled:e.disabled,onClick:e=>e.stopPropagation(),"aria-label":p,tabIndex:-1}),e.icon&&(0,u.jsx)(`span`,{className:(0,l.default)(o.default.icon,M?.icon),children:e.icon})]}),children:e.label})},e.value)},[B,Y,J,R,G,$.length,_,x,Z,Q,X,ie,I,L,M]);return(0,u.jsx)(d.Provider,{value:ne,children:(0,u.jsxs)(`div`,{ref:q,"data-testid":`tree-view-root`,className:(0,l.default)(`wim-tree-view`,o.default.root,!!s&&o.default.dataDriven,f,M?.root),role:`tree`,"aria-label":A.treeAriaLabel,"aria-labelledby":A.treeAriaLabel?void 0:j,style:{width:O,maxWidth:`100%`},tabIndex:G?-1:0,onFocus:e=>{e.target===q.current&&(s?G?K(G):$.length>0&&K($[0].value):G?(q.current?.querySelector(`[role="treeitem"][data-value="${G}"]`))?.focus():(q.current?.querySelector(`[role="treeitem"]`))?.focus())},children:[C&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.search,M?.search),children:(0,u.jsx)(`input`,{type:`text`,"data-testid":`tree-view-search-input`,className:(0,l.default)(o.default.searchInput,M?.searchInput),placeholder:P,value:W,onChange:e=>te(e.target.value),"aria-label":F})}),s?re?(0,u.jsx)(a.VirtualList,{items:$,itemHeight:p,height:400,renderItem:ae,itemRole:`none`,role:`presentation`}):$.map((e,t)=>ae(e,t)):e]})})},S=({value:e,label:t,icon:a,children:d,className:p,disabled:m=!1})=>{let{expandedValues:g,selectedValues:_,checkedValues:v,indeterminateValues:y,focusedValue:b,toggleExpand:x,select:C,toggleCheck:w,setFocusedValue:T,containerRef:ee,multiSelect:E,checkable:D,searchQuery:O}=f(),k=c.default.useId(),A=`wim-tree-view-item-checkbox-${k}`,j=`wim-tree-view-item-label-${k}`,M=h(t),N=!O||M.toLowerCase().includes(O.toLowerCase()),P=c.default.useMemo(()=>{if(!O||!d)return!1;let e=t=>c.default.Children.toArray(t).some(t=>{if(!c.default.isValidElement(t)||t.type!==S)return!1;let n=t.props,r=n.label;return h(r).toLowerCase().includes(O.toLowerCase())?!0:n.children?e(n.children):!1});return e(d)},[d,O]),F=!!O&&P,I=g.includes(e)||F,L=_.includes(e),R=v.includes(e),z=y.includes(e),B=!!c.default.Children.count(d),{shouldRender:V,isVisualExpanded:H,handleTransitionEnd:U}=s.useTreeViewItemExpansion(I);return O&&!N&&!P?null:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.item,L&&o.default.selected,m&&o.default.disabled,p),role:`treeitem`,"aria-expanded":B?I:void 0,"aria-selected":L,"aria-disabled":m,"data-value":e,onClick:t=>{t.stopPropagation(),T(e),m||(E&&D?w(e):C(e))},onKeyDown:t=>{if(m)return;t.key!==`Tab`&&t.stopPropagation();let n=Array.from(ee.current?.querySelectorAll(`[role="treeitem"]:not([aria-disabled="true"])`)||[]),r=n.indexOf(t.currentTarget);switch(t.key){case`Enter`:case` `:t.preventDefault(),C(e),D&&w(e);break;case`ArrowDown`:t.preventDefault(),r<n.length-1&&n[r+1].focus();break;case`ArrowUp`:t.preventDefault(),r>0&&n[r-1].focus();break;case`Home`:t.preventDefault(),n.length>0&&n[0].focus();break;case`End`:t.preventDefault(),n.length>0&&n[n.length-1].focus();break;case`ArrowRight`:B&&(I?(t.preventDefault(),r<n.length-1&&n[r+1].focus()):(t.preventDefault(),x(e)));break;case`ArrowLeft`:if(B&&I)t.preventDefault(),x(e);else{t.preventDefault();let e=t.currentTarget.parentElement?.closest(`[role="treeitem"]`);e&&e.focus()}}},onFocus:t=>{t.stopPropagation(),T(e)},tabIndex:b===e?0:-1,children:[(0,u.jsx)(i.BaseListItem,{id:j,className:o.default.labelContainer,active:L,disabled:m,icon:(0,u.jsxs)(`div`,{className:o.default.iconWrapper,children:[B&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,I&&o.default.expanded),onClick:t=>{t.stopPropagation(),!m&&B&&x(e)},disabled:m,"aria-label":I?`Collapse ${typeof t==`string`?t:``}`:`Expand ${typeof t==`string`?t:``}`,tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}),!B&&(0,u.jsx)(`span`,{className:o.default.spacer}),D&&(0,u.jsx)(`input`,{id:A,type:`checkbox`,className:o.default.checkbox,checked:R&&!z,ref:e=>{e&&(e.indeterminate=z)},onChange:t=>{t.stopPropagation(),m||w(e)},disabled:m,onClick:e=>e.stopPropagation(),"aria-labelledby":j,tabIndex:-1}),a&&(0,u.jsx)(`span`,{className:o.default.icon,children:a})]}),children:t}),B&&V&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.children,H&&o.default.expanded),onTransitionEnd:U,style:{gridTemplateRows:H?`1fr`:`0fr`},children:(0,u.jsx)(`div`,{className:o.default.childrenInner,role:`group`,children:d})})]})};x.displayName=`TreeView`,S.displayName=`TreeView.Item`;var C=x;C.Item=S,exports.TreeView=C,exports.default=C,exports.TreeViewItem=S;
@@ -205,7 +205,7 @@ var T = ({ children: o, nodes: c, className: u, multiSelect: _ = !1, checkable:
205
205
  t.stopPropagation(), q(e.value), e.disabled || (_ && x ? Q(e.value) : Z(e.value));
206
206
  },
207
207
  onKeyDown: (t) => {
208
- t.stopPropagation(), ce(t, e, i);
208
+ t.key !== "Tab" && t.stopPropagation(), ce(t, e, i);
209
209
  },
210
210
  onFocus: (t) => {
211
211
  t.stopPropagation(), q(e.value);
@@ -333,7 +333,7 @@ var T = ({ children: o, nodes: c, className: u, multiSelect: _ = !1, checkable:
333
333
  },
334
334
  onKeyDown: (t) => {
335
335
  if (d) return;
336
- t.stopPropagation();
336
+ t.key !== "Tab" && t.stopPropagation();
337
337
  let n = Array.from(T.current?.querySelectorAll("[role=\"treeitem\"]:not([aria-disabled=\"true\"])") || []), r = n.indexOf(t.currentTarget);
338
338
  switch (t.key) {
339
339
  case "Enter":
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("./phone-input.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=[{code:`US`,name:`United States`,dialCode:`1`,flag:`🇺🇸`},{code:`JP`,name:`Japan`,dialCode:`81`,flag:`🇯🇵`},{code:`GB`,name:`United Kingdom`,dialCode:`44`,flag:`🇬🇧`},{code:`AU`,name:`Australia`,dialCode:`61`,flag:`🇦🇺`},{code:`DE`,name:`Germany`,dialCode:`49`,flag:`🇩🇪`},{code:`FR`,name:`France`,dialCode:`33`,flag:`🇫🇷`},{code:`CN`,name:`China`,dialCode:`86`,flag:`🇨🇳`},{code:`KR`,name:`South Korea`,dialCode:`82`,flag:`🇰🇷`},{code:`IN`,name:`India`,dialCode:`91`,flag:`🇮🇳`},{code:`BR`,name:`Brazil`,dialCode:`55`,flag:`🇧🇷`}],d=(0,s.forwardRef)(({value:e=``,onChange:d,countryCode:f=`US`,onCountryChange:p,placeholder:m=`000-0000-0000`,disabled:h=!1,error:g,required:_=!1,label:v,layout:y=`vertical`,className:b,fullWidth:x=!1,...S},C)=>{let w=`wim-phone-input-${(0,s.useId)()}`,T=v?`${w}-label`:void 0,{t:E}=t.useWimTranslation(`form`),D=v?void 0:E(`phone.select_country`),O=g?`${w}-error`:void 0,[k,A]=(0,s.useState)(!1),j=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{j.current&&!j.current.contains(e.target)&&A(!1)};return k&&document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[k]);let M=u.find(e=>e.code===f)??u[0],N=e=>{d?.(e.target.value)};return(0,l.jsx)(a.FieldTemplate,{label:v,labelId:T,htmlFor:w,required:_,error:g,errorId:O,layout:y,className:b,children:(0,l.jsxs)(`div`,{ref:j,className:(0,c.default)(`wim-phone-input`,o.default.root,x&&o.default.fullWidth,h&&o.default.disabled,g&&o.default.danger),"data-testid":`phone-input-root`,...S,children:[(0,l.jsxs)(`div`,{className:o.default.countryWrapper,children:[(0,l.jsxs)(`button`,{type:`button`,className:o.default.countryTrigger,onClick:()=>!h&&A(!k),disabled:h,"aria-haspopup":`listbox`,"aria-expanded":k,"aria-labelledby":T,"aria-label":D,children:[(0,l.jsx)(`span`,{"aria-hidden":`true`,style:{fontSize:`1.2em`},children:M.flag}),(0,l.jsxs)(`span`,{children:[`+`,M.dialCode]}),(0,l.jsx)(i.Icon,{component:r.default,size:`sm`,className:(0,c.default)(o.default.chevron,k&&o.default.chevronOpen)})]}),(0,l.jsx)(n.Transition,{show:k,preset:`fade`,className:o.default.dropdown,children:(0,l.jsx)(`ul`,{className:o.default.countryList,role:`listbox`,"aria-labelledby":v?T:void 0,"aria-label":D,children:u.map(e=>(0,l.jsxs)(`li`,{className:(0,c.default)(o.default.countryOption,M.code===e.code&&o.default.selected),onClick:()=>{p?.(e.code),A(!1)},onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),p?.(e.code),A(!1))},tabIndex:0,role:`option`,"aria-selected":M.code===e.code,children:[(0,l.jsx)(`span`,{"aria-hidden":`true`,children:e.flag}),(0,l.jsx)(`span`,{className:o.default.countryName,children:e.name}),(0,l.jsxs)(`span`,{className:o.default.countryCode,children:[`+`,e.dialCode]})]},e.code))})})]}),(0,l.jsx)(`div`,{className:o.default.divider,"aria-hidden":`true`}),(0,l.jsx)(`input`,{id:w,ref:C,type:`tel`,value:e,onChange:N,placeholder:m,disabled:h,className:o.default.number,"aria-invalid":!!g,"aria-describedby":O})]})})});d.displayName=`PhoneInput`,exports.PHONE_COUNTRIES=u,exports.PhoneInput=d;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("./phone-input.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=[{code:`US`,name:`United States`,dialCode:`1`,flag:`🇺🇸`},{code:`JP`,name:`Japan`,dialCode:`81`,flag:`🇯🇵`},{code:`GB`,name:`United Kingdom`,dialCode:`44`,flag:`🇬🇧`},{code:`AU`,name:`Australia`,dialCode:`61`,flag:`🇦🇺`},{code:`DE`,name:`Germany`,dialCode:`49`,flag:`🇩🇪`},{code:`FR`,name:`France`,dialCode:`33`,flag:`🇫🇷`},{code:`CN`,name:`China`,dialCode:`86`,flag:`🇨🇳`},{code:`KR`,name:`South Korea`,dialCode:`82`,flag:`🇰🇷`},{code:`IN`,name:`India`,dialCode:`91`,flag:`🇮🇳`},{code:`BR`,name:`Brazil`,dialCode:`55`,flag:`🇧🇷`}],d=(0,s.forwardRef)(({value:e=``,onChange:d,countryCode:f=`US`,onCountryChange:p,placeholder:m=`000-0000-0000`,disabled:h=!1,error:g,required:_=!1,label:v,layout:y=`vertical`,className:b,fullWidth:x=!1,...S},C)=>{let w=`wim-phone-input-${(0,s.useId)()}`,T=v?`${w}-label`:void 0,{t:E}=t.useWimTranslation(`form`),D=E(`phone.select_country`),O=`${w}-countries`,k=e=>`${w}-country-${e}`,A=g?`${w}-error`:void 0,[j,M]=(0,s.useState)(!1),[N,P]=(0,s.useState)(-1),F=(0,s.useRef)(null),I=(0,s.useRef)(null),L=(0,s.useRef)({text:``,timer:null});(0,s.useEffect)(()=>{let e=e=>{F.current&&!F.current.contains(e.target)&&M(!1)};return j&&document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[j]);let R=u.find(e=>e.code===f)??u[0],z=e=>{d?.(e.target.value)},B=u.length-1,V=e=>{let t=u.findIndex(e=>e.code===R.code);P(e??Math.max(t,0)),M(!0)},H=e=>{let t=u[e];t&&(p?.(t.code),M(!1))},U=(e,t)=>{let n=e.toLowerCase().replace(/^\+/,``);if(n===``)return-1;let r=/^[0-9]+$/.test(n),i=(e,t)=>r?e.dialCode.startsWith(t):e.name.toLowerCase().startsWith(t),a=!r&&n.length>1&&n.split(``).every(e=>e===n[0]),o=a?n[0]:n,s=a||n.length===1?t+1:t;for(let e=0;e<u.length;e++){let t=(Math.max(s,0)+e)%u.length;if(i(u[t],o))return t}return-1},W=e=>{let t=L.current;t.timer&&clearTimeout(t.timer),t.text+=e,t.timer=setTimeout(()=>{t.text=``,t.timer=null},500);let n=U(t.text,j?N:-1);n<0||(j?P(n):V(n))},G=e=>{if(!h)switch(e.key){case`ArrowDown`:case`ArrowUp`:if(e.preventDefault(),!j)V();else{let t=e.key===`ArrowDown`?1:-1;P(e=>(e+t+u.length)%u.length)}break;case`Home`:case`End`:e.preventDefault(),j?P(e.key===`Home`?0:B):V(e.key===`Home`?0:B);break;case`Enter`:case` `:e.preventDefault(),e.key===` `&&L.current.text!==``?W(` `):j?H(N):V();break;case`Escape`:j&&(e.preventDefault(),M(!1));break;case`Tab`:M(!1);break;default:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),W(e.key))}};return(0,s.useEffect)(()=>{let e=L.current;return()=>{e.timer&&clearTimeout(e.timer)}},[]),(0,s.useEffect)(()=>{j&&N>=0&&(I.current?.querySelectorAll(`[role="option"]`)?.[N])?.scrollIntoView?.({block:`nearest`})},[N,j]),(0,l.jsx)(a.FieldTemplate,{label:v,labelId:T,htmlFor:w,required:_,error:g,errorId:A,layout:y,className:b,children:(0,l.jsxs)(`div`,{ref:F,className:(0,c.default)(`wim-phone-input`,o.default.root,x&&o.default.fullWidth,h&&o.default.disabled,g&&o.default.danger),"data-testid":`phone-input-root`,...S,children:[(0,l.jsxs)(`div`,{className:o.default.countryWrapper,children:[(0,l.jsxs)(`button`,{type:`button`,role:`combobox`,className:o.default.countryTrigger,onClick:()=>{h||(j?M(!1):V())},onKeyDown:G,onKeyUp:e=>{e.key===` `&&e.preventDefault()},disabled:h,"aria-haspopup":`listbox`,"aria-expanded":j,"aria-controls":j?O:void 0,"aria-activedescendant":j&&N>=0?k(N):void 0,"aria-label":D,children:[(0,l.jsx)(`span`,{"aria-hidden":`true`,style:{fontSize:`1.2em`},children:R.flag}),(0,l.jsxs)(`span`,{children:[`+`,R.dialCode]}),(0,l.jsx)(i.Icon,{component:r.default,size:`sm`,className:(0,c.default)(o.default.chevron,j&&o.default.chevronOpen)})]}),(0,l.jsx)(n.Transition,{show:j,preset:`fade`,className:o.default.dropdown,children:(0,l.jsx)(`ul`,{ref:I,id:O,className:o.default.countryList,role:`listbox`,"aria-label":D,tabIndex:-1,onMouseDown:e=>e.preventDefault(),children:u.map((e,t)=>(0,l.jsxs)(`li`,{id:k(t),className:(0,c.default)(o.default.countryOption,t===N&&o.default.active,R.code===e.code&&o.default.selected),onMouseEnter:()=>P(t),onClick:()=>H(t),role:`option`,"aria-selected":R.code===e.code,children:[(0,l.jsx)(`span`,{"aria-hidden":`true`,children:e.flag}),(0,l.jsx)(`span`,{className:o.default.countryName,children:e.name}),(0,l.jsxs)(`span`,{className:o.default.countryCode,children:[`+`,e.dialCode]})]},e.code))})})]}),(0,l.jsx)(`div`,{className:o.default.divider,"aria-hidden":`true`}),(0,l.jsx)(`input`,{id:w,ref:C,type:`tel`,value:e,onChange:z,placeholder:m,disabled:h,className:o.default.number,"aria-invalid":!!g,"aria-describedby":A})]})})});d.displayName=`PhoneInput`,exports.PHONE_COUNTRIES=u,exports.PhoneInput=d;
@@ -71,29 +71,87 @@ var m = [
71
71
  flag: "🇧🇷"
72
72
  }
73
73
  ], h = o(({ value: o = "", onChange: h, countryCode: g = "US", onCountryChange: _, placeholder: v = "000-0000-0000", disabled: y = !1, error: b, required: x = !1, label: S, layout: C = "vertical", className: w, fullWidth: T = !1, ...E }, D) => {
74
- let O = `wim-phone-input-${c()}`, k = S ? `${O}-label` : void 0, { t: A } = e("form"), j = S ? void 0 : A("phone.select_country"), M = b ? `${O}-error` : void 0, [N, P] = u(!1), F = l(null);
74
+ let O = `wim-phone-input-${c()}`, k = S ? `${O}-label` : void 0, { t: A } = e("form"), j = A("phone.select_country"), M = `${O}-countries`, N = (e) => `${O}-country-${e}`, P = b ? `${O}-error` : void 0, [F, I] = u(!1), [L, R] = u(-1), z = l(null), B = l(null), V = l({
75
+ text: "",
76
+ timer: null
77
+ });
75
78
  s(() => {
76
79
  let e = (e) => {
77
- F.current && !F.current.contains(e.target) && P(!1);
80
+ z.current && !z.current.contains(e.target) && I(!1);
78
81
  };
79
- return N && document.addEventListener("mousedown", e), () => {
82
+ return F && document.addEventListener("mousedown", e), () => {
80
83
  document.removeEventListener("mousedown", e);
81
84
  };
82
- }, [N]);
83
- let I = m.find((e) => e.code === g) ?? m[0], L = (e) => {
85
+ }, [F]);
86
+ let H = m.find((e) => e.code === g) ?? m[0], U = (e) => {
84
87
  h?.(e.target.value);
88
+ }, W = m.length - 1, G = (e) => {
89
+ let t = m.findIndex((e) => e.code === H.code);
90
+ R(e ?? Math.max(t, 0)), I(!0);
91
+ }, K = (e) => {
92
+ let t = m[e];
93
+ t && (_?.(t.code), I(!1));
94
+ }, q = (e, t) => {
95
+ let n = e.toLowerCase().replace(/^\+/, "");
96
+ if (n === "") return -1;
97
+ let r = /^[0-9]+$/.test(n), i = (e, t) => r ? e.dialCode.startsWith(t) : e.name.toLowerCase().startsWith(t), a = !r && n.length > 1 && n.split("").every((e) => e === n[0]), o = a ? n[0] : n, s = a || n.length === 1 ? t + 1 : t;
98
+ for (let e = 0; e < m.length; e++) {
99
+ let t = (Math.max(s, 0) + e) % m.length;
100
+ if (i(m[t], o)) return t;
101
+ }
102
+ return -1;
103
+ }, J = (e) => {
104
+ let t = V.current;
105
+ t.timer && clearTimeout(t.timer), t.text += e, t.timer = setTimeout(() => {
106
+ t.text = "", t.timer = null;
107
+ }, 500);
108
+ let n = q(t.text, F ? L : -1);
109
+ n < 0 || (F ? R(n) : G(n));
110
+ }, Y = (e) => {
111
+ if (!y) switch (e.key) {
112
+ case "ArrowDown":
113
+ case "ArrowUp":
114
+ if (e.preventDefault(), !F) G();
115
+ else {
116
+ let t = e.key === "ArrowDown" ? 1 : -1;
117
+ R((e) => (e + t + m.length) % m.length);
118
+ }
119
+ break;
120
+ case "Home":
121
+ case "End":
122
+ e.preventDefault(), F ? R(e.key === "Home" ? 0 : W) : G(e.key === "Home" ? 0 : W);
123
+ break;
124
+ case "Enter":
125
+ case " ":
126
+ e.preventDefault(), e.key === " " && V.current.text !== "" ? J(" ") : F ? K(L) : G();
127
+ break;
128
+ case "Escape":
129
+ F && (e.preventDefault(), I(!1));
130
+ break;
131
+ case "Tab":
132
+ I(!1);
133
+ break;
134
+ default: e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), J(e.key));
135
+ }
85
136
  };
86
- return /* @__PURE__ */ f(i, {
137
+ return s(() => {
138
+ let e = V.current;
139
+ return () => {
140
+ e.timer && clearTimeout(e.timer);
141
+ };
142
+ }, []), s(() => {
143
+ F && L >= 0 && (B.current?.querySelectorAll("[role=\"option\"]")?.[L])?.scrollIntoView?.({ block: "nearest" });
144
+ }, [L, F]), /* @__PURE__ */ f(i, {
87
145
  label: S,
88
146
  labelId: k,
89
147
  htmlFor: O,
90
148
  required: x,
91
149
  error: b,
92
- errorId: M,
150
+ errorId: P,
93
151
  layout: C,
94
152
  className: w,
95
153
  children: /* @__PURE__ */ p("div", {
96
- ref: F,
154
+ ref: z,
97
155
  className: d("wim-phone-input", a.root, T && a.fullWidth, y && a.disabled, b && a.danger),
98
156
  "data-testid": "phone-input-root",
99
157
  ...E,
@@ -102,46 +160,53 @@ var m = [
102
160
  className: a.countryWrapper,
103
161
  children: [/* @__PURE__ */ p("button", {
104
162
  type: "button",
163
+ role: "combobox",
105
164
  className: a.countryTrigger,
106
- onClick: () => !y && P(!N),
165
+ onClick: () => {
166
+ y || (F ? I(!1) : G());
167
+ },
168
+ onKeyDown: Y,
169
+ onKeyUp: (e) => {
170
+ e.key === " " && e.preventDefault();
171
+ },
107
172
  disabled: y,
108
173
  "aria-haspopup": "listbox",
109
- "aria-expanded": N,
110
- "aria-labelledby": k,
174
+ "aria-expanded": F,
175
+ "aria-controls": F ? M : void 0,
176
+ "aria-activedescendant": F && L >= 0 ? N(L) : void 0,
111
177
  "aria-label": j,
112
178
  children: [
113
179
  /* @__PURE__ */ f("span", {
114
180
  "aria-hidden": "true",
115
181
  style: { fontSize: "1.2em" },
116
- children: I.flag
182
+ children: H.flag
117
183
  }),
118
- /* @__PURE__ */ p("span", { children: ["+", I.dialCode] }),
184
+ /* @__PURE__ */ p("span", { children: ["+", H.dialCode] }),
119
185
  /* @__PURE__ */ f(r, {
120
186
  component: n,
121
187
  size: "sm",
122
- className: d(a.chevron, N && a.chevronOpen)
188
+ className: d(a.chevron, F && a.chevronOpen)
123
189
  })
124
190
  ]
125
191
  }), /* @__PURE__ */ f(t, {
126
- show: N,
192
+ show: F,
127
193
  preset: "fade",
128
194
  className: a.dropdown,
129
195
  children: /* @__PURE__ */ f("ul", {
196
+ ref: B,
197
+ id: M,
130
198
  className: a.countryList,
131
199
  role: "listbox",
132
- "aria-labelledby": S ? k : void 0,
133
200
  "aria-label": j,
134
- children: m.map((e) => /* @__PURE__ */ p("li", {
135
- className: d(a.countryOption, I.code === e.code && a.selected),
136
- onClick: () => {
137
- _?.(e.code), P(!1);
138
- },
139
- onKeyDown: (t) => {
140
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), _?.(e.code), P(!1));
141
- },
142
- tabIndex: 0,
201
+ tabIndex: -1,
202
+ onMouseDown: (e) => e.preventDefault(),
203
+ children: m.map((e, t) => /* @__PURE__ */ p("li", {
204
+ id: N(t),
205
+ className: d(a.countryOption, t === L && a.active, H.code === e.code && a.selected),
206
+ onMouseEnter: () => R(t),
207
+ onClick: () => K(t),
143
208
  role: "option",
144
- "aria-selected": I.code === e.code,
209
+ "aria-selected": H.code === e.code,
145
210
  children: [
146
211
  /* @__PURE__ */ f("span", {
147
212
  "aria-hidden": "true",
@@ -169,12 +234,12 @@ var m = [
169
234
  ref: D,
170
235
  type: "tel",
171
236
  value: o,
172
- onChange: L,
237
+ onChange: U,
173
238
  placeholder: v,
174
239
  disabled: y,
175
240
  className: a.number,
176
241
  "aria-invalid": !!b,
177
- "aria-describedby": M
242
+ "aria-describedby": P
178
243
  })
179
244
  ]
180
245
  })
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_jiaef_37`,t=`_fullWidth_jiaef_50`,n=`_disabled_jiaef_53`,r=`_chevron_jiaef_77`,i=`_countryCode_jiaef_78`,a=`_number_jiaef_79`,o=`_danger_jiaef_8`,s=`_countryWrapper_jiaef_91`,c=`_countryTrigger_jiaef_98`,l=`_chevronOpen_jiaef_137`,u=`_dropdown_jiaef_140`,d=`_countryList_jiaef_152`,f=`_countryOption_jiaef_159`,p=`_selected_jiaef_172`,m=`_countryName_jiaef_177`,h=`_divider_jiaef_187`,g={root:e,fullWidth:t,disabled:n,chevron:r,countryCode:i,number:a,danger:o,countryWrapper:s,countryTrigger:c,chevronOpen:l,dropdown:u,countryList:d,countryOption:f,selected:p,countryName:m,divider:h};exports.chevron=r,exports.chevronOpen=l,exports.countryCode=i,exports.countryList=d,exports.countryName=m,exports.countryOption=f,exports.countryTrigger=c,exports.countryWrapper=s,exports.danger=o,exports.default=g,exports.disabled=n,exports.divider=h,exports.dropdown=u,exports.fullWidth=t,exports.number=a,exports.root=e,exports.selected=p;
2
+ var e=`_root_tiqbm_37`,t=`_fullWidth_tiqbm_50`,n=`_disabled_tiqbm_53`,r=`_chevron_tiqbm_77`,i=`_countryCode_tiqbm_78`,a=`_number_tiqbm_79`,o=`_danger_tiqbm_8`,s=`_countryWrapper_tiqbm_91`,c=`_countryTrigger_tiqbm_98`,l=`_chevronOpen_tiqbm_137`,u=`_dropdown_tiqbm_140`,d=`_countryList_tiqbm_152`,f=`_countryOption_tiqbm_159`,p=`_active_tiqbm_169`,m=`_selected_tiqbm_172`,h=`_countryName_tiqbm_177`,g=`_divider_tiqbm_187`,_={root:e,fullWidth:t,disabled:n,chevron:r,countryCode:i,number:a,danger:o,countryWrapper:s,countryTrigger:c,chevronOpen:l,dropdown:u,countryList:d,countryOption:f,active:p,selected:m,countryName:h,divider:g};exports.active=p,exports.chevron=r,exports.chevronOpen=l,exports.countryCode=i,exports.countryList=d,exports.countryName=h,exports.countryOption=f,exports.countryTrigger=c,exports.countryWrapper=s,exports.danger=o,exports.default=_,exports.disabled=n,exports.divider=g,exports.dropdown=u,exports.fullWidth=t,exports.number=a,exports.root=e,exports.selected=m;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/form/PhoneInput/phone-input.module.scss
3
- var e = "_root_jiaef_37", t = "_fullWidth_jiaef_50", n = "_disabled_jiaef_53", r = "_chevron_jiaef_77", i = "_countryCode_jiaef_78", a = "_number_jiaef_79", o = "_danger_jiaef_8", s = "_countryWrapper_jiaef_91", c = "_countryTrigger_jiaef_98", l = "_chevronOpen_jiaef_137", u = "_dropdown_jiaef_140", d = "_countryList_jiaef_152", f = "_countryOption_jiaef_159", p = "_selected_jiaef_172", m = "_countryName_jiaef_177", h = "_divider_jiaef_187", g = {
3
+ var e = "_root_tiqbm_37", t = "_fullWidth_tiqbm_50", n = "_disabled_tiqbm_53", r = "_chevron_tiqbm_77", i = "_countryCode_tiqbm_78", a = "_number_tiqbm_79", o = "_danger_tiqbm_8", s = "_countryWrapper_tiqbm_91", c = "_countryTrigger_tiqbm_98", l = "_chevronOpen_tiqbm_137", u = "_dropdown_tiqbm_140", d = "_countryList_tiqbm_152", f = "_countryOption_tiqbm_159", p = "_active_tiqbm_169", m = "_selected_tiqbm_172", h = "_countryName_tiqbm_177", g = "_divider_tiqbm_187", _ = {
4
4
  root: e,
5
5
  fullWidth: t,
6
6
  disabled: n,
@@ -14,9 +14,10 @@ var e = "_root_jiaef_37", t = "_fullWidth_jiaef_50", n = "_disabled_jiaef_53", r
14
14
  dropdown: u,
15
15
  countryList: d,
16
16
  countryOption: f,
17
- selected: p,
18
- countryName: m,
19
- divider: h
17
+ active: p,
18
+ selected: m,
19
+ countryName: h,
20
+ divider: g
20
21
  };
21
22
  //#endregion
22
- export { r as chevron, l as chevronOpen, i as countryCode, d as countryList, m as countryName, f as countryOption, c as countryTrigger, s as countryWrapper, o as danger, g as default, n as disabled, h as divider, u as dropdown, t as fullWidth, a as number, e as root, p as selected };
23
+ export { p as active, r as chevron, l as chevronOpen, i as countryCode, d as countryList, h as countryName, f as countryOption, c as countryTrigger, s as countryWrapper, o as danger, _ as default, n as disabled, g as divider, u as dropdown, t as fullWidth, a as number, e as root, m as selected };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- let e=require("react");function t({options:t,value:n,onChange:r,defaultValue:i,searchable:a,grouped:o,disabled:s,filterOption:c}){let[l,u]=(0,e.useState)(!1),[d,f]=(0,e.useState)(i||``),[p,m]=(0,e.useState)(``),[h,g]=(0,e.useState)(-1),[_,v]=(0,e.useState)(!1),y=(0,e.useRef)(null),b=(0,e.useRef)(null),x=(0,e.useRef)(null),S=(0,e.useRef)([]),C=n!==void 0,w=C?n:d,T=(0,e.useMemo)(()=>o&&t.length>0&&`options`in t[0]?t.flatMap(e=>e.options):t,[t,o]),E=(0,e.useMemo)(()=>{if(!p)return T;let e=c||((e,t)=>{if(e.type===`separator`)return!1;let n=typeof e.label==`string`?e.label:``,r=typeof e.value==`string`?e.value:``,i=t.toLowerCase();return n.toLowerCase().includes(i)||r.toLowerCase().includes(i)});return T.filter(t=>e(t,p))},[T,p,c]),D=T.find(e=>e.value===w);(0,e.useEffect)(()=>{let e=e=>{y.current&&!y.current.contains(e.target)&&(u(!1),m(``),g(-1))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,e.useEffect)(()=>{l&&a&&x.current&&x.current.focus()},[l,a]),(0,e.useEffect)(()=>{h>=0&&S.current[h]&&S.current[h]?.scrollIntoView({block:`nearest`,behavior:`smooth`})},[h]);let O=()=>{s||(u(!l),l||(m(``),g(-1)))},k=e=>{e.type===`separator`||e.disabled||(!C&&e.value!==void 0&&f(e.value),r&&e.value!==void 0&&r(e.value),u(!1),m(``),g(-1),b.current?.focus())};return{isOpen:l,searchValue:p,setSearchValue:m,focusedIndex:h,setFocusedIndex:g,isKeyboardNavigating:_,setIsKeyboardNavigating:v,containerRef:y,triggerRef:b,searchInputRef:x,listItemsRef:S,currentValue:w,flatOptions:T,filteredOptions:E,selectedOption:D,focusedOption:h>=0?E[h]:null,handleToggle:O,handleSelect:k,handleClear:()=>{s||(C||f(``),r?.(``))},handleKeyDown:e=>{if(v(!0),!s)switch(e.key){case`Enter`:case` `:l?h>=0&&E[h]&&k(E[h]):u(!0),e.preventDefault();break;case`Escape`:u(!1),m(``),g(-1),b.current?.focus(),e.preventDefault();break;case`ArrowDown`:e.preventDefault(),l?g(e=>{let t=e+1;for(t>=E.length&&(t=0);t<E.length&&(E[t]?.disabled||E[t]?.type===`separator`);)t++;if(t>=E.length)for(t=0;t<e&&(E[t]?.disabled||E[t]?.type===`separator`);)t++;return t<E.length?t:e}):u(!0);break;case`ArrowUp`:e.preventDefault(),l&&g(e=>{let t=e-1;for(t<0&&(t=E.length-1);t>=0&&(E[t]?.disabled||E[t]?.type===`separator`);)t--;if(t<0)for(t=E.length-1;t>e&&(E[t]?.disabled||E[t]?.type===`separator`);)t--;return t>=0?t:e});break;case`Home`:l&&(e.preventDefault(),g(0));break;case`End`:l&&(e.preventDefault(),g(E.length-1))}}}}exports.useSelect=t;
2
+ let e=require("react");function t({options:t,value:n,onChange:r,defaultValue:i,searchable:a,grouped:o,disabled:s,filterOption:c}){let[l,u]=(0,e.useState)(!1),[d,f]=(0,e.useState)(i||``),[p,m]=(0,e.useState)(``),[h,g]=(0,e.useState)(-1),[_,v]=(0,e.useState)(!1),y=(0,e.useRef)(null),b=(0,e.useRef)(null),x=(0,e.useRef)(null),S=(0,e.useRef)([]),C=n!==void 0,w=C?n:d,T=(0,e.useMemo)(()=>o&&t.length>0&&`options`in t[0]?t.flatMap(e=>e.options):t,[t,o]),E=(0,e.useMemo)(()=>{if(!p)return T;let e=c||((e,t)=>{if(e.type===`separator`)return!1;let n=typeof e.label==`string`?e.label:``,r=typeof e.value==`string`?e.value:``,i=t.toLowerCase();return n.toLowerCase().includes(i)||r.toLowerCase().includes(i)});return T.filter(t=>e(t,p))},[T,p,c]),D=T.find(e=>e.value===w);(0,e.useEffect)(()=>{let e=e=>{y.current&&!y.current.contains(e.target)&&(u(!1),m(``),g(-1))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,e.useEffect)(()=>{l&&a&&x.current&&x.current.focus()},[l,a]),(0,e.useEffect)(()=>{h>=0&&S.current[h]&&S.current[h]?.scrollIntoView({block:`nearest`,behavior:`smooth`})},[h]);let O=()=>{s||(u(!l),l||(m(``),g(-1)))},k=e=>{e.type===`separator`||e.disabled||(!C&&e.value!==void 0&&f(e.value),r&&e.value!==void 0&&r(e.value),u(!1),m(``),g(-1),b.current?.focus())};return{isOpen:l,searchValue:p,setSearchValue:m,focusedIndex:h,setFocusedIndex:g,isKeyboardNavigating:_,setIsKeyboardNavigating:v,containerRef:y,triggerRef:b,searchInputRef:x,listItemsRef:S,currentValue:w,flatOptions:T,filteredOptions:E,selectedOption:D,focusedOption:h>=0?E[h]:null,handleToggle:O,handleSelect:k,handleClear:()=>{s||(C||f(``),r?.(``))},handleKeyDown:e=>{if(v(!0),!s)switch(e.key){case`Enter`:case` `:l?h>=0&&E[h]&&k(E[h]):u(!0),e.preventDefault();break;case`Escape`:u(!1),m(``),g(-1),b.current?.focus(),e.preventDefault();break;case`Tab`:l&&(u(!1),m(``),g(-1));break;case`ArrowDown`:e.preventDefault(),l?g(e=>{let t=e+1;for(t>=E.length&&(t=0);t<E.length&&(E[t]?.disabled||E[t]?.type===`separator`);)t++;if(t>=E.length)for(t=0;t<e&&(E[t]?.disabled||E[t]?.type===`separator`);)t++;return t<E.length?t:e}):u(!0);break;case`ArrowUp`:e.preventDefault(),l&&g(e=>{let t=e-1;for(t<0&&(t=E.length-1);t>=0&&(E[t]?.disabled||E[t]?.type===`separator`);)t--;if(t<0)for(t=E.length-1;t>e&&(E[t]?.disabled||E[t]?.type===`separator`);)t--;return t>=0?t:e});break;case`Home`:l&&(e.preventDefault(),g(0));break;case`End`:l&&(e.preventDefault(),g(E.length-1))}}}}exports.useSelect=t;
@@ -64,6 +64,9 @@ function i({ options: i, value: a, onChange: o, defaultValue: s, searchable: c,
64
64
  case "Escape":
65
65
  p(!1), _(""), y(-1), C.current?.focus(), e.preventDefault();
66
66
  break;
67
+ case "Tab":
68
+ f && (p(!1), _(""), y(-1));
69
+ break;
67
70
  case "ArrowDown":
68
71
  e.preventDefault(), f ? y((e) => {
69
72
  let t = e + 1;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../../i18n/useWimTranslation.cjs"),r=require("../../_internal/OverlayBase.cjs"),i=require("../../../icon/chevron-left.cjs"),a=require("../../../icon/chevron-right.cjs"),o=require("../../../icon/close.cjs"),s=require("../../../icon/minus.cjs"),c=require("../../../icon/plus.cjs"),l=require("../Icon/Icon.cjs"),u=require("./lightbox.module.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("classnames");f=e.__toESM(f,1);let p=require("react/jsx-runtime");var m=(0,d.createContext)(void 0),h=()=>{let e=(0,d.useContext)(m);if(!e)throw Error(`Lightbox components must be used within Lightbox`);return e},g=({children:e,open:t,onOpenChange:n,defaultOpen:r=!1,defaultIndex:i=0})=>{let[a,o]=(0,d.useState)(r),[s,c]=(0,d.useState)(i),[l,u]=(0,d.useState)([]),f=t!==void 0,h=f?t:a,g=(0,d.useCallback)(e=>{f||o(e),n?.(e)},[f,n]),_=(0,d.useCallback)(e=>{let t=-1;return u(n=>(t=n.length,[...n,e])),t},[]),v=(0,d.useCallback)(e=>{},[]);return(0,p.jsx)(m.Provider,{value:{open:h,setOpen:g,currentIndex:s,setCurrentIndex:c,items:l,setItems:u,registerItem:_,unregisterItem:v},children:e})},_=({children:e,className:r,onClick:i,asChild:a=!1,index:o,src:s,alt:c,caption:l,...d})=>{let{setOpen:m,setCurrentIndex:g,items:_,setItems:v}=h(),{t:y}=n.useWimTranslation(`components`),b=e=>{if(i?.(e),o!==void 0)g(o);else if(s){let e=_.findIndex(e=>e.src===s);if(e!==-1)g(e);else{let e=_.length;v(e=>[...e,{src:s,alt:c,caption:l}]),g(e)}}m(!0)},x=a?t.Root:`button`,S=o===void 0?void 0:_[o]?.alt,C=d[`aria-label`]!==void 0||d[`aria-labelledby`]!==void 0,w=c??S,T=C?void 0:w?y(`lightbox.open_named`,{name:w}):y(`lightbox.open`);return(0,p.jsx)(x,{type:`button`,className:(0,f.default)(u.default.trigger,r),onClick:b,"aria-label":T,...d,children:(0,p.jsx)(t.Slottable,{children:e})})},v=({className:e,showCloseButton:t=!0,showNavigation:m=!0,showCounter:g=!0,closeOnOverlayClick:_=!0,...v})=>{let{open:y,setOpen:b,currentIndex:x,setCurrentIndex:S,items:C}=h(),{t:w}=n.useWimTranslation(`components`),[T,E]=(0,d.useState)(1),D=(0,d.useCallback)(()=>{S((x-1+C.length)%C.length),E(1)},[x,C.length,S]),O=(0,d.useCallback)(()=>{S((x+1)%C.length),E(1)},[x,C.length,S]),k=()=>{E(e=>e===1?2:1)};(0,d.useEffect)(()=>{if(!y)return;let e=e=>{e.key===`ArrowLeft`&&D(),e.key===`ArrowRight`&&O(),e.key===`Escape`&&b(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y,D,O,b]);let A=C[x];return A?(0,p.jsx)(r.OverlayBase,{...v,open:y,onOpenChange:b,closeOnOverlayClick:_,overlayClassName:u.default.overlay,className:(0,f.default)(`wim-lightbox`,u.default.contentRoot,e),transitionProps:{preset:`fade`,enter:u.default.contentEnter,enterFrom:u.default.contentEnterFrom,enterTo:u.default.contentEnterTo},children:(0,p.jsxs)(`div`,{className:u.default.container,children:[(0,p.jsxs)(`div`,{className:u.default.header,children:[g&&C.length>1&&(0,p.jsx)(`div`,{className:u.default.counter,children:w(`lightbox.counter`,{current:x+1,total:C.length})}),(0,p.jsxs)(`div`,{className:u.default.controls,children:[(0,p.jsx)(`button`,{className:u.default.iconButton,onClick:k,"aria-label":w(T>1?`lightbox.zoom_out`:`lightbox.zoom_in`),children:T>1?(0,p.jsx)(l.Icon,{component:s.default}):(0,p.jsx)(l.Icon,{component:c.default})}),t&&(0,p.jsx)(`button`,{className:u.default.iconButton,onClick:()=>b(!1),"aria-label":w(`lightbox.close`),children:(0,p.jsx)(l.Icon,{component:o.default})})]})]}),(0,p.jsxs)(`div`,{className:u.default.viewport,children:[m&&C.length>1&&(0,p.jsx)(`button`,{className:(0,f.default)(u.default.navButton,u.default.prev),onClick:D,"aria-label":w(`lightbox.previous`),children:(0,p.jsx)(l.Icon,{component:i.default})}),(0,p.jsx)(`div`,{className:u.default.mediaWrapper,style:{transform:`scale(${T})`},children:(0,p.jsx)(`img`,{src:A.src,alt:A.alt||``,className:u.default.image})}),m&&C.length>1&&(0,p.jsx)(`button`,{className:(0,f.default)(u.default.navButton,u.default.next),onClick:O,"aria-label":w(`lightbox.next`),children:(0,p.jsx)(l.Icon,{component:a.default})})]}),(A.title||A.caption)&&(0,p.jsxs)(`div`,{className:u.default.footer,children:[A.title&&(0,p.jsx)(`h3`,{className:u.default.title,children:A.title}),A.caption&&(0,p.jsx)(`p`,{className:u.default.caption,children:A.caption})]})]})}):null},y=({items:e,children:t})=>{let{setItems:n}=h();return(0,d.useEffect)(()=>{n(e)},[e,n]),(0,p.jsx)(`div`,{className:u.default.gallery,children:t})},b=g;b.Trigger=_,b.Content=v,b.Gallery=y,b.displayName=`Lightbox`,_.displayName=`Lightbox.Trigger`,v.displayName=`Lightbox.Content`,y.displayName=`Lightbox.Gallery`,exports.Lightbox=g,exports.LightboxContent=v,exports.LightboxGallery=y,exports.LightboxRoot=b,exports.default=b,exports.LightboxTrigger=_,exports.useLightbox=h;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../../i18n/useWimTranslation.cjs"),r=require("../../_internal/OverlayBase.cjs"),i=require("../../../icon/chevron-left.cjs"),a=require("../../../icon/chevron-right.cjs"),o=require("../../../icon/close.cjs"),s=require("../../../icon/minus.cjs"),c=require("../../../icon/plus.cjs"),l=require("../Icon/Icon.cjs"),u=require("./lightbox.module.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("classnames");f=e.__toESM(f,1);let p=require("react/jsx-runtime");var m=(0,d.createContext)(void 0),h=()=>{let e=(0,d.useContext)(m);if(!e)throw Error(`Lightbox components must be used within Lightbox`);return e},g=({children:e,open:t,onOpenChange:n,defaultOpen:r=!1,defaultIndex:i=0})=>{let[a,o]=(0,d.useState)(r),[s,c]=(0,d.useState)(i),[l,u]=(0,d.useState)([]),f=t!==void 0,h=f?t:a,g=(0,d.useCallback)(e=>{f||o(e),n?.(e)},[f,n]),_=(0,d.useCallback)(e=>{let t=-1;return u(n=>(t=n.length,[...n,e])),t},[]),v=(0,d.useCallback)(e=>{},[]);return(0,p.jsx)(m.Provider,{value:{open:h,setOpen:g,currentIndex:s,setCurrentIndex:c,items:l,setItems:u,registerItem:_,unregisterItem:v},children:e})},_=({children:e,className:r,onClick:i,asChild:a=!1,index:o,src:s,alt:c,caption:l,...d})=>{let{setOpen:m,setCurrentIndex:g,items:_,setItems:v}=h(),{t:y}=n.useWimTranslation(`components`),b=e=>{if(i?.(e),o!==void 0)g(o);else if(s){let e=_.findIndex(e=>e.src===s);if(e!==-1)g(e);else{let e=_.length;v(e=>[...e,{src:s,alt:c,caption:l}]),g(e)}}m(!0)},x=a?t.Root:`button`,S=o===void 0?void 0:_[o]?.alt,C=d[`aria-label`]!==void 0||d[`aria-labelledby`]!==void 0,w=c??S,T=C?void 0:w?y(`lightbox.open_named`,{name:w}):y(`lightbox.open`);return(0,p.jsx)(x,{type:`button`,className:(0,f.default)(u.default.trigger,r),onClick:b,"aria-label":T,...d,children:(0,p.jsx)(t.Slottable,{children:e})})},v=({className:e,showCloseButton:t=!0,showNavigation:m=!0,showCounter:g=!0,closeOnOverlayClick:_=!0,...v})=>{let{open:y,setOpen:b,currentIndex:x,setCurrentIndex:S,items:C}=h(),{t:w}=n.useWimTranslation(`components`),[T,E]=(0,d.useState)(1),D=(0,d.useCallback)(()=>{S((x-1+C.length)%C.length),E(1)},[x,C.length,S]),O=(0,d.useCallback)(()=>{S((x+1)%C.length),E(1)},[x,C.length,S]),k=()=>{E(e=>e===1?2:1)};(0,d.useEffect)(()=>{if(!y)return;let e=e=>{e.key===`ArrowLeft`&&D(),e.key===`ArrowRight`&&O(),e.key===`Escape`&&b(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y,D,O,b]);let A=C[x];return A?(0,p.jsx)(r.OverlayBase,{...v,open:y,onOpenChange:b,closeOnOverlayClick:_,overlayClassName:u.default.overlay,className:(0,f.default)(`wim-lightbox`,u.default.contentRoot,e),"aria-label":v[`aria-labelledby`]?void 0:v[`aria-label`]??(A.title||A.alt||w(`lightbox.dialog`)),transitionProps:{preset:`fade`,enter:u.default.contentEnter,enterFrom:u.default.contentEnterFrom,enterTo:u.default.contentEnterTo},children:(0,p.jsxs)(`div`,{className:u.default.container,children:[(0,p.jsxs)(`div`,{className:u.default.header,children:[g&&C.length>1&&(0,p.jsx)(`div`,{className:u.default.counter,children:w(`lightbox.counter`,{current:x+1,total:C.length})}),(0,p.jsxs)(`div`,{className:u.default.controls,children:[(0,p.jsx)(`button`,{className:u.default.iconButton,onClick:k,"aria-label":w(T>1?`lightbox.zoom_out`:`lightbox.zoom_in`),children:T>1?(0,p.jsx)(l.Icon,{component:s.default}):(0,p.jsx)(l.Icon,{component:c.default})}),t&&(0,p.jsx)(`button`,{className:u.default.iconButton,onClick:()=>b(!1),"aria-label":w(`lightbox.close`),children:(0,p.jsx)(l.Icon,{component:o.default})})]})]}),(0,p.jsxs)(`div`,{className:u.default.viewport,children:[m&&C.length>1&&(0,p.jsx)(`button`,{className:(0,f.default)(u.default.navButton,u.default.prev),onClick:D,"aria-label":w(`lightbox.previous`),children:(0,p.jsx)(l.Icon,{component:i.default})}),(0,p.jsx)(`div`,{className:u.default.mediaWrapper,style:{transform:`scale(${T})`},children:(0,p.jsx)(`img`,{src:A.src,alt:A.alt||``,className:u.default.image})}),m&&C.length>1&&(0,p.jsx)(`button`,{className:(0,f.default)(u.default.navButton,u.default.next),onClick:O,"aria-label":w(`lightbox.next`),children:(0,p.jsx)(l.Icon,{component:a.default})})]}),(A.title||A.caption)&&(0,p.jsxs)(`div`,{className:u.default.footer,children:[A.title&&(0,p.jsx)(`h3`,{className:u.default.title,children:A.title}),A.caption&&(0,p.jsx)(`p`,{className:u.default.caption,children:A.caption})]})]})}):null},y=({items:e,children:t})=>{let{setItems:n}=h();return(0,d.useEffect)(()=>{n(e)},[e,n]),(0,p.jsx)(`div`,{className:u.default.gallery,children:t})},b=g;b.Trigger=_,b.Content=v,b.Gallery=y,b.displayName=`Lightbox`,_.displayName=`Lightbox.Trigger`,v.displayName=`Lightbox.Content`,y.displayName=`Lightbox.Gallery`,exports.Lightbox=g,exports.LightboxContent=v,exports.LightboxGallery=y,exports.LightboxRoot=b,exports.default=b,exports.LightboxTrigger=_,exports.useLightbox=h;
@@ -98,6 +98,7 @@ var y = d(void 0), b = () => {
98
98
  closeOnOverlayClick: y,
99
99
  overlayClassName: u.overlay,
100
100
  className: g("wim-lightbox", u.contentRoot, e),
101
+ "aria-label": x["aria-labelledby"] ? void 0 : x["aria-label"] ?? (N.title || N.alt || D("lightbox.dialog")),
101
102
  transitionProps: {
102
103
  preset: "fade",
103
104
  enter: u.contentEnter,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../_internal/OverlayBase.cjs"),n=require("./bottom-sheet.module.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("classnames");i=e.__toESM(i,1);let a=require("react/jsx-runtime");var o=(0,r.createContext)(void 0),s=()=>{let e=(0,r.useContext)(o);if(!e)throw Error(`useBottomSheet must be used within a BottomSheet provider`);return e},c=({children:e,open:t,defaultOpen:n=!1,onOpenChange:i})=>{let[s,c]=(0,r.useState)(n),l=t!==void 0,u=l?t:s,d=(0,r.useCallback)(e=>{l||c(e),i?.(e)},[l,i]);return(0,a.jsx)(o.Provider,{value:{open:u,onOpenChange:d},children:e})},l=({children:e,asChild:t,className:n})=>{let{onOpenChange:o}=s(),c=()=>{o(!0)};return t&&r.default.isValidElement(e)?r.default.cloneElement(e,{onClick:t=>{e.props.onClick?.(t),c()},className:(0,i.default)(n,e.props.className)}):(0,a.jsx)(`button`,{className:n,onClick:c,children:e})},u=({children:e,className:t,asChild:n})=>{let{onOpenChange:o}=s(),c=()=>{o(!1)};return n&&r.default.isValidElement(e)?r.default.cloneElement(e,{onClick:t=>{e.props.onClick?.(t),c()},className:(0,i.default)(t,e.props.className)}):(0,a.jsx)(`button`,{type:`button`,className:t,onClick:c,children:e})},d=({children:e,className:r})=>{let{open:o,onOpenChange:c}=s();return(0,a.jsxs)(t.OverlayBase,{open:o,onOpenChange:c,overlayClassName:n.default.overlay,contentClassName:(0,i.default)(`wim-bottom-sheet`,n.default.content,r),transitionProps:{preset:`slide-bottom`},children:[(0,a.jsx)(`div`,{className:n.default.handle}),e]})},f=({children:e,className:t})=>(0,a.jsx)(`div`,{className:(0,i.default)(n.default.header,t),"data-testid":`bottom-sheet-header`,children:e}),p=({children:e,className:t})=>(0,a.jsx)(`div`,{className:(0,i.default)(n.default.footer,t),"data-testid":`bottom-sheet-footer`,children:e}),m=({children:e,className:t})=>(0,a.jsx)(`h2`,{className:(0,i.default)(n.default.title,t),"data-testid":`bottom-sheet-title`,children:e}),h=({children:e,className:t})=>(0,a.jsx)(`p`,{className:(0,i.default)(n.default.description,t),"data-testid":`bottom-sheet-description`,children:e}),g=({children:e,className:t})=>(0,a.jsx)(`div`,{className:(0,i.default)(n.default.body,t),"data-testid":`bottom-sheet-body`,children:e}),_=e=>(0,a.jsx)(c,{...e});_.displayName=`BottomSheet`,_.Trigger=l,_.Content=d,_.Header=f,_.Footer=p,_.Title=m,_.Description=h,_.Body=g,_.Close=u,exports.BottomSheet=_,exports.default=_,exports.BottomSheetBody=g,exports.BottomSheetClose=u,exports.BottomSheetContent=d,exports.BottomSheetDescription=h,exports.BottomSheetFooter=p,exports.BottomSheetHeader=f,exports.BottomSheetTitle=m,exports.BottomSheetTrigger=l;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../_internal/OverlayBase.cjs"),n=require("./bottom-sheet.module.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("classnames");i=e.__toESM(i,1);let a=require("react/jsx-runtime");var o=(0,r.createContext)(void 0),s=()=>{let e=(0,r.useContext)(o);if(!e)throw Error(`useBottomSheet must be used within a BottomSheet provider`);return e},c=({children:e,open:t,defaultOpen:n=!1,onOpenChange:i})=>{let[s,c]=(0,r.useState)(n),l=t!==void 0,u=l?t:s,d=(0,r.useCallback)(e=>{l||c(e),i?.(e)},[l,i]),f=(0,r.useId)(),p=`wim-bottom-sheet-${f}-title`,m=`wim-bottom-sheet-${f}-description`;return(0,a.jsx)(o.Provider,{value:{titleId:p,descriptionId:m,open:u,onOpenChange:d},children:e})},l=({children:e,asChild:t,className:n})=>{let{onOpenChange:o}=s(),c=()=>{o(!0)};return t&&r.default.isValidElement(e)?r.default.cloneElement(e,{onClick:t=>{e.props.onClick?.(t),c()},className:(0,i.default)(n,e.props.className)}):(0,a.jsx)(`button`,{className:n,onClick:c,children:e})},u=({children:e,className:t,asChild:n})=>{let{onOpenChange:o}=s(),c=()=>{o(!1)};return n&&r.default.isValidElement(e)?r.default.cloneElement(e,{onClick:t=>{e.props.onClick?.(t),c()},className:(0,i.default)(t,e.props.className)}):(0,a.jsx)(`button`,{type:`button`,className:t,onClick:c,children:e})},d=({children:e,className:r})=>{let{open:o,onOpenChange:c,titleId:l,descriptionId:u}=s();return(0,a.jsxs)(t.OverlayBase,{open:o,onOpenChange:c,overlayClassName:n.default.overlay,contentClassName:(0,i.default)(`wim-bottom-sheet`,n.default.content,r),transitionProps:{preset:`slide-bottom`},"aria-labelledby":l,"aria-describedby":u,children:[(0,a.jsx)(`div`,{className:n.default.handle}),e]})},f=({children:e,className:t})=>(0,a.jsx)(`div`,{className:(0,i.default)(n.default.header,t),"data-testid":`bottom-sheet-header`,children:e}),p=({children:e,className:t})=>(0,a.jsx)(`div`,{className:(0,i.default)(n.default.footer,t),"data-testid":`bottom-sheet-footer`,children:e}),m=({children:e,className:t})=>{let{titleId:r}=s();return(0,a.jsx)(`h2`,{id:r,className:(0,i.default)(n.default.title,t),"data-testid":`bottom-sheet-title`,children:e})},h=({children:e,className:t})=>{let{descriptionId:r}=s();return(0,a.jsx)(`p`,{id:r,className:(0,i.default)(n.default.description,t),"data-testid":`bottom-sheet-description`,children:e})},g=({children:e,className:t})=>(0,a.jsx)(`div`,{className:(0,i.default)(n.default.body,t),"data-testid":`bottom-sheet-body`,children:e}),_=e=>(0,a.jsx)(c,{...e});_.displayName=`BottomSheet`,_.Trigger=l,_.Content=d,_.Header=f,_.Footer=p,_.Title=m,_.Description=h,_.Body=g,_.Close=u,exports.BottomSheet=_,exports.default=_,exports.BottomSheetBody=g,exports.BottomSheetClose=u,exports.BottomSheetContent=d,exports.BottomSheetDescription=h,exports.BottomSheetFooter=p,exports.BottomSheetHeader=f,exports.BottomSheetTitle=m,exports.BottomSheetTrigger=l;
@@ -1,85 +1,97 @@
1
1
  "use client";
2
2
  import { OverlayBase as e } from "../../_internal/OverlayBase.js";
3
3
  import t from "./bottom-sheet.module.js";
4
- import n, { createContext as r, useCallback as i, useContext as a, useState as o } from "react";
5
- import s from "classnames";
6
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ import n, { createContext as r, useCallback as i, useContext as a, useId as o, useState as s } from "react";
5
+ import c from "classnames";
6
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
7
  //#region src/components/overlay/BottomSheet/BottomSheet.tsx
8
- var u = r(void 0), d = () => {
9
- let e = a(u);
8
+ var d = r(void 0), f = () => {
9
+ let e = a(d);
10
10
  if (!e) throw Error("useBottomSheet must be used within a BottomSheet provider");
11
11
  return e;
12
- }, f = ({ children: e, open: t, defaultOpen: n = !1, onOpenChange: r }) => {
13
- let [a, s] = o(n), l = t !== void 0, d = l ? t : a, f = i((e) => {
14
- l || s(e), r?.(e);
15
- }, [l, r]);
16
- return /* @__PURE__ */ c(u.Provider, {
12
+ }, p = ({ children: e, open: t, defaultOpen: n = !1, onOpenChange: r }) => {
13
+ let [a, c] = s(n), u = t !== void 0, f = u ? t : a, p = i((e) => {
14
+ u || c(e), r?.(e);
15
+ }, [u, r]), m = o(), h = `wim-bottom-sheet-${m}-title`, g = `wim-bottom-sheet-${m}-description`;
16
+ return /* @__PURE__ */ l(d.Provider, {
17
17
  value: {
18
- open: d,
19
- onOpenChange: f
18
+ titleId: h,
19
+ descriptionId: g,
20
+ open: f,
21
+ onOpenChange: p
20
22
  },
21
23
  children: e
22
24
  });
23
- }, p = ({ children: e, asChild: t, className: r }) => {
24
- let { onOpenChange: i } = d(), a = () => {
25
+ }, m = ({ children: e, asChild: t, className: r }) => {
26
+ let { onOpenChange: i } = f(), a = () => {
25
27
  i(!0);
26
28
  };
27
29
  return t && n.isValidElement(e) ? n.cloneElement(e, {
28
30
  onClick: (t) => {
29
31
  e.props.onClick?.(t), a();
30
32
  },
31
- className: s(r, e.props.className)
32
- }) : /* @__PURE__ */ c("button", {
33
+ className: c(r, e.props.className)
34
+ }) : /* @__PURE__ */ l("button", {
33
35
  className: r,
34
36
  onClick: a,
35
37
  children: e
36
38
  });
37
- }, m = ({ children: e, className: t, asChild: r }) => {
38
- let { onOpenChange: i } = d(), a = () => {
39
+ }, h = ({ children: e, className: t, asChild: r }) => {
40
+ let { onOpenChange: i } = f(), a = () => {
39
41
  i(!1);
40
42
  };
41
43
  return r && n.isValidElement(e) ? n.cloneElement(e, {
42
44
  onClick: (t) => {
43
45
  e.props.onClick?.(t), a();
44
46
  },
45
- className: s(t, e.props.className)
46
- }) : /* @__PURE__ */ c("button", {
47
+ className: c(t, e.props.className)
48
+ }) : /* @__PURE__ */ l("button", {
47
49
  type: "button",
48
50
  className: t,
49
51
  onClick: a,
50
52
  children: e
51
53
  });
52
- }, h = ({ children: n, className: r }) => {
53
- let { open: i, onOpenChange: a } = d();
54
- return /* @__PURE__ */ l(e, {
54
+ }, g = ({ children: n, className: r }) => {
55
+ let { open: i, onOpenChange: a, titleId: o, descriptionId: s } = f();
56
+ return /* @__PURE__ */ u(e, {
55
57
  open: i,
56
58
  onOpenChange: a,
57
59
  overlayClassName: t.overlay,
58
- contentClassName: s("wim-bottom-sheet", t.content, r),
60
+ contentClassName: c("wim-bottom-sheet", t.content, r),
59
61
  transitionProps: { preset: "slide-bottom" },
60
- children: [/* @__PURE__ */ c("div", { className: t.handle }), n]
62
+ "aria-labelledby": o,
63
+ "aria-describedby": s,
64
+ children: [/* @__PURE__ */ l("div", { className: t.handle }), n]
61
65
  });
62
- }, g = ({ children: e, className: n }) => /* @__PURE__ */ c("div", {
63
- className: s(t.header, n),
66
+ }, _ = ({ children: e, className: n }) => /* @__PURE__ */ l("div", {
67
+ className: c(t.header, n),
64
68
  "data-testid": "bottom-sheet-header",
65
69
  children: e
66
- }), _ = ({ children: e, className: n }) => /* @__PURE__ */ c("div", {
67
- className: s(t.footer, n),
70
+ }), v = ({ children: e, className: n }) => /* @__PURE__ */ l("div", {
71
+ className: c(t.footer, n),
68
72
  "data-testid": "bottom-sheet-footer",
69
73
  children: e
70
- }), v = ({ children: e, className: n }) => /* @__PURE__ */ c("h2", {
71
- className: s(t.title, n),
72
- "data-testid": "bottom-sheet-title",
73
- children: e
74
- }), y = ({ children: e, className: n }) => /* @__PURE__ */ c("p", {
75
- className: s(t.description, n),
76
- "data-testid": "bottom-sheet-description",
77
- children: e
78
- }), b = ({ children: e, className: n }) => /* @__PURE__ */ c("div", {
79
- className: s(t.body, n),
74
+ }), y = ({ children: e, className: n }) => {
75
+ let { titleId: r } = f();
76
+ return /* @__PURE__ */ l("h2", {
77
+ id: r,
78
+ className: c(t.title, n),
79
+ "data-testid": "bottom-sheet-title",
80
+ children: e
81
+ });
82
+ }, b = ({ children: e, className: n }) => {
83
+ let { descriptionId: r } = f();
84
+ return /* @__PURE__ */ l("p", {
85
+ id: r,
86
+ className: c(t.description, n),
87
+ "data-testid": "bottom-sheet-description",
88
+ children: e
89
+ });
90
+ }, x = ({ children: e, className: n }) => /* @__PURE__ */ l("div", {
91
+ className: c(t.body, n),
80
92
  "data-testid": "bottom-sheet-body",
81
93
  children: e
82
- }), x = (e) => /* @__PURE__ */ c(f, { ...e });
83
- x.displayName = "BottomSheet", x.Trigger = p, x.Content = h, x.Header = g, x.Footer = _, x.Title = v, x.Description = y, x.Body = b, x.Close = m;
94
+ }), S = (e) => /* @__PURE__ */ l(p, { ...e });
95
+ S.displayName = "BottomSheet", S.Trigger = m, S.Content = g, S.Header = _, S.Footer = v, S.Title = y, S.Description = b, S.Body = x, S.Close = h;
84
96
  //#endregion
85
- export { x as BottomSheet, x as default, b as BottomSheetBody, m as BottomSheetClose, h as BottomSheetContent, y as BottomSheetDescription, _ as BottomSheetFooter, g as BottomSheetHeader, v as BottomSheetTitle, p as BottomSheetTrigger };
97
+ export { S as BottomSheet, S as default, x as BottomSheetBody, h as BottomSheetClose, g as BottomSheetContent, b as BottomSheetDescription, v as BottomSheetFooter, _ as BottomSheetHeader, y as BottomSheetTitle, m as BottomSheetTrigger };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../../hooks/useMergedRef.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("./context-menu.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("@floating-ui/react");var u=o.default.createContext(null),d=({children:e,menu:i,className:d,disabled:f=!1,asChild:p=!1})=>{let[m,h]=(0,o.useState)(!1),[g,_]=(0,o.useState)(null),[v,y]=(0,o.useState)(!1),b=(0,o.useRef)([]),x=(0,o.useRef)(null),S=r.useMergedRef(x),{refs:C,floatingStyles:w,context:T}=(0,l.useFloating)({open:m,onOpenChange:e=>{h(e),e||(_(null),y(!1))},strategy:`fixed`,middleware:[(0,l.flip)(),(0,l.shift)({padding:10})],whileElementsMounted:l.autoUpdate}),E=(0,l.useDismiss)(T),D=(0,l.useRole)(T,{role:`menu`}),O=(0,l.useListNavigation)(T,{listRef:b,activeIndex:g,onNavigate:_,loop:!0}),{getFloatingProps:k,getItemProps:A}=(0,l.useInteractions)([E,D,O]),j=(e,t,n)=>{C.setReference({getBoundingClientRect(){return{width:0,height:0,x:e,y:t,top:t,left:e,right:e,bottom:t}}}),y(n),h(!0),_(0)},M=e=>{if(e.preventDefault(),f)return;let t=e.clientX===0&&e.clientY===0;j(e.clientX,e.clientY,t)},N=e=>{if(!f&&(e.key===`Enter`||e.key===` `)){e.preventDefault();let t=x.current?.getBoundingClientRect();t&&j(t.left+t.width/2,t.top+t.height/2,!0)}},P=()=>{h(!1)};return(0,c.jsxs)(p?t.Root:`div`,{ref:S,className:(0,s.default)(`wim-context-menu`,!p&&a.default.container,f&&a.default.disabled,d),onContextMenu:M,onKeyDown:N,tabIndex:f?-1:0,"data-testid":`context-menu-trigger`,children:[(0,c.jsx)(t.Slottable,{children:e}),(0,c.jsx)(l.FloatingPortal,{children:(0,c.jsx)(n.Transition,{show:m,preset:`fade`,children:(0,c.jsx)(l.FloatingFocusManager,{context:T,modal:!0,initialFocus:v?g??0:-1,children:(0,c.jsx)(`div`,{ref:C.setFloating,className:a.default.menu,style:w,...k({onClick:P,onKeyDown(e){e.key===`Escape`&&P()}}),children:(0,c.jsx)(u.Provider,{value:{activeIndex:g,getItemProps:A},children:(0,c.jsx)(l.FloatingList,{elementsRef:b,children:i})})})})})})]})},f=({children:e,onClick:t,disabled:n=!1,className:r,icon:d,danger:f=!1,asChild:p=!1})=>{let{ref:m,index:h}=(0,l.useListItem)(),g=(0,o.useContext)(u),_=()=>{n||t&&t()},v=g?g.getItemProps({index:h,onClick:()=>_(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),_())}}):{},y={ref:m,className:(0,s.default)(a.default.item,r),disabled:n,danger:f,icon:d,role:`menuitem`,tabIndex:g?.activeIndex===h?0:-1,...v};return p?(0,c.jsx)(`li`,{role:`none`,children:(0,c.jsx)(i.BaseListItem,{asChild:!0,...y,children:e})}):(0,c.jsx)(i.BaseListItem,{...y,children:e})},p=({className:e})=>(0,c.jsx)(`div`,{className:(0,s.default)(a.default.divider,e),role:`separator`}),m=({children:e,title:t,className:n})=>{let r=o.default.useId();return(0,c.jsxs)(`div`,{role:`group`,"aria-labelledby":t?r:void 0,className:n,"data-testid":`context-menu-group`,children:[t&&(0,c.jsx)(`div`,{id:r,className:a.default.groupTitle,"data-testid":`context-menu-group-title`,"aria-hidden":`true`,children:t}),e]})},h=e=>(0,c.jsx)(d,{...e});h.displayName=`ContextMenu`,h.Item=f,h.Divider=p,h.Group=m,exports.ContextMenu=h,exports.default=h,exports.ContextMenuDivider=p,exports.ContextMenuGroup=m,exports.ContextMenuItem=f;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../../hooks/useMergedRef.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("./context-menu.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("@floating-ui/react");var u=o.default.createContext(null),d=({children:e,menu:i,className:d,disabled:f=!1,asChild:p=!1})=>{let[m,h]=(0,o.useState)(!1),[g,_]=(0,o.useState)(null),[v,y]=(0,o.useState)(!1),b=(0,o.useRef)([]),x=(0,o.useRef)(null),S=r.useMergedRef(x),{refs:C,floatingStyles:w,context:T}=(0,l.useFloating)({open:m,onOpenChange:e=>{h(e),e||(_(null),y(!1))},strategy:`fixed`,middleware:[(0,l.flip)(),(0,l.shift)({padding:10})],whileElementsMounted:l.autoUpdate}),E=(0,l.useDismiss)(T),D=(0,l.useRole)(T,{role:`menu`}),O=(0,l.useListNavigation)(T,{listRef:b,activeIndex:g,onNavigate:_,loop:!0}),{getFloatingProps:k,getItemProps:A}=(0,l.useInteractions)([E,D,O]),j=(e,t,n)=>{C.setReference({getBoundingClientRect(){return{width:0,height:0,x:e,y:t,top:t,left:e,right:e,bottom:t}}}),y(n),h(!0),_(0)},M=e=>{if(e.preventDefault(),f)return;let t=e.clientX===0&&e.clientY===0;j(e.clientX,e.clientY,t)},N=e=>{if(!f&&(e.key===`Enter`||e.key===` `)){e.preventDefault();let t=x.current?.getBoundingClientRect();t&&j(t.left+t.width/2,t.top+t.height/2,!0)}},P=()=>{h(!1)};return(0,c.jsxs)(p?t.Root:`div`,{ref:S,className:(0,s.default)(`wim-context-menu`,!p&&a.default.container,f&&a.default.disabled,d),onContextMenu:M,onKeyDown:N,tabIndex:f?-1:0,"data-testid":`context-menu-trigger`,children:[(0,c.jsx)(t.Slottable,{children:e}),(0,c.jsx)(l.FloatingPortal,{preserveTabOrder:!1,children:(0,c.jsx)(n.Transition,{show:m,preset:`fade`,children:(0,c.jsx)(l.FloatingFocusManager,{context:T,modal:!1,guards:!1,initialFocus:v?g??0:-1,children:(0,c.jsx)(`div`,{ref:C.setFloating,className:a.default.menu,style:w,...k({onClick:P,onKeyDown(e){e.key===`Escape`&&P(),e.key===`Tab`&&(e.preventDefault(),P())}}),"aria-labelledby":void 0,children:(0,c.jsx)(u.Provider,{value:{activeIndex:g,getItemProps:A},children:(0,c.jsx)(l.FloatingList,{elementsRef:b,children:i})})})})})})]})},f=({children:e,onClick:t,disabled:n=!1,className:r,icon:d,danger:f=!1,asChild:p=!1})=>{let{ref:m,index:h}=(0,l.useListItem)(),g=(0,o.useContext)(u),_=()=>{n||t&&t()},v=g?g.getItemProps({index:h,onClick:()=>_(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),_())}}):{},y={ref:m,className:(0,s.default)(a.default.item,r),disabled:n,danger:f,icon:d,role:`menuitem`,tabIndex:g?.activeIndex===h?0:-1,...v};return p?(0,c.jsx)(`li`,{role:`none`,children:(0,c.jsx)(i.BaseListItem,{asChild:!0,...y,children:e})}):(0,c.jsx)(i.BaseListItem,{...y,children:e})},p=({className:e})=>(0,c.jsx)(`div`,{className:(0,s.default)(a.default.divider,e),role:`separator`}),m=({children:e,title:t,className:n})=>{let r=o.default.useId();return(0,c.jsxs)(`div`,{role:`group`,"aria-labelledby":t?r:void 0,className:n,"data-testid":`context-menu-group`,children:[t&&(0,c.jsx)(`div`,{id:r,className:a.default.groupTitle,"data-testid":`context-menu-group-title`,"aria-hidden":`true`,children:t}),e]})},h=e=>(0,c.jsx)(d,{...e});h.displayName=`ContextMenu`,h.Item=f,h.Divider=p,h.Group=m,exports.ContextMenu=h,exports.default=h,exports.ContextMenuDivider=p,exports.ContextMenuGroup=m,exports.ContextMenuItem=f;