@witchcraft/ui 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/README.md +56 -61
  2. package/dist/module.d.mts +1 -1
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +13 -9
  5. package/dist/runtime/assets/animations.css +1 -1
  6. package/dist/runtime/assets/locales/en.json +2 -0
  7. package/dist/runtime/assets/utils.css +1 -1
  8. package/dist/runtime/build/WitchcraftUiResolver.js +1 -2
  9. package/dist/runtime/components/TestControls/TestControls.d.vue.ts +2 -1
  10. package/dist/runtime/components/TestControls/TestControls.vue +3 -3
  11. package/dist/runtime/components/TestControls/TestControls.vue.d.ts +2 -1
  12. package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
  13. package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
  14. package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
  15. package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
  16. package/dist/runtime/components/WCheckbox/WCheckbox.vue +110 -0
  17. package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
  18. package/dist/runtime/components/{LibColorInput/LibColorInput.d.vue.ts → WColorInput/WColorInput.d.vue.ts} +18 -36
  19. package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
  20. package/dist/runtime/components/{LibColorInput/LibColorInput.vue.d.ts → WColorInput/WColorInput.vue.d.ts} +18 -36
  21. package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
  22. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
  23. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
  24. package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +12 -9
  25. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +41 -29
  26. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +12 -9
  27. package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +111 -0
  28. package/dist/runtime/components/WCombobox/WCombobox.vue +405 -0
  29. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +111 -0
  30. package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
  31. package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
  32. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +9 -13
  33. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
  34. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +9 -13
  35. package/dist/runtime/components/{LibDatePicker/LibDatePicker.d.vue.ts → WDatePicker/WDatePicker.d.vue.ts} +7 -7
  36. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  37. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue.d.ts → WDatePicker/WDatePicker.vue.d.ts} +7 -7
  38. package/dist/runtime/components/WDatePicker/WRangeDatePicker.d.vue.ts +182 -0
  39. package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +29 -25
  40. package/dist/runtime/components/WDatePicker/WRangeDatePicker.vue.d.ts +182 -0
  41. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +7 -5
  42. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  43. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +7 -5
  44. package/dist/runtime/components/WDatePicker/WTimeZonePicker.d.vue.ts +13 -0
  45. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  46. package/dist/runtime/components/WDatePicker/WTimeZonePicker.vue.d.ts +13 -0
  47. package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +3 -2
  48. package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +10 -12
  49. package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +3 -2
  50. package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +3 -5
  51. package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +3 -5
  52. package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
  53. package/dist/runtime/components/WFileInput/WFileInput.vue +348 -0
  54. package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
  55. package/dist/runtime/components/WIcon/WIcon.d.vue.ts +18 -0
  56. package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
  57. package/dist/runtime/components/WIcon/WIcon.vue.d.ts +18 -0
  58. package/dist/runtime/components/WMultiValues/WMultiValues.d.vue.ts +28 -0
  59. package/dist/runtime/components/WMultiValues/WMultiValues.vue +150 -0
  60. package/dist/runtime/components/WMultiValues/WMultiValues.vue.d.ts +28 -0
  61. package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
  62. package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +61 -35
  63. package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
  64. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.d.vue.ts +7 -0
  65. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.vue +29 -0
  66. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.vue.d.ts +7 -0
  67. package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
  68. package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +72 -36
  69. package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
  70. package/dist/runtime/components/WNotifications/calculateNotificationProgress.d.ts +2 -0
  71. package/dist/runtime/components/WNotifications/calculateNotificationProgress.js +4 -0
  72. package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
  73. package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
  74. package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
  75. package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
  76. package/dist/runtime/components/WPagination/WPagination.vue +182 -0
  77. package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
  78. package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
  79. package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  80. package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
  81. package/dist/runtime/components/WPopover/WPopover.d.vue.ts +45 -0
  82. package/dist/runtime/components/WPopover/WPopover.vue +144 -0
  83. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +45 -0
  84. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +51 -0
  85. package/dist/runtime/components/WPopup/WPopup.vue +115 -0
  86. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +51 -0
  87. package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +13 -16
  88. package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
  89. package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +13 -16
  90. package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +13 -27
  91. package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
  92. package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +13 -27
  93. package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +11 -9
  94. package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
  95. package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +11 -9
  96. package/dist/runtime/components/WSimpleInput/WSimpleInput.d.vue.ts +34 -0
  97. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +14 -24
  98. package/dist/runtime/components/WSimpleInput/WSimpleInput.vue.d.ts +34 -0
  99. package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
  100. package/dist/runtime/components/WTable/WTable.vue +370 -0
  101. package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
  102. package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
  103. package/dist/runtime/components/WTooltip/WTooltip.vue +112 -0
  104. package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
  105. package/dist/runtime/components/index.d.ts +20 -20
  106. package/dist/runtime/components/index.js +20 -20
  107. package/dist/runtime/composables/index.d.ts +4 -4
  108. package/dist/runtime/composables/index.js +4 -4
  109. package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
  110. package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
  111. package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
  112. package/dist/runtime/composables/useDisplayForReka.js +16 -0
  113. package/dist/runtime/composables/useFallbackId.d.ts +3 -0
  114. package/dist/runtime/composables/useFallbackId.js +5 -0
  115. package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
  116. package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
  117. package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
  118. package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
  119. package/dist/runtime/composables/useSetupDarkMode.js +90 -4
  120. package/dist/runtime/composables/useTimeConditionally.d.ts +16 -0
  121. package/dist/runtime/composables/useTimeConditionally.js +27 -0
  122. package/dist/runtime/directives/vResizableCols.js +101 -34
  123. package/dist/runtime/helpers/NotificationHandler.d.ts +28 -3
  124. package/dist/runtime/helpers/NotificationHandler.js +7 -10
  125. package/dist/runtime/injectionKeys.d.ts +1 -5
  126. package/dist/runtime/injectionKeys.js +0 -2
  127. package/dist/runtime/types/index.d.ts +97 -31
  128. package/dist/runtime/types/index.js +1 -0
  129. package/dist/runtime/utils/notifyIfError.d.ts +3 -1
  130. package/dist/runtime/utils/notifyIfError.js +4 -2
  131. package/dist/runtime/utils/twMerge.d.ts +1 -0
  132. package/dist/runtime/utils/twMerge.js +2 -1
  133. package/package.json +59 -56
  134. package/src/module.ts +16 -8
  135. package/src/runtime/assets/animations.css +53 -6
  136. package/src/runtime/assets/locales/en.json +2 -0
  137. package/src/runtime/assets/tailwind.css +1 -1
  138. package/src/runtime/assets/utils.css +52 -4
  139. package/src/runtime/build/WitchcraftUiResolver.ts +1 -2
  140. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  141. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  142. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  143. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  144. package/src/runtime/components/WCheckbox/WCheckbox.vue +125 -0
  145. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  146. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  147. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  148. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  149. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +44 -31
  150. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  151. package/src/runtime/components/WCombobox/WCombobox.vue +450 -0
  152. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  153. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  154. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  155. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  156. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  157. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +29 -25
  158. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  159. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  160. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  161. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -10
  162. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  163. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +20 -10
  164. package/src/runtime/components/WFileInput/WFileInput.vue +392 -0
  165. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  166. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  167. package/src/runtime/components/WMultiValues/WMultiValues.vue +163 -0
  168. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +42 -6
  169. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +72 -45
  170. package/src/runtime/components/WNotifications/WNotificationTestMessageComponent.vue +27 -0
  171. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  172. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +87 -47
  173. package/src/runtime/components/WNotifications/calculateNotificationProgress.ts +8 -0
  174. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  175. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  176. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  177. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  178. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  179. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  180. package/src/runtime/components/WPopover/WPopover.vue +168 -0
  181. package/src/runtime/components/WPopup/WPopup.stories.ts +104 -0
  182. package/src/runtime/components/WPopup/WPopup.vue +134 -0
  183. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  184. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  185. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  186. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  187. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  188. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  189. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +28 -42
  190. package/src/runtime/components/WTable/WTable.stories.ts +334 -0
  191. package/src/runtime/components/WTable/WTable.vue +471 -0
  192. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  193. package/src/runtime/components/WTooltip/WTooltip.vue +128 -0
  194. package/src/runtime/components/index.ts +20 -20
  195. package/src/runtime/composables/index.ts +4 -4
  196. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  197. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  198. package/src/runtime/composables/useFallbackId.ts +6 -0
  199. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  200. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  201. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  202. package/src/runtime/composables/useTimeConditionally.ts +51 -0
  203. package/src/runtime/directives/vResizableCols.ts +121 -38
  204. package/src/runtime/helpers/NotificationHandler.ts +30 -11
  205. package/src/runtime/injectionKeys.ts +1 -7
  206. package/src/runtime/types/index.ts +118 -36
  207. package/src/runtime/utils/notifyIfError.ts +6 -2
  208. package/src/runtime/utils/twMerge.ts +2 -1
  209. package/types/components.d.ts +14 -15
  210. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -5
  211. package/dist/runtime/components/Aria/Aria.vue +0 -16
  212. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -5
  213. package/dist/runtime/components/Icon/Icon.d.vue.ts +0 -21
  214. package/dist/runtime/components/Icon/Icon.vue.d.ts +0 -21
  215. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -36
  216. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -36
  217. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -42
  218. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  219. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -42
  220. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  221. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.d.vue.ts +0 -34
  222. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue.d.ts +0 -34
  223. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.d.vue.ts +0 -22
  224. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue.d.ts +0 -22
  225. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -43
  226. package/dist/runtime/components/LibFileInput/LibFileInput.vue +0 -274
  227. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -43
  228. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -165
  229. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  230. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -165
  231. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -26
  232. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  233. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -26
  234. package/dist/runtime/components/LibMultiValues/LibMultiValues.d.vue.ts +0 -29
  235. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  236. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue.d.ts +0 -29
  237. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -30
  238. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -30
  239. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -13
  240. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -13
  241. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -104
  242. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  243. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -104
  244. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -14
  245. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -14
  246. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -46
  247. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  248. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -46
  249. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  250. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.d.vue.ts +0 -35
  251. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue.d.ts +0 -35
  252. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -94
  253. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  254. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -94
  255. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -45
  256. package/dist/runtime/components/LibTable/LibTable.vue +0 -155
  257. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -45
  258. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -17
  259. package/dist/runtime/components/Template/NAME.vue +0 -27
  260. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -17
  261. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  262. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  263. package/dist/runtime/components/shared/props.d.ts +0 -171
  264. package/dist/runtime/components/shared/props.js +0 -2
  265. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  266. package/dist/runtime/composables/useAriaLabel.js +0 -15
  267. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  268. package/dist/runtime/composables/useDarkMode.js +0 -89
  269. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  270. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  271. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  272. package/dist/runtime/composables/useSuggestions.js +0 -263
  273. package/src/runtime/components/Aria/Aria.vue +0 -26
  274. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  275. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -129
  276. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  277. package/src/runtime/components/LibFileInput/LibFileInput.vue +0 -320
  278. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  279. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -414
  280. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  281. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  282. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  283. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -120
  284. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  285. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  286. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  287. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  288. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  289. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  290. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  291. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  292. package/src/runtime/components/LibTable/LibTable.stories.ts +0 -167
  293. package/src/runtime/components/LibTable/LibTable.vue +0 -190
  294. package/src/runtime/components/Template/NAME.vue +0 -49
  295. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  296. package/src/runtime/components/shared/props.ts +0 -199
  297. package/src/runtime/composables/useAriaLabel.ts +0 -23
  298. package/src/runtime/composables/useDarkMode.ts +0 -199
  299. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  300. package/src/runtime/composables/useSuggestions.ts +0 -339
  301. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  302. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  303. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  304. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  305. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  306. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  307. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  308. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  309. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  310. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  311. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  312. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  313. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  314. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  315. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  316. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
