@witchcraft/ui 0.3.26 → 0.4.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/README.md +54 -61
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +1 -1
  4. package/dist/runtime/assets/animations.css +1 -1
  5. package/dist/runtime/assets/locales/en.json +2 -0
  6. package/dist/runtime/build/WitchcraftUiResolver.js +2 -2
  7. package/dist/runtime/components/TestControls/TestControls.vue +3 -3
  8. package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
  9. package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
  10. package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
  11. package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
  12. package/dist/runtime/components/WCheckbox/WCheckbox.vue +110 -0
  13. package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
  14. package/dist/runtime/components/WColorInput/WColorInput.d.vue.ts +45 -0
  15. package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
  16. package/dist/runtime/components/WColorInput/WColorInput.vue.d.ts +45 -0
  17. package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
  18. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
  19. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
  20. package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +7 -6
  21. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +41 -29
  22. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +7 -6
  23. package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +111 -0
  24. package/dist/runtime/components/WCombobox/WCombobox.vue +405 -0
  25. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +111 -0
  26. package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
  27. package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
  28. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +8 -13
  29. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
  30. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +8 -13
  31. package/dist/runtime/components/WDatePicker/WDatePicker.d.vue.ts +40 -0
  32. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  33. package/dist/runtime/components/WDatePicker/WDatePicker.vue.d.ts +40 -0
  34. package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +21 -21
  35. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  36. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.d.vue.ts → WDatePicker/WTimeZonePicker.d.vue.ts} +1 -11
  37. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  38. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue.d.ts → WDatePicker/WTimeZonePicker.vue.d.ts} +1 -11
  39. package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +10 -12
  40. package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +0 -3
  41. package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +0 -3
  42. package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
  43. package/dist/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +74 -57
  44. package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
  45. package/dist/runtime/components/{Icon/Icon.vue.d.ts → WIcon/WIcon.d.vue.ts} +2 -6
  46. package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
  47. package/dist/runtime/components/{Icon/Icon.d.vue.ts → WIcon/WIcon.vue.d.ts} +2 -6
  48. package/dist/runtime/components/{LibMultiValues/LibMultiValues.d.vue.ts → WMultiValues/WMultiValues.d.vue.ts} +8 -14
  49. package/dist/runtime/components/WMultiValues/WMultiValues.vue +150 -0
  50. package/dist/runtime/components/{LibMultiValues/LibMultiValues.vue.d.ts → WMultiValues/WMultiValues.vue.d.ts} +8 -14
  51. package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
  52. package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +34 -47
  53. package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
  54. package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
  55. package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +35 -17
  56. package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
  57. package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
  58. package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
  59. package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
  60. package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
  61. package/dist/runtime/components/WPagination/WPagination.vue +182 -0
  62. package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
  63. package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
  64. package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  65. package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
  66. package/dist/runtime/components/WPopover/WPopover.d.vue.ts +45 -0
  67. package/dist/runtime/components/WPopover/WPopover.vue +144 -0
  68. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +45 -0
  69. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +51 -0
  70. package/dist/runtime/components/WPopup/WPopup.vue +106 -0
  71. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +51 -0
  72. package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +14 -18
  73. package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
  74. package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +14 -18
  75. package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +14 -29
  76. package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
  77. package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +14 -29
  78. package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +6 -5
  79. package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
  80. package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +6 -5
  81. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.d.vue.ts → WSimpleInput/WSimpleInput.d.vue.ts} +10 -16
  82. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +14 -24
  83. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue.d.ts → WSimpleInput/WSimpleInput.vue.d.ts} +10 -16
  84. package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
  85. package/dist/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +13 -14
  86. package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
  87. package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
  88. package/dist/runtime/components/WTooltip/WTooltip.vue +112 -0
  89. package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
  90. package/dist/runtime/components/index.d.ts +20 -20
  91. package/dist/runtime/components/index.js +20 -20
  92. package/dist/runtime/composables/index.d.ts +4 -4
  93. package/dist/runtime/composables/index.js +4 -4
  94. package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
  95. package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
  96. package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
  97. package/dist/runtime/composables/useDisplayForReka.js +16 -0
  98. package/dist/runtime/composables/useFallbackId.d.ts +3 -0
  99. package/dist/runtime/composables/useFallbackId.js +5 -0
  100. package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
  101. package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
  102. package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
  103. package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
  104. package/dist/runtime/composables/useSetupDarkMode.js +90 -4
  105. package/dist/runtime/helpers/NotificationHandler.d.ts +2 -2
  106. package/dist/runtime/injectionKeys.d.ts +1 -5
  107. package/dist/runtime/injectionKeys.js +0 -2
  108. package/dist/runtime/types/index.d.ts +85 -27
  109. package/dist/runtime/types/index.js +1 -0
  110. package/package.json +1 -1
  111. package/src/module.ts +1 -1
  112. package/src/runtime/assets/animations.css +3 -3
  113. package/src/runtime/assets/locales/en.json +2 -0
  114. package/src/runtime/build/WitchcraftUiResolver.ts +2 -2
  115. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  116. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  117. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  118. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  119. package/src/runtime/components/WCheckbox/WCheckbox.vue +125 -0
  120. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  121. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  122. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  123. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  124. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +44 -31
  125. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  126. package/src/runtime/components/WCombobox/WCombobox.vue +450 -0
  127. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  128. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  129. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  130. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  131. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  132. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +21 -21
  133. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  134. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  135. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  136. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -10
  137. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  138. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +7 -7
  139. package/src/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +98 -97
  140. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  141. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  142. package/src/runtime/components/WMultiValues/WMultiValues.vue +163 -0
  143. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +9 -9
  144. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +45 -65
  145. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  146. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +51 -29
  147. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  148. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  149. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  150. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  151. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  152. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  153. package/src/runtime/components/WPopover/WPopover.vue +168 -0
  154. package/src/runtime/components/WPopup/WPopup.stories.ts +104 -0
  155. package/src/runtime/components/WPopup/WPopup.vue +125 -0
  156. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  157. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  158. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  159. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  160. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  161. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  162. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +28 -44
  163. package/src/runtime/components/{LibTable/LibTable.stories.ts → WTable/WTable.stories.ts} +60 -52
  164. package/src/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +85 -88
  165. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  166. package/src/runtime/components/WTooltip/WTooltip.vue +128 -0
  167. package/src/runtime/components/index.ts +20 -20
  168. package/src/runtime/composables/index.ts +4 -4
  169. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  170. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  171. package/src/runtime/composables/useFallbackId.ts +6 -0
  172. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  173. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  174. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  175. package/src/runtime/helpers/NotificationHandler.ts +2 -2
  176. package/src/runtime/injectionKeys.ts +1 -7
  177. package/src/runtime/types/index.ts +105 -32
  178. package/types/components.d.ts +14 -15
  179. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -6
  180. package/dist/runtime/components/Aria/Aria.vue +0 -16
  181. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -6
  182. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -37
  183. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -37
  184. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -41
  185. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  186. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -41
  187. package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +0 -64
  188. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  189. package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +0 -64
  190. package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +0 -191
  191. package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +0 -191
  192. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -46
  193. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -46
  194. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -256
  195. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  196. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -256
  197. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -27
  198. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  199. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -27
  200. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  201. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -45
  202. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -45
  203. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -15
  204. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -15
  205. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -105
  206. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  207. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -105
  208. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -15
  209. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -15
  210. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -52
  211. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  212. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -52
  213. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  214. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -99
  215. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  216. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -99
  217. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -125
  218. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -125
  219. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -18
  220. package/dist/runtime/components/Template/NAME.vue +0 -27
  221. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -18
  222. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  223. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  224. package/dist/runtime/components/shared/props.d.ts +0 -171
  225. package/dist/runtime/components/shared/props.js +0 -2
  226. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  227. package/dist/runtime/composables/useAriaLabel.js +0 -15
  228. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  229. package/dist/runtime/composables/useDarkMode.js +0 -89
  230. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  231. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  232. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  233. package/dist/runtime/composables/useSuggestions.js +0 -263
  234. package/src/runtime/components/Aria/Aria.vue +0 -26
  235. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  236. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -131
  237. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  238. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  239. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -419
  240. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  241. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  242. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  243. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -131
  244. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  245. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  246. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  247. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  248. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  249. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  250. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  251. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  252. package/src/runtime/components/Template/NAME.vue +0 -49
  253. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  254. package/src/runtime/components/shared/props.ts +0 -199
  255. package/src/runtime/composables/useAriaLabel.ts +0 -23
  256. package/src/runtime/composables/useDarkMode.ts +0 -199
  257. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  258. package/src/runtime/composables/useSuggestions.ts +0 -339
  259. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  260. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  261. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  262. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  263. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  264. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  265. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  266. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  267. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.d.vue.ts → WDatePicker/WRangeDatePicker.d.vue.ts} +0 -0
  268. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue.d.ts → WDatePicker/WRangeDatePicker.vue.d.ts} +0 -0
  269. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +0 -0
  270. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +0 -0
  271. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  272. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  273. /package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +0 -0
  274. /package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +0 -0
  275. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  276. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.d.vue.ts → WNotifications/WNotificationTestMessageComponent.d.vue.ts} +0 -0
  277. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  278. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue.d.ts → WNotifications/WNotificationTestMessageComponent.vue.d.ts} +0 -0
  279. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.d.ts +0 -0
  280. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.js +0 -0
  281. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  282. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  283. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  284. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  285. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
  286. /package/src/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  287. /package/src/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.ts +0 -0
