@witchcraft/ui 0.3.26 → 0.4.0-beta.10

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 (287) hide show
  1. package/README.md +54 -61
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +1 -1
  4. package/dist/runtime/assets/animations.css +1 -1
  5. package/dist/runtime/assets/locales/en.json +2 -0
  6. package/dist/runtime/build/WitchcraftUiResolver.js +2 -2
  7. package/dist/runtime/components/TestControls/TestControls.vue +3 -3
  8. package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
  9. package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
  10. package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
  11. package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
  12. package/dist/runtime/components/WCheckbox/WCheckbox.vue +110 -0
  13. package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
  14. package/dist/runtime/components/WColorInput/WColorInput.d.vue.ts +45 -0
  15. package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
  16. package/dist/runtime/components/WColorInput/WColorInput.vue.d.ts +45 -0
  17. package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
  18. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
  19. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
  20. package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +7 -6
  21. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +41 -29
  22. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +7 -6
  23. package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +111 -0
  24. package/dist/runtime/components/WCombobox/WCombobox.vue +405 -0
  25. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +111 -0
  26. package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
  27. package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
  28. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +8 -13
  29. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
  30. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +8 -13
  31. package/dist/runtime/components/WDatePicker/WDatePicker.d.vue.ts +40 -0
  32. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  33. package/dist/runtime/components/WDatePicker/WDatePicker.vue.d.ts +40 -0
  34. package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +21 -21
  35. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  36. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.d.vue.ts → WDatePicker/WTimeZonePicker.d.vue.ts} +1 -11
  37. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  38. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue.d.ts → WDatePicker/WTimeZonePicker.vue.d.ts} +1 -11
  39. package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +10 -12
  40. package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +0 -3
  41. package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +0 -3
  42. package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
  43. package/dist/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +74 -57
  44. package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
  45. package/dist/runtime/components/{Icon/Icon.vue.d.ts → WIcon/WIcon.d.vue.ts} +2 -6
  46. package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
  47. package/dist/runtime/components/{Icon/Icon.d.vue.ts → WIcon/WIcon.vue.d.ts} +2 -6
  48. package/dist/runtime/components/{LibMultiValues/LibMultiValues.d.vue.ts → WMultiValues/WMultiValues.d.vue.ts} +8 -14
  49. package/dist/runtime/components/WMultiValues/WMultiValues.vue +150 -0
  50. package/dist/runtime/components/{LibMultiValues/LibMultiValues.vue.d.ts → WMultiValues/WMultiValues.vue.d.ts} +8 -14
  51. package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
  52. package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +34 -47
  53. package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
  54. package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
  55. package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +35 -17
  56. package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
  57. package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
  58. package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
  59. package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
  60. package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
  61. package/dist/runtime/components/WPagination/WPagination.vue +182 -0
  62. package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
  63. package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
  64. package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  65. package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
  66. package/dist/runtime/components/WPopover/WPopover.d.vue.ts +45 -0
  67. package/dist/runtime/components/WPopover/WPopover.vue +144 -0
  68. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +45 -0
  69. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +51 -0
  70. package/dist/runtime/components/WPopup/WPopup.vue +106 -0
  71. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +51 -0
  72. package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +14 -18
  73. package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
  74. package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +14 -18
  75. package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +14 -29
  76. package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
  77. package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +14 -29
  78. package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +6 -5
  79. package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
  80. package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +6 -5
  81. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.d.vue.ts → WSimpleInput/WSimpleInput.d.vue.ts} +10 -16
  82. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +14 -24
  83. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue.d.ts → WSimpleInput/WSimpleInput.vue.d.ts} +10 -16
  84. package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
  85. package/dist/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +13 -14
  86. package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
  87. package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
  88. package/dist/runtime/components/WTooltip/WTooltip.vue +112 -0
  89. package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
  90. package/dist/runtime/components/index.d.ts +20 -20
  91. package/dist/runtime/components/index.js +20 -20
  92. package/dist/runtime/composables/index.d.ts +4 -4
  93. package/dist/runtime/composables/index.js +4 -4
  94. package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
  95. package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
  96. package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
  97. package/dist/runtime/composables/useDisplayForReka.js +16 -0
  98. package/dist/runtime/composables/useFallbackId.d.ts +3 -0
  99. package/dist/runtime/composables/useFallbackId.js +5 -0
  100. package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
  101. package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
  102. package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
  103. package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
  104. package/dist/runtime/composables/useSetupDarkMode.js +90 -4
  105. package/dist/runtime/helpers/NotificationHandler.d.ts +2 -2
  106. package/dist/runtime/injectionKeys.d.ts +1 -5
  107. package/dist/runtime/injectionKeys.js +0 -2
  108. package/dist/runtime/types/index.d.ts +85 -27
  109. package/dist/runtime/types/index.js +1 -0
  110. package/package.json +1 -1
  111. package/src/module.ts +1 -1
  112. package/src/runtime/assets/animations.css +3 -3
  113. package/src/runtime/assets/locales/en.json +2 -0
  114. package/src/runtime/build/WitchcraftUiResolver.ts +2 -2
  115. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  116. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  117. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  118. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  119. package/src/runtime/components/WCheckbox/WCheckbox.vue +125 -0
  120. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  121. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  122. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  123. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  124. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +44 -31
  125. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  126. package/src/runtime/components/WCombobox/WCombobox.vue +450 -0
  127. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  128. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  129. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  130. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  131. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  132. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +21 -21
  133. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  134. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  135. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  136. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -10
  137. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  138. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +7 -7
  139. package/src/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +98 -97
  140. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  141. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  142. package/src/runtime/components/WMultiValues/WMultiValues.vue +163 -0
  143. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +9 -9
  144. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +45 -65
  145. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  146. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +51 -29
  147. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  148. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  149. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  150. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  151. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  152. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  153. package/src/runtime/components/WPopover/WPopover.vue +168 -0
  154. package/src/runtime/components/WPopup/WPopup.stories.ts +104 -0
  155. package/src/runtime/components/WPopup/WPopup.vue +125 -0
  156. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  157. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  158. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  159. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  160. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  161. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  162. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +28 -44
  163. package/src/runtime/components/{LibTable/LibTable.stories.ts → WTable/WTable.stories.ts} +60 -52
  164. package/src/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +85 -88
  165. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  166. package/src/runtime/components/WTooltip/WTooltip.vue +128 -0
  167. package/src/runtime/components/index.ts +20 -20
  168. package/src/runtime/composables/index.ts +4 -4
  169. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  170. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  171. package/src/runtime/composables/useFallbackId.ts +6 -0
  172. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  173. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  174. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  175. package/src/runtime/helpers/NotificationHandler.ts +2 -2
  176. package/src/runtime/injectionKeys.ts +1 -7
  177. package/src/runtime/types/index.ts +105 -32
  178. package/types/components.d.ts +14 -15
  179. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -6
  180. package/dist/runtime/components/Aria/Aria.vue +0 -16
  181. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -6
  182. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -37
  183. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -37
  184. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -41
  185. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  186. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -41
  187. package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +0 -64
  188. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  189. package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +0 -64
  190. package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +0 -191
  191. package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +0 -191
  192. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -46
  193. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -46
  194. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -256
  195. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  196. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -256
  197. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -27
  198. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  199. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -27
  200. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  201. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -45
  202. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -45
  203. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -15
  204. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -15
  205. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -105
  206. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  207. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -105
  208. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -15
  209. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -15
  210. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -52
  211. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  212. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -52
  213. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  214. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -99
  215. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  216. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -99
  217. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -125
  218. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -125
  219. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -18
  220. package/dist/runtime/components/Template/NAME.vue +0 -27
  221. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -18
  222. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  223. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  224. package/dist/runtime/components/shared/props.d.ts +0 -171
  225. package/dist/runtime/components/shared/props.js +0 -2
  226. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  227. package/dist/runtime/composables/useAriaLabel.js +0 -15
  228. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  229. package/dist/runtime/composables/useDarkMode.js +0 -89
  230. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  231. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  232. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  233. package/dist/runtime/composables/useSuggestions.js +0 -263
  234. package/src/runtime/components/Aria/Aria.vue +0 -26
  235. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  236. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -131
  237. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  238. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  239. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -419
  240. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  241. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  242. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  243. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -131
  244. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  245. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  246. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  247. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  248. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  249. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  250. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  251. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  252. package/src/runtime/components/Template/NAME.vue +0 -49
  253. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  254. package/src/runtime/components/shared/props.ts +0 -199
  255. package/src/runtime/composables/useAriaLabel.ts +0 -23
  256. package/src/runtime/composables/useDarkMode.ts +0 -199
  257. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  258. package/src/runtime/composables/useSuggestions.ts +0 -339
  259. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  260. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  261. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  262. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  263. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  264. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  265. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  266. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  267. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.d.vue.ts → WDatePicker/WRangeDatePicker.d.vue.ts} +0 -0
  268. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue.d.ts → WDatePicker/WRangeDatePicker.vue.d.ts} +0 -0
  269. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +0 -0
  270. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +0 -0
  271. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  272. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  273. /package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +0 -0
  274. /package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +0 -0
  275. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  276. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.d.vue.ts → WNotifications/WNotificationTestMessageComponent.d.vue.ts} +0 -0
  277. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  278. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue.d.ts → WNotifications/WNotificationTestMessageComponent.vue.d.ts} +0 -0
  279. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.d.ts +0 -0
  280. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.js +0 -0
  281. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  282. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  283. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  284. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  285. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
  286. /package/src/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  287. /package/src/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.ts +0 -0
