staffa 0.7.0 → 0.7.1

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.
@@ -5,8 +5,9 @@ A.insertGlobalCss({
5
5
  "&": "display:flex flex-direction:column gap:$1",
6
6
  "> label": "display:flex align-items:center gap:$2 cursor:pointer user-select:none",
7
7
  "> label:has(input:disabled)": "cursor:not-allowed opacity:0.45 filter:saturate(0.6)",
8
- // Native control styled with accent-color: accessible and zero-fuss.
9
- "input": "width:1.15em height:1.15em accent-color:$s-accent cursor:inherit m:0",
8
+ // Native control: size and brand accent-color come from the CSS reset; here we
9
+ // just strip the margin and let it inherit the label's cursor (pointer / not-allowed).
10
+ "input": "cursor:inherit m:0",
10
11
  },
11
12
  });
12
13
  /**
@@ -16,7 +16,7 @@ A.insertGlobalCss({
16
16
  // One class for both the `<a>` (link) and `<button>` forms — they look
17
17
  // identical; the element only differs where link semantics matter (see below).
18
18
  ".s-menu-item": "display:flex align-items:center gap:$2 w:100% outline:0 " +
19
- "padding: $m2; line-height:1.1 r:$s-radius cursor:pointer text-align:left font-weight:450 " +
19
+ "padding: $m2 0; line-height:1.1 r:$s-radius cursor:pointer text-align:left font-weight:450 " +
20
20
  "font-size:0.9em border:0 background:transparent fg:$s-text text-decoration:none " +
21
21
  "transition: color 0.12s, transform 0.12s, text-shadow 0.12s;",
22
22
  ".s-menu-item:focus-visible:not([aria-current=page]), .s-menu-item:hover:not([aria-disabled=true]):not([aria-current=page])": "filter:none color: color-mix(in lab, $s-primary 33%, $s-text);",
@@ -1 +1 @@
1
- import O from"aberdeen";var V="staffa:darkMode",re=O.proxy({value:me()});function me(){try{let e=localStorage.getItem(V);if(e==="dark")return!0;if(e==="light")return!1}catch{}}function be(e){re.value=e;try{e===void 0?localStorage.removeItem(V):localStorage.setItem(V,e?"dark":"light")}catch{}}function ae(e=!1){let t=re.value;return t===void 0&&!e?O.darkMode():t}O(()=>{ae()?O.insertGlobalCss({":root, .s-s.neutral":"--s-bg:#0e0f12 --s-text:#e9eaec",".s-s.neutral":"--s-bg:#191b1f --s-text:#e9eaec",".s-s.neutral .s-s.neutral":"--s-bg:#23262b"}):O.insertGlobalCss({":root, .s-s.neutral":"--s-bg:#eef0f3 --s-text:#1d1f24",".s-s.neutral, .s-s.neutral":"--s-bg:#ffffff --s-text:#1d1f24",".s-s.neutral .s-s.neutral":"--s-bg:#f6f7f9"})});O.setSpacingCssVars(1.1);O.insertGlobalCss({"*, *::before, *::after":"box-sizing:border-box",html:"text-size-adjust:100%",body:"m:0 line-height:1.5 font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-font-smoothing:antialiased background-color:$s-bg text:$s-text",a:"color: $s-link-fg; text-decoration:underline text-underline-offset:2px; transition: color 0.12s, filter 0.12s;","a:hover":"filter: brightness(1.15)","input, button, textarea, select":"font:inherit color:inherit","code, kbd, samp, pre":"font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;",code:"background: color-mix(in oklab, $s-text, $s-bg 86%); padding: 0.12em 0.34em; r:4px font-size:0.9em",pre:"background: color-mix(in oklab, $s-text, $s-bg 92%); p:$3 r: $s-radius; overflow:auto","pre code":"background:transparent p:0","img, svg, video, canvas":"max-width:100% h:auto",hr:"border:0 border-top: 1px solid $s-faint;","::placeholder":"color: $s-muted; opacity:1",":focus-visible":"outline: 2px solid $s-focus; outline-offset:2px",small:"color:$s-muted font-size:0.9em","@media (prefers-reduced-motion: reduce)":{"*, *::before, *::after":"transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important;"},":root":"--s-primary:#00a884 --s-danger:#dc5b41 --s-success:#00a884 --s-warning:#ef6b00 --s-link:#3f8cd8 --s-radius-sm:6px --s-radius:12px --s-radius-lg:18px --s-focus: color-mix(in srgb, $s-primary 38%, transparent); --s-gradient: linear-gradient(135deg, color-mix(in oklab, $s-primary, white 16%), color-mix(in oklab, $s-primary, black 14%));",":root, .s-s.neutral":"--s-accent:$s-primary --s-link-fg:$s-link",".s-s:not(.neutral)":"--s-bg:$s-primary border:0 --s-text:#eee --s-accent:#fff --s-link-fg:#eef --s-muted: color-mix(in srgb, #fff 70%, transparent); --s-faint: color-mix(in srgb, #fff 30%, transparent);",".s-s.danger":"--s-bg:$s-danger",".s-s.success":"--s-bg:$s-success",".s-s.warning":"--s-bg:$s-warning",".s-s.link":"--s-bg:$s-link",".s-s.primary":"--s-bg:$s-primary",":root, .s-s":"--s-muted: color-mix(in oklab, $s-text, $s-bg 42%); --s-faint: color-mix(in oklab, $s-text, $s-bg 80%); color:$s-text scrollbar-width:thin scrollbar-color: $s-faint transparent;",".s-s, body":"background: linear-gradient(170deg, color-mix(in oklab, $s-bg, white 9%), color-mix(in oklab, $s-bg, black 9%));",".s-s":"r:$s-radius",":where(.s-s.neutral)":"border: 1px solid $s-faint;",".s-s::-webkit-scrollbar, .s-s ::-webkit-scrollbar":"width:10px height:10px",".s-s::-webkit-scrollbar-track, .s-s ::-webkit-scrollbar-track":"background:transparent",".s-s::-webkit-scrollbar-thumb, .s-s ::-webkit-scrollbar-thumb":"background:$s-faint border-radius:99px border: 2px solid transparent; background-clip:padding-box",".s-s.shadow.neutral:not(.s-btn)":"box-shadow: 0 4px 14px rgba(0,0,0,0.13);",".s-s.extra-shadow.neutral:not(.s-btn)":"box-shadow: 0 18px 50px rgba(0,0,0,0.28);",".s-s.shadow:not(.neutral):not(.tonal):not(.outlined)":"box-shadow: 0 4px 14px color-mix(in srgb, $s-bg 30%, transparent);",".s-s.extra-shadow:not(.neutral):not(.tonal):not(.outlined)":"box-shadow: 0 14px 40px color-mix(in srgb, $s-bg 40%, transparent);",".s-s.no-shadow":"box-shadow: none !important;",".s-s:not(.neutral).tonal, .s-s:not(.neutral).outlined":"--s-text:$s-bg --s-accent:$s-bg --s-link-fg:$s-bg --s-faint: color-mix(in srgb, $s-bg 30%, transparent); --s-muted: color-mix(in srgb, $s-bg 70%, transparent);",".s-s:not(.neutral).tonal":"background: color-mix(in srgb, $s-bg 15%, transparent); border: 1px solid $s-faint;",".s-s:not(.neutral).outlined":"background: transparent; border: 1px solid color-mix(in srgb, $s-bg 45%, transparent);",".s-s:not(.neutral) .s-s.tonal, .s-s:not(.neutral) .s-s.outlined":"--s-text:#fff --s-accent:#fff --s-link-fg:#fff background: linear-gradient(170deg, color-mix(in oklab, $s-bg, white 9%), color-mix(in oklab, $s-bg, black 9%)); border-color: transparent;"});O.insertGlobalCss({".s-preload, .s-preload *, .s-preload *::before, .s-preload *::after":"transition: none !important; animation: none !important;"});if(typeof document<"u"&&typeof requestAnimationFrame=="function"){let e=document.documentElement;e.classList.add("s-preload"),requestAnimationFrame(()=>requestAnimationFrame(()=>e.classList.remove("s-preload")))}O.insertGlobalCss({":disabled, [aria-disabled=true]":"opacity:0.45 filter:saturate(0.6) user-select:none",":disabled, [aria-disabled=true], :disabled *, [aria-disabled=true] *":"pointer-events:none cursor:not-allowed"});var ge="p, ul, ol, dl, blockquote, pre, table, figure, hr, h1, h2, h3, h4, h5, h6";O.insertGlobalCss({[`${ge}`]:{"&":"margin:0","&:not(:first-child)":"margin-top:$3"},"h1, h2, h3, h4, h5, h6":{"&":"line-height:1.15 font-weight:700 text-wrap:balance","&:not(:first-child)":"margin-top:1.4em"},h1:"font-size:2em font-weight:800 letter-spacing:-0.022em",h2:"font-size:1.55em letter-spacing:-0.018em",h3:"font-size:1.3em letter-spacing:-0.011em",h4:"font-size:1.1em",h5:"font-size:0.95em letter-spacing:0.005em",h6:"font-size:0.8em fg:$s-muted text-transform:uppercase letter-spacing:0.07em","ul, ol":{"&":"padding-left:1.5em","> li:not(:first-child), li > &:not(:first-child)":"margin-top:$1"},blockquote:"border-left: 3px solid $s-faint; padding-left: $3; fg: $s-muted",table:"border-collapse:collapse","th, td":"text-align:left padding: $1 $2; border-bottom: 1px solid $s-faint; vertical-align:top",th:"font-weight:600","thead th":"border-bottom: 2px solid $s-faint;",dt:"font-weight:600",dd:"margin-left: 1.5em",figcaption:"fg:$s-muted font-size:0.9em margin-top:$1 text-align:center"});import l from"aberdeen";import se from"aberdeen";var he=0;function S(e="s"){return`${e}-${++he}`}function d(e,...t){e!=null&&(typeof e=="function"?e(...t):se("rich=",e))}var xe="a[href], button, input, select, textarea, [tabindex]";function Y(e,t){let n=o=>o instanceof HTMLElement&&!o.hasAttribute("disabled")&&o.getAttribute("aria-disabled")!=="true"&&o.tabIndex>=0&&o.getClientRects().length>0,i=(t?[...e.querySelectorAll(t)].find(n):void 0)??[...e.querySelectorAll(xe)].find(n);return i?.focus(),i!=null}function L(e){queueMicrotask(()=>se(e))}import x from"aberdeen";x.insertGlobalCss({".s-field":{"&":"display:flex flex-direction:column gap:$1","> label":"font-weight:600 font-size:0.9em fg:$s-text user-select:none"},".s-req":"fg:$s-danger margin-left:2px",".s-help":"font-size:0.82em fg:$s-muted",".s-error":"font-size:0.82em fg:$s-danger",".s-input":{"&":"w:100% background: color-mix(in oklab, $s-bg, $s-text 4%); color:$s-text border: 1px solid $s-faint; r:$s-radius padding: 0.55em 0.7em; transition: border-color 0.15s, box-shadow 0.15s;","&:hover:not(:disabled)":"border-color: color-mix(in oklab, $s-text, $s-bg 55%);","&:focus-visible":"border-color:$s-accent box-shadow: 0 0 0 3px $s-focus; outline:none","&[aria-invalid=true]":"border-color:$s-danger"}});function q(e,t){let n=e.id??S("field"),i=()=>!!e.error;x("div.s-field",e.attrs,()=>{x(()=>{e.label!=null&&x(`label for=${n}`,()=>{d(e.label),e.required&&x("span.s-req aria-hidden=true #*")})}),t(n,i),x(()=>{e.help!=null&&!e.error&&x("div.s-help",()=>d(e.help))}),x(()=>{e.error&&x("div.s-error role=alert #",e.error)})})}function R(e,t,n,i){x(`id=${t}`),e.name&&x(`name=${e.name}`),x(()=>{e.disabled&&x("disabled=true")}),x(()=>{e.required&&x("aria-required=true")}),x(()=>x("aria-invalid=",n()?"true":"false")),i&&x("bind=",i)}l.insertGlobalCss({".s-ac":{"&":"position:relative","> .s-control":"display:flex flex-wrap:wrap align-items:center gap:$1 background: color-mix(in oklab, $s-bg, $s-text 4%); color:$s-text border: 1px solid $s-faint; r:$s-radius padding: 0.3em 0.4em; cursor:text; transition: border-color 0.15s, box-shadow 0.15s;","> .s-control:hover":"border-color: color-mix(in oklab, $s-text, $s-bg 55%);","> .s-control:focus-within":"border-color:$s-accent box-shadow: 0 0 0 3px $s-focus;","&[aria-invalid=true] > .s-control":"border-color:$s-danger",".s-chip":"display:inline-flex align-items:center gap:$1 font-size:0.85em background: color-mix(in oklab, $s-bg, $s-text 10%); border: 1px solid $s-faint; r:$s-radius padding: 0.1em 0.2em 0.1em 0.5em;",".s-chip > button":"cursor:pointer border:0 background:transparent fg:$s-muted font-size:1.1em line-height:1 padding: 0 0.2em; r:4px",".s-chip > button:hover":"fg:$s-text background:$s-faint",input:"flex:1 min-width:6ch border:0 background:transparent color:inherit outline:none padding:0.25em","> .s-menu":"position:absolute top:100% left:0 right:0 z-index:20 margin-top:4px max-height:15rem overflow-y:auto list-style:none p:$1 margin-bottom:0","> .s-menu li":"margin:0",".s-option":"padding: 0.45em 0.6em; r:6px cursor:pointer transition: background 0.1s;",".s-option[aria-selected=true]":"background: color-mix(in srgb, $s-text 10%, transparent);",".s-add":"fg:$s-accent font-style:italic",".s-empty":"padding: 0.45em 0.6em; fg:$s-muted"}});function ve(e){return typeof e=="string"?{value:e,label:e}:{value:e.value,label:e.label??e.value}}function ye(e){let t=S("ac-menu"),n=l.proxy({query:"",open:!1,active:0}),i=()=>(typeof e.options=="function"?e.options():e.options).map(ve),o=()=>{let f=e.bind?.value;return f==null||f===""?[]:Array.isArray(f)?f:[f]},r=f=>i().find(y=>y.value===f)?.label??f;if(!e.multi){let f=e.bind?l.peek(e.bind,"value"):void 0;typeof f=="string"&&f&&(n.query=l.peek(()=>r(f)))}let a=()=>{let f=new Set(o()),y=i();e.multi&&(y=y.filter(h=>!f.has(h.value)));let g=n.query.trim().toLowerCase();return g&&(y=y.filter(h=>h.label.toLowerCase().includes(g))),y},s=(f,y)=>{if(e.multi){let g=Array.isArray(e.bind?.value)?[...e.bind.value]:[];g.includes(f)||g.push(f),e.bind&&(e.bind.value=g),n.query=""}else e.bind&&(e.bind.value=f),n.query=r(f),n.open=!1;n.active=0,y?.focus()},c=f=>{if(!e.bind)return;let y=e.bind.value??[];e.bind.value=y.filter(g=>g!==f)};q(e,(f,y)=>{l("div.s-ac",e.inputAttrs,()=>{l(()=>l("aria-invalid=",y()?"true":"false"));let g;l("div.s-control",()=>{l("click=",()=>g?.focus()),l(()=>{if(e.multi)for(let h of o())l("span.s-chip",()=>{l("span #",l.peek(()=>r(h))),l("button type=button aria-label=",`Remove ${h}`,()=>{l("#\xD7"),l("click=",$=>{$.stopPropagation(),c(h),g?.focus()})})})}),g=l("input type=text role=combobox autocomplete=off",()=>{l(`id=${f} aria-controls=${t} aria-autocomplete=list`),e.placeholder!=null&&l("placeholder=",e.placeholder),e.disabled&&l("disabled=true"),e.required&&l("aria-required=true"),l("bind=",l.ref(n,"query")),l(()=>l("aria-expanded=",n.open?"true":"false")),l(()=>{let $=a()[n.active];l("aria-activedescendant=",n.open&&$?`${t}-opt-${n.active}`:"")}),l("input=",()=>{n.open=!0,n.active=0}),l("focus=",()=>{n.open=!0}),l("blur=",()=>{setTimeout(()=>U(),150)}),l("keydown=",h=>C(h,g))})}),l(()=>{if(!n.open)return;let h=a(),$=n.query.trim(),ie=e.allowCustom!==!1&&$!==""&&!h.some(K=>K.label.toLowerCase()===$.toLowerCase());l("ul.s-menu.s-s.neutral.shadow role=listbox",`id=${t}`,()=>{h.forEach((K,_)=>{l("li.s-option role=option",`id=${t}-opt-${_}`,()=>{l(()=>l("aria-selected=",n.active===_?"true":"false")),l("#",K.label),l("mousedown=",pe=>pe.preventDefault()),l("click=",()=>s(K.value,g)),l("mousemove=",()=>{n.active=_})})}),ie&&l("li.s-option.s-add role=option",()=>{l("#",`Add "${$}"`),l("mousedown=",K=>K.preventDefault()),l("click=",()=>s($,g))}),h.length===0&&!ie&&l("li.s-empty #No matches")})}),l(()=>{if(e.name)if(e.multi)for(let h of o())l("input type=hidden",()=>{l("name=",e.name),l("value=",h)});else l("input type=hidden",()=>{l("name=",e.name),l("value=",o()[0]??"")})})})});function C(f,y){let g=a(),h=g.length-1;if(f.key==="ArrowDown")f.preventDefault(),n.open=!0,n.active=Math.min(h,n.active+1);else if(f.key==="ArrowUp")f.preventDefault(),n.active=Math.max(0,n.active-1);else if(f.key==="Enter"){f.preventDefault();let $=g[n.active];$?s($.value,y):e.allowCustom!==!1&&n.query.trim()?s(n.query.trim(),y):n.open&&(n.open=!1)}else if(f.key==="Escape")n.open=!1,e.multi||(n.query=r(o()[0]??""));else if(f.key==="Backspace"&&e.multi&&n.query===""){let $=o();$.length&&c($[$.length-1])}}function U(){n.open=!1,e.multi?n.query="":e.allowCustom!==!1&&n.query.trim()?s(n.query.trim()):n.query=r(o()[0]??"")}}import z from"aberdeen";z.insertGlobalCss({".s-box":{"&":"display:flex flex-direction:column overflow:hidden r: $s-radius-lg;","&:not(:first-child)":"margin-top: $3","> header":"display:flex align-items:center gap:$2 padding: $2 $3; border:0 border-bottom: 1px solid $s-faint; r:0 font-weight:600","> footer":"display:flex align-items:center justify-content:flex-end gap:$2 padding: $2 $3; border:0 border-top: 1px solid $s-faint; r:0","> div":"p:$3 gap:$3"}});function we(e={}){let t=typeof e=="string"||typeof e=="function"?{content:e}:e;z("section.s-box.s-s.neutral.shadow",t.attrs,()=>{z(()=>{t.header!=null&&z("header.s-s.neutral",t.headerAttrs,()=>d(t.header))}),z("div",t.contentAttrs,()=>{d(t.content)}),z(()=>{t.footer!=null&&z("footer.s-s.neutral",t.footerAttrs,()=>d(t.footer))})})}import F from"aberdeen";F.insertGlobalCss({".s-btn":{"&":"display:inline-flex align-items:center justify-content:center gap:$2 font-weight:450 line-height:1.1 white-space:nowrap cursor:pointer text-decoration:none padding: $m2 $m3; transition: background 0.15s, border-color 0.15s, color 0.15s, filter 0.15s, box-shadow 0.15s, transform 0.08s;","&:focus-visible":"outline: 3px solid $s-focus; outline-offset: 1px;","&:hover":"filter: brightness(1.06)","&.tonal:hover, &.outlined:hover":"background: color-mix(in srgb, $s-bg 24%, transparent);","&.neutral:hover":"filter:none background: color-mix(in srgb, $s-text 8%, $s-bg);","&:active:not(:disabled)":"transform: translateY(1px)","&.small, .small > &":"padding: $m1 $m2; font-size:0.85em border-radius:$s-radius-sm","&.large, .large > &":"font-size:1.4em border-radius:$s-radius-lg"}});function A(e={}){let t=typeof e=="string"||typeof e=="function"?{content:e}:e,n=t.href!=null?"a":"button";F(`${n}.s-btn.s-s.shadow`,t.attrs,()=>{t.href!=null?(F(`href=${t.href} role=button`),t.disabled&&F("aria-disabled=true")):(F("type=",t.type??"button"),t.disabled&&F("disabled=true")),t.ariaLabel&&F("aria-label=",t.ariaLabel),t.click&&F("click=",t.click),d(t.icon),d(t.content)})}import X from"aberdeen";import le from"aberdeen";le.insertGlobalCss({".s-bgroup":{"&":"display:inline-flex align-items:stretch","&.s-spaced":"gap:$2 flex-wrap:wrap","&.s-vertical":"flex-direction:column","&.s-attached":"gap:0","&.s-attached:not(.s-vertical) > .s-btn:not(:first-child)":"margin-left:-1px","&.s-attached:not(.s-vertical) > .s-btn:not(:first-child):not(:last-child)":"r:0","&.s-attached:not(.s-vertical) > .s-btn:first-child:not(:last-child)":"border-top-right-radius:0 border-bottom-right-radius:0","&.s-attached:not(.s-vertical) > .s-btn:last-child:not(:first-child)":"border-top-left-radius:0 border-bottom-left-radius:0","&.s-attached.s-vertical > .s-btn:not(:first-child)":"margin-top:-1px","&.s-attached.s-vertical > .s-btn:not(:first-child):not(:last-child)":"r:0","&.s-attached.s-vertical > .s-btn:first-child:not(:last-child)":"border-bottom-left-radius:0 border-bottom-right-radius:0","&.s-attached.s-vertical > .s-btn:last-child:not(:first-child)":"border-top-left-radius:0 border-top-right-radius:0","&.s-attached > .s-btn:hover, &.s-attached > .s-btn:focus-visible":"z-index:1"}});function H(e={}){let n=`.s-${e.layout??"attached"}${e.vertical?".s-vertical":""}`;le(`div.s-bgroup${n} role=group`,e.attrs,()=>{if(e.buttons)for(let i of e.buttons)A(i);d(e.content)})}function $e(e){X(()=>{let t=e.bind.value;H({attrs:e.attrs,buttons:Object.entries(e.options).map(([n,i])=>({content:i,ariaLabel:typeof i=="function"?n:void 0,attrs:t===n?".primary":".neutral",click:()=>{e.bind.value=e.allowDeselect&&t===n?void 0:n}}))})}),e.name&&X(()=>X(`input type=hidden name=${e.name} value=`,e.bind.value??""))}import b from"aberdeen";b.insertGlobalCss({".s-check":{"&":"display:flex flex-direction:column gap:$1","> label":"display:flex align-items:center gap:$2 cursor:pointer user-select:none","> label:has(input:disabled)":"cursor:not-allowed opacity:0.45 filter:saturate(0.6)",input:"width:1.15em height:1.15em accent-color:$s-accent cursor:inherit m:0"}});function ke(e={}){let t=e.id??S("check");b("div.s-check",e.attrs,()=>{b(`label for=${t}`,()=>{b("input type=checkbox",e.inputAttrs,()=>{b(`id=${t}`),e.name&&b(`name=${e.name}`),e.checked&&!e.bind&&b("checked=true"),e.change&&b("change=",e.change),b(()=>{e.disabled&&b("disabled=true")}),b(()=>{e.required&&b("aria-required=true")}),e.bind&&b("bind=",e.bind)}),b(()=>{e.label!=null&&d(e.label),e.required&&b("span.s-req aria-hidden=true #*")})}),b(()=>{e.help!=null&&!e.error&&b("div.s-help",()=>d(e.help))}),b(()=>{e.error&&b("div.s-error role=alert #",e.error)})})}import D from"aberdeen";D.insertGlobalCss({".s-form":{"&":"display:flex flex-direction:column gap:$3","&.grid":"display:grid grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap:$3","&.grid > .s-wide, &.grid > footer":"grid-column: 1 / -1;","> footer":"display:flex align-items:center justify-content:flex-end gap:$2 flex-wrap:wrap margin-top:$1"}});function Ae(e={}){let t=typeof e=="string"||typeof e=="function"?{content:e}:e;D("form.s-form",t.attrs,()=>{D(()=>{D(".grid=",t.layout==="grid")}),D("submit=",n=>{if(n.preventDefault(),t.submit){let i=new FormData(n.target),o={};for(let r of new Set(i.keys())){let a=i.getAll(r);o[r]=a.length===1?a[0]:a}t.submit(o,n)}}),d(t.content),D(()=>{t.actions&&D("footer",t.actionsAttrs,()=>d(t.actions))})})}import u from"aberdeen";import v from"aberdeen";import{matchCurrent as Oe}from"aberdeen/route";v.insertGlobalCss({".s-menu-list":"position:fixed z-index:350 min-width:10rem display:flex flex-direction:column p:$1 r:$s-radius-lg overflow-y:auto max-height:min(80vh,28rem) transition: opacity 0.15s, transform 0.15s;",".s-menu-list.hidden":"opacity:0 pointer-events:none transform:translateY(-6px)",".s-menu-item":"display:flex align-items:center gap:$2 w:100% outline:0 padding: $m2; line-height:1.1 r:$s-radius cursor:pointer text-align:left font-weight:450 font-size:0.9em border:0 background:transparent fg:$s-text text-decoration:none transition: color 0.12s, transform 0.12s, text-shadow 0.12s;",".s-menu-item:focus-visible:not([aria-current=page]), .s-menu-item:hover:not([aria-disabled=true]):not([aria-current=page])":"filter:none color: color-mix(in lab, $s-primary 33%, $s-text);",".s-menu-item[aria-current=page]":"text-shadow: 0 0 2px $s-primary; color: color-mix(in lab, $s-primary 50%, $s-text); filter:brightness(1.15)",".s-menu-item[aria-disabled=true]":"opacity:0.45 cursor:not-allowed pointer-events:none",".s-menu-icon":"flex-shrink:0","hr.s-menu-sep":"border:0 height:1px margin: $1 0.6rem; background: linear-gradient(to right, transparent, $s-faint 18%, $s-faint 82%, transparent);"});function J(e,t){v("keydown=",n=>{if(n.key==="Enter"&&n.target.tagName==="A"){queueMicrotask(()=>t?.());return}if(n.key!=="ArrowDown"&&n.key!=="ArrowUp"&&n.key!=="Home"&&n.key!=="End")return;n.preventDefault();let o=[...n.currentTarget.querySelectorAll(".s-menu-item")].filter(c=>c.getAttribute("aria-disabled")!=="true");if(!o.length)return;let r=o.indexOf(document.activeElement),a=n.key==="ArrowUp"?-1:1,s=n.key==="Home"?0:n.key==="End"?o.length-1:r<0?a>0?0:o.length-1:(r+a+o.length)%o.length;o[s].focus()});for(let n of e){if(typeof n=="string"||typeof n=="function"){d(n);continue}if("separator"in n){v("hr.s-menu-sep");continue}v(n.href?"a.s-menu-item":"button.s-menu-item type=button",n.attrs,()=>{n.href&&(v("href=",n.href),n.target&&v("target=",n.target),v(()=>{Oe(n.href)&&v("aria-current=page")})),n.disabled&&v("aria-disabled=true"),v("click=",i=>{if(n.disabled){i.preventDefault();return}t?.(),n.click?.(i)}),n.icon&&v("span.s-menu-icon",()=>d(n.icon)),d(n.label)})}}var B=v.proxy({opts:null});function G(){let e=B.opts?.anchor;B.opts=null,e?.focus()}function de(){return B.opts!=null}function Ee(e,t){let n=e.offsetWidth,i=e.offsetHeight,o=window.innerWidth,r=window.innerHeight,a=4,s=t.left;s+n>o-8&&(s=Math.max(8,t.right-n));let c=t.bottom+a;c+i>r-8&&t.top-i-a>=8&&(c=t.top-i-a),e.style.left=Math.max(8,s)+"px",e.style.top=Math.max(8,c)+"px"}L(()=>{let e=B.opts;if(!e)return;let t=v("div.s-menu-list.s-s.neutral.shadow create=hidden destroy=hidden",e.dropdownAttrs,()=>{J(e.items,G)}),n=o=>{let r=o.target;!t.contains(r)&&(e.closeOnAnchorClick||!e.anchor.contains(r))&&G()},i=o=>{(o.key==="Escape"||o.key==="Tab")&&(o.preventDefault(),G())};document.addEventListener("click",n,!0),document.addEventListener("keydown",i,!0),v.clean(()=>{document.removeEventListener("click",n,!0),document.removeEventListener("keydown",i,!0)}),requestAnimationFrame(()=>{if(!document.body.contains(t))return;let o=e.at?{left:e.at.x,right:e.at.x,top:e.at.y,bottom:e.at.y}:e.anchor.getBoundingClientRect();Ee(t,o),Y(t,".s-menu-item[aria-current=page]")})});function Q(e){return B.opts=e,G}function Te(e){let t=null;v.clean(()=>{B.opts?.anchor===t&&G()}),v("contextmenu=",n=>{n.preventDefault(),t=n.currentTarget,Q({items:e.items,anchor:t,at:{x:n.clientX,y:n.clientY},closeOnAnchorClick:!0,dropdownAttrs:e.dropdownAttrs})})}function Z(e){let t=null;v.clean(()=>{B.opts?.anchor===t&&G()}),A({icon:()=>v("span aria-hidden=true #\u2630"),...e.button?.content==null?{ariaLabel:"Open menu"}:null,attrs:".neutral",...e.button,click:n=>{if(t=n.currentTarget,B.opts?.anchor===t){G();return}Q({items:e.items,anchor:t,dropdownAttrs:e.dropdownAttrs})}})}import p from"aberdeen";import I from"aberdeen";function ee(e={}){q(e,(t,n)=>{I("input.s-input",e.inputAttrs,()=>{I("type=",e.type??"text"),e.placeholder!=null&&I("placeholder=",e.placeholder),e.autocomplete!=null&&I("autocomplete=",e.autocomplete),e.value!=null&&!e.bind&&I("value=",e.value),e.input&&I("input=",e.input),e.change&&I("change=",e.change),R(e,t,n,e.bind)})})}p.insertGlobalCss({".s-backdrop":{"&":"position:fixed inset:0 z-index:200 display:block background: rgba(0,0,0,0.55); transition: opacity 0.4s ease-in-out;","&.hidden":"opacity:0 pointer-events:none"},".s-dialog":{"&":"position:fixed z-index:200 top:50% left:50% display:flex flex-direction:column transform:translate(-50%,-50%) min-width:20rem max-width:min(90vw,44rem) max-height:min(88vh,800px) r: $s-radius-lg; overflow:hidden transition: opacity 0.2s ease-out, transform 0.2s ease-out;","> header":"display:flex align-items:center gap:$2 padding: $2 $3; border:0 border-bottom: 1px solid $s-faint; r:0 font-weight:600 flex-shrink:0","> footer":"display:flex align-items:center justify-content:flex-end gap:$2 padding: $2 $3; border:0 border-top: 1px solid $s-faint; r:0 flex-shrink:0","> div":"p:$3 gap:$3 display:flex flex-direction:column overflow-y:auto flex:1 min-height:0","&.hidden":"opacity:0 pointer-events:none transform: translate(-50%, calc(-50% + 20px)); pointer-events:none"}});var P=p.proxy({}),te=0,ue=p.derive(()=>{let e=Object.keys(P);if(e.length)return e[e.length-1]});function ce(){return ue.value!=null}L(()=>{p.onEach(P,({resolve:e,opts:t},n)=>{let i=()=>{delete P[n]};p.clean(()=>{t.onClose?.(),e()});let o=p.derive(()=>ue.value!=n);p("div.s-backdrop create=hidden destroy=hidden .hidden=",o,"click=",()=>{t.allowCancel!==!1&&i()});let r=p("div.s-dialog.neutral.s-s.extra-shadow create=hidden destroy=hidden",t.attrs,()=>{p(()=>{t.header!=null&&p("header.s-s.neutral",t.headerAttrs,()=>d(t.header))}),p("div",t.contentAttrs,()=>{d(t.content,i)}),p(()=>{t.footer!=null&&p("footer.s-s.neutral",t.footerAttrs,()=>d(t.footer))})});requestAnimationFrame(()=>{document.body.contains(r)&&Y(r)})})});function N(e){te||document.addEventListener("keydown",n=>{if(n.key==="Escape"&&e.allowCancel!==!1){let i=p.unproxy(P);for(let o=te;o>0;o--)if(i[o]){i[o].opts.allowCancel!==!1&&delete P[o];break}}});let t=++te;return e.cancelWithScope!==!1&&p.clean(()=>{delete P[t]}),new Promise(n=>{P[t]={resolve:n,opts:e}})}function Me(e,t={}){return N({header:"Alert",allowCancel:!0,content:n=>{p("p",()=>{p("#",e)}),H({layout:"spaced",attrs:"align-self:flex-end",content:()=>{A({content:"OK",click:n})}})},...t})}function Ce(e,t={}){return new Promise(n=>{let i=!1;N({header:"Confirm",allowCancel:!0,content:o=>{p("p",()=>{p("#",e)}),H({layout:"spaced",attrs:"align-self:flex-end",content:()=>{A({content:"Cancel",attrs:".neutral",click:o}),A({content:"OK",click:()=>{i=!0,o()}})}})},...t,onClose:()=>{n(i),t.onClose?.()}})})}function Se(e,t="",n={}){return new Promise(i=>{let o=null;N({header:"Input",allowCancel:!0,content:r=>{p("p",()=>{p("#",e)});let a=p.proxy({value:t});p("form display:contents",()=>{p("submit=",s=>{s.preventDefault(),o=a.value,r()}),ee({bind:p.ref(a,"value")}),H({layout:"spaced",attrs:"align-self:flex-end",content:()=>{A({content:"Cancel",attrs:".neutral",type:"button",click:r}),A({content:"OK",type:"submit"})}})})},...n,onClose:()=>{i(o),n.onClose?.()}})})}u.insertGlobalCss({".s-main":{"&":"display:flex flex-direction:column min-height:100vh max-height:100vh container-type:inline-size","> header":"border:0 border-bottom: 1px solid $s-faint; r:0 position:sticky top:0 z-index:10","> footer":"border-top: 1px solid $s-faint; fg:$s-muted","> header > .s-bar, > footer > .s-bar":"display:flex align-items:center width:100% margin-inline:auto gap:$3 padding: $2 $3;","> header .s-header-icon":"display:flex align-items:center font-size:1.4em background: $s-gradient; -webkit-background-clip:text; background-clip:text; color:transparent;","> header .s-titles":"display:flex flex-direction:column min-width:0 flex:1","> header .s-title":"font-weight:800 font-size:1.1em line-height:1.2 overflow:hidden text-overflow:ellipsis white-space:nowrap letter-spacing:-0.01em background: $s-gradient; -webkit-background-clip:text; background-clip:text; color:transparent; width:fit-content max-width:100%","> header .s-subtitle":"fg:$s-muted font-size:0.85em overflow:hidden text-overflow:ellipsis white-space:nowrap","> header .s-menu":"display:flex align-items:center gap:$2",".s-body":"flex:1 overflow:hidden display:flex flex-direction:row min-height:0 justify-content:center",".s-body-inner":"flex:1 min-width:0 display:flex flex-direction:row min-height:0","&.s-nav-right .s-body-inner":"flex-direction:row-reverse",".s-nav-sep":"width:1px flex-shrink:0 align-self:stretch margin: 0.6rem 0; border:0 background: linear-gradient(to bottom, transparent, $s-faint 18%, $s-faint 82%, transparent);",".s-body main":"flex:1 min-width:0 min-height:0 overflow-x:hidden overflow-y:auto display:flex flex-direction:column",".s-body main > .s-content":"width:100% flex:1 p:$3",".s-body main.s-scroll-y":"margin-right:$3"},".s-nav-panel":{"&":"display:flex flex-direction:column overflow-y:auto flex-shrink:0 max-width:228px padding:$3 gap:$1"},".s-main.s-nav-left .s-nav-trigger, .s-main.s-nav-right .s-nav-trigger":"display:none",".s-main.s-nav-btn-only .s-nav-panel":"display:none",".s-main.s-nav-btn-only .s-nav-trigger":"display:flex","@container (max-width: 640px)":{".s-main.s-nav-left .s-nav-panel, .s-main.s-nav-right .s-nav-panel, .s-main .s-nav-sep":"display:none",".s-main.s-nav-left .s-nav-trigger, .s-main.s-nav-right .s-nav-trigger":"display:flex",".s-content > .s-box":"margin-inline: calc(-1 * $3); r:0 border-inline:0",".s-main .s-body main.s-scroll-y":"margin-right:0"}});function Le(e={}){let t=e.nav,n=e.navPosition??"left",i=t!=null&&t.items.length>0,o=i?n==="button"?".s-nav-btn-only":`.s-nav-${n}`:"",r=u(`div.s-main${o}`,e.attrs,()=>{u(()=>{(e.title!=null||e.subtitle!=null||e.icon!=null||e.menu!=null||i)&&u("header.s-s.neutral",e.topbarAttrs,()=>{u("div.s-bar",()=>{u(()=>{e.maxWidth!=null&&u("max-width:",e.maxWidth)}),u(()=>{i&&u("div.s-nav-trigger",()=>{Z({...t,button:{icon:()=>u("span aria-hidden=true #\u2630"),ariaLabel:"Open navigation",attrs:".neutral .small",...t.button}})})}),u(()=>{e.icon!=null&&u("div.s-header-icon",()=>d(e.icon))}),u("div.s-titles",()=>{u(()=>{e.title!=null&&u("div.s-title",()=>d(e.title))}),u(()=>{e.subtitle!=null&&u("div.s-subtitle",()=>d(e.subtitle))})}),u(()=>{e.menu&&u("div.s-menu",()=>d(e.menu))})})})}),u("div.s-body",()=>{u("div.s-body-inner",()=>{u(()=>{e.maxWidth!=null&&u("max-width:",e.maxWidth)}),i&&n!=="button"&&(u(`nav.s-nav-panel.s-nav-${n}`,e.navAttrs,()=>{J(t.items)}),u("div.s-nav-sep aria-hidden=true")),qe(e)})}),u(()=>{e.footer!=null&&u("footer",()=>{u("div.s-bar",()=>{u(()=>{e.maxWidth!=null&&u("max-width:",e.maxWidth)}),d(e.footer)})})})});if(i){let a=s=>{if(s.key!=="Escape"||s.defaultPrevented||ce()||de())return;let c=r.querySelector(".s-nav-panel");if(c?.offsetParent!=null){let U=c.querySelector("[aria-current=page]")??c.querySelector(".s-menu-item:not([aria-disabled=true])");U&&(s.preventDefault(),U.focus());return}let C=r.querySelector(".s-nav-trigger button");C&&(s.preventDefault(),C.click())};document.addEventListener("keydown",a),u.clean(()=>document.removeEventListener("keydown",a))}}function qe(e){let t=u("main",()=>{u("div.s-content",e.contentAttrs,()=>{d(e.content)})});Fe(t)}function Fe(e){if(typeof ResizeObserver>"u")return;let t=()=>e.classList.toggle("s-scroll-y",e.offsetWidth>e.clientWidth),n=new ResizeObserver(t);n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),u.clean(()=>n.disconnect())}import k from"aberdeen";k.insertGlobalCss({".s-select_wrap":{"&":"position:relative display:block",select:"w:100% cursor:pointer padding-right:2.2em; appearance:none","&::after":"content: '\u25BE'; position:absolute right:0.7em top:50%; transform: translateY(-50%); pointer-events:none fg:$s-muted font-size:0.85em"}});function Be(e){q(e,(t,n)=>{k("div.s-select_wrap",e.inputAttrs,()=>{k("select.s-input",()=>{R(e,t,n),k("change=",i=>{e.bind&&(e.bind.value=i.target.value)}),k(()=>{let i=typeof e.options=="function"?e.options():e.options,o=e.bind?.value??"";e.placeholder!=null&&k("option",()=>{k("value= disabled=true hidden=true"),o||k("selected=true"),k("#",e.placeholder)});for(let r of i){let a=typeof r=="string"?{value:r,label:r}:{value:r.value,label:r.label??r.value};k("option",()=>{k("value=",a.value),a.value===o&&k("selected=true"),k("#",a.label)})}})})})})}import w from"aberdeen";w.insertGlobalCss({".s-tabs":{"&":"display:flex flex-direction:column gap:$3",".s-tablist":"display:flex gap:$1 align-items:stretch overflow-x:auto scrollbar-width:none border-bottom: 1px solid $s-faint;",".s-tablist::-webkit-scrollbar":"display:none",".s-tab":"display:inline-flex align-items:center gap:$2 cursor:pointer background:transparent border:0 color: $s-muted; font-weight:600 padding: 0.6em 0.9em; border-bottom: 3px solid transparent; margin-bottom:-1px transition: color 0.15s, background 0.15s, border-color 0.15s;",".s-tab:hover:not(:disabled), .s-tab[aria-selected=true]":"color: $s-text;",".s-tab:focus-visible":"outline:none box-shadow: 0 0 0 3px $s-focus; r: $s-radius;",".s-tab[aria-selected=true]":"border-image: $s-gradient 1;",".s-tabpanel":"display:block"}});function ze(e){let t=S("tabs"),n=(r,a)=>r.id??String(a),i=e.bind??w.proxy(n(e.tabs[0]??{label:""},0));e.tabs.length>0&&!e.tabs.some((r,a)=>n(r,a)===w.peek(()=>i.value))&&(i.value=n(e.tabs[0],0));let o=(r,a)=>{r.disabled||(i.value=n(r,a))};w("div.s-tabs",e.attrs,()=>{w("div.s-tablist role=tablist",()=>{e.tabs.forEach((r,a)=>{let s=n(r,a);w("button.s-tab type=button role=tab",()=>{w(`id=${t}-tab-${s} aria-controls=${t}-panel-${s}`),w(()=>{let c=i.value===s;w("aria-selected=",c?"true":"false"),w("tabindex=",c?"0":"-1")}),r.disabled&&w("disabled=true"),w("click=",()=>o(r,a)),w("keydown=",c=>He(c,e.tabs,a,o)),d(r.icon),d(r.label)})})}),w("div.s-tabpanel role=tabpanel",e.contentAttrs,()=>{w(()=>{let r=i.value,a=e.tabs.findIndex((c,C)=>n(c,C)===r),s=e.tabs[a]??e.tabs[0];s&&(w(`id=${t}-panel-${n(s,a)} aria-labelledby=${t}-tab-${n(s,a)}`),d(s.content))})})})}function He(e,t,n,i){let o=n;if(e.key==="ArrowRight"||e.key==="ArrowDown")o=(n+1)%t.length;else if(e.key==="ArrowLeft"||e.key==="ArrowUp")o=(n-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();let r=o>=n?1:-1;for(let a=0;a<t.length;a++){let s=t[o];if(s&&!s.disabled){i(s,o),e.currentTarget?.parentElement?.children[o]?.focus();return}o=(o+r+t.length)%t.length}}import E from"aberdeen";E.insertGlobalCss({"textarea.s-input":"resize:vertical min-height:3em line-height:1.45","textarea.s-input.s-autoGrow":"resize:none min-height:2.5em overflow-y:hidden"});function De(e={}){let t=e.autoGrow!==!1;q(e,(n,i)=>{let o=E("textarea.s-input",e.inputAttrs,()=>{t?(E(".s-autoGrow"),E("input=",r=>{fe(r.currentTarget),e.input&&e.input(r)})):(E("rows=",e.rows??4),E("resize:",e.resize??"vertical"),e.input&&E("input=",e.input)),e.placeholder!=null&&E("placeholder=",e.placeholder),e.value!=null&&!e.bind&&E("value=",e.value),e.change&&E("change=",e.change),R(e,n,i,e.bind)});t&&requestAnimationFrame(()=>fe(o))})}function fe(e){e.style.height="auto",e.style.height=`${e.scrollHeight}px`}import m from"aberdeen";import{grow as Ge,shrink as Ie}from"aberdeen/transitions";m.insertGlobalCss({".s-toasts":"position:fixed bottom:$3 right:$3 z-index:400 display:flex flex-direction:column gap:$2 pointer-events:none max-width:min(90vw,24rem) w:24rem",".s-toast":{"&":"display:flex align-items:flex-start gap:$2 padding: $3; pointer-events:auto position:relative overflow:hidden",".s-toast-body":"display:flex flex-direction:column gap:$1 flex:1 min-width:0",".s-toast-title":"font-weight:700 line-height:1.3",".s-toast-close":"cursor:pointer border:0 background:transparent fg:$s-muted font-size:1.1em line-height:1 padding: 0 0.15em; r:4px flex-shrink:0 align-self:flex-start",".s-toast-close:hover":"fg:$s-text",".s-toast-close:focus-visible":"outline:none box-shadow: 0 0 0 3px $s-focus; fg:$s-text",".s-toast-progress":"position:absolute bottom:0 left:0 right:0 height:2px background:$s-accent width:100%"}});var Pe=0,W=m.proxy({});L(()=>{m.peek(()=>m.isEmpty(W))&&m.isEmpty(W)||m("div.s-toasts",()=>{m.onEach(W,e=>{let{opts:t,id:n}=e,i=t.type==="danger"||t.type==="warning"?"alert":"status",o=t.type==null||t.type==="neutral"?"neutral":t.type,r=t.duration??6e3,a,s=null,c=()=>{clearTimeout(a),s&&(s.style.transition="none",s.style.width="100%",s.offsetWidth,s.style.transition=`width ${r}ms linear`,s.style.width="0%"),a=setTimeout(()=>ne(n),r)},C=()=>{clearTimeout(a),a=void 0,s&&(s.style.transition="none",s.style.width="100%")};m.clean(()=>clearTimeout(a)),m(`div.s-toast.s-s.${o}.extra-shadow aria-live=polite role=${i}`,"create=",Ge,"destroy=",Ie,t.attrs,()=>{r>0&&(m("mouseenter=",C),m("mouseleave=",c)),m("div.s-toast-body",()=>{m(()=>{t.title!=null&&m("div.s-toast-title",()=>d(t.title))}),m("div.s-toast-msg",()=>d(t.message))}),m(()=>{t.dismissible!==!1&&m("button.s-toast-close type=button aria-label=Dismiss",()=>{m("#\xD7"),m("click=",()=>ne(n))})}),r>0&&(s=m("div.s-toast-progress"))}),r>0&&requestAnimationFrame(c)})})});function ne(e){delete W[e]}function Ke(e){let t=++Pe;return W[t]={id:t,opts:e},()=>ne(t)}import T from"aberdeen";T.insertGlobalCss({".s-tt-tip":{"&":"position:fixed z-index:500 max-width:20rem w:max-content padding: 0.3em 0.65em; font-size:0.85em line-height:1.4 pointer-events:none"}});var j=T.proxy(void 0),M=null;typeof window<"u"&&window.addEventListener("scroll",()=>{j.value=void 0},{capture:!0,passive:!0});function Re(e,t,n,i){let r=window.innerWidth,a=window.innerHeight,s=0,c=0;return i==="bottom"?(s=e.left+(e.width-t)/2,c=e.bottom+7,c+n>a-8&&(c=e.top-n-7)):i==="left"?(s=e.left-t-7,c=e.top+(e.height-n)/2,s<8&&(s=e.right+7)):i==="right"?(s=e.right+7,c=e.top+(e.height-n)/2,s+t>r-8&&(s=e.left-t-7)):(s=e.left+(e.width-t)/2,c=e.top-n-7,c<8&&(c=e.bottom+7)),{x:Math.max(8,Math.min(s,r-t-8)),y:Math.max(8,Math.min(c,a-n-8))}}function oe(){M&&clearTimeout(M),M=setTimeout(()=>{j.value=void 0,M=null},100)}L(()=>{let e=j.value;if(!e)return;let{opts:t,anchor:n}=e,i=t.placement??"top",o=T("div.s-tt-tip.s-s.neutral.shadow role=tooltip visibility:hidden",t.attrs,()=>{T("mouseenter=",()=>{M&&(clearTimeout(M),M=null)}),T("mouseleave=",oe),d(t.tip)});requestAnimationFrame(()=>{if(!document.body.contains(o))return;let{x:r,y:a}=Re(n.getBoundingClientRect(),o.offsetWidth,o.offsetHeight,i);o.style.left=r+"px",o.style.top=a+"px",o.style.visibility=""})});function je(e){let t=n=>{M&&(clearTimeout(M),M=null),j.value={opts:e,anchor:n.currentTarget}};T("mouseenter=",t),T("mouseleave=",oe),T("focusin=",t),T("focusout=",oe),T.clean(()=>{j.value?.opts===e&&(j.value=void 0)})}export{Te as addContextMenu,je as addTooltip,Me as alert,ye as autocomplete,we as box,A as button,$e as buttonChooser,H as buttonGroup,ke as checkbox,Ce as confirm,N as dialog,Ae as form,ae as getDarkMode,Le as main,Z as menuButton,Se as prompt,Be as select,be as setDarkMode,Q as showFloatingMenu,ze as tabs,De as textarea,ee as textline,Ke as toast};
1
+ import O from"aberdeen";var V="staffa:darkMode",re=O.proxy({value:me()});function me(){try{let e=localStorage.getItem(V);if(e==="dark")return!0;if(e==="light")return!1}catch{}}function be(e){re.value=e;try{e===void 0?localStorage.removeItem(V):localStorage.setItem(V,e?"dark":"light")}catch{}}function ae(e=!1){let t=re.value;return t===void 0&&!e?O.darkMode():t}O(()=>{ae()?O.insertGlobalCss({":root, .s-s.neutral":"--s-bg:#0e0f12 --s-text:#e9eaec",".s-s.neutral":"--s-bg:#191b1f --s-text:#e9eaec",".s-s.neutral .s-s.neutral":"--s-bg:#23262b"}):O.insertGlobalCss({":root, .s-s.neutral":"--s-bg:#eef0f3 --s-text:#1d1f24",".s-s.neutral, .s-s.neutral":"--s-bg:#ffffff --s-text:#1d1f24",".s-s.neutral .s-s.neutral":"--s-bg:#f6f7f9"})});O.setSpacingCssVars(1.1);O.insertGlobalCss({"*, *::before, *::after":"box-sizing:border-box",html:"text-size-adjust:100%",body:"m:0 line-height:1.5 font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-font-smoothing:antialiased background-color:$s-bg text:$s-text",a:"color: $s-link-fg; text-decoration:underline text-underline-offset:2px; transition: color 0.12s, filter 0.12s;","a:hover":"filter: brightness(1.15)","input, button, textarea, select, optgroup":"font:inherit color:inherit","input:where(:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=image],[type=submit],[type=button],[type=reset],[type=hidden])), textarea, select":"background:$s-bg border: 1px solid $s-faint; r:$s-radius-sm padding: 0.45em 0.65em; max-width:100%","input:where([type=checkbox],[type=radio])":"width:1.15em height:1.15em cursor:pointer","input[type=range]":"appearance:none background:transparent cursor:pointer vertical-align:middle","input[type=range]::-webkit-slider-runnable-track":"height:4px r:99px background:$s-faint","input[type=range]::-moz-range-track":"height:4px r:99px background:$s-faint","input[type=range]::-moz-range-progress":"height:4px r:99px background:$s-accent","input[type=range]::-webkit-slider-thumb":"appearance:none width:16px height:16px margin-top:-6px r:50% background:$s-accent","input[type=range]::-moz-range-thumb":"width:16px height:16px border:0 r:50% background:$s-accent","input[type=file]":"cursor:pointer",progress:"appearance:none border:0 height:6px r:99px background:$s-faint overflow:hidden vertical-align:middle","progress::-webkit-progress-bar":"background:$s-faint r:99px","progress::-webkit-progress-value":"background:$s-accent r:99px","progress::-moz-progress-bar":"background:$s-accent r:99px",meter:"vertical-align:middle",fieldset:"border: 1px solid $s-faint; r:$s-radius-sm padding:$2 min-width:0",legend:"padding: 0 $1; font-weight:600","code, kbd, samp, pre":"font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;",code:"background: color-mix(in oklab, $s-text, $s-bg 86%); padding: 0.12em 0.34em; r:4px font-size:0.9em",pre:"background: color-mix(in oklab, $s-text, $s-bg 92%); p:$3 r: $s-radius; overflow:auto","pre code":"background:transparent p:0","img, svg, video, canvas":"max-width:100% h:auto",hr:"border:0 border-top: 1px solid $s-faint;","::placeholder":"color: $s-muted; opacity:1",":focus-visible":"outline: 2px solid $s-focus; outline-offset:2px",small:"color:$s-muted font-size:0.9em","@media (prefers-reduced-motion: reduce)":{"*, *::before, *::after":"transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important;"},":root":"--s-primary:#00a884 --s-danger:#dc5b41 --s-success:#00a884 --s-warning:#ef6b00 --s-link:#3f8cd8 --s-radius-sm:6px --s-radius:12px --s-radius-lg:18px --s-focus: color-mix(in srgb, $s-primary 38%, transparent); --s-gradient: linear-gradient(135deg, color-mix(in oklab, $s-primary, white 16%), color-mix(in oklab, $s-primary, black 14%));",":root, .s-s.neutral":"--s-accent:$s-primary --s-link-fg:$s-link",".s-s:not(.neutral)":"--s-bg:$s-primary border:0 --s-text:#eee --s-accent:#fff --s-link-fg:#eef --s-muted: color-mix(in srgb, #fff 70%, transparent); --s-faint: color-mix(in srgb, #fff 30%, transparent);",".s-s.danger":"--s-bg:$s-danger",".s-s.success":"--s-bg:$s-success",".s-s.warning":"--s-bg:$s-warning",".s-s.link":"--s-bg:$s-link",".s-s.primary":"--s-bg:$s-primary",":root, .s-s":"--s-muted: color-mix(in oklab, $s-text, $s-bg 42%); --s-faint: color-mix(in oklab, $s-text, $s-bg 80%); color:$s-text accent-color:$s-accent scrollbar-width:thin scrollbar-color: $s-faint transparent;",".s-s, body":"background: linear-gradient(170deg, color-mix(in oklab, $s-bg, white 9%), color-mix(in oklab, $s-bg, black 9%));",".s-s":"r:$s-radius",":where(.s-s.neutral)":"border: 1px solid $s-faint;",".s-s::-webkit-scrollbar, .s-s ::-webkit-scrollbar":"width:10px height:10px",".s-s::-webkit-scrollbar-track, .s-s ::-webkit-scrollbar-track":"background:transparent",".s-s::-webkit-scrollbar-thumb, .s-s ::-webkit-scrollbar-thumb":"background:$s-faint border-radius:99px border: 2px solid transparent; background-clip:padding-box",".s-s.shadow.neutral:not(.s-btn)":"box-shadow: 0 4px 14px rgba(0,0,0,0.13);",".s-s.extra-shadow.neutral:not(.s-btn)":"box-shadow: 0 18px 50px rgba(0,0,0,0.28);",".s-s.shadow:not(.neutral):not(.tonal):not(.outlined)":"box-shadow: 0 4px 14px color-mix(in srgb, $s-bg 30%, transparent);",".s-s.extra-shadow:not(.neutral):not(.tonal):not(.outlined)":"box-shadow: 0 14px 40px color-mix(in srgb, $s-bg 40%, transparent);",".s-s.no-shadow":"box-shadow: none !important;",".s-s:not(.neutral).tonal, .s-s:not(.neutral).outlined":"--s-text:$s-bg --s-accent:$s-bg --s-link-fg:$s-bg --s-faint: color-mix(in srgb, $s-bg 30%, transparent); --s-muted: color-mix(in srgb, $s-bg 70%, transparent);",".s-s:not(.neutral).tonal":"background: color-mix(in srgb, $s-bg 15%, transparent); border: 1px solid $s-faint;",".s-s:not(.neutral).outlined":"background: transparent; border: 1px solid color-mix(in srgb, $s-bg 45%, transparent);",".s-s:not(.neutral) .s-s.tonal, .s-s:not(.neutral) .s-s.outlined":"--s-text:#fff --s-accent:#fff --s-link-fg:#fff background: linear-gradient(170deg, color-mix(in oklab, $s-bg, white 9%), color-mix(in oklab, $s-bg, black 9%)); border-color: transparent;"});O.insertGlobalCss({".s-preload, .s-preload *, .s-preload *::before, .s-preload *::after":"transition: none !important; animation: none !important;"});if(typeof document<"u"&&typeof requestAnimationFrame=="function"){let e=document.documentElement;e.classList.add("s-preload"),requestAnimationFrame(()=>requestAnimationFrame(()=>e.classList.remove("s-preload")))}O.insertGlobalCss({":disabled, [aria-disabled=true]":"opacity:0.45 filter:saturate(0.6) user-select:none",":disabled, [aria-disabled=true], :disabled *, [aria-disabled=true] *":"pointer-events:none cursor:not-allowed"});var ge="p, ul, ol, dl, blockquote, pre, table, figure, hr, h1, h2, h3, h4, h5, h6";O.insertGlobalCss({[`${ge}`]:{"&":"margin:0","&:not(:first-child)":"margin-top:$3"},"h1, h2, h3, h4, h5, h6":{"&":"line-height:1.15 font-weight:700 text-wrap:balance","&:not(:first-child)":"margin-top:1.4em"},h1:"font-size:2em font-weight:800 letter-spacing:-0.022em",h2:"font-size:1.55em letter-spacing:-0.018em",h3:"font-size:1.3em letter-spacing:-0.011em",h4:"font-size:1.1em",h5:"font-size:0.95em letter-spacing:0.005em",h6:"font-size:0.8em fg:$s-muted text-transform:uppercase letter-spacing:0.07em","ul, ol":{"&":"padding-left:1.5em","> li:not(:first-child), li > &:not(:first-child)":"margin-top:$1"},blockquote:"border-left: 3px solid $s-faint; padding-left: $3; fg: $s-muted",table:"border-collapse:collapse","th, td":"text-align:left padding: $1 $2; border-bottom: 1px solid $s-faint; vertical-align:top",th:"font-weight:600","thead th":"border-bottom: 2px solid $s-faint;",dt:"font-weight:600",dd:"margin-left: 1.5em",figcaption:"fg:$s-muted font-size:0.9em margin-top:$1 text-align:center"});import l from"aberdeen";import se from"aberdeen";var he=0;function S(e="s"){return`${e}-${++he}`}function d(e,...t){e!=null&&(typeof e=="function"?e(...t):se("rich=",e))}var xe="a[href], button, input, select, textarea, [tabindex]";function Y(e,t){let n=o=>o instanceof HTMLElement&&!o.hasAttribute("disabled")&&o.getAttribute("aria-disabled")!=="true"&&o.tabIndex>=0&&o.getClientRects().length>0,i=(t?[...e.querySelectorAll(t)].find(n):void 0)??[...e.querySelectorAll(xe)].find(n);return i?.focus(),i!=null}function L(e){queueMicrotask(()=>se(e))}import x from"aberdeen";x.insertGlobalCss({".s-field":{"&":"display:flex flex-direction:column gap:$1","> label":"font-weight:600 font-size:0.9em fg:$s-text user-select:none"},".s-req":"fg:$s-danger margin-left:2px",".s-help":"font-size:0.82em fg:$s-muted",".s-error":"font-size:0.82em fg:$s-danger",".s-input":{"&":"w:100% background: color-mix(in oklab, $s-bg, $s-text 4%); color:$s-text border: 1px solid $s-faint; r:$s-radius padding: 0.55em 0.7em; transition: border-color 0.15s, box-shadow 0.15s;","&:hover:not(:disabled)":"border-color: color-mix(in oklab, $s-text, $s-bg 55%);","&:focus-visible":"border-color:$s-accent box-shadow: 0 0 0 3px $s-focus; outline:none","&[aria-invalid=true]":"border-color:$s-danger"}});function q(e,t){let n=e.id??S("field"),i=()=>!!e.error;x("div.s-field",e.attrs,()=>{x(()=>{e.label!=null&&x(`label for=${n}`,()=>{d(e.label),e.required&&x("span.s-req aria-hidden=true #*")})}),t(n,i),x(()=>{e.help!=null&&!e.error&&x("div.s-help",()=>d(e.help))}),x(()=>{e.error&&x("div.s-error role=alert #",e.error)})})}function R(e,t,n,i){x(`id=${t}`),e.name&&x(`name=${e.name}`),x(()=>{e.disabled&&x("disabled=true")}),x(()=>{e.required&&x("aria-required=true")}),x(()=>x("aria-invalid=",n()?"true":"false")),i&&x("bind=",i)}l.insertGlobalCss({".s-ac":{"&":"position:relative","> .s-control":"display:flex flex-wrap:wrap align-items:center gap:$1 background: color-mix(in oklab, $s-bg, $s-text 4%); color:$s-text border: 1px solid $s-faint; r:$s-radius padding: 0.3em 0.4em; cursor:text; transition: border-color 0.15s, box-shadow 0.15s;","> .s-control:hover":"border-color: color-mix(in oklab, $s-text, $s-bg 55%);","> .s-control:focus-within":"border-color:$s-accent box-shadow: 0 0 0 3px $s-focus;","&[aria-invalid=true] > .s-control":"border-color:$s-danger",".s-chip":"display:inline-flex align-items:center gap:$1 font-size:0.85em background: color-mix(in oklab, $s-bg, $s-text 10%); border: 1px solid $s-faint; r:$s-radius padding: 0.1em 0.2em 0.1em 0.5em;",".s-chip > button":"cursor:pointer border:0 background:transparent fg:$s-muted font-size:1.1em line-height:1 padding: 0 0.2em; r:4px",".s-chip > button:hover":"fg:$s-text background:$s-faint",input:"flex:1 min-width:6ch border:0 background:transparent color:inherit outline:none padding:0.25em","> .s-menu":"position:absolute top:100% left:0 right:0 z-index:20 margin-top:4px max-height:15rem overflow-y:auto list-style:none p:$1 margin-bottom:0","> .s-menu li":"margin:0",".s-option":"padding: 0.45em 0.6em; r:6px cursor:pointer transition: background 0.1s;",".s-option[aria-selected=true]":"background: color-mix(in srgb, $s-text 10%, transparent);",".s-add":"fg:$s-accent font-style:italic",".s-empty":"padding: 0.45em 0.6em; fg:$s-muted"}});function ye(e){return typeof e=="string"?{value:e,label:e}:{value:e.value,label:e.label??e.value}}function ve(e){let t=S("ac-menu"),n=l.proxy({query:"",open:!1,active:0}),i=()=>(typeof e.options=="function"?e.options():e.options).map(ye),o=()=>{let p=e.bind?.value;return p==null||p===""?[]:Array.isArray(p)?p:[p]},r=p=>i().find(v=>v.value===p)?.label??p;if(!e.multi){let p=e.bind?l.peek(e.bind,"value"):void 0;typeof p=="string"&&p&&(n.query=l.peek(()=>r(p)))}let a=()=>{let p=new Set(o()),v=i();e.multi&&(v=v.filter(h=>!p.has(h.value)));let g=n.query.trim().toLowerCase();return g&&(v=v.filter(h=>h.label.toLowerCase().includes(g))),v},s=(p,v)=>{if(e.multi){let g=Array.isArray(e.bind?.value)?[...e.bind.value]:[];g.includes(p)||g.push(p),e.bind&&(e.bind.value=g),n.query=""}else e.bind&&(e.bind.value=p),n.query=r(p),n.open=!1;n.active=0,v?.focus()},c=p=>{if(!e.bind)return;let v=e.bind.value??[];e.bind.value=v.filter(g=>g!==p)};q(e,(p,v)=>{l("div.s-ac",e.inputAttrs,()=>{l(()=>l("aria-invalid=",v()?"true":"false"));let g;l("div.s-control",()=>{l("click=",()=>g?.focus()),l(()=>{if(e.multi)for(let h of o())l("span.s-chip",()=>{l("span #",l.peek(()=>r(h))),l("button type=button aria-label=",`Remove ${h}`,()=>{l("#\xD7"),l("click=",$=>{$.stopPropagation(),c(h),g?.focus()})})})}),g=l("input type=text role=combobox autocomplete=off",()=>{l(`id=${p} aria-controls=${t} aria-autocomplete=list`),e.placeholder!=null&&l("placeholder=",e.placeholder),e.disabled&&l("disabled=true"),e.required&&l("aria-required=true"),l("bind=",l.ref(n,"query")),l(()=>l("aria-expanded=",n.open?"true":"false")),l(()=>{let $=a()[n.active];l("aria-activedescendant=",n.open&&$?`${t}-opt-${n.active}`:"")}),l("input=",()=>{n.open=!0,n.active=0}),l("focus=",()=>{n.open=!0}),l("blur=",()=>{setTimeout(()=>U(),150)}),l("keydown=",h=>C(h,g))})}),l(()=>{if(!n.open)return;let h=a(),$=n.query.trim(),ie=e.allowCustom!==!1&&$!==""&&!h.some(K=>K.label.toLowerCase()===$.toLowerCase());l("ul.s-menu.s-s.neutral.shadow role=listbox",`id=${t}`,()=>{h.forEach((K,_)=>{l("li.s-option role=option",`id=${t}-opt-${_}`,()=>{l(()=>l("aria-selected=",n.active===_?"true":"false")),l("#",K.label),l("mousedown=",fe=>fe.preventDefault()),l("click=",()=>s(K.value,g)),l("mousemove=",()=>{n.active=_})})}),ie&&l("li.s-option.s-add role=option",()=>{l("#",`Add "${$}"`),l("mousedown=",K=>K.preventDefault()),l("click=",()=>s($,g))}),h.length===0&&!ie&&l("li.s-empty #No matches")})}),l(()=>{if(e.name)if(e.multi)for(let h of o())l("input type=hidden",()=>{l("name=",e.name),l("value=",h)});else l("input type=hidden",()=>{l("name=",e.name),l("value=",o()[0]??"")})})})});function C(p,v){let g=a(),h=g.length-1;if(p.key==="ArrowDown")p.preventDefault(),n.open=!0,n.active=Math.min(h,n.active+1);else if(p.key==="ArrowUp")p.preventDefault(),n.active=Math.max(0,n.active-1);else if(p.key==="Enter"){p.preventDefault();let $=g[n.active];$?s($.value,v):e.allowCustom!==!1&&n.query.trim()?s(n.query.trim(),v):n.open&&(n.open=!1)}else if(p.key==="Escape")n.open=!1,e.multi||(n.query=r(o()[0]??""));else if(p.key==="Backspace"&&e.multi&&n.query===""){let $=o();$.length&&c($[$.length-1])}}function U(){n.open=!1,e.multi?n.query="":e.allowCustom!==!1&&n.query.trim()?s(n.query.trim()):n.query=r(o()[0]??"")}}import z from"aberdeen";z.insertGlobalCss({".s-box":{"&":"display:flex flex-direction:column overflow:hidden r: $s-radius-lg;","&:not(:first-child)":"margin-top: $3","> header":"display:flex align-items:center gap:$2 padding: $2 $3; border:0 border-bottom: 1px solid $s-faint; r:0 font-weight:600","> footer":"display:flex align-items:center justify-content:flex-end gap:$2 padding: $2 $3; border:0 border-top: 1px solid $s-faint; r:0","> div":"p:$3 gap:$3"}});function we(e={}){let t=typeof e=="string"||typeof e=="function"?{content:e}:e;z("section.s-box.s-s.neutral.shadow",t.attrs,()=>{z(()=>{t.header!=null&&z("header.s-s.neutral",t.headerAttrs,()=>d(t.header))}),z("div",t.contentAttrs,()=>{d(t.content)}),z(()=>{t.footer!=null&&z("footer.s-s.neutral",t.footerAttrs,()=>d(t.footer))})})}import F from"aberdeen";F.insertGlobalCss({".s-btn":{"&":"display:inline-flex align-items:center justify-content:center gap:$2 font-weight:450 line-height:1.1 white-space:nowrap cursor:pointer text-decoration:none padding: $m2 $m3; transition: background 0.15s, border-color 0.15s, color 0.15s, filter 0.15s, box-shadow 0.15s, transform 0.08s;","&:focus-visible":"outline: 3px solid $s-focus; outline-offset: 1px;","&:hover":"filter: brightness(1.06)","&.tonal:hover, &.outlined:hover":"background: color-mix(in srgb, $s-bg 24%, transparent);","&.neutral:hover":"filter:none background: color-mix(in srgb, $s-text 8%, $s-bg);","&:active:not(:disabled)":"transform: translateY(1px)","&.small, .small > &":"padding: $m1 $m2; font-size:0.85em border-radius:$s-radius-sm","&.large, .large > &":"font-size:1.4em border-radius:$s-radius-lg"}});function A(e={}){let t=typeof e=="string"||typeof e=="function"?{content:e}:e,n=t.href!=null?"a":"button";F(`${n}.s-btn.s-s.shadow`,t.attrs,()=>{t.href!=null?(F(`href=${t.href} role=button`),t.disabled&&F("aria-disabled=true")):(F("type=",t.type??"button"),t.disabled&&F("disabled=true")),t.ariaLabel&&F("aria-label=",t.ariaLabel),t.click&&F("click=",t.click),d(t.icon),d(t.content)})}import X from"aberdeen";import le from"aberdeen";le.insertGlobalCss({".s-bgroup":{"&":"display:inline-flex align-items:stretch","&.s-spaced":"gap:$2 flex-wrap:wrap","&.s-vertical":"flex-direction:column","&.s-attached":"gap:0","&.s-attached:not(.s-vertical) > .s-btn:not(:first-child)":"margin-left:-1px","&.s-attached:not(.s-vertical) > .s-btn:not(:first-child):not(:last-child)":"r:0","&.s-attached:not(.s-vertical) > .s-btn:first-child:not(:last-child)":"border-top-right-radius:0 border-bottom-right-radius:0","&.s-attached:not(.s-vertical) > .s-btn:last-child:not(:first-child)":"border-top-left-radius:0 border-bottom-left-radius:0","&.s-attached.s-vertical > .s-btn:not(:first-child)":"margin-top:-1px","&.s-attached.s-vertical > .s-btn:not(:first-child):not(:last-child)":"r:0","&.s-attached.s-vertical > .s-btn:first-child:not(:last-child)":"border-bottom-left-radius:0 border-bottom-right-radius:0","&.s-attached.s-vertical > .s-btn:last-child:not(:first-child)":"border-top-left-radius:0 border-top-right-radius:0","&.s-attached > .s-btn:hover, &.s-attached > .s-btn:focus-visible":"z-index:1"}});function H(e={}){let n=`.s-${e.layout??"attached"}${e.vertical?".s-vertical":""}`;le(`div.s-bgroup${n} role=group`,e.attrs,()=>{if(e.buttons)for(let i of e.buttons)A(i);d(e.content)})}function $e(e){X(()=>{let t=e.bind.value;H({attrs:e.attrs,buttons:Object.entries(e.options).map(([n,i])=>({content:i,ariaLabel:typeof i=="function"?n:void 0,attrs:t===n?".primary":".neutral",click:()=>{e.bind.value=e.allowDeselect&&t===n?void 0:n}}))})}),e.name&&X(()=>X(`input type=hidden name=${e.name} value=`,e.bind.value??""))}import b from"aberdeen";b.insertGlobalCss({".s-check":{"&":"display:flex flex-direction:column gap:$1","> label":"display:flex align-items:center gap:$2 cursor:pointer user-select:none","> label:has(input:disabled)":"cursor:not-allowed opacity:0.45 filter:saturate(0.6)",input:"cursor:inherit m:0"}});function ke(e={}){let t=e.id??S("check");b("div.s-check",e.attrs,()=>{b(`label for=${t}`,()=>{b("input type=checkbox",e.inputAttrs,()=>{b(`id=${t}`),e.name&&b(`name=${e.name}`),e.checked&&!e.bind&&b("checked=true"),e.change&&b("change=",e.change),b(()=>{e.disabled&&b("disabled=true")}),b(()=>{e.required&&b("aria-required=true")}),e.bind&&b("bind=",e.bind)}),b(()=>{e.label!=null&&d(e.label),e.required&&b("span.s-req aria-hidden=true #*")})}),b(()=>{e.help!=null&&!e.error&&b("div.s-help",()=>d(e.help))}),b(()=>{e.error&&b("div.s-error role=alert #",e.error)})})}import D from"aberdeen";D.insertGlobalCss({".s-form":{"&":"display:flex flex-direction:column gap:$3","&.grid":"display:grid grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap:$3","&.grid > .s-wide, &.grid > footer":"grid-column: 1 / -1;","> footer":"display:flex align-items:center justify-content:flex-end gap:$2 flex-wrap:wrap margin-top:$1"}});function Ae(e={}){let t=typeof e=="string"||typeof e=="function"?{content:e}:e;D("form.s-form",t.attrs,()=>{D(()=>{D(".grid=",t.layout==="grid")}),D("submit=",n=>{if(n.preventDefault(),t.submit){let i=new FormData(n.target),o={};for(let r of new Set(i.keys())){let a=i.getAll(r);o[r]=a.length===1?a[0]:a}t.submit(o,n)}}),d(t.content),D(()=>{t.actions&&D("footer",t.actionsAttrs,()=>d(t.actions))})})}import u from"aberdeen";import y from"aberdeen";import{matchCurrent as Oe}from"aberdeen/route";y.insertGlobalCss({".s-menu-list":"position:fixed z-index:350 min-width:10rem display:flex flex-direction:column p:$1 r:$s-radius-lg overflow-y:auto max-height:min(80vh,28rem) transition: opacity 0.15s, transform 0.15s;",".s-menu-list.hidden":"opacity:0 pointer-events:none transform:translateY(-6px)",".s-menu-item":"display:flex align-items:center gap:$2 w:100% outline:0 padding: $m2 0; line-height:1.1 r:$s-radius cursor:pointer text-align:left font-weight:450 font-size:0.9em border:0 background:transparent fg:$s-text text-decoration:none transition: color 0.12s, transform 0.12s, text-shadow 0.12s;",".s-menu-item:focus-visible:not([aria-current=page]), .s-menu-item:hover:not([aria-disabled=true]):not([aria-current=page])":"filter:none color: color-mix(in lab, $s-primary 33%, $s-text);",".s-menu-item[aria-current=page]":"text-shadow: 0 0 2px $s-primary; color: color-mix(in lab, $s-primary 50%, $s-text); filter:brightness(1.15)",".s-menu-item[aria-disabled=true]":"opacity:0.45 cursor:not-allowed pointer-events:none",".s-menu-icon":"flex-shrink:0","hr.s-menu-sep":"border:0 height:1px margin: $1 0.6rem; background: linear-gradient(to right, transparent, $s-faint 18%, $s-faint 82%, transparent);"});function J(e,t){y("keydown=",n=>{if(n.key==="Enter"&&n.target.tagName==="A"){queueMicrotask(()=>t?.());return}if(n.key!=="ArrowDown"&&n.key!=="ArrowUp"&&n.key!=="Home"&&n.key!=="End")return;n.preventDefault();let o=[...n.currentTarget.querySelectorAll(".s-menu-item")].filter(c=>c.getAttribute("aria-disabled")!=="true");if(!o.length)return;let r=o.indexOf(document.activeElement),a=n.key==="ArrowUp"?-1:1,s=n.key==="Home"?0:n.key==="End"?o.length-1:r<0?a>0?0:o.length-1:(r+a+o.length)%o.length;o[s].focus()});for(let n of e){if(typeof n=="string"||typeof n=="function"){d(n);continue}if("separator"in n){y("hr.s-menu-sep");continue}y(n.href?"a.s-menu-item":"button.s-menu-item type=button",n.attrs,()=>{n.href&&(y("href=",n.href),n.target&&y("target=",n.target),y(()=>{Oe(n.href)&&y("aria-current=page")})),n.disabled&&y("aria-disabled=true"),y("click=",i=>{if(n.disabled){i.preventDefault();return}t?.(),n.click?.(i)}),n.icon&&y("span.s-menu-icon",()=>d(n.icon)),d(n.label)})}}var B=y.proxy({opts:null});function G(){let e=B.opts?.anchor;B.opts=null,e?.focus()}function de(){return B.opts!=null}function Ee(e,t){let n=e.offsetWidth,i=e.offsetHeight,o=window.innerWidth,r=window.innerHeight,a=4,s=t.left;s+n>o-8&&(s=Math.max(8,t.right-n));let c=t.bottom+a;c+i>r-8&&t.top-i-a>=8&&(c=t.top-i-a),e.style.left=Math.max(8,s)+"px",e.style.top=Math.max(8,c)+"px"}L(()=>{let e=B.opts;if(!e)return;let t=y("div.s-menu-list.s-s.neutral.shadow create=hidden destroy=hidden",e.dropdownAttrs,()=>{J(e.items,G)}),n=o=>{let r=o.target;!t.contains(r)&&(e.closeOnAnchorClick||!e.anchor.contains(r))&&G()},i=o=>{(o.key==="Escape"||o.key==="Tab")&&(o.preventDefault(),G())};document.addEventListener("click",n,!0),document.addEventListener("keydown",i,!0),y.clean(()=>{document.removeEventListener("click",n,!0),document.removeEventListener("keydown",i,!0)}),requestAnimationFrame(()=>{if(!document.body.contains(t))return;let o=e.at?{left:e.at.x,right:e.at.x,top:e.at.y,bottom:e.at.y}:e.anchor.getBoundingClientRect();Ee(t,o),Y(t,".s-menu-item[aria-current=page]")})});function Q(e){return B.opts=e,G}function Te(e){let t=null;y.clean(()=>{B.opts?.anchor===t&&G()}),y("contextmenu=",n=>{n.preventDefault(),t=n.currentTarget,Q({items:e.items,anchor:t,at:{x:n.clientX,y:n.clientY},closeOnAnchorClick:!0,dropdownAttrs:e.dropdownAttrs})})}function Z(e){let t=null;y.clean(()=>{B.opts?.anchor===t&&G()}),A({icon:()=>y("span aria-hidden=true #\u2630"),...e.button?.content==null?{ariaLabel:"Open menu"}:null,attrs:".neutral",...e.button,click:n=>{if(t=n.currentTarget,B.opts?.anchor===t){G();return}Q({items:e.items,anchor:t,dropdownAttrs:e.dropdownAttrs})}})}import f from"aberdeen";import I from"aberdeen";function ee(e={}){q(e,(t,n)=>{I("input.s-input",e.inputAttrs,()=>{I("type=",e.type??"text"),e.placeholder!=null&&I("placeholder=",e.placeholder),e.autocomplete!=null&&I("autocomplete=",e.autocomplete),e.value!=null&&!e.bind&&I("value=",e.value),e.input&&I("input=",e.input),e.change&&I("change=",e.change),R(e,t,n,e.bind)})})}f.insertGlobalCss({".s-backdrop":{"&":"position:fixed inset:0 z-index:200 display:block background: rgba(0,0,0,0.55); transition: opacity 0.4s ease-in-out;","&.hidden":"opacity:0 pointer-events:none"},".s-dialog":{"&":"position:fixed z-index:200 top:50% left:50% display:flex flex-direction:column transform:translate(-50%,-50%) min-width:20rem max-width:min(90vw,44rem) max-height:min(88vh,800px) r: $s-radius-lg; overflow:hidden transition: opacity 0.2s ease-out, transform 0.2s ease-out;","> header":"display:flex align-items:center gap:$2 padding: $2 $3; border:0 border-bottom: 1px solid $s-faint; r:0 font-weight:600 flex-shrink:0","> footer":"display:flex align-items:center justify-content:flex-end gap:$2 padding: $2 $3; border:0 border-top: 1px solid $s-faint; r:0 flex-shrink:0","> div":"p:$3 gap:$3 display:flex flex-direction:column overflow-y:auto flex:1 min-height:0","&.hidden":"opacity:0 pointer-events:none transform: translate(-50%, calc(-50% + 20px)); pointer-events:none"}});var P=f.proxy({}),te=0,ue=f.derive(()=>{let e=Object.keys(P);if(e.length)return e[e.length-1]});function ce(){return ue.value!=null}L(()=>{f.onEach(P,({resolve:e,opts:t},n)=>{let i=()=>{delete P[n]};f.clean(()=>{t.onClose?.(),e()});let o=f.derive(()=>ue.value!=n);f("div.s-backdrop create=hidden destroy=hidden .hidden=",o,"click=",()=>{t.allowCancel!==!1&&i()});let r=f("div.s-dialog.neutral.s-s.extra-shadow create=hidden destroy=hidden",t.attrs,()=>{f(()=>{t.header!=null&&f("header.s-s.neutral",t.headerAttrs,()=>d(t.header))}),f("div",t.contentAttrs,()=>{d(t.content,i)}),f(()=>{t.footer!=null&&f("footer.s-s.neutral",t.footerAttrs,()=>d(t.footer))})});requestAnimationFrame(()=>{document.body.contains(r)&&Y(r)})})});function N(e){te||document.addEventListener("keydown",n=>{if(n.key==="Escape"&&e.allowCancel!==!1){let i=f.unproxy(P);for(let o=te;o>0;o--)if(i[o]){i[o].opts.allowCancel!==!1&&delete P[o];break}}});let t=++te;return e.cancelWithScope!==!1&&f.clean(()=>{delete P[t]}),new Promise(n=>{P[t]={resolve:n,opts:e}})}function Me(e,t={}){return N({header:"Alert",allowCancel:!0,content:n=>{f("p",()=>{f("#",e)}),H({layout:"spaced",attrs:"align-self:flex-end",content:()=>{A({content:"OK",click:n})}})},...t})}function Ce(e,t={}){return new Promise(n=>{let i=!1;N({header:"Confirm",allowCancel:!0,content:o=>{f("p",()=>{f("#",e)}),H({layout:"spaced",attrs:"align-self:flex-end",content:()=>{A({content:"Cancel",attrs:".neutral",click:o}),A({content:"OK",click:()=>{i=!0,o()}})}})},...t,onClose:()=>{n(i),t.onClose?.()}})})}function Se(e,t="",n={}){return new Promise(i=>{let o=null;N({header:"Input",allowCancel:!0,content:r=>{f("p",()=>{f("#",e)});let a=f.proxy({value:t});f("form display:contents",()=>{f("submit=",s=>{s.preventDefault(),o=a.value,r()}),ee({bind:f.ref(a,"value")}),H({layout:"spaced",attrs:"align-self:flex-end",content:()=>{A({content:"Cancel",attrs:".neutral",type:"button",click:r}),A({content:"OK",type:"submit"})}})})},...n,onClose:()=>{i(o),n.onClose?.()}})})}u.insertGlobalCss({".s-main":{"&":"display:flex flex-direction:column min-height:100vh max-height:100vh container-type:inline-size","> header":"border:0 border-bottom: 1px solid $s-faint; r:0 position:sticky top:0 z-index:10","> footer":"border-top: 1px solid $s-faint; fg:$s-muted","> header > .s-bar, > footer > .s-bar":"display:flex align-items:center width:100% margin-inline:auto gap:$3 padding: $2 $3;","> header .s-header-icon":"display:flex align-items:center font-size:1.4em background: $s-gradient; -webkit-background-clip:text; background-clip:text; color:transparent;","> header .s-titles":"display:flex flex-direction:column min-width:0 flex:1","> header .s-title":"font-weight:800 font-size:1.1em line-height:1.2 overflow:hidden text-overflow:ellipsis white-space:nowrap letter-spacing:-0.01em background: $s-gradient; -webkit-background-clip:text; background-clip:text; color:transparent; width:fit-content max-width:100%","> header .s-subtitle":"fg:$s-muted font-size:0.85em overflow:hidden text-overflow:ellipsis white-space:nowrap","> header .s-menu":"display:flex align-items:center gap:$2",".s-body":"flex:1 overflow:hidden display:flex flex-direction:row min-height:0 justify-content:center",".s-body-inner":"flex:1 min-width:0 display:flex flex-direction:row min-height:0","&.s-nav-right .s-body-inner":"flex-direction:row-reverse",".s-nav-sep":"width:1px flex-shrink:0 align-self:stretch margin: 0.6rem 0; border:0 background: linear-gradient(to bottom, transparent, $s-faint 18%, $s-faint 82%, transparent);",".s-body main":"flex:1 min-width:0 min-height:0 overflow-x:hidden overflow-y:auto display:flex flex-direction:column",".s-body main > .s-content":"width:100% flex:1 p:$3",".s-body main.s-scroll-y":"margin-right:$3"},".s-nav-panel":{"&":"display:flex flex-direction:column overflow-y:auto flex-shrink:0 max-width:228px padding:$3 gap:$1"},".s-main.s-nav-left .s-nav-trigger, .s-main.s-nav-right .s-nav-trigger":"display:none",".s-main.s-nav-btn-only .s-nav-panel":"display:none",".s-main.s-nav-btn-only .s-nav-trigger":"display:flex","@container (max-width: 640px)":{".s-main.s-nav-left .s-nav-panel, .s-main.s-nav-right .s-nav-panel, .s-main .s-nav-sep":"display:none",".s-main.s-nav-left .s-nav-trigger, .s-main.s-nav-right .s-nav-trigger":"display:flex",".s-content > .s-box":"margin-inline: calc(-1 * $3); r:0 border-inline:0",".s-main .s-body main.s-scroll-y":"margin-right:0"}});function Le(e={}){let t=e.nav,n=e.navPosition??"left",i=t!=null&&t.items.length>0,o=i?n==="button"?".s-nav-btn-only":`.s-nav-${n}`:"",r=u(`div.s-main${o}`,e.attrs,()=>{u(()=>{(e.title!=null||e.subtitle!=null||e.icon!=null||e.menu!=null||i)&&u("header.s-s.neutral",e.topbarAttrs,()=>{u("div.s-bar",()=>{u(()=>{e.maxWidth!=null&&u("max-width:",e.maxWidth)}),u(()=>{i&&u("div.s-nav-trigger",()=>{Z({...t,button:{icon:()=>u("span aria-hidden=true #\u2630"),ariaLabel:"Open navigation",attrs:".neutral .small",...t.button}})})}),u(()=>{e.icon!=null&&u("div.s-header-icon",()=>d(e.icon))}),u("div.s-titles",()=>{u(()=>{e.title!=null&&u("div.s-title",()=>d(e.title))}),u(()=>{e.subtitle!=null&&u("div.s-subtitle",()=>d(e.subtitle))})}),u(()=>{e.menu&&u("div.s-menu",()=>d(e.menu))})})})}),u("div.s-body",()=>{u("div.s-body-inner",()=>{u(()=>{e.maxWidth!=null&&u("max-width:",e.maxWidth)}),i&&n!=="button"&&(u(`nav.s-nav-panel.s-nav-${n}`,e.navAttrs,()=>{J(t.items)}),u("div.s-nav-sep aria-hidden=true")),qe(e)})}),u(()=>{e.footer!=null&&u("footer",()=>{u("div.s-bar",()=>{u(()=>{e.maxWidth!=null&&u("max-width:",e.maxWidth)}),d(e.footer)})})})});if(i){let a=s=>{if(s.key!=="Escape"||s.defaultPrevented||ce()||de())return;let c=r.querySelector(".s-nav-panel");if(c?.offsetParent!=null){let U=c.querySelector("[aria-current=page]")??c.querySelector(".s-menu-item:not([aria-disabled=true])");U&&(s.preventDefault(),U.focus());return}let C=r.querySelector(".s-nav-trigger button");C&&(s.preventDefault(),C.click())};document.addEventListener("keydown",a),u.clean(()=>document.removeEventListener("keydown",a))}}function qe(e){let t=u("main",()=>{u("div.s-content",e.contentAttrs,()=>{d(e.content)})});Fe(t)}function Fe(e){if(typeof ResizeObserver>"u")return;let t=()=>e.classList.toggle("s-scroll-y",e.offsetWidth>e.clientWidth),n=new ResizeObserver(t);n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),u.clean(()=>n.disconnect())}import k from"aberdeen";k.insertGlobalCss({".s-select_wrap":{"&":"position:relative display:block",select:"w:100% cursor:pointer padding-right:2.2em; appearance:none","&::after":"content: '\u25BE'; position:absolute right:0.7em top:50%; transform: translateY(-50%); pointer-events:none fg:$s-muted font-size:0.85em"}});function Be(e){q(e,(t,n)=>{k("div.s-select_wrap",e.inputAttrs,()=>{k("select.s-input",()=>{R(e,t,n),k("change=",i=>{e.bind&&(e.bind.value=i.target.value)}),k(()=>{let i=typeof e.options=="function"?e.options():e.options,o=e.bind?.value??"";e.placeholder!=null&&k("option",()=>{k("value= disabled=true hidden=true"),o||k("selected=true"),k("#",e.placeholder)});for(let r of i){let a=typeof r=="string"?{value:r,label:r}:{value:r.value,label:r.label??r.value};k("option",()=>{k("value=",a.value),a.value===o&&k("selected=true"),k("#",a.label)})}})})})})}import w from"aberdeen";w.insertGlobalCss({".s-tabs":{"&":"display:flex flex-direction:column gap:$3",".s-tablist":"display:flex gap:$1 align-items:stretch overflow-x:auto scrollbar-width:none border-bottom: 1px solid $s-faint;",".s-tablist::-webkit-scrollbar":"display:none",".s-tab":"display:inline-flex align-items:center gap:$2 cursor:pointer background:transparent border:0 color: $s-muted; font-weight:600 padding: 0.6em 0.9em; border-bottom: 3px solid transparent; margin-bottom:-1px transition: color 0.15s, background 0.15s, border-color 0.15s;",".s-tab:hover:not(:disabled), .s-tab[aria-selected=true]":"color: $s-text;",".s-tab:focus-visible":"outline:none box-shadow: 0 0 0 3px $s-focus; r: $s-radius;",".s-tab[aria-selected=true]":"border-image: $s-gradient 1;",".s-tabpanel":"display:block"}});function ze(e){let t=S("tabs"),n=(r,a)=>r.id??String(a),i=e.bind??w.proxy(n(e.tabs[0]??{label:""},0));e.tabs.length>0&&!e.tabs.some((r,a)=>n(r,a)===w.peek(()=>i.value))&&(i.value=n(e.tabs[0],0));let o=(r,a)=>{r.disabled||(i.value=n(r,a))};w("div.s-tabs",e.attrs,()=>{w("div.s-tablist role=tablist",()=>{e.tabs.forEach((r,a)=>{let s=n(r,a);w("button.s-tab type=button role=tab",()=>{w(`id=${t}-tab-${s} aria-controls=${t}-panel-${s}`),w(()=>{let c=i.value===s;w("aria-selected=",c?"true":"false"),w("tabindex=",c?"0":"-1")}),r.disabled&&w("disabled=true"),w("click=",()=>o(r,a)),w("keydown=",c=>He(c,e.tabs,a,o)),d(r.icon),d(r.label)})})}),w("div.s-tabpanel role=tabpanel",e.contentAttrs,()=>{w(()=>{let r=i.value,a=e.tabs.findIndex((c,C)=>n(c,C)===r),s=e.tabs[a]??e.tabs[0];s&&(w(`id=${t}-panel-${n(s,a)} aria-labelledby=${t}-tab-${n(s,a)}`),d(s.content))})})})}function He(e,t,n,i){let o=n;if(e.key==="ArrowRight"||e.key==="ArrowDown")o=(n+1)%t.length;else if(e.key==="ArrowLeft"||e.key==="ArrowUp")o=(n-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();let r=o>=n?1:-1;for(let a=0;a<t.length;a++){let s=t[o];if(s&&!s.disabled){i(s,o),e.currentTarget?.parentElement?.children[o]?.focus();return}o=(o+r+t.length)%t.length}}import E from"aberdeen";E.insertGlobalCss({"textarea.s-input":"resize:vertical min-height:3em line-height:1.45","textarea.s-input.s-autoGrow":"resize:none min-height:2.5em overflow-y:hidden"});function De(e={}){let t=e.autoGrow!==!1;q(e,(n,i)=>{let o=E("textarea.s-input",e.inputAttrs,()=>{t?(E(".s-autoGrow"),E("input=",r=>{pe(r.currentTarget),e.input&&e.input(r)})):(E("rows=",e.rows??4),E("resize:",e.resize??"vertical"),e.input&&E("input=",e.input)),e.placeholder!=null&&E("placeholder=",e.placeholder),e.value!=null&&!e.bind&&E("value=",e.value),e.change&&E("change=",e.change),R(e,n,i,e.bind)});t&&requestAnimationFrame(()=>pe(o))})}function pe(e){e.style.height="auto",e.style.height=`${e.scrollHeight}px`}import m from"aberdeen";import{grow as Ge,shrink as Ie}from"aberdeen/transitions";m.insertGlobalCss({".s-toasts":"position:fixed bottom:$3 right:$3 z-index:400 display:flex flex-direction:column gap:$2 pointer-events:none max-width:min(90vw,24rem) w:24rem",".s-toast":{"&":"display:flex align-items:flex-start gap:$2 padding: $3; pointer-events:auto position:relative overflow:hidden",".s-toast-body":"display:flex flex-direction:column gap:$1 flex:1 min-width:0",".s-toast-title":"font-weight:700 line-height:1.3",".s-toast-close":"cursor:pointer border:0 background:transparent fg:$s-muted font-size:1.1em line-height:1 padding: 0 0.15em; r:4px flex-shrink:0 align-self:flex-start",".s-toast-close:hover":"fg:$s-text",".s-toast-close:focus-visible":"outline:none box-shadow: 0 0 0 3px $s-focus; fg:$s-text",".s-toast-progress":"position:absolute bottom:0 left:0 right:0 height:2px background:$s-accent width:100%"}});var Pe=0,W=m.proxy({});L(()=>{m.peek(()=>m.isEmpty(W))&&m.isEmpty(W)||m("div.s-toasts",()=>{m.onEach(W,e=>{let{opts:t,id:n}=e,i=t.type==="danger"||t.type==="warning"?"alert":"status",o=t.type==null||t.type==="neutral"?"neutral":t.type,r=t.duration??6e3,a,s=null,c=()=>{clearTimeout(a),s&&(s.style.transition="none",s.style.width="100%",s.offsetWidth,s.style.transition=`width ${r}ms linear`,s.style.width="0%"),a=setTimeout(()=>ne(n),r)},C=()=>{clearTimeout(a),a=void 0,s&&(s.style.transition="none",s.style.width="100%")};m.clean(()=>clearTimeout(a)),m(`div.s-toast.s-s.${o}.extra-shadow aria-live=polite role=${i}`,"create=",Ge,"destroy=",Ie,t.attrs,()=>{r>0&&(m("mouseenter=",C),m("mouseleave=",c)),m("div.s-toast-body",()=>{m(()=>{t.title!=null&&m("div.s-toast-title",()=>d(t.title))}),m("div.s-toast-msg",()=>d(t.message))}),m(()=>{t.dismissible!==!1&&m("button.s-toast-close type=button aria-label=Dismiss",()=>{m("#\xD7"),m("click=",()=>ne(n))})}),r>0&&(s=m("div.s-toast-progress"))}),r>0&&requestAnimationFrame(c)})})});function ne(e){delete W[e]}function Ke(e){let t=++Pe;return W[t]={id:t,opts:e},()=>ne(t)}import T from"aberdeen";T.insertGlobalCss({".s-tt-tip":{"&":"position:fixed z-index:500 max-width:20rem w:max-content padding: 0.3em 0.65em; font-size:0.85em line-height:1.4 pointer-events:none"}});var j=T.proxy(void 0),M=null;typeof window<"u"&&window.addEventListener("scroll",()=>{j.value=void 0},{capture:!0,passive:!0});function Re(e,t,n,i){let r=window.innerWidth,a=window.innerHeight,s=0,c=0;return i==="bottom"?(s=e.left+(e.width-t)/2,c=e.bottom+7,c+n>a-8&&(c=e.top-n-7)):i==="left"?(s=e.left-t-7,c=e.top+(e.height-n)/2,s<8&&(s=e.right+7)):i==="right"?(s=e.right+7,c=e.top+(e.height-n)/2,s+t>r-8&&(s=e.left-t-7)):(s=e.left+(e.width-t)/2,c=e.top-n-7,c<8&&(c=e.bottom+7)),{x:Math.max(8,Math.min(s,r-t-8)),y:Math.max(8,Math.min(c,a-n-8))}}function oe(){M&&clearTimeout(M),M=setTimeout(()=>{j.value=void 0,M=null},100)}L(()=>{let e=j.value;if(!e)return;let{opts:t,anchor:n}=e,i=t.placement??"top",o=T("div.s-tt-tip.s-s.neutral.shadow role=tooltip visibility:hidden",t.attrs,()=>{T("mouseenter=",()=>{M&&(clearTimeout(M),M=null)}),T("mouseleave=",oe),d(t.tip)});requestAnimationFrame(()=>{if(!document.body.contains(o))return;let{x:r,y:a}=Re(n.getBoundingClientRect(),o.offsetWidth,o.offsetHeight,i);o.style.left=r+"px",o.style.top=a+"px",o.style.visibility=""})});function je(e){let t=n=>{M&&(clearTimeout(M),M=null),j.value={opts:e,anchor:n.currentTarget}};T("mouseenter=",t),T("mouseleave=",oe),T("focusin=",t),T("focusout=",oe),T.clean(()=>{j.value?.opts===e&&(j.value=void 0)})}export{Te as addContextMenu,je as addTooltip,Me as alert,ve as autocomplete,we as box,A as button,$e as buttonChooser,H as buttonGroup,ke as checkbox,Ce as confirm,N as dialog,Ae as form,ae as getDarkMode,Le as main,Z as menuButton,Se as prompt,Be as select,be as setDarkMode,Q as showFloatingMenu,ze as tabs,De as textarea,ee as textline,Ke as toast};
package/dist/theme.js CHANGED
@@ -141,7 +141,33 @@ A.insertGlobalCss({
141
141
  // surfaces, the ink on accent surfaces.
142
142
  a: "color: $s-link-fg; text-decoration:underline text-underline-offset:2px; transition: color 0.12s, filter 0.12s;",
143
143
  "a:hover": "filter: brightness(1.15)",
144
- "input, button, textarea, select": "font:inherit color:inherit",
144
+ "input, button, textarea, select, optgroup": "font:inherit color:inherit",
145
+ // Bare text-like fields get a calm bordered box derived from the surface. The
146
+ // styled controls (`.s-input`, autocomplete's `.s-control`) override this via
147
+ // higher specificity, so this only governs otherwise-unstyled HTML. `:where()`
148
+ // keeps it at element specificity, so a component class always wins.
149
+ "input:where(:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=image],[type=submit],[type=button],[type=reset],[type=hidden])), textarea, select": "background:$s-bg border: 1px solid $s-faint; r:$s-radius-sm padding: 0.45em 0.65em; max-width:100%",
150
+ // Checkboxes/radios: a touch larger with a pointer cursor. (The brand accent —
151
+ // `accent-color` — is inherited from the surface, see the `:root, .s-s` rule.)
152
+ "input:where([type=checkbox],[type=radio])": "width:1.15em height:1.15em cursor:pointer",
153
+ // Range: a thin pill track (faint, brand-filled on the lower side in Firefox)
154
+ // with a round brand thumb — no native groove/outline.
155
+ "input[type=range]": "appearance:none background:transparent cursor:pointer vertical-align:middle",
156
+ "input[type=range]::-webkit-slider-runnable-track": "height:4px r:99px background:$s-faint",
157
+ "input[type=range]::-moz-range-track": "height:4px r:99px background:$s-faint",
158
+ "input[type=range]::-moz-range-progress": "height:4px r:99px background:$s-accent",
159
+ "input[type=range]::-webkit-slider-thumb": "appearance:none width:16px height:16px margin-top:-6px r:50% background:$s-accent",
160
+ "input[type=range]::-moz-range-thumb": "width:16px height:16px border:0 r:50% background:$s-accent",
161
+ "input[type=file]": "cursor:pointer",
162
+ // Progress: same thin faint pill track + brand fill as the range slider.
163
+ progress: "appearance:none border:0 height:6px r:99px background:$s-faint overflow:hidden vertical-align:middle",
164
+ "progress::-webkit-progress-bar": "background:$s-faint r:99px",
165
+ "progress::-webkit-progress-value": "background:$s-accent r:99px",
166
+ "progress::-moz-progress-bar": "background:$s-accent r:99px",
167
+ meter: "vertical-align:middle",
168
+ // Fieldsets: a quiet group box instead of the browser's heavy inset border.
169
+ fieldset: "border: 1px solid $s-faint; r:$s-radius-sm padding:$2 min-width:0",
170
+ legend: "padding: 0 $1; font-weight:600",
145
171
  "code, kbd, samp, pre": "font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;",
146
172
  code: "background: color-mix(in oklab, $s-text, $s-bg 86%); padding: 0.12em 0.34em; r:4px font-size:0.9em",
147
173
  pre: "background: color-mix(in oklab, $s-text, $s-bg 92%); p:$3 r: $s-radius; overflow:auto",
@@ -183,7 +209,7 @@ A.insertGlobalCss({
183
209
  // its resolved text/bg pair, plus `color` and themed scrollbars.
184
210
  ":root, .s-s": "--s-muted: color-mix(in oklab, $s-text, $s-bg 42%); " +
185
211
  "--s-faint: color-mix(in oklab, $s-text, $s-bg 80%); " +
186
- "color:$s-text scrollbar-width:thin scrollbar-color: $s-faint transparent;",
212
+ "color:$s-text accent-color:$s-accent scrollbar-width:thin scrollbar-color: $s-faint transparent;",
187
213
  // Subtle single-colour gradient sheen, painted on every surface (and the page).
188
214
  ".s-s, body": "background: linear-gradient(170deg, color-mix(in oklab, $s-bg, white 9%), color-mix(in oklab, $s-bg, black 9%));",
189
215
  ".s-s": "r:$s-radius",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "staffa",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "An opinionated component library for the Aberdeen reactive UI library.",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -45,6 +45,6 @@
45
45
  "typescript": "^5.9.3"
46
46
  },
47
47
  "dependencies": {
48
- "shotest": "^1.6.1"
48
+ "shotest": "^1.7.0"
49
49
  }
50
50
  }
@@ -19,8 +19,9 @@ A.insertGlobalCss({
19
19
  "&": "display:flex flex-direction:column gap:$1",
20
20
  "> label": "display:flex align-items:center gap:$2 cursor:pointer user-select:none",
21
21
  "> label:has(input:disabled)": "cursor:not-allowed opacity:0.45 filter:saturate(0.6)",
22
- // Native control styled with accent-color: accessible and zero-fuss.
23
- "input": "width:1.15em height:1.15em accent-color:$s-accent cursor:inherit m:0",
22
+ // Native control: size and brand accent-color come from the CSS reset; here we
23
+ // just strip the margin and let it inherit the label's cursor (pointer / not-allowed).
24
+ "input": "cursor:inherit m:0",
24
25
  },
25
26
  });
26
27
 
@@ -104,7 +104,7 @@ A.insertGlobalCss({
104
104
  // identical; the element only differs where link semantics matter (see below).
105
105
  ".s-menu-item":
106
106
  "display:flex align-items:center gap:$2 w:100% outline:0 " +
107
- "padding: $m2; line-height:1.1 r:$s-radius cursor:pointer text-align:left font-weight:450 " +
107
+ "padding: $m2 0; line-height:1.1 r:$s-radius cursor:pointer text-align:left font-weight:450 " +
108
108
  "font-size:0.9em border:0 background:transparent fg:$s-text text-decoration:none " +
109
109
  "transition: color 0.12s, transform 0.12s, text-shadow 0.12s;",
110
110
  ".s-menu-item:focus-visible:not([aria-current=page]), .s-menu-item:hover:not([aria-disabled=true]):not([aria-current=page])":
package/src/theme.ts CHANGED
@@ -144,7 +144,34 @@ A.insertGlobalCss({
144
144
  // surfaces, the ink on accent surfaces.
145
145
  a: "color: $s-link-fg; text-decoration:underline text-underline-offset:2px; transition: color 0.12s, filter 0.12s;",
146
146
  "a:hover": "filter: brightness(1.15)",
147
- "input, button, textarea, select": "font:inherit color:inherit",
147
+ "input, button, textarea, select, optgroup": "font:inherit color:inherit",
148
+ // Bare text-like fields get a calm bordered box derived from the surface. The
149
+ // styled controls (`.s-input`, autocomplete's `.s-control`) override this via
150
+ // higher specificity, so this only governs otherwise-unstyled HTML. `:where()`
151
+ // keeps it at element specificity, so a component class always wins.
152
+ "input:where(:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=image],[type=submit],[type=button],[type=reset],[type=hidden])), textarea, select":
153
+ "background:$s-bg border: 1px solid $s-faint; r:$s-radius-sm padding: 0.45em 0.65em; max-width:100%",
154
+ // Checkboxes/radios: a touch larger with a pointer cursor. (The brand accent —
155
+ // `accent-color` — is inherited from the surface, see the `:root, .s-s` rule.)
156
+ "input:where([type=checkbox],[type=radio])": "width:1.15em height:1.15em cursor:pointer",
157
+ // Range: a thin pill track (faint, brand-filled on the lower side in Firefox)
158
+ // with a round brand thumb — no native groove/outline.
159
+ "input[type=range]": "appearance:none background:transparent cursor:pointer vertical-align:middle",
160
+ "input[type=range]::-webkit-slider-runnable-track": "height:4px r:99px background:$s-faint",
161
+ "input[type=range]::-moz-range-track": "height:4px r:99px background:$s-faint",
162
+ "input[type=range]::-moz-range-progress": "height:4px r:99px background:$s-accent",
163
+ "input[type=range]::-webkit-slider-thumb": "appearance:none width:16px height:16px margin-top:-6px r:50% background:$s-accent",
164
+ "input[type=range]::-moz-range-thumb": "width:16px height:16px border:0 r:50% background:$s-accent",
165
+ "input[type=file]": "cursor:pointer",
166
+ // Progress: same thin faint pill track + brand fill as the range slider.
167
+ progress: "appearance:none border:0 height:6px r:99px background:$s-faint overflow:hidden vertical-align:middle",
168
+ "progress::-webkit-progress-bar": "background:$s-faint r:99px",
169
+ "progress::-webkit-progress-value": "background:$s-accent r:99px",
170
+ "progress::-moz-progress-bar": "background:$s-accent r:99px",
171
+ meter: "vertical-align:middle",
172
+ // Fieldsets: a quiet group box instead of the browser's heavy inset border.
173
+ fieldset: "border: 1px solid $s-faint; r:$s-radius-sm padding:$2 min-width:0",
174
+ legend: "padding: 0 $1; font-weight:600",
148
175
  "code, kbd, samp, pre": "font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;",
149
176
  code: "background: color-mix(in oklab, $s-text, $s-bg 86%); padding: 0.12em 0.34em; r:4px font-size:0.9em",
150
177
  pre: "background: color-mix(in oklab, $s-text, $s-bg 92%); p:$3 r: $s-radius; overflow:auto",
@@ -192,7 +219,7 @@ A.insertGlobalCss({
192
219
  ":root, .s-s":
193
220
  "--s-muted: color-mix(in oklab, $s-text, $s-bg 42%); " +
194
221
  "--s-faint: color-mix(in oklab, $s-text, $s-bg 80%); " +
195
- "color:$s-text scrollbar-width:thin scrollbar-color: $s-faint transparent;",
222
+ "color:$s-text accent-color:$s-accent scrollbar-width:thin scrollbar-color: $s-faint transparent;",
196
223
  // Subtle single-colour gradient sheen, painted on every surface (and the page).
197
224
  ".s-s, body":
198
225
  "background: linear-gradient(170deg, color-mix(in oklab, $s-bg, white 9%), color-mix(in oklab, $s-bg, black 9%));",