@apia/components 1.0.4 → 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,42 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { Box } from '@apia/theme';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { useIconsListStoreContext } from './store/context.js';
|
|
5
|
+
import { useIconRendererContext } from './context.js';
|
|
6
|
+
|
|
7
|
+
const Icon = (props) => {
|
|
8
|
+
const { useProps } = useIconsListStoreContext();
|
|
9
|
+
const ref = useProps("cell", {
|
|
10
|
+
columnIndex: props.colIndex,
|
|
11
|
+
rowIndex: props.rowIndex
|
|
12
|
+
});
|
|
13
|
+
const Renderer = useIconRendererContext();
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
Box,
|
|
16
|
+
{
|
|
17
|
+
ref,
|
|
18
|
+
role: "gridcell",
|
|
19
|
+
"data-id": props.id,
|
|
20
|
+
className: `iconsList__iconWrapper ${props.className ?? ""}`,
|
|
21
|
+
"aria-label": props.ariaLabel,
|
|
22
|
+
sx: useMemo(
|
|
23
|
+
() => ({
|
|
24
|
+
width: `${props.width}px`,
|
|
25
|
+
".iconsList__icon__image__wrapper": {
|
|
26
|
+
height: `${props.width - 4}px`
|
|
27
|
+
},
|
|
28
|
+
".iconsList__icon__image": {
|
|
29
|
+
maxHeight: `${props.width - 32}px`,
|
|
30
|
+
maxWidth: `${props.width - 32}px`
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
[props.width]
|
|
34
|
+
),
|
|
35
|
+
"aria-colindex": props.colIndex,
|
|
36
|
+
children: /* @__PURE__ */ jsx(Renderer, { ...props })
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { Icon };
|
|
42
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sources":["../../../src/components/IconsList/Icon.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\nimport { TIcon } from '.';\nimport { useMemo } from 'react';\nimport { useIconsListStoreContext } from './store/context';\nimport { useIconRendererContext } from './context';\n\nexport const Icon = (\n props: TIcon & { rowIndex: number; colIndex: number; width: number },\n) => {\n const { useProps } = useIconsListStoreContext();\n\n const ref = useProps<HTMLElement>('cell', {\n columnIndex: props.colIndex,\n rowIndex: props.rowIndex,\n });\n\n const Renderer = useIconRendererContext();\n\n return (\n <Box\n ref={ref}\n role=\"gridcell\"\n data-id={props.id}\n className={`iconsList__iconWrapper ${props.className ?? ''}`}\n aria-label={props.ariaLabel}\n sx={useMemo(\n () => ({\n width: `${props.width}px`,\n\n '.iconsList__icon__image__wrapper': {\n height: `${props.width - 4}px`,\n },\n\n '.iconsList__icon__image': {\n maxHeight: `${props.width - 32}px`,\n maxWidth: `${props.width - 32}px`,\n },\n }),\n [props.width],\n )}\n aria-colindex={props.colIndex}\n >\n <Renderer {...props} />\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;;;AAMa,MAAA,IAAA,GAAO,CAClB,KACG,KAAA;AACH,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,wBAAyB,EAAA,CAAA;AAE9C,EAAM,MAAA,GAAA,GAAM,SAAsB,MAAQ,EAAA;AAAA,IACxC,aAAa,KAAM,CAAA,QAAA;AAAA,IACnB,UAAU,KAAM,CAAA,QAAA;AAAA,GACjB,CAAA,CAAA;AAED,EAAA,MAAM,WAAW,sBAAuB,EAAA,CAAA;AAExC,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAK,EAAA,UAAA;AAAA,MACL,WAAS,KAAM,CAAA,EAAA;AAAA,MACf,SAAW,EAAA,CAAA,uBAAA,EAA0B,KAAM,CAAA,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MAC1D,cAAY,KAAM,CAAA,SAAA;AAAA,MAClB,EAAI,EAAA,OAAA;AAAA,QACF,OAAO;AAAA,UACL,KAAA,EAAO,CAAG,EAAA,KAAA,CAAM,KAAK,CAAA,EAAA,CAAA;AAAA,UAErB,kCAAoC,EAAA;AAAA,YAClC,MAAQ,EAAA,CAAA,EAAG,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,EAAA,CAAA;AAAA,WAC5B;AAAA,UAEA,yBAA2B,EAAA;AAAA,YACzB,SAAW,EAAA,CAAA,EAAG,KAAM,CAAA,KAAA,GAAQ,EAAE,CAAA,EAAA,CAAA;AAAA,YAC9B,QAAU,EAAA,CAAA,EAAG,KAAM,CAAA,KAAA,GAAQ,EAAE,CAAA,EAAA,CAAA;AAAA,WAC/B;AAAA,SACF,CAAA;AAAA,QACA,CAAC,MAAM,KAAK,CAAA;AAAA,OACd;AAAA,MACA,iBAAe,KAAM,CAAA,QAAA;AAAA,MAErB,QAAA,kBAAA,GAAA,CAAC,QAAU,EAAA,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA,KAAA;AAAA,GACvB,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { Box } from '@apia/theme';
|
|
3
|
+
import { Icon } from './Icon.js';
|
|
4
|
+
import { justToFillTheRow } from './util.js';
|
|
5
|
+
|
|
6
|
+
const IconWrapper = ({
|
|
7
|
+
icon,
|
|
8
|
+
iconWidth,
|
|
9
|
+
rowIndex,
|
|
10
|
+
colIndex
|
|
11
|
+
}) => {
|
|
12
|
+
return icon === justToFillTheRow ? /* @__PURE__ */ jsx(Box, { sx: { width: `${iconWidth}px` }, className: "fill__the__row" }) : /* @__PURE__ */ jsx(
|
|
13
|
+
Icon,
|
|
14
|
+
{
|
|
15
|
+
rowIndex,
|
|
16
|
+
colIndex,
|
|
17
|
+
width: iconWidth,
|
|
18
|
+
...icon
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { IconWrapper };
|
|
24
|
+
//# sourceMappingURL=IconWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconWrapper.js","sources":["../../../src/components/IconsList/IconWrapper.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\nimport { TIcon } from '.';\nimport { Icon } from './Icon';\nimport { justToFillTheRow } from './util';\n\nexport const IconWrapper = <P extends Record<string, unknown>>({\n icon,\n iconWidth,\n rowIndex,\n colIndex,\n}: {\n icon: string | TIcon<P>;\n iconWidth: number;\n rowIndex: number;\n colIndex: number;\n}) => {\n return icon === justToFillTheRow ? (\n <Box sx={{ width: `${iconWidth}px` }} className=\"fill__the__row\" />\n ) : (\n <Icon\n rowIndex={rowIndex}\n colIndex={colIndex}\n width={iconWidth}\n {...(icon as TIcon<P>)}\n />\n );\n};\n"],"names":[],"mappings":";;;;;AAKO,MAAM,cAAc,CAAoC;AAAA,EAC7D,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AACF,CAKM,KAAA;AACJ,EAAA,OAAO,IAAS,KAAA,gBAAA,mBACb,GAAA,CAAA,GAAA,EAAA,EAAI,EAAI,EAAA,EAAE,KAAO,EAAA,CAAA,EAAG,SAAS,CAAA,EAAA,CAAA,EAAQ,EAAA,SAAA,EAAU,kBAAiB,CAEjE,mBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAO,EAAA,SAAA;AAAA,MACN,GAAI,IAAA;AAAA,KAAA;AAAA,GACP,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { Box } from '@apia/theme';
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { useIconsListStoreContext } from './store/context.js';
|
|
5
|
+
import { isChild, noNaN } from '@apia/util';
|
|
6
|
+
import { ApiaUtil } from '../../objects/ApiaUtil/index.js';
|
|
7
|
+
|
|
8
|
+
function findIcon(icons, arg) {
|
|
9
|
+
const iconId = arg instanceof HTMLElement ? arg.closest(".iconsList__iconWrapper[data-id]")?.dataset?.id : arg;
|
|
10
|
+
if (iconId !== void 0) {
|
|
11
|
+
const icon = icons.find((current) => String(current.id) === iconId);
|
|
12
|
+
return icon ?? null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const KeyHandler = ({
|
|
16
|
+
children,
|
|
17
|
+
icons,
|
|
18
|
+
onIconClick,
|
|
19
|
+
onIconDoubleClick,
|
|
20
|
+
onIconGetDetails,
|
|
21
|
+
onIconKeyDown,
|
|
22
|
+
storeId
|
|
23
|
+
}) => {
|
|
24
|
+
const { actions, getState } = useIconsListStoreContext();
|
|
25
|
+
const showIconDetails = useCallback(
|
|
26
|
+
(icon) => {
|
|
27
|
+
if (onIconGetDetails) {
|
|
28
|
+
ApiaUtil.instance.tooltips.open({
|
|
29
|
+
attachToElement: () => document.querySelector(
|
|
30
|
+
`#${storeId} .iconsList__iconWrapper[data-id="${icon.id}"]`
|
|
31
|
+
),
|
|
32
|
+
children: onIconGetDetails(icon),
|
|
33
|
+
closeOnClick: false,
|
|
34
|
+
minSize: { width: 200, height: 0 }
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
[onIconGetDetails, storeId]
|
|
39
|
+
);
|
|
40
|
+
return /* @__PURE__ */ jsx(
|
|
41
|
+
Box,
|
|
42
|
+
{
|
|
43
|
+
className: "iconsList__keyHandler",
|
|
44
|
+
tabIndex: 0,
|
|
45
|
+
onFocus: useCallback(
|
|
46
|
+
(ev) => {
|
|
47
|
+
if (!isChild(
|
|
48
|
+
ev.target,
|
|
49
|
+
(current) => current.classList?.contains("iconsList__keyHandler")
|
|
50
|
+
))
|
|
51
|
+
return;
|
|
52
|
+
const icon = findIcon(icons, getState().focusedId);
|
|
53
|
+
if (icon) {
|
|
54
|
+
showIconDetails(icon);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
[getState, icons, showIconDetails]
|
|
58
|
+
),
|
|
59
|
+
onMouseDown: useCallback(
|
|
60
|
+
(ev) => {
|
|
61
|
+
if (ev.target instanceof HTMLElement) {
|
|
62
|
+
const colIndex = noNaN(
|
|
63
|
+
ev.target.closest("[aria-colindex]")?.ariaColIndex,
|
|
64
|
+
-1
|
|
65
|
+
);
|
|
66
|
+
const rowIndex = noNaN(
|
|
67
|
+
ev.target.closest("[aria-rowindex]")?.ariaRowIndex,
|
|
68
|
+
-1
|
|
69
|
+
);
|
|
70
|
+
if (colIndex >= 0 && rowIndex >= 0) {
|
|
71
|
+
actions.setFocused({
|
|
72
|
+
colIndex,
|
|
73
|
+
rowIndex
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
[actions]
|
|
79
|
+
),
|
|
80
|
+
onClick: useCallback(
|
|
81
|
+
(ev) => {
|
|
82
|
+
const icon = findIcon(icons, ev.target);
|
|
83
|
+
if (icon)
|
|
84
|
+
showIconDetails(icon);
|
|
85
|
+
if (onIconClick && icon) {
|
|
86
|
+
onIconClick(ev, icon);
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
[icons, onIconClick, showIconDetails]
|
|
90
|
+
),
|
|
91
|
+
onDoubleClick: useCallback(
|
|
92
|
+
(ev) => {
|
|
93
|
+
if (onIconDoubleClick) {
|
|
94
|
+
const icon = findIcon(icons, ev.target);
|
|
95
|
+
if (icon)
|
|
96
|
+
onIconDoubleClick(ev, icon);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
[icons, onIconDoubleClick]
|
|
100
|
+
),
|
|
101
|
+
onKeyDown: useCallback(
|
|
102
|
+
(ev) => {
|
|
103
|
+
function showIconByFocusChange() {
|
|
104
|
+
const icon = findIcon(icons, getState().focusedId);
|
|
105
|
+
if (icon)
|
|
106
|
+
showIconDetails(icon);
|
|
107
|
+
if (icon && onIconKeyDown) {
|
|
108
|
+
onIconKeyDown(ev, icon);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function shoutKeyDown() {
|
|
112
|
+
const icon = findIcon(icons, getState().focusedId);
|
|
113
|
+
if (icon && onIconKeyDown) {
|
|
114
|
+
onIconKeyDown(ev, icon);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
switch (ev.code) {
|
|
118
|
+
case "ArrowUp":
|
|
119
|
+
actions.arrowUp();
|
|
120
|
+
showIconByFocusChange();
|
|
121
|
+
break;
|
|
122
|
+
case "ArrowDown":
|
|
123
|
+
actions.arrowDown();
|
|
124
|
+
showIconByFocusChange();
|
|
125
|
+
break;
|
|
126
|
+
case "ArrowRight":
|
|
127
|
+
actions.arrowRight();
|
|
128
|
+
showIconByFocusChange();
|
|
129
|
+
break;
|
|
130
|
+
case "ArrowLeft":
|
|
131
|
+
actions.arrowLeft();
|
|
132
|
+
showIconByFocusChange();
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
shoutKeyDown();
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
[actions, getState, icons, onIconKeyDown, showIconDetails]
|
|
140
|
+
),
|
|
141
|
+
children
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export { KeyHandler };
|
|
147
|
+
//# sourceMappingURL=KeyHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyHandler.js","sources":["../../../src/components/IconsList/KeyHandler.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Box } from '@apia/theme';\nimport {\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n useCallback,\n} from 'react';\nimport { useIconsListStoreContext } from './store/context';\nimport { isChild, TId, noNaN } from '@apia/util';\nimport { TIcon, TIconsList } from './types';\nimport { ApiaUtil } from '../../objects/ApiaUtil';\n\nfunction findIcon(icons: TIcon[], arg: EventTarget | TId) {\n const iconId =\n arg instanceof HTMLElement\n ? arg.closest<HTMLElement>('.iconsList__iconWrapper[data-id]')?.dataset\n ?.id\n : arg;\n\n if (iconId !== undefined) {\n const icon = icons.find((current) => String(current.id) === iconId);\n\n return icon ?? null;\n }\n}\n\nexport const KeyHandler = ({\n children,\n icons,\n onIconClick,\n onIconDoubleClick,\n onIconGetDetails,\n onIconKeyDown,\n storeId,\n}: { children: ReactNode; storeId: TId } & Pick<\n TIconsList<any>,\n | 'icons'\n | 'onIconClick'\n | 'onIconDoubleClick'\n | 'onIconGetDetails'\n | 'onIconKeyDown'\n>) => {\n const { actions, getState } = useIconsListStoreContext();\n\n const showIconDetails = useCallback(\n (icon: TIcon) => {\n if (onIconGetDetails) {\n ApiaUtil.instance.tooltips.open({\n attachToElement: () =>\n document.querySelector(\n `#${storeId} .iconsList__iconWrapper[data-id=\"${icon.id}\"]`,\n ) as HTMLElement,\n children: onIconGetDetails(icon),\n closeOnClick: false,\n minSize: { width: 200, height: 0 },\n });\n }\n },\n [onIconGetDetails, storeId],\n );\n\n return (\n <Box\n className=\"iconsList__keyHandler\"\n tabIndex={0}\n onFocus={useCallback(\n (ev: FocusEvent) => {\n if (\n !isChild(ev.target as HTMLElement, (current) =>\n current.classList?.contains('iconsList__keyHandler'),\n )\n )\n return;\n const icon = findIcon(icons, getState().focusedId);\n if (icon) {\n showIconDetails(icon);\n }\n },\n [getState, icons, showIconDetails],\n )}\n onMouseDown={useCallback(\n (ev: MouseEvent) => {\n if (ev.target instanceof HTMLElement) {\n const colIndex = noNaN(\n ev.target.closest('[aria-colindex]')?.ariaColIndex,\n -1,\n );\n const rowIndex = noNaN(\n ev.target.closest('[aria-rowindex]')?.ariaRowIndex,\n -1,\n );\n\n if (colIndex >= 0 && rowIndex >= 0) {\n actions.setFocused({\n colIndex,\n rowIndex,\n });\n }\n }\n },\n [actions],\n )}\n onClick={useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n const icon = findIcon(icons, ev.target);\n\n if (icon) showIconDetails(icon);\n if (onIconClick && icon) {\n onIconClick(ev, icon);\n }\n },\n [icons, onIconClick, showIconDetails],\n )}\n onDoubleClick={useCallback(\n (ev: MouseEvent<HTMLElement>) => {\n if (onIconDoubleClick) {\n const icon = findIcon(icons, ev.target);\n if (icon) onIconDoubleClick(ev, icon);\n }\n },\n [icons, onIconDoubleClick],\n )}\n onKeyDown={useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n function showIconByFocusChange() {\n const icon = findIcon(icons, getState().focusedId);\n\n if (icon) showIconDetails(icon);\n if (icon && onIconKeyDown) {\n onIconKeyDown(ev, icon);\n }\n }\n\n function shoutKeyDown() {\n const icon = findIcon(icons, getState().focusedId);\n if (icon && onIconKeyDown) {\n onIconKeyDown(ev, icon);\n }\n }\n\n switch (ev.code) {\n case 'ArrowUp':\n actions.arrowUp();\n showIconByFocusChange();\n break;\n case 'ArrowDown':\n actions.arrowDown();\n showIconByFocusChange();\n break;\n case 'ArrowRight':\n actions.arrowRight();\n showIconByFocusChange();\n break;\n case 'ArrowLeft':\n actions.arrowLeft();\n showIconByFocusChange();\n break;\n default:\n shoutKeyDown();\n break;\n }\n },\n [actions, getState, icons, onIconKeyDown, showIconDetails],\n )}\n >\n {children}\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
const IconRendererContext = createContext(
|
|
4
|
+
null
|
|
5
|
+
);
|
|
6
|
+
function useIconRendererContext() {
|
|
7
|
+
const context = useContext(IconRendererContext);
|
|
8
|
+
if (!context)
|
|
9
|
+
throw new Error("There is no IconRendererContext");
|
|
10
|
+
return context;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { IconRendererContext, useIconRendererContext };
|
|
14
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/components/IconsList/context.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { TIconRenderer } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const IconRendererContext = createContext<TIconRenderer<any> | null>(\n null,\n);\n\nexport function useIconRendererContext<\n P extends Record<string, unknown> = Record<string, unknown>,\n>() {\n const context = useContext(IconRendererContext);\n\n if (!context) throw new Error('There is no IconRendererContext');\n\n return context as TIconRenderer<P>;\n}\n"],"names":[],"mappings":";;AAIO,MAAM,mBAAsB,GAAA,aAAA;AAAA,EACjC,IAAA;AACF,EAAA;AAEO,SAAS,sBAEZ,GAAA;AACF,EAAM,MAAA,OAAA,GAAU,WAAW,mBAAmB,CAAA,CAAA;AAE9C,EAAA,IAAI,CAAC,OAAA;AAAS,IAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA,CAAA;AAE/D,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ForwardedRef } from 'react';
|
|
3
|
+
import { TIconsList } from './types.js';
|
|
4
|
+
export { TIcon, TIconRenderer } from './types.js';
|
|
5
|
+
|
|
6
|
+
declare const IconsList: {
|
|
7
|
+
<P extends Record<string, unknown>>(props: TIconsList<P>, ref: ForwardedRef<HTMLDivElement>): React.JSX.Element;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { IconsList, TIconsList };
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { makeStyledComponent, Box, Grid } from '@apia/theme';
|
|
3
|
+
import { forwardRef, useMemo, useState, useCallback, useEffect } from 'react';
|
|
4
|
+
import { useStore } from './store/useStore.js';
|
|
5
|
+
import { uniqueId } from '../ListBox/common.js';
|
|
6
|
+
import { KeyHandler } from './KeyHandler.js';
|
|
7
|
+
import { styles } from './styles.js';
|
|
8
|
+
import { getBreakpoints, useStyles, getRowIcons } from './util.js';
|
|
9
|
+
import { IconWrapper } from './IconWrapper.js';
|
|
10
|
+
import { DefaultIconRenderer } from './renderers/DefaultIconRenderer.js';
|
|
11
|
+
import { IconRendererContext } from './context.js';
|
|
12
|
+
import { useLatest, usePrevious } from '@apia/util';
|
|
13
|
+
import { shallowEqual } from '@apia/store';
|
|
14
|
+
import { makeResponsiveComponent } from '../responsive/makeResponsiveComponent.js';
|
|
15
|
+
|
|
16
|
+
const IconsListNonForwarded = (props, ref) => {
|
|
17
|
+
const propsRef = useLatest(props);
|
|
18
|
+
let render = () => {
|
|
19
|
+
};
|
|
20
|
+
const previousProps = usePrevious(props);
|
|
21
|
+
if (!shallowEqual(props, previousProps.current)) {
|
|
22
|
+
setTimeout(() => render(), 0);
|
|
23
|
+
}
|
|
24
|
+
const ResponsiveContainer = useMemo(() => {
|
|
25
|
+
const iconWidth = propsRef.current.iconWidth ?? 100;
|
|
26
|
+
const minGap = propsRef.current.minHorizontalGap ?? 30;
|
|
27
|
+
const blockWidth = iconWidth + minGap;
|
|
28
|
+
const styledComponent = (styledComponentProps) => {
|
|
29
|
+
const { breakPoint, containerWidth } = styledComponentProps;
|
|
30
|
+
const [, doRender] = useState(true);
|
|
31
|
+
render = useCallback(() => doRender((current) => !current), []);
|
|
32
|
+
const storeId = useMemo(() => uniqueId("IconsList"), []);
|
|
33
|
+
const [actions, useProps, , , Context] = useStore({ storeId });
|
|
34
|
+
const rows = Math.ceil(propsRef.current.icons.length / breakPoint);
|
|
35
|
+
const sx = useStyles({
|
|
36
|
+
breakPoint,
|
|
37
|
+
containerWidth,
|
|
38
|
+
iconWidth: propsRef.current.iconWidth ?? 100,
|
|
39
|
+
verticalGap: propsRef.current.verticalGap,
|
|
40
|
+
removeHorizontalPadding: propsRef.current.removeHorizontalPadding
|
|
41
|
+
});
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
actions.recalculateIndexByResize();
|
|
44
|
+
}, [breakPoint]);
|
|
45
|
+
const IconRenderer = propsRef.current.iconRenderer ?? DefaultIconRenderer;
|
|
46
|
+
const gridRef = useProps("grid", {
|
|
47
|
+
columns: breakPoint,
|
|
48
|
+
iconsCount: propsRef.current.icons.length,
|
|
49
|
+
rows
|
|
50
|
+
});
|
|
51
|
+
return /* @__PURE__ */ jsx(IconRendererContext.Provider, { value: IconRenderer, children: /* @__PURE__ */ jsx(Context, { children: /* @__PURE__ */ jsx(
|
|
52
|
+
KeyHandler,
|
|
53
|
+
{
|
|
54
|
+
icons: propsRef.current.icons,
|
|
55
|
+
onIconClick: propsRef.current.onIconClick,
|
|
56
|
+
onIconDoubleClick: propsRef.current.onIconDoubleClick,
|
|
57
|
+
onIconGetDetails: propsRef.current.onIconGetDetails,
|
|
58
|
+
onIconKeyDown: propsRef.current.onIconKeyDown,
|
|
59
|
+
storeId,
|
|
60
|
+
children: /* @__PURE__ */ jsx(Box, { ref: gridRef, children: Array(rows).fill(1).map((_, i) => {
|
|
61
|
+
const icons = getRowIcons({
|
|
62
|
+
breakPoint,
|
|
63
|
+
i,
|
|
64
|
+
icons: propsRef.current.icons
|
|
65
|
+
});
|
|
66
|
+
return /* @__PURE__ */ jsx(
|
|
67
|
+
Grid,
|
|
68
|
+
{
|
|
69
|
+
"aria-rowindex": i + 1,
|
|
70
|
+
role: "row",
|
|
71
|
+
ref,
|
|
72
|
+
sx,
|
|
73
|
+
children: icons.map((current, j) => /* @__PURE__ */ jsx(
|
|
74
|
+
IconWrapper,
|
|
75
|
+
{
|
|
76
|
+
colIndex: j + 1,
|
|
77
|
+
icon: current,
|
|
78
|
+
iconWidth: propsRef.current.iconWidth ?? 100,
|
|
79
|
+
rowIndex: i + 1
|
|
80
|
+
},
|
|
81
|
+
uniqueId(String(j + i))
|
|
82
|
+
))
|
|
83
|
+
},
|
|
84
|
+
i
|
|
85
|
+
);
|
|
86
|
+
}) })
|
|
87
|
+
}
|
|
88
|
+
) }) });
|
|
89
|
+
};
|
|
90
|
+
const Component = makeResponsiveComponent({
|
|
91
|
+
breakPoints: getBreakpoints(blockWidth),
|
|
92
|
+
Component: makeStyledComponent(
|
|
93
|
+
"IconsList",
|
|
94
|
+
"layout.common.components.iconsList",
|
|
95
|
+
styles,
|
|
96
|
+
styledComponent
|
|
97
|
+
),
|
|
98
|
+
debounce: 50
|
|
99
|
+
});
|
|
100
|
+
return Component;
|
|
101
|
+
}, []);
|
|
102
|
+
if (previousProps.current?.iconWidth !== props.iconWidth) {
|
|
103
|
+
const iconWidth = props.iconWidth ?? 100;
|
|
104
|
+
const minGap = props.minHorizontalGap ?? 30;
|
|
105
|
+
const blockWidth = iconWidth + minGap;
|
|
106
|
+
setTimeout(
|
|
107
|
+
() => ResponsiveContainer.setBreakpoints.current(getBreakpoints(blockWidth)),
|
|
108
|
+
0
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
return /* @__PURE__ */ jsx(ResponsiveContainer, {});
|
|
112
|
+
};
|
|
113
|
+
IconsListNonForwarded.displayName = "IconsList";
|
|
114
|
+
const IconsList = forwardRef(
|
|
115
|
+
IconsListNonForwarded
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
export { DefaultIconRenderer, IconsList };
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/IconsList/index.tsx"],"sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport { Box, Grid } from '@apia/theme';\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { makeResponsiveComponent } from '../responsive';\nimport { useStore } from './store/useStore';\nimport { uniqueId } from '../ListBox/common';\nimport { makeStyledComponent } from '@apia/theme';\nimport { KeyHandler } from './KeyHandler';\nimport { styles } from './styles';\nimport { getBreakpoints, getRowIcons, useStyles } from './util';\nimport { IconWrapper } from './IconWrapper';\nimport { DefaultIconRenderer } from './renderers/DefaultIconRenderer';\nimport { TIconsList, TIcon, TIconRenderer } from './types';\nimport { IconRendererContext } from './context';\nimport { useLatest, usePrevious } from '@apia/util';\nimport { shallowEqual } from '@apia/store';\n\nexport type { TIcon, TIconRenderer, TIconsList };\n\nconst IconsListNonForwarded = <P extends Record<string, unknown>>(\n props: TIconsList<P>,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const propsRef = useLatest(props);\n let render: () => void = () => {};\n const previousProps = usePrevious(props);\n if (!shallowEqual(props, previousProps.current)) {\n setTimeout(() => render(), 0);\n }\n\n const ResponsiveContainer = useMemo(() => {\n const iconWidth = propsRef.current.iconWidth ?? 100;\n const minGap = propsRef.current.minHorizontalGap ?? 30;\n const blockWidth = iconWidth + minGap;\n const styledComponent = (styledComponentProps: unknown) => {\n const { breakPoint, containerWidth } = styledComponentProps as {\n breakPoint: number;\n containerWidth: number;\n };\n const [, doRender] = useState(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n render = useCallback(() => doRender((current) => !current), []);\n const storeId = useMemo(() => uniqueId('IconsList'), []);\n const [actions, useProps, , , Context] = useStore({ storeId });\n const rows = Math.ceil(propsRef.current.icons.length / breakPoint);\n const sx = useStyles({\n breakPoint,\n containerWidth,\n iconWidth: propsRef.current.iconWidth ?? 100,\n verticalGap: propsRef.current.verticalGap,\n removeHorizontalPadding: propsRef.current.removeHorizontalPadding,\n });\n\n useEffect(() => {\n actions.recalculateIndexByResize();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [breakPoint]);\n const IconRenderer = propsRef.current.iconRenderer ?? DefaultIconRenderer;\n const gridRef = useProps('grid', {\n columns: breakPoint,\n iconsCount: propsRef.current.icons.length,\n rows,\n });\n\n return (\n <IconRendererContext.Provider value={IconRenderer}>\n <Context>\n <KeyHandler\n icons={propsRef.current.icons}\n onIconClick={propsRef.current.onIconClick}\n onIconDoubleClick={propsRef.current.onIconDoubleClick}\n onIconGetDetails={propsRef.current.onIconGetDetails}\n onIconKeyDown={propsRef.current.onIconKeyDown}\n storeId={storeId}\n >\n <Box ref={gridRef}>\n {Array(rows)\n .fill(1)\n .map((_, i) => {\n const icons = getRowIcons({\n breakPoint,\n i,\n icons: propsRef.current.icons,\n });\n return (\n <Grid\n aria-rowindex={i + 1}\n role=\"row\"\n key={i}\n ref={ref}\n sx={sx}\n >\n {icons.map((current, j) => (\n <IconWrapper\n key={uniqueId(String(j + i))}\n colIndex={j + 1}\n icon={current}\n iconWidth={propsRef.current.iconWidth ?? 100}\n rowIndex={i + 1}\n />\n ))}\n </Grid>\n );\n })}\n </Box>\n </KeyHandler>\n </Context>\n </IconRendererContext.Provider>\n );\n };\n\n const Component = makeResponsiveComponent({\n breakPoints: getBreakpoints(blockWidth),\n Component: makeStyledComponent(\n 'IconsList',\n 'layout.common.components.iconsList',\n styles,\n styledComponent,\n ),\n debounce: 50,\n });\n\n return Component;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (previousProps.current?.iconWidth !== props.iconWidth) {\n const iconWidth = props.iconWidth ?? 100;\n const minGap = props.minHorizontalGap ?? 30;\n\n const blockWidth = iconWidth + minGap;\n setTimeout(\n () =>\n ResponsiveContainer.setBreakpoints.current(getBreakpoints(blockWidth)),\n 0,\n );\n }\n\n return <ResponsiveContainer />;\n};\n\nIconsListNonForwarded.displayName = 'IconsList';\n\nexport const IconsList = forwardRef(\n IconsListNonForwarded,\n) as typeof IconsListNonForwarded;\n\nexport { DefaultIconRenderer };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultIconRenderer.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsxs, jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { Icon } from '@apia/icons';
|
|
3
|
+
import { Box, Image } from '@apia/theme';
|
|
4
|
+
import { memo } from 'react';
|
|
5
|
+
|
|
6
|
+
const DefaultIconRendererNoMemo = (props) => {
|
|
7
|
+
if (!props.icon && !props.imageUrl) {
|
|
8
|
+
console.error({ props });
|
|
9
|
+
throw new Error("The icon has no imageUrl nor icon defined");
|
|
10
|
+
}
|
|
11
|
+
return /* @__PURE__ */ jsxs(Box, { title: props.label, className: "iconsList__icon__wrapper", children: [
|
|
12
|
+
/* @__PURE__ */ jsxs(Box, { className: "iconsList__icon__image__wrapper", children: [
|
|
13
|
+
props.imageUrl && /* @__PURE__ */ jsx(
|
|
14
|
+
Image,
|
|
15
|
+
{
|
|
16
|
+
className: "iconsList__icon__image",
|
|
17
|
+
src: props.imageUrl,
|
|
18
|
+
role: "none",
|
|
19
|
+
alt: ""
|
|
20
|
+
}
|
|
21
|
+
),
|
|
22
|
+
props.icon && /* @__PURE__ */ jsx(Icon, { icon: props.icon, title: props.ariaLabel })
|
|
23
|
+
] }),
|
|
24
|
+
/* @__PURE__ */ jsx(Box, { className: "iconsList__icon__label", children: props.label })
|
|
25
|
+
] });
|
|
26
|
+
};
|
|
27
|
+
const DefaultIconRenderer = memo(DefaultIconRendererNoMemo);
|
|
28
|
+
|
|
29
|
+
export { DefaultIconRenderer };
|
|
30
|
+
//# sourceMappingURL=DefaultIconRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultIconRenderer.js","sources":["../../../../src/components/IconsList/renderers/DefaultIconRenderer.tsx"],"sourcesContent":["import { Icon } from '@apia/icons';\nimport { TIconRenderer } from '../types';\nimport { Box, Image } from '@apia/theme';\nimport { memo } from 'react';\n\nconst DefaultIconRendererNoMemo: TIconRenderer = (props) => {\n if (!props.icon && !props.imageUrl) {\n console.error({ props });\n throw new Error('The icon has no imageUrl nor icon defined');\n }\n\n return (\n <Box title={props.label} className=\"iconsList__icon__wrapper\">\n <Box className=\"iconsList__icon__image__wrapper\">\n {props.imageUrl && (\n <Image\n className=\"iconsList__icon__image\"\n src={props.imageUrl}\n role=\"none\"\n alt=\"\"\n />\n )}\n {props.icon && <Icon icon={props.icon} title={props.ariaLabel} />}\n </Box>\n <Box className=\"iconsList__icon__label\">{props.label}</Box>\n </Box>\n );\n};\n\nexport const DefaultIconRenderer = memo(DefaultIconRendererNoMemo);\n"],"names":[],"mappings":";;;;;AAKA,MAAM,yBAAA,GAA2C,CAAC,KAAU,KAAA;AAC1D,EAAA,IAAI,CAAC,KAAA,CAAM,IAAQ,IAAA,CAAC,MAAM,QAAU,EAAA;AAClC,IAAQ,OAAA,CAAA,KAAA,CAAM,EAAE,KAAA,EAAO,CAAA,CAAA;AACvB,IAAM,MAAA,IAAI,MAAM,2CAA2C,CAAA,CAAA;AAAA,GAC7D;AAEA,EAAA,4BACG,GAAI,EAAA,EAAA,KAAA,EAAO,KAAM,CAAA,KAAA,EAAO,WAAU,0BACjC,EAAA,QAAA,EAAA;AAAA,oBAAC,IAAA,CAAA,GAAA,EAAA,EAAI,WAAU,iCACZ,EAAA,QAAA,EAAA;AAAA,MAAA,KAAA,CAAM,QACL,oBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAU,EAAA,wBAAA;AAAA,UACV,KAAK,KAAM,CAAA,QAAA;AAAA,UACX,IAAK,EAAA,MAAA;AAAA,UACL,GAAI,EAAA,EAAA;AAAA,SAAA;AAAA,OACN;AAAA,MAED,KAAA,CAAM,wBAAS,GAAA,CAAA,IAAA,EAAA,EAAK,MAAM,KAAM,CAAA,IAAA,EAAM,KAAO,EAAA,KAAA,CAAM,SAAW,EAAA,CAAA;AAAA,KACjE,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,GAAA,EAAA,EAAI,SAAU,EAAA,wBAAA,EAA0B,gBAAM,KAAM,EAAA,CAAA;AAAA,GACvD,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,mBAAA,GAAsB,KAAK,yBAAyB;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
const StoreContext = createContext({});
|
|
4
|
+
const useIconsListStoreContext = () => {
|
|
5
|
+
return useContext(StoreContext);
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { StoreContext, useIconsListStoreContext };
|
|
9
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../../src/components/IconsList/store/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport {\n TActionsMap,\n TDistinctorProperties,\n TGetState,\n TRegisterStateChangeListener,\n TUseProperties,\n} from '@apia/dom-store';\nimport { TCellDistinctions, TGridDistinctions, TState } from './types';\nimport { operations } from './operations';\n\nexport type TStoreContext = {\n actions: TActionsMap<TState, typeof operations>;\n useProps: TUseProperties<\n TState,\n {\n cell: [\n (\n distinctions: TCellDistinctions,\n state: TState,\n ) => TDistinctorProperties,\n ];\n grid: [\n (\n distinctions: TGridDistinctions,\n state: TState,\n ) => TDistinctorProperties,\n ];\n }\n >;\n getState: TGetState<TState>;\n registerStateChangeListener: TRegisterStateChangeListener<TState>;\n};\n\nexport const StoreContext = createContext<TStoreContext>({} as TStoreContext);\n\nexport const useIconsListStoreContext = () => {\n return useContext(StoreContext);\n};\n"],"names":[],"mappings":";;AAkCa,MAAA,YAAA,GAAe,aAA6B,CAAA,EAAmB,EAAA;AAErE,MAAM,2BAA2B,MAAM;AAC5C,EAAA,OAAO,WAAW,YAAY,CAAA,CAAA;AAChC;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const distinctors = {
|
|
2
|
+
grid: [
|
|
3
|
+
(distinctors2, state) => {
|
|
4
|
+
return {
|
|
5
|
+
etc: {
|
|
6
|
+
"aria-activedescendant": distinctors2.iconsCount > 0 ? `${state.storeId}__${state.focusedRow}__${state.focusedColumn}` : void 0,
|
|
7
|
+
role: "grid",
|
|
8
|
+
"aria-rowcount": distinctors2.rows,
|
|
9
|
+
"aria-colcount": distinctors2.columns,
|
|
10
|
+
id: state.storeId
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
cell: [
|
|
16
|
+
(distinctions, state) => {
|
|
17
|
+
const isFocused = state.focusedColumn === distinctions.columnIndex && state.focusedRow === distinctions.rowIndex;
|
|
18
|
+
return {
|
|
19
|
+
etc: {
|
|
20
|
+
id: `${state.storeId}__${distinctions.rowIndex}__${distinctions.columnIndex}`
|
|
21
|
+
},
|
|
22
|
+
classList: {
|
|
23
|
+
add: isFocused ? ["focused"] : void 0,
|
|
24
|
+
remove: isFocused ? void 0 : ["focused"]
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
(_, state) => {
|
|
29
|
+
const focusedCell = document.querySelector(
|
|
30
|
+
`#${state.storeId} [aria-rowindex="${state.focusedRow}"] [aria-colindex="${state.focusedColumn}"]`
|
|
31
|
+
);
|
|
32
|
+
focusedCell?.scrollIntoView({
|
|
33
|
+
behavior: "instant",
|
|
34
|
+
block: "nearest",
|
|
35
|
+
inline: "nearest"
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { distinctors };
|
|
42
|
+
//# sourceMappingURL=distinctors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distinctors.js","sources":["../../../../src/components/IconsList/store/distinctors.ts"],"sourcesContent":["import { TDistinctors } from '@apia/dom-store';\nimport { TCellDistinctions, TGridDistinctions, TState } from './types';\n\nexport const distinctors: TDistinctors<TState> = {\n grid: [\n (distinctors: TGridDistinctions, state) => {\n return {\n etc: {\n 'aria-activedescendant':\n distinctors.iconsCount > 0\n ? `${state.storeId}__${state.focusedRow}__${state.focusedColumn}`\n : undefined,\n role: 'grid',\n 'aria-rowcount': distinctors.rows,\n 'aria-colcount': distinctors.columns,\n id: state.storeId,\n },\n };\n },\n ],\n cell: [\n (distinctions: TCellDistinctions, state) => {\n const isFocused =\n state.focusedColumn === distinctions.columnIndex &&\n state.focusedRow === distinctions.rowIndex;\n return {\n etc: {\n id: `${state.storeId}__${distinctions.rowIndex}__${distinctions.columnIndex}`,\n },\n classList: {\n add: isFocused ? ['focused'] : undefined,\n remove: isFocused ? undefined : ['focused'],\n },\n };\n },\n (_: TState, state: TState) => {\n const focusedCell = document.querySelector(\n `#${state.storeId} [aria-rowindex=\"${state.focusedRow}\"] [aria-colindex=\"${state.focusedColumn}\"]`,\n );\n\n focusedCell?.scrollIntoView({\n behavior: 'instant',\n block: 'nearest',\n inline: 'nearest',\n });\n },\n ],\n};\n"],"names":["distinctors"],"mappings":"AAGO,MAAM,WAAoC,GAAA;AAAA,EAC/C,IAAM,EAAA;AAAA,IACJ,CAACA,cAAgC,KAAU,KAAA;AACzC,MAAO,OAAA;AAAA,QACL,GAAK,EAAA;AAAA,UACH,uBACEA,EAAAA,YAAAA,CAAY,UAAa,GAAA,CAAA,GACrB,CAAG,EAAA,KAAA,CAAM,OAAO,CAAA,EAAA,EAAK,KAAM,CAAA,UAAU,CAAK,EAAA,EAAA,KAAA,CAAM,aAAa,CAC7D,CAAA,GAAA,KAAA,CAAA;AAAA,UACN,IAAM,EAAA,MAAA;AAAA,UACN,iBAAiBA,YAAY,CAAA,IAAA;AAAA,UAC7B,iBAAiBA,YAAY,CAAA,OAAA;AAAA,UAC7B,IAAI,KAAM,CAAA,OAAA;AAAA,SACZ;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACF;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,CAAC,cAAiC,KAAU,KAAA;AAC1C,MAAA,MAAM,YACJ,KAAM,CAAA,aAAA,KAAkB,aAAa,WACrC,IAAA,KAAA,CAAM,eAAe,YAAa,CAAA,QAAA,CAAA;AACpC,MAAO,OAAA;AAAA,QACL,GAAK,EAAA;AAAA,UACH,EAAA,EAAI,GAAG,KAAM,CAAA,OAAO,KAAK,YAAa,CAAA,QAAQ,CAAK,EAAA,EAAA,YAAA,CAAa,WAAW,CAAA,CAAA;AAAA,SAC7E;AAAA,QACA,SAAW,EAAA;AAAA,UACT,GAAK,EAAA,SAAA,GAAY,CAAC,SAAS,CAAI,GAAA,KAAA,CAAA;AAAA,UAC/B,MAAQ,EAAA,SAAA,GAAY,KAAY,CAAA,GAAA,CAAC,SAAS,CAAA;AAAA,SAC5C;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA,CAAC,GAAW,KAAkB,KAAA;AAC5B,MAAA,MAAM,cAAc,QAAS,CAAA,aAAA;AAAA,QAC3B,CAAA,CAAA,EAAI,MAAM,OAAO,CAAA,iBAAA,EAAoB,MAAM,UAAU,CAAA,mBAAA,EAAsB,MAAM,aAAa,CAAA,EAAA,CAAA;AAAA,OAChG,CAAA;AAEA,MAAA,WAAA,EAAa,cAAe,CAAA;AAAA,QAC1B,QAAU,EAAA,SAAA;AAAA,QACV,KAAO,EAAA,SAAA;AAAA,QACP,MAAQ,EAAA,SAAA;AAAA,OACT,CAAA,CAAA;AAAA,KACH;AAAA,GACF;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keysMaker.js","sources":["../../../../src/components/IconsList/store/keysMaker.ts"],"sourcesContent":["import { TDistinctors, TKeysMaker } from '@apia/dom-store';\nimport { TState } from './types';\n\nexport const makeCellKey = (distinctions: {\n columnIndex: number;\n rowIndex: number;\n}) => `${distinctions.columnIndex}__${distinctions.rowIndex}`;\n\nexport const keysMakers: TKeysMaker<TState, TDistinctors<TState>> = {\n cell: makeCellKey,\n grid: () => 'grid',\n};\n"],"names":[],"mappings":"AAGa,MAAA,WAAA,GAAc,CAAC,YAGtB,KAAA,CAAA,EAAG,aAAa,WAAW,CAAA,EAAA,EAAK,aAAa,QAAQ,CAAA,EAAA;AAEpD,MAAM,UAAuD,GAAA;AAAA,EAClE,IAAM,EAAA,WAAA;AAAA,EACN,MAAM,MAAM,MAAA;AACd;;;;"}
|