@koobiq/react-components 0.0.1-beta.1
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/LICENSE +21 -0
- package/README.md +43 -0
- package/dist/components/Alert/Alert.d.ts +4 -0
- package/dist/components/Alert/Alert.js +78 -0
- package/dist/components/Alert/Alert.module.css.js +41 -0
- package/dist/components/Alert/components/AlertIcon/AlertIcon.d.ts +2 -0
- package/dist/components/Alert/components/AlertIcon/AlertIcon.js +19 -0
- package/dist/components/Alert/components/AlertIcon/AlertIcon.module.css.js +23 -0
- package/dist/components/Alert/components/AlertIcon/index.d.ts +1 -0
- package/dist/components/Alert/components/AlertIcon/types.d.ts +2 -0
- package/dist/components/Alert/components/AlertIcon/utils.d.ts +14 -0
- package/dist/components/Alert/components/AlertIcon/utils.js +23 -0
- package/dist/components/Alert/components/index.d.ts +1 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Alert/intl.json.js +11 -0
- package/dist/components/Alert/types.d.ts +43 -0
- package/dist/components/Alert/types.js +4 -0
- package/dist/components/Backdrop/Backdrop.d.ts +4 -0
- package/dist/components/Backdrop/Backdrop.js +52 -0
- package/dist/components/Backdrop/Backdrop.module.css.js +8 -0
- package/dist/components/Backdrop/index.d.ts +2 -0
- package/dist/components/Backdrop/types.d.ts +16 -0
- package/dist/components/Badge/Badge.d.ts +4 -0
- package/dist/components/Badge/Badge.js +32 -0
- package/dist/components/Badge/Badge.module.css.js +42 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/types.d.ts +20 -0
- package/dist/components/Badge/types.js +22 -0
- package/dist/components/Button/Button.d.ts +4 -0
- package/dist/components/Button/Button.js +66 -0
- package/dist/components/Button/Button.module.css.js +44 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/types.d.ts +47 -0
- package/dist/components/Button/types.js +11 -0
- package/dist/components/Checkbox/Checkbox.d.ts +19 -0
- package/dist/components/Checkbox/Checkbox.js +64 -0
- package/dist/components/Checkbox/Checkbox.module.css.js +41 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/types.d.ts +27 -0
- package/dist/components/Checkbox/types.js +6 -0
- package/dist/components/Container/Container.d.ts +4 -0
- package/dist/components/Container/Container.js +45 -0
- package/dist/components/Container/Container.module.css.js +8 -0
- package/dist/components/Container/index.d.ts +2 -0
- package/dist/components/Container/types.d.ts +32 -0
- package/dist/components/Container/types.js +21 -0
- package/dist/components/Container/utils.d.ts +4 -0
- package/dist/components/Container/utils.js +19 -0
- package/dist/components/Dialog/Dialog.d.ts +2 -0
- package/dist/components/Dialog/Dialog.js +67 -0
- package/dist/components/Dialog/Dialog.module.css.js +23 -0
- package/dist/components/Dialog/DialogContext.d.ts +9 -0
- package/dist/components/Dialog/DialogContext.js +12 -0
- package/dist/components/Dialog/components/DialogCloseButton.d.ts +9 -0
- package/dist/components/Dialog/components/DialogCloseButton.js +30 -0
- package/dist/components/Dialog/components/DialogContent.d.ts +12 -0
- package/dist/components/Dialog/components/DialogContent.js +30 -0
- package/dist/components/Dialog/components/DialogFooter.d.ts +12 -0
- package/dist/components/Dialog/components/DialogFooter.js +12 -0
- package/dist/components/Dialog/components/DialoglHeader.d.ts +12 -0
- package/dist/components/Dialog/components/DialoglHeader.js +21 -0
- package/dist/components/Dialog/components/index.d.ts +4 -0
- package/dist/components/Dialog/index.d.ts +4 -0
- package/dist/components/Dialog/intl.json.js +11 -0
- package/dist/components/Dialog/types.d.ts +26 -0
- package/dist/components/FieldComponents/FieldAddon/FieldAddon.d.ts +10 -0
- package/dist/components/FieldComponents/FieldAddon/FieldAddon.js +19 -0
- package/dist/components/FieldComponents/FieldAddon/FieldAddon.module.css.js +17 -0
- package/dist/components/FieldComponents/FieldAddon/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldCaption/FieldCaption.d.ts +8 -0
- package/dist/components/FieldComponents/FieldCaption/FieldCaption.js +21 -0
- package/dist/components/FieldComponents/FieldCaption/FieldCaption.module.css.js +8 -0
- package/dist/components/FieldComponents/FieldCaption/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.d.ts +10 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.js +20 -0
- package/dist/components/FieldComponents/FieldControl/FieldControl.module.css.js +11 -0
- package/dist/components/FieldComponents/FieldControl/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldError/FieldError.d.ts +6 -0
- package/dist/components/FieldComponents/FieldError/FieldError.js +21 -0
- package/dist/components/FieldComponents/FieldError/FieldError.module.css.js +8 -0
- package/dist/components/FieldComponents/FieldError/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldInput/FieldInput.d.ts +12 -0
- package/dist/components/FieldComponents/FieldInput/FieldInput.js +34 -0
- package/dist/components/FieldComponents/FieldInput/FieldInput.module.css.js +20 -0
- package/dist/components/FieldComponents/FieldInput/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.d.ts +11 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.js +41 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroup.module.css.js +14 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroupContext.d.ts +8 -0
- package/dist/components/FieldComponents/FieldInputGroup/FieldInputGroupContext.js +7 -0
- package/dist/components/FieldComponents/FieldInputGroup/index.d.ts +2 -0
- package/dist/components/FieldComponents/FieldLabel/FieldLabel.d.ts +9 -0
- package/dist/components/FieldComponents/FieldLabel/FieldLabel.js +24 -0
- package/dist/components/FieldComponents/FieldLabel/FieldLabel.module.css.js +14 -0
- package/dist/components/FieldComponents/FieldLabel/index.d.ts +1 -0
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.d.ts +10 -0
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.js +18 -0
- package/dist/components/FieldComponents/FieldNumberControl/FieldNumberControl.module.css.js +11 -0
- package/dist/components/FieldComponents/FieldNumberControl/index.d.ts +1 -0
- package/dist/components/FieldComponents/index.d.ts +8 -0
- package/dist/components/FormControlLabel/FormControlLabel.d.ts +2 -0
- package/dist/components/FormControlLabel/index.d.ts +2 -0
- package/dist/components/FormControlLabel/types.d.ts +32 -0
- package/dist/components/Grid/Grid.d.ts +4 -0
- package/dist/components/Grid/Grid.js +52 -0
- package/dist/components/Grid/Grid.module.css.js +8 -0
- package/dist/components/Grid/components/GridItem/GridItem.d.ts +4 -0
- package/dist/components/Grid/components/GridItem/GridItem.js +52 -0
- package/dist/components/Grid/components/GridItem/GridItem.module.css.js +8 -0
- package/dist/components/Grid/components/GridItem/index.d.ts +2 -0
- package/dist/components/Grid/components/GridItem/types.d.ts +22 -0
- package/dist/components/Grid/components/index.d.ts +1 -0
- package/dist/components/Grid/index.d.ts +3 -0
- package/dist/components/Grid/types.d.ts +30 -0
- package/dist/components/Grid/types.js +19 -0
- package/dist/components/Grid/utils.d.ts +2 -0
- package/dist/components/Grid/utils.js +8 -0
- package/dist/components/IconButton/IconButton.d.ts +4 -0
- package/dist/components/IconButton/IconButton.js +51 -0
- package/dist/components/IconButton/IconButton.module.css.js +43 -0
- package/dist/components/IconButton/index.d.ts +2 -0
- package/dist/components/IconButton/types.d.ts +36 -0
- package/dist/components/IconButton/types.js +13 -0
- package/dist/components/Input/Input.d.ts +22 -0
- package/dist/components/Input/Input.js +70 -0
- package/dist/components/Input/components/FieldAddon/FieldAddon.d.ts +10 -0
- package/dist/components/Input/components/FieldAddon/index.d.ts +1 -0
- package/dist/components/Input/components/FieldCaption/FieldCaption.d.ts +6 -0
- package/dist/components/Input/components/FieldCaption/index.d.ts +1 -0
- package/dist/components/Input/components/FieldControl/FieldControl.d.ts +9 -0
- package/dist/components/Input/components/FieldControl/index.d.ts +1 -0
- package/dist/components/Input/components/FieldError/FieldError.d.ts +7 -0
- package/dist/components/Input/components/FieldError/index.d.ts +1 -0
- package/dist/components/Input/components/FieldInput/FieldInput.d.ts +9 -0
- package/dist/components/Input/components/FieldInput/index.d.ts +1 -0
- package/dist/components/Input/components/FieldInputGroup/FieldInputGroup.d.ts +7 -0
- package/dist/components/Input/components/FieldInputGroup/index.d.ts +1 -0
- package/dist/components/Input/components/FieldLabel/FieldLabel.d.ts +9 -0
- package/dist/components/Input/components/FieldLabel/index.d.ts +1 -0
- package/dist/components/Input/components/index.d.ts +7 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/types.d.ts +62 -0
- package/dist/components/Input/types.js +4 -0
- package/dist/components/InputNumber/InputNumber.d.ts +22 -0
- package/dist/components/InputNumber/InputNumber.js +72 -0
- package/dist/components/InputNumber/components/InputNumberCounterControls.d.ts +1 -0
- package/dist/components/InputNumber/components/InputNumberCounterControls.js +37 -0
- package/dist/components/InputNumber/components/InputNumberCounterControls.module.css.js +14 -0
- package/dist/components/InputNumber/components/index.d.ts +1 -0
- package/dist/components/InputNumber/index.d.ts +2 -0
- package/dist/components/InputNumber/types.d.ts +62 -0
- package/dist/components/InputNumber/types.js +4 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/Link/Link.js +54 -0
- package/dist/components/Link/Link.module.css.js +32 -0
- package/dist/components/Link/index.d.ts +2 -0
- package/dist/components/Link/types.d.ts +25 -0
- package/dist/components/Modal/Modal.d.ts +2 -0
- package/dist/components/Modal/Modal.js +121 -0
- package/dist/components/Modal/Modal.module.css.js +20 -0
- package/dist/components/Modal/index.d.ts +4 -0
- package/dist/components/Modal/types.d.ts +68 -0
- package/dist/components/Modal/types.js +4 -0
- package/dist/components/Popover/Popover.d.ts +2 -0
- package/dist/components/Popover/Popover.js +147 -0
- package/dist/components/Popover/Popover.module.css.js +17 -0
- package/dist/components/Popover/index.d.ts +4 -0
- package/dist/components/Popover/types.d.ts +97 -0
- package/dist/components/Popover/types.js +19 -0
- package/dist/components/Popover/utils.d.ts +2 -0
- package/dist/components/Popover/utils.js +11 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +2 -0
- package/dist/components/ProgressBar/ProgressBar.js +57 -0
- package/dist/components/ProgressBar/ProgressBar.module.css.js +15 -0
- package/dist/components/ProgressBar/index.d.ts +2 -0
- package/dist/components/ProgressBar/types.d.ts +34 -0
- package/dist/components/ProgressBar/types.js +4 -0
- package/dist/components/ProgressSpinner/ProgressSpinner.d.ts +2 -0
- package/dist/components/ProgressSpinner/ProgressSpinner.js +68 -0
- package/dist/components/ProgressSpinner/ProgressSpinner.module.css.js +18 -0
- package/dist/components/ProgressSpinner/index.d.ts +2 -0
- package/dist/components/ProgressSpinner/types.d.ts +41 -0
- package/dist/components/ProgressSpinner/types.js +9 -0
- package/dist/components/ProgressSpinner/utils.d.ts +2 -0
- package/dist/components/ProgressSpinner/utils.js +18 -0
- package/dist/components/Provider/BreakpointsContext.d.ts +5 -0
- package/dist/components/Provider/BreakpointsContext.js +17 -0
- package/dist/components/Provider/BreakpointsProvider.d.ts +10 -0
- package/dist/components/Provider/BreakpointsProvider.js +15 -0
- package/dist/components/Provider/Provider.d.ts +6 -0
- package/dist/components/Provider/Provider.js +29 -0
- package/dist/components/Provider/ProviderContext.d.ts +3 -0
- package/dist/components/Provider/ProviderContext.js +12 -0
- package/dist/components/Provider/index.d.ts +5 -0
- package/dist/components/Provider/types.d.ts +16 -0
- package/dist/components/Provider/utils/index.d.ts +1 -0
- package/dist/components/Provider/utils/useBreakpoints.d.ts +2 -0
- package/dist/components/Provider/utils/useBreakpoints.js +15 -0
- package/dist/components/Provider/utils/useMatchedBreakpoints.d.ts +2 -0
- package/dist/components/RadioGroup/RadioContext.d.ts +6 -0
- package/dist/components/RadioGroup/RadioContext.js +9 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.js +35 -0
- package/dist/components/RadioGroup/components/Radio/Radio.d.ts +12 -0
- package/dist/components/RadioGroup/components/Radio/Radio.js +44 -0
- package/dist/components/RadioGroup/components/Radio/Radio.module.css.js +38 -0
- package/dist/components/RadioGroup/components/Radio/index.d.ts +2 -0
- package/dist/components/RadioGroup/components/Radio/types.d.ts +27 -0
- package/dist/components/RadioGroup/components/Radio/types.js +6 -0
- package/dist/components/RadioGroup/components/RadioGroupDescription/RadioGroupDescription.d.ts +7 -0
- package/dist/components/RadioGroup/components/RadioGroupDescription/RadioGroupDescription.js +21 -0
- package/dist/components/RadioGroup/components/RadioGroupDescription/index.d.ts +1 -0
- package/dist/components/RadioGroup/components/RadioGroupLabel/RadioGroupLabel.d.ts +6 -0
- package/dist/components/RadioGroup/components/RadioGroupLabel/RadioGroupLabel.js +14 -0
- package/dist/components/RadioGroup/components/RadioGroupLabel/index.d.ts +1 -0
- package/dist/components/RadioGroup/components/index.d.ts +3 -0
- package/dist/components/RadioGroup/index.d.ts +4 -0
- package/dist/components/RadioGroup/types.d.ts +37 -0
- package/dist/components/RadioGroup/types.js +6 -0
- package/dist/components/SidePanel/SidePanel.d.ts +2 -0
- package/dist/components/SidePanel/SidePanel.js +125 -0
- package/dist/components/SidePanel/SidePanel.module.css.js +26 -0
- package/dist/components/SidePanel/index.d.ts +4 -0
- package/dist/components/SidePanel/types.d.ts +75 -0
- package/dist/components/SidePanel/types.js +6 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.d.ts +2 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.js +37 -0
- package/dist/components/SkeletonBlock/SkeletonBlock.module.css.js +12 -0
- package/dist/components/SkeletonBlock/index.d.ts +2 -0
- package/dist/components/SkeletonBlock/types.d.ts +18 -0
- package/dist/components/SkeletonBlock/utils.d.ts +2 -0
- package/dist/components/SkeletonBlock/utils.js +8 -0
- package/dist/components/SkeletonTypography/SkeletonTypography.d.ts +2 -0
- package/dist/components/SkeletonTypography/SkeletonTypography.js +44 -0
- package/dist/components/SkeletonTypography/SkeletonTypography.module.css.js +14 -0
- package/dist/components/SkeletonTypography/index.d.ts +2 -0
- package/dist/components/SkeletonTypography/types.d.ts +25 -0
- package/dist/components/SkeletonTypography/utils.d.ts +2 -0
- package/dist/components/SkeletonTypography/utils.js +18 -0
- package/dist/components/Textarea/Textarea.d.ts +21 -0
- package/dist/components/Textarea/Textarea.js +51 -0
- package/dist/components/Textarea/Textarea.module.css.js +7 -0
- package/dist/components/Textarea/components/TextareaContextConsumer/TextareaContextConsumer.d.ts +6 -0
- package/dist/components/Textarea/components/TextareaContextConsumer/TextareaContextConsumer.js +58 -0
- package/dist/components/Textarea/components/TextareaContextConsumer/index.d.ts +1 -0
- package/dist/components/Textarea/components/index.d.ts +1 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/types.d.ts +67 -0
- package/dist/components/Textarea/types.js +6 -0
- package/dist/components/Textarea/utils/index.d.ts +1 -0
- package/dist/components/Textarea/utils/useTextareaAutosize.d.ts +2 -0
- package/dist/components/Textarea/utils/useTextareaAutosize.js +15 -0
- package/dist/components/Toggle/Toggle.d.ts +16 -0
- package/dist/components/Toggle/Toggle.js +42 -0
- package/dist/components/Toggle/Toggle.module.css.js +38 -0
- package/dist/components/Toggle/index.d.ts +2 -0
- package/dist/components/Toggle/types.d.ts +25 -0
- package/dist/components/Toggle/types.js +6 -0
- package/dist/components/Tooltip/Tooltip.d.ts +20 -0
- package/dist/components/Tooltip/Tooltip.js +119 -0
- package/dist/components/Tooltip/Tooltip.module.css.js +30 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/types.d.ts +81 -0
- package/dist/components/Tooltip/types.js +25 -0
- package/dist/components/Typography/Typography.d.ts +4 -0
- package/dist/components/Typography/Typography.js +46 -0
- package/dist/components/Typography/Typography.module.css.js +23 -0
- package/dist/components/Typography/index.d.ts +2 -0
- package/dist/components/Typography/types.d.ts +31 -0
- package/dist/components/Typography/types.js +84 -0
- package/dist/components/index.d.ts +24 -0
- package/dist/components/layout/flex/flex.d.ts +25 -0
- package/dist/components/layout/flex/flex.js +74 -0
- package/dist/components/layout/flex/flex.module.css.js +92 -0
- package/dist/components/layout/flex/index.d.ts +1 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/layout/spacing/index.d.ts +1 -0
- package/dist/components/layout/spacing/spacing.d.ts +33 -0
- package/dist/components/layout/spacing/spacing.js +44 -0
- package/dist/components/layout/spacing/spacing.module.css.js +365 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +152 -0
- package/dist/style.css +3329 -0
- package/dist/styles/utility.d.ts +71 -0
- package/dist/styles/utility.js +77 -0
- package/dist/styles/utility.module.css.js +76 -0
- package/dist/utils/getResponsiveValue/getResponsiveValue.d.ts +3 -0
- package/dist/utils/getResponsiveValue/getResponsiveValue.js +18 -0
- package/dist/utils/getResponsiveValue/index.d.ts +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useRef, cloneElement, isValidElement } from "react";
|
|
4
|
+
import { useDOMRef, useBoolean, mergeProps, clsx } from "@koobiq/react-core";
|
|
5
|
+
import { useOverlayTriggerState, useOverlayTrigger, usePopover, Overlay } from "@koobiq/react-primitives";
|
|
6
|
+
import { Transition } from "react-transition-group";
|
|
7
|
+
import s from "./Popover.module.css.js";
|
|
8
|
+
import { normalizeInlineSize } from "./utils.js";
|
|
9
|
+
import { Dialog } from "../Dialog/Dialog.js";
|
|
10
|
+
const Popover = forwardRef(
|
|
11
|
+
(props, ref) => {
|
|
12
|
+
const {
|
|
13
|
+
placement: placementProp = "top",
|
|
14
|
+
arrowBoundaryOffset = 20,
|
|
15
|
+
hideArrow = false,
|
|
16
|
+
size = "medium",
|
|
17
|
+
crossOffset = 0,
|
|
18
|
+
offset = 0,
|
|
19
|
+
slotProps,
|
|
20
|
+
disableExitOnEscapeKeyDown,
|
|
21
|
+
disableFocusManagement,
|
|
22
|
+
portalContainer,
|
|
23
|
+
hideCloseButton,
|
|
24
|
+
open: openProp,
|
|
25
|
+
className,
|
|
26
|
+
defaultOpen,
|
|
27
|
+
onOpenChange,
|
|
28
|
+
isNonModal,
|
|
29
|
+
anchorRef,
|
|
30
|
+
children,
|
|
31
|
+
control,
|
|
32
|
+
...other
|
|
33
|
+
} = props;
|
|
34
|
+
const showArrow = !hideArrow;
|
|
35
|
+
const domRef = useDOMRef(ref);
|
|
36
|
+
const controlRef = useRef(null);
|
|
37
|
+
const state = useOverlayTriggerState({
|
|
38
|
+
isOpen: openProp,
|
|
39
|
+
onOpenChange,
|
|
40
|
+
defaultOpen,
|
|
41
|
+
...other
|
|
42
|
+
});
|
|
43
|
+
const openState = state.isOpen;
|
|
44
|
+
const [opened, { on, off }] = useBoolean(openState);
|
|
45
|
+
const { triggerProps, overlayProps } = useOverlayTrigger(
|
|
46
|
+
{ type: "dialog" },
|
|
47
|
+
{ ...state, isOpen: openState }
|
|
48
|
+
);
|
|
49
|
+
const {
|
|
50
|
+
popoverProps,
|
|
51
|
+
underlayProps,
|
|
52
|
+
arrowProps: arrowPropsCommon,
|
|
53
|
+
placement
|
|
54
|
+
} = usePopover(
|
|
55
|
+
{
|
|
56
|
+
...props,
|
|
57
|
+
offset,
|
|
58
|
+
isNonModal,
|
|
59
|
+
crossOffset,
|
|
60
|
+
maxHeight: 480,
|
|
61
|
+
popoverRef: domRef,
|
|
62
|
+
arrowBoundaryOffset,
|
|
63
|
+
containerPadding: 24,
|
|
64
|
+
placement: placementProp,
|
|
65
|
+
isKeyboardDismissDisabled: disableExitOnEscapeKeyDown,
|
|
66
|
+
triggerRef: anchorRef || controlRef
|
|
67
|
+
},
|
|
68
|
+
{ ...state, isOpen: opened }
|
|
69
|
+
);
|
|
70
|
+
const resolvedChildren = () => {
|
|
71
|
+
if (typeof children === "function")
|
|
72
|
+
return cloneElement(children({ close: state.close }), overlayProps);
|
|
73
|
+
if (isValidElement(children)) return cloneElement(children, overlayProps);
|
|
74
|
+
return children;
|
|
75
|
+
};
|
|
76
|
+
const { isDisabled, onPress, ...otherTriggerProps } = triggerProps;
|
|
77
|
+
const arrowProps = mergeProps(
|
|
78
|
+
{ className: s.arrow },
|
|
79
|
+
arrowPropsCommon,
|
|
80
|
+
slotProps?.arrow
|
|
81
|
+
);
|
|
82
|
+
const dialogProps = mergeProps(
|
|
83
|
+
{
|
|
84
|
+
role: "dialog",
|
|
85
|
+
className: s.dialog,
|
|
86
|
+
onClose: state.close,
|
|
87
|
+
hideCloseButton
|
|
88
|
+
},
|
|
89
|
+
slotProps?.dialog
|
|
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,
|
|
110
|
+
{
|
|
111
|
+
portalContainer,
|
|
112
|
+
disableFocusManagement,
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ jsx("div", { ...underlayProps, className: s.underlay }),
|
|
115
|
+
/* @__PURE__ */ jsxs(
|
|
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
|
+
)
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
},
|
|
139
|
+
placement
|
|
140
|
+
)
|
|
141
|
+
] });
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
Popover.displayName = "Popover";
|
|
145
|
+
export {
|
|
146
|
+
Popover
|
|
147
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const base = "kbq-popover-f14dc5";
|
|
2
|
+
const arrow = "kbq-popover-arrow-3bdadb";
|
|
3
|
+
const underlay = "kbq-popover-underlay-9c5b07";
|
|
4
|
+
const dialog = "kbq-popover-dialog-e39a6d";
|
|
5
|
+
const s = {
|
|
6
|
+
base,
|
|
7
|
+
arrow,
|
|
8
|
+
underlay,
|
|
9
|
+
dialog
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
arrow,
|
|
13
|
+
base,
|
|
14
|
+
s as default,
|
|
15
|
+
dialog,
|
|
16
|
+
underlay
|
|
17
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, CSSProperties, ReactElement, ReactNode, Ref, RefObject } from 'react';
|
|
2
|
+
import type { ButtonOptions } from '@koobiq/react-primitives';
|
|
3
|
+
import type { DialogProps } from '../Dialog';
|
|
4
|
+
export type PopoverPropContent = ReactNode | ((props: {
|
|
5
|
+
close(): void;
|
|
6
|
+
}) => ReactElement);
|
|
7
|
+
export type PopoverPropControl = (props: ButtonOptions & {
|
|
8
|
+
ref?: Ref<HTMLButtonElement>;
|
|
9
|
+
}) => ReactElement;
|
|
10
|
+
export declare const popoverPropPlacement: readonly ["bottom", "bottom start", "bottom end", "top", "top start", "top end", "start", "start top", "start bottom", "end", "end top", "end bottom"];
|
|
11
|
+
export type PopoverPropPlacement = (typeof popoverPropPlacement)[number];
|
|
12
|
+
export declare const popoverPropSize: readonly ["small", "medium", "large"];
|
|
13
|
+
export type PopoverPropSize = (typeof popoverPropSize)[number] | CSSProperties['inlineSize'];
|
|
14
|
+
export type PopoverProps = {
|
|
15
|
+
/** If `true`, the component is shown. */
|
|
16
|
+
open?: boolean;
|
|
17
|
+
/** The default open state. Use when the component is not controlled. */
|
|
18
|
+
defaultOpen?: boolean;
|
|
19
|
+
/** The content of the component. */
|
|
20
|
+
children?: PopoverPropContent;
|
|
21
|
+
/** The render function of the control for displaying the modal window. */
|
|
22
|
+
control?: PopoverPropControl;
|
|
23
|
+
/**
|
|
24
|
+
* Component width size.
|
|
25
|
+
* @default medium
|
|
26
|
+
* */
|
|
27
|
+
size?: PopoverPropSize;
|
|
28
|
+
/**
|
|
29
|
+
* If `true`, the close button isn't shown.
|
|
30
|
+
* @default false
|
|
31
|
+
* */
|
|
32
|
+
hideCloseButton?: boolean;
|
|
33
|
+
/** Handler that is called when the modal's open state changes. */
|
|
34
|
+
onOpenChange?: (open: boolean) => void;
|
|
35
|
+
/**
|
|
36
|
+
* The container element in which the component portal will be placed.
|
|
37
|
+
* @default document.body
|
|
38
|
+
*/
|
|
39
|
+
portalContainer?: Element;
|
|
40
|
+
/**
|
|
41
|
+
* If `true`, the modal window won't close when the ESC key is pressed.
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
disableExitOnEscapeKeyDown?: boolean;
|
|
45
|
+
/** Additional CSS-classes. */
|
|
46
|
+
className?: string;
|
|
47
|
+
/** Unique identifier for testing purposes. */
|
|
48
|
+
'data-testid'?: string | number;
|
|
49
|
+
/**
|
|
50
|
+
* If `true`, the focus trap in modal window is disabled.
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
disableFocusManagement?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The placement of the element with respect to its anchor element.
|
|
56
|
+
* @default top
|
|
57
|
+
* */
|
|
58
|
+
placement?: PopoverPropPlacement;
|
|
59
|
+
/** The ref for the element which the popover positions itself with respect to. */
|
|
60
|
+
anchorRef?: RefObject<HTMLElement>;
|
|
61
|
+
/**
|
|
62
|
+
* If `true`, the arrow isn't shown.
|
|
63
|
+
* @default false
|
|
64
|
+
* */
|
|
65
|
+
hideArrow?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether the popover is non-modal, i.e. elements outside the popover may be
|
|
68
|
+
* interacted with by assistive technologies.
|
|
69
|
+
*
|
|
70
|
+
* Most popovers should not use this option as it may negatively impact the screen
|
|
71
|
+
* reader experience. Only use with components such as combobox, which are designed
|
|
72
|
+
* to handle this situation carefully.
|
|
73
|
+
*/
|
|
74
|
+
isNonModal?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* The minimum distance the arrow's edge should be from the edge of the overlay element.
|
|
77
|
+
* @default 0
|
|
78
|
+
*/
|
|
79
|
+
arrowBoundaryOffset?: number;
|
|
80
|
+
/**
|
|
81
|
+
* The additional offset applied along the main axis between the element and its
|
|
82
|
+
* anchor element.
|
|
83
|
+
* @default 0
|
|
84
|
+
*/
|
|
85
|
+
offset?: number;
|
|
86
|
+
/**
|
|
87
|
+
* The additional offset applied along the cross axis between the element and its
|
|
88
|
+
* anchor element.
|
|
89
|
+
* @default 0
|
|
90
|
+
*/
|
|
91
|
+
crossOffset?: number;
|
|
92
|
+
/** The props used for each slot inside. */
|
|
93
|
+
slotProps?: {
|
|
94
|
+
dialog?: DialogProps;
|
|
95
|
+
arrow?: ComponentPropsWithRef<'div'>;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const popoverPropPlacement = [
|
|
2
|
+
"bottom",
|
|
3
|
+
"bottom start",
|
|
4
|
+
"bottom end",
|
|
5
|
+
"top",
|
|
6
|
+
"top start",
|
|
7
|
+
"top end",
|
|
8
|
+
"start",
|
|
9
|
+
"start top",
|
|
10
|
+
"start bottom",
|
|
11
|
+
"end",
|
|
12
|
+
"end top",
|
|
13
|
+
"end bottom"
|
|
14
|
+
];
|
|
15
|
+
const popoverPropSize = ["small", "medium", "large"];
|
|
16
|
+
export {
|
|
17
|
+
popoverPropPlacement,
|
|
18
|
+
popoverPropSize
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isNumber } from "@koobiq/react-core";
|
|
2
|
+
const normalizeInlineSize = (value) => {
|
|
3
|
+
if (value === "small") return `240px`;
|
|
4
|
+
if (value === "medium") return `400px`;
|
|
5
|
+
if (value === "large") return `640px`;
|
|
6
|
+
if (isNumber(value)) return `${value}px`;
|
|
7
|
+
return value;
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
normalizeInlineSize
|
|
11
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { isNotNil, clsx } from "@koobiq/react-core";
|
|
5
|
+
import { ProgressBar as ProgressBar$1 } from "@koobiq/react-primitives";
|
|
6
|
+
import s from "./ProgressBar.module.css.js";
|
|
7
|
+
const ProgressBar = forwardRef(
|
|
8
|
+
(props, ref) => {
|
|
9
|
+
const {
|
|
10
|
+
variant = "determinate",
|
|
11
|
+
minValue = 0,
|
|
12
|
+
maxValue = 100,
|
|
13
|
+
className,
|
|
14
|
+
value,
|
|
15
|
+
slotProps,
|
|
16
|
+
style,
|
|
17
|
+
...other
|
|
18
|
+
} = props;
|
|
19
|
+
const indeterminate = variant === "indeterminate" || !isNotNil(value);
|
|
20
|
+
const setProgressTrackStyles = () => {
|
|
21
|
+
if (indeterminate) return void 0;
|
|
22
|
+
const translateX = Math.max(
|
|
23
|
+
-maxValue,
|
|
24
|
+
Math.min(minValue, (value || minValue) - maxValue)
|
|
25
|
+
);
|
|
26
|
+
return {
|
|
27
|
+
"--progressbar-fill-translate-x": `translateX(${translateX}%)`
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
return /* @__PURE__ */ jsx(
|
|
31
|
+
ProgressBar$1,
|
|
32
|
+
{
|
|
33
|
+
value,
|
|
34
|
+
minValue,
|
|
35
|
+
maxValue,
|
|
36
|
+
indeterminate,
|
|
37
|
+
"data-variant": indeterminate ? "indeterminate" : "determinate",
|
|
38
|
+
style: { ...style, ...setProgressTrackStyles() },
|
|
39
|
+
className: clsx(s.base, indeterminate && s.indeterminate, className),
|
|
40
|
+
...other,
|
|
41
|
+
ref,
|
|
42
|
+
children: /* @__PURE__ */ jsx(
|
|
43
|
+
"span",
|
|
44
|
+
{
|
|
45
|
+
className: clsx(s.fill, slotProps?.fill?.className),
|
|
46
|
+
ref: slotProps?.fill?.ref,
|
|
47
|
+
...slotProps?.fill
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
ProgressBar.displayName = "ProgressBar";
|
|
55
|
+
export {
|
|
56
|
+
ProgressBar
|
|
57
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const base = "kbq-progressbar-824268";
|
|
2
|
+
const fill = "kbq-progressbar-fill-f590ca";
|
|
3
|
+
const indeterminate = "kbq-progressbar-indeterminate-80b42e";
|
|
4
|
+
const s = {
|
|
5
|
+
base,
|
|
6
|
+
fill,
|
|
7
|
+
indeterminate,
|
|
8
|
+
"progress-bar-animation": "kbq-progressbar-progress-bar-animation-6e2ae1"
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
base,
|
|
12
|
+
s as default,
|
|
13
|
+
fill,
|
|
14
|
+
indeterminate
|
|
15
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
import type { ExtendableComponentPropsWithRef } from '@koobiq/react-core';
|
|
3
|
+
export declare const progressBarPropVariant: readonly ["indeterminate", "determinate"];
|
|
4
|
+
export type ProgressBarPropVariant = (typeof progressBarPropVariant)[number];
|
|
5
|
+
export type ProgressBarBaseProps = {
|
|
6
|
+
children?: never;
|
|
7
|
+
/**
|
|
8
|
+
* The current value (controlled).
|
|
9
|
+
* @default 0
|
|
10
|
+
*/
|
|
11
|
+
value?: number;
|
|
12
|
+
/**
|
|
13
|
+
* The smallest value allowed for the input.
|
|
14
|
+
* @default 0
|
|
15
|
+
*/
|
|
16
|
+
minValue?: number;
|
|
17
|
+
/**
|
|
18
|
+
* The largest value allowed for the input.
|
|
19
|
+
* @default 100
|
|
20
|
+
*/
|
|
21
|
+
maxValue?: number;
|
|
22
|
+
/** Additional CSS-classes. */
|
|
23
|
+
className?: string;
|
|
24
|
+
/**
|
|
25
|
+
* The variant to use. Use indeterminate or query when there is no progress value.
|
|
26
|
+
* @default determinate
|
|
27
|
+
* */
|
|
28
|
+
variant?: ProgressBarPropVariant;
|
|
29
|
+
/** The props used for each slot inside. */
|
|
30
|
+
slotProps?: {
|
|
31
|
+
fill?: ComponentPropsWithRef<'span'>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export type ProgressBarProps = ExtendableComponentPropsWithRef<ProgressBarBaseProps, 'div'>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useMemo } from "react";
|
|
4
|
+
import { isNotNil, clsx } from "@koobiq/react-core";
|
|
5
|
+
import { ProgressBar } from "@koobiq/react-primitives";
|
|
6
|
+
import s from "./ProgressSpinner.module.css.js";
|
|
7
|
+
import { getSvgParamsBySize } from "./utils.js";
|
|
8
|
+
const ProgressSpinner = forwardRef((props, ref) => {
|
|
9
|
+
const {
|
|
10
|
+
variant = "determinate",
|
|
11
|
+
size = "compact",
|
|
12
|
+
minValue = 0,
|
|
13
|
+
maxValue = 100,
|
|
14
|
+
className,
|
|
15
|
+
value,
|
|
16
|
+
slotProps,
|
|
17
|
+
...other
|
|
18
|
+
} = props;
|
|
19
|
+
const indeterminate = variant === "indeterminate" || !isNotNil(value);
|
|
20
|
+
const [sizeOfPixels, strokeWidth, radius, strokeDasharray] = useMemo(
|
|
21
|
+
() => getSvgParamsBySize(size),
|
|
22
|
+
[size]
|
|
23
|
+
);
|
|
24
|
+
return /* @__PURE__ */ jsx(
|
|
25
|
+
ProgressBar,
|
|
26
|
+
{
|
|
27
|
+
value,
|
|
28
|
+
"data-size": size,
|
|
29
|
+
minValue,
|
|
30
|
+
maxValue,
|
|
31
|
+
indeterminate,
|
|
32
|
+
"data-variant": indeterminate ? "indeterminate" : "determinate",
|
|
33
|
+
className: clsx(s.base, indeterminate && s.indeterminate, className),
|
|
34
|
+
...other,
|
|
35
|
+
ref,
|
|
36
|
+
children: ({ percentage = 0 }) => {
|
|
37
|
+
const progress = indeterminate ? 75 : percentage;
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
"svg",
|
|
40
|
+
{
|
|
41
|
+
width: sizeOfPixels,
|
|
42
|
+
height: sizeOfPixels,
|
|
43
|
+
className: clsx(s.spin, slotProps?.spin?.className),
|
|
44
|
+
viewBox: `0 0 ${sizeOfPixels} ${sizeOfPixels}`,
|
|
45
|
+
...slotProps?.spin,
|
|
46
|
+
children: /* @__PURE__ */ jsx(
|
|
47
|
+
"circle",
|
|
48
|
+
{
|
|
49
|
+
r: radius,
|
|
50
|
+
className: s.circle,
|
|
51
|
+
cx: sizeOfPixels / 2,
|
|
52
|
+
cy: sizeOfPixels / 2,
|
|
53
|
+
strokeLinecap: "round",
|
|
54
|
+
strokeWidth,
|
|
55
|
+
strokeDasharray,
|
|
56
|
+
strokeDashoffset: strokeDasharray - progress / 100 * strokeDasharray
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
ProgressSpinner.displayName = "ProgressSpinner";
|
|
66
|
+
export {
|
|
67
|
+
ProgressSpinner
|
|
68
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const base = "kbq-progressspinner-c0a44b";
|
|
2
|
+
const spin = "kbq-progressspinner-spin-537b53";
|
|
3
|
+
const circle = "kbq-progressspinner-circle-6442ab";
|
|
4
|
+
const indeterminate = "kbq-progressspinner-indeterminate-1cf6d1";
|
|
5
|
+
const s = {
|
|
6
|
+
base,
|
|
7
|
+
spin,
|
|
8
|
+
circle,
|
|
9
|
+
indeterminate,
|
|
10
|
+
"progress-spin-animation": "kbq-progressspinner-progress-spin-animation-82d376"
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
base,
|
|
14
|
+
circle,
|
|
15
|
+
s as default,
|
|
16
|
+
indeterminate,
|
|
17
|
+
spin
|
|
18
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from 'react';
|
|
2
|
+
import type { ExtendableComponentPropsWithRef } from '@koobiq/react-core';
|
|
3
|
+
export declare const progressSpinnerPropSize: readonly ["compact", "big"];
|
|
4
|
+
export type ProgressSpinnerPropSize = (typeof progressSpinnerPropSize)[number];
|
|
5
|
+
export declare const progressSpinnerPropVariant: readonly ["indeterminate", "determinate"];
|
|
6
|
+
export type ProgressSpinnerPropVariant = (typeof progressSpinnerPropVariant)[number];
|
|
7
|
+
export type ProgressSpinnerBaseProps = {
|
|
8
|
+
children?: never;
|
|
9
|
+
/**
|
|
10
|
+
* The current value (controlled).
|
|
11
|
+
* @default 0
|
|
12
|
+
*/
|
|
13
|
+
value?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Size.
|
|
16
|
+
* @default compact
|
|
17
|
+
* */
|
|
18
|
+
size?: ProgressSpinnerPropSize;
|
|
19
|
+
/**
|
|
20
|
+
* The smallest value allowed for the input.
|
|
21
|
+
* @default 0
|
|
22
|
+
*/
|
|
23
|
+
minValue?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The largest value allowed for the input.
|
|
26
|
+
* @default 100
|
|
27
|
+
*/
|
|
28
|
+
maxValue?: number;
|
|
29
|
+
/** Additional CSS-classes. */
|
|
30
|
+
className?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The variant to use. Use indeterminate or query when there is no progress value.
|
|
33
|
+
* @default determinate
|
|
34
|
+
* */
|
|
35
|
+
variant?: ProgressSpinnerPropVariant;
|
|
36
|
+
/** The props used for each slot inside. */
|
|
37
|
+
slotProps?: {
|
|
38
|
+
spin?: ComponentPropsWithRef<'svg'>;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export type ProgressSpinnerProps = ExtendableComponentPropsWithRef<ProgressSpinnerBaseProps, 'div'>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const sizeMap = {
|
|
2
|
+
compact: 16,
|
|
3
|
+
big: 48
|
|
4
|
+
};
|
|
5
|
+
const strokeWidthMap = {
|
|
6
|
+
compact: 2,
|
|
7
|
+
big: 3
|
|
8
|
+
};
|
|
9
|
+
function getSvgParamsBySize(size) {
|
|
10
|
+
const sizeOfPixels = sizeMap[size];
|
|
11
|
+
const strokeWidth = strokeWidthMap[size];
|
|
12
|
+
const radius = (sizeOfPixels - strokeWidth) / 2;
|
|
13
|
+
const strokeDasharray = radius * 2 * Math.PI;
|
|
14
|
+
return [sizeOfPixels, strokeWidth, radius, strokeDasharray];
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
getSvgParamsBySize
|
|
18
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Breakpoints } from './types';
|
|
2
|
+
export type BreakpointsContextType = Record<keyof Breakpoints, boolean>;
|
|
3
|
+
export declare const BreakpointsContext: import("react").Context<BreakpointsContextType>;
|
|
4
|
+
export declare function useBreakpoints(): BreakpointsContextType;
|
|
5
|
+
export declare function useMatchedBreakpoints(): string[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
const BreakpointsContext = createContext(
|
|
4
|
+
{}
|
|
5
|
+
);
|
|
6
|
+
function useBreakpoints() {
|
|
7
|
+
return useContext(BreakpointsContext);
|
|
8
|
+
}
|
|
9
|
+
function useMatchedBreakpoints() {
|
|
10
|
+
const breakpoints = useContext(BreakpointsContext);
|
|
11
|
+
return Object.keys(breakpoints).filter((key) => breakpoints[key]);
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
BreakpointsContext,
|
|
15
|
+
useBreakpoints,
|
|
16
|
+
useMatchedBreakpoints
|
|
17
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Breakpoints } from './types';
|
|
3
|
+
export type BreakpointsProviderProps = {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
breakpoints: Breakpoints;
|
|
6
|
+
};
|
|
7
|
+
export declare const BreakpointsProvider: {
|
|
8
|
+
({ children, breakpoints: _breakpoints, }: BreakpointsProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
displayName: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { BreakpointsContext } from "./BreakpointsContext.js";
|
|
4
|
+
import { useBreakpoints } from "./utils/useBreakpoints.js";
|
|
5
|
+
const BreakpointsProvider = ({
|
|
6
|
+
children,
|
|
7
|
+
breakpoints: _breakpoints
|
|
8
|
+
}) => {
|
|
9
|
+
const breakpoints = useBreakpoints(_breakpoints);
|
|
10
|
+
return /* @__PURE__ */ jsx(BreakpointsContext.Provider, { value: breakpoints, children });
|
|
11
|
+
};
|
|
12
|
+
BreakpointsProvider.displayName = "BreakpointsProvider";
|
|
13
|
+
export {
|
|
14
|
+
BreakpointsProvider
|
|
15
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Breakpoints, ProviderProps } from './types';
|
|
2
|
+
export declare const defaultBreakpoints: Breakpoints;
|
|
3
|
+
export declare const Provider: {
|
|
4
|
+
({ breakpoints, children, locale, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|