@progressiveui/react 1.22.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/.storybook/Logo.js +62 -0
- package/.storybook/WfpTheme.js +38 -0
- package/.storybook/main.ts +42 -0
- package/.storybook/manager.js +9 -0
- package/.storybook/preview.tsx +72 -0
- package/.storybook/reactHookFormDecorator.module.scss +5 -0
- package/.storybook/reactHookFormDecorator.tsx +59 -0
- package/.storybook/storybook.scss +60 -0
- package/.storybook/theme.js +14 -0
- package/LICENSE +201 -0
- package/README.md +15 -0
- package/config/jest/cssTransform.js +13 -0
- package/config/jest/fileTransform.js +11 -0
- package/config/jest/jsTransform.js +8 -0
- package/config/jest/setup.js +16 -0
- package/config/polyfills.js +22 -0
- package/es/dist/components/Accordion/__tests__/utils.d.ts +12 -0
- package/es/dist/components/Accordion/components/Accordion.d.ts +7 -0
- package/es/dist/components/Accordion/components/AccordionItem.d.ts +46 -0
- package/es/dist/components/Accordion/components/AccordionProvider.d.ts +7 -0
- package/es/dist/components/Accordion/components/ControlledAccordion.d.ts +8 -0
- package/es/dist/components/Accordion/components/withAccordionItem.d.ts +11 -0
- package/es/dist/components/Accordion/hooks/useAccordion.d.ts +5 -0
- package/es/dist/components/Accordion/hooks/useAccordionContext.d.ts +5 -0
- package/es/dist/components/Accordion/hooks/useAccordionItem.d.ts +7 -0
- package/es/dist/components/Accordion/hooks/useAccordionItemEffect.d.ts +13 -0
- package/es/dist/components/Accordion/hooks/useAccordionProvider.d.ts +3 -0
- package/es/dist/components/Accordion/hooks/useAccordionState.d.ts +14 -0
- package/es/dist/components/Accordion/hooks/useHeightTransition.d.ts +4 -0
- package/es/dist/components/Accordion/hooks/useId.d.ts +3 -0
- package/es/dist/components/Accordion/hooks/useMergeRef.d.ts +4 -0
- package/es/dist/components/Accordion/index.d.ts +17 -0
- package/es/dist/components/Accordion/utils/bem.d.ts +7 -0
- package/es/dist/components/Accordion/utils/constants.d.ts +58 -0
- package/es/dist/components/Accordion/utils/mergeProps.d.ts +2 -0
- package/es/dist/components/Accordion/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/es/dist/components/AnchorNavigation/AnchorNavigation.d.ts +6 -0
- package/es/dist/components/AnchorNavigation/index.d.ts +1 -0
- package/es/dist/components/AuthLayout/AuthLayout.d.ts +20 -0
- package/es/dist/components/AuthLayout/index.d.ts +1 -0
- package/es/dist/components/Avatar/Avatar.d.ts +33 -0
- package/es/dist/components/Avatar/index.d.ts +1 -0
- package/es/dist/components/BannerNavigation/BannerNavigation.d.ts +20 -0
- package/es/dist/components/BannerNavigation/BannerNavigationWithContent.d.ts +13 -0
- package/es/dist/components/BannerNavigation/index.d.ts +2 -0
- package/es/dist/components/Breadcrumb/Breadcrumb.d.ts +11 -0
- package/es/dist/components/Breadcrumb/index.d.ts +1 -0
- package/es/dist/components/BreadcrumbHome/BreadcrumbHome.d.ts +13 -0
- package/es/dist/components/BreadcrumbHome/index.d.ts +1 -0
- package/es/dist/components/BreadcrumbItem/BreadcrumbItem.d.ts +21 -0
- package/es/dist/components/BreadcrumbItem/index.d.ts +1 -0
- package/es/dist/components/Button/Button.Skeleton.d.ts +7 -0
- package/es/dist/components/Button/Button.d.ts +55 -0
- package/es/dist/components/Button/index.d.ts +1 -0
- package/es/dist/components/Card/Card.d.ts +61 -0
- package/es/dist/components/Card/CardExternal.d.ts +37 -0
- package/es/dist/components/Card/index.d.ts +2 -0
- package/es/dist/components/Checkbox/Checkbox.d.ts +37 -0
- package/es/dist/components/Checkbox/index.d.ts +1 -0
- package/es/dist/components/ContentSwitcher/ContentSwitcher.d.ts +12 -0
- package/es/dist/components/ContentSwitcher/index.d.ts +1 -0
- package/es/dist/components/ContextMenu/ContextMenu.d.ts +31 -0
- package/es/dist/components/ContextMenu/index.d.ts +1 -0
- package/es/dist/components/Credits/Credits.d.ts +10 -0
- package/es/dist/components/Credits/index.d.ts +1 -0
- package/es/dist/components/DatePicker/DatePicker.d.ts +8 -0
- package/es/dist/components/DatePicker/DatePickerInput.d.ts +38 -0
- package/es/dist/components/DatePicker/DateRangePicker.d.ts +8 -0
- package/es/dist/components/DatePicker/DateRangePickerInput.d.ts +34 -0
- package/es/dist/components/DatePicker/index.d.ts +4 -0
- package/es/dist/components/DatePickerNew/DateRangePickerInput.d.ts +11 -0
- package/es/dist/components/Empty/Empty.d.ts +40 -0
- package/es/dist/components/Empty/index.d.ts +1 -0
- package/es/dist/components/Footer/Footer.d.ts +47 -0
- package/es/dist/components/Footer/FooterExternal.d.ts +22 -0
- package/es/dist/components/Footer/index.d.ts +2 -0
- package/es/dist/components/Form/Form.d.ts +15 -0
- package/es/dist/components/Form/index.d.ts +1 -0
- package/es/dist/components/FormGroup/FormGroup.d.ts +14 -0
- package/es/dist/components/FormGroup/index.d.ts +1 -0
- package/es/dist/components/FormHint/FormHint.d.ts +15 -0
- package/es/dist/components/FormHint/index.d.ts +1 -0
- package/es/dist/components/FormItem/FormItem.d.ts +17 -0
- package/es/dist/components/FormItem/index.d.ts +1 -0
- package/es/dist/components/FormLabel/FormLabel.d.ts +15 -0
- package/es/dist/components/FormLabel/index.d.ts +1 -0
- package/es/dist/components/Hero/Hero.d.ts +53 -0
- package/es/dist/components/Hero/HeroExternal.d.ts +22 -0
- package/es/dist/components/Hero/index.d.ts +2 -0
- package/es/dist/components/InfoBar/InfoBar.d.ts +23 -0
- package/es/dist/components/InfoBar/index.d.ts +1 -0
- package/es/dist/components/InlineLoading/InlineLoading.d.ts +26 -0
- package/es/dist/components/InlineLoading/index.d.ts +1 -0
- package/es/dist/components/Input/Input.d.ts +152 -0
- package/es/dist/components/Input/index.d.ts +3 -0
- package/es/dist/components/Input/useInput.d.ts +123 -0
- package/es/dist/components/InputGroup/InputGroup.d.ts +48 -0
- package/es/dist/components/InputGroup/index.d.ts +1 -0
- package/es/dist/components/Item/Item.d.ts +59 -0
- package/es/dist/components/Item/index.d.ts +1 -0
- package/es/dist/components/Link/Link.d.ts +37 -0
- package/es/dist/components/Link/index.d.ts +1 -0
- package/es/dist/components/List/List.d.ts +32 -0
- package/es/dist/components/List/ListItem.d.ts +25 -0
- package/es/dist/components/List/index.d.ts +2 -0
- package/es/dist/components/Loading/Loading.d.ts +16 -0
- package/es/dist/components/Loading/index.d.ts +7 -0
- package/es/dist/components/MainNavigation/MainNavigation.d.ts +51 -0
- package/es/dist/components/MainNavigation/MainNavigationContext.d.ts +25 -0
- package/es/dist/components/MainNavigation/MainNavigationExternal.d.ts +72 -0
- package/es/dist/components/MainNavigation/MobileButton.d.ts +17 -0
- package/es/dist/components/MainNavigation/index.d.ts +4 -0
- package/es/dist/components/MainNavigation/useMainNavigation.d.ts +7 -0
- package/es/dist/components/MainNavigationItem/MainNavigationItem.d.ts +29 -0
- package/es/dist/components/MainNavigationItem/index.d.ts +1 -0
- package/es/dist/components/MdxComponents/MdxComponentsNew.d.ts +2 -0
- package/es/dist/components/MdxComponents/index.d.ts +1 -0
- package/es/dist/components/Modal/Modal.d.ts +122 -0
- package/es/dist/components/Modal/ModalFooter.d.ts +8 -0
- package/es/dist/components/Modal/index.d.ts +2 -0
- package/es/dist/components/ModalWrapper/ModalWrapper.d.ts +53 -0
- package/es/dist/components/ModalWrapper/index.d.ts +1 -0
- package/es/dist/components/Module/Module.d.ts +38 -0
- package/es/dist/components/Module/ModuleBody.d.ts +21 -0
- package/es/dist/components/Module/ModuleFooter.d.ts +10 -0
- package/es/dist/components/Module/ModuleHeader.d.ts +16 -0
- package/es/dist/components/Module/index.d.ts +4 -0
- package/es/dist/components/Notification/Callout.d.ts +59 -0
- package/es/dist/components/Notification/NotificationActionButton.d.ts +18 -0
- package/es/dist/components/Notification/NotificationButton.d.ts +36 -0
- package/es/dist/components/Notification/NotificationIcon.d.ts +8 -0
- package/es/dist/components/Notification/NotificationTextDetails.d.ts +10 -0
- package/es/dist/components/Notification/ToastNotification.d.ts +10 -0
- package/es/dist/components/Notification/index.d.ts +5 -0
- package/es/dist/components/NumberInput/NumberInput.Skeleton.d.ts +10 -0
- package/es/dist/components/NumberInput/NumberInput.d.ts +64 -0
- package/es/dist/components/NumberInput/index.d.ts +2 -0
- package/es/dist/components/Pagination/Pagination.d.ts +92 -0
- package/es/dist/components/Pagination/index.d.ts +1 -0
- package/es/dist/components/RadioButton/RadioButton.d.ts +27 -0
- package/es/dist/components/RadioButton/index.d.ts +2 -0
- package/es/dist/components/ReadMore/ReadMore.d.ts +45 -0
- package/es/dist/components/ReadMore/index.d.ts +1 -0
- package/es/dist/components/Search/Search.d.ts +50 -0
- package/es/dist/components/Search/index.d.ts +1 -0
- package/es/dist/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -0
- package/es/dist/components/SecondaryNavigation/SecondaryNavigationTitle.d.ts +8 -0
- package/es/dist/components/SecondaryNavigation/index.d.ts +2 -0
- package/es/dist/components/Select/Select.d.ts +24 -0
- package/es/dist/components/Select/index.d.ts +1 -0
- package/es/dist/components/SelectItem/SelectItem.d.ts +28 -0
- package/es/dist/components/SelectItem/index.d.ts +1 -0
- package/es/dist/components/SelectItemGroup/SelectItemGroup.d.ts +21 -0
- package/es/dist/components/SelectItemGroup/index.d.ts +1 -0
- package/es/dist/components/Sidebar/Sidebar.d.ts +46 -0
- package/es/dist/components/Sidebar/index.d.ts +1 -0
- package/es/dist/components/SkeletonText/SkeletonText.d.ts +22 -0
- package/es/dist/components/SkeletonText/index.d.ts +1 -0
- package/es/dist/components/Slider/Slider.d.ts +71 -0
- package/es/dist/components/Slider/index.d.ts +1 -0
- package/es/dist/components/StepNavigation/StepNavigation.Skeleton.d.ts +2 -0
- package/es/dist/components/StepNavigation/StepNavigation.d.ts +42 -0
- package/es/dist/components/StepNavigation/index.d.ts +2 -0
- package/es/dist/components/StepNavigationItem/StepNavigationItem.d.ts +55 -0
- package/es/dist/components/StepNavigationItem/index.d.ts +1 -0
- package/es/dist/components/Story/Story.d.ts +7 -0
- package/es/dist/components/Story/index.d.ts +1 -0
- package/es/dist/components/SubNavigation/SubNavigation.d.ts +5 -0
- package/es/dist/components/SubNavigation/SubNavigationContent.d.ts +9 -0
- package/es/dist/components/SubNavigation/SubNavigationFilter.d.ts +9 -0
- package/es/dist/components/SubNavigation/SubNavigationGroup.d.ts +17 -0
- package/es/dist/components/SubNavigation/SubNavigationHeader.d.ts +9 -0
- package/es/dist/components/SubNavigation/SubNavigationItem.d.ts +9 -0
- package/es/dist/components/SubNavigation/SubNavigationLink.d.ts +9 -0
- package/es/dist/components/SubNavigation/SubNavigationList.d.ts +9 -0
- package/es/dist/components/SubNavigation/SubNavigationTitle.d.ts +9 -0
- package/es/dist/components/SubNavigation/index.d.ts +9 -0
- package/es/dist/components/Tab/Tab.d.ts +83 -0
- package/es/dist/components/Tab/index.d.ts +2 -0
- package/es/dist/components/Tab/useTab.d.ts +12 -0
- package/es/dist/components/TabContent/TabContent.d.ts +13 -0
- package/es/dist/components/TabContent/index.d.ts +1 -0
- package/es/dist/components/Table/Table.d.ts +8 -0
- package/es/dist/components/Table/TableSorting.d.ts +11 -0
- package/es/dist/components/Table/index.d.ts +2 -0
- package/es/dist/components/TablePagination/TablePagination.d.ts +33 -0
- package/es/dist/components/TablePagination/index.d.ts +1 -0
- package/es/dist/components/Tabs/Tabs.d.ts +67 -0
- package/es/dist/components/Tabs/TabsContext.d.ts +8 -0
- package/es/dist/components/Tabs/index.d.ts +1 -0
- package/es/dist/components/Tag/Tag.d.ts +14 -0
- package/es/dist/components/Tag/index.d.ts +2 -0
- package/es/dist/components/Text/Text.d.ts +30 -0
- package/es/dist/components/Text/index.d.ts +1 -0
- package/es/dist/components/TextArea/TextArea.d.ts +8 -0
- package/es/dist/components/TextArea/index.d.ts +1 -0
- package/es/dist/components/TextInput/TextInput.d.ts +7 -0
- package/es/dist/components/TextInput/index.d.ts +1 -0
- package/es/dist/components/Toggle/Toggle.d.ts +38 -0
- package/es/dist/components/Toggle/index.d.ts +1 -0
- package/es/dist/components/Tooltip/Tooltip.d.ts +103 -0
- package/es/dist/components/Tooltip/index.d.ts +2 -0
- package/es/dist/components/Unit/InvalidUnit.d.ts +2 -0
- package/es/dist/components/Unit/SimpleCalc.d.ts +17 -0
- package/es/dist/components/Unit/StringUnit.d.ts +2 -0
- package/es/dist/components/Unit/SvgUnit.d.ts +2 -0
- package/es/dist/components/Unit/Unit.d.ts +54 -0
- package/es/dist/components/Unit/UnitList.d.ts +96 -0
- package/es/dist/components/Unit/YearMonthCalc.d.ts +7 -0
- package/es/dist/components/Unit/currencyCalc.d.ts +21 -0
- package/es/dist/components/Unit/index.d.ts +1 -0
- package/es/dist/components/Unit/percentageCalc.d.ts +18 -0
- package/es/dist/components/Unit/scaleLookup.d.ts +24 -0
- package/es/dist/components/User/User.d.ts +55 -0
- package/es/dist/components/User/index.d.ts +1 -0
- package/es/dist/components/Value/Value.d.ts +11 -0
- package/es/dist/components/Value/index.d.ts +1 -0
- package/es/dist/components/WFPCoreSettings/WFPCoreProvider.d.ts +21 -0
- package/es/dist/components/WFPCoreSettings/defaults.d.ts +2 -0
- package/es/dist/components/WFPCoreSettings/index.d.ts +4 -0
- package/es/dist/components/WFPCoreSettings/useTheme.d.ts +2 -0
- package/es/dist/components/WFPCoreSettings/withWFPCoreSettings.d.ts +2 -0
- package/es/dist/components/Wrapper/Wrapper.d.ts +22 -0
- package/es/dist/components/Wrapper/index.d.ts +2 -0
- package/es/dist/globals/data/colors.d.ts +609 -0
- package/es/dist/globals/js/settings.d.ts +34 -0
- package/es/dist/hooks/index.d.ts +1 -0
- package/es/dist/hooks/togglable.d.ts +5 -0
- package/es/dist/hooks/useHeightTransition.d.ts +4 -0
- package/es/dist/hooks/useId.d.ts +3 -0
- package/es/dist/hooks/useIsomorphicLayoutEffect.d.ts +12 -0
- package/es/dist/hooks/useMediaQuery.d.ts +19 -0
- package/es/dist/hooks/useMergeRef.d.ts +4 -0
- package/es/dist/hooks/useSettings.d.ts +2 -0
- package/es/dist/index.d.ts +75 -0
- package/es/dist/internal/FeatureFlags.d.ts +19 -0
- package/es/dist/prop-types/types.d.ts +5 -0
- package/es/dist/tools/uniqueId.d.ts +2 -0
- package/es/index.js +5470 -0
- package/lib/dist/components/Accordion/__tests__/utils.d.ts +12 -0
- package/lib/dist/components/Accordion/components/Accordion.d.ts +7 -0
- package/lib/dist/components/Accordion/components/AccordionItem.d.ts +46 -0
- package/lib/dist/components/Accordion/components/AccordionProvider.d.ts +7 -0
- package/lib/dist/components/Accordion/components/ControlledAccordion.d.ts +8 -0
- package/lib/dist/components/Accordion/components/withAccordionItem.d.ts +11 -0
- package/lib/dist/components/Accordion/hooks/useAccordion.d.ts +5 -0
- package/lib/dist/components/Accordion/hooks/useAccordionContext.d.ts +5 -0
- package/lib/dist/components/Accordion/hooks/useAccordionItem.d.ts +7 -0
- package/lib/dist/components/Accordion/hooks/useAccordionItemEffect.d.ts +13 -0
- package/lib/dist/components/Accordion/hooks/useAccordionProvider.d.ts +3 -0
- package/lib/dist/components/Accordion/hooks/useAccordionState.d.ts +14 -0
- package/lib/dist/components/Accordion/hooks/useHeightTransition.d.ts +4 -0
- package/lib/dist/components/Accordion/hooks/useId.d.ts +3 -0
- package/lib/dist/components/Accordion/hooks/useMergeRef.d.ts +4 -0
- package/lib/dist/components/Accordion/index.d.ts +17 -0
- package/lib/dist/components/Accordion/utils/bem.d.ts +7 -0
- package/lib/dist/components/Accordion/utils/constants.d.ts +58 -0
- package/lib/dist/components/Accordion/utils/mergeProps.d.ts +2 -0
- package/lib/dist/components/Accordion/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/dist/components/AnchorNavigation/AnchorNavigation.d.ts +6 -0
- package/lib/dist/components/AnchorNavigation/index.d.ts +1 -0
- package/lib/dist/components/AuthLayout/AuthLayout.d.ts +20 -0
- package/lib/dist/components/AuthLayout/index.d.ts +1 -0
- package/lib/dist/components/Avatar/Avatar.d.ts +33 -0
- package/lib/dist/components/Avatar/index.d.ts +1 -0
- package/lib/dist/components/BannerNavigation/BannerNavigation.d.ts +20 -0
- package/lib/dist/components/BannerNavigation/BannerNavigationWithContent.d.ts +13 -0
- package/lib/dist/components/BannerNavigation/index.d.ts +2 -0
- package/lib/dist/components/Breadcrumb/Breadcrumb.d.ts +11 -0
- package/lib/dist/components/Breadcrumb/index.d.ts +1 -0
- package/lib/dist/components/BreadcrumbHome/BreadcrumbHome.d.ts +13 -0
- package/lib/dist/components/BreadcrumbHome/index.d.ts +1 -0
- package/lib/dist/components/BreadcrumbItem/BreadcrumbItem.d.ts +21 -0
- package/lib/dist/components/BreadcrumbItem/index.d.ts +1 -0
- package/lib/dist/components/Button/Button.Skeleton.d.ts +7 -0
- package/lib/dist/components/Button/Button.d.ts +55 -0
- package/lib/dist/components/Button/index.d.ts +1 -0
- package/lib/dist/components/Card/Card.d.ts +61 -0
- package/lib/dist/components/Card/CardExternal.d.ts +37 -0
- package/lib/dist/components/Card/index.d.ts +2 -0
- package/lib/dist/components/Checkbox/Checkbox.d.ts +37 -0
- package/lib/dist/components/Checkbox/index.d.ts +1 -0
- package/lib/dist/components/ContentSwitcher/ContentSwitcher.d.ts +12 -0
- package/lib/dist/components/ContentSwitcher/index.d.ts +1 -0
- package/lib/dist/components/ContextMenu/ContextMenu.d.ts +31 -0
- package/lib/dist/components/ContextMenu/index.d.ts +1 -0
- package/lib/dist/components/Credits/Credits.d.ts +10 -0
- package/lib/dist/components/Credits/index.d.ts +1 -0
- package/lib/dist/components/DatePicker/DatePicker.d.ts +8 -0
- package/lib/dist/components/DatePicker/DatePickerInput.d.ts +38 -0
- package/lib/dist/components/DatePicker/DateRangePicker.d.ts +8 -0
- package/lib/dist/components/DatePicker/DateRangePickerInput.d.ts +34 -0
- package/lib/dist/components/DatePicker/index.d.ts +4 -0
- package/lib/dist/components/DatePickerNew/DateRangePickerInput.d.ts +11 -0
- package/lib/dist/components/Empty/Empty.d.ts +40 -0
- package/lib/dist/components/Empty/index.d.ts +1 -0
- package/lib/dist/components/Footer/Footer.d.ts +47 -0
- package/lib/dist/components/Footer/FooterExternal.d.ts +22 -0
- package/lib/dist/components/Footer/index.d.ts +2 -0
- package/lib/dist/components/Form/Form.d.ts +15 -0
- package/lib/dist/components/Form/index.d.ts +1 -0
- package/lib/dist/components/FormGroup/FormGroup.d.ts +14 -0
- package/lib/dist/components/FormGroup/index.d.ts +1 -0
- package/lib/dist/components/FormHint/FormHint.d.ts +15 -0
- package/lib/dist/components/FormHint/index.d.ts +1 -0
- package/lib/dist/components/FormItem/FormItem.d.ts +17 -0
- package/lib/dist/components/FormItem/index.d.ts +1 -0
- package/lib/dist/components/FormLabel/FormLabel.d.ts +15 -0
- package/lib/dist/components/FormLabel/index.d.ts +1 -0
- package/lib/dist/components/Hero/Hero.d.ts +53 -0
- package/lib/dist/components/Hero/HeroExternal.d.ts +22 -0
- package/lib/dist/components/Hero/index.d.ts +2 -0
- package/lib/dist/components/InfoBar/InfoBar.d.ts +23 -0
- package/lib/dist/components/InfoBar/index.d.ts +1 -0
- package/lib/dist/components/InlineLoading/InlineLoading.d.ts +26 -0
- package/lib/dist/components/InlineLoading/index.d.ts +1 -0
- package/lib/dist/components/Input/Input.d.ts +152 -0
- package/lib/dist/components/Input/index.d.ts +3 -0
- package/lib/dist/components/Input/useInput.d.ts +123 -0
- package/lib/dist/components/InputGroup/InputGroup.d.ts +48 -0
- package/lib/dist/components/InputGroup/index.d.ts +1 -0
- package/lib/dist/components/Item/Item.d.ts +59 -0
- package/lib/dist/components/Item/index.d.ts +1 -0
- package/lib/dist/components/Link/Link.d.ts +37 -0
- package/lib/dist/components/Link/index.d.ts +1 -0
- package/lib/dist/components/List/List.d.ts +32 -0
- package/lib/dist/components/List/ListItem.d.ts +25 -0
- package/lib/dist/components/List/index.d.ts +2 -0
- package/lib/dist/components/Loading/Loading.d.ts +16 -0
- package/lib/dist/components/Loading/index.d.ts +7 -0
- package/lib/dist/components/MainNavigation/MainNavigation.d.ts +51 -0
- package/lib/dist/components/MainNavigation/MainNavigationContext.d.ts +25 -0
- package/lib/dist/components/MainNavigation/MainNavigationExternal.d.ts +72 -0
- package/lib/dist/components/MainNavigation/MobileButton.d.ts +17 -0
- package/lib/dist/components/MainNavigation/index.d.ts +4 -0
- package/lib/dist/components/MainNavigation/useMainNavigation.d.ts +7 -0
- package/lib/dist/components/MainNavigationItem/MainNavigationItem.d.ts +29 -0
- package/lib/dist/components/MainNavigationItem/index.d.ts +1 -0
- package/lib/dist/components/MdxComponents/MdxComponentsNew.d.ts +2 -0
- package/lib/dist/components/MdxComponents/index.d.ts +1 -0
- package/lib/dist/components/Modal/Modal.d.ts +122 -0
- package/lib/dist/components/Modal/ModalFooter.d.ts +8 -0
- package/lib/dist/components/Modal/index.d.ts +2 -0
- package/lib/dist/components/ModalWrapper/ModalWrapper.d.ts +53 -0
- package/lib/dist/components/ModalWrapper/index.d.ts +1 -0
- package/lib/dist/components/Module/Module.d.ts +38 -0
- package/lib/dist/components/Module/ModuleBody.d.ts +21 -0
- package/lib/dist/components/Module/ModuleFooter.d.ts +10 -0
- package/lib/dist/components/Module/ModuleHeader.d.ts +16 -0
- package/lib/dist/components/Module/index.d.ts +4 -0
- package/lib/dist/components/Notification/Callout.d.ts +59 -0
- package/lib/dist/components/Notification/NotificationActionButton.d.ts +18 -0
- package/lib/dist/components/Notification/NotificationButton.d.ts +36 -0
- package/lib/dist/components/Notification/NotificationIcon.d.ts +8 -0
- package/lib/dist/components/Notification/NotificationTextDetails.d.ts +10 -0
- package/lib/dist/components/Notification/ToastNotification.d.ts +10 -0
- package/lib/dist/components/Notification/index.d.ts +5 -0
- package/lib/dist/components/NumberInput/NumberInput.Skeleton.d.ts +10 -0
- package/lib/dist/components/NumberInput/NumberInput.d.ts +64 -0
- package/lib/dist/components/NumberInput/index.d.ts +2 -0
- package/lib/dist/components/Pagination/Pagination.d.ts +92 -0
- package/lib/dist/components/Pagination/index.d.ts +1 -0
- package/lib/dist/components/RadioButton/RadioButton.d.ts +27 -0
- package/lib/dist/components/RadioButton/index.d.ts +2 -0
- package/lib/dist/components/ReadMore/ReadMore.d.ts +45 -0
- package/lib/dist/components/ReadMore/index.d.ts +1 -0
- package/lib/dist/components/Search/Search.d.ts +50 -0
- package/lib/dist/components/Search/index.d.ts +1 -0
- package/lib/dist/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -0
- package/lib/dist/components/SecondaryNavigation/SecondaryNavigationTitle.d.ts +8 -0
- package/lib/dist/components/SecondaryNavigation/index.d.ts +2 -0
- package/lib/dist/components/Select/Select.d.ts +24 -0
- package/lib/dist/components/Select/index.d.ts +1 -0
- package/lib/dist/components/SelectItem/SelectItem.d.ts +28 -0
- package/lib/dist/components/SelectItem/index.d.ts +1 -0
- package/lib/dist/components/SelectItemGroup/SelectItemGroup.d.ts +21 -0
- package/lib/dist/components/SelectItemGroup/index.d.ts +1 -0
- package/lib/dist/components/Sidebar/Sidebar.d.ts +46 -0
- package/lib/dist/components/Sidebar/index.d.ts +1 -0
- package/lib/dist/components/SkeletonText/SkeletonText.d.ts +22 -0
- package/lib/dist/components/SkeletonText/index.d.ts +1 -0
- package/lib/dist/components/Slider/Slider.d.ts +71 -0
- package/lib/dist/components/Slider/index.d.ts +1 -0
- package/lib/dist/components/StepNavigation/StepNavigation.Skeleton.d.ts +2 -0
- package/lib/dist/components/StepNavigation/StepNavigation.d.ts +42 -0
- package/lib/dist/components/StepNavigation/index.d.ts +2 -0
- package/lib/dist/components/StepNavigationItem/StepNavigationItem.d.ts +55 -0
- package/lib/dist/components/StepNavigationItem/index.d.ts +1 -0
- package/lib/dist/components/Story/Story.d.ts +7 -0
- package/lib/dist/components/Story/index.d.ts +1 -0
- package/lib/dist/components/SubNavigation/SubNavigation.d.ts +5 -0
- package/lib/dist/components/SubNavigation/SubNavigationContent.d.ts +9 -0
- package/lib/dist/components/SubNavigation/SubNavigationFilter.d.ts +9 -0
- package/lib/dist/components/SubNavigation/SubNavigationGroup.d.ts +17 -0
- package/lib/dist/components/SubNavigation/SubNavigationHeader.d.ts +9 -0
- package/lib/dist/components/SubNavigation/SubNavigationItem.d.ts +9 -0
- package/lib/dist/components/SubNavigation/SubNavigationLink.d.ts +9 -0
- package/lib/dist/components/SubNavigation/SubNavigationList.d.ts +9 -0
- package/lib/dist/components/SubNavigation/SubNavigationTitle.d.ts +9 -0
- package/lib/dist/components/SubNavigation/index.d.ts +9 -0
- package/lib/dist/components/Tab/Tab.d.ts +83 -0
- package/lib/dist/components/Tab/index.d.ts +2 -0
- package/lib/dist/components/Tab/useTab.d.ts +12 -0
- package/lib/dist/components/TabContent/TabContent.d.ts +13 -0
- package/lib/dist/components/TabContent/index.d.ts +1 -0
- package/lib/dist/components/Table/Table.d.ts +8 -0
- package/lib/dist/components/Table/TableSorting.d.ts +11 -0
- package/lib/dist/components/Table/index.d.ts +2 -0
- package/lib/dist/components/TablePagination/TablePagination.d.ts +33 -0
- package/lib/dist/components/TablePagination/index.d.ts +1 -0
- package/lib/dist/components/Tabs/Tabs.d.ts +67 -0
- package/lib/dist/components/Tabs/TabsContext.d.ts +8 -0
- package/lib/dist/components/Tabs/index.d.ts +1 -0
- package/lib/dist/components/Tag/Tag.d.ts +14 -0
- package/lib/dist/components/Tag/index.d.ts +2 -0
- package/lib/dist/components/Text/Text.d.ts +30 -0
- package/lib/dist/components/Text/index.d.ts +1 -0
- package/lib/dist/components/TextArea/TextArea.d.ts +8 -0
- package/lib/dist/components/TextArea/index.d.ts +1 -0
- package/lib/dist/components/TextInput/TextInput.d.ts +7 -0
- package/lib/dist/components/TextInput/index.d.ts +1 -0
- package/lib/dist/components/Toggle/Toggle.d.ts +38 -0
- package/lib/dist/components/Toggle/index.d.ts +1 -0
- package/lib/dist/components/Tooltip/Tooltip.d.ts +103 -0
- package/lib/dist/components/Tooltip/index.d.ts +2 -0
- package/lib/dist/components/UNCoreSettings/UNCoreProvider.d.ts +21 -0
- package/lib/dist/components/UNCoreSettings/defaults.d.ts +2 -0
- package/lib/dist/components/UNCoreSettings/index.d.ts +4 -0
- package/lib/dist/components/UNCoreSettings/useTheme.d.ts +2 -0
- package/lib/dist/components/UNCoreSettings/withUNCoreSettings.d.ts +2 -0
- package/lib/dist/components/Unit/InvalidUnit.d.ts +2 -0
- package/lib/dist/components/Unit/SimpleCalc.d.ts +17 -0
- package/lib/dist/components/Unit/StringUnit.d.ts +2 -0
- package/lib/dist/components/Unit/SvgUnit.d.ts +2 -0
- package/lib/dist/components/Unit/Unit.d.ts +54 -0
- package/lib/dist/components/Unit/UnitList.d.ts +96 -0
- package/lib/dist/components/Unit/YearMonthCalc.d.ts +7 -0
- package/lib/dist/components/Unit/currencyCalc.d.ts +21 -0
- package/lib/dist/components/Unit/index.d.ts +1 -0
- package/lib/dist/components/Unit/percentageCalc.d.ts +18 -0
- package/lib/dist/components/Unit/scaleLookup.d.ts +24 -0
- package/lib/dist/components/User/User.d.ts +55 -0
- package/lib/dist/components/User/index.d.ts +1 -0
- package/lib/dist/components/Value/Value.d.ts +11 -0
- package/lib/dist/components/Value/index.d.ts +1 -0
- package/lib/dist/components/WFPCoreSettings/WFPCoreProvider.d.ts +21 -0
- package/lib/dist/components/WFPCoreSettings/defaults.d.ts +2 -0
- package/lib/dist/components/WFPCoreSettings/index.d.ts +4 -0
- package/lib/dist/components/WFPCoreSettings/useTheme.d.ts +2 -0
- package/lib/dist/components/WFPCoreSettings/withWFPCoreSettings.d.ts +2 -0
- package/lib/dist/components/Wrapper/Wrapper.d.ts +22 -0
- package/lib/dist/components/Wrapper/index.d.ts +2 -0
- package/lib/dist/globals/data/colors.d.ts +609 -0
- package/lib/dist/globals/js/settings.d.ts +34 -0
- package/lib/dist/hooks/index.d.ts +1 -0
- package/lib/dist/hooks/togglable.d.ts +5 -0
- package/lib/dist/hooks/useHeightTransition.d.ts +4 -0
- package/lib/dist/hooks/useId.d.ts +3 -0
- package/lib/dist/hooks/useIsomorphicLayoutEffect.d.ts +12 -0
- package/lib/dist/hooks/useMediaQuery.d.ts +19 -0
- package/lib/dist/hooks/useMergeRef.d.ts +4 -0
- package/lib/dist/hooks/useSettings.d.ts +2 -0
- package/lib/dist/index.d.ts +75 -0
- package/lib/dist/indexStories.d.ts +1 -0
- package/lib/dist/internal/FeatureFlags.d.ts +19 -0
- package/lib/dist/prop-types/types.d.ts +5 -0
- package/lib/dist/tools/uniqueId.d.ts +2 -0
- package/lib/index.js +5670 -0
- package/package.json +170 -0
- package/src/assets/internal/background-contrast.png +0 -0
- package/src/assets/internal/brand-color.png +0 -0
- package/src/assets/internal/branding.svg +31 -0
- package/src/assets/internal/colors.png +0 -0
- package/src/assets/internal/hero-image.jpg +0 -0
- package/src/assets/internal/mobile-android-general.png +0 -0
- package/src/assets/internal/secondary-color.png +0 -0
- package/src/assets/internal/toolkit.svg +17 -0
- package/src/assets/internal/usability.svg +12 -0
- package/src/assets/internal/wfp-favicon-png32.png +0 -0
- package/src/assets/internal/wfp-favicon-png512.png +0 -0
- package/src/assets/internal/wfp-favicon-preview-png32.png +0 -0
- package/src/assets/internal/wfp-favicon-preview-png512.png +0 -0
- package/src/assets/internal/yemen-hero-min.jpg +0 -0
- package/src/components/Accordion/Accordion.stories.tsx +41 -0
- package/src/components/Accordion/README.mdx +0 -0
- package/src/components/Accordion/__tests__/components/Accordion.test.tsx.new +122 -0
- package/src/components/Accordion/__tests__/components/AccordionItem.test.tsx.new +353 -0
- package/src/components/Accordion/__tests__/components/AccordionMock.test.tsx.new +18 -0
- package/src/components/Accordion/__tests__/components/ControlledAccordion.test.tsx.new +38 -0
- package/src/components/Accordion/__tests__/hooks/useAccordionProvider.test.ts +56 -0
- package/src/components/Accordion/__tests__/hooks/useAccordionState.test.tsx.new +54 -0
- package/src/components/Accordion/__tests__/hooks/useId.test.ts +19 -0
- package/src/components/Accordion/__tests__/ssr.test.ts +32 -0
- package/src/components/Accordion/__tests__/utils.tsx +48 -0
- package/src/components/Accordion/components/Accordion.tsx +44 -0
- package/src/components/Accordion/components/AccordionItem.tsx +181 -0
- package/src/components/Accordion/components/AccordionProvider.tsx +9 -0
- package/src/components/Accordion/components/ControlledAccordion.tsx +35 -0
- package/src/components/Accordion/components/withAccordionItem.tsx +37 -0
- package/src/components/Accordion/hooks/useAccordion.ts +56 -0
- package/src/components/Accordion/hooks/useAccordionContext.ts +32 -0
- package/src/components/Accordion/hooks/useAccordionItem.ts +31 -0
- package/src/components/Accordion/hooks/useAccordionItemEffect.ts +36 -0
- package/src/components/Accordion/hooks/useAccordionProvider.ts +35 -0
- package/src/components/Accordion/hooks/useAccordionState.ts +14 -0
- package/src/components/Accordion/index.ts +23 -0
- package/src/components/Accordion/utils/bem.ts +33 -0
- package/src/components/Accordion/utils/constants.ts +82 -0
- package/src/components/Accordion/utils/mergeProps.ts +24 -0
- package/src/components/Accordion/utils/useIsomorphicLayoutEffect.ts +15 -0
- package/src/components/AnchorNavigation/AnchorNavigation-test.js +48 -0
- package/src/components/AnchorNavigation/AnchorNavigation.stories.tsx +56 -0
- package/src/components/AnchorNavigation/AnchorNavigation.tsx +29 -0
- package/src/components/AnchorNavigation/README.mdx +0 -0
- package/src/components/AnchorNavigation/index.ts +1 -0
- package/src/components/AuthLayout/AuthLayout-test.js +46 -0
- package/src/components/AuthLayout/AuthLayout.stories.tsx +146 -0
- package/src/components/AuthLayout/AuthLayout.tsx +64 -0
- package/src/components/AuthLayout/README.mdx +0 -0
- package/src/components/AuthLayout/index.ts +1 -0
- package/src/components/Avatar/Avatar.stories.tsx +19 -0
- package/src/components/Avatar/Avatar.tsx +99 -0
- package/src/components/Avatar/index.ts +1 -0
- package/src/components/BannerNavigation/BannerNavigation-test.js +48 -0
- package/src/components/BannerNavigation/BannerNavigation.hbs +45 -0
- package/src/components/BannerNavigation/BannerNavigation.stories.tsx +64 -0
- package/src/components/BannerNavigation/BannerNavigation.tsx +55 -0
- package/src/components/BannerNavigation/BannerNavigation.twig +16 -0
- package/src/components/BannerNavigation/BannerNavigationWithContent.tsx +93 -0
- package/src/components/BannerNavigation/README.mdx +62 -0
- package/src/components/BannerNavigation/index.ts +2 -0
- package/src/components/BannerNavigation/kinds.js +3 -0
- package/src/components/Breadcrumb/Breadcrumb-test.js +50 -0
- package/src/components/Breadcrumb/Breadcrumb.Skeleton.jsx +22 -0
- package/src/components/Breadcrumb/Breadcrumb.hbs +16 -0
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +39 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +27 -0
- package/src/components/Breadcrumb/README.mdx +23 -0
- package/src/components/Breadcrumb/index.ts +2 -0
- package/src/components/BreadcrumbHome/BreadcrumbHome.tsx +37 -0
- package/src/components/BreadcrumbHome/index.ts +1 -0
- package/src/components/BreadcrumbItem/BreadcrumbItem.tsx +54 -0
- package/src/components/BreadcrumbItem/index.ts +1 -0
- package/src/components/Button/Button.Skeleton.tsx +30 -0
- package/src/components/Button/Button.d.ts +7 -0
- package/src/components/Button/Button.stories.tsx +339 -0
- package/src/components/Button/Button.test.tsx +135 -0
- package/src/components/Button/Button.tsx +201 -0
- package/src/components/Button/Button.twig +1 -0
- package/src/components/Button/README.mdx +34 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +12 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Card/Card-old.js +187 -0
- package/src/components/Card/Card-test.js +27 -0
- package/src/components/Card/Card.stories.tsx +105 -0
- package/src/components/Card/Card.tsx +159 -0
- package/src/components/Card/Card.twig +21 -0
- package/src/components/Card/CardExternal.tsx +174 -0
- package/src/components/Card/README.mdx +1 -0
- package/src/components/Card/index.ts +2 -0
- package/src/components/Checkbox/Checkbox-old.js +132 -0
- package/src/components/Checkbox/Checkbox-test.js +205 -0
- package/src/components/Checkbox/Checkbox.Skeleton.js +37 -0
- package/src/components/Checkbox/Checkbox.hbs +15 -0
- package/src/components/Checkbox/Checkbox.legacy.js +126 -0
- package/src/components/Checkbox/Checkbox.stories.tsx +179 -0
- package/src/components/Checkbox/Checkbox.tsx +123 -0
- package/src/components/Checkbox/README.mdx +59 -0
- package/src/components/Checkbox/index.ts +1 -0
- package/src/components/CheckboxGroup/README.md +29 -0
- package/src/components/CheckboxGroup/RadioButtonGroup.js +158 -0
- package/src/components/CheckboxGroup/RadioButtonGroupWithoutControls.js +46 -0
- package/src/components/CheckboxGroup/index.js +1 -0
- package/src/components/ContentSwitcher/ContentSwitcher-test.js +117 -0
- package/src/components/ContentSwitcher/ContentSwitcher.hbs +5 -0
- package/src/components/ContentSwitcher/ContentSwitcher.stories.tsx +94 -0
- package/src/components/ContentSwitcher/ContentSwitcher.tsx +57 -0
- package/src/components/ContentSwitcher/README.mdx +31 -0
- package/src/components/ContentSwitcher/index.ts +1 -0
- package/src/components/ContextMenu/ContextMenu.stories.tsx +137 -0
- package/src/components/ContextMenu/ContextMenu.tsx +89 -0
- package/src/components/ContextMenu/README.mdx +13 -0
- package/src/components/ContextMenu/index.ts +1 -0
- package/src/components/Credits/Credits-test.js +25 -0
- package/src/components/Credits/Credits.hbs +4 -0
- package/src/components/Credits/Credits.stories.tsx +30 -0
- package/src/components/Credits/Credits.tsx +31 -0
- package/src/components/Credits/README.mdx +1 -0
- package/src/components/Credits/index.ts +1 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +51 -0
- package/src/components/DatePicker/DatePicker.tsx +53 -0
- package/src/components/DatePicker/DatePickerInput.tsx +82 -0
- package/src/components/DatePicker/DatePickerNew.stories.js.new +195 -0
- package/src/components/DatePicker/DateRangePicker.tsx +63 -0
- package/src/components/DatePicker/DateRangePickerInput.tsx +106 -0
- package/src/components/DatePicker/README.mdx +50 -0
- package/src/components/DatePicker/index.ts +4 -0
- package/src/components/Empty/Empty-test.js +69 -0
- package/src/components/Empty/Empty.stories.tsx +54 -0
- package/src/components/Empty/Empty.tsx +95 -0
- package/src/components/Empty/README.mdx +28 -0
- package/src/components/Empty/index.ts +1 -0
- package/src/components/Footer/Footer-external.hbs +22 -0
- package/src/components/Footer/Footer-internal.hbs +30 -0
- package/src/components/Footer/Footer.stories.tsx +331 -0
- package/src/components/Footer/Footer.test.tsx +64 -0
- package/src/components/Footer/Footer.tsx +156 -0
- package/src/components/Footer/FooterExternal.tsx +172 -0
- package/src/components/Footer/README.mdx +20 -0
- package/src/components/Footer/index.ts +2 -0
- package/src/components/Form/Form-test.js +56 -0
- package/src/components/Form/Form.stories.tsx +485 -0
- package/src/components/Form/Form.tsx +40 -0
- package/src/components/Form/README.mdx +46 -0
- package/src/components/Form/index.ts +1 -0
- package/src/components/FormGroup/FormGroup-old.js +100 -0
- package/src/components/FormGroup/FormGroup-test.js +49 -0
- package/src/components/FormGroup/FormGroup.stories.tsx.new +306 -0
- package/src/components/FormGroup/FormGroup.tsx +63 -0
- package/src/components/FormGroup/README.mdx +7 -0
- package/src/components/FormGroup/index.ts +1 -0
- package/src/components/FormHint/FormHint-old.js +44 -0
- package/src/components/FormHint/FormHint-test.js +13 -0
- package/src/components/FormHint/FormHint.stories.tsx +72 -0
- package/src/components/FormHint/FormHint.tsx +37 -0
- package/src/components/FormHint/README.mdx +13 -0
- package/src/components/FormHint/index.ts +1 -0
- package/src/components/FormItem/FormItem-test.js +10 -0
- package/src/components/FormItem/FormItem.tsx +45 -0
- package/src/components/FormItem/RfFormItem.js +44 -0
- package/src/components/FormItem/__snapshots__/FormItem-test.js.snap +7 -0
- package/src/components/FormItem/index.ts +1 -0
- package/src/components/FormLabel/FormLabel-test.js +10 -0
- package/src/components/FormLabel/FormLabel.hbs +1 -0
- package/src/components/FormLabel/FormLabel.stories.tsx +15 -0
- package/src/components/FormLabel/FormLabel.tsx +35 -0
- package/src/components/FormLabel/README.mdx +1 -0
- package/src/components/FormLabel/RfFormLabel.js +38 -0
- package/src/components/FormLabel/__snapshots__/FormLabel-test.js.snap +7 -0
- package/src/components/FormLabel/index.ts +1 -0
- package/src/components/Hero/Hero-old.js +154 -0
- package/src/components/Hero/Hero-test.js +81 -0
- package/src/components/Hero/Hero.hbs +4 -0
- package/src/components/Hero/Hero.stories.tsx +356 -0
- package/src/components/Hero/Hero.tsx +142 -0
- package/src/components/Hero/Hero.twig +10 -0
- package/src/components/Hero/HeroExternal-old.js +54 -0
- package/src/components/Hero/HeroExternal.tsx +64 -0
- package/src/components/Hero/README.mdx +5 -0
- package/src/components/Hero/index.ts +2 -0
- package/src/components/InfoBar/InfoBar-test.js +17 -0
- package/src/components/InfoBar/InfoBar.stories.tsx +42 -0
- package/src/components/InfoBar/InfoBar.test.tsx +46 -0
- package/src/components/InfoBar/InfoBar.tsx +46 -0
- package/src/components/InfoBar/README.mdx +5 -0
- package/src/components/InfoBar/__snapshots__/InfoBar.test.tsx.snap +15 -0
- package/src/components/InfoBar/index.ts +1 -0
- package/src/components/InlineLoading/InlineLoading-FCold.js +90 -0
- package/src/components/InlineLoading/InlineLoading-Old.js +102 -0
- package/src/components/InlineLoading/InlineLoading-test.js +90 -0
- package/src/components/InlineLoading/InlineLoading.stories.tsx +39 -0
- package/src/components/InlineLoading/InlineLoading.tsx +79 -0
- package/src/components/InlineLoading/README.mdx +89 -0
- package/src/components/InlineLoading/index.ts +1 -0
- package/src/components/InlineLoading/inline-loading.config.js +25 -0
- package/src/components/InlineLoading/inline-loading.hbs +28 -0
- package/src/components/InlineLoading/inline-loading.js +135 -0
- package/src/components/Input/Input-test.js +120 -0
- package/src/components/Input/Input.stories.tsx +48 -0
- package/src/components/Input/Input.tsx +345 -0
- package/src/components/Input/README.mdx +46 -0
- package/src/components/Input/index.tsx +13 -0
- package/src/components/Input/useInput.tsx +189 -0
- package/src/components/InputGroup/InputGroup-old.js +166 -0
- package/src/components/InputGroup/InputGroup-test.js +114 -0
- package/src/components/InputGroup/InputGroup.stories.tsx +265 -0
- package/src/components/InputGroup/InputGroup.tsx +132 -0
- package/src/components/InputGroup/README.mdx +19 -0
- package/src/components/InputGroup/RadioButtonGroupWithoutControls.js +36 -0
- package/src/components/InputGroup/index.tsx +1 -0
- package/src/components/Item/Item-test.js +33 -0
- package/src/components/Item/Item.stories.tsx +158 -0
- package/src/components/Item/Item.tsx +134 -0
- package/src/components/Item/README.mdx +28 -0
- package/src/components/Item/index.ts +1 -0
- package/src/components/Link/Link-test.e2e.js +35 -0
- package/src/components/Link/Link-test.js +115 -0
- package/src/components/Link/Link.mdx +41 -0
- package/src/components/Link/Link.stories.tsx +95 -0
- package/src/components/Link/Link.test.tsx +100 -0
- package/src/components/Link/Link.tsx +91 -0
- package/src/components/Link/README.mdx +35 -0
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +12 -0
- package/src/components/Link/index.ts +1 -0
- package/src/components/Link/link-avt.md +32 -0
- package/src/components/List/List-test.js +27 -0
- package/src/components/List/List.hbs +11 -0
- package/src/components/List/List.stories.tsx +195 -0
- package/src/components/List/List.tsx +91 -0
- package/src/components/List/ListItem.tsx +54 -0
- package/src/components/List/README.mdx +19 -0
- package/src/components/List/index.ts +2 -0
- package/src/components/Loading/Loading-oldClass.js +93 -0
- package/src/components/Loading/Loading-oldFC.js +80 -0
- package/src/components/Loading/Loading-test.js +68 -0
- package/src/components/Loading/Loading.stories.tsx +94 -0
- package/src/components/Loading/Loading.tsx +74 -0
- package/src/components/Loading/README.mdx +23 -0
- package/src/components/Loading/index.ts +8 -0
- package/src/components/Loading/loading-vanilla.js +137 -0
- package/src/components/Loading/loading.config.js +42 -0
- package/src/components/Loading/loading.hbs +18 -0
- package/src/components/MainNavigation/MainNavigation-test.js +26 -0
- package/src/components/MainNavigation/MainNavigation.hbs +180 -0
- package/src/components/MainNavigation/MainNavigation.stories.tsx +681 -0
- package/src/components/MainNavigation/MainNavigation.tsx +174 -0
- package/src/components/MainNavigation/MainNavigationContext.ts +34 -0
- package/src/components/MainNavigation/MainNavigationExternal.tsx +338 -0
- package/src/components/MainNavigation/MainNavigationRtl-story.legacy.js +95 -0
- package/src/components/MainNavigation/MobileButton.tsx +29 -0
- package/src/components/MainNavigation/README.mdx.legacy +173 -0
- package/src/components/MainNavigation/index.ts +4 -0
- package/src/components/MainNavigation/main-navigation.js +74 -0
- package/src/components/MainNavigation/useMainNavigation.tsx +17 -0
- package/src/components/MainNavigationItem/MainNavigationItem.tsx +110 -0
- package/src/components/MainNavigationItem/index.ts +1 -0
- package/src/components/MdxComponents/MdxComponents.stories.tsx +32 -0
- package/src/components/MdxComponents/MdxComponentsNew.tsx +181 -0
- package/src/components/MdxComponents/README.mdx +22 -0
- package/src/components/MdxComponents/index.ts +1 -0
- package/src/components/MdxComponents/markdown.mdx +109 -0
- package/src/components/Modal/Modal-test.js +206 -0
- package/src/components/Modal/Modal.hbs +26 -0
- package/src/components/Modal/Modal.stories.tsx +36 -0
- package/src/components/Modal/Modal.tsx +378 -0
- package/src/components/Modal/ModalFooter-old.js +41 -0
- package/src/components/Modal/ModalFooter.tsx +60 -0
- package/src/components/Modal/ModalHeader.js +25 -0
- package/src/components/Modal/ModalWithControls-story.legacy.js +44 -0
- package/src/components/Modal/README.mdx.legacy +102 -0
- package/src/components/Modal/index.ts +2 -0
- package/src/components/ModalWrapper/ModalWrapper-old.js +141 -0
- package/src/components/ModalWrapper/ModalWrapper-test.js +108 -0
- package/src/components/ModalWrapper/ModalWrapper.stories.tsx +109 -0
- package/src/components/ModalWrapper/ModalWrapper.tsx +149 -0
- package/src/components/ModalWrapper/README.mdx +16 -0
- package/src/components/ModalWrapper/index.ts +1 -0
- package/src/components/Module/Module-old.js +74 -0
- package/src/components/Module/Module-test.js +54 -0
- package/src/components/Module/Module.hbs +3 -0
- package/src/components/Module/Module.stories.tsx +108 -0
- package/src/components/Module/Module.tsx +75 -0
- package/src/components/Module/ModuleBody.tsx +42 -0
- package/src/components/Module/ModuleFooter.tsx +26 -0
- package/src/components/Module/ModuleHeader.tsx +34 -0
- package/src/components/Module/README.mdx +28 -0
- package/src/components/Module/index.ts +6 -0
- package/src/components/Notification/Callout.tsx +141 -0
- package/src/components/Notification/InlineNotification.tsx.legacy +142 -0
- package/src/components/Notification/Notification-test.js +258 -0
- package/src/components/Notification/Notification.stories.tsx +286 -0
- package/src/components/Notification/NotificationActionButton.tsx +48 -0
- package/src/components/Notification/NotificationButton.tsx +86 -0
- package/src/components/Notification/NotificationIcon.tsx +41 -0
- package/src/components/Notification/NotificationTextDetails.tsx +51 -0
- package/src/components/Notification/README.mdx +26 -0
- package/src/components/Notification/ToastNotification.tsx +110 -0
- package/src/components/Notification/a11yIconWarningSolid.js +36 -0
- package/src/components/Notification/index.ts +7 -0
- package/src/components/NumberInput/NumberInput-test.js +285 -0
- package/src/components/NumberInput/NumberInput.Skeleton.tsx +29 -0
- package/src/components/NumberInput/NumberInput.js.legacy +255 -0
- package/src/components/NumberInput/NumberInput.legacy.js +330 -0
- package/src/components/NumberInput/NumberInput.stories.tsx +79 -0
- package/src/components/NumberInput/NumberInput.tsx +215 -0
- package/src/components/NumberInput/README.mdx +16 -0
- package/src/components/NumberInput/index.ts +2 -0
- package/src/components/Pagination/Pagination-fc.js +217 -0
- package/src/components/Pagination/Pagination-old.js +346 -0
- package/src/components/Pagination/Pagination-test.js +400 -0
- package/src/components/Pagination/Pagination.Skeleton.jsx +22 -0
- package/src/components/Pagination/Pagination.stories.tsx +22 -0
- package/src/components/Pagination/Pagination.tsx +263 -0
- package/src/components/Pagination/README.mdx +27 -0
- package/src/components/Pagination/index.js +2 -0
- package/src/components/RadioButton/README.mdx +34 -0
- package/src/components/RadioButton/RadioButton-fc.js +103 -0
- package/src/components/RadioButton/RadioButton-old.js +109 -0
- package/src/components/RadioButton/RadioButton-test.js +131 -0
- package/src/components/RadioButton/RadioButton.Skeleton.jsx +20 -0
- package/src/components/RadioButton/RadioButton.hbs +7 -0
- package/src/components/RadioButton/RadioButton.stories.tsx +183 -0
- package/src/components/RadioButton/RadioButton.tsx +85 -0
- package/src/components/RadioButton/index.ts +3 -0
- package/src/components/RadioButtonGroup/README.md +31 -0
- package/src/components/RadioButtonGroup/RadioButtonGroup-test.js +65 -0
- package/src/components/RadioButtonGroup/RadioButtonGroup.js +172 -0
- package/src/components/RadioButtonGroup/RadioButtonGroupWithoutControls.js +44 -0
- package/src/components/RadioButtonGroup/index.js +1 -0
- package/src/components/ReactSelect/README.mdx +33 -0
- package/src/components/ReactSelect/ReactSelect.stories.tsx +56 -0
- package/src/components/ReadMore/README.mdx +30 -0
- package/src/components/ReadMore/ReadMore-test.js +17 -0
- package/src/components/ReadMore/ReadMore.stories.tsx +37 -0
- package/src/components/ReadMore/ReadMore.tsx +185 -0
- package/src/components/ReadMore/index.js +1 -0
- package/src/components/Search/README.mdx +22 -0
- package/src/components/Search/Search-test.js +178 -0
- package/src/components/Search/Search.stories.tsx +112 -0
- package/src/components/Search/Search.tsx +177 -0
- package/src/components/Search/index.ts +2 -0
- package/src/components/SecondaryNavigation/README.mdx +1 -0
- package/src/components/SecondaryNavigation/SecondaryNavigation-old.js +80 -0
- package/src/components/SecondaryNavigation/SecondaryNavigation-test.js +27 -0
- package/src/components/SecondaryNavigation/SecondaryNavigation.hbs +35 -0
- package/src/components/SecondaryNavigation/SecondaryNavigation.stories.tsx +133 -0
- package/src/components/SecondaryNavigation/SecondaryNavigation.tsx +56 -0
- package/src/components/SecondaryNavigation/SecondaryNavigationTitle.tsx +24 -0
- package/src/components/SecondaryNavigation/index.js +2 -0
- package/src/components/Select/README.mdx +17 -0
- package/src/components/Select/Select-test.js +165 -0
- package/src/components/Select/Select.Skeleton.js +25 -0
- package/src/components/Select/Select.stories.tsx +54 -0
- package/src/components/Select/Select.tsx +98 -0
- package/src/components/Select/index.ts +1 -0
- package/src/components/SelectItem/SelectItem-old.js +40 -0
- package/src/components/SelectItem/SelectItem-test.js +45 -0
- package/src/components/SelectItem/SelectItem.tsx +57 -0
- package/src/components/SelectItem/index.ts +1 -0
- package/src/components/SelectItemGroup/SelectItemGroup-test.js +34 -0
- package/src/components/SelectItemGroup/SelectItemGroup.tsx +40 -0
- package/src/components/SelectItemGroup/index.ts +1 -0
- package/src/components/Sidebar/PHONEBOOK.json +1101 -0
- package/src/components/Sidebar/README.mdx +0 -0
- package/src/components/Sidebar/Sidebar-test.js +55 -0
- package/src/components/Sidebar/Sidebar.stories.tsx.new +430 -0
- package/src/components/Sidebar/Sidebar.tsx +164 -0
- package/src/components/Sidebar/index.ts +8 -0
- package/src/components/SkeletonText/README.mdx +29 -0
- package/src/components/SkeletonText/SkeletonText-old.js +95 -0
- package/src/components/SkeletonText/SkeletonText-test.js +23 -0
- package/src/components/SkeletonText/SkeletonText.stories.tsx +19 -0
- package/src/components/SkeletonText/SkeletonText.tsx +90 -0
- package/src/components/SkeletonText/index.ts +1 -0
- package/src/components/Slider/README.mdx +21 -0
- package/src/components/Slider/Slider-old.js +315 -0
- package/src/components/Slider/Slider-test.js +145 -0
- package/src/components/Slider/Slider.Skeleton.jsx +29 -0
- package/src/components/Slider/Slider.legacy.js +476 -0
- package/src/components/Slider/Slider.stories.tsx +116 -0
- package/src/components/Slider/Slider.tsx +242 -0
- package/src/components/Slider/index.ts +2 -0
- package/src/components/StepNavigation/README.mdx +16 -0
- package/src/components/StepNavigation/StepNavigation-test.js +20 -0
- package/src/components/StepNavigation/StepNavigation.Skeleton.tsx +33 -0
- package/src/components/StepNavigation/StepNavigation.hbs +14 -0
- package/src/components/StepNavigation/StepNavigation.stories.tsx +131 -0
- package/src/components/StepNavigation/StepNavigation.tsx +159 -0
- package/src/components/StepNavigation/index.ts +2 -0
- package/src/components/StepNavigationItem/StepNavigationItem-test.js +24 -0
- package/src/components/StepNavigationItem/StepNavigationItem.tsx +155 -0
- package/src/components/StepNavigationItem/index.ts +1 -0
- package/src/components/Story/README.mdx +27 -0
- package/src/components/Story/Story-text.js +22 -0
- package/src/components/Story/Story.hbs +12 -0
- package/src/components/Story/Story.stories.tsx +109 -0
- package/src/components/Story/Story.tsx +25 -0
- package/src/components/Story/index.ts +1 -0
- package/src/components/SubNavigation/README.mdx +111 -0
- package/src/components/SubNavigation/SubNavigation-test.js +161 -0
- package/src/components/SubNavigation/SubNavigation.stories.tsx +249 -0
- package/src/components/SubNavigation/SubNavigation.tsx +6 -0
- package/src/components/SubNavigation/SubNavigationContent.tsx +26 -0
- package/src/components/SubNavigation/SubNavigationFilter.tsx +26 -0
- package/src/components/SubNavigation/SubNavigationGroup.tsx +48 -0
- package/src/components/SubNavigation/SubNavigationHeader.tsx +26 -0
- package/src/components/SubNavigation/SubNavigationItem.tsx +25 -0
- package/src/components/SubNavigation/SubNavigationLink.tsx +25 -0
- package/src/components/SubNavigation/SubNavigationList.tsx +25 -0
- package/src/components/SubNavigation/SubNavigationTitle.tsx +26 -0
- package/src/components/SubNavigation/index.ts +9 -0
- package/src/components/Tab/Tab-oldClass.js +209 -0
- package/src/components/Tab/Tab-oldFunc.js +206 -0
- package/src/components/Tab/Tab-test.js +93 -0
- package/src/components/Tab/Tab.tsx +149 -0
- package/src/components/Tab/index.ts +3 -0
- package/src/components/Tab/useTab.tsx +89 -0
- package/src/components/TabContent/TabContent-old.js +30 -0
- package/src/components/TabContent/TabContent-test.js +28 -0
- package/src/components/TabContent/TabContent.tsx +26 -0
- package/src/components/TabContent/index.ts +1 -0
- package/src/components/Table/README.mdx +0 -0
- package/src/components/Table/Table-test.js +22 -0
- package/src/components/Table/Table.stories.tsx +524 -0
- package/src/components/Table/Table.tsx +34 -0
- package/src/components/Table/TableResponsive-story-legacy.js +216 -0
- package/src/components/Table/TableSimple-story-legacy.js +39 -0
- package/src/components/Table/TableSorting.tsx +31 -0
- package/src/components/Table/index.ts +2 -0
- package/src/components/Table/makeData.js +75 -0
- package/src/components/TablePagination/TablePagination.tsx +98 -0
- package/src/components/TablePagination/index.ts +1 -0
- package/src/components/Tabs/README.mdx +113 -0
- package/src/components/Tabs/Tabs-old.js.legacy +281 -0
- package/src/components/Tabs/Tabs-test.js +284 -0
- package/src/components/Tabs/Tabs.Skeleton.jsx +33 -0
- package/src/components/Tabs/Tabs.hbs +14 -0
- package/src/components/Tabs/Tabs.stories.tsx +73 -0
- package/src/components/Tabs/Tabs.tsx +270 -0
- package/src/components/Tabs/TabsContext.ts +15 -0
- package/src/components/Tabs/index.ts +2 -0
- package/src/components/Tag/README.mdx +19 -0
- package/src/components/Tag/Tag-test.js +42 -0
- package/src/components/Tag/Tag.Skeleton.jsx +9 -0
- package/src/components/Tag/Tag.stories.tsx +20 -0
- package/src/components/Tag/Tag.tsx +46 -0
- package/src/components/Tag/index.ts +3 -0
- package/src/components/Tag/tag.config.js +69 -0
- package/src/components/Tag/tag.hbs +10 -0
- package/src/components/Text/README.mdx +57 -0
- package/src/components/Text/Text-test.js +19 -0
- package/src/components/Text/Text.js.legacy +102 -0
- package/src/components/Text/Text.stories.tsx +390 -0
- package/src/components/Text/Text.tsx +81 -0
- package/src/components/Text/index.ts +2 -0
- package/src/components/TextArea/README.mdx +3 -0
- package/src/components/TextArea/TextArea-old.js +207 -0
- package/src/components/TextArea/TextArea-test.js +167 -0
- package/src/components/TextArea/TextArea.Skeleton.jsx +21 -0
- package/src/components/TextArea/TextArea.stories.tsx +43 -0
- package/src/components/TextArea/TextArea.tsx +40 -0
- package/src/components/TextArea/index.ts +2 -0
- package/src/components/TextInput/README.mdx +3 -0
- package/src/components/TextInput/TextInput-old.js +162 -0
- package/src/components/TextInput/TextInput-test.js +156 -0
- package/src/components/TextInput/TextInput.Skeleton.jsx +21 -0
- package/src/components/TextInput/TextInput.hbs +4 -0
- package/src/components/TextInput/TextInput.legacy.js +162 -0
- package/src/components/TextInput/TextInput.stories.tsx +80 -0
- package/src/components/TextInput/TextInput.tsx +52 -0
- package/src/components/TextInput/index.ts +2 -0
- package/src/components/Toggle/README.mdx +4 -0
- package/src/components/Toggle/Toggle-old.js +113 -0
- package/src/components/Toggle/Toggle-test.js +114 -0
- package/src/components/Toggle/Toggle.Skeleton.jsx +18 -0
- package/src/components/Toggle/Toggle.stories.tsx +21 -0
- package/src/components/Toggle/Toggle.tsx +113 -0
- package/src/components/Toggle/index.ts +2 -0
- package/src/components/Tooltip/Empty.js +5 -0
- package/src/components/Tooltip/README.mdx +1 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +99 -0
- package/src/components/Tooltip/Tooltip.tsx +235 -0
- package/src/components/Tooltip/_mixins.scss +107 -0
- package/src/components/Tooltip/_tooltip.legacy.scss +58 -0
- package/src/components/Tooltip/_tooltip.scss +112 -0
- package/src/components/Tooltip/_vars.scss +6 -0
- package/src/components/Tooltip/animations/fade.scss +10 -0
- package/src/components/Tooltip/backdrop.scss +66 -0
- package/src/components/Tooltip/index.tsx +2 -0
- package/src/components/Tooltip/legacy/_mixins.scss +191 -0
- package/src/components/Tooltip/legacy/_tooltip.scss +70 -0
- package/src/components/Tooltip/legacy/_vars.scss +5 -0
- package/src/components/Tooltip/legacy/themes/light.scss +30 -0
- package/src/components/Tooltip/svg-arrow.scss +37 -0
- package/src/components/Tooltip/themes/light-border.scss +158 -0
- package/src/components/Tooltip/themes/light.scss +28 -0
- package/src/components/Unit/InvalidUnit.tsx +11 -0
- package/src/components/Unit/README.mdx +1 -0
- package/src/components/Unit/SimpleCalc.tsx +49 -0
- package/src/components/Unit/StringUnit.tsx +13 -0
- package/src/components/Unit/SvgUnit.tsx +22 -0
- package/src/components/Unit/Unit-old.js +138 -0
- package/src/components/Unit/Unit-test.js +18 -0
- package/src/components/Unit/Unit.hbs +1 -0
- package/src/components/Unit/Unit.stories.tsx +161 -0
- package/src/components/Unit/Unit.tsx +158 -0
- package/src/components/Unit/UnitList.tsx +84 -0
- package/src/components/Unit/YearMonthCalc.tsx +59 -0
- package/src/components/Unit/currencyCalc.tsx +124 -0
- package/src/components/Unit/index.js +1 -0
- package/src/components/Unit/percentageCalc.tsx +73 -0
- package/src/components/Unit/scaleLookup.tsx +19 -0
- package/src/components/User/README.mdx +1 -0
- package/src/components/User/User-test.js +50 -0
- package/src/components/User/User.hbs +8 -0
- package/src/components/User/User.stories.tsx +100 -0
- package/src/components/User/User.tsx +111 -0
- package/src/components/User/index.ts +1 -0
- package/src/components/Value/README.mdx +1 -0
- package/src/components/Value/Value-test.js +28 -0
- package/src/components/Value/Value.stories.tsx +28 -0
- package/src/components/Value/Value.tsx +34 -0
- package/src/components/Value/index.ts +1 -0
- package/src/components/WFPCoreSettings/WFPCoreProvider.tsx +125 -0
- package/src/components/WFPCoreSettings/defaults.ts +3 -0
- package/src/components/WFPCoreSettings/index.ts +4 -0
- package/src/components/WFPCoreSettings/useTheme.tsx +7 -0
- package/src/components/WFPCoreSettings/withWFPCoreSettings.tsx +12 -0
- package/src/components/Wrapper/README.mdx +11 -0
- package/src/components/Wrapper/Wrapper-test.js +51 -0
- package/src/components/Wrapper/Wrapper.stories.tsx +26 -0
- package/src/components/Wrapper/Wrapper.test.tsx +94 -0
- package/src/components/Wrapper/Wrapper.tsx +86 -0
- package/src/components/Wrapper/__snapshots__/Wrapper.test.tsx.snap +11 -0
- package/src/components/Wrapper/index.ts +2 -0
- package/src/globals/data/colors.js +716 -0
- package/src/globals/data/colors.json +273 -0
- package/src/globals/js/boot.js +39 -0
- package/src/globals/js/components.js +36 -0
- package/src/globals/js/index.js +1 -0
- package/src/globals/js/misc/event-matches.js +29 -0
- package/src/globals/js/misc/get-launching-details.js +24 -0
- package/src/globals/js/misc/mixin.js +30 -0
- package/src/globals/js/misc/on.js +9 -0
- package/src/globals/js/misc/resize.js +53 -0
- package/src/globals/js/misc/svg-toggle-class.js +23 -0
- package/src/globals/js/mixins/README.md +207 -0
- package/src/globals/js/mixins/create-component.js +69 -0
- package/src/globals/js/mixins/evented-show-hide-state.js +40 -0
- package/src/globals/js/mixins/evented-state.js +124 -0
- package/src/globals/js/mixins/handles.js +45 -0
- package/src/globals/js/mixins/init-component-by-event.js +84 -0
- package/src/globals/js/mixins/init-component-by-launcher.js +89 -0
- package/src/globals/js/mixins/init-component-by-search.js +41 -0
- package/src/globals/js/mixins/track-blur.js +45 -0
- package/src/globals/js/settings.tsx +49 -0
- package/src/globals/js/watch.js +95 -0
- package/src/globals/scss/styles.scss +146 -0
- package/src/hooks/index.js +1 -0
- package/src/hooks/togglable.js +12 -0
- package/src/hooks/useHeightTransition.ts +33 -0
- package/src/hooks/useId.ts +14 -0
- package/src/hooks/useIsomorphicLayoutEffect.tsx +14 -0
- package/src/hooks/useMediaQuery.tsx +79 -0
- package/src/hooks/useMergeRef.ts +24 -0
- package/src/hooks/useSettings.tsx +20 -0
- package/src/hooks/useWizard.js +77 -0
- package/src/index.ts +185 -0
- package/src/indexStories.ts +44 -0
- package/src/internal/FeatureFlags.js +21 -0
- package/src/internal/FloatingMenu.js +352 -0
- package/src/internal/OptimizedResize.js +54 -0
- package/src/internal/RfFormJest.js +45 -0
- package/src/internal/RfFormWrapper.js +86 -0
- package/src/internal/configureStore.js +13 -0
- package/src/internal/loadDefaultData.js +20 -0
- package/src/internal/useDetectPrint.js.legacy +20 -0
- package/src/internal/withTests.js +7 -0
- package/src/prop-types/types.ts +32 -0
- package/src/tools/__tests__/uniqueId.test.ts +16 -0
- package/src/tools/mergeRefs.js +23 -0
- package/src/tools/setupGetInstanceId.js +10 -0
- package/src/tools/uniqueId.ts +8 -0
- package/src/tools/withState.js +21 -0
- package/src/tools/wrapComponent.js +23 -0
- package/src/utils/index.d.ts +138 -0
- package/umd/dist/components/Accordion/__tests__/utils.d.ts +12 -0
- package/umd/dist/components/Accordion/components/Accordion.d.ts +7 -0
- package/umd/dist/components/Accordion/components/AccordionItem.d.ts +46 -0
- package/umd/dist/components/Accordion/components/AccordionProvider.d.ts +7 -0
- package/umd/dist/components/Accordion/components/ControlledAccordion.d.ts +8 -0
- package/umd/dist/components/Accordion/components/withAccordionItem.d.ts +11 -0
- package/umd/dist/components/Accordion/hooks/useAccordion.d.ts +5 -0
- package/umd/dist/components/Accordion/hooks/useAccordionContext.d.ts +5 -0
- package/umd/dist/components/Accordion/hooks/useAccordionItem.d.ts +7 -0
- package/umd/dist/components/Accordion/hooks/useAccordionItemEffect.d.ts +13 -0
- package/umd/dist/components/Accordion/hooks/useAccordionProvider.d.ts +3 -0
- package/umd/dist/components/Accordion/hooks/useAccordionState.d.ts +14 -0
- package/umd/dist/components/Accordion/hooks/useHeightTransition.d.ts +4 -0
- package/umd/dist/components/Accordion/hooks/useId.d.ts +3 -0
- package/umd/dist/components/Accordion/hooks/useMergeRef.d.ts +4 -0
- package/umd/dist/components/Accordion/index.d.ts +17 -0
- package/umd/dist/components/Accordion/utils/bem.d.ts +7 -0
- package/umd/dist/components/Accordion/utils/constants.d.ts +58 -0
- package/umd/dist/components/Accordion/utils/mergeProps.d.ts +2 -0
- package/umd/dist/components/Accordion/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/umd/dist/components/AnchorNavigation/AnchorNavigation.d.ts +6 -0
- package/umd/dist/components/AnchorNavigation/index.d.ts +1 -0
- package/umd/dist/components/AuthLayout/AuthLayout.d.ts +20 -0
- package/umd/dist/components/AuthLayout/index.d.ts +1 -0
- package/umd/dist/components/Avatar/Avatar.d.ts +33 -0
- package/umd/dist/components/Avatar/index.d.ts +1 -0
- package/umd/dist/components/BannerNavigation/BannerNavigation.d.ts +20 -0
- package/umd/dist/components/BannerNavigation/BannerNavigationWithContent.d.ts +13 -0
- package/umd/dist/components/BannerNavigation/index.d.ts +2 -0
- package/umd/dist/components/Breadcrumb/Breadcrumb.d.ts +11 -0
- package/umd/dist/components/Breadcrumb/index.d.ts +1 -0
- package/umd/dist/components/BreadcrumbHome/BreadcrumbHome.d.ts +13 -0
- package/umd/dist/components/BreadcrumbHome/index.d.ts +1 -0
- package/umd/dist/components/BreadcrumbItem/BreadcrumbItem.d.ts +21 -0
- package/umd/dist/components/BreadcrumbItem/index.d.ts +1 -0
- package/umd/dist/components/Button/Button.Skeleton.d.ts +7 -0
- package/umd/dist/components/Button/Button.d.ts +55 -0
- package/umd/dist/components/Button/index.d.ts +1 -0
- package/umd/dist/components/Card/Card.d.ts +61 -0
- package/umd/dist/components/Card/CardExternal.d.ts +37 -0
- package/umd/dist/components/Card/index.d.ts +2 -0
- package/umd/dist/components/Checkbox/Checkbox.d.ts +37 -0
- package/umd/dist/components/Checkbox/index.d.ts +1 -0
- package/umd/dist/components/ContentSwitcher/ContentSwitcher.d.ts +12 -0
- package/umd/dist/components/ContentSwitcher/index.d.ts +1 -0
- package/umd/dist/components/ContextMenu/ContextMenu.d.ts +31 -0
- package/umd/dist/components/ContextMenu/index.d.ts +1 -0
- package/umd/dist/components/Credits/Credits.d.ts +10 -0
- package/umd/dist/components/Credits/index.d.ts +1 -0
- package/umd/dist/components/DatePicker/DatePicker.d.ts +8 -0
- package/umd/dist/components/DatePicker/DatePickerInput.d.ts +38 -0
- package/umd/dist/components/DatePicker/DateRangePicker.d.ts +8 -0
- package/umd/dist/components/DatePicker/DateRangePickerInput.d.ts +34 -0
- package/umd/dist/components/DatePicker/index.d.ts +4 -0
- package/umd/dist/components/DatePickerNew/DateRangePickerInput.d.ts +11 -0
- package/umd/dist/components/Empty/Empty.d.ts +40 -0
- package/umd/dist/components/Empty/index.d.ts +1 -0
- package/umd/dist/components/Footer/Footer.d.ts +47 -0
- package/umd/dist/components/Footer/FooterExternal.d.ts +22 -0
- package/umd/dist/components/Footer/index.d.ts +2 -0
- package/umd/dist/components/Form/Form.d.ts +15 -0
- package/umd/dist/components/Form/index.d.ts +1 -0
- package/umd/dist/components/FormGroup/FormGroup.d.ts +14 -0
- package/umd/dist/components/FormGroup/index.d.ts +1 -0
- package/umd/dist/components/FormHint/FormHint.d.ts +15 -0
- package/umd/dist/components/FormHint/index.d.ts +1 -0
- package/umd/dist/components/FormItem/FormItem.d.ts +17 -0
- package/umd/dist/components/FormItem/index.d.ts +1 -0
- package/umd/dist/components/FormLabel/FormLabel.d.ts +15 -0
- package/umd/dist/components/FormLabel/index.d.ts +1 -0
- package/umd/dist/components/Hero/Hero.d.ts +53 -0
- package/umd/dist/components/Hero/HeroExternal.d.ts +22 -0
- package/umd/dist/components/Hero/index.d.ts +2 -0
- package/umd/dist/components/InfoBar/InfoBar.d.ts +23 -0
- package/umd/dist/components/InfoBar/index.d.ts +1 -0
- package/umd/dist/components/InlineLoading/InlineLoading.d.ts +26 -0
- package/umd/dist/components/InlineLoading/index.d.ts +1 -0
- package/umd/dist/components/Input/Input.d.ts +152 -0
- package/umd/dist/components/Input/index.d.ts +3 -0
- package/umd/dist/components/Input/useInput.d.ts +123 -0
- package/umd/dist/components/InputGroup/InputGroup.d.ts +48 -0
- package/umd/dist/components/InputGroup/index.d.ts +1 -0
- package/umd/dist/components/Item/Item.d.ts +59 -0
- package/umd/dist/components/Item/index.d.ts +1 -0
- package/umd/dist/components/Link/Link.d.ts +37 -0
- package/umd/dist/components/Link/index.d.ts +1 -0
- package/umd/dist/components/List/List.d.ts +32 -0
- package/umd/dist/components/List/ListItem.d.ts +25 -0
- package/umd/dist/components/List/index.d.ts +2 -0
- package/umd/dist/components/Loading/Loading.d.ts +16 -0
- package/umd/dist/components/Loading/index.d.ts +7 -0
- package/umd/dist/components/MainNavigation/MainNavigation.d.ts +51 -0
- package/umd/dist/components/MainNavigation/MainNavigationContext.d.ts +25 -0
- package/umd/dist/components/MainNavigation/MainNavigationExternal.d.ts +72 -0
- package/umd/dist/components/MainNavigation/MobileButton.d.ts +17 -0
- package/umd/dist/components/MainNavigation/index.d.ts +4 -0
- package/umd/dist/components/MainNavigation/useMainNavigation.d.ts +7 -0
- package/umd/dist/components/MainNavigationItem/MainNavigationItem.d.ts +29 -0
- package/umd/dist/components/MainNavigationItem/index.d.ts +1 -0
- package/umd/dist/components/MdxComponents/MdxComponentsNew.d.ts +2 -0
- package/umd/dist/components/MdxComponents/index.d.ts +1 -0
- package/umd/dist/components/Modal/Modal.d.ts +122 -0
- package/umd/dist/components/Modal/ModalFooter.d.ts +8 -0
- package/umd/dist/components/Modal/index.d.ts +2 -0
- package/umd/dist/components/ModalWrapper/ModalWrapper.d.ts +53 -0
- package/umd/dist/components/ModalWrapper/index.d.ts +1 -0
- package/umd/dist/components/Module/Module.d.ts +38 -0
- package/umd/dist/components/Module/ModuleBody.d.ts +21 -0
- package/umd/dist/components/Module/ModuleFooter.d.ts +10 -0
- package/umd/dist/components/Module/ModuleHeader.d.ts +16 -0
- package/umd/dist/components/Module/index.d.ts +4 -0
- package/umd/dist/components/Notification/Callout.d.ts +59 -0
- package/umd/dist/components/Notification/NotificationActionButton.d.ts +18 -0
- package/umd/dist/components/Notification/NotificationButton.d.ts +36 -0
- package/umd/dist/components/Notification/NotificationIcon.d.ts +8 -0
- package/umd/dist/components/Notification/NotificationTextDetails.d.ts +10 -0
- package/umd/dist/components/Notification/ToastNotification.d.ts +10 -0
- package/umd/dist/components/Notification/index.d.ts +5 -0
- package/umd/dist/components/NumberInput/NumberInput.Skeleton.d.ts +10 -0
- package/umd/dist/components/NumberInput/NumberInput.d.ts +64 -0
- package/umd/dist/components/NumberInput/index.d.ts +2 -0
- package/umd/dist/components/Pagination/Pagination.d.ts +92 -0
- package/umd/dist/components/Pagination/index.d.ts +1 -0
- package/umd/dist/components/RadioButton/RadioButton.d.ts +27 -0
- package/umd/dist/components/RadioButton/index.d.ts +2 -0
- package/umd/dist/components/ReadMore/ReadMore.d.ts +45 -0
- package/umd/dist/components/ReadMore/index.d.ts +1 -0
- package/umd/dist/components/Search/Search.d.ts +50 -0
- package/umd/dist/components/Search/index.d.ts +1 -0
- package/umd/dist/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -0
- package/umd/dist/components/SecondaryNavigation/SecondaryNavigationTitle.d.ts +8 -0
- package/umd/dist/components/SecondaryNavigation/index.d.ts +2 -0
- package/umd/dist/components/Select/Select.d.ts +24 -0
- package/umd/dist/components/Select/index.d.ts +1 -0
- package/umd/dist/components/SelectItem/SelectItem.d.ts +28 -0
- package/umd/dist/components/SelectItem/index.d.ts +1 -0
- package/umd/dist/components/SelectItemGroup/SelectItemGroup.d.ts +21 -0
- package/umd/dist/components/SelectItemGroup/index.d.ts +1 -0
- package/umd/dist/components/Sidebar/Sidebar.d.ts +46 -0
- package/umd/dist/components/Sidebar/index.d.ts +1 -0
- package/umd/dist/components/SkeletonText/SkeletonText.d.ts +22 -0
- package/umd/dist/components/SkeletonText/index.d.ts +1 -0
- package/umd/dist/components/Slider/Slider.d.ts +71 -0
- package/umd/dist/components/Slider/index.d.ts +1 -0
- package/umd/dist/components/StepNavigation/StepNavigation.Skeleton.d.ts +2 -0
- package/umd/dist/components/StepNavigation/StepNavigation.d.ts +42 -0
- package/umd/dist/components/StepNavigation/index.d.ts +2 -0
- package/umd/dist/components/StepNavigationItem/StepNavigationItem.d.ts +55 -0
- package/umd/dist/components/StepNavigationItem/index.d.ts +1 -0
- package/umd/dist/components/Story/Story.d.ts +7 -0
- package/umd/dist/components/Story/index.d.ts +1 -0
- package/umd/dist/components/SubNavigation/SubNavigation.d.ts +5 -0
- package/umd/dist/components/SubNavigation/SubNavigationContent.d.ts +9 -0
- package/umd/dist/components/SubNavigation/SubNavigationFilter.d.ts +9 -0
- package/umd/dist/components/SubNavigation/SubNavigationGroup.d.ts +17 -0
- package/umd/dist/components/SubNavigation/SubNavigationHeader.d.ts +9 -0
- package/umd/dist/components/SubNavigation/SubNavigationItem.d.ts +9 -0
- package/umd/dist/components/SubNavigation/SubNavigationLink.d.ts +9 -0
- package/umd/dist/components/SubNavigation/SubNavigationList.d.ts +9 -0
- package/umd/dist/components/SubNavigation/SubNavigationTitle.d.ts +9 -0
- package/umd/dist/components/SubNavigation/index.d.ts +9 -0
- package/umd/dist/components/Tab/Tab.d.ts +83 -0
- package/umd/dist/components/Tab/index.d.ts +2 -0
- package/umd/dist/components/Tab/useTab.d.ts +12 -0
- package/umd/dist/components/TabContent/TabContent.d.ts +13 -0
- package/umd/dist/components/TabContent/index.d.ts +1 -0
- package/umd/dist/components/Table/Table.d.ts +8 -0
- package/umd/dist/components/Table/TableSorting.d.ts +11 -0
- package/umd/dist/components/Table/index.d.ts +2 -0
- package/umd/dist/components/TablePagination/TablePagination.d.ts +33 -0
- package/umd/dist/components/TablePagination/index.d.ts +1 -0
- package/umd/dist/components/Tabs/Tabs.d.ts +67 -0
- package/umd/dist/components/Tabs/TabsContext.d.ts +8 -0
- package/umd/dist/components/Tabs/index.d.ts +1 -0
- package/umd/dist/components/Tag/Tag.d.ts +14 -0
- package/umd/dist/components/Tag/index.d.ts +2 -0
- package/umd/dist/components/Text/Text.d.ts +30 -0
- package/umd/dist/components/Text/index.d.ts +1 -0
- package/umd/dist/components/TextArea/TextArea.d.ts +8 -0
- package/umd/dist/components/TextArea/index.d.ts +1 -0
- package/umd/dist/components/TextInput/TextInput.d.ts +7 -0
- package/umd/dist/components/TextInput/index.d.ts +1 -0
- package/umd/dist/components/Toggle/Toggle.d.ts +38 -0
- package/umd/dist/components/Toggle/index.d.ts +1 -0
- package/umd/dist/components/Tooltip/Tooltip.d.ts +103 -0
- package/umd/dist/components/Tooltip/index.d.ts +2 -0
- package/umd/dist/components/UNCoreSettings/UNCoreProvider.d.ts +21 -0
- package/umd/dist/components/UNCoreSettings/defaults.d.ts +2 -0
- package/umd/dist/components/UNCoreSettings/index.d.ts +4 -0
- package/umd/dist/components/UNCoreSettings/useTheme.d.ts +2 -0
- package/umd/dist/components/UNCoreSettings/withUNCoreSettings.d.ts +2 -0
- package/umd/dist/components/Unit/InvalidUnit.d.ts +2 -0
- package/umd/dist/components/Unit/SimpleCalc.d.ts +17 -0
- package/umd/dist/components/Unit/StringUnit.d.ts +2 -0
- package/umd/dist/components/Unit/SvgUnit.d.ts +2 -0
- package/umd/dist/components/Unit/Unit.d.ts +54 -0
- package/umd/dist/components/Unit/UnitList.d.ts +96 -0
- package/umd/dist/components/Unit/YearMonthCalc.d.ts +7 -0
- package/umd/dist/components/Unit/currencyCalc.d.ts +21 -0
- package/umd/dist/components/Unit/index.d.ts +1 -0
- package/umd/dist/components/Unit/percentageCalc.d.ts +18 -0
- package/umd/dist/components/Unit/scaleLookup.d.ts +24 -0
- package/umd/dist/components/User/User.d.ts +55 -0
- package/umd/dist/components/User/index.d.ts +1 -0
- package/umd/dist/components/Value/Value.d.ts +11 -0
- package/umd/dist/components/Value/index.d.ts +1 -0
- package/umd/dist/components/WFPCoreSettings/WFPCoreProvider.d.ts +21 -0
- package/umd/dist/components/WFPCoreSettings/defaults.d.ts +2 -0
- package/umd/dist/components/WFPCoreSettings/index.d.ts +4 -0
- package/umd/dist/components/WFPCoreSettings/useTheme.d.ts +2 -0
- package/umd/dist/components/WFPCoreSettings/withWFPCoreSettings.d.ts +2 -0
- package/umd/dist/components/Wrapper/Wrapper.d.ts +22 -0
- package/umd/dist/components/Wrapper/index.d.ts +2 -0
- package/umd/dist/globals/data/colors.d.ts +609 -0
- package/umd/dist/globals/js/settings.d.ts +34 -0
- package/umd/dist/hooks/index.d.ts +1 -0
- package/umd/dist/hooks/togglable.d.ts +5 -0
- package/umd/dist/hooks/useHeightTransition.d.ts +4 -0
- package/umd/dist/hooks/useId.d.ts +3 -0
- package/umd/dist/hooks/useIsomorphicLayoutEffect.d.ts +12 -0
- package/umd/dist/hooks/useMediaQuery.d.ts +19 -0
- package/umd/dist/hooks/useMergeRef.d.ts +4 -0
- package/umd/dist/hooks/useSettings.d.ts +2 -0
- package/umd/dist/index.d.ts +75 -0
- package/umd/dist/indexStories.d.ts +1 -0
- package/umd/dist/internal/FeatureFlags.d.ts +19 -0
- package/umd/dist/prop-types/types.d.ts +5 -0
- package/umd/dist/tools/uniqueId.d.ts +2 -0
- package/umd/index.js +5470 -0
- package/umd/index.js.map +1 -0
- package/umd/index.min.js +1 -0
- package/umd/index.min.js.map +1 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Carbon component mixins
|
|
2
|
+
|
|
3
|
+
Carbon component mixins, based on [Subclass Factory Pattern](https://github.com/justinfagnani/proposal-mixins#subclass-factory-pattern), provides the basis for Carbon component classes by allowing component implementation to compose small pieces of functionalities to base them on, instead of introducing "fat base class".
|
|
4
|
+
|
|
5
|
+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
6
|
+
|
|
7
|
+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
|
8
|
+
|
|
9
|
+
* [Component lifecycle (`create-component.js`)](#component-lifecycle-create-componentjs)
|
|
10
|
+
* [Creation](#creation)
|
|
11
|
+
* [Clean-up](#clean-up)
|
|
12
|
+
* [Component registry](#component-registry)
|
|
13
|
+
* [Sugar layers for component instantiation](#sugar-layers-for-component-instantiation)
|
|
14
|
+
* [Searching for DOM nodes to intantiate components on (`init-component-by-search.js`)](#searching-for-dom-nodes-to-intantiate-components-on-init-component-by-searchjs)
|
|
15
|
+
* [Lazily instantiating a component upon an event on a root element (`init-component-by-event.js`)](#lazily-instantiating-a-component-upon-an-event-on-a-root-element-init-component-by-eventjs)
|
|
16
|
+
* [Lazily instantiating a component upon an event on a launcher button (`init-component-by-launcher.js`)](#lazily-instantiating-a-component-upon-an-event-on-a-launcher-button-init-component-by-launcherjs)
|
|
17
|
+
|
|
18
|
+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
19
|
+
|
|
20
|
+
## Component lifecycle ([`create-component.js`](./create-component.js))
|
|
21
|
+
|
|
22
|
+
[`create-component.js`](./create-component.js) mixin covers component lifecycle, which is, [creation](#creation) and [clean-up](#clean-up).
|
|
23
|
+
|
|
24
|
+
### Creation
|
|
25
|
+
|
|
26
|
+
[Static `.create(element)` method](https://github.com/carbon-design-system/carbon-components/blob/0336425/src/globals/js/mixins/create-component.js#L44-L46) covers the creation part. It first checks if there is an instance of the same component class with by looking up static `components` property for one associated with the given `element`, and simply returns it if there is one. Otherwise, a new instance of the component is created by calling the constructor with the given `element` and returns the new instance.
|
|
27
|
+
|
|
28
|
+
A Carbon component works with the given `element` and its descendants to hook event handlers on, change DOM properties of, mangle styles of, and so on. We call it the _root element_ of the component.
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
import mixin from 'carbon-components/src/globals/js/misc/mixin.js';
|
|
32
|
+
import createComponent from 'carbon-components/src/globals/js/mixins/create-component.js';
|
|
33
|
+
|
|
34
|
+
class MyClass extends mixin(createComponent) {
|
|
35
|
+
…
|
|
36
|
+
|
|
37
|
+
// Every component must define static `components` property
|
|
38
|
+
static components = new WeakMap();
|
|
39
|
+
|
|
40
|
+
// Every component must define static `options` property
|
|
41
|
+
static options = { foo: 'foo0', bar: 'bar0' };
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const div = document.body.appendChild(document.createElement('div'));
|
|
45
|
+
const options = { foo: 'foo1', baz: 'baz1' };
|
|
46
|
+
const myClassInstance = MyClass.create(div, options);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The constructor in `create-component.js` mixin sets the following properties:
|
|
50
|
+
|
|
51
|
+
| Name | Description |
|
|
52
|
+
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
53
|
+
| `element` | The root element of the component (see above). |
|
|
54
|
+
| `options` | The component options. |
|
|
55
|
+
| `children` | The array of Carbon component instances that has to be released along with this component. An exanple is with [overflow menu](http://www.carbondesignsystem.com/components/overflow-menu/code) component which creates another Carbon component called [floating menu](../../../components/floating-menu/floating-menu.js), and the floating menu has to be released along with the overflow menu. |
|
|
56
|
+
|
|
57
|
+
The `.options` property inherits static `.options` property and merges in the 2nd argument of static `.create()` method. In above example, `.options` will be equal to `{ foo: 'foo1', bar: 'bar0', baz: 'baz1' }`.
|
|
58
|
+
|
|
59
|
+
### Clean-up
|
|
60
|
+
|
|
61
|
+
[`.release()`](https://github.com/carbon-design-system/carbon-components/blob/0336425/src/globals/js/mixins/create-component.js#L51-L57) method covers the clean-up part. It takes care of cleaning-up Carbon components in `.children` property as well as one in static `.components` property.
|
|
62
|
+
|
|
63
|
+
If a Carbon component has other things to clean-up (e.g. event listeners), it can override the `.release()` method and write code there to clean things up.
|
|
64
|
+
|
|
65
|
+
`.release()` method should return `null` to allow the caller of `.release()` e.g. to assign the return value to a variable referring to Carbon component instance, marking that the instance is gone.
|
|
66
|
+
|
|
67
|
+
### Component registry
|
|
68
|
+
|
|
69
|
+
Every component must define static `components` property, which is an instance of [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap). The constructor in `create-component.js` [sets the component instance to static `.components` property](https://github.com/carbon-design-system/carbon-components/blob/0336425/src/globals/js/mixins/create-component.js#L37), mapped with the DOM element the component is instantiated on. This allows application code to grab a Carbon component instance associated with the root element.
|
|
70
|
+
|
|
71
|
+
## Sugar layers for component instantiation
|
|
72
|
+
|
|
73
|
+
Carbon defines three types of mixins to allow applications to instantiate components in batch. A component can inherit one of those three mixins to support batch instantiation.
|
|
74
|
+
|
|
75
|
+
### Searching for DOM nodes to intantiate components on ([`init-component-by-search.js`](./init-component-by-search.js))
|
|
76
|
+
|
|
77
|
+
The most basic one is [`init-component-by-search.js`](./init-component-by-search.js), which searches for DOM elements matching component option's `.selectorInit` property.
|
|
78
|
+
|
|
79
|
+
For example, given the following HTML:
|
|
80
|
+
|
|
81
|
+
```html
|
|
82
|
+
<main>
|
|
83
|
+
<div data-my-component>The content of component 0</div>
|
|
84
|
+
<div data-my-component>The content of component 1</div>
|
|
85
|
+
</main>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The call of static `.init()` method below instantiates components on the two `<div>`s above:
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
import mixin from 'carbon-components/src/globals/js/misc/mixin.js';
|
|
92
|
+
import createComponent from 'carbon-components/src/globals/js/mixins/create-component.js';
|
|
93
|
+
import initComponentBySearch from 'carbon-components/src/globals/js/mixins/init-component-by-search.js';
|
|
94
|
+
|
|
95
|
+
class MyClass extends mixin(createComponent, initComponentBySearch) {
|
|
96
|
+
…
|
|
97
|
+
|
|
98
|
+
static components = new WeakMap();
|
|
99
|
+
static options = {
|
|
100
|
+
selectorInit: '[data-my-component]',
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const main = document.querySelector('main');
|
|
105
|
+
|
|
106
|
+
// Instantiates components on two `<div>`s above
|
|
107
|
+
MyClass.init(main);
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Lazily instantiating a component upon an event on a root element ([`init-component-by-event.js`](./init-component-by-event.js))
|
|
111
|
+
|
|
112
|
+
[`init-component-by-event.js`](./init-component-by-event.js) mixin allows delaying component instantiation until an event happens on a DOM element that will be the root element. For example, the static `.init()` method of Carbon [`Tooltip` component](http://www.carbondesignsystem.com/components/tooltip/code) delays instantiating the components until user hovers the mouse over a trigger button or user puts the keyboard focus on a trigger buton.
|
|
113
|
+
|
|
114
|
+
Given the same example HTML as the one for `init-component-by-search.js` above, the call of static `.init()` method below detects `click` events on DOM elements with `data-my-component` attribute, and instantiates the component when such event happens:
|
|
115
|
+
|
|
116
|
+
```javascript
|
|
117
|
+
import mixin from 'carbon-components/src/globals/js/misc/mixin.js';
|
|
118
|
+
import createComponent from 'carbon-components/src/globals/js/mixins/create-component.js';
|
|
119
|
+
import initComponentByEvent from 'carbon-components/src/globals/js/mixins/init-component-by-event.js';
|
|
120
|
+
|
|
121
|
+
class MyClass extends mixin(createComponent, initComponentByEvent) {
|
|
122
|
+
constructor(element) {
|
|
123
|
+
super(element);
|
|
124
|
+
// Side note: Make sure calling `.removeEventListener()` in the `.release()` method
|
|
125
|
+
element.addEventListener('click', this._handleClick);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Called when this component is instantiated upon an event
|
|
129
|
+
createdByEvent(evt) {
|
|
130
|
+
this._handleClick(evt);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
…
|
|
134
|
+
|
|
135
|
+
_handleClick = evt => {
|
|
136
|
+
alert('clicked!');
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
…
|
|
140
|
+
|
|
141
|
+
static components = new WeakMap();
|
|
142
|
+
static options = {
|
|
143
|
+
selectorInit: '[data-my-component]',
|
|
144
|
+
// Clicking on a DOM element with `data-my-component` attribute will instantiate this component
|
|
145
|
+
initEventNames: ['click'],
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const main = document.querySelector('main');
|
|
150
|
+
MyClass.init(main);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Changing `initEventNames` option above allows you to hook more/different event types to instantiate components upon.
|
|
154
|
+
|
|
155
|
+
`.createdByEvent()` method allows you to run an event handler of the event that caused instantiating the component.
|
|
156
|
+
|
|
157
|
+
### Lazily instantiating a component upon an event on a launcher button ([`init-component-by-launcher.js`](./init-component-by-launcher.js))
|
|
158
|
+
|
|
159
|
+
[`init-component-by-launcher.js`](./init-component-by-launcher.js) mix-in allows delaying component instantiation until an event happens on an element that has semantic association to the compoennt. For example, the static `.init()` method of Carbon [`Modal` component](http://www.carbondesignsystem.com/components/modal/code) delays instantiating the components until user clicks on a launcher button.
|
|
160
|
+
|
|
161
|
+
```html
|
|
162
|
+
<main>
|
|
163
|
+
<button class="wfp--btn wfp--btn--secondary" type="button"
|
|
164
|
+
data-my-component-target="#id-of-my-component">
|
|
165
|
+
Launch
|
|
166
|
+
</button>
|
|
167
|
+
<div data-my-component id="id-of-my-component">The content of my component</div>
|
|
168
|
+
</main>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Given the example HTML above, the call of static `.init()` method below detects `click` events on DOM elements with `data-my-component-target` attribute, and when one happens, looks for the DOM element the element's `data-my-component-target` attribute points to as a selector, and instantiates a component on the DOM element if found.
|
|
172
|
+
|
|
173
|
+
```javascript
|
|
174
|
+
import mixin from 'carbon-components/src/globals/js/misc/mixin.js';
|
|
175
|
+
import createComponent from 'carbon-components/src/globals/js/mixins/create-component.js';
|
|
176
|
+
import initComponentByLauncher from 'carbon-components/src/globals/js/mixins/init-component-by-launcher.js';
|
|
177
|
+
|
|
178
|
+
class MyClass extends mixin(createComponent, initComponentByLauncher) {
|
|
179
|
+
…
|
|
180
|
+
|
|
181
|
+
// Called when user clicks on the launcher button
|
|
182
|
+
createdByLauncher(evt) {
|
|
183
|
+
alert('launched!');
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
…
|
|
187
|
+
|
|
188
|
+
static components = new WeakMap();
|
|
189
|
+
static options = {
|
|
190
|
+
selectorInit: '[data-my-component]',
|
|
191
|
+
// Clicking on DOM elements with `data-my-component-target` attribute
|
|
192
|
+
// will look for a DOM element `data-my-component-target` points to,
|
|
193
|
+
// and will instantiate this component on the DOM element found
|
|
194
|
+
attribInitTarget: 'data-my-component-target',
|
|
195
|
+
initEventNames: ['click'],
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const main = document.querySelector('main');
|
|
200
|
+
MyClass.init(main);
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Changing `attribInitTarget` option above allows you to change the attribute name to associate a trigger button with a component's root element.
|
|
204
|
+
|
|
205
|
+
Changing `initEventNames` option above allows you to hook more/different event types to instantiate components upon.
|
|
206
|
+
|
|
207
|
+
`.createdByLauncher()` method allows you to run an event handler of the event that caused instantiating the component.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export default function(ToMix) {
|
|
2
|
+
class CreateComponent extends ToMix {
|
|
3
|
+
/**
|
|
4
|
+
* The component instances managed by this component.
|
|
5
|
+
* Releasing this component also releases the components in `this.children`.
|
|
6
|
+
* @type {Component[]}
|
|
7
|
+
*/
|
|
8
|
+
children = [];
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Mix-in class to manage lifecycle of component.
|
|
12
|
+
* The constructor sets up this component's effective options,
|
|
13
|
+
* and registers this component't instance associated to an element.
|
|
14
|
+
* @implements Handle
|
|
15
|
+
* @param {HTMLElement} element The element working as this component.
|
|
16
|
+
* @param {Object} [options] The component options.
|
|
17
|
+
*/
|
|
18
|
+
constructor(element, options = {}) {
|
|
19
|
+
super(element, options);
|
|
20
|
+
|
|
21
|
+
if (!element || element.nodeType !== Node.ELEMENT_NODE) {
|
|
22
|
+
throw new TypeError(
|
|
23
|
+
'DOM element should be given to initialize this widget.'
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The element the component is of.
|
|
29
|
+
* @type {Element}
|
|
30
|
+
*/
|
|
31
|
+
this.element = element;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The component options.
|
|
35
|
+
* @type {Object}
|
|
36
|
+
*/
|
|
37
|
+
this.options = Object.assign(
|
|
38
|
+
Object.create(this.constructor.options),
|
|
39
|
+
options
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
this.constructor.components.set(this.element, this);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Instantiates this component of the given element.
|
|
47
|
+
* @param {HTMLElement} element The element.
|
|
48
|
+
*/
|
|
49
|
+
static create(element, options) {
|
|
50
|
+
return this.components.get(element) || new this(element, options);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Releases this component's instance from the associated element.
|
|
55
|
+
*/
|
|
56
|
+
release() {
|
|
57
|
+
for (
|
|
58
|
+
let child = this.children.pop();
|
|
59
|
+
child;
|
|
60
|
+
child = this.children.pop()
|
|
61
|
+
) {
|
|
62
|
+
child.release();
|
|
63
|
+
}
|
|
64
|
+
this.constructor.components.delete(this.element);
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return CreateComponent;
|
|
69
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import eventedState from './evented-state';
|
|
2
|
+
import getLaunchingDetails from '../misc/get-launching-details';
|
|
3
|
+
|
|
4
|
+
function eventedShowHideState(ToMix) {
|
|
5
|
+
/**
|
|
6
|
+
* Mix-in class to launch a floating menu.
|
|
7
|
+
* @class EventedShowHideState
|
|
8
|
+
*/
|
|
9
|
+
class EventedShowHideState extends ToMix {
|
|
10
|
+
/**
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Switch to 'shown' state.
|
|
14
|
+
* @param [evtOrElem] The launching event or element.
|
|
15
|
+
* @param {EventedState~changeStateCallback} [callback] The callback.
|
|
16
|
+
*/
|
|
17
|
+
show(evtOrElem, callback) {
|
|
18
|
+
if (!evtOrElem || typeof evtOrElem === 'function') {
|
|
19
|
+
callback = evtOrElem; // eslint-disable-line no-param-reassign
|
|
20
|
+
}
|
|
21
|
+
this.changeState('shown', getLaunchingDetails(evtOrElem), callback);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Switch to 'hidden' state.
|
|
26
|
+
* @param [evtOrElem] The launching event or element.
|
|
27
|
+
* @param {EventedState~changeStateCallback} [callback] The callback.
|
|
28
|
+
*/
|
|
29
|
+
hide(evtOrElem, callback) {
|
|
30
|
+
if (!evtOrElem || typeof evtOrElem === 'function') {
|
|
31
|
+
callback = evtOrElem; // eslint-disable-line no-param-reassign
|
|
32
|
+
}
|
|
33
|
+
this.changeState('hidden', getLaunchingDetails(evtOrElem), callback);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return EventedShowHideState;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const exports = [eventedState, eventedShowHideState];
|
|
40
|
+
export default exports;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
export default function(ToMix) {
|
|
2
|
+
/**
|
|
3
|
+
* Mix-in class to manage events associated with states.
|
|
4
|
+
* @class EventedState
|
|
5
|
+
*/
|
|
6
|
+
class EventedState extends ToMix {
|
|
7
|
+
// eslint-disable-next-line jsdoc/check-param-names
|
|
8
|
+
/**
|
|
9
|
+
* The internal implementation for {@link EventedState#changeState `.changeState()`}, performing actual change in state.
|
|
10
|
+
* @param {string} [state] The new state. Can be an omitted, which means toggling.
|
|
11
|
+
* @param {Object} [detail]
|
|
12
|
+
* The object that should be put to event details that is fired before/after changing state.
|
|
13
|
+
* Can have a `group` property, which specifies what state to be changed.
|
|
14
|
+
* @param {EventedState~changeStateCallback} callback The callback called once changing state is finished or is canceled.
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
_changeState() {
|
|
18
|
+
throw new Error(
|
|
19
|
+
'_changeState() should be overriden to perform actual change in state.'
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// eslint-disable-next-line jsdoc/check-param-names
|
|
24
|
+
/**
|
|
25
|
+
* Changes the state of this component.
|
|
26
|
+
* @param {string} [state] The new state. Can be an omitted, which means toggling.
|
|
27
|
+
* @param {Object} [detail]
|
|
28
|
+
* The object that should be put to event details that is fired before/after changing state.
|
|
29
|
+
* Can have a `group` property, which specifies what state to be changed.
|
|
30
|
+
* @param {EventedState~changeStateCallback} [callback] The callback called once changing state is finished or is canceled.
|
|
31
|
+
*/
|
|
32
|
+
changeState(...args) {
|
|
33
|
+
const state = typeof args[0] === 'string' ? args.shift() : undefined;
|
|
34
|
+
const detail =
|
|
35
|
+
Object(args[0]) === args[0] && typeof args[0] !== 'function'
|
|
36
|
+
? args.shift()
|
|
37
|
+
: undefined;
|
|
38
|
+
const callback = typeof args[0] === 'function' ? args.shift() : undefined;
|
|
39
|
+
|
|
40
|
+
if (
|
|
41
|
+
typeof this.shouldStateBeChanged === 'function' &&
|
|
42
|
+
!this.shouldStateBeChanged(state, detail)
|
|
43
|
+
) {
|
|
44
|
+
if (callback) {
|
|
45
|
+
callback(null, true);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const data = {
|
|
51
|
+
group: detail && detail.group,
|
|
52
|
+
state,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const eventNameSuffix = [data.group, state]
|
|
56
|
+
.filter(Boolean)
|
|
57
|
+
.join('-')
|
|
58
|
+
.split('-') // Group or state may contain hyphen
|
|
59
|
+
.map(item => item[0].toUpperCase() + item.substr(1))
|
|
60
|
+
.join('');
|
|
61
|
+
|
|
62
|
+
const eventStart = new CustomEvent(
|
|
63
|
+
this.options[`eventBefore${eventNameSuffix}`],
|
|
64
|
+
{
|
|
65
|
+
bubbles: true,
|
|
66
|
+
cancelable: true,
|
|
67
|
+
detail,
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const fireOnNode = (detail && detail.delegatorNode) || this.element;
|
|
72
|
+
const canceled = !fireOnNode.dispatchEvent(eventStart);
|
|
73
|
+
|
|
74
|
+
if (canceled) {
|
|
75
|
+
if (callback) {
|
|
76
|
+
const error = new Error(
|
|
77
|
+
`Changing state (${JSON.stringify(data)}) has been canceled.`
|
|
78
|
+
);
|
|
79
|
+
error.canceled = true;
|
|
80
|
+
callback(error);
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
const changeStateArgs = [state, detail].filter(Boolean);
|
|
84
|
+
this._changeState(...changeStateArgs, () => {
|
|
85
|
+
fireOnNode.dispatchEvent(
|
|
86
|
+
new CustomEvent(this.options[`eventAfter${eventNameSuffix}`], {
|
|
87
|
+
bubbles: true,
|
|
88
|
+
cancelable: true,
|
|
89
|
+
detail,
|
|
90
|
+
})
|
|
91
|
+
);
|
|
92
|
+
if (callback) {
|
|
93
|
+
callback();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Tests if change in state should happen or not.
|
|
101
|
+
* Classes inheriting {@link EventedState `EventedState`} should override this function.
|
|
102
|
+
* @function EventedState#shouldStateBeChanged
|
|
103
|
+
* @param {string} [state] The new state. Can be an omitted, which means toggling.
|
|
104
|
+
* @param {Object} [detail]
|
|
105
|
+
* The object that should be put to event details that is fired before/after changing state.
|
|
106
|
+
* Can have a `group` property, which specifies what state to be changed.
|
|
107
|
+
* @returns {boolean}
|
|
108
|
+
* `false` if change in state shouldn't happen, e.g. when the given new state is the same as the current one.
|
|
109
|
+
*/
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* The callback called once changing state is finished or is canceled.
|
|
114
|
+
* @callback EventedState~changeStateCallback
|
|
115
|
+
* @param {Error} error
|
|
116
|
+
* An error object with `true` in its `canceled` property if changing state is canceled.
|
|
117
|
+
* Cancellation happens if the handler of a custom event, that is fired before changing state happens,
|
|
118
|
+
* calls `.preventDefault()` against the event.
|
|
119
|
+
* @param {boolean} keptState
|
|
120
|
+
* `true` if the call to {@link EventedState#changeState `.changeState()`} didn't cause actual change in state.
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
return EventedState;
|
|
124
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export default function(ToMix) {
|
|
2
|
+
/**
|
|
3
|
+
* Mix-in class to manage handles in component.
|
|
4
|
+
* Managed handles are automatically released when the component with this class mixed in is released.
|
|
5
|
+
* @class Handles
|
|
6
|
+
* @implements Handle
|
|
7
|
+
*/
|
|
8
|
+
class Handles extends ToMix {
|
|
9
|
+
/**
|
|
10
|
+
* The handled managed by this component.
|
|
11
|
+
* Releasing this component releases the handles.
|
|
12
|
+
* @type {Set<Handle>}
|
|
13
|
+
*/
|
|
14
|
+
handles = new Set();
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Manages the given handle.
|
|
18
|
+
* @param {Handle} handle The handle to manage.
|
|
19
|
+
* @returns {Handle} The given handle.
|
|
20
|
+
*/
|
|
21
|
+
manage(handle) {
|
|
22
|
+
this.handles.add(handle);
|
|
23
|
+
return handle;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Stop managing the given handle.
|
|
28
|
+
* @param {Handle} handle The handle to stop managing.
|
|
29
|
+
* @returns {Handle} The given handle.
|
|
30
|
+
*/
|
|
31
|
+
unmanage(handle) {
|
|
32
|
+
this.handles.delete(handle);
|
|
33
|
+
return handle;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
release() {
|
|
37
|
+
this.handles.forEach(handle => {
|
|
38
|
+
handle.release();
|
|
39
|
+
this.handles.delete(handle);
|
|
40
|
+
});
|
|
41
|
+
return super.release();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return Handles;
|
|
45
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import eventMatches from '../misc/event-matches';
|
|
2
|
+
import on from '../misc/on';
|
|
3
|
+
|
|
4
|
+
export default function(ToMix) {
|
|
5
|
+
/**
|
|
6
|
+
* Mix-in class to instantiate components upon events.
|
|
7
|
+
* @class InitComponentByEvent
|
|
8
|
+
*/
|
|
9
|
+
class InitComponentByEvent extends ToMix {
|
|
10
|
+
/**
|
|
11
|
+
* `true` suggests that this component is lazily initialized upon an action/event, etc.
|
|
12
|
+
* @type {boolean}
|
|
13
|
+
*/
|
|
14
|
+
static forLazyInit = true;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Instantiates this component in the given element.
|
|
18
|
+
* If the given element indicates that it's an component of this class, instantiates it.
|
|
19
|
+
* Otherwise, instantiates this component by clicking on this component in the given node.
|
|
20
|
+
* @param {Node} target The DOM node to instantiate this component in. Should be a document or an element.
|
|
21
|
+
* @param {Object} [options] The component options.
|
|
22
|
+
* @param {string} [options.selectorInit] The CSS selector to find this component.
|
|
23
|
+
* @returns {Handle} The handle to remove the event listener to handle clicking.
|
|
24
|
+
*/
|
|
25
|
+
static init(target = document, options = {}) {
|
|
26
|
+
const effectiveOptions = Object.assign(
|
|
27
|
+
Object.create(this.options),
|
|
28
|
+
options
|
|
29
|
+
);
|
|
30
|
+
if (
|
|
31
|
+
target.nodeType !== Node.ELEMENT_NODE &&
|
|
32
|
+
target.nodeType !== Node.DOCUMENT_NODE
|
|
33
|
+
) {
|
|
34
|
+
throw new TypeError(
|
|
35
|
+
'DOM document or DOM element should be given to search for and initialize this widget.'
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
if (
|
|
39
|
+
target.nodeType === Node.ELEMENT_NODE &&
|
|
40
|
+
target.matches(effectiveOptions.selectorInit)
|
|
41
|
+
) {
|
|
42
|
+
this.create(target, options);
|
|
43
|
+
} else {
|
|
44
|
+
// To work around non-bubbling `focus` event, use `focusin` event instead of it's available, and "capture mode" otherwise
|
|
45
|
+
const hasFocusin =
|
|
46
|
+
'onfocusin' in
|
|
47
|
+
(target.nodeType === Node.ELEMENT_NODE
|
|
48
|
+
? target.ownerDocument
|
|
49
|
+
: target
|
|
50
|
+
).defaultView;
|
|
51
|
+
const handles = effectiveOptions.initEventNames.map(name => {
|
|
52
|
+
const eventName = name === 'focus' && hasFocusin ? 'focusin' : name;
|
|
53
|
+
return on(
|
|
54
|
+
target,
|
|
55
|
+
eventName,
|
|
56
|
+
event => {
|
|
57
|
+
const element = eventMatches(
|
|
58
|
+
event,
|
|
59
|
+
effectiveOptions.selectorInit
|
|
60
|
+
);
|
|
61
|
+
// Instantiated components handles events by themselves
|
|
62
|
+
if (element && !this.components.has(element)) {
|
|
63
|
+
const component = this.create(element, options);
|
|
64
|
+
if (typeof component.createdByEvent === 'function') {
|
|
65
|
+
component.createdByEvent(event);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
name === 'focus' && !hasFocusin
|
|
70
|
+
);
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
release() {
|
|
74
|
+
for (let handle = handles.pop(); handle; handle = handles.pop()) {
|
|
75
|
+
handle.release();
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return '';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return InitComponentByEvent;
|
|
84
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import eventMatches from '../misc/event-matches';
|
|
2
|
+
import on from '../misc/on';
|
|
3
|
+
|
|
4
|
+
export default function(ToMix) {
|
|
5
|
+
/**
|
|
6
|
+
* Mix-in class to instantiate components events on launcher button.
|
|
7
|
+
* @class InitComponentByLauncher
|
|
8
|
+
*/
|
|
9
|
+
class InitComponentByLauncher extends ToMix {
|
|
10
|
+
/**
|
|
11
|
+
* `true` suggests that this component is lazily initialized upon an action/event, etc.
|
|
12
|
+
* @type {boolean}
|
|
13
|
+
*/
|
|
14
|
+
static forLazyInit = true;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Instantiates this component in the given element.
|
|
18
|
+
* If the given element indicates that it's an component of this class, instantiates it.
|
|
19
|
+
* Otherwise, instantiates this component by clicking on launcher buttons
|
|
20
|
+
* (buttons with attribute that `options.attribInitTarget` points to) of this component in the given node.
|
|
21
|
+
* @param {Node} target The DOM node to instantiate this component in. Should be a document or an element.
|
|
22
|
+
* @param {Object} [options] The component options.
|
|
23
|
+
* @param {string} [options.selectorInit] The CSS selector to find this component.
|
|
24
|
+
* @param {string} [options.attribInitTarget] The attribute name in the launcher buttons to find target component.
|
|
25
|
+
* @returns {Handle} The handle to remove the event listener to handle clicking.
|
|
26
|
+
*/
|
|
27
|
+
static init(target = document, options = {}) {
|
|
28
|
+
const effectiveOptions = Object.assign(
|
|
29
|
+
Object.create(this.options),
|
|
30
|
+
options
|
|
31
|
+
);
|
|
32
|
+
if (
|
|
33
|
+
target.nodeType !== Node.ELEMENT_NODE &&
|
|
34
|
+
target.nodeType !== Node.DOCUMENT_NODE
|
|
35
|
+
) {
|
|
36
|
+
throw new TypeError(
|
|
37
|
+
'DOM document or DOM element should be given to search for and initialize this widget.'
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
if (
|
|
41
|
+
target.nodeType === Node.ELEMENT_NODE &&
|
|
42
|
+
target.matches(effectiveOptions.selectorInit)
|
|
43
|
+
) {
|
|
44
|
+
this.create(target, options);
|
|
45
|
+
} else {
|
|
46
|
+
const handles = effectiveOptions.initEventNames.map(name =>
|
|
47
|
+
on(target, name, event => {
|
|
48
|
+
const launcher = eventMatches(
|
|
49
|
+
event,
|
|
50
|
+
`[${effectiveOptions.attribInitTarget}]`
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
if (launcher) {
|
|
54
|
+
event.delegateTarget = launcher; // eslint-disable-line no-param-reassign
|
|
55
|
+
const elements = [
|
|
56
|
+
...launcher.ownerDocument.querySelectorAll(
|
|
57
|
+
launcher.getAttribute(effectiveOptions.attribInitTarget)
|
|
58
|
+
),
|
|
59
|
+
];
|
|
60
|
+
if (elements.length > 1) {
|
|
61
|
+
throw new Error('Target widget must be unique.');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (elements.length === 1) {
|
|
65
|
+
if (launcher.tagName === 'A') {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const component = this.create(elements[0], options);
|
|
70
|
+
if (typeof component.createdByLauncher === 'function') {
|
|
71
|
+
component.createdByLauncher(event);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
);
|
|
77
|
+
return {
|
|
78
|
+
release() {
|
|
79
|
+
for (let handle = handles.pop(); handle; handle = handles.pop()) {
|
|
80
|
+
handle.release();
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return '';
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return InitComponentByLauncher;
|
|
89
|
+
}
|