@livestorm/ui-vue 3.0.0 → 4.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 (291) hide show
  1. package/README.md +3 -3
  2. package/components-vite.js +2 -2
  3. package/dist/UiButton-uyW8EHRJ.mjs +602 -0
  4. package/dist/UiTimelineItem-EiOEi1yF.mjs +7293 -0
  5. package/dist/UiTooltip-DZcPD6_N.mjs +158 -0
  6. package/dist/a11y-CaZxRWzo.mjs +6 -0
  7. package/dist/breakpoints.mjs +4 -9
  8. package/dist/bus.mjs +5 -5
  9. package/dist/components.mjs +236 -231
  10. package/dist/i18n-B8QOMuFD.mjs +46 -0
  11. package/dist/index.mjs +4 -91
  12. package/dist/integrations.mjs +3 -14
  13. package/dist/layouts.mjs +228 -236
  14. package/dist/responsive.mjs +31 -36
  15. package/dist/slot.mjs +11 -17
  16. package/dist/toastDSV2-D3xDZPe5.mjs +105 -0
  17. package/dist/types/index.d.ts +19 -1
  18. package/dist/types/src/components/Toast/ToastMessage.vue.d.ts +17 -7
  19. package/dist/types/src/components/Toast/toastDSV2.d.ts +89 -64
  20. package/dist/types/src/components/UiActionBar/types.d.ts +2 -0
  21. package/dist/types/src/components/UiAvatar/UiAvatar.vue.d.ts +4 -2
  22. package/dist/types/src/components/UiAvatarList/UiAvatarList.vue.d.ts +3 -2
  23. package/dist/types/src/components/UiBanner/UiBanner.vue.d.ts +13 -1
  24. package/dist/types/src/components/UiButton/UiButton.vue.d.ts +95 -35
  25. package/dist/types/src/components/UiButtonGroup/UiButtonGroup.vue.d.ts +8 -2
  26. package/dist/types/src/components/UiButtonGroup/types.d.ts +4 -0
  27. package/dist/types/src/components/UiChoice/UiChoice.vue.d.ts +71 -0
  28. package/dist/types/src/components/UiChoice/index.d.ts +2 -0
  29. package/dist/types/src/components/UiChoice/types.d.ts +7 -0
  30. package/dist/types/src/components/UiColorField/UiColorField.vue.d.ts +1 -1
  31. package/dist/types/src/components/UiColorPicker/UiColorPicker.vue.d.ts +2 -2
  32. package/dist/types/src/components/UiCombobox/UiCombobox.types.d.ts +47 -0
  33. package/dist/types/src/components/UiCombobox/UiCombobox.vue.d.ts +40 -0
  34. package/dist/types/src/components/UiCombobox/index.d.ts +2 -0
  35. package/dist/types/src/components/UiDataTable/UiDataTable.types.d.ts +46 -0
  36. package/dist/types/src/components/UiDataTable/UiDataTable.vue.d.ts +136 -0
  37. package/dist/types/src/components/UiDataTable/index.d.ts +5 -0
  38. package/dist/types/src/components/UiDrawer/UiDrawer.vue.d.ts +28 -0
  39. package/dist/types/src/components/UiDrawer/UiDrawerContent.vue.d.ts +18 -0
  40. package/dist/types/src/components/UiDrawer/UiDrawerTrigger.vue.d.ts +14 -0
  41. package/dist/types/src/components/UiDropdown/DropdownItemCheckbox.vue.d.ts +3 -0
  42. package/dist/types/src/components/UiDropdown/UiDropdownContent.vue.d.ts +10 -0
  43. package/dist/types/src/components/UiDropdown/UiDropdownGroup.vue.d.ts +17 -0
  44. package/dist/types/src/components/UiDropdown/UiDropdownItem.vue.d.ts +8 -5
  45. package/dist/types/src/components/UiDropdown/UiDropdownTrigger.vue.d.ts +21 -5
  46. package/dist/types/src/components/UiDropdown/index.d.ts +1 -0
  47. package/dist/types/src/components/UiEmojiPickerList/UiEmojiPickerList.vue.d.ts +22 -0
  48. package/dist/types/src/components/UiEmptyState/UiEmptyState.vue.d.ts +8 -3
  49. package/dist/types/src/components/UiFieldWrapper/UiFieldWrapper.vue.d.ts +2 -2
  50. package/dist/types/src/components/UiInputCheckbox/CheckboxGlyph.vue.d.ts +17 -0
  51. package/dist/types/src/components/UiInputCheckbox/UiInputCheckbox.vue.d.ts +35 -4
  52. package/dist/types/src/components/UiInputRadio/RadioGlyph.vue.d.ts +19 -0
  53. package/dist/types/src/components/UiInputRadio/UiInputRadio.vue.d.ts +21 -8
  54. package/dist/types/src/components/UiInputRadio/UiInputRadioGroup.vue.d.ts +6 -1
  55. package/dist/types/src/components/UiInputRadio/types.d.ts +1 -1
  56. package/dist/types/src/components/UiInputSelect/UiInputSelect.vue.d.ts +5 -5
  57. package/dist/types/src/components/UiInputTextarea/UiInputTextarea.vue.d.ts +5 -5
  58. package/dist/types/src/components/UiListItem/UiListItem.vue.d.ts +18 -4
  59. package/dist/types/src/components/UiLoader/UiSpinnerIcon.vue.d.ts +3 -0
  60. package/dist/types/src/components/UiMenu/UiMenuContent.vue.d.ts +15 -2
  61. package/dist/types/src/components/UiMenu/UiMenuItem.vue.d.ts +9 -3
  62. package/dist/types/src/components/UiNestedOptions/UiNestedOptions.vue.d.ts +13 -0
  63. package/dist/types/src/components/UiPage/UiPage.vue.d.ts +79 -15
  64. package/dist/types/src/components/UiPagination/UiPagination.vue.d.ts +36 -0
  65. package/dist/types/src/components/UiPagination/index.d.ts +2 -0
  66. package/dist/types/src/components/UiPagination/types.d.ts +4 -0
  67. package/dist/types/src/components/UiPane/UiPane.vue.d.ts +22 -0
  68. package/dist/types/src/components/UiPane/UiPaneContent.vue.d.ts +75 -0
  69. package/dist/types/src/components/UiPane/UiPaneTrigger.vue.d.ts +14 -0
  70. package/dist/types/src/components/UiPane/index.d.ts +5 -0
  71. package/dist/types/src/components/UiRating/UiRating.vue.d.ts +62 -0
  72. package/dist/types/src/components/UiRating/types.d.ts +1 -0
  73. package/dist/types/src/components/UiRoomButton/UiRoomButton.vue.d.ts +5 -3
  74. package/dist/types/src/components/UiRoomCountdown/UiRoomCountdown.vue.d.ts +32 -0
  75. package/dist/types/src/components/UiShell/UiShell.vue.d.ts +3 -0
  76. package/dist/types/src/components/UiSideMenu/UiSideMenu.vue.d.ts +22 -1
  77. package/dist/types/src/components/UiSideMenu/UiSideMenuItemContent.vue.d.ts +2 -2
  78. package/dist/types/src/components/UiSwitch/UiSwitch.vue.d.ts +10 -5
  79. package/dist/types/src/components/UiTable/UiTable.vue.d.ts +13 -4
  80. package/dist/types/src/components/UiTable/UiTableActionsCell.vue.d.ts +49 -0
  81. package/dist/types/src/components/UiTable/UiTableActionsHeaderCell.vue.d.ts +3 -0
  82. package/dist/types/src/components/UiTable/UiTableBody.vue.d.ts +11 -1
  83. package/dist/types/src/components/UiTable/UiTableCell.vue.d.ts +16 -1
  84. package/dist/types/src/components/UiTable/UiTableHeaderCell.vue.d.ts +31 -2
  85. package/dist/types/src/components/UiTable/UiTableRow.vue.d.ts +32 -2
  86. package/dist/types/src/components/UiTable/context.d.ts +3 -0
  87. package/dist/types/src/components/UiTable/index.d.ts +4 -0
  88. package/dist/types/src/components/UiTabs/UiTabs.vue.d.ts +3 -0
  89. package/dist/types/src/components/UiTag/UiTag.types.d.ts +25 -0
  90. package/dist/types/src/components/UiTag/UiTag.vue.d.ts +5 -26
  91. package/dist/types/src/components/UiTag/index.d.ts +2 -1
  92. package/dist/types/src/components/UiTextField/UiTextField.vue.d.ts +10 -5
  93. package/dist/types/src/components/UiTooltip/UiTooltipProvider.vue.d.ts +1 -0
  94. package/dist/types/src/components/UiTooltip/UiTooltipTrigger.vue.d.ts +2 -2
  95. package/dist/types/src/composables/storedThemingApplies.d.ts +17 -0
  96. package/dist/types/src/composables/useButtonStyles.d.ts +1 -0
  97. package/dist/types/src/composables/useChoiceboxSurface.d.ts +11 -0
  98. package/dist/types/src/composables/useContentMode.d.ts +7 -9
  99. package/dist/types/src/composables/useControlModes.d.ts +7 -0
  100. package/dist/types/src/composables/useControlShape.d.ts +24 -0
  101. package/dist/types/src/composables/useFieldFocusEvents.d.ts +12 -0
  102. package/dist/types/src/composables/useIconSize.d.ts +2 -0
  103. package/dist/types/src/composables/usePullGesture.d.ts +42 -0
  104. package/dist/types/src/composables/useThemeAndModes.d.ts +4 -0
  105. package/dist/types/src/theming/colorScale.d.ts +165 -0
  106. package/dist/types/src/theming/legacyColorScale.d.ts +27 -0
  107. package/dist/types/src/theming/presetColors.d.ts +11 -0
  108. package/dist/types/src/theming/primitiveTokens.d.ts +2 -0
  109. package/dist/types/src/utils/effectiveOpacity.d.ts +2 -0
  110. package/dist/types/src/utils/numbers.d.ts +1 -2
  111. package/dist/types/src/utils/tokenColor.d.ts +2 -0
  112. package/dist/ui-vue.css +2 -1
  113. package/dist/utils.mjs +165 -194
  114. package/index.d.ts +18 -0
  115. package/index.js +36 -0
  116. package/package.json +26 -21
  117. package/src/components/Toast/LayoutToasts.vue +19 -11
  118. package/src/components/Toast/ToastMessage.vue +125 -68
  119. package/src/components/Toast/toastDSV2.ts +238 -67
  120. package/src/components/UiActionBar/UiActionBar.vue +4 -3
  121. package/src/components/UiActionBar/UiActionBarItem.vue +9 -6
  122. package/src/components/UiActionBar/types.ts +13 -0
  123. package/src/components/UiAvatar/UiAvatar.vue +8 -2
  124. package/src/components/UiAvatarList/UiAvatarList.vue +51 -20
  125. package/src/components/UiBadge/UiBadge.vue +1 -1
  126. package/src/components/UiBanner/UiBanner.vue +71 -21
  127. package/src/components/UiBreadcrumb/UiBreadcrumb.vue +1 -1
  128. package/src/components/UiButton/UiButton.vue +92 -25
  129. package/src/components/UiButtonGroup/UiButtonGroup.vue +21 -17
  130. package/src/components/UiButtonGroup/UiButtonGroupItem.vue +33 -15
  131. package/src/components/UiButtonGroup/types.ts +19 -0
  132. package/src/components/UiCard/UiCard.vue +20 -23
  133. package/src/components/UiChoice/UiChoice.vue +187 -0
  134. package/src/components/UiChoice/index.ts +2 -0
  135. package/src/components/UiChoice/types.ts +11 -0
  136. package/src/components/UiColorField/UiColorField.vue +2 -2
  137. package/src/components/UiColorPicker/UiColorPicker.vue +11 -8
  138. package/src/components/UiCombobox/UiCombobox.types.ts +52 -0
  139. package/src/components/UiCombobox/UiCombobox.vue +296 -0
  140. package/src/components/UiCombobox/index.ts +2 -0
  141. package/src/components/UiDataTable/UiDataTable.types.ts +47 -0
  142. package/src/components/UiDataTable/UiDataTable.vue +422 -0
  143. package/src/components/UiDataTable/index.ts +12 -0
  144. package/src/components/UiDialog/UiDialogContent.vue +22 -7
  145. package/src/components/UiDrawer/UiDrawer.vue +16 -0
  146. package/src/components/UiDrawer/UiDrawerContent.vue +42 -0
  147. package/src/components/UiDrawer/UiDrawerTrigger.vue +17 -0
  148. package/src/components/UiDropdown/DropdownItemCheckbox.vue +10 -0
  149. package/src/components/UiDropdown/UiDropdownContent.vue +32 -21
  150. package/src/components/UiDropdown/UiDropdownGroup.vue +23 -0
  151. package/src/components/UiDropdown/UiDropdownItem.vue +38 -18
  152. package/src/components/UiDropdown/UiDropdownSeparator.vue +1 -1
  153. package/src/components/UiDropdown/UiDropdownTrigger.vue +138 -43
  154. package/src/components/UiDropdown/index.ts +1 -0
  155. package/src/components/UiEmojiPickerList/UiEmojiPickerList.vue +122 -0
  156. package/src/components/UiEmptyState/UiEmptyState.vue +16 -4
  157. package/src/components/UiFieldWrapper/UiFieldWrapper.vue +9 -3
  158. package/src/components/UiHorizontalSeparator/UiHorizontalSeparator.vue +2 -2
  159. package/src/components/UiInputCheckbox/CheckboxGlyph.vue +78 -0
  160. package/src/components/UiInputCheckbox/UiInputCheckbox.vue +213 -177
  161. package/src/components/UiInputEmoji/UiInputEmoji.vue +18 -95
  162. package/src/components/UiInputRadio/RadioGlyph.vue +45 -0
  163. package/src/components/UiInputRadio/UiInputRadio.vue +177 -169
  164. package/src/components/UiInputRadio/UiInputRadioGroup.vue +15 -5
  165. package/src/components/UiInputRadio/types.ts +1 -2
  166. package/src/components/UiInputSelect/UiInputSelect.vue +9 -7
  167. package/src/components/UiInputTextarea/UiInputTextarea.vue +20 -35
  168. package/src/components/UiLabel/UiLabel.vue +1 -1
  169. package/src/components/UiListItem/UiListItem.vue +55 -9
  170. package/src/components/UiLoader/UiLoader.vue +4 -20
  171. package/src/components/UiLoader/UiSpinnerIcon.vue +21 -0
  172. package/src/components/UiMenu/UiMenuContent.vue +24 -3
  173. package/src/components/UiMenu/UiMenuGroup.vue +1 -1
  174. package/src/components/UiMenu/UiMenuItem.vue +14 -3
  175. package/src/components/UiMenu/UiMenuSubContent.vue +1 -1
  176. package/src/components/UiMenu/UiMenuSubTrigger.vue +1 -1
  177. package/src/components/UiNestedOptions/UiNestedOptions.vue +6 -0
  178. package/src/components/UiPage/UiPage.vue +190 -32
  179. package/src/components/UiPagination/UiPagination.vue +99 -0
  180. package/src/components/UiPagination/index.ts +2 -0
  181. package/src/components/UiPagination/types.ts +28 -0
  182. package/src/components/UiPane/UiPane.vue +20 -0
  183. package/src/components/UiPane/UiPaneContent.vue +232 -0
  184. package/src/components/UiPane/UiPaneTrigger.vue +14 -0
  185. package/src/components/UiPane/index.ts +12 -0
  186. package/src/components/UiPopover/UiPopoverContent.vue +21 -1
  187. package/src/components/UiProgress/UiProgress.vue +2 -2
  188. package/src/components/UiRating/UiRating.vue +258 -0
  189. package/src/components/UiRating/types.ts +1 -0
  190. package/src/components/UiRoomButton/UiRoomButton.vue +10 -41
  191. package/src/components/UiRoomCountdown/UiRoomCountdown.vue +376 -0
  192. package/src/components/UiShell/UiShell.vue +9 -3
  193. package/src/components/UiSideMenu/UiSideMenu.vue +155 -18
  194. package/src/components/UiSideMenu/UiSideMenuItemContent.vue +20 -16
  195. package/src/components/UiStepper/UiStepper.vue +3 -16
  196. package/src/components/UiStepper/UiStepperDescription.vue +1 -13
  197. package/src/components/UiStepper/UiStepperIndicator.vue +11 -48
  198. package/src/components/UiStepper/UiStepperItem.vue +1 -8
  199. package/src/components/UiStepper/UiStepperSeparator.vue +5 -16
  200. package/src/components/UiStepper/UiStepperTitle.vue +1 -10
  201. package/src/components/UiSwitch/UiSwitch.vue +44 -28
  202. package/src/components/UiTable/UiTable.vue +98 -8
  203. package/src/components/UiTable/UiTableActionsCell.vue +135 -0
  204. package/src/components/UiTable/UiTableActionsHeaderCell.vue +19 -0
  205. package/src/components/UiTable/UiTableBody.vue +16 -1
  206. package/src/components/UiTable/UiTableCell.vue +33 -16
  207. package/src/components/UiTable/UiTableHeader.vue +6 -5
  208. package/src/components/UiTable/UiTableHeaderCell.vue +61 -9
  209. package/src/components/UiTable/UiTableRow.vue +46 -10
  210. package/src/components/UiTable/context.ts +5 -0
  211. package/src/components/UiTable/index.ts +4 -0
  212. package/src/components/UiTabs/UiTabs.vue +56 -61
  213. package/src/components/UiTag/UiTag.types.ts +28 -0
  214. package/src/components/UiTag/UiTag.vue +24 -42
  215. package/src/components/UiTag/index.ts +2 -0
  216. package/src/components/UiTextField/UiTextField.vue +21 -36
  217. package/src/components/UiTooltip/UiTooltipContent.vue +1 -1
  218. package/src/components/UiTooltip/UiTooltipProvider.vue +3 -0
  219. package/src/components/UiTooltip/UiTooltipTrigger.vue +16 -1
  220. package/src/composables/storedThemingApplies.ts +19 -0
  221. package/src/composables/useButtonStyles.ts +9 -13
  222. package/src/composables/useChoiceboxSurface.ts +36 -0
  223. package/src/composables/useContentMode.ts +29 -16
  224. package/src/composables/useControlModes.ts +11 -0
  225. package/src/composables/useControlShape.ts +34 -0
  226. package/src/composables/useFieldFocusEvents.ts +30 -0
  227. package/src/composables/useIconSize.ts +15 -0
  228. package/src/composables/usePullGesture.ts +142 -0
  229. package/src/composables/useThemeAndModes.ts +28 -1
  230. package/src/css/body.css +16 -1
  231. package/src/css/fonts.css +39 -5
  232. package/src/global.d.ts +36 -0
  233. package/src/theming/colorScale.ts +173 -0
  234. package/src/theming/legacyColorScale.ts +58 -0
  235. package/src/theming/presetColors.ts +33 -0
  236. package/src/theming/primitiveTokens.ts +71 -0
  237. package/src/utils/effectiveOpacity.ts +8 -0
  238. package/src/utils/i18n.ts +6 -0
  239. package/src/utils/numbers.ts +1 -1
  240. package/src/utils/responsive.d.ts +14 -0
  241. package/src/utils/tokenColor.ts +9 -0
  242. package/dist/UiTimelineItem.vue_vue_type_style_index_0_lang-LpdvGf5X.mjs +0 -6093
  243. package/dist/a11y-BhF_nl7L.mjs +0 -159
  244. package/dist/i18n-Cktw9hIu.mjs +0 -49
  245. package/dist/toastDSV2-wMh-UMzW.mjs +0 -74
  246. package/dist/types/src/components/UiAvatar/index.d.ts +0 -1
  247. package/dist/types/src/components/UiAvatarList/index.d.ts +0 -1
  248. package/dist/types/src/components/UiBadge/index.d.ts +0 -1
  249. package/dist/types/src/components/UiBanner/index.d.ts +0 -2
  250. package/dist/types/src/components/UiButtonGroup/index.d.ts +0 -3
  251. package/dist/types/src/components/UiCarousel/index.d.ts +0 -2
  252. package/dist/types/src/components/UiColorField/index.d.ts +0 -2
  253. package/dist/types/src/components/UiDialog/MarketplaceHeaderExample.vue.d.ts +0 -28
  254. package/dist/types/src/components/UiDialog/index.d.ts +0 -7
  255. package/dist/types/src/components/UiFieldWrapper/index.d.ts +0 -1
  256. package/dist/types/src/components/UiInputCheckbox/index.d.ts +0 -2
  257. package/dist/types/src/components/UiInputEmoji/index.d.ts +0 -1
  258. package/dist/types/src/components/UiInputRadio/index.d.ts +0 -3
  259. package/dist/types/src/components/UiInputSelect/index.d.ts +0 -2
  260. package/dist/types/src/components/UiInputTextarea/index.d.ts +0 -2
  261. package/dist/types/src/components/UiMenu/index.d.ts +0 -10
  262. package/dist/types/src/components/UiProgress/index.d.ts +0 -2
  263. package/dist/types/src/components/UiSwitch/index.d.ts +0 -2
  264. package/dist/types/src/components/UiTabs/index.d.ts +0 -2
  265. package/dist/types/src/components/UiTimeline/index.d.ts +0 -2
  266. package/dist/types/src/components/UiTooltip/index.d.ts +0 -4
  267. package/dist/types/src/mixins/DynamicAction.d.ts +0 -30
  268. package/dist/useThemeAndModes-BzYwSOEv.mjs +0 -108
  269. package/src/components/UiAvatar/index.js +0 -1
  270. package/src/components/UiAvatarList/index.js +0 -1
  271. package/src/components/UiBadge/index.ts +0 -2
  272. package/src/components/UiBanner/index.ts +0 -2
  273. package/src/components/UiButtonGroup/index.ts +0 -3
  274. package/src/components/UiCarousel/index.ts +0 -2
  275. package/src/components/UiColorField/index.ts +0 -2
  276. package/src/components/UiDialog/MarketplaceHeaderExample.vue +0 -217
  277. package/src/components/UiDialog/index.ts +0 -18
  278. package/src/components/UiFieldWrapper/index.ts +0 -1
  279. package/src/components/UiInputCheckbox/index.ts +0 -2
  280. package/src/components/UiInputEmoji/index.ts +0 -1
  281. package/src/components/UiInputRadio/index.ts +0 -3
  282. package/src/components/UiInputSelect/index.ts +0 -2
  283. package/src/components/UiInputTextarea/index.ts +0 -2
  284. package/src/components/UiMenu/index.ts +0 -10
  285. package/src/components/UiProgress/index.ts +0 -2
  286. package/src/components/UiSwitch/index.ts +0 -2
  287. package/src/components/UiTabs/index.ts +0 -5
  288. package/src/components/UiTag/index.js +0 -1
  289. package/src/components/UiTimeline/index.ts +0 -2
  290. package/src/components/UiTooltip/index.js +0 -4
  291. package/src/mixins/DynamicAction.js +0 -61
