@witchcraft/ui 0.2.1-beta.3 → 0.2.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.
Files changed (173) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +1 -1
  3. package/dist/runtime/build/WitchcraftUiResolver.d.ts +2 -2
  4. package/dist/runtime/build/generateTheme.js +2 -2
  5. package/dist/runtime/components/Aria/Aria.vue +4 -2
  6. package/dist/runtime/components/Aria/Aria.vue.d.ts +1 -1
  7. package/dist/runtime/components/Icon/Icon.vue +3 -3
  8. package/dist/runtime/components/Icon/Icon.vue.d.ts +1 -1
  9. package/dist/runtime/components/LibButton/LibButton.vue +9 -4
  10. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +1 -1
  11. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +3 -4
  12. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +1 -1
  13. package/dist/runtime/components/LibColorInput/LibColorInput.vue +15 -8
  14. package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +1 -1
  15. package/dist/runtime/components/LibColorPicker/LibColorPicker.vue +10 -6
  16. package/dist/runtime/components/LibColorPicker/LibColorPicker.vue.d.ts +1 -1
  17. package/dist/runtime/components/LibColorPicker/utils/truncate.js +1 -1
  18. package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue +5 -2
  19. package/dist/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts +1 -1
  20. package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +1 -1
  21. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue +8 -6
  22. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue.d.ts +1 -1
  23. package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.vue +7 -5
  24. package/dist/runtime/components/LibDatePicker/LibSingleDatePicker.vue.d.ts +1 -1
  25. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue.d.ts +1 -1
  26. package/dist/runtime/components/LibDebug/LibDebug.vue +9 -4
  27. package/dist/runtime/components/LibDebug/LibDebug.vue.d.ts +1 -1
  28. package/dist/runtime/components/LibDevOnly/LibDevOnly.vue +2 -1
  29. package/dist/runtime/components/LibDevOnly/LibDevOnly.vue.d.ts +4 -1
  30. package/dist/runtime/components/LibFileInput/LibFileInput.vue +29 -13
  31. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +2 -2
  32. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +42 -12
  33. package/dist/runtime/components/LibLabel/LibLabel.vue +2 -2
  34. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +3 -3
  35. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +1 -2
  36. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue.d.ts +2 -2
  37. package/dist/runtime/components/LibNotifications/LibNotification.vue +19 -8
  38. package/dist/runtime/components/LibNotifications/LibNotifications.vue +10 -6
  39. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +2 -2
  40. package/dist/runtime/components/LibPagination/LibPagination.vue +25 -12
  41. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +2 -2
  42. package/dist/runtime/components/LibPalette/LibPalette.vue +6 -5
  43. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +5 -5
  44. package/dist/runtime/components/LibPopup/LibPopup.vue +6 -4
  45. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +3 -3
  46. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +5 -3
  47. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue.d.ts +9 -9
  48. package/dist/runtime/components/LibRecorder/LibRecorder.vue +1 -1
  49. package/dist/runtime/components/LibRecorder/LibRecorder.vue.d.ts +2 -2
  50. package/dist/runtime/components/LibRoot/LibRoot.vue +11 -6
  51. package/dist/runtime/components/LibRoot/LibRoot.vue.d.ts +1 -1
  52. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue +1 -1
  53. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue.d.ts +1 -1
  54. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +5 -3
  55. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +1 -1
  56. package/dist/runtime/components/LibTable/LibTable.vue +23 -8
  57. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +1 -1
  58. package/dist/runtime/components/Template/NAME.vue +2 -3
  59. package/dist/runtime/components/Template/NAME.vue.d.ts +1 -1
  60. package/dist/runtime/components/TestControls/TestControls.vue +4 -2
  61. package/dist/runtime/components/TestControls/TestControls.vue.d.ts +1 -1
  62. package/dist/runtime/composables/useDragWithThreshold.d.ts +1 -1
  63. package/dist/runtime/composables/useInjectedI18n.d.ts +1 -1
  64. package/dist/runtime/composables/useScrollNearContainerEdges.d.ts +1 -1
  65. package/dist/runtime/composables/useSetupI18n.d.ts +1 -1
  66. package/dist/runtime/composables/useSuggestions.d.ts +2 -2
  67. package/dist/runtime/helpers/NotificationHandler.d.ts +1 -1
  68. package/dist/runtime/helpers/base64ToImg.js +2 -2
  69. package/dist/runtime/tailwind/themeConvertionOpts.d.ts +1 -1
  70. package/dist/runtime/types/index.d.ts +1 -1
  71. package/dist/runtime/utils/notifyIfError.d.ts +1 -1
  72. package/package.json +4 -6
  73. package/src/module.ts +25 -28
  74. package/src/runtime/build/WitchcraftUiResolver.ts +3 -3
  75. package/src/runtime/build/generateTheme.ts +3 -2
  76. package/src/runtime/build/unpluginIconViteOptions.ts +1 -1
  77. package/src/runtime/components/Aria/Aria.vue +5 -6
  78. package/src/runtime/components/Focus.stories.ts +11 -12
  79. package/src/runtime/components/Icon/Icon.vue +5 -9
  80. package/src/runtime/components/LibButton/LibButton.stories.ts +21 -22
  81. package/src/runtime/components/LibButton/LibButton.vue +23 -21
  82. package/src/runtime/components/LibCheckbox/LibCheckbox.stories.ts +6 -10
  83. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +17 -19
  84. package/src/runtime/components/LibColorInput/LibColorInput.stories.ts +8 -13
  85. package/src/runtime/components/LibColorInput/LibColorInput.vue +49 -45
  86. package/src/runtime/components/LibColorPicker/LibColorPicker.stories.ts +14 -18
  87. package/src/runtime/components/LibColorPicker/LibColorPicker.vue +50 -52
  88. package/src/runtime/components/LibColorPicker/utils/safeConvertToHsva.ts +1 -2
  89. package/src/runtime/components/LibColorPicker/utils/safeConvertToRgba.ts +1 -2
  90. package/src/runtime/components/LibColorPicker/utils/truncate.ts +1 -2
  91. package/src/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts +5 -8
  92. package/src/runtime/components/LibDarkModeSwitcher/LibDarkModeSwitcher.vue +11 -9
  93. package/src/runtime/components/LibDatePicker/LibDatePicker.stories.ts +14 -15
  94. package/src/runtime/components/LibDatePicker/LibDatePicker.vue +1 -2
  95. package/src/runtime/components/LibDatePicker/LibRangeDatePicker.vue +13 -13
  96. package/src/runtime/components/LibDatePicker/LibSingleDatePicker.vue +9 -8
  97. package/src/runtime/components/LibDatePicker/LibTimeZonePicker.vue +2 -1
  98. package/src/runtime/components/LibDatePicker/helpers.ts +0 -2
  99. package/src/runtime/components/LibDebug/LibDebug.stories.ts +11 -15
  100. package/src/runtime/components/LibDebug/LibDebug.vue +14 -11
  101. package/src/runtime/components/LibDevOnly/LibDevOnly.vue +8 -4
  102. package/src/runtime/components/LibFileInput/LibFileInput.stories.ts +12 -15
  103. package/src/runtime/components/LibFileInput/LibFileInput.vue +65 -47
  104. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +59 -67
  105. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +73 -48
  106. package/src/runtime/components/LibLabel/LibLabel.stories.ts +4 -8
  107. package/src/runtime/components/LibLabel/LibLabel.vue +8 -8
  108. package/src/runtime/components/LibMultiValues/LibMultiValues.stories.ts +10 -15
  109. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +14 -18
  110. package/src/runtime/components/LibNotifications/LibNotification.stories.ts +30 -34
  111. package/src/runtime/components/LibNotifications/LibNotification.vue +27 -17
  112. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +11 -15
  113. package/src/runtime/components/LibNotifications/LibNotifications.vue +21 -16
  114. package/src/runtime/components/LibPagination/LibPagination.stories.ts +5 -9
  115. package/src/runtime/components/LibPagination/LibPagination.vue +46 -32
  116. package/src/runtime/components/LibPalette/LibPalette.stories.ts +3 -7
  117. package/src/runtime/components/LibPalette/LibPalette.vue +13 -12
  118. package/src/runtime/components/LibPopup/LibPopup.stories.ts +19 -23
  119. package/src/runtime/components/LibPopup/LibPopup.vue +31 -35
  120. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +13 -17
  121. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +36 -33
  122. package/src/runtime/components/LibRecorder/LibRecorder.stories.ts +11 -12
  123. package/src/runtime/components/LibRecorder/LibRecorder.vue +34 -34
  124. package/src/runtime/components/LibRoot/LibRoot.vue +16 -12
  125. package/src/runtime/components/LibSimpleInput/LibSimpleInput.stories.ts +20 -24
  126. package/src/runtime/components/LibSimpleInput/LibSimpleInput.vue +17 -21
  127. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +16 -19
  128. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +27 -30
  129. package/src/runtime/components/LibTable/LibTable.stories.ts +30 -33
  130. package/src/runtime/components/LibTable/LibTable.vue +38 -24
  131. package/src/runtime/components/Reset.stories.ts +3 -6
  132. package/src/runtime/components/Scrolling.stories.ts +5 -8
  133. package/src/runtime/components/Template/NAME.vue +11 -11
  134. package/src/runtime/components/Template/TemplateStory.ts +9 -10
  135. package/src/runtime/components/TestControls/TestControls.vue +5 -5
  136. package/src/runtime/components/shared/props.ts +4 -6
  137. package/src/runtime/components/shared/storyHelpers/playInput.ts +2 -3
  138. package/src/runtime/components/shared/storyHelpers/playSuggestions.ts +5 -9
  139. package/src/runtime/composables/useAccesibilityOutline.ts +1 -1
  140. package/src/runtime/composables/useAriaLabel.ts +1 -1
  141. package/src/runtime/composables/useDarkMode.ts +15 -19
  142. package/src/runtime/composables/useDragWithThreshold.ts +6 -8
  143. package/src/runtime/composables/useGlobalResizeObserver.ts +0 -1
  144. package/src/runtime/composables/useInjectedDarkMode.ts +2 -2
  145. package/src/runtime/composables/useInjectedI18n.ts +1 -1
  146. package/src/runtime/composables/useInjectedLocale.ts +3 -4
  147. package/src/runtime/composables/useScrollNearContainerEdges.stories.ts +4 -4
  148. package/src/runtime/composables/useScrollNearContainerEdges.ts +12 -13
  149. package/src/runtime/composables/useSetupI18n.ts +4 -7
  150. package/src/runtime/composables/useSetupLocale.ts +3 -5
  151. package/src/runtime/composables/useSuggestions.ts +25 -30
  152. package/src/runtime/directives/vDetectFlex.ts +5 -8
  153. package/src/runtime/directives/vExtractRootEl.ts +1 -1
  154. package/src/runtime/directives/vResizableCols.ts +3 -7
  155. package/src/runtime/directives/vResizeObserver.ts +1 -2
  156. package/src/runtime/globalResizeObserver.ts +0 -1
  157. package/src/runtime/helpers/NotificationHandler.ts +8 -12
  158. package/src/runtime/helpers/base64ToImg.ts +2 -3
  159. package/src/runtime/helpers/createNoonUtcDate.ts +0 -1
  160. package/src/runtime/helpers/defaultTranslationFunction.ts +0 -1
  161. package/src/runtime/helpers/getTimeZoneList.ts +0 -1
  162. package/src/runtime/helpers/readFile.ts +2 -2
  163. package/src/runtime/helpers/resizeObserverWrapper.ts +0 -1
  164. package/src/runtime/helpers/storybook.ts +2 -3
  165. package/src/runtime/main.lib.ts +0 -2
  166. package/src/runtime/nuxt/plugins/vue-plugin.ts +4 -5
  167. package/src/runtime/tailwind/themeConvertionOpts.ts +3 -4
  168. package/src/runtime/theme.ts +0 -1
  169. package/src/runtime/types/index.ts +3 -4
  170. package/src/runtime/utils/notifyIfError.ts +2 -2
  171. package/src/runtime/utils/twMerge.ts +2 -2
  172. package/src/runtime/vue/VueComponentsPlugin.ts +1 -2
  173. package/src/runtime/vue/registerComponents.ts +0 -1
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <!-- todo aria errors -->
3
- <div :class="twMerge(
3
+ <div
4
+ :class="twMerge(
4
5
  `file-input
5
6
  justify-center
6
7
  border-2
@@ -16,7 +17,8 @@
16
17
  )"
17
18
  v-bind="{ ...$.wrapperAttrs, class: void 0 }"
18
19
  >
19
- <div :class="twMerge(
20
+ <div
21
+ :class="twMerge(
20
22
  `
21
23
  file-input--wrapper
22
24
  relative justify-center`,
@@ -37,7 +39,10 @@
37
39
  whitespace-nowrap
38
40
  `)"
39
41
  >
40
- <slot v-if="compact || multiple || files.length === 0" name="icon">
42
+ <slot
43
+ v-if="compact || multiple || files.length === 0"
44
+ name="icon"
45
+ >
41
46
  <icon><i-fa6-solid-arrow-up-from-bracket/></icon>
42
47
  </slot>
43
48
  <slot name="label">
@@ -52,7 +57,10 @@
52
57
  {{ ` (${files.length})` }}
53
58
  </span>
54
59
  </label>
55
- <label v-if="!compact && formats?.length > 0" class="file-input--formats-label flex flex-col items-center text-sm">
60
+ <label
61
+ v-if="!compact && formats?.length > 0"
62
+ class="file-input--formats-label flex flex-col items-center text-sm"
63
+ >
56
64
  <slot name="formats">{{ t("file-input.accepted-formats") }}: </slot>
57
65
  <div class="file-input--formats-list">
58
66
  {{ extensions.join(", ") }}
@@ -82,7 +90,8 @@
82
90
  >
83
91
  <!-- click event allows event to fire even if the user picks the same file -->
84
92
  </div>
85
- <div v-if="!compact && files.length > 0"
93
+ <div
94
+ v-if="!compact && files.length > 0"
86
95
  :class="twMerge(
87
96
  `file-input--previews
88
97
  flex items-stretch justify-center gap-2 flex-wrap
@@ -94,7 +103,8 @@
94
103
  )"
95
104
  >
96
105
  <div class="file-input--preview-spacer flex-1"/>
97
- <div class="file-input--preview-wrapper
106
+ <div
107
+ class="file-input--preview-wrapper
98
108
  z-1
99
109
  relative
100
110
  flex
@@ -121,16 +131,21 @@
121
131
  </div>
122
132
 
123
133
  <div class="file-input--preview flex flex-initial basis-full justify-center">
124
- <div v-if="entry.isImg"
134
+ <div
135
+ v-if="entry.isImg"
125
136
  class="file-input--preview-image
126
137
  bg-transparency-squares flex
127
138
  h-[80px] flex-wrap items-center
128
139
  justify-center
129
140
  "
130
141
  >
131
- <img class="max-h-full w-auto" :src="getSrc(entry.file)">
142
+ <img
143
+ class="max-h-full w-auto"
144
+ :src="getSrc(entry.file)"
145
+ >
132
146
  </div>
133
- <div v-if="!entry.isImg"
147
+ <div
148
+ v-if="!entry.isImg"
134
149
  class="file-input--preview-no-image
135
150
  flex h-[80px]
136
151
  flex-1 basis-full flex-wrap items-center justify-center
@@ -139,7 +154,8 @@
139
154
  <icon><i-fa6-regular-file class="text-4xl opacity-50"/></icon>
140
155
  </div>
141
156
  </div>
142
- <div class="
157
+ <div
158
+ class="
143
159
  file-input--preview-filename
144
160
  min-w-0
145
161
  flex-1
@@ -168,7 +184,6 @@ import IFa6SolidArrowUpFromBracket from "~icons/fa6-solid/arrow-up-from-bracket"
168
184
  import IFa6SolidXmark from "~icons/fa6-solid/xmark";
169
185
  import { useDivideAttrs } from "../../composables/useDivideAttrs.js";
170
186
  import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
171
- import {} from "../../types/index.js";
172
187
  import { twMerge } from "../../utils/twMerge.js";
173
188
  import Icon from "../Icon/Icon.vue";
174
189
  import LibButton from "../LibButton/LibButton.vue";
@@ -191,7 +206,7 @@ watch(errors, () => {
191
206
  }
192
207
  });
193
208
  defineOptions({
194
- name: "lib-file-input",
209
+ name: "LibFileInput",
195
210
  inheritAttrs: false
196
211
  });
197
212
  const $ = useDivideAttrs(["wrapper", "input", "previews"]);
@@ -250,9 +265,10 @@ const inputFile = async (e) => {
250
265
  errors.splice(0, errors.length);
251
266
  }
252
267
  }
268
+ return void 0;
253
269
  };
254
270
  </script>
255
271
 
256
272
  <script>
257
- export default { name: "lib-file-input" };
273
+ export default { name: "LibFileInput" };
258
274
  </script>
@@ -1,7 +1,7 @@
1
1
  import { type HTMLAttributes, type InputHTMLAttributes } from "vue";
2
- import { type FileInputError } from "../../types/index.js.js";
2
+ import type { FileInputError } from "../../types/index.js.js";
3
3
  import { type LinkableByIdProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js.js";
4
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
5
  input: (val: File[]) => any;
6
6
  errors: (val: FileInputError[]) => any;
7
7
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
@@ -16,8 +16,12 @@
16
16
  v-bind="{ ...$.wrapperAttrs, class: void 0 }"
17
17
  ref="inputWrapperEl"
18
18
  >
19
- <slot name="label" v-bind="{ ...slotProps, label }">
20
- <lib-label v-if="label || $slots.default"
19
+ <slot
20
+ name="label"
21
+ v-bind="{ ...slotProps, label }"
22
+ >
23
+ <lib-label
24
+ v-if="label || $slots.default"
21
25
  :id="id ?? fallbackId"
22
26
  :disabled="disabled"
23
27
  :readonly="readonly"
@@ -79,8 +83,14 @@
79
83
  $['inner-wrapperAttrs']?.class
80
84
  )"
81
85
  >
82
- <slot name="left" v-bind="slotProps"/>
83
- <slot name="input" v-bind="{ ...inputProps, ...slotProps, suggestionsIndicatorClickHandler }">
86
+ <slot
87
+ name="left"
88
+ v-bind="slotProps"
89
+ />
90
+ <slot
91
+ name="input"
92
+ v-bind="{ ...inputProps, ...slotProps, suggestionsIndicatorClickHandler }"
93
+ >
84
94
  <lib-simple-input
85
95
  :class="twMerge(
86
96
  `input--input p-0`,
@@ -91,7 +101,10 @@
91
101
  v-bind="inputProps"
92
102
  />
93
103
  </slot>
94
- <slot name="indicator" v-bind="{ isOpen, suggestionsIndicatorClickHandler }">
104
+ <slot
105
+ name="indicator"
106
+ v-bind="{ isOpen, suggestionsIndicatorClickHandler }"
107
+ >
95
108
  <!-- todo, convert to button for accessibility ? -->
96
109
  <div
97
110
  v-if="suggestions"
@@ -99,7 +112,9 @@
99
112
  :class="twMerge(`input--indicator flex flex-col justify-center`)"
100
113
  @click="suggestionsIndicatorClickHandler"
101
114
  >
102
- <icon :class="isOpen && `rotate-180`"> <i-fa6-solid-chevron-up/> </icon>
115
+ <icon :class="isOpen && `rotate-180`">
116
+ <i-fa6-solid-chevron-up/>
117
+ </icon>
103
118
  </div>
104
119
  </slot>
105
120
  <slot
@@ -122,9 +137,16 @@
122
137
  />
123
138
  </template>
124
139
  </slot>
125
- <slot name="right" v-bind="slotProps"/>
140
+ <slot
141
+ name="right"
142
+ v-bind="slotProps"
143
+ />
126
144
 
127
- <slot v-if="suggestions" name="suggestions" v-bind="{ ...suggestionProps, ...slotProps }">
145
+ <slot
146
+ v-if="suggestions"
147
+ name="suggestions"
148
+ v-bind="{ ...suggestionProps, ...slotProps }"
149
+ >
128
150
  <!-- todo 1px needs to be abstracted to var -->
129
151
  <lib-suggestions
130
152
  :class="twMerge(
@@ -147,7 +169,10 @@
147
169
  v-bind="suggestionProps"
148
170
  >
149
171
  <template #item="itemSlotProps">
150
- <slot name="suggestion-item" v-bind="itemSlotProps"/>
172
+ <slot
173
+ name="suggestion-item"
174
+ v-bind="itemSlotProps"
175
+ />
151
176
  </template>
152
177
  </lib-suggestions>
153
178
  </slot>
@@ -157,9 +182,8 @@
157
182
 
158
183
  <script setup>
159
184
  import { isBlank } from "@alanscodelog/utils/isBlank";
160
- import { isObject } from "@alanscodelog/utils/isObject";
161
185
  import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn";
162
- import { computed, nextTick, onBeforeMount, ref, toRef, useSlots, watch } from "vue";
186
+ import { computed, nextTick, ref, toRef, useSlots, watch } from "vue";
163
187
  import IFa6SolidChevronUp from "~icons/fa6-solid/chevron-up";
164
188
  import { useDivideAttrs } from "../../composables/useDivideAttrs.js";
165
189
  import { useSuggestionsInputAria } from "../../composables/useSuggestions.js";
@@ -171,7 +195,7 @@ import LibSimpleInput from "../LibSimpleInput/LibSimpleInput.vue";
171
195
  import LibSuggestions from "../LibSuggestions/LibSuggestions.vue";
172
196
  import { getFallbackId } from "../shared/props.js";
173
197
  defineOptions({
174
- name: "lib-simple-input-deprecated",
198
+ name: "LibSimpleInputDeprecated",
175
199
  inheritAttrs: false
176
200
  });
177
201
  const $slots = useSlots();
@@ -270,6 +294,7 @@ const inputProps = computed(() => ({
270
294
  onBlur: handleBlur,
271
295
  onFocus: handleFocus,
272
296
  modelValue: $inputValue.value,
297
+ // eslint-disable-next-line @typescript-eslint/naming-convention
273
298
  "onUpdate:modelValue": (e) => {
274
299
  $inputValue.value = e;
275
300
  if (!props.suggestions && !props.updateOnlyOnSubmit && !props.restrictToSuggestions) {
@@ -311,17 +336,21 @@ const suggestionProps = computed(() => ({
311
336
  modelValue: $values.value ?? $modelValue.value.toString(),
312
337
  inputValue: $inputValue.value,
313
338
  isValid: props.isValid,
339
+ // eslint-disable-next-line @typescript-eslint/naming-convention
314
340
  "onUpdate:inputValue": (e) => $inputValue.value = e,
315
341
  onSubmit: (e, suggestion, wasRemoved) => {
316
342
  $modelValue.value = wasRemoved ? "" : e;
317
343
  emit("submit", e, suggestion);
318
344
  },
345
+ // eslint-disable-next-line @typescript-eslint/naming-convention
319
346
  "onUpdate:modelValue": (e) => {
320
347
  $values.value &&= e;
321
348
  },
349
+ // eslint-disable-next-line @typescript-eslint/naming-convention
322
350
  "onUpdate:isOpen": (e) => {
323
351
  isOpen.value = e;
324
352
  },
353
+ // eslint-disable-next-line @typescript-eslint/naming-convention
325
354
  "onUpdate:activeSuggestion": (e) => activeSuggestion.value = e,
326
355
  ...$.value.suggestionsAttrs,
327
356
  class: void 0
@@ -333,6 +362,7 @@ const multivaluesProps = computed(() => ({
333
362
  disabled: props.disabled,
334
363
  readonly: props.readonly,
335
364
  modelValue: $values.value,
365
+ // eslint-disable-next-line @typescript-eslint/naming-convention
336
366
  "onUpdate:modelValue": (e) => $values.value = e,
337
367
  ...$.value.multivaluesAttrs,
338
368
  class: void 0
@@ -20,11 +20,11 @@
20
20
  </template>
21
21
 
22
22
  <script setup>
23
- import { toRef, useAttrs } from "vue";
23
+ import { useAttrs } from "vue";
24
24
  import { twMerge } from "../../utils/twMerge.js";
25
25
  import { getFallbackId } from "../shared/props.js";
26
26
  defineOptions({
27
- name: "lib-label"
27
+ name: "LibLabel"
28
28
  });
29
29
  const fallbackId = getFallbackId();
30
30
  defineProps({
@@ -1,5 +1,5 @@
1
- import { type LabelHTMLAttributes } from "vue";
2
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js.js";
1
+ import type { LabelHTMLAttributes } from "vue";
2
+ import type { BaseInteractiveProps, LabelProps, LinkableByIdProps, TailwindClassProp } from "../shared/props.js.js";
3
3
  type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
4
4
  unstyled?: boolean;
5
5
  valid?: boolean;
@@ -8,7 +8,7 @@ interface Props extends
8
8
  /** @vue-ignore */
9
9
  Partial<Omit<LabelHTMLAttributes, "class"> & TailwindClassProp>, RealProps {
10
10
  }
11
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
11
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
12
12
  id: string;
13
13
  disabled: boolean;
14
14
  readonly: boolean;
@@ -84,9 +84,8 @@ import { copy } from "../../helpers/copy.js";
84
84
  import { twMerge } from "../../utils/twMerge.js";
85
85
  import Icon from "../Icon/Icon.vue";
86
86
  import LibButton from "../LibButton/LibButton.vue";
87
- import {} from "../shared/props.js";
88
87
  defineOptions({
89
- name: "lib-multi-values",
88
+ name: "LibMultiValues",
90
89
  inheritAttrs: false
91
90
  });
92
91
  const $ = useDivideAttrs(["item"]);
@@ -1,5 +1,5 @@
1
1
  import { type HTMLAttributes } from "vue";
2
- import { type BaseInteractiveProps, type LabelProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js.js";
2
+ import type { BaseInteractiveProps, LabelProps, TailwindClassProp, WrapperProps } from "../shared/props.js.js";
3
3
  type WrapperTypes = Partial<WrapperProps<"item", HTMLAttributes>>;
4
4
  type RealProps = LabelProps & BaseInteractiveProps & {
5
5
  border?: boolean;
@@ -15,7 +15,7 @@ declare const _default: <T extends string | number>(__VLS_props: NonNullable<Awa
15
15
  readonly "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
16
16
  } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & (Props & {
17
17
  modelValue?: T[];
18
- }) & Partial<{}>> & import("vue").PublicProps;
18
+ }) & {}> & import("vue").PublicProps;
19
19
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
20
20
  attrs: any;
21
21
  slots: {};
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <div :class="twMerge(
2
+ <div
3
+ :class="twMerge(
3
4
  `notification
4
5
  max-w-700px
5
6
  bg-neutral-50
@@ -22,7 +23,8 @@
22
23
  @keydown.enter.self="NotificationHandler.resolveToDefault(notification)"
23
24
  >
24
25
  <div class="notification--header flex-reverse flex justify-between">
25
- <div v-if="notification.title"
26
+ <div
27
+ v-if="notification.title"
26
28
  tabindex="0"
27
29
  class="title
28
30
  focus-outline flex
@@ -34,7 +36,8 @@
34
36
  </div>
35
37
  <div class="notification--spacer flex-1"/>
36
38
  <div class="actions flex">
37
- <LibButton :border="false"
39
+ <LibButton
40
+ :border="false"
38
41
  class="notification--copy-button text-neutral-700"
39
42
  @click="copy(handler ? handler.stringify(notification) : JSON.stringify(notification))"
40
43
  >
@@ -50,21 +53,29 @@
50
53
  </lib-button>
51
54
  </div>
52
55
  </div>
53
- <div class="notification--message whitespace-pre-wrap" tabindex="0">
56
+ <div
57
+ class="notification--message whitespace-pre-wrap"
58
+ tabindex="0"
59
+ >
54
60
  {{ notification.message }}
55
61
  </div>
56
62
  <div class="notification--footer flex items-end justify-between">
57
- <div v-if="notification.code" class="code text-xs text-neutral-700 dark:text-neutral-300">
63
+ <div
64
+ v-if="notification.code"
65
+ class="code text-xs text-neutral-700 dark:text-neutral-300"
66
+ >
58
67
  Code: {{ notification.code }}
59
68
  </div>
60
69
  <div class="notification--footer-spacer flex-1 py-1"/>
61
- <div v-if="notification.options"
70
+ <div
71
+ v-if="notification.options"
62
72
  class="notification--options
63
73
  flex flex-wrap justify-end
64
74
  gap-2
65
75
  "
66
76
  >
67
- <lib-button :label="option"
77
+ <lib-button
78
+ :label="option"
68
79
  :class="twMerge(
69
80
  `
70
81
  notification--option-button
@@ -92,7 +103,7 @@ import { twMerge } from "../../utils/twMerge.js";
92
103
  import Icon from "../Icon/Icon.vue";
93
104
  import LibButton from "../LibButton/LibButton.vue";
94
105
  defineOptions({
95
- name: "lib-notification",
106
+ name: "LibNotification",
96
107
  inheritAttrs: false
97
108
  });
98
109
  const $attrs = useAttrs();
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <TransitionGroup name="list"
2
+ <TransitionGroup
3
+ name="list"
3
4
  tag="div"
4
5
  :class="twMerge(`notifications
