altum 0.0.10 → 0.0.11

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/CHANGELOG.md CHANGED
@@ -8,6 +8,14 @@
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.0.11] — 2026-10-03
12
+
13
+ **`Modal`** — `size` `sm` / `md` / `lg` (400 / 500 / 600px): ширина не больше окна и отступает на 16px от краёв. **`CommandPalette`** той же ширины, что **`Modal`** `md`.
14
+
15
+ **Добавлено.** **`Menu`** и **`ActionList`** принимают в `items` `{ type: 'separator' }`, как **`Listbox`**. Линия не выбирается.
16
+
17
+ **Исправлено.** **`Tabs`** больше не сжимает полосу вкладок по высоте. `popovertarget` и `popovertargetaction` в нижнем регистре — React 18 ставит атрибут на кнопку **`Select`** и других триггеров.
18
+
11
19
  ## [0.0.10] — 2026-10-03
12
20
 
13
21
  **`Select`** рисует один `TextField`: поле задаётся `inputProps`, его же настраивают **`SuggestField`**, **`AutocompleteField`** и **`MultiSelect`**.
@@ -1 +1 @@
1
- "use client";import{jsxs as D,jsx as u}from"react/jsx-runtime";import{useRef as g,useMemo as E,useLayoutEffect as I}from"react";import{Listbox as M}from"../Listbox/Listbox.js";import{cn as L}from"../../core/utils/cn.js";import{uRef as O}from"../../core/utils/bundle.js";import{useLocale as _}from"../../locales/localeContext.js";import{SearchField as j}from"../SearchField/SearchField.js";import{buildActionListOptions as k,applyActionListFilter as v,moveActionListHighlight as q,ACTION_LIST_EMPTY_ATTR as z}from"./actionListFilter.js";import n from"./ActionList.module.css.js";import H from"../../styles/utilities.module.css.js";import{ruSlice as K}from"../../locales/slices/actionList.ru.js";import{useFallbackId as B}from"../../core/utils/useFallbackId.js";const Q={actionList:K};function Y({items:o,groups:b,className:y,id:x,"aria-label":A,onAction:N,onHighlightChange:m,filterable:p=!1,filterPlaceholder:T,query:r,onQueryChange:C,emptyText:S,rootRef:F,...P}){const{t:s}=_(Q),f=B(x),l=g(null),a=g(m);a.current=m;const R=E(()=>k(o),[o]),w=e=>{const t=o.find(c=>c.id===e);t&&(t.onSelect?.(),N?.(t))},d=T??s("actionList.filterPlaceholder"),h=S??s("actionList.empty"),i=p||r!==void 0;return I(()=>{const e=l.current;if(!e||!i)return;const t=e.querySelector("input"),c=r!==void 0?r:t?.value??"";v(e,c,a.current)},[i,r,o]),D("div",{...P,ref:O(F,l),className:L(n.root,y),children:[p&&u(j,{wrapperClassName:n.filter,size:"sm",keepPlaceholder:!0,"aria-label":d,placeholder:d,value:r,autoComplete:"off",role:"combobox","aria-expanded":!0,"aria-controls":f,"aria-autocomplete":"list",autoFocus:!0,onChange:e=>{const t=l.current;t&&v(t,e.target.value,a.current),C?.(e.target.value)},onKeyDown:e=>{const t=l.current;t&&q(t,e,a.current)}}),u(M,{id:f,className:L(H.scrollport,n.list),options:R,groups:b,navigation:"highlight",multiline:!0,virtualized:i?!1:void 0,noOptionsText:h,"aria-label":A??s("actionList.ariaLabel"),onMouseDown:i?e=>{const t=e.target;t instanceof Element&&t.closest('[role="option"]')&&e.preventDefault()}:void 0,onSelect:w}),i&&o.length>0?u("p",{[z]:"",className:n.empty,children:h}):null]})}export{Y as ActionList};
1
+ "use client";import{jsxs as w,jsx as u}from"react/jsx-runtime";import{useRef as g,useMemo as D,useLayoutEffect as E}from"react";import{Listbox as M}from"../Listbox/Listbox.js";import{cn as L}from"../../core/utils/cn.js";import{uRef as O}from"../../core/utils/bundle.js";import{useLocale as _}from"../../locales/localeContext.js";import{SearchField as j}from"../SearchField/SearchField.js";import{buildActionListOptions as k,applyActionListFilter as v,moveActionListHighlight as q,ACTION_LIST_EMPTY_ATTR as z,isActionListItem as H}from"./actionListFilter.js";import s from"./ActionList.module.css.js";import K from"../../styles/utilities.module.css.js";import{ruSlice as J}from"../../locales/slices/actionList.ru.js";import{useFallbackId as Q}from"../../core/utils/useFallbackId.js";const Y={actionList:J};function B({items:o,groups:b,className:y,id:x,"aria-label":A,onAction:N,onHighlightChange:m,filterable:p=!1,filterPlaceholder:T,query:r,onQueryChange:C,emptyText:S,rootRef:F,...I}){const{t:c}=_(Y),f=Q(x),l=g(null),n=g(m);n.current=m;const P=D(()=>k(o),[o]),R=e=>{const t=o.find(a=>H(a)&&a.id===e);t&&(t.onSelect?.(),N?.(t))},d=T??c("actionList.filterPlaceholder"),h=S??c("actionList.empty"),i=p||r!==void 0;return E(()=>{const e=l.current;if(!e||!i)return;const t=e.querySelector("input"),a=r!==void 0?r:t?.value??"";v(e,a,n.current)},[i,r,o]),w("div",{...I,ref:O(F,l),className:L(s.root,y),children:[p&&u(j,{wrapperClassName:s.filter,size:"sm",keepPlaceholder:!0,"aria-label":d,placeholder:d,value:r,autoComplete:"off",role:"combobox","aria-expanded":!0,"aria-controls":f,"aria-autocomplete":"list",autoFocus:!0,onChange:e=>{const t=l.current;t&&v(t,e.target.value,n.current),C?.(e.target.value)},onKeyDown:e=>{const t=l.current;t&&q(t,e,n.current)}}),u(M,{id:f,className:L(K.scrollport,s.list),options:P,groups:b,navigation:"highlight",multiline:!0,virtualized:i?!1:void 0,noOptionsText:h,"aria-label":A??c("actionList.ariaLabel"),onMouseDown:i?e=>{const t=e.target;t instanceof Element&&t.closest('[role="option"]')&&e.preventDefault()}:void 0,onSelect:R}),i&&o.length>0?u("p",{[z]:"",className:s.empty,children:h}):null]})}export{B as ActionList};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import{LISTBOX_HIGHLIGHTED_ATTR as u,LISTBOX_INDEX_ATTR as I}from"../Listbox/Listbox.utils.js";import{ActionItem as y}from"./ActionItem.js";const d="data-filter",f="data-action-list-empty",L='[role="option"]:not([hidden]):not([disabled])';function g(t){return[t.textValue??(typeof t.label=="string"||typeof t.label=="number"?String(t.label):t.id),...t.keywords??[],typeof t.description=="string"?t.description:"",t.id].join(" ")}function S(t){return t.map(e=>{const n=g(e);return{value:e.id,label:m(y,{label:e.label,icon:e.icon,description:e.description,shortcut:e.shortcut}),textValue:n,disabled:e.disabled,groupId:e.groupId,buttonProps:{...e.buttonProps,[d]:n.toLowerCase()}}})}function h(t){return Array.from(t.querySelectorAll(L))}const A="data-list-focus";function p(t,e,n){const o=t.querySelector("input");if(t.querySelectorAll(`[${u}="true"]`).forEach(r=>{r!==e&&r.removeAttribute(u)}),!e)return o?.removeAttribute("aria-activedescendant"),t.removeAttribute(A),-1;e.setAttribute(u,"true"),t.setAttribute(A,""),e.id&&o?o.setAttribute("aria-activedescendant",e.id):o?.removeAttribute("aria-activedescendant"),n&&e.scrollIntoView({block:"nearest"});const i=e.getAttribute(I);return i==null?-1:Number(i)}function v(t,e,n){const o=e.trim().toLowerCase(),i=t.querySelectorAll('[role="option"]');let r=0;i.forEach(c=>{const a=c.getAttribute(d)??"",b=o.length===0||a.includes(o);c.toggleAttribute("hidden",!b),b&&(r+=1)}),t.querySelectorAll('[role="group"]').forEach(c=>{const a=c.querySelector('[role="option"]:not([hidden])')!=null;c.toggleAttribute("hidden",!a)});const l=t.querySelector(`[${f}]`);l&&l.toggleAttribute("data-visible",i.length>0&&r===0);const s=o.length>0?h(t)[0]:void 0,T=p(t,s,o.length>0);n?.(T)}function _(t,e,n){const o=h(t);if(o.length===0)return;const i=t.querySelector(`[role="option"][${u}="true"]:not([hidden])`);let r=i?o.indexOf(i):-1;const l=e.key;if(l==="ArrowDown")r=(r+1)%o.length;else if(l==="ArrowUp")r=(r-1+o.length)%o.length;else if(l==="Home")r=0;else if(l==="End")r=o.length-1;else if(l==="Enter"){e.preventDefault(),(i??o[0])?.click();return}else return;e.preventDefault();const s=p(t,o[r],!0);n?.(s)}export{f as ACTION_LIST_EMPTY_ATTR,d as ACTION_LIST_FILTER_ATTR,A as ACTION_LIST_FOCUS_ATTR,g as actionListItemText,v as applyActionListFilter,S as buildActionListOptions,_ as moveActionListHighlight,p as paintActionListHighlight};
1
+ "use client";import{jsx as _}from"react/jsx-runtime";import{LISTBOX_HIGHLIGHTED_ATTR as a,LISTBOX_INDEX_ATTR as E}from"../Listbox/Listbox.utils.js";import{ActionItem as q}from"./ActionItem.js";const p="data-filter",m="data-action-list-empty",O='[role="option"]:not([hidden]):not([disabled])';function T(t){return!("type"in t&&t.type==="separator")}function y(t){return[t.textValue??(typeof t.label=="string"||typeof t.label=="number"?String(t.label):t.id),...t.keywords??[],typeof t.description=="string"?t.description:"",t.id].join(" ")}function w(t){return t.map(e=>{if(!T(e))return{type:"separator",id:e.id,groupId:e.groupId};const l=y(e);return{value:e.id,label:_(q,{label:e.label,icon:e.icon,description:e.description,shortcut:e.shortcut}),textValue:l,disabled:e.disabled,groupId:e.groupId,buttonProps:{...e.buttonProps,[p]:l.toLowerCase()}}})}function I(t){return Array.from(t.querySelectorAll(O))}const A="data-list-focus";function g(t,e,l){const r=t.querySelector("input");if(t.querySelectorAll(`[${a}="true"]`).forEach(o=>{o!==e&&o.removeAttribute(a)}),!e)return r?.removeAttribute("aria-activedescendant"),t.removeAttribute(A),-1;e.setAttribute(a,"true"),t.setAttribute(A,""),e.id&&r?r.setAttribute("aria-activedescendant",e.id):r?.removeAttribute("aria-activedescendant"),l&&e.scrollIntoView({block:"nearest"});const n=e.getAttribute(E);return n==null?-1:Number(n)}function x(t,e,l){const r=e.trim().toLowerCase(),n=t.querySelectorAll('[role="option"]');let o=0;n.forEach(i=>{const c=i.getAttribute(p)??"",s=r.length===0||c.includes(r);i.toggleAttribute("hidden",!s),s&&(o+=1)}),t.querySelectorAll('[role="group"]').forEach(i=>{const c=i.querySelector('[role="option"]:not([hidden])')!=null;i.toggleAttribute("hidden",!c)}),t.querySelectorAll("[data-separator]").forEach(i=>{if(r.length===0){i.toggleAttribute("hidden",!1);return}const c=i.parentElement;if(!c)return;const s=Array.from(c.children),f=s.indexOf(i),b=h=>h.getAttribute("role")==="option"&&!h.hasAttribute("hidden"),S=s.slice(0,f).some(b),v=s.slice(f+1).some(b);i.toggleAttribute("hidden",!(S&&v))});const u=t.querySelector(`[${m}]`);u&&u.toggleAttribute("data-visible",n.length>0&&o===0);const d=r.length>0?I(t)[0]:void 0,L=g(t,d,r.length>0);l?.(L)}function C(t,e,l){const r=I(t);if(r.length===0)return;const n=t.querySelector(`[role="option"][${a}="true"]:not([hidden])`);let o=n?r.indexOf(n):-1;const u=e.key;if(u==="ArrowDown")o=(o+1)%r.length;else if(u==="ArrowUp")o=(o-1+r.length)%r.length;else if(u==="Home")o=0;else if(u==="End")o=r.length-1;else if(u==="Enter"){e.preventDefault(),(n??r[0])?.click();return}else return;e.preventDefault();const d=g(t,r[o],!0);l?.(d)}export{m as ACTION_LIST_EMPTY_ATTR,p as ACTION_LIST_FILTER_ATTR,A as ACTION_LIST_FOCUS_ATTR,y as actionListItemText,x as applyActionListFilter,w as buildActionListOptions,T as isActionListItem,C as moveActionListHighlight,g as paintActionListHighlight};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../core/utils/injectCss.js";var t=".-tr8s{align-self:flex-start;display:flex;flex-direction:column;margin-top:\u00028);max-height:min(72vh,\u0013command-palette-max-height));max-width:\u0013command-palette-max-width);overflow:hidden;width:100%}.-tr8s ._6FJ4A{border-bottom:\u000bcolor-dropdown-border);color:\u0001muted);flex-shrink:0;font-size:\u00032xs);line-\u000fg-line-height-2xs);padding:\u00023) \u00023) \u00022)}.-tr8s .h6lAS{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.-tr8s .sPMvY{border-bottom:\u000bcolor-dropdown-border);flex-shrink:0;padding:\u00022) \u00023)}.-tr8s [data-list-focus] .sPMvY:is(:focus-within,[data-active],:has([aria-expanded=true])):not(\u001d]):not([data-error]):not([data-readonly]){\u0014field-control-border:\u0001field-border);\u0014field-control-shadow:none;\u0014field-label-color:\u0006label)}.-tr8s [data-list-focus] .sPMvY:hover:not(\u001d]):not([data-readonly]){\u0014field-control-border:\u0001border-hover)}.-tr8s .cYTlj{flex:1 1 auto;min-height:0;padding:\u00022)}.-tr8s [hidden]{display:none!important}.-tr8s .oSIlh{color:\u0006label);display:none;font-size:\u0003base);padding:\u00023) \u00024);text-align:center}[data-visible]:is(.-tr8s .oSIlh){display:block}.-tr8s .QSkKY{padding:\u00022) \u00023)}";const l={panel:"-tr8s",title:"_6FJ4A",body:"h6lAS",filter:"sPMvY",list:"cYTlj",empty:"oSIlh",footer:"QSkKY"};a(t);export{l as default};
1
+ "use client";import{injectCss as a}from"../../core/utils/injectCss.js";var t=".-tr8s{align-self:flex-start;display:flex;flex-direction:column;margin-top:\u00028);margin-inline:auto;max-height:min(72vh,\u0013command-palette-max-height));overflow:hidden;width:min(\u0013command-palette-max-width),calc(100dvw - \u00024)*2))}.-tr8s ._6FJ4A{border-bottom:\u000bcolor-dropdown-border);color:\u0001muted);flex-shrink:0;font-size:\u00032xs);line-\u000fg-line-height-2xs);padding:\u00023) \u00023) \u00022)}.-tr8s .h6lAS{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.-tr8s .sPMvY{border-bottom:\u000bcolor-dropdown-border);flex-shrink:0;padding:\u00022) \u00023)}.-tr8s [data-list-focus] .sPMvY:is(:focus-within,[data-active],:has([aria-expanded=true])):not(\u001d]):not([data-error]):not([data-readonly]){\u0014field-control-border:\u0001field-border);\u0014field-control-shadow:none;\u0014field-label-color:\u0006label)}.-tr8s [data-list-focus] .sPMvY:hover:not(\u001d]):not([data-readonly]){\u0014field-control-border:\u0001border-hover)}.-tr8s .cYTlj{flex:1 1 auto;min-height:0;padding:\u00022)}.-tr8s [hidden]{display:none!important}.-tr8s .oSIlh{color:\u0006label);display:none;font-size:\u0003base);padding:\u00023) \u00024);text-align:center}[data-visible]:is(.-tr8s .oSIlh){display:block}.-tr8s .QSkKY{padding:\u00022) \u00023)}";const l={panel:"-tr8s",title:"_6FJ4A",body:"h6lAS",filter:"sPMvY",list:"cYTlj",empty:"oSIlh",footer:"QSkKY"};a(t);export{l as default};
@@ -1 +1 @@
1
- "use client";import{jsx as o,jsxs as b}from"react/jsx-runtime";import{useRef as w,useState as u}from"react";import{Calendar as t}from"../Calendar/Calendar.js";import{FieldBaseIcon as O}from"../TextField/TextField.js";import{IconCalendar as V}from"../../icons/icons/IconCalendar.js";import{MaskedField as q}from"../MaskedField/MaskedField.js";import{Popover as E}from"../Popover/Popover.js";import{bindFieldChromeRef as H}from"../../core/utils/dom.js";import{commitMaskedValue as L}from"../../core/utils/commitMaskedValue.js";import{uRef as X}from"../../core/utils/bundle.js";import{formatDateToDigits as z,parseDigitsToDate as G}from"../../core/utils/date.js";import{popoverDomId as J,hidePopover as K,showPopover as x}from"../../core/utils/popover.js";import k from"./DateField.module.css.js";import{useFallbackId as Q}from"../../core/utils/useFallbackId.js";function U({value:i,onChange:a,label:m,width:F="md",disabled:v=!1,readOnly:h=!1,prefix:R,onClear:g,onClick:y,onFocus:A,inputRef:P,...I}){const C=w(null),n=w(null),N=J(Q()),D=z(i),p=i?.getTime(),[M,s]=u(D),[S,j]=u(p),[B,c]=u(()=>i??new Date),l=!v&&!h;p!==S&&(j(p),s(D));const T=(e,d)=>o(q,{...I,inputRef:X(P,d?H(d):void 0),label:m,width:F,mask:"99.99.9999",value:M,disabled:v,readOnly:h,type:"text",prefix:R??o(O,{children:o(V,{})}),popoverTarget:e?.popoverTarget,popoverTargetAction:e?.popoverTargetAction,onClick:r=>{y?.(r),e?.onClick?.(r),l&&!r.defaultPrevented&&x(n.current)},onFocus:r=>{A?.(r),l&&r.currentTarget.matches(":focus-visible")&&x(n.current)},onChange:r=>{l&&(s(r),L(r,G,f=>{a(f),f&&c(f)}))},onClear:g?()=>{s(""),a(void 0),g()}:void 0});return o("div",{className:k.host,ref:C,children:l?o(E,{id:N,popoverTargetAction:"show",role:"dialog",side:"bottom",align:"start",widthMode:"content",className:k.panel,panelRef:n,onToggle:e=>W(C.current,e),trigger:(e,d)=>T(e,d),children:o(t.Provider,{value:i,viewDate:B,onViewDateChange:c,onChange:e=>{e instanceof Date&&(a(e),c(e),K(n.current))},children:b(t.Root,{children:[b(t.Header,{children:[o(t.Nav,{direction:"prev"}),o(t.Title,{}),o(t.Nav,{direction:"next"})]}),o(t.Body,{})]})})}):T()})}function W(i,a){i?.querySelectorAll("[data-field-control]").forEach(m=>{m.setAttribute("aria-expanded",a?"true":"false")})}export{U as DateField};
1
+ "use client";import{jsx as o,jsxs as D}from"react/jsx-runtime";import{useRef as w,useState as u}from"react";import{Calendar as t}from"../Calendar/Calendar.js";import{FieldBaseIcon as O}from"../TextField/TextField.js";import{IconCalendar as V}from"../../icons/icons/IconCalendar.js";import{MaskedField as q}from"../MaskedField/MaskedField.js";import{Popover as E}from"../Popover/Popover.js";import{bindFieldChromeRef as H}from"../../core/utils/dom.js";import{commitMaskedValue as L}from"../../core/utils/commitMaskedValue.js";import{uRef as X}from"../../core/utils/bundle.js";import{formatDateToDigits as z,parseDigitsToDate as G}from"../../core/utils/date.js";import{popoverDomId as J,hidePopover as K,showPopover as T}from"../../core/utils/popover.js";import k from"./DateField.module.css.js";import{useFallbackId as Q}from"../../core/utils/useFallbackId.js";function U({value:i,onChange:a,label:m,width:F="md",disabled:v=!1,readOnly:h=!1,prefix:R,onClear:g,onClick:y,onFocus:P,inputRef:I,...N}){const C=w(null),n=w(null),A=J(Q()),b=z(i),p=i?.getTime(),[M,s]=u(b),[S,j]=u(p),[B,c]=u(()=>i??new Date),l=!v&&!h;p!==S&&(j(p),s(b));const x=(e,d)=>o(q,{...N,inputRef:X(I,d?H(d):void 0),label:m,width:F,mask:"99.99.9999",value:M,disabled:v,readOnly:h,type:"text",prefix:R??o(O,{children:o(V,{})}),popovertarget:e?.popovertarget,popovertargetaction:e?.popovertargetaction,onClick:r=>{y?.(r),e?.onClick?.(r),l&&!r.defaultPrevented&&T(n.current)},onFocus:r=>{P?.(r),l&&r.currentTarget.matches(":focus-visible")&&T(n.current)},onChange:r=>{l&&(s(r),L(r,G,f=>{a(f),f&&c(f)}))},onClear:g?()=>{s(""),a(void 0),g()}:void 0});return o("div",{className:k.host,ref:C,children:l?o(E,{id:A,popoverTargetAction:"show",role:"dialog",side:"bottom",align:"start",widthMode:"content",className:k.panel,panelRef:n,onToggle:e=>W(C.current,e),trigger:(e,d)=>x(e,d),children:o(t.Provider,{value:i,viewDate:B,onViewDateChange:c,onChange:e=>{e instanceof Date&&(a(e),c(e),K(n.current))},children:D(t.Root,{children:[D(t.Header,{children:[o(t.Nav,{direction:"prev"}),o(t.Title,{}),o(t.Nav,{direction:"next"})]}),o(t.Body,{})]})})}):x()})}function W(i,a){i?.querySelectorAll("[data-field-control]").forEach(m=>{m.setAttribute("aria-expanded",a?"true":"false")})}export{U as DateField};
@@ -1 +1 @@
1
- "use client";import{jsx as i,jsxs as V}from"react/jsx-runtime";import{useRef as X,useId as pe,useState as C}from"react";import{MaskedField as q}from"../MaskedField/MaskedField.js";import{Calendar as p}from"../Calendar/Calendar.js";import{Popover as fe}from"../Popover/Popover.js";import b from"./DateRangeField.module.css.js";import me from"../../styles/utilities.module.css.js";import{cn as Y}from"../../core/utils/cn.js";import{bindFieldChromeRef as ue}from"../../core/utils/dom.js";import{uRef as Z}from"../../core/utils/bundle.js";import{formatDateToDigits as f,parseDigitsToDate as ee}from"../../core/utils/date.js";import{popoverDomId as ge,hidePopover as he,showPopover as G}from"../../core/utils/popover.js";import{useLocale as ve}from"../../locales/localeContext.js";import{ruSlice as be}from"../../locales/slices/dateRangeField.ru.js";import{useFallbackId as Re}from"../../core/utils/useFallbackId.js";const Te={dateRangeField:be},te=e=>!e.start&&!e.end?"":e.start&&!e.end?f(e.start):e.start&&e.end?`${f(e.start)}${f(e.end)}`:"",re=(e,a)=>(e?.getTime()??null)===(a?.getTime()??null);function Ce({isSplit:e,size:a="md",width:R,startLabel:L,endLabel:w,label:D,startDigits:z,endDigits:x,singleDigits:N,disabled:m,readOnly:u,error:S,description:k,prefix:A,postfix:O,onClear:P,clearLabel:I,fieldId:$,inputRef:F,slot:l,anchorRef:s,panelRef:g,interactive:d,onStart:E,onEnd:M,onRange:j}){const c=n=>{l?.onClick?.(n),d&&!n.defaultPrevented&&G(g.current)},B=n=>{d&&n.currentTarget.matches(":focus-visible")&&G(g.current)};return e?V("div",{className:b.splitFields,"data-size":a!=="md"?a:void 0,ref:s,popoverTarget:l?.popoverTarget,popoverTargetAction:l?.popoverTargetAction,onClick:l||d?c:void 0,onFocusCapture:n=>{d&&n.target instanceof HTMLElement&&n.target.matches(":focus-visible")&&G(g.current)},children:[i("div",{className:b.fieldSlot,children:i(q,{inputRef:F,label:L,size:a,mask:"99.99.9999",type:"text",value:z,onChange:E,disabled:m,readOnly:u})}),i("span",{className:Y(me.fCenter,b.dash),"aria-hidden":!0,children:"\u2014"}),i("div",{className:b.fieldSlot,children:i(q,{label:w,size:a,mask:"99.99.9999",type:"text",value:x,onChange:M,disabled:m,readOnly:u})})]}):i(q,{inputRef:Z(F,s?ue(s):void 0),id:$,label:D,size:a,width:R,mask:"99.99.9999 \u2014 99.99.9999",type:"text",value:N,error:S,description:k,prefix:A,postfix:O,onClear:P,clearLabel:I,disabled:m,readOnly:u,popoverTarget:l?.popoverTarget,popoverTargetAction:l?.popoverTargetAction,onClick:c,onFocus:B,onChange:j})}const ae=(e,a)=>{if(e.length===8)return ee(e);if(e.length!==0)return a};function De({value:e,onChange:a,label:R,startLabel:L,endLabel:w,layout:D="single",size:z="md",width:x="md",className:N,disabled:m=!1,readOnly:u=!1,error:S,description:k,prefix:A,postfix:O,onClear:P,clearLabel:I,rootRef:$,inputRef:F,...l}){const{messages:s}=ve(Te),g=X(null),d=X(null),E=ge(Re()),M=pe(),j=D==="split",c=!m&&!u,B=e.start?.getTime(),n=e.end?.getTime(),H=`${B??""}|${n??""}`,[ie,J]=C(()=>f(e.start)),[ne,K]=C(()=>f(e.end)),[oe,Q]=C(()=>te(e)),[le,de]=C(H),[se,T]=C(()=>e.end??e.start??new Date);H!==le&&(de(H),J(f(e.start)),K(f(e.end)),Q(te(e)));const y=t=>{re(t.start,e.start)&&re(t.end,e.end)||a(t)},U=(t,o)=>{if(!c||(o==="start"?J(t):K(t),t.length!==0&&t.length!==8))return;const r=t?ee(t):void 0;t&&!r||(o==="start"?y({start:r,end:e.end&&r&&r>e.end?void 0:e.end}):e.start&&r&&r<e.start?y({start:r,end:e.start}):y({start:e.start,end:r}),r&&T(r))},ce=t=>{if(!c)return;Q(t);const o=t.slice(0,8),r=t.slice(8,16);let h=ae(o,e.start),v=ae(r,e.end);h&&v&&v<h&&([h,v]=[v,h]),y({start:h,end:v});const _=r.length===8?v:o.length===8?h:void 0;_&&T(_)},W=(t,o)=>i(Ce,{isSplit:j,size:z,width:x,startLabel:L??s.dateRangeField.start,endLabel:w??s.dateRangeField.end,label:R??s.dateRangeField.label,startDigits:ie,endDigits:ne,singleDigits:oe,disabled:m,readOnly:u,error:S,description:k,prefix:A,postfix:O,onClear:P,clearLabel:I,fieldId:M,inputRef:F,slot:t,anchorRef:o,panelRef:d,interactive:c,onStart:r=>U(r,"start"),onEnd:r=>U(r,"end"),onRange:ce});return i("div",{ref:Z($,g),className:Y(b.root,N),"data-layout":D,"data-width":x==="full"?"full":void 0,...l,children:c?i(fe,{id:E,popoverTargetAction:"show",role:"dialog",side:"bottom",align:"start",widthMode:"content",className:b.panel,panelRef:d,onToggle:t=>xe(g.current,t),trigger:(t,o)=>W(t,o),children:i(p.Provider,{selectionMode:"range",value:e,viewDate:se,onViewDateChange:T,onChange:t=>{t instanceof Date||(a(t),t.end?T(t.end):t.start&&T(t.start),t.start&&t.end&&he(d.current))},children:V(p.Root,{children:[V(p.Header,{children:[i(p.Nav,{direction:"prev"}),i(p.Title,{}),i(p.Nav,{direction:"next"})]}),i(p.Body,{})]})})}):W()})}function xe(e,a){e?.querySelectorAll("[data-field-control]").forEach(R=>{R.setAttribute("aria-expanded",a?"true":"false")})}export{De as DateRangeField};
1
+ "use client";import{jsx as i,jsxs as q}from"react/jsx-runtime";import{useRef as X,useId as pe,useState as D}from"react";import{MaskedField as G}from"../MaskedField/MaskedField.js";import{Calendar as p}from"../Calendar/Calendar.js";import{Popover as fe}from"../Popover/Popover.js";import b from"./DateRangeField.module.css.js";import me from"../../styles/utilities.module.css.js";import{cn as Y}from"../../core/utils/cn.js";import{bindFieldChromeRef as ue}from"../../core/utils/dom.js";import{uRef as Z}from"../../core/utils/bundle.js";import{formatDateToDigits as f,parseDigitsToDate as ee}from"../../core/utils/date.js";import{popoverDomId as ge,hidePopover as he,showPopover as J}from"../../core/utils/popover.js";import{useLocale as ve}from"../../locales/localeContext.js";import{ruSlice as be}from"../../locales/slices/dateRangeField.ru.js";import{useFallbackId as Re}from"../../core/utils/useFallbackId.js";const Ce={dateRangeField:be},te=e=>!e.start&&!e.end?"":e.start&&!e.end?f(e.start):e.start&&e.end?`${f(e.start)}${f(e.end)}`:"",re=(e,a)=>(e?.getTime()??null)===(a?.getTime()??null);function De({isSplit:e,size:a="md",width:R,startLabel:F,endLabel:T,label:x,startDigits:N,endDigits:y,singleDigits:S,disabled:m,readOnly:u,error:k,description:z,prefix:O,postfix:P,onClear:A,clearLabel:I,fieldId:$,inputRef:L,slot:l,anchorRef:s,panelRef:g,interactive:d,onStart:E,onEnd:M,onRange:j}){const c=n=>{l?.onClick?.(n),d&&!n.defaultPrevented&&J(g.current)},B=n=>{d&&n.currentTarget.matches(":focus-visible")&&J(g.current)};return e?q("div",{className:b.splitFields,"data-size":a!=="md"?a:void 0,ref:s,popovertarget:l?.popovertarget,popovertargetaction:l?.popovertargetaction,onClick:l||d?c:void 0,onFocusCapture:n=>{d&&n.target instanceof HTMLElement&&n.target.matches(":focus-visible")&&J(g.current)},children:[i("div",{className:b.fieldSlot,children:i(G,{inputRef:L,label:F,size:a,mask:"99.99.9999",type:"text",value:N,onChange:E,disabled:m,readOnly:u})}),i("span",{className:Y(me.fCenter,b.dash),"aria-hidden":!0,children:"\u2014"}),i("div",{className:b.fieldSlot,children:i(G,{label:T,size:a,mask:"99.99.9999",type:"text",value:y,onChange:M,disabled:m,readOnly:u})})]}):i(G,{inputRef:Z(L,s?ue(s):void 0),id:$,label:x,size:a,width:R,mask:"99.99.9999 \u2014 99.99.9999",type:"text",value:S,error:k,description:z,prefix:O,postfix:P,onClear:A,clearLabel:I,disabled:m,readOnly:u,popovertarget:l?.popovertarget,popovertargetaction:l?.popovertargetaction,onClick:c,onFocus:B,onChange:j})}const ae=(e,a)=>{if(e.length===8)return ee(e);if(e.length!==0)return a};function xe({value:e,onChange:a,label:R,startLabel:F,endLabel:T,layout:x="single",size:N="md",width:y="md",className:S,disabled:m=!1,readOnly:u=!1,error:k,description:z,prefix:O,postfix:P,onClear:A,clearLabel:I,rootRef:$,inputRef:L,...l}){const{messages:s}=ve(Ce),g=X(null),d=X(null),E=ge(Re()),M=pe(),j=x==="split",c=!m&&!u,B=e.start?.getTime(),n=e.end?.getTime(),H=`${B??""}|${n??""}`,[ie,K]=D(()=>f(e.start)),[ne,Q]=D(()=>f(e.end)),[oe,U]=D(()=>te(e)),[le,de]=D(H),[se,C]=D(()=>e.end??e.start??new Date);H!==le&&(de(H),K(f(e.start)),Q(f(e.end)),U(te(e)));const w=t=>{re(t.start,e.start)&&re(t.end,e.end)||a(t)},V=(t,o)=>{if(!c||(o==="start"?K(t):Q(t),t.length!==0&&t.length!==8))return;const r=t?ee(t):void 0;t&&!r||(o==="start"?w({start:r,end:e.end&&r&&r>e.end?void 0:e.end}):e.start&&r&&r<e.start?w({start:r,end:e.start}):w({start:e.start,end:r}),r&&C(r))},ce=t=>{if(!c)return;U(t);const o=t.slice(0,8),r=t.slice(8,16);let h=ae(o,e.start),v=ae(r,e.end);h&&v&&v<h&&([h,v]=[v,h]),w({start:h,end:v});const _=r.length===8?v:o.length===8?h:void 0;_&&C(_)},W=(t,o)=>i(De,{isSplit:j,size:N,width:y,startLabel:F??s.dateRangeField.start,endLabel:T??s.dateRangeField.end,label:R??s.dateRangeField.label,startDigits:ie,endDigits:ne,singleDigits:oe,disabled:m,readOnly:u,error:k,description:z,prefix:O,postfix:P,onClear:A,clearLabel:I,fieldId:M,inputRef:L,slot:t,anchorRef:o,panelRef:d,interactive:c,onStart:r=>V(r,"start"),onEnd:r=>V(r,"end"),onRange:ce});return i("div",{ref:Z($,g),className:Y(b.root,S),"data-layout":x,"data-width":y==="full"?"full":void 0,...l,children:c?i(fe,{id:E,popoverTargetAction:"show",role:"dialog",side:"bottom",align:"start",widthMode:"content",className:b.panel,panelRef:d,onToggle:t=>ye(g.current,t),trigger:(t,o)=>W(t,o),children:i(p.Provider,{selectionMode:"range",value:e,viewDate:se,onViewDateChange:C,onChange:t=>{t instanceof Date||(a(t),t.end?C(t.end):t.start&&C(t.start),t.start&&t.end&&he(d.current))},children:q(p.Root,{children:[q(p.Header,{children:[i(p.Nav,{direction:"prev"}),i(p.Title,{}),i(p.Nav,{direction:"next"})]}),i(p.Body,{})]})})}):W()})}function ye(e,a){e?.querySelectorAll("[data-field-control]").forEach(R=>{R.setAttribute("aria-expanded",a?"true":"false")})}export{xe as DateRangeField};
@@ -1 +1 @@
1
- "use client";import{jsx as f}from"react/jsx-runtime";import{useRef as u,useMemo as C,useLayoutEffect as ne}from"react";import{getListboxOptionDomId as ie}from"../../core/utils/listboxOptions.js";import{buildListboxView as le,LISTBOX_HIGHLIGHTED_ATTR as I,LISTBOX_INDEX_ATTR as se}from"./Listbox.utils.js";import{ListboxGroup as ce}from"./ListboxGroup.js";import{ListboxRow as ae}from"./ListboxRow.js";import{Separator as ue}from"../Separator/Separator.js";import{VirtualList as de}from"../VirtualList/VirtualList.js";import{cn as me}from"../../core/utils/cn.js";import{uRef as fe}from"../../core/utils/bundle.js";import{handleRovingFocusKeyDown as pe}from"../../core/utils/keyboard.js";import{useLocale as be}from"../../locales/localeContext.js";import ve from"../../styles/scrollable.module.css.js";import ye from"../../styles/utilities.module.css.js";import x from"./Listbox.module.css.js";import{ruSlice as ge}from"../../locales/slices/listbox.ru.js";import{useFallbackId as he}from"../../core/utils/useFallbackId.js";import{useSelectionRoot as Ie}from"../../base/SelectionGroup/useSelectionRoot.js";const xe={listbox:ge},ke=[],Le=100,Te=40,we=1,V='[role="option"]:not([disabled]):not([hidden])';function Ee(s){return s.type==="separator"?s.key:s.option.value}function Ae(s,d){const l=`${s}-option-`;if(!d.startsWith(l))return;const a=Number(d.slice(l.length));return Number.isInteger(a)?a:void 0}function Se({options:s,groups:d,value:l=ke,multiple:a=!1,onSelect:k,customRenderOption:L,id:B,"aria-label":K,"aria-labelledby":_,noOptionsText:$,loading:F=!1,className:q,showCheck:z=!1,navigation:G="roving",activeDescendantId:b,disabled:m=!1,multiline:P=!1,virtualized:X,onKeyDown:j,onClick:U,rootRef:J,controlRef:T,...Q}){const{t:W}=be(xe),Y=$??W("listbox.noOptions"),v=he(B),p=u(null),g=u(null),w=G==="roving",r=C(()=>le(s,d),[s,d]),Z=C(()=>new Set(l),[l]),E=r.options.length,y=!d?.length&&(X??E>Le),A=u(k);A.current=k;const S=u(r);S.current=r;const H=u(l);H.current=l;const O=Ie({type:a?"checkbox":"radio",value:a?l:l[0]??"",onChange:e=>{const t=H.current;let o;if(a){const n=Array.isArray(e)?[...e]:[];o=n.find(c=>!t.includes(c))??t.find(c=>!n.includes(c))}else typeof e=="string"&&(o=e);if(!o)return;const i=S.current.options.find(n=>n.value===o);i&&A.current?.(o,i)},disabled:m,activateOnFocus:!1,orientation:"vertical"}),R=u(r.slots);R.current=r.slots;const ee=u(e=>R.current[e]?.type==="separator"?we:Te).current,D=e=>{const t=p.current;if(!t)return;t.querySelectorAll(`[${I}]`).forEach(i=>{i.removeAttribute(I)});let o=document.getElementById(e);if(!(o instanceof HTMLElement)||!t.contains(o)){const i=Ae(v,e),n=i===void 0?void 0:r.slotIndexByOption[i];n!==void 0&&g.current?.scrollToIndex(n),o=document.getElementById(e)}!(o instanceof HTMLElement)||!t.contains(o)||(o.setAttribute(I,"true"),o.scrollIntoView({block:"nearest"}))},te={focusFirst(){const e=p.current?.querySelector(V);e&&(e.focus({preventScroll:!0}),e.scrollIntoView({block:"nearest"}))},selectHighlighted(){const e=document.activeElement,t=p.current;!(e instanceof HTMLElement)||!t?.contains(e)||e.getAttribute("role")==="option"&&e.click()},scrollToId:D};T&&(T.current=te),ne(()=>{b&&D(b)},[b]);const oe=e=>{if(j?.(e),!w||m||E===0||e.defaultPrevented)return;const t=Array.from(e.currentTarget.querySelectorAll(V));if(t.length===0)return;const o=document.activeElement,i=o instanceof HTMLElement?t.indexOf(o):-1;if(e.key==="Enter"||e.key===" "){o instanceof HTMLElement&&t.includes(o)&&(e.preventDefault(),o.click());return}if(i<0){const n=e.key==="ArrowUp"||e.key==="End"?t.length-1:0;if(e.key!=="ArrowDown"&&e.key!=="ArrowUp"&&e.key!=="Home"&&e.key!=="End")return;e.preventDefault(),t[n]?.focus({preventScroll:!0}),t[n]?.scrollIntoView({block:"nearest"});return}pe(e,{currentIndex:i,length:t.length,orientation:"vertical",onMove:n=>{const c=t[n];if(!c||(c.focus({preventScroll:!0}),c.scrollIntoView({block:"nearest"}),!y))return;const M=c.getAttribute(se);if(M==null)return;const N=r.slotIndexByOption[Number(M)];N!==void 0&&g.current?.scrollToIndex(N)}})},re=e=>{U?.(e),!(m||e.defaultPrevented)&&O.onClick(e)},h=e=>{if(e.type==="separator")return f(ue,{decorative:!0},e.key);const t=e.option,o=e.index;return f(ae,{option:t,index:o,id:ie(v,o),selected:Z.has(t.value),disabled:m||!!t.disabled,showCheck:z,multiline:P,children:L?L(t):t.label},`${t.value}-${o}`)};return f("div",{...Q,...O.dataProps,ref:fe(p,J),id:v,className:me(ye.fColumn,x.listbox,y&&ve.area,y&&x.listboxVirtualized,q),role:"listbox","aria-label":K,"aria-labelledby":_,"aria-multiselectable":a||void 0,"aria-busy":F||void 0,"aria-disabled":m||void 0,"aria-activedescendant":b,tabIndex:w&&!m?0:-1,onKeyDown:oe,onClick:re,children:r.slots.length===0?f("div",{className:x.emptyState,"aria-live":"polite",children:Y}):y?f(de,{controlRef:g,scrollElement:p,items:r.slots,estimateSize:ee,gap:4,getItemKey:Ee,renderItem:({item:e})=>h(e)}):r.groups?r.groups.map(e=>f(ce,{id:e.id,label:e.label,listboxId:v,children:e.slots.map(h)},e.id)):r.slots.map(h)})}export{Se as Listbox};
1
+ "use client";import{jsx as f}from"react/jsx-runtime";import{useRef as u,useMemo as C,useLayoutEffect as ne}from"react";import{getListboxOptionDomId as ie}from"../../core/utils/listboxOptions.js";import{buildListboxView as le,LISTBOX_HIGHLIGHTED_ATTR as I,LISTBOX_INDEX_ATTR as se}from"./Listbox.utils.js";import{ListboxGroup as ce}from"./ListboxGroup.js";import{ListboxRow as ae}from"./ListboxRow.js";import{Separator as ue}from"../Separator/Separator.js";import{VirtualList as de}from"../VirtualList/VirtualList.js";import{cn as me}from"../../core/utils/cn.js";import{uRef as fe}from"../../core/utils/bundle.js";import{handleRovingFocusKeyDown as pe}from"../../core/utils/keyboard.js";import{useLocale as be}from"../../locales/localeContext.js";import ve from"../../styles/scrollable.module.css.js";import ye from"../../styles/utilities.module.css.js";import x from"./Listbox.module.css.js";import{ruSlice as ge}from"../../locales/slices/listbox.ru.js";import{useFallbackId as he}from"../../core/utils/useFallbackId.js";import{useSelectionRoot as Ie}from"../../base/SelectionGroup/useSelectionRoot.js";const xe={listbox:ge},ke=[],Le=100,Te=40,we=1,V='[role="option"]:not([disabled]):not([hidden])';function Ee(s){return s.type==="separator"?s.key:s.option.value}function Ae(s,d){const l=`${s}-option-`;if(!d.startsWith(l))return;const a=Number(d.slice(l.length));return Number.isInteger(a)?a:void 0}function Se({options:s,groups:d,value:l=ke,multiple:a=!1,onSelect:k,customRenderOption:L,id:B,"aria-label":K,"aria-labelledby":_,noOptionsText:$,loading:F=!1,className:q,showCheck:z=!1,navigation:G="roving",activeDescendantId:b,disabled:m=!1,multiline:P=!1,virtualized:X,onKeyDown:j,onClick:U,rootRef:J,controlRef:T,...Q}){const{t:W}=be(xe),Y=$??W("listbox.noOptions"),v=he(B),p=u(null),g=u(null),w=G==="roving",r=C(()=>le(s,d),[s,d]),Z=C(()=>new Set(l),[l]),E=r.options.length,y=!d?.length&&(X??E>Le),A=u(k);A.current=k;const S=u(r);S.current=r;const H=u(l);H.current=l;const O=Ie({type:a?"checkbox":"radio",value:a?l:l[0]??"",onChange:e=>{const t=H.current;let o;if(a){const n=Array.isArray(e)?[...e]:[];o=n.find(c=>!t.includes(c))??t.find(c=>!n.includes(c))}else typeof e=="string"&&(o=e);if(!o)return;const i=S.current.options.find(n=>n.value===o);i&&A.current?.(o,i)},disabled:m,activateOnFocus:!1,orientation:"vertical"}),R=u(r.slots);R.current=r.slots;const ee=u(e=>R.current[e]?.type==="separator"?we:Te).current,D=e=>{const t=p.current;if(!t)return;t.querySelectorAll(`[${I}]`).forEach(i=>{i.removeAttribute(I)});let o=document.getElementById(e);if(!(o instanceof HTMLElement)||!t.contains(o)){const i=Ae(v,e),n=i===void 0?void 0:r.slotIndexByOption[i];n!==void 0&&g.current?.scrollToIndex(n),o=document.getElementById(e)}!(o instanceof HTMLElement)||!t.contains(o)||(o.setAttribute(I,"true"),o.scrollIntoView({block:"nearest"}))},te={focusFirst(){const e=p.current?.querySelector(V);e&&(e.focus({preventScroll:!0}),e.scrollIntoView({block:"nearest"}))},selectHighlighted(){const e=document.activeElement,t=p.current;!(e instanceof HTMLElement)||!t?.contains(e)||e.getAttribute("role")==="option"&&e.click()},scrollToId:D};T&&(T.current=te),ne(()=>{b&&D(b)},[b]);const oe=e=>{if(j?.(e),!w||m||E===0||e.defaultPrevented)return;const t=Array.from(e.currentTarget.querySelectorAll(V));if(t.length===0)return;const o=document.activeElement,i=o instanceof HTMLElement?t.indexOf(o):-1;if(e.key==="Enter"||e.key===" "){o instanceof HTMLElement&&t.includes(o)&&(e.preventDefault(),o.click());return}if(i<0){const n=e.key==="ArrowUp"||e.key==="End"?t.length-1:0;if(e.key!=="ArrowDown"&&e.key!=="ArrowUp"&&e.key!=="Home"&&e.key!=="End")return;e.preventDefault(),t[n]?.focus({preventScroll:!0}),t[n]?.scrollIntoView({block:"nearest"});return}pe(e,{currentIndex:i,length:t.length,orientation:"vertical",onMove:n=>{const c=t[n];if(!c||(c.focus({preventScroll:!0}),c.scrollIntoView({block:"nearest"}),!y))return;const M=c.getAttribute(se);if(M==null)return;const N=r.slotIndexByOption[Number(M)];N!==void 0&&g.current?.scrollToIndex(N)}})},re=e=>{U?.(e),!(m||e.defaultPrevented)&&O.onClick(e)},h=e=>{if(e.type==="separator")return f(ue,{decorative:!0,"data-separator":""},e.key);const t=e.option,o=e.index;return f(ae,{option:t,index:o,id:ie(v,o),selected:Z.has(t.value),disabled:m||!!t.disabled,showCheck:z,multiline:P,children:L?L(t):t.label},`${t.value}-${o}`)};return f("div",{...Q,...O.dataProps,ref:fe(p,J),id:v,className:me(ye.fColumn,x.listbox,y&&ve.area,y&&x.listboxVirtualized,q),role:"listbox","aria-label":K,"aria-labelledby":_,"aria-multiselectable":a||void 0,"aria-busy":F||void 0,"aria-disabled":m||void 0,"aria-activedescendant":b,tabIndex:w&&!m?0:-1,onKeyDown:oe,onClick:re,children:r.slots.length===0?f("div",{className:x.emptyState,"aria-live":"polite",children:Y}):y?f(de,{controlRef:g,scrollElement:p,items:r.slots,estimateSize:ee,gap:4,getItemKey:Ee,renderItem:({item:e})=>h(e)}):r.groups?r.groups.map(e=>f(ce,{id:e.id,label:e.label,listboxId:v,children:e.slots.map(h)},e.id)):r.slots.map(h)})}export{Se as Listbox};
@@ -1 +1 @@
1
- "use client";import{jsx as l,jsxs as K,Fragment as j}from"react/jsx-runtime";import{useRef as x,useCallback as B}from"react";import{ActionList as O}from"../ActionList/ActionList.js";import{Dropdown as X}from"../Dropdown/Dropdown.js";import u from"./Menu.module.css.js";import{cn as $}from"../../core/utils/cn.js";import{useLocale as q}from"../../locales/localeContext.js";import{popoverFromInvoker as H,showPopover as S}from"../../core/utils/popover.js";import{renderChildren as Y}from"../../core/utils/renderChildren.js";import{ruSlice as z}from"../../locales/slices/menu.ru.js";const G={menu:z};function J({trigger:p,children:b,items:y,groups:T,onOpenChange:C,popupRef:i,align:L="right",widthMode:M,mobileTitle:R,emptyText:E,onAction:k,className:m,tabIndex:D,"aria-label":N,onContextMenu:P,onKeyDown:A,rootRef:s,...d}){const{t:f}=q(G),r=p==="context",c=x(null),g=x(null),F=B(e=>{c.current=e,typeof i=="function"?i(e):i&&(i.current=e)},[i]),I=(e,n)=>{const t=H(g.current);return t&&(t.style.setProperty("--altum-menu-x",`${n}px`),t.style.setProperty("--altum-menu-y",`${e}px`),t)},v=e=>{e?S(e):c.current?.show()},h=(e,n,t=0)=>{const o=I(e,n);if(t&2){const a=()=>{window.removeEventListener("pointerup",a,!0),window.removeEventListener("pointercancel",a,!0),v(o)};window.addEventListener("pointerup",a,!0),window.addEventListener("pointercancel",a,!0);return}queueMicrotask(()=>v(o))},w=l(X,{rootRef:r?void 0:s,className:r?u.host:m,popupRef:F,onOpenChange:C,popupRole:"none",align:r?"left":L,widthMode:M,mobileTitle:R??f("menu.mobileTitle"),panelClassName:r?u.menu:void 0,trigger:(e,n)=>{if(!r)return Y({children:p,props:e,contentRef:n});const{popoverTarget:t}=e;return l("span",{ref:o=>{g.current=o,n(o)},tabIndex:-1,className:u.anchor,"aria-hidden":!0,popoverTarget:t})},...r?{}:d,children:l(O,{"aria-label":N??f(r?"menu.contextAriaLabel":"menu.ariaLabel"),items:y,groups:T,emptyText:E,onAction:e=>{k?.(e),c.current?.hide()}})});return r?K(j,{children:[l("div",{ref:s,className:$(u.target,m),...d,tabIndex:D??0,onContextMenu:e=>{if(P?.(e),e.defaultPrevented)return;e.preventDefault();let n=e.clientX,t=e.clientY;if(!n&&!t){const o=e.currentTarget.getBoundingClientRect();n=o.left,t=o.bottom}h(t,n,e.buttons)},onKeyDown:e=>{if(A?.(e),e.defaultPrevented||e.key!=="ContextMenu"&&!(e.shiftKey&&e.key==="F10"))return;e.preventDefault();const n=document.activeElement,t=(n instanceof HTMLElement&&e.currentTarget.contains(n)?n:e.currentTarget).getBoundingClientRect();h(t.bottom,t.left,0)},children:b}),w]}):w}export{J as Menu};
1
+ "use client";import{jsx as l,jsxs as K,Fragment as j}from"react/jsx-runtime";import{useRef as x,useCallback as B}from"react";import{ActionList as O}from"../ActionList/ActionList.js";import{Dropdown as X}from"../Dropdown/Dropdown.js";import u from"./Menu.module.css.js";import{cn as $}from"../../core/utils/cn.js";import{useLocale as q}from"../../locales/localeContext.js";import{popoverFromInvoker as H,showPopover as S}from"../../core/utils/popover.js";import{renderChildren as Y}from"../../core/utils/renderChildren.js";import{ruSlice as z}from"../../locales/slices/menu.ru.js";const G={menu:z};function J({trigger:p,children:b,items:y,groups:C,onOpenChange:L,popupRef:i,align:M="right",widthMode:R,mobileTitle:T,emptyText:E,onAction:k,className:m,tabIndex:D,"aria-label":N,onContextMenu:P,onKeyDown:A,rootRef:s,...d}){const{t:f}=q(G),r=p==="context",c=x(null),g=x(null),F=B(e=>{c.current=e,typeof i=="function"?i(e):i&&(i.current=e)},[i]),I=(e,n)=>{const t=H(g.current);return t&&(t.style.setProperty("--altum-menu-x",`${n}px`),t.style.setProperty("--altum-menu-y",`${e}px`),t)},v=e=>{e?S(e):c.current?.show()},h=(e,n,t=0)=>{const o=I(e,n);if(t&2){const a=()=>{window.removeEventListener("pointerup",a,!0),window.removeEventListener("pointercancel",a,!0),v(o)};window.addEventListener("pointerup",a,!0),window.addEventListener("pointercancel",a,!0);return}queueMicrotask(()=>v(o))},w=l(X,{rootRef:r?void 0:s,className:r?u.host:m,popupRef:F,onOpenChange:L,popupRole:"none",align:r?"left":M,widthMode:R,mobileTitle:T??f("menu.mobileTitle"),panelClassName:r?u.menu:void 0,trigger:(e,n)=>{if(!r)return Y({children:p,props:e,contentRef:n});const{popovertarget:t}=e;return l("span",{ref:o=>{g.current=o,n(o)},tabIndex:-1,className:u.anchor,"aria-hidden":!0,popovertarget:t})},...r?{}:d,children:l(O,{"aria-label":N??f(r?"menu.contextAriaLabel":"menu.ariaLabel"),items:y,groups:C,emptyText:E,onAction:e=>{k?.(e),c.current?.hide()}})});return r?K(j,{children:[l("div",{ref:s,className:$(u.target,m),...d,tabIndex:D??0,onContextMenu:e=>{if(P?.(e),e.defaultPrevented)return;e.preventDefault();let n=e.clientX,t=e.clientY;if(!n&&!t){const o=e.currentTarget.getBoundingClientRect();n=o.left,t=o.bottom}h(t,n,e.buttons)},onKeyDown:e=>{if(A?.(e),e.defaultPrevented||e.key!=="ContextMenu"&&!(e.shiftKey&&e.key==="F10"))return;e.preventDefault();const n=document.activeElement,t=(n instanceof HTMLElement&&e.currentTarget.contains(n)?n:e.currentTarget).getBoundingClientRect();h(t.bottom,t.left,0)},children:b}),w]}):w}export{J as Menu};
@@ -1 +1 @@
1
- "use client";import{jsx as a}from"react/jsx-runtime";import{cn as n}from"../../core/utils/cn.js";import{useLocale as b}from"../../locales/localeContext.js";import{ruSlice as g}from"../../locales/slices/modal.ru.js";import{DialogLayout as y}from"../DialogLayout/DialogLayout.js";import{Layout as t}from"../Layout/Layout.js";import{Overlay as u}from"../Overlay/Overlay.js";import m from"./Modal.module.css.js";import R from"../../styles/overlayScrim.module.css.js";const h={modal:g},v=({rootRef:e,...o})=>a(t.Header,{rootRef:e,sticky:!0,...o}),C=({className:e,rootRef:o,...r})=>a(t.Content,{rootRef:o,...r,className:n(m.body,e)}),N=({align:e="end",rootRef:o,...r})=>a(t.Footer,{rootRef:o,sticky:!0,align:e,...r}),L=({open:e,onOpenChange:o,children:r,className:s,"aria-labelledby":i,"aria-label":l,"aria-describedby":d,rootRef:c,...f})=>{const{t:p}=b(h);return a(u,{variant:"modal",open:e,onOpenChange:o,hostClassName:R.host,"aria-labelledby":l?void 0:i,"aria-label":l??(i?void 0:p("modal.ariaLabel")),"aria-describedby":d,children:a(y,{rootRef:c,...f,variant:"floating",radius:"lg",className:n(m.modalContent,s),onClose:()=>o(!1),children:a(t,{padding:"md",gap:"md",children:r})})})},O=Object.assign(L,{Header:v,Body:C,Footer:N});export{O as Modal};
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{cn as d}from"../../core/utils/cn.js";import{useLocale as y}from"../../locales/localeContext.js";import{ruSlice as g}from"../../locales/slices/modal.ru.js";import{DialogLayout as u}from"../DialogLayout/DialogLayout.js";import{Layout as t}from"../Layout/Layout.js";import{Overlay as R}from"../Overlay/Overlay.js";import n from"./Modal.module.css.js";import h from"../../styles/overlayScrim.module.css.js";const v={modal:g},C=({rootRef:e,...o})=>a(t.Header,{rootRef:e,sticky:!0,...o}),N=({className:e,rootRef:o,...r})=>a(t.Content,{rootRef:o,...r,className:d(n.body,e)}),L=({align:e="end",rootRef:o,...r})=>a(t.Footer,{rootRef:o,sticky:!0,align:e,...r}),O=({open:e,onOpenChange:o,children:r,size:i="md",className:s,"aria-labelledby":l,"aria-label":m,"aria-describedby":c,rootRef:f,...p})=>{const{t:b}=y(v);return a(R,{variant:"modal",open:e,onOpenChange:o,hostClassName:h.host,"aria-labelledby":m?void 0:l,"aria-label":m??(l?void 0:b("modal.ariaLabel")),"aria-describedby":c,children:a(u,{rootRef:f,...p,variant:"floating",radius:"lg",className:d(n.modalContent,s),"data-size":i!=="md"?i:void 0,onClose:()=>o(!1),children:a(t,{padding:"md",gap:"md",children:r})})})},F=Object.assign(O,{Header:C,Body:N,Footer:L});export{F as Modal};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../core/utils/injectCss.js";var i=".QNpBm{font-family:\u0013g-font-family-ui);width:min(90%,\u0013dialog-max-width-md))}.lVhql{\fdialog-body-size);line-height:1.5}";const a={modalContent:"QNpBm",body:"lVhql"};t(i);export{a as default};
1
+ "use client";import{injectCss as a}from"../../core/utils/injectCss.js";var l=".QNpBm{--local-width:\u0013dialog-max-width-md);font-family:\u0013g-font-family-ui);margin-inline:auto;width:min(var(--local-width),calc(100dvw - \u00024)*2))}.QNpBm\u001asm]{--local-width:\u0013dialog-max-width-sm)}.QNpBm\u001alg]{--local-width:\u0013dialog-max-width-lg)}.lVhql{\fdialog-body-size);line-height:1.5}";const t={modalContent:"QNpBm",body:"lVhql"};a(l);export{t as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as w,Fragment as A,jsx as f}from"react/jsx-runtime";import{useRef as C,useLayoutEffect as F}from"react";import{Box as O}from"../Box/Box.js";import{Overlay as k}from"../Overlay/Overlay.js";import{cn as E}from"../../core/utils/cn.js";import{popoverDomId as I,positionArea as z,anchorNameFor as B}from"../../core/utils/popover.js";import{renderChildren as D}from"../../core/utils/renderChildren.js";import L from"../../styles/floating.module.css.js";import t from"./Popover.module.css.js";import{useFallbackId as M}from"../../core/utils/useFallbackId.js";function S(e,r){if(typeof e=="function"){e(r);return}e!=null&&(e.current=r)}function q({children:e,trigger:r,id:d,disabled:n=!1,variant:i="panel",className:u,role:g,side:p="bottom",align:h="center",widthMode:l,popoverTargetAction:v="toggle",defaultOpen:c=!1,onToggle:y,panelRef:R}){const b=M(),a=d??I(b),m=B(a),s=C(null),x=z(p,h),N=o=>{o?.style.setProperty("anchor-name",m)},P=o=>{s.current=o,S(R,o)};F(()=>{if(!c||n)return;const o=s.current;o&&!o.matches(":popover-open")&&o.showPopover()},[c,n]);const T=n?{}:{popoverTarget:a,popoverTargetAction:v},j={"--altum-popover-anchor":m,"--altum-popover-area":x};return w(A,{children:[D({children:r,props:T,contentRef:N}),f(k,{variant:"floating",id:a,rootRef:P,role:g??"dialog",className:E(i==="plain"&&L.panel,t.anchor,l!=null&&t.sized,t.content,u),style:j,"data-side":p,"data-width-mode":l,onOpenChange:y,children:i==="panel"?f(O,{variant:"floating",className:t.contentPanel,children:e}):e})]})}export{q as Popover};
1
+ "use client";import{jsxs as C,Fragment as F,jsx as f}from"react/jsx-runtime";import{useRef as O,useLayoutEffect as k}from"react";import{Box as A}from"../Box/Box.js";import{Overlay as E}from"../Overlay/Overlay.js";import{cn as I}from"../../core/utils/cn.js";import{popoverDomId as T,positionArea as z,anchorNameFor as B}from"../../core/utils/popover.js";import{renderChildren as D}from"../../core/utils/renderChildren.js";import L from"../../styles/floating.module.css.js";import t from"./Popover.module.css.js";import{useFallbackId as M}from"../../core/utils/useFallbackId.js";function S(e,r){if(typeof e=="function"){e(r);return}e!=null&&(e.current=r)}function q({children:e,trigger:r,id:d,disabled:n=!1,variant:i="panel",className:u,role:g,side:p="bottom",align:h="center",widthMode:l,popoverTargetAction:v="toggle",defaultOpen:c=!1,onToggle:y,panelRef:R}){const b=M(),a=d??T(b),m=B(a),s=O(null),x=z(p,h),N=o=>{o?.style.setProperty("anchor-name",m)},P=o=>{s.current=o,S(R,o)};k(()=>{if(!c||n)return;const o=s.current;o&&!o.matches(":popover-open")&&o.showPopover()},[c,n]);const j=n?{}:{popovertarget:a,popovertargetaction:v},w={"--altum-popover-anchor":m,"--altum-popover-area":x};return C(F,{children:[D({children:r,props:j,contentRef:N}),f(E,{variant:"floating",id:a,rootRef:P,role:g??"dialog",className:I(i==="plain"&&L.panel,t.anchor,l!=null&&t.sized,t.content,u),style:w,"data-side":p,"data-width-mode":l,onOpenChange:y,children:i==="panel"?f(A,{variant:"floating",className:t.contentPanel,children:e}):e})]})}export{q as Popover};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as M}from"react/jsx-runtime";import{useRef as y,useState as Z,useLayoutEffect as g}from"react";import{Button as F}from"../Button/Button.js";import{IconChevronUpDown as H}from"../../icons/icons/IconChevronUpDown.js";import{handleRovingListKeyDown as ee,ROVING_ITEM_ATTR as te}from"../../hooks/useRovingList.js";import{cn as R}from"../../core/utils/cn.js";import U from"../../styles/utilities.module.css.js";import{uRef as re}from"../../core/utils/bundle.js";import{popoverDomId as ne,hidePopover as _,anchorNameFor as ae,showPopover as oe}from"../../core/utils/popover.js";import o from"./PopupSwitch.module.css.js";import{useFallbackId as ie}from"../../core/utils/useFallbackId.js";function $(n){if(!(n instanceof HTMLElement))return null;const a=Number(n.dataset.index);return Number.isInteger(a)?a:null}function le(n){return n.nativeEvent.newState==="open"}function ue({value:n,options:a,onChange:x,disabled:l=!1,className:N,placeholder:v,size:c="md",variant:D="secondary",width:j="auto",align:E="start",rootRef:q,"aria-label":T}){const d=ne(ie()),A=`${d}-trigger`,w=ae(d),I=y(null),s=y(null),p=a.findIndex(e=>e.value===n),m=p>=0?a[p]:void 0,f=p>=0?p:0,[G,S]=Z(f),k=y(f),h=y(!1),u=y(null);k.current=f;const L=j==="options",V=L&&a.some(e=>e.icon!=null),z=()=>{h.current=!1,u.current!=null&&(clearTimeout(u.current),u.current=null),S(k.current)};g(()=>{const e=I.current;if(e)return e.style.setProperty("anchor-name",w),e.hasAttribute("aria-expanded")||e.setAttribute("aria-expanded","false"),()=>{e.style.removeProperty("anchor-name")}},[w]),g(()=>{l&&_(s.current)},[l]),g(()=>{h.current||s.current?.matches(":popover-open")||S(f)},[f]),g(()=>()=>{u.current!=null&&clearTimeout(u.current)},[]);const P=e=>{const t=a[e];t&&(x(t.value),_(s.current))},B=e=>{l||e.key!=="ArrowDown"&&e.key!=="ArrowUp"||(e.preventDefault(),oe(s.current))},J=e=>{if(a.length!==0){if(e.key==="Enter"||e.key===" "){const t=e.target.closest('[role="option"]'),i=$(t);if(i==null||!e.currentTarget.contains(t))return;e.preventDefault(),P(i);return}ee(e,"vertical")}},O=e=>{const t=e.target.closest('[role="option"]');if(!(t instanceof HTMLElement)||!e.currentTarget.contains(t)||t.hasAttribute("disabled"))return;const i=$(t);i!=null&&P(i)},Q=e=>{const t=le(e);if(I.current?.setAttribute("aria-expanded",t?"true":"false"),t){h.current&&z();const b=s.current;(b?.querySelector('[aria-selected="true"]')??b?.querySelector('[role="option"]'))?.focus();return}h.current=!0;const i=s.current,K=()=>{h.current&&(i?.removeEventListener("transitionend",C),z())},C=b=>{b.target===i&&b.propertyName==="opacity"&&K()};i?.addEventListener("transitionend",C),u.current!=null&&clearTimeout(u.current),u.current=setTimeout(K,250)},W=V?r("span",{className:R(U.fCenter,o.iconSlot),"aria-hidden":!0,children:m?.icon}):m?.icon?r("span",{"aria-hidden":!0,children:m.icon}):void 0,X=L?M("span",{className:o.value,children:[a.map(e=>{const t=e.value===n;return r("span",{className:t?void 0:o.valueReserve,"aria-hidden":t?void 0:!0,children:e.label},String(e.value))}),v?r("span",{className:m?o.valueReserve:void 0,"aria-hidden":m?!0:void 0,children:v}):null]}):m?.label??v??"",Y={"--altum-popover-anchor":w,"--altum-popup-switch-selected":G};return M("div",{className:o.root,children:[r(F,{rootRef:re(q,I),id:A,type:"button",variant:D,size:c,disabled:l,className:R(o.trigger,N),prefix:W,postfix:r(H,{"aria-hidden":!0}),popoverTarget:l?void 0:d,"aria-haspopup":"listbox","aria-controls":d,"aria-label":T,onKeyDown:B,children:X}),r("div",{ref:s,id:d,popover:"auto",role:"listbox","aria-orientation":"vertical","aria-label":T,"aria-labelledby":T?void 0:A,className:R(U.scrollport,o.panel),style:Y,"data-size":c==="md"?void 0:c,"data-align":E==="start"?void 0:E,onKeyDown:J,onClick:O,onToggle:Q,children:a.map((e,t)=>r(se,{option:e,optionId:`${d}-option-${t}`,index:t,selected:e.value===n,tabIndex:t===(p>=0?p:0)?0:-1,size:c,variant:D},String(e.value)))})]})}function se({option:n,optionId:a,index:x,selected:l,tabIndex:N,size:v,variant:c}){return r(F,{type:"button",role:"option",id:a,"data-index":x,[te]:"","aria-selected":l,tabIndex:N,variant:c,size:v,fullWidth:!0,className:o.option,prefix:n.icon?r("span",{"aria-hidden":!0,children:n.icon}):void 0,postfix:r("span",{className:o.chevron,"aria-hidden":!0,children:l?r(H,{}):null}),children:r("span",{className:o.text,children:n.label})})}export{ue as PopupSwitch};
1
+ "use client";import{jsx as r,jsxs as M}from"react/jsx-runtime";import{useRef as y,useState as Z,useLayoutEffect as g}from"react";import{Button as F}from"../Button/Button.js";import{IconChevronUpDown as H}from"../../icons/icons/IconChevronUpDown.js";import{handleRovingListKeyDown as ee,ROVING_ITEM_ATTR as te}from"../../hooks/useRovingList.js";import{cn as R}from"../../core/utils/cn.js";import U from"../../styles/utilities.module.css.js";import{uRef as re}from"../../core/utils/bundle.js";import{popoverDomId as ne,hidePopover as _,anchorNameFor as ae,showPopover as oe}from"../../core/utils/popover.js";import o from"./PopupSwitch.module.css.js";import{useFallbackId as ie}from"../../core/utils/useFallbackId.js";function $(n){if(!(n instanceof HTMLElement))return null;const a=Number(n.dataset.index);return Number.isInteger(a)?a:null}function le(n){return n.nativeEvent.newState==="open"}function ue({value:n,options:a,onChange:x,disabled:l=!1,className:N,placeholder:v,size:c="md",variant:D="secondary",width:j="auto",align:E="start",rootRef:q,"aria-label":w}){const d=ne(ie()),A=`${d}-trigger`,T=ae(d),I=y(null),s=y(null),p=a.findIndex(e=>e.value===n),m=p>=0?a[p]:void 0,f=p>=0?p:0,[G,S]=Z(f),k=y(f),h=y(!1),u=y(null);k.current=f;const L=j==="options",V=L&&a.some(e=>e.icon!=null),z=()=>{h.current=!1,u.current!=null&&(clearTimeout(u.current),u.current=null),S(k.current)};g(()=>{const e=I.current;if(e)return e.style.setProperty("anchor-name",T),e.hasAttribute("aria-expanded")||e.setAttribute("aria-expanded","false"),()=>{e.style.removeProperty("anchor-name")}},[T]),g(()=>{l&&_(s.current)},[l]),g(()=>{h.current||s.current?.matches(":popover-open")||S(f)},[f]),g(()=>()=>{u.current!=null&&clearTimeout(u.current)},[]);const P=e=>{const t=a[e];t&&(x(t.value),_(s.current))},B=e=>{l||e.key!=="ArrowDown"&&e.key!=="ArrowUp"||(e.preventDefault(),oe(s.current))},J=e=>{if(a.length!==0){if(e.key==="Enter"||e.key===" "){const t=e.target.closest('[role="option"]'),i=$(t);if(i==null||!e.currentTarget.contains(t))return;e.preventDefault(),P(i);return}ee(e,"vertical")}},O=e=>{const t=e.target.closest('[role="option"]');if(!(t instanceof HTMLElement)||!e.currentTarget.contains(t)||t.hasAttribute("disabled"))return;const i=$(t);i!=null&&P(i)},Q=e=>{const t=le(e);if(I.current?.setAttribute("aria-expanded",t?"true":"false"),t){h.current&&z();const b=s.current;(b?.querySelector('[aria-selected="true"]')??b?.querySelector('[role="option"]'))?.focus();return}h.current=!0;const i=s.current,K=()=>{h.current&&(i?.removeEventListener("transitionend",C),z())},C=b=>{b.target===i&&b.propertyName==="opacity"&&K()};i?.addEventListener("transitionend",C),u.current!=null&&clearTimeout(u.current),u.current=setTimeout(K,250)},W=V?r("span",{className:R(U.fCenter,o.iconSlot),"aria-hidden":!0,children:m?.icon}):m?.icon?r("span",{"aria-hidden":!0,children:m.icon}):void 0,X=L?M("span",{className:o.value,children:[a.map(e=>{const t=e.value===n;return r("span",{className:t?void 0:o.valueReserve,"aria-hidden":t?void 0:!0,children:e.label},String(e.value))}),v?r("span",{className:m?o.valueReserve:void 0,"aria-hidden":m?!0:void 0,children:v}):null]}):m?.label??v??"",Y={"--altum-popover-anchor":T,"--altum-popup-switch-selected":G};return M("div",{className:o.root,children:[r(F,{rootRef:re(q,I),id:A,type:"button",variant:D,size:c,disabled:l,className:R(o.trigger,N),prefix:W,postfix:r(H,{"aria-hidden":!0}),popovertarget:l?void 0:d,"aria-haspopup":"listbox","aria-controls":d,"aria-label":w,onKeyDown:B,children:X}),r("div",{ref:s,id:d,popover:"auto",role:"listbox","aria-orientation":"vertical","aria-label":w,"aria-labelledby":w?void 0:A,className:R(U.scrollport,o.panel),style:Y,"data-size":c==="md"?void 0:c,"data-align":E==="start"?void 0:E,onKeyDown:J,onClick:O,onToggle:Q,children:a.map((e,t)=>r(se,{option:e,optionId:`${d}-option-${t}`,index:t,selected:e.value===n,tabIndex:t===(p>=0?p:0)?0:-1,size:c,variant:D},String(e.value)))})]})}function se({option:n,optionId:a,index:x,selected:l,tabIndex:N,size:v,variant:c}){return r(F,{type:"button",role:"option",id:a,"data-index":x,[te]:"","aria-selected":l,tabIndex:N,variant:c,size:v,fullWidth:!0,className:o.option,prefix:n.icon?r("span",{"aria-hidden":!0,children:n.icon}):void 0,postfix:r("span",{className:o.chevron,"aria-hidden":!0,children:l?r(H,{}):null}),children:r("span",{className:o.text,children:n.label})})}export{ue as PopupSwitch};
@@ -1 +1 @@
1
- "use client";import{jsxs as $,Fragment as Tt,jsx as n}from"react/jsx-runtime";import{useId as wt,useRef as j,useState as me,useCallback as x,useMemo as ge,useLayoutEffect as Ot}from"react";import{Dropdown as Lt}from"../Dropdown/Dropdown.js";import{Listbox as It}from"../Listbox/Listbox.js";import{SearchField as Nt}from"../SearchField/SearchField.js";import{TextField as Dt,FieldBaseIcon as Ft}from"../TextField/TextField.js";import{useControlledState as he}from"../../hooks/useControlledState.js";import{useLocale as Pt}from"../../locales/localeContext.js";import{cn as At}from"../../core/utils/cn.js";import{uEvMerge as q,uRef as Et}from"../../core/utils/bundle.js";import{getFormControlState as Rt}from"../../core/utils/form.js";import{hidePopover as ve,popoverFromInvoker as V,showPopover as Q}from"../../core/utils/popover.js";import{handleListHighlightKeyDown as Mt,isKey as be,handleEnterKeyDown as Bt}from"../../core/utils/keyboard.js";import{getListboxPath as Kt,findListboxOption as xe,filterListboxOptions as kt,defaultListboxFilterFn as zt,getListboxOptionText as E,getListboxOptionDomId as Ht}from"../../core/utils/listboxOptions.js";import{ruSlice as $t}from"../../locales/slices/customSelect.ru.js";import{ruSlice as jt}from"../../locales/slices/select.ru.js";import y from"../../styles/selectField.module.css.js";import ye from"./Select.module.css.js";const qt={select:jt,customSelect:$t},Ce='[role="option"]:not([disabled]):not([hidden])';function Vt(t,o){return o===void 0?[]:t==="multiple"||t==="path"?Array.isArray(o)?o:o?[o]:[]:Array.isArray(o)?o[0]?[o[0]]:[]:o?[o]:[]}function Qt(t){return t==="single"?"":[]}function Wt(t,o){const l=`${t}-option-`;if(!o.startsWith(l))return;const S=Number(o.slice(l.length));return Number.isInteger(S)?S:void 0}function _t(t,o,l){if(t.length!==0)return l==="first"?t[0]:l==="last"?t[t.length-1]:l==="next"?t[o<0?0:(o+1)%t.length]:t[o<0?t.length-1:(o-1+t.length)%t.length]}function Gt(t){const o=document.getElementById(t);return o?Array.from(o.querySelectorAll(Ce)):[]}function Jt(t){return n("svg",{className:ye.arrow,"data-readonly":t?"":void 0,viewBox:"0 0 24 24","aria-hidden":"true",children:n("path",{d:"M6 9l6 6 6-6"})})}function Xt(t){return t==="input"||t==="textarea"}const Zt=({options:t,groups:o,selectionMode:l="single",value:S,defaultValue:Se,onChange:W,defaultOpen:_=!1,onOpenChange:G,disabled:T=!1,readOnly:Te=!1,closeOnSelect:we,filterFn:J=zt,filterQuery:Oe,defaultFilterQuery:Le="",onFilterQueryChange:w,placeholder:R,loading:Ie=!1,separator:Ne=" / ",popupRole:De="listbox",filterable:Fe=!1,filterPlaceholder:Pe,align:Ae="auto",widthMode:Ee,mobileTitle:Re,mobileLeftControls:Me,mobileRightControls:Be,panelScroll:Ke="overlay",navigation:ke,highlightedIndex:M,onHighlightChange:X,showCheck:ze,noOptionsText:He,preventOptionMouseDown:$e,listAriaLabel:je,inputProps:B,popupClassName:qe,rootRef:Ve,className:Qe="",id:We,label:Z,size:_e="md",width:U="md",prefix:Ge,postfix:Ut,error:Je,description:Xe,onClear:Y,clearLabel:Ze,"aria-label":Ue})=>{const{t:ee}=Pt(qt),te=wt(),a=`${te}-listbox`,Ye=We??`${te}-trigger`,K=j(null),oe=j(null),et=He??ee("customSelect.noOptions"),{onClick:tt,onKeyDown:ot,onFocus:rt,onBlur:lt,rootRef:it,className:nt,wrapperClassName:at,children:re,...st}=B??{},c=Xt(B?.as),[dt,le]=he(S,Se??Qt(l)),p=Vt(l,dt),[k,O,ie]=he(Oe,Le),[ut,ne]=me(_),ae=we??l==="single",{isReadOnly:se,isInteractive:s}=Rt({disabled:T,readOnly:Te}),C=l==="multiple",L=c||C,ct=Ee??(c?"trigger":"trigger-fit"),de=ke??(c?"highlight":void 0),pt=ze??(c?!1:l==="multiple"),ue=$e??!0?e=>{const r=e.target;r instanceof Element&&r.closest('input, textarea, [contenteditable="true"]')||e.preventDefault()}:void 0,d=de==="highlight",f=M!==void 0,z=f&&M>=0?Ht(a,M):void 0,[h,H]=me(null),I=j(void 0),ft=x(e=>{ne(e),G?.(e),!e&&!ie&&(O(""),w?.(""))},[ie,w,G,O,ne]),mt=x(e=>{O(e),w?.(e)},[w,O]),N=x(e=>{const r=l==="single"?e[0]??"":e;le(r),W?.(r)},[W,l,le]),gt=x(()=>{s&&N([])},[N,s]),ce=x(e=>{if(!s)return;let r;if(l==="multiple")r=p.includes(e)?p.filter(i=>i!==e):[...p,e];else if(l==="path"){const i=Kt(t,e).map(b=>b.value);r=i.length>0?i:[e]}else r=[e];N(r),ae&&oe.current?.hide()},[N,s,t,l,ae,p]),v=ge(()=>l==="path"?p.map(e=>xe(t,e)).filter(e=>!!e):p.map(e=>{const r=xe(t,e);if(r)return r;if(e)return{value:e,label:e}}).filter(e=>!!e),[t,l,p]),u=ge(()=>kt({options:t,query:k,enabled:!0,filterFn:J}),[J,k,t]),ht=!f&&h?.options===u?h.id:void 0,pe=d?f?z:ht:void 0;I.current=pe;const vt=x((e,r)=>{if(r?.(e),e.defaultPrevented||!s)return;const i=()=>V(e.currentTarget),b=!!i()?.matches(":popover-open"),F=P=>{b||Q(i());const m=Gt(a),St=d?m.findIndex(A=>A.id===I.current):m.indexOf(document.activeElement),g=_t(m,St,P);if(g){if(d){I.current=g.id,f||H({options:u,id:g.id}),K.current?.scrollToId(g.id);const A=Wt(a,g.id);A!==void 0&&X?.(A);return}g.focus({preventScroll:!0}),g.scrollIntoView({block:"nearest"})}};if(!Mt(e,{onNext:()=>F("next"),onPrev:()=>F("prev"),onFirst:()=>F("first"),onLast:()=>F("last"),includeHomeEnd:b})){if(be(e,"Enter")&&b){e.preventDefault();const P=d?I.current:void 0,m=d?P?document.getElementById(P):null:document.activeElement;m instanceof HTMLElement&&m.getAttribute("role")==="option"&&document.getElementById(a)?.contains(m)&&m.click(),ve(i());return}be(e,"Escape")&&b&&(e.preventDefault(),ve(i()))}},[u,f,d,s,a,X,H]);Ot(()=>{if(!d)return;const e=document.getElementById(a)?.querySelector(Ce)?.id,r=f?z:h?.options===u?h.id:e;r&&K.current?.scrollToId(r),!f&&e&&h?.options!==u&&H({options:u,id:e})},[z,u,f,h,d,a]);const D=v[0],bt=v.length>0,xt=l==="path"?v.length>0?v.map(e=>E(e)).join(Ne):null:l==="multiple"?v.length>0?v.map(e=>E(e)).join(", "):null:D?typeof D.label=="string"?D.label:E(D):null,yt=Y?()=>{gt(),Y()}:void 0,fe=Pe??ee("customSelect.filterPlaceholder"),Ct=$(Tt,{children:[$("span",{className:y.triggerSizer,"aria-hidden":"true",children:[R?n("span",{children:R}):null,t.map(e=>n("span",{children:E(e)},e.value))]}),n("span",{className:y.triggerText,children:xt??n("span",{className:y.placeholder,children:R??Z})})]});return $(Lt,{rootRef:Ve,defaultOpen:_,popupRef:oe,onOpenChange:ft,popupRole:"none",triggerMode:L?"combobox":"toggle",className:qe,widthMode:ct,align:Ae,mobileTitle:Re,mobileLeftControls:Me,mobileRightControls:Be,panelScroll:Ke,boxProps:ue?{onMouseDown:ue}:void 0,trigger:(e,r)=>n(Dt,{id:Ye,label:Z,size:_e,width:U,error:Je,description:Xe,disabled:T,readOnly:se,prefix:Ge,postfix:n(Ft,{children:Jt(se)}),onClear:yt,clearLabel:Ze,hasValue:bt,role:C?"combobox":void 0,tabIndex:C&&!T?0:void 0,"aria-disabled":C&&T||void 0,"aria-busy":Ie||void 0,"aria-controls":a,"aria-haspopup":De,"aria-label":Ue,"aria-activedescendant":pe,"aria-expanded":L?ut:e["aria-expanded"],popoverTarget:e.popoverTarget,popoverTargetAction:e.popoverTargetAction,...st,as:B?.as??(C?"div":"button"),className:nt??(c?void 0:y.trigger),wrapperClassName:at??At(y.field,e.className,!c&&U!=="full"&&y.fitContent,Qe),rootRef:Et(r,it),onClick:q(tt,i=>{if(!s){i.preventDefault();return}e.onClick?.(i),L&&!i.defaultPrevented&&Q(V(i.currentTarget))}),onFocus:q(rt,i=>{L&&s&&i.currentTarget.matches(":focus-visible")&&Q(V(i.currentTarget))}),onBlur:lt,onKeyDown:q(ot,i=>{if(s){if(d){vt(i,e.onKeyDown);return}e.onKeyDown?.(i)}}),children:re!==void 0?re:c?null:Ct}),children:[Fe&&!c?n("div",{className:ye.filterWrapper,children:n(Nt,{"data-popup-autofocus":"",size:"sm",keepPlaceholder:!0,"aria-label":fe,placeholder:fe,value:k,autoComplete:"off",onChange:e=>{mt(e.target.value)},onKeyDown:e=>{Bt(e,()=>{const r=u[0];r&&ce(r.value)})},"aria-controls":a})}):null,n(It,{controlRef:K,id:a,"aria-label":je,options:u,groups:o,value:p,multiple:l==="multiple",showCheck:pt,noOptionsText:et,disabled:!s,navigation:de,onSelect:ce})]})};export{Zt as Select};
1
+ "use client";import{jsxs as $,Fragment as wt,jsx as n}from"react/jsx-runtime";import{useId as Ot,useRef as j,useState as me,useCallback as x,useMemo as ge,useLayoutEffect as Lt}from"react";import{Dropdown as It}from"../Dropdown/Dropdown.js";import{Listbox as Nt}from"../Listbox/Listbox.js";import{SearchField as Dt}from"../SearchField/SearchField.js";import{TextField as Et,FieldBaseIcon as Ft}from"../TextField/TextField.js";import{useControlledState as he}from"../../hooks/useControlledState.js";import{useLocale as Pt}from"../../locales/localeContext.js";import{cn as Rt}from"../../core/utils/cn.js";import{uEvMerge as q,uRef as Tt}from"../../core/utils/bundle.js";import{getFormControlState as Mt}from"../../core/utils/form.js";import{hidePopover as ve,popoverFromInvoker as V,showPopover as Q}from"../../core/utils/popover.js";import{handleListHighlightKeyDown as At,isKey as be,handleEnterKeyDown as Bt}from"../../core/utils/keyboard.js";import{getListboxPath as Kt,findListboxOption as xe,filterListboxOptions as kt,defaultListboxFilterFn as zt,getListboxOptionText as T,getListboxOptionDomId as Ht}from"../../core/utils/listboxOptions.js";import{ruSlice as $t}from"../../locales/slices/customSelect.ru.js";import{ruSlice as jt}from"../../locales/slices/select.ru.js";import y from"../../styles/selectField.module.css.js";import ye from"./Select.module.css.js";const qt={select:jt,customSelect:$t},Ce='[role="option"]:not([disabled]):not([hidden])';function Vt(t,o){return o===void 0?[]:t==="multiple"||t==="path"?Array.isArray(o)?o:o?[o]:[]:Array.isArray(o)?o[0]?[o[0]]:[]:o?[o]:[]}function Qt(t){return t==="single"?"":[]}function Wt(t,o){const l=`${t}-option-`;if(!o.startsWith(l))return;const S=Number(o.slice(l.length));return Number.isInteger(S)?S:void 0}function _t(t,o,l){if(t.length!==0)return l==="first"?t[0]:l==="last"?t[t.length-1]:l==="next"?t[o<0?0:(o+1)%t.length]:t[o<0?t.length-1:(o-1+t.length)%t.length]}function Gt(t){const o=document.getElementById(t);return o?Array.from(o.querySelectorAll(Ce)):[]}function Jt(t){return n("svg",{className:ye.arrow,"data-readonly":t?"":void 0,viewBox:"0 0 24 24","aria-hidden":"true",children:n("path",{d:"M6 9l6 6 6-6"})})}function Xt(t){return t==="input"||t==="textarea"}const Zt=({options:t,groups:o,selectionMode:l="single",value:S,defaultValue:Se,onChange:W,defaultOpen:_=!1,onOpenChange:G,disabled:w=!1,readOnly:we=!1,closeOnSelect:Oe,filterFn:J=zt,filterQuery:Le,defaultFilterQuery:Ie="",onFilterQueryChange:O,placeholder:M,loading:Ne=!1,separator:De=" / ",popupRole:Ee="listbox",filterable:Fe=!1,filterPlaceholder:Pe,align:Re="auto",widthMode:Te,mobileTitle:Me,mobileLeftControls:Ae,mobileRightControls:Be,panelScroll:Ke="overlay",navigation:ke,highlightedIndex:A,onHighlightChange:X,showCheck:ze,noOptionsText:He,preventOptionMouseDown:$e,listAriaLabel:je,inputProps:B,popupClassName:qe,rootRef:Ve,className:Qe="",id:We,label:Z,size:_e="md",width:U="md",prefix:Ge,postfix:Ut,error:Je,description:Xe,onClear:Y,clearLabel:Ze,"aria-label":Ue})=>{const{t:ee}=Pt(qt),te=Ot(),a=`${te}-listbox`,Ye=We??`${te}-trigger`,K=j(null),oe=j(null),et=He??ee("customSelect.noOptions"),{onClick:tt,onKeyDown:ot,onFocus:rt,onBlur:lt,rootRef:it,className:nt,wrapperClassName:at,children:re,...st}=B??{},c=Xt(B?.as),[dt,le]=he(S,Se??Qt(l)),p=Vt(l,dt),[k,L,ie]=he(Le,Ie),[ut,ne]=me(_),ae=Oe??l==="single",{isReadOnly:se,isInteractive:s}=Mt({disabled:w,readOnly:we}),C=l==="multiple",I=c||C,ct=Te??(c?"trigger":"trigger-fit"),de=ke??(c?"highlight":void 0),pt=ze??(c?!1:l==="multiple"),ue=$e??!0?e=>{const r=e.target;r instanceof Element&&r.closest('input, textarea, [contenteditable="true"]')||e.preventDefault()}:void 0,d=de==="highlight",f=A!==void 0,z=f&&A>=0?Ht(a,A):void 0,[h,H]=me(null),N=j(void 0),ft=x(e=>{ne(e),G?.(e),!e&&!ie&&(L(""),O?.(""))},[ie,O,G,L,ne]),mt=x(e=>{L(e),O?.(e)},[O,L]),D=x(e=>{const r=l==="single"?e[0]??"":e;le(r),W?.(r)},[W,l,le]),gt=x(()=>{s&&D([])},[D,s]),ce=x(e=>{if(!s)return;let r;if(l==="multiple")r=p.includes(e)?p.filter(i=>i!==e):[...p,e];else if(l==="path"){const i=Kt(t,e).map(b=>b.value);r=i.length>0?i:[e]}else r=[e];D(r),ae&&oe.current?.hide()},[D,s,t,l,ae,p]),v=ge(()=>l==="path"?p.map(e=>xe(t,e)).filter(e=>!!e):p.map(e=>{const r=xe(t,e);if(r)return r;if(e)return{value:e,label:e}}).filter(e=>!!e),[t,l,p]),u=ge(()=>kt({options:t,query:k,enabled:!0,filterFn:J}),[J,k,t]),ht=!f&&h?.options===u?h.id:void 0,pe=d?f?z:ht:void 0;N.current=pe;const vt=x((e,r)=>{if(r?.(e),e.defaultPrevented||!s)return;const i=()=>V(e.currentTarget),b=!!i()?.matches(":popover-open"),F=P=>{b||Q(i());const m=Gt(a),St=d?m.findIndex(R=>R.id===N.current):m.indexOf(document.activeElement),g=_t(m,St,P);if(g){if(d){N.current=g.id,f||H({options:u,id:g.id}),K.current?.scrollToId(g.id);const R=Wt(a,g.id);R!==void 0&&X?.(R);return}g.focus({preventScroll:!0}),g.scrollIntoView({block:"nearest"})}};if(!At(e,{onNext:()=>F("next"),onPrev:()=>F("prev"),onFirst:()=>F("first"),onLast:()=>F("last"),includeHomeEnd:b})){if(be(e,"Enter")&&b){e.preventDefault();const P=d?N.current:void 0,m=d?P?document.getElementById(P):null:document.activeElement;m instanceof HTMLElement&&m.getAttribute("role")==="option"&&document.getElementById(a)?.contains(m)&&m.click(),ve(i());return}be(e,"Escape")&&b&&(e.preventDefault(),ve(i()))}},[u,f,d,s,a,X,H]);Lt(()=>{if(!d)return;const e=document.getElementById(a)?.querySelector(Ce)?.id,r=f?z:h?.options===u?h.id:e;r&&K.current?.scrollToId(r),!f&&e&&h?.options!==u&&H({options:u,id:e})},[z,u,f,h,d,a]);const E=v[0],bt=v.length>0,xt=l==="path"?v.length>0?v.map(e=>T(e)).join(De):null:l==="multiple"?v.length>0?v.map(e=>T(e)).join(", "):null:E?typeof E.label=="string"?E.label:T(E):null,yt=Y?()=>{gt(),Y()}:void 0,fe=Pe??ee("customSelect.filterPlaceholder"),Ct=$(wt,{children:[$("span",{className:y.triggerSizer,"aria-hidden":"true",children:[M?n("span",{children:M}):null,t.map(e=>n("span",{children:T(e)},e.value))]}),n("span",{className:y.triggerText,children:xt??n("span",{className:y.placeholder,children:M??Z})})]});return $(It,{rootRef:Ve,defaultOpen:_,popupRef:oe,onOpenChange:ft,popupRole:"none",triggerMode:I?"combobox":"toggle",className:qe,widthMode:ct,align:Re,mobileTitle:Me,mobileLeftControls:Ae,mobileRightControls:Be,panelScroll:Ke,boxProps:ue?{onMouseDown:ue}:void 0,trigger:(e,r)=>n(Et,{id:Ye,label:Z,size:_e,width:U,error:Je,description:Xe,disabled:w,readOnly:se,prefix:Ge,postfix:n(Ft,{children:Jt(se)}),onClear:yt,clearLabel:Ze,hasValue:bt,role:C?"combobox":void 0,tabIndex:C&&!w?0:void 0,"aria-disabled":C&&w||void 0,"aria-busy":Ne||void 0,"aria-controls":a,"aria-haspopup":Ee,"aria-label":Ue,"aria-activedescendant":pe,"aria-expanded":I?ut:e["aria-expanded"],popovertarget:e.popovertarget,popovertargetaction:e.popovertargetaction,...st,as:B?.as??(C?"div":"button"),className:nt??(c?void 0:y.trigger),wrapperClassName:at??Rt(y.field,e.className,!c&&U!=="full"&&y.fitContent,Qe),rootRef:Tt(r,it),onClick:q(tt,i=>{if(!s){i.preventDefault();return}e.onClick?.(i),I&&!i.defaultPrevented&&Q(V(i.currentTarget))}),onFocus:q(rt,i=>{I&&s&&i.currentTarget.matches(":focus-visible")&&Q(V(i.currentTarget))}),onBlur:lt,onKeyDown:q(ot,i=>{if(s){if(d){vt(i,e.onKeyDown);return}e.onKeyDown?.(i)}}),children:re!==void 0?re:c?null:Ct}),children:[Fe&&!c?n("div",{className:ye.filterWrapper,children:n(Dt,{"data-popup-autofocus":"",size:"sm",keepPlaceholder:!0,"aria-label":fe,placeholder:fe,value:k,autoComplete:"off",onChange:e=>{mt(e.target.value)},onKeyDown:e=>{Bt(e,()=>{const r=u[0];r&&ce(r.value)})},"aria-controls":a})}):null,n(Nt,{controlRef:K,id:a,"aria-label":je,options:u,groups:o,value:p,multiple:l==="multiple",showCheck:pt,noOptionsText:et,disabled:!s,navigation:de,onSelect:ce})]})};export{Zt as Select};
@@ -1 +1 @@
1
- "use client";import{jsx as l,jsxs as N,Fragment as I}from"react/jsx-runtime";import{useId as R,useMemo as x,createContext as D,useContext as P}from"react";import d from"./Tabs.module.css.js";import j from"../../styles/scrollable.module.css.js";import B from"../../styles/utilities.module.css.js";import{SegmentedControl as L}from"../SegmentedControl/SegmentedControl.js";import{cn as u}from"../../core/utils/cn.js";import{useControlledStateWithCallback as M}from"../../hooks/useControlledState.js";import{tabTriggerDomId as b,tabPanelDomId as v}from"./Tabs.utils.js";const f=D(null);function p(){return P(f)}const S=({className:t,items:o,rootRef:r,...i})=>{const a=p(),n=a?.tabsId??"",s=x(()=>o.map(e=>({value:e.value,disabled:e.disabled,id:b(n,e.value),controls:v(n,e.value),label:N(I,{children:[e.label,e.badgeDot?l("span",{className:d.tabBadgeDot,"aria-hidden":!0}):null,!e.badgeDot&&e.badge!=null?l("span",{className:u(B.fCenter,d.tabBadge),children:e.badge}):null]})})),[o,n]);return a==null?null:l(L,{...i,rootRef:r,className:u(j.area,d.tabsHeader,t),options:s,value:a.value,onChange:a.onChange,orientation:a.orientation,variant:a.variant==="pill"?"pill":"plain",width:"auto",itemRole:"tab","aria-orientation":a.orientation})},T=({value:t,className:o,children:r,forceMount:i,hidden:a,rootRef:n,...s})=>{const e=p(),m=e?.tabsId??"",c=e!=null&&e.value!==t;return l("div",{ref:n,className:u(d.tabPanel,o),tabIndex:0,...s,hidden:a??(e==null?void 0:c),role:"tabpanel",id:v(m,t),"aria-labelledby":b(m,t),children:r})},h=({value:t,defaultValue:o,onChange:r,variant:i="line",orientation:a="horizontal",className:n,children:s,rootRef:e,...m})=>{const c=R(),[g,C]=M(t,o??"",r);return l(f.Provider,{value:{tabsId:c,value:g,onChange:C,orientation:a,variant:i},children:l("div",{ref:e,...m,className:u(d.tabsContainer,n),"data-orientation":a,"data-variant":i,children:s})})},V=Object.assign(h,{Root:h,List:S,Panel:T});export{V as Tabs};
1
+ "use client";import{jsx as l,jsxs as N,Fragment as I}from"react/jsx-runtime";import{useId as x,useMemo as R,createContext as D,useContext as P}from"react";import d from"./Tabs.module.css.js";import j from"../../styles/utilities.module.css.js";import{SegmentedControl as B}from"../SegmentedControl/SegmentedControl.js";import{cn as m}from"../../core/utils/cn.js";import{useControlledStateWithCallback as M}from"../../hooks/useControlledState.js";import{tabTriggerDomId as b,tabPanelDomId as v}from"./Tabs.utils.js";const f=D(null);function p(){return P(f)}const S=({className:t,items:o,rootRef:r,...i})=>{const a=p(),n=a?.tabsId??"",s=R(()=>o.map(e=>({value:e.value,disabled:e.disabled,id:b(n,e.value),controls:v(n,e.value),label:N(I,{children:[e.label,e.badgeDot?l("span",{className:d.tabBadgeDot,"aria-hidden":!0}):null,!e.badgeDot&&e.badge!=null?l("span",{className:m(j.fCenter,d.tabBadge),children:e.badge}):null]})})),[o,n]);return a==null?null:l(B,{...i,rootRef:r,className:m(d.tabsHeader,t),options:s,value:a.value,onChange:a.onChange,orientation:a.orientation,variant:a.variant==="pill"?"pill":"plain",width:"auto",itemRole:"tab","aria-orientation":a.orientation})},T=({value:t,className:o,children:r,forceMount:i,hidden:a,rootRef:n,...s})=>{const e=p(),u=e?.tabsId??"",c=e!=null&&e.value!==t;return l("div",{ref:n,className:m(d.tabPanel,o),tabIndex:0,...s,hidden:a??(e==null?void 0:c),role:"tabpanel",id:v(u,t),"aria-labelledby":b(u,t),children:r})},h=({value:t,defaultValue:o,onChange:r,variant:i="line",orientation:a="horizontal",className:n,children:s,rootRef:e,...u})=>{const c=x(),[g,C]=M(t,o??"",r);return l(f.Provider,{value:{tabsId:c,value:g,onChange:C,orientation:a,variant:i},children:l("div",{ref:e,...u,className:m(d.tabsContainer,n),"data-orientation":a,"data-variant":i,children:s})})},V=Object.assign(h,{Root:h,List:S,Panel:T});export{V as Tabs};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../core/utils/injectCss.js";var t="._5vkAh{display:flex;flex-direction:column;font-family:\u0013g-font-family-ui);width:100%}._5vkAh\u0015vertical]{align-items:flex-start;flex-direction:row;gap:\u00024)}._5vkAh\u0016line] ._38Fo5{\u0014button-group-gap:\u00024);background:#0000;border:none;border-bottom:\u000bcolor-border);border-radius:0;box-shadow:none;margin-bottom:\u00024);overflow-x:auto;padding:0;width:100%}:is(._5vkAh\u0016line] ._38Fo5) button{flex:0 0 auto}:is(._5vkAh\u0016line] ._38Fo5) button[aria-selected=true],:is(._5vkAh\u0016line] ._38Fo5) button[aria-selected=true]:hover:not(:disabled){background-color:initial;box-shadow:inset 0 -2px 0 \u0001tabs-indicator)}._5vkAh\u0015vertical]\u0016line] ._38Fo5{border-bottom:none;border-right:\u000bcolor-panel-border);margin-bottom:0;min-width:140px;overflow:visible;width:max-content}:is(._5vkAh\u0015vertical]\u0016line] ._38Fo5) button[aria-selected=true],:is(._5vkAh\u0015vertical]\u0016line] ._38Fo5) button[aria-selected=true]:hover:not(:disabled){box-shadow:inset -2px 0 0 \u0001tabs-indicator)}._38Fo5{max-width:100%}.Zw2N-{\u0007color-option-hover);\bg-radius-pill);color:\u0001text-secondary);display:inline-flex;\fbadge-font-size);font-weight:\u0004bold);\u000fbadge-size-md);line-height:1;min-width:\u0013badge-size-md);padding:0 \u00021)}._38Fo5 [aria-selected=true] .Zw2N-{background-color:\u0012\u0001brand) 18%,#0000);color:\u0001brand)}.z6b3L{\u0007color-status-error);border-radius:50%;flex-shrink:0;height:\u00022);width:\u00022)}.eAxHF{flex:1;min-width:0}";const o={tabsContainer:"_5vkAh",tabsHeader:"_38Fo5",tabBadge:"Zw2N-",tabBadgeDot:"z6b3L",tabPanel:"eAxHF"};a(t);export{o as default};
1
+ "use client";import{injectCss as a}from"../../core/utils/injectCss.js";var t="._5vkAh{display:flex;flex-direction:column;font-family:\u0013g-font-family-ui);width:100%}._5vkAh\u0015vertical]{align-items:flex-start;flex-direction:row;gap:\u00024)}._5vkAh\u0016line] ._38Fo5{\u0014button-group-gap:\u00024);background:#0000;border:none;border-bottom:\u000bcolor-border);border-radius:0;box-shadow:none;margin-bottom:\u00024);overflow-x:auto;padding:0;width:100%}:is(._5vkAh\u0016line] ._38Fo5) button{flex:0 0 auto}:is(._5vkAh\u0016line] ._38Fo5) button[aria-selected=true],:is(._5vkAh\u0016line] ._38Fo5) button[aria-selected=true]:hover:not(:disabled){background-color:initial;box-shadow:inset 0 -2px 0 \u0001tabs-indicator)}._5vkAh\u0015vertical]\u0016line] ._38Fo5{border-bottom:none;border-right:\u000bcolor-panel-border);margin-bottom:0;min-width:140px;overflow:visible;width:max-content}:is(._5vkAh\u0015vertical]\u0016line] ._38Fo5) button[aria-selected=true],:is(._5vkAh\u0015vertical]\u0016line] ._38Fo5) button[aria-selected=true]:hover:not(:disabled){box-shadow:inset -2px 0 0 \u0001tabs-indicator)}._38Fo5{flex-shrink:0;max-width:100%;overflow-x:auto}.Zw2N-{\u0007color-option-hover);\bg-radius-pill);color:\u0001text-secondary);display:inline-flex;\fbadge-font-size);font-weight:\u0004bold);\u000fbadge-size-md);line-height:1;min-width:\u0013badge-size-md);padding:0 \u00021)}._38Fo5 [aria-selected=true] .Zw2N-{background-color:\u0012\u0001brand) 18%,#0000);color:\u0001brand)}.z6b3L{\u0007color-status-error);border-radius:50%;flex-shrink:0;height:\u00022);width:\u00022)}.eAxHF{flex:1;min-width:0}";const o={tabsContainer:"_5vkAh",tabsHeader:"_38Fo5",tabBadge:"Zw2N-",tabBadgeDot:"z6b3L",tabPanel:"eAxHF"};a(t);export{o as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as o}from"../../core/utils/injectCss.js";var a=".-n-fq{\u0014g-radius:8px;\u0014g-radius-sm:4px;\u0014g-radius-md:\u0005);\u0014g-radius-lg:12px;\u0014g-radius-pill:9999px;\u0014g-font-family-ui:system-ui,-apple-system,sans-serif;\u0014g-font-family-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;\u0014g-font-weight-normal:400;\u0014g-font-weight-medium:500;\u0014g-font-weight-semibold:600;\u0014g-font-weight-bold:700;\u0014g-font-size-3xs:10px;\u0014g-line-height-3xs:1.1;\u0014g-font-size-2xs:12px;\u0014g-line-height-2xs:1.2;\u0014g-font-size-xs:11px;\u0014g-line-height-xs:1.35;\u0014g-font-size-sm:13px;\u0014g-line-height-sm:1.35;\u0014g-font-size-base:14px;\u0014g-line-height-base:1.45;\u0014g-font-size-lg:16px;\u0014g-line-height-lg:1.4;\u0014g-font-size-xl:18px;\u0014g-line-height-xl:1.35;\u0014g-font-size-2xl:20px;\u0014g-font-size-3xl:24px;\u0014g-font-size-4xl:32px;\u0014g-color-white:#fff;\u0014g-color-black:#000;\u0014g-color-slate-50:#f8fafc;\u0014g-color-slate-100:#f1f5f9;\u0014g-color-slate-200:#e2e8f0;\u0014g-color-slate-300:#cbd5e1;\u0014g-color-slate-400:#94a3b8;\u0014g-color-slate-500:#64748b;\u0014g-color-slate-600:#475569;\u0014g-color-slate-700:#334155;\u0014g-color-slate-800:#1e293b;\u0014g-color-slate-900:#0f172a;\u0014g-color-red-300:#fca5a5;\u0014g-color-red-400:#f87171;\u0014g-color-red-600:#dc2626;\u0014g-color-red-700:#b91c1c;\u0014g-color-red-800:#991b1b;\u0014g-color-red-900:#7f1d1d;\u0014g-color-blue-500:#3b82f6;\u0014g-color-emerald-500:#10b981;\u0014g-color-green-600:#16a34a;\u0014g-color-amber-500:#f59e0b;\u0014g-color-amber-600:#d97706;\u0014g-color-violet-500:#8b5cf6;\u0014g-color-teal-500:#14b8a6;\u0014g-color-brand:\u0013g-color-slate-600);\u0014g-color-brand-hover:\u0013g-color-slate-700);\u0014g-color-brand-active:\u0013g-color-slate-800);\u0014dialog-body-size:\u0003base);\u0014dialog-max-width-md:500px;\u0014dialog-max-width-lg:600px;\u0014dialog-max-height:85vh;\u0014motion-overlay:0.2s;\u0014option-padding-y:\u00022);\u0014option-padding-x:\u00023);\u0014toggle-box-size-sm:16px;\u0014toggle-box-size:20px;\u0014toggle-box-size-lg:24px;\u0014toggle-label-gap:\u00023);\u0014toggle-stack-gap:\u00023);\u0014toggle-check-width:4px;\u0014toggle-check-height:8px;\u0014toggle-check-stroke:2px;\u0014toggle-check-width-sm:3px;\u0014toggle-check-height-sm:6px;\u0014toggle-check-stroke-sm:1.5px;\u0014toggle-check-width-lg:5px;\u0014toggle-check-height-lg:9px;\u0014toggle-dash-width:8px;\u0014toggle-dash-height:2px;\u0014toggle-dash-width-sm:6px;\u0014toggle-dash-height-sm:1.5px;\u0014toggle-dash-width-lg:10px;\u0014toggle-task-check-height:7px;\u0014toggle-radio-dot:6px;\u0014toggle-radio-dot-sm:4px;\u0014toggle-radio-dot-lg:8px;\u0014toggle-align-nudge:0.15em;\u0014control-inset:2px;\u0014focus-ring-width:2px;\u0014focus-ring-offset:1px;\u0014focus-ring-color:\u0001input-border-focus);\u0014button-focus-inner:1px;\u0014button-focus-outer:3px;\u0014opacity-disabled:0.55;\u0014field-disabled-opacity:0.8;\u0014overlay-close-size:28px;\u0014overlay-close-icon-size:16px;\u0014overlay-close-fg:\u0001muted);\u0014overlay-close-fg-hover:\u0001text);\u0014overlay-close-bg:#0000;\u0014overlay-close-bg-hover:\u0001option-hover);\u0014field-message-gap:\u00021);\u0014field-pad-top-sm:calc(\u00023) + \u0013control-inset));\u0014field-pad-bottom-sm:calc(\u00021) + \u0013control-inset));\u0014field-pad-top-md:\u00025);\u0014field-pad-bottom-md:\u00022);\u0014field-pad-top-lg:\u00026);\u0014field-pad-bottom-lg:calc(\u00022) + \u0013control-inset));\u0014form-legend-size:\u0003base);\u0014form-legend-weight:\u0004semibold);\u0014form-legend-line-\u000fg-line-height-sm);\u0014form-helper-indent:\u00021);\u0014control-icon-size-sm:14px;\u0014control-icon-size-md:18px;\u0014control-icon-size-lg:22px;\u0014badge-size-sm:16px;\u0014badge-size-md:18px;\u0014badge-font-size:\u00033xs);\u0014badge-font-size-sm:\u0003xs);\u0014badge-overhang:calc(\u00021) + \u0013control-inset));\u0014badge-digit-nudge:0.5px;\u0014slider-track-height:3px;\u0014slider-thumb-size:12px;\u0014slider-track:\u0012\u0001input-text) 12%,#0000);\u0014pagination-active-bar:2px;\u0014color-tabs-indicator:\u0001brand);\u0014color-fill-primary-bg:\u0001brand);\u0014color-fill-primary-fg:\u0001brand-text);\u0014color-fill-floating-bg:\u0001dropdown-bg);\u0014color-fill-floating-fg:\u0001input-text);\u0014surface-secondary-bg:\u0001surface);\u0014surface-secondary-border:\u0001border);\u0014surface-secondary-shadow:\u0013shadow-surface);\u0014color-ink-default:\u0001input-text);\u0014color-ink-muted:\u0001muted);\u0014transition-smooth:color 0.16s cubic-bezier(0.16,1,0.3,1),background-color 0.16s cubic-bezier(0.16,1,0.3,1),border-color 0.16s cubic-bezier(0.16,1,0.3,1),box-shadow 0.16s cubic-bezier(0.16,1,0.3,1),opacity 0.16s cubic-bezier(0.16,1,0.3,1);\u0014g-space-1:4px;\u0014g-space-2:8px;\u0014g-space-3:12px;\u0014g-space-4:16px;\u0014g-space-5:20px;\u0014g-space-6:24px;\u0014g-space-7:28px;\u0014g-space-8:32px;\u0014g-space-9:36px;\u0014control-height-xs:28px;\u0014control-height-sm:32px;\u0014control-height-md:44px;\u0014control-height-lg:52px;\u0014switch-track-width-sm:28px;\u0014switch-track-height-sm:\u0013toggle-box-size-sm);\u0014switch-thumb-size-sm:calc(\u0013toggle-box-size-sm) - \u0013control-inset)*2);\u0014switch-track-width-md:36px;\u0014switch-track-height-md:\u0013toggle-box-size);\u0014switch-thumb-size-md:calc(\u0013toggle-box-size) - \u0013control-inset)*2);\u0014switch-track-width-lg:44px;\u0014switch-track-height-lg:\u0013toggle-box-size-lg);\u0014switch-thumb-size-lg:calc(\u0013toggle-box-size-lg) - \u0013control-inset)*2);\u0014g-z-below:-1;\u0014g-z-raised:1;\u0014g-z-raised-above:2;\u0014g-z-control:5;\u0014g-z-local:10;\u0014g-z-upload:50;\u0014g-z-dropdown:1200;\u0014g-z-notification:1300;\u0014g-z-skip:10000;\u0014field-width-default:320px;\u0014chart-legend-min-width:140px;\u0014popover-min-width:180px;\u0014popover-max-width:360px;\u0014popover-tooltip-max-width:280px;\u0014container-max-sm:640px;\u0014container-max-md:768px;\u0014container-max-lg:960px;\u0014container-max-xl:1200px;\u0014image-crop-size:280px;\u0014image-crop-panel-max:560px;\u0014image-crop-stage-max:480px;\u0014image-gallery-viewport-min:200px;\u0014image-gallery-thumb-width:72px;\u0014image-gallery-thumb-height:54px;\u0014day-strip-day-min:56px;\u0014notification-anchor-inset:56px;\u0014notification-stack-front:64px;\u0014rating-size-sm:16px;\u0014rating-size-md:22px;\u0014rating-size-lg:28px;\u0014command-palette-max-width:560px;\u0014command-palette-max-height:520px;\u0014button-group-item-min-sm:\u00026);\u0014button-group-item-min-md:\u00027);\u0014button-group-item-min-lg:\u00028);\u0014overlay-offset-popover:4px;\u0014color-brand:\u0013g-color-brand);\u0014color-brand-hover:\u0013g-color-brand-hover);\u0014color-brand-active:\u0013g-color-brand-active);\u0014color-brand-text:\u0013g-color-white);\u0014color-brand-border:#ffffff1a;\u0014shadow-brand:0 1px 2px #4755691f;\u0014color-brand-tint:\u0012\u0001brand) 16%,#0000);\u0014color-brand-tint-hover:\u0012\u0001brand) 22%,#0000);\u0014color-brand-tint-active:\u0012\u0001brand-active) 28%,#0000);\u0014color-brand-tint-text:\u0001brand);\u0014color-brand-tint-border:\u0012\u0001brand) 22%,#0000);\u0014color-button-border-primary:#1e293b73;\u0014color-button-border-secondary:\u0013g-color-slate-300);\u0014color-button-border-tinted:\u0012\u0001brand) 28%,#0000);\u0014color-button-border-danger:#991b1b59;\u0014color-button-border-danger-secondary:\u0013g-color-red-300);\u0014color-surface:\u0013g-color-white);\u0014color-surface-elevated:\u0013g-color-white);\u0014color-surface-hover:\u0013g-color-slate-50);\u0014color-surface-active:\u0013g-color-slate-100);\u0014color-text-secondary:\u0013g-color-slate-600);\u0014color-border:\u0013g-color-slate-200);\u0014shadow-surface:0 1px 2px #0f172a0f,0 4px 12px #0f172a0a;\u0014shadow-lg:0 16px 48px \u0012\u0001input-text) 16%,#0000);\u0014color-danger-bg-solid:\u0012\u0013g-color-red-700) 72%,\u0013g-color-slate-700));\u0014color-danger-bg-hover:\u0012\u0013g-color-red-800) 72%,\u0013g-color-slate-800));\u0014color-danger-bg-active:\u0012\u0013g-color-red-900) 78%,\u0013g-color-slate-900));\u0014color-danger-text:\u0013g-color-white);\u0014color-danger-shadow:0 1px 2px #b91c1c1f;\u0014color-danger-bg-secondary:\u0013g-color-white);\u0014color-danger-bg-secondary-hover:\u0012\u0001status-error) 12%,#0000);\u0014color-danger-text-secondary:\u0001status-error);\u0014color-danger-text-secondary-hover:\u0012\u0001status-error) 82%,\u0001input-text));\u0014color-danger-shadow-secondary:0 1px 2px #00000005;\u0014color-danger-tint-bg:\u0012\u0001danger-bg-solid) 12%,#0000);\u0014color-danger-tint-bg-hover:\u0012\u0001danger-bg-solid) 18%,#0000);\u0014color-danger-tint-bg-active:\u0012\u0001danger-bg-solid) 24%,#0000);\u0014color-danger-tint-text:\u0001danger-bg-hover);\u0014color-button-border-danger-tinted:\u0012\u0001danger-bg-solid) 28%,#0000);\u0014color-status-info:\u0012\u0013g-color-blue-500) 58%,\u0013g-color-slate-600));\u0014color-status-success:\u0012\u0013g-color-emerald-500) 55%,\u0013g-color-slate-600));\u0014color-status-success-strong:\u0012\u0013g-color-green-600) 68%,\u0013g-color-slate-700));\u0014color-status-warning:\u0012\u0013g-color-amber-500) 58%,\u0013g-color-slate-600));\u0014color-status-warning-strong:\u0012\u0013g-color-amber-600) 68%,\u0013g-color-slate-700));\u0014color-status-error:\u0012\u0013g-color-red-700) 62%,\u0013g-color-slate-600));\u0014color-chart-4:\u0012\u0013g-color-violet-500) 52%,\u0013g-color-slate-600));\u0014color-chart-5:\u0012\u0013g-color-teal-500) 52%,\u0013g-color-slate-600));\u0014overlay-scrim:#0f172a99;\u0014overlay-scrim-strong:#0f172ab8;\u0014overlay-on-scrim:\u0013g-color-white);\u0014overlay-control-bg:#ffffff1f;\u0014overlay-control-border:#ffffff2e;\u0014overlay-content-bg:#0f172a59;\u0014overlay-content-border:#ffffff1f;\u0014overlay-text-muted:#ffffffd9;\u0014overlay-media-shadow:0 16px 48px #00000073;\u0014color-tooltip-bg:\u0013g-color-slate-800);\u0014color-tooltip-fg:\u0013g-color-slate-50);\u0014color-input-bg:\u0013g-color-white);\u0014color-input-text:\u0013g-color-slate-900);\u0014color-input-border:\u0013g-color-slate-300);\u0014color-input-border-focus:\u0013g-color-slate-600);\u0014color-muted:\u0013g-color-slate-500);\u0014color-input-bg-readonly:\u0013g-color-slate-50);\u0014color-input-border-readonly:\u0013g-color-slate-400);\u0014color-input-label-readonly:\u0013g-color-slate-500);\u0014color-control-bg-readonly:\u0013g-color-slate-50);\u0014color-control-border-readonly:\u0013g-color-slate-400);\u0014color-control-bg:\u0013g-color-white);\u0014color-control-border:\u0001input-border);\u0014color-control-bg-checked:\u0001brand);\u0014color-control-border-checked:\u0001brand);\u0014color-control-mark-\u000eg-color-white);\u0014color-control-text-\u000eg-color-slate-700);\u0014switch-thumb:\u0013g-color-white);\u0014switch-track-off:\u0012\u0001input-text) 32%,\u0001control-bg));\u0014color-dropdown-bg:\u0013g-color-white);\u0014color-dropdown-border:\u0013g-color-slate-200);\u0014shadow-dropdown:0 4px 12px #00000014;\u0014color-option-hover:\u0013g-color-slate-100);\u0014color-upload-bg:\u0013g-color-slate-50);\u0014color-upload-border:\u0013g-color-slate-300);\u0014color-bg:\u0013g-color-slate-50);\u0014color-text:\u0013g-color-slate-900);\u0014color-input-placeholder:\u0001muted);\u0014sortable-item-bg:\u0001surface);\u0014sortable-item-bg-hover:\u0001surface-hover);\u0014sortable-item-bg-dragging:\u0001surface);\u0014sortable-item-border:\u0001border);\u0014sortable-item-border-dragging:\u0001input-border-focus);\u0014sortable-radius:\u0005);\u0014sortable-handle-color:\u0001muted);\u0014sortable-shadow-dragging:\u0013shadow-dropdown);\u0014sortable-transition-fast:box-shadow 0.2s ease-in-out,background-color 0.2s ease-in-out,border-color 0.2s ease-in-out;\u0014sortable-transition-move:transform 0.35s cubic-bezier(0.16,1,0.3,1);\u0014color-field-bg:\u0001input-bg);\u0014color-field-text:\u0001input-text);\u0014color-field-border:\u0001input-border);\u0014color-border-hover:\u0001input-border-focus);\u0014field-label:\u0001muted);\u0014field-placeholder:\u0001input-placeholder);\u0014field-bg-readonly:\u0001input-bg-readonly);\u0014field-border-readonly:\u0001input-border-readonly);\u0014field-label-readonly:\u0001input-label-readonly);\u0014color-button-secondary-bg:\u0001surface);\u0014color-button-secondary-bg-hover:\u0001surface-hover);\u0014color-button-secondary-bg-active:\u0001surface-active);\u0014color-button-secondary-border:\u0001button-border-secondary);\u0014color-button-secondary-text:\u0001text-secondary);\u0014color-button-secondary-shadow:\u0013shadow-brand);\u0014color-button-tinted-bg:\u0001brand-tint);\u0014color-button-tinted-bg-hover:\u0001brand-tint-hover);\u0014color-button-tinted-bg-active:\u0001brand-tint-active);\u0014color-button-tinted-border:\u0001button-border-tinted);\u0014color-button-tinted-text:\u0001brand-tint-text);\u0014color-button-ghost-hover-bg:\u0001option-hover);\u0014color-button-ghost-active-bg:\u0012\u0001input-text) 8%,\u0001option-hover));\u0014color-button-ghost-text:\u0001muted);\u0014color-button-ghost-text-hover:\u0001input-text);\u0014color-chip-secondary-bg:\u0012\u0001text-secondary) 12%,#0000);\u0014color-chip-secondary-border:\u0001border);\u0014color-chip-secondary-text:\u0001text-secondary);\u0014color-chip-secondary-bg-hover:\u0012\u0001text-secondary) 20%,#0000);\u0014color-chip-secondary-border-hover:\u0012\u0001border) 70%,\u0001text-secondary));\u0014color-chip-tinted-bg:\u0001brand-tint);\u0014color-chip-tinted-border:\u0001brand-tint-border);\u0014color-chip-tinted-text:\u0001brand-tint-text);\u0014color-chip-tinted-bg-hover:\u0001brand-tint-hover);\u0014color-chip-tinted-border-hover:\u0012\u0001brand-tint-text) 35%,#0000);\u0014color-selection-fill:\u0001brand);\u0014color-selection-fill-fg:\u0001brand-text);\u0014color-selection-fill-emphasis:\u0001brand-hover);\u0014color-selection-neutral-fill:\u0012\u0001text-secondary) 22%,#0000);\u0014color-selection-neutral-border:\u0012\u0001text-secondary) 45%,\u0001border));\u0014color-selection-neutral-slider:\u0001surface);\u0014color-segmented-primary-slider-bg:\u0001selection-fill-emphasis);\u0014color-segmented-ghost-slider-bg:\u0001selection-neutral-slider);\u0014color-segmented-slider-shadow:0 1px 2px \u0012\u0013g-color-slate-900) 12%,#0000),inset 0 0 0 1px \u0012\u0013g-color-slate-900) 8%,#0000);\u0014color-panel-bg:\u0001surface);\u0014color-panel-border:\u0001border);\u0014color-panel-bg-hover:\u0001surface-hover);\u0014color-type:\u0001input-text);\u0014color-type-secondary:\u0001text-secondary);\u0014color-type-tertiary:\u0001muted);\u0014color-type-muted:\u0013g-color-slate-500);\u0014color-type-disabled:\u0001muted);\u0014color-empty-icon:\u0001text-secondary);\u0014color-link-color:\u0001brand);\u0014color-link-color-hover:\u0001brand-hover);\u0014color-link-secondary:\u0001text-secondary);\u0014color-link-secondary-hover:\u0001input-text);\u0014color-link-muted:\u0001muted);\u0014color-link-muted-hover:\u0001text-secondary);\u0014color-link-danger:\u0001status-error);\u0014color-link-danger-hover:\u0012\u0001status-error) 82%,\u0001input-text));\u0007color-bg);color:\u0001text);font-family:\u0013g-font-family-ui);transition:\u0013transition-smooth)}.-n-fq[data-theme=dark]{\u0014g-color-brand:#4e6480;\u0014g-color-brand-hover:#5d7694;\u0014g-color-brand-active:#41536b;\u0014color-brand:\u0013g-color-brand);\u0014color-brand-hover:\u0013g-color-brand-hover);\u0014color-brand-active:\u0013g-color-brand-active);\u0014color-brand-text:\u0013g-color-slate-50);\u0014color-tabs-indicator:\u0001brand-hover);\u0014color-brand-border:#ffffff38;\u0014shadow-brand:0 1px 2px #00000059;\u0014color-segmented-primary-slider-bg:\u0012\u0001brand-text) 28%,\u0001brand));\u0014color-selection-fill:\u0012\u0001brand) 42%,\u0001dropdown-bg,#262628));\u0014color-selection-fill-fg:\u0001brand-text);\u0014color-selection-fill-emphasis:\u0001segmented-primary-slider-bg);\u0014color-selection-neutral-fill:\u0012\u0001text-secondary) 22%,#0000);\u0014color-selection-neutral-border:\u0012\u0001text-secondary) 45%,\u0001border));\u0014color-selection-neutral-slider:\u0012\u0001brand-text) 11%,\u0001surface-elevated));\u0014color-segmented-ghost-slider-bg:\u0001selection-neutral-slider);\u0014color-segmented-slider-shadow:0 1px 1px \u0012\u0013g-color-black) 28%,#0000),inset 0 0 0 1px \u0012\u0013g-color-white) 7%,#0000);\u0014color-brand-tint:\u0012\u0013g-color-brand) 26%,\u0001surface));\u0014color-brand-tint-hover:\u0012\u0013g-color-brand) 34%,\u0001surface));\u0014color-brand-tint-active:\u0012\u0013g-color-black) 16%,\u0001brand-tint-hover));\u0014color-brand-tint-text:#c8d3e4;\u0014color-brand-tint-border:\u0012\u0013g-color-brand) 32%,#0000);\u0014color-button-border-primary:#ffffff38;\u0014color-button-border-secondary:\u0012#fff 10%,\u0001surface));\u0014color-button-border-tinted:\u0012\u0013g-color-brand) 36%,#0000);\u0014color-button-border-danger:#ffffff0d;\u0014color-button-border-danger-secondary:\u0012\u0001status-error) 34%,\u0001surface));\u0014color-surface:#1f1f22;\u0014color-surface-elevated:#262628;\u0014color-surface-hover:#2b2b2e;\u0014color-surface-active:#1a1a1c;\u0014color-text-secondary:#c5c9d1;\u0014color-border:\u0012#fff 12%,\u0001surface));\u0014shadow-surface:0 1px 3px #00000059,0 8px 24px #00000038;\u0014color-danger-bg-solid:#8f4e53;\u0014color-danger-bg-hover:#a35a60;\u0014color-danger-bg-active:#7a4247;\u0014color-danger-text:#fff;\u0014color-danger-shadow:0 1px 3px #0000004d;\u0014color-danger-bg-secondary:\u0012\u0001status-error) 9%,\u0001surface));\u0014color-danger-bg-secondary-hover:\u0012\u0001status-error) 15%,\u0001surface));\u0014color-danger-text-secondary:\u0001status-error);\u0014color-danger-text-secondary-hover:\u0012\u0001status-error) 78%,\u0001text));\u0014color-danger-shadow-secondary:0 1px 2px #0003;\u0014color-danger-tint-bg:\u0012\u0001status-error) 16%,\u0001surface));\u0014color-danger-tint-bg-hover:\u0012\u0001status-error) 22%,\u0001surface));\u0014color-danger-tint-bg-active:\u0012\u0001status-error) 28%,\u0001surface));\u0014color-danger-tint-text:\u0001status-error);\u0014color-button-border-danger-tinted:\u0012\u0001status-error) 30%,#0000);\u0014color-status-info:#5b8cba;\u0014color-status-success:#53b689;\u0014color-status-success-strong:#53b689;\u0014color-status-warning:#c4a05e;\u0014color-status-warning-strong:#c4a05e;\u0014color-status-error:#cf7379;\u0014color-chart-4:#8b82b0;\u0014color-chart-5:#5a9e96;\u0014status-bg-amt:14%;\u0014status-bg-base:\u0001surface);\u0014status-border-amt:26%;\u0014status-bg-hover-amt:22%;\u0014status-border-hover-amt:38%;\u0014status-warning-bg-amt:14%;\u0014status-warning-border-amt:26%;\u0014status-warning-bg-hover-amt:24%;\u0014status-warning-border-hover-amt:40%;\u0014status-danger-bg-hover-amt:20%;\u0014status-danger-border-hover-amt:36%;\u0014overlay-scrim:#0a0a0cb8;\u0014overlay-scrim-strong:#0a0a0cd6;\u0014overlay-on-scrim:#f8fafc;\u0014overlay-control-bg:\u0001input-bg);\u0014overlay-control-border:\u0001input-border);\u0014overlay-content-bg:#0a0a0c66;\u0014overlay-content-border:#ffffff1a;\u0014overlay-text-muted:#f8fafcd9;\u0014overlay-media-shadow:0 16px 48px #0000008c;\u0014color-input-bg:\u0001surface-hover);\u0014color-input-text:#f1f5f9;\u0014color-input-border:\u0012#fff 17%,#0000);\u0014color-input-border-focus:#6b7f98;\u0014focus-ring-color:#f8fafcb8;\u0014focus-ring-offset:2px;\u0014button-focus-inner:2px;\u0014button-focus-outer:4px;\u0014color-link-color:#9aafc4;\u0014color-link-color-hover:#c8d3e4;\u0014color-muted:#a8a8b3;\u0014field-label:#a8a8b3;\u0014color-type-tertiary:#8c8c99;\u0014color-type-muted:#8c8c99;\u0014color-input-bg-readonly:\u0001surface);\u0014color-input-border-readonly:#475569;\u0014color-input-label-readonly:#a8a8b3;\u0014color-control-bg-readonly:\u0001surface);\u0014color-control-border-readonly:#475569;\u0014color-control-bg:\u0001surface-hover);\u0014color-control-border:\u0001input-border);\u0014color-control-bg-checked:\u0001brand);\u0014color-control-border-checked:\u0001brand-hover);\u0014color-control-mark-color:#f1f5f9;\u0014color-control-text-color:#cbd5e1;\u0014switch-thumb:#f8fafc;\u0014switch-track-off:\u0012\u0001input-text) 42%,\u0001control-bg));\u0014color-dropdown-bg:\u0001surface-elevated);\u0014color-dropdown-border:\u0012#fff 14%,#0000);\u0014shadow-dropdown:0 8px 28px #0006;\u0014color-option-hover:#2d2d30;\u0014color-upload-bg:\u0001surface);\u0014color-upload-border:\u0012#fff 22%,#0000);\u0014color-bg:#141416;\u0014color-tooltip-bg:#303033;\u0014color-tooltip-fg:\u0013g-color-slate-50);\u0014color-text:#f8fafc;\u0014color-input-placeholder:\u0001type-muted);\u0014overlay-close-fg:\u0001muted);\u0014overlay-close-bg:#0000;\u0014overlay-close-bg-hover:\u0001option-hover);\u0014color-button-secondary-bg:\u0012\u0013g-color-brand) 12%,\u0001surface));\u0014color-button-secondary-bg-hover:\u0012\u0013g-color-brand) 18%,\u0001surface-hover));\u0014color-button-secondary-bg-active:\u0001surface-active)}@media (prefers-reduced-motion:reduce){.-n-fq,.-n-fq *{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}";const l={themeProvider:"-n-fq"};o(a);export{l as default};
1
+ "use client";import{injectCss as o}from"../../core/utils/injectCss.js";var a=".-n-fq{\u0014g-radius:8px;\u0014g-radius-sm:4px;\u0014g-radius-md:\u0005);\u0014g-radius-lg:12px;\u0014g-radius-pill:9999px;\u0014g-font-family-ui:system-ui,-apple-system,sans-serif;\u0014g-font-family-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;\u0014g-font-weight-normal:400;\u0014g-font-weight-medium:500;\u0014g-font-weight-semibold:600;\u0014g-font-weight-bold:700;\u0014g-font-size-3xs:10px;\u0014g-line-height-3xs:1.1;\u0014g-font-size-2xs:12px;\u0014g-line-height-2xs:1.2;\u0014g-font-size-xs:11px;\u0014g-line-height-xs:1.35;\u0014g-font-size-sm:13px;\u0014g-line-height-sm:1.35;\u0014g-font-size-base:14px;\u0014g-line-height-base:1.45;\u0014g-font-size-lg:16px;\u0014g-line-height-lg:1.4;\u0014g-font-size-xl:18px;\u0014g-line-height-xl:1.35;\u0014g-font-size-2xl:20px;\u0014g-font-size-3xl:24px;\u0014g-font-size-4xl:32px;\u0014g-color-white:#fff;\u0014g-color-black:#000;\u0014g-color-slate-50:#f8fafc;\u0014g-color-slate-100:#f1f5f9;\u0014g-color-slate-200:#e2e8f0;\u0014g-color-slate-300:#cbd5e1;\u0014g-color-slate-400:#94a3b8;\u0014g-color-slate-500:#64748b;\u0014g-color-slate-600:#475569;\u0014g-color-slate-700:#334155;\u0014g-color-slate-800:#1e293b;\u0014g-color-slate-900:#0f172a;\u0014g-color-red-300:#fca5a5;\u0014g-color-red-400:#f87171;\u0014g-color-red-600:#dc2626;\u0014g-color-red-700:#b91c1c;\u0014g-color-red-800:#991b1b;\u0014g-color-red-900:#7f1d1d;\u0014g-color-blue-500:#3b82f6;\u0014g-color-emerald-500:#10b981;\u0014g-color-green-600:#16a34a;\u0014g-color-amber-500:#f59e0b;\u0014g-color-amber-600:#d97706;\u0014g-color-violet-500:#8b5cf6;\u0014g-color-teal-500:#14b8a6;\u0014g-color-brand:\u0013g-color-slate-600);\u0014g-color-brand-hover:\u0013g-color-slate-700);\u0014g-color-brand-active:\u0013g-color-slate-800);\u0014dialog-body-size:\u0003base);\u0014dialog-max-width-sm:460px;\u0014dialog-max-width-md:620px;\u0014dialog-max-width-lg:760px;\u0014dialog-max-height:85vh;\u0014motion-overlay:0.2s;\u0014option-padding-y:\u00022);\u0014option-padding-x:\u00023);\u0014toggle-box-size-sm:16px;\u0014toggle-box-size:20px;\u0014toggle-box-size-lg:24px;\u0014toggle-label-gap:\u00023);\u0014toggle-stack-gap:\u00023);\u0014toggle-check-width:4px;\u0014toggle-check-height:8px;\u0014toggle-check-stroke:2px;\u0014toggle-check-width-sm:3px;\u0014toggle-check-height-sm:6px;\u0014toggle-check-stroke-sm:1.5px;\u0014toggle-check-width-lg:5px;\u0014toggle-check-height-lg:9px;\u0014toggle-dash-width:8px;\u0014toggle-dash-height:2px;\u0014toggle-dash-width-sm:6px;\u0014toggle-dash-height-sm:1.5px;\u0014toggle-dash-width-lg:10px;\u0014toggle-task-check-height:7px;\u0014toggle-radio-dot:6px;\u0014toggle-radio-dot-sm:4px;\u0014toggle-radio-dot-lg:8px;\u0014toggle-align-nudge:0.15em;\u0014control-inset:2px;\u0014focus-ring-width:2px;\u0014focus-ring-offset:1px;\u0014focus-ring-color:\u0001input-border-focus);\u0014button-focus-inner:1px;\u0014button-focus-outer:3px;\u0014opacity-disabled:0.55;\u0014field-disabled-opacity:0.8;\u0014overlay-close-size:28px;\u0014overlay-close-icon-size:16px;\u0014overlay-close-fg:\u0001muted);\u0014overlay-close-fg-hover:\u0001text);\u0014overlay-close-bg:#0000;\u0014overlay-close-bg-hover:\u0001option-hover);\u0014field-message-gap:\u00021);\u0014field-pad-top-sm:calc(\u00023) + \u0013control-inset));\u0014field-pad-bottom-sm:calc(\u00021) + \u0013control-inset));\u0014field-pad-top-md:\u00025);\u0014field-pad-bottom-md:\u00022);\u0014field-pad-top-lg:\u00026);\u0014field-pad-bottom-lg:calc(\u00022) + \u0013control-inset));\u0014form-legend-size:\u0003base);\u0014form-legend-weight:\u0004semibold);\u0014form-legend-line-\u000fg-line-height-sm);\u0014form-helper-indent:\u00021);\u0014control-icon-size-sm:14px;\u0014control-icon-size-md:18px;\u0014control-icon-size-lg:22px;\u0014badge-size-sm:16px;\u0014badge-size-md:18px;\u0014badge-font-size:\u00033xs);\u0014badge-font-size-sm:\u0003xs);\u0014badge-overhang:calc(\u00021) + \u0013control-inset));\u0014badge-digit-nudge:0.5px;\u0014slider-track-height:3px;\u0014slider-thumb-size:12px;\u0014slider-track:\u0012\u0001input-text) 12%,#0000);\u0014pagination-active-bar:2px;\u0014color-tabs-indicator:\u0001brand);\u0014color-fill-primary-bg:\u0001brand);\u0014color-fill-primary-fg:\u0001brand-text);\u0014color-fill-floating-bg:\u0001dropdown-bg);\u0014color-fill-floating-fg:\u0001input-text);\u0014surface-secondary-bg:\u0001surface);\u0014surface-secondary-border:\u0001border);\u0014surface-secondary-shadow:\u0013shadow-surface);\u0014color-ink-default:\u0001input-text);\u0014color-ink-muted:\u0001muted);\u0014transition-smooth:color 0.16s cubic-bezier(0.16,1,0.3,1),background-color 0.16s cubic-bezier(0.16,1,0.3,1),border-color 0.16s cubic-bezier(0.16,1,0.3,1),box-shadow 0.16s cubic-bezier(0.16,1,0.3,1),opacity 0.16s cubic-bezier(0.16,1,0.3,1);\u0014g-space-1:4px;\u0014g-space-2:8px;\u0014g-space-3:12px;\u0014g-space-4:16px;\u0014g-space-5:20px;\u0014g-space-6:24px;\u0014g-space-7:28px;\u0014g-space-8:32px;\u0014g-space-9:36px;\u0014control-height-xs:28px;\u0014control-height-sm:32px;\u0014control-height-md:44px;\u0014control-height-lg:52px;\u0014switch-track-width-sm:28px;\u0014switch-track-height-sm:\u0013toggle-box-size-sm);\u0014switch-thumb-size-sm:calc(\u0013toggle-box-size-sm) - \u0013control-inset)*2);\u0014switch-track-width-md:36px;\u0014switch-track-height-md:\u0013toggle-box-size);\u0014switch-thumb-size-md:calc(\u0013toggle-box-size) - \u0013control-inset)*2);\u0014switch-track-width-lg:44px;\u0014switch-track-height-lg:\u0013toggle-box-size-lg);\u0014switch-thumb-size-lg:calc(\u0013toggle-box-size-lg) - \u0013control-inset)*2);\u0014g-z-below:-1;\u0014g-z-raised:1;\u0014g-z-raised-above:2;\u0014g-z-control:5;\u0014g-z-local:10;\u0014g-z-upload:50;\u0014g-z-dropdown:1200;\u0014g-z-notification:1300;\u0014g-z-skip:10000;\u0014field-width-default:320px;\u0014chart-legend-min-width:140px;\u0014popover-min-width:180px;\u0014popover-max-width:360px;\u0014popover-tooltip-max-width:280px;\u0014container-max-sm:640px;\u0014container-max-md:768px;\u0014container-max-lg:960px;\u0014container-max-xl:1200px;\u0014image-crop-size:280px;\u0014image-crop-panel-max:560px;\u0014image-crop-stage-max:480px;\u0014image-gallery-viewport-min:200px;\u0014image-gallery-thumb-width:72px;\u0014image-gallery-thumb-height:54px;\u0014day-strip-day-min:56px;\u0014notification-anchor-inset:56px;\u0014notification-stack-front:64px;\u0014rating-size-sm:16px;\u0014rating-size-md:22px;\u0014rating-size-lg:28px;\u0014command-palette-max-width:\u0013dialog-max-width-md);\u0014command-palette-max-height:520px;\u0014button-group-item-min-sm:\u00026);\u0014button-group-item-min-md:\u00027);\u0014button-group-item-min-lg:\u00028);\u0014overlay-offset-popover:4px;\u0014color-brand:\u0013g-color-brand);\u0014color-brand-hover:\u0013g-color-brand-hover);\u0014color-brand-active:\u0013g-color-brand-active);\u0014color-brand-text:\u0013g-color-white);\u0014color-brand-border:#ffffff1a;\u0014shadow-brand:0 1px 2px #4755691f;\u0014color-brand-tint:\u0012\u0001brand) 16%,#0000);\u0014color-brand-tint-hover:\u0012\u0001brand) 22%,#0000);\u0014color-brand-tint-active:\u0012\u0001brand-active) 28%,#0000);\u0014color-brand-tint-text:\u0001brand);\u0014color-brand-tint-border:\u0012\u0001brand) 22%,#0000);\u0014color-button-border-primary:#1e293b73;\u0014color-button-border-secondary:\u0013g-color-slate-300);\u0014color-button-border-tinted:\u0012\u0001brand) 28%,#0000);\u0014color-button-border-danger:#991b1b59;\u0014color-button-border-danger-secondary:\u0013g-color-red-300);\u0014color-surface:\u0013g-color-white);\u0014color-surface-elevated:\u0013g-color-white);\u0014color-surface-hover:\u0013g-color-slate-50);\u0014color-surface-active:\u0013g-color-slate-100);\u0014color-text-secondary:\u0013g-color-slate-600);\u0014color-border:\u0013g-color-slate-200);\u0014shadow-surface:0 1px 2px #0f172a0f,0 4px 12px #0f172a0a;\u0014shadow-lg:0 16px 48px \u0012\u0001input-text) 16%,#0000);\u0014color-danger-bg-solid:\u0012\u0013g-color-red-700) 72%,\u0013g-color-slate-700));\u0014color-danger-bg-hover:\u0012\u0013g-color-red-800) 72%,\u0013g-color-slate-800));\u0014color-danger-bg-active:\u0012\u0013g-color-red-900) 78%,\u0013g-color-slate-900));\u0014color-danger-text:\u0013g-color-white);\u0014color-danger-shadow:0 1px 2px #b91c1c1f;\u0014color-danger-bg-secondary:\u0013g-color-white);\u0014color-danger-bg-secondary-hover:\u0012\u0001status-error) 12%,#0000);\u0014color-danger-text-secondary:\u0001status-error);\u0014color-danger-text-secondary-hover:\u0012\u0001status-error) 82%,\u0001input-text));\u0014color-danger-shadow-secondary:0 1px 2px #00000005;\u0014color-danger-tint-bg:\u0012\u0001danger-bg-solid) 12%,#0000);\u0014color-danger-tint-bg-hover:\u0012\u0001danger-bg-solid) 18%,#0000);\u0014color-danger-tint-bg-active:\u0012\u0001danger-bg-solid) 24%,#0000);\u0014color-danger-tint-text:\u0001danger-bg-hover);\u0014color-button-border-danger-tinted:\u0012\u0001danger-bg-solid) 28%,#0000);\u0014color-status-info:\u0012\u0013g-color-blue-500) 58%,\u0013g-color-slate-600));\u0014color-status-success:\u0012\u0013g-color-emerald-500) 55%,\u0013g-color-slate-600));\u0014color-status-success-strong:\u0012\u0013g-color-green-600) 68%,\u0013g-color-slate-700));\u0014color-status-warning:\u0012\u0013g-color-amber-500) 58%,\u0013g-color-slate-600));\u0014color-status-warning-strong:\u0012\u0013g-color-amber-600) 68%,\u0013g-color-slate-700));\u0014color-status-error:\u0012\u0013g-color-red-700) 62%,\u0013g-color-slate-600));\u0014color-chart-4:\u0012\u0013g-color-violet-500) 52%,\u0013g-color-slate-600));\u0014color-chart-5:\u0012\u0013g-color-teal-500) 52%,\u0013g-color-slate-600));\u0014overlay-scrim:#0f172a99;\u0014overlay-scrim-strong:#0f172ab8;\u0014overlay-on-scrim:\u0013g-color-white);\u0014overlay-control-bg:#ffffff1f;\u0014overlay-control-border:#ffffff2e;\u0014overlay-content-bg:#0f172a59;\u0014overlay-content-border:#ffffff1f;\u0014overlay-text-muted:#ffffffd9;\u0014overlay-media-shadow:0 16px 48px #00000073;\u0014color-tooltip-bg:\u0013g-color-slate-800);\u0014color-tooltip-fg:\u0013g-color-slate-50);\u0014color-input-bg:\u0013g-color-white);\u0014color-input-text:\u0013g-color-slate-900);\u0014color-input-border:\u0013g-color-slate-300);\u0014color-input-border-focus:\u0013g-color-slate-600);\u0014color-muted:\u0013g-color-slate-500);\u0014color-input-bg-readonly:\u0013g-color-slate-50);\u0014color-input-border-readonly:\u0013g-color-slate-400);\u0014color-input-label-readonly:\u0013g-color-slate-500);\u0014color-control-bg-readonly:\u0013g-color-slate-50);\u0014color-control-border-readonly:\u0013g-color-slate-400);\u0014color-control-bg:\u0013g-color-white);\u0014color-control-border:\u0001input-border);\u0014color-control-bg-checked:\u0001brand);\u0014color-control-border-checked:\u0001brand);\u0014color-control-mark-\u000eg-color-white);\u0014color-control-text-\u000eg-color-slate-700);\u0014switch-thumb:\u0013g-color-white);\u0014switch-track-off:\u0012\u0001input-text) 32%,\u0001control-bg));\u0014color-dropdown-bg:\u0013g-color-white);\u0014color-dropdown-border:\u0013g-color-slate-200);\u0014shadow-dropdown:0 4px 12px #00000014;\u0014color-option-hover:\u0013g-color-slate-100);\u0014color-upload-bg:\u0013g-color-slate-50);\u0014color-upload-border:\u0013g-color-slate-300);\u0014color-bg:\u0013g-color-slate-50);\u0014color-text:\u0013g-color-slate-900);\u0014color-input-placeholder:\u0001muted);\u0014sortable-item-bg:\u0001surface);\u0014sortable-item-bg-hover:\u0001surface-hover);\u0014sortable-item-bg-dragging:\u0001surface);\u0014sortable-item-border:\u0001border);\u0014sortable-item-border-dragging:\u0001input-border-focus);\u0014sortable-radius:\u0005);\u0014sortable-handle-color:\u0001muted);\u0014sortable-shadow-dragging:\u0013shadow-dropdown);\u0014sortable-transition-fast:box-shadow 0.2s ease-in-out,background-color 0.2s ease-in-out,border-color 0.2s ease-in-out;\u0014sortable-transition-move:transform 0.35s cubic-bezier(0.16,1,0.3,1);\u0014color-field-bg:\u0001input-bg);\u0014color-field-text:\u0001input-text);\u0014color-field-border:\u0001input-border);\u0014color-border-hover:\u0001input-border-focus);\u0014field-label:\u0001muted);\u0014field-placeholder:\u0001input-placeholder);\u0014field-bg-readonly:\u0001input-bg-readonly);\u0014field-border-readonly:\u0001input-border-readonly);\u0014field-label-readonly:\u0001input-label-readonly);\u0014color-button-secondary-bg:\u0001surface);\u0014color-button-secondary-bg-hover:\u0001surface-hover);\u0014color-button-secondary-bg-active:\u0001surface-active);\u0014color-button-secondary-border:\u0001button-border-secondary);\u0014color-button-secondary-text:\u0001text-secondary);\u0014color-button-secondary-shadow:\u0013shadow-brand);\u0014color-button-tinted-bg:\u0001brand-tint);\u0014color-button-tinted-bg-hover:\u0001brand-tint-hover);\u0014color-button-tinted-bg-active:\u0001brand-tint-active);\u0014color-button-tinted-border:\u0001button-border-tinted);\u0014color-button-tinted-text:\u0001brand-tint-text);\u0014color-button-ghost-hover-bg:\u0001option-hover);\u0014color-button-ghost-active-bg:\u0012\u0001input-text) 8%,\u0001option-hover));\u0014color-button-ghost-text:\u0001muted);\u0014color-button-ghost-text-hover:\u0001input-text);\u0014color-chip-secondary-bg:\u0012\u0001text-secondary) 12%,#0000);\u0014color-chip-secondary-border:\u0001border);\u0014color-chip-secondary-text:\u0001text-secondary);\u0014color-chip-secondary-bg-hover:\u0012\u0001text-secondary) 20%,#0000);\u0014color-chip-secondary-border-hover:\u0012\u0001border) 70%,\u0001text-secondary));\u0014color-chip-tinted-bg:\u0001brand-tint);\u0014color-chip-tinted-border:\u0001brand-tint-border);\u0014color-chip-tinted-text:\u0001brand-tint-text);\u0014color-chip-tinted-bg-hover:\u0001brand-tint-hover);\u0014color-chip-tinted-border-hover:\u0012\u0001brand-tint-text) 35%,#0000);\u0014color-selection-fill:\u0001brand);\u0014color-selection-fill-fg:\u0001brand-text);\u0014color-selection-fill-emphasis:\u0001brand-hover);\u0014color-selection-neutral-fill:\u0012\u0001text-secondary) 22%,#0000);\u0014color-selection-neutral-border:\u0012\u0001text-secondary) 45%,\u0001border));\u0014color-selection-neutral-slider:\u0001surface);\u0014color-segmented-primary-slider-bg:\u0001selection-fill-emphasis);\u0014color-segmented-ghost-slider-bg:\u0001selection-neutral-slider);\u0014color-segmented-slider-shadow:0 1px 2px \u0012\u0013g-color-slate-900) 12%,#0000),inset 0 0 0 1px \u0012\u0013g-color-slate-900) 8%,#0000);\u0014color-panel-bg:\u0001surface);\u0014color-panel-border:\u0001border);\u0014color-panel-bg-hover:\u0001surface-hover);\u0014color-type:\u0001input-text);\u0014color-type-secondary:\u0001text-secondary);\u0014color-type-tertiary:\u0001muted);\u0014color-type-muted:\u0013g-color-slate-500);\u0014color-type-disabled:\u0001muted);\u0014color-empty-icon:\u0001text-secondary);\u0014color-link-color:\u0001brand);\u0014color-link-color-hover:\u0001brand-hover);\u0014color-link-secondary:\u0001text-secondary);\u0014color-link-secondary-hover:\u0001input-text);\u0014color-link-muted:\u0001muted);\u0014color-link-muted-hover:\u0001text-secondary);\u0014color-link-danger:\u0001status-error);\u0014color-link-danger-hover:\u0012\u0001status-error) 82%,\u0001input-text));\u0007color-bg);color:\u0001text);font-family:\u0013g-font-family-ui);transition:\u0013transition-smooth)}.-n-fq[data-theme=dark]{\u0014g-color-brand:#4e6480;\u0014g-color-brand-hover:#5d7694;\u0014g-color-brand-active:#41536b;\u0014color-brand:\u0013g-color-brand);\u0014color-brand-hover:\u0013g-color-brand-hover);\u0014color-brand-active:\u0013g-color-brand-active);\u0014color-brand-text:\u0013g-color-slate-50);\u0014color-tabs-indicator:\u0001brand-hover);\u0014color-brand-border:#ffffff38;\u0014shadow-brand:0 1px 2px #00000059;\u0014color-segmented-primary-slider-bg:\u0012\u0001brand-text) 28%,\u0001brand));\u0014color-selection-fill:\u0012\u0001brand) 42%,\u0001dropdown-bg,#262628));\u0014color-selection-fill-fg:\u0001brand-text);\u0014color-selection-fill-emphasis:\u0001segmented-primary-slider-bg);\u0014color-selection-neutral-fill:\u0012\u0001text-secondary) 22%,#0000);\u0014color-selection-neutral-border:\u0012\u0001text-secondary) 45%,\u0001border));\u0014color-selection-neutral-slider:\u0012\u0001brand-text) 11%,\u0001surface-elevated));\u0014color-segmented-ghost-slider-bg:\u0001selection-neutral-slider);\u0014color-segmented-slider-shadow:0 1px 1px \u0012\u0013g-color-black) 28%,#0000),inset 0 0 0 1px \u0012\u0013g-color-white) 7%,#0000);\u0014color-brand-tint:\u0012\u0013g-color-brand) 26%,\u0001surface));\u0014color-brand-tint-hover:\u0012\u0013g-color-brand) 34%,\u0001surface));\u0014color-brand-tint-active:\u0012\u0013g-color-black) 16%,\u0001brand-tint-hover));\u0014color-brand-tint-text:#c8d3e4;\u0014color-brand-tint-border:\u0012\u0013g-color-brand) 32%,#0000);\u0014color-button-border-primary:#ffffff38;\u0014color-button-border-secondary:\u0012#fff 10%,\u0001surface));\u0014color-button-border-tinted:\u0012\u0013g-color-brand) 36%,#0000);\u0014color-button-border-danger:#ffffff0d;\u0014color-button-border-danger-secondary:\u0012\u0001status-error) 34%,\u0001surface));\u0014color-surface:#1f1f22;\u0014color-surface-elevated:#262628;\u0014color-surface-hover:#2b2b2e;\u0014color-surface-active:#1a1a1c;\u0014color-text-secondary:#c5c9d1;\u0014color-border:\u0012#fff 12%,\u0001surface));\u0014shadow-surface:0 1px 3px #00000059,0 8px 24px #00000038;\u0014color-danger-bg-solid:#8f4e53;\u0014color-danger-bg-hover:#a35a60;\u0014color-danger-bg-active:#7a4247;\u0014color-danger-text:#fff;\u0014color-danger-shadow:0 1px 3px #0000004d;\u0014color-danger-bg-secondary:\u0012\u0001status-error) 9%,\u0001surface));\u0014color-danger-bg-secondary-hover:\u0012\u0001status-error) 15%,\u0001surface));\u0014color-danger-text-secondary:\u0001status-error);\u0014color-danger-text-secondary-hover:\u0012\u0001status-error) 78%,\u0001text));\u0014color-danger-shadow-secondary:0 1px 2px #0003;\u0014color-danger-tint-bg:\u0012\u0001status-error) 16%,\u0001surface));\u0014color-danger-tint-bg-hover:\u0012\u0001status-error) 22%,\u0001surface));\u0014color-danger-tint-bg-active:\u0012\u0001status-error) 28%,\u0001surface));\u0014color-danger-tint-text:\u0001status-error);\u0014color-button-border-danger-tinted:\u0012\u0001status-error) 30%,#0000);\u0014color-status-info:#5b8cba;\u0014color-status-success:#53b689;\u0014color-status-success-strong:#53b689;\u0014color-status-warning:#c4a05e;\u0014color-status-warning-strong:#c4a05e;\u0014color-status-error:#cf7379;\u0014color-chart-4:#8b82b0;\u0014color-chart-5:#5a9e96;\u0014status-bg-amt:14%;\u0014status-bg-base:\u0001surface);\u0014status-border-amt:26%;\u0014status-bg-hover-amt:22%;\u0014status-border-hover-amt:38%;\u0014status-warning-bg-amt:14%;\u0014status-warning-border-amt:26%;\u0014status-warning-bg-hover-amt:24%;\u0014status-warning-border-hover-amt:40%;\u0014status-danger-bg-hover-amt:20%;\u0014status-danger-border-hover-amt:36%;\u0014overlay-scrim:#0a0a0cb8;\u0014overlay-scrim-strong:#0a0a0cd6;\u0014overlay-on-scrim:#f8fafc;\u0014overlay-control-bg:\u0001input-bg);\u0014overlay-control-border:\u0001input-border);\u0014overlay-content-bg:#0a0a0c66;\u0014overlay-content-border:#ffffff1a;\u0014overlay-text-muted:#f8fafcd9;\u0014overlay-media-shadow:0 16px 48px #0000008c;\u0014color-input-bg:\u0001surface-hover);\u0014color-input-text:#f1f5f9;\u0014color-input-border:\u0012#fff 17%,#0000);\u0014color-input-border-focus:#6b7f98;\u0014focus-ring-color:#f8fafcb8;\u0014focus-ring-offset:2px;\u0014button-focus-inner:2px;\u0014button-focus-outer:4px;\u0014color-link-color:#9aafc4;\u0014color-link-color-hover:#c8d3e4;\u0014color-muted:#a8a8b3;\u0014field-label:#a8a8b3;\u0014color-type-tertiary:#8c8c99;\u0014color-type-muted:#8c8c99;\u0014color-input-bg-readonly:\u0001surface);\u0014color-input-border-readonly:#475569;\u0014color-input-label-readonly:#a8a8b3;\u0014color-control-bg-readonly:\u0001surface);\u0014color-control-border-readonly:#475569;\u0014color-control-bg:\u0001surface-hover);\u0014color-control-border:\u0001input-border);\u0014color-control-bg-checked:\u0001brand);\u0014color-control-border-checked:\u0001brand-hover);\u0014color-control-mark-color:#f1f5f9;\u0014color-control-text-color:#cbd5e1;\u0014switch-thumb:#f8fafc;\u0014switch-track-off:\u0012\u0001input-text) 42%,\u0001control-bg));\u0014color-dropdown-bg:\u0001surface-elevated);\u0014color-dropdown-border:\u0012#fff 14%,#0000);\u0014shadow-dropdown:0 8px 28px #0006;\u0014color-option-hover:#2d2d30;\u0014color-upload-bg:\u0001surface);\u0014color-upload-border:\u0012#fff 22%,#0000);\u0014color-bg:#141416;\u0014color-tooltip-bg:#303033;\u0014color-tooltip-fg:\u0013g-color-slate-50);\u0014color-text:#f8fafc;\u0014color-input-placeholder:\u0001type-muted);\u0014overlay-close-fg:\u0001muted);\u0014overlay-close-bg:#0000;\u0014overlay-close-bg-hover:\u0001option-hover);\u0014color-button-secondary-bg:\u0012\u0013g-color-brand) 12%,\u0001surface));\u0014color-button-secondary-bg-hover:\u0012\u0013g-color-brand) 18%,\u0001surface-hover));\u0014color-button-secondary-bg-active:\u0001surface-active)}@media (prefers-reduced-motion:reduce){.-n-fq,.-n-fq *{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}";const l={themeProvider:"-n-fq"};o(a);export{l as default};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{useRef as v,useState as p}from"react";import{MaskedField as K}from"../MaskedField/MaskedField.js";import{Popover as O}from"../Popover/Popover.js";import{FieldBaseIcon as j}from"../TextField/TextField.js";import{IconClock as q}from"../../icons/icons/IconClock.js";import{bindFieldChromeRef as B}from"../../core/utils/dom.js";import{commitMaskedValue as L}from"../../core/utils/commitMaskedValue.js";import{uRef as Q}from"../../core/utils/bundle.js";import{popoverDomId as U,showPopover as h}from"../../core/utils/popover.js";import{formatHHmm as b}from"../../core/utils/date.js";import k from"./TimeField.module.css.js";import{useFallbackId as V}from"../../core/utils/useFallbackId.js";import{WheelTimePicker as W}from"../WheelTimePicker/WheelTimePicker.js";const T=(e,o)=>Number.isInteger(e)&&Number.isInteger(o)&&e>=0&&e<=23&&o>=0&&o<=59,X=e=>{if(e.length!==4)return;const o=+e.slice(0,2),i=+e.slice(2);return T(o,i)?b(o,i):void 0},z=e=>{const[o,i]=e.split(":").map(Number);return T(o,i)?{hours:o,minutes:i}:null};function G(e,o){e?.querySelectorAll("[data-field-control]").forEach(i=>{i.setAttribute("aria-expanded",o?"true":"false")})}function J({value:e,onChange:o,label:i,disabled:u,readOnly:m,prefix:C,onFocus:N,onClick:F,onKeyDown:A,className:I,inputRef:P,...R}){const d=v(null),c=v(null),w=U(V()),l=e.replace(/\D/g,""),[x,f]=p(l),[y,D]=p(l),[H,M]=p(!1),s=!u&&!m,S=r=>o(b(r.hours,r.minutes));l!==y&&(D(l),f(l));const g=(r,a)=>n(K,{...R,inputRef:Q(P,a?B(a):void 0),className:I,label:i,mask:"99:99",value:x,onChange:t=>{m||(f(t),L(t,X,E=>o(E??"")))},disabled:u,readOnly:m,prefix:C??n(j,{children:n(q,{})}),popoverTarget:r?.popoverTarget,popoverTargetAction:r?.popoverTargetAction,onClick:t=>{F?.(t),t.defaultPrevented||r?.onClick?.(t),s&&!t.defaultPrevented&&h(c.current)},onKeyDown:A,onFocus:t=>{N?.(t),s&&t.currentTarget.matches(":focus-visible")&&h(c.current)}});return n("div",{className:k.host,ref:d,children:s?n(O,{id:w,popoverTargetAction:"show",role:"dialog",side:"bottom",align:"end",widthMode:"content",className:k.panel,panelRef:c,onToggle:r=>{M(r),G(d.current,r)},trigger:(r,a)=>g(r,a),children:n(W,{active:H,value:z(e),onChange:S})}):g()})}export{J as TimeField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{useRef as v,useState as p}from"react";import{MaskedField as K}from"../MaskedField/MaskedField.js";import{Popover as O}from"../Popover/Popover.js";import{FieldBaseIcon as j}from"../TextField/TextField.js";import{IconClock as q}from"../../icons/icons/IconClock.js";import{bindFieldChromeRef as B}from"../../core/utils/dom.js";import{commitMaskedValue as L}from"../../core/utils/commitMaskedValue.js";import{uRef as Q}from"../../core/utils/bundle.js";import{popoverDomId as U,showPopover as h}from"../../core/utils/popover.js";import{formatHHmm as b}from"../../core/utils/date.js";import k from"./TimeField.module.css.js";import{useFallbackId as V}from"../../core/utils/useFallbackId.js";import{WheelTimePicker as W}from"../WheelTimePicker/WheelTimePicker.js";const C=(e,o)=>Number.isInteger(e)&&Number.isInteger(o)&&e>=0&&e<=23&&o>=0&&o<=59,X=e=>{if(e.length!==4)return;const o=+e.slice(0,2),i=+e.slice(2);return C(o,i)?b(o,i):void 0},z=e=>{const[o,i]=e.split(":").map(Number);return C(o,i)?{hours:o,minutes:i}:null};function G(e,o){e?.querySelectorAll("[data-field-control]").forEach(i=>{i.setAttribute("aria-expanded",o?"true":"false")})}function J({value:e,onChange:o,label:i,disabled:u,readOnly:m,prefix:N,onFocus:F,onClick:w,onKeyDown:I,className:P,inputRef:R,...x}){const d=v(null),c=v(null),y=U(V()),l=e.replace(/\D/g,""),[D,f]=p(l),[T,A]=p(l),[H,M]=p(!1),s=!u&&!m,S=r=>o(b(r.hours,r.minutes));l!==T&&(A(l),f(l));const g=(r,a)=>n(K,{...x,inputRef:Q(R,a?B(a):void 0),className:P,label:i,mask:"99:99",value:D,onChange:t=>{m||(f(t),L(t,X,E=>o(E??"")))},disabled:u,readOnly:m,prefix:N??n(j,{children:n(q,{})}),popovertarget:r?.popovertarget,popovertargetaction:r?.popovertargetaction,onClick:t=>{w?.(t),t.defaultPrevented||r?.onClick?.(t),s&&!t.defaultPrevented&&h(c.current)},onKeyDown:I,onFocus:t=>{F?.(t),s&&t.currentTarget.matches(":focus-visible")&&h(c.current)}});return n("div",{className:k.host,ref:d,children:s?n(O,{id:y,popoverTargetAction:"show",role:"dialog",side:"bottom",align:"end",widthMode:"content",className:k.panel,panelRef:c,onToggle:r=>{M(r),G(d.current,r)},trigger:(r,a)=>g(r,a),children:n(W,{active:H,value:z(e),onChange:S})}):g()})}export{J as TimeField};
@@ -61,15 +61,15 @@
61
61
  | Компонент | Описание |
62
62
  |-----------|----------|
63
63
  | **DialogLayout** | Поверхность `Box` с крестиком в правом верхнем углу поверх контента. `onClose`, `showClose`. |
64
- | **Modal** | Составной диалог: корень — **`DialogLayout`**, шапка / тело / футер — **`Layout`**. `Header` / `Body` / `Footer`. Заголовок — **`Title`**. Ряд действий — **`ControlRow`** внутри `Footer`. `open` / `onOpenChange`, `showClose` на корне. |
64
+ | **Modal** | Составной диалог: корень — **`DialogLayout`**, шапка / тело / футер — **`Layout`**. `Header` / `Body` / `Footer`. Заголовок — **`Title`**. Ряд действий — **`ControlRow`** внутри `Footer`. `open` / `onOpenChange`, `showClose`, `size` `sm` / `md` / `lg` на корне. |
65
65
  | **ConfirmDialog** | Готовый диалог на **`Modal`**: отмена + подтверждение, `confirmLabel`, `secondaryAction`, `status="danger"`, `onOpenChange`. |
66
66
  | **Sheet** | Панель: поверхность **`Box`**, шапка / тело / футер — **`Layout`**. `Header` / `Body` / `Footer`. Заголовок — **`Title`**. Крестик — `showClose` на `Header`. `mode` / `direction` / `showHandle`. Слой — нативный `<dialog>`. |
67
67
  | **ImageLightbox** | Полноэкранный просмотр; `open` / `onOpenChange`. |
68
68
  | **Dropdown** | Список или меню у кнопки, на базе **`Popover`** (`popover="auto"`). Якорь — `trigger`. Выбор пункта закрывает панель, клик снаружи и Escape — браузер. Стрелки — у списка внутри. `align`, `widthMode`, `triggerMode` `toggle` \| `combobox`. На узком экране та же панель — нижняя шторка на CSS. Узел — `rootRef`. Форма и календарь — **`Popover`**. |
69
- | **Menu** | Меню действий: клик по `trigger` (**`Dropdown`** + **`ActionList`**) или `trigger="context"` (ПКМ / Shift+F10 у курсора). Пункты — **`ActionListItem`** (`id`). Программный показ — `popupRef`. |
69
+ | **Menu** | Меню действий: клик по `trigger` (**`Dropdown`** + **`ActionList`**) или `trigger="context"` (ПКМ / Shift+F10 у курсора). Пункты — **`ActionListItem`** (`id`) и `{ type: 'separator' }`, как в **`Listbox`**. Программный показ — `popupRef`. |
70
70
  | **Tooltip** | Текстовая подсказка. Ховер и фокус — CSS (`:hover`, `:focus-within`), позиция — CSS Anchor. `side`, `openDelay` / `closeDelay` как задержки CSS, без JS-таймера. |
71
71
  | **Popover** | Немодальная панель: текст, форма, фильтры, календарь. Открытие — `popovertarget`, закрытие по клику снаружи и Escape — `popover="auto"`. Клик внутри не закрывает, фокус не запирается. Якорь — `trigger`. Позиция — CSS Anchor (`side` / `align`, `positionArea()`). Подсказки — **Tooltip**. |
72
- | **CommandPalette** | Палитра Cmd+K: поверхность **`Box`**, подпись **`Text`**. `items` / `groups`, фильтр — **`ActionList`** с `filterable`. |
72
+ | **CommandPalette** | Палитра Cmd+K: поверхность **`Box`**, подпись **`Text`**. `items` / `groups`, фильтр — **`ActionList`** с `filterable`. Ширина как у **`Modal`** `md`. |
73
73
 
74
74
  ---
75
75
 
package/docs/THEMING.md CHANGED
@@ -98,7 +98,7 @@ return (
98
98
  | Переменная | По умолчанию | Назначение |
99
99
  |------------|--------------|------------|
100
100
  | `--altum-dialog-body-size` | `--altum-g-font-size-base` | Текст тела диалога |
101
- | `--altum-dialog-max-width-md` / `lg` | 500 / 600 | Modal / Sheet |
101
+ | `--altum-dialog-max-width-sm` / `md` / `lg` | 460 / 620 / 760 | Modal `size`; `lg` ещё потолок Sheet |
102
102
  | `--altum-dialog-max-height` | 85vh | Максимальная высота Modal |
103
103
  | `--altum-option-padding-y` / `--altum-option-padding-x` | `--altum-g-space-2` / `--altum-g-space-3` | Внутренние отступы опции списка |
104
104
 
@@ -117,7 +117,7 @@ return (
117
117
  | `--altum-toggle-radio-dot*` | sm/md/lg | Размер внутренней точки Radio |
118
118
  | `--altum-toggle-align-nudge` | `0.15em` | Оптическое выравнивание бокса тоггла относительно лейбла |
119
119
  | `--altum-rating-size-sm` / `md` / `lg` | 16 / 22 / 28 | Размер звезды Rating |
120
- | `--altum-command-palette-max-width` / `height` | 560 / 520 | Ограничение панели CommandPalette |
120
+ | `--altum-command-palette-max-width` / `height` | как `--altum-dialog-max-width-md` / 520 | Ширина палитры как Modal `md` |
121
121
  | `--altum-button-group-item-min-sm` / `md` / `lg` | space-6 / 7 / 8 | Мин. ширина кнопки внутри ButtonGroup |
122
122
  | `--altum-focus-ring-width` | 2px | Толщина outline-фокуса (навигация / тогглы / выбор) |
123
123
  | `--altum-focus-ring-offset` | light 1px / dark 2px | Смещение outline-фокуса (согласовано с зазором кольца кнопки) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "altum",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "Библиотека React + TypeScript UI-компонентов: CSS Modules, токены ThemeProvider, адаптация overlay/sheet.",
5
5
  "license": "MIT",
6
6
  "author": "Alexander <azeeson@gmail.com>",
package/types/index.d.ts CHANGED
@@ -577,8 +577,8 @@ type WithEnrichedChildren<T, P> = T & {
577
577
  type PopoverContentVariant = 'panel' | 'plain';
578
578
  type PopoverTargetAction = 'toggle' | 'show' | 'hide';
579
579
  type PopoverTriggerSlotProps = {
580
- popoverTarget?: string;
581
- popoverTargetAction?: PopoverTargetAction;
580
+ popovertarget?: string;
581
+ popovertargetaction?: PopoverTargetAction;
582
582
  onClick?: (event: MouseEvent<HTMLElement>) => void;
583
583
  style?: CSSProperties;
584
584
  };
@@ -707,13 +707,19 @@ interface ActionListItem {
707
707
  buttonProps?: ListboxOption['buttonProps'];
708
708
  groupId?: string;
709
709
  }
710
+ interface ActionListSeparator {
711
+ type: 'separator';
712
+ id?: string;
713
+ groupId?: string;
714
+ }
715
+ type ActionListEntry = ActionListItem | ActionListSeparator;
710
716
  interface ActionListGroup {
711
717
  id: string;
712
718
  label: ReactNode;
713
719
  }
714
720
  interface ActionListProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'onSelect'> {
715
721
  rootRef?: Ref<HTMLDivElement>;
716
- items: ActionListItem[];
722
+ items: ActionListEntry[];
717
723
  groups?: ActionListGroup[];
718
724
  onAction?: (item: ActionListItem) => void;
719
725
  onHighlightChange?: (index: number) => void;
@@ -728,7 +734,7 @@ type MenuTrigger = ReactElement | 'context';
728
734
  interface MenuProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
729
735
  trigger: MenuTrigger;
730
736
  children?: ReactNode;
731
- items: ActionListItem[];
737
+ items: ActionListEntry[];
732
738
  groups?: ActionListGroup[];
733
739
  onOpenChange?: (open: boolean) => void;
734
740
  popupRef?: Ref<DropdownPopup | null>;
@@ -1544,7 +1550,7 @@ type TooltipBaseProps = {
1544
1550
  };
1545
1551
  type TooltipProps = WithEnrichedChildren<TooltipBaseProps, TooltipTriggerProps>;
1546
1552
 
1547
- declare const Tooltip: ({ content, side, children, className, disabled, open, defaultOpen, openDelay, closeDelay, wrap: _wrap, rootRef, }: TooltipProps) => string | number | boolean | Iterable<ReactNode> | React.JSX.Element | null | undefined;
1553
+ declare const Tooltip: ({ content, side, children, className, disabled, open, defaultOpen, openDelay, closeDelay, wrap: _wrap, rootRef, }: TooltipProps) => string | number | boolean | React.JSX.Element | Iterable<ReactNode> | null | undefined;
1548
1554
 
1549
1555
  interface UploadZoneProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'onChange'> {
1550
1556
  onChange?: (files: FileList) => void;
@@ -2016,6 +2022,7 @@ interface ModalRootProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title' |
2016
2022
  open: boolean;
2017
2023
  onOpenChange: (open: boolean) => void;
2018
2024
  children: ReactNode;
2025
+ size?: ControlSize;
2019
2026
  className?: string;
2020
2027
  showClose?: boolean;
2021
2028
  'aria-labelledby'?: string;
@@ -2038,7 +2045,7 @@ interface ModalFooterProps extends Omit<ComponentPropsWithoutRef<'footer'>, 'ali
2038
2045
  }
2039
2046
  type ModalProps = ModalRootProps;
2040
2047
 
2041
- declare const Modal: (({ open, onOpenChange, children, className, "aria-labelledby": ariaLabelledBy, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, rootRef, ...rest }: ModalRootProps) => React.JSX.Element) & {
2048
+ declare const Modal: (({ open, onOpenChange, children, size, className, "aria-labelledby": ariaLabelledBy, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, rootRef, ...rest }: ModalRootProps) => React.JSX.Element) & {
2042
2049
  Header: ({ rootRef, ...props }: ModalHeaderProps) => React.JSX.Element;
2043
2050
  Body: ({ className, rootRef, ...props }: ModalBodyProps) => React.JSX.Element;
2044
2051
  Footer: ({ align, rootRef, ...props }: ModalFooterProps) => React.JSX.Element;
@@ -2733,8 +2740,8 @@ declare const CalendarBoard: (({ children, view: controlledView, defaultView, on
2733
2740
  Week: ({ className, showScheduleHeader, showScheduleNav, rootRef, ...rest }: CalendarBoardWeekProps) => React.JSX.Element;
2734
2741
  Day: ({ className, showScheduleHeader, showScheduleNav, rootRef, ...rest }: CalendarBoardDayProps) => React.JSX.Element;
2735
2742
  Year: ({ className, rootRef, ...rest }: CalendarBoardYearProps) => React.JSX.Element;
2736
- TaskChip: ({ task, layout, continuesBefore, continuesAfter, timeLabel, className, style, highlighted: highlightedProp, rootRef, ...rest }: CalendarBoardTaskChipProps) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
2743
+ TaskChip: ({ task, layout, continuesBefore, continuesAfter, timeLabel, className, style, highlighted: highlightedProp, rootRef, ...rest }: CalendarBoardTaskChipProps) => string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
2737
2744
  };
2738
2745
 
2739
2746
  export { Accordion, ActionItem, ActionList, ActionSheetTrigger, Alert, AspectRatio, Attachment, AutocompleteField, Avatar, AvatarGroup, Badge, BarChart, Box, Bubble, Button, ButtonGroup, ButtonIcon, Calendar, CalendarBoard, Card, Checkbox, CheckboxGroup, Chip, ChipGroup, Collapse, ColorSwatchGroup, CommandPalette, ConfirmDialog, Container, ControlRow, DateField, DateRangeField, DayStripCalendar, DescriptionList, DialogLayout, DonutChart, Dropdown, EmptyState, FieldBaseButton, FieldBaseIcon, FieldGroup, FieldLabel, Fieldset, FileList$1 as FileList, FileUploader, FormMessage, Gap, Grid, GridItem, ImageCrop, ImageGallery, ImageLightbox, Inline, Item, Kbd, KbdGroup, Layout, LayoutContent, LayoutFooter, LayoutHeader, LayoutItem, LayoutRoot, LineChart, Link, Listbox, LiveRegion, LocaleProvider, Marker, MaskedField, Media, Menu, Modal, MultiSelect, Notification, NotificationProvider, NumberField, Overflow, Overlay, Page, Pagination, PasswordField, PinInput, Popover, PopupSwitch, Progress, ProgressCircle, PullToRefresh, Radio, RadioGroup, Rating, RelativeTime, SafeArea, ScrollArea, SearchField, SegmentedControl, Select, Separator, Sheet, Sidebar, Skeleton, SkipLink, Slider, SortableList, Spinner, Split, Stack, StatBadge, Steps, SuggestField, SwipeToAction, Switch, Table, Tabs, Text, TextField, TextareaField, ThemeProvider, TimeField, Timeline, Title, Tooltip, UploadZone, VirtualList, VisuallyHidden, WheelTimePicker, dismiss, dismissAll, en, formatRelativeTime, getPasswordStrength, notify, ru, useCalendarBoardContext, useCalendarBoardTaskHover, useLocale, useNotify, useT, useTheme };
2740
- export type { AccordionItemData, AccordionItemProps, AccordionProps, AccordionVariant, ActionItemProps, ActionListGroup, ActionListItem, ActionListProps, ActionSheetTriggerProps, AlertLayout, AlertProps, AlertVariant, AspectRatioProps, AttachmentProps, AttachmentSize, AttachmentStatus, AutocompleteFieldOption, AutocompleteFieldProps, AvatarGroupProps, AvatarProps, AvatarSize, AvatarStatus, BadgePosition, BadgeProps, BadgeSize, BadgeVariant, BarChartDataset, BarChartProps, BoxAs, BoxBorderStyle, BoxProps, BoxRadius, BoxShadow, BoxVariant, BubbleAlign, BubbleProps, BubbleReaction, BubbleVariant, ButtonGroupItemFit, ButtonGroupOrientation, ButtonGroupRootProps, ButtonGroupVariant, ButtonIconProps, ButtonProps, ButtonVariant, CalendarBoardBodyProps, CalendarBoardDayCellRenderProps, CalendarBoardDayProps, CalendarBoardHeaderProps, CalendarBoardMonthProps, CalendarBoardNavProps, CalendarBoardProviderProps, CalendarBoardRootProps, CalendarBoardTask, CalendarBoardTaskChipProps, CalendarBoardTaskLayout, CalendarBoardTaskRenderProps, CalendarBoardTitleProps, CalendarBoardView, CalendarBoardWeekProps, CalendarBoardYearMonthRenderProps, CalendarBoardYearProps, CalendarBodyProps, CalendarContextValue, CalendarDayCell, CalendarDayCellRenderProps, CalendarHeaderProps, CalendarNavProps, CalendarProviderProps, CalendarRootProps, CalendarScheduleEvent, CalendarSelectionMode, CalendarTitleProps, CalendarViewMode, CardProps, CardVariant, CheckboxGroupProps, CheckboxMode, CheckboxProps, ChipGroupGap, ChipGroupProps, ChipMode, ChipProps, ChipVariant, CollapseProps, ColorSwatchGroupProps, Column, ActionListGroup as CommandPaletteGroup, ActionListItem as CommandPaletteItem, CommandPaletteProps, ConfirmDialogProps, ConfirmDialogSecondaryAction, ContainerProps, ContainerSize, ControlRowProps, ControlSize, DateFieldProps, DateRangeFieldProps, DateRangeValue, DayStripCalendarProps, DayStripDayRenderProps, DeepPartialMessages, DescriptionListItem, DescriptionListProps, DialogLayoutProps, DonutChartProps, DropdownAlign, DropdownPanelScroll, DropdownPanelState, DropdownPopup, DropdownPopupRole, DropdownProps, DropdownTriggerAttrs, DropdownTriggerMode, DropdownTriggerSlotProps, DropdownWidthMode, EmptyStateProps, EmptyStateSize, FieldBaseButtonProps, FieldBaseIconProps, FieldBaseProps, FieldGroupProps, FieldGroupWidth, FieldLabelAlign, FieldLabelJustify, FieldLabelLayout, FieldLabelProps, FieldWidth, FieldsetProps, FieldsetVariant, FileListItemProps, FileListItemStatus, FileListRootProps, FileUploaderFile, FileUploaderProps, FormMessageProps, FormMessageVariant, GapOrientation, GapProps, GridGapToken, GridItemProps, GridMode, GridProps, ImageCropProps, ImageCropResult, ImageCropShape, ImageGalleryItem, ImageGalleryProps, ImageLightboxProps, InlineProps, ItemMediaVariant, ItemProps, ItemSize, ItemVariant, KbdGroupProps, KbdProps, LabelSide, LayoutAlign, LayoutContentProps, LayoutFooterAlign, LayoutFooterProps, LayoutGap, LayoutHeaderProps, LayoutItemProps, LayoutJustify, LayoutRootProps, LayoutSpacing, LineChartProps, LinkProps, LinkSize, LinkStatus, LinkVariant, ListboxEntry, ListboxFilterFn, ListboxGroup, ListboxHandle, ListboxNavigation, ListboxOption, ListboxProps, ListboxSeparator, LiveRegionProps, LocaleCode, LocaleProviderProps, MarkerProps, MarkerVariant, MaskedFieldProps, MediaProps, MenuProps, MenuTrigger, Messages, ModalBodyProps, ModalFooterAlign, ModalFooterProps, ModalHeaderProps, ModalProps, ModalRootProps, MultiSelectOption, MultiSelectProps, NotificationAction, NotificationItem, NotificationPosition, NotificationProps, NotificationProviderProps, NotificationViewportProps, NotifyInput, NumberFieldProps, OverflowDisplay, OverflowFit, OverflowGap, OverflowItemProps, OverflowProps, OverlayBaseProps, OverlayFloatingProps, OverlayModalProps, OverlayProps, OverlaySheetProps, OverlaySheetSide, OverlayVariant, PageProps, PaginationControlsProps, PaginationPageSizeProps, PaginationProps, PaginationRootProps, PaginationSummaryProps, PasswordFieldProps, PasswordStrength, PinInputProps, PopoverContentVariant, PopoverProps, PopoverTargetAction, PopoverTriggerSlotProps, PopupSwitchAlign, PopupSwitchOption, PopupSwitchProps, PopupSwitchVariant, PopupSwitchWidth, ProgressCircleProps, ProgressProps, ProgressVariant, PullToRefreshProps, RadioGroupProps, RadioProps, RangeValue, RatingProps, RelativeTimeProps, ResolvedListboxGroup, SafeAreaEdges, SafeAreaProps, ScrollAreaProps, SearchFieldProps, SegmentOption, SegmentedControlProps, SegmentedControlVariant, SegmentedItemFit, SelectInputProps, SelectOption, SelectProps, SelectSelectionMode, SeparatorOrientation, SeparatorProps, SeparatorSpace, SheetBodyProps, SheetDirection, SheetFooterAlign, SheetFooterProps, SheetHeaderProps, SheetMode, SheetProps, SidebarContentProps, SidebarFooterProps, SidebarGroupLabelProps, SidebarGroupProps, SidebarHeaderProps, SidebarItemProps, SidebarMobileTriggerProps, SidebarProps, SidebarTitleProps, SkeletonProps, SkeletonVariant, SkipLinkProps, SliderProps, SliderRangeProps, SliderSingleProps, SortableItem, SortableListProps, SortableListVariant, SpinnerProps, SpinnerSize, SpinnerVariant, SplitProps, StackProps, StatBadgeProps, StepItem, StepStatus, StepsProps, SuggestFieldOption, SuggestFieldProps, SwipeAction, SwipeToActionProps, SwitchLabelSide, SwitchProps, TableDensity, TableEmptyConfig, TablePagination, TableProps, TableRowActionsProps, TableSortDirection, TabsItem, TabsListProps, TabsOrientation, TabsPanelProps, TabsProps, TabsTriggerProps, TabsVariant, TextFieldAs, TextFieldProps, TextFieldRef, TextProps, TextareaFieldProps, Theme, ThemeApplyTarget, ThemeProviderProps, TimeFieldProps, TimePopupProps, TimeValue, TimelineItem, TimelineItemStatus, TimelineProps, TitleProps, TooltipProps, TooltipSide, TooltipTriggerProps, TranslationParams, UploadZoneProps, VirtualListAlign, VirtualListHandle, VirtualListOnRangeChangeOptions, VirtualListProps, VirtualListRange, VirtualListRenderItemInfo, VirtualScrollMetrics, VirtualScrollMetricsStore, VisuallyHiddenProps, WheelTimePickerProps };
2747
+ export type { AccordionItemData, AccordionItemProps, AccordionProps, AccordionVariant, ActionItemProps, ActionListEntry, ActionListGroup, ActionListItem, ActionListProps, ActionListSeparator, ActionSheetTriggerProps, AlertLayout, AlertProps, AlertVariant, AspectRatioProps, AttachmentProps, AttachmentSize, AttachmentStatus, AutocompleteFieldOption, AutocompleteFieldProps, AvatarGroupProps, AvatarProps, AvatarSize, AvatarStatus, BadgePosition, BadgeProps, BadgeSize, BadgeVariant, BarChartDataset, BarChartProps, BoxAs, BoxBorderStyle, BoxProps, BoxRadius, BoxShadow, BoxVariant, BubbleAlign, BubbleProps, BubbleReaction, BubbleVariant, ButtonGroupItemFit, ButtonGroupOrientation, ButtonGroupRootProps, ButtonGroupVariant, ButtonIconProps, ButtonProps, ButtonVariant, CalendarBoardBodyProps, CalendarBoardDayCellRenderProps, CalendarBoardDayProps, CalendarBoardHeaderProps, CalendarBoardMonthProps, CalendarBoardNavProps, CalendarBoardProviderProps, CalendarBoardRootProps, CalendarBoardTask, CalendarBoardTaskChipProps, CalendarBoardTaskLayout, CalendarBoardTaskRenderProps, CalendarBoardTitleProps, CalendarBoardView, CalendarBoardWeekProps, CalendarBoardYearMonthRenderProps, CalendarBoardYearProps, CalendarBodyProps, CalendarContextValue, CalendarDayCell, CalendarDayCellRenderProps, CalendarHeaderProps, CalendarNavProps, CalendarProviderProps, CalendarRootProps, CalendarScheduleEvent, CalendarSelectionMode, CalendarTitleProps, CalendarViewMode, CardProps, CardVariant, CheckboxGroupProps, CheckboxMode, CheckboxProps, ChipGroupGap, ChipGroupProps, ChipMode, ChipProps, ChipVariant, CollapseProps, ColorSwatchGroupProps, Column, ActionListGroup as CommandPaletteGroup, ActionListItem as CommandPaletteItem, CommandPaletteProps, ConfirmDialogProps, ConfirmDialogSecondaryAction, ContainerProps, ContainerSize, ControlRowProps, ControlSize, DateFieldProps, DateRangeFieldProps, DateRangeValue, DayStripCalendarProps, DayStripDayRenderProps, DeepPartialMessages, DescriptionListItem, DescriptionListProps, DialogLayoutProps, DonutChartProps, DropdownAlign, DropdownPanelScroll, DropdownPanelState, DropdownPopup, DropdownPopupRole, DropdownProps, DropdownTriggerAttrs, DropdownTriggerMode, DropdownTriggerSlotProps, DropdownWidthMode, EmptyStateProps, EmptyStateSize, FieldBaseButtonProps, FieldBaseIconProps, FieldBaseProps, FieldGroupProps, FieldGroupWidth, FieldLabelAlign, FieldLabelJustify, FieldLabelLayout, FieldLabelProps, FieldWidth, FieldsetProps, FieldsetVariant, FileListItemProps, FileListItemStatus, FileListRootProps, FileUploaderFile, FileUploaderProps, FormMessageProps, FormMessageVariant, GapOrientation, GapProps, GridGapToken, GridItemProps, GridMode, GridProps, ImageCropProps, ImageCropResult, ImageCropShape, ImageGalleryItem, ImageGalleryProps, ImageLightboxProps, InlineProps, ItemMediaVariant, ItemProps, ItemSize, ItemVariant, KbdGroupProps, KbdProps, LabelSide, LayoutAlign, LayoutContentProps, LayoutFooterAlign, LayoutFooterProps, LayoutGap, LayoutHeaderProps, LayoutItemProps, LayoutJustify, LayoutRootProps, LayoutSpacing, LineChartProps, LinkProps, LinkSize, LinkStatus, LinkVariant, ListboxEntry, ListboxFilterFn, ListboxGroup, ListboxHandle, ListboxNavigation, ListboxOption, ListboxProps, ListboxSeparator, LiveRegionProps, LocaleCode, LocaleProviderProps, MarkerProps, MarkerVariant, MaskedFieldProps, MediaProps, MenuProps, MenuTrigger, Messages, ModalBodyProps, ModalFooterAlign, ModalFooterProps, ModalHeaderProps, ModalProps, ModalRootProps, MultiSelectOption, MultiSelectProps, NotificationAction, NotificationItem, NotificationPosition, NotificationProps, NotificationProviderProps, NotificationViewportProps, NotifyInput, NumberFieldProps, OverflowDisplay, OverflowFit, OverflowGap, OverflowItemProps, OverflowProps, OverlayBaseProps, OverlayFloatingProps, OverlayModalProps, OverlayProps, OverlaySheetProps, OverlaySheetSide, OverlayVariant, PageProps, PaginationControlsProps, PaginationPageSizeProps, PaginationProps, PaginationRootProps, PaginationSummaryProps, PasswordFieldProps, PasswordStrength, PinInputProps, PopoverContentVariant, PopoverProps, PopoverTargetAction, PopoverTriggerSlotProps, PopupSwitchAlign, PopupSwitchOption, PopupSwitchProps, PopupSwitchVariant, PopupSwitchWidth, ProgressCircleProps, ProgressProps, ProgressVariant, PullToRefreshProps, RadioGroupProps, RadioProps, RangeValue, RatingProps, RelativeTimeProps, ResolvedListboxGroup, SafeAreaEdges, SafeAreaProps, ScrollAreaProps, SearchFieldProps, SegmentOption, SegmentedControlProps, SegmentedControlVariant, SegmentedItemFit, SelectInputProps, SelectOption, SelectProps, SelectSelectionMode, SeparatorOrientation, SeparatorProps, SeparatorSpace, SheetBodyProps, SheetDirection, SheetFooterAlign, SheetFooterProps, SheetHeaderProps, SheetMode, SheetProps, SidebarContentProps, SidebarFooterProps, SidebarGroupLabelProps, SidebarGroupProps, SidebarHeaderProps, SidebarItemProps, SidebarMobileTriggerProps, SidebarProps, SidebarTitleProps, SkeletonProps, SkeletonVariant, SkipLinkProps, SliderProps, SliderRangeProps, SliderSingleProps, SortableItem, SortableListProps, SortableListVariant, SpinnerProps, SpinnerSize, SpinnerVariant, SplitProps, StackProps, StatBadgeProps, StepItem, StepStatus, StepsProps, SuggestFieldOption, SuggestFieldProps, SwipeAction, SwipeToActionProps, SwitchLabelSide, SwitchProps, TableDensity, TableEmptyConfig, TablePagination, TableProps, TableRowActionsProps, TableSortDirection, TabsItem, TabsListProps, TabsOrientation, TabsPanelProps, TabsProps, TabsTriggerProps, TabsVariant, TextFieldAs, TextFieldProps, TextFieldRef, TextProps, TextareaFieldProps, Theme, ThemeApplyTarget, ThemeProviderProps, TimeFieldProps, TimePopupProps, TimeValue, TimelineItem, TimelineItemStatus, TimelineProps, TitleProps, TooltipProps, TooltipSide, TooltipTriggerProps, TranslationParams, UploadZoneProps, VirtualListAlign, VirtualListHandle, VirtualListOnRangeChangeOptions, VirtualListProps, VirtualListRange, VirtualListRenderItemInfo, VirtualScrollMetrics, VirtualScrollMetricsStore, VisuallyHiddenProps, WheelTimePickerProps };