@witchcraft/ui 0.3.24 → 0.4.0-beta.1
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/runtime/assets/animations.css +1 -1
- package/dist/runtime/assets/locales/en.json +2 -0
- package/dist/runtime/assets/utils.css +1 -1
- 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} +5 -4
- 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} +5 -4
- 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} +38 -50
- 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} +44 -28
- 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 +25 -3
- package/dist/runtime/helpers/NotificationHandler.js +5 -9
- 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 +43 -43
- package/src/runtime/assets/animations.css +5 -5
- package/src/runtime/assets/locales/en.json +2 -0
- package/src/runtime/assets/utils.css +43 -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} +24 -9
- package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +46 -66
- package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
- package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +60 -40
- 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 +26 -11
- 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 -127
- 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
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<TooltipProvider :disabled="disabled">
|
|
3
|
+
<TooltipRoot
|
|
4
|
+
:delay-duration="rootProps?.delayDuration ?? 200"
|
|
5
|
+
:disable-closing-trigger="rootProps?.disableClosingTrigger ?? false"
|
|
6
|
+
v-bind="rootProps"
|
|
7
|
+
>
|
|
8
|
+
<TooltipTrigger
|
|
9
|
+
v-if="triggerWhileDisabled"
|
|
10
|
+
as-child
|
|
11
|
+
>
|
|
12
|
+
<!-- https://reka-ui.com/docs/components/tooltip#displaying-a-tooltip-from-a-disabled-button -->
|
|
13
|
+
<span>
|
|
14
|
+
<slot>
|
|
15
|
+
<WIcon class="text-neutral-500"><i-lucide-info/></WIcon>
|
|
16
|
+
</slot>
|
|
17
|
+
</span>
|
|
18
|
+
</TooltipTrigger>
|
|
19
|
+
<TooltipTrigger v-else>
|
|
20
|
+
<slot>
|
|
21
|
+
<WIcon class="text-neutral-500">
|
|
22
|
+
<i-lucide-info/>
|
|
23
|
+
</WIcon>
|
|
24
|
+
</slot>
|
|
25
|
+
</TooltipTrigger>
|
|
26
|
+
<TooltipPortal
|
|
27
|
+
:to="to"
|
|
28
|
+
>
|
|
29
|
+
<TooltipContent
|
|
30
|
+
:style="contentStyle"
|
|
31
|
+
:class="twMerge(
|
|
32
|
+
`
|
|
33
|
+
z-100
|
|
34
|
+
tooltip--content-wrapper
|
|
35
|
+
origin-[var(--reka-tooltip-content-transform-origin)]
|
|
36
|
+
data-[side=top]:animate-slideDownAndFade
|
|
37
|
+
data-[side=right]:animate-slideLeftAndFade
|
|
38
|
+
data-[side=bottom]:animate-slideUpAndFade
|
|
39
|
+
data-[side=left]:animate-slideRightAndFade
|
|
40
|
+
bg-neutral-50
|
|
41
|
+
dark:bg-neutral-800
|
|
42
|
+
rounded-sm
|
|
43
|
+
shadow-sm
|
|
44
|
+
shadow-black/30
|
|
45
|
+
border
|
|
46
|
+
border-black/30
|
|
47
|
+
p-2
|
|
48
|
+
overflow-auto
|
|
49
|
+
`,
|
|
50
|
+
contentProps?.class
|
|
51
|
+
)"
|
|
52
|
+
v-bind="{
|
|
53
|
+
collisionPadding: 20,
|
|
54
|
+
side: 'top',
|
|
55
|
+
...contentProps,
|
|
56
|
+
class: void 0,
|
|
57
|
+
style: void 0
|
|
58
|
+
}"
|
|
59
|
+
>
|
|
60
|
+
<div
|
|
61
|
+
class="
|
|
62
|
+
tooltip--content-container
|
|
63
|
+
text-sm
|
|
64
|
+
whitespace-pre-wrap
|
|
65
|
+
flex
|
|
66
|
+
flex-col
|
|
67
|
+
justify-center
|
|
68
|
+
"
|
|
69
|
+
>
|
|
70
|
+
<slot
|
|
71
|
+
name="content"
|
|
72
|
+
v-bind="{ content }"
|
|
73
|
+
>
|
|
74
|
+
{{ content }}
|
|
75
|
+
</slot>
|
|
76
|
+
</div>
|
|
77
|
+
<TooltipArrow
|
|
78
|
+
class="
|
|
79
|
+
tooltip--arrow
|
|
80
|
+
-mt-px
|
|
81
|
+
fill-neutral-50
|
|
82
|
+
dark:fill-neutral-800
|
|
83
|
+
drop-shadow-[0_2px_1px_rgba(0,0,0,0.3)]
|
|
84
|
+
relative
|
|
85
|
+
"
|
|
86
|
+
/>
|
|
87
|
+
</TooltipContent>
|
|
88
|
+
</TooltipPortal>
|
|
89
|
+
</TooltipRoot>
|
|
90
|
+
</TooltipProvider>
|
|
91
|
+
</template>
|
|
92
|
+
|
|
93
|
+
<script setup>
|
|
94
|
+
import { TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger } from "reka-ui";
|
|
95
|
+
import { usePopupConstrainToStyle } from "../../composables/usePopupConstrainToStyle.js";
|
|
96
|
+
import { twMerge } from "../../utils/twMerge.js";
|
|
97
|
+
import WIcon from "../WIcon/WIcon.vue";
|
|
98
|
+
const props = defineProps({
|
|
99
|
+
constrainWidthTo: { type: [Number, String, null], required: false, default: "available" },
|
|
100
|
+
constrainHeightTo: { type: [Number, String, null], required: false, default: "available" },
|
|
101
|
+
delayDuration: { type: Number, required: false, default: 200 },
|
|
102
|
+
disabled: { type: Boolean, required: false, default: false },
|
|
103
|
+
triggerWhileDisabled: { type: Boolean, required: false, default: false },
|
|
104
|
+
content: { type: String, required: false, default: "" },
|
|
105
|
+
collisionBoundary: { type: null, required: false },
|
|
106
|
+
to: { type: String, required: false, default: "#root" },
|
|
107
|
+
rootProps: { type: null, required: false },
|
|
108
|
+
contentProps: { type: null, required: false }
|
|
109
|
+
});
|
|
110
|
+
const contentStyle = usePopupConstrainToStyle("tooltip", props, [props?.contentProps?.style]);
|
|
111
|
+
</script>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { PopupConstrainToProps } from "../../types/index.js";
|
|
2
|
+
type __VLS_Props = PopupConstrainToProps & {
|
|
3
|
+
delayDuration?: number;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
triggerWhileDisabled?: boolean;
|
|
6
|
+
content?: string;
|
|
7
|
+
collisionBoundary?: Element | null;
|
|
8
|
+
to?: string;
|
|
9
|
+
/** Reka's TooltipRoot props */
|
|
10
|
+
rootProps?: any;
|
|
11
|
+
/** Reka's TooltipContent props */
|
|
12
|
+
contentProps?: any;
|
|
13
|
+
};
|
|
14
|
+
declare var __VLS_20: {}, __VLS_39: {}, __VLS_64: {
|
|
15
|
+
content: string;
|
|
16
|
+
};
|
|
17
|
+
type __VLS_Slots = {} & {
|
|
18
|
+
default?: (props: typeof __VLS_20) => any;
|
|
19
|
+
} & {
|
|
20
|
+
default?: (props: typeof __VLS_39) => any;
|
|
21
|
+
} & {
|
|
22
|
+
content?: (props: typeof __VLS_64) => any;
|
|
23
|
+
};
|
|
24
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
25
|
+
content: string;
|
|
26
|
+
disabled: boolean;
|
|
27
|
+
constrainWidthTo: number | "trigger" | "available" | string | null;
|
|
28
|
+
constrainHeightTo: number | "trigger" | "available" | string | null;
|
|
29
|
+
to: string;
|
|
30
|
+
delayDuration: number;
|
|
31
|
+
triggerWhileDisabled: boolean;
|
|
32
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
34
|
+
declare const _default: typeof __VLS_export;
|
|
35
|
+
export default _default;
|
|
36
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
37
|
+
new (): {
|
|
38
|
+
$slots: S;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as
|
|
3
|
-
export { default as
|
|
4
|
-
export { default as
|
|
5
|
-
export { default as
|
|
6
|
-
export { default as
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
12
|
-
export { default as
|
|
13
|
-
export { default as
|
|
14
|
-
export { default as
|
|
15
|
-
export { default as
|
|
16
|
-
export { default as
|
|
17
|
-
export { default as
|
|
18
|
-
export { default as
|
|
19
|
-
export { default as
|
|
20
|
-
export { default as
|
|
1
|
+
export { default as WButton } from "./WButton/WButton.vue";
|
|
2
|
+
export { default as WCheckbox } from "./WCheckbox/WCheckbox.vue";
|
|
3
|
+
export { default as WColorInput } from "./WColorInput/WColorInput.vue";
|
|
4
|
+
export { default as WColorPicker } from "./WColorPicker/WColorPicker.vue";
|
|
5
|
+
export { default as WCombobox } from "./WCombobox/WCombobox.vue";
|
|
6
|
+
export { default as WDarkModeSwitcher } from "./WDarkModeSwitcher/WDarkModeSwitcher.vue";
|
|
7
|
+
export { default as WDatePicker } from "./WDatePicker/WDatePicker.vue";
|
|
8
|
+
export { default as WDebug } from "./WDebug/WDebug.vue";
|
|
9
|
+
export { default as WFileInput } from "./WFileInput/WFileInput.vue";
|
|
10
|
+
export { default as WNotifications } from "./WNotifications/WNotifications.vue";
|
|
11
|
+
export { default as WPagination } from "./WPagination/WPagination.vue";
|
|
12
|
+
export { default as WPopup } from "./WPopup/WPopup.vue";
|
|
13
|
+
export { default as WPopover } from "./WPopover/WPopover.vue";
|
|
14
|
+
export { default as WProgressBar } from "./WProgressBar/WProgressBar.vue";
|
|
15
|
+
export { default as WRecorder } from "./WRecorder/WRecorder.vue";
|
|
16
|
+
export { default as WRoot } from "./WRoot/WRoot.vue";
|
|
17
|
+
export { default as WSimpleInput } from "./WSimpleInput/WSimpleInput.vue";
|
|
18
|
+
export { default as WTable } from "./WTable/WTable.vue";
|
|
19
|
+
export { default as WTimeZonePicker } from "./WDatePicker/WTimeZonePicker.vue";
|
|
20
|
+
export { default as WTooltip } from "./WTooltip/WTooltip.vue";
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as
|
|
3
|
-
export { default as
|
|
4
|
-
export { default as
|
|
5
|
-
export { default as
|
|
6
|
-
export { default as
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
12
|
-
export { default as
|
|
13
|
-
export { default as
|
|
14
|
-
export { default as
|
|
15
|
-
export { default as
|
|
16
|
-
export { default as
|
|
17
|
-
export { default as
|
|
18
|
-
export { default as
|
|
19
|
-
export { default as
|
|
20
|
-
export { default as
|
|
1
|
+
export { default as WButton } from "./WButton/WButton.vue";
|
|
2
|
+
export { default as WCheckbox } from "./WCheckbox/WCheckbox.vue";
|
|
3
|
+
export { default as WColorInput } from "./WColorInput/WColorInput.vue";
|
|
4
|
+
export { default as WColorPicker } from "./WColorPicker/WColorPicker.vue";
|
|
5
|
+
export { default as WCombobox } from "./WCombobox/WCombobox.vue";
|
|
6
|
+
export { default as WDarkModeSwitcher } from "./WDarkModeSwitcher/WDarkModeSwitcher.vue";
|
|
7
|
+
export { default as WDatePicker } from "./WDatePicker/WDatePicker.vue";
|
|
8
|
+
export { default as WDebug } from "./WDebug/WDebug.vue";
|
|
9
|
+
export { default as WFileInput } from "./WFileInput/WFileInput.vue";
|
|
10
|
+
export { default as WNotifications } from "./WNotifications/WNotifications.vue";
|
|
11
|
+
export { default as WPagination } from "./WPagination/WPagination.vue";
|
|
12
|
+
export { default as WPopup } from "./WPopup/WPopup.vue";
|
|
13
|
+
export { default as WPopover } from "./WPopover/WPopover.vue";
|
|
14
|
+
export { default as WProgressBar } from "./WProgressBar/WProgressBar.vue";
|
|
15
|
+
export { default as WRecorder } from "./WRecorder/WRecorder.vue";
|
|
16
|
+
export { default as WRoot } from "./WRoot/WRoot.vue";
|
|
17
|
+
export { default as WSimpleInput } from "./WSimpleInput/WSimpleInput.vue";
|
|
18
|
+
export { default as WTable } from "./WTable/WTable.vue";
|
|
19
|
+
export { default as WTimeZonePicker } from "./WDatePicker/WTimeZonePicker.vue";
|
|
20
|
+
export { default as WTooltip } from "./WTooltip/WTooltip.vue";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export { useAccesibilityOutline } from "./useAccesibilityOutline.js";
|
|
2
|
-
export {
|
|
3
|
-
export { useDarkMode } from "./useDarkMode.js";
|
|
4
|
-
export { useDivideAttrs } from "./useDivideAttrs.js";
|
|
2
|
+
export { useDelayedLoadingIndicator } from "./useDelayedLoadingIndicator.js";
|
|
5
3
|
export { useDragWithThreshold } from "./useDragWithThreshold.js";
|
|
4
|
+
export { useFallbackId } from "./useFallbackId.js";
|
|
6
5
|
export { useGlobalResizeObserver } from "./useGlobalResizeObserver.js";
|
|
7
6
|
export { useInjectedDarkMode } from "./useInjectedDarkMode.js";
|
|
8
7
|
export { useInjectedI18n } from "./useInjectedI18n.js";
|
|
9
8
|
export { useInjectedLocale } from "./useInjectedLocale.js";
|
|
10
9
|
export { useNotificationHandler } from "./useNotificationHandler.js";
|
|
10
|
+
export { usePopupConstrainToStyle } from "./usePopupConstrainToStyle.js";
|
|
11
11
|
export { usePreHydrationValue } from "./usePreHydrationValue.js";
|
|
12
12
|
export { useScrollNearContainerEdges } from "./useScrollNearContainerEdges.js";
|
|
13
13
|
export { useSetupDarkMode } from "./useSetupDarkMode.js";
|
|
14
14
|
export { useSetupLocale } from "./useSetupLocale.js";
|
|
15
15
|
export { useShowDevOnlyKey } from "./useShowDevOnlyKey.js";
|
|
16
16
|
export { useSlotVars } from "./useSlotVars.js";
|
|
17
|
-
export {
|
|
17
|
+
export { useTimeConditionally } from "./useTimeConditionally.js";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export { useAccesibilityOutline } from "./useAccesibilityOutline.js";
|
|
2
|
-
export {
|
|
3
|
-
export { useDarkMode } from "./useDarkMode.js";
|
|
4
|
-
export { useDivideAttrs } from "./useDivideAttrs.js";
|
|
2
|
+
export { useDelayedLoadingIndicator } from "./useDelayedLoadingIndicator.js";
|
|
5
3
|
export { useDragWithThreshold } from "./useDragWithThreshold.js";
|
|
4
|
+
export { useFallbackId } from "./useFallbackId.js";
|
|
6
5
|
export { useGlobalResizeObserver } from "./useGlobalResizeObserver.js";
|
|
7
6
|
export { useInjectedDarkMode } from "./useInjectedDarkMode.js";
|
|
8
7
|
export { useInjectedI18n } from "./useInjectedI18n.js";
|
|
9
8
|
export { useInjectedLocale } from "./useInjectedLocale.js";
|
|
10
9
|
export { useNotificationHandler } from "./useNotificationHandler.js";
|
|
10
|
+
export { usePopupConstrainToStyle } from "./usePopupConstrainToStyle.js";
|
|
11
11
|
export { usePreHydrationValue } from "./usePreHydrationValue.js";
|
|
12
12
|
export { useScrollNearContainerEdges } from "./useScrollNearContainerEdges.js";
|
|
13
13
|
export { useSetupDarkMode } from "./useSetupDarkMode.js";
|
|
14
14
|
export { useSetupLocale } from "./useSetupLocale.js";
|
|
15
15
|
export { useShowDevOnlyKey } from "./useShowDevOnlyKey.js";
|
|
16
16
|
export { useSlotVars } from "./useSlotVars.js";
|
|
17
|
-
export {
|
|
17
|
+
export { useTimeConditionally } from "./useTimeConditionally.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* For async operations sometimes it actually loads so fast the loading indicator is not visible but we still want it to be briefly visible. This delays the setting of the returned ref to false by the given timeout so it at least flashes onscreen.
|
|
4
|
+
*
|
|
5
|
+
* Setting to true is not delayed.
|
|
6
|
+
*
|
|
7
|
+
* If the indicator is set to true while the timeout is still running, it's canceled.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useDelayedLoadingIndicator(loading: Ref<boolean>, timeout?: number): Ref<boolean, boolean>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ref, watch } from "vue";
|
|
2
|
+
export function useDelayedLoadingIndicator(loading, timeout = 200) {
|
|
3
|
+
const showLoadingIndicator = ref(false);
|
|
4
|
+
let loadingTimeout;
|
|
5
|
+
watch(loading, (newVal) => {
|
|
6
|
+
clearTimeout(loadingTimeout);
|
|
7
|
+
if (newVal === true) {
|
|
8
|
+
showLoadingIndicator.value = true;
|
|
9
|
+
} else {
|
|
10
|
+
loadingTimeout = setTimeout(() => {
|
|
11
|
+
if (loading.value === false) {
|
|
12
|
+
showLoadingIndicator.value = false;
|
|
13
|
+
}
|
|
14
|
+
}, timeout);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return showLoadingIndicator;
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AcceptableValue, ComboboxRootProps } from "reka-ui";
|
|
2
|
+
export type SuggestionsDisplayProps<T extends NonNullable<AcceptableValue>> = {
|
|
3
|
+
displayKey?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Override's reka-ui's displayValue.
|
|
6
|
+
*
|
|
7
|
+
* Prefer displayKey or displayEntry if possible as it's easier to type and requires less code.
|
|
8
|
+
*
|
|
9
|
+
* It's passed a special options object with a `isForEmit` boolean that tells you whether the value will be used for emits or just visually/search. This is useful to v-model an id when suggestions are objects.
|
|
10
|
+
*/
|
|
11
|
+
displayValue?: (value: T | T[], options?: {
|
|
12
|
+
isForEmit?: boolean;
|
|
13
|
+
}) => string;
|
|
14
|
+
/**
|
|
15
|
+
* When displayKey is not enough, prefer this over displayValue as it takes care of extracting the entry (from the array/object/value).
|
|
16
|
+
*
|
|
17
|
+
* The component uses this to filter out the suggestions. In some rare cases you might want to display a different label than the one filtered on (e.g. for example, to indicate some suggestion is active), in these cases, the function will be called with the visualOnly option set to true. This applies only to the visual suggestion in the suggestion list.
|
|
18
|
+
*/
|
|
19
|
+
displayEntry?: (value: T, options: {
|
|
20
|
+
isForEmit?: boolean;
|
|
21
|
+
}) => string;
|
|
22
|
+
};
|
|
23
|
+
export declare function useDisplayForReka<T extends NonNullable<ComboboxRootProps["modelValue"]>>(props: SuggestionsDisplayProps<T>): (value: T, options?: {
|
|
24
|
+
isForEmit?: boolean;
|
|
25
|
+
}) => string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function useDisplayForReka(props) {
|
|
2
|
+
const display = props.displayValue ?? function(value, options = {}) {
|
|
3
|
+
if (Array.isArray(value)) {
|
|
4
|
+
return value.map((v) => {
|
|
5
|
+
const val = v[props.displayKey];
|
|
6
|
+
return props.displayEntry?.(val, options) ?? val;
|
|
7
|
+
}).filter((v) => v !== "").join(", ");
|
|
8
|
+
} else if (typeof value === "object") {
|
|
9
|
+
return props.displayEntry?.(value, options) ?? value[props.displayKey];
|
|
10
|
+
} else {
|
|
11
|
+
if (value === "" && !options.isForEmit) return "";
|
|
12
|
+
return props.displayEntry?.(value, options) ?? value;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
return display;
|
|
16
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { DarkModeCommands, DarkModeState } from "
|
|
1
|
+
import type { DarkModeCommands, DarkModeState } from "../types/index.js";
|
|
2
2
|
export declare function useInjectedDarkMode(): DarkModeState & DarkModeCommands;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComputedRef, StyleValue } from "vue";
|
|
2
|
+
import type { PopupConstrainToProps } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Mostly internal, create the computed style with maxWidth/Height based on the constrain*To props.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function usePopupConstrainToStyle(rekaName: string, props: PopupConstrainToProps, attrsStyle?: StyleValue[]): ComputedRef<StyleValue[]>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { computed } from "vue";
|
|
2
|
+
export function usePopupConstrainToStyle(rekaName, props, attrsStyle) {
|
|
3
|
+
const contentStyle = computed(() => [{
|
|
4
|
+
maxWidth: props.constrainWidthTo === "trigger" ? `var(--reka-${rekaName}-trigger-width)` : props.constrainWidthTo === "available" ? `var(--reka-${rekaName}-content-available-width)` : typeof props.constrainWidthTo === "number" ? `${props.constrainWidthTo}px` : props.constrainWidthTo ?? void 0,
|
|
5
|
+
maxHeight: props.constrainHeightTo === "trigger" ? `var(--reka-${rekaName}-trigger-height)` : props.constrainHeightTo === "available" ? `var(--reka-${rekaName}-content-available-height)` : typeof props.constrainHeightTo === "number" ? `${props.constrainHeightTo}px` : props.constrainHeightTo ?? void 0
|
|
6
|
+
}, ...attrsStyle ?? []]);
|
|
7
|
+
return contentStyle;
|
|
8
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { DarkModeCommands, DarkModeOptions, DarkModeState } from "../types/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* A composable for setting up dark mode that automatically takes care of saving the user's preference.
|
|
4
4
|
*
|
|
@@ -7,6 +7,5 @@ import { useDarkMode } from "./useDarkMode.js";
|
|
|
7
7
|
* Use it's twin, `useInjectedDarkMode` for accessing the injected state and commands in components
|
|
8
8
|
*
|
|
9
9
|
* Note that this should only be called once at the root of the app.
|
|
10
|
-
*
|
|
11
10
|
*/
|
|
12
|
-
export declare
|
|
11
|
+
export declare const useSetupDarkMode: ({ useLocalStorage, darkModeOrder, isClientSide, useViewTransition }?: DarkModeOptions) => DarkModeState & DarkModeCommands;
|
|
@@ -1,4 +1,90 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { computed, nextTick, onMounted, provide, ref, watch } from "vue";
|
|
2
|
+
import { darkModeCommandsInjectionKey, darkModeStateInjectionKey } from "../injectionKeys.js";
|
|
3
|
+
import { defaultDarkModeOrder } from "../types/index.js";
|
|
4
|
+
const isDarkModeInjectionKey = Symbol("isDarkMode");
|
|
5
|
+
const manualDarkModeInjectionKey = Symbol("manualDarkMode");
|
|
6
|
+
const defaultLocalStorageKey = "prefersColorSchemeDark";
|
|
7
|
+
export const useSetupDarkMode = ({
|
|
8
|
+
useLocalStorage = true,
|
|
9
|
+
darkModeOrder = defaultDarkModeOrder,
|
|
10
|
+
isClientSide = true,
|
|
11
|
+
useViewTransition = true
|
|
12
|
+
} = {}) => {
|
|
13
|
+
const systemDarkMode = ref(false);
|
|
14
|
+
const manualDarkMode = ref(void 0);
|
|
15
|
+
if (useLocalStorage && isClientSide) {
|
|
16
|
+
watch(manualDarkMode, () => {
|
|
17
|
+
localStorage.setItem(defaultLocalStorageKey, manualDarkMode.value ? "true" : "false");
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const darkMode = computed(() => manualDarkMode.value ?? systemDarkMode.value);
|
|
21
|
+
const darkModeState = computed(
|
|
22
|
+
() => manualDarkMode.value === void 0 ? "system" : manualDarkMode.value ? "dark" : "light"
|
|
23
|
+
);
|
|
24
|
+
function setDarkMode(value) {
|
|
25
|
+
manualDarkMode.value = value === "dark" ? true : value === "light" ? false : void 0;
|
|
26
|
+
}
|
|
27
|
+
function getNextValue() {
|
|
28
|
+
const index = darkModeOrder.indexOf(darkModeState.value);
|
|
29
|
+
return index === 2 ? darkModeOrder[0] : darkModeOrder[index + 1];
|
|
30
|
+
}
|
|
31
|
+
function _cycleDarkMode() {
|
|
32
|
+
setDarkMode(getNextValue());
|
|
33
|
+
}
|
|
34
|
+
function cycleDarkMode() {
|
|
35
|
+
if (!useViewTransition) {
|
|
36
|
+
_cycleDarkMode();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const nextValue = getNextValue();
|
|
40
|
+
const index = darkModeOrder.indexOf(darkModeState.value);
|
|
41
|
+
const systemDarkModeName = systemDarkMode.value ? "dark" : "light";
|
|
42
|
+
if (nextValue === "system" && systemDarkModeName === darkModeOrder[index]) {
|
|
43
|
+
_cycleDarkMode();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!document.startViewTransition) _cycleDarkMode();
|
|
47
|
+
document.startViewTransition(async () => {
|
|
48
|
+
_cycleDarkMode();
|
|
49
|
+
await nextTick();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
onMounted(() => {
|
|
53
|
+
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", ({ matches }) => {
|
|
54
|
+
if (matches) {
|
|
55
|
+
systemDarkMode.value = true;
|
|
56
|
+
} else {
|
|
57
|
+
systemDarkMode.value = false;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (useLocalStorage !== false) {
|
|
61
|
+
const key = typeof useLocalStorage === "string" ? useLocalStorage : defaultLocalStorageKey;
|
|
62
|
+
const value = localStorage.getItem(key);
|
|
63
|
+
if (value === "true") {
|
|
64
|
+
manualDarkMode.value = true;
|
|
65
|
+
} else if (value === "false") {
|
|
66
|
+
manualDarkMode.value = false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
provide(isDarkModeInjectionKey, darkMode);
|
|
71
|
+
provide(manualDarkModeInjectionKey, manualDarkMode);
|
|
72
|
+
provide(darkModeStateInjectionKey, {
|
|
73
|
+
darkMode,
|
|
74
|
+
darkModeState,
|
|
75
|
+
manualDarkMode,
|
|
76
|
+
systemDarkMode
|
|
77
|
+
});
|
|
78
|
+
provide(darkModeCommandsInjectionKey, {
|
|
79
|
+
setDarkMode,
|
|
80
|
+
cycleDarkMode
|
|
81
|
+
});
|
|
82
|
+
return {
|
|
83
|
+
darkMode,
|
|
84
|
+
darkModeState,
|
|
85
|
+
setDarkMode,
|
|
86
|
+
cycleDarkMode,
|
|
87
|
+
manualDarkMode,
|
|
88
|
+
systemDarkMode
|
|
89
|
+
};
|
|
90
|
+
};
|
|
@@ -32,18 +32,40 @@ export type RawNotificationEntry<TOptions extends string[] = ["Ok", "Cancel"], T
|
|
|
32
32
|
options?: TOptions;
|
|
33
33
|
/** @default false */
|
|
34
34
|
requiresAction?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* If true or a string (the cancel option) ensures the option exists and that is the "default" cancel action when a notification is dismissed in some manner that is not clicking one of the options (escaped, background click, etc.).
|
|
37
|
+
*
|
|
38
|
+
* This also enables cancelling via those secondary methods, otherwise the notification won't allow itself to be dismissed.
|
|
39
|
+
*
|
|
40
|
+
* @default undefined / false
|
|
41
|
+
*/
|
|
35
42
|
cancellable?: TCancellable;
|
|
36
43
|
/** @default "Ok" */
|
|
37
44
|
default?: TOptions[number];
|
|
38
45
|
/** @default [] */
|
|
39
46
|
dangerous?: TOptions[number][];
|
|
40
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Overrides the default timeout, can be set to true to just enable it. An entry must be cancellable to have a timeout.
|
|
49
|
+
*
|
|
50
|
+
* @default global timeout / false if cancellable is false
|
|
51
|
+
*/
|
|
41
52
|
timeout?: number | boolean;
|
|
42
53
|
icon?: string;
|
|
43
54
|
message: string;
|
|
44
55
|
component?: string | Component;
|
|
45
|
-
/** By default the component is passed the message and the
|
|
46
|
-
componentProps?: Record<string, any
|
|
56
|
+
/** Props for the custom component. By default the component is passed the message, the messageClasses, and the full notification. Both will be overriden if you set them on componentProps. */
|
|
57
|
+
componentProps?: Record<string, any> & {
|
|
58
|
+
notification: NotificationEntry;
|
|
59
|
+
message: string;
|
|
60
|
+
messageClasses: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Attributes for the notification component itself. They are bound to the root of the element and the class property is merged with twMerge.
|
|
64
|
+
*
|
|
65
|
+
* The most likely use is needing to adjust the width of fullscreen notifications, but fullscreen notifications have two widths (one for big screens and one for small ones (sm). You will usually want to do something like `{notificationProps: {class: 'sm:max-w-[90dvw]'}}` to change only the large one.
|
|
66
|
+
*
|
|
67
|
+
*/
|
|
68
|
+
notificationAttrs?: Record<string, any>;
|
|
47
69
|
};
|
|
48
70
|
export type NotificationEntry<TRawEntry extends RawNotificationEntry<any, any> = RawNotificationEntry<any, any>> = Omit<MakeRequired<TRawEntry, "options" | "requiresAction" | "default" | "dangerous">, "cancellable"> & {
|
|
49
71
|
promise: NotificationPromise;
|
|
@@ -57,13 +57,6 @@ export class NotificationHandler {
|
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
if (entry.timeout !== void 0 && !entry.cancellable) {
|
|
61
|
-
throw new Error(
|
|
62
|
-
crop`Cannot timeout notification that is not cancellable:
|
|
63
|
-
${indent(pretty(entry), 5)}
|
|
64
|
-
`
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
60
|
if (entry.timeout !== void 0 && entry.requiresAction) {
|
|
68
61
|
throw new Error(
|
|
69
62
|
crop`Cannot timeout notification that requires action:
|
|
@@ -85,7 +78,6 @@ export class NotificationHandler {
|
|
|
85
78
|
requiresAction: false,
|
|
86
79
|
options: ["Ok", "Cancel"],
|
|
87
80
|
default: "Ok",
|
|
88
|
-
cancellable: rawEntry.cancellable,
|
|
89
81
|
...rawEntry,
|
|
90
82
|
component: rawEntry.component && typeof rawEntry.component !== "string" ? markRaw(rawEntry.component) : void 0,
|
|
91
83
|
dangerous: rawEntry.dangerous ?? [],
|
|
@@ -153,7 +145,11 @@ export class NotificationHandler {
|
|
|
153
145
|
const remaining = notification.timeout - notification._timer.elapsedBeforePause;
|
|
154
146
|
clearTimeout(notification._timer.id);
|
|
155
147
|
notification._timer.id = setTimeout(() => {
|
|
156
|
-
|
|
148
|
+
if (notification.cancellable) {
|
|
149
|
+
notification.resolve(notification.cancellable);
|
|
150
|
+
} else {
|
|
151
|
+
notification.resolve(notification.default);
|
|
152
|
+
}
|
|
157
153
|
}, remaining);
|
|
158
154
|
}
|
|
159
155
|
static resolveToDefault(notification) {
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import type { InjectionKey, Ref } from "vue";
|
|
2
|
-
import type { DarkModeCommands, DarkModeState } from "./composables/useDarkMode.js";
|
|
3
2
|
import type { TranslationFunction } from "./composables/useSetupI18n.js";
|
|
4
|
-
|
|
5
|
-
export declare const isDarkModeInjectionKey: InjectionKey<Ref<boolean>>;
|
|
6
|
-
/** @deprecated */
|
|
7
|
-
export declare const manualDarkModeInjectionKey: InjectionKey<Ref<boolean | undefined>>;
|
|
3
|
+
import type { DarkModeCommands, DarkModeState } from "./types/index.js";
|
|
8
4
|
export declare const darkModeCommandsInjectionKey: InjectionKey<DarkModeCommands>;
|
|
9
5
|
export declare const darkModeStateInjectionKey: InjectionKey<DarkModeState>;
|
|
10
6
|
export declare const languageLocaleInjectionKey: InjectionKey<Ref<string>>;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export const isDarkModeInjectionKey = Symbol("isDarkMode");
|
|
2
|
-
export const manualDarkModeInjectionKey = Symbol("manualDarkMode");
|
|
3
1
|
export const darkModeCommandsInjectionKey = Symbol("darkModeCommands");
|
|
4
2
|
export const darkModeStateInjectionKey = Symbol("darkModeState");
|
|
5
3
|
export const languageLocaleInjectionKey = Symbol("witchcraftUiLanguageLocale");
|