@apia/components 1.0.4 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/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,38 @@
|
|
|
1
|
+
import { FC, FunctionComponent } from 'react';
|
|
2
|
+
|
|
3
|
+
interface IMakeResponsiveComponent<P extends Record<string, unknown>> {
|
|
4
|
+
breakPoints: number[];
|
|
5
|
+
Component: FunctionComponent<P & {
|
|
6
|
+
breakPoint: number;
|
|
7
|
+
breakPointWidth: number;
|
|
8
|
+
containerWidth: number;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Este HOC hace un setState cada vez que cambia el ancho del contenedor. Hay
|
|
12
|
+
* situaciones en las que es deseable agregar un debounce a este
|
|
13
|
+
* comportamiento para mejorar la performance. *Por defecto usa 100*
|
|
14
|
+
*/
|
|
15
|
+
debounce?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Por defecto usa 4.
|
|
18
|
+
*/
|
|
19
|
+
defaultBreakpoint?: number;
|
|
20
|
+
}
|
|
21
|
+
interface IResponsiveComponent<P> extends FC<P> {
|
|
22
|
+
setBreakpoints: {
|
|
23
|
+
current: (breakPoints: number[]) => void;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* El método makeResponsiveComponent agrega un wrapper alrededor de un
|
|
28
|
+
* componente para conocer el ancho del contenedor del mismo. De esta forma, es
|
|
29
|
+
* fácil predecir qué ancho dispone el mismo para renderizarse y de esa forma
|
|
30
|
+
* poder tomar decisiones de responsividad que no dependen del ancho de la
|
|
31
|
+
* pantalla sino del espacio donde se encuentra.
|
|
32
|
+
*/
|
|
33
|
+
declare const makeResponsiveComponent: <P extends Record<string, unknown>>({ breakPoints, Component, defaultBreakpoint, }: IMakeResponsiveComponent<P>) => IResponsiveComponent<P & {
|
|
34
|
+
breakPoints?: number[] | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
|
|
37
|
+
export { type IResponsiveComponent, makeResponsiveComponent };
|
|
38
|
+
//# sourceMappingURL=makeResponsiveComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeResponsiveComponent.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { useState, useRef, useTransition, useCallback, useEffect, useDeferredValue } from 'react';
|
|
3
|
+
import { Box } from '@apia/theme';
|
|
4
|
+
|
|
5
|
+
function calcBreakPoint(currentWidth, breakPoints) {
|
|
6
|
+
let currentIndex = 0;
|
|
7
|
+
while (currentIndex < breakPoints.length && currentWidth > breakPoints[currentIndex])
|
|
8
|
+
currentIndex++;
|
|
9
|
+
return currentIndex;
|
|
10
|
+
}
|
|
11
|
+
const makeResponsiveComponent = ({
|
|
12
|
+
breakPoints,
|
|
13
|
+
Component,
|
|
14
|
+
defaultBreakpoint
|
|
15
|
+
}) => {
|
|
16
|
+
const setBreakpoints = {
|
|
17
|
+
current: () => {
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
return Object.assign(
|
|
21
|
+
function ResponsiveComponent(props) {
|
|
22
|
+
const [breakPoint, setCurrentBreakpoint] = useState(
|
|
23
|
+
defaultBreakpoint ?? 4
|
|
24
|
+
);
|
|
25
|
+
const [innerBreakpoints, setInnerBreakpoints] = useState(
|
|
26
|
+
props.breakPoints ?? breakPoints
|
|
27
|
+
);
|
|
28
|
+
setBreakpoints.current = setInnerBreakpoints;
|
|
29
|
+
const [containerWidth, setContainerWidth] = useState(
|
|
30
|
+
breakPoints[defaultBreakpoint ?? 4]
|
|
31
|
+
);
|
|
32
|
+
const observer = useRef(null);
|
|
33
|
+
const shouldDisconnect = useRef(false);
|
|
34
|
+
const [hasRendered, setHasRendered] = useState(false);
|
|
35
|
+
const [, startTransition] = useTransition();
|
|
36
|
+
const ref = useCallback(
|
|
37
|
+
(element) => {
|
|
38
|
+
if (!element)
|
|
39
|
+
return;
|
|
40
|
+
observer.current?.disconnect();
|
|
41
|
+
observer.current = new ResizeObserver((resizeProps) => {
|
|
42
|
+
if (resizeProps[0].contentRect.width === 0)
|
|
43
|
+
return;
|
|
44
|
+
startTransition(() => {
|
|
45
|
+
setContainerWidth(resizeProps[0].contentRect.width);
|
|
46
|
+
setCurrentBreakpoint(
|
|
47
|
+
calcBreakPoint(
|
|
48
|
+
resizeProps[0].contentRect.width,
|
|
49
|
+
innerBreakpoints
|
|
50
|
+
)
|
|
51
|
+
);
|
|
52
|
+
setHasRendered(true);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
if (element)
|
|
56
|
+
observer.current.observe(element);
|
|
57
|
+
},
|
|
58
|
+
[innerBreakpoints]
|
|
59
|
+
);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
shouldDisconnect.current = false;
|
|
62
|
+
return () => {
|
|
63
|
+
shouldDisconnect.current = true;
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
if (shouldDisconnect.current) {
|
|
66
|
+
observer.current?.disconnect();
|
|
67
|
+
}
|
|
68
|
+
}, 2e3);
|
|
69
|
+
};
|
|
70
|
+
}, [innerBreakpoints]);
|
|
71
|
+
const deferBreakPoint = useDeferredValue(breakPoint);
|
|
72
|
+
const deferContainerWidth = useDeferredValue(containerWidth);
|
|
73
|
+
return /* @__PURE__ */ jsx(Box, { ref, children: hasRendered ? /* @__PURE__ */ jsx(
|
|
74
|
+
Component,
|
|
75
|
+
{
|
|
76
|
+
...props,
|
|
77
|
+
breakPoint: deferBreakPoint,
|
|
78
|
+
breakPointWidth: breakPoints[deferBreakPoint],
|
|
79
|
+
containerWidth: deferContainerWidth
|
|
80
|
+
}
|
|
81
|
+
) : null });
|
|
82
|
+
},
|
|
83
|
+
{ setBreakpoints }
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export { makeResponsiveComponent };
|
|
88
|
+
//# sourceMappingURL=makeResponsiveComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeResponsiveComponent.js","sources":["../../../src/components/responsive/makeResponsiveComponent.tsx"],"sourcesContent":["import {\n FC,\n FunctionComponent,\n useCallback,\n useDeferredValue,\n useEffect,\n useRef,\n useState,\n useTransition,\n} from 'react';\nimport { Box } from '@apia/theme';\n\ninterface IMakeResponsiveComponent<P extends Record<string, unknown>> {\n breakPoints: number[];\n Component: FunctionComponent<\n P & { breakPoint: number; breakPointWidth: number; containerWidth: number }\n >;\n /**\n * Este HOC hace un setState cada vez que cambia el ancho del contenedor. Hay\n * situaciones en las que es deseable agregar un debounce a este\n * comportamiento para mejorar la performance. *Por defecto usa 100*\n */\n debounce?: number;\n /**\n * Por defecto usa 4.\n */\n defaultBreakpoint?: number;\n}\n\nfunction calcBreakPoint(currentWidth: number, breakPoints: number[]) {\n let currentIndex = 0;\n\n while (\n currentIndex < breakPoints.length &&\n currentWidth > breakPoints[currentIndex]\n )\n currentIndex++;\n\n return currentIndex;\n}\n\nexport interface IResponsiveComponent<P> extends FC<P> {\n setBreakpoints: { current: (breakPoints: number[]) => void };\n}\n\n/**\n * El método makeResponsiveComponent agrega un wrapper alrededor de un\n * componente para conocer el ancho del contenedor del mismo. De esta forma, es\n * fácil predecir qué ancho dispone el mismo para renderizarse y de esa forma\n * poder tomar decisiones de responsividad que no dependen del ancho de la\n * pantalla sino del espacio donde se encuentra.\n */\nexport const makeResponsiveComponent = <P extends Record<string, unknown>>({\n breakPoints,\n Component,\n defaultBreakpoint,\n}: IMakeResponsiveComponent<P>): IResponsiveComponent<\n P & {\n breakPoints?: number[];\n }\n> => {\n const setBreakpoints: { current: (b: number[]) => void } = {\n current: () => {},\n };\n\n return Object.assign(\n function ResponsiveComponent(\n props: P & {\n breakPoints?: number[];\n },\n ) {\n const [breakPoint, setCurrentBreakpoint] = useState<number>(\n defaultBreakpoint ?? 4,\n );\n\n const [innerBreakpoints, setInnerBreakpoints] = useState(\n props.breakPoints ?? breakPoints,\n );\n setBreakpoints.current = setInnerBreakpoints;\n\n const [containerWidth, setContainerWidth] = useState(\n breakPoints[defaultBreakpoint ?? 4],\n );\n const observer = useRef<ResizeObserver | null>(null);\n const shouldDisconnect = useRef(false);\n\n const [hasRendered, setHasRendered] = useState(false);\n const [, startTransition] = useTransition();\n\n const ref = useCallback(\n (element: HTMLElement) => {\n if (!element) return;\n\n observer.current?.disconnect();\n observer.current = new ResizeObserver((resizeProps) => {\n if (resizeProps[0].contentRect.width === 0) return;\n\n startTransition(() => {\n setContainerWidth(resizeProps[0].contentRect.width);\n setCurrentBreakpoint(\n calcBreakPoint(\n resizeProps[0].contentRect.width,\n innerBreakpoints,\n ),\n );\n setHasRendered(true);\n });\n });\n\n if (element) observer.current.observe(element);\n },\n [innerBreakpoints],\n );\n\n useEffect(() => {\n shouldDisconnect.current = false;\n\n return () => {\n shouldDisconnect.current = true;\n setTimeout(() => {\n if (shouldDisconnect.current) {\n observer.current?.disconnect();\n }\n /**\n * El timeout tiene un tiempo arbitrariamente alto ya que de esta\n * forma el observer se va a desconectar una vez que el componente\n * se desmonte. Si pusiera un tiempo menor, caería en el riesgo de\n * que se desconecte aún cuando el componente está montado\n */\n }, 2000);\n };\n }, [innerBreakpoints]);\n\n const deferBreakPoint = useDeferredValue(breakPoint);\n const deferContainerWidth = useDeferredValue(containerWidth);\n\n return (\n <Box ref={ref}>\n {hasRendered ? (\n <Component\n {...props}\n breakPoint={deferBreakPoint}\n breakPointWidth={breakPoints[deferBreakPoint]}\n containerWidth={deferContainerWidth}\n />\n ) : null}\n </Box>\n );\n },\n { setBreakpoints },\n );\n};\n"],"names":[],"mappings":";;;;AA6BA,SAAS,cAAA,CAAe,cAAsB,WAAuB,EAAA;AACnE,EAAA,IAAI,YAAe,GAAA,CAAA,CAAA;AAEnB,EAAA,OACE,YAAe,GAAA,WAAA,CAAY,MAC3B,IAAA,YAAA,GAAe,YAAY,YAAY,CAAA;AAEvC,IAAA,YAAA,EAAA,CAAA;AAEF,EAAO,OAAA,YAAA,CAAA;AACT,CAAA;AAaO,MAAM,0BAA0B,CAAoC;AAAA,EACzE,WAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AACF,CAIK,KAAA;AACH,EAAA,MAAM,cAAqD,GAAA;AAAA,IACzD,SAAS,MAAM;AAAA,KAAC;AAAA,GAClB,CAAA;AAEA,EAAA,OAAO,MAAO,CAAA,MAAA;AAAA,IACZ,SAAS,oBACP,KAGA,EAAA;AACA,MAAM,MAAA,CAAC,UAAY,EAAA,oBAAoB,CAAI,GAAA,QAAA;AAAA,QACzC,iBAAqB,IAAA,CAAA;AAAA,OACvB,CAAA;AAEA,MAAM,MAAA,CAAC,gBAAkB,EAAA,mBAAmB,CAAI,GAAA,QAAA;AAAA,QAC9C,MAAM,WAAe,IAAA,WAAA;AAAA,OACvB,CAAA;AACA,MAAA,cAAA,CAAe,OAAU,GAAA,mBAAA,CAAA;AAEzB,MAAM,MAAA,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAA,QAAA;AAAA,QAC1C,WAAA,CAAY,qBAAqB,CAAC,CAAA;AAAA,OACpC,CAAA;AACA,MAAM,MAAA,QAAA,GAAW,OAA8B,IAAI,CAAA,CAAA;AACnD,MAAM,MAAA,gBAAA,GAAmB,OAAO,KAAK,CAAA,CAAA;AAErC,MAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AACpD,MAAA,MAAM,GAAG,eAAe,CAAA,GAAI,aAAc,EAAA,CAAA;AAE1C,MAAA,MAAM,GAAM,GAAA,WAAA;AAAA,QACV,CAAC,OAAyB,KAAA;AACxB,UAAA,IAAI,CAAC,OAAA;AAAS,YAAA,OAAA;AAEd,UAAA,QAAA,CAAS,SAAS,UAAW,EAAA,CAAA;AAC7B,UAAA,QAAA,CAAS,OAAU,GAAA,IAAI,cAAe,CAAA,CAAC,WAAgB,KAAA;AACrD,YAAA,IAAI,WAAY,CAAA,CAAC,CAAE,CAAA,WAAA,CAAY,KAAU,KAAA,CAAA;AAAG,cAAA,OAAA;AAE5C,YAAA,eAAA,CAAgB,MAAM;AACpB,cAAA,iBAAA,CAAkB,WAAY,CAAA,CAAC,CAAE,CAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AAClD,cAAA,oBAAA;AAAA,gBACE,cAAA;AAAA,kBACE,WAAA,CAAY,CAAC,CAAA,CAAE,WAAY,CAAA,KAAA;AAAA,kBAC3B,gBAAA;AAAA,iBACF;AAAA,eACF,CAAA;AACA,cAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AAAA,aACpB,CAAA,CAAA;AAAA,WACF,CAAA,CAAA;AAED,UAAI,IAAA,OAAA;AAAS,YAAS,QAAA,CAAA,OAAA,CAAQ,QAAQ,OAAO,CAAA,CAAA;AAAA,SAC/C;AAAA,QACA,CAAC,gBAAgB,CAAA;AAAA,OACnB,CAAA;AAEA,MAAA,SAAA,CAAU,MAAM;AACd,QAAA,gBAAA,CAAiB,OAAU,GAAA,KAAA,CAAA;AAE3B,QAAA,OAAO,MAAM;AACX,UAAA,gBAAA,CAAiB,OAAU,GAAA,IAAA,CAAA;AAC3B,UAAA,UAAA,CAAW,MAAM;AACf,YAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,cAAA,QAAA,CAAS,SAAS,UAAW,EAAA,CAAA;AAAA,aAC/B;AAAA,aAOC,GAAI,CAAA,CAAA;AAAA,SACT,CAAA;AAAA,OACF,EAAG,CAAC,gBAAgB,CAAC,CAAA,CAAA;AAErB,MAAM,MAAA,eAAA,GAAkB,iBAAiB,UAAU,CAAA,CAAA;AACnD,MAAM,MAAA,mBAAA,GAAsB,iBAAiB,cAAc,CAAA,CAAA;AAE3D,MACE,uBAAA,GAAA,CAAC,GAAI,EAAA,EAAA,GAAA,EACF,QACC,EAAA,WAAA,mBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,UAAY,EAAA,eAAA;AAAA,UACZ,eAAA,EAAiB,YAAY,eAAe,CAAA;AAAA,UAC5C,cAAgB,EAAA,mBAAA;AAAA,SAAA;AAAA,UAEhB,IACN,EAAA,CAAA,CAAA;AAAA,KAEJ;AAAA,IACA,EAAE,cAAe,EAAA;AAAA,GACnB,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type TModalSize = 'editGrid' | 'sm' | 'md' | 'md-fixed' | 'lg' | 'lg-fixed' | 'xl' | 'xl-fixed' | 'xxl' | 'xxxl' | 'xxxl-fixed' | 'flex' | 'cal' | 'finder';
|
|
2
|
+
type TApiaButtonType = 'primary' | 'primary-sm' | 'secondary' | 'light-secondary' | 'secondary-sm' | 'danger' | 'danger-sm' | 'outline' | 'outline-sm' | 'warning' | 'warning-sm' | 'link';
|
|
3
|
+
|
|
4
|
+
export type { TApiaButtonType, TModalSize };
|
|
5
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { EventEmitter } from '@apia/util';
|
|
2
|
+
import { KeyboardEvent } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Type-ahead is a behavior pattern which helps the user in the lists and trees
|
|
6
|
+
* (and literally says: "especially those with more than seven options")
|
|
7
|
+
* navigation. The literal description in Wai-Aria documentation is:
|
|
8
|
+
*
|
|
9
|
+
* - Type a character: focus moves to the next item with a name that starts
|
|
10
|
+
* with the typed character.
|
|
11
|
+
*
|
|
12
|
+
* - Type multiple characters in rapid succession:
|
|
13
|
+
* focus moves to the next item with a name that starts with the string of
|
|
14
|
+
* characters typed.
|
|
15
|
+
*
|
|
16
|
+
* It is a little arbitrary what is rapid succession. As I couln't find any
|
|
17
|
+
* documentation about what rapid succession means, I will make some tests in
|
|
18
|
+
* order to determine what is more comfortable to accomplish one situation or
|
|
19
|
+
* the other.
|
|
20
|
+
*
|
|
21
|
+
* To callibrate this function it is suficient to override the frequency
|
|
22
|
+
* parameter, which after some tests I understand is best at 2.5 (keys per
|
|
23
|
+
* second).
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
declare class WaiTypeAhead extends EventEmitter<{
|
|
27
|
+
multipleKeys: string;
|
|
28
|
+
singleKey: string;
|
|
29
|
+
typeUpdate: string;
|
|
30
|
+
}> {
|
|
31
|
+
#private;
|
|
32
|
+
frequency: number;
|
|
33
|
+
timeout: number;
|
|
34
|
+
typing: string;
|
|
35
|
+
constructor(props?: {
|
|
36
|
+
onMultipleKeys?: (value: string) => unknown;
|
|
37
|
+
onSingleKey?: (value: string) => unknown;
|
|
38
|
+
onTypeUpdate?: (value: string) => unknown;
|
|
39
|
+
});
|
|
40
|
+
type(ev: KeyboardEvent): void;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { WaiTypeAhead };
|
|
44
|
+
//# sourceMappingURL=typeAhead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeAhead.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { EventEmitter } from '@apia/util';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => {
|
|
6
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
+
return value;
|
|
8
|
+
};
|
|
9
|
+
var __accessCheck = (obj, member, msg) => {
|
|
10
|
+
if (!member.has(obj))
|
|
11
|
+
throw TypeError("Cannot " + msg);
|
|
12
|
+
};
|
|
13
|
+
var __privateAdd = (obj, member, value) => {
|
|
14
|
+
if (member.has(obj))
|
|
15
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
16
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
17
|
+
};
|
|
18
|
+
var __privateMethod = (obj, member, method) => {
|
|
19
|
+
__accessCheck(obj, member, "access private method");
|
|
20
|
+
return method;
|
|
21
|
+
};
|
|
22
|
+
var _restoreTimeout, restoreTimeout_fn, _shout, shout_fn;
|
|
23
|
+
class WaiTypeAhead extends EventEmitter {
|
|
24
|
+
constructor(props) {
|
|
25
|
+
super();
|
|
26
|
+
__privateAdd(this, _restoreTimeout);
|
|
27
|
+
__privateAdd(this, _shout);
|
|
28
|
+
__publicField(this, "frequency", 2.5);
|
|
29
|
+
// Keys per second
|
|
30
|
+
__publicField(this, "timeout", 0);
|
|
31
|
+
__publicField(this, "typing", "");
|
|
32
|
+
const { onMultipleKeys, onSingleKey, onTypeUpdate } = props ?? {};
|
|
33
|
+
if (onMultipleKeys)
|
|
34
|
+
this.on("multipleKeys", onMultipleKeys);
|
|
35
|
+
if (onSingleKey)
|
|
36
|
+
this.on("singleKey", onSingleKey);
|
|
37
|
+
if (onTypeUpdate)
|
|
38
|
+
this.on("typeUpdate", onTypeUpdate);
|
|
39
|
+
}
|
|
40
|
+
type(ev) {
|
|
41
|
+
if (ev.key.match(/^[\p{L}\d ]$/u)) {
|
|
42
|
+
ev.preventDefault();
|
|
43
|
+
this.typing = this.typing + ev.key;
|
|
44
|
+
this.emit("typeUpdate", this.typing);
|
|
45
|
+
__privateMethod(this, _restoreTimeout, restoreTimeout_fn).call(this);
|
|
46
|
+
} else if (ev.code === "Backspace") {
|
|
47
|
+
ev.preventDefault();
|
|
48
|
+
this.typing = this.typing.slice(0, -1);
|
|
49
|
+
this.emit("typeUpdate", this.typing);
|
|
50
|
+
__privateMethod(this, _restoreTimeout, restoreTimeout_fn).call(this);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
_restoreTimeout = new WeakSet();
|
|
55
|
+
restoreTimeout_fn = function() {
|
|
56
|
+
clearTimeout(this.timeout);
|
|
57
|
+
this.timeout = setTimeout(
|
|
58
|
+
__privateMethod(this, _shout, shout_fn).bind(this),
|
|
59
|
+
1e3 / this.frequency
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
_shout = new WeakSet();
|
|
63
|
+
shout_fn = function({ clear } = { clear: true }) {
|
|
64
|
+
if (this.typing.length === 1) {
|
|
65
|
+
this.emit("singleKey", this.typing);
|
|
66
|
+
} else if (this.typing.length > 1) {
|
|
67
|
+
this.emit("multipleKeys", this.typing);
|
|
68
|
+
}
|
|
69
|
+
if (clear) {
|
|
70
|
+
this.typing = "";
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export { WaiTypeAhead };
|
|
75
|
+
//# sourceMappingURL=typeAhead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeAhead.js","sources":["../../../src/components/waiAriaHelpers/typeAhead.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Type-ahead is a behavior pattern which helps the user in the lists and trees\n * (and literally says: \"especially those with more than seven options\")\n * navigation. The literal description in Wai-Aria documentation is:\n *\n * - Type a character: focus moves to the next item with a name that starts\n * with the typed character.\n *\n * - Type multiple characters in rapid succession:\n * focus moves to the next item with a name that starts with the string of\n * characters typed.\n *\n * It is a little arbitrary what is rapid succession. As I couln't find any\n * documentation about what rapid succession means, I will make some tests in\n * order to determine what is more comfortable to accomplish one situation or\n * the other.\n *\n * To callibrate this function it is suficient to override the frequency\n * parameter, which after some tests I understand is best at 2.5 (keys per\n * second).\n */\n\nimport { EventEmitter } from '@apia/util';\nimport { KeyboardEvent } from 'react';\n\nclass WaiTypeAhead extends EventEmitter<{\n multipleKeys: string;\n singleKey: string;\n typeUpdate: string;\n}> {\n frequency = 2.5; // Keys per second\n timeout = 0;\n typing = '';\n\n constructor(props?: {\n onMultipleKeys?: (value: string) => unknown;\n onSingleKey?: (value: string) => unknown;\n onTypeUpdate?: (value: string) => unknown;\n }) {\n super();\n\n const { onMultipleKeys, onSingleKey, onTypeUpdate } = props ?? {};\n\n if (onMultipleKeys) this.on('multipleKeys', onMultipleKeys);\n if (onSingleKey) this.on('singleKey', onSingleKey);\n if (onTypeUpdate) this.on('typeUpdate', onTypeUpdate);\n }\n\n #restoreTimeout() {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(\n this.#shout.bind(this),\n 1000 / this.frequency,\n ) as any;\n }\n\n #shout({ clear } = { clear: true }) {\n if (this.typing.length === 1) {\n this.emit('singleKey', this.typing);\n } else if (this.typing.length > 1) {\n this.emit('multipleKeys', this.typing);\n }\n if (clear) {\n this.typing = '';\n }\n }\n\n type(ev: KeyboardEvent) {\n if (ev.key.match(/^[\\p{L}\\d ]$/u)) {\n ev.preventDefault();\n this.typing = this.typing + ev.key;\n this.emit('typeUpdate', this.typing);\n this.#restoreTimeout();\n } else if (ev.code === 'Backspace') {\n ev.preventDefault();\n this.typing = this.typing.slice(0, -1);\n this.emit('typeUpdate', this.typing);\n this.#restoreTimeout();\n }\n }\n}\n\nexport { WaiTypeAhead };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { debugDispatcher } from '@apia/util';
|
|
2
|
+
import isFunction from 'lodash-es/isFunction';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __publicField = (obj, key, value) => {
|
|
7
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
var __accessCheck = (obj, member, msg) => {
|
|
11
|
+
if (!member.has(obj))
|
|
12
|
+
throw TypeError("Cannot " + msg);
|
|
13
|
+
};
|
|
14
|
+
var __privateGet = (obj, member, getter) => {
|
|
15
|
+
__accessCheck(obj, member, "read from private field");
|
|
16
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
17
|
+
};
|
|
18
|
+
var __privateAdd = (obj, member, value) => {
|
|
19
|
+
if (member.has(obj))
|
|
20
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
21
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
22
|
+
};
|
|
23
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
24
|
+
__accessCheck(obj, member, "write to private field");
|
|
25
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
26
|
+
return value;
|
|
27
|
+
};
|
|
28
|
+
var _onFocusCallbacks, _a;
|
|
29
|
+
const historySize = 50;
|
|
30
|
+
const globalFocus = new (_a = class {
|
|
31
|
+
constructor() {
|
|
32
|
+
__publicField(this, "focused", []);
|
|
33
|
+
__privateAdd(this, _onFocusCallbacks, []);
|
|
34
|
+
debugDispatcher.on(
|
|
35
|
+
"focusHistory",
|
|
36
|
+
() => {
|
|
37
|
+
console.info(this.focused);
|
|
38
|
+
},
|
|
39
|
+
"Muestra el historial de elementos que recibieron foco."
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
offFocus(cb) {
|
|
43
|
+
__privateSet(this, _onFocusCallbacks, __privateGet(this, _onFocusCallbacks).filter((current) => {
|
|
44
|
+
return current !== cb;
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
onFocus(cb) {
|
|
48
|
+
__privateGet(this, _onFocusCallbacks).push(cb);
|
|
49
|
+
return () => {
|
|
50
|
+
this.offFocus(cb);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
inDocument(el) {
|
|
54
|
+
return el instanceof Function || el instanceof HTMLElement && el.offsetParent !== null;
|
|
55
|
+
}
|
|
56
|
+
set focus(element) {
|
|
57
|
+
this.focused = this.focused.filter((el) => {
|
|
58
|
+
const existsInDocument = this.inDocument(el) && element !== el;
|
|
59
|
+
return existsInDocument;
|
|
60
|
+
});
|
|
61
|
+
this.focused.unshift(element);
|
|
62
|
+
if (this.focused.length > historySize) {
|
|
63
|
+
this.focused = this.focused.splice(0, historySize);
|
|
64
|
+
}
|
|
65
|
+
__privateGet(this, _onFocusCallbacks).forEach((cb) => {
|
|
66
|
+
return cb();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
get list() {
|
|
70
|
+
return [...this.focused];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @param querySelector A query selector against which the element should match
|
|
74
|
+
* @returns The last HTMLElement if no querySelector argument provided or else, the last which matches
|
|
75
|
+
* against that query selector.
|
|
76
|
+
* */
|
|
77
|
+
last(querySelector, omit = 0) {
|
|
78
|
+
if (querySelector)
|
|
79
|
+
for (let i = omit; i <= this.focused.length; i++) {
|
|
80
|
+
const storedElement = this.focused[i];
|
|
81
|
+
const element = (
|
|
82
|
+
// eslint-disable-next-line no-nested-ternary
|
|
83
|
+
storedElement?.id !== void 0 ? storedElement : isFunction(storedElement) ? storedElement(false) : null
|
|
84
|
+
);
|
|
85
|
+
if (element && this.inDocument(element) && element.matches && element.matches(querySelector))
|
|
86
|
+
return element;
|
|
87
|
+
}
|
|
88
|
+
else
|
|
89
|
+
return this.focused[this.focused.length - 1];
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}, _onFocusCallbacks = new WeakMap(), _a)();
|
|
93
|
+
|
|
94
|
+
export { globalFocus as default };
|
|
95
|
+
//# sourceMappingURL=globalFocus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalFocus.js","sources":["../src/globalFocus.ts"],"sourcesContent":["import { TFocusRetriever, debugDispatcher } from '@apia/util';\nimport isFunction from 'lodash-es/isFunction';\n\nconst historySize = 50;\n\n/**\n * The GlobalFocus helper keeps a list of the last focused elements and allows\n * to retrieve the last focused element which matches against a query selector.\n */\nconst globalFocus = new (class {\n focused: (HTMLElement | TFocusRetriever)[] = [];\n\n #onFocusCallbacks: (() => unknown)[] = [];\n\n offFocus(cb: () => unknown) {\n this.#onFocusCallbacks = this.#onFocusCallbacks.filter((current) => {\n return current !== cb;\n });\n }\n\n onFocus(cb: () => unknown) {\n this.#onFocusCallbacks.push(cb);\n\n return () => {\n this.offFocus(cb);\n };\n }\n\n constructor() {\n debugDispatcher.on(\n 'focusHistory',\n () => {\n console.info(this.focused);\n },\n 'Muestra el historial de elementos que recibieron foco.',\n );\n }\n\n inDocument(el: HTMLElement | TFocusRetriever) {\n return (\n el instanceof Function ||\n (el instanceof HTMLElement && el.offsetParent !== null)\n );\n }\n\n set focus(element: HTMLElement | TFocusRetriever) {\n this.focused = this.focused.filter((el) => {\n const existsInDocument = this.inDocument(el) && element !== el;\n\n return existsInDocument;\n });\n this.focused.unshift(element);\n if (this.focused.length > historySize) {\n this.focused = this.focused.splice(0, historySize);\n }\n\n this.#onFocusCallbacks.forEach((cb) => {\n return cb();\n });\n }\n\n get list() {\n return [...this.focused];\n }\n\n /**\n * @param querySelector A query selector against which the element should match\n * @returns The last HTMLElement if no querySelector argument provided or else, the last which matches\n * against that query selector.\n * */\n last(querySelector?: string, omit = 0) {\n if (querySelector)\n for (let i = omit; i <= this.focused.length; i++) {\n const storedElement = this.focused[i];\n const element =\n // eslint-disable-next-line no-nested-ternary\n (storedElement as HTMLElement)?.id !== undefined\n ? (storedElement as HTMLElement)\n : isFunction(storedElement)\n ? storedElement(false)\n : null;\n\n if (\n element &&\n this.inDocument(element) &&\n element.matches &&\n element.matches(querySelector)\n )\n return element;\n }\n else return this.focused[this.focused.length - 1];\n return null;\n }\n})();\n\nexport default globalFocus;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => {
|
|
6
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
+
return value;
|
|
8
|
+
};
|
|
9
|
+
var __accessCheck = (obj, member, msg) => {
|
|
10
|
+
if (!member.has(obj))
|
|
11
|
+
throw TypeError("Cannot " + msg);
|
|
12
|
+
};
|
|
13
|
+
var __privateGet = (obj, member, getter) => {
|
|
14
|
+
__accessCheck(obj, member, "read from private field");
|
|
15
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
16
|
+
};
|
|
17
|
+
var __privateAdd = (obj, member, value) => {
|
|
18
|
+
if (member.has(obj))
|
|
19
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
20
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
21
|
+
};
|
|
22
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
23
|
+
__accessCheck(obj, member, "write to private field");
|
|
24
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
25
|
+
return value;
|
|
26
|
+
};
|
|
27
|
+
var __privateMethod = (obj, member, method) => {
|
|
28
|
+
__accessCheck(obj, member, "access private method");
|
|
29
|
+
return method;
|
|
30
|
+
};
|
|
31
|
+
var _isLocked, _onChangeCb, _onDestroyCb, _evaluate, evaluate_fn, _a;
|
|
32
|
+
class BodyScrollLocker {
|
|
33
|
+
constructor() {
|
|
34
|
+
__privateAdd(this, _isLocked, false);
|
|
35
|
+
__privateAdd(this, _onChangeCb, () => {
|
|
36
|
+
});
|
|
37
|
+
__privateAdd(this, _onDestroyCb, () => {
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
get isLocked() {
|
|
41
|
+
return __privateGet(this, _isLocked);
|
|
42
|
+
}
|
|
43
|
+
destroy() {
|
|
44
|
+
__privateGet(this, _onDestroyCb).call(this);
|
|
45
|
+
}
|
|
46
|
+
lock() {
|
|
47
|
+
__privateSet(this, _isLocked, true);
|
|
48
|
+
__privateGet(this, _onChangeCb).call(this);
|
|
49
|
+
}
|
|
50
|
+
unlock() {
|
|
51
|
+
__privateSet(this, _isLocked, false);
|
|
52
|
+
__privateGet(this, _onChangeCb).call(this);
|
|
53
|
+
}
|
|
54
|
+
onChange(cb) {
|
|
55
|
+
__privateSet(this, _onChangeCb, cb);
|
|
56
|
+
return () => __privateSet(this, _onChangeCb, () => {
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
onDestroy(cb) {
|
|
60
|
+
__privateSet(this, _onDestroyCb, cb);
|
|
61
|
+
return () => __privateSet(this, _onDestroyCb, () => {
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
_isLocked = new WeakMap();
|
|
66
|
+
_onChangeCb = new WeakMap();
|
|
67
|
+
_onDestroyCb = new WeakMap();
|
|
68
|
+
const BodyScrollLock = new (_a = class {
|
|
69
|
+
constructor() {
|
|
70
|
+
__privateAdd(this, _evaluate);
|
|
71
|
+
__publicField(this, "lockers", []);
|
|
72
|
+
}
|
|
73
|
+
getLocker() {
|
|
74
|
+
const locker = new BodyScrollLocker();
|
|
75
|
+
locker.onChange(() => __privateMethod(this, _evaluate, evaluate_fn).call(this));
|
|
76
|
+
locker.onDestroy(() => {
|
|
77
|
+
this.lockers = this.lockers.filter((current) => current !== locker);
|
|
78
|
+
__privateMethod(this, _evaluate, evaluate_fn).call(this);
|
|
79
|
+
});
|
|
80
|
+
this.lockers.push(locker);
|
|
81
|
+
return locker;
|
|
82
|
+
}
|
|
83
|
+
}, _evaluate = new WeakSet(), evaluate_fn = function() {
|
|
84
|
+
const willLock = this.lockers.filter((current) => current.isLocked).length > 0;
|
|
85
|
+
document.body.style.maxHeight = "100vh";
|
|
86
|
+
if (willLock && document.body.scrollHeight > document.body.clientHeight)
|
|
87
|
+
document.body.style.paddingRight = "10px";
|
|
88
|
+
document.body.style.overflow = willLock ? "hidden" : "auto";
|
|
89
|
+
if (!(willLock && document.body.scrollHeight > document.body.clientHeight))
|
|
90
|
+
document.body.style.paddingRight = "0px";
|
|
91
|
+
}, _a)();
|
|
92
|
+
function useBodyScrollLock(isLocked) {
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
const locker = BodyScrollLock.getLocker();
|
|
95
|
+
if (isLocked)
|
|
96
|
+
locker.lock();
|
|
97
|
+
else
|
|
98
|
+
locker.unlock();
|
|
99
|
+
return () => {
|
|
100
|
+
locker.destroy();
|
|
101
|
+
};
|
|
102
|
+
}, [isLocked]);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { useBodyScrollLock };
|
|
106
|
+
//# sourceMappingURL=useBodyScrollLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.js","sources":["../../src/hooks/useBodyScrollLock.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nclass BodyScrollLocker {\n #isLocked = false;\n #onChangeCb: () => unknown = () => {};\n #onDestroyCb: () => unknown = () => {};\n\n get isLocked() {\n return this.#isLocked;\n }\n\n destroy() {\n this.#onDestroyCb();\n }\n\n lock() {\n this.#isLocked = true;\n this.#onChangeCb();\n }\n\n unlock() {\n this.#isLocked = false;\n this.#onChangeCb();\n }\n\n onChange(cb: () => unknown) {\n this.#onChangeCb = cb;\n\n return () => (this.#onChangeCb = () => {});\n }\n\n onDestroy(cb: () => unknown) {\n this.#onDestroyCb = cb;\n\n return () => (this.#onDestroyCb = () => {});\n }\n}\n\nconst BodyScrollLock = new (class BodyScrollLockClass {\n lockers: BodyScrollLocker[] = [];\n #evaluate() {\n const willLock =\n this.lockers.filter((current) => current.isLocked).length > 0;\n\n document.body.style.maxHeight = '100vh';\n\n if (willLock && document.body.scrollHeight > document.body.clientHeight)\n document.body.style.paddingRight = '10px';\n\n document.body.style.overflow = willLock ? 'hidden' : 'auto';\n\n if (!(willLock && document.body.scrollHeight > document.body.clientHeight))\n document.body.style.paddingRight = '0px';\n }\n\n getLocker() {\n const locker = new BodyScrollLocker();\n locker.onChange(() => this.#evaluate());\n locker.onDestroy(() => {\n this.lockers = this.lockers.filter((current) => current !== locker);\n this.#evaluate();\n });\n this.lockers.push(locker);\n\n return locker;\n }\n})();\n\nexport function useBodyScrollLock(isLocked: boolean) {\n useEffect(() => {\n const locker = BodyScrollLock.getLocker();\n if (isLocked) locker.lock();\n else locker.unlock();\n\n return () => {\n locker.destroy();\n };\n }, [isLocked]);\n}\n"],"names":[],"mappings":"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"}
|