@witchcraft/ui 0.3.26 → 0.4.0-beta.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 (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 +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 +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 +1 -1
  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 +123 -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} +43 -32
  125. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  126. package/src/runtime/components/WCombobox/WCombobox.vue +446 -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} +16 -22
  133. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -22
  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} +8 -11
  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} +95 -98
  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 +161 -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} +43 -66
  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 +161 -0
  154. package/src/runtime/components/WPopup/WPopup.stories.ts +60 -0
  155. package/src/runtime/components/WPopup/WPopup.vue +93 -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} +27 -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 -87
  165. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  166. package/src/runtime/components/WTooltip/WTooltip.vue +126 -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 +13 -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,26 +1,29 @@
1
1
  <template>
2
2
  <div
3
- :id="id"
4
3
  tabindex="-1"
5
4
  :class="twMerge(
6
5
  showOutline ? 'group outlined outlined-visible' : '[&_*]:outline-hidden',
7
6
  darkMode && ' dark',
8
- $attrs['wrapperAttrs']?.class
7
+ wrapperAttrs?.class
9
8
  )"
10
- v-bind="{ ...$attrs['wrapperAttrs'], attrs: void 0, class: void 0 }"
9
+ v-bind="{
10
+ id: 'app',
11
+ ...wrapperAttrs,
12
+ class: void 0
13
+ }"
11
14
  :ref="handleRef"
12
15
  >
13
16
  <!-- id root is useful for teleports, so they are at the topmost level where they can still be styled -->
14
17
  <!-- See TestControls for why the margins here -->
15
18
  <div
16
19
  id="root"
17
- v-bind="{ ...$attrs.attrs, class: void 0, wrapperAttrs: void 0 }"
20
+ v-bind="{ ...$attrs, class: void 0 }"
18
21
  :class="twMerge(
19
22
  `
20
- dark:bg-fg
21
- dark:text-bg
22
- bg-bg
23
- text-fg
23
+ dark:bg-neutral-900
24
+ dark:text-white
25
+ bg-neutral-50
26
+ text-black
24
27
  `,
25
28
  testWrapperMode && `
26
29
  px-10
@@ -31,7 +34,7 @@
31
34
  flex
32
35
  flex-col
33
36
  `,
34
- $attrs.attrs?.class
37
+ $attrs.class
35
38
  )"
36
39
  >
37
40
  <TestControls
@@ -49,9 +52,8 @@
49
52
 
50
53
  <script setup>
51
54
  import { unreachable } from "@alanscodelog/utils/unreachable";
52
- import { computed, onBeforeUnmount, onMounted, ref, toRaw } from "vue";
55
+ import { computed, onBeforeUnmount, onMounted, ref, toRaw, useAttrs } from "vue";
53
56
  import { useAccesibilityOutline } from "../../composables/useAccesibilityOutline.js";
54
- import { useDivideAttrs } from "../../composables/useDivideAttrs.js";
55
57
  import { useNotificationHandler } from "../../composables/useNotificationHandler.js";
56
58
  import { useSetupDarkMode } from "../../composables/useSetupDarkMode.js";
57
59
  import { useSetupI18n } from "../../composables/useSetupI18n.js";
@@ -60,21 +62,21 @@ import { useShowDevOnlyKey } from "../../composables/useShowDevOnlyKey.js";
60
62
  import { NotificationHandler } from "../../helpers/NotificationHandler.js";
61
63
  import { theme as defaultTheme } from "../../theme.js";
62
64
  import { twMerge } from "../../utils/twMerge.js";
63
- import Notifications from "../LibNotifications/LibNotifications.vue";
64
65
  import TestControls from "../TestControls/TestControls.vue";
65
- const $attrs = useDivideAttrs(["wrapper"]);
66
+ import Notifications from "../WNotifications/WNotifications.vue";
66
67
  defineOptions({ name: "Root", inheritAttrs: false, suspensible: false });
