@ncds/ui-admin 1.8.28-alpha.0 → 1.8.28-alpha.2
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/cjs/assets/scripts/notification/const/icons.js +1 -2
- package/dist/cjs/assets/scripts/notification/const/index.js +0 -30
- package/dist/cjs/assets/scripts/notification/const/sizes.js +5 -5
- package/dist/cjs/assets/scripts/notification/index.js +0 -7
- package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +5 -4
- package/dist/cjs/assets/scripts/tooltip/const/classNames.js +29 -0
- package/dist/cjs/assets/scripts/tooltip/const/constants.js +58 -0
- package/dist/cjs/assets/scripts/tooltip/const/icons.js +15 -0
- package/dist/cjs/assets/scripts/tooltip/const/index.js +117 -0
- package/dist/cjs/assets/scripts/tooltip/const/templates.js +67 -0
- package/dist/cjs/assets/scripts/tooltip/const/types.js +5 -0
- package/dist/cjs/assets/scripts/utils/sanitize.js +0 -13
- package/dist/cjs/src/__tests__/helpers/dom.js +14 -0
- package/dist/cjs/src/__tests__/helpers/fileInput.js +92 -0
- package/dist/cjs/src/__tests__/helpers/fixedToday.js +17 -0
- package/dist/cjs/src/__tests__/helpers/matchMedia.js +50 -0
- package/dist/cjs/src/__tests__/helpers/rect.js +25 -0
- package/dist/cjs/src/components/action/button/__tests__/Button.test.js +260 -0
- package/dist/cjs/src/components/action/button-group/__tests__/ButtonGroup.test.js +267 -0
- package/dist/cjs/src/components/data-display/data-grid/__tests__/DataGrid.test.js +350 -0
- package/dist/cjs/src/components/data-display/table/__tests__/Table.dnd.dragCell.test.js +320 -0
- package/dist/cjs/src/components/data-display/table/__tests__/Table.dnd.test.js +313 -0
- package/dist/cjs/src/components/data-display/table/__tests__/Table.scroll.test.js +194 -0
- package/dist/cjs/src/components/data-display/table/__tests__/Table.test.js +382 -0
- package/dist/cjs/src/components/data-display/table/__tests__/dnd-context.test.js +61 -0
- package/dist/cjs/src/components/data-display/table/__tests__/dnd-preview.test.js +230 -0
- package/dist/cjs/src/components/data-display/table/__tests__/tableDndTestUtils.js +266 -0
- package/dist/cjs/src/components/data-display/table/__tests__/tableTestUtils.js +48 -0
- package/dist/cjs/src/components/data-display/table/__tests__/useTableScrollbars.ownership.test.js +362 -0
- package/dist/cjs/src/components/data-display/table/useTableScrollbars.js +0 -24
- package/dist/cjs/src/components/feedback-and-status/badge/__tests__/Badge.test.js +189 -0
- package/dist/cjs/src/components/feedback-and-status/badge-group/__tests__/BadgeGroup.test.js +119 -0
- package/dist/cjs/src/components/feedback-and-status/carousel-arrow/__tests__/CarouselArrow.test.js +94 -0
- package/dist/cjs/src/components/feedback-and-status/carousel-number-group/__tests__/CarouselNumberGroup.test.js +64 -0
- package/dist/cjs/src/components/feedback-and-status/empty-state/__tests__/EmptyState.test.js +126 -0
- package/dist/cjs/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.js +277 -0
- package/dist/cjs/src/components/feedback-and-status/progress-bar/__tests__/useProgressBar.test.js +249 -0
- package/dist/cjs/src/components/feedback-and-status/progress-bar/__tests__/utils.test.js +22 -0
- package/dist/cjs/src/components/feedback-and-status/progress-circle/__tests__/ProgressCircle.test.js +102 -0
- package/dist/cjs/src/components/feedback-and-status/spinner/__tests__/Spinner.test.js +76 -0
- package/dist/cjs/src/components/feedback-and-status/tag/__tests__/Tag.test.js +604 -0
- package/dist/cjs/src/components/forms-and-input/checkbox/__tests__/Checkbox.test.js +213 -0
- package/dist/cjs/src/components/forms-and-input/combo-box/ComboBox.js +2 -2
- package/dist/cjs/src/components/forms-and-input/combo-box/__tests__/ComboBox.interaction.test.js +442 -0
- package/dist/cjs/src/components/forms-and-input/combo-box/__tests__/ComboBox.register.test.js +153 -0
- package/dist/cjs/src/components/forms-and-input/combo-box/__tests__/comboBoxTestUtils.js +92 -0
- package/dist/cjs/src/components/forms-and-input/date-picker/__tests__/DatePicker.input.test.js +546 -0
- package/dist/cjs/src/components/forms-and-input/date-picker/__tests__/DatePicker.position.test.js +550 -0
- package/dist/cjs/src/components/forms-and-input/date-picker/__tests__/utils.test.js +34 -0
- package/dist/cjs/src/components/forms-and-input/file-input/__tests__/FileInput.select.test.js +266 -0
- package/dist/cjs/src/components/forms-and-input/image-file-input/__tests__/ImageFileInput.select.test.js +416 -0
- package/dist/cjs/src/components/forms-and-input/input-base/__tests__/InputBase.slots.test.js +236 -0
- package/dist/cjs/src/components/forms-and-input/number-input/__tests__/NumberInput.test.js +570 -0
- package/dist/cjs/src/components/forms-and-input/password-input/__tests__/PasswordInput.toggle.test.js +113 -0
- package/dist/cjs/src/components/forms-and-input/radio/__tests__/Radio.test.js +57 -0
- package/dist/cjs/src/components/forms-and-input/range-date-picker/__tests__/RangeDatePicker.test.js +275 -0
- package/dist/cjs/src/components/forms-and-input/range-date-picker-with-buttons/__tests__/RangeDatePickerWithButtons.test.js +235 -2
- package/dist/cjs/src/components/forms-and-input/select/__tests__/Select.test.js +275 -0
- package/dist/cjs/src/components/forms-and-input/select-box/SelectBox.js +2 -2
- package/dist/cjs/src/components/forms-and-input/select-box/__tests__/SelectBox.portal.test.js +371 -0
- package/dist/cjs/src/components/forms-and-input/select-box/__tests__/SelectBox.test.js +1335 -0
- package/dist/cjs/src/components/forms-and-input/slider/__tests__/Slider.test.js +390 -0
- package/dist/cjs/src/components/forms-and-input/switch/__tests__/Switch.test.js +317 -0
- package/dist/cjs/src/components/forms-and-input/textarea/__tests__/Textarea.test.js +255 -0
- package/dist/cjs/src/components/forms-and-input/textarea/__tests__/Textarea.unmount.test.js +158 -0
- package/dist/cjs/src/components/forms-and-input/toggle/__tests__/Toggle.test.js +138 -0
- package/dist/cjs/src/components/image-and-icons/featured-icon/__tests__/FeaturedIcon.test.js +67 -0
- package/dist/cjs/src/components/layout/block-container/__tests__/BlockContainer.test.js +59 -0
- package/dist/cjs/src/components/layout/block-header/__tests__/BlockHeader.test.js +169 -0
- package/dist/cjs/src/components/layout/block-header/__tests__/SubTitle.test.js +77 -0
- package/dist/cjs/src/components/layout/divider/__tests__/Divider.test.js +65 -0
- package/dist/cjs/src/components/layout/ncua-scope/__tests__/NcuaScope.test.js +146 -0
- package/dist/cjs/src/components/layout/page-title/__tests__/PageTitle.test.js +164 -0
- package/dist/cjs/src/components/navigation/context-tab/__tests__/ContextTab.test.js +616 -0
- package/dist/cjs/src/components/navigation/context-tab/__tests__/useContextTabScroll.test.js +592 -0
- package/dist/cjs/src/components/navigation/horizontal-tab/__tests__/HorizontalTab.test.js +211 -0
- package/dist/cjs/src/components/navigation/pagination/__tests__/Pagination.navigation.test.js +285 -0
- package/dist/cjs/src/components/navigation/vertical-tab/__tests__/VerticalTab.test.js +255 -0
- package/dist/cjs/src/components/overlays/dropdown/__tests__/Dropdown.dnd.test.js +558 -0
- package/dist/cjs/src/components/overlays/dropdown/__tests__/Dropdown.test.js +1020 -0
- package/dist/cjs/src/components/overlays/dropdown/__tests__/dropdownTestUtils.js +24 -0
- package/dist/cjs/src/components/overlays/dropdown/__tests__/utils.test.js +56 -0
- package/dist/cjs/src/components/overlays/modal/__tests__/Modal.test.js +426 -0
- package/dist/cjs/src/components/overlays/notification/__tests__/FloatingNotification.test.js +284 -0
- package/dist/cjs/src/components/overlays/notification/__tests__/MessageNotification.test.js +12 -0
- package/dist/cjs/src/components/overlays/postcode-search-modal/PostcodeSearchModalTip.js +2 -2
- package/dist/cjs/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.viewport.test.js +141 -0
- package/dist/cjs/src/components/overlays/tooltip/__tests__/Tooltip.test.js +829 -0
- package/dist/cjs/src/components/tab/__tests__/TabButton.test.js +252 -0
- package/dist/cjs/src/hooks/__tests__/useCallbackRef.test.js +152 -0
- package/dist/cjs/src/hooks/__tests__/useMediaQuery.test.js +119 -0
- package/dist/cjs/src/hooks/__tests__/usePortalState.ssr.test.js +25 -0
- package/dist/cjs/src/hooks/dropdown/__tests__/dropdownHooks.test.js +168 -0
- package/dist/cjs/src/types/component-meta.js +0 -4
- package/dist/cjs/src/utils/__tests__/date-picker.test.js +105 -0
- package/dist/cjs/src/utils/dropdown/__tests__/dropdownUtils.test.js +24 -0
- package/dist/cjs/src/utils/dropdown/__tests__/multiSelect.test.js +49 -0
- package/dist/cjs/src/utils/dropdown/multiSelect.js +1 -6
- package/dist/cjs/src/utils/portal-position/__tests__/portalPosition.nullAnchor.test.js +67 -0
- package/dist/cjs/vitest.config.js +16 -10
- package/dist/esm/assets/scripts/notification/const/icons.js +0 -1
- package/dist/esm/assets/scripts/notification/const/index.js +2 -2
- package/dist/esm/assets/scripts/notification/const/sizes.js +4 -4
- package/dist/esm/assets/scripts/notification/index.js +1 -1
- package/dist/esm/assets/scripts/shared/ButtonCloseX.js +6 -3
- package/dist/esm/assets/scripts/tooltip/const/classNames.js +23 -0
- package/dist/esm/assets/scripts/tooltip/const/constants.js +52 -0
- package/dist/esm/assets/scripts/tooltip/const/icons.js +9 -0
- package/dist/esm/assets/scripts/tooltip/const/index.js +5 -0
- package/dist/esm/assets/scripts/tooltip/const/templates.js +60 -0
- package/dist/esm/assets/scripts/tooltip/const/types.js +1 -0
- package/dist/esm/assets/scripts/utils/sanitize.js +0 -12
- package/dist/esm/src/__tests__/helpers/dom.js +8 -0
- package/dist/esm/src/__tests__/helpers/fileInput.js +78 -0
- package/dist/esm/src/__tests__/helpers/fixedToday.js +10 -0
- package/dist/esm/src/__tests__/helpers/matchMedia.js +44 -0
- package/dist/esm/src/__tests__/helpers/rect.js +18 -0
- package/dist/esm/src/components/action/button/__tests__/Button.test.js +257 -0
- package/dist/esm/src/components/action/button-group/__tests__/ButtonGroup.test.js +264 -0
- package/dist/esm/src/components/data-display/data-grid/__tests__/DataGrid.test.js +347 -0
- package/dist/esm/src/components/data-display/table/__tests__/Table.dnd.dragCell.test.js +317 -0
- package/dist/esm/src/components/data-display/table/__tests__/Table.dnd.test.js +310 -0
- package/dist/esm/src/components/data-display/table/__tests__/Table.scroll.test.js +191 -0
- package/dist/esm/src/components/data-display/table/__tests__/Table.test.js +379 -0
- package/dist/esm/src/components/data-display/table/__tests__/dnd-context.test.js +58 -0
- package/dist/esm/src/components/data-display/table/__tests__/dnd-preview.test.js +227 -0
- package/dist/esm/src/components/data-display/table/__tests__/tableDndTestUtils.js +240 -0
- package/dist/esm/src/components/data-display/table/__tests__/tableTestUtils.js +40 -0
- package/dist/esm/src/components/data-display/table/__tests__/useTableScrollbars.ownership.test.js +359 -0
- package/dist/esm/src/components/data-display/table/useTableScrollbars.js +1 -1
- package/dist/esm/src/components/feedback-and-status/badge/__tests__/Badge.test.js +186 -0
- package/dist/esm/src/components/feedback-and-status/badge-group/__tests__/BadgeGroup.test.js +116 -0
- package/dist/esm/src/components/feedback-and-status/carousel-arrow/__tests__/CarouselArrow.test.js +91 -0
- package/dist/esm/src/components/feedback-and-status/carousel-number-group/__tests__/CarouselNumberGroup.test.js +61 -0
- package/dist/esm/src/components/feedback-and-status/empty-state/__tests__/EmptyState.test.js +123 -0
- package/dist/esm/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.js +274 -0
- package/dist/esm/src/components/feedback-and-status/progress-bar/__tests__/useProgressBar.test.js +246 -0
- package/dist/esm/src/components/feedback-and-status/progress-bar/__tests__/utils.test.js +19 -0
- package/dist/esm/src/components/feedback-and-status/progress-circle/__tests__/ProgressCircle.test.js +99 -0
- package/dist/esm/src/components/feedback-and-status/spinner/__tests__/Spinner.test.js +73 -0
- package/dist/esm/src/components/feedback-and-status/tag/__tests__/Tag.test.js +601 -0
- package/dist/esm/src/components/forms-and-input/checkbox/__tests__/Checkbox.test.js +210 -0
- package/dist/esm/src/components/forms-and-input/combo-box/ComboBox.js +1 -1
- package/dist/esm/src/components/forms-and-input/combo-box/__tests__/ComboBox.interaction.test.js +439 -0
- package/dist/esm/src/components/forms-and-input/combo-box/__tests__/ComboBox.register.test.js +151 -0
- package/dist/esm/src/components/forms-and-input/combo-box/__tests__/comboBoxTestUtils.js +77 -0
- package/dist/esm/src/components/forms-and-input/date-picker/__tests__/DatePicker.input.test.js +544 -0
- package/dist/esm/src/components/forms-and-input/date-picker/__tests__/DatePicker.position.test.js +546 -0
- package/dist/esm/src/components/forms-and-input/date-picker/__tests__/utils.test.js +31 -0
- package/dist/esm/src/components/forms-and-input/file-input/__tests__/FileInput.select.test.js +263 -0
- package/dist/esm/src/components/forms-and-input/image-file-input/__tests__/ImageFileInput.select.test.js +413 -0
- package/dist/esm/src/components/forms-and-input/input-base/__tests__/InputBase.slots.test.js +233 -0
- package/dist/esm/src/components/forms-and-input/number-input/__tests__/NumberInput.test.js +567 -0
- package/dist/esm/src/components/forms-and-input/password-input/__tests__/PasswordInput.toggle.test.js +110 -0
- package/dist/esm/src/components/forms-and-input/radio/__tests__/Radio.test.js +54 -0
- package/dist/esm/src/components/forms-and-input/range-date-picker/__tests__/RangeDatePicker.test.js +275 -0
- package/dist/esm/src/components/forms-and-input/range-date-picker-with-buttons/__tests__/RangeDatePickerWithButtons.test.js +235 -1
- package/dist/esm/src/components/forms-and-input/select/__tests__/Select.test.js +272 -0
- package/dist/esm/src/components/forms-and-input/select-box/SelectBox.js +1 -1
- package/dist/esm/src/components/forms-and-input/select-box/__tests__/SelectBox.portal.test.js +368 -0
- package/dist/esm/src/components/forms-and-input/select-box/__tests__/SelectBox.test.js +1332 -0
- package/dist/esm/src/components/forms-and-input/slider/__tests__/Slider.test.js +387 -0
- package/dist/esm/src/components/forms-and-input/switch/__tests__/Switch.test.js +314 -0
- package/dist/esm/src/components/forms-and-input/textarea/__tests__/Textarea.test.js +252 -0
- package/dist/esm/src/components/forms-and-input/textarea/__tests__/Textarea.unmount.test.js +155 -0
- package/dist/esm/src/components/forms-and-input/toggle/__tests__/Toggle.test.js +135 -0
- package/dist/esm/src/components/image-and-icons/featured-icon/__tests__/FeaturedIcon.test.js +64 -0
- package/dist/esm/src/components/layout/block-container/__tests__/BlockContainer.test.js +56 -0
- package/dist/esm/src/components/layout/block-header/__tests__/BlockHeader.test.js +166 -0
- package/dist/esm/src/components/layout/block-header/__tests__/SubTitle.test.js +74 -0
- package/dist/esm/src/components/layout/divider/__tests__/Divider.test.js +62 -0
- package/dist/esm/src/components/layout/ncua-scope/__tests__/NcuaScope.test.js +144 -0
- package/dist/esm/src/components/layout/page-title/__tests__/PageTitle.test.js +161 -0
- package/dist/esm/src/components/navigation/context-tab/__tests__/ContextTab.test.js +613 -0
- package/dist/esm/src/components/navigation/context-tab/__tests__/useContextTabScroll.test.js +589 -0
- package/dist/esm/src/components/navigation/horizontal-tab/__tests__/HorizontalTab.test.js +209 -0
- package/dist/esm/src/components/navigation/pagination/__tests__/Pagination.navigation.test.js +282 -0
- package/dist/esm/src/components/navigation/vertical-tab/__tests__/VerticalTab.test.js +252 -0
- package/dist/esm/src/components/overlays/dropdown/__tests__/Dropdown.dnd.test.js +556 -0
- package/dist/esm/src/components/overlays/dropdown/__tests__/Dropdown.test.js +1017 -0
- package/dist/esm/src/components/overlays/dropdown/__tests__/dropdownTestUtils.js +15 -0
- package/dist/esm/src/components/overlays/dropdown/__tests__/utils.test.js +57 -1
- package/dist/esm/src/components/overlays/modal/__tests__/Modal.test.js +423 -0
- package/dist/esm/src/components/overlays/notification/__tests__/FloatingNotification.test.js +281 -0
- package/dist/esm/src/components/overlays/notification/__tests__/MessageNotification.test.js +12 -0
- package/dist/esm/src/components/overlays/postcode-search-modal/PostcodeSearchModalTip.js +1 -1
- package/dist/esm/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.viewport.test.js +139 -0
- package/dist/esm/src/components/overlays/tooltip/__tests__/Tooltip.test.js +826 -0
- package/dist/esm/src/components/tab/__tests__/TabButton.test.js +249 -0
- package/dist/esm/src/hooks/__tests__/useCallbackRef.test.js +149 -0
- package/dist/esm/src/hooks/__tests__/useMediaQuery.test.js +116 -0
- package/dist/esm/src/hooks/__tests__/usePortalState.ssr.test.js +22 -0
- package/dist/esm/src/hooks/dropdown/__tests__/dropdownHooks.test.js +165 -0
- package/dist/esm/src/types/component-meta.js +0 -4
- package/dist/esm/src/utils/__tests__/date-picker.test.js +107 -2
- package/dist/esm/src/utils/dropdown/__tests__/dropdownUtils.test.js +24 -0
- package/dist/esm/src/utils/dropdown/__tests__/multiSelect.test.js +46 -0
- package/dist/esm/src/utils/dropdown/multiSelect.js +5 -5
- package/dist/esm/src/utils/portal-position/__tests__/portalPosition.nullAnchor.test.js +64 -0
- package/dist/esm/vitest.config.js +16 -10
- package/dist/temp/assets/scripts/notification/const/icons.d.ts +0 -7
- package/dist/temp/assets/scripts/notification/const/icons.js +0 -1
- package/dist/temp/assets/scripts/notification/const/index.d.ts +3 -3
- package/dist/temp/assets/scripts/notification/const/index.js +2 -2
- package/dist/temp/assets/scripts/notification/const/sizes.d.ts +2 -14
- package/dist/temp/assets/scripts/notification/const/sizes.js +4 -4
- package/dist/temp/assets/scripts/notification/const/types.d.ts +3 -2
- package/dist/temp/assets/scripts/notification/index.d.ts +1 -1
- package/dist/temp/assets/scripts/notification/index.js +1 -1
- package/dist/temp/assets/scripts/shared/ButtonCloseX.d.ts +0 -2
- package/dist/temp/assets/scripts/shared/ButtonCloseX.js +6 -3
- package/dist/temp/assets/scripts/table/scrollbar/const.d.ts +0 -1
- package/dist/temp/assets/scripts/tooltip/const/classNames.d.ts +17 -0
- package/dist/temp/assets/scripts/tooltip/const/classNames.js +23 -0
- package/dist/temp/assets/scripts/tooltip/const/constants.d.ts +33 -0
- package/dist/temp/assets/scripts/tooltip/const/constants.js +48 -0
- package/dist/temp/assets/scripts/tooltip/const/icons.d.ts +4 -0
- package/dist/temp/assets/scripts/tooltip/const/icons.js +9 -0
- package/dist/temp/assets/scripts/tooltip/const/index.d.ts +5 -0
- package/dist/temp/assets/scripts/tooltip/const/index.js +5 -0
- package/dist/temp/assets/scripts/tooltip/const/templates.d.ts +16 -0
- package/dist/temp/assets/scripts/tooltip/const/templates.js +60 -0
- package/dist/temp/assets/scripts/tooltip/const/types.d.ts +17 -0
- package/dist/temp/assets/scripts/tooltip/const/types.js +1 -0
- package/dist/temp/assets/scripts/utils/sanitize.d.ts +0 -6
- package/dist/temp/assets/scripts/utils/sanitize.js +0 -12
- package/dist/temp/src/__tests__/helpers/dom.d.ts +2 -0
- package/dist/temp/src/__tests__/helpers/dom.js +8 -0
- package/dist/temp/src/__tests__/helpers/fileInput.d.ts +27 -0
- package/dist/temp/src/__tests__/helpers/fileInput.js +70 -0
- package/dist/temp/src/__tests__/helpers/fixedToday.d.ts +4 -0
- package/dist/temp/src/__tests__/helpers/fixedToday.js +8 -0
- package/dist/temp/src/__tests__/helpers/matchMedia.d.ts +13 -0
- package/dist/temp/src/__tests__/helpers/matchMedia.js +42 -0
- package/dist/temp/src/__tests__/helpers/rect.d.ts +2 -0
- package/dist/temp/src/__tests__/helpers/rect.js +5 -0
- package/dist/temp/src/components/action/button/__tests__/Button.test.d.ts +1 -0
- package/dist/temp/src/components/action/button/__tests__/Button.test.js +180 -0
- package/dist/temp/src/components/action/button-group/__tests__/ButtonGroup.test.d.ts +1 -0
- package/dist/temp/src/components/action/button-group/__tests__/ButtonGroup.test.js +162 -0
- package/dist/temp/src/components/data-display/data-grid/__tests__/DataGrid.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/data-grid/__tests__/DataGrid.test.js +291 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.dnd.dragCell.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.dnd.dragCell.test.js +255 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.dnd.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.dnd.test.js +240 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.scroll.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.scroll.test.js +145 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/Table.test.js +295 -0
- package/dist/temp/src/components/data-display/table/__tests__/dnd-context.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/dnd-context.test.js +42 -0
- package/dist/temp/src/components/data-display/table/__tests__/dnd-preview.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/dnd-preview.test.js +226 -0
- package/dist/temp/src/components/data-display/table/__tests__/tableDndTestUtils.d.ts +76 -0
- package/dist/temp/src/components/data-display/table/__tests__/tableDndTestUtils.js +153 -0
- package/dist/temp/src/components/data-display/table/__tests__/tableTestUtils.d.ts +11 -0
- package/dist/temp/src/components/data-display/table/__tests__/tableTestUtils.js +40 -0
- package/dist/temp/src/components/data-display/table/__tests__/useTableScrollbars.ownership.test.d.ts +1 -0
- package/dist/temp/src/components/data-display/table/__tests__/useTableScrollbars.ownership.test.js +269 -0
- package/dist/temp/src/components/data-display/table/dnd-context.d.ts +1 -1
- package/dist/temp/src/components/data-display/table/useTableScrollbars.d.ts +2 -2
- package/dist/temp/src/components/data-display/table/useTableScrollbars.js +1 -1
- package/dist/temp/src/components/feedback-and-status/badge/__tests__/Badge.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/badge/__tests__/Badge.test.js +136 -0
- package/dist/temp/src/components/feedback-and-status/badge-group/__tests__/BadgeGroup.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/badge-group/__tests__/BadgeGroup.test.js +103 -0
- package/dist/temp/src/components/feedback-and-status/carousel-arrow/__tests__/CarouselArrow.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/carousel-arrow/__tests__/CarouselArrow.test.js +81 -0
- package/dist/temp/src/components/feedback-and-status/carousel-number-group/__tests__/CarouselNumberGroup.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/carousel-number-group/__tests__/CarouselNumberGroup.test.js +53 -0
- package/dist/temp/src/components/feedback-and-status/empty-state/__tests__/EmptyState.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/empty-state/__tests__/EmptyState.test.js +86 -0
- package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.js +221 -0
- package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/useProgressBar.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/useProgressBar.test.js +168 -0
- package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/utils.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/utils.test.js +35 -0
- package/dist/temp/src/components/feedback-and-status/progress-circle/__tests__/ProgressCircle.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/progress-circle/__tests__/ProgressCircle.test.js +106 -0
- package/dist/temp/src/components/feedback-and-status/spinner/__tests__/Spinner.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/spinner/__tests__/Spinner.test.js +73 -0
- package/dist/temp/src/components/feedback-and-status/tag/__tests__/Tag.test.d.ts +1 -0
- package/dist/temp/src/components/feedback-and-status/tag/__tests__/Tag.test.js +392 -0
- package/dist/temp/src/components/forms-and-input/checkbox/__tests__/Checkbox.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/checkbox/__tests__/Checkbox.test.js +180 -0
- package/dist/temp/src/components/forms-and-input/combo-box/ComboBox.d.ts +1 -2
- package/dist/temp/src/components/forms-and-input/combo-box/ComboBox.js +1 -1
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/ComboBox.interaction.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/ComboBox.interaction.test.js +295 -0
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/ComboBox.register.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/ComboBox.register.test.js +111 -0
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/comboBoxTestUtils.d.ts +22 -0
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/comboBoxTestUtils.js +69 -0
- package/dist/temp/src/components/forms-and-input/date-picker/__tests__/DatePicker.input.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/date-picker/__tests__/DatePicker.input.test.js +358 -0
- package/dist/temp/src/components/forms-and-input/date-picker/__tests__/DatePicker.position.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/date-picker/__tests__/DatePicker.position.test.js +361 -0
- package/dist/temp/src/components/forms-and-input/date-picker/__tests__/utils.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/date-picker/__tests__/utils.test.js +34 -0
- package/dist/temp/src/components/forms-and-input/file-input/__tests__/FileInput.select.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/file-input/__tests__/FileInput.select.test.js +206 -0
- package/dist/temp/src/components/forms-and-input/image-file-input/__tests__/ImageFileInput.select.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/image-file-input/__tests__/ImageFileInput.select.test.js +292 -0
- package/dist/temp/src/components/forms-and-input/input-base/__tests__/InputBase.slots.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/input-base/__tests__/InputBase.slots.test.js +177 -0
- package/dist/temp/src/components/forms-and-input/number-input/__tests__/NumberInput.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/number-input/__tests__/NumberInput.test.js +434 -0
- package/dist/temp/src/components/forms-and-input/password-input/__tests__/PasswordInput.toggle.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/password-input/__tests__/PasswordInput.toggle.test.js +88 -0
- package/dist/temp/src/components/forms-and-input/radio/__tests__/Radio.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/radio/__tests__/Radio.test.js +42 -0
- package/dist/temp/src/components/forms-and-input/range-date-picker/__tests__/RangeDatePicker.test.js +137 -0
- package/dist/temp/src/components/forms-and-input/range-date-picker-with-buttons/__tests__/RangeDatePickerWithButtons.test.js +201 -1
- package/dist/temp/src/components/forms-and-input/select/__tests__/Select.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/select/__tests__/Select.test.js +214 -0
- package/dist/temp/src/components/forms-and-input/select-box/SelectBox.d.ts +1 -2
- package/dist/temp/src/components/forms-and-input/select-box/SelectBox.js +1 -1
- package/dist/temp/src/components/forms-and-input/select-box/__tests__/SelectBox.portal.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/select-box/__tests__/SelectBox.portal.test.js +312 -0
- package/dist/temp/src/components/forms-and-input/select-box/__tests__/SelectBox.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/select-box/__tests__/SelectBox.test.js +991 -0
- package/dist/temp/src/components/forms-and-input/slider/__tests__/Slider.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/slider/__tests__/Slider.test.js +294 -0
- package/dist/temp/src/components/forms-and-input/switch/__tests__/Switch.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/switch/__tests__/Switch.test.js +234 -0
- package/dist/temp/src/components/forms-and-input/textarea/__tests__/Textarea.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/textarea/__tests__/Textarea.test.js +207 -0
- package/dist/temp/src/components/forms-and-input/textarea/__tests__/Textarea.unmount.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/textarea/__tests__/Textarea.unmount.test.js +120 -0
- package/dist/temp/src/components/forms-and-input/toggle/__tests__/Toggle.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/toggle/__tests__/Toggle.test.js +125 -0
- package/dist/temp/src/components/image-and-icons/featured-icon/__tests__/FeaturedIcon.test.d.ts +1 -0
- package/dist/temp/src/components/image-and-icons/featured-icon/__tests__/FeaturedIcon.test.js +47 -0
- package/dist/temp/src/components/layout/block-container/__tests__/BlockContainer.test.d.ts +1 -0
- package/dist/temp/src/components/layout/block-container/__tests__/BlockContainer.test.js +53 -0
- package/dist/temp/src/components/layout/block-header/__tests__/BlockHeader.test.d.ts +1 -0
- package/dist/temp/src/components/layout/block-header/__tests__/BlockHeader.test.js +127 -0
- package/dist/temp/src/components/layout/block-header/__tests__/SubTitle.test.d.ts +1 -0
- package/dist/temp/src/components/layout/block-header/__tests__/SubTitle.test.js +76 -0
- package/dist/temp/src/components/layout/divider/__tests__/Divider.test.d.ts +1 -0
- package/dist/temp/src/components/layout/divider/__tests__/Divider.test.js +53 -0
- package/dist/temp/src/components/layout/ncua-scope/__tests__/NcuaScope.test.d.ts +1 -0
- package/dist/temp/src/components/layout/ncua-scope/__tests__/NcuaScope.test.js +136 -0
- package/dist/temp/src/components/layout/page-title/__tests__/PageTitle.test.d.ts +1 -0
- package/dist/temp/src/components/layout/page-title/__tests__/PageTitle.test.js +119 -0
- package/dist/temp/src/components/navigation/context-tab/__tests__/ContextTab.test.d.ts +1 -0
- package/dist/temp/src/components/navigation/context-tab/__tests__/ContextTab.test.js +447 -0
- package/dist/temp/src/components/navigation/context-tab/__tests__/useContextTabScroll.test.d.ts +1 -0
- package/dist/temp/src/components/navigation/context-tab/__tests__/useContextTabScroll.test.js +352 -0
- package/dist/temp/src/components/navigation/horizontal-tab/__tests__/HorizontalTab.test.d.ts +1 -0
- package/dist/temp/src/components/navigation/horizontal-tab/__tests__/HorizontalTab.test.js +152 -0
- package/dist/temp/src/components/navigation/pagination/__tests__/Pagination.navigation.test.d.ts +1 -0
- package/dist/temp/src/components/navigation/pagination/__tests__/Pagination.navigation.test.js +265 -0
- package/dist/temp/src/components/navigation/vertical-tab/__tests__/VerticalTab.test.d.ts +1 -0
- package/dist/temp/src/components/navigation/vertical-tab/__tests__/VerticalTab.test.js +172 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/Dropdown.dnd.test.d.ts +1 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/Dropdown.dnd.test.js +423 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/Dropdown.test.d.ts +1 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/Dropdown.test.js +699 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/dropdownTestUtils.d.ts +3 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/dropdownTestUtils.js +17 -0
- package/dist/temp/src/components/overlays/dropdown/__tests__/utils.test.js +24 -1
- package/dist/temp/src/components/overlays/modal/__tests__/Modal.test.d.ts +1 -0
- package/dist/temp/src/components/overlays/modal/__tests__/Modal.test.js +307 -0
- package/dist/temp/src/components/overlays/notification/MessageNotificationParts.d.ts +0 -1
- package/dist/temp/src/components/overlays/notification/NotificationActionButtons.d.ts +0 -1
- package/dist/temp/src/components/overlays/notification/__tests__/FloatingNotification.test.d.ts +1 -0
- package/dist/temp/src/components/overlays/notification/__tests__/FloatingNotification.test.js +218 -0
- package/dist/temp/src/components/overlays/notification/__tests__/MessageNotification.test.js +10 -0
- package/dist/temp/src/components/overlays/postcode-search-modal/PostcodeSearchModalTip.d.ts +1 -3
- package/dist/temp/src/components/overlays/postcode-search-modal/PostcodeSearchModalTip.js +1 -1
- package/dist/temp/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.viewport.test.d.ts +1 -0
- package/dist/temp/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.viewport.test.js +112 -0
- package/dist/temp/src/components/overlays/tooltip/__tests__/Tooltip.test.d.ts +1 -0
- package/dist/temp/src/components/overlays/tooltip/__tests__/Tooltip.test.js +538 -0
- package/dist/temp/src/components/tab/__tests__/TabButton.test.d.ts +1 -0
- package/dist/temp/src/components/tab/__tests__/TabButton.test.js +181 -0
- package/dist/temp/src/constant/date-picker.d.ts +2 -1
- package/dist/temp/src/hooks/__tests__/useCallbackRef.test.d.ts +1 -0
- package/dist/temp/src/hooks/__tests__/useCallbackRef.test.js +99 -0
- package/dist/temp/src/hooks/__tests__/useMediaQuery.test.d.ts +1 -0
- package/dist/temp/src/hooks/__tests__/useMediaQuery.test.js +95 -0
- package/dist/temp/src/hooks/__tests__/usePortalState.ssr.test.d.ts +1 -0
- package/dist/temp/src/hooks/__tests__/usePortalState.ssr.test.js +19 -0
- package/dist/temp/src/hooks/dropdown/__tests__/dropdownHooks.test.d.ts +1 -0
- package/dist/temp/src/hooks/dropdown/__tests__/dropdownHooks.test.js +147 -0
- package/dist/temp/src/types/component-meta.d.ts +2 -1
- package/dist/temp/src/types/component-meta.js +0 -4
- package/dist/temp/src/utils/__tests__/date-picker.test.js +58 -2
- package/dist/temp/src/utils/dropdown/__tests__/dropdownUtils.test.js +9 -0
- package/dist/temp/src/utils/dropdown/__tests__/multiSelect.test.d.ts +1 -0
- package/dist/temp/src/utils/dropdown/__tests__/multiSelect.test.js +41 -0
- package/dist/temp/src/utils/dropdown/multiSelect.d.ts +0 -20
- package/dist/temp/src/utils/dropdown/multiSelect.js +5 -5
- package/dist/temp/src/utils/portal-position/__tests__/portalPosition.nullAnchor.test.d.ts +1 -0
- package/dist/temp/src/utils/portal-position/__tests__/portalPosition.nullAnchor.test.js +57 -0
- package/dist/temp/vitest.config.js +15 -9
- package/dist/types/assets/scripts/notification/const/icons.d.ts +0 -7
- package/dist/types/assets/scripts/notification/const/index.d.ts +3 -3
- package/dist/types/assets/scripts/notification/const/sizes.d.ts +2 -14
- package/dist/types/assets/scripts/notification/const/types.d.ts +3 -2
- package/dist/types/assets/scripts/notification/index.d.ts +1 -1
- package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +0 -2
- package/dist/types/assets/scripts/table/scrollbar/const.d.ts +0 -1
- package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +17 -0
- package/dist/types/assets/scripts/tooltip/const/constants.d.ts +33 -0
- package/dist/types/assets/scripts/tooltip/const/icons.d.ts +4 -0
- package/dist/types/assets/scripts/tooltip/const/index.d.ts +5 -0
- package/dist/types/assets/scripts/tooltip/const/templates.d.ts +16 -0
- package/dist/types/assets/scripts/tooltip/const/types.d.ts +17 -0
- package/dist/types/assets/scripts/utils/sanitize.d.ts +0 -6
- package/dist/types/src/__tests__/helpers/dom.d.ts +2 -0
- package/dist/types/src/__tests__/helpers/fileInput.d.ts +27 -0
- package/dist/types/src/__tests__/helpers/fixedToday.d.ts +4 -0
- package/dist/types/src/__tests__/helpers/matchMedia.d.ts +13 -0
- package/dist/types/src/__tests__/helpers/rect.d.ts +2 -0
- package/dist/types/src/components/action/button/__tests__/Button.test.d.ts +1 -0
- package/dist/types/src/components/action/button-group/__tests__/ButtonGroup.test.d.ts +1 -0
- package/dist/types/src/components/data-display/data-grid/__tests__/DataGrid.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/Table.dnd.dragCell.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/Table.dnd.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/Table.scroll.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/Table.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/dnd-context.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/dnd-preview.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/__tests__/tableDndTestUtils.d.ts +76 -0
- package/dist/types/src/components/data-display/table/__tests__/tableTestUtils.d.ts +11 -0
- package/dist/types/src/components/data-display/table/__tests__/useTableScrollbars.ownership.test.d.ts +1 -0
- package/dist/types/src/components/data-display/table/dnd-context.d.ts +1 -1
- package/dist/types/src/components/data-display/table/useTableScrollbars.d.ts +2 -2
- package/dist/types/src/components/feedback-and-status/badge/__tests__/Badge.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/badge-group/__tests__/BadgeGroup.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/carousel-arrow/__tests__/CarouselArrow.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/carousel-number-group/__tests__/CarouselNumberGroup.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/empty-state/__tests__/EmptyState.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/progress-bar/__tests__/useProgressBar.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/progress-bar/__tests__/utils.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/progress-circle/__tests__/ProgressCircle.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/spinner/__tests__/Spinner.test.d.ts +1 -0
- package/dist/types/src/components/feedback-and-status/tag/__tests__/Tag.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/checkbox/__tests__/Checkbox.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/combo-box/ComboBox.d.ts +1 -2
- package/dist/types/src/components/forms-and-input/combo-box/__tests__/ComboBox.interaction.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/combo-box/__tests__/ComboBox.register.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/combo-box/__tests__/comboBoxTestUtils.d.ts +22 -0
- package/dist/types/src/components/forms-and-input/date-picker/__tests__/DatePicker.input.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/date-picker/__tests__/DatePicker.position.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/date-picker/__tests__/utils.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/file-input/__tests__/FileInput.select.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/image-file-input/__tests__/ImageFileInput.select.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/input-base/__tests__/InputBase.slots.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/number-input/__tests__/NumberInput.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/password-input/__tests__/PasswordInput.toggle.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/radio/__tests__/Radio.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/select/__tests__/Select.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/select-box/SelectBox.d.ts +1 -2
- package/dist/types/src/components/forms-and-input/select-box/__tests__/SelectBox.portal.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/select-box/__tests__/SelectBox.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/slider/__tests__/Slider.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/switch/__tests__/Switch.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/textarea/__tests__/Textarea.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/textarea/__tests__/Textarea.unmount.test.d.ts +1 -0
- package/dist/types/src/components/forms-and-input/toggle/__tests__/Toggle.test.d.ts +1 -0
- package/dist/types/src/components/image-and-icons/featured-icon/__tests__/FeaturedIcon.test.d.ts +1 -0
- package/dist/types/src/components/layout/block-container/__tests__/BlockContainer.test.d.ts +1 -0
- package/dist/types/src/components/layout/block-header/__tests__/BlockHeader.test.d.ts +1 -0
- package/dist/types/src/components/layout/block-header/__tests__/SubTitle.test.d.ts +1 -0
- package/dist/types/src/components/layout/divider/__tests__/Divider.test.d.ts +1 -0
- package/dist/types/src/components/layout/ncua-scope/__tests__/NcuaScope.test.d.ts +1 -0
- package/dist/types/src/components/layout/page-title/__tests__/PageTitle.test.d.ts +1 -0
- package/dist/types/src/components/navigation/context-tab/__tests__/ContextTab.test.d.ts +1 -0
- package/dist/types/src/components/navigation/context-tab/__tests__/useContextTabScroll.test.d.ts +1 -0
- package/dist/types/src/components/navigation/horizontal-tab/__tests__/HorizontalTab.test.d.ts +1 -0
- package/dist/types/src/components/navigation/pagination/__tests__/Pagination.navigation.test.d.ts +1 -0
- package/dist/types/src/components/navigation/vertical-tab/__tests__/VerticalTab.test.d.ts +1 -0
- package/dist/types/src/components/overlays/dropdown/__tests__/Dropdown.dnd.test.d.ts +1 -0
- package/dist/types/src/components/overlays/dropdown/__tests__/Dropdown.test.d.ts +1 -0
- package/dist/types/src/components/overlays/dropdown/__tests__/dropdownTestUtils.d.ts +3 -0
- package/dist/types/src/components/overlays/modal/__tests__/Modal.test.d.ts +1 -0
- package/dist/types/src/components/overlays/notification/MessageNotificationParts.d.ts +0 -1
- package/dist/types/src/components/overlays/notification/NotificationActionButtons.d.ts +0 -1
- package/dist/types/src/components/overlays/notification/__tests__/FloatingNotification.test.d.ts +1 -0
- package/dist/types/src/components/overlays/postcode-search-modal/PostcodeSearchModalTip.d.ts +1 -3
- package/dist/types/src/components/overlays/postcode-search-modal/__tests__/PostcodeSearchModal.viewport.test.d.ts +1 -0
- package/dist/types/src/components/overlays/tooltip/__tests__/Tooltip.test.d.ts +1 -0
- package/dist/types/src/components/tab/__tests__/TabButton.test.d.ts +1 -0
- package/dist/types/src/constant/date-picker.d.ts +2 -1
- package/dist/types/src/hooks/__tests__/useCallbackRef.test.d.ts +1 -0
- package/dist/types/src/hooks/__tests__/useMediaQuery.test.d.ts +1 -0
- package/dist/types/src/hooks/__tests__/usePortalState.ssr.test.d.ts +1 -0
- package/dist/types/src/hooks/dropdown/__tests__/dropdownHooks.test.d.ts +1 -0
- package/dist/types/src/types/component-meta.d.ts +2 -1
- package/dist/types/src/utils/dropdown/__tests__/multiSelect.test.d.ts +1 -0
- package/dist/types/src/utils/dropdown/multiSelect.d.ts +0 -20
- package/dist/types/src/utils/portal-position/__tests__/portalPosition.nullAnchor.test.d.ts +1 -0
- package/package.json +3 -8
- package/dist/cjs/src/constant/index.js +0 -27
- package/dist/cjs/src/constant/size.js +0 -7
- package/dist/cjs/src/contexts/index.js +0 -16
- package/dist/esm/src/constant/index.js +0 -2
- package/dist/esm/src/constant/size.js +0 -1
- package/dist/esm/src/contexts/index.js +0 -1
- package/dist/temp/src/constant/index.d.ts +0 -2
- package/dist/temp/src/constant/index.js +0 -2
- package/dist/temp/src/constant/size.d.ts +0 -1
- package/dist/temp/src/constant/size.js +0 -1
- package/dist/temp/src/contexts/index.d.ts +0 -1
- package/dist/temp/src/contexts/index.js +0 -1
- package/dist/types/src/constant/index.d.ts +0 -2
- package/dist/types/src/constant/size.d.ts +0 -1
- package/dist/types/src/contexts/index.d.ts +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
//
|
|
3
|
+
// BadgeGroup (src/components/feedback-and-status/badge-group/BadgeGroup.tsx) 위험 경로 — 위험 목록표 BG-xx.
|
|
4
|
+
// Badge·sideSlotRender 는 실구현으로 렌더한다.
|
|
5
|
+
import { ArrowRight } from '@ncds/ui-admin-icon';
|
|
6
|
+
import { createElement } from 'react';
|
|
7
|
+
import { createRoot } from 'react-dom/client';
|
|
8
|
+
import { act } from 'react-dom/test-utils';
|
|
9
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
10
|
+
import { BadgeGroup } from '../BadgeGroup';
|
|
11
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
12
|
+
const GROUP_LABEL = '새 기능이 추가되었습니다';
|
|
13
|
+
const GROUP_HREF = 'https://example.com/notice';
|
|
14
|
+
const DEFAULT_GROUP_ICON_SIZE = '14';
|
|
15
|
+
let root = null;
|
|
16
|
+
let container = null;
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
if (root) {
|
|
19
|
+
act(() => {
|
|
20
|
+
root?.unmount();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
root = null;
|
|
24
|
+
container?.remove();
|
|
25
|
+
container = null;
|
|
26
|
+
vi.restoreAllMocks();
|
|
27
|
+
});
|
|
28
|
+
const render = (props) => {
|
|
29
|
+
if (!container) {
|
|
30
|
+
container = document.createElement('div');
|
|
31
|
+
document.body.appendChild(container);
|
|
32
|
+
root = createRoot(container);
|
|
33
|
+
}
|
|
34
|
+
act(() => {
|
|
35
|
+
root?.render(createElement(BadgeGroup, props));
|
|
36
|
+
});
|
|
37
|
+
return container;
|
|
38
|
+
};
|
|
39
|
+
const linkOf = (view) => view.querySelector('a.ncua-badge-group');
|
|
40
|
+
describe('BadgeGroup — 링크·배지·라벨·아이콘 (BG-01)', () => {
|
|
41
|
+
it('BG-01 <a href target="_blank"> 안에 pill-dark-color Badge · groupLabel 을 렌더하고 기본은 neutral · sm 이다', () => {
|
|
42
|
+
const view = render({ label: 'NEW', groupLabel: GROUP_LABEL, href: GROUP_HREF });
|
|
43
|
+
const link = linkOf(view);
|
|
44
|
+
const badge = link?.querySelector('.ncua-badge');
|
|
45
|
+
expect(link?.getAttribute('href')).toBe(GROUP_HREF);
|
|
46
|
+
expect(link?.getAttribute('target')).toBe('_blank');
|
|
47
|
+
expect(link?.classList.contains('ncua-badge-group--neutral')).toBe(true);
|
|
48
|
+
expect(link?.classList.contains('ncua-badge-group--sm')).toBe(true);
|
|
49
|
+
expect(['ncua-badge--pill-dark-color', 'ncua-badge--neutral', 'ncua-badge--sm'].map((name) => badge?.classList.contains(name))).toEqual([true, true, true]);
|
|
50
|
+
expect(badge?.textContent).toBe('NEW');
|
|
51
|
+
expect(link?.querySelector('.ncua-badge-group__label')?.textContent).toBe(GROUP_LABEL);
|
|
52
|
+
expect(link?.querySelector(':scope > svg')).toBeNull();
|
|
53
|
+
link?.focus();
|
|
54
|
+
expect(document.activeElement).toBe(link);
|
|
55
|
+
});
|
|
56
|
+
it('BG-01 color·size·target·groupClassName 을 링크와 Badge 에 반영한다', () => {
|
|
57
|
+
const view = render({
|
|
58
|
+
label: '오류',
|
|
59
|
+
groupLabel: GROUP_LABEL,
|
|
60
|
+
href: GROUP_HREF,
|
|
61
|
+
color: 'error',
|
|
62
|
+
size: 'xs',
|
|
63
|
+
target: '_self',
|
|
64
|
+
groupClassName: 'my-group',
|
|
65
|
+
});
|
|
66
|
+
const link = linkOf(view);
|
|
67
|
+
const badge = link?.querySelector('.ncua-badge');
|
|
68
|
+
expect(link?.getAttribute('target')).toBe('_self');
|
|
69
|
+
expect(link?.classList.contains('ncua-badge-group--error')).toBe(true);
|
|
70
|
+
expect(link?.classList.contains('ncua-badge-group--xs')).toBe(true);
|
|
71
|
+
expect(link?.classList.contains('my-group')).toBe(true);
|
|
72
|
+
expect(badge?.classList.contains('ncua-badge--error')).toBe(true);
|
|
73
|
+
expect(badge?.classList.contains('ncua-badge--xs')).toBe(true);
|
|
74
|
+
});
|
|
75
|
+
it('BG-01 groupIcon 이 있으면 라벨 뒤에 기본 14px 아이콘을 렌더한다', () => {
|
|
76
|
+
const view = render({ groupLabel: GROUP_LABEL, href: GROUP_HREF, groupIcon: { type: 'icon', icon: ArrowRight } });
|
|
77
|
+
const icon = linkOf(view)?.lastElementChild;
|
|
78
|
+
expect(icon?.tagName.toLowerCase()).toBe('svg');
|
|
79
|
+
expect(icon?.previousElementSibling?.classList.contains('ncua-badge-group__label')).toBe(true);
|
|
80
|
+
expect([icon?.getAttribute('width'), icon?.getAttribute('height')]).toEqual([
|
|
81
|
+
DEFAULT_GROUP_ICON_SIZE,
|
|
82
|
+
DEFAULT_GROUP_ICON_SIZE,
|
|
83
|
+
]);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe('BadgeGroup — rel·href 누락 (BG-02)', () => {
|
|
87
|
+
it('BG-02 기본 target _blank 인데 rel 을 붙이지 않는다', () => {
|
|
88
|
+
// 현재 동작 고정 — 결함 후보: #597 (새 창 링크에 rel="noopener noreferrer" 미지정, 구형 브라우저 reverse tabnabbing·referrer 노출)
|
|
89
|
+
const view = render({ groupLabel: GROUP_LABEL, href: GROUP_HREF });
|
|
90
|
+
expect(linkOf(view)?.getAttribute('target')).toBe('_blank');
|
|
91
|
+
expect(linkOf(view)?.hasAttribute('rel')).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
it('BG-02 href 가 없으면 href 없는 <a> 라 링크·키보드 포커스 대상이 아니다', () => {
|
|
94
|
+
// 현재 동작 고정 — 결함 후보: #597 (href 없는 <a> 는 tab 순서에서 빠지고 링크 역할도 없음)
|
|
95
|
+
const view = render({ groupLabel: GROUP_LABEL });
|
|
96
|
+
const link = linkOf(view);
|
|
97
|
+
link?.focus();
|
|
98
|
+
expect(link?.hasAttribute('href')).toBe(false);
|
|
99
|
+
expect(document.activeElement).not.toBe(link);
|
|
100
|
+
});
|
|
101
|
+
it.todo('BG-02 target 이 _blank 면 rel="noopener noreferrer" 를 붙인다 (기대, #597)');
|
|
102
|
+
it.todo('BG-02 href 가 없으면 링크가 아닌 요소로 렌더하거나 href 를 필수로 한다 (기대, #597)');
|
|
103
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/temp/src/components/feedback-and-status/carousel-arrow/__tests__/CarouselArrow.test.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
//
|
|
3
|
+
// CarouselArrow (src/components/feedback-and-status/carousel-arrow/CarouselArrow.tsx) 위험 경로 — 위험 목록표 CA-xx.
|
|
4
|
+
// 좌우 아이콘은 아이콘 컴포넌트가 그리는 path 로 구분한다.
|
|
5
|
+
import { ChevronLeft, ChevronRight } from '@ncds/ui-admin-icon';
|
|
6
|
+
import { createElement } from 'react';
|
|
7
|
+
import { createRoot } from 'react-dom/client';
|
|
8
|
+
import { renderToStaticMarkup } from 'react-dom/server';
|
|
9
|
+
import { act } from 'react-dom/test-utils';
|
|
10
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
11
|
+
import { CarouselArrow } from '../CarouselArrow';
|
|
12
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
13
|
+
let root = null;
|
|
14
|
+
let container = null;
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
if (root) {
|
|
17
|
+
act(() => {
|
|
18
|
+
root?.unmount();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
root = null;
|
|
22
|
+
container?.remove();
|
|
23
|
+
container = null;
|
|
24
|
+
vi.restoreAllMocks();
|
|
25
|
+
});
|
|
26
|
+
const render = (props) => {
|
|
27
|
+
if (!container) {
|
|
28
|
+
container = document.createElement('div');
|
|
29
|
+
document.body.appendChild(container);
|
|
30
|
+
root = createRoot(container);
|
|
31
|
+
}
|
|
32
|
+
act(() => {
|
|
33
|
+
root?.render(createElement(CarouselArrow, props));
|
|
34
|
+
});
|
|
35
|
+
return container;
|
|
36
|
+
};
|
|
37
|
+
/** 아이콘 컴포넌트가 그리는 path 의 d — DOM 의 svg 와 비교해 어떤 아이콘인지 판별한다 */
|
|
38
|
+
const iconPathOf = (Icon) => {
|
|
39
|
+
const holder = document.createElement('div');
|
|
40
|
+
holder.innerHTML = renderToStaticMarkup(createElement(Icon));
|
|
41
|
+
return holder.querySelector('path')?.getAttribute('d') ?? null;
|
|
42
|
+
};
|
|
43
|
+
const buttonOf = (view) => view.querySelector('button.ncua-carousel-arrow');
|
|
44
|
+
describe('CarouselArrow — click·방향·클래스 (CA-01)', () => {
|
|
45
|
+
it('CA-01 click 하면 onClick 을 호출한다', () => {
|
|
46
|
+
const onClick = vi.fn();
|
|
47
|
+
const view = render({ chevron: 'right', onClick });
|
|
48
|
+
act(() => {
|
|
49
|
+
buttonOf(view)?.click();
|
|
50
|
+
});
|
|
51
|
+
expect(buttonOf(view)?.getAttribute('type')).toBe('button');
|
|
52
|
+
expect(onClick).toHaveBeenCalled();
|
|
53
|
+
});
|
|
54
|
+
it.each([
|
|
55
|
+
['left', ChevronLeft],
|
|
56
|
+
['right', ChevronRight],
|
|
57
|
+
])('CA-01 chevron %s 면 그 방향 아이콘과 방향 클래스를 쓴다', (chevron, Icon) => {
|
|
58
|
+
const view = render({ chevron });
|
|
59
|
+
const button = buttonOf(view);
|
|
60
|
+
expect(button?.querySelector('svg.ncua-carousel-arrow__icon path')?.getAttribute('d')).toBe(iconPathOf(Icon));
|
|
61
|
+
expect(button?.classList.contains(`ncua-carousel-arrow--${chevron}`)).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
it('CA-01 기본은 default · md 클래스이고 type·className 을 넘기면 반영한다', () => {
|
|
64
|
+
const view = render({ chevron: 'left' });
|
|
65
|
+
expect(buttonOf(view)?.classList.contains('ncua-carousel-arrow--default')).toBe(true);
|
|
66
|
+
expect(buttonOf(view)?.classList.contains('ncua-carousel-arrow--md')).toBe(true);
|
|
67
|
+
render({ chevron: 'left', type: 'line', className: 'my-arrow' });
|
|
68
|
+
expect(buttonOf(view)?.classList.contains('ncua-carousel-arrow--line')).toBe(true);
|
|
69
|
+
expect(buttonOf(view)?.classList.contains('my-arrow')).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('CarouselArrow — 접근 가능한 이름 (CA-02)', () => {
|
|
73
|
+
it('CA-02 아이콘만 있는 버튼에 aria-label·텍스트가 없어 접근 가능한 이름이 비어 있다', () => {
|
|
74
|
+
// 현재 동작 고정 — 결함 후보: #597 (아이콘 전용 버튼에 aria-label 이 없어 스크린리더가 용도를 읽지 못함)
|
|
75
|
+
const view = render({ chevron: 'left' });
|
|
76
|
+
const button = buttonOf(view);
|
|
77
|
+
expect(button?.hasAttribute('aria-label')).toBe(false);
|
|
78
|
+
expect(button?.textContent).toBe('');
|
|
79
|
+
});
|
|
80
|
+
it.todo('CA-02 좌우 방향에 맞는 aria-label(예: 이전·다음)을 가진다 (기대, #597)');
|
|
81
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
//
|
|
3
|
+
// CarouselNumberGroup (src/components/feedback-and-status/carousel-number-group/CarouselNumberGroup.tsx)
|
|
4
|
+
// 위험 경로 — 위험 목록표 CN-xx.
|
|
5
|
+
import { createElement } from 'react';
|
|
6
|
+
import { createRoot } from 'react-dom/client';
|
|
7
|
+
import { act } from 'react-dom/test-utils';
|
|
8
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
9
|
+
import { CarouselNumberGroup } from '../CarouselNumberGroup';
|
|
10
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
11
|
+
const CURRENT_PAGE = 3;
|
|
12
|
+
const TOTAL_PAGE = 10;
|
|
13
|
+
let root = null;
|
|
14
|
+
let container = null;
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
if (root) {
|
|
17
|
+
act(() => {
|
|
18
|
+
root?.unmount();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
root = null;
|
|
22
|
+
container?.remove();
|
|
23
|
+
container = null;
|
|
24
|
+
vi.restoreAllMocks();
|
|
25
|
+
});
|
|
26
|
+
const render = (props) => {
|
|
27
|
+
if (!container) {
|
|
28
|
+
container = document.createElement('div');
|
|
29
|
+
document.body.appendChild(container);
|
|
30
|
+
root = createRoot(container);
|
|
31
|
+
}
|
|
32
|
+
act(() => {
|
|
33
|
+
root?.render(createElement(CarouselNumberGroup, props));
|
|
34
|
+
});
|
|
35
|
+
return container;
|
|
36
|
+
};
|
|
37
|
+
const groupOf = (view) => view.querySelector('.ncua-carousel-number-group');
|
|
38
|
+
describe('CarouselNumberGroup — 표시와 클래스 (CN-01)', () => {
|
|
39
|
+
it('CN-01 현재 페이지와 "/전체" 를 표시하고 기본은 framed · light · sm 이다', () => {
|
|
40
|
+
const view = render({ currentPage: CURRENT_PAGE, totalPage: TOTAL_PAGE });
|
|
41
|
+
const group = groupOf(view);
|
|
42
|
+
expect(view.querySelector('.ncua-carousel-number-group__number')?.textContent).toBe(String(CURRENT_PAGE));
|
|
43
|
+
expect(view.querySelector('.ncua-carousel-number-group__total')?.textContent).toBe(`/${TOTAL_PAGE}`);
|
|
44
|
+
expect(['framed', 'ncua-carousel-number-group--light', 'ncua-carousel-number-group--sm'].map((name) => group?.classList.contains(name))).toEqual([true, true, true]);
|
|
45
|
+
});
|
|
46
|
+
it('CN-01 framed false · dark 면 framed 를 빼고 dark 클래스를 붙인다', () => {
|
|
47
|
+
const view = render({ currentPage: CURRENT_PAGE, totalPage: TOTAL_PAGE, framed: false, color: 'dark' });
|
|
48
|
+
const group = groupOf(view);
|
|
49
|
+
expect(group?.classList.contains('framed')).toBe(false);
|
|
50
|
+
expect(group?.classList.contains('ncua-carousel-number-group--dark')).toBe(true);
|
|
51
|
+
expect(group?.classList.contains('ncua-carousel-number-group--light')).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
});
|
package/dist/temp/src/components/feedback-and-status/empty-state/__tests__/EmptyState.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
import { createElement } from 'react';
|
|
3
|
+
import { createRoot } from 'react-dom/client';
|
|
4
|
+
import { act } from 'react-dom/test-utils';
|
|
5
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
6
|
+
import { EmptyState } from '../EmptyState';
|
|
7
|
+
// React 18에서 act() 사용 시 필요한 플래그 (미설정 시 console.error 경고 발생)
|
|
8
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
9
|
+
const TITLE = '결과가 없습니다';
|
|
10
|
+
const DESCRIPTION = '조건을 바꿔 보세요';
|
|
11
|
+
/** afterEach 에서 unmount 할 루트 */
|
|
12
|
+
const mounted = [];
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
for (const { root, container } of mounted.splice(0)) {
|
|
15
|
+
act(() => root.unmount());
|
|
16
|
+
container.remove();
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const mount = (node) => {
|
|
20
|
+
const container = document.createElement('div');
|
|
21
|
+
document.body.appendChild(container);
|
|
22
|
+
const root = createRoot(container);
|
|
23
|
+
mounted.push({ root, container });
|
|
24
|
+
act(() => root.render(node));
|
|
25
|
+
return { container };
|
|
26
|
+
};
|
|
27
|
+
const emptyState = (props = {}) => createElement(EmptyState, { title: TITLE, description: DESCRIPTION, ...props });
|
|
28
|
+
const mustQuery = (root, selector) => {
|
|
29
|
+
const found = root.querySelector(selector);
|
|
30
|
+
if (!found)
|
|
31
|
+
throw new Error(`요소를 찾을 수 없습니다: ${selector}`);
|
|
32
|
+
return found;
|
|
33
|
+
};
|
|
34
|
+
const buttons = (root) => Array.from(root.querySelectorAll('.ncua-empty-state__button-group button'));
|
|
35
|
+
describe('EmptyState — 버튼 영역 (EMS-01)', () => {
|
|
36
|
+
it('EMS-01 buttons 가 없으면 title · description 만 그리고 버튼 영역이 없다', () => {
|
|
37
|
+
const view = mount(emptyState());
|
|
38
|
+
expect(mustQuery(view.container, '.ncua-empty-state__title').textContent).toBe(TITLE);
|
|
39
|
+
expect(mustQuery(view.container, '.ncua-empty-state__description').textContent).toBe(DESCRIPTION);
|
|
40
|
+
expect(view.container.querySelector('.ncua-empty-state__button-group')).toBeNull();
|
|
41
|
+
});
|
|
42
|
+
it('EMS-01 빈 배열이면 버튼 영역이 없다', () => {
|
|
43
|
+
const view = mount(emptyState({ buttons: [] }));
|
|
44
|
+
expect(view.container.querySelector('.ncua-empty-state__button-group')).toBeNull();
|
|
45
|
+
});
|
|
46
|
+
it('EMS-01 단일 객체면 버튼 1개를 그리고 size 기본값 xs 를 쓴다', () => {
|
|
47
|
+
const view = mount(emptyState({ buttons: { label: '등록' } }));
|
|
48
|
+
const rendered = buttons(view.container);
|
|
49
|
+
expect(rendered.map((button) => button.textContent)).toEqual(['등록']);
|
|
50
|
+
expect(rendered[0].classList.contains('ncua-btn--xs')).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('EMS-01 배열이면 순서대로 그리고 지정한 size · hierarchy · disabled 를 전달한다', () => {
|
|
53
|
+
const view = mount(emptyState({
|
|
54
|
+
buttons: [
|
|
55
|
+
{ label: '취소', size: 'sm', hierarchy: 'secondary-gray' },
|
|
56
|
+
{ label: '등록', size: 'sm', hierarchy: 'primary', disabled: true },
|
|
57
|
+
],
|
|
58
|
+
}));
|
|
59
|
+
const rendered = buttons(view.container);
|
|
60
|
+
expect(rendered.map((button) => button.textContent)).toEqual(['취소', '등록']);
|
|
61
|
+
expect(rendered.map((button) => button.classList.contains('ncua-btn--sm'))).toEqual([true, true]);
|
|
62
|
+
expect(rendered.map((button) => button.disabled)).toEqual([false, true]);
|
|
63
|
+
expect(rendered[1].classList.contains('ncua-btn--primary')).toBe(true);
|
|
64
|
+
});
|
|
65
|
+
it('EMS-01 버튼 클릭은 그 버튼의 onClick 을 부른다', () => {
|
|
66
|
+
const onRegister = vi.fn();
|
|
67
|
+
const view = mount(emptyState({ buttons: [{ label: '취소' }, { label: '등록', onClick: onRegister }] }));
|
|
68
|
+
act(() => buttons(view.container)[1].click());
|
|
69
|
+
expect(onRegister).toHaveBeenCalled();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('EmptyState — 폼 안 버튼 (EMS-02)', () => {
|
|
73
|
+
it('EMS-02 폼 안의 EmptyState 버튼을 클릭하면 폼을 제출한다 (BTN-04 영향 사용처)', () => {
|
|
74
|
+
// 현재 동작 고정 — 결함 후보: 후속 이슈 (#620 VNT-12 · BTN-04 같은 뿌리 — 공용 Button 에 type 기본값 없음)
|
|
75
|
+
const submits = [];
|
|
76
|
+
const view = mount(createElement('form', {
|
|
77
|
+
onSubmit: (event) => {
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
submits.push(event.nativeEvent);
|
|
80
|
+
},
|
|
81
|
+
}, emptyState({ buttons: { label: '등록' } })));
|
|
82
|
+
act(() => buttons(view.container)[0].click());
|
|
83
|
+
expect(submits).toHaveLength(1);
|
|
84
|
+
});
|
|
85
|
+
it.todo('EMS-02 기대 동작: 폼 안의 EmptyState 버튼 클릭은 폼을 제출하지 않는다 (BTN-04 수정 시 함께 해소)');
|
|
86
|
+
});
|
package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/ProgressBar.test.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
//
|
|
3
|
+
// ProgressBar (React) 위험 경로 — 위험 목록표 RPB-xx. SegmentBar·SegmentLabels 는 렌더 결과로 함께 덮는다.
|
|
4
|
+
// vanilla ProgressBar.ts(PB-xx)와 같은 계약 — 같은 입력에 다른 결과면 결함 후보로 적는다.
|
|
5
|
+
import { createElement } from 'react';
|
|
6
|
+
import { createRoot } from 'react-dom/client';
|
|
7
|
+
import { act } from 'react-dom/test-utils';
|
|
8
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
9
|
+
import { ProgressBar } from '../ProgressBar';
|
|
10
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
11
|
+
const VALUE = 40;
|
|
12
|
+
const SEG_A = 30;
|
|
13
|
+
const SEG_B = 10;
|
|
14
|
+
/** 30 : 10 → 75 : 25 로 정규화 */
|
|
15
|
+
const NORMALIZED_A = 75;
|
|
16
|
+
const NORMALIZED_B = 25;
|
|
17
|
+
/** 라벨 위치 — 앞 폭 합 + 자기 폭 / 2 : 75 / 2 = 37.5, 75 + 25 / 2 = 87.5 */
|
|
18
|
+
const CENTER_DIVISOR = 2;
|
|
19
|
+
const FIRST_LABEL_LEFT = NORMALIZED_A / CENTER_DIVISOR;
|
|
20
|
+
const SECOND_LABEL_LEFT = NORMALIZED_A + NORMALIZED_B / CENTER_DIVISOR;
|
|
21
|
+
/** 세그먼트 1개 float 라벨 값 */
|
|
22
|
+
const FLOAT_VALUE = 15;
|
|
23
|
+
/** 0 세그먼트 라벨 시작점 — 앞 폭 합 − 1 (최소 0) */
|
|
24
|
+
const ZERO_LABEL_OFFSET = 1;
|
|
25
|
+
let root = null;
|
|
26
|
+
let container = null;
|
|
27
|
+
const renderElement = (element) => {
|
|
28
|
+
if (!container) {
|
|
29
|
+
container = document.createElement('div');
|
|
30
|
+
document.body.appendChild(container);
|
|
31
|
+
root = createRoot(container);
|
|
32
|
+
}
|
|
33
|
+
act(() => {
|
|
34
|
+
root?.render(element);
|
|
35
|
+
});
|
|
36
|
+
return container;
|
|
37
|
+
};
|
|
38
|
+
const render = (props = {}) => renderElement(createElement(ProgressBar, props));
|
|
39
|
+
afterEach(() => {
|
|
40
|
+
if (root) {
|
|
41
|
+
act(() => {
|
|
42
|
+
root?.unmount();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
container?.remove();
|
|
46
|
+
root = null;
|
|
47
|
+
container = null;
|
|
48
|
+
});
|
|
49
|
+
const requireElement = (scope, selector) => {
|
|
50
|
+
const element = scope.querySelector(selector);
|
|
51
|
+
if (!element)
|
|
52
|
+
throw new Error(`요소를 찾을 수 없습니다: ${selector}`);
|
|
53
|
+
return element;
|
|
54
|
+
};
|
|
55
|
+
const fillsOf = (view) => Array.from(view.querySelectorAll('.ncua-progress-bar__fill'));
|
|
56
|
+
const segmentLabelsOf = (view) => Array.from(view.querySelectorAll('.ncua-progress-bar__label--segment'));
|
|
57
|
+
// ── P0 ─────────────────────────────────────────────────
|
|
58
|
+
describe('ProgressBar — 단일 value (RPB-01)', () => {
|
|
59
|
+
it('RPB-01 fill 하나의 width 와 aria-valuenow 가 같은 값이고 aria 범위는 0~100', () => {
|
|
60
|
+
const view = render({ value: VALUE });
|
|
61
|
+
const [fill] = fillsOf(view);
|
|
62
|
+
expect(fillsOf(view)).toHaveLength(1);
|
|
63
|
+
expect([
|
|
64
|
+
fill.style.width,
|
|
65
|
+
fill.getAttribute('aria-valuenow'),
|
|
66
|
+
fill.getAttribute('aria-valuemin'),
|
|
67
|
+
fill.getAttribute('aria-valuemax'),
|
|
68
|
+
]).toEqual([`${VALUE}%`, String(VALUE), '0', '100']);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('ProgressBar — 다중 세그먼트 (RPB-02)', () => {
|
|
72
|
+
it('RPB-02 SegmentBar 가 세그먼트마다 정규화 width·first/last·색 클래스로 fill 을 만든다', () => {
|
|
73
|
+
const view = render({
|
|
74
|
+
segments: [
|
|
75
|
+
{ value: SEG_A, color: 'blue' },
|
|
76
|
+
{ value: SEG_B, color: 'red' },
|
|
77
|
+
],
|
|
78
|
+
});
|
|
79
|
+
const [first, last] = fillsOf(view);
|
|
80
|
+
expect(fillsOf(view).map((fill) => fill.style.width)).toEqual([`${NORMALIZED_A}%`, `${NORMALIZED_B}%`]);
|
|
81
|
+
expect([
|
|
82
|
+
first.classList.contains('ncua-progress-bar__fill--first'),
|
|
83
|
+
first.classList.contains('ncua-progress-bar__fill--last'),
|
|
84
|
+
first.classList.contains('ncua-progress-bar__fill--color-blue'),
|
|
85
|
+
last.classList.contains('ncua-progress-bar__fill--last'),
|
|
86
|
+
last.classList.contains('ncua-progress-bar__fill--color-red'),
|
|
87
|
+
]).toEqual([true, false, true, true, true]);
|
|
88
|
+
expect(requireElement(view, '.ncua-progress-bar__bar').classList.contains('ncua-progress-bar__bar--segments')).toBe(true);
|
|
89
|
+
});
|
|
90
|
+
it('RPB-02 SegmentLabels 가 세그먼트마다 정규화 값 라벨과 색 클래스를 렌더한다', () => {
|
|
91
|
+
const view = render({
|
|
92
|
+
segments: [
|
|
93
|
+
{ value: SEG_A, color: 'blue' },
|
|
94
|
+
{ value: SEG_B, color: 'red' },
|
|
95
|
+
],
|
|
96
|
+
});
|
|
97
|
+
const labels = segmentLabelsOf(view);
|
|
98
|
+
expect(labels.map((label) => label.textContent)).toEqual([`${NORMALIZED_A}%`, `${NORMALIZED_B}%`]);
|
|
99
|
+
expect([
|
|
100
|
+
labels[0].classList.contains('ncua-progress-bar__label--color-blue'),
|
|
101
|
+
labels[1].classList.contains('ncua-progress-bar__label--color-red'),
|
|
102
|
+
]).toEqual([true, true]);
|
|
103
|
+
expect(requireElement(view, '.ncua-progress-bar').classList.contains('ncua-progress-bar-bottom')).toBe(true);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe('ProgressBar — 세그먼트 1개 (RPB-03)', () => {
|
|
107
|
+
it('RPB-03 색 fill 하나에 width·aria-valuenow 를 넣고 right 라벨에 값을 표시한다', () => {
|
|
108
|
+
const view = render({ label: 'right', segments: [{ value: SEG_A, color: 'green' }] });
|
|
109
|
+
const [fill] = fillsOf(view);
|
|
110
|
+
expect(fillsOf(view)).toHaveLength(1);
|
|
111
|
+
expect([fill.style.width, fill.getAttribute('aria-valuenow')]).toEqual([`${SEG_A}%`, String(SEG_A)]);
|
|
112
|
+
expect(fill.classList.contains('ncua-progress-bar__fill--color-green')).toBe(true);
|
|
113
|
+
expect(requireElement(view, '.ncua-progress-bar__label-right').textContent).toBe(`${SEG_A}%`);
|
|
114
|
+
});
|
|
115
|
+
it.each([
|
|
116
|
+
['bottom', '.ncua-progress-bar__label-bottom'],
|
|
117
|
+
['top-float', '.ncua-progress-bar__label-top-float'],
|
|
118
|
+
['bottom-float', '.ncua-progress-bar__label-bottom-float'],
|
|
119
|
+
])('RPB-03 label %s 이면 SingleLabel 을 그 위치에 렌더한다', (label, selector) => {
|
|
120
|
+
const view = render({ label, segments: [{ value: SEG_A, color: 'green' }] });
|
|
121
|
+
expect(requireElement(view, selector).textContent).toBe(`${SEG_A}%`);
|
|
122
|
+
expect(view.querySelectorAll('.ncua-progress-bar__label')).toHaveLength(1);
|
|
123
|
+
});
|
|
124
|
+
it('RPB-03 세그먼트 1개 + float 라벨이면 컨테이너에 --progress-value 스타일을 준다', () => {
|
|
125
|
+
const view = render({ label: 'top-float', segments: [{ value: FLOAT_VALUE }] });
|
|
126
|
+
expect(requireElement(view, '.ncua-progress-bar').style.getPropertyValue('--progress-value')).toBe(`${FLOAT_VALUE}%`);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
// ── P1 ~ P3 ────────────────────────────────────────────
|
|
130
|
+
const containerOf = (view) => requireElement(view, '.ncua-progress-bar');
|
|
131
|
+
/** 컨테이너 직계 자식의 마지막 클래스(위치 modifier) — 라벨이 content 안/밖·앞/뒤 어디 있는지 본다 */
|
|
132
|
+
const childOrderOf = (view) => Array.from(containerOf(view).children).map((child) => child.classList[child.classList.length - 1] ?? '');
|
|
133
|
+
describe('ProgressBar — 라벨 배치 (RPB-04)', () => {
|
|
134
|
+
it('RPB-04 right 라벨은 content 안 막대 뒤에 있고 컨테이너 클래스는 ncua-progress-bar-right', () => {
|
|
135
|
+
const view = render({ label: 'right', value: VALUE });
|
|
136
|
+
const content = requireElement(view, '.ncua-progress-bar__content');
|
|
137
|
+
expect(containerOf(view).classList.contains('ncua-progress-bar-right')).toBe(true);
|
|
138
|
+
expect(Array.from(content.children).map((child) => child.classList[0])).toEqual([
|
|
139
|
+
'ncua-progress-bar__bar',
|
|
140
|
+
'ncua-progress-bar__label',
|
|
141
|
+
]);
|
|
142
|
+
expect(requireElement(content, '.ncua-progress-bar__label-right').textContent).toBe(`${VALUE}%`);
|
|
143
|
+
});
|
|
144
|
+
it.each([
|
|
145
|
+
['bottom', ['ncua-progress-bar__content', 'ncua-progress-bar__label-bottom']],
|
|
146
|
+
['top-float', ['ncua-progress-bar__label-top-float', 'ncua-progress-bar__content']],
|
|
147
|
+
['bottom-float', ['ncua-progress-bar__label-bottom-float', 'ncua-progress-bar__content']],
|
|
148
|
+
])('RPB-04 %s 라벨은 content 밖 순서 %j', (label, order) => {
|
|
149
|
+
const view = render({ label, value: VALUE });
|
|
150
|
+
expect(childOrderOf(view)).toEqual(order);
|
|
151
|
+
expect(containerOf(view).classList.contains(`ncua-progress-bar-${label}`)).toBe(true);
|
|
152
|
+
});
|
|
153
|
+
it('RPB-04 float 라벨이면 컨테이너에 --progress-value 를 준다', () => {
|
|
154
|
+
const view = render({ label: 'bottom-float', value: VALUE });
|
|
155
|
+
expect(containerOf(view).style.getPropertyValue('--progress-value')).toBe(`${VALUE}%`);
|
|
156
|
+
});
|
|
157
|
+
it('RPB-04 세그먼트 1개 + bottom-float 도 라벨이 content 앞에 온다', () => {
|
|
158
|
+
const view = render({ label: 'bottom-float', segments: [{ value: SEG_A }] });
|
|
159
|
+
expect(childOrderOf(view)).toEqual(['ncua-progress-bar__label-bottom-float', 'ncua-progress-bar__content']);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
describe('ProgressBar — 0% 라벨 (RPB-05)', () => {
|
|
163
|
+
it.each([
|
|
164
|
+
['기본(숨김)', undefined, null],
|
|
165
|
+
['showZeroLabel true', true, '0%'],
|
|
166
|
+
])('RPB-05 value 0 + %s → 라벨 %s', (_label, showZeroLabel, expected) => {
|
|
167
|
+
const view = render({ label: 'right', value: 0, showZeroLabel });
|
|
168
|
+
expect(view.querySelector('.ncua-progress-bar__label')?.textContent ?? null).toBe(expected);
|
|
169
|
+
});
|
|
170
|
+
it('RPB-05 세그먼트 1개 값 0 도 기본은 라벨을 숨긴다', () => {
|
|
171
|
+
const view = render({ label: 'bottom', segments: [{ value: 0 }] });
|
|
172
|
+
expect(view.querySelector('.ncua-progress-bar__label')).toBeNull();
|
|
173
|
+
});
|
|
174
|
+
it('RPB-05 0 세그먼트 라벨은 기본 숨김, showZeroLabel 이면 앞 폭 합 − 1 위치에 translateX(0) 로 둔다', () => {
|
|
175
|
+
const segments = [{ value: SEG_A }, { value: 0 }, { value: SEG_B }];
|
|
176
|
+
const hidden = render({ segments });
|
|
177
|
+
expect(segmentLabelsOf(hidden).map((label) => label.textContent)).toEqual([`${NORMALIZED_A}%`, `${NORMALIZED_B}%`]);
|
|
178
|
+
const shown = render({ segments, showZeroLabel: true });
|
|
179
|
+
const zero = segmentLabelsOf(shown)[1];
|
|
180
|
+
expect([zero.textContent, zero.style.left, zero.style.transform]).toEqual([
|
|
181
|
+
'0%',
|
|
182
|
+
`${NORMALIZED_A - ZERO_LABEL_OFFSET}%`,
|
|
183
|
+
'translateX(0)',
|
|
184
|
+
]);
|
|
185
|
+
});
|
|
186
|
+
it('RPB-05 첫 세그먼트가 0 이면 시작점은 0 아래로 내려가지 않는다', () => {
|
|
187
|
+
const view = render({ segments: [{ value: 0 }, { value: SEG_A }], showZeroLabel: true });
|
|
188
|
+
expect(segmentLabelsOf(view)[0].style.left).toBe('0%');
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('ProgressBar — 세그먼트 라벨 위치 (RPB-06)', () => {
|
|
192
|
+
it('RPB-06 라벨 left = 앞 세그먼트 폭 합 + 자기 폭 / 2, transform translateX(-50%)', () => {
|
|
193
|
+
const view = render({ segments: [{ value: SEG_A }, { value: SEG_B }] });
|
|
194
|
+
const labels = segmentLabelsOf(view);
|
|
195
|
+
expect(labels.map((label) => [label.style.left, label.style.transform])).toEqual([
|
|
196
|
+
[`${FIRST_LABEL_LEFT}%`, 'translateX(-50%)'],
|
|
197
|
+
[`${SECOND_LABEL_LEFT}%`, 'translateX(-50%)'],
|
|
198
|
+
]);
|
|
199
|
+
});
|
|
200
|
+
it('RPB-06 색이 없으면 색 클래스를 붙이지 않는다', () => {
|
|
201
|
+
const view = render({ segments: [{ value: SEG_A }, { value: SEG_B }] });
|
|
202
|
+
expect(fillsOf(view).some((fill) => Array.from(fill.classList).some((name) => name.includes('--color-')))).toBe(false);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
describe('ProgressBar — 다중 세그먼트 aria (RPB-07)', () => {
|
|
206
|
+
it('RPB-07 세그먼트 2개 이상이면 aria-valuenow 가 어디에도 없다', () => {
|
|
207
|
+
// 현재 동작 고정 — 결함 후보: #597 (다중 세그먼트에 진행 값 aria 가 없음 — vanilla ProgressBar.ts 와 같은 동작, 접근성)
|
|
208
|
+
const view = render({ segments: [{ value: SEG_A }, { value: SEG_B }] });
|
|
209
|
+
expect(view.querySelector('[aria-valuenow]')).toBeNull();
|
|
210
|
+
});
|
|
211
|
+
it.todo('RPB-07 세그먼트 2개 이상이면 role="progressbar" 와 합계 aria-valuenow 를 노출한다 (기대, #597)');
|
|
212
|
+
});
|
|
213
|
+
describe('ProgressBar — label 미지정 (RPB-08)', () => {
|
|
214
|
+
it('RPB-08 label 을 생략하면 컨테이너 클래스가 빈 modifier ncua-progress-bar- 를 갖고 라벨이 없다', () => {
|
|
215
|
+
// 현재 동작 고정 — 결함 후보: #597 (label 생략 시 빈 modifier "ncua-progress-bar-" 클래스가 붙음)
|
|
216
|
+
const view = render({ value: VALUE });
|
|
217
|
+
expect(containerOf(view).classList.contains('ncua-progress-bar-')).toBe(true);
|
|
218
|
+
expect(view.querySelector('.ncua-progress-bar__label')).toBeNull();
|
|
219
|
+
});
|
|
220
|
+
it.todo('RPB-08 label 을 생략하면 빈 modifier 클래스 ncua-progress-bar- 를 붙이지 않는다 (기대, #597)');
|
|
221
|
+
});
|
package/dist/temp/src/components/feedback-and-status/progress-bar/__tests__/useProgressBar.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|