@@ -1,5 +1,15 @@
1
+ @utility animate-from-* {
2
+ --animate-from: --value([length], [percentage]);
3
+ --animate-from: calc(var(--spacing) * --value(integer));
4
+ }
5
+
6
+ @utility -animate-from-* {
7
+ --animate-from: --value([length], [percentage]);
8
+ --animate-from: calc(var(--spacing) * -1 * --value(integer));
9
+ }
10
+
1
11
  @theme {
2
- --animate-blinkInf: blink 1s linear-infinite;
12
+ --animate-blinkInf: blink 1s linear infinite;
3
13
  @keyframes blink {
4
14
  0% {
5
15
  opacity: 0;
@@ -18,8 +28,8 @@
18
28
  }
19
29
  }
20
30
 
21
- --animate-slideBgInf: slide-bg 10s linear-infinite;
22
- @keyframes slide {
31
+ --animate-slideBgInf: slideBg 10s ease-in-out linear-infinite;
32
+ @keyframes slideBg {
23
33
  0% {
24
34
  background-position:0%;
25
35
  }
@@ -38,10 +48,10 @@
38
48
  }
39
49
  }
40
50
 
41
- --animate-slideIn: slideIn 500ms cubic-bezier(0.16, 1, 0.3, 1);
42
- @keyframes slideIn {
51
+ --animate-slideInLeft: slideInLeft 500ms cubic-bezier(0.16, 1, 0.3, 1);
52
+ @keyframes slideInLeft {
43
53
  from {
44
- transform: translateX(100%);
54
+ transform: translateX(var(--animate-from, 100%));
45
55
  opacity: 0;
46
56
  }
47
57
  to {
@@ -50,6 +60,43 @@
50
60
  }
51
61
  }
52
62
 
63
+ --animate-slideInRight: slideInRight 500ms cubic-bezier(0.16, 1, 0.3, 1);
64
+ @keyframes slideInRight {
65
+ from {
66
+ transform: translateX(var(--animate-from, -100%));
67
+ opacity: 0;
68
+ }
69
+ to {
70
+ transform: translateX(0);
71
+ opacity: 1;
72
+ }
73
+ }
74
+
75
+ --animate-slideInUp: slideInUp 500ms cubic-bezier(0.16, 1, 0.3, 1);
76
+ @keyframes slideInUp {
77
+ from {
78
+ transform: translateY(var(--animate-from, 100%));
79
+ opacity: 0;
80
+ }
81
+ to {
82
+ transform: translateY(0);
83
+ opacity: 1;
84
+ }
85
+ }
86
+
87
+ --animate-slideInDown: slideInDown 500ms cubic-bezier(0.16, 1, 0.3, 1);
88
+ @keyframes slideInDown {
89
+ from {
90
+ transform: translateY(var(--animate-from, -100%));
91
+ opacity: 0;
92
+ }
93
+ to {
94
+ transform: translateY(0);
95
+ opacity: 1;
96
+ }
97
+ }
98
+
99
+
53
100
  --animate-overlayShow: overlayShow 500ms cubic-bezier(0.16, 1, 0.3, 1);
54
101
  @keyframes overlayShow {
55
102
  from {
@@ -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",
@@ -1,4 +1,4 @@
1
- /* For storybook, not exported. */
1
+ /* For storybook, **NOT EXPORTED**. The nuxt module creates it's own version of this file by looking at all css files in this folder. See it for details. We also need to be sure to add them to the exports. */
2
2
  @import "tailwindcss" source("../../");
3
3
  @import "./theme.css";
4
4
  @import "./animations.css";
@@ -37,17 +37,17 @@
37
37
  }
38
38
 
39
39
  @utility focus-outline-within {
40
- @reference outlined-within:outline-2 outlined-within:outline-accent-500 outlined-within:outline-offset-2;
40
+ @apply outlined-within:outline-2 outlined-within:outline-accent-500 outlined-within:outline-offset-2;
41
41
  }
42
42
 
43
43
  @utility focus-outline {
44
- @reference outlined:outline-2 outlined:outline-accent-500 outlined:outline-offset-2;
44
+ @apply outlined:outline-2 outlined:outline-accent-500 outlined:outline-offset-2;
45
45
  }
46
46
  @utility focus-outline-no-offset {
47
- @reference outlined:outline-2 outlined:outline-accent-500;
47
+ @apply outlined:outline-2 outlined:outline-accent-500;
48
48
  }
49
49
  @utility focus-outline-hidden {
50
- @reference outlined:outline-none;
50
+ @apply outlined:outline-none;
51
51
  }
52
52
 
53
53
  /* .bg-squares-gradient { */
@@ -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;
@@ -224,3 +267,8 @@
224
267
  @apply cursor-pointer hover:text-accent-500;
225
268
  }
226
269
 
270
+ @utility no-truncate {
271
+ text-overflow: unset;
272
+ overflow: visible;
273
+ white-space: normal;
274
+ }
@@ -1,6 +1,5 @@
1
1
  import type { ComponentResolver } from "unplugin-vue-components"
2
2
 
3
- const prefixless = ["Icon", "Aria"]
4
3
  // eslint-disable-next-line @typescript-eslint/naming-convention
5
4
  export const WitchcraftUiResolver = (
6
5
  {
@@ -15,7 +14,7 @@ export const WitchcraftUiResolver = (
15
14
  ): { from: string } | undefined => {
16
15
  if (componentName.startsWith(prefix)) {
17
16
  const n = componentName.slice(1)
18
- const filename = prefixless.includes(n) ? n : `Lib${n}`
17
+ const filename = `W${n}`
19
18
  if (!filter(n)) {
20
19
  return undefined
21
20
  }
@@ -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
  }
@@ -0,0 +1,125 @@
1
+ <template>
2
+ <div
3
+ :class="twMerge(`
4
+ checkbox--wrapper
5
+ flex
6
+ items-center
7
+ gap-1
8
+ `,
9
+ (disabled || readonly) && `
10
+ cursor-not-allowed
11
+ text-neutral-500
12
+ `,
13
+
14
+ wrapperAttrs?.class
15
+ )"
16
+ v-bind="{ ...wrapperAttrs, class: undefined }"
17
+ ref="el"
18
+ >
19
+ <slot name="left"/>
20
+ <label
21
+ :class="twMerge(`
22
+ checkbox--label
23
+ flex
24
+ items-center
25
+ gap-1
26
+ `,
27
+ labelAttrs?.class
28
+ )"
29
+ v-bind="{ ...labelAttrs, class: undefined }"
30
+ >
31
+ <CheckboxRoot
32
+ :id="finalId"
33
+ :disabled="disabled || readonly"
34
+ :class="!unstyle && twMerge(`
35
+ checkbox
36
+ flex
37
+ items-center
38
+ justify-center
39
+ focus-outline-no-offset
40
+ m-0
41
+ h-[1.2em]
42
+ w-[1.2em]
43
+ aspect-square
44
+ bg-neutral-500/10
45
+ text-white
46
+ dark:text-white
47
+ border
48
+ border-neutral-500
49
+ data-[state=checked]:border-accent-800/50
50
+ data-[state=checked]:bg-accent-500
51
+ data-[state=checked]:shadow-2xs
52
+ data-[state=checked]:shadow-black/20
53
+ data-[state=unchecked]:inset-shadow-2xs
54
+ data-[state=unchecked]:inset-shadow-black/20
55
+ focus:border-accent-600
56
+ rounded-sm
57
+ relative
58
+ transition-colors
59
+ dark:disabled:bg-neutral-800
60
+ cursor-pointer
61
+ disabled:text-neutral-500
62
+ disabled:bg-neutral-500/50
63
+ disabled:cursor-not-allowed
64
+ disabled:data-[state=checked]:border-neutral-500
65
+ `,
66
+ ($attrs as any)?.class
67
+ )"
68
+ v-bind="{ ...$attrs, class: undefined }"
69
+
70
+ v-model="modelValue"
71
+ >
72
+ <CheckboxIndicator class="checkbox--indicator">
73
+ <WIcon class="scale-110 mt-[2px] ml-[0.5px] [&_path]:stroke-3"><i-lucide-check/></WIcon>
74
+ </CheckboxIndicator>
75
+ </CheckboxRoot>
76
+
77
+ <slot/> {{ label }}
78
+ </label>
79
+ </div>
80
+ </template>
81
+
82
+ <script setup lang="ts">
83
+ import { CheckboxIndicator, CheckboxRoot } from "reka-ui"
84
+ import type { HTMLAttributes, InputHTMLAttributes } from "vue"
85
+ import { useAttrs } from "vue"
86
+
87
+ import ILucideCheck from "~icons/lucide/check"
88
+
89
+ import { useFallbackId } from "../../composables/useFallbackId.js"
90
+ import { usePreHydrationValue } from "../../composables/usePreHydrationValue.js"
91
+ import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js"
92
+ import { twMerge } from "../../utils/twMerge.js"
93
+ import WIcon from "../WIcon/WIcon.vue"
94
+
95
+ const $attrs = useAttrs()
96
+
97
+ defineOptions({
98
+ name: "WCheckbox",
99
+ inheritAttrs: false
100
+ })
101
+
102
+ const props = withDefaults(defineProps<
103
+ & BaseInteractiveProps
104
+ & {
105
+ id?: string
106
+ label?: string
107
+ labelAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp
108
+ wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp
109
+ }
110
+ & /** @vue-ignore */Omit<
111
+ InputHTMLAttributes,
112
+ "class" | "readonly" | "disabled" | "onSumbit"
113
+ // https://github.com/vuejs/core/pull/14237
114
+ | "autocomplete"
115
+ >
116
+ & /** @vue-ignore */ TailwindClassProp
117
+ >(), {
118
+ border: true
119
+ })
120
+
121
+ const modelValue = defineModel<boolean | "indeterminate">("modelValue", { default: false })
122
+ const finalId = useFallbackId(props)
123
+ usePreHydrationValue(finalId, modelValue)
124
+ </script>
125
+
@@ -2,12 +2,12 @@
2
2
  import type { Meta, StoryObj } from "@storybook/vue3"
3
3
  import { ref } from "vue"
4
4
 
5
- import LibColorInput from "./LibColorInput.vue"
5
+ import WColorInput from "./WColorInput.vue"
6
6
 
7
7
  import * as components from "../index.js"
8
8
 
9
- const meta: Meta<typeof LibColorInput> = {
10
- component: LibColorInput,
9
+ const meta: Meta<typeof WColorInput> = {
10
+ component: WColorInput,
11
11
  title: "Components/ColorInput",
12
12
  args: {
13
13
 
@@ -15,7 +15,7 @@ const meta: Meta<typeof LibColorInput> = {
15
15
  }
16
16
 
17
17
  export default meta
18
- type Story = StoryObj<typeof LibColorInput>
18
+ type Story = StoryObj<typeof WColorInput>
19
19
 
20
20
  export const Primary: Story = {
21
21
  render: args => ({
@@ -36,21 +36,21 @@ export const Primary: Story = {
36
36
  }
37
37
  },
38
38
  template: `
39
- <lib-color-Input
39
+ <WColorInput
40
40
  :allowAlpha="args.allowAlpha"
41
41
  :modelValue="args.color.value"
42
42
  @update:modelValue="handleChange"
43
43
  >
44
- </lib-color-Input>
44
+ </WColorInput>
45
45
  Stretched:
46
46
  <div class="flex-1 flex">
47
- <lib-color-Input
47
+ <WColorInput
48
48
  class="flex-1"
49
49
  :allowAlpha="args.allowAlpha"
50
50
  :modelValue="args.color.value"
51
51
  @update:modelValue="handleChange"
52
52
  >
53
- </lib-color-Input>
53
+ </WColorInput>
54
54
  </div>
55
55
  `
56
56
  })