@drivenets/design-system 0.0.5 → 0.2.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 +21 -0
- package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +5 -5
- package/dist/components/ds-alert-banner/ds-alert-banner.d.ts.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/ds-button.d.ts +2 -2
- package/dist/components/ds-button/ds-button.d.ts.map +1 -1
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.cjs +18 -18
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js +18 -18
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.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-confirmation/ds-confirmation.d.cts +8 -8
- package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -1
- package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
- package/dist/components/ds-date-input/ds-date-input.cjs +352 -0
- package/dist/components/ds-date-input/ds-date-input.d.cts +31 -0
- package/dist/components/ds-date-input/ds-date-input.d.cts.map +1 -0
- package/dist/components/ds-date-input/ds-date-input.d.ts +31 -0
- package/dist/components/ds-date-input/ds-date-input.d.ts.map +1 -0
- package/dist/components/ds-date-input/ds-date-input.js +351 -0
- package/dist/components/ds-date-input/ds-date-input.js.map +1 -0
- package/dist/components/ds-date-input/ds-date-input.module.cjs +29 -0
- package/dist/components/ds-date-input/ds-date-input.module.js +29 -0
- package/dist/components/ds-date-input/ds-date-input.module.js.map +1 -0
- package/dist/components/ds-date-input/ds-date-input.types.d.cts +92 -0
- package/dist/components/ds-date-input/ds-date-input.types.d.cts.map +1 -0
- package/dist/components/ds-date-input/ds-date-input.types.d.ts +92 -0
- package/dist/components/ds-date-input/ds-date-input.types.d.ts.map +1 -0
- package/dist/components/ds-date-input/ds-date-input.utils.cjs +169 -0
- package/dist/components/ds-date-input/ds-date-input.utils.js +164 -0
- package/dist/components/ds-date-input/ds-date-input.utils.js.map +1 -0
- package/dist/components/ds-date-input/index.cjs +1 -0
- package/dist/components/ds-date-input/index.d.ts +2 -0
- package/dist/components/ds-date-input/index.js +1 -0
- package/dist/components/ds-divider/ds-divider.cjs +47 -0
- package/dist/components/ds-divider/ds-divider.d.cts +8 -0
- package/dist/components/ds-divider/ds-divider.d.cts.map +1 -0
- package/dist/components/ds-divider/ds-divider.d.ts +8 -0
- package/dist/components/ds-divider/ds-divider.d.ts.map +1 -0
- package/dist/components/ds-divider/ds-divider.js +46 -0
- package/dist/components/ds-divider/ds-divider.js.map +1 -0
- package/dist/components/ds-divider/ds-divider.module.cjs +10 -0
- package/dist/components/ds-divider/ds-divider.module.js +10 -0
- package/dist/components/ds-divider/ds-divider.module.js.map +1 -0
- package/dist/components/ds-divider/ds-divider.types.d.cts +25 -0
- package/dist/components/ds-divider/ds-divider.types.d.cts.map +1 -0
- package/dist/components/ds-divider/ds-divider.types.d.ts +25 -0
- package/dist/components/ds-divider/ds-divider.types.d.ts.map +1 -0
- package/dist/components/ds-divider/index.cjs +1 -0
- package/dist/components/ds-divider/index.d.ts +2 -0
- package/dist/components/ds-divider/index.js +1 -0
- package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
- package/dist/components/ds-drawer/ds-drawer.js +2 -2
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +80 -24
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts +1 -0
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts +1 -0
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +83 -27
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.cjs +20 -18
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js +20 -18
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts +5 -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 +5 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts.map +1 -1
- package/dist/components/ds-dropdown-menu/index.d.ts +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-form-control/ds-form-control.cjs +3 -0
- package/dist/components/ds-form-control/ds-form-control.d.cts +9 -7
- package/dist/components/ds-form-control/ds-form-control.d.cts.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.d.ts +10 -7
- package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.js +3 -0
- package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
- 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-panel/ds-panel.d.cts +2 -2
- package/dist/components/ds-panel/ds-panel.d.ts +2 -2
- package/dist/components/ds-radio-group/ds-radio-group.types.d.cts +1 -1
- package/dist/components/ds-radio-group/ds-radio-group.types.d.cts.map +1 -1
- package/dist/components/ds-radio-group/ds-radio-group.types.d.ts +1 -1
- package/dist/components/ds-radio-group/ds-radio-group.types.d.ts.map +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-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-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/ds-table-cell/ds-table-cell.types.d.cts +1 -0
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts.map +1 -1
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.ts +1 -1
- package/dist/components/ds-table/ds-table.d.cts +2 -2
- package/dist/components/ds-table/ds-table.d.ts +2 -2
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.cjs +55 -0
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.cts +49 -0
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.cts.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.ts +50 -0
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.ts.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.js +55 -0
- package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.js.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.cjs +87 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.cts +44 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.cts.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.ts +44 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.ts.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js +87 -0
- package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.cjs +83 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.cts +111 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.cts.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.ts +111 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.ts.map +1 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.js +83 -0
- package/dist/components/ds-table/filters/adapters/create-filter-adapter.js.map +1 -0
- package/dist/components/ds-table/filters/adapters/index.cjs +3 -0
- package/dist/components/ds-table/filters/adapters/index.d.ts +3 -0
- package/dist/components/ds-table/filters/adapters/index.js +3 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.cjs +22 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.cts +17 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.cts.map +1 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts +18 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts.map +1 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.js +22 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.js.map +1 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/index.cjs +1 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/index.d.ts +1 -0
- package/dist/components/ds-table/filters/components/checkbox-filter/index.js +1 -0
- package/dist/components/ds-table/filters/components/range-filter/index.cjs +1 -0
- package/dist/components/ds-table/filters/components/range-filter/index.d.ts +1 -0
- package/dist/components/ds-table/filters/components/range-filter/index.js +1 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.cjs +177 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.d.cts +14 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.d.cts.map +1 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.d.ts +16 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.d.ts.map +1 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.js +177 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.js.map +1 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.module.cjs +11 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.module.js +11 -0
- package/dist/components/ds-table/filters/components/range-filter/range-filter.module.js.map +1 -0
- package/dist/components/ds-table/filters/hooks/index.cjs +1 -0
- package/dist/components/ds-table/filters/hooks/index.d.ts +1 -0
- package/dist/components/ds-table/filters/hooks/index.js +1 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.cjs +211 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts +65 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts.map +1 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts +66 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts.map +1 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.js +211 -0
- package/dist/components/ds-table/filters/hooks/use-table-filters.js.map +1 -0
- package/dist/components/ds-table/filters/index.cjs +6 -0
- package/dist/components/ds-table/filters/index.d.ts +11 -0
- package/dist/components/ds-table/filters/index.js +6 -0
- package/dist/components/ds-table/filters/types/filter-adapter.types.d.cts +101 -0
- package/dist/components/ds-table/filters/types/filter-adapter.types.d.cts.map +1 -0
- package/dist/components/ds-table/filters/types/filter-adapter.types.d.ts +102 -0
- package/dist/components/ds-table/filters/types/filter-adapter.types.d.ts.map +1 -0
- package/dist/components/ds-table/index.cjs +5 -0
- package/dist/components/ds-table/index.d.ts +8 -0
- package/dist/components/ds-table/index.js +5 -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.cjs +192 -0
- package/dist/components/ds-toggle/ds-toggle.d.cts +24 -0
- package/dist/components/ds-toggle/ds-toggle.d.cts.map +1 -0
- package/dist/components/ds-toggle/ds-toggle.d.ts +24 -0
- package/dist/components/ds-toggle/ds-toggle.d.ts.map +1 -0
- package/dist/components/ds-toggle/ds-toggle.js +191 -0
- package/dist/components/ds-toggle/ds-toggle.js.map +1 -0
- package/dist/components/ds-toggle/ds-toggle.module.cjs +13 -0
- package/dist/components/ds-toggle/ds-toggle.module.js +13 -0
- package/dist/components/ds-toggle/ds-toggle.module.js.map +1 -0
- package/dist/components/ds-toggle/ds-toggle.types.d.cts +67 -0
- package/dist/components/ds-toggle/ds-toggle.types.d.cts.map +1 -0
- package/dist/components/ds-toggle/ds-toggle.types.d.ts +67 -0
- package/dist/components/ds-toggle/ds-toggle.types.d.ts.map +1 -0
- package/dist/components/ds-toggle/index.cjs +1 -0
- package/dist/components/ds-toggle/index.d.ts +2 -0
- package/dist/components/ds-toggle/index.js +1 -0
- 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 +31 -2
- package/dist/index.d.cts +23 -2
- package/dist/index.d.ts +30 -2
- package/dist/index.js +21 -3
- package/dist/index.min.css +1 -1
- package/package.json +7 -2
- 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-new/ds-button-new.module.scss +0 -1
- 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/index.ts +1 -0
- package/src/components/ds-date-input/ds-date-input.module.scss +246 -0
- package/src/components/ds-date-input/ds-date-input.tsx +309 -0
- package/src/components/ds-date-input/ds-date-input.types.tsx +104 -0
- package/src/components/ds-date-input/ds-date-input.utils.ts +242 -0
- package/src/components/ds-date-input/index.ts +2 -0
- package/src/components/ds-divider/ds-divider.module.scss +21 -0
- package/src/components/ds-divider/ds-divider.tsx +22 -0
- package/src/components/ds-divider/ds-divider.types.ts +21 -0
- package/src/components/ds-divider/index.ts +2 -0
- package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +11 -3
- package/src/components/ds-dropdown-menu/ds-dropdown-menu.tsx +17 -1
- package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.tsx +5 -0
- package/src/components/ds-form-control/ds-form-control.tsx +2 -0
- package/src/components/ds-radio-group/ds-radio-group.types.tsx +1 -1
- package/src/components/ds-table/filters/hooks/index.ts +1 -0
- package/src/components/ds-table/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/components/ds-toggle/ds-toggle.module.scss +154 -0
- package/src/components/ds-toggle/ds-toggle.tsx +78 -0
- package/src/components/ds-toggle/ds-toggle.types.tsx +76 -0
- package/src/components/ds-toggle/index.tsx +2 -0
- package/src/index.ts +7 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/components/ds-table/filters/adapters/create-filter-adapter.ts
|
|
3
|
+
/**
|
|
4
|
+
* Base factory function to create a filter adapter
|
|
5
|
+
*
|
|
6
|
+
* This is the core function that all specialized filter adapters use internally.
|
|
7
|
+
* Use this when checkbox or dual-range adapters don't fit your requirements.
|
|
8
|
+
*
|
|
9
|
+
* ## When to use directly:
|
|
10
|
+
* - Complex filtering logic (e.g., editor + date range)
|
|
11
|
+
* - Unique UI that doesn't fit generic patterns
|
|
12
|
+
* - Combining multiple sub-filters
|
|
13
|
+
* - Special chip generation requirements
|
|
14
|
+
*
|
|
15
|
+
* ## When to use specialized helpers instead:
|
|
16
|
+
* - **Checkbox filters**: Use `createCheckboxFilterAdapter` for multi-select
|
|
17
|
+
* - **Range filters**: Use `createDualRangeFilterAdapter` for numeric ranges
|
|
18
|
+
*
|
|
19
|
+
* ## Example:
|
|
20
|
+
* ```typescript
|
|
21
|
+
* interface MyFilterValue {
|
|
22
|
+
* users: string[];
|
|
23
|
+
* dateRange: { from?: Date; to?: Date };
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* const myFilter = createFilterAdapter<DataType, MyFilterValue>({
|
|
27
|
+
* id: 'myColumn',
|
|
28
|
+
* label: 'My Filter',
|
|
29
|
+
* initialValue: { users: [], dateRange: {} },
|
|
30
|
+
*
|
|
31
|
+
* filterFn: (row, columnId, filterValue) => {
|
|
32
|
+
* // Your custom logic
|
|
33
|
+
* return matchesUsers && matchesDateRange;
|
|
34
|
+
* },
|
|
35
|
+
*
|
|
36
|
+
* toChips: (value) => {
|
|
37
|
+
* // Generate chips from your filter value
|
|
38
|
+
* return chips;
|
|
39
|
+
* },
|
|
40
|
+
*
|
|
41
|
+
* fromChip: (chip, currentValue) => {
|
|
42
|
+
* // Remove chip's effect from value
|
|
43
|
+
* return updatedValue;
|
|
44
|
+
* },
|
|
45
|
+
*
|
|
46
|
+
* getActiveFiltersCount: (value) => {
|
|
47
|
+
* // Count active filters (0 means none active)
|
|
48
|
+
* return count;
|
|
49
|
+
* },
|
|
50
|
+
*
|
|
51
|
+
* renderFilter: (value, onChange) => (
|
|
52
|
+
* <YourCustomFilterComponent
|
|
53
|
+
* value={value}
|
|
54
|
+
* onChange={onChange}
|
|
55
|
+
* />
|
|
56
|
+
* ),
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* ## Reference Implementation:
|
|
61
|
+
* See `workflow-filters.config.tsx` for a complete example (lastEditedFilterAdapter).
|
|
62
|
+
*
|
|
63
|
+
* ## Note:
|
|
64
|
+
* Most use cases are covered by `createCheckboxFilterAdapter` or `createDualRangeFilterAdapter`.
|
|
65
|
+
* Only use this base function directly when you need completely custom filter logic.
|
|
66
|
+
*/
|
|
67
|
+
function createFilterAdapter(config) {
|
|
68
|
+
return {
|
|
69
|
+
id: config.id,
|
|
70
|
+
label: config.label,
|
|
71
|
+
initialValue: config.initialValue,
|
|
72
|
+
columnFilterFn: config.filterFn,
|
|
73
|
+
cellRenderer: config.cellRenderer,
|
|
74
|
+
toChips: config.toChips,
|
|
75
|
+
fromChip: config.fromChip,
|
|
76
|
+
getActiveFiltersCount: config.getActiveFiltersCount,
|
|
77
|
+
reset: () => config.initialValue,
|
|
78
|
+
renderFilter: config.renderFilter
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
exports.createFilterAdapter = createFilterAdapter;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { FilterAdapter } from "../types/filter-adapter.types.cjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/ds-table/filters/adapters/create-filter-adapter.d.ts
|
|
5
|
+
interface FilterAdapterConfig<TData, TFilterValue, TCellValue = unknown> {
|
|
6
|
+
/**
|
|
7
|
+
* Unique identifier (should match column accessorKey)
|
|
8
|
+
*/
|
|
9
|
+
id: string;
|
|
10
|
+
/**
|
|
11
|
+
* Display label for filter navigation
|
|
12
|
+
*/
|
|
13
|
+
label: string;
|
|
14
|
+
/**
|
|
15
|
+
* Initial/default value for the filter
|
|
16
|
+
*/
|
|
17
|
+
initialValue: TFilterValue;
|
|
18
|
+
/**
|
|
19
|
+
* Filter function - determines if row matches filter value
|
|
20
|
+
*/
|
|
21
|
+
filterFn: FilterAdapter<TData, TFilterValue, TCellValue>['columnFilterFn'];
|
|
22
|
+
/**
|
|
23
|
+
* Convert filter value to display chips
|
|
24
|
+
*/
|
|
25
|
+
toChips: FilterAdapter<TData, TFilterValue, TCellValue>['toChips'];
|
|
26
|
+
/**
|
|
27
|
+
* Remove chip effect from filter value
|
|
28
|
+
*/
|
|
29
|
+
fromChip: FilterAdapter<TData, TFilterValue, TCellValue>['fromChip'];
|
|
30
|
+
/**
|
|
31
|
+
* Calculate active filter count
|
|
32
|
+
*/
|
|
33
|
+
getActiveFiltersCount: FilterAdapter<TData, TFilterValue, TCellValue>['getActiveFiltersCount'];
|
|
34
|
+
/**
|
|
35
|
+
* Render the filter UI
|
|
36
|
+
*/
|
|
37
|
+
renderFilter: (value: TFilterValue, onChange: (value: TFilterValue) => void) => ReactNode;
|
|
38
|
+
/**
|
|
39
|
+
* Optional custom cell renderer for table cells
|
|
40
|
+
* Note: This receives the cell value from the table, not the filter value
|
|
41
|
+
*/
|
|
42
|
+
cellRenderer?: (value: TCellValue) => ReactNode;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Base factory function to create a filter adapter
|
|
46
|
+
*
|
|
47
|
+
* This is the core function that all specialized filter adapters use internally.
|
|
48
|
+
* Use this when checkbox or dual-range adapters don't fit your requirements.
|
|
49
|
+
*
|
|
50
|
+
* ## When to use directly:
|
|
51
|
+
* - Complex filtering logic (e.g., editor + date range)
|
|
52
|
+
* - Unique UI that doesn't fit generic patterns
|
|
53
|
+
* - Combining multiple sub-filters
|
|
54
|
+
* - Special chip generation requirements
|
|
55
|
+
*
|
|
56
|
+
* ## When to use specialized helpers instead:
|
|
57
|
+
* - **Checkbox filters**: Use `createCheckboxFilterAdapter` for multi-select
|
|
58
|
+
* - **Range filters**: Use `createDualRangeFilterAdapter` for numeric ranges
|
|
59
|
+
*
|
|
60
|
+
* ## Example:
|
|
61
|
+
* ```typescript
|
|
62
|
+
* interface MyFilterValue {
|
|
63
|
+
* users: string[];
|
|
64
|
+
* dateRange: { from?: Date; to?: Date };
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* const myFilter = createFilterAdapter<DataType, MyFilterValue>({
|
|
68
|
+
* id: 'myColumn',
|
|
69
|
+
* label: 'My Filter',
|
|
70
|
+
* initialValue: { users: [], dateRange: {} },
|
|
71
|
+
*
|
|
72
|
+
* filterFn: (row, columnId, filterValue) => {
|
|
73
|
+
* // Your custom logic
|
|
74
|
+
* return matchesUsers && matchesDateRange;
|
|
75
|
+
* },
|
|
76
|
+
*
|
|
77
|
+
* toChips: (value) => {
|
|
78
|
+
* // Generate chips from your filter value
|
|
79
|
+
* return chips;
|
|
80
|
+
* },
|
|
81
|
+
*
|
|
82
|
+
* fromChip: (chip, currentValue) => {
|
|
83
|
+
* // Remove chip's effect from value
|
|
84
|
+
* return updatedValue;
|
|
85
|
+
* },
|
|
86
|
+
*
|
|
87
|
+
* getActiveFiltersCount: (value) => {
|
|
88
|
+
* // Count active filters (0 means none active)
|
|
89
|
+
* return count;
|
|
90
|
+
* },
|
|
91
|
+
*
|
|
92
|
+
* renderFilter: (value, onChange) => (
|
|
93
|
+
* <YourCustomFilterComponent
|
|
94
|
+
* value={value}
|
|
95
|
+
* onChange={onChange}
|
|
96
|
+
* />
|
|
97
|
+
* ),
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* ## Reference Implementation:
|
|
102
|
+
* See `workflow-filters.config.tsx` for a complete example (lastEditedFilterAdapter).
|
|
103
|
+
*
|
|
104
|
+
* ## Note:
|
|
105
|
+
* Most use cases are covered by `createCheckboxFilterAdapter` or `createDualRangeFilterAdapter`.
|
|
106
|
+
* Only use this base function directly when you need completely custom filter logic.
|
|
107
|
+
*/
|
|
108
|
+
declare function createFilterAdapter<TData, TFilterValue, TCellValue = unknown>(config: FilterAdapterConfig<TData, TFilterValue, TCellValue>): FilterAdapter<TData, TFilterValue, TCellValue>;
|
|
109
|
+
//#endregion
|
|
110
|
+
export { FilterAdapterConfig, createFilterAdapter };
|
|
111
|
+
//# sourceMappingURL=create-filter-adapter.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-filter-adapter.d.cts","names":[],"sources":["../../../../../src/components/ds-table/filters/adapters/create-filter-adapter.ts"],"sourcesContent":[],"mappings":";;;;UAGiB;;AAAjB;;EAmByB,EAAA,EAAA,MAAA;EAAO;;;EAKR,KAAA,EAAA,MAAA;EAAO;;;EAKN,YAAA,EAfV,YAeU;EAAO;;;EAKM,QAAA,EAf3B,aAe2B,CAfb,KAea,EAfN,YAeM,EAfQ,UAeR,CAAA,CAAA,gBAAA,CAAA;EAAO;;;EAKtB,OAAA,EAfb,aAea,CAfC,KAeD,EAfQ,YAeR,EAfsB,UAetB,CAAA,CAAA,SAAA,CAAA;EAAgC;;;EAMhB,QAAA,EAhB5B,aAgB4B,CAhBd,KAgBc,EAhBP,YAgBO,EAhBO,UAgBP,CAAA,CAAA,UAAA,CAAA;EAAS;AAmEhD;;EACoC,qBAAA,EA/EZ,aA+EY,CA/EE,KA+EF,EA/ES,YA+ET,EA/EuB,UA+EvB,CAAA,CAAA,uBAAA,CAAA;EAAc;;;EAC1B,YAAA,EAAA,CAAA,KAAA,EA3ED,YA2EC,EAAA,QAAA,EAAA,CAAA,KAAA,EA3E+B,YA2E/B,EAAA,GAAA,IAAA,EAAA,GA3EyD,SA2EzD;EAAc;;;;yBArEd,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmEvB,uEACP,oBAAoB,OAAO,cAAc,cAC/C,cAAc,OAAO,cAAc"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { FilterAdapter } from "../types/filter-adapter.types.js";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/ds-table/filters/adapters/create-filter-adapter.d.ts
|
|
5
|
+
interface FilterAdapterConfig<TData, TFilterValue, TCellValue = unknown> {
|
|
6
|
+
/**
|
|
7
|
+
* Unique identifier (should match column accessorKey)
|
|
8
|
+
*/
|
|
9
|
+
id: string;
|
|
10
|
+
/**
|
|
11
|
+
* Display label for filter navigation
|
|
12
|
+
*/
|
|
13
|
+
label: string;
|
|
14
|
+
/**
|
|
15
|
+
* Initial/default value for the filter
|
|
16
|
+
*/
|
|
17
|
+
initialValue: TFilterValue;
|
|
18
|
+
/**
|
|
19
|
+
* Filter function - determines if row matches filter value
|
|
20
|
+
*/
|
|
21
|
+
filterFn: FilterAdapter<TData, TFilterValue, TCellValue>['columnFilterFn'];
|
|
22
|
+
/**
|
|
23
|
+
* Convert filter value to display chips
|
|
24
|
+
*/
|
|
25
|
+
toChips: FilterAdapter<TData, TFilterValue, TCellValue>['toChips'];
|
|
26
|
+
/**
|
|
27
|
+
* Remove chip effect from filter value
|
|
28
|
+
*/
|
|
29
|
+
fromChip: FilterAdapter<TData, TFilterValue, TCellValue>['fromChip'];
|
|
30
|
+
/**
|
|
31
|
+
* Calculate active filter count
|
|
32
|
+
*/
|
|
33
|
+
getActiveFiltersCount: FilterAdapter<TData, TFilterValue, TCellValue>['getActiveFiltersCount'];
|
|
34
|
+
/**
|
|
35
|
+
* Render the filter UI
|
|
36
|
+
*/
|
|
37
|
+
renderFilter: (value: TFilterValue, onChange: (value: TFilterValue) => void) => ReactNode;
|
|
38
|
+
/**
|
|
39
|
+
* Optional custom cell renderer for table cells
|
|
40
|
+
* Note: This receives the cell value from the table, not the filter value
|
|
41
|
+
*/
|
|
42
|
+
cellRenderer?: (value: TCellValue) => ReactNode;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Base factory function to create a filter adapter
|
|
46
|
+
*
|
|
47
|
+
* This is the core function that all specialized filter adapters use internally.
|
|
48
|
+
* Use this when checkbox or dual-range adapters don't fit your requirements.
|
|
49
|
+
*
|
|
50
|
+
* ## When to use directly:
|
|
51
|
+
* - Complex filtering logic (e.g., editor + date range)
|
|
52
|
+
* - Unique UI that doesn't fit generic patterns
|
|
53
|
+
* - Combining multiple sub-filters
|
|
54
|
+
* - Special chip generation requirements
|
|
55
|
+
*
|
|
56
|
+
* ## When to use specialized helpers instead:
|
|
57
|
+
* - **Checkbox filters**: Use `createCheckboxFilterAdapter` for multi-select
|
|
58
|
+
* - **Range filters**: Use `createDualRangeFilterAdapter` for numeric ranges
|
|
59
|
+
*
|
|
60
|
+
* ## Example:
|
|
61
|
+
* ```typescript
|
|
62
|
+
* interface MyFilterValue {
|
|
63
|
+
* users: string[];
|
|
64
|
+
* dateRange: { from?: Date; to?: Date };
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* const myFilter = createFilterAdapter<DataType, MyFilterValue>({
|
|
68
|
+
* id: 'myColumn',
|
|
69
|
+
* label: 'My Filter',
|
|
70
|
+
* initialValue: { users: [], dateRange: {} },
|
|
71
|
+
*
|
|
72
|
+
* filterFn: (row, columnId, filterValue) => {
|
|
73
|
+
* // Your custom logic
|
|
74
|
+
* return matchesUsers && matchesDateRange;
|
|
75
|
+
* },
|
|
76
|
+
*
|
|
77
|
+
* toChips: (value) => {
|
|
78
|
+
* // Generate chips from your filter value
|
|
79
|
+
* return chips;
|
|
80
|
+
* },
|
|
81
|
+
*
|
|
82
|
+
* fromChip: (chip, currentValue) => {
|
|
83
|
+
* // Remove chip's effect from value
|
|
84
|
+
* return updatedValue;
|
|
85
|
+
* },
|
|
86
|
+
*
|
|
87
|
+
* getActiveFiltersCount: (value) => {
|
|
88
|
+
* // Count active filters (0 means none active)
|
|
89
|
+
* return count;
|
|
90
|
+
* },
|
|
91
|
+
*
|
|
92
|
+
* renderFilter: (value, onChange) => (
|
|
93
|
+
* <YourCustomFilterComponent
|
|
94
|
+
* value={value}
|
|
95
|
+
* onChange={onChange}
|
|
96
|
+
* />
|
|
97
|
+
* ),
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* ## Reference Implementation:
|
|
102
|
+
* See `workflow-filters.config.tsx` for a complete example (lastEditedFilterAdapter).
|
|
103
|
+
*
|
|
104
|
+
* ## Note:
|
|
105
|
+
* Most use cases are covered by `createCheckboxFilterAdapter` or `createDualRangeFilterAdapter`.
|
|
106
|
+
* Only use this base function directly when you need completely custom filter logic.
|
|
107
|
+
*/
|
|
108
|
+
declare function createFilterAdapter<TData, TFilterValue, TCellValue = unknown>(config: FilterAdapterConfig<TData, TFilterValue, TCellValue>): FilterAdapter<TData, TFilterValue, TCellValue>;
|
|
109
|
+
//#endregion
|
|
110
|
+
export { FilterAdapterConfig, createFilterAdapter };
|
|
111
|
+
//# sourceMappingURL=create-filter-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-filter-adapter.d.ts","names":[],"sources":["../../../../../src/components/ds-table/filters/adapters/create-filter-adapter.ts"],"sourcesContent":[],"mappings":";;;;UAGiB;;AAAjB;;EAmByB,EAAA,EAAA,MAAA;EAAO;;;EAKR,KAAA,EAAA,MAAA;EAAO;;;EAKN,YAAA,EAfV,YAeU;EAAO;;;EAKM,QAAA,EAf3B,aAe2B,CAfb,KAea,EAfN,YAeM,EAfQ,UAeR,CAAA,CAAA,gBAAA,CAAA;EAAO;;;EAKtB,OAAA,EAfb,aAea,CAfC,KAeD,EAfQ,YAeR,EAfsB,UAetB,CAAA,CAAA,SAAA,CAAA;EAAgC;;;EAMhB,QAAA,EAhB5B,aAgB4B,CAhBd,KAgBc,EAhBP,YAgBO,EAhBO,UAgBP,CAAA,CAAA,UAAA,CAAA;EAAS;AAmEhD;;EACoC,qBAAA,EA/EZ,aA+EY,CA/EE,KA+EF,EA/ES,YA+ET,EA/EuB,UA+EvB,CAAA,CAAA,uBAAA,CAAA;EAAc;;;EAC1B,YAAA,EAAA,CAAA,KAAA,EA3ED,YA2EC,EAAA,QAAA,EAAA,CAAA,KAAA,EA3E+B,YA2E/B,EAAA,GAAA,IAAA,EAAA,GA3EyD,SA2EzD;EAAc;;;;yBArEd,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmEvB,uEACP,oBAAoB,OAAO,cAAc,cAC/C,cAAc,OAAO,cAAc"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//#region src/components/ds-table/filters/adapters/create-filter-adapter.ts
|
|
2
|
+
/**
|
|
3
|
+
* Base factory function to create a filter adapter
|
|
4
|
+
*
|
|
5
|
+
* This is the core function that all specialized filter adapters use internally.
|
|
6
|
+
* Use this when checkbox or dual-range adapters don't fit your requirements.
|
|
7
|
+
*
|
|
8
|
+
* ## When to use directly:
|
|
9
|
+
* - Complex filtering logic (e.g., editor + date range)
|
|
10
|
+
* - Unique UI that doesn't fit generic patterns
|
|
11
|
+
* - Combining multiple sub-filters
|
|
12
|
+
* - Special chip generation requirements
|
|
13
|
+
*
|
|
14
|
+
* ## When to use specialized helpers instead:
|
|
15
|
+
* - **Checkbox filters**: Use `createCheckboxFilterAdapter` for multi-select
|
|
16
|
+
* - **Range filters**: Use `createDualRangeFilterAdapter` for numeric ranges
|
|
17
|
+
*
|
|
18
|
+
* ## Example:
|
|
19
|
+
* ```typescript
|
|
20
|
+
* interface MyFilterValue {
|
|
21
|
+
* users: string[];
|
|
22
|
+
* dateRange: { from?: Date; to?: Date };
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* const myFilter = createFilterAdapter<DataType, MyFilterValue>({
|
|
26
|
+
* id: 'myColumn',
|
|
27
|
+
* label: 'My Filter',
|
|
28
|
+
* initialValue: { users: [], dateRange: {} },
|
|
29
|
+
*
|
|
30
|
+
* filterFn: (row, columnId, filterValue) => {
|
|
31
|
+
* // Your custom logic
|
|
32
|
+
* return matchesUsers && matchesDateRange;
|
|
33
|
+
* },
|
|
34
|
+
*
|
|
35
|
+
* toChips: (value) => {
|
|
36
|
+
* // Generate chips from your filter value
|
|
37
|
+
* return chips;
|
|
38
|
+
* },
|
|
39
|
+
*
|
|
40
|
+
* fromChip: (chip, currentValue) => {
|
|
41
|
+
* // Remove chip's effect from value
|
|
42
|
+
* return updatedValue;
|
|
43
|
+
* },
|
|
44
|
+
*
|
|
45
|
+
* getActiveFiltersCount: (value) => {
|
|
46
|
+
* // Count active filters (0 means none active)
|
|
47
|
+
* return count;
|
|
48
|
+
* },
|
|
49
|
+
*
|
|
50
|
+
* renderFilter: (value, onChange) => (
|
|
51
|
+
* <YourCustomFilterComponent
|
|
52
|
+
* value={value}
|
|
53
|
+
* onChange={onChange}
|
|
54
|
+
* />
|
|
55
|
+
* ),
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* ## Reference Implementation:
|
|
60
|
+
* See `workflow-filters.config.tsx` for a complete example (lastEditedFilterAdapter).
|
|
61
|
+
*
|
|
62
|
+
* ## Note:
|
|
63
|
+
* Most use cases are covered by `createCheckboxFilterAdapter` or `createDualRangeFilterAdapter`.
|
|
64
|
+
* Only use this base function directly when you need completely custom filter logic.
|
|
65
|
+
*/
|
|
66
|
+
function createFilterAdapter(config) {
|
|
67
|
+
return {
|
|
68
|
+
id: config.id,
|
|
69
|
+
label: config.label,
|
|
70
|
+
initialValue: config.initialValue,
|
|
71
|
+
columnFilterFn: config.filterFn,
|
|
72
|
+
cellRenderer: config.cellRenderer,
|
|
73
|
+
toChips: config.toChips,
|
|
74
|
+
fromChip: config.fromChip,
|
|
75
|
+
getActiveFiltersCount: config.getActiveFiltersCount,
|
|
76
|
+
reset: () => config.initialValue,
|
|
77
|
+
renderFilter: config.renderFilter
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
export { createFilterAdapter };
|
|
83
|
+
//# sourceMappingURL=create-filter-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-filter-adapter.js","names":["ReactNode","FilterAdapter","FilterAdapterConfig","id","label","initialValue","TFilterValue","filterFn","TData","TCellValue","toChips","fromChip","getActiveFiltersCount","renderFilter","value","onChange","cellRenderer","createFilterAdapter","config","columnFilterFn","reset"],"sources":["../../../../../src/components/ds-table/filters/adapters/create-filter-adapter.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { FilterAdapter } from '../types/filter-adapter.types';\n\nexport interface FilterAdapterConfig<TData, TFilterValue, TCellValue = unknown> {\n\t/**\n\t * Unique identifier (should match column accessorKey)\n\t */\n\tid: string;\n\n\t/**\n\t * Display label for filter navigation\n\t */\n\tlabel: string;\n\n\t/**\n\t * Initial/default value for the filter\n\t */\n\tinitialValue: TFilterValue;\n\n\t/**\n\t * Filter function - determines if row matches filter value\n\t */\n\tfilterFn: FilterAdapter<TData, TFilterValue, TCellValue>['columnFilterFn'];\n\n\t/**\n\t * Convert filter value to display chips\n\t */\n\ttoChips: FilterAdapter<TData, TFilterValue, TCellValue>['toChips'];\n\n\t/**\n\t * Remove chip effect from filter value\n\t */\n\tfromChip: FilterAdapter<TData, TFilterValue, TCellValue>['fromChip'];\n\n\t/**\n\t * Calculate active filter count\n\t */\n\tgetActiveFiltersCount: FilterAdapter<TData, TFilterValue, TCellValue>['getActiveFiltersCount'];\n\n\t/**\n\t * Render the filter UI\n\t */\n\trenderFilter: (value: TFilterValue, onChange: (value: TFilterValue) => void) => ReactNode;\n\n\t/**\n\t * Optional custom cell renderer for table cells\n\t * Note: This receives the cell value from the table, not the filter value\n\t */\n\tcellRenderer?: (value: TCellValue) => ReactNode;\n}\n\n/**\n * Base factory function to create a filter adapter\n *\n * This is the core function that all specialized filter adapters use internally.\n * Use this when checkbox or dual-range adapters don't fit your requirements.\n *\n * ## When to use directly:\n * - Complex filtering logic (e.g., editor + date range)\n * - Unique UI that doesn't fit generic patterns\n * - Combining multiple sub-filters\n * - Special chip generation requirements\n *\n * ## When to use specialized helpers instead:\n * - **Checkbox filters**: Use `createCheckboxFilterAdapter` for multi-select\n * - **Range filters**: Use `createDualRangeFilterAdapter` for numeric ranges\n *\n * ## Example:\n * ```typescript\n * interface MyFilterValue {\n * users: string[];\n * dateRange: { from?: Date; to?: Date };\n * }\n *\n * const myFilter = createFilterAdapter<DataType, MyFilterValue>({\n * id: 'myColumn',\n * label: 'My Filter',\n * initialValue: { users: [], dateRange: {} },\n *\n * filterFn: (row, columnId, filterValue) => {\n * // Your custom logic\n * return matchesUsers && matchesDateRange;\n * },\n *\n * toChips: (value) => {\n * // Generate chips from your filter value\n * return chips;\n * },\n *\n * fromChip: (chip, currentValue) => {\n * // Remove chip's effect from value\n * return updatedValue;\n * },\n *\n * getActiveFiltersCount: (value) => {\n * // Count active filters (0 means none active)\n * return count;\n * },\n *\n * renderFilter: (value, onChange) => (\n * <YourCustomFilterComponent\n * value={value}\n * onChange={onChange}\n * />\n * ),\n * });\n * ```\n *\n * ## Reference Implementation:\n * See `workflow-filters.config.tsx` for a complete example (lastEditedFilterAdapter).\n *\n * ## Note:\n * Most use cases are covered by `createCheckboxFilterAdapter` or `createDualRangeFilterAdapter`.\n * Only use this base function directly when you need completely custom filter logic.\n */\nexport function createFilterAdapter<TData, TFilterValue, TCellValue = unknown>(\n\tconfig: FilterAdapterConfig<TData, TFilterValue, TCellValue>,\n): FilterAdapter<TData, TFilterValue, TCellValue> {\n\treturn {\n\t\tid: config.id,\n\t\tlabel: config.label,\n\t\tinitialValue: config.initialValue,\n\t\tcolumnFilterFn: config.filterFn,\n\t\tcellRenderer: config.cellRenderer,\n\t\ttoChips: config.toChips,\n\t\tfromChip: config.fromChip,\n\t\tgetActiveFiltersCount: config.getActiveFiltersCount,\n\t\treset: () => config.initialValue,\n\t\trenderFilter: config.renderFilter,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmHA,SAAgBiB,oBACfC,QACiD;AACjD,QAAO;EACNf,IAAIe,OAAOf;EACXC,OAAOc,OAAOd;EACdC,cAAca,OAAOb;EACrBc,gBAAgBD,OAAOX;EACvBS,cAAcE,OAAOF;EACrBN,SAASQ,OAAOR;EAChBC,UAAUO,OAAOP;EACjBC,uBAAuBM,OAAON;EAC9BQ,aAAaF,OAAOb;EACpBQ,cAAcK,OAAOL;EACrB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const require_create_filter_adapter = require('./create-filter-adapter.cjs');
|
|
2
|
+
const require_create_checkbox_filter_adapter = require('./create-checkbox-filter-adapter.cjs');
|
|
3
|
+
const require_create_dual_range_filter_adapter = require('./create-dual-range-filter-adapter.cjs');
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { FilterAdapterConfig, createFilterAdapter } from "./create-filter-adapter.js";
|
|
2
|
+
import { CheckboxFilterAdapterConfig, createCheckboxFilterAdapter } from "./create-checkbox-filter-adapter.js";
|
|
3
|
+
import { DualRangeFilterAdapterConfig, DualRangeFilterValue, RangeValue, createDualRangeFilterAdapter } from "./create-dual-range-filter-adapter.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_ds_checkbox = require('../../../../ds-checkbox/ds-checkbox.cjs');
|
|
3
|
+
require('../../../../ds-checkbox/index.cjs');
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
|
|
6
|
+
//#region src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.tsx
|
|
7
|
+
const CheckboxFilter = ({ items, renderer, selectedItems, onSelectionChange }) => {
|
|
8
|
+
const handleCheckedChange = (selected, checked) => {
|
|
9
|
+
if (checked) onSelectionChange([...selectedItems, selected]);
|
|
10
|
+
else onSelectionChange(selectedItems.filter((item) => item.value !== selected.value));
|
|
11
|
+
};
|
|
12
|
+
return items.map((item) => {
|
|
13
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_checkbox.default, {
|
|
14
|
+
label: renderer ? renderer(item) : item.label,
|
|
15
|
+
checked: selectedItems.findIndex((selectedItem) => selectedItem.value === item.value) > -1,
|
|
16
|
+
onCheckedChange: (newState) => handleCheckedChange(item, newState === true)
|
|
17
|
+
}, JSON.stringify(item.value));
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.CheckboxFilter = CheckboxFilter;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts
|
|
4
|
+
interface CheckboxFilterItem<TValue = string> {
|
|
5
|
+
value: TValue;
|
|
6
|
+
label: string;
|
|
7
|
+
metadata?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
interface CheckboxFilterProps<TValue> {
|
|
10
|
+
items: CheckboxFilterItem<TValue>[];
|
|
11
|
+
renderer?: (item: CheckboxFilterItem<TValue>) => ReactNode;
|
|
12
|
+
selectedItems: CheckboxFilterItem<TValue>[];
|
|
13
|
+
onSelectionChange: (selectedItems: CheckboxFilterItem<TValue>[]) => void;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { CheckboxFilterItem, CheckboxFilterProps };
|
|
17
|
+
//# sourceMappingURL=checkbox-filter.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-filter.d.cts","names":[],"sources":["../../../../../../src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.tsx"],"sourcesContent":[],"mappings":";;;UAGiB;SACT;EADS,KAAA,EAAA,MAAA;EAMA,QAAA,CAAA,EAHL,MAGK,CAAA,MAAmB,EAAA,OAAA,CAAA;;AAC5B,UADS,mBACT,CAAA,MAAA,CAAA,CAAA;EAC8B,KAAA,EAD9B,kBAC8B,CADX,MACW,CAAA,EAAA;EAAnB,QAAA,CAAA,EAAA,CAAA,IAAA,EAAA,kBAAA,CAAmB,MAAnB,CAAA,EAAA,GAA+B,SAA/B;EAA+B,aAAA,EAClC,kBADkC,CACf,MADe,CAAA,EAAA;EACf,iBAAA,EAAA,CAAA,aAAA,EACC,kBADD,CACoB,MADpB,CAAA,EAAA,EAAA,GAAA,IAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "react/jsx-runtime";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts
|
|
5
|
+
interface CheckboxFilterItem<TValue = string> {
|
|
6
|
+
value: TValue;
|
|
7
|
+
label: string;
|
|
8
|
+
metadata?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
interface CheckboxFilterProps<TValue> {
|
|
11
|
+
items: CheckboxFilterItem<TValue>[];
|
|
12
|
+
renderer?: (item: CheckboxFilterItem<TValue>) => ReactNode;
|
|
13
|
+
selectedItems: CheckboxFilterItem<TValue>[];
|
|
14
|
+
onSelectionChange: (selectedItems: CheckboxFilterItem<TValue>[]) => void;
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { CheckboxFilterItem, CheckboxFilterProps };
|
|
18
|
+
//# sourceMappingURL=checkbox-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-filter.d.ts","names":[],"sources":["../../../../../../src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB;SACT;;EADS,QAAA,CAAA,EAGL,MAHK,CAAA,MAAkB,EAAA,OAAA,CAAA;AAMnC;AAC2B,UADV,mBACU,CAAA,MAAA,CAAA,CAAA;EAAnB,KAAA,EAAA,kBAAA,CAAmB,MAAnB,CAAA,EAAA;EAC8B,QAAA,CAAA,EAAA,CAAA,IAAA,EAAnB,kBAAmB,CAAA,MAAA,CAAA,EAAA,GAAY,SAAZ;EAAnB,aAAA,EACH,kBADG,CACgB,MADhB,CAAA,EAAA;EAA+B,iBAAA,EAAA,CAAA,aAAA,EAEd,kBAFc,CAEK,MAFL,CAAA,EAAA,EAAA,GAAA,IAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import ds_checkbox_default from "../../../../ds-checkbox/ds-checkbox.js";
|
|
2
|
+
import "../../../../ds-checkbox/index.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.tsx
|
|
6
|
+
const CheckboxFilter = ({ items, renderer, selectedItems, onSelectionChange }) => {
|
|
7
|
+
const handleCheckedChange = (selected, checked) => {
|
|
8
|
+
if (checked) onSelectionChange([...selectedItems, selected]);
|
|
9
|
+
else onSelectionChange(selectedItems.filter((item) => item.value !== selected.value));
|
|
10
|
+
};
|
|
11
|
+
return items.map((item) => {
|
|
12
|
+
return /* @__PURE__ */ jsx(ds_checkbox_default, {
|
|
13
|
+
label: renderer ? renderer(item) : item.label,
|
|
14
|
+
checked: selectedItems.findIndex((selectedItem) => selectedItem.value === item.value) > -1,
|
|
15
|
+
onCheckedChange: (newState) => handleCheckedChange(item, newState === true)
|
|
16
|
+
}, JSON.stringify(item.value));
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { CheckboxFilter };
|
|
22
|
+
//# sourceMappingURL=checkbox-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-filter.js","names":["ReactNode","DsCheckbox","CheckboxFilterItem","value","TValue","label","metadata","Record","CheckboxFilterProps","items","renderer","item","selectedItems","onSelectionChange","CheckboxFilter","handleCheckedChange","selected","checked","filter","map","findIndex","selectedItem","JSON","stringify","newState"],"sources":["../../../../../../src/components/ds-table/filters/components/checkbox-filter/checkbox-filter.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { DsCheckbox } from '../../../../ds-checkbox';\n\nexport interface CheckboxFilterItem<TValue = string> {\n\tvalue: TValue;\n\tlabel: string;\n\tmetadata?: Record<string, unknown>;\n}\n\nexport interface CheckboxFilterProps<TValue> {\n\titems: CheckboxFilterItem<TValue>[];\n\trenderer?: (item: CheckboxFilterItem<TValue>) => ReactNode;\n\tselectedItems: CheckboxFilterItem<TValue>[];\n\tonSelectionChange: (selectedItems: CheckboxFilterItem<TValue>[]) => void;\n}\n\nexport const CheckboxFilter = <TValue,>({\n\titems,\n\trenderer,\n\tselectedItems,\n\tonSelectionChange,\n}: CheckboxFilterProps<TValue>) => {\n\tconst handleCheckedChange = (selected: CheckboxFilterItem<TValue>, checked: boolean) => {\n\t\tif (checked) {\n\t\t\tonSelectionChange([...selectedItems, selected]);\n\t\t} else {\n\t\t\tonSelectionChange(selectedItems.filter((item) => item.value !== selected.value));\n\t\t}\n\t};\n\n\treturn items.map((item) => {\n\t\tconst label = renderer ? renderer(item) : item.label;\n\t\tconst checked = selectedItems.findIndex((selectedItem) => selectedItem.value === item.value) > -1;\n\t\treturn (\n\t\t\t<DsCheckbox\n\t\t\t\tkey={JSON.stringify(item.value)}\n\t\t\t\tlabel={label}\n\t\t\t\tchecked={checked}\n\t\t\t\tonCheckedChange={(newState) => handleCheckedChange(item, newState === true)}\n\t\t\t/>\n\t\t);\n\t});\n};\n"],"mappings":";;;;;AAgBA,MAAac,kBAA2B,EACvCL,OACAC,UACAE,eACAC,wBACkC;CAClC,MAAME,uBAAuBC,UAAsCC,YAAqB;AACvF,MAAIA,QACHJ,mBAAkB,CAAC,GAAGD,eAAeI,SAAS,CAAC;MAE/CH,mBAAkBD,cAAcM,QAAQP,SAASA,KAAKR,UAAUa,SAASb,MAAM,CAAC;;AAIlF,QAAOM,MAAMU,KAAKR,SAAS;AAG1B,SACC,oBAAC;GAEA,OALYD,WAAWA,SAASC,KAAK,GAAGA,KAAKN;GAM7C,SALcO,cAAcQ,WAAWC,iBAAiBA,aAAalB,UAAUQ,KAAKR,MAAM,GAAG;GAM7F,kBAAkBqB,aAAaT,oBAAoBJ,MAAMa,aAAa,KAAK;KAHtEF,KAAKC,UAAUZ,KAAKR,MAAM,CAI9B;GAEF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const require_checkbox_filter = require('./checkbox-filter.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { CheckboxFilterItem, CheckboxFilterProps } from "./checkbox-filter.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { CheckboxFilter } from "./checkbox-filter.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const require_range_filter = require('./range-filter.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { RangeFilterProps, RangeFilterValue } from "./range-filter.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { RangeFilter } from "./range-filter.js";
|