68
+ const $attrs = useAttrs();
67
69
  const props = defineProps({
68
70
  theme: { type: Object, required: false, default: void 0 },
69
71
  outline: { type: Boolean, required: false, default: true },
70
72
  forceOutline: { type: Boolean, required: false, default: false },
71
73
  testWrapperMode: { type: Boolean, required: false, default: false },
72
- id: { type: String, required: false, default: "app" },
73
74
  getRef: { type: Function, required: false, default: void 0 },
74
75
  isClientSide: { type: Boolean, required: false, default: true },
75
76
  useBuiltinTranslations: { type: Boolean, required: false, default: true },
76
77
  useNotifications: { type: Boolean, required: false, default: true },
77
- notificationHandler: { type: Object, required: false, default: void 0 }
78
+ notificationHandler: { type: Object, required: false, default: void 0 },
79
+ wrapperAttrs: { type: Object, required: false }
78
80
  });
79
81
  const el = ref(null);
80
82
  function handleRef(_) {
@@ -1,11 +1,12 @@
1
1
  import type { Theme } from "metamorphosis";
2
+ import type { HTMLAttributes } from "vue";
2
3
  import { NotificationHandler } from "../../helpers/NotificationHandler.js";
4
+ import type { TailwindClassProp } from "../../types/index.js";
3
5
  type __VLS_Props = {
4
6
  theme?: Theme;
5
7
  outline?: boolean;
6
8
  forceOutline?: boolean;
7
9
  testWrapperMode?: boolean;
8
- id?: string;
9
10
  /** You can set a ref to the root element by passing :getRef="_ => el = _" */
10
11
  getRef?: (el: HTMLElement | null) => void;
11
12
  /** True by default, should be passed import.meta.client if using nuxt, or false when running server side. */
@@ -13,19 +14,19 @@ type __VLS_Props = {
13
14
  useBuiltinTranslations?: boolean;
14
15
  useNotifications?: boolean;
15
16
  notificationHandler?: NotificationHandler;
17
+ wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp;
16
18
  };
17
19
  declare var __VLS_11: {};
18
20
  type __VLS_Slots = {} & {
19
21
  default?: (props: typeof __VLS_11) => any;
20
22
  };
21
23
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
22
- darkMode: import("../../composables/useDarkMode.js").DarkModeState & import("../../composables/useDarkMode.js").DarkModeCommands;
24
+ darkMode: import("../../main.lib.js").DarkModeState & import("../../main.lib.js").DarkModeCommands;
23
25
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
24
- theme: Theme;
25
- id: string;
26
- isClientSide: boolean;
27
26
  useBuiltinTranslations: boolean;
27
+ theme: Theme;
28
28
  outline: boolean;
29
+ isClientSide: boolean;
29
30
  forceOutline: boolean;
30
31
  testWrapperMode: boolean;
31
32
  getRef: (el: HTMLElement | null) => void;
@@ -1,24 +1,15 @@
1
1
  import { type InputHTMLAttributes } from "vue";
2
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js";
3
- type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
4
- placeholder?: InputHTMLAttributes["placeholder"];
5
- disabled?: InputHTMLAttributes["disabled"];
6
- id?: InputHTMLAttributes["id"];
7
- type?: InputHTMLAttributes["type"];
8
- valid?: boolean;
9
- };
10
- interface Props extends
11
- /** @vue-ignore */
12
- Partial<Omit<InputHTMLAttributes, "class" | "readonly" | "disabled" | "onSubmit" | "onInput" | "autocomplete"> & TailwindClassProp>, RealProps {
13
- }
14
- declare const _default: typeof __VLS_export;
15
- export default _default;
2
+ import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js";
16
3
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(Props & {
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(Omit<InputHTMLAttributes, "class" | "onInput" | "onSubmit" | "disabled" | "readonly" | "autocomplete"> & TailwindClassProp & Pick<BaseInteractiveProps, "border" | "unstyle"> & {
5
+ id?: string;
6
+ label?: string;
7
+ valid?: boolean;
8
+ } & {
18
9
  modelValue: T;
19
10
  }) & {
20
- onInput?: ((val: InputEvent) => any) | undefined;
21
11
  onSubmit?: ((val: T) => any) | undefined;
12
+ onInput?: ((val: InputEvent) => any) | undefined;
22
13
  "onUpdate:modelValue"?: ((value: T) => any) | undefined;
23
14
  }> & (typeof globalThis extends {
24
15
  __VLS_PROPS_FALLBACK: infer P;
@@ -33,6 +24,8 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
33
24
  }>) => import("vue").VNode & {
34
25
  __ctx?: Awaited<typeof __VLS_setup>;
35
26
  };
27
+ declare const _default: typeof __VLS_export;
28
+ export default _default;
36
29
  type __VLS_PrettifyLocal<T> = (T extends any ? {
37
30
  [K in keyof T]: T[K];
38
31
  } : {
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <input
3
- :id="id ?? fallbackId"
4
- :class="twMerge(
3
+ :id="finalId"
4
+ :class="!unstyle && twMerge(
5
5
  `
6
6
  simple-input
7
7
  flex-1
@@ -71,12 +71,11 @@
71
71
  )"
72
72
  :data-border="border"
73
73
  :data-invalid="!valid"
74
- :type="type"
75
- :placeholder="placeholder"
76
- :disabled="disabled"
77
- :readonly="readonly"
78
74
  v-model="modelValue"
79
- v-bind="{ ...$attrs, class: void 0, ...ariaLabel }"
75
+ v-bind="{
76
+ ...$attrs,
77
+ class: void 0
78
+ }"
80
79
  @keydown="handleKeydown"
81
80
  @input="emit('input', $event)"
82
81
  >
@@ -84,39 +83,29 @@
84
83
 
85
84
  <script setup>
86
85
  import { useAttrs } from "vue";
87
- import { useAriaLabel } from "../../composables/useAriaLabel.js";
86
+ import { useFallbackId } from "../../composables/useFallbackId.js";
88
87
  import { usePreHydrationValue } from "../../composables/usePreHydrationValue.js";
89
88
  import { hasModifiers } from "../../helpers/hasModifiers.js";
90
89
  import { twMerge } from "../../utils/twMerge.js";
91
- import { getFallbackId } from "../shared/props.js";
92
90
  defineOptions({
93
- name: "LibSimpleInput",
91
+ name: "WSimpleInput",
94
92
  inheritAttrs: false
95
93
  });
96
- const fallbackId = getFallbackId();
97
94
  const props = defineProps({
95
+ unstyle: { type: Boolean, required: false },
96
+ border: { type: Boolean, required: false, default: true },
98
97
  id: { type: String, required: false, default: "" },
99
98
  label: { type: String, required: false, default: "" },
100
- disabled: { type: [Boolean, String], required: false, default: false },
101
- readonly: { type: Boolean, required: false, default: false },
102
- border: { type: Boolean, required: false, default: true },
103
- unstyle: { type: Boolean, required: false, default: false },
104
- placeholder: { type: null, required: false, default: "" },
105
- type: { type: null, required: false, default: void 0 },
106
99
  valid: { type: Boolean, required: false, default: true }
107
100
  });
101
+ const finalId = useFallbackId(props);
108
102
  const modelValue = defineModel({ type: null, ...{ required: true } });
109
103
  const emit = defineEmits(["submit", "input"]);
110
104
  const $attrs = useAttrs();
111
- const ariaLabel = useAriaLabel(props, fallbackId);
112
105
  function handleKeydown(e) {
113
106
  if (e.key === "Enter" && !hasModifiers(e)) {
114
107
  emit("submit", modelValue.value);
115
108
  }
116
109
  }
117
- usePreHydrationValue(props.id ?? fallbackId, modelValue);
118
- </script>
119
-
120
- <script>
121
-
110
+ usePreHydrationValue(finalId, modelValue);
122
111
  </script>
@@ -1,24 +1,15 @@
1
1
  import { type InputHTMLAttributes } from "vue";
2
- import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js";
3
- type RealProps = LinkableByIdProps & LabelProps & BaseInteractiveProps & {
4
- placeholder?: InputHTMLAttributes["placeholder"];
5
- disabled?: InputHTMLAttributes["disabled"];
6
- id?: InputHTMLAttributes["id"];
7
- type?: InputHTMLAttributes["type"];
8
- valid?: boolean;
9
- };
10
- interface Props extends
11
- /** @vue-ignore */
12
- Partial<Omit<InputHTMLAttributes, "class" | "readonly" | "disabled" | "onSubmit" | "onInput" | "autocomplete"> & TailwindClassProp>, RealProps {
13
- }
14
- declare const _default: typeof __VLS_export;
15
- export default _default;
2
+ import type { BaseInteractiveProps, TailwindClassProp } from "../../types/index.js";
16
3
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(Props & {
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(Omit<InputHTMLAttributes, "class" | "onInput" | "onSubmit" | "disabled" | "readonly" | "autocomplete"> & TailwindClassProp & Pick<BaseInteractiveProps, "border" | "unstyle"> & {
5
+ id?: string;
6
+ label?: string;
7
+ valid?: boolean;
8
+ } & {
18
9
  modelValue: T;
19
10
  }) & {
20
- onInput?: ((val: InputEvent) => any) | undefined;
21
11
  onSubmit?: ((val: T) => any) | undefined;
12
+ onInput?: ((val: InputEvent) => any) | undefined;
22
13
  "onUpdate:modelValue"?: ((value: T) => any) | undefined;
23
14
  }> & (typeof globalThis extends {
24
15
  __VLS_PROPS_FALLBACK: infer P;
@@ -33,6 +24,8 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
33
24
  }>) => import("vue").VNode & {
34
25
  __ctx?: Awaited<typeof __VLS_setup>;
35
26
  };
27
+ declare const _default: typeof __VLS_export;
28
+ export default _default;
36
29
  type __VLS_PrettifyLocal<T> = (T extends any ? {
37
30
  [K in keyof T]: T[K];
38
31
  } : {
@@ -0,0 +1,102 @@
1
+ import { type VirtualizerOptions } from "@tanstack/vue-virtual";
2
+ import { type HTMLAttributes, type TableHTMLAttributes } from "vue";
3
+ import type { ResizableOptions, TableColConfig, TailwindClassProp } from "../../types/index.js";
4
+ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
6
+ resizable?: Partial<ResizableOptions>;
7
+ values: T[];
8
+ /** Let's the table know the shape of the data since values might be empty. */
9
+ cols?: (keyof T)[];
10
+ rounded?: boolean;
11
+ border?: boolean;
12
+ cellBorder?: boolean;
13
+ /** Disables the header. This also sets the selector to `tr:first-child > td` instead to avoid issues with the vResizableCols directive. */
14
+ header?: boolean;
15
+ colConfig?: TableColConfig<T>;
16
+ /**
17
+ * See tanstack/vue-virtual {@link https://tanstack.com/virtual/latest/docs/api/virtualizer}
18
+ *
19
+ * The defaults are:
20
+ *
21
+ * - enabled: false
22
+ * - method: "fixed"
23
+ * - overscan: (50 if fixed, 10 if dynamic)
24
+ * - estimateSize: () => { return 33 }
25
+ *
26
+ * This also has an additional option, `method`, which can be set to `fixed` or `dynamic` (experimental).
27
+ *
28
+ * Notes:
29
+ *
30
+ * - Because of how virtualization works, initial layout (before .resizable-cols-setup class is applied) will only have access to the headers and not the rows. This can cause cols to look very small, especially if using resizable.fitWidth false.
31
+ *
32
+ * ### Fixed
33
+ *
34
+ * `fixed` is the default and will set the height of ALL items to the height of the first item onMounted (tanstack does not do this and if your estimateSize if off, the scrolling is weird).
35
+ *
36
+ * Since the table now truncates rows by default, they will always be the same height unless you change the inner styling. In fixed mode, `forceRecalculateFixedVirtualizer` is exposed if you need to force re-calculation.
37
+ *
38
+ * If using slots, be sure to at least pass the `class` slot prop to the td element. `style` with width is also supplied but is not required if you're displaying the table as a table.
39
+ *
40
+ * ### Dynamic (experimental)
41
+ *
42
+ * In `dynamic` mode we use tanstack's measureElement method. This is more expensive, but it will work with any heights.
43
+ *
44
+ * Dynamic mode also requires the table displays itself using grid and flex post setup as otherwise dynamic mode doesn't work.
45
+ *
46
+ * You don't need to do anything unless using slots. If using slots, pass the given `ref` slot prop to ref (internally this is tanstack's measureElement) and the class and style slot props at the very least:
47
+ * ```vue
48
+ * <template #[`${colName}`]="slotProps">
49
+ * <td
50
+ * :ref="slotProps.ref"
51
+ * :class="slotProps.class"
52
+ * :style="slotProps.style"
53
+ * >
54
+ * {{ slotProps.value }}
55
+ * </td>
56
+ * </template>
57
+ * ```
58
+ */
59
+ virtualizerOptions?: Partial<VirtualizerOptions<any, any>> & {
60
+ method?: "fixed" | "dynamic";
61
+ };
62
+ /** Whether to enable sticky header styles. This requires `border:false`. This moves the border to the wrapper and styles a straight border between the scroll bar and the rounded border. */
63
+ stickyHeader?: boolean;
64
+ /** Which key to use for the rows (only if not using virtualization). */
65
+ itemKey?: keyof T | ((item: T) => string);
66
+ /** Pass attributes to the wrapper div. To pass to the table you can use regular top level attributes. */
67
+ wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp;
68
+ } & Omit<TableHTMLAttributes, "class" | "disabled" | "readonly"> & TailwindClassProp> & (typeof globalThis extends {
69
+ __VLS_PROPS_FALLBACK: infer P;
70
+ } ? P : {});
71
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
72
+ forceRecalculateFixedVirtualizer: () => void;
73
+ }>) => void;
74
+ attrs: any;
75
+ slots: {
76
+ [x: `header-${string}`]: ((props: {
77
+ colKey: keyof T;
78
+ config: any;
79
+ style: {
80
+ width: undefined;
81
+ };
82
+ class: string | undefined;
83
+ }) => any) | undefined;
84
+ } & { [K in NonNullable<keyof T>]?: ((props: {
85
+ class: string | undefined;
86
+ style: {
87
+ width: undefined;
88
+ };
89
+ item: T | undefined;
90
+ value: NonNullable<T>[keyof T];
91
+ }) => any) | undefined; };
92
+ emit: {};
93
+ }>) => import("vue").VNode & {
94
+ __ctx?: Awaited<typeof __VLS_setup>;
95
+ };
96
+ declare const _default: typeof __VLS_export;
97
+ export default _default;
98
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
99
+ [K in keyof T]: T[K];
100
+ } : {
101
+ [K in keyof T as K]: T[K];
102
+ }) & {};
@@ -51,8 +51,9 @@
51
51
  mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
52
52
  relative
53
53
  `,
54
- $attrs['wrapper-class']
54
+ wrapperAttrs?.class
55
55
  )"
56
+ v-bind="{ ...wrapperAttrs, class: void 0 }"
56
57
  ref="parentRef"
57
58
  >
58
59
  <div
@@ -63,10 +64,9 @@
63
64
  >
64
65
  <!-- https://github.com/TanStack/virtual/issues/640#issuecomment-2795731690 -->
65
66
  <table
66
- :style="{
67
- ...stickyHeader && mergedVirtualizerOpts.enabled ? { '--table-sticky-fix': `${totalSize - tableHeight}px` } : {},
68
- ...$attrs.style ?? {}
69
- }"
67
+ :style="[{
68
+ ...stickyHeader && mergedVirtualizerOpts.enabled ? { '--table-sticky-fix': `${totalSize - tableHeight}px` } : {}
69
+ }, $attrs?.style]"
70
70
  :class="twMerge(
71
71
  `
72
72
  table
@@ -107,6 +107,7 @@
107
107
  `,
108
108
  $attrs.class
109
109
  )"
