@witchcraft/ui 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/README.md +56 -61
  2. package/dist/module.d.mts +1 -1
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +13 -9
  5. package/dist/runtime/assets/animations.css +1 -1
  6. package/dist/runtime/assets/locales/en.json +2 -0
  7. package/dist/runtime/assets/utils.css +1 -1
  8. package/dist/runtime/build/WitchcraftUiResolver.js +1 -2
  9. package/dist/runtime/components/TestControls/TestControls.d.vue.ts +2 -1
  10. package/dist/runtime/components/TestControls/TestControls.vue +3 -3
  11. package/dist/runtime/components/TestControls/TestControls.vue.d.ts +2 -1
  12. package/dist/runtime/components/WButton/WButton.d.vue.ts +34 -0
  13. package/dist/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +26 -38
  14. package/dist/runtime/components/WButton/WButton.vue.d.ts +34 -0
  15. package/dist/runtime/components/WCheckbox/WCheckbox.d.vue.ts +33 -0
  16. package/dist/runtime/components/WCheckbox/WCheckbox.vue +110 -0
  17. package/dist/runtime/components/WCheckbox/WCheckbox.vue.d.ts +33 -0
  18. package/dist/runtime/components/{LibColorInput/LibColorInput.d.vue.ts → WColorInput/WColorInput.d.vue.ts} +18 -36
  19. package/dist/runtime/components/WColorInput/WColorInput.vue +85 -0
  20. package/dist/runtime/components/{LibColorInput/LibColorInput.vue.d.ts → WColorInput/WColorInput.vue.d.ts} +18 -36
  21. package/dist/runtime/components/WColorInput/WColorSwatchButton.d.vue.ts +28 -0
  22. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue +86 -0
  23. package/dist/runtime/components/WColorInput/WColorSwatchButton.vue.d.ts +28 -0
  24. package/dist/runtime/components/{LibColorPicker/LibColorPicker.d.vue.ts → WColorPicker/WColorPicker.d.vue.ts} +12 -9
  25. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +41 -29
  26. package/dist/runtime/components/{LibColorPicker/LibColorPicker.vue.d.ts → WColorPicker/WColorPicker.vue.d.ts} +12 -9
  27. package/dist/runtime/components/WCombobox/WCombobox.d.vue.ts +111 -0
  28. package/dist/runtime/components/WCombobox/WCombobox.vue +405 -0
  29. package/dist/runtime/components/WCombobox/WCombobox.vue.d.ts +111 -0
  30. package/dist/runtime/components/WCombobox/storyPlays.d.ts +18 -0
  31. package/dist/runtime/components/WCombobox/storyPlays.js +68 -0
  32. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.d.vue.ts → WDarkModeSwitcher/WDarkModeSwitcher.d.vue.ts} +9 -13
  33. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +11 -14
  34. package/dist/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue.d.ts → WDarkModeSwitcher/WDarkModeSwitcher.vue.d.ts} +9 -13
  35. package/dist/runtime/components/{LibDatePicker/LibDatePicker.d.vue.ts → WDatePicker/WDatePicker.d.vue.ts} +7 -7
  36. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  37. package/dist/runtime/components/{LibDatePicker/LibDatePicker.vue.d.ts → WDatePicker/WDatePicker.vue.d.ts} +7 -7
  38. package/dist/runtime/components/WDatePicker/WRangeDatePicker.d.vue.ts +182 -0
  39. package/dist/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +29 -25
  40. package/dist/runtime/components/WDatePicker/WRangeDatePicker.vue.d.ts +182 -0
  41. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.d.vue.ts → WDatePicker/WSingleDatePicker.d.vue.ts} +7 -5
  42. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  43. package/dist/runtime/components/{LibDatePicker/LibSingleDatePicker.vue.d.ts → WDatePicker/WSingleDatePicker.vue.d.ts} +7 -5
  44. package/dist/runtime/components/WDatePicker/WTimeZonePicker.d.vue.ts +13 -0
  45. package/dist/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  46. package/dist/runtime/components/WDatePicker/WTimeZonePicker.vue.d.ts +13 -0
  47. package/dist/runtime/components/{LibDebug/LibDebug.d.vue.ts → WDebug/WDebug.d.vue.ts} +3 -2
  48. package/dist/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +10 -12
  49. package/dist/runtime/components/{LibDebug/LibDebug.vue.d.ts → WDebug/WDebug.vue.d.ts} +3 -2
  50. package/dist/runtime/components/{LibDevOnly/LibDevOnly.d.vue.ts → WDevOnly/WDevOnly.d.vue.ts} +3 -5
  51. package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue.d.ts → WDevOnly/WDevOnly.vue.d.ts} +3 -5
  52. package/dist/runtime/components/WFileInput/WFileInput.d.vue.ts +58 -0
  53. package/dist/runtime/components/WFileInput/WFileInput.vue +348 -0
  54. package/dist/runtime/components/WFileInput/WFileInput.vue.d.ts +58 -0
  55. package/dist/runtime/components/WIcon/WIcon.d.vue.ts +18 -0
  56. package/dist/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +1 -1
  57. package/dist/runtime/components/WIcon/WIcon.vue.d.ts +18 -0
  58. package/dist/runtime/components/WMultiValues/WMultiValues.d.vue.ts +28 -0
  59. package/dist/runtime/components/WMultiValues/WMultiValues.vue +150 -0
  60. package/dist/runtime/components/WMultiValues/WMultiValues.vue.d.ts +28 -0
  61. package/dist/runtime/components/WNotifications/WNotification.d.vue.ts +37 -0
  62. package/dist/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +61 -35
  63. package/dist/runtime/components/WNotifications/WNotification.vue.d.ts +37 -0
  64. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.d.vue.ts +7 -0
  65. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.vue +29 -0
  66. package/dist/runtime/components/WNotifications/WNotificationTestMessageComponent.vue.d.ts +7 -0
  67. package/dist/runtime/components/WNotifications/WNotifications.d.vue.ts +11 -0
  68. package/dist/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +72 -36
  69. package/dist/runtime/components/WNotifications/WNotifications.vue.d.ts +11 -0
  70. package/dist/runtime/components/WNotifications/calculateNotificationProgress.d.ts +2 -0
  71. package/dist/runtime/components/WNotifications/calculateNotificationProgress.js +4 -0
  72. package/dist/runtime/components/WNumberInput/WNumberInput.d.vue.ts +27 -0
  73. package/dist/runtime/components/WNumberInput/WNumberInput.vue +96 -0
  74. package/dist/runtime/components/WNumberInput/WNumberInput.vue.d.ts +27 -0
  75. package/dist/runtime/components/WPagination/WPagination.d.vue.ts +59 -0
  76. package/dist/runtime/components/WPagination/WPagination.vue +182 -0
  77. package/dist/runtime/components/WPagination/WPagination.vue.d.ts +59 -0
  78. package/dist/runtime/components/WPalette/WPalette.d.vue.ts +11 -0
  79. package/dist/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  80. package/dist/runtime/components/WPalette/WPalette.vue.d.ts +11 -0
  81. package/dist/runtime/components/WPopover/WPopover.d.vue.ts +45 -0
  82. package/dist/runtime/components/WPopover/WPopover.vue +144 -0
  83. package/dist/runtime/components/WPopover/WPopover.vue.d.ts +45 -0
  84. package/dist/runtime/components/WPopup/WPopup.d.vue.ts +51 -0
  85. package/dist/runtime/components/WPopup/WPopup.vue +115 -0
  86. package/dist/runtime/components/WPopup/WPopup.vue.d.ts +51 -0
  87. package/dist/runtime/components/{LibProgressBar/LibProgressBar.d.vue.ts → WProgressBar/WProgressBar.d.vue.ts} +13 -16
  88. package/dist/runtime/components/WProgressBar/WProgressBar.vue +150 -0
  89. package/dist/runtime/components/{LibProgressBar/LibProgressBar.vue.d.ts → WProgressBar/WProgressBar.vue.d.ts} +13 -16
  90. package/dist/runtime/components/{LibRecorder/LibRecorder.d.vue.ts → WRecorder/WRecorder.d.vue.ts} +13 -27
  91. package/dist/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +37 -36
  92. package/dist/runtime/components/{LibRecorder/LibRecorder.vue.d.ts → WRecorder/WRecorder.vue.d.ts} +13 -27
  93. package/dist/runtime/components/{LibRoot/LibRoot.d.vue.ts → WRoot/WRoot.d.vue.ts} +11 -9
  94. package/dist/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +17 -15
  95. package/dist/runtime/components/{LibRoot/LibRoot.vue.d.ts → WRoot/WRoot.vue.d.ts} +11 -9
  96. package/dist/runtime/components/WSimpleInput/WSimpleInput.d.vue.ts +34 -0
  97. package/dist/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +14 -24
  98. package/dist/runtime/components/WSimpleInput/WSimpleInput.vue.d.ts +34 -0
  99. package/dist/runtime/components/WTable/WTable.d.vue.ts +102 -0
  100. package/dist/runtime/components/WTable/WTable.vue +370 -0
  101. package/dist/runtime/components/WTable/WTable.vue.d.ts +102 -0
  102. package/dist/runtime/components/WTooltip/WTooltip.d.vue.ts +40 -0
  103. package/dist/runtime/components/WTooltip/WTooltip.vue +112 -0
  104. package/dist/runtime/components/WTooltip/WTooltip.vue.d.ts +40 -0
  105. package/dist/runtime/components/index.d.ts +20 -20
  106. package/dist/runtime/components/index.js +20 -20
  107. package/dist/runtime/composables/index.d.ts +4 -4
  108. package/dist/runtime/composables/index.js +4 -4
  109. package/dist/runtime/composables/useDelayedLoadingIndicator.d.ts +9 -0
  110. package/dist/runtime/composables/useDelayedLoadingIndicator.js +18 -0
  111. package/dist/runtime/composables/useDisplayForReka.d.ts +25 -0
  112. package/dist/runtime/composables/useDisplayForReka.js +16 -0
  113. package/dist/runtime/composables/useFallbackId.d.ts +3 -0
  114. package/dist/runtime/composables/useFallbackId.js +5 -0
  115. package/dist/runtime/composables/useInjectedDarkMode.d.ts +1 -1
  116. package/dist/runtime/composables/usePopupConstrainToStyle.d.ts +8 -0
  117. package/dist/runtime/composables/usePopupConstrainToStyle.js +8 -0
  118. package/dist/runtime/composables/useSetupDarkMode.d.ts +2 -3
  119. package/dist/runtime/composables/useSetupDarkMode.js +90 -4
  120. package/dist/runtime/composables/useTimeConditionally.d.ts +16 -0
  121. package/dist/runtime/composables/useTimeConditionally.js +27 -0
  122. package/dist/runtime/directives/vResizableCols.js +101 -34
  123. package/dist/runtime/helpers/NotificationHandler.d.ts +28 -3
  124. package/dist/runtime/helpers/NotificationHandler.js +7 -10
  125. package/dist/runtime/injectionKeys.d.ts +1 -5
  126. package/dist/runtime/injectionKeys.js +0 -2
  127. package/dist/runtime/types/index.d.ts +97 -31
  128. package/dist/runtime/types/index.js +1 -0
  129. package/dist/runtime/utils/notifyIfError.d.ts +3 -1
  130. package/dist/runtime/utils/notifyIfError.js +4 -2
  131. package/dist/runtime/utils/twMerge.d.ts +1 -0
  132. package/dist/runtime/utils/twMerge.js +2 -1
  133. package/package.json +59 -56
  134. package/src/module.ts +16 -8
  135. package/src/runtime/assets/animations.css +53 -6
  136. package/src/runtime/assets/locales/en.json +2 -0
  137. package/src/runtime/assets/tailwind.css +1 -1
  138. package/src/runtime/assets/utils.css +52 -4
  139. package/src/runtime/build/WitchcraftUiResolver.ts +1 -2
  140. package/src/runtime/components/TestControls/TestControls.vue +3 -3
  141. package/src/runtime/components/WButton/WButton.stories.ts +112 -0
  142. package/src/runtime/components/{LibButton/LibButton.vue → WButton/WButton.vue} +34 -50
  143. package/src/runtime/components/{LibCheckbox/LibCheckbox.stories.ts → WCheckbox/WCheckbox.stories.ts} +5 -5
  144. package/src/runtime/components/WCheckbox/WCheckbox.vue +125 -0
  145. package/src/runtime/components/{LibColorInput/LibColorInput.stories.ts → WColorInput/WColorInput.stories.ts} +8 -8
  146. package/src/runtime/components/WColorInput/WColorInput.vue +112 -0
  147. package/src/runtime/components/WColorInput/WColorSwatchButton.vue +102 -0
  148. package/src/runtime/components/{LibColorPicker/LibColorPicker.stories.ts → WColorPicker/WColorPicker.stories.ts} +12 -12
  149. package/src/runtime/components/{LibColorPicker/LibColorPicker.vue → WColorPicker/WColorPicker.vue} +44 -31
  150. package/src/runtime/components/WCombobox/WCombobox.stories.ts +209 -0
  151. package/src/runtime/components/WCombobox/WCombobox.vue +450 -0
  152. package/src/runtime/components/WCombobox/storyPlays.ts +92 -0
  153. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.stories.ts → WDarkModeSwitcher/WDarkModeSwitcher.stories.ts} +6 -6
  154. package/src/runtime/components/{LibDarkModeSwitcher/LibDarkModeSwitcher.vue → WDarkModeSwitcher/WDarkModeSwitcher.vue} +19 -30
  155. package/src/runtime/components/{LibDatePicker/LibDatePicker.stories.ts → WDatePicker/WDatePicker.stories.ts} +42 -34
  156. package/src/runtime/components/{LibDatePicker/LibDatePicker.vue → WDatePicker/WDatePicker.vue} +3 -7
  157. package/src/runtime/components/{LibDatePicker/LibRangeDatePicker.vue → WDatePicker/WRangeDatePicker.vue} +29 -25
  158. package/src/runtime/components/{LibDatePicker/LibSingleDatePicker.vue → WDatePicker/WSingleDatePicker.vue} +21 -21
  159. package/src/runtime/components/{LibDatePicker/LibTimeZonePicker.vue → WDatePicker/WTimeZonePicker.vue} +5 -12
  160. package/src/runtime/components/{LibDebug/LibDebug.stories.ts → WDebug/WDebug.stories.ts} +5 -5
  161. package/src/runtime/components/{LibDebug/LibDebug.vue → WDebug/WDebug.vue} +9 -10
  162. package/src/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -4
  163. package/src/runtime/components/{LibFileInput/LibFileInput.stories.ts → WFileInput/WFileInput.stories.ts} +20 -10
  164. package/src/runtime/components/WFileInput/WFileInput.vue +392 -0
  165. package/src/runtime/components/{Icon/Icon.vue → WIcon/WIcon.vue} +5 -8
  166. package/src/runtime/components/{LibMultiValues/LibMultiValues.stories.ts → WMultiValues/WMultiValues.stories.ts} +9 -9
  167. package/src/runtime/components/WMultiValues/WMultiValues.vue +163 -0
  168. package/src/runtime/components/{LibNotifications/LibNotification.stories.ts → WNotifications/WNotification.stories.ts} +42 -6
  169. package/src/runtime/components/{LibNotifications/LibNotification.vue → WNotifications/WNotification.vue} +72 -45
  170. package/src/runtime/components/WNotifications/WNotificationTestMessageComponent.vue +27 -0
  171. package/src/runtime/components/WNotifications/WNotifications.stories.ts +139 -0
  172. package/src/runtime/components/{LibNotifications/LibNotifications.vue → WNotifications/WNotifications.vue} +87 -47
  173. package/src/runtime/components/WNotifications/calculateNotificationProgress.ts +8 -0
  174. package/src/runtime/components/WNumberInput/WNumberInput.vue +109 -0
  175. package/src/runtime/components/WPagination/WPagination.stories.ts +51 -0
  176. package/src/runtime/components/WPagination/WPagination.vue +207 -0
  177. package/src/runtime/components/{LibPalette/LibPalette.stories.ts → WPalette/WPalette.stories.ts} +6 -6
  178. package/src/runtime/components/{LibPalette/LibPalette.vue → WPalette/WPalette.vue} +3 -8
  179. package/src/runtime/components/WPopover/WPopover.stories.ts +218 -0
  180. package/src/runtime/components/WPopover/WPopover.vue +168 -0
  181. package/src/runtime/components/WPopup/WPopup.stories.ts +104 -0
  182. package/src/runtime/components/WPopup/WPopup.vue +134 -0
  183. package/src/runtime/components/WProgressBar/WProgressBar.stories.ts +119 -0
  184. package/src/runtime/components/WProgressBar/WProgressBar.vue +185 -0
  185. package/src/runtime/components/{LibRecorder/LibRecorder.stories.ts → WRecorder/WRecorder.stories.ts} +9 -6
  186. package/src/runtime/components/{LibRecorder/LibRecorder.vue → WRecorder/WRecorder.vue} +69 -68
  187. package/src/runtime/components/{LibRoot/LibRoot.vue → WRoot/WRoot.vue} +18 -15
  188. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.stories.ts → WSimpleInput/WSimpleInput.stories.ts} +11 -12
  189. package/src/runtime/components/{LibSimpleInput/LibSimpleInput.vue → WSimpleInput/WSimpleInput.vue} +28 -42
  190. package/src/runtime/components/WTable/WTable.stories.ts +334 -0
  191. package/src/runtime/components/WTable/WTable.vue +471 -0
  192. package/src/runtime/components/WTooltip/WTooltip.stories.ts +82 -0
  193. package/src/runtime/components/WTooltip/WTooltip.vue +128 -0
  194. package/src/runtime/components/index.ts +20 -20
  195. package/src/runtime/composables/index.ts +4 -4
  196. package/src/runtime/composables/useDelayedLoadingIndicator.ts +30 -0
  197. package/src/runtime/composables/useDisplayForReka.ts +37 -0
  198. package/src/runtime/composables/useFallbackId.ts +6 -0
  199. package/src/runtime/composables/useInjectedDarkMode.ts +1 -2
  200. package/src/runtime/composables/usePopupConstrainToStyle.ts +29 -0
  201. package/src/runtime/composables/useSetupDarkMode.ts +122 -4
  202. package/src/runtime/composables/useTimeConditionally.ts +51 -0
  203. package/src/runtime/directives/vResizableCols.ts +121 -38
  204. package/src/runtime/helpers/NotificationHandler.ts +30 -11
  205. package/src/runtime/injectionKeys.ts +1 -7
  206. package/src/runtime/types/index.ts +118 -36
  207. package/src/runtime/utils/notifyIfError.ts +6 -2
  208. package/src/runtime/utils/twMerge.ts +2 -1
  209. package/types/components.d.ts +14 -15
  210. package/dist/runtime/components/Aria/Aria.d.vue.ts +0 -5
  211. package/dist/runtime/components/Aria/Aria.vue +0 -16
  212. package/dist/runtime/components/Aria/Aria.vue.d.ts +0 -5
  213. package/dist/runtime/components/Icon/Icon.d.vue.ts +0 -21
  214. package/dist/runtime/components/Icon/Icon.vue.d.ts +0 -21
  215. package/dist/runtime/components/LibButton/LibButton.d.vue.ts +0 -36
  216. package/dist/runtime/components/LibButton/LibButton.vue.d.ts +0 -36
  217. package/dist/runtime/components/LibCheckbox/LibCheckbox.d.vue.ts +0 -42
  218. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue +0 -103
  219. package/dist/runtime/components/LibCheckbox/LibCheckbox.vue.d.ts +0 -42
  220. package/dist/runtime/components/LibColorInput/LibColorInput.vue +0 -162
  221. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.d.vue.ts +0 -34
  222. package/dist/runtime/components/LibDatePicker/LibRangeDatePicker.vue.d.ts +0 -34
  223. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.d.vue.ts +0 -22
  224. package/dist/runtime/components/LibDatePicker/LibTimeZonePicker.vue.d.ts +0 -22
  225. package/dist/runtime/components/LibFileInput/LibFileInput.d.vue.ts +0 -43
  226. package/dist/runtime/components/LibFileInput/LibFileInput.vue +0 -274
  227. package/dist/runtime/components/LibFileInput/LibFileInput.vue.d.ts +0 -43
  228. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.d.vue.ts +0 -165
  229. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -387
  230. package/dist/runtime/components/LibInputDeprecated/LibInputDeprecated.vue.d.ts +0 -165
  231. package/dist/runtime/components/LibLabel/LibLabel.d.vue.ts +0 -26
  232. package/dist/runtime/components/LibLabel/LibLabel.vue +0 -45
  233. package/dist/runtime/components/LibLabel/LibLabel.vue.d.ts +0 -26
  234. package/dist/runtime/components/LibMultiValues/LibMultiValues.d.vue.ts +0 -29
  235. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue +0 -109
  236. package/dist/runtime/components/LibMultiValues/LibMultiValues.vue.d.ts +0 -29
  237. package/dist/runtime/components/LibNotifications/LibNotification.d.vue.ts +0 -30
  238. package/dist/runtime/components/LibNotifications/LibNotification.vue.d.ts +0 -30
  239. package/dist/runtime/components/LibNotifications/LibNotifications.d.vue.ts +0 -13
  240. package/dist/runtime/components/LibNotifications/LibNotifications.vue.d.ts +0 -13
  241. package/dist/runtime/components/LibPagination/LibPagination.d.vue.ts +0 -104
  242. package/dist/runtime/components/LibPagination/LibPagination.vue +0 -229
  243. package/dist/runtime/components/LibPagination/LibPagination.vue.d.ts +0 -104
  244. package/dist/runtime/components/LibPalette/LibPalette.d.vue.ts +0 -14
  245. package/dist/runtime/components/LibPalette/LibPalette.vue.d.ts +0 -14
  246. package/dist/runtime/components/LibPopup/LibPopup.d.vue.ts +0 -46
  247. package/dist/runtime/components/LibPopup/LibPopup.vue +0 -365
  248. package/dist/runtime/components/LibPopup/LibPopup.vue.d.ts +0 -46
  249. package/dist/runtime/components/LibProgressBar/LibProgressBar.vue +0 -169
  250. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.d.vue.ts +0 -35
  251. package/dist/runtime/components/LibSimpleInput/LibSimpleInput.vue.d.ts +0 -35
  252. package/dist/runtime/components/LibSuggestions/LibSuggestions.d.vue.ts +0 -94
  253. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue +0 -178
  254. package/dist/runtime/components/LibSuggestions/LibSuggestions.vue.d.ts +0 -94
  255. package/dist/runtime/components/LibTable/LibTable.d.vue.ts +0 -45
  256. package/dist/runtime/components/LibTable/LibTable.vue +0 -155
  257. package/dist/runtime/components/LibTable/LibTable.vue.d.ts +0 -45
  258. package/dist/runtime/components/Template/NAME.d.vue.ts +0 -17
  259. package/dist/runtime/components/Template/NAME.vue +0 -27
  260. package/dist/runtime/components/Template/NAME.vue.d.ts +0 -17
  261. package/dist/runtime/components/Template/TemplateStory.d.ts +0 -7
  262. package/dist/runtime/components/Template/TemplateStory.js +0 -22
  263. package/dist/runtime/components/shared/props.d.ts +0 -171
  264. package/dist/runtime/components/shared/props.js +0 -2
  265. package/dist/runtime/composables/useAriaLabel.d.ts +0 -6
  266. package/dist/runtime/composables/useAriaLabel.js +0 -15
  267. package/dist/runtime/composables/useDarkMode.d.ts +0 -77
  268. package/dist/runtime/composables/useDarkMode.js +0 -89
  269. package/dist/runtime/composables/useDivideAttrs.d.ts +0 -27
  270. package/dist/runtime/composables/useDivideAttrs.js +0 -27
  271. package/dist/runtime/composables/useSuggestions.d.ts +0 -40
  272. package/dist/runtime/composables/useSuggestions.js +0 -263
  273. package/src/runtime/components/Aria/Aria.vue +0 -26
  274. package/src/runtime/components/LibButton/LibButton.stories.ts +0 -106
  275. package/src/runtime/components/LibCheckbox/LibCheckbox.vue +0 -129
  276. package/src/runtime/components/LibColorInput/LibColorInput.vue +0 -203
  277. package/src/runtime/components/LibFileInput/LibFileInput.vue +0 -320
  278. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.stories.ts +0 -405
  279. package/src/runtime/components/LibInputDeprecated/LibInputDeprecated.vue +0 -414
  280. package/src/runtime/components/LibLabel/LibLabel.stories.ts +0 -33
  281. package/src/runtime/components/LibLabel/LibLabel.vue +0 -65
  282. package/src/runtime/components/LibMultiValues/LibMultiValues.vue +0 -123
  283. package/src/runtime/components/LibNotifications/LibNotifications.stories.ts +0 -120
  284. package/src/runtime/components/LibPagination/LibPagination.stories.ts +0 -49
  285. package/src/runtime/components/LibPagination/LibPagination.vue +0 -274
  286. package/src/runtime/components/LibPopup/LibPopup.stories.ts +0 -153
  287. package/src/runtime/components/LibPopup/LibPopup.vue +0 -396
  288. package/src/runtime/components/LibProgressBar/LibProgressBar.stories.ts +0 -90
  289. package/src/runtime/components/LibProgressBar/LibProgressBar.vue +0 -197
  290. package/src/runtime/components/LibSuggestions/LibSuggestions.stories.ts +0 -134
  291. package/src/runtime/components/LibSuggestions/LibSuggestions.vue +0 -212
  292. package/src/runtime/components/LibTable/LibTable.stories.ts +0 -167
  293. package/src/runtime/components/LibTable/LibTable.vue +0 -190
  294. package/src/runtime/components/Template/NAME.vue +0 -49
  295. package/src/runtime/components/Template/TemplateStory.ts +0 -37
  296. package/src/runtime/components/shared/props.ts +0 -199
  297. package/src/runtime/composables/useAriaLabel.ts +0 -23
  298. package/src/runtime/composables/useDarkMode.ts +0 -199
  299. package/src/runtime/composables/useDivideAttrs.ts +0 -53
  300. package/src/runtime/composables/useSuggestions.ts +0 -339
  301. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.d.ts +0 -0
  302. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.js +0 -0
  303. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.d.ts +0 -0
  304. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.js +0 -0
  305. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.d.ts +0 -0
  306. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.js +0 -0
  307. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.d.ts +0 -0
  308. /package/dist/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.js +0 -0
  309. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.d.ts +0 -0
  310. /package/dist/runtime/components/{LibDatePicker → WDatePicker}/helpers.js +0 -0
  311. /package/dist/runtime/components/{LibDevOnly/LibDevOnly.vue → WDevOnly/WDevOnly.vue} +0 -0
  312. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToHsva.ts +0 -0
  313. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/safeConvertToRgba.ts +0 -0
  314. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/toLowPrecisionRgbaString.ts +0 -0
  315. /package/src/runtime/components/{LibColorPicker → WColorPicker}/utils/truncate.ts +0 -0
  316. /package/src/runtime/components/{LibDatePicker → WDatePicker}/helpers.ts +0 -0
