@quen-ui/components 0.0.14 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/Accordion/Accordion.cjs.js +88 -0
- package/dist/Accordion/Accordion.d.ts +3 -0
- package/dist/Accordion/Accordion.es.js +89 -0
- package/dist/Accordion/AccordionGroup.cjs.js +82 -0
- package/dist/Accordion/AccordionGroup.d.ts +12 -0
- package/dist/Accordion/AccordionGroup.es.js +82 -0
- package/dist/Accordion/AccordionItem.cjs.js +71 -0
- package/dist/Accordion/AccordionItem.d.ts +3 -0
- package/dist/Accordion/AccordionItem.es.js +72 -0
- package/dist/Accordion/helpers.cjs.js +24 -0
- package/dist/Accordion/helpers.d.ts +25 -0
- package/dist/Accordion/helpers.es.js +24 -0
- package/dist/Accordion/index.cjs.js +7 -0
- package/dist/Accordion/index.d.ts +8 -0
- package/dist/Accordion/index.es.js +7 -0
- package/dist/Accordion/styles.cjs.js +97 -0
- package/dist/Accordion/styles.d.ts +23 -0
- package/dist/Accordion/styles.es.js +97 -0
- package/dist/Accordion/types.d.ts +142 -0
- package/dist/Accordion/useAccordionState.cjs.js +34 -0
- package/dist/Accordion/useAccordionState.d.ts +12 -0
- package/dist/Accordion/useAccordionState.es.js +34 -0
- package/dist/Alert/Alert.cjs.js +1 -1
- package/dist/Alert/Alert.es.js +1 -1
- package/dist/Alert/styles.cjs.js +14 -10
- package/dist/Alert/styles.es.js +14 -10
- package/dist/Avatar/styles.cjs.js +16 -11
- package/dist/Avatar/styles.es.js +16 -11
- package/dist/Badge/styles.cjs.js +7 -7
- package/dist/Badge/styles.es.js +7 -7
- package/dist/Breadcrumbs/BreadcrumbItem.cjs.js +6 -6
- package/dist/Breadcrumbs/BreadcrumbItem.es.js +6 -6
- package/dist/Breadcrumbs/Breadcrumbs.cjs.js +2 -3
- package/dist/Breadcrumbs/Breadcrumbs.es.js +2 -3
- package/dist/Breadcrumbs/styles.cjs.js +15 -15
- package/dist/Breadcrumbs/styles.es.js +15 -15
- package/dist/Button/Button.cjs.js +3 -3
- package/dist/Button/Button.es.js +6 -6
- package/dist/Button/index.d.ts +1 -1
- package/dist/Button/styles.cjs.js +49 -54
- package/dist/Button/styles.es.js +50 -55
- package/dist/Button/types.d.ts +2 -3
- package/dist/Calendar/Calendar.cjs.js +200 -0
- package/dist/Calendar/Calendar.d.ts +4 -0
- package/dist/Calendar/Calendar.es.js +201 -0
- package/dist/Calendar/DaysLevel.cjs.js +93 -0
- package/dist/Calendar/DaysLevel.d.ts +3 -0
- package/dist/Calendar/DaysLevel.es.js +94 -0
- package/dist/Calendar/MonthLevel.cjs.js +23 -0
- package/dist/Calendar/MonthLevel.d.ts +3 -0
- package/dist/Calendar/MonthLevel.es.js +24 -0
- package/dist/Calendar/YearsLevel.cjs.js +24 -0
- package/dist/Calendar/YearsLevel.d.ts +3 -0
- package/dist/Calendar/YearsLevel.es.js +25 -0
- package/dist/Calendar/helpers.cjs.js +60 -0
- package/dist/Calendar/helpers.d.ts +9 -0
- package/dist/Calendar/helpers.es.js +60 -0
- package/dist/Calendar/index.d.ts +2 -0
- package/dist/Calendar/styles.cjs.js +116 -0
- package/dist/Calendar/styles.d.ts +16 -0
- package/dist/Calendar/styles.es.js +116 -0
- package/dist/Calendar/types.d.ts +115 -0
- package/dist/Card/Card.cjs.js +4 -2
- package/dist/Card/Card.d.ts +1 -1
- package/dist/Card/Card.es.js +4 -2
- package/dist/Card/styles.cjs.js +2 -2
- package/dist/Card/styles.es.js +2 -2
- package/dist/Card/types.d.ts +2 -0
- package/dist/Checkbox/Checkbox.cjs.js +1 -1
- package/dist/Checkbox/Checkbox.es.js +1 -1
- package/dist/Checkbox/CheckboxGroup.cjs.js +22 -25
- package/dist/Checkbox/CheckboxGroup.es.js +22 -25
- package/dist/Checkbox/styles.cjs.js +24 -23
- package/dist/Checkbox/styles.es.js +24 -23
- package/dist/ColorPicker/ColorPicker.cjs.js +404 -0
- package/dist/ColorPicker/ColorPicker.d.ts +3 -0
- package/dist/ColorPicker/ColorPicker.es.js +405 -0
- package/dist/ColorPicker/InputColor.cjs.js +94 -0
- package/dist/ColorPicker/InputColor.d.ts +3 -0
- package/dist/ColorPicker/InputColor.es.js +95 -0
- package/dist/ColorPicker/InputsColor.cjs.js +177 -0
- package/dist/ColorPicker/InputsColor.d.ts +3 -0
- package/dist/ColorPicker/InputsColor.es.js +178 -0
- package/dist/ColorPicker/helpers.cjs.js +32 -0
- package/dist/ColorPicker/helpers.d.ts +4 -0
- package/dist/ColorPicker/helpers.es.js +32 -0
- package/dist/ColorPicker/index.cjs.js +7 -0
- package/dist/ColorPicker/index.d.ts +8 -0
- package/dist/ColorPicker/index.es.js +7 -0
- package/dist/ColorPicker/styles.cjs.js +234 -0
- package/dist/ColorPicker/styles.d.ts +43 -0
- package/dist/ColorPicker/styles.es.js +234 -0
- package/dist/ColorPicker/types.d.ts +56 -0
- package/dist/Divider/styles.cjs.js +12 -10
- package/dist/Divider/styles.es.js +12 -10
- package/dist/Drawer/Drawer.cjs.js +7 -3
- package/dist/Drawer/Drawer.es.js +5 -1
- package/dist/Drawer/styles.cjs.js +4 -5
- package/dist/Drawer/styles.es.js +4 -5
- package/dist/Dropdown/Dropdown.cjs.js +33 -4
- package/dist/Dropdown/Dropdown.d.ts +2 -2
- package/dist/Dropdown/Dropdown.es.js +32 -3
- package/dist/Dropdown/DropdownItem.cjs.js +4 -5
- package/dist/Dropdown/DropdownItem.es.js +4 -5
- package/dist/Dropdown/DropdownList.cjs.js +3 -2
- package/dist/Dropdown/DropdownList.es.js +6 -5
- package/dist/Dropdown/DropdownPortal.cjs.js +8 -5
- package/dist/Dropdown/DropdownPortal.d.ts +5 -3
- package/dist/Dropdown/DropdownPortal.es.js +9 -6
- package/dist/Dropdown/helpers.cjs.js +1 -1
- package/dist/Dropdown/helpers.es.js +1 -1
- package/dist/Dropdown/styles.cjs.js +28 -27
- package/dist/Dropdown/styles.d.ts +2 -0
- package/dist/Dropdown/styles.es.js +28 -27
- package/dist/EmptyState/EmptyState.cjs.js +51 -0
- package/dist/EmptyState/EmptyState.d.ts +3 -0
- package/dist/EmptyState/EmptyState.es.js +52 -0
- package/dist/EmptyState/index.d.ts +2 -0
- package/dist/EmptyState/types.d.ts +10 -0
- package/dist/Flex/Flex.d.ts +1 -1
- package/dist/Flex/types.d.ts +1 -0
- package/dist/Form/Field.cjs.js +175 -0
- package/dist/Form/Field.d.ts +3 -0
- package/dist/Form/Field.es.js +176 -0
- package/dist/Form/FieldArray.cjs.js +24 -0
- package/dist/Form/FieldArray.d.ts +3 -0
- package/dist/Form/FieldArray.es.js +25 -0
- package/dist/Form/Form.cjs.js +69 -0
- package/dist/Form/Form.d.ts +3 -0
- package/dist/Form/Form.es.js +69 -0
- package/dist/Form/defaultValidateMessages.cjs.js +51 -0
- package/dist/Form/defaultValidateMessages.d.ts +47 -0
- package/dist/Form/defaultValidateMessages.es.js +51 -0
- package/dist/Form/helpers.cjs.js +8 -0
- package/dist/Form/helpers.d.ts +1 -0
- package/dist/Form/helpers.es.js +8 -0
- package/dist/Form/index.cjs.js +13 -0
- package/dist/Form/index.d.ts +14 -0
- package/dist/Form/index.es.js +13 -0
- package/dist/Form/types.d.ts +147 -0
- package/dist/Form/useForm.cjs.js +230 -0
- package/dist/Form/useForm.d.ts +2 -0
- package/dist/Form/useForm.es.js +230 -0
- package/dist/Form/useWatch.cjs.js +14 -0
- package/dist/Form/useWatch.d.ts +3 -0
- package/dist/Form/useWatch.es.js +14 -0
- package/dist/Highlight/Highlight.cjs.js +113 -0
- package/dist/Highlight/Highlight.d.ts +3 -0
- package/dist/Highlight/Highlight.es.js +114 -0
- package/dist/Highlight/helpers.cjs.js +147 -0
- package/dist/Highlight/helpers.d.ts +27 -0
- package/dist/Highlight/helpers.es.js +147 -0
- package/dist/Highlight/index.d.ts +2 -0
- package/dist/Highlight/styles.cjs.js +11 -0
- package/dist/Highlight/styles.d.ts +4 -0
- package/dist/Highlight/styles.es.js +11 -0
- package/dist/Highlight/types.d.ts +53 -0
- package/dist/Image/styles.cjs.js +4 -5
- package/dist/Image/styles.es.js +4 -5
- package/dist/InputBase/InputBase.cjs.js +32 -0
- package/dist/InputBase/InputBase.d.ts +4 -0
- package/dist/InputBase/InputBase.es.js +33 -0
- package/dist/InputBase/index.d.ts +2 -0
- package/dist/InputBase/styles.cjs.js +61 -0
- package/dist/InputBase/styles.d.ts +7 -0
- package/dist/InputBase/styles.es.js +61 -0
- package/dist/InputBase/types.d.ts +25 -0
- package/dist/InputDate/InputDate.cjs.js +344 -0
- package/dist/InputDate/InputDate.d.ts +4 -0
- package/dist/InputDate/InputDate.es.js +345 -0
- package/dist/InputDate/helpers.cjs.js +78 -0
- package/dist/InputDate/helpers.d.ts +5 -0
- package/dist/InputDate/helpers.es.js +78 -0
- package/dist/InputDate/index.d.ts +2 -0
- package/dist/InputDate/styles.cjs.js +35 -0
- package/dist/InputDate/styles.d.ts +5 -0
- package/dist/InputDate/styles.es.js +35 -0
- package/dist/InputDate/types.d.ts +23 -0
- package/dist/InputNumber/InputNumber.cjs.js +70 -73
- package/dist/InputNumber/InputNumber.d.ts +1 -1
- package/dist/InputNumber/InputNumber.es.js +72 -75
- package/dist/InputNumber/styles.cjs.js +20 -60
- package/dist/InputNumber/styles.d.ts +4 -8
- package/dist/InputNumber/styles.es.js +21 -61
- package/dist/InputNumber/types.d.ts +2 -18
- package/dist/Layout/Header.cjs.js +27 -23
- package/dist/Layout/Header.d.ts +1 -1
- package/dist/Layout/Header.es.js +28 -24
- package/dist/Layout/Sidebar.cjs.js +24 -25
- package/dist/Layout/Sidebar.d.ts +1 -1
- package/dist/Layout/Sidebar.es.js +25 -26
- package/dist/Layout/index.d.ts +2 -2
- package/dist/Layout/styles.cjs.js +16 -52
- package/dist/Layout/styles.d.ts +2 -15
- package/dist/Layout/styles.es.js +16 -52
- package/dist/Layout/types.d.ts +7 -22
- package/dist/Loader/styles.cjs.js +5 -4
- package/dist/Loader/styles.es.js +5 -4
- package/dist/LoadingOverlay/LoadingOverlay.cjs.js +22 -0
- package/dist/LoadingOverlay/LoadingOverlay.d.ts +3 -0
- package/dist/LoadingOverlay/LoadingOverlay.es.js +23 -0
- package/dist/LoadingOverlay/index.d.ts +2 -0
- package/dist/LoadingOverlay/styles.cjs.js +28 -0
- package/dist/LoadingOverlay/styles.d.ts +5 -0
- package/dist/LoadingOverlay/styles.es.js +28 -0
- package/dist/LoadingOverlay/types.d.ts +16 -0
- package/dist/Menu/Menu.cjs.js +42 -0
- package/dist/Menu/Menu.d.ts +3 -0
- package/dist/Menu/Menu.es.js +43 -0
- package/dist/Menu/MenuItem.cjs.js +112 -0
- package/dist/Menu/MenuItem.d.ts +3 -0
- package/dist/Menu/MenuItem.es.js +113 -0
- package/dist/Menu/helpers.cjs.js +20 -0
- package/dist/Menu/helpers.d.ts +17 -0
- package/dist/Menu/helpers.es.js +20 -0
- package/dist/Menu/index.d.ts +2 -0
- package/dist/Menu/styles.cjs.js +98 -0
- package/dist/Menu/styles.d.ts +16 -0
- package/dist/Menu/styles.es.js +98 -0
- package/dist/Menu/types.d.ts +85 -0
- package/dist/Modal/Modal.cjs.js +17 -7
- package/dist/Modal/Modal.d.ts +1 -1
- package/dist/Modal/Modal.es.js +16 -6
- package/dist/Modal/styles.cjs.js +39 -9
- package/dist/Modal/styles.d.ts +4 -0
- package/dist/Modal/styles.es.js +40 -10
- package/dist/Modal/types.d.ts +2 -0
- package/dist/Notification/Notification.cjs.js +3 -3
- package/dist/Notification/Notification.es.js +3 -3
- package/dist/Notification/NotificationInstance.cjs.js +10 -17
- package/dist/Notification/NotificationInstance.es.js +8 -15
- package/dist/Notification/NotificationsStore.cjs.js +2 -7
- package/dist/Notification/NotificationsStore.es.js +2 -7
- package/dist/Notification/styles.cjs.js +6 -6
- package/dist/Notification/styles.es.js +6 -6
- package/dist/Pagination/Pagination.cjs.js +114 -0
- package/dist/Pagination/Pagination.d.ts +3 -0
- package/dist/Pagination/Pagination.es.js +115 -0
- package/dist/Pagination/index.d.ts +2 -0
- package/dist/Pagination/styles.cjs.js +54 -0
- package/dist/Pagination/styles.d.ts +2 -0
- package/dist/Pagination/styles.es.js +54 -0
- package/dist/Pagination/types.d.ts +49 -0
- package/dist/Progress/Progress.cjs.js +1 -1
- package/dist/Progress/Progress.es.js +1 -1
- package/dist/Progress/styles.cjs.js +5 -50
- package/dist/Progress/styles.es.js +5 -50
- package/dist/Progress/types.d.ts +1 -0
- package/dist/RadioButton/RadioButton.cjs.js +1 -1
- package/dist/RadioButton/RadioButton.es.js +1 -1
- package/dist/RadioButton/RadioButtonGroup.cjs.js +19 -22
- package/dist/RadioButton/RadioButtonGroup.es.js +19 -22
- package/dist/RadioButton/styles.cjs.js +11 -13
- package/dist/RadioButton/styles.es.js +11 -13
- package/dist/RichTextEditor/RichTextEditor.cjs.js +289 -0
- package/dist/RichTextEditor/RichTextEditor.d.ts +4 -0
- package/dist/RichTextEditor/RichTextEditor.es.js +290 -0
- package/dist/RichTextEditor/RichTextEditorColorControl.cjs.js +38 -0
- package/dist/RichTextEditor/RichTextEditorColorControl.d.ts +3 -0
- package/dist/RichTextEditor/RichTextEditorColorControl.es.js +39 -0
- package/dist/RichTextEditor/RichTextEditorTableControl.cjs.js +62 -0
- package/dist/RichTextEditor/RichTextEditorTableControl.d.ts +3 -0
- package/dist/RichTextEditor/RichTextEditorTableControl.es.js +63 -0
- package/dist/RichTextEditor/helpers.cjs.js +151 -0
- package/dist/RichTextEditor/helpers.d.ts +10 -0
- package/dist/RichTextEditor/helpers.es.js +151 -0
- package/dist/RichTextEditor/index.d.ts +2 -0
- package/dist/RichTextEditor/plugins.cjs.js +571 -0
- package/dist/RichTextEditor/plugins.d.ts +2 -0
- package/dist/RichTextEditor/plugins.es.js +571 -0
- package/dist/RichTextEditor/styles.cjs.js +60 -0
- package/dist/RichTextEditor/styles.d.ts +7 -0
- package/dist/RichTextEditor/styles.es.js +60 -0
- package/dist/RichTextEditor/types.d.ts +79 -0
- package/dist/Select/Select.cjs.js +30 -18
- package/dist/Select/Select.es.js +30 -18
- package/dist/Select/helpers.cjs.js +1 -1
- package/dist/Select/helpers.d.ts +24 -24
- package/dist/Select/helpers.es.js +1 -1
- package/dist/Select/styles.cjs.js +91 -118
- package/dist/Select/styles.d.ts +4 -5
- package/dist/Select/styles.es.js +91 -118
- package/dist/Select/types.d.ts +3 -23
- package/dist/Select/useSelect.cjs.js +8 -14
- package/dist/Select/useSelect.d.ts +20 -20
- package/dist/Select/useSelect.es.js +8 -14
- package/dist/Skeleton/Skeleton.cjs.js +35 -0
- package/dist/Skeleton/Skeleton.d.ts +3 -0
- package/dist/Skeleton/Skeleton.es.js +36 -0
- package/dist/Skeleton/SkeletonAvatar.cjs.js +17 -0
- package/dist/Skeleton/SkeletonAvatar.d.ts +3 -0
- package/dist/Skeleton/SkeletonAvatar.es.js +18 -0
- package/dist/Skeleton/SkeletonButton.cjs.js +21 -0
- package/dist/Skeleton/SkeletonButton.d.ts +3 -0
- package/dist/Skeleton/SkeletonButton.es.js +22 -0
- package/dist/Skeleton/SkeletonCard.cjs.js +15 -0
- package/dist/Skeleton/SkeletonCard.d.ts +3 -0
- package/dist/Skeleton/SkeletonCard.es.js +16 -0
- package/dist/Skeleton/SkeletonLayout.cjs.js +60 -0
- package/dist/Skeleton/SkeletonLayout.d.ts +3 -0
- package/dist/Skeleton/SkeletonLayout.es.js +61 -0
- package/dist/Skeleton/SkeletonList.cjs.js +39 -0
- package/dist/Skeleton/SkeletonList.d.ts +3 -0
- package/dist/Skeleton/SkeletonList.es.js +40 -0
- package/dist/Skeleton/SkeletonTextBlock.cjs.js +7 -0
- package/dist/Skeleton/SkeletonTextBlock.d.ts +5 -0
- package/dist/Skeleton/SkeletonTextBlock.es.js +8 -0
- package/dist/Skeleton/index.cjs.js +17 -0
- package/dist/Skeleton/index.d.ts +18 -0
- package/dist/Skeleton/index.es.js +17 -0
- package/dist/Skeleton/styles.cjs.js +59 -0
- package/dist/Skeleton/styles.d.ts +3 -0
- package/dist/Skeleton/styles.es.js +59 -0
- package/dist/Skeleton/types.d.ts +74 -0
- package/dist/Slider/Slider.cjs.js +282 -0
- package/dist/Slider/Slider.d.ts +3 -0
- package/dist/Slider/Slider.es.js +283 -0
- package/dist/Slider/index.d.ts +2 -0
- package/dist/Slider/styles.cjs.js +156 -0
- package/dist/Slider/styles.d.ts +35 -0
- package/dist/Slider/styles.es.js +156 -0
- package/dist/Slider/types.d.ts +53 -0
- package/dist/Spoiler/Spoiler.cjs.js +62 -0
- package/dist/Spoiler/Spoiler.d.ts +3 -0
- package/dist/Spoiler/Spoiler.es.js +63 -0
- package/dist/Spoiler/index.d.ts +2 -0
- package/dist/Spoiler/styles.cjs.js +15 -0
- package/dist/Spoiler/styles.d.ts +4 -0
- package/dist/Spoiler/styles.es.js +15 -0
- package/dist/Spoiler/types.d.ts +23 -0
- package/dist/Switch/Switch.cjs.js +32 -6
- package/dist/Switch/Switch.d.ts +2 -2
- package/dist/Switch/Switch.es.js +33 -7
- package/dist/Switch/styles.cjs.js +24 -7
- package/dist/Switch/styles.d.ts +4 -0
- package/dist/Switch/styles.es.js +24 -7
- package/dist/Switch/types.d.ts +3 -0
- package/dist/Tabs/Tab.cjs.js +8 -8
- package/dist/Tabs/Tab.es.js +8 -8
- package/dist/Tabs/TabPanel.cjs.js +3 -3
- package/dist/Tabs/TabPanel.es.js +3 -3
- package/dist/Tabs/Tabs.cjs.js +5 -4
- package/dist/Tabs/Tabs.d.ts +1 -1
- package/dist/Tabs/Tabs.es.js +5 -4
- package/dist/Tabs/TabsList.cjs.js +25 -1
- package/dist/Tabs/TabsList.d.ts +2 -2
- package/dist/Tabs/TabsList.es.js +25 -1
- package/dist/Tabs/styles.cjs.js +104 -34
- package/dist/Tabs/styles.d.ts +2 -0
- package/dist/Tabs/styles.es.js +104 -34
- package/dist/Tabs/types.d.ts +7 -3
- package/dist/Tag/Tag.cjs.js +4 -1
- package/dist/Tag/Tag.d.ts +1 -1
- package/dist/Tag/Tag.es.js +4 -1
- package/dist/Tag/styles.cjs.js +14 -9
- package/dist/Tag/styles.d.ts +2 -0
- package/dist/Tag/styles.es.js +14 -9
- package/dist/Tag/types.d.ts +6 -0
- package/dist/TextField/TextField.cjs.js +57 -56
- package/dist/TextField/TextField.d.ts +1 -1
- package/dist/TextField/TextField.es.js +58 -57
- package/dist/TextField/styles.cjs.js +9 -50
- package/dist/TextField/styles.d.ts +3 -8
- package/dist/TextField/styles.es.js +10 -51
- package/dist/TextField/types.d.ts +2 -20
- package/dist/Textarea/Textarea.cjs.js +57 -56
- package/dist/Textarea/Textarea.d.ts +1 -1
- package/dist/Textarea/Textarea.es.js +58 -57
- package/dist/Textarea/styles.cjs.js +10 -62
- package/dist/Textarea/styles.d.ts +3 -8
- package/dist/Textarea/styles.es.js +12 -64
- package/dist/Textarea/types.d.ts +2 -21
- package/dist/Tooltip/Tooltip.cjs.js +3 -1
- package/dist/Tooltip/Tooltip.d.ts +1 -1
- package/dist/Tooltip/Tooltip.es.js +3 -1
- package/dist/Tooltip/types.d.ts +3 -0
- package/dist/_virtual/client.cjs.js +5 -0
- package/dist/_virtual/client.cjs2.js +4 -0
- package/dist/_virtual/client.es.js +5 -0
- package/dist/_virtual/client.es2.js +4 -0
- package/dist/_virtual/index.cjs.js +4 -0
- package/dist/_virtual/index.es.js +4 -0
- package/dist/_virtual/react-dom-client.development.cjs.js +4 -0
- package/dist/_virtual/react-dom-client.development.es.js +4 -0
- package/dist/_virtual/react-dom-client.production.cjs.js +4 -0
- package/dist/_virtual/react-dom-client.production.es.js +4 -0
- package/dist/_virtual/scheduler.development.cjs.js +4 -0
- package/dist/_virtual/scheduler.development.es.js +4 -0
- package/dist/_virtual/scheduler.production.cjs.js +4 -0
- package/dist/_virtual/scheduler.production.es.js +4 -0
- package/dist/assets/box.svg.cjs.js +21 -0
- package/dist/assets/box.svg.es.js +5 -0
- package/dist/index.d.ts +1 -50
- package/dist/message/Message.cjs.js +42 -0
- package/dist/message/Message.d.ts +3 -0
- package/dist/message/Message.es.js +43 -0
- package/dist/message/MessageContext.cjs.js +101 -0
- package/dist/message/MessageContext.d.ts +4 -0
- package/dist/message/MessageContext.es.js +101 -0
- package/dist/message/index.cjs.js +8 -0
- package/dist/message/index.d.ts +6 -0
- package/dist/message/index.es.js +8 -0
- package/dist/message/styles.cjs.js +79 -0
- package/dist/message/styles.d.ts +11 -0
- package/dist/message/styles.es.js +79 -0
- package/dist/message/types.d.ts +42 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.cjs.js +30 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/createReactComponent.es.js +31 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.cjs.js +23 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.es.js +24 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignCenter.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignCenter.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignJustified.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignJustified.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignLeft.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignLeft.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignRight.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconAlignRight.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowBackUp.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowBackUp.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowForwardUp.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowForwardUp.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBlockquote.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBlockquote.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBold.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconBold.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClearFormatting.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconClearFormatting.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH1.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH1.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH2.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconH2.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHighlight.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconHighlight.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconImageInPicture.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconImageInPicture.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconItalic.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconItalic.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconList.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconList.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconListNumbers.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconListNumbers.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStrikethrough.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconStrikethrough.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSubscript.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSubscript.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSuperscript.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconSuperscript.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTable.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTextColor.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTextColor.es.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUnderline.cjs.js +7 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconUnderline.es.js +7 -0
- package/dist/node_modules/react-dom/cjs/react-dom-client.development.cjs.js +19870 -0
- package/dist/node_modules/react-dom/cjs/react-dom-client.development.es.js +19870 -0
- package/dist/node_modules/react-dom/cjs/react-dom-client.production.cjs.js +11524 -0
- package/dist/node_modules/react-dom/cjs/react-dom-client.production.es.js +11524 -0
- package/dist/node_modules/react-dom/client.cjs.js +31 -0
- package/dist/node_modules/react-dom/client.es.js +31 -0
- package/dist/node_modules/scheduler/cjs/scheduler.development.cjs.js +264 -0
- package/dist/node_modules/scheduler/cjs/scheduler.development.es.js +264 -0
- package/dist/node_modules/scheduler/cjs/scheduler.production.cjs.js +259 -0
- package/dist/node_modules/scheduler/cjs/scheduler.production.es.js +259 -0
- package/dist/node_modules/scheduler/index.cjs.js +17 -0
- package/dist/node_modules/scheduler/index.es.js +17 -0
- package/dist/packages/components/index.cjs.js +93 -0
- package/dist/packages/components/index.es.js +93 -0
- package/dist/typography/Text/Text.es.js +3 -3
- package/dist/typography/Title/Title.cjs.js +2 -0
- package/dist/typography/Title/Title.d.ts +1 -1
- package/dist/typography/Title/Title.es.js +2 -0
- package/dist/typography/Title/styles.cjs.js +3 -0
- package/dist/typography/Title/styles.es.js +3 -0
- package/dist/typography/Title/types.d.ts +1 -0
- package/package.json +16 -13
- package/dist/index.cjs.js +0 -63
- package/dist/index.es.js +0 -63
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import styled, { keyframes, css } from "styled-components";
|
|
2
|
+
import { rgba } from "polished";
|
|
3
|
+
const pulse = keyframes`
|
|
4
|
+
0% { opacity: 1; }
|
|
5
|
+
50% { opacity: 0.4; }
|
|
6
|
+
100% { opacity: 1; }
|
|
7
|
+
`;
|
|
8
|
+
const shimmer = keyframes`
|
|
9
|
+
0% { background-position: 200% 0; }
|
|
10
|
+
100% { background-position: -200% 0; }
|
|
11
|
+
`;
|
|
12
|
+
const SkeletonStyled = styled.div.withConfig({
|
|
13
|
+
shouldForwardProp: (prop) => !["animation", "variant", "width", "height"].includes(prop)
|
|
14
|
+
})`
|
|
15
|
+
position: relative;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
background: ${({ theme }) => theme.components.Skeleton.background};
|
|
18
|
+
border-radius: 4px;
|
|
19
|
+
${({ width }) => width && css`
|
|
20
|
+
width: ${typeof width === "number" ? `${width}px` : width};
|
|
21
|
+
`}
|
|
22
|
+
${({ height }) => height && css`
|
|
23
|
+
height: ${typeof height === "number" ? `${height}px` : height};
|
|
24
|
+
`}
|
|
25
|
+
|
|
26
|
+
${({ variant }) => variant === "circle" && css`
|
|
27
|
+
border-radius: 50%;
|
|
28
|
+
`};
|
|
29
|
+
|
|
30
|
+
${({ variant }) => variant === "text" && css`
|
|
31
|
+
height: 1em;
|
|
32
|
+
border-radius: 4px;
|
|
33
|
+
`};
|
|
34
|
+
|
|
35
|
+
${({ variant }) => variant === "rounded" && css`
|
|
36
|
+
border-radius: 12px;
|
|
37
|
+
`};
|
|
38
|
+
${({ animation }) => animation === "pulse" && css`
|
|
39
|
+
animation: ${pulse} 1.5s ease-in-out infinite;
|
|
40
|
+
`};
|
|
41
|
+
|
|
42
|
+
${({ animation }) => animation === "shimmer" && css`
|
|
43
|
+
background: ${({ theme }) => css`linear-gradient(
|
|
44
|
+
90deg,
|
|
45
|
+
${theme.components.Skeleton.background} 0%,
|
|
46
|
+
${rgba(theme.components.Skeleton.background, 0.3)} 50%,
|
|
47
|
+
${theme.components.Skeleton.background} 100%
|
|
48
|
+
)`};
|
|
49
|
+
background-size: 200% 100%;
|
|
50
|
+
animation: ${shimmer} 1.6s linear infinite;
|
|
51
|
+
`}
|
|
52
|
+
`;
|
|
53
|
+
const SkeletonLineStyled = styled(SkeletonStyled)`
|
|
54
|
+
height: 1em;
|
|
55
|
+
`;
|
|
56
|
+
export {
|
|
57
|
+
SkeletonLineStyled,
|
|
58
|
+
SkeletonStyled
|
|
59
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ReactNode, CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { TQuenSize } from '../types/size';
|
|
3
|
+
import { IFlexProps } from '../Flex';
|
|
4
|
+
export type TSkeletonAnimation = "pulse" | "shimmer";
|
|
5
|
+
export type TSkeletonVariant = "text" | "circle" | "rect" | "rounded";
|
|
6
|
+
export interface ISkeletonProps {
|
|
7
|
+
/** Skeleton width */
|
|
8
|
+
width?: number | string;
|
|
9
|
+
/** Skeleton height */
|
|
10
|
+
height?: number | string;
|
|
11
|
+
/** Skeleton type */
|
|
12
|
+
variant?: TSkeletonVariant;
|
|
13
|
+
/** Animation */
|
|
14
|
+
animation?: TSkeletonAnimation;
|
|
15
|
+
/** Number of lines for variant="text" */
|
|
16
|
+
lines?: number;
|
|
17
|
+
/** Controls the skeleton/content switch */
|
|
18
|
+
loading?: boolean;
|
|
19
|
+
/** Content displayed when loading=false. */
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
/** Additional classname */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** Additional style */
|
|
24
|
+
style?: CSSProperties;
|
|
25
|
+
}
|
|
26
|
+
export interface ISkeletonButtonProps extends Omit<ISkeletonProps, "height" | "variant"> {
|
|
27
|
+
/** Button size */
|
|
28
|
+
size?: TQuenSize;
|
|
29
|
+
}
|
|
30
|
+
export type TSkeletonListProps = IFlexProps & Pick<ISkeletonProps, "loading"> & {
|
|
31
|
+
/** Count of elements */
|
|
32
|
+
count: number;
|
|
33
|
+
/** Single element skeleton template */
|
|
34
|
+
skeleton: ReactElement;
|
|
35
|
+
};
|
|
36
|
+
export interface ISkeletonLayoutSchema {
|
|
37
|
+
/** Avatar(s) in the layout */
|
|
38
|
+
avatar?: boolean | number | {
|
|
39
|
+
size: TQuenSize;
|
|
40
|
+
};
|
|
41
|
+
/** Heading lines */
|
|
42
|
+
title?: boolean | number;
|
|
43
|
+
/** Number of lines of text */
|
|
44
|
+
text?: number;
|
|
45
|
+
/** Buttons */
|
|
46
|
+
button?: boolean | number | {
|
|
47
|
+
width: number;
|
|
48
|
+
size: TQuenSize;
|
|
49
|
+
};
|
|
50
|
+
/** User node */
|
|
51
|
+
custom?: ReactNode;
|
|
52
|
+
}
|
|
53
|
+
export interface ISkeletonLayoutProps {
|
|
54
|
+
/** Layout structure */
|
|
55
|
+
schema?: ISkeletonLayoutSchema;
|
|
56
|
+
/** Content after loading */
|
|
57
|
+
children?: ReactNode;
|
|
58
|
+
/** Loading status */
|
|
59
|
+
loading?: boolean;
|
|
60
|
+
/** Indents */
|
|
61
|
+
gap?: number | TQuenSize;
|
|
62
|
+
/** Layout direction */
|
|
63
|
+
direction?: "row" | "column";
|
|
64
|
+
/** Additional style */
|
|
65
|
+
style?: CSSProperties;
|
|
66
|
+
/** Animation */
|
|
67
|
+
animation?: TSkeletonAnimation;
|
|
68
|
+
/** Additional classname */
|
|
69
|
+
className?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface ISkeletonAvatarProps extends Pick<ISkeletonProps, "loading" | "className" | "style" | "children" | "animation"> {
|
|
72
|
+
/** Avatar size */
|
|
73
|
+
size?: TQuenSize;
|
|
74
|
+
}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const styles = require("./styles.cjs.js");
|
|
5
|
+
const helpers = require("@quen-ui/helpers");
|
|
6
|
+
const Slider = ({
|
|
7
|
+
value = 0,
|
|
8
|
+
min = 0,
|
|
9
|
+
max = 100,
|
|
10
|
+
step = 1,
|
|
11
|
+
onChange,
|
|
12
|
+
showTooltip = true,
|
|
13
|
+
range,
|
|
14
|
+
orientation = "horizontal",
|
|
15
|
+
marks = [],
|
|
16
|
+
draggableTrack,
|
|
17
|
+
tooltip,
|
|
18
|
+
style,
|
|
19
|
+
className,
|
|
20
|
+
disabled,
|
|
21
|
+
color = "violet"
|
|
22
|
+
}) => {
|
|
23
|
+
const trackRef = React.useRef(null);
|
|
24
|
+
const draggableRef = React.useRef(false);
|
|
25
|
+
const initialValue = (_value) => {
|
|
26
|
+
if (!range) {
|
|
27
|
+
return Array.isArray(_value) ? _value : [_value ?? min, _value ?? min];
|
|
28
|
+
}
|
|
29
|
+
return Array.isArray(_value) ? _value : [min, max];
|
|
30
|
+
};
|
|
31
|
+
const [startEndValues, setStartEndValues] = React.useState(
|
|
32
|
+
initialValue(value)
|
|
33
|
+
);
|
|
34
|
+
const [currentHandle, setCurrentHandle] = React.useState(
|
|
35
|
+
null
|
|
36
|
+
);
|
|
37
|
+
const [isMouseDown, setIsMouseDown] = React.useState(false);
|
|
38
|
+
React.useEffect(() => {
|
|
39
|
+
setStartEndValues(initialValue(value));
|
|
40
|
+
}, [value]);
|
|
41
|
+
const clamp = (val) => Math.min(max, Math.max(min, val));
|
|
42
|
+
const snap = (raw) => {
|
|
43
|
+
return clamp(Math.round(raw / step) * step);
|
|
44
|
+
};
|
|
45
|
+
const percentOf = (v) => (v - min) / (max - min) * 100;
|
|
46
|
+
const updateValue = React.useCallback(
|
|
47
|
+
(newVal) => {
|
|
48
|
+
if (newVal[0] !== startEndValues[0] || newVal[1] !== startEndValues[1] || newVal[0] == 0 && newVal[1] == 0) {
|
|
49
|
+
setStartEndValues(newVal);
|
|
50
|
+
onChange?.(range ? newVal : newVal[1]);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
[range, onChange]
|
|
54
|
+
);
|
|
55
|
+
const setByValue = (raw, target) => {
|
|
56
|
+
const snapped = snap(raw);
|
|
57
|
+
let next = [0, 0];
|
|
58
|
+
if (target === "end") {
|
|
59
|
+
next = [startEndValues[0], snapped];
|
|
60
|
+
} else if (target === "start") {
|
|
61
|
+
next = [snapped, startEndValues[1]];
|
|
62
|
+
} else if (!range) {
|
|
63
|
+
next = [snapped, snapped];
|
|
64
|
+
} else if (range) {
|
|
65
|
+
const distanceToStart = Math.abs(snapped - startEndValues[0]);
|
|
66
|
+
const distanceToEnd = Math.abs(snapped - startEndValues[1]);
|
|
67
|
+
next = distanceToStart <= distanceToEnd ? [snapped, startEndValues[1]] : [startEndValues[0], snapped];
|
|
68
|
+
}
|
|
69
|
+
if (next[0] > next[1]) {
|
|
70
|
+
next = [next[1], next[0]];
|
|
71
|
+
}
|
|
72
|
+
updateValue(next);
|
|
73
|
+
};
|
|
74
|
+
const handleTrackClick = (e) => {
|
|
75
|
+
if (!trackRef.current || draggableRef.current) return;
|
|
76
|
+
const rect = trackRef.current.getBoundingClientRect();
|
|
77
|
+
const startClient = "touches" in e ? e.touches[0] : e;
|
|
78
|
+
const ratio = orientation === "vertical" ? 1 - (startClient.clientY - rect.top) / rect.height : (startClient.clientX - rect.left) / rect.width;
|
|
79
|
+
const raw = min + ratio * (max - min);
|
|
80
|
+
setByValue(raw);
|
|
81
|
+
};
|
|
82
|
+
const handleMove = (e, target) => {
|
|
83
|
+
if (!trackRef.current) return;
|
|
84
|
+
const rect = trackRef.current.getBoundingClientRect();
|
|
85
|
+
const client = "touches" in e ? e.touches[0] : e;
|
|
86
|
+
let ratio = orientation === "vertical" ? 1 - (client.clientY - rect.top) / rect.height : (client.clientX - rect.left) / rect.width;
|
|
87
|
+
ratio = Math.min(1, Math.max(0, ratio));
|
|
88
|
+
const rawValue = min + ratio * (max - min);
|
|
89
|
+
setByValue(rawValue, target);
|
|
90
|
+
};
|
|
91
|
+
const bindEvents = (target) => ({
|
|
92
|
+
onMouseDown: (e) => {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
setCurrentHandle(target);
|
|
95
|
+
setIsMouseDown(true);
|
|
96
|
+
const move = (ev) => handleMove(ev, target);
|
|
97
|
+
const up = () => {
|
|
98
|
+
setCurrentHandle(null);
|
|
99
|
+
setIsMouseDown(false);
|
|
100
|
+
document.removeEventListener("mousemove", move);
|
|
101
|
+
document.removeEventListener("mouseup", up, { capture: true });
|
|
102
|
+
};
|
|
103
|
+
document.addEventListener("mousemove", move);
|
|
104
|
+
document.addEventListener("mouseup", up, { capture: true });
|
|
105
|
+
},
|
|
106
|
+
onTouchStart: () => {
|
|
107
|
+
setCurrentHandle(target);
|
|
108
|
+
setIsMouseDown(true);
|
|
109
|
+
const move = (ev) => handleMove(ev, target);
|
|
110
|
+
const up = () => {
|
|
111
|
+
setCurrentHandle(null);
|
|
112
|
+
setIsMouseDown(false);
|
|
113
|
+
document.removeEventListener("touchmove", move);
|
|
114
|
+
document.removeEventListener("touchend", up);
|
|
115
|
+
};
|
|
116
|
+
document.addEventListener("touchmove", move);
|
|
117
|
+
document.addEventListener("touchend", up);
|
|
118
|
+
},
|
|
119
|
+
onMouseMove: () => {
|
|
120
|
+
setCurrentHandle(target);
|
|
121
|
+
},
|
|
122
|
+
onMouseLeave: () => {
|
|
123
|
+
if (!isMouseDown) {
|
|
124
|
+
setCurrentHandle(null);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const startDragWholeRange = (e) => {
|
|
129
|
+
if (!draggableTrack || !range || !trackRef.current) {
|
|
130
|
+
handleTrackClick(e);
|
|
131
|
+
} else {
|
|
132
|
+
const rect = trackRef.current.getBoundingClientRect();
|
|
133
|
+
const startClient = "touches" in e ? e.touches[0] : e;
|
|
134
|
+
const startRatio = orientation === "vertical" ? 1 - (startClient.clientY - rect.top) / rect.height : (startClient.clientX - rect.left) / rect.width;
|
|
135
|
+
const startValue = min + startRatio * (max - min);
|
|
136
|
+
const rangeSize = startEndValues[1] - startEndValues[0];
|
|
137
|
+
const offsetInsideRange = startValue - startEndValues[0];
|
|
138
|
+
const move = (ev) => {
|
|
139
|
+
const client = "touches" in ev ? ev.touches[0] : ev;
|
|
140
|
+
let ratio = orientation === "vertical" ? 1 - (client.clientY - rect.top) / rect.height : (client.clientX - rect.left) / rect.width;
|
|
141
|
+
ratio = Math.min(1, Math.max(0, ratio));
|
|
142
|
+
const rawValue = min + ratio * (max - min);
|
|
143
|
+
let newStart = rawValue - offsetInsideRange;
|
|
144
|
+
let newEnd = newStart + rangeSize;
|
|
145
|
+
if (newStart < min) {
|
|
146
|
+
newStart = min;
|
|
147
|
+
newEnd = min + rangeSize;
|
|
148
|
+
}
|
|
149
|
+
if (newEnd > max) {
|
|
150
|
+
newStart = max - rangeSize;
|
|
151
|
+
}
|
|
152
|
+
const snappedStart = snap(newStart);
|
|
153
|
+
const snappedEnd = snap(snappedStart + rangeSize);
|
|
154
|
+
const next = [snappedStart, snappedEnd];
|
|
155
|
+
updateValue(next);
|
|
156
|
+
};
|
|
157
|
+
const stop = () => {
|
|
158
|
+
document.removeEventListener("mousemove", move);
|
|
159
|
+
document.removeEventListener("mouseup", stop);
|
|
160
|
+
document.removeEventListener("touchmove", move);
|
|
161
|
+
document.removeEventListener("touchend", stop);
|
|
162
|
+
setTimeout(() => {
|
|
163
|
+
draggableRef.current = false;
|
|
164
|
+
}, 500);
|
|
165
|
+
};
|
|
166
|
+
document.addEventListener("mousemove", move);
|
|
167
|
+
document.addEventListener("mouseup", stop);
|
|
168
|
+
document.addEventListener("touchmove", move);
|
|
169
|
+
document.addEventListener("touchend", stop);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
173
|
+
styles.SliderContainer,
|
|
174
|
+
{
|
|
175
|
+
disabled,
|
|
176
|
+
style,
|
|
177
|
+
className,
|
|
178
|
+
role: "slider",
|
|
179
|
+
"aria-label": "slider",
|
|
180
|
+
"aria-orientation": orientation,
|
|
181
|
+
"aria-disabled": disabled,
|
|
182
|
+
"aria-valuemax": max,
|
|
183
|
+
"aria-valuemin": min,
|
|
184
|
+
"aria-valuenow": startEndValues[0],
|
|
185
|
+
children: [
|
|
186
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
187
|
+
styles.SliderTrackStyled,
|
|
188
|
+
{
|
|
189
|
+
"data-testid": "slider-track",
|
|
190
|
+
disabled,
|
|
191
|
+
ref: trackRef,
|
|
192
|
+
isVertical: orientation === "vertical",
|
|
193
|
+
onClick: handleTrackClick
|
|
194
|
+
}
|
|
195
|
+
),
|
|
196
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
197
|
+
styles.SliderProgressStyled,
|
|
198
|
+
{
|
|
199
|
+
isRange: range,
|
|
200
|
+
range: [percentOf(startEndValues[0]), percentOf(startEndValues[1])],
|
|
201
|
+
"data-testid": "slider-progress",
|
|
202
|
+
disabled,
|
|
203
|
+
color,
|
|
204
|
+
onMouseDown: startDragWholeRange,
|
|
205
|
+
onTouchStart: startDragWholeRange,
|
|
206
|
+
isVertical: orientation === "vertical"
|
|
207
|
+
}
|
|
208
|
+
),
|
|
209
|
+
range && /* @__PURE__ */ jsxRuntime.jsx(
|
|
210
|
+
styles.SliderTooltipStyled,
|
|
211
|
+
{
|
|
212
|
+
isVertical: orientation === "vertical",
|
|
213
|
+
open: currentHandle === "start",
|
|
214
|
+
show: showTooltip,
|
|
215
|
+
text: startEndValues[0],
|
|
216
|
+
position: orientation === "vertical" ? "right" : "top",
|
|
217
|
+
value: percentOf(startEndValues[0]),
|
|
218
|
+
...tooltip,
|
|
219
|
+
classNameContent: helpers.cnMerge(
|
|
220
|
+
"quen-ui__slider__tooltip__content",
|
|
221
|
+
tooltip?.classNameContent
|
|
222
|
+
),
|
|
223
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
224
|
+
styles.SliderThumbStyled,
|
|
225
|
+
{
|
|
226
|
+
disabled,
|
|
227
|
+
color,
|
|
228
|
+
isVertical: orientation === "vertical",
|
|
229
|
+
...bindEvents("start")
|
|
230
|
+
}
|
|
231
|
+
)
|
|
232
|
+
}
|
|
233
|
+
),
|
|
234
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
235
|
+
styles.SliderTooltipStyled,
|
|
236
|
+
{
|
|
237
|
+
isVertical: orientation === "vertical",
|
|
238
|
+
open: currentHandle === "end",
|
|
239
|
+
show: showTooltip,
|
|
240
|
+
text: startEndValues[1],
|
|
241
|
+
position: orientation === "vertical" ? "right" : "top",
|
|
242
|
+
value: percentOf(startEndValues[1]),
|
|
243
|
+
...tooltip,
|
|
244
|
+
classNameContent: helpers.cnMerge(
|
|
245
|
+
"quen-ui__slider__tooltip__content",
|
|
246
|
+
tooltip?.classNameContent
|
|
247
|
+
),
|
|
248
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
249
|
+
styles.SliderThumbStyled,
|
|
250
|
+
{
|
|
251
|
+
disabled,
|
|
252
|
+
color,
|
|
253
|
+
isVertical: orientation === "vertical",
|
|
254
|
+
...bindEvents("end")
|
|
255
|
+
}
|
|
256
|
+
)
|
|
257
|
+
}
|
|
258
|
+
),
|
|
259
|
+
/* @__PURE__ */ jsxRuntime.jsx(styles.SliderMarksWrapperStyled, { isVertical: orientation === "vertical", children: marks.map((m) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
260
|
+
styles.SliderMarkStyled,
|
|
261
|
+
{
|
|
262
|
+
className: m.className,
|
|
263
|
+
onClick: (e) => {
|
|
264
|
+
console.log(e);
|
|
265
|
+
e.stopPropagation();
|
|
266
|
+
setByValue(m.value);
|
|
267
|
+
},
|
|
268
|
+
isVertical: orientation === "vertical",
|
|
269
|
+
value: percentOf(m.value),
|
|
270
|
+
style: m.style,
|
|
271
|
+
children: [
|
|
272
|
+
/* @__PURE__ */ jsxRuntime.jsx(styles.SliderDotStyled, {}),
|
|
273
|
+
m.label && /* @__PURE__ */ jsxRuntime.jsx(styles.SliderLabelStyled, { isVertical: orientation === "vertical", children: m.label })
|
|
274
|
+
]
|
|
275
|
+
},
|
|
276
|
+
m.value
|
|
277
|
+
)) })
|
|
278
|
+
]
|
|
279
|
+
}
|
|
280
|
+
);
|
|
281
|
+
};
|
|
282
|
+
module.exports = Slider;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ISliderProps } from './types';
|
|
2
|
+
declare const Slider: ({ value, min, max, step, onChange, showTooltip, range, orientation, marks, draggableTrack, tooltip, style, className, disabled, color }: ISliderProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export default Slider;
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState, useEffect, useCallback } from "react";
|
|
3
|
+
import { SliderContainer, SliderTrackStyled, SliderProgressStyled, SliderTooltipStyled, SliderThumbStyled, SliderMarksWrapperStyled, SliderMarkStyled, SliderDotStyled, SliderLabelStyled } from "./styles.es.js";
|
|
4
|
+
import { cnMerge } from "@quen-ui/helpers";
|
|
5
|
+
const Slider = ({
|
|
6
|
+
value = 0,
|
|
7
|
+
min = 0,
|
|
8
|
+
max = 100,
|
|
9
|
+
step = 1,
|
|
10
|
+
onChange,
|
|
11
|
+
showTooltip = true,
|
|
12
|
+
range,
|
|
13
|
+
orientation = "horizontal",
|
|
14
|
+
marks = [],
|
|
15
|
+
draggableTrack,
|
|
16
|
+
tooltip,
|
|
17
|
+
style,
|
|
18
|
+
className,
|
|
19
|
+
disabled,
|
|
20
|
+
color = "violet"
|
|
21
|
+
}) => {
|
|
22
|
+
const trackRef = useRef(null);
|
|
23
|
+
const draggableRef = useRef(false);
|
|
24
|
+
const initialValue = (_value) => {
|
|
25
|
+
if (!range) {
|
|
26
|
+
return Array.isArray(_value) ? _value : [_value ?? min, _value ?? min];
|
|
27
|
+
}
|
|
28
|
+
return Array.isArray(_value) ? _value : [min, max];
|
|
29
|
+
};
|
|
30
|
+
const [startEndValues, setStartEndValues] = useState(
|
|
31
|
+
initialValue(value)
|
|
32
|
+
);
|
|
33
|
+
const [currentHandle, setCurrentHandle] = useState(
|
|
34
|
+
null
|
|
35
|
+
);
|
|
36
|
+
const [isMouseDown, setIsMouseDown] = useState(false);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
setStartEndValues(initialValue(value));
|
|
39
|
+
}, [value]);
|
|
40
|
+
const clamp = (val) => Math.min(max, Math.max(min, val));
|
|
41
|
+
const snap = (raw) => {
|
|
42
|
+
return clamp(Math.round(raw / step) * step);
|
|
43
|
+
};
|
|
44
|
+
const percentOf = (v) => (v - min) / (max - min) * 100;
|
|
45
|
+
const updateValue = useCallback(
|
|
46
|
+
(newVal) => {
|
|
47
|
+
if (newVal[0] !== startEndValues[0] || newVal[1] !== startEndValues[1] || newVal[0] == 0 && newVal[1] == 0) {
|
|
48
|
+
setStartEndValues(newVal);
|
|
49
|
+
onChange?.(range ? newVal : newVal[1]);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
[range, onChange]
|
|
53
|
+
);
|
|
54
|
+
const setByValue = (raw, target) => {
|
|
55
|
+
const snapped = snap(raw);
|
|
56
|
+
let next = [0, 0];
|
|
57
|
+
if (target === "end") {
|
|
58
|
+
next = [startEndValues[0], snapped];
|
|
59
|
+
} else if (target === "start") {
|
|
60
|
+
next = [snapped, startEndValues[1]];
|
|
61
|
+
} else if (!range) {
|
|
62
|
+
next = [snapped, snapped];
|
|
63
|
+
} else if (range) {
|
|
64
|
+
const distanceToStart = Math.abs(snapped - startEndValues[0]);
|
|
65
|
+
const distanceToEnd = Math.abs(snapped - startEndValues[1]);
|
|
66
|
+
next = distanceToStart <= distanceToEnd ? [snapped, startEndValues[1]] : [startEndValues[0], snapped];
|
|
67
|
+
}
|
|
68
|
+
if (next[0] > next[1]) {
|
|
69
|
+
next = [next[1], next[0]];
|
|
70
|
+
}
|
|
71
|
+
updateValue(next);
|
|
72
|
+
};
|
|
73
|
+
const handleTrackClick = (e) => {
|
|
74
|
+
if (!trackRef.current || draggableRef.current) return;
|
|
75
|
+
const rect = trackRef.current.getBoundingClientRect();
|
|
76
|
+
const startClient = "touches" in e ? e.touches[0] : e;
|
|
77
|
+
const ratio = orientation === "vertical" ? 1 - (startClient.clientY - rect.top) / rect.height : (startClient.clientX - rect.left) / rect.width;
|
|
78
|
+
const raw = min + ratio * (max - min);
|
|
79
|
+
setByValue(raw);
|
|
80
|
+
};
|
|
81
|
+
const handleMove = (e, target) => {
|
|
82
|
+
if (!trackRef.current) return;
|
|
83
|
+
const rect = trackRef.current.getBoundingClientRect();
|
|
84
|
+
const client = "touches" in e ? e.touches[0] : e;
|
|
85
|
+
let ratio = orientation === "vertical" ? 1 - (client.clientY - rect.top) / rect.height : (client.clientX - rect.left) / rect.width;
|
|
86
|
+
ratio = Math.min(1, Math.max(0, ratio));
|
|
87
|
+
const rawValue = min + ratio * (max - min);
|
|
88
|
+
setByValue(rawValue, target);
|
|
89
|
+
};
|
|
90
|
+
const bindEvents = (target) => ({
|
|
91
|
+
onMouseDown: (e) => {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
setCurrentHandle(target);
|
|
94
|
+
setIsMouseDown(true);
|
|
95
|
+
const move = (ev) => handleMove(ev, target);
|
|
96
|
+
const up = () => {
|
|
97
|
+
setCurrentHandle(null);
|
|
98
|
+
setIsMouseDown(false);
|
|
99
|
+
document.removeEventListener("mousemove", move);
|
|
100
|
+
document.removeEventListener("mouseup", up, { capture: true });
|
|
101
|
+
};
|
|
102
|
+
document.addEventListener("mousemove", move);
|
|
103
|
+
document.addEventListener("mouseup", up, { capture: true });
|
|
104
|
+
},
|
|
105
|
+
onTouchStart: () => {
|
|
106
|
+
setCurrentHandle(target);
|
|
107
|
+
setIsMouseDown(true);
|
|
108
|
+
const move = (ev) => handleMove(ev, target);
|
|
109
|
+
const up = () => {
|
|
110
|
+
setCurrentHandle(null);
|
|
111
|
+
setIsMouseDown(false);
|
|
112
|
+
document.removeEventListener("touchmove", move);
|
|
113
|
+
document.removeEventListener("touchend", up);
|
|
114
|
+
};
|
|
115
|
+
document.addEventListener("touchmove", move);
|
|
116
|
+
document.addEventListener("touchend", up);
|
|
117
|
+
},
|
|
118
|
+
onMouseMove: () => {
|
|
119
|
+
setCurrentHandle(target);
|
|
120
|
+
},
|
|
121
|
+
onMouseLeave: () => {
|
|
122
|
+
if (!isMouseDown) {
|
|
123
|
+
setCurrentHandle(null);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
const startDragWholeRange = (e) => {
|
|
128
|
+
if (!draggableTrack || !range || !trackRef.current) {
|
|
129
|
+
handleTrackClick(e);
|
|
130
|
+
} else {
|
|
131
|
+
const rect = trackRef.current.getBoundingClientRect();
|
|
132
|
+
const startClient = "touches" in e ? e.touches[0] : e;
|
|
133
|
+
const startRatio = orientation === "vertical" ? 1 - (startClient.clientY - rect.top) / rect.height : (startClient.clientX - rect.left) / rect.width;
|
|
134
|
+
const startValue = min + startRatio * (max - min);
|
|
135
|
+
const rangeSize = startEndValues[1] - startEndValues[0];
|
|
136
|
+
const offsetInsideRange = startValue - startEndValues[0];
|
|
137
|
+
const move = (ev) => {
|
|
138
|
+
const client = "touches" in ev ? ev.touches[0] : ev;
|
|
139
|
+
let ratio = orientation === "vertical" ? 1 - (client.clientY - rect.top) / rect.height : (client.clientX - rect.left) / rect.width;
|
|
140
|
+
ratio = Math.min(1, Math.max(0, ratio));
|
|
141
|
+
const rawValue = min + ratio * (max - min);
|
|
142
|
+
let newStart = rawValue - offsetInsideRange;
|
|
143
|
+
let newEnd = newStart + rangeSize;
|
|
144
|
+
if (newStart < min) {
|
|
145
|
+
newStart = min;
|
|
146
|
+
newEnd = min + rangeSize;
|
|
147
|
+
}
|
|
148
|
+
if (newEnd > max) {
|
|
149
|
+
newStart = max - rangeSize;
|
|
150
|
+
}
|
|
151
|
+
const snappedStart = snap(newStart);
|
|
152
|
+
const snappedEnd = snap(snappedStart + rangeSize);
|
|
153
|
+
const next = [snappedStart, snappedEnd];
|
|
154
|
+
updateValue(next);
|
|
155
|
+
};
|
|
156
|
+
const stop = () => {
|
|
157
|
+
document.removeEventListener("mousemove", move);
|
|
158
|
+
document.removeEventListener("mouseup", stop);
|
|
159
|
+
document.removeEventListener("touchmove", move);
|
|
160
|
+
document.removeEventListener("touchend", stop);
|
|
161
|
+
setTimeout(() => {
|
|
162
|
+
draggableRef.current = false;
|
|
163
|
+
}, 500);
|
|
164
|
+
};
|
|
165
|
+
document.addEventListener("mousemove", move);
|
|
166
|
+
document.addEventListener("mouseup", stop);
|
|
167
|
+
document.addEventListener("touchmove", move);
|
|
168
|
+
document.addEventListener("touchend", stop);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
return /* @__PURE__ */ jsxs(
|
|
172
|
+
SliderContainer,
|
|
173
|
+
{
|
|
174
|
+
disabled,
|
|
175
|
+
style,
|
|
176
|
+
className,
|
|
177
|
+
role: "slider",
|
|
178
|
+
"aria-label": "slider",
|
|
179
|
+
"aria-orientation": orientation,
|
|
180
|
+
"aria-disabled": disabled,
|
|
181
|
+
"aria-valuemax": max,
|
|
182
|
+
"aria-valuemin": min,
|
|
183
|
+
"aria-valuenow": startEndValues[0],
|
|
184
|
+
children: [
|
|
185
|
+
/* @__PURE__ */ jsx(
|
|
186
|
+
SliderTrackStyled,
|
|
187
|
+
{
|
|
188
|
+
"data-testid": "slider-track",
|
|
189
|
+
disabled,
|
|
190
|
+
ref: trackRef,
|
|
191
|
+
isVertical: orientation === "vertical",
|
|
192
|
+
onClick: handleTrackClick
|
|
193
|
+
}
|
|
194
|
+
),
|
|
195
|
+
/* @__PURE__ */ jsx(
|
|
196
|
+
SliderProgressStyled,
|
|
197
|
+
{
|
|
198
|
+
isRange: range,
|
|
199
|
+
range: [percentOf(startEndValues[0]), percentOf(startEndValues[1])],
|
|
200
|
+
"data-testid": "slider-progress",
|
|
201
|
+
disabled,
|
|
202
|
+
color,
|
|
203
|
+
onMouseDown: startDragWholeRange,
|
|
204
|
+
onTouchStart: startDragWholeRange,
|
|
205
|
+
isVertical: orientation === "vertical"
|
|
206
|
+
}
|
|
207
|
+
),
|
|
208
|
+
range && /* @__PURE__ */ jsx(
|
|
209
|
+
SliderTooltipStyled,
|
|
210
|
+
{
|
|
211
|
+
isVertical: orientation === "vertical",
|
|
212
|
+
open: currentHandle === "start",
|
|
213
|
+
show: showTooltip,
|
|
214
|
+
text: startEndValues[0],
|
|
215
|
+
position: orientation === "vertical" ? "right" : "top",
|
|
216
|
+
value: percentOf(startEndValues[0]),
|
|
217
|
+
...tooltip,
|
|
218
|
+
classNameContent: cnMerge(
|
|
219
|
+
"quen-ui__slider__tooltip__content",
|
|
220
|
+
tooltip?.classNameContent
|
|
221
|
+
),
|
|
222
|
+
children: /* @__PURE__ */ jsx(
|
|
223
|
+
SliderThumbStyled,
|
|
224
|
+
{
|
|
225
|
+
disabled,
|
|
226
|
+
color,
|
|
227
|
+
isVertical: orientation === "vertical",
|
|
228
|
+
...bindEvents("start")
|
|
229
|
+
}
|
|
230
|
+
)
|
|
231
|
+
}
|
|
232
|
+
),
|
|
233
|
+
/* @__PURE__ */ jsx(
|
|
234
|
+
SliderTooltipStyled,
|
|
235
|
+
{
|
|
236
|
+
isVertical: orientation === "vertical",
|
|
237
|
+
open: currentHandle === "end",
|
|
238
|
+
show: showTooltip,
|
|
239
|
+
text: startEndValues[1],
|
|
240
|
+
position: orientation === "vertical" ? "right" : "top",
|
|
241
|
+
value: percentOf(startEndValues[1]),
|
|
242
|
+
...tooltip,
|
|
243
|
+
classNameContent: cnMerge(
|
|
244
|
+
"quen-ui__slider__tooltip__content",
|
|
245
|
+
tooltip?.classNameContent
|
|
246
|
+
),
|
|
247
|
+
children: /* @__PURE__ */ jsx(
|
|
248
|
+
SliderThumbStyled,
|
|
249
|
+
{
|
|
250
|
+
disabled,
|
|
251
|
+
color,
|
|
252
|
+
isVertical: orientation === "vertical",
|
|
253
|
+
...bindEvents("end")
|
|
254
|
+
}
|
|
255
|
+
)
|
|
256
|
+
}
|
|
257
|
+
),
|
|
258
|
+
/* @__PURE__ */ jsx(SliderMarksWrapperStyled, { isVertical: orientation === "vertical", children: marks.map((m) => /* @__PURE__ */ jsxs(
|
|
259
|
+
SliderMarkStyled,
|
|
260
|
+
{
|
|
261
|
+
className: m.className,
|
|
262
|
+
onClick: (e) => {
|
|
263
|
+
console.log(e);
|
|
264
|
+
e.stopPropagation();
|
|
265
|
+
setByValue(m.value);
|
|
266
|
+
},
|
|
267
|
+
isVertical: orientation === "vertical",
|
|
268
|
+
value: percentOf(m.value),
|
|
269
|
+
style: m.style,
|
|
270
|
+
children: [
|
|
271
|
+
/* @__PURE__ */ jsx(SliderDotStyled, {}),
|
|
272
|
+
m.label && /* @__PURE__ */ jsx(SliderLabelStyled, { isVertical: orientation === "vertical", children: m.label })
|
|
273
|
+
]
|
|
274
|
+
},
|
|
275
|
+
m.value
|
|
276
|
+
)) })
|
|
277
|
+
]
|
|
278
|
+
}
|
|
279
|
+
);
|
|
280
|
+
};
|
|
281
|
+
export {
|
|
282
|
+
Slider as default
|
|
283
|
+
};
|