@drivenets/design-system 0.1.0 → 0.3.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/CHANGELOG.md +22 -0
- package/dist/components/ds-alert-banner/ds-alert-banner.d.cts +5 -5
- package/dist/components/ds-alert-banner/ds-alert-banner.d.cts.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +5 -5
- package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts.map +1 -1
- package/dist/components/ds-avatar/ds-avatar.cjs +98 -0
- package/dist/components/ds-avatar/ds-avatar.d.cts +12 -0
- package/dist/components/ds-avatar/ds-avatar.d.cts.map +1 -0
- package/dist/components/ds-avatar/ds-avatar.d.ts +12 -0
- package/dist/components/ds-avatar/ds-avatar.d.ts.map +1 -0
- package/dist/components/ds-avatar/ds-avatar.js +97 -0
- package/dist/components/ds-avatar/ds-avatar.js.map +1 -0
- package/dist/components/ds-avatar/ds-avatar.module.cjs +17 -0
- package/dist/components/ds-avatar/ds-avatar.module.js +17 -0
- package/dist/components/ds-avatar/ds-avatar.module.js.map +1 -0
- package/dist/components/ds-avatar/ds-avatar.types.d.cts +44 -0
- package/dist/components/ds-avatar/ds-avatar.types.d.cts.map +1 -0
- package/dist/components/ds-avatar/ds-avatar.types.d.ts +44 -0
- package/dist/components/ds-avatar/ds-avatar.types.d.ts.map +1 -0
- package/dist/components/ds-avatar/index.cjs +1 -0
- package/dist/components/ds-avatar/index.d.ts +2 -0
- package/dist/components/ds-avatar/index.js +1 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.cjs +93 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.d.cts +12 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.d.cts.map +1 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.d.ts +12 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.d.ts.map +1 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.js +92 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.js.map +1 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.module.cjs +19 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.module.js +19 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.module.js.map +1 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.types.d.cts +31 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.types.d.cts.map +1 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.types.d.ts +32 -0
- package/dist/components/ds-avatar-group/ds-avatar-group.types.d.ts.map +1 -0
- package/dist/components/ds-avatar-group/index.cjs +1 -0
- package/dist/components/ds-avatar-group/index.d.ts +2 -0
- package/dist/components/ds-avatar-group/index.js +1 -0
- package/dist/components/ds-button/ds-button.d.cts +2 -2
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.cjs +23 -24
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js +23 -24
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js.map +1 -1
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.cjs +24 -25
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js +24 -25
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js.map +1 -1
- package/dist/components/ds-chip/ds-chip.cjs +2 -1
- package/dist/components/ds-chip/ds-chip.d.cts +2 -1
- package/dist/components/ds-chip/ds-chip.d.cts.map +1 -1
- package/dist/components/ds-chip/ds-chip.d.ts +2 -1
- package/dist/components/ds-chip/ds-chip.d.ts.map +1 -1
- package/dist/components/ds-chip/ds-chip.js +2 -1
- package/dist/components/ds-chip/ds-chip.js.map +1 -1
- package/dist/components/ds-chip/ds-chip.types.d.cts +13 -0
- package/dist/components/ds-chip/ds-chip.types.d.cts.map +1 -1
- package/dist/components/ds-chip/ds-chip.types.d.ts +13 -0
- package/dist/components/ds-chip/ds-chip.types.d.ts.map +1 -1
- package/dist/components/ds-chip-group/ds-chip-group.cjs +2 -2
- package/dist/components/ds-chip-group/ds-chip-group.d.cts +2 -2
- package/dist/components/ds-chip-group/ds-chip-group.d.ts +2 -2
- package/dist/components/ds-chip-group/ds-chip-group.js +2 -2
- package/dist/components/ds-chip-group/ds-chip-group.js.map +1 -1
- package/dist/components/ds-chip-group/ds-chip-group.types.d.cts +9 -0
- package/dist/components/ds-chip-group/ds-chip-group.types.d.cts.map +1 -1
- package/dist/components/ds-chip-group/ds-chip-group.types.d.ts +9 -0
- package/dist/components/ds-chip-group/ds-chip-group.types.d.ts.map +1 -1
- package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.cjs +1 -0
- package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js +1 -0
- package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js.map +1 -1
- package/dist/components/ds-confirmation/ds-confirmation.d.cts +8 -8
- package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
- package/dist/components/ds-date-input/ds-date-input.d.cts +2 -2
- package/dist/components/ds-date-input/ds-date-input.d.ts +2 -2
- package/dist/components/ds-date-input/ds-date-input.js +2 -2
- package/dist/components/ds-date-input/ds-date-input.js.map +1 -1
- package/dist/components/ds-date-input/ds-date-input.module.cjs +22 -22
- package/dist/components/ds-date-input/ds-date-input.module.js +22 -22
- package/dist/components/ds-date-input/ds-date-input.module.js.map +1 -1
- package/dist/components/ds-date-input/ds-date-input.utils.cjs +9 -2
- package/dist/components/ds-date-input/ds-date-input.utils.js +9 -2
- package/dist/components/ds-date-input/ds-date-input.utils.js.map +1 -1
- package/dist/components/ds-drawer/ds-drawer.cjs +3 -3
- package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
- package/dist/components/ds-drawer/ds-drawer.d.cts.map +1 -1
- package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
- package/dist/components/ds-drawer/ds-drawer.d.ts.map +1 -1
- package/dist/components/ds-drawer/ds-drawer.js +5 -5
- package/dist/components/ds-drawer/ds-drawer.js.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +3 -3
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts.map +1 -1
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +2 -2
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js +2 -2
- package/dist/components/ds-file-upload/utils/format-file-size.cjs +1 -1
- package/dist/components/ds-file-upload/utils/format-file-size.js +1 -1
- package/dist/components/ds-file-upload/utils/format-file-size.js.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.cjs +2 -5
- package/dist/components/ds-form-control/ds-form-control.d.cts +8 -8
- package/dist/components/ds-form-control/ds-form-control.js +2 -5
- package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
- package/dist/components/ds-loader/ds-loader.cjs +60 -0
- package/dist/components/ds-loader/ds-loader.d.cts +15 -0
- package/dist/components/ds-loader/ds-loader.d.cts.map +1 -0
- package/dist/components/ds-loader/ds-loader.d.ts +15 -0
- package/dist/components/ds-loader/ds-loader.d.ts.map +1 -0
- package/dist/components/ds-loader/ds-loader.js +59 -0
- package/dist/components/ds-loader/ds-loader.js.map +1 -0
- package/dist/components/ds-loader/ds-loader.module.cjs +15 -0
- package/dist/components/ds-loader/ds-loader.module.js +15 -0
- package/dist/components/ds-loader/ds-loader.module.js.map +1 -0
- package/dist/components/ds-loader/ds-loader.types.cjs +6 -0
- package/dist/components/ds-loader/ds-loader.types.d.cts +27 -0
- package/dist/components/ds-loader/ds-loader.types.d.cts.map +1 -0
- package/dist/components/ds-loader/ds-loader.types.d.ts +27 -0
- package/dist/components/ds-loader/ds-loader.types.d.ts.map +1 -0
- package/dist/components/ds-loader/ds-loader.types.js +6 -0
- package/dist/components/ds-loader/ds-loader.types.js.map +1 -0
- package/dist/components/ds-loader/index.cjs +2 -0
- package/dist/components/ds-loader/index.d.ts +2 -0
- package/dist/components/ds-loader/index.js +2 -0
- package/dist/components/ds-loader/pulsing-icon.cjs +37 -0
- package/dist/components/ds-loader/pulsing-icon.js +37 -0
- package/dist/components/ds-loader/pulsing-icon.js.map +1 -0
- package/dist/components/ds-loader/spinner-icon.cjs +74 -0
- package/dist/components/ds-loader/spinner-icon.js +74 -0
- package/dist/components/ds-loader/spinner-icon.js.map +1 -0
- package/dist/components/ds-modal/ds-modal.cjs +2 -2
- package/dist/components/ds-modal/ds-modal.d.cts +8 -8
- package/dist/components/ds-modal/ds-modal.d.cts.map +1 -1
- package/dist/components/ds-modal/ds-modal.d.ts +8 -8
- package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
- package/dist/components/ds-modal/ds-modal.js +2 -2
- package/dist/components/ds-modal/ds-modal.js.map +1 -1
- package/dist/components/ds-panel/ds-panel.d.cts +2 -2
- package/dist/components/ds-panel/ds-panel.d.ts +2 -2
- package/dist/components/ds-select/ds-select.cjs +1 -1
- package/dist/components/ds-select/ds-select.d.cts +2 -2
- package/dist/components/ds-select/ds-select.d.ts +2 -2
- package/dist/components/ds-select/ds-select.js +1 -1
- package/dist/components/ds-select/ds-select.js.map +1 -1
- package/dist/components/ds-skeleton/ds-skeleton-circle.cjs +59 -0
- package/dist/components/ds-skeleton/ds-skeleton-circle.d.cts +18 -0
- package/dist/components/ds-skeleton/ds-skeleton-circle.d.cts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-circle.d.ts +18 -0
- package/dist/components/ds-skeleton/ds-skeleton-circle.d.ts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-circle.js +58 -0
- package/dist/components/ds-skeleton/ds-skeleton-circle.js.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.cjs +61 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.d.cts +18 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.d.cts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.d.ts +18 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.d.ts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.js +60 -0
- package/dist/components/ds-skeleton/ds-skeleton-rect.js.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.cjs +91 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.d.cts +21 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.d.cts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.d.ts +21 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.d.ts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.js +90 -0
- package/dist/components/ds-skeleton/ds-skeleton-text.js.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.cjs +13 -0
- package/dist/components/ds-skeleton/ds-skeleton.config.cjs +62 -0
- package/dist/components/ds-skeleton/ds-skeleton.config.js +59 -0
- package/dist/components/ds-skeleton/ds-skeleton.config.js.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.d.cts +32 -0
- package/dist/components/ds-skeleton/ds-skeleton.d.cts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.d.ts +32 -0
- package/dist/components/ds-skeleton/ds-skeleton.d.ts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.js +14 -0
- package/dist/components/ds-skeleton/ds-skeleton.js.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.module.cjs +15 -0
- package/dist/components/ds-skeleton/ds-skeleton.module.js +15 -0
- package/dist/components/ds-skeleton/ds-skeleton.module.js.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.cjs +8 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.d.cts +91 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.d.cts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.d.ts +93 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.d.ts.map +1 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.js +7 -0
- package/dist/components/ds-skeleton/ds-skeleton.types.js.map +1 -0
- package/dist/components/ds-skeleton/index.cjs +5 -0
- package/dist/components/ds-skeleton/index.d.ts +5 -0
- package/dist/components/ds-skeleton/index.js +5 -0
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
- package/dist/components/ds-spinner/ds-spinner.cjs +43 -45
- package/dist/components/ds-spinner/ds-spinner.js +43 -45
- package/dist/components/ds-spinner/ds-spinner.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
- package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
- package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
- package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
- package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
- package/dist/components/ds-table/components/core-table/core-table.cjs +82 -185
- package/dist/components/ds-table/components/core-table/core-table.js +82 -185
- package/dist/components/ds-table/components/core-table/core-table.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.cjs +61 -72
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js +61 -72
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +80 -81
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.js +80 -81
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.js.map +1 -1
- package/dist/components/ds-table/ds-table.cjs +3 -3
- package/dist/components/ds-table/ds-table.d.cts +2 -3
- package/dist/components/ds-table/ds-table.d.cts.map +1 -1
- package/dist/components/ds-table/ds-table.d.ts +2 -3
- package/dist/components/ds-table/ds-table.d.ts.map +1 -1
- package/dist/components/ds-table/ds-table.js +3 -3
- package/dist/components/ds-table/ds-table.js.map +1 -1
- package/dist/components/ds-table/ds-table.types.d.cts +0 -4
- package/dist/components/ds-table/ds-table.types.d.cts.map +1 -1
- package/dist/components/ds-table/ds-table.types.d.ts +0 -4
- package/dist/components/ds-table/ds-table.types.d.ts.map +1 -1
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.cjs +7 -4
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js +7 -4
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js.map +1 -1
- package/dist/components/ds-table/filters/hooks/use-table-filters.cjs +94 -87
- package/dist/components/ds-table/filters/hooks/use-table-filters.js +94 -87
- package/dist/components/ds-table/filters/hooks/use-table-filters.js.map +1 -1
- package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.cjs +37 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.js +36 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.cjs +9 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.js +9 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/index.cjs +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-content/index.js +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.cjs +6 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.js +6 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.cjs +41 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.js +40 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.cjs +6 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.js +6 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/index.cjs +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-list/index.js +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.cjs +178 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.js +177 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.cjs +15 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.js +15 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.js.map +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/index.cjs +1 -0
- package/dist/components/ds-tabs/components/ds-tabs-tab/index.js +1 -0
- package/dist/components/ds-tabs/ds-tabs.cjs +71 -0
- package/dist/components/ds-tabs/ds-tabs.d.cts +43 -0
- package/dist/components/ds-tabs/ds-tabs.d.cts.map +1 -0
- package/dist/components/ds-tabs/ds-tabs.d.ts +43 -0
- package/dist/components/ds-tabs/ds-tabs.d.ts.map +1 -0
- package/dist/components/ds-tabs/ds-tabs.js +70 -0
- package/dist/components/ds-tabs/ds-tabs.js.map +1 -0
- package/dist/components/ds-tabs/ds-tabs.module.cjs +6 -0
- package/dist/components/ds-tabs/ds-tabs.module.js +6 -0
- package/dist/components/ds-tabs/ds-tabs.module.js.map +1 -0
- package/dist/components/ds-tabs/ds-tabs.types.d.cts +91 -0
- package/dist/components/ds-tabs/ds-tabs.types.d.cts.map +1 -0
- package/dist/components/ds-tabs/ds-tabs.types.d.ts +92 -0
- package/dist/components/ds-tabs/ds-tabs.types.d.ts.map +1 -0
- package/dist/components/ds-tabs/index.cjs +1 -0
- package/dist/components/ds-tabs/index.d.ts +2 -0
- package/dist/components/ds-tabs/index.js +1 -0
- package/dist/components/ds-tag/ds-tag.cjs +254 -0
- package/dist/components/ds-tag/ds-tag.d.cts +25 -0
- package/dist/components/ds-tag/ds-tag.d.cts.map +1 -0
- package/dist/components/ds-tag/ds-tag.d.ts +25 -0
- package/dist/components/ds-tag/ds-tag.d.ts.map +1 -0
- package/dist/components/ds-tag/ds-tag.js +253 -0
- package/dist/components/ds-tag/ds-tag.js.map +1 -0
- package/dist/components/ds-tag/ds-tag.module.cjs +17 -0
- package/dist/components/ds-tag/ds-tag.module.js +17 -0
- package/dist/components/ds-tag/ds-tag.module.js.map +1 -0
- package/dist/components/ds-tag/ds-tag.types.d.cts +68 -0
- package/dist/components/ds-tag/ds-tag.types.d.cts.map +1 -0
- package/dist/components/ds-tag/ds-tag.types.d.ts +68 -0
- package/dist/components/ds-tag/ds-tag.types.d.ts.map +1 -0
- package/dist/components/ds-tag/index.cjs +1 -0
- package/dist/components/ds-tag/index.d.ts +2 -0
- package/dist/components/ds-tag/index.js +1 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.cjs +325 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.d.cts +24 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.d.cts.map +1 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.d.ts +24 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.d.ts.map +1 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.js +324 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.js.map +1 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.module.cjs +17 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.module.js +17 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.module.js.map +1 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.types.d.cts +71 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.types.d.cts.map +1 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.types.d.ts +72 -0
- package/dist/components/ds-tag-filter/ds-tag-filter.types.d.ts.map +1 -0
- package/dist/components/ds-tag-filter/hooks/use-tag-overflow-calculation.cjs +137 -0
- package/dist/components/ds-tag-filter/hooks/use-tag-overflow-calculation.js +137 -0
- package/dist/components/ds-tag-filter/hooks/use-tag-overflow-calculation.js.map +1 -0
- package/dist/components/ds-tag-filter/index.cjs +1 -0
- package/dist/components/ds-tag-filter/index.d.ts +2 -0
- package/dist/components/ds-tag-filter/index.js +1 -0
- package/dist/components/ds-tag-filter/utils.cjs +54 -0
- package/dist/components/ds-tag-filter/utils.js +52 -0
- package/dist/components/ds-tag-filter/utils.js.map +1 -0
- package/dist/components/ds-text-input/ds-text-input.js +2 -2
- package/dist/components/ds-toggle/ds-toggle.d.cts +2 -2
- package/dist/components/ds-toggle/ds-toggle.d.ts +2 -2
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
- package/dist/index.cjs +34 -2
- package/dist/index.d.cts +20 -3
- package/dist/index.d.ts +28 -4
- package/dist/index.js +22 -3
- package/dist/index.min.css +1 -1
- package/package.json +10 -4
- package/src/components/ds-avatar/_mixins.scss +45 -0
- package/src/components/ds-avatar/ds-avatar.module.scss +52 -0
- package/src/components/ds-avatar/ds-avatar.tsx +42 -0
- package/src/components/ds-avatar/ds-avatar.types.ts +41 -0
- package/src/components/ds-avatar/index.ts +2 -0
- package/src/components/ds-avatar-group/ds-avatar-group.module.scss +70 -0
- package/src/components/ds-avatar-group/ds-avatar-group.tsx +51 -0
- package/src/components/ds-avatar-group/ds-avatar-group.types.ts +27 -0
- package/src/components/ds-avatar-group/index.ts +2 -0
- package/src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.tsx +1 -7
- package/src/components/ds-button/versions/ds-button-new/ds-button-new.tsx +4 -2
- package/src/components/ds-chip/ds-chip.tsx +2 -1
- package/src/components/ds-chip/ds-chip.types.tsx +13 -0
- package/src/components/ds-chip/index.tsx +8 -0
- package/src/components/ds-chip-group/ds-chip-group.tsx +2 -2
- package/src/components/ds-chip-group/ds-chip-group.types.ts +8 -0
- package/src/components/ds-chip-group/hooks/use-chip-row-calculation.ts +5 -0
- package/src/components/ds-chip-group/index.ts +1 -0
- package/src/components/ds-date-input/ds-date-input.module.scss +1 -0
- package/src/components/ds-date-input/ds-date-input.utils.ts +16 -2
- package/src/components/ds-drawer/ds-drawer.tsx +4 -1
- package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.tsx +4 -1
- package/src/components/ds-file-upload/utils/format-file-size.ts +1 -1
- package/src/components/ds-form-control/ds-form-control.tsx +9 -2
- package/src/components/ds-loader/ds-loader.module.scss +57 -0
- package/src/components/ds-loader/ds-loader.tsx +18 -0
- package/src/components/ds-loader/ds-loader.types.ts +24 -0
- package/src/components/ds-loader/index.ts +2 -0
- package/src/components/ds-loader/pulsing-icon.tsx +17 -0
- package/src/components/ds-loader/spinner-icon.tsx +37 -0
- package/src/components/ds-modal/ds-modal.tsx +7 -1
- package/src/components/ds-select/ds-select.tsx +1 -1
- package/src/components/ds-skeleton/ds-skeleton-circle.tsx +29 -0
- package/src/components/ds-skeleton/ds-skeleton-rect.tsx +36 -0
- package/src/components/ds-skeleton/ds-skeleton-text.tsx +49 -0
- package/src/components/ds-skeleton/ds-skeleton.config.ts +68 -0
- package/src/components/ds-skeleton/ds-skeleton.module.scss +72 -0
- package/src/components/ds-skeleton/ds-skeleton.tsx +9 -0
- package/src/components/ds-skeleton/ds-skeleton.types.ts +92 -0
- package/src/components/ds-skeleton/index.ts +5 -0
- package/src/components/ds-spinner/ds-spinner.tsx +1 -1
- package/src/components/ds-table/components/core-table/core-table.tsx +16 -16
- package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.tsx +10 -13
- package/src/components/ds-table/components/ds-table-row/ds-table-row.tsx +0 -2
- package/src/components/ds-table/ds-table.tsx +6 -5
- package/src/components/ds-table/ds-table.types.ts +0 -5
- package/src/components/ds-table/filters/adapters/create-dual-range-filter-adapter.tsx +2 -4
- package/src/components/ds-table/filters/hooks/use-table-filters.ts +10 -5
- package/src/components/ds-table/utils/story-data-generator.ts +7 -7
- package/src/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.scss +18 -0
- package/src/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.tsx +12 -0
- package/src/components/ds-tabs/components/ds-tabs-content/index.ts +1 -0
- package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.scss +31 -0
- package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.scss +27 -0
- package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.tsx +14 -0
- package/src/components/ds-tabs/components/ds-tabs-list/index.ts +1 -0
- package/src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.scss +242 -0
- package/src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.tsx +130 -0
- package/src/components/ds-tabs/components/ds-tabs-tab/index.ts +1 -0
- package/src/components/ds-tabs/ds-tabs.module.scss +14 -0
- package/src/components/ds-tabs/ds-tabs.tsx +46 -0
- package/src/components/ds-tabs/ds-tabs.types.ts +97 -0
- package/src/components/ds-tabs/index.ts +2 -0
- package/src/components/ds-tag/ds-tag.module.scss +112 -0
- package/src/components/ds-tag/ds-tag.tsx +124 -0
- package/src/components/ds-tag/ds-tag.types.tsx +67 -0
- package/src/components/ds-tag/index.tsx +2 -0
- package/src/components/ds-tag-filter/ds-tag-filter.module.scss +72 -0
- package/src/components/ds-tag-filter/ds-tag-filter.tsx +178 -0
- package/src/components/ds-tag-filter/ds-tag-filter.types.ts +68 -0
- package/src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts +135 -0
- package/src/components/ds-tag-filter/index.ts +2 -0
- package/src/components/ds-tag-filter/utils.test.ts +401 -0
- package/src/components/ds-tag-filter/utils.ts +65 -0
- package/src/index.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip.d.ts","names":[],"sources":["../../../src/components/ds-chip/ds-chip.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAGmD
|
|
1
|
+
{"version":3,"file":"ds-chip.d.ts","names":[],"sources":["../../../src/components/ds-chip/ds-chip.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAGmD;;cAQ7C,QAAQ,KAAA,CAAM,GAAG"}
|
|
@@ -9,7 +9,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
|
|
10
10
|
//#region src/components/ds-chip/ds-chip.tsx
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* @deprecated This component is deprecated. Use `DsTag` instead.
|
|
13
|
+
* @see {@link ../ds-tag} for the replacement component.
|
|
13
14
|
*/
|
|
14
15
|
const DsChip = (t0) => {
|
|
15
16
|
const $ = c(29);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip.js","names":["React","classNames","styles","DsChipProps","DsIcon","DsTypography","DsChip","FC","t0","$","_c","ref","label","className","style","t1","onClick","onDelete","size","t2","deleteIcon","selected","t3","t4","undefined","t5","t6","t7","chip","clickable","small","chipClass","t8","event","stopPropagation","handleDeleteClick","t9","event_0","key","preventDefault","handleKeyDown","t10","Ref","HTMLDivElement","t11","t12","t13","t14","t15","t16","deleteButton","t17"],"sources":["../../../src/components/ds-chip/ds-chip.tsx"],"sourcesContent":["import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-chip.module.scss';\nimport type { DsChipProps } from './ds-chip.types';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"ds-chip.js","names":["React","classNames","styles","DsChipProps","DsIcon","DsTypography","DsChip","FC","t0","$","_c","ref","label","className","style","t1","onClick","onDelete","size","t2","deleteIcon","selected","t3","t4","undefined","t5","t6","t7","chip","clickable","small","chipClass","t8","event","stopPropagation","handleDeleteClick","t9","event_0","key","preventDefault","handleKeyDown","t10","Ref","HTMLDivElement","t11","t12","t13","t14","t15","t16","deleteButton","t17"],"sources":["../../../src/components/ds-chip/ds-chip.tsx"],"sourcesContent":["import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-chip.module.scss';\nimport type { DsChipProps } from './ds-chip.types';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * @deprecated This component is deprecated. Use `DsTag` instead.\n * @see {@link ../ds-tag} for the replacement component.\n */\nconst DsChip: React.FC<DsChipProps> = ({\n\tref,\n\tlabel,\n\tclassName,\n\tstyle = {},\n\tonClick,\n\tonDelete,\n\tsize = 'medium',\n\tdeleteIcon,\n\tselected = false,\n}) => {\n\tconst chipClass = classNames(\n\t\tstyles.chip,\n\t\t{\n\t\t\t[styles.clickable]: onClick !== undefined,\n\t\t\t[styles.small]: size === 'small',\n\t\t},\n\t\tclassName,\n\t);\n\n\tconst handleDeleteClick = (event: React.MouseEvent<HTMLElement>) => {\n\t\tevent.stopPropagation();\n\t\tonDelete?.(event);\n\t};\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n\t\tif (onDelete && (event.key === 'Backspace' || event.key === 'Delete')) {\n\t\t\tevent.preventDefault();\n\t\t\tonDelete(event);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={ref as React.Ref<HTMLDivElement>}\n\t\t\tclassName={chipClass}\n\t\t\tstyle={style}\n\t\t\tonClick={onClick}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\trole={onClick || onDelete ? 'button' : undefined}\n\t\t\ttabIndex={onClick || onDelete ? 0 : undefined}\n\t\t\taria-label={label}\n\t\t\taria-pressed={onClick && selected ? 'true' : undefined}\n\t\t>\n\t\t\t<DsTypography variant={size === 'small' ? 'body-xs-reg' : 'body-sm-reg'} className={styles.label}>\n\t\t\t\t{label}\n\t\t\t</DsTypography>\n\t\t\t{onDelete && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName={styles.deleteButton}\n\t\t\t\t\tonClick={handleDeleteClick}\n\t\t\t\t\taria-label=\"Delete chip\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t>\n\t\t\t\t\t<DsIcon icon={deleteIcon || 'cancel'} size=\"tiny\" />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default DsChip;\n"],"mappings":"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"}
|
|
@@ -2,8 +2,21 @@ import { IconType } from "../ds-icon/ds-icon.types.cjs";
|
|
|
2
2
|
import { CSSProperties, KeyboardEvent, MouseEvent, Ref } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/ds-chip/ds-chip.types.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated This type is deprecated. Use `DsTag` instead.
|
|
8
|
+
* @see {@link ../ds-tag} for the replacement component.
|
|
9
|
+
*/
|
|
5
10
|
declare const chipSizes: readonly ["medium", "small"];
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated This type is deprecated. Use `DsTag` instead.
|
|
13
|
+
* @see {@link ../ds-tag} for the replacement component.
|
|
14
|
+
*/
|
|
6
15
|
type ChipSize = (typeof chipSizes)[number];
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated This interface is deprecated. Use `DsTagProps` from `ds-tag` instead.
|
|
18
|
+
* @see {@link ../ds-tag/ds-tag.types} for the replacement interface.
|
|
19
|
+
*/
|
|
7
20
|
interface DsChipProps {
|
|
8
21
|
/**
|
|
9
22
|
* Ref to the chip element
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip.types.d.cts","names":[],"sources":["../../../src/components/ds-chip/ds-chip.types.tsx"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-chip.types.d.cts","names":[],"sources":["../../../src/components/ds-chip/ds-chip.types.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAOA;AAMA;AAMiB,cAZJ,SAYe,EAAA,SAAA,CAAA,QAAA,EAAA,OAAA,CAAA;;;;;AAoBT,KA1BP,QAAA,GA0BO,CAAA,OA1BY,SA0BZ,CAAA,CAAA,MAAA,CAAA;;;;;AASX,UA7BS,WAAA,CA6BT;EAIM;;;QA7BP,IAAI;;;;;;;;;;;;UAYF;;;;oBAIU,WAAW;;;;qBAIV,WAAW,eAAe,cAAc;;;;;SAKpD;;;;eAIM"}
|
|
@@ -3,8 +3,21 @@ import "../ds-icon/index.js";
|
|
|
3
3
|
import { CSSProperties, KeyboardEvent, MouseEvent, Ref } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/ds-chip/ds-chip.types.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated This type is deprecated. Use `DsTag` instead.
|
|
9
|
+
* @see {@link ../ds-tag} for the replacement component.
|
|
10
|
+
*/
|
|
6
11
|
declare const chipSizes: readonly ["medium", "small"];
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated This type is deprecated. Use `DsTag` instead.
|
|
14
|
+
* @see {@link ../ds-tag} for the replacement component.
|
|
15
|
+
*/
|
|
7
16
|
type ChipSize = (typeof chipSizes)[number];
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated This interface is deprecated. Use `DsTagProps` from `ds-tag` instead.
|
|
19
|
+
* @see {@link ../ds-tag/ds-tag.types} for the replacement interface.
|
|
20
|
+
*/
|
|
8
21
|
interface DsChipProps {
|
|
9
22
|
/**
|
|
10
23
|
* Ref to the chip element
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip.types.d.ts","names":[],"sources":["../../../src/components/ds-chip/ds-chip.types.tsx"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-chip.types.d.ts","names":[],"sources":["../../../src/components/ds-chip/ds-chip.types.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;AAOA;AAMY,cANC,SAMkB,EAAA,SAAS,CAAA,QAAA,EAAA,OAAA,CAAA;AAMxC;;;;AAoB8B,KA1BlB,QAAA,GA0BkB,CAAA,OA1BC,SA0BD,CAAA,CAAA,MAAA,CAAA;;;;;AAIgB,UAxB7B,WAAA,CAwB6B;EAKtC;;;QAzBD,IAAI;;;;;;;;;;;;UAYF;;;;oBAIU,WAAW;;;;qBAIV,WAAW,eAAe,cAAc;;;;;SAKpD;;;;eAIM"}
|
|
@@ -20,8 +20,8 @@ let __radix_ui_react_visually_hidden = require("@radix-ui/react-visually-hidden"
|
|
|
20
20
|
|
|
21
21
|
//#region src/components/ds-chip-group/ds-chip-group.tsx
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* @deprecated This component is deprecated. Use `DsTagFilter` instead.
|
|
24
|
+
* @see {@link ../ds-tag-filter} for the replacement component.
|
|
25
25
|
*/
|
|
26
26
|
const DsChipGroup = ({ items, label = "Filtered by:", onClearAll, onItemDelete, onItemSelect, className, style }) => {
|
|
27
27
|
const [dialogOpen, setDialogOpen] = (0, react.useState)(false);
|
|
@@ -4,8 +4,8 @@ import React from "react";
|
|
|
4
4
|
//#region src/components/ds-chip-group/ds-chip-group.d.ts
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* @deprecated This component is deprecated. Use `DsTagFilter` instead.
|
|
8
|
+
* @see {@link ../ds-tag-filter} for the replacement component.
|
|
9
9
|
*/
|
|
10
10
|
declare const DsChipGroup: React.FC<DsChipGroupProps>;
|
|
11
11
|
//#endregion
|
|
@@ -4,8 +4,8 @@ import React from "react";
|
|
|
4
4
|
//#region src/components/ds-chip-group/ds-chip-group.d.ts
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* @deprecated This component is deprecated. Use `DsTagFilter` instead.
|
|
8
|
+
* @see {@link ../ds-tag-filter} for the replacement component.
|
|
9
9
|
*/
|
|
10
10
|
declare const DsChipGroup: React.FC<DsChipGroupProps>;
|
|
11
11
|
//#endregion
|
|
@@ -17,8 +17,8 @@ import { Root } from "@radix-ui/react-visually-hidden";
|
|
|
17
17
|
|
|
18
18
|
//#region src/components/ds-chip-group/ds-chip-group.tsx
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* @deprecated This component is deprecated. Use `DsTagFilter` instead.
|
|
21
|
+
* @see {@link ../ds-tag-filter} for the replacement component.
|
|
22
22
|
*/
|
|
23
23
|
const DsChipGroup = ({ items, label = "Filtered by:", onClearAll, onItemDelete, onItemSelect, className, style }) => {
|
|
24
24
|
const [dialogOpen, setDialogOpen] = useState(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip-group.js","names":["React","useRef","useState","RadixDialog","Root","VisuallyHidden","classNames","styles","DsChipGroupProps","useChipRowCalculation","DsTypography","DsChip","DsCheckbox","DsButton","DsIcon","DsChipGroup","FC","items","label","onClearAll","onItemDelete","onItemSelect","className","style","dialogOpen","setDialogOpen","showAllChipsRef","HTMLDivElement","chipsWrapperRef","visibleCount","totalFilters","length","hiddenCount","showExpandButton","handleOpenDialog","dialogStyle","CSSProperties","current","rect","getBoundingClientRect","position","top","bottom","left","container","chipsWrapper","map","item","index","id","selected","hidden","String","expandChip","dialog","dialogContent","filter","itemCheckbox"],"sources":["../../../src/components/ds-chip-group/ds-chip-group.tsx"],"sourcesContent":["import type React from 'react';\nimport { useRef, useState } from 'react';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport { Root as VisuallyHidden } from '@radix-ui/react-visually-hidden';\nimport classNames from 'classnames';\nimport styles from './ds-chip-group.module.scss';\nimport type { DsChipGroupProps } from './ds-chip-group.types';\nimport { useChipRowCalculation } from './hooks/use-chip-row-calculation';\nimport { DsTypography } from '../ds-typography';\nimport DsChip from '../ds-chip/ds-chip';\nimport { DsCheckbox } from '../ds-checkbox';\nimport { DsButton } from '../ds-button';\nimport { DsIcon } from '../ds-icon';\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"ds-chip-group.js","names":["React","useRef","useState","RadixDialog","Root","VisuallyHidden","classNames","styles","DsChipGroupProps","useChipRowCalculation","DsTypography","DsChip","DsCheckbox","DsButton","DsIcon","DsChipGroup","FC","items","label","onClearAll","onItemDelete","onItemSelect","className","style","dialogOpen","setDialogOpen","showAllChipsRef","HTMLDivElement","chipsWrapperRef","visibleCount","totalFilters","length","hiddenCount","showExpandButton","handleOpenDialog","dialogStyle","CSSProperties","current","rect","getBoundingClientRect","position","top","bottom","left","container","chipsWrapper","map","item","index","id","selected","hidden","String","expandChip","dialog","dialogContent","filter","itemCheckbox"],"sources":["../../../src/components/ds-chip-group/ds-chip-group.tsx"],"sourcesContent":["import type React from 'react';\nimport { useRef, useState } from 'react';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport { Root as VisuallyHidden } from '@radix-ui/react-visually-hidden';\nimport classNames from 'classnames';\nimport styles from './ds-chip-group.module.scss';\nimport type { DsChipGroupProps } from './ds-chip-group.types';\nimport { useChipRowCalculation } from './hooks/use-chip-row-calculation';\nimport { DsTypography } from '../ds-typography';\nimport DsChip from '../ds-chip/ds-chip';\nimport { DsCheckbox } from '../ds-checkbox';\nimport { DsButton } from '../ds-button';\nimport { DsIcon } from '../ds-icon';\n\n/**\n * @deprecated This component is deprecated. Use `DsTagFilter` instead.\n * @see {@link ../ds-tag-filter} for the replacement component.\n */\nconst DsChipGroup: React.FC<DsChipGroupProps> = ({\n\titems,\n\tlabel = 'Filtered by:',\n\tonClearAll,\n\tonItemDelete,\n\tonItemSelect,\n\tclassName,\n\tstyle,\n}) => {\n\tconst [dialogOpen, setDialogOpen] = useState(false);\n\tconst showAllChipsRef = useRef<HTMLDivElement>(null);\n\tconst chipsWrapperRef = useRef<HTMLDivElement>(null);\n\tconst visibleCount = useChipRowCalculation({\n\t\tchipsWrapperRef,\n\t\ttotalFilters: items.length,\n\t});\n\n\tif (items.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst hiddenCount = items.length - visibleCount;\n\tconst showExpandButton = hiddenCount > 0;\n\n\tconst handleOpenDialog = () => {\n\t\tsetDialogOpen(true);\n\t};\n\n\tlet dialogStyle: React.CSSProperties = {};\n\tif (showExpandButton && showAllChipsRef.current) {\n\t\tconst rect = showAllChipsRef.current.getBoundingClientRect();\n\t\tdialogStyle = {\n\t\t\tposition: 'fixed',\n\t\t\ttop: rect.bottom + 4,\n\t\t\tleft: rect.left,\n\t\t};\n\t}\n\n\treturn (\n\t\t<div className={classNames(styles.container, className)} style={style}>\n\t\t\t{label && (\n\t\t\t\t<DsTypography variant=\"body-sm-reg\" className={styles.label}>\n\t\t\t\t\t{label}\n\t\t\t\t</DsTypography>\n\t\t\t)}\n\n\t\t\t<div ref={chipsWrapperRef} className={styles.chipsWrapper}>\n\t\t\t\t{items.map((item, index) => (\n\t\t\t\t\t<DsChip\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\tlabel={item.label}\n\t\t\t\t\t\tselected={item.selected}\n\t\t\t\t\t\tonClick={() => onItemSelect?.(item)}\n\t\t\t\t\t\tonDelete={() => onItemDelete?.(item)}\n\t\t\t\t\t\tclassName={classNames({\n\t\t\t\t\t\t\t[styles.hidden]: index >= visibleCount,\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t\t{showExpandButton && (\n\t\t\t\t\t<DsChip\n\t\t\t\t\t\tref={showAllChipsRef}\n\t\t\t\t\t\tlabel={`+${String(hiddenCount)} ${hiddenCount === 1 ? 'item' : 'items'} show all`}\n\t\t\t\t\t\tonClick={handleOpenDialog}\n\t\t\t\t\t\tclassName={styles.expandChip}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{onClearAll && (\n\t\t\t\t<DsButton design=\"v1.2\" buttonType=\"tertiary\" variant=\"ghost\" size=\"small\" onClick={onClearAll}>\n\t\t\t\t\t<DsIcon icon=\"close\" />\n\t\t\t\t\tClear all\n\t\t\t\t</DsButton>\n\t\t\t)}\n\n\t\t\t<RadixDialog.Root open={dialogOpen} onOpenChange={setDialogOpen}>\n\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t<RadixDialog.Title />\n\t\t\t\t</VisuallyHidden>\n\t\t\t\t<RadixDialog.Portal>\n\t\t\t\t\t<RadixDialog.Content style={dialogStyle} className={styles.dialog}>\n\t\t\t\t\t\t<div className={styles.dialogContent}>\n\t\t\t\t\t\t\t{items\n\t\t\t\t\t\t\t\t.filter((item, index) => index >= visibleCount)\n\t\t\t\t\t\t\t\t.map((item) => (\n\t\t\t\t\t\t\t\t\t<div key={item.id} className={styles.itemCheckbox}>\n\t\t\t\t\t\t\t\t\t\t<DsCheckbox\n\t\t\t\t\t\t\t\t\t\t\tid={`chip-${item.id}`}\n\t\t\t\t\t\t\t\t\t\t\tchecked={item.selected}\n\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={() => onItemSelect?.(item)}\n\t\t\t\t\t\t\t\t\t\t\tlabel={item.label}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</RadixDialog.Content>\n\t\t\t\t</RadixDialog.Portal>\n\t\t\t</RadixDialog.Root>\n\t\t</div>\n\t);\n};\n\nexport default DsChipGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAMe,eAA2C,EAChDE,OACAC,QAAQ,gBACRC,YACAC,cACAC,cACAC,WACAC,YACK;CACL,MAAM,CAACC,YAAYC,iBAAiBvB,SAAS,MAAM;CACnD,MAAMwB,kBAAkBzB,OAAuB,KAAK;CACpD,MAAM2B,kBAAkB3B,OAAuB,KAAK;CACpD,MAAM4B,eAAepB,sBAAsB;EAC1CmB;EACAE,cAAcb,MAAMc;EACpB,CAAC;AAEF,KAAId,MAAMc,WAAW,EACpB,QAAO;CAGR,MAAMC,cAAcf,MAAMc,SAASF;CACnC,MAAMI,mBAAmBD,cAAc;CAEvC,MAAME,yBAAyB;AAC9BT,gBAAc,KAAK;;CAGpB,IAAIU,cAAmC,EAAE;AACzC,KAAIF,oBAAoBP,gBAAgBW,SAAS;EAChD,MAAMC,OAAOZ,gBAAgBW,QAAQE,uBAAuB;AAC5DJ,gBAAc;GACbK,UAAU;GACVC,KAAKH,KAAKI,SAAS;GACnBC,MAAML,KAAKK;GACX;;AAGF,QACC,qBAAC;EAAI,WAAWrC,WAAWC,6BAAOqC,WAAWtB,UAAU;EAASC;;GAC9DL,SACA,oBAAC;IAAa,SAAQ;IAAc,WAAWX,6BAAOW;cACpDA;KAEF;GAED,qBAAC;IAAI,KAAKU;IAAiB,WAAWrB,6BAAOsC;eAC3C5B,MAAM6B,KAAKC,MAAMC,UACjB,oBAAC;KAEA,OAAOD,KAAK7B;KACZ,UAAU6B,KAAKG;KACf,eAAe7B,eAAe0B,KAAK;KACnC,gBAAgB3B,eAAe2B,KAAK;KACpC,WAAWzC,WAAW,GACpBC,6BAAO4C,SAASH,SAASnB,cAC1B,CAAC;OAPGkB,KAAKE,GASX,CAAC,EACDhB,oBACA,oBAAC;KACA,KAAKP;KACL,OAAO,IAAI0B,OAAOpB,YAAY,CAAA,GAAIA,gBAAgB,IAAI,SAAS,QAAO;KACtE,SAASE;KACT,WAAW3B,6BAAO8C;MAEnB;KACG;GAEJlC,cACA,qBAAC;IAAS,QAAO;IAAO,YAAW;IAAW,SAAQ;IAAQ,MAAK;IAAQ,SAASA;eACnF,oBAAC,mBAAO,MAAK,UAAO;KAGrB;GAED,qBAAC,YAAY;IAAK,MAAMK;IAAY,cAAcC;eACjD,oBAAC,kBACA,oBAAC,YAAY,UAAK,GACH,EAChB,oBAAC,YAAY,oBACZ,oBAAC,YAAY;KAAQ,OAAOU;KAAa,WAAW5B,6BAAO+C;eAC1D,oBAAC;MAAI,WAAW/C,6BAAOgD;gBACrBtC,MACCuC,QAAQT,QAAMC,YAAUA,WAASnB,aAAa,CAC9CiB,KAAKC,WACL,oBAAC;OAAkB,WAAWxC,6BAAOkD;iBACpC,oBAAC;QACA,IAAI,QAAQV,OAAKE;QACjB,SAASF,OAAKG;QACd,uBAAuB7B,eAAe0B,OAAK;QAC3C,OAAOA,OAAK7B;SAAM;SALV6B,OAAKE,GAQf,CAAC;OACC;MACe,GACF;KACH;;GACb;;AAIR,4BAAelC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { CSSProperties } from "react";
|
|
2
2
|
|
|
3
3
|
//#region src/components/ds-chip-group/ds-chip-group.types.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated This interface is deprecated. Use `DsTagFilter` types instead.
|
|
7
|
+
* @see {@link ../ds-tag-filter} for the replacement types.
|
|
8
|
+
*/
|
|
4
9
|
interface ChipItem {
|
|
5
10
|
/**
|
|
6
11
|
* Unique identifier for the chip
|
|
@@ -19,6 +24,10 @@ interface ChipItem {
|
|
|
19
24
|
*/
|
|
20
25
|
selected?: boolean;
|
|
21
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated This interface is deprecated. Use `DsTagFilterProps` from `ds-tag-filter` instead.
|
|
29
|
+
* @see {@link ../ds-tag-filter/ds-tag-filter.types} for the replacement interface.
|
|
30
|
+
*/
|
|
22
31
|
interface DsChipGroupProps {
|
|
23
32
|
/**
|
|
24
33
|
* Array of chip items to display
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip-group.types.d.cts","names":[],"sources":["../../../src/components/ds-chip-group/ds-chip-group.types.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-chip-group.types.d.cts","names":[],"sources":["../../../src/components/ds-chip-group/ds-chip-group.types.ts"],"sourcesContent":[],"mappings":";;;;;;AAMA;AAuBA;AAIQ,UA3BS,QAAA,CA2BT;EAae;;;EAYD,EAAA,EAAA,MAAA;;;;;;;;aAxCV;;;;;;;;;;UAWK,gBAAA;;;;SAIT;;;;;;;;;;;;;wBAae;;;;wBAIA;;;;;;;;UAQd"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { CSSProperties } from "react";
|
|
2
2
|
|
|
3
3
|
//#region src/components/ds-chip-group/ds-chip-group.types.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated This interface is deprecated. Use `DsTagFilter` types instead.
|
|
7
|
+
* @see {@link ../ds-tag-filter} for the replacement types.
|
|
8
|
+
*/
|
|
4
9
|
interface ChipItem {
|
|
5
10
|
/**
|
|
6
11
|
* Unique identifier for the chip
|
|
@@ -19,6 +24,10 @@ interface ChipItem {
|
|
|
19
24
|
*/
|
|
20
25
|
selected?: boolean;
|
|
21
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated This interface is deprecated. Use `DsTagFilterProps` from `ds-tag-filter` instead.
|
|
29
|
+
* @see {@link ../ds-tag-filter/ds-tag-filter.types} for the replacement interface.
|
|
30
|
+
*/
|
|
22
31
|
interface DsChipGroupProps {
|
|
23
32
|
/**
|
|
24
33
|
* Array of chip items to display
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-chip-group.types.d.ts","names":[],"sources":["../../../src/components/ds-chip-group/ds-chip-group.types.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-chip-group.types.d.ts","names":[],"sources":["../../../src/components/ds-chip-group/ds-chip-group.types.ts"],"sourcesContent":[],"mappings":";;;;;;AAMA;AAuBA;AAIQ,UA3BS,QAAA,CA2BT;EAae;;;EAYD,EAAA,EAAA,MAAA;;;;;;;;aAxCV;;;;;;;;;;UAWK,gBAAA;;;;SAIT;;;;;;;;;;;;;wBAae;;;;wBAIA;;;;;;;;UAQd"}
|
|
@@ -21,6 +21,7 @@ const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }) => {
|
|
|
21
21
|
let total = 0;
|
|
22
22
|
for (index = 0; index < children.length; index++) {
|
|
23
23
|
const current = children[index];
|
|
24
|
+
if (!current) continue;
|
|
24
25
|
const next = (current.offsetWidth === wrapper.clientWidth ? 0 : gap) + current.offsetWidth;
|
|
25
26
|
if (total + next >= wrapper.clientWidth) {
|
|
26
27
|
line++;
|
|
@@ -20,6 +20,7 @@ const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }) => {
|
|
|
20
20
|
let total = 0;
|
|
21
21
|
for (index = 0; index < children.length; index++) {
|
|
22
22
|
const current = children[index];
|
|
23
|
+
if (!current) continue;
|
|
23
24
|
const next = (current.offsetWidth === wrapper.clientWidth ? 0 : gap) + current.offsetWidth;
|
|
24
25
|
if (total + next >= wrapper.clientWidth) {
|
|
25
26
|
line++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chip-row-calculation.js","names":["RefObject","useLayoutEffect","useState","UseChipRowCalculationProps","chipsWrapperRef","HTMLDivElement","totalFilters","useChipRowCalculation","visibleCount","setVisibleCount","calculateVisibleChips","current","wrapper","children","Array","from","HTMLElement","length","cs","getComputedStyle","gap","parseFloat","columnGap","index","line","total","offset","offsetWidth","clientWidth","next","result","Math","max","rafId","requestAnimationFrame","resizeObserver","ResizeObserver","observe","cancelAnimationFrame","disconnect"],"sources":["../../../../src/components/ds-chip-group/hooks/use-chip-row-calculation.ts"],"sourcesContent":["import { type RefObject, useLayoutEffect, useState } from 'react';\n\ninterface UseChipRowCalculationProps {\n\tchipsWrapperRef: RefObject<HTMLDivElement | null>;\n\ttotalFilters: number;\n}\n\n/**\n * Custom hook to calculate how many chips can fit in 2 rows\n * Uses a simple approach: render all, measure positions, hide overflow\n */\nexport const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }: UseChipRowCalculationProps) => {\n\tconst [visibleCount, setVisibleCount] = useState(totalFilters);\n\n\tuseLayoutEffect(() => {\n\t\tconst calculateVisibleChips = () => {\n\t\t\tif (!chipsWrapperRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapper = chipsWrapperRef.current;\n\t\t\tconst children = Array.from(wrapper.children) as HTMLElement[];\n\n\t\t\tif (children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst cs = getComputedStyle(wrapper);\n\t\t\tconst gap = parseFloat(cs.columnGap || cs.gap || '0') || 8;\n\t\t\tlet index;\n\t\t\tlet line = 0;\n\t\t\tlet total = 0;\n\n\t\t\tfor (index = 0; index < children.length; index++) {\n\t\t\t\tconst current = children[index];\n\t\t\t\tconst offset = current.offsetWidth === wrapper.clientWidth ? 0 : gap;\n\t\t\t\tconst next = offset + current.offsetWidth;\n\n\t\t\t\tif (total + next >= wrapper.clientWidth) {\n\t\t\t\t\tline++;\n\t\t\t\t\tif (line >= 2) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ttotal = next;\n\t\t\t\t} else {\n\t\t\t\t\ttotal += next;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst result = Math.max(1, line < 2 ? index : index - 1);\n\t\t\tsetVisibleCount(result);\n\t\t};\n\n\t\t// Use requestAnimationFrame to ensure DOM is fully laid out\n\t\tconst rafId = requestAnimationFrame(() => {\n\t\t\tcalculateVisibleChips();\n\t\t});\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tcalculateVisibleChips();\n\t\t\t});\n\t\t});\n\n\t\tif (chipsWrapperRef.current) {\n\t\t\tresizeObserver.observe(chipsWrapperRef.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(rafId);\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [chipsWrapperRef, totalFilters]);\n\n\treturn visibleCount;\n};\n"],"mappings":";;;;;;;AAWA,MAAaO,yBAAyB,EAAEH,iBAAiBE,mBAA+C;CACvG,MAAM,CAACE,cAAcC,mBAAmBP,SAASI,aAAa;AAE9DL,uBAAsB;EACrB,MAAMS,8BAA8B;AACnC,OAAI,CAACN,gBAAgBO,QACpB;GAGD,MAAMC,UAAUR,gBAAgBO;GAChC,MAAME,WAAWC,MAAMC,KAAKH,QAAQC,SAAS;AAE7C,OAAIA,SAASI,WAAW,EACvB;GAGD,MAAMC,KAAKC,iBAAiBP,QAAQ;GACpC,MAAMQ,MAAMC,WAAWH,GAAGI,aAAaJ,GAAGE,OAAO,IAAI,IAAI;GACzD,IAAIG;GACJ,IAAIC,OAAO;GACX,IAAIC,QAAQ;AAEZ,QAAKF,QAAQ,GAAGA,QAAQV,SAASI,QAAQM,SAAS;IACjD,MAAMZ,UAAUE,SAASU;
|
|
1
|
+
{"version":3,"file":"use-chip-row-calculation.js","names":["RefObject","useLayoutEffect","useState","UseChipRowCalculationProps","chipsWrapperRef","HTMLDivElement","totalFilters","useChipRowCalculation","visibleCount","setVisibleCount","calculateVisibleChips","current","wrapper","children","Array","from","HTMLElement","length","cs","getComputedStyle","gap","parseFloat","columnGap","index","line","total","offset","offsetWidth","clientWidth","next","result","Math","max","rafId","requestAnimationFrame","resizeObserver","ResizeObserver","observe","cancelAnimationFrame","disconnect"],"sources":["../../../../src/components/ds-chip-group/hooks/use-chip-row-calculation.ts"],"sourcesContent":["import { type RefObject, useLayoutEffect, useState } from 'react';\n\ninterface UseChipRowCalculationProps {\n\tchipsWrapperRef: RefObject<HTMLDivElement | null>;\n\ttotalFilters: number;\n}\n\n/**\n * Custom hook to calculate how many chips can fit in 2 rows\n * Uses a simple approach: render all, measure positions, hide overflow\n */\nexport const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }: UseChipRowCalculationProps) => {\n\tconst [visibleCount, setVisibleCount] = useState(totalFilters);\n\n\tuseLayoutEffect(() => {\n\t\tconst calculateVisibleChips = () => {\n\t\t\tif (!chipsWrapperRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapper = chipsWrapperRef.current;\n\t\t\tconst children = Array.from(wrapper.children) as HTMLElement[];\n\n\t\t\tif (children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst cs = getComputedStyle(wrapper);\n\t\t\tconst gap = parseFloat(cs.columnGap || cs.gap || '0') || 8;\n\t\t\tlet index;\n\t\t\tlet line = 0;\n\t\t\tlet total = 0;\n\n\t\t\tfor (index = 0; index < children.length; index++) {\n\t\t\t\tconst current = children[index];\n\n\t\t\t\tif (!current) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst offset = current.offsetWidth === wrapper.clientWidth ? 0 : gap;\n\t\t\t\tconst next = offset + current.offsetWidth;\n\n\t\t\t\tif (total + next >= wrapper.clientWidth) {\n\t\t\t\t\tline++;\n\t\t\t\t\tif (line >= 2) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ttotal = next;\n\t\t\t\t} else {\n\t\t\t\t\ttotal += next;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst result = Math.max(1, line < 2 ? index : index - 1);\n\t\t\tsetVisibleCount(result);\n\t\t};\n\n\t\t// Use requestAnimationFrame to ensure DOM is fully laid out\n\t\tconst rafId = requestAnimationFrame(() => {\n\t\t\tcalculateVisibleChips();\n\t\t});\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tcalculateVisibleChips();\n\t\t\t});\n\t\t});\n\n\t\tif (chipsWrapperRef.current) {\n\t\t\tresizeObserver.observe(chipsWrapperRef.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(rafId);\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [chipsWrapperRef, totalFilters]);\n\n\treturn visibleCount;\n};\n"],"mappings":";;;;;;;AAWA,MAAaO,yBAAyB,EAAEH,iBAAiBE,mBAA+C;CACvG,MAAM,CAACE,cAAcC,mBAAmBP,SAASI,aAAa;AAE9DL,uBAAsB;EACrB,MAAMS,8BAA8B;AACnC,OAAI,CAACN,gBAAgBO,QACpB;GAGD,MAAMC,UAAUR,gBAAgBO;GAChC,MAAME,WAAWC,MAAMC,KAAKH,QAAQC,SAAS;AAE7C,OAAIA,SAASI,WAAW,EACvB;GAGD,MAAMC,KAAKC,iBAAiBP,QAAQ;GACpC,MAAMQ,MAAMC,WAAWH,GAAGI,aAAaJ,GAAGE,OAAO,IAAI,IAAI;GACzD,IAAIG;GACJ,IAAIC,OAAO;GACX,IAAIC,QAAQ;AAEZ,QAAKF,QAAQ,GAAGA,QAAQV,SAASI,QAAQM,SAAS;IACjD,MAAMZ,UAAUE,SAASU;AAEzB,QAAI,CAACZ,QACJ;IAID,MAAMkB,QADSlB,QAAQgB,gBAAgBf,QAAQgB,cAAc,IAAIR,OAC3CT,QAAQgB;AAE9B,QAAIF,QAAQI,QAAQjB,QAAQgB,aAAa;AACxCJ;AACA,SAAIA,QAAQ,EACX;AAEDC,aAAQI;UAERJ,UAASI;;AAKXpB,mBADesB,KAAKC,IAAI,GAAGR,OAAO,IAAID,QAAQA,QAAQ,EAAE,CACjC;;EAIxB,MAAMU,QAAQC,4BAA4B;AACzCxB,0BAAuB;IACtB;EAEF,MAAMyB,iBAAiB,IAAIC,qBAAqB;AAC/CF,+BAA4B;AAC3BxB,2BAAuB;KACtB;IACD;AAEF,MAAIN,gBAAgBO,QACnBwB,gBAAeE,QAAQjC,gBAAgBO,QAAQ;AAGhD,eAAa;AACZ2B,wBAAqBL,MAAM;AAC3BE,kBAAeI,YAAY;;IAE1B,CAACnC,iBAAiBE,aAAa,CAAC;AAEnC,QAAOE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DsConfirmationProps } from "./ds-confirmation.types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime8 from "react/jsx-runtime";
|
|
3
3
|
import { CSSProperties, ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/ds-confirmation/ds-confirmation.d.ts
|
|
@@ -13,7 +13,7 @@ declare const DsConfirmation: {
|
|
|
13
13
|
style,
|
|
14
14
|
className,
|
|
15
15
|
children
|
|
16
|
-
}: DsConfirmationProps):
|
|
16
|
+
}: DsConfirmationProps): react_jsx_runtime8.JSX.Element;
|
|
17
17
|
Header: ({
|
|
18
18
|
style,
|
|
19
19
|
className,
|
|
@@ -22,7 +22,7 @@ declare const DsConfirmation: {
|
|
|
22
22
|
style?: CSSProperties;
|
|
23
23
|
className?: string;
|
|
24
24
|
children: ReactNode;
|
|
25
|
-
}) =>
|
|
25
|
+
}) => react_jsx_runtime8.JSX.Element;
|
|
26
26
|
Title: ({
|
|
27
27
|
style,
|
|
28
28
|
className,
|
|
@@ -31,14 +31,14 @@ declare const DsConfirmation: {
|
|
|
31
31
|
style?: CSSProperties;
|
|
32
32
|
className?: string;
|
|
33
33
|
children: ReactNode;
|
|
34
|
-
}) =>
|
|
34
|
+
}) => react_jsx_runtime8.JSX.Element;
|
|
35
35
|
CloseTrigger: ({
|
|
36
36
|
style,
|
|
37
37
|
className
|
|
38
38
|
}: {
|
|
39
39
|
style?: CSSProperties;
|
|
40
40
|
className?: string;
|
|
41
|
-
}) =>
|
|
41
|
+
}) => react_jsx_runtime8.JSX.Element;
|
|
42
42
|
Body: ({
|
|
43
43
|
style,
|
|
44
44
|
className,
|
|
@@ -47,7 +47,7 @@ declare const DsConfirmation: {
|
|
|
47
47
|
style?: CSSProperties;
|
|
48
48
|
className?: string;
|
|
49
49
|
children: ReactNode;
|
|
50
|
-
}) =>
|
|
50
|
+
}) => react_jsx_runtime8.JSX.Element;
|
|
51
51
|
Footer: ({
|
|
52
52
|
style,
|
|
53
53
|
className,
|
|
@@ -56,7 +56,7 @@ declare const DsConfirmation: {
|
|
|
56
56
|
style?: CSSProperties;
|
|
57
57
|
className?: string;
|
|
58
58
|
children: ReactNode;
|
|
59
|
-
}) =>
|
|
59
|
+
}) => react_jsx_runtime8.JSX.Element;
|
|
60
60
|
Actions: ({
|
|
61
61
|
style,
|
|
62
62
|
className,
|
|
@@ -65,7 +65,7 @@ declare const DsConfirmation: {
|
|
|
65
65
|
style?: CSSProperties;
|
|
66
66
|
className?: string;
|
|
67
67
|
children: ReactNode;
|
|
68
|
-
}) =>
|
|
68
|
+
}) => react_jsx_runtime8.JSX.Element;
|
|
69
69
|
};
|
|
70
70
|
//#endregion
|
|
71
71
|
export { DsConfirmation };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DsConfirmationProps } from "./ds-confirmation.types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime26 from "react/jsx-runtime";
|
|
3
3
|
import { CSSProperties, ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/ds-confirmation/ds-confirmation.d.ts
|
|
@@ -13,7 +13,7 @@ declare const DsConfirmation: {
|
|
|
13
13
|
style,
|
|
14
14
|
className,
|
|
15
15
|
children
|
|
16
|
-
}: DsConfirmationProps):
|
|
16
|
+
}: DsConfirmationProps): react_jsx_runtime26.JSX.Element;
|
|
17
17
|
Header: ({
|
|
18
18
|
style,
|
|
19
19
|
className,
|
|
@@ -22,7 +22,7 @@ declare const DsConfirmation: {
|
|
|
22
22
|
style?: CSSProperties;
|
|
23
23
|
className?: string;
|
|
24
24
|
children: ReactNode;
|
|
25
|
-
}) =>
|
|
25
|
+
}) => react_jsx_runtime26.JSX.Element;
|
|
26
26
|
Title: ({
|
|
27
27
|
style,
|
|
28
28
|
className,
|
|
@@ -31,14 +31,14 @@ declare const DsConfirmation: {
|
|
|
31
31
|
style?: CSSProperties;
|
|
32
32
|
className?: string;
|
|
33
33
|
children: ReactNode;
|
|
34
|
-
}) =>
|
|
34
|
+
}) => react_jsx_runtime26.JSX.Element;
|
|
35
35
|
CloseTrigger: ({
|
|
36
36
|
style,
|
|
37
37
|
className
|
|
38
38
|
}: {
|
|
39
39
|
style?: CSSProperties;
|
|
40
40
|
className?: string;
|
|
41
|
-
}) =>
|
|
41
|
+
}) => react_jsx_runtime26.JSX.Element;
|
|
42
42
|
Body: ({
|
|
43
43
|
style,
|
|
44
44
|
className,
|
|
@@ -47,7 +47,7 @@ declare const DsConfirmation: {
|
|
|
47
47
|
style?: CSSProperties;
|
|
48
48
|
className?: string;
|
|
49
49
|
children: ReactNode;
|
|
50
|
-
}) =>
|
|
50
|
+
}) => react_jsx_runtime26.JSX.Element;
|
|
51
51
|
Footer: ({
|
|
52
52
|
style,
|
|
53
53
|
className,
|
|
@@ -56,7 +56,7 @@ declare const DsConfirmation: {
|
|
|
56
56
|
style?: CSSProperties;
|
|
57
57
|
className?: string;
|
|
58
58
|
children: ReactNode;
|
|
59
|
-
}) =>
|
|
59
|
+
}) => react_jsx_runtime26.JSX.Element;
|
|
60
60
|
Actions: ({
|
|
61
61
|
style,
|
|
62
62
|
className,
|
|
@@ -65,7 +65,7 @@ declare const DsConfirmation: {
|
|
|
65
65
|
style?: CSSProperties;
|
|
66
66
|
className?: string;
|
|
67
67
|
children: ReactNode;
|
|
68
|
-
}) =>
|
|
68
|
+
}) => react_jsx_runtime26.JSX.Element;
|
|
69
69
|
};
|
|
70
70
|
//#endregion
|
|
71
71
|
export { DsConfirmation };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DsDateInputProps } from "./ds-date-input.types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime15 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/ds-date-input/ds-date-input.d.ts
|
|
5
5
|
|
|
@@ -25,7 +25,7 @@ declare const DsDateInput: ({
|
|
|
25
25
|
readOnly,
|
|
26
26
|
id,
|
|
27
27
|
...datePickerProps
|
|
28
|
-
}: DsDateInputProps) =>
|
|
28
|
+
}: DsDateInputProps) => react_jsx_runtime15.JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { DsDateInput };
|
|
31
31
|
//# sourceMappingURL=ds-date-input.d.cts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DsDateInputProps } from "./ds-date-input.types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime59 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/ds-date-input/ds-date-input.d.ts
|
|
5
5
|
|
|
@@ -25,7 +25,7 @@ declare const DsDateInput: ({
|
|
|
25
25
|
readOnly,
|
|
26
26
|
id,
|
|
27
27
|
...datePickerProps
|
|
28
|
-
}: DsDateInputProps) =>
|
|
28
|
+
}: DsDateInputProps) => react_jsx_runtime59.JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { DsDateInput };
|
|
31
31
|
//# sourceMappingURL=ds-date-input.d.ts.map
|
|
@@ -7,7 +7,7 @@ import ds_date_input_module_default from "./ds-date-input.module.js";
|
|
|
7
7
|
import { c } from "react/compiler-runtime";
|
|
8
8
|
import classNames from "classnames";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import { Fragment, useRef, useState } from "react";
|
|
10
|
+
import { Fragment as Fragment$1, useRef, useState } from "react";
|
|
11
11
|
import { Portal } from "@ark-ui/react/portal";
|
|
12
12
|
import { DatePicker } from "@ark-ui/react/date-picker";
|
|
13
13
|
|
|
@@ -63,7 +63,7 @@ const DsDateInput = ({ range = false, placeholder, style, className, disablePort
|
|
|
63
63
|
onValueChange?.(dateValuesToStrings(parsedValue_0, range));
|
|
64
64
|
};
|
|
65
65
|
const showClearButton = !disabled && !readOnly && !!(value.length > 0 ? value : defaultValue).length;
|
|
66
|
-
const Wrapper = disablePortal ? Fragment : Portal;
|
|
66
|
+
const Wrapper = disablePortal ? Fragment$1 : Portal;
|
|
67
67
|
return /* @__PURE__ */ jsxs(DatePicker.Root, {
|
|
68
68
|
value,
|
|
69
69
|
defaultValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-date-input.js","names":["ChangeEvent","Fragment","useRef","useState","DatePicker","Portal","classNames","DsDateInputProps","dateValuesToStrings","formatDateInputValue","isoStringToDateValue","parseInputText","stringToDateValue","validateDateString","DsIcon","DsTypography","styles","DsDateInput","range","placeholder","style","className","disablePortal","onValueChange","onOpenChange","value","_value","defaultValue","_defaultValue","min","_min","max","_max","disabled","readOnly","id","datePickerProps","undefined","isFocused","setIsFocused","isOpen","setIsOpen","prevValue","inputRef","HTMLInputElement","current","JSON","stringify","clear","handleInputChange","e","text","target","validation","isValid","parsedValue","handleBlur","showClearButton","length","Wrapper","details","placement","gutter","open","dateInputControl","dateInputButton","input","positioner","content","calendarView","CalendarViewControl","$","_c","t0","Symbol","for","prevTrigger","t1","viewTrigger","t2","viewControl","nextTrigger","DayView","_temp4","MonthView","_temp7","YearView","_temp0","_temp","weekDay","tableHeader","short","_temp2","day","dayId","tableCellTrigger","tableCellTriggerValue","_temp3","week","weekId","tableRow","map","datePicker","table","tableHead","weekDays","tableBody","weeks","_temp5","month","monthId","label","_temp6","months","rowId","getMonthsGrid","columns","format","_temp8","year","yearId","_temp9","years","getYearsGrid"],"sources":["../../../src/components/ds-date-input/ds-date-input.tsx"],"sourcesContent":["import { type ChangeEvent, Fragment, useRef, useState } from 'react';\nimport { DatePicker } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport type { DsDateInputProps } from './ds-date-input.types';\nimport {\n\tdateValuesToStrings,\n\tformatDateInputValue,\n\tisoStringToDateValue,\n\tparseInputText,\n\tstringToDateValue,\n\tvalidateDateString,\n} from './ds-date-input.utils';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\nimport styles from './ds-date-input.module.scss';\n\n/**\n * Design system date input component with integrated calendar picker.\n *\n * Supports both single date and date range selection with a single text input field.\n * Features built-in validation, manual text entry, and calendar selection.\n */\nconst DsDateInput = ({\n\trange = false,\n\tplaceholder,\n\tstyle,\n\tclassName,\n\tdisablePortal = false,\n\tonValueChange,\n\tonOpenChange,\n\tvalue: _value,\n\tdefaultValue: _defaultValue,\n\tmin: _min,\n\tmax: _max,\n\tdisabled,\n\treadOnly,\n\tid,\n\t...datePickerProps\n}: DsDateInputProps) => {\n\tconst min = _min ? isoStringToDateValue(_min) : undefined;\n\tconst max = _max ? isoStringToDateValue(_max) : undefined;\n\n\t// Convert public API (string | [string, string]) to internal API (DateValue[])\n\tconst value = _value ? stringToDateValue(_value) : [];\n\tconst defaultValue = _defaultValue ? stringToDateValue(_defaultValue) : [];\n\n\t// Local state for manual text editing\n\tconst [isFocused, setIsFocused] = useState(false);\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\tconst prevValue = useRef<string | null>(null);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\t// Reformat the input value on every value change\n\t// We don't format when the input is focused since the date value might get updated while the user is typing\n\t// but we don't want to reformat the input text for him while he's typing.\n\tif (!isFocused && prevValue.current !== JSON.stringify(value)) {\n\t\tprevValue.current = JSON.stringify(value);\n\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = formatDateInputValue(value, range);\n\t\t}\n\t}\n\n\tconst clear = () => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = '';\n\t\t}\n\n\t\tonValueChange?.(undefined);\n\t};\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst text = e.target.value;\n\n\t\t// Try to parse and validate as the user types\n\t\tconst validation = validateDateString({ text, range, min, max });\n\n\t\tif (validation.isValid) {\n\t\t\tconst parsedValue = parseInputText(text, range);\n\t\t\tonValueChange?.(dateValuesToStrings(parsedValue, range) as never);\n\t\t}\n\t};\n\n\tconst handleBlur = () => {\n\t\tsetIsFocused(false);\n\n\t\tconst text = inputRef.current?.value || '';\n\t\tconst validation = validateDateString({ text, range, min, max });\n\n\t\t// Clear invalid input on blur\n\t\tif (!validation.isValid) {\n\t\t\tclear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst parsedValue = parseInputText(text, range);\n\n\t\tonValueChange?.(dateValuesToStrings(parsedValue, range) as never);\n\t};\n\n\tconst showClearButton = !disabled && !readOnly && !!(value.length > 0 ? value : defaultValue).length;\n\tconst Wrapper = disablePortal ? Fragment : Portal;\n\n\treturn (\n\t\t<DatePicker.Root\n\t\t\tvalue={value}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tonValueChange={(details) => {\n\t\t\t\tonValueChange?.(dateValuesToStrings(details.value, range) as never);\n\t\t\t}}\n\t\t\tselectionMode={range ? 'range' : 'single'}\n\t\t\tpositioning={{ placement: 'bottom-start', gutter: 4 }}\n\t\t\tcloseOnSelect={!range}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\topen={isOpen}\n\t\t\tonOpenChange={(details) => {\n\t\t\t\t// Don't close the calendar when the user is typing\n\t\t\t\tif (!isFocused) {\n\t\t\t\t\tsetIsOpen(details.open);\n\t\t\t\t\tonOpenChange?.(details.open);\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...datePickerProps}\n\t\t>\n\t\t\t<DatePicker.Control\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={classNames(\n\t\t\t\t\tstyles.dateInputControl,\n\t\t\t\t\tdisabled && styles.disabled,\n\t\t\t\t\treadOnly && styles.readOnly,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<DatePicker.Trigger asChild>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.dateInputButton}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-label=\"Open calendar\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsIcon icon=\"calendar_month\" size=\"small\" />\n\t\t\t\t\t</button>\n\t\t\t\t</DatePicker.Trigger>\n\n\t\t\t\t<input\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tid={id}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tclassName={styles.input}\n\t\t\t\t\tplaceholder={placeholder ?? (range ? 'MM/DD/YYYY - MM/DD/YYYY' : 'MM/DD/YYYY')}\n\t\t\t\t\tdefaultValue={formatDateInputValue(value.length > 0 ? value : defaultValue, range)}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tonFocus={() => setIsFocused(true)}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t/>\n\n\t\t\t\t{showClearButton && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.dateInputButton}\n\t\t\t\t\t\tonClick={clear}\n\t\t\t\t\t\taria-label={range ? 'Clear date range' : 'Clear date'}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsIcon icon=\"close\" size=\"small\" />\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</DatePicker.Control>\n\n\t\t\t<Wrapper>\n\t\t\t\t<DatePicker.Positioner className={styles.positioner}>\n\t\t\t\t\t<DatePicker.Content className={styles.content}>\n\t\t\t\t\t\t<CalendarViewControl />\n\t\t\t\t\t\t<div className={styles.calendarView}>\n\t\t\t\t\t\t\t<DayView />\n\t\t\t\t\t\t\t<MonthView />\n\t\t\t\t\t\t\t<YearView />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DatePicker.Content>\n\t\t\t\t</DatePicker.Positioner>\n\t\t\t</Wrapper>\n\t\t</DatePicker.Root>\n\t);\n};\n\n/**\n * Calendar view control with navigation buttons\n */\nconst CalendarViewControl = () => (\n\t<DatePicker.ViewControl className={styles.viewControl}>\n\t\t<DatePicker.PrevTrigger className={styles.prevTrigger}>\n\t\t\t<DsIcon icon=\"chevron_left\" size=\"small\" />\n\t\t</DatePicker.PrevTrigger>\n\t\t<DatePicker.ViewTrigger className={styles.viewTrigger} asChild>\n\t\t\t<button type=\"button\">\n\t\t\t\t<DsTypography variant=\"body-md-md\" asChild>\n\t\t\t\t\t<DatePicker.RangeText />\n\t\t\t\t</DsTypography>\n\t\t\t</button>\n\t\t</DatePicker.ViewTrigger>\n\t\t<DatePicker.NextTrigger className={styles.nextTrigger}>\n\t\t\t<DsIcon icon=\"chevron_right\" size=\"small\" />\n\t\t</DatePicker.NextTrigger>\n\t</DatePicker.ViewControl>\n);\n\n/**\n * Day view - displays calendar grid with days of the month\n */\nconst DayView = () => (\n\t<DatePicker.View view=\"day\">\n\t\t<DatePicker.Context>\n\t\t\t{(datePicker) => (\n\t\t\t\t<DatePicker.Table className={styles.table}>\n\t\t\t\t\t<DatePicker.TableHead className={styles.tableHead}>\n\t\t\t\t\t\t<DatePicker.TableRow className={styles.tableRow}>\n\t\t\t\t\t\t\t{datePicker.weekDays.map((weekDay, id) => (\n\t\t\t\t\t\t\t\t<DatePicker.TableHeader key={id} className={styles.tableHeader}>\n\t\t\t\t\t\t\t\t\t<DsTypography variant=\"body-md-md\">{weekDay.short}</DsTypography>\n\t\t\t\t\t\t\t\t</DatePicker.TableHeader>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t</DatePicker.TableHead>\n\t\t\t\t\t<DatePicker.TableBody className={styles.tableBody}>\n\t\t\t\t\t\t{datePicker.weeks.map((week, weekId) => (\n\t\t\t\t\t\t\t<DatePicker.TableRow key={weekId} className={styles.tableRow}>\n\t\t\t\t\t\t\t\t{week.map((day, dayId) => (\n\t\t\t\t\t\t\t\t\t<DatePicker.TableCell key={dayId} value={day}>\n\t\t\t\t\t\t\t\t\t\t<DatePicker.TableCellTrigger className={styles.tableCellTrigger}>\n\t\t\t\t\t\t\t\t\t\t\t<DsTypography className={styles.tableCellTriggerValue} variant=\"body-md-md\">\n\t\t\t\t\t\t\t\t\t\t\t\t{day.day}\n\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t</DatePicker.TableCellTrigger>\n\t\t\t\t\t\t\t\t\t</DatePicker.TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DatePicker.TableBody>\n\t\t\t\t</DatePicker.Table>\n\t\t\t)}\n\t\t</DatePicker.Context>\n\t</DatePicker.View>\n);\n\n/**\n * Month view - displays grid with months of the year\n */\nconst MonthView = () => (\n\t<DatePicker.View view=\"month\">\n\t\t<DatePicker.Context>\n\t\t\t{(datePicker) => (\n\t\t\t\t<DatePicker.Table className={styles.table}>\n\t\t\t\t\t<DatePicker.TableBody className={styles.tableBody}>\n\t\t\t\t\t\t{datePicker.getMonthsGrid({ columns: 4, format: 'short' }).map((months, rowId) => (\n\t\t\t\t\t\t\t<DatePicker.TableRow key={rowId} className={styles.tableRow}>\n\t\t\t\t\t\t\t\t{months.map((month, monthId) => (\n\t\t\t\t\t\t\t\t\t<DatePicker.TableCell key={monthId} value={month.value}>\n\t\t\t\t\t\t\t\t\t\t<DatePicker.TableCellTrigger className={styles.tableCellTrigger}>\n\t\t\t\t\t\t\t\t\t\t\t<DsTypography className={styles.tableCellTriggerValue} variant=\"body-md-md\">\n\t\t\t\t\t\t\t\t\t\t\t\t{month.label}\n\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t</DatePicker.TableCellTrigger>\n\t\t\t\t\t\t\t\t\t</DatePicker.TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DatePicker.TableBody>\n\t\t\t\t</DatePicker.Table>\n\t\t\t)}\n\t\t</DatePicker.Context>\n\t</DatePicker.View>\n);\n\n/**\n * Year view - displays grid with years in a decade\n */\nconst YearView = () => (\n\t<DatePicker.View view=\"year\">\n\t\t<DatePicker.Context>\n\t\t\t{(datePicker) => (\n\t\t\t\t<DatePicker.Table className={styles.table}>\n\t\t\t\t\t<DatePicker.TableBody className={styles.tableBody}>\n\t\t\t\t\t\t{datePicker.getYearsGrid({ columns: 4 }).map((years, rowId) => (\n\t\t\t\t\t\t\t<DatePicker.TableRow key={rowId} className={styles.tableRow}>\n\t\t\t\t\t\t\t\t{years.map((year, yearId) => (\n\t\t\t\t\t\t\t\t\t<DatePicker.TableCell key={yearId} value={year.value}>\n\t\t\t\t\t\t\t\t\t\t<DatePicker.TableCellTrigger className={styles.tableCellTrigger}>\n\t\t\t\t\t\t\t\t\t\t\t<DsTypography className={styles.tableCellTriggerValue} variant=\"body-md-md\">\n\t\t\t\t\t\t\t\t\t\t\t\t{year.label}\n\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t</DatePicker.TableCellTrigger>\n\t\t\t\t\t\t\t\t\t</DatePicker.TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DatePicker.TableBody>\n\t\t\t\t</DatePicker.Table>\n\t\t\t)}\n\t\t</DatePicker.Context>\n\t</DatePicker.View>\n);\n\nexport default DsDateInput;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ds-date-input.js","names":["ChangeEvent","Fragment","useRef","useState","DatePicker","Portal","classNames","DsDateInputProps","dateValuesToStrings","formatDateInputValue","isoStringToDateValue","parseInputText","stringToDateValue","validateDateString","DsIcon","DsTypography","styles","DsDateInput","range","placeholder","style","className","disablePortal","onValueChange","onOpenChange","value","_value","defaultValue","_defaultValue","min","_min","max","_max","disabled","readOnly","id","datePickerProps","undefined","isFocused","setIsFocused","isOpen","setIsOpen","prevValue","inputRef","HTMLInputElement","current","JSON","stringify","clear","handleInputChange","e","text","target","validation","isValid","parsedValue","handleBlur","showClearButton","length","Wrapper","details","placement","gutter","open","dateInputControl","dateInputButton","input","positioner","content","calendarView","CalendarViewControl","$","_c","t0","Symbol","for","prevTrigger","t1","viewTrigger","t2","viewControl","nextTrigger","DayView","_temp4","MonthView","_temp7","YearView","_temp0","_temp","weekDay","tableHeader","short","_temp2","day","dayId","tableCellTrigger","tableCellTriggerValue","_temp3","week","weekId","tableRow","map","datePicker","table","tableHead","weekDays","tableBody","weeks","_temp5","month","monthId","label","_temp6","months","rowId","getMonthsGrid","columns","format","_temp8","year","yearId","_temp9","years","getYearsGrid"],"sources":["../../../src/components/ds-date-input/ds-date-input.tsx"],"sourcesContent":["import { type ChangeEvent, Fragment, useRef, useState } from 'react';\nimport { DatePicker } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport type { DsDateInputProps } from './ds-date-input.types';\nimport {\n\tdateValuesToStrings,\n\tformatDateInputValue,\n\tisoStringToDateValue,\n\tparseInputText,\n\tstringToDateValue,\n\tvalidateDateString,\n} from './ds-date-input.utils';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\nimport styles from './ds-date-input.module.scss';\n\n/**\n * Design system date input component with integrated calendar picker.\n *\n * Supports both single date and date range selection with a single text input field.\n * Features built-in validation, manual text entry, and calendar selection.\n */\nconst DsDateInput = ({\n\trange = false,\n\tplaceholder,\n\tstyle,\n\tclassName,\n\tdisablePortal = false,\n\tonValueChange,\n\tonOpenChange,\n\tvalue: _value,\n\tdefaultValue: _defaultValue,\n\tmin: _min,\n\tmax: _max,\n\tdisabled,\n\treadOnly,\n\tid,\n\t...datePickerProps\n}: DsDateInputProps) => {\n\tconst min = _min ? isoStringToDateValue(_min) : undefined;\n\tconst max = _max ? isoStringToDateValue(_max) : undefined;\n\n\t// Convert public API (string | [string, string]) to internal API (DateValue[])\n\tconst value = _value ? stringToDateValue(_value) : [];\n\tconst defaultValue = _defaultValue ? stringToDateValue(_defaultValue) : [];\n\n\t// Local state for manual text editing\n\tconst [isFocused, setIsFocused] = useState(false);\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\tconst prevValue = useRef<string | null>(null);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\t// Reformat the input value on every value change\n\t// We don't format when the input is focused since the date value might get updated while the user is typing\n\t// but we don't want to reformat the input text for him while he's typing.\n\tif (!isFocused && prevValue.current !== JSON.stringify(value)) {\n\t\tprevValue.current = JSON.stringify(value);\n\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = formatDateInputValue(value, range);\n\t\t}\n\t}\n\n\tconst clear = () => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = '';\n\t\t}\n\n\t\tonValueChange?.(undefined);\n\t};\n\n\tconst handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst text = e.target.value;\n\n\t\t// Try to parse and validate as the user types\n\t\tconst validation = validateDateString({ text, range, min, max });\n\n\t\tif (validation.isValid) {\n\t\t\tconst parsedValue = parseInputText(text, range);\n\t\t\tonValueChange?.(dateValuesToStrings(parsedValue, range) as never);\n\t\t}\n\t};\n\n\tconst handleBlur = () => {\n\t\tsetIsFocused(false);\n\n\t\tconst text = inputRef.current?.value || '';\n\t\tconst validation = validateDateString({ text, range, min, max });\n\n\t\t// Clear invalid input on blur\n\t\tif (!validation.isValid) {\n\t\t\tclear();\n\t\t\treturn;\n\t\t}\n\n\t\tconst parsedValue = parseInputText(text, range);\n\n\t\tonValueChange?.(dateValuesToStrings(parsedValue, range) as never);\n\t};\n\n\tconst showClearButton = !disabled && !readOnly && !!(value.length > 0 ? value : defaultValue).length;\n\tconst Wrapper = disablePortal ? Fragment : Portal;\n\n\treturn (\n\t\t<DatePicker.Root\n\t\t\tvalue={value}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tonValueChange={(details) => {\n\t\t\t\tonValueChange?.(dateValuesToStrings(details.value, range) as never);\n\t\t\t}}\n\t\t\tselectionMode={range ? 'range' : 'single'}\n\t\t\tpositioning={{ placement: 'bottom-start', gutter: 4 }}\n\t\t\tcloseOnSelect={!range}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tdisabled={disabled}\n\t\t\treadOnly={readOnly}\n\t\t\topen={isOpen}\n\t\t\tonOpenChange={(details) => {\n\t\t\t\t// Don't close the calendar when the user is typing\n\t\t\t\tif (!isFocused) {\n\t\t\t\t\tsetIsOpen(details.open);\n\t\t\t\t\tonOpenChange?.(details.open);\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...datePickerProps}\n\t\t>\n\t\t\t<DatePicker.Control\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={classNames(\n\t\t\t\t\tstyles.dateInputControl,\n\t\t\t\t\tdisabled && styles.disabled,\n\t\t\t\t\treadOnly && styles.readOnly,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<DatePicker.Trigger asChild>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.dateInputButton}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-label=\"Open calendar\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsIcon icon=\"calendar_month\" size=\"small\" />\n\t\t\t\t\t</button>\n\t\t\t\t</DatePicker.Trigger>\n\n\t\t\t\t<input\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tid={id}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tclassName={styles.input}\n\t\t\t\t\tplaceholder={placeholder ?? (range ? 'MM/DD/YYYY - MM/DD/YYYY' : 'MM/DD/YYYY')}\n\t\t\t\t\tdefaultValue={formatDateInputValue(value.length > 0 ? value : defaultValue, range)}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tonFocus={() => setIsFocused(true)}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t/>\n\n\t\t\t\t{showClearButton && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.dateInputButton}\n\t\t\t\t\t\tonClick={clear}\n\t\t\t\t\t\taria-label={range ? 'Clear date range' : 'Clear date'}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsIcon icon=\"close\" size=\"small\" />\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</DatePicker.Control>\n\n\t\t\t<Wrapper>\n\t\t\t\t<DatePicker.Positioner className={styles.positioner}>\n\t\t\t\t\t<DatePicker.Content className={styles.content}>\n\t\t\t\t\t\t<CalendarViewControl />\n\t\t\t\t\t\t<div className={styles.calendarView}>\n\t\t\t\t\t\t\t<DayView />\n\t\t\t\t\t\t\t<MonthView />\n\t\t\t\t\t\t\t<YearView />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DatePicker.Content>\n\t\t\t\t</DatePicker.Positioner>\n\t\t\t</Wrapper>\n\t\t</DatePicker.Root>\n\t);\n};\n\n/**\n * Calendar view control with navigation buttons\n */\nconst CalendarViewControl = () => (\n\t<DatePicker.ViewControl className={styles.viewControl}>\n\t\t<DatePicker.PrevTrigger className={styles.prevTrigger}>\n\t\t\t<DsIcon icon=\"chevron_left\" size=\"small\" />\n\t\t</DatePicker.PrevTrigger>\n\t\t<DatePicker.ViewTrigger className={styles.viewTrigger} asChild>\n\t\t\t<button type=\"button\">\n\t\t\t\t<DsTypography variant=\"body-md-md\" asChild>\n\t\t\t\t\t<DatePicker.RangeText />\n\t\t\t\t</DsTypography>\n\t\t\t</button>\n\t\t</DatePicker.ViewTrigger>\n\t\t<DatePicker.NextTrigger className={styles.nextTrigger}>\n\t\t\t<DsIcon icon=\"chevron_right\" size=\"small\" />\n\t\t</DatePicker.NextTrigger>\n\t</DatePicker.ViewControl>\n);\n\n/**\n * Day view - displays calendar grid with days of the month\n */\nconst DayView = () => (\n\t<DatePicker.View view=\"day\">\n\t\t<DatePicker.Context>\n\t\t\t{(datePicker) => (\n\t\t\t\t<DatePicker.Table className={styles.table}>\n\t\t\t\t\t<DatePicker.TableHead className={styles.tableHead}>\n\t\t\t\t\t\t<DatePicker.TableRow className={styles.tableRow}>\n\t\t\t\t\t\t\t{datePicker.weekDays.map((weekDay, id) => (\n\t\t\t\t\t\t\t\t<DatePicker.TableHeader key={id} className={styles.tableHeader}>\n\t\t\t\t\t\t\t\t\t<DsTypography variant=\"body-md-md\">{weekDay.short}</DsTypography>\n\t\t\t\t\t\t\t\t</DatePicker.TableHeader>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t</DatePicker.TableHead>\n\t\t\t\t\t<DatePicker.TableBody className={styles.tableBody}>\n\t\t\t\t\t\t{datePicker.weeks.map((week, weekId) => (\n\t\t\t\t\t\t\t<DatePicker.TableRow key={weekId} className={styles.tableRow}>\n\t\t\t\t\t\t\t\t{week.map((day, dayId) => (\n\t\t\t\t\t\t\t\t\t<DatePicker.TableCell key={dayId} value={day}>\n\t\t\t\t\t\t\t\t\t\t<DatePicker.TableCellTrigger className={styles.tableCellTrigger}>\n\t\t\t\t\t\t\t\t\t\t\t<DsTypography className={styles.tableCellTriggerValue} variant=\"body-md-md\">\n\t\t\t\t\t\t\t\t\t\t\t\t{day.day}\n\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t</DatePicker.TableCellTrigger>\n\t\t\t\t\t\t\t\t\t</DatePicker.TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DatePicker.TableBody>\n\t\t\t\t</DatePicker.Table>\n\t\t\t)}\n\t\t</DatePicker.Context>\n\t</DatePicker.View>\n);\n\n/**\n * Month view - displays grid with months of the year\n */\nconst MonthView = () => (\n\t<DatePicker.View view=\"month\">\n\t\t<DatePicker.Context>\n\t\t\t{(datePicker) => (\n\t\t\t\t<DatePicker.Table className={styles.table}>\n\t\t\t\t\t<DatePicker.TableBody className={styles.tableBody}>\n\t\t\t\t\t\t{datePicker.getMonthsGrid({ columns: 4, format: 'short' }).map((months, rowId) => (\n\t\t\t\t\t\t\t<DatePicker.TableRow key={rowId} className={styles.tableRow}>\n\t\t\t\t\t\t\t\t{months.map((month, monthId) => (\n\t\t\t\t\t\t\t\t\t<DatePicker.TableCell key={monthId} value={month.value}>\n\t\t\t\t\t\t\t\t\t\t<DatePicker.TableCellTrigger className={styles.tableCellTrigger}>\n\t\t\t\t\t\t\t\t\t\t\t<DsTypography className={styles.tableCellTriggerValue} variant=\"body-md-md\">\n\t\t\t\t\t\t\t\t\t\t\t\t{month.label}\n\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t</DatePicker.TableCellTrigger>\n\t\t\t\t\t\t\t\t\t</DatePicker.TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DatePicker.TableBody>\n\t\t\t\t</DatePicker.Table>\n\t\t\t)}\n\t\t</DatePicker.Context>\n\t</DatePicker.View>\n);\n\n/**\n * Year view - displays grid with years in a decade\n */\nconst YearView = () => (\n\t<DatePicker.View view=\"year\">\n\t\t<DatePicker.Context>\n\t\t\t{(datePicker) => (\n\t\t\t\t<DatePicker.Table className={styles.table}>\n\t\t\t\t\t<DatePicker.TableBody className={styles.tableBody}>\n\t\t\t\t\t\t{datePicker.getYearsGrid({ columns: 4 }).map((years, rowId) => (\n\t\t\t\t\t\t\t<DatePicker.TableRow key={rowId} className={styles.tableRow}>\n\t\t\t\t\t\t\t\t{years.map((year, yearId) => (\n\t\t\t\t\t\t\t\t\t<DatePicker.TableCell key={yearId} value={year.value}>\n\t\t\t\t\t\t\t\t\t\t<DatePicker.TableCellTrigger className={styles.tableCellTrigger}>\n\t\t\t\t\t\t\t\t\t\t\t<DsTypography className={styles.tableCellTriggerValue} variant=\"body-md-md\">\n\t\t\t\t\t\t\t\t\t\t\t\t{year.label}\n\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t</DatePicker.TableCellTrigger>\n\t\t\t\t\t\t\t\t\t</DatePicker.TableCell>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</DatePicker.TableRow>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</DatePicker.TableBody>\n\t\t\t\t</DatePicker.Table>\n\t\t\t)}\n\t\t</DatePicker.Context>\n\t</DatePicker.View>\n);\n\nexport default DsDateInput;\n"],"mappings":"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"}
|