@@ -1,217 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, ref, type Slot } from 'vue'
3
-
4
- interface UiDialogMarketplaceHeaderProps {
5
- icon?: string
6
- logo?: string
7
- title: string
8
- description?: string
9
- gradientColor?: string
10
- images?: string[]
11
- }
12
-
13
- const props = withDefaults(defineProps<UiDialogMarketplaceHeaderProps>(), {
14
- icon: undefined,
15
- logo: undefined,
16
- description: undefined,
17
- gradientColor: '#0b42c3', // Default primary color
18
- images: () => [],
19
- })
20
-
21
- defineSlots<{
22
- switch(): Slot
23
- carousel(): Slot
24
- }>()
25
-
26
- // Convert hex to HSL for gradient
27
- const hexToHSL = (hex: string) => {
28
- // Remove # if present
29
- const sanitizedHex = hex.replace('#', '')
30
-
31
- // Convert hex to RGB
32
- const r = Number.parseInt(sanitizedHex.substring(0, 2), 16) / 255
33
- const g = Number.parseInt(sanitizedHex.substring(2, 4), 16) / 255
34
- const b = Number.parseInt(sanitizedHex.substring(4, 6), 16) / 255
35
-
36
- const max = Math.max(r, g, b)
37
- const min = Math.min(r, g, b)
38
- let h = 0
39
-
40
- if (max !== min) {
41
- const d = max - min
42
- if (max === r) {
43
- h = ((g - b) / d + (g < b ? 6 : 0)) / 6
44
- } else if (max === g) {
45
- h = ((b - r) / d + 2) / 6
46
- } else {
47
- h = ((r - g) / d + 4) / 6
48
- }
49
- }
50
-
51
- return Math.round(h * 360)
52
- }
53
-
54
- const hue = computed(() => hexToHSL(props.gradientColor))
55
-
56
- // Current image index for simple carousel
57
- const currentImageIndex = ref(0)
58
-
59
- const hasImages = computed(() => props.images.length > 0)
60
-
61
- const nextImage = () => {
62
- if (props.images.length > 0) {
63
- currentImageIndex.value = (currentImageIndex.value + 1) % props.images.length
64
- }
65
- }
66
-
67
- const prevImage = () => {
68
- if (props.images.length > 0) {
69
- currentImageIndex.value = (currentImageIndex.value - 1 + props.images.length) % props.images.length
70
- }
71
- }
72
-
73
- const goToImage = (index: number) => {
74
- currentImageIndex.value = index
75
- }
76
- </script>
77
-
78
- <template>
79
- <div
80
- class="py-16 max-sm:py-8 flex transition-all duration-100 ease-in items-center custom-gradient bg-no-repeat bg-left-bottom"
81
- >
82
- <div class="w-full flex items-center relative">
83
- <div class="grid grid-cols-1 md:grid-cols-[280px_1fr] w-full px-8 lg:px-16 gap-8">
84
- <!-- Left side: Icon/Logo + Title + Description + Switch -->
85
- <div class="flex flex-col justify-center w-full">
86
- <div class="flex flex-col flex-wrap gap-4 w-full">
87
- <!-- Icon -->
88
- <div
89
- v-if="icon"
90
- class="w-12 h-12 grid place-items-center bg-cover bg-center bg-no-repeat rounded-full bg-surface-primary-alpha-100"
91
- >
92
- <span :class="[icon, 'text-2xl text-text-primary-base']" />
93
- </div>
94
-
95
- <!-- Logo -->
96
- <div
97
- v-else-if="logo"
98
- class="w-12 h-12 flex-none bg-center bg-contain bg-no-repeat rounded-full"
99
- :style="{ backgroundImage: `url(${logo})` }"
100
- />
101
-
102
- <!-- Title and Description -->
103
- <div class="flex flex-col gap-2 flex-1 min-w-0">
104
- <h2 class="text-text-neutral-base text-title-md-bold">
105
- {{ title }}
106
- </h2>
107
- <p
108
- v-if="description"
109
- class="text-text-neutral-secondary text-content-text-lg-regular"
110
- >
111
- {{ description }}
112
- </p>
113
- </div>
114
-
115
- <!-- Switch/Toggle Slot -->
116
- <div
117
- v-if="$slots.switch"
118
- class="transition-all duration-400 ease-in-out"
119
- >
120
- <slot name="switch" />
121
- </div>
122
- </div>
123
- </div>
124
-
125
- <!-- Right side: Carousel or custom content -->
126
- <div class="w-full grid place-items-center">
127
- <div class="grid relative place-items-center pt-8 lg:pt-0">
128
- <!-- Custom carousel slot -->
129
- <slot name="carousel">
130
- <!-- Default carousel implementation -->
131
- <div
132
- v-if="hasImages"
133
- class="relative w-full aspect-video bg-surface-neutral-alpha-100 rounded-lg overflow-hidden"
134
- >
135
- <!-- Images -->
136
- <TransitionGroup name="fade">
137
- <img
138
- v-for="(image, index) in images"
139
- v-show="index === currentImageIndex"
140
- :key="image"
141
- :src="image"
142
- :alt="`Screenshot ${index + 1}`"
143
- class="absolute inset-0 w-full h-full object-cover"
144
- >
145
- </TransitionGroup>
146
-
147
- <!-- Navigation arrows -->
148
- <button
149
- v-if="images.length > 1"
150
- class="absolute left-4 top-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-surface-neutral-bg-main/80 backdrop-blur-xs flex items-center justify-center hover:bg-surface-neutral-bg-main transition-colors"
151
- @click="prevImage"
152
- >
153
- <span class="i-ph-caret-left w-4 h-4 text-text-neutral-base" />
154
- </button>
155
- <button
156
- v-if="images.length > 1"
157
- class="absolute right-4 top-1/2 -translate-y-1/2 w-8 h-8 rounded-full bg-surface-neutral-bg-main/80 backdrop-blur-xs flex items-center justify-center hover:bg-surface-neutral-bg-main transition-colors"
158
- @click="nextImage"
159
- >
160
- <span class="i-ph-caret-right w-4 h-4 text-text-neutral-base" />
161
- </button>
162
-
163
- <!-- Dots indicator -->
164
- <div
165
- v-if="images.length > 1"
166
- class="absolute bottom-4 left-1/2 -translate-x-1/2 flex gap-2"
167
- >
168
- <button
169
- v-for="(_, index) in images"
170
- :key="index"
171
- :class="[
172
- 'w-2 h-2 rounded-full transition-all',
173
- index === currentImageIndex
174
- ? 'bg-surface-neutral-bg-main w-6'
175
- : 'bg-surface-neutral-bg-main/50',
176
- ]"
177
- @click="goToImage(index)"
178
- />
179
- </div>
180
- </div>
181
-
182
- <!-- Placeholder when no images -->
183
- <div
184
- v-else
185
- class="w-full aspect-video min-h-[288px] bg-surface-neutral-alpha-100 rounded-lg flex items-center justify-center"
186
- >
187
- <span class="text-text-neutral-tertiary text-content-text-md-regular">
188
- Integration Screenshots
189
- </span>
190
- </div>
191
- </slot>
192
- </div>
193
- </div>
194
- </div>
195
- </div>
196
- </div>
197
- </template>
198
-
199
- <style scoped>
200
- .custom-gradient {
201
- background:
202
- radial-gradient(57.62% 57.62% at 8.3% 63.87%, hsla(v-bind(hue), 89%, 61%, 0.2) 0%, hsla(v-bind(hue), 71%, 99%, 0) 100%),
203
- radial-gradient(45.83% 45.83% at 93.65% 51.82%, hsla(v-bind(hue), 89%, 61%, 0.1) 0%, hsla(0, 0%, 100%, 0.1) 100%),
204
- linear-gradient(0deg, #FFFFFF, #FFFFFF);
205
- background-attachment: fixed;
206
- }
207
-
208
- .fade-enter-active,
209
- .fade-leave-active {
210
- transition: opacity 0.5s ease;
211
- }
212
-
213
- .fade-enter-from,
214
- .fade-leave-to {
215
- opacity: 0;
216
- }
217
- </style>
@@ -1,18 +0,0 @@
1
- // UiDialog exports
2
- export { default as UiDialog } from './UiDialog.vue'
3
- export { default as UiDialogTrigger } from './UiDialogTrigger.vue'
4
- export { default as UiDialogContent } from './UiDialogContent.vue'
5
- export { default as UiDialogFooter } from './UiDialogFooter.vue'
6
- export { default as UiDialogClose } from './UiDialogClose.vue'
7
- export { default as UiDialogMarketplaceHeader } from './MarketplaceHeaderExample.vue'
8
-
9
- // Re-export useful Reka UI types and components for advanced usage
10
- export {
11
- DialogClose,
12
- DialogDescription,
13
- DialogTitle,
14
- type DialogRootProps,
15
- type DialogRootEmits,
16
- type DialogContentProps,
17
- type DialogContentEmits,
18
- } from 'reka-ui'
@@ -1 +0,0 @@
1
- export { default as UiFieldWrapper } from './UiFieldWrapper.vue'
@@ -1,2 +0,0 @@
1
- export { default as UiInputCheckbox } from './UiInputCheckbox.vue'
2
- export type { CheckboxSize } from './types'
@@ -1 +0,0 @@
1
- export { default as UiInputEmoji } from './UiInputEmoji.vue'
@@ -1,3 +0,0 @@
1
- export { default as UiInputRadio } from './UiInputRadio.vue'
2
- export { default as UiInputRadioGroup } from './UiInputRadioGroup.vue'
3
- export type { RadioSize, RadioValue, RadioVariant } from './types'
@@ -1,2 +0,0 @@
1
- export { default as UiInputSelect } from './UiInputSelect.vue'
2
- export type { SelectSize } from './types'
@@ -1,2 +0,0 @@
1
- export { default as UiInputTextarea } from './UiInputTextarea.vue'
2
- export type { TextareaSize } from './types'
@@ -1,10 +0,0 @@
1
- export { default as UiMenu } from './UiMenu.vue'
2
- export { default as UiMenuTrigger } from './UiMenuTrigger.vue'
3
- export { default as UiMenuContent } from './UiMenuContent.vue'
4
- export { default as UiMenuItem } from './UiMenuItem.vue'
5
- export { default as UiMenuGroup } from './UiMenuGroup.vue'
6
- export { default as UiMenuLabel } from './UiMenuLabel.vue'
7
- export { default as UiMenuSub } from './UiMenuSub.vue'
8
- export { default as UiMenuSubTrigger } from './UiMenuSubTrigger.vue'
9
- export { default as UiMenuSubContent } from './UiMenuSubContent.vue'
10
- export { default as UiMenuSeparator } from './UiMenuSeparator.vue'
@@ -1,2 +0,0 @@
1
- export { default as UiProgress } from './UiProgress.vue'
2
- export * from './types'
@@ -1,2 +0,0 @@
1
- export { default as UiSwitch } from './UiSwitch.vue'
2
- export type { SwitchColor, SwitchPosition, SwitchSize } from './types'
@@ -1,5 +0,0 @@
1
- // UiTabs exports
2
- export { default as UiTabs } from './UiTabs.vue'
3
-
4
- // Re-export types
5
- export type { UiTabsProps, Tab } from './UiTabs.vue'
@@ -1 +0,0 @@
1
- export { default } from './UiTag.vue'
@@ -1,2 +0,0 @@
1
- export { default as UiTimeline } from './UiTimeline.vue'
2
- export { default as UiTimelineItem } from './UiTimelineItem.vue'
@@ -1,4 +0,0 @@
1
- export { default as UiTooltip } from './UiTooltip.vue'
2
- export { default as UiTooltipTrigger } from './UiTooltipTrigger.vue'
3
- export { default as UiTooltipContent } from './UiTooltipContent.vue'
4
- export { default as UiTooltipProvider } from './UiTooltipProvider.vue'
@@ -1,61 +0,0 @@
1
- // @vue/component
2
- export default {
3
- props: {
4
- href: {
5
- type: String,
6
- default: null,
7
- },
8
- to: {
9
- type: Object,
10
- default: null,
11
- },
12
- type: {
13
- type: String,
14
- default: 'submit',
15
- },
16
- // eslint-disable-next-line vue/require-prop-types
17
- value: {
18
- default: null,
19
- },
20
- },
21
-
22
- computed: {
23
- component () {
24
- const isDisabled = this.disabled || this.loading
25
-
26
- if (this.to) {
27
- return {
28
- is: 'router-link',
29
- props: {
30
- to: this.to,
31
- // @TODO vue3 check if we need to have a replacement for this
32
- // exact: !this.activePage,
33
- disabled: isDisabled,
34
- },
35
- }
36
- } else if (this.href) {
37
- return {
38
- is: 'a',
39
- props: {
40
- href: isDisabled
41
- ? undefined
42
- : this.href,
43
- },
44
- }
45
- } else if (this.$attrs.tag) {
46
- return {
47
- is: this.$attrs.tag,
48
- props: {},
49
- }
50
- } else {
51
- return {
52
- is: 'button',
53
- props: {
54
- type: this.type,
55
- disabled: isDisabled,
56
- },
57
- }
58
- }
59
- },
60
- },
61
- }