@brijbyte/agentic-ui 0.0.3 → 0.0.5
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 +280 -53
- package/dist/accordion/accordion.d.ts +14 -0
- package/dist/accordion/accordion.d.ts.map +1 -1
- package/dist/accordion/accordion.js +5 -0
- package/dist/accordion/accordion.js.map +1 -1
- package/dist/accordion/index.d.ts +2 -2
- package/dist/accordion/index.js +2 -2
- package/dist/accordion/parts.d.ts +6 -14
- package/dist/accordion/parts.d.ts.map +1 -1
- package/dist/accordion/parts.js +7 -6
- package/dist/accordion/parts.js.map +1 -1
- package/dist/alert-dialog/alert-dialog.d.ts +11 -0
- package/dist/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/alert-dialog/alert-dialog.js +5 -0
- package/dist/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/alert-dialog/parts.d.ts +4 -12
- package/dist/alert-dialog/parts.d.ts.map +1 -1
- package/dist/alert-dialog/parts.js +17 -19
- package/dist/alert-dialog/parts.js.map +1 -1
- package/dist/badge/badge.d.ts +6 -0
- package/dist/badge/badge.d.ts.map +1 -1
- package/dist/badge/badge.js +4 -0
- package/dist/badge/badge.js.map +1 -1
- package/dist/button/button.d.ts +12 -1
- package/dist/button/button.d.ts.map +1 -1
- package/dist/button/button.js +5 -0
- package/dist/button/button.js.map +1 -1
- package/dist/card/card.d.ts +10 -0
- package/dist/card/card.d.ts.map +1 -1
- package/dist/card/card.js +7 -0
- package/dist/card/card.js.map +1 -1
- package/dist/checkbox/checkbox.d.ts +13 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -1
- package/dist/checkbox/checkbox.js +4 -0
- package/dist/checkbox/checkbox.js.map +1 -1
- package/dist/checkbox/parts.d.ts +2 -5
- package/dist/checkbox/parts.d.ts.map +1 -1
- package/dist/checkbox/parts.js +3 -2
- package/dist/checkbox/parts.js.map +1 -1
- package/dist/collapsible/collapsible.d.ts +11 -0
- package/dist/collapsible/collapsible.d.ts.map +1 -1
- package/dist/collapsible/collapsible.js +5 -0
- package/dist/collapsible/collapsible.js.map +1 -1
- package/dist/collapsible/parts.d.ts +3 -9
- package/dist/collapsible/parts.d.ts.map +1 -1
- package/dist/collapsible/parts.js +7 -6
- package/dist/collapsible/parts.js.map +1 -1
- package/dist/context-menu/context-menu.d.ts +5 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -1
- package/dist/context-menu/context-menu.js +4 -0
- package/dist/context-menu/context-menu.js.map +1 -1
- package/dist/context-menu/parts.d.ts +6 -18
- package/dist/context-menu/parts.d.ts.map +1 -1
- package/dist/context-menu/parts.js +16 -16
- package/dist/context-menu/parts.js.map +1 -1
- package/dist/dialog/dialog.d.ts +13 -1
- package/dist/dialog/dialog.d.ts.map +1 -1
- package/dist/dialog/dialog.js +6 -0
- package/dist/dialog/dialog.js.map +1 -1
- package/dist/dialog/parts.d.ts +6 -18
- package/dist/dialog/parts.d.ts.map +1 -1
- package/dist/dialog/parts.js +8 -9
- package/dist/dialog/parts.js.map +1 -1
- package/dist/drawer/drawer.d.ts +11 -0
- package/dist/drawer/drawer.d.ts.map +1 -1
- package/dist/drawer/drawer.js +5 -0
- package/dist/drawer/drawer.js.map +1 -1
- package/dist/drawer/parts.d.ts +7 -19
- package/dist/drawer/parts.d.ts.map +1 -1
- package/dist/drawer/parts.js +14 -13
- package/dist/drawer/parts.js.map +1 -1
- package/dist/index.css +1580 -1150
- package/dist/index.d.ts +20 -11
- package/dist/index.js +15 -2
- package/dist/input/input.d.ts +8 -0
- package/dist/input/input.d.ts.map +1 -1
- package/dist/input/input.js +5 -0
- package/dist/input/input.js.map +1 -1
- package/dist/menu/menu.css +3 -8
- package/dist/menu/menu.d.ts +11 -4
- package/dist/menu/menu.d.ts.map +1 -1
- package/dist/menu/menu.js +10 -24
- package/dist/menu/menu.js.map +1 -1
- package/dist/menu/menu.module.js +1 -1
- package/dist/menu/menu.module.js.map +1 -1
- package/dist/menu/parts.d.ts +6 -18
- package/dist/menu/parts.d.ts.map +1 -1
- package/dist/menu/parts.js +7 -6
- package/dist/menu/parts.js.map +1 -1
- package/dist/meter/circular-meter.d.ts +48 -0
- package/dist/meter/circular-meter.d.ts.map +1 -0
- package/dist/meter/circular-meter.js +86 -0
- package/dist/meter/circular-meter.js.map +1 -0
- package/dist/meter/index.d.ts +4 -0
- package/dist/meter/index.js +5 -0
- package/dist/meter/meter.css +152 -0
- package/dist/meter/meter.d.ts +58 -0
- package/dist/meter/meter.d.ts.map +1 -0
- package/dist/meter/meter.js +50 -0
- package/dist/meter/meter.js.map +1 -0
- package/dist/meter/meter.module.css.d.ts +2 -0
- package/dist/meter/meter.module.js +27 -0
- package/dist/meter/meter.module.js.map +1 -0
- package/dist/meter/meterState.js +18 -0
- package/dist/meter/meterState.js.map +1 -0
- package/dist/meter/parts.d.ts +25 -0
- package/dist/meter/parts.d.ts.map +1 -0
- package/dist/meter/parts.js +57 -0
- package/dist/meter/parts.js.map +1 -0
- package/dist/number-field/number-field.d.ts +16 -0
- package/dist/number-field/number-field.d.ts.map +1 -1
- package/dist/number-field/number-field.js +4 -0
- package/dist/number-field/number-field.js.map +1 -1
- package/dist/number-field/parts.d.ts +6 -18
- package/dist/number-field/parts.d.ts.map +1 -1
- package/dist/number-field/parts.js +7 -6
- package/dist/number-field/parts.js.map +1 -1
- package/dist/popover/index.d.ts +3 -0
- package/dist/popover/index.js +4 -0
- package/dist/popover/parts.d.ts +29 -0
- package/dist/popover/parts.d.ts.map +1 -0
- package/dist/popover/parts.js +93 -0
- package/dist/popover/parts.js.map +1 -0
- package/dist/popover/popover.css +173 -0
- package/dist/popover/popover.d.ts +49 -0
- package/dist/popover/popover.d.ts.map +1 -0
- package/dist/popover/popover.js +68 -0
- package/dist/popover/popover.js.map +1 -0
- package/dist/popover/popover.module.css.d.ts +2 -0
- package/dist/popover/popover.module.js +16 -0
- package/dist/popover/popover.module.js.map +1 -0
- package/dist/progress/parts.d.ts +2 -4
- package/dist/progress/parts.d.ts.map +1 -1
- package/dist/progress/parts.js +3 -6
- package/dist/progress/parts.js.map +1 -1
- package/dist/progress/progress.d.ts +11 -0
- package/dist/progress/progress.d.ts.map +1 -1
- package/dist/progress/progress.js +5 -0
- package/dist/progress/progress.js.map +1 -1
- package/dist/radio/index.d.ts +3 -0
- package/dist/radio/index.js +4 -0
- package/dist/radio/parts.d.ts +14 -0
- package/dist/radio/parts.d.ts.map +1 -0
- package/dist/radio/parts.js +43 -0
- package/dist/radio/parts.js.map +1 -0
- package/dist/radio/radio.css +84 -0
- package/dist/radio/radio.d.ts +31 -0
- package/dist/radio/radio.d.ts.map +1 -0
- package/dist/radio/radio.js +33 -0
- package/dist/radio/radio.js.map +1 -0
- package/dist/radio/radio.module.css.d.ts +2 -0
- package/dist/radio/radio.module.js +11 -0
- package/dist/radio/radio.module.js.map +1 -0
- package/dist/radio-group/index.d.ts +3 -0
- package/dist/radio-group/index.js +4 -0
- package/dist/radio-group/parts.d.ts +11 -0
- package/dist/radio-group/parts.d.ts.map +1 -0
- package/dist/radio-group/parts.js +32 -0
- package/dist/radio-group/parts.js.map +1 -0
- package/dist/radio-group/radio-group.css +17 -0
- package/dist/radio-group/radio-group.d.ts +37 -0
- package/dist/radio-group/radio-group.d.ts.map +1 -0
- package/dist/radio-group/radio-group.js +28 -0
- package/dist/radio-group/radio-group.js.map +1 -0
- package/dist/radio-group/radio-group.module.css.d.ts +2 -0
- package/dist/radio-group/radio-group.module.js +9 -0
- package/dist/radio-group/radio-group.module.js.map +1 -0
- package/dist/reset-scoped.css +112 -0
- package/dist/select/parts.d.ts +11 -32
- package/dist/select/parts.d.ts.map +1 -1
- package/dist/select/parts.js +10 -9
- package/dist/select/parts.js.map +1 -1
- package/dist/select/select.d.ts +14 -1
- package/dist/select/select.d.ts.map +1 -1
- package/dist/select/select.js +4 -0
- package/dist/select/select.js.map +1 -1
- package/dist/separator/separator.d.ts +4 -0
- package/dist/separator/separator.d.ts.map +1 -1
- package/dist/separator/separator.js +4 -0
- package/dist/separator/separator.js.map +1 -1
- package/dist/shared/PopupArrow.js +22 -0
- package/dist/shared/PopupArrow.js.map +1 -0
- package/dist/slider/parts.d.ts +6 -18
- package/dist/slider/parts.d.ts.map +1 -1
- package/dist/slider/parts.js +7 -6
- package/dist/slider/parts.js.map +1 -1
- package/dist/slider/slider.d.ts +18 -0
- package/dist/slider/slider.d.ts.map +1 -1
- package/dist/slider/slider.js +6 -0
- package/dist/slider/slider.js.map +1 -1
- package/dist/switch/parts.d.ts +2 -6
- package/dist/switch/parts.d.ts.map +1 -1
- package/dist/switch/parts.js +3 -2
- package/dist/switch/parts.js.map +1 -1
- package/dist/switch/switch.css +11 -2
- package/dist/switch/switch.d.ts +12 -0
- package/dist/switch/switch.d.ts.map +1 -1
- package/dist/switch/switch.js +4 -0
- package/dist/switch/switch.js.map +1 -1
- package/dist/switch/switch.module.js.map +1 -1
- package/dist/tabs/parts.d.ts +3 -9
- package/dist/tabs/parts.d.ts.map +1 -1
- package/dist/tabs/parts.js +4 -3
- package/dist/tabs/parts.js.map +1 -1
- package/dist/tabs/tabs.d.ts +8 -1
- package/dist/tabs/tabs.d.ts.map +1 -1
- package/dist/tabs/tabs.js +4 -0
- package/dist/tabs/tabs.js.map +1 -1
- package/dist/toast/parts.d.ts +5 -15
- package/dist/toast/parts.d.ts.map +1 -1
- package/dist/toast/parts.js +6 -5
- package/dist/toast/parts.js.map +1 -1
- package/dist/toast/toast.d.ts +11 -0
- package/dist/toast/toast.d.ts.map +1 -1
- package/dist/toast/toast.js +8 -0
- package/dist/toast/toast.js.map +1 -1
- package/dist/tooltip/parts.d.ts +3 -9
- package/dist/tooltip/parts.d.ts.map +1 -1
- package/dist/tooltip/parts.js +4 -3
- package/dist/tooltip/parts.js.map +1 -1
- package/dist/tooltip/tooltip.d.ts +9 -0
- package/dist/tooltip/tooltip.d.ts.map +1 -1
- package/dist/tooltip/tooltip.js +4 -0
- package/dist/tooltip/tooltip.js.map +1 -1
- package/dist/utils/resolveClassName.js +25 -0
- package/dist/utils/resolveClassName.js.map +1 -0
- package/package.json +25 -4
- package/src/accordion/accordion.tsx +14 -0
- package/src/accordion/index.ts +1 -1
- package/src/accordion/parts.tsx +10 -17
- package/src/alert-dialog/alert-dialog.tsx +11 -0
- package/src/alert-dialog/parts.tsx +23 -31
- package/src/badge/badge.tsx +6 -0
- package/src/button/button.tsx +12 -1
- package/src/card/card.tsx +10 -0
- package/src/checkbox/checkbox.tsx +13 -0
- package/src/checkbox/parts.tsx +5 -7
- package/src/collapsible/collapsible.tsx +11 -0
- package/src/collapsible/parts.tsx +10 -15
- package/src/context-menu/context-menu.tsx +5 -0
- package/src/context-menu/parts.tsx +34 -34
- package/src/dialog/dialog.tsx +13 -1
- package/src/dialog/parts.tsx +14 -27
- package/src/drawer/drawer.tsx +11 -0
- package/src/drawer/parts.tsx +30 -38
- package/src/index.ts +4 -0
- package/src/input/input.tsx +8 -0
- package/src/menu/menu.module.css +3 -10
- package/src/menu/menu.tsx +13 -26
- package/src/menu/parts.tsx +13 -24
- package/src/meter/circular-meter.tsx +114 -0
- package/src/meter/index.ts +9 -0
- package/src/meter/meter.module.css +162 -0
- package/src/meter/meter.tsx +86 -0
- package/src/meter/meterState.ts +29 -0
- package/src/meter/parts.tsx +73 -0
- package/src/number-field/number-field.tsx +16 -0
- package/src/number-field/parts.tsx +33 -24
- package/src/popover/index.ts +14 -0
- package/src/popover/parts.tsx +105 -0
- package/src/popover/popover.module.css +189 -0
- package/src/popover/popover.tsx +80 -0
- package/src/progress/parts.tsx +13 -6
- package/src/progress/progress.tsx +11 -0
- package/src/radio/index.ts +6 -0
- package/src/radio/parts.tsx +42 -0
- package/src/radio/radio.module.css +96 -0
- package/src/radio/radio.tsx +37 -0
- package/src/radio-group/index.ts +5 -0
- package/src/radio-group/parts.tsx +31 -0
- package/src/radio-group/radio-group.module.css +17 -0
- package/src/radio-group/radio-group.tsx +63 -0
- package/src/select/parts.tsx +34 -41
- package/src/select/select.tsx +14 -1
- package/src/separator/separator.tsx +4 -0
- package/src/shared/PopupArrow.tsx +41 -0
- package/src/slider/parts.tsx +13 -24
- package/src/slider/slider.tsx +18 -0
- package/src/styles/reset-scoped.css +112 -0
- package/src/switch/parts.tsx +5 -8
- package/src/switch/switch.module.css +11 -2
- package/src/switch/switch.tsx +12 -0
- package/src/tabs/parts.tsx +7 -12
- package/src/tabs/tabs.tsx +8 -1
- package/src/toast/parts.tsx +11 -20
- package/src/toast/toast.tsx +11 -0
- package/src/tooltip/parts.tsx +7 -12
- package/src/tooltip/tooltip.tsx +9 -0
- package/src/utils/resolveClassName.ts +24 -0
package/dist/slider/slider.d.ts
CHANGED
|
@@ -4,17 +4,29 @@ import styles from "./slider.module.css";
|
|
|
4
4
|
|
|
5
5
|
//#region src/slider/slider.d.ts
|
|
6
6
|
interface SliderProps {
|
|
7
|
+
/** Current value (controlled). Pass an array for range sliders. */
|
|
7
8
|
value?: number | number[];
|
|
9
|
+
/** Initial value (uncontrolled). Pass an array for range sliders. */
|
|
8
10
|
defaultValue?: number | number[];
|
|
11
|
+
/** Called on every value change while dragging. */
|
|
9
12
|
onValueChange?: (value: number | number[], eventDetails: unknown) => void;
|
|
13
|
+
/** Called once when the user finishes dragging. */
|
|
10
14
|
onValueCommitted?: (value: number | number[], eventDetails: unknown) => void;
|
|
15
|
+
/** Minimum allowed value. @default 0 */
|
|
11
16
|
min?: number;
|
|
17
|
+
/** Maximum allowed value. @default 100 */
|
|
12
18
|
max?: number;
|
|
19
|
+
/** Step increment. @default 1 */
|
|
13
20
|
step?: number;
|
|
21
|
+
/** Step used for Page Up / Page Down keyboard shortcuts. @default 10 */
|
|
14
22
|
largeStep?: number;
|
|
23
|
+
/** Prevent interaction. */
|
|
15
24
|
disabled?: boolean;
|
|
25
|
+
/** HTML name attribute for form submission. */
|
|
16
26
|
name?: string;
|
|
27
|
+
/** Axis direction. @default "horizontal" */
|
|
17
28
|
orientation?: "horizontal" | "vertical";
|
|
29
|
+
/** `Intl.NumberFormatOptions` for value display formatting. */
|
|
18
30
|
format?: Intl.NumberFormatOptions;
|
|
19
31
|
/** Visible label rendered above the track. */
|
|
20
32
|
label?: ReactNode;
|
|
@@ -24,6 +36,12 @@ interface SliderProps {
|
|
|
24
36
|
"aria-label"?: string;
|
|
25
37
|
className?: string;
|
|
26
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* An accessible range input with full keyboard and touch support. Pass a
|
|
41
|
+
* single number for a standard slider or an array for a range slider with
|
|
42
|
+
* two thumbs. Supports steps, large steps (Page Up/Down), and
|
|
43
|
+
* `Intl.NumberFormat` display formatting.
|
|
44
|
+
*/
|
|
27
45
|
declare function Slider({
|
|
28
46
|
label,
|
|
29
47
|
showValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","names":[],"sources":["../../src/slider/slider.tsx"],"mappings":";;;;;UAIiB,WAAA
|
|
1
|
+
{"version":3,"file":"slider.d.ts","names":[],"sources":["../../src/slider/slider.tsx"],"mappings":";;;;;UAIiB,WAAA;;EAEf,KAAA;EAFe;EAIf,YAAA;;EAEA,aAAA,IAAiB,KAAA,qBAA0B,YAAA;EAJ3C;EAMA,gBAAA,IAAoB,KAAA,qBAA0B,YAAA;EAF9C;EAIA,GAAA;EAJ2C;EAM3C,GAAA;EAJoB;EAMpB,IAAA;EAJA;EAMA,SAAA;EAFA;EAIA,QAAA;EAAA;EAEA,IAAA;EAEA;EAAA,WAAA;EAES;EAAT,MAAA,GAAS,IAAA,CAAK,mBAAA;EAEd;EAAA,KAAA,GAAQ,SAAA;EAER;EAAA,SAAA;EAGA;EADA,YAAA;EACA,SAAA;AAAA;;;;;;;iBASc,MAAA,CAAA;EACd,KAAA;EACA,SAAA;EACA,SAAA;EACA,aAAA;EACA,gBAAA;EAAA,cACc,SAAA;EAAA,GACX;AAAA,GACF,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/slider/slider.js
CHANGED
|
@@ -2,6 +2,12 @@ import slider_module_default from "./slider.module.js";
|
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Slider } from "@base-ui/react/slider";
|
|
4
4
|
//#region src/slider/slider.tsx
|
|
5
|
+
/**
|
|
6
|
+
* An accessible range input with full keyboard and touch support. Pass a
|
|
7
|
+
* single number for a standard slider or an array for a range slider with
|
|
8
|
+
* two thumbs. Supports steps, large steps (Page Up/Down), and
|
|
9
|
+
* `Intl.NumberFormat` display formatting.
|
|
10
|
+
*/
|
|
5
11
|
function Slider$1({ label, showValue = false, className, onValueChange, onValueCommitted, "aria-label": ariaLabel, ...props }) {
|
|
6
12
|
const isRange = Array.isArray(props.defaultValue ?? props.value);
|
|
7
13
|
return /* @__PURE__ */ jsxs(Slider.Root, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","names":["Slider","BaseSlider","styles"],"sources":["../../src/slider/slider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport styles from \"./slider.module.css\";\n\nexport interface SliderProps {\n value?: number | number[];\n defaultValue?: number | number[];\n onValueChange?: (value: number | number[], eventDetails: unknown) => void;\n onValueCommitted?: (value: number | number[], eventDetails: unknown) => void;\n min?: number;\n max?: number;\n step?: number;\n largeStep?: number;\n disabled?: boolean;\n name?: string;\n orientation?: \"horizontal\" | \"vertical\";\n format?: Intl.NumberFormatOptions;\n /** Visible label rendered above the track. */\n label?: ReactNode;\n /** Show the current value next to the label. */\n showValue?: boolean;\n /** Aria-label for single-thumb sliders without a visible label. */\n \"aria-label\"?: string;\n className?: string;\n}\n\nexport function Slider({\n label,\n showValue = false,\n className,\n onValueChange,\n onValueCommitted,\n \"aria-label\": ariaLabel,\n ...props\n}: SliderProps) {\n const isRange = Array.isArray(props.defaultValue ?? props.value);\n\n return (\n <BaseSlider.Root\n className={`${styles.root} ${className ?? \"\"}`}\n onValueChange={onValueChange as never}\n onValueCommitted={onValueCommitted as never}\n {...props}\n >\n {(label || showValue) && (\n <div className={styles.header}>\n {label && <BaseSlider.Label className={styles.label}>{label}</BaseSlider.Label>}\n {showValue && <BaseSlider.Value className={styles.value} />}\n </div>\n )}\n <BaseSlider.Control className={styles.control}>\n <BaseSlider.Track className={styles.track}>\n <BaseSlider.Indicator className={styles.indicator} />\n {isRange ? (\n <>\n <BaseSlider.Thumb index={0} className={styles.thumb} aria-label=\"Minimum value\" />\n <BaseSlider.Thumb index={1} className={styles.thumb} aria-label=\"Maximum value\" />\n </>\n ) : (\n <BaseSlider.Thumb className={styles.thumb} aria-label={ariaLabel} />\n )}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n );\n}\n\nexport { styles as SliderStyles };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider.js","names":["Slider","BaseSlider","styles"],"sources":["../../src/slider/slider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport styles from \"./slider.module.css\";\n\nexport interface SliderProps {\n /** Current value (controlled). Pass an array for range sliders. */\n value?: number | number[];\n /** Initial value (uncontrolled). Pass an array for range sliders. */\n defaultValue?: number | number[];\n /** Called on every value change while dragging. */\n onValueChange?: (value: number | number[], eventDetails: unknown) => void;\n /** Called once when the user finishes dragging. */\n onValueCommitted?: (value: number | number[], eventDetails: unknown) => void;\n /** Minimum allowed value. @default 0 */\n min?: number;\n /** Maximum allowed value. @default 100 */\n max?: number;\n /** Step increment. @default 1 */\n step?: number;\n /** Step used for Page Up / Page Down keyboard shortcuts. @default 10 */\n largeStep?: number;\n /** Prevent interaction. */\n disabled?: boolean;\n /** HTML name attribute for form submission. */\n name?: string;\n /** Axis direction. @default \"horizontal\" */\n orientation?: \"horizontal\" | \"vertical\";\n /** `Intl.NumberFormatOptions` for value display formatting. */\n format?: Intl.NumberFormatOptions;\n /** Visible label rendered above the track. */\n label?: ReactNode;\n /** Show the current value next to the label. */\n showValue?: boolean;\n /** Aria-label for single-thumb sliders without a visible label. */\n \"aria-label\"?: string;\n className?: string;\n}\n\n/**\n * An accessible range input with full keyboard and touch support. Pass a\n * single number for a standard slider or an array for a range slider with\n * two thumbs. Supports steps, large steps (Page Up/Down), and\n * `Intl.NumberFormat` display formatting.\n */\nexport function Slider({\n label,\n showValue = false,\n className,\n onValueChange,\n onValueCommitted,\n \"aria-label\": ariaLabel,\n ...props\n}: SliderProps) {\n const isRange = Array.isArray(props.defaultValue ?? props.value);\n\n return (\n <BaseSlider.Root\n className={`${styles.root} ${className ?? \"\"}`}\n onValueChange={onValueChange as never}\n onValueCommitted={onValueCommitted as never}\n {...props}\n >\n {(label || showValue) && (\n <div className={styles.header}>\n {label && <BaseSlider.Label className={styles.label}>{label}</BaseSlider.Label>}\n {showValue && <BaseSlider.Value className={styles.value} />}\n </div>\n )}\n <BaseSlider.Control className={styles.control}>\n <BaseSlider.Track className={styles.track}>\n <BaseSlider.Indicator className={styles.indicator} />\n {isRange ? (\n <>\n <BaseSlider.Thumb index={0} className={styles.thumb} aria-label=\"Minimum value\" />\n <BaseSlider.Thumb index={1} className={styles.thumb} aria-label=\"Maximum value\" />\n </>\n ) : (\n <BaseSlider.Thumb className={styles.thumb} aria-label={ariaLabel} />\n )}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n );\n}\n\nexport { styles as SliderStyles };\n"],"mappings":";;;;;;;;;;AA4CA,SAAgBA,SAAO,EACrB,OACA,YAAY,OACZ,WACA,eACA,kBACA,cAAc,WACd,GAAG,SACW;CACd,MAAM,UAAU,MAAM,QAAQ,MAAM,gBAAgB,MAAM,MAAM;AAEhE,QACE,qBAACC,OAAW,MAAZ;EACE,WAAW,GAAGC,sBAAO,KAAK,GAAG,aAAa;EAC3B;EACG;EAClB,GAAI;YAJN,EAMI,SAAS,cACT,qBAAC,OAAD;GAAK,WAAWA,sBAAO;aAAvB,CACG,SAAS,oBAACD,OAAW,OAAZ;IAAkB,WAAWC,sBAAO;cAAQ;IAAyB,CAAA,EAC9E,aAAa,oBAACD,OAAW,OAAZ,EAAkB,WAAWC,sBAAO,OAAS,CAAA,CACvD;MAER,oBAACD,OAAW,SAAZ;GAAoB,WAAWC,sBAAO;aACpC,qBAACD,OAAW,OAAZ;IAAkB,WAAWC,sBAAO;cAApC,CACE,oBAACD,OAAW,WAAZ,EAAsB,WAAWC,sBAAO,WAAa,CAAA,EACpD,UACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAACD,OAAW,OAAZ;KAAkB,OAAO;KAAG,WAAWC,sBAAO;KAAO,cAAW;KAAkB,CAAA,EAClF,oBAACD,OAAW,OAAZ;KAAkB,OAAO;KAAG,WAAWC,sBAAO;KAAO,cAAW;KAAkB,CAAA,CACjF,EAAA,CAAA,GAEH,oBAACD,OAAW,OAAZ;KAAkB,WAAWC,sBAAO;KAAO,cAAY;KAAa,CAAA,CAErD;;GACA,CAAA,CACL"}
|
package/dist/switch/parts.d.ts
CHANGED
|
@@ -5,12 +5,8 @@ import { Switch } from "@base-ui/react/switch";
|
|
|
5
5
|
//#region src/switch/parts.d.ts
|
|
6
6
|
type BaseRootProps = ComponentPropsWithoutRef<typeof Switch.Root>;
|
|
7
7
|
type BaseThumbProps = ComponentPropsWithoutRef<typeof Switch.Thumb>;
|
|
8
|
-
interface SwitchRootProps extends
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
interface SwitchThumbProps extends Omit<BaseThumbProps, "className"> {
|
|
12
|
-
className?: string;
|
|
13
|
-
}
|
|
8
|
+
interface SwitchRootProps extends BaseRootProps {}
|
|
9
|
+
interface SwitchThumbProps extends BaseThumbProps {}
|
|
14
10
|
declare const SwitchRoot: react.ForwardRefExoticComponent<SwitchRootProps & react.RefAttributes<HTMLElement>>;
|
|
15
11
|
declare const SwitchThumb: react.ForwardRefExoticComponent<SwitchThumbProps & react.RefAttributes<HTMLSpanElement>>;
|
|
16
12
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/switch/parts.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/switch/parts.tsx"],"mappings":";;;;;KAsBK,aAAA,GAAgB,wBAAA,QAAgC,MAAA,CAAW,IAAA;AAAA,KAC3D,cAAA,GAAiB,wBAAA,QAAgC,MAAA,CAAW,KAAA;AAAA,UAEhD,eAAA,SAAwB,aAAA;AAAA,UACxB,gBAAA,SAAyB,cAAA;AAAA,cAE7B,UAAA,EAAU,KAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,KAAA,CAAA,aAAA,CAAA,WAAA;AAAA,cAOV,WAAA,EAAW,KAAA,CAAA,yBAAA,CAAA,gBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA"}
|
package/dist/switch/parts.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cx, resolveClassName } from "../utils/resolveClassName.js";
|
|
1
2
|
import switch_module_default from "./switch.module.js";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
import { forwardRef } from "react";
|
|
@@ -22,14 +23,14 @@ import { Switch } from "@base-ui/react/switch";
|
|
|
22
23
|
const SwitchRoot = forwardRef(function SwitchRoot({ className, ...props }, ref) {
|
|
23
24
|
return /* @__PURE__ */ jsx(Switch.Root, {
|
|
24
25
|
ref,
|
|
25
|
-
className:
|
|
26
|
+
className: (state) => cx(switch_module_default["thumb-track"], resolveClassName(className, state)),
|
|
26
27
|
...props
|
|
27
28
|
});
|
|
28
29
|
});
|
|
29
30
|
const SwitchThumb = forwardRef(function SwitchThumb({ className, ...props }, ref) {
|
|
30
31
|
return /* @__PURE__ */ jsx(Switch.Thumb, {
|
|
31
32
|
ref,
|
|
32
|
-
className:
|
|
33
|
+
className: (state) => cx(switch_module_default.thumb, resolveClassName(className, state)),
|
|
33
34
|
...props
|
|
34
35
|
});
|
|
35
36
|
});
|
package/dist/switch/parts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.js","names":["BaseSwitch","styles"],"sources":["../../src/switch/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Switch.\n *\n * @example\n * ```tsx\n * import { Switch } from '@base-ui/react/switch';\n * import { SwitchRoot, SwitchThumb } from '@brijbyte/agentic-ui/switch';\n *\n * <label htmlFor=\"sw\">\n * <SwitchRoot id=\"sw\" onCheckedChange={...}>\n * <SwitchThumb />\n * </SwitchRoot>\n * Dark mode\n * </label>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport styles from \"./switch.module.css\";\n\ntype BaseRootProps = ComponentPropsWithoutRef<typeof BaseSwitch.Root>;\ntype BaseThumbProps = ComponentPropsWithoutRef<typeof BaseSwitch.Thumb>;\n\nexport interface SwitchRootProps extends
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseSwitch","styles"],"sources":["../../src/switch/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Switch.\n *\n * @example\n * ```tsx\n * import { Switch } from '@base-ui/react/switch';\n * import { SwitchRoot, SwitchThumb } from '@brijbyte/agentic-ui/switch';\n *\n * <label htmlFor=\"sw\">\n * <SwitchRoot id=\"sw\" onCheckedChange={...}>\n * <SwitchThumb />\n * </SwitchRoot>\n * Dark mode\n * </label>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport styles from \"./switch.module.css\";\nimport { resolveClassName, cx } from \"../utils/resolveClassName\";\n\ntype BaseRootProps = ComponentPropsWithoutRef<typeof BaseSwitch.Root>;\ntype BaseThumbProps = ComponentPropsWithoutRef<typeof BaseSwitch.Thumb>;\n\nexport interface SwitchRootProps extends BaseRootProps {}\nexport interface SwitchThumbProps extends BaseThumbProps {}\n\nexport const SwitchRoot = forwardRef<ComponentRef<typeof BaseSwitch.Root>, SwitchRootProps>(function SwitchRoot(\n { className, ...props },\n ref,\n) {\n return <BaseSwitch.Root ref={ref} className={(state) => cx(styles[\"thumb-track\"], resolveClassName(className, state))} {...props} />;\n});\n\nexport const SwitchThumb = forwardRef<ComponentRef<typeof BaseSwitch.Thumb>, SwitchThumbProps>(function SwitchThumb(\n { className, ...props },\n ref,\n) {\n return <BaseSwitch.Thumb ref={ref} className={(state) => cx(styles.thumb, resolveClassName(className, state))} {...props} />;\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,aAAa,WAAkE,SAAS,WACnG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,OAAW,MAAZ;EAAsB;EAAK,YAAY,UAAU,GAAGC,sBAAO,gBAAgB,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EACpI;AAEF,MAAa,cAAc,WAAoE,SAAS,YACtG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,OAAW,OAAZ;EAAuB;EAAK,YAAY,UAAU,GAAGC,sBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC5H"}
|
package/dist/switch/switch.css
CHANGED
|
@@ -7,11 +7,14 @@
|
|
|
7
7
|
display: flex;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
.root_3hDtBa[data-disabled] {
|
|
11
|
-
opacity: .44;
|
|
10
|
+
.root_3hDtBa:has([data-disabled]) {
|
|
12
11
|
cursor: not-allowed;
|
|
13
12
|
}
|
|
14
13
|
|
|
14
|
+
.root_3hDtBa:has([data-disabled]) .label_3hDtBa {
|
|
15
|
+
opacity: .44;
|
|
16
|
+
}
|
|
17
|
+
|
|
15
18
|
.thumb-track_3hDtBa {
|
|
16
19
|
border-radius: var(--radius-full);
|
|
17
20
|
background-color: var(--color-surface-3);
|
|
@@ -26,6 +29,12 @@
|
|
|
26
29
|
position: relative;
|
|
27
30
|
}
|
|
28
31
|
|
|
32
|
+
.thumb-track_3hDtBa[data-disabled] {
|
|
33
|
+
opacity: .44;
|
|
34
|
+
cursor: not-allowed;
|
|
35
|
+
pointer-events: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
.thumb-track_3hDtBa:focus-visible {
|
|
30
39
|
box-shadow: var(--shadow-focus);
|
|
31
40
|
}
|
package/dist/switch/switch.d.ts
CHANGED
|
@@ -4,18 +4,30 @@ import styles from "./switch.module.css";
|
|
|
4
4
|
|
|
5
5
|
//#region src/switch/switch.d.ts
|
|
6
6
|
interface SwitchProps {
|
|
7
|
+
/** Controlled checked state. */
|
|
7
8
|
checked?: boolean;
|
|
9
|
+
/** Initial checked state (uncontrolled). */
|
|
8
10
|
defaultChecked?: boolean;
|
|
11
|
+
/** Prevent interaction. */
|
|
9
12
|
disabled?: boolean;
|
|
13
|
+
/** Mark the field as required for form validation. */
|
|
10
14
|
required?: boolean;
|
|
15
|
+
/** HTML name attribute for form submission. */
|
|
11
16
|
name?: string;
|
|
17
|
+
/** HTML value attribute for form submission. */
|
|
12
18
|
value?: string;
|
|
13
19
|
/** Called when checked state changes. `eventDetails` is the base-ui event details object. */
|
|
14
20
|
onCheckedChange?: (checked: boolean, eventDetails: unknown) => void;
|
|
21
|
+
/** Label content rendered next to the switch. */
|
|
15
22
|
children?: ReactNode;
|
|
23
|
+
/** Override the auto-generated element id. */
|
|
16
24
|
id?: string;
|
|
17
25
|
className?: string;
|
|
18
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Toggle for boolean settings. Renders a track with a sliding thumb and
|
|
29
|
+
* an optional label. Wraps `@base-ui/react` Switch.
|
|
30
|
+
*/
|
|
19
31
|
declare function Switch({
|
|
20
32
|
children,
|
|
21
33
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","names":[],"sources":["../../src/switch/switch.tsx"],"mappings":";;;;;UAKiB,WAAA
|
|
1
|
+
{"version":3,"file":"switch.d.ts","names":[],"sources":["../../src/switch/switch.tsx"],"mappings":";;;;;UAKiB,WAAA;;EAEf,OAAA;EAFe;EAIf,cAAA;;EAEA,QAAA;EAJA;EAMA,QAAA;EAFA;EAIA,IAAA;EAAA;EAEA,KAAA;EAEA;EAAA,eAAA,IAAmB,OAAA,WAAkB,YAAA;EAAA;EAErC,QAAA,GAAW,SAAA;EAAA;EAEX,EAAA;EACA,SAAA;AAAA;;AAOF;;;iBAAgB,MAAA,CAAA;EAAS,QAAA;EAAU,EAAA;EAAI,SAAA;EAAW,eAAA;EAAA,GAAoB;AAAA,GAAS,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/switch/switch.js
CHANGED
|
@@ -3,6 +3,10 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useId } from "react";
|
|
4
4
|
import { Switch } from "@base-ui/react/switch";
|
|
5
5
|
//#region src/switch/switch.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Toggle for boolean settings. Renders a track with a sliding thumb and
|
|
8
|
+
* an optional label. Wraps `@base-ui/react` Switch.
|
|
9
|
+
*/
|
|
6
10
|
function Switch$1({ children, id, className, onCheckedChange, ...props }) {
|
|
7
11
|
const switchId = id ?? useId();
|
|
8
12
|
return /* @__PURE__ */ jsxs("label", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","names":["Switch","styles","BaseSwitch"],"sources":["../../src/switch/switch.tsx"],"sourcesContent":["import { useId } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport styles from \"./switch.module.css\";\n\nexport interface SwitchProps {\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n required?: boolean;\n name?: string;\n value?: string;\n /** Called when checked state changes. `eventDetails` is the base-ui event details object. */\n onCheckedChange?: (checked: boolean, eventDetails: unknown) => void;\n children?: ReactNode;\n id?: string;\n className?: string;\n}\n\nexport function Switch({ children, id, className, onCheckedChange, ...props }: SwitchProps) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const switchId = id ?? useId();\n\n return (\n <label className={`${styles.root} ${className ?? \"\"}`} htmlFor={switchId}>\n <BaseSwitch.Root id={switchId} className={styles[\"thumb-track\"]} onCheckedChange={onCheckedChange as never} {...props}>\n <BaseSwitch.Thumb className={styles.thumb} />\n </BaseSwitch.Root>\n {children && <span className={styles.label}>{children}</span>}\n </label>\n );\n}\nexport { styles as SwitchStyles };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"switch.js","names":["Switch","styles","BaseSwitch"],"sources":["../../src/switch/switch.tsx"],"sourcesContent":["import { useId } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport styles from \"./switch.module.css\";\n\nexport interface SwitchProps {\n /** Controlled checked state. */\n checked?: boolean;\n /** Initial checked state (uncontrolled). */\n defaultChecked?: boolean;\n /** Prevent interaction. */\n disabled?: boolean;\n /** Mark the field as required for form validation. */\n required?: boolean;\n /** HTML name attribute for form submission. */\n name?: string;\n /** HTML value attribute for form submission. */\n value?: string;\n /** Called when checked state changes. `eventDetails` is the base-ui event details object. */\n onCheckedChange?: (checked: boolean, eventDetails: unknown) => void;\n /** Label content rendered next to the switch. */\n children?: ReactNode;\n /** Override the auto-generated element id. */\n id?: string;\n className?: string;\n}\n\n/**\n * Toggle for boolean settings. Renders a track with a sliding thumb and\n * an optional label. Wraps `@base-ui/react` Switch.\n */\nexport function Switch({ children, id, className, onCheckedChange, ...props }: SwitchProps) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const switchId = id ?? useId();\n\n return (\n <label className={`${styles.root} ${className ?? \"\"}`} htmlFor={switchId}>\n <BaseSwitch.Root id={switchId} className={styles[\"thumb-track\"]} onCheckedChange={onCheckedChange as never} {...props}>\n <BaseSwitch.Thumb className={styles.thumb} />\n </BaseSwitch.Root>\n {children && <span className={styles.label}>{children}</span>}\n </label>\n );\n}\nexport { styles as SwitchStyles };\n"],"mappings":";;;;;;;;;AA+BA,SAAgBA,SAAO,EAAE,UAAU,IAAI,WAAW,iBAAiB,GAAG,SAAsB;CAE1F,MAAM,WAAW,MAAM,OAAO;AAE9B,QACE,qBAAC,SAAD;EAAO,WAAW,GAAGC,sBAAO,KAAK,GAAG,aAAa;EAAM,SAAS;YAAhE,CACE,oBAACC,OAAW,MAAZ;GAAiB,IAAI;GAAU,WAAWD,sBAAO;GAAiC;GAA0B,GAAI;aAC9G,oBAACC,OAAW,OAAZ,EAAkB,WAAWD,sBAAO,OAAS,CAAA;GAC7B,CAAA,EACjB,YAAY,oBAAC,QAAD;GAAM,WAAWA,sBAAO;GAAQ;GAAgB,CAAA,CACvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.module.js","names":[],"sources":["../../src/switch/switch.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n user-select: none;\n }\n .root[data-disabled] {\n
|
|
1
|
+
{"version":3,"file":"switch.module.js","names":[],"sources":["../../src/switch/switch.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n user-select: none;\n }\n /* data-disabled lives on the inner button, not the label wrapper.\n Use :has() to dim the label text, and target the track directly. */\n .root:has([data-disabled]) {\n cursor: not-allowed;\n }\n .root:has([data-disabled]) .label {\n opacity: 0.44;\n }\n .thumb-track {\n position: relative;\n width: 36px;\n height: 20px;\n border-radius: var(--radius-full);\n background-color: var(--color-surface-3);\n border: var(--border-width-base) solid var(--color-line);\n transition:\n background-color var(--duration-normal) var(--easing-standard),\n border-color var(--duration-normal) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard);\n outline: none;\n flex-shrink: 0;\n }\n .thumb-track[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n pointer-events: none;\n }\n .thumb-track:focus-visible {\n box-shadow: var(--shadow-focus);\n }\n .thumb-track[data-checked] {\n background-color: var(--color-accent);\n border-color: var(--color-accent);\n }\n .thumb-track[data-checked]:hover {\n background-color: var(--color-accent-hover);\n border-color: var(--color-accent-hover);\n }\n .thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: var(--radius-full);\n background-color: #ffffff;\n box-shadow: var(--shadow-xs);\n transition: transform var(--duration-normal) var(--easing-spring);\n }\n .thumb-track[data-checked] .thumb {\n transform: translateX(16px);\n }\n .label {\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-primary);\n }\n}\n"],"mappings":";AAQA,IAAA,wBAAU;CAAA,SAAc;CAAc,QAAQ;CAAc,SAAO;CAAA,eAAA;CAAA"}
|
package/dist/tabs/parts.d.ts
CHANGED
|
@@ -6,15 +6,9 @@ import { Tabs } from "@base-ui/react/tabs";
|
|
|
6
6
|
type BaseListProps = ComponentPropsWithoutRef<typeof Tabs.List>;
|
|
7
7
|
type BaseTabProps = ComponentPropsWithoutRef<typeof Tabs.Tab>;
|
|
8
8
|
type BasePanelProps = ComponentPropsWithoutRef<typeof Tabs.Panel>;
|
|
9
|
-
interface TabsListProps extends
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
interface TabsTabProps extends Omit<BaseTabProps, "className"> {
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
interface TabsPanelProps extends Omit<BasePanelProps, "className"> {
|
|
16
|
-
className?: string;
|
|
17
|
-
}
|
|
9
|
+
interface TabsListProps extends BaseListProps {}
|
|
10
|
+
interface TabsTabProps extends BaseTabProps {}
|
|
11
|
+
interface TabsPanelProps extends BasePanelProps {}
|
|
18
12
|
declare const TabsList: react.ForwardRefExoticComponent<TabsListProps & react.RefAttributes<HTMLDivElement>>;
|
|
19
13
|
declare const TabsTab: react.ForwardRefExoticComponent<TabsTabProps & react.RefAttributes<HTMLElement>>;
|
|
20
14
|
declare const TabsPanel: react.ForwardRefExoticComponent<TabsPanelProps & react.RefAttributes<HTMLDivElement>>;
|
package/dist/tabs/parts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/tabs/parts.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/tabs/parts.tsx"],"mappings":";;;;;KAwBK,aAAA,GAAgB,wBAAA,QAAgC,IAAA,CAAS,IAAA;AAAA,KACzD,YAAA,GAAe,wBAAA,QAAgC,IAAA,CAAS,GAAA;AAAA,KACxD,cAAA,GAAiB,wBAAA,QAAgC,IAAA,CAAS,KAAA;AAAA,UAE9C,aAAA,SAAsB,aAAA;AAAA,UACtB,YAAA,SAAqB,YAAA;AAAA,UACrB,cAAA,SAAuB,cAAA;AAAA,cAE3B,QAAA,EAAQ,KAAA,CAAA,yBAAA,CAAA,aAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAIR,OAAA,EAAO,KAAA,CAAA,yBAAA,CAAA,YAAA,GAAA,KAAA,CAAA,aAAA,CAAA,WAAA;AAAA,cAIP,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA"}
|
package/dist/tabs/parts.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cx, resolveClassName } from "../utils/resolveClassName.js";
|
|
1
2
|
import tabs_module_default from "./tabs.module.js";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
import { forwardRef } from "react";
|
|
@@ -24,21 +25,21 @@ import { Tabs } from "@base-ui/react/tabs";
|
|
|
24
25
|
const TabsList = forwardRef(function TabsList({ className, ...props }, ref) {
|
|
25
26
|
return /* @__PURE__ */ jsx(Tabs.List, {
|
|
26
27
|
ref,
|
|
27
|
-
className:
|
|
28
|
+
className: (state) => cx(tabs_module_default.list, resolveClassName(className, state)),
|
|
28
29
|
...props
|
|
29
30
|
});
|
|
30
31
|
});
|
|
31
32
|
const TabsTab = forwardRef(function TabsTab({ className, ...props }, ref) {
|
|
32
33
|
return /* @__PURE__ */ jsx(Tabs.Tab, {
|
|
33
34
|
ref,
|
|
34
|
-
className:
|
|
35
|
+
className: (state) => cx(tabs_module_default.tab, resolveClassName(className, state)),
|
|
35
36
|
...props
|
|
36
37
|
});
|
|
37
38
|
});
|
|
38
39
|
const TabsPanel = forwardRef(function TabsPanel({ className, ...props }, ref) {
|
|
39
40
|
return /* @__PURE__ */ jsx(Tabs.Panel, {
|
|
40
41
|
ref,
|
|
41
|
-
className:
|
|
42
|
+
className: (state) => cx(tabs_module_default.panel, resolveClassName(className, state)),
|
|
42
43
|
...props
|
|
43
44
|
});
|
|
44
45
|
});
|
package/dist/tabs/parts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.js","names":["BaseTabs","styles"],"sources":["../../src/tabs/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Tabs.\n *\n * @example\n * ```tsx\n * import { Tabs } from '@base-ui/react/tabs';\n * import { TabsList, TabsTab, TabsPanel } from '@brijbyte/agentic-ui/tabs';\n *\n * <Tabs.Root defaultValue=\"a\">\n * <TabsList>\n * <TabsTab value=\"a\">Tab A</TabsTab>\n * <TabsTab value=\"b\">Tab B</TabsTab>\n * </TabsList>\n * <TabsPanel value=\"a\">Content A</TabsPanel>\n * <TabsPanel value=\"b\">Content B</TabsPanel>\n * </Tabs.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport styles from \"./tabs.module.css\";\n\ntype BaseListProps = ComponentPropsWithoutRef<typeof BaseTabs.List>;\ntype BaseTabProps = ComponentPropsWithoutRef<typeof BaseTabs.Tab>;\ntype BasePanelProps = ComponentPropsWithoutRef<typeof BaseTabs.Panel>;\n\nexport interface TabsListProps extends
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseTabs","styles"],"sources":["../../src/tabs/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Tabs.\n *\n * @example\n * ```tsx\n * import { Tabs } from '@base-ui/react/tabs';\n * import { TabsList, TabsTab, TabsPanel } from '@brijbyte/agentic-ui/tabs';\n *\n * <Tabs.Root defaultValue=\"a\">\n * <TabsList>\n * <TabsTab value=\"a\">Tab A</TabsTab>\n * <TabsTab value=\"b\">Tab B</TabsTab>\n * </TabsList>\n * <TabsPanel value=\"a\">Content A</TabsPanel>\n * <TabsPanel value=\"b\">Content B</TabsPanel>\n * </Tabs.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport styles from \"./tabs.module.css\";\nimport { resolveClassName, cx } from \"../utils/resolveClassName\";\n\ntype BaseListProps = ComponentPropsWithoutRef<typeof BaseTabs.List>;\ntype BaseTabProps = ComponentPropsWithoutRef<typeof BaseTabs.Tab>;\ntype BasePanelProps = ComponentPropsWithoutRef<typeof BaseTabs.Panel>;\n\nexport interface TabsListProps extends BaseListProps {}\nexport interface TabsTabProps extends BaseTabProps {}\nexport interface TabsPanelProps extends BasePanelProps {}\n\nexport const TabsList = forwardRef<ComponentRef<typeof BaseTabs.List>, TabsListProps>(function TabsList({ className, ...props }, ref) {\n return <BaseTabs.List ref={ref} className={(state) => cx(styles.list, resolveClassName(className, state))} {...props} />;\n});\n\nexport const TabsTab = forwardRef<ComponentRef<typeof BaseTabs.Tab>, TabsTabProps>(function TabsTab({ className, ...props }, ref) {\n return <BaseTabs.Tab ref={ref} className={(state) => cx(styles.tab, resolveClassName(className, state))} {...props} />;\n});\n\nexport const TabsPanel = forwardRef<ComponentRef<typeof BaseTabs.Panel>, TabsPanelProps>(function TabsPanel({ className, ...props }, ref) {\n return <BaseTabs.Panel ref={ref} className={(state) => cx(styles.panel, resolveClassName(className, state))} {...props} />;\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAa,WAAW,WAA8D,SAAS,SAAS,EAAE,WAAW,GAAG,SAAS,KAAK;AACpI,QAAO,oBAACA,KAAS,MAAV;EAAoB;EAAK,YAAY,UAAU,GAAGC,oBAAO,MAAM,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EACxH;AAEF,MAAa,UAAU,WAA4D,SAAS,QAAQ,EAAE,WAAW,GAAG,SAAS,KAAK;AAChI,QAAO,oBAACD,KAAS,KAAV;EAAmB;EAAK,YAAY,UAAU,GAAGC,oBAAO,KAAK,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EACtH;AAEF,MAAa,YAAY,WAAgE,SAAS,UAAU,EAAE,WAAW,GAAG,SAAS,KAAK;AACxI,QAAO,oBAACD,KAAS,OAAV;EAAqB;EAAK,YAAY,UAAU,GAAGC,oBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC1H"}
|
package/dist/tabs/tabs.d.ts
CHANGED
|
@@ -11,13 +11,20 @@ interface TabItem {
|
|
|
11
11
|
icon?: ReactNode;
|
|
12
12
|
}
|
|
13
13
|
interface TabsProps {
|
|
14
|
+
/** Array of tab definitions to render. */
|
|
14
15
|
items: TabItem[];
|
|
16
|
+
/** Currently active tab value (controlled). */
|
|
15
17
|
value?: string;
|
|
18
|
+
/** Initially active tab value (uncontrolled). Defaults to the first item. */
|
|
16
19
|
defaultValue?: string;
|
|
17
|
-
/** `eventDetails` is the base-ui event details object. */
|
|
20
|
+
/** Called when the active tab changes. `eventDetails` is the base-ui event details object. */
|
|
18
21
|
onValueChange?: (value: unknown, eventDetails: unknown) => void;
|
|
19
22
|
className?: string;
|
|
20
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Tab navigation for switching between content panels. Each tab can have
|
|
26
|
+
* an optional icon and can be individually disabled.
|
|
27
|
+
*/
|
|
21
28
|
declare function Tabs({
|
|
22
29
|
items,
|
|
23
30
|
className,
|
package/dist/tabs/tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","names":[],"sources":["../../src/tabs/tabs.tsx"],"mappings":";;;;;UAIiB,OAAA;EACf,KAAA;EACA,KAAA,EAAO,SAAA;EACP,OAAA,EAAS,SAAA;EACT,QAAA;EACA,IAAA,GAAO,SAAA;AAAA;AAAA,UAGQ,SAAA;
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","names":[],"sources":["../../src/tabs/tabs.tsx"],"mappings":";;;;;UAIiB,OAAA;EACf,KAAA;EACA,KAAA,EAAO,SAAA;EACP,OAAA,EAAS,SAAA;EACT,QAAA;EACA,IAAA,GAAO,SAAA;AAAA;AAAA,UAGQ,SAAA;EAHR;EAKP,KAAA,EAAO,OAAA;EALS;EAOhB,KAAA;EAVA;EAYA,YAAA;EAXA;EAaA,aAAA,IAAiB,KAAA,WAAgB,YAAA;EACjC,SAAA;AAAA;;;;AATF;iBAgBgB,IAAA,CAAA;EAAO,KAAA;EAAO,SAAA;EAAA,GAAc;AAAA,GAAS,SAAA,GAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/tabs/tabs.js
CHANGED
|
@@ -2,6 +2,10 @@ import tabs_module_default from "./tabs.module.js";
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Tabs } from "@base-ui/react/tabs";
|
|
4
4
|
//#region src/tabs/tabs.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Tab navigation for switching between content panels. Each tab can have
|
|
7
|
+
* an optional icon and can be individually disabled.
|
|
8
|
+
*/
|
|
5
9
|
function Tabs$1({ items, className, ...props }) {
|
|
6
10
|
const defaultVal = props.defaultValue ?? items[0]?.value;
|
|
7
11
|
return /* @__PURE__ */ jsxs(Tabs.Root, {
|
package/dist/tabs/tabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","names":["Tabs","BaseTabs","styles"],"sources":["../../src/tabs/tabs.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport styles from \"./tabs.module.css\";\n\nexport interface TabItem {\n value: string;\n label: ReactNode;\n content: ReactNode;\n disabled?: boolean;\n icon?: ReactNode;\n}\n\nexport interface TabsProps {\n items: TabItem[];\n value?: string;\n defaultValue?: string;\n /** `eventDetails` is the base-ui event details object. */\n onValueChange?: (value: unknown, eventDetails: unknown) => void;\n className?: string;\n}\n\nexport function Tabs({ items, className, ...props }: TabsProps) {\n const defaultVal = props.defaultValue ?? items[0]?.value;\n\n return (\n <BaseTabs.Root\n className={`${styles.root} ${className ?? \"\"}`}\n defaultValue={defaultVal}\n onValueChange={props.onValueChange as never}\n value={props.value}\n >\n <BaseTabs.List className={styles.list}>\n {items.map((item) => (\n <BaseTabs.Tab key={item.value} value={item.value} disabled={item.disabled} className={styles.tab}>\n {item.icon}\n {item.label}\n </BaseTabs.Tab>\n ))}\n </BaseTabs.List>\n {items.map((item) => (\n <BaseTabs.Panel key={item.value} value={item.value} className={styles.panel}>\n {item.content}\n </BaseTabs.Panel>\n ))}\n </BaseTabs.Root>\n );\n}\nexport { styles as TabsStyles };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tabs.js","names":["Tabs","BaseTabs","styles"],"sources":["../../src/tabs/tabs.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport styles from \"./tabs.module.css\";\n\nexport interface TabItem {\n value: string;\n label: ReactNode;\n content: ReactNode;\n disabled?: boolean;\n icon?: ReactNode;\n}\n\nexport interface TabsProps {\n /** Array of tab definitions to render. */\n items: TabItem[];\n /** Currently active tab value (controlled). */\n value?: string;\n /** Initially active tab value (uncontrolled). Defaults to the first item. */\n defaultValue?: string;\n /** Called when the active tab changes. `eventDetails` is the base-ui event details object. */\n onValueChange?: (value: unknown, eventDetails: unknown) => void;\n className?: string;\n}\n\n/**\n * Tab navigation for switching between content panels. Each tab can have\n * an optional icon and can be individually disabled.\n */\nexport function Tabs({ items, className, ...props }: TabsProps) {\n const defaultVal = props.defaultValue ?? items[0]?.value;\n\n return (\n <BaseTabs.Root\n className={`${styles.root} ${className ?? \"\"}`}\n defaultValue={defaultVal}\n onValueChange={props.onValueChange as never}\n value={props.value}\n >\n <BaseTabs.List className={styles.list}>\n {items.map((item) => (\n <BaseTabs.Tab key={item.value} value={item.value} disabled={item.disabled} className={styles.tab}>\n {item.icon}\n {item.label}\n </BaseTabs.Tab>\n ))}\n </BaseTabs.List>\n {items.map((item) => (\n <BaseTabs.Panel key={item.value} value={item.value} className={styles.panel}>\n {item.content}\n </BaseTabs.Panel>\n ))}\n </BaseTabs.Root>\n );\n}\nexport { styles as TabsStyles };\n"],"mappings":";;;;;;;;AA4BA,SAAgBA,OAAK,EAAE,OAAO,WAAW,GAAG,SAAoB;CAC9D,MAAM,aAAa,MAAM,gBAAgB,MAAM,IAAI;AAEnD,QACE,qBAACC,KAAS,MAAV;EACE,WAAW,GAAGC,oBAAO,KAAK,GAAG,aAAa;EAC1C,cAAc;EACd,eAAe,MAAM;EACrB,OAAO,MAAM;YAJf,CAME,oBAACD,KAAS,MAAV;GAAe,WAAWC,oBAAO;aAC9B,MAAM,KAAK,SACV,qBAACD,KAAS,KAAV;IAA+B,OAAO,KAAK;IAAO,UAAU,KAAK;IAAU,WAAWC,oBAAO;cAA7F,CACG,KAAK,MACL,KAAK,MACO;MAHI,KAAK,MAGT,CACf;GACY,CAAA,EACf,MAAM,KAAK,SACV,oBAACD,KAAS,OAAV;GAAiC,OAAO,KAAK;GAAO,WAAWC,oBAAO;aACnE,KAAK;GACS,EAFI,KAAK,MAET,CACjB,CACY"}
|
package/dist/toast/parts.d.ts
CHANGED
|
@@ -8,21 +8,11 @@ type BaseTitleProps = ComponentPropsWithoutRef<typeof Toast.Title>;
|
|
|
8
8
|
type BaseDescriptionProps = ComponentPropsWithoutRef<typeof Toast.Description>;
|
|
9
9
|
type BaseCloseProps = ComponentPropsWithoutRef<typeof Toast.Close>;
|
|
10
10
|
type BaseViewportProps = ComponentPropsWithoutRef<typeof Toast.Viewport>;
|
|
11
|
-
interface ToastRootProps extends
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
interface
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
interface ToastDescriptionProps extends Omit<BaseDescriptionProps, "className"> {
|
|
18
|
-
className?: string;
|
|
19
|
-
}
|
|
20
|
-
interface ToastCloseProps extends Omit<BaseCloseProps, "className"> {
|
|
21
|
-
className?: string;
|
|
22
|
-
}
|
|
23
|
-
interface ToastViewportPartProps extends Omit<BaseViewportProps, "className"> {
|
|
24
|
-
className?: string;
|
|
25
|
-
}
|
|
11
|
+
interface ToastRootProps extends BaseRootProps {}
|
|
12
|
+
interface ToastTitleProps extends BaseTitleProps {}
|
|
13
|
+
interface ToastDescriptionProps extends BaseDescriptionProps {}
|
|
14
|
+
interface ToastCloseProps extends BaseCloseProps {}
|
|
15
|
+
interface ToastViewportPartProps extends BaseViewportProps {}
|
|
26
16
|
declare const ToastRoot: react.ForwardRefExoticComponent<ToastRootProps & react.RefAttributes<HTMLDivElement>>;
|
|
27
17
|
declare const ToastTitle: react.ForwardRefExoticComponent<ToastTitleProps & react.RefAttributes<HTMLHeadingElement>>;
|
|
28
18
|
declare const ToastDescription: react.ForwardRefExoticComponent<ToastDescriptionProps & react.RefAttributes<HTMLParagraphElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/toast/parts.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/toast/parts.tsx"],"mappings":";;;;;KAwBK,aAAA,GAAgB,wBAAA,QAAgC,KAAA,CAAU,IAAA;AAAA,KAC1D,cAAA,GAAiB,wBAAA,QAAgC,KAAA,CAAU,KAAA;AAAA,KAC3D,oBAAA,GAAuB,wBAAA,QAAgC,KAAA,CAAU,WAAA;AAAA,KACjE,cAAA,GAAiB,wBAAA,QAAgC,KAAA,CAAU,KAAA;AAAA,KAC3D,iBAAA,GAAoB,wBAAA,QAAgC,KAAA,CAAU,QAAA;AAAA,UAElD,cAAA,SAAuB,aAAA;AAAA,UACvB,eAAA,SAAwB,cAAA;AAAA,UACxB,qBAAA,SAA8B,oBAAA;AAAA,UAC9B,eAAA,SAAwB,cAAA;AAAA,UACxB,sBAAA,SAA+B,iBAAA;AAAA,cAEnC,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAIT,UAAA,EAAU,KAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,KAAA,CAAA,aAAA,CAAA,kBAAA;AAAA,cAOV,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,oBAAA;AAAA,cAOhB,UAAA,EAAU,KAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cAOV,iBAAA,EAAiB,KAAA,CAAA,yBAAA,CAAA,sBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA"}
|
package/dist/toast/parts.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cx, resolveClassName } from "../utils/resolveClassName.js";
|
|
1
2
|
import toast_module_default from "./toast.module.js";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
import { forwardRef } from "react";
|
|
@@ -24,35 +25,35 @@ import { Toast } from "@base-ui/react/toast";
|
|
|
24
25
|
const ToastRoot = forwardRef(function ToastRoot({ className, ...props }, ref) {
|
|
25
26
|
return /* @__PURE__ */ jsx(Toast.Root, {
|
|
26
27
|
ref,
|
|
27
|
-
className:
|
|
28
|
+
className: (state) => cx(toast_module_default.toast, resolveClassName(className, state)),
|
|
28
29
|
...props
|
|
29
30
|
});
|
|
30
31
|
});
|
|
31
32
|
const ToastTitle = forwardRef(function ToastTitle({ className, ...props }, ref) {
|
|
32
33
|
return /* @__PURE__ */ jsx(Toast.Title, {
|
|
33
34
|
ref,
|
|
34
|
-
className:
|
|
35
|
+
className: (state) => cx(toast_module_default.title, resolveClassName(className, state)),
|
|
35
36
|
...props
|
|
36
37
|
});
|
|
37
38
|
});
|
|
38
39
|
const ToastDescription = forwardRef(function ToastDescription({ className, ...props }, ref) {
|
|
39
40
|
return /* @__PURE__ */ jsx(Toast.Description, {
|
|
40
41
|
ref,
|
|
41
|
-
className:
|
|
42
|
+
className: (state) => cx(toast_module_default.description, resolveClassName(className, state)),
|
|
42
43
|
...props
|
|
43
44
|
});
|
|
44
45
|
});
|
|
45
46
|
const ToastClose = forwardRef(function ToastClose({ className, ...props }, ref) {
|
|
46
47
|
return /* @__PURE__ */ jsx(Toast.Close, {
|
|
47
48
|
ref,
|
|
48
|
-
className:
|
|
49
|
+
className: (state) => cx(toast_module_default.close, resolveClassName(className, state)),
|
|
49
50
|
...props
|
|
50
51
|
});
|
|
51
52
|
});
|
|
52
53
|
const ToastViewportPart = forwardRef(function ToastViewportPart({ className, ...props }, ref) {
|
|
53
54
|
return /* @__PURE__ */ jsx(Toast.Viewport, {
|
|
54
55
|
ref,
|
|
55
|
-
className:
|
|
56
|
+
className: (state) => cx(toast_module_default.viewport, resolveClassName(className, state)),
|
|
56
57
|
...props
|
|
57
58
|
});
|
|
58
59
|
});
|
package/dist/toast/parts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.js","names":["BaseToast","styles"],"sources":["../../src/toast/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Toast.\n *\n * @example\n * ```tsx\n * import { Toast } from '@base-ui/react/toast';\n * import { ToastRoot, ToastTitle, ToastDescription, ToastClose } from '@brijbyte/agentic-ui/toast';\n *\n * // Inside a Toast.Viewport or custom viewport:\n * manager.toasts.map((toast) => (\n * <ToastRoot key={toast.id} toast={toast}>\n * <ToastTitle />\n * <ToastDescription />\n * <ToastClose aria-label=\"Dismiss\" />\n * </ToastRoot>\n * ))\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport styles from \"./toast.module.css\";\n\ntype BaseRootProps = ComponentPropsWithoutRef<typeof BaseToast.Root>;\ntype BaseTitleProps = ComponentPropsWithoutRef<typeof BaseToast.Title>;\ntype BaseDescriptionProps = ComponentPropsWithoutRef<typeof BaseToast.Description>;\ntype BaseCloseProps = ComponentPropsWithoutRef<typeof BaseToast.Close>;\ntype BaseViewportProps = ComponentPropsWithoutRef<typeof BaseToast.Viewport>;\n\nexport interface ToastRootProps extends
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseToast","styles"],"sources":["../../src/toast/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Toast.\n *\n * @example\n * ```tsx\n * import { Toast } from '@base-ui/react/toast';\n * import { ToastRoot, ToastTitle, ToastDescription, ToastClose } from '@brijbyte/agentic-ui/toast';\n *\n * // Inside a Toast.Viewport or custom viewport:\n * manager.toasts.map((toast) => (\n * <ToastRoot key={toast.id} toast={toast}>\n * <ToastTitle />\n * <ToastDescription />\n * <ToastClose aria-label=\"Dismiss\" />\n * </ToastRoot>\n * ))\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport styles from \"./toast.module.css\";\nimport { resolveClassName, cx } from \"../utils/resolveClassName\";\n\ntype BaseRootProps = ComponentPropsWithoutRef<typeof BaseToast.Root>;\ntype BaseTitleProps = ComponentPropsWithoutRef<typeof BaseToast.Title>;\ntype BaseDescriptionProps = ComponentPropsWithoutRef<typeof BaseToast.Description>;\ntype BaseCloseProps = ComponentPropsWithoutRef<typeof BaseToast.Close>;\ntype BaseViewportProps = ComponentPropsWithoutRef<typeof BaseToast.Viewport>;\n\nexport interface ToastRootProps extends BaseRootProps {}\nexport interface ToastTitleProps extends BaseTitleProps {}\nexport interface ToastDescriptionProps extends BaseDescriptionProps {}\nexport interface ToastCloseProps extends BaseCloseProps {}\nexport interface ToastViewportPartProps extends BaseViewportProps {}\n\nexport const ToastRoot = forwardRef<ComponentRef<typeof BaseToast.Root>, ToastRootProps>(function ToastRoot({ className, ...props }, ref) {\n return <BaseToast.Root ref={ref} className={(state) => cx(styles.toast, resolveClassName(className, state))} {...props} />;\n});\n\nexport const ToastTitle = forwardRef<ComponentRef<typeof BaseToast.Title>, ToastTitleProps>(function ToastTitle(\n { className, ...props },\n ref,\n) {\n return <BaseToast.Title ref={ref} className={(state) => cx(styles.title, resolveClassName(className, state))} {...props} />;\n});\n\nexport const ToastDescription = forwardRef<ComponentRef<typeof BaseToast.Description>, ToastDescriptionProps>(function ToastDescription(\n { className, ...props },\n ref,\n) {\n return <BaseToast.Description ref={ref} className={(state) => cx(styles.description, resolveClassName(className, state))} {...props} />;\n});\n\nexport const ToastClose = forwardRef<ComponentRef<typeof BaseToast.Close>, ToastCloseProps>(function ToastClose(\n { className, ...props },\n ref,\n) {\n return <BaseToast.Close ref={ref} className={(state) => cx(styles.close, resolveClassName(className, state))} {...props} />;\n});\n\nexport const ToastViewportPart = forwardRef<ComponentRef<typeof BaseToast.Viewport>, ToastViewportPartProps>(function ToastViewportPart(\n { className, ...props },\n ref,\n) {\n return <BaseToast.Viewport ref={ref} className={(state) => cx(styles.viewport, resolveClassName(className, state))} {...props} />;\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAa,YAAY,WAAgE,SAAS,UAAU,EAAE,WAAW,GAAG,SAAS,KAAK;AACxI,QAAO,oBAACA,MAAU,MAAX;EAAqB;EAAK,YAAY,UAAU,GAAGC,qBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC1H;AAEF,MAAa,aAAa,WAAkE,SAAS,WACnG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,MAAU,OAAX;EAAsB;EAAK,YAAY,UAAU,GAAGC,qBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC3H;AAEF,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,MAAU,aAAX;EAA4B;EAAK,YAAY,UAAU,GAAGC,qBAAO,aAAa,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EACvI;AAEF,MAAa,aAAa,WAAkE,SAAS,WACnG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,MAAU,OAAX;EAAsB;EAAK,YAAY,UAAU,GAAGC,qBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC3H;AAEF,MAAa,oBAAoB,WAA4E,SAAS,kBACpH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,MAAU,UAAX;EAAyB;EAAK,YAAY,UAAU,GAAGC,qBAAO,UAAU,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EACjI"}
|
package/dist/toast/toast.d.ts
CHANGED
|
@@ -24,16 +24,27 @@ interface ToastViewportProps {
|
|
|
24
24
|
}
|
|
25
25
|
interface ToastProviderProps {
|
|
26
26
|
children: ReactNode;
|
|
27
|
+
/** Layout style for the viewport. @default "list" */
|
|
27
28
|
variant?: ToastViewportProps["variant"];
|
|
29
|
+
/** Maximum number of toasts shown at once. */
|
|
28
30
|
limit?: number;
|
|
31
|
+
/** Auto-dismiss delay in milliseconds. */
|
|
29
32
|
timeout?: number;
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Drop-in provider that wires limit defaults to the chosen viewport variant.
|
|
36
|
+
* Use this instead of base-ui's `Toast.Provider` when using `ToastViewport`.
|
|
37
|
+
*/
|
|
31
38
|
declare function ToastProvider({
|
|
32
39
|
children,
|
|
33
40
|
variant,
|
|
34
41
|
limit,
|
|
35
42
|
timeout
|
|
36
43
|
}: ToastProviderProps): react_jsx_runtime0.JSX.Element;
|
|
44
|
+
/**
|
|
45
|
+
* Renders and manages toast notifications. Supports `"stacked"` (Sonner-style
|
|
46
|
+
* fanned cards) and `"list"` (vertically stacked, each fully visible) layouts.
|
|
47
|
+
*/
|
|
37
48
|
declare function ToastViewport({
|
|
38
49
|
variant,
|
|
39
50
|
limit: _limit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","names":[],"sources":["../../src/toast/toast.tsx"],"mappings":";;;;;;KAIY,SAAA;AAAA,cAGC,eAAA,SAAe,KAAA,CAAA,eAAA;AAAA,UAgDX,kBAAA;EAnDL;;;;;AAGZ;;EAwDE,OAAA;EAxD0B;;AAgD5B;;;EAcE,KAAA;AAAA;AAAA,UAQe,kBAAA;EACf,QAAA,EAAU,SAAA
|
|
1
|
+
{"version":3,"file":"toast.d.ts","names":[],"sources":["../../src/toast/toast.tsx"],"mappings":";;;;;;KAIY,SAAA;AAAA,cAGC,eAAA,SAAe,KAAA,CAAA,eAAA;AAAA,UAgDX,kBAAA;EAnDL;;;;;AAGZ;;EAwDE,OAAA;EAxD0B;;AAgD5B;;;EAcE,KAAA;AAAA;AAAA,UAQe,kBAAA;EACf,QAAA,EAAU,SAAA;;EAEV,OAAA,GAAU,kBAAA;EAFV;EAIA,KAAA;EAFA;EAIA,OAAA;AAAA;;;;AAgBF;iBAAgB,aAAA,CAAA;EAAgB,QAAA;EAAU,OAAA;EAAkB,KAAA;EAAO;AAAA,GAAW,kBAAA,GAAkB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;iBAahF,aAAA,CAAA;EAAgB,OAAA;EAAkB,KAAA,EAAO;AAAA,GAAU,kBAAA,GAAkB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/toast/toast.js
CHANGED
|
@@ -118,6 +118,10 @@ const MAX_LIMIT = {
|
|
|
118
118
|
stacked: 10,
|
|
119
119
|
list: 5
|
|
120
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Drop-in provider that wires limit defaults to the chosen viewport variant.
|
|
123
|
+
* Use this instead of base-ui's `Toast.Provider` when using `ToastViewport`.
|
|
124
|
+
*/
|
|
121
125
|
function ToastProvider({ children, variant = "list", limit, timeout }) {
|
|
122
126
|
const resolvedLimit = Math.min(limit ?? DEFAULT_LIMIT[variant], MAX_LIMIT[variant]);
|
|
123
127
|
return /* @__PURE__ */ jsx(Toast.Provider, {
|
|
@@ -126,6 +130,10 @@ function ToastProvider({ children, variant = "list", limit, timeout }) {
|
|
|
126
130
|
children
|
|
127
131
|
});
|
|
128
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Renders and manages toast notifications. Supports `"stacked"` (Sonner-style
|
|
135
|
+
* fanned cards) and `"list"` (vertically stacked, each fully visible) layouts.
|
|
136
|
+
*/
|
|
129
137
|
function ToastViewport({ variant = "list", limit: _limit }) {
|
|
130
138
|
const manager = useToastManager();
|
|
131
139
|
const isStacked = variant === "stacked";
|
package/dist/toast/toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":["BaseToast","styles"],"sources":["../../src/toast/toast.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport styles from \"./toast.module.css\";\n\nexport type ToastType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n// Re-export for consumer convenience\nexport const useToastManager = BaseToast.useToastManager;\n\nfunction XIcon() {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\n <path d=\"M1 1L9 9M9 1L1 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction StatusIcon({ type }: { type: string }) {\n if (type === \"success\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-success\"]}`}>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M4.5 8L6.5 10.5L11 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n }\n if (type === \"error\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-error\"]}`}>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5.5 5.5L10.5 10.5M10.5 5.5L5.5 10.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n }\n if (type === \"warning\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-warning\"]}`}>\n <path d=\"M8 2L14.5 13H1.5L8 2Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M8 6.5V9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n );\n }\n if (type === \"info\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-info\"]}`}>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7V11\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n );\n }\n return null;\n}\n\nexport interface ToastViewportProps {\n /**\n * \"stacked\" — toasts fan out behind each other like Sonner.\n * Collapsed: only the front toast is fully visible; others peek as\n * scaled-down cards behind it. Hover/focus expands the full stack.\n *\n * \"list\" — toasts stack vertically, each fully visible (default behaviour).\n */\n variant?: \"stacked\" | \"list\";\n /**\n * Maximum number of toasts shown at once.\n * Defaults to 5 for \"stacked\", 3 for \"list\".\n * Oldest toasts are removed when the limit is exceeded.\n */\n limit?: number;\n}\n\nconst DEFAULT_LIMIT: Record<NonNullable<ToastViewportProps[\"variant\"]>, number> = {\n stacked: 5,\n list: 3,\n};\n\nexport interface ToastProviderProps {\n children: ReactNode;\n variant?: ToastViewportProps[\"variant\"];\n limit?: number;\n timeout?: number;\n}\n\n/**\n * Drop-in provider that wires limit defaults to the chosen variant.\n * Use this instead of base-ui's Toast.Provider when using ToastViewport.\n */\nconst MAX_LIMIT: Record<NonNullable<ToastViewportProps[\"variant\"]>, number> = {\n stacked: 10,\n list: 5,\n};\n\nexport function ToastProvider({ children, variant = \"list\", limit, timeout }: ToastProviderProps) {\n const resolvedLimit = Math.min(limit ?? DEFAULT_LIMIT[variant], MAX_LIMIT[variant]);\n return (\n <BaseToast.Provider limit={resolvedLimit} timeout={timeout}>\n {children}\n </BaseToast.Provider>\n );\n}\n\nexport function ToastViewport({ variant = \"list\", limit: _limit }: ToastViewportProps) {\n const manager = useToastManager();\n const isStacked = variant === \"stacked\";\n\n return (\n <BaseToast.Viewport className={`${styles.viewport} ${isStacked ? styles[\"viewport-stacked\"] : styles[\"viewport-list\"]}`}>\n {manager.toasts.map((toast) => (\n <BaseToast.Root\n key={toast.id}\n toast={toast}\n className={`${styles.toast} ${isStacked ? styles[\"toast-stacked\"] : \"\"} ${styles[`toast-${toast.type ?? \"default\"}`]}`}\n swipeDirection={isStacked ? [\"right\", \"down\"] : [\"right\", \"down\"]}\n >\n {toast.type && toast.type !== \"default\" && <StatusIcon type={toast.type} />}\n <div className={styles.content}>\n {toast.title && <BaseToast.Title className={styles.title} />}\n {toast.description && <BaseToast.Description className={styles.description} />}\n </div>\n <BaseToast.Close className={styles.close} aria-label=\"Dismiss\">\n <XIcon />\n </BaseToast.Close>\n </BaseToast.Root>\n ))}\n </BaseToast.Viewport>\n );\n}\nexport { styles as ToastStyles };\n"],"mappings":";;;;AAOA,MAAa,kBAAkBA,MAAU;AAEzC,SAAS,QAAQ;AACf,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;YACnD,oBAAC,QAAD;GAAM,GAAE;GAAmB,QAAO;GAAe,aAAY;GAAM,eAAc;GAAU,CAAA;EACvF,CAAA;;AAIV,SAAS,WAAW,EAAE,QAA0B;AAC9C,KAAI,SAAS,UACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGC,qBAAO,KAAK,GAAGA,qBAAO;YAAzE,CACE,oBAAC,UAAD;GAAQ,IAAG;GAAI,IAAG;GAAI,GAAE;GAAI,QAAO;GAAe,aAAY;GAAQ,CAAA,EACtE,oBAAC,QAAD;GAAM,GAAE;GAAuB,QAAO;GAAe,aAAY;GAAM,eAAc;GAAQ,gBAAe;GAAU,CAAA,CAClH;;AAGV,KAAI,SAAS,QACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGA,qBAAO,KAAK,GAAGA,qBAAO;YAAzE,CACE,oBAAC,UAAD;GAAQ,IAAG;GAAI,IAAG;GAAI,GAAE;GAAI,QAAO;GAAe,aAAY;GAAQ,CAAA,EACtE,oBAAC,QAAD;GAAM,GAAE;GAAuC,QAAO;GAAe,aAAY;GAAM,eAAc;GAAU,CAAA,CAC3G;;AAGV,KAAI,SAAS,UACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGA,qBAAO,KAAK,GAAGA,qBAAO;YAAzE;GACE,oBAAC,QAAD;IAAM,GAAE;IAAwB,QAAO;IAAe,aAAY;IAAM,gBAAe;IAAU,CAAA;GACjG,oBAAC,QAAD;IAAM,GAAE;IAAW,QAAO;IAAe,aAAY;IAAM,eAAc;IAAU,CAAA;GACnF,oBAAC,UAAD;IAAQ,IAAG;IAAI,IAAG;IAAK,GAAE;IAAO,MAAK;IAAiB,CAAA;GAClD;;AAGV,KAAI,SAAS,OACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGA,qBAAO,KAAK,GAAGA,qBAAO;YAAzE;GACE,oBAAC,UAAD;IAAQ,IAAG;IAAI,IAAG;IAAI,GAAE;IAAI,QAAO;IAAe,aAAY;IAAQ,CAAA;GACtE,oBAAC,QAAD;IAAM,GAAE;IAAU,QAAO;IAAe,aAAY;IAAM,eAAc;IAAU,CAAA;GAClF,oBAAC,UAAD;IAAQ,IAAG;IAAI,IAAG;IAAI,GAAE;IAAO,MAAK;IAAiB,CAAA;GACjD;;AAGV,QAAO;;AAoBT,MAAM,gBAA4E;CAChF,SAAS;CACT,MAAM;CACP;;;;;
|
|
1
|
+
{"version":3,"file":"toast.js","names":["BaseToast","styles"],"sources":["../../src/toast/toast.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport styles from \"./toast.module.css\";\n\nexport type ToastType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n// Re-export for consumer convenience\nexport const useToastManager = BaseToast.useToastManager;\n\nfunction XIcon() {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\n <path d=\"M1 1L9 9M9 1L1 9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction StatusIcon({ type }: { type: string }) {\n if (type === \"success\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-success\"]}`}>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M4.5 8L6.5 10.5L11 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n }\n if (type === \"error\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-error\"]}`}>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5.5 5.5L10.5 10.5M10.5 5.5L5.5 10.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n }\n if (type === \"warning\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-warning\"]}`}>\n <path d=\"M8 2L14.5 13H1.5L8 2Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M8 6.5V9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n );\n }\n if (type === \"info\") {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" className={`${styles.icon} ${styles[\"icon-info\"]}`}>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7V11\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n );\n }\n return null;\n}\n\nexport interface ToastViewportProps {\n /**\n * \"stacked\" — toasts fan out behind each other like Sonner.\n * Collapsed: only the front toast is fully visible; others peek as\n * scaled-down cards behind it. Hover/focus expands the full stack.\n *\n * \"list\" — toasts stack vertically, each fully visible (default behaviour).\n */\n variant?: \"stacked\" | \"list\";\n /**\n * Maximum number of toasts shown at once.\n * Defaults to 5 for \"stacked\", 3 for \"list\".\n * Oldest toasts are removed when the limit is exceeded.\n */\n limit?: number;\n}\n\nconst DEFAULT_LIMIT: Record<NonNullable<ToastViewportProps[\"variant\"]>, number> = {\n stacked: 5,\n list: 3,\n};\n\nexport interface ToastProviderProps {\n children: ReactNode;\n /** Layout style for the viewport. @default \"list\" */\n variant?: ToastViewportProps[\"variant\"];\n /** Maximum number of toasts shown at once. */\n limit?: number;\n /** Auto-dismiss delay in milliseconds. */\n timeout?: number;\n}\n\n/**\n * Drop-in provider that wires limit defaults to the chosen variant.\n * Use this instead of base-ui's Toast.Provider when using ToastViewport.\n */\nconst MAX_LIMIT: Record<NonNullable<ToastViewportProps[\"variant\"]>, number> = {\n stacked: 10,\n list: 5,\n};\n\n/**\n * Drop-in provider that wires limit defaults to the chosen viewport variant.\n * Use this instead of base-ui's `Toast.Provider` when using `ToastViewport`.\n */\nexport function ToastProvider({ children, variant = \"list\", limit, timeout }: ToastProviderProps) {\n const resolvedLimit = Math.min(limit ?? DEFAULT_LIMIT[variant], MAX_LIMIT[variant]);\n return (\n <BaseToast.Provider limit={resolvedLimit} timeout={timeout}>\n {children}\n </BaseToast.Provider>\n );\n}\n\n/**\n * Renders and manages toast notifications. Supports `\"stacked\"` (Sonner-style\n * fanned cards) and `\"list\"` (vertically stacked, each fully visible) layouts.\n */\nexport function ToastViewport({ variant = \"list\", limit: _limit }: ToastViewportProps) {\n const manager = useToastManager();\n const isStacked = variant === \"stacked\";\n\n return (\n <BaseToast.Viewport className={`${styles.viewport} ${isStacked ? styles[\"viewport-stacked\"] : styles[\"viewport-list\"]}`}>\n {manager.toasts.map((toast) => (\n <BaseToast.Root\n key={toast.id}\n toast={toast}\n className={`${styles.toast} ${isStacked ? styles[\"toast-stacked\"] : \"\"} ${styles[`toast-${toast.type ?? \"default\"}`]}`}\n swipeDirection={isStacked ? [\"right\", \"down\"] : [\"right\", \"down\"]}\n >\n {toast.type && toast.type !== \"default\" && <StatusIcon type={toast.type} />}\n <div className={styles.content}>\n {toast.title && <BaseToast.Title className={styles.title} />}\n {toast.description && <BaseToast.Description className={styles.description} />}\n </div>\n <BaseToast.Close className={styles.close} aria-label=\"Dismiss\">\n <XIcon />\n </BaseToast.Close>\n </BaseToast.Root>\n ))}\n </BaseToast.Viewport>\n );\n}\nexport { styles as ToastStyles };\n"],"mappings":";;;;AAOA,MAAa,kBAAkBA,MAAU;AAEzC,SAAS,QAAQ;AACf,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;YACnD,oBAAC,QAAD;GAAM,GAAE;GAAmB,QAAO;GAAe,aAAY;GAAM,eAAc;GAAU,CAAA;EACvF,CAAA;;AAIV,SAAS,WAAW,EAAE,QAA0B;AAC9C,KAAI,SAAS,UACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGC,qBAAO,KAAK,GAAGA,qBAAO;YAAzE,CACE,oBAAC,UAAD;GAAQ,IAAG;GAAI,IAAG;GAAI,GAAE;GAAI,QAAO;GAAe,aAAY;GAAQ,CAAA,EACtE,oBAAC,QAAD;GAAM,GAAE;GAAuB,QAAO;GAAe,aAAY;GAAM,eAAc;GAAQ,gBAAe;GAAU,CAAA,CAClH;;AAGV,KAAI,SAAS,QACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGA,qBAAO,KAAK,GAAGA,qBAAO;YAAzE,CACE,oBAAC,UAAD;GAAQ,IAAG;GAAI,IAAG;GAAI,GAAE;GAAI,QAAO;GAAe,aAAY;GAAQ,CAAA,EACtE,oBAAC,QAAD;GAAM,GAAE;GAAuC,QAAO;GAAe,aAAY;GAAM,eAAc;GAAU,CAAA,CAC3G;;AAGV,KAAI,SAAS,UACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGA,qBAAO,KAAK,GAAGA,qBAAO;YAAzE;GACE,oBAAC,QAAD;IAAM,GAAE;IAAwB,QAAO;IAAe,aAAY;IAAM,gBAAe;IAAU,CAAA;GACjG,oBAAC,QAAD;IAAM,GAAE;IAAW,QAAO;IAAe,aAAY;IAAM,eAAc;IAAU,CAAA;GACnF,oBAAC,UAAD;IAAQ,IAAG;IAAI,IAAG;IAAK,GAAE;IAAO,MAAK;IAAiB,CAAA;GAClD;;AAGV,KAAI,SAAS,OACX,QACE,qBAAC,OAAD;EAAK,SAAQ;EAAY,MAAK;EAAO,WAAW,GAAGA,qBAAO,KAAK,GAAGA,qBAAO;YAAzE;GACE,oBAAC,UAAD;IAAQ,IAAG;IAAI,IAAG;IAAI,GAAE;IAAI,QAAO;IAAe,aAAY;IAAQ,CAAA;GACtE,oBAAC,QAAD;IAAM,GAAE;IAAU,QAAO;IAAe,aAAY;IAAM,eAAc;IAAU,CAAA;GAClF,oBAAC,UAAD;IAAQ,IAAG;IAAI,IAAG;IAAI,GAAE;IAAO,MAAK;IAAiB,CAAA;GACjD;;AAGV,QAAO;;AAoBT,MAAM,gBAA4E;CAChF,SAAS;CACT,MAAM;CACP;;;;;AAgBD,MAAM,YAAwE;CAC5E,SAAS;CACT,MAAM;CACP;;;;;AAMD,SAAgB,cAAc,EAAE,UAAU,UAAU,QAAQ,OAAO,WAA+B;CAChG,MAAM,gBAAgB,KAAK,IAAI,SAAS,cAAc,UAAU,UAAU,SAAS;AACnF,QACE,oBAACD,MAAU,UAAX;EAAoB,OAAO;EAAwB;EAChD;EACkB,CAAA;;;;;;AAQzB,SAAgB,cAAc,EAAE,UAAU,QAAQ,OAAO,UAA8B;CACrF,MAAM,UAAU,iBAAiB;CACjC,MAAM,YAAY,YAAY;AAE9B,QACE,oBAACA,MAAU,UAAX;EAAoB,WAAW,GAAGC,qBAAO,SAAS,GAAG,YAAYA,qBAAO,sBAAsBA,qBAAO;YAClG,QAAQ,OAAO,KAAK,UACnB,qBAACD,MAAU,MAAX;GAES;GACP,WAAW,GAAGC,qBAAO,MAAM,GAAG,YAAYA,qBAAO,mBAAmB,GAAG,GAAGA,qBAAO,SAAS,MAAM,QAAQ;GACxG,gBAAgB,YAAY,CAAC,SAAS,OAAO,GAAG,CAAC,SAAS,OAAO;aAJnE;IAMG,MAAM,QAAQ,MAAM,SAAS,aAAa,oBAAC,YAAD,EAAY,MAAM,MAAM,MAAQ,CAAA;IAC3E,qBAAC,OAAD;KAAK,WAAWA,qBAAO;eAAvB,CACG,MAAM,SAAS,oBAACD,MAAU,OAAX,EAAiB,WAAWC,qBAAO,OAAS,CAAA,EAC3D,MAAM,eAAe,oBAACD,MAAU,aAAX,EAAuB,WAAWC,qBAAO,aAAe,CAAA,CAC1E;;IACN,oBAACD,MAAU,OAAX;KAAiB,WAAWC,qBAAO;KAAO,cAAW;eACnD,oBAAC,OAAD,EAAS,CAAA;KACO,CAAA;IACH;KAbV,MAAM,GAaI,CACjB;EACiB,CAAA"}
|