@witchcraft/ui 0.3.26 → 0.4.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -61
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/assets/animations.css +1 -1
- package/dist/runtime/assets/locales/en.json +2 -0
- package/dist/runtime/build/WitchcraftUiResolver.js +1 -1
- package/dist/runtime/components/TestControls/TestControls.vue +3 -3
- package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
- package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
- package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
- package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
- package/dist/runtime/components/WCheckbox/WCheckbox.vue +109 -0
- package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
- package/dist/runtime/components/WColorInput/WColorInput.d.vue.ts +45 -0
- package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
- package/dist/runtime/components/WColorInput/WColorInput.vue.d.ts +45 -0
- package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
- package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
- package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
- package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +7 -6
- package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +40 -29
- package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +7 -6
- package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +109 -0
- package/dist/runtime/components/WCombobox/WCombobox.vue +402 -0
- package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +109 -0
- package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
- package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
- package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +8 -13
- package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
- package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +8 -13
- package/dist/runtime/components/WDatePicker/WDatePicker.d.vue.ts +40 -0
- package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
- package/dist/runtime/components/WDatePicker/WDatePicker.vue.d.ts +40 -0
- package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -21
- package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -21
- package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.d.vue.ts → WDatePicker/WTimeZonePicker.d.vue.ts} +1 -11
- package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
- package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue.d.ts → WDatePicker/WTimeZonePicker.vue.d.ts} +1 -11
- package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -12
- package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +0 -3
- package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +0 -3
- package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
- package/dist/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +71 -57
- package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
- package/dist/runtime/components/{Icon/Icon.vue.d.ts → WIcon/WIcon.d.vue.ts} +2 -6
- package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
- package/dist/runtime/components/{Icon/Icon.d.vue.ts → WIcon/WIcon.vue.d.ts} +2 -6
- package/dist/runtime/components/{LibMultiValues/LibMultiValues.d.vue.ts → WMultiValues/WMultiValues.d.vue.ts} +8 -14
- package/dist/runtime/components/WMultiValues/WMultiValues.vue +149 -0
- package/dist/runtime/components/{LibMultiValues/LibMultiValues.vue.d.ts → WMultiValues/WMultiValues.vue.d.ts} +8 -14
- package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
- package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +32 -47
- package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
- package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
- package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +35 -17
- package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
- package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
- package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
- package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
- package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
- package/dist/runtime/components/WPagination/WPagination.vue +182 -0
- package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
- package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
- package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
- package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
- package/dist/runtime/components/WPopover/WPopover.d.vue.ts +43 -0
- package/dist/runtime/components/WPopover/WPopover.vue +138 -0
- package/dist/runtime/components/WPopover/WPopover.vue.d.ts +43 -0
- package/dist/runtime/components/WPopup/WPopup.d.vue.ts +41 -0
- package/dist/runtime/components/WPopup/WPopup.vue +74 -0
- package/dist/runtime/components/WPopup/WPopup.vue.d.ts +41 -0
- package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +14 -18
- package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
- package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +14 -18
- package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +14 -29
- package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
- package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +14 -29
- package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +6 -5
- package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
- package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +6 -5
- package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.d.vue.ts → WSimpleInput/WSimpleInput.d.vue.ts} +9 -16
- package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +12 -23
- package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue.d.ts → WSimpleInput/WSimpleInput.vue.d.ts} +9 -16
- package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
- package/dist/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +13 -14
- package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
- package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
- package/dist/runtime/components/WTooltip/WTooltip.vue +111 -0
- package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
- package/dist/runtime/components/index.d.ts +20 -20
- package/dist/runtime/components/index.js +20 -20
- package/dist/runtime/composables/index.d.ts +4 -4
- package/dist/runtime/composables/index.js +4 -4
- package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
- package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
- package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
- package/dist/runtime/composables/useDisplayForReka.js +16 -0
- package/dist/runtime/composables/useFallbackId.d.ts +3 -0
- package/dist/runtime/composables/useFallbackId.js +5 -0
- package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
- package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
- package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
- package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
- package/dist/runtime/composables/useSetupDarkMode.js +90 -4
- package/dist/runtime/helpers/NotificationHandler.d.ts +2 -2
- package/dist/runtime/injectionKeys.d.ts +1 -5
- package/dist/runtime/injectionKeys.js +0 -2
- package/dist/runtime/types/index.d.ts +85 -27
- package/dist/runtime/types/index.js +1 -0
- package/package.json +1 -1
- package/src/module.ts +1 -1
- package/src/runtime/assets/animations.css +3 -3
- package/src/runtime/assets/locales/en.json +2 -0
- package/src/runtime/build/WitchcraftUiResolver.ts +1 -1
- package/src/runtime/components/TestControls/TestControls.vue +3 -3
- package/src/runtime/components/WButton/WButton.stories.ts +112 -0
- package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
- package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
- package/src/runtime/components/WCheckbox/WCheckbox.vue +123 -0
- package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
- package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
- package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
- package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
- package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +43 -32
- package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
- package/src/runtime/components/WCombobox/WCombobox.vue +446 -0
- package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
- package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
- package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
- package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
- package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
- package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -22
- package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -22
- package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
- package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
- package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +8 -11
- package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
- package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +7 -7
- package/src/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +95 -98
- package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
- package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
- package/src/runtime/components/WMultiValues/WMultiValues.vue +161 -0
- package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +9 -9
- package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +43 -66
- package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
- package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +51 -29
- package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
- package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
- package/src/runtime/components/WPagination/WPagination.vue +207 -0
- package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
- package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
- package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
- package/src/runtime/components/WPopover/WPopover.vue +161 -0
- package/src/runtime/components/WPopup/WPopup.stories.ts +60 -0
- package/src/runtime/components/WPopup/WPopup.vue +93 -0
- package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
- package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
- package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
- package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
- package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
- package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
- package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +27 -44
- package/src/runtime/components/{LibTable/LibTable.stories.ts → WTable/WTable.stories.ts} +60 -52
- package/src/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +85 -87
- package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
- package/src/runtime/components/WTooltip/WTooltip.vue +126 -0
- package/src/runtime/components/index.ts +20 -20
- package/src/runtime/composables/index.ts +4 -4
- package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
- package/src/runtime/composables/useDisplayForReka.ts +37 -0
- package/src/runtime/composables/useFallbackId.ts +6 -0
- package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
- package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
- package/src/runtime/composables/useSetupDarkMode.ts +122 -4
- package/src/runtime/helpers/NotificationHandler.ts +2 -2
- package/src/runtime/injectionKeys.ts +1 -7
- package/src/runtime/types/index.ts +105 -32
- package/types/components.d.ts +13 -15
- package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -6
- package/dist/runtime/components/Aria/Aria.vue +0 -16
- package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -6
- package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -37
- package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -37
- package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -41
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -41
- package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +0 -64
- package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
- package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +0 -64
- package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +0 -191
- package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +0 -191
- package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -46
- package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -46
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -256
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -256
- package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -27
- package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
- package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -27
- package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
- package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -45
- package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -45
- package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -15
- package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -15
- package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -105
- package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
- package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -105
- package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -15
- package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -15
- package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -52
- package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
- package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -52
- package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
- package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -99
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -99
- package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -125
- package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -125
- package/dist/runtime/components/Template/NAME.d.vue.ts +0 -18
- package/dist/runtime/components/Template/NAME.vue +0 -27
- package/dist/runtime/components/Template/NAME.vue.d.ts +0 -18
- package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
- package/dist/runtime/components/Template/TemplateStory.js +0 -22
- package/dist/runtime/components/shared/props.d.ts +0 -171
- package/dist/runtime/components/shared/props.js +0 -2
- package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
- package/dist/runtime/composables/useAriaLabel.js +0 -15
- package/dist/runtime/composables/useDarkMode.d.ts +0 -77
- package/dist/runtime/composables/useDarkMode.js +0 -89
- package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
- package/dist/runtime/composables/useDivideAttrs.js +0 -27
- package/dist/runtime/composables/useSuggestions.d.ts +0 -40
- package/dist/runtime/composables/useSuggestions.js +0 -263
- package/src/runtime/components/Aria/Aria.vue +0 -26
- package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
- package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -131
- package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -419
- package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
- package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
- package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
- package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -131
- package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
- package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
- package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
- package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
- package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
- package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
- package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
- package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
- package/src/runtime/components/Template/NAME.vue +0 -49
- package/src/runtime/components/Template/TemplateStory.ts +0 -37
- package/src/runtime/components/shared/props.ts +0 -199
- package/src/runtime/composables/useAriaLabel.ts +0 -23
- package/src/runtime/composables/useDarkMode.ts +0 -199
- package/src/runtime/composables/useDivideAttrs.ts +0 -53
- package/src/runtime/composables/useSuggestions.ts +0 -339
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.d.vue.ts → WDatePicker/WRangeDatePicker.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue.d.ts → WDatePicker/WRangeDatePicker.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
- /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
- /package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
- /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.d.vue.ts → WNotifications/WNotificationTestMessageComponent.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
- /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue.d.ts → WNotifications/WNotificationTestMessageComponent.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.d.ts +0 -0
- /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.js +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
- /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
- /package/src/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
- /package/src/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.ts +0 -0
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<Transition>
|
|
3
|
-
<div
|
|
4
|
-
v-if="!hide"
|
|
5
|
-
:id="id ?? fallbackId"
|
|
6
|
-
:class="twMerge(`
|
|
7
|
-
progress-bar
|
|
8
|
-
w-[200px]
|
|
9
|
-
whitespace-nowrap
|
|
10
|
-
overflow-x-scroll
|
|
11
|
-
scrollbar-hidden
|
|
12
|
-
rounded-sm
|
|
13
|
-
flex
|
|
14
|
-
text-fg
|
|
15
|
-
relative
|
|
16
|
-
before:content-['']
|
|
17
|
-
text-sm
|
|
18
|
-
min-w-[50px]
|
|
19
|
-
after:shadow-inner
|
|
20
|
-
after:shadow-black/50
|
|
21
|
-
after:content-['']
|
|
22
|
-
after:absolute
|
|
23
|
-
after:inset-0
|
|
24
|
-
after:pointer-events-none
|
|
25
|
-
after:z-2
|
|
26
|
-
after:transition-all
|
|
27
|
-
before:shadow-inner
|
|
28
|
-
before:shadow-black/50
|
|
29
|
-
before:rounded-sm
|
|
30
|
-
before:bg-bars-gradient
|
|
31
|
-
before:animate-slideBgInf
|
|
32
|
-
before:[background-size:15px_15px]
|
|
33
|
-
before:absolute
|
|
34
|
-
before:w-[var(--progress)]
|
|
35
|
-
before:top-0 before:bottom-0 before:left-0
|
|
36
|
-
before:transition-all
|
|
37
|
-
before:z-1
|
|
38
|
-
before:duration-500
|
|
39
|
-
`, psuedoHide && `
|
|
40
|
-
after:opacity-0
|
|
41
|
-
before:opacity-0
|
|
42
|
-
`, $attrs.class)"
|
|
43
|
-
:data-value="progress"
|
|
44
|
-
:title="label"
|
|
45
|
-
role="progressbar"
|
|
46
|
-
:aria-valuenow="clampVal(progress, clamp[0] ?? 0, clamp[1] ?? 100)"
|
|
47
|
-
:aria-valuemin="clamp[0] ?? 0"
|
|
48
|
-
:aria-valuemax="clamp[1] ?? 100"
|
|
49
|
-
v-bind="{ ...$attrs, class: void 0 }"
|
|
50
|
-
:style="`--progress: ${clampVal(progress, clamp[0] ?? 0, clamp[1] ?? 100)}%;`"
|
|
51
|
-
>
|
|
52
|
-
<div class="procgress-bar--label-wrapper relative flex-1">
|
|
53
|
-
<span class="before:content-vertical-holder"/>
|
|
54
|
-
<Transition>
|
|
55
|
-
<slot>
|
|
56
|
-
<label
|
|
57
|
-
v-if="!psuedoHide"
|
|
58
|
-
:for="id"
|
|
59
|
-
class="
|
|
60
|
-
text-bg
|
|
61
|
-
absolute inset-0 flex
|
|
62
|
-
justify-center
|
|
63
|
-
"
|
|
64
|
-
>
|
|
65
|
-
<div class="truncate">
|
|
66
|
-
{{ label ?? "" }}
|
|
67
|
-
</div>
|
|
68
|
-
</label>
|
|
69
|
-
</slot>
|
|
70
|
-
</Transition>
|
|
71
|
-
|
|
72
|
-
<Transition>
|
|
73
|
-
<slot>
|
|
74
|
-
<label
|
|
75
|
-
v-if="!psuedoHide"
|
|
76
|
-
class="
|
|
77
|
-
progress-bar--label
|
|
78
|
-
contrast-label
|
|
79
|
-
pointer-events-none
|
|
80
|
-
absolute
|
|
81
|
-
inset-0
|
|
82
|
-
flex justify-center transition-all
|
|
83
|
-
duration-500
|
|
84
|
-
[clip-path:inset(0_0_0_var(--progress))]
|
|
85
|
-
dark:hidden
|
|
86
|
-
"
|
|
87
|
-
>
|
|
88
|
-
<div class="truncate">
|
|
89
|
-
{{ label ?? "" }}
|
|
90
|
-
</div>
|
|
91
|
-
</label>
|
|
92
|
-
</slot>
|
|
93
|
-
</Transition>
|
|
94
|
-
</div>
|
|
95
|
-
</div>
|
|
96
|
-
</Transition>
|
|
97
|
-
</template>
|
|
98
|
-
|
|
99
|
-
<script setup>
|
|
100
|
-
import { ref, watch } from "vue";
|
|
101
|
-
import { twMerge } from "../../utils/twMerge.js";
|
|
102
|
-
import { getFallbackId } from "../shared/props.js";
|
|
103
|
-
const clampVal = (n, min, max) => Math.min(Math.max(n, min), max);
|
|
104
|
-
defineOptions({
|
|
105
|
-
name: "LibProgressBar",
|
|
106
|
-
inheritAttrs: false
|
|
107
|
-
});
|
|
108
|
-
const fallbackId = getFallbackId();
|
|
109
|
-
const props = defineProps({
|
|
110
|
-
id: { type: String, required: false },
|
|
111
|
-
disabled: { type: Boolean, required: false, default: false },
|
|
112
|
-
readonly: { type: Boolean, required: false, default: false },
|
|
113
|
-
border: { type: Boolean, required: false, default: true },
|
|
114
|
-
unstyle: { type: Boolean, required: false, default: false },
|
|
115
|
-
label: { type: String, required: false },
|
|
116
|
-
progress: { type: Number, required: true },
|
|
117
|
-
autohideOnComplete: { type: Number, required: false, default: -1 },
|
|
118
|
-
keepSpaceWhenHidden: { type: Boolean, required: false, default: false },
|
|
119
|
-
clamp: { type: Array, required: false, default: () => [0, 100] }
|
|
120
|
-
});
|
|
121
|
-
const hide = ref(false);
|
|
122
|
-
const psuedoHide = ref(false);
|
|
123
|
-
let timeout;
|
|
124
|
-
let type;
|
|
125
|
-
if (props.autohideOnComplete > -1 && (props.progress >= 100 || props.progress < 0)) {
|
|
126
|
-
if (props.keepSpaceWhenHidden) {
|
|
127
|
-
hide.value = false;
|
|
128
|
-
psuedoHide.value = true;
|
|
129
|
-
} else {
|
|
130
|
-
hide.value = true;
|
|
131
|
-
psuedoHide.value = false;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
watch([
|
|
135
|
-
() => props.progress,
|
|
136
|
-
() => props.keepSpaceWhenHidden,
|
|
137
|
-
() => props.autohideOnComplete
|
|
138
|
-
], () => {
|
|
139
|
-
if (props.autohideOnComplete > -1 && (props.progress >= 100 || props.progress < 0)) {
|
|
140
|
-
if (props.keepSpaceWhenHidden) {
|
|
141
|
-
if (type === 1) return;
|
|
142
|
-
clearTimeout(timeout);
|
|
143
|
-
type = 1;
|
|
144
|
-
timeout = setTimeout(() => {
|
|
145
|
-
type = 0;
|
|
146
|
-
hide.value = false;
|
|
147
|
-
psuedoHide.value = true;
|
|
148
|
-
}, props.autohideOnComplete);
|
|
149
|
-
} else {
|
|
150
|
-
if (type === 2) return;
|
|
151
|
-
clearTimeout(timeout);
|
|
152
|
-
type = 2;
|
|
153
|
-
timeout = setTimeout(() => {
|
|
154
|
-
type = 0;
|
|
155
|
-
hide.value = true;
|
|
156
|
-
psuedoHide.value = false;
|
|
157
|
-
}, props.autohideOnComplete);
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
clearTimeout(timeout);
|
|
161
|
-
hide.value = false;
|
|
162
|
-
psuedoHide.value = false;
|
|
163
|
-
}
|
|
164
|
-
}, { immediate: false });
|
|
165
|
-
</script>
|
|
166
|
-
|
|
167
|
-
<script>
|
|
168
|
-
|
|
169
|
-
</script>
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { type HTMLAttributes } from "vue";
|
|
2
|
-
import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type SuggestionsEmits, type SuggestionsProps, type WrapperProps } from "../shared/props.js";
|
|
3
|
-
type WrapperTypes = Partial<WrapperProps<"item", HTMLAttributes, {
|
|
4
|
-
/** Tailwind classes. */
|
|
5
|
-
class?: string;
|
|
6
|
-
}>>;
|
|
7
|
-
type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
|
|
8
|
-
/** Return true to prevent the keydown event from being handled. */
|
|
9
|
-
filterKeydown?: (e: KeyboardEvent) => boolean;
|
|
10
|
-
/** Return true to prevent the blur event from being handled. */
|
|
11
|
-
filterBlur?: (e: MouseEvent) => boolean;
|
|
12
|
-
/** Return true to prevent the focus event from being handled. */
|
|
13
|
-
filterFocus?: (e: FocusEvent) => boolean;
|
|
14
|
-
};
|
|
15
|
-
interface Props extends
|
|
16
|
-
/** @vue-ignore */
|
|
17
|
-
Partial<Omit<HTMLAttributes, "class" | "onSubmit"> & {
|
|
18
|
-
/** Tailwind classes. */
|
|
19
|
-
class?: string;
|
|
20
|
-
}>,
|
|
21
|
-
/** @vue-ignore */
|
|
22
|
-
WrapperTypes, RealProps {
|
|
23
|
-
}
|
|
24
|
-
declare const _default: typeof __VLS_export;
|
|
25
|
-
export default _default;
|
|
26
|
-
declare const __VLS_export: <TSuggestion extends string | object, TValue extends string | string[]>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
27
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<(Props & SuggestionsProps<TSuggestion> & {
|
|
28
|
-
/**
|
|
29
|
-
* The final valid value. This is *not* the value you want to share with the input. If `restrictToSuggestions` is true this will not update on any invalid values that `inputValue` might be set to.
|
|
30
|
-
*
|
|
31
|
-
* If suggestions are objects, this will be the string returned by the `suggestionLabel` prop.
|
|
32
|
-
*/
|
|
33
|
-
modelValue: TValue;
|
|
34
|
-
/**
|
|
35
|
-
* If the element is bound to an input, this is the value that the input should be sharing.
|
|
36
|
-
*
|
|
37
|
-
* It allows the component to read even invalid output, and also to reset that invalid output when either modelValue is set to a new value, or when the component is closed via cancel.
|
|
38
|
-
*/
|
|
39
|
-
inputValue?: string;
|
|
40
|
-
open?: boolean;
|
|
41
|
-
}) & {
|
|
42
|
-
onSubmit?: ((val: string, suggestion?: any, wasRemoved?: boolean | undefined) => any) | undefined;
|
|
43
|
-
"onUpdate:isOpen"?: ((val: boolean) => any) | undefined;
|
|
44
|
-
"onUpdate:activeSuggestion"?: ((val: number) => any) | undefined;
|
|
45
|
-
"onUpdate:modelValue"?: ((value: TValue) => any) | undefined;
|
|
46
|
-
"onUpdate:inputValue"?: ((value: string) => any) | undefined;
|
|
47
|
-
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
48
|
-
}> & (typeof globalThis extends {
|
|
49
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
50
|
-
} ? P : {});
|
|
51
|
-
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
52
|
-
suggestions: {
|
|
53
|
-
list: any[] | undefined;
|
|
54
|
-
filtered: any[] | undefined;
|
|
55
|
-
active: number;
|
|
56
|
-
available: boolean;
|
|
57
|
-
moreThanOneAvailable: boolean;
|
|
58
|
-
hasExactlyMatching: TSuggestion | undefined;
|
|
59
|
-
hasValidSuggestion: boolean;
|
|
60
|
-
openable: boolean | undefined;
|
|
61
|
-
getLabel: (item: any) => string;
|
|
62
|
-
$open: boolean;
|
|
63
|
-
open: () => void;
|
|
64
|
-
close: () => void;
|
|
65
|
-
enterSelected: (doClose?: boolean) => void;
|
|
66
|
-
enterIndex: (num: number, doClose?: boolean) => void;
|
|
67
|
-
toggle: () => void;
|
|
68
|
-
cancel: () => void;
|
|
69
|
-
select: (num: number) => void;
|
|
70
|
-
prev: () => void;
|
|
71
|
-
next: () => void;
|
|
72
|
-
first: () => void;
|
|
73
|
-
last: () => void;
|
|
74
|
-
};
|
|
75
|
-
el: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
76
|
-
/** A simple keydown handler that can be passed to an input to control the component while still focused inside it. */
|
|
77
|
-
inputKeydownHandler: (e: KeyboardEvent) => void;
|
|
78
|
-
/** A blur handler for the input that controls the component. This also takes care of making clicking on a suggestion work, since otherwise if canOpen is set to false in the blur handler, no click event will fire. */
|
|
79
|
-
inputBlurHandler: (e: MouseEvent) => void;
|
|
80
|
-
/** A focus handler for the input that controls the component. */
|
|
81
|
-
inputFocusHandler: (e: FocusEvent) => void;
|
|
82
|
-
}>) => void;
|
|
83
|
-
attrs: any;
|
|
84
|
-
slots: {
|
|
85
|
-
item?: (props: {
|
|
86
|
-
item: any;
|
|
87
|
-
index: number;
|
|
88
|
-
isSelected: boolean;
|
|
89
|
-
}) => any;
|
|
90
|
-
};
|
|
91
|
-
emit: SuggestionsEmits<false> & (((event: "update:modelValue", value: TValue) => void) & ((event: "update:inputValue", value: string) => void) & ((event: "update:open", value: boolean) => void));
|
|
92
|
-
}>) => import("vue").VNode & {
|
|
93
|
-
__ctx?: Awaited<typeof __VLS_setup>;
|
|
94
|
-
};
|
|
95
|
-
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
96
|
-
[K in keyof T]: T[K];
|
|
97
|
-
} : {
|
|
98
|
-
[K in keyof T as K]: T[K];
|
|
99
|
-
}) & {};
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
v-if="$open"
|
|
4
|
-
:id="`suggestions-${id ?? fallbackId}`"
|
|
5
|
-
:class="twMerge(
|
|
6
|
-
`
|
|
7
|
-
suggestions
|
|
8
|
-
bg-bg
|
|
9
|
-
dark:bg-fg
|
|
10
|
-
dark:text-bg
|
|
11
|
-
`,
|
|
12
|
-
$.attrs?.class
|
|
13
|
-
)"
|
|
14
|
-
:data-open="$open"
|
|
15
|
-
role="listbox"
|
|
16
|
-
ref="el"
|
|
17
|
-
v-bind="{ ...$.attrs, class: void 0 }"
|
|
18
|
-
>
|
|
19
|
-
<!-- Click event is just in case, it should not really be triggered. We can do click selections via the blur handler. -->
|
|
20
|
-
<div
|
|
21
|
-
:id="`suggestion-${id ?? fallbackId}-${index}`"
|
|
22
|
-
role="option"
|
|
23
|
-
:class="twMerge(
|
|
24
|
-
`
|
|
25
|
-
suggestions--item
|
|
26
|
-
user-select-none
|
|
27
|
-
cursor-pointer
|
|
28
|
-
px-2
|
|
29
|
-
`,
|
|
30
|
-
index === suggestions.active && `
|
|
31
|
-
bg-accent-200
|
|
32
|
-
dark:bg-accent-800/70
|
|
33
|
-
`,
|
|
34
|
-
$.itemAttrs?.class
|
|
35
|
-
)"
|
|
36
|
-
v-bind="{ ...$.itemAttrs, class: void 0 }"
|
|
37
|
-
:aria-selected="index === suggestions.active ? true : false"
|
|
38
|
-
:aria-label="suggestions.getLabel(item)"
|
|
39
|
-
v-for="(item, index) in suggestions.filtered"
|
|
40
|
-
:key="item"
|
|
41
|
-
@mouseover="suggestions.active = index"
|
|
42
|
-
@mousedown.prevent
|
|
43
|
-
@mouseup="suggestions.enterIndex(index, !Array.isArray($modelValue))"
|
|
44
|
-
>
|
|
45
|
-
<slot
|
|
46
|
-
name="item"
|
|
47
|
-
:item="item"
|
|
48
|
-
:index="index"
|
|
49
|
-
:is-selected="Array.isArray($modelValue) ? $modelValue.includes(item) : $modelValue === item"
|
|
50
|
-
>
|
|
51
|
-
<div class="flex gap-2 nowrap">
|
|
52
|
-
<lib-checkbox
|
|
53
|
-
v-if="Array.isArray($modelValue) && showSelectedValues"
|
|
54
|
-
:model-value="$modelValue.includes(item)"
|
|
55
|
-
@mousedown.prevent
|
|
56
|
-
/>
|
|
57
|
-
<div> {{ item }} </div>
|
|
58
|
-
</div>
|
|
59
|
-
</slot>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
|
|
64
|
-
<script setup>
|
|
65
|
-
import { reactive, ref } from "vue";
|
|
66
|
-
import { useDivideAttrs } from "../../composables/useDivideAttrs.js";
|
|
67
|
-
import { useSuggestions } from "../../composables/useSuggestions.js";
|
|
68
|
-
import { hasModifiers } from "../../helpers/hasModifiers.js";
|
|
69
|
-
import { twMerge } from "../../utils/twMerge.js";
|
|
70
|
-
import LibCheckbox from "../LibCheckbox/LibCheckbox.vue";
|
|
71
|
-
import { getFallbackId } from "../shared/props.js";
|
|
72
|
-
defineOptions({
|
|
73
|
-
name: "LibSuggestions",
|
|
74
|
-
inheritAttrs: false
|
|
75
|
-
});
|
|
76
|
-
const $ = useDivideAttrs(["item"]);
|
|
77
|
-
const emits = defineEmits(["submit", "update:isOpen", "update:activeSuggestion"]);
|
|
78
|
-
const fallbackId = getFallbackId();
|
|
79
|
-
const props = defineProps({
|
|
80
|
-
id: { type: String, required: false },
|
|
81
|
-
label: { type: String, required: false },
|
|
82
|
-
disabled: { type: Boolean, required: false, default: false },
|
|
83
|
-
readonly: { type: Boolean, required: false, default: false },
|
|
84
|
-
border: { type: Boolean, required: false, default: true },
|
|
85
|
-
unstyle: { type: Boolean, required: false, default: false },
|
|
86
|
-
filterKeydown: { type: Function, required: false, default: void 0 },
|
|
87
|
-
filterBlur: { type: Function, required: false },
|
|
88
|
-
filterFocus: { type: Function, required: false },
|
|
89
|
-
suggestions: { type: Array, required: false },
|
|
90
|
-
suggestionLabel: { type: Function, required: false },
|
|
91
|
-
restrictToSuggestions: { type: Boolean, required: false },
|
|
92
|
-
updateOnlyOnSubmit: { type: Boolean, required: false },
|
|
93
|
-
suggestionsFilter: { type: Function, required: false },
|
|
94
|
-
allowOpenEmpty: { type: Boolean, required: false },
|
|
95
|
-
canOpen: { type: Boolean, required: false, default: true },
|
|
96
|
-
canClose: { type: Boolean, required: false, default: true },
|
|
97
|
-
isValid: { type: Boolean, required: false, default: true },
|
|
98
|
-
suggestionSelector: { type: Function, required: false },
|
|
99
|
-
showSelectedValues: { type: Boolean, required: false }
|
|
100
|
-
});
|
|
101
|
-
const $modelValue = defineModel("modelValue", { type: null, ...{ required: true } });
|
|
102
|
-
const $inputValue = defineModel("inputValue", { type: String, ...{ default: "" } });
|
|
103
|
-
const $open = defineModel("open", { type: Boolean, ...{ default: false } });
|
|
104
|
-
if (typeof props.suggestions?.[0] === "object" && !props.suggestionLabel && !props.suggestionsFilter) {
|
|
105
|
-
throw new Error("`suggestionLabel` or `suggestionsFilter` must be passed if suggestions are objects.");
|
|
106
|
-
}
|
|
107
|
-
const el = ref(null);
|
|
108
|
-
const suggestions = reactive(useSuggestions(
|
|
109
|
-
$inputValue,
|
|
110
|
-
$modelValue,
|
|
111
|
-
$open,
|
|
112
|
-
emits,
|
|
113
|
-
props
|
|
114
|
-
));
|
|
115
|
-
const inputKeydownHandler = (e) => {
|
|
116
|
-
if (props.filterKeydown?.(e)) return;
|
|
117
|
-
if (hasModifiers(e)) return;
|
|
118
|
-
if (e.key === "Enter") {
|
|
119
|
-
suggestions.enterSelected(!Array.isArray($modelValue));
|
|
120
|
-
e.preventDefault();
|
|
121
|
-
} else if (e.key === "Escape") {
|
|
122
|
-
suggestions.cancel();
|
|
123
|
-
e.preventDefault();
|
|
124
|
-
} else if (!$open.value && ["ArrowDown", "ArrowUp", "PageUp", "PageDown"].includes(e.key) && suggestions.available) {
|
|
125
|
-
suggestions.open();
|
|
126
|
-
e.preventDefault();
|
|
127
|
-
if (e.key === "PageUp") {
|
|
128
|
-
suggestions.first();
|
|
129
|
-
} else if (e.key === "PageDown") {
|
|
130
|
-
suggestions.last();
|
|
131
|
-
}
|
|
132
|
-
} else if (e.key === "ArrowUp") {
|
|
133
|
-
suggestions.prev();
|
|
134
|
-
e.preventDefault();
|
|
135
|
-
} else if (e.key === "ArrowDown") {
|
|
136
|
-
suggestions.next();
|
|
137
|
-
e.preventDefault();
|
|
138
|
-
} else if (e.key === "PageUp") {
|
|
139
|
-
suggestions.first();
|
|
140
|
-
e.preventDefault();
|
|
141
|
-
} else if (e.key === "PageDown") {
|
|
142
|
-
suggestions.last();
|
|
143
|
-
e.preventDefault();
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
const inputBlurHandler = (e) => {
|
|
147
|
-
if (props.filterBlur?.(e)) return;
|
|
148
|
-
if (!$open.value) return;
|
|
149
|
-
if (props.restrictToSuggestions) {
|
|
150
|
-
suggestions.cancel();
|
|
151
|
-
} else {
|
|
152
|
-
if (!Array.isArray($modelValue.value)) {
|
|
153
|
-
$modelValue.value = $inputValue.value;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if ($open.value) {
|
|
157
|
-
suggestions.close();
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
const inputFocusHandler = (e) => {
|
|
161
|
-
if (props.filterFocus?.(e)) return;
|
|
162
|
-
suggestions.open();
|
|
163
|
-
};
|
|
164
|
-
defineExpose({
|
|
165
|
-
suggestions,
|
|
166
|
-
el,
|
|
167
|
-
/** A simple keydown handler that can be passed to an input to control the component while still focused inside it. */
|
|
168
|
-
inputKeydownHandler,
|
|
169
|
-
/** A blur handler for the input that controls the component. This also takes care of making clicking on a suggestion work, since otherwise if canOpen is set to false in the blur handler, no click event will fire. */
|
|
170
|
-
inputBlurHandler,
|
|
171
|
-
/** A focus handler for the input that controls the component. */
|
|
172
|
-
inputFocusHandler
|
|
173
|
-
});
|
|
174
|
-
</script>
|
|
175
|
-
|
|
176
|
-
<script>
|
|
177
|
-
|
|
178
|
-
</script>
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { type HTMLAttributes } from "vue";
|
|
2
|
-
import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type SuggestionsEmits, type SuggestionsProps, type WrapperProps } from "../shared/props.js";
|
|
3
|
-
type WrapperTypes = Partial<WrapperProps<"item", HTMLAttributes, {
|
|
4
|
-
/** Tailwind classes. */
|
|
5
|
-
class?: string;
|
|
6
|
-
}>>;
|
|
7
|
-
type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
|
|
8
|
-
/** Return true to prevent the keydown event from being handled. */
|
|
9
|
-
filterKeydown?: (e: KeyboardEvent) => boolean;
|
|
10
|
-
/** Return true to prevent the blur event from being handled. */
|
|
11
|
-
filterBlur?: (e: MouseEvent) => boolean;
|
|
12
|
-
/** Return true to prevent the focus event from being handled. */
|
|
13
|
-
filterFocus?: (e: FocusEvent) => boolean;
|
|
14
|
-
};
|
|
15
|
-
interface Props extends
|
|
16
|
-
/** @vue-ignore */
|
|
17
|
-
Partial<Omit<HTMLAttributes, "class" | "onSubmit"> & {
|
|
18
|
-
/** Tailwind classes. */
|
|
19
|
-
class?: string;
|
|
20
|
-
}>,
|
|
21
|
-
/** @vue-ignore */
|
|
22
|
-
WrapperTypes, RealProps {
|
|
23
|
-
}
|
|
24
|
-
declare const _default: typeof __VLS_export;
|
|
25
|
-
export default _default;
|
|
26
|
-
declare const __VLS_export: <TSuggestion extends string | object, TValue extends string | string[]>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
27
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<(Props & SuggestionsProps<TSuggestion> & {
|
|
28
|
-
/**
|
|
29
|
-
* The final valid value. This is *not* the value you want to share with the input. If `restrictToSuggestions` is true this will not update on any invalid values that `inputValue` might be set to.
|
|
30
|
-
*
|
|
31
|
-
* If suggestions are objects, this will be the string returned by the `suggestionLabel` prop.
|
|
32
|
-
*/
|
|
33
|
-
modelValue: TValue;
|
|
34
|
-
/**
|
|
35
|
-
* If the element is bound to an input, this is the value that the input should be sharing.
|
|
36
|
-
*
|
|
37
|
-
* It allows the component to read even invalid output, and also to reset that invalid output when either modelValue is set to a new value, or when the component is closed via cancel.
|
|
38
|
-
*/
|
|
39
|
-
inputValue?: string;
|
|
40
|
-
open?: boolean;
|
|
41
|
-
}) & {
|
|
42
|
-
onSubmit?: ((val: string, suggestion?: any, wasRemoved?: boolean | undefined) => any) | undefined;
|
|
43
|
-
"onUpdate:isOpen"?: ((val: boolean) => any) | undefined;
|
|
44
|
-
"onUpdate:activeSuggestion"?: ((val: number) => any) | undefined;
|
|
45
|
-
"onUpdate:modelValue"?: ((value: TValue) => any) | undefined;
|
|
46
|
-
"onUpdate:inputValue"?: ((value: string) => any) | undefined;
|
|
47
|
-
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
48
|
-
}> & (typeof globalThis extends {
|
|
49
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
50
|
-
} ? P : {});
|
|
51
|
-
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
52
|
-
suggestions: {
|
|
53
|
-
list: any[] | undefined;
|
|
54
|
-
filtered: any[] | undefined;
|
|
55
|
-
active: number;
|
|
56
|
-
available: boolean;
|
|
57
|
-
moreThanOneAvailable: boolean;
|
|
58
|
-
hasExactlyMatching: TSuggestion | undefined;
|
|
59
|
-
hasValidSuggestion: boolean;
|
|
60
|
-
openable: boolean | undefined;
|
|
61
|
-
getLabel: (item: any) => string;
|
|
62
|
-
$open: boolean;
|
|
63
|
-
open: () => void;
|
|
64
|
-
close: () => void;
|
|
65
|
-
enterSelected: (doClose?: boolean) => void;
|
|
66
|
-
enterIndex: (num: number, doClose?: boolean) => void;
|
|
67
|
-
toggle: () => void;
|
|
68
|
-
cancel: () => void;
|
|
69
|
-
select: (num: number) => void;
|
|
70
|
-
prev: () => void;
|
|
71
|
-
next: () => void;
|
|
72
|
-
first: () => void;
|
|
73
|
-
last: () => void;
|
|
74
|
-
};
|
|
75
|
-
el: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
76
|
-
/** A simple keydown handler that can be passed to an input to control the component while still focused inside it. */
|
|
77
|
-
inputKeydownHandler: (e: KeyboardEvent) => void;
|
|
78
|
-
/** A blur handler for the input that controls the component. This also takes care of making clicking on a suggestion work, since otherwise if canOpen is set to false in the blur handler, no click event will fire. */
|
|
79
|
-
inputBlurHandler: (e: MouseEvent) => void;
|
|
80
|
-
/** A focus handler for the input that controls the component. */
|
|
81
|
-
inputFocusHandler: (e: FocusEvent) => void;
|
|
82
|
-
}>) => void;
|
|
83
|
-
attrs: any;
|
|
84
|
-
slots: {
|
|
85
|
-
item?: (props: {
|
|
86
|
-
item: any;
|
|
87
|
-
index: number;
|
|
88
|
-
isSelected: boolean;
|
|
89
|
-
}) => any;
|
|
90
|
-
};
|
|
91
|
-
emit: SuggestionsEmits<false> & (((event: "update:modelValue", value: TValue) => void) & ((event: "update:inputValue", value: string) => void) & ((event: "update:open", value: boolean) => void));
|
|
92
|
-
}>) => import("vue").VNode & {
|
|
93
|
-
__ctx?: Awaited<typeof __VLS_setup>;
|
|
94
|
-
};
|
|
95
|
-
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
96
|
-
[K in keyof T]: T[K];
|
|
97
|
-
} : {
|
|
98
|
-
[K in keyof T as K]: T[K];
|
|
99
|
-
}) & {};
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { type VirtualizerOptions } from "@tanstack/vue-virtual";
|
|
2
|
-
import { type TableHTMLAttributes } from "vue";
|
|
3
|
-
import type { ResizableOptions, TableColConfig } from "../../types/index.js";
|
|
4
|
-
import type { TailwindClassProp } from "../shared/props.js";
|
|
5
|
-
type T = any;
|
|
6
|
-
type RealProps = {
|
|
7
|
-
resizable?: Partial<ResizableOptions>;
|
|
8
|
-
values?: T[];
|
|
9
|
-
/** Let's the table know the shape of the data since values might be empty. */
|
|
10
|
-
cols?: (keyof T)[];
|
|
11
|
-
rounded?: boolean;
|
|
12
|
-
border?: boolean;
|
|
13
|
-
cellBorder?: boolean;
|
|
14
|
-
/** Disables the header. This also sets the selector to `tr:first-child > td` instead to avoid issues with the vResizableCols directive. */
|
|
15
|
-
header?: boolean;
|
|
16
|
-
colConfig?: TableColConfig<T>;
|
|
17
|
-
/**
|
|
18
|
-
* See tanstack/vue-virtual {@link https://tanstack.com/virtual/latest/docs/api/virtualizer}
|
|
19
|
-
*
|
|
20
|
-
* The defaults are:
|
|
21
|
-
*
|
|
22
|
-
* - enabled: false
|
|
23
|
-
* - method: "fixed"
|
|
24
|
-
* - overscan: (50 if fixed, 10 if dynamic)
|
|
25
|
-
* - estimateSize: () => { return 33 }
|
|
26
|
-
*
|
|
27
|
-
* This also has an additional option, `method`, which can be set to `fixed` or `dynamic` (experimental).
|
|
28
|
-
*
|
|
29
|
-
* Notes:
|
|
30
|
-
*
|
|
31
|
-
* - Because of how virtualization works, initial layout (before .resizable-cols-setup class is applied) will only have access to the headers and not the rows. This can cause cols to look very small, especially if using resizable.fitWidth false.
|
|
32
|
-
*
|
|
33
|
-
* ### Fixed
|
|
34
|
-
*
|
|
35
|
-
* `fixed` is the default and will set the height of ALL items to the height of the first item onMounted (tanstack does not do this and if your estimateSize if off, the scrolling is weird).
|
|
36
|
-
*
|
|
37
|
-
* Since the table now truncates rows by default, they will always be the same height unless you change the inner styling. In fixed mode, `forceRecalculateFixedVirtualizer` is exposed if you need to force re-calculation.
|
|
38
|
-
*
|
|
39
|
-
* If using slots, be sure to at least pass the `class` slot prop to the td element. `style` with width is also supplied but is not required if you're displaying the table as a table.
|
|
40
|
-
*
|
|
41
|
-
* ### Dynamic (experimental)
|
|
42
|
-
*
|
|
43
|
-
* In `dynamic` mode we use tanstack's measureElement method. This is more expensive, but it will work with any heights.
|
|
44
|
-
*
|
|
45
|
-
* Dynamic mode also requires the table displays itself using grid and flex post setup as otherwise dynamic mode doesn't work.
|
|
46
|
-
*
|
|
47
|
-
* You don't need to do anything unless using slots. If using slots, pass the given `ref` slot prop to ref (internally this is tanstack's measureElement) and the class and style slot props at the very least:
|
|
48
|
-
* ```vue
|
|
49
|
-
* <template #[`${colName}`]="slotProps">
|
|
50
|
-
* <td
|
|
51
|
-
* :ref="slotProps.ref"
|
|
52
|
-
* :class="slotProps.class"
|
|
53
|
-
* :style="slotProps.style"
|
|
54
|
-
* >
|
|
55
|
-
* {{ slotProps.value }}
|
|
56
|
-
* </td>
|
|
57
|
-
* </template>
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
virtualizerOptions?: Partial<VirtualizerOptions<any, any>> & {
|
|
61
|
-
method?: "fixed" | "dynamic";
|
|
62
|
-
};
|
|
63
|
-
/** Whether to enable sticky header styles. This requires `border:false`. This moves the border to the wrapper and styles a straight border between the scroll bar and the rounded border. */
|
|
64
|
-
stickyHeader?: boolean;
|
|
65
|
-
/** Which key to use for the rows (only if not using virtualization). */
|
|
66
|
-
itemKey?: keyof T | ((item: T) => string);
|
|
67
|
-
};
|
|
68
|
-
interface Props extends
|
|
69
|
-
/** @vue-ignore */
|
|
70
|
-
Partial<Omit<TableHTMLAttributes, "class" | "readonly" | "disabled"> & TailwindClassProp>, RealProps {
|
|
71
|
-
}
|
|
72
|
-
declare const _default: typeof __VLS_export;
|
|
73
|
-
export default _default;
|
|
74
|
-
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
75
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<Props> & (typeof globalThis extends {
|
|
76
|
-
__VLS_PROPS_FALLBACK: infer P;
|
|
77
|
-
} ? P : {});
|
|
78
|
-
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
79
|
-
forceRecalculateFixedVirtualizer: () => void;
|
|
80
|
-
}>) => void;
|
|
81
|
-
attrs: any;
|
|
82
|
-
slots: {
|
|
83
|
-
[x: `header-${string}`]: ((props: {
|
|
84
|
-
colKey: string | number | symbol;
|
|
85
|
-
config: any;
|
|
86
|
-
style: {
|
|
87
|
-
width: undefined;
|
|
88
|
-
};
|
|
89
|
-
class: string | undefined;
|
|
90
|
-
}) => any) | undefined;
|
|
91
|
-
} & {
|
|
92
|
-
[x: string]: ((props: {
|
|
93
|
-
class: string | undefined;
|
|
94
|
-
style: {
|
|
95
|
-
width: undefined;
|
|
96
|
-
};
|
|
97
|
-
item: any;
|
|
98
|
-
value: any;
|
|
99
|
-
}) => any) | undefined;
|
|
100
|
-
[x: number]: ((props: {
|
|
101
|
-
class: string | undefined;
|
|
102
|
-
style: {
|
|
103
|
-
width: undefined;
|
|
104
|
-
};
|
|
105
|
-
item: any;
|
|
106
|
-
value: any;
|
|
107
|
-
}) => any) | undefined;
|
|
108
|
-
[x: symbol]: ((props: {
|
|
109
|
-
class: string | undefined;
|
|
110
|
-
style: {
|
|
111
|
-
width: undefined;
|
|
112
|
-
};
|
|
113
|
-
item: any;
|
|
114
|
-
value: any;
|
|
115
|
-
}) => any) | undefined;
|
|
116
|
-
};
|
|
117
|
-
emit: {};
|
|
118
|
-
}>) => import("vue").VNode & {
|
|
119
|
-
__ctx?: Awaited<typeof __VLS_setup>;
|
|
120
|
-
};
|
|
121
|
-
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
122
|
-
[K in keyof T]: T[K];
|
|
123
|
-
} : {
|
|
124
|
-
[K in keyof T as K]: T[K];
|
|
125
|
-
}) & {};
|