@brijbyte/agentic-ui 0.0.1-beta → 0.0.2
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 +808 -0
- package/dist/accordion/accordion.css +85 -0
- package/dist/accordion/accordion.d.ts +28 -0
- package/dist/accordion/accordion.d.ts.map +1 -0
- package/dist/accordion/accordion.js +51 -0
- package/dist/accordion/accordion.js.map +1 -0
- package/dist/accordion/accordion.module.css.d.ts +2 -0
- package/dist/accordion/accordion.module.js +14 -0
- package/dist/accordion/accordion.module.js.map +1 -0
- package/dist/accordion/index.d.ts +3 -0
- package/dist/accordion/index.js +4 -0
- package/dist/accordion/parts.d.ts +28 -0
- package/dist/accordion/parts.d.ts.map +1 -0
- package/dist/accordion/parts.js +55 -0
- package/dist/accordion/parts.js.map +1 -0
- package/dist/alert-dialog/alert-dialog.css +84 -0
- package/dist/alert-dialog/alert-dialog.d.ts +44 -0
- package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog/alert-dialog.js +46 -0
- package/dist/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
- package/dist/alert-dialog/alert-dialog.module.js +14 -0
- package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
- package/dist/alert-dialog/index.d.ts +3 -0
- package/dist/alert-dialog/index.js +4 -0
- package/dist/alert-dialog/parts.d.ts +28 -0
- package/dist/alert-dialog/parts.d.ts.map +1 -0
- package/dist/alert-dialog/parts.js +62 -0
- package/dist/alert-dialog/parts.js.map +1 -0
- package/dist/badge/badge.css +66 -0
- package/dist/badge/badge.d.ts +20 -0
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/badge.js +21 -0
- package/dist/badge/badge.js.map +1 -0
- package/dist/badge/badge.module.css.d.ts +2 -0
- package/dist/badge/badge.module.js +16 -0
- package/dist/badge/badge.module.js.map +1 -0
- package/dist/badge/index.d.ts +2 -0
- package/dist/badge/index.js +3 -0
- package/dist/button/button.css +242 -0
- package/dist/button/button.d.ts +28 -0
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/button.js +34 -0
- package/dist/button/button.js.map +1 -0
- package/dist/button/button.module.css.d.ts +2 -0
- package/dist/button/button.module.js +27 -0
- package/dist/button/button.module.js.map +1 -0
- package/dist/button/index.d.ts +2 -0
- package/dist/button/index.js +3 -0
- package/dist/card/card.css +64 -0
- package/dist/card/card.d.ts +41 -0
- package/dist/card/card.d.ts.map +1 -0
- package/dist/card/card.js +50 -0
- package/dist/card/card.js.map +1 -0
- package/dist/card/card.module.css.d.ts +2 -0
- package/dist/card/card.module.js +15 -0
- package/dist/card/card.module.js.map +1 -0
- package/dist/card/index.d.ts +2 -0
- package/dist/card/index.js +3 -0
- package/dist/checkbox/checkbox.css +72 -0
- package/dist/checkbox/checkbox.d.ts +29 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -0
- package/dist/checkbox/checkbox.js +40 -0
- package/dist/checkbox/checkbox.js.map +1 -0
- package/dist/checkbox/checkbox.module.css.d.ts +2 -0
- package/dist/checkbox/checkbox.module.js +11 -0
- package/dist/checkbox/checkbox.module.js.map +1 -0
- package/dist/checkbox/index.d.ts +3 -0
- package/dist/checkbox/index.js +4 -0
- package/dist/checkbox/parts.d.ts +20 -0
- package/dist/checkbox/parts.d.ts.map +1 -0
- package/dist/checkbox/parts.js +51 -0
- package/dist/checkbox/parts.js.map +1 -0
- package/dist/collapsible/collapsible.css +88 -0
- package/dist/collapsible/collapsible.d.ts +24 -0
- package/dist/collapsible/collapsible.d.ts.map +1 -0
- package/dist/collapsible/collapsible.js +44 -0
- package/dist/collapsible/collapsible.js.map +1 -0
- package/dist/collapsible/collapsible.module.css.d.ts +2 -0
- package/dist/collapsible/collapsible.module.js +12 -0
- package/dist/collapsible/collapsible.module.js.map +1 -0
- package/dist/collapsible/index.d.ts +3 -0
- package/dist/collapsible/index.js +4 -0
- package/dist/collapsible/parts.d.ts +23 -0
- package/dist/collapsible/parts.d.ts.map +1 -0
- package/dist/collapsible/parts.js +44 -0
- package/dist/collapsible/parts.js.map +1 -0
- package/dist/context-menu/context-menu.css +151 -0
- package/dist/context-menu/context-menu.d.ts +36 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +54 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/context-menu/context-menu.module.css.d.ts +2 -0
- package/dist/context-menu/context-menu.module.js +18 -0
- package/dist/context-menu/context-menu.module.js.map +1 -0
- package/dist/context-menu/index.d.ts +3 -0
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/parts.d.ts +38 -0
- package/dist/context-menu/parts.d.ts.map +1 -0
- package/dist/context-menu/parts.js +91 -0
- package/dist/context-menu/parts.js.map +1 -0
- package/dist/dialog/dialog.css +125 -0
- package/dist/dialog/dialog.d.ts +40 -0
- package/dist/dialog/dialog.d.ts.map +1 -0
- package/dist/dialog/dialog.js +57 -0
- package/dist/dialog/dialog.js.map +1 -0
- package/dist/dialog/dialog.module.css.d.ts +2 -0
- package/dist/dialog/dialog.module.js +17 -0
- package/dist/dialog/dialog.module.js.map +1 -0
- package/dist/dialog/index.d.ts +3 -0
- package/dist/dialog/index.js +4 -0
- package/dist/dialog/parts.d.ts +38 -0
- package/dist/dialog/parts.d.ts.map +1 -0
- package/dist/dialog/parts.js +75 -0
- package/dist/dialog/parts.js.map +1 -0
- package/dist/drawer/drawer.css +253 -0
- package/dist/drawer/drawer.d.ts +38 -0
- package/dist/drawer/drawer.d.ts.map +1 -0
- package/dist/drawer/drawer.js +87 -0
- package/dist/drawer/drawer.js.map +1 -0
- package/dist/drawer/drawer.module.css.d.ts +2 -0
- package/dist/drawer/drawer.module.js +20 -0
- package/dist/drawer/drawer.module.js.map +1 -0
- package/dist/drawer/index.d.ts +3 -0
- package/dist/drawer/index.js +4 -0
- package/dist/drawer/parts.d.ts +58 -0
- package/dist/drawer/parts.d.ts.map +1 -0
- package/dist/drawer/parts.js +107 -0
- package/dist/drawer/parts.js.map +1 -0
- package/dist/index.css +2701 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +62 -0
- package/dist/input/index.d.ts +2 -0
- package/dist/input/index.js +3 -0
- package/dist/input/input.css +103 -0
- package/dist/input/input.d.ts +17 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +37 -0
- package/dist/input/input.js.map +1 -0
- package/dist/input/input.module.css.d.ts +2 -0
- package/dist/input/input.module.js +18 -0
- package/dist/input/input.module.js.map +1 -0
- package/dist/layer-order.css +22 -0
- package/dist/menu/index.d.ts +4 -0
- package/dist/menu/index.js +5 -0
- package/dist/menu/menu.css +154 -0
- package/dist/menu/menu.d.ts +50 -0
- package/dist/menu/menu.d.ts.map +1 -0
- package/dist/menu/menu.js +69 -0
- package/dist/menu/menu.js.map +1 -0
- package/dist/menu/menu.module.css.d.ts +2 -0
- package/dist/menu/menu.module.js +19 -0
- package/dist/menu/menu.module.js.map +1 -0
- package/dist/menu/menuitemshortcut.d.ts +9 -0
- package/dist/menu/menuitemshortcut.d.ts.map +1 -0
- package/dist/menu/menuitemshortcut.js +15 -0
- package/dist/menu/menuitemshortcut.js.map +1 -0
- package/dist/menu/parts.d.ts +39 -0
- package/dist/menu/parts.d.ts.map +1 -0
- package/dist/menu/parts.js +76 -0
- package/dist/menu/parts.js.map +1 -0
- package/dist/number-field/index.d.ts +3 -0
- package/dist/number-field/index.js +4 -0
- package/dist/number-field/number-field.css +111 -0
- package/dist/number-field/number-field.d.ts +31 -0
- package/dist/number-field/number-field.d.ts.map +1 -0
- package/dist/number-field/number-field.js +78 -0
- package/dist/number-field/number-field.js.map +1 -0
- package/dist/number-field/number-field.module.css.d.ts +2 -0
- package/dist/number-field/number-field.module.js +16 -0
- package/dist/number-field/number-field.module.js.map +1 -0
- package/dist/number-field/parts.d.ts +38 -0
- package/dist/number-field/parts.d.ts.map +1 -0
- package/dist/number-field/parts.js +74 -0
- package/dist/number-field/parts.js.map +1 -0
- package/dist/progress/index.d.ts +3 -0
- package/dist/progress/index.js +4 -0
- package/dist/progress/parts.d.ts +20 -0
- package/dist/progress/parts.d.ts.map +1 -0
- package/dist/progress/parts.js +42 -0
- package/dist/progress/parts.js.map +1 -0
- package/dist/progress/progress.css +71 -0
- package/dist/progress/progress.d.ts +27 -0
- package/dist/progress/progress.d.ts.map +1 -0
- package/dist/progress/progress.js +27 -0
- package/dist/progress/progress.js.map +1 -0
- package/dist/progress/progress.module.css.d.ts +2 -0
- package/dist/progress/progress.module.js +19 -0
- package/dist/progress/progress.module.js.map +1 -0
- package/dist/reset.css +91 -0
- package/dist/select/index.d.ts +3 -0
- package/dist/select/index.js +4 -0
- package/dist/select/parts.d.ts +65 -0
- package/dist/select/parts.d.ts.map +1 -0
- package/dist/select/parts.js +134 -0
- package/dist/select/parts.js.map +1 -0
- package/dist/select/select.css +157 -0
- package/dist/select/select.d.ts +41 -0
- package/dist/select/select.d.ts.map +1 -0
- package/dist/select/select.js +89 -0
- package/dist/select/select.js.map +1 -0
- package/dist/select/select.module.css.d.ts +2 -0
- package/dist/select/select.module.js +17 -0
- package/dist/select/select.module.js.map +1 -0
- package/dist/separator/index.d.ts +2 -0
- package/dist/separator/index.js +3 -0
- package/dist/separator/separator.css +16 -0
- package/dist/separator/separator.d.ts +16 -0
- package/dist/separator/separator.d.ts.map +1 -0
- package/dist/separator/separator.js +17 -0
- package/dist/separator/separator.js.map +1 -0
- package/dist/separator/separator.module.css.d.ts +2 -0
- package/dist/separator/separator.module.js +6 -0
- package/dist/separator/separator.module.js.map +1 -0
- package/dist/slider/index.d.ts +3 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/parts.d.ts +38 -0
- package/dist/slider/parts.d.ts.map +1 -0
- package/dist/slider/parts.js +69 -0
- package/dist/slider/parts.js.map +1 -0
- package/dist/slider/slider.css +97 -0
- package/dist/slider/slider.d.ts +38 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +41 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/slider/slider.module.css.d.ts +2 -0
- package/dist/slider/slider.module.js +15 -0
- package/dist/slider/slider.module.js.map +1 -0
- package/dist/styles/reset.css +69 -0
- package/dist/styles/tokens.css +276 -0
- package/dist/switch/index.d.ts +3 -0
- package/dist/switch/index.js +4 -0
- package/dist/switch/parts.d.ts +18 -0
- package/dist/switch/parts.d.ts.map +1 -0
- package/dist/switch/parts.js +39 -0
- package/dist/switch/parts.js.map +1 -0
- package/dist/switch/switch.css +64 -0
- package/dist/switch/switch.d.ts +28 -0
- package/dist/switch/switch.d.ts.map +1 -0
- package/dist/switch/switch.js +26 -0
- package/dist/switch/switch.js.map +1 -0
- package/dist/switch/switch.module.css.d.ts +2 -0
- package/dist/switch/switch.module.js +11 -0
- package/dist/switch/switch.module.js.map +1 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.js +4 -0
- package/dist/tabs/parts.d.ts +23 -0
- package/dist/tabs/parts.d.ts.map +1 -0
- package/dist/tabs/parts.js +48 -0
- package/dist/tabs/parts.js.map +1 -0
- package/dist/tabs/tabs.css +86 -0
- package/dist/tabs/tabs.d.ts +28 -0
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +30 -0
- package/dist/tabs/tabs.js.map +1 -0
- package/dist/tabs/tabs.module.css.d.ts +2 -0
- package/dist/tabs/tabs.module.js +11 -0
- package/dist/tabs/tabs.module.js.map +1 -0
- package/dist/tailwind-theme.css +142 -0
- package/dist/toast/index.d.ts +3 -0
- package/dist/toast/index.js +4 -0
- package/dist/toast/parts.d.ts +33 -0
- package/dist/toast/parts.d.ts.map +1 -0
- package/dist/toast/parts.js +62 -0
- package/dist/toast/parts.js.map +1 -0
- package/dist/toast/toast.css +207 -0
- package/dist/toast/toast.d.ts +43 -0
- package/dist/toast/toast.d.ts.map +1 -0
- package/dist/toast/toast.js +156 -0
- package/dist/toast/toast.js.map +1 -0
- package/dist/toast/toast.module.css.d.ts +2 -0
- package/dist/toast/toast.module.js +25 -0
- package/dist/toast/toast.module.js.map +1 -0
- package/dist/tokens.css +404 -0
- package/dist/tooltip/index.d.ts +3 -0
- package/dist/tooltip/index.js +4 -0
- package/dist/tooltip/parts.d.ts +23 -0
- package/dist/tooltip/parts.d.ts.map +1 -0
- package/dist/tooltip/parts.js +53 -0
- package/dist/tooltip/parts.js.map +1 -0
- package/dist/tooltip/tooltip.css +60 -0
- package/dist/tooltip/tooltip.d.ts +22 -0
- package/dist/tooltip/tooltip.d.ts.map +1 -0
- package/dist/tooltip/tooltip.js +23 -0
- package/dist/tooltip/tooltip.js.map +1 -0
- package/dist/tooltip/tooltip.module.css.d.ts +2 -0
- package/dist/tooltip/tooltip.module.js +10 -0
- package/dist/tooltip/tooltip.module.js.map +1 -0
- package/package.json +153 -4
- package/src/accordion/accordion.module.css +75 -0
- package/src/accordion/accordion.tsx +50 -0
- package/src/accordion/index.ts +6 -0
- package/src/accordion/parts.tsx +68 -0
- package/src/alert-dialog/alert-dialog.module.css +91 -0
- package/src/alert-dialog/alert-dialog.tsx +69 -0
- package/src/alert-dialog/index.ts +7 -0
- package/src/alert-dialog/parts.tsx +73 -0
- package/src/badge/badge.module.css +60 -0
- package/src/badge/badge.tsx +19 -0
- package/src/badge/index.ts +3 -0
- package/src/button/button.module.css +229 -0
- package/src/button/button.tsx +67 -0
- package/src/button/index.ts +3 -0
- package/src/card/card.module.css +56 -0
- package/src/card/card.tsx +54 -0
- package/src/card/index.ts +3 -0
- package/src/checkbox/checkbox.module.css +69 -0
- package/src/checkbox/checkbox.tsx +38 -0
- package/src/checkbox/index.ts +6 -0
- package/src/checkbox/parts.tsx +54 -0
- package/src/collapsible/collapsible.module.css +81 -0
- package/src/collapsible/collapsible.tsx +38 -0
- package/src/collapsible/index.ts +6 -0
- package/src/collapsible/parts.tsx +52 -0
- package/src/context-menu/context-menu.module.css +168 -0
- package/src/context-menu/context-menu.tsx +75 -0
- package/src/context-menu/index.ts +21 -0
- package/src/context-menu/parts.tsx +99 -0
- package/src/css.d.ts +8 -0
- package/src/dialog/dialog.module.css +116 -0
- package/src/dialog/dialog.tsx +73 -0
- package/src/dialog/index.ts +13 -0
- package/src/dialog/parts.tsx +96 -0
- package/src/drawer/drawer.module.css +240 -0
- package/src/drawer/drawer.tsx +96 -0
- package/src/drawer/index.ts +24 -0
- package/src/drawer/parts.tsx +122 -0
- package/src/index.ts +237 -0
- package/src/input/index.ts +3 -0
- package/src/input/input.module.css +93 -0
- package/src/input/input.tsx +39 -0
- package/src/menu/index.ts +7 -0
- package/src/menu/menu.module.css +142 -0
- package/src/menu/menu.tsx +108 -0
- package/src/menu/menuitemshortcut.tsx +9 -0
- package/src/menu/parts.tsx +90 -0
- package/src/number-field/index.ts +20 -0
- package/src/number-field/number-field.module.css +98 -0
- package/src/number-field/number-field.tsx +75 -0
- package/src/number-field/parts.tsx +91 -0
- package/src/progress/index.ts +6 -0
- package/src/progress/parts.tsx +51 -0
- package/src/progress/progress.module.css +61 -0
- package/src/progress/progress.tsx +42 -0
- package/src/select/index.ts +30 -0
- package/src/select/parts.tsx +171 -0
- package/src/select/select.module.css +146 -0
- package/src/select/select.tsx +98 -0
- package/src/separator/index.ts +3 -0
- package/src/separator/separator.module.css +14 -0
- package/src/separator/separator.tsx +20 -0
- package/src/slider/index.ts +14 -0
- package/src/slider/parts.tsx +90 -0
- package/src/slider/slider.module.css +110 -0
- package/src/slider/slider.tsx +68 -0
- package/src/styles/layer-order.css +22 -0
- package/src/styles/reset.css +91 -0
- package/src/styles/tailwind-theme.css +142 -0
- package/src/styles/tokens.css +404 -0
- package/src/switch/index.ts +6 -0
- package/src/switch/parts.tsx +44 -0
- package/src/switch/switch.module.css +57 -0
- package/src/switch/switch.tsx +33 -0
- package/src/tabs/index.ts +6 -0
- package/src/tabs/parts.tsx +48 -0
- package/src/tabs/tabs.module.css +79 -0
- package/src/tabs/tabs.tsx +48 -0
- package/src/toast/index.ts +6 -0
- package/src/toast/parts.tsx +76 -0
- package/src/toast/toast.module.css +212 -0
- package/src/toast/toast.tsx +129 -0
- package/src/tooltip/index.ts +6 -0
- package/src/tooltip/parts.tsx +62 -0
- package/src/tooltip/tooltip.module.css +56 -0
- package/src/tooltip/tooltip.tsx +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","names":["styles","BaseMenu","Menu"],"sources":["../../src/menu/menu.tsx"],"sourcesContent":["import type { ReactNode, ReactElement } from \"react\";\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport styles from \"./menu.module.css\";\n\n// ─── Types ──────────────────────────────────────────────────────────────────\n\nexport interface MenuItemDef {\n type?: \"item\";\n label: ReactNode;\n value?: string;\n disabled?: boolean;\n shortcut?: ReactNode;\n onSelect?: () => void;\n}\n\nexport interface MenuSeparatorDef {\n type: \"separator\";\n}\n\nexport interface MenuGroupDef {\n type: \"group\";\n label?: ReactNode;\n items: MenuItemDef[];\n}\n\nexport type MenuEntry = MenuItemDef | MenuSeparatorDef | MenuGroupDef;\n\nexport interface MenuProps {\n /** The button/element that opens the menu. */\n trigger: ReactElement;\n items: MenuEntry[];\n /** @default \"bottom\" */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /** @default \"start\" */\n align?: \"start\" | \"center\" | \"end\";\n /** @default 4 */\n sideOffset?: number;\n /** controlled open state */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n}\n\n// ─── Arrow SVG ─────────────────────────────────────────────────────────────\n\nfunction ArrowSvg() {\n return (\n <svg width=\"20\" height=\"10\" viewBox=\"0 0 20 10\" fill=\"none\" aria-hidden>\n <path\n d=\"M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z\"\n className={styles[\"arrow-fill\"]}\n />\n <path\n d=\"M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z\"\n className={styles[\"arrow-stroke\"]}\n />\n <path\n d=\"M10.3333 3.34539L5.47654 7.71648C4.55842 8.54279 3.36693 9 2.13172 9H0V8H2.13172C3.11989 8 4.07308 7.63423 4.80758 6.97318L9.66437 2.60207C10.0447 2.25979 10.622 2.2598 11.0023 2.60207L15.8591 6.97318C16.5936 7.63423 17.5468 8 18.5349 8H20V9H18.5349C17.2998 9 16.1083 8.54278 15.1901 7.71648L10.3333 3.34539Z\"\n className={styles[\"arrow-stroke\"]}\n />\n </svg>\n );\n}\n\n// ─── Item renderer ──────────────────────────────────────────────────────────\n\nfunction renderEntry(entry: MenuEntry, index: number): ReactNode {\n if (entry.type === \"separator\") {\n return <BaseMenu.Separator key={index} className={styles.separator} />;\n }\n\n if (entry.type === \"group\") {\n return (\n <BaseMenu.Group key={index}>\n {entry.label && <BaseMenu.GroupLabel className={styles[\"group-label\"]}>{entry.label}</BaseMenu.GroupLabel>}\n {entry.items.map((item, i) => renderEntry(item, i))}\n </BaseMenu.Group>\n );\n }\n\n return (\n <BaseMenu.Item key={entry.value ?? index} className={styles.item} disabled={entry.disabled} onClick={entry.onSelect}>\n <span className={styles[\"item-text\"]}>{entry.label}</span>\n {entry.shortcut && <span className={styles[\"item-shortcut\"]}>{entry.shortcut}</span>}\n </BaseMenu.Item>\n );\n}\n\n// ─── High-level Menu ────────────────────────────────────────────────────────\n\nexport function Menu({ trigger, items, side = \"bottom\", align = \"start\", sideOffset = 4, className, onOpenChange, ...props }: MenuProps) {\n return (\n <BaseMenu.Root onOpenChange={onOpenChange as never} {...props}>\n <BaseMenu.Trigger render={trigger} />\n <BaseMenu.Portal>\n <BaseMenu.Positioner className={`${styles.positioner} ${className ?? \"\"}`} side={side} align={align} sideOffset={sideOffset}>\n <BaseMenu.Popup className={styles.popup}>\n <BaseMenu.Arrow className={styles.arrow}>\n <ArrowSvg />\n </BaseMenu.Arrow>\n {items.map((entry, i) => renderEntry(entry, i))}\n </BaseMenu.Popup>\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n </BaseMenu.Root>\n );\n}\nexport { styles as MenuStyles };\n"],"mappings":";;;;AA6CA,SAAS,WAAW;AAClB,QACE,qBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,eAAA;YAA5D;GACE,oBAAC,QAAD;IACE,GAAE;IACF,WAAWA,oBAAO;IAClB,CAAA;GACF,oBAAC,QAAD;IACE,GAAE;IACF,WAAWA,oBAAO;IAClB,CAAA;GACF,oBAAC,QAAD;IACE,GAAE;IACF,WAAWA,oBAAO;IAClB,CAAA;GACE;;;AAMV,SAAS,YAAY,OAAkB,OAA0B;AAC/D,KAAI,MAAM,SAAS,YACjB,QAAO,oBAACC,KAAS,WAAV,EAAgC,WAAWD,oBAAO,WAAa,EAAtC,MAAsC;AAGxE,KAAI,MAAM,SAAS,QACjB,QACE,qBAACC,KAAS,OAAV,EAAA,UAAA,CACG,MAAM,SAAS,oBAACA,KAAS,YAAV;EAAqB,WAAWD,oBAAO;YAAiB,MAAM;EAA4B,CAAA,EACzG,MAAM,MAAM,KAAK,MAAM,MAAM,YAAY,MAAM,EAAE,CAAC,CACpC,EAAA,EAHI,MAGJ;AAIrB,QACE,qBAACC,KAAS,MAAV;EAA0C,WAAWD,oBAAO;EAAM,UAAU,MAAM;EAAU,SAAS,MAAM;YAA3G,CACE,oBAAC,QAAD;GAAM,WAAWA,oBAAO;aAAe,MAAM;GAAa,CAAA,EACzD,MAAM,YAAY,oBAAC,QAAD;GAAM,WAAWA,oBAAO;aAAmB,MAAM;GAAgB,CAAA,CACtE;IAHI,MAAM,SAAS,MAGnB;;AAMpB,SAAgBE,OAAK,EAAE,SAAS,OAAO,OAAO,UAAU,QAAQ,SAAS,aAAa,GAAG,WAAW,cAAc,GAAG,SAAoB;AACvI,QACE,qBAACD,KAAS,MAAV;EAA6B;EAAuB,GAAI;YAAxD,CACE,oBAACA,KAAS,SAAV,EAAkB,QAAQ,SAAW,CAAA,EACrC,oBAACA,KAAS,QAAV,EAAA,UACE,oBAACA,KAAS,YAAV;GAAqB,WAAW,GAAGD,oBAAO,WAAW,GAAG,aAAa;GAAY;GAAa;GAAmB;aAC/G,qBAACC,KAAS,OAAV;IAAgB,WAAWD,oBAAO;cAAlC,CACE,oBAACC,KAAS,OAAV;KAAgB,WAAWD,oBAAO;eAChC,oBAAC,UAAD,EAAY,CAAA;KACG,CAAA,EAChB,MAAM,KAAK,OAAO,MAAM,YAAY,OAAO,EAAE,CAAC,CAChC;;GACG,CAAA,EACN,CAAA,CACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/menu/menu.module.css
|
|
2
|
+
var menu_module_default = {
|
|
3
|
+
"arrow": "arrow_HVPjPa",
|
|
4
|
+
"arrow-fill": "arrow-fill_HVPjPa",
|
|
5
|
+
"arrow-stroke": "arrow-stroke_HVPjPa",
|
|
6
|
+
"group-label": "group-label_HVPjPa",
|
|
7
|
+
"item": "item_HVPjPa",
|
|
8
|
+
"item-indicator": "item-indicator_HVPjPa",
|
|
9
|
+
"item-shortcut": "item-shortcut_HVPjPa",
|
|
10
|
+
"item-text": "item-text_HVPjPa",
|
|
11
|
+
"popup": "popup_HVPjPa",
|
|
12
|
+
"positioner": "positioner_HVPjPa",
|
|
13
|
+
"separator": "separator_HVPjPa",
|
|
14
|
+
"submenu-trigger-icon": "submenu-trigger-icon_HVPjPa"
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { menu_module_default as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=menu.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.module.js","names":[],"sources":["../../src/menu/menu.module.css"],"sourcesContent":["@layer components {\n .positioner {\n outline: none;\n z-index: var(--z-dropdown);\n }\n .popup {\n box-sizing: border-box;\n padding: var(--space-1) 0;\n border-radius: var(--radius-lg);\n background-color: var(--color-overlay);\n border: var(--border-width-base) solid var(--color-line);\n box-shadow: var(--shadow-popover);\n color: var(--color-primary);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n min-width: 200px;\n transform-origin: var(--transform-origin);\n outline: none;\n }\n @supports (backdrop-filter: blur(12px)) {\n .popup {\n backdrop-filter: blur(20px) saturate(1.8);\n -webkit-backdrop-filter: blur(20px) saturate(1.8);\n }\n }\n .popup[data-starting-style] {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 150ms var(--easing-ease-out),\n transform 150ms var(--easing-ease-out);\n }\n .popup[data-ending-style] {\n opacity: 0;\n transform: scale(0.98);\n transition:\n opacity 75ms var(--easing-ease-in),\n transform 75ms var(--easing-ease-in);\n }\n /* ─── Item ───────────────────────────────────────────────────────── */\n .item {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n /* Horizontal padding leaves room for the highlight inset */\n padding: var(--space-1-5) var(--space-3);\n margin: 1px var(--space-1);\n border-radius: var(--radius-md);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-primary);\n cursor: default;\n outline: none;\n user-select: none;\n position: relative;\n transition: none;\n }\n .item[data-highlighted] {\n background-color: var(--color-accent);\n color: var(--color-on-accent);\n }\n .item[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n /* ─── Item internals ─────────────────────────────────────────────── */\n .item-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n flex-shrink: 0;\n color: inherit;\n }\n .item-text {\n flex: 1;\n }\n .item-shortcut {\n margin-left: var(--space-6);\n font-size: var(--font-size-xs);\n color: var(--color-tertiary);\n letter-spacing: 0.02em;\n flex-shrink: 0;\n }\n .item[data-highlighted] .item-shortcut {\n color: color-mix(in srgb, var(--color-on-accent) 60%, transparent);\n }\n /* ─── Group label ────────────────────────────────────────────────── */\n .group-label {\n padding: var(--space-1-5) var(--space-3) var(--space-0-5);\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-semibold);\n color: var(--color-tertiary);\n text-transform: uppercase;\n letter-spacing: var(--letter-spacing-wide);\n cursor: default;\n user-select: none;\n margin-inline: var(--space-1);\n }\n /* ─── Separator ──────────────────────────────────────────────────── */\n .separator {\n margin: var(--space-1) 0;\n height: var(--border-width-base);\n background-color: var(--color-line-subtle);\n }\n /* ─── Submenu ────────────────────────────────────────────────────── */\n .submenu-trigger-icon {\n margin-left: auto;\n color: var(--color-tertiary);\n flex-shrink: 0;\n }\n .item[data-highlighted] .submenu-trigger-icon {\n color: color-mix(in srgb, var(--color-on-accent) 70%, transparent);\n }\n /* ─── Arrow ──────────────────────────────────────────────────────── */\n .arrow {\n display: flex;\n }\n .arrow[data-side=\"top\"] {\n bottom: -8px;\n rotate: 180deg;\n }\n .arrow[data-side=\"bottom\"] {\n top: -8px;\n rotate: 0deg;\n }\n .arrow[data-side=\"left\"] {\n right: -13px;\n rotate: 90deg;\n }\n .arrow[data-side=\"right\"] {\n left: -13px;\n rotate: -90deg;\n }\n .arrow-fill {\n fill: var(--color-overlay);\n }\n .arrow-stroke {\n fill: var(--color-line);\n }\n}\n"],"mappings":";AAwBA,IAAA,sBAAE;CAAA,SAAA;CAAA,cAAA;CAAA,gBAAA;CAAA,eAAA;CAAA,QAAA;CAAA,kBAAA;CAAA,iBAAA;CAAA,aAAA;CAAA,SAAA;CAAA,cAAA;CAAA,aAAA;CAAA,wBAAA;CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react from "react";
|
|
2
|
+
import { HTMLAttributes } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/menu/menuitemshortcut.d.ts
|
|
5
|
+
interface MenuItemShortcutProps extends HTMLAttributes<HTMLSpanElement> {}
|
|
6
|
+
declare const MenuItemShortcut: react.ForwardRefExoticComponent<MenuItemShortcutProps & react.RefAttributes<HTMLSpanElement>>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { MenuItemShortcut, MenuItemShortcutProps };
|
|
9
|
+
//# sourceMappingURL=menuitemshortcut.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuitemshortcut.d.ts","names":[],"sources":["../../src/menu/menuitemshortcut.tsx"],"mappings":";;;;UAIiB,qBAAA,SAA8B,cAAA,CAAe,eAAA;AAAA,cAEjD,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import menu_module_default from "./menu.module.js";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/menu/menuitemshortcut.tsx
|
|
5
|
+
const MenuItemShortcut = forwardRef(function MenuItemShortcut({ className, ...props }, ref) {
|
|
6
|
+
return /* @__PURE__ */ jsx("span", {
|
|
7
|
+
ref,
|
|
8
|
+
className: `${menu_module_default["item-shortcut"]} ${className ?? ""}`,
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
//#endregion
|
|
13
|
+
export { MenuItemShortcut };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=menuitemshortcut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuitemshortcut.js","names":["styles"],"sources":["../../src/menu/menuitemshortcut.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes } from \"react\";\nimport styles from \"./menu.module.css\";\n\nexport interface MenuItemShortcutProps extends HTMLAttributes<HTMLSpanElement> {}\n\nexport const MenuItemShortcut = forwardRef<HTMLSpanElement, MenuItemShortcutProps>(function MenuItemShortcut({ className, ...props }, ref) {\n return <span ref={ref} className={`${styles[\"item-shortcut\"]} ${className ?? \"\"}`} {...props} />;\n});\n"],"mappings":";;;;AAMA,MAAa,mBAAmB,WAAmD,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAS,KAAK;AACzI,QAAO,oBAAC,QAAD;EAAW;EAAK,WAAW,GAAGA,oBAAO,iBAAiB,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAChG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { MenuItemShortcut } from "./menuitemshortcut.js";
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
4
|
+
import { Menu } from "@base-ui/react/menu";
|
|
5
|
+
|
|
6
|
+
//#region src/menu/parts.d.ts
|
|
7
|
+
type BasePositionerProps = ComponentPropsWithoutRef<typeof Menu.Positioner>;
|
|
8
|
+
type BasePopupProps = ComponentPropsWithoutRef<typeof Menu.Popup>;
|
|
9
|
+
type BaseItemProps = ComponentPropsWithoutRef<typeof Menu.Item>;
|
|
10
|
+
type BaseSeparatorProps = ComponentPropsWithoutRef<typeof Menu.Separator>;
|
|
11
|
+
type BaseGroupLabelProps = ComponentPropsWithoutRef<typeof Menu.GroupLabel>;
|
|
12
|
+
type BaseArrowProps = ComponentPropsWithoutRef<typeof Menu.Arrow>;
|
|
13
|
+
interface MenuPositionerProps extends Omit<BasePositionerProps, "className"> {
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
interface MenuPopupProps extends Omit<BasePopupProps, "className"> {
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
interface MenuItemProps extends Omit<BaseItemProps, "className"> {
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
interface MenuSeparatorProps extends Omit<BaseSeparatorProps, "className"> {
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
interface MenuGroupLabelProps extends Omit<BaseGroupLabelProps, "className"> {
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
interface MenuArrowProps extends Omit<BaseArrowProps, "className"> {
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
declare const MenuPositioner: react.ForwardRefExoticComponent<MenuPositionerProps & react.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
declare const MenuPopup: react.ForwardRefExoticComponent<MenuPopupProps & react.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<HTMLElement>>;
|
|
34
|
+
declare const MenuSeparator: react.ForwardRefExoticComponent<MenuSeparatorProps & react.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
declare const MenuGroupLabel: react.ForwardRefExoticComponent<MenuGroupLabelProps & react.RefAttributes<HTMLDivElement>>;
|
|
36
|
+
declare const MenuArrow: react.ForwardRefExoticComponent<MenuArrowProps & react.RefAttributes<HTMLDivElement>>;
|
|
37
|
+
//#endregion
|
|
38
|
+
export { MenuArrow, MenuArrowProps, MenuGroupLabel, MenuGroupLabelProps, MenuItem, MenuItemProps, MenuPopup, MenuPopupProps, MenuPositioner, MenuPositionerProps, MenuSeparator, MenuSeparatorProps };
|
|
39
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/menu/parts.tsx"],"mappings":";;;;;;KA6BK,mBAAA,GAAsB,wBAAA,QAAgC,IAAA,CAAS,UAAA;AAAA,KAC/D,cAAA,GAAiB,wBAAA,QAAgC,IAAA,CAAS,KAAA;AAAA,KAC1D,aAAA,GAAgB,wBAAA,QAAgC,IAAA,CAAS,IAAA;AAAA,KACzD,kBAAA,GAAqB,wBAAA,QAAgC,IAAA,CAAS,SAAA;AAAA,KAC9D,mBAAA,GAAsB,wBAAA,QAAgC,IAAA,CAAS,UAAA;AAAA,KAC/D,cAAA,GAAiB,wBAAA,QAAgC,IAAA,CAAS,KAAA;AAAA,UAE9C,mBAAA,SAA4B,IAAA,CAAK,mBAAA;EAChD,SAAA;AAAA;AAAA,UAEe,cAAA,SAAuB,IAAA,CAAK,cAAA;EAC3C,SAAA;AAAA;AAAA,UAEe,aAAA,SAAsB,IAAA,CAAK,aAAA;EAC1C,SAAA;AAAA;AAAA,UAEe,kBAAA,SAA2B,IAAA,CAAK,kBAAA;EAC/C,SAAA;AAAA;AAAA,UAEe,mBAAA,SAA4B,IAAA,CAAK,mBAAA;EAChD,SAAA;AAAA;AAAA,UAEe,cAAA,SAAuB,IAAA,CAAK,cAAA;EAC3C,SAAA;AAAA;AAAA,cAGW,cAAA,EAAc,KAAA,CAAA,yBAAA,CAAA,mBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOd,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAIT,QAAA,EAAQ,KAAA,CAAA,yBAAA,CAAA,aAAA,GAAA,KAAA,CAAA,aAAA,CAAA,WAAA;AAAA,cAIR,aAAA,EAAa,KAAA,CAAA,yBAAA,CAAA,kBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOb,cAAA,EAAc,KAAA,CAAA,yBAAA,CAAA,mBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOd,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import menu_module_default from "./menu.module.js";
|
|
2
|
+
import "./menuitemshortcut.js";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Menu } from "@base-ui/react/menu";
|
|
6
|
+
//#region src/menu/parts.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Styled primitives for Menu.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import { Menu } from '@base-ui/react/menu';
|
|
13
|
+
* import {
|
|
14
|
+
* MenuPositioner, MenuPopup, MenuItem, MenuSeparator, MenuGroupLabel,
|
|
15
|
+
* } from '@brijbyte/agentic-ui/menu';
|
|
16
|
+
*
|
|
17
|
+
* <Menu.Root>
|
|
18
|
+
* <Menu.Trigger render={<button>Open</button>} />
|
|
19
|
+
* <Menu.Portal>
|
|
20
|
+
* <MenuPositioner sideOffset={4}>
|
|
21
|
+
* <MenuPopup>
|
|
22
|
+
* <MenuItem>Action</MenuItem>
|
|
23
|
+
* <MenuSeparator />
|
|
24
|
+
* <MenuItem>Another</MenuItem>
|
|
25
|
+
* </MenuPopup>
|
|
26
|
+
* </MenuPositioner>
|
|
27
|
+
* </Menu.Portal>
|
|
28
|
+
* </Menu.Root>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const MenuPositioner = forwardRef(function MenuPositioner({ className, ...props }, ref) {
|
|
32
|
+
return /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
33
|
+
ref,
|
|
34
|
+
className: `${menu_module_default.positioner} ${className ?? ""}`,
|
|
35
|
+
...props
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
const MenuPopup = forwardRef(function MenuPopup({ className, ...props }, ref) {
|
|
39
|
+
return /* @__PURE__ */ jsx(Menu.Popup, {
|
|
40
|
+
ref,
|
|
41
|
+
className: `${menu_module_default.popup} ${className ?? ""}`,
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
const MenuItem = forwardRef(function MenuItem({ className, ...props }, ref) {
|
|
46
|
+
return /* @__PURE__ */ jsx(Menu.Item, {
|
|
47
|
+
ref,
|
|
48
|
+
className: `${menu_module_default.item} ${className ?? ""}`,
|
|
49
|
+
...props
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
const MenuSeparator = forwardRef(function MenuSeparator({ className, ...props }, ref) {
|
|
53
|
+
return /* @__PURE__ */ jsx(Menu.Separator, {
|
|
54
|
+
ref,
|
|
55
|
+
className: `${menu_module_default.separator} ${className ?? ""}`,
|
|
56
|
+
...props
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
const MenuGroupLabel = forwardRef(function MenuGroupLabel({ className, ...props }, ref) {
|
|
60
|
+
return /* @__PURE__ */ jsx(Menu.GroupLabel, {
|
|
61
|
+
ref,
|
|
62
|
+
className: `${menu_module_default["group-label"]} ${className ?? ""}`,
|
|
63
|
+
...props
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
const MenuArrow = forwardRef(function MenuArrow({ className, ...props }, ref) {
|
|
67
|
+
return /* @__PURE__ */ jsx(Menu.Arrow, {
|
|
68
|
+
ref,
|
|
69
|
+
className: `${menu_module_default.arrow} ${className ?? ""}`,
|
|
70
|
+
...props
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//#endregion
|
|
74
|
+
export { MenuArrow, MenuGroupLabel, MenuItem, MenuPopup, MenuPositioner, MenuSeparator };
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseMenu","styles"],"sources":["../../src/menu/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Menu.\n *\n * @example\n * ```tsx\n * import { Menu } from '@base-ui/react/menu';\n * import {\n * MenuPositioner, MenuPopup, MenuItem, MenuSeparator, MenuGroupLabel,\n * } from '@brijbyte/agentic-ui/menu';\n *\n * <Menu.Root>\n * <Menu.Trigger render={<button>Open</button>} />\n * <Menu.Portal>\n * <MenuPositioner sideOffset={4}>\n * <MenuPopup>\n * <MenuItem>Action</MenuItem>\n * <MenuSeparator />\n * <MenuItem>Another</MenuItem>\n * </MenuPopup>\n * </MenuPositioner>\n * </Menu.Portal>\n * </Menu.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport styles from \"./menu.module.css\";\n\ntype BasePositionerProps = ComponentPropsWithoutRef<typeof BaseMenu.Positioner>;\ntype BasePopupProps = ComponentPropsWithoutRef<typeof BaseMenu.Popup>;\ntype BaseItemProps = ComponentPropsWithoutRef<typeof BaseMenu.Item>;\ntype BaseSeparatorProps = ComponentPropsWithoutRef<typeof BaseMenu.Separator>;\ntype BaseGroupLabelProps = ComponentPropsWithoutRef<typeof BaseMenu.GroupLabel>;\ntype BaseArrowProps = ComponentPropsWithoutRef<typeof BaseMenu.Arrow>;\n\nexport interface MenuPositionerProps extends Omit<BasePositionerProps, \"className\"> {\n className?: string;\n}\nexport interface MenuPopupProps extends Omit<BasePopupProps, \"className\"> {\n className?: string;\n}\nexport interface MenuItemProps extends Omit<BaseItemProps, \"className\"> {\n className?: string;\n}\nexport interface MenuSeparatorProps extends Omit<BaseSeparatorProps, \"className\"> {\n className?: string;\n}\nexport interface MenuGroupLabelProps extends Omit<BaseGroupLabelProps, \"className\"> {\n className?: string;\n}\nexport interface MenuArrowProps extends Omit<BaseArrowProps, \"className\"> {\n className?: string;\n}\n\nexport const MenuPositioner = forwardRef<ComponentRef<typeof BaseMenu.Positioner>, MenuPositionerProps>(function MenuPositioner(\n { className, ...props },\n ref,\n) {\n return <BaseMenu.Positioner ref={ref} className={`${styles.positioner} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuPopup = forwardRef<ComponentRef<typeof BaseMenu.Popup>, MenuPopupProps>(function MenuPopup({ className, ...props }, ref) {\n return <BaseMenu.Popup ref={ref} className={`${styles.popup} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuItem = forwardRef<ComponentRef<typeof BaseMenu.Item>, MenuItemProps>(function MenuItem({ className, ...props }, ref) {\n return <BaseMenu.Item ref={ref} className={`${styles.item} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuSeparator = forwardRef<ComponentRef<typeof BaseMenu.Separator>, MenuSeparatorProps>(function MenuSeparator(\n { className, ...props },\n ref,\n) {\n return <BaseMenu.Separator ref={ref} className={`${styles.separator} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuGroupLabel = forwardRef<ComponentRef<typeof BaseMenu.GroupLabel>, MenuGroupLabelProps>(function MenuGroupLabel(\n { className, ...props },\n ref,\n) {\n return <BaseMenu.GroupLabel ref={ref} className={`${styles[\"group-label\"]} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuArrow = forwardRef<ComponentRef<typeof BaseMenu.Arrow>, MenuArrowProps>(function MenuArrow({ className, ...props }, ref) {\n return <BaseMenu.Arrow ref={ref} className={`${styles.arrow} ${className ?? \"\"}`} {...props} />;\n});\n\n/** Convenience class for keyboard shortcut hints inside a MenuItem. */\nexport { MenuItemShortcut } from \"./menuitemshortcut\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,MAAa,iBAAiB,WAA0E,SAAS,eAC/G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,KAAS,YAAV;EAA0B;EAAK,WAAW,GAAGC,oBAAO,WAAW,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACzG;AAEF,MAAa,YAAY,WAAgE,SAAS,UAAU,EAAE,WAAW,GAAG,SAAS,KAAK;AACxI,QAAO,oBAACD,KAAS,OAAV;EAAqB;EAAK,WAAW,GAAGC,oBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC/F;AAEF,MAAa,WAAW,WAA8D,SAAS,SAAS,EAAE,WAAW,GAAG,SAAS,KAAK;AACpI,QAAO,oBAACD,KAAS,MAAV;EAAoB;EAAK,WAAW,GAAGC,oBAAO,KAAK,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC7F;AAEF,MAAa,gBAAgB,WAAwE,SAAS,cAC5G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,KAAS,WAAV;EAAyB;EAAK,WAAW,GAAGC,oBAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACvG;AAEF,MAAa,iBAAiB,WAA0E,SAAS,eAC/G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,KAAS,YAAV;EAA0B;EAAK,WAAW,GAAGC,oBAAO,eAAe,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC7G;AAEF,MAAa,YAAY,WAAgE,SAAS,UAAU,EAAE,WAAW,GAAG,SAAS,KAAK;AACxI,QAAO,oBAACD,KAAS,OAAV;EAAqB;EAAK,WAAW,GAAGC,oBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC/F"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { NumberField, NumberFieldProps, styles } from "./number-field.js";
|
|
2
|
+
import { NumberFieldDecrement, NumberFieldDecrementProps, NumberFieldGroup, NumberFieldGroupProps, NumberFieldIncrement, NumberFieldIncrementProps, NumberFieldInput, NumberFieldInputProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, NumberFieldScrubAreaCursorProps, NumberFieldScrubAreaProps } from "./parts.js";
|
|
3
|
+
export { NumberField, NumberFieldDecrement, type NumberFieldDecrementProps, NumberFieldGroup, type NumberFieldGroupProps, NumberFieldIncrement, type NumberFieldIncrementProps, NumberFieldInput, type NumberFieldInputProps, type NumberFieldProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, type NumberFieldScrubAreaCursorProps, type NumberFieldScrubAreaProps, styles as NumberFieldStyles };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import number_field_module_default from "./number-field.module.js";
|
|
2
|
+
import { NumberField } from "./number-field.js";
|
|
3
|
+
import { NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, NumberFieldScrubAreaCursor } from "./parts.js";
|
|
4
|
+
export { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, NumberFieldScrubAreaCursor, number_field_module_default as NumberFieldStyles };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.root_msdI1W {
|
|
3
|
+
align-items: flex-start;
|
|
4
|
+
gap: var(--space-1);
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
display: flex;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.scrub-area_msdI1W {
|
|
10
|
+
cursor: ew-resize;
|
|
11
|
+
user-select: none;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.scrub-area-cursor_msdI1W {
|
|
15
|
+
filter: drop-shadow(0 1px 1px #00000080);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.label_msdI1W {
|
|
19
|
+
cursor: ew-resize;
|
|
20
|
+
font-family: var(--font-mono);
|
|
21
|
+
font-size: var(--font-size-xs);
|
|
22
|
+
font-weight: var(--font-weight-medium);
|
|
23
|
+
color: var(--color-secondary);
|
|
24
|
+
letter-spacing: var(--letter-spacing-wide);
|
|
25
|
+
text-transform: uppercase;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.group_msdI1W {
|
|
29
|
+
display: flex;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.input_msdI1W {
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
width: 6rem;
|
|
35
|
+
height: 2rem;
|
|
36
|
+
font-family: var(--font-mono);
|
|
37
|
+
font-size: var(--font-size-sm);
|
|
38
|
+
text-align: center;
|
|
39
|
+
font-variant-numeric: tabular-nums;
|
|
40
|
+
color: var(--color-primary);
|
|
41
|
+
background-color: var(--color-elevated);
|
|
42
|
+
border-top: var(--border-width-base) solid var(--color-line);
|
|
43
|
+
border-bottom: var(--border-width-base) solid var(--color-line);
|
|
44
|
+
transition: box-shadow var(--duration-fast) var(--easing-standard);
|
|
45
|
+
border-left: none;
|
|
46
|
+
border-right: none;
|
|
47
|
+
border-radius: 0;
|
|
48
|
+
outline: none;
|
|
49
|
+
margin: 0;
|
|
50
|
+
padding: 0;
|
|
51
|
+
font-weight: normal;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.input_msdI1W:focus {
|
|
55
|
+
z-index: 1;
|
|
56
|
+
box-shadow: inset 0 0 0 1.5px var(--color-accent);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.input_msdI1W[data-disabled] {
|
|
60
|
+
opacity: .44;
|
|
61
|
+
cursor: not-allowed;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.step-button_msdI1W {
|
|
65
|
+
box-sizing: border-box;
|
|
66
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
67
|
+
background-color: var(--color-surface-1);
|
|
68
|
+
width: 2rem;
|
|
69
|
+
height: 2rem;
|
|
70
|
+
color: var(--color-secondary);
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
user-select: none;
|
|
73
|
+
transition: background-color var(--duration-fast) var(--easing-standard),
|
|
74
|
+
color var(--duration-fast) var(--easing-standard),
|
|
75
|
+
transform .1s var(--easing-ease-out);
|
|
76
|
+
outline: none;
|
|
77
|
+
justify-content: center;
|
|
78
|
+
align-items: center;
|
|
79
|
+
margin: 0;
|
|
80
|
+
padding: 0;
|
|
81
|
+
display: flex;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.step-button_msdI1W:hover {
|
|
85
|
+
background-color: var(--color-hover);
|
|
86
|
+
color: var(--color-primary);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.step-button_msdI1W:active:not([data-disabled]) {
|
|
90
|
+
background-color: var(--color-active);
|
|
91
|
+
transform: scale(.93);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.step-button_msdI1W:focus-visible {
|
|
95
|
+
z-index: 1;
|
|
96
|
+
box-shadow: inset 0 0 0 1.5px var(--color-accent);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.step-button_msdI1W[data-disabled] {
|
|
100
|
+
opacity: .44;
|
|
101
|
+
cursor: not-allowed;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.decrement_msdI1W {
|
|
105
|
+
border-radius: var(--radius-md) 0 0 var(--radius-md);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.increment_msdI1W {
|
|
109
|
+
border-radius: 0 var(--radius-md) var(--radius-md) 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import styles from "./number-field.module.css";
|
|
4
|
+
|
|
5
|
+
//#region src/number-field/number-field.d.ts
|
|
6
|
+
interface NumberFieldProps {
|
|
7
|
+
/** Visible label text. When present a scrub-area is also rendered. */
|
|
8
|
+
label?: ReactNode;
|
|
9
|
+
defaultValue?: number;
|
|
10
|
+
value?: number | null;
|
|
11
|
+
onValueChange?: (value: number | null) => void;
|
|
12
|
+
min?: number;
|
|
13
|
+
max?: number;
|
|
14
|
+
step?: number;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
readOnly?: boolean;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
name?: string;
|
|
19
|
+
format?: Intl.NumberFormatOptions;
|
|
20
|
+
allowWheelScrub?: boolean;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
declare function NumberField({
|
|
24
|
+
label,
|
|
25
|
+
className,
|
|
26
|
+
onValueChange,
|
|
27
|
+
...props
|
|
28
|
+
}: NumberFieldProps): react_jsx_runtime0.JSX.Element;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { NumberField, NumberFieldProps, styles };
|
|
31
|
+
//# sourceMappingURL=number-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-field.d.ts","names":[],"sources":["../../src/number-field/number-field.tsx"],"mappings":";;;;;UAKiB,gBAAA;;EAEf,KAAA,GAAQ,SAAA;EACR,YAAA;EACA,KAAA;EACA,aAAA,IAAiB,KAAA;EACjB,GAAA;EACA,GAAA;EACA,IAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,IAAA;EACA,MAAA,GAAS,IAAA,CAAK,mBAAA;EACd,eAAA;EACA,SAAA;AAAA;AAAA,iBA2Bc,WAAA,CAAA;EAAc,KAAA;EAAO,SAAA;EAAW,aAAA;EAAA,GAAkB;AAAA,GAAS,gBAAA,GAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import number_field_module_default from "./number-field.module.js";
|
|
2
|
+
import { useId } from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { NumberField } from "@base-ui/react/number-field";
|
|
5
|
+
//#region src/number-field/number-field.tsx
|
|
6
|
+
function MinusIcon() {
|
|
7
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
8
|
+
width: "10",
|
|
9
|
+
height: "10",
|
|
10
|
+
viewBox: "0 0 10 10",
|
|
11
|
+
fill: "none",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
strokeWidth: "1.6",
|
|
14
|
+
"aria-hidden": true,
|
|
15
|
+
children: /* @__PURE__ */ jsx("path", { d: "M0 5H10" })
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function PlusIcon() {
|
|
19
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
20
|
+
width: "10",
|
|
21
|
+
height: "10",
|
|
22
|
+
viewBox: "0 0 10 10",
|
|
23
|
+
fill: "none",
|
|
24
|
+
stroke: "currentColor",
|
|
25
|
+
strokeWidth: "1.6",
|
|
26
|
+
"aria-hidden": true,
|
|
27
|
+
children: /* @__PURE__ */ jsx("path", { d: "M0 5H5M10 5H5M5 5V0M5 5V10" })
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function ScrubCursorIcon() {
|
|
31
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
32
|
+
width: "24",
|
|
33
|
+
height: "12",
|
|
34
|
+
viewBox: "0 0 24 14",
|
|
35
|
+
fill: "currentColor",
|
|
36
|
+
stroke: "white",
|
|
37
|
+
strokeWidth: "0.5",
|
|
38
|
+
"aria-hidden": true,
|
|
39
|
+
children: /* @__PURE__ */ jsx("path", { d: "M19.5 5.5L6.49737 5.51844V2L1 6.9999L6.5 12L6.49737 8.5L19.5 8.5V12L25 6.9999L19.5 2V5.5Z" })
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function NumberField$1({ label, className, onValueChange, ...props }) {
|
|
43
|
+
const id = useId();
|
|
44
|
+
return /* @__PURE__ */ jsxs(NumberField.Root, {
|
|
45
|
+
id,
|
|
46
|
+
className: `${number_field_module_default.root} ${className ?? ""}`,
|
|
47
|
+
onValueChange,
|
|
48
|
+
...props,
|
|
49
|
+
children: [label && /* @__PURE__ */ jsxs(NumberField.ScrubArea, {
|
|
50
|
+
className: number_field_module_default["scrub-area"],
|
|
51
|
+
children: [/* @__PURE__ */ jsx("label", {
|
|
52
|
+
htmlFor: id,
|
|
53
|
+
className: number_field_module_default.label,
|
|
54
|
+
children: label
|
|
55
|
+
}), /* @__PURE__ */ jsx(NumberField.ScrubAreaCursor, {
|
|
56
|
+
className: number_field_module_default["scrub-area-cursor"],
|
|
57
|
+
children: /* @__PURE__ */ jsx(ScrubCursorIcon, {})
|
|
58
|
+
})]
|
|
59
|
+
}), /* @__PURE__ */ jsxs(NumberField.Group, {
|
|
60
|
+
className: number_field_module_default.group,
|
|
61
|
+
children: [
|
|
62
|
+
/* @__PURE__ */ jsx(NumberField.Decrement, {
|
|
63
|
+
className: `${number_field_module_default["step-button"]} ${number_field_module_default.decrement}`,
|
|
64
|
+
children: /* @__PURE__ */ jsx(MinusIcon, {})
|
|
65
|
+
}),
|
|
66
|
+
/* @__PURE__ */ jsx(NumberField.Input, { className: number_field_module_default.input }),
|
|
67
|
+
/* @__PURE__ */ jsx(NumberField.Increment, {
|
|
68
|
+
className: `${number_field_module_default["step-button"]} ${number_field_module_default.increment}`,
|
|
69
|
+
children: /* @__PURE__ */ jsx(PlusIcon, {})
|
|
70
|
+
})
|
|
71
|
+
]
|
|
72
|
+
})]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
export { NumberField$1 as NumberField };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=number-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-field.js","names":["NumberField","BaseNumberField","styles"],"sources":["../../src/number-field/number-field.tsx"],"sourcesContent":["import { useId } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { NumberField as BaseNumberField } from \"@base-ui/react/number-field\";\nimport styles from \"./number-field.module.css\";\n\nexport interface NumberFieldProps {\n /** Visible label text. When present a scrub-area is also rendered. */\n label?: ReactNode;\n defaultValue?: number;\n value?: number | null;\n onValueChange?: (value: number | null) => void;\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n format?: Intl.NumberFormatOptions;\n allowWheelScrub?: boolean;\n className?: string;\n}\n\nfunction MinusIcon() {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.6\" aria-hidden>\n <path d=\"M0 5H10\" />\n </svg>\n );\n}\n\nfunction PlusIcon() {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.6\" aria-hidden>\n <path d=\"M0 5H5M10 5H5M5 5V0M5 5V10\" />\n </svg>\n );\n}\n\nfunction ScrubCursorIcon() {\n return (\n <svg width=\"24\" height=\"12\" viewBox=\"0 0 24 14\" fill=\"currentColor\" stroke=\"white\" strokeWidth=\"0.5\" aria-hidden>\n <path d=\"M19.5 5.5L6.49737 5.51844V2L1 6.9999L6.5 12L6.49737 8.5L19.5 8.5V12L25 6.9999L19.5 2V5.5Z\" />\n </svg>\n );\n}\n\nexport function NumberField({ label, className, onValueChange, ...props }: NumberFieldProps) {\n const id = useId();\n\n return (\n <BaseNumberField.Root id={id} className={`${styles.root} ${className ?? \"\"}`} onValueChange={onValueChange as never} {...props}>\n {label && (\n <BaseNumberField.ScrubArea className={styles[\"scrub-area\"]}>\n <label htmlFor={id} className={styles.label}>\n {label}\n </label>\n <BaseNumberField.ScrubAreaCursor className={styles[\"scrub-area-cursor\"]}>\n <ScrubCursorIcon />\n </BaseNumberField.ScrubAreaCursor>\n </BaseNumberField.ScrubArea>\n )}\n <BaseNumberField.Group className={styles.group}>\n <BaseNumberField.Decrement className={`${styles[\"step-button\"]} ${styles.decrement}`}>\n <MinusIcon />\n </BaseNumberField.Decrement>\n <BaseNumberField.Input className={styles.input} />\n <BaseNumberField.Increment className={`${styles[\"step-button\"]} ${styles.increment}`}>\n <PlusIcon />\n </BaseNumberField.Increment>\n </BaseNumberField.Group>\n </BaseNumberField.Root>\n );\n}\nexport { styles as NumberFieldStyles };\n"],"mappings":";;;;;AAuBA,SAAS,YAAY;AACnB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,QAAO;EAAe,aAAY;EAAM,eAAA;YAClG,oBAAC,QAAD,EAAM,GAAE,WAAY,CAAA;EAChB,CAAA;;AAIV,SAAS,WAAW;AAClB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,QAAO;EAAe,aAAY;EAAM,eAAA;YAClG,oBAAC,QAAD,EAAM,GAAE,8BAA+B,CAAA;EACnC,CAAA;;AAIV,SAAS,kBAAkB;AACzB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAe,QAAO;EAAQ,aAAY;EAAM,eAAA;YACnG,oBAAC,QAAD,EAAM,GAAE,6FAA8F,CAAA;EAClG,CAAA;;AAIV,SAAgBA,cAAY,EAAE,OAAO,WAAW,eAAe,GAAG,SAA2B;CAC3F,MAAM,KAAK,OAAO;AAElB,QACE,qBAACC,YAAgB,MAAjB;EAA0B;EAAI,WAAW,GAAGC,4BAAO,KAAK,GAAG,aAAa;EAAqB;EAAwB,GAAI;YAAzH,CACG,SACC,qBAACD,YAAgB,WAAjB;GAA2B,WAAWC,4BAAO;aAA7C,CACE,oBAAC,SAAD;IAAO,SAAS;IAAI,WAAWA,4BAAO;cACnC;IACK,CAAA,EACR,oBAACD,YAAgB,iBAAjB;IAAiC,WAAWC,4BAAO;cACjD,oBAAC,iBAAD,EAAmB,CAAA;IACa,CAAA,CACR;MAE9B,qBAACD,YAAgB,OAAjB;GAAuB,WAAWC,4BAAO;aAAzC;IACE,oBAACD,YAAgB,WAAjB;KAA2B,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO;eACvE,oBAAC,WAAD,EAAa,CAAA;KACa,CAAA;IAC5B,oBAACD,YAAgB,OAAjB,EAAuB,WAAWC,4BAAO,OAAS,CAAA;IAClD,oBAACD,YAAgB,WAAjB;KAA2B,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO;eACvE,oBAAC,UAAD,EAAY,CAAA;KACc,CAAA;IACN;KACH"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/number-field/number-field.module.css
|
|
2
|
+
var number_field_module_default = {
|
|
3
|
+
"decrement": "decrement_msdI1W",
|
|
4
|
+
"group": "group_msdI1W",
|
|
5
|
+
"increment": "increment_msdI1W",
|
|
6
|
+
"input": "input_msdI1W",
|
|
7
|
+
"label": "label_msdI1W",
|
|
8
|
+
"root": "root_msdI1W",
|
|
9
|
+
"scrub-area": "scrub-area_msdI1W",
|
|
10
|
+
"scrub-area-cursor": "scrub-area-cursor_msdI1W",
|
|
11
|
+
"step-button": "step-button_msdI1W"
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { number_field_module_default as default };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=number-field.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-field.module.js","names":[],"sources":["../../src/number-field/number-field.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--space-1);\n }\n .scrub-area {\n cursor: ew-resize;\n user-select: none;\n }\n .scrub-area-cursor {\n filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5));\n }\n .label {\n cursor: ew-resize;\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n color: var(--color-secondary);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: uppercase;\n }\n .group {\n display: flex;\n }\n .input {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n width: 6rem;\n height: 2rem;\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: normal;\n text-align: center;\n font-variant-numeric: tabular-nums;\n color: var(--color-primary);\n background-color: var(--color-elevated);\n border-top: var(--border-width-base) solid var(--color-line);\n border-bottom: var(--border-width-base) solid var(--color-line);\n border-left: none;\n border-right: none;\n border-radius: 0;\n outline: none;\n transition: box-shadow var(--duration-fast) var(--easing-standard);\n }\n .input:focus {\n z-index: 1;\n box-shadow: inset 0 0 0 1.5px var(--color-accent);\n }\n .input[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .step-button {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n margin: 0;\n padding: 0;\n border: var(--border-width-base) solid var(--color-line);\n background-color: var(--color-surface-1);\n color: var(--color-secondary);\n cursor: pointer;\n outline: none;\n user-select: none;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n color var(--duration-fast) var(--easing-standard),\n transform 100ms var(--easing-ease-out);\n }\n .step-button:hover {\n background-color: var(--color-hover);\n color: var(--color-primary);\n }\n .step-button:active:not([data-disabled]) {\n background-color: var(--color-active);\n transform: scale(0.93);\n }\n .step-button:focus-visible {\n z-index: 1;\n box-shadow: inset 0 0 0 1.5px var(--color-accent);\n }\n .step-button[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .decrement {\n border-radius: var(--radius-md) 0 0 var(--radius-md);\n }\n .increment {\n border-radius: 0 var(--radius-md) var(--radius-md) 0;\n }\n}\n"],"mappings":";AAkBA,IAAA,8BAAe;CAAC,aAAY;CAAc,SAAA;CAAA,aAAA;CAAA,SAAA;CAAA,SAAA;CAAA,QAAA;CAAA,cAAA;CAAA,qBAAA;CAAA,eAAA;CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as react from "react";
|
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import { NumberField } from "@base-ui/react/number-field";
|
|
4
|
+
|
|
5
|
+
//#region src/number-field/parts.d.ts
|
|
6
|
+
type BaseGroupProps = ComponentPropsWithoutRef<typeof NumberField.Group>;
|
|
7
|
+
type BaseInputProps = ComponentPropsWithoutRef<typeof NumberField.Input>;
|
|
8
|
+
type BaseDecrementProps = ComponentPropsWithoutRef<typeof NumberField.Decrement>;
|
|
9
|
+
type BaseIncrementProps = ComponentPropsWithoutRef<typeof NumberField.Increment>;
|
|
10
|
+
type BaseScrubAreaProps = ComponentPropsWithoutRef<typeof NumberField.ScrubArea>;
|
|
11
|
+
type BaseScrubAreaCursorProps = ComponentPropsWithoutRef<typeof NumberField.ScrubAreaCursor>;
|
|
12
|
+
interface NumberFieldGroupProps extends Omit<BaseGroupProps, "className"> {
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
interface NumberFieldInputProps extends Omit<BaseInputProps, "className"> {
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
interface NumberFieldDecrementProps extends Omit<BaseDecrementProps, "className"> {
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
interface NumberFieldIncrementProps extends Omit<BaseIncrementProps, "className"> {
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
interface NumberFieldScrubAreaProps extends Omit<BaseScrubAreaProps, "className"> {
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
interface NumberFieldScrubAreaCursorProps extends Omit<BaseScrubAreaCursorProps, "className"> {
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
declare const NumberFieldGroup: react.ForwardRefExoticComponent<NumberFieldGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
declare const NumberFieldInput: react.ForwardRefExoticComponent<NumberFieldInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
32
|
+
declare const NumberFieldDecrement: react.ForwardRefExoticComponent<NumberFieldDecrementProps & react.RefAttributes<HTMLButtonElement>>;
|
|
33
|
+
declare const NumberFieldIncrement: react.ForwardRefExoticComponent<NumberFieldIncrementProps & react.RefAttributes<HTMLButtonElement>>;
|
|
34
|
+
declare const NumberFieldScrubArea: react.ForwardRefExoticComponent<NumberFieldScrubAreaProps & react.RefAttributes<HTMLSpanElement>>;
|
|
35
|
+
declare const NumberFieldScrubAreaCursor: react.ForwardRefExoticComponent<NumberFieldScrubAreaCursorProps & react.RefAttributes<HTMLSpanElement>>;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { NumberFieldDecrement, NumberFieldDecrementProps, NumberFieldGroup, NumberFieldGroupProps, NumberFieldIncrement, NumberFieldIncrementProps, NumberFieldInput, NumberFieldInputProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, NumberFieldScrubAreaCursorProps, NumberFieldScrubAreaProps };
|
|
38
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/number-field/parts.tsx"],"mappings":";;;;;KA4BK,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,wBAAA,GAA2B,wBAAA,QAAgC,WAAA,CAAgB,eAAA;AAAA,UAE/D,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,+BAAA,SAAwC,IAAA,CAAK,wBAAA;EAC5D,SAAA;AAAA;AAAA,cAGW,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOhB,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,cAOhB,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cAMpB,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cAMpB,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA;AAAA,cAMpB,0BAAA,EAA0B,KAAA,CAAA,yBAAA,CAAA,+BAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import number_field_module_default from "./number-field.module.js";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { NumberField } from "@base-ui/react/number-field";
|
|
5
|
+
//#region src/number-field/parts.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Styled primitives for NumberField.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { NumberField } from '@base-ui/react/number-field';
|
|
12
|
+
* import {
|
|
13
|
+
* NumberFieldGroup,
|
|
14
|
+
* NumberFieldInput,
|
|
15
|
+
* NumberFieldDecrement,
|
|
16
|
+
* NumberFieldIncrement,
|
|
17
|
+
* } from '@brijbyte/agentic-ui/number-field';
|
|
18
|
+
*
|
|
19
|
+
* <NumberField.Root>
|
|
20
|
+
* <NumberField.ScrubArea>...</NumberField.ScrubArea>
|
|
21
|
+
* <NumberFieldGroup>
|
|
22
|
+
* <NumberFieldDecrement />
|
|
23
|
+
* <NumberFieldInput />
|
|
24
|
+
* <NumberFieldIncrement />
|
|
25
|
+
* </NumberFieldGroup>
|
|
26
|
+
* </NumberField.Root>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
const NumberFieldGroup = forwardRef(function NumberFieldGroup({ className, ...props }, ref) {
|
|
30
|
+
return /* @__PURE__ */ jsx(NumberField.Group, {
|
|
31
|
+
ref,
|
|
32
|
+
className: `${number_field_module_default.group} ${className ?? ""}`,
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
const NumberFieldInput = forwardRef(function NumberFieldInput({ className, ...props }, ref) {
|
|
37
|
+
return /* @__PURE__ */ jsx(NumberField.Input, {
|
|
38
|
+
ref,
|
|
39
|
+
className: `${number_field_module_default.input} ${className ?? ""}`,
|
|
40
|
+
...props
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const NumberFieldDecrement = forwardRef(function NumberFieldDecrement({ className, ...props }, ref) {
|
|
44
|
+
return /* @__PURE__ */ jsx(NumberField.Decrement, {
|
|
45
|
+
ref,
|
|
46
|
+
className: `${number_field_module_default["step-button"]} ${number_field_module_default.decrement} ${className ?? ""}`,
|
|
47
|
+
...props
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
const NumberFieldIncrement = forwardRef(function NumberFieldIncrement({ className, ...props }, ref) {
|
|
51
|
+
return /* @__PURE__ */ jsx(NumberField.Increment, {
|
|
52
|
+
ref,
|
|
53
|
+
className: `${number_field_module_default["step-button"]} ${number_field_module_default.increment} ${className ?? ""}`,
|
|
54
|
+
...props
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
const NumberFieldScrubArea = forwardRef(function NumberFieldScrubArea({ className, ...props }, ref) {
|
|
58
|
+
return /* @__PURE__ */ jsx(NumberField.ScrubArea, {
|
|
59
|
+
ref,
|
|
60
|
+
className: `${number_field_module_default["scrub-area"]} ${className ?? ""}`,
|
|
61
|
+
...props
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
const NumberFieldScrubAreaCursor = forwardRef(function NumberFieldScrubAreaCursor({ className, ...props }, ref) {
|
|
65
|
+
return /* @__PURE__ */ jsx(NumberField.ScrubAreaCursor, {
|
|
66
|
+
ref,
|
|
67
|
+
className: `${number_field_module_default["scrub-area-cursor"]} ${className ?? ""}`,
|
|
68
|
+
...props
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//#endregion
|
|
72
|
+
export { NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, NumberFieldScrubAreaCursor };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseNumberField","styles"],"sources":["../../src/number-field/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for NumberField.\n *\n * @example\n * ```tsx\n * import { NumberField } from '@base-ui/react/number-field';\n * import {\n * NumberFieldGroup,\n * NumberFieldInput,\n * NumberFieldDecrement,\n * NumberFieldIncrement,\n * } from '@brijbyte/agentic-ui/number-field';\n *\n * <NumberField.Root>\n * <NumberField.ScrubArea>...</NumberField.ScrubArea>\n * <NumberFieldGroup>\n * <NumberFieldDecrement />\n * <NumberFieldInput />\n * <NumberFieldIncrement />\n * </NumberFieldGroup>\n * </NumberField.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { NumberField as BaseNumberField } from \"@base-ui/react/number-field\";\nimport styles from \"./number-field.module.css\";\n\ntype BaseGroupProps = ComponentPropsWithoutRef<typeof BaseNumberField.Group>;\ntype BaseInputProps = ComponentPropsWithoutRef<typeof BaseNumberField.Input>;\ntype BaseDecrementProps = ComponentPropsWithoutRef<typeof BaseNumberField.Decrement>;\ntype BaseIncrementProps = ComponentPropsWithoutRef<typeof BaseNumberField.Increment>;\ntype BaseScrubAreaProps = ComponentPropsWithoutRef<typeof BaseNumberField.ScrubArea>;\ntype BaseScrubAreaCursorProps = ComponentPropsWithoutRef<typeof BaseNumberField.ScrubAreaCursor>;\n\nexport interface NumberFieldGroupProps extends Omit<BaseGroupProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldInputProps extends Omit<BaseInputProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldDecrementProps extends Omit<BaseDecrementProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldIncrementProps extends Omit<BaseIncrementProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldScrubAreaProps extends Omit<BaseScrubAreaProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldScrubAreaCursorProps extends Omit<BaseScrubAreaCursorProps, \"className\"> {\n className?: string;\n}\n\nexport const NumberFieldGroup = forwardRef<ComponentRef<typeof BaseNumberField.Group>, NumberFieldGroupProps>(function NumberFieldGroup(\n { className, ...props },\n ref,\n) {\n return <BaseNumberField.Group ref={ref} className={`${styles.group} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const NumberFieldInput = forwardRef<ComponentRef<typeof BaseNumberField.Input>, NumberFieldInputProps>(function NumberFieldInput(\n { className, ...props },\n ref,\n) {\n return <BaseNumberField.Input ref={ref} className={`${styles.input} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const NumberFieldDecrement = forwardRef<ComponentRef<typeof BaseNumberField.Decrement>, NumberFieldDecrementProps>(\n function NumberFieldDecrement({ className, ...props }, ref) {\n return <BaseNumberField.Decrement ref={ref} className={`${styles[\"step-button\"]} ${styles.decrement} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const NumberFieldIncrement = forwardRef<ComponentRef<typeof BaseNumberField.Increment>, NumberFieldIncrementProps>(\n function NumberFieldIncrement({ className, ...props }, ref) {\n return <BaseNumberField.Increment ref={ref} className={`${styles[\"step-button\"]} ${styles.increment} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const NumberFieldScrubArea = forwardRef<ComponentRef<typeof BaseNumberField.ScrubArea>, NumberFieldScrubAreaProps>(\n function NumberFieldScrubArea({ className, ...props }, ref) {\n return <BaseNumberField.ScrubArea ref={ref} className={`${styles[\"scrub-area\"]} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const NumberFieldScrubAreaCursor = forwardRef<ComponentRef<typeof BaseNumberField.ScrubAreaCursor>, NumberFieldScrubAreaCursorProps>(\n function NumberFieldScrubAreaCursor({ className, ...props }, ref) {\n return <BaseNumberField.ScrubAreaCursor ref={ref} className={`${styles[\"scrub-area-cursor\"]} ${className ?? \"\"}`} {...props} />;\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,YAAgB,OAAjB;EAA4B;EAAK,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACtG;AAEF,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,YAAgB,OAAjB;EAA4B;EAAK,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACtG;AAEF,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC1D,QAAO,oBAACD,YAAgB,WAAjB;EAAgC;EAAK,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAE1I;AAED,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC1D,QAAO,oBAACD,YAAgB,WAAjB;EAAgC;EAAK,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAE1I;AAED,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC1D,QAAO,oBAACD,YAAgB,WAAjB;EAAgC;EAAK,WAAW,GAAGC,4BAAO,cAAc,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAErH;AAED,MAAa,6BAA6B,WACxC,SAAS,2BAA2B,EAAE,WAAW,GAAG,SAAS,KAAK;AAChE,QAAO,oBAACD,YAAgB,iBAAjB;EAAsC;EAAK,WAAW,GAAGC,4BAAO,qBAAqB,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAElI"}
|