@livestorm/ui-vue 1.1.2 → 2.0.0

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 (399) hide show
  1. package/README.md +164 -32
  2. package/components-vite.js +5 -5
  3. package/components.d.ts +3 -3
  4. package/dist/UiTimelineItem.vue_vue_type_style_index_0_lang-DOLFRKcb.mjs +5565 -0
  5. package/dist/a11y-DIdrv5Mn.mjs +66 -0
  6. package/dist/breakpoints.mjs +9 -0
  7. package/dist/bus.mjs +5 -0
  8. package/dist/components.mjs +213 -1550
  9. package/dist/index.mjs +84 -166
  10. package/dist/integrations.mjs +8 -0
  11. package/dist/layouts.mjs +236 -0
  12. package/dist/responsive.mjs +25 -0
  13. package/dist/slot.mjs +21 -0
  14. package/dist/toastDSV2-wMh-UMzW.mjs +74 -0
  15. package/dist/types/index.d.ts +84 -0
  16. package/dist/types/src/components/Toast/LayoutToasts.vue.d.ts +3 -0
  17. package/dist/types/src/components/Toast/ToastMessage.vue.d.ts +21 -0
  18. package/dist/types/src/components/Toast/toastDSV2.d.ts +102 -0
  19. package/dist/types/src/components/UiActionBar/UiActionBar.vue.d.ts +44 -0
  20. package/dist/types/src/components/UiActionBar/UiActionBarItem.vue.d.ts +47 -0
  21. package/dist/types/src/components/UiActionBar/UiActionBarSeparator.vue.d.ts +3 -0
  22. package/dist/types/src/components/UiActionBar/index.d.ts +4 -0
  23. package/dist/types/src/components/UiActionBar/types.d.ts +14 -0
  24. package/dist/types/src/components/UiAnimatedLogo/UiAnimatedLogo.vue.d.ts +10 -0
  25. package/dist/types/src/components/UiAnimatedLogo/animations-links.d.ts +3 -0
  26. package/dist/types/src/components/UiAvatar/UiAvatar.vue.d.ts +55 -0
  27. package/dist/types/src/components/UiAvatar/index.d.ts +1 -0
  28. package/dist/types/src/components/UiAvatarList/UiAvatarList.vue.d.ts +28 -0
  29. package/dist/types/src/components/UiAvatarList/index.d.ts +1 -0
  30. package/dist/types/src/components/UiBadge/UiBadge.vue.d.ts +47 -0
  31. package/dist/types/src/components/UiBadge/index.d.ts +1 -0
  32. package/dist/types/src/components/UiBanner/UiBanner.vue.d.ts +96 -0
  33. package/dist/types/src/components/UiBanner/index.d.ts +2 -0
  34. package/dist/types/src/components/UiBreadcrumb/UiBreadcrumb.vue.d.ts +15 -0
  35. package/dist/types/src/components/UiBreadcrumb/index.d.ts +2 -0
  36. package/dist/types/src/components/UiButton/UiButton.vue.d.ts +249 -0
  37. package/dist/types/src/components/UiButtonGroup/UiButtonGroup.vue.d.ts +42 -0
  38. package/dist/types/src/components/UiButtonGroup/UiButtonGroupItem.vue.d.ts +21 -0
  39. package/dist/types/src/components/UiButtonGroup/index.d.ts +3 -0
  40. package/dist/types/src/components/UiButtonGroup/types.d.ts +10 -0
  41. package/dist/types/src/components/UiCard/UiCard.vue.d.ts +31 -0
  42. package/dist/types/src/components/UiCarousel/UiCarousel.vue.d.ts +63 -0
  43. package/dist/types/src/components/UiCarousel/index.d.ts +2 -0
  44. package/dist/types/src/components/UiColorField/UiColorField.vue.d.ts +19 -0
  45. package/dist/types/src/components/UiColorField/index.d.ts +2 -0
  46. package/dist/types/src/components/UiColorField/types.d.ts +29 -0
  47. package/dist/types/src/components/UiColorPicker/UiColorPicker.vue.d.ts +35 -0
  48. package/dist/types/src/components/UiColorPicker/index.d.ts +2 -0
  49. package/dist/types/src/components/UiColorPicker/types.d.ts +97 -0
  50. package/dist/types/src/components/UiDialog/MarketplaceHeaderExample.vue.d.ts +28 -0
  51. package/dist/types/src/components/UiDialog/UiDialog.vue.d.ts +18 -0
  52. package/dist/types/src/components/UiDialog/UiDialogClose.vue.d.ts +10 -0
  53. package/dist/types/src/components/UiDialog/UiDialogContent.vue.d.ts +54 -0
  54. package/dist/types/src/components/UiDialog/UiDialogFooter.vue.d.ts +13 -0
  55. package/dist/types/src/components/UiDialog/UiDialogTrigger.vue.d.ts +14 -0
  56. package/dist/types/src/components/UiDialog/index.d.ts +7 -0
  57. package/dist/types/src/components/UiDropdown/UiDropdown.vue.d.ts +42 -0
  58. package/dist/types/src/components/UiDropdown/UiDropdownContent.vue.d.ts +32 -0
  59. package/dist/types/src/components/UiDropdown/UiDropdownItem.vue.d.ts +27 -0
  60. package/dist/types/src/components/UiDropdown/UiDropdownSeparator.vue.d.ts +3 -0
  61. package/dist/types/src/components/UiDropdown/UiDropdownTrigger.vue.d.ts +45 -0
  62. package/dist/types/src/components/UiDropdown/context.d.ts +7 -0
  63. package/dist/types/src/components/UiDropdown/index.d.ts +6 -0
  64. package/dist/types/src/components/UiEmptyState/UiEmptyState.vue.d.ts +29 -0
  65. package/dist/types/src/components/UiFieldWrapper/UiFieldWrapper.vue.d.ts +36 -0
  66. package/dist/types/src/components/UiFieldWrapper/index.d.ts +1 -0
  67. package/dist/types/src/components/UiForm/UiFormField.types.d.ts +22 -0
  68. package/dist/types/src/components/UiForm/UiFormField.vue.d.ts +34 -0
  69. package/dist/types/src/components/UiForm/index.d.ts +3 -0
  70. package/dist/types/src/components/UiHorizontalSeparator/UiHorizontalSeparator.vue.d.ts +6 -0
  71. package/dist/types/src/components/UiInputCheckbox/UiInputCheckbox.vue.d.ts +108 -0
  72. package/dist/types/src/components/UiInputCheckbox/index.d.ts +2 -0
  73. package/dist/types/src/components/UiInputCheckbox/types.d.ts +1 -0
  74. package/dist/types/src/components/UiInputSelect/UiInputSelect.vue.d.ts +66 -0
  75. package/dist/types/src/components/UiInputSelect/index.d.ts +2 -0
  76. package/dist/types/src/components/UiInputSelect/types.d.ts +1 -0
  77. package/dist/types/src/components/UiInputTextarea/UiInputTextarea.vue.d.ts +49 -0
  78. package/dist/types/src/components/UiInputTextarea/index.d.ts +2 -0
  79. package/dist/types/src/components/UiInputTextarea/types.d.ts +1 -0
  80. package/dist/types/src/components/UiLabel/UiLabel.vue.d.ts +17 -0
  81. package/dist/types/src/components/UiList/UiList.vue.d.ts +27 -0
  82. package/dist/types/src/components/UiListItem/UiListItem.vue.d.ts +35 -0
  83. package/dist/types/src/components/UiLoader/UiLoader.vue.d.ts +17 -0
  84. package/dist/types/src/components/UiLogo/UiLogo.vue.d.ts +20 -0
  85. package/dist/types/src/components/UiLogo/variants/PulseVariant.vue.d.ts +3 -0
  86. package/dist/types/src/components/UiLogo/variants/TornadoVariant.vue.d.ts +3 -0
  87. package/dist/types/src/components/UiMenu/UiMenu.vue.d.ts +18 -0
  88. package/dist/types/src/components/UiMenu/UiMenuContent.vue.d.ts +30 -0
  89. package/dist/types/src/components/UiMenu/UiMenuGroup.vue.d.ts +16 -0
  90. package/dist/types/src/components/UiMenu/UiMenuItem.vue.d.ts +18 -0
  91. package/dist/types/src/components/UiMenu/UiMenuLabel.vue.d.ts +13 -0
  92. package/dist/types/src/components/UiMenu/UiMenuSeparator.vue.d.ts +13 -0
  93. package/dist/types/src/components/UiMenu/UiMenuSub.vue.d.ts +18 -0
  94. package/dist/types/src/components/UiMenu/UiMenuSubContent.vue.d.ts +32 -0
  95. package/dist/types/src/components/UiMenu/UiMenuSubTrigger.vue.d.ts +14 -0
  96. package/dist/types/src/components/UiMenu/UiMenuTrigger.vue.d.ts +14 -0
  97. package/dist/types/src/components/UiMenu/index.d.ts +10 -0
  98. package/dist/types/src/components/UiPage/UiPage.vue.d.ts +37 -0
  99. package/dist/types/src/components/UiPageHeader/UiPageHeader.vue.d.ts +33 -0
  100. package/dist/types/src/components/UiPopover/UiPopover.vue.d.ts +18 -0
  101. package/dist/types/src/components/UiPopover/UiPopoverAnchor.vue.d.ts +14 -0
  102. package/dist/types/src/components/UiPopover/UiPopoverContent.vue.d.ts +28 -0
  103. package/dist/types/src/components/UiPopover/UiPopoverTrigger.vue.d.ts +14 -0
  104. package/dist/types/src/components/UiProgress/UiProgress.vue.d.ts +15 -0
  105. package/dist/types/src/components/UiProgress/index.d.ts +2 -0
  106. package/dist/types/src/components/UiProgress/types.d.ts +4 -0
  107. package/dist/types/src/components/UiRoomButton/UiRoomButton.vue.d.ts +29 -0
  108. package/dist/types/src/components/UiShell/UiShell.vue.d.ts +24 -0
  109. package/dist/types/src/components/UiSideMenu/UiSideMenu.vue.d.ts +64 -0
  110. package/dist/types/src/components/UiSideMenu/UiSideMenuBottom.vue.d.ts +7 -0
  111. package/dist/types/src/components/UiSideMenu/UiSideMenuItem.vue.d.ts +53 -0
  112. package/dist/types/src/components/UiSideMenu/UiSideMenuItemContent.vue.d.ts +43 -0
  113. package/dist/types/src/components/UiSideMenu/UiSideMenuTop.vue.d.ts +7 -0
  114. package/dist/types/src/components/UiSideMenu/injection.d.ts +7 -0
  115. package/dist/types/src/components/UiSideMenu/types.d.ts +39 -0
  116. package/dist/types/src/components/UiSideMenu/useLabelHidden.d.ts +2 -0
  117. package/dist/types/src/components/UiSideMenu/useSideMenuLayout.d.ts +7 -0
  118. package/dist/types/src/components/UiStepper/UiStepper.vue.d.ts +18 -0
  119. package/dist/types/src/components/UiStepper/UiStepperDescription.vue.d.ts +14 -0
  120. package/dist/types/src/components/UiStepper/UiStepperIndicator.vue.d.ts +20 -0
  121. package/dist/types/src/components/UiStepper/UiStepperItem.vue.d.ts +19 -0
  122. package/dist/types/src/components/UiStepper/UiStepperSeparator.vue.d.ts +10 -0
  123. package/dist/types/src/components/UiStepper/UiStepperTitle.vue.d.ts +14 -0
  124. package/dist/types/src/components/UiStepper/index.d.ts +7 -0
  125. package/dist/types/src/components/UiTable/UiTable.vue.d.ts +20 -0
  126. package/dist/types/src/components/UiTable/UiTableBody.vue.d.ts +13 -0
  127. package/dist/types/src/components/UiTable/UiTableCell.vue.d.ts +13 -0
  128. package/dist/types/src/components/UiTable/UiTableHeader.vue.d.ts +13 -0
  129. package/dist/types/src/components/UiTable/UiTableHeaderCell.vue.d.ts +13 -0
  130. package/dist/types/src/components/UiTable/UiTableRow.vue.d.ts +16 -0
  131. package/dist/types/src/components/UiTable/index.d.ts +6 -0
  132. package/dist/types/src/components/UiTabs/UiTabs.vue.d.ts +37 -0
  133. package/dist/types/src/components/UiTabs/index.d.ts +2 -0
  134. package/dist/types/src/components/UiTag/UiTag.vue.d.ts +43 -0
  135. package/dist/types/src/components/UiTag/index.d.ts +1 -0
  136. package/dist/types/src/components/UiTextField/UiTextField.vue.d.ts +65 -0
  137. package/dist/types/src/components/UiTextField/index.d.ts +2 -0
  138. package/dist/types/src/components/UiTextField/types.d.ts +2 -0
  139. package/dist/types/src/components/UiTimeline/UiTimeline.vue.d.ts +19 -0
  140. package/dist/types/src/components/UiTimeline/UiTimelineItem.vue.d.ts +28 -0
  141. package/dist/types/src/components/UiTimeline/index.d.ts +2 -0
  142. package/dist/types/src/components/UiTooltip/UiTooltip.vue.d.ts +18 -0
  143. package/dist/types/src/components/UiTooltip/UiTooltipContent.vue.d.ts +54 -0
  144. package/dist/types/src/components/UiTooltip/UiTooltipProvider.vue.d.ts +17 -0
  145. package/dist/types/src/components/UiTooltip/UiTooltipTrigger.vue.d.ts +14 -0
  146. package/dist/types/src/components/UiTooltip/index.d.ts +4 -0
  147. package/dist/types/src/composables/useButtonStyles.d.ts +20 -0
  148. package/dist/types/src/composables/useMobileMenu.d.ts +11 -0
  149. package/dist/types/src/composables/useThemeAndModes.d.ts +34 -0
  150. package/dist/types/src/constants/index.d.ts +2 -0
  151. package/dist/types/src/constants/sizes.d.ts +2 -0
  152. package/dist/types/src/constants/themes.d.ts +22 -0
  153. package/dist/types/src/integrations/index.d.ts +1 -0
  154. package/dist/types/src/layouts/index.d.ts +2 -0
  155. package/dist/types/src/mixins/DynamicAction.d.ts +30 -0
  156. package/dist/types/src/primitives.d.ts +6 -0
  157. package/dist/types/src/theme.d.ts +1 -0
  158. package/dist/types/src/utils/a11y.d.ts +2 -0
  159. package/dist/types/src/utils/breakpoints.d.ts +9 -0
  160. package/dist/types/src/utils/bus.d.ts +2 -0
  161. package/dist/types/src/utils/clipboard.d.ts +4 -0
  162. package/dist/types/src/utils/devices.d.ts +19 -0
  163. package/dist/types/src/utils/elements.d.ts +1 -0
  164. package/dist/types/src/utils/index.d.ts +9 -0
  165. package/dist/types/src/utils/numbers.d.ts +30 -0
  166. package/dist/types/src/utils/responsive.d.ts +5 -0
  167. package/dist/types/src/utils/responsive.types.d.ts +12 -0
  168. package/dist/types/src/utils/router.d.ts +1 -0
  169. package/dist/types/src/utils/slot.d.ts +8 -0
  170. package/dist/types/src/utils/stack-view.d.ts +10 -0
  171. package/dist/types/src/utils/uid.d.ts +1 -0
  172. package/dist/types/style.d.ts +1 -0
  173. package/dist/ui-vue.css +1 -0
  174. package/dist/useThemeAndModes-DY5SDC0a.mjs +109 -0
  175. package/dist/utils.mjs +111 -0
  176. package/index.d.ts +88 -2
  177. package/index.js +169 -16
  178. package/integrations.d.ts +10 -0
  179. package/package.json +127 -58
  180. package/src/components/Toast/LayoutToasts.vue +63 -0
  181. package/src/components/Toast/ToastMessage.vue +208 -0
  182. package/src/components/Toast/toastDSV2.ts +151 -0
  183. package/src/components/UiActionBar/UiActionBar.vue +86 -0
  184. package/src/components/UiActionBar/UiActionBarItem.vue +179 -0
  185. package/src/components/UiActionBar/UiActionBarSeparator.vue +18 -0
  186. package/src/components/UiActionBar/index.ts +4 -0
  187. package/src/components/UiActionBar/types.ts +24 -0
  188. package/src/components/UiAnimatedLogo/UiAnimatedLogo.vue +47 -0
  189. package/src/components/UiAnimatedLogo/animations-links.ts +6 -0
  190. package/src/components/UiAvatar/UiAvatar.vue +186 -0
  191. package/src/components/UiAvatar/index.js +1 -0
  192. package/src/components/UiAvatarList/UiAvatarList.vue +109 -0
  193. package/src/components/UiAvatarList/index.js +1 -0
  194. package/src/components/UiBadge/UiBadge.vue +161 -0
  195. package/src/components/UiBadge/index.ts +2 -0
  196. package/src/components/UiBanner/UiBanner.vue +363 -0
  197. package/src/components/UiBanner/index.ts +2 -0
  198. package/src/components/UiBreadcrumb/UiBreadcrumb.vue +93 -0
  199. package/src/components/UiBreadcrumb/index.ts +2 -0
  200. package/src/components/UiButton/UiButton.vue +319 -0
  201. package/src/components/UiButtonGroup/UiButtonGroup.vue +198 -0
  202. package/src/components/UiButtonGroup/UiButtonGroupItem.vue +123 -0
  203. package/src/components/UiButtonGroup/index.ts +3 -0
  204. package/src/components/UiButtonGroup/types.ts +24 -0
  205. package/src/components/UiCard/UiCard.vue +112 -0
  206. package/src/components/UiCarousel/UiCarousel.vue +215 -0
  207. package/src/components/UiCarousel/index.ts +2 -0
  208. package/src/components/UiColorField/UiColorField.vue +158 -0
  209. package/src/components/UiColorField/index.ts +2 -0
  210. package/src/components/UiColorField/types.ts +30 -0
  211. package/src/components/UiColorPicker/UiColorPicker.vue +487 -0
  212. package/src/components/UiColorPicker/index.ts +2 -0
  213. package/src/components/UiColorPicker/types.ts +103 -0
  214. package/src/components/UiDialog/MarketplaceHeaderExample.vue +217 -0
  215. package/src/components/UiDialog/UiDialog.md +97 -0
  216. package/src/components/UiDialog/UiDialog.vue +16 -0
  217. package/src/components/UiDialog/UiDialogClose.vue +29 -0
  218. package/src/components/UiDialog/UiDialogContent.vue +238 -0
  219. package/src/components/UiDialog/UiDialogFooter.vue +9 -0
  220. package/src/components/UiDialog/UiDialogTrigger.vue +12 -0
  221. package/src/components/UiDialog/index.ts +18 -0
  222. package/src/components/UiDropdown/UiDropdown.vue +48 -0
  223. package/src/components/UiDropdown/UiDropdownContent.vue +72 -0
  224. package/src/components/UiDropdown/UiDropdownItem.vue +75 -0
  225. package/src/components/UiDropdown/UiDropdownSeparator.vue +7 -0
  226. package/src/components/UiDropdown/UiDropdownTrigger.vue +239 -0
  227. package/src/components/UiDropdown/context.ts +9 -0
  228. package/src/components/UiDropdown/index.ts +21 -0
  229. package/src/components/UiEmptyState/UiEmptyState.vue +80 -0
  230. package/src/components/UiFieldWrapper/UiFieldWrapper.vue +79 -0
  231. package/src/components/UiFieldWrapper/index.ts +1 -0
  232. package/src/components/UiForm/UiFormField.types.ts +24 -0
  233. package/src/components/UiForm/UiFormField.vue +66 -0
  234. package/src/components/UiForm/index.ts +3 -0
  235. package/src/components/UiHorizontalSeparator/UiHorizontalSeparator.vue +28 -0
  236. package/src/components/UiInputCheckbox/UiInputCheckbox.vue +477 -0
  237. package/src/components/UiInputCheckbox/index.ts +2 -0
  238. package/src/components/UiInputCheckbox/types.ts +1 -0
  239. package/src/components/UiInputSelect/UiInputSelect.vue +166 -0
  240. package/src/components/UiInputSelect/index.ts +2 -0
  241. package/src/components/UiInputSelect/types.ts +1 -0
  242. package/src/components/UiInputTextarea/UiInputTextarea.vue +219 -0
  243. package/src/components/UiInputTextarea/index.ts +2 -0
  244. package/src/components/UiInputTextarea/types.ts +1 -0
  245. package/src/components/UiLabel/UiLabel.vue +34 -0
  246. package/src/components/UiList/UiList.vue +45 -0
  247. package/src/components/UiListItem/UiListItem.vue +108 -0
  248. package/src/components/UiLoader/UiLoader.vue +45 -0
  249. package/src/components/UiLogo/UiLogo.vue +99 -0
  250. package/src/components/UiLogo/variants/PulseVariant.vue +51 -0
  251. package/src/components/UiLogo/variants/TornadoVariant.vue +147 -0
  252. package/src/components/UiMenu/UiMenu.vue +15 -0
  253. package/src/components/UiMenu/UiMenuContent.vue +25 -0
  254. package/src/components/UiMenu/UiMenuGroup.vue +19 -0
  255. package/src/components/UiMenu/UiMenuItem.vue +18 -0
  256. package/src/components/UiMenu/UiMenuLabel.vue +9 -0
  257. package/src/components/UiMenu/UiMenuSeparator.vue +9 -0
  258. package/src/components/UiMenu/UiMenuSub.vue +15 -0
  259. package/src/components/UiMenu/UiMenuSubContent.vue +23 -0
  260. package/src/components/UiMenu/UiMenuSubTrigger.vue +17 -0
  261. package/src/components/UiMenu/UiMenuTrigger.vue +13 -0
  262. package/src/components/UiMenu/index.ts +10 -0
  263. package/src/components/UiPage/UiPage.vue +201 -0
  264. package/src/components/UiPageHeader/UiPageHeader.vue +128 -0
  265. package/src/components/UiPopover/UiPopover.vue +16 -0
  266. package/src/components/UiPopover/UiPopoverAnchor.vue +12 -0
  267. package/src/components/UiPopover/UiPopoverContent.vue +26 -0
  268. package/src/components/UiPopover/UiPopoverTrigger.vue +19 -0
  269. package/src/components/UiProgress/UiProgress.vue +92 -0
  270. package/src/components/UiProgress/index.ts +2 -0
  271. package/src/components/UiProgress/types.ts +5 -0
  272. package/src/components/UiRoomButton/UiRoomButton.vue +240 -0
  273. package/src/components/UiShell/UiShell.vue +88 -0
  274. package/src/components/UiSideMenu/UiSideMenu.vue +513 -0
  275. package/src/components/UiSideMenu/UiSideMenuBottom.vue +27 -0
  276. package/src/components/UiSideMenu/UiSideMenuItem.vue +102 -0
  277. package/src/components/UiSideMenu/UiSideMenuItemContent.vue +172 -0
  278. package/src/components/UiSideMenu/UiSideMenuTop.vue +29 -0
  279. package/src/components/UiSideMenu/injection.ts +9 -0
  280. package/src/components/UiSideMenu/types.ts +41 -0
  281. package/src/components/UiSideMenu/useLabelHidden.ts +33 -0
  282. package/src/components/UiSideMenu/useSideMenuLayout.ts +12 -0
  283. package/src/components/UiStepper/UiStepper.vue +40 -0
  284. package/src/components/UiStepper/UiStepperDescription.vue +27 -0
  285. package/src/components/UiStepper/UiStepperIndicator.vue +93 -0
  286. package/src/components/UiStepper/UiStepperItem.vue +30 -0
  287. package/src/components/UiStepper/UiStepperSeparator.vue +49 -0
  288. package/src/components/UiStepper/UiStepperTitle.vue +24 -0
  289. package/src/components/UiStepper/index.ts +17 -0
  290. package/src/components/UiTable/UiTable.vue +24 -0
  291. package/src/components/UiTable/UiTableBody.vue +5 -0
  292. package/src/components/UiTable/UiTableCell.vue +26 -0
  293. package/src/components/UiTable/UiTableHeader.vue +17 -0
  294. package/src/components/UiTable/UiTableHeaderCell.vue +19 -0
  295. package/src/components/UiTable/UiTableRow.vue +27 -0
  296. package/src/components/UiTable/index.ts +6 -0
  297. package/src/components/UiTabs/UiTabs.vue +218 -0
  298. package/src/components/UiTabs/index.ts +5 -0
  299. package/src/components/UiTag/UiTag.vue +187 -0
  300. package/src/components/UiTag/index.js +1 -0
  301. package/src/components/UiTextField/UiTextField.vue +370 -0
  302. package/src/components/UiTextField/index.ts +2 -0
  303. package/src/components/UiTextField/types.ts +2 -0
  304. package/src/components/UiTimeline/README.md +169 -0
  305. package/src/components/UiTimeline/UiTimeline.vue +58 -0
  306. package/src/components/UiTimeline/UiTimelineItem.vue +141 -0
  307. package/src/components/UiTimeline/index.ts +2 -0
  308. package/src/components/UiTooltip/UiTooltip.vue +16 -0
  309. package/src/components/UiTooltip/UiTooltipContent.vue +86 -0
  310. package/src/components/UiTooltip/UiTooltipProvider.vue +15 -0
  311. package/src/components/UiTooltip/UiTooltipTrigger.vue +19 -0
  312. package/src/components/UiTooltip/index.js +4 -0
  313. package/src/composables/useButtonStyles.ts +242 -0
  314. package/src/composables/useMobileMenu.ts +57 -0
  315. package/src/composables/useThemeAndModes.ts +225 -0
  316. package/src/constants/index.ts +2 -0
  317. package/src/constants/sizes.ts +2 -0
  318. package/src/constants/themes.ts +34 -0
  319. package/src/css/{body.postcss → body.css} +3 -2
  320. package/src/css/reka-animations.css +209 -0
  321. package/src/css/{transitions.postcss → transitions.css} +12 -5
  322. package/src/global.d.ts +181 -0
  323. package/src/integrations/index.js +1 -0
  324. package/src/layouts/index.js +5 -0
  325. package/src/mixins/DynamicAction.js +5 -3
  326. package/src/primitives.ts +6 -0
  327. package/src/theme.ts +1 -0
  328. package/src/utils/a11y.ts +8 -0
  329. package/src/utils/{breakpoints.js → breakpoints.ts} +1 -0
  330. package/src/utils/clipboard.js +2 -2
  331. package/src/utils/devices.js +0 -3
  332. package/src/utils/index.js +2 -1
  333. package/src/utils/numbers.ts +61 -0
  334. package/src/utils/responsive.types.ts +12 -0
  335. package/src/utils/{slot.js → slot.ts} +18 -1
  336. package/style.js +3 -12
  337. package/theme.d.ts +1 -0
  338. package/.env +0 -1
  339. package/.eslintignore +0 -4
  340. package/.eslintrc.js +0 -47
  341. package/.pkg +0 -11
  342. package/babel.config.js +0 -5
  343. package/build/Dockerfile +0 -31
  344. package/ci/ci.yml +0 -54
  345. package/components-webpack.js +0 -29
  346. package/dist/environment-e70e5768.mjs +0 -1664
  347. package/dist/style.css +0 -1
  348. package/plugins.js +0 -17
  349. package/postcss.config.js +0 -1
  350. package/src/components/BaseAutocomplete/BaseAutocomplete.spec.js +0 -506
  351. package/src/components/BaseAutocomplete/BaseAutocomplete.stories.js +0 -184
  352. package/src/components/BaseAutocomplete/BaseAutocomplete.vue +0 -431
  353. package/src/components/BaseBanner/BaseBanner.spec.js +0 -32
  354. package/src/components/BaseBanner/BaseBanner.stories.js +0 -133
  355. package/src/components/BaseBanner/BaseBanner.vue +0 -229
  356. package/src/components/BaseButton/BaseButton.spec.js +0 -98
  357. package/src/components/BaseButton/BaseButton.stories.js +0 -291
  358. package/src/components/BaseButton/BaseButton.vue +0 -193
  359. package/src/components/BaseButton/__snapshots__/BaseButton.spec.js.snap +0 -37
  360. package/src/components/BaseButton/__snapshots__/BaseButton.spec.js.snap.old +0 -31
  361. package/src/components/BaseCheckbox/BaseCheckbox.stories.js +0 -82
  362. package/src/components/BaseCheckbox/BaseCheckbox.vue +0 -161
  363. package/src/components/BaseDropdownMenu/BaseDropdownMenu.stories.js +0 -84
  364. package/src/components/BaseDropdownMenu/BaseDropdownMenu.vue +0 -251
  365. package/src/components/BaseDropdownMenu/BaseDropdownMenuButton.vue +0 -26
  366. package/src/components/BaseDropdownMenu/BaseDropdownMenuDivider.vue +0 -10
  367. package/src/components/BaseDropdownMenu/BaseDropdownMenuItem.vue +0 -206
  368. package/src/components/BaseDropdownMenu/BaseDropdownMenuSearch.vue +0 -49
  369. package/src/components/BaseDropdownMenu/BaseDropdownMenuTitle.vue +0 -26
  370. package/src/components/BaseModal/BaseModal.stories.js +0 -143
  371. package/src/components/BaseModal/BaseModal.vue +0 -187
  372. package/src/components/BaseModal/BaseModalContent.vue +0 -164
  373. package/src/components/BaseModal/BaseModalContentOld.vue +0 -242
  374. package/src/components/BaseRating/BaseRating.spec.js +0 -46
  375. package/src/components/BaseRating/BaseRating.stories.js +0 -46
  376. package/src/components/BaseRating/BaseRating.vue +0 -119
  377. package/src/components/BaseSelect/BaseSelect.stories.js +0 -177
  378. package/src/components/BaseSelect/BaseSelect.vue +0 -443
  379. package/src/components/BaseSelect/BaseSelectGroup.vue +0 -34
  380. package/src/components/BaseSelect/BaseSelectOption.vue +0 -219
  381. package/src/components/BaseSwitch/BaseSwitch.stories.js +0 -44
  382. package/src/components/BaseSwitch/BaseSwitch.vue +0 -114
  383. package/src/components/BaseTag/BaseTag.stories.js +0 -123
  384. package/src/components/BaseTag/BaseTag.vue +0 -244
  385. package/src/css/button.postcss +0 -354
  386. package/src/css/checkbox-radio.postcss +0 -152
  387. package/src/css/icon.postcss +0 -9
  388. package/src/css/loader.postcss +0 -120
  389. package/src/css/popper.postcss +0 -143
  390. package/src/css/tailwind-utilities.postcss +0 -1
  391. package/src/css/tailwind.postcss +0 -2
  392. package/style-postcss.d.ts +0 -3
  393. package/style-postcss.js +0 -2
  394. package/tailwind.config.base.cjs +0 -88
  395. package/tailwind.config.js +0 -9
  396. package/tsconfig.check.json +0 -13
  397. package/tsconfig.json +0 -66
  398. package/vite.config.js +0 -43
  399. package/vitest.setup.js +0 -26
