@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
|
@@ -95,33 +95,6 @@ export type ScrollNearContainerEdgesOptions = {
|
|
|
95
95
|
timerInterval?: number;
|
|
96
96
|
};
|
|
97
97
|
export type SimpleDOMRect = Omit<DOMRect, "toJSON">;
|
|
98
|
-
export interface IPopupReference {
|
|
99
|
-
getBoundingClientRect: () => SimpleDOMRect;
|
|
100
|
-
}
|
|
101
|
-
export type PopupPosition = {
|
|
102
|
-
x: number;
|
|
103
|
-
y: number;
|
|
104
|
-
maxWidth?: number;
|
|
105
|
-
maxHeight?: number;
|
|
106
|
-
};
|
|
107
|
-
export type PopupSpaceInfo = {
|
|
108
|
-
left: number;
|
|
109
|
-
right: number;
|
|
110
|
-
leftLeft: number;
|
|
111
|
-
rightRight: number;
|
|
112
|
-
leftFromCenter: number;
|
|
113
|
-
rightFromCenter: number;
|
|
114
|
-
topFromCenter: number;
|
|
115
|
-
bottomFromCenter: number;
|
|
116
|
-
top: number;
|
|
117
|
-
bottom: number;
|
|
118
|
-
};
|
|
119
|
-
export type PopupPositioner = (
|
|
120
|
-
/** Reference is only undefined, if you did not specify a button element or use the exposed setReference. The function is still called, because there are other ways you might want to still position the popup (e.g. center-screen or some similar variation). */
|
|
121
|
-
reference: SimpleDOMRect | undefined, popup: SimpleDOMRect | DOMRect, bg: SimpleDOMRect | DOMRect, space: PopupSpaceInfo) => number;
|
|
122
|
-
export type PopupPositionModifier = (pos: PopupPosition,
|
|
123
|
-
/** This will only be called with the reference element as undefined when one of the preferred positions is center-screen or it's a function. */
|
|
124
|
-
reference: SimpleDOMRect | undefined, popup: SimpleDOMRect | DOMRect, bg: SimpleDOMRect | DOMRect, space: PopupSpaceInfo) => PopupPosition;
|
|
125
98
|
export type SingleDate = Date | undefined;
|
|
126
99
|
export type RangeDate = {
|
|
127
100
|
start?: SingleDate;
|
|
@@ -131,3 +104,88 @@ export type CustomNotificationComponentProps = {
|
|
|
131
104
|
message: string;
|
|
132
105
|
messageClasses?: string;
|
|
133
106
|
};
|
|
107
|
+
export type BaseInteractiveProps = {
|
|
108
|
+
/** Default is false. */
|
|
109
|
+
disabled?: boolean;
|
|
110
|
+
/** Default is false. */
|
|
111
|
+
readonly?: boolean;
|
|
112
|
+
/** Default is true. */
|
|
113
|
+
border?: boolean;
|
|
114
|
+
/** Removes styles from the component. Default is false. */
|
|
115
|
+
unstyle?: boolean;
|
|
116
|
+
};
|
|
117
|
+
export type TailwindClassProp = {
|
|
118
|
+
/** Tailwind classes. */
|
|
119
|
+
class?: string | false;
|
|
120
|
+
};
|
|
121
|
+
export declare const defaultDarkModeOrder: readonly ["system", "dark", "light"];
|
|
122
|
+
export type DarkModeOptions = {
|
|
123
|
+
useLocalStorage?: boolean | string;
|
|
124
|
+
darkModeOrder?: readonly ("system" | "dark" | "light")[];
|
|
125
|
+
/** True by default, should be passed import.meta.client if using nuxt, or false when running server side. */
|
|
126
|
+
isClientSide?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Whether to use the view transition to animate the dark mode switch (you just need to add the css).
|
|
129
|
+
*
|
|
130
|
+
* Note that the transitition is NOT triggered if visually the mode does not change (e.g. system mode is dark and the user switches from system to dark, visually nothing changes so transitioning is skipped).
|
|
131
|
+
*
|
|
132
|
+
* There is an example in storybook. But basically:
|
|
133
|
+
*
|
|
134
|
+
* ```css
|
|
135
|
+
*
|
|
136
|
+
* #root { // the dark mode switcher works on the WRoot component not the html root
|
|
137
|
+
* view-transition-name: wroot;
|
|
138
|
+
* height: 100dvh;
|
|
139
|
+
* padding: 0;
|
|
140
|
+
* }
|
|
141
|
+
*
|
|
142
|
+
* ::view-transition-new(wroot) {
|
|
143
|
+
* animation: grow var(--story-anim-length) ease-in-out;
|
|
144
|
+
* animation-fill-mode: both;
|
|
145
|
+
* z-index: 2;
|
|
146
|
+
* mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="white"/></svg>') center / 0 no-repeat;
|
|
147
|
+
* }
|
|
148
|
+
*
|
|
149
|
+
* ::view-transition-old(wroot) {
|
|
150
|
+
* animation: none;
|
|
151
|
+
* animation-fill-mode: both;
|
|
152
|
+
* z-index: 1;
|
|
153
|
+
* }
|
|
154
|
+
*
|
|
155
|
+
* @keyframes grow {
|
|
156
|
+
* from {
|
|
157
|
+
* mask-size: 0dvw;
|
|
158
|
+
* }
|
|
159
|
+
* to {
|
|
160
|
+
* mask-size: 300dvw;
|
|
161
|
+
* }
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* See https://theme-toggle.rdsx.dev/ for more ideas.
|
|
166
|
+
*
|
|
167
|
+
* @default true
|
|
168
|
+
*/
|
|
169
|
+
useViewTransition?: boolean;
|
|
170
|
+
};
|
|
171
|
+
export interface DarkModeCommands {
|
|
172
|
+
setDarkMode: (value: "dark" | "light" | "system") => void;
|
|
173
|
+
cycleDarkMode: () => void;
|
|
174
|
+
}
|
|
175
|
+
export interface DarkModeState {
|
|
176
|
+
/** Whether the dark mode should be enabled or not */
|
|
177
|
+
darkMode: Ref<boolean>;
|
|
178
|
+
/** The current state of the darkMode but as a string (dark, light, system) */
|
|
179
|
+
darkModeState: Ref<"dark" | "light" | "system">;
|
|
180
|
+
/** The value of the manuably controllable dark mode. You can set this to true/false or undefined to allow the systemDarkMode to take priority. Alternatively use setDarkMode instead. */
|
|
181
|
+
manualDarkMode: Ref<boolean | undefined>;
|
|
182
|
+
/** The value of the system dark mode. This is automatically set depending on the user's `prefer-color-scheme` and should not be set directly. */
|
|
183
|
+
systemDarkMode: Ref<boolean>;
|
|
184
|
+
}
|
|
185
|
+
export type PopupConstrainToProps = {
|
|
186
|
+
constrainWidthTo?: number | "trigger" | "available" | string | null;
|
|
187
|
+
constrainHeightTo?: number | "trigger" | "available" | string | null;
|
|
188
|
+
};
|
|
189
|
+
export type EmitsToProps<T> = {
|
|
190
|
+
[K in keyof T as K extends string ? `on${Capitalize<K>}` : never]?: T[K] extends (...args: infer Args) => any ? (...args: Args) => void : T[K] extends any[] ? (...args: T[K]) => void : T[K];
|
|
191
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const defaultDarkModeOrder = ["system", "dark", "light"];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@witchcraft/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-beta.1",
|
|
4
4
|
"description": "Vue component library.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/runtime/main.lib.js",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"failOnWarn": false
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
|
-
"tailwindcss": "^4.1
|
|
53
|
+
"tailwindcss": "^4.2.1",
|
|
54
54
|
"unplugin-icons": "^22.5.0",
|
|
55
|
-
"vue": "^3.5.
|
|
55
|
+
"vue": "^3.5.30"
|
|
56
56
|
},
|
|
57
57
|
"peerDependenciesMeta": {
|
|
58
58
|
"tailwindcss": {
|
|
@@ -63,20 +63,20 @@
|
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@alanscodelog/utils": "^6.0
|
|
67
|
-
"@iconify/json": "^2.2.
|
|
68
|
-
"@nuxt/kit": "^4.
|
|
69
|
-
"@nuxt/schema": "^4.
|
|
66
|
+
"@alanscodelog/utils": "^6.2.0",
|
|
67
|
+
"@iconify/json": "^2.2.450",
|
|
68
|
+
"@nuxt/kit": "^4.4.2",
|
|
69
|
+
"@nuxt/schema": "^4.4.2",
|
|
70
70
|
"@nuxt/types": "^2.18.1",
|
|
71
|
-
"@tailwindcss/vite": "^4.1
|
|
71
|
+
"@tailwindcss/vite": "^4.2.1",
|
|
72
72
|
"@witchcraft/nuxt-utils": "^0.3.6",
|
|
73
73
|
"colord": "^2.9.3",
|
|
74
74
|
"colorjs.io": "0.6.0-alpha.1",
|
|
75
75
|
"defu": "^6.1.4",
|
|
76
76
|
"fast-glob": "^3.3.3",
|
|
77
77
|
"metamorphosis": "^0.6.1",
|
|
78
|
-
"reka-ui": "^2.
|
|
79
|
-
"tailwind-merge": "^3.
|
|
78
|
+
"reka-ui": "^2.9.5",
|
|
79
|
+
"tailwind-merge": "^3.5.0",
|
|
80
80
|
"unplugin-icons": "^22.5.0",
|
|
81
81
|
"unplugin-vue-components": "^28.8.0",
|
|
82
82
|
"vue-component-type-helpers": "^2.2.12"
|
|
@@ -85,58 +85,58 @@
|
|
|
85
85
|
"@alanscodelog/commitlint-config": "^3.1.2",
|
|
86
86
|
"@alanscodelog/eslint-config": "^6.3.1",
|
|
87
87
|
"@alanscodelog/semantic-release-config": "^6.0.2",
|
|
88
|
-
"@alanscodelog/tsconfigs": "^6.
|
|
88
|
+
"@alanscodelog/tsconfigs": "^6.3.0",
|
|
89
89
|
"@alanscodelog/vite-config": "^0.0.7",
|
|
90
90
|
"@chromatic-com/storybook": "^3.2.7",
|
|
91
|
-
"@commitlint/cli": "^20.
|
|
92
|
-
"@internationalized/date": "^3.
|
|
91
|
+
"@commitlint/cli": "^20.5.0",
|
|
92
|
+
"@internationalized/date": "^3.12.0",
|
|
93
93
|
"@faker-js/faker": "^10.3.0",
|
|
94
|
-
"@nuxt/eslint-config": "^1.
|
|
94
|
+
"@nuxt/eslint-config": "^1.15.2",
|
|
95
95
|
"@nuxt/module-builder": "^1.0.2",
|
|
96
96
|
"@nuxtjs/i18n": "^9.5.6",
|
|
97
|
-
"@playwright/test": "
|
|
97
|
+
"@playwright/test": "=1.58.2",
|
|
98
98
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
99
|
-
"@storybook/addon-a11y": "^8.6.
|
|
100
|
-
"@storybook/addon-actions": "^8.6.
|
|
101
|
-
"@storybook/addon-essentials": "^8.6.
|
|
102
|
-
"@storybook/addon-interactions": "^8.6.
|
|
103
|
-
"@storybook/addon-links": "^8.6.
|
|
104
|
-
"@storybook/addon-storysource": "^8.6.
|
|
105
|
-
"@storybook/blocks": "^8.6.
|
|
106
|
-
"@storybook/manager-api": "^8.6.
|
|
107
|
-
"@storybook/test": "^8.6.
|
|
99
|
+
"@storybook/addon-a11y": "^8.6.18",
|
|
100
|
+
"@storybook/addon-actions": "^8.6.18",
|
|
101
|
+
"@storybook/addon-essentials": "^8.6.18",
|
|
102
|
+
"@storybook/addon-interactions": "^8.6.18",
|
|
103
|
+
"@storybook/addon-links": "^8.6.18",
|
|
104
|
+
"@storybook/addon-storysource": "^8.6.18",
|
|
105
|
+
"@storybook/blocks": "^8.6.18",
|
|
106
|
+
"@storybook/manager-api": "^8.6.18",
|
|
107
|
+
"@storybook/test": "^8.6.18",
|
|
108
108
|
"@storybook/test-runner": "^0.22.1",
|
|
109
|
-
"@storybook/vue3": "^8.6.
|
|
110
|
-
"@storybook/vue3-vite": "^8.6.
|
|
111
|
-
"@tanstack/vue-virtual": "^3.13.
|
|
112
|
-
"@tailwindcss/cli": "^4.1
|
|
113
|
-
"@tailwindcss/postcss": "^4.1
|
|
114
|
-
"@types/node": "^24.
|
|
115
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
116
|
-
"@vue/runtime-core": "^3.5.
|
|
117
|
-
"@vue/runtime-dom": "^3.5.
|
|
109
|
+
"@storybook/vue3": "^8.6.18",
|
|
110
|
+
"@storybook/vue3-vite": "^8.6.18",
|
|
111
|
+
"@tanstack/vue-virtual": "^3.13.23",
|
|
112
|
+
"@tailwindcss/cli": "^4.2.1",
|
|
113
|
+
"@tailwindcss/postcss": "^4.2.1",
|
|
114
|
+
"@types/node": "^24.12.0",
|
|
115
|
+
"@vitejs/plugin-vue": "^6.0.5",
|
|
116
|
+
"@vue/runtime-core": "^3.5.30",
|
|
117
|
+
"@vue/runtime-dom": "^3.5.30",
|
|
118
118
|
"@vueuse/components": "^13.9.0",
|
|
119
119
|
"@vueuse/core": "^13.9.0",
|
|
120
|
-
"autoprefixer": "^10.4.
|
|
120
|
+
"autoprefixer": "^10.4.27",
|
|
121
121
|
"concurrently": "^9.2.1",
|
|
122
|
-
"eslint": "^9.39.
|
|
122
|
+
"eslint": "^9.39.4",
|
|
123
123
|
"http-server": "^14.1.1",
|
|
124
124
|
"husky": "^9.1.7",
|
|
125
125
|
"indexit": "2.1.0-beta.3",
|
|
126
126
|
"madge": "^7.0.0",
|
|
127
|
-
"nuxt": "^4.
|
|
128
|
-
"playwright": "
|
|
129
|
-
"playwright-core": "
|
|
127
|
+
"nuxt": "^4.4.2",
|
|
128
|
+
"playwright": "=1.58.2",
|
|
129
|
+
"playwright-core": "=1.58.2",
|
|
130
130
|
"semantic-release": "^24.2.9",
|
|
131
|
-
"storybook": "^8.6.
|
|
131
|
+
"storybook": "^8.6.18",
|
|
132
132
|
"storybook-dark-mode": "^4.0.2",
|
|
133
|
-
"tailwindcss": "^4.1
|
|
133
|
+
"tailwindcss": "^4.2.1",
|
|
134
134
|
"ts-node": "^10.9.2",
|
|
135
135
|
"typescript": "^5.9.3",
|
|
136
136
|
"unbuild": "^3.6.1",
|
|
137
137
|
"vite": "^7.3.1",
|
|
138
|
-
"vite-tsconfig-paths": "^6.1.
|
|
139
|
-
"vue": "^3.5.
|
|
138
|
+
"vite-tsconfig-paths": "^6.1.1",
|
|
139
|
+
"vue": "^3.5.30",
|
|
140
140
|
"vue-tsc": "3.2.4",
|
|
141
141
|
"wait-on": "^8.0.5"
|
|
142
142
|
},
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
"build:only": "nuxt-module-build build",
|
|
177
177
|
"dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
|
|
178
178
|
"dev": "nuxi dev playground",
|
|
179
|
-
"storybook": "BROWSER=none storybook dev -p 6006",
|
|
179
|
+
"storybook": "BROWSER=none storybook dev -p 6006 --no-open",
|
|
180
180
|
"storybook:clear-cache": "BROWSER=none storybook dev -p 6006 --no-manager-cache",
|
|
181
181
|
"storybook:build": "pnpm nuxt prepare && storybook build -o docs/storybook",
|
|
182
182
|
"storybook:test": "pnpm storybook:build && pnpm concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"pnpm http-server docs/storybook --port 6006 --silent\" \"pnpm wait-on tcp:6006 && pnpm test-storybook --excludeTags 'skip-smoke-test'\"",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@utility animate-from-* {
|
|
2
|
-
--animate-from: --value([length, percentage]);
|
|
2
|
+
--animate-from: --value([length], [percentage]);
|
|
3
3
|
--animate-from: calc(var(--spacing) * --value(integer));
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
@utility -animate-from-* {
|
|
7
|
-
--animate-from: --value([length, percentage]);
|
|
7
|
+
--animate-from: --value([length], [percentage]);
|
|
8
8
|
--animate-from: calc(var(--spacing) * -1 * --value(integer));
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
--animate-slideBgInf:
|
|
32
|
-
@keyframes
|
|
31
|
+
--animate-slideBgInf: slideBg 10s ease-in-out linear-infinite;
|
|
32
|
+
@keyframes slideBg {
|
|
33
33
|
0% {
|
|
34
34
|
background-position:0%;
|
|
35
35
|
}
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
--animate-slideInRight:
|
|
63
|
+
--animate-slideInRight: slideInRight 500ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
64
64
|
@keyframes slideInRight {
|
|
65
65
|
from {
|
|
66
66
|
transform: translateX(var(--animate-from, -100%));
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
"pagination.aria.go-to-next-page": "Go to next page. Page {count}",
|
|
26
26
|
"pagination.aria.go-to-page": "Go to page {count}",
|
|
27
27
|
"pagination.aria.current-page": "Current page {count}",
|
|
28
|
+
"pagination.aria.go-to-first-page": "Go to first page",
|
|
29
|
+
"pagination.aria.go-to-last-page": "Go to last page",
|
|
28
30
|
"pagination.previous-page": "Prev",
|
|
29
31
|
"pagination.next-page": "Next",
|
|
30
32
|
"recorder.recording": "Recording",
|
|
@@ -115,6 +115,49 @@
|
|
|
115
115
|
--bars-fg-width: calc(--value(integer) * 1%, 50%);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
/* Mix utils can be used like bg-(--mix) mix-from-red-500 mix-to-blue-500/20 (where 20 is the percentage of "to"). It mixes with transparent if no from/to. There are also tint-* and shade-* variants to mix with white and black respectively. */
|
|
119
|
+
@utility mix-from-* {
|
|
120
|
+
--mix-from: --value(--color-*);
|
|
121
|
+
--mix: color-mix(
|
|
122
|
+
in srgb,
|
|
123
|
+
var(--mix-from),
|
|
124
|
+
var(--mix-to, transparent) var(--mix-percentage, 50%)
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@utility mix-to-* {
|
|
129
|
+
--mix-to: --value(--color-*);
|
|
130
|
+
--mix-percentage: calc(--modifier(integer) * 1%);
|
|
131
|
+
--mix: color-mix(
|
|
132
|
+
in srgb,
|
|
133
|
+
var(--mix-from),
|
|
134
|
+
var(--mix-to, transparent) var(--mix-percentage, 50%)
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@utility tint-* {
|
|
139
|
+
--mix-from: --value(--color-*);
|
|
140
|
+
--mix-to: white;
|
|
141
|
+
--mix-percentage: calc(--modifier(integer) * 1%);
|
|
142
|
+
--mix: color-mix(
|
|
143
|
+
in srgb,
|
|
144
|
+
var(--mix-from),
|
|
145
|
+
var(--mix-to) var(--mix-percentage, 20%)
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@utility shade-* {
|
|
150
|
+
--mix-from: --value(--color-*);
|
|
151
|
+
--mix-to: black;
|
|
152
|
+
--mix-percentage: calc(--modifier(integer) * 1%);
|
|
153
|
+
--mix: color-mix(
|
|
154
|
+
in srgb,
|
|
155
|
+
var(--mix-from),
|
|
156
|
+
var(--mix-to) var(--mix-percentage)
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
|
|
118
161
|
@utility scrollbar-hidden {
|
|
119
162
|
/* IE and Edge */
|
|
120
163
|
-ms-overflow-style: none;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<!-- Width 100% + 2xmargin in combination with the margins in
|
|
2
|
+
<!-- Width 100% + 2xmargin in combination with the margins in WRoot is a bit of a hack so that it looks like there's padding around the content in test mode (for storybook). We can't just absolutely position these controls or they make the container scroll. -->
|
|
3
3
|
<div class="test-controls flex gap-2 p-1 pb-10 -ml-10 w-[calc(100%_+_var(--spacing)*20)]">
|
|
4
4
|
<div class="flex-grow"/>
|
|
5
5
|
<div class="outline-indicator">
|
|
6
6
|
{{ showOutline ? "Outline Enabled" : "Outline Disabled" }}
|
|
7
7
|
</div>
|
|
8
|
-
<
|
|
8
|
+
<WDarkModeSwitcher/>
|
|
9
9
|
</div>
|
|
10
10
|
</template>
|
|
11
11
|
|
|
12
12
|
<script setup lang="ts">
|
|
13
|
-
import
|
|
13
|
+
import WDarkModeSwitcher from "../WDarkModeSwitcher/WDarkModeSwitcher.vue"
|
|
14
14
|
|
|
15
15
|
defineOptions({ name: "TestControls" })
|
|
16
16
|
defineProps<{
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import { capitalize } from "@alanscodelog/utils/capitalize"
|
|
3
|
+
import type { Meta, StoryObj } from "@storybook/vue3"
|
|
4
|
+
|
|
5
|
+
import IconFaSolidBell from "~icons/fa-solid/bell"
|
|
6
|
+
|
|
7
|
+
import * as components from "../index.js"
|
|
8
|
+
|
|
9
|
+
type ExtraTestArgs = {
|
|
10
|
+
_iconAfter?: boolean
|
|
11
|
+
}
|
|
12
|
+
const meta: Meta<typeof components.WButton> = {
|
|
13
|
+
component: components.WButton,
|
|
14
|
+
title: "Components/Button",
|
|
15
|
+
args: {
|
|
16
|
+
label: "Label",
|
|
17
|
+
...{
|
|
18
|
+
_iconAfter: true
|
|
19
|
+
} satisfies ExtraTestArgs as any
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default meta
|
|
24
|
+
type Story = StoryObj<typeof components.WButton> & { args?: ExtraTestArgs }
|
|
25
|
+
|
|
26
|
+
export const Primary: Story = {
|
|
27
|
+
render: args => {
|
|
28
|
+
const extraArgs = args as ExtraTestArgs
|
|
29
|
+
return {
|
|
30
|
+
components: {
|
|
31
|
+
...components,
|
|
32
|
+
IconFaSolidBell
|
|
33
|
+
},
|
|
34
|
+
setup: () => ({ args, capitalize }),
|
|
35
|
+
template: `
|
|
36
|
+
<div class="flex gap-4 justify-center">
|
|
37
|
+
<template v-for="type of [false, 'ok', 'warning', 'danger', 'primary', 'secondary' ]">
|
|
38
|
+
<WButton v-bind="{...args, color: type, label: !args.label ? undefined : args.label + ' ' + capitalize(type || 'false')}">
|
|
39
|
+
<template #icon>
|
|
40
|
+
<icon class="w-[1em]"><icon-fa-solid-bell /></icon>
|
|
41
|
+
</template>
|
|
42
|
+
</WButton>
|
|
43
|
+
</template>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="flex flex-col gap-4 pt-10">
|
|
46
|
+
<template v-for="type of [false, 'ok', 'warning', 'danger', 'primary', 'secondary']">
|
|
47
|
+
<WButton v-bind="{...args, color: type , label: !args.label ? undefined : args.label + ' ' + capitalize(type || 'false') }">
|
|
48
|
+
${extraArgs._iconAfter
|
|
49
|
+
? `
|
|
50
|
+
<template #icon-after>
|
|
51
|
+
<icon class="w-[1em]"><icon-fa-solid-bell /></icon>
|
|
52
|
+
</template>
|
|
53
|
+
`
|
|
54
|
+
: ``}
|
|
55
|
+
</WButton>
|
|
56
|
+
</template>
|
|
57
|
+
</div>
|
|
58
|
+
`
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const IconAfter: Story = {
|
|
64
|
+
...Primary,
|
|
65
|
+
args: {
|
|
66
|
+
...Primary.args,
|
|
67
|
+
_iconAfter: true
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const OnlyIcon: Story = {
|
|
72
|
+
...Primary,
|
|
73
|
+
args: {
|
|
74
|
+
...Primary.args,
|
|
75
|
+
label: undefined
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export const Disabled: Story = {
|
|
79
|
+
...Primary,
|
|
80
|
+
args: {
|
|
81
|
+
...Primary.args,
|
|
82
|
+
disabled: true
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export const Borderless: Story = {
|
|
86
|
+
...Primary,
|
|
87
|
+
args: {
|
|
88
|
+
...Primary.args,
|
|
89
|
+
border: false
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export const BorderlessDisabled: Story = {
|
|
93
|
+
...Primary,
|
|
94
|
+
args: {
|
|
95
|
+
...Primary.args,
|
|
96
|
+
border: false,
|
|
97
|
+
disabled: true
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export const WithDivInside: Story = {
|
|
101
|
+
render: args => ({
|
|
102
|
+
components,
|
|
103
|
+
setup: () => ({ args }),
|
|
104
|
+
template: `
|
|
105
|
+
<div class="flex gap-4 justify-center">
|
|
106
|
+
<WButton v-bind="{...args}">
|
|
107
|
+
<div>Div inside button still has a pointer cursor.</div>
|
|
108
|
+
</WButton>
|
|
109
|
+
</div>
|
|
110
|
+
`
|
|
111
|
+
})
|
|
112
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
|
-
:
|
|
4
|
-
:class="!($attrs as any).unstyle && twMerge(`
|
|
3
|
+
:class="!unstyle && twMerge(`
|
|
5
4
|
button
|
|
6
5
|
flex
|
|
7
6
|
cursor-pointer
|
|
@@ -26,7 +25,8 @@
|
|
|
26
25
|
border && `
|
|
27
26
|
transition-all
|
|
28
27
|
bg-neutral-100
|
|
29
|
-
dark:
|
|
28
|
+
dark:tint-neutral-800/10
|
|
29
|
+
dark:bg-(--mix)
|
|
30
30
|
shadow-[0_1px_1px_0]
|
|
31
31
|
shadow-neutral-950/20
|
|
32
32
|
hover:shadow-[0_1px_3px_0]
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
after:shadow-[0_1px_0_0_inset]
|
|
42
42
|
after:shadow-bg/20
|
|
43
43
|
hover:after:shadow-bg/60
|
|
44
|
+
disabled:after:hidden
|
|
44
45
|
dark:after:shadow-bg/10
|
|
45
46
|
dark:hover:after:shadow-bg/50
|
|
46
47
|
after:pointer-events-none
|
|
@@ -49,15 +50,16 @@
|
|
|
49
50
|
active:shadow-fg/20
|
|
50
51
|
active:border-transparent
|
|
51
52
|
border
|
|
52
|
-
border-
|
|
53
|
+
border-black/10
|
|
53
54
|
disabled:border-neutral-200
|
|
54
|
-
disabled:bg-neutral-
|
|
55
|
+
disabled:bg-neutral-100
|
|
55
56
|
dark:hover:shadow-neutral-950/70
|
|
56
57
|
dark:active:shadow-fg/40
|
|
57
58
|
dark:active:border-neutral-900
|
|
58
|
-
dark:border-
|
|
59
|
+
dark:border-black/50
|
|
59
60
|
dark:disabled:border-neutral-800
|
|
60
|
-
dark:disabled:bg-
|
|
61
|
+
dark:disabled:bg-(--mix)
|
|
62
|
+
dark:disabled:shade-neutral-900/10
|
|
61
63
|
`,
|
|
62
64
|
border && (!color || color === `secondary`) && `
|
|
63
65
|
after:shadow-bg/90
|
|
@@ -153,26 +155,24 @@
|
|
|
153
155
|
`,
|
|
154
156
|
($attrs as any)?.class
|
|
155
157
|
)"
|
|
156
|
-
:type="$attrs
|
|
158
|
+
:type="($attrs as any)?.type || 'button'"
|
|
157
159
|
:tabindex="0"
|
|
158
160
|
:disabled="disabled"
|
|
159
161
|
:data-border="border"
|
|
160
162
|
:data-color="color"
|
|
161
|
-
:aria-disabled="disabled"
|
|
162
163
|
v-bind="{
|
|
163
|
-
...autoTitle,
|
|
164
164
|
...$attrs,
|
|
165
|
-
class: undefined
|
|
166
|
-
...ariaLabel
|
|
165
|
+
class: undefined
|
|
167
166
|
}"
|
|
168
167
|
>
|
|
169
168
|
<slot
|
|
170
169
|
name="label"
|
|
171
|
-
v-bind="{
|
|
170
|
+
v-bind="{
|
|
171
|
+
classes: 'button--label pointer-events-none flex flex-1 items-center justify-center gap-1'
|
|
172
|
+
}"
|
|
172
173
|
>
|
|
173
|
-
<
|
|
174
|
-
:
|
|
175
|
-
class="button--label pointer-events-none flex flex-1 items-center justify-center gap-1"
|
|
174
|
+
<div
|
|
175
|
+
:class="!unstyle && 'button--label pointer-events-none flex flex-1 items-center justify-center gap-1'"
|
|
176
176
|
>
|
|
177
177
|
<slot name="icon"/>
|
|
178
178
|
<slot
|
|
@@ -183,57 +183,41 @@
|
|
|
183
183
|
</span>
|
|
184
184
|
</slot>
|
|
185
185
|
<slot name="icon-after"/>
|
|
186
|
-
</
|
|
186
|
+
</div>
|
|
187
187
|
</slot>
|
|
188
188
|
</button>
|
|
189
189
|
</template>
|
|
190
190
|
|
|
191
191
|
<script setup lang="ts">
|
|
192
192
|
import { isBlank } from "@alanscodelog/utils/isBlank"
|
|
193
|
-
import { type ButtonHTMLAttributes,
|
|
193
|
+
import { type ButtonHTMLAttributes, useAttrs } from "vue"
|
|
194
194
|
|
|
195
|
-
import {
|
|
195
|
+
import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js"
|
|
196
196
|
import { twMerge } from "../../utils/twMerge.js"
|
|
197
|
-
|
|
197
|
+
|
|
198
198
|
|
|
199
199
|
const $attrs = useAttrs()
|
|
200
200
|
|
|
201
201
|
defineOptions({
|
|
202
|
-
name: "
|
|
202
|
+
name: "WButton",
|
|
203
|
+
inheritAttrs: false
|
|
203
204
|
})
|
|
204
205
|
|
|
205
|
-
const fallbackId = getFallbackId()
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
withDefaults(defineProps<
|
|
208
|
+
& BaseInteractiveProps
|
|
209
|
+
& {
|
|
210
|
+
label?: string
|
|
211
|
+
border?: boolean
|
|
212
|
+
color?: "warning" | "ok" | "danger" | "primary" | "secondary" | false
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
& /** @vue-ignore */ Omit<ButtonHTMLAttributes, "class" | "color">
|
|
216
|
+
& /** @vue-ignore */ TailwindClassProp
|
|
217
|
+
>(), {
|
|
208
218
|
color: false,
|
|
209
219
|
label: "",
|
|
210
|
-
|
|
220
|
+
border: true
|
|
211
221
|
})
|
|
212
|
-
|
|
213
|
-
const ariaLabel = useAriaLabel(props, fallbackId)
|
|
214
|
-
const autoTitle = computed(() => ({
|
|
215
|
-
title: props.autoTitleFromAria
|
|
216
|
-
? ($attrs["aria-label"] ?? props.label) as string
|
|
217
|
-
: undefined
|
|
218
|
-
}))
|
|
219
222
|
</script>
|
|
220
223
|
|
|
221
|
-
<script lang="ts">
|
|
222
|
-
type RealProps
|
|
223
|
-
= & LinkableByIdProps
|
|
224
|
-
& LabelProps
|
|
225
|
-
& BaseInteractiveProps
|
|
226
|
-
& ButtonProps
|
|
227
|
-
|
|
228
|
-
interface Props
|
|
229
|
-
extends
|
|
230
|
-
/** @vue-ignore */
|
|
231
|
-
Partial<Omit<ButtonHTMLAttributes, "class" | "color" | "disabled">
|
|
232
|
-
& TailwindClassProp
|
|
233
|
-
& {
|
|
234
|
-
// why is this not already a part of button?
|
|
235
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
236
|
-
"aria-label": string
|
|
237
|
-
}>,
|
|
238
|
-
RealProps {}
|
|
239
|
-
</script>
|