@@ -1,40 +0,0 @@
1
- import type { AnyFunction } from "@alanscodelog/utils";
2
- import { type Ref } from "vue";
3
- import type { SuggestionsEmits, SuggestionsOptions } from "../components/shared/props.js";
4
- /**
5
- * The logic for the suggestions component.
6
- *
7
- * Note that while object suggestions are supported, the `suggestionLabel` prop is required and $inputModel and $modelValue will still be string values (as returned by the suggestionLabel function).
8
- */
9
- export declare function useSuggestions<TSuggestion, TMultivalue extends boolean = false>($inputValue: Ref<string>, $modelValue: Ref<TMultivalue extends true ? string[] : string>, $open: Ref<boolean>, emit: SuggestionsEmits, opts: SuggestionsOptions<TSuggestion>, debug?: boolean): {
10
- list: import("vue").ComputedRef<any[] | undefined>;
11
- filtered: import("vue").ComputedRef<any[] | undefined>;
12
- active: Ref<number, number>;
13
- available: import("vue").ComputedRef<boolean>;
14
- moreThanOneAvailable: import("vue").ComputedRef<boolean>;
15
- hasExactlyMatching: import("vue").ComputedRef<TSuggestion | undefined>;
16
- /** Whether there is a valid suggestion that can be submitted. If `restrictToSuggestions` is true, this will be true if isValid is true, otherwise this is considered to be true if suggestions are available. */
17
- hasValidSuggestion: import("vue").ComputedRef<boolean>;
18
- openable: import("vue").ComputedRef<boolean | undefined>;
19
- getLabel: (item: any) => string;
20
- $open: Ref<boolean, boolean>;
21
- open: () => void;
22
- close: () => void;
23
- enterSelected: (doClose?: boolean) => void;
24
- enterIndex: (num: number, doClose?: boolean) => void;
25
- toggle: () => void;
26
- cancel: () => void;
27
- select: (num: number) => void;
28
- prev: () => void;
29
- next: () => void;
30
- first: () => void;
31
- last: () => void;
32
- };
33
- export declare function useSuggestionsInputAria(id: Ref<string>, $open: Ref<boolean>, activeSuggestion: Ref<number>, suggestions: Ref<any | undefined>): import("vue").ComputedRef<{
34
- "aria-autocomplete": "both" | undefined;
35
- "aria-controls": string | undefined;
36
- role: string | undefined;
37
- "aria-expanded": boolean | undefined;
38
- "aria-activedescendant": string | undefined;
39
- }>;
40
- export declare function suggestionLabelGuard<TFunction extends AnyFunction>(item: any, suggestionLabeler: TFunction | undefined): asserts suggestionLabeler is TFunction;
@@ -1,263 +0,0 @@
1
- import { isBlank } from "@alanscodelog/utils/isBlank";
2
- import { isObject } from "@alanscodelog/utils/isObject";
3
- import { pushIfNotIn } from "@alanscodelog/utils/pushIfNotIn";
4
- import { removeIfIn } from "@alanscodelog/utils/removeIfIn";
5
- import { computed, ref, toRaw, watch } from "vue";
6
- export function useSuggestions($inputValue, $modelValue, $open, emit, opts, debug = false) {
7
- if (typeof opts.suggestions?.[0] === "object" && !opts.suggestionLabel && !opts.suggestionsFilter) {
8
- throw new Error("`suggestionLabel` or `suggestionsFilter` must be passed if suggestions are objects.");
9
- }
10
- const activeSuggestion = ref(-1);
11
- watch(activeSuggestion, (val) => {
12
- emit("update:activeSuggestion", val);
13
- });
14
- if (opts.suggestions) {
15
- for (const suggestion of opts.suggestions) {
16
- suggestionLabelGuard(suggestion, opts.suggestionLabel);
17
- }
18
- }
19
- const getSuggestionLabel = (item) => {
20
- suggestionLabelGuard(item, opts.suggestionLabel);
21
- if (isObject(item)) {
22
- return opts.suggestionLabel(item);
23
- }
24
- return item;
25
- };
26
- const defaultSuggestionsFilter = (input, items) => input === "" ? [...items] : items.filter((item) => {
27
- if (Array.isArray($modelValue.value)) {
28
- if ($modelValue.value.includes(getSuggestionLabel(item))) return true;
29
- }
30
- return getSuggestionLabel(item).toLowerCase().includes(input.toLowerCase());
31
- });
32
- const suggestionsFilter = computed(() => opts.suggestionsFilter ?? defaultSuggestionsFilter);
33
- const suggestionsList = computed(() => {
34
- if (opts.suggestions) {
35
- const suggestions = [...opts.suggestions];
36
- if (Array.isArray($modelValue.value) && !opts.showSelectedValues) {
37
- pushIfNotIn(suggestions, $modelValue.value);
38
- }
39
- const res = suggestionsFilter.value($inputValue.value, suggestions);
40
- return res;
41
- }
42
- return void 0;
43
- });
44
- const suggestionAvailable = computed(() => (suggestionsList.value?.length ?? 0) > 0);
45
- const moreThanOneSuggestionAvailable = computed(() => (suggestionsList.value?.length ?? 0) > 1);
46
- const exactlyMatchingSuggestion = computed(() => opts.suggestions?.find((suggestion) => $inputValue.value === getSuggestionLabel(suggestion)));
47
- const isValidSuggestion = computed(() => !opts.restrictToSuggestions && opts.isValid || suggestionAvailable.value);
48
- const openable = computed(
49
- () => opts.canOpen && (isBlank($inputValue.value) && opts.allowOpenEmpty || suggestionAvailable.value)
50
- );
51
- const filteredSuggestions = computed(() => {
52
- if (opts.suggestions) {
53
- const res = suggestionAvailable.value ? suggestionsList.value : opts.suggestions;
54
- if (opts.restrictToSuggestions && !isValidSuggestion.value) return res;
55
- return res;
56
- }
57
- return void 0;
58
- });
59
- function setValue(val) {
60
- if (Array.isArray($modelValue.value)) {
61
- if ($modelValue.value.includes(val)) {
62
- removeIfIn($modelValue.value, val);
63
- return true;
64
- } else {
65
- pushIfNotIn($modelValue.value, [val]);
66
- }
67
- } else {
68
- $modelValue.value = val;
69
- }
70
- return false;
71
- }
72
- function closeSuggestions() {
73
- if (!opts.canClose) return;
74
- if (debug) console.log("closeSuggestions");
75
- $open.value = false;
76
- activeSuggestion.value = -1;
77
- }
78
- function openSuggestions() {
79
- if (debug) console.log("openSuggestions", { openable: openable.value });
80
- if (!openable.value) return;
81
- if (activeSuggestion.value === -1) {
82
- if (exactlyMatchingSuggestion.value) {
83
- activeSuggestion.value = suggestionsList.value?.indexOf(exactlyMatchingSuggestion.value) ?? -1;
84
- } else {
85
- activeSuggestion.value = 0;
86
- }
87
- }
88
- $open.value = true;
89
- }
90
- function enterSuggestion(num, doClose = true) {
91
- if (num < -1 || num > (filteredSuggestions.value?.length ?? 0)) return;
92
- if (debug) console.log("enterSuggestion", num);
93
- if (filteredSuggestions.value === void 0) return;
94
- const suggestion = filteredSuggestions.value[num];
95
- const val = getSuggestionLabel(suggestion);
96
- const wasRemoved = setValue(val);
97
- $inputValue.value = Array.isArray($modelValue.value) ? "" : getSuggestionLabel(suggestion);
98
- if (doClose) {
99
- closeSuggestions();
100
- }
101
- emit("submit", val, toRaw(suggestion), wasRemoved);
102
- }
103
- function enterSelected(doClose = true) {
104
- if (activeSuggestion.value === -1) {
105
- if (!opts.restrictToSuggestions) {
106
- if (debug) console.log("enterSelected, unrestricted, emitting submit");
107
- emit("submit", $inputValue.value);
108
- } else {
109
- if (debug) console.log("enterSelected, no active suggestion, ignoring");
110
- }
111
- return;
112
- }
113
- if (debug) console.log("enterSelected");
114
- enterSuggestion(activeSuggestion.value, doClose);
115
- }
116
- function selectSuggestion(num) {
117
- if (debug) console.log("selectSuggestion", num);
118
- if (num >= -1) {
119
- activeSuggestion.value = num;
120
- }
121
- if (num === Infinity && (filteredSuggestions.value?.length ?? 0) > 0) {
122
- activeSuggestion.value = filteredSuggestions.value.length - 1;
123
- }
124
- }
125
- function toggleSuggestions() {
126
- $open.value ? closeSuggestions() : openSuggestions();
127
- }
128
- function prevSuggestion() {
129
- if (!filteredSuggestions.value) return;
130
- if (activeSuggestion.value > 0) {
131
- activeSuggestion.value--;
132
- } else if (filteredSuggestions.value) {
133
- activeSuggestion.value = filteredSuggestions.value.length - 1;
134
- }
135
- }
136
- function nextSuggestion() {
137
- if (!filteredSuggestions.value) return;
138
- if (activeSuggestion.value >= filteredSuggestions.value.length - 1) {
139
- activeSuggestion.value = 0;
140
- } else {
141
- activeSuggestion.value++;
142
- }
143
- }
144
- function firstSuggestion() {
145
- selectSuggestion(0);
146
- }
147
- function lastSuggestion() {
148
- selectSuggestion(Infinity);
149
- }
150
- function cancel() {
151
- if (Array.isArray($modelValue.value)) {
152
- $inputValue.value = "";
153
- return;
154
- }
155
- if (debug) console.log("cancel");
156
- $inputValue.value = getSuggestionLabel($modelValue.value);
157
- closeSuggestions();
158
- }
159
- watch(() => opts.canOpen, (val) => {
160
- if (!val) {
161
- if (debug) console.log("canOpen changed to false, closing suggestions");
162
- closeSuggestions();
163
- }
164
- });
165
- watch(openable, (val) => {
166
- if (!val) {
167
- if (debug) console.log("openable changed to false, closing suggestions");
168
- closeSuggestions();
169
- }
170
- });
171
- watch(isValidSuggestion, () => {
172
- if (!isValidSuggestion.value) {
173
- if (debug) console.log("isValidSuggestion changed to false, opening suggestions");
174
- openSuggestions();
175
- }
176
- });
177
- watch($modelValue, () => {
178
- if (Array.isArray($modelValue.value)) {
179
- $inputValue.value = "";
180
- } else {
181
- $inputValue.value = getSuggestionLabel($modelValue.value);
182
- }
183
- if (debug) console.log("modelValue changed");
184
- });
185
- function defaultSuggestionSelector(suggestions, input) {
186
- if (input.length === 0) return 0;
187
- let longestMatch;
188
- let ii = -1;
189
- for (let i = 0; i < suggestions.length; i++) {
190
- const suggestion = suggestions[i];
191
- const label = getSuggestionLabel(suggestion);
192
- const labelPart = label.slice(0, input.length);
193
- if (labelPart === input) {
194
- if (label.length > (longestMatch?.[0]?.length ?? 0)) {
195
- longestMatch = label;
196
- ii = i;
197
- }
198
- }
199
- }
200
- return ii;
201
- }
202
- watch($inputValue, () => {
203
- if (debug) console.log("input changed:", $inputValue.value, "modelValue:", $modelValue.value);
204
- if (!Array.isArray($modelValue.value) && getSuggestionLabel($modelValue.value) === $inputValue.value) return;
205
- if (suggestionAvailable.value) {
206
- if (debug) console.log("input changed, suggestion available, opening suggestions");
207
- openSuggestions();
208
- }
209
- if (!opts.restrictToSuggestions && !Array.isArray($modelValue.value)) {
210
- if (debug) console.log("input changed, unrestricted, setting modelValue");
211
- setValue($inputValue.value);
212
- }
213
- if (exactlyMatchingSuggestion.value && suggestionsList.value) {
214
- if (debug) console.log("input changed, exactly matching, setting activeSuggestion");
215
- selectSuggestion(suggestionsList.value.indexOf(exactlyMatchingSuggestion.value));
216
- } else {
217
- if (debug) console.log("input changed, not exactly matching, finding longest match");
218
- const i = opts.suggestionSelector?.(filteredSuggestions.value ?? [], $inputValue.value) ?? defaultSuggestionSelector(filteredSuggestions.value ?? [], $inputValue.value);
219
- selectSuggestion(i);
220
- }
221
- });
222
- return {
223
- list: suggestionsList,
224
- filtered: filteredSuggestions,
225
- active: activeSuggestion,
226
- available: suggestionAvailable,
227
- moreThanOneAvailable: moreThanOneSuggestionAvailable,
228
- hasExactlyMatching: exactlyMatchingSuggestion,
229
- /** Whether there is a valid suggestion that can be submitted. If `restrictToSuggestions` is true, this will be true if isValid is true, otherwise this is considered to be true if suggestions are available. */
230
- hasValidSuggestion: isValidSuggestion,
231
- openable,
232
- getLabel: getSuggestionLabel,
233
- $open,
234
- open: openSuggestions,
235
- close: closeSuggestions,
236
- enterSelected,
237
- enterIndex: enterSuggestion,
238
- toggle: toggleSuggestions,
239
- cancel,
240
- select: selectSuggestion,
241
- prev: prevSuggestion,
242
- next: nextSuggestion,
243
- first: firstSuggestion,
244
- last: lastSuggestion
245
- };
246
- }
247
- export function useSuggestionsInputAria(id, $open, activeSuggestion, suggestions) {
248
- const ariaInputProps = computed(() => ({
249
- "aria-autocomplete": suggestions !== void 0 ? "both" : void 0,
250
- "aria-controls": suggestions !== void 0 ? `suggestions-${id.value}` : void 0,
251
- role: suggestions ? "combobox" : void 0,
252
- "aria-expanded": suggestions !== void 0 ? $open.value : void 0,
253
- "aria-activedescendant": $open.value ? `suggestion-${id.value}-${activeSuggestion.value}` : void 0
254
- }));
255
- return ariaInputProps;
256
- }
257
- export function suggestionLabelGuard(item, suggestionLabeler) {
258
- if (isObject(item)) {
259
- if (!suggestionLabeler) {
260
- throw new Error("`suggestionLabel` must be passed if suggestions are objects.");
261
- }
262
- }
263
- }
@@ -1,26 +0,0 @@
1
- <template>
2
- <div tabindex="0">
3
- {{ value }}
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- defineOptions({ name: "Aria" })
9
- defineProps<{
10
-
11
- value: string
12
- }>()
13
- </script>
14
-
15
- <style scoped>
16
- div {
17
- position: absolute;
18
- height: 1px;
19
- width: 1px;
20
- padding: 0;
21
- margin: -1px;
22
- overflow: hidden;
23
- clip: rect(0, 0, 0, 0);
24
- white-space: nowrap;
25
- }
26
- </style>
@@ -1,106 +0,0 @@
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
- const meta: Meta<typeof components.LibButton> = {
10
- component: components.LibButton,
11
- title: "Components/Button",
12
- args: {
13
- label: "Label",
14
- // @ts-expect-error - custom prop for story
15
- _iconAfter: true
16
- }
17
- }
18
-
19
- export default meta
20
- type Story = StoryObj<typeof components.LibButton>
21
-
22
- export const Primary: Story = {
23
- render: (args: any) => ({
24
- components: {
25
- ...components,
26
- IconFaSolidBell
27
- },
28
- setup: () => ({ args, capitalize }),
29
- template: `
30
- <div class="flex gap-4 justify-center">
31
- <template v-for="type of [false, 'ok', 'warning', 'danger', 'primary', 'secondary' ]">
32
- <lib-button v-bind="{...args, color: type, label: !args.label ? undefined : args.label + ' ' + capitalize(type || 'false')}">
33
- <template #icon>
34
- <icon class="w-[1em]"><icon-fa-solid-bell /></icon>
35
- </template>
36
- </lib-button>
37
- </template>
38
- </div>
39
- <div class="flex flex-col gap-4 pt-10">
40
- <template v-for="type of [false, 'ok', 'warning', 'danger', 'primary', 'secondary']">
41
- <lib-button v-bind="{...args, color: type , label: !args.label ? undefined : args.label + ' ' + capitalize(type || 'false') }">
42
- ${args._iconAfter
43
- ? `
44
- <template #icon-after>
45
- <icon class="w-[1em]"><icon-fa-solid-bell /></icon>
46
- </template>
47
- `
48
- : ``}
49
- </lib-button>
50
- </template>
51
- </div>
52
- `
53
- })
54
- }
55
-
56
- export const IconAfter: Story = {
57
- ...Primary,
58
- args: {
59
- ...Primary.args,
60
- // @ts-expect-error - .
61
- _iconAfter: true
62
- }
63
- }
64
-
65
- export const OnlyIcon: Story = {
66
- ...Primary,
67
- args: {
68
- ...Primary.args,
69
- label: undefined
70
- }
71
- }
72
- export const Disabled: Story = {
73
- ...Primary,
74
- args: {
75
- ...Primary.args,
76
- disabled: true
77
- }
78
- }
79
- export const Borderless: Story = {
80
- ...Primary,
81
- args: {
82
- ...Primary.args,
83
- border: false
84
- }
85
- }
86
- export const BorderlessDisabled: Story = {
87
- ...Primary,
88
- args: {
89
- ...Primary.args,
90
- border: false,
91
- disabled: true
92
- }
93
- }
94
- export const WithDivInside: Story = {
95
- render: (args: any) => ({
96
- components,
97
- setup: () => ({ args }),
98
- template: `
99
- <div class="flex gap-4 justify-center">
100
- <lib-button v-bind="{...args}">
101
- <div>Div inside button still has a pointer cursor.</div>
102
- </lib-button>
103
- </div>
104
- `
105
- })
106
- }
@@ -1,131 +0,0 @@
1
- <template>
2
- <div
3
- :class="twMerge(`
4
- checkbox--wrapper
5
- flex
6
- items-center
7
- gap-1
8
- `,
9
- ($.wrapperAttrs as any)?.class
10
- )"
11
- v-bind="{ ...$.wrapperAttrs, class: undefined }"
12
- ref="el"
13
- >
14
- <slot name="left"/>
15
- <label
16
- :class="twMerge(`
17
- checkbox--label
18
- flex
19
- items-center
20
- gap-1
21
- `,
22
- ($.labelAttrs as any)?.class
23
- )"
24
- v-bind="{ ...$.labelAttrs, class: undefined }"
25
- :for="id ?? fallbackId"
26
- >
27
- <input
28
- :id="id ?? fallbackId"
29
- :class="!($attrs as any).unstyle && twMerge(`
30
- checkbox
31
- focus-outline-no-offset
32
- m-0
33
- p-[0.4em]
34
- bg-bg
35
- dark:bg-fg
36
- appearance-none
37
- border
38
- border-neutral-500
39
- focus:border-accent-600
40
- rounded-sm
41
- aspect-square
42
- relative
43
- checked:after:content
44
- checked:after:absolute
45
- checked:after:w-full
46
- checked:after:h-full
47
- checked:after:border-2
48
- checked:after:border-bg
49
- dark:checked:after:border-fg
50
- checked:after:rounded-sm
51
- checked:after:top-0
52
- checked:after:left-0
53
- checked:after:bg-accent-700
54
- disabled:border-neutral-500
55
- disabled:checked:after:bg-neutral-700
56
- `, !disabled && `cursor-pointer`,
57
- ($.attrs as any).class
58
- )"
59
- type="checkbox"
60
- :disabled="disabled"
61
- ref="inputEl"
62
- v-model="$value"
63
- v-bind="{ ...$.attrs, class: undefined }"
64
- >
65
- <slot/> {{ label }}
66
- </label>
67
- </div>
68
- </template>
69
-
70
- <script setup lang="ts">
71
- import { type HTMLAttributes, type InputHTMLAttributes, ref } from "vue"
72
-
73
- import { useDivideAttrs } from "../../composables/useDivideAttrs.js"
74
- import { usePreHydrationValue } from "../../composables/usePreHydrationValue.js"
75
- import { twMerge } from "../../utils/twMerge.js"
76
- import { type BaseInteractiveProps, getFallbackId, type LabelProps, type LinkableByIdProps, type TailwindClassProp, type WrapperProps } from "../shared/props.js"
77
-
78
- defineOptions({
79
- name: "LibCheckbox",
80
- inheritAttrs: false
81
- })
82
-
83
- const $ = useDivideAttrs(["label", "wrapper"])
84
- /* todo multi states */
85
-
86
- const fallbackId = getFallbackId()
87
- const props = withDefaults(defineProps<Props>(), {
88
- unstyle: false, disabled: false, readonly: false, border: true
89
- })
90
-
91
- /* const emits = */defineEmits<{
92
- /* User presses enter. */
93
- (e: "submit", val: boolean): void
94
- }>()
95
-
96
- const el = ref<null | HTMLElement>(null)
97
- const inputEl = ref<null | HTMLElement>(null)
98
- const $value = defineModel<boolean>("modelValue", { default: false })
99
-
100
- usePreHydrationValue(props.id ?? fallbackId, $value)
101
- </script>
102
-
103
- <script lang="ts">
104
- type WrapperTypes = Partial<WrapperProps<"label", HTMLAttributes, {
105
- /** Tailwind classes. */
106
- class?: string
107
- }>>
108
-
109
- type RealProps
110
-
111
- = & LinkableByIdProps
112
- & LabelProps
113
- & BaseInteractiveProps
114
- & {
115
- unstyle?: boolean
116
- }
117
-
118
- interface Props
119
- extends
120
- /** @vue-ignore */
121
- Partial<Omit<
122
- InputHTMLAttributes,
123
- "class" | "readonly" | "disabled" | "onSumbit"
124
- // https://github.com/vuejs/core/pull/14237
125
- | "autocomplete"
126
- > & TailwindClassProp>,
127
- // /** @vue-ignore */
128
- WrapperTypes,
129
- RealProps
130
- {}
131
- </script>