@@ -0,0 +1,85 @@
1
+ <template>
2
+ <WPopover
3
+ :root-props="{
4
+ class: 'color-input--popover-root',
5
+ ...rootProps
6
+ }"
7
+ :content-props="{
8
+ onInteractOutside: () => {
9
+ $tempValue = void 0;
10
+ emit('cancel');
11
+ }
12
+ }"
13
+ v-model="showPopover"
14
+ >
15
+ <template #button>
16
+ <WColorSwatchButton
17
+ :id="finalId"
18
+ :temp-value="$tempValue"
19
+ :value="$value"
20
+ @click="togglePopover"
21
+ />
22
+ </template>
23
+ <template #popover>
24
+ <div
25
+ class="color-input--popover-wrapper p-5"
26
+ >
27
+ <WColorPicker
28
+ v-if="showPopover"
29
+ :id="finalId"
30
+ :allow-alpha="allowAlpha"
31
+ :custom-representation="customRepresentation"
32
+ :string-precision="stringPrecision"
33
+ v-model="internalTempValue"
34
+ v-model:temp-value="$tempValue"
35
+ @save="save"
36
+ @cancel="cancel"
37
+ />
38
+ </div>
39
+ </template>
40
+ </Wpopover>
41
+ </template>
42
+
43
+ <script setup>
44
+ import { ref } from "vue";
45
+ import WColorSwatchButton from "./WColorSwatchButton.vue";
46
+ import { useFallbackId } from "../../composables/useFallbackId.js";
47
+ import WColorPicker from "../WColorPicker/WColorPicker.vue";
48
+ import WPopover from "../WPopover/WPopover.vue";
49
+ defineOptions({
50
+ name: "WColorInput"
51
+ });
52
+ const props = defineProps({
53
+ id: { type: String, required: false },
54
+ label: { type: String, required: false },
55
+ allowAlpha: { type: Boolean, required: false, default: true },
56
+ border: { type: Boolean, required: false, default: true },
57
+ copyTransform: { type: Function, required: false, default: (_val, stringVal) => stringVal },
58
+ stringPrecision: { type: Number, required: false, default: 3 },
59
+ customRepresentation: { type: Object, required: false, default: void 0 },
60
+ rootProps: { type: Object, required: false }
61
+ });
62
+ const finalId = useFallbackId(props);
63
+ const emit = defineEmits(["save", "cancel"]);
64
+ const $value = defineModel({ type: Object, ...{ required: false, default: () => ({ r: 0, g: 0, b: 0 }) } });
65
+ const $tempValue = defineModel("tempValue", { type: null, ...{ required: false, default: () => void 0 } });
66
+ const internalTempValue = ref({ ...$value.value });
67
+ const showPopover = ref(false);
68
+ const togglePopover = () => {
69
+ if (showPopover.value) {
70
+ $value.value = internalTempValue.value;
71
+ }
72
+ showPopover.value = !showPopover.value;
73
+ };
74
+ function save() {
75
+ $value.value = internalTempValue.value;
76
+ showPopover.value = false;
77
+ $tempValue.value = void 0;
78
+ emit("save");
79
+ }
80
+ function cancel() {
81
+ showPopover.value = false;
82
+ $tempValue.value = void 0;
83
+ emit("cancel");
84
+ }
85
+ </script>
@@ -0,0 +1,45 @@
1
+ import type { DialogRootEmits, PopoverRootProps } from "reka-ui";
2
+ import { type ButtonHTMLAttributes, type EmitsToProps, type HTMLAttributes } from "vue";
3
+ import type { HsvaColor, RgbaColor, TailwindClassProp } from "../../types/index.js";
4
+ type __VLS_Props = {
5
+ id?: string;
6
+ label?: string;
7
+ allowAlpha?: boolean;
8
+ border?: boolean;
9
+ /** See ColorPicker.copyTransform */
10
+ copyTransform?: (val: HsvaColor, stringVal: string) => any;
11
+ /** See ColorPicker.allowAlpha */
12
+ stringPrecision?: number;
13
+ /** See ColorPicker.customRepresentation */
14
+ customRepresentation?: {
15
+ fromHsvaToString: (hsva: HsvaColor, includeAlpha: boolean) => string;
16
+ };
17
+ rootProps?: PopoverRootProps & EmitsToProps<DialogRootEmits> & Omit<HTMLAttributes, "class"> & TailwindClassProp;
18
+ } & /** @vue-ignore */ Omit<ButtonHTMLAttributes, "class"> & /** @vue-ignore */ TailwindClassProp;
19
+ type __VLS_ModelProps = {
20
+ modelValue?: RgbaColor;
21
+ "tempValue"?: RgbaColor | undefined;
22
+ };
23
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
24
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
25
+ "update:modelValue": (value: RgbaColor) => any;
26
+ "update:tempValue": (value: RgbaColor | undefined) => any;
27
+ } & {
28
+ save: () => any;
29
+ cancel: () => any;
30
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
31
+ "onUpdate:modelValue"?: ((value: RgbaColor) => any) | undefined;
32
+ onSave?: (() => any) | undefined;
33
+ onCancel?: (() => any) | undefined;
34
+ "onUpdate:tempValue"?: ((value: RgbaColor | undefined) => any) | undefined;
35
+ }>, {
36
+ border: boolean;
37
+ allowAlpha: boolean;
38
+ copyTransform: (val: HsvaColor, stringVal: string) => any;
39
+ stringPrecision: number;
40
+ customRepresentation: {
41
+ fromHsvaToString: (hsva: HsvaColor, includeAlpha: boolean) => string;
42
+ };
43
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
44
+ declare const _default: typeof __VLS_export;
45
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import { type ButtonHTMLAttributes } from "vue";
2
+ import type { RgbaColor, TailwindClassProp } from "../../types/index.js";
3
+ type __VLS_Props = {
4
+ id?: string;
5
+ tempValue: RgbaColor | undefined;
6
+ value: RgbaColor;
7
+ } & /** @vue-ignore */ Omit<ButtonHTMLAttributes, "class" | "value"> & /** @vue-ignore */ TailwindClassProp;
8
+ declare var __VLS_9: {
9
+ stringColor: string;
10
+ classes: "\n\tcolor-input--swatch\n\tafter:content-vertical-holder\n\tmin-w-4\n\tflex-1\n\trelative\n\tbefore:content-['']\n\tbefore:absolute\n\tbefore:inset-0\n\tbefore:bg-transparency-squares\n\tbefore:z-[-1]\n";
11
+ }, __VLS_11: {
12
+ tempStringColor: string;
13
+ classes: "\n\tcolor-input--swatch\n\tafter:content-vertical-holder\n\tmin-w-4\n\tflex-1\n\trelative\n\tbefore:content-['']\n\tbefore:absolute\n\tbefore:inset-0\n\tbefore:bg-transparency-squares\n\tbefore:z-[-1]\n";
14
+ };
15
+ type __VLS_Slots = {} & {
16
+ default?: (props: typeof __VLS_9) => any;
17
+ } & {
18
+ temp?: (props: typeof __VLS_11) => any;
19
+ };
20
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
24
+ type __VLS_WithSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,86 @@
1
+ <template>
2
+ <WButton
3
+ :id="id"
4
+ :class="twMerge(
5
+ `
6
+ color-input--button
7
+ p-0
8
+ flex
9
+ flex-nowrap
10
+ min-w-4
11
+ overflow-hidden
12
+ [&_.button--label]:items-stretch
13
+ [&_.button--label]:gap-0
14
+ after:hidden
15
+ `,
16
+ $attrs.class
17
+ )"
18
+ :aria-label="t('color-input.aria-and-title-prefix') + stringColor"
19
+ :title="t('color-input.aria-and-title-prefix') + stringColor"
20
+ v-bind="{ ...$attrs, class: void 0 }"
21
+ >
22
+ <template #label>
23
+ <div
24
+ class="
25
+ color-input--swatch-wrapper
26
+ flex
27
+ w-full
28
+ "
29
+ >
30
+ <slot v-bind="{ stringColor, classes: swatchClasses }">
31
+ <div
32
+ :class="swatchClasses"
33
+ :style="`background:${stringColor}`"
34
+ />
35
+ </slot>
36
+ <slot
37
+ v-if="tempValue"
38
+ v-bind="{ tempStringColor, classes: swatchClasses }"
39
+ name="temp"
40
+ >
41
+ <div
42
+ :class="swatchClasses"
43
+ :style="`background:${tempStringColor}`"
44
+ />
45
+ </slot>
46
+ </div>
47
+ </template>
48
+ </Wbutton>
49
+ </template>
50
+
51
+ <script setup>
52
+ import Color from "colorjs.io";
53
+ import { computed, useAttrs } from "vue";
54
+ import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
55
+ import { twMerge } from "../../utils/twMerge.js";
56
+ import WButton from "../WButton/WButton.vue";
57
+ const $attrs = useAttrs();
58
+ const t = useInjectedI18n();
59
+ const props = defineProps({
60
+ id: { type: String, required: false },
61
+ tempValue: { type: null, required: true },
62
+ value: { type: Object, required: true }
63
+ });
64
+ const swatchClasses = `
65
+ color-input--swatch
66
+ after:content-vertical-holder
67
+ min-w-4
68
+ flex-1
69
+ relative
70
+ before:content-['']
71
+ before:absolute
72
+ before:inset-0
73
+ before:bg-transparency-squares
74
+ before:z-[-1]
75
+ `;
76
+ const stringColor = computed(() => new Color("srgb", [
77
+ props.value.r / 255,
78
+ props.value.g / 255,
79
+ props.value.b / 255
80
+ ], props.value.a ?? 1).toString());
81
+ const tempStringColor = computed(() => props.tempValue ? new Color("srgb", [
82
+ props.tempValue.r / 255,
83
+ props.tempValue.g / 255,
84
+ props.tempValue.b / 255
85
+ ], props.tempValue.a ?? 1).toString() : "");
86
+ </script>
@@ -0,0 +1,28 @@
1
+ import { type ButtonHTMLAttributes } from "vue";
2
+ import type { RgbaColor, TailwindClassProp } from "../../types/index.js";
3
+ type __VLS_Props = {
4
+ id?: string;
5
+ tempValue: RgbaColor | undefined;
6
+ value: RgbaColor;
7
+ } & /** @vue-ignore */ Omit<ButtonHTMLAttributes, "class" | "value"> & /** @vue-ignore */ TailwindClassProp;
8
+ declare var __VLS_9: {
9
+ stringColor: string;
10
+ classes: "\n\tcolor-input--swatch\n\tafter:content-vertical-holder\n\tmin-w-4\n\tflex-1\n\trelative\n\tbefore:content-['']\n\tbefore:absolute\n\tbefore:inset-0\n\tbefore:bg-transparency-squares\n\tbefore:z-[-1]\n";
11
+ }, __VLS_11: {
12
+ tempStringColor: string;
13
+ classes: "\n\tcolor-input--swatch\n\tafter:content-vertical-holder\n\tmin-w-4\n\tflex-1\n\trelative\n\tbefore:content-['']\n\tbefore:absolute\n\tbefore:inset-0\n\tbefore:bg-transparency-squares\n\tbefore:z-[-1]\n";
14
+ };
15
+ type __VLS_Slots = {} & {
16
+ default?: (props: typeof __VLS_9) => any;
17
+ } & {
18
+ temp?: (props: typeof __VLS_11) => any;
19
+ };
20
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
24
+ type __VLS_WithSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -1,6 +1,7 @@
1
1
  import type { HsvaColor, RgbaColor } from "../../types/index.js";
