@witchcraft/ui 0.3.25 → 0.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/README.md +54 -61
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/assets/animations.css +1 -1
  4. package/dist/runtime/assets/locales/en.json +2 -0
  5. package/dist/runtime/assets/utils.css +1 -1
  6. package/dist/runtime/build/WitchcraftUiResolver.js +1 -1
  7. package/dist/runtime/components/TestControls/TestControls.vue +3 -3
  8. package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
  9. package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
  10. package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
  11. package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
  12. package/dist/runtime/components/WCheckbox/WCheckbox.vue +109 -0
  13. package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
  14. package/dist/runtime/components/WColorInput/WColorInput.d.vue.ts +45 -0
  15. package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
  16. package/dist/runtime/components/WColorInput/WColorInput.vue.d.ts +45 -0
  17. package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
  18. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
  19. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
  20. package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +7 -6
  21. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +40 -29
  22. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +7 -6
  23. package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +109 -0
  24. package/dist/runtime/components/WCombobox/WCombobox.vue +402 -0
  25. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +109 -0
  26. package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
  27. package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
  28. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +8 -13
  29. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
  30. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +8 -13
  31. package/dist/runtime/components/WDatePicker/WDatePicker.d.vue.ts +40 -0
  32. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  33. package/dist/runtime/components/WDatePicker/WDatePicker.vue.d.ts +40 -0
  34. package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -21
  35. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -21
  36. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.d.vue.ts → WDatePicker/WTimeZonePicker.d.vue.ts} +1 -11
  37. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  38. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue.d.ts → WDatePicker/WTimeZonePicker.vue.d.ts} +1 -11
  39. package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -12
  40. package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +0 -3
  41. package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +0 -3
  42. package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
  43. package/dist/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +71 -57
  44. package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
  45. package/dist/runtime/components/{Icon/Icon.vue.d.ts → WIcon/WIcon.d.vue.ts} +2 -6
  46. package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
  47. package/dist/runtime/components/{Icon/Icon.d.vue.ts → WIcon/WIcon.vue.d.ts} +2 -6
  48. package/dist/runtime/components/{LibMultiValues/LibMultiValues.d.vue.ts → WMultiValues/WMultiValues.d.vue.ts} +8 -14
  49. package/dist/runtime/components/WMultiValues/WMultiValues.vue +149 -0
  50. package/dist/runtime/components/{LibMultiValues/LibMultiValues.vue.d.ts → WMultiValues/WMultiValues.vue.d.ts} +8 -14
  51. package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
  52. package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +32 -47
  53. package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
  54. package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
  55. package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +35 -17
  56. package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
  57. package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
  58. package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
  59. package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
  60. package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
  61. package/dist/runtime/components/WPagination/WPagination.vue +182 -0
  62. package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
  63. package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
  64. package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  65. package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
  66. package/dist/runtime/components/WPopover/WPopover.d.vue.ts +43 -0
  67. package/dist/runtime/components/WPopover/WPopover.vue +138 -0
  68. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +43 -0
  69. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +41 -0
  70. package/dist/runtime/components/WPopup/WPopup.vue +74 -0
  71. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +41 -0
  72. package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +14 -18
  73. package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
  74. package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +14 -18
  75. package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +14 -29
  76. package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
  77. package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +14 -29
  78. package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +6 -5
  79. package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
  80. package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +6 -5
  81. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.d.vue.ts → WSimpleInput/WSimpleInput.d.vue.ts} +9 -16
  82. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +12 -23
  83. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue.d.ts → WSimpleInput/WSimpleInput.vue.d.ts} +9 -16
  84. package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
  85. package/dist/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +13 -14
  86. package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
  87. package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
  88. package/dist/runtime/components/WTooltip/WTooltip.vue +111 -0
  89. package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
  90. package/dist/runtime/components/index.d.ts +20 -20
  91. package/dist/runtime/components/index.js +20 -20
  92. package/dist/runtime/composables/index.d.ts +4 -4
  93. package/dist/runtime/composables/index.js +4 -4
  94. package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
  95. package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
  96. package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
  97. package/dist/runtime/composables/useDisplayForReka.js +16 -0
  98. package/dist/runtime/composables/useFallbackId.d.ts +3 -0
  99. package/dist/runtime/composables/useFallbackId.js +5 -0
  100. package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
  101. package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
  102. package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
  103. package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
  104. package/dist/runtime/composables/useSetupDarkMode.js +90 -4
  105. package/dist/runtime/helpers/NotificationHandler.d.ts +8 -4
  106. package/dist/runtime/helpers/NotificationHandler.js +5 -8
  107. package/dist/runtime/injectionKeys.d.ts +1 -5
  108. package/dist/runtime/injectionKeys.js +0 -2
  109. package/dist/runtime/types/index.d.ts +85 -27
  110. package/dist/runtime/types/index.js +1 -0
  111. package/package.json +7 -7
  112. package/src/runtime/assets/animations.css +3 -3
  113. package/src/runtime/assets/locales/en.json +2 -0
  114. package/src/runtime/assets/utils.css +43 -0
  115. package/src/runtime/build/WitchcraftUiResolver.ts +1 -1
  116. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  117. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  118. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  119. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  120. package/src/runtime/components/WCheckbox/WCheckbox.vue +123 -0
  121. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  122. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  123. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  124. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  125. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +43 -32
  126. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  127. package/src/runtime/components/WCombobox/WCombobox.vue +446 -0
  128. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  129. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  130. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  131. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  132. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  133. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +16 -22
  134. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +16 -22
  135. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  136. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  137. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +8 -11
  138. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  139. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +7 -7
  140. package/src/runtime/components/{LibFileInput/LibFileInput.vue → WFileInput/WFileInput.vue} +95 -98
  141. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  142. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  143. package/src/runtime/components/WMultiValues/WMultiValues.vue +161 -0
  144. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +9 -9
  145. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +43 -66
  146. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  147. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +51 -29
  148. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  149. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  150. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  151. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  152. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  153. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  154. package/src/runtime/components/WPopover/WPopover.vue +161 -0
  155. package/src/runtime/components/WPopup/WPopup.stories.ts +60 -0
  156. package/src/runtime/components/WPopup/WPopup.vue +93 -0
  157. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  158. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  159. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  160. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  161. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  162. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  163. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +27 -44
  164. package/src/runtime/components/{LibTable/LibTable.stories.ts → WTable/WTable.stories.ts} +60 -52
  165. package/src/runtime/components/{LibTable/LibTable.vue → WTable/WTable.vue} +85 -87
  166. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  167. package/src/runtime/components/WTooltip/WTooltip.vue +126 -0
  168. package/src/runtime/components/index.ts +20 -20
  169. package/src/runtime/composables/index.ts +4 -4
  170. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  171. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  172. package/src/runtime/composables/useFallbackId.ts +6 -0
  173. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  174. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  175. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  176. package/src/runtime/helpers/NotificationHandler.ts +9 -11
  177. package/src/runtime/injectionKeys.ts +1 -7
  178. package/src/runtime/types/index.ts +105 -32
  179. package/types/components.d.ts +13 -15
  180. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -6
  181. package/dist/runtime/components/Aria/Aria.vue +0 -16
  182. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -6
  183. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -37
  184. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -37
  185. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -41
  186. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  187. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -41
  188. package/dist/runtime/components/LibColorInput/LibColorInput.d.vue.ts +0 -64
  189. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  190. package/dist/runtime/components/LibColorInput/LibColorInput.vue.d.ts +0 -64
  191. package/dist/runtime/components/LibDatePicker/LibDatePicker.d.vue.ts +0 -191
  192. package/dist/runtime/components/LibDatePicker/LibDatePicker.vue.d.ts +0 -191
  193. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -46
  194. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -46
  195. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -256
  196. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  197. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -256
  198. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -27
  199. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  200. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -27
  201. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  202. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -45
  203. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -45
  204. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -15
  205. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -15
  206. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -105
  207. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  208. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -105
  209. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -15
  210. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -15
  211. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -52
  212. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  213. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -52
  214. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  215. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -99
  216. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  217. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -99
  218. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -125
  219. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -125
  220. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -18
  221. package/dist/runtime/components/Template/NAME.vue +0 -27
  222. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -18
  223. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  224. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  225. package/dist/runtime/components/shared/props.d.ts +0 -171
  226. package/dist/runtime/components/shared/props.js +0 -2
  227. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  228. package/dist/runtime/composables/useAriaLabel.js +0 -15
  229. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  230. package/dist/runtime/composables/useDarkMode.js +0 -89
  231. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  232. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  233. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  234. package/dist/runtime/composables/useSuggestions.js +0 -263
  235. package/src/runtime/components/Aria/Aria.vue +0 -26
  236. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  237. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -131
  238. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  239. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  240. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -419
  241. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  242. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  243. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  244. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -131
  245. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  246. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  247. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  248. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  249. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  250. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  251. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  252. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  253. package/src/runtime/components/Template/NAME.vue +0 -49
  254. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  255. package/src/runtime/components/shared/props.ts +0 -199
  256. package/src/runtime/composables/useAriaLabel.ts +0 -23
  257. package/src/runtime/composables/useDarkMode.ts +0 -199
  258. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  259. package/src/runtime/composables/useSuggestions.ts +0 -339
  260. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  261. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  262. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  263. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  264. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  265. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  266. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  267. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  268. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.d.vue.ts → WDatePicker/WRangeDatePicker.d.vue.ts} +0 -0
  269. /package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue.d.ts → WDatePicker/WRangeDatePicker.vue.d.ts} +0 -0
  270. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +0 -0
  271. /package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +0 -0
  272. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  273. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  274. /package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +0 -0
  275. /package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +0 -0
  276. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  277. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.d.vue.ts → WNotifications/WNotificationTestMessageComponent.d.vue.ts} +0 -0
  278. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  279. /package/dist/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue.d.ts → WNotifications/WNotificationTestMessageComponent.vue.d.ts} +0 -0
  280. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.d.ts +0 -0
  281. /package/dist/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.js +0 -0
  282. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  283. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  284. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  285. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  286. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
  287. /package/src/runtime/components/{LibNotifications/LibNotificationTestMessageComponent.vue → WNotifications/WNotificationTestMessageComponent.vue} +0 -0
  288. /package/src/runtime/components/{LibNotifications → WNotifications}/calculateNotificationProgress.ts +0 -0
@@ -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
+ };