@apia/components 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/IconsList/Icon.js +42 -0
- package/dist/components/IconsList/Icon.js.map +1 -0
- package/dist/components/IconsList/IconWrapper.js +24 -0
- package/dist/components/IconsList/IconWrapper.js.map +1 -0
- package/dist/components/IconsList/KeyHandler.js +147 -0
- package/dist/components/IconsList/KeyHandler.js.map +1 -0
- package/dist/components/IconsList/context.js +14 -0
- package/dist/components/IconsList/context.js.map +1 -0
- package/dist/components/IconsList/index.d.ts +12 -0
- package/dist/components/IconsList/index.d.ts.map +1 -0
- package/dist/components/IconsList/index.js +119 -0
- package/dist/components/IconsList/index.js.map +1 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.d.ts +7 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.d.ts.map +1 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.js +30 -0
- package/dist/components/IconsList/renderers/DefaultIconRenderer.js.map +1 -0
- package/dist/components/IconsList/store/context.js +9 -0
- package/dist/components/IconsList/store/context.js.map +1 -0
- package/dist/components/IconsList/store/distinctors.js +42 -0
- package/dist/components/IconsList/store/distinctors.js.map +1 -0
- package/dist/components/IconsList/store/keysMaker.js +8 -0
- package/dist/components/IconsList/store/keysMaker.js.map +1 -0
- package/dist/components/IconsList/store/operations.js +138 -0
- package/dist/components/IconsList/store/operations.js.map +1 -0
- package/dist/components/IconsList/store/state.js +9 -0
- package/dist/components/IconsList/store/state.js.map +1 -0
- package/dist/components/IconsList/store/useStore.js +52 -0
- package/dist/components/IconsList/store/useStore.js.map +1 -0
- package/dist/components/IconsList/styles.js +48 -0
- package/dist/components/IconsList/styles.js.map +1 -0
- package/dist/components/IconsList/types.d.ts +98 -0
- package/dist/components/IconsList/types.d.ts.map +1 -0
- package/dist/components/IconsList/util.js +46 -0
- package/dist/components/IconsList/util.js.map +1 -0
- package/dist/components/ListBox/Combobox.js +52 -0
- package/dist/components/ListBox/Combobox.js.map +1 -0
- package/dist/components/ListBox/ListboxContext.d.ts +35 -0
- package/dist/components/ListBox/ListboxContext.d.ts.map +1 -0
- package/dist/components/ListBox/ListboxContext.js +6 -0
- package/dist/components/ListBox/ListboxContext.js.map +1 -0
- package/dist/components/ListBox/ListboxItem.d.ts +17 -0
- package/dist/components/ListBox/ListboxItem.d.ts.map +1 -0
- package/dist/components/ListBox/ListboxItem.js +67 -0
- package/dist/components/ListBox/ListboxItem.js.map +1 -0
- package/dist/components/ListBox/ListboxKeyhandler.js +154 -0
- package/dist/components/ListBox/ListboxKeyhandler.js.map +1 -0
- package/dist/components/ListBox/common.d.ts +46 -0
- package/dist/components/ListBox/common.d.ts.map +1 -0
- package/dist/components/ListBox/common.js +118 -0
- package/dist/components/ListBox/common.js.map +1 -0
- package/dist/components/ListBox/index.d.ts +21 -0
- package/dist/components/ListBox/index.d.ts.map +1 -0
- package/dist/components/ListBox/index.js +71 -0
- package/dist/components/ListBox/index.js.map +1 -0
- package/dist/components/ListBox/listbox.js +46 -0
- package/dist/components/ListBox/listbox.js.map +1 -0
- package/dist/components/ListBox/operations.js +330 -0
- package/dist/components/ListBox/operations.js.map +1 -0
- package/dist/components/ListBox/useIndexedChildren.js +25 -0
- package/dist/components/ListBox/useIndexedChildren.js.map +1 -0
- package/dist/components/ListBox/useListboxAutofocus.js +48 -0
- package/dist/components/ListBox/useListboxAutofocus.js.map +1 -0
- package/dist/components/ListBox/useListboxContextValue.js +8 -0
- package/dist/components/ListBox/useListboxContextValue.js.map +1 -0
- package/dist/components/ListBox/useShoutSelectionChange.js +26 -0
- package/dist/components/ListBox/useShoutSelectionChange.js.map +1 -0
- package/dist/components/ListBox/useStore.js +36 -0
- package/dist/components/ListBox/useStore.js.map +1 -0
- package/dist/components/ListBox/useUpdateRowCount.js +19 -0
- package/dist/components/ListBox/useUpdateRowCount.js.map +1 -0
- package/dist/components/SortableList/SortableListHandler.js +161 -0
- package/dist/components/SortableList/SortableListHandler.js.map +1 -0
- package/dist/components/SortableList/SortableListItem.d.ts +14 -0
- package/dist/components/SortableList/SortableListItem.d.ts.map +1 -0
- package/dist/components/SortableList/SortableListItem.js +24 -0
- package/dist/components/SortableList/SortableListItem.js.map +1 -0
- package/dist/components/SortableList/index.d.ts +21 -0
- package/dist/components/SortableList/index.d.ts.map +1 -0
- package/dist/components/SortableList/index.js +53 -0
- package/dist/components/SortableList/index.js.map +1 -0
- package/dist/components/Toolbar/ToolbarController.d.ts +24 -0
- package/dist/components/Toolbar/ToolbarController.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarController.js +50 -0
- package/dist/components/Toolbar/ToolbarController.js.map +1 -0
- package/dist/components/Toolbar/ToolbarIconButton.d.ts +7 -0
- package/dist/components/Toolbar/ToolbarIconButton.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarIconButton.js +110 -0
- package/dist/components/Toolbar/ToolbarIconButton.js.map +1 -0
- package/dist/components/Toolbar/ToolbarInput.d.ts +7 -0
- package/dist/components/Toolbar/ToolbarInput.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarInput.js +13 -0
- package/dist/components/Toolbar/ToolbarInput.js.map +1 -0
- package/dist/components/Toolbar/ToolbarSelect.d.ts +7 -0
- package/dist/components/Toolbar/ToolbarSelect.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarSelect.js +17 -0
- package/dist/components/Toolbar/ToolbarSelect.js.map +1 -0
- package/dist/components/Toolbar/ToolbarSeparator.d.ts +6 -0
- package/dist/components/Toolbar/ToolbarSeparator.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarSeparator.js +9 -0
- package/dist/components/Toolbar/ToolbarSeparator.js.map +1 -0
- package/dist/components/Toolbar/ToolbarTextButton.d.ts +9 -0
- package/dist/components/Toolbar/ToolbarTextButton.d.ts.map +1 -0
- package/dist/components/Toolbar/ToolbarTextButton.js +18 -0
- package/dist/components/Toolbar/ToolbarTextButton.js.map +1 -0
- package/dist/components/Toolbar/index.d.ts +17 -0
- package/dist/components/Toolbar/index.d.ts.map +1 -0
- package/dist/components/Toolbar/index.js +26 -0
- package/dist/components/Toolbar/index.js.map +1 -0
- package/dist/components/Toolbar/styles.js +84 -0
- package/dist/components/Toolbar/styles.js.map +1 -0
- package/dist/components/Toolbar/types.d.ts +40 -0
- package/dist/components/Toolbar/types.d.ts.map +1 -0
- package/dist/components/accordion/Accordion.d.ts +20 -0
- package/dist/components/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/accordion/Accordion.js +60 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/accordion/AccordionItem.d.ts +19 -0
- package/dist/components/accordion/AccordionItem.d.ts.map +1 -0
- package/dist/components/accordion/AccordionItem.js +22 -0
- package/dist/components/accordion/AccordionItem.js.map +1 -0
- package/dist/components/accordion/AccordionItemButton.d.ts +10 -0
- package/dist/components/accordion/AccordionItemButton.d.ts.map +1 -0
- package/dist/components/accordion/AccordionItemButton.js +8 -0
- package/dist/components/accordion/AccordionItemButton.js.map +1 -0
- package/dist/components/accordion/AccordionItemContent.d.ts +7 -0
- package/dist/components/accordion/AccordionItemContent.d.ts.map +1 -0
- package/dist/components/accordion/AccordionItemContent.js +50 -0
- package/dist/components/accordion/AccordionItemContent.js.map +1 -0
- package/dist/components/accordion/KeyHandler.js +77 -0
- package/dist/components/accordion/KeyHandler.js.map +1 -0
- package/dist/components/accordion/context.d.ts +10 -0
- package/dist/components/accordion/context.d.ts.map +1 -0
- package/dist/components/accordion/context.js +13 -0
- package/dist/components/accordion/context.js.map +1 -0
- package/dist/components/accordion/defaultElements/Checkbox.js +22 -0
- package/dist/components/accordion/defaultElements/Checkbox.js.map +1 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.d.ts +40 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.d.ts.map +1 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.js +79 -0
- package/dist/components/accordion/defaultElements/DefaultAccordionItemButton.js.map +1 -0
- package/dist/components/accordion/defaultElements/useIsChecked.js +25 -0
- package/dist/components/accordion/defaultElements/useIsChecked.js.map +1 -0
- package/dist/components/accordion/handler.d.ts +40 -0
- package/dist/components/accordion/handler.d.ts.map +1 -0
- package/dist/components/accordion/handler.js +118 -0
- package/dist/components/accordion/handler.js.map +1 -0
- package/dist/components/accordion/index.d.ts +8 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/types.d.ts +11 -0
- package/dist/components/accordion/types.d.ts.map +1 -0
- package/dist/components/apia/ApiaDateFilter.js +57 -0
- package/dist/components/apia/ApiaDateFilter.js.map +1 -0
- package/dist/components/apia/ApiaFilter.d.ts +13 -0
- package/dist/components/apia/ApiaFilter.d.ts.map +1 -0
- package/dist/components/apia/ApiaFilter.js +128 -0
- package/dist/components/apia/ApiaFilter.js.map +1 -0
- package/dist/components/buttons/useOtherTagButton.d.ts +28 -0
- package/dist/components/buttons/useOtherTagButton.d.ts.map +1 -0
- package/dist/components/buttons/useOtherTagButton.js +38 -0
- package/dist/components/buttons/useOtherTagButton.js.map +1 -0
- package/dist/components/collapsiblePanel/index.d.ts +7 -0
- package/dist/components/collapsiblePanel/index.d.ts.map +1 -0
- package/dist/components/collapsiblePanel/index.js +130 -0
- package/dist/components/collapsiblePanel/index.js.map +1 -0
- package/dist/components/collapsiblePanel/styles.js +4 -0
- package/dist/components/collapsiblePanel/styles.js.map +1 -0
- package/dist/components/collapsiblePanel/types.d.ts +23 -0
- package/dist/components/collapsiblePanel/types.d.ts.map +1 -0
- package/dist/components/dialogs/AlertModal.d.ts +11 -0
- package/dist/components/dialogs/AlertModal.d.ts.map +1 -0
- package/dist/components/dialogs/AlertModal.js +42 -0
- package/dist/components/dialogs/AlertModal.js.map +1 -0
- package/dist/components/dialogs/ConfirmModal.d.ts +25 -0
- package/dist/components/dialogs/ConfirmModal.d.ts.map +1 -0
- package/dist/components/dialogs/ConfirmModal.js +45 -0
- package/dist/components/dialogs/ConfirmModal.js.map +1 -0
- package/dist/components/forms/Captcha.d.ts +12 -0
- package/dist/components/forms/Captcha.d.ts.map +1 -0
- package/dist/components/forms/Captcha.js +66 -0
- package/dist/components/forms/Captcha.js.map +1 -0
- package/dist/components/forms/Checkbox.d.ts +21 -0
- package/dist/components/forms/Checkbox.d.ts.map +1 -0
- package/dist/components/forms/Checkbox.js +124 -0
- package/dist/components/forms/Checkbox.js.map +1 -0
- package/dist/components/forms/DateInput.d.ts +44 -0
- package/dist/components/forms/DateInput.d.ts.map +1 -0
- package/dist/components/forms/DateInput.js +246 -0
- package/dist/components/forms/DateInput.js.map +1 -0
- package/dist/components/forms/FieldErrorMessage.d.ts +10 -0
- package/dist/components/forms/FieldErrorMessage.d.ts.map +1 -0
- package/dist/components/forms/FieldErrorMessage.js +34 -0
- package/dist/components/forms/FieldErrorMessage.js.map +1 -0
- package/dist/components/forms/FieldLabel.d.ts +40 -0
- package/dist/components/forms/FieldLabel.d.ts.map +1 -0
- package/dist/components/forms/FieldLabel.js +66 -0
- package/dist/components/forms/FieldLabel.js.map +1 -0
- package/dist/components/forms/IconInput.d.ts +28 -0
- package/dist/components/forms/IconInput.d.ts.map +1 -0
- package/dist/components/forms/IconInput.js +80 -0
- package/dist/components/forms/IconInput.js.map +1 -0
- package/dist/components/forms/NumberInput.d.ts +37 -0
- package/dist/components/forms/NumberInput.d.ts.map +1 -0
- package/dist/components/forms/NumberInput.js +149 -0
- package/dist/components/forms/NumberInput.js.map +1 -0
- package/dist/components/forms/RequiredMark.d.ts +14 -0
- package/dist/components/forms/RequiredMark.d.ts.map +1 -0
- package/dist/components/forms/RequiredMark.js +13 -0
- package/dist/components/forms/RequiredMark.js.map +1 -0
- package/dist/components/forms/buttons/BaseButton.d.ts +24 -0
- package/dist/components/forms/buttons/BaseButton.d.ts.map +1 -0
- package/dist/components/forms/buttons/BaseButton.js +58 -0
- package/dist/components/forms/buttons/BaseButton.js.map +1 -0
- package/dist/components/forms/buttons/IconButton.d.ts +37 -0
- package/dist/components/forms/buttons/IconButton.d.ts.map +1 -0
- package/dist/components/forms/buttons/IconButton.js +79 -0
- package/dist/components/forms/buttons/IconButton.js.map +1 -0
- package/dist/components/forms/buttons/SimpleButton.d.ts +21 -0
- package/dist/components/forms/buttons/SimpleButton.d.ts.map +1 -0
- package/dist/components/forms/buttons/SimpleButton.js +94 -0
- package/dist/components/forms/buttons/SimpleButton.js.map +1 -0
- package/dist/components/forms/util/style.d.ts +7 -0
- package/dist/components/forms/util/style.d.ts.map +1 -0
- package/dist/components/forms/util/style.js +17 -0
- package/dist/components/forms/util/style.js.map +1 -0
- package/dist/components/importComponent.d.ts +11 -0
- package/dist/components/importComponent.d.ts.map +1 -0
- package/dist/components/importComponent.js +25 -0
- package/dist/components/importComponent.js.map +1 -0
- package/dist/components/loaders/LinearLoader.d.ts +6 -0
- package/dist/components/loaders/LinearLoader.d.ts.map +1 -0
- package/dist/components/loaders/LinearLoader.js +33 -0
- package/dist/components/loaders/LinearLoader.js.map +1 -0
- package/dist/components/loaders/LoaderSpinner.d.ts +10 -0
- package/dist/components/loaders/LoaderSpinner.d.ts.map +1 -0
- package/dist/components/loaders/LoaderSpinner.js +26 -0
- package/dist/components/loaders/LoaderSpinner.js.map +1 -0
- package/dist/components/loaders/ProgressBar.d.ts +11 -0
- package/dist/components/loaders/ProgressBar.d.ts.map +1 -0
- package/dist/components/loaders/ProgressBar.js +39 -0
- package/dist/components/loaders/ProgressBar.js.map +1 -0
- package/dist/components/modals/CalendarModal.d.ts +13 -0
- package/dist/components/modals/CalendarModal.d.ts.map +1 -0
- package/dist/components/modals/CalendarModal.js +43 -0
- package/dist/components/modals/CalendarModal.js.map +1 -0
- package/dist/components/modals/Modal.d.ts +160 -0
- package/dist/components/modals/Modal.d.ts.map +1 -0
- package/dist/components/modals/Modal.js +17 -0
- package/dist/components/modals/Modal.js.map +1 -0
- package/dist/components/modals/ModalContext.d.ts +9 -0
- package/dist/components/modals/ModalContext.d.ts.map +1 -0
- package/dist/components/modals/ModalContext.js +12 -0
- package/dist/components/modals/ModalContext.js.map +1 -0
- package/dist/components/modals/Overlay.d.ts +21 -0
- package/dist/components/modals/Overlay.d.ts.map +1 -0
- package/dist/components/modals/Overlay.js +75 -0
- package/dist/components/modals/Overlay.js.map +1 -0
- package/dist/components/modals/StaticModal.js +175 -0
- package/dist/components/modals/StaticModal.js.map +1 -0
- package/dist/components/modals/WindowModal.js +214 -0
- package/dist/components/modals/WindowModal.js.map +1 -0
- package/dist/components/modals/hooks/useEscapeKey.js +32 -0
- package/dist/components/modals/hooks/useEscapeKey.js.map +1 -0
- package/dist/components/modals/hooks/useInitialFocus.js +37 -0
- package/dist/components/modals/hooks/useInitialFocus.js.map +1 -0
- package/dist/components/modals/hooks/useModal.d.ts +97 -0
- package/dist/components/modals/hooks/useModal.d.ts.map +1 -0
- package/dist/components/modals/hooks/useModal.js +73 -0
- package/dist/components/modals/hooks/useModal.js.map +1 -0
- package/dist/components/modals/hooks/useStyleState.js +44 -0
- package/dist/components/modals/hooks/useStyleState.js.map +1 -0
- package/dist/components/modals/layout/Confirm.d.ts +7 -0
- package/dist/components/modals/layout/Confirm.d.ts.map +1 -0
- package/dist/components/modals/layout/Confirm.js +96 -0
- package/dist/components/modals/layout/Confirm.js.map +1 -0
- package/dist/components/modals/layout/DialogButtonBar.d.ts +10 -0
- package/dist/components/modals/layout/DialogButtonBar.d.ts.map +1 -0
- package/dist/components/modals/layout/DialogButtonBar.js +19 -0
- package/dist/components/modals/layout/DialogButtonBar.js.map +1 -0
- package/dist/components/modals/layout/DialogHeader.d.ts +18 -0
- package/dist/components/modals/layout/DialogHeader.d.ts.map +1 -0
- package/dist/components/modals/layout/DialogHeader.js +117 -0
- package/dist/components/modals/layout/DialogHeader.js.map +1 -0
- package/dist/components/responsive/AutoEllipsis.d.ts +21 -0
- package/dist/components/responsive/AutoEllipsis.d.ts.map +1 -0
- package/dist/components/responsive/AutoEllipsis.js +128 -0
- package/dist/components/responsive/AutoEllipsis.js.map +1 -0
- package/dist/components/responsive/makeResponsiveComponent.d.ts +38 -0
- package/dist/components/responsive/makeResponsiveComponent.d.ts.map +1 -0
- package/dist/components/responsive/makeResponsiveComponent.js +88 -0
- package/dist/components/responsive/makeResponsiveComponent.js.map +1 -0
- package/dist/components/types.d.ts +5 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/waiAriaHelpers/typeAhead.d.ts +44 -0
- package/dist/components/waiAriaHelpers/typeAhead.d.ts.map +1 -0
- package/dist/components/waiAriaHelpers/typeAhead.js +75 -0
- package/dist/components/waiAriaHelpers/typeAhead.js.map +1 -0
- package/dist/globalFocus.js +95 -0
- package/dist/globalFocus.js.map +1 -0
- package/dist/hooks/useBodyScrollLock.js +106 -0
- package/dist/hooks/useBodyScrollLock.js.map +1 -0
- package/dist/index.d.ts +69 -1531
- package/dist/index.js +59 -7898
- package/dist/index.js.map +1 -1
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.d.ts +18 -0
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.js +116 -0
- package/dist/objects/ApiaUtil/dialogs/ApiaUtilDialogs.js.map +1 -0
- package/dist/objects/ApiaUtil/index.d.ts +27 -0
- package/dist/objects/ApiaUtil/index.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/index.js +76 -0
- package/dist/objects/ApiaUtil/index.js.map +1 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts +24 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js +110 -0
- package/dist/objects/ApiaUtil/menu/ApiaUtilMenu.js.map +1 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.d.ts +17 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.js +111 -0
- package/dist/objects/ApiaUtil/modals/ApiaUtilModals.js.map +1 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.d.ts +8 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.js +19 -0
- package/dist/objects/ApiaUtil/modals/OpenModal.js.map +1 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.d.ts +19 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.js +26 -0
- package/dist/objects/ApiaUtil/mouse/ApiaUtilMouse.js.map +1 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.d.ts +14 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.js +33 -0
- package/dist/objects/ApiaUtil/notifications/ApiaUtilNotifications.js.map +1 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.d.ts +23 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.js +79 -0
- package/dist/objects/ApiaUtil/parsers/ApiaUtilParsers.js.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.d.ts +33 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.js +50 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilCurrentTab.js.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.d.ts +20 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.js +37 -0
- package/dist/objects/ApiaUtil/tabs/ApiaUtilTabsController.js.map +1 -0
- package/dist/objects/ApiaUtil/tabs/util.js +17 -0
- package/dist/objects/ApiaUtil/tabs/util.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.d.ts +11 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.js +17 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltip.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.d.ts +22 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.js +104 -0
- package/dist/objects/ApiaUtil/tooltips/ApiaUtilTooltips.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.d.ts +13 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.js +79 -0
- package/dist/objects/ApiaUtil/tooltips/AutomaticTooltip.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/Tooltip.js +62 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/Tooltip.js.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/types.d.ts +117 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/types.d.ts.map +1 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/util.js +273 -0
- package/dist/objects/ApiaUtil/tooltips/tooltip/util.js.map +1 -0
- package/dist/objects/ScreenLocker/index.d.ts +37 -0
- package/dist/objects/ScreenLocker/index.d.ts.map +1 -0
- package/dist/objects/ScreenLocker/index.js +92 -0
- package/dist/objects/ScreenLocker/index.js.map +1 -0
- package/dist/tabs/Content.d.ts +7 -0
- package/dist/tabs/Content.d.ts.map +1 -0
- package/dist/tabs/Content.js +52 -0
- package/dist/tabs/Content.js.map +1 -0
- package/dist/tabs/ContextMenu.js +77 -0
- package/dist/tabs/ContextMenu.js.map +1 -0
- package/dist/tabs/Item.js +64 -0
- package/dist/tabs/Item.js.map +1 -0
- package/dist/tabs/Tabs.d.ts +8 -0
- package/dist/tabs/Tabs.d.ts.map +1 -0
- package/dist/tabs/Tabs.js +78 -0
- package/dist/tabs/Tabs.js.map +1 -0
- package/dist/tabs/TabsList.d.ts +8 -0
- package/dist/tabs/TabsList.d.ts.map +1 -0
- package/dist/tabs/TabsList.js +138 -0
- package/dist/tabs/TabsList.js.map +1 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.d.ts +6 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.d.ts.map +1 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.js +71 -0
- package/dist/tabs/renderers/DefaultTabsLabelRenderer.js.map +1 -0
- package/dist/tabs/tabsController.d.ts +41 -0
- package/dist/tabs/tabsController.d.ts.map +1 -0
- package/dist/tabs/tabsController.js +303 -0
- package/dist/tabs/tabsController.js.map +1 -0
- package/dist/tabs/types.d.ts +115 -0
- package/dist/tabs/types.d.ts.map +1 -0
- package/dist/tabs/useTabsList.js +20 -0
- package/dist/tabs/useTabsList.js.map +1 -0
- package/dist/tabs/util.js +11 -0
- package/dist/tabs/util.js.map +1 -0
- package/package.json +29 -39
- package/LICENSE.md +0 -21
- package/README.md +0 -3
- package/cleanDist.json +0 -3
- package/entries.json +0 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { jsx, jsxs } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import React__default, { forwardRef, useRef, useState, useEffect, useCallback } from 'react';
|
|
3
|
+
import { CSSTransition } from 'react-transition-group';
|
|
4
|
+
import { Box, getVariant } from '@apia/theme';
|
|
5
|
+
import uniqueId from 'lodash-es/uniqueId';
|
|
6
|
+
import { useCombinedRefs } from '@apia/util';
|
|
7
|
+
import { Overlay } from './Overlay.js';
|
|
8
|
+
import DialogHeader from './layout/DialogHeader.js';
|
|
9
|
+
import { ModalContext } from './ModalContext.js';
|
|
10
|
+
import { useEscapeKey } from './hooks/useEscapeKey.js';
|
|
11
|
+
import { useInitialFocus } from './hooks/useInitialFocus.js';
|
|
12
|
+
|
|
13
|
+
const StaticModal = forwardRef(
|
|
14
|
+
({
|
|
15
|
+
animationDuration = 150,
|
|
16
|
+
children = null,
|
|
17
|
+
className,
|
|
18
|
+
hideCloseButton,
|
|
19
|
+
id,
|
|
20
|
+
initialFocusConfiguration,
|
|
21
|
+
initialFocusGetter,
|
|
22
|
+
initialFocusRef,
|
|
23
|
+
isOpen = false,
|
|
24
|
+
maxWidth,
|
|
25
|
+
NavBar,
|
|
26
|
+
noFocus,
|
|
27
|
+
noHeader = false,
|
|
28
|
+
onClose = () => {
|
|
29
|
+
},
|
|
30
|
+
onExited = () => {
|
|
31
|
+
},
|
|
32
|
+
Portal,
|
|
33
|
+
shouldCloseOnEsc = true,
|
|
34
|
+
shouldCloseOnOverlayClick = true,
|
|
35
|
+
size = "md",
|
|
36
|
+
stretch,
|
|
37
|
+
title = "",
|
|
38
|
+
variant
|
|
39
|
+
}, ref) => {
|
|
40
|
+
const lastTitle = useRef(title);
|
|
41
|
+
const [innerTitle, setInnerTitle] = useState(title);
|
|
42
|
+
if (lastTitle.current !== title && innerTitle !== title) {
|
|
43
|
+
setInnerTitle(title);
|
|
44
|
+
}
|
|
45
|
+
const [isOpenInner, setIsOpen] = useState(isOpen);
|
|
46
|
+
const innerId = React__default.useMemo(() => {
|
|
47
|
+
return `Modal${uniqueId()}`;
|
|
48
|
+
}, []);
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
setIsOpen(isOpen);
|
|
51
|
+
}, [isOpen]);
|
|
52
|
+
const closeHandler = useCallback(() => {
|
|
53
|
+
setIsOpen(false);
|
|
54
|
+
onClose();
|
|
55
|
+
}, [onClose]);
|
|
56
|
+
const [overlayElement, setInnerRef] = React__default.useState();
|
|
57
|
+
const assignRefs = useCombinedRefs(
|
|
58
|
+
setInnerRef,
|
|
59
|
+
ref
|
|
60
|
+
);
|
|
61
|
+
const overlayClickedHandle = (event) => {
|
|
62
|
+
if (shouldCloseOnOverlayClick) {
|
|
63
|
+
if (event.target.getAttribute("data-type") === "overlay") {
|
|
64
|
+
closeHandler();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
useEscapeKey({ closeHandler, id: innerId, isOpenInner, shouldCloseOnEsc });
|
|
69
|
+
useInitialFocus({
|
|
70
|
+
isOpenInner,
|
|
71
|
+
initialFocusConfiguration,
|
|
72
|
+
initialFocusGetter,
|
|
73
|
+
initialFocusRef,
|
|
74
|
+
noFocus,
|
|
75
|
+
parentElement: overlayElement
|
|
76
|
+
});
|
|
77
|
+
const Wrapper = React__default.useMemo(() => {
|
|
78
|
+
return Portal ?? React__default.Fragment;
|
|
79
|
+
}, []);
|
|
80
|
+
const nodeRef = useRef(null);
|
|
81
|
+
return /* @__PURE__ */ jsx(
|
|
82
|
+
ModalContext.Provider,
|
|
83
|
+
{
|
|
84
|
+
value: React__default.useMemo(() => {
|
|
85
|
+
return {
|
|
86
|
+
changeTitle: (newTitle) => {
|
|
87
|
+
setInnerTitle(newTitle);
|
|
88
|
+
},
|
|
89
|
+
close: () => {
|
|
90
|
+
closeHandler();
|
|
91
|
+
},
|
|
92
|
+
descriptionId: `${innerId}_Description`
|
|
93
|
+
};
|
|
94
|
+
}, [closeHandler, innerId]),
|
|
95
|
+
children: /* @__PURE__ */ jsx(Wrapper, { children: /* @__PURE__ */ jsx(
|
|
96
|
+
Overlay,
|
|
97
|
+
{
|
|
98
|
+
onOverlayClicked: overlayClickedHandle,
|
|
99
|
+
isOpen,
|
|
100
|
+
className,
|
|
101
|
+
stretch,
|
|
102
|
+
ref: assignRefs,
|
|
103
|
+
onExited,
|
|
104
|
+
id: innerId,
|
|
105
|
+
shouldAvoidInitialFocusTrap: noFocus,
|
|
106
|
+
children: /* @__PURE__ */ jsx(
|
|
107
|
+
CSSTransition,
|
|
108
|
+
{
|
|
109
|
+
in: isOpen,
|
|
110
|
+
timeout: animationDuration,
|
|
111
|
+
classNames: "modal",
|
|
112
|
+
appear: true,
|
|
113
|
+
unmountOnExit: true,
|
|
114
|
+
nodeRef,
|
|
115
|
+
children: /* @__PURE__ */ jsx(
|
|
116
|
+
Box,
|
|
117
|
+
{
|
|
118
|
+
ref: nodeRef,
|
|
119
|
+
className: "modal__variantWrapper",
|
|
120
|
+
...variant ? getVariant(variant) : {},
|
|
121
|
+
children: /* @__PURE__ */ jsxs(
|
|
122
|
+
Box,
|
|
123
|
+
{
|
|
124
|
+
id,
|
|
125
|
+
role: "dialog",
|
|
126
|
+
"aria-modal": "true",
|
|
127
|
+
"aria-label": title,
|
|
128
|
+
"aria-describedby": `${innerId}_Description`,
|
|
129
|
+
"aria-hidden": "false",
|
|
130
|
+
className: "modal__main",
|
|
131
|
+
"data-scroll-lock-scrollable": true,
|
|
132
|
+
sx: React__default.useMemo(() => {
|
|
133
|
+
return {
|
|
134
|
+
variant: `layout.common.modals.${size}`,
|
|
135
|
+
...maxWidth !== void 0 ? { maxWidth } : {}
|
|
136
|
+
};
|
|
137
|
+
}, [maxWidth, size]),
|
|
138
|
+
"data-variant": `layout.common.modals.${size}`,
|
|
139
|
+
children: [
|
|
140
|
+
!noHeader && /* @__PURE__ */ jsx(
|
|
141
|
+
DialogHeader,
|
|
142
|
+
{
|
|
143
|
+
className: "modal__header",
|
|
144
|
+
NavBar,
|
|
145
|
+
title: innerTitle,
|
|
146
|
+
close: closeHandler,
|
|
147
|
+
hideCloseButton,
|
|
148
|
+
id: `${innerId}_Header`
|
|
149
|
+
}
|
|
150
|
+
),
|
|
151
|
+
/* @__PURE__ */ jsx(
|
|
152
|
+
Box,
|
|
153
|
+
{
|
|
154
|
+
className: "modal__content",
|
|
155
|
+
id: typeof children === "string" ? `${innerId}_Description` : void 0,
|
|
156
|
+
children
|
|
157
|
+
}
|
|
158
|
+
)
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
)
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
) })
|
|
168
|
+
}
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
StaticModal.displayName = "StaticModal";
|
|
173
|
+
|
|
174
|
+
export { StaticModal };
|
|
175
|
+
//# sourceMappingURL=StaticModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StaticModal.js","sources":["../../../src/components/modals/StaticModal.tsx"],"sourcesContent":["import React, {\n useEffect,\n useState,\n useCallback,\n forwardRef,\n useRef,\n} from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { Box } from '@apia/theme';\nimport uniqueId from 'lodash-es/uniqueId';\nimport { useCombinedRefs } from '@apia/util';\nimport { getVariant } from '@apia/theme';\nimport { Overlay } from './Overlay';\nimport DialogHeader from './layout/DialogHeader';\nimport { ModalContext } from './ModalContext';\nimport { TModal } from './Modal';\nimport { useEscapeKey } from './hooks/useEscapeKey';\nimport { useInitialFocus } from './hooks/useInitialFocus';\n\nexport const StaticModal = forwardRef(\n (\n {\n animationDuration = 150,\n children = null,\n className,\n hideCloseButton,\n id,\n initialFocusConfiguration,\n initialFocusGetter,\n initialFocusRef,\n isOpen = false,\n maxWidth,\n NavBar,\n noFocus,\n noHeader = false,\n onClose = () => {},\n onExited = () => {},\n Portal,\n shouldCloseOnEsc = true,\n shouldCloseOnOverlayClick = true,\n size = 'md',\n stretch,\n title = '',\n variant,\n }: Omit<TModal, 'asWindow'>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const lastTitle = useRef(title);\n const [innerTitle, setInnerTitle] = useState(title);\n if (lastTitle.current !== title && innerTitle !== title) {\n setInnerTitle(title);\n }\n const [isOpenInner, setIsOpen] = useState(isOpen);\n const innerId = React.useMemo(() => {\n return `Modal${uniqueId()}`;\n }, []);\n\n useEffect(() => {\n setIsOpen(isOpen);\n }, [isOpen]);\n\n const closeHandler = useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [onClose]);\n const [overlayElement, setInnerRef] = React.useState<HTMLElement>();\n const assignRefs = useCombinedRefs(\n setInnerRef as unknown as React.ForwardedRef<unknown>,\n ref as unknown as React.Ref<unknown>,\n );\n\n const overlayClickedHandle = (event: React.MouseEvent<HTMLDivElement>) => {\n if (shouldCloseOnOverlayClick) {\n if (\n (event.target as HTMLDivElement).getAttribute('data-type') ===\n 'overlay'\n ) {\n closeHandler();\n }\n }\n };\n\n useEscapeKey({ closeHandler, id: innerId, isOpenInner, shouldCloseOnEsc });\n useInitialFocus({\n isOpenInner,\n initialFocusConfiguration,\n initialFocusGetter,\n initialFocusRef,\n noFocus,\n parentElement: overlayElement,\n });\n\n const Wrapper = React.useMemo(() => {\n return Portal ?? React.Fragment;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const nodeRef = useRef<HTMLElement | null>(null);\n\n return (\n <ModalContext.Provider\n value={React.useMemo(() => {\n return {\n changeTitle: (newTitle) => {\n setInnerTitle(newTitle);\n },\n close: () => {\n closeHandler();\n },\n descriptionId: `${innerId}_Description`,\n };\n }, [closeHandler, innerId])}\n >\n <Wrapper>\n <Overlay\n onOverlayClicked={overlayClickedHandle}\n isOpen={isOpen}\n className={className}\n stretch={stretch}\n ref={assignRefs}\n onExited={onExited}\n id={innerId}\n shouldAvoidInitialFocusTrap={noFocus}\n >\n <CSSTransition\n in={isOpen}\n timeout={animationDuration}\n classNames=\"modal\"\n appear\n unmountOnExit\n nodeRef={nodeRef}\n >\n <Box\n ref={nodeRef}\n className=\"modal__variantWrapper\"\n {...(variant ? getVariant(variant) : {})}\n >\n <Box\n id={id}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n aria-describedby={`${innerId}_Description`}\n aria-hidden=\"false\"\n className=\"modal__main\"\n // allows scrolling within element, despite body lock\n data-scroll-lock-scrollable\n sx={React.useMemo(() => {\n return {\n variant: `layout.common.modals.${size}`,\n ...(maxWidth !== undefined ? { maxWidth } : {}),\n };\n }, [maxWidth, size])}\n data-variant={`layout.common.modals.${size}`}\n >\n {!noHeader && (\n <DialogHeader\n className=\"modal__header\"\n NavBar={NavBar}\n title={innerTitle}\n close={closeHandler}\n hideCloseButton={hideCloseButton}\n id={`${innerId}_Header`}\n />\n )}\n <Box\n className=\"modal__content\"\n id={\n typeof children === 'string'\n ? `${innerId}_Description`\n : undefined\n }\n >\n {children}\n </Box>\n </Box>\n </Box>\n </CSSTransition>\n </Overlay>\n </Wrapper>\n </ModalContext.Provider>\n );\n },\n);\n\nStaticModal.displayName = 'StaticModal';\n"],"names":["React"],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { jsx, jsxs } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { forwardRef, useMemo, useRef, useState, useEffect, useCallback, Fragment } from 'react';
|
|
3
|
+
import { CSSTransition } from 'react-transition-group';
|
|
4
|
+
import { Box, getVariant } from '@apia/theme';
|
|
5
|
+
import DialogHeader from './layout/DialogHeader.js';
|
|
6
|
+
import { ModalContext } from './ModalContext.js';
|
|
7
|
+
import { useEscapeKey } from './hooks/useEscapeKey.js';
|
|
8
|
+
import { useInitialFocus } from './hooks/useInitialFocus.js';
|
|
9
|
+
import { useCombinedRefs } from '@apia/util';
|
|
10
|
+
import { useStyleState } from './hooks/useStyleState.js';
|
|
11
|
+
import { uniqueId } from '@apia/notifications';
|
|
12
|
+
|
|
13
|
+
const WindowModal = forwardRef(
|
|
14
|
+
({
|
|
15
|
+
animationDuration = 150,
|
|
16
|
+
children = null,
|
|
17
|
+
className,
|
|
18
|
+
hideCloseButton,
|
|
19
|
+
id,
|
|
20
|
+
initialFocusConfiguration,
|
|
21
|
+
initialFocusGetter,
|
|
22
|
+
initialFocusRef,
|
|
23
|
+
isOpen = false,
|
|
24
|
+
maxWidth,
|
|
25
|
+
NavBar,
|
|
26
|
+
noFocus,
|
|
27
|
+
noHeader = false,
|
|
28
|
+
onClose = () => {
|
|
29
|
+
},
|
|
30
|
+
onDragStart = () => {
|
|
31
|
+
},
|
|
32
|
+
onExited = () => {
|
|
33
|
+
},
|
|
34
|
+
Portal,
|
|
35
|
+
shouldCloseOnEsc = true,
|
|
36
|
+
size = "md",
|
|
37
|
+
title = "",
|
|
38
|
+
variant
|
|
39
|
+
}, ref) => {
|
|
40
|
+
const innerId = useMemo(() => {
|
|
41
|
+
return `Modal${uniqueId()}`;
|
|
42
|
+
}, []);
|
|
43
|
+
const nodeRef = useRef(null);
|
|
44
|
+
const lastTitle = useRef(title);
|
|
45
|
+
const [innerTitle, setInnerTitle] = useState(title);
|
|
46
|
+
if (lastTitle.current !== title && innerTitle !== title) {
|
|
47
|
+
setInnerTitle(title);
|
|
48
|
+
}
|
|
49
|
+
const [isOpenInner, setIsOpen] = useState(isOpen);
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
setIsOpen(isOpen);
|
|
52
|
+
}, [isOpen]);
|
|
53
|
+
const closeHandler = useCallback(() => {
|
|
54
|
+
setIsOpen(false);
|
|
55
|
+
onClose();
|
|
56
|
+
}, [onClose]);
|
|
57
|
+
useEscapeKey({ closeHandler, id: innerId, isOpenInner, shouldCloseOnEsc });
|
|
58
|
+
useInitialFocus({
|
|
59
|
+
isOpenInner,
|
|
60
|
+
initialFocusConfiguration,
|
|
61
|
+
initialFocusGetter,
|
|
62
|
+
initialFocusRef,
|
|
63
|
+
noFocus,
|
|
64
|
+
parentElement: nodeRef.current
|
|
65
|
+
});
|
|
66
|
+
const Wrapper = useMemo(() => {
|
|
67
|
+
return Portal ?? Fragment;
|
|
68
|
+
}, []);
|
|
69
|
+
const { ref: stylesRef, setState: setStyle } = useStyleState((el) => {
|
|
70
|
+
const box = el.getBoundingClientRect();
|
|
71
|
+
return {
|
|
72
|
+
left: `${window.innerWidth - box.width / 2}`,
|
|
73
|
+
top: `${window.innerHeight - box.height / 2}`,
|
|
74
|
+
position: "fixed",
|
|
75
|
+
zIndex: "1201"
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
const unSubscribe = useRef(() => {
|
|
79
|
+
});
|
|
80
|
+
const initialPosition = useRef(null);
|
|
81
|
+
const initialMousePosition = useRef(null);
|
|
82
|
+
const assignRefs = useCombinedRefs(
|
|
83
|
+
nodeRef,
|
|
84
|
+
ref,
|
|
85
|
+
stylesRef
|
|
86
|
+
);
|
|
87
|
+
return /* @__PURE__ */ jsx(Wrapper, { children: /* @__PURE__ */ jsx(
|
|
88
|
+
ModalContext.Provider,
|
|
89
|
+
{
|
|
90
|
+
value: useMemo(() => {
|
|
91
|
+
return {
|
|
92
|
+
changeTitle: (newTitle) => {
|
|
93
|
+
setInnerTitle(newTitle);
|
|
94
|
+
},
|
|
95
|
+
close: () => {
|
|
96
|
+
closeHandler();
|
|
97
|
+
},
|
|
98
|
+
descriptionId: `${innerId}_Description`
|
|
99
|
+
};
|
|
100
|
+
}, [closeHandler, innerId]),
|
|
101
|
+
children: /* @__PURE__ */ jsx(
|
|
102
|
+
CSSTransition,
|
|
103
|
+
{
|
|
104
|
+
in: isOpen,
|
|
105
|
+
timeout: animationDuration,
|
|
106
|
+
classNames: "modal",
|
|
107
|
+
appear: true,
|
|
108
|
+
unmountOnExit: true,
|
|
109
|
+
nodeRef,
|
|
110
|
+
onExited,
|
|
111
|
+
children: /* @__PURE__ */ jsx(
|
|
112
|
+
Box,
|
|
113
|
+
{
|
|
114
|
+
ref: assignRefs,
|
|
115
|
+
className: `modal__variantWrapper ${className ?? ""}`,
|
|
116
|
+
id: `modal__${innerId}`,
|
|
117
|
+
...variant ? getVariant(variant) : {},
|
|
118
|
+
children: /* @__PURE__ */ jsxs(
|
|
119
|
+
Box,
|
|
120
|
+
{
|
|
121
|
+
id,
|
|
122
|
+
role: "dialog",
|
|
123
|
+
"aria-modal": "true",
|
|
124
|
+
"aria-label": title,
|
|
125
|
+
"aria-describedby": `${innerId}_Description`,
|
|
126
|
+
"aria-hidden": "false",
|
|
127
|
+
className: "modal__main",
|
|
128
|
+
"data-scroll-lock-scrollable": true,
|
|
129
|
+
sx: useMemo(() => {
|
|
130
|
+
return {
|
|
131
|
+
variant: `layout.common.modals.${size}`,
|
|
132
|
+
...maxWidth !== void 0 ? { maxWidth } : {}
|
|
133
|
+
};
|
|
134
|
+
}, [maxWidth, size]),
|
|
135
|
+
"data-variant": `layout.common.modals.${size}`,
|
|
136
|
+
ref: useCallback(
|
|
137
|
+
(el) => {
|
|
138
|
+
unSubscribe.current();
|
|
139
|
+
unSubscribe.current = () => {
|
|
140
|
+
};
|
|
141
|
+
if (el) {
|
|
142
|
+
const handleMouseDown = (ev) => {
|
|
143
|
+
const res = onDragStart?.(ev);
|
|
144
|
+
if (res === false)
|
|
145
|
+
return;
|
|
146
|
+
const rect = el.getBoundingClientRect();
|
|
147
|
+
initialPosition.current = rect;
|
|
148
|
+
initialMousePosition.current = {
|
|
149
|
+
x: ev.clientX,
|
|
150
|
+
y: ev.clientY
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
const handleMouseMove = (ev) => {
|
|
154
|
+
if (initialPosition.current) {
|
|
155
|
+
const diffX = ev.clientX - initialMousePosition.current.x;
|
|
156
|
+
const diffY = ev.clientY - initialMousePosition.current.y;
|
|
157
|
+
setStyle({
|
|
158
|
+
left: `${initialPosition.current.left + diffX}px`,
|
|
159
|
+
top: `${initialPosition.current.top + diffY}px`
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const handleMouseUp = () => {
|
|
164
|
+
initialPosition.current = null;
|
|
165
|
+
};
|
|
166
|
+
el.addEventListener("mousedown", handleMouseDown);
|
|
167
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
168
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
169
|
+
unSubscribe.current = () => {
|
|
170
|
+
el.removeEventListener("mousedown", handleMouseDown);
|
|
171
|
+
document.removeEventListener(
|
|
172
|
+
"mousemove",
|
|
173
|
+
handleMouseMove
|
|
174
|
+
);
|
|
175
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
[onDragStart, setStyle]
|
|
180
|
+
),
|
|
181
|
+
children: [
|
|
182
|
+
!noHeader && /* @__PURE__ */ jsx(
|
|
183
|
+
DialogHeader,
|
|
184
|
+
{
|
|
185
|
+
className: "modal__header",
|
|
186
|
+
NavBar,
|
|
187
|
+
title: innerTitle,
|
|
188
|
+
close: closeHandler,
|
|
189
|
+
hideCloseButton,
|
|
190
|
+
id: `${innerId}_Header`
|
|
191
|
+
}
|
|
192
|
+
),
|
|
193
|
+
/* @__PURE__ */ jsx(
|
|
194
|
+
Box,
|
|
195
|
+
{
|
|
196
|
+
className: "modal__content",
|
|
197
|
+
id: typeof children === "string" ? `${innerId}_Description` : void 0,
|
|
198
|
+
children
|
|
199
|
+
}
|
|
200
|
+
)
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
)
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
}
|
|
209
|
+
) });
|
|
210
|
+
}
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
export { WindowModal };
|
|
214
|
+
//# sourceMappingURL=WindowModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindowModal.js","sources":["../../../src/components/modals/WindowModal.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n Fragment,\n} from 'react';\nimport { TModal } from './Modal';\nimport { CSSTransition } from 'react-transition-group';\nimport { Box, getVariant } from '@apia/theme';\nimport DialogHeader from './layout/DialogHeader';\nimport { ModalContext } from './ModalContext';\nimport { useEscapeKey } from './hooks/useEscapeKey';\nimport { useInitialFocus } from './hooks/useInitialFocus';\nimport { useCombinedRefs } from '@apia/util';\nimport { useStyleState } from './hooks/useStyleState';\nimport { uniqueId } from '@apia/notifications';\n\nexport const WindowModal = forwardRef<HTMLDivElement, TModal>(\n (\n {\n animationDuration = 150,\n children = null,\n className,\n hideCloseButton,\n id,\n initialFocusConfiguration,\n initialFocusGetter,\n initialFocusRef,\n isOpen = false,\n maxWidth,\n NavBar,\n noFocus,\n noHeader = false,\n onClose = () => {},\n onDragStart = () => {},\n onExited = () => {},\n Portal,\n shouldCloseOnEsc = true,\n size = 'md',\n title = '',\n variant,\n },\n ref,\n ) => {\n const innerId = useMemo(() => {\n return `Modal${uniqueId()}`;\n }, []);\n const nodeRef = useRef<HTMLElement | null>(null);\n\n const lastTitle = useRef(title);\n const [innerTitle, setInnerTitle] = useState(title);\n if (lastTitle.current !== title && innerTitle !== title) {\n setInnerTitle(title);\n }\n const [isOpenInner, setIsOpen] = useState(isOpen);\n useEffect(() => {\n setIsOpen(isOpen);\n }, [isOpen]);\n\n const closeHandler = useCallback(() => {\n setIsOpen(false);\n onClose();\n }, [onClose]);\n\n useEscapeKey({ closeHandler, id: innerId, isOpenInner, shouldCloseOnEsc });\n useInitialFocus({\n isOpenInner,\n initialFocusConfiguration,\n initialFocusGetter,\n initialFocusRef,\n noFocus,\n parentElement: nodeRef.current,\n });\n\n const Wrapper = useMemo(() => {\n return Portal ?? Fragment;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const { ref: stylesRef, setState: setStyle } = useStyleState((el) => {\n const box = el.getBoundingClientRect();\n return {\n left: `${window.innerWidth - box.width / 2}`,\n top: `${window.innerHeight - box.height / 2}`,\n position: 'fixed',\n zIndex: '1201',\n };\n });\n\n const unSubscribe = useRef(() => {});\n const initialPosition = useRef<null | DOMRect>(null);\n const initialMousePosition = useRef<null | { x: number; y: number }>(null);\n const assignRefs = useCombinedRefs(\n nodeRef as unknown as React.ForwardedRef<unknown>,\n ref as unknown as React.Ref<unknown>,\n stylesRef as unknown as React.Ref<unknown>,\n );\n\n return (\n <Wrapper>\n <ModalContext.Provider\n value={useMemo(() => {\n return {\n changeTitle: (newTitle) => {\n setInnerTitle(newTitle);\n },\n close: () => {\n closeHandler();\n },\n descriptionId: `${innerId}_Description`,\n };\n }, [closeHandler, innerId])}\n >\n <CSSTransition\n in={isOpen}\n timeout={animationDuration}\n classNames=\"modal\"\n appear\n unmountOnExit\n nodeRef={nodeRef}\n onExited={onExited}\n >\n <Box\n ref={assignRefs}\n className={`modal__variantWrapper ${className ?? ''}`}\n id={`modal__${innerId}`}\n {...(variant ? getVariant(variant) : {})}\n >\n <Box\n id={id}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n aria-describedby={`${innerId}_Description`}\n aria-hidden=\"false\"\n className=\"modal__main\"\n // allows scrolling within element, despite body lock\n data-scroll-lock-scrollable\n sx={useMemo(() => {\n return {\n variant: `layout.common.modals.${size}`,\n ...(maxWidth !== undefined ? { maxWidth } : {}),\n };\n }, [maxWidth, size])}\n data-variant={`layout.common.modals.${size}`}\n ref={useCallback(\n (el: null | HTMLElement) => {\n unSubscribe.current();\n unSubscribe.current = () => {};\n\n if (el) {\n const handleMouseDown = (ev: MouseEvent) => {\n const res = onDragStart?.(ev);\n if (res === false) return;\n\n const rect = el.getBoundingClientRect();\n initialPosition.current = rect;\n initialMousePosition.current = {\n x: ev.clientX,\n y: ev.clientY,\n };\n };\n const handleMouseMove = (ev: MouseEvent) => {\n if (initialPosition.current) {\n const diffX =\n ev.clientX - initialMousePosition.current!.x;\n const diffY =\n ev.clientY - initialMousePosition.current!.y;\n\n setStyle({\n left: `${initialPosition.current.left + diffX}px`,\n top: `${initialPosition.current.top + diffY}px`,\n });\n }\n };\n\n const handleMouseUp = () => {\n initialPosition.current = null;\n };\n\n el.addEventListener('mousedown', handleMouseDown);\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n\n unSubscribe.current = () => {\n el.removeEventListener('mousedown', handleMouseDown);\n document.removeEventListener(\n 'mousemove',\n handleMouseMove,\n );\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }\n },\n [onDragStart, setStyle],\n )}\n >\n {!noHeader && (\n <DialogHeader\n className=\"modal__header\"\n NavBar={NavBar}\n title={innerTitle}\n close={closeHandler}\n hideCloseButton={hideCloseButton}\n id={`${innerId}_Header`}\n />\n )}\n <Box\n className=\"modal__content\"\n id={\n typeof children === 'string'\n ? `${innerId}_Description`\n : undefined\n }\n >\n {children}\n </Box>\n </Box>\n </Box>\n </CSSTransition>\n </ModalContext.Provider>\n </Wrapper>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAoBO,MAAM,WAAc,GAAA,UAAA;AAAA,EACzB,CACE;AAAA,IACE,iBAAoB,GAAA,GAAA;AAAA,IACpB,QAAW,GAAA,IAAA;AAAA,IACX,SAAA;AAAA,IACA,eAAA;AAAA,IACA,EAAA;AAAA,IACA,yBAAA;AAAA,IACA,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,MAAS,GAAA,KAAA;AAAA,IACT,QAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,UAAU,MAAM;AAAA,KAAC;AAAA,IACjB,cAAc,MAAM;AAAA,KAAC;AAAA,IACrB,WAAW,MAAM;AAAA,KAAC;AAAA,IAClB,MAAA;AAAA,IACA,gBAAmB,GAAA,IAAA;AAAA,IACnB,IAAO,GAAA,IAAA;AAAA,IACP,KAAQ,GAAA,EAAA;AAAA,IACR,OAAA;AAAA,KAEF,GACG,KAAA;AACH,IAAM,MAAA,OAAA,GAAU,QAAQ,MAAM;AAC5B,MAAO,OAAA,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAA,CAAA;AAAA,KAC3B,EAAG,EAAE,CAAA,CAAA;AACL,IAAM,MAAA,OAAA,GAAU,OAA2B,IAAI,CAAA,CAAA;AAE/C,IAAM,MAAA,SAAA,GAAY,OAAO,KAAK,CAAA,CAAA;AAC9B,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAClD,IAAA,IAAI,SAAU,CAAA,OAAA,KAAY,KAAS,IAAA,UAAA,KAAe,KAAO,EAAA;AACvD,MAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,KACrB;AACA,IAAA,MAAM,CAAC,WAAA,EAAa,SAAS,CAAA,GAAI,SAAS,MAAM,CAAA,CAAA;AAChD,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAAA,KAClB,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,IAAM,MAAA,YAAA,GAAe,YAAY,MAAM;AACrC,MAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,MAAQ,OAAA,EAAA,CAAA;AAAA,KACV,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AAEZ,IAAA,YAAA,CAAa,EAAE,YAAc,EAAA,EAAA,EAAI,OAAS,EAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AACzE,IAAgB,eAAA,CAAA;AAAA,MACd,WAAA;AAAA,MACA,yBAAA;AAAA,MACA,kBAAA;AAAA,MACA,eAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAe,OAAQ,CAAA,OAAA;AAAA,KACxB,CAAA,CAAA;AAED,IAAM,MAAA,OAAA,GAAU,QAAQ,MAAM;AAC5B,MAAA,OAAO,MAAU,IAAA,QAAA,CAAA;AAAA,KAEnB,EAAG,EAAE,CAAA,CAAA;AAEL,IAAM,MAAA,EAAE,KAAK,SAAW,EAAA,QAAA,EAAU,UAAa,GAAA,aAAA,CAAc,CAAC,EAAO,KAAA;AACnE,MAAM,MAAA,GAAA,GAAM,GAAG,qBAAsB,EAAA,CAAA;AACrC,MAAO,OAAA;AAAA,QACL,MAAM,CAAG,EAAA,MAAA,CAAO,UAAa,GAAA,GAAA,CAAI,QAAQ,CAAC,CAAA,CAAA;AAAA,QAC1C,KAAK,CAAG,EAAA,MAAA,CAAO,WAAc,GAAA,GAAA,CAAI,SAAS,CAAC,CAAA,CAAA;AAAA,QAC3C,QAAU,EAAA,OAAA;AAAA,QACV,MAAQ,EAAA,MAAA;AAAA,OACV,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,OAAO,MAAM;AAAA,KAAE,CAAA,CAAA;AACnC,IAAM,MAAA,eAAA,GAAkB,OAAuB,IAAI,CAAA,CAAA;AACnD,IAAM,MAAA,oBAAA,GAAuB,OAAwC,IAAI,CAAA,CAAA;AACzE,IAAA,MAAM,UAAa,GAAA,eAAA;AAAA,MACjB,OAAA;AAAA,MACA,GAAA;AAAA,MACA,SAAA;AAAA,KACF,CAAA;AAEA,IAAA,2BACG,OACC,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,YAAa,CAAA,QAAA;AAAA,MAAb;AAAA,QACC,KAAA,EAAO,QAAQ,MAAM;AACnB,UAAO,OAAA;AAAA,YACL,WAAA,EAAa,CAAC,QAAa,KAAA;AACzB,cAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AAAA,aACxB;AAAA,YACA,OAAO,MAAM;AACX,cAAa,YAAA,EAAA,CAAA;AAAA,aACf;AAAA,YACA,aAAA,EAAe,GAAG,OAAO,CAAA,YAAA,CAAA;AAAA,WAC3B,CAAA;AAAA,SACC,EAAA,CAAC,YAAc,EAAA,OAAO,CAAC,CAAA;AAAA,QAE1B,QAAA,kBAAA,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,EAAI,EAAA,MAAA;AAAA,YACJ,OAAS,EAAA,iBAAA;AAAA,YACT,UAAW,EAAA,OAAA;AAAA,YACX,MAAM,EAAA,IAAA;AAAA,YACN,aAAa,EAAA,IAAA;AAAA,YACb,OAAA;AAAA,YACA,QAAA;AAAA,YAEA,QAAA,kBAAA,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,GAAK,EAAA,UAAA;AAAA,gBACL,SAAA,EAAW,CAAyB,sBAAA,EAAA,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,gBACnD,EAAA,EAAI,UAAU,OAAO,CAAA,CAAA;AAAA,gBACpB,GAAI,OAAA,GAAU,UAAW,CAAA,OAAO,IAAI,EAAC;AAAA,gBAEtC,QAAA,kBAAA,IAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBACC,EAAA;AAAA,oBACA,IAAK,EAAA,QAAA;AAAA,oBACL,YAAW,EAAA,MAAA;AAAA,oBACX,YAAY,EAAA,KAAA;AAAA,oBACZ,kBAAA,EAAkB,GAAG,OAAO,CAAA,YAAA,CAAA;AAAA,oBAC5B,aAAY,EAAA,OAAA;AAAA,oBACZ,SAAU,EAAA,aAAA;AAAA,oBAEV,6BAA2B,EAAA,IAAA;AAAA,oBAC3B,EAAA,EAAI,QAAQ,MAAM;AAChB,sBAAO,OAAA;AAAA,wBACL,OAAA,EAAS,wBAAwB,IAAI,CAAA,CAAA;AAAA,wBACrC,GAAI,QAAa,KAAA,KAAA,CAAA,GAAY,EAAE,QAAA,KAAa,EAAC;AAAA,uBAC/C,CAAA;AAAA,qBACC,EAAA,CAAC,QAAU,EAAA,IAAI,CAAC,CAAA;AAAA,oBACnB,cAAA,EAAc,wBAAwB,IAAI,CAAA,CAAA;AAAA,oBAC1C,GAAK,EAAA,WAAA;AAAA,sBACH,CAAC,EAA2B,KAAA;AAC1B,wBAAA,WAAA,CAAY,OAAQ,EAAA,CAAA;AACpB,wBAAA,WAAA,CAAY,UAAU,MAAM;AAAA,yBAAC,CAAA;AAE7B,wBAAA,IAAI,EAAI,EAAA;AACN,0BAAM,MAAA,eAAA,GAAkB,CAAC,EAAmB,KAAA;AAC1C,4BAAM,MAAA,GAAA,GAAM,cAAc,EAAE,CAAA,CAAA;AAC5B,4BAAA,IAAI,GAAQ,KAAA,KAAA;AAAO,8BAAA,OAAA;AAEnB,4BAAM,MAAA,IAAA,GAAO,GAAG,qBAAsB,EAAA,CAAA;AACtC,4BAAA,eAAA,CAAgB,OAAU,GAAA,IAAA,CAAA;AAC1B,4BAAA,oBAAA,CAAqB,OAAU,GAAA;AAAA,8BAC7B,GAAG,EAAG,CAAA,OAAA;AAAA,8BACN,GAAG,EAAG,CAAA,OAAA;AAAA,6BACR,CAAA;AAAA,2BACF,CAAA;AACA,0BAAM,MAAA,eAAA,GAAkB,CAAC,EAAmB,KAAA;AAC1C,4BAAA,IAAI,gBAAgB,OAAS,EAAA;AAC3B,8BAAA,MAAM,KACJ,GAAA,EAAA,CAAG,OAAU,GAAA,oBAAA,CAAqB,OAAS,CAAA,CAAA,CAAA;AAC7C,8BAAA,MAAM,KACJ,GAAA,EAAA,CAAG,OAAU,GAAA,oBAAA,CAAqB,OAAS,CAAA,CAAA,CAAA;AAE7C,8BAAS,QAAA,CAAA;AAAA,gCACP,IAAM,EAAA,CAAA,EAAG,eAAgB,CAAA,OAAA,CAAQ,OAAO,KAAK,CAAA,EAAA,CAAA;AAAA,gCAC7C,GAAK,EAAA,CAAA,EAAG,eAAgB,CAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,EAAA,CAAA;AAAA,+BAC5C,CAAA,CAAA;AAAA,6BACH;AAAA,2BACF,CAAA;AAEA,0BAAA,MAAM,gBAAgB,MAAM;AAC1B,4BAAA,eAAA,CAAgB,OAAU,GAAA,IAAA,CAAA;AAAA,2BAC5B,CAAA;AAEA,0BAAG,EAAA,CAAA,gBAAA,CAAiB,aAAa,eAAe,CAAA,CAAA;AAChD,0BAAS,QAAA,CAAA,gBAAA,CAAiB,aAAa,eAAe,CAAA,CAAA;AACtD,0BAAS,QAAA,CAAA,gBAAA,CAAiB,WAAW,aAAa,CAAA,CAAA;AAElD,0BAAA,WAAA,CAAY,UAAU,MAAM;AAC1B,4BAAG,EAAA,CAAA,mBAAA,CAAoB,aAAa,eAAe,CAAA,CAAA;AACnD,4BAAS,QAAA,CAAA,mBAAA;AAAA,8BACP,WAAA;AAAA,8BACA,eAAA;AAAA,6BACF,CAAA;AACA,4BAAS,QAAA,CAAA,mBAAA,CAAoB,WAAW,aAAa,CAAA,CAAA;AAAA,2BACvD,CAAA;AAAA,yBACF;AAAA,uBACF;AAAA,sBACA,CAAC,aAAa,QAAQ,CAAA;AAAA,qBACxB;AAAA,oBAEC,QAAA,EAAA;AAAA,sBAAA,CAAC,QACA,oBAAA,GAAA;AAAA,wBAAC,YAAA;AAAA,wBAAA;AAAA,0BACC,SAAU,EAAA,eAAA;AAAA,0BACV,MAAA;AAAA,0BACA,KAAO,EAAA,UAAA;AAAA,0BACP,KAAO,EAAA,YAAA;AAAA,0BACP,eAAA;AAAA,0BACA,EAAA,EAAI,GAAG,OAAO,CAAA,OAAA,CAAA;AAAA,yBAAA;AAAA,uBAChB;AAAA,sCAEF,GAAA;AAAA,wBAAC,GAAA;AAAA,wBAAA;AAAA,0BACC,SAAU,EAAA,gBAAA;AAAA,0BACV,IACE,OAAO,QAAA,KAAa,QAChB,GAAA,CAAA,EAAG,OAAO,CACV,YAAA,CAAA,GAAA,KAAA,CAAA;AAAA,0BAGL,QAAA;AAAA,yBAAA;AAAA,uBACH;AAAA,qBAAA;AAAA,mBAAA;AAAA,iBACF;AAAA,eAAA;AAAA,aACF;AAAA,WAAA;AAAA,SACF;AAAA,OAAA;AAAA,KAEJ,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
function useEscapeKey({
|
|
4
|
+
closeHandler,
|
|
5
|
+
id,
|
|
6
|
+
isOpenInner,
|
|
7
|
+
shouldCloseOnEsc
|
|
8
|
+
}) {
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
function handleEscape(event) {
|
|
11
|
+
const overlays = [...document.querySelectorAll(".overlay")];
|
|
12
|
+
const modal = event.target.closest(`#modal__${id}`);
|
|
13
|
+
if (modal && event.key === "Escape") {
|
|
14
|
+
event.preventDefault();
|
|
15
|
+
event.stopPropagation();
|
|
16
|
+
closeHandler();
|
|
17
|
+
} else if (overlays.length > 0 && overlays[overlays.length - 1]?.id === id && event.key === "Escape") {
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
event.stopPropagation();
|
|
20
|
+
closeHandler();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (isOpenInner && shouldCloseOnEsc)
|
|
24
|
+
document.addEventListener("keydown", handleEscape, false);
|
|
25
|
+
return () => {
|
|
26
|
+
document.removeEventListener("keydown", handleEscape, false);
|
|
27
|
+
};
|
|
28
|
+
}, [shouldCloseOnEsc, isOpenInner, closeHandler, id]);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { useEscapeKey };
|
|
32
|
+
//# sourceMappingURL=useEscapeKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEscapeKey.js","sources":["../../../../src/components/modals/hooks/useEscapeKey.ts"],"sourcesContent":["import { useEffect } from 'react';\r\n\r\n/**\r\n * Contorla la lógica encargada de cerrar el modal al presionar la tecla escape.\r\n */\r\nexport function useEscapeKey({\r\n closeHandler,\r\n id,\r\n isOpenInner,\r\n shouldCloseOnEsc,\r\n}: {\r\n id: string;\r\n closeHandler: () => void;\r\n isOpenInner: boolean;\r\n shouldCloseOnEsc?: boolean;\r\n}) {\r\n useEffect(() => {\r\n function handleEscape(event: KeyboardEvent) {\r\n const overlays = [...document.querySelectorAll('.overlay')];\r\n\r\n const modal = (event.target as HTMLElement).closest(`#modal__${id}`);\r\n if (modal && event.key === 'Escape') {\r\n /**\r\n * Funcionamiento para el WindowModal\r\n */\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n closeHandler();\r\n } else if (\r\n overlays.length > 0 &&\r\n overlays[overlays.length - 1]?.id === id &&\r\n event.key === 'Escape'\r\n ) {\r\n /**\r\n * Legacy, para el StaticModal\r\n */\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n closeHandler();\r\n }\r\n }\r\n if (isOpenInner && shouldCloseOnEsc)\r\n document.addEventListener('keydown', handleEscape, false);\r\n return () => {\r\n document.removeEventListener('keydown', handleEscape, false);\r\n };\r\n }, [shouldCloseOnEsc, isOpenInner, closeHandler, id]);\r\n}\r\n"],"names":[],"mappings":";;AAKO,SAAS,YAAa,CAAA;AAAA,EAC3B,YAAA;AAAA,EACA,EAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AACF,CAKG,EAAA;AACD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,SAAS,aAAa,KAAsB,EAAA;AAC1C,MAAA,MAAM,WAAW,CAAC,GAAG,QAAS,CAAA,gBAAA,CAAiB,UAAU,CAAC,CAAA,CAAA;AAE1D,MAAA,MAAM,QAAS,KAAM,CAAA,MAAA,CAAuB,OAAQ,CAAA,CAAA,QAAA,EAAW,EAAE,CAAE,CAAA,CAAA,CAAA;AACnE,MAAI,IAAA,KAAA,IAAS,KAAM,CAAA,GAAA,KAAQ,QAAU,EAAA;AAInC,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,QAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AAEtB,QAAa,YAAA,EAAA,CAAA;AAAA,OAEb,MAAA,IAAA,QAAA,CAAS,MAAS,GAAA,CAAA,IAClB,QAAS,CAAA,QAAA,CAAS,MAAS,GAAA,CAAC,CAAG,EAAA,EAAA,KAAO,EACtC,IAAA,KAAA,CAAM,QAAQ,QACd,EAAA;AAIA,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,QAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AAEtB,QAAa,YAAA,EAAA,CAAA;AAAA,OACf;AAAA,KACF;AACA,IAAA,IAAI,WAAe,IAAA,gBAAA;AACjB,MAAS,QAAA,CAAA,gBAAA,CAAiB,SAAW,EAAA,YAAA,EAAc,KAAK,CAAA,CAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAS,QAAA,CAAA,mBAAA,CAAoB,SAAW,EAAA,YAAA,EAAc,KAAK,CAAA,CAAA;AAAA,KAC7D,CAAA;AAAA,KACC,CAAC,gBAAA,EAAkB,WAAa,EAAA,YAAA,EAAc,EAAE,CAAC,CAAA,CAAA;AACtD;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { focus, focusSelector, getFocusSelector } from '@apia/util';
|
|
3
|
+
|
|
4
|
+
function useInitialFocus({
|
|
5
|
+
isOpenInner,
|
|
6
|
+
initialFocusConfiguration,
|
|
7
|
+
initialFocusGetter,
|
|
8
|
+
initialFocusRef,
|
|
9
|
+
noFocus,
|
|
10
|
+
parentElement
|
|
11
|
+
}) {
|
|
12
|
+
useEffect(
|
|
13
|
+
() => {
|
|
14
|
+
if (!noFocus && isOpenInner) {
|
|
15
|
+
if (parentElement) {
|
|
16
|
+
void focus.on(
|
|
17
|
+
() => {
|
|
18
|
+
if (initialFocusGetter)
|
|
19
|
+
return initialFocusGetter(parentElement);
|
|
20
|
+
if (initialFocusRef?.current)
|
|
21
|
+
return (initialFocusRef?.current || parentElement).querySelector(focusSelector);
|
|
22
|
+
return parentElement.querySelector(
|
|
23
|
+
getFocusSelector(":not(.modal__closeButton)")
|
|
24
|
+
);
|
|
25
|
+
},
|
|
26
|
+
{ ...initialFocusConfiguration, focusEvenWhenScreenLocked: true }
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32
|
+
[parentElement]
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { useInitialFocus };
|
|
37
|
+
//# sourceMappingURL=useInitialFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInitialFocus.js","sources":["../../../../src/components/modals/hooks/useInitialFocus.ts"],"sourcesContent":["import { useEffect } from 'react';\r\nimport { TModal } from '../Modal';\r\nimport { focus, focusSelector, getFocusSelector } from '@apia/util';\r\n\r\nexport function useInitialFocus({\r\n isOpenInner,\r\n initialFocusConfiguration,\r\n initialFocusGetter,\r\n initialFocusRef,\r\n noFocus,\r\n parentElement,\r\n}: { isOpenInner: boolean; parentElement?: HTMLElement | null } & Pick<\r\n TModal,\r\n | 'noFocus'\r\n | 'initialFocusGetter'\r\n | 'initialFocusRef'\r\n | 'initialFocusConfiguration'\r\n>) {\r\n useEffect(\r\n () => {\r\n if (!noFocus && isOpenInner) {\r\n if (parentElement) {\r\n void focus.on(\r\n () => {\r\n if (initialFocusGetter) return initialFocusGetter(parentElement);\r\n if (initialFocusRef?.current)\r\n return (\r\n (initialFocusRef?.current || parentElement) as HTMLElement\r\n ).querySelector(focusSelector) as HTMLElement;\r\n return parentElement.querySelector(\r\n getFocusSelector(':not(.modal__closeButton)'),\r\n ) as HTMLElement;\r\n },\r\n { ...initialFocusConfiguration, focusEvenWhenScreenLocked: true },\r\n );\r\n }\r\n }\r\n },\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [parentElement],\r\n );\r\n}\r\n"],"names":[],"mappings":";;;AAIO,SAAS,eAAgB,CAAA;AAAA,EAC9B,WAAA;AAAA,EACA,yBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AACF,CAMG,EAAA;AACD,EAAA,SAAA;AAAA,IACE,MAAM;AACJ,MAAI,IAAA,CAAC,WAAW,WAAa,EAAA;AAC3B,QAAA,IAAI,aAAe,EAAA;AACjB,UAAA,KAAK,KAAM,CAAA,EAAA;AAAA,YACT,MAAM;AACJ,cAAI,IAAA,kBAAA;AAAoB,gBAAA,OAAO,mBAAmB,aAAa,CAAA,CAAA;AAC/D,cAAA,IAAI,eAAiB,EAAA,OAAA;AACnB,gBAAA,OAAA,CACG,eAAiB,EAAA,OAAA,IAAW,aAC7B,EAAA,aAAA,CAAc,aAAa,CAAA,CAAA;AAC/B,cAAA,OAAO,aAAc,CAAA,aAAA;AAAA,gBACnB,iBAAiB,2BAA2B,CAAA;AAAA,eAC9C,CAAA;AAAA,aACF;AAAA,YACA,EAAE,GAAG,yBAA2B,EAAA,yBAAA,EAA2B,IAAK,EAAA;AAAA,WAClE,CAAA;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA;AAAA,IAEA,CAAC,aAAa,CAAA;AAAA,GAChB,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { Args } from 'react-cool-portal';
|
|
3
|
+
import { TModal } from '../Modal.js';
|
|
4
|
+
|
|
5
|
+
type TUseModalConfiguration = Pick<TModal, 'onClose' | 'onExited'> & {
|
|
6
|
+
debugPerformanceName?: string;
|
|
7
|
+
isDefaultOpen?: boolean;
|
|
8
|
+
onOpen?: () => unknown;
|
|
9
|
+
portalArgs?: Omit<Args, 'containerId'>;
|
|
10
|
+
preFetcher?: () => Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Este hook provee una forma muy sencilla de utilizar nuestro modal. Provee
|
|
14
|
+
* varias funcionalidades interesantes para poder manipular el modal en
|
|
15
|
+
* distintas circunstancias:
|
|
16
|
+
*
|
|
17
|
+
* Objeto parámetro:
|
|
18
|
+
*
|
|
19
|
+
* - **defaultOpen**, Boolean, si es true el modal aparecerá abierto al montar
|
|
20
|
+
* y sino aparecerá cerrado.
|
|
21
|
+
* - **onOpen**: Event listener que será llamado en el momento exacto en que la
|
|
22
|
+
* orden de apertura del modal fue dada.
|
|
23
|
+
* - **onClose**: Event listener que será llamado en el momento exacto en que
|
|
24
|
+
* el modal es cerrado, ya sea por un click en el overlay o porque la tecla
|
|
25
|
+
* escape fue presionada.
|
|
26
|
+
* - **onExited**, Event listener que será llamado luego de que la animación de
|
|
27
|
+
* cierre del modal terminó.
|
|
28
|
+
* - **preFetcher**, este método deberá devolver una promesa y en dicha promesa
|
|
29
|
+
* deberá realizar cualquier operación que fuera necesaria antes de abrir el
|
|
30
|
+
* modal, ejemplo: cargar la información que el modal debe mostrar. Si este
|
|
31
|
+
* método es pasado, será llamado antes de abrir el modal y la vista se pondrá
|
|
32
|
+
* en modo de carga (la propiedad isLoading devuelta y la propiedad isLoading
|
|
33
|
+
* del OpenModalContextProvider estarán en true), hasta que la promesa sea
|
|
34
|
+
* resuelta, momento en que se abrirá el modal e isLoading será puesto en false.
|
|
35
|
+
* - **portalArgs**, objeto de configuración aceptado por el hook usePortal de
|
|
36
|
+
* **react-cool-portal**.
|
|
37
|
+
*
|
|
38
|
+
* Objeto devuelto:
|
|
39
|
+
*
|
|
40
|
+
* - Para un modal en donde el botón de abrir el modal esté inserto dentro del
|
|
41
|
+
* componente que lo utiliza, se devuelven los métodos **show** y **hide**.
|
|
42
|
+
* - Para un modal en donde el botón de abrir el modal esté fuera del
|
|
43
|
+
* componente, se devuelve **openModalContextValue**, que es el valor que debe
|
|
44
|
+
* pasarse al contexto de tipo OpenModalContextProvider, un contexto que
|
|
45
|
+
* puede ser utilizado para renderizar el botón encargado de abrir el modal,
|
|
46
|
+
* fuera del alcance del componente que define el modal en sí. Se muestra un
|
|
47
|
+
* ejemplo más abajo.
|
|
48
|
+
* - Todos los demás elementos devueltos son para pasar directamente al modal,
|
|
49
|
+
* entre ellos se encuentran las propiedades que el modal utiliza para saber si
|
|
50
|
+
* debe estar abierto, los event listeners correspondientes y un portal, que el
|
|
51
|
+
* modal usará para mostrarse dentro del área de modales, lo cual es sumamente
|
|
52
|
+
* importante para que el focusController funcione correctamente.
|
|
53
|
+
*
|
|
54
|
+
* @see OpenModalContextProvider
|
|
55
|
+
* @see usePortal
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
*
|
|
59
|
+
const { openModalContextValue, ...modalProps } = useModal(
|
|
60
|
+
React.useMemo(() => ({
|
|
61
|
+
onClose: () => console.log("Al presionar en cerrar."),
|
|
62
|
+
onExited: () => console.log("Al terminar la animación de cierre."),
|
|
63
|
+
onOpen: () => console.log("Al abrir."),
|
|
64
|
+
}), [])
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<OpenModalContext.Provider value={openModalContextValue}>
|
|
69
|
+
<OpenModalContext.Consumer>
|
|
70
|
+
{({ isLoading, show }) => (
|
|
71
|
+
<Button isLoading={isLoading} onClick={show}>Open modal</Button>
|
|
72
|
+
)}
|
|
73
|
+
</OpenModalContext.Consumer>
|
|
74
|
+
<Modal shouldCloseOnEsc shouldCloseOnOverlayClick {...modalProps}>
|
|
75
|
+
Hello world
|
|
76
|
+
</Modal>
|
|
77
|
+
</OpenModalContext.Provider>
|
|
78
|
+
);
|
|
79
|
+
*/
|
|
80
|
+
declare function useModal(configuration?: TUseModalConfiguration): {
|
|
81
|
+
hide: () => void;
|
|
82
|
+
isLoading: boolean;
|
|
83
|
+
isOpen: boolean;
|
|
84
|
+
onClose: () => void;
|
|
85
|
+
onExited: () => void;
|
|
86
|
+
openModalContextValue: {
|
|
87
|
+
isLoading: boolean;
|
|
88
|
+
show: () => void;
|
|
89
|
+
};
|
|
90
|
+
Portal: React__default.FC<{
|
|
91
|
+
children: React__default.ReactNode;
|
|
92
|
+
}>;
|
|
93
|
+
show: () => void;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export { type TUseModalConfiguration, useModal };
|
|
97
|
+
//# sourceMappingURL=useModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModal.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|