@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
@@ -0,0 +1,115 @@
1
+ <template>
2
+ <DialogRoot
3
+ v-bind="rootProps"
4
+ v-model:open="modelValue"
5
+ >
6
+ <DialogTrigger
7
+ v-if="$slots.button"
8
+ as-child
9
+ >
10
+ <slot name="button"/>
11
+ </DialogTrigger>
12
+
13
+ <DialogPortal :to="to">
14
+ <DialogOverlay
15
+ as-child
16
+ >
17
+ <slot
18
+ name="backdrop"
19
+ class="popup--backdrop absolute inset-0 bg-black/50"
20
+ >
21
+ <div
22
+ class="popup--backdrop absolute inset-0 bg-black/50"
23
+ />
24
+ </slot>
25
+ </DialogOverlay>
26
+
27
+ <DialogContent
28
+ v-bind="{ ...contentProps, class: void 0 }"
29
+ :class="twMerge(`
30
+ popup--content
31
+ z-100
32
+ focus:outline-none
33
+ fixed
34
+ top-1/2
35
+ left-1/2
36
+ -translate-x-1/2
37
+ -translate-y-1/2
38
+ animate-contentShow
39
+ max-w-[100dvw]
40
+ max-h-[100dvh]
41
+ overflow-auto
42
+ scrollbar-hidden
43
+ p-5
44
+ `, contentProps?.class)"
45
+ >
46
+ <div
47
+ :class="twMerge(`
48
+ popup--content-inner
49
+ flex
50
+ flex-col
51
+ bg-neutral-100
52
+ dark:bg-neutral-800
53
+ rounded-md
54
+ flex
55
+ flex-col
56
+ gap-3
57
+ p-2
58
+ `)"
59
+ >
60
+ <slot name="popup">
61
+ <slot name="title">
62
+ <DialogTitle
63
+ v-if="title"
64
+ class="text-lg font-bold"
65
+ >
66
+ {{ title }}
67
+ </DialogTitle>
68
+ </slot>
69
+ <slot name="description">
70
+ <DialogDescription v-if="description">
71
+ {{ description }}
72
+ </DialogDescription>
73
+ </slot>
74
+ <slot name="extra"/>
75
+ </slot>
76
+ <DialogClose as-child>
77
+ <slot name="close">
78
+ <WButton
79
+ class="justify-self-end"
80
+ @click="modelValue = false"
81
+ >
82
+ Close
83
+ </WButton>
84
+ </slot>
85
+ </DialogClose>
86
+ </div>
87
+ </DialogContent>
88
+ </DialogPortal>
89
+ </DialogRoot>
90
+ </template>
91
+
92
+ <script setup>
93
+ import {
94
+ DialogClose,
95
+ DialogContent,
96
+ DialogDescription,
97
+ DialogOverlay,
98
+ DialogPortal,
99
+ DialogRoot,
100
+ DialogTitle,
101
+ DialogTrigger
102
+ } from "reka-ui";
103
+ import { twMerge } from "../../utils/twMerge.js";
104
+ import WButton from "../WButton/WButton.vue";
105
+ defineOptions({ name: "WPopup", inheritAttrs: false });
106
+ defineProps({
107
+ title: { type: String, required: false },
108
+ description: { type: String, required: false },
109
+ backdropClass: { type: String, required: false },
110
+ contentProps: { type: Object, required: false },
111
+ rootProps: { type: Object, required: false },
112
+ to: { type: String, required: false, default: "#root" }
113
+ });
114
+ const modelValue = defineModel({ type: Boolean, ...{ default: false } });
115
+ </script>
@@ -0,0 +1,51 @@
1
+ import type { DialogContentEmits, DialogContentProps, DialogRootEmits, DialogRootProps } from "reka-ui";
2
+ import type { EmitsToProps, HTMLAttributes } from "vue";
3
+ import type { TailwindClassProp } from "../../types/index.js";
4
+ type __VLS_Props = {
5
+ title?: string;
6
+ description?: string;
7
+ backdropClass?: string;
8
+ /** Overrides reka-ui's DialogContentProps */
9
+ contentProps?: DialogContentProps & EmitsToProps<DialogContentEmits> & Omit<HTMLAttributes, "class"> & TailwindClassProp;
10
+ /** Overrides reka-ui's DialogRootProps */
11
+ rootProps?: DialogRootProps & EmitsToProps<DialogRootEmits> & Omit<HTMLAttributes, "class"> & TailwindClassProp;
12
+ /** Overrides teleport target. */
13
+ to?: string;
14
+ };
15
+ type __VLS_ModelProps = {
16
+ modelValue?: boolean;
17
+ };
18
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
19
+ declare var __VLS_14: {}, __VLS_28: {
20
+ class: string;
21
+ }, __VLS_36: {}, __VLS_38: {}, __VLS_46: {}, __VLS_54: {}, __VLS_62: {};
22
+ type __VLS_Slots = {} & {
23
+ button?: (props: typeof __VLS_14) => any;
24
+ } & {
25
+ backdrop?: (props: typeof __VLS_28) => any;
26
+ } & {
27
+ popup?: (props: typeof __VLS_36) => any;
28
+ } & {
29
+ title?: (props: typeof __VLS_38) => any;
30
+ } & {
31
+ description?: (props: typeof __VLS_46) => any;
32
+ } & {
33
+ extra?: (props: typeof __VLS_54) => any;
34
+ } & {
35
+ close?: (props: typeof __VLS_62) => any;
36
+ };
37
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
38
+ "update:modelValue": (value: boolean) => any;
39
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
40
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
41
+ }>, {
42
+ to: string;
43
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
44
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
45
+ declare const _default: typeof __VLS_export;
46
+ export default _default;
47
+ type __VLS_WithSlots<T, S> = T & {
48
+ new (): {
49
+ $slots: S;
50
+ };
51
+ };
@@ -1,6 +1,7 @@
1
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js";
2
1
  import type { HTMLAttributes } from "vue";
3
- type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
2
+ import type { TailwindClassProp } from "../../types/index.js";
3
+ type __VLS_Props = /** @vue-ignore */ Omit<HTMLAttributes, "class"> & /** @vue-ignore */ TailwindClassProp & {
4
+ label?: string;
4
5
  /** A number from 0-100. It is auto-clamped. */
5
6
  progress: number;
6
7
  /** Will auto hide after this given time if progress is 100% or more or less than 0% until progress is set to something else. Disabled (-1) by default. */
@@ -17,23 +18,19 @@ type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
17
18
  */
18
19
  clamp?: [start: number, end: number];
19
20
  };
20
- interface Props extends
21
- /** @vue-ignore */
22
- Partial<Omit<HTMLAttributes, "class"> & TailwindClassProp>, RealProps {
23
- }
24
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
25
- disabled: boolean;
26
- readonly: boolean;
27
- border: boolean;
28
- unstyle: boolean;
21
+ declare var __VLS_13: {}, __VLS_21: {};
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_13) => any;
24
+ } & {
25
+ default?: (props: typeof __VLS_21) => any;
26
+ };
27
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
29
28
  autohideOnComplete: number;
30
29
  keepSpaceWhenHidden: boolean;
31
30
  clamp: [start: number, end: number];
32
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
33
- default?: (props: {}) => any;
34
- } & {
35
- default?: (props: {}) => any;
36
- }>;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
33
+ declare const _default: typeof __VLS_export;
37
34
  export default _default;
38
35
  type __VLS_WithSlots<T, S> = T & {
39
36
  new (): {
@@ -0,0 +1,150 @@
1
+ <template>
2
+ <Transition>
3
+ <div
4
+ v-if="currentVisibility !== 'hidden'"
5
+ :class="twMerge(`
6
+ progress-bar
7
+ w-[200px]
8
+ whitespace-nowrap
9
+ overflow-x-scroll
10
+ scrollbar-hidden
11
+ rounded-sm
12
+ flex
13
+ relative
14
+ text-sm
15
+ min-w-[50px]
16
+ after:shadow-inner
17
+ after:shadow-black/50
18
+ after:content-[\'\']
19
+ after:absolute
20
+ after:inset-0
21
+ after:pointer-events-none
22
+ after:z-2
23
+ after:transition-all
24
+ before:content-[\'\']
25
+ before:shadow-inner
26
+ before:shadow-black/50
27
+ before:rounded-sm
28
+ before:bg-bars-gradient
29
+ before:animate-slideBgInf
30
+ before:[background-size:15px_15px]
31
+ before:absolute
32
+ before:w-[var(--progress)]
33
+ before:top-0 before:bottom-0 before:left-0
34
+ before:transition-all
35
+ before:z-1
36
+ before:duration-500
37
+ `, currentVisibility === 'pseudo' && `
38
+ after:opacity-0
39
+ before:opacity-0
40
+ `, $attrs.class)"
41
+ :data-value="progress"
42
+ role="progressbar"
43
+ :aria-valuenow="clampNumber(progress, clamp[0] ?? 0, clamp[1] ?? 100)"
44
+ :aria-valuemin="clamp[0] ?? 0"
45
+ :aria-valuemax="clamp[1] ?? 100"
46
+ :aria-label="label"
47
+ v-bind="{ ...$attrs, class: void 0 }"
48
+ :style="`--progress: ${clampNumber(progress, clamp[0] ?? 0, clamp[1] ?? 100)}%;`"
49
+ >
50
+ <div
51
+ class="progress-bar--label-wrapper relative flex-1 z-3"
52
+ aria-hidden="true"
53
+ >
54
+ <span class="before:content-vertical-holder"/>
55
+
56
+ <Transition v-if="currentVisibility === 'visible'">
57
+ <slot>
58
+ <div
59
+ class="
60
+ progress-bar--bottom-label
61
+ text-black
62
+ dark:text-white
63
+ absolute
64
+ inset-0
65
+ flex
66
+ justify-center
67
+ px-2
68
+ "
69
+ >
70
+ <div class="truncate">
71
+ {{ label ?? "" }}
72
+ </div>
73
+ </div>
74
+ </slot>
75
+ </Transition>
76
+ <Transition v-if="currentVisibility === 'visible'">
77
+ <slot>
78
+ <div
79
+ class="
80
+ progress-bar--top-label
81
+ pointer-events-none
82
+ absolute
83
+ inset-0
84
+ flex
85
+ justify-center
86
+ transition-all
87
+ duration-500
88
+ text-white
89
+ [clip-path:inset(0_calc(100%-var(--progress))_0_0)]
90
+ px-2
91
+ "
92
+ >
93
+ <div class="truncate">
94
+ {{ label ?? "" }}
95
+ </div>
96
+ </div>
97
+ </slot>
98
+ </Transition>
99
+ </div>
100
+ </div>
101
+ </Transition>
102
+ </template>
103
+
104
+ <script setup>
105
+ import { clampNumber } from "@alanscodelog/utils/clampNumber";
106
+ import { unreachable } from "@alanscodelog/utils/unreachable";
107
+ import { ref, useAttrs, watch } from "vue";
108
+ import { twMerge } from "../../utils/twMerge.js";
109
+ defineOptions({
110
+ name: "WProgressBar",
111
+ inheritAttrs: false
112
+ });
113
+ const $attrs = useAttrs();
114
+ const props = defineProps({
115
+ label: { type: String, required: false },
116
+ progress: { type: Number, required: true },
117
+ autohideOnComplete: { type: Number, required: false, default: -1 },
118
+ keepSpaceWhenHidden: { type: Boolean, required: false, default: false },
119
+ clamp: { type: Array, required: false, default: () => [0, 100] }
120
+ });
121
+ const currentVisibility = ref("visible");
122
+ let lastVisibility = null;
123
+ function updateVisibility(immediate = false, onCleanup) {
124
+ const isComplete = props.progress >= 100 || props.progress < 0;
125
+ const shouldHide = props.autohideOnComplete > -1 && isComplete;
126
+ if (!shouldHide) {
127
+ lastVisibility = null;
128
+ currentVisibility.value = "visible";
129
+ return;
130
+ }
131
+ const newVisibility = props.keepSpaceWhenHidden ? "pseudo" : "hidden";
132
+ if (immediate) {
133
+ currentVisibility.value = newVisibility;
134
+ lastVisibility = newVisibility;
135
+ } else if (lastVisibility !== newVisibility) {
136
+ lastVisibility = newVisibility;
137
+ const timeout = setTimeout(() => {
138
+ currentVisibility.value = newVisibility;
139
+ }, props.autohideOnComplete);
140
+ if (!onCleanup) unreachable();
141
+ onCleanup(() => clearTimeout(timeout));
142
+ }
143
+ }
144
+ updateVisibility(true);
145
+ watch([
146
+ () => [props.progress, props.keepSpaceWhenHidden, props.autohideOnComplete]
147
+ ], (_new, _old, onCleanup) => {
148
+ updateVisibility(false, onCleanup);
149
+ });
150
+ </script>
@@ -1,6 +1,7 @@
1
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js";
2
1
  import type { HTMLAttributes } from "vue";
3
- type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
2
+ import type { TailwindClassProp } from "../../types/index.js";
3
+ type __VLS_Props = /** @vue-ignore */ Omit<HTMLAttributes, "class"> & /** @vue-ignore */ TailwindClassProp & {
4
+ label?: string;
4
5
  /** A number from 0-100. It is auto-clamped. */
5
6
  progress: number;
6
7
  /** Will auto hide after this given time if progress is 100% or more or less than 0% until progress is set to something else. Disabled (-1) by default. */
@@ -17,23 +18,19 @@ type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
17
18
  */
18
19
  clamp?: [start: number, end: number];
19
20
  };
20
- interface Props extends
21
- /** @vue-ignore */
22
- Partial<Omit<HTMLAttributes, "class"> & TailwindClassProp>, RealProps {
23
- }
24
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
25
- disabled: boolean;
26
- readonly: boolean;
27
- border: boolean;
28
- unstyle: boolean;
21
+ declare var __VLS_13: {}, __VLS_21: {};
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_13) => any;
24
+ } & {
25
+ default?: (props: typeof __VLS_21) => any;
26
+ };
27
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
29
28
  autohideOnComplete: number;
30
29
  keepSpaceWhenHidden: boolean;
31
30
  clamp: [start: number, end: number];
32
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
33
- default?: (props: {}) => any;
34
- } & {
35
- default?: (props: {}) => any;
36
- }>;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
33
+ declare const _default: typeof __VLS_export;
37
34
  export default _default;
38
35
  type __VLS_WithSlots<T, S> = T & {
39
36
  new (): {
@@ -1,6 +1,6 @@
1
- import { type HTMLAttributes } from "vue";
2
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js";
3
- type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
1
+ import type { HTMLAttributes } from "vue";
2
+ import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js";
3
+ type __VLS_Props = /** @vue-ignore */ Omit<HTMLAttributes, "class"> & /** @vue-ignore */ TailwindClassProp & BaseInteractiveProps & {
4
4
  border?: boolean;
5
5
  /** A value to display while recording, if none given the i18n `recorder.recording` key is used. */
6
6
  recordingValue?: string;
@@ -19,54 +19,39 @@ type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
19
19
  bind: (el: HTMLElement) => void;
20
20
  unbind: (el: HTMLElement) => void;
21
21
  };
22
- /** The id of the element. If not provided, the id will be generated automatically. */
23
- id?: string;
24
22
  };
25
- interface Props extends
26
- /** @vue-ignore */
27
- Partial<Omit<HTMLAttributes, "class"> & TailwindClassProp>, RealProps {
28
- }
29
- declare const _default: import("vue").DefineComponent<Props & {
23
+ type __VLS_ModelProps = {
30
24
  /**
31
25
  * Puts the element into recording mode if true. See {@link props.recorder}.
32
26
  */
33
- recording?: boolean;
27
+ "recording"?: boolean;
34
28
  /** The final value of the recorder. For intermediate values while recording, pass a recorder and set an appropriate recording value. */
35
29
  modelValue: string;
36
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
+ };
31
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
32
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
33
  "update:modelValue": (value: string) => any;
38
34
  "update:recording": (value: boolean) => any;
39
35
  } & {
40
36
  "recorder:blur": ($event: FocusEvent) => any;
41
- "recorder:click": (args_0: {
37
+ "recorder:pointerdown": (args_0: {
42
38
  event: MouseEvent | KeyboardEvent;
43
39
  indicator: HTMLElement;
44
40
  input: HTMLInputElement;
45
41
  }) => any;
46
42
  "focus:parent": () => any;
47
- }, string, import("vue").PublicProps, Readonly<Props & {
48
- /**
49
- * Puts the element into recording mode if true. See {@link props.recorder}.
50
- */
51
- recording?: boolean;
52
- /** The final value of the recorder. For intermediate values while recording, pass a recorder and set an appropriate recording value. */
53
- modelValue: string;
54
- }> & Readonly<{
43
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
55
44
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
56
- "onUpdate:recording"?: ((value: boolean) => any) | undefined;
57
45
  "onRecorder:blur"?: (($event: FocusEvent) => any) | undefined;
58
- "onRecorder:click"?: ((args_0: {
46
+ "onRecorder:pointerdown"?: ((args_0: {
59
47
  event: MouseEvent | KeyboardEvent;
60
48
  indicator: HTMLElement;
61
49
  input: HTMLInputElement;
62
50
  }) => any) | undefined;
63
51
  "onFocus:parent"?: (() => any) | undefined;
52
+ "onUpdate:recording"?: ((value: boolean) => any) | undefined;
64
53
  }>, {
65
- id: string;
66
- disabled: boolean;
67
- readonly: boolean;
68
54
  border: boolean;
69
- unstyle: boolean;
70
55
  recordingTitle: string;
71
56
  recorder: Record<string, any>;
72
57
  binders: {
@@ -74,4 +59,5 @@ declare const _default: import("vue").DefineComponent<Props & {
74
59
  unbind: (el: HTMLElement) => void;
75
60
  };
76
61
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
62
+ declare const _default: typeof __VLS_export;
77
63
  export default _default;
@@ -4,9 +4,9 @@
4
4
  contenteditable=false is because of storybook, it's shortcuts interfere when not using real input elements
5
5
  -->
6
6
  <div
7
- :id="id ?? fallbackId"
8
7
  :class="twMerge(
9
- `recorder
8
+ `
9
+ recorder
10
10
  flex items-center
11
11
  gap-2
12
12
  px-2
@@ -31,38 +31,48 @@
31
31
  `,
32
32
  $attrs.class
33
33
  )"
34
- :aria-disabled="disabled"
35
34
  :aria-readonly="readonly"
36
35
  :tabindex="disabled ? -1 : 0"
37
36
  :title="recording ? recordingTitle : tempValue"
38
37
  contenteditable="false"
38
+ v-bind="{ ...$attrs, class: void 0 }"
39
+ role="button"
40
+ :aria-pressed="recording"
41
+ :aria-disabled="disabled"
39
42
  ref="recorderEl"
40
- v-bind="{ ...ariaLabel, ...$attrs, class: void 0 }"
41
43
  @blur="handleBlurRecorder($event)"
42
- @click="handleClickRecorder($event)"
43
- @keydown.space.prevent="handleClickRecorder($event, true)"
44
+ @keydown.space.prevent.capture="handlePointerdownRecorder($event, true)"
44
45
  >
45
- <!-- :aria-description="recording ? recordingTitle : ''" -->
46
+ <span
47
+ class="sr-only"
48
+ aria-live="polite"
49
+ >
50
+ {{ recording ? recordingTitle || t("recorder.recording") : "" }}
51
+ </span>
46
52
  <div
47
53
  :class="twMerge(
48
- `recorder--indicator
49
- inline-block
50
- bg-red-700
51
- rounded-full
52
- w-[1em]
53
- h-[1em]
54
- shrink-0
55
- hover:bg-red-500
56
- `,
54
+ `
55
+ recorder--indicator
56
+ inline-block
57
+ bg-red-700
58
+ rounded-full
59
+ w-[1em]
60
+ h-[1em]
61
+ shrink-0
62
+ `,
57
63
  recording && `
58
64
  animate-blinkInf
59
65
  bg-red-500
60
66
  `,
61
67
  (disabled || readonly) && `
62
68
  bg-neutral-500
69
+ `,
70
+ !(disabled || readonly) && `
71
+ hover:bg-red-500
63
72
  `
64
73
  )"
