@fpkit/acss 6.1.0 → 6.3.0
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/libs/chunk-25KCUE3R.cjs +17 -0
- package/libs/chunk-25KCUE3R.cjs.map +1 -0
- package/libs/chunk-34NWHFHP.js +10 -0
- package/libs/chunk-34NWHFHP.js.map +1 -0
- package/libs/{chunk-SQ44OCJ2.js → chunk-6NMLU5FA.js} +2 -2
- package/libs/{chunk-GVVCXXKI.cjs → chunk-6YVR4TDM.cjs} +3 -3
- package/libs/chunk-DSQ2TUCR.js +7 -0
- package/libs/chunk-DSQ2TUCR.js.map +1 -0
- package/libs/{chunk-H6A2CUWA.js → chunk-VQTCTLFN.js} +2 -2
- package/libs/chunk-ZJ4RUKI2.cjs +14 -0
- package/libs/chunk-ZJ4RUKI2.cjs.map +1 -0
- package/libs/{chunk-H4JRUNKU.cjs → chunk-ZOPHCNFD.cjs} +3 -3
- package/libs/components/button.cjs +3 -3
- package/libs/components/button.d.cts +34 -1
- package/libs/components/button.d.ts +34 -1
- package/libs/components/button.js +1 -1
- package/libs/components/buttons/button.css +1 -1
- package/libs/components/buttons/button.css.map +1 -1
- package/libs/components/buttons/button.min.css +2 -2
- package/libs/components/buttons/icon-button.css +1 -0
- package/libs/components/buttons/icon-button.css.map +1 -0
- package/libs/components/buttons/icon-button.min.css +3 -0
- package/libs/components/dialog/dialog.cjs +4 -4
- package/libs/components/dialog/dialog.js +2 -2
- package/libs/components/icons/icon.d.cts +1 -1
- package/libs/components/icons/icon.d.ts +1 -1
- package/libs/components/layout/landmarks.css +1 -1
- package/libs/components/layout/landmarks.css.map +1 -1
- package/libs/components/layout/landmarks.min.css +2 -2
- package/libs/components/link/link.css +1 -1
- package/libs/components/link/link.min.css +1 -1
- package/libs/components/modal.cjs +3 -3
- package/libs/components/modal.js +2 -2
- package/libs/components/popover/popover.cjs +3 -8
- package/libs/components/popover/popover.css +1 -0
- package/libs/components/popover/popover.css.map +1 -0
- package/libs/components/popover/popover.d.cts +54 -26
- package/libs/components/popover/popover.d.ts +54 -26
- package/libs/components/popover/popover.js +1 -2
- package/libs/components/popover/popover.min.css +3 -0
- package/libs/hooks.cjs +3 -6
- package/libs/hooks.cjs.map +1 -1
- package/libs/hooks.d.cts +30 -10
- package/libs/hooks.d.ts +30 -10
- package/libs/hooks.js +5 -1
- package/libs/hooks.js.map +1 -1
- package/libs/{icons-48788561.d.ts → icons-2c09535c.d.ts} +32 -32
- package/libs/icons.d.cts +1 -1
- package/libs/icons.d.ts +1 -1
- package/libs/index.cjs +41 -40
- package/libs/index.cjs.map +1 -1
- package/libs/index.css +1 -1
- package/libs/index.css.map +1 -1
- package/libs/index.d.cts +101 -5
- package/libs/index.d.ts +101 -5
- package/libs/index.js +14 -15
- package/libs/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/buttons/README.mdx +107 -11
- package/src/components/buttons/STYLES.mdx +182 -47
- package/src/components/buttons/button.scss +93 -16
- package/src/components/buttons/button.stories.tsx +149 -0
- package/src/components/buttons/button.test.tsx +12 -0
- package/src/components/buttons/button.tsx +50 -6
- package/src/components/buttons/icon-button.scss +45 -0
- package/src/components/buttons/icon-button.stories.tsx +200 -0
- package/src/components/buttons/icon-button.test.tsx +132 -0
- package/src/components/buttons/icon-button.tsx +72 -0
- package/src/components/form/select.tsx +55 -51
- package/src/components/layout/README.mdx +1117 -0
- package/src/components/layout/STYLES.mdx +159 -4
- package/src/components/layout/fieldset.stories.tsx +387 -0
- package/src/components/layout/landmarks.scss +115 -2
- package/src/components/layout/landmarks.stories.tsx +2 -6
- package/src/components/layout/landmarks.tsx +96 -27
- package/src/components/link/link.scss +2 -2
- package/src/components/popover/README.mdx +478 -0
- package/src/components/popover/STYLES.mdx +389 -0
- package/src/components/popover/index.ts +3 -0
- package/src/components/popover/popover.scss +249 -0
- package/src/components/popover/popover.stories.tsx +315 -15
- package/src/components/popover/popover.test.tsx +249 -37
- package/src/components/popover/popover.tsx +165 -62
- package/src/hooks/popover/popover.tsx +26 -10
- package/src/hooks/popover/use-popover.tsx +30 -10
- package/src/hooks.ts +5 -0
- package/src/index.scss +1 -0
- package/src/index.ts +1 -0
- package/src/styles/buttons/button.css +78 -16
- package/src/styles/buttons/button.css.map +1 -1
- package/src/styles/buttons/icon-button.css +32 -0
- package/src/styles/buttons/icon-button.css.map +1 -0
- package/src/styles/index.css +350 -18
- package/src/styles/index.css.map +1 -1
- package/src/styles/layout/landmarks.css +83 -0
- package/src/styles/layout/landmarks.css.map +1 -1
- package/src/styles/link/link.css +2 -2
- package/src/styles/popover/popover.css +190 -0
- package/src/styles/popover/popover.css.map +1 -0
- package/src/types/popover.d.ts +64 -0
- package/libs/chunk-4I5MF54P.js +0 -8
- package/libs/chunk-4I5MF54P.js.map +0 -1
- package/libs/chunk-GCGKYLDG.js +0 -7
- package/libs/chunk-GCGKYLDG.js.map +0 -1
- package/libs/chunk-NZVSXRTB.cjs +0 -16
- package/libs/chunk-NZVSXRTB.cjs.map +0 -1
- package/libs/chunk-PDD4N5P5.cjs +0 -10
- package/libs/chunk-PDD4N5P5.cjs.map +0 -1
- package/libs/chunk-S7NIA6PI.cjs +0 -17
- package/libs/chunk-S7NIA6PI.cjs.map +0 -1
- package/libs/chunk-X2RDXWH5.js +0 -10
- package/libs/chunk-X2RDXWH5.js.map +0 -1
- /package/libs/{chunk-SQ44OCJ2.js.map → chunk-6NMLU5FA.js.map} +0 -0
- /package/libs/{chunk-GVVCXXKI.cjs.map → chunk-6YVR4TDM.cjs.map} +0 -0
- /package/libs/{chunk-H6A2CUWA.js.map → chunk-VQTCTLFN.js.map} +0 -0
- /package/libs/{chunk-H4JRUNKU.cjs.map → chunk-ZOPHCNFD.cjs.map} +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkPNWIRCG3_cjs = require('./chunk-PNWIRCG3.cjs');
|
|
4
|
+
var chunkTON2YGMD_cjs = require('./chunk-TON2YGMD.cjs');
|
|
5
|
+
var chunk66C2J4IX_cjs = require('./chunk-66C2J4IX.cjs');
|
|
6
|
+
var I = require('react');
|
|
7
|
+
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
var I__default = /*#__PURE__*/_interopDefault(I);
|
|
11
|
+
|
|
12
|
+
var s=({type:r="button",children:n,styles:l,disabled:i,isDisabled:d,classes:p,size:m,variant:b,color:c,block:u,onPointerDown:y,onPointerOver:P,onPointerLeave:f,onClick:B,onKeyDown:x,...D})=>{let g=chunkPNWIRCG3_cjs.a(i,d),{disabledProps:t,handlers:v}=chunkTON2YGMD_cjs.a(g,{handlers:{onClick:B,onPointerDown:y,onKeyDown:x},className:p}),{"data-btn":N,...S}=D,h=[m,u?"block":void 0,N].filter(Boolean).join(" ")||void 0;return I__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"button",type:r,"data-btn":h,"data-style":b,"data-color":c,"aria-disabled":t["aria-disabled"],onPointerOver:P,onPointerLeave:f,style:l,className:t.className,...S,...v},n)},w=s;s.displayName="Button";
|
|
13
|
+
|
|
14
|
+
exports.a = s;
|
|
15
|
+
exports.b = w;
|
|
16
|
+
//# sourceMappingURL=out.js.map
|
|
17
|
+
//# sourceMappingURL=chunk-25KCUE3R.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/buttons/button.tsx"],"names":["React","Button","type","children","styles","disabled","isDisabled","classes","size","variant","color","block","onPointerDown","onPointerOver","onPointerLeave","onClick","onKeyDown","props","isActuallyDisabled","resolveDisabledState","disabledProps","handlers","useDisabledState","dataBtnProp","restProps","dataBtnValue","ui_default","button_default"],"mappings":"sHACA,OAAOA,MAAW,QAoGX,IAAMC,EAAS,CAAC,CACrB,KAAAC,EAAO,SACP,SAAAC,EACA,OAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,MAAAC,EACA,MAAAC,EACA,cAAAC,EACA,cAAAC,EACA,eAAAC,EACA,QAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAmB,CAEjB,IAAMC,EAAqBC,EAAqBd,EAAUC,CAAU,EAG9D,CAAE,cAAAc,EAAe,SAAAC,CAAS,EAAIC,EAClCJ,EACA,CACE,SAAU,CACR,QAAAH,EACA,cAAAH,EACA,UAAAI,CACF,EAEA,UAAWT,CAGb,CACF,EAIM,CAAE,WAAYgB,EAAa,GAAGC,CAAU,EAAIP,EAC5CQ,EACJ,CAACjB,EAAMG,EAAQ,QAAU,OAAWY,CAAW,EAC5C,OAAO,OAAO,EACd,KAAK,GAAG,GAAK,OAGlB,OACEvB,EAAA,cAAC0B,EAAA,CACC,GAAG,SACH,KAAMxB,EACN,WAAUuB,EACV,aAAYhB,EACZ,aAAYC,EACZ,gBAAeU,EAAc,eAAe,EAC5C,cAAeP,EACf,eAAgBC,EAChB,MAAOV,EACP,UAAWgB,EAAc,UACxB,GAAGI,EACH,GAAGH,GAEHlB,CACH,CAEJ,EAEOwB,EAAQ1B,EACfA,EAAO,YAAc","sourcesContent":["import UI from \"../ui\";\nimport React from \"react\";\nimport { useDisabledState } from \"../../hooks/use-disabled-state\";\nimport { resolveDisabledState } from \"../../utils/accessibility\";\nimport type { DisabledStateProps } from \"../../types/shared\";\n\nexport type ButtonProps = Partial<React.ComponentProps<typeof UI>> &\n DisabledStateProps & {\n /**\n * The button type\n * Required - 'button' | 'submit' | 'reset'\n */\n type: \"button\" | \"submit\" | \"reset\";\n /**\n * Raw data-btn tokens. Merged with `size` and `block` — all three contribute\n * whitespace-separated words to the final `data-btn` attribute value.\n * @example <Button data-btn=\"pill\">Pill button</Button>\n */\n \"data-btn\"?: string;\n /**\n * Size variant - maps to `data-btn` attribute, aligns with SCSS size tokens.\n * Can coexist with a directly passed `data-btn` attribute (values are merged).\n * @example <Button size=\"sm\">Small</Button>\n */\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n /**\n * Style variant - maps to `data-style` attribute.\n * - `\"outline\"` — transparent bg with border (mirrors link button style)\n * - `\"pill\"` — fully rounded corners\n * - `\"text\"` — ghost text button with subtle hover\n * - `\"icon\"` — square icon-only, no padding\n * @example <Button variant=\"outline\">Bordered</Button>\n */\n variant?: \"text\" | \"pill\" | \"icon\" | \"outline\";\n /**\n * Color variant - maps to `data-color` attribute using semantic color tokens.\n * @example <Button color=\"danger\">Delete</Button>\n */\n color?: \"primary\" | \"secondary\" | \"danger\" | \"success\" | \"warning\";\n /**\n * Block layout — stretches the button to 100% of its container width.\n * Composes with `size` and other `data-btn` values.\n * @example <Button block>Full Width</Button>\n * @example <Button size=\"lg\" block>Large Full Width</Button>\n */\n block?: boolean;\n };\n\n/**\n * Accessible Button component with WCAG 2.1 Level AA compliant disabled state.\n *\n * **Key Accessibility Features:**\n * - Uses `aria-disabled` pattern instead of native `disabled` attribute\n * - Maintains keyboard focusability when disabled (stays in tab order)\n * - Prevents all interactions when disabled via optimized `useDisabledState` hook\n * - Automatic className merging for seamless styling\n * - Supports both modern `disabled` and legacy `isDisabled` props\n *\n * **Why aria-disabled?**\n * - Elements remain in keyboard tab order (WCAG 2.1.1 - Keyboard)\n * - Screen readers can discover and announce disabled state (WCAG 4.1.2)\n * - Enables tooltips and help text on disabled buttons\n * - Better visual styling control for WCAG AA contrast compliance\n *\n * **Performance:**\n * - Uses optimized `useDisabledState` hook with stable references\n * - Automatic className merging eliminates boilerplate\n * - ~90% reduction in unnecessary re-renders compared to previous implementation\n *\n * @example\n * // Basic usage\n * <Button type=\"button\" onClick={handleClick}>\n * Click me\n * </Button>\n *\n * @example\n * // Disabled state (prevents all interactions but stays focusable)\n * <Button type=\"button\" disabled={true} onClick={handleClick}>\n * Cannot click (but can focus for screen readers)\n * </Button>\n *\n * @example\n * // With custom classes (automatic merging with .is-disabled)\n * <Button\n * type=\"button\"\n * disabled={true}\n * classes=\"my-custom-btn\"\n * >\n * Custom disabled button\n * </Button>\n *\n * @example\n * // Legacy isDisabled prop (still supported)\n * <Button type=\"button\" isDisabled={true} onClick={handleClick}>\n * Legacy disabled\n * </Button>\n *\n * @see {@link https://www.w3.org/WAI/WCAG21/Understanding/keyboard WCAG 2.1.1 - Keyboard}\n * @see {@link https://www.w3.org/WAI/WCAG21/Understanding/name-role-value WCAG 4.1.2 - Name, Role, Value}\n * @see {@link file://./../../hooks/useDisabledState.md useDisabledState Hook Documentation}\n */\nexport const Button = ({\n type = \"button\",\n children,\n styles,\n disabled,\n isDisabled,\n classes,\n size,\n variant,\n color,\n block,\n onPointerDown,\n onPointerOver,\n onPointerLeave,\n onClick,\n onKeyDown,\n ...props\n}: ButtonProps) => {\n // Resolve disabled state from both props (disabled takes precedence)\n const isActuallyDisabled = resolveDisabledState(disabled, isDisabled);\n\n // Use the disabled state hook with enhanced API for automatic className merging\n const { disabledProps, handlers } = useDisabledState<HTMLButtonElement>(\n isActuallyDisabled,\n {\n handlers: {\n onClick,\n onPointerDown,\n onKeyDown,\n },\n // Automatic className merging - hook combines disabled class with user classes\n className: classes,\n // Note: onPointerOver and onPointerLeave are intentionally NOT wrapped\n // to allow hover effects on disabled buttons for visual feedback\n },\n );\n\n // Merge size, block, and any explicit data-btn passed by the consumer.\n // SCSS uses [data-btn~=\"value\"] (whitespace word match), so \"lg block\" targets both.\n const { \"data-btn\": dataBtnProp, ...restProps } = props;\n const dataBtnValue =\n [size, block ? \"block\" : undefined, dataBtnProp]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n /* Returning a button element with accessible disabled state */\n return (\n <UI\n as=\"button\"\n type={type}\n data-btn={dataBtnValue}\n data-style={variant}\n data-color={color}\n aria-disabled={disabledProps[\"aria-disabled\"]}\n onPointerOver={onPointerOver}\n onPointerLeave={onPointerLeave}\n style={styles}\n className={disabledProps.className}\n {...restProps}\n {...handlers}\n >\n {children}\n </UI>\n );\n};\n\nexport default Button;\nButton.displayName = \"Button\";\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { a } from './chunk-BFK62VX5.js';
|
|
2
|
+
import { a as a$1 } from './chunk-75QHTLFO.js';
|
|
3
|
+
import { a as a$2 } from './chunk-4KJP3L35.js';
|
|
4
|
+
import I from 'react';
|
|
5
|
+
|
|
6
|
+
var s=({type:r="button",children:n,styles:l,disabled:i,isDisabled:d,classes:p,size:m,variant:b,color:c,block:u,onPointerDown:y,onPointerOver:P,onPointerLeave:f,onClick:B,onKeyDown:x,...D})=>{let g=a(i,d),{disabledProps:t,handlers:v}=a$1(g,{handlers:{onClick:B,onPointerDown:y,onKeyDown:x},className:p}),{"data-btn":N,...S}=D,h=[m,u?"block":void 0,N].filter(Boolean).join(" ")||void 0;return I.createElement(a$2,{as:"button",type:r,"data-btn":h,"data-style":b,"data-color":c,"aria-disabled":t["aria-disabled"],onPointerOver:P,onPointerLeave:f,style:l,className:t.className,...S,...v},n)},w=s;s.displayName="Button";
|
|
7
|
+
|
|
8
|
+
export { s as a, w as b };
|
|
9
|
+
//# sourceMappingURL=out.js.map
|
|
10
|
+
//# sourceMappingURL=chunk-34NWHFHP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/buttons/button.tsx"],"names":["React","Button","type","children","styles","disabled","isDisabled","classes","size","variant","color","block","onPointerDown","onPointerOver","onPointerLeave","onClick","onKeyDown","props","isActuallyDisabled","resolveDisabledState","disabledProps","handlers","useDisabledState","dataBtnProp","restProps","dataBtnValue","ui_default","button_default"],"mappings":"mHACA,OAAOA,MAAW,QAoGX,IAAMC,EAAS,CAAC,CACrB,KAAAC,EAAO,SACP,SAAAC,EACA,OAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,MAAAC,EACA,MAAAC,EACA,cAAAC,EACA,cAAAC,EACA,eAAAC,EACA,QAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAmB,CAEjB,IAAMC,EAAqBC,EAAqBd,EAAUC,CAAU,EAG9D,CAAE,cAAAc,EAAe,SAAAC,CAAS,EAAIC,EAClCJ,EACA,CACE,SAAU,CACR,QAAAH,EACA,cAAAH,EACA,UAAAI,CACF,EAEA,UAAWT,CAGb,CACF,EAIM,CAAE,WAAYgB,EAAa,GAAGC,CAAU,EAAIP,EAC5CQ,EACJ,CAACjB,EAAMG,EAAQ,QAAU,OAAWY,CAAW,EAC5C,OAAO,OAAO,EACd,KAAK,GAAG,GAAK,OAGlB,OACEvB,EAAA,cAAC0B,EAAA,CACC,GAAG,SACH,KAAMxB,EACN,WAAUuB,EACV,aAAYhB,EACZ,aAAYC,EACZ,gBAAeU,EAAc,eAAe,EAC5C,cAAeP,EACf,eAAgBC,EAChB,MAAOV,EACP,UAAWgB,EAAc,UACxB,GAAGI,EACH,GAAGH,GAEHlB,CACH,CAEJ,EAEOwB,EAAQ1B,EACfA,EAAO,YAAc","sourcesContent":["import UI from \"../ui\";\nimport React from \"react\";\nimport { useDisabledState } from \"../../hooks/use-disabled-state\";\nimport { resolveDisabledState } from \"../../utils/accessibility\";\nimport type { DisabledStateProps } from \"../../types/shared\";\n\nexport type ButtonProps = Partial<React.ComponentProps<typeof UI>> &\n DisabledStateProps & {\n /**\n * The button type\n * Required - 'button' | 'submit' | 'reset'\n */\n type: \"button\" | \"submit\" | \"reset\";\n /**\n * Raw data-btn tokens. Merged with `size` and `block` — all three contribute\n * whitespace-separated words to the final `data-btn` attribute value.\n * @example <Button data-btn=\"pill\">Pill button</Button>\n */\n \"data-btn\"?: string;\n /**\n * Size variant - maps to `data-btn` attribute, aligns with SCSS size tokens.\n * Can coexist with a directly passed `data-btn` attribute (values are merged).\n * @example <Button size=\"sm\">Small</Button>\n */\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n /**\n * Style variant - maps to `data-style` attribute.\n * - `\"outline\"` — transparent bg with border (mirrors link button style)\n * - `\"pill\"` — fully rounded corners\n * - `\"text\"` — ghost text button with subtle hover\n * - `\"icon\"` — square icon-only, no padding\n * @example <Button variant=\"outline\">Bordered</Button>\n */\n variant?: \"text\" | \"pill\" | \"icon\" | \"outline\";\n /**\n * Color variant - maps to `data-color` attribute using semantic color tokens.\n * @example <Button color=\"danger\">Delete</Button>\n */\n color?: \"primary\" | \"secondary\" | \"danger\" | \"success\" | \"warning\";\n /**\n * Block layout — stretches the button to 100% of its container width.\n * Composes with `size` and other `data-btn` values.\n * @example <Button block>Full Width</Button>\n * @example <Button size=\"lg\" block>Large Full Width</Button>\n */\n block?: boolean;\n };\n\n/**\n * Accessible Button component with WCAG 2.1 Level AA compliant disabled state.\n *\n * **Key Accessibility Features:**\n * - Uses `aria-disabled` pattern instead of native `disabled` attribute\n * - Maintains keyboard focusability when disabled (stays in tab order)\n * - Prevents all interactions when disabled via optimized `useDisabledState` hook\n * - Automatic className merging for seamless styling\n * - Supports both modern `disabled` and legacy `isDisabled` props\n *\n * **Why aria-disabled?**\n * - Elements remain in keyboard tab order (WCAG 2.1.1 - Keyboard)\n * - Screen readers can discover and announce disabled state (WCAG 4.1.2)\n * - Enables tooltips and help text on disabled buttons\n * - Better visual styling control for WCAG AA contrast compliance\n *\n * **Performance:**\n * - Uses optimized `useDisabledState` hook with stable references\n * - Automatic className merging eliminates boilerplate\n * - ~90% reduction in unnecessary re-renders compared to previous implementation\n *\n * @example\n * // Basic usage\n * <Button type=\"button\" onClick={handleClick}>\n * Click me\n * </Button>\n *\n * @example\n * // Disabled state (prevents all interactions but stays focusable)\n * <Button type=\"button\" disabled={true} onClick={handleClick}>\n * Cannot click (but can focus for screen readers)\n * </Button>\n *\n * @example\n * // With custom classes (automatic merging with .is-disabled)\n * <Button\n * type=\"button\"\n * disabled={true}\n * classes=\"my-custom-btn\"\n * >\n * Custom disabled button\n * </Button>\n *\n * @example\n * // Legacy isDisabled prop (still supported)\n * <Button type=\"button\" isDisabled={true} onClick={handleClick}>\n * Legacy disabled\n * </Button>\n *\n * @see {@link https://www.w3.org/WAI/WCAG21/Understanding/keyboard WCAG 2.1.1 - Keyboard}\n * @see {@link https://www.w3.org/WAI/WCAG21/Understanding/name-role-value WCAG 4.1.2 - Name, Role, Value}\n * @see {@link file://./../../hooks/useDisabledState.md useDisabledState Hook Documentation}\n */\nexport const Button = ({\n type = \"button\",\n children,\n styles,\n disabled,\n isDisabled,\n classes,\n size,\n variant,\n color,\n block,\n onPointerDown,\n onPointerOver,\n onPointerLeave,\n onClick,\n onKeyDown,\n ...props\n}: ButtonProps) => {\n // Resolve disabled state from both props (disabled takes precedence)\n const isActuallyDisabled = resolveDisabledState(disabled, isDisabled);\n\n // Use the disabled state hook with enhanced API for automatic className merging\n const { disabledProps, handlers } = useDisabledState<HTMLButtonElement>(\n isActuallyDisabled,\n {\n handlers: {\n onClick,\n onPointerDown,\n onKeyDown,\n },\n // Automatic className merging - hook combines disabled class with user classes\n className: classes,\n // Note: onPointerOver and onPointerLeave are intentionally NOT wrapped\n // to allow hover effects on disabled buttons for visual feedback\n },\n );\n\n // Merge size, block, and any explicit data-btn passed by the consumer.\n // SCSS uses [data-btn~=\"value\"] (whitespace word match), so \"lg block\" targets both.\n const { \"data-btn\": dataBtnProp, ...restProps } = props;\n const dataBtnValue =\n [size, block ? \"block\" : undefined, dataBtnProp]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n /* Returning a button element with accessible disabled state */\n return (\n <UI\n as=\"button\"\n type={type}\n data-btn={dataBtnValue}\n data-style={variant}\n data-color={color}\n aria-disabled={disabledProps[\"aria-disabled\"]}\n onPointerOver={onPointerOver}\n onPointerLeave={onPointerLeave}\n style={styles}\n className={disabledProps.className}\n {...restProps}\n {...handlers}\n >\n {children}\n </UI>\n );\n};\n\nexport default Button;\nButton.displayName = \"Button\";\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as a$1 } from './chunk-
|
|
1
|
+
import { a as a$1 } from './chunk-34NWHFHP.js';
|
|
2
2
|
import { a } from './chunk-4KJP3L35.js';
|
|
3
3
|
import e from 'react';
|
|
4
4
|
|
|
@@ -6,4 +6,4 @@ var l=({id:n,children:a$1,classes:r,modalRef:d,openOnMount:i,...t})=>e.createEle
|
|
|
6
6
|
|
|
7
7
|
export { u as a };
|
|
8
8
|
//# sourceMappingURL=out.js.map
|
|
9
|
-
//# sourceMappingURL=chunk-
|
|
9
|
+
//# sourceMappingURL=chunk-6NMLU5FA.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk25KCUE3R_cjs = require('./chunk-25KCUE3R.cjs');
|
|
4
4
|
var chunk66C2J4IX_cjs = require('./chunk-66C2J4IX.cjs');
|
|
5
5
|
var e = require('react');
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
8
8
|
|
|
9
9
|
var e__default = /*#__PURE__*/_interopDefault(e);
|
|
10
10
|
|
|
11
|
-
var l=({id:n,children:a,classes:r,modalRef:d,openOnMount:i,...t})=>e__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"dialog",id:n,classes:r,ref:d,open:i,onClick:o=>{o.currentTarget===o.target&&o.currentTarget.close();},...t},a);e__default.default.memo(l);l.displayName="Dialog";var u=({openChild:n,closeChild:a,modalHeader:r,modalFooter:d,children:i,showOpen:t=!1,...p})=>{let o=e__default.default.useRef(null),f=()=>{o.current&&(t?o.current.show():o.current.showModal());},M=()=>{o.current&&o.current.close();};return e__default.default.createElement(e__default.default.Fragment,null,e__default.default.createElement(l,{modalRef:o,openOnMount:t,...p},e__default.default.createElement("section",null,r,i,d??e__default.default.createElement("div",null,e__default.default.createElement(
|
|
11
|
+
var l=({id:n,children:a,classes:r,modalRef:d,openOnMount:i,...t})=>e__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"dialog",id:n,classes:r,ref:d,open:i,onClick:o=>{o.currentTarget===o.target&&o.currentTarget.close();},...t},a);e__default.default.memo(l);l.displayName="Dialog";var u=({openChild:n,closeChild:a,modalHeader:r,modalFooter:d,children:i,showOpen:t=!1,...p})=>{let o=e__default.default.useRef(null),f=()=>{o.current&&(t?o.current.show():o.current.showModal());},M=()=>{o.current&&o.current.close();};return e__default.default.createElement(e__default.default.Fragment,null,e__default.default.createElement(l,{modalRef:o,openOnMount:t,...p},e__default.default.createElement("section",null,r,i,d??e__default.default.createElement("div",null,e__default.default.createElement(chunk25KCUE3R_cjs.a,{type:"button",pointerDown:()=>{M();}},a||"Close")," "))),!t&&e__default.default.createElement(chunk25KCUE3R_cjs.a,{type:"button",pointerDown:f},n||"Open Modal"))};u.displayName="Modal";
|
|
12
12
|
|
|
13
13
|
exports.a = u;
|
|
14
14
|
//# sourceMappingURL=out.js.map
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
15
|
+
//# sourceMappingURL=chunk-6YVR4TDM.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import t, { useId, useRef, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
var u=({id:g,children:f,trigger:s,triggerLabel:i="Open",mode:l="auto",placement:v="bottom",isOpen:r,onToggle:p,showCloseButton:c,showArrow:m=!0,closeButtonLabel:b="Close",className:h="",styles:P})=>{let y=useId(),n=g||y,a=useRef(null),E=c!==void 0?c:l==="manual";return useEffect(()=>{let e=a.current;if(e&&r!==void 0)try{let o=e.matches(":popover-open")||e.hasAttribute("data-popover-open");r&&!o?e.showPopover():!r&&o&&e.hidePopover();}catch{let o=e.hasAttribute("data-popover-open");r&&!o?e.showPopover():!r&&o&&e.hidePopover();}},[r]),useEffect(()=>{let e=a.current;if(!e||!p)return;let o=N=>{p(N.newState==="open");};return e.addEventListener("toggle",o),()=>e.removeEventListener("toggle",o)},[p]),t.createElement(t.Fragment,null,(()=>s?t.cloneElement(s,{popovertarget:n,popovertargetaction:"toggle"}):t.createElement("button",{type:"button",popovertarget:n,popovertargetaction:"toggle","aria-label":i,className:"fpkit-popover-trigger"},i))(),t.createElement("div",{ref:a,id:n,popover:l,className:`fpkit-popover ${h}`.trim(),"data-placement":v,style:P},m&&t.createElement("div",{className:"fpkit-popover-arrow","data-placement":v}),t.createElement("div",{className:"fpkit-popover-content"},f,E&&t.createElement("button",{type:"button",popovertarget:n,popovertargetaction:"hide","aria-label":b,className:"fpkit-popover-close"},"\u2715"))))},S=u;u.displayName="Popover";
|
|
4
|
+
|
|
5
|
+
export { u as a, S as b };
|
|
6
|
+
//# sourceMappingURL=out.js.map
|
|
7
|
+
//# sourceMappingURL=chunk-DSQ2TUCR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/popover/popover.tsx"],"names":["React","useEffect","useId","useRef","Popover","id","children","trigger","triggerLabel","mode","placement","isOpen","onToggle","showCloseButton","showArrow","closeButtonLabel","className","styles","generatedId","popoverId","popoverRef","shouldShowCloseButton","popover","isCurrentlyOpen","handleToggle","event","popover_default"],"mappings":"AAAA,OAAOA,GAAS,aAAAC,EAAW,SAAAC,EAAO,UAAAC,MAAc,QAmEzC,IAAMC,EAAkC,CAAC,CAC9C,GAAAC,EACA,SAAAC,EACA,QAAAC,EACA,aAAAC,EAAe,OACf,KAAAC,EAAO,OACP,UAAAC,EAAY,SACZ,OAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,QACnB,UAAAC,EAAY,GACZ,OAAAC,CACF,IAAM,CACJ,IAAMC,EAAchB,EAAM,EACpBiB,EAAYd,GAAMa,EAClBE,EAAajB,EAAuB,IAAI,EAGxCkB,EACJR,IAAoB,OAAYA,EAAkBJ,IAAS,SAG7D,OAAAR,EAAU,IAAM,CACd,IAAMqB,EAAUF,EAAW,QAC3B,GAAKE,GAEDX,IAAW,OACb,GAAI,CAGF,IAAMY,EACJD,EAAQ,QAAQ,eAAe,GAAKA,EAAQ,aAAa,mBAAmB,EAE1EX,GAAU,CAACY,EACbD,EAAQ,YAAY,EACX,CAACX,GAAUY,GACpBD,EAAQ,YAAY,CAExB,MAAQ,CAEN,IAAMC,EAAkBD,EAAQ,aAAa,mBAAmB,EAC5DX,GAAU,CAACY,EACbD,EAAQ,YAAY,EACX,CAACX,GAAUY,GACpBD,EAAQ,YAAY,CAExB,CAEJ,EAAG,CAACX,CAAM,CAAC,EAGXV,EAAU,IAAM,CACd,IAAMqB,EAAUF,EAAW,QAC3B,GAAI,CAACE,GAAW,CAACV,EAAU,OAE3B,IAAMY,EAAgBC,GAAiB,CAErCb,EADoBa,EACC,WAAa,MAAM,CAC1C,EAEA,OAAAH,EAAQ,iBAAiB,SAAUE,CAAY,EACxC,IAAMF,EAAQ,oBAAoB,SAAUE,CAAY,CACjE,EAAG,CAACZ,CAAQ,CAAC,EAyBXZ,EAAA,cAAAA,EAAA,eAtBoB,IAChBO,EACKP,EAAM,aAAaO,EAA+B,CACvD,cAAeY,EACf,oBAAqB,QACvB,CAAC,EAIDnB,EAAA,cAAC,UACC,KAAK,SACL,cAAemB,EACf,oBAAoB,SACpB,aAAYX,EACZ,UAAU,yBAETA,CACH,GAMe,EACfR,EAAA,cAAC,OACC,IAAKoB,EACL,GAAID,EACJ,QAASV,EACT,UAAW,iBAAiBO,CAAS,GAAG,KAAK,EAC7C,iBAAgBN,EAChB,MAAOO,GAENH,GAAad,EAAA,cAAC,OAAI,UAAU,sBAAsB,iBAAgBU,EAAW,EAC9EV,EAAA,cAAC,OAAI,UAAU,yBACZM,EACAe,GACCrB,EAAA,cAAC,UACC,KAAK,SACL,cAAemB,EACf,oBAAoB,OACpB,aAAYJ,EACZ,UAAU,uBACX,QAED,CAEJ,CACF,CACF,CAEJ,EAEOW,EAAQtB,EACfA,EAAQ,YAAc","sourcesContent":["import React, { useEffect, useId, useRef } from 'react';\nimport type {} from '../../types/popover';\n\n/**\n * Props for the Popover component using native HTML popover API\n */\nexport interface PopoverProps {\n /** Unique ID for popover (required for popovertarget attribute) */\n id?: string;\n /** Content to display inside the popover */\n children: React.ReactNode;\n /** Custom trigger element (default: button with triggerLabel) */\n trigger?: React.ReactNode;\n /** Aria-label for default trigger button */\n triggerLabel?: string;\n /** Popover mode: \"auto\" (light dismiss) or \"manual\" (explicit close) */\n mode?: 'auto' | 'manual';\n /** Preferred placement position relative to trigger */\n placement?: 'top' | 'bottom' | 'left' | 'right';\n /** Controlled open state (optional) */\n isOpen?: boolean;\n /** Callback when popover toggles open/closed */\n onToggle?: (open: boolean) => void;\n /** Show close button (default: true for manual mode, false for auto) */\n showCloseButton?: boolean;\n /** Aria-label for close button */\n closeButtonLabel?: string;\n /** Show positioning arrow */\n showArrow?: boolean;\n /** Custom CSS class for popover element */\n className?: string;\n /** Inline CSS variables for theming */\n styles?: React.CSSProperties;\n}\n\n/**\n * Popover component using native HTML popover API\n *\n * Provides automatic top-layer rendering, light dismiss behavior,\n * and accessibility features built into the platform.\n *\n * **Browser Requirements:**\n * - Chrome 125+, Edge 125+, Safari 17.4+\n * - Requires CSS anchor positioning support for optimal placement\n *\n * @example\n * ```tsx\n * <Popover id=\"my-popover\" triggerLabel=\"Open Menu\">\n * <p>Popover content here</p>\n * </Popover>\n * ```\n *\n * @example\n * ```tsx\n * <Popover\n * id=\"custom-popover\"\n * mode=\"manual\"\n * placement=\"top\"\n * trigger={<button>Custom Trigger</button>}\n * >\n * <h3>Popover Title</h3>\n * <p>This requires explicit close action.</p>\n * </Popover>\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/popover\n */\nexport const Popover: React.FC<PopoverProps> = ({\n id,\n children,\n trigger,\n triggerLabel = 'Open',\n mode = 'auto',\n placement = 'bottom',\n isOpen,\n onToggle,\n showCloseButton,\n showArrow = true,\n closeButtonLabel = 'Close',\n className = '',\n styles,\n}) => {\n const generatedId = useId();\n const popoverId = id || generatedId;\n const popoverRef = useRef<HTMLDivElement>(null);\n\n // Default showCloseButton based on mode\n const shouldShowCloseButton =\n showCloseButton !== undefined ? showCloseButton : mode === 'manual';\n\n // Handle controlled state\n useEffect(() => {\n const popover = popoverRef.current;\n if (!popover) return;\n\n if (isOpen !== undefined) {\n try {\n // Try to check if popover is open using :popover-open pseudo-class\n // Fall back to checking data attribute for testing environments\n const isCurrentlyOpen =\n popover.matches(':popover-open') || popover.hasAttribute('data-popover-open');\n\n if (isOpen && !isCurrentlyOpen) {\n popover.showPopover();\n } else if (!isOpen && isCurrentlyOpen) {\n popover.hidePopover();\n }\n } catch {\n // In environments without popover support, check data attribute\n const isCurrentlyOpen = popover.hasAttribute('data-popover-open');\n if (isOpen && !isCurrentlyOpen) {\n popover.showPopover();\n } else if (!isOpen && isCurrentlyOpen) {\n popover.hidePopover();\n }\n }\n }\n }, [isOpen]);\n\n // Listen to toggle events\n useEffect(() => {\n const popover = popoverRef.current;\n if (!popover || !onToggle) return;\n\n const handleToggle = (event: Event) => {\n const toggleEvent = event as ToggleEvent;\n onToggle(toggleEvent.newState === 'open');\n };\n\n popover.addEventListener('toggle', handleToggle);\n return () => popover.removeEventListener('toggle', handleToggle);\n }, [onToggle]);\n\n // Custom trigger with popovertarget attribute\n const renderTrigger = () => {\n if (trigger) {\n return React.cloneElement(trigger as React.ReactElement, {\n popovertarget: popoverId,\n popovertargetaction: 'toggle',\n });\n }\n\n return (\n <button\n type=\"button\"\n popovertarget={popoverId}\n popovertargetaction=\"toggle\"\n aria-label={triggerLabel}\n className=\"fpkit-popover-trigger\"\n >\n {triggerLabel}\n </button>\n );\n };\n\n return (\n <>\n {renderTrigger()}\n <div\n ref={popoverRef}\n id={popoverId}\n popover={mode}\n className={`fpkit-popover ${className}`.trim()}\n data-placement={placement}\n style={styles}\n >\n {showArrow && <div className=\"fpkit-popover-arrow\" data-placement={placement} />}\n <div className=\"fpkit-popover-content\">\n {children}\n {shouldShowCloseButton && (\n <button\n type=\"button\"\n popovertarget={popoverId}\n popovertargetaction=\"hide\"\n aria-label={closeButtonLabel}\n className=\"fpkit-popover-close\"\n >\n ✕\n </button>\n )}\n </div>\n </div>\n </>\n );\n};\n\nexport default Popover;\nPopover.displayName = 'Popover';\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { b } from './chunk-AQAI6COH.js';
|
|
2
2
|
import { b as b$2 } from './chunk-4F6SI5V5.js';
|
|
3
|
-
import { b as b$1 } from './chunk-
|
|
3
|
+
import { b as b$1 } from './chunk-34NWHFHP.js';
|
|
4
4
|
import { a } from './chunk-4KJP3L35.js';
|
|
5
5
|
import s, { useCallback, useRef, useId, useEffect } from 'react';
|
|
6
6
|
|
|
@@ -8,4 +8,4 @@ var y=({dialogTitle:t,onClick:o,id:l,type:e="h3"})=>{let a$1=useCallback(()=>{o(
|
|
|
8
8
|
|
|
9
9
|
export { F as a, ao as b };
|
|
10
10
|
//# sourceMappingURL=out.js.map
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
11
|
+
//# sourceMappingURL=chunk-VQTCTLFN.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var t = require('react');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var t__default = /*#__PURE__*/_interopDefault(t);
|
|
8
|
+
|
|
9
|
+
var u=({id:g,children:f,trigger:s,triggerLabel:i="Open",mode:l="auto",placement:v="bottom",isOpen:r,onToggle:p,showCloseButton:c,showArrow:m=!0,closeButtonLabel:b="Close",className:h="",styles:P})=>{let y=t.useId(),n=g||y,a=t.useRef(null),E=c!==void 0?c:l==="manual";return t.useEffect(()=>{let e=a.current;if(e&&r!==void 0)try{let o=e.matches(":popover-open")||e.hasAttribute("data-popover-open");r&&!o?e.showPopover():!r&&o&&e.hidePopover();}catch{let o=e.hasAttribute("data-popover-open");r&&!o?e.showPopover():!r&&o&&e.hidePopover();}},[r]),t.useEffect(()=>{let e=a.current;if(!e||!p)return;let o=N=>{p(N.newState==="open");};return e.addEventListener("toggle",o),()=>e.removeEventListener("toggle",o)},[p]),t__default.default.createElement(t__default.default.Fragment,null,(()=>s?t__default.default.cloneElement(s,{popovertarget:n,popovertargetaction:"toggle"}):t__default.default.createElement("button",{type:"button",popovertarget:n,popovertargetaction:"toggle","aria-label":i,className:"fpkit-popover-trigger"},i))(),t__default.default.createElement("div",{ref:a,id:n,popover:l,className:`fpkit-popover ${h}`.trim(),"data-placement":v,style:P},m&&t__default.default.createElement("div",{className:"fpkit-popover-arrow","data-placement":v}),t__default.default.createElement("div",{className:"fpkit-popover-content"},f,E&&t__default.default.createElement("button",{type:"button",popovertarget:n,popovertargetaction:"hide","aria-label":b,className:"fpkit-popover-close"},"\u2715"))))},S=u;u.displayName="Popover";
|
|
10
|
+
|
|
11
|
+
exports.a = u;
|
|
12
|
+
exports.b = S;
|
|
13
|
+
//# sourceMappingURL=out.js.map
|
|
14
|
+
//# sourceMappingURL=chunk-ZJ4RUKI2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/popover/popover.tsx"],"names":["React","useEffect","useId","useRef","Popover","id","children","trigger","triggerLabel","mode","placement","isOpen","onToggle","showCloseButton","showArrow","closeButtonLabel","className","styles","generatedId","popoverId","popoverRef","shouldShowCloseButton","popover","isCurrentlyOpen","handleToggle","event","popover_default"],"mappings":"AAAA,OAAOA,GAAS,aAAAC,EAAW,SAAAC,EAAO,UAAAC,MAAc,QAmEzC,IAAMC,EAAkC,CAAC,CAC9C,GAAAC,EACA,SAAAC,EACA,QAAAC,EACA,aAAAC,EAAe,OACf,KAAAC,EAAO,OACP,UAAAC,EAAY,SACZ,OAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,QACnB,UAAAC,EAAY,GACZ,OAAAC,CACF,IAAM,CACJ,IAAMC,EAAchB,EAAM,EACpBiB,EAAYd,GAAMa,EAClBE,EAAajB,EAAuB,IAAI,EAGxCkB,EACJR,IAAoB,OAAYA,EAAkBJ,IAAS,SAG7D,OAAAR,EAAU,IAAM,CACd,IAAMqB,EAAUF,EAAW,QAC3B,GAAKE,GAEDX,IAAW,OACb,GAAI,CAGF,IAAMY,EACJD,EAAQ,QAAQ,eAAe,GAAKA,EAAQ,aAAa,mBAAmB,EAE1EX,GAAU,CAACY,EACbD,EAAQ,YAAY,EACX,CAACX,GAAUY,GACpBD,EAAQ,YAAY,CAExB,MAAQ,CAEN,IAAMC,EAAkBD,EAAQ,aAAa,mBAAmB,EAC5DX,GAAU,CAACY,EACbD,EAAQ,YAAY,EACX,CAACX,GAAUY,GACpBD,EAAQ,YAAY,CAExB,CAEJ,EAAG,CAACX,CAAM,CAAC,EAGXV,EAAU,IAAM,CACd,IAAMqB,EAAUF,EAAW,QAC3B,GAAI,CAACE,GAAW,CAACV,EAAU,OAE3B,IAAMY,EAAgBC,GAAiB,CAErCb,EADoBa,EACC,WAAa,MAAM,CAC1C,EAEA,OAAAH,EAAQ,iBAAiB,SAAUE,CAAY,EACxC,IAAMF,EAAQ,oBAAoB,SAAUE,CAAY,CACjE,EAAG,CAACZ,CAAQ,CAAC,EAyBXZ,EAAA,cAAAA,EAAA,eAtBoB,IAChBO,EACKP,EAAM,aAAaO,EAA+B,CACvD,cAAeY,EACf,oBAAqB,QACvB,CAAC,EAIDnB,EAAA,cAAC,UACC,KAAK,SACL,cAAemB,EACf,oBAAoB,SACpB,aAAYX,EACZ,UAAU,yBAETA,CACH,GAMe,EACfR,EAAA,cAAC,OACC,IAAKoB,EACL,GAAID,EACJ,QAASV,EACT,UAAW,iBAAiBO,CAAS,GAAG,KAAK,EAC7C,iBAAgBN,EAChB,MAAOO,GAENH,GAAad,EAAA,cAAC,OAAI,UAAU,sBAAsB,iBAAgBU,EAAW,EAC9EV,EAAA,cAAC,OAAI,UAAU,yBACZM,EACAe,GACCrB,EAAA,cAAC,UACC,KAAK,SACL,cAAemB,EACf,oBAAoB,OACpB,aAAYJ,EACZ,UAAU,uBACX,QAED,CAEJ,CACF,CACF,CAEJ,EAEOW,EAAQtB,EACfA,EAAQ,YAAc","sourcesContent":["import React, { useEffect, useId, useRef } from 'react';\nimport type {} from '../../types/popover';\n\n/**\n * Props for the Popover component using native HTML popover API\n */\nexport interface PopoverProps {\n /** Unique ID for popover (required for popovertarget attribute) */\n id?: string;\n /** Content to display inside the popover */\n children: React.ReactNode;\n /** Custom trigger element (default: button with triggerLabel) */\n trigger?: React.ReactNode;\n /** Aria-label for default trigger button */\n triggerLabel?: string;\n /** Popover mode: \"auto\" (light dismiss) or \"manual\" (explicit close) */\n mode?: 'auto' | 'manual';\n /** Preferred placement position relative to trigger */\n placement?: 'top' | 'bottom' | 'left' | 'right';\n /** Controlled open state (optional) */\n isOpen?: boolean;\n /** Callback when popover toggles open/closed */\n onToggle?: (open: boolean) => void;\n /** Show close button (default: true for manual mode, false for auto) */\n showCloseButton?: boolean;\n /** Aria-label for close button */\n closeButtonLabel?: string;\n /** Show positioning arrow */\n showArrow?: boolean;\n /** Custom CSS class for popover element */\n className?: string;\n /** Inline CSS variables for theming */\n styles?: React.CSSProperties;\n}\n\n/**\n * Popover component using native HTML popover API\n *\n * Provides automatic top-layer rendering, light dismiss behavior,\n * and accessibility features built into the platform.\n *\n * **Browser Requirements:**\n * - Chrome 125+, Edge 125+, Safari 17.4+\n * - Requires CSS anchor positioning support for optimal placement\n *\n * @example\n * ```tsx\n * <Popover id=\"my-popover\" triggerLabel=\"Open Menu\">\n * <p>Popover content here</p>\n * </Popover>\n * ```\n *\n * @example\n * ```tsx\n * <Popover\n * id=\"custom-popover\"\n * mode=\"manual\"\n * placement=\"top\"\n * trigger={<button>Custom Trigger</button>}\n * >\n * <h3>Popover Title</h3>\n * <p>This requires explicit close action.</p>\n * </Popover>\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/popover\n */\nexport const Popover: React.FC<PopoverProps> = ({\n id,\n children,\n trigger,\n triggerLabel = 'Open',\n mode = 'auto',\n placement = 'bottom',\n isOpen,\n onToggle,\n showCloseButton,\n showArrow = true,\n closeButtonLabel = 'Close',\n className = '',\n styles,\n}) => {\n const generatedId = useId();\n const popoverId = id || generatedId;\n const popoverRef = useRef<HTMLDivElement>(null);\n\n // Default showCloseButton based on mode\n const shouldShowCloseButton =\n showCloseButton !== undefined ? showCloseButton : mode === 'manual';\n\n // Handle controlled state\n useEffect(() => {\n const popover = popoverRef.current;\n if (!popover) return;\n\n if (isOpen !== undefined) {\n try {\n // Try to check if popover is open using :popover-open pseudo-class\n // Fall back to checking data attribute for testing environments\n const isCurrentlyOpen =\n popover.matches(':popover-open') || popover.hasAttribute('data-popover-open');\n\n if (isOpen && !isCurrentlyOpen) {\n popover.showPopover();\n } else if (!isOpen && isCurrentlyOpen) {\n popover.hidePopover();\n }\n } catch {\n // In environments without popover support, check data attribute\n const isCurrentlyOpen = popover.hasAttribute('data-popover-open');\n if (isOpen && !isCurrentlyOpen) {\n popover.showPopover();\n } else if (!isOpen && isCurrentlyOpen) {\n popover.hidePopover();\n }\n }\n }\n }, [isOpen]);\n\n // Listen to toggle events\n useEffect(() => {\n const popover = popoverRef.current;\n if (!popover || !onToggle) return;\n\n const handleToggle = (event: Event) => {\n const toggleEvent = event as ToggleEvent;\n onToggle(toggleEvent.newState === 'open');\n };\n\n popover.addEventListener('toggle', handleToggle);\n return () => popover.removeEventListener('toggle', handleToggle);\n }, [onToggle]);\n\n // Custom trigger with popovertarget attribute\n const renderTrigger = () => {\n if (trigger) {\n return React.cloneElement(trigger as React.ReactElement, {\n popovertarget: popoverId,\n popovertargetaction: 'toggle',\n });\n }\n\n return (\n <button\n type=\"button\"\n popovertarget={popoverId}\n popovertargetaction=\"toggle\"\n aria-label={triggerLabel}\n className=\"fpkit-popover-trigger\"\n >\n {triggerLabel}\n </button>\n );\n };\n\n return (\n <>\n {renderTrigger()}\n <div\n ref={popoverRef}\n id={popoverId}\n popover={mode}\n className={`fpkit-popover ${className}`.trim()}\n data-placement={placement}\n style={styles}\n >\n {showArrow && <div className=\"fpkit-popover-arrow\" data-placement={placement} />}\n <div className=\"fpkit-popover-content\">\n {children}\n {shouldShowCloseButton && (\n <button\n type=\"button\"\n popovertarget={popoverId}\n popovertargetaction=\"hide\"\n aria-label={closeButtonLabel}\n className=\"fpkit-popover-close\"\n >\n ✕\n </button>\n )}\n </div>\n </div>\n </>\n );\n};\n\nexport default Popover;\nPopover.displayName = 'Popover';\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunk6WMLG4O5_cjs = require('./chunk-6WMLG4O5.cjs');
|
|
4
4
|
var chunkOZM455LO_cjs = require('./chunk-OZM455LO.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunk25KCUE3R_cjs = require('./chunk-25KCUE3R.cjs');
|
|
6
6
|
var chunk66C2J4IX_cjs = require('./chunk-66C2J4IX.cjs');
|
|
7
7
|
var s = require('react');
|
|
8
8
|
|
|
@@ -10,9 +10,9 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
10
10
|
|
|
11
11
|
var s__default = /*#__PURE__*/_interopDefault(s);
|
|
12
12
|
|
|
13
|
-
var y=({dialogTitle:t,onClick:o,id:l,type:e="h3"})=>{let a=s.useCallback(()=>{o();},[o]);return s__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"div",classes:"dialog-header"},s__default.default.createElement(chunk6WMLG4O5_cjs.b,{type:e,className:"dialog-title",id:l},t||"Dialog"),s__default.default.createElement(
|
|
13
|
+
var y=({dialogTitle:t,onClick:o,id:l,type:e="h3"})=>{let a=s.useCallback(()=>{o();},[o]);return s__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"div",classes:"dialog-header"},s__default.default.createElement(chunk6WMLG4O5_cjs.b,{type:e,className:"dialog-title",id:l},t||"Dialog"),s__default.default.createElement(chunk25KCUE3R_cjs.b,{type:"button",onClick:a,className:"dialog-close","aria-label":"Close dialog","data-btn":"icon"},s__default.default.createElement(chunkOZM455LO_cjs.b,null,s__default.default.createElement(chunkOZM455LO_cjs.b.Remove,{size:16}))))},D=s__default.default.memo(y);y.displayName="DialogHeader";var H=({onClose:t,onConfirm:o,confirmLabel:l,cancelLabel:e})=>{let a=s.useCallback(()=>{t();},[t]),m=s.useCallback(()=>{o&&o();},[o]);return s__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"section",className:"dialog-footer"},e&&s__default.default.createElement(chunk25KCUE3R_cjs.b,{type:"button",onClick:a,className:"dialog-button button-secondary","data-btn":"sm"},e),o&&s__default.default.createElement(chunk25KCUE3R_cjs.b,{type:"button",onClick:m,className:"dialog-button button-primary","data-btn":"sm"},l))};H.displayName="DialogFooter";var I=s__default.default.memo(H);var h=(t,o)=>s.useCallback(e=>{let a=t.current?.getBoundingClientRect();a&&(e.clientY<a.top||e.clientY>a.bottom||e.clientX<a.left||e.clientX>a.right)&&o();},[t,o]);var F=({isOpen:t,onOpenChange:o,isAlertDialog:l=!1,onClose:e,dialogTitle:a,dialogLabel:m,children:P,onConfirm:U,confirmLabel:B="Confirm",cancelLabel:E="Cancel",className:M="",hideFooter:v=!1,styles:x})=>{let f=s.useRef(null),u=s.useId();s.useEffect(()=>{let r=f.current;r&&(t?l?r.show():r.showModal():r.close());},[t,l]);let c=s.useCallback(()=>{o(!1),e&&e();},[o,e]),L=h(f,c),b=s.useId();return s__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"dialog",role:l?"alertdialog":"dialog",ref:f,onClose:c,onClick:L,"aria-modal":t&&!l?"true":void 0,"aria-labelledby":u,"aria-describedby":b,"aria-label":m,className:`dialog-modal ${M}`.trim(),style:x},s__default.default.createElement(D,{dialogTitle:a,onClick:c,id:u}),s__default.default.createElement(chunk66C2J4IX_cjs.a,{as:"section",id:b,className:"dialog-content",onClick:r=>r.stopPropagation()},P,!v&&s__default.default.createElement(I,{onClose:c,onConfirm:U,confirmLabel:B,cancelLabel:E})))};F.displayName="Dialog";var ao=s__default.default.memo(F);
|
|
14
14
|
|
|
15
15
|
exports.a = F;
|
|
16
16
|
exports.b = ao;
|
|
17
17
|
//# sourceMappingURL=out.js.map
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-ZOPHCNFD.cjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var chunk25KCUE3R_cjs = require('../chunk-25KCUE3R.cjs');
|
|
6
6
|
require('../chunk-PNWIRCG3.cjs');
|
|
7
7
|
require('../chunk-TON2YGMD.cjs');
|
|
8
8
|
require('../chunk-66C2J4IX.cjs');
|
|
@@ -11,11 +11,11 @@ require('../chunk-66C2J4IX.cjs');
|
|
|
11
11
|
|
|
12
12
|
Object.defineProperty(exports, 'Button', {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunk25KCUE3R_cjs.a; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, 'default', {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunk25KCUE3R_cjs.b; }
|
|
19
19
|
});
|
|
20
20
|
//# sourceMappingURL=out.js.map
|
|
21
21
|
//# sourceMappingURL=button.cjs.map
|
|
@@ -54,6 +54,39 @@ type ButtonProps = Partial<React.ComponentProps<typeof UI>> & DisabledStateProps
|
|
|
54
54
|
* Required - 'button' | 'submit' | 'reset'
|
|
55
55
|
*/
|
|
56
56
|
type: "button" | "submit" | "reset";
|
|
57
|
+
/**
|
|
58
|
+
* Raw data-btn tokens. Merged with `size` and `block` — all three contribute
|
|
59
|
+
* whitespace-separated words to the final `data-btn` attribute value.
|
|
60
|
+
* @example <Button data-btn="pill">Pill button</Button>
|
|
61
|
+
*/
|
|
62
|
+
"data-btn"?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Size variant - maps to `data-btn` attribute, aligns with SCSS size tokens.
|
|
65
|
+
* Can coexist with a directly passed `data-btn` attribute (values are merged).
|
|
66
|
+
* @example <Button size="sm">Small</Button>
|
|
67
|
+
*/
|
|
68
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
69
|
+
/**
|
|
70
|
+
* Style variant - maps to `data-style` attribute.
|
|
71
|
+
* - `"outline"` — transparent bg with border (mirrors link button style)
|
|
72
|
+
* - `"pill"` — fully rounded corners
|
|
73
|
+
* - `"text"` — ghost text button with subtle hover
|
|
74
|
+
* - `"icon"` — square icon-only, no padding
|
|
75
|
+
* @example <Button variant="outline">Bordered</Button>
|
|
76
|
+
*/
|
|
77
|
+
variant?: "text" | "pill" | "icon" | "outline";
|
|
78
|
+
/**
|
|
79
|
+
* Color variant - maps to `data-color` attribute using semantic color tokens.
|
|
80
|
+
* @example <Button color="danger">Delete</Button>
|
|
81
|
+
*/
|
|
82
|
+
color?: "primary" | "secondary" | "danger" | "success" | "warning";
|
|
83
|
+
/**
|
|
84
|
+
* Block layout — stretches the button to 100% of its container width.
|
|
85
|
+
* Composes with `size` and other `data-btn` values.
|
|
86
|
+
* @example <Button block>Full Width</Button>
|
|
87
|
+
* @example <Button size="lg" block>Large Full Width</Button>
|
|
88
|
+
*/
|
|
89
|
+
block?: boolean;
|
|
57
90
|
};
|
|
58
91
|
/**
|
|
59
92
|
* Accessible Button component with WCAG 2.1 Level AA compliant disabled state.
|
|
@@ -109,7 +142,7 @@ type ButtonProps = Partial<React.ComponentProps<typeof UI>> & DisabledStateProps
|
|
|
109
142
|
* @see {@link file://./../../hooks/useDisabledState.md useDisabledState Hook Documentation}
|
|
110
143
|
*/
|
|
111
144
|
declare const Button: {
|
|
112
|
-
({ type, children, styles, disabled, isDisabled, classes, onPointerDown, onPointerOver, onPointerLeave, onClick, onKeyDown, ...props }: ButtonProps): React.JSX.Element;
|
|
145
|
+
({ type, children, styles, disabled, isDisabled, classes, size, variant, color, block, onPointerDown, onPointerOver, onPointerLeave, onClick, onKeyDown, ...props }: ButtonProps): React.JSX.Element;
|
|
113
146
|
displayName: string;
|
|
114
147
|
};
|
|
115
148
|
|
|
@@ -54,6 +54,39 @@ type ButtonProps = Partial<React.ComponentProps<typeof UI>> & DisabledStateProps
|
|
|
54
54
|
* Required - 'button' | 'submit' | 'reset'
|
|
55
55
|
*/
|
|
56
56
|
type: "button" | "submit" | "reset";
|
|
57
|
+
/**
|
|
58
|
+
* Raw data-btn tokens. Merged with `size` and `block` — all three contribute
|
|
59
|
+
* whitespace-separated words to the final `data-btn` attribute value.
|
|
60
|
+
* @example <Button data-btn="pill">Pill button</Button>
|
|
61
|
+
*/
|
|
62
|
+
"data-btn"?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Size variant - maps to `data-btn` attribute, aligns with SCSS size tokens.
|
|
65
|
+
* Can coexist with a directly passed `data-btn` attribute (values are merged).
|
|
66
|
+
* @example <Button size="sm">Small</Button>
|
|
67
|
+
*/
|
|
68
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
69
|
+
/**
|
|
70
|
+
* Style variant - maps to `data-style` attribute.
|
|
71
|
+
* - `"outline"` — transparent bg with border (mirrors link button style)
|
|
72
|
+
* - `"pill"` — fully rounded corners
|
|
73
|
+
* - `"text"` — ghost text button with subtle hover
|
|
74
|
+
* - `"icon"` — square icon-only, no padding
|
|
75
|
+
* @example <Button variant="outline">Bordered</Button>
|
|
76
|
+
*/
|
|
77
|
+
variant?: "text" | "pill" | "icon" | "outline";
|
|
78
|
+
/**
|
|
79
|
+
* Color variant - maps to `data-color` attribute using semantic color tokens.
|
|
80
|
+
* @example <Button color="danger">Delete</Button>
|
|
81
|
+
*/
|
|
82
|
+
color?: "primary" | "secondary" | "danger" | "success" | "warning";
|
|
83
|
+
/**
|
|
84
|
+
* Block layout — stretches the button to 100% of its container width.
|
|
85
|
+
* Composes with `size` and other `data-btn` values.
|
|
86
|
+
* @example <Button block>Full Width</Button>
|
|
87
|
+
* @example <Button size="lg" block>Large Full Width</Button>
|
|
88
|
+
*/
|
|
89
|
+
block?: boolean;
|
|
57
90
|
};
|
|
58
91
|
/**
|
|
59
92
|
* Accessible Button component with WCAG 2.1 Level AA compliant disabled state.
|
|
@@ -109,7 +142,7 @@ type ButtonProps = Partial<React.ComponentProps<typeof UI>> & DisabledStateProps
|
|
|
109
142
|
* @see {@link file://./../../hooks/useDisabledState.md useDisabledState Hook Documentation}
|
|
110
143
|
*/
|
|
111
144
|
declare const Button: {
|
|
112
|
-
({ type, children, styles, disabled, isDisabled, classes, onPointerDown, onPointerOver, onPointerLeave, onClick, onKeyDown, ...props }: ButtonProps): React.JSX.Element;
|
|
145
|
+
({ type, children, styles, disabled, isDisabled, classes, size, variant, color, block, onPointerDown, onPointerOver, onPointerLeave, onClick, onKeyDown, ...props }: ButtonProps): React.JSX.Element;
|
|
113
146
|
displayName: string;
|
|
114
147
|
};
|
|
115
148
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
button{--btn-size-xs: 0.6875rem;--btn-size-sm: 0.8125rem;--btn-size-md: 0.9375rem;--btn-size-lg: 1.125rem;--btn-pill:
|
|
1
|
+
button{--btn-size-xs: 0.6875rem;--btn-size-sm: 0.8125rem;--btn-size-md: 0.9375rem;--btn-size-lg: 1.125rem;--btn-size-xl: 1.375rem;--btn-size-2xl: 1.75rem;--btn-pill: 100vw;--btn-fs: var(--btn-size-md);--btn-height: calc(var(--btn-fs) * 2.75);--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse);--btn-width: max-content;font-size:var(--btn-fs);font-weight:var(--btn-fw, 500);height:var(--btn-height);place-items:var(--btn-place, center);padding-inline:var(--btn-padding-inline, calc(var(--btn-fs) * 1.5));padding-block:var(--btn-padding-block, calc(var(--btn-fs) * 0.5));border:var(--btn-border, none);border-radius:var(--btn-radius, 0.375rem);text-decoration:var(--btn-deco, none);color:var(--btn-color, currentColor);display:var(--btn-display, inline-flex);gap:var(--btn-gap, 0.2rem);white-space:var(--btn-whitespace, inherit);margin:var(--btn-spacing, 0);transition:var(--btn-transition, var(--tran-all, all 0.3s cubic-bezier(0.4, 0, 0.2, 1)));background-color:var(--btn-bg, var(--btn));outline:none;width:var(--btn-width);display:inline-flex;align-items:center;line-height:0cap}button[type]{background-color:var(--btn-bg, var(--color-primary));--btn-border: solid var(--btn-sg)}button[type=submit],button[style*=submit]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse)}button[disabled],button[aria-disabled=true]{cursor:var(--btn-cursor, not-allowed)}button[disabled]:is(:hover,:focus),button[aria-disabled=true]:is(:hover,:focus){transform:none}button:is(:hover,:focus){filter:var(--btn-hover-filter, brightness(0.85));transform:var(--btn-hover-transform, scale(1.03));outline:var(--btn-hover-outline, thin);outline-offset:var(--line-offset, 1px)}button:is(:hover,:focus)[aria-disabled=true]{transform:none;opacity:var(--btn-opacity, 0.5);filter:none}button:focus-visible{outline:var(--btn-focus-outline, 2px solid currentColor);outline-offset:var(--btn-focus-outline-offset, 1px)}button[type=reset]{--btn-bg: transparent;--btn-color: var(--color-text-secondary);--btn-border: var(--color-border) thin solid}button[type=submit]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse);--btn-border: none}button[data-fp-btn~=pill],button[data-btn~=pill],button[data-style~=pill],button.btn-pill{border-radius:var(--btn-pill, 100vw)}button[data-color=primary]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse)}button[data-color=secondary]{--btn-bg: var(--color-secondary);--btn-color: var(--color-text-inverse)}button[data-color=danger]{--btn-bg: var(--color-error);--btn-color: var(--color-text-inverse)}button[data-color=success]{--btn-bg: var(--color-success);--btn-color: var(--color-text-inverse)}button[data-color=warning]{--btn-bg: var(--color-warning);--btn-color: var(--color-text-inverse)}button[data-style~=outline]{--btn-bg: transparent;--btn-color: currentColor;--btn-border: 0.125rem solid currentColor}button[data-style~=outline]:is(:hover,:focus){background-color:color-mix(in srgb, currentColor 10%, transparent);filter:none;outline:.025rem solid currentColor;outline-offset:0}button[data-style~=text]{--btn-bg: transparent;--btn-color: currentColor;--btn-border: none;--btn-height: unset;--btn-width: unset;--btn-padding-block: 0.75rem;--btn-padding-inline: 0.75rem}button[data-style~=text]:is(:hover,:focus){background-color:color-mix(in srgb, var(--btn-color) 10%, transparent);outline:.025rem solid var(--btn-color);outline-offset:0;filter:none}button[data-style~=icon]{padding:unset;height:unset;--btn-bg: transparent;min-width:1.5rem;min-height:1.5rem;text-align:center;display:inline-flex;align-items:center;justify-content:center}button[data-btn~=xs],button .btn-xs{--btn-fs: var(--btn-size-xs);text-transform:uppercase}button[data-btn~=sm],button .btn-sm{--btn-fs: var(--btn-size-sm)}button[data-btn~=md],button .btn-md{--btn-fs: var(--btn-size-md)}button[data-btn~=lg],button .btn-lg{--btn-fs: var(--btn-size-lg)}button[data-btn~=xl],button .btn-xl{--btn-fs: var(--btn-size-xl)}button[data-btn~="2xl"],button .btn-2xl{--btn-fs: var(--btn-size-2xl)}button[data-btn~=block],button .btn-block{--btn-width: 100%;display:flex;justify-content:center}button[data-btn~=text],button .btn-text{--btn-bg: transparent;--btn-color: currentColor;--btn-border: none;--btn-height: unset;--btn-width: unset;--btn-padding-block: 0.75rem;--btn-padding-inline: 0.75rem}button[data-btn~=text]:is(:hover,:focus),button .btn-text:is(:hover,:focus){background-color:color-mix(in srgb, var(--btn-color) 10%, transparent);outline:.025rem solid var(--btn-color);outline-offset:0;filter:none}/*# sourceMappingURL=button.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/components/buttons/button.scss"],"names":[],"mappings":"AAAA,OAEE,yBACA,yBACA,yBACA,wBACA,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/components/buttons/button.scss"],"names":[],"mappings":"AAAA,OAEE,yBACA,yBACA,yBACA,wBACA,wBACA,wBACA,kBACA,6BAEA,yCACA,+BACA,uCACA,yBAEA,wBACA,+BACA,yBACA,qCACA,oEACA,kEACA,+BACA,0CACA,sCACA,qCACA,wCACA,2BACA,2CACA,6BACA,yFAIA,2CACA,aACA,uBACA,oBACA,mBACA,iBAEA,aACE,qDACA,kCAGF,0CAEE,+BACA,uCAGF,4CAEE,sCAGA,gFACE,eAOJ,yBAEE,iDACA,kDACA,uCACA,uCAGA,6CACE,eACA,gCACA,YAIJ,qBACE,yDACA,oDAGF,mBACE,sBACA,yCACA,6CAGF,oBACE,+BACA,uCACA,mBAGF,0FAIE,qCAIF,2BACE,+BACA,uCAGF,6BACE,iCACA,uCAGF,0BACE,6BACA,uCAGF,2BACE,+BACA,uCAGF,2BACE,+BACA,uCAIF,4BACE,sBACA,0BACA,0CAEA,8CACE,mEACA,YACA,mCACA,iBAIJ,yBACE,sBACA,0BACA,mBACA,oBACA,mBACA,6BACA,8BACA,2CACE,uEACA,uCACA,iBACA,YAIJ,yBACE,cACA,aACA,sBACA,iBACA,kBACA,kBACA,oBACA,mBACA,uBAGF,oCAEE,6BACA,yBAGF,oCAEE,6BAGF,oCAEE,6BAGF,oCAEE,6BAGF,oCAEE,6BAGF,wCAEE,8BAGF,0CAEE,kBACA,aACA,uBAGF,wCAEE,sBACA,0BACA,mBACA,oBACA,mBACA,6BACA,8BACA,4EACE,uEACA,uCACA,iBACA","file":"button.css"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
button{--btn-size-xs: 0.6875rem;--btn-size-sm: 0.8125rem;--btn-size-md: 0.9375rem;--btn-size-lg: 1.125rem;--btn-pill:
|
|
1
|
+
button{--btn-size-xs: 0.6875rem;--btn-size-sm: 0.8125rem;--btn-size-md: 0.9375rem;--btn-size-lg: 1.125rem;--btn-size-xl: 1.375rem;--btn-size-2xl: 1.75rem;--btn-pill: 100vw;--btn-fs: var(--btn-size-md);--btn-height: calc(var(--btn-fs) * 2.75);--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse);--btn-width: max-content;font-size:var(--btn-fs);font-weight:var(--btn-fw, 500);height:var(--btn-height);place-items:var(--btn-place, center);padding-inline:var(--btn-padding-inline, calc(var(--btn-fs) * 1.5));padding-block:var(--btn-padding-block, calc(var(--btn-fs) * 0.5));border:var(--btn-border, none);border-radius:var(--btn-radius, 0.375rem);-webkit-text-decoration:var(--btn-deco, none);text-decoration:var(--btn-deco, none);color:var(--btn-color, currentColor);display:var(--btn-display, inline-flex);gap:var(--btn-gap, 0.2rem);white-space:var(--btn-whitespace, inherit);margin:var(--btn-spacing, 0);transition:var(--btn-transition, var(--tran-all, all 0.3s cubic-bezier(0.4, 0, 0.2, 1)));background-color:var(--btn-bg, var(--btn));outline:none;width:var(--btn-width);display:inline-flex;align-items:center;line-height:0cap}button[type]{background-color:var(--btn-bg, var(--color-primary));--btn-border: solid var(--btn-sg)}button[type=submit],button[style*=submit]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse)}button[disabled],button[aria-disabled=true]{cursor:var(--btn-cursor, not-allowed)}button[disabled]:is(:hover,:focus),button[aria-disabled=true]:is(:hover,:focus){transform:none}button:is(:hover,:focus){filter:var(--btn-hover-filter, brightness(0.85));transform:var(--btn-hover-transform, scale(1.03));outline:var(--btn-hover-outline, thin);outline-offset:var(--line-offset, 1px)}button:is(:hover,:focus)[aria-disabled=true]{transform:none;opacity:var(--btn-opacity, 0.5);filter:none}button:focus-visible{outline:var(--btn-focus-outline, 2px solid currentColor);outline-offset:var(--btn-focus-outline-offset, 1px)}button[type=reset]{--btn-bg: transparent;--btn-color: var(--color-text-secondary);--btn-border: var(--color-border) thin solid}button[type=submit]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse);--btn-border: none}button[data-fp-btn~=pill],button[data-btn~=pill],button[data-style~=pill],button.btn-pill{border-radius:var(--btn-pill, 100vw)}button[data-color=primary]{--btn-bg: var(--color-primary);--btn-color: var(--color-text-inverse)}button[data-color=secondary]{--btn-bg: var(--color-secondary);--btn-color: var(--color-text-inverse)}button[data-color=danger]{--btn-bg: var(--color-error);--btn-color: var(--color-text-inverse)}button[data-color=success]{--btn-bg: var(--color-success);--btn-color: var(--color-text-inverse)}button[data-color=warning]{--btn-bg: var(--color-warning);--btn-color: var(--color-text-inverse)}button[data-style~=outline]{--btn-bg: transparent;--btn-color: currentColor;--btn-border: 0.125rem solid currentColor}button[data-style~=outline]:is(:hover,:focus){background-color:color-mix(in srgb, currentColor 10%, transparent);filter:none;outline:.025rem solid currentColor;outline-offset:0}button[data-style~=text]{--btn-bg: transparent;--btn-color: currentColor;--btn-border: none;--btn-height: unset;--btn-width: unset;--btn-padding-block: 0.75rem;--btn-padding-inline: 0.75rem}button[data-style~=text]:is(:hover,:focus){background-color:color-mix(in srgb, var(--btn-color) 10%, transparent);outline:.025rem solid var(--btn-color);outline-offset:0;filter:none}button[data-style~=icon]{padding:unset;height:unset;--btn-bg: transparent;min-width:1.5rem;min-height:1.5rem;text-align:center;display:inline-flex;align-items:center;justify-content:center}button[data-btn~=xs],button .btn-xs{--btn-fs: var(--btn-size-xs);text-transform:uppercase}button[data-btn~=sm],button .btn-sm{--btn-fs: var(--btn-size-sm)}button[data-btn~=md],button .btn-md{--btn-fs: var(--btn-size-md)}button[data-btn~=lg],button .btn-lg{--btn-fs: var(--btn-size-lg)}button[data-btn~=xl],button .btn-xl{--btn-fs: var(--btn-size-xl)}button[data-btn~="2xl"],button .btn-2xl{--btn-fs: var(--btn-size-2xl)}button[data-btn~=block],button .btn-block{--btn-width: 100%;display:flex;justify-content:center}button[data-btn~=text],button .btn-text{--btn-bg: transparent;--btn-color: currentColor;--btn-border: none;--btn-height: unset;--btn-width: unset;--btn-padding-block: 0.75rem;--btn-padding-inline: 0.75rem}button[data-btn~=text]:is(:hover,:focus),button .btn-text:is(:hover,:focus){background-color:color-mix(in srgb, var(--btn-color) 10%, transparent);outline:.025rem solid var(--btn-color);outline-offset:0;filter:none}
|
|
2
2
|
|
|
3
|
-
/*# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2J1dHRvbnMvYnV0dG9uLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FFRSx3QkFBQSxDQUNBLHdCQUFBLENBQ0Esd0JBQUEsQ0FDQSx1QkFBQSxDQUNBLHVCQUFBLENBQ0EsdUJBQUEsQ0FDQSxpQkFBQSxDQUNBLDRCQUFBLENBRUEsd0NBQUEsQ0FDQSw4QkFBQSxDQUNBLHNDQUFBLENBQ0Esd0JBQUEsQ0FFQSx1QkFBQSxDQUNBLDhCQUFBLENBQ0Esd0JBQUEsQ0FDQSxvQ0FBQSxDQUNBLG1FQUFBLENBQ0EsaUVBQUEsQ0FDQSw4QkFBQSxDQUNBLHlDQUFBLENBQ0EsNkNBQUEsQ0FBQSxxQ0FBQSxDQUNBLG9DQUFBLENBQ0EsdUNBQUEsQ0FDQSwwQkFBQSxDQUNBLDBDQUFBLENBQ0EsNEJBQUEsQ0FDQSx3RkFBQSxDQUlBLDBDQUFBLENBQ0EsWUFBQSxDQUNBLHNCQUFBLENBQ0EsbUJBQUEsQ0FDQSxrQkFBQSxDQUNBLGdCQUFBLENBRUEsYUFDRSxvREFBQSxDQUNBLGlDQUFBLENBR0YsMENBRUUsOEJBQUEsQ0FDQSxzQ0FBQSxDQUdGLDRDQUVFLHFDQUFBLENBR0EsZ0ZBQ0UsY0FBQSxDQU9KLHlCQUVFLGdEQUFBLENBQ0EsaURBQUEsQ0FDQSxzQ0FBQSxDQUNBLHNDQUFBLENBR0EsNkNBQ0UsY0FBQSxDQUNBLCtCQUFBLENBQ0EsV0FBQSxDQUlKLHFCQUNFLHdEQUFBLENBQ0EsbURBQUEsQ0FHRixtQkFDRSxxQkFBQSxDQUNBLHdDQUFBLENBQ0EsNENBQUEsQ0FHRixvQkFDRSw4QkFBQSxDQUNBLHNDQUFBLENBQ0Esa0JBQUEsQ0FHRiwwRkFJRSxvQ0FBQSxDQUlGLDJCQUNFLDhCQUFBLENBQ0Esc0NBQUEsQ0FHRiw2QkFDRSxnQ0FBQSxDQUNBLHNDQUFBLENBR0YsMEJBQ0UsNEJBQUEsQ0FDQSxzQ0FBQSxDQUdGLDJCQUNFLDhCQUFBLENBQ0Esc0NBQUEsQ0FHRiwyQkFDRSw4QkFBQSxDQUNBLHNDQUFBLENBSUYsNEJBQ0UscUJBQUEsQ0FDQSx5QkFBQSxDQUNBLHlDQUFBLENBRUEsOENBQ0Usa0VBQUEsQ0FDQSxXQUFBLENBQ0Esa0NBQUEsQ0FDQSxnQkFBQSxDQUlKLHlCQUNFLHFCQUFBLENBQ0EseUJBQUEsQ0FDQSxrQkFBQSxDQUNBLG1CQUFBLENBQ0Esa0JBQUEsQ0FDQSw0QkFBQSxDQUNBLDZCQUFBLENBQ0EsMkNBQ0Usc0VBQUEsQ0FDQSxzQ0FBQSxDQUNBLGdCQUFBLENBQ0EsV0FBQSxDQUlKLHlCQUNFLGFBQUEsQ0FDQSxZQUFBLENBQ0EscUJBQUEsQ0FDQSxnQkFBQSxDQUNBLGlCQUFBLENBQ0EsaUJBQUEsQ0FDQSxtQkFBQSxDQUNBLGtCQUFBLENBQ0Esc0JBQUEsQ0FHRixvQ0FFRSw0QkFBQSxDQUNBLHdCQUFBLENBR0Ysb0NBRUUsNEJBQUEsQ0FHRixvQ0FFRSw0QkFBQSxDQUdGLG9DQUVFLDRCQUFBLENBR0Ysb0NBRUUsNEJBQUEsQ0FHRix3Q0FFRSw2QkFBQSxDQUdGLDBDQUVFLGlCQUFBLENBQ0EsWUFBQSxDQUNBLHNCQUFBLENBR0Ysd0NBRUUscUJBQUEsQ0FDQSx5QkFBQSxDQUNBLGtCQUFBLENBQ0EsbUJBQUEsQ0FDQSxrQkFBQSxDQUNBLDRCQUFBLENBQ0EsNkJBQUEsQ0FDQSw0RUFDRSxzRUFBQSxDQUNBLHNDQUFBLENBQ0EsZ0JBQUEsQ0FDQSxXQUFBIiwiZmlsZSI6ImJ1dHRvbi5taW4uY3NzIn0= */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
button[data-icon-btn],.icon-btn{--btn-color: currentColor}button[data-icon-btn~=has-label],.icon-btn[data-icon-btn~=has-label]{gap:.375rem;padding-inline:.75rem}button[data-icon-btn~=has-label] [data-icon-label],.icon-btn[data-icon-btn~=has-label] [data-icon-label]{font-size:var(--btn-fs, 0.875rem);line-height:1;white-space:nowrap}@media(max-width: 48rem){[data-icon-label]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}}/*# sourceMappingURL=icon-button.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/components/buttons/icon-button.scss"],"names":[],"mappings":"AASA,gCAEE,0BAMF,qEAEE,YACA,sBAEA,yGACE,kCACA,cACA,mBAOJ,yBACE,kBACE,kBACA,UACA,WACA,UACA,YACA,gBACA,sBACA,mBACA","file":"icon-button.css"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
button[data-icon-btn],.icon-btn{--btn-color: currentColor}button[data-icon-btn~=has-label],.icon-btn[data-icon-btn~=has-label]{gap:.375rem;padding-inline:.75rem}button[data-icon-btn~=has-label] [data-icon-label],.icon-btn[data-icon-btn~=has-label] [data-icon-label]{font-size:var(--btn-fs, 0.875rem);line-height:1;white-space:nowrap}@media(max-width: 48rem){[data-icon-label]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}}
|
|
2
|
+
|
|
3
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2J1dHRvbnMvaWNvbi1idXR0b24uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxnQ0FFRSx5QkFBQSxDQU1GLHFFQUVFLFdBQUEsQ0FDQSxxQkFBQSxDQUVBLHlHQUNFLGlDQUFBLENBQ0EsYUFBQSxDQUNBLGtCQUFBLENBT0oseUJBQ0Usa0JBQ0UsaUJBQUEsQ0FDQSxTQUFBLENBQ0EsVUFBQSxDQUNBLFNBQUEsQ0FDQSxXQUFBLENBQ0EsZUFBQSxDQUNBLHFCQUFBLENBQ0Esa0JBQUEsQ0FDQSxRQUFBLENBQUEiLCJmaWxlIjoiaWNvbi1idXR0b24ubWluLmNzcyJ9 */
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var chunkZOPHCNFD_cjs = require('../../chunk-ZOPHCNFD.cjs');
|
|
6
6
|
require('../../chunk-6WMLG4O5.cjs');
|
|
7
7
|
require('../../chunk-OZM455LO.cjs');
|
|
8
|
-
require('../../chunk-
|
|
8
|
+
require('../../chunk-25KCUE3R.cjs');
|
|
9
9
|
require('../../chunk-PNWIRCG3.cjs');
|
|
10
10
|
require('../../chunk-TON2YGMD.cjs');
|
|
11
11
|
require('../../chunk-66C2J4IX.cjs');
|
|
@@ -14,11 +14,11 @@ require('../../chunk-66C2J4IX.cjs');
|
|
|
14
14
|
|
|
15
15
|
Object.defineProperty(exports, 'Dialog', {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkZOPHCNFD_cjs.a; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, 'default', {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkZOPHCNFD_cjs.b; }
|
|
22
22
|
});
|
|
23
23
|
//# sourceMappingURL=out.js.map
|
|
24
24
|
//# sourceMappingURL=dialog.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { a as Dialog, b as default } from '../../chunk-
|
|
1
|
+
export { a as Dialog, b as default } from '../../chunk-VQTCTLFN.js';
|
|
2
2
|
import '../../chunk-AQAI6COH.js';
|
|
3
3
|
import '../../chunk-4F6SI5V5.js';
|
|
4
|
-
import '../../chunk-
|
|
4
|
+
import '../../chunk-34NWHFHP.js';
|
|
5
5
|
import '../../chunk-BFK62VX5.js';
|
|
6
6
|
import '../../chunk-75QHTLFO.js';
|
|
7
7
|
import '../../chunk-4KJP3L35.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
header,[data-hero],[data-grid~=overlay]{--overlay-grid-area: overlay;--overlay-placement: center;--overlay-display: grid;--overlay-padding: 2rem;--overlay-width: 100%;--overlay-height: 40vh;--overlay-max-height: 500px;--overlay-color: currentColor;--overlay-content-width: 80%;--overlay-gap: 2rem;--overlay-bg: whitesmoke;--overlay-padding-inline: auto;--overlay-padding-block: auto;--overlay-margin-inline: auto;--overlay-margin-block: auto;grid-template-areas:"overlay";display:var(--overlay-display);place-items:var(--overlay-placement);align-items:var(--overlay-placement);min-height:var(--overlay-height);width:var(--overlay-width);color:var(--overlay-color);background-color:var(--overlay-bg);min-width:20rem}header>*,[data-hero]>*,[data-grid~=overlay]>*{grid-area:overlay}header>img,[data-hero]>img,[data-grid~=overlay]>img{width:var(--overlay-width);background-size:contain}header>div,header>section,[data-hero]>div,[data-hero]>section,[data-grid~=overlay]>div,[data-grid~=overlay]>section{--overlay-display: flex;max-width:var(--overlay-content-width);padding-inline:var(--spc-4);margin-inline:var(--overlay-margin-inline);gap:var(--overlay-gap);text-align:center}header>div p,header>section p,[data-hero]>div p,[data-hero]>section p,[data-grid~=overlay]>div p,[data-grid~=overlay]>section p{width:auto;max-width:60ch;font-size:var(--fs-8);line-height:1.4}header>div>h1,header>div>h2,header>section>h1,header>section>h2,[data-hero]>div>h1,[data-hero]>div>h2,[data-hero]>section>h1,[data-hero]>section>h2,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h1,[data-grid~=overlay]>section>h2{line-height:var(--header-line-height, 1.1);font-weight:500}header>div>h1,header>section>h1,[data-hero]>div>h1,[data-hero]>section>h1,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>section>h1{font-size:var(--fs-12)}header>div>h2,header>section>h2,[data-hero]>div>h2,[data-hero]>section>h2,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h2{font-size:var(--fs-11)}header>div>h3,header>section>h3,[data-hero]>div>h3,[data-hero]>section>h3,[data-grid~=overlay]>div>h3,[data-grid~=overlay]>section>h3{font-size:var(--fs-10)}main,footer{--content-width: min(100%, 1480px);--content-margin-inline: auto;--content-padding-inline: 1rem;--content-gap: 2rem;padding-block:var(--overlay-padding)}main>section,footer>section{width:var(--content-width);margin-inline:var(--content-margin-inline);padding-inline:var(--spc-6)}main{flex:1;font-size:var(--fs-3)}main>section[aria-label],main>section{width:var(--content-width);margin-inline:var(--content-margin-inline)}main>section[aria-label]:has(>article,>aside),main>section:has(>article,>aside){display:flex;flex-wrap:wrap;flex:1;gap:var(--content-gap)}main>section[aria-label]:has(>article,>aside)>article,main>section:has(>article,>aside)>article{flex-basis:0;flex-grow:999;min-inline-size:50%}main>section[aria-label]:has(>article,>aside)>aside,main>section:has(>article,>aside)>aside{flex-basis:20rem;flex-grow:1}footer>div{display:flex;align-items:center;justify-content:center;min-height:5rem;text-align:center}/*# sourceMappingURL=landmarks.css.map */
|
|
1
|
+
header,[data-hero],[data-grid~=overlay]{--overlay-grid-area: overlay;--overlay-placement: center;--overlay-display: grid;--overlay-padding: 2rem;--overlay-width: 100%;--overlay-height: 40vh;--overlay-max-height: 500px;--overlay-color: currentColor;--overlay-content-width: 80%;--overlay-gap: 2rem;--overlay-bg: whitesmoke;--overlay-padding-inline: auto;--overlay-padding-block: auto;--overlay-margin-inline: auto;--overlay-margin-block: auto;grid-template-areas:"overlay";display:var(--overlay-display);place-items:var(--overlay-placement);align-items:var(--overlay-placement);min-height:var(--overlay-height);width:var(--overlay-width);color:var(--overlay-color);background-color:var(--overlay-bg);min-width:20rem}header>*,[data-hero]>*,[data-grid~=overlay]>*{grid-area:overlay}header>img,[data-hero]>img,[data-grid~=overlay]>img{width:var(--overlay-width);background-size:contain}header>div,header>section,[data-hero]>div,[data-hero]>section,[data-grid~=overlay]>div,[data-grid~=overlay]>section{--overlay-display: flex;max-width:var(--overlay-content-width);padding-inline:var(--spc-4);margin-inline:var(--overlay-margin-inline);gap:var(--overlay-gap);text-align:center}header>div p,header>section p,[data-hero]>div p,[data-hero]>section p,[data-grid~=overlay]>div p,[data-grid~=overlay]>section p{width:auto;max-width:60ch;font-size:var(--fs-8);line-height:1.4}header>div>h1,header>div>h2,header>section>h1,header>section>h2,[data-hero]>div>h1,[data-hero]>div>h2,[data-hero]>section>h1,[data-hero]>section>h2,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h1,[data-grid~=overlay]>section>h2{line-height:var(--header-line-height, 1.1);font-weight:500}header>div>h1,header>section>h1,[data-hero]>div>h1,[data-hero]>section>h1,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>section>h1{font-size:var(--fs-12)}header>div>h2,header>section>h2,[data-hero]>div>h2,[data-hero]>section>h2,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h2{font-size:var(--fs-11)}header>div>h3,header>section>h3,[data-hero]>div>h3,[data-hero]>section>h3,[data-grid~=overlay]>div>h3,[data-grid~=overlay]>section>h3{font-size:var(--fs-10)}main,footer{--content-width: min(100%, 1480px);--content-margin-inline: auto;--content-padding-inline: 1rem;--content-gap: 2rem;padding-block:var(--overlay-padding)}main>section,footer>section{width:var(--content-width);margin-inline:var(--content-margin-inline);padding-inline:var(--spc-6)}main{flex:1;font-size:var(--fs-3)}main>section[aria-label],main>section{width:var(--content-width);margin-inline:var(--content-margin-inline)}main>section[aria-label]:has(>article,>aside),main>section:has(>article,>aside){display:flex;flex-wrap:wrap;flex:1;gap:var(--content-gap)}main>section[aria-label]:has(>article,>aside)>article,main>section:has(>article,>aside)>article{flex-basis:0;flex-grow:999;min-inline-size:50%}main>section[aria-label]:has(>article,>aside)>aside,main>section:has(>article,>aside)>aside{flex-basis:20rem;flex-grow:1}footer>div{display:flex;align-items:center;justify-content:center;min-height:5rem;text-align:center}fieldset{border:var(--fieldset-border, 1px solid var(--border-default, #999));border-radius:var(--fieldset-border-radius, 0.5rem);padding:var(--fieldset-padding, 1rem);padding-inline:var(--fieldset-padding-inline, 1.5rem);padding-block:var(--fieldset-padding-block, 1rem);margin-block:var(--fieldset-margin-block, 2rem);background:var(--fieldset-bg, transparent);display:flex;flex-direction:column;gap:1rem}fieldset>legend{font-size:var(--legend-fs, 1rem);font-weight:var(--legend-fw, 600);padding-inline:var(--legend-padding-inline, 0.5rem);color:var(--legend-color, currentColor)}fieldset .fieldset-description{margin-block-start:.5rem;margin-block-end:0;font-size:var(--fieldset-description-fs, 0.875rem);color:var(--fieldset-description-color, var(--text-subtle, #666))}fieldset:focus-within{outline:var(--fieldset-focus-outline, 2px solid var(--focus-color, #005a9c));outline-offset:var(--fieldset-focus-offset, 2px)}@media(hover: hover){fieldset:focus-within:not(:focus-visible){outline:none}}fieldset:disabled{opacity:var(--fieldset-disabled-opacity, 0.6);cursor:not-allowed}fieldset:disabled>legend{color:var(--legend-disabled-color, var(--text-disabled, #757575))}fieldset[data-legend=inline]{--fieldset-border: none;--fieldset-padding: 0}fieldset[data-legend=inline]>legend{float:inline-start;margin-inline-end:1rem;margin-block-end:.5rem}fieldset[data-fieldset=grouped]{--fieldset-bg: var(--surface-subtle, #f5f5f5);--fieldset-padding-block: 1.5rem;--fieldset-border: 2px solid var(--border-focus, #005a9c)}fieldset[data-fieldset=grouped]>legend{--legend-fs: 1.125rem;--legend-fw: 700}@media(prefers-contrast: high){fieldset{border-width:2px}fieldset>legend{font-weight:700}}@media(forced-colors: active){fieldset{border:1px solid CanvasText}fieldset>legend{color:CanvasText}fieldset .fieldset-description{color:CanvasText}}/*# sourceMappingURL=landmarks.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/components/layout/_header.scss","../../../src/components/layout/landmarks.scss"],"names":[],"mappings":"AAAA,wCAIE,6BAEA,4BAEA,wBAEA,wBACA,sBACA,uBACA,4BACA,8BACA,6BACA,oBACA,yBACA,+BACA,8BACA,8BACA,6BAEA,8BACA,+BACA,qCACA,qCACA,iCACA,2BACA,2BACA,mCACA,gBACA,8CACE,kBAEF,oDACE,2BAEA,wBAEF,oHAEE,wBACA,uCACA,4BACA,2CACA,uBACA,kBACA,gIACE,WACA,eACA,sBACA,gBAEF,4QAEE,2CACA,gBAGF,sIACE,uBAEF,sIACE,uBAEF,sIACE,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/components/layout/_header.scss","../../../src/components/layout/landmarks.scss"],"names":[],"mappings":"AAAA,wCAIE,6BAEA,4BAEA,wBAEA,wBACA,sBACA,uBACA,4BACA,8BACA,6BACA,oBACA,yBACA,+BACA,8BACA,8BACA,6BAEA,8BACA,+BACA,qCACA,qCACA,iCACA,2BACA,2BACA,mCACA,gBACA,8CACE,kBAEF,oDACE,2BAEA,wBAEF,oHAEE,wBACA,uCACA,4BACA,2CACA,uBACA,kBACA,gIACE,WACA,eACA,sBACA,gBAEF,4QAEE,2CACA,gBAGF,sIACE,uBAEF,sIACE,uBAEF,sIACE,uBCjEN,YAEE,mCACA,8BACA,+BACA,oBACA,qCACA,4BACE,2BACA,2CACA,4BAIJ,KACE,OACA,sBACA,sCAEE,2BACA,2CACA,gFACE,aACA,eACA,OACA,uBACA,gGACE,aACA,cACA,oBAEF,4FACE,iBACA,YAON,WACE,aACA,mBACA,uBACA,gBACA,kBAMJ,SAEE,qEACA,oDACA,sCACA,sDACA,kDACA,gDAGA,2CAEA,aACA,sBACA,SAEA,gBAEE,iCACA,kCACA,oDACA,wCAIF,+BACE,yBACA,mBACA,mDACA,kEAMJ,sBACE,6EACA,iDAIF,qBACE,0CACE,cAMJ,kBACE,8CACA,mBAEA,yBACE,kEAKJ,6BACE,wBACA,sBAEA,oCACE,mBACA,uBACA,uBAKJ,gCAEE,8CACA,iCAGA,0DAEA,uCACE,sBACA,iBAMJ,+BACE,SACE,iBAEA,gBACE,iBAMN,8BACE,SACE,4BAEA,gBACE,iBAGF,+BACE","file":"landmarks.css"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
header,[data-hero],[data-grid~=overlay]{--overlay-grid-area: overlay;--overlay-placement: center;--overlay-display: grid;--overlay-padding: 2rem;--overlay-width: 100%;--overlay-height: 40vh;--overlay-max-height: 500px;--overlay-color: currentColor;--overlay-content-width: 80%;--overlay-gap: 2rem;--overlay-bg: whitesmoke;--overlay-padding-inline: auto;--overlay-padding-block: auto;--overlay-margin-inline: auto;--overlay-margin-block: auto;grid-template-areas:"overlay";display:var(--overlay-display);place-items:var(--overlay-placement);align-items:var(--overlay-placement);min-height:var(--overlay-height);width:var(--overlay-width);color:var(--overlay-color);background-color:var(--overlay-bg);min-width:20rem}header>*,[data-hero]>*,[data-grid~=overlay]>*{grid-area:overlay}header>img,[data-hero]>img,[data-grid~=overlay]>img{width:var(--overlay-width);background-size:contain}header>div,header>section,[data-hero]>div,[data-hero]>section,[data-grid~=overlay]>div,[data-grid~=overlay]>section{--overlay-display: flex;max-width:var(--overlay-content-width);padding-inline:var(--spc-4);margin-inline:var(--overlay-margin-inline);gap:var(--overlay-gap);text-align:center}header>div p,header>section p,[data-hero]>div p,[data-hero]>section p,[data-grid~=overlay]>div p,[data-grid~=overlay]>section p{width:auto;max-width:60ch;font-size:var(--fs-8);line-height:1.4}header>div>h1,header>div>h2,header>section>h1,header>section>h2,[data-hero]>div>h1,[data-hero]>div>h2,[data-hero]>section>h1,[data-hero]>section>h2,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h1,[data-grid~=overlay]>section>h2{line-height:var(--header-line-height, 1.1);font-weight:500}header>div>h1,header>section>h1,[data-hero]>div>h1,[data-hero]>section>h1,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>section>h1{font-size:var(--fs-12)}header>div>h2,header>section>h2,[data-hero]>div>h2,[data-hero]>section>h2,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h2{font-size:var(--fs-11)}header>div>h3,header>section>h3,[data-hero]>div>h3,[data-hero]>section>h3,[data-grid~=overlay]>div>h3,[data-grid~=overlay]>section>h3{font-size:var(--fs-10)}main,footer{--content-width: min(100%, 1480px);--content-margin-inline: auto;--content-padding-inline: 1rem;--content-gap: 2rem;padding-block:var(--overlay-padding)}main>section,footer>section{width:var(--content-width);margin-inline:var(--content-margin-inline);padding-inline:var(--spc-6)}main{flex:1;font-size:var(--fs-3)}main>section[aria-label],main>section{width:var(--content-width);margin-inline:var(--content-margin-inline)}main>section[aria-label]:has(>article,>aside),main>section:has(>article,>aside){display:flex;flex-wrap:wrap;flex:1;gap:var(--content-gap)}main>section[aria-label]:has(>article,>aside)>article,main>section:has(>article,>aside)>article{flex-basis:0;flex-grow:999;min-inline-size:50%}main>section[aria-label]:has(>article,>aside)>aside,main>section:has(>article,>aside)>aside{flex-basis:20rem;flex-grow:1}footer>div{display:flex;align-items:center;justify-content:center;min-height:5rem;text-align:center}
|
|
1
|
+
header,[data-hero],[data-grid~=overlay]{--overlay-grid-area: overlay;--overlay-placement: center;--overlay-display: grid;--overlay-padding: 2rem;--overlay-width: 100%;--overlay-height: 40vh;--overlay-max-height: 500px;--overlay-color: currentColor;--overlay-content-width: 80%;--overlay-gap: 2rem;--overlay-bg: whitesmoke;--overlay-padding-inline: auto;--overlay-padding-block: auto;--overlay-margin-inline: auto;--overlay-margin-block: auto;grid-template-areas:"overlay";display:var(--overlay-display);place-items:var(--overlay-placement);align-items:var(--overlay-placement);min-height:var(--overlay-height);width:var(--overlay-width);color:var(--overlay-color);background-color:var(--overlay-bg);min-width:20rem}header>*,[data-hero]>*,[data-grid~=overlay]>*{grid-area:overlay}header>img,[data-hero]>img,[data-grid~=overlay]>img{width:var(--overlay-width);background-size:contain}header>div,header>section,[data-hero]>div,[data-hero]>section,[data-grid~=overlay]>div,[data-grid~=overlay]>section{--overlay-display: flex;max-width:var(--overlay-content-width);padding-inline:var(--spc-4);margin-inline:var(--overlay-margin-inline);gap:var(--overlay-gap);text-align:center}header>div p,header>section p,[data-hero]>div p,[data-hero]>section p,[data-grid~=overlay]>div p,[data-grid~=overlay]>section p{width:auto;max-width:60ch;font-size:var(--fs-8);line-height:1.4}header>div>h1,header>div>h2,header>section>h1,header>section>h2,[data-hero]>div>h1,[data-hero]>div>h2,[data-hero]>section>h1,[data-hero]>section>h2,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h1,[data-grid~=overlay]>section>h2{line-height:var(--header-line-height, 1.1);font-weight:500}header>div>h1,header>section>h1,[data-hero]>div>h1,[data-hero]>section>h1,[data-grid~=overlay]>div>h1,[data-grid~=overlay]>section>h1{font-size:var(--fs-12)}header>div>h2,header>section>h2,[data-hero]>div>h2,[data-hero]>section>h2,[data-grid~=overlay]>div>h2,[data-grid~=overlay]>section>h2{font-size:var(--fs-11)}header>div>h3,header>section>h3,[data-hero]>div>h3,[data-hero]>section>h3,[data-grid~=overlay]>div>h3,[data-grid~=overlay]>section>h3{font-size:var(--fs-10)}main,footer{--content-width: min(100%, 1480px);--content-margin-inline: auto;--content-padding-inline: 1rem;--content-gap: 2rem;padding-block:var(--overlay-padding)}main>section,footer>section{width:var(--content-width);margin-inline:var(--content-margin-inline);padding-inline:var(--spc-6)}main{flex:1;font-size:var(--fs-3)}main>section[aria-label],main>section{width:var(--content-width);margin-inline:var(--content-margin-inline)}main>section[aria-label]:has(>article,>aside),main>section:has(>article,>aside){display:flex;flex-wrap:wrap;flex:1;gap:var(--content-gap)}main>section[aria-label]:has(>article,>aside)>article,main>section:has(>article,>aside)>article{flex-basis:0;flex-grow:999;min-inline-size:50%}main>section[aria-label]:has(>article,>aside)>aside,main>section:has(>article,>aside)>aside{flex-basis:20rem;flex-grow:1}footer>div{display:flex;align-items:center;justify-content:center;min-height:5rem;text-align:center}fieldset{border:var(--fieldset-border, 1px solid var(--border-default, #999));border-radius:var(--fieldset-border-radius, 0.5rem);padding:var(--fieldset-padding, 1rem);padding-inline:var(--fieldset-padding-inline, 1.5rem);padding-block:var(--fieldset-padding-block, 1rem);margin-block:var(--fieldset-margin-block, 2rem);background:var(--fieldset-bg, transparent);display:flex;flex-direction:column;gap:1rem}fieldset>legend{font-size:var(--legend-fs, 1rem);font-weight:var(--legend-fw, 600);padding-inline:var(--legend-padding-inline, 0.5rem);color:var(--legend-color, currentColor)}fieldset .fieldset-description{margin-block-start:.5rem;margin-block-end:0;font-size:var(--fieldset-description-fs, 0.875rem);color:var(--fieldset-description-color, var(--text-subtle, #666))}fieldset:focus-within{outline:var(--fieldset-focus-outline, 2px solid var(--focus-color, #005a9c));outline-offset:var(--fieldset-focus-offset, 2px)}@media(hover: hover){fieldset:focus-within:not(:focus-visible){outline:none}}fieldset:disabled{opacity:var(--fieldset-disabled-opacity, 0.6);cursor:not-allowed}fieldset:disabled>legend{color:var(--legend-disabled-color, var(--text-disabled, #757575))}fieldset[data-legend=inline]{--fieldset-border: none;--fieldset-padding: 0}fieldset[data-legend=inline]>legend{float:inline-start;margin-inline-end:1rem;margin-block-end:.5rem}fieldset[data-fieldset=grouped]{--fieldset-bg: var(--surface-subtle, #f5f5f5);--fieldset-padding-block: 1.5rem;--fieldset-border: 2px solid var(--border-focus, #005a9c)}fieldset[data-fieldset=grouped]>legend{--legend-fs: 1.125rem;--legend-fw: 700}@media(prefers-contrast: high){fieldset{border-width:2px}fieldset>legend{font-weight:700}}@media(forced-colors: active){fieldset{border:1px solid CanvasText}fieldset>legend{color:CanvasText}fieldset .fieldset-description{color:CanvasText}}
|
|
2
2
|
|
|
3
|
-
/*# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2xheW91dC9faGVhZGVyLnNjc3MiLCIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9sYXlvdXQvbGFuZG1hcmtzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBSUUsNEJBQUEsQ0FFQSwyQkFBQSxDQUVBLHVCQUFBLENBRUEsdUJBQUEsQ0FDQSxxQkFBQSxDQUNBLHNCQUFBLENBQ0EsMkJBQUEsQ0FDQSw2QkFBQSxDQUNBLDRCQUFBLENBQ0EsbUJBQUEsQ0FDQSx3QkFBQSxDQUNBLDhCQUFBLENBQ0EsNkJBQUEsQ0FDQSw2QkFBQSxDQUNBLDRCQUFBLENBRUEsNkJBQUEsQ0FDQSw4QkFBQSxDQUNBLG9DQUFBLENBQ0Esb0NBQUEsQ0FDQSxnQ0FBQSxDQUNBLDBCQUFBLENBQ0EsMEJBQUEsQ0FDQSxrQ0FBQSxDQUNBLGVBQUEsQ0FDQSw4Q0FDRSxpQkFBQSxDQUVGLG9EQUNFLDBCQUFBLENBRUEsdUJBQUEsQ0FFRixvSEFFRSx1QkFBQSxDQUNBLHNDQUFBLENBQ0EsMkJBQUEsQ0FDQSwwQ0FBQSxDQUNBLHNCQUFBLENBQ0EsaUJBQUEsQ0FDQSxnSUFDRSxVQUFBLENBQ0EsY0FBQSxDQUNBLHFCQUFBLENBQ0EsZUFBQSxDQUVGLDRRQUVFLDBDQUFBLENBQ0EsZUFBQSxDQUdGLHNJQUNFLHNCQUFBLENBRUYsc0lBQ0Usc0JBQUEsQ0FFRixzSUFDRSxzQkFBQSxDQ2pFTixZQUVFLGtDQUFBLENBQ0EsNkJBQUEsQ0FDQSw4QkFBQSxDQUNBLG1CQUFBLENBQ0Esb0NBQUEsQ0FDQSw0QkFDRSwwQkFBQSxDQUNBLDBDQUFBLENBQ0EsMkJBQUEsQ0FJSixLQUNFLE1BQUEsQ0FDQSxxQkFBQSxDQUNBLHNDQUVFLDBCQUFBLENBQ0EsMENBQUEsQ0FDQSxnRkFDRSxZQUFBLENBQ0EsY0FBQSxDQUNBLE1BQUEsQ0FDQSxzQkFBQSxDQUNBLGdHQUNFLFlBQUEsQ0FDQSxhQUFBLENBQ0EsbUJBQUEsQ0FFRiw0RkFDRSxnQkFBQSxDQUNBLFdBQUEsQ0FPTixXQUNFLFlBQUEsQ0FDQSxrQkFBQSxDQUNBLHNCQUFBLENBQ0EsZUFBQSxDQUNBLGlCQUFBLENBTUosU0FFRSxvRUFBQSxDQUNBLG1EQUFBLENBQ0EscUNBQUEsQ0FDQSxxREFBQSxDQUNBLGlEQUFBLENBQ0EsK0NBQUEsQ0FHQSwwQ0FBQSxDQUVBLFlBQUEsQ0FDQSxxQkFBQSxDQUNBLFFBQUEsQ0FFQSxnQkFFRSxnQ0FBQSxDQUNBLGlDQUFBLENBQ0EsbURBQUEsQ0FDQSx1Q0FBQSxDQUlGLCtCQUNFLHdCQUFBLENBQ0Esa0JBQUEsQ0FDQSxrREFBQSxDQUNBLGlFQUFBLENBTUosc0JBQ0UsNEVBQUEsQ0FDQSxnREFBQSxDQUlGLHFCQUNFLDBDQUNFLFlBQUEsQ0FBQSxDQU1KLGtCQUNFLDZDQUFBLENBQ0Esa0JBQUEsQ0FFQSx5QkFDRSxpRUFBQSxDQUtKLDZCQUNFLHVCQUFBLENBQ0EscUJBQUEsQ0FFQSxvQ0FDRSxrQkFBQSxDQUNBLHNCQUFBLENBQ0Esc0JBQUEsQ0FLSixnQ0FFRSw2Q0FBQSxDQUNBLGdDQUFBLENBR0EseURBQUEsQ0FFQSx1Q0FDRSxxQkFBQSxDQUNBLGdCQUFBLENBTUosK0JBQ0UsU0FDRSxnQkFBQSxDQUVBLGdCQUNFLGVBQUEsQ0FBQSxDQU1OLDhCQUNFLFNBQ0UsMkJBQUEsQ0FFQSxnQkFDRSxnQkFBQSxDQUdGLCtCQUNFLGdCQUFBLENBQUEiLCJmaWxlIjoibGFuZG1hcmtzLm1pbi5jc3MifQ== */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
a[href]{--link-color: var(--color-link);--link-fw: 400;--link-fs: 1rem;--link-decoration: none;--link-decoration-offset: 0.09375rem;--link-decoration-thickness: 0.0625rem;--link-skip-ink: auto;--link-bg: transparent;--link-radius: 0.25rem;--link-padding-inline: 0;--link-padding-block: 0;--link-transition: all 0.35s ease-in-out;--link-focus-color: currentColor;--link-focus-width: 0.125rem;--link-focus-offset: 0.125rem;--link-focus-style: solid;color:var(--link-color);font-size:var(--link-fs);font-weight:var(--link-fw);text-decoration:var(--link-decoration);text-underline-offset:var(--link-decoration-offset);text-decoration-thickness:var(--link-decoration-thickness);text-decoration-skip-ink:var(--link-skip-ink);background-color:var(--link-bg);border-radius:var(--link-radius);transition:var(--link-transition)}a[href]>i,a[href]>b{font-weight:var(--link-fw);font-style:normal}a[href]:hover{--link-decoration: underline}a[href]:focus-visible{outline:var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);outline-offset:var(--link-focus-offset);font-weight:bold}a[href]:visited,a[href]:active{--link-color: currentColor}a[href]:has(>b),a[href][data-btn],a[href]:has(>i){--link-button-color: var(--link-color);--link-bg: transparent;--link-decoration: none;--link-border-width: 0.125rem;--link-border-color: currentColor;--link-border-style: solid;--link-fs: 0.9rem;color:var(--link-button-color);background-color:var(--link-bg);font-style:normal;font-size:var(--link-fs);padding-inline:var(--link-fs);padding-block:calc(var(--link-fs) - .4rem);border-radius:var(--link-radius,
|
|
1
|
+
a[href]{--link-color: var(--color-link);--link-fw: 400;--link-fs: 1rem;--link-decoration: none;--link-decoration-offset: 0.09375rem;--link-decoration-thickness: 0.0625rem;--link-skip-ink: auto;--link-bg: transparent;--link-radius: 0.25rem;--link-padding-inline: 0;--link-padding-block: 0;--link-transition: all 0.35s ease-in-out;--link-focus-color: currentColor;--link-focus-width: 0.125rem;--link-focus-offset: 0.125rem;--link-focus-style: solid;color:var(--link-color);font-size:var(--link-fs);font-weight:var(--link-fw);text-decoration:var(--link-decoration);text-underline-offset:var(--link-decoration-offset);text-decoration-thickness:var(--link-decoration-thickness);text-decoration-skip-ink:var(--link-skip-ink);background-color:var(--link-bg);border-radius:var(--link-radius);transition:var(--link-transition)}a[href]>i,a[href]>b{font-weight:var(--link-fw);font-style:normal}a[href]:hover{--link-decoration: underline}a[href]:focus-visible{outline:var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);outline-offset:var(--link-focus-offset);font-weight:bold}a[href]:visited,a[href]:active{--link-color: currentColor}a[href]:has(>b),a[href][data-btn],a[href]:has(>i){--link-button-color: var(--link-color);--link-bg: transparent;--link-decoration: none;--link-border-width: 0.125rem;--link-border-color: currentColor;--link-border-style: solid;--link-fs: 0.9rem;color:var(--link-button-color);background-color:var(--link-bg);font-style:normal;font-size:var(--link-fs);padding-inline:var(--link-fs);padding-block:calc(var(--link-fs) - .4rem);border-radius:var(--link-radius, 100vw);display:inline-flex;align-items:center;justify-content:center;outline:var(--link-border-width) var(--link-border-color) var(--link-border-style);--scale-transition: transform 0.25s ease;--scale: scale(1);--scale-to: scale(1.05);transform:var(--scale);transition:var(--scale-transition)}a[href]:has(>b):focus,a[href]:has(>b):focus-visible,a[href][data-btn]:focus,a[href][data-btn]:focus-visible,a[href]:has(>i):focus,a[href]:has(>i):focus-visible{outline:var(--link-border-width) var(--link-border-color) var(--link-border-style);outline-offset:var(--link-focus-offset);--link-decoration: none}a[href]:has(>b):hover,a[href][data-btn]:hover,a[href]:has(>i):hover{--link-decoration: none}a[href]:has(>b):hover,a[href][data-btn]:hover,a[href]:has(>i):hover{transform:var(--scale-to)}a[href][data-link~=pill],a[href]:has(>i){--link-radius: 100vw;--link-decoration: none;font-style:normal}a[href][data-link~=pill]:hover,a[href][data-link~=pill]:focus,a[href][data-link~=pill]:focus-visible,a[href]:has(>i):hover,a[href]:has(>i):focus,a[href]:has(>i):focus-visible{--link-decoration: none}/*# sourceMappingURL=link.css.map */
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
a[href]{--link-color: var(--color-link);--link-fw: 400;--link-fs: 1rem;--link-decoration: none;--link-decoration-offset: 0.09375rem;--link-decoration-thickness: 0.0625rem;--link-skip-ink: auto;--link-bg: transparent;--link-radius: 0.25rem;--link-padding-inline: 0;--link-padding-block: 0;--link-transition: all 0.35s ease-in-out;--link-focus-color: currentColor;--link-focus-width: 0.125rem;--link-focus-offset: 0.125rem;--link-focus-style: solid;color:var(--link-color);font-size:var(--link-fs);font-weight:var(--link-fw);-webkit-text-decoration:var(--link-decoration);text-decoration:var(--link-decoration);text-underline-offset:var(--link-decoration-offset);text-decoration-thickness:var(--link-decoration-thickness);-webkit-text-decoration-skip-ink:var(--link-skip-ink);text-decoration-skip-ink:var(--link-skip-ink);background-color:var(--link-bg);border-radius:var(--link-radius);transition:var(--link-transition)}a[href]>i,a[href]>b{font-weight:var(--link-fw);font-style:normal}a[href]:hover{--link-decoration: underline}a[href]:focus-visible{outline:var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);outline-offset:var(--link-focus-offset);font-weight:bold}a[href]:visited,a[href]:active{--link-color: currentColor}a[href]:has(>b),a[href][data-btn],a[href]:has(>i){--link-button-color: var(--link-color);--link-bg: transparent;--link-decoration: none;--link-border-width: 0.125rem;--link-border-color: currentColor;--link-border-style: solid;--link-fs: 0.9rem;color:var(--link-button-color);background-color:var(--link-bg);font-style:normal;font-size:var(--link-fs);padding-inline:var(--link-fs);padding-block:calc(var(--link-fs) - .4rem);border-radius:var(--link-radius,
|
|
1
|
+
a[href]{--link-color: var(--color-link);--link-fw: 400;--link-fs: 1rem;--link-decoration: none;--link-decoration-offset: 0.09375rem;--link-decoration-thickness: 0.0625rem;--link-skip-ink: auto;--link-bg: transparent;--link-radius: 0.25rem;--link-padding-inline: 0;--link-padding-block: 0;--link-transition: all 0.35s ease-in-out;--link-focus-color: currentColor;--link-focus-width: 0.125rem;--link-focus-offset: 0.125rem;--link-focus-style: solid;color:var(--link-color);font-size:var(--link-fs);font-weight:var(--link-fw);-webkit-text-decoration:var(--link-decoration);text-decoration:var(--link-decoration);text-underline-offset:var(--link-decoration-offset);text-decoration-thickness:var(--link-decoration-thickness);-webkit-text-decoration-skip-ink:var(--link-skip-ink);text-decoration-skip-ink:var(--link-skip-ink);background-color:var(--link-bg);border-radius:var(--link-radius);transition:var(--link-transition)}a[href]>i,a[href]>b{font-weight:var(--link-fw);font-style:normal}a[href]:hover{--link-decoration: underline}a[href]:focus-visible{outline:var(--link-focus-width) var(--link-focus-style) var(--link-focus-color);outline-offset:var(--link-focus-offset);font-weight:bold}a[href]:visited,a[href]:active{--link-color: currentColor}a[href]:has(>b),a[href][data-btn],a[href]:has(>i){--link-button-color: var(--link-color);--link-bg: transparent;--link-decoration: none;--link-border-width: 0.125rem;--link-border-color: currentColor;--link-border-style: solid;--link-fs: 0.9rem;color:var(--link-button-color);background-color:var(--link-bg);font-style:normal;font-size:var(--link-fs);padding-inline:var(--link-fs);padding-block:calc(var(--link-fs) - .4rem);border-radius:var(--link-radius, 100vw);display:inline-flex;align-items:center;justify-content:center;outline:var(--link-border-width) var(--link-border-color) var(--link-border-style);--scale-transition: transform 0.25s ease;--scale: scale(1);--scale-to: scale(1.05);transform:var(--scale);transition:var(--scale-transition)}a[href]:has(>b):focus,a[href]:has(>b):focus-visible,a[href][data-btn]:focus,a[href][data-btn]:focus-visible,a[href]:has(>i):focus,a[href]:has(>i):focus-visible{outline:var(--link-border-width) var(--link-border-color) var(--link-border-style);outline-offset:var(--link-focus-offset);--link-decoration: none}a[href]:has(>b):hover,a[href][data-btn]:hover,a[href]:has(>i):hover{--link-decoration: none}a[href]:has(>b):hover,a[href][data-btn]:hover,a[href]:has(>i):hover{transform:var(--scale-to)}a[href][data-link~=pill],a[href]:has(>i){--link-radius: 100vw;--link-decoration: none;font-style:normal}a[href][data-link~=pill]:hover,a[href][data-link~=pill]:focus,a[href][data-link~=pill]:focus-visible,a[href]:has(>i):hover,a[href]:has(>i):focus,a[href]:has(>i):focus-visible{--link-decoration: none}
|
|
2
2
|
|
|
3
3
|
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2xpbmsvbGluay5zY3NzIiwiLi4vLi4vLi4vc3JjL3Nhc3MvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLFFBRUUsK0JBQUEsQ0FDQSxjQUFBLENBQ0EsZUFBQSxDQUdBLHVCQUFBLENBQ0Esb0NBQUEsQ0FDQSxzQ0FBQSxDQUNBLHFCQUFBLENBR0Esc0JBQUEsQ0FDQSxzQkFBQSxDQUdBLHdCQUFBLENBQ0EsdUJBQUEsQ0FHQSx3Q0FBQSxDQUdBLGdDQUFBLENBQ0EsNEJBQUEsQ0FDQSw2QkFBQSxDQUNBLHlCQUFBLENBR0EsdUJBQUEsQ0FDQSx3QkFBQSxDQUNBLDBCQUFBLENBQ0EsOENBQUEsQ0FBQSxzQ0FBQSxDQUNBLG1EQUFBLENBQ0EsMERBQUEsQ0FDQSxxREFBQSxDQUFBLDZDQUFBLENBQ0EsK0JBQUEsQ0FDQSxnQ0FBQSxDQUNBLGlDQUFBLENBR0Esb0JBRUUsMEJBQUEsQ0FDQSxpQkFBQSxDQUlGLGNBQ0UsNEJBQUEsQ0FLRixzQkFDRSwrRUFBQSxDQUVBLHVDQUFBLENBQ0EsZ0JBQUEsQ0FJRiwrQkFFRSwwQkFBQSxDQUlGLGtEQUdFLHNDQUFBLENBQ0Esc0JBQUEsQ0FDQSx1QkFBQSxDQUNBLDZCQUFBLENBQ0EsaUNBQUEsQ0FDQSwwQkFBQSxDQUNBLGlCQUFBLENBRUEsOEJBQUEsQ0FDQSwrQkFBQSxDQUNBLGlCQUFBLENBQ0Esd0JBQUEsQ0FDQSw2QkFBQSxDQUNBLDBDQUFBLENBQ0EsdUNBQUEsQ0FDQSxtQkFBQSxDQUNBLGtCQUFBLENBQ0Esc0JBQUEsQ0FDQSxrRkFBQSxDQ3ZHRix3Q0FBQSxDQUNBLGlCQUFBLENBQ0EsdUJBQUEsQ0FDQSxzQkFBQSxDQUNBLGtDQUFBLENEdUdFLGdLQUVFLGtGQUFBLENBRUEsdUNBQUEsQ0FDQSx1QkFBQSxDQUlGLG9FQUNFLHVCQUFBLENDaEhKLG9FQUNFLHlCQUFBLENEdUhGLHlDQUVFLG9CQUFBLENBQ0EsdUJBQUEsQ0FDQSxpQkFBQSxDQUVBLCtLQUdFLHVCQUFBIiwiZmlsZSI6ImxpbmsubWluLmNzcyJ9 */
|