@smartyweb/ui 2.1.0 → 2.2.0-max-storefront-handoff.g5946cfa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -7
- package/dist/forms/MultitagField/Chip.d.ts +8 -0
- package/dist/forms/MultitagField/CloseIcon.d.ts +1 -0
- package/dist/forms/MultitagField/MultitagField.d.ts +13 -0
- package/dist/forms/MultitagField/index.d.ts +2 -0
- package/dist/forms/index.d.ts +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +288 -80
- package/dist/navigation/SideNav/SideNav.d.ts +27 -0
- package/dist/navigation/SideNav/SideNavContext.d.ts +5 -0
- package/dist/navigation/SideNav/SideNavLink.d.ts +31 -0
- package/dist/navigation/SideNav/devWarnings.d.ts +7 -0
- package/dist/navigation/SideNav/index.d.ts +4 -0
- package/dist/navigation/index.d.ts +1 -0
- package/dist/text/UnorderedList/ListItem.d.ts +3 -0
- package/dist/text/UnorderedList/UnorderedListContext.d.ts +2 -0
- package/dist/text/UnorderedList/devWarnings.d.ts +13 -0
- package/dist/ui.css +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -59,13 +59,14 @@ If a variable is not set, components fall back to `system-ui` (headings/body) or
|
|
|
59
59
|
|
|
60
60
|
<!-- When you add or remove a skill, update this catalog. -->
|
|
61
61
|
|
|
62
|
-
| Skill
|
|
63
|
-
|
|
|
64
|
-
| `/new-component`
|
|
65
|
-
| `/validate-tokens`
|
|
66
|
-
| `/version-up`
|
|
67
|
-
| `/commit-push`
|
|
68
|
-
| `/link-ui`
|
|
62
|
+
| Skill | What it does |
|
|
63
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `/new-component` | Build or align a component from its live Figma node — bindings, fidelity table, gates, measured report. |
|
|
65
|
+
| `/validate-tokens` | Check the library still mirrors Figma — recapture every component's bindings, run the mirror, repair. |
|
|
66
|
+
| `/version-up` | Cut a new version with changesets (bump, changelog, release prep). |
|
|
67
|
+
| `/commit-push` | Commit and push all changes with a summary commit message. |
|
|
68
|
+
| `/link-ui` | Live-link local `@smartyweb/ui` into storefront-2 so edits show up without publishing. |
|
|
69
|
+
| `/use-in-storefront` | Carry a component into a storefront-2 page — install, place, gates, preview. |
|
|
69
70
|
|
|
70
71
|
Local commands, for the times you do need to run something by hand:
|
|
71
72
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ChipProps {
|
|
2
|
+
children: string;
|
|
3
|
+
invalid: boolean;
|
|
4
|
+
/** Undefined, the chip has no remove button — Figma's disabled chip. */
|
|
5
|
+
onRemove: (() => void) | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare function Chip({ children, invalid, onRemove }: ChipProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function CloseIcon(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface MultitagFieldProps {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string[];
|
|
4
|
+
onChange: (tags: string[]) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
/** Tags it returns true for render as Figma's negative chip. */
|
|
7
|
+
isTagInvalid?: (tag: string, index: number) => boolean;
|
|
8
|
+
/** The text typed but not yet a tag. */
|
|
9
|
+
onInputChange?: (text: string) => void;
|
|
10
|
+
/** Figma's Error + Helper Text: the error stroke, and this message below the field. */
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function MultitagField({ label, value, onChange, disabled, isTagInvalid, onInputChange, error, }: MultitagFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MultitagField';
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),W="_h1_1765w_1",P={h1:W};function k({children:e,className:n}){const s=[P.h1,n].filter(Boolean).join(" ");return t.jsx("h1",{className:s,children:e})}const R="_h2_1eque_1",T={h2:R};function U({children:e}){return t.jsx("h2",{className:T.h2,children:e})}const F="_paragraph_11t85_1",V={paragraph:F};function K({children:e}){return t.jsx("p",{className:V.paragraph,children:e})}const z=typeof process<"u"&&process.env.NODE_ENV!=="production",$=new Set;function N(e){$.has(e)||($.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function G(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 S(e,n){for(const s of l.Children.toArray(e)){if(!l.isValidElement(s)){if(typeof s!="string"&&typeof s!="number")continue;const r=String(s).trim();if(r==="")continue;N(`<UnorderedList> received the text ${JSON.stringify(r.slice(0,40))} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`);continue}if(s.type===l.Fragment){const{children:r}=s.props;S(r,n);continue}n(s.type)||s.type==="li"||N(`<UnorderedList> received ${G(s.type)} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`)}}function J(){N("<ListItem> was rendered outside of an <UnorderedList>. It renders an <li>, which browsers only style correctly inside a list.")}const X="_list_1p627_1",Z="_item_1p627_14",C={list:X,item:Z},D=l.createContext(!1);function L({children:e}){const n=l.useContext(D);return z&&!n&&J(),t.jsx("li",{className:C.item,children:e})}L.isSmartyListItem=!0;function Q(e){return e===L?!0:typeof e=="function"&&e.isSmartyListItem===!0}function Y({children:e}){return z&&S(e,Q),t.jsx(D,{value:!0,children:t.jsx("ul",{role:"list",className:C.list,children:e})})}const ee="_button_81qo0_1",te="_sm_81qo0_26",ne="_primary_81qo0_33",se="_secondary_81qo0_49",ie="_negative_81qo0_68",v={button:ee,sm:te,primary:ne,secondary:se,negative:ie};function re({as:e="button",variant:n="primary",size:s="default",href:r,openInNewTab:d,disabled:p,type:a,onClick:c,children:u}){const m=[v.button,v[n],s==="sm"&&v.sm].filter(Boolean).join(" ");return t.jsx(e,{className:m,href:r,target:d?"_blank":void 0,rel:d?"noopener noreferrer":void 0,disabled:p,type:a,onClick:c,children:u})}const oe=typeof process<"u"&&process.env.NODE_ENV!=="production",w=new Set;function ae(e){w.has(e)||(w.add(e),console.warn(`[@smartyweb/ui] ${e}`))}function ce(){ae("<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 le="_nav_dxkjl_3",de="_list_dxkjl_7",ue="_item_dxkjl_16",_e="_link_dxkjl_20",me="_current_dxkjl_48",g={nav:le,list:de,item:ue,link:_e,current:me},I=l.createContext(null);function pe({label:e,current:n,children:s}){return oe&&!e?.trim()&&ce(),t.jsx("nav",{className:g.nav,"aria-label":e,children:t.jsx(I,{value:n??null,children:t.jsx("ul",{className:g.list,children:s})})})}function fe({as:e="a",href:n,current:s,openInNewTab:r,onClick:d,children:p}){const a=l.useContext(I),c=s??(a!==null&&a===n),u=[g.link,c&&g.current].filter(Boolean).join(" ");return t.jsx("li",{className:g.item,children:t.jsx(e,{className:u,href:n,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,onClick:d,"aria-current":c?"location":void 0,children:p})})}const he="_hero_93692_11",ge="_layout_93692_16",ye="_content_93692_21",xe="_titleLine_93692_25",ve="_titleWord_93692_29",je="_description_93692_35",Ne="_media_93692_48",h={hero:he,layout:ge,content:ye,titleLine:xe,titleWord:ve,description:je,media:Ne};function Le(e){return e.replace(/([- ])/g,n=>`${n===" "?" ":n}|split|`).split("|split|")}const be=e=>({"--hero-index":e});function $e({title:e,description:n,media:s}){const r=Array.isArray(e);let d=0;const p=(r?e:[e]).map(a=>Le(a).map(c=>({word:c,index:d++})));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(k,{children:p.map((a,c)=>t.jsx("span",{className:r?h.titleLine:void 0,children:a.map(({word:u,index:_})=>t.jsx("span",{className:h.titleWord,style:be(_),children:u},_))},c))}),t.jsx("p",{className:h.description,children:n})]})]})})}function we(){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 ke="_field_7z5g3_1",ze="_error_7z5g3_17",Se="_message_7z5g3_21",Ce="_content_7z5g3_36",De="_reveal_7z5g3_43",Ie="_label_7z5g3_53",Oe="_tags_7z5g3_64",Be="_input_7z5g3_71",Me="_counter_7z5g3_88",qe="_empty_7z5g3_100",Ae="_disabled_7z5g3_127",He="_chip_7z5g3_132",Ee="_chipText_7z5g3_153",We="_remove_7z5g3_158",Pe="_invalid_7z5g3_169",o={field:ke,error:ze,message:Se,content:Ce,reveal:De,label:Ie,tags:Oe,input:Be,counter:Me,empty:qe,disabled:Ae,chip:He,chipText:Ee,remove:We,invalid:Pe};function Re({children:e,invalid:n,onRemove:s}){return t.jsxs("span",{className:[o.chip,n&&o.invalid].filter(Boolean).join(" "),children:[t.jsx("span",{className:o.chipText,children:e}),s&&t.jsx("button",{type:"button",className:o.remove,"aria-label":`Remove ${e}${n?" (invalid)":""}`,onClick:s,children:t.jsx(we,{})})]})}const j=100;function Te({label:e,value:n,onChange:s,disabled:r=!1,isTagInvalid:d,onInputChange:p,error:a}){const c=l.useId(),u=`${c}-message`,_=l.useRef(null),[m,O]=l.useState(""),B=n.length>=j,M=i=>{O(i),p?.(i)},y=i=>{const f=i.split(/[\s,]+/),b=f.pop()??"",x=f.filter(Boolean).slice(0,j-n.length);x.length&&s([...n,...x]),M(b)},q=i=>{i.key==="Enter"&&m&&!i.nativeEvent.isComposing?(i.preventDefault(),y(`${m},`)):i.key==="Backspace"&&!m&&n.length&&s(n.slice(0,-1))},A=i=>{i.preventDefault(),y(`${m}${i.clipboardData.getData("text")},`)},H=i=>{r||i.target===_.current||i.target.closest("button")||(i.preventDefault(),_.current?.focus())},E=[o.field,!n.length&&o.empty,r&&o.disabled,a&&o.error].filter(Boolean).join(" ");return t.jsxs("div",{children:[t.jsxs("div",{className:E,onMouseDown:H,children:[t.jsxs("div",{className:o.content,children:[t.jsx("label",{htmlFor:c,className:o.label,children:e}),t.jsx("div",{className:o.reveal,children:t.jsxs("div",{className:o.tags,children:[n.map((i,f)=>t.jsx(Re,{invalid:d?.(i,f)??!1,onRemove:r?void 0:()=>{s(n.filter((b,x)=>x!==f)),f===n.length-1&&_.current?.focus()},children:i},f)),t.jsx("input",{ref:_,id:c,className:o.input,size:1,value:m,disabled:r,readOnly:B,"aria-invalid":a?!0:void 0,"aria-describedby":a?u:void 0,onChange:i=>{y(i.target.value)},onKeyDown:q,onPaste:A,onBlur:()=>{y(`${m},`)}})]})})]}),t.jsx("div",{className:o.reveal,children:t.jsxs("p",{className:o.counter,children:[n.length," / ",j]})})]}),t.jsx("p",{id:u,className:o.message,"aria-live":"polite",children:a})]})}exports.Button=re;exports.H1=k;exports.H2=U;exports.Hero=$e;exports.ListItem=L;exports.MultitagField=Te;exports.Paragraph=K;exports.SideNav=pe;exports.SideNavLink=fe;exports.UnorderedList=Y;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,100 +1,308 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { jsx as n, jsxs as m } from "react/jsx-runtime";
|
|
3
|
+
import { Children as R, isValidElement as T, Fragment as U, createContext as k, useContext as z, useId as F, useRef as P, useState as V } from "react";
|
|
4
|
+
const K = "_h1_1765w_1", G = {
|
|
5
|
+
h1: K
|
|
5
6
|
};
|
|
6
|
-
function
|
|
7
|
-
const
|
|
8
|
-
return /* @__PURE__ */
|
|
7
|
+
function J({ children: e, className: t }) {
|
|
8
|
+
const s = [G.h1, t].filter(Boolean).join(" ");
|
|
9
|
+
return /* @__PURE__ */ n("h1", { className: s, children: e });
|
|
9
10
|
}
|
|
10
|
-
const
|
|
11
|
-
h2:
|
|
11
|
+
const X = "_h2_1eque_1", Z = {
|
|
12
|
+
h2: X
|
|
12
13
|
};
|
|
13
|
-
function
|
|
14
|
-
return /* @__PURE__ */
|
|
14
|
+
function Ve({ children: e }) {
|
|
15
|
+
return /* @__PURE__ */ n("h2", { className: Z.h2, children: e });
|
|
15
16
|
}
|
|
16
|
-
const
|
|
17
|
-
paragraph:
|
|
17
|
+
const Q = "_paragraph_11t85_1", Y = {
|
|
18
|
+
paragraph: Q
|
|
18
19
|
};
|
|
19
|
-
function
|
|
20
|
-
return /* @__PURE__ */
|
|
20
|
+
function Ke({ children: e }) {
|
|
21
|
+
return /* @__PURE__ */ n("p", { className: Y.paragraph, children: e });
|
|
21
22
|
}
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
23
|
+
const j = typeof process < "u" && process.env.NODE_ENV !== "production", w = /* @__PURE__ */ new Set();
|
|
24
|
+
function $(e) {
|
|
25
|
+
w.has(e) || (w.add(e), console.warn(`[@smartyweb/ui] ${e}`));
|
|
26
|
+
}
|
|
27
|
+
function ee(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: t } = e;
|
|
32
|
+
if (typeof t == "string") return `<${t}>`;
|
|
33
|
+
}
|
|
34
|
+
return "an unknown element";
|
|
35
|
+
}
|
|
36
|
+
function D(e, t) {
|
|
37
|
+
for (const s of R.toArray(e)) {
|
|
38
|
+
if (!T(s)) {
|
|
39
|
+
if (typeof s != "string" && typeof s != "number") continue;
|
|
40
|
+
const r = String(s).trim();
|
|
41
|
+
if (r === "") continue;
|
|
42
|
+
$(
|
|
43
|
+
`<UnorderedList> received the text ${JSON.stringify(r.slice(0, 40))} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`
|
|
44
|
+
);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (s.type === U) {
|
|
48
|
+
const { children: r } = s.props;
|
|
49
|
+
D(r, t);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
t(s.type) || s.type === "li" || $(
|
|
53
|
+
`<UnorderedList> received ${ee(s.type)} as a direct child. A <ul> may only contain list items — wrap it in <ListItem>.`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function te() {
|
|
58
|
+
$(
|
|
59
|
+
"<ListItem> was rendered outside of an <UnorderedList>. It renders an <li>, which browsers only style correctly inside a list."
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
const ne = "_list_1p627_1", se = "_item_1p627_14", C = {
|
|
63
|
+
list: ne,
|
|
64
|
+
item: se
|
|
65
|
+
}, I = k(!1);
|
|
66
|
+
function O({ children: e }) {
|
|
67
|
+
const t = z(I);
|
|
68
|
+
return j && !t && te(), /* @__PURE__ */ n("li", { className: C.item, children: e });
|
|
69
|
+
}
|
|
70
|
+
O.isSmartyListItem = !0;
|
|
71
|
+
function ie(e) {
|
|
72
|
+
return e === O ? !0 : typeof e == "function" && e.isSmartyListItem === !0;
|
|
73
|
+
}
|
|
74
|
+
function Ge({ children: e }) {
|
|
75
|
+
return j && D(e, ie), /* @__PURE__ */ n(I, { value: !0, children: /* @__PURE__ */ n("ul", { role: "list", className: C.list, children: e }) });
|
|
76
|
+
}
|
|
77
|
+
const re = "_button_81qo0_1", oe = "_sm_81qo0_26", ae = "_primary_81qo0_33", ce = "_secondary_81qo0_49", le = "_negative_81qo0_68", N = {
|
|
78
|
+
button: re,
|
|
79
|
+
sm: oe,
|
|
80
|
+
primary: ae,
|
|
81
|
+
secondary: ce,
|
|
82
|
+
negative: le
|
|
38
83
|
};
|
|
39
|
-
function
|
|
40
|
-
as:
|
|
41
|
-
variant:
|
|
42
|
-
size:
|
|
43
|
-
href:
|
|
44
|
-
openInNewTab:
|
|
45
|
-
disabled:
|
|
46
|
-
type:
|
|
47
|
-
onClick:
|
|
48
|
-
children:
|
|
84
|
+
function Je({
|
|
85
|
+
as: e = "button",
|
|
86
|
+
variant: t = "primary",
|
|
87
|
+
size: s = "default",
|
|
88
|
+
href: r,
|
|
89
|
+
openInNewTab: l,
|
|
90
|
+
disabled: p,
|
|
91
|
+
type: a,
|
|
92
|
+
onClick: c,
|
|
93
|
+
children: d
|
|
49
94
|
}) {
|
|
50
|
-
const
|
|
51
|
-
return /* @__PURE__ */
|
|
52
|
-
|
|
95
|
+
const _ = [N.button, N[t], s === "sm" && N.sm].filter(Boolean).join(" ");
|
|
96
|
+
return /* @__PURE__ */ n(
|
|
97
|
+
e,
|
|
53
98
|
{
|
|
54
|
-
className:
|
|
55
|
-
href:
|
|
56
|
-
target:
|
|
57
|
-
rel:
|
|
58
|
-
disabled:
|
|
59
|
-
type:
|
|
60
|
-
onClick:
|
|
61
|
-
children:
|
|
99
|
+
className: _,
|
|
100
|
+
href: r,
|
|
101
|
+
target: l ? "_blank" : void 0,
|
|
102
|
+
rel: l ? "noopener noreferrer" : void 0,
|
|
103
|
+
disabled: p,
|
|
104
|
+
type: a,
|
|
105
|
+
onClick: c,
|
|
106
|
+
children: d
|
|
62
107
|
}
|
|
63
108
|
);
|
|
64
109
|
}
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
110
|
+
const de = typeof process < "u" && process.env.NODE_ENV !== "production", x = /* @__PURE__ */ new Set();
|
|
111
|
+
function ue(e) {
|
|
112
|
+
x.has(e) || (x.add(e), console.warn(`[@smartyweb/ui] ${e}`));
|
|
113
|
+
}
|
|
114
|
+
function _e() {
|
|
115
|
+
ue(
|
|
116
|
+
"<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."
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
const me = "_nav_dxkjl_3", pe = "_list_dxkjl_7", fe = "_item_dxkjl_16", he = "_link_dxkjl_20", ge = "_current_dxkjl_48", g = {
|
|
120
|
+
nav: me,
|
|
121
|
+
list: pe,
|
|
122
|
+
item: fe,
|
|
123
|
+
link: he,
|
|
124
|
+
current: ge
|
|
125
|
+
}, S = k(null);
|
|
126
|
+
function Xe({ label: e, current: t, children: s }) {
|
|
127
|
+
return de && !e?.trim() && _e(), /* @__PURE__ */ n("nav", { className: g.nav, "aria-label": e, children: /* @__PURE__ */ n(S, { value: t ?? null, children: /* @__PURE__ */ n("ul", { className: g.list, children: s }) }) });
|
|
128
|
+
}
|
|
129
|
+
function Ze({
|
|
130
|
+
as: e = "a",
|
|
131
|
+
href: t,
|
|
132
|
+
current: s,
|
|
133
|
+
openInNewTab: r,
|
|
134
|
+
onClick: l,
|
|
135
|
+
children: p
|
|
136
|
+
}) {
|
|
137
|
+
const a = z(S), c = s ?? (a !== null && a === t), d = [g.link, c && g.current].filter(Boolean).join(" ");
|
|
138
|
+
return /* @__PURE__ */ n("li", { className: g.item, children: /* @__PURE__ */ n(
|
|
139
|
+
e,
|
|
140
|
+
{
|
|
141
|
+
className: d,
|
|
142
|
+
href: t,
|
|
143
|
+
target: r ? "_blank" : void 0,
|
|
144
|
+
rel: r ? "noopener noreferrer" : void 0,
|
|
145
|
+
onClick: l,
|
|
146
|
+
"aria-current": c ? "location" : void 0,
|
|
147
|
+
children: p
|
|
148
|
+
}
|
|
149
|
+
) });
|
|
150
|
+
}
|
|
151
|
+
const ye = "_hero_93692_11", ve = "_layout_93692_16", Ne = "_content_93692_21", Le = "_titleLine_93692_25", $e = "_titleWord_93692_29", be = "_description_93692_35", we = "_media_93692_48", h = {
|
|
152
|
+
hero: ye,
|
|
153
|
+
layout: ve,
|
|
154
|
+
content: Ne,
|
|
155
|
+
titleLine: Le,
|
|
156
|
+
titleWord: $e,
|
|
157
|
+
description: be,
|
|
158
|
+
media: we
|
|
73
159
|
};
|
|
74
|
-
function
|
|
75
|
-
return
|
|
76
|
-
}
|
|
77
|
-
const
|
|
78
|
-
function
|
|
79
|
-
const
|
|
80
|
-
let
|
|
81
|
-
const
|
|
82
|
-
(
|
|
160
|
+
function xe(e) {
|
|
161
|
+
return e.replace(/([- ])/g, (t) => `${t === " " ? " " : t}|split|`).split("|split|");
|
|
162
|
+
}
|
|
163
|
+
const ke = (e) => ({ "--hero-index": e });
|
|
164
|
+
function Qe({ title: e, description: t, media: s }) {
|
|
165
|
+
const r = Array.isArray(e);
|
|
166
|
+
let l = 0;
|
|
167
|
+
const p = (r ? e : [e]).map(
|
|
168
|
+
(a) => xe(a).map((c) => ({ word: c, index: l++ }))
|
|
83
169
|
);
|
|
84
|
-
return /* @__PURE__ */
|
|
85
|
-
/* @__PURE__ */
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
-
/* @__PURE__ */
|
|
88
|
-
/* @__PURE__ */
|
|
170
|
+
return /* @__PURE__ */ n("section", { className: h.hero, children: /* @__PURE__ */ m("div", { className: h.layout, children: [
|
|
171
|
+
/* @__PURE__ */ n("div", { className: h.media, children: s }),
|
|
172
|
+
/* @__PURE__ */ m("div", { className: h.content, children: [
|
|
173
|
+
/* @__PURE__ */ n(J, { children: p.map((a, c) => /* @__PURE__ */ n("span", { className: r ? h.titleLine : void 0, children: a.map(({ word: d, index: u }) => /* @__PURE__ */ n("span", { className: h.titleWord, style: ke(u), children: d }, u)) }, c)) }),
|
|
174
|
+
/* @__PURE__ */ n("p", { className: h.description, children: t })
|
|
89
175
|
] })
|
|
90
176
|
] }) });
|
|
91
177
|
}
|
|
178
|
+
function ze() {
|
|
179
|
+
return /* @__PURE__ */ n("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n(
|
|
180
|
+
"path",
|
|
181
|
+
{
|
|
182
|
+
fillRule: "evenodd",
|
|
183
|
+
clipRule: "evenodd",
|
|
184
|
+
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",
|
|
185
|
+
fill: "currentColor"
|
|
186
|
+
}
|
|
187
|
+
) });
|
|
188
|
+
}
|
|
189
|
+
const je = "_field_7z5g3_1", De = "_error_7z5g3_17", Ce = "_message_7z5g3_21", Ie = "_content_7z5g3_36", Oe = "_reveal_7z5g3_43", Se = "_label_7z5g3_53", Be = "_tags_7z5g3_64", Ae = "_input_7z5g3_71", Ee = "_counter_7z5g3_88", Me = "_empty_7z5g3_100", We = "_disabled_7z5g3_127", qe = "_chip_7z5g3_132", He = "_chipText_7z5g3_153", Re = "_remove_7z5g3_158", Te = "_invalid_7z5g3_169", o = {
|
|
190
|
+
field: je,
|
|
191
|
+
error: De,
|
|
192
|
+
message: Ce,
|
|
193
|
+
content: Ie,
|
|
194
|
+
reveal: Oe,
|
|
195
|
+
label: Se,
|
|
196
|
+
tags: Be,
|
|
197
|
+
input: Ae,
|
|
198
|
+
counter: Ee,
|
|
199
|
+
empty: Me,
|
|
200
|
+
disabled: We,
|
|
201
|
+
chip: qe,
|
|
202
|
+
chipText: He,
|
|
203
|
+
remove: Re,
|
|
204
|
+
invalid: Te
|
|
205
|
+
};
|
|
206
|
+
function Ue({ children: e, invalid: t, onRemove: s }) {
|
|
207
|
+
return /* @__PURE__ */ m("span", { className: [o.chip, t && o.invalid].filter(Boolean).join(" "), children: [
|
|
208
|
+
/* @__PURE__ */ n("span", { className: o.chipText, children: e }),
|
|
209
|
+
s && /* @__PURE__ */ n(
|
|
210
|
+
"button",
|
|
211
|
+
{
|
|
212
|
+
type: "button",
|
|
213
|
+
className: o.remove,
|
|
214
|
+
"aria-label": `Remove ${e}${t ? " (invalid)" : ""}`,
|
|
215
|
+
onClick: s,
|
|
216
|
+
children: /* @__PURE__ */ n(ze, {})
|
|
217
|
+
}
|
|
218
|
+
)
|
|
219
|
+
] });
|
|
220
|
+
}
|
|
221
|
+
const L = 100;
|
|
222
|
+
function Ye({
|
|
223
|
+
label: e,
|
|
224
|
+
value: t,
|
|
225
|
+
onChange: s,
|
|
226
|
+
disabled: r = !1,
|
|
227
|
+
isTagInvalid: l,
|
|
228
|
+
onInputChange: p,
|
|
229
|
+
error: a
|
|
230
|
+
}) {
|
|
231
|
+
const c = F(), d = `${c}-message`, u = P(null), [_, B] = V(""), A = t.length >= L, E = (i) => {
|
|
232
|
+
B(i), p?.(i);
|
|
233
|
+
}, y = (i) => {
|
|
234
|
+
const f = i.split(/[\s,]+/), b = f.pop() ?? "", v = f.filter(Boolean).slice(0, L - t.length);
|
|
235
|
+
v.length && s([...t, ...v]), E(b);
|
|
236
|
+
}, M = (i) => {
|
|
237
|
+
i.key === "Enter" && _ && !i.nativeEvent.isComposing ? (i.preventDefault(), y(`${_},`)) : i.key === "Backspace" && !_ && t.length && s(t.slice(0, -1));
|
|
238
|
+
}, W = (i) => {
|
|
239
|
+
i.preventDefault(), y(`${_}${i.clipboardData.getData("text")},`);
|
|
240
|
+
}, q = (i) => {
|
|
241
|
+
r || i.target === u.current || i.target.closest("button") || (i.preventDefault(), u.current?.focus());
|
|
242
|
+
}, H = [
|
|
243
|
+
o.field,
|
|
244
|
+
!t.length && o.empty,
|
|
245
|
+
r && o.disabled,
|
|
246
|
+
a && o.error
|
|
247
|
+
].filter(Boolean).join(" ");
|
|
248
|
+
return /* @__PURE__ */ m("div", { children: [
|
|
249
|
+
/* @__PURE__ */ m("div", { className: H, onMouseDown: q, children: [
|
|
250
|
+
/* @__PURE__ */ m("div", { className: o.content, children: [
|
|
251
|
+
/* @__PURE__ */ n("label", { htmlFor: c, className: o.label, children: e }),
|
|
252
|
+
/* @__PURE__ */ n("div", { className: o.reveal, children: /* @__PURE__ */ m("div", { className: o.tags, children: [
|
|
253
|
+
t.map((i, f) => /* @__PURE__ */ n(
|
|
254
|
+
Ue,
|
|
255
|
+
{
|
|
256
|
+
invalid: l?.(i, f) ?? !1,
|
|
257
|
+
onRemove: r ? void 0 : () => {
|
|
258
|
+
s(t.filter((b, v) => v !== f)), f === t.length - 1 && u.current?.focus();
|
|
259
|
+
},
|
|
260
|
+
children: i
|
|
261
|
+
},
|
|
262
|
+
f
|
|
263
|
+
)),
|
|
264
|
+
/* @__PURE__ */ n(
|
|
265
|
+
"input",
|
|
266
|
+
{
|
|
267
|
+
ref: u,
|
|
268
|
+
id: c,
|
|
269
|
+
className: o.input,
|
|
270
|
+
size: 1,
|
|
271
|
+
value: _,
|
|
272
|
+
disabled: r,
|
|
273
|
+
readOnly: A,
|
|
274
|
+
"aria-invalid": a ? !0 : void 0,
|
|
275
|
+
"aria-describedby": a ? d : void 0,
|
|
276
|
+
onChange: (i) => {
|
|
277
|
+
y(i.target.value);
|
|
278
|
+
},
|
|
279
|
+
onKeyDown: M,
|
|
280
|
+
onPaste: W,
|
|
281
|
+
onBlur: () => {
|
|
282
|
+
y(`${_},`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
)
|
|
286
|
+
] }) })
|
|
287
|
+
] }),
|
|
288
|
+
/* @__PURE__ */ n("div", { className: o.reveal, children: /* @__PURE__ */ m("p", { className: o.counter, children: [
|
|
289
|
+
t.length,
|
|
290
|
+
" / ",
|
|
291
|
+
L
|
|
292
|
+
] }) })
|
|
293
|
+
] }),
|
|
294
|
+
/* @__PURE__ */ n("p", { id: d, className: o.message, "aria-live": "polite", children: a })
|
|
295
|
+
] });
|
|
296
|
+
}
|
|
92
297
|
export {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
298
|
+
Je as Button,
|
|
299
|
+
J as H1,
|
|
300
|
+
Ve as H2,
|
|
301
|
+
Qe as Hero,
|
|
302
|
+
O as ListItem,
|
|
303
|
+
Ye as MultitagField,
|
|
304
|
+
Ke as Paragraph,
|
|
305
|
+
Xe as SideNav,
|
|
306
|
+
Ze as SideNavLink,
|
|
307
|
+
Ge as UnorderedList
|
|
100
308
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The root element is the <nav> and nothing more: <nav> says what this is, while
|
|
4
|
+
* <aside> would say where it sits in the page outline — and only the page knows
|
|
5
|
+
* that. Place it inside your own <aside>, grid cell or <header> as the layout
|
|
6
|
+
* requires; wrapping it here would nest a second complementary landmark inside
|
|
7
|
+
* the consumer's own sidebar.
|
|
8
|
+
*/
|
|
9
|
+
export interface SideNavProps {
|
|
10
|
+
/**
|
|
11
|
+
* Accessible name for the <nav> — a page with more than one nav landmark needs
|
|
12
|
+
* it to tell them apart ("On this page", "Documentation"). No visible heading is
|
|
13
|
+
* rendered; pass one above the component if the design calls for it.
|
|
14
|
+
*
|
|
15
|
+
* Optional, but a <nav> with no name is announced as bare "navigation" — <SideNav>
|
|
16
|
+
* warns in development when it is omitted.
|
|
17
|
+
*/
|
|
18
|
+
label?: string;
|
|
19
|
+
/**
|
|
20
|
+
* href of the current page. Any <SideNavLink> with a matching href renders as
|
|
21
|
+
* current, so the consumer sets this once instead of per link. A link may still
|
|
22
|
+
* override it with its own `current` prop.
|
|
23
|
+
*/
|
|
24
|
+
current?: string;
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
}
|
|
27
|
+
export declare function SideNav({ label, current, children }: SideNavProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface SharedProps {
|
|
3
|
+
/**
|
|
4
|
+
* Marks this link as the one currently in view (aria-current="location").
|
|
5
|
+
* An in-page table of contents links within the page the reader is already
|
|
6
|
+
* on, so "location" is the accurate value — "page" would claim every entry
|
|
7
|
+
* points somewhere else. Wins over the `current` href on <SideNav>, so a
|
|
8
|
+
* consumer can mix the two.
|
|
9
|
+
*/
|
|
10
|
+
current?: boolean;
|
|
11
|
+
onClick?: React.MouseEventHandler;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
type AsAnchor = SharedProps & {
|
|
15
|
+
as?: "a";
|
|
16
|
+
href: string;
|
|
17
|
+
openInNewTab?: boolean;
|
|
18
|
+
};
|
|
19
|
+
/** For a router link — e.g. `as={NextLink}` — which takes href like an anchor. */
|
|
20
|
+
type AsCustom = SharedProps & {
|
|
21
|
+
as: React.ElementType;
|
|
22
|
+
href: string;
|
|
23
|
+
openInNewTab?: boolean;
|
|
24
|
+
};
|
|
25
|
+
export type SideNavLinkProps = AsAnchor | AsCustom;
|
|
26
|
+
/**
|
|
27
|
+
* One nav entry. Renders its own <li>, so it drops straight into <SideNav>
|
|
28
|
+
* without a wrapper.
|
|
29
|
+
*/
|
|
30
|
+
export declare function SideNavLink({ as: Tag, href, current, openInNewTab, onClick, children, }: SideNavLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const isDev: boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Warns when <SideNav> renders without an accessible name. <nav> is a landmark, and
|
|
4
|
+
* an unnamed one is announced as bare "navigation" — indistinguishable from every
|
|
5
|
+
* other nav on the page in a screen reader's landmark list.
|
|
6
|
+
*/
|
|
7
|
+
export declare function warnOnMissingLabel(): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SideNav';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare const isDev: boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Warns when <UnorderedList> is handed anything other than <ListItem> (or a raw
|
|
5
|
+
* <li>). A <ul> may only contain <li>, so other children are invalid HTML and
|
|
6
|
+
* lose the bullet + spacing styles.
|
|
7
|
+
*
|
|
8
|
+
* Note: a custom wrapper that renders a <ListItem> internally will trip this —
|
|
9
|
+
* see the escape hatch in ListItem.tsx.
|
|
10
|
+
*/
|
|
11
|
+
export declare function warnOnNonListItemChildren(children: ReactNode, isListItem: (type: unknown) => boolean): void;
|
|
12
|
+
/** Warns when <ListItem> is rendered outside of an <UnorderedList>. */
|
|
13
|
+
export declare function warnOnOrphanListItem(): void;
|
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_3zke8_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;padding-top:clamp(4.5rem,1.5023vw + 3.6479rem,5rem)}._paragraph_11t85_1{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;margin:0}._list_1p627_1{display:flex;flex-direction:column;gap:clamp(.75rem,.3756vw + .662rem,1rem);margin:clamp(1rem,.7512vw + .8239rem,1.5rem) 0 0;padding:0;list-style:none}._list_1p627_1 ._list_1p627_1{margin-top:clamp(.75rem,.3756vw + .662rem,1rem);margin-left:calc(clamp(1rem,.7512vw + .8239rem,1.5rem) - (clamp(.25rem,.3756vw + .162rem,.5rem) + 8px))}._item_1p627_14{position:relative;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1}._list_1p627_1 ._item_1p627_14{padding-left:calc(clamp(.25rem,.3756vw + .162rem,.5rem) + 8px)}._list_1p627_1 ._item_1p627_14:before{content:"";position:absolute;top:.4lh;left:0;box-sizing:border-box;width:8px;height:8px;border-radius:50%;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:var(--strokewidth-xs) solid var(--accent-primary);background:transparent}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:0;border-radius:0;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border-radius:50%}._button_81qo0_1{appearance:none;border:none;background:none;display:inline-block;text-decoration:none;cursor:pointer;border-radius:var(--borderradius-button);padding:clamp(1rem,.3756vw + .912rem,1.25rem) clamp(1.5rem,.7512vw + 1.3239rem,2rem);font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;transition:background-color .15s ease,color .15s ease}._button_81qo0_1:focus-visible{outline:var(--strokewidth-sm) solid var(--accent-fill-focused);outline-offset:2px}._button_81qo0_1:disabled{cursor:not-allowed}._sm_81qo0_26{font-size:clamp(.875rem,.2817vw + .809rem,1.0625rem);line-height:1.5rem;letter-spacing:-.02em;padding:clamp(.5rem,.3756vw + .412rem,.75rem) clamp(1rem,.3756vw + .912rem,1.25rem)}._primary_81qo0_33{background-color:var(--accent-fill);color:var(--text-invert-primary)}._primary_81qo0_33:hover:not(:disabled){background-color:var(--accent-fill-hovered);color:var(--text-invert-primary)}._primary_81qo0_33:active:not(:disabled){background-color:var(--accent-fill-dark)}._primary_81qo0_33:disabled{background-color:var(--surface-invert-fill-disabled);color:var(--text-invert-primary)}._secondary_81qo0_49{background-color:transparent;color:var(--text-base-primary);box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-primary);transition:box-shadow .15s ease,color .15s ease}._secondary_81qo0_49:hover:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-hovered);color:var(--text-link-hovered)}._secondary_81qo0_49:active:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-dark);color:var(--text-link-pressed)}._secondary_81qo0_49:disabled{box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-secondary);color:var(--text-invert-hovered)}._negative_81qo0_68{background-color:var(--negative-fill-light);color:var(--negative-text)}._negative_81qo0_68:hover:not(:disabled){background-color:var(--negative-fill-light-hovered);color:var(--negative-text)}._negative_81qo0_68:active:not(:disabled){background-color:var(--negative-fill-light-pressed)}._negative_81qo0_68:disabled{background-color:var(--accent-fill-disabled);color:var(--text-disabled)}@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}}}
|
|
1
|
+
:root{--font-desktop-heading: TT Hoves Pro;--font-desktop-paragraph: TT Hoves Pro;--font-desktop-buttons: Inter;--font-desktop-body-inter: Inter;--font-desktop-body-tt-hoves: TT Hoves Pro;--font-desktop-caption: Inter;--font-desktop-numbers: TT Hoves Pro;--font-desktop-code: Hack;--h-extra-desktop-font-size: 6rem;--h-extra-desktop-line-height: 6.625rem;--h-extra-desktop-letter-spacing: -.03em;--h1-desktop-letter-spacing: -.02em;--h1-desktop-line-height: 4rem;--h1-desktop-font-size: 4rem;--h2-desktop-font-size: 3.25rem;--h2-desktop-letter-spacing: -.02em;--h2-desktop-line-height: 3.5625rem;--h3-desktop-letter-spacing: -.02em;--h3-desktop-font-size: 2.75rem;--h3-desktop-line-height: 3rem;--h4-desktop-letter-spacing: -.01em;--h4-desktop-font-size: 2.25rem;--h4-desktop-line-height: 2.6875rem;--h5-desktop-letter-spacing: -.01em;--h5-desktop-font-size: 1.875rem;--h5-desktop-line-height: 2.0625rem;--h6-desktop-font-size: 1.75rem;--h6-desktop-letter-spacing: -.01em;--h6-desktop-line-height: 1.9375rem;--h7-desktop-font-size: 1.5rem;--h7-desktop-letter-spacing: -.01em;--h7-desktop-line-height: 1.75rem;--paragraph-desktop-font-size: 1.5rem;--paragraph-desktop-line-height: 2.25rem;--paragraph-desktop-letter-spacing: -.01em;--button-lg-desktop-font-size: 1.25rem;--button-lg-desktop-line-height: 1.5rem;--button-lg-desktop-letter-spacing: -.02em;--button-md-desktop-font-size: 1.0625rem;--button-md-desktop-line-height: 1.5rem;--button-md-desktop-letter-spacing: -.02em;--button-sm-desktop-font-size: .875rem;--button-sm-desktop-line-height: 1.5rem;--button-sm-desktop-letter-spacing: -.01em;--body-lg-tt-hoves-desktop-font-size: 1.125rem;--body-lg-tt-hoves-desktop-line-height: 1.5rem;--body-lg-tt-hoves-desktop-letter-spacing: -.01em;--body-lg-inter-desktop-font-size: 1.25rem;--body-lg-inter-desktop-line-height: 1.875rem;--body-lg-inter-desktop-letter-spacing: -.02em;--body-md-tt-hoves-desktop-letter-spacing: -.01em;--body-md-tt-hoves-desktop-font-size: 1rem;--body-md-tt-hoves-desktop-line-height: 1.375rem;--body-md-inter-desktop-letter-spacing: -.02em;--body-md-inter-desktop-font-size: 1rem;--body-md-inter-desktop-line-height: 1.5rem;--body-sm-desktop-letter-spacing: -.01em;--body-sm-desktop-font-size: .875rem;--body-sm-desktop-line-height: 1.25rem;--caption-lg-desktop-font-size: 1rem;--caption-lg-desktop-letter-spacing: -.01em;--caption-lg-desktop-line-height: 1.5rem;--caption-sm-desktop-font-size: .75rem;--caption-sm-desktop-line-height: 1.125rem;--caption-sm-desktop-letter-spacing: -.02em;--caption-sm-bold-desktop-font-size: .75rem;--caption-sm-bold-desktop-line-height: 1rem;--caption-sm-bold-desktop-letter-spacing: -.01em;--caption-uppercase-desktop-line-height: 1rem;--caption-uppercase-desktop-letter-spacing: .04em;--caption-uppercase-desktop-font-size: .8125rem;--numbers-desktop-line-height: 1.375rem;--numbers-desktop-letter-spacing: .04em;--numbers-desktop-font-size: 1rem;--special-styles-code-desktop-line-height: 1.5625rem;--special-styles-code-desktop-font-size: 1.125rem;--special-styles-code-desktop-letter-spacing: 0;--font-tablet-heading: TT Hoves Pro;--font-tablet-paragraph: TT Hoves Pro;--font-tablet-buttons: Inter;--font-tablet-body-inter: Inter;--font-tablet-body-tt-hoves: TT Hoves Pro;--font-tablet-caption: Inter;--font-tablet-numbers: TT Hoves Pro;--font-tablet-code: Hack;--h-extra-tablet-font-size: 6.875rem;--h-extra-tablet-line-height: 7.5625rem;--h-extra-tablet-letter-spacing: -.03em;--h1-tablet-letter-spacing: -.02em;--h1-tablet-line-height: 4.4rem;--h1-tablet-font-size: 4rem;--h2-tablet-font-size: 3rem;--h2-tablet-letter-spacing: -.02em;--h2-tablet-line-height: 3.3125rem;--h3-tablet-letter-spacing: -.02em;--h3-tablet-font-size: 2.5rem;--h3-tablet-line-height: 2.75rem;--h4-tablet-letter-spacing: -.02em;--h4-tablet-font-size: 2.25rem;--h4-tablet-line-height: 2.6875rem;--h5-tablet-letter-spacing: -.01em;--h5-tablet-font-size: 2rem;--h5-tablet-line-height: 2.1875rem;--h6-tablet-font-size: 1.5rem;--h6-tablet-letter-spacing: -.01em;--h6-tablet-line-height: 1.625rem;--h7-tablet-font-size: 1.375rem;--h7-tablet-letter-spacing: -.01em;--h7-tablet-line-height: 1.625rem;--paragraph-tablet-font-size: 1.375rem;--paragraph-tablet-line-height: 2.0625rem;--paragraph-tablet-letter-spacing: -.01em;--button-lg-tablet-font-size: 1.125rem;--button-lg-tablet-line-height: 1.5rem;--button-lg-tablet-letter-spacing: -.02em;--button-md-tablet-font-size: 1rem;--button-md-tablet-line-height: 1.5rem;--button-md-tablet-letter-spacing: -.02em;--button-sm-tablet-font-size: .875rem;--button-sm-tablet-line-height: 1.5rem;--button-sm-tablet-letter-spacing: -.01em;--body-lg-tt-hoves-tablet-font-size: 1rem;--body-lg-tt-hoves-tablet-line-height: 1.375rem;--body-lg-tt-hoves-tablet-letter-spacing: -.01em;--body-lg-inter-tablet-font-size: 1.125rem;--body-lg-inter-tablet-line-height: 1.6875rem;--body-lg-inter-tablet-letter-spacing: -.02em;--body-md-tt-hoves-tablet-letter-spacing: -.01em;--body-md-tt-hoves-tablet-font-size: 1rem;--body-md-tt-hoves-tablet-line-height: 1.375rem;--body-md-inter-tablet-letter-spacing: -.02em;--body-md-inter-tablet-font-size: 1rem;--body-md-inter-tablet-line-height: 1.5rem;--body-sm-tablet-letter-spacing: -.01em;--body-sm-tablet-font-size: .875rem;--body-sm-tablet-line-height: 1.25rem;--caption-lg-tablet-font-size: 1rem;--caption-lg-tablet-letter-spacing: -.02em;--caption-lg-tablet-line-height: 1.5rem;--caption-sm-tablet-font-size: .75rem;--caption-sm-tablet-line-height: 1.125rem;--caption-sm-tablet-letter-spacing: -.02em;--caption-sm-bold-tablet-font-size: .75rem;--caption-sm-bold-tablet-line-height: 1rem;--caption-sm-bold-tablet-letter-spacing: -.01em;--caption-uppercase-tablet-line-height: 1rem;--caption-uppercase-tablet-letter-spacing: .04em;--caption-uppercase-tablet-font-size: .8125rem;--numbers-tablet-line-height: 1.375rem;--numbers-tablet-letter-spacing: .04em;--numbers-tablet-font-size: 1rem;--special-styles-code-tablet-line-height: 1.5625rem;--special-styles-code-tablet-font-size: 1.125rem;--special-styles-code-tablet-letter-spacing: 0;--font-mobile-heading: TT Hoves Pro;--font-mobile-paragraph: TT Hoves Pro;--font-mobile-buttons: Inter;--font-mobile-body-inter: Inter;--font-mobile-body-tt-hoves: TT Hoves Pro;--font-mobile-caption: Inter;--font-mobile-numbers: TT Hoves Pro;--font-mobile-code: Hack;--h-extra-mobile-font-size: 3.5rem;--h-extra-mobile-line-height: 3.875rem;--h-extra-mobile-letter-spacing: -.02em;--h1-mobile-letter-spacing: -.01em;--h1-mobile-line-height: 2.75rem;--h1-mobile-font-size: 2.75rem;--h2-mobile-font-size: 2.5rem;--h2-mobile-letter-spacing: -.01em;--h2-mobile-line-height: 2.75rem;--h3-mobile-letter-spacing: -.01em;--h3-mobile-font-size: 2.25rem;--h3-mobile-line-height: 2.5rem;--h4-mobile-letter-spacing: -.01em;--h4-mobile-font-size: 2rem;--h4-mobile-line-height: 2.625rem;--h5-mobile-letter-spacing: -.01em;--h5-mobile-font-size: 1.375rem;--h5-mobile-line-height: 1.5rem;--h6-mobile-font-size: 1.25rem;--h6-mobile-letter-spacing: -.01em;--h6-mobile-line-height: 1.375rem;--h7-mobile-font-size: 1.25rem;--h7-mobile-letter-spacing: -.01em;--h7-mobile-line-height: 1.5rem;--paragraph-mobile-font-size: 1.125rem;--paragraph-mobile-line-height: 1.6875rem;--paragraph-mobile-letter-spacing: -.01em;--button-lg-mobile-font-size: 1rem;--button-lg-mobile-line-height: 1.5rem;--button-lg-mobile-letter-spacing: -.01em;--button-md-mobile-font-size: .875rem;--button-md-mobile-line-height: 1.5rem;--button-md-mobile-letter-spacing: -.01em;--button-sm-mobile-font-size: .75rem;--button-sm-mobile-line-height: 1.5rem;--button-sm-mobile-letter-spacing: -.01em;--body-lg-tt-hoves-mobile-font-size: .875rem;--body-lg-tt-hoves-mobile-line-height: 1.1875rem;--body-lg-tt-hoves-mobile-letter-spacing: -.01em;--body-lg-inter-mobile-font-size: 1rem;--body-lg-inter-mobile-line-height: 1.5rem;--body-lg-inter-mobile-letter-spacing: -.01em;--body-md-tt-hoves-mobile-letter-spacing: -.01em;--body-md-tt-hoves-mobile-font-size: 1rem;--body-md-tt-hoves-mobile-line-height: 1.375rem;--body-md-inter-mobile-letter-spacing: -.01em;--body-md-inter-mobile-font-size: .875rem;--body-md-inter-mobile-line-height: 1.3125rem;--body-sm-mobile-letter-spacing: -.01em;--body-sm-mobile-font-size: .875rem;--body-sm-mobile-line-height: 1.25rem;--caption-lg-mobile-font-size: 1rem;--caption-lg-mobile-letter-spacing: -.02em;--caption-lg-mobile-line-height: 1.5rem;--caption-sm-mobile-font-size: .75rem;--caption-sm-mobile-line-height: 1.125rem;--caption-sm-mobile-letter-spacing: -.02em;--caption-sm-bold-mobile-font-size: .75rem;--caption-sm-bold-mobile-line-height: 1rem;--caption-sm-bold-mobile-letter-spacing: -.01em;--caption-uppercase-mobile-line-height: 1rem;--caption-uppercase-mobile-letter-spacing: .04em;--caption-uppercase-mobile-font-size: .75rem;--numbers-mobile-line-height: 1.375rem;--numbers-mobile-letter-spacing: .04em;--numbers-mobile-font-size: 1rem;--special-styles-code-mobile-line-height: 1.375rem;--special-styles-code-mobile-font-size: 1rem;--special-styles-code-mobile-letter-spacing: 0;--surface-invert-fill-disabled: #c7ccd4;--surface-invert-secondary: #262c36;--surface-invert-primary: #151b23;--surface-invert-fill-deep: #6e7580;--surface-base-fill: #e6e9ed;--overlay-fill-dark: #151b23b3;--surface-invert-fill-pressed: #a8b0ba;--overlay-fill-medium: #151b23a3;--surface-base-fill-light: #eff7ff;--surface-base-secondary: #f5f7fa;--surface-base-primary: #ffffff;--surface-cell-disabled: #f5f7fa80;--surface-invert-fill-dark: #a8b0ba;--surface-invert-fill-hovered: #e6e9ed;--overlay-fill: #001d7a66;--surface-invert-dark: #151b23;--surface-invert-fill-medium: #c7ccd4;--surface-invert-fill-light: #e6e9ed;--text-invert-label: #939ba6;--text-link: #0066ff;--info-text: #00546b;--text-invert-secondary: #e6e9ed;--negative-text: #8f1150;--positive-text-dark: #005925;--text-base-label: #002ea3;--text-invert-pressed: #6e7580;--premium-text: #431878;--text-link-pressed: #001d7a;--text-base-secondary-light: #939ba6;--text-invert-primary: #ffffff;--positive-text: #147536;--negative-text-dark: #6b0039;--text-invert-disabled: #49505b;--warning-text: #6b1000;--text-disabled: #001d7a66;--text-link-hovered: #004cda;--text-invert-hovered: #b7bec7;--text-base-secondary: #49505b;--text-link-light: #2d84ff;--text-link-light-hovered: #5aa1ff;--caution-text: #505900;--text-base-primary: #151b23;--border-primary-light: #5aa1ff;--border-primary-active: #001d7a;--border-invert-secondary: #d6dbe0;--border-primary-medium: #2d84ff;--border-primary: #0066ff;--border-invert-primary: #ffffff;--border-primary-hovered: #004cda;--border-base-secondary: #d6dbe0;--border-base-secondary-light: #e6e9ed;--border-base-primary: #151b23;--border-primary-disabled: #002ea31a;--border-base-light: #e2f0ff;--accent-fill-hovered: #004cda;--accent-primary-hovered: #004cda;--accent-fill: #0066ff;--accent-fill-dark: #001d7a;--accent-fill-medium-disabled: #c7ccd4;--accent-fill-pressed: #002ea3;--accent-primary-dark: #001d7a;--accent-fill-medium-hovered: #a8b0ba;--accent-primary: #0066ff;--accent-fill-disabled: #002ea31a;--accent-fill-medium: #b7bec7;--accent-fill-medium-pressed: #939ba6;--accent-link: #0039b5;--accent-fill-focused: #8fc1ff;--accent-fill-light-hovered: #001d7a12;--accent-fill-light: #e2f0ff;--positive-icon: #29954b;--negative-icon-light: #b22265;--negative-icon: #8f1150;--icon-disabled: #001d7a66;--icon-invert: #c7ccd4;--icon-primary-light-hovered: #5aa1ff;--icon-base-secondary: #6e7580;--icon-primary: #383e48;--negative-fill-light-pressed: #ffafc8;--negative-fill: #f55591;--negative-fill-dark: #6b0039;--negative-fill-medium: #ff76a6;--negative-fill-light-hovered: #ffcbdb;--negative-fill-light: #ffe8ef;--warning-fill-dark: #6b1000;--warning-fill-medium: #f89364;--warning-primary: #f5804e;--warning-fill: #ffbc98;--warning-fill-light: #ffebde;--positive-fill-dark: #005925;--positive-fill: #47cc69;--positive-fill-medium: #81eb96;--positive-fill-light: #cffad6;--premium-fill: #9560ff;--premium-fill-medium: #b292fc;--premium-fill-light: #ece5ff;--info-fill: #3dc9d1;--info-fill-medium: #63dfe5;--info-fill-light: #b0f7f7;--caution-fill: #fcf58c;--caution-fill-dark: #e4e40d;--caution-fill-light: #fcf9d7;--disabled-progress-bar-right-gradient: #c7ccd4;--primary-progress-bar-left-gradient: #f55591;--primary-progress-bar-track: #e6e9ed;--disabled-progress-bar-track: #e6e9ed;--primary-progress-bar-right-gradient: #ffbc98;--disabled-progress-bar-left-gradient: #e6e9ed;--borderradius-none: 0;--borderradius-focusedstroke: 4px;--borderradius-muistroke: 4px;--borderradius-pill: 360px;--borderradius-cardsm: 12px;--borderradius-cardlg: 24px;--borderradius-button: 360px;--strokewidth-none: 0;--strokewidth-xs: 1px;--strokewidth-sm: 2px;--strokewidth-md: 4px;--strokewidth-lg: 8px;--insetspacing-5xs: .25rem;--insetspacing-4xs: .5rem;--insetspacing-3xs: .75rem;--insetspacing-2xs: 1rem;--insetspacing-xs: 1.25rem;--insetspacing-s: 1.5rem;--insetspacing-m: 1.75rem;--insetspacing-l: 2rem;--insetspacing-xl: 2.5rem;--insetspacing-2xl: 2.75rem;--insetspacing-3xl: 3rem;--insetspacing-4xl: 3.5rem;--insetspacing-5xl: 4rem;--insetspacing-6xl: 4.5rem;--insetspacing-7xl: 5rem;--insetspacing-8xl: 6rem;--insetspacing-9xl: 7.5rem;--insetspacing-10xl: 10rem;--stackspacing-5xs: .25rem;--stackspacing-4xs: .5rem;--stackspacing-3xs: .75rem;--stackspacing-2xs: 1rem;--stackspacing-xs: 1.25rem;--stackspacing-s: 1.5rem;--stackspacing-m: 1.75rem;--stackspacing-l: 2rem;--stackspacing-xl: 2.5rem;--stackspacing-2xl: 2.75rem;--stackspacing-3xl: 3rem;--stackspacing-4xl: 3.5rem;--stackspacing-5xl: 4rem;--stackspacing-6xl: 4.5rem;--stackspacing-7xl: 5rem;--stackspacing-8xl: 6rem;--stackspacing-9xl: 7.5rem;--stackspacing-10xl: 10rem;--inlinespacing-5xs: .25rem;--inlinespacing-4xs: .5rem;--inlinespacing-3xs: .75rem;--inlinespacing-2xs: 1rem;--inlinespacing-xs: 1.25rem;--inlinespacing-s: 1.5rem;--inlinespacing-m: 1.75rem;--inlinespacing-l: 2rem;--inlinespacing-xl: 2.5rem;--inlinespacing-2xl: 2.75rem;--inlinespacing-3xl: 3rem;--inlinespacing-4xl: 3.5rem;--inlinespacing-5xl: 4rem;--inlinespacing-6xl: 4.5rem;--inlinespacing-7xl: 5rem;--inlinespacing-8xl: 6rem;--inlinespacing-9xl: 7.5rem;--inlinespacing-10xl: 10rem}._h1_1765w_1{font-size:clamp(2.75rem,1.8779vw + 2.3099rem,4rem);line-height:clamp(2.75rem,1.8779vw + 2.3099rem,4rem);letter-spacing:-.02em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;margin:0}._h2_1eque_1{font-size:clamp(2.5rem,1.1268vw + 2.2359rem,3.25rem);line-height:clamp(2.75rem,1.2207vw + 2.4639rem,3.5625rem);letter-spacing:-.02em;font-family:var(--ui-font-primary);font-weight:500;font-feature-settings:"ss01" 1,"ss02" 1,"ss04" 1;margin:0}._paragraph_11t85_1{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;margin:0}._list_1p627_1{display:flex;flex-direction:column;gap:clamp(.75rem,.3756vw + .662rem,1rem);margin:clamp(1rem,.7512vw + .8239rem,1.5rem) 0 0;padding:0;list-style:none}._list_1p627_1 ._list_1p627_1{margin-top:clamp(.75rem,.3756vw + .662rem,1rem);margin-left:calc(clamp(1rem,.7512vw + .8239rem,1.5rem) - (clamp(.25rem,.3756vw + .162rem,.5rem) + 8px))}._item_1p627_14{position:relative;font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1}._list_1p627_1 ._item_1p627_14{padding-left:calc(clamp(.25rem,.3756vw + .162rem,.5rem) + 8px)}._list_1p627_1 ._item_1p627_14:before{content:"";position:absolute;top:.4lh;left:0;box-sizing:border-box;width:8px;height:8px;border-radius:50%;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:var(--strokewidth-xs) solid var(--accent-primary);background:transparent}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border:0;border-radius:0;background:var(--accent-primary)}._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._list_1p627_1 ._item_1p627_14:before{border-radius:50%}._button_81qo0_1{appearance:none;border:none;background:none;display:inline-block;text-decoration:none;cursor:pointer;border-radius:var(--borderradius-button);padding:clamp(1rem,.3756vw + .912rem,1.25rem) clamp(1.5rem,.7512vw + 1.3239rem,2rem);font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:1.5rem;letter-spacing:-.02em;font-family:var(--ui-font-body);font-weight:500;font-feature-settings:"dlig" 1;transition:background-color .15s ease,color .15s ease}._button_81qo0_1:focus-visible{outline:var(--strokewidth-sm) solid var(--accent-fill-focused);outline-offset:2px}._button_81qo0_1:disabled{cursor:not-allowed}._sm_81qo0_26{font-size:clamp(.875rem,.2817vw + .809rem,1.0625rem);line-height:1.5rem;letter-spacing:-.02em;padding:clamp(.5rem,.3756vw + .412rem,.75rem) clamp(1rem,.3756vw + .912rem,1.25rem)}._primary_81qo0_33{background-color:var(--accent-fill);color:var(--text-invert-primary)}._primary_81qo0_33:hover:not(:disabled){background-color:var(--accent-fill-hovered);color:var(--text-invert-primary)}._primary_81qo0_33:active:not(:disabled){background-color:var(--accent-fill-dark)}._primary_81qo0_33:disabled{background-color:var(--surface-invert-fill-disabled);color:var(--text-invert-primary)}._secondary_81qo0_49{background-color:transparent;color:var(--text-base-primary);box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-primary);transition:box-shadow .15s ease,color .15s ease}._secondary_81qo0_49:hover:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-hovered);color:var(--text-link-hovered)}._secondary_81qo0_49:active:not(:disabled){box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--accent-primary-dark);color:var(--text-link-pressed)}._secondary_81qo0_49:disabled{box-shadow:inset 0 0 0 var(--strokewidth-sm) var(--border-base-secondary);color:var(--text-invert-hovered)}._negative_81qo0_68{background-color:var(--negative-fill-light);color:var(--negative-text)}._negative_81qo0_68:hover:not(:disabled){background-color:var(--negative-fill-light-hovered);color:var(--negative-text)}._negative_81qo0_68:active:not(:disabled){background-color:var(--negative-fill-light-pressed)}._negative_81qo0_68:disabled{background-color:var(--accent-fill-disabled);color:var(--text-disabled)}._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}}@keyframes _hero-rise_93692_1{0%{opacity:0;transform:translateY(var(--hero-rise, 50px))}to{opacity:1;transform:none}}._hero_93692_11{container-type:inline-size;background-color:var(--surface-base-secondary)}._layout_93692_16{display:grid;padding:clamp(2.75rem,.7512vw + 2.3239rem,3rem) 0}._content_93692_21{min-width:0}._titleLine_93692_25{display:block}._titleWord_93692_29{animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;display:inline-block;animation-delay:calc(.03s + var(--hero-index, 0) * 15ms)}._description_93692_35{font-size:clamp(1rem,.3756vw + .912rem,1.25rem);line-height:clamp(1.5rem,.5634vw + 1.368rem,1.875rem);letter-spacing:-.02em;animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;margin:max(clamp(1.5rem,.7512vw + 1.3239rem,2rem),1.75rem) 0 0;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;color:var(--text-base-secondary);animation-delay:.03s}._media_93692_48{animation:_hero-rise_93692_1 .67s cubic-bezier(.16,1,.03,1) both;--hero-rise: 100px;order:2;width:100%;margin-top:clamp(1.75rem,1.1268vw + 1.4859rem,2.5rem);animation-delay:.13s}._media_93692_48 :where(img,svg){display:block;max-width:100%;height:auto}@container (min-width: 1089px){._layout_93692_16{display:flow-root}._content_93692_21{max-width:700px}._media_93692_48{float:right;width:auto;max-width:620px;margin-top:0;shape-outside:circle(30%);shape-margin:clamp(1.75rem,1.1268vw + 1.4859rem,2.5rem)}}@media(prefers-reduced-motion:reduce){@keyframes _hero-rise_93692_1{0%{opacity:0}to{opacity:1}}}._field_7z5g3_1{position:relative;display:flex;flex-direction:column;gap:clamp(.25rem,.3756vw + .162rem,.5rem);padding:clamp(.5rem,.3756vw + .412rem,.75rem) clamp(1rem,.3756vw + .912rem,1.25rem);border-radius:var(--borderradius-cardsm);background-color:var(--surface-base-secondary);font-feature-settings:"dlig" 1;cursor:text;transition:padding .2s cubic-bezier(0,0,.2,1),gap .2s cubic-bezier(0,0,.2,1)}._field_7z5g3_1:focus-within{outline:var(--strokewidth-sm) solid var(--accent-fill-focused)}._field_7z5g3_1._error_7z5g3_17{outline:var(--strokewidth-sm) solid var(--negative-fill)}._message_7z5g3_21{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;margin:0;padding-inline:clamp(1rem,.3756vw + .912rem,1.25rem);font-family:var(--ui-font-body);font-weight:400;font-feature-settings:"dlig" 1;color:var(--negative-text)}._message_7z5g3_21:not(:empty){margin-top:clamp(.25rem,.3756vw + .162rem,.5rem)}._content_7z5g3_36{display:flex;flex-direction:column;gap:clamp(.125rem,.1878vw + .081rem,.25rem);transition:gap .2s cubic-bezier(0,0,.2,1)}._reveal_7z5g3_43{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s cubic-bezier(0,0,.2,1)}._reveal_7z5g3_43>*{min-height:0;overflow:clip}._label_7z5g3_53{font-size:.875rem;line-height:1.25rem;letter-spacing:-.01em;font-family:var(--ui-font-primary);font-weight:400;color:var(--text-base-secondary);overflow-wrap:break-word;transition:font-size .2s cubic-bezier(0,0,.2,1),line-height .2s cubic-bezier(0,0,.2,1),letter-spacing .2s cubic-bezier(0,0,.2,1)}._tags_7z5g3_64{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(.25rem,.3756vw + .162rem,.5rem)}._input_7z5g3_71{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;flex:1 0 auto;margin:0;padding:0;border:0;outline:0;background:transparent;font-family:var(--ui-font-body);font-weight:400;font-feature-settings:inherit;color:var(--text-base-primary);caret-color:var(--negative-fill)}._counter_7z5g3_88{font-size:.75rem;line-height:1.125rem;letter-spacing:-.02em;margin:0;font-family:var(--ui-font-body);font-weight:400;color:var(--text-base-secondary);text-align:right;transition:opacity .2s cubic-bezier(0,0,.2,1),visibility .2s}._field_7z5g3_1:not(:focus-within,._empty_7z5g3_100) ._input_7z5g3_71{position:absolute;width:1px;opacity:0}._empty_7z5g3_100:not(:focus-within){gap:0;padding-block:clamp(1rem,.7512vw + .8239rem,1.5rem)}._empty_7z5g3_100:not(:focus-within) ._content_7z5g3_36{gap:0}._empty_7z5g3_100:not(:focus-within) ._reveal_7z5g3_43{grid-template-rows:0fr}._empty_7z5g3_100:not(:focus-within) ._label_7z5g3_53{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;font-family:var(--ui-font-body)}._empty_7z5g3_100:not(:focus-within) ._counter_7z5g3_88{visibility:hidden;opacity:0}._disabled_7z5g3_127{cursor:default}._disabled_7z5g3_127 ._label_7z5g3_53,._disabled_7z5g3_127 ._counter_7z5g3_88,._disabled_7z5g3_127 ._chip_7z5g3_132{color:var(--text-disabled)}._chip_7z5g3_132{font-size:clamp(.875rem,.1878vw + .831rem,1rem);line-height:clamp(1.3125rem,.2817vw + 1.2465rem,1.5rem);letter-spacing:-.02em;display:flex;align-items:center;gap:clamp(.25rem,.3756vw + .162rem,.5rem);max-width:100%;padding:clamp(.125rem,.1878vw + .081rem,.25rem) clamp(.75rem,.3756vw + .662rem,1rem);border-radius:var(--borderradius-pill);background-color:var(--surface-base-fill);font-family:var(--ui-font-body);font-weight:400;color:var(--text-base-primary);cursor:default}._chipText_7z5g3_153{min-width:0;overflow-wrap:anywhere}._remove_7z5g3_158{display:flex;flex-shrink:0;margin:0;padding:0;border:0;background:none;color:var(--icon-base-secondary);cursor:pointer}._invalid_7z5g3_169{background-color:var(--negative-fill-light);color:var(--negative-text)}._invalid_7z5g3_169 ._remove_7z5g3_158{color:var(--negative-icon)}@media(prefers-reduced-motion:reduce){._field_7z5g3_1,._content_7z5g3_36,._label_7z5g3_53,._reveal_7z5g3_43{transition:none}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartyweb/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0-max-storefront-handoff.g5946cfa",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"lint": "node scripts/check-use-client.mjs && eslint src --max-warnings 0 && stylelint 'src/**/*.scss'",
|
|
30
30
|
"mirror": "node scripts/mirror-check.mjs",
|
|
31
31
|
"mirror:selftest": "node scripts/mirror-selftest.mjs",
|
|
32
|
+
"visual": "node scripts/visual-measure.mjs",
|
|
32
33
|
"format:check": "prettier --check ."
|
|
33
34
|
},
|
|
34
35
|
"peerDependencies": {
|
|
@@ -44,6 +45,9 @@
|
|
|
44
45
|
"@vitejs/plugin-react": "^5.1.3",
|
|
45
46
|
"eslint": "^10.0.0",
|
|
46
47
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
48
|
+
"pixelmatch": "^7.2.0",
|
|
49
|
+
"playwright-core": "^1.63.0",
|
|
50
|
+
"pngjs": "^7.0.0",
|
|
47
51
|
"prettier": "^3.8.1",
|
|
48
52
|
"react": "^19.2.4",
|
|
49
53
|
"react-dom": "^19.2.4",
|