@infonomic/uikit 5.2.0 → 5.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/dist/components/scroll-to-top/scroll-to-top.d.ts +12 -7
- package/dist/components/scroll-to-top/scroll-to-top.d.ts.map +1 -1
- package/dist/components/scroll-to-top/scroll-to-top.js +24 -15
- package/dist/styles/components-vanilla.css +1 -1
- package/package.json +1 -1
- package/src/astro.d.ts +2 -0
- package/src/astro.js +3 -0
- package/src/components/scroll-to-top/scroll-to-top.astro +75 -0
- package/src/components/scroll-to-top/scroll-to-top.tsx +52 -34
- package/src/components/scroll-to-top/scroll-to-top.stories.tsx +0 -25
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { type ComponentProps } from 'react';
|
|
2
|
+
export interface ScrollToTopProps extends ComponentProps<'button'> {
|
|
3
|
+
/**
|
|
4
|
+
* The scroll position (Y-axis) in pixels that triggers the button to appear.
|
|
5
|
+
* @default 200
|
|
6
|
+
*/
|
|
7
|
+
showAt?: number;
|
|
8
|
+
/**
|
|
9
|
+
* The target scroll position (Y-axis) to scroll to when clicked.
|
|
10
|
+
* @default -65
|
|
11
|
+
*/
|
|
4
12
|
offset?: number;
|
|
5
13
|
}
|
|
6
|
-
export
|
|
7
|
-
export declare const ScrollToTop: ({ ref, offset, ...rest }: ScrollToTopProps & {
|
|
8
|
-
ref?: React.RefObject<HTMLButtonElement>;
|
|
9
|
-
}) => React.JSX.Element;
|
|
14
|
+
export declare function ScrollToTop({ className, showAt, offset, type, 'aria-label': ariaLabel, onClick, ...props }: ScrollToTopProps): import("react").JSX.Element;
|
|
10
15
|
//# sourceMappingURL=scroll-to-top.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-to-top.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-to-top/scroll-to-top.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scroll-to-top.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-to-top/scroll-to-top.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,OAAO,CAAA;AAIhE,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAChE;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,MAAY,EACZ,MAAY,EACZ,IAAe,EACf,YAAY,EAAE,SAA2B,EACzC,OAAO,EACP,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAuDlB"}
|
|
@@ -3,44 +3,53 @@ import { jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import classnames from "classnames";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import scroll_to_top_module from "./scroll-to-top.module.js";
|
|
6
|
-
|
|
6
|
+
function ScrollToTop({ className, showAt = 200, offset = -65, type = 'button', 'aria-label': ariaLabel = 'Scroll to top', onClick, ...props }) {
|
|
7
7
|
const [show, setShow] = useState(false);
|
|
8
|
-
const handleOnClick = ()=>{
|
|
8
|
+
const handleOnClick = (e)=>{
|
|
9
9
|
window.scrollTo({
|
|
10
10
|
top: offset,
|
|
11
11
|
left: 0,
|
|
12
12
|
behavior: 'smooth'
|
|
13
13
|
});
|
|
14
|
+
onClick?.(e);
|
|
14
15
|
};
|
|
15
16
|
useEffect(()=>{
|
|
17
|
+
let ticking = false;
|
|
16
18
|
const handleOnScroll = ()=>{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
if (!ticking) {
|
|
20
|
+
window.requestAnimationFrame(()=>{
|
|
21
|
+
setShow(window.scrollY > showAt);
|
|
22
|
+
ticking = false;
|
|
23
|
+
});
|
|
24
|
+
ticking = true;
|
|
25
|
+
}
|
|
20
26
|
};
|
|
21
|
-
|
|
27
|
+
window.addEventListener('scroll', handleOnScroll, {
|
|
28
|
+
passive: true
|
|
29
|
+
});
|
|
22
30
|
return ()=>{
|
|
23
31
|
window.removeEventListener('scroll', handleOnScroll);
|
|
24
32
|
};
|
|
25
|
-
}, [
|
|
33
|
+
}, [
|
|
34
|
+
showAt
|
|
35
|
+
]);
|
|
26
36
|
return /*#__PURE__*/ jsx("button", {
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
type: type,
|
|
38
|
+
"aria-label": ariaLabel,
|
|
29
39
|
onClick: handleOnClick,
|
|
30
|
-
type: "button",
|
|
31
|
-
id: "scroll-to-top",
|
|
32
40
|
className: classnames('scroll-to-top', scroll_to_top_module["scroll-to-top"], {
|
|
33
41
|
'scroll-to-top-shown': show,
|
|
34
42
|
[scroll_to_top_module["scroll-to-top-shown"]]: show
|
|
35
|
-
}),
|
|
43
|
+
}, className),
|
|
44
|
+
...props,
|
|
36
45
|
children: /*#__PURE__*/ jsx("span", {
|
|
46
|
+
"aria-hidden": "true",
|
|
37
47
|
children: /*#__PURE__*/ jsx("svg", {
|
|
38
48
|
className: "icon",
|
|
39
49
|
style: {
|
|
40
50
|
fill: 'currentColor'
|
|
41
51
|
},
|
|
42
52
|
focusable: "false",
|
|
43
|
-
"aria-hidden": "true",
|
|
44
53
|
viewBox: "0 0 51 32",
|
|
45
54
|
children: /*#__PURE__*/ jsx("path", {
|
|
46
55
|
d: "M25.4,9.8L45.6,30l4.5-4.5L25.4,0.8L0.8,25.4L5.3,30L25.4,9.8z"
|
|
@@ -48,5 +57,5 @@ const scroll_to_top_ScrollToTop = function({ ref, offset = -65, ...rest }) {
|
|
|
48
57
|
})
|
|
49
58
|
})
|
|
50
59
|
});
|
|
51
|
-
}
|
|
52
|
-
export {
|
|
60
|
+
}
|
|
61
|
+
export { ScrollToTop };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer infonomic-base,infonomic-functional,infonomic-utilities,infonomic-theme,infonomic-typography;@layer infonomic-components{:is(.card-mqJaiW,.card){width:100%;max-width:100%;color:var(--foreground);background:var(--canvas-25);border-width:var(--border-width-thin);border-color:var(--border-color);border-style:var(--border-style-solid);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);flex-direction:column;text-decoration:none;display:flex}:is(.card-mqJaiW:is(.dark *),.card:is(.dark *)){background:var(--canvas-800)}:is(.card-hover-hvT4d6,.card-hover){transition:background .2s ease-in-out}:is(.card-hover-hvT4d6:hover,.card-hover:hover){background:oklch(from var(--theme-50)1 .03 h)}:is(.card-hover-hvT4d6:hover:is(.dark *),.card-hover:hover:is(.dark *)){background:oklch(from var(--canvas-800).2 c h)}:is(.card-header-XnoBkP,.card-header){flex-direction:column;gap:.5rem;padding:1rem;display:flex}:is(.card-title-JI7Lu3,.card-title){color:var(--headings);letter-spacing:-.015em;font-size:1.8rem;font-weight:700;line-height:1}:is(.card-description-fwu7HE,.card-description){color:var(--muted);font-size:.875rem}:is(.card-content-uhoZYJ,.card-content){flex:1;padding:0 1rem 1rem}:is(.card-footer-BxTa4b,.card-footer){align-items:center;padding:0 1rem 1rem;display:flex}:is(.container-tSpizY,.container){width:100%;max-width:60rem;margin:0 auto;padding:0 1rem}@media (width>=66rem){:is(.container-tSpizY,.container){max-width:64rem}}@media (width>=77rem){:is(.container-tSpizY,.container){max-width:74.375rem}}@media (width>=94rem){:is(.container-tSpizY,.container){max-width:87.5rem}}:is(.badge-8xVidp,.badge){font-size:var(--font-size-sm);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--border-radius-sm);padding:.25em .4em;font-weight:400;line-height:1;display:inline-block}:is(.primary-oZyR_M,.badge-primary){color:var(--text-on-primary);background-color:var(--fill-primary-strong)}:is(.secondary-VsqJTm,.badge-secondary){color:var(--text-on-secondary);background-color:var(--fill-secondary-strong)}:is(.noeffect-R8eJtO,.badge-noeffect){color:var(--text-on-noeffect);background-color:var(--fill-noeffect-strong)}:is(.success-h2otET,.badge-success){color:var(--text-on-success);background-color:var(--fill-success-strong)}:is(.info-OG3F3u,.badge-info){color:var(--text-on-info);background-color:var(--fill-info-strong)}:is(.warning-zTXksZ,.badge-warning){color:var(--text-on-warning);background-color:var(--fill-warning-strong)}:is(.danger-hKF7l_,.badge-danger){color:var(--text-on-danger);background-color:var(--fill-danger-strong)}:is(.button-IjDhC0,.button){cursor:pointer;text-align:center;gap:var(--gap-2);white-space:nowrap;outline-offset:2px;transition:background-color var(--transition-normal),box-shadow var(--transition-normal);border-radius:var(--border-radius-sm);border:none;outline:2px solid #0000;justify-content:center;align-items:center;font-weight:400;line-height:0;display:inline-flex}:is(.button-IjDhC0:disabled,.button-IjDhC0[disabled],.button:disabled,.button[disabled]){pointer-events:none}:is(.button-IjDhC0:focus,.button-IjDhC0:active,.button:focus,.button:active){--ring-offset-color:var(--background);--ring-offset-shadow:var(--ring-inset)0 0 0 var(--ring-offset-width)var(--ring-offset-color);--ring-shadow:var(--ring-inset)0 0 0 calc(1px + var(--ring-offset-width))var(--ring-color);box-shadow:var(--ring-offset-shadow),var(--ring-shadow),var(--shadow,0 0 #0000)}.button-IjDhC0.square-P_6yde,.button-square{aspect-ratio:1;border-radius:var(--border-radius-sm);padding:0}.button-IjDhC0.round-uqus3n,.button-round{aspect-ratio:1;border-radius:var(--border-radius-full);padding:0}:is(.xs-jxTd5R,.button-xs){min-height:26px;padding:.2rem .4rem;font-size:.7rem}:is(.sm-uD_Ugt,.button-sm){min-height:32px;padding:.25rem .5rem;font-size:.775rem}:is(.md-Qp9ad6,.button-md){min-height:38px;padding:.625rem 1.25rem;font-size:.95rem}:is(.lg-FAYTen,.button-lg){min-height:46px;padding:.75rem 1.5rem;font-size:1.1rem}:is(.xl-Gwvhl4,.button-xl){min-height:54px;padding:.75rem 1.5rem;font-size:1.2rem}:is(.filled-CwGsrO,.button-filled){color:var(--button-variant-filled-foreground);background-color:var(--button-variant-filled)}:is(.filled-CwGsrO:hover,.button-filled:hover){background-color:var(--button-variant-filled-hover)}:is(.filled-CwGsrO:focus,.filled-CwGsrO:active,.button-filled:focus,.button-filled:active){--ring-color:var(--button-ring-color)}:is(.filled-CwGsrO:disabled,.filled-CwGsrO[disabled],.button-filled:disabled,.button-filled[disabled]){background-color:var(--button-variant-filled-disabled,oklch(from var(--button-variant-filled)calc(l*1.1)calc(c*.85)h));color:var(--button-variant-filled-foreground-disabled,oklch(from var(--button-variant-filled-foreground)calc(l*.9)calc(c*.85)h))}:is(.outlined-nZGbxu,.button-outlined){border:1px solid var(--button-variant-outlined-border);color:var(--button-variant-outlined-foreground);background-color:var(--button-variant-outlined)}:is(.outlined-nZGbxu:disabled,.outlined-nZGbxu[disabled],.button-outlined:disabled,.button-outlined[disabled]){border-color:var(--button-variant-outlined-border-disabled,oklch(from var(--button-variant-outlined-border)calc(l*1.5)calc(c*.8)h));color:var(--button-variant-outlined-foreground-disabled,oklch(from var(--button-variant-outlined-foreground)calc(l*1.1)calc(c*.7)h))}:is(.outlined-nZGbxu:hover,.button-outlined:hover){background-color:var(--button-variant-outlined-hover)}:is(.outlined-nZGbxu:focus,.outlined-nZGbxu:active,.button-outlined:focus,.button-outlined:active){--ring-color:var(--button-ring-color)}:is(.gradient-ySC3O3,.button-gradient){color:var(--button-variant-gradient-foreground);background:linear-gradient(45deg,var(--button-variant-gradient-start),var(--button-variant-gradient-end))}:is(.gradient-ySC3O3:disabled,.gradient-ySC3O3[disabled],.button-gradient:disabled,.button-gradient[disabled]){background:unset;background-color:var(--button-variant-gradient-disabled,oklch(from var(--button-variant-gradient-end)calc(l*1.2)calc(c*.85)h));color:var(--button-variant-gradient-foreground-disabled,oklch(from var(--button-variant-gradient-foreground)calc(l*.9)calc(c*.85)h))}:is(.gradient-ySC3O3:hover,.button-gradient:hover){color:var(--button-variant-gradient-foreground);background:linear-gradient(45deg,var(--button-variant-gradient-start),var(--button-variant-gradient-end))}:is(.gradient-ySC3O3:focus,.gradient-ySC3O3:active,.button-gradient:focus,.button-gradient:active){--ring-color:var(--button-ring-color)}:is(.text-GaxlcE,.button-text){background-color:var(--button-variant-text);color:var(--button-variant-text-foreground)}:is(.text-GaxlcE:disabled,.text-GaxlcE[disabled],.button-text:disabled,.button-text[disabled]){color:oklch(from var(--button-variant-text-foreground)calc(l*1.5)calc(c*.5)h)}:is(.text-GaxlcE:hover,.button-text:hover){background-color:var(--button-variant-text-hover)}:is(.text-GaxlcE:focus,.text-GaxlcE:active,.button-text:focus,.button-text:active){--ring-color:var(--button-ring-color)}:is(.primary-tUmczz,.button-primary){--button-ring-color:var(--ring-primary);--button-variant-filled:var(--fill-primary-strong);--button-variant-filled-foreground:var(--text-on-primary);--button-variant-filled-hover:var(--fill-primary-strong-hover);--button-variant-filled-disabled:var(--fill-primary-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-primary-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-primary-strong);--button-variant-outlined-hover:var(--fill-primary-weak);--button-variant-outlined-border:var(--stroke-primary);--button-variant-outlined-border-disabled:var(--stroke-primary-disabled);--button-variant-outlined-foreground-disabled:var(--text-primary-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-primary-weak);--button-variant-text-hover:var(--fill-primary-weak-hover);--button-variant-gradient-start:var(--gradient-primary-start);--button-variant-gradient-end:var(--gradient-primary-end);--button-variant-gradient-foreground:var(--gradient-primary-foreground);--button-variant-gradient-disabled:var(--gradient-primary-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-primary-disabled)}:is(.secondary-UqT2AY,.button-secondary){--button-ring-color:var(--ring-secondary);--button-variant-filled:var(--fill-secondary-strong);--button-variant-filled-foreground:var(--text-on-secondary);--button-variant-filled-hover:var(--fill-secondary-strong-hover);--button-variant-filled-disabled:var(--fill-secondary-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-secondary-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-secondary-strong);--button-variant-outlined-hover:var(--fill-secondary-weak);--button-variant-outlined-border:var(--stroke-secondary);--button-variant-outlined-border-disabled:var(--stroke-secondary-disabled);--button-variant-outlined-foreground-disabled:var(--text-secondary-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-secondary-weak);--button-variant-text-hover:var(--fill-secondary-weak-hover);--button-variant-gradient-start:var(--gradient-secondary-start);--button-variant-gradient-end:var(--gradient-secondary-end);--button-variant-gradient-foreground:var(--gradient-secondary-foreground);--button-variant-gradient-disabled:var(--gradient-secondary-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-secondary-disabled)}:is(.noeffect-fpxSgg,.button-noeffect){--button-ring-color:var(--ring-noeffect);--button-variant-filled:var(--fill-noeffect-strong);--button-variant-filled-foreground:var(--text-on-noeffect);--button-variant-filled-hover:var(--fill-noeffect-strong-hover);--button-variant-filled-disabled:var(--fill-noeffect-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-noeffect-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-noeffect-strong);--button-variant-outlined-hover:var(--fill-noeffect-weak);--button-variant-outlined-border:var(--stroke-noeffect);--button-variant-outlined-border-disabled:var(--stroke-noeffect-disabled);--button-variant-outlined-foreground-disabled:var(--text-noeffect-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-noeffect-weak);--button-variant-text-hover:var(--fill-noeffect-weak-hover);--button-variant-gradient-start:var(--gradient-noeffect-start);--button-variant-gradient-end:var(--gradient-noeffect-end);--button-variant-gradient-foreground:var(--gradient-noeffect-foreground);--button-variant-gradient-disabled:var(--gradient-noeffect-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-noeffect-disabled)}:is(.success-fTNDEn,.button-success){--button-ring-color:var(--ring-success);--button-variant-filled:var(--fill-success-strong);--button-variant-filled-foreground:var(--text-on-success);--button-variant-filled-hover:var(--fill-success-strong-hover);--button-variant-filled-disabled:var(--fill-success-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-success-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-success-strong);--button-variant-outlined-hover:var(--fill-success-weak);--button-variant-outlined-border:var(--stroke-success);--button-variant-outlined-border-disabled:var(--stroke-success-disabled);--button-variant-outlined-foreground-disabled:var(--text-success-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-success-weak);--button-variant-text-hover:var(--fill-success-weak-hover);--button-variant-gradient-start:var(--gradient-success-start);--button-variant-gradient-end:var(--gradient-success-end);--button-variant-gradient-foreground:var(--gradient-success-foreground);--button-variant-gradient-disabled:var(--gradient-success-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-success-disabled)}:is(.info-qrdXQD,.button-info){--button-ring-color:var(--ring-info);--button-variant-filled:var(--fill-info-strong);--button-variant-filled-foreground:var(--text-on-info);--button-variant-filled-hover:var(--fill-info-strong-hover);--button-variant-filled-disabled:var(--fill-info-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-info-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-info-strong);--button-variant-outlined-hover:var(--fill-info-weak);--button-variant-outlined-border:var(--stroke-info);--button-variant-outlined-border-disabled:var(--stroke-info-disabled);--button-variant-outlined-foreground-disabled:var(--text-info-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-info-weak);--button-variant-text-hover:var(--fill-info-weak-hover);--button-variant-gradient-start:var(--gradient-info-start);--button-variant-gradient-end:var(--gradient-info-end);--button-variant-gradient-foreground:var(--gradient-info-foreground);--button-variant-gradient-disabled:var(--gradient-info-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-info-disabled)}:is(.warning-a00T3A,.button-warning){--button-ring-color:var(--ring-warning);--button-variant-filled:var(--fill-warning-strong);--button-variant-filled-foreground:var(--text-on-warning);--button-variant-filled-hover:var(--fill-warning-strong-hover);--button-variant-filled-disabled:var(--fill-warning-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-warning-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-warning-strong);--button-variant-outlined-hover:var(--fill-warning-weak);--button-variant-outlined-border:var(--stroke-warning);--button-variant-outlined-border-disabled:var(--stroke-warning-disabled);--button-variant-outlined-foreground-disabled:var(--text-warning-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-warning-weak);--button-variant-text-hover:var(--fill-warning-weak-hover);--button-variant-gradient-start:var(--gradient-warning-start);--button-variant-gradient-end:var(--gradient-warning-end);--button-variant-gradient-foreground:var(--gradient-warning-foreground);--button-variant-gradient-disabled:var(--gradient-warning-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-warning-disabled)}:is(.danger-rwIV_i,.button-danger){--button-ring-color:var(--ring-danger);--button-variant-filled:var(--fill-danger-strong);--button-variant-filled-foreground:var(--text-on-danger);--button-variant-filled-hover:var(--fill-danger-strong-hover);--button-variant-filled-disabled:var(--fill-danger-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-danger-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-danger-strong);--button-variant-outlined-hover:var(--fill-danger-weak);--button-variant-outlined-border:var(--stroke-danger);--button-variant-outlined-border-disabled:var(--stroke-danger-disabled);--button-variant-outlined-foreground-disabled:var(--text-danger-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-danger-weak);--button-variant-text-hover:var(--fill-danger-weak-hover);--button-variant-gradient-start:var(--gradient-danger-start);--button-variant-gradient-end:var(--gradient-danger-end);--button-variant-gradient-foreground:var(--gradient-danger-foreground);--button-variant-gradient-disabled:var(--gradient-danger-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-danger-disabled)}:is(.fullWidth-wXvP0v,.button-full-width){width:100%;display:flex}:is(.button-group-uqvOi8,.button-group){place-items:center;gap:var(--gap-2);flex-direction:column;display:flex}@media screen and (width>=40rem){:is(.button-group-uqvOi8,.button-group){flex-direction:row}}:is(.copy-button-container-vCNz8o,.copy-button-container){display:inline-block}:is(.copy-button-oa4bdj svg,.copy-button svg){width:90%;height:90%;display:block}:is(.xs-lZmf78,.copy-button-xs){width:26px;height:26px;min-height:26px;padding:.25rem}:is(.sm-KNN1e5,.copy-button-sm){width:32px;height:32px;min-height:32px;padding:.35rem}:is(.md-OoH0l4,.copy-button-md){width:38px;height:38px;min-height:38px;padding:.45rem}:is(.lg-uu5ujz,.copy-button-lg){width:46px;height:46px;min-height:46px;padding:.55rem}:is(.xl-pFYyrS,.copy-button-xl){width:54px;height:54px;min-height:54px;padding:.65rem}:is(.input-wrapper-xxN94z,.input-wrapper){gap:var(--gap-1);flex-direction:column;display:flex}:is(.input-container-GveKcr,.input-container){align-items:center;gap:var(--gap-2);display:flex;position:relative}:is(.input-voSL1w,.input){gap:var(--gap-2);width:100%;transition:all var(--transition-normal);border-radius:var(--border-radius-sm);border:none;outline:none;align-items:center;font-weight:400;display:inline-flex}:is(.input-voSL1w:focus,.input-voSL1w:active,.input:focus,.input:active){--ring-offset-color:var(--background);--ring-offset-shadow:var(--ring-inset)0 0 0 var(--ring-offset-width)var(--ring-offset-color);--ring-shadow:var(--ring-inset)0 0 0 calc(1px + var(--ring-offset-width))var(--ring-color);box-shadow:var(--ring-offset-shadow),var(--ring-shadow),var(--shadow,0 0 #0000)}:is(.input-voSL1w:disabled,.input-voSL1w[disabled],.input:disabled,.input[disabled]){pointer-events:none}:is(.label-a8k0oS,.input-label){color:var(--label-color);font-size:.875rem;font-weight:500}:is(.sm-cI5ETu,.input-sm){min-height:32px;padding:.25rem .5rem;font-size:.875rem;line-height:0}:is(.md-moqLi4,.input-md){min-height:38px;padding:.4rem .5rem;font-size:1.1rem;line-height:0}:is(.lg-Tn3YZZ,.input-lg){min-height:46px;padding:.5rem;font-size:1.2rem;line-height:0}:is(.start-adornment-H0sdmX,.end-adornment-xl3mid,.input-start-adornment,.input-end-adornment){align-items:center;display:flex;position:absolute}:is(.start-adornment-H0sdmX,.input-start-adornment){left:5px}:is(.end-adornment-xl3mid,.input-end-adornment){right:5px}:is(.help-text-MZW4yX,.input-help-text){color:var(--help-text-color);font-size:.75rem}:is(.outlined-xbB8mE,.input-outlined){border:1px solid var(--input-variant-outlined-border);background-color:#0000}:is(.outlined-xbB8mE:hover,.input-outlined:hover){border:1px solid var(--input-variant-outlined-hover-border)}:is(.outlined-xbB8mE:focus,.outlined-xbB8mE:active,.input-outlined:focus,.input-outlined:active){--ring-color:var(--input-variant-outline-ring-color)}:is(.underlined-zAz2HP,.input-underlined){border-bottom:1px solid var(--input-variant-underlined-border);gap:var(--gap-1);background-color:var(--input-variant-underlined);border-radius:0}.underlined-zAz2HP.sm-cI5ETu,.input-underlined.input-sm{min-height:26px;padding:.25rem .1rem}.underlined-zAz2HP.md-moqLi4,.input-underlined.input-md{min-height:30px;padding:.25rem .1rem}.underlined-zAz2HP.lg-Tn3YZZ,.input-underlined.input-lg{min-height:34px;padding:0 .1rem}:is(.underlined-zAz2HP:hover,.input-underlined:hover){border-bottom:1px solid var(--input-variant-underlined-hover-border)}:is(.filled-M1_LzJ,.input-filled){background-color:var(--input-variant-filled)}:is(.error-n0kSb0,.input-error),:is(.error-n0kSb0:hover,.input-error:hover){border:1px solid var(--red-400)}:is(.error-n0kSb0:focus,.error-n0kSb0:active,.input-error:focus,.input-error:active){--ring-color:var(--red-300)}.underlined-zAz2HP.start-adornment-padding-YAcYOx,.start-adornment-padding-YAcYOx,.input-underlined.input-start-adornment-padding,.input-start-adornment-padding{padding-left:2rem}.underlined-zAz2HP.end-adornment-padding-nC63CK,.end-adornment-padding-nC63CK,.input-underlined.input-end-adornment-padding,.input-end-adornment-padding{padding-right:2rem}.underlined-zAz2HP.start-adornment-H0sdmX,.input-underlined.input-start-adornment{left:0}.underlined-zAz2HP.end-adornment-xl3mid,.input-underlined.input-end-adornment{right:0}:is(.primary-xZZpZI,.input-primary){--input-variant-outlined-border:var(--stroke-primary);--input-variant-outlined-hover-border:var(--stroke-primary-hover);--input-variant-outline-ring-color:var(--ring-primary);--input-variant-underlined-border:var(--stroke-primary);--input-variant-underlined-hover-border:var(--stroke-primary-hover);--input-variant-filled:var(--fill-primary-weak)}:is(.secondary-WWDy2x,.input-secondary){--input-variant-outlined-border:var(--stroke-secondary);--input-variant-outlined-hover-border:var(--stroke-secondary-hover);--input-variant-outline-ring-color:var(--ring-secondary);--input-variant-underlined-border:var(--stroke-secondary);--input-variant-underlined-hover-border:var(--stroke-secondary-hover);--input-variant-filled:var(--fill-secondary-weak)}:is(.noeffect-LHbgak,.input-noeffect){--input-variant-outlined-border:var(--stroke-noeffect);--input-variant-outlined-hover-border:var(--stroke-noeffect-hover);--input-variant-outline-ring-color:var(--ring-noeffect);--input-variant-underlined-border:var(--stroke-noeffect);--input-variant-underlined-hover-border:var(--stroke-noeffect-hover);--input-variant-filled:var(--fill-noeffect-weak)}:is(.success-pMbTwx,.input-success){--input-variant-outlined-border:var(--stroke-success);--input-variant-outlined-hover-border:var(--stroke-success-hover);--input-variant-outline-ring-color:var(--ring-success);--input-variant-underlined-border:var(--stroke-success);--input-variant-underlined-hover-border:var(--stroke-success-hover);--input-variant-filled:var(--fill-success-weak)}:is(.info-SRpUkb,.input-info){--input-variant-outlined-border:var(--stroke-info);--input-variant-outlined-hover-border:var(--stroke-info-hover);--input-variant-outline-ring-color:var(--ring-info);--input-variant-underlined-border:var(--stroke-info);--input-variant-underlined-hover-border:var(--stroke-info-hover);--input-variant-filled:var(--fill-info-weak)}:is(.warning-mHL8O2,.input-warning){--input-variant-outlined-border:var(--stroke-warning);--input-variant-outlined-hover-border:var(--stroke-warning-hover);--input-variant-outline-ring-color:var(--ring-warning);--input-variant-underlined-border:var(--stroke-warning);--input-variant-underlined-hover-border:var(--stroke-warning-hover);--input-variant-filled:var(--fill-warning-weak)}:is(.danger-Rzx3WQ,.input-danger){--input-variant-outlined-border:var(--stroke-danger);--input-variant-outlined-hover-border:var(--stroke-danger-hover);--input-variant-outline-ring-color:var(--ring-danger);--input-variant-underlined-border:var(--stroke-danger);--input-variant-underlined-hover-border:var(--stroke-danger-hover);--input-variant-filled:var(--fill-danger-weak)}:is(.adornment-IbSUaL,.input-adornment){white-space:nowrap;align-items:center;line-height:0;display:flex}:is(.start-hcDqEk,.input-adornment-start){justify-content:flex-start}:is(.end-j0ZhyO,.input-adornment-end){justify-content:flex-end}:is(.text-area-P_aQjC,.text-area){width:100%;padding:.5rem;font-size:1.1rem}:is(.label-Q88hWY,.label){color:var(--text);font-weight:500;display:block}:is(.required-uod5eu,.label-required){color:var(--error)}:is(.text-xJE0DB,.error-text){color:var(--error);font-size:.875rem}:is(.text-U6KD9f,.help-text){color:var(--muted);font-size:.875rem}:is(.section-CEcZOp,.section){width:100%;position:relative}}
|
|
1
|
+
@layer infonomic-base,infonomic-functional,infonomic-utilities,infonomic-theme,infonomic-typography;@layer infonomic-components{:is(.card-mqJaiW,.card){width:100%;max-width:100%;color:var(--foreground);background:var(--canvas-25);border-width:var(--border-width-thin);border-color:var(--border-color);border-style:var(--border-style-solid);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);flex-direction:column;text-decoration:none;display:flex}:is(.card-mqJaiW:is(.dark *),.card:is(.dark *)){background:var(--canvas-800)}:is(.card-hover-hvT4d6,.card-hover){transition:background .2s ease-in-out}:is(.card-hover-hvT4d6:hover,.card-hover:hover){background:oklch(from var(--theme-50)1 .03 h)}:is(.card-hover-hvT4d6:hover:is(.dark *),.card-hover:hover:is(.dark *)){background:oklch(from var(--canvas-800).2 c h)}:is(.card-header-XnoBkP,.card-header){flex-direction:column;gap:.5rem;padding:1rem;display:flex}:is(.card-title-JI7Lu3,.card-title){color:var(--headings);letter-spacing:-.015em;font-size:1.8rem;font-weight:700;line-height:1}:is(.card-description-fwu7HE,.card-description){color:var(--muted);font-size:.875rem}:is(.card-content-uhoZYJ,.card-content){flex:1;padding:0 1rem 1rem}:is(.card-footer-BxTa4b,.card-footer){align-items:center;padding:0 1rem 1rem;display:flex}:is(.container-tSpizY,.container){width:100%;max-width:60rem;margin:0 auto;padding:0 1rem}@media (width>=66rem){:is(.container-tSpizY,.container){max-width:64rem}}@media (width>=77rem){:is(.container-tSpizY,.container){max-width:74.375rem}}@media (width>=94rem){:is(.container-tSpizY,.container){max-width:87.5rem}}:is(.badge-8xVidp,.badge){font-size:var(--font-size-sm);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--border-radius-sm);padding:.25em .4em;font-weight:400;line-height:1;display:inline-block}:is(.primary-oZyR_M,.badge-primary){color:var(--text-on-primary);background-color:var(--fill-primary-strong)}:is(.secondary-VsqJTm,.badge-secondary){color:var(--text-on-secondary);background-color:var(--fill-secondary-strong)}:is(.noeffect-R8eJtO,.badge-noeffect){color:var(--text-on-noeffect);background-color:var(--fill-noeffect-strong)}:is(.success-h2otET,.badge-success){color:var(--text-on-success);background-color:var(--fill-success-strong)}:is(.info-OG3F3u,.badge-info){color:var(--text-on-info);background-color:var(--fill-info-strong)}:is(.warning-zTXksZ,.badge-warning){color:var(--text-on-warning);background-color:var(--fill-warning-strong)}:is(.danger-hKF7l_,.badge-danger){color:var(--text-on-danger);background-color:var(--fill-danger-strong)}:is(.button-IjDhC0,.button){cursor:pointer;text-align:center;gap:var(--gap-2);white-space:nowrap;outline-offset:2px;transition:background-color var(--transition-normal),box-shadow var(--transition-normal);border-radius:var(--border-radius-sm);border:none;outline:2px solid #0000;justify-content:center;align-items:center;font-weight:400;line-height:0;display:inline-flex}:is(.button-IjDhC0:disabled,.button-IjDhC0[disabled],.button:disabled,.button[disabled]){pointer-events:none}:is(.button-IjDhC0:focus,.button-IjDhC0:active,.button:focus,.button:active){--ring-offset-color:var(--background);--ring-offset-shadow:var(--ring-inset)0 0 0 var(--ring-offset-width)var(--ring-offset-color);--ring-shadow:var(--ring-inset)0 0 0 calc(1px + var(--ring-offset-width))var(--ring-color);box-shadow:var(--ring-offset-shadow),var(--ring-shadow),var(--shadow,0 0 #0000)}.button-IjDhC0.square-P_6yde,.button-square{aspect-ratio:1;border-radius:var(--border-radius-sm);padding:0}.button-IjDhC0.round-uqus3n,.button-round{aspect-ratio:1;border-radius:var(--border-radius-full);padding:0}:is(.xs-jxTd5R,.button-xs){min-height:26px;padding:.2rem .4rem;font-size:.7rem}:is(.sm-uD_Ugt,.button-sm){min-height:32px;padding:.25rem .5rem;font-size:.775rem}:is(.md-Qp9ad6,.button-md){min-height:38px;padding:.625rem 1.25rem;font-size:.95rem}:is(.lg-FAYTen,.button-lg){min-height:46px;padding:.75rem 1.5rem;font-size:1.1rem}:is(.xl-Gwvhl4,.button-xl){min-height:54px;padding:.75rem 1.5rem;font-size:1.2rem}:is(.filled-CwGsrO,.button-filled){color:var(--button-variant-filled-foreground);background-color:var(--button-variant-filled)}:is(.filled-CwGsrO:hover,.button-filled:hover){background-color:var(--button-variant-filled-hover)}:is(.filled-CwGsrO:focus,.filled-CwGsrO:active,.button-filled:focus,.button-filled:active){--ring-color:var(--button-ring-color)}:is(.filled-CwGsrO:disabled,.filled-CwGsrO[disabled],.button-filled:disabled,.button-filled[disabled]){background-color:var(--button-variant-filled-disabled,oklch(from var(--button-variant-filled)calc(l*1.1)calc(c*.85)h));color:var(--button-variant-filled-foreground-disabled,oklch(from var(--button-variant-filled-foreground)calc(l*.9)calc(c*.85)h))}:is(.outlined-nZGbxu,.button-outlined){border:1px solid var(--button-variant-outlined-border);color:var(--button-variant-outlined-foreground);background-color:var(--button-variant-outlined)}:is(.outlined-nZGbxu:disabled,.outlined-nZGbxu[disabled],.button-outlined:disabled,.button-outlined[disabled]){border-color:var(--button-variant-outlined-border-disabled,oklch(from var(--button-variant-outlined-border)calc(l*1.5)calc(c*.8)h));color:var(--button-variant-outlined-foreground-disabled,oklch(from var(--button-variant-outlined-foreground)calc(l*1.1)calc(c*.7)h))}:is(.outlined-nZGbxu:hover,.button-outlined:hover){background-color:var(--button-variant-outlined-hover)}:is(.outlined-nZGbxu:focus,.outlined-nZGbxu:active,.button-outlined:focus,.button-outlined:active){--ring-color:var(--button-ring-color)}:is(.gradient-ySC3O3,.button-gradient){color:var(--button-variant-gradient-foreground);background:linear-gradient(45deg,var(--button-variant-gradient-start),var(--button-variant-gradient-end))}:is(.gradient-ySC3O3:disabled,.gradient-ySC3O3[disabled],.button-gradient:disabled,.button-gradient[disabled]){background:unset;background-color:var(--button-variant-gradient-disabled,oklch(from var(--button-variant-gradient-end)calc(l*1.2)calc(c*.85)h));color:var(--button-variant-gradient-foreground-disabled,oklch(from var(--button-variant-gradient-foreground)calc(l*.9)calc(c*.85)h))}:is(.gradient-ySC3O3:hover,.button-gradient:hover){color:var(--button-variant-gradient-foreground);background:linear-gradient(45deg,var(--button-variant-gradient-start),var(--button-variant-gradient-end))}:is(.gradient-ySC3O3:focus,.gradient-ySC3O3:active,.button-gradient:focus,.button-gradient:active){--ring-color:var(--button-ring-color)}:is(.text-GaxlcE,.button-text){background-color:var(--button-variant-text);color:var(--button-variant-text-foreground)}:is(.text-GaxlcE:disabled,.text-GaxlcE[disabled],.button-text:disabled,.button-text[disabled]){color:oklch(from var(--button-variant-text-foreground)calc(l*1.5)calc(c*.5)h)}:is(.text-GaxlcE:hover,.button-text:hover){background-color:var(--button-variant-text-hover)}:is(.text-GaxlcE:focus,.text-GaxlcE:active,.button-text:focus,.button-text:active){--ring-color:var(--button-ring-color)}:is(.primary-tUmczz,.button-primary){--button-ring-color:var(--ring-primary);--button-variant-filled:var(--fill-primary-strong);--button-variant-filled-foreground:var(--text-on-primary);--button-variant-filled-hover:var(--fill-primary-strong-hover);--button-variant-filled-disabled:var(--fill-primary-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-primary-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-primary-strong);--button-variant-outlined-hover:var(--fill-primary-weak);--button-variant-outlined-border:var(--stroke-primary);--button-variant-outlined-border-disabled:var(--stroke-primary-disabled);--button-variant-outlined-foreground-disabled:var(--text-primary-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-primary-weak);--button-variant-text-hover:var(--fill-primary-weak-hover);--button-variant-gradient-start:var(--gradient-primary-start);--button-variant-gradient-end:var(--gradient-primary-end);--button-variant-gradient-foreground:var(--gradient-primary-foreground);--button-variant-gradient-disabled:var(--gradient-primary-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-primary-disabled)}:is(.secondary-UqT2AY,.button-secondary){--button-ring-color:var(--ring-secondary);--button-variant-filled:var(--fill-secondary-strong);--button-variant-filled-foreground:var(--text-on-secondary);--button-variant-filled-hover:var(--fill-secondary-strong-hover);--button-variant-filled-disabled:var(--fill-secondary-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-secondary-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-secondary-strong);--button-variant-outlined-hover:var(--fill-secondary-weak);--button-variant-outlined-border:var(--stroke-secondary);--button-variant-outlined-border-disabled:var(--stroke-secondary-disabled);--button-variant-outlined-foreground-disabled:var(--text-secondary-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-secondary-weak);--button-variant-text-hover:var(--fill-secondary-weak-hover);--button-variant-gradient-start:var(--gradient-secondary-start);--button-variant-gradient-end:var(--gradient-secondary-end);--button-variant-gradient-foreground:var(--gradient-secondary-foreground);--button-variant-gradient-disabled:var(--gradient-secondary-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-secondary-disabled)}:is(.noeffect-fpxSgg,.button-noeffect){--button-ring-color:var(--ring-noeffect);--button-variant-filled:var(--fill-noeffect-strong);--button-variant-filled-foreground:var(--text-on-noeffect);--button-variant-filled-hover:var(--fill-noeffect-strong-hover);--button-variant-filled-disabled:var(--fill-noeffect-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-noeffect-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-noeffect-strong);--button-variant-outlined-hover:var(--fill-noeffect-weak);--button-variant-outlined-border:var(--stroke-noeffect);--button-variant-outlined-border-disabled:var(--stroke-noeffect-disabled);--button-variant-outlined-foreground-disabled:var(--text-noeffect-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-noeffect-weak);--button-variant-text-hover:var(--fill-noeffect-weak-hover);--button-variant-gradient-start:var(--gradient-noeffect-start);--button-variant-gradient-end:var(--gradient-noeffect-end);--button-variant-gradient-foreground:var(--gradient-noeffect-foreground);--button-variant-gradient-disabled:var(--gradient-noeffect-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-noeffect-disabled)}:is(.success-fTNDEn,.button-success){--button-ring-color:var(--ring-success);--button-variant-filled:var(--fill-success-strong);--button-variant-filled-foreground:var(--text-on-success);--button-variant-filled-hover:var(--fill-success-strong-hover);--button-variant-filled-disabled:var(--fill-success-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-success-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-success-strong);--button-variant-outlined-hover:var(--fill-success-weak);--button-variant-outlined-border:var(--stroke-success);--button-variant-outlined-border-disabled:var(--stroke-success-disabled);--button-variant-outlined-foreground-disabled:var(--text-success-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-success-weak);--button-variant-text-hover:var(--fill-success-weak-hover);--button-variant-gradient-start:var(--gradient-success-start);--button-variant-gradient-end:var(--gradient-success-end);--button-variant-gradient-foreground:var(--gradient-success-foreground);--button-variant-gradient-disabled:var(--gradient-success-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-success-disabled)}:is(.info-qrdXQD,.button-info){--button-ring-color:var(--ring-info);--button-variant-filled:var(--fill-info-strong);--button-variant-filled-foreground:var(--text-on-info);--button-variant-filled-hover:var(--fill-info-strong-hover);--button-variant-filled-disabled:var(--fill-info-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-info-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-info-strong);--button-variant-outlined-hover:var(--fill-info-weak);--button-variant-outlined-border:var(--stroke-info);--button-variant-outlined-border-disabled:var(--stroke-info-disabled);--button-variant-outlined-foreground-disabled:var(--text-info-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-info-weak);--button-variant-text-hover:var(--fill-info-weak-hover);--button-variant-gradient-start:var(--gradient-info-start);--button-variant-gradient-end:var(--gradient-info-end);--button-variant-gradient-foreground:var(--gradient-info-foreground);--button-variant-gradient-disabled:var(--gradient-info-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-info-disabled)}:is(.warning-a00T3A,.button-warning){--button-ring-color:var(--ring-warning);--button-variant-filled:var(--fill-warning-strong);--button-variant-filled-foreground:var(--text-on-warning);--button-variant-filled-hover:var(--fill-warning-strong-hover);--button-variant-filled-disabled:var(--fill-warning-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-warning-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-warning-strong);--button-variant-outlined-hover:var(--fill-warning-weak);--button-variant-outlined-border:var(--stroke-warning);--button-variant-outlined-border-disabled:var(--stroke-warning-disabled);--button-variant-outlined-foreground-disabled:var(--text-warning-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-warning-weak);--button-variant-text-hover:var(--fill-warning-weak-hover);--button-variant-gradient-start:var(--gradient-warning-start);--button-variant-gradient-end:var(--gradient-warning-end);--button-variant-gradient-foreground:var(--gradient-warning-foreground);--button-variant-gradient-disabled:var(--gradient-warning-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-warning-disabled)}:is(.danger-rwIV_i,.button-danger){--button-ring-color:var(--ring-danger);--button-variant-filled:var(--fill-danger-strong);--button-variant-filled-foreground:var(--text-on-danger);--button-variant-filled-hover:var(--fill-danger-strong-hover);--button-variant-filled-disabled:var(--fill-danger-strong-disabled);--button-variant-filled-foreground-disabled:var(--text-on-danger-disabled);--button-variant-outlined:transparent;--button-variant-outlined-foreground:var(--text-danger-strong);--button-variant-outlined-hover:var(--fill-danger-weak);--button-variant-outlined-border:var(--stroke-danger);--button-variant-outlined-border-disabled:var(--stroke-danger-disabled);--button-variant-outlined-foreground-disabled:var(--text-danger-disabled);--button-variant-text:transparent;--button-variant-text-foreground:var(--text-danger-weak);--button-variant-text-hover:var(--fill-danger-weak-hover);--button-variant-gradient-start:var(--gradient-danger-start);--button-variant-gradient-end:var(--gradient-danger-end);--button-variant-gradient-foreground:var(--gradient-danger-foreground);--button-variant-gradient-disabled:var(--gradient-danger-disabled);--button-variant-gradient-foreground-disabled:var(--text-on-danger-disabled)}:is(.fullWidth-wXvP0v,.button-full-width){width:100%;display:flex}:is(.button-group-uqvOi8,.button-group){place-items:center;gap:var(--gap-2);flex-direction:column;display:flex}@media screen and (width>=40rem){:is(.button-group-uqvOi8,.button-group){flex-direction:row}}:is(.copy-button-container-vCNz8o,.copy-button-container){display:inline-block}:is(.copy-button-oa4bdj svg,.copy-button svg){width:90%;height:90%;display:block}:is(.xs-lZmf78,.copy-button-xs){width:26px;height:26px;min-height:26px;padding:.25rem}:is(.sm-KNN1e5,.copy-button-sm){width:32px;height:32px;min-height:32px;padding:.35rem}:is(.md-OoH0l4,.copy-button-md){width:38px;height:38px;min-height:38px;padding:.45rem}:is(.lg-uu5ujz,.copy-button-lg){width:46px;height:46px;min-height:46px;padding:.55rem}:is(.xl-pFYyrS,.copy-button-xl){width:54px;height:54px;min-height:54px;padding:.65rem}:is(.input-wrapper-xxN94z,.input-wrapper){gap:var(--gap-1);flex-direction:column;display:flex}:is(.input-container-GveKcr,.input-container){align-items:center;gap:var(--gap-2);display:flex;position:relative}:is(.input-voSL1w,.input){gap:var(--gap-2);width:100%;transition:all var(--transition-normal);border-radius:var(--border-radius-sm);border:none;outline:none;align-items:center;font-weight:400;display:inline-flex}:is(.input-voSL1w:focus,.input-voSL1w:active,.input:focus,.input:active){--ring-offset-color:var(--background);--ring-offset-shadow:var(--ring-inset)0 0 0 var(--ring-offset-width)var(--ring-offset-color);--ring-shadow:var(--ring-inset)0 0 0 calc(1px + var(--ring-offset-width))var(--ring-color);box-shadow:var(--ring-offset-shadow),var(--ring-shadow),var(--shadow,0 0 #0000)}:is(.input-voSL1w:disabled,.input-voSL1w[disabled],.input:disabled,.input[disabled]){pointer-events:none}:is(.label-a8k0oS,.input-label){color:var(--label-color);font-size:.875rem;font-weight:500}:is(.sm-cI5ETu,.input-sm){min-height:32px;padding:.25rem .5rem;font-size:.875rem;line-height:0}:is(.md-moqLi4,.input-md){min-height:38px;padding:.4rem .5rem;font-size:1.1rem;line-height:0}:is(.lg-Tn3YZZ,.input-lg){min-height:46px;padding:.5rem;font-size:1.2rem;line-height:0}:is(.start-adornment-H0sdmX,.end-adornment-xl3mid,.input-start-adornment,.input-end-adornment){align-items:center;display:flex;position:absolute}:is(.start-adornment-H0sdmX,.input-start-adornment){left:5px}:is(.end-adornment-xl3mid,.input-end-adornment){right:5px}:is(.help-text-MZW4yX,.input-help-text){color:var(--help-text-color);font-size:.75rem}:is(.outlined-xbB8mE,.input-outlined){border:1px solid var(--input-variant-outlined-border);background-color:#0000}:is(.outlined-xbB8mE:hover,.input-outlined:hover){border:1px solid var(--input-variant-outlined-hover-border)}:is(.outlined-xbB8mE:focus,.outlined-xbB8mE:active,.input-outlined:focus,.input-outlined:active){--ring-color:var(--input-variant-outline-ring-color)}:is(.underlined-zAz2HP,.input-underlined){border-bottom:1px solid var(--input-variant-underlined-border);gap:var(--gap-1);background-color:var(--input-variant-underlined);border-radius:0}.underlined-zAz2HP.sm-cI5ETu,.input-underlined.input-sm{min-height:26px;padding:.25rem .1rem}.underlined-zAz2HP.md-moqLi4,.input-underlined.input-md{min-height:30px;padding:.25rem .1rem}.underlined-zAz2HP.lg-Tn3YZZ,.input-underlined.input-lg{min-height:34px;padding:0 .1rem}:is(.underlined-zAz2HP:hover,.input-underlined:hover){border-bottom:1px solid var(--input-variant-underlined-hover-border)}:is(.filled-M1_LzJ,.input-filled){background-color:var(--input-variant-filled)}:is(.error-n0kSb0,.input-error),:is(.error-n0kSb0:hover,.input-error:hover){border:1px solid var(--red-400)}:is(.error-n0kSb0:focus,.error-n0kSb0:active,.input-error:focus,.input-error:active){--ring-color:var(--red-300)}.underlined-zAz2HP.start-adornment-padding-YAcYOx,.start-adornment-padding-YAcYOx,.input-underlined.input-start-adornment-padding,.input-start-adornment-padding{padding-left:2rem}.underlined-zAz2HP.end-adornment-padding-nC63CK,.end-adornment-padding-nC63CK,.input-underlined.input-end-adornment-padding,.input-end-adornment-padding{padding-right:2rem}.underlined-zAz2HP.start-adornment-H0sdmX,.input-underlined.input-start-adornment{left:0}.underlined-zAz2HP.end-adornment-xl3mid,.input-underlined.input-end-adornment{right:0}:is(.primary-xZZpZI,.input-primary){--input-variant-outlined-border:var(--stroke-primary);--input-variant-outlined-hover-border:var(--stroke-primary-hover);--input-variant-outline-ring-color:var(--ring-primary);--input-variant-underlined-border:var(--stroke-primary);--input-variant-underlined-hover-border:var(--stroke-primary-hover);--input-variant-filled:var(--fill-primary-weak)}:is(.secondary-WWDy2x,.input-secondary){--input-variant-outlined-border:var(--stroke-secondary);--input-variant-outlined-hover-border:var(--stroke-secondary-hover);--input-variant-outline-ring-color:var(--ring-secondary);--input-variant-underlined-border:var(--stroke-secondary);--input-variant-underlined-hover-border:var(--stroke-secondary-hover);--input-variant-filled:var(--fill-secondary-weak)}:is(.noeffect-LHbgak,.input-noeffect){--input-variant-outlined-border:var(--stroke-noeffect);--input-variant-outlined-hover-border:var(--stroke-noeffect-hover);--input-variant-outline-ring-color:var(--ring-noeffect);--input-variant-underlined-border:var(--stroke-noeffect);--input-variant-underlined-hover-border:var(--stroke-noeffect-hover);--input-variant-filled:var(--fill-noeffect-weak)}:is(.success-pMbTwx,.input-success){--input-variant-outlined-border:var(--stroke-success);--input-variant-outlined-hover-border:var(--stroke-success-hover);--input-variant-outline-ring-color:var(--ring-success);--input-variant-underlined-border:var(--stroke-success);--input-variant-underlined-hover-border:var(--stroke-success-hover);--input-variant-filled:var(--fill-success-weak)}:is(.info-SRpUkb,.input-info){--input-variant-outlined-border:var(--stroke-info);--input-variant-outlined-hover-border:var(--stroke-info-hover);--input-variant-outline-ring-color:var(--ring-info);--input-variant-underlined-border:var(--stroke-info);--input-variant-underlined-hover-border:var(--stroke-info-hover);--input-variant-filled:var(--fill-info-weak)}:is(.warning-mHL8O2,.input-warning){--input-variant-outlined-border:var(--stroke-warning);--input-variant-outlined-hover-border:var(--stroke-warning-hover);--input-variant-outline-ring-color:var(--ring-warning);--input-variant-underlined-border:var(--stroke-warning);--input-variant-underlined-hover-border:var(--stroke-warning-hover);--input-variant-filled:var(--fill-warning-weak)}:is(.danger-Rzx3WQ,.input-danger){--input-variant-outlined-border:var(--stroke-danger);--input-variant-outlined-hover-border:var(--stroke-danger-hover);--input-variant-outline-ring-color:var(--ring-danger);--input-variant-underlined-border:var(--stroke-danger);--input-variant-underlined-hover-border:var(--stroke-danger-hover);--input-variant-filled:var(--fill-danger-weak)}:is(.adornment-IbSUaL,.input-adornment){white-space:nowrap;align-items:center;line-height:0;display:flex}:is(.start-hcDqEk,.input-adornment-start){justify-content:flex-start}:is(.end-j0ZhyO,.input-adornment-end){justify-content:flex-end}:is(.text-area-P_aQjC,.text-area){width:100%;padding:.5rem;font-size:1.1rem}:is(.label-Q88hWY,.label){color:var(--text);font-weight:500;display:block}:is(.required-uod5eu,.label-required){color:var(--error)}:is(.text-xJE0DB,.error-text){color:var(--error);font-size:.875rem}:is(.text-U6KD9f,.help-text){color:var(--muted);font-size:.875rem}:is(.section-CEcZOp,.section){width:100%;position:relative}:is(.scroll-to-top-WYqAAl,.scroll-to-top){opacity:0;visibility:hidden;z-index:20;width:0;height:0;color:var(--text-on-primary);background-color:var(--fill-primary-strong);cursor:pointer;border-style:none;outline:none;justify-content:center;align-items:center;margin:0;padding:0;text-decoration:none;transition:all .3s cubic-bezier(.25,.8,.5,1),color 1ms;display:flex;position:fixed;bottom:45px;right:30px}.scroll-to-top-WYqAAl span,.scroll-to-top span{width:18px;padding-bottom:3px}.scroll-to-top-WYqAAl span svg path,.scroll-to-top span svg path{stroke:none;fill:var(--text-on-primary)}.scroll-to-top-WYqAAl:hover,.scroll-to-top-WYqAAl:focus,.scroll-to-top:hover,.scroll-to-top:focus{color:var(--text-on-primary);background-color:var(--fill-primary-strong-hover);transform:translateY(-5px)}:is(.scroll-to-top-shown-Wemu5m,.scroll-to-top-shown){opacity:1;visibility:visible;border-radius:20px;width:40px;min-width:0;height:40px;padding:0;bottom:20px;right:10px}@media screen and (width>=587px){:is(.scroll-to-top-WYqAAl,.scroll-to-top){bottom:45px;right:45px}.scroll-to-top-WYqAAl span,.scroll-to-top span{width:18px}:is(.scroll-to-top-shown-Wemu5m,.scroll-to-top-shown){border-radius:21px;width:42px;height:42px;bottom:22px;right:22px}}}
|
package/package.json
CHANGED
package/src/astro.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type InputComponent from './components/forms/input.astro'
|
|
|
14
14
|
import type InputAdornmentComponent from './components/forms/input-adornment.astro'
|
|
15
15
|
import type LabelComponent from './components/forms/label.astro'
|
|
16
16
|
import type SectionComponent from './components/section/section.astro'
|
|
17
|
+
import type ScrollToTopComponent from './components/scroll-to-top/scroll-to-top.astro'
|
|
17
18
|
import type CloseIconComponent from './icons/close-icon.astro'
|
|
18
19
|
import type IconElementComponent from './icons/icon-element.astro'
|
|
19
20
|
import type LightIconComponent from './icons/light-icon.astro'
|
|
@@ -41,3 +42,4 @@ export declare const LightIcon: typeof LightIconComponent
|
|
|
41
42
|
export declare const MoonIcon: typeof MoonIconComponent
|
|
42
43
|
export declare const SearchIcon: typeof SearchIconComponent
|
|
43
44
|
export declare const Section: typeof SectionComponent
|
|
45
|
+
export declare const ScrollToTop: typeof ScrollToTopComponent
|
package/src/astro.js
CHANGED
|
@@ -14,12 +14,14 @@ import InputComponent from './components/forms/input.astro'
|
|
|
14
14
|
import InputAdornmentComponent from './components/forms/input-adornment.astro'
|
|
15
15
|
import LabelComponent from './components/forms/label.astro'
|
|
16
16
|
import SectionComponent from './components/section/section.astro'
|
|
17
|
+
import ScrollToTopComponent from './components/scroll-to-top/scroll-to-top.astro'
|
|
17
18
|
import CloseIconComponent from './icons/close-icon.astro'
|
|
18
19
|
import IconElementComponent from './icons/icon-element.astro'
|
|
19
20
|
import LightIconComponent from './icons/light-icon.astro'
|
|
20
21
|
import MoonIconComponent from './icons/moon-icon.astro'
|
|
21
22
|
import SearchIconComponent from './icons/search-icon.astro'
|
|
22
23
|
|
|
24
|
+
|
|
23
25
|
export const Button = ButtonComponent
|
|
24
26
|
export const Hamburger = HamburgerComponent
|
|
25
27
|
export const IconButton = IconButtonComponent
|
|
@@ -36,6 +38,7 @@ export const InputAdornment = InputAdornmentComponent
|
|
|
36
38
|
export const Input = InputComponent
|
|
37
39
|
export const Label = LabelComponent
|
|
38
40
|
export const Section = SectionComponent
|
|
41
|
+
export const ScrollToTop = ScrollToTopComponent
|
|
39
42
|
export const IconElement = IconElementComponent
|
|
40
43
|
export const LightIcon = LightIconComponent
|
|
41
44
|
export const MoonIcon = MoonIconComponent
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
import styles from './scroll-to-top.module.css'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
class?: string
|
|
6
|
+
showAt?: number
|
|
7
|
+
offset?: number
|
|
8
|
+
'aria-label'?: string
|
|
9
|
+
[key: string]: any
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
class: className,
|
|
14
|
+
showAt = 200,
|
|
15
|
+
offset = -65,
|
|
16
|
+
'aria-label': ariaLabel = 'Scroll to top',
|
|
17
|
+
...rest
|
|
18
|
+
} = Astro.props
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
<button
|
|
22
|
+
type="button"
|
|
23
|
+
aria-label={ariaLabel}
|
|
24
|
+
class:list={['scroll-to-top', styles['scroll-to-top'], className]}
|
|
25
|
+
data-show-at={showAt}
|
|
26
|
+
data-offset={offset}
|
|
27
|
+
data-class-shown={styles['scroll-to-top-shown']}
|
|
28
|
+
{...rest}
|
|
29
|
+
>
|
|
30
|
+
<span aria-hidden="true">
|
|
31
|
+
<svg class="icon" style="fill: currentColor" focusable="false" viewBox="0 0 51 32">
|
|
32
|
+
<path d="M25.4,9.8L45.6,30l4.5-4.5L25.4,0.8L0.8,25.4L5.3,30L25.4,9.8z"></path>
|
|
33
|
+
</svg>
|
|
34
|
+
</span>
|
|
35
|
+
</button>
|
|
36
|
+
|
|
37
|
+
<script>
|
|
38
|
+
const buttons = document.querySelectorAll('button.scroll-to-top')
|
|
39
|
+
|
|
40
|
+
buttons.forEach((button) => {
|
|
41
|
+
if (!(button instanceof HTMLElement)) return
|
|
42
|
+
|
|
43
|
+
const showAt = Number(button.dataset.showAt) || 200
|
|
44
|
+
const offset = Number(button.dataset.offset) || -65
|
|
45
|
+
const classShown = button.dataset.classShown
|
|
46
|
+
|
|
47
|
+
if (classShown == null) return
|
|
48
|
+
|
|
49
|
+
// Click Handler
|
|
50
|
+
button.addEventListener('click', () => {
|
|
51
|
+
window.scrollTo({ top: offset, left: 0, behavior: 'smooth' })
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// Scroll Handler
|
|
55
|
+
let ticking = false
|
|
56
|
+
const handleOnScroll = () => {
|
|
57
|
+
if (!ticking) {
|
|
58
|
+
window.requestAnimationFrame(() => {
|
|
59
|
+
const shouldShow = window.scrollY > showAt
|
|
60
|
+
if (shouldShow) {
|
|
61
|
+
button.classList.add(classShown)
|
|
62
|
+
button.classList.add('scroll-to-top-shown')
|
|
63
|
+
} else {
|
|
64
|
+
button.classList.remove(classShown)
|
|
65
|
+
button.classList.remove('scroll-to-top-shown')
|
|
66
|
+
}
|
|
67
|
+
ticking = false
|
|
68
|
+
})
|
|
69
|
+
ticking = true
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
window.addEventListener('scroll', handleOnScroll, { passive: true })
|
|
74
|
+
})
|
|
75
|
+
</script>
|
|
@@ -1,63 +1,81 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
|
|
3
|
-
import type React from 'react'
|
|
4
3
|
import cx from 'classnames'
|
|
5
|
-
import { useEffect, useState } from 'react'
|
|
4
|
+
import { type ComponentProps, useEffect, useState } from 'react'
|
|
6
5
|
|
|
7
|
-
import
|
|
6
|
+
import styles from './scroll-to-top.module.css'
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export interface ScrollToTopProps extends ComponentProps<'button'> {
|
|
9
|
+
/**
|
|
10
|
+
* The scroll position (Y-axis) in pixels that triggers the button to appear.
|
|
11
|
+
* @default 200
|
|
12
|
+
*/
|
|
13
|
+
showAt?: number
|
|
14
|
+
/**
|
|
15
|
+
* The target scroll position (Y-axis) to scroll to when clicked.
|
|
16
|
+
* @default -65
|
|
17
|
+
*/
|
|
11
18
|
offset?: number
|
|
12
19
|
}
|
|
13
20
|
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
ref,
|
|
21
|
+
export function ScrollToTop({
|
|
22
|
+
className,
|
|
23
|
+
showAt = 200,
|
|
18
24
|
offset = -65,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
type = 'button',
|
|
26
|
+
'aria-label': ariaLabel = 'Scroll to top',
|
|
27
|
+
onClick,
|
|
28
|
+
...props
|
|
29
|
+
}: ScrollToTopProps) {
|
|
23
30
|
const [show, setShow] = useState(false)
|
|
24
31
|
|
|
25
|
-
const handleOnClick = (): void => {
|
|
32
|
+
const handleOnClick = (e: React.MouseEvent<HTMLButtonElement>): void => {
|
|
26
33
|
window.scrollTo({ top: offset, left: 0, behavior: 'smooth' })
|
|
34
|
+
onClick?.(e)
|
|
27
35
|
}
|
|
28
36
|
|
|
29
37
|
useEffect(() => {
|
|
38
|
+
let ticking = false
|
|
39
|
+
|
|
30
40
|
const handleOnScroll = (): void => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
if (!ticking) {
|
|
42
|
+
window.requestAnimationFrame(() => {
|
|
43
|
+
setShow(window.scrollY > showAt)
|
|
44
|
+
ticking = false
|
|
45
|
+
})
|
|
46
|
+
ticking = true
|
|
36
47
|
}
|
|
37
|
-
console.log('scrollTop', scrollTop)
|
|
38
|
-
}
|
|
39
|
-
if (typeof window !== 'undefined') {
|
|
40
|
-
window.addEventListener('scroll', handleOnScroll)
|
|
41
48
|
}
|
|
49
|
+
|
|
50
|
+
window.addEventListener('scroll', handleOnScroll, { passive: true })
|
|
42
51
|
return () => {
|
|
43
52
|
window.removeEventListener('scroll', handleOnScroll)
|
|
44
53
|
}
|
|
45
|
-
}, [])
|
|
54
|
+
}, [showAt])
|
|
46
55
|
|
|
47
56
|
return (
|
|
48
57
|
<button
|
|
49
|
-
|
|
50
|
-
{
|
|
58
|
+
type={type}
|
|
59
|
+
aria-label={ariaLabel}
|
|
51
60
|
onClick={handleOnClick}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
className={cx(
|
|
62
|
+
'scroll-to-top',
|
|
63
|
+
styles['scroll-to-top'],
|
|
64
|
+
{
|
|
65
|
+
'scroll-to-top-shown': show,
|
|
66
|
+
[styles['scroll-to-top-shown']]: show,
|
|
67
|
+
},
|
|
68
|
+
className
|
|
69
|
+
)}
|
|
70
|
+
{...props}
|
|
58
71
|
>
|
|
59
|
-
<span>
|
|
60
|
-
<svg
|
|
72
|
+
<span aria-hidden="true">
|
|
73
|
+
<svg
|
|
74
|
+
className="icon"
|
|
75
|
+
style={{ fill: 'currentColor' }}
|
|
76
|
+
focusable="false"
|
|
77
|
+
viewBox="0 0 51 32"
|
|
78
|
+
>
|
|
61
79
|
<path d="M25.4,9.8L45.6,30l4.5-4.5L25.4,0.8L0.8,25.4L5.3,30L25.4,9.8z" />
|
|
62
80
|
</svg>
|
|
63
81
|
</span>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Meta } from '@storybook/react-vite'
|
|
2
|
-
|
|
3
|
-
import { ScrollToTop as ScrollToTopComponent } from './scroll-to-top.js'
|
|
4
|
-
|
|
5
|
-
const meta: Meta = {
|
|
6
|
-
/* 👇 The title prop is optional.
|
|
7
|
-
* See https://storybook.js.org/docs/react/configure/overview#configure-story-loading
|
|
8
|
-
* to learn how to generate automatic titles
|
|
9
|
-
*/
|
|
10
|
-
title: 'Components',
|
|
11
|
-
component: ScrollToTopComponent,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export default meta
|
|
15
|
-
|
|
16
|
-
export const ScrollToTop = (): React.JSX.Element => {
|
|
17
|
-
return (
|
|
18
|
-
<div>
|
|
19
|
-
<div style={{ maxWidth: '600px', height: '160vh', margin: '2rem auto' }}>
|
|
20
|
-
<p>Scroll down to see the button appear.</p>
|
|
21
|
-
</div>
|
|
22
|
-
<ScrollToTopComponent />
|
|
23
|
-
</div>
|
|
24
|
-
)
|
|
25
|
-
}
|