110
+ v-bind="{ ...$attrs, class: void 0, style: void 0 }"
110
111
  v-resizable-cols="resizableOptions"
111
112
  >
112
113
  <thead
@@ -177,7 +178,7 @@
177
178
  :style="{
178
179
  ...mergedVirtualizerOpts.enabled ? {
179
180
  transform: mergedVirtualizerOpts.method === 'fixed' ? `translateY(${virtual.start - index * virtual.size}px)` : `translateY(${virtual.start}px)`,
180
- height: `${virtual.size}px`
181
+ height: mergedVirtualizerOpts.method === 'fixed' ? `${virtual.size}px` : void 0
181
182
  } : {}
182
183
  }"
183
184
  :data-index="virtual.index"
@@ -214,17 +215,18 @@
214
215
  import { keys } from "@alanscodelog/utils/keys";
215
216
  import { throttle } from "@alanscodelog/utils/throttle";
216
217
  import { useVirtualizer } from "@tanstack/vue-virtual";
217
- import { computed, onMounted, ref } from "vue";
218
+ import { computed, onMounted, ref, useAttrs } from "vue";
218
219
  import { useGlobalResizeObserver } from "../../composables/useGlobalResizeObserver.js";
219
220
  import { vResizableCols } from "../../directives/vResizableCols.js";
