@chayns-components/core 5.0.0-beta.3 → 5.0.0-beta.300
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 +3 -9
- package/lib/api/image/post.d.ts +16 -0
- package/lib/api/image/post.js +34 -0
- package/lib/api/image/post.js.map +1 -0
- package/lib/api/video/post.d.ts +16 -0
- package/lib/api/video/post.js +31 -0
- package/lib/api/video/post.js.map +1 -0
- package/lib/components/accordion/Accordion.d.ts +72 -6
- package/lib/components/accordion/Accordion.js +109 -166
- package/lib/components/accordion/Accordion.js.map +1 -1
- package/lib/components/accordion/Accordion.styles.d.ts +7 -0
- package/lib/components/accordion/Accordion.styles.js +108 -0
- package/lib/components/accordion/Accordion.styles.js.map +1 -0
- package/lib/components/accordion/accordion-body/AccordionBody.d.ts +16 -2
- package/lib/components/accordion/accordion-body/AccordionBody.js +25 -25
- package/lib/components/accordion/accordion-body/AccordionBody.js.map +1 -1
- package/lib/components/accordion/accordion-body/AccordionBody.styles.d.ts +4 -0
- package/lib/components/accordion/accordion-body/AccordionBody.styles.js +24 -0
- package/lib/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -0
- package/lib/components/accordion/accordion-content/AccordionContent.d.ts +14 -3
- package/lib/components/accordion/accordion-content/AccordionContent.js +20 -24
- package/lib/components/accordion/accordion-content/AccordionContent.js.map +1 -1
- package/lib/components/accordion/accordion-content/AccordionContent.styles.d.ts +6 -0
- package/lib/components/accordion/accordion-content/AccordionContent.styles.js +34 -0
- package/lib/components/accordion/accordion-content/AccordionContent.styles.js.map +1 -0
- package/lib/components/accordion/accordion-group/AccordionGroup.d.ts +27 -0
- package/lib/components/accordion/accordion-group/AccordionGroup.js +57 -0
- package/lib/components/accordion/accordion-group/AccordionGroup.js.map +1 -0
- package/lib/components/accordion/accordion-head/AccordionHead.d.ts +10 -4
- package/lib/components/accordion/accordion-head/AccordionHead.js +94 -127
- package/lib/components/accordion/accordion-head/AccordionHead.js.map +1 -1
- package/lib/components/accordion/accordion-head/AccordionHead.styles.d.ts +19 -0
- package/lib/components/accordion/accordion-head/AccordionHead.styles.js +153 -0
- package/lib/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -0
- package/lib/components/accordion/accordion-intro/AccordionIntro.d.ts +9 -0
- package/lib/components/accordion/accordion-intro/AccordionIntro.js +20 -0
- package/lib/components/accordion/accordion-intro/AccordionIntro.js.map +1 -0
- package/lib/components/accordion/accordion-intro/AccordionIntro.styles.d.ts +1 -0
- package/lib/components/accordion/accordion-intro/AccordionIntro.styles.js +12 -0
- package/lib/components/accordion/accordion-intro/AccordionIntro.styles.js.map +1 -0
- package/lib/components/accordion/accordion-item/AccordionItem.d.ts +9 -0
- package/lib/components/accordion/accordion-item/AccordionItem.js +27 -0
- package/lib/components/accordion/accordion-item/AccordionItem.js.map +1 -0
- package/lib/components/accordion/accordion-item/AccordionItem.styles.d.ts +5 -0
- package/lib/components/accordion/accordion-item/AccordionItem.styles.js +33 -0
- package/lib/components/accordion/accordion-item/AccordionItem.styles.js.map +1 -0
- package/lib/components/accordion/utils.d.ts +11 -0
- package/lib/components/accordion/utils.js +36 -0
- package/lib/components/accordion/utils.js.map +1 -0
- package/lib/components/amount-control/AmountControl.d.ts +22 -0
- package/lib/components/amount-control/AmountControl.js +185 -0
- package/lib/components/amount-control/AmountControl.js.map +1 -0
- package/lib/components/amount-control/AmountControl.styles.d.ts +14 -0
- package/lib/components/amount-control/AmountControl.styles.js +58 -0
- package/lib/components/amount-control/AmountControl.styles.js.map +1 -0
- package/lib/components/amount-control/utils.d.ts +7 -0
- package/lib/components/amount-control/utils.js +22 -0
- package/lib/components/amount-control/utils.js.map +1 -0
- package/lib/components/badge/Badge.d.ts +9 -1
- package/lib/components/badge/Badge.js +15 -28
- package/lib/components/badge/Badge.js.map +1 -1
- package/lib/components/badge/Badge.styles.d.ts +4 -0
- package/lib/components/badge/Badge.styles.js +31 -0
- package/lib/components/badge/Badge.styles.js.map +1 -0
- package/lib/components/button/Button.d.ts +6 -2
- package/lib/components/button/Button.js +68 -47
- package/lib/components/button/Button.js.map +1 -1
- package/lib/components/button/Button.styles.d.ts +9 -0
- package/lib/components/button/Button.styles.js +66 -0
- package/lib/components/button/Button.styles.js.map +1 -0
- package/lib/components/checkbox/Checkbox.d.ts +25 -0
- package/lib/components/checkbox/Checkbox.js +43 -0
- package/lib/components/checkbox/Checkbox.js.map +1 -0
- package/lib/components/checkbox/Checkbox.styles.d.ts +6 -0
- package/lib/components/checkbox/Checkbox.styles.js +128 -0
- package/lib/components/checkbox/Checkbox.styles.js.map +1 -0
- package/lib/components/color-scheme-provider/ColorSchemeProvider.d.ts +7 -1
- package/lib/components/color-scheme-provider/ColorSchemeProvider.js +45 -83
- package/lib/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
- package/lib/components/color-scheme-provider/font.d.ts +6 -0
- package/lib/components/color-scheme-provider/font.js +59 -0
- package/lib/components/color-scheme-provider/font.js.map +1 -0
- package/lib/components/combobox/ComboBox.d.ts +25 -0
- package/lib/components/combobox/ComboBox.js +143 -0
- package/lib/components/combobox/ComboBox.js.map +1 -0
- package/lib/components/combobox/ComboBox.styles.d.ts +17 -0
- package/lib/components/combobox/ComboBox.styles.js +123 -0
- package/lib/components/combobox/ComboBox.styles.js.map +1 -0
- package/lib/components/combobox/combobox-item/ComboBoxItem.d.ts +18 -0
- package/lib/components/combobox/combobox-item/ComboBoxItem.js +29 -0
- package/lib/components/combobox/combobox-item/ComboBoxItem.js.map +1 -0
- package/lib/components/combobox/combobox-item/ComboBoxItem.styles.d.ts +6 -0
- package/lib/components/combobox/combobox-item/ComboBoxItem.styles.js +28 -0
- package/lib/components/combobox/combobox-item/ComboBoxItem.styles.js.map +1 -0
- package/lib/components/content-card/ContentCard.d.ts +9 -0
- package/lib/components/content-card/ContentCard.js +18 -0
- package/lib/components/content-card/ContentCard.js.map +1 -0
- package/lib/components/content-card/ContentCard.styles.d.ts +1 -0
- package/lib/components/content-card/ContentCard.styles.js +22 -0
- package/lib/components/content-card/ContentCard.styles.js.map +1 -0
- package/lib/components/context-menu/ContextMenu.d.ts +51 -0
- package/lib/components/context-menu/ContextMenu.js +156 -0
- package/lib/components/context-menu/ContextMenu.js.map +1 -0
- package/lib/components/context-menu/ContextMenu.styles.d.ts +1 -0
- package/lib/components/context-menu/ContextMenu.styles.js +12 -0
- package/lib/components/context-menu/ContextMenu.styles.js.map +1 -0
- package/lib/components/context-menu/constants/alignment.d.ts +8 -0
- package/lib/components/context-menu/constants/alignment.js +16 -0
- package/lib/components/context-menu/constants/alignment.js.map +1 -0
- package/lib/components/context-menu/context-menu-content/ContextMenuContent.d.ts +10 -0
- package/lib/components/context-menu/context-menu-content/ContextMenuContent.js +77 -0
- package/lib/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -0
- package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +11 -0
- package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.js +113 -0
- package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.js.map +1 -0
- package/lib/components/date-info/DateInfo.d.ts +40 -0
- package/lib/components/date-info/DateInfo.js +108 -0
- package/lib/components/date-info/DateInfo.js.map +1 -0
- package/lib/components/date-info/utils/format.d.ts +43 -0
- package/lib/components/date-info/utils/format.js +287 -0
- package/lib/components/date-info/utils/format.js.map +1 -0
- package/lib/components/date-info/utils/language.d.ts +1 -0
- package/lib/components/date-info/utils/language.js +35 -0
- package/lib/components/date-info/utils/language.js.map +1 -0
- package/lib/components/filter-button/FilterButton.d.ts +22 -0
- package/lib/components/filter-button/FilterButton.js +88 -0
- package/lib/components/filter-button/FilterButton.js.map +1 -0
- package/lib/components/filter-button/FilterButton.styles.d.ts +1 -0
- package/lib/components/filter-button/FilterButton.styles.js +14 -0
- package/lib/components/filter-button/FilterButton.styles.js.map +1 -0
- package/lib/components/filter-button/filter-button-item/FilterButtonItem.d.ts +14 -0
- package/lib/components/filter-button/filter-button-item/FilterButtonItem.js +47 -0
- package/lib/components/filter-button/filter-button-item/FilterButtonItem.js.map +1 -0
- package/lib/components/filter-button/filter-button-item/FilterButtonItem.styles.d.ts +26 -0
- package/lib/components/filter-button/filter-button-item/FilterButtonItem.styles.js +104 -0
- package/lib/components/filter-button/filter-button-item/FilterButtonItem.styles.js.map +1 -0
- package/lib/components/filter-button/types.d.ts +15 -0
- package/lib/components/filter-button/types.js +17 -0
- package/lib/components/filter-button/types.js.map +1 -0
- package/lib/components/grid-image/GridImage.d.ts +19 -0
- package/lib/components/grid-image/GridImage.js +45 -0
- package/lib/components/grid-image/GridImage.js.map +1 -0
- package/lib/components/grid-image/GridImage.styles.d.ts +21 -0
- package/lib/components/grid-image/GridImage.styles.js +101 -0
- package/lib/components/grid-image/GridImage.styles.js.map +1 -0
- package/lib/components/icon/Icon.d.ts +11 -3
- package/lib/components/icon/Icon.js +37 -82
- package/lib/components/icon/Icon.js.map +1 -1
- package/lib/components/icon/Icon.styles.d.ts +15 -0
- package/lib/components/icon/Icon.styles.js +74 -0
- package/lib/components/icon/Icon.styles.js.map +1 -0
- package/lib/components/icon/utils.d.ts +1 -0
- package/lib/components/icon/utils.js +13 -0
- package/lib/components/icon/utils.js.map +1 -0
- package/lib/components/input/Input.d.ts +65 -0
- package/lib/components/input/Input.js +119 -0
- package/lib/components/input/Input.js.map +1 -0
- package/lib/components/input/Input.styles.d.ts +15 -0
- package/lib/components/input/Input.styles.js +98 -0
- package/lib/components/input/Input.styles.js.map +1 -0
- package/lib/components/list/List.d.ts +18 -0
- package/lib/components/list/List.js +52 -0
- package/lib/components/list/List.js.map +1 -0
- package/lib/components/list/list-item/ListItem.d.ts +67 -0
- package/lib/components/list/list-item/ListItem.js +91 -0
- package/lib/components/list/list-item/ListItem.js.map +1 -0
- package/lib/components/list/list-item/ListItem.styles.d.ts +6 -0
- package/lib/components/list/list-item/ListItem.styles.js +55 -0
- package/lib/components/list/list-item/ListItem.styles.js.map +1 -0
- package/lib/components/list/list-item/list-item-body/ListItemBody.d.ts +6 -0
- package/lib/components/list/list-item/list-item-body/ListItemBody.js +57 -0
- package/lib/components/list/list-item/list-item-body/ListItemBody.js.map +1 -0
- package/lib/components/list/list-item/list-item-body/ListItemBody.styles.d.ts +1 -0
- package/lib/components/list/list-item/list-item-body/ListItemBody.styles.js +13 -0
- package/lib/components/list/list-item/list-item-body/ListItemBody.styles.js.map +1 -0
- package/lib/components/list/list-item/list-item-content/ListItemContent.d.ts +3 -0
- package/lib/components/list/list-item/list-item-content/ListItemContent.js +20 -0
- package/lib/components/list/list-item/list-item-content/ListItemContent.js.map +1 -0
- package/lib/components/list/list-item/list-item-content/ListItemContent.styles.d.ts +1 -0
- package/lib/components/list/list-item/list-item-content/ListItemContent.styles.js +18 -0
- package/lib/components/list/list-item/list-item-content/ListItemContent.styles.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.d.ts +18 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.js +99 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +20 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js +99 -0
- package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.d.ts +6 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js +22 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.d.ts +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js +31 -0
- package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.d.ts +7 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js +43 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js.map +1 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.d.ts +10 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js +50 -0
- package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js.map +1 -0
- package/lib/components/mention-finder/MentionFinder.d.ts +31 -0
- package/lib/components/mention-finder/MentionFinder.js +140 -0
- package/lib/components/mention-finder/MentionFinder.js.map +1 -0
- package/lib/components/mention-finder/MentionFinder.styles.d.ts +5 -0
- package/lib/components/mention-finder/MentionFinder.styles.js +92 -0
- package/lib/components/mention-finder/MentionFinder.styles.js.map +1 -0
- package/lib/components/mention-finder/constants/alignment.d.ts +4 -0
- package/lib/components/mention-finder/constants/alignment.js +12 -0
- package/lib/components/mention-finder/constants/alignment.js.map +1 -0
- package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.d.ts +10 -0
- package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.js +31 -0
- package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.js.map +1 -0
- package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.styles.d.ts +8 -0
- package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js +95 -0
- package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -0
- package/lib/components/number-input/NumberInput.d.ts +46 -0
- package/lib/components/number-input/NumberInput.js +123 -0
- package/lib/components/number-input/NumberInput.js.map +1 -0
- package/lib/components/number-input/constants/number.d.ts +4 -0
- package/lib/components/number-input/constants/number.js +11 -0
- package/lib/components/number-input/constants/number.js.map +1 -0
- package/lib/components/number-input/utils/number.d.ts +21 -0
- package/lib/components/number-input/utils/number.js +64 -0
- package/lib/components/number-input/utils/number.js.map +1 -0
- package/lib/components/popup/Popup.d.ts +26 -0
- package/lib/components/popup/Popup.js +154 -0
- package/lib/components/popup/Popup.js.map +1 -0
- package/lib/components/popup/Popup.styles.d.ts +4 -0
- package/lib/components/popup/Popup.styles.js +25 -0
- package/lib/components/popup/Popup.styles.js.map +1 -0
- package/lib/components/popup/popup-content/PopupContent.d.ts +9 -0
- package/lib/components/popup/popup-content/PopupContent.js +63 -0
- package/lib/components/popup/popup-content/PopupContent.js.map +1 -0
- package/lib/components/popup/popup-content/PopupContent.styles.d.ts +7 -0
- package/lib/components/popup/popup-content/PopupContent.styles.js +92 -0
- package/lib/components/popup/popup-content/PopupContent.styles.js.map +1 -0
- package/lib/components/popup/types.d.ts +16 -0
- package/lib/components/popup/types.js +16 -0
- package/lib/components/popup/types.js.map +1 -0
- package/lib/components/progress-bar/ProgressBar.d.ts +9 -0
- package/lib/components/progress-bar/ProgressBar.js +38 -0
- package/lib/components/progress-bar/ProgressBar.js.map +1 -0
- package/lib/components/progress-bar/ProgressBar.styles.d.ts +7 -0
- package/lib/components/progress-bar/ProgressBar.styles.js +36 -0
- package/lib/components/progress-bar/ProgressBar.styles.js.map +1 -0
- package/lib/components/radio-button/RadioButton.d.ts +26 -0
- package/lib/components/radio-button/RadioButton.js +85 -0
- package/lib/components/radio-button/RadioButton.js.map +1 -0
- package/lib/components/radio-button/RadioButton.styles.d.ts +22 -0
- package/lib/components/radio-button/RadioButton.styles.js +95 -0
- package/lib/components/radio-button/RadioButton.styles.js.map +1 -0
- package/lib/components/radio-button/radio-button-group/RadioButtonGroup.d.ts +17 -0
- package/lib/components/radio-button/radio-button-group/RadioButtonGroup.js +46 -0
- package/lib/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -0
- package/lib/components/radio-button/types.d.ts +4 -0
- package/lib/components/radio-button/types.js +6 -0
- package/lib/components/radio-button/types.js.map +1 -0
- package/lib/components/scroll-view/ScrollView.d.ts +9 -0
- package/lib/components/scroll-view/ScrollView.js +22 -0
- package/lib/components/scroll-view/ScrollView.js.map +1 -0
- package/lib/components/scroll-view/ScrollView.styles.d.ts +6 -0
- package/lib/components/scroll-view/ScrollView.styles.js +26 -0
- package/lib/components/scroll-view/ScrollView.styles.js.map +1 -0
- package/lib/components/search-box/SearchBox.d.ts +30 -0
- package/lib/components/search-box/SearchBox.js +179 -0
- package/lib/components/search-box/SearchBox.js.map +1 -0
- package/lib/components/search-box/SearchBox.styles.d.ts +7 -0
- package/lib/components/search-box/SearchBox.styles.js +56 -0
- package/lib/components/search-box/SearchBox.styles.js.map +1 -0
- package/lib/components/search-box/search-box-item/SearchBoxItem.d.ts +9 -0
- package/lib/components/search-box/search-box-item/SearchBoxItem.js +29 -0
- package/lib/components/search-box/search-box-item/SearchBoxItem.js.map +1 -0
- package/lib/components/search-box/search-box-item/SearchBoxItem.styles.d.ts +6 -0
- package/lib/components/search-box/search-box-item/SearchBoxItem.styles.js +28 -0
- package/lib/components/search-box/search-box-item/SearchBoxItem.styles.js.map +1 -0
- package/lib/components/search-box/types.d.ts +4 -0
- package/lib/components/search-box/types.js +6 -0
- package/lib/components/search-box/types.js.map +1 -0
- package/lib/components/search-box/utils.d.ts +7 -0
- package/lib/components/search-box/utils.js +23 -0
- package/lib/components/search-box/utils.js.map +1 -0
- package/lib/components/search-input/SearchInput.d.ts +25 -0
- package/lib/components/search-input/SearchInput.js +95 -0
- package/lib/components/search-input/SearchInput.js.map +1 -0
- package/lib/components/search-input/SearchInput.styles.d.ts +4 -0
- package/lib/components/search-input/SearchInput.styles.js +26 -0
- package/lib/components/search-input/SearchInput.styles.js.map +1 -0
- package/lib/components/sharing-bar/SharingBar.d.ts +18 -0
- package/lib/components/sharing-bar/SharingBar.js +113 -0
- package/lib/components/sharing-bar/SharingBar.js.map +1 -0
- package/lib/components/sharing-bar/SharingBar.styles.d.ts +5 -0
- package/lib/components/sharing-bar/SharingBar.styles.js +24 -0
- package/lib/components/sharing-bar/SharingBar.styles.js.map +1 -0
- package/lib/components/slider/Slider.d.ts +21 -0
- package/lib/components/slider/Slider.js +51 -0
- package/lib/components/slider/Slider.js.map +1 -0
- package/lib/components/slider/Slider.styles.d.ts +8 -0
- package/lib/components/slider/Slider.styles.js +75 -0
- package/lib/components/slider/Slider.styles.js.map +1 -0
- package/lib/components/small-wait-cursor/SmallWaitCursor.d.ts +31 -0
- package/lib/components/small-wait-cursor/SmallWaitCursor.js +42 -0
- package/lib/components/small-wait-cursor/SmallWaitCursor.js.map +1 -0
- package/lib/components/small-wait-cursor/SmallWaitCursor.styles.d.ts +18 -0
- package/lib/components/small-wait-cursor/SmallWaitCursor.styles.js +102 -0
- package/lib/components/small-wait-cursor/SmallWaitCursor.styles.js.map +1 -0
- package/lib/components/text-area/TextArea.d.ts +25 -0
- package/lib/components/text-area/TextArea.js +70 -0
- package/lib/components/text-area/TextArea.js.map +1 -0
- package/lib/components/text-area/TextArea.styles.d.ts +11 -0
- package/lib/components/text-area/TextArea.styles.js +73 -0
- package/lib/components/text-area/TextArea.styles.js.map +1 -0
- package/lib/components/tooltip/Tooltip.d.ts +18 -0
- package/lib/components/tooltip/Tooltip.js +32 -0
- package/lib/components/tooltip/Tooltip.js.map +1 -0
- package/lib/components/tooltip/Tooltip.styles.d.ts +1 -0
- package/lib/components/tooltip/Tooltip.styles.js +10 -0
- package/lib/components/tooltip/Tooltip.styles.js.map +1 -0
- package/lib/components/tooltip/interface.d.ts +4 -0
- package/lib/components/tooltip/interface.js +6 -0
- package/lib/components/tooltip/interface.js.map +1 -0
- package/lib/components/tooltip/tooltip-item/TooltipItem.d.ts +7 -0
- package/lib/components/tooltip/tooltip-item/TooltipItem.js +20 -0
- package/lib/components/tooltip/tooltip-item/TooltipItem.js.map +1 -0
- package/lib/components/tooltip/tooltip-item/TooltipItem.styles.d.ts +7 -0
- package/lib/components/tooltip/tooltip-item/TooltipItem.styles.js +29 -0
- package/lib/components/tooltip/tooltip-item/TooltipItem.styles.js.map +1 -0
- package/lib/hooks/uuid.d.ts +1 -0
- package/lib/hooks/uuid.js +14 -0
- package/lib/hooks/uuid.js.map +1 -0
- package/lib/index.d.ts +41 -0
- package/lib/index.js +263 -11
- package/lib/index.js.map +1 -1
- package/lib/types/chayns.d.ts +112 -0
- package/lib/types/chayns.js +13 -0
- package/lib/types/chayns.js.map +1 -0
- package/lib/types/file.d.ts +42 -0
- package/lib/types/file.js +6 -0
- package/lib/types/file.js.map +1 -0
- package/lib/utils/calculate.d.ts +2 -0
- package/lib/utils/calculate.js +40 -0
- package/lib/utils/calculate.js.map +1 -0
- package/lib/utils/fileDialog.d.ts +7 -0
- package/lib/utils/fileDialog.js +74 -0
- package/lib/utils/fileDialog.js.map +1 -0
- package/lib/utils/isTobitEmployee.d.ts +1 -0
- package/lib/utils/isTobitEmployee.js +31 -0
- package/lib/utils/isTobitEmployee.js.map +1 -0
- package/lib/utils/uploadFile.d.ts +9 -0
- package/lib/utils/uploadFile.js +48 -0
- package/lib/utils/uploadFile.js.map +1 -0
- package/package.json +68 -62
package/README.md
CHANGED
|
@@ -26,8 +26,8 @@ yarn add @chayns-components/core
|
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
> **Information:** Since the components have now been implemented with the styled-components
|
|
29
|
-
> library, the styles are delivered directly with the components. There is no need to load an
|
|
30
|
-
>
|
|
29
|
+
> library, the styles are delivered directly with the components. There is no need to load an extra
|
|
30
|
+
> stylesheet anymore.
|
|
31
31
|
|
|
32
32
|
## Usage
|
|
33
33
|
|
|
@@ -40,11 +40,5 @@ const handleButtonClick: MouseEventHandler<HTMLButtonElement> = (event) => {
|
|
|
40
40
|
// Your code
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
<Button onClick={handleButtonClick}>
|
|
44
|
-
Click me!
|
|
45
|
-
</Button>
|
|
43
|
+
<Button onClick={handleButtonClick}>Click me!</Button>;
|
|
46
44
|
```
|
|
47
|
-
|
|
48
|
-
## Components Overview
|
|
49
|
-
|
|
50
|
-
`coming soon`
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta } from '../../types/file';
|
|
2
|
+
export interface PostImageResult {
|
|
3
|
+
key: string;
|
|
4
|
+
base: string;
|
|
5
|
+
meta?: Meta;
|
|
6
|
+
}
|
|
7
|
+
interface PostImageOptions {
|
|
8
|
+
accessToken: string;
|
|
9
|
+
file: File;
|
|
10
|
+
personId: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Uploads an image to the tsimg cloud service
|
|
14
|
+
*/
|
|
15
|
+
export declare const postImage: ({ accessToken, file, personId, }: PostImageOptions) => Promise<PostImageResult>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.postImage = void 0;
|
|
7
|
+
var _fileDialog = require("../../utils/fileDialog");
|
|
8
|
+
/**
|
|
9
|
+
* Uploads an image to the tsimg cloud service
|
|
10
|
+
*/
|
|
11
|
+
const postImage = async _ref => {
|
|
12
|
+
let {
|
|
13
|
+
accessToken,
|
|
14
|
+
file,
|
|
15
|
+
personId
|
|
16
|
+
} = _ref;
|
|
17
|
+
const body = await (0, _fileDialog.getFileAsArrayBuffer)(file);
|
|
18
|
+
const response = await fetch('https://api.tsimg.cloud/image', {
|
|
19
|
+
body,
|
|
20
|
+
headers: {
|
|
21
|
+
Accept: 'application/json',
|
|
22
|
+
Authorization: `bearer ${accessToken}`,
|
|
23
|
+
'Content-Type': 'image/*',
|
|
24
|
+
'X-Person-Id': personId
|
|
25
|
+
},
|
|
26
|
+
method: 'POST'
|
|
27
|
+
});
|
|
28
|
+
if (response.ok) {
|
|
29
|
+
return await response.json();
|
|
30
|
+
}
|
|
31
|
+
throw Error(`Failed to POST image (status code: ${response.status}).`);
|
|
32
|
+
};
|
|
33
|
+
exports.postImage = postImage;
|
|
34
|
+
//# sourceMappingURL=post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post.js","names":["_fileDialog","require","postImage","_ref","accessToken","file","personId","body","getFileAsArrayBuffer","response","fetch","headers","Accept","Authorization","method","ok","json","Error","status","exports"],"sources":["../../../src/api/image/post.ts"],"sourcesContent":["import type { Meta } from '../../types/file';\nimport { getFileAsArrayBuffer } from '../../utils/fileDialog';\n\nexport interface PostImageResult {\n key: string;\n base: string;\n meta?: Meta;\n}\n\ninterface PostImageOptions {\n accessToken: string;\n file: File;\n personId: string;\n}\n\n/**\n * Uploads an image to the tsimg cloud service\n */\nexport const postImage = async ({\n accessToken,\n file,\n personId,\n}: PostImageOptions): Promise<PostImageResult> => {\n const body = await getFileAsArrayBuffer(file);\n\n const response = await fetch('https://api.tsimg.cloud/image', {\n body,\n headers: {\n Accept: 'application/json',\n Authorization: `bearer ${accessToken}`,\n 'Content-Type': 'image/*',\n 'X-Person-Id': personId,\n },\n method: 'POST',\n });\n\n if (response.ok) {\n return (await response.json()) as PostImageResult;\n }\n\n throw Error(`Failed to POST image (status code: ${response.status}).`);\n};\n"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAcA;AACA;AACA;AACO,MAAMC,SAAS,GAAG,MAAAC,IAAA,IAIyB;EAAA,IAJlB;IAC5BC,WAAW;IACXC,IAAI;IACJC;EACc,CAAC,GAAAH,IAAA;EACf,MAAMI,IAAI,GAAG,MAAM,IAAAC,gCAAoB,EAACH,IAAI,CAAC;EAE7C,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAAC,+BAA+B,EAAE;IAC1DH,IAAI;IACJI,OAAO,EAAE;MACLC,MAAM,EAAE,kBAAkB;MAC1BC,aAAa,EAAG,UAAST,WAAY,EAAC;MACtC,cAAc,EAAE,SAAS;MACzB,aAAa,EAAEE;IACnB,CAAC;IACDQ,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,IAAIL,QAAQ,CAACM,EAAE,EAAE;IACb,OAAQ,MAAMN,QAAQ,CAACO,IAAI,CAAC,CAAC;EACjC;EAEA,MAAMC,KAAK,CAAE,sCAAqCR,QAAQ,CAACS,MAAO,IAAG,CAAC;AAC1E,CAAC;AAACC,OAAA,CAAAjB,SAAA,GAAAA,SAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface PostVideoResult {
|
|
2
|
+
id: string;
|
|
3
|
+
originalVideoQuality: string;
|
|
4
|
+
thumbnailUrl: string;
|
|
5
|
+
url: string;
|
|
6
|
+
urlMP4: string;
|
|
7
|
+
}
|
|
8
|
+
interface PostVideoOptions {
|
|
9
|
+
accessToken: string;
|
|
10
|
+
file: File | Blob;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Uploads a video to the streaming service
|
|
14
|
+
*/
|
|
15
|
+
export declare const postVideo: ({ accessToken, file, }: PostVideoOptions) => Promise<PostVideoResult | undefined>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.postVideo = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Uploads a video to the streaming service
|
|
9
|
+
*/
|
|
10
|
+
const postVideo = async _ref => {
|
|
11
|
+
let {
|
|
12
|
+
accessToken,
|
|
13
|
+
file
|
|
14
|
+
} = _ref;
|
|
15
|
+
const formData = new FormData();
|
|
16
|
+
formData.append('files', file);
|
|
17
|
+
const response = await fetch('https://streamingservice.chayns.space/video?disableIntercom=true', {
|
|
18
|
+
body: formData,
|
|
19
|
+
headers: {
|
|
20
|
+
Authorization: `bearer ${accessToken}`
|
|
21
|
+
},
|
|
22
|
+
method: 'POST'
|
|
23
|
+
});
|
|
24
|
+
if (response.ok) {
|
|
25
|
+
const data = await response.json();
|
|
26
|
+
return data[0];
|
|
27
|
+
}
|
|
28
|
+
throw Error(`Failed to POST video (status code: ${response.status}).`);
|
|
29
|
+
};
|
|
30
|
+
exports.postVideo = postVideo;
|
|
31
|
+
//# sourceMappingURL=post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post.js","names":["postVideo","_ref","accessToken","file","formData","FormData","append","response","fetch","body","headers","Authorization","method","ok","data","json","Error","status","exports"],"sources":["../../../src/api/video/post.ts"],"sourcesContent":["export interface PostVideoResult {\n id: string;\n originalVideoQuality: string;\n thumbnailUrl: string;\n url: string;\n urlMP4: string;\n}\n\ninterface PostVideoOptions {\n accessToken: string;\n file: File | Blob;\n}\n\n/**\n * Uploads a video to the streaming service\n */\nexport const postVideo = async ({\n accessToken,\n file,\n}: PostVideoOptions): Promise<PostVideoResult | undefined> => {\n const formData = new FormData();\n\n formData.append('files', file);\n\n const response = await fetch(\n 'https://streamingservice.chayns.space/video?disableIntercom=true',\n {\n body: formData,\n headers: {\n Authorization: `bearer ${accessToken}`,\n },\n method: 'POST',\n }\n );\n\n if (response.ok) {\n const data = (await response.json()) as PostVideoResult[];\n\n return data[0];\n }\n\n throw Error(`Failed to POST video (status code: ${response.status}).`);\n};\n"],"mappings":";;;;;;AAaA;AACA;AACA;AACO,MAAMA,SAAS,GAAG,MAAAC,IAAA,IAGqC;EAAA,IAH9B;IAC5BC,WAAW;IACXC;EACc,CAAC,GAAAF,IAAA;EACf,MAAMG,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;EAE/BD,QAAQ,CAACE,MAAM,CAAC,OAAO,EAAEH,IAAI,CAAC;EAE9B,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CACxB,kEAAkE,EAClE;IACIC,IAAI,EAAEL,QAAQ;IACdM,OAAO,EAAE;MACLC,aAAa,EAAG,UAAST,WAAY;IACzC,CAAC;IACDU,MAAM,EAAE;EACZ,CACJ,CAAC;EAED,IAAIL,QAAQ,CAACM,EAAE,EAAE;IACb,MAAMC,IAAI,GAAI,MAAMP,QAAQ,CAACQ,IAAI,CAAC,CAAuB;IAEzD,OAAOD,IAAI,CAAC,CAAC,CAAC;EAClB;EAEA,MAAME,KAAK,CAAE,sCAAqCT,QAAQ,CAACU,MAAO,IAAG,CAAC;AAC1E,CAAC;AAACC,OAAA,CAAAlB,SAAA,GAAAA,SAAA"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import { FC, ReactNode } from 'react';
|
|
2
|
-
declare
|
|
1
|
+
import React, { ChangeEventHandler, FC, ReactNode, UIEvent } from 'react';
|
|
2
|
+
export declare const AccordionContext: React.Context<{
|
|
3
|
+
isWrapped: boolean;
|
|
4
|
+
}>;
|
|
5
|
+
export type AccordionProps = {
|
|
3
6
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
7
|
+
* Maximum height of the accordion body element. This automatically makes the content of the
|
|
8
|
+
* body element scrollable.
|
|
6
9
|
*/
|
|
7
|
-
|
|
10
|
+
bodyMaxHeight?: number;
|
|
11
|
+
/**
|
|
12
|
+
* The content of the accordion body
|
|
13
|
+
*/
|
|
14
|
+
children: ReactNode;
|
|
8
15
|
/**
|
|
9
16
|
* The icon that is displayed in front of the title
|
|
10
17
|
*/
|
|
@@ -13,19 +20,78 @@ declare type AccordionProps = {
|
|
|
13
20
|
* This can be used to automatically expand the Accordion during the first render.
|
|
14
21
|
*/
|
|
15
22
|
isDefaultOpen?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.
|
|
25
|
+
*/
|
|
26
|
+
isDisabled?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* This can be used so that the Accordion cannot be opened or closed.
|
|
29
|
+
* In addition, in this case the icon is exchanged to mark the Accordions.
|
|
30
|
+
*/
|
|
31
|
+
isFixed?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* This can be used to open the Accordion from the outside.
|
|
34
|
+
*/
|
|
35
|
+
isOpened?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* This will gray out the title of the Accordion to indicate hidden content, for example.
|
|
38
|
+
*/
|
|
39
|
+
isTitleGreyed?: boolean;
|
|
16
40
|
/**
|
|
17
41
|
* This value must be set for nested Accordions. This adjusts the style of
|
|
18
42
|
* the head and the padding of the content.
|
|
19
43
|
*/
|
|
20
44
|
isWrapped?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Function that is executed when the accordion body will be scrolled
|
|
47
|
+
*/
|
|
48
|
+
onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Function that is executed when the accordion will be closed.
|
|
51
|
+
*/
|
|
52
|
+
onClose?: VoidFunction;
|
|
53
|
+
/**
|
|
54
|
+
* Function that is executed when the accordion will be opened.
|
|
55
|
+
*/
|
|
56
|
+
onOpen?: VoidFunction;
|
|
57
|
+
/**
|
|
58
|
+
* Function that is executed when the text of the search in the accordion
|
|
59
|
+
* head changes. When this function is given, the search field is displayed
|
|
60
|
+
* in the Accordion Head.
|
|
61
|
+
*/
|
|
62
|
+
onSearchChange?: ChangeEventHandler<HTMLInputElement>;
|
|
21
63
|
/**
|
|
22
64
|
* Content to be displayed on the right side in the head of the Accordion
|
|
23
65
|
*/
|
|
24
|
-
|
|
66
|
+
rightElement?: ReactNode;
|
|
67
|
+
/**
|
|
68
|
+
* Icon to be displayed on the right side in the search input
|
|
69
|
+
*/
|
|
70
|
+
searchIcon?: string[];
|
|
71
|
+
/**
|
|
72
|
+
* The placeholder to be used for the search
|
|
73
|
+
*/
|
|
74
|
+
searchPlaceholder?: string;
|
|
75
|
+
/**
|
|
76
|
+
* This will force the background color of the accordion to be used even if it is closed and not hovered.
|
|
77
|
+
*/
|
|
78
|
+
shouldForceBackground?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* This will hide the background color of the accordion
|
|
81
|
+
*/
|
|
82
|
+
shouldHideBackground?: boolean;
|
|
25
83
|
/**
|
|
26
84
|
* Title of the Accordion displayed in the head
|
|
27
85
|
*/
|
|
28
86
|
title: string;
|
|
87
|
+
/**
|
|
88
|
+
* Additional elements to be displayed in the header next to the title.
|
|
89
|
+
*/
|
|
90
|
+
titleElement?: ReactNode;
|
|
91
|
+
/**
|
|
92
|
+
* This will render the Accordion closed on the first render.
|
|
93
|
+
*/
|
|
94
|
+
shouldRenderClosed?: boolean;
|
|
29
95
|
};
|
|
30
96
|
declare const Accordion: FC<AccordionProps>;
|
|
31
97
|
export default Accordion;
|
|
@@ -1,193 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
6
|
+
exports.default = exports.AccordionContext = void 0;
|
|
10
7
|
var _framerMotion = require("framer-motion");
|
|
11
|
-
|
|
12
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
|
-
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
15
|
-
|
|
9
|
+
var _uuid = require("../../hooks/uuid");
|
|
16
10
|
var _AccordionBody = _interopRequireDefault(require("./accordion-body/AccordionBody"));
|
|
17
|
-
|
|
18
|
-
var _AccordionContent = _interopRequireDefault(require("./accordion-content/AccordionContent"));
|
|
19
|
-
|
|
11
|
+
var _AccordionGroup = require("./accordion-group/AccordionGroup");
|
|
20
12
|
var _AccordionHead = _interopRequireDefault(require("./accordion-head/AccordionHead"));
|
|
21
|
-
|
|
22
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
23
|
-
|
|
13
|
+
var _Accordion = require("./Accordion.styles");
|
|
24
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
31
|
-
|
|
32
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
33
|
-
|
|
34
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
35
|
-
|
|
36
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
37
|
-
|
|
38
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
39
|
-
|
|
40
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
41
|
-
|
|
42
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
43
|
-
|
|
44
|
-
var StyledAccordion = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n\n margin-bottom: ", ";\n\n transition: background-color 0.2s ease, border-radius 0.2s ease, box-shadow 0.2s ease,\n margin-bottom 0.2s ease;\n\n ", "\n"])), function (_ref) {
|
|
45
|
-
var isOpen = _ref.isOpen,
|
|
46
|
-
isWrapped = _ref.isWrapped;
|
|
47
|
-
return isOpen && !isWrapped && (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background-color: rgba(", ", 0.85);\n border-radius: 3px; // ToDo: Add correct border-radius here\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.15); // ToDo: Add correct box-shadow here\n "])), function (_ref2) {
|
|
48
|
-
var theme = _ref2.theme;
|
|
49
|
-
return theme['100-rgb'];
|
|
50
|
-
});
|
|
51
|
-
}, function (_ref3) {
|
|
52
|
-
var isOpen = _ref3.isOpen,
|
|
53
|
-
isWrapped = _ref3.isWrapped;
|
|
54
|
-
return isOpen && !isWrapped ? '30px' : '0px';
|
|
55
|
-
}, function (_ref4) {
|
|
56
|
-
var isWrapped = _ref4.isWrapped;
|
|
57
|
-
return !isWrapped && (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-top: 10px;\n\n &:hover {\n background-color: rgba(", ", 0.85);\n }\n "])), function (_ref5) {
|
|
58
|
-
var theme = _ref5.theme;
|
|
59
|
-
return theme['100-rgb'];
|
|
60
|
-
});
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
const AccordionContext = exports.AccordionContext = /*#__PURE__*/_react.default.createContext({
|
|
18
|
+
isWrapped: false
|
|
61
19
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
20
|
+
AccordionContext.displayName = 'AccordionContext';
|
|
21
|
+
const Accordion = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
bodyMaxHeight,
|
|
24
|
+
children,
|
|
25
|
+
icon,
|
|
26
|
+
isDefaultOpen = false,
|
|
27
|
+
isDisabled = false,
|
|
28
|
+
isFixed = false,
|
|
29
|
+
isOpened,
|
|
30
|
+
isTitleGreyed = false,
|
|
31
|
+
isWrapped = false,
|
|
32
|
+
onBodyScroll,
|
|
33
|
+
onClose,
|
|
34
|
+
onOpen,
|
|
35
|
+
onSearchChange,
|
|
36
|
+
rightElement,
|
|
37
|
+
searchIcon,
|
|
38
|
+
searchPlaceholder,
|
|
39
|
+
shouldForceBackground = false,
|
|
40
|
+
shouldHideBackground = false,
|
|
41
|
+
title,
|
|
42
|
+
titleElement,
|
|
43
|
+
shouldRenderClosed = false
|
|
44
|
+
} = _ref;
|
|
45
|
+
const {
|
|
46
|
+
openAccordionUuid,
|
|
47
|
+
updateOpenAccordionUuid
|
|
48
|
+
} = (0, _react.useContext)(_AccordionGroup.AccordionGroupContext);
|
|
49
|
+
const {
|
|
50
|
+
isWrapped: isParentWrapped
|
|
51
|
+
} = (0, _react.useContext)(AccordionContext);
|
|
52
|
+
const [isAccordionOpen, setIsAccordionOpen] = (0, _react.useState)(isDefaultOpen !== null && isDefaultOpen !== void 0 ? isDefaultOpen : isOpened);
|
|
53
|
+
const uuid = (0, _uuid.useUuid)();
|
|
54
|
+
const isInitialRenderRef = (0, _react.useRef)(true);
|
|
55
|
+
const isInGroup = typeof updateOpenAccordionUuid === 'function';
|
|
56
|
+
const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;
|
|
57
|
+
const handleHeadClick = (0, _react.useCallback)(() => {
|
|
58
|
+
if (isDisabled) {
|
|
59
|
+
return;
|
|
88
60
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}, [group, isOpen]);
|
|
92
|
-
var handleAccordionOpen = (0, _react.useCallback)(function (_ref7) {
|
|
93
|
-
var detail = _ref7.detail;
|
|
94
|
-
|
|
95
|
-
if (isOpen && group === detail.group && accordionRef.current !== detail.ref.current) {
|
|
96
|
-
setIsOpen(false);
|
|
61
|
+
if (typeof updateOpenAccordionUuid === 'function') {
|
|
62
|
+
updateOpenAccordionUuid(uuid);
|
|
97
63
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
isWrapped: isWrapped
|
|
110
|
-
});
|
|
111
|
-
}, [children, isWrapped]);
|
|
112
|
-
return /*#__PURE__*/_react.default.createElement(_framerMotion.MotionConfig, {
|
|
113
|
-
transition: {
|
|
114
|
-
duration: 0.25
|
|
64
|
+
setIsAccordionOpen(currentIsAccordionOpen => !currentIsAccordionOpen);
|
|
65
|
+
}, [isDisabled, updateOpenAccordionUuid, uuid]);
|
|
66
|
+
(0, _react.useEffect)(() => {
|
|
67
|
+
if (isInitialRenderRef.current) {
|
|
68
|
+
isInitialRenderRef.current = false;
|
|
69
|
+
} else if (isOpen) {
|
|
70
|
+
if (typeof onOpen === 'function') {
|
|
71
|
+
onOpen();
|
|
72
|
+
}
|
|
73
|
+
} else if (typeof onClose === 'function') {
|
|
74
|
+
onClose();
|
|
115
75
|
}
|
|
116
|
-
},
|
|
76
|
+
}, [isOpen, onClose, onOpen]);
|
|
77
|
+
(0, _react.useEffect)(() => {
|
|
78
|
+
if (isDefaultOpen) {
|
|
79
|
+
if (typeof updateOpenAccordionUuid === 'function') {
|
|
80
|
+
updateOpenAccordionUuid(uuid, {
|
|
81
|
+
shouldOnlyOpen: true
|
|
82
|
+
});
|
|
83
|
+
} else {
|
|
84
|
+
setIsAccordionOpen(true);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, [isDefaultOpen, updateOpenAccordionUuid, uuid]);
|
|
88
|
+
(0, _react.useEffect)(() => {
|
|
89
|
+
if (typeof isOpened === 'boolean') {
|
|
90
|
+
if (typeof updateOpenAccordionUuid === 'function' && isOpened) {
|
|
91
|
+
updateOpenAccordionUuid(uuid);
|
|
92
|
+
} else {
|
|
93
|
+
setIsAccordionOpen(isOpened);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}, [isOpened, updateOpenAccordionUuid, uuid]);
|
|
97
|
+
const accordionContextProviderValue = (0, _react.useMemo)(() => ({
|
|
98
|
+
isWrapped
|
|
99
|
+
}), [isWrapped]);
|
|
100
|
+
return /*#__PURE__*/_react.default.createElement(_Accordion.StyledAccordion, {
|
|
117
101
|
className: "beta-chayns-accordion",
|
|
118
102
|
isOpen: isOpen,
|
|
103
|
+
isParentWrapped: isParentWrapped,
|
|
119
104
|
isWrapped: isWrapped,
|
|
120
|
-
|
|
105
|
+
shouldForceBackground: shouldForceBackground,
|
|
106
|
+
shouldHideBackground: shouldHideBackground
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(AccordionContext.Provider, {
|
|
108
|
+
value: accordionContextProviderValue
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement(_framerMotion.MotionConfig, {
|
|
110
|
+
transition: {
|
|
111
|
+
type: 'tween'
|
|
112
|
+
}
|
|
121
113
|
}, /*#__PURE__*/_react.default.createElement(_AccordionHead.default, {
|
|
122
114
|
icon: icon,
|
|
123
115
|
isOpen: isOpen,
|
|
116
|
+
isFixed: isFixed,
|
|
117
|
+
isTitleGreyed: isTitleGreyed || isDisabled,
|
|
124
118
|
isWrapped: isWrapped,
|
|
125
119
|
onClick: handleHeadClick,
|
|
126
|
-
|
|
127
|
-
|
|
120
|
+
onSearchChange: onSearchChange,
|
|
121
|
+
rightElement: rightElement,
|
|
122
|
+
searchIcon: searchIcon,
|
|
123
|
+
searchPlaceholder: searchPlaceholder,
|
|
124
|
+
title: title,
|
|
125
|
+
titleElement: titleElement
|
|
128
126
|
}), /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
|
|
129
127
|
initial: false
|
|
130
|
-
}, isOpen && /*#__PURE__*/_react.default.createElement(_AccordionBody.default,
|
|
128
|
+
}, (isOpen || shouldRenderClosed) && /*#__PURE__*/_react.default.createElement(_AccordionBody.default, {
|
|
129
|
+
maxHeight: bodyMaxHeight,
|
|
130
|
+
onScroll: onBodyScroll,
|
|
131
|
+
shouldHideBody: shouldRenderClosed && !isOpen
|
|
132
|
+
}, children)))));
|
|
131
133
|
};
|
|
132
|
-
|
|
133
134
|
Accordion.displayName = 'Accordion';
|
|
134
|
-
var _default = Accordion;
|
|
135
|
-
|
|
136
|
-
exports.default = _default;
|
|
137
|
-
|
|
138
|
-
var isAccordion = function isAccordion(maybeAccordion) {
|
|
139
|
-
return maybeAccordion !== null && maybeAccordion !== undefined && typeof maybeAccordion !== 'boolean' && typeof maybeAccordion !== 'string' && typeof maybeAccordion !== 'number' && 'type' in maybeAccordion && (maybeAccordion === null || maybeAccordion === void 0 ? void 0 : maybeAccordion.type) === Accordion;
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
var getBodyItems = function getBodyItems(children, _ref8) {
|
|
143
|
-
var _children;
|
|
144
|
-
|
|
145
|
-
var isWrapped = _ref8.isWrapped;
|
|
146
|
-
var items = [];
|
|
147
|
-
var contentItems = [];
|
|
148
|
-
|
|
149
|
-
if (children && typeof children !== 'boolean' && typeof children !== 'string' && typeof children !== 'number' && 'type' in children && ((_children = children) === null || _children === void 0 ? void 0 : _children.type) === _react.default.Fragment) {
|
|
150
|
-
children = children.props.children;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (Array.isArray(children)) {
|
|
154
|
-
children.forEach(function (child) {
|
|
155
|
-
if (!child) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
if (isAccordion(child)) {
|
|
160
|
-
if (contentItems.length > 0) {
|
|
161
|
-
items.push( /*#__PURE__*/_react.default.createElement(_AccordionContent.default, {
|
|
162
|
-
key: "accordionContent__".concat(items.length),
|
|
163
|
-
isWrapped: isWrapped
|
|
164
|
-
}, contentItems));
|
|
165
|
-
contentItems = [];
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
items.push(child);
|
|
169
|
-
} else {
|
|
170
|
-
contentItems.push(child);
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
if (contentItems.length > 0) {
|
|
175
|
-
items.push( /*#__PURE__*/_react.default.createElement(_AccordionContent.default, {
|
|
176
|
-
key: "accordionContent__".concat(items.length),
|
|
177
|
-
isWrapped: isWrapped
|
|
178
|
-
}, contentItems));
|
|
179
|
-
}
|
|
180
|
-
} else {
|
|
181
|
-
if (isAccordion(children)) {
|
|
182
|
-
items.push(children);
|
|
183
|
-
} else {
|
|
184
|
-
items.push( /*#__PURE__*/_react.default.createElement(_AccordionContent.default, {
|
|
185
|
-
key: "accordionContent",
|
|
186
|
-
isWrapped: isWrapped
|
|
187
|
-
}, children));
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return items;
|
|
192
|
-
}; //endregion
|
|
135
|
+
var _default = exports.default = Accordion;
|
|
193
136
|
//# sourceMappingURL=Accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/accordion/Accordion.tsx"],"names":["StyledAccordion","styled","div","isOpen","isWrapped","css","theme","Accordion","children","group","icon","isDefaultOpen","right","title","setIsOpen","accordionRef","handleHeadClick","customEvent","CustomEvent","detail","ref","document","body","dispatchEvent","handleAccordionOpen","current","addEventListener","removeEventListener","items","getBodyItems","duration","displayName","isAccordion","maybeAccordion","undefined","type","contentItems","React","Fragment","props","Array","isArray","forEach","child","length","push"],"mappings":"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","sourcesContent":["import { AnimatePresence, MotionConfig } from 'framer-motion';\nimport React, { FC, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport AccordionContent from './accordion-content/AccordionContent';\nimport AccordionHead from './accordion-head/AccordionHead';\n\ntype AccordionProps = {\n /**\n * Defines the group of the Accordion. Accordions with the same group are\n * automatically closed when an Accordion of the group is opened.\n */\n group?: string;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This value must be set for nested Accordions. This adjusts the style of\n * the head and the padding of the content.\n */\n isWrapped?: boolean;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n right?: ReactNode;\n /**\n * Title of the Accordion displayed in the head\n */\n title: string;\n};\n\ninterface AccordionOpenData {\n group: string;\n ref: React.RefObject<HTMLDivElement>;\n}\n\ntype StyledMotionAccordionProps = Omit<AccordionProps, 'title'> & {\n isOpen: boolean;\n};\n\nconst StyledAccordion = styled.div<StyledMotionAccordionProps>`\n ${({ isOpen, isWrapped }) =>\n isOpen &&\n !isWrapped &&\n css`\n background-color: rgba(${({ theme }) => theme['100-rgb']}, 0.85);\n border-radius: 3px; // ToDo: Add correct border-radius here\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.15); // ToDo: Add correct box-shadow here\n `}\n\n margin-bottom: ${({ isOpen, isWrapped }) => (isOpen && !isWrapped ? '30px' : '0px')};\n\n transition: background-color 0.2s ease, border-radius 0.2s ease, box-shadow 0.2s ease,\n margin-bottom 0.2s ease;\n\n ${({ isWrapped }) =>\n !isWrapped &&\n css`\n margin-top: 10px;\n\n &:hover {\n background-color: rgba(${({ theme }) => theme['100-rgb']}, 0.85);\n }\n `}\n`;\n\nconst Accordion: FC<AccordionProps> = ({\n children,\n group,\n icon,\n isDefaultOpen = false,\n isWrapped,\n right,\n title,\n}) => {\n const [isOpen, setIsOpen] = useState(isDefaultOpen);\n\n const accordionRef = useRef<HTMLDivElement>(null);\n\n const handleHeadClick = useCallback(() => {\n if (!isOpen && typeof group === 'string') {\n const customEvent = new CustomEvent<AccordionOpenData>('accordionOpen', {\n detail: { group, ref: accordionRef },\n });\n\n document.body.dispatchEvent(customEvent);\n }\n\n setIsOpen(!isOpen);\n }, [group, isOpen]);\n\n const handleAccordionOpen = useCallback(\n ({ detail }: CustomEvent<AccordionOpenData>) => {\n if (isOpen && group === detail.group && accordionRef.current !== detail.ref.current) {\n setIsOpen(false);\n }\n },\n [group, isOpen]\n );\n\n useEffect(() => {\n // @ts-expect-error: Type is correct here because its a custom event\n document.body.addEventListener('accordionOpen', handleAccordionOpen);\n\n return () => {\n // @ts-expect-error: Type is correct here because its a custom event\n document.body.removeEventListener('accordionOpen', handleAccordionOpen);\n };\n }, [handleAccordionOpen]);\n\n const items = useMemo(() => getBodyItems(children, { isWrapped }), [children, isWrapped]);\n\n return (\n <MotionConfig transition={{ duration: 0.25 }}>\n <StyledAccordion\n className=\"beta-chayns-accordion\"\n isOpen={isOpen}\n isWrapped={isWrapped}\n ref={accordionRef}\n >\n <AccordionHead\n icon={icon}\n isOpen={isOpen}\n isWrapped={isWrapped}\n onClick={handleHeadClick}\n right={right}\n title={title}\n />\n <AnimatePresence initial={false}>\n {isOpen && <AccordionBody>{items}</AccordionBody>}\n </AnimatePresence>\n </StyledAccordion>\n </MotionConfig>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n\n//region Utils\nconst isAccordion = (maybeAccordion: ReactNode): boolean =>\n maybeAccordion !== null &&\n maybeAccordion !== undefined &&\n typeof maybeAccordion !== 'boolean' &&\n typeof maybeAccordion !== 'string' &&\n typeof maybeAccordion !== 'number' &&\n 'type' in maybeAccordion &&\n maybeAccordion?.type === Accordion;\n\ninterface GetBodyItemsOptions {\n isWrapped?: boolean;\n}\n\nconst getBodyItems = (children: ReactNode, { isWrapped }: GetBodyItemsOptions) => {\n const items: ReactNode[] = [];\n let contentItems: ReactNode[] = [];\n\n if (\n children &&\n typeof children !== 'boolean' &&\n typeof children !== 'string' &&\n typeof children !== 'number' &&\n 'type' in children &&\n children?.type === React.Fragment\n ) {\n children = children.props.children;\n }\n\n if (Array.isArray(children)) {\n children.forEach((child) => {\n if (!child) {\n return;\n }\n\n if (isAccordion(child)) {\n if (contentItems.length > 0) {\n items.push(\n <AccordionContent\n key={`accordionContent__${items.length}`}\n isWrapped={isWrapped}\n >\n {contentItems}\n </AccordionContent>\n );\n\n contentItems = [];\n }\n items.push(child);\n } else {\n contentItems.push(child as JSX.Element);\n }\n });\n\n if (contentItems.length > 0) {\n items.push(\n <AccordionContent key={`accordionContent__${items.length}`} isWrapped={isWrapped}>\n {contentItems}\n </AccordionContent>\n );\n }\n } else {\n if (isAccordion(children)) {\n items.push(children);\n } else {\n items.push(\n <AccordionContent key=\"accordionContent\" isWrapped={isWrapped}>\n {children}\n </AccordionContent>\n );\n }\n }\n\n return items;\n};\n//endregion\n"],"file":"Accordion.js"}
|
|
1
|
+
{"version":3,"file":"Accordion.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_uuid","_AccordionBody","_interopRequireDefault","_AccordionGroup","_AccordionHead","_Accordion","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","AccordionContext","exports","React","createContext","isWrapped","displayName","Accordion","_ref","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onOpen","onSearchChange","rightElement","searchIcon","searchPlaceholder","shouldForceBackground","shouldHideBackground","title","titleElement","shouldRenderClosed","openAccordionUuid","updateOpenAccordionUuid","useContext","AccordionGroupContext","isParentWrapped","isAccordionOpen","setIsAccordionOpen","useState","uuid","useUuid","isInitialRenderRef","useRef","isInGroup","isOpen","handleHeadClick","useCallback","currentIsAccordionOpen","useEffect","current","shouldOnlyOpen","accordionContextProviderValue","useMemo","createElement","StyledAccordion","className","Provider","value","MotionConfig","transition","type","onClick","AnimatePresence","initial","maxHeight","onScroll","shouldHideBody","_default"],"sources":["../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { StyledAccordion } from './Accordion.styles';\n\nexport const AccordionContext = React.createContext({ isWrapped: false });\n\nAccordionContext.displayName = 'AccordionContext';\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside.\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * This value must be set for nested Accordions. This adjusts the style of\n * the head and the padding of the content.\n */\n isWrapped?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * Icon to be displayed on the right side in the search input\n */\n searchIcon?: string[];\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n isWrapped = false,\n onBodyScroll,\n onClose,\n onOpen,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n shouldForceBackground = false,\n shouldHideBackground = false,\n title,\n titleElement,\n shouldRenderClosed = false,\n}) => {\n const { openAccordionUuid, updateOpenAccordionUuid } = useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const isInGroup = typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [isOpen, onClose, onOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(() => ({ isWrapped }), [isWrapped]);\n\n return (\n <StyledAccordion\n className=\"beta-chayns-accordion\"\n isOpen={isOpen}\n isParentWrapped={isParentWrapped}\n isWrapped={isWrapped}\n shouldForceBackground={shouldForceBackground}\n shouldHideBackground={shouldHideBackground}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n icon={icon}\n isOpen={isOpen}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchIcon={searchIcon}\n searchPlaceholder={searchPlaceholder}\n title={title}\n titleElement={titleElement}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n {children}\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AccordionProps } from './Accordion';
|
|
2
|
+
export declare const StyledAccordion: import("styled-components").StyledComponent<"div", any, {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
isParentWrapped: boolean;
|
|
5
|
+
} & {
|
|
6
|
+
theme: import("../color-scheme-provider/ColorSchemeProvider").Theme;
|
|
7
|
+
} & Pick<AccordionProps, "isWrapped" | "shouldForceBackground" | "shouldHideBackground">, never>;
|