@witchcraft/ui 0.3.25 → 0.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/README.md +54 -61
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/assets/animations.css +1 -1
  4. package/dist/runtime/assets/locales/en.json +2 -0
  5. package/dist/runtime/assets/utils.css +1 -1
  6. package/dist/runtime/build/WitchcraftUiResolver.js +1 -1
  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 +109 -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} +40 -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 +109 -0
  24. package/dist/runtime/components/WCombobox/WCombobox.vue +402 -0
  25. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +109 -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} +16 -21
  35. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -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} +9 -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} +71 -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 +149 -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} +32 -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 +43 -0
  67. package/dist/runtime/components/WPopover/WPopover.vue +138 -0
  68. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +43 -0
  69. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +41 -0
  70. package/dist/runtime/components/WPopup/WPopup.vue +74 -0
  71. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +41 -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} +9 -16
  82. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +12 -23
  83. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue.d.ts → WSimpleInput/WSimpleInput.vue.d.ts} +9 -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 +111 -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 +8 -4
  106. package/dist/runtime/helpers/NotificationHandler.js +5 -8
  107. package/dist/runtime/injectionKeys.d.ts +1 -5
  108. package/dist/runtime/injectionKeys.js +0 -2
  109. package/dist/runtime/types/index.d.ts +85 -27
  110. package/dist/runtime/types/index.js +1 -0
  111. package/package.json +7 -7
  112. package/src/runtime/assets/animations.css +3 -3
  113. package/src/runtime/assets/locales/en.json +2 -0
  114. package/src/runtime/assets/utils.css +43 -0
  115. package/src/runtime/build/WitchcraftUiResolver.ts +1 -1
  116. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  117. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  118. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  119. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  120. package/src/runtime/components/WCheckbox/WCheckbox.vue +123 -0
  121. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  122. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  123. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  124. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  125. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +43 -32
  126. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  127. package/src/runtime/components/WCombobox/WCombobox.vue +446 -0
  128. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  129. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  130. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  131. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  132. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  133. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -22
  134. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -22
  135. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  136. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  137. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +8 -11
  138. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  139. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +7 -7
  140. package/src/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +95 -98
  141. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  142. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  143. package/src/runtime/components/WMultiValues/WMultiValues.vue +161 -0
  144. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +9 -9
  145. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +43 -66
  146. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  147. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +51 -29
  148. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  149. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  150. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  151. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  152. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  153. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  154. package/src/runtime/components/WPopover/WPopover.vue +161 -0
  155. package/src/runtime/components/WPopup/WPopup.stories.ts +60 -0
  156. package/src/runtime/components/WPopup/WPopup.vue +93 -0
  157. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  158. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  159. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  160. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  161. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  162. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  163. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +27 -44
  164. package/src/runtime/components/{LibTable/LibTable.stories.ts → WTable/WTable.stories.ts} +60 -52
  165. package/src/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +85 -87
  166. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  167. package/src/runtime/components/WTooltip/WTooltip.vue +126 -0
  168. package/src/runtime/components/index.ts +20 -20
  169. package/src/runtime/composables/index.ts +4 -4
  170. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  171. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  172. package/src/runtime/composables/useFallbackId.ts +6 -0
  173. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  174. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  175. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  176. package/src/runtime/helpers/NotificationHandler.ts +9 -11
  177. package/src/runtime/injectionKeys.ts +1 -7
  178. package/src/runtime/types/index.ts +105 -32
  179. package/types/components.d.ts +13 -15
  180. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -6
  181. package/dist/runtime/components/Aria/Aria.vue +0 -16
  182. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -6
  183. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -37
  184. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -37
  185. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -41
  186. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  187. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -41
  188. package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +0 -64
  189. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  190. package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +0 -64
  191. package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +0 -191
  192. package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +0 -191
  193. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -46
  194. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -46
  195. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -256
  196. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  197. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -256
  198. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -27
  199. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  200. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -27
  201. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  202. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -45
  203. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -45
  204. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -15
  205. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -15
  206. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -105
  207. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  208. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -105
  209. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -15
  210. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -15
  211. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -52
  212. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  213. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -52
  214. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  215. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -99
  216. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  217. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -99
  218. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -125
  219. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -125
  220. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -18
  221. package/dist/runtime/components/Template/NAME.vue +0 -27
  222. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -18
  223. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  224. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  225. package/dist/runtime/components/shared/props.d.ts +0 -171
  226. package/dist/runtime/components/shared/props.js +0 -2
  227. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  228. package/dist/runtime/composables/useAriaLabel.js +0 -15
  229. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  230. package/dist/runtime/composables/useDarkMode.js +0 -89
  231. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  232. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  233. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  234. package/dist/runtime/composables/useSuggestions.js +0 -263
  235. package/src/runtime/components/Aria/Aria.vue +0 -26
  236. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  237. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -131
  238. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  239. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  240. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -419
  241. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  242. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  243. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  244. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -131
  245. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  246. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  247. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  248. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  249. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  250. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  251. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  252. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  253. package/src/runtime/components/Template/NAME.vue +0 -49
  254. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  255. package/src/runtime/components/shared/props.ts +0 -199
  256. package/src/runtime/composables/useAriaLabel.ts +0 -23
  257. package/src/runtime/composables/useDarkMode.ts +0 -199
  258. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  259. package/src/runtime/composables/useSuggestions.ts +0 -339
  260. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  261. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  262. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  263. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  264. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  265. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  266. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  267. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  268. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.d.vue.ts → WDatePicker/WRangeDatePicker.d.vue.ts} +0 -0
  269. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue.d.ts → WDatePicker/WRangeDatePicker.vue.d.ts} +0 -0
  270. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +0 -0
  271. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +0 -0
  272. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  273. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  274. /package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +0 -0
  275. /package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +0 -0
  276. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  277. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.d.vue.ts → WNotifications/WNotificationTestMessageComponent.d.vue.ts} +0 -0
  278. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  279. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue.d.ts → WNotifications/WNotificationTestMessageComponent.vue.d.ts} +0 -0
  280. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.d.ts +0 -0
  281. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.js +0 -0
  282. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  283. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  284. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  285. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  286. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
  287. /package/src/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  288. /package/src/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.ts +0 -0
