@smartyweb/ui 2.5.0 → 2.5.1-irina-button-review.g72000c8

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,20 +5,32 @@ interface SharedProps {
5
5
  onClick?: React.MouseEventHandler;
6
6
  children?: React.ReactNode;
7
7
  }
8
- type AsButton = SharedProps & {
9
- as?: "button";
10
- type?: "button" | "submit" | "reset";
11
- disabled?: boolean;
12
- href?: never;
13
- openInNewTab?: never;
14
- };
8
+ /**
9
+ * Where the href leads decides what renders, as for <Link>: http(s) opens in a new tab,
10
+ * an internal route goes through the <LinkProvider> router, and anything else — including
11
+ * a file such as a PDF, which opens in the browser — is a plain <a>.
12
+ */
15
13
  type AsLink = SharedProps & {
16
- as: React.ElementType;
17
14
  href: string;
15
+ /** Still accepted, but the href decides — `as={Link}` is no longer needed. */
16
+ as?: React.ElementType;
17
+ /** External hrefs open in a new tab already; this forces it for an internal one. */
18
18
  openInNewTab?: boolean;
19
+ /** Saves the file instead of opening it: always a plain <a download>, never a new tab. */
20
+ download?: boolean;
21
+ /** A link cannot be disabled, so a disabled link-button renders a disabled <button>. */
22
+ disabled?: boolean;
19
23
  type?: never;
20
- disabled?: never;
21
24
  };