2
- import { type LabelProps, type LinkableByIdProps } from "../shared/props.js";
3
- type __VLS_Props = LabelProps & LinkableByIdProps & {
2
+ type __VLS_Props = {
3
+ id?: string;
4
+ label?: string;
4
5
  allowAlpha?: boolean;
5
6
  /**
6
7
  * The precision of the rgba string representation of the color. Defaults to 3. Extra trailing zeros are removed for a prettier number.
@@ -35,23 +36,23 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
35
36
  "update:modelValue": (value: RgbaColor) => any;
36
37
  "update:tempValue": (value: RgbaColor | undefined) => any;
37
38
  } & {
38
- cancel: () => any;
39
39
  save: (val: RgbaColor) => any;
40
+ cancel: () => any;
40
41
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
41
42
  "onUpdate:modelValue"?: ((value: RgbaColor) => any) | undefined;
42
- onCancel?: (() => any) | undefined;
43
43
  onSave?: ((val: RgbaColor) => any) | undefined;
44
+ onCancel?: (() => any) | undefined;
44
45
  "onUpdate:tempValue"?: ((value: RgbaColor | undefined) => any) | undefined;
45
46
  }>, {
46
47
  border: boolean;
47
- valid: boolean;
48
48
  allowAlpha: boolean;
49
+ copyTransform: (val: HsvaColor, stringVal: string) => any;
49
50
  stringPrecision: number;
50
51
  customRepresentation: {
51
52
  fromHsvaToString: (hsva: HsvaColor, includeAlpha: boolean) => string;
52
53
  fromStringToHsva?: (string: string) => HsvaColor | undefined;
53
54
  };
54
- copyTransform: (val: HsvaColor, stringVal: string) => any;
55
+ valid: boolean;
55
56
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
56
57
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
57
58
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- :id="id ?? fallbackId"
3
+ :id="finalId"
4
4
  :aria-label="t('color-picker.aria')"
5
5
  :class="twMerge(
6
6
  `color-picker
@@ -12,7 +12,7 @@
12
12
  max-w-[300px]
13
13
  flex flex-col items-center justify-center
14
14
  bg-neutral-50
15
- dark:bg-neutral-950
15
+ dark:bg-neutral-800
16
16
  gap-3
17
17
  p-3
18
18
  `,
@@ -21,7 +21,12 @@
21
21
  [--bg:rgb(var(--contrast-dark))]
22
22
  `,
23
23
  border && `
24
- border rounded-sm border-neutral-600
24
+ border
25
+ rounded-sm
26
+ border-neutral-300
27
+ dark:border-neutral-900
28
+ shadow-md
29
+ shadow-black/30
25
30
  `,
26
31
  $attrs?.class
27
32
  )"
@@ -44,9 +49,9 @@
44
49
  ref="pickerEl"
45
50
  />
46
51
  <div
47
- aria-live="assertive"
52
+ role="slider"
48
53
  :aria-description="ariaDescription"
49
- :aria-label="`${t('color-picker.aria.saturation')}: ${localColor.percent.s}, ${t('color-picker.aria.value')}: ${localColor.percent.s}`"
54
+ :aria-valuetext="`${t('color-picker.aria.saturation')}: ${localColor.percent.s}, ${t('color-picker.aria.value')}: ${localColor.percent.v}`"
50
55
  :class="`
51
56
  color-picker--all-handle
52
57
  ${handleClasses}
@@ -103,7 +108,7 @@
103
108
  <div
104
109
  role="slider"
105
110
  :aria-label="t('color-picker.aria.alpha-slider')"
106
- :aria-valuenow="`${localColor.percent.h}`"
111
+ :aria-valuenow="`${localColor.percent.a}`"
107
112
  :aria-valuemin="0"
108
113
  :aria-valuemax="100"
109
114
  :aria-description="ariaDescription"
@@ -138,7 +143,7 @@
138
143
  </div>
139
144
  <div class="color-picker--input-group flex flex-1 items-center gap-2">
140
145
  <slot name="input">
141
- <lib-simple-input
146
+ <WSimpleInput
142
147
  :valid="valid"
143
148
  class="color-picker--input w-full"
144
149
  :aria-label="label"
@@ -146,30 +151,30 @@
146
151
  @input="parseInput"
147
152
  @blur="onBlurFixInvalidValue"
148
153
  />
149
- <lib-button
154
+ <WButton
150
155
  class="color-picker--copy-button"
151
156
  :aria-label="t('copy')"
152
157
  @click="copy(copyTransform?.(localColor.val, localColorString) ?? localColorString)"
153
158
  >
154
- <icon><i-fa6-regular-copy/></icon>
155
- </lib-button>
159
+ <WIcon><i-lucide-copy/></WIcon>
160
+ </Wbutton>
156
161
  </slot>
157
162
  </div>
158
163
  </div>
159
164
  <slot name="buttons">
160
165
  <div class="color-picker--save-cancel-group flex w-full items-center justify-center gap-2">
161
- <lib-button
166
+ <WButton
162
167
  class="color-picker--save-button"
163
168
  @click="save()"
164
169
  >
165
170
  {{ t("save") }}
166
- </lib-button>
167
- <lib-button
171
+ </Wbutton>
172
+ <WButton
168
173
  class="color-picker--cancel-button"
169
174
  @click="emits('cancel')"
170
175
  >
171
176
  {{ t("cancel") }}
172
- </lib-button>
177
+ </Wbutton>
173
178
  </div>
174
179
  </slot>
175
180
  </div>
@@ -184,16 +189,16 @@ import { computed, onMounted, reactive, ref, useAttrs, watch } from "vue";
184
189
  import { safeConvertToHsva } from "./utils/safeConvertToHsva.js";
185
190
  import { safeConvertToRgba } from "./utils/safeConvertToRgba.js";
186
191
  import { toLowPrecisionRgbaString } from "./utils/toLowPrecisionRgbaString.js";
187
- import IFa6RegularCopy from "~icons/fa-regular/copy";
192
+ import ILucideCopy from "~icons/lucide/copy";
193
+ import { useFallbackId } from "../../composables/useFallbackId.js";
188
194
  import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
189
195
  import { copy } from "../../helpers/copy.js";
190
196
  import { twMerge } from "../../utils/twMerge.js";
191
- import Icon from "../Icon/Icon.vue";
192
- import LibButton from "../LibButton/LibButton.vue";
193
- import LibSimpleInput from "../LibSimpleInput/LibSimpleInput.vue";
194
- import { getFallbackId } from "../shared/props.js";
197
+ import WButton from "../WButton/WButton.vue";
198
+ import WIcon from "../WIcon/WIcon.vue";
199
+ import WSimpleInput from "../WSimpleInput/WSimpleInput.vue";
195
200
  defineOptions({
196
- name: "LibColorPicker"
201
+ name: "WColorPicker"
197
202
  });
198
203
  const $attrs = useAttrs();
199
204
  const t = useInjectedI18n();
@@ -222,8 +227,8 @@ const handleClasses = `
222
227
  `;
223
228
  const emits = defineEmits(["save", "cancel"]);
224
229
  const props = defineProps({
225
- label: { type: String, required: false },
226
230
  id: { type: String, required: false },
231
+ label: { type: String, required: false },
227
232
  allowAlpha: { type: Boolean, required: false, default: true },
228
233
  stringPrecision: { type: Number, required: false, default: 3 },
229
234
  customRepresentation: { type: Object, required: false, default: void 0 },
@@ -231,13 +236,16 @@ const props = defineProps({
231
236
  copyTransform: { type: Function, required: false, default: (_val, stringVal) => stringVal },
232
237
  valid: { type: Boolean, required: false, default: true }
233
238
  });
239
+ const finalId = useFallbackId(props);
234
240
  const ariaDescription = t("color-picker.aria.description");
235
- const fallbackId = getFallbackId();
236
241
  const $value = defineModel({ type: Object, ...{ required: false, default: () => ({ r: 0, g: 0, b: 0 }) } });
237
242
  const $tempValue = defineModel("tempValue", { type: null, ...{ required: false, default: () => void 0 } });
238
243
  const pickerEl = ref(null);
239
244
  const hueSliderEl = ref(null);
240
245
  const alphaSliderEl = ref(null);
246
+ let pickerCtx = null;
247
+ let hueSliderCtx = null;
248
+ let alphaSliderCtx = null;
241
249
  const config = {
242
250
  hue: {
243
251
  el: hueSliderEl,
@@ -294,7 +302,8 @@ function onBlurFixInvalidValue() {
294
302
  }
295
303
  }
296
304
  function updatePicker(el, hue) {
297
- const ctx = el.getContext("2d");
305
+ if (!pickerCtx) return;
306
+ const ctx = pickerCtx;
298
307
  const { height, width } = el;
299
308
  ctx.clearRect(0, 0, width, height);
300
309
  const gradient = ctx.createLinearGradient(0, 0, 0, height);
@@ -310,8 +319,8 @@ function updatePicker(el, hue) {
310
319
  ctx.fillRect(0, 0, width, height);
311
320
  ctx.globalCompositeOperation = "source-over";
312
321
  }
313
- function updateSlider(el, stops, length = 360) {
314
- const ctx = el.getContext("2d");
322
+ function updateSlider(el, ctx, stops, length = 360) {
323
+ if (!ctx) return;
315
324
  const { height, width } = el;
316
325
  ctx.clearRect(0, 0, width, height);
317
326
  const end = isArray(stops) ? stops.length - 1 : length;
@@ -382,7 +391,7 @@ const slider = {
382
391
  }
383
392
  },
384
393
  pointerdown: (e, type) => {
385
- const focusTargetClass = `#${props.id ?? fallbackId} .color-picker--${type}-handle`;
394
+ const focusTargetClass = `#${finalId} .color-picker--${type}-handle`;
386
395
  const focusTarget = document.querySelector(focusTargetClass);
387
396
  if (focusTarget instanceof HTMLElement) focusTarget.focus();
388
397
  if (dragging) return;
@@ -417,9 +426,9 @@ function updateSliders(_) {
417
426
  hsl0.alpha = 0;
418
427
  const hsl1 = color.clone();
419
428
  hsl1.alpha = 1;
420
- updateSlider(alphaSliderEl.value, [hsl0.toString(), hsl1.toString()]);
429
+ updateSlider(alphaSliderEl.value, alphaSliderCtx, [hsl0.toString(), hsl1.toString()]);
421
430
  }
422
- updateSlider(hueSliderEl.value, (i) => `hsl(${i} 100% 50%)`);
431
+ updateSlider(hueSliderEl.value, hueSliderCtx, (i) => `hsl(${i} 100% 50%)`);
423
432
  updatePicker(pickerEl.value, _.h);
424
433
  }
425
434
  function updateValueAndPosition(_) {
@@ -456,8 +465,11 @@ onMounted(() => {
456
465
  if ($tempValue.value !== void 0) {
457
466
  convertAndUpdateAll($tempValue.value);
458
467
  }
459
- const handle = document.querySelector(`#${props.id ?? fallbackId} .color-picker--all-handle`);
468
+ const handle = document.querySelector(`#${finalId} .color-picker--all-handle`);
460
469
  if (handle instanceof HTMLElement) handle.focus();
470
+ pickerCtx = pickerEl.value?.getContext("2d") ?? null;
471
+ hueSliderCtx = hueSliderEl.value?.getContext("2d") ?? null;
472
+ alphaSliderCtx = alphaSliderEl.value?.getContext("2d") ?? null;
461
473
  });
462
474
  watch($value, () => {
463
475
  convertAndUpdateAll($value.value);
@@ -1,6 +1,7 @@
1
1
  import type { HsvaColor, RgbaColor } from "../../types/index.js";
2
- import { type LabelProps, type LinkableByIdProps } from "../shared/props.js";
3
- type __VLS_Props = LabelProps & LinkableByIdProps & {
2
+ type __VLS_Props = {
3
+ id?: string;
4
+ label?: string;
4
5
  allowAlpha?: boolean;
5
6
  /**
6
7
  * The precision of the rgba string representation of the color. Defaults to 3. Extra trailing zeros are removed for a prettier number.
@@ -35,23 +36,23 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
35
36
  "update:modelValue": (value: RgbaColor) => any;
36
37
  "update:tempValue": (value: RgbaColor | undefined) => any;
37
38
  } & {
38
- cancel: () => any;
39
39
  save: (val: RgbaColor) => any;
40
+ cancel: () => any;
40
41
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
41
42
  "onUpdate:modelValue"?: ((value: RgbaColor) => any) | undefined;
42
- onCancel?: (() => any) | undefined;
43
43
  onSave?: ((val: RgbaColor) => any) | undefined;
44
+ onCancel?: (() => any) | undefined;
44
45
  "onUpdate:tempValue"?: ((value: RgbaColor | undefined) => any) | undefined;
45
46
  }>, {
46
47
  border: boolean;
47
- valid: boolean;
48
48
  allowAlpha: boolean;
49
+ copyTransform: (val: HsvaColor, stringVal: string) => any;
49
50
  stringPrecision: number;
50
51
  customRepresentation: {
51
52
  fromHsvaToString: (hsva: HsvaColor, includeAlpha: boolean) => string;
52
53
  fromStringToHsva?: (string: string) => HsvaColor | undefined;
53
54
  };
54
- copyTransform: (val: HsvaColor, stringVal: string) => any;
55
+ valid: boolean;
55
56
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
56
57
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
57
58
  declare const _default: typeof __VLS_export;
@@ -0,0 +1,111 @@
1
+ import type { AcceptableValue, ComboboxContentEmits, ComboboxContentProps, ComboboxInputEmits, ComboboxInputProps } from "reka-ui";
2
+ import type { EmitsToProps, HTMLAttributes, InputHTMLAttributes } from "vue";
3
+ import { type SuggestionsDisplayProps } from "../../composables/useDisplayForReka.js";
4
+ import type { PopupConstrainToProps } from "../../types/index.js";
5
+ declare const __VLS_export: <TSuggestion extends NonNullable<AcceptableValue>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
6
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(SuggestionsDisplayProps<TSuggestion> & PopupConstrainToProps & {
7
+ id?: string;
8
+ border?: boolean;
9
+ to?: string;
10
+ /**
11
+ * Validates the input, return true if valid, otherwise return an error message.
12
+ *
13
+ * If the input is invalid, modelValue is not updated. Empty inputs are visually valid, but they cannot trigger saves or or any setting of modelValue.
14
+ *
15
+ * If restrictToSuggestions is true, the input will be invalid if there is no exact match.
16
+ *
17
+ * `save` will not be emitted when the input is invalid.
18
+ *
19
+ * To show an error message, return a string from the function.
20
+ */
21
+ isValid?: (searchTerm: string) => true | string;
22
+ suggestions: TSuggestion[];
23
+ /** Shown in the popup when the search term is valid, not empty, not already selected, there are no suggestions, and restrictToSuggestions is false. Defaults to undefined. */
24
+ emptyLabel?: string;
25
+ /** The popup can't be styled via the regular class attr because it's teleported. You can also pass any reka ComboboxContent options. */
26
+ contentProps?: {
27
+ class?: string;
28
+ to?: string;
29
+ } & HTMLAttributes & ComboboxContentProps & EmitsToProps<ComboboxContentEmits>;
30
+ /** Disables the filter. */
31
+ ignoreFilter?: boolean;
32
+ /** If false, modelValue is set to the search term (so long as it's valid). */
33
+ restrictToSuggestions?: boolean;
34
+ /** Input attributes or reka-ui ComboboxInput props. */
35
+ inputProps?: Omit<InputHTMLAttributes, "class"> & {
36
+ class?: string;
37
+ } & HTMLAttributes & ComboboxInputProps & EmitsToProps<ComboboxInputEmits>;
38
+ } & {
39
+ modelValue?: TSuggestion;
40
+ open?: boolean;
41
+ searchTerm?: string;
42
+ loading?: boolean;
43
+ }) & {
44
+ "onUpdate:modelValue"?: ((value: TSuggestion) => any) | undefined;
45
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
46
+ onSave?: ((value: string) => any) | undefined;
47
+ "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
48
+ "onUpdate:loading"?: ((value: boolean) => any) | undefined;
49
+ onNew?: ((value: string) => any) | undefined;
50
+ }> & (typeof globalThis extends {
51
+ __VLS_PROPS_FALLBACK: infer P;
52
+ } ? P : {});
53
+ expose: (exposed: {}) => void;
54
+ attrs: any;
55
+ slots: {
56
+ 'loading-indicator'?: (props: {}) => any;
57
+ } & {
58
+ right?: (props: {}) => any;
59
+ } & {
60
+ trigger?: (props: {
61
+ open: boolean;
62
+ }) => any;
63
+ } & {
64
+ toggle?: (props: {
65
+ isOpen: boolean;
66
+ }) => any;
67
+ } & {
68
+ header?: (props: {
69
+ class: string;
70
+ filtered: TSuggestion[];
71
+ isShowingEmptyLabel: boolean;
72
+ }) => any;
73
+ } & {
74
+ invalid?: (props: {
75
+ searchTerm: string;
76
+ errorMessage: string;
77
+ id: string;
78
+ role: string;
79
+ }) => any;
80
+ } & {
81
+ suggestions?: (props: {
82
+ filtered: TSuggestion[];
83
+ display: (value: TSuggestion, options?: {
84
+ isForEmit?: boolean;
85
+ }) => string;
86
+ searchTerm: string;
87
+ }) => any;
88
+ } & {
89
+ 'suggestion-icon'?: (props: {
90
+ suggestion: Exclude<TSuggestion, any[]>;
91
+ }) => any;
92
+ } & {
93
+ suggestion?: (props: {
94
+ suggestion: Exclude<TSuggestion, any[]>;
95
+ suggestionText: string;
96
+ }) => any;
97
+ };
98
+ emit: {
99
+ (e: "save", value: string): void;
100
+ (e: "new", value: string): void;
101
+ } & (((event: "update:modelValue", value: TSuggestion) => void) & ((event: "update:open", value: boolean) => void) & ((event: "update:searchTerm", value: string) => void) & ((event: "update:loading", value: boolean) => void));
102
+ }>) => import("vue").VNode & {
103
+ __ctx?: Awaited<typeof __VLS_setup>;
104
+ };
105
+ declare const _default: typeof __VLS_export;
106
+ export default _default;
107
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
108
+ [K in keyof T]: T[K];
109
+ } : {
110
+ [K in keyof T as K]: T[K];
111
+ }) & {};