@brijbyte/agentic-ui 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +183 -111
- package/dist/accordion/accordion.css +6 -10
- package/dist/accordion/accordion.d.ts +1 -1
- package/dist/accordion/accordion.js +1 -1
- package/dist/accordion/accordion.module.js.map +1 -1
- package/dist/accordion/parts.d.ts +1 -1
- package/dist/accordion/parts.js +2 -2
- package/dist/alert-dialog/alert-dialog.css +84 -0
- package/dist/alert-dialog/alert-dialog.d.ts +44 -0
- package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog/alert-dialog.js +46 -0
- package/dist/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
- package/dist/alert-dialog/alert-dialog.module.js +14 -0
- package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
- package/dist/alert-dialog/index.d.ts +3 -0
- package/dist/alert-dialog/index.js +4 -0
- package/dist/alert-dialog/parts.d.ts +28 -0
- package/dist/alert-dialog/parts.d.ts.map +1 -0
- package/dist/alert-dialog/parts.js +62 -0
- package/dist/alert-dialog/parts.js.map +1 -0
- package/dist/badge/badge.css +3 -7
- package/dist/badge/badge.d.ts +1 -1
- package/dist/badge/badge.module.js.map +1 -1
- package/dist/button/button.css +36 -22
- package/dist/button/button.d.ts +7 -7
- package/dist/button/button.js +1 -1
- package/dist/button/button.js.map +1 -1
- package/dist/button/button.module.js.map +1 -1
- package/dist/card/card.css +5 -9
- package/dist/card/card.d.ts +1 -1
- package/dist/card/card.module.js.map +1 -1
- package/dist/checkbox/checkbox.css +3 -7
- package/dist/checkbox/checkbox.d.ts +1 -1
- package/dist/checkbox/checkbox.js +1 -1
- package/dist/checkbox/checkbox.module.js.map +1 -1
- package/dist/checkbox/parts.js +1 -1
- package/dist/collapsible/collapsible.css +7 -11
- package/dist/collapsible/collapsible.d.ts +1 -1
- package/dist/collapsible/collapsible.module.js.map +1 -1
- package/dist/collapsible/parts.js +1 -1
- package/dist/context-menu/context-menu.css +151 -0
- package/dist/context-menu/context-menu.d.ts +36 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +54 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/context-menu/context-menu.module.css.d.ts +2 -0
- package/dist/context-menu/context-menu.module.js +18 -0
- package/dist/context-menu/context-menu.module.js.map +1 -0
- package/dist/context-menu/index.d.ts +3 -0
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/parts.d.ts +38 -0
- package/dist/context-menu/parts.d.ts.map +1 -0
- package/dist/context-menu/parts.js +91 -0
- package/dist/context-menu/parts.js.map +1 -0
- package/dist/dialog/dialog.css +27 -22
- package/dist/dialog/dialog.d.ts +9 -1
- package/dist/dialog/dialog.d.ts.map +1 -1
- package/dist/dialog/dialog.js +7 -4
- package/dist/dialog/dialog.js.map +1 -1
- package/dist/dialog/dialog.module.js +2 -0
- package/dist/dialog/dialog.module.js.map +1 -1
- package/dist/dialog/parts.js +1 -1
- package/dist/drawer/drawer.css +9 -13
- package/dist/drawer/drawer.d.ts +1 -1
- package/dist/drawer/drawer.module.js.map +1 -1
- package/dist/drawer/parts.d.ts +1 -1
- package/dist/drawer/parts.js +1 -1
- package/dist/index.css +1603 -1299
- package/dist/index.d.ts +30 -24
- package/dist/index.js +41 -32
- package/dist/input/input.css +5 -9
- package/dist/input/input.js +1 -1
- package/dist/input/input.module.js.map +1 -1
- package/dist/layer-order.css +22 -0
- package/dist/menu/menu.css +13 -17
- package/dist/menu/menu.d.ts +1 -1
- package/dist/menu/menu.module.js.map +1 -1
- package/dist/menu/menuitemshortcut.js +1 -1
- package/dist/menu/parts.js +1 -1
- package/dist/number-field/number-field.css +12 -16
- package/dist/number-field/number-field.d.ts +1 -1
- package/dist/number-field/number-field.js +1 -1
- package/dist/number-field/number-field.module.js.map +1 -1
- package/dist/number-field/parts.js +1 -1
- package/dist/progress/parts.js +1 -1
- package/dist/progress/progress.css +1 -5
- package/dist/progress/progress.module.js.map +1 -1
- package/dist/reset.css +6 -6
- package/dist/select/parts.js +1 -1
- package/dist/select/select.css +14 -16
- package/dist/select/select.d.ts +5 -2
- package/dist/select/select.d.ts.map +1 -1
- package/dist/select/select.js +11 -2
- package/dist/select/select.js.map +1 -1
- package/dist/select/select.module.js.map +1 -1
- package/dist/separator/separator.css +1 -5
- package/dist/separator/separator.js +1 -1
- package/dist/separator/separator.module.js.map +1 -1
- package/dist/slider/index.d.ts +3 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/parts.d.ts +38 -0
- package/dist/slider/parts.d.ts.map +1 -0
- package/dist/slider/parts.js +69 -0
- package/dist/slider/parts.js.map +1 -0
- package/dist/slider/slider.css +97 -0
- package/dist/slider/slider.d.ts +38 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +41 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/slider/slider.module.css.d.ts +2 -0
- package/dist/slider/slider.module.js +15 -0
- package/dist/slider/slider.module.js.map +1 -0
- package/dist/styles/reset.css +6 -6
- package/dist/styles/tokens.css +91 -76
- package/dist/switch/parts.js +1 -1
- package/dist/switch/switch.css +2 -6
- package/dist/switch/switch.d.ts +1 -1
- package/dist/switch/switch.js +1 -1
- package/dist/switch/switch.module.js.map +1 -1
- package/dist/tabs/parts.js +1 -1
- package/dist/tabs/tabs.css +5 -9
- package/dist/tabs/tabs.d.ts +1 -1
- package/dist/tabs/tabs.module.js.map +1 -1
- package/dist/tailwind-theme.css +23 -23
- package/dist/toast/parts.js +1 -1
- package/dist/toast/toast.css +11 -15
- package/dist/toast/toast.d.ts +1 -1
- package/dist/toast/toast.module.js.map +1 -1
- package/dist/tokens.css +98 -82
- package/dist/tooltip/parts.js +1 -1
- package/dist/tooltip/tooltip.css +7 -11
- package/dist/tooltip/tooltip.d.ts +1 -1
- package/dist/tooltip/tooltip.module.js.map +1 -1
- package/package.json +18 -1
- package/src/accordion/accordion.module.css +6 -20
- package/src/alert-dialog/alert-dialog.module.css +91 -0
- package/src/alert-dialog/alert-dialog.tsx +69 -0
- package/src/alert-dialog/index.ts +7 -0
- package/src/alert-dialog/parts.tsx +73 -0
- package/src/badge/badge.module.css +3 -13
- package/src/button/button.module.css +44 -64
- package/src/button/button.tsx +7 -7
- package/src/card/card.module.css +5 -16
- package/src/checkbox/checkbox.module.css +3 -14
- package/src/collapsible/collapsible.module.css +7 -20
- package/src/context-menu/context-menu.module.css +168 -0
- package/src/context-menu/context-menu.tsx +75 -0
- package/src/context-menu/index.ts +21 -0
- package/src/context-menu/parts.tsx +99 -0
- package/src/dialog/dialog.module.css +26 -33
- package/src/dialog/dialog.tsx +14 -1
- package/src/drawer/drawer.module.css +9 -58
- package/src/index.ts +21 -185
- package/src/input/input.module.css +5 -21
- package/src/menu/menu.module.css +13 -43
- package/src/number-field/number-field.module.css +12 -28
- package/src/progress/progress.module.css +1 -10
- package/src/select/select.module.css +14 -35
- package/src/select/select.tsx +14 -5
- package/src/separator/separator.module.css +1 -5
- package/src/slider/index.ts +14 -0
- package/src/slider/parts.tsx +90 -0
- package/src/slider/slider.module.css +110 -0
- package/src/slider/slider.tsx +68 -0
- package/src/styles/layer-order.css +22 -0
- package/src/styles/reset.css +6 -6
- package/src/styles/tailwind-theme.css +23 -23
- package/src/styles/tokens.css +98 -82
- package/src/switch/switch.module.css +2 -12
- package/src/tabs/tabs.module.css +5 -18
- package/src/toast/toast.module.css +11 -51
- package/src/tooltip/tooltip.module.css +7 -18
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.backdrop_xocxMW {
|
|
3
|
+
min-height: 100dvh;
|
|
4
|
+
z-index: var(--z-overlay);
|
|
5
|
+
transition: opacity var(--duration-slow) var(--easing-standard);
|
|
6
|
+
background-color: #0000007a;
|
|
7
|
+
position: fixed;
|
|
8
|
+
inset: 0;
|
|
9
|
+
|
|
10
|
+
@supports (-webkit-touch-callout: none) {
|
|
11
|
+
position: absolute;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.backdrop_xocxMW[data-starting-style], .backdrop_xocxMW[data-ending-style] {
|
|
16
|
+
opacity: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.popup_xocxMW {
|
|
20
|
+
z-index: var(--z-modal);
|
|
21
|
+
background-color: var(--color-elevated);
|
|
22
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
23
|
+
border-radius: var(--radius-2xl);
|
|
24
|
+
box-shadow: var(--shadow-xl);
|
|
25
|
+
padding: var(--space-5) var(--space-6);
|
|
26
|
+
width: min(380px, calc(100vw - var(--space-8)));
|
|
27
|
+
gap: var(--space-3);
|
|
28
|
+
transition: opacity .2s var(--easing-ease-out),
|
|
29
|
+
transform .2s var(--easing-spring);
|
|
30
|
+
outline: none;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
display: flex;
|
|
33
|
+
position: fixed;
|
|
34
|
+
top: 50%;
|
|
35
|
+
left: 50%;
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
transform: translate(-50%, -50%);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.popup_xocxMW[data-starting-style] {
|
|
41
|
+
opacity: 0;
|
|
42
|
+
transform: translate(-50%, -48%) scale(.96);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.popup_xocxMW[data-ending-style] {
|
|
46
|
+
opacity: 0;
|
|
47
|
+
transition: opacity .15s var(--easing-ease-in),
|
|
48
|
+
transform .15s var(--easing-ease-in);
|
|
49
|
+
transform: translate(-50%, -50%) scale(.98);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.header_xocxMW {
|
|
53
|
+
gap: var(--space-1-5);
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
display: flex;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.icon_xocxMW {
|
|
59
|
+
margin-bottom: var(--space-1);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.title_xocxMW {
|
|
63
|
+
font-family: var(--font-sans);
|
|
64
|
+
font-size: var(--font-size-lg);
|
|
65
|
+
font-weight: var(--font-weight-bold);
|
|
66
|
+
color: var(--color-primary);
|
|
67
|
+
line-height: var(--line-height-tight);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.description_xocxMW {
|
|
71
|
+
font-family: var(--font-sans);
|
|
72
|
+
font-size: var(--font-size-md);
|
|
73
|
+
color: var(--color-secondary);
|
|
74
|
+
line-height: var(--line-height-relaxed);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.actions_xocxMW {
|
|
78
|
+
justify-content: flex-end;
|
|
79
|
+
align-items: center;
|
|
80
|
+
gap: var(--space-2);
|
|
81
|
+
padding-top: var(--space-1);
|
|
82
|
+
display: flex;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { ReactElement, ReactNode } from "react";
|
|
3
|
+
import styles from "./alert-dialog.module.css";
|
|
4
|
+
|
|
5
|
+
//#region src/alert-dialog/alert-dialog.d.ts
|
|
6
|
+
interface AlertAction {
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Called when the action button is clicked. The dialog closes automatically. */
|
|
9
|
+
onAction?: () => void;
|
|
10
|
+
/** Renders as a filled accent button — use for the primary confirm action. */
|
|
11
|
+
primary?: boolean;
|
|
12
|
+
/** Renders as a soft destructive button. Sits on the left when combined with other actions. */
|
|
13
|
+
destructive?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface AlertDialogProps {
|
|
16
|
+
open?: boolean;
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
onOpenChange?: (open: boolean, eventDetails: unknown) => void;
|
|
19
|
+
trigger?: ReactElement;
|
|
20
|
+
/** Optional icon shown above the title. */
|
|
21
|
+
icon?: ReactNode;
|
|
22
|
+
title: ReactNode;
|
|
23
|
+
description?: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Action buttons rendered right-aligned.
|
|
26
|
+
* Use `primary: true` for the confirm action (solid), leave unset for cancel (outline).
|
|
27
|
+
* Use `destructive: true` to apply destructive tone to the confirm action.
|
|
28
|
+
*/
|
|
29
|
+
actions: AlertAction[];
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
declare function AlertDialog({
|
|
33
|
+
trigger,
|
|
34
|
+
icon,
|
|
35
|
+
title,
|
|
36
|
+
description,
|
|
37
|
+
actions,
|
|
38
|
+
className,
|
|
39
|
+
onOpenChange,
|
|
40
|
+
...props
|
|
41
|
+
}: AlertDialogProps): react_jsx_runtime0.JSX.Element;
|
|
42
|
+
//#endregion
|
|
43
|
+
export { AlertAction, AlertDialog, AlertDialogProps, styles };
|
|
44
|
+
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../../src/alert-dialog/alert-dialog.tsx"],"mappings":";;;;;UAKiB,WAAA;EACf,KAAA,EAAO,SAAA;;EAEP,QAAA;EAH0B;EAK1B,OAAA;EAJgB;EAMhB,WAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA;EACA,WAAA;EACA,YAAA,IAAgB,IAAA,WAAe,YAAA;EAC/B,OAAA,GAAU,YAAA;EAJK;EAMf,IAAA,GAAO,SAAA;EACP,KAAA,EAAO,SAAA;EACP,WAAA,GAAc,SAAA;EAFP;;;;;EAQP,OAAA,EAAS,WAAA;EACT,SAAA;AAAA;AAAA,iBAGc,WAAA,CAAA;EAAc,OAAA;EAAS,IAAA;EAAM,KAAA;EAAO,WAAA;EAAa,OAAA;EAAS,SAAA;EAAW,YAAA;EAAA,GAAiB;AAAA,GAAS,gBAAA,GAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Button } from "../button/button.js";
|
|
2
|
+
import alert_dialog_module_default from "./alert-dialog.module.js";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
5
|
+
//#region src/alert-dialog/alert-dialog.tsx
|
|
6
|
+
function AlertDialog$1({ trigger, icon, title, description, actions, className, onOpenChange, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsxs(AlertDialog.Root, {
|
|
8
|
+
onOpenChange,
|
|
9
|
+
...props,
|
|
10
|
+
children: [trigger && /* @__PURE__ */ jsx(AlertDialog.Trigger, { render: trigger }), /* @__PURE__ */ jsxs(AlertDialog.Portal, { children: [/* @__PURE__ */ jsx(AlertDialog.Backdrop, { className: alert_dialog_module_default.backdrop }), /* @__PURE__ */ jsxs(AlertDialog.Popup, {
|
|
11
|
+
className: `${alert_dialog_module_default.popup} ${className ?? ""}`,
|
|
12
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
13
|
+
className: alert_dialog_module_default.header,
|
|
14
|
+
children: [
|
|
15
|
+
icon && /* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: alert_dialog_module_default.icon,
|
|
17
|
+
children: icon
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ jsx(AlertDialog.Title, {
|
|
20
|
+
className: alert_dialog_module_default.title,
|
|
21
|
+
children: title
|
|
22
|
+
}),
|
|
23
|
+
description && /* @__PURE__ */ jsx(AlertDialog.Description, {
|
|
24
|
+
className: alert_dialog_module_default.description,
|
|
25
|
+
children: description
|
|
26
|
+
})
|
|
27
|
+
]
|
|
28
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
29
|
+
className: alert_dialog_module_default.actions,
|
|
30
|
+
children: actions.map((action, i) => /* @__PURE__ */ jsx(AlertDialog.Close, {
|
|
31
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
32
|
+
variant: action.primary ? "solid" : "outline",
|
|
33
|
+
tone: action.destructive ? "destructive" : "primary",
|
|
34
|
+
size: "sm",
|
|
35
|
+
onClick: action.onAction
|
|
36
|
+
}),
|
|
37
|
+
children: action.label
|
|
38
|
+
}, i))
|
|
39
|
+
})]
|
|
40
|
+
})] })]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { AlertDialog$1 as AlertDialog };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=alert-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.js","names":["AlertDialog","BaseAlertDialog","styles"],"sources":["../../src/alert-dialog/alert-dialog.tsx"],"sourcesContent":["import type { ReactNode, ReactElement } from \"react\";\nimport { AlertDialog as BaseAlertDialog } from \"@base-ui/react/alert-dialog\";\nimport { Button } from \"../button/button\";\nimport styles from \"./alert-dialog.module.css\";\n\nexport interface AlertAction {\n label: ReactNode;\n /** Called when the action button is clicked. The dialog closes automatically. */\n onAction?: () => void;\n /** Renders as a filled accent button — use for the primary confirm action. */\n primary?: boolean;\n /** Renders as a soft destructive button. Sits on the left when combined with other actions. */\n destructive?: boolean;\n}\n\nexport interface AlertDialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean, eventDetails: unknown) => void;\n trigger?: ReactElement;\n /** Optional icon shown above the title. */\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n /**\n * Action buttons rendered right-aligned.\n * Use `primary: true` for the confirm action (solid), leave unset for cancel (outline).\n * Use `destructive: true` to apply destructive tone to the confirm action.\n */\n actions: AlertAction[];\n className?: string;\n}\n\nexport function AlertDialog({ trigger, icon, title, description, actions, className, onOpenChange, ...props }: AlertDialogProps) {\n return (\n <BaseAlertDialog.Root onOpenChange={onOpenChange as never} {...props}>\n {trigger && <BaseAlertDialog.Trigger render={trigger} />}\n <BaseAlertDialog.Portal>\n <BaseAlertDialog.Backdrop className={styles.backdrop} />\n <BaseAlertDialog.Popup className={`${styles.popup} ${className ?? \"\"}`}>\n <div className={styles.header}>\n {icon && <div className={styles.icon}>{icon}</div>}\n <BaseAlertDialog.Title className={styles.title}>{title}</BaseAlertDialog.Title>\n {description && <BaseAlertDialog.Description className={styles.description}>{description}</BaseAlertDialog.Description>}\n </div>\n <div className={styles.actions}>\n {actions.map((action, i) => (\n <BaseAlertDialog.Close\n key={i}\n render={\n <Button\n variant={action.primary ? \"solid\" : \"outline\"}\n tone={action.destructive ? \"destructive\" : \"primary\"}\n size=\"sm\"\n onClick={action.onAction}\n />\n }\n >\n {action.label}\n </BaseAlertDialog.Close>\n ))}\n </div>\n </BaseAlertDialog.Popup>\n </BaseAlertDialog.Portal>\n </BaseAlertDialog.Root>\n );\n}\n\nexport { styles as AlertDialogStyles };\n"],"mappings":";;;;;AAiCA,SAAgBA,cAAY,EAAE,SAAS,MAAM,OAAO,aAAa,SAAS,WAAW,cAAc,GAAG,SAA2B;AAC/H,QACE,qBAACC,YAAgB,MAAjB;EAAoC;EAAuB,GAAI;YAA/D,CACG,WAAW,oBAACA,YAAgB,SAAjB,EAAyB,QAAQ,SAAW,CAAA,EACxD,qBAACA,YAAgB,QAAjB,EAAA,UAAA,CACE,oBAACA,YAAgB,UAAjB,EAA0B,WAAWC,4BAAO,UAAY,CAAA,EACxD,qBAACD,YAAgB,OAAjB;GAAuB,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;aAAlE,CACE,qBAAC,OAAD;IAAK,WAAWA,4BAAO;cAAvB;KACG,QAAQ,oBAAC,OAAD;MAAK,WAAWA,4BAAO;gBAAO;MAAW,CAAA;KAClD,oBAACD,YAAgB,OAAjB;MAAuB,WAAWC,4BAAO;gBAAQ;MAA8B,CAAA;KAC9E,eAAe,oBAACD,YAAgB,aAAjB;MAA6B,WAAWC,4BAAO;gBAAc;MAA0C,CAAA;KACnH;OACN,oBAAC,OAAD;IAAK,WAAWA,4BAAO;cACpB,QAAQ,KAAK,QAAQ,MACpB,oBAACD,YAAgB,OAAjB;KAEE,QACE,oBAAC,QAAD;MACE,SAAS,OAAO,UAAU,UAAU;MACpC,MAAM,OAAO,cAAc,gBAAgB;MAC3C,MAAK;MACL,SAAS,OAAO;MAChB,CAAA;eAGH,OAAO;KACc,EAXjB,EAWiB,CACxB;IACE,CAAA,CACgB;KACD,EAAA,CAAA,CACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/alert-dialog/alert-dialog.module.css
|
|
2
|
+
var alert_dialog_module_default = {
|
|
3
|
+
"actions": "actions_xocxMW",
|
|
4
|
+
"backdrop": "backdrop_xocxMW",
|
|
5
|
+
"description": "description_xocxMW",
|
|
6
|
+
"header": "header_xocxMW",
|
|
7
|
+
"icon": "icon_xocxMW",
|
|
8
|
+
"popup": "popup_xocxMW",
|
|
9
|
+
"title": "title_xocxMW"
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { alert_dialog_module_default as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=alert-dialog.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.module.js","names":[],"sources":["../../src/alert-dialog/alert-dialog.module.css"],"sourcesContent":["@layer components {\n .backdrop {\n position: fixed;\n inset: 0;\n min-height: 100dvh;\n background-color: rgba(0, 0, 0, 0.48);\n z-index: var(--z-overlay);\n transition: opacity var(--duration-slow) var(--easing-standard);\n\n @supports (-webkit-touch-callout: none) {\n position: absolute;\n }\n }\n\n .backdrop[data-starting-style],\n .backdrop[data-ending-style] {\n opacity: 0;\n }\n\n .popup {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: var(--z-modal);\n background-color: var(--color-elevated);\n border: var(--border-width-base) solid var(--color-line);\n border-radius: var(--radius-2xl);\n box-shadow: var(--shadow-xl);\n padding: var(--space-5) var(--space-6);\n width: min(380px, calc(100vw - var(--space-8)));\n outline: none;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n transition:\n opacity 200ms var(--easing-ease-out),\n transform 200ms var(--easing-spring);\n }\n\n .popup[data-starting-style] {\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.96);\n }\n\n .popup[data-ending-style] {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.98);\n transition:\n opacity 150ms var(--easing-ease-in),\n transform 150ms var(--easing-ease-in);\n }\n\n /* ─── Header ──────────────────────────────────────────────────── */\n\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--space-1-5);\n }\n\n .icon {\n margin-bottom: var(--space-1);\n }\n\n .title {\n font-family: var(--font-sans);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-bold);\n color: var(--color-primary);\n line-height: var(--line-height-tight);\n }\n\n .description {\n font-family: var(--font-sans);\n font-size: var(--font-size-md);\n color: var(--color-secondary);\n line-height: var(--line-height-relaxed);\n }\n\n /* ─── Actions ─────────────────────────────────────────────────── */\n\n .actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--space-2);\n padding-top: var(--space-1);\n }\n}\n"],"mappings":";AAcA,IAAA,8BAAY;CAAI,WAAU;CAAM,YAAA;CAAA,eAAA;CAAA,UAAA;CAAA,QAAA;CAAA,SAAA;CAAA,SAAA;CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AlertAction, AlertDialog, AlertDialogProps, styles } from "./alert-dialog.js";
|
|
2
|
+
import { AlertDialogBackdrop, AlertDialogBackdropProps, AlertDialogDescription, AlertDialogDescriptionProps, AlertDialogPopup, AlertDialogPopupProps, AlertDialogTitle, AlertDialogTitleProps } from "./parts.js";
|
|
3
|
+
export { type AlertAction, AlertDialog, AlertDialogBackdrop, type AlertDialogBackdropProps, AlertDialogDescription, type AlertDialogDescriptionProps, AlertDialogPopup, type AlertDialogPopupProps, type AlertDialogProps, styles as AlertDialogStyles, AlertDialogTitle, type AlertDialogTitleProps };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import alert_dialog_module_default from "./alert-dialog.module.js";
|
|
2
|
+
import { AlertDialog } from "./alert-dialog.js";
|
|
3
|
+
import { AlertDialogBackdrop, AlertDialogDescription, AlertDialogPopup, AlertDialogTitle } from "./parts.js";
|
|
4
|
+
export { AlertDialog, AlertDialogBackdrop, AlertDialogDescription, AlertDialogPopup, alert_dialog_module_default as AlertDialogStyles, AlertDialogTitle };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as react from "react";
|
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
4
|
+
|
|
5
|
+
//#region src/alert-dialog/parts.d.ts
|
|
6
|
+
type BaseBackdropProps = ComponentPropsWithoutRef<typeof AlertDialog.Backdrop>;
|
|
7
|
+
type BasePopupProps = ComponentPropsWithoutRef<typeof AlertDialog.Popup>;
|
|
8
|
+
type BaseTitleProps = ComponentPropsWithoutRef<typeof AlertDialog.Title>;
|
|
9
|
+
type BaseDescriptionProps = ComponentPropsWithoutRef<typeof AlertDialog.Description>;
|
|
10
|
+
interface AlertDialogBackdropProps extends Omit<BaseBackdropProps, "className"> {
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
interface AlertDialogPopupProps extends Omit<BasePopupProps, "className"> {
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
interface AlertDialogTitleProps extends Omit<BaseTitleProps, "className"> {
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
interface AlertDialogDescriptionProps extends Omit<BaseDescriptionProps, "className"> {
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
declare const AlertDialogBackdrop: react.ForwardRefExoticComponent<AlertDialogBackdropProps & react.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
declare const AlertDialogPopup: react.ForwardRefExoticComponent<AlertDialogPopupProps & react.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
declare const AlertDialogTitle: react.ForwardRefExoticComponent<AlertDialogTitleProps & react.RefAttributes<HTMLHeadingElement>>;
|
|
25
|
+
declare const AlertDialogDescription: react.ForwardRefExoticComponent<AlertDialogDescriptionProps & react.RefAttributes<HTMLParagraphElement>>;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { AlertDialogBackdrop, AlertDialogBackdropProps, AlertDialogDescription, AlertDialogDescriptionProps, AlertDialogPopup, AlertDialogPopupProps, AlertDialogTitle, AlertDialogTitleProps };
|
|
28
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/alert-dialog/parts.tsx"],"mappings":";;;;;KA8BK,iBAAA,GAAoB,wBAAA,QAAgC,WAAA,CAAgB,QAAA;AAAA,KACpE,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,oBAAA,GAAuB,wBAAA,QAAgC,WAAA,CAAgB,WAAA;AAAA,UAE3D,wBAAA,SAAiC,IAAA,CAAK,iBAAA;EACrD,SAAA;AAAA;AAAA,UAEe,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,2BAAA,SAAoC,IAAA,CAAK,oBAAA;EACxD,SAAA;AAAA;AAAA,cAGW,mBAAA,EAAmB,KAAA,CAAA,yBAAA,CAAA,wBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAMnB,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOhB,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,kBAAA;AAAA,cAOhB,sBAAA,EAAsB,KAAA,CAAA,yBAAA,CAAA,2BAAA,GAAA,KAAA,CAAA,aAAA,CAAA,oBAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import alert_dialog_module_default from "./alert-dialog.module.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
5
|
+
//#region src/alert-dialog/parts.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Styled primitives for AlertDialog.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { AlertDialog as BaseAlertDialog } from '@base-ui/react/alert-dialog';
|
|
12
|
+
* import { Button } from '@brijbyte/agentic-ui/button';
|
|
13
|
+
* import { AlertDialogBackdrop, AlertDialogPopup, AlertDialogTitle, AlertDialogDescription } from '@brijbyte/agentic-ui/alert-dialog';
|
|
14
|
+
*
|
|
15
|
+
* <BaseAlertDialog.Root>
|
|
16
|
+
* <BaseAlertDialog.Trigger render={<button>Open</button>} />
|
|
17
|
+
* <BaseAlertDialog.Portal>
|
|
18
|
+
* <AlertDialogBackdrop />
|
|
19
|
+
* <AlertDialogPopup>
|
|
20
|
+
* <AlertDialogTitle>Delete account?</AlertDialogTitle>
|
|
21
|
+
* <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>
|
|
22
|
+
* <div>
|
|
23
|
+
* <BaseAlertDialog.Close render={<Button variant="soft" tone="destructive" size="sm" />}>Delete</BaseAlertDialog.Close>
|
|
24
|
+
* <BaseAlertDialog.Close render={<Button variant="outline" size="sm" />}>Cancel</BaseAlertDialog.Close>
|
|
25
|
+
* </div>
|
|
26
|
+
* </AlertDialogPopup>
|
|
27
|
+
* </BaseAlertDialog.Portal>
|
|
28
|
+
* </BaseAlertDialog.Root>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const AlertDialogBackdrop = forwardRef(function AlertDialogBackdrop({ className, ...props }, ref) {
|
|
32
|
+
return /* @__PURE__ */ jsx(AlertDialog.Backdrop, {
|
|
33
|
+
ref,
|
|
34
|
+
className: `${alert_dialog_module_default.backdrop} ${className ?? ""}`,
|
|
35
|
+
...props
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
const AlertDialogPopup = forwardRef(function AlertDialogPopup({ className, ...props }, ref) {
|
|
39
|
+
return /* @__PURE__ */ jsx(AlertDialog.Popup, {
|
|
40
|
+
ref,
|
|
41
|
+
className: `${alert_dialog_module_default.popup} ${className ?? ""}`,
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
const AlertDialogTitle = forwardRef(function AlertDialogTitle({ className, ...props }, ref) {
|
|
46
|
+
return /* @__PURE__ */ jsx(AlertDialog.Title, {
|
|
47
|
+
ref,
|
|
48
|
+
className: `${alert_dialog_module_default.title} ${className ?? ""}`,
|
|
49
|
+
...props
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
const AlertDialogDescription = forwardRef(function AlertDialogDescription({ className, ...props }, ref) {
|
|
53
|
+
return /* @__PURE__ */ jsx(AlertDialog.Description, {
|
|
54
|
+
ref,
|
|
55
|
+
className: `${alert_dialog_module_default.description} ${className ?? ""}`,
|
|
56
|
+
...props
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//#endregion
|
|
60
|
+
export { AlertDialogBackdrop, AlertDialogDescription, AlertDialogPopup, AlertDialogTitle };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseAlertDialog","styles"],"sources":["../../src/alert-dialog/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for AlertDialog.\n *\n * @example\n * ```tsx\n * import { AlertDialog as BaseAlertDialog } from '@base-ui/react/alert-dialog';\n * import { Button } from '@brijbyte/agentic-ui/button';\n * import { AlertDialogBackdrop, AlertDialogPopup, AlertDialogTitle, AlertDialogDescription } from '@brijbyte/agentic-ui/alert-dialog';\n *\n * <BaseAlertDialog.Root>\n * <BaseAlertDialog.Trigger render={<button>Open</button>} />\n * <BaseAlertDialog.Portal>\n * <AlertDialogBackdrop />\n * <AlertDialogPopup>\n * <AlertDialogTitle>Delete account?</AlertDialogTitle>\n * <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>\n * <div>\n * <BaseAlertDialog.Close render={<Button variant=\"soft\" tone=\"destructive\" size=\"sm\" />}>Delete</BaseAlertDialog.Close>\n * <BaseAlertDialog.Close render={<Button variant=\"outline\" size=\"sm\" />}>Cancel</BaseAlertDialog.Close>\n * </div>\n * </AlertDialogPopup>\n * </BaseAlertDialog.Portal>\n * </BaseAlertDialog.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { AlertDialog as BaseAlertDialog } from \"@base-ui/react/alert-dialog\";\nimport styles from \"./alert-dialog.module.css\";\n\ntype BaseBackdropProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Backdrop>;\ntype BasePopupProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Popup>;\ntype BaseTitleProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Title>;\ntype BaseDescriptionProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Description>;\n\nexport interface AlertDialogBackdropProps extends Omit<BaseBackdropProps, \"className\"> {\n className?: string;\n}\nexport interface AlertDialogPopupProps extends Omit<BasePopupProps, \"className\"> {\n className?: string;\n}\nexport interface AlertDialogTitleProps extends Omit<BaseTitleProps, \"className\"> {\n className?: string;\n}\nexport interface AlertDialogDescriptionProps extends Omit<BaseDescriptionProps, \"className\"> {\n className?: string;\n}\n\nexport const AlertDialogBackdrop = forwardRef<ComponentRef<typeof BaseAlertDialog.Backdrop>, AlertDialogBackdropProps>(\n function AlertDialogBackdrop({ className, ...props }, ref) {\n return <BaseAlertDialog.Backdrop ref={ref} className={`${styles.backdrop} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const AlertDialogPopup = forwardRef<ComponentRef<typeof BaseAlertDialog.Popup>, AlertDialogPopupProps>(function AlertDialogPopup(\n { className, ...props },\n ref,\n) {\n return <BaseAlertDialog.Popup ref={ref} className={`${styles.popup} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const AlertDialogTitle = forwardRef<ComponentRef<typeof BaseAlertDialog.Title>, AlertDialogTitleProps>(function AlertDialogTitle(\n { className, ...props },\n ref,\n) {\n return <BaseAlertDialog.Title ref={ref} className={`${styles.title} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const AlertDialogDescription = forwardRef<ComponentRef<typeof BaseAlertDialog.Description>, AlertDialogDescriptionProps>(\n function AlertDialogDescription({ className, ...props }, ref) {\n return <BaseAlertDialog.Description ref={ref} className={`${styles.description} ${className ?? \"\"}`} {...props} />;\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAa,sBAAsB,WACjC,SAAS,oBAAoB,EAAE,WAAW,GAAG,SAAS,KAAK;AACzD,QAAO,oBAACA,YAAgB,UAAjB;EAA+B;EAAK,WAAW,GAAGC,4BAAO,SAAS,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAE/G;AAED,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,YAAgB,OAAjB;EAA4B;EAAK,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACtG;AAEF,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,YAAgB,OAAjB;EAA4B;EAAK,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACtG;AAEF,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC5D,QAAO,oBAACD,YAAgB,aAAjB;EAAkC;EAAK,WAAW,GAAGC,4BAAO,YAAY,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAErH"}
|
package/dist/badge/badge.css
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@layer theme, base;
|
|
2
|
-
|
|
3
1
|
@layer components {
|
|
4
2
|
.root_fRZpDq {
|
|
5
3
|
align-items: center;
|
|
@@ -18,14 +16,14 @@
|
|
|
18
16
|
|
|
19
17
|
.variant-default_fRZpDq {
|
|
20
18
|
background-color: var(--color-surface-3);
|
|
21
|
-
border-color: var(--color-
|
|
22
|
-
color: var(--color-
|
|
19
|
+
border-color: var(--color-line);
|
|
20
|
+
color: var(--color-secondary);
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
.variant-solid_fRZpDq {
|
|
26
24
|
background-color: var(--color-accent);
|
|
27
25
|
border-color: var(--color-accent);
|
|
28
|
-
color: var(--color-
|
|
26
|
+
color: var(--color-on-accent);
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
.variant-soft_fRZpDq {
|
|
@@ -66,5 +64,3 @@
|
|
|
66
64
|
height: 5px;
|
|
67
65
|
}
|
|
68
66
|
}
|
|
69
|
-
|
|
70
|
-
@layer utilities;
|
package/dist/badge/badge.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.module.js","names":[],"sources":["../../src/badge/badge.module.css"],"sourcesContent":["@layer
|
|
1
|
+
{"version":3,"file":"badge.module.js","names":[],"sources":["../../src/badge/badge.module.css"],"sourcesContent":["@layer components {\n .root {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-wide);\n line-height: 1;\n border-radius: var(--radius-sm);\n border: var(--border-width-base) solid transparent;\n padding: 2px var(--space-1-5);\n white-space: nowrap;\n }\n /* Variants */\n .variant-default {\n background-color: var(--color-surface-3);\n border-color: var(--color-line);\n color: var(--color-secondary);\n }\n .variant-solid {\n background-color: var(--color-accent);\n border-color: var(--color-accent);\n color: var(--color-on-accent);\n }\n .variant-soft {\n background-color: var(--color-accent-tint);\n border-color: var(--color-accent-tint-hover);\n color: var(--color-accent);\n }\n .variant-success {\n background-color: var(--color-success-bg);\n border-color: var(--color-success-border);\n color: var(--color-success-text);\n }\n .variant-warning {\n background-color: var(--color-warning-bg);\n border-color: var(--color-warning-border);\n color: var(--color-warning-text);\n }\n .variant-error {\n background-color: var(--color-error-bg);\n border-color: var(--color-error-border);\n color: var(--color-error-text);\n }\n .variant-info {\n background-color: var(--color-info-bg);\n border-color: var(--color-info-border);\n color: var(--color-info-text);\n }\n /* Dot indicator */\n .dot {\n width: 5px;\n height: 5px;\n border-radius: var(--radius-full);\n background-color: currentColor;\n flex-shrink: 0;\n }\n}\n"],"mappings":";AAkBA,IAAA,uBAAW;CAAK,OAAM;CAAa,QAAA;CAAA,mBAAA;CAAA,iBAAA;CAAA,gBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA,mBAAA;CAAA,mBAAA;CAAA"}
|
package/dist/button/button.css
CHANGED
|
@@ -86,48 +86,53 @@
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
.tone-primary_4j5AgW {
|
|
89
|
-
--btn-color: var(--color-accent);
|
|
89
|
+
--btn-color: var(--color-accent-solid);
|
|
90
90
|
--btn-color-hover: var(--color-accent-hover);
|
|
91
91
|
--btn-color-pressed: var(--color-accent-pressed);
|
|
92
|
+
--btn-text-color: var(--color-accent-text);
|
|
92
93
|
--btn-tint: var(--color-accent-tint);
|
|
93
94
|
--btn-tint-hover: var(--color-accent-tint-hover);
|
|
94
|
-
--btn-on-color: var(--color-
|
|
95
|
+
--btn-on-color: var(--color-on-accent);
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
.tone-secondary_4j5AgW {
|
|
98
|
-
--btn-color: var(--color-
|
|
99
|
-
--btn-color-hover: var(--color-
|
|
100
|
-
--btn-color-pressed: var(--color-
|
|
101
|
-
--btn-
|
|
102
|
-
--btn-tint
|
|
103
|
-
--btn-
|
|
99
|
+
--btn-color: var(--color-secondary);
|
|
100
|
+
--btn-color-hover: var(--color-primary);
|
|
101
|
+
--btn-color-pressed: var(--color-primary);
|
|
102
|
+
--btn-text-color: var(--color-secondary);
|
|
103
|
+
--btn-tint: var(--color-hover);
|
|
104
|
+
--btn-tint-hover: var(--color-active);
|
|
105
|
+
--btn-on-color: var(--color-canvas);
|
|
104
106
|
}
|
|
105
107
|
|
|
106
108
|
.tone-destructive_4j5AgW {
|
|
107
109
|
--btn-color: var(--color-error-solid);
|
|
108
110
|
--btn-color-hover: var(--color-error-solid);
|
|
109
111
|
--btn-color-pressed: var(--color-error-solid);
|
|
112
|
+
--btn-text-color: var(--color-error-text);
|
|
110
113
|
--btn-tint: var(--color-error-bg);
|
|
111
114
|
--btn-tint-hover: var(--color-error-bg);
|
|
112
|
-
--btn-on-color:
|
|
115
|
+
--btn-on-color: var(--color-error-on-solid);
|
|
113
116
|
}
|
|
114
117
|
|
|
115
118
|
.tone-success_4j5AgW {
|
|
116
119
|
--btn-color: var(--color-success-solid);
|
|
117
120
|
--btn-color-hover: var(--color-success-solid);
|
|
118
121
|
--btn-color-pressed: var(--color-success-solid);
|
|
122
|
+
--btn-text-color: var(--color-success-text);
|
|
119
123
|
--btn-tint: var(--color-success-bg);
|
|
120
124
|
--btn-tint-hover: var(--color-success-bg);
|
|
121
|
-
--btn-on-color:
|
|
125
|
+
--btn-on-color: var(--color-success-on-solid);
|
|
122
126
|
}
|
|
123
127
|
|
|
124
128
|
.tone-warning_4j5AgW {
|
|
125
129
|
--btn-color: var(--color-warning-solid);
|
|
126
130
|
--btn-color-hover: var(--color-warning-solid);
|
|
127
131
|
--btn-color-pressed: var(--color-warning-solid);
|
|
132
|
+
--btn-text-color: var(--color-warning-text);
|
|
128
133
|
--btn-tint: var(--color-warning-bg);
|
|
129
134
|
--btn-tint-hover: var(--color-warning-bg);
|
|
130
|
-
--btn-on-color:
|
|
135
|
+
--btn-on-color: var(--color-warning-on-solid);
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
.variant-solid_4j5AgW {
|
|
@@ -162,7 +167,7 @@
|
|
|
162
167
|
|
|
163
168
|
.variant-soft_4j5AgW {
|
|
164
169
|
background-color: var(--btn-tint);
|
|
165
|
-
color: var(--btn-color);
|
|
170
|
+
color: var(--btn-text-color);
|
|
166
171
|
border-color: #0000;
|
|
167
172
|
}
|
|
168
173
|
|
|
@@ -176,34 +181,43 @@
|
|
|
176
181
|
}
|
|
177
182
|
|
|
178
183
|
.variant-outline_4j5AgW {
|
|
179
|
-
border-color: var(--color-
|
|
180
|
-
color: var(--color-
|
|
184
|
+
border-color: var(--color-line-strong);
|
|
185
|
+
color: var(--color-primary);
|
|
181
186
|
background-color: #0000;
|
|
182
187
|
}
|
|
183
188
|
|
|
189
|
+
.variant-outline_4j5AgW:not(.tone-secondary_4j5AgW) {
|
|
190
|
+
border-color: var(--btn-text-color);
|
|
191
|
+
color: var(--btn-text-color);
|
|
192
|
+
}
|
|
193
|
+
|
|
184
194
|
.variant-outline_4j5AgW:hover:not([data-disabled]) {
|
|
185
|
-
background-color: var(--color-
|
|
186
|
-
border-color: var(--btn-color);
|
|
187
|
-
color: var(--btn-color);
|
|
195
|
+
background-color: var(--color-hover);
|
|
196
|
+
border-color: var(--btn-text-color);
|
|
197
|
+
color: var(--btn-text-color);
|
|
188
198
|
}
|
|
189
199
|
|
|
190
200
|
.variant-outline_4j5AgW:active:not([data-disabled]), .variant-outline_4j5AgW[data-pressed]:not([data-disabled]) {
|
|
191
|
-
background-color: var(--color-
|
|
201
|
+
background-color: var(--color-active);
|
|
192
202
|
}
|
|
193
203
|
|
|
194
204
|
.variant-ghost_4j5AgW {
|
|
195
|
-
color: var(--color-
|
|
205
|
+
color: var(--color-secondary);
|
|
196
206
|
background-color: #0000;
|
|
197
207
|
border-color: #0000;
|
|
198
208
|
}
|
|
199
209
|
|
|
210
|
+
.variant-ghost_4j5AgW:not(.tone-secondary_4j5AgW) {
|
|
211
|
+
color: var(--btn-text-color);
|
|
212
|
+
}
|
|
213
|
+
|
|
200
214
|
.variant-ghost_4j5AgW:hover:not([data-disabled]) {
|
|
201
|
-
background-color: var(--color-
|
|
202
|
-
color: var(--btn-color);
|
|
215
|
+
background-color: var(--color-hover);
|
|
216
|
+
color: var(--btn-text-color);
|
|
203
217
|
}
|
|
204
218
|
|
|
205
219
|
.variant-ghost_4j5AgW:active:not([data-disabled]), .variant-ghost_4j5AgW[data-pressed]:not([data-disabled]) {
|
|
206
|
-
background-color: var(--color-
|
|
220
|
+
background-color: var(--color-active);
|
|
207
221
|
}
|
|
208
222
|
|
|
209
223
|
.loader_4j5AgW {
|
package/dist/button/button.d.ts
CHANGED
|
@@ -9,18 +9,18 @@ type ButtonSize = "xs" | "sm" | "md" | "lg";
|
|
|
9
9
|
interface ButtonProps extends ComponentPropsWithoutRef<"button"> {
|
|
10
10
|
variant?: ButtonVariant;
|
|
11
11
|
/** Semantic color. Defaults to "primary". */
|
|
12
|
-
tone?: ButtonTone;
|
|
13
|
-
size?: ButtonSize;
|
|
14
|
-
loading?: boolean;
|
|
12
|
+
tone?: ButtonTone | undefined;
|
|
13
|
+
size?: ButtonSize | undefined;
|
|
14
|
+
loading?: boolean | undefined;
|
|
15
15
|
/**
|
|
16
16
|
* Text shown in place of children while loading.
|
|
17
17
|
* When provided the button width adapts to this text (variable width).
|
|
18
18
|
* When omitted, children stay rendered invisibly — width stays stable.
|
|
19
19
|
*/
|
|
20
|
-
loadingText?: string;
|
|
21
|
-
iconOnly?: boolean;
|
|
22
|
-
render?: ReactElement;
|
|
23
|
-
nativeButton?: boolean;
|
|
20
|
+
loadingText?: string | undefined;
|
|
21
|
+
iconOnly?: boolean | undefined;
|
|
22
|
+
render?: ReactElement | undefined;
|
|
23
|
+
nativeButton?: boolean | undefined;
|
|
24
24
|
}
|
|
25
25
|
declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
26
26
|
//#endregion
|
package/dist/button/button.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import button_module_default from "./button.module.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import { forwardRef } from "react";
|
|
3
4
|
import { Button } from "@base-ui/react/button";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/button/button.tsx
|
|
6
6
|
const Button$1 = forwardRef(function Button$2({ variant = "solid", tone = "primary", size = "md", loading = false, loadingText, iconOnly = false, nativeButton = true, disabled, className, children, render, ...props }, ref) {
|
|
7
7
|
return /* @__PURE__ */ jsxs(Button, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","names":["Button","BaseButton","styles"],"sources":["../../src/button/button.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactElement } from \"react\";\nimport { Button as BaseButton } from \"@base-ui/react/button\";\nimport styles from \"./button.module.css\";\n\nexport type ButtonVariant = \"solid\" | \"soft\" | \"outline\" | \"ghost\";\nexport type ButtonTone = \"primary\" | \"secondary\" | \"destructive\" | \"success\" | \"warning\";\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n variant?: ButtonVariant;\n /** Semantic color. Defaults to \"primary\". */\n tone?: ButtonTone;\n size?: ButtonSize;\n loading?: boolean;\n /**\n * Text shown in place of children while loading.\n * When provided the button width adapts to this text (variable width).\n * When omitted, children stay rendered invisibly — width stays stable.\n */\n loadingText?: string;\n iconOnly?: boolean;\n render?: ReactElement;\n nativeButton?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = \"solid\",\n tone = \"primary\",\n size = \"md\",\n loading = false,\n loadingText,\n iconOnly = false,\n nativeButton = true,\n disabled,\n className,\n children,\n render,\n ...props\n },\n ref,\n) {\n const classes = [\n styles.root,\n styles[`variant-${variant}`],\n styles[`tone-${tone}`],\n styles[`size-${size}`],\n iconOnly ? styles[\"icon-only\"] : \"\",\n className ?? \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <BaseButton ref={ref} className={classes} disabled={disabled ?? loading} render={render} nativeButton={nativeButton} {...props}>\n <span className={`${styles.loader} ${loading && !loadingText ? styles[\"loader-visible\"] : \"\"}`} aria-hidden=\"true\">\n <span className={styles.spinner} />\n </span>\n <span className={loading && !loadingText ? styles[\"content-loading\"] : undefined}>\n {loading && loadingText ? loadingText : children}\n </span>\n </BaseButton>\n );\n});\n\nexport { styles as ButtonStyles };\n"],"mappings":";;;;;AA0BA,MAAaA,WAAS,WAA2C,SAASA,SACxE,EACE,UAAU,SACV,OAAO,WACP,OAAO,MACP,UAAU,OACV,aACA,WAAW,OACX,eAAe,MACf,UACA,WACA,UACA,QACA,GAAG,SAEL,KACA;AAYA,QACE,qBAACC,QAAD;EAAiB;EAAK,WAZR;GACdC,sBAAO;GACPA,sBAAO,WAAW;GAClBA,sBAAO,QAAQ;GACfA,sBAAO,QAAQ;GACf,WAAWA,sBAAO,eAAe;GACjC,aAAa;GACd,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EAGgC,UAAU,YAAY;EAAiB;EAAsB;EAAc,GAAI;YAAzH,CACE,oBAAC,QAAD;GAAM,WAAW,GAAGA,sBAAO,OAAO,GAAG,WAAW,CAAC,cAAcA,sBAAO,oBAAoB;GAAM,eAAY;aAC1G,oBAAC,QAAD,EAAM,WAAWA,sBAAO,SAAW,CAAA;GAC9B,CAAA,EACP,oBAAC,QAAD;GAAM,WAAW,WAAW,CAAC,cAAcA,sBAAO,qBAAqB,KAAA;aACpE,WAAW,cAAc,cAAc;GACnC,CAAA,CACI;;EAEf"}
|
|
1
|
+
{"version":3,"file":"button.js","names":["Button","BaseButton","styles"],"sources":["../../src/button/button.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { ComponentPropsWithoutRef, ReactElement } from \"react\";\nimport { Button as BaseButton } from \"@base-ui/react/button\";\nimport styles from \"./button.module.css\";\n\nexport type ButtonVariant = \"solid\" | \"soft\" | \"outline\" | \"ghost\";\nexport type ButtonTone = \"primary\" | \"secondary\" | \"destructive\" | \"success\" | \"warning\";\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n variant?: ButtonVariant;\n /** Semantic color. Defaults to \"primary\". */\n tone?: ButtonTone | undefined;\n size?: ButtonSize | undefined;\n loading?: boolean | undefined;\n /**\n * Text shown in place of children while loading.\n * When provided the button width adapts to this text (variable width).\n * When omitted, children stay rendered invisibly — width stays stable.\n */\n loadingText?: string | undefined;\n iconOnly?: boolean | undefined;\n render?: ReactElement | undefined;\n nativeButton?: boolean | undefined;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = \"solid\",\n tone = \"primary\",\n size = \"md\",\n loading = false,\n loadingText,\n iconOnly = false,\n nativeButton = true,\n disabled,\n className,\n children,\n render,\n ...props\n },\n ref,\n) {\n const classes = [\n styles.root,\n styles[`variant-${variant}`],\n styles[`tone-${tone}`],\n styles[`size-${size}`],\n iconOnly ? styles[\"icon-only\"] : \"\",\n className ?? \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <BaseButton ref={ref} className={classes} disabled={disabled ?? loading} render={render} nativeButton={nativeButton} {...props}>\n <span className={`${styles.loader} ${loading && !loadingText ? styles[\"loader-visible\"] : \"\"}`} aria-hidden=\"true\">\n <span className={styles.spinner} />\n </span>\n <span className={loading && !loadingText ? styles[\"content-loading\"] : undefined}>\n {loading && loadingText ? loadingText : children}\n </span>\n </BaseButton>\n );\n});\n\nexport { styles as ButtonStyles };\n"],"mappings":";;;;;AA0BA,MAAaA,WAAS,WAA2C,SAASA,SACxE,EACE,UAAU,SACV,OAAO,WACP,OAAO,MACP,UAAU,OACV,aACA,WAAW,OACX,eAAe,MACf,UACA,WACA,UACA,QACA,GAAG,SAEL,KACA;AAYA,QACE,qBAACC,QAAD;EAAiB;EAAK,WAZR;GACdC,sBAAO;GACPA,sBAAO,WAAW;GAClBA,sBAAO,QAAQ;GACfA,sBAAO,QAAQ;GACf,WAAWA,sBAAO,eAAe;GACjC,aAAa;GACd,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EAGgC,UAAU,YAAY;EAAiB;EAAsB;EAAc,GAAI;YAAzH,CACE,oBAAC,QAAD;GAAM,WAAW,GAAGA,sBAAO,OAAO,GAAG,WAAW,CAAC,cAAcA,sBAAO,oBAAoB;GAAM,eAAY;aAC1G,oBAAC,QAAD,EAAM,WAAWA,sBAAO,SAAW,CAAA;GAC9B,CAAA,EACP,oBAAC,QAAD;GAAM,WAAW,WAAW,CAAC,cAAcA,sBAAO,qBAAqB,KAAA;aACpE,WAAW,cAAc,cAAc;GACnC,CAAA,CACI;;EAEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.module.js","names":[],"sources":["../../src/button/button.module.css"],"sourcesContent":["@layer components {\n .root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--space-1-5);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-normal);\n line-height: 1;\n border-radius: var(--radius-md);\n border: var(--border-width-base) solid transparent;\n cursor: pointer;\n user-select: none;\n text-decoration: none;\n white-space: nowrap;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-color var(--duration-fast) var(--easing-standard),\n color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard),\n opacity var(--duration-fast) var(--easing-standard),\n transform 100ms var(--easing-ease-out);\n outline: none;\n position: relative;\n }\n
|
|
1
|
+
{"version":3,"file":"button.module.js","names":[],"sources":["../../src/button/button.module.css"],"sourcesContent":["@layer components {\n .root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--space-1-5);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-normal);\n line-height: 1;\n border-radius: var(--radius-md);\n border: var(--border-width-base) solid transparent;\n cursor: pointer;\n user-select: none;\n text-decoration: none;\n white-space: nowrap;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-color var(--duration-fast) var(--easing-standard),\n color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard),\n opacity var(--duration-fast) var(--easing-standard),\n transform 100ms var(--easing-ease-out);\n outline: none;\n position: relative;\n }\n .root:active:not([data-disabled]) {\n transform: scale(0.97);\n }\n .root:focus-visible {\n box-shadow: var(--shadow-focus);\n }\n .root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.44;\n pointer-events: none;\n }\n /* ─── Sizes ──────────────────────────────────────────────────────── */\n .size-xs {\n height: 22px;\n padding-inline: var(--space-2);\n font-size: var(--font-size-xs);\n border-radius: var(--radius-sm);\n }\n .size-sm {\n height: 26px;\n padding-inline: var(--space-2-5);\n font-size: var(--font-size-sm);\n }\n .size-md {\n height: 30px;\n padding-inline: var(--space-3);\n font-size: var(--font-size-md);\n }\n .size-lg {\n height: 36px;\n padding-inline: var(--space-4);\n font-size: var(--font-size-lg);\n border-radius: var(--radius-lg);\n }\n /* Icon-only */\n .icon-only.size-xs {\n width: 22px;\n padding-inline: 0;\n }\n .icon-only.size-sm {\n width: 26px;\n padding-inline: 0;\n }\n .icon-only.size-md {\n width: 30px;\n padding-inline: 0;\n }\n .icon-only.size-lg {\n width: 36px;\n padding-inline: 0;\n }\n /* ─── Tones — set scoped color tokens ────────────────────────────── */\n /*\n * Each tone exposes scoped custom properties consumed by the variants below:\n * --btn-color solid bg color\n * --btn-color-hover solid bg on hover\n * --btn-color-pressed solid bg on press\n * --btn-text-color text color for soft / outline / ghost variants\n * (may differ from --btn-color for contrast on tinted surfaces)\n * --btn-tint soft bg\n * --btn-tint-hover soft bg on hover\n * --btn-on-color text on solid bg\n */\n .tone-primary {\n --btn-color: var(--color-accent-solid);\n --btn-color-hover: var(--color-accent-hover);\n --btn-color-pressed: var(--color-accent-pressed);\n --btn-text-color: var(--color-accent-text);\n --btn-tint: var(--color-accent-tint);\n --btn-tint-hover: var(--color-accent-tint-hover);\n --btn-on-color: var(--color-on-accent);\n }\n .tone-secondary {\n --btn-color: var(--color-secondary);\n --btn-color-hover: var(--color-primary);\n --btn-color-pressed: var(--color-primary);\n --btn-text-color: var(--color-secondary);\n --btn-tint: var(--color-hover);\n --btn-tint-hover: var(--color-active);\n --btn-on-color: var(--color-canvas);\n }\n .tone-destructive {\n --btn-color: var(--color-error-solid);\n --btn-color-hover: var(--color-error-solid);\n --btn-color-pressed: var(--color-error-solid);\n --btn-text-color: var(--color-error-text);\n --btn-tint: var(--color-error-bg);\n --btn-tint-hover: var(--color-error-bg);\n --btn-on-color: var(--color-error-on-solid);\n }\n .tone-success {\n --btn-color: var(--color-success-solid);\n --btn-color-hover: var(--color-success-solid);\n --btn-color-pressed: var(--color-success-solid);\n --btn-text-color: var(--color-success-text);\n --btn-tint: var(--color-success-bg);\n --btn-tint-hover: var(--color-success-bg);\n --btn-on-color: var(--color-success-on-solid);\n }\n .tone-warning {\n --btn-color: var(--color-warning-solid);\n --btn-color-hover: var(--color-warning-solid);\n --btn-color-pressed: var(--color-warning-solid);\n --btn-text-color: var(--color-warning-text);\n --btn-tint: var(--color-warning-bg);\n --btn-tint-hover: var(--color-warning-bg);\n --btn-on-color: var(--color-warning-on-solid);\n }\n /* ─── Variants — consume tone tokens ────────────────────────────── */\n .variant-solid {\n background-color: var(--btn-color);\n border-color: var(--btn-color);\n color: var(--btn-on-color);\n }\n .variant-solid:hover:not([data-disabled]) {\n background-color: var(--btn-color-hover);\n border-color: var(--btn-color-hover);\n filter: brightness(0.92);\n }\n .variant-solid:active:not([data-disabled]),\n .variant-solid[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-color-pressed);\n border-color: var(--btn-color-pressed);\n filter: brightness(0.84);\n }\n /* primary solid gets its own hover tokens instead of filter */\n .variant-solid.tone-primary:hover:not([data-disabled]) {\n background-color: var(--btn-color-hover);\n border-color: var(--btn-color-hover);\n filter: none;\n }\n .variant-solid.tone-primary:active:not([data-disabled]),\n .variant-solid.tone-primary[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-color-pressed);\n border-color: var(--btn-color-pressed);\n filter: none;\n }\n .variant-soft {\n background-color: var(--btn-tint);\n border-color: transparent;\n color: var(--btn-text-color);\n }\n .variant-soft:hover:not([data-disabled]) {\n background-color: var(--btn-tint-hover);\n }\n .variant-soft:active:not([data-disabled]),\n .variant-soft[data-pressed]:not([data-disabled]) {\n background-color: var(--btn-tint-hover);\n filter: brightness(0.95);\n }\n .variant-outline {\n background-color: transparent;\n border-color: var(--color-line-strong);\n color: var(--color-primary);\n }\n /* Non-secondary tones show their tone color at rest */\n .variant-outline:not(.tone-secondary) {\n border-color: var(--btn-text-color);\n color: var(--btn-text-color);\n }\n .variant-outline:hover:not([data-disabled]) {\n background-color: var(--color-hover);\n border-color: var(--btn-text-color);\n color: var(--btn-text-color);\n }\n .variant-outline:active:not([data-disabled]),\n .variant-outline[data-pressed]:not([data-disabled]) {\n background-color: var(--color-active);\n }\n .variant-ghost {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-secondary);\n }\n /* Non-secondary tones show their tone color at rest */\n .variant-ghost:not(.tone-secondary) {\n color: var(--btn-text-color);\n }\n .variant-ghost:hover:not([data-disabled]) {\n background-color: var(--color-hover);\n color: var(--btn-text-color);\n }\n .variant-ghost:active:not([data-disabled]),\n .variant-ghost[data-pressed]:not([data-disabled]) {\n background-color: var(--color-active);\n }\n /* ─── Loader ─────────────────────────────────────────────────────── */\n /* Always in the DOM, always position:absolute so it never affects layout */\n .loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n pointer-events: none;\n }\n .loader-visible {\n opacity: 1;\n }\n .content-loading {\n visibility: hidden;\n }\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n .spinner {\n width: 12px;\n height: 12px;\n border: 1.5px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n opacity: 0.7;\n }\n}\n"],"mappings":";AAwCA,IAAA,wBAAY;CAAI,mBAAA;CAAA,aAAA;CAAA,UAAA;CAAA,kBAAA;CAAA,QAAA;CAAA,WAAA;CAAA,WAAA;CAAA,WAAA;CAAA,WAAA;CAAA,QAAA;CAAA,WAAA;CAAA,oBAAA;CAAA,gBAAA;CAAA,kBAAA;CAAA,gBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA,mBAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA"}
|