220
221
  import { twMerge } from "../../utils/twMerge.js";
221
222
  defineOptions({
222
- name: "LibTable",
223
+ name: "WTable",
223
224
  inheritAttrs: false
224
225
  });
226
+ const $attrs = useAttrs();
225
227
  const props = defineProps({
226
228
  resizable: { type: Object, required: false, default: () => ({}) },
227
- values: { type: Array, required: false, default: () => [] },
229
+ values: { type: Array, required: true },
228
230
  cols: { type: Array, required: false, default: () => [] },
229
231
  rounded: { type: Boolean, required: false, default: true },
230
232
  border: { type: Boolean, required: false, default: true },
@@ -233,7 +235,8 @@ const props = defineProps({
233
235
  colConfig: { type: Object, required: false, default: () => ({}) },
234
236
  virtualizerOptions: { type: Object, required: false, default: () => ({}) },
235
237
  stickyHeader: { type: Boolean, required: false },
236
- itemKey: { type: [String, Number, Symbol, Function], required: false, default: "" }
238
+ itemKey: { type: Function, required: false, skipCheck: true },
239
+ wrapperAttrs: { type: Object, required: false }
237
240
  });
238
241
  const widths = ref([]);
239
242
  const isPostSetup = ref(false);
@@ -365,7 +368,3 @@ defineExpose({
365
368
  forceRecalculateFixedVirtualizer
366
369
  });
367
370
  </script>
368
-
369
- <script>
370
-
371
- </script>
@@ -0,0 +1,102 @@
1
+ import { type VirtualizerOptions } from "@tanstack/vue-virtual";
2
+ import { type HTMLAttributes, type TableHTMLAttributes } from "vue";
3
+ import type { ResizableOptions, TableColConfig, TailwindClassProp } from "../../types/index.js";
4
+ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
6
+ resizable?: Partial<ResizableOptions>;
7
+ values: T[];
8
+ /** Let's the table know the shape of the data since values might be empty. */
9
+ cols?: (keyof T)[];
10
+ rounded?: boolean;
11
+ border?: boolean;
12
+ cellBorder?: boolean;
13
+ /** Disables the header. This also sets the selector to `tr:first-child > td` instead to avoid issues with the vResizableCols directive. */
14
+ header?: boolean;
15
+ colConfig?: TableColConfig<T>;
16
+ /**
17
+ * See tanstack/vue-virtual {@link https://tanstack.com/virtual/latest/docs/api/virtualizer}
18
+ *
19
+ * The defaults are:
20
+ *
21
+ * - enabled: false
22
+ * - method: "fixed"
23
+ * - overscan: (50 if fixed, 10 if dynamic)
24
+ * - estimateSize: () => { return 33 }
25
+ *
26
+ * This also has an additional option, `method`, which can be set to `fixed` or `dynamic` (experimental).
27
+ *
28
+ * Notes:
29
+ *
30
+ * - Because of how virtualization works, initial layout (before .resizable-cols-setup class is applied) will only have access to the headers and not the rows. This can cause cols to look very small, especially if using resizable.fitWidth false.
31
+ *
32
+ * ### Fixed
33
+ *
34
+ * `fixed` is the default and will set the height of ALL items to the height of the first item onMounted (tanstack does not do this and if your estimateSize if off, the scrolling is weird).
35
+ *
36
+ * Since the table now truncates rows by default, they will always be the same height unless you change the inner styling. In fixed mode, `forceRecalculateFixedVirtualizer` is exposed if you need to force re-calculation.
37
+ *
38
+ * If using slots, be sure to at least pass the `class` slot prop to the td element. `style` with width is also supplied but is not required if you're displaying the table as a table.
39
+ *
40
+ * ### Dynamic (experimental)
41
+ *
42
+ * In `dynamic` mode we use tanstack's measureElement method. This is more expensive, but it will work with any heights.
43
+ *
44
+ * Dynamic mode also requires the table displays itself using grid and flex post setup as otherwise dynamic mode doesn't work.
45
+ *
46
+ * You don't need to do anything unless using slots. If using slots, pass the given `ref` slot prop to ref (internally this is tanstack's measureElement) and the class and style slot props at the very least:
47
+ * ```vue
48
+ * <template #[`${colName}`]="slotProps">
49
+ * <td
50
+ * :ref="slotProps.ref"
51
+ * :class="slotProps.class"
52
+ * :style="slotProps.style"
53
+ * >
54
+ * {{ slotProps.value }}
55
+ * </td>
56
+ * </template>
57
+ * ```
58
+ */
59
+ virtualizerOptions?: Partial<VirtualizerOptions<any, any>> & {
60
+ method?: "fixed" | "dynamic";
61
+ };
62
+ /** Whether to enable sticky header styles. This requires `border:false`. This moves the border to the wrapper and styles a straight border between the scroll bar and the rounded border. */
63
+ stickyHeader?: boolean;
64
+ /** Which key to use for the rows (only if not using virtualization). */
65
+ itemKey?: keyof T | ((item: T) => string);
66
+ /** Pass attributes to the wrapper div. To pass to the table you can use regular top level attributes. */
67
+ wrapperAttrs?: Omit<HTMLAttributes, "class"> & TailwindClassProp;
68
+ } & Omit<TableHTMLAttributes, "class" | "disabled" | "readonly"> & TailwindClassProp> & (typeof globalThis extends {
69
+ __VLS_PROPS_FALLBACK: infer P;
70
+ } ? P : {});
71
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
72
+ forceRecalculateFixedVirtualizer: () => void;
73
+ }>) => void;
74
+ attrs: any;
75
+ slots: {
76
+ [x: `header-${string}`]: ((props: {
77
+ colKey: keyof T;
78
+ config: any;
79
+ style: {
80
+ width: undefined;
81
+ };
82
+ class: string | undefined;
83
+ }) => any) | undefined;
84
+ } & { [K in NonNullable<keyof T>]?: ((props: {
85
+ class: string | undefined;
86
+ style: {
87
+ width: undefined;
88
+ };
89
+ item: T | undefined;
90
+ value: NonNullable<T>[keyof T];
91
+ }) => any) | undefined; };
92
+ emit: {};
93
+ }>) => import("vue").VNode & {
94
+ __ctx?: Awaited<typeof __VLS_setup>;
95
+ };
96
+ declare const _default: typeof __VLS_export;
97
+ export default _default;
98
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
99
+ [K in keyof T]: T[K];
100
+ } : {
101
+ [K in keyof T as K]: T[K];
102
+ }) & {};
@@ -0,0 +1,40 @@
1
+ import type { PopupConstrainToProps } from "../../types/index.js";
2
+ type __VLS_Props = PopupConstrainToProps & {
3
+ delayDuration?: number;
4
+ disabled?: boolean;
5
+ triggerWhileDisabled?: boolean;
6
+ content?: string;
7
+ collisionBoundary?: Element | null;
8
+ to?: string;
9
+ /** Reka's TooltipRoot props */
10
+ rootProps?: any;
11
+ /** Reka's TooltipContent props */
12
+ contentProps?: any;
13
+ };
14
+ declare var __VLS_20: {}, __VLS_39: {}, __VLS_64: {
15
+ content: string;
16
+ };
17
+ type __VLS_Slots = {} & {
18
+ default?: (props: typeof __VLS_20) => any;
19
+ } & {
20
+ default?: (props: typeof __VLS_39) => any;
21
+ } & {
22
+ content?: (props: typeof __VLS_64) => any;
23
+ };
24
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
25
+ content: string;
26
+ disabled: boolean;
27
+ constrainWidthTo: number | "trigger" | "available" | string | null;
28
+ constrainHeightTo: number | "trigger" | "available" | string | null;
29
+ to: string;
30
+ delayDuration: number;
31
+ triggerWhileDisabled: boolean;
32
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
33
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
36
+ type __VLS_WithSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };