@witchcraft/ui 0.4.0 → 0.4.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 (316) hide show
  1. package/README.md +56 -61
  2. package/dist/module.d.mts +1 -1
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +13 -9
  5. package/dist/runtime/assets/animations.css +1 -1
  6. package/dist/runtime/assets/locales/en.json +2 -0
  7. package/dist/runtime/assets/utils.css +1 -1
  8. package/dist/runtime/build/WitchcraftUiResolver.js +1 -2
  9. package/dist/runtime/components/TestControls/TestControls.d.vue.ts +2 -1
  10. package/dist/runtime/components/TestControls/TestControls.vue +3 -3
  11. package/dist/runtime/components/TestControls/TestControls.vue.d.ts +2 -1
  12. package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
  13. package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
  14. package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
  15. package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
  16. package/dist/runtime/components/WCheckbox/WCheckbox.vue +110 -0
  17. package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
  18. package/dist/runtime/components/{LibColorInput/LibColorInput.d.vue.ts → WColorInput/WColorInput.d.vue.ts} +18 -36
  19. package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
  20. package/dist/runtime/components/{LibColorInput/LibColorInput.vue.d.ts → WColorInput/WColorInput.vue.d.ts} +18 -36
  21. package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
  22. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
  23. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
  24. package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +12 -9
  25. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +41 -29
  26. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +12 -9
  27. package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +111 -0
  28. package/dist/runtime/components/WCombobox/WCombobox.vue +405 -0
  29. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +111 -0
  30. package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
  31. package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
  32. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +9 -13
  33. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
  34. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +9 -13
  35. package/dist/runtime/components/{LibDatePicker/LibDatePicker.d.vue.ts → WDatePicker/WDatePicker.d.vue.ts} +7 -7
  36. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  37. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue.d.ts → WDatePicker/WDatePicker.vue.d.ts} +7 -7
  38. package/dist/runtime/components/WDatePicker/WRangeDatePicker.d.vue.ts +182 -0
  39. package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +29 -25
  40. package/dist/runtime/components/WDatePicker/WRangeDatePicker.vue.d.ts +182 -0
  41. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +7 -5
  42. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  43. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +7 -5
  44. package/dist/runtime/components/WDatePicker/WTimeZonePicker.d.vue.ts +13 -0
  45. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  46. package/dist/runtime/components/WDatePicker/WTimeZonePicker.vue.d.ts +13 -0
  47. package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +3 -2
  48. package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +10 -12
  49. package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +3 -2
  50. package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +3 -5
  51. package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +3 -5
  52. package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
  53. package/dist/runtime/components/WFileInput/WFileInput.vue +348 -0
  54. package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
  55. package/dist/runtime/components/WIcon/WIcon.d.vue.ts +18 -0
  56. package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
  57. package/dist/runtime/components/WIcon/WIcon.vue.d.ts +18 -0
  58. package/dist/runtime/components/WMultiValues/WMultiValues.d.vue.ts +28 -0
  59. package/dist/runtime/components/WMultiValues/WMultiValues.vue +150 -0
  60. package/dist/runtime/components/WMultiValues/WMultiValues.vue.d.ts +28 -0
  61. package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
  62. package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +61 -35
  63. package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
  64. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.d.vue.ts +7 -0
  65. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.vue +29 -0
  66. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.vue.d.ts +7 -0
  67. package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
  68. package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +72 -36
  69. package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
  70. package/dist/runtime/components/WNotifications/calculateNotificationProgress.d.ts +2 -0
  71. package/dist/runtime/components/WNotifications/calculateNotificationProgress.js +4 -0
  72. package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
  73. package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
  74. package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
  75. package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
  76. package/dist/runtime/components/WPagination/WPagination.vue +182 -0
  77. package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
  78. package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
  79. package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  80. package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
  81. package/dist/runtime/components/WPopover/WPopover.d.vue.ts +45 -0
  82. package/dist/runtime/components/WPopover/WPopover.vue +144 -0
  83. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +45 -0
  84. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +51 -0
  85. package/dist/runtime/components/WPopup/WPopup.vue +115 -0
  86. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +51 -0
  87. package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +13 -16
  88. package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
  89. package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +13 -16
  90. package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +13 -27
  91. package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
  92. package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +13 -27
  93. package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +11 -9
  94. package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
  95. package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +11 -9
  96. package/dist/runtime/components/WSimpleInput/WSimpleInput.d.vue.ts +34 -0
  97. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +14 -24
  98. package/dist/runtime/components/WSimpleInput/WSimpleInput.vue.d.ts +34 -0
  99. package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
  100. package/dist/runtime/components/WTable/WTable.vue +370 -0
  101. package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
  102. package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
  103. package/dist/runtime/components/WTooltip/WTooltip.vue +112 -0
  104. package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
  105. package/dist/runtime/components/index.d.ts +20 -20
  106. package/dist/runtime/components/index.js +20 -20
  107. package/dist/runtime/composables/index.d.ts +4 -4
  108. package/dist/runtime/composables/index.js +4 -4
  109. package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
  110. package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
  111. package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
  112. package/dist/runtime/composables/useDisplayForReka.js +16 -0
  113. package/dist/runtime/composables/useFallbackId.d.ts +3 -0
  114. package/dist/runtime/composables/useFallbackId.js +5 -0
  115. package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
  116. package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
  117. package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
  118. package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
  119. package/dist/runtime/composables/useSetupDarkMode.js +90 -4
  120. package/dist/runtime/composables/useTimeConditionally.d.ts +16 -0
  121. package/dist/runtime/composables/useTimeConditionally.js +27 -0
  122. package/dist/runtime/directives/vResizableCols.js +101 -34
  123. package/dist/runtime/helpers/NotificationHandler.d.ts +28 -3
  124. package/dist/runtime/helpers/NotificationHandler.js +7 -10
  125. package/dist/runtime/injectionKeys.d.ts +1 -5
  126. package/dist/runtime/injectionKeys.js +0 -2
  127. package/dist/runtime/types/index.d.ts +97 -31
  128. package/dist/runtime/types/index.js +1 -0
  129. package/dist/runtime/utils/notifyIfError.d.ts +3 -1
  130. package/dist/runtime/utils/notifyIfError.js +4 -2
  131. package/dist/runtime/utils/twMerge.d.ts +1 -0
  132. package/dist/runtime/utils/twMerge.js +2 -1
  133. package/package.json +59 -56
  134. package/src/module.ts +16 -8
  135. package/src/runtime/assets/animations.css +53 -6
  136. package/src/runtime/assets/locales/en.json +2 -0
  137. package/src/runtime/assets/tailwind.css +1 -1
  138. package/src/runtime/assets/utils.css +52 -4
  139. package/src/runtime/build/WitchcraftUiResolver.ts +1 -2
  140. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  141. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  142. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  143. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  144. package/src/runtime/components/WCheckbox/WCheckbox.vue +125 -0
  145. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  146. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  147. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  148. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  149. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +44 -31
  150. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  151. package/src/runtime/components/WCombobox/WCombobox.vue +450 -0
  152. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  153. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  154. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  155. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  156. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  157. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +29 -25
  158. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  159. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  160. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  161. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -10
  162. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  163. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +20 -10
  164. package/src/runtime/components/WFileInput/WFileInput.vue +392 -0
  165. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  166. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  167. package/src/runtime/components/WMultiValues/WMultiValues.vue +163 -0
  168. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +42 -6
  169. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +72 -45
  170. package/src/runtime/components/WNotifications/WNotificationTestMessageComponent.vue +27 -0
  171. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  172. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +87 -47
  173. package/src/runtime/components/WNotifications/calculateNotificationProgress.ts +8 -0
  174. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  175. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  176. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  177. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  178. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  179. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  180. package/src/runtime/components/WPopover/WPopover.vue +168 -0
  181. package/src/runtime/components/WPopup/WPopup.stories.ts +104 -0
  182. package/src/runtime/components/WPopup/WPopup.vue +134 -0
  183. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  184. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  185. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  186. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  187. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  188. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  189. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +28 -42
  190. package/src/runtime/components/WTable/WTable.stories.ts +334 -0
  191. package/src/runtime/components/WTable/WTable.vue +471 -0
  192. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  193. package/src/runtime/components/WTooltip/WTooltip.vue +128 -0
  194. package/src/runtime/components/index.ts +20 -20
  195. package/src/runtime/composables/index.ts +4 -4
  196. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  197. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  198. package/src/runtime/composables/useFallbackId.ts +6 -0
  199. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  200. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  201. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  202. package/src/runtime/composables/useTimeConditionally.ts +51 -0
  203. package/src/runtime/directives/vResizableCols.ts +121 -38
  204. package/src/runtime/helpers/NotificationHandler.ts +30 -11
  205. package/src/runtime/injectionKeys.ts +1 -7
  206. package/src/runtime/types/index.ts +118 -36
  207. package/src/runtime/utils/notifyIfError.ts +6 -2
  208. package/src/runtime/utils/twMerge.ts +2 -1
  209. package/types/components.d.ts +14 -15
  210. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -5
  211. package/dist/runtime/components/Aria/Aria.vue +0 -16
  212. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -5
  213. package/dist/runtime/components/Icon/Icon.d.vue.ts +0 -21
  214. package/dist/runtime/components/Icon/Icon.vue.d.ts +0 -21
  215. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -36
  216. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -36
  217. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -42
  218. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  219. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -42
  220. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  221. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.d.vue.ts +0 -34
  222. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue.d.ts +0 -34
  223. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.d.vue.ts +0 -22
  224. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue.d.ts +0 -22
  225. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -43
  226. package/dist/runtime/components/LibFileInput/LibFileInput.vue +0 -274
  227. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -43
  228. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -165
  229. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  230. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -165
  231. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -26
  232. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  233. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -26
  234. package/dist/runtime/components/LibMultiValues/LibMultiValues.d.vue.ts +0 -29
  235. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  236. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue.d.ts +0 -29
  237. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -30
  238. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -30
  239. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -13
  240. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -13
  241. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -104
  242. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  243. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -104
  244. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -14
  245. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -14
  246. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -46
  247. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  248. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -46
  249. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  250. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.d.vue.ts +0 -35
  251. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue.d.ts +0 -35
  252. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -94
  253. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  254. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -94
  255. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -45
  256. package/dist/runtime/components/LibTable/LibTable.vue +0 -155
  257. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -45
  258. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -17
  259. package/dist/runtime/components/Template/NAME.vue +0 -27
  260. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -17
  261. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  262. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  263. package/dist/runtime/components/shared/props.d.ts +0 -171
  264. package/dist/runtime/components/shared/props.js +0 -2
  265. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  266. package/dist/runtime/composables/useAriaLabel.js +0 -15
  267. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  268. package/dist/runtime/composables/useDarkMode.js +0 -89
  269. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  270. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  271. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  272. package/dist/runtime/composables/useSuggestions.js +0 -263
  273. package/src/runtime/components/Aria/Aria.vue +0 -26
  274. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  275. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -129
  276. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  277. package/src/runtime/components/LibFileInput/LibFileInput.vue +0 -320
  278. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  279. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -414
  280. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  281. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  282. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  283. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -120
  284. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  285. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  286. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  287. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  288. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  289. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  290. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  291. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  292. package/src/runtime/components/LibTable/LibTable.stories.ts +0 -167
  293. package/src/runtime/components/LibTable/LibTable.vue +0 -190
  294. package/src/runtime/components/Template/NAME.vue +0 -49
  295. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  296. package/src/runtime/components/shared/props.ts +0 -199
  297. package/src/runtime/composables/useAriaLabel.ts +0 -23
  298. package/src/runtime/composables/useDarkMode.ts +0 -199
  299. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  300. package/src/runtime/composables/useSuggestions.ts +0 -339
  301. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  302. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  303. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  304. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  305. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  306. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  307. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  308. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  309. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  310. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  311. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  312. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  313. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  314. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  315. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  316. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
@@ -1,42 +0,0 @@
1
- import { type HTMLAttributes, type InputHTMLAttributes } from "vue";
2
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js";
3
- type WrapperTypes = Partial<WrapperProps<"label", HTMLAttributes, {
4
- /** Tailwind classes. */
5
- class?: string;
6
- }>>;
7
- type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
8
- unstyle?: boolean;
9
- };
10
- interface Props extends
11
- /** @vue-ignore */
12
- Partial<Omit<InputHTMLAttributes, "class" | "readonly" | "disabled" | "onSumbit"> & TailwindClassProp>,
13
- /** @vue-ignore */
14
- WrapperTypes, RealProps {
15
- }
16
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props & {
17
- modelValue?: boolean;
18
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
- "update:modelValue": (value: boolean) => any;
20
- } & {
21
- submit: (val: boolean) => any;
22
- }, string, import("vue").PublicProps, Readonly<Props & {
23
- modelValue?: boolean;
24
- }> & Readonly<{
25
- onSubmit?: ((val: boolean) => any) | undefined;
26
- "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
27
- }>, {
28
- disabled: boolean;
29
- readonly: boolean;
30
- border: boolean;
31
- unstyle: boolean;
32
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
33
- left?: (props: {}) => any;
34
- } & {
35
- default?: (props: {}) => any;
36
- }>;
37
- export default _default;
38
- type __VLS_WithSlots<T, S> = T & {
39
- new (): {
40
- $slots: S;
41
- };
42
- };
@@ -1,162 +0,0 @@
1
- <template>
2
- <lib-popup
3
- class="color-input--popup"
4
- v-model="showPopup"
5
- @close="$tempValue = void 0;
6
- emit('cancel')"
7
- >
8
- <template #button="{ extractEl }">
9
- <!-- <div -->
10
- <!-- class=" -->
11
- <!-- flex -->
12
- <!-- w-full -->
13
- <!-- border -->
14
- <!-- " -->
15
- <!-- v-extract-root-el="extractEl" -->
16
- <!-- > -->
17
-
18
- <!-- -->
19
- <lib-button
20
- :id="id ?? fallbackId"
21
- :class="twMerge(
22
- `
23
- p-0
24
- color-input--button
25
- flex flex-nowrap
26
- min-w-4
27
- overflow-hidden
28
- [&_.button--label]:items-stretch
29
- [&_.button--label]:gap-0
30
- after:hidden
31
- `,
32
- $attrs.class
33
- )"
34
- :aria-label="t('color-input.aria-and-title-prefix') + stringColor"
35
- :title="t('color-input.aria-and-title-prefix') + stringColor"
36
- v-bind="{ ...$attrs, class: void 0 }"
37
- v-extract-root-el="extractEl"
38
- @click="togglePopup"
39
- >
40
- <template #label>
41
- <div
42
- class="
43
- color-input--swatch-wrapper
44
- flex
45
- w-full
46
- "
47
- >
48
- <slot v-bind="{ stringColor, classes: swatchClasses }">
49
- <div
50
- :class="swatchClasses"
51
- :style="`background:${stringColor}`"
52
- />
53
- </slot>
54
- <slot
55
- v-if="$tempValue"
56
- v-bind="{ tempStringColor, classes: swatchClasses }"
57
- name="temp"
58
- >
59
- <div
60
- :class="swatchClasses"
61
- :style="`background:${tempStringColor}`"
62
- />
63
- </slot>
64
- </div>
65
- </template>
66
- </lib-button>
67
- </template>
68
- <template #popup="{ extractEl }">
69
- <div
70
- class="color-input--popup-wrapper p-5"
71
- v-extract-root-el="extractEl"
72
- >
73
- <lib-color-picker
74
- v-if="showPopup"
75
- :id="id ?? fallbackId"
76
- :allow-alpha="allowAlpha"
77
- :custom-representation="customRepresentation"
78
- :string-precision="stringPrecision"
79
- v-model="internalTempValue"
80
- v-model:temp-value="$tempValue"
81
- @save="save"
82
- @cancel="cancel"
83
- />
84
- </div>
85
- </template>
86
- </lib-popup>
87
- </template>
88
-
89
- <script setup>
90
- import Color from "colorjs.io";
91
- import { computed, ref, useAttrs } from "vue";
92
- import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
93
- import { vExtractRootEl } from "../../directives/vExtractRootEl.js";
94
- import { twMerge } from "../../utils/twMerge.js";
95
- import LibButton from "../LibButton/LibButton.vue";
96
- import LibColorPicker from "../LibColorPicker/LibColorPicker.vue";
97
- import LibPopup from "../LibPopup/LibPopup.vue";
98
- import { getFallbackId } from "../shared/props.js";
99
- defineOptions({
100
- name: "LibColorInput"
101
- });
102
- const swatchClasses = `
103
- color-input--swatch
104
- after:content-vertical-holder
105
- min-w-4
106
- flex-1
107
- relative
108
- before:content-['']
109
- before:absolute
110
- before:inset-0
111
- before:bg-transparency-squares
112
- before:z-[-1]
113
- `;
114
- const fallbackId = getFallbackId();
115
- const t = useInjectedI18n();
116
- defineProps({
117
- label: { type: String, required: false },
118
- id: { type: String, required: false },
119
- allowAlpha: { type: Boolean, required: false, default: true },
120
- border: { type: Boolean, required: false, default: true },
121
- copyTransform: { type: Function, required: false, default: (_val, stringVal) => stringVal },
122
- stringPrecision: { type: Number, required: false, default: 3 },
123
- customRepresentation: { type: Object, required: false, default: void 0 }
124
- });
125
- const emit = defineEmits(["save", "cancel"]);
126
- function save() {
127
- $value.value = internalTempValue.value;
128
- showPopup.value = false;
129
- $tempValue.value = void 0;
130
- emit("save");
131
- }
132
- function cancel() {
133
- showPopup.value = false;
134
- $tempValue.value = void 0;
135
- emit("cancel");
136
- }
137
- const $attrs = useAttrs();
138
- const $value = defineModel({ type: Object, ...{ required: false, default: () => ({ r: 0, g: 0, b: 0 }) } });
139
- const $tempValue = defineModel("tempValue", { type: null, ...{ required: false, default: () => void 0 } });
140
- const stringColor = computed(() => new Color("srgb", [
141
- $value.value.r / 255,
142
- $value.value.g / 255,
143
- $value.value.b / 255
144
- ], $value.value.a ?? 1).toString());
145
- const tempStringColor = computed(() => $tempValue.value ? new Color("srgb", [
146
- $tempValue.value.r / 255,
147
- $tempValue.value.g / 255,
148
- $tempValue.value.b / 255
149
- ], $tempValue.value.a ?? 1).toString() : "");
150
- const internalTempValue = ref({ ...$value.value });
151
- const showPopup = ref(false);
152
- const togglePopup = () => {
153
- if (showPopup.value) {
154
- $value.value = internalTempValue.value;
155
- }
156
- showPopup.value = !showPopup.value;
157
- };
158
- </script>
159
-
160
- <script>
161
-
162
- </script>
@@ -1,34 +0,0 @@
1
- import type { RangeDate } from "../../types/index.js";
2
- type __VLS_Props = {
3
- useTime?: boolean;
4
- id: string;
5
- fallbackDate?: Date;
6
- timeZone?: string;
7
- updateInterval?: number;
8
- };
9
- type __VLS_PublicProps = __VLS_Props & {
10
- modelValue: RangeDate;
11
- };
12
- declare var __VLS_167: {
13
- tempValue: any;
14
- };
15
- type __VLS_Slots = {} & {
16
- default?: (props: typeof __VLS_167) => any;
17
- };
18
- declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
- "update:modelValue": (value: RangeDate) => any;
20
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
- "onUpdate:modelValue"?: ((value: RangeDate) => any) | undefined;
22
- }>, {
23
- fallbackDate: Date;
24
- timeZone: string;
25
- useTime: boolean;
26
- updateInterval: number;
27
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
- declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
29
- export default _default;
30
- type __VLS_WithSlots<T, S> = T & {
31
- new (): {
32
- $slots: S;
33
- };
34
- };
@@ -1,34 +0,0 @@
1
- import type { RangeDate } from "../../types/index.js";
2
- type __VLS_Props = {
3
- useTime?: boolean;
4
- id: string;
5
- fallbackDate?: Date;
6
- timeZone?: string;
7
- updateInterval?: number;
8
- };
9
- type __VLS_PublicProps = __VLS_Props & {
10
- modelValue: RangeDate;
11
- };
12
- declare var __VLS_167: {
13
- tempValue: any;
14
- };
15
- type __VLS_Slots = {} & {
16
- default?: (props: typeof __VLS_167) => any;
17
- };
18
- declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
- "update:modelValue": (value: RangeDate) => any;
20
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
- "onUpdate:modelValue"?: ((value: RangeDate) => any) | undefined;
22
- }>, {
23
- fallbackDate: Date;
24
- timeZone: string;
25
- useTime: boolean;
26
- updateInterval: number;
27
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
- declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
29
- export default _default;
30
- type __VLS_WithSlots<T, S> = T & {
31
- new (): {
32
- $slots: S;
33
- };
34
- };
@@ -1,22 +0,0 @@
1
- type __VLS_PublicProps = {
2
- modelValue?: string;
3
- "label"?: string;
4
- };
5
- declare var __VLS_7: {};
6
- type __VLS_Slots = {} & {
7
- default?: (props: typeof __VLS_7) => any;
8
- };
9
- declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
- "update:modelValue": (value: string) => any;
11
- "update:label": (value: string) => any;
12
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
14
- "onUpdate:label"?: ((value: string) => any) | undefined;
15
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
- declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
17
- export default _default;
18
- type __VLS_WithSlots<T, S> = T & {
19
- new (): {
20
- $slots: S;
21
- };
22
- };
@@ -1,22 +0,0 @@
1
- type __VLS_PublicProps = {
2
- modelValue?: string;
3
- "label"?: string;
4
- };
5
- declare var __VLS_7: {};
6
- type __VLS_Slots = {} & {
7
- default?: (props: typeof __VLS_7) => any;
8
- };
9
- declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
- "update:modelValue": (value: string) => any;
11
- "update:label": (value: string) => any;
12
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
14
- "onUpdate:label"?: ((value: string) => any) | undefined;
15
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
- declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
17
- export default _default;
18
- type __VLS_WithSlots<T, S> = T & {
19
- new (): {
20
- $slots: S;
21
- };
22
- };
@@ -1,43 +0,0 @@
1
- import { type HTMLAttributes, type InputHTMLAttributes } from "vue";
2
- import type { FileInputError } from "../../types/index.js";
3
- import { type LinkableByIdProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js";
4
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- input: (val: File[]) => any;
6
- errors: (val: FileInputError[]) => any;
7
- }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
- onInput?: ((val: File[]) => any) | undefined;
9
- onErrors?: ((val: FileInputError[]) => any) | undefined;
10
- }>, {
11
- multiple: boolean;
12
- formats: string[];
13
- compact: boolean;
14
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
15
- icon?: (props: {}) => any;
16
- } & {
17
- label?: (props: {}) => any;
18
- } & {
19
- formats?: (props: {}) => any;
20
- }>;
21
- export default _default;
22
- type WrapperTypes = WrapperProps<"input", InputHTMLAttributes> & WrapperProps<"wrapper", HTMLAttributes> & WrapperProps<"previews", HTMLAttributes>;
23
- type RealProps = LinkableByIdProps & {
24
- multiple?: boolean;
25
- /**
26
- * A list of extensions or mime types to add to the input's accept. Basic validations are done so that files match an extension and mimeType, but note that a file could still be lying, all files should be validated server side.
27
- *
28
- * Pass an empty array to allow any filetype.
29
- */
30
- formats?: string[];
31
- compact?: boolean;
32
- };
33
- interface Props extends
34
- /** @vue-ignore */
35
- Partial<Omit<InputHTMLAttributes, "class" | "multiple" | "formats" | "compact"> & TailwindClassProp>,
36
- /** @vue-ignore */
37
- Partial<WrapperTypes>, RealProps {
38
- }
39
- type __VLS_WithSlots<T, S> = T & {
40
- new (): {
41
- $slots: S;
42
- };
43
- };
@@ -1,274 +0,0 @@
1
- <template>
2
- <!-- todo aria errors -->
3
- <div
4
- :class="twMerge(
5
- `file-input
6
- justify-center
7
- border-2
8
- border-dashed
9
- border-accent-500/80
10
- focus-outline-within
11
- transition-[border-color,box-shadow]
12
- ease-out`,
13
- compact && `rounded-sm`,
14
- !compact && `flex w-full flex-col items-center gap-2 rounded-xl p-2 `,
15
- errors.length > 0 && errorFlashing && `border-danger-400`,
16
- $.wrapperAttrs.class
17
- )"
18
- v-bind="{ ...$.wrapperAttrs, class: void 0 }"
19
- >
20
- <div
21
- :class="twMerge(
22
- `
23
- file-input--wrapper
24
- relative justify-center`,
25
- compact && `flex gap-2`,
26
- !compact && `input-wrapper
27
- flex flex-col items-center
28
- `
29
- )"
30
- >
31
- <label
32
- :for="id ?? fallbackId"
33
- :class="twMerge(`
34
- file-input--label
35
- pointer-events-none
36
- flex
37
- gap-1
38
- items-center
39
- whitespace-nowrap
40
- `)"
41
- >
42
- <slot
43
- v-if="compact || multiple || files.length === 0"
44
- name="icon"
45
- >
46
- <icon><i-fa6-solid-arrow-up-from-bracket/></icon>
47
- </slot>
48
- <slot name="label">
49
- {{
50
- compact ? multiple ? t("file-input.compact-choose-file-plural") : t("file-input.compact-choose-file") : multiple ? t("file-input.non-compact-choose-file-plural") : t("file-input.non-compact-choose-file")
51
- }}
52
- </slot>
53
- <span
54
- v-if="compact && multiple"
55
- class="file-input--label-count"
56
- >
57
- {{ ` (${files.length})` }}
58
- </span>
59
- </label>
60
- <label
61
- v-if="!compact && formats?.length > 0"
62
- class="file-input--formats-label flex flex-col items-center text-sm"
63
- >
64
- <slot name="formats">{{ t("file-input.accepted-formats") }}: </slot>
65
- <div class="file-input--formats-list">
66
- {{ extensions.join(", ") }}
67
- </div>
68
- </label>
69
- <input
70
- :id="id ?? fallbackId"
71
- :class="twMerge(
72
- `
73
- file-input--input
74
- absolute
75
- inset-0
76
- z-0
77
- cursor-pointer
78
- text-[0]
79
- opacity-0
80
- `,
81
- $.inputAttrs?.class
82
- )"
83
- type="file"
84
- :accept="formats.join(', ')"
85
- :multiple="multiple"
86
- ref="el"
87
- v-bind="{ ...$.inputAttrs, class: void 0 }"
88
- @input="inputFile"
89
- @click="$event.target.value = null"
90
- >
91
- <!-- click event allows event to fire even if the user picks the same file -->
92
- </div>
93
- <div
94
- v-if="!compact && files.length > 0"
95
- :class="twMerge(
96
- `file-input--previews
97
- flex items-stretch justify-center gap-2 flex-wrap
98
- `,
99
- multiple && `
100
- w-full
101
- `,
102
- $.previewsAttrs?.class
103
- )"
104
- >
105
- <div class="file-input--preview-spacer flex-1"/>
106
- <div
107
- class="file-input--preview-wrapper
108
- z-1
109
- relative
110
- flex
111
- min-w-0
112
- max-w-[150px]
113
- flex-initial
114
- flex-wrap
115
- items-center
116
- gap-2 rounded-sm border border-neutral-400
117
- shadow-xs
118
- shadow-neutral-800/20
119
- "
120
- v-for="entry of files"
121
- :key="entry.file.name"
122
- >
123
- <div class="file-input--remove-button flex flex-initial basis-full justify-start">
124
- <lib-button
125
- :border="false"
126
- :aria-label="`Remove file ${entry.file.name}`"
127
- @click="removeFile(entry)"
128
- >
129
- <icon><i-fa6-solid-xmark/></icon>
130
- </lib-button>
131
- </div>
132
-
133
- <div class="file-input--preview flex flex-initial basis-full justify-center">
134
- <div
135
- v-if="entry.isImg"
136
- class="file-input--preview-image
137
- bg-transparency-squares flex
138
- h-[80px] flex-wrap items-center
139
- justify-center
140
- "
141
- >
142
- <img
143
- class="max-h-full w-auto"
144
- :src="getSrc(entry.file)"
145
- >
146
- </div>
147
- <div
148
- v-if="!entry.isImg"
149
- class="file-input--preview-no-image
150
- flex h-[80px]
151
- flex-1 basis-full flex-wrap items-center justify-center
152
- "
153
- >
154
- <icon><i-fa6-regular-file class="text-4xl opacity-50"/></icon>
155
- </div>
156
- </div>
157
- <div
158
- class="
159
- file-input--preview-filename
160
- min-w-0
161
- flex-1
162
- basis-0
163
- truncate
164
- break-all
165
- rounded-sm
166
- p-1
167
- text-sm
168
- "
169
- :title="entry.file.name"
170
- >
171
- {{ entry.file.name }}
172
- </div>
173
- </div>
174
-
175
- <div class="flex-1"/>
176
- </div>
177
- </div>
178
- </template>
179
-
180
- <script setup>
181
- import { computed, ref, shallowReactive, watch } from "vue";
182
- import IFa6RegularFile from "~icons/fa6-regular/file";
183
- import IFa6SolidArrowUpFromBracket from "~icons/fa6-solid/arrow-up-from-bracket";
184
- import IFa6SolidXmark from "~icons/fa6-solid/xmark";
185
- import { useDivideAttrs } from "../../composables/useDivideAttrs.js";
186
- import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
187
- import { twMerge } from "../../utils/twMerge.js";
188
- import Icon from "../Icon/Icon.vue";
189
- import LibButton from "../LibButton/LibButton.vue";
190
- import { getFallbackId } from "../shared/props.js";
191
- const t = useInjectedI18n();
192
- const el = ref(null);
193
- const files = shallowReactive([]);
194
- const errors = shallowReactive([]);
195
- const errorFlashing = ref(false);
196
- watch(files, () => {
197
- emits("input", files.map((entry) => entry.file));
198
- });
199
- watch(errors, () => {
200
- if (errors.length > 0) {
201
- errorFlashing.value = true;
202
- setTimeout(() => {
203
- errorFlashing.value = false;
204
- }, 500);
205
- emits("errors", errors);
206
- }
207
- });
208
- defineOptions({
209
- name: "LibFileInput",
210
- inheritAttrs: false
211
- });
212
- const $ = useDivideAttrs(["wrapper", "input", "previews"]);
213
- const emits = defineEmits(["input", "errors"]);
214
- const fallbackId = getFallbackId();
215
- const props = defineProps({
216
- id: { type: String, required: false },
217
- multiple: { type: Boolean, required: false, default: false },
218
- formats: { type: Array, required: false, default: () => ["image/*", ".jpeg", ".jpg", ".png"] },
219
- compact: { type: Boolean, required: false, default: false }
220
- });
221
- const mimeTypes = computed(() => props.formats?.filter((_) => !_.startsWith(".")) ?? []);
222
- const extensions = computed(() => props.formats?.filter((_) => _.startsWith(".")) ?? []);
223
- const getSrc = (file) => {
224
- const src = URL.createObjectURL(file);
225
- return src;
226
- };
227
- const removeFile = (entry) => {
228
- const index = files.indexOf(entry);
229
- files.splice(index, 1);
230
- };
231
- const extensionsList = computed(() => extensions.value.join(", "));
232
- const inputFile = async (e) => {
233
- e.preventDefault();
234
- if (el.value.files) {
235
- const errs = [];
236
- for (const file of el.value.files) {
237
- const isImg = file.type.startsWith("image");
238
- const byPassValidation = props.formats.length === 0;
239
- const isValidMimeType = mimeTypes.value.find((_) => _.endsWith("/*") ? file.type.startsWith(_.slice(0, -2)) : _ === file.type) !== void 0;
240
- const isValidExtension = extensions.value.find((_) => file.name.endsWith(_)) !== void 0;
241
- if (!byPassValidation && (!isValidMimeType || !isValidExtension)) {
242
- const extension = file.name.match(/.*(\..*)/)?.[1] ?? "Unknown";
243
- const type = file.type === "" ? "" : ` (${file.type})`;
244
- const message = `File type ${extension}${type} is not allowed. Allowed file types are: ${extensionsList.value}.`;
245
- const err = new Error(message);
246
- err.file = file;
247
- err.isValidExtension = isValidExtension;
248
- err.isValidMimeType = isValidMimeType;
249
- errs.push(err);
250
- continue;
251
- }
252
- if (errs.length > 0) continue;
253
- if (!files.find((_) => _.file === file)) {
254
- if (props.multiple || files.length < 1) {
255
- files.push({ file, isImg });
256
- } else {
257
- files.splice(0, files.length, { file, isImg });
258
- }
259
- }
260
- }
261
- if (errs.length > 0) {
262
- errors.splice(0, errors.length, ...errs);
263
- return false;
264
- } else if (errors.length > 0) {
265
- errors.splice(0, errors.length);
266
- }
267
- }
268
- return void 0;
269
- };
270
- </script>
271
-
272
- <script>
273
- export default { name: "LibFileInput" };
274
- </script>
@@ -1,43 +0,0 @@
1
- import { type HTMLAttributes, type InputHTMLAttributes } from "vue";
2
- import type { FileInputError } from "../../types/index.js";
3
- import { type LinkableByIdProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js";
4
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- input: (val: File[]) => any;
6
- errors: (val: FileInputError[]) => any;
7
- }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
- onInput?: ((val: File[]) => any) | undefined;
9
- onErrors?: ((val: FileInputError[]) => any) | undefined;
10
- }>, {
11
- multiple: boolean;
12
- formats: string[];
13
- compact: boolean;
14
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
15
- icon?: (props: {}) => any;
16
- } & {
17
- label?: (props: {}) => any;
18
- } & {
19
- formats?: (props: {}) => any;
20
- }>;
21
- export default _default;
22
- type WrapperTypes = WrapperProps<"input", InputHTMLAttributes> & WrapperProps<"wrapper", HTMLAttributes> & WrapperProps<"previews", HTMLAttributes>;
23
- type RealProps = LinkableByIdProps & {
24
- multiple?: boolean;
25
- /**
26
- * A list of extensions or mime types to add to the input's accept. Basic validations are done so that files match an extension and mimeType, but note that a file could still be lying, all files should be validated server side.
27
- *
28
- * Pass an empty array to allow any filetype.
29
- */
30
- formats?: string[];
31
- compact?: boolean;
32
- };
33
- interface Props extends
34
- /** @vue-ignore */
35
- Partial<Omit<InputHTMLAttributes, "class" | "multiple" | "formats" | "compact"> & TailwindClassProp>,
36
- /** @vue-ignore */
37
- Partial<WrapperTypes>, RealProps {
38
- }
39
- type __VLS_WithSlots<T, S> = T & {
40
- new (): {
41
- $slots: S;
42
- };
43
- };