@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/tooltip/parts.d.ts
CHANGED
|
@@ -6,15 +6,9 @@ import { Tooltip } from "@base-ui/react/tooltip";
|
|
|
6
6
|
type BasePositionerProps = ComponentPropsWithoutRef<typeof Tooltip.Positioner>;
|
|
7
7
|
type BasePopupProps = ComponentPropsWithoutRef<typeof Tooltip.Popup>;
|
|
8
8
|
type BaseArrowProps = ComponentPropsWithoutRef<typeof Tooltip.Arrow>;
|
|
9
|
-
interface TooltipPositionerProps extends
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
interface TooltipPopupProps extends Omit<BasePopupProps, "className"> {
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
interface TooltipArrowProps extends Omit<BaseArrowProps, "className"> {
|
|
16
|
-
className?: string;
|
|
17
|
-
}
|
|
9
|
+
interface TooltipPositionerProps extends BasePositionerProps {}
|
|
10
|
+
interface TooltipPopupProps extends BasePopupProps {}
|
|
11
|
+
interface TooltipArrowProps extends BaseArrowProps {}
|
|
18
12
|
declare const TooltipPositioner: react.ForwardRefExoticComponent<TooltipPositionerProps & react.RefAttributes<HTMLDivElement>>;
|
|
19
13
|
declare const TooltipPopup: react.ForwardRefExoticComponent<TooltipPopupProps & react.RefAttributes<HTMLDivElement>>;
|
|
20
14
|
declare const TooltipArrow: react.ForwardRefExoticComponent<TooltipArrowProps & react.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/tooltip/parts.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/tooltip/parts.tsx"],"mappings":";;;;;KA6BK,mBAAA,GAAsB,wBAAA,QAAgC,OAAA,CAAY,UAAA;AAAA,KAClE,cAAA,GAAiB,wBAAA,QAAgC,OAAA,CAAY,KAAA;AAAA,KAC7D,cAAA,GAAiB,wBAAA,QAAgC,OAAA,CAAY,KAAA;AAAA,UAEjD,sBAAA,SAA+B,mBAAA;AAAA,UAC/B,iBAAA,SAA0B,cAAA;AAAA,UAC1B,iBAAA,SAA0B,cAAA;AAAA,cAE9B,iBAAA,EAAiB,KAAA,CAAA,yBAAA,CAAA,sBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOjB,YAAA,EAAY,KAAA,CAAA,yBAAA,CAAA,iBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOZ,YAAA,EAAY,KAAA,CAAA,yBAAA,CAAA,iBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA"}
|
package/dist/tooltip/parts.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cx, resolveClassName } from "../utils/resolveClassName.js";
|
|
1
2
|
import tooltip_module_default from "./tooltip.module.js";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
import { forwardRef } from "react";
|
|
@@ -29,21 +30,21 @@ import { Tooltip } from "@base-ui/react/tooltip";
|
|
|
29
30
|
const TooltipPositioner = forwardRef(function TooltipPositioner({ className, ...props }, ref) {
|
|
30
31
|
return /* @__PURE__ */ jsx(Tooltip.Positioner, {
|
|
31
32
|
ref,
|
|
32
|
-
className:
|
|
33
|
+
className: (state) => cx(tooltip_module_default.positioner, resolveClassName(className, state)),
|
|
33
34
|
...props
|
|
34
35
|
});
|
|
35
36
|
});
|
|
36
37
|
const TooltipPopup = forwardRef(function TooltipPopup({ className, ...props }, ref) {
|
|
37
38
|
return /* @__PURE__ */ jsx(Tooltip.Popup, {
|
|
38
39
|
ref,
|
|
39
|
-
className:
|
|
40
|
+
className: (state) => cx(tooltip_module_default.popup, resolveClassName(className, state)),
|
|
40
41
|
...props
|
|
41
42
|
});
|
|
42
43
|
});
|
|
43
44
|
const TooltipArrow = forwardRef(function TooltipArrow({ className, ...props }, ref) {
|
|
44
45
|
return /* @__PURE__ */ jsx(Tooltip.Arrow, {
|
|
45
46
|
ref,
|
|
46
|
-
className:
|
|
47
|
+
className: (state) => cx(tooltip_module_default.arrow, resolveClassName(className, state)),
|
|
47
48
|
...props
|
|
48
49
|
});
|
|
49
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.js","names":["BaseTooltip","styles"],"sources":["../../src/tooltip/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Tooltip.\n *\n * @example\n * ```tsx\n * import { Tooltip } from '@base-ui/react/tooltip';\n * import { TooltipPositioner, TooltipPopup, TooltipArrow } from '@brijbyte/agentic-ui/tooltip';\n *\n * <Tooltip.Provider>\n * <Tooltip.Root>\n * <Tooltip.Trigger render={<button>Hover me</button>} />\n * <Tooltip.Portal>\n * <TooltipPositioner side=\"top\" sideOffset={6}>\n * <TooltipPopup>\n * <TooltipArrow />\n * Tooltip content\n * </TooltipPopup>\n * </TooltipPositioner>\n * </Tooltip.Portal>\n * </Tooltip.Root>\n * </Tooltip.Provider>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport styles from \"./tooltip.module.css\";\n\ntype BasePositionerProps = ComponentPropsWithoutRef<typeof BaseTooltip.Positioner>;\ntype BasePopupProps = ComponentPropsWithoutRef<typeof BaseTooltip.Popup>;\ntype BaseArrowProps = ComponentPropsWithoutRef<typeof BaseTooltip.Arrow>;\n\nexport interface TooltipPositionerProps extends
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseTooltip","styles"],"sources":["../../src/tooltip/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Tooltip.\n *\n * @example\n * ```tsx\n * import { Tooltip } from '@base-ui/react/tooltip';\n * import { TooltipPositioner, TooltipPopup, TooltipArrow } from '@brijbyte/agentic-ui/tooltip';\n *\n * <Tooltip.Provider>\n * <Tooltip.Root>\n * <Tooltip.Trigger render={<button>Hover me</button>} />\n * <Tooltip.Portal>\n * <TooltipPositioner side=\"top\" sideOffset={6}>\n * <TooltipPopup>\n * <TooltipArrow />\n * Tooltip content\n * </TooltipPopup>\n * </TooltipPositioner>\n * </Tooltip.Portal>\n * </Tooltip.Root>\n * </Tooltip.Provider>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport styles from \"./tooltip.module.css\";\nimport { resolveClassName, cx } from \"../utils/resolveClassName\";\n\ntype BasePositionerProps = ComponentPropsWithoutRef<typeof BaseTooltip.Positioner>;\ntype BasePopupProps = ComponentPropsWithoutRef<typeof BaseTooltip.Popup>;\ntype BaseArrowProps = ComponentPropsWithoutRef<typeof BaseTooltip.Arrow>;\n\nexport interface TooltipPositionerProps extends BasePositionerProps {}\nexport interface TooltipPopupProps extends BasePopupProps {}\nexport interface TooltipArrowProps extends BaseArrowProps {}\n\nexport const TooltipPositioner = forwardRef<ComponentRef<typeof BaseTooltip.Positioner>, TooltipPositionerProps>(function TooltipPositioner(\n { className, ...props },\n ref,\n) {\n return <BaseTooltip.Positioner ref={ref} className={(state) => cx(styles.positioner, resolveClassName(className, state))} {...props} />;\n});\n\nexport const TooltipPopup = forwardRef<ComponentRef<typeof BaseTooltip.Popup>, TooltipPopupProps>(function TooltipPopup(\n { className, ...props },\n ref,\n) {\n return <BaseTooltip.Popup ref={ref} className={(state) => cx(styles.popup, resolveClassName(className, state))} {...props} />;\n});\n\nexport const TooltipArrow = forwardRef<ComponentRef<typeof BaseTooltip.Arrow>, TooltipArrowProps>(function TooltipArrow(\n { className, ...props },\n ref,\n) {\n return <BaseTooltip.Arrow ref={ref} className={(state) => cx(styles.arrow, resolveClassName(className, state))} {...props} />;\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,MAAa,oBAAoB,WAAgF,SAAS,kBACxH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,QAAY,YAAb;EAA6B;EAAK,YAAY,UAAU,GAAGC,uBAAO,YAAY,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EACvI;AAEF,MAAa,eAAe,WAAsE,SAAS,aACzG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,QAAY,OAAb;EAAwB;EAAK,YAAY,UAAU,GAAGC,uBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC7H;AAEF,MAAa,eAAe,WAAsE,SAAS,aACzG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,QAAY,OAAb;EAAwB;EAAK,YAAY,UAAU,GAAGC,uBAAO,OAAO,iBAAiB,WAAW,MAAM,CAAC;EAAE,GAAI;EAAS,CAAA;EAC7H"}
|
|
@@ -4,12 +4,21 @@ import styles from "./tooltip.module.css";
|
|
|
4
4
|
|
|
5
5
|
//#region src/tooltip/tooltip.d.ts
|
|
6
6
|
interface TooltipProps {
|
|
7
|
+
/** Text or rich content shown inside the tooltip popup. */
|
|
7
8
|
content: ReactNode;
|
|
9
|
+
/** The element that triggers the tooltip on hover/focus. */
|
|
8
10
|
children: ReactElement;
|
|
11
|
+
/** Hover delay in milliseconds before the tooltip appears. @default 400 */
|
|
9
12
|
delay?: number;
|
|
13
|
+
/** Which side of the trigger the tooltip appears on. @default "top" */
|
|
10
14
|
side?: "top" | "bottom" | "left" | "right";
|
|
15
|
+
/** Alignment along the side axis. @default "center" */
|
|
11
16
|
align?: "start" | "center" | "end";
|
|
12
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Accessible popup shown on hover or focus. Automatically positions itself
|
|
20
|
+
* with an arrow and supports configurable delay, side, and alignment.
|
|
21
|
+
*/
|
|
13
22
|
declare function Tooltip({
|
|
14
23
|
content,
|
|
15
24
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","names":[],"sources":["../../src/tooltip/tooltip.tsx"],"mappings":";;;;;UAIiB,YAAA
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","names":[],"sources":["../../src/tooltip/tooltip.tsx"],"mappings":";;;;;UAIiB,YAAA;;EAEf,OAAA,EAAS,SAAA;EAFM;EAIf,QAAA,EAAU,YAAA;;EAEV,KAAA;EAJA;EAMA,IAAA;EAJA;EAMA,KAAA;AAAA;;;;;iBAOc,OAAA,CAAA;EAAU,OAAA;EAAS,QAAA;EAAU,KAAA;EAAa,IAAA;EAAc;AAAA,GAAoB,YAAA,GAAY,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/tooltip/tooltip.js
CHANGED
|
@@ -2,6 +2,10 @@ import tooltip_module_default from "./tooltip.module.js";
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Tooltip } from "@base-ui/react/tooltip";
|
|
4
4
|
//#region src/tooltip/tooltip.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Accessible popup shown on hover or focus. Automatically positions itself
|
|
7
|
+
* with an arrow and supports configurable delay, side, and alignment.
|
|
8
|
+
*/
|
|
5
9
|
function Tooltip$1({ content, children, delay = 400, side = "top", align = "center" }) {
|
|
6
10
|
return /* @__PURE__ */ jsx(Tooltip.Provider, {
|
|
7
11
|
delay,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","names":["Tooltip","BaseTooltip","styles"],"sources":["../../src/tooltip/tooltip.tsx"],"sourcesContent":["import type { ReactNode, ReactElement } from \"react\";\nimport { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport styles from \"./tooltip.module.css\";\n\nexport interface TooltipProps {\n content: ReactNode;\n children: ReactElement;\n delay?: number;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n}\n\nexport function Tooltip({ content, children, delay = 400, side = \"top\", align = \"center\" }: TooltipProps) {\n return (\n <BaseTooltip.Provider delay={delay}>\n <BaseTooltip.Root>\n <BaseTooltip.Trigger render={children} />\n <BaseTooltip.Portal>\n <BaseTooltip.Positioner className={styles.positioner} side={side} align={align} sideOffset={6}>\n <BaseTooltip.Popup className={styles.popup}>\n <BaseTooltip.Arrow className={styles.arrow} />\n {content}\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n </BaseTooltip.Root>\n </BaseTooltip.Provider>\n );\n}\nexport { styles as TooltipStyles };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":["Tooltip","BaseTooltip","styles"],"sources":["../../src/tooltip/tooltip.tsx"],"sourcesContent":["import type { ReactNode, ReactElement } from \"react\";\nimport { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport styles from \"./tooltip.module.css\";\n\nexport interface TooltipProps {\n /** Text or rich content shown inside the tooltip popup. */\n content: ReactNode;\n /** The element that triggers the tooltip on hover/focus. */\n children: ReactElement;\n /** Hover delay in milliseconds before the tooltip appears. @default 400 */\n delay?: number;\n /** Which side of the trigger the tooltip appears on. @default \"top\" */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /** Alignment along the side axis. @default \"center\" */\n align?: \"start\" | \"center\" | \"end\";\n}\n\n/**\n * Accessible popup shown on hover or focus. Automatically positions itself\n * with an arrow and supports configurable delay, side, and alignment.\n */\nexport function Tooltip({ content, children, delay = 400, side = \"top\", align = \"center\" }: TooltipProps) {\n return (\n <BaseTooltip.Provider delay={delay}>\n <BaseTooltip.Root>\n <BaseTooltip.Trigger render={children} />\n <BaseTooltip.Portal>\n <BaseTooltip.Positioner className={styles.positioner} side={side} align={align} sideOffset={6}>\n <BaseTooltip.Popup className={styles.popup}>\n <BaseTooltip.Arrow className={styles.arrow} />\n {content}\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n </BaseTooltip.Root>\n </BaseTooltip.Provider>\n );\n}\nexport { styles as TooltipStyles };\n"],"mappings":";;;;;;;;AAqBA,SAAgBA,UAAQ,EAAE,SAAS,UAAU,QAAQ,KAAK,OAAO,OAAO,QAAQ,YAA0B;AACxG,QACE,oBAACC,QAAY,UAAb;EAA6B;YAC3B,qBAACA,QAAY,MAAb,EAAA,UAAA,CACE,oBAACA,QAAY,SAAb,EAAqB,QAAQ,UAAY,CAAA,EACzC,oBAACA,QAAY,QAAb,EAAA,UACE,oBAACA,QAAY,YAAb;GAAwB,WAAWC,uBAAO;GAAkB;GAAa;GAAO,YAAY;aAC1F,qBAACD,QAAY,OAAb;IAAmB,WAAWC,uBAAO;cAArC,CACE,oBAACD,QAAY,OAAb,EAAmB,WAAWC,uBAAO,OAAS,CAAA,EAC7C,QACiB;;GACG,CAAA,EACN,CAAA,CACJ,EAAA,CAAA;EACE,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/utils/resolveClassName.ts
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a base-ui className prop (string | function | undefined) into a string.
|
|
4
|
+
* When the className is a function, it is called with the component state.
|
|
5
|
+
* Used by styled parts to merge our fixed style class with the consumer's className.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* // In a styled part, prepend our class while preserving function className support:
|
|
10
|
+
* className={(state) => cx(styles.root, resolveClassName(className, state))}
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
function resolveClassName(className, state) {
|
|
14
|
+
return typeof className === "function" ? className(state) : className;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Joins class name strings, filtering out falsy values.
|
|
18
|
+
*/
|
|
19
|
+
function cx(...classes) {
|
|
20
|
+
return classes.filter(Boolean).join(" ");
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { cx, resolveClassName };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=resolveClassName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveClassName.js","names":[],"sources":["../../src/utils/resolveClassName.ts"],"sourcesContent":["/**\n * Resolves a base-ui className prop (string | function | undefined) into a string.\n * When the className is a function, it is called with the component state.\n * Used by styled parts to merge our fixed style class with the consumer's className.\n *\n * @example\n * ```tsx\n * // In a styled part, prepend our class while preserving function className support:\n * className={(state) => cx(styles.root, resolveClassName(className, state))}\n * ```\n */\nexport function resolveClassName<State>(\n className: string | ((state: State) => string | undefined) | undefined,\n state: State,\n): string | undefined {\n return typeof className === \"function\" ? className(state) : className;\n}\n\n/**\n * Joins class name strings, filtering out falsy values.\n */\nexport function cx(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,iBACd,WACA,OACoB;AACpB,QAAO,OAAO,cAAc,aAAa,UAAU,MAAM,GAAG;;;;;AAM9D,SAAgB,GAAG,GAAG,SAAwD;AAC5E,QAAO,QAAQ,OAAO,QAAQ,CAAC,KAAK,IAAI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brijbyte/agentic-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"./layer-order": "./dist/layer-order.css",
|
|
29
29
|
"./tokens": "./dist/tokens.css",
|
|
30
30
|
"./reset": "./dist/reset.css",
|
|
31
|
+
"./reset-scoped": "./dist/reset-scoped.css",
|
|
31
32
|
"./tailwind-theme": "./dist/tailwind-theme.css",
|
|
32
33
|
"./alert-dialog": {
|
|
33
34
|
"import": "./dist/alert-dialog/index.js",
|
|
@@ -89,6 +90,11 @@
|
|
|
89
90
|
"types": "./dist/menu/index.d.ts"
|
|
90
91
|
},
|
|
91
92
|
"./menu.css": "./dist/menu/menu.css",
|
|
93
|
+
"./meter": {
|
|
94
|
+
"import": "./dist/meter/index.js",
|
|
95
|
+
"types": "./dist/meter/index.d.ts"
|
|
96
|
+
},
|
|
97
|
+
"./meter.css": "./dist/meter/meter.css",
|
|
92
98
|
"./number-field": {
|
|
93
99
|
"import": "./dist/number-field/index.js",
|
|
94
100
|
"types": "./dist/number-field/index.d.ts"
|
|
@@ -99,6 +105,16 @@
|
|
|
99
105
|
"types": "./dist/progress/index.d.ts"
|
|
100
106
|
},
|
|
101
107
|
"./progress.css": "./dist/progress/progress.css",
|
|
108
|
+
"./radio": {
|
|
109
|
+
"import": "./dist/radio/index.js",
|
|
110
|
+
"types": "./dist/radio/index.d.ts"
|
|
111
|
+
},
|
|
112
|
+
"./radio.css": "./dist/radio/radio.css",
|
|
113
|
+
"./radio-group": {
|
|
114
|
+
"import": "./dist/radio-group/index.js",
|
|
115
|
+
"types": "./dist/radio-group/index.d.ts"
|
|
116
|
+
},
|
|
117
|
+
"./radio-group.css": "./dist/radio-group/radio-group.css",
|
|
102
118
|
"./select": {
|
|
103
119
|
"import": "./dist/select/index.js",
|
|
104
120
|
"types": "./dist/select/index.d.ts"
|
|
@@ -133,7 +149,12 @@
|
|
|
133
149
|
"import": "./dist/tooltip/index.js",
|
|
134
150
|
"types": "./dist/tooltip/index.d.ts"
|
|
135
151
|
},
|
|
136
|
-
"./tooltip.css": "./dist/tooltip/tooltip.css"
|
|
152
|
+
"./tooltip.css": "./dist/tooltip/tooltip.css",
|
|
153
|
+
"./popover": {
|
|
154
|
+
"import": "./dist/popover/index.js",
|
|
155
|
+
"types": "./dist/popover/index.d.ts"
|
|
156
|
+
},
|
|
157
|
+
"./popover.css": "./dist/popover/popover.css"
|
|
137
158
|
},
|
|
138
159
|
"publishConfig": {
|
|
139
160
|
"access": "public",
|
|
@@ -143,8 +164,8 @@
|
|
|
143
164
|
"@base-ui/react": "^1.3.0"
|
|
144
165
|
},
|
|
145
166
|
"devDependencies": {
|
|
146
|
-
"@types/react": "^19.
|
|
147
|
-
"@types/react-dom": "^19.
|
|
167
|
+
"@types/react": "^19.2.14",
|
|
168
|
+
"@types/react-dom": "^19.2.3"
|
|
148
169
|
},
|
|
149
170
|
"peerDependencies": {
|
|
150
171
|
"react": "^19.0.0",
|
|
@@ -3,17 +3,26 @@ import { Accordion as BaseAccordion } from "@base-ui/react/accordion";
|
|
|
3
3
|
import styles from "./accordion.module.css";
|
|
4
4
|
|
|
5
5
|
export interface AccordionItem {
|
|
6
|
+
/** Unique identifier for this panel. */
|
|
6
7
|
value: string;
|
|
8
|
+
/** Content rendered inside the trigger button. */
|
|
7
9
|
header: ReactNode;
|
|
10
|
+
/** Content revealed when the panel is expanded. */
|
|
8
11
|
content: ReactNode;
|
|
12
|
+
/** When `true`, the item cannot be toggled. */
|
|
9
13
|
disabled?: boolean;
|
|
10
14
|
}
|
|
11
15
|
|
|
12
16
|
export interface AccordionProps {
|
|
17
|
+
/** Array of items to render as collapsible panels. */
|
|
13
18
|
items: AccordionItem[];
|
|
19
|
+
/** Allow multiple panels open at once. @default true */
|
|
14
20
|
multiple?: boolean;
|
|
21
|
+
/** Initially expanded panel values (uncontrolled). */
|
|
15
22
|
defaultValue?: string[];
|
|
23
|
+
/** Currently expanded panel values (controlled). */
|
|
16
24
|
value?: string[];
|
|
25
|
+
/** Called when the set of open panels changes. */
|
|
17
26
|
onValueChange?: (value: string[]) => void;
|
|
18
27
|
className?: string;
|
|
19
28
|
}
|
|
@@ -26,6 +35,11 @@ function ChevronIcon() {
|
|
|
26
35
|
);
|
|
27
36
|
}
|
|
28
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Collapsible content panels. Wraps `@base-ui/react` Accordion with pre-styled
|
|
40
|
+
* headers, triggers, and animated panels. Pass `multiple` to allow more than one
|
|
41
|
+
* panel open at a time.
|
|
42
|
+
*/
|
|
29
43
|
export function Accordion({ items, className, multiple = true, ...props }: AccordionProps) {
|
|
30
44
|
return (
|
|
31
45
|
<BaseAccordion.Root className={`${styles.root} ${className ?? ""}`} multiple={multiple} {...props}>
|
package/src/accordion/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Accordion } from "./accordion";
|
|
2
2
|
export type { AccordionProps, AccordionItem } from "./accordion";
|
|
3
3
|
|
|
4
|
-
export {
|
|
4
|
+
export { AccordionItemPart, AccordionHeader, AccordionTrigger, AccordionPanel } from "./parts";
|
|
5
5
|
export type { AccordionItemProps, AccordionHeaderProps, AccordionTriggerProps, AccordionPanelProps } from "./parts";
|
|
6
6
|
export { AccordionStyles } from "./accordion";
|
package/src/accordion/parts.tsx
CHANGED
|
@@ -20,49 +20,42 @@ import { forwardRef } from "react";
|
|
|
20
20
|
import type { ComponentRef, ComponentPropsWithoutRef } from "react";
|
|
21
21
|
import { Accordion as BaseAccordion } from "@base-ui/react/accordion";
|
|
22
22
|
import styles from "./accordion.module.css";
|
|
23
|
+
import { resolveClassName, cx } from "../utils/resolveClassName";
|
|
23
24
|
|
|
24
25
|
type BaseItemProps = ComponentPropsWithoutRef<typeof BaseAccordion.Item>;
|
|
25
26
|
type BaseHeaderProps = ComponentPropsWithoutRef<typeof BaseAccordion.Header>;
|
|
26
27
|
type BaseTriggerProps = ComponentPropsWithoutRef<typeof BaseAccordion.Trigger>;
|
|
27
28
|
type BasePanelProps = ComponentPropsWithoutRef<typeof BaseAccordion.Panel>;
|
|
28
29
|
|
|
29
|
-
export interface AccordionItemProps extends
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
export interface
|
|
33
|
-
className?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface AccordionTriggerProps extends Omit<BaseTriggerProps, "className"> {
|
|
36
|
-
className?: string;
|
|
37
|
-
}
|
|
38
|
-
export interface AccordionPanelProps extends Omit<BasePanelProps, "className"> {
|
|
39
|
-
className?: string;
|
|
40
|
-
}
|
|
30
|
+
export interface AccordionItemProps extends BaseItemProps {}
|
|
31
|
+
export interface AccordionHeaderProps extends BaseHeaderProps {}
|
|
32
|
+
export interface AccordionTriggerProps extends BaseTriggerProps {}
|
|
33
|
+
export interface AccordionPanelProps extends BasePanelProps {}
|
|
41
34
|
|
|
42
|
-
export const
|
|
35
|
+
export const AccordionItemPart = forwardRef<ComponentRef<typeof BaseAccordion.Item>, AccordionItemProps>(function AccordionItemPart(
|
|
43
36
|
{ className, ...props },
|
|
44
37
|
ref,
|
|
45
38
|
) {
|
|
46
|
-
return <BaseAccordion.Item ref={ref} className={
|
|
39
|
+
return <BaseAccordion.Item ref={ref} className={(state) => cx(styles.item, resolveClassName(className, state))} {...props} />;
|
|
47
40
|
});
|
|
48
41
|
|
|
49
42
|
export const AccordionHeader = forwardRef<ComponentRef<typeof BaseAccordion.Header>, AccordionHeaderProps>(function AccordionHeader(
|
|
50
43
|
{ className, ...props },
|
|
51
44
|
ref,
|
|
52
45
|
) {
|
|
53
|
-
return <BaseAccordion.Header ref={ref} className={
|
|
46
|
+
return <BaseAccordion.Header ref={ref} className={(state) => cx(styles.header, resolveClassName(className, state))} {...props} />;
|
|
54
47
|
});
|
|
55
48
|
|
|
56
49
|
export const AccordionTrigger = forwardRef<ComponentRef<typeof BaseAccordion.Trigger>, AccordionTriggerProps>(function AccordionTrigger(
|
|
57
50
|
{ className, ...props },
|
|
58
51
|
ref,
|
|
59
52
|
) {
|
|
60
|
-
return <BaseAccordion.Trigger ref={ref} className={
|
|
53
|
+
return <BaseAccordion.Trigger ref={ref} className={(state) => cx(styles.trigger, resolveClassName(className, state))} {...props} />;
|
|
61
54
|
});
|
|
62
55
|
|
|
63
56
|
export const AccordionPanel = forwardRef<ComponentRef<typeof BaseAccordion.Panel>, AccordionPanelProps>(function AccordionPanel(
|
|
64
57
|
{ className, ...props },
|
|
65
58
|
ref,
|
|
66
59
|
) {
|
|
67
|
-
return <BaseAccordion.Panel ref={ref} className={
|
|
60
|
+
return <BaseAccordion.Panel ref={ref} className={(state) => cx(styles.panel, resolveClassName(className, state))} {...props} />;
|
|
68
61
|
});
|
|
@@ -14,13 +14,19 @@ export interface AlertAction {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export interface AlertDialogProps {
|
|
17
|
+
/** Controlled open state. */
|
|
17
18
|
open?: boolean;
|
|
19
|
+
/** Whether the dialog is initially open (uncontrolled). */
|
|
18
20
|
defaultOpen?: boolean;
|
|
21
|
+
/** Called when the dialog opens or closes. */
|
|
19
22
|
onOpenChange?: (open: boolean, eventDetails: unknown) => void;
|
|
23
|
+
/** Element that opens the dialog when clicked. */
|
|
20
24
|
trigger?: ReactElement;
|
|
21
25
|
/** Optional icon shown above the title. */
|
|
22
26
|
icon?: ReactNode;
|
|
27
|
+
/** Dialog heading text. */
|
|
23
28
|
title: ReactNode;
|
|
29
|
+
/** Supplementary text below the title. */
|
|
24
30
|
description?: ReactNode;
|
|
25
31
|
/**
|
|
26
32
|
* Action buttons rendered right-aligned.
|
|
@@ -31,6 +37,11 @@ export interface AlertDialogProps {
|
|
|
31
37
|
className?: string;
|
|
32
38
|
}
|
|
33
39
|
|
|
40
|
+
/**
|
|
41
|
+
* A modal that requires a user response before continuing. Blocks interaction
|
|
42
|
+
* with the rest of the page until dismissed. Two actions render side-by-side;
|
|
43
|
+
* three or more stack vertically.
|
|
44
|
+
*/
|
|
34
45
|
export function AlertDialog({ trigger, icon, title, description, actions, className, onOpenChange, ...props }: AlertDialogProps) {
|
|
35
46
|
return (
|
|
36
47
|
<BaseAlertDialog.Root onOpenChange={onOpenChange as never} {...props}>
|
|
@@ -3,52 +3,42 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
5
5
|
* ```tsx
|
|
6
|
-
* import { AlertDialog
|
|
7
|
-
* import { Button } from '@brijbyte/agentic-ui/button';
|
|
6
|
+
* import { AlertDialog } from '@base-ui/react/alert-dialog';
|
|
8
7
|
* import { AlertDialogBackdrop, AlertDialogPopup, AlertDialogTitle, AlertDialogDescription } from '@brijbyte/agentic-ui/alert-dialog';
|
|
9
8
|
*
|
|
10
|
-
* <
|
|
11
|
-
* <
|
|
12
|
-
* <
|
|
9
|
+
* <AlertDialog.Root>
|
|
10
|
+
* <AlertDialog.Trigger render={<button>Open</button>} />
|
|
11
|
+
* <AlertDialog.Portal>
|
|
13
12
|
* <AlertDialogBackdrop />
|
|
14
|
-
* <
|
|
15
|
-
* <
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* </BaseAlertDialog.Portal>
|
|
23
|
-
* </BaseAlertDialog.Root>
|
|
13
|
+
* <AlertDialog.Viewport>
|
|
14
|
+
* <AlertDialogPopup>
|
|
15
|
+
* <AlertDialogTitle>Confirm</AlertDialogTitle>
|
|
16
|
+
* <AlertDialogDescription>Are you sure?</AlertDialogDescription>
|
|
17
|
+
* </AlertDialogPopup>
|
|
18
|
+
* </AlertDialog.Viewport>
|
|
19
|
+
* </AlertDialog.Portal>
|
|
20
|
+
* </AlertDialog.Root>
|
|
24
21
|
* ```
|
|
25
22
|
*/
|
|
26
23
|
import { forwardRef } from "react";
|
|
27
24
|
import type { ComponentRef, ComponentPropsWithoutRef } from "react";
|
|
28
25
|
import { AlertDialog as BaseAlertDialog } from "@base-ui/react/alert-dialog";
|
|
29
26
|
import styles from "./alert-dialog.module.css";
|
|
27
|
+
import { resolveClassName, cx } from "../utils/resolveClassName";
|
|
30
28
|
|
|
31
29
|
type BaseBackdropProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Backdrop>;
|
|
32
30
|
type BasePopupProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Popup>;
|
|
33
31
|
type BaseTitleProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Title>;
|
|
34
32
|
type BaseDescriptionProps = ComponentPropsWithoutRef<typeof BaseAlertDialog.Description>;
|
|
35
33
|
|
|
36
|
-
export interface AlertDialogBackdropProps extends
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
export interface
|
|
40
|
-
className?: string;
|
|
41
|
-
}
|
|
42
|
-
export interface AlertDialogTitleProps extends Omit<BaseTitleProps, "className"> {
|
|
43
|
-
className?: string;
|
|
44
|
-
}
|
|
45
|
-
export interface AlertDialogDescriptionProps extends Omit<BaseDescriptionProps, "className"> {
|
|
46
|
-
className?: string;
|
|
47
|
-
}
|
|
34
|
+
export interface AlertDialogBackdropProps extends BaseBackdropProps {}
|
|
35
|
+
export interface AlertDialogPopupProps extends BasePopupProps {}
|
|
36
|
+
export interface AlertDialogTitleProps extends BaseTitleProps {}
|
|
37
|
+
export interface AlertDialogDescriptionProps extends BaseDescriptionProps {}
|
|
48
38
|
|
|
49
39
|
export const AlertDialogBackdrop = forwardRef<ComponentRef<typeof BaseAlertDialog.Backdrop>, AlertDialogBackdropProps>(
|
|
50
40
|
function AlertDialogBackdrop({ className, ...props }, ref) {
|
|
51
|
-
return <BaseAlertDialog.Backdrop ref={ref} className={
|
|
41
|
+
return <BaseAlertDialog.Backdrop ref={ref} className={(state) => cx(styles.backdrop, resolveClassName(className, state))} {...props} />;
|
|
52
42
|
},
|
|
53
43
|
);
|
|
54
44
|
|
|
@@ -56,18 +46,20 @@ export const AlertDialogPopup = forwardRef<ComponentRef<typeof BaseAlertDialog.P
|
|
|
56
46
|
{ className, ...props },
|
|
57
47
|
ref,
|
|
58
48
|
) {
|
|
59
|
-
return <BaseAlertDialog.Popup ref={ref} className={
|
|
49
|
+
return <BaseAlertDialog.Popup ref={ref} className={(state) => cx(styles.popup, resolveClassName(className, state))} {...props} />;
|
|
60
50
|
});
|
|
61
51
|
|
|
62
52
|
export const AlertDialogTitle = forwardRef<ComponentRef<typeof BaseAlertDialog.Title>, AlertDialogTitleProps>(function AlertDialogTitle(
|
|
63
53
|
{ className, ...props },
|
|
64
54
|
ref,
|
|
65
55
|
) {
|
|
66
|
-
return <BaseAlertDialog.Title ref={ref} className={
|
|
56
|
+
return <BaseAlertDialog.Title ref={ref} className={(state) => cx(styles.title, resolveClassName(className, state))} {...props} />;
|
|
67
57
|
});
|
|
68
58
|
|
|
69
59
|
export const AlertDialogDescription = forwardRef<ComponentRef<typeof BaseAlertDialog.Description>, AlertDialogDescriptionProps>(
|
|
70
60
|
function AlertDialogDescription({ className, ...props }, ref) {
|
|
71
|
-
return
|
|
61
|
+
return (
|
|
62
|
+
<BaseAlertDialog.Description ref={ref} className={(state) => cx(styles.description, resolveClassName(className, state))} {...props} />
|
|
63
|
+
);
|
|
72
64
|
},
|
|
73
65
|
);
|
package/src/badge/badge.tsx
CHANGED
|
@@ -4,10 +4,16 @@ import styles from "./badge.module.css";
|
|
|
4
4
|
export type BadgeVariant = "default" | "solid" | "soft" | "success" | "warning" | "error" | "info";
|
|
5
5
|
|
|
6
6
|
export interface BadgeProps extends ComponentPropsWithoutRef<"span"> {
|
|
7
|
+
/** Visual style and semantic colour. @default "default" */
|
|
7
8
|
variant?: BadgeVariant;
|
|
9
|
+
/** Show a small coloured dot indicator before the label. */
|
|
8
10
|
dot?: boolean;
|
|
9
11
|
}
|
|
10
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Compact label for status, counts, and categories. A plain styled `<span>` —
|
|
15
|
+
* no base-ui dependency.
|
|
16
|
+
*/
|
|
11
17
|
export function Badge({ variant = "default", dot = false, className, children, ...props }: BadgeProps) {
|
|
12
18
|
return (
|
|
13
19
|
<span className={[styles.root, styles[`variant-${variant}`], className ?? ""].filter(Boolean).join(" ")} {...props}>
|
package/src/button/button.tsx
CHANGED
|
@@ -8,10 +8,13 @@ export type ButtonTone = "primary" | "secondary" | "destructive" | "success" | "
|
|
|
8
8
|
export type ButtonSize = "xs" | "sm" | "md" | "lg";
|
|
9
9
|
|
|
10
10
|
export interface ButtonProps extends ComponentPropsWithoutRef<"button"> {
|
|
11
|
+
/** Visual shape — filled, tinted, outlined, or borderless. @default "solid" */
|
|
11
12
|
variant?: ButtonVariant;
|
|
12
|
-
/** Semantic
|
|
13
|
+
/** Semantic colour. @default "primary" */
|
|
13
14
|
tone?: ButtonTone | undefined;
|
|
15
|
+
/** Controls padding and font size. @default "md" */
|
|
14
16
|
size?: ButtonSize | undefined;
|
|
17
|
+
/** Shows a spinner overlay and disables interaction. */
|
|
15
18
|
loading?: boolean | undefined;
|
|
16
19
|
/**
|
|
17
20
|
* Text shown in place of children while loading.
|
|
@@ -19,11 +22,19 @@ export interface ButtonProps extends ComponentPropsWithoutRef<"button"> {
|
|
|
19
22
|
* When omitted, children stay rendered invisibly — width stays stable.
|
|
20
23
|
*/
|
|
21
24
|
loadingText?: string | undefined;
|
|
25
|
+
/** Renders as a square button with equal padding on all sides. */
|
|
22
26
|
iconOnly?: boolean | undefined;
|
|
27
|
+
/** Custom render element forwarded to base-ui Button. */
|
|
23
28
|
render?: ReactElement | undefined;
|
|
29
|
+
/** Use a native `<button>` element. @default true */
|
|
24
30
|
nativeButton?: boolean | undefined;
|
|
25
31
|
}
|
|
26
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Pressable button with multiple variants, tones, and sizes. Composes
|
|
35
|
+
* `@base-ui/react` Button with focus management and disabled-while-loading.
|
|
36
|
+
* Supports a spinner overlay that preserves button width.
|
|
37
|
+
*/
|
|
27
38
|
export const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(
|
|
28
39
|
{
|
|
29
40
|
variant = "solid",
|
package/src/card/card.tsx
CHANGED
|
@@ -2,7 +2,9 @@ import type { ComponentPropsWithoutRef, ReactNode } from "react";
|
|
|
2
2
|
import styles from "./card.module.css";
|
|
3
3
|
|
|
4
4
|
export interface CardProps extends ComponentPropsWithoutRef<"div"> {
|
|
5
|
+
/** Apply a raised shadow for layered surfaces. */
|
|
5
6
|
elevated?: boolean;
|
|
7
|
+
/** Add hover/active states for clickable cards. */
|
|
6
8
|
interactive?: boolean;
|
|
7
9
|
}
|
|
8
10
|
|
|
@@ -10,9 +12,14 @@ export interface CardProps extends ComponentPropsWithoutRef<"div"> {
|
|
|
10
12
|
export interface CardHeaderProps extends Omit<ComponentPropsWithoutRef<"div">, "title"> {
|
|
11
13
|
/** Card heading rendered in the header area. */
|
|
12
14
|
heading?: ReactNode;
|
|
15
|
+
/** Secondary text below the heading. */
|
|
13
16
|
description?: ReactNode;
|
|
14
17
|
}
|
|
15
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Surface container with optional header, body, and footer slots.
|
|
21
|
+
* Pure HTML — no base-ui dependency.
|
|
22
|
+
*/
|
|
16
23
|
export function Card({ elevated, interactive, className, children, ...props }: CardProps) {
|
|
17
24
|
return (
|
|
18
25
|
<div
|
|
@@ -26,6 +33,7 @@ export function Card({ elevated, interactive, className, children, ...props }: C
|
|
|
26
33
|
);
|
|
27
34
|
}
|
|
28
35
|
|
|
36
|
+
/** Header area with optional heading and description. */
|
|
29
37
|
export function CardHeader({ heading, description, className, children, ...props }: CardHeaderProps) {
|
|
30
38
|
return (
|
|
31
39
|
<div className={`${styles.header} ${className ?? ""}`} {...props}>
|
|
@@ -36,6 +44,7 @@ export function CardHeader({ heading, description, className, children, ...props
|
|
|
36
44
|
);
|
|
37
45
|
}
|
|
38
46
|
|
|
47
|
+
/** Padded body content area. */
|
|
39
48
|
export function CardBody({ className, children, ...props }: ComponentPropsWithoutRef<"div">) {
|
|
40
49
|
return (
|
|
41
50
|
<div className={`${styles.body} ${className ?? ""}`} {...props}>
|
|
@@ -44,6 +53,7 @@ export function CardBody({ className, children, ...props }: ComponentPropsWithou
|
|
|
44
53
|
);
|
|
45
54
|
}
|
|
46
55
|
|
|
56
|
+
/** Footer area, typically used for actions. */
|
|
47
57
|
export function CardFooter({ className, children, ...props }: ComponentPropsWithoutRef<"div">) {
|
|
48
58
|
return (
|
|
49
59
|
<div className={`${styles.footer} ${className ?? ""}`} {...props}>
|
|
@@ -4,20 +4,33 @@ import { Checkbox as BaseCheckbox } from "@base-ui/react/checkbox";
|
|
|
4
4
|
import styles from "./checkbox.module.css";
|
|
5
5
|
|
|
6
6
|
export interface CheckboxProps {
|
|
7
|
+
/** Controlled checked state. */
|
|
7
8
|
checked?: boolean;
|
|
9
|
+
/** Initial checked state (uncontrolled). */
|
|
8
10
|
defaultChecked?: boolean;
|
|
11
|
+
/** Display a horizontal dash instead of a checkmark. */
|
|
9
12
|
indeterminate?: boolean;
|
|
13
|
+
/** Prevent interaction and dim the checkbox. */
|
|
10
14
|
disabled?: boolean;
|
|
15
|
+
/** Mark the field as required for form validation. */
|
|
11
16
|
required?: boolean;
|
|
17
|
+
/** HTML name attribute for form submission. */
|
|
12
18
|
name?: string;
|
|
19
|
+
/** HTML value attribute for form submission. */
|
|
13
20
|
value?: string;
|
|
14
21
|
/** Called when checked state changes. `eventDetails` is the base-ui event details object. */
|
|
15
22
|
onCheckedChange?: (checked: boolean, eventDetails: unknown) => void;
|
|
23
|
+
/** Label content rendered next to the checkbox. */
|
|
16
24
|
children?: ReactNode;
|
|
25
|
+
/** Override the auto-generated element id. */
|
|
17
26
|
id?: string;
|
|
18
27
|
className?: string;
|
|
19
28
|
}
|
|
20
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Boolean selection with an accessible label. Wraps `@base-ui/react` Checkbox
|
|
32
|
+
* with a styled indicator, check icon, and label layout.
|
|
33
|
+
*/
|
|
21
34
|
export function Checkbox({ children, id, className, onCheckedChange, ...props }: CheckboxProps) {
|
|
22
35
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
23
36
|
const checkboxId = id ?? useId();
|