65
74
  ref="recorderIndicatorEl"
75
+ @pointerdown.capture.prevent="handlePointerdownRecorder($event)"
66
76
  />
67
77
  <div class="recorder--value before:content-vertical-holder truncate">
68
78
  {{ recording ? recordingValue ?? t("recorder.recording") : tempValue }}
@@ -72,25 +82,21 @@
72
82
 
73
83
  <script setup>
74
84
  import { keys } from "@alanscodelog/utils/keys";
75
- import { computed, onBeforeUnmount, onMounted, ref, watch, watchPostEffect } from "vue";
76
- import { useAriaLabel } from "../../composables/useAriaLabel.js";
85
+ import { computed, onBeforeUnmount, onMounted, ref, useAttrs, watch, watchPostEffect } from "vue";
77
86
  import { useInjectedI18n } from "../../composables/useInjectedI18n.js";
78
87
  import { twMerge } from "../../utils/twMerge.js";
79
- import { getFallbackId } from "../shared/props.js";
80
88
  defineOptions({
81
- name: "LibRecorder",
89
+ name: "WRecorder",
82
90
  inheritAttrs: false
83
91
  });
84
92
  const t = useInjectedI18n();
85
- const emits = defineEmits(["recorder:blur", "recorder:click", "focus:parent"]);
86
- const fallbackId = getFallbackId();
93
+ const emits = defineEmits(["recorder:blur", "recorder:pointerdown", "focus:parent"]);
94
+ const $attrs = useAttrs();
87
95
  const props = defineProps({
88
- id: { type: String, required: false, default: void 0 },
89
- disabled: { type: Boolean, required: false, default: false },
90
- readonly: { type: Boolean, required: false, default: false },
96
+ disabled: { type: Boolean, required: false },
97
+ readonly: { type: Boolean, required: false },
91
98
  border: { type: Boolean, required: false, default: true },
92
- unstyle: { type: Boolean, required: false, default: false },
93
- label: { type: String, required: false },
99
+ unstyle: { type: Boolean, required: false },
94
100
  recordingValue: { type: String, required: false },
95
101
  recordingTitle: { type: String, required: false, default: "" },
96
102
  recorder: { type: null, required: false, default: void 0 },
@@ -102,7 +108,7 @@ const recorderEl = ref(null);
102
108
  const recorderIndicatorEl = ref(null);
103
109
  const canEdit = computed(() => !props.disabled && !props.readonly);
104
110
  const tempValue = ref(modelValue.value);
105
- watch([() => props.binders, () => props.binders], () => {
111
+ watch([() => props.binders, () => props.recorder], () => {
106
112
  if (recording.value) {
107
113
  throw new Error("Component was not designed to allow swapping out of binders/recorders while recording");
108
114
  }
@@ -110,7 +116,6 @@ watch([() => props.binders, () => props.binders], () => {
110
116
  watch(modelValue, () => {
111
117
  tempValue.value = modelValue.value;
112
118
  });
113
- const ariaLabel = useAriaLabel(props);
114
119
  const boundListeners = {};
115
120
  let isBound = false;
116
121
  const unbindListeners = () => {
@@ -128,7 +133,7 @@ const unbindListeners = () => {
128
133
  };
129
134
  const bindListeners = () => {
130
135
  if (!props.recorder && !props.binders) {
131
- throw new Error("Record is true but no recorder or binders props was passed");
136
+ throw new Error("Recording is true but no recorder or binders props was passed");
132
137
  }
133
138
  if (props.recorder && props.binders) {
134
139
  throw new Error("Recording is true and was passed both a recorder and a binders prop. Both cannot be used at the same time.");
@@ -173,7 +178,7 @@ const handleBlurRecorder = (e) => {
173
178
  emits("recorder:blur", e);
174
179
  }
175
180
  };
176
- const handleClickRecorder = (e, isSpaceKey = false) => {
181
+ const handlePointerdownRecorder = (e, isSpaceKey = false) => {
177
182
  if (!canEdit.value) return;
178
183
  if (!recording.value) {
179
184
  recorderEl.value?.focus();
@@ -182,11 +187,7 @@ const handleClickRecorder = (e, isSpaceKey = false) => {
182
187
  if (isSpaceKey) {
183
188
  return;
184
189
  }
185
- emits("recorder:click", { event: e, indicator: recorderIndicatorEl.value, input: recorderEl.value });
190
+ emits("recorder:pointerdown", { event: e, indicator: recorderIndicatorEl.value, input: recorderEl.value });
186
191
  }
187
192
  };
188
193
  </script>
189
-
190
- <script>
191
-
192
- </script>