@koobiq/react-components 0.0.1-beta.2 → 0.0.1-beta.21
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/components/Alert/Alert.js +2 -2
- package/dist/components/Alert/components/AlertIcon/utils.js +1 -1
- package/dist/components/Alert/intl.json.js +2 -6
- package/dist/components/Alert/types.d.ts +2 -1
- package/dist/components/AnimatedIcon/AnimatedIcon.d.ts +4 -0
- package/dist/components/AnimatedIcon/AnimatedIcon.js +50 -0
- package/dist/components/AnimatedIcon/AnimatedIcon.module.css.js +11 -0
- package/dist/components/AnimatedIcon/index.d.ts +2 -0
- package/dist/components/AnimatedIcon/types.d.ts +19 -0
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.module.css.js +2 -2
- package/dist/components/Button/types.d.ts +4 -5
- package/dist/components/ButtonToggleGroup/ButtonToggleGroup.d.ts +2 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroup.js +130 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroup.module.css.js +17 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroupContext.d.ts +7 -0
- package/dist/components/ButtonToggleGroup/ButtonToggleGroupContext.js +12 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.d.ts +2 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.js +90 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/ButtonToggle.module.css.js +32 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/index.d.ts +2 -0
- package/dist/components/ButtonToggleGroup/components/ButtonToggle/types.d.ts +27 -0
- package/dist/components/ButtonToggleGroup/components/index.d.ts +1 -0
- package/dist/components/ButtonToggleGroup/index.d.ts +3 -0
- package/dist/components/ButtonToggleGroup/reducer.d.ts +23 -0
- package/dist/components/ButtonToggleGroup/reducer.js +25 -0
- package/dist/components/ButtonToggleGroup/types.d.ts +38 -0
- package/dist/components/ButtonToggleGroup/utils.d.ts +3 -0
- package/dist/components/ButtonToggleGroup/utils.js +19 -0
- package/dist/components/Checkbox/Checkbox.js +18 -8
- package/dist/components/Collections/Divider.d.ts +19 -0
- package/dist/components/Collections/Divider.js +14 -0
- package/dist/components/Collections/Header.d.ts +20 -0
- package/dist/components/Collections/Header.js +16 -0
- package/dist/components/Collections/Item.d.ts +14 -0
- package/dist/components/Collections/Item.js +10 -0
- package/dist/components/{List/ListSection.d.ts → Collections/Section.d.ts} +6 -6
- package/dist/components/Collections/Section.js +10 -0
- package/dist/components/Collections/index.d.ts +4 -0
- package/dist/components/Container/Container.js +2 -1
- package/dist/components/Container/utils.d.ts +1 -1
- package/dist/components/Dialog/Dialog.d.ts +9 -1
- package/dist/components/Dialog/Dialog.js +31 -17
- package/dist/components/Dialog/components/DialogBody.d.ts +13 -0
- package/dist/components/Dialog/components/{DialogContent.js → DialogBody.js} +9 -8
- package/dist/components/Dialog/components/DialogCloseButton.d.ts +14 -1
- package/dist/components/Dialog/components/DialogCloseButton.js +3 -6
- package/dist/components/Dialog/components/index.d.ts +1 -1
- package/dist/components/Dialog/index.d.ts +0 -1
- package/dist/components/Dialog/intl.json.js +2 -6
- package/dist/components/Divider/Divider.d.ts +4 -0
- package/dist/components/Divider/Divider.js +44 -0
- package/dist/components/Divider/Divider.module.css.js +29 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Divider/types.d.ts +26 -0
- package/dist/components/Divider/types.js +6 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.d.ts +1 -1
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.d.ts +8 -2
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.js +32 -30
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.d.ts +1 -1
- package/dist/components/FieldComponents/FieldSelect/FieldSelect.d.ts +12 -0
- package/dist/components/FieldComponents/FieldSelect/FieldSelect.js +37 -0
- package/dist/components/FieldComponents/FieldSelect/FieldSelect.module.css.js +20 -0
- package/dist/components/FieldComponents/FieldSelect/index.d.ts +1 -0
- package/dist/components/FieldComponents/index.d.ts +1 -0
- package/dist/components/FlexBox/FlexBox.d.ts +4 -0
- package/dist/components/FlexBox/FlexBox.js +47 -0
- package/dist/components/FlexBox/index.d.ts +2 -0
- package/dist/components/FlexBox/types.d.ts +27 -0
- package/dist/components/Grid/Grid.d.ts +8 -2
- package/dist/components/Grid/Grid.js +5 -2
- package/dist/components/IconButton/types.d.ts +5 -4
- package/dist/components/Input/Input.d.ts +1 -0
- package/dist/components/Input/Input.js +11 -11
- package/dist/components/Input/types.d.ts +2 -1
- package/dist/components/Link/Link.js +13 -15
- package/dist/components/Link/types.d.ts +4 -4
- package/dist/components/List/List.d.ts +17 -3
- package/dist/components/List/List.js +32 -18
- package/dist/components/List/List.module.css.js +0 -3
- package/dist/components/List/components/ListItemText/ListItemText.js +26 -0
- package/dist/components/List/components/ListItemText/ListItemText.module.css.js +11 -0
- package/dist/components/List/components/ListOption/ListOption.d.ts +3 -2
- package/dist/components/List/components/ListOption/ListOption.js +11 -16
- package/dist/components/List/components/ListSection/ListSection.d.ts +3 -2
- package/dist/components/List/components/ListSection/ListSection.js +1 -4
- package/dist/components/List/index.d.ts +2 -2
- package/dist/components/List/types.d.ts +13 -2
- package/dist/components/Menu/Menu.d.ts +15 -0
- package/dist/components/Menu/Menu.js +68 -0
- package/dist/components/Menu/Menu.module.css.js +8 -0
- package/dist/components/Menu/components/MenuHeader/MenuHeader.d.ts +5 -0
- package/dist/components/Menu/components/MenuHeader/MenuHeader.js +9 -0
- package/dist/components/Menu/components/MenuHeader/index.d.ts +1 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.d.ts +3 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.js +45 -0
- package/dist/components/Menu/components/MenuInner/MenuInner.module.css.js +11 -0
- package/dist/components/Menu/components/MenuInner/index.d.ts +1 -0
- package/dist/components/Menu/components/MenuItem/MenuItem.d.ts +6 -0
- package/dist/components/Menu/components/MenuItem/MenuItem.js +36 -0
- package/dist/components/Menu/components/MenuItem/index.d.ts +1 -0
- package/dist/components/Menu/components/MenuSection/MenuSection.d.ts +6 -0
- package/dist/components/Menu/components/MenuSection/MenuSection.js +30 -0
- package/dist/components/Menu/components/MenuSection/MenuSection.module.css.js +11 -0
- package/dist/components/Menu/components/MenuSection/index.d.ts +1 -0
- package/dist/components/Menu/components/index.d.ts +1 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Menu/types.d.ts +62 -0
- package/dist/components/Menu/types.js +4 -0
- package/dist/components/Modal/Modal.d.ts +9 -1
- package/dist/components/Modal/Modal.js +21 -16
- package/dist/components/Modal/index.d.ts +15 -2
- package/dist/components/Modal/index.js +9 -0
- package/dist/components/Modal/types.d.ts +7 -0
- package/dist/components/Popover/Popover.d.ts +12 -2
- package/dist/components/Popover/Popover.js +143 -128
- package/dist/components/Popover/Popover.module.css.js +3 -0
- package/dist/components/Popover/index.d.ts +15 -2
- package/dist/components/Popover/index.js +9 -0
- package/dist/components/Popover/types.d.ts +28 -4
- package/dist/components/Popover/types.js +9 -1
- package/dist/components/ProgressBar/ProgressBar.module.css.js +1 -2
- package/dist/components/ProgressSpinner/ProgressSpinner.module.css.js +1 -2
- package/dist/components/Provider/BreakpointsProvider.d.ts +2 -1
- package/dist/components/Provider/BreakpointsProvider.js +8 -1
- package/dist/components/Provider/Provider.d.ts +1 -1
- package/dist/components/Provider/Provider.js +9 -1
- package/dist/components/Provider/types.d.ts +5 -0
- package/dist/components/Provider/utils/useBreakpoints.d.ts +2 -1
- package/dist/components/Provider/utils/useBreakpoints.js +2 -2
- package/dist/components/RadioGroup/RadioContext.js +1 -0
- package/dist/components/RadioGroup/RadioGroup.js +2 -1
- package/dist/components/RadioGroup/components/Radio/Radio.js +3 -2
- package/dist/components/RadioGroup/components/Radio/Radio.module.css.js +3 -0
- package/dist/components/Select/Select.d.ts +11 -0
- package/dist/components/Select/Select.js +179 -0
- package/dist/components/Select/Select.module.css.js +20 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/types.d.ts +87 -0
- package/dist/components/SidePanel/SidePanel.d.ts +9 -1
- package/dist/components/SidePanel/SidePanel.js +24 -19
- package/dist/components/SidePanel/index.d.ts +15 -2
- package/dist/components/SidePanel/index.js +9 -0
- package/dist/components/SidePanel/types.d.ts +7 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.module.css.js +0 -1
- package/dist/components/SkeletonTypography/utils.js +3 -0
- package/dist/components/TagGroup/Tag.d.ts +24 -0
- package/dist/components/TagGroup/Tag.js +10 -0
- package/dist/components/TagGroup/TagGroup.d.ts +2 -0
- package/dist/components/TagGroup/TagGroup.js +22 -0
- package/dist/components/TagGroup/TagGroup.module.css.js +8 -0
- package/dist/components/TagGroup/components/TagInner/TagInner.d.ts +11 -0
- package/dist/components/TagGroup/components/TagInner/TagInner.js +86 -0
- package/dist/components/TagGroup/components/TagInner/TagInner.module.css.js +30 -0
- package/dist/components/TagGroup/components/TagInner/index.d.ts +1 -0
- package/dist/components/TagGroup/components/TagInner/utils.d.ts +3 -0
- package/dist/components/TagGroup/components/TagInner/utils.js +9 -0
- package/dist/components/TagGroup/components/index.d.ts +1 -0
- package/dist/components/TagGroup/index.d.ts +3 -0
- package/dist/components/TagGroup/intl.json.js +7 -0
- package/dist/components/TagGroup/types.d.ts +37 -0
- package/dist/components/TagGroup/types.js +9 -0
- package/dist/components/Toggle/Toggle.js +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -1
- package/dist/components/Tooltip/Tooltip.js +9 -8
- package/dist/components/Tooltip/types.d.ts +9 -4
- package/dist/components/Typography/Typography.js +2 -2
- package/dist/components/Typography/Typography.module.css.js +2 -1
- package/dist/components/Typography/types.d.ts +7 -2
- package/dist/components/Typography/types.js +2 -1
- package/dist/components/index.d.ts +8 -0
- package/dist/components/layout/flex/flex.d.ts +15 -4
- package/dist/components/layout/flex/flex.js +6 -1
- package/dist/components/layout/flex/flex.module.css.js +78 -39
- package/dist/index.js +51 -23
- package/dist/style.css +862 -350
- package/dist/styles/utility.d.ts +2 -0
- package/dist/styles/utility.js +3 -2
- package/dist/styles/utility.module.css.js +5 -2
- package/dist/types.d.ts +1 -0
- package/package.json +11 -6
- package/dist/components/Dialog/DialogContext.d.ts +0 -9
- package/dist/components/Dialog/DialogContext.js +0 -12
- package/dist/components/Dialog/components/DialogContent.d.ts +0 -12
- package/dist/components/Input/components/FieldAddon/FieldAddon.d.ts +0 -10
- package/dist/components/Input/components/FieldAddon/index.d.ts +0 -1
- package/dist/components/Input/components/FieldCaption/FieldCaption.d.ts +0 -6
- package/dist/components/Input/components/FieldCaption/index.d.ts +0 -1
- package/dist/components/Input/components/FieldControl/FieldControl.d.ts +0 -9
- package/dist/components/Input/components/FieldControl/index.d.ts +0 -1
- package/dist/components/Input/components/FieldError/FieldError.d.ts +0 -7
- package/dist/components/Input/components/FieldError/index.d.ts +0 -1
- package/dist/components/Input/components/FieldInput/FieldInput.d.ts +0 -9
- package/dist/components/Input/components/FieldInput/index.d.ts +0 -1
- package/dist/components/Input/components/FieldInputGroup/FieldInputGroup.d.ts +0 -7
- package/dist/components/Input/components/FieldInputGroup/index.d.ts +0 -1
- package/dist/components/Input/components/FieldLabel/FieldLabel.d.ts +0 -9
- package/dist/components/Input/components/FieldLabel/index.d.ts +0 -1
- package/dist/components/Input/components/index.d.ts +0 -7
- package/dist/components/List/ListItem.d.ts +0 -11
- package/dist/components/List/ListItem.js +0 -11
- package/dist/components/List/ListSection.js +0 -11
- package/dist/components/List/components/ListOption/ListOption.module.css.js +0 -23
|
@@ -2,146 +2,161 @@
|
|
|
2
2
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef, useRef, cloneElement, isValidElement } from "react";
|
|
4
4
|
import { useDOMRef, useBoolean, mergeProps, clsx } from "@koobiq/react-core";
|
|
5
|
-
import {
|
|
5
|
+
import { useOverlayTrigger, usePopover, Overlay, useOverlayTriggerState } from "@koobiq/react-primitives";
|
|
6
6
|
import { Transition } from "react-transition-group";
|
|
7
7
|
import s from "./Popover.module.css.js";
|
|
8
8
|
import { normalizeInlineSize } from "./utils.js";
|
|
9
9
|
import { Dialog } from "../Dialog/Dialog.js";
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
const PopoverInner = (props) => {
|
|
11
|
+
const {
|
|
12
|
+
offset = 0,
|
|
13
|
+
size = "medium",
|
|
14
|
+
crossOffset = 0,
|
|
15
|
+
hideArrow = false,
|
|
16
|
+
containerPadding = 12,
|
|
17
|
+
arrowBoundaryOffset = 20,
|
|
18
|
+
placement: placementProp = "top",
|
|
19
|
+
type = "dialog",
|
|
20
|
+
state,
|
|
21
|
+
control,
|
|
22
|
+
children,
|
|
23
|
+
anchorRef,
|
|
24
|
+
slotProps,
|
|
25
|
+
className,
|
|
26
|
+
isNonModal,
|
|
27
|
+
popoverRef,
|
|
28
|
+
portalContainer,
|
|
29
|
+
hideCloseButton,
|
|
30
|
+
disableFocusManagement,
|
|
31
|
+
disableExitOnEscapeKeyDown,
|
|
32
|
+
shouldCloseOnInteractOutside,
|
|
33
|
+
...other
|
|
34
|
+
} = props;
|
|
35
|
+
const showArrow = !hideArrow;
|
|
36
|
+
const domRef = useDOMRef(popoverRef);
|
|
37
|
+
const controlRef = useRef(null);
|
|
38
|
+
const openState = state.isOpen;
|
|
39
|
+
const [opened, { on, off }] = useBoolean(openState);
|
|
40
|
+
const { triggerProps, overlayProps } = useOverlayTrigger(
|
|
41
|
+
{ type },
|
|
42
|
+
{ ...state, isOpen: openState }
|
|
43
|
+
);
|
|
44
|
+
const {
|
|
45
|
+
popoverProps,
|
|
46
|
+
underlayProps,
|
|
47
|
+
arrowProps: arrowPropsCommon,
|
|
48
|
+
placement
|
|
49
|
+
} = usePopover(
|
|
50
|
+
{
|
|
51
|
+
...props,
|
|
52
|
+
offset,
|
|
28
53
|
isNonModal,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
54
|
+
crossOffset,
|
|
55
|
+
maxHeight: 480,
|
|
56
|
+
containerPadding,
|
|
57
|
+
popoverRef: domRef,
|
|
58
|
+
arrowBoundaryOffset,
|
|
59
|
+
placement: placementProp,
|
|
60
|
+
shouldCloseOnInteractOutside,
|
|
61
|
+
triggerRef: anchorRef || controlRef,
|
|
62
|
+
isKeyboardDismissDisabled: disableExitOnEscapeKeyDown
|
|
63
|
+
},
|
|
64
|
+
{ ...state, isOpen: openState || opened }
|
|
65
|
+
);
|
|
66
|
+
const resolvedChildren = () => {
|
|
67
|
+
if (typeof children === "function")
|
|
68
|
+
return cloneElement(children({ close: state.close }), overlayProps);
|
|
69
|
+
if (isValidElement(children)) return cloneElement(children, overlayProps);
|
|
70
|
+
return children;
|
|
71
|
+
};
|
|
72
|
+
const { isDisabled, ...otherTriggerProps } = triggerProps;
|
|
73
|
+
const arrowProps = mergeProps(
|
|
74
|
+
{ className: s.arrow },
|
|
75
|
+
arrowPropsCommon,
|
|
76
|
+
slotProps?.arrow
|
|
77
|
+
);
|
|
78
|
+
const dialogProps = mergeProps(
|
|
79
|
+
{
|
|
80
|
+
role: "dialog",
|
|
81
|
+
hideCloseButton,
|
|
82
|
+
className: s.dialog,
|
|
83
|
+
onClose: state.close
|
|
84
|
+
},
|
|
85
|
+
slotProps?.dialog
|
|
86
|
+
);
|
|
87
|
+
const backdropProps = mergeProps(
|
|
88
|
+
{ className: s.underlay },
|
|
89
|
+
slotProps?.backdrop,
|
|
90
|
+
underlayProps
|
|
91
|
+
);
|
|
92
|
+
const transitionProps = mergeProps(
|
|
93
|
+
{
|
|
94
|
+
timeout: 120,
|
|
95
|
+
onEnter: on,
|
|
96
|
+
onExited: off,
|
|
97
|
+
appear: true,
|
|
98
|
+
in: openState,
|
|
99
|
+
nodeRef: domRef,
|
|
100
|
+
unmountOnExit: true
|
|
101
|
+
},
|
|
102
|
+
slotProps?.transition
|
|
103
|
+
);
|
|
104
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
105
|
+
control?.({
|
|
106
|
+
ref: controlRef,
|
|
107
|
+
disabled: isDisabled,
|
|
108
|
+
...otherTriggerProps
|
|
109
|
+
}),
|
|
110
|
+
/* @__PURE__ */ jsx(Transition, { ...transitionProps, children: (transition) => /* @__PURE__ */ jsxs(
|
|
111
|
+
Overlay,
|
|
83
112
|
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
);
|
|
91
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
92
|
-
control?.({
|
|
93
|
-
onClick: onPress,
|
|
94
|
-
ref: controlRef,
|
|
95
|
-
disabled: isDisabled,
|
|
96
|
-
...otherTriggerProps
|
|
97
|
-
}),
|
|
98
|
-
/* @__PURE__ */ jsx(
|
|
99
|
-
Transition,
|
|
100
|
-
{
|
|
101
|
-
onEnter: on,
|
|
102
|
-
timeout: 300,
|
|
103
|
-
onExited: off,
|
|
104
|
-
in: openState,
|
|
105
|
-
nodeRef: domRef,
|
|
106
|
-
unmountOnExit: true,
|
|
107
|
-
appear: true,
|
|
108
|
-
children: (transition) => /* @__PURE__ */ jsxs(
|
|
109
|
-
Overlay,
|
|
113
|
+
portalContainer,
|
|
114
|
+
disableFocusManagement,
|
|
115
|
+
children: [
|
|
116
|
+
/* @__PURE__ */ jsx("div", { ...backdropProps }),
|
|
117
|
+
/* @__PURE__ */ jsxs(
|
|
118
|
+
"div",
|
|
110
119
|
{
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
ref: domRef,
|
|
121
|
+
"data-size": size,
|
|
122
|
+
"data-arrow": showArrow,
|
|
123
|
+
"data-placement": placement,
|
|
124
|
+
"data-transition": transition,
|
|
125
|
+
className: clsx(s.base, s[size], className),
|
|
126
|
+
...mergeProps(popoverProps, other),
|
|
127
|
+
style: {
|
|
128
|
+
...popoverProps.style,
|
|
129
|
+
"--popover-inline-size": normalizeInlineSize(size)
|
|
130
|
+
},
|
|
113
131
|
children: [
|
|
114
|
-
/* @__PURE__ */ jsx("div", { ...
|
|
115
|
-
/* @__PURE__ */
|
|
116
|
-
"div",
|
|
117
|
-
{
|
|
118
|
-
ref: domRef,
|
|
119
|
-
"data-size": size,
|
|
120
|
-
"data-arrow": showArrow,
|
|
121
|
-
"data-placement": placement,
|
|
122
|
-
"data-transition": transition,
|
|
123
|
-
className: clsx(s.base, s[size], className),
|
|
124
|
-
...mergeProps(popoverProps, other),
|
|
125
|
-
style: {
|
|
126
|
-
...popoverProps.style,
|
|
127
|
-
"--popover-inline-size": normalizeInlineSize(size)
|
|
128
|
-
},
|
|
129
|
-
children: [
|
|
130
|
-
showArrow && /* @__PURE__ */ jsx("div", { ...arrowProps, "data-placement": placement }),
|
|
131
|
-
/* @__PURE__ */ jsx(Dialog, { ...dialogProps, children: resolvedChildren() })
|
|
132
|
-
]
|
|
133
|
-
}
|
|
134
|
-
)
|
|
132
|
+
showArrow && /* @__PURE__ */ jsx("div", { ...arrowProps, "data-placement": placement }),
|
|
133
|
+
/* @__PURE__ */ jsx("div", { className: s.container, children: type === "dialog" ? /* @__PURE__ */ jsx(Dialog, { ...dialogProps, children: resolvedChildren() }) : resolvedChildren() })
|
|
135
134
|
]
|
|
136
135
|
}
|
|
137
136
|
)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
) })
|
|
140
|
+
] });
|
|
141
|
+
};
|
|
142
|
+
const PopoverComponent = forwardRef(
|
|
143
|
+
(props, ref) => {
|
|
144
|
+
const { open, onOpenChange, defaultOpen, ...other } = props;
|
|
145
|
+
const state = useOverlayTriggerState({
|
|
146
|
+
isOpen: open,
|
|
147
|
+
onOpenChange,
|
|
148
|
+
defaultOpen,
|
|
149
|
+
...other
|
|
150
|
+
});
|
|
151
|
+
return /* @__PURE__ */ jsx(PopoverInner, { popoverRef: ref, ...other, state });
|
|
142
152
|
}
|
|
143
153
|
);
|
|
144
|
-
|
|
154
|
+
PopoverComponent.displayName = "Popover";
|
|
155
|
+
const Popover = PopoverComponent;
|
|
156
|
+
Popover.Header = Dialog.Header;
|
|
157
|
+
Popover.Body = Dialog.Body;
|
|
158
|
+
Popover.Footer = Dialog.Footer;
|
|
145
159
|
export {
|
|
146
|
-
Popover
|
|
160
|
+
Popover,
|
|
161
|
+
PopoverInner
|
|
147
162
|
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
const base = "kbq-popover-f14dc5";
|
|
2
|
+
const container = "kbq-popover-container-332b0b";
|
|
2
3
|
const arrow = "kbq-popover-arrow-3bdadb";
|
|
3
4
|
const underlay = "kbq-popover-underlay-9c5b07";
|
|
4
5
|
const dialog = "kbq-popover-dialog-e39a6d";
|
|
5
6
|
const s = {
|
|
6
7
|
base,
|
|
8
|
+
container,
|
|
7
9
|
arrow,
|
|
8
10
|
underlay,
|
|
9
11
|
dialog
|
|
@@ -11,6 +13,7 @@ const s = {
|
|
|
11
13
|
export {
|
|
12
14
|
arrow,
|
|
13
15
|
base,
|
|
16
|
+
container,
|
|
14
17
|
s as default,
|
|
15
18
|
dialog,
|
|
16
19
|
underlay
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export * from './Popover';
|
|
2
2
|
export * from './types';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated
|
|
5
|
+
* This component has been deprecated, please use `Popover.Header` instead.
|
|
6
|
+
*/
|
|
7
|
+
export declare const PopoverHeader: import("react").ForwardRefExoticComponent<Omit<import("../Dialog").DialogHeaderProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated
|
|
10
|
+
* This component has been deprecated, please use `Popover.Body` instead.
|
|
11
|
+
*/
|
|
12
|
+
export declare const PopoverContent: import("react").ForwardRefExoticComponent<Omit<import("../Dialog").DialogBodyProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated
|
|
15
|
+
* This component has been deprecated, please use `Popover.Footer` instead.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PopoverFooter: import("react").ForwardRefExoticComponent<Omit<import("../Dialog").DialogFooterProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ComponentPropsWithRef, CSSProperties, ReactElement, ReactNode, Ref, RefObject } from 'react';
|
|
2
|
-
import type { ButtonOptions } from '@koobiq/react-primitives';
|
|
2
|
+
import type { ButtonOptions, OverlayTriggerState } from '@koobiq/react-primitives';
|
|
3
|
+
import type { TransitionProps } from 'react-transition-group/Transition';
|
|
3
4
|
import type { DialogProps } from '../Dialog';
|
|
4
5
|
export type PopoverPropContent = ReactNode | ((props: {
|
|
5
6
|
close(): void;
|
|
@@ -11,14 +12,16 @@ export declare const popoverPropPlacement: readonly ["bottom", "bottom start", "
|
|
|
11
12
|
export type PopoverPropPlacement = (typeof popoverPropPlacement)[number];
|
|
12
13
|
export declare const popoverPropSize: readonly ["small", "medium", "large"];
|
|
13
14
|
export type PopoverPropSize = (typeof popoverPropSize)[number] | CSSProperties['inlineSize'];
|
|
14
|
-
export
|
|
15
|
+
export declare const popoverPropType: readonly ["dialog", "menu", "listbox", "tree", "grid"];
|
|
16
|
+
export type PopoverPropType = (typeof popoverPropType)[number];
|
|
17
|
+
export type PopoverBaseProps = {
|
|
15
18
|
/** If `true`, the component is shown. */
|
|
16
19
|
open?: boolean;
|
|
17
20
|
/** The default open state. Use when the component is not controlled. */
|
|
18
21
|
defaultOpen?: boolean;
|
|
19
22
|
/** The content of the component. */
|
|
20
23
|
children?: PopoverPropContent;
|
|
21
|
-
/** The render function of the control for displaying the
|
|
24
|
+
/** The render function of the control for displaying the popover. */
|
|
22
25
|
control?: PopoverPropControl;
|
|
23
26
|
/**
|
|
24
27
|
* Component width size.
|
|
@@ -57,7 +60,7 @@ export type PopoverProps = {
|
|
|
57
60
|
* */
|
|
58
61
|
placement?: PopoverPropPlacement;
|
|
59
62
|
/** The ref for the element which the popover positions itself with respect to. */
|
|
60
|
-
anchorRef?: RefObject<HTMLElement>;
|
|
63
|
+
anchorRef?: RefObject<HTMLElement | null>;
|
|
61
64
|
/**
|
|
62
65
|
* If `true`, the arrow isn't shown.
|
|
63
66
|
* @default false
|
|
@@ -77,6 +80,12 @@ export type PopoverProps = {
|
|
|
77
80
|
* @default 0
|
|
78
81
|
*/
|
|
79
82
|
arrowBoundaryOffset?: number;
|
|
83
|
+
/**
|
|
84
|
+
* The placement padding that should be applied between the element and its
|
|
85
|
+
* surrounding container.
|
|
86
|
+
* @default 12
|
|
87
|
+
*/
|
|
88
|
+
containerPadding?: number;
|
|
80
89
|
/**
|
|
81
90
|
* The additional offset applied along the main axis between the element and its
|
|
82
91
|
* anchor element.
|
|
@@ -89,9 +98,24 @@ export type PopoverProps = {
|
|
|
89
98
|
* @default 0
|
|
90
99
|
*/
|
|
91
100
|
crossOffset?: number;
|
|
101
|
+
/**
|
|
102
|
+
* When user interacts with the argument element outside of the popover ref,
|
|
103
|
+
* return true if onClose should be called. This gives you a chance to filter
|
|
104
|
+
* out interaction with elements that should not dismiss the popover.
|
|
105
|
+
* By default, onClose will always be called on interaction outside the popover ref.
|
|
106
|
+
*/
|
|
107
|
+
shouldCloseOnInteractOutside?: (element: Element) => boolean;
|
|
108
|
+
type?: PopoverPropType;
|
|
92
109
|
/** The props used for each slot inside. */
|
|
93
110
|
slotProps?: {
|
|
94
111
|
dialog?: DialogProps;
|
|
95
112
|
arrow?: ComponentPropsWithRef<'div'>;
|
|
113
|
+
backdrop?: ComponentPropsWithRef<'div'>;
|
|
114
|
+
transition?: TransitionProps<HTMLElement>;
|
|
96
115
|
};
|
|
97
116
|
};
|
|
117
|
+
export type PopoverInnerProps = {
|
|
118
|
+
state: OverlayTriggerState;
|
|
119
|
+
popoverRef?: Ref<HTMLDivElement>;
|
|
120
|
+
} & Omit<PopoverBaseProps, 'ref'>;
|
|
121
|
+
export type PopoverProps = PopoverBaseProps;
|
|
@@ -13,7 +13,15 @@ const popoverPropPlacement = [
|
|
|
13
13
|
"end bottom"
|
|
14
14
|
];
|
|
15
15
|
const popoverPropSize = ["small", "medium", "large"];
|
|
16
|
+
const popoverPropType = [
|
|
17
|
+
"dialog",
|
|
18
|
+
"menu",
|
|
19
|
+
"listbox",
|
|
20
|
+
"tree",
|
|
21
|
+
"grid"
|
|
22
|
+
];
|
|
16
23
|
export {
|
|
17
24
|
popoverPropPlacement,
|
|
18
|
-
popoverPropSize
|
|
25
|
+
popoverPropSize,
|
|
26
|
+
popoverPropType
|
|
19
27
|
};
|
|
@@ -3,8 +3,9 @@ import type { Breakpoints } from './types';
|
|
|
3
3
|
export type BreakpointsProviderProps = {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
breakpoints: Breakpoints;
|
|
6
|
+
defaultMatches?: boolean[];
|
|
6
7
|
};
|
|
7
8
|
export declare const BreakpointsProvider: {
|
|
8
|
-
({ children, breakpoints: _breakpoints, }: BreakpointsProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
({ children, defaultMatches, breakpoints: _breakpoints, }: BreakpointsProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
displayName: string;
|
|
10
11
|
};
|
|
@@ -4,9 +4,16 @@ import { BreakpointsContext } from "./BreakpointsContext.js";
|
|
|
4
4
|
import { useBreakpoints } from "./utils/useBreakpoints.js";
|
|
5
5
|
const BreakpointsProvider = ({
|
|
6
6
|
children,
|
|
7
|
+
defaultMatches,
|
|
7
8
|
breakpoints: _breakpoints
|
|
8
9
|
}) => {
|
|
9
|
-
const breakpoints = useBreakpoints(
|
|
10
|
+
const breakpoints = useBreakpoints(
|
|
11
|
+
_breakpoints,
|
|
12
|
+
defaultMatches && {
|
|
13
|
+
ssr: true,
|
|
14
|
+
defaultMatches
|
|
15
|
+
}
|
|
16
|
+
);
|
|
10
17
|
return /* @__PURE__ */ jsx(BreakpointsContext.Provider, { value: breakpoints, children });
|
|
11
18
|
};
|
|
12
19
|
BreakpointsProvider.displayName = "BreakpointsProvider";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Breakpoints, ProviderProps } from './types';
|
|
2
2
|
export declare const defaultBreakpoints: Breakpoints;
|
|
3
3
|
export declare const Provider: {
|
|
4
|
-
({ breakpoints, children, locale, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
({ breakpoints, breakpointsFallback, children, locale, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
displayName: string;
|
|
6
6
|
};
|
|
@@ -19,9 +19,17 @@ const defaultBreakpoints = {
|
|
|
19
19
|
};
|
|
20
20
|
const Provider = ({
|
|
21
21
|
breakpoints = defaultBreakpoints,
|
|
22
|
+
breakpointsFallback,
|
|
22
23
|
children,
|
|
23
24
|
locale
|
|
24
|
-
}) => /* @__PURE__ */ jsx(ProviderContext.Provider, { value: { breakpoints, locale }, children: /* @__PURE__ */ jsx(I18nProvider, { locale, children: /* @__PURE__ */ jsx(
|
|
25
|
+
}) => /* @__PURE__ */ jsx(ProviderContext.Provider, { value: { breakpoints, locale }, children: /* @__PURE__ */ jsx(I18nProvider, { locale, children: /* @__PURE__ */ jsx(
|
|
26
|
+
BreakpointsProvider,
|
|
27
|
+
{
|
|
28
|
+
breakpoints,
|
|
29
|
+
defaultMatches: breakpointsFallback,
|
|
30
|
+
children
|
|
31
|
+
}
|
|
32
|
+
) }) });
|
|
25
33
|
Provider.displayName = "Provider";
|
|
26
34
|
export {
|
|
27
35
|
Provider,
|
|
@@ -10,7 +10,12 @@ export type Breakpoints = {
|
|
|
10
10
|
[custom: string]: number | undefined;
|
|
11
11
|
};
|
|
12
12
|
export type ProviderProps = {
|
|
13
|
+
/** The content of the component. */
|
|
13
14
|
children?: ReactNode;
|
|
15
|
+
/** Responsive breakpoints for your application. */
|
|
14
16
|
breakpoints?: Breakpoints;
|
|
17
|
+
/** SSR-fallback for responsive breakpoints for your application. */
|
|
18
|
+
breakpointsFallback?: boolean[];
|
|
19
|
+
/** The locale for your application as a [BCP 47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code. Defaults to the browser/OS language setting. */
|
|
15
20
|
locale?: I18nProviderProps['locale'];
|
|
16
21
|
};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { UseMediaQueryOptions } from '@koobiq/react-core';
|
|
1
2
|
import type { Breakpoints } from '../types';
|
|
2
|
-
export declare function useBreakpoints(breakpoints: Breakpoints): {};
|
|
3
|
+
export declare function useBreakpoints(breakpoints: Breakpoints, options?: UseMediaQueryOptions): {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useMediaQuery } from "@koobiq/react-core";
|
|
3
|
-
function useBreakpoints(breakpoints) {
|
|
3
|
+
function useBreakpoints(breakpoints, options) {
|
|
4
4
|
const queries = Object.values(breakpoints).map(
|
|
5
5
|
(width) => `(min-width: ${width}px)`
|
|
6
6
|
);
|
|
7
|
-
const matches = useMediaQuery(queries);
|
|
7
|
+
const matches = useMediaQuery(queries, options);
|
|
8
8
|
return Object.keys(breakpoints).reduce(
|
|
9
9
|
(acc, item, index) => ({ ...acc, [item]: matches[index] }),
|
|
10
10
|
{}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
3
|
import { forwardRef } from "react";
|
|
3
4
|
import { mergeProps, clsx } from "@koobiq/react-core";
|
|
4
5
|
import { RadioGroup as RadioGroup$1 } from "@koobiq/react-primitives";
|
|
5
|
-
import { flex } from "../layout/flex/flex.js";
|
|
6
6
|
import { RadioGroupLabel } from "./components/RadioGroupLabel/RadioGroupLabel.js";
|
|
7
7
|
import { RadioGroupContext } from "./RadioContext.js";
|
|
8
8
|
import { RadioGroupDescription } from "./components/RadioGroupDescription/RadioGroupDescription.js";
|
|
9
|
+
import { flex } from "../layout/flex/flex.js";
|
|
9
10
|
const RadioGroup = forwardRef(
|
|
10
11
|
(props, ref) => {
|
|
11
12
|
const { size, label, children, slotProps, description, orientation } = props;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { mergeProps, isNotNil, clsx } from "@koobiq/react-core";
|
|
4
|
+
import { IconCircleXs16 } from "@koobiq/react-icons";
|
|
4
5
|
import { Radio as Radio$1 } from "@koobiq/react-primitives";
|
|
5
6
|
import s from "./Radio.module.css.js";
|
|
6
7
|
import { useRadioGroupState } from "../../RadioContext.js";
|
|
@@ -33,7 +34,7 @@ const Radio = forwardRef(
|
|
|
33
34
|
const circleProps = mergeProps({ className: s.circle }, slotProps?.circle);
|
|
34
35
|
const labelProps = slotProps?.label;
|
|
35
36
|
return /* @__PURE__ */ jsxs(Radio$1, { ...commonProps, ref, children: [
|
|
36
|
-
/* @__PURE__ */ jsx("span", { ...circleProps }),
|
|
37
|
+
/* @__PURE__ */ jsx("span", { ...circleProps, children: /* @__PURE__ */ jsx(IconCircleXs16, { className: s.icon }) }),
|
|
37
38
|
isNotNil(children) && /* @__PURE__ */ jsx("span", { ...labelProps, children })
|
|
38
39
|
] });
|
|
39
40
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const base = "kbq-radio-c3ed31";
|
|
2
2
|
const circle = "kbq-radio-circle-a0903b";
|
|
3
|
+
const icon = "kbq-radio-icon-148a68";
|
|
3
4
|
const normal = "kbq-radio-normal-81ed3e";
|
|
4
5
|
const big = "kbq-radio-big-06db10";
|
|
5
6
|
const hovered = "kbq-radio-hovered-3999f1";
|
|
@@ -12,6 +13,7 @@ const end = "kbq-radio-end-8689f9";
|
|
|
12
13
|
const s = {
|
|
13
14
|
base,
|
|
14
15
|
circle,
|
|
16
|
+
icon,
|
|
15
17
|
normal,
|
|
16
18
|
big,
|
|
17
19
|
hovered,
|
|
@@ -33,6 +35,7 @@ export {
|
|
|
33
35
|
error,
|
|
34
36
|
focusVisible,
|
|
35
37
|
hovered,
|
|
38
|
+
icon,
|
|
36
39
|
normal,
|
|
37
40
|
start
|
|
38
41
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Item, Section } from '../Collections';
|
|
2
|
+
import { ListItemText } from '../List';
|
|
3
|
+
import type { SelectComponentProp } from './index';
|
|
4
|
+
declare const SelectComponent: SelectComponentProp;
|
|
5
|
+
type CompoundedComponent = typeof SelectComponent & {
|
|
6
|
+
Item: typeof Item;
|
|
7
|
+
Section: typeof Section;
|
|
8
|
+
ItemText: typeof ListItemText;
|
|
9
|
+
};
|
|
10
|
+
export declare const Select: CompoundedComponent;
|
|
11
|
+
export {};
|