@@ -0,0 +1,181 @@
1
+ import type { RenderSlot } from './utils/slot'
2
+ import type UiActionBar from './components/UiActionBar/UiActionBar.vue'
3
+ import type UiActionBarItem from './components/UiActionBar/UiActionBarItem.vue'
4
+ import type UiActionBarSeparator from './components/UiActionBar/UiActionBarSeparator.vue'
5
+ import type UiAnimatedLogo from './components/UiAnimatedLogo/UiAnimatedLogo.vue'
6
+ import type UiAvatar from './components/UiAvatar/UiAvatar.vue'
7
+ import type UiAvatarList from './components/UiAvatarList/UiAvatarList.vue'
8
+ import type UiBadge from './components/UiBadge/UiBadge.vue'
9
+ import type UiBanner from './components/UiBanner/UiBanner.vue'
10
+ import type UiBreadcrumb from './components/UiBreadcrumb/UiBreadcrumb.vue'
11
+ import type UiButton from './components/UiButton/UiButton.vue'
12
+ import type UiButtonGroup from './components/UiButtonGroup/UiButtonGroup.vue'
13
+ import type UiButtonGroupItem from './components/UiButtonGroup/UiButtonGroupItem.vue'
14
+ import type UiCard from './components/UiCard/UiCard.vue'
15
+ import type UiCarousel from './components/UiCarousel/UiCarousel.vue'
16
+ import type UiColorField from './components/UiColorField/UiColorField.vue'
17
+ import type UiColorPicker from './components/UiColorPicker/UiColorPicker.vue'
18
+ import type UiDialog from './components/UiDialog/UiDialog.vue'
19
+ import type UiDialogClose from './components/UiDialog/UiDialogClose.vue'
20
+ import type UiDialogContent from './components/UiDialog/UiDialogContent.vue'
21
+ import type UiDialogFooter from './components/UiDialog/UiDialogFooter.vue'
22
+ import type UiDialogTrigger from './components/UiDialog/UiDialogTrigger.vue'
23
+ import type UiDropdown from './components/UiDropdown/UiDropdown.vue'
24
+ import type UiDropdownContent from './components/UiDropdown/UiDropdownContent.vue'
25
+ import type UiDropdownItem from './components/UiDropdown/UiDropdownItem.vue'
26
+ import type UiDropdownSeparator from './components/UiDropdown/UiDropdownSeparator.vue'
27
+ import type UiDropdownTrigger from './components/UiDropdown/UiDropdownTrigger.vue'
28
+ import type UiEmptyState from './components/UiEmptyState/UiEmptyState.vue'
29
+ import type UiFieldWrapper from './components/UiFieldWrapper/UiFieldWrapper.vue'
30
+ import type UiFormField from './components/UiForm/UiFormField.vue'
31
+ import type UiHorizontalSeparator from './components/UiHorizontalSeparator/UiHorizontalSeparator.vue'
32
+ import type UiInputCheckbox from './components/UiInputCheckbox/UiInputCheckbox.vue'
33
+ import type UiInputSelect from './components/UiInputSelect/UiInputSelect.vue'
34
+ import type UiInputTextarea from './components/UiInputTextarea/UiInputTextarea.vue'
35
+ import type UiLabel from './components/UiLabel/UiLabel.vue'
36
+ import type UiList from './components/UiList/UiList.vue'
37
+ import type UiListItem from './components/UiListItem/UiListItem.vue'
38
+ import type UiLoader from './components/UiLoader/UiLoader.vue'
39
+ import type UiLogo from './components/UiLogo/UiLogo.vue'
40
+ import type UiMenu from './components/UiMenu/UiMenu.vue'
41
+ import type UiMenuContent from './components/UiMenu/UiMenuContent.vue'
42
+ import type UiMenuGroup from './components/UiMenu/UiMenuGroup.vue'
43
+ import type UiMenuItem from './components/UiMenu/UiMenuItem.vue'
44
+ import type UiMenuLabel from './components/UiMenu/UiMenuLabel.vue'
45
+ import type UiMenuSeparator from './components/UiMenu/UiMenuSeparator.vue'
46
+ import type UiMenuSub from './components/UiMenu/UiMenuSub.vue'
47
+ import type UiMenuSubContent from './components/UiMenu/UiMenuSubContent.vue'
48
+ import type UiMenuSubTrigger from './components/UiMenu/UiMenuSubTrigger.vue'
49
+ import type UiMenuTrigger from './components/UiMenu/UiMenuTrigger.vue'
50
+ import type UiPage from './components/UiPage/UiPage.vue'
51
+ import type UiPageHeader from './components/UiPageHeader/UiPageHeader.vue'
52
+ import type UiPopover from './components/UiPopover/UiPopover.vue'
53
+ import type UiPopoverAnchor from './components/UiPopover/UiPopoverAnchor.vue'
54
+ import type UiPopoverContent from './components/UiPopover/UiPopoverContent.vue'
55
+ import type UiPopoverTrigger from './components/UiPopover/UiPopoverTrigger.vue'
56
+ import type UiProgress from './components/UiProgress/UiProgress.vue'
57
+ import type UiRoomButton from './components/UiRoomButton/UiRoomButton.vue'
58
+ import type UiShell from './components/UiShell/UiShell.vue'
59
+ import type UiSideMenu from './components/UiSideMenu/UiSideMenu.vue'
60
+ import type UiSideMenuBottom from './components/UiSideMenu/UiSideMenuBottom.vue'
61
+ import type UiSideMenuItem from './components/UiSideMenu/UiSideMenuItem.vue'
62
+ import type UiSideMenuItemContent from './components/UiSideMenu/UiSideMenuItemContent.vue'
63
+ import type UiSideMenuTop from './components/UiSideMenu/UiSideMenuTop.vue'
64
+ import type UiStepper from './components/UiStepper/UiStepper.vue'
65
+ import type UiStepperDescription from './components/UiStepper/UiStepperDescription.vue'
66
+ import type UiStepperIndicator from './components/UiStepper/UiStepperIndicator.vue'
67
+ import type UiStepperItem from './components/UiStepper/UiStepperItem.vue'
68
+ import type UiStepperSeparator from './components/UiStepper/UiStepperSeparator.vue'
69
+ import type UiStepperTitle from './components/UiStepper/UiStepperTitle.vue'
70
+ import type UiTable from './components/UiTable/UiTable.vue'
71
+ import type UiTableBody from './components/UiTable/UiTableBody.vue'
72
+ import type UiTableCell from './components/UiTable/UiTableCell.vue'
73
+ import type UiTableHeader from './components/UiTable/UiTableHeader.vue'
74
+ import type UiTableHeaderCell from './components/UiTable/UiTableHeaderCell.vue'
75
+ import type UiTableRow from './components/UiTable/UiTableRow.vue'
76
+ import type UiTabs from './components/UiTabs/UiTabs.vue'
77
+ import type UiTag from './components/UiTag/UiTag.vue'
78
+ import type UiTextField from './components/UiTextField/UiTextField.vue'
79
+ import type UiTimeline from './components/UiTimeline/UiTimeline.vue'
80
+ import type UiTimelineItem from './components/UiTimeline/UiTimelineItem.vue'
81
+ import type UiTooltip from './components/UiTooltip/UiTooltip.vue'
82
+ import type UiTooltipContent from './components/UiTooltip/UiTooltipContent.vue'
83
+ import type UiTooltipProvider from './components/UiTooltip/UiTooltipProvider.vue'
84
+ import type UiTooltipTrigger from './components/UiTooltip/UiTooltipTrigger.vue'
85
+
86
+ declare module 'vue' {
87
+ interface ComponentCustomProperties {
88
+ i18n: {
89
+ t: (key: string, ...args: unknown[]) => string
90
+ }
91
+ }
92
+
93
+ export interface GlobalComponents {
94
+ RenderSlot: typeof RenderSlot
95
+ UiActionBar: typeof UiActionBar
96
+ UiActionBarItem: typeof UiActionBarItem
97
+ UiActionBarSeparator: typeof UiActionBarSeparator
98
+ UiAnimatedLogo: typeof UiAnimatedLogo
99
+ UiAvatar: typeof UiAvatar
100
+ UiAvatarList: typeof UiAvatarList
101
+ UiBadge: typeof UiBadge
102
+ UiBanner: typeof UiBanner
103
+ UiBreadcrumb: typeof UiBreadcrumb
104
+ UiButton: typeof UiButton
105
+ UiButtonGroup: typeof UiButtonGroup
106
+ UiButtonGroupItem: typeof UiButtonGroupItem
107
+ UiCard: typeof UiCard
108
+ UiCarousel: typeof UiCarousel
109
+ UiColorField: typeof UiColorField
110
+ UiColorPicker: typeof UiColorPicker
111
+ UiDialog: typeof UiDialog
112
+ UiDialogClose: typeof UiDialogClose
113
+ UiDialogContent: typeof UiDialogContent
114
+ UiDialogFooter: typeof UiDialogFooter
115
+ UiDialogTrigger: typeof UiDialogTrigger
116
+ UiDropdown: typeof UiDropdown
117
+ UiDropdownContent: typeof UiDropdownContent
118
+ UiDropdownItem: typeof UiDropdownItem
119
+ UiDropdownSeparator: typeof UiDropdownSeparator
120
+ UiDropdownTrigger: typeof UiDropdownTrigger
121
+ UiEmptyState: typeof UiEmptyState
122
+ UiFieldWrapper: typeof UiFieldWrapper
123
+ UiFormField: typeof UiFormField
124
+ UiHorizontalSeparator: typeof UiHorizontalSeparator
125
+ UiInputCheckbox: typeof UiInputCheckbox
126
+ UiInputSelect: typeof UiInputSelect
127
+ UiInputTextarea: typeof UiInputTextarea
128
+ UiLabel: typeof UiLabel
129
+ UiList: typeof UiList
130
+ UiListItem: typeof UiListItem
131
+ UiLoader: typeof UiLoader
132
+ UiLogo: typeof UiLogo
133
+ UiMenu: typeof UiMenu
134
+ UiMenuContent: typeof UiMenuContent
135
+ UiMenuGroup: typeof UiMenuGroup
136
+ UiMenuItem: typeof UiMenuItem
137
+ UiMenuLabel: typeof UiMenuLabel
138
+ UiMenuSeparator: typeof UiMenuSeparator
139
+ UiMenuSub: typeof UiMenuSub
140
+ UiMenuSubContent: typeof UiMenuSubContent
141
+ UiMenuSubTrigger: typeof UiMenuSubTrigger
142
+ UiMenuTrigger: typeof UiMenuTrigger
143
+ UiPage: typeof UiPage
144
+ UiPageHeader: typeof UiPageHeader
145
+ UiPopover: typeof UiPopover
146
+ UiPopoverAnchor: typeof UiPopoverAnchor
147
+ UiPopoverContent: typeof UiPopoverContent
148
+ UiPopoverTrigger: typeof UiPopoverTrigger
149
+ UiProgress: typeof UiProgress
150
+ UiRoomButton: typeof UiRoomButton
151
+ UiShell: typeof UiShell
152
+ UiSideMenu: typeof UiSideMenu
153
+ UiSideMenuBottom: typeof UiSideMenuBottom
154
+ UiSideMenuItem: typeof UiSideMenuItem
155
+ UiSideMenuItemContent: typeof UiSideMenuItemContent
156
+ UiSideMenuTop: typeof UiSideMenuTop
157
+ UiStepper: typeof UiStepper
158
+ UiStepperDescription: typeof UiStepperDescription
159
+ UiStepperIndicator: typeof UiStepperIndicator
160
+ UiStepperItem: typeof UiStepperItem
161
+ UiStepperSeparator: typeof UiStepperSeparator
162
+ UiStepperTitle: typeof UiStepperTitle
163
+ UiTable: typeof UiTable
164
+ UiTableBody: typeof UiTableBody
165
+ UiTableCell: typeof UiTableCell
166
+ UiTableHeader: typeof UiTableHeader
167
+ UiTableHeaderCell: typeof UiTableHeaderCell
168
+ UiTableRow: typeof UiTableRow
169
+ UiTabs: typeof UiTabs
170
+ UiTag: typeof UiTag
171
+ UiTextField: typeof UiTextField
172
+ UiTimeline: typeof UiTimeline
173
+ UiTimelineItem: typeof UiTimelineItem
174
+ UiTooltip: typeof UiTooltip
175
+ UiTooltipContent: typeof UiTooltipContent
176
+ UiTooltipProvider: typeof UiTooltipProvider
177
+ UiTooltipTrigger: typeof UiTooltipTrigger
178
+ }
179
+ }
180
+
181
+ export {} // Enable type augmentation instead of replacement
@@ -0,0 +1 @@
1
+ export * from '../components/Toast/toastDSV2'
@@ -0,0 +1,5 @@
1
+ import LayoutToasts from '../components/Toast/LayoutToasts.vue'
2
+
3
+ export {
4
+ LayoutToasts,
5
+ }
@@ -21,6 +21,8 @@ export default {
21
21
 
22
22
  computed: {
23
23
  component () {
24
+ const isDisabled = this.disabled || this.loading
25
+
24
26
  if (this.to) {
25
27
  return {
26
28
  is: 'router-link',
@@ -28,14 +30,14 @@ export default {
28
30
  to: this.to,
29
31
  // @TODO vue3 check if we need to have a replacement for this
30
32
  // exact: !this.activePage,
31
- disabled: this.disabled,
33
+ disabled: isDisabled,
32
34
  },
33
35
  }
34
36
  } else if (this.href) {
35
37
  return {
36
38
  is: 'a',
37
39
  props: {
38
- href: this.disabled
40
+ href: isDisabled
39
41
  ? undefined
40
42
  : this.href,
41
43
  },
@@ -50,7 +52,7 @@ export default {
50
52
  is: 'button',
51
53
  props: {
52
54
  type: this.type,
53
- disabled: this.disabled,
55
+ disabled: isDisabled,
54
56
  },
55
57
  }
56
58
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Re-exports of reka-ui headless primitives so application packages can consume
3
+ * them through the design system instead of depending on reka-ui directly
4
+ * (reka-ui is a dependency of this package, not of the app packages).
5
+ */
6
+ export { FocusScope, RovingFocusGroup, RovingFocusItem } from 'reka-ui'
package/src/theme.ts ADDED
@@ -0,0 +1 @@
1
+ export type ThemeColorType = 'alert'|'warning'|'info'|'success'
@@ -0,0 +1,8 @@
1
+ function focusFirstMenuItem (event: Event) {
2
+ event.preventDefault()
3
+ const target = (event.target as HTMLElement).closest('[role="menu"]') || event.target as HTMLElement
4
+ const firstLink = target.querySelector('a')
5
+ firstLink?.focus()
6
+ }
7
+
8
+ export { focusFirstMenuItem }
@@ -6,3 +6,4 @@ export const BREAKPOINT_MD = 768
6
6
  export const BREAKPOINT_LG = 1024
7
7
  export const BREAKPOINT_XL = 1280
8
8
  export const BREAKPOINT_XL_PLUS = 1366
9
+ export const BREAKPOINT_2XL = 1536
@@ -9,14 +9,14 @@ export function useCopyToClipboard () {
9
9
 
10
10
  const canCopy = computed(() => isSupported.value && permissionClipboardWrite.value)
11
11
 
12
- async function copy (text, el) {
12
+ async function copy (text, el, tooltipText = i18n.t('general_misc_copied-text')) {
13
13
  await _copy(text)
14
14
 
15
15
  if (el) {
16
16
  el.classList.add('copied')
17
17
  const tooltip = createTooltip(el, {
18
18
  triggers: [],
19
- content: i18n.t('general_misc_copied-text'),
19
+ content: tooltipText,
20
20
  delay: 0,
21
21
  })
22
22
  tooltip.show()
@@ -1,4 +1,3 @@
1
- // eslint-disable-next-line
2
1
  const REGEX_MOBILE1 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|FBAN|FBAV|fennec|hiptop|iemobile|ip(hone|od)|Instagram|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i
3
2
 
4
3
  // eslint-disable-next-line
@@ -8,12 +7,10 @@ function isMobile (a) {
8
7
  return REGEX_MOBILE1.test(a) || REGEX_MOBILE2.test(a.slice(0, 4))
9
8
  }
10
9
 
11
- // eslint-disable-next-line
12
10
  const REGEX_MOBILE_OR_TABLET1 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|FBAN|FBAV|fennec|hiptop|iemobile|ip(hone|od)|Instagram|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i
13
11
  // eslint-disable-next-line
14
12
  const REGEX_MOBILE_OR_TABLET2 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i
15
13
 
16
- // eslint-disable-next-line
17
14
  const REGEX_CRAWLER = /Googlebot\/|Googlebot-Mobile|Googlebot-Image|Googlebot-News|Googlebot-Video|AdsBot-Google([^-]|$)|AdsBot-Google-Mobile|Feedfetcher-Google|Mediapartners-Google|Mediapartners \(Googlebot\)|APIs-Google|bingbot|Slurp|[wW]get|LinkedInBot|Python-urllib|python-requests|aiohttp|httpx|libwww-perl|httpunit|nutch|Go-http-client|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|BIGLOTRON|Teoma|convera|seekbot|Gigabot|Gigablast|exabot|ia_archiver|GingerCrawler|webmon |HTTrack|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|findlink|msrbot|panscient|yacybot|AISearchBot|ips-agent|tagoobot|MJ12bot|woriobot|yanga|buzzbot|mlbot|YandexBot|YandexImages|YandexAccessibilityBot|YandexMobileBot|YandexMetrika|YandexTurbo|YandexImageResizer|YandexVideo|YandexAdNet|YandexBlogs|YandexCalendar|YandexDirect|YandexFavicons|YaDirectFetcher|YandexForDomain|YandexMarket|YandexMedia|YandexMobileScreenShotBot|YandexNews|YandexOntoDB|YandexPagechecker|YandexPartner|YandexRCA|YandexSearchShop|YandexSitelinks|YandexSpravBot|YandexTracker|YandexVertis|YandexVerticals|YandexWebmaster|YandexScreenshotBot|purebot|Linguee Bot|CyberPatrol|voilabot|Baiduspider|citeseerxbot|spbot|twengabot|postrank|TurnitinBot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|Ahrefs(Bot|SiteAudit)|fuelbot|CrunchBot|IndeedBot|mappydata|woobot|ZoominfoBot|PrivacyAwareBot|Multiviewbot|SWIMGBot|Grobbot|eright|Apercite|semanticbot|Aboundex|domaincrawler|wbsearchbot|summify|CCBot|edisterbot|seznambot|ec2linkfinder|gslfbot|aiHitBot|intelium_bot|facebookexternalhit|Yeti|RetrevoPageAnalyzer|lb-spider|Sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|OrangeBot\/|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|S[eE][mM]rushBot|yoozBot|lipperhey|Y!J|Domain Re-Animator Bot|AddThis|Screaming Frog SEO Spider|MetaURI|Scrapy|Livelap[bB]ot|OpenHoseBot|CapsuleChecker|collection@infegy.com|IstellaBot|DeuSu\/|betaBot|Cliqzbot\/|MojeekBot\/|netEstate NE Crawler|SafeSearch microdata crawler|Gluten Free Crawler\/|Sonic|Sysomos|Trove|deadlinkchecker|Slack-ImgProxy|Embedly|RankActiveLinkBot|iskanie|SafeDNSBot|SkypeUriPreview|Veoozbot|Slackbot|redditbot|datagnionbot|Google-Adwords-Instant|adbeat_bot|WhatsApp|contxbot|pinterest.com.bot|electricmonk|GarlikCrawler|BingPreview\/|vebidoobot|FemtosearchBot|Yahoo Link Preview|MetaJobBot|DomainStatsBot|mindUpBot|Daum\/|Jugendschutzprogramm-Crawler|Xenu Link Sleuth|Pcore-HTTP|moatbot|KosmioBot|pingdom|AppInsights|PhantomJS|Gowikibot|PiplBot|Discordbot|TelegramBot|Jetslide|newsharecounts|James BOT|Bark[rR]owler|TinEye|SocialRankIOBot|trendictionbot|Ocarinabot|epicbot|Primalbot|DuckDuckGo-Favicons-Bot|GnowitNewsbot|Leikibot|LinkArchiver|YaK\/|PaperLiBot|Digg Deeper|dcrawl|Snacktory|AndersPinkBot|Fyrebot|EveryoneSocialBot|Mediatoolkitbot|Luminator-robots|ExtLinksBot|SurveyBot|NING\/|okhttp|Nuzzel|omgili|PocketParser|YisouSpider|um-LN|ToutiaoSpider|MuckRack|Jamie's Spider|AHC\/|NetcraftSurveyAgent|Laserlikebot|^Apache-HttpClient|AppEngine-Google|Jetty|Upflow|Thinklab|Traackr.com|Twurly|Mastodon|http_get|DnyzBot|botify|007ac9 Crawler|BehloolBot|BrandVerity|check_http|BDCbot|ZumBot|EZID|ICC-Crawler|ArchiveBot|^LCC |filterdb.iss.net\/crawler|BLP_bbot|BomboraBot|Buck\/|Companybook-Crawler|Genieo|magpie-crawler|MeltwaterNews|Moreover|newspaper\/|ScoutJet|(^| )sentry\/|StorygizeBot|UptimeRobot|OutclicksBot|seoscanners|Hatena|Google Web Preview|MauiBot|AlphaBot|SBL-BOT|IAS crawler|adscanner|Netvibes|acapbot|Baidu-YunGuanCe|bitlybot|blogmuraBot|Bot.AraTurka.com|bot-pge.chlooe.com|BoxcarBot|BTWebClient|ContextAd Bot|Digincore bot|Disqus|Feedly|Fetch\/|Fever|Flamingo_SearchEngine|FlipboardProxy|g2reader-bot|G2 Web Services|imrbot|K7MLWCBot|Kemvibot|Landau-Media-Spider|linkapediabot|vkShare|Siteimprove.com|BLEXBot\/|DareBoost|ZuperlistBot\/|Miniflux\/|Feedspot|Diffbot\/|SEOkicks|tracemyfile|Nimbostratus-Bot|zgrab|PR-CY.RU|AdsTxtCrawler|Datafeedwatch|Zabbix|TangibleeBot|google-xrawler|axios|Amazon CloudFront|Pulsepoint|CloudFlare-AlwaysOnline|Google-Structured-Data-Testing-Tool|WordupInfoSearch|WebDataStats|HttpUrlConnection|Seekport Crawler|ZoomBot|VelenPublicWebCrawler|MoodleBot|jpg-newsbot|outbrain|W3C_Validator|Validator\.nu|W3C-checklink|W3C-mobileOK|W3C_I18n-Checker|FeedValidator|W3C_CSS_Validator|W3C_Unicorn|Google-PhysicalWeb|Blackboard|ICBot\/|BazQux|Twingly|Rivva|Experibot|awesomecrawler|Dataprovider.com|GroupHigh\/|theoldreader.com|AnyEvent|Uptimebot\.org|Nmap Scripting Engine|2ip.ru|Clickagy|Caliperbot|MBCrawler|online-webceo-bot|B2B Bot|AddSearchBot|Google Favicon|HubSpot|Chrome-Lighthouse|HeadlessChrome|CheckMarkNetwork\/|www\.uptime\.com|Streamline3Bot\/|serpstatbot\/|MixnodeCache\/|^curl|SimpleScraper|RSSingBot|Jooblebot|fedoraplanet|Friendica|NextCloud|Tiny Tiny RSS|RegionStuttgartBot|Bytespider|Datanyze|Google-Site-Verification|TrendsmapResolver|tweetedtimes|NTENTbot|Gwene|SimplePie|SearchAtlas|Superfeedr|feedbot|UT-Dorkbot|Amazonbot|SerendeputyBot|Eyeotabot|officestorebot|Neticle Crawler|SurdotlyBot|LinkisBot|AwarioSmartBot|AwarioRssBot|RyteBot|FreeWebMonitoring SiteChecker|AspiegelBot|NAVER Blog Rssbot|zenback bot|SentiBot|Domains Project\/|Pandalytics|VKRobot|bidswitchbot|tigerbot|NIXStatsbot|Atom Feed Robot|Curebot|PagePeeker\/|Vigil\/|rssbot\/|startmebot\/|JobboerseBot|seewithkids|NINJA bot|Cutbot|BublupBot|BrandONbot|RidderBot|Taboolabot|Dubbotbot|FindITAnswersbot|infoobot|Refindbot|BlogTraffic\/\d\.\d+ Feed-Fetcher|SeobilityBot|Cincraw|Dragonbot|VoluumDSP-content-bot|FreshRSS|BitBot|^PHP-Curl-Class|Google-Certificates-Bridge/
18
15
 
19
16
  function isMobileOrTablet (a) {
@@ -3,6 +3,7 @@ export * from './bus.js'
3
3
  export * from './clipboard.js'
4
4
  export * from './responsive.js'
5
5
  export * from './router.js'
6
- export * from './slot.js'
6
+ export * from './slot'
7
7
  export * from './stack-view.js'
8
8
  export * from './uid'
9
+ export * from './a11y'
@@ -0,0 +1,61 @@
1
+ function preventLessThanZero (num: number): number {
2
+ return Math.max(num, 0)
3
+ }
4
+
5
+ interface CustomNumberFormatOptions {
6
+ allowNegative?: boolean
7
+ }
8
+
9
+ function formatNumber (num: number, customOptions?: CustomNumberFormatOptions, passthroughOptions?: Intl.NumberFormatOptions): string {
10
+ const { allowNegative = true } = customOptions || {}
11
+ if (!allowNegative) {
12
+ num = preventLessThanZero(num)
13
+ }
14
+ return num.toLocaleString(undefined, passthroughOptions)
15
+ }
16
+
17
+ interface PercentageFormatOptions {
18
+ /**
19
+ * Number of decimal places to display
20
+ * @default 0
21
+ */
22
+ decimals?: number
23
+ /**
24
+ * Whether to clamp the value between 0 and 100
25
+ * @default true
26
+ */
27
+ clamp?: boolean
28
+ /**
29
+ * Value to return if the percentage is NaN or invalid
30
+ * @default 0
31
+ */
32
+ fallback?: number
33
+ }
34
+
35
+ /**
36
+ * Formats a percentage value, handling NaN and invalid cases
37
+ * @param value - The percentage value to format
38
+ * @param options - Formatting options
39
+ * @returns Formatted percentage as a number (without the % symbol)
40
+ */
41
+ function formatPercentage (value: number | undefined | null, options?: PercentageFormatOptions): number {
42
+ const { decimals = 0, clamp = true, fallback = 0 } = options || {}
43
+
44
+ // Handle invalid values
45
+ if (value === undefined || value === null || isNaN(value) || !isFinite(value)) {
46
+ return fallback
47
+ }
48
+
49
+ // Round to specified decimal places
50
+ const multiplier = Math.pow(10, decimals)
51
+ let result = Math.round(value * multiplier) / multiplier
52
+
53
+ // Clamp between 0 and 100 if requested
54
+ if (clamp) {
55
+ result = Math.max(0, Math.min(100, result))
56
+ }
57
+
58
+ return result
59
+ }
60
+
61
+ export { formatNumber, formatPercentage, preventLessThanZero }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shape of the `$responsive` global property installed by the responsive
3
+ * plugin (see ./responsive.js).
4
+ */
5
+ export type ResponsiveGlobalComponentProperty = {
6
+ width: number
7
+ height: number
8
+ mobile: boolean
9
+ tablet: boolean
10
+ smallDesktop: boolean
11
+ desktop: boolean
12
+ }
@@ -3,14 +3,17 @@ import { useSlots, isVNode, Comment, Fragment } from 'vue'
3
3
  export function useSlotsAsComponents () {
4
4
  const slots = useSlots()
5
5
  const proxy = new Proxy(slots, {
6
+ // @ts-expect-error
6
7
  get: (target, key) => (...args) => getSlotAsComponent(target[key]?.(...args)),
7
8
  })
8
9
  return proxy
9
10
  }
10
11
 
11
12
  // from https://github.com/vuejs/core/blob/25f7a16a6eccbfa8d857977dcf1f23fb36b830b5/packages/runtime-core/src/helpers/renderSlot.ts#L84-L97
13
+ // @ts-expect-error
12
14
  export function getSlotAsComponent (vnodes) {
13
15
  if (!vnodes) return null
16
+ // @ts-expect-error
14
17
  return vnodes.some(child => {
15
18
  if (!isVNode(child)) return true
16
19
  if (child.type === Comment) return false
@@ -23,5 +26,19 @@ export function getSlotAsComponent (vnodes) {
23
26
  ? vnodes
24
27
  : null
25
28
  }
26
-
29
+ // @ts-expect-error
27
30
  export const RenderSlot = ({ vnodes }) => vnodes
31
+
32
+ // @ts-expect-error
33
+ export function unwrapFragments (vnodes) {
34
+ if (!vnodes) return null
35
+ // @ts-expect-error
36
+ return vnodes.map(child => {
37
+ if (!isVNode(child)) return child
38
+ // RenderSlot
39
+ if (child.props?.vnodes) return unwrapFragments(child.props.vnodes)
40
+ // Fragment
41
+ if (child.type === Fragment) return unwrapFragments(child.children)
42
+ return child
43
+ }).flat(10)
44
+ }
package/style.js CHANGED
@@ -1,12 +1,3 @@
1
- import './src/css/tailwind.postcss'
2
-
3
- import '@livestorm/design-tokens/css/variables.css'
4
-
5
- import './src/css/body.postcss'
6
-
7
- import './src/css/transitions.postcss'
8
- import './src/css/loader.postcss'
9
- import './src/css/button.postcss'
10
- import './src/css/icon.postcss'
11
- import './src/css/checkbox-radio.postcss'
12
- import './src/css/popper.postcss'
1
+ import './src/css/body.css'
2
+ import './src/css/transitions.css'
3
+ import './src/css/reka-animations.css'
package/theme.d.ts ADDED
@@ -0,0 +1 @@
1
+ export type { ThemeColorType } from './src/theme'
package/.env DELETED
@@ -1 +0,0 @@
1
- VITE_UI_VUE=true
package/.eslintignore DELETED
@@ -1,4 +0,0 @@
1
- node_modules/
2
- dist/
3
- coverage/
4
- !.*
package/.eslintrc.js DELETED
@@ -1,47 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- parser: 'vue-eslint-parser',
4
- parserOptions: {
5
- parser: '@typescript-eslint/parser',
6
- },
7
- extends: [
8
- 'plugin:vue/vue3-recommended',
9
- '@vue/eslint-config-standard',
10
- 'plugin:vitest-globals/recommended',
11
- '@vue/typescript',
12
- ],
13
- env: {
14
- node: true,
15
- mocha: true,
16
- 'vitest-globals/env': true,
17
- },
18
- rules: {
19
- 'no-console': 'off',
20
- 'no-debugger': 'off',
21
- 'comma-dangle': ['error', {
22
- arrays: 'always-multiline',
23
- objects: 'always-multiline',
24
- imports: 'always-multiline',
25
- exports: 'always-multiline',
26
- functions: 'only-multiline',
27
- }],
28
- 'vue/no-v-html': 'off',
29
- // html-quotes off: Allow :query='gql => gql`query { foo (bar: "text with quotes") }`' as GraphQL only support double quotes (") for text in queries
30
- 'vue/html-quotes': 'off',
31
- 'vue/no-unsupported-features': ['warn', {
32
- version: '^3.2.30',
33
- ignores: [],
34
- }],
35
- 'vue/multi-word-component-names': 'warn',
36
- 'import/export': 'off',
37
- 'no-use-before-define': 'off',
38
- },
39
- overrides: [
40
- {
41
- files: ['**/*.vue'],
42
- rules: {
43
- 'import/first': 'off',
44
- },
45
- },
46
- ],
47
- }
package/.pkg DELETED
@@ -1,11 +0,0 @@
1
- target: //ui-vue
2
- context: //..
3
- name: ui-vue
4
- description: Library for building Livestorm frontend
5
- template: empty
6
- owners: ["@livestorm/chapter-front-end"]
7
- namespaced: false
8
- runtime_dependencies: []
9
- submodule: true
10
- labels:
11
- - livestorm-app
package/babel.config.js DELETED
@@ -1,5 +0,0 @@
1
- module.exports = {
2
- presets: [
3
- '@vue/cli-plugin-babel/preset',
4
- ],
5
- }
package/build/Dockerfile DELETED
@@ -1,31 +0,0 @@
1
- FROM public.ecr.aws/docker/library/node:16-alpine as base
2
-
3
- # Setup PNPM
4
-
5
- RUN corepack enable && corepack prepare pnpm@8.6.0 --activate
6
-
7
- WORKDIR /app
8
-
9
- # @TODO improve CI
10
- # COPY . .
11
- COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .
12
- COPY packages/ui-icons/package.json packages/ui-icons/
13
- COPY packages/ui-vue/package.json packages/ui-vue/
14
- # Needed for the depedencies (for example postcss.config.js)
15
- COPY packages/frontend/package.json packages/frontend/
16
- COPY packages/dev-utils/package.json packages/dev-utils/
17
-
18
- # NPM dependencies
19
-
20
- RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store/v3 \
21
- pnpm install --frozen-lockfile --ignore-scripts --prefer-offline --filter "@livestorm/ui-vue..." --filter "@livestorm/frontend..."
22
-
23
- COPY packages/ui-icons packages/ui-icons
24
- COPY packages/ui-vue packages/ui-vue
25
- # Needed for the references to '../frontend'
26
- COPY packages/frontend/ packages/frontend/
27
-
28
- RUN pnpm run -r --filter "@livestorm/ui-vue..." prepare && \
29
- pnpm run -r --filter "@livestorm/ui-vue^..." build
30
-
31
- WORKDIR /app/packages/ui-vue
package/ci/ci.yml DELETED
@@ -1,54 +0,0 @@
1
- steps:
2
- - label: ":docker: Build package (base)"
3
- key: build-base
4
- agents:
5
- queue: "elastic-builders"
6
- plugins:
7
- - livestorm/lsc#v1.0.32:
8
- build-package: true
9
- build-target: base
10
- build-cache-from:
11
- - ${PACKAGE_REGISTRY}/${PACKAGE_IMAGE_NAME}:latest
12
-
13
- - label: ":eslint: Run ESLint"
14
- depends_on: build-base
15
- command: |
16
- pnpm run test:eslint
17
- plugins:
18
- - docker#v4.0.0:
19
- image: "${PACKAGE_IMAGE}-base"
20
- skip-checkout: true
21
- mount-checkout: false
22
-
23
- - label: ":typescript: Run TypeScript check"
24
- depends_on: build-base
25
- command: |
26
- pnpm run test:types
27
- plugins:
28
- - docker#v4.0.0:
29
- image: "${PACKAGE_IMAGE}-base"
30
- skip-checkout: true
31
- mount-checkout: false
32
-
33
- - label: ":vitest: Run unit tests"
34
- depends_on: build-base
35
- key: "ut"
36
- artifact_paths: "reports/junit/*.xml"
37
- command: |
38
- pnpm run test:vitest:run --reporter=default --reporter=junit --outputFile.junit=reports/junit/junit.xml
39
- plugins:
40
- - docker#v4.0.0:
41
- image: "${PACKAGE_IMAGE}-base"
42
- skip-checkout: true
43
- mount-checkout: false
44
- volumes:
45
- - ./reports/junit:/app/packages/ui-vue/reports/junit
46
-
47
- - label: ":memo: Tests Report"
48
- depends_on: "ut"
49
- allow_dependency_failure: true
50
- plugins:
51
- - junit-annotate#v2.0.2:
52
- artifacts: "reports/junit/*.xml"
53
- failure-format: file
54
- report-slowest: 20
@@ -1,29 +0,0 @@
1
- import { RenderSlot } from './src/utils/slot'
2
-
3
- const NAME_REG = /Base([a-z0-9]+)\./i
4
-
5
- export function registerComponents (app, prefix = 'Ls') {
6
- app.component('RenderSlot', RenderSlot)
7
-
8
- const requireComponentsLib = require.context('./src/components/', true, /Base[a-z0-9]+\.(jsx?|vue)$/i)
9
- requireComponentsLib.keys().forEach(fileName => {
10
- const component = requireComponentsLib(fileName)
11
- const name = fileName.match(NAME_REG)[1]
12
- app.component(`${prefix}${name}`, component.default || component)
13
- })
14
- }
15
-
16
- export function getComponents (prefix = 'Ls') {
17
- const componentsMap = {}
18
-
19
- componentsMap.RenderSlot = RenderSlot
20
-
21
- const requireComponentsLib = require.context('./src/components/', true, /Base[a-z0-9]+\.(jsx?|vue)$/i)
22
- requireComponentsLib.keys().forEach(fileName => {
23
- const component = requireComponentsLib(fileName)
24
- const name = fileName.match(NAME_REG)[1]
25
- componentsMap[`${prefix}${name}`] = component.default || component
26
- })
27
-
28
- return componentsMap
29
- }