draft-components 3.5.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/draft-components-variables.css +418 -230
- package/css/draft-components.css +2547 -1594
- package/dist/components/alert/alert.css +58 -59
- package/dist/components/alert/alert.d.ts +6 -6
- package/dist/components/alert/alert.js +5 -4
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/avatar/avatar.css +29 -29
- package/dist/components/avatar/avatar.d.ts +6 -6
- package/dist/components/avatar/avatar.js +6 -5
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.css +8 -8
- package/dist/components/badge/badge.d.ts +5 -5
- package/dist/components/badge/badge.js +2 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/index.js +1 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs-context.d.ts +1 -1
- package/dist/components/breadcrumbs/breadcrumbs-context.js +1 -0
- package/dist/components/breadcrumbs/breadcrumbs-context.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs-item.d.ts +7 -6
- package/dist/components/breadcrumbs/breadcrumbs-item.js +2 -0
- package/dist/components/breadcrumbs/breadcrumbs-item.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.css +9 -9
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +5 -4
- package/dist/components/breadcrumbs/breadcrumbs.js +2 -0
- package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -0
- package/dist/components/breadcrumbs/index.js +1 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/button/button.css +634 -108
- package/dist/components/button/button.d.ts +7 -6
- package/dist/components/button/button.js +17 -13
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/icon-button.d.ts +2 -2
- package/dist/components/button/icon-button.js +4 -4
- package/dist/components/button/icon-button.js.map +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button-group/button-group.d.ts +4 -3
- package/dist/components/button-group/button-group.js +2 -0
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/button-group/index.js +1 -0
- package/dist/components/button-group/index.js.map +1 -0
- package/dist/components/caption/caption.css +6 -6
- package/dist/components/caption/caption.d.ts +6 -6
- package/dist/components/caption/caption.js +6 -4
- package/dist/components/caption/caption.js.map +1 -0
- package/dist/components/caption/index.js +1 -0
- package/dist/components/caption/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.css +24 -28
- package/dist/components/checkbox/checkbox.d.ts +5 -5
- package/dist/components/checkbox/checkbox.js +11 -6
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/color-picker/color-picker-button.d.ts +1 -1
- package/dist/components/color-picker/color-picker-button.js +9 -3
- package/dist/components/color-picker/color-picker-button.js.map +1 -0
- package/dist/components/color-picker/color-picker.css +13 -13
- package/dist/components/color-picker/color-picker.d.ts +10 -6
- package/dist/components/color-picker/color-picker.js +2 -0
- package/dist/components/color-picker/color-picker.js.map +1 -0
- package/dist/components/color-picker/index.js +1 -0
- package/dist/components/color-picker/index.js.map +1 -0
- package/dist/components/date-picker/calendar-day.d.ts +5 -4
- package/dist/components/date-picker/calendar-day.js +2 -0
- package/dist/components/date-picker/calendar-day.js.map +1 -0
- package/dist/components/date-picker/calendar-grid-head.d.ts +1 -1
- package/dist/components/date-picker/calendar-grid-head.js +2 -0
- package/dist/components/date-picker/calendar-grid-head.js.map +1 -0
- package/dist/components/date-picker/calendar-grid.d.ts +1 -1
- package/dist/components/date-picker/calendar-grid.js +22 -16
- package/dist/components/date-picker/calendar-grid.js.map +1 -0
- package/dist/components/date-picker/calendar-header.js +3 -2
- package/dist/components/date-picker/calendar-header.js.map +1 -0
- package/dist/components/date-picker/calendar.d.ts +10 -7
- package/dist/components/date-picker/calendar.js +1 -0
- package/dist/components/date-picker/calendar.js.map +1 -0
- package/dist/components/date-picker/date-helpers.js +1 -0
- package/dist/components/date-picker/date-helpers.js.map +1 -0
- package/dist/components/date-picker/date-picker.css +44 -40
- package/dist/components/date-picker/date-picker.d.ts +9 -8
- package/dist/components/date-picker/date-picker.js +4 -2
- package/dist/components/date-picker/date-picker.js.map +1 -0
- package/dist/components/date-picker/date-range-picker.d.ts +10 -9
- package/dist/components/date-picker/date-range-picker.js +5 -4
- package/dist/components/date-picker/date-range-picker.js.map +1 -0
- package/dist/components/date-picker/date-range.d.ts +1 -1
- package/dist/components/date-picker/date-range.js +1 -0
- package/dist/components/date-picker/date-range.js.map +1 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-picker/index.js.map +1 -0
- package/dist/components/date-picker/parse-min-max-props.d.ts +1 -1
- package/dist/components/date-picker/parse-min-max-props.js +1 -0
- package/dist/components/date-picker/parse-min-max-props.js.map +1 -0
- package/dist/components/date-picker-popover/date-picker-popover.d.ts +18 -10
- package/dist/components/date-picker-popover/date-picker-popover.js +18 -5
- package/dist/components/date-picker-popover/date-picker-popover.js.map +1 -0
- package/dist/components/date-picker-popover/index.js +1 -0
- package/dist/components/date-picker-popover/index.js.map +1 -0
- package/dist/components/date-range-picker-popover/date-range-picker-popover-footer.d.ts +1 -1
- package/dist/components/date-range-picker-popover/date-range-picker-popover-footer.js +3 -1
- package/dist/components/date-range-picker-popover/date-range-picker-popover-footer.js.map +1 -0
- package/dist/components/date-range-picker-popover/date-range-picker-popover-presets.d.ts +1 -1
- package/dist/components/date-range-picker-popover/date-range-picker-popover-presets.js +2 -0
- package/dist/components/date-range-picker-popover/date-range-picker-popover-presets.js.map +1 -0
- package/dist/components/date-range-picker-popover/date-range-picker-popover.d.ts +17 -14
- package/dist/components/date-range-picker-popover/date-range-picker-popover.js +20 -14
- package/dist/components/date-range-picker-popover/date-range-picker-popover.js.map +1 -0
- package/dist/components/date-range-picker-popover/helpers.d.ts +1 -1
- package/dist/components/date-range-picker-popover/helpers.js +2 -0
- package/dist/components/date-range-picker-popover/helpers.js.map +1 -0
- package/dist/components/date-range-picker-popover/index.js +1 -0
- package/dist/components/date-range-picker-popover/index.js.map +1 -0
- package/dist/components/date-range-picker-popover/types.d.ts +1 -1
- package/dist/components/date-range-picker-popover/types.js +2 -1
- package/dist/components/date-range-picker-popover/types.js.map +1 -0
- package/dist/components/date-range-picker-popover/use-is-compact-view.js +7 -1
- package/dist/components/date-range-picker-popover/use-is-compact-view.js.map +1 -0
- package/dist/components/dialog/dialog-body.d.ts +9 -4
- package/dist/components/dialog/dialog-body.js +26 -3
- package/dist/components/dialog/dialog-body.js.map +1 -0
- package/dist/components/dialog/dialog-context.d.ts +4 -4
- package/dist/components/dialog/dialog-context.js +10 -7
- package/dist/components/dialog/dialog-context.js.map +1 -0
- package/dist/components/dialog/dialog-footer.d.ts +4 -6
- package/dist/components/dialog/dialog-footer.js +8 -4
- package/dist/components/dialog/dialog-footer.js.map +1 -0
- package/dist/components/dialog/dialog-header.d.ts +8 -8
- package/dist/components/dialog/dialog-header.js +12 -10
- package/dist/components/dialog/dialog-header.js.map +1 -0
- package/dist/components/dialog/dialog.css +321 -100
- package/dist/components/dialog/dialog.d.ts +13 -18
- package/dist/components/dialog/dialog.js +84 -30
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/empty-state/empty-state.css +9 -5
- package/dist/components/empty-state/empty-state.d.ts +7 -6
- package/dist/components/empty-state/empty-state.js +7 -2
- package/dist/components/empty-state/empty-state.js.map +1 -0
- package/dist/components/empty-state/index.js +1 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/file-picker/file-picker.css +19 -16
- package/dist/components/file-picker/file-picker.d.ts +7 -7
- package/dist/components/file-picker/file-picker.js +25 -9
- package/dist/components/file-picker/file-picker.js.map +1 -0
- package/dist/components/file-picker/index.js +1 -0
- package/dist/components/file-picker/index.js.map +1 -0
- package/dist/components/filter-buttons/filter-button.d.ts +6 -5
- package/dist/components/filter-buttons/filter-button.js +4 -3
- package/dist/components/filter-buttons/filter-button.js.map +1 -0
- package/dist/components/filter-buttons/filter-buttons.css +37 -12
- package/dist/components/filter-buttons/filter-buttons.d.ts +2 -2
- package/dist/components/filter-buttons/filter-buttons.js +3 -2
- package/dist/components/filter-buttons/filter-buttons.js.map +1 -0
- package/dist/components/filter-buttons/index.js +1 -0
- package/dist/components/filter-buttons/index.js.map +1 -0
- package/dist/components/filtered-search/filter-item.css +1 -1
- package/dist/components/filtered-search/filter-item.d.ts +1 -1
- package/dist/components/filtered-search/filter-item.js +3 -1
- package/dist/components/filtered-search/filter-item.js.map +1 -0
- package/dist/components/filtered-search/filter-operator-select.js +2 -1
- package/dist/components/filtered-search/filter-operator-select.js.map +1 -0
- package/dist/components/filtered-search/filter-token.css +7 -7
- package/dist/components/filtered-search/filter-token.d.ts +6 -3
- package/dist/components/filtered-search/filter-token.js +5 -4
- package/dist/components/filtered-search/filter-token.js.map +1 -0
- package/dist/components/filtered-search/filter-value-list.css +1 -1
- package/dist/components/filtered-search/filter-value-list.js +3 -1
- package/dist/components/filtered-search/filter-value-list.js.map +1 -0
- package/dist/components/filtered-search/filtered-search.css +56 -52
- package/dist/components/filtered-search/filtered-search.d.ts +6 -5
- package/dist/components/filtered-search/filtered-search.js +12 -9
- package/dist/components/filtered-search/filtered-search.js.map +1 -0
- package/dist/components/filtered-search/index.d.ts +1 -1
- package/dist/components/filtered-search/index.js +3 -1
- package/dist/components/filtered-search/index.js.map +1 -0
- package/dist/components/filtered-search/model/abstract-filter.js +1 -0
- package/dist/components/filtered-search/model/abstract-filter.js.map +1 -0
- package/dist/components/filtered-search/model/string-filter.d.ts +1 -1
- package/dist/components/filtered-search/model/string-filter.js +2 -0
- package/dist/components/filtered-search/model/string-filter.js.map +1 -0
- package/dist/components/filtered-search/model/string-set-filter.js +1 -0
- package/dist/components/filtered-search/model/string-set-filter.js.map +1 -0
- package/dist/components/filtered-search/model/validation-result.js +1 -0
- package/dist/components/filtered-search/model/validation-result.js.map +1 -0
- package/dist/components/filtered-search/string-filter-input.js +2 -1
- package/dist/components/filtered-search/string-filter-input.js.map +1 -0
- package/dist/components/filtered-search/string-filter-item.d.ts +1 -1
- package/dist/components/filtered-search/string-filter-item.js +7 -3
- package/dist/components/filtered-search/string-filter-item.js.map +1 -0
- package/dist/components/filtered-search/string-set-filter-item.d.ts +1 -1
- package/dist/components/filtered-search/string-set-filter-item.js +7 -3
- package/dist/components/filtered-search/string-set-filter-item.js.map +1 -0
- package/dist/components/filtered-search/types.d.ts +2 -2
- package/dist/components/filtered-search/types.js +3 -1
- package/dist/components/filtered-search/types.js.map +1 -0
- package/dist/components/filtered-search/use-combobox-ids.js +1 -0
- package/dist/components/filtered-search/use-combobox-ids.js.map +1 -0
- package/dist/components/filtered-search/use-translations.d.ts +1 -1
- package/dist/components/filtered-search/use-translations.js +1 -0
- package/dist/components/filtered-search/use-translations.js.map +1 -0
- package/dist/components/form-field/form-field.d.ts +7 -10
- package/dist/components/form-field/form-field.js +1 -0
- package/dist/components/form-field/form-field.js.map +1 -0
- package/dist/components/form-field/index.js +1 -0
- package/dist/components/form-field/index.js.map +1 -0
- package/dist/components/hero-icons/24/outline/arrow-down-icon.d.ts +2 -0
- package/dist/components/hero-icons/24/outline/arrow-down-icon.js +6 -0
- package/dist/components/hero-icons/24/outline/arrow-down-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/arrow-up-icon.d.ts +2 -0
- package/dist/components/hero-icons/24/outline/arrow-up-icon.js +6 -0
- package/dist/components/hero-icons/24/outline/arrow-up-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/arrows-up-down-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/arrows-up-down-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/arrows-up-down-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/chevron-left-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/chevron-left-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/chevron-left-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/chevron-right-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/chevron-right-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/chevron-right-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/eye-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/eye-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/eye-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/eye-slash-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/eye-slash-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/eye-slash-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/magnifying-glass-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/magnifying-glass-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/magnifying-glass-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/trash-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/trash-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/trash-icon.js.map +1 -0
- package/dist/components/hero-icons/24/outline/x-mark-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/outline/x-mark-icon.js +5 -4
- package/dist/components/hero-icons/24/outline/x-mark-icon.js.map +1 -0
- package/dist/components/hero-icons/24/solid/exclamation-triangle-icon.d.ts +2 -3
- package/dist/components/hero-icons/24/solid/exclamation-triangle-icon.js +5 -4
- package/dist/components/hero-icons/24/solid/exclamation-triangle-icon.js.map +1 -0
- package/dist/components/index.d.ts +0 -2
- package/dist/components/index.js +1 -2
- package/dist/components/index.js.map +1 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.css +5 -5
- package/dist/components/label/label.d.ts +6 -3
- package/dist/components/label/label.js +6 -4
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/index.js.map +1 -0
- package/dist/components/menu/menu-item.d.ts +6 -6
- package/dist/components/menu/menu-item.js +9 -14
- package/dist/components/menu/menu-item.js.map +1 -0
- package/dist/components/menu/menu-separator.d.ts +2 -5
- package/dist/components/menu/menu-separator.js +3 -1
- package/dist/components/menu/menu-separator.js.map +1 -0
- package/dist/components/menu/menu.css +25 -26
- package/dist/components/menu/menu.d.ts +22 -26
- package/dist/components/menu/menu.js +121 -116
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/nav-list/index.js +1 -0
- package/dist/components/nav-list/index.js.map +1 -0
- package/dist/components/nav-list/nav-list-item.d.ts +7 -6
- package/dist/components/nav-list/nav-list-item.js +2 -0
- package/dist/components/nav-list/nav-list-item.js.map +1 -0
- package/dist/components/nav-list/nav-list-title.d.ts +5 -5
- package/dist/components/nav-list/nav-list-title.js +2 -0
- package/dist/components/nav-list/nav-list-title.js.map +1 -0
- package/dist/components/nav-list/nav-list.css +12 -12
- package/dist/components/nav-list/nav-list.d.ts +8 -2
- package/dist/components/nav-list/nav-list.js +6 -0
- package/dist/components/nav-list/nav-list.js.map +1 -0
- package/dist/components/password-input/index.js +1 -0
- package/dist/components/password-input/index.js.map +1 -0
- package/dist/components/password-input/password-input.css +3 -33
- package/dist/components/password-input/password-input.d.ts +7 -6
- package/dist/components/password-input/password-input.js +9 -7
- package/dist/components/password-input/password-input.js.map +1 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.css +43 -70
- package/dist/components/popover/popover.d.ts +28 -49
- package/dist/components/popover/popover.js +101 -82
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/portal/index.js.map +1 -0
- package/dist/components/portal/portal-context.d.ts +1 -1
- package/dist/components/portal/portal-context.js +1 -0
- package/dist/components/portal/portal-context.js.map +1 -0
- package/dist/components/portal/portal.d.ts +1 -1
- package/dist/components/portal/portal.js +2 -0
- package/dist/components/portal/portal.js.map +1 -0
- package/dist/components/radio/index.js +1 -0
- package/dist/components/radio/index.js.map +1 -0
- package/dist/components/radio/radio.css +24 -28
- package/dist/components/radio/radio.d.ts +5 -5
- package/dist/components/radio/radio.js +11 -6
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/search-select/context.d.ts +1 -1
- package/dist/components/search-select/context.js +1 -0
- package/dist/components/search-select/context.js.map +1 -0
- package/dist/components/search-select/icons.d.ts +3 -3
- package/dist/components/search-select/icons.js +2 -0
- package/dist/components/search-select/icons.js.map +1 -0
- package/dist/components/search-select/index.js +1 -0
- package/dist/components/search-select/index.js.map +1 -0
- package/dist/components/search-select/search-select.css +67 -43
- package/dist/components/search-select/search-select.d.ts +9 -10
- package/dist/components/search-select/search-select.js +20 -15
- package/dist/components/search-select/search-select.js.map +1 -0
- package/dist/components/segmented-control/index.js +1 -0
- package/dist/components/segmented-control/index.js.map +1 -0
- package/dist/components/segmented-control/segmented-button.d.ts +1 -1
- package/dist/components/segmented-control/segmented-button.js +2 -0
- package/dist/components/segmented-control/segmented-button.js.map +1 -0
- package/dist/components/segmented-control/segmented-control.css +46 -41
- package/dist/components/segmented-control/segmented-control.d.ts +5 -4
- package/dist/components/segmented-control/segmented-control.js +2 -0
- package/dist/components/segmented-control/segmented-control.js.map +1 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.css +37 -32
- package/dist/components/select/select.d.ts +6 -31
- package/dist/components/select/select.js +5 -4
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/selection-control/index.js +1 -0
- package/dist/components/selection-control/index.js.map +1 -0
- package/dist/components/selection-control/selection-control.d.ts +8 -13
- package/dist/components/selection-control/selection-control.js +5 -4
- package/dist/components/selection-control/selection-control.js.map +1 -0
- package/dist/components/slider/calc-position.js +1 -0
- package/dist/components/slider/calc-position.js.map +1 -0
- package/dist/components/slider/get-offset-relative-to-thumb.js +4 -3
- package/dist/components/slider/get-offset-relative-to-thumb.js.map +1 -0
- package/dist/components/slider/index.js +2 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/slider/range-slider.d.ts +2 -2
- package/dist/components/slider/range-slider.js +2 -1
- package/dist/components/slider/range-slider.js.map +1 -0
- package/dist/components/slider/slider-thumb.d.ts +1 -1
- package/dist/components/slider/slider-thumb.js +3 -1
- package/dist/components/slider/slider-thumb.js.map +1 -0
- package/dist/components/slider/slider-tick-marks.d.ts +1 -1
- package/dist/components/slider/slider-tick-marks.js +2 -0
- package/dist/components/slider/slider-tick-marks.js.map +1 -0
- package/dist/components/slider/slider-track.d.ts +1 -1
- package/dist/components/slider/slider-track.js +7 -5
- package/dist/components/slider/slider-track.js.map +1 -0
- package/dist/components/slider/slider.css +88 -93
- package/dist/components/slider/slider.d.ts +2 -2
- package/dist/components/slider/slider.js +2 -1
- package/dist/components/slider/slider.js.map +1 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +6 -5
- package/dist/components/spinner/spinner.js +5 -4
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.css +34 -47
- package/dist/components/switch/switch.d.ts +5 -5
- package/dist/components/switch/switch.js +12 -6
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/table/index.js +1 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table-body.d.ts +5 -5
- package/dist/components/table/table-body.js +5 -4
- package/dist/components/table/table-body.js.map +1 -0
- package/dist/components/table/table-cell.d.ts +5 -5
- package/dist/components/table/table-cell.js +5 -4
- package/dist/components/table/table-cell.js.map +1 -0
- package/dist/components/table/table-container.d.ts +6 -5
- package/dist/components/table/table-container.js +5 -4
- package/dist/components/table/table-container.js.map +1 -0
- package/dist/components/table/table-head-cell.d.ts +6 -5
- package/dist/components/table/table-head-cell.js +14 -9
- package/dist/components/table/table-head-cell.js.map +1 -0
- package/dist/components/table/table-head.d.ts +6 -5
- package/dist/components/table/table-head.js +5 -4
- package/dist/components/table/table-head.js.map +1 -0
- package/dist/components/table/table-row.d.ts +6 -5
- package/dist/components/table/table-row.js +5 -4
- package/dist/components/table/table-row.js.map +1 -0
- package/dist/components/table/table.css +48 -54
- package/dist/components/table/table.d.ts +21 -6
- package/dist/components/table/table.js +18 -5
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tab-list.d.ts +4 -2
- package/dist/components/tabs/tab-list.js +20 -13
- package/dist/components/tabs/tab-list.js.map +1 -0
- package/dist/components/tabs/tab-panel.d.ts +7 -4
- package/dist/components/tabs/tab-panel.js +3 -0
- package/dist/components/tabs/tab-panel.js.map +1 -0
- package/dist/components/tabs/tab.d.ts +6 -3
- package/dist/components/tabs/tab.js +5 -1
- package/dist/components/tabs/tab.js.map +1 -0
- package/dist/components/tabs/tabs-context.d.ts +2 -2
- package/dist/components/tabs/tabs-context.js +2 -0
- package/dist/components/tabs/tabs-context.js.map +1 -0
- package/dist/components/tabs/tabs.css +15 -11
- package/dist/components/tabs/tabs.d.ts +7 -4
- package/dist/components/tabs/tabs.js +3 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tabs/types.js +1 -0
- package/dist/components/tabs/types.js.map +1 -0
- package/dist/components/tag/index.js +1 -0
- package/dist/components/tag/index.js.map +1 -0
- package/dist/components/tag/tag.css +222 -183
- package/dist/components/tag/tag.d.ts +8 -7
- package/dist/components/tag/tag.js +5 -4
- package/dist/components/tag/tag.js.map +1 -0
- package/dist/components/text-input/index.js +1 -0
- package/dist/components/text-input/index.js.map +1 -0
- package/dist/components/text-input/text-input.css +59 -53
- package/dist/components/text-input/text-input.d.ts +5 -5
- package/dist/components/text-input/text-input.js +5 -4
- package/dist/components/text-input/text-input.js.map +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.css +36 -31
- package/dist/components/textarea/textarea.d.ts +5 -4
- package/dist/components/textarea/textarea.js +5 -4
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/toast-button.d.ts +5 -5
- package/dist/components/toast/toast-button.js +5 -4
- package/dist/components/toast/toast-button.js.map +1 -0
- package/dist/components/toast/toast.css +35 -35
- package/dist/components/toast/toast.d.ts +5 -4
- package/dist/components/toast/toast.js +2 -0
- package/dist/components/toast/toast.js.map +1 -0
- package/dist/components/toaster/index.js +1 -0
- package/dist/components/toaster/index.js.map +1 -0
- package/dist/components/toaster/toaster.css +11 -11
- package/dist/components/toaster/toaster.d.ts +1 -1
- package/dist/components/toaster/toaster.js +28 -17
- package/dist/components/toaster/toaster.js.map +1 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.css +79 -12
- package/dist/components/tooltip/tooltip.d.ts +26 -24
- package/dist/components/tooltip/tooltip.js +82 -64
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -5
- package/dist/hooks/index.js +5 -5
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-close-on-click-outside.d.ts +10 -0
- package/dist/hooks/use-close-on-click-outside.js +57 -0
- package/dist/hooks/use-close-on-click-outside.js.map +1 -0
- package/dist/hooks/use-close-on-esc.d.ts +5 -0
- package/dist/hooks/use-close-on-esc.js +34 -0
- package/dist/hooks/use-close-on-esc.js.map +1 -0
- package/dist/hooks/use-focus-trap.d.ts +5 -14
- package/dist/hooks/use-focus-trap.js +27 -40
- package/dist/hooks/use-focus-trap.js.map +1 -0
- package/dist/hooks/use-lock-body-scroll.d.ts +3 -0
- package/dist/hooks/use-lock-body-scroll.js +41 -0
- package/dist/hooks/use-lock-body-scroll.js.map +1 -0
- package/dist/hooks/use-preserve-props-when-closed.js +1 -0
- package/dist/hooks/use-preserve-props-when-closed.js.map +1 -0
- package/dist/hooks/{use-callback-ref.d.ts → use-ref-callback.d.ts} +1 -1
- package/dist/hooks/use-ref-callback.js +9 -0
- package/dist/hooks/use-ref-callback.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -0
- package/dist/lib/calc-element-position.d.ts +10 -0
- package/dist/lib/calc-element-position.js +28 -0
- package/dist/lib/calc-element-position.js.map +1 -0
- package/dist/lib/calc-position.d.ts +27 -0
- package/dist/lib/calc-position.js +143 -0
- package/dist/lib/calc-position.js.map +1 -0
- package/dist/lib/get-element-bounding-rect.d.ts +9 -0
- package/dist/lib/get-element-bounding-rect.js +17 -0
- package/dist/lib/get-element-bounding-rect.js.map +1 -0
- package/dist/lib/helpers.d.ts +3 -6
- package/dist/lib/helpers.js +14 -20
- package/dist/lib/helpers.js.map +1 -0
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +2 -1
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/keyboard-key.d.ts +15 -0
- package/dist/lib/keyboard-key.js +16 -0
- package/dist/lib/keyboard-key.js.map +1 -0
- package/dist/lib/observe-element-change.d.ts +3 -0
- package/dist/lib/observe-element-change.js +14 -0
- package/dist/lib/observe-element-change.js.map +1 -0
- package/dist/lib/observe-element-move.d.ts +6 -0
- package/dist/lib/observe-element-move.js +43 -0
- package/dist/lib/observe-element-move.js.map +1 -0
- package/dist/lib/react-helpers.d.ts +1 -9
- package/dist/lib/react-helpers.js +2 -26
- package/dist/lib/react-helpers.js.map +1 -0
- package/dist/storybook-blocks/color-palette/color-palette.d.ts +11 -0
- package/dist/storybook-blocks/color-palette/color-palette.js +22 -0
- package/dist/storybook-blocks/color-palette/color-palette.js.map +1 -0
- package/dist/storybook-blocks/color-palette/index.d.ts +1 -0
- package/dist/storybook-blocks/color-palette/index.js +2 -0
- package/dist/storybook-blocks/color-palette/index.js.map +1 -0
- package/package.json +47 -49
- package/css/draft-components-utilities.css +0 -1710
- package/dist/components/hero-icons/24/outline/arrow-small-down-icon.d.ts +0 -3
- package/dist/components/hero-icons/24/outline/arrow-small-down-icon.js +0 -5
- package/dist/components/hero-icons/24/outline/arrow-small-up-icon.d.ts +0 -3
- package/dist/components/hero-icons/24/outline/arrow-small-up-icon.js +0 -5
- package/dist/components/popover/use-page-click.d.ts +0 -16
- package/dist/components/popover/use-page-click.js +0 -46
- package/dist/components/positioner/calc-position.d.ts +0 -32
- package/dist/components/positioner/calc-position.js +0 -112
- package/dist/components/positioner/index.d.ts +0 -1
- package/dist/components/positioner/index.js +0 -1
- package/dist/components/positioner/positioner.d.ts +0 -20
- package/dist/components/positioner/positioner.js +0 -59
- package/dist/components/positioner/types.d.ts +0 -14
- package/dist/components/positioner/types.js +0 -1
- package/dist/components/slide-over/index.d.ts +0 -4
- package/dist/components/slide-over/index.js +0 -3
- package/dist/components/slide-over/slide-over-body.css +0 -7
- package/dist/components/slide-over/slide-over-body.d.ts +0 -3
- package/dist/components/slide-over/slide-over-body.js +0 -5
- package/dist/components/slide-over/slide-over-context.d.ts +0 -14
- package/dist/components/slide-over/slide-over-context.js +0 -18
- package/dist/components/slide-over/slide-over-header.css +0 -29
- package/dist/components/slide-over/slide-over-header.d.ts +0 -11
- package/dist/components/slide-over/slide-over-header.js +0 -17
- package/dist/components/slide-over/slide-over.css +0 -85
- package/dist/components/slide-over/slide-over.d.ts +0 -25
- package/dist/components/slide-over/slide-over.js +0 -106
- package/dist/components/slide-over/types.d.ts +0 -1
- package/dist/components/slide-over/types.js +0 -1
- package/dist/hooks/use-callback-ref.js +0 -8
- package/dist/hooks/use-disable-body-scroll.d.ts +0 -5
- package/dist/hooks/use-disable-body-scroll.js +0 -32
- package/dist/hooks/use-esc-key-down.d.ts +0 -17
- package/dist/hooks/use-esc-key-down.js +0 -51
- package/dist/hooks/use-mount-transition.d.ts +0 -35
- package/dist/hooks/use-mount-transition.js +0 -39
- package/dist/hooks/use-prefers-reduced-motion.d.ts +0 -1
- package/dist/hooks/use-prefers-reduced-motion.js +0 -15
- package/dist/hooks/use-show-transition.d.ts +0 -16
- package/dist/hooks/use-show-transition.js +0 -69
- package/dist/lib/keyboard-keys.d.ts +0 -15
- package/dist/lib/keyboard-keys.js +0 -15
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
.dc-toasts-list {
|
|
2
|
-
--
|
|
3
|
-
--
|
|
2
|
+
--padding: 16px;
|
|
3
|
+
--animation: 200ms ease;
|
|
4
4
|
|
|
5
5
|
position: fixed;
|
|
6
|
-
right: var(--
|
|
7
|
-
left: var(--
|
|
8
|
-
z-index: var(--
|
|
6
|
+
right: var(--padding);
|
|
7
|
+
left: var(--padding);
|
|
8
|
+
z-index: var(--z-index);
|
|
9
9
|
box-sizing: border-box;
|
|
10
10
|
padding: 0;
|
|
11
11
|
margin: 0;
|
|
12
|
-
list-style: none;
|
|
13
|
-
color-scheme: light;
|
|
14
12
|
pointer-events: none;
|
|
13
|
+
color-scheme: light;
|
|
14
|
+
list-style: none;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.dc-toasts-list_top-left,
|
|
18
18
|
.dc-toasts-list_top-center,
|
|
19
19
|
.dc-toasts-list_top-right {
|
|
20
|
-
top: var(--
|
|
20
|
+
top: var(--padding);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
.dc-toasts-list_bottom-left,
|
|
24
24
|
.dc-toasts-list_bottom-center,
|
|
25
25
|
.dc-toasts-list_bottom-right {
|
|
26
|
-
bottom: var(--
|
|
26
|
+
bottom: var(--padding);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
.dc-toasts-list > * {
|
|
30
30
|
position: absolute;
|
|
31
31
|
right: 0;
|
|
32
32
|
left: 0;
|
|
33
|
-
transition: transform var(--
|
|
33
|
+
transition: transform var(--animation);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.dc-toasts-list_top-left > *,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
|
|
51
51
|
.dc-toasts-list__toast {
|
|
52
52
|
pointer-events: all;
|
|
53
|
-
animation: var(--
|
|
53
|
+
animation: var(--animation) forwards;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
@keyframes dc-toast-slide-top {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { assertIfNullable } from '../../lib/helpers.js';
|
|
4
3
|
import { classNames } from '../../lib/react-helpers.js';
|
|
5
4
|
import { Portal } from '../portal/index.js';
|
|
6
5
|
import { Toast, ToastButton } from '../toast/index.js';
|
|
@@ -13,11 +12,11 @@ export class Toaster {
|
|
|
13
12
|
timeoutMs;
|
|
14
13
|
onShow;
|
|
15
14
|
onHide;
|
|
16
|
-
constructor(params) {
|
|
15
|
+
constructor(params = {}) {
|
|
17
16
|
this._id = 0;
|
|
18
|
-
this.timeoutMs = params
|
|
19
|
-
this.onShow = params
|
|
20
|
-
this.onHide = params
|
|
17
|
+
this.timeoutMs = params.timeoutMs || 10_000;
|
|
18
|
+
this.onShow = params.onShowToast;
|
|
19
|
+
this.onHide = params.onHideToast;
|
|
21
20
|
}
|
|
22
21
|
_getNextId() {
|
|
23
22
|
this._id += 1;
|
|
@@ -32,7 +31,9 @@ export class Toaster {
|
|
|
32
31
|
},
|
|
33
32
|
});
|
|
34
33
|
const timeoutMs = toast.timeoutMs || this.timeoutMs;
|
|
35
|
-
this.onShow
|
|
34
|
+
if (typeof this.onShow === 'function') {
|
|
35
|
+
this.onShow(event.detail.toast);
|
|
36
|
+
}
|
|
36
37
|
window.dispatchEvent(event);
|
|
37
38
|
window.setTimeout(() => this.hideToast(id), timeoutMs);
|
|
38
39
|
return id;
|
|
@@ -44,11 +45,13 @@ export class Toaster {
|
|
|
44
45
|
toastId: id,
|
|
45
46
|
},
|
|
46
47
|
});
|
|
47
|
-
this.onHide
|
|
48
|
+
if (typeof this.onHide === 'function') {
|
|
49
|
+
this.onHide(id);
|
|
50
|
+
}
|
|
48
51
|
window.dispatchEvent(event);
|
|
49
52
|
}
|
|
50
|
-
render(options) {
|
|
51
|
-
return (_jsx(ToastsList, { toaster: this, toastGap: options
|
|
53
|
+
render(options = {}) {
|
|
54
|
+
return (_jsx(ToastsList, { toaster: this, toastGap: options.toastGap, toastPosition: options.toastPosition, toastCloseButtonAriaLabel: options.toastCloseButtonAriaLabel }));
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
function ToastsList({ toaster, toastGap = 12, toastPosition = 'top-center', toastCloseButtonAriaLabel = 'Close', }) {
|
|
@@ -80,7 +83,9 @@ function ToastsList({ toaster, toastGap = 12, toastPosition = 'top-center', toas
|
|
|
80
83
|
}, [toaster]);
|
|
81
84
|
useEffect(() => {
|
|
82
85
|
const listEl = ref.current;
|
|
83
|
-
|
|
86
|
+
if (!listEl) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
84
89
|
let offset = 0;
|
|
85
90
|
for (const item of listEl.children) {
|
|
86
91
|
if (item instanceof HTMLLIElement) {
|
|
@@ -102,12 +107,18 @@ function ToastsList({ toaster, toastGap = 12, toastPosition = 'top-center', toas
|
|
|
102
107
|
[`dc-toasts-list_${toastPosition}`]: toastPosition,
|
|
103
108
|
}), children: toasts.map((toast) => {
|
|
104
109
|
const hideToast = () => toaster.hideToast(toast.id);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
let actionButtons = null;
|
|
111
|
+
if (toast.actions) {
|
|
112
|
+
actionButtons = toast.actions.map((action, index) => (_jsx(ToastButton, { onClick: () => {
|
|
113
|
+
if (typeof action.onClick === 'function') {
|
|
114
|
+
action.onClick();
|
|
115
|
+
}
|
|
116
|
+
if (action.shouldHideAfterClick ?? true) {
|
|
117
|
+
hideToast();
|
|
118
|
+
}
|
|
119
|
+
}, children: action.content }, index)));
|
|
120
|
+
}
|
|
121
|
+
return (_jsx("li", { children: _jsx(Toast, { className: "dc-toasts-list__toast", role: "alert", icon: toast.icon, message: toast.message, actions: actionButtons, closeButtonAriaLabel: toastCloseButtonAriaLabel, onClickCloseButton: hideToast, children: toast.title }) }, toast.id));
|
|
112
122
|
}) }) }));
|
|
113
123
|
}
|
|
124
|
+
//# sourceMappingURL=toaster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.js","sourceRoot":"","sources":["../../../src/components/toaster/toaster.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -1,34 +1,101 @@
|
|
|
1
1
|
.dc-tooltip {
|
|
2
|
-
--
|
|
3
|
-
--
|
|
4
|
-
--
|
|
2
|
+
--color: var(--dc-white);
|
|
3
|
+
--background: var(--dc-neutral-800);
|
|
4
|
+
--enter-animation-duration: 50ms;
|
|
5
|
+
--leave-animation-duration: 50ms;
|
|
5
6
|
|
|
7
|
+
position: fixed;
|
|
6
8
|
top: 0;
|
|
7
9
|
left: 0;
|
|
8
10
|
z-index: var(--dc-overlay-z-index);
|
|
9
11
|
box-sizing: border-box;
|
|
12
|
+
display: block;
|
|
13
|
+
max-width: 288px;
|
|
10
14
|
padding: 4px 8px;
|
|
11
15
|
font: var(--dc-text-xs);
|
|
12
|
-
color: var(--
|
|
16
|
+
color: var(--color);
|
|
17
|
+
white-space: pre-wrap;
|
|
13
18
|
color-scheme: light;
|
|
14
|
-
background: var(--
|
|
19
|
+
background: var(--background);
|
|
15
20
|
border-radius: 6px;
|
|
16
21
|
box-shadow: var(--dc-shadow-md);
|
|
17
22
|
}
|
|
18
23
|
|
|
19
|
-
.dc-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
.dc-tooltip::before {
|
|
25
|
+
position: absolute;
|
|
26
|
+
display: block;
|
|
27
|
+
content: "";
|
|
22
28
|
}
|
|
23
29
|
|
|
24
|
-
.dc-
|
|
25
|
-
|
|
30
|
+
.dc-tooltip[data-placement="top"]::before {
|
|
31
|
+
top: 100%;
|
|
32
|
+
left: 0;
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: var(--anchor-offset);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.dc-tooltip[data-placement="right"]::before {
|
|
38
|
+
top: 0;
|
|
39
|
+
right: 100%;
|
|
40
|
+
width: var(--anchor-offset);
|
|
41
|
+
height: 100%;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.dc-tooltip[data-placement="bottom"]::before {
|
|
45
|
+
bottom: 100%;
|
|
46
|
+
left: 0;
|
|
47
|
+
width: 100%;
|
|
48
|
+
height: var(--anchor-offset);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.dc-tooltip[data-placement="left"]::before {
|
|
52
|
+
top: 0;
|
|
53
|
+
left: 100%;
|
|
54
|
+
width: var(--anchor-offset);
|
|
55
|
+
height: 100%;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes dc-tooltip-enter {
|
|
59
|
+
from {
|
|
60
|
+
opacity: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
to {
|
|
64
|
+
opacity: 1;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.dc-tooltip[data-animation="enter"] {
|
|
69
|
+
animation: dc-tooltip-enter var(--enter-animation-duration) ease
|
|
70
|
+
forwards;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@keyframes dc-tooltip-leave {
|
|
74
|
+
from {
|
|
75
|
+
opacity: 1;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
to {
|
|
79
|
+
opacity: 0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.dc-tooltip[data-animation="leave"] {
|
|
84
|
+
animation: dc-tooltip-leave var(--leave-animation-duration) ease
|
|
85
|
+
forwards;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@media (prefers-reduced-motion) {
|
|
89
|
+
.dc-tooltip[data-animation="enter"],
|
|
90
|
+
.dc-tooltip[data-animation="leave"] {
|
|
91
|
+
animation-duration: 0ms;
|
|
92
|
+
}
|
|
26
93
|
}
|
|
27
94
|
|
|
28
95
|
.dark .dc-tooltip,
|
|
29
96
|
.dark.dc-tooltip {
|
|
30
|
-
--
|
|
31
|
-
--
|
|
97
|
+
--color: var(--dc-neutral-800);
|
|
98
|
+
--background: var(--dc-neutral-100);
|
|
32
99
|
|
|
33
100
|
color-scheme: dark;
|
|
34
101
|
}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { type ComponentProps, type FocusEventHandler, type MouseEventHandler, type ReactNode, type RefCallback, type JSX } from 'react';
|
|
2
|
+
import { type ElementPlacement } from '../../lib/calc-element-position.js';
|
|
3
|
+
export type TooltipPlacement = ElementPlacement;
|
|
4
|
+
export type TooltipApi = {
|
|
5
|
+
show: () => void;
|
|
6
|
+
hide: () => void;
|
|
7
|
+
};
|
|
8
|
+
export type TooltipChildrenRenderer = (props: {
|
|
9
|
+
'ref': RefCallback<HTMLElement | SVGElement>;
|
|
10
|
+
'aria-describedby': string;
|
|
11
|
+
'onFocus': FocusEventHandler<HTMLElement | SVGElement>;
|
|
12
|
+
'onBlur': FocusEventHandler<HTMLElement | SVGElement>;
|
|
13
|
+
'onMouseEnter': MouseEventHandler<HTMLElement | SVGElement>;
|
|
14
|
+
'onMouseLeave': MouseEventHandler<HTMLElement | SVGElement>;
|
|
15
|
+
}, api: TooltipApi) => JSX.Element;
|
|
16
|
+
type TooltipHTMLProps = ComponentProps<'div'>;
|
|
17
|
+
type TooltipBaseProps = {
|
|
18
|
+
anchorPadding?: number;
|
|
19
|
+
viewportPadding?: number;
|
|
18
20
|
placement?: TooltipPlacement;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export declare function Tooltip({
|
|
21
|
+
isOpen?: boolean;
|
|
22
|
+
defaultIsVisible?: boolean;
|
|
23
|
+
title: ReactNode;
|
|
24
|
+
children: TooltipChildrenRenderer;
|
|
25
|
+
};
|
|
26
|
+
export type TooltipProps = TooltipBaseProps & Omit<TooltipHTMLProps, keyof TooltipBaseProps>;
|
|
27
|
+
export declare function Tooltip({ className, placement, anchorPadding, viewportPadding, defaultIsVisible, title, children, ...props }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
26
28
|
export {};
|
|
@@ -1,70 +1,88 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { classNames
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useId, useRef, useMemo, useLayoutEffect, } from 'react';
|
|
3
|
+
import { classNames } from '../../lib/react-helpers.js';
|
|
4
|
+
import { calcElementPosition } from '../../lib/calc-element-position.js';
|
|
5
|
+
import { observeElementMove } from '../../lib/observe-element-move.js';
|
|
6
|
+
import { Portal } from '../portal/portal.js';
|
|
7
|
+
import { useCloseOnEsc } from '../../hooks/use-close-on-esc.js';
|
|
8
|
+
import { observeElementChange } from '../../lib/observe-element-change.js';
|
|
9
|
+
export function Tooltip({ className, placement = 'top', anchorPadding = 6, viewportPadding = 4, defaultIsVisible = false, title, children, ...props }) {
|
|
10
|
+
const [isVisible, setIsVisible] = useState(defaultIsVisible);
|
|
11
|
+
const [isMounted, setIsMounted] = useState(isVisible);
|
|
12
|
+
const id = useId();
|
|
13
|
+
const tooltipId = props.id || id;
|
|
14
|
+
const tooltipRef = useRef(null);
|
|
15
|
+
const anchorRef = useRef(null);
|
|
16
|
+
const api = useMemo(() => ({
|
|
17
|
+
show: () => {
|
|
18
|
+
setIsVisible(true);
|
|
19
|
+
},
|
|
20
|
+
hide: () => {
|
|
21
|
+
setIsVisible(false);
|
|
22
|
+
},
|
|
21
23
|
}), []);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
tooltipId,
|
|
28
|
-
showTooltip,
|
|
29
|
-
hideTooltip,
|
|
30
|
-
isShown: isShown || isMounted,
|
|
31
|
-
});
|
|
24
|
+
useLayoutEffect(() => {
|
|
25
|
+
const tooltip = tooltipRef.current;
|
|
26
|
+
const anchor = anchorRef.current;
|
|
27
|
+
if (!tooltip || !anchor) {
|
|
28
|
+
return;
|
|
32
29
|
}
|
|
33
|
-
if (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
'onBlur': (event) => {
|
|
42
|
-
hideTooltip();
|
|
43
|
-
props.onBlur?.(event);
|
|
44
|
-
},
|
|
45
|
-
'onMouseEnter': (event) => {
|
|
46
|
-
showTooltip();
|
|
47
|
-
props.onMouseEnter?.(event);
|
|
48
|
-
},
|
|
49
|
-
'onMouseLeave': (event) => {
|
|
50
|
-
hideTooltip();
|
|
51
|
-
props.onMouseLeave?.(event);
|
|
52
|
-
},
|
|
53
|
-
'aria-describedby': props['aria-describedby'] || tooltipId,
|
|
30
|
+
if (isVisible) {
|
|
31
|
+
tooltip.dataset.animation = 'enter';
|
|
32
|
+
setIsMounted((isMounted) => {
|
|
33
|
+
if (isMounted) {
|
|
34
|
+
return isMounted;
|
|
35
|
+
}
|
|
36
|
+
tooltip.dataset.animation = 'enter';
|
|
37
|
+
return !isMounted;
|
|
54
38
|
});
|
|
39
|
+
const positionTooltip = () => {
|
|
40
|
+
tooltip.style.removeProperty('max-width');
|
|
41
|
+
tooltip.style.removeProperty('max-height');
|
|
42
|
+
const result = calcElementPosition(anchor, tooltip, {
|
|
43
|
+
placement,
|
|
44
|
+
anchorPadding,
|
|
45
|
+
viewportPadding,
|
|
46
|
+
});
|
|
47
|
+
tooltip.dataset.placement = result.placement;
|
|
48
|
+
tooltip.dataset.alignment = result.alignment;
|
|
49
|
+
tooltip.style.setProperty('--anchor-offset', `${anchorPadding}px`);
|
|
50
|
+
tooltip.style.setProperty('top', `${result.y}px`);
|
|
51
|
+
tooltip.style.setProperty('left', `${result.x}px`);
|
|
52
|
+
tooltip.style.setProperty('max-width', `${result.maxWidth}px`);
|
|
53
|
+
tooltip.style.setProperty('max-height', `${result.maxHeight}px`);
|
|
54
|
+
};
|
|
55
|
+
positionTooltip();
|
|
56
|
+
const stopObserveAnchorMove = observeElementMove(anchor, positionTooltip);
|
|
57
|
+
const stopObserveTooltipChange = observeElementChange(tooltip, positionTooltip);
|
|
58
|
+
return () => {
|
|
59
|
+
stopObserveAnchorMove();
|
|
60
|
+
stopObserveTooltipChange();
|
|
61
|
+
};
|
|
55
62
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
...style,
|
|
66
|
-
}, className: classNames('dc-tooltip', transitionClass, className), content: htmlContent, role: "tooltip", children: content }));
|
|
63
|
+
else {
|
|
64
|
+
const handleAnimationEnd = () => {
|
|
65
|
+
setIsMounted(false);
|
|
66
|
+
};
|
|
67
|
+
tooltip.dataset.animation = 'leave';
|
|
68
|
+
tooltip.addEventListener('animationend', handleAnimationEnd);
|
|
69
|
+
return () => {
|
|
70
|
+
tooltip.removeEventListener('animationend', handleAnimationEnd);
|
|
71
|
+
};
|
|
67
72
|
}
|
|
68
|
-
};
|
|
69
|
-
|
|
73
|
+
}, [isVisible, placement, anchorPadding, viewportPadding]);
|
|
74
|
+
useCloseOnEsc(api.hide, {
|
|
75
|
+
disabled: !isMounted,
|
|
76
|
+
});
|
|
77
|
+
return (_jsxs(_Fragment, { children: [(isVisible || isMounted) && (_jsx(Portal, { children: _jsx("div", { ...props, className: classNames('dc-tooltip', className), ref: tooltipRef, role: "tooltip", onMouseEnter: api.show, onMouseLeave: api.hide, children: title }) })), children({
|
|
78
|
+
'ref': (el) => {
|
|
79
|
+
anchorRef.current = el;
|
|
80
|
+
},
|
|
81
|
+
'aria-describedby': tooltipId,
|
|
82
|
+
'onFocus': api.show,
|
|
83
|
+
'onBlur': api.hide,
|
|
84
|
+
'onMouseEnter': api.show,
|
|
85
|
+
'onMouseLeave': api.hide,
|
|
86
|
+
}, api)] }));
|
|
70
87
|
}
|
|
88
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.tsx"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from './use-
|
|
2
|
-
export * from './use-
|
|
3
|
-
export * from './use-esc-key-down.js';
|
|
1
|
+
export * from './use-close-on-click-outside.js';
|
|
2
|
+
export * from './use-close-on-esc.js';
|
|
4
3
|
export * from './use-focus-trap.js';
|
|
5
|
-
export * from './use-
|
|
6
|
-
export * from './use-show-transition.js';
|
|
4
|
+
export * from './use-lock-body-scroll.js';
|
|
7
5
|
export * from './use-preserve-props-when-closed.js';
|
|
6
|
+
export * from './use-ref-callback.js';
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './use-
|
|
2
|
-
export * from './use-
|
|
3
|
-
export * from './use-esc-key-down.js';
|
|
1
|
+
export * from './use-close-on-click-outside.js';
|
|
2
|
+
export * from './use-close-on-esc.js';
|
|
4
3
|
export * from './use-focus-trap.js';
|
|
5
|
-
export * from './use-
|
|
6
|
-
export * from './use-show-transition.js';
|
|
4
|
+
export * from './use-lock-body-scroll.js';
|
|
7
5
|
export * from './use-preserve-props-when-closed.js';
|
|
6
|
+
export * from './use-ref-callback.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
type CloseHandler = () => void;
|
|
3
|
+
type ContainerRef = RefObject<HTMLElement | null>;
|
|
4
|
+
type ShouldIgnoreClickPredicate = (node: Node) => boolean;
|
|
5
|
+
export declare function useCloseOnClickOutside(handler: CloseHandler, opts: {
|
|
6
|
+
ref: ContainerRef;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
shouldIgnoreClick?: ShouldIgnoreClickPredicate;
|
|
9
|
+
}): void;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useRefCallback } from './use-ref-callback.js';
|
|
3
|
+
const handlerStack = [];
|
|
4
|
+
const callbackParams = new Map();
|
|
5
|
+
export function useCloseOnClickOutside(handler, opts) {
|
|
6
|
+
const ref = opts.ref;
|
|
7
|
+
const disabled = opts.disabled || false;
|
|
8
|
+
const onClose = useRefCallback(handler);
|
|
9
|
+
const shouldIgnoreClick = useRefCallback((node) => {
|
|
10
|
+
if (typeof opts.shouldIgnoreClick === 'function') {
|
|
11
|
+
return opts.shouldIgnoreClick(node);
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
});
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (disabled) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const handleClick = (event) => {
|
|
20
|
+
const callback = handlerStack.at(-1);
|
|
21
|
+
if (!callback) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const params = callbackParams.get(callback);
|
|
25
|
+
if (!params) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const target = event.target;
|
|
29
|
+
const container = params.ref.current;
|
|
30
|
+
const shouldIgnoreClick = params.shouldIgnoreClick;
|
|
31
|
+
if (callback
|
|
32
|
+
&& target instanceof Node
|
|
33
|
+
&& container instanceof Node
|
|
34
|
+
&& !container.contains(target)
|
|
35
|
+
&& !shouldIgnoreClick(target)) {
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
callback();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
handlerStack.push(onClose);
|
|
41
|
+
callbackParams.set(onClose, { ref, shouldIgnoreClick });
|
|
42
|
+
if (handlerStack.length === 1) {
|
|
43
|
+
document.addEventListener('click', handleClick, { capture: true });
|
|
44
|
+
}
|
|
45
|
+
return () => {
|
|
46
|
+
const index = handlerStack.indexOf(onClose);
|
|
47
|
+
if (index >= 0) {
|
|
48
|
+
handlerStack.splice(index, 1);
|
|
49
|
+
callbackParams.delete(onClose);
|
|
50
|
+
}
|
|
51
|
+
if (handlerStack.length === 0) {
|
|
52
|
+
document.removeEventListener('click', handleClick, { capture: true });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}, [ref, disabled, onClose, shouldIgnoreClick]);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=use-close-on-click-outside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-close-on-click-outside.js","sourceRoot":"","sources":["../../src/hooks/use-close-on-click-outside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAavD,MAAM,YAAY,GAAmB,EAAE,CAAC;AACxC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEvD,MAAM,UAAU,sBAAsB,CAAC,OAAqB,EAAE,IAI7D;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,iBAAiB,GAAG,cAAc,CAA6B,CAAC,IAAI,EAAE,EAAE;QAC5E,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YACrC,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACnD,IACE,QAAQ;mBACL,MAAM,YAAY,IAAI;mBACtB,SAAS,YAAY,IAAI;mBACzB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;mBAC3B,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC7B,CAAC;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QAEF,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACxD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAClD,CAAC"}
|