@codeleap/web 6.8.0 → 7.0.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/dist/components/ActivityIndicator/index.js +28 -0
- package/dist/components/ActivityIndicator/index.js.map +1 -0
- package/dist/components/ActivityIndicator/styles.js +2 -0
- package/dist/components/ActivityIndicator/styles.js.map +1 -0
- package/dist/components/ActivityIndicator/types.js +2 -0
- package/dist/components/ActivityIndicator/types.js.map +1 -0
- package/dist/components/Badge/index.js +68 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Badge/styles.js +2 -0
- package/dist/components/Badge/styles.js.map +1 -0
- package/dist/components/Badge/types.js +2 -0
- package/dist/components/Badge/types.js.map +1 -0
- package/dist/components/Button/index.js +52 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Button/styles.js +2 -0
- package/dist/components/Button/styles.js.map +1 -0
- package/dist/components/Button/types.js +2 -0
- package/dist/components/Button/types.js.map +1 -0
- package/dist/components/Calendar/index.js +50 -0
- package/dist/components/Calendar/index.js.map +1 -0
- package/dist/components/Calendar/styles.js +2 -0
- package/dist/components/Calendar/styles.js.map +1 -0
- package/dist/components/Calendar/types.js +2 -0
- package/dist/components/Calendar/types.js.map +1 -0
- package/dist/components/Carousel/index.js +129 -0
- package/dist/components/Carousel/index.js.map +1 -0
- package/dist/components/Carousel/styles.js +2 -0
- package/dist/components/Carousel/styles.js.map +1 -0
- package/dist/components/Carousel/types.js +2 -0
- package/dist/components/Carousel/types.js.map +1 -0
- package/dist/components/Checkbox/index.js +44 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/Checkbox/styles.js +2 -0
- package/dist/components/Checkbox/styles.js.map +1 -0
- package/dist/components/Checkbox/types.js +2 -0
- package/dist/components/Checkbox/types.js.map +1 -0
- package/dist/components/Collapse/index.js +27 -0
- package/dist/components/Collapse/index.js.map +1 -0
- package/dist/components/Collapse/styles.js +2 -0
- package/dist/components/Collapse/styles.js.map +1 -0
- package/dist/components/Collapse/types.js +2 -0
- package/dist/components/Collapse/types.js.map +1 -0
- package/dist/components/ColorPicker/index.js +65 -0
- package/dist/components/ColorPicker/index.js.map +1 -0
- package/dist/components/ColorPicker/styles.js +2 -0
- package/dist/components/ColorPicker/styles.js.map +1 -0
- package/dist/components/ColorPicker/types.js +2 -0
- package/dist/components/ColorPicker/types.js.map +1 -0
- package/dist/components/CropPicker/hooks.js +130 -0
- package/dist/components/CropPicker/hooks.js.map +1 -0
- package/dist/components/CropPicker/index.js +38 -0
- package/dist/components/CropPicker/index.js.map +1 -0
- package/dist/components/CropPicker/styles.js +2 -0
- package/dist/components/CropPicker/styles.js.map +1 -0
- package/dist/components/CropPicker/types.js +2 -0
- package/dist/components/CropPicker/types.js.map +1 -0
- package/dist/components/CropPicker/utils.js +70 -0
- package/dist/components/CropPicker/utils.js.map +1 -0
- package/dist/components/DatePicker/index.js +70 -0
- package/dist/components/DatePicker/index.js.map +1 -0
- package/dist/components/DatePicker/styles.js +2 -0
- package/dist/components/DatePicker/styles.js.map +1 -0
- package/dist/components/DatePicker/types.js +2 -0
- package/dist/components/DatePicker/types.js.map +1 -0
- package/dist/components/Drawer/index.js +50 -0
- package/dist/components/Drawer/index.js.map +1 -0
- package/dist/components/Drawer/styles.js +2 -0
- package/dist/components/Drawer/styles.js.map +1 -0
- package/dist/components/Drawer/types.js +2 -0
- package/dist/components/Drawer/types.js.map +1 -0
- package/dist/components/Dropzone/context.js +39 -0
- package/dist/components/Dropzone/context.js.map +1 -0
- package/dist/components/Dropzone/elements.js +51 -0
- package/dist/components/Dropzone/elements.js.map +1 -0
- package/dist/components/Dropzone/index.js +71 -0
- package/dist/components/Dropzone/index.js.map +1 -0
- package/dist/components/Dropzone/styles.js +2 -0
- package/dist/components/Dropzone/styles.js.map +1 -0
- package/dist/components/Dropzone/types.js +2 -0
- package/dist/components/Dropzone/types.js.map +1 -0
- package/dist/components/Dropzone/useDropzone.js +17 -0
- package/dist/components/Dropzone/useDropzone.js.map +1 -0
- package/dist/components/EmptyPlaceholder/index.js +65 -0
- package/dist/components/EmptyPlaceholder/index.js.map +1 -0
- package/dist/components/EmptyPlaceholder/styles.js +2 -0
- package/dist/components/EmptyPlaceholder/styles.js.map +1 -0
- package/dist/components/EmptyPlaceholder/types.js +2 -0
- package/dist/components/EmptyPlaceholder/types.js.map +1 -0
- package/dist/components/Field/context.js +52 -0
- package/dist/components/Field/context.js.map +1 -0
- package/dist/components/Field/elements.js +84 -0
- package/dist/components/Field/elements.js.map +1 -0
- package/dist/components/Field/index.js +37 -0
- package/dist/components/Field/index.js.map +1 -0
- package/dist/components/Field/styles.js +2 -0
- package/dist/components/Field/styles.js.map +1 -0
- package/dist/components/Field/types.js +2 -0
- package/dist/components/Field/types.js.map +1 -0
- package/dist/components/Field/useFieldInput.js +47 -0
- package/dist/components/Field/useFieldInput.js.map +1 -0
- package/dist/components/FileInput/index.js +55 -0
- package/dist/components/FileInput/index.js.map +1 -0
- package/dist/components/FileInput/types.js +2 -0
- package/dist/components/FileInput/types.js.map +1 -0
- package/dist/components/Icon/index.js +51 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/Icon/styles.js +2 -0
- package/dist/components/Icon/styles.js.map +1 -0
- package/dist/components/Icon/types.js +2 -0
- package/dist/components/Icon/types.js.map +1 -0
- package/dist/components/List/context.js +76 -0
- package/dist/components/List/context.js.map +1 -0
- package/dist/components/List/elements.js +123 -0
- package/dist/components/List/elements.js.map +1 -0
- package/dist/components/List/index.js +35 -0
- package/dist/components/List/index.js.map +1 -0
- package/dist/components/List/scroll.js +75 -0
- package/dist/components/List/scroll.js.map +1 -0
- package/dist/components/List/styles.js +2 -0
- package/dist/components/List/styles.js.map +1 -0
- package/dist/components/List/types.js +2 -0
- package/dist/components/List/types.js.map +1 -0
- package/dist/components/LoadingOverlay/index.js +32 -0
- package/dist/components/LoadingOverlay/index.js.map +1 -0
- package/dist/components/LoadingOverlay/styles.js +2 -0
- package/dist/components/LoadingOverlay/styles.js.map +1 -0
- package/dist/components/LoadingOverlay/types.js +2 -0
- package/dist/components/LoadingOverlay/types.js.map +1 -0
- package/dist/components/MaskedTextInput/index.js +34 -0
- package/dist/components/MaskedTextInput/index.js.map +1 -0
- package/dist/components/MaskedTextInput/mask.js +34 -0
- package/dist/components/MaskedTextInput/mask.js.map +1 -0
- package/dist/components/MaskedTextInput/types.js +2 -0
- package/dist/components/MaskedTextInput/types.js.map +1 -0
- package/dist/components/Modal/context.js +36 -0
- package/dist/components/Modal/context.js.map +1 -0
- package/dist/components/Modal/elements.js +66 -0
- package/dist/components/Modal/elements.js.map +1 -0
- package/dist/components/Modal/index.js +34 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/Modal/styles.js +2 -0
- package/dist/components/Modal/styles.js.map +1 -0
- package/dist/components/Modal/types.js +2 -0
- package/dist/components/Modal/types.js.map +1 -0
- package/dist/components/NumberIncrement/index.js +65 -0
- package/dist/components/NumberIncrement/index.js.map +1 -0
- package/dist/components/NumberIncrement/styles.js +2 -0
- package/dist/components/NumberIncrement/styles.js.map +1 -0
- package/dist/components/NumberIncrement/types.js +2 -0
- package/dist/components/NumberIncrement/types.js.map +1 -0
- package/dist/components/NumberIncrement/useNumberIncrement.js +113 -0
- package/dist/components/NumberIncrement/useNumberIncrement.js.map +1 -0
- package/dist/components/Overlay/index.js +44 -0
- package/dist/components/Overlay/index.js.map +1 -0
- package/dist/components/Overlay/styles.js +2 -0
- package/dist/components/Overlay/styles.js.map +1 -0
- package/dist/components/Overlay/types.js +2 -0
- package/dist/components/Overlay/types.js.map +1 -0
- package/dist/components/PaginationButtons/index.js +100 -0
- package/dist/components/PaginationButtons/index.js.map +1 -0
- package/dist/components/PaginationButtons/styles.js +2 -0
- package/dist/components/PaginationButtons/styles.js.map +1 -0
- package/dist/components/PaginationButtons/types.js +2 -0
- package/dist/components/PaginationButtons/types.js.map +1 -0
- package/dist/components/PaginationIndicator/index.js +41 -0
- package/dist/components/PaginationIndicator/index.js.map +1 -0
- package/dist/components/PaginationIndicator/styles.js +2 -0
- package/dist/components/PaginationIndicator/styles.js.map +1 -0
- package/dist/components/PaginationIndicator/types.js +2 -0
- package/dist/components/PaginationIndicator/types.js.map +1 -0
- package/dist/components/Progress/Bar/Segmented.js +37 -0
- package/dist/components/Progress/Bar/Segmented.js.map +1 -0
- package/dist/components/Progress/Bar/index.js +44 -0
- package/dist/components/Progress/Bar/index.js.map +1 -0
- package/dist/components/Progress/Bar/styles.js +2 -0
- package/dist/components/Progress/Bar/styles.js.map +1 -0
- package/dist/components/Progress/Bar/types.js +2 -0
- package/dist/components/Progress/Bar/types.js.map +1 -0
- package/dist/components/Progress/Circle/Segmented.js +60 -0
- package/dist/components/Progress/Circle/Segmented.js.map +1 -0
- package/dist/components/Progress/Circle/index.js +65 -0
- package/dist/components/Progress/Circle/index.js.map +1 -0
- package/dist/components/Progress/Circle/styles.js +2 -0
- package/dist/components/Progress/Circle/styles.js.map +1 -0
- package/dist/components/Progress/Circle/types.js +2 -0
- package/dist/components/Progress/Circle/types.js.map +1 -0
- package/dist/components/Progress/index.js +3 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/Progress/utils.js +4 -0
- package/dist/components/Progress/utils.js.map +1 -0
- package/dist/components/RadioInput/index.js +47 -0
- package/dist/components/RadioInput/index.js.map +1 -0
- package/dist/components/RadioInput/styles.js +2 -0
- package/dist/components/RadioInput/styles.js.map +1 -0
- package/dist/components/RadioInput/types.js +2 -0
- package/dist/components/RadioInput/types.js.map +1 -0
- package/dist/components/SearchInput/index.js +61 -0
- package/dist/components/SearchInput/index.js.map +1 -0
- package/dist/components/SectionFilters/index.js +148 -0
- package/dist/components/SectionFilters/index.js.map +1 -0
- package/dist/components/SectionFilters/styles.js +2 -0
- package/dist/components/SectionFilters/styles.js.map +1 -0
- package/dist/components/SectionFilters/types.js +2 -0
- package/dist/components/SectionFilters/types.js.map +1 -0
- package/dist/components/Select/context.js +156 -0
- package/dist/components/Select/context.js.map +1 -0
- package/dist/components/Select/elements.js +47 -0
- package/dist/components/Select/elements.js.map +1 -0
- package/dist/components/Select/index.js +53 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Select/styles.js +2 -0
- package/dist/components/Select/styles.js.map +1 -0
- package/dist/components/Select/types.js +2 -0
- package/dist/components/Select/types.js.map +1 -0
- package/dist/components/Select/useTriggerWidth.js +27 -0
- package/dist/components/Select/useTriggerWidth.js.map +1 -0
- package/dist/components/Slider/index.js +139 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Slider/styles.js +2 -0
- package/dist/components/Slider/styles.js.map +1 -0
- package/dist/components/Slider/types.js +2 -0
- package/dist/components/Slider/types.js.map +1 -0
- package/dist/components/Switch/index.js +48 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Switch/styles.js +2 -0
- package/dist/components/Switch/styles.js.map +1 -0
- package/dist/components/Switch/types.js +2 -0
- package/dist/components/Switch/types.js.map +1 -0
- package/dist/components/Tag/index.js +53 -0
- package/dist/components/Tag/index.js.map +1 -0
- package/dist/components/Tag/styles.js +2 -0
- package/dist/components/Tag/styles.js.map +1 -0
- package/dist/components/Tag/types.js +2 -0
- package/dist/components/Tag/types.js.map +1 -0
- package/dist/components/Text/index.js +94 -0
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Text/styles.js +2 -0
- package/dist/components/Text/styles.js.map +1 -0
- package/dist/components/Text/types.js +2 -0
- package/dist/components/Text/types.js.map +1 -0
- package/dist/components/TextEditor/index.js +90 -0
- package/dist/components/TextEditor/index.js.map +1 -0
- package/dist/components/TextEditor/styles.js +2 -0
- package/dist/components/TextEditor/styles.js.map +1 -0
- package/dist/components/TextEditor/types.js +2 -0
- package/dist/components/TextEditor/types.js.map +1 -0
- package/dist/components/TextInput/index.js +65 -0
- package/dist/components/TextInput/index.js.map +1 -0
- package/dist/components/TextInput/styles.js +2 -0
- package/dist/components/TextInput/styles.js.map +1 -0
- package/dist/components/TextInput/types.js +2 -0
- package/dist/components/TextInput/types.js.map +1 -0
- package/dist/components/TextInput/useTextInput.js +64 -0
- package/dist/components/TextInput/useTextInput.js.map +1 -0
- package/dist/components/Tooltip/index.js +94 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/Tooltip/styles.js +2 -0
- package/dist/components/Tooltip/styles.js.map +1 -0
- package/dist/components/Tooltip/types.js +2 -0
- package/dist/components/Tooltip/types.js.map +1 -0
- package/dist/components/Touchable/index.js +80 -0
- package/dist/components/Touchable/index.js.map +1 -0
- package/dist/components/Touchable/styles.js +2 -0
- package/dist/components/Touchable/styles.js.map +1 -0
- package/dist/components/Touchable/types.js +2 -0
- package/dist/components/Touchable/types.js.map +1 -0
- package/dist/components/View/index.js +39 -0
- package/dist/components/View/index.js.map +1 -0
- package/dist/components/View/styles.js +2 -0
- package/dist/components/View/styles.js.map +1 -0
- package/dist/components/View/types.js +2 -0
- package/dist/components/View/types.js.map +1 -0
- package/dist/components/components.js +42 -0
- package/dist/components/components.js.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ListMasonry.js +86 -0
- package/dist/lib/ListMasonry.js.map +1 -0
- package/dist/lib/ThemeVariables.js +22 -0
- package/dist/lib/ThemeVariables.js.map +1 -0
- package/dist/lib/WebStyleRegistry.js +69 -0
- package/dist/lib/WebStyleRegistry.js.map +1 -0
- package/dist/lib/hooks/index.js +23 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/useAnimatedStyle.js +23 -0
- package/dist/lib/hooks/useAnimatedStyle.js.map +1 -0
- package/dist/lib/hooks/useAnimatedVariantStyles.js +20 -0
- package/dist/lib/hooks/useAnimatedVariantStyles.js.map +1 -0
- package/dist/lib/hooks/useAsyncSelect.js +57 -0
- package/dist/lib/hooks/useAsyncSelect.js.map +1 -0
- package/dist/lib/hooks/useBreakpointMatch.js +108 -0
- package/dist/lib/hooks/useBreakpointMatch.js.map +1 -0
- package/dist/lib/hooks/useClick.js +38 -0
- package/dist/lib/hooks/useClick.js.map +1 -0
- package/dist/lib/hooks/useClickOutside.js +31 -0
- package/dist/lib/hooks/useClickOutside.js.map +1 -0
- package/dist/lib/hooks/useFileInput.js +17 -0
- package/dist/lib/hooks/useFileInput.js.map +1 -0
- package/dist/lib/hooks/useIsomorphicEffect.js +7 -0
- package/dist/lib/hooks/useIsomorphicEffect.js.map +1 -0
- package/dist/lib/hooks/useKeydown.js +39 -0
- package/dist/lib/hooks/useKeydown.js.map +1 -0
- package/dist/lib/hooks/useListFocus.js +46 -0
- package/dist/lib/hooks/useListFocus.js.map +1 -0
- package/dist/lib/hooks/useMediaQuery.js +25 -0
- package/dist/lib/hooks/useMediaQuery.js.map +1 -0
- package/dist/lib/hooks/usePageExitBlocker.js +44 -0
- package/dist/lib/hooks/usePageExitBlocker.js.map +1 -0
- package/dist/lib/hooks/usePagination.js +90 -0
- package/dist/lib/hooks/usePagination.js.map +1 -0
- package/dist/lib/hooks/usePopState.js +31 -0
- package/dist/lib/hooks/usePopState.js.map +1 -0
- package/dist/lib/hooks/usePopoverDismiss.js +32 -0
- package/dist/lib/hooks/usePopoverDismiss.js.map +1 -0
- package/dist/lib/hooks/useRefresh.js +67 -0
- package/dist/lib/hooks/useRefresh.js.map +1 -0
- package/dist/lib/hooks/useScrollEffect.js +19 -0
- package/dist/lib/hooks/useScrollEffect.js.map +1 -0
- package/dist/lib/hooks/useSearchParams.js +48 -0
- package/dist/lib/hooks/useSearchParams.js.map +1 -0
- package/dist/lib/hooks/useStaticAnimationStyles.js +16 -0
- package/dist/lib/hooks/useStaticAnimationStyles.js.map +1 -0
- package/dist/lib/hooks/useStylesFor.js +36 -0
- package/dist/lib/hooks/useStylesFor.js.map +1 -0
- package/dist/lib/hooks/useTouchableEvents.js +34 -0
- package/dist/lib/hooks/useTouchableEvents.js.map +1 -0
- package/dist/lib/hooks/useWindowFocus.js +30 -0
- package/dist/lib/hooks/useWindowFocus.js.map +1 -0
- package/dist/lib/hooks/useWindowSize.js +29 -0
- package/dist/lib/hooks/useWindowSize.js.map +1 -0
- package/dist/lib/index.js +7 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/tools/index.js +4 -0
- package/dist/lib/tools/index.js.map +1 -0
- package/dist/lib/tools/localStorage.js +155 -0
- package/dist/lib/tools/localStorage.js.map +1 -0
- package/dist/lib/tools/mediaQuery.js +33 -0
- package/dist/lib/tools/mediaQuery.js.map +1 -0
- package/dist/lib/tools/modal.js +55 -0
- package/dist/lib/tools/modal.js.map +1 -0
- package/dist/lib/utils/attributes.js +23 -0
- package/dist/lib/utils/attributes.js.map +1 -0
- package/dist/lib/utils/cache.js +10 -0
- package/dist/lib/utils/cache.js.map +1 -0
- package/dist/lib/utils/index.js +6 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/pollyfils/scroll.js +66 -0
- package/dist/lib/utils/pollyfils/scroll.js.map +1 -0
- package/dist/lib/utils/stopPropagation.js +19 -0
- package/dist/lib/utils/stopPropagation.js.map +1 -0
- package/dist/lib/utils/test.js +14 -0
- package/dist/lib/utils/test.js.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/utility.js +2 -0
- package/dist/types/utility.js.map +1 -0
- package/package.json +18 -18
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { ModalProvider } from './context';
|
|
3
|
+
import { ModalBackdrop, ModalBox, ModalHeader, ModalBody, ModalFooter, } from './elements';
|
|
4
|
+
import { WebStyleRegistry } from '../../lib/WebStyleRegistry';
|
|
5
|
+
export * from './styles';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './context';
|
|
8
|
+
export * from './elements';
|
|
9
|
+
/**
|
|
10
|
+
* Accessible dialog that blocks page interaction while open, with backdrop-click and Escape-key dismissal.
|
|
11
|
+
* Controlled via `visible` / `toggle`; defaults to `closable`, `dismissOnBackdrop`, and `closeOnEscape` all `true`.
|
|
12
|
+
* Uses: `Modal.Provider`, `Modal.Backdrop`, `Modal.Box`, `Modal.Header`, `Modal.Body`, `Modal.Footer`
|
|
13
|
+
*/
|
|
14
|
+
export const Modal = (props) => {
|
|
15
|
+
const { children, ...providerProps } = { ...Modal.defaultProps, ...props };
|
|
16
|
+
return (_jsx(ModalProvider, { ...providerProps, children: _jsx(ModalBackdrop, { children: _jsxs(ModalBox, { children: [_jsx(ModalHeader, {}), _jsx(ModalBody, { children: children }), _jsx(ModalFooter, {})] }) }) }));
|
|
17
|
+
};
|
|
18
|
+
Modal.Provider = ModalProvider;
|
|
19
|
+
Modal.Backdrop = ModalBackdrop;
|
|
20
|
+
Modal.Box = ModalBox;
|
|
21
|
+
Modal.Header = ModalHeader;
|
|
22
|
+
Modal.Body = ModalBody;
|
|
23
|
+
Modal.Footer = ModalFooter;
|
|
24
|
+
Modal.styleRegistryName = 'Modal';
|
|
25
|
+
Modal.elements = ['backdrop', 'box', 'header', 'body', 'footer', 'title', 'description'];
|
|
26
|
+
Modal.rootElement = 'backdrop';
|
|
27
|
+
Modal.defaultProps = {
|
|
28
|
+
closable: true,
|
|
29
|
+
showClose: true,
|
|
30
|
+
dismissOnBackdrop: true,
|
|
31
|
+
closeOnEscape: true,
|
|
32
|
+
};
|
|
33
|
+
WebStyleRegistry.registerComponent(Modal);
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EACL,aAAa,EACb,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAE;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE,CAAA;IAE1E,OAAO,CACL,KAAC,aAAa,OAAK,aAAa,YAC9B,KAAC,aAAa,cACZ,MAAC,QAAQ,eACP,KAAC,WAAW,KAAG,EACf,KAAC,SAAS,cAAE,QAAQ,GAAa,EACjC,KAAC,WAAW,KAAG,IACN,GACG,GACF,CACjB,CAAA;AACH,CAAC,CAAA;AAED,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAA;AAC9B,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAA;AAC9B,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAA;AACpB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAA;AAC1B,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;AACtB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAA;AAE1B,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAA;AACjC,KAAK,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;AACxF,KAAK,CAAC,WAAW,GAAG,UAAU,CAAA;AAE9B,KAAK,CAAC,YAAY,GAAG;IACnB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,IAAI;CACG,CAAA;AAExB,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/Modal/styles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Modal/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { TypeGuards } from '@codeleap/types';
|
|
3
|
+
import { PatternFormat, NumericFormat, NumberFormatBase } from 'react-number-format';
|
|
4
|
+
import { WebStyleRegistry } from '../../lib/WebStyleRegistry';
|
|
5
|
+
import { useStylesFor } from '../../lib/hooks/useStylesFor';
|
|
6
|
+
import { useNumberIncrement } from './useNumberIncrement';
|
|
7
|
+
import { Field } from '../Field';
|
|
8
|
+
import { toDataAttrs } from '../../lib';
|
|
9
|
+
import { Icon } from '../Icon';
|
|
10
|
+
export * from './types';
|
|
11
|
+
export * from './styles';
|
|
12
|
+
/**
|
|
13
|
+
* Numeric stepper field with `Icon`-driven increment/decrement buttons, optional direct keyboard entry, and `Field` layout (label, helper, left/right sections).
|
|
14
|
+
* Arrow-left/right keyboard events increment or decrement the value while the field is focused; clicking outside closes focus.
|
|
15
|
+
* Uses: `Field.Provider`, `Field.Wrapper`, `Field.Box`, `Field.Heading`, `Field.Helper`, `Field.SectionSlot`, `Icon`, `useNumberIncrement`
|
|
16
|
+
*/
|
|
17
|
+
export const NumberIncrement = (props) => {
|
|
18
|
+
const allProps = {
|
|
19
|
+
...NumberIncrement.defaultProps,
|
|
20
|
+
...props,
|
|
21
|
+
};
|
|
22
|
+
const { style, disabled, editable, hasSeparator, format, mask, suffix, separator, prefix, formatter, placeholder, label, helper, } = allProps;
|
|
23
|
+
const { isFocused, hasError, hasValue, errorMessage, incrementDisabled, decrementDisabled, innerInputRef, innerWrapperRef, wrapperRef, handleBlur, handleFocus, handleChange, handleChangeInput, onPressInnerWrapper, inputValue, } = useNumberIncrement(allProps);
|
|
24
|
+
const fieldContext = {
|
|
25
|
+
disabled: !!disabled,
|
|
26
|
+
hasValue: !!hasValue,
|
|
27
|
+
error: !!hasError,
|
|
28
|
+
focused: !!isFocused,
|
|
29
|
+
};
|
|
30
|
+
const styles = useStylesFor(NumberIncrement.styleRegistryName, style, fieldContext);
|
|
31
|
+
const stateAttrs = toDataAttrs({ disabled: !!disabled, error: !!hasError, focused: !!isFocused });
|
|
32
|
+
const InputFormat = TypeGuards.isString(format) || TypeGuards.isString(mask)
|
|
33
|
+
? PatternFormat
|
|
34
|
+
: NumericFormat;
|
|
35
|
+
const shouldUseBaseInput = TypeGuards.isFunction(formatter);
|
|
36
|
+
const Input = shouldUseBaseInput
|
|
37
|
+
? NumberFormatBase
|
|
38
|
+
: InputFormat;
|
|
39
|
+
const thousandProps = !shouldUseBaseInput ? {
|
|
40
|
+
thousandSeparator: separator,
|
|
41
|
+
thousandsGroupStyle: hasSeparator || TypeGuards.isString(separator) ? 'thousand' : 'none',
|
|
42
|
+
} : {};
|
|
43
|
+
return (_jsx(Field.Provider, { context: fieldContext, label: label, helper: hasError ? errorMessage : helper, componentName: 'number_increment', leftSection: _jsx(Icon, { icon: 'minus', onPress: () => handleChange('decrement'), disabled: disabled || decrementDisabled, style: styles.leftSection }), rightSection: _jsx(Icon, { icon: 'plus', onPress: () => handleChange('increment'), disabled: disabled || incrementDisabled, style: styles.rightSection }), children: _jsxs(Field.Wrapper, { ref: wrapperRef, style: styles.wrapper, children: [_jsx(Field.Heading, { style: styles.heading }), _jsxs(Field.Box, { ref: innerWrapperRef, style: [styles.box, editable ? styles['box:cursor'] : undefined], onClick: onPressInnerWrapper, ...stateAttrs, children: [_jsx(Field.SectionSlot, { position: 'left' }), _jsx(Input, { displayType: 'input', css: [
|
|
44
|
+
styles.input,
|
|
45
|
+
{
|
|
46
|
+
'&:focus': { outline: 'none', borderWidth: 0, borderColor: 'transparent' },
|
|
47
|
+
},
|
|
48
|
+
], inputMode: 'numeric', onValueChange: handleChangeInput, onBlur: handleBlur, onFocus: handleFocus, value: inputValue, ...thousandProps, suffix: suffix, prefix: prefix, format: TypeGuards.isFunction(formatter) ? formatter : format, mask: mask, placeholder: placeholder, getInputRef: innerInputRef, disabled: disabled }), _jsx(Field.SectionSlot, { position: 'right' })] }), _jsx(Field.Helper, { style: styles.helper })] }) }));
|
|
49
|
+
};
|
|
50
|
+
NumberIncrement.styleRegistryName = 'NumberIncrement';
|
|
51
|
+
NumberIncrement.elements = [...Field.elements, 'input', 'placeholder'];
|
|
52
|
+
NumberIncrement.rootElement = 'wrapper';
|
|
53
|
+
NumberIncrement.defaultProps = {
|
|
54
|
+
max: 1000000000,
|
|
55
|
+
min: 0,
|
|
56
|
+
step: 1,
|
|
57
|
+
editable: true,
|
|
58
|
+
hasSeparator: false,
|
|
59
|
+
mask: undefined,
|
|
60
|
+
separator: null,
|
|
61
|
+
format: null,
|
|
62
|
+
formatter: null,
|
|
63
|
+
};
|
|
64
|
+
WebStyleRegistry.registerComponent(NumberIncrement);
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/NumberIncrement/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAGvC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AAExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC7D,MAAM,QAAQ,GAAG;QACf,GAAG,eAAe,CAAC,YAAY;QAC/B,GAAG,KAAK;KACT,CAAA;IAED,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,KAAK,EACL,MAAM,GACP,GAAG,QAAQ,CAAA;IAEZ,MAAM,EACJ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,GACX,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAEhC,MAAM,YAAY,GAAsB;QACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,QAAQ;QACjB,OAAO,EAAE,CAAC,CAAC,SAAS;KACrB,CAAA;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IAEnF,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IAEjG,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1E,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAA;IAEf,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAQ,kBAAkB;QACnC,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,WAAW,CAAA;IAEf,MAAM,aAAa,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC1C,iBAAiB,EAAE,SAAS;QAC5B,mBAAmB,EAAE,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;KAC1F,CAAC,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,CACL,KAAC,KAAK,CAAC,QAAQ,IACb,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EACxC,aAAa,EAAC,kBAAkB,EAChC,WAAW,EACR,KAAC,IAAI,IAAC,IAAI,EAAE,OAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EACrE,QAAQ,EAAE,QAAQ,IAAI,iBAAiB,EACvC,KAAK,EAAE,MAAM,CAAC,WAAW,GAAG,EAElC,YAAY,EACR,KAAC,IAAI,IAAC,IAAI,EAAE,MAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EACrE,QAAQ,EAAE,QAAQ,IAAI,iBAAiB,EACvC,KAAK,EAAE,MAAM,CAAC,YAAY,GAAG,YAGnC,MAAC,KAAK,CAAC,OAAO,IAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,aACnD,KAAC,KAAK,CAAC,OAAO,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,EACxC,MAAC,KAAK,CAAC,GAAG,IACR,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAQ,EACvE,OAAO,EAAE,mBAAmB,KACxB,UAAU,aAEd,KAAC,KAAK,CAAC,WAAW,IAAC,QAAQ,EAAC,MAAM,GAAG,EAEnC,KAAC,KAAK,IACJ,WAAW,EAAC,OAAO,EACnB,GAAG,EAAE;gCACH,MAAM,CAAC,KAAK;gCACZ;oCACE,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE;iCAC3E;6BACF,EACD,SAAS,EAAC,SAAS,EACnB,aAAa,EAAE,iBAAiB,EAChC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,UAAU,KACb,aAAa,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAgB,CAAC,CAAC,CAAC,MAAM,EACpE,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,aAAa,EAC1B,QAAQ,EAAE,QAAQ,GAClB,EAGJ,KAAC,KAAK,CAAC,WAAW,IAAC,QAAQ,EAAC,OAAO,GAAG,IAE5B,EACZ,KAAC,KAAK,CAAC,MAAM,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAI,IACxB,GACD,CAClB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;AACrD,eAAe,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;AACtE,eAAe,CAAC,WAAW,GAAG,SAAS,CAAA;AAEvC,eAAe,CAAC,YAAY,GAAG;IAC7B,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;CACiB,CAAA;AAElC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/NumberIncrement/styles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/NumberIncrement/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { useRef, useState, useCallback, useEffect, useMemo } from 'react';
|
|
2
|
+
import { useFieldInput } from '../Field';
|
|
3
|
+
import { fields } from '@codeleap/form';
|
|
4
|
+
import { TypeGuards } from '@codeleap/types';
|
|
5
|
+
/**
|
|
6
|
+
* Manages value, focus, increment/decrement button disabled state, and keyboard arrow-key handling for `NumberIncrement`.
|
|
7
|
+
* Clamps the value to `[min, max]` on blur; registers global `keydown` and `mousedown` listeners to track focus outside of React's event system.
|
|
8
|
+
* No provider required; designed to be called only inside `NumberIncrement`.
|
|
9
|
+
*/
|
|
10
|
+
export function useNumberIncrement(props) {
|
|
11
|
+
const { value, onValueChange, field, min, max, forceError, step, } = props;
|
|
12
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
13
|
+
const { fieldHandle, validation, innerInputRef, wrapperRef, inputValue, onInputValueChange, } = useFieldInput(field, fields.number, { value, onValueChange });
|
|
14
|
+
const innerWrapperRef = useRef(null);
|
|
15
|
+
const hasValue = TypeGuards.isString(inputValue)
|
|
16
|
+
? inputValue?.length > 0
|
|
17
|
+
: !TypeGuards.isNil(inputValue);
|
|
18
|
+
const hasError = validation?.showError || !!forceError;
|
|
19
|
+
const errorMessage = validation?.message || forceError;
|
|
20
|
+
const incrementDisabled = useMemo(() => {
|
|
21
|
+
if (TypeGuards.isNumber(max) && (Number(inputValue) >= max)) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}, [inputValue]);
|
|
26
|
+
const decrementDisabled = useMemo(() => {
|
|
27
|
+
if (TypeGuards.isNumber(min) && (Number(inputValue) <= min)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}, [inputValue]);
|
|
32
|
+
const handleChange = useCallback((action) => {
|
|
33
|
+
if (action === 'increment' && !incrementDisabled) {
|
|
34
|
+
const newValue = Number(inputValue || min) + step;
|
|
35
|
+
onInputValueChange(newValue);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
else if (action === 'decrement' && !decrementDisabled) {
|
|
39
|
+
const newValue = Number(inputValue || min) - step;
|
|
40
|
+
onInputValueChange(newValue);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
validation?.onInputBlurred?.();
|
|
44
|
+
}, [validation?.onInputBlurred, inputValue]);
|
|
45
|
+
const handleBlur = useCallback(() => {
|
|
46
|
+
if (TypeGuards.isNumber(max) && (inputValue >= max)) {
|
|
47
|
+
onInputValueChange(max);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
else if (TypeGuards.isNumber(min) && (inputValue <= min) || !inputValue) {
|
|
51
|
+
onInputValueChange(min);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
validation?.onInputBlurred?.();
|
|
55
|
+
}, [validation?.onInputBlurred, inputValue]);
|
|
56
|
+
const handleFocus = useCallback(() => {
|
|
57
|
+
setIsFocused(true);
|
|
58
|
+
}, []);
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
function handleKeyboardEvent(event) {
|
|
61
|
+
if (!isFocused)
|
|
62
|
+
return;
|
|
63
|
+
if (event.keyCode === 39 || event.key === 'ArrowRight') {
|
|
64
|
+
handleChange('increment');
|
|
65
|
+
}
|
|
66
|
+
else if (event.keyCode === 37 || event.key === 'ArrowLeft') {
|
|
67
|
+
handleChange('decrement');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
document.addEventListener('keydown', handleKeyboardEvent);
|
|
71
|
+
return () => {
|
|
72
|
+
document.removeEventListener('keydown', handleKeyboardEvent);
|
|
73
|
+
};
|
|
74
|
+
}, [handleChange, isFocused]);
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
function handleClickOutside(event) {
|
|
77
|
+
if (innerWrapperRef.current && !innerWrapperRef.current.contains(event.target)) {
|
|
78
|
+
setIsFocused(false);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
82
|
+
return () => {
|
|
83
|
+
document.removeEventListener('mousedown', handleClickOutside);
|
|
84
|
+
};
|
|
85
|
+
}, [innerWrapperRef]);
|
|
86
|
+
const handleChangeInput = (values) => {
|
|
87
|
+
const { floatValue } = values;
|
|
88
|
+
onInputValueChange(Number(floatValue));
|
|
89
|
+
};
|
|
90
|
+
const onPressInnerWrapper = () => {
|
|
91
|
+
setIsFocused(true);
|
|
92
|
+
innerInputRef.current?.focus?.();
|
|
93
|
+
};
|
|
94
|
+
return {
|
|
95
|
+
hasValue,
|
|
96
|
+
hasError,
|
|
97
|
+
errorMessage,
|
|
98
|
+
inputValue: inputValue || min,
|
|
99
|
+
isFocused,
|
|
100
|
+
incrementDisabled,
|
|
101
|
+
decrementDisabled,
|
|
102
|
+
innerInputRef,
|
|
103
|
+
innerWrapperRef,
|
|
104
|
+
handleBlur,
|
|
105
|
+
handleFocus,
|
|
106
|
+
handleChange,
|
|
107
|
+
handleChangeInput,
|
|
108
|
+
onPressInnerWrapper,
|
|
109
|
+
fieldHandle,
|
|
110
|
+
wrapperRef,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=useNumberIncrement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNumberIncrement.js","sourceRoot":"","sources":["../../../src/components/NumberIncrement/useNumberIncrement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { Touchable } from '../Touchable';
|
|
3
|
+
import { View } from '../View';
|
|
4
|
+
import { usePopState } from '../../lib';
|
|
5
|
+
import { WebStyleRegistry } from '../../lib/WebStyleRegistry';
|
|
6
|
+
import { useStylesFor } from '../../lib/hooks/useStylesFor';
|
|
7
|
+
export * from './styles';
|
|
8
|
+
export * from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Visually hidden overlay that transitions to visible state and registers a
|
|
11
|
+
* browser pop-state entry so the back button can dismiss it.
|
|
12
|
+
* Renders as `Touchable` when `onPress` or `onClick` is provided, otherwise as `View`.
|
|
13
|
+
* Uses: `Touchable`, `View`, `useStylesFor`, `WebStyleRegistry`
|
|
14
|
+
*/
|
|
15
|
+
export const Overlay = (overlayProps) => {
|
|
16
|
+
const { visible, style, ...props } = {
|
|
17
|
+
...Overlay.defaultProps,
|
|
18
|
+
...overlayProps,
|
|
19
|
+
};
|
|
20
|
+
const styles = useStylesFor(Overlay.styleRegistryName, style);
|
|
21
|
+
usePopState(visible, props?.onPress);
|
|
22
|
+
const isPressable = !!props?.onClick || !!props?.onPress;
|
|
23
|
+
if (isPressable) {
|
|
24
|
+
return (_jsx(Touchable, { ...props, style: [
|
|
25
|
+
{ transition: 'opacity 0.2s ease' },
|
|
26
|
+
styles.wrapper,
|
|
27
|
+
visible ? styles['wrapper:visible'] : null,
|
|
28
|
+
] }));
|
|
29
|
+
}
|
|
30
|
+
return (_jsx(View, { ...props, style: [
|
|
31
|
+
{ transition: 'opacity 0.2s ease' },
|
|
32
|
+
styles.wrapper,
|
|
33
|
+
visible ? styles['wrapper:visible'] : null,
|
|
34
|
+
] }));
|
|
35
|
+
};
|
|
36
|
+
Overlay.styleRegistryName = 'Overlay';
|
|
37
|
+
Overlay.elements = ['wrapper'];
|
|
38
|
+
Overlay.rootElement = 'wrapper';
|
|
39
|
+
Overlay.withVariantTypes = (styles) => {
|
|
40
|
+
return Overlay;
|
|
41
|
+
};
|
|
42
|
+
Overlay.defaultProps = {};
|
|
43
|
+
WebStyleRegistry.registerComponent(Overlay);
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Overlay/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAG3D,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AAEvB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,YAA0B,EAAE,EAAE;IACpD,MAAM,EACJ,OAAO,EACP,KAAK,EACL,GAAG,KAAK,EACT,GAAG;QACF,GAAG,OAAO,CAAC,YAAY;QACvB,GAAG,YAAY;KAChB,CAAA;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IAE7D,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAEpC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAA;IAExD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CACL,KAAC,SAAS,OACJ,KAAK,EACT,KAAK,EAAE;gBACL,EAAE,UAAU,EAAE,mBAAmB,EAAE;gBACnC,MAAM,CAAC,OAAO;gBACd,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;aAC3C,GACD,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,IAAI,OACC,KAAK,EACT,KAAK,EAAE;YACL,EAAE,UAAU,EAAE,mBAAmB,EAAE;YACnC,MAAM,CAAC,OAAO;YACd,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3C,GACD,CACH,CAAA;AACH,CAAC,CAAA;AAED,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAA;AACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAA;AAC9B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAA;AAE/B,OAAO,CAAC,gBAAgB,GAAG,CAAsB,MAAS,EAAE,EAAE;IAC5D,OAAO,OAA6E,CAAA;AACtF,CAAC,CAAA;AAED,OAAO,CAAC,YAAY,GAAG,EAA2B,CAAA;AAElD,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/Overlay/styles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Overlay/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { TypeGuards } from '@codeleap/types';
|
|
3
|
+
import { View } from '../View';
|
|
4
|
+
import { Button } from '../Button';
|
|
5
|
+
import { useMediaQuery, usePagination, useStylesFor, WebStyleRegistry } from '../../lib';
|
|
6
|
+
import { useCompositionStyles, useTheme } from '@codeleap/styles';
|
|
7
|
+
export * from './styles';
|
|
8
|
+
export * from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Numbered page-navigation control with optional previous/next arrow buttons and responsive abbreviation of middle pages.
|
|
11
|
+
* Abbreviation behaviour and mobile layout are auto-detected from the `tabletSmall` theme breakpoint but can be overridden via props.
|
|
12
|
+
* Uses: `Button`
|
|
13
|
+
*/
|
|
14
|
+
export const PaginationButtons = (props) => {
|
|
15
|
+
const allProps = {
|
|
16
|
+
...PaginationButtons.defaultProps,
|
|
17
|
+
...props,
|
|
18
|
+
};
|
|
19
|
+
const { shouldAbbreviate, displayLeftArrow, displayRightArrow, disabled, style, itemProps, controlLeftIconName, controlRightIconName, leftArrowButtonProps, rightArrowButtonProps, abbreviationSymbol, isMobile, ...paginationProps } = allProps;
|
|
20
|
+
const themeMedia = useTheme(store => store?.theme?.media);
|
|
21
|
+
const { boundaries = 2 } = paginationProps;
|
|
22
|
+
const query = themeMedia?.down('tabletSmall');
|
|
23
|
+
const _isMobile = useMediaQuery(query);
|
|
24
|
+
const isMobileQuery = TypeGuards.isBoolean(isMobile) ? isMobile : _isMobile;
|
|
25
|
+
const centeredElementIndex = isMobileQuery ? 3 : boundaries + 1;
|
|
26
|
+
const { range, first, next, previous, setPage, page, status, } = usePagination({
|
|
27
|
+
abbreviationSymbol,
|
|
28
|
+
isMobile: isMobileQuery,
|
|
29
|
+
displayLeftArrow,
|
|
30
|
+
displayRightArrow,
|
|
31
|
+
shouldAbbreviate,
|
|
32
|
+
...paginationProps,
|
|
33
|
+
});
|
|
34
|
+
const styles = useStylesFor(PaginationButtons.styleRegistryName, style);
|
|
35
|
+
const compositionStyles = useCompositionStyles(['button', 'arrowLeftButton', 'arrowRightButton'], styles);
|
|
36
|
+
const fetchPreviousPage = () => {
|
|
37
|
+
props?.onFetchPreviousPage?.();
|
|
38
|
+
previous?.();
|
|
39
|
+
};
|
|
40
|
+
const fetchNextPage = () => {
|
|
41
|
+
props?.onFetchNextPage?.();
|
|
42
|
+
next?.();
|
|
43
|
+
};
|
|
44
|
+
const fetchPage = (page) => {
|
|
45
|
+
setPage?.(page);
|
|
46
|
+
};
|
|
47
|
+
const onPressItem = ({ item, isArrowLeft, isArrowRight }) => {
|
|
48
|
+
if (item === abbreviationSymbol) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
if (isArrowLeft) {
|
|
52
|
+
if (displayLeftArrow) {
|
|
53
|
+
return fetchPreviousPage();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return first();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (displayRightArrow && isArrowRight) {
|
|
60
|
+
return fetchNextPage();
|
|
61
|
+
}
|
|
62
|
+
props?.onPressItem?.(item);
|
|
63
|
+
fetchPage(Number(item));
|
|
64
|
+
};
|
|
65
|
+
return (_jsxs(View, { style: styles.wrapper, children: [displayLeftArrow ? (_jsx(Button, { icon: controlLeftIconName, onPress: () => onPressItem({ item: null, isArrowLeft: true, isArrowRight: false }), ...leftArrowButtonProps, style: compositionStyles.arrowLeftButton })) : null, range?.map?.((item, index) => {
|
|
66
|
+
if (props?.renderItem) {
|
|
67
|
+
return props?.renderItem?.(item, index);
|
|
68
|
+
}
|
|
69
|
+
let selected = null;
|
|
70
|
+
switch (status) {
|
|
71
|
+
case 'initial':
|
|
72
|
+
selected = page === index + 1;
|
|
73
|
+
break;
|
|
74
|
+
case 'abreviated':
|
|
75
|
+
selected = index === centeredElementIndex - 1;
|
|
76
|
+
break;
|
|
77
|
+
case 'end':
|
|
78
|
+
selected = page - (Number(item) - index) === index;
|
|
79
|
+
}
|
|
80
|
+
return (_jsx(Button, { text: String(item), selected: selected, onPress: () => onPressItem({ item, isArrowLeft: false, isArrowRight: false }), disabled: disabled, ...itemProps, style: compositionStyles.button }));
|
|
81
|
+
}), displayRightArrow ? (_jsx(Button, { icon: controlRightIconName, onPress: () => onPressItem({ item: null, isArrowLeft: false, isArrowRight: true }), ...rightArrowButtonProps, style: compositionStyles.arrowRightButton })) : null] }));
|
|
82
|
+
};
|
|
83
|
+
PaginationButtons.styleRegistryName = 'PaginationButtons';
|
|
84
|
+
PaginationButtons.elements = ['wrapper', 'button', 'arrowLeftButton', 'arrowRightButton'];
|
|
85
|
+
PaginationButtons.rootElement = 'wrapper';
|
|
86
|
+
PaginationButtons.withVariantTypes = (styles) => {
|
|
87
|
+
return PaginationButtons;
|
|
88
|
+
};
|
|
89
|
+
PaginationButtons.defaultProps = {
|
|
90
|
+
shouldAbbreviate: true,
|
|
91
|
+
displayLeftArrow: true,
|
|
92
|
+
displayRightArrow: true,
|
|
93
|
+
disabled: false,
|
|
94
|
+
isMobile: null,
|
|
95
|
+
abbreviationSymbol: '...',
|
|
96
|
+
controlLeftIconName: 'chevron-left',
|
|
97
|
+
controlRightIconName: 'chevron-right',
|
|
98
|
+
};
|
|
99
|
+
WebStyleRegistry.registerComponent(PaginationButtons);
|
|
100
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PaginationButtons/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/PaginationButtons/styles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/PaginationButtons/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { TypeGuards } from '@codeleap/types';
|
|
3
|
+
import { ActivityIndicator } from '../ActivityIndicator';
|
|
4
|
+
import { Text } from '../Text';
|
|
5
|
+
import { View } from '../View';
|
|
6
|
+
import { useStylesFor } from '../../lib/hooks/useStylesFor';
|
|
7
|
+
import { WebStyleRegistry } from '../../lib/WebStyleRegistry';
|
|
8
|
+
import { useNestedStylesByKey } from '@codeleap/styles';
|
|
9
|
+
export * from './styles';
|
|
10
|
+
export * from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Status indicator placed at the bottom of a paginated or infinite-scroll list — shows a spinner while fetching, a "no more items" message when exhausted, or nothing otherwise.
|
|
13
|
+
* Uses: `ActivityIndicator`, `Text`
|
|
14
|
+
*/
|
|
15
|
+
export const PaginationIndicator = (props) => {
|
|
16
|
+
const { hasMore, isFetching, noMoreItemsText, activityIndicator, style, indicatorProps, debugName, } = {
|
|
17
|
+
...PaginationIndicator.defaultProps,
|
|
18
|
+
...props,
|
|
19
|
+
};
|
|
20
|
+
const styles = useStylesFor(PaginationIndicator.styleRegistryName, style);
|
|
21
|
+
const loaderStyles = useNestedStylesByKey('loader', styles);
|
|
22
|
+
if (isFetching) {
|
|
23
|
+
return activityIndicator || (_jsx(View, { style: styles.wrapper, children: _jsx(ActivityIndicator, { debugName: debugName, ...indicatorProps, style: loaderStyles }) }));
|
|
24
|
+
}
|
|
25
|
+
if (!hasMore) {
|
|
26
|
+
if (TypeGuards.isString(noMoreItemsText) || TypeGuards.isNumber(noMoreItemsText)) {
|
|
27
|
+
return (_jsx(View, { style: styles.wrapper, children: _jsx(Text, { debugName: debugName, style: styles.text, text: String(noMoreItemsText) }) }));
|
|
28
|
+
}
|
|
29
|
+
return noMoreItemsText;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
};
|
|
33
|
+
PaginationIndicator.styleRegistryName = 'PaginationIndicator';
|
|
34
|
+
PaginationIndicator.elements = ['wrapper', 'text', 'loader'];
|
|
35
|
+
PaginationIndicator.rootElement = 'wrapper';
|
|
36
|
+
PaginationIndicator.withVariantTypes = (styles) => {
|
|
37
|
+
return PaginationIndicator;
|
|
38
|
+
};
|
|
39
|
+
PaginationIndicator.defaultProps = {};
|
|
40
|
+
WebStyleRegistry.registerComponent(PaginationIndicator);
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PaginationIndicator/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAyC,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE9F,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AAEvB;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE;IACrE,MAAM,EACJ,OAAO,EACP,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,KAAK,EACL,cAAc,EACd,SAAS,GACV,GAAG;QACF,GAAG,mBAAmB,CAAC,YAAY;QACnC,GAAG,KAAK;KACT,CAAA;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IAEzE,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE3D,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,iBAAiB,IAAI,CAC1B,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YACzB,KAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS,KAAM,cAAc,EAAE,KAAK,EAAE,YAAY,GAAI,GAC/E,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACjF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YACzB,KAAC,IAAI,IACH,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,GAC7B,GACG,CACR,CAAA;QACH,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,mBAAmB,CAAC,iBAAiB,GAAG,qBAAqB,CAAA;AAC7D,mBAAmB,CAAC,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAC5D,mBAAmB,CAAC,WAAW,GAAG,SAAS,CAAA;AAE3C,mBAAmB,CAAC,gBAAgB,GAAG,CAAsB,MAAS,EAAE,EAAE;IACxE,OAAO,mBAAqG,CAAA;AAC9G,CAAC,CAAA;AAED,mBAAmB,CAAC,YAAY,GAAG,EAAuC,CAAA;AAE1E,gBAAgB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/PaginationIndicator/styles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/PaginationIndicator/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { motion } from 'motion/react';
|
|
3
|
+
import { View } from '../../components';
|
|
4
|
+
import { WebStyleRegistry } from '../../../lib/WebStyleRegistry';
|
|
5
|
+
import { mergeStyles } from '@codeleap/styles';
|
|
6
|
+
import { useStylesFor } from '../../../lib/hooks/useStylesFor';
|
|
7
|
+
/**
|
|
8
|
+
* Horizontal progress bar made up of N discrete pill segments.
|
|
9
|
+
* Active segments (index < `progress`) receive `styles.segmentActive` merged on top of `styles.segment`.
|
|
10
|
+
* When `animated` is true each active segment fades in with a staggered delay.
|
|
11
|
+
*/
|
|
12
|
+
export const ProgressBarSegmented = (props) => {
|
|
13
|
+
const { progress, segments, style, debugName, animated, animatedProps, staggerDelay, ...rest } = {
|
|
14
|
+
...ProgressBarSegmented.defaultProps,
|
|
15
|
+
...props,
|
|
16
|
+
};
|
|
17
|
+
const styles = useStylesFor(ProgressBarSegmented.styleRegistryName, style);
|
|
18
|
+
const SegmentComponent = animated ? motion.div : 'div';
|
|
19
|
+
return (_jsx(View, { debugName: debugName, ...rest, style: styles.wrapper, children: Array.from({ length: segments }, (_, i) => {
|
|
20
|
+
const isActive = i < progress;
|
|
21
|
+
return (_jsx(SegmentComponent, { css: mergeStyles([styles.segment, isActive ? styles.segmentActive : null]), animate: animated ? { opacity: isActive ? 1 : 0.4 } : undefined, initial: animated ? { opacity: 0.4 } : undefined, transition: animated ? { delay: isActive ? i * staggerDelay : 0, duration: 0.2 } : undefined, ...(animated ? animatedProps : {}) }, i));
|
|
22
|
+
}) }));
|
|
23
|
+
};
|
|
24
|
+
ProgressBarSegmented.styleRegistryName = 'ProgressBarSegmented';
|
|
25
|
+
ProgressBarSegmented.elements = ['wrapper', 'segment', 'segmentActive'];
|
|
26
|
+
ProgressBarSegmented.rootElement = 'wrapper';
|
|
27
|
+
ProgressBarSegmented.withVariantTypes = (styles) => {
|
|
28
|
+
return ProgressBarSegmented;
|
|
29
|
+
};
|
|
30
|
+
ProgressBarSegmented.defaultProps = {
|
|
31
|
+
progress: 0,
|
|
32
|
+
segments: 5,
|
|
33
|
+
animated: true,
|
|
34
|
+
staggerDelay: 0.05,
|
|
35
|
+
};
|
|
36
|
+
WebStyleRegistry.registerComponent(ProgressBarSegmented);
|
|
37
|
+
//# sourceMappingURL=Segmented.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Segmented.js","sourceRoot":"","sources":["../../../../src/components/Progress/Bar/Segmented.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAmB,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE;IACvE,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,GAAG,IAAI,EACR,GAAG;QACF,GAAG,oBAAoB,CAAC,YAAY;QACpC,GAAG,KAAK;KACT,CAAA;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IAE1E,MAAM,gBAAgB,GAAQ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA;IAE3D,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,SAAS,KAAM,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,YACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAA;YAC7B,OAAO,CACL,KAAC,gBAAgB,IAEf,GAAG,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAC1E,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,EAC/D,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,EAChD,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,KACxF,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAL9B,CAAC,CAMN,CACH,CAAA;QACH,CAAC,CAAC,GACG,CACR,CAAA;AACH,CAAC,CAAA;AAED,oBAAoB,CAAC,iBAAiB,GAAG,sBAAsB,CAAA;AAC/D,oBAAoB,CAAC,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;AACvE,oBAAoB,CAAC,WAAW,GAAG,SAAS,CAAA;AAE5C,oBAAoB,CAAC,gBAAgB,GAAG,CAAsB,MAAS,EAAE,EAAE;IACzE,OAAO,oBAAuG,CAAA;AAChH,CAAC,CAAA;AAED,oBAAoB,CAAC,YAAY,GAAG;IAClC,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,IAAI;CACmB,CAAA;AAEvC,gBAAgB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { TypeGuards } from '@codeleap/types';
|
|
3
|
+
import { motion } from 'motion/react';
|
|
4
|
+
import { Icon, Text, View } from '../../components';
|
|
5
|
+
import { formatProgress as _formatProgress } from '../utils';
|
|
6
|
+
import { WebStyleRegistry } from '../../../lib/WebStyleRegistry';
|
|
7
|
+
import { mergeStyles } from '@codeleap/styles';
|
|
8
|
+
import { useStylesFor } from '../../../lib/hooks/useStylesFor';
|
|
9
|
+
import { ProgressBarSegmented } from './Segmented';
|
|
10
|
+
export * from './types';
|
|
11
|
+
export * from './styles';
|
|
12
|
+
/**
|
|
13
|
+
* Horizontal progress bar with optional left/right icons and labels.
|
|
14
|
+
* The indicator fills via a `scaleX` transform animated with Framer Motion when `animated` is true.
|
|
15
|
+
* Uses: `Icon`, `Text`
|
|
16
|
+
*/
|
|
17
|
+
export const ProgressBar = (props) => {
|
|
18
|
+
const { progress, style, debugName, formatProgress, showProgress, animated, animatedProps, leftIcon, leftIconProps, rightIcon, rightIconProps, text, textProps, leftText, leftTextProps, rightText, rightTextProps, ...rest } = {
|
|
19
|
+
...ProgressBar.defaultProps,
|
|
20
|
+
...props,
|
|
21
|
+
};
|
|
22
|
+
const styles = useStylesFor(ProgressBar.styleRegistryName, style);
|
|
23
|
+
const leftIconStyles = mergeStyles([styles.icon, styles.leftIcon]);
|
|
24
|
+
const rightIconStyles = mergeStyles([styles.icon, styles.rightIcon]);
|
|
25
|
+
const leftTextStyles = mergeStyles([styles.text, styles.leftText]);
|
|
26
|
+
const rightTextStyles = mergeStyles([styles.text, styles.rightText]);
|
|
27
|
+
const IndicatorComponent = animated ? motion.div : 'div';
|
|
28
|
+
return (_jsxs(View, { debugName: debugName, ...rest, style: styles.wrapper, children: [!TypeGuards.isNil(leftIcon) ? (_jsx(Icon, { icon: leftIcon, debugName: `leftIcon-${debugName}`, ...leftIconProps, style: leftIconStyles })) : null, TypeGuards.isString(leftText) ? (_jsx(Text, { text: leftText, ...leftTextProps, style: leftTextStyles })) : leftText, _jsx("div", { css: styles.track, role: 'progressbar', "aria-valuenow": progress, "aria-valuemin": 0, "aria-valuemax": 100, children: _jsx(IndicatorComponent, { css: styles.indicator, style: { transformOrigin: 'left' }, animate: animated ? { scaleX: progress / 100 } : undefined, initial: animated ? { scaleX: 0 } : undefined, transition: animated ? { duration: 0.6, ease: [0.65, 0, 0.35, 1] } : undefined, ...(animated ? animatedProps : {}) }) }), TypeGuards.isString(text) || showProgress ? (_jsx(Text, { text: showProgress ? formatProgress(progress) : text, ...textProps, style: styles.text })) : text, !TypeGuards.isNil(rightIcon) ? (_jsx(Icon, { icon: rightIcon, debugName: `rightIcon-${debugName}`, ...rightIconProps, style: rightIconStyles })) : null, TypeGuards.isString(rightText) ? (_jsx(Text, { text: rightText, ...rightTextProps, style: rightTextStyles })) : rightText] }));
|
|
29
|
+
};
|
|
30
|
+
ProgressBar.styleRegistryName = 'ProgressBar';
|
|
31
|
+
ProgressBar.elements = ['wrapper', 'track', 'indicator', 'text', 'icon', 'leftIcon', 'leftText', 'rightIcon', 'rightText'];
|
|
32
|
+
ProgressBar.rootElement = 'wrapper';
|
|
33
|
+
ProgressBar.withVariantTypes = (styles) => {
|
|
34
|
+
return ProgressBar;
|
|
35
|
+
};
|
|
36
|
+
ProgressBar.defaultProps = {
|
|
37
|
+
progress: 0,
|
|
38
|
+
showProgress: false,
|
|
39
|
+
formatProgress: _formatProgress,
|
|
40
|
+
animated: true,
|
|
41
|
+
};
|
|
42
|
+
ProgressBar.Segmented = ProgressBarSegmented;
|
|
43
|
+
WebStyleRegistry.registerComponent(ProgressBar);
|
|
44
|
+
//# sourceMappingURL=index.js.map
|