22
- export type ButtonProps = AsButton | AsLink;
23
- export declare function Button({ as: Tag, variant, size, href, openInNewTab, disabled, type, onClick, children, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
25
+ /** No href — a <button>, type="button" so it never submits a form by accident. */
26
+ type AsButton = SharedProps & {
27
+ href?: never;
28
+ as?: "button";
29
+ openInNewTab?: never;
30
+ download?: never;
31
+ type?: "button" | "submit" | "reset";
32
+ disabled?: boolean;
33
+ };
34
+ export type ButtonProps = AsLink | AsButton;
35
+ export declare function Button({ as, variant, size, href, openInNewTab, download, disabled, type, onClick, children, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
24
36
  export {};
@@ -0,0 +1,9 @@
1
+ export type Destination = "external" | "download" | "plain" | "router";
2
+ /**
3
+ * Where an href leads, which decides what <Link> and <Button> render: http(s) opens in a
4
+ * new tab, an internal route goes through the <LinkProvider> router, and anything else —
5
+ * including a file such as a PDF, which opens in the browser — is a plain <a>.
6
+ */
7
+ export declare function destinationOf(href: string, download: boolean): Destination;
8
+ /** Tells screen readers a link opens in a new tab; takes no room on screen. */
9
+ export declare function NewTabNote(): import("react/jsx-runtime").JSX.Element;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),G="_h1_1765w_1",Z={h1:G};function z({children:e,className:n}){const s=[Z.h1,n].filter(Boolean).join(" ");return t.jsx("h1",{className:s,children:e})}const Q="_h2_1eque_1",Y={h2:Q};function ee({children:e}){return t.jsx("h2",{className:Y.h2,children:e})}const ne="_paragraph_11t85_1",te={paragraph:ne};function se({children:e}){return t.jsx("p",{className:te.paragraph,children:e})}const D=typeof process<"u"&&process.env.NODE_ENV!=="production",T=new Set;function $(e){T.has(e)||(T.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function ie(e){if(typeof e=="string")return`<${e}>`;if(typeof e=="function")return`<${e.name||"Component"}>`;if(typeof e=="object"&&e!==null&&"displayName"in e){const{displayName:n}=e;if(typeof n=="string")return`<${n}>`}return"an unknown element"}function E(e,n){for(const s of r.Children.toArray(e)){if(!r.isValidElement(s)){if(typeof s!="string"&&typeof s!="number")continue;const i=String(s).trim();if(i==="")continue;$(`<UnorderedList> received the text ${JSON.stringify(i.slice(0,40))} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`);continue}if(s.type===r.Fragment){const{children:i}=s.props;E(i,n);continue}n(s.type)||s.type==="li"||$(`<UnorderedList> received ${ie(s.type)} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`)}}function oe(){$("<ListItem> was rendered outside of an <UnorderedList>. It renders an <li>, which browsers only style correctly inside a list.")}const re="_list_1p627_1",ae="_item_1p627_14",B={list:re,item:ae},M=r.createContext(!1);function k({children:e}){const n=r.useContext(M);return D&&!n&&oe(),t.jsx("li",{className:B.item,children:e})}k.isSmartyListItem=!0;function ce(e){return e===k?!0:typeof e=="function"&&e.isSmartyListItem===!0}function le({children:e}){return D&&E(e,ce),t.jsx(M,{value:!0,children:t.jsx("ul",{role:"list",className:B.list,children:e})})}const de="_button_81qo0_1",ue="_sm_81qo0_26",fe="_primary_81qo0_33",_e="_secondary_81qo0_49",me="_negative_81qo0_68",b={button:de,sm:ue,primary:fe,secondary:_e,negative:me};function pe({as:e="button",variant:n="primary",size:s="default",href:i,openInNewTab:c,disabled:d,type:o,onClick:u,children:f}){const m=[b.button,b[n],s==="sm"&&b.sm].filter(Boolean).join(" ");return t.jsx(e,{className:m,href:i,target:c?"_blank":void 0,rel:c?"noopener noreferrer":void 0,disabled:d,type:o,onClick:u,children:f})}const he="_link_1m7hb_1",ye="_accent_1m7hb_28",xe="_disabled_1m7hb_38",ve="_newTabNote_1m7hb_48",g={link:he,accent:ye,disabled:xe,newTabNote:ve},R=r.createContext(null);function ge({component:e,children:n}){return t.jsx(R,{value:e,children:n})}function je(){return r.useContext(R)}const Ne=" (opens in new tab)",be=/\.[a-z][a-z\d]{1,4}$/;function Le(e,n){if(n)return"download";if(/^(https?:)?\/\//i.test(e))return"external";if(e.startsWith("#")||/^[a-z][a-z\d+.-]*:/i.test(e))return"plain";const s=(e.split(/[?#]/)[0]??"").toLowerCase();return be.test(s)?"plain":"router"}function A({variant:e="default",href:n,download:s=!1,disabled:i,onClick:c,children:d}){const o=je(),f=[g.link,e==="accent"&&g.accent,i&&g.disabled].filter(Boolean).join(" ");if(n===void 0)return t.jsx("button",{type:"button",className:f,disabled:i,onClick:i?void 0:c,"aria-disabled":i,children:d});const _=Le(n,s);if(_==="external")return t.jsxs("a",{className:f,href:n,target:"_blank",rel:"noopener noreferrer",onClick:c,children:[d,t.jsx("span",{className:g.newTabNote,children:Ne})]});const m=_==="router"&&o?o:"a";return t.jsx(m,{className:f,href:n,download:_==="download"?"":void 0,onClick:c,children:d})}const $e=typeof process<"u"&&process.env.NODE_ENV!=="production",I=new Set;function we(e){I.has(e)||(I.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function ke(){we("<SideNav> was rendered with no accessible name. Pass `label` so screen reader users can tell this nav apart from the other navigation landmarks on the page.")}const Ce="_nav_dxkjl_3",Oe="_list_dxkjl_7",Te="_item_dxkjl_16",Ie="_link_dxkjl_20",Se="_current_dxkjl_48",x={nav:Ce,list:Oe,item:Te,link:Ie,current:Se},F=r.createContext(null);function ze({label:e,current:n,children:s}){return $e&&!e?.trim()&&ke(),t.jsx("nav",{className:x.nav,"aria-label":e,children:t.jsx(F,{value:n??null,children:t.jsx("ul",{className:x.list,children:s})})})}function De({as:e="a",href:n,current:s,openInNewTab:i,onClick:c,children:d}){const o=r.useContext(F),u=s??(o!==null&&o===n),f=[x.link,u&&x.current].filter(Boolean).join(" ");return t.jsx("li",{className:x.item,children:t.jsx(e,{className:f,href:n,target:i?"_blank":void 0,rel:i?"noopener noreferrer":void 0,onClick:c,"aria-current":u?"location":void 0,children:d})})}const W=typeof process<"u"&&process.env.NODE_ENV!=="production",S=new Set;function w(e){S.has(e)||(S.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function Ee(e){if(typeof e=="string")return`<${e}>`;if(typeof e=="function")return`<${e.name||"Component"}>`;if(typeof e=="object"&&e!==null&&"displayName"in e){const{displayName:n}=e;if(typeof n=="string")return`<${n}>`}return"an unknown element"}function q(e,n){for(const s of r.Children.toArray(e)){if(!r.isValidElement(s)){if(typeof s!="string"&&typeof s!="number")continue;const i=String(s).trim();if(i==="")continue;w(`<TableOfContents> received the text ${JSON.stringify(i.slice(0,40))} as a direct child. Its list may only contain entries — wrap it in <TableOfContentsLink href="#…">.`);continue}if(s.type===r.Fragment){const{children:i}=s.props;q(i,n);continue}n(s.type)||s.type==="li"||w(`<TableOfContents> received ${Ee(s.type)} as a direct child. Its list may only contain entries — use <TableOfContentsLink href="#…"> instead.`)}}function Be(){w("<TableOfContentsLink> was rendered outside of a <TableOfContents>. It renders an <li>, which browsers only style correctly inside a list.")}const Me="_nav_1us0j_1",Re="_heading_1us0j_8",Ae="_list_1us0j_19",Fe="_item_1us0j_28",j={nav:Me,heading:Re,list:Ae,item:Fe},H=r.createContext(!1);function C({href:e,children:n}){const s=r.useContext(H);return W&&!s&&Be(),t.jsx("li",{className:j.item,children:t.jsx(A,{href:e,children:n})})}C.isSmartyTableOfContentsLink=!0;function We(e){return e===C?!0:typeof e=="function"&&e.isSmartyTableOfContentsLink===!0}function qe({title:e="Table of contents",children:n}){const s=r.useId();return W&&q(n,We),t.jsxs("nav",{className:j.nav,"aria-labelledby":s,children:[t.jsx("h2",{id:s,className:j.heading,children:e}),t.jsx(H,{value:!0,children:t.jsx("ul",{role:"list",className:j.list,children:n})})]})}const He="_hero_93692_11",Pe="_layout_93692_16",Ue="_content_93692_21",Ve="_titleLine_93692_25",Je="_titleWord_93692_29",Ke="_description_93692_35",Xe="_media_93692_48",h={hero:He,layout:Pe,content:Ue,titleLine:Ve,titleWord:Je,description:Ke,media:Xe};function Ge(e){return e.replace(/([- ])/g,n=>`${n===" "?" ":n}|split|`).split("|split|")}const Ze=e=>({"--hero-index":e});function Qe({title:e,description:n,media:s}){const i=Array.isArray(e);let c=0;const d=(i?e:[e]).map(o=>Ge(o).map(u=>({word:u,index:c++})));return t.jsx("section",{className:h.hero,children:t.jsxs("div",{className:h.layout,children:[t.jsx("div",{className:h.media,children:s}),t.jsxs("div",{className:h.content,children:[t.jsx(z,{children:d.map((o,u)=>t.jsx("span",{className:i?h.titleLine:void 0,children:o.map(({word:f,index:_})=>t.jsx("span",{className:h.titleWord,style:Ze(_),children:f},_))},u))}),t.jsx("p",{className:h.description,children:n})]})]})})}function Ye(){return t.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:t.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.58586 8L1.29297 2.70711L2.70718 1.29289L8.00008 6.58579L13.293 1.29289L14.7072 2.70711L9.41429 8L14.7072 13.2929L13.293 14.7071L8.00008 9.41421L2.70718 14.7071L1.29297 13.2929L6.58586 8Z",fill:"currentColor"})})}const en="_field_7z5g3_1",nn="_error_7z5g3_17",tn="_message_7z5g3_21",sn="_content_7z5g3_36",on="_reveal_7z5g3_43",rn="_label_7z5g3_53",an="_tags_7z5g3_64",cn="_input_7z5g3_71",ln="_counter_7z5g3_88",dn="_empty_7z5g3_100",un="_disabled_7z5g3_127",fn="_chip_7z5g3_132",_n="_chipText_7z5g3_153",mn="_remove_7z5g3_158",pn="_invalid_7z5g3_169",l={field:en,error:nn,message:tn,content:sn,reveal:on,label:rn,tags:an,input:cn,counter:ln,empty:dn,disabled:un,chip:fn,chipText:_n,remove:mn,invalid:pn};function hn({children:e,invalid:n,onRemove:s}){return t.jsxs("span",{className:[l.chip,n&&l.invalid].filter(Boolean).join(" "),children:[t.jsx("span",{className:l.chipText,children:e}),s&&t.jsx("button",{type:"button",className:l.remove,"aria-label":`Remove ${e}${n?" (invalid)":""}`,onClick:s,children:t.jsx(Ye,{})})]})}const L=100;function yn({label:e,value:n,onChange:s,disabled:i=!1,isTagInvalid:c,onInputChange:d,error:o}){const u=r.useId(),f=`${u}-message`,_=r.useRef(null),[m,P]=r.useState(""),U=n.length>=L,V=a=>{P(a),d?.(a)},N=a=>{const p=a.split(/[\s,]+/),O=p.pop()??"",v=p.filter(Boolean).slice(0,Math.max(0,L-n.length));v.length&&s([...n,...v]),V(O)},J=a=>{a.key==="Enter"&&m&&!a.nativeEvent.isComposing?(a.preventDefault(),N(`${m},`)):a.key==="Backspace"&&!m&&n.length&&s(n.slice(0,-1))},K=a=>{i||a.target===_.current||a.target.closest("button")||(a.preventDefault(),_.current?.focus())},X=[l.field,!n.length&&l.empty,i&&l.disabled,o&&l.error].filter(Boolean).join(" ");return t.jsxs("div",{children:[t.jsxs("div",{className:X,onMouseDown:K,children:[t.jsxs("div",{className:l.content,children:[t.jsx("label",{htmlFor:u,className:l.label,children:e}),t.jsx("div",{className:l.reveal,children:t.jsxs("div",{className:l.tags,children:[n.map((a,p)=>t.jsx(hn,{invalid:c?.(a,p)??!1,onRemove:i?void 0:()=>{s(n.filter((O,v)=>v!==p)),p===n.length-1&&_.current?.focus()},children:a},p)),t.jsx("input",{ref:_,id:u,className:l.input,size:1,value:m,disabled:i,readOnly:U,"aria-invalid":o?!0:void 0,"aria-describedby":o?f:void 0,onChange:a=>{N(a.target.value)},onKeyDown:J,onBlur:()=>{N(`${m},`)}})]})})]}),t.jsx("div",{className:l.reveal,children:t.jsxs("p",{className:l.counter,children:[n.length," / ",L]})})]}),t.jsx("p",{id:f,className:l.message,"aria-live":"polite",children:o})]})}const xn="_field_1hc5h_1",vn="_label_1hc5h_16",gn="_reveal_1hc5h_27",jn="_input_1hc5h_37",Nn="_empty_1hc5h_55",y={field:xn,label:vn,reveal:gn,input:jn,empty:Nn};function bn({label:e,value:n,onChange:s}){const i=r.useId(),c=r.useRef(null),d=o=>{o.target!==c.current&&(o.preventDefault(),c.current?.focus())};return t.jsxs("div",{className:[y.field,!n&&y.empty].filter(Boolean).join(" "),onMouseDown:d,children:[t.jsx("label",{htmlFor:i,className:y.label,children:e}),t.jsx("div",{className:y.reveal,children:t.jsx("div",{children:t.jsx("input",{ref:c,id:i,className:y.input,value:n,onChange:o=>{s(o.target.value)}})})})]})}exports.Button=pe;exports.H1=z;exports.H2=ee;exports.Hero=Qe;exports.Link=A;exports.LinkProvider=ge;exports.ListItem=k;exports.MultitagField=yn;exports.Paragraph=se;exports.SideNav=ze;exports.SideNavLink=De;exports.TableOfContents=qe;exports.TableOfContentsLink=C;exports.TextField=bn;exports.UnorderedList=le;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),Y="_h1_1765w_1",ee={h1:Y};function R({children:e,className:n}){const s=[ee.h1,n].filter(Boolean).join(" ");return t.jsx("h1",{className:s,children:e})}const ne="_h2_1eque_1",te={h2:ne};function se({children:e}){return t.jsx("h2",{className:te.h2,children:e})}const ie="_paragraph_11t85_1",oe={paragraph:ie};function re({children:e}){return t.jsx("p",{className:oe.paragraph,children:e})}const F=typeof process<"u"&&process.env.NODE_ENV!=="production",B=new Set;function C(e){B.has(e)||(B.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function ae(e){if(typeof e=="string")return`<${e}>`;if(typeof e=="function")return`<${e.name||"Component"}>`;if(typeof e=="object"&&e!==null&&"displayName"in e){const{displayName:n}=e;if(typeof n=="string")return`<${n}>`}return"an unknown element"}function A(e,n){for(const s of r.Children.toArray(e)){if(!r.isValidElement(s)){if(typeof s!="string"&&typeof s!="number")continue;const i=String(s).trim();if(i==="")continue;C(`<UnorderedList> received the text ${JSON.stringify(i.slice(0,40))} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`);continue}if(s.type===r.Fragment){const{children:i}=s.props;A(i,n);continue}n(s.type)||s.type==="li"||C(`<UnorderedList> received ${ae(s.type)} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`)}}function le(){C("<ListItem> was rendered outside of an <UnorderedList>. It renders an <li>, which browsers only style correctly inside a list.")}const ce="_list_1p627_1",ue="_item_1p627_14",W={list:ce,item:ue},H=r.createContext(!1);function T({children:e}){const n=r.useContext(H);return F&&!n&&le(),t.jsx("li",{className:W.item,children:e})}T.isSmartyListItem=!0;function de(e){return e===T?!0:typeof e=="function"&&e.isSmartyListItem===!0}function fe({children:e}){return F&&A(e,de),t.jsx(H,{value:!0,children:t.jsx("ul",{role:"list",className:W.list,children:e})})}const _e="_link_1m7hb_1",me="_accent_1m7hb_28",pe="_disabled_1m7hb_38",he="_newTabNote_1m7hb_48",g={link:_e,accent:me,disabled:pe,newTabNote:he},xe=/\.[a-z][a-z\d]{1,4}$/;function P(e,n){if(n)return"download";if(/^(https?:)?\/\//i.test(e))return"external";if(e.startsWith("#")||/^[a-z][a-z\d+.-]*:/i.test(e))return"plain";const s=(e.split(/[?#]/)[0]??"").toLowerCase();return xe.test(s)?"plain":"router"}function U(){return t.jsx("span",{className:g.newTabNote,children:" (opens in new tab)"})}const z=r.createContext(null);function ye({component:e,children:n}){return t.jsx(z,{value:e,children:n})}function V(){return r.useContext(z)}const ve="_button_1391k_1",je="_sm_1391k_26",be="_primary_1391k_33",Ne="_secondary_1391k_49",ge="_negative_1391k_68",$={button:ve,sm:je,primary:be,secondary:Ne,negative:ge};function Le({as:e,variant:n="primary",size:s="default",href:i,openInNewTab:c=!1,download:d=!1,disabled:o,type:f="button",onClick:_,children:u}){const m=V(),b=[$.button,$[n],s==="sm"&&$.sm].filter(Boolean).join(" ");if(i===void 0||o)return t.jsx("button",{className:b,type:f,disabled:o,onClick:_,children:u});const y=P(i,d),p=y==="external"||c&&y!=="download",w=e??(y==="router"&&m?m:"a");return t.jsxs(w,{className:b,href:i,target:p?"_blank":void 0,rel:p?"noopener noreferrer":void 0,download:y==="download"?"":void 0,onClick:_,children:[u,p&&t.jsx(U,{})]})}function q({variant:e="default",href:n,download:s=!1,disabled:i,onClick:c,children:d}){const o=V(),_=[g.link,e==="accent"&&g.accent,i&&g.disabled].filter(Boolean).join(" ");if(n===void 0)return t.jsx("button",{type:"button",className:_,disabled:i,onClick:i?void 0:c,"aria-disabled":i,children:d});const u=P(n,s);if(u==="external")return t.jsxs("a",{className:_,href:n,target:"_blank",rel:"noopener noreferrer",onClick:c,children:[d,t.jsx(U,{})]});const m=u==="router"&&o?o:"a";return t.jsx(m,{className:_,href:n,download:u==="download"?"":void 0,onClick:c,children:d})}const we=typeof process<"u"&&process.env.NODE_ENV!=="production",E=new Set;function $e(e){E.has(e)||(E.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function ke(){$e("<SideNav> was rendered with no accessible name. Pass `label` so screen reader users can tell this nav apart from the other navigation landmarks on the page.")}const Ce="_nav_dxkjl_3",Oe="_list_dxkjl_7",Te="_item_dxkjl_16",Ie="_link_dxkjl_20",Se="_current_dxkjl_48",j={nav:Ce,list:Oe,item:Te,link:Ie,current:Se},J=r.createContext(null);function De({label:e,current:n,children:s}){return we&&!e?.trim()&&ke(),t.jsx("nav",{className:j.nav,"aria-label":e,children:t.jsx(J,{value:n??null,children:t.jsx("ul",{className:j.list,children:s})})})}function Be({as:e="a",href:n,current:s,openInNewTab:i,onClick:c,children:d}){const o=r.useContext(J),f=s??(o!==null&&o===n),_=[j.link,f&&j.current].filter(Boolean).join(" ");return t.jsx("li",{className:j.item,children:t.jsx(e,{className:_,href:n,target:i?"_blank":void 0,rel:i?"noopener noreferrer":void 0,onClick:c,"aria-current":f?"location":void 0,children:d})})}const K=typeof process<"u"&&process.env.NODE_ENV!=="production",M=new Set;function O(e){M.has(e)||(M.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function Ee(e){if(typeof e=="string")return`<${e}>`;if(typeof e=="function")return`<${e.name||"Component"}>`;if(typeof e=="object"&&e!==null&&"displayName"in e){const{displayName:n}=e;if(typeof n=="string")return`<${n}>`}return"an unknown element"}function X(e,n){for(const s of r.Children.toArray(e)){if(!r.isValidElement(s)){if(typeof s!="string"&&typeof s!="number")continue;const i=String(s).trim();if(i==="")continue;O(`<TableOfContents> received the text ${JSON.stringify(i.slice(0,40))} as a direct child. Its list may only contain entries — wrap it in <TableOfContentsLink href="#…">.`);continue}if(s.type===r.Fragment){const{children:i}=s.props;X(i,n);continue}n(s.type)||s.type==="li"||O(`<TableOfContents> received ${Ee(s.type)} as a direct child. Its list may only contain entries — use <TableOfContentsLink href="#…"> instead.`)}}function Me(){O("<TableOfContentsLink> was rendered outside of a <TableOfContents>. It renders an <li>, which browsers only style correctly inside a list.")}const Re="_nav_1us0j_1",Fe="_heading_1us0j_8",Ae="_list_1us0j_19",We="_item_1us0j_28",L={nav:Re,heading:Fe,list:Ae,item:We},G=r.createContext(!1);function I({href:e,children:n}){const s=r.useContext(G);return K&&!s&&Me(),t.jsx("li",{className:L.item,children:t.jsx(q,{href:e,children:n})})}I.isSmartyTableOfContentsLink=!0;function He(e){return e===I?!0:typeof e=="function"&&e.isSmartyTableOfContentsLink===!0}function Pe({title:e="Table of contents",children:n}){const s=r.useId();return K&&X(n,He),t.jsxs("nav",{className:L.nav,"aria-labelledby":s,children:[t.jsx("h2",{id:s,className:L.heading,children:e}),t.jsx(G,{value:!0,children:t.jsx("ul",{role:"list",className:L.list,children:n})})]})}const Ue="_hero_93692_11",ze="_layout_93692_16",Ve="_content_93692_21",qe="_titleLine_93692_25",Je="_titleWord_93692_29",Ke="_description_93692_35",Xe="_media_93692_48",x={hero:Ue,layout:ze,content:Ve,titleLine:qe,titleWord:Je,description:Ke,media:Xe};function Ge(e){return e.replace(/([- ])/g,n=>`${n===" "?" ":n}|split|`).split("|split|")}const Ze=e=>({"--hero-index":e});function Qe({title:e,description:n,media:s}){const i=Array.isArray(e);let c=0;const d=(i?e:[e]).map(o=>Ge(o).map(f=>({word:f,index:c++})));return t.jsx("section",{className:x.hero,children:t.jsxs("div",{className:x.layout,children:[t.jsx("div",{className:x.media,children:s}),t.jsxs("div",{className:x.content,children:[t.jsx(R,{children:d.map((o,f)=>t.jsx("span",{className:i?x.titleLine:void 0,children:o.map(({word:_,index:u})=>t.jsx("span",{className:x.titleWord,style:Ze(u),children:_},u))},f))}),t.jsx("p",{className:x.description,children:n})]})]})})}function Ye(){return t.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:t.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.58586 8L1.29297 2.70711L2.70718 1.29289L8.00008 6.58579L13.293 1.29289L14.7072 2.70711L9.41429 8L14.7072 13.2929L13.293 14.7071L8.00008 9.41421L2.70718 14.7071L1.29297 13.2929L6.58586 8Z",fill:"currentColor"})})}const en="_field_14suf_1",nn="_error_14suf_17",tn="_message_14suf_21",sn="_content_14suf_36",on="_reveal_14suf_43",rn="_label_14suf_53",an="_tags_14suf_64",ln="_chips_14suf_71",cn="_input_14suf_78",un="_counter_14suf_95",dn="_empty_14suf_107",fn="_disabled_14suf_134",_n="_chip_14suf_71",mn="_chipText_14suf_160",pn="_remove_14suf_165",hn="_invalid_14suf_176",l={field:en,error:nn,message:tn,content:sn,reveal:on,label:rn,tags:an,chips:ln,input:cn,counter:un,empty:dn,disabled:fn,chip:_n,chipText:mn,remove:pn,invalid:hn};function xn({children:e,invalid:n,onRemove:s}){return t.jsxs("li",{className:[l.chip,n&&l.invalid].filter(Boolean).join(" "),children:[t.jsx("span",{className:l.chipText,children:e}),s&&t.jsx("button",{type:"button",className:l.remove,"aria-label":`Remove ${e}${n?" (invalid)":""}`,onClick:s,children:t.jsx(Ye,{})})]})}const k=100;function yn({label:e,value:n,onChange:s,disabled:i=!1,isTagInvalid:c,onInputChange:d,error:o}){const f=r.useId(),_=`${f}-message`,u=r.useRef(null),[m,S]=r.useState(""),b=n.length>=k,y=a=>{S(a),d?.(a)},p=a=>{const h=a.split(/[\s,]+/),D=h.pop()??"",N=h.filter(Boolean).slice(0,Math.max(0,k-n.length));N.length&&s([...n,...N]),y(D)},w=a=>{a.key==="Enter"&&m&&!a.nativeEvent.isComposing?(a.preventDefault(),p(`${m},`)):a.key==="Backspace"&&!m&&n.length&&s(n.slice(0,-1))},Z=a=>{i||a.target===u.current||a.target.closest("button")||(a.preventDefault(),u.current?.focus())},Q=[l.field,!n.length&&l.empty,i&&l.disabled,o&&l.error].filter(Boolean).join(" ");return t.jsxs("div",{children:[t.jsxs("div",{className:Q,onMouseDown:Z,children:[t.jsxs("div",{className:l.content,children:[t.jsx("label",{htmlFor:f,className:l.label,children:e}),t.jsx("div",{className:l.reveal,children:t.jsxs("div",{className:l.tags,children:[n.length>0&&t.jsx("ul",{role:"list",className:l.chips,children:n.map((a,h)=>t.jsx(xn,{invalid:c?.(a,h)??!1,onRemove:i?void 0:()=>{s(n.filter((D,N)=>N!==h)),h===n.length-1&&u.current?.focus()},children:a},h))}),t.jsx("input",{ref:u,id:f,className:l.input,size:1,value:m,disabled:i,readOnly:b,"aria-invalid":o?!0:void 0,"aria-describedby":o?_:void 0,onChange:a=>{p(a.target.value)},onKeyDown:w,onBlur:()=>{p(`${m},`)}})]})})]}),t.jsx("div",{className:l.reveal,children:t.jsxs("p",{className:l.counter,children:[n.length," / ",k]})})]}),t.jsx("p",{id:_,className:l.message,"aria-live":"polite",children:o})]})}const vn="_field_otub4_1",jn="_label_otub4_16",bn="_reveal_otub4_27",Nn="_input_otub4_37",gn="_empty_otub4_56",v={field:vn,label:jn,reveal:bn,input:Nn,empty:gn};function Ln({label:e,value:n,onChange:s}){const i=r.useId(),c=r.useRef(null),d=o=>{o.target!==c.current&&(o.preventDefault(),c.current?.focus())};return t.jsxs("div",{className:[v.field,!n&&v.empty].filter(Boolean).join(" "),onMouseDown:d,children:[t.jsx("label",{htmlFor:i,className:v.label,children:e}),t.jsx("div",{className:v.reveal,children:t.jsx("div",{children:t.jsx("input",{ref:c,id:i,className:v.input,value:n,onChange:o=>{s(o.target.value)}})})})]})}exports.Button=Le;exports.H1=R;exports.H2=se;exports.Hero=Qe;exports.Link=q;exports.LinkProvider=ye;exports.ListItem=T;exports.MultitagField=yn;exports.Paragraph=re;exports.SideNav=De;exports.SideNavLink=Be;exports.TableOfContents=Pe;exports.TableOfContentsLink=I;exports.TextField=Ln;exports.UnorderedList=fe;
package/dist/index.js CHANGED
@@ -1,30 +1,30 @@
1
1
  "use client";
2
- import { jsx as i, jsxs as _ } from "react/jsx-runtime";
3
- import { Children as D, isValidElement as E, Fragment as B, createContext as $, useContext as w, useId as x, useRef as A, useState as en } from "react";
4
- const tn = "_h1_1765w_1", sn = {
5
- h1: tn
2
+ import { jsx as s, jsxs as _ } from "react/jsx-runtime";
3
+ import { Children as A, isValidElement as W, Fragment as F, createContext as k, useContext as O, useId as I, useRef as z, useState as on } from "react";
4
+ const rn = "_h1_1765w_1", an = {
5
+ h1: rn
6
6
  };
7
- function on({ children: n, className: e }) {
8
- const t = [sn.h1, e].filter(Boolean).join(" ");
9
- return /* @__PURE__ */ i("h1", { className: t, children: n });
7
+ function cn({ children: n, className: e }) {
8
+ const t = [an.h1, e].filter(Boolean).join(" ");
9
+ return /* @__PURE__ */ s("h1", { className: t, children: n });
10
10
  }
11
- const rn = "_h2_1eque_1", an = {
12
- h2: rn
11
+ const ln = "_h2_1eque_1", un = {
12
+ h2: ln
13
13
  };
14
- function we({ children: n }) {
15
- return /* @__PURE__ */ i("h2", { className: an.h2, children: n });
14
+ function Le({ children: n }) {
15
+ return /* @__PURE__ */ s("h2", { className: un.h2, children: n });
16
16
  }
17
- const cn = "_paragraph_11t85_1", ln = {
18
- paragraph: cn
17
+ const dn = "_paragraph_11t85_1", fn = {
18
+ paragraph: dn
19
19
  };
20
- function Le({ children: n }) {
21
- return /* @__PURE__ */ i("p", { className: ln.paragraph, children: n });
20
+ function ke({ children: n }) {
21
+ return /* @__PURE__ */ s("p", { className: fn.paragraph, children: n });
22
22
  }
23
- const M = typeof process < "u" && process.env.NODE_ENV !== "production", z = /* @__PURE__ */ new Set();
24
- function T(n) {
25
- z.has(n) || (z.add(n), console.warn(`[@smartyweb/ui] ${n}`));
23
+ const H = typeof process < "u" && process.env.NODE_ENV !== "production", E = /* @__PURE__ */ new Set();
24
+ function C(n) {
25
+ E.has(n) || (E.add(n), console.warn(`[@smartyweb/ui] ${n}`));
26
26
  }
27
- function dn(n) {
27
+ function _n(n) {
28
28
  if (typeof n == "string") return `<${n}>`;
29
29
  if (typeof n == "function") return `<${n.name || "Component"}>`;
30
30
  if (typeof n == "object" && n !== null && "displayName" in n) {
@@ -33,197 +33,211 @@ function dn(n) {
33
33
  }
34
34
  return "an unknown element";
35
35
  }
36
- function W(n, e) {
37
- for (const t of D.toArray(n)) {
38
- if (!E(t)) {
36
+ function U(n, e) {
37
+ for (const t of A.toArray(n)) {
38
+ if (!W(t)) {
39
39
  if (typeof t != "string" && typeof t != "number") continue;
40
- const s = String(t).trim();
41
- if (s === "") continue;
42
- T(
43
- `<UnorderedList> received the text ${JSON.stringify(s.slice(0, 40))} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`
40
+ const i = String(t).trim();
41
+ if (i === "") continue;
42
+ C(
43
+ `<UnorderedList> received the text ${JSON.stringify(i.slice(0, 40))} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`
44
44
  );
45
45
  continue;
46
46
  }
47
- if (t.type === B) {
48
- const { children: s } = t.props;
49
- W(s, e);
47
+ if (t.type === F) {
48
+ const { children: i } = t.props;
49
+ U(i, e);
50
50
  continue;
51
51
  }
52
- e(t.type) || t.type === "li" || T(
53
- `<UnorderedList> received ${dn(t.type)} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`
52
+ e(t.type) || t.type === "li" || C(
53
+ `<UnorderedList> received ${_n(t.type)} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`
54
54
  );
55
55
  }
56
56
  }
57
- function un() {
58
- T(
57
+ function mn() {
58
+ C(
59
59
  "<ListItem> was rendered outside of an <UnorderedList>. It renders an <li>, which browsers only style correctly inside a list."
60
60
  );
61
61
  }
62
- const fn = "_list_1p627_1", _n = "_item_1p627_14", R = {
63
- list: fn,
64
- item: _n
65
- }, F = $(!1);
66
- function q({ children: n }) {
67
- const e = w(F);
68
- return M && !e && un(), /* @__PURE__ */ i("li", { className: R.item, children: n });
62
+ const pn = "_list_1p627_1", hn = "_item_1p627_14", V = {
63
+ list: pn,
64
+ item: hn
65
+ }, P = k(!1);
66
+ function J({ children: n }) {
67
+ const e = O(P);
68
+ return H && !e && mn(), /* @__PURE__ */ s("li", { className: V.item, children: n });
69
69
  }
70
- q.isSmartyListItem = !0;
71
- function mn(n) {
72
- return n === q ? !0 : typeof n == "function" && n.isSmartyListItem === !0;
70
+ J.isSmartyListItem = !0;
71
+ function yn(n) {
72
+ return n === J ? !0 : typeof n == "function" && n.isSmartyListItem === !0;
73
73
  }
74
- function ke({ children: n }) {
75
- return M && W(n, mn), /* @__PURE__ */ i(F, { value: !0, children: /* @__PURE__ */ i("ul", { role: "list", className: R.list, children: n }) });
76
- }
77
- const pn = "_button_81qo0_1", hn = "_sm_81qo0_26", yn = "_primary_81qo0_33", vn = "_secondary_81qo0_49", gn = "_negative_81qo0_68", k = {
78
- button: pn,
79
- sm: hn,
80
- primary: yn,
81
- secondary: vn,
82
- negative: gn
83
- };
84
- function Oe({
85
- as: n = "button",
86
- variant: e = "primary",
87
- size: t = "default",
88
- href: s,
89
- openInNewTab: a,
90
- disabled: l,
91
- type: o,
92
- onClick: d,
93
- children: u
94
- }) {
95
- const m = [k.button, k[e], t === "sm" && k.sm].filter(Boolean).join(" ");
96
- return /* @__PURE__ */ i(
97
- n,
98
- {
99
- className: m,
100
- href: s,
101
- target: a ? "_blank" : void 0,
102
- rel: a ? "noopener noreferrer" : void 0,
103
- disabled: l,
104
- type: o,
105
- onClick: d,
106
- children: u
107
- }
108
- );
74
+ function Oe({ children: n }) {
75
+ return H && U(n, yn), /* @__PURE__ */ s(P, { value: !0, children: /* @__PURE__ */ s("ul", { role: "list", className: V.list, children: n }) });
109
76
  }
110
- const Nn = "_link_1m7hb_1", bn = "_accent_1m7hb_28", $n = "_disabled_1m7hb_38", wn = "_newTabNote_1m7hb_48", N = {
111
- link: Nn,
77
+ const vn = "_link_1m7hb_1", bn = "_accent_1m7hb_28", Nn = "_disabled_1m7hb_38", gn = "_newTabNote_1m7hb_48", $ = {
78
+ link: vn,
112
79
  accent: bn,
113
- disabled: $n,
114
- newTabNote: wn
115
- }, H = $(null);
116
- function Te({ component: n, children: e }) {
117
- return /* @__PURE__ */ i(H, { value: n, children: e });
118
- }
119
- function Ln() {
120
- return w(H);
121
- }
122
- const kn = " (opens in new tab)", On = /\.[a-z][a-z\d]{1,4}$/;
123
- function Tn(n, e) {
80
+ disabled: Nn,
81
+ newTabNote: gn
82
+ }, wn = /\.[a-z][a-z\d]{1,4}$/;
83
+ function K(n, e) {
124
84
  if (e) return "download";
125
85
  if (/^(https?:)?\/\//i.test(n)) return "external";
126
86
  if (n.startsWith("#") || /^[a-z][a-z\d+.-]*:/i.test(n)) return "plain";
127
87
  const t = (n.split(/[?#]/)[0] ?? "").toLowerCase();
128
- return On.test(t) ? "plain" : "router";
88
+ return wn.test(t) ? "plain" : "router";
89
+ }
90
+ function X() {
91
+ return /* @__PURE__ */ s("span", { className: $.newTabNote, children: " (opens in new tab)" });
92
+ }
93
+ const q = k(null);
94
+ function Te({ component: n, children: e }) {
95
+ return /* @__PURE__ */ s(q, { value: n, children: e });
96
+ }
97
+ function G() {
98
+ return O(q);
129
99
  }
130
- function Cn({
100
+ const $n = "_button_1391k_1", Ln = "_sm_1391k_26", kn = "_primary_1391k_33", On = "_secondary_1391k_49", Tn = "_negative_1391k_68", T = {
101
+ button: $n,
102
+ sm: Ln,
103
+ primary: kn,
104
+ secondary: On,
105
+ negative: Tn
106
+ };
107
+ function xe({
108
+ as: n,
109
+ variant: e = "primary",
110
+ size: t = "default",
111
+ href: i,
112
+ openInNewTab: c = !1,
113
+ download: u = !1,
114
+ disabled: o,
115
+ type: d = "button",
116
+ onClick: f,
117
+ children: l
118
+ }) {
119
+ const m = G(), g = [T.button, T[e], t === "sm" && T.sm].filter(Boolean).join(" ");
120
+ if (i === void 0 || o)
121
+ return /* @__PURE__ */ s("button", { className: g, type: d, disabled: o, onClick: f, children: l });
122
+ const v = K(i, u), p = v === "external" || c && v !== "download";
123
+ return (
124
+ // The router link comes from context, set once at the app root, so it keeps its
125
+ // identity across renders — the remount this rule guards against cannot happen.
126
+ // eslint-disable-next-line react-hooks/static-components
127
+ /* @__PURE__ */ _(
128
+ n ?? (v === "router" && m ? m : "a"),
129
+ {
130
+ className: g,
131
+ href: i,
132
+ target: p ? "_blank" : void 0,
133
+ rel: p ? "noopener noreferrer" : void 0,
134
+ download: v === "download" ? "" : void 0,
135
+ onClick: f,
136
+ children: [
137
+ l,
138
+ p && /* @__PURE__ */ s(X, {})
139
+ ]
140
+ }
141
+ )
142
+ );
143
+ }
144
+ function xn({
131
145
  variant: n = "default",
132
146
  href: e,
133
147
  download: t = !1,
134
- disabled: s,
135
- onClick: a,
136
- children: l
148
+ disabled: i,
149
+ onClick: c,
150
+ children: u
137
151
  }) {
138
- const o = Ln(), u = [N.link, n === "accent" && N.accent, s && N.disabled].filter(Boolean).join(" ");
152
+ const o = G(), f = [$.link, n === "accent" && $.accent, i && $.disabled].filter(Boolean).join(" ");
139
153
  if (e === void 0)
140
- return /* @__PURE__ */ i(
154
+ return /* @__PURE__ */ s(
141
155
  "button",
142
156
  {
143
157
  type: "button",
144
- className: u,
145
- disabled: s,
146
- onClick: s ? void 0 : a,
147
- "aria-disabled": s,
148
- children: l
158
+ className: f,
159
+ disabled: i,
160
+ onClick: i ? void 0 : c,
161
+ "aria-disabled": i,
162
+ children: u
149
163
  }
150
164
  );
151
- const f = Tn(e, t);
152
- return f === "external" ? /* @__PURE__ */ _(
165
+ const l = K(e, t);
166
+ return l === "external" ? /* @__PURE__ */ _(
153
167
  "a",
154
168
  {
155
- className: u,
169
+ className: f,
156
170
  href: e,
157
171
  target: "_blank",
158
172
  rel: "noopener noreferrer",
159
- onClick: a,
173
+ onClick: c,
160
174
  children: [
161
- l,
162
- /* @__PURE__ */ i("span", { className: N.newTabNote, children: kn })
175
+ u,
176
+ /* @__PURE__ */ s(X, {})
163
177
  ]
164
178
  }
165
179
  ) : (
166
180
  // The router link comes from context, set once at the app root, so it keeps its
167
181
  // identity across renders — the remount this rule guards against cannot happen.
168
182
  // eslint-disable-next-line react-hooks/static-components
169
- /* @__PURE__ */ i(
170
- f === "router" && o ? o : "a",
183
+ /* @__PURE__ */ s(
184
+ l === "router" && o ? o : "a",
171
185
  {
172
- className: u,
186
+ className: f,
173
187
  href: e,
174
- download: f === "download" ? "" : void 0,
175
- onClick: a,
176
- children: l
188
+ download: l === "download" ? "" : void 0,
189
+ onClick: c,
190
+ children: u
177
191
  }
178
192
  )
179
193
  );
180
194
  }
181
- const xn = typeof process < "u" && process.env.NODE_ENV !== "production", I = /* @__PURE__ */ new Set();
195
+ const Cn = typeof process < "u" && process.env.NODE_ENV !== "production", M = /* @__PURE__ */ new Set();
182
196
  function jn(n) {
183
- I.has(n) || (I.add(n), console.warn(`[@smartyweb/ui] ${n}`));
197
+ M.has(n) || (M.add(n), console.warn(`[@smartyweb/ui] ${n}`));
184
198
  }
185
- function zn() {
199
+ function In() {
186
200
  jn(
187
201
  "<SideNav> was rendered with no accessible name. Pass `label` so screen reader users can tell this nav apart from the other navigation landmarks on the page."
188
202
  );
189
203
  }
190
- const In = "_nav_dxkjl_3", Sn = "_list_dxkjl_7", Dn = "_item_dxkjl_16", En = "_link_dxkjl_20", Bn = "_current_dxkjl_48", v = {
191
- nav: In,
192
- list: Sn,
193
- item: Dn,
204
+ const Sn = "_nav_dxkjl_3", Dn = "_list_dxkjl_7", Bn = "_item_dxkjl_16", En = "_link_dxkjl_20", Mn = "_current_dxkjl_48", N = {
205
+ nav: Sn,
206
+ list: Dn,
207
+ item: Bn,
194
208
  link: En,
195
- current: Bn
196
- }, U = $(null);
209
+ current: Mn
210
+ }, Z = k(null);
197
211
  function Ce({ label: n, current: e, children: t }) {
198
- return xn && !n?.trim() && zn(), /* @__PURE__ */ i("nav", { className: v.nav, "aria-label": n, children: /* @__PURE__ */ i(U, { value: e ?? null, children: /* @__PURE__ */ i("ul", { className: v.list, children: t }) }) });
212
+ return Cn && !n?.trim() && In(), /* @__PURE__ */ s("nav", { className: N.nav, "aria-label": n, children: /* @__PURE__ */ s(Z, { value: e ?? null, children: /* @__PURE__ */ s("ul", { className: N.list, children: t }) }) });
199
213
  }
200
- function xe({
214
+ function je({
201
215
  as: n = "a",
202
216
  href: e,
203
217
  current: t,
204
- openInNewTab: s,
205
- onClick: a,
206
- children: l
218
+ openInNewTab: i,
219
+ onClick: c,
220
+ children: u
207
221
  }) {
208
- const o = w(U), d = t ?? (o !== null && o === e), u = [v.link, d && v.current].filter(Boolean).join(" ");
209
- return /* @__PURE__ */ i("li", { className: v.item, children: /* @__PURE__ */ i(
222
+ const o = O(Z), d = t ?? (o !== null && o === e), f = [N.link, d && N.current].filter(Boolean).join(" ");
223
+ return /* @__PURE__ */ s("li", { className: N.item, children: /* @__PURE__ */ s(
210
224
  n,
211
225
  {
212
- className: u,
226
+ className: f,
213
227
  href: e,
214
- target: s ? "_blank" : void 0,
215
- rel: s ? "noopener noreferrer" : void 0,
216
- onClick: a,
228
+ target: i ? "_blank" : void 0,
229
+ rel: i ? "noopener noreferrer" : void 0,
230
+ onClick: c,
217
231
  "aria-current": d ? "location" : void 0,
218
- children: l
232
+ children: u
219
233
  }
220
234
  ) });
221
235
  }
222
- const V = typeof process < "u" && process.env.NODE_ENV !== "production", S = /* @__PURE__ */ new Set();
223
- function C(n) {
224
- S.has(n) || (S.add(n), console.warn(`[@smartyweb/ui] ${n}`));
236
+ const Q = typeof process < "u" && process.env.NODE_ENV !== "production", R = /* @__PURE__ */ new Set();
237
+ function j(n) {
238
+ R.has(n) || (R.add(n), console.warn(`[@smartyweb/ui] ${n}`));
225
239
  }
226
- function An(n) {
240
+ function Rn(n) {
227
241
  if (typeof n == "string") return `<${n}>`;
228
242
  if (typeof n == "function") return `<${n.name || "Component"}>`;
229
243
  if (typeof n == "object" && n !== null && "displayName" in n) {
@@ -232,82 +246,82 @@ function An(n) {
232
246
  }
233
247
  return "an unknown element";
234
248
  }
235
- function P(n, e) {
236
- for (const t of D.toArray(n)) {
237
- if (!E(t)) {
249
+ function Y(n, e) {
250
+ for (const t of A.toArray(n)) {
251
+ if (!W(t)) {
238
252
  if (typeof t != "string" && typeof t != "number") continue;
239
- const s = String(t).trim();
240
- if (s === "") continue;
241
- C(
242
- `<TableOfContents> received the text ${JSON.stringify(s.slice(0, 40))} as a direct child. Its list may only contain entries — wrap it in <TableOfContentsLink href="#…">.`
253
+ const i = String(t).trim();
254
+ if (i === "") continue;
255
+ j(
256
+ `<TableOfContents> received the text ${JSON.stringify(i.slice(0, 40))} as a direct child. Its list may only contain entries — wrap it in <TableOfContentsLink href="#…">.`
243
257
  );
244
258
  continue;
245
259
  }
246
- if (t.type === B) {
247
- const { children: s } = t.props;
248
- P(s, e);
260
+ if (t.type === F) {
261
+ const { children: i } = t.props;
262
+ Y(i, e);
249
263
  continue;
250
264
  }
251
- e(t.type) || t.type === "li" || C(
252
- `<TableOfContents> received ${An(t.type)} as a direct child. Its list may only contain entries — use <TableOfContentsLink href="#…"> instead.`
265
+ e(t.type) || t.type === "li" || j(
266
+ `<TableOfContents> received ${Rn(t.type)} as a direct child. Its list may only contain entries — use <TableOfContentsLink href="#…"> instead.`
253
267
  );
254
268
  }
255
269
  }
256
- function Mn() {
257
- C(
270
+ function An() {
271
+ j(
258
272
  "<TableOfContentsLink> was rendered outside of a <TableOfContents>. It renders an <li>, which browsers only style correctly inside a list."
259
273
  );
260
274
  }
261
- const Wn = "_nav_1us0j_1", Rn = "_heading_1us0j_8", Fn = "_list_1us0j_19", qn = "_item_1us0j_28", b = {
275
+ const Wn = "_nav_1us0j_1", Fn = "_heading_1us0j_8", zn = "_list_1us0j_19", Hn = "_item_1us0j_28", L = {
262
276
  nav: Wn,
263
- heading: Rn,
264
- list: Fn,
265
- item: qn
266
- }, J = $(!1);
267
- function K({ href: n, children: e }) {
268
- const t = w(J);
269
- return V && !t && Mn(), /* @__PURE__ */ i("li", { className: b.item, children: /* @__PURE__ */ i(Cn, { href: n, children: e }) });
270
- }
271
- K.isSmartyTableOfContentsLink = !0;
272
- function Hn(n) {
273
- return n === K ? !0 : typeof n == "function" && n.isSmartyTableOfContentsLink === !0;
274
- }
275
- function je({ title: n = "Table of contents", children: e }) {
276
- const t = x();
277
- return V && P(e, Hn), /* @__PURE__ */ _("nav", { className: b.nav, "aria-labelledby": t, children: [
278
- /* @__PURE__ */ i("h2", { id: t, className: b.heading, children: n }),
279
- /* @__PURE__ */ i(J, { value: !0, children: /* @__PURE__ */ i("ul", { role: "list", className: b.list, children: e }) })
277
+ heading: Fn,
278
+ list: zn,
279
+ item: Hn
280
+ }, nn = k(!1);
281
+ function en({ href: n, children: e }) {
282
+ const t = O(nn);
283
+ return Q && !t && An(), /* @__PURE__ */ s("li", { className: L.item, children: /* @__PURE__ */ s(xn, { href: n, children: e }) });
284
+ }
285
+ en.isSmartyTableOfContentsLink = !0;
286
+ function Un(n) {
287
+ return n === en ? !0 : typeof n == "function" && n.isSmartyTableOfContentsLink === !0;
288
+ }
289
+ function Ie({ title: n = "Table of contents", children: e }) {
290
+ const t = I();
291
+ return Q && Y(e, Un), /* @__PURE__ */ _("nav", { className: L.nav, "aria-labelledby": t, children: [
292
+ /* @__PURE__ */ s("h2", { id: t, className: L.heading, children: n }),
293
+ /* @__PURE__ */ s(nn, { value: !0, children: /* @__PURE__ */ s("ul", { role: "list", className: L.list, children: e }) })
280
294
  ] });
281
295
  }
282
- const Un = "_hero_93692_11", Vn = "_layout_93692_16", Pn = "_content_93692_21", Jn = "_titleLine_93692_25", Kn = "_titleWord_93692_29", Xn = "_description_93692_35", Gn = "_media_93692_48", h = {
283
- hero: Un,
284
- layout: Vn,
285
- content: Pn,
286
- titleLine: Jn,
287
- titleWord: Kn,
288
- description: Xn,
296
+ const Vn = "_hero_93692_11", Pn = "_layout_93692_16", Jn = "_content_93692_21", Kn = "_titleLine_93692_25", Xn = "_titleWord_93692_29", qn = "_description_93692_35", Gn = "_media_93692_48", y = {
297
+ hero: Vn,
298
+ layout: Pn,
299
+ content: Jn,
300
+ titleLine: Kn,
301
+ titleWord: Xn,
302
+ description: qn,
289
303
  media: Gn
290
304
  };
291
305
  function Zn(n) {
292
306
  return n.replace(/([- ])/g, (e) => `${e === " " ? " " : e}|split|`).split("|split|");
293
307
  }
294
308
  const Qn = (n) => ({ "--hero-index": n });
295
- function ze({ title: n, description: e, media: t }) {
296
- const s = Array.isArray(n);
297
- let a = 0;
298
- const l = (s ? n : [n]).map(
299
- (o) => Zn(o).map((d) => ({ word: d, index: a++ }))
309
+ function Se({ title: n, description: e, media: t }) {
310
+ const i = Array.isArray(n);
311
+ let c = 0;
312
+ const u = (i ? n : [n]).map(
313
+ (o) => Zn(o).map((d) => ({ word: d, index: c++ }))
300
314
  );
301
- return /* @__PURE__ */ i("section", { className: h.hero, children: /* @__PURE__ */ _("div", { className: h.layout, children: [
302
- /* @__PURE__ */ i("div", { className: h.media, children: t }),
303
- /* @__PURE__ */ _("div", { className: h.content, children: [
304
- /* @__PURE__ */ i(on, { children: l.map((o, d) => /* @__PURE__ */ i("span", { className: s ? h.titleLine : void 0, children: o.map(({ word: u, index: f }) => /* @__PURE__ */ i("span", { className: h.titleWord, style: Qn(f), children: u }, f)) }, d)) }),
305
- /* @__PURE__ */ i("p", { className: h.description, children: e })
315
+ return /* @__PURE__ */ s("section", { className: y.hero, children: /* @__PURE__ */ _("div", { className: y.layout, children: [
316
+ /* @__PURE__ */ s("div", { className: y.media, children: t }),
317
+ /* @__PURE__ */ _("div", { className: y.content, children: [
318
+ /* @__PURE__ */ s(cn, { children: u.map((o, d) => /* @__PURE__ */ s("span", { className: i ? y.titleLine : void 0, children: o.map(({ word: f, index: l }) => /* @__PURE__ */ s("span", { className: y.titleWord, style: Qn(l), children: f }, l)) }, d)) }),
319
+ /* @__PURE__ */ s("p", { className: y.description, children: e })
306
320
  ] })
307
321
  ] }) });
308
322
  }
309
323
  function Yn() {
310
- return /* @__PURE__ */ i("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ i(
324
+ return /* @__PURE__ */ s("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ s(
311
325
  "path",
312
326
  {
313
327
  fillRule: "evenodd",
@@ -317,135 +331,136 @@ function Yn() {
317
331
  }
318
332
  ) });
319
333
  }
320
- const ne = "_field_7z5g3_1", ee = "_error_7z5g3_17", te = "_message_7z5g3_21", ie = "_content_7z5g3_36", se = "_reveal_7z5g3_43", oe = "_label_7z5g3_53", re = "_tags_7z5g3_64", ae = "_input_7z5g3_71", ce = "_counter_7z5g3_88", le = "_empty_7z5g3_100", de = "_disabled_7z5g3_127", ue = "_chip_7z5g3_132", fe = "_chipText_7z5g3_153", _e = "_remove_7z5g3_158", me = "_invalid_7z5g3_169", c = {
334
+ const ne = "_field_14suf_1", ee = "_error_14suf_17", te = "_message_14suf_21", se = "_content_14suf_36", ie = "_reveal_14suf_43", oe = "_label_14suf_53", re = "_tags_14suf_64", ae = "_chips_14suf_71", ce = "_input_14suf_78", le = "_counter_14suf_95", ue = "_empty_14suf_107", de = "_disabled_14suf_134", fe = "_chip_14suf_71", _e = "_chipText_14suf_160", me = "_remove_14suf_165", pe = "_invalid_14suf_176", a = {
321
335
  field: ne,
322
336
  error: ee,
323
337
  message: te,
324
- content: ie,
325
- reveal: se,
338
+ content: se,
339
+ reveal: ie,
326
340
  label: oe,
327
341
  tags: re,
328
- input: ae,
329
- counter: ce,
330
- empty: le,
342
+ chips: ae,
343
+ input: ce,
344
+ counter: le,
345
+ empty: ue,
331
346
  disabled: de,
332
- chip: ue,
333
- chipText: fe,
334
- remove: _e,
335
- invalid: me
347
+ chip: fe,
348
+ chipText: _e,
349
+ remove: me,
350
+ invalid: pe
336
351
  };
337
- function pe({ children: n, invalid: e, onRemove: t }) {
338
- return /* @__PURE__ */ _("span", { className: [c.chip, e && c.invalid].filter(Boolean).join(" "), children: [
339
- /* @__PURE__ */ i("span", { className: c.chipText, children: n }),
340
- t && /* @__PURE__ */ i(
352
+ function he({ children: n, invalid: e, onRemove: t }) {
353
+ return /* @__PURE__ */ _("li", { className: [a.chip, e && a.invalid].filter(Boolean).join(" "), children: [
354
+ /* @__PURE__ */ s("span", { className: a.chipText, children: n }),
355
+ t && /* @__PURE__ */ s(
341
356
  "button",
342
357
  {
343
358
  type: "button",
344
- className: c.remove,
359
+ className: a.remove,
345
360
  "aria-label": `Remove ${n}${e ? " (invalid)" : ""}`,
346
361
  onClick: t,
347
- children: /* @__PURE__ */ i(Yn, {})
362
+ children: /* @__PURE__ */ s(Yn, {})
348
363
  }
349
364
  )
350
365
  ] });
351
366
  }
352
- const O = 100;
353
- function Ie({
367
+ const x = 100;
368
+ function De({
354
369
  label: n,
355
370
  value: e,
356
371
  onChange: t,
357
- disabled: s = !1,
358
- isTagInvalid: a,
359
- onInputChange: l,
372
+ disabled: i = !1,
373
+ isTagInvalid: c,
374
+ onInputChange: u,
360
375
  error: o
361
376
  }) {
362
- const d = x(), u = `${d}-message`, f = A(null), [m, X] = en(""), G = e.length >= O, Z = (r) => {
363
- X(r), l?.(r);
364
- }, L = (r) => {
365
- const p = r.split(/[\s,]+/), j = p.pop() ?? "", g = p.filter(Boolean).slice(0, Math.max(0, O - e.length));
366
- g.length && t([...e, ...g]), Z(j);
367
- }, Q = (r) => {
368
- r.key === "Enter" && m && !r.nativeEvent.isComposing ? (r.preventDefault(), L(`${m},`)) : r.key === "Backspace" && !m && e.length && t(e.slice(0, -1));
369
- }, Y = (r) => {
370
- s || r.target === f.current || r.target.closest("button") || (r.preventDefault(), f.current?.focus());
371
- }, nn = [
372
- c.field,
373
- !e.length && c.empty,
374
- s && c.disabled,
375
- o && c.error
377
+ const d = I(), f = `${d}-message`, l = z(null), [m, S] = on(""), g = e.length >= x, v = (r) => {
378
+ S(r), u?.(r);
379
+ }, p = (r) => {
380
+ const h = r.split(/[\s,]+/), B = h.pop() ?? "", w = h.filter(Boolean).slice(0, Math.max(0, x - e.length));
381
+ w.length && t([...e, ...w]), v(B);
382
+ }, D = (r) => {
383
+ r.key === "Enter" && m && !r.nativeEvent.isComposing ? (r.preventDefault(), p(`${m},`)) : r.key === "Backspace" && !m && e.length && t(e.slice(0, -1));
384
+ }, tn = (r) => {
385
+ i || r.target === l.current || r.target.closest("button") || (r.preventDefault(), l.current?.focus());
386
+ }, sn = [
387
+ a.field,
388
+ !e.length && a.empty,
389
+ i && a.disabled,
390
+ o && a.error
376
391
  ].filter(Boolean).join(" ");
377
392
  return /* @__PURE__ */ _("div", { children: [
378
- /* @__PURE__ */ _("div", { className: nn, onMouseDown: Y, children: [
379
- /* @__PURE__ */ _("div", { className: c.content, children: [
380
- /* @__PURE__ */ i("label", { htmlFor: d, className: c.label, children: n }),
381
- /* @__PURE__ */ i("div", { className: c.reveal, children: /* @__PURE__ */ _("div", { className: c.tags, children: [
382
- e.map((r, p) => /* @__PURE__ */ i(
383
- pe,
393
+ /* @__PURE__ */ _("div", { className: sn, onMouseDown: tn, children: [
394
+ /* @__PURE__ */ _("div", { className: a.content, children: [
395
+ /* @__PURE__ */ s("label", { htmlFor: d, className: a.label, children: n }),
396
+ /* @__PURE__ */ s("div", { className: a.reveal, children: /* @__PURE__ */ _("div", { className: a.tags, children: [
397
+ e.length > 0 && /* @__PURE__ */ s("ul", { role: "list", className: a.chips, children: e.map((r, h) => /* @__PURE__ */ s(
398
+ he,
384
399
  {
385
- invalid: a?.(r, p) ?? !1,
386
- onRemove: s ? void 0 : () => {
387
- t(e.filter((j, g) => g !== p)), p === e.length - 1 && f.current?.focus();
400
+ invalid: c?.(r, h) ?? !1,
401
+ onRemove: i ? void 0 : () => {
402
+ t(e.filter((B, w) => w !== h)), h === e.length - 1 && l.current?.focus();
388
403
  },
389
404
  children: r
390
405
  },
391
- p
392
- )),
393
- /* @__PURE__ */ i(
406
+ h
407
+ )) }),
408
+ /* @__PURE__ */ s(
394
409
  "input",
395
410
  {
396
- ref: f,
411
+ ref: l,
397
412
  id: d,
398
- className: c.input,
413
+ className: a.input,
399
414
  size: 1,
400
415
  value: m,
401
- disabled: s,
402
- readOnly: G,
416
+ disabled: i,
417
+ readOnly: g,
403
418
  "aria-invalid": o ? !0 : void 0,
404
- "aria-describedby": o ? u : void 0,
419
+ "aria-describedby": o ? f : void 0,
405
420
  onChange: (r) => {
406
- L(r.target.value);
421
+ p(r.target.value);
407
422
  },
408
- onKeyDown: Q,
423
+ onKeyDown: D,
409
424
  onBlur: () => {
410
- L(`${m},`);
425
+ p(`${m},`);
411
426
  }
412
427
  }
413
428
  )
414
429
  ] }) })
415
430
  ] }),
416
- /* @__PURE__ */ i("div", { className: c.reveal, children: /* @__PURE__ */ _("p", { className: c.counter, children: [
431
+ /* @__PURE__ */ s("div", { className: a.reveal, children: /* @__PURE__ */ _("p", { className: a.counter, children: [
417
432
  e.length,
418
433
  " / ",
419
- O
434
+ x
420
435
  ] }) })
421
436
  ] }),
422
- /* @__PURE__ */ i("p", { id: u, className: c.message, "aria-live": "polite", children: o })
437
+ /* @__PURE__ */ s("p", { id: f, className: a.message, "aria-live": "polite", children: o })
423
438
  ] });
424
439
  }
425
- const he = "_field_1hc5h_1", ye = "_label_1hc5h_16", ve = "_reveal_1hc5h_27", ge = "_input_1hc5h_37", Ne = "_empty_1hc5h_55", y = {
426
- field: he,
427
- label: ye,
428
- reveal: ve,
429
- input: ge,
430
- empty: Ne
440
+ const ye = "_field_otub4_1", ve = "_label_otub4_16", be = "_reveal_otub4_27", Ne = "_input_otub4_37", ge = "_empty_otub4_56", b = {
441
+ field: ye,
442
+ label: ve,
443
+ reveal: be,
444
+ input: Ne,
445
+ empty: ge
431
446
  };
432
- function Se({ label: n, value: e, onChange: t }) {
433
- const s = x(), a = A(null), l = (o) => {
434
- o.target !== a.current && (o.preventDefault(), a.current?.focus());
447
+ function Be({ label: n, value: e, onChange: t }) {
448
+ const i = I(), c = z(null), u = (o) => {
449
+ o.target !== c.current && (o.preventDefault(), c.current?.focus());
435
450
  };
436
451
  return /* @__PURE__ */ _(
437
452
  "div",
438
453
  {
439
- className: [y.field, !e && y.empty].filter(Boolean).join(" "),
440
- onMouseDown: l,
454
+ className: [b.field, !e && b.empty].filter(Boolean).join(" "),
455
+ onMouseDown: u,
441
456
  children: [
442
- /* @__PURE__ */ i("label", { htmlFor: s, className: y.label, children: n }),
443
- /* @__PURE__ */ i("div", { className: y.reveal, children: /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(
457
+ /* @__PURE__ */ s("label", { htmlFor: i, className: b.label, children: n }),
458
+ /* @__PURE__ */ s("div", { className: b.reveal, children: /* @__PURE__ */ s("div", { children: /* @__PURE__ */ s(
444
459
  "input",
445
460
  {
446
- ref: a,
447
- id: s,
448
- className: y.input,
461
+ ref: c,
462
+ id: i,
463
+ className: b.input,
449
464
  value: e,
450
465
  onChange: (o) => {
451
466
  t(o.target.value);
@@ -457,19 +472,19 @@ function Se({ label: n, value: e, onChange: t }) {
457
472
  );
458
473
  }
459
474
  export {
460
- Oe as Button,
461
- on as H1,
462
- we as H2,
463
- ze as Hero,
464
- Cn as Link,
475
+ xe as Button,
476
+ cn as H1,
477
+ Le as H2,
478
+ Se as Hero,
479
+ xn as Link,
465
480
  Te as LinkProvider,
466
- q as ListItem,
467
- Ie as MultitagField,
468
- Le as Paragraph,
481
+ J as ListItem,
482
+ De as MultitagField,
483
+ ke as Paragraph,
469
484
  Ce as SideNav,
470
- xe as SideNavLink,
471
- je as TableOfContents,
472
- K as TableOfContentsLink,
473
- Se as TextField,
474
- ke as UnorderedList
485
+ je as SideNavLink,
486
+ Ie as TableOfContents,
487
+ en as TableOfContentsLink,
488
+ Be as TextField,
489
+ Oe as UnorderedList
475
490
  };
package/dist/ui.css CHANGED
@@ -1 +1 @@
1
- :root{--font-desktop-heading: TT Hoves Pro;--font-desktop-paragraph: TT Hoves Pro;--font-desktop-buttons: Inter;--font-desktop-body-inter: Inter;--font-desktop-body-tt-hoves: TT Hoves Pro;--font-desktop-caption: Inter;--font-desktop-numbers: TT Hoves Pro;--font-desktop-code: Hack;--h-extra-desktop-font-size: 6rem;--h-extra-desktop-line-height: 6.625rem;--h-extra-desktop-letter-spacing: -.03em;--h1-desktop-letter-spacing: -.02em;--h1-desktop-line-height: 4rem;--h1-desktop-font-size: 4rem;--h2-desktop-font-size: 3.25rem;--h2-desktop-letter-spacing: -.02em;--h2-desktop-line-height: 3.5625rem;--h3-desktop-letter-spacing: -.02em;--h3-desktop-font-size: 2.75rem;--h3-desktop-line-height: 3rem;--h4-desktop-letter-spacing: -.01em;--h4-desktop-font-size: 2.25rem;--h4-desktop-line-height: 2.6875rem;--h5-desktop-letter-spacing: -.01em;--h5-desktop-font-size: 1.875rem;--h5-desktop-line-height: 2.0625rem;--h6-desktop-font-size: 1.75rem;--h6-desktop-letter-spacing: -.01em;--h6-desktop-line-height: 1.9375rem;--h7-desktop-font-size: 1.5rem;--h7-desktop-letter-spacing: -.01em;--h7-desktop-line-height: 1.75rem;--paragraph-desktop-font-size: 1.5rem;--paragraph-desktop-line-height: 2.25rem;--paragraph-desktop-letter-spacing: -.01em;--button-lg-desktop-font-size: 1.25rem;--button-lg-desktop-line-height: 1.5rem;--button-lg-desktop-letter-spacing: -.02em;--button-md-desktop-font-size: 1.0625rem;--button-md-desktop-line-height: 1.5rem;--button-md-desktop-letter-spacing: -.02em;--button-sm-desktop-font-size: .875rem;--button-sm-desktop-line-height: 1.5rem;--button-sm-desktop-letter-spacing: -.01em;--body-lg-tt-hoves-desktop-font-size: 1.125rem;--body-lg-tt-hoves-desktop-line-height: 1.5rem;--body-lg-tt-hoves-desktop-letter-spacing: -.01em;--body-lg-inter-desktop-font-size: 1.25rem;--body-lg-inter-desktop-line-height: 1.875rem;--body-lg-inter-desktop-letter-spacing: -.02em;--body-md-tt-hoves-desktop-letter-spacing: -.01em;--body-md-tt-hoves-desktop-font-size: 1rem;--body-md-tt-hoves-desktop-line-height: 1.375rem;--body-md-inter-desktop-letter-spacing: -.02em;--body-md-inter-desktop-font-size: 1rem;--body-md-inter-desktop-line-height: 1.5rem;--body-sm-desktop-letter-spacing: -.01em;--body-sm-desktop-font-size: .875rem;--body-sm-desktop-line-height: 1.25rem;--caption-lg-desktop-font-size: 1rem;--caption-lg-desktop-letter-spacing: -.01em;--caption-lg-desktop-line-height: 1.5rem;--caption-sm-desktop-font-size: .75rem;--caption-sm-desktop-line-height: 1.125rem;--caption-sm-desktop-letter-spacing: -.02em;--caption-sm-bold-desktop-font-size: .75rem;--caption-sm-bold-desktop-line-height: 1rem;--caption-sm-bold-desktop-letter-spacing: -.01em;--caption-uppercase-desktop-line-height: 1rem;--caption-uppercase-desktop-letter-spacing: .04em;--caption-uppercase-desktop-font-size: .8125rem;--numbers-desktop-line-height: 1.375rem;--numbers-desktop-letter-spacing: .04em;--numbers-desktop-font-size: 1rem;--special-styles-code-desktop-line-height: 1.5625rem;--special-styles-code-desktop-font-size: 1.125rem;--special-styles-code-desktop-letter-spacing: 0;--font-tablet-heading: TT Hoves Pro;--font-tablet-paragraph: TT Hoves Pro;--font-tablet-buttons: Inter;--font-tablet-body-inter: Inter;--font-tablet-body-tt-hoves: TT Hoves Pro;--font-tablet-caption: Inter;--font-tablet-numbers: TT Hoves Pro;--font-tablet-code: Hack;--h-extra-tablet-font-size: 6.875rem;--h-extra-tablet-line-height: 7.5625rem;--h-extra-tablet-letter-spacing: -.03em;--h1-tablet-letter-spacing: -.02em;--h1-tablet-line-height: 4.4rem;--h1-tablet-font-size: 4rem;--h2-tablet-font-size: 3rem;--h2-tablet-letter-spacing: -.02em;--h2-tablet-line-height: 3.3125rem;--h3-tablet-letter-spacing: -.02em;--h3-tablet-font-size: 2.5rem;--h3-tablet-line-height: 2.75rem;--h4-tablet-letter-spacing: -.02em;--h4-tablet-font-size: 2.25rem;--h4-tablet-line-height: 2.6875rem;--h5-tablet-letter-spacing: -.01em;--h5-tablet-font-size: 2rem;--h5-tablet-line-height: 2.1875rem;--h6-tablet-font-size: 1.5rem;--h6-tablet-letter-spacing: -.01em;--h6-tablet-line-height: 1.625rem;--h7-tablet-font-size: 1.375rem;--h7-tablet-letter-spacing: -.01em;--h7-tablet-line-height: 1.625rem;--paragraph-tablet-font-size: 1.375rem;--paragraph-tablet-line-height: 2.0625rem;--paragraph-tablet-letter-spacing: -.01em;--button-lg-tablet-font-size: 1.125rem;--button-lg-tablet-line-height: 1.5rem;--button-lg-tablet-letter-spacing: -.02em;--button-md-tablet-font-size: 1rem;--button-md-tablet-line-height: 1.5rem;--button-md-tablet-letter-spacing: -.02em;--button-sm-tablet-font-size: .875rem;--button-sm-tablet-line-height: 1.5rem;--button-sm-tablet-letter-spacing: -.01em;--body-lg-tt-hoves-tablet-font-size: 1rem;--body-lg-tt-hoves-tablet-line-height: 1.375rem;--body-lg-tt-hoves-tablet-letter-spacing: -.01em;--body-lg-inter-tablet-font-size: 1.125rem;--body-lg-inter-tablet-line-height: 1.6875rem;--body-lg-inter-tablet-letter-spacing: -.02em;--body-md-tt-hoves-tablet-letter-spacing: -.01em;--body-md-tt-hoves-tablet-font-size: 1rem;--body-md-tt-hoves-tablet-line-height: 1.375rem;--body-md-inter-tablet-letter-spacing: -.02em;--body-md-inter-tablet-font-size: 1rem;--body-md-inter-tablet-line-height: 1.5rem;--body-sm-tablet-letter-spacing: -.01em;--body-sm-tablet-font-size: .875rem;--body-sm-tablet-line-height: 1.25rem;--caption-lg-tablet-font-size: 1rem;--caption-lg-tablet-letter-spacing: -.02em;--caption-lg-tablet-line-height: 1.5rem;--caption-sm-tablet-font-size: .75rem;--caption-sm-tablet-line-height: 1.125rem;--caption-sm-tablet-letter-spacing: -.02em;--caption-sm-bold-tablet-font-size: .75rem;--caption-sm-bold-tablet-line-height: 1rem;--caption-sm-bold-tablet-letter-spacing: -.01em;--caption-uppercase-tablet-line-height: 1rem;--caption-uppercase-tablet-letter-spacing: .04em;--caption-uppercase-tablet-font-size: .8125rem;--numbers-tablet-line-height: 1.375rem;--numbers-tablet-letter-spacing: .04em;--numbers-tablet-font-size: 1rem;--special-styles-code-tablet-line-height: 1.5625rem;--special-styles-code-tablet-font-size: 1.125rem;--special-styles-code-tablet-letter-spacing: 0;--font-mobile-heading: TT Hoves Pro;--font-mobile-paragraph: TT Hoves Pro;--font-mobile-buttons: Inter;--font-mobile-body-inter: Inter;--font-mobile-body-tt-hoves: TT Hoves Pro;--font-mobile-caption: Inter;--font-mobile-numbers: TT Hoves Pro;--font-mobile-code: Hack;--h-extra-mobile-font-size: 3.5rem;--h-extra-mobile-line-height: 3.875rem;--h-extra-mobile-letter-spacing: -.02em;--h1-mobile-letter-spacing: -.01em;--h1-mobile-line-height: 2.75rem;--h1-mobile-font-size: 2.75rem;--h2-mobile-font-size: 2.5rem;--h2-mobile-letter-spacing: -.01em;--h2-mobile-line-height: 2.75rem;--h3-mobile-letter-spacing: -.01em;--h3-mobile-font-size: 2.25rem;--h3-mobile-line-height: 2.5rem;--h4-mobile-letter-spacing: -.01em;--h4-mobile-font-size: 2rem;--h4-mobile-line-height: 2.625rem;--h5-mobile-letter-spacing: -.01em;--h5-mobile-font-size: 1.375rem;--h5-mobile-line-height: 1.5rem;--h6-mobile-font-size: 1.25rem;--h6-mobile-letter-spacing: -.01em;--h6-mobile-line-height: 1.375rem;--h7-mobile-font-size: 1.25rem;--h7-mobile-letter-spacing: -.01em;--h7-mobile-line-height: 1.5rem;--paragraph-mobile-font-size: 1.125rem;--paragraph-mobile-line-height: 1.6875rem;--paragraph-mobile-letter-spacing: -.01em;--button-lg-mobile-font-size: 1rem;--button-lg-mobile-line-height: 1.5rem;--button-lg-mobile-letter-spacing: -.01em;--button-md-mobile-font-size: .875rem;--button-md-mobile-line-height: 1.5rem;--button-md-mobile-letter-spacing: -.01em;--button-sm-mobile-font-size: .75rem;--button-sm-mobile-line-height: 1.5rem;--button-sm-mobile-letter-spacing: -.01em;--body-lg-tt-hoves-mobile-font-size: .875rem;--body-lg-tt-hoves-mobile-line-height: 1.1875rem;--body-lg-tt-hoves-mobile-letter-spacing: -.01em;--body-lg-inter-mobile-font-size: 1rem;--body-lg-inter-mobile-line-height: 1.5rem;--body-lg-inter-mobile-letter-spacing: -.01em;--body-md-tt-hoves-mobile-letter-spacing: -.01em;--body-md-tt-hoves-mobile-font-size: 1rem;--body-md-tt-hoves-mobile-line-height: 1.375rem;--body-md-inter-mobile-letter-spacing: -.01em;--body-md-inter-mobile-font-size: .875rem;--body-md-inter-mobile-line-height: 1.3125rem;--body-sm-mobile-letter-spacing: -.01em;--body-sm-mobile-font-size: .875rem;--body-sm-mobile-line-height: 1.25rem;--caption-lg-mobile-font-size: 1rem;--caption-lg-mobile-letter-spacing: -.02em;--caption-lg-mobile-line-height: 1.5rem;--caption-sm-mobile-font-size: .75rem;--caption-sm-mobile-line-height: 1.125rem;--caption-sm-mobile-letter-spacing: -.02em;--caption-sm-bold-mobile-font-size: .75rem;--caption-sm-bold-mobile-line-height: 1rem;--caption-sm-bold-mobile-letter-spacing: -.01em;--caption-uppercase-mobile-line-height: 1rem;--caption-uppercase-mobile-letter-spacing: .04em;--caption-uppercase-mobile-font-size: .75rem;--numbers-mobile-line-height: 1.375rem;--numbers-mobile-letter-spacing: .04em;--numbers-mobile-font-size: 1rem;--special-styles-code-mobile-line-height: 1.375rem;--special-styles-code-mobile-font-size: 1rem;--special-styles-code-mobile-letter-spacing: 0;--surface-invert-fill-disabled: #c7ccd4;--surface-invert-secondary: #262c36;--surface-invert-primary: #151b23;--surface-invert-fill-deep: #6e7580;--surface-base-fill: #e6e9ed;--overlay-fill-dark: #151b23b3;--surface-invert-fill-pressed: #a8b0ba;--overlay-fill-medium: #151b23a3;--surface-base-fill-light: #eff7ff;--surface-base-secondary: #f5f7fa;--surface-base-primary: #ffffff;--surface-cell-disabled: #f5f7fa80;--surface-invert-fill-dark: #a8b0ba;--surface-invert-fill-hovered: #e6e9ed;--overlay-fill: #001d7a66;--surface-invert-dark: #151b23;--surface-invert-fill-medium: #c7ccd4;--surface-invert-fill-light: #e6e9ed;--text-invert-label: #939ba6;--text-link: #0066ff;--info-text: #00546b;--text-invert-secondary: #e6e9ed;--negative-text: #8f1150;--positive-text-dark: #005925;--text-base-label: #002ea3;--text-invert-pressed: #6e7580;--premium-text: #431878;--text-link-pressed: #001d7a;--text-base-secondary-light: #939ba6;--text-invert-primary: #ffffff;--positive-text: #147536;--negative-text-dark: #6b0039;--text-invert-disabled: #49505b;--warning-text: #6b1000;--text-disabled: #001d7a66;--text-link-hovered: #004cda;--text-invert-hovered: #b7bec7;--text-base-secondary: #49505b;--text-link-light: #2d84ff;--text-link-light-hovered: #5aa1ff;--caution-text: #505900;--text-base-primary: #151b23;--border-primary-light: #5aa1ff;--border-primary-active: #001d7a;--border-invert-secondary: #d6dbe0;--border-primary-medium: #2d84ff;--border-primary: #0066ff;--border-invert-primary: #ffffff;--border-primary-hovered: #004cda;--border-base-secondary: #d6dbe0;--border-base-secondary-light: #e6e9ed;--border-base-primary: #151b23;--border-primary-disabled: #002ea31a;--border-base-light: #e2f0ff;--accent-fill-hovered: #004cda;--accent-primary-hovered: #004cda;--accent-fill: #0066ff;--accent-fill-dark: #001d7a;--accent-fill-medium-disabled: #c7ccd4;--accent-fill-pressed: #002ea3;--accent-primary-dark: #001d7a;--accent-fill-medium-hovered: #a8b0ba;--accent-primary: #0066ff;--accent-fill-disabled: #002ea31a;--accent-fill-medium: #b7bec7;--accent-fill-medium-pressed: #939ba6;--accent-link: #0039b5;--accent-fill-focused: #8fc1ff;--accent-fill-light-hovered: #001d7a12;--accent-fill-light: #e2f0ff;--positive-icon: #29954b;--negative-icon-light: #b22265;--negative-icon: #8f1150;--icon-disabled: #001d7a66;--icon-invert: #c7ccd4;--icon-primary-light-hovered: #5aa1ff;--icon-base-secondary: #6e7580;--icon-primary: #383e48;--negative-fill-light-pressed: #ffafc8;--negative-fill: #f55591;--negative-fill-dark: #6b0039;--negative-fill-medium: #ff76a6;--negative-fill-light-hovered: #ffcbdb;--negative-fill-light: #ffe8ef;--warning-fill-dark: #6b1000;--warning-fill-medium: #f89364;--warning-primary: #f5804e;--warning-fill: #ffbc98;--warning-fill-light: #ffebde;--positive-fill-dark: #005925;--positive-fill: #47cc69;--positive-fill-medium: #81eb96;--positive-fill-light: #cffad6;--premium-fill: #9560ff;--premium-fill-medium: #b292fc;--premium-fill-light: #ece5ff;--info-fill: #3dc9d1;--info-fill-medium: #63dfe5;--info-fill-light: #b0f7f7;--caution-fill: #fcf58c;--caution-fill-dark: #e4e40d;--caution-fill-light: #fcf9d7;--disabled-progress-bar-right-gradient: #c7ccd4;--primary-progress-bar-left-gradient: #f55591;--primary-progress-bar-track: #e6e9ed;--disabled-progress-bar-track: #e6e9ed;--primary-progress-bar-right-gradient: #ffbc98;--disabled-progress-bar-left-gradient: #e6e9ed;--borderradius-none: 0;--borderradius-focusedstroke: 4px;--borderradius-muistroke: 4px;--borderradius-pill: 360px;--borderradius-cardsm: 12px;--borderradius-cardlg: 24px;--borderradius-button: 360px;--strokewidth-none: 0;--strokewidth-xs: 1px;--strokewidth-sm: 2px;--strokewidth-md: 4px;--strokewidth-lg: 8px;--insetspacing-5xs: .25rem;--insetspacing-4xs: .5rem;--insetspacing-3xs: .75rem;--insetspacing-2xs: 1rem;--insetspacing-xs: 1.25rem;--insetspacing-s: 1.5rem;--insetspacing-m: 1.75rem;--insetspacing-l: 2rem;--insetspacing-xl: 2.5rem;--insetspacing-2xl: 2.75rem;--insetspacing-3xl: 3rem;--insetspacing-4xl: 3.5rem;--insetspacing-5xl: 4rem;--insetspacing-6xl: 4.5rem;--insetspacing-7xl: 5rem;--insetspacing-8xl: 6rem;--insetspacing-9xl: 7.5rem;--insetspacing-10xl: 10rem;--stackspacing-5xs: .25rem;--stackspacing-4xs: .5rem;--stackspacing-3xs: .75rem;--stackspacing-2xs: 1rem;--stackspacing-xs: 1.25rem;--stackspacing-s: 1.5rem;--stackspacing-m: 1.75rem;--stackspacing-l: 2rem;--stackspacing-xl: 2.5rem;--stackspacing-2xl: 2.75rem;--stackspacing-3xl: 3rem;--stackspacing-4xl: 3.5rem;--stackspacing-5xl: 4rem;--stackspacing-6xl: 4.5rem;--stackspacing-7xl: 5rem;--stackspacing-8xl: 6rem;--stackspacing-9xl: 7.5rem;--stackspacing-10xl: 10rem;--inlinespacing-5xs: .25rem;--inlinespacing-4xs: .5rem;--inlinespacing-3xs: .75rem;--inlinespacing-2xs: 1rem;--inlinespacing-xs: 1.25rem;--inlinespacing-s: 1.5rem;--inlinespacing-m: 1.75rem;--inlinespacing-l: 2rem;--inlinespacing-xl: 2.5rem;--inlinespacing-2xl: 2.75rem;--inlinespacing-3xl: 3rem;--inlinespacing-4xl: 3.5rem;--inlinespacing-5xl: 4rem;--inlinespacing-6xl: 4.5rem;--inlinespacing-7xl: 5rem;--inlinespacing-8xl: 6rem;--inlinespacing-9xl: 7.5rem;--inlinespacing-10xl: 10rem}._h1_1765w_1{font-size:clamp(2.75rem,1.8779vw + 2.3099rem,4rem);line-height:clamp(2.75rem,1.8779vw + 2.3099rem,4rem);letter-spacing:-.02em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;margin:0}._h2_1eque_1{font-size:clamp(2.5rem,1.1268vw + 2.2359rem,3.25rem);line-height:clamp(2.75rem,1.2207vw + 2.4639rem,3.5625rem);letter-spacing:-.02em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;margin:0}._paragraph_11t85_1{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;margin:0}._list_1p627_1{display:flex;flex-direction:column;gap:clamp(.75rem,.3756vw + .662rem,1rem);margin:clamp(1rem,.7512vw + .8239rem,1.5rem) 0 0;padding:0;list-style:none}._list_1p627_1 ._list_1p627_1{margin-top:clamp(.75rem,.3756vw + .662rem,1rem);margin-left:calc(clamp(1rem,.7512vw + .8239rem,1.5rem) - (clamp(.25rem,.3756vw + .162rem,.5rem) + 8px))}._item_1p627_14{position:relative;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1}._list_1p627_1 ._item_1p627_14{padding-left:calc(clamp(.25rem,.3756vw + .162rem,.5rem) + 8px)}._list_1p627_1 ._item_1p627_14:before{content:"";position:absolute;top:.4lh;left:0;box-sizing:border-box;width:8px;height:8px;border-radius:50%;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:var(--strokewidth-xs) solid var(--accent-primary);background:transparent}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:0;border-radius:0;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border-radius:50%}._button_81qo0_1{appearance:none;border:none;background:none;display:inline-block;text-decoration:none;cursor:pointer;border-radius:var(--borderradius-button);padding:clamp(1rem,.3756vw + .912rem,1.25rem) clamp(1.5rem,.7512vw + 1.3239rem,2rem);font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;transition:background-color .15s ease,color .15s ease}._button_81qo0_1:focus-visible{outline:var(--strokewidth-sm) solid var(--accent-fill-focused);outline-offset:2px}._button_81qo0_1:disabled{cursor:not-allowed}._sm_81qo0_26{font-size:clamp(.875rem,.2817vw + .809rem,1.0625rem);line-height:1.5rem;letter-spacing:-.02em;padding:clamp(.5rem,.3756vw + .412rem,.75rem) clamp(1rem,.3756vw + .912rem,1.25rem)}._primary_81qo0_33{background-color:var(--accent-fill);color:var(--text-invert-primary)}._primary_81qo0_33:hover:not(:disabled){background-color:var(--accent-fill-hovered);color:var(--text-invert-primary)}._primary_81qo0_33:active:not(:disabled){background-color:var(--accent-fill-dark)}._primary_81qo0_33:disabled{background-color:var(--surface-invert-fill-disabled);color:var(--text-invert-primary)}._secondary_81qo0_49{background-color:transparent;color:var(--text-base-primary);box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-primary);transition:box-shadow .15s ease,color .15s ease}._secondary_81qo0_49:hover:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-hovered);color:var(--text-link-hovered)}._secondary_81qo0_49:active:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-dark);color:var(--text-link-pressed)}._secondary_81qo0_49:disabled{box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-secondary);color:var(--text-invert-hovered)}._negative_81qo0_68{background-color:var(--negative-fill-light);color:var(--negative-text)}._negative_81qo0_68:hover:not(:disabled){background-color:var(--negative-fill-light-hovered);color:var(--negative-text)}._negative_81qo0_68:active:not(:disabled){background-color:var(--negative-fill-light-pressed)}._negative_81qo0_68:disabled{background-color:var(--accent-fill-disabled);color:var(--text-disabled)}._link_1m7hb_1{display:inline;text-decoration:underline;text-decoration-thickness:from-font;text-underline-position:from-font;cursor:pointer;background:none;border:none;padding:0;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;color:var(--text-link)}._link_1m7hb_1:focus-visible{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._link_1m7hb_1:hover{color:var(--text-link-hovered)}._link_1m7hb_1:active{color:var(--text-link-pressed)}._accent_1m7hb_28{color:var(--accent-link)}._accent_1m7hb_28:hover{color:var(--accent-fill-hovered)}._accent_1m7hb_28:active{color:var(--text-link-pressed)}._disabled_1m7hb_38{color:var(--text-invert-hovered);cursor:not-allowed;pointer-events:none}._disabled_1m7hb_38:hover,._disabled_1m7hb_38:active,._disabled_1m7hb_38:focus-visible{color:var(--text-invert-hovered);outline:none}._newTabNote_1m7hb_48{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}._nav_dxkjl_3{min-width:0}._list_dxkjl_7{display:flex;flex-direction:column;gap:clamp(.5rem,.3756vw + .412rem,.75rem);margin:0;padding:0;list-style:none}._item_dxkjl_16{min-width:0}._link_dxkjl_20{font-size:1rem;line-height:1.5rem;letter-spacing:-.01em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;color:var(--text-base-primary);text-decoration:none;cursor:pointer;overflow-wrap:break-word;transition:color .15s ease}._link_dxkjl_20:hover{-webkit-line-clamp:none;line-clamp:none;color:var(--text-link)}._link_dxkjl_20:focus-visible{-webkit-line-clamp:none;line-clamp:none}._current_dxkjl_48{-webkit-line-clamp:none;line-clamp:none;color:var(--text-link)}@media(hover:none){._link_dxkjl_20{-webkit-line-clamp:none;line-clamp:none}}._nav_1us0j_1{display:flex;flex-direction:column;gap:clamp(1rem,.7512vw + .8239rem,1.5rem);min-width:0}._heading_1us0j_8{font-size:clamp(2rem,.3756vw + 1.912rem,2.25rem);line-height:clamp(2.625rem,.0939vw + 2.603rem,2.6875rem);letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;color:var(--text-base-primary);margin:0}._list_1us0j_19{display:flex;flex-direction:column;gap:clamp(.75rem,.3756vw + .662rem,1rem);margin:0;padding:0;list-style:none}._item_1us0j_28{display:flex;align-items:flex-start;gap:clamp(.25rem,.3756vw + .162rem,.5rem);font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em}._item_1us0j_28:before{content:"";position:relative;top:calc((1lh - 8px)/2);flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent-fill)}._item_1us0j_28>*{min-width:0}@keyframes _hero-rise_93692_1{0%{opacity:0;transform:translateY(var(--hero-rise, 50px))}to{opacity:1;transform:none}}._hero_93692_11{container-type:inline-size;background-color:var(--surface-base-secondary)}._layout_93692_16{display:grid;padding:clamp(2.75rem,.7512vw + 2.3239rem,3rem) 0}._content_93692_21{min-width:0}._titleLine_93692_25{display:block}._titleWord_93692_29{animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;display:inline-block;animation-delay:calc(.03s + var(--hero-index, 0) * 15ms)}._description_93692_35{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;margin:max(clamp(1.5rem,.7512vw + 1.3239rem,2rem),1.75rem) 0 0;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;color:var(--text-base-secondary);animation-delay:.03s}._media_93692_48{animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;--hero-rise: 100px;order:2;width:100%;margin-top:clamp(1.75rem,1.1268vw + 1.4859rem,2.5rem);animation-delay:.13s}._media_93692_48 :where(img,svg){display:block;max-width:100%;height:auto}@container (min-width: 1089px){._layout_93692_16{display:flow-root}._content_93692_21{max-width:700px}._media_93692_48{float:right;width:auto;max-width:620px;margin-top:0;shape-outside:circle(30%);shape-margin:clamp(1.75rem,1.1268vw + 1.4859rem,2.5rem)}}@media(prefers-reduced-motion:reduce){@keyframes _hero-rise_93692_1{0%{opacity:0}to{opacity:1}}}._field_7z5g3_1{position:relative;display:flex;flex-direction:column;gap:clamp(.25rem,.3756vw + .162rem,.5rem);padding:clamp(.5rem,.3756vw + .412rem,.75rem) clamp(1rem,.3756vw + .912rem,1.25rem);border-radius:var(--borderradius-cardsm);background-color:var(--surface-base-secondary);font-feature-settings:"dlig" 1;cursor:text;transition:padding .2s cubic-bezier(0,0,.2,1),gap .2s cubic-bezier(0,0,.2,1)}._field_7z5g3_1:focus-within{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._field_7z5g3_1._error_7z5g3_17{outline:var(--strokewidth-sm) solid var(--negative-fill)}._message_7z5g3_21{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;margin:0;padding-inline:clamp(1rem,.3756vw + .912rem,1.25rem);font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;color:var(--negative-text)}._message_7z5g3_21:not(:empty){margin-top:clamp(.25rem,.3756vw + .162rem,.5rem)}._content_7z5g3_36{display:flex;flex-direction:column;gap:clamp(.125rem,.1878vw + .081rem,.25rem);transition:gap .2s cubic-bezier(0,0,.2,1)}._reveal_7z5g3_43{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s cubic-bezier(0,0,.2,1)}._reveal_7z5g3_43>*{min-height:0;overflow:clip}._label_7z5g3_53{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:400;color:var(--text-base-secondary);overflow-wrap:break-word;transition:font-size .2s cubic-bezier(0,0,.2,1),line-height .2s cubic-bezier(0,0,.2,1),letter-spacing .2s cubic-bezier(0,0,.2,1)}._tags_7z5g3_64{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(.25rem,.3756vw + .162rem,.5rem)}._input_7z5g3_71{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;flex:1 0 auto;margin:0;padding:0;border:0;outline:0;background:transparent;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:inherit;color:var(--text-base-primary);caret-color:var(--negative-fill)}._counter_7z5g3_88{font-size:.75rem;line-height:1.125rem;letter-spacing:-.02em;margin:0;font-family:var(--ui-font-body);font-weight:400;color:var(--text-base-secondary);text-align:right;transition:opacity .2s cubic-bezier(0,0,.2,1),visibility .2s}._field_7z5g3_1:not(:focus-within,._empty_7z5g3_100) ._input_7z5g3_71{position:absolute;width:1px;opacity:0}._empty_7z5g3_100:not(:focus-within){gap:0;padding-block:clamp(1rem,.7512vw + .8239rem,1.5rem)}._empty_7z5g3_100:not(:focus-within) ._content_7z5g3_36{gap:0}._empty_7z5g3_100:not(:focus-within) ._reveal_7z5g3_43{grid-template-rows:0fr}._empty_7z5g3_100:not(:focus-within) ._label_7z5g3_53{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;font-family:var(--ui-font-body)}._empty_7z5g3_100:not(:focus-within) ._counter_7z5g3_88{visibility:hidden;opacity:0}._disabled_7z5g3_127{cursor:default}._disabled_7z5g3_127 ._label_7z5g3_53,._disabled_7z5g3_127 ._counter_7z5g3_88,._disabled_7z5g3_127 ._chip_7z5g3_132{color:var(--text-disabled)}._chip_7z5g3_132{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;display:flex;align-items:center;gap:clamp(.25rem,.3756vw + .162rem,.5rem);max-width:100%;padding:clamp(.125rem,.1878vw + .081rem,.25rem) clamp(.75rem,.3756vw + .662rem,1rem);border-radius:var(--borderradius-pill);background-color:var(--surface-base-fill);font-family:var(--ui-font-body);font-weight:400;color:var(--text-base-primary);cursor:default}._chipText_7z5g3_153{min-width:0;overflow-wrap:anywhere}._remove_7z5g3_158{display:flex;flex-shrink:0;margin:0;padding:0;border:0;background:none;color:var(--icon-base-secondary);cursor:pointer}._invalid_7z5g3_169{background-color:var(--negative-fill-light);color:var(--negative-text)}._invalid_7z5g3_169 ._remove_7z5g3_158{color:var(--negative-icon)}@media(prefers-reduced-motion:reduce){._field_7z5g3_1,._content_7z5g3_36,._label_7z5g3_53,._reveal_7z5g3_43{transition:none}}._field_1hc5h_1{display:flex;flex-direction:column;gap:max(clamp(.125rem,.1878vw + .081rem,.25rem),.25rem);padding:max(clamp(.5rem,.3756vw + .412rem,.75rem),.75rem) max(clamp(1rem,.3756vw + .912rem,1.25rem),1.25rem);border-radius:var(--borderradius-cardsm);background-color:var(--surface-base-secondary);font-feature-settings:"dlig" 1;cursor:text;transition:padding .2s cubic-bezier(0,0,.2,1),gap .2s cubic-bezier(0,0,.2,1)}._field_1hc5h_1:focus-within{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._label_1hc5h_16{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:400;color:var(--text-base-secondary);overflow-wrap:break-word;transition:font-size .2s cubic-bezier(0,0,.2,1),line-height .2s cubic-bezier(0,0,.2,1),letter-spacing .2s cubic-bezier(0,0,.2,1)}._reveal_1hc5h_27{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s cubic-bezier(0,0,.2,1)}._reveal_1hc5h_27>*{min-height:0;overflow:clip}._input_1hc5h_37{font-size:1rem;line-height:1.375rem;letter-spacing:-.01em;box-sizing:border-box;width:100%;margin:0;padding:0;border:0;outline:0;background:transparent;font-family:var(--ui-font-primary);font-weight:400;font-feature-settings:inherit;color:var(--text-base-primary);caret-color:var(--negative-fill)}._empty_1hc5h_55:not(:focus-within){gap:0;padding-block:max(clamp(1rem,.7512vw + .8239rem,1.5rem),1.5rem)}._empty_1hc5h_55:not(:focus-within) ._reveal_1hc5h_27{grid-template-rows:0fr}._empty_1hc5h_55:not(:focus-within) ._label_1hc5h_16{font-size:1rem;line-height:1.375rem;letter-spacing:-.01em}@media(prefers-reduced-motion:reduce){._field_1hc5h_1,._label_1hc5h_16,._reveal_1hc5h_27{transition:none}}
1
+ :root{--font-desktop-heading: TT Hoves Pro;--font-desktop-paragraph: TT Hoves Pro;--font-desktop-buttons: Inter;--font-desktop-body-inter: Inter;--font-desktop-body-tt-hoves: TT Hoves Pro;--font-desktop-caption: Inter;--font-desktop-numbers: TT Hoves Pro;--font-desktop-code: Hack;--h-extra-desktop-font-size: 6rem;--h-extra-desktop-line-height: 6.625rem;--h-extra-desktop-letter-spacing: -.03em;--h1-desktop-letter-spacing: -.02em;--h1-desktop-line-height: 4rem;--h1-desktop-font-size: 4rem;--h2-desktop-font-size: 3.25rem;--h2-desktop-letter-spacing: -.02em;--h2-desktop-line-height: 3.5625rem;--h3-desktop-letter-spacing: -.02em;--h3-desktop-font-size: 2.75rem;--h3-desktop-line-height: 3rem;--h4-desktop-letter-spacing: -.01em;--h4-desktop-font-size: 2.25rem;--h4-desktop-line-height: 2.6875rem;--h5-desktop-letter-spacing: -.01em;--h5-desktop-font-size: 1.875rem;--h5-desktop-line-height: 2.0625rem;--h6-desktop-font-size: 1.75rem;--h6-desktop-letter-spacing: -.01em;--h6-desktop-line-height: 1.9375rem;--h7-desktop-font-size: 1.5rem;--h7-desktop-letter-spacing: -.01em;--h7-desktop-line-height: 1.75rem;--paragraph-desktop-font-size: 1.5rem;--paragraph-desktop-line-height: 2.25rem;--paragraph-desktop-letter-spacing: -.01em;--button-lg-desktop-font-size: 1.25rem;--button-lg-desktop-line-height: 1.5rem;--button-lg-desktop-letter-spacing: -.02em;--button-md-desktop-font-size: 1.0625rem;--button-md-desktop-line-height: 1.5rem;--button-md-desktop-letter-spacing: -.02em;--button-sm-desktop-font-size: .875rem;--button-sm-desktop-line-height: 1.5rem;--button-sm-desktop-letter-spacing: -.01em;--body-lg-tt-hoves-desktop-font-size: 1.125rem;--body-lg-tt-hoves-desktop-line-height: 1.5rem;--body-lg-tt-hoves-desktop-letter-spacing: -.01em;--body-lg-inter-desktop-font-size: 1.25rem;--body-lg-inter-desktop-line-height: 1.875rem;--body-lg-inter-desktop-letter-spacing: -.02em;--body-md-tt-hoves-desktop-letter-spacing: -.01em;--body-md-tt-hoves-desktop-font-size: 1rem;--body-md-tt-hoves-desktop-line-height: 1.375rem;--body-md-inter-desktop-letter-spacing: -.02em;--body-md-inter-desktop-font-size: 1rem;--body-md-inter-desktop-line-height: 1.5rem;--body-sm-desktop-letter-spacing: -.01em;--body-sm-desktop-font-size: .875rem;--body-sm-desktop-line-height: 1.25rem;--caption-lg-desktop-font-size: 1rem;--caption-lg-desktop-letter-spacing: -.01em;--caption-lg-desktop-line-height: 1.5rem;--caption-sm-desktop-font-size: .75rem;--caption-sm-desktop-line-height: 1.125rem;--caption-sm-desktop-letter-spacing: -.02em;--caption-sm-bold-desktop-font-size: .75rem;--caption-sm-bold-desktop-line-height: 1rem;--caption-sm-bold-desktop-letter-spacing: -.01em;--caption-uppercase-desktop-line-height: 1rem;--caption-uppercase-desktop-letter-spacing: .04em;--caption-uppercase-desktop-font-size: .8125rem;--numbers-desktop-line-height: 1.375rem;--numbers-desktop-letter-spacing: .04em;--numbers-desktop-font-size: 1rem;--special-styles-code-desktop-line-height: 1.5625rem;--special-styles-code-desktop-font-size: 1.125rem;--special-styles-code-desktop-letter-spacing: 0;--font-tablet-heading: TT Hoves Pro;--font-tablet-paragraph: TT Hoves Pro;--font-tablet-buttons: Inter;--font-tablet-body-inter: Inter;--font-tablet-body-tt-hoves: TT Hoves Pro;--font-tablet-caption: Inter;--font-tablet-numbers: TT Hoves Pro;--font-tablet-code: Hack;--h-extra-tablet-font-size: 6.875rem;--h-extra-tablet-line-height: 7.5625rem;--h-extra-tablet-letter-spacing: -.03em;--h1-tablet-letter-spacing: -.02em;--h1-tablet-line-height: 4.4rem;--h1-tablet-font-size: 4rem;--h2-tablet-font-size: 3rem;--h2-tablet-letter-spacing: -.02em;--h2-tablet-line-height: 3.3125rem;--h3-tablet-letter-spacing: -.02em;--h3-tablet-font-size: 2.5rem;--h3-tablet-line-height: 2.75rem;--h4-tablet-letter-spacing: -.02em;--h4-tablet-font-size: 2.25rem;--h4-tablet-line-height: 2.6875rem;--h5-tablet-letter-spacing: -.01em;--h5-tablet-font-size: 2rem;--h5-tablet-line-height: 2.1875rem;--h6-tablet-font-size: 1.5rem;--h6-tablet-letter-spacing: -.01em;--h6-tablet-line-height: 1.625rem;--h7-tablet-font-size: 1.375rem;--h7-tablet-letter-spacing: -.01em;--h7-tablet-line-height: 1.625rem;--paragraph-tablet-font-size: 1.375rem;--paragraph-tablet-line-height: 2.0625rem;--paragraph-tablet-letter-spacing: -.01em;--button-lg-tablet-font-size: 1.125rem;--button-lg-tablet-line-height: 1.5rem;--button-lg-tablet-letter-spacing: -.02em;--button-md-tablet-font-size: 1rem;--button-md-tablet-line-height: 1.5rem;--button-md-tablet-letter-spacing: -.02em;--button-sm-tablet-font-size: .875rem;--button-sm-tablet-line-height: 1.5rem;--button-sm-tablet-letter-spacing: -.01em;--body-lg-tt-hoves-tablet-font-size: 1rem;--body-lg-tt-hoves-tablet-line-height: 1.375rem;--body-lg-tt-hoves-tablet-letter-spacing: -.01em;--body-lg-inter-tablet-font-size: 1.125rem;--body-lg-inter-tablet-line-height: 1.6875rem;--body-lg-inter-tablet-letter-spacing: -.02em;--body-md-tt-hoves-tablet-letter-spacing: -.01em;--body-md-tt-hoves-tablet-font-size: 1rem;--body-md-tt-hoves-tablet-line-height: 1.375rem;--body-md-inter-tablet-letter-spacing: -.02em;--body-md-inter-tablet-font-size: 1rem;--body-md-inter-tablet-line-height: 1.5rem;--body-sm-tablet-letter-spacing: -.01em;--body-sm-tablet-font-size: .875rem;--body-sm-tablet-line-height: 1.25rem;--caption-lg-tablet-font-size: 1rem;--caption-lg-tablet-letter-spacing: -.02em;--caption-lg-tablet-line-height: 1.5rem;--caption-sm-tablet-font-size: .75rem;--caption-sm-tablet-line-height: 1.125rem;--caption-sm-tablet-letter-spacing: -.02em;--caption-sm-bold-tablet-font-size: .75rem;--caption-sm-bold-tablet-line-height: 1rem;--caption-sm-bold-tablet-letter-spacing: -.01em;--caption-uppercase-tablet-line-height: 1rem;--caption-uppercase-tablet-letter-spacing: .04em;--caption-uppercase-tablet-font-size: .8125rem;--numbers-tablet-line-height: 1.375rem;--numbers-tablet-letter-spacing: .04em;--numbers-tablet-font-size: 1rem;--special-styles-code-tablet-line-height: 1.5625rem;--special-styles-code-tablet-font-size: 1.125rem;--special-styles-code-tablet-letter-spacing: 0;--font-mobile-heading: TT Hoves Pro;--font-mobile-paragraph: TT Hoves Pro;--font-mobile-buttons: Inter;--font-mobile-body-inter: Inter;--font-mobile-body-tt-hoves: TT Hoves Pro;--font-mobile-caption: Inter;--font-mobile-numbers: TT Hoves Pro;--font-mobile-code: Hack;--h-extra-mobile-font-size: 3.5rem;--h-extra-mobile-line-height: 3.875rem;--h-extra-mobile-letter-spacing: -.02em;--h1-mobile-letter-spacing: -.01em;--h1-mobile-line-height: 2.75rem;--h1-mobile-font-size: 2.75rem;--h2-mobile-font-size: 2.5rem;--h2-mobile-letter-spacing: -.01em;--h2-mobile-line-height: 2.75rem;--h3-mobile-letter-spacing: -.01em;--h3-mobile-font-size: 2.25rem;--h3-mobile-line-height: 2.5rem;--h4-mobile-letter-spacing: -.01em;--h4-mobile-font-size: 2rem;--h4-mobile-line-height: 2.625rem;--h5-mobile-letter-spacing: -.01em;--h5-mobile-font-size: 1.375rem;--h5-mobile-line-height: 1.5rem;--h6-mobile-font-size: 1.25rem;--h6-mobile-letter-spacing: -.01em;--h6-mobile-line-height: 1.375rem;--h7-mobile-font-size: 1.25rem;--h7-mobile-letter-spacing: -.01em;--h7-mobile-line-height: 1.5rem;--paragraph-mobile-font-size: 1.125rem;--paragraph-mobile-line-height: 1.6875rem;--paragraph-mobile-letter-spacing: -.01em;--button-lg-mobile-font-size: 1rem;--button-lg-mobile-line-height: 1.5rem;--button-lg-mobile-letter-spacing: -.01em;--button-md-mobile-font-size: .875rem;--button-md-mobile-line-height: 1.5rem;--button-md-mobile-letter-spacing: -.01em;--button-sm-mobile-font-size: .75rem;--button-sm-mobile-line-height: 1.5rem;--button-sm-mobile-letter-spacing: -.01em;--body-lg-tt-hoves-mobile-font-size: .875rem;--body-lg-tt-hoves-mobile-line-height: 1.1875rem;--body-lg-tt-hoves-mobile-letter-spacing: -.01em;--body-lg-inter-mobile-font-size: 1rem;--body-lg-inter-mobile-line-height: 1.5rem;--body-lg-inter-mobile-letter-spacing: -.01em;--body-md-tt-hoves-mobile-letter-spacing: -.01em;--body-md-tt-hoves-mobile-font-size: 1rem;--body-md-tt-hoves-mobile-line-height: 1.375rem;--body-md-inter-mobile-letter-spacing: -.01em;--body-md-inter-mobile-font-size: .875rem;--body-md-inter-mobile-line-height: 1.3125rem;--body-sm-mobile-letter-spacing: -.01em;--body-sm-mobile-font-size: .875rem;--body-sm-mobile-line-height: 1.25rem;--caption-lg-mobile-font-size: 1rem;--caption-lg-mobile-letter-spacing: -.02em;--caption-lg-mobile-line-height: 1.5rem;--caption-sm-mobile-font-size: .75rem;--caption-sm-mobile-line-height: 1.125rem;--caption-sm-mobile-letter-spacing: -.02em;--caption-sm-bold-mobile-font-size: .75rem;--caption-sm-bold-mobile-line-height: 1rem;--caption-sm-bold-mobile-letter-spacing: -.01em;--caption-uppercase-mobile-line-height: 1rem;--caption-uppercase-mobile-letter-spacing: .04em;--caption-uppercase-mobile-font-size: .75rem;--numbers-mobile-line-height: 1.375rem;--numbers-mobile-letter-spacing: .04em;--numbers-mobile-font-size: 1rem;--special-styles-code-mobile-line-height: 1.375rem;--special-styles-code-mobile-font-size: 1rem;--special-styles-code-mobile-letter-spacing: 0;--surface-invert-fill-disabled: #c7ccd4;--surface-invert-secondary: #262c36;--surface-invert-primary: #151b23;--surface-invert-fill-deep: #6e7580;--surface-base-fill: #e6e9ed;--overlay-fill-dark: #151b23b3;--surface-invert-fill-pressed: #a8b0ba;--overlay-fill-medium: #151b23a3;--surface-base-fill-light: #eff7ff;--surface-base-secondary: #f5f7fa;--surface-base-primary: #ffffff;--surface-cell-disabled: #f5f7fa80;--surface-invert-fill-dark: #a8b0ba;--surface-invert-fill-hovered: #e6e9ed;--overlay-fill: #001d7a66;--surface-invert-dark: #151b23;--surface-invert-fill-medium: #c7ccd4;--surface-invert-fill-light: #e6e9ed;--text-invert-label: #939ba6;--text-link: #0066ff;--info-text: #00546b;--text-invert-secondary: #e6e9ed;--negative-text: #8f1150;--positive-text-dark: #005925;--text-base-label: #002ea3;--text-invert-pressed: #6e7580;--premium-text: #431878;--text-link-pressed: #001d7a;--text-base-secondary-light: #939ba6;--text-invert-primary: #ffffff;--positive-text: #147536;--negative-text-dark: #6b0039;--text-invert-disabled: #49505b;--warning-text: #6b1000;--text-disabled: #001d7a66;--text-link-hovered: #004cda;--text-invert-hovered: #b7bec7;--text-base-secondary: #49505b;--text-link-light: #2d84ff;--text-link-light-hovered: #5aa1ff;--caution-text: #505900;--text-base-primary: #151b23;--border-primary-light: #5aa1ff;--border-primary-active: #001d7a;--border-invert-secondary: #d6dbe0;--border-primary-medium: #2d84ff;--border-primary: #0066ff;--border-invert-primary: #ffffff;--border-primary-hovered: #004cda;--border-base-secondary: #d6dbe0;--border-base-secondary-light: #e6e9ed;--border-base-primary: #151b23;--border-primary-disabled: #002ea31a;--border-base-light: #e2f0ff;--accent-fill-hovered: #004cda;--accent-primary-hovered: #004cda;--accent-fill: #0066ff;--accent-fill-dark: #001d7a;--accent-fill-medium-disabled: #c7ccd4;--accent-fill-pressed: #002ea3;--accent-primary-dark: #001d7a;--accent-fill-medium-hovered: #a8b0ba;--accent-primary: #0066ff;--accent-fill-disabled: #002ea31a;--accent-fill-medium: #b7bec7;--accent-fill-medium-pressed: #939ba6;--accent-link: #0039b5;--accent-fill-focused: #8fc1ff;--accent-fill-light-hovered: #001d7a12;--accent-fill-light: #e2f0ff;--positive-icon: #29954b;--negative-icon-light: #b22265;--negative-icon: #8f1150;--icon-disabled: #001d7a66;--icon-invert: #c7ccd4;--icon-primary-light-hovered: #5aa1ff;--icon-base-secondary: #6e7580;--icon-primary: #383e48;--negative-fill-light-pressed: #ffafc8;--negative-fill: #f55591;--negative-fill-dark: #6b0039;--negative-fill-medium: #ff76a6;--negative-fill-light-hovered: #ffcbdb;--negative-fill-light: #ffe8ef;--warning-fill-dark: #6b1000;--warning-fill-medium: #f89364;--warning-primary: #f5804e;--warning-fill: #ffbc98;--warning-fill-light: #ffebde;--positive-fill-dark: #005925;--positive-fill: #47cc69;--positive-fill-medium: #81eb96;--positive-fill-light: #cffad6;--premium-fill: #9560ff;--premium-fill-medium: #b292fc;--premium-fill-light: #ece5ff;--info-fill: #3dc9d1;--info-fill-medium: #63dfe5;--info-fill-light: #b0f7f7;--caution-fill: #fcf58c;--caution-fill-dark: #e4e40d;--caution-fill-light: #fcf9d7;--disabled-progress-bar-right-gradient: #c7ccd4;--primary-progress-bar-left-gradient: #f55591;--primary-progress-bar-track: #e6e9ed;--disabled-progress-bar-track: #e6e9ed;--primary-progress-bar-right-gradient: #ffbc98;--disabled-progress-bar-left-gradient: #e6e9ed;--borderradius-none: 0;--borderradius-focusedstroke: 4px;--borderradius-muistroke: 4px;--borderradius-pill: 360px;--borderradius-cardsm: 12px;--borderradius-cardlg: 24px;--borderradius-button: 360px;--strokewidth-none: 0;--strokewidth-xs: 1px;--strokewidth-sm: 2px;--strokewidth-md: 4px;--strokewidth-lg: 8px;--insetspacing-5xs: .25rem;--insetspacing-4xs: .5rem;--insetspacing-3xs: .75rem;--insetspacing-2xs: 1rem;--insetspacing-xs: 1.25rem;--insetspacing-s: 1.5rem;--insetspacing-m: 1.75rem;--insetspacing-l: 2rem;--insetspacing-xl: 2.5rem;--insetspacing-2xl: 2.75rem;--insetspacing-3xl: 3rem;--insetspacing-4xl: 3.5rem;--insetspacing-5xl: 4rem;--insetspacing-6xl: 4.5rem;--insetspacing-7xl: 5rem;--insetspacing-8xl: 6rem;--insetspacing-9xl: 7.5rem;--insetspacing-10xl: 10rem;--stackspacing-5xs: .25rem;--stackspacing-4xs: .5rem;--stackspacing-3xs: .75rem;--stackspacing-2xs: 1rem;--stackspacing-xs: 1.25rem;--stackspacing-s: 1.5rem;--stackspacing-m: 1.75rem;--stackspacing-l: 2rem;--stackspacing-xl: 2.5rem;--stackspacing-2xl: 2.75rem;--stackspacing-3xl: 3rem;--stackspacing-4xl: 3.5rem;--stackspacing-5xl: 4rem;--stackspacing-6xl: 4.5rem;--stackspacing-7xl: 5rem;--stackspacing-8xl: 6rem;--stackspacing-9xl: 7.5rem;--stackspacing-10xl: 10rem;--inlinespacing-5xs: .25rem;--inlinespacing-4xs: .5rem;--inlinespacing-3xs: .75rem;--inlinespacing-2xs: 1rem;--inlinespacing-xs: 1.25rem;--inlinespacing-s: 1.5rem;--inlinespacing-m: 1.75rem;--inlinespacing-l: 2rem;--inlinespacing-xl: 2.5rem;--inlinespacing-2xl: 2.75rem;--inlinespacing-3xl: 3rem;--inlinespacing-4xl: 3.5rem;--inlinespacing-5xl: 4rem;--inlinespacing-6xl: 4.5rem;--inlinespacing-7xl: 5rem;--inlinespacing-8xl: 6rem;--inlinespacing-9xl: 7.5rem;--inlinespacing-10xl: 10rem}._h1_1765w_1{font-size:clamp(2.75rem,1.8779vw + 2.3099rem,4rem);line-height:clamp(2.75rem,1.8779vw + 2.3099rem,4rem);letter-spacing:-.02em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;margin:0}._h2_1eque_1{font-size:clamp(2.5rem,1.1268vw + 2.2359rem,3.25rem);line-height:clamp(2.75rem,1.2207vw + 2.4639rem,3.5625rem);letter-spacing:-.02em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;margin:0}._paragraph_11t85_1{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;margin:0}._list_1p627_1{display:flex;flex-direction:column;gap:clamp(.75rem,.3756vw + .662rem,1rem);margin:clamp(1rem,.7512vw + .8239rem,1.5rem) 0 0;padding:0;list-style:none}._list_1p627_1 ._list_1p627_1{margin-top:clamp(.75rem,.3756vw + .662rem,1rem);margin-left:calc(clamp(1rem,.7512vw + .8239rem,1.5rem) - (clamp(.25rem,.3756vw + .162rem,.5rem) + 8px))}._item_1p627_14{position:relative;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1}._list_1p627_1 ._item_1p627_14{padding-left:calc(clamp(.25rem,.3756vw + .162rem,.5rem) + 8px)}._list_1p627_1 ._item_1p627_14:before{content:"";position:absolute;top:.4lh;left:0;box-sizing:border-box;width:8px;height:8px;border-radius:50%;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:var(--strokewidth-xs) solid var(--accent-primary);background:transparent}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:0;border-radius:0;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border-radius:50%}._link_1m7hb_1{display:inline;text-decoration:underline;text-decoration-thickness:from-font;text-underline-position:from-font;cursor:pointer;background:none;border:none;padding:0;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;color:var(--text-link)}._link_1m7hb_1:focus-visible{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._link_1m7hb_1:hover{color:var(--text-link-hovered)}._link_1m7hb_1:active{color:var(--text-link-pressed)}._accent_1m7hb_28{color:var(--accent-link)}._accent_1m7hb_28:hover{color:var(--accent-fill-hovered)}._accent_1m7hb_28:active{color:var(--text-link-pressed)}._disabled_1m7hb_38{color:var(--text-invert-hovered);cursor:not-allowed;pointer-events:none}._disabled_1m7hb_38:hover,._disabled_1m7hb_38:active,._disabled_1m7hb_38:focus-visible{color:var(--text-invert-hovered);outline:none}._newTabNote_1m7hb_48{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}._button_1391k_1{appearance:none;border:none;background:none;display:inline-block;text-decoration:none;cursor:pointer;border-radius:var(--borderradius-button);padding:1.25rem 2rem;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;transition:background-color .15s ease,color .15s ease}._button_1391k_1:focus-visible{outline:var(--strokewidth-sm) solid var(--accent-fill-focused);outline-offset:2px}._button_1391k_1:disabled{cursor:not-allowed}._sm_1391k_26{font-size:clamp(.875rem,.2817vw + .809rem,1.0625rem);line-height:1.5rem;letter-spacing:-.02em;padding:.75rem 1.25rem}._primary_1391k_33{background-color:var(--accent-fill);color:var(--text-invert-primary)}._primary_1391k_33:hover:not(:disabled){background-color:var(--accent-fill-hovered);color:var(--text-invert-primary)}._primary_1391k_33:active:not(:disabled){background-color:var(--accent-fill-dark)}._primary_1391k_33:disabled{background-color:var(--surface-invert-fill-disabled);color:var(--text-invert-primary)}._secondary_1391k_49{background-color:transparent;color:var(--text-base-primary);box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-primary);transition:box-shadow .15s ease,color .15s ease}._secondary_1391k_49:hover:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-hovered);color:var(--text-link-hovered)}._secondary_1391k_49:active:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-dark);color:var(--text-link-pressed)}._secondary_1391k_49:disabled{box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-secondary);color:var(--text-invert-hovered)}._negative_1391k_68{background-color:var(--negative-fill-light);color:var(--negative-text)}._negative_1391k_68:hover:not(:disabled){background-color:var(--negative-fill-light-hovered);color:var(--negative-text)}._negative_1391k_68:active:not(:disabled){background-color:var(--negative-fill-light-pressed)}._negative_1391k_68:disabled{background-color:var(--accent-fill-disabled);color:var(--text-disabled)}._nav_dxkjl_3{min-width:0}._list_dxkjl_7{display:flex;flex-direction:column;gap:clamp(.5rem,.3756vw + .412rem,.75rem);margin:0;padding:0;list-style:none}._item_dxkjl_16{min-width:0}._link_dxkjl_20{font-size:1rem;line-height:1.5rem;letter-spacing:-.01em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;color:var(--text-base-primary);text-decoration:none;cursor:pointer;overflow-wrap:break-word;transition:color .15s ease}._link_dxkjl_20:hover{-webkit-line-clamp:none;line-clamp:none;color:var(--text-link)}._link_dxkjl_20:focus-visible{-webkit-line-clamp:none;line-clamp:none}._current_dxkjl_48{-webkit-line-clamp:none;line-clamp:none;color:var(--text-link)}@media(hover:none){._link_dxkjl_20{-webkit-line-clamp:none;line-clamp:none}}._nav_1us0j_1{display:flex;flex-direction:column;gap:clamp(1rem,.7512vw + .8239rem,1.5rem);min-width:0}._heading_1us0j_8{font-size:clamp(2rem,.3756vw + 1.912rem,2.25rem);line-height:clamp(2.625rem,.0939vw + 2.603rem,2.6875rem);letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;color:var(--text-base-primary);margin:0}._list_1us0j_19{display:flex;flex-direction:column;gap:clamp(.75rem,.3756vw + .662rem,1rem);margin:0;padding:0;list-style:none}._item_1us0j_28{display:flex;align-items:flex-start;gap:clamp(.25rem,.3756vw + .162rem,.5rem);font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em}._item_1us0j_28:before{content:"";position:relative;top:calc((1lh - 8px)/2);flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent-fill)}._item_1us0j_28>*{min-width:0}@keyframes _hero-rise_93692_1{0%{opacity:0;transform:translateY(var(--hero-rise, 50px))}to{opacity:1;transform:none}}._hero_93692_11{container-type:inline-size;background-color:var(--surface-base-secondary)}._layout_93692_16{display:grid;padding:clamp(2.75rem,.7512vw + 2.3239rem,3rem) 0}._content_93692_21{min-width:0}._titleLine_93692_25{display:block}._titleWord_93692_29{animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;display:inline-block;animation-delay:calc(.03s + var(--hero-index, 0) * 15ms)}._description_93692_35{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;margin:max(clamp(1.5rem,.7512vw + 1.3239rem,2rem),1.75rem) 0 0;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;color:var(--text-base-secondary);animation-delay:.03s}._media_93692_48{animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;--hero-rise: 100px;order:2;width:100%;margin-top:clamp(1.75rem,1.1268vw + 1.4859rem,2.5rem);animation-delay:.13s}._media_93692_48 :where(img,svg){display:block;max-width:100%;height:auto}@container (min-width: 1089px){._layout_93692_16{display:flow-root}._content_93692_21{max-width:700px}._media_93692_48{float:right;width:auto;max-width:620px;margin-top:0;shape-outside:circle(30%);shape-margin:clamp(1.75rem,1.1268vw + 1.4859rem,2.5rem)}}@media(prefers-reduced-motion:reduce){@keyframes _hero-rise_93692_1{0%{opacity:0}to{opacity:1}}}._field_14suf_1{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1.25rem;border-radius:var(--borderradius-cardsm);background-color:var(--surface-base-secondary);font-feature-settings:"dlig" 1;cursor:text;transition:padding .2s cubic-bezier(0,0,.2,1),gap .2s cubic-bezier(0,0,.2,1)}._field_14suf_1:focus-within{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._field_14suf_1._error_14suf_17{outline:var(--strokewidth-sm) solid var(--negative-fill)}._message_14suf_21{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;margin:0;padding-inline:1.25rem;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;color:var(--negative-text)}._message_14suf_21:not(:empty){margin-top:.5rem}._content_14suf_36{display:flex;flex-direction:column;gap:.25rem;transition:gap .2s cubic-bezier(0,0,.2,1)}._reveal_14suf_43{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s cubic-bezier(0,0,.2,1)}._reveal_14suf_43>*{min-height:0;overflow:clip}._label_14suf_53{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:400;color:var(--text-base-secondary);overflow-wrap:break-word;transition:font-size .2s cubic-bezier(0,0,.2,1),line-height .2s cubic-bezier(0,0,.2,1),letter-spacing .2s cubic-bezier(0,0,.2,1)}._tags_14suf_64{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}._chips_14suf_71{display:contents;margin:0;padding:0;list-style:none}._input_14suf_78{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;flex:1 0 auto;margin:0;padding:0;border:0;outline:0;background:transparent;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:inherit;color:var(--text-base-primary);caret-color:var(--negative-fill)}._counter_14suf_95{font-size:.75rem;line-height:1.125rem;letter-spacing:-.02em;margin:0;font-family:var(--ui-font-body);font-weight:400;color:var(--text-base-secondary);text-align:right;transition:opacity .2s cubic-bezier(0,0,.2,1),visibility .2s}._field_14suf_1:not(:focus-within,._empty_14suf_107) ._input_14suf_78{position:absolute;width:1px;opacity:0}._empty_14suf_107:not(:focus-within){gap:0;padding-block:1.5rem}._empty_14suf_107:not(:focus-within) ._content_14suf_36{gap:0}._empty_14suf_107:not(:focus-within) ._reveal_14suf_43{grid-template-rows:0fr}._empty_14suf_107:not(:focus-within) ._label_14suf_53{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;font-family:var(--ui-font-body)}._empty_14suf_107:not(:focus-within) ._counter_14suf_95{visibility:hidden;opacity:0}._disabled_14suf_134{cursor:default}._disabled_14suf_134 ._label_14suf_53,._disabled_14suf_134 ._counter_14suf_95,._disabled_14suf_134 ._chip_14suf_71{color:var(--text-disabled)}._chip_14suf_71{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;max-width:100%;padding:.25rem 1rem;border-radius:var(--borderradius-pill);background-color:var(--surface-base-fill);font-family:var(--ui-font-body);font-weight:400;color:var(--text-base-primary);cursor:default}._chipText_14suf_160{min-width:0;overflow-wrap:anywhere}._remove_14suf_165{display:flex;flex-shrink:0;margin:0;padding:0;border:0;background:none;color:var(--icon-base-secondary);cursor:pointer}._invalid_14suf_176{background-color:var(--negative-fill-light);color:var(--negative-text)}._invalid_14suf_176 ._remove_14suf_165{color:var(--negative-icon)}@media(prefers-reduced-motion:reduce){._field_14suf_1,._content_14suf_36,._label_14suf_53,._reveal_14suf_43{transition:none}}._field_otub4_1{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1.25rem;border-radius:var(--borderradius-cardsm);background-color:var(--surface-base-secondary);font-feature-settings:"dlig" 1;cursor:text;transition:padding .2s cubic-bezier(0,0,.2,1),gap .2s cubic-bezier(0,0,.2,1)}._field_otub4_1:focus-within{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._label_otub4_16{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:400;color:var(--text-base-secondary);overflow-wrap:break-word;transition:font-size .2s cubic-bezier(0,0,.2,1),line-height .2s cubic-bezier(0,0,.2,1),letter-spacing .2s cubic-bezier(0,0,.2,1)}._reveal_otub4_27{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s cubic-bezier(0,0,.2,1)}._reveal_otub4_27>*{min-height:0;overflow:clip}._input_otub4_37{font-size:1rem;line-height:1.375rem;letter-spacing:-.01em;display:block;box-sizing:border-box;width:100%;margin:0;padding:0;border:0;outline:0;background:transparent;font-family:var(--ui-font-primary);font-weight:400;font-feature-settings:inherit;color:var(--text-base-primary);caret-color:var(--negative-fill)}._empty_otub4_56:not(:focus-within){gap:0;padding-block:1.5rem}._empty_otub4_56:not(:focus-within) ._reveal_otub4_27{grid-template-rows:0fr}._empty_otub4_56:not(:focus-within) ._label_otub4_16{font-size:1rem;line-height:1.375rem;letter-spacing:-.01em}@media(prefers-reduced-motion:reduce){._field_otub4_1,._label_otub4_16,._reveal_otub4_27{transition:none}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartyweb/ui",
3
- "version": "2.5.0",
3
+ "version": "2.5.1-irina-button-review.g72000c8",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "devDependencies": {
39
39
  "@changesets/cli": "^2.29.8",
40
40
  "@eslint/js": "^10.0.0",
41
- "@storybook/react-vite": "^10.2.15",
41
+ "@storybook/react-vite": "^10.6.2",
42
42
  "@types/react": "^19.2.13",
43
43
  "@types/react-dom": "^19.2.3",
44
44
  "@vitejs/plugin-react": "^5.1.3",
@@ -48,13 +48,13 @@
48
48
  "react": "^19.2.4",
49
49
  "react-dom": "^19.2.4",
50
50
  "sass": "^1.97.3",
51
- "storybook": "^10.2.15",
52
- "style-dictionary": "^4.4.0",
51
+ "storybook": "^10.6.2",
52
+ "style-dictionary": "^5.4.4",
53
53
  "stylelint": "^17.5.0",
54
54
  "stylelint-config-standard-scss": "^17.0.0",
55
55
  "typescript": "^5.9.3",
56
56
  "typescript-eslint": "^8.57.0",
57
- "vite": "^7.3.1",
57
+ "vite": "^7.3.7",
58
58
  "vite-plugin-dts": "^4.5.4"
59
59
  }
60
60
  }