@clickhouse/click-ui 0.6.2-rc2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-ui.css +1872 -59
- package/dist/cjs/components/Alert/index.cjs +2 -2
- package/dist/cjs/components/Alert/index.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Polaris.cjs +22 -0
- package/dist/cjs/components/Assets/Logos/Polaris.cjs.map +1 -0
- package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs +2 -0
- package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs +2 -0
- package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs.map +1 -1
- package/dist/cjs/components/BigStat/BigStat.css +77 -0
- package/dist/cjs/components/BigStat/BigStat.module.css.cjs +22 -0
- package/dist/cjs/components/BigStat/BigStat.module.css.cjs.map +1 -0
- package/dist/cjs/components/BigStat/index.cjs +60 -52
- package/dist/cjs/components/BigStat/index.cjs.map +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
- package/dist/cjs/components/CardPromotion/index.cjs +1 -1
- package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
- package/dist/cjs/components/CardSecondary/CardSecondary.css +99 -0
- package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs +39 -0
- package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs.map +1 -0
- package/dist/cjs/components/CardSecondary/index.cjs +35 -84
- package/dist/cjs/components/CardSecondary/index.cjs.map +1 -1
- package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
- package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs +15 -0
- package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs.map +1 -0
- package/dist/cjs/components/ConfirmationDialog/index.cjs +6 -11
- package/dist/cjs/components/ConfirmationDialog/index.cjs.map +1 -1
- package/dist/cjs/components/ContextMenu/ContextMenu.css +28 -0
- package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs +10 -0
- package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -0
- package/dist/cjs/components/ContextMenu/index.cjs +27 -29
- package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
- package/dist/cjs/components/CrossButton/index.cjs +5 -1
- package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/Common.cjs +1 -1
- package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.css +13 -0
- package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs +11 -0
- package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -0
- package/dist/cjs/components/Dropdown/index.cjs +19 -13
- package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
- package/dist/cjs/components/FileTabs/index.cjs +1 -1
- package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
- package/dist/cjs/components/Flyout/Flyout.css +231 -0
- package/dist/cjs/components/Flyout/Flyout.module.css.cjs +93 -0
- package/dist/cjs/components/Flyout/Flyout.module.css.cjs.map +1 -0
- package/dist/cjs/components/Flyout/index.cjs +148 -124
- package/dist/cjs/components/Flyout/index.cjs.map +1 -1
- package/dist/cjs/components/GenericMenu/GenericMenu.css +176 -0
- package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs +23 -0
- package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs.map +1 -0
- package/dist/cjs/components/GenericMenu/index.cjs +93 -99
- package/dist/cjs/components/GenericMenu/index.cjs.map +1 -1
- package/dist/cjs/components/HoverCard/index.cjs +1 -1
- package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
- package/dist/cjs/components/IconButton/index.cjs +2 -1
- package/dist/cjs/components/IconButton/index.cjs.map +1 -1
- package/dist/cjs/components/InputWrapper/InputWrapper.css +221 -0
- package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs +39 -0
- package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs.map +1 -0
- package/dist/cjs/components/InputWrapper/index.cjs +84 -185
- package/dist/cjs/components/InputWrapper/index.cjs.map +1 -1
- package/dist/cjs/components/Popover/Popover.css +12 -0
- package/dist/cjs/components/Popover/Popover.module.css.cjs +11 -0
- package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -0
- package/dist/cjs/components/Popover/index.cjs +26 -19
- package/dist/cjs/components/Popover/index.cjs.map +1 -1
- package/dist/cjs/components/RadioGroup/RadioGroup.css +99 -0
- package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs +18 -0
- package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
- package/dist/cjs/components/RadioGroup/index.cjs +28 -77
- package/dist/cjs/components/RadioGroup/index.cjs.map +1 -1
- package/dist/cjs/components/Select/common/InternalSelect.cjs +1 -1
- package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
- package/dist/cjs/components/SplitButton/index.cjs +2 -1
- package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
- package/dist/cjs/components/Table/Table.css +376 -0
- package/dist/cjs/components/Table/Table.module.css.cjs +86 -0
- package/dist/cjs/components/Table/Table.module.css.cjs.map +1 -0
- package/dist/cjs/components/Table/index.cjs +132 -214
- package/dist/cjs/components/Table/index.cjs.map +1 -1
- package/dist/cjs/components/Toast/Toast.css +142 -0
- package/dist/cjs/components/Toast/Toast.module.css.cjs +38 -0
- package/dist/cjs/components/Toast/Toast.module.css.cjs.map +1 -0
- package/dist/cjs/components/Toast/index.cjs +43 -96
- package/dist/cjs/components/Toast/index.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.css +17 -0
- package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs +15 -0
- package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs.map +1 -0
- package/dist/cjs/components/Tooltip/index.cjs +12 -24
- package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
- package/dist/cjs/components/VerticalStepper/VerticalStepper.css +302 -0
- package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs +84 -0
- package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs.map +1 -0
- package/dist/cjs/components/VerticalStepper/index.cjs +85 -110
- package/dist/cjs/components/VerticalStepper/index.cjs.map +1 -1
- package/dist/esm/click-ui.css +1872 -59
- package/dist/esm/components/Alert/index.js +2 -2
- package/dist/esm/components/Alert/index.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Polaris.js +18 -0
- package/dist/esm/components/Assets/Logos/Polaris.js.map +1 -0
- package/dist/esm/components/Assets/Logos/system/LogosDark.js +2 -0
- package/dist/esm/components/Assets/Logos/system/LogosDark.js.map +1 -1
- package/dist/esm/components/Assets/Logos/system/LogosLight.js +2 -0
- package/dist/esm/components/Assets/Logos/system/LogosLight.js.map +1 -1
- package/dist/esm/components/BigStat/BigStat.css +77 -0
- package/dist/esm/components/BigStat/BigStat.module.css.js +18 -0
- package/dist/esm/components/BigStat/BigStat.module.css.js.map +1 -0
- package/dist/esm/components/BigStat/index.js +60 -52
- package/dist/esm/components/BigStat/index.js.map +1 -1
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/ButtonGroup/index.js.map +1 -1
- package/dist/esm/components/CardPromotion/index.js +1 -1
- package/dist/esm/components/CardPromotion/index.js.map +1 -1
- package/dist/esm/components/CardSecondary/CardSecondary.css +99 -0
- package/dist/esm/components/CardSecondary/CardSecondary.module.css.js +25 -0
- package/dist/esm/components/CardSecondary/CardSecondary.module.css.js.map +1 -0
- package/dist/esm/components/CardSecondary/index.js +35 -84
- package/dist/esm/components/CardSecondary/index.js.map +1 -1
- package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
- package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js +9 -0
- package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js.map +1 -0
- package/dist/esm/components/ConfirmationDialog/index.js +6 -11
- package/dist/esm/components/ConfirmationDialog/index.js.map +1 -1
- package/dist/esm/components/ContextMenu/ContextMenu.css +28 -0
- package/dist/esm/components/ContextMenu/ContextMenu.module.css.js +6 -0
- package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -0
- package/dist/esm/components/ContextMenu/index.js +28 -30
- package/dist/esm/components/ContextMenu/index.js.map +1 -1
- package/dist/esm/components/CrossButton/index.js +5 -1
- package/dist/esm/components/CrossButton/index.js.map +1 -1
- package/dist/esm/components/DatePicker/Common.js +1 -1
- package/dist/esm/components/DatePicker/Common.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.css +13 -0
- package/dist/esm/components/Dropdown/Dropdown.module.css.js +7 -0
- package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -0
- package/dist/esm/components/Dropdown/index.js +19 -13
- package/dist/esm/components/Dropdown/index.js.map +1 -1
- package/dist/esm/components/FileTabs/index.js +1 -1
- package/dist/esm/components/FileTabs/index.js.map +1 -1
- package/dist/esm/components/Flyout/Flyout.css +231 -0
- package/dist/esm/components/Flyout/Flyout.module.css.js +62 -0
- package/dist/esm/components/Flyout/Flyout.module.css.js.map +1 -0
- package/dist/esm/components/Flyout/index.js +149 -125
- package/dist/esm/components/Flyout/index.js.map +1 -1
- package/dist/esm/components/GenericMenu/GenericMenu.css +176 -0
- package/dist/esm/components/GenericMenu/GenericMenu.module.css.js +18 -0
- package/dist/esm/components/GenericMenu/GenericMenu.module.css.js.map +1 -0
- package/dist/esm/components/GenericMenu/index.js +93 -99
- package/dist/esm/components/GenericMenu/index.js.map +1 -1
- package/dist/esm/components/HoverCard/index.js +1 -1
- package/dist/esm/components/HoverCard/index.js.map +1 -1
- package/dist/esm/components/IconButton/index.js +2 -1
- package/dist/esm/components/IconButton/index.js.map +1 -1
- package/dist/esm/components/InputWrapper/InputWrapper.css +221 -0
- package/dist/esm/components/InputWrapper/InputWrapper.module.css.js +27 -0
- package/dist/esm/components/InputWrapper/InputWrapper.module.css.js.map +1 -0
- package/dist/esm/components/InputWrapper/index.js +84 -185
- package/dist/esm/components/InputWrapper/index.js.map +1 -1
- package/dist/esm/components/Popover/Popover.css +12 -0
- package/dist/esm/components/Popover/Popover.module.css.js +7 -0
- package/dist/esm/components/Popover/Popover.module.css.js.map +1 -0
- package/dist/esm/components/Popover/index.js +26 -19
- package/dist/esm/components/Popover/index.js.map +1 -1
- package/dist/esm/components/RadioGroup/RadioGroup.css +99 -0
- package/dist/esm/components/RadioGroup/RadioGroup.module.css.js +13 -0
- package/dist/esm/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
- package/dist/esm/components/RadioGroup/index.js +28 -77
- package/dist/esm/components/RadioGroup/index.js.map +1 -1
- package/dist/esm/components/Select/common/InternalSelect.js +1 -1
- package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
- package/dist/esm/components/SplitButton/index.js +2 -1
- package/dist/esm/components/SplitButton/index.js.map +1 -1
- package/dist/esm/components/Table/Table.css +376 -0
- package/dist/esm/components/Table/Table.module.css.js +63 -0
- package/dist/esm/components/Table/Table.module.css.js.map +1 -0
- package/dist/esm/components/Table/index.js +132 -214
- package/dist/esm/components/Table/index.js.map +1 -1
- package/dist/esm/components/Toast/Toast.css +142 -0
- package/dist/esm/components/Toast/Toast.module.css.js +26 -0
- package/dist/esm/components/Toast/Toast.module.css.js.map +1 -0
- package/dist/esm/components/Toast/index.js +43 -96
- package/dist/esm/components/Toast/index.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.css +17 -0
- package/dist/esm/components/Tooltip/Tooltip.module.css.js +9 -0
- package/dist/esm/components/Tooltip/Tooltip.module.css.js.map +1 -0
- package/dist/esm/components/Tooltip/index.js +12 -24
- package/dist/esm/components/Tooltip/index.js.map +1 -1
- package/dist/esm/components/VerticalStepper/VerticalStepper.css +302 -0
- package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js +55 -0
- package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js.map +1 -0
- package/dist/esm/components/VerticalStepper/index.js +85 -110
- package/dist/esm/components/VerticalStepper/index.js.map +1 -1
- package/dist/types/components/Assets/Logos/Polaris.d.ts +3 -0
- package/dist/types/components/Assets/Logos/system/types.d.ts +1 -1
- package/dist/types/components/BigStat/BigStat.d.ts +1 -1
- package/dist/types/components/CardSecondary/CardSecondary.d.ts +1 -1
- package/dist/types/components/ConfirmationDialog/ConfirmationDialog.d.ts +1 -1
- package/dist/types/components/CrossButton/CrossButton.d.ts +6 -2
- package/dist/types/components/Flyout/Flyout.d.ts +8 -6
- package/dist/types/components/Flyout/Flyout.types.d.ts +3 -0
- package/dist/types/components/GenericMenu/GenericMenu.d.ts +29 -12
- package/dist/types/components/IconButton/IconButton.types.d.ts +3 -0
- package/dist/types/components/InputWrapper/InputWrapper.d.ts +17 -13
- package/dist/types/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/dist/types/components/SplitButton/SplitButton.d.ts +1 -1
- package/dist/types/components/SplitButton/SplitButton.types.d.ts +3 -0
- package/dist/types/components/Toast/Toast.d.ts +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/types/components/VerticalStepper/VerticalStepper.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import "./Popover.css";
|
|
1
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
3
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
3
4
|
import { GenericMenuPanel, Arrow } from '../GenericMenu/index.js';
|
|
4
5
|
import { styled } from 'styled-components';
|
|
6
|
+
import { forwardRef } from 'react';
|
|
7
|
+
import { cn } from '../../lib/cva.js';
|
|
5
8
|
import { EmptyButton } from '../EmptyButton/index.js';
|
|
6
9
|
import Popover_Arrow from '../Assets/Icons/Popover-Arrow.js';
|
|
7
10
|
import { useResolvedPortalContainer } from '../../providers/PortalContext.js';
|
|
11
|
+
import styles from './Popover.module.css.js';
|
|
8
12
|
import { Icon as SvgImage } from '../Icon/index.js';
|
|
13
|
+
import { cva } from 'class-variance-authority';
|
|
9
14
|
|
|
10
15
|
const Popover = ({
|
|
11
16
|
children,
|
|
@@ -28,25 +33,27 @@ const PopoverTrigger = ({
|
|
|
28
33
|
};
|
|
29
34
|
PopoverTrigger.displayName = "PopoverTrigger";
|
|
30
35
|
Popover.Trigger = PopoverTrigger;
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
const menuPanelVariants = cva(styles["menu-panel"], {
|
|
37
|
+
variants: {
|
|
38
|
+
showClose: {
|
|
39
|
+
true: styles["menu-panel_show-close"],
|
|
40
|
+
false: ""
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
defaultVariants: {
|
|
44
|
+
showClose: false
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const _MenuPanel = ({
|
|
48
|
+
showClose,
|
|
49
|
+
className,
|
|
50
|
+
...props
|
|
51
|
+
}, ref) => /* @__PURE__ */ jsx(GenericMenuPanel, { ref, ...props, className: cn(menuPanelVariants({
|
|
52
|
+
showClose
|
|
53
|
+
}), className) });
|
|
54
|
+
const MenuPanel = forwardRef(_MenuPanel);
|
|
48
55
|
const CloseButton = styled(EmptyButton).withConfig({
|
|
49
|
-
componentId: "sc-1dii14g-
|
|
56
|
+
componentId: "sc-1dii14g-1"
|
|
50
57
|
})(["position:absolute;top:", ";right:", ";width:", ";height:", ";"], ({
|
|
51
58
|
theme
|
|
52
59
|
}) => theme.click.popover.space.y, ({
|
|
@@ -65,7 +72,7 @@ const PopoverContent = ({
|
|
|
65
72
|
...props
|
|
66
73
|
}) => {
|
|
67
74
|
const portalContainer = useResolvedPortalContainer(container);
|
|
68
|
-
return /* @__PURE__ */ jsx(RadixPopover.Portal, { forceMount, container: portalContainer, children: /* @__PURE__ */ jsxs(MenuPanel, { as: RadixPopover.Content,
|
|
75
|
+
return /* @__PURE__ */ jsx(RadixPopover.Portal, { forceMount, container: portalContainer, children: /* @__PURE__ */ jsxs(MenuPanel, { as: RadixPopover.Content, type: "popover", showClose, showArrow, sideOffset: 4, ...props, children: [
|
|
69
76
|
showClose && /* @__PURE__ */ jsx(CloseButton, { as: RadixPopover.Close, asChild: true, children: /* @__PURE__ */ jsx(SvgImage, { name: "cross" }) }),
|
|
70
77
|
showArrow && /* @__PURE__ */ jsx(Arrow, { asChild: true, as: RadixPopover.Arrow, width: 20, height: 10, children: /* @__PURE__ */ jsx(Popover_Arrow, {}) }),
|
|
71
78
|
children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as RadixPopover from '@radix-ui/react-popover';\nimport { Arrow, GenericMenuPanel } from '@/components/GenericMenu';\nimport { styled } from 'styled-components';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as RadixPopover from '@radix-ui/react-popover';\nimport { Arrow, GenericMenuPanel } from '@/components/GenericMenu';\nimport { styled } from 'styled-components';\nimport {\n ComponentProps,\n ComponentPropsWithRef,\n ElementType,\n ReactNode,\n forwardRef,\n} from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { Icon } from '@/components/Icon';\nimport { EmptyButton } from '@/components/EmptyButton';\nimport Popover_Arrow from '@/components/Assets/Icons/Popover-Arrow';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\nimport styles from './Popover.module.css';\n\nexport const Popover = ({ children, ...props }: RadixPopover.PopoverProps) => {\n return <RadixPopover.Root {...props}>{children}</RadixPopover.Root>;\n};\n\nconst Trigger = styled(RadixPopover.Trigger)`\n background: inherit;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n width: fit-content;\n`;\ninterface TriggerProps extends RadixPopover.PopoverTriggerProps {\n anchor?: ReactNode;\n}\n\nconst PopoverTrigger = ({ anchor, children, ...props }: TriggerProps) => {\n return (\n <>\n <Trigger\n asChild\n {...props}\n >\n <div>{children}</div>\n </Trigger>\n {anchor && <RadixPopover.Anchor asChild>{anchor}</RadixPopover.Anchor>}\n </>\n );\n};\nPopoverTrigger.displayName = 'PopoverTrigger';\nPopover.Trigger = PopoverTrigger;\n\ninterface PopoverContentProps extends RadixPopover.PopoverContentProps {\n /** Whether to show an arrow pointing to the trigger element */\n showArrow?: boolean;\n /** Whether to show a close button in the popover */\n showClose?: boolean;\n /** Forces the popover to mount in the DOM even when closed */\n forceMount?: true;\n /** Custom container element for the popover portal */\n container?: HTMLElement | null;\n}\n\nconst menuPanelVariants = cva(styles['menu-panel'], {\n variants: {\n showClose: {\n true: styles['menu-panel_show-close'],\n false: '',\n },\n },\n defaultVariants: {\n showClose: false,\n },\n});\n\ntype MenuPanelComponent = <T extends ElementType = 'div'>(\n props: ComponentProps<typeof GenericMenuPanel<T>> & { showClose?: boolean }\n) => ReactNode;\n\nconst _MenuPanel = <T extends ElementType = 'div'>(\n {\n showClose,\n className,\n ...props\n }: ComponentProps<typeof GenericMenuPanel<T>> & { showClose?: boolean },\n ref: ComponentPropsWithRef<T>['ref']\n) => (\n <GenericMenuPanel\n ref={ref}\n {...(props as ComponentProps<typeof GenericMenuPanel>)}\n className={cn(menuPanelVariants({ showClose }), className)}\n />\n);\n\nconst MenuPanel: MenuPanelComponent = forwardRef(_MenuPanel);\n\nconst CloseButton = styled(EmptyButton)`\n position: absolute;\n top: ${({ theme }) => theme.click.popover.space.y};\n right: ${({ theme }) => theme.click.popover.space.x};\n width: ${({ theme }) => theme.click.popover.icon.size.width};\n height: ${({ theme }) => theme.click.popover.icon.size.height};\n`;\n\nconst PopoverContent = ({\n children,\n showArrow,\n showClose,\n forceMount,\n container,\n ...props\n}: PopoverContentProps) => {\n const portalContainer = useResolvedPortalContainer(container);\n\n return (\n <RadixPopover.Portal\n forceMount={forceMount}\n container={portalContainer}\n >\n <MenuPanel\n as={RadixPopover.Content}\n type=\"popover\"\n showClose={showClose}\n showArrow={showArrow}\n sideOffset={4}\n {...props}\n >\n {showClose && (\n <CloseButton\n as={RadixPopover.Close}\n asChild\n >\n <Icon name=\"cross\" />\n </CloseButton>\n )}\n {showArrow && (\n <Arrow\n asChild\n as={RadixPopover.Arrow}\n width={20}\n height={10}\n >\n <Popover_Arrow />\n </Arrow>\n )}\n {children}\n </MenuPanel>\n </RadixPopover.Portal>\n );\n};\nPopoverContent.displayName = 'PopoverContent';\nPopover.Content = PopoverContent;\n"],"names":["Popover","children","props","Trigger","styled","RadixPopover","withConfig","componentId","PopoverTrigger","anchor","displayName","menuPanelVariants","cva","styles","variants","showClose","true","false","defaultVariants","_MenuPanel","className","ref","cn","MenuPanel","forwardRef","CloseButton","EmptyButton","theme","click","popover","space","y","x","icon","size","width","height","PopoverContent","showArrow","forceMount","container","portalContainer","useResolvedPortalContainer","Content","Close","Icon","Arrow"],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
.radio-group__RXgmX {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-wrap: wrap;
|
|
4
|
+
gap: var(--click-checkbox-space-gap);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.radio-group_inline__Bn4-S {
|
|
8
|
+
flex-direction: row;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.radio-group_inline_false__OXI3T {
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.radio-group_error__cijEQ label {
|
|
16
|
+
color: var(--click-field-color-label-error);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* The item class is applied alongside FormRoot's styled-components class.
|
|
20
|
+
The .item.item double-class boost matches the specificity behavior of the
|
|
21
|
+
original `styled(FormRoot)` chain so these overrides reliably beat FormRoot's
|
|
22
|
+
own declarations regardless of stylesheet insertion order between CSS Modules
|
|
23
|
+
and the runtime-injected styled-components. */
|
|
24
|
+
.item__W9-K2.item__W9-K2 {
|
|
25
|
+
display: flex;
|
|
26
|
+
width: auto;
|
|
27
|
+
padding: var(--click-checkbox-space-all);
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: var(--click-checkbox-space-gap);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.radio-input__KMmKv {
|
|
33
|
+
display: flex;
|
|
34
|
+
width: 1rem;
|
|
35
|
+
height: 1rem;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
align-items: center;
|
|
38
|
+
border: 1px solid var(--click-radio-color-stroke-default);
|
|
39
|
+
border-radius: var(--click-radio-radii-all);
|
|
40
|
+
background: var(--click-radio-color-background-default);
|
|
41
|
+
outline: none;
|
|
42
|
+
cursor: pointer;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.radio-input__KMmKv:hover {
|
|
46
|
+
background: var(--click-radio-color-background-hover);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.radio-input__KMmKv[data-state='checked'] {
|
|
50
|
+
border-color: var(--click-radio-color-stroke-active);
|
|
51
|
+
background: var(--click-radio-color-background-active);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* stylelint-disable no-descending-specificity -- disabled state intentionally
|
|
55
|
+
defined after the checked state to mirror the source cascade order; matches
|
|
56
|
+
the styled-components rule which used a nested `&[data-disabled]` block placed
|
|
57
|
+
after `&[data-state="checked"]`. */
|
|
58
|
+
.radio-input__KMmKv[data-disabled] {
|
|
59
|
+
border-color: var(--click-radio-color-stroke-disabled);
|
|
60
|
+
background: var(--click-radio-color-background-disabled);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.radio-indicator__rrk6W {
|
|
64
|
+
background: var(--click-radio-color-background-default);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.radio-indicator__rrk6W::after {
|
|
68
|
+
content: '';
|
|
69
|
+
display: block;
|
|
70
|
+
width: 6px;
|
|
71
|
+
height: 6px;
|
|
72
|
+
border-radius: 50%;
|
|
73
|
+
background-color: var(--click-radio-color-indicator-default);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.radio-indicator__rrk6W::after:hover {
|
|
77
|
+
background: var(--click-radio-color-indicator-hover);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.radio-indicator__rrk6W[data-state='checked'] {
|
|
81
|
+
background: var(--click-radio-color-background-active);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.radio-indicator__rrk6W[data-state='checked']::after {
|
|
85
|
+
background: var(--click-radio-color-indicator-active);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.radio-indicator__rrk6W:hover {
|
|
89
|
+
background: var(--click-radio-color-background-hover);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.radio-indicator__rrk6W[data-disabled] {
|
|
93
|
+
background: var(--click-radio-color-background-disabled);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.radio-indicator__rrk6W[data-disabled]::after {
|
|
97
|
+
background: var(--click-radio-color-indicator-disabled);
|
|
98
|
+
}
|
|
99
|
+
/* stylelint-enable no-descending-specificity */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const item = "item__W9-K2";
|
|
2
|
+
const styles = {
|
|
3
|
+
"radio-group": "radio-group__RXgmX",
|
|
4
|
+
"radio-group_inline": "radio-group_inline__Bn4-S",
|
|
5
|
+
"radio-group_inline_false": "radio-group_inline_false__OXI3T",
|
|
6
|
+
"radio-group_error": "radio-group_error__cijEQ",
|
|
7
|
+
item: item,
|
|
8
|
+
"radio-input": "radio-input__KMmKv",
|
|
9
|
+
"radio-indicator": "radio-indicator__rrk6W"
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { styles as default, item };
|
|
13
|
+
//# sourceMappingURL=RadioGroup.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1,23 +1,32 @@
|
|
|
1
|
+
import "./RadioGroup.css";
|
|
1
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
3
|
import * as RadixRadioGroup from '@radix-ui/react-radio-group';
|
|
3
4
|
import { useId } from 'react';
|
|
4
|
-
import {
|
|
5
|
+
import { cn } from '../../lib/cva.js';
|
|
6
|
+
import styles from './RadioGroup.module.css.js';
|
|
5
7
|
import { FormRoot } from '../FormContainer/FormRoot.js';
|
|
6
8
|
import { FormElementContainer } from '../FormContainer/FormElementContainer.js';
|
|
7
9
|
import { Error } from '../FormContainer/Error.js';
|
|
8
10
|
import { Label } from '../Label/index.js';
|
|
9
11
|
import { GenericLabel } from '../GenericLabel/index.js';
|
|
12
|
+
import { cva } from 'class-variance-authority';
|
|
10
13
|
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
14
|
+
const radioGroupVariants = cva(styles["radio-group"], {
|
|
15
|
+
variants: {
|
|
16
|
+
inline: {
|
|
17
|
+
true: styles["radio-group_inline"],
|
|
18
|
+
false: styles["radio-group_inline_false"]
|
|
19
|
+
},
|
|
20
|
+
error: {
|
|
21
|
+
true: styles["radio-group_error"],
|
|
22
|
+
false: ""
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
inline: true,
|
|
27
|
+
error: false
|
|
28
|
+
}
|
|
29
|
+
});
|
|
21
30
|
const RadioGroup = ({
|
|
22
31
|
children,
|
|
23
32
|
inline,
|
|
@@ -28,11 +37,15 @@ const RadioGroup = ({
|
|
|
28
37
|
label,
|
|
29
38
|
disabled,
|
|
30
39
|
id,
|
|
40
|
+
className,
|
|
31
41
|
...props
|
|
32
42
|
}) => {
|
|
33
43
|
return /* @__PURE__ */ jsxs(FormRoot, { $orientation: orientation, $dir: dir, $addLabelPadding: true, children: [
|
|
34
44
|
/* @__PURE__ */ jsxs(FormElementContainer, { children: [
|
|
35
|
-
/* @__PURE__ */ jsx(
|
|
45
|
+
/* @__PURE__ */ jsx(RadixRadioGroup.Root, { orientation: inline ? "horizontal" : "vertical", disabled, id, dir: itemDir, ...props, className: cn(radioGroupVariants({
|
|
46
|
+
inline: inline === false ? false : true,
|
|
47
|
+
error: !!error
|
|
48
|
+
}), className), children }),
|
|
36
49
|
!!error && error !== true && /* @__PURE__ */ jsx(Error, { children: error })
|
|
37
50
|
] }),
|
|
38
51
|
label && /* @__PURE__ */ jsx(Label, { htmlFor: id, disabled, error: !!error, children: label })
|
|
@@ -44,79 +57,17 @@ const RadioGroupItem = ({
|
|
|
44
57
|
value,
|
|
45
58
|
disabled,
|
|
46
59
|
required,
|
|
60
|
+
className,
|
|
47
61
|
...props
|
|
48
62
|
}) => {
|
|
49
63
|
const defaultId = useId();
|
|
50
|
-
return /* @__PURE__ */ jsxs(
|
|
51
|
-
/* @__PURE__ */ jsx(
|
|
64
|
+
return /* @__PURE__ */ jsxs(FormRoot, { $orientation: "horizontal", $dir: "end", $addLabelPadding: false, ...props, className: cn(styles.item, className), children: [
|
|
65
|
+
/* @__PURE__ */ jsx(RadixRadioGroup.Item, { value, id: id ?? defaultId, disabled, required, "aria-label": `${label}`, className: styles["radio-input"], children: /* @__PURE__ */ jsx(RadixRadioGroup.Indicator, { className: styles["radio-indicator"] }) }),
|
|
52
66
|
label && /* @__PURE__ */ jsx(GenericLabel, { htmlFor: id ?? defaultId, disabled, children: label })
|
|
53
67
|
] });
|
|
54
68
|
};
|
|
55
69
|
RadioGroupItem.displayName = "RadioGroupItem";
|
|
56
70
|
RadioGroup.Item = RadioGroupItem;
|
|
57
|
-
const Wrapper = styled(FormRoot).withConfig({
|
|
58
|
-
componentId: "sc-p6cydr-1"
|
|
59
|
-
})(["padding:", ";display:flex;align-items:center;gap:", ";width:auto;"], ({
|
|
60
|
-
theme
|
|
61
|
-
}) => theme.click.checkbox.space.all, ({
|
|
62
|
-
theme
|
|
63
|
-
}) => theme.click.checkbox.space.gap);
|
|
64
|
-
const RadioInput = styled(RadixRadioGroup.Item).withConfig({
|
|
65
|
-
componentId: "sc-p6cydr-2"
|
|
66
|
-
})(["display:flex;align-items:center;justify-content:center;outline:none;cursor:pointer;", ";"], ({
|
|
67
|
-
theme
|
|
68
|
-
}) => `
|
|
69
|
-
border-radius: ${theme.click.radio.radii.all};
|
|
70
|
-
width: 1rem;
|
|
71
|
-
height: 1rem;
|
|
72
|
-
background: ${theme.click.radio.color.background.default};
|
|
73
|
-
border: 1px solid ${theme.click.radio.color.stroke.default};
|
|
74
|
-
|
|
75
|
-
&:hover {
|
|
76
|
-
background: ${theme.click.radio.color.background.hover};
|
|
77
|
-
}
|
|
78
|
-
&[data-state="checked"] {
|
|
79
|
-
border-color: ${theme.click.radio.color.stroke.active};
|
|
80
|
-
background: ${theme.click.radio.color.background.active};
|
|
81
|
-
}
|
|
82
|
-
&[data-disabled] {
|
|
83
|
-
background: ${theme.click.radio.color.background.disabled};
|
|
84
|
-
border-color: ${theme.click.radio.color.stroke.disabled};
|
|
85
|
-
}
|
|
86
|
-
`);
|
|
87
|
-
const RadioGroupIndicator = styled(RadixRadioGroup.Indicator).withConfig({
|
|
88
|
-
componentId: "sc-p6cydr-3"
|
|
89
|
-
})(["", ""], ({
|
|
90
|
-
theme
|
|
91
|
-
}) => `
|
|
92
|
-
background: ${theme.click.radio.color.background.default};
|
|
93
|
-
&::after {
|
|
94
|
-
content: '';
|
|
95
|
-
display: block;
|
|
96
|
-
width: 6px;
|
|
97
|
-
height: 6px;
|
|
98
|
-
border-radius: 50%;
|
|
99
|
-
background-color: ${theme.click.radio.color.indicator.default};
|
|
100
|
-
&:hover {
|
|
101
|
-
background: ${theme.click.radio.color.indicator.hover};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
&[data-state="checked"] {
|
|
105
|
-
background: ${theme.click.radio.color.background.active};
|
|
106
|
-
&::after {
|
|
107
|
-
background: ${theme.click.radio.color.indicator.active};
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
&:hover {
|
|
111
|
-
background: ${theme.click.radio.color.background.hover};
|
|
112
|
-
}
|
|
113
|
-
&[data-disabled] {
|
|
114
|
-
background: ${theme.click.radio.color.background.disabled};
|
|
115
|
-
&::after {
|
|
116
|
-
background: ${theme.click.radio.color.indicator.disabled};
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
`);
|
|
120
71
|
|
|
121
72
|
export { RadioGroup };
|
|
122
73
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import * as RadixRadioGroup from '@radix-ui/react-radio-group';\nimport { HTMLAttributes, ReactNode, useId } from 'react';\nimport { styled } from 'styled-components';\nimport { GenericLabel } from '@/components/GenericLabel';\nimport { Label } from '@/components/Label';\nimport { Error, FormElementContainer, FormRoot } from '@/components/FormContainer';\n\nexport interface RadioGroupProps extends Omit<RadixRadioGroup.RadioGroupProps, 'dir'> {\n /** Whether to display radio items inline (horizontally) */\n inline?: boolean;\n /** The orientation of the label relative to the radio group */\n orientation?: 'vertical' | 'horizontal';\n /** The direction/position of the label - start places label before, end places label after */\n dir?: 'start' | 'end';\n /** Text direction for radio items - ltr or rtl */\n itemDir?: 'rtl' | 'ltr';\n /** The label text displayed next to the radio group */\n label?: ReactNode;\n /** Error message to display below the radio group */\n error?: ReactNode;\n}\n\nconst RadioGroupRoot = styled(RadixRadioGroup.Root)<{\n $error: boolean;\n $inline?: boolean;\n}>`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ theme }) => theme.click.checkbox.space.gap};\n flex-direction: ${({ $inline = true }) => ($inline === true ? 'row' : 'column')};\n label {\n ${({ $error, theme }) =>\n $error ? `color: ${theme.click.field.color.label.error};` : ''}\n }\n`;\n\nexport const RadioGroup = ({\n children,\n inline,\n orientation,\n dir,\n error,\n itemDir,\n label,\n disabled,\n id,\n ...props\n}: RadioGroupProps) => {\n return (\n <FormRoot\n $orientation={orientation}\n $dir={dir}\n $addLabelPadding\n >\n <FormElementContainer>\n <RadioGroupRoot\n orientation={inline ? 'horizontal' : 'vertical'}\n disabled={disabled}\n id={id}\n $error={!!error}\n dir={itemDir}\n $inline={inline}\n {...props}\n >\n {children}\n </RadioGroupRoot>\n {!!error && error !== true && <Error>{error}</Error>}\n </FormElementContainer>\n {label && (\n <Label\n htmlFor={id}\n disabled={disabled}\n error={!!error}\n >\n {label}\n </Label>\n )}\n </FormRoot>\n );\n};\n\ninterface RadioGroupInputProps extends RadixRadioGroup.RadioGroupItemProps {\n /** The label text displayed next to the radio item */\n label?: ReactNode;\n}\n\nexport type RadioGroupItemProps = RadioGroupInputProps & HTMLAttributes<HTMLDivElement>;\n\nconst RadioGroupItem = ({\n id,\n label,\n value,\n disabled,\n required,\n ...props\n}: RadioGroupItemProps) => {\n const defaultId = useId();\n return (\n <Wrapper\n $orientation=\"horizontal\"\n $dir=\"end\"\n $addLabelPadding={false}\n {...props}\n >\n <RadioInput\n value={value}\n id={id ?? defaultId}\n disabled={disabled}\n required={required}\n aria-label={`${label}`}\n >\n <RadioGroupIndicator />\n </RadioInput>\n {label && (\n <GenericLabel\n htmlFor={id ?? defaultId}\n disabled={disabled}\n >\n {label}\n </GenericLabel>\n )}\n </Wrapper>\n );\n};\n\nRadioGroupItem.displayName = 'RadioGroupItem';\nRadioGroup.Item = RadioGroupItem;\n\nconst Wrapper = styled(FormRoot)`\n padding: ${({ theme }) => theme.click.checkbox.space.all};\n\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.click.checkbox.space.gap};\n width: auto;\n`;\n\nconst RadioInput = styled(RadixRadioGroup.Item)`\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n cursor: pointer;\n ${({ theme }) => `\n border-radius: ${theme.click.radio.radii.all};\n width: 1rem;\n height: 1rem;\n background: ${theme.click.radio.color.background.default};\n border: 1px solid ${theme.click.radio.color.stroke.default};\n\n &:hover {\n background: ${theme.click.radio.color.background.hover};\n }\n &[data-state=\"checked\"] {\n border-color: ${theme.click.radio.color.stroke.active};\n background: ${theme.click.radio.color.background.active};\n }\n &[data-disabled] {\n background: ${theme.click.radio.color.background.disabled};\n border-color: ${theme.click.radio.color.stroke.disabled};\n }\n `};\n`;\n\nconst RadioGroupIndicator = styled(RadixRadioGroup.Indicator)`\n ${({ theme }) => `\n background: ${theme.click.radio.color.background.default};\n &::after {\n content: '';\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: ${theme.click.radio.color.indicator.default};\n &:hover {\n background: ${theme.click.radio.color.indicator.hover};\n }\n }\n &[data-state=\"checked\"] {\n background: ${theme.click.radio.color.background.active};\n &::after {\n background: ${theme.click.radio.color.indicator.active};\n }\n }\n &:hover {\n background: ${theme.click.radio.color.background.hover};\n }\n &[data-disabled] {\n background: ${theme.click.radio.color.background.disabled};\n &::after {\n background: ${theme.click.radio.color.indicator.disabled};\n }\n }\n `}\n`;\n"],"names":["RadioGroupRoot","styled","RadixRadioGroup","Root","withConfig","componentId","theme","click","checkbox","space","gap","$inline","$error","field","color","label","error","RadioGroup","children","inline","orientation","dir","itemDir","disabled","id","props","RadioGroupItem","value","required","defaultId","useId","displayName","Item","Wrapper","FormRoot","all","RadioInput","radio","radii","background","default","stroke","hover","active","RadioGroupIndicator","Indicator","indicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import * as RadixRadioGroup from '@radix-ui/react-radio-group';\nimport { HTMLAttributes, ReactNode, useId } from 'react';\nimport { GenericLabel } from '@/components/GenericLabel';\nimport { Label } from '@/components/Label';\nimport { Error, FormElementContainer, FormRoot } from '@/components/FormContainer';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './RadioGroup.module.css';\n\nexport interface RadioGroupProps extends Omit<RadixRadioGroup.RadioGroupProps, 'dir'> {\n /** Whether to display radio items inline (horizontally) */\n inline?: boolean;\n /** The orientation of the label relative to the radio group */\n orientation?: 'vertical' | 'horizontal';\n /** The direction/position of the label - start places label before, end places label after */\n dir?: 'start' | 'end';\n /** Text direction for radio items - ltr or rtl */\n itemDir?: 'rtl' | 'ltr';\n /** The label text displayed next to the radio group */\n label?: ReactNode;\n /** Error message to display below the radio group */\n error?: ReactNode;\n}\n\nconst radioGroupVariants = cva(styles['radio-group'], {\n variants: {\n inline: {\n true: styles['radio-group_inline'],\n false: styles['radio-group_inline_false'],\n },\n error: {\n true: styles['radio-group_error'],\n false: '',\n },\n },\n defaultVariants: {\n inline: true,\n error: false,\n },\n});\n\nexport const RadioGroup = ({\n children,\n inline,\n orientation,\n dir,\n error,\n itemDir,\n label,\n disabled,\n id,\n className,\n ...props\n}: RadioGroupProps) => {\n return (\n <FormRoot\n $orientation={orientation}\n $dir={dir}\n $addLabelPadding\n >\n <FormElementContainer>\n <RadixRadioGroup.Root\n orientation={inline ? 'horizontal' : 'vertical'}\n disabled={disabled}\n id={id}\n dir={itemDir}\n {...props}\n className={cn(\n radioGroupVariants({\n inline: inline === false ? false : true,\n error: !!error,\n }),\n className\n )}\n >\n {children}\n </RadixRadioGroup.Root>\n {!!error && error !== true && <Error>{error}</Error>}\n </FormElementContainer>\n {label && (\n <Label\n htmlFor={id}\n disabled={disabled}\n error={!!error}\n >\n {label}\n </Label>\n )}\n </FormRoot>\n );\n};\n\ninterface RadioGroupInputProps extends RadixRadioGroup.RadioGroupItemProps {\n /** The label text displayed next to the radio item */\n label?: ReactNode;\n}\n\nexport type RadioGroupItemProps = RadioGroupInputProps & HTMLAttributes<HTMLDivElement>;\n\nconst RadioGroupItem = ({\n id,\n label,\n value,\n disabled,\n required,\n className,\n ...props\n}: RadioGroupItemProps) => {\n const defaultId = useId();\n return (\n <FormRoot\n $orientation=\"horizontal\"\n $dir=\"end\"\n $addLabelPadding={false}\n {...props}\n className={cn(styles.item, className)}\n >\n <RadixRadioGroup.Item\n value={value}\n id={id ?? defaultId}\n disabled={disabled}\n required={required}\n aria-label={`${label}`}\n className={styles['radio-input']}\n >\n <RadixRadioGroup.Indicator className={styles['radio-indicator']} />\n </RadixRadioGroup.Item>\n {label && (\n <GenericLabel\n htmlFor={id ?? defaultId}\n disabled={disabled}\n >\n {label}\n </GenericLabel>\n )}\n </FormRoot>\n );\n};\n\nRadioGroupItem.displayName = 'RadioGroupItem';\nRadioGroup.Item = RadioGroupItem;\n"],"names":["radioGroupVariants","cva","styles","variants","inline","true","false","error","defaultVariants","RadioGroup","children","orientation","dir","itemDir","label","disabled","id","className","props","cn","RadioGroupItem","value","required","defaultId","useId","item","displayName","Item"],"mappings":"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"}
|
|
@@ -309,7 +309,7 @@ const InternalSelect = ({
|
|
|
309
309
|
}, align: "start", $useFullWidthItems: useFullWidthItems, $itemCharacterLimit: itemCharacterLimit, children: /* @__PURE__ */ jsxs(SelectList, { children: [
|
|
310
310
|
/* @__PURE__ */ jsxs(SearchBarContainer, { $showSearch: showSearch, children: [
|
|
311
311
|
/* @__PURE__ */ jsx(SearchBar, { ref: inputRef, value: search, onChange: (e) => onUpdateSearch(e.target.value), "data-testid": "select-search-input", onKeyDown, $showSearch: showSearch }),
|
|
312
|
-
/* @__PURE__ */ jsx(SearchClose, { as: IconButton, icon: "cross", onClick: clearSearch, "data-testid": "select-search-close", $showClose: search.length > 0, size: "xs" })
|
|
312
|
+
/* @__PURE__ */ jsx(SearchClose, { as: IconButton, htmlType: "button", icon: "cross", onClick: clearSearch, "data-testid": "select-search-close", $showClose: search.length > 0, size: "xs" })
|
|
313
313
|
] }),
|
|
314
314
|
/* @__PURE__ */ jsx(SelectListContent, { $maxHeight: maxHeight, children: /* @__PURE__ */ jsx(OptionContext.Provider, { value: optionContextValue, children: options && options.length > 0 ? options.map((props2, index) => {
|
|
315
315
|
if ("options" in props2) {
|