@smartyweb/ui 2.5.1 → 2.6.0-irina-button-review.g6cb241d

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 D({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 E=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 B(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;B(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",M={list:re,item:ae},R=r.createContext(!1);function k({children:e}){const n=r.useContext(R);return E&&!n&&oe(),t.jsx("li",{className:M.item,children:e})}k.isSmartyListItem=!0;function le(e){return e===k?!0:typeof e=="function"&&e.isSmartyListItem===!0}function ce({children:e}){return E&&B(e,le),t.jsx(R,{value:!0,children:t.jsx("ul",{role:"list",className:M.list,children:e})})}const ue="_button_1391k_1",de="_sm_1391k_26",fe="_primary_1391k_33",_e="_secondary_1391k_49",me="_negative_1391k_68",g={button:ue,sm:de,primary:fe,secondary:_e,negative:me};function pe({as:e="button",variant:n="primary",size:s="default",href:i,openInNewTab:c,disabled:u,type:o,onClick:d,children:f}){const m=[g.button,g[n],s==="sm"&&g.sm].filter(Boolean).join(" ");return t.jsx(e,{className:m,href:i,target:c?"_blank":void 0,rel:c?"noopener noreferrer":void 0,disabled:u,type:o,onClick:d,children:f})}const he="_link_1m7hb_1",ye="_accent_1m7hb_28",xe="_disabled_1m7hb_38",ve="_newTabNote_1m7hb_48",j={link:he,accent:ye,disabled:xe,newTabNote:ve},A=r.createContext(null);function je({component:e,children:n}){return t.jsx(A,{value:e,children:n})}function be(){return r.useContext(A)}const Ne=" (opens in new tab)",ge=/\.[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 ge.test(s)?"plain":"router"}function F({variant:e="default",href:n,download:s=!1,disabled:i,onClick:c,children:u}){const o=be(),f=[j.link,e==="accent"&&j.accent,i&&j.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:u});const _=Le(n,s);if(_==="external")return t.jsxs("a",{className:f,href:n,target:"_blank",rel:"noopener noreferrer",onClick:c,children:[u,t.jsx("span",{className:j.newTabNote,children:Ne})]});const m=_==="router"&&o?o:"a";return t.jsx(m,{className:f,href:n,download:_==="download"?"":void 0,onClick:c,children:u})}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},W=r.createContext(null);function De({label:e,current:n,children:s}){return $e&&!e?.trim()&&ke(),t.jsx("nav",{className:x.nav,"aria-label":e,children:t.jsx(W,{value:n??null,children:t.jsx("ul",{className:x.list,children:s})})})}function Ee({as:e="a",href:n,current:s,openInNewTab:i,onClick:c,children:u}){const o=r.useContext(W),d=s??(o!==null&&o===n),f=[x.link,d&&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":d?"location":void 0,children:u})})}const H=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 Be(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 P(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;P(i,n);continue}n(s.type)||s.type==="li"||w(`<TableOfContents> received ${Be(s.type)} as a direct child. Its list may only contain entries — use <TableOfContentsLink href="#…"> instead.`)}}function Me(){w("<TableOfContentsLink> was rendered outside of a <TableOfContents>. It renders an <li>, which browsers only style correctly inside a list.")}const Re="_nav_1us0j_1",Ae="_heading_1us0j_8",Fe="_list_1us0j_19",We="_item_1us0j_28",b={nav:Re,heading:Ae,list:Fe,item:We},U=r.createContext(!1);function C({href:e,children:n}){const s=r.useContext(U);return H&&!s&&Me(),t.jsx("li",{className:b.item,children:t.jsx(F,{href:e,children:n})})}C.isSmartyTableOfContentsLink=!0;function He(e){return e===C?!0:typeof e=="function"&&e.isSmartyTableOfContentsLink===!0}function Pe({title:e="Table of contents",children:n}){const s=r.useId();return H&&P(n,He),t.jsxs("nav",{className:b.nav,"aria-labelledby":s,children:[t.jsx("h2",{id:s,className:b.heading,children:e}),t.jsx(U,{value:!0,children:t.jsx("ul",{role:"list",className:b.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",h={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 u=(i?e:[e]).map(o=>Ge(o).map(d=>({word:d,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(D,{children:u.map((o,d)=>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},_))},d))}),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_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 yn({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 L=100;function xn({label:e,value:n,onChange:s,disabled:i=!1,isTagInvalid:c,onInputChange:u,error:o}){const d=r.useId(),f=`${d}-message`,_=r.useRef(null),[m,z]=r.useState(""),V=n.length>=L,q=a=>{z(a),u?.(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]),q(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:d,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,p)=>t.jsx(yn,{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:d,className:l.input,size:1,value:m,disabled:i,readOnly:V,"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 vn="_field_otub4_1",jn="_label_otub4_16",bn="_reveal_otub4_27",Nn="_input_otub4_37",gn="_empty_otub4_56",y={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),u=o=>{o.target!==c.current&&(o.preventDefault(),c.current?.focus())};return t.jsxs("div",{className:[y.field,!n&&y.empty].filter(Boolean).join(" "),onMouseDown:u,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=D;exports.H2=ee;exports.Hero=Qe;exports.Link=F;exports.LinkProvider=je;exports.ListItem=k;exports.MultitagField=xn;exports.Paragraph=se;exports.SideNav=De;exports.SideNavLink=Ee;exports.TableOfContents=Pe;exports.TableOfContentsLink=C;exports.TextField=Ln;exports.UnorderedList=ce;
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,165 +1,179 @@
1
1
  "use client";
2
2
  import { jsx as s, jsxs as _ } from "react/jsx-runtime";
3
- import { Children as E, isValidElement as B, Fragment as A, createContext as $, useContext as w, useId as x, useRef as M, useState as ne } from "react";
4
- const te = "_h1_1765w_1", se = {
5
- h1: te
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 ie({ children: e, className: n }) {
8
- const t = [se.h1, n].filter(Boolean).join(" ");
9
- return /* @__PURE__ */ s("h1", { className: t, children: e });
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 oe = "_h2_1eque_1", re = {
12
- h2: oe
11
+ const ln = "_h2_1eque_1", un = {
12
+ h2: ln
13
13
  };
14
- function Ln({ children: e }) {
15
- return /* @__PURE__ */ s("h2", { className: re.h2, children: e });
14
+ function Le({ children: n }) {
15
+ return /* @__PURE__ */ s("h2", { className: un.h2, children: n });
16
16
  }
17
- const ae = "_paragraph_11t85_1", ce = {
18
- paragraph: ae
17
+ const dn = "_paragraph_11t85_1", fn = {
18
+ paragraph: dn
19
19
  };
20
- function kn({ children: e }) {
21
- return /* @__PURE__ */ s("p", { className: ce.paragraph, children: e });
22
- }
23
- const W = typeof process < "u" && process.env.NODE_ENV !== "production", I = /* @__PURE__ */ new Set();
24
- function T(e) {
25
- I.has(e) || (I.add(e), console.warn(`[@smartyweb/ui] ${e}`));
26
- }
27
- function le(e) {
28
- if (typeof e == "string") return `<${e}>`;
29
- if (typeof e == "function") return `<${e.name || "Component"}>`;
30
- if (typeof e == "object" && e !== null && "displayName" in e) {
31
- const { displayName: n } = e;
32
- if (typeof n == "string") return `<${n}>`;
20
+ function ke({ children: n }) {
21
+ return /* @__PURE__ */ s("p", { className: fn.paragraph, children: n });
22
+ }
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
+ }
27
+ function _n(n) {
28
+ if (typeof n == "string") return `<${n}>`;
29
+ if (typeof n == "function") return `<${n.name || "Component"}>`;
30
+ if (typeof n == "object" && n !== null && "displayName" in n) {
31
+ const { displayName: e } = n;
32
+ if (typeof e == "string") return `<${e}>`;
33
33
  }
34
34
  return "an unknown element";
35
35
  }
36
- function R(e, n) {
37
- for (const t of E.toArray(e)) {
38
- if (!B(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
40
  const i = String(t).trim();
41
41
  if (i === "") continue;
42
- T(
42
+ C(
43
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 === A) {
47
+ if (t.type === F) {
48
48
  const { children: i } = t.props;
49
- R(i, n);
49
+ U(i, e);
50
50
  continue;
51
51
  }
52
- n(t.type) || t.type === "li" || T(
53
- `<UnorderedList> received ${le(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 ue() {
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 de = "_list_1p627_1", fe = "_item_1p627_14", F = {
63
- list: de,
64
- item: fe
65
- }, z = $(!1);
66
- function H({ children: e }) {
67
- const n = w(z);
68
- return W && !n && ue(), /* @__PURE__ */ s("li", { className: F.item, children: e });
69
- }
70
- H.isSmartyListItem = !0;
71
- function _e(e) {
72
- return e === H ? !0 : typeof e == "function" && e.isSmartyListItem === !0;
73
- }
74
- function On({ children: e }) {
75
- return W && R(e, _e), /* @__PURE__ */ s(z, { value: !0, children: /* @__PURE__ */ s("ul", { role: "list", className: F.list, children: e }) });
76
- }
77
- const me = "_button_1391k_1", pe = "_sm_1391k_26", he = "_primary_1391k_33", ye = "_secondary_1391k_49", ve = "_negative_1391k_68", k = {
78
- button: me,
79
- sm: pe,
80
- primary: he,
81
- secondary: ye,
82
- negative: ve
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
+ }
70
+ J.isSmartyListItem = !0;
71
+ function yn(n) {
72
+ return n === J ? !0 : typeof n == "function" && n.isSmartyListItem === !0;
73
+ }
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 }) });
76
+ }
77
+ const vn = "_link_1m7hb_1", bn = "_accent_1m7hb_28", Nn = "_disabled_1m7hb_38", gn = "_newTabNote_1m7hb_48", $ = {
78
+ link: vn,
79
+ accent: bn,
80
+ disabled: Nn,
81
+ newTabNote: gn
82
+ }, wn = /\.[a-z][a-z\d]{1,4}$/;
83
+ function K(n, e) {
84
+ if (e) return "download";
85
+ if (/^(https?:)?\/\//i.test(n)) return "external";
86
+ if (n.startsWith("#") || /^[a-z][a-z\d+.-]*:/i.test(n)) return "plain";
87
+ const t = (n.split(/[?#]/)[0] ?? "").toLowerCase();
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);
99
+ }
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
83
106
  };
84
- function Tn({
85
- as: e = "button",
86
- variant: n = "primary",
107
+ function xe({
108
+ as: n,
109
+ variant: e = "primary",
87
110
  size: t = "default",
88
111
  href: i,
89
- openInNewTab: c,
90
- disabled: l,
91
- type: o,
92
- onClick: u,
93
- children: d
112
+ openInNewTab: c = !1,
113
+ download: u = !1,
114
+ disabled: o,
115
+ type: d = "button",
116
+ onClick: f,
117
+ children: l
94
118
  }) {
95
- const m = [k.button, k[n], t === "sm" && k.sm].filter(Boolean).join(" ");
96
- return /* @__PURE__ */ s(
97
- e,
98
- {
99
- className: m,
100
- href: i,
101
- target: c ? "_blank" : void 0,
102
- rel: c ? "noopener noreferrer" : void 0,
103
- disabled: l,
104
- type: o,
105
- onClick: u,
106
- children: d
107
- }
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
+ )
108
142
  );
109
143
  }
110
- const Ne = "_link_1m7hb_1", be = "_accent_1m7hb_28", ge = "_disabled_1m7hb_38", $e = "_newTabNote_1m7hb_48", b = {
111
- link: Ne,
112
- accent: be,
113
- disabled: ge,
114
- newTabNote: $e
115
- }, U = $(null);
116
- function Cn({ component: e, children: n }) {
117
- return /* @__PURE__ */ s(U, { value: e, children: n });
118
- }
119
- function we() {
120
- return w(U);
121
- }
122
- const Le = " (opens in new tab)", ke = /\.[a-z][a-z\d]{1,4}$/;
123
- function Oe(e, n) {
124
- if (n) return "download";
125
- if (/^(https?:)?\/\//i.test(e)) return "external";
126
- if (e.startsWith("#") || /^[a-z][a-z\d+.-]*:/i.test(e)) return "plain";
127
- const t = (e.split(/[?#]/)[0] ?? "").toLowerCase();
128
- return ke.test(t) ? "plain" : "router";
129
- }
130
- function Te({
131
- variant: e = "default",
132
- href: n,
144
+ function xn({
145
+ variant: n = "default",
146
+ href: e,
133
147
  download: t = !1,
134
148
  disabled: i,
135
149
  onClick: c,
136
- children: l
150
+ children: u
137
151
  }) {
138
- const o = we(), d = [b.link, e === "accent" && b.accent, i && b.disabled].filter(Boolean).join(" ");
139
- if (n === void 0)
152
+ const o = G(), f = [$.link, n === "accent" && $.accent, i && $.disabled].filter(Boolean).join(" ");
153
+ if (e === void 0)
140
154
  return /* @__PURE__ */ s(
141
155
  "button",
142
156
  {
143
157
  type: "button",
144
- className: d,
158
+ className: f,
145
159
  disabled: i,
146
160
  onClick: i ? void 0 : c,
147
161
  "aria-disabled": i,
148
- children: l
162
+ children: u
149
163
  }
150
164
  );
151
- const f = Oe(n, t);
152
- return f === "external" ? /* @__PURE__ */ _(
165
+ const l = K(e, t);
166
+ return l === "external" ? /* @__PURE__ */ _(
153
167
  "a",
154
168
  {
155
- className: d,
156
- href: n,
169
+ className: f,
170
+ href: e,
157
171
  target: "_blank",
158
172
  rel: "noopener noreferrer",
159
173
  onClick: c,
160
174
  children: [
161
- l,
162
- /* @__PURE__ */ s("span", { className: b.newTabNote, children: Le })
175
+ u,
176
+ /* @__PURE__ */ s(X, {})
163
177
  ]
164
178
  }
165
179
  ) : (
@@ -167,146 +181,146 @@ function Te({
167
181
  // identity across renders — the remount this rule guards against cannot happen.
168
182
  // eslint-disable-next-line react-hooks/static-components
169
183
  /* @__PURE__ */ s(
170
- f === "router" && o ? o : "a",
184
+ l === "router" && o ? o : "a",
171
185
  {
172
- className: d,
173
- href: n,
174
- download: f === "download" ? "" : void 0,
186
+ className: f,
187
+ href: e,
188
+ download: l === "download" ? "" : void 0,
175
189
  onClick: c,
176
- children: l
190
+ children: u
177
191
  }
178
192
  )
179
193
  );
180
194
  }
181
- const Ce = typeof process < "u" && process.env.NODE_ENV !== "production", S = /* @__PURE__ */ new Set();
182
- function xe(e) {
183
- S.has(e) || (S.add(e), console.warn(`[@smartyweb/ui] ${e}`));
195
+ const Cn = typeof process < "u" && process.env.NODE_ENV !== "production", M = /* @__PURE__ */ new Set();
196
+ function jn(n) {
197
+ M.has(n) || (M.add(n), console.warn(`[@smartyweb/ui] ${n}`));
184
198
  }
185
- function je() {
186
- xe(
199
+ function In() {
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 Ie = "_nav_dxkjl_3", Se = "_list_dxkjl_7", De = "_item_dxkjl_16", Ee = "_link_dxkjl_20", Be = "_current_dxkjl_48", v = {
191
- nav: Ie,
192
- list: Se,
193
- item: De,
194
- link: Ee,
195
- current: Be
196
- }, V = $(null);
197
- function xn({ label: e, current: n, children: t }) {
198
- return Ce && !e?.trim() && je(), /* @__PURE__ */ s("nav", { className: v.nav, "aria-label": e, children: /* @__PURE__ */ s(V, { value: n ?? null, children: /* @__PURE__ */ s("ul", { className: v.list, children: t }) }) });
199
- }
200
- function jn({
201
- as: e = "a",
202
- href: n,
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,
208
+ link: En,
209
+ current: Mn
210
+ }, Z = k(null);
211
+ function Ce({ label: n, current: e, 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 }) }) });
213
+ }
214
+ function je({
215
+ as: n = "a",
216
+ href: e,
203
217
  current: t,
204
218
  openInNewTab: i,
205
219
  onClick: c,
206
- children: l
220
+ children: u
207
221
  }) {
208
- const o = w(V), u = t ?? (o !== null && o === n), d = [v.link, u && v.current].filter(Boolean).join(" ");
209
- return /* @__PURE__ */ s("li", { className: v.item, children: /* @__PURE__ */ s(
210
- e,
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(
224
+ n,
211
225
  {
212
- className: d,
213
- href: n,
226
+ className: f,
227
+ href: e,
214
228
  target: i ? "_blank" : void 0,
215
229
  rel: i ? "noopener noreferrer" : void 0,
216
230
  onClick: c,
217
- "aria-current": u ? "location" : void 0,
218
- children: l
231
+ "aria-current": d ? "location" : void 0,
232
+ children: u
219
233
  }
220
234
  ) });
221
235
  }
222
- const P = typeof process < "u" && process.env.NODE_ENV !== "production", D = /* @__PURE__ */ new Set();
223
- function C(e) {
224
- D.has(e) || (D.add(e), console.warn(`[@smartyweb/ui] ${e}`));
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 Ae(e) {
227
- if (typeof e == "string") return `<${e}>`;
228
- if (typeof e == "function") return `<${e.name || "Component"}>`;
229
- if (typeof e == "object" && e !== null && "displayName" in e) {
230
- const { displayName: n } = e;
231
- if (typeof n == "string") return `<${n}>`;
240
+ function Rn(n) {
241
+ if (typeof n == "string") return `<${n}>`;
242
+ if (typeof n == "function") return `<${n.name || "Component"}>`;
243
+ if (typeof n == "object" && n !== null && "displayName" in n) {
244
+ const { displayName: e } = n;
245
+ if (typeof e == "string") return `<${e}>`;
232
246
  }
233
247
  return "an unknown element";
234
248
  }
235
- function J(e, n) {
236
- for (const t of E.toArray(e)) {
237
- if (!B(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
253
  const i = String(t).trim();
240
254
  if (i === "") continue;
241
- C(
255
+ j(
242
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 === A) {
260
+ if (t.type === F) {
247
261
  const { children: i } = t.props;
248
- J(i, n);
262
+ Y(i, e);
249
263
  continue;
250
264
  }
251
- n(t.type) || t.type === "li" || C(
252
- `<TableOfContents> received ${Ae(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 Me() {
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 We = "_nav_1us0j_1", Re = "_heading_1us0j_8", Fe = "_list_1us0j_19", ze = "_item_1us0j_28", g = {
262
- nav: We,
263
- heading: Re,
264
- list: Fe,
265
- item: ze
266
- }, K = $(!1);
267
- function X({ href: e, children: n }) {
268
- const t = w(K);
269
- return P && !t && Me(), /* @__PURE__ */ s("li", { className: g.item, children: /* @__PURE__ */ s(Te, { href: e, children: n }) });
270
- }
271
- X.isSmartyTableOfContentsLink = !0;
272
- function He(e) {
273
- return e === X ? !0 : typeof e == "function" && e.isSmartyTableOfContentsLink === !0;
274
- }
275
- function In({ title: e = "Table of contents", children: n }) {
276
- const t = x();
277
- return P && J(n, He), /* @__PURE__ */ _("nav", { className: g.nav, "aria-labelledby": t, children: [
278
- /* @__PURE__ */ s("h2", { id: t, className: g.heading, children: e }),
279
- /* @__PURE__ */ s(K, { value: !0, children: /* @__PURE__ */ s("ul", { role: "list", className: g.list, children: n }) })
275
+ const Wn = "_nav_1us0j_1", Fn = "_heading_1us0j_8", zn = "_list_1us0j_19", Hn = "_item_1us0j_28", L = {
276
+ nav: Wn,
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 Ue = "_hero_93692_11", Ve = "_layout_93692_16", Pe = "_content_93692_21", Je = "_titleLine_93692_25", Ke = "_titleWord_93692_29", Xe = "_description_93692_35", qe = "_media_93692_48", h = {
283
- hero: Ue,
284
- layout: Ve,
285
- content: Pe,
286
- titleLine: Je,
287
- titleWord: Ke,
288
- description: Xe,
289
- media: qe
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,
303
+ media: Gn
290
304
  };
291
- function Ge(e) {
292
- return e.replace(/([- ])/g, (n) => `${n === " " ? " " : n}|split|`).split("|split|");
305
+ function Zn(n) {
306
+ return n.replace(/([- ])/g, (e) => `${e === " " ? " " : e}|split|`).split("|split|");
293
307
  }
294
- const Ze = (e) => ({ "--hero-index": e });
295
- function Sn({ title: e, description: n, media: t }) {
296
- const i = Array.isArray(e);
308
+ const Qn = (n) => ({ "--hero-index": n });
309
+ function Se({ title: n, description: e, media: t }) {
310
+ const i = Array.isArray(n);
297
311
  let c = 0;
298
- const l = (i ? e : [e]).map(
299
- (o) => Ge(o).map((u) => ({ word: u, index: c++ }))
312
+ const u = (i ? n : [n]).map(
313
+ (o) => Zn(o).map((d) => ({ word: d, index: c++ }))
300
314
  );
301
- return /* @__PURE__ */ s("section", { className: h.hero, children: /* @__PURE__ */ _("div", { className: h.layout, children: [
302
- /* @__PURE__ */ s("div", { className: h.media, children: t }),
303
- /* @__PURE__ */ _("div", { className: h.content, children: [
304
- /* @__PURE__ */ s(ie, { children: l.map((o, u) => /* @__PURE__ */ s("span", { className: i ? h.titleLine : void 0, children: o.map(({ word: d, index: f }) => /* @__PURE__ */ s("span", { className: h.titleWord, style: Ze(f), children: d }, f)) }, u)) }),
305
- /* @__PURE__ */ s("p", { className: h.description, children: n })
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
- function Qe() {
323
+ function Yn() {
310
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
  {
@@ -317,137 +331,137 @@ function Qe() {
317
331
  }
318
332
  ) });
319
333
  }
320
- const Ye = "_field_14suf_1", en = "_error_14suf_17", nn = "_message_14suf_21", tn = "_content_14suf_36", sn = "_reveal_14suf_43", on = "_label_14suf_53", rn = "_tags_14suf_64", an = "_chips_14suf_71", cn = "_input_14suf_78", ln = "_counter_14suf_95", un = "_empty_14suf_107", dn = "_disabled_14suf_134", fn = "_chip_14suf_71", _n = "_chipText_14suf_160", mn = "_remove_14suf_165", pn = "_invalid_14suf_176", a = {
321
- field: Ye,
322
- error: en,
323
- message: nn,
324
- content: tn,
325
- reveal: sn,
326
- label: on,
327
- tags: rn,
328
- chips: an,
329
- input: cn,
330
- counter: ln,
331
- empty: un,
332
- disabled: dn,
333
- chip: fn,
334
- chipText: _n,
335
- remove: mn,
336
- invalid: pn
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 = {
335
+ field: ne,
336
+ error: ee,
337
+ message: te,
338
+ content: se,
339
+ reveal: ie,
340
+ label: oe,
341
+ tags: re,
342
+ chips: ae,
343
+ input: ce,
344
+ counter: le,
345
+ empty: ue,
346
+ disabled: de,
347
+ chip: fe,
348
+ chipText: _e,
349
+ remove: me,
350
+ invalid: pe
337
351
  };
338
- function hn({ children: e, invalid: n, onRemove: t }) {
339
- return /* @__PURE__ */ _("li", { className: [a.chip, n && a.invalid].filter(Boolean).join(" "), children: [
340
- /* @__PURE__ */ s("span", { className: a.chipText, children: e }),
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 }),
341
355
  t && /* @__PURE__ */ s(
342
356
  "button",
343
357
  {
344
358
  type: "button",
345
359
  className: a.remove,
346
- "aria-label": `Remove ${e}${n ? " (invalid)" : ""}`,
360
+ "aria-label": `Remove ${n}${e ? " (invalid)" : ""}`,
347
361
  onClick: t,
348
- children: /* @__PURE__ */ s(Qe, {})
362
+ children: /* @__PURE__ */ s(Yn, {})
349
363
  }
350
364
  )
351
365
  ] });
352
366
  }
353
- const O = 100;
354
- function Dn({
355
- label: e,
356
- value: n,
367
+ const x = 100;
368
+ function De({
369
+ label: n,
370
+ value: e,
357
371
  onChange: t,
358
372
  disabled: i = !1,
359
373
  isTagInvalid: c,
360
- onInputChange: l,
374
+ onInputChange: u,
361
375
  error: o
362
376
  }) {
363
- const u = x(), d = `${u}-message`, f = M(null), [m, q] = ne(""), G = n.length >= O, Z = (r) => {
364
- q(r), l?.(r);
365
- }, L = (r) => {
366
- const p = r.split(/[\s,]+/), j = p.pop() ?? "", N = p.filter(Boolean).slice(0, Math.max(0, O - n.length));
367
- N.length && t([...n, ...N]), Z(j);
368
- }, Q = (r) => {
369
- r.key === "Enter" && m && !r.nativeEvent.isComposing ? (r.preventDefault(), L(`${m},`)) : r.key === "Backspace" && !m && n.length && t(n.slice(0, -1));
370
- }, Y = (r) => {
371
- i || r.target === f.current || r.target.closest("button") || (r.preventDefault(), f.current?.focus());
372
- }, ee = [
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 = [
373
387
  a.field,
374
- !n.length && a.empty,
388
+ !e.length && a.empty,
375
389
  i && a.disabled,
376
390
  o && a.error
377
391
  ].filter(Boolean).join(" ");
378
392
  return /* @__PURE__ */ _("div", { children: [
379
- /* @__PURE__ */ _("div", { className: ee, onMouseDown: Y, children: [
393
+ /* @__PURE__ */ _("div", { className: sn, onMouseDown: tn, children: [
380
394
  /* @__PURE__ */ _("div", { className: a.content, children: [
381
- /* @__PURE__ */ s("label", { htmlFor: u, className: a.label, children: e }),
395
+ /* @__PURE__ */ s("label", { htmlFor: d, className: a.label, children: n }),
382
396
  /* @__PURE__ */ s("div", { className: a.reveal, children: /* @__PURE__ */ _("div", { className: a.tags, children: [
383
- n.length > 0 && /* @__PURE__ */ s("ul", { role: "list", className: a.chips, children: n.map((r, p) => /* @__PURE__ */ s(
384
- hn,
397
+ e.length > 0 && /* @__PURE__ */ s("ul", { role: "list", className: a.chips, children: e.map((r, h) => /* @__PURE__ */ s(
398
+ he,
385
399
  {
386
- invalid: c?.(r, p) ?? !1,
400
+ invalid: c?.(r, h) ?? !1,
387
401
  onRemove: i ? void 0 : () => {
388
- t(n.filter((j, N) => N !== p)), p === n.length - 1 && f.current?.focus();
402
+ t(e.filter((B, w) => w !== h)), h === e.length - 1 && l.current?.focus();
389
403
  },
390
404
  children: r
391
405
  },
392
- p
406
+ h
393
407
  )) }),
394
408
  /* @__PURE__ */ s(
395
409
  "input",
396
410
  {
397
- ref: f,
398
- id: u,
411
+ ref: l,
412
+ id: d,
399
413
  className: a.input,
400
414
  size: 1,
401
415
  value: m,
402
416
  disabled: i,
403
- readOnly: G,
417
+ readOnly: g,
404
418
  "aria-invalid": o ? !0 : void 0,
405
- "aria-describedby": o ? d : void 0,
419
+ "aria-describedby": o ? f : void 0,
406
420
  onChange: (r) => {
407
- L(r.target.value);
421
+ p(r.target.value);
408
422
  },
409
- onKeyDown: Q,
423
+ onKeyDown: D,
410
424
  onBlur: () => {
411
- L(`${m},`);
425
+ p(`${m},`);
412
426
  }
413
427
  }
414
428
  )
415
429
  ] }) })
416
430
  ] }),
417
431
  /* @__PURE__ */ s("div", { className: a.reveal, children: /* @__PURE__ */ _("p", { className: a.counter, children: [
418
- n.length,
432
+ e.length,
419
433
  " / ",
420
- O
434
+ x
421
435
  ] }) })
422
436
  ] }),
423
- /* @__PURE__ */ s("p", { id: d, className: a.message, "aria-live": "polite", children: o })
437
+ /* @__PURE__ */ s("p", { id: f, className: a.message, "aria-live": "polite", children: o })
424
438
  ] });
425
439
  }
426
- const yn = "_field_otub4_1", vn = "_label_otub4_16", Nn = "_reveal_otub4_27", bn = "_input_otub4_37", gn = "_empty_otub4_56", y = {
427
- field: yn,
428
- label: vn,
429
- reveal: Nn,
430
- input: bn,
431
- empty: gn
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
432
446
  };
433
- function En({ label: e, value: n, onChange: t }) {
434
- const i = x(), c = M(null), l = (o) => {
447
+ function Be({ label: n, value: e, onChange: t }) {
448
+ const i = I(), c = z(null), u = (o) => {
435
449
  o.target !== c.current && (o.preventDefault(), c.current?.focus());
436
450
  };
437
451
  return /* @__PURE__ */ _(
438
452
  "div",
439
453
  {
440
- className: [y.field, !n && y.empty].filter(Boolean).join(" "),
441
- onMouseDown: l,
454
+ className: [b.field, !e && b.empty].filter(Boolean).join(" "),
455
+ onMouseDown: u,
442
456
  children: [
443
- /* @__PURE__ */ s("label", { htmlFor: i, className: y.label, children: e }),
444
- /* @__PURE__ */ s("div", { className: y.reveal, children: /* @__PURE__ */ s("div", { children: /* @__PURE__ */ s(
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(
445
459
  "input",
446
460
  {
447
461
  ref: c,
448
462
  id: i,
449
- className: y.input,
450
- value: n,
463
+ className: b.input,
464
+ value: e,
451
465
  onChange: (o) => {
452
466
  t(o.target.value);
453
467
  }
@@ -458,19 +472,19 @@ function En({ label: e, value: n, onChange: t }) {
458
472
  );
459
473
  }
460
474
  export {
461
- Tn as Button,
462
- ie as H1,
463
- Ln as H2,
464
- Sn as Hero,
465
- Te as Link,
466
- Cn as LinkProvider,
467
- H as ListItem,
468
- Dn as MultitagField,
469
- kn as Paragraph,
470
- xn as SideNav,
471
- jn as SideNavLink,
472
- In as TableOfContents,
473
- X as TableOfContentsLink,
474
- En as TextField,
475
- On as UnorderedList
475
+ xe as Button,
476
+ cn as H1,
477
+ Le as H2,
478
+ Se as Hero,
479
+ xn as Link,
480
+ Te as LinkProvider,
481
+ J as ListItem,
482
+ De as MultitagField,
483
+ ke as Paragraph,
484
+ Ce as SideNav,
485
+ je as SideNavLink,
486
+ Ie as TableOfContents,
487
+ en as TableOfContentsLink,
488
+ Be as TextField,
489
+ Oe as UnorderedList
476
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_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)}._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_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}}
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.1",
3
+ "version": "2.6.0-irina-button-review.g6cb241d",
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
  }