5
6
  absolute
@@ -13,7 +14,8 @@
13
14
  `, $attrs.class)"
14
15
  v-bind="{ ...$attrs, class: void 0 }"
15
16
  >
16
- <lib-notification class="pointer-events-auto"
17
+ <lib-notification
18
+ class="pointer-events-auto"
17
19
  :handler="handler"
18
20
  tabindex="0"
19
21
  :notification="notification"
@@ -28,7 +30,8 @@
28
30
  />
29
31
  </Transition>
30
32
  <Transition>
31
- <dialog v-show="topNotifications.length > 0"
33
+ <dialog
34
+ v-show="topNotifications.length > 0"
32
35
  :id="id"
33
36
  :class="twMerge(`notifications-modal
34
37
  bg-transparent
@@ -40,7 +43,8 @@
40
43
  @click.self.prevent="topNotifications[0] && NotificationHandler.dismiss(topNotifications[0])"
41
44
  >
42
45
  <form>
43
- <lib-notification v-if="topNotifications.length > 0 && topNotifications[0]"
46
+ <lib-notification
47
+ v-if="topNotifications.length > 0 && topNotifications[0]"
44
48
  :handler="handler"
45
49
  class="top-notification"
46
50
  :notification="topNotifications[0]"
@@ -53,13 +57,13 @@
53
57
 