@@ -0,0 +1,370 @@
1
+ <template>
2
+ <!--
3
+ - moving the border to the wrapper is to hide the little bits of border sticking out
4
+ added back the right straight border otherwise the scrollbar looks ass
5
+ this is ever so slightly visible if there is no scrollbar
6
+
7
+ - relative is for the sticky header in dynamic mode
8
+
9
+ - dynamic mode REQUIRES grid since otherwise the transforms don't work because of how tanstack calculates them
10
+ - tried pre-calculating the transforms to take into account the previous elements (e.g. virtual.start - (height of previous rows)) but this was way to slow and buggy
11
+ -->
12
+ <div
13
+ :class="twMerge(
14
+ `
15
+ table--container
16
+ overflow-auto
17
+ `,
18
+ hasScrollbar.vertical && `has-scrollbar-vertical`,
19
+ hasScrollbar.horizontal && `has-scrollbar-horizontal`,
20
+ stickyHeader && `
21
+ [&_thead]:sticky
22
+ [&_thead]:top-0
23
+ [&_thead]:z-1
24
+ [&_.grip]:z-2
25
+ `,
26
+ isPostSetup && `resizable-cols-setup`,
27
+ border && `
28
+ border
29
+ border-neutral-500
30
+ `,
31
+ border && cellBorder && `
32
+ [&.has-scrollbar-horizontal_.last-row]:border-b
33
+ [&.has-scrollbar-horizontal_.last-row]:border-neutral-500
34
+ [&.has-scrollbar-vertical_.last-col]:border-r
35
+ [&.has-scrollbar-vertical_.last-col]:border-neutral-500
36
+ `,
37
+ (!resizableOptions.fitWidth || stickyHeader) && `
38
+ [&_td.tr]:rounded-tr-none!
39
+ [&_td.br]:rounded-br-none!
40
+ `,
41
+ // this combo prevents the x-scrollbar from showing up when it shouldn\'t
42
+ // and max-w-fit allows the border to shrink with the table columns
43
+ resizableOptions.fitWidth === false && `
44
+ [&_.grip]:last:translate-x-[-5px]
45
+ mr-1
46
+ max-w-fit
47
+ `,
48
+ rounded && `
49
+ rounded-md
50
+ `,
51
+ mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
52
+ relative
53
+ `,
54
+ wrapperAttrs?.class
55
+ )"
56
+ v-bind="{ ...wrapperAttrs, class: void 0 }"
57
+ ref="parentRef"
58
+ >
59
+ <div
60
+ class="table--inner-container"
61
+ :style="{
62
+ ...mergedVirtualizerOpts.enabled ? { height: `${totalSize}px` } : {}
63
+ }"
64
+ >
65
+ <!-- https://github.com/TanStack/virtual/issues/640#issuecomment-2795731690 -->
66
+ <table
67
+ :style="[{
68
+ ...stickyHeader && mergedVirtualizerOpts.enabled ? { '--table-sticky-fix': `${totalSize - tableHeight}px` } : {}
69
+ }, $attrs?.style]"
70
+ :class="twMerge(
71
+ `
72
+ table
73
+ table-fixed
74
+ border-separate
75
+ border-spacing-0
76
+ scrollbar-hidden
77
+ [&_.grip]:w-[5px]
78
+ relative
79
+ w-full
80
+ box-content
81
+ [&_thead]:font-bold
82
+ [&_td]:p-1
83
+ [&_th]:p-1
84
+ [&.resizable-cols-error]:cursor-not-allowed
85
+ [&.resizable-cols-error]:user-select-none
86
+ [&_thead_th]:bg-neutral-200
87
+ dark:[&_thead_th]:bg-neutral-800
88
+ `,
89
+ isPostSetup && mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
90
+ grid
91
+ `,
92
+ stickyHeader && mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'fixed' && `
93
+ after:inline-block
94
+ after:h-(--table-sticky-fix)
95
+ `,
96
+ cellBorder && `
97
+ [&_td]:border-neutral-500
98
+ [&_td:not(.last-row)]:border-b
99
+ [&_td:not(.first-col)]:border-l
100
+ [&_th]:border-neutral-500
101
+ [&_th:not(.last-row)]:border-b
102
+ [&_th:not(.first-col)]:border-l
103
+ `,
104
+ !cellBorder && `
105
+ [&_.grip]:hover:bg-neutral-300
106
+ dark:[&_.grip]:hover:bg-neutral-700
107
+ `,
108
+ $attrs.class
109
+ )"
110
+ v-bind="{ ...$attrs, class: void 0, style: void 0 }"
111
+ v-resizable-cols="resizableOptions"
112
+ >
113
+ <thead
114
+ v-if="header"
115
+ :class="twMerge(
116
+ `table--header`,
117
+ isPostSetup && mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
118
+ grid
119
+ top-0
120
+ `
121
+ )"
122
+ >
123
+ <tr
124
+ :class="twMerge(
125
+ `table--row`,
126
+ isPostSetup && mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `flex w-full`
127
+ )"
128
+ >
129
+ <template
130
+ v-for="col, i of cols"
131
+ :key="col"
132
+ >
133
+ <slot
134
+ :name="`header-${col.toString()}`"
135
+ :class="classes[`-1-${i}`]"
136
+ :style="{ width: widths[i] }"
137
+ :col-key="col"
138
+ :config="colConfig[col]"
139
+ >
140
+ <th
141
+ :class="classes[`-1-${i}`]"
142
+ :style="{ width: widths[i] }"
143
+ >
144
+ {{ colConfig[col]?.name ?? col }}
145
+ </th>
146
+ </slot>
147
+ </template>
148
+ </tr>
149
+ </thead>
150
+ <tbody
151
+ :class="twMerge(
152
+ `table--body`,
153
+ isPostSetup && mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
154
+ grid
155
+ relative
156
+ `
157
+ )"
158
+ :style="{
159
+ ...mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' ? { height: `${totalSize}px` } : {}
160
+ }"
161
+ >
162
+ <template
163
+ v-for="(virtual, index) in virtualList"
164
+ :key="virtual.key"
165
+ >
166
+ <tr
167
+ :class="twMerge(
168
+ `
169
+ table--row
170
+ `,
171
+ isPostSetup && mergedVirtualizerOpts.enabled && mergedVirtualizerOpts.method === 'dynamic' && `
172
+ flex
173
+ absolute
174
+ w-full
175
+ `,
176
+ isPostSetup && mergedVirtualizerOpts.enabled && ` will-change-transform `
177
+ )"
178
+ :style="{
179
+ ...mergedVirtualizerOpts.enabled ? {
180
+ transform: mergedVirtualizerOpts.method === 'fixed' ? `translateY(${virtual.start - index * virtual.size}px)` : `translateY(${virtual.start}px)`,
181
+ height: mergedVirtualizerOpts.method === 'fixed' ? `${virtual.size}px` : void 0
182
+ } : {}
183
+ }"
184
+ :data-index="virtual.index"
185
+ :ref="measureElement"
186
+ >
187
+ <template
188
+ v-for="col, j of cols"
189
+ :key="virtual.key + '-' + col.toString()"
190
+ >
191
+ <slot
192
+ :name="col"
193
+ :item="values[virtual.index]"
194
+ :value="values[virtual.index][col]"
195
+ :style="{ width: widths[j] }"
196
+ :class="classes[`${virtual.index}-${j}`]"
197
+ >
198
+ <td
199
+ :style="{ width: widths[j] }"
200
+ :class="classes[`${virtual.index}-${j}`]"
201
+ >
202
+ {{ values[virtual.index][col] }}
203
+ </td>
204
+ </slot>
205
+ </template>
206
+ </tr>
207
+ </template>
208
+ </tbody>
209
+ </table>
210
+ </div>
211
+ </div>
212
+ </template>
213
+
214
+ <script setup>
215
+ import { keys } from "@alanscodelog/utils/keys";
216
+ import { throttle } from "@alanscodelog/utils/throttle";
217
+ import { useVirtualizer } from "@tanstack/vue-virtual";
218
+ import { computed, onMounted, ref, useAttrs } from "vue";
219
+ import { useGlobalResizeObserver } from "../../composables/useGlobalResizeObserver.js";
220
+ import { vResizableCols } from "../../directives/vResizableCols.js";
221
+ import { twMerge } from "../../utils/twMerge.js";
222
+ defineOptions({
223
+ name: "WTable",
224
+ inheritAttrs: false
225
+ });
226
+ const $attrs = useAttrs();
227
+ const props = defineProps({
228
+ resizable: { type: Object, required: false, default: () => ({}) },
229
+ values: { type: Array, required: true },
230
+ cols: { type: Array, required: false, default: () => [] },
231
+ rounded: { type: Boolean, required: false, default: true },
232
+ border: { type: Boolean, required: false, default: true },
233
+ cellBorder: { type: Boolean, required: false, default: true },
234
+ header: { type: Boolean, required: false, default: true },
235
+ colConfig: { type: Object, required: false, default: () => ({}) },
236
+ virtualizerOptions: { type: Object, required: false, default: () => ({}) },
237
+ stickyHeader: { type: Boolean, required: false },
238
+ itemKey: { type: Function, required: false, skipCheck: true },
239
+ wrapperAttrs: { type: Object, required: false }
240
+ });
241
+ const widths = ref([]);
242
+ const isPostSetup = ref(false);
243
+ const resizableOptions = computed(() => ({
244
+ colCount: props.cols.length,
245
+ widths,
246
+ selector: props.header ? void 0 : `tr:first-child > td`,
247
+ ...props.resizable,
248
+ onSetup: (el) => {
249
+ isPostSetup.value = true;
250
+ if (props.resizable.onSetup) {
251
+ props.resizable.onSetup(el);
252
+ }
253
+ },
254
+ onTeardown: (el) => {
255
+ isPostSetup.value = false;
256
+ if (props.resizable.onTeardown) {
257
+ props.resizable.onTeardown(el);
258
+ }
259
+ }
260
+ }));
261
+ const parentRef = ref(null);
262
+ const mergedVirtualizerOpts = computed(() => {
263
+ return {
264
+ // we have to put the defaults here as they can't reference local variables
265
+ count: props.values.length,
266
+ getScrollElement: () => parentRef.value,
267
+ estimateSize: () => {
268
+ return 33;
269
+ },
270
+ overscan: props.virtualizerOptions?.overscan ?? (props.virtualizerOptions?.method === "dynamic" ? 10 : 50),
271
+ method: "fixed",
272
+ enabled: false,
273
+ ...props.virtualizerOptions
274
+ };
275
+ });
276
+ const rowVirtualizer = useVirtualizer(mergedVirtualizerOpts);
277
+ const virtualList = computed(() => {
278
+ return mergedVirtualizerOpts.value.enabled ? rowVirtualizer.value.getVirtualItems() : props.values.map((_, i) => ({
279
+ index: i,
280
+ size: void 0,
281
+ start: 0,
282
+ end: 0,
283
+ key: typeof props.itemKey === "function" ? props.itemKey(_) : props.itemKey ? props.values[props.itemKey] : i
284
+ }));
285
+ });
286
+ const totalSize = computed(() => rowVirtualizer.value.getTotalSize());
287
+ function measureElement(el) {
288
+ if (!el || !mergedVirtualizerOpts.value.enabled) return;
289
+ if (mergedVirtualizerOpts.value?.method === "dynamic") {
290
+ rowVirtualizer.value.measureElement(el);
291
+ }
292
+ }
293
+ let mounted = false;
294
+ function forceRecalculateFixedVirtualizer() {
295
+ if (mergedVirtualizerOpts.value?.method === "dynamic" || !mergedVirtualizerOpts.value.enabled) return;
296
+ if (!mounted) {
297
+ throw new Error("forceRecalculateFixedVirtualizer cannot be called before the table is mounted.");
298
+ }
299
+ if (!parentRef.value) return;
300
+ const height = parentRef.value.querySelector("td")?.getBoundingClientRect().height;
301
+ if (!height) return;
302
+ for (let i = 0; i < props.values.length; i++) {
303
+ rowVirtualizer.value.resizeItem(i, height);
304
+ }
305
+ }
306
+ const tableHeight = ref(0);
307
+ function updateTableHeight() {
308
+ if (!parentRef.value) return;
309
+ const el = parentRef.value.querySelector("tbody");
310
+ if (!el) return;
311
+ if (tableHeight.value === el.getBoundingClientRect().height) return;
312
+ tableHeight.value = el.getBoundingClientRect().height;
313
+ }
314
+ const throttledUpdateTableHeight = throttle(updateTableHeight, 100, { leading: true });
315
+ onMounted(() => {
316
+ throttledUpdateTableHeight();
317
+ mounted = true;
318
+ setTimeout(() => {
319
+ forceRecalculateFixedVirtualizer();
320
+ }, 0);
321
+ useGlobalResizeObserver(parentRef, onResize);
322
+ });
323
+ const hasScrollbar = ref({ vertical: false, horizontal: false });
324
+ function onResize() {
325
+ const el = parentRef.value;
326
+ if (!el) return;
327
+ hasScrollbar.value = {
328
+ vertical: el.scrollHeight > el.clientHeight,
329
+ horizontal: el.scrollWidth > el.clientWidth
330
+ };
331
+ if (hasScrollbar.value.vertical) {
332
+ throttledUpdateTableHeight();
333
+ }
334
+ }
335
+ const getExtraClasses = (row, col, isHeader) => {
336
+ const res = {
337
+ bl: !isHeader && row === props.values.length - 1 && col === 0,
338
+ br: !isHeader && row === props.values.length - 1 && col === props.cols.length - 1,
339
+ tr: (isHeader || !props.header) && row === 0 && col === props.cols.length - 1,
340
+ tl: (isHeader || !props.header) && row === 0 && col === 0,
341
+ "first-row": (isHeader || !props.header) && row === 0,
342
+ "last-row": row === props.values.length - 1,
343
+ "first-col": col === 0,
344
+ "last-col": col === props.cols.length - 1
345
+ };
346
+ return keys(res).filter((key) => res[key]);
347
+ };
348
+ const classes = computed(() => {
349
+ const res = {};
350
+ const headerTdClass = `table--header-cell cell truncate`;
351
+ const bodyTdClass = `table--cell cell truncate`;
352
+ for (let i = -1; i < props.values.length + 1; i++) {
353
+ for (let j = 0; j < props.cols.length; j++) {
354
+ const col = props.cols[j];
355
+ const colConfig = props.colConfig[col];
356
+ const key = `${i}-${j}`;
357
+ res[key] = twMerge(
358
+ getExtraClasses(i, j, i === -1).join(" "),
359
+ i === -1 ? headerTdClass : bodyTdClass,
360
+ i === -1 ? colConfig?.resizable === false && `no-resize` : void 0,
361
+ i !== -1 && mergedVirtualizerOpts.value.enabled && mergedVirtualizerOpts.value.method === "dynamic" && `flex`
362
+ );
363
+ }
364
+ }
365
+ return res;
366
+ });
367
+ defineExpose({
368
+ forceRecalculateFixedVirtualizer
369
+ });
370
+ </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
+ };
@@ -0,0 +1,112 @@
1
+ <template>
2
+ <TooltipProvider :disabled="disabled">
3
+ <TooltipRoot
4
+ :delay-duration="rootProps?.delayDuration ?? 200"
5
+ :disable-closing-trigger="rootProps?.disableClosingTrigger ?? false"
6
+ v-bind="rootProps"
7
+ >
8
+ <TooltipTrigger
9
+ v-if="triggerWhileDisabled"
10
+ as-child
11
+ >
12
+ <!-- https://reka-ui.com/docs/components/tooltip#displaying-a-tooltip-from-a-disabled-button -->
13
+ <span>
14
+ <slot>
15
+ <WIcon class="text-neutral-500"><i-lucide-info/></WIcon>
16
+ </slot>
17
+ </span>
18
+ </TooltipTrigger>
19
+ <TooltipTrigger v-else>
20
+ <slot>
21
+ <WIcon class="text-neutral-500">
22
+ <i-lucide-info/>
23
+ </WIcon>
24
+ </slot>
25
+ </TooltipTrigger>
26
+ <TooltipPortal
27
+ :to="to"
28
+ >
29
+ <TooltipContent
30
+ :style="contentStyle"
31
+ :class="twMerge(
32
+ `
33
+ z-100
34
+ tooltip--content-wrapper
35
+ origin-[var(--reka-tooltip-content-transform-origin)]
36
+ data-[side=top]:animate-slideDownAndFade
37
+ data-[side=right]:animate-slideLeftAndFade
38
+ data-[side=bottom]:animate-slideUpAndFade
39
+ data-[side=left]:animate-slideRightAndFade
40
+ bg-neutral-50
41
+ dark:bg-neutral-800
42
+ rounded-sm
43
+ shadow-sm
44
+ shadow-black/30
45
+ border
46
+ border-black/30
47
+ p-2
48
+ overflow-auto
49
+ `,
50
+ contentProps?.class
51
+ )"
52
+ v-bind="{
53
+ collisionPadding: 20,
54
+ side: 'top',
55
+ ...contentProps,
56
+ class: void 0,
57
+ style: void 0
58
+ }"
59
+ >
60
+ <div
61
+ class="
62
+ tooltip--content-container
63
+ text-sm
64
+ whitespace-pre-wrap
65
+ flex
66
+ flex-col
67
+ justify-center
68
+ "
69
+ >
70
+ <slot
71
+ name="content"
72
+ v-bind="{ content }"
73
+ >
74
+ {{ content }}
75
+ </slot>
76
+ </div>
77
+ <TooltipArrow
78
+ class="
79
+ tooltip--arrow
80
+ -mt-px
81
+ fill-neutral-50
82
+ dark:fill-neutral-800
83
+ drop-shadow-[0_2px_1px_rgba(0,0,0,0.3)]
84
+ relative
85
+ "
86
+ />
87
+ </TooltipContent>
88
+ </TooltipPortal>
89
+ </TooltipRoot>
90
+ </TooltipProvider>
91
+ </template>
92
+
93
+ <script setup>
94
+ import { TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger } from "reka-ui";
95
+ import ILucideInfo from "~icons/lucide/info";
96
+ import { usePopupConstrainToStyle } from "../../composables/usePopupConstrainToStyle.js";
97
+ import { twMerge } from "../../utils/twMerge.js";
98
+ import WIcon from "../WIcon/WIcon.vue";
99
+ const props = defineProps({
100
+ constrainWidthTo: { type: [Number, String, null], required: false, default: "available" },
101
+ constrainHeightTo: { type: [Number, String, null], required: false, default: "available" },
102
+ delayDuration: { type: Number, required: false, default: 200 },
103
+ disabled: { type: Boolean, required: false, default: false },
104
+ triggerWhileDisabled: { type: Boolean, required: false, default: false },
105
+ content: { type: String, required: false, default: "" },
106
+ collisionBoundary: { type: null, required: false },
107
+ to: { type: String, required: false, default: "#root" },
108
+ rootProps: { type: null, required: false },
109
+ contentProps: { type: null, required: false }
110
+ });
111
+ const contentStyle = usePopupConstrainToStyle("tooltip", props, [props?.contentProps?.style]);
112
+ </script>
@@ -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
+ };