@witchcraft/ui 0.1.3 → 0.2.1-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 +3 -6
- package/dist/module.json +3 -3
- package/dist/module.mjs +15 -12
- package/dist/runtime/build/generateTheme.js +1 -1
- package/dist/runtime/components/Aria/Aria.vue +5 -9
- package/dist/runtime/components/Aria/Aria.vue.d.ts +5 -0
- package/dist/runtime/components/Icon/Icon.vue +10 -30
- package/dist/runtime/components/Icon/Icon.vue.d.ts +21 -0
- package/dist/runtime/components/LibButton/LibButton.vue +51 -72
- package/dist/runtime/components/LibButton/LibButton.vue.d.ts +36 -0
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +43 -74
- package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +42 -0
- package/dist/runtime/components/LibColorInput/LibColorInput.vue +63 -107
- package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +63 -0
- package/dist/runtime/components/LibColorPicker/LibColorPicker.vue +272 -352
- package/dist/runtime/components/LibColorPicker/LibColorPicker.vue.d.ts +61 -0
- package/dist/runtime/components/LibColorPicker/utils/safeConvertToHsva.js +1 -1
- package/dist/runtime/components/LibColorPicker/utils/safeConvertToRgba.js +1 -1
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue +35 -69
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts +22 -0
- package/dist/runtime/components/LibDatePicker/LibDatePicker.vue +17 -38
- package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +40 -0
- package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue +58 -82
- package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue.d.ts +34 -0
- package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.vue +55 -67
- package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.vue.d.ts +34 -0
- package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue +7 -8
- package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue.d.ts +22 -0
- package/dist/runtime/components/LibDebug/LibDebug.vue +43 -70
- package/dist/runtime/components/LibDebug/LibDebug.vue.d.ts +32 -0
- package/dist/runtime/components/LibDevOnly/LibDevOnly.vue +18 -31
- package/dist/runtime/components/LibDevOnly/LibDevOnly.vue.d.ts +22 -0
- package/dist/runtime/components/LibFileInput/LibFileInput.vue +116 -156
- package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +43 -0
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +211 -241
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +165 -0
- package/dist/runtime/components/LibLabel/LibLabel.vue +25 -46
- package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +26 -0
- package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +43 -58
- package/dist/runtime/components/LibMultiValues/LibMultiValues.vue.d.ts +29 -0
- package/dist/runtime/components/LibNotifications/LibNotification.vue +34 -48
- package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +17 -0
- package/dist/runtime/components/LibNotifications/LibNotifications.vue +63 -83
- package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +13 -0
- package/dist/runtime/components/LibPagination/LibPagination.vue +67 -111
- package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +104 -0
- package/dist/runtime/components/LibPalette/LibPalette.vue +17 -23
- package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +14 -0
- package/dist/runtime/components/LibPopup/LibPopup.vue +314 -351
- package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +46 -0
- package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +65 -91
- package/dist/runtime/components/LibProgressBar/LibProgressBar.vue.d.ts +41 -0
- package/dist/runtime/components/LibRecorder/LibRecorder.vue +127 -177
- package/dist/runtime/components/LibRecorder/LibRecorder.vue.d.ts +77 -0
- package/dist/runtime/components/LibRoot/LibRoot.vue +75 -101
- package/dist/runtime/components/LibRoot/LibRoot.vue.d.ts +41 -0
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue +42 -77
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue.d.ts +35 -0
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +118 -156
- package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +94 -0
- package/dist/runtime/components/LibTable/LibTable.vue +63 -99
- package/dist/runtime/components/LibTable/LibTable.vue.d.ts +45 -0
- package/dist/runtime/components/Template/NAME.vue +15 -36
- package/dist/runtime/components/Template/NAME.vue.d.ts +17 -0
- package/dist/runtime/components/TestControls/TestControls.vue +6 -9
- package/dist/runtime/components/TestControls/TestControls.vue.d.ts +5 -0
- package/dist/runtime/components/shared/props.d.ts +0 -29
- package/dist/runtime/components/shared/props.js +0 -12
- package/dist/runtime/composables/useAccesibilityOutline.js +1 -1
- package/dist/runtime/composables/useDivideAttrs.js +1 -1
- package/dist/runtime/composables/useSuggestions.js +4 -4
- package/dist/runtime/directives/vDetectFlex.js +4 -4
- package/dist/runtime/directives/vExtractRootEl.d.ts +1 -1
- package/dist/runtime/directives/vResizableCols.d.ts +1 -1
- package/dist/runtime/directives/vResizableCols.js +4 -4
- package/dist/runtime/helpers/NotificationHandler.js +6 -6
- package/dist/runtime/helpers/base64ToImg.js +2 -2
- package/dist/runtime/nuxt/plugins/vue-plugin.js +1 -1
- package/dist/runtime/tailwind/themeConvertionOpts.d.ts +1 -1
- package/dist/runtime/theme.d.ts +1 -1
- package/dist/runtime/theme.js +1 -1
- package/dist/runtime/utils/notifyIfError.js +1 -1
- package/dist/runtime/vue/registerComponents.js +1 -1
- package/dist/types.d.mts +2 -6
- package/package.json +68 -90
- package/src/module.ts +19 -12
- package/src/runtime/build/generateTheme.ts +1 -1
- package/src/runtime/components/LibButton/LibButton.stories.ts +1 -1
- package/src/runtime/components/LibButton/LibButton.vue +3 -3
- package/src/runtime/components/LibCheckbox/LibCheckbox.vue +3 -7
- package/src/runtime/components/LibColorPicker/LibColorPicker.vue +6 -4
- package/src/runtime/components/LibColorPicker/utils/safeConvertToHsva.ts +1 -1
- package/src/runtime/components/LibColorPicker/utils/safeConvertToRgba.ts +1 -1
- package/src/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue +8 -15
- package/src/runtime/components/LibDatePicker/LibRangeDatePicker.vue +6 -0
- package/src/runtime/components/LibDatePicker/LibSingleDatePicker.vue +6 -0
- package/src/runtime/components/LibDebug/LibDebug.stories.ts +1 -1
- package/src/runtime/components/LibDebug/LibDebug.vue +2 -0
- package/src/runtime/components/LibFileInput/LibFileInput.vue +4 -0
- package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +7 -5
- package/src/runtime/components/LibLabel/LibLabel.vue +2 -3
- package/src/runtime/components/LibMultiValues/LibMultiValues.vue +5 -3
- package/src/runtime/components/LibNotifications/LibNotification.vue +3 -0
- package/src/runtime/components/LibNotifications/LibNotifications.vue +1 -1
- package/src/runtime/components/LibPalette/LibPalette.vue +3 -3
- package/src/runtime/components/LibPopup/LibPopup.vue +2 -2
- package/src/runtime/components/LibProgressBar/LibProgressBar.vue +2 -2
- package/src/runtime/components/LibRecorder/LibRecorder.vue +3 -3
- package/src/runtime/components/LibRoot/LibRoot.vue +3 -2
- package/src/runtime/components/LibSimpleInput/LibSimpleInput.vue +2 -2
- package/src/runtime/components/LibSuggestions/LibSuggestions.vue +2 -2
- package/src/runtime/components/LibTable/LibTable.vue +1 -1
- package/src/runtime/components/Template/NAME.vue +2 -2
- package/src/runtime/components/shared/props.ts +8 -12
- package/src/runtime/composables/useAccesibilityOutline.ts +1 -1
- package/src/runtime/composables/useDivideAttrs.ts +1 -1
- package/src/runtime/composables/useSuggestions.ts +4 -4
- package/src/runtime/directives/vDetectFlex.ts +4 -4
- package/src/runtime/directives/vExtractRootEl.ts +1 -1
- package/src/runtime/directives/vResizableCols.ts +5 -5
- package/src/runtime/helpers/NotificationHandler.ts +6 -6
- package/src/runtime/nuxt/plugins/vue-plugin.ts +1 -1
- package/src/runtime/tailwind/themeConvertionOpts.ts +1 -1
- package/src/runtime/theme.ts +2 -2
- package/src/runtime/utils/notifyIfError.ts +1 -1
- package/src/runtime/vue/registerComponents.ts +1 -1
- package/dist/module.cjs +0 -5
- package/dist/module.d.ts +0 -36
- package/dist/runtime/components/Focus.stories.d.ts +0 -11
- package/dist/runtime/components/Focus.stories.js +0 -53
- package/dist/runtime/components/LibButton/LibButton.stories.d.ts +0 -12
- package/dist/runtime/components/LibButton/LibButton.stories.js +0 -94
- package/dist/runtime/components/LibCheckbox/LibCheckbox.stories.d.ts +0 -14
- package/dist/runtime/components/LibCheckbox/LibCheckbox.stories.js +0 -29
- package/dist/runtime/components/LibColorInput/LibColorInput.stories.d.ts +0 -7
- package/dist/runtime/components/LibColorInput/LibColorInput.stories.js +0 -58
- package/dist/runtime/components/LibColorPicker/LibColorPicker.stories.d.ts +0 -9
- package/dist/runtime/components/LibColorPicker/LibColorPicker.stories.js +0 -68
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.stories.d.ts +0 -7
- package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.stories.js +0 -36
- package/dist/runtime/components/LibDatePicker/LibDatePicker.stories.d.ts +0 -11
- package/dist/runtime/components/LibDatePicker/LibDatePicker.stories.js +0 -98
- package/dist/runtime/components/LibDebug/LibDebug.stories.d.ts +0 -9
- package/dist/runtime/components/LibDebug/LibDebug.stories.js +0 -46
- package/dist/runtime/components/LibFileInput/LibFileInput.stories.d.ts +0 -10
- package/dist/runtime/components/LibFileInput/LibFileInput.stories.js +0 -63
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.d.ts +0 -33
- package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.js +0 -384
- package/dist/runtime/components/LibLabel/LibLabel.stories.d.ts +0 -6
- package/dist/runtime/components/LibLabel/LibLabel.stories.js +0 -25
- package/dist/runtime/components/LibMultiValues/LibMultiValues.stories.d.ts +0 -23
- package/dist/runtime/components/LibMultiValues/LibMultiValues.stories.js +0 -61
- package/dist/runtime/components/LibNotifications/LibNotification.stories.d.ts +0 -15
- package/dist/runtime/components/LibNotifications/LibNotification.stories.js +0 -126
- package/dist/runtime/components/LibNotifications/LibNotifications.stories.d.ts +0 -6
- package/dist/runtime/components/LibNotifications/LibNotifications.stories.js +0 -109
- package/dist/runtime/components/LibPagination/LibPagination.stories.d.ts +0 -6
- package/dist/runtime/components/LibPagination/LibPagination.stories.js +0 -40
- package/dist/runtime/components/LibPalette/LibPalette.stories.d.ts +0 -6
- package/dist/runtime/components/LibPalette/LibPalette.stories.js +0 -20
- package/dist/runtime/components/LibPopup/LibPopup.stories.d.ts +0 -14
- package/dist/runtime/components/LibPopup/LibPopup.stories.js +0 -147
- package/dist/runtime/components/LibProgressBar/LibProgressBar.stories.d.ts +0 -10
- package/dist/runtime/components/LibProgressBar/LibProgressBar.stories.js +0 -81
- package/dist/runtime/components/LibRecorder/LibRecorder.stories.d.ts +0 -19
- package/dist/runtime/components/LibRecorder/LibRecorder.stories.js +0 -63
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.stories.d.ts +0 -26
- package/dist/runtime/components/LibSimpleInput/LibSimpleInput.stories.js +0 -78
- package/dist/runtime/components/LibSuggestions/LibSuggestions.stories.d.ts +0 -27
- package/dist/runtime/components/LibSuggestions/LibSuggestions.stories.js +0 -112
- package/dist/runtime/components/LibTable/LibTable.stories.d.ts +0 -16
- package/dist/runtime/components/LibTable/LibTable.stories.js +0 -156
- package/dist/runtime/components/Reset.stories.d.ts +0 -5
- package/dist/runtime/components/Reset.stories.js +0 -19
- package/dist/runtime/components/Scrolling.stories.d.ts +0 -6
- package/dist/runtime/components/Scrolling.stories.js +0 -44
- package/dist/runtime/composables/useScrollNearContainerEdges.stories.d.ts +0 -7
- package/dist/runtime/composables/useScrollNearContainerEdges.stories.js +0 -85
- package/dist/types.d.ts +0 -7
package/src/module.ts
CHANGED
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
useLogger,
|
|
9
9
|
} from "@nuxt/kit"
|
|
10
10
|
import tailwindcss from "@tailwindcss/vite"
|
|
11
|
-
import { addImportsCustom } from "@witchcraft/nuxt-utils/utils/addImportsCustom
|
|
12
|
-
import { globFiles } from "@witchcraft/nuxt-utils/utils/globFiles
|
|
11
|
+
import { addImportsCustom } from "@witchcraft/nuxt-utils/utils/addImportsCustom"
|
|
12
|
+
import { globFiles } from "@witchcraft/nuxt-utils/utils/globFiles"
|
|
13
13
|
import { defu } from "defu"
|
|
14
14
|
import fs from "fs"
|
|
15
15
|
import { themeAsTailwindCss } from "metamorphosis/tailwind"
|
|
@@ -158,16 +158,23 @@ export default defineNuxtModule<ModuleOptions>({
|
|
|
158
158
|
logger.info(`Adding unplugin-icons`)
|
|
159
159
|
config.plugins ??= []
|
|
160
160
|
config.plugins = [
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
161
|
+
...(
|
|
162
|
+
options.includeUnpluginIconsPlugins
|
|
163
|
+
? [
|
|
164
|
+
// we must prepend or the custom style options don't work when the module is used
|
|
165
|
+
ViteComponents({
|
|
166
|
+
resolvers: [
|
|
167
|
+
IconsResolver({prefix:"i"}),
|
|
168
|
+
// we don't need our resolver since we use nuxt instead
|
|
169
|
+
],
|
|
170
|
+
}),
|
|
171
|
+
Icons({
|
|
172
|
+
compiler: "vue3",
|
|
173
|
+
...unpluginIconViteOptions,
|
|
174
|
+
}),
|
|
175
|
+
]
|
|
176
|
+
: []
|
|
177
|
+
),
|
|
171
178
|
tailwindcss() as any,
|
|
172
179
|
...config.plugins,
|
|
173
180
|
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
-
import { capitalize } from "@alanscodelog/utils/capitalize
|
|
2
|
+
import { capitalize } from "@alanscodelog/utils/capitalize"
|
|
3
3
|
import type { Meta, StoryObj } from "@storybook/vue3"
|
|
4
4
|
|
|
5
5
|
import IconFaSolidBell from "~icons/fa-solid/bell"
|
|
@@ -184,12 +184,12 @@
|
|
|
184
184
|
</template>
|
|
185
185
|
|
|
186
186
|
<script setup lang="ts">
|
|
187
|
-
import { isBlank } from "@alanscodelog/utils/isBlank
|
|
187
|
+
import { isBlank } from "@alanscodelog/utils/isBlank"
|
|
188
188
|
import { type ButtonHTMLAttributes,computed, useAttrs } from "vue"
|
|
189
189
|
|
|
190
190
|
import { useAriaLabel } from "../../composables/useAriaLabel.js"
|
|
191
191
|
import { twMerge } from "../../utils/twMerge.js"
|
|
192
|
-
import { type BaseInteractiveProps,
|
|
192
|
+
import { type BaseInteractiveProps, type ButtonProps,getFallbackId, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js"
|
|
193
193
|
|
|
194
194
|
|
|
195
195
|
const $attrs = useAttrs()
|
|
@@ -204,7 +204,7 @@ const fallbackId = getFallbackId()
|
|
|
204
204
|
const props = withDefaults(defineProps<Props>(), {
|
|
205
205
|
color: false,
|
|
206
206
|
label: "",
|
|
207
|
-
|
|
207
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
208
208
|
})
|
|
209
209
|
|
|
210
210
|
|
|
@@ -67,16 +67,12 @@
|
|
|
67
67
|
</div>
|
|
68
68
|
</template>
|
|
69
69
|
<script setup lang="ts">
|
|
70
|
-
import {
|
|
71
|
-
import { omit } from "@alanscodelog/utils/omit.js"
|
|
72
|
-
import { pick } from "@alanscodelog/utils/pick.js"
|
|
73
|
-
import type { MakeRequired } from "@alanscodelog/utils/types"
|
|
74
|
-
import { computed, type HTMLAttributes, type InputHTMLAttributes,type PropType, ref, useAttrs, useSlots } from "vue"
|
|
70
|
+
import { type HTMLAttributes, type InputHTMLAttributes,ref, useSlots } from "vue"
|
|
75
71
|
|
|
76
72
|
import { useDivideAttrs } from "../../composables/useDivideAttrs.js"
|
|
77
73
|
import { usePreHydrationValue } from "../../composables/usePreHydrationValue.js"
|
|
78
74
|
import { twMerge } from "../../utils/twMerge.js"
|
|
79
|
-
import { type BaseInteractiveProps,
|
|
75
|
+
import { type BaseInteractiveProps, getFallbackId,type LabelProps, type LinkableByIdProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js"
|
|
80
76
|
|
|
81
77
|
defineOptions({
|
|
82
78
|
name: "lib-checkbox",
|
|
@@ -89,7 +85,7 @@ const $slots = useSlots()
|
|
|
89
85
|
|
|
90
86
|
const fallbackId = getFallbackId()
|
|
91
87
|
const props = withDefaults(defineProps<Props>(), {
|
|
92
|
-
|
|
88
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
93
89
|
})
|
|
94
90
|
|
|
95
91
|
|
|
@@ -170,10 +170,10 @@
|
|
|
170
170
|
|
|
171
171
|
<script setup lang="ts">
|
|
172
172
|
/* todo change to colorjsio for less dependencies */
|
|
173
|
-
import { castType } from "@alanscodelog/utils/castType
|
|
174
|
-
import { clampNumber } from "@alanscodelog/utils/clampNumber
|
|
175
|
-
import { isArray } from "@alanscodelog/utils/isArray
|
|
176
|
-
import { unreachable } from "@alanscodelog/utils/unreachable
|
|
173
|
+
import { castType } from "@alanscodelog/utils/castType"
|
|
174
|
+
import { clampNumber } from "@alanscodelog/utils/clampNumber"
|
|
175
|
+
import { isArray } from "@alanscodelog/utils/isArray"
|
|
176
|
+
import { unreachable } from "@alanscodelog/utils/unreachable"
|
|
177
177
|
import Color from "colorjs.io"
|
|
178
178
|
import { computed, onMounted, reactive, type Ref, ref, type UnwrapRef,useAttrs, watch } from "vue"
|
|
179
179
|
|
|
@@ -181,6 +181,8 @@ import { safeConvertToHsva } from "./utils/safeConvertToHsva.js"
|
|
|
181
181
|
import { safeConvertToRgba } from "./utils/safeConvertToRgba.js"
|
|
182
182
|
import { toLowPrecisionRgbaString } from "./utils/toLowPrecisionRgbaString.js"
|
|
183
183
|
|
|
184
|
+
import IFa6RegularCopy from "~icons/fa-regular/copy"
|
|
185
|
+
|
|
184
186
|
import { useInjectedI18n } from "../../composables/useInjectedI18n.js"
|
|
185
187
|
import { copy } from "../../helpers/copy.js"
|
|
186
188
|
import type { HsvaColor, RgbaColor } from "../../types/index.js"
|
|
@@ -14,22 +14,9 @@
|
|
|
14
14
|
<!-- content-vertical-holder will keep the icon the height of a text line regardless of the svg used -->
|
|
15
15
|
<template #icon>
|
|
16
16
|
<icon
|
|
17
|
-
|
|
18
|
-
class="w-[1em] flex items-center content-vertical-holder"
|
|
17
|
+
class="w-[1em] items-center content-vertical-holder"
|
|
19
18
|
>
|
|
20
|
-
<
|
|
21
|
-
</icon>
|
|
22
|
-
<icon
|
|
23
|
-
v-else-if="darkModeState==='light'"
|
|
24
|
-
class="w-[1em] content-vertical-holder"
|
|
25
|
-
>
|
|
26
|
-
<i-ph-sun-bold/>
|
|
27
|
-
</icon>
|
|
28
|
-
<icon
|
|
29
|
-
v-else
|
|
30
|
-
class="w-[1em] content-vertical-holder"
|
|
31
|
-
>
|
|
32
|
-
<i-fa6-solid-circle-half-stroke/>
|
|
19
|
+
<component :is="darkModeState==='dark' ? IFaSolidMoon : darkModeState==='light' ? IPhSunBold : IFa6SolidCircleHalfStroke"/>
|
|
33
20
|
</icon>
|
|
34
21
|
</template>
|
|
35
22
|
<template #default v-if="showLabel">
|
|
@@ -42,6 +29,10 @@
|
|
|
42
29
|
<script lang="ts" setup>
|
|
43
30
|
import { type ButtonHTMLAttributes,onMounted,useAttrs, watch } from "vue"
|
|
44
31
|
|
|
32
|
+
import IFaSolidMoon from "~icons/fa-solid/moon"
|
|
33
|
+
import IFa6SolidCircleHalfStroke from "~icons/fa6-solid/circle-half-stroke"
|
|
34
|
+
import IPhSunBold from "~icons/ph/sun-bold"
|
|
35
|
+
|
|
45
36
|
import { useInjectedDarkMode } from "../../composables/useInjectedDarkMode.js"
|
|
46
37
|
import { useInjectedI18n } from "../../composables/useInjectedI18n.js"
|
|
47
38
|
import { twMerge } from "../../utils/twMerge.js"
|
|
@@ -49,6 +40,7 @@ import Icon from "../Icon/Icon.vue"
|
|
|
49
40
|
import LibButton from "../LibButton/LibButton.vue"
|
|
50
41
|
import type { TailwindClassProp } from "../shared/props.js"
|
|
51
42
|
|
|
43
|
+
|
|
52
44
|
const t = useInjectedI18n()
|
|
53
45
|
|
|
54
46
|
const emit = defineEmits<{
|
|
@@ -68,6 +60,7 @@ const {
|
|
|
68
60
|
darkModeState,
|
|
69
61
|
} = useInjectedDarkMode()
|
|
70
62
|
|
|
63
|
+
|
|
71
64
|
watch(darkMode, value => emit("update:darkMode", value))
|
|
72
65
|
watch(darkModeState, value => emit("update:darkModeState", value))
|
|
73
66
|
|
|
@@ -6,6 +6,12 @@ import { onBeforeUnmount, ref, toRaw, useAttrs, watch } from "vue"
|
|
|
6
6
|
|
|
7
7
|
import { convertDateWithFallback, getNow,toEmittableDate } from "./helpers.js"
|
|
8
8
|
|
|
9
|
+
import IRadixIconsCalendar from "~icons/radix-icons/calendar"
|
|
10
|
+
import IRadixIconsChevronLeft from "~icons/radix-icons/chevron-left"
|
|
11
|
+
import IRadixIconsChevronRight from "~icons/radix-icons/chevron-right"
|
|
12
|
+
import IRadixIconsDoubleArrowLeft from "~icons/radix-icons/double-arrow-left"
|
|
13
|
+
import IRadixIconsDoubleArrowRight from "~icons/radix-icons/double-arrow-right"
|
|
14
|
+
|
|
9
15
|
import { useInjectedLocale } from "../../composables/useInjectedLocale.js"
|
|
10
16
|
import type { RangeDate } from "../../types/index.js"
|
|
11
17
|
import { twMerge } from "../../utils/twMerge.js"
|
|
@@ -5,6 +5,12 @@ import { onBeforeUnmount, ref, toRaw, useAttrs, watch } from "vue"
|
|
|
5
5
|
|
|
6
6
|
import { convertDateWithFallback, getNow,toEmittableDate } from "./helpers.js"
|
|
7
7
|
|
|
8
|
+
import IRadixIconsCalendar from "~icons/radix-icons/calendar"
|
|
9
|
+
import IRadixIconsChevronLeft from "~icons/radix-icons/chevron-left"
|
|
10
|
+
import IRadixIconsChevronRight from "~icons/radix-icons/chevron-right"
|
|
11
|
+
import IRadixIconsDoubleArrowLeft from "~icons/radix-icons/double-arrow-left"
|
|
12
|
+
import IRadixIconsDoubleArrowRight from "~icons/radix-icons/double-arrow-right"
|
|
13
|
+
|
|
8
14
|
import { useInjectedLocale } from "../../composables/useInjectedLocale.js"
|
|
9
15
|
import type { SingleDate } from "../../types/index.js"
|
|
10
16
|
import { twMerge } from "../../utils/twMerge.js"
|
|
@@ -166,6 +166,10 @@
|
|
|
166
166
|
<script setup lang="ts">
|
|
167
167
|
import { computed, type HTMLAttributes, type InputHTMLAttributes,ref, shallowReactive, watch } from "vue"
|
|
168
168
|
|
|
169
|
+
import IFa6RegularFile from "~icons/fa6-regular/file"
|
|
170
|
+
import IFa6SolidArrowUpFromBracket from "~icons/fa6-solid/arrow-up-from-bracket"
|
|
171
|
+
import IFa6SolidXmark from "~icons/fa6-solid/xmark"
|
|
172
|
+
|
|
169
173
|
import { useDivideAttrs } from "../../composables/useDivideAttrs.js"
|
|
170
174
|
import { useInjectedI18n } from "../../composables/useInjectedI18n.js"
|
|
171
175
|
import { type FileInputError } from "../../types/index.js"
|
|
@@ -151,12 +151,14 @@
|
|
|
151
151
|
</div>
|
|
152
152
|
</template>
|
|
153
153
|
<script setup lang="ts">
|
|
154
|
-
import { isBlank } from "@alanscodelog/utils/isBlank
|
|
155
|
-
import { isObject } from "@alanscodelog/utils/isObject
|
|
156
|
-
import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn
|
|
154
|
+
import { isBlank } from "@alanscodelog/utils/isBlank"
|
|
155
|
+
import { isObject } from "@alanscodelog/utils/isObject"
|
|
156
|
+
import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn"
|
|
157
157
|
import { computed,type HTMLAttributes,type InputHTMLAttributes, nextTick, onBeforeMount, ref, toRef, useSlots, watch } from "vue"
|
|
158
158
|
import type { ComponentExposed } from "vue-component-type-helpers"
|
|
159
159
|
|
|
160
|
+
import IFa6SolidChevronUp from "~icons/fa6-solid/chevron-up"
|
|
161
|
+
|
|
160
162
|
import { useDivideAttrs } from "../../composables/useDivideAttrs.js"
|
|
161
163
|
import { useSuggestionsInputAria } from "../../composables/useSuggestions.js"
|
|
162
164
|
import { twMerge } from "../../utils/twMerge.js"
|
|
@@ -165,7 +167,7 @@ import LibLabel from "../LibLabel/LibLabel.vue"
|
|
|
165
167
|
import LibMultiValues from "../LibMultiValues/LibMultiValues.vue"
|
|
166
168
|
import LibSimpleInput from "../LibSimpleInput/LibSimpleInput.vue"
|
|
167
169
|
import LibSuggestions from "../LibSuggestions/LibSuggestions.vue"
|
|
168
|
-
import { type BaseInteractiveProps,
|
|
170
|
+
import { type BaseInteractiveProps, getFallbackId, type LabelProps, type LinkableByIdProps, type SuggestionsProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js"
|
|
169
171
|
|
|
170
172
|
|
|
171
173
|
/* #region base */
|
|
@@ -189,7 +191,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
189
191
|
valid: true,
|
|
190
192
|
suggestions: undefined,
|
|
191
193
|
updateOnlyOnSubmit: false,
|
|
192
|
-
|
|
194
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
193
195
|
})
|
|
194
196
|
|
|
195
197
|
const $ = useDivideAttrs(["wrapper", "inner-wrapper", "suggestions", "multivalues"] as const)
|
|
@@ -23,7 +23,7 @@ import type { MakeRequired } from "@alanscodelog/utils/types"
|
|
|
23
23
|
import { type LabelHTMLAttributes,toRef,useAttrs } from "vue"
|
|
24
24
|
|
|
25
25
|
import { twMerge } from "../../utils/twMerge.js"
|
|
26
|
-
import { type BaseInteractiveProps,
|
|
26
|
+
import { type BaseInteractiveProps, getFallbackId, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js"
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
defineOptions({
|
|
@@ -35,9 +35,8 @@ const fallbackId = getFallbackId()
|
|
|
35
35
|
// eslint-disable-next-line no-undef
|
|
36
36
|
withDefaults(defineProps<Props>(), {
|
|
37
37
|
id: "",
|
|
38
|
-
unstyled: undefined,
|
|
39
38
|
valid: true,
|
|
40
|
-
|
|
39
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
41
40
|
})
|
|
42
41
|
|
|
43
42
|
const $attrs = useAttrs()
|
|
@@ -72,15 +72,17 @@
|
|
|
72
72
|
</template>
|
|
73
73
|
|
|
74
74
|
<script setup lang="ts" generic="T extends string | number">
|
|
75
|
-
import { removeIfIn } from "@alanscodelog/utils/removeIfIn
|
|
75
|
+
import { removeIfIn } from "@alanscodelog/utils/removeIfIn"
|
|
76
76
|
import { computed, type HTMLAttributes } from "vue"
|
|
77
77
|
|
|
78
|
+
import IFa6SolidXmark from "~icons/fa6-solid/xmark"
|
|
79
|
+
|
|
78
80
|
import { useDivideAttrs } from "../../composables/useDivideAttrs.js"
|
|
79
81
|
import { copy } from "../../helpers/copy.js"
|
|
80
82
|
import { twMerge } from "../../utils/twMerge.js"
|
|
81
83
|
import Icon from "../Icon/Icon.vue"
|
|
82
84
|
import LibButton from "../LibButton/LibButton.vue"
|
|
83
|
-
import { type BaseInteractiveProps,
|
|
85
|
+
import { type BaseInteractiveProps,type LabelProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js"
|
|
84
86
|
|
|
85
87
|
|
|
86
88
|
defineOptions({
|
|
@@ -90,7 +92,7 @@ defineOptions({
|
|
|
90
92
|
|
|
91
93
|
const $ = useDivideAttrs(["item"] as const)
|
|
92
94
|
const props = withDefaults(defineProps<Props>(), {
|
|
93
|
-
|
|
95
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
94
96
|
})
|
|
95
97
|
|
|
96
98
|
|
|
@@ -81,6 +81,9 @@
|
|
|
81
81
|
<script setup lang="ts">
|
|
82
82
|
import { computed, type HTMLAttributes,ref, useAttrs } from "vue"
|
|
83
83
|
|
|
84
|
+
import IFa6RegularCopy from "~icons/fa6-regular/copy"
|
|
85
|
+
import IFa6SolidXmark from "~icons/fa6-solid/xmark"
|
|
86
|
+
|
|
84
87
|
import { copy } from "../../helpers/copy.js"
|
|
85
88
|
import { type NotificationEntry, NotificationHandler } from "../../helpers/NotificationHandler.js"
|
|
86
89
|
import { twMerge } from "../../utils/twMerge.js"
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
</Transition>
|
|
52
52
|
</template>
|
|
53
53
|
<script setup lang="ts">
|
|
54
|
-
import { removeIfIn } from "@alanscodelog/utils/removeIfIn
|
|
54
|
+
import { removeIfIn } from "@alanscodelog/utils/removeIfIn"
|
|
55
55
|
import { type HTMLAttributes,nextTick, onBeforeUnmount, ref,shallowReactive, Transition, TransitionGroup } from "vue"
|
|
56
56
|
|
|
57
57
|
import LibNotification from "./LibNotification.vue"
|
|
@@ -27,10 +27,10 @@ export default { name: "lib-palette" }
|
|
|
27
27
|
</script>
|
|
28
28
|
|
|
29
29
|
<script setup lang="ts">
|
|
30
|
-
import { keys } from "@alanscodelog/utils/keys
|
|
30
|
+
import { keys } from "@alanscodelog/utils/keys"
|
|
31
31
|
import { type Theme } from "metamorphosis"
|
|
32
32
|
|
|
33
|
-
import { type BaseInteractiveProps,
|
|
33
|
+
import { type BaseInteractiveProps,type LinkableByIdProps } from "../shared/props.js"
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
const props = withDefaults(defineProps<
|
|
@@ -40,7 +40,7 @@ const props = withDefaults(defineProps<
|
|
|
40
40
|
theme: Theme
|
|
41
41
|
}>(), {
|
|
42
42
|
theme: () => ({} as any),
|
|
43
|
-
|
|
43
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
44
44
|
})
|
|
45
45
|
|
|
46
46
|
const exclude = ["--color-bg", "--color-fg"]
|
|
@@ -53,8 +53,8 @@ import { onMounted, nextTick, ref, useAttrs, watch , type HTMLAttributes } from
|
|
|
53
53
|
import { getFallbackId, type LinkableByIdProps, type TailwindClassProp, type PopupProps } from "../shared/props.js"
|
|
54
54
|
|
|
55
55
|
import { twMerge } from "../../utils/twMerge.js"
|
|
56
|
-
import { castType } from "@alanscodelog/utils/castType
|
|
57
|
-
import { isArray } from "@alanscodelog/utils/isArray
|
|
56
|
+
import { castType } from "@alanscodelog/utils/castType"
|
|
57
|
+
import { isArray } from "@alanscodelog/utils/isArray"
|
|
58
58
|
import type { IPopupReference, PopupPosition, PopupPositioner, PopupPositionModifier, SimpleDOMRect } from "../../types/index.js"
|
|
59
59
|
|
|
60
60
|
const fallbackId = getFallbackId()
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
import { type HTMLAttributes,type PropType, ref, watch } from "vue"
|
|
98
98
|
|
|
99
99
|
import { twMerge } from "../../utils/twMerge.js"
|
|
100
|
-
import { type BaseInteractiveProps,
|
|
100
|
+
import { type BaseInteractiveProps,getFallbackId,type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js"
|
|
101
101
|
|
|
102
102
|
// TODO move to utils
|
|
103
103
|
const clampVal = (n: number, min: number, max: number) => Math.min(Math.max(n, min), max)
|
|
@@ -111,7 +111,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
111
111
|
autohideOnComplete: -1,
|
|
112
112
|
keepSpaceWhenHidden: false,
|
|
113
113
|
clamp: () => [0, 100],
|
|
114
|
-
|
|
114
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
115
115
|
})
|
|
116
116
|
const hide = ref<boolean>(false)
|
|
117
117
|
const psuedoHide = ref<boolean>(false)
|
|
@@ -70,13 +70,13 @@
|
|
|
70
70
|
</div>
|
|
71
71
|
</template>
|
|
72
72
|
<script setup lang="ts">
|
|
73
|
-
import { keys } from "@alanscodelog/utils/keys
|
|
73
|
+
import { keys } from "@alanscodelog/utils/keys"
|
|
74
74
|
import { computed, type HTMLAttributes ,onBeforeUnmount, onMounted, type PropType, ref, watch, watchPostEffect } from "vue"
|
|
75
75
|
|
|
76
76
|
import { useAriaLabel } from "../../composables/useAriaLabel.js"
|
|
77
77
|
import { useInjectedI18n } from "../../composables/useInjectedI18n.js"
|
|
78
78
|
import { twMerge } from "../../utils/twMerge.js"
|
|
79
|
-
import { type BaseInteractiveProps,
|
|
79
|
+
import { type BaseInteractiveProps, getFallbackId, type LabelProps, type LinkableByIdProps,type TailwindClassProp } from "../shared/props.js"
|
|
80
80
|
|
|
81
81
|
defineOptions({
|
|
82
82
|
name: "lib-recorder",
|
|
@@ -98,7 +98,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
98
98
|
id: undefined,
|
|
99
99
|
binders: undefined,
|
|
100
100
|
recorder: undefined,
|
|
101
|
-
|
|
101
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
102
102
|
})
|
|
103
103
|
/**
|
|
104
104
|
* Puts the element into recording mode if true. See {@link props.recorder}.
|
|
@@ -32,14 +32,15 @@
|
|
|
32
32
|
($attrs as any).attrs?.class)"
|
|
33
33
|
>
|
|
34
34
|
<TestControls v-if="testWrapperMode" :show-outline="showOutline"/>
|
|
35
|
-
|
|
35
|
+
<!-- @vue-expect-error data-allow-mismatch is for vue/nuxt to allow the hydration mismatch-->
|
|
36
|
+
<Notifications v-if="useNotifications && isClientSide" data-allow-mismatch/>
|
|
36
37
|
<slot/>
|
|
37
38
|
</div>
|
|
38
39
|
</div>
|
|
39
40
|
</template>
|
|
40
41
|
|
|
41
42
|
<script setup lang="ts">
|
|
42
|
-
import { unreachable } from "@alanscodelog/utils/unreachable
|
|
43
|
+
import { unreachable } from "@alanscodelog/utils/unreachable"
|
|
43
44
|
import { type Theme } from "metamorphosis"
|
|
44
45
|
import { type ComponentPublicInstance, computed, onBeforeUnmount, onMounted, ref, toRaw } from "vue"
|
|
45
46
|
|
|
@@ -77,7 +77,7 @@ import { useAriaLabel } from "../../composables/useAriaLabel.js"
|
|
|
77
77
|
import { usePreHydrationValue } from "../../composables/usePreHydrationValue.js"
|
|
78
78
|
import { hasModifiers } from "../../helpers/hasModifiers.js"
|
|
79
79
|
import { twMerge } from "../../utils/twMerge.js"
|
|
80
|
-
import { type BaseInteractiveProps,
|
|
80
|
+
import { type BaseInteractiveProps, getFallbackId,type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js"
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
defineOptions({
|
|
@@ -93,7 +93,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
93
93
|
valid: true,
|
|
94
94
|
label: "",
|
|
95
95
|
type: undefined,
|
|
96
|
-
|
|
96
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
97
97
|
})
|
|
98
98
|
|
|
99
99
|
const modelValue = defineModel<T>({ required: true })
|
|
@@ -67,7 +67,7 @@ import { useSuggestions } from "../../composables/useSuggestions.js"
|
|
|
67
67
|
import { hasModifiers } from "../../helpers/hasModifiers.js"
|
|
68
68
|
import { twMerge } from "../../utils/twMerge.js"
|
|
69
69
|
import LibCheckbox from "../LibCheckbox/LibCheckbox.vue"
|
|
70
|
-
import { type BaseInteractiveProps,
|
|
70
|
+
import { type BaseInteractiveProps, getFallbackId,type LabelProps, type LinkableByIdProps, type SuggestionsEmits, type SuggestionsProps, type WrapperProps } from "../shared/props.js"
|
|
71
71
|
|
|
72
72
|
defineOptions({
|
|
73
73
|
name: "lib-suggestions",
|
|
@@ -83,7 +83,7 @@ const props = withDefaults(defineProps<Props & SuggestionsProps<TSuggestion>>(),
|
|
|
83
83
|
isValid: true,
|
|
84
84
|
canOpen: true,
|
|
85
85
|
filterKeydown: undefined,
|
|
86
|
-
|
|
86
|
+
unstyle: false, disabled: false, readonly: false, border: true,
|
|
87
87
|
})
|
|
88
88
|
/**
|
|
89
89
|
* The final valid value. This is *not* the value you want to share with the input. If `restrictToSuggestions` is true this will not update on any invalid values that `inputValue` might be set to.
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
<!-- generic="T extends Record<string, any> -->"
|
|
94
94
|
<script setup lang="ts" generic="T">
|
|
95
95
|
import type { MakeRequired } from "@alanscodelog/utils"
|
|
96
|
-
import { keys } from "@alanscodelog/utils/keys
|
|
96
|
+
import { keys } from "@alanscodelog/utils/keys"
|
|
97
97
|
import { computed, type PropType, ref, type TableHTMLAttributes } from "vue"
|
|
98
98
|
|
|
99
99
|
import { vResizableCols } from "../../directives/vResizableCols.js"
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
</template>
|
|
11
11
|
<script setup lang="ts">
|
|
12
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { type HTMLAttributes, ref } from "vue"
|
|
14
14
|
|
|
15
15
|
import { twMerge } from "../../utils/twMerge.js"
|
|
16
|
-
import {
|
|
16
|
+
import { type TailwindClassProp } from "../shared/props.js"
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
defineOptions({
|
|
@@ -155,12 +155,6 @@ export interface PopupProps {
|
|
|
155
155
|
canClose?: boolean
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
export const baseInteractiveProps = {
|
|
159
|
-
unstyle: { type: Boolean as Function as PropType<boolean>, required: false, default: false },
|
|
160
|
-
disabled: { type: Boolean as Function as PropType<boolean>, required: false, default: false },
|
|
161
|
-
readonly: { type: Boolean as Function as PropType<boolean>, required: false, default: false },
|
|
162
|
-
border: { type: Boolean as Function as PropType<boolean>, required: false, default: true },
|
|
163
|
-
} as const
|
|
164
158
|
|
|
165
159
|
export type BaseInteractiveProps = {
|
|
166
160
|
/** Default is false. */
|
|
@@ -172,12 +166,14 @@ export type BaseInteractiveProps = {
|
|
|
172
166
|
/** Removes styles from the component. Default is false. */
|
|
173
167
|
unstyle?: boolean
|
|
174
168
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
169
|
+
|
|
170
|
+
// see https://github.com/nuxt/module-builder/issues/649
|
|
171
|
+
// export const baseInteractivePropsDefaults = {
|
|
172
|
+
// disabled: false,
|
|
173
|
+
// readonly: false,
|
|
174
|
+
// border: true,
|
|
175
|
+
// unstyle: false,
|
|
176
|
+
// }
|
|
181
177
|
|
|
182
178
|
/**
|
|
183
179
|
* @internal
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
2
|
import { type AnyFunction } from "@alanscodelog/utils"
|
|
3
|
-
import { isBlank } from "@alanscodelog/utils/isBlank
|
|
4
|
-
import { isObject } from "@alanscodelog/utils/isObject
|
|
5
|
-
import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn
|
|
6
|
-
import { removeIfIn } from "@alanscodelog/utils/removeIfIn
|
|
3
|
+
import { isBlank } from "@alanscodelog/utils/isBlank"
|
|
4
|
+
import { isObject } from "@alanscodelog/utils/isObject"
|
|
5
|
+
import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn"
|
|
6
|
+
import { removeIfIn } from "@alanscodelog/utils/removeIfIn"
|
|
7
7
|
import { computed, type Ref, ref, toRaw, watch } from "vue"
|
|
8
8
|
|
|
9
9
|
import { type SuggestionsEmits,type SuggestionsOptions } from "../components/shared/props.js"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { castType } from "@alanscodelog/utils/castType
|
|
2
|
-
import { last } from "@alanscodelog/utils/last
|
|
3
|
-
import { throttle } from "@alanscodelog/utils/throttle
|
|
4
|
-
import { unreachable } from "@alanscodelog/utils/unreachable
|
|
1
|
+
import { castType } from "@alanscodelog/utils/castType"
|
|
2
|
+
import { last } from "@alanscodelog/utils/last"
|
|
3
|
+
import { throttle } from "@alanscodelog/utils/throttle"
|
|
4
|
+
import { unreachable } from "@alanscodelog/utils/unreachable"
|
|
5
5
|
import type { Directive } from "vue"
|
|
6
6
|
|
|
7
7
|
import { globalResizeObserver } from "../globalResizeObserver.js"
|
|
@@ -9,7 +9,7 @@ import type { Directive } from "vue"
|
|
|
9
9
|
*
|
|
10
10
|
* One can create a ref:
|
|
11
11
|
* ```ts
|
|
12
|
-
* import { vExtractRootEl } from "@witchcraft/ui/directives/vExtractRootEl
|
|
12
|
+
* import { vExtractRootEl } from "@witchcraft/ui/directives/vExtractRootEl"
|
|
13
13
|
* const el = ref<HTMLElement|null>(null)
|
|
14
14
|
*
|
|
15
15
|
* ```
|