54
58
  <script setup>
55
59
  import { removeIfIn } from "@alanscodelog/utils/removeIfIn";
56
- import { nextTick, onBeforeUnmount, ref, shallowReactive, Transition, TransitionGroup } from "vue";
60
+ import { nextTick, onBeforeUnmount, ref, shallowReactive } from "vue";
57
61
  import LibNotification from "./LibNotification.vue";
58
62
  import { useNotificationHandler } from "../../composables/useNotificationHandler.js";
59
63
  import { NotificationHandler } from "../../helpers/NotificationHandler.js";
60
64
  import { twMerge } from "../../utils/twMerge.js";
61
65
  defineOptions({
62
- name: "lib-notifications",
66
+ name: "LibNotifications",
63
67
  inheritAttrs: false
64
68
  });
65
69
  const props = defineProps({
@@ -1,6 +1,6 @@
1
- import { type HTMLAttributes } from "vue";
2
1
  import { NotificationHandler } from "../../helpers/NotificationHandler.js.js";
3
2
  import type { LinkableByIdProps, TailwindClassProp } from "../shared/props.js.js";
3
+ import type { HTMLAttributes } from "vue";
4
4
  type RealProps = LinkableByIdProps & {
5
5
  /** If not provided, uses the global handler (this requires useNotificationHandler be called and configured). */
6
6
  handler?: NotificationHandler;
@@ -9,5 +9,5 @@ interface Props extends
9
9
  /** @vue-ignore */
10
10
  Partial<Omit<HTMLAttributes, "class"> & TailwindClassProp>, RealProps {
11
11
  }
12
- declare const _default: import("vue").DefineComponent<Props, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  export default _default;
@@ -7,7 +7,8 @@
7
7
  role="navigation"
8
8
  :aria-label="t('pagination.aria')"
9
9
  >
10
- <slot v-if="prevLink.i > 0 && prevLink.i !== currentLink.i"
10
+ <slot
11
+ v-if="prevLink.i > 0 && prevLink.i !== currentLink.i"
11
12
  name="link"
12
13
  :i="prevLink.i"
13
14
  :href="prevLink.href"
@@ -22,7 +23,8 @@
22
23
  />
23
24
  </slot>
24
25
  <div class="pagination--spacer flex-1"/>
25
- <slot v-if="firstLink.i !== currentLink.i"
26
+ <slot
27
+ v-if="firstLink.i !== currentLink.i"
26
28
  name="link"
27
29
  :i="0"
28
30
  :href="firstLink.href"
@@ -39,14 +41,18 @@
39
41
  {{ firstLink.i }}
40
42
  </a>
41
43
  </slot>
42
- <div v-if="prevLink.i - extraPages > firstLink.i" class="pagination--page-fill">
44
+ <div
45
+ v-if="prevLink.i - extraPages > firstLink.i"
46
+ class="pagination--page-fill"
47
+ >
43
48
  ...
44
49
  </div>
45
50
  <template
46
51
  v-for="entry in extraPagesPrev"
47
52
  :key="entry.i"
48
53
  >
49
- <slot name="link"
54
+ <slot
55
+ name="link"
50
56
  :class="`pagination--link ${pageClasses}`"
51
57
  :i="entry.i"
52
58
  :href="entry.href"
@@ -61,14 +67,16 @@
61
67
  </a>
62
68
  </slot>
63
69
  </template>
64
- <slot name="current"
70
+ <slot
71
+ name="current"
65
72
  :class="`pagination--link ${currentPageClasses}`"
66
73
  tabindex="0"
67
74
  :i="currentLink.i"
68
75
  :aria-label="t('pagination.aria.current-page', { count: currentLink.i })"
69
76
  :aria_current="true"
70
77
  >
71
- <div :class="`pagination--current-page a ${currentPageClasses}`"
78
+ <div
79
+ :class="`pagination--current-page a ${currentPageClasses}`"
72
80
  tabindex="0"
73
81
  :aria-label="t('pagination.aria.current-page', { count: currentLink.i })"
74
82
  aria-current="true"
@@ -81,7 +89,8 @@
81
89
  v-for="entry in extraPagesNext"
82
90
  :key="entry.i"
83
91
  >
84
- <slot name="link"
92
+ <slot
93
+ name="link"
85
94
  :class="`pagination--link ${pageClasses}`"
86
95
  :i="entry.i"
87
96
  :href="entry.href"
@@ -96,10 +105,15 @@
96
105
  </a>
97
106
  </slot>
98
107
  </template>
99
- <div v-if="nextLink.i + extraPages < total" class="pagination--page-fill" aria-hidden="true">
108
+ <div
109
+ v-if="nextLink.i + extraPages < total"
110
+ class="pagination--page-fill"
111
+ aria-hidden="true"
112
+ >
100
113
  ...
101
114
  </div>
102
- <slot v-if="lastLink.i !== currentLink.i"
115
+ <slot
116
+ v-if="lastLink.i !== currentLink.i"
103
117
  name="link"
104
118
  :class="`pagination--link ${pageClasses}`"
105
119
  :i="lastLink.i"
@@ -140,7 +154,6 @@
140
154
  import { computed, useAttrs, watch } from "vue";
141
155
  import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
142
156
  import { twMerge } from "../../utils/twMerge.js";
143
- import {} from "../shared/props.js";
144
157
  const t = useInjectedI18n();
145
158
  const commonClasses = `
146
159
  block
@@ -163,7 +176,7 @@ const currentPageClasses = `
163
176
  scale-125
164
177
  `;
165
178
  defineOptions({
166
- name: "lib-pagination",
179
+ name: "LibPagination",
167
180
  inheritAttrs: false
168
181
  });
169
182
  const props = defineProps({
@@ -211,6 +224,6 @@ const extraPagesNext = computed(() => [...Array(props.extraPages + 1)].map((_, i
211
224
 
212
225
  <script>
213
226
  export default {
214
- name: "lib-pagination"
227
+ name: "LibPagination"
215
228
  };
216
229
  </script>
@@ -1,5 +1,5 @@
1
1
  import { type HTMLAttributes } from "vue";
2
- import { type TailwindClassProp } from "../shared/props.js.js";
2
+ import type { TailwindClassProp } from "../shared/props.js.js";
3
3
  /**
4
4
  * Pagination component.
5
5
  *
@@ -10,7 +10,7 @@ import { type TailwindClassProp } from "../shared/props.js.js";
10
10
  * </template>
11
11
  * ```
12
12
  */
13
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
13
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
14
14
  customRoute: (route: string, i: number) => {
15
15
  i: number;
16
16
  href: string;
@@ -2,7 +2,10 @@
2
2
  <div class="theme-palette flex h-full flex-col items-center justify-center ">
3
3
  <div class="theme-palette--container mx-auto ">
4
4
  <div class="grid grid-cols-11 gap-2 gap-y-10 px-10">
5
- <template v-for="color, i in colors" :key="color">
5
+ <template
6
+ v-for="color, i in colors"
7
+ :key="color"
8
+ >
6
9
  <div
7
10
  :style="`background-color: var(${color});`"
8
11
  :class="`theme-palette--item h-10 rounded-sm flex items-center justify-center text-fg dark:text-bg`"
@@ -23,20 +26,18 @@
23
26
  </template>
24
27
 
25
28
  <script>
26
- export default { name: "lib-palette" };
29
+ export default { name: "LibPalette" };
27
30
  </script>
28
31
 
29
32
  <script setup>
30
33
  import { keys } from "@alanscodelog/utils/keys";
31
- import {} from "metamorphosis";
32
- import {} from "../shared/props.js";
33
34
  const props = defineProps({
34
35
  id: { type: String, required: false },
35
36
  disabled: { type: Boolean, required: false, default: false },
36
37
  readonly: { type: Boolean, required: false, default: false },
37
38
  border: { type: Boolean, required: false, default: true },
38
39
  unstyle: { type: Boolean, required: false, default: false },
39
- theme: { type: Object, required: true, default: () => ({}) }
40
+ theme: { type: Object, required: false, default: () => ({}) }
40
41
  });
41
42
  const exclude = ["--color-bg", "--color-fg"];
42
43
  const colors = keys(props.theme.css).filter((key) => key.startsWith("--color") && !exclude.includes(key));
@@ -1,9 +1,9 @@
1
- import { type Theme } from "metamorphosis";
2
- import { type BaseInteractiveProps, type LinkableByIdProps } from "../shared/props.js.js";
1
+ import type { Theme } from "metamorphosis";
2
+ import type { BaseInteractiveProps, LinkableByIdProps } from "../shared/props.js.js";
3
3
  declare const _default: import("vue").DefineComponent<LinkableByIdProps & BaseInteractiveProps & {
4
- theme: Theme;
5
- }, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkableByIdProps & BaseInteractiveProps & {
6
- theme: Theme;
4
+ theme?: Theme;
5
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkableByIdProps & BaseInteractiveProps & {
6
+ theme?: Theme;
7
7
  }> & Readonly<{}>, {
8
8
  theme: Theme;
9
9
  disabled: boolean;