@@ -95,33 +95,6 @@ export type ScrollNearContainerEdgesOptions = {
95
95
  timerInterval?: number;
96
96
  };
97
97
  export type SimpleDOMRect = Omit<DOMRect, "toJSON">;
98
- export interface IPopupReference {
99
- getBoundingClientRect: () => SimpleDOMRect;
100
- }
101
- export type PopupPosition = {
102
- x: number;
103
- y: number;
104
- maxWidth?: number;
105
- maxHeight?: number;
106
- };
107
- export type PopupSpaceInfo = {
108
- left: number;
109
- right: number;
110
- leftLeft: number;
111
- rightRight: number;
112
- leftFromCenter: number;
113
- rightFromCenter: number;
114
- topFromCenter: number;
115
- bottomFromCenter: number;
116
- top: number;
117
- bottom: number;
118
- };
119
- export type PopupPositioner = (
120
- /** Reference is only undefined, if you did not specify a button element or use the exposed setReference. The function is still called, because there are other ways you might want to still position the popup (e.g. center-screen or some similar variation). */
121
- reference: SimpleDOMRect | undefined, popup: SimpleDOMRect | DOMRect, bg: SimpleDOMRect | DOMRect, space: PopupSpaceInfo) => number;
122
- export type PopupPositionModifier = (pos: PopupPosition,
123
- /** This will only be called with the reference element as undefined when one of the preferred positions is center-screen or it's a function. */
124
- reference: SimpleDOMRect | undefined, popup: SimpleDOMRect | DOMRect, bg: SimpleDOMRect | DOMRect, space: PopupSpaceInfo) => PopupPosition;
125
98
  export type SingleDate = Date | undefined;
