@witchcraft/ui 0.3.26 → 0.4.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -61
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/assets/animations.css +1 -1
- package/dist/runtime/assets/locales/en.json +2 -0
- package/dist/runtime/build/WitchcraftUiResolver.js +1 -1
- package/dist/runtime/components/TestControls/TestControls.vue +3 -3
- package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
- package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
- package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
- package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
- package/dist/runtime/components/WCheckbox/WCheckbox.vue +109 -0
- package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
- package/dist/runtime/components/WColorInput/WColorInput.d.vue.ts +45 -0
- package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
- package/dist/runtime/components/WColorInput/WColorInput.vue.d.ts +45 -0
- package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
- package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
- package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
- package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +7 -6
- package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +40 -29
- package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +7 -6
- package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +109 -0
- package/dist/runtime/components/WCombobox/WCombobox.vue +402 -0
- package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +109 -0
- package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
- package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
- package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +8 -13
- package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
- package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +8 -13
- package/dist/runtime/components/WDatePicker/WDatePicker.d.vue.ts +40 -0
- package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
- package/dist/runtime/components/WDatePicker/WDatePicker.vue.d.ts +40 -0
- package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -21
- package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -21
- package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.d.vue.ts → WDatePicker/WTimeZonePicker.d.vue.ts} +1 -11
- package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
- package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue.d.ts → WDatePicker/WTimeZonePicker.vue.d.ts} +1 -11
- package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -12
- package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +0 -3
- package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +0 -3
- package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
- package/dist/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +71 -57
- package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
- package/dist/runtime/components/{Icon/Icon.vue.d.ts → WIcon/WIcon.d.vue.ts} +2 -6
- package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
- package/dist/runtime/components/{Icon/Icon.d.vue.ts → WIcon/WIcon.vue.d.ts} +2 -6
- package/dist/runtime/components/{LibMultiValues/LibMultiValues.d.vue.ts → WMultiValues/WMultiValues.d.vue.ts} +8 -14
- package/dist/runtime/components/WMultiValues/WMultiValues.vue +149 -0
- package/dist/runtime/components/{LibMultiValues/LibMultiValues.vue.d.ts → WMultiValues/WMultiValues.vue.d.ts} +8 -14
- package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
- package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +32 -47
- package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
- package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
- package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +35 -17
- package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
- package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
- package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
- package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
- package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
- package/dist/runtime/components/WPagination/WPagination.vue +182 -0
- package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
- package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
- package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
- package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
- package/dist/runtime/components/WPopover/WPopover.d.vue.ts +43 -0
- package/dist/runtime/components/WPopover/WPopover.vue +138 -0
- package/dist/runtime/components/WPopover/WPopover.vue.d.ts +43 -0
- package/dist/runtime/components/WPopup/WPopup.d.vue.ts +41 -0
- package/dist/runtime/components/WPopup/WPopup.vue +74 -0
- package/dist/runtime/components/WPopup/WPopup.vue.d.ts +41 -0
- package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +14 -18
- package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
- package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +14 -18
- package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +14 -29
- package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
- package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +14 -29
- package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +6 -5
- package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
- package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +6 -5
- package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.d.vue.ts → WSimpleInput/WSimpleInput.d.vue.ts} +9 -16
- package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +12 -23
- package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue.d.ts → WSimpleInput/WSimpleInput.vue.d.ts} +9 -16
- package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
- package/dist/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +13 -14
- package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
- package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
- package/dist/runtime/components/WTooltip/WTooltip.vue +111 -0
- package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
- package/dist/runtime/components/index.d.ts +20 -20
- package/dist/runtime/components/index.js +20 -20
- package/dist/runtime/composables/index.d.ts +4 -4
- package/dist/runtime/composables/index.js +4 -4
- package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
- package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
- package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
- package/dist/runtime/composables/useDisplayForReka.js +16 -0
- package/dist/runtime/composables/useFallbackId.d.ts +3 -0
- package/dist/runtime/composables/useFallbackId.js +5 -0
- package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
- package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
- package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
- package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
- package/dist/runtime/composables/useSetupDarkMode.js +90 -4
- package/dist/runtime/helpers/NotificationHandler.d.ts +2 -2
- package/dist/runtime/injectionKeys.d.ts +1 -5
- package/dist/runtime/injectionKeys.js +0 -2
- package/dist/runtime/types/index.d.ts +85 -27
- package/dist/runtime/types/index.js +1 -0
- package/package.json +1 -1
- package/src/module.ts +1 -1
- package/src/runtime/assets/animations.css +3 -3
- package/src/runtime/assets/locales/en.json +2 -0
- package/src/runtime/build/WitchcraftUiResolver.ts +1 -1
- package/src/runtime/components/TestControls/TestControls.vue +3 -3
- package/src/runtime/components/WButton/WButton.stories.ts +112 -0
- package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
- package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
- package/src/runtime/components/WCheckbox/WCheckbox.vue +123 -0
- package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
- package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
- package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
- package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
- package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +43 -32
- package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
- package/src/runtime/components/WCombobox/WCombobox.vue +446 -0
- package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
- package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
- package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
- package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
- package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
- package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -22
- package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -22
- package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
- package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
- package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +8 -11
- package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
- package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +7 -7
- package/src/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +95 -98
- package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
- package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
- package/src/runtime/components/WMultiValues/WMultiValues.vue +161 -0
- package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +9 -9
- package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +43 -66
- package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
- package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +51 -29
- package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
- package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
- package/src/runtime/components/WPagination/WPagination.vue +207 -0
- package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
- package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
- package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
- package/src/runtime/components/WPopover/WPopover.vue +161 -0
- package/src/runtime/components/WPopup/WPopup.stories.ts +60 -0
- package/src/runtime/components/WPopup/WPopup.vue +93 -0
- package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
- package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
- package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
- package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
- package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
- package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
- package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +27 -44
- package/src/runtime/components/{LibTable/LibTable.stories.ts → WTable/WTable.stories.ts} +60 -52
- package/src/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +85 -87
- package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
- package/src/runtime/components/WTooltip/WTooltip.vue +126 -0
- package/src/runtime/components/index.ts +20 -20
- package/src/runtime/composables/index.ts +4 -4
- package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
- package/src/runtime/composables/useDisplayForReka.ts +37 -0
- package/src/runtime/composables/useFallbackId.ts +6 -0
- package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
- package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
- package/src/runtime/composables/useSetupDarkMode.ts +122 -4
- package/src/runtime/helpers/NotificationHandler.ts +2 -2
- package/src/runtime/injectionKeys.ts +1 -7
- package/src/runtime/types/index.ts +105 -32
- package/types/components.d.ts +13 -15
- package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -6
- package/dist/runtime/components/Aria/Aria.vue +0 -16
- package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -6
- package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -37
- package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -37
- package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -41
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -41
- package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +0 -64
- package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
- package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +0 -64
- package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +0 -191
- package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +0 -191
- package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -46
- package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -46
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -256
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -256
- package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -27
- package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
- package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -27
- package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
- package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -45
- package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -45
- package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -15
- package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -15
- package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -105
- package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
- package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -105
- package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -15
- package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -15
- package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -52
- package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
- package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -52
- package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
- package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -99
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -99
- package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -125
- package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -125
- package/dist/runtime/components/Template/NAME.d.vue.ts +0 -18
- package/dist/runtime/components/Template/NAME.vue +0 -27
- package/dist/runtime/components/Template/NAME.vue.d.ts +0 -18
- package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
- package/dist/runtime/components/Template/TemplateStory.js +0 -22
- package/dist/runtime/components/shared/props.d.ts +0 -171
- package/dist/runtime/components/shared/props.js +0 -2
- package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
- package/dist/runtime/composables/useAriaLabel.js +0 -15
- package/dist/runtime/composables/useDarkMode.d.ts +0 -77
- package/dist/runtime/composables/useDarkMode.js +0 -89
- package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
- package/dist/runtime/composables/useDivideAttrs.js +0 -27
- package/dist/runtime/composables/useSuggestions.d.ts +0 -40
- package/dist/runtime/composables/useSuggestions.js +0 -263
- package/src/runtime/components/Aria/Aria.vue +0 -26
- package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
- package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -131
- package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -419
- package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
- package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
- package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
- package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -131
- package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
- package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
- package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
- package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
- package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
- package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
- package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
- package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
- package/src/runtime/components/Template/NAME.vue +0 -49
- package/src/runtime/components/Template/TemplateStory.ts +0 -37
- package/src/runtime/components/shared/props.ts +0 -199
- package/src/runtime/composables/useAriaLabel.ts +0 -23
- package/src/runtime/composables/useDarkMode.ts +0 -199
- package/src/runtime/composables/useDivideAttrs.ts +0 -53
- package/src/runtime/composables/useSuggestions.ts +0 -339
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
- /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.d.vue.ts → WDatePicker/WRangeDatePicker.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue.d.ts → WDatePicker/WRangeDatePicker.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
- /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
- /package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
- /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.d.vue.ts → WNotifications/WNotificationTestMessageComponent.d.vue.ts} +0 -0
- /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
- /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue.d.ts → WNotifications/WNotificationTestMessageComponent.vue.d.ts} +0 -0
- /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.d.ts +0 -0
- /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.js +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
- /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
- /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
- /package/src/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
- /package/src/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.ts +0 -0
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
-
:id="id"
|
|
4
3
|
tabindex="-1"
|
|
5
4
|
:class="twMerge(
|
|
6
5
|
showOutline ? 'group outlined outlined-visible' : '[&_*]:outline-hidden',
|
|
7
6
|
darkMode && ' dark',
|
|
8
|
-
|
|
7
|
+
wrapperAttrs?.class
|
|
9
8
|
)"
|
|
10
|
-
v-bind="{
|
|
9
|
+
v-bind="{
|
|
10
|
+
id: 'app',
|
|
11
|
+
...wrapperAttrs,
|
|
12
|
+
class: void 0
|
|
13
|
+
}"
|
|
11
14
|
:ref="handleRef"
|
|
12
15
|
>
|
|
13
16
|
<!-- id root is useful for teleports, so they are at the topmost level where they can still be styled -->
|
|
14
17
|
<!-- See TestControls for why the margins here -->
|
|
15
18
|
<div
|
|
16
19
|
id="root"
|
|
17
|
-
v-bind="{ ...$attrs
|
|
20
|
+
v-bind="{ ...$attrs, class: void 0 }"
|
|
18
21
|
:class="twMerge(
|
|
19
22
|
`
|
|
20
|
-
dark:bg-
|
|
21
|
-
dark:text-
|
|
22
|
-
bg-
|
|
23
|
-
text-
|
|
23
|
+
dark:bg-neutral-900
|
|
24
|
+
dark:text-white
|
|
25
|
+
bg-neutral-50
|
|
26
|
+
text-black
|
|
24
27
|
`,
|
|
25
28
|
testWrapperMode && `
|
|
26
29
|
px-10
|
|
@@ -31,7 +34,7 @@
|
|
|
31
34
|
flex
|
|
32
35
|
flex-col
|
|
33
36
|
`,
|
|
34
|
-
$attrs.
|
|
37
|
+
$attrs.class
|
|
35
38
|
)"
|
|
36
39
|
>
|
|
37
40
|
<TestControls
|
|
@@ -49,9 +52,8 @@
|
|
|
49
52
|
|
|
50
53
|
<script setup>
|
|
51
54
|
import { unreachable } from "@alanscodelog/utils/unreachable";
|
|
52
|
-
import { computed, onBeforeUnmount, onMounted, ref, toRaw } from "vue";
|
|
55
|
+
import { computed, onBeforeUnmount, onMounted, ref, toRaw, useAttrs } from "vue";
|
|
53
56
|
import { useAccesibilityOutline } from "../../composables/useAccesibilityOutline.js";
|
|
54
|
-
import { useDivideAttrs } from "../../composables/useDivideAttrs.js";
|
|
55
57
|
import { useNotificationHandler } from "../../composables/useNotificationHandler.js";
|
|
56
58
|
import { useSetupDarkMode } from "../../composables/useSetupDarkMode.js";
|
|
57
59
|
import { useSetupI18n } from "../../composables/useSetupI18n.js";
|
|
@@ -60,21 +62,21 @@ import { useShowDevOnlyKey } from "../../composables/useShowDevOnlyKey.js";
|
|
|
60
62
|
import { NotificationHandler } from "../../helpers/NotificationHandler.js";
|
|
61
63
|
import { theme as defaultTheme } from "../../theme.js";
|
|
62
64
|
import { twMerge } from "../../utils/twMerge.js";
|
|
63
|
-
import Notifications from "../LibNotifications/LibNotifications.vue";
|
|
64
65
|
import TestControls from "../TestControls/TestControls.vue";
|
|
65
|
-
|
|
66
|
+
import Notifications from "../WNotifications/WNotifications.vue";
|
|
66
67
|
defineOptions({ name: "Root", inheritAttrs: false, suspensible: false });
|
|
68
|
+
const $attrs = useAttrs();
|
|
67
69
|
const props = defineProps({
|
|
68
70
|
theme: { type: Object, required: false, default: void 0 },
|
|
69
71
|
outline: { type: Boolean, required: false, default: true },
|
|
70
72
|
forceOutline: { type: Boolean, required: false, default: false },
|
|
71
73
|
testWrapperMode: { type: Boolean, required: false, default: false },
|
|
72
|
-
id: { type: String, required: false, default: "app" },
|
|
73
74
|
getRef: { type: Function, required: false, default: void 0 },
|
|
74
75
|
isClientSide: { type: Boolean, required: false, default: true },
|
|
75
76
|
useBuiltinTranslations: { type: Boolean, required: false, default: true },
|
|
76
77
|
useNotifications: { type: Boolean, required: false, default: true },
|
|
77
|
-
notificationHandler: { type: Object, required: false, default: void 0 }
|
|
78
|
+
notificationHandler: { type: Object, required: false, default: void 0 },
|
|
79
|
+
wrapperAttrs: { type: Object, required: false }
|
|
78
80
|
});
|
|
79
81
|
const el = ref(null);
|
|
80
82
|
function handleRef(_) {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { Theme } from "metamorphosis";
|
|
2
|
+
import type { HTMLAttributes } from "vue";
|
|
2
3
|
import { NotificationHandler } from "../../helpers/NotificationHandler.js";
|
|
4
|
+
import type { TailwindClassProp } from "../../types/index.js";
|
|
3
5
|
type __VLS_Props = {
|
|
4
6
|
theme?: Theme;
|
|
5
7
|
outline?: boolean;
|
|
6
8
|
forceOutline?: boolean;
|
|
7
9
|
testWrapperMode?: boolean;
|
|
8
|
-
id?: string;
|
|
9
10
|
/** You can set a ref to the root element by passing :getRef="_ => el = _" */
|
|
10
11
|
getRef?: (el: HTMLElement | null) => void;
|
|
11
12
|
/** True by default, should be passed import.meta.client if using nuxt, or false when running server side. */
|
|
@@ -13,19 +14,19 @@ type __VLS_Props = {
|
|
|
13
14
|
useBuiltinTranslations?: boolean;
|
|
14
15
|
useNotifications?: boolean;
|
|
15
16
|
notificationHandler?: NotificationHandler;
|
|
17
|
+
wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp;
|
|
16
18
|
};
|
|
17
19
|
declare var __VLS_11: {};
|
|
18
20
|
type __VLS_Slots = {} & {
|
|
19
21
|
default?: (props: typeof __VLS_11) => any;
|
|
20
22
|
};
|
|
21
23
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
22
|
-
darkMode: import("../../
|
|
24
|
+
darkMode: import("../../main.lib.js").DarkModeState & import("../../main.lib.js").DarkModeCommands;
|
|
23
25
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
24
|
-
theme: Theme;
|
|
25
|
-
id: string;
|
|
26
|
-
isClientSide: boolean;
|
|
27
26
|
useBuiltinTranslations: boolean;
|
|
27
|
+
theme: Theme;
|
|
28
28
|
outline: boolean;
|
|
29
|
+
isClientSide: boolean;
|
|
29
30
|
forceOutline: boolean;
|
|
30
31
|
testWrapperMode: boolean;
|
|
31
32
|
getRef: (el: HTMLElement | null) => void;
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
import { type InputHTMLAttributes } from "vue";
|
|
2
|
-
import {
|
|
3
|
-
type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
|
|
4
|
-
placeholder?: InputHTMLAttributes["placeholder"];
|
|
5
|
-
disabled?: InputHTMLAttributes["disabled"];
|
|
6
|
-
id?: InputHTMLAttributes["id"];
|
|
7
|
-
type?: InputHTMLAttributes["type"];
|
|
8
|
-
valid?: boolean;
|
|
9
|
-
};
|
|
10
|
-
interface Props extends
|
|
11
|
-
/** @vue-ignore */
|
|
12
|
-
Partial<Omit<InputHTMLAttributes, "class" | "readonly" | "disabled" | "onSubmit" | "onInput" | "autocomplete"> & TailwindClassProp>, RealProps {
|
|
13
|
-
}
|
|
14
|
-
declare const _default: typeof __VLS_export;
|
|
15
|
-
export default _default;
|
|
2
|
+
import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js";
|
|
16
3
|
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
17
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<(
|
|
4
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(Omit<InputHTMLAttributes, "class" | "onInput" | "onSubmit" | "disabled" | "readonly" | "autocomplete"> & TailwindClassProp & Pick<BaseInteractiveProps, "border" | "unstyle"> & {
|
|
5
|
+
id?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
valid?: boolean;
|
|
8
|
+
} & {
|
|
18
9
|
modelValue: T;
|
|
19
10
|
}) & {
|
|
20
|
-
onInput?: ((val: InputEvent) => any) | undefined;
|
|
21
11
|
onSubmit?: ((val: T) => any) | undefined;
|
|
12
|
+
onInput?: ((val: InputEvent) => any) | undefined;
|
|
22
13
|
"onUpdate:modelValue"?: ((value: T) => any) | undefined;
|
|
23
14
|
}> & (typeof globalThis extends {
|
|
24
15
|
__VLS_PROPS_FALLBACK: infer P;
|
|
@@ -33,6 +24,8 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
|
|
|
33
24
|
}>) => import("vue").VNode & {
|
|
34
25
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
35
26
|
};
|
|
27
|
+
declare const _default: typeof __VLS_export;
|
|
28
|
+
export default _default;
|
|
36
29
|
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
37
30
|
[K in keyof T]: T[K];
|
|
38
31
|
} : {
|
package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<input
|
|
3
|
-
:id="
|
|
4
|
-
:class="twMerge(
|
|
3
|
+
:id="finalId"
|
|
4
|
+
:class="!unstyle && twMerge(
|
|
5
5
|
`
|
|
6
6
|
simple-input
|
|
7
7
|
flex-1
|
|
@@ -71,12 +71,11 @@
|
|
|
71
71
|
)"
|
|
72
72
|
:data-border="border"
|
|
73
73
|
:data-invalid="!valid"
|
|
74
|
-
:type="type"
|
|
75
|
-
:placeholder="placeholder"
|
|
76
|
-
:disabled="disabled"
|
|
77
|
-
:readonly="readonly"
|
|
78
74
|
v-model="modelValue"
|
|
79
|
-
v-bind="{
|
|
75
|
+
v-bind="{
|
|
76
|
+
...$attrs,
|
|
77
|
+
class: void 0
|
|
78
|
+
}"
|
|
80
79
|
@keydown="handleKeydown"
|
|
81
80
|
@input="emit('input', $event)"
|
|
82
81
|
>
|
|
@@ -84,39 +83,29 @@
|
|
|
84
83
|
|
|
85
84
|
<script setup>
|
|
86
85
|
import { useAttrs } from "vue";
|
|
87
|
-
import {
|
|
86
|
+
import { useFallbackId } from "../../composables/useFallbackId.js";
|
|
88
87
|
import { usePreHydrationValue } from "../../composables/usePreHydrationValue.js";
|
|
89
88
|
import { hasModifiers } from "../../helpers/hasModifiers.js";
|
|
90
89
|
import { twMerge } from "../../utils/twMerge.js";
|
|
91
|
-
import { getFallbackId } from "../shared/props.js";
|
|
92
90
|
defineOptions({
|
|
93
|
-
name: "
|
|
91
|
+
name: "WSimpleInput",
|
|
94
92
|
inheritAttrs: false
|
|
95
93
|
});
|
|
96
|
-
const fallbackId = getFallbackId();
|
|
97
94
|
const props = defineProps({
|
|
95
|
+
unstyle: { type: Boolean, required: false },
|
|
96
|
+
border: { type: Boolean, required: false, default: true },
|
|
98
97
|
id: { type: String, required: false, default: "" },
|
|
99
98
|
label: { type: String, required: false, default: "" },
|
|
100
|
-
disabled: { type: [Boolean, String], required: false, default: false },
|
|
101
|
-
readonly: { type: Boolean, required: false, default: false },
|
|
102
|
-
border: { type: Boolean, required: false, default: true },
|
|
103
|
-
unstyle: { type: Boolean, required: false, default: false },
|
|
104
|
-
placeholder: { type: null, required: false, default: "" },
|
|
105
|
-
type: { type: null, required: false, default: void 0 },
|
|
106
99
|
valid: { type: Boolean, required: false, default: true }
|
|
107
100
|
});
|
|
101
|
+
const finalId = useFallbackId(props);
|
|
108
102
|
const modelValue = defineModel({ type: null, ...{ required: true } });
|
|
109
103
|
const emit = defineEmits(["submit", "input"]);
|
|
110
104
|
const $attrs = useAttrs();
|
|
111
|
-
const ariaLabel = useAriaLabel(props, fallbackId);
|
|
112
105
|
function handleKeydown(e) {
|
|
113
106
|
if (e.key === "Enter" && !hasModifiers(e)) {
|
|
114
107
|
emit("submit", modelValue.value);
|
|
115
108
|
}
|
|
116
109
|
}
|
|
117
|
-
usePreHydrationValue(
|
|
118
|
-
</script>
|
|
119
|
-
|
|
120
|
-
<script>
|
|
121
|
-
|
|
110
|
+
usePreHydrationValue(finalId, modelValue);
|
|
122
111
|
</script>
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
import { type InputHTMLAttributes } from "vue";
|
|
2
|
-
import {
|
|
3
|
-
type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
|
|
4
|
-
placeholder?: InputHTMLAttributes["placeholder"];
|
|
5
|
-
disabled?: InputHTMLAttributes["disabled"];
|
|
6
|
-
id?: InputHTMLAttributes["id"];
|
|
7
|
-
type?: InputHTMLAttributes["type"];
|
|
8
|
-
valid?: boolean;
|
|
9
|
-
};
|
|
10
|
-
interface Props extends
|
|
11
|
-
/** @vue-ignore */
|
|
12
|
-
Partial<Omit<InputHTMLAttributes, "class" | "readonly" | "disabled" | "onSubmit" | "onInput" | "autocomplete"> & TailwindClassProp>, RealProps {
|
|
13
|
-
}
|
|
14
|
-
declare const _default: typeof __VLS_export;
|
|
15
|
-
export default _default;
|
|
2
|
+
import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js";
|
|
16
3
|
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
17
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<(
|
|
4
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(Omit<InputHTMLAttributes, "class" | "onInput" | "onSubmit" | "disabled" | "readonly" | "autocomplete"> & TailwindClassProp & Pick<BaseInteractiveProps, "border" | "unstyle"> & {
|
|
5
|
+
id?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
valid?: boolean;
|
|
8
|
+
} & {
|
|
18
9
|
modelValue: T;
|
|
19
10
|
}) & {
|
|
20
|
-
onInput?: ((val: InputEvent) => any) | undefined;
|
|
21
11
|
onSubmit?: ((val: T) => any) | undefined;
|
|
12
|
+
onInput?: ((val: InputEvent) => any) | undefined;
|
|
22
13
|
"onUpdate:modelValue"?: ((value: T) => any) | undefined;
|
|
23
14
|
}> & (typeof globalThis extends {
|
|
24
15
|
__VLS_PROPS_FALLBACK: infer P;
|
|
@@ -33,6 +24,8 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
|
|
|
33
24
|
}>) => import("vue").VNode & {
|
|
34
25
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
35
26
|
};
|
|
27
|
+
declare const _default: typeof __VLS_export;
|
|
28
|
+
export default _default;
|
|
36
29
|
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
37
30
|
[K in keyof T]: T[K];
|
|
38
31
|
} : {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { type VirtualizerOptions } from "@tanstack/vue-virtual";
|
|
2
|
+
import { type HTMLAttributes, type TableHTMLAttributes } from "vue";
|
|
3
|
+
import type { ResizableOptions, TableColConfig, TailwindClassProp } from "../../types/index.js";
|
|
4
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
5
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<{
|
|
6
|
+
resizable?: Partial<ResizableOptions>;
|
|
7
|
+
values: T[];
|
|
8
|
+
/** Let's the table know the shape of the data since values might be empty. */
|
|
9
|
+
cols?: (keyof T)[];
|
|
10
|
+
rounded?: boolean;
|
|
11
|
+
border?: boolean;
|
|
12
|
+
cellBorder?: boolean;
|
|
13
|
+
/** Disables the header. This also sets the selector to `tr:first-child > td` instead to avoid issues with the vResizableCols directive. */
|
|
14
|
+
header?: boolean;
|
|
15
|
+
colConfig?: TableColConfig<T>;
|
|
16
|
+
/**
|
|
17
|
+
* See tanstack/vue-virtual {@link https://tanstack.com/virtual/latest/docs/api/virtualizer}
|
|
18
|
+
*
|
|
19
|
+
* The defaults are:
|
|
20
|
+
*
|
|
21
|
+
* - enabled: false
|
|
22
|
+
* - method: "fixed"
|
|
23
|
+
* - overscan: (50 if fixed, 10 if dynamic)
|
|
24
|
+
* - estimateSize: () => { return 33 }
|
|
25
|
+
*
|
|
26
|
+
* This also has an additional option, `method`, which can be set to `fixed` or `dynamic` (experimental).
|
|
27
|
+
*
|
|
28
|
+
* Notes:
|
|
29
|
+
*
|
|
30
|
+
* - Because of how virtualization works, initial layout (before .resizable-cols-setup class is applied) will only have access to the headers and not the rows. This can cause cols to look very small, especially if using resizable.fitWidth false.
|
|
31
|
+
*
|
|
32
|
+
* ### Fixed
|
|
33
|
+
*
|
|
34
|
+
* `fixed` is the default and will set the height of ALL items to the height of the first item onMounted (tanstack does not do this and if your estimateSize if off, the scrolling is weird).
|
|
35
|
+
*
|
|
36
|
+
* Since the table now truncates rows by default, they will always be the same height unless you change the inner styling. In fixed mode, `forceRecalculateFixedVirtualizer` is exposed if you need to force re-calculation.
|
|
37
|
+
*
|
|
38
|
+
* If using slots, be sure to at least pass the `class` slot prop to the td element. `style` with width is also supplied but is not required if you're displaying the table as a table.
|
|
39
|
+
*
|
|
40
|
+
* ### Dynamic (experimental)
|
|
41
|
+
*
|
|
42
|
+
* In `dynamic` mode we use tanstack's measureElement method. This is more expensive, but it will work with any heights.
|
|
43
|
+
*
|
|
44
|
+
* Dynamic mode also requires the table displays itself using grid and flex post setup as otherwise dynamic mode doesn't work.
|
|
45
|
+
*
|
|
46
|
+
* You don't need to do anything unless using slots. If using slots, pass the given `ref` slot prop to ref (internally this is tanstack's measureElement) and the class and style slot props at the very least:
|
|
47
|
+
* ```vue
|
|
48
|
+
* <template #[`${colName}`]="slotProps">
|
|
49
|
+
* <td
|
|
50
|
+
* :ref="slotProps.ref"
|
|
51
|
+
* :class="slotProps.class"
|
|
52
|
+
* :style="slotProps.style"
|
|
53
|
+
* >
|
|
54
|
+
* {{ slotProps.value }}
|
|
55
|
+
* </td>
|
|
56
|
+
* </template>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
virtualizerOptions?: Partial<VirtualizerOptions<any, any>> & {
|
|
60
|
+
method?: "fixed" | "dynamic";
|
|
61
|
+
};
|
|
62
|
+
/** Whether to enable sticky header styles. This requires `border:false`. This moves the border to the wrapper and styles a straight border between the scroll bar and the rounded border. */
|
|
63
|
+
stickyHeader?: boolean;
|
|
64
|
+
/** Which key to use for the rows (only if not using virtualization). */
|
|
65
|
+
itemKey?: keyof T | ((item: T) => string);
|
|
66
|
+
/** Pass attributes to the wrapper div. To pass to the table you can use regular top level attributes. */
|
|
67
|
+
wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp;
|
|
68
|
+
} & Omit<TableHTMLAttributes, "class" | "disabled" | "readonly"> & TailwindClassProp> & (typeof globalThis extends {
|
|
69
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
70
|
+
} ? P : {});
|
|
71
|
+
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
72
|
+
forceRecalculateFixedVirtualizer: () => void;
|
|
73
|
+
}>) => void;
|
|
74
|
+
attrs: any;
|
|
75
|
+
slots: {
|
|
76
|
+
[x: `header-${string}`]: ((props: {
|
|
77
|
+
colKey: keyof T;
|
|
78
|
+
config: any;
|
|
79
|
+
style: {
|
|
80
|
+
width: undefined;
|
|
81
|
+
};
|
|
82
|
+
class: string | undefined;
|
|
83
|
+
}) => any) | undefined;
|
|
84
|
+
} & { [K in NonNullable<keyof T>]?: ((props: {
|
|
85
|
+
class: string | undefined;
|
|
86
|
+
style: {
|
|
87
|
+
width: undefined;
|
|
88
|
+
};
|
|
89
|
+
item: T | undefined;
|
|
90
|
+
value: NonNullable<T>[keyof T];
|
|
91
|
+
}) => any) | undefined; };
|
|
92
|
+
emit: {};
|
|
93
|
+
}>) => import("vue").VNode & {
|
|
94
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
95
|
+
};
|
|
96
|
+
declare const _default: typeof __VLS_export;
|
|
97
|
+
export default _default;
|
|
98
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
99
|
+
[K in keyof T]: T[K];
|
|
100
|
+
} : {
|
|
101
|
+
[K in keyof T as K]: T[K];
|
|
102
|
+
}) & {};
|
|
@@ -51,8 +51,9 @@
|
|
|
51
51
|
mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
|
|
52
52
|
relative
|
|
53
53
|
`,
|
|
54
|
-
|
|
54
|
+
wrapperAttrs?.class
|
|
55
55
|
)"
|
|
56
|
+
v-bind="{ ...wrapperAttrs, class: void 0 }"
|
|
56
57
|
ref="parentRef"
|
|
57
58
|
>
|
|
58
59
|
<div
|
|
@@ -63,10 +64,9 @@
|
|
|
63
64
|
>
|
|
64
65
|
<!-- https://github.com/TanStack/virtual/issues/640#issuecomment-2795731690 -->
|
|
65
66
|
<table
|
|
66
|
-
:style="{
|
|
67
|
-
...stickyHeader && mergedVirtualizerOpts.enabled ? { '--table-sticky-fix': `${totalSize - tableHeight}px` } : {}
|
|
68
|
-
|
|
69
|
-
}"
|
|
67
|
+
:style="[{
|
|
68
|
+
...stickyHeader && mergedVirtualizerOpts.enabled ? { '--table-sticky-fix': `${totalSize - tableHeight}px` } : {}
|
|
69
|
+
}, $attrs?.style]"
|
|
70
70
|
:class="twMerge(
|
|
71
71
|
`
|
|
72
72
|
table
|
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
`,
|
|
108
108
|
$attrs.class
|
|
109
109
|
)"
|
|
110
|
+
v-bind="{ ...$attrs, class: void 0, style: void 0 }"
|
|
110
111
|
v-resizable-cols="resizableOptions"
|
|
111
112
|
>
|
|
112
113
|
<thead
|
|
@@ -177,7 +178,7 @@
|
|
|
177
178
|
:style="{
|
|
178
179
|
...mergedVirtualizerOpts.enabled ? {
|
|
179
180
|
transform: mergedVirtualizerOpts.method === 'fixed' ? `translateY(${virtual.start - index * virtual.size}px)` : `translateY(${virtual.start}px)`,
|
|
180
|
-
height: `${virtual.size}px`
|
|
181
|
+
height: mergedVirtualizerOpts.method === 'fixed' ? `${virtual.size}px` : void 0
|
|
181
182
|
} : {}
|
|
182
183
|
}"
|
|
183
184
|
:data-index="virtual.index"
|
|
@@ -214,17 +215,18 @@
|
|
|
214
215
|
import { keys } from "@alanscodelog/utils/keys";
|
|
215
216
|
import { throttle } from "@alanscodelog/utils/throttle";
|
|
216
217
|
import { useVirtualizer } from "@tanstack/vue-virtual";
|
|
217
|
-
import { computed, onMounted, ref } from "vue";
|
|
218
|
+
import { computed, onMounted, ref, useAttrs } from "vue";
|
|
218
219
|
import { useGlobalResizeObserver } from "../../composables/useGlobalResizeObserver.js";
|
|
219
220
|
import { vResizableCols } from "../../directives/vResizableCols.js";
|
|
220
221
|
import { twMerge } from "../../utils/twMerge.js";
|
|
221
222
|
defineOptions({
|
|
222
|
-
name: "
|
|
223
|
+
name: "WTable",
|
|
223
224
|
inheritAttrs: false
|
|
224
225
|
});
|
|
226
|
+
const $attrs = useAttrs();
|
|
225
227
|
const props = defineProps({
|
|
226
228
|
resizable: { type: Object, required: false, default: () => ({}) },
|
|
227
|
-
values: { type: Array, required:
|
|
229
|
+
values: { type: Array, required: true },
|
|
228
230
|
cols: { type: Array, required: false, default: () => [] },
|
|
229
231
|
rounded: { type: Boolean, required: false, default: true },
|
|
230
232
|
border: { type: Boolean, required: false, default: true },
|
|
@@ -233,7 +235,8 @@ const props = defineProps({
|
|
|
233
235
|
colConfig: { type: Object, required: false, default: () => ({}) },
|
|
234
236
|
virtualizerOptions: { type: Object, required: false, default: () => ({}) },
|
|
235
237
|
stickyHeader: { type: Boolean, required: false },
|
|
236
|
-
itemKey: { type:
|
|
238
|
+
itemKey: { type: Function, required: false, skipCheck: true },
|
|
239
|
+
wrapperAttrs: { type: Object, required: false }
|
|
237
240
|
});
|
|
238
241
|
const widths = ref([]);
|
|
239
242
|
const isPostSetup = ref(false);
|
|
@@ -365,7 +368,3 @@ defineExpose({
|
|
|
365
368
|
forceRecalculateFixedVirtualizer
|
|
366
369
|
});
|
|
367
370
|
</script>
|
|
368
|
-
|
|
369
|
-
<script>
|
|
370
|
-
|
|
371
|
-
</script>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { type VirtualizerOptions } from "@tanstack/vue-virtual";
|
|
2
|
+
import { type HTMLAttributes, type TableHTMLAttributes } from "vue";
|
|
3
|
+
import type { ResizableOptions, TableColConfig, TailwindClassProp } from "../../types/index.js";
|
|
4
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
5
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<{
|
|
6
|
+
resizable?: Partial<ResizableOptions>;
|
|
7
|
+
values: T[];
|
|
8
|
+
/** Let's the table know the shape of the data since values might be empty. */
|
|
9
|
+
cols?: (keyof T)[];
|
|
10
|
+
rounded?: boolean;
|
|
11
|
+
border?: boolean;
|
|
12
|
+
cellBorder?: boolean;
|
|
13
|
+
/** Disables the header. This also sets the selector to `tr:first-child > td` instead to avoid issues with the vResizableCols directive. */
|
|
14
|
+
header?: boolean;
|
|
15
|
+
colConfig?: TableColConfig<T>;
|
|
16
|
+
/**
|
|
17
|
+
* See tanstack/vue-virtual {@link https://tanstack.com/virtual/latest/docs/api/virtualizer}
|
|
18
|
+
*
|
|
19
|
+
* The defaults are:
|
|
20
|
+
*
|
|
21
|
+
* - enabled: false
|
|
22
|
+
* - method: "fixed"
|
|
23
|
+
* - overscan: (50 if fixed, 10 if dynamic)
|
|
24
|
+
* - estimateSize: () => { return 33 }
|
|
25
|
+
*
|
|
26
|
+
* This also has an additional option, `method`, which can be set to `fixed` or `dynamic` (experimental).
|
|
27
|
+
*
|
|
28
|
+
* Notes:
|
|
29
|
+
*
|
|
30
|
+
* - Because of how virtualization works, initial layout (before .resizable-cols-setup class is applied) will only have access to the headers and not the rows. This can cause cols to look very small, especially if using resizable.fitWidth false.
|
|
31
|
+
*
|
|
32
|
+
* ### Fixed
|
|
33
|
+
*
|
|
34
|
+
* `fixed` is the default and will set the height of ALL items to the height of the first item onMounted (tanstack does not do this and if your estimateSize if off, the scrolling is weird).
|
|
35
|
+
*
|
|
36
|
+
* Since the table now truncates rows by default, they will always be the same height unless you change the inner styling. In fixed mode, `forceRecalculateFixedVirtualizer` is exposed if you need to force re-calculation.
|
|
37
|
+
*
|
|
38
|
+
* If using slots, be sure to at least pass the `class` slot prop to the td element. `style` with width is also supplied but is not required if you're displaying the table as a table.
|
|
39
|
+
*
|
|
40
|
+
* ### Dynamic (experimental)
|
|
41
|
+
*
|
|
42
|
+
* In `dynamic` mode we use tanstack's measureElement method. This is more expensive, but it will work with any heights.
|
|
43
|
+
*
|
|
44
|
+
* Dynamic mode also requires the table displays itself using grid and flex post setup as otherwise dynamic mode doesn't work.
|
|
45
|
+
*
|
|
46
|
+
* You don't need to do anything unless using slots. If using slots, pass the given `ref` slot prop to ref (internally this is tanstack's measureElement) and the class and style slot props at the very least:
|
|
47
|
+
* ```vue
|
|
48
|
+
* <template #[`${colName}`]="slotProps">
|
|
49
|
+
* <td
|
|
50
|
+
* :ref="slotProps.ref"
|
|
51
|
+
* :class="slotProps.class"
|
|
52
|
+
* :style="slotProps.style"
|
|
53
|
+
* >
|
|
54
|
+
* {{ slotProps.value }}
|
|
55
|
+
* </td>
|
|
56
|
+
* </template>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
virtualizerOptions?: Partial<VirtualizerOptions<any, any>> & {
|
|
60
|
+
method?: "fixed" | "dynamic";
|
|
61
|
+
};
|
|
62
|
+
/** Whether to enable sticky header styles. This requires `border:false`. This moves the border to the wrapper and styles a straight border between the scroll bar and the rounded border. */
|
|
63
|
+
stickyHeader?: boolean;
|
|
64
|
+
/** Which key to use for the rows (only if not using virtualization). */
|
|
65
|
+
itemKey?: keyof T | ((item: T) => string);
|
|
66
|
+
/** Pass attributes to the wrapper div. To pass to the table you can use regular top level attributes. */
|
|
67
|
+
wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp;
|
|
68
|
+
} & Omit<TableHTMLAttributes, "class" | "disabled" | "readonly"> & TailwindClassProp> & (typeof globalThis extends {
|
|
69
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
70
|
+
} ? P : {});
|
|
71
|
+
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
72
|
+
forceRecalculateFixedVirtualizer: () => void;
|
|
73
|
+
}>) => void;
|
|
74
|
+
attrs: any;
|
|
75
|
+
slots: {
|
|
76
|
+
[x: `header-${string}`]: ((props: {
|
|
77
|
+
colKey: keyof T;
|
|
78
|
+
config: any;
|
|
79
|
+
style: {
|
|
80
|
+
width: undefined;
|
|
81
|
+
};
|
|
82
|
+
class: string | undefined;
|
|
83
|
+
}) => any) | undefined;
|
|
84
|
+
} & { [K in NonNullable<keyof T>]?: ((props: {
|
|
85
|
+
class: string | undefined;
|
|
86
|
+
style: {
|
|
87
|
+
width: undefined;
|
|
88
|
+
};
|
|
89
|
+
item: T | undefined;
|
|
90
|
+
value: NonNullable<T>[keyof T];
|
|
91
|
+
}) => any) | undefined; };
|
|
92
|
+
emit: {};
|
|
93
|
+
}>) => import("vue").VNode & {
|
|
94
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
95
|
+
};
|
|
96
|
+
declare const _default: typeof __VLS_export;
|
|
97
|
+
export default _default;
|
|
98
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
99
|
+
[K in keyof T]: T[K];
|
|
100
|
+
} : {
|
|
101
|
+
[K in keyof T as K]: T[K];
|
|
102
|
+
}) & {};
|
|
@@ -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
|
+
};
|