126
99
  export type RangeDate = {
127
100
  start?: SingleDate;
@@ -131,3 +104,88 @@ export type CustomNotificationComponentProps = {
131
104
  message: string;
132
105
  messageClasses?: string;
133
106
  };
107
+ export type BaseInteractiveProps = {
108
+ /** Default is false. */
109
+ disabled?: boolean;
110
+ /** Default is false. */
111
+ readonly?: boolean;
112
+ /** Default is true. */
113
+ border?: boolean;
114
+ /** Removes styles from the component. Default is false. */
115
+ unstyle?: boolean;
116
+ };
117
+ export type TailwindClassProp = {
118
+ /** Tailwind classes. */
119
+ class?: string | false;
120
+ };
121
+ export declare const defaultDarkModeOrder: readonly ["system", "dark", "light"];
122
+ export type DarkModeOptions = {
123
+ useLocalStorage?: boolean | string;
124
+ darkModeOrder?: readonly ("system" | "dark" | "light")[];
125
+ /** True by default, should be passed import.meta.client if using nuxt, or false when running server side. */
126
+ isClientSide?: boolean;
127
+ /**
128
+ * Whether to use the view transition to animate the dark mode switch (you just need to add the css).
129
+ *
130
+ * Note that the transitition is NOT triggered if visually the mode does not change (e.g. system mode is dark and the user switches from system to dark, visually nothing changes so transitioning is skipped).
131
+ *
132
+ * There is an example in storybook. But basically:
133
+ *
134
+ * ```css
135
+ *
136
+ * #root { // the dark mode switcher works on the WRoot component not the html root
137
+ * view-transition-name: wroot;
138
+ * height: 100dvh;
139
+ * padding: 0;
140
+ * }
141
+ *
142
+ * ::view-transition-new(wroot) {
143
+ * animation: grow var(--story-anim-length) ease-in-out;
144
+ * animation-fill-mode: both;
145
+ * z-index: 2;
146
+ * mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="white"/></svg>') center / 0 no-repeat;
147
+ * }
148
+ *
149
+ * ::view-transition-old(wroot) {
150
+ * animation: none;
151
+ * animation-fill-mode: both;
152
+ * z-index: 1;
153
+ * }
154
+ *
155
+ * @keyframes grow {
156
+ * from {
157
+ * mask-size: 0dvw;
158
+ * }
159
+ * to {
160
+ * mask-size: 300dvw;
161
+ * }
162
+ * }
163
+ * ```
164
+ *
165
+ * See https://theme-toggle.rdsx.dev/ for more ideas.
166
+ *
167
+ * @default true
168
+ */
169
+ useViewTransition?: boolean;
170
+ };
171
+ export interface DarkModeCommands {
172
+ setDarkMode: (value: "dark" | "light" | "system") => void;
173
+ cycleDarkMode: () => void;
174
+ }
175
+ export interface DarkModeState {
176
+ /** Whether the dark mode should be enabled or not */
177
+ darkMode: Ref<boolean>;
178
+ /** The current state of the darkMode but as a string (dark, light, system) */
179
+ darkModeState: Ref<"dark" | "light" | "system">;
180
+ /** The value of the manuably controllable dark mode. You can set this to true/false or undefined to allow the systemDarkMode to take priority. Alternatively use setDarkMode instead. */
181
+ manualDarkMode: Ref<boolean | undefined>;
182
+ /** The value of the system dark mode. This is automatically set depending on the user's `prefer-color-scheme` and should not be set directly. */
183
+ systemDarkMode: Ref<boolean>;
184
+ }
185
+ export type PopupConstrainToProps = {
186
+ constrainWidthTo?: number | "trigger" | "available" | string | null;
187
+ constrainHeightTo?: number | "trigger" | "available" | string | null;
188
+ };
189
+ export type EmitsToProps<T> = {
190
+ [K in keyof T as K extends string ? `on${Capitalize<K>}` : never]?: T[K] extends (...args: infer Args) => any ? (...args: Args) => void : T[K] extends any[] ? (...args: T[K]) => void : T[K];
191
+ };
@@ -0,0 +1 @@
1
+ export const defaultDarkModeOrder = ["system", "dark", "light"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witchcraft/ui",
3
- "version": "0.3.25",
3
+ "version": "0.4.0-beta.1",
4
4
  "description": "Vue component library.",
5
5
  "type": "module",
6
6
  "main": "./dist/runtime/main.lib.js",
@@ -63,7 +63,7 @@
63
63
  }
64
64
  },
65
65
  "dependencies": {
66
- "@alanscodelog/utils": "^6.1.0",
66
+ "@alanscodelog/utils": "^6.2.0",
67
67
  "@iconify/json": "^2.2.450",
68
68
  "@nuxt/kit": "^4.4.2",
69
69
  "@nuxt/schema": "^4.4.2",
@@ -75,7 +75,7 @@
75
75
  "defu": "^6.1.4",
76
76
  "fast-glob": "^3.3.3",
77
77
  "metamorphosis": "^0.6.1",
78
- "reka-ui": "^2.9.2",
78
+ "reka-ui": "^2.9.5",
79
79
  "tailwind-merge": "^3.5.0",
80
80
  "unplugin-icons": "^22.5.0",
81
81
  "unplugin-vue-components": "^28.8.0",
@@ -85,7 +85,7 @@
85
85
  "@alanscodelog/commitlint-config": "^3.1.2",
86
86
  "@alanscodelog/eslint-config": "^6.3.1",
87
87
  "@alanscodelog/semantic-release-config": "^6.0.2",
88
- "@alanscodelog/tsconfigs": "^6.2.0",
88
+ "@alanscodelog/tsconfigs": "^6.3.0",
89
89
  "@alanscodelog/vite-config": "^0.0.7",
90
90
  "@chromatic-com/storybook": "^3.2.7",
91
91
  "@commitlint/cli": "^20.5.0",
@@ -94,7 +94,7 @@
94
94
  "@nuxt/eslint-config": "^1.15.2",
95
95
  "@nuxt/module-builder": "^1.0.2",
96
96
  "@nuxtjs/i18n": "^9.5.6",
97
- "@playwright/test": "^1.58.2",
97
+ "@playwright/test": "=1.58.2",
98
98
  "@rollup/plugin-node-resolve": "^16.0.3",
99
99
  "@storybook/addon-a11y": "^8.6.18",
100
100
  "@storybook/addon-actions": "^8.6.18",
@@ -125,8 +125,8 @@
125
125
  "indexit": "2.1.0-beta.3",
126
126
  "madge": "^7.0.0",
127
127
  "nuxt": "^4.4.2",
128
- "playwright": "^1.58.2",
129
- "playwright-core": "^1.58.2",
128
+ "playwright": "=1.58.2",
129
+ "playwright-core": "=1.58.2",
130
130
  "semantic-release": "^24.2.9",
131
131
  "storybook": "^8.6.18",
132
132
  "storybook-dark-mode": "^4.0.2",
@@ -28,8 +28,8 @@
28
28
  }
29
29
  }
30
30
 
31
- --animate-slideBgInf: slide-bg 10s ease-in-out linear-infinite;
32
- @keyframes slide {
31
+ --animate-slideBgInf: slideBg 10s ease-in-out linear-infinite;
32
+ @keyframes slideBg {
33
33
  0% {
34
34
  background-position:0%;
35
35
  }
@@ -60,7 +60,7 @@
60
60
  }
61
61
  }
62
62
 
63
- --animate-slideInRight: slideInLeft 500ms cubic-bezier(0.16, 1, 0.3, 1);
63
+ --animate-slideInRight: slideInRight 500ms cubic-bezier(0.16, 1, 0.3, 1);
64
64
  @keyframes slideInRight {
65
65
  from {
66
66
  transform: translateX(var(--animate-from, -100%));
@@ -25,6 +25,8 @@
25
25
  "pagination.aria.go-to-next-page": "Go to next page. Page {count}",
26
26
  "pagination.aria.go-to-page": "Go to page {count}",
27
27
  "pagination.aria.current-page": "Current page {count}",
28
+ "pagination.aria.go-to-first-page": "Go to first page",
29
+ "pagination.aria.go-to-last-page": "Go to last page",
28
30
  "pagination.previous-page": "Prev",
29
31
  "pagination.next-page": "Next",
30
32
  "recorder.recording": "Recording",
@@ -115,6 +115,49 @@
115
115
  --bars-fg-width: calc(--value(integer) * 1%, 50%);
116
116
  }
117
117
 
118
+ /* Mix utils can be used like bg-(--mix) mix-from-red-500 mix-to-blue-500/20 (where 20 is the percentage of "to"). It mixes with transparent if no from/to. There are also tint-* and shade-* variants to mix with white and black respectively. */
119
+ @utility mix-from-* {
120
+ --mix-from: --value(--color-*);
121
+ --mix: color-mix(
122
+ in srgb,
123
+ var(--mix-from),
124
+ var(--mix-to, transparent) var(--mix-percentage, 50%)
125
+ );
126
+ }
127
+
128
+ @utility mix-to-* {
129
+ --mix-to: --value(--color-*);
130
+ --mix-percentage: calc(--modifier(integer) * 1%);
131
+ --mix: color-mix(
132
+ in srgb,
133
+ var(--mix-from),
134
+ var(--mix-to, transparent) var(--mix-percentage, 50%)
135
+ );
136
+ }
137
+
138
+ @utility tint-* {
139
+ --mix-from: --value(--color-*);
140
+ --mix-to: white;
141
+ --mix-percentage: calc(--modifier(integer) * 1%);
142
+ --mix: color-mix(
143
+ in srgb,
144
+ var(--mix-from),
145
+ var(--mix-to) var(--mix-percentage, 20%)
146
+ );
147
+ }
148
+
149
+ @utility shade-* {
150
+ --mix-from: --value(--color-*);
151
+ --mix-to: black;
152
+ --mix-percentage: calc(--modifier(integer) * 1%);
153
+ --mix: color-mix(
154
+ in srgb,
155
+ var(--mix-from),
156
+ var(--mix-to) var(--mix-percentage)
157
+ );
158
+ }
159
+
160
+
118
161
  @utility scrollbar-hidden {
119
162
  /* IE and Edge */
120
163
  -ms-overflow-style: none;
@@ -1,6 +1,6 @@
1
1
  import type { ComponentResolver } from "unplugin-vue-components"
2
2
 
3
- const prefixless = ["Icon", "Aria"]
3
+ const prefixless = ["Icon"]
4
4
  // eslint-disable-next-line @typescript-eslint/naming-convention
5
5
  export const WitchcraftUiResolver = (
6
6
  {
@@ -1,16 +1,16 @@
1
1
  <template>
2
- <!-- Width 100% + 2xmargin in combination with the margins in LibRoot is a bit of a hack so that it looks like there's padding around the content in test mode (for storybook). We can't just absolutely position these controls or they make the container scroll. -->
2
+ <!-- Width 100% + 2xmargin in combination with the margins in WRoot is a bit of a hack so that it looks like there's padding around the content in test mode (for storybook). We can't just absolutely position these controls or they make the container scroll. -->
3
3
  <div class="test-controls flex gap-2 p-1 pb-10 -ml-10 w-[calc(100%_+_var(--spacing)*20)]">
4
4
  <div class="flex-grow"/>
5
5
  <div class="outline-indicator">
6
6
  {{ showOutline ? "Outline Enabled" : "Outline Disabled" }}
7
7
  </div>
8
- <lib-dark-mode-switcher/>
8
+ <WDarkModeSwitcher/>
9
9
  </div>
10
10
  </template>
11
11
 
12
12
  <script setup lang="ts">
13
- import LibDarkModeSwitcher from "../LibDarkModeSwitcher/LibDarkModeSwitcher.vue"
13
+ import WDarkModeSwitcher from "../WDarkModeSwitcher/WDarkModeSwitcher.vue"
14
14
 
15
15
  defineOptions({ name: "TestControls" })
16
16
  defineProps<{
@@ -0,0 +1,112 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import { capitalize } from "@alanscodelog/utils/capitalize"
3
+ import type { Meta, StoryObj } from "@storybook/vue3"
4
+
5
+ import IconFaSolidBell from "~icons/fa-solid/bell"
6
+
7
+ import * as components from "../index.js"
8
+
9
+ type ExtraTestArgs = {
10
+ _iconAfter?: boolean
11
+ }
12
+ const meta: Meta<typeof components.WButton> = {
13
+ component: components.WButton,
14
+ title: "Components/Button",
15
+ args: {
16
+ label: "Label",
17
+ ...{
18
+ _iconAfter: true
19
+ } satisfies ExtraTestArgs as any
20
+ }
21
+ }
22
+
23
+ export default meta
24
+ type Story = StoryObj<typeof components.WButton> & { args?: ExtraTestArgs }
25
+
26
+ export const Primary: Story = {
27
+ render: args => {
28
+ const extraArgs = args as ExtraTestArgs
29
+ return {
30
+ components: {
31
+ ...components,
32
+ IconFaSolidBell
33
+ },
34
+ setup: () => ({ args, capitalize }),
35
+ template: `
36
+ <div class="flex gap-4 justify-center">
37
+ <template v-for="type of [false, 'ok', 'warning', 'danger', 'primary', 'secondary' ]">
38
+ <WButton v-bind="{...args, color: type, label: !args.label ? undefined : args.label + ' ' + capitalize(type || 'false')}">
39
+ <template #icon>
40
+ <icon class="w-[1em]"><icon-fa-solid-bell /></icon>
41
+ </template>
42
+ </WButton>
43
+ </template>
44
+ </div>
45
+ <div class="flex flex-col gap-4 pt-10">
46
+ <template v-for="type of [false, 'ok', 'warning', 'danger', 'primary', 'secondary']">
47
+ <WButton v-bind="{...args, color: type , label: !args.label ? undefined : args.label + ' ' + capitalize(type || 'false') }">
48
+ ${extraArgs._iconAfter
49
+ ? `
50
+ <template #icon-after>
51
+ <icon class="w-[1em]"><icon-fa-solid-bell /></icon>
52
+ </template>
53
+ `
54
+ : ``}
55
+ </WButton>
56
+ </template>
57
+ </div>
58
+ `
59
+ }
60
+ }
61
+ }
62
+
63
+ export const IconAfter: Story = {
64
+ ...Primary,
65
+ args: {
66
+ ...Primary.args,
67
+ _iconAfter: true
68
+ }
69
+ }
70
+
71
+ export const OnlyIcon: Story = {
72
+ ...Primary,
73
+ args: {
74
+ ...Primary.args,
75
+ label: undefined
76
+ }
77
+ }
78
+ export const Disabled: Story = {
79
+ ...Primary,
80
+ args: {
81
+ ...Primary.args,
82
+ disabled: true
83
+ }
84
+ }
85
+ export const Borderless: Story = {
86
+ ...Primary,
87
+ args: {
88
+ ...Primary.args,
89
+ border: false
90
+ }
91
+ }
92
+ export const BorderlessDisabled: Story = {
93
+ ...Primary,
94
+ args: {
95
+ ...Primary.args,
96
+ border: false,
97
+ disabled: true
98
+ }
99
+ }
100
+ export const WithDivInside: Story = {
101
+ render: args => ({
102
+ components,
103
+ setup: () => ({ args }),
104
+ template: `
105
+ <div class="flex gap-4 justify-center">
106
+ <WButton v-bind="{...args}">
107
+ <div>Div inside button still has a pointer cursor.</div>
108
+ </WButton>
109
+ </div>
110
+ `
111
+ })
112
+ }
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <button
3
- :id="id ?? fallbackId"
4
- :class="!($attrs as any).unstyle && twMerge(`
3
+ :class="!unstyle && twMerge(`
5
4
  button
6
5
  flex
7
6
  cursor-pointer
@@ -26,7 +25,8 @@
26
25
  border && `
27
26
  transition-all
28
27
  bg-neutral-100
29
- dark:bg-neutral-800
28
+ dark:tint-neutral-800/10
29
+ dark:bg-(--mix)
30
30
  shadow-[0_1px_1px_0]
31
31
  shadow-neutral-950/20
32
32
  hover:shadow-[0_1px_3px_0]
@@ -41,6 +41,7 @@
41
41
  after:shadow-[0_1px_0_0_inset]
42
42
  after:shadow-bg/20
43
43
  hover:after:shadow-bg/60
44
+ disabled:after:hidden
44
45
  dark:after:shadow-bg/10
45
46
  dark:hover:after:shadow-bg/50
46
47
  after:pointer-events-none
@@ -49,15 +50,16 @@
49
50
  active:shadow-fg/20
50
51
  active:border-transparent
51
52
  border
52
- border-neutral-300
53
+ border-black/10
53
54
  disabled:border-neutral-200
54
- disabled:bg-neutral-50
55
+ disabled:bg-neutral-100
55
56
  dark:hover:shadow-neutral-950/70
56
57
  dark:active:shadow-fg/40
57
58
  dark:active:border-neutral-900
58
- dark:border-neutral-900
59
+ dark:border-black/50
59
60
  dark:disabled:border-neutral-800
60
- dark:disabled:bg-neutral-900
61
+ dark:disabled:bg-(--mix)
62
+ dark:disabled:shade-neutral-900/10
61
63
  `,
62
64
  border && (!color || color === `secondary`) && `
63
65
  after:shadow-bg/90
@@ -153,26 +155,24 @@
153
155
  `,
154
156
  ($attrs as any)?.class
155
157
  )"
156
- :type="$attrs.type as any"
158
+ :type="($attrs as any)?.type || 'button'"
157
159
  :tabindex="0"
158
160
  :disabled="disabled"
159
161
  :data-border="border"
160
162
  :data-color="color"
161
- :aria-disabled="disabled"
162
163
  v-bind="{
163
- ...autoTitle,
164
164
  ...$attrs,
165
- class: undefined,
166
- ...ariaLabel
165
+ class: undefined
167
166
  }"
168
167
  >
169
168
  <slot
170
169
  name="label"
171
- v-bind="{ id: `label-${id ?? fallbackId}`, classes: 'button--label pointer-events-none flex flex-1 items-center justify-center gap-1' }"
170
+ v-bind="{
171
+ classes: 'button--label pointer-events-none flex flex-1 items-center justify-center gap-1'
172
+ }"
172
173
  >
173
- <label
174
- :id="`label-${id ?? fallbackId}`"
175
- class="button--label pointer-events-none flex flex-1 items-center justify-center gap-1"
174
+ <div
175
+ :class="!unstyle && 'button--label pointer-events-none flex flex-1 items-center justify-center gap-1'"
176
176
  >
177
177
  <slot name="icon"/>
178
178
  <slot
@@ -183,57 +183,41 @@
183
183
  </span>
184
184
  </slot>
185
185
  <slot name="icon-after"/>
186
- </label>
186
+ </div>
187
187
  </slot>
188
188
  </button>
189
189
  </template>
190
190
 
191
191
  <script setup lang="ts">
192
192
  import { isBlank } from "@alanscodelog/utils/isBlank"
193
- import { type ButtonHTMLAttributes, computed, useAttrs } from "vue"
193
+ import { type ButtonHTMLAttributes, useAttrs } from "vue"
194
194
 
195
- import { useAriaLabel } from "../../composables/useAriaLabel.js"
195
+ import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js"
196
196
  import { twMerge } from "../../utils/twMerge.js"
197
- import { type BaseInteractiveProps, type ButtonProps, getFallbackId, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js"
197
+
198
198
 
199
199
  const $attrs = useAttrs()
200
200
 
201
201
  defineOptions({
202
- name: "LibButton"
202
+ name: "WButton",
203
+ inheritAttrs: false
203
204
  })
204
205
 
205
- const fallbackId = getFallbackId()
206
206
 
207
- const props = withDefaults(defineProps<Props>(), {
207
+ withDefaults(defineProps<
208
+ & BaseInteractiveProps
209
+ & {
210
+ label?: string
211
+ border?: boolean
212
+ color?: "warning" | "ok" | "danger" | "primary" | "secondary" | false
213
+ }
214
+
215
+ & /** @vue-ignore */ Omit<ButtonHTMLAttributes, "class" | "color">
216
+ & /** @vue-ignore */ TailwindClassProp
217
+ >(), {
208
218
  color: false,
209
219
  label: "",
210
- unstyle: false, disabled: false, readonly: false, border: true
220
+ border: true
211
221
  })
212
-
213
- const ariaLabel = useAriaLabel(props, fallbackId)
214
- const autoTitle = computed(() => ({
215
- title: props.autoTitleFromAria
216
- ? ($attrs["aria-label"] ?? props.label) as string
217
- : undefined
218
- }))
219
222
  </script>
220
223
 
221
- <script lang="ts">
222
- type RealProps
223
- = & LinkableByIdProps
224
- & LabelProps
225
- & BaseInteractiveProps
226
- & ButtonProps
227
-
228
- interface Props
229
- extends
230
- /** @vue-ignore */
231
- Partial<Omit<ButtonHTMLAttributes, "class" | "color" | "disabled">
232
- & TailwindClassProp
233
- & {
234
- // why is this not already a part of button?
235
- // eslint-disable-next-line @typescript-eslint/naming-convention
236
- "aria-label": string
237
- }>,
238
- RealProps {}
239
- </script>
@@ -4,27 +4,27 @@ import type { Meta, StoryObj } from "@storybook/vue3"
4
4
  import * as components from "../index.js"
5
5
 
6
6
  const meta = {
7
- component: components.LibCheckbox,
7
+ component: components.WCheckbox,
8
8
  title: "Components/Checkbox",
9
9
  args: {
10
10
  modelValue: true,
11
11
  label: "Label"
12
12
  }
13
- } satisfies Meta<typeof components.LibCheckbox> & Meta<{ custom: string }>
13
+ } satisfies Meta<typeof components.WCheckbox> & Meta<{ custom: string }>
14
14
 
15
15
  export default meta
16
- type Story = StoryObj<typeof components.LibCheckbox> // & StoryObj<typeof extraArgs>
16
+ type Story = StoryObj<typeof components.WCheckbox> // & StoryObj<typeof extraArgs>
17
17
 
18
18
  export const Primary: Story = {
19
19
  render: args => ({
20
20
  components,
21
21
  setup: () => ({ args }),
22
22
  template: `
23
- <lib-checkbox v-bind="args" v-model="args.modelValue"></lib-checkbox>
23
+ <WCheckbox v-bind="args" v-model="args.modelValue"></WCheckbox>
24
24
  <br>
25
25
  Opposite State:
26
26
  <br>
27
- <lib-checkbox v-bind="args" :modelValue="!args.modelValue" @update:modelValue="args.modelValue = !$event"></lib-checkbox>
27
+ <WCheckbox v-bind="args" :modelValue="!args.modelValue" @update:modelValue="args.modelValue = !$event"></WCheckbox>
28
28
  `
29
29
  })
30
30
  }