@levo-so/studio 0.1.60 → 0.1.62

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 (254) hide show
  1. package/dist/{Beams-BMno1Tvc.js → Beams-sKsW_tr4.js} +22 -28
  2. package/dist/{Dots-DTupNond.js → Dots-BEIutbKS.js} +44 -40
  3. package/dist/{Gradient-BzroE-hh.js → Gradient-DAR7R3Mz.js} +2 -2
  4. package/dist/Grid-BuKIXWMJ.js +174 -0
  5. package/dist/{MessageCard-D9UDjWQS.js → MessageCard-C8v6oHmf.js} +7 -12
  6. package/dist/{Waves-E46HcLxm.js → Waves-C8qlIS1W.js} +29 -80
  7. package/dist/bridge/Highlighter.d.ts +3 -5
  8. package/dist/bridge/StudioPagePreview.d.ts +2 -2
  9. package/dist/bridge/StudioPreview.d.ts +1 -1
  10. package/dist/bridge/hooks/useElementTracker.d.ts +9 -0
  11. package/dist/bridge/index.d.ts +3 -3
  12. package/dist/bridge/utils.d.ts +1 -4
  13. package/dist/components/AnimatedBlock.d.ts +50 -0
  14. package/dist/components/backgroundPresets/exports.d.ts +1 -1
  15. package/dist/components/backgroundPresets/presetSystem.d.ts +2 -2
  16. package/dist/components/bookingCard/BookingCard.d.ts +65 -0
  17. package/dist/components/bookingCard/index.d.ts +2 -0
  18. package/dist/components/bookingModal/BookingConfirmation.d.ts +48 -0
  19. package/dist/components/bookingModal/BookingModal.d.ts +19 -0
  20. package/dist/components/bookingModal/BookingSummary.d.ts +34 -0
  21. package/dist/components/bookingModal/index.d.ts +4 -0
  22. package/dist/components/index.d.ts +1 -0
  23. package/dist/components/integrationFilters/FieldRenderer.d.ts +3 -0
  24. package/dist/components/integrationFilters/IntegrationFilters.d.ts +1 -1
  25. package/dist/components/integrationFilters/fields/DropdownField.d.ts +1 -1
  26. package/dist/components/integrationFilters/fields/TextField.d.ts +1 -1
  27. package/dist/components/registerModal/AttendeeForm.d.ts +27 -0
  28. package/dist/components/registerModal/CouponView.d.ts +14 -0
  29. package/dist/components/registerModal/TicketSelectionStep.d.ts +15 -0
  30. package/dist/components/registerModal/utils.d.ts +85 -1
  31. package/dist/components/stripePaymentModal/StripePaymentModal.d.ts +22 -0
  32. package/dist/components/stripePaymentModal/index.d.ts +3 -0
  33. package/dist/components/ui/Calendar.d.ts +1 -1
  34. package/dist/components/ui/base/avatar.d.ts +1 -1
  35. package/dist/components/ui/base/index.d.ts +2 -1
  36. package/dist/components/ui/base/input.d.ts +1 -1
  37. package/dist/components/ui/base/textarea.d.ts +1 -1
  38. package/dist/components/ui/base/tooltip.d.ts +17 -0
  39. package/dist/components/ui/index.d.ts +2 -1
  40. package/dist/components/withBlockProps.d.ts +6 -14
  41. package/dist/constants/animation.d.ts +10 -0
  42. package/dist/contentEngine/content.d.ts +8 -4
  43. package/dist/contentEngine/index.d.ts +3 -3
  44. package/dist/contentEngine/themeUtils.d.ts +13 -0
  45. package/dist/context/ForumContext.d.ts +48 -0
  46. package/dist/core/AccessManager/index.d.ts +1 -1
  47. package/dist/core/LevoBlock.d.ts +1 -1
  48. package/dist/core/LevoPage.d.ts +2 -2
  49. package/dist/core/index.d.ts +1 -1
  50. package/dist/elements/AlertDialog/index.d.ts +23 -0
  51. package/dist/elements/Carousel.d.ts +1 -1
  52. package/dist/elements/Tabs.d.ts +1 -1
  53. package/dist/elements/UserMenu.d.ts +1 -1
  54. package/dist/elements/accordion/index.d.ts +1 -1
  55. package/dist/elements/dialog/index.d.ts +1 -1
  56. package/dist/elements/forum/ForumPost.d.ts +2 -0
  57. package/dist/elements/forum/SearchInput.d.ts +5 -0
  58. package/dist/elements/forum/categoryFilter/CategoryFilter.d.ts +16 -0
  59. package/dist/elements/forum/categoryFilter/index.d.ts +2 -0
  60. package/dist/elements/forum/comments/Comment.d.ts +4 -1
  61. package/dist/elements/forum/comments/Comments.d.ts +1 -0
  62. package/dist/elements/forum/comments/ReplyBox.d.ts +1 -0
  63. package/dist/elements/forum/comments/commentUtility.d.ts +4 -1
  64. package/dist/elements/forum/createForumPost/CreateForumPost.d.ts +9 -0
  65. package/dist/elements/forum/createForumPost/CreateForumPostModal.d.ts +87 -0
  66. package/dist/elements/forum/createForumPost/index.d.ts +2 -0
  67. package/dist/elements/forum/index.d.ts +6 -1
  68. package/dist/elements/forum/restrictionOverlays/CommentsRestrictionOverlay.d.ts +16 -0
  69. package/dist/elements/forum/restrictionOverlays/JoinRequestForm.d.ts +14 -0
  70. package/dist/elements/forum/restrictionOverlays/PendingRequestState.d.ts +11 -0
  71. package/dist/elements/forum/restrictionOverlays/PostsRestrictionOverlay.d.ts +16 -0
  72. package/dist/elements/forum/restrictionOverlays/index.d.ts +5 -0
  73. package/dist/elements/forum/utility/index.d.ts +15 -1
  74. package/dist/elements/index.d.ts +10 -10
  75. package/dist/elements-BxhlsyhI.js +9 -0
  76. package/dist/hooks/index.d.ts +3 -0
  77. package/dist/hooks/useLogin.d.ts +1 -1
  78. package/dist/hooks/useStripePayment.d.ts +49 -0
  79. package/dist/index-BJrh8CwF.js +16197 -0
  80. package/dist/{index-BkICuRR-.js → index-BYXw6aHi.js} +3 -4
  81. package/dist/index-CV5mr-8e.js +365 -0
  82. package/dist/{index-a__5b49U.js → index-CXtfbmpx.js} +5 -15
  83. package/dist/index-CgUU2EbC.js +765 -0
  84. package/dist/index-DsAqikcl.js +29 -0
  85. package/dist/{index-BNwqk7Nf.js → index-DxsNKR4p.js} +3 -3
  86. package/dist/{index-DHHPZcEh.js → index-IcG2wuuE.js} +1 -8
  87. package/dist/index.d.ts +16 -13
  88. package/dist/index.js +159 -121
  89. package/dist/interfaces/block.d.ts +1 -1
  90. package/dist/interfaces/levoBlock.d.ts +61 -3
  91. package/dist/interfaces/sites.d.ts +5 -3
  92. package/dist/interfaces/theme.d.ts +2 -0
  93. package/dist/pixel/parserUtil.d.ts +1 -0
  94. package/dist/providers/AuthProvider.d.ts +1 -0
  95. package/dist/providers/BlockContext.d.ts +1 -1
  96. package/dist/providers/LazyMotionProvider.d.ts +15 -0
  97. package/dist/providers/index.d.ts +1 -0
  98. package/dist/studio.css +1 -1
  99. package/dist/utils/colorUtils.d.ts +7 -0
  100. package/dist/utils/getKeysWithValue.d.ts +1 -1
  101. package/dist/utils/string.d.ts +7 -0
  102. package/dist/utils/withBlockPropsUtils.d.ts +6 -55
  103. package/package.json +19 -19
  104. package/dist/Grid-t3zbAQxh.js +0 -184
  105. package/dist/blockSmith/ContentSchemaGenerator.d.ts.map +0 -1
  106. package/dist/blockSmith/DefaultContentGenerator.d.ts.map +0 -1
  107. package/dist/blockSmith/DefaultStylesGenerator.d.ts.map +0 -1
  108. package/dist/blockSmith/index.d.ts.map +0 -1
  109. package/dist/blockSmith/variablePropertMap.d.ts.map +0 -1
  110. package/dist/bridge/Highlighter.d.ts.map +0 -1
  111. package/dist/bridge/PreviewHighlighter.d.ts.map +0 -1
  112. package/dist/bridge/StudioBlockPreview.d.ts.map +0 -1
  113. package/dist/bridge/StudioPagePreview.d.ts.map +0 -1
  114. package/dist/bridge/StudioPreview.d.ts.map +0 -1
  115. package/dist/bridge/constants.d.ts.map +0 -1
  116. package/dist/bridge/index.d.ts.map +0 -1
  117. package/dist/bridge/types.d.ts.map +0 -1
  118. package/dist/bridge/utils.d.ts.map +0 -1
  119. package/dist/components/ActionWrapper.d.ts.map +0 -1
  120. package/dist/components/BackgroundVideo.d.ts.map +0 -1
  121. package/dist/components/LoginForm/AuthMethodRenderer.d.ts.map +0 -1
  122. package/dist/components/LoginForm/ErrorDisplay.d.ts.map +0 -1
  123. package/dist/components/LoginForm/GoogleOAuth.d.ts.map +0 -1
  124. package/dist/components/LoginForm/MagicLinkAuthForm.d.ts.map +0 -1
  125. package/dist/components/LoginForm/OAuthSection.d.ts.map +0 -1
  126. package/dist/components/LoginForm/OtpAuthForm.d.ts.map +0 -1
  127. package/dist/components/LoginForm/WhatsAppAuthForm.d.ts.map +0 -1
  128. package/dist/components/LoginForm/index.d.ts.map +0 -1
  129. package/dist/components/LoginModal/index.d.ts.map +0 -1
  130. package/dist/components/accessCard/EntryCard/index.d.ts.map +0 -1
  131. package/dist/components/accessCard/LoginCard/index.d.ts.map +0 -1
  132. package/dist/components/accessCard/MessageCard.d.ts.map +0 -1
  133. package/dist/components/accessCard/MessageFooter/index.d.ts.map +0 -1
  134. package/dist/components/accessCard/card/index.d.ts.map +0 -1
  135. package/dist/components/backgroundPresets/Beams.d.ts.map +0 -1
  136. package/dist/components/backgroundPresets/Dots.d.ts.map +0 -1
  137. package/dist/components/backgroundPresets/Gradient.d.ts.map +0 -1
  138. package/dist/components/backgroundPresets/Grid.d.ts.map +0 -1
  139. package/dist/components/backgroundPresets/Waves.d.ts.map +0 -1
  140. package/dist/components/backgroundPresets/exports.d.ts.map +0 -1
  141. package/dist/components/backgroundPresets/index.d.ts.map +0 -1
  142. package/dist/components/backgroundPresets/presetSystem.d.ts.map +0 -1
  143. package/dist/components/backgroundPresets/presetUtils.d.ts.map +0 -1
  144. package/dist/components/backgroundPresets/presets.d.ts.map +0 -1
  145. package/dist/components/index.d.ts.map +0 -1
  146. package/dist/components/integrationFilters/FieldRenderer.d.ts.map +0 -1
  147. package/dist/components/integrationFilters/IntegrationFilters.d.ts.map +0 -1
  148. package/dist/components/integrationFilters/fields/DropdownField.d.ts.map +0 -1
  149. package/dist/components/integrationFilters/fields/TextField.d.ts.map +0 -1
  150. package/dist/components/registerModal/RegisterModal.d.ts.map +0 -1
  151. package/dist/components/registerModal/RegistrationConfirmationModal.d.ts.map +0 -1
  152. package/dist/components/registerModal/useCustomDisclosure.d.ts.map +0 -1
  153. package/dist/components/registerModal/utils.d.ts.map +0 -1
  154. package/dist/components/shared/EmailInput/index.d.ts.map +0 -1
  155. package/dist/components/shared/MagicLinkSuccess/index.d.ts.map +0 -1
  156. package/dist/components/shared/OTPInput/index.d.ts.map +0 -1
  157. package/dist/components/shared/PhoneInput/index.d.ts.map +0 -1
  158. package/dist/components/ui/Calendar.d.ts.map +0 -1
  159. package/dist/components/ui/FlippingText.d.ts.map +0 -1
  160. package/dist/components/ui/StatefulButton/index.d.ts.map +0 -1
  161. package/dist/components/ui/base/avatar.d.ts.map +0 -1
  162. package/dist/components/ui/base/index.d.ts.map +0 -1
  163. package/dist/components/ui/base/input.d.ts.map +0 -1
  164. package/dist/components/ui/base/skeleton.d.ts.map +0 -1
  165. package/dist/components/ui/base/textarea.d.ts.map +0 -1
  166. package/dist/components/ui/form/FormInput.d.ts.map +0 -1
  167. package/dist/components/ui/form/FormSelect.d.ts.map +0 -1
  168. package/dist/components/ui/form/FormTextarea.d.ts.map +0 -1
  169. package/dist/components/ui/form/utils/FieldError.d.ts.map +0 -1
  170. package/dist/components/ui/form/utils/FieldWrapper.d.ts.map +0 -1
  171. package/dist/components/ui/form/utils/FormHelperText.d.ts.map +0 -1
  172. package/dist/components/ui/form/utils/FormLabel.d.ts.map +0 -1
  173. package/dist/components/ui/index.d.ts.map +0 -1
  174. package/dist/components/withBlockProps copy.d.ts +0 -61
  175. package/dist/components/withBlockProps copy.d.ts.map +0 -1
  176. package/dist/components/withBlockProps.d.ts.map +0 -1
  177. package/dist/constants/authentication.d.ts.map +0 -1
  178. package/dist/contentEngine/cache.d.ts.map +0 -1
  179. package/dist/contentEngine/content.d.ts.map +0 -1
  180. package/dist/contentEngine/getPage.d.ts.map +0 -1
  181. package/dist/contentEngine/head_code.d.ts.map +0 -1
  182. package/dist/contentEngine/index.d.ts.map +0 -1
  183. package/dist/contentEngine/sourceFetcher.d.ts.map +0 -1
  184. package/dist/contentEngine/themeUtils.d.ts.map +0 -1
  185. package/dist/contentEngine/types.d.ts.map +0 -1
  186. package/dist/contentEngine/urlBuilder.d.ts.map +0 -1
  187. package/dist/contentEngine/useContentEngine.d.ts.map +0 -1
  188. package/dist/contentEngine/useContextEngine.d.ts.map +0 -1
  189. package/dist/context/ModalManager.d.ts.map +0 -1
  190. package/dist/core/AccessManager/index.d.ts.map +0 -1
  191. package/dist/core/BlockRegistry.d.ts.map +0 -1
  192. package/dist/core/LevoBlock.d.ts.map +0 -1
  193. package/dist/core/LevoPage.d.ts.map +0 -1
  194. package/dist/core/index.d.ts.map +0 -1
  195. package/dist/elements/Box.d.ts.map +0 -1
  196. package/dist/elements/Button.d.ts.map +0 -1
  197. package/dist/elements/Carousel.d.ts.map +0 -1
  198. package/dist/elements/Container.d.ts.map +0 -1
  199. package/dist/elements/EditForm.d.ts.map +0 -1
  200. package/dist/elements/Form.d.ts.map +0 -1
  201. package/dist/elements/Heading.d.ts.map +0 -1
  202. package/dist/elements/Icon.d.ts.map +0 -1
  203. package/dist/elements/Iframe.d.ts.map +0 -1
  204. package/dist/elements/Image.d.ts.map +0 -1
  205. package/dist/elements/Link.d.ts.map +0 -1
  206. package/dist/elements/Media.d.ts.map +0 -1
  207. package/dist/elements/Section.d.ts.map +0 -1
  208. package/dist/elements/Tabs.d.ts.map +0 -1
  209. package/dist/elements/Typography.d.ts.map +0 -1
  210. package/dist/elements/UserMenu.d.ts.map +0 -1
  211. package/dist/elements/accordion/index.d.ts.map +0 -1
  212. package/dist/elements/dialog/index.d.ts.map +0 -1
  213. package/dist/elements/forum/ForumPost.d.ts.map +0 -1
  214. package/dist/elements/forum/ForumPostContentRenderer.d.ts.map +0 -1
  215. package/dist/elements/forum/comments/Comment.d.ts.map +0 -1
  216. package/dist/elements/forum/comments/Comments.d.ts.map +0 -1
  217. package/dist/elements/forum/comments/ReplyBox.d.ts.map +0 -1
  218. package/dist/elements/forum/comments/commentUtility.d.ts.map +0 -1
  219. package/dist/elements/forum/comments/index.d.ts.map +0 -1
  220. package/dist/elements/forum/index.d.ts.map +0 -1
  221. package/dist/elements/forum/utility/Video.d.ts.map +0 -1
  222. package/dist/elements/forum/utility/index.d.ts.map +0 -1
  223. package/dist/elements/index.d.ts.map +0 -1
  224. package/dist/elements/popover/index.d.ts.map +0 -1
  225. package/dist/hooks/useLogin.d.ts.map +0 -1
  226. package/dist/index-D-C30ZH_.js +0 -14748
  227. package/dist/interfaces/block.d.ts.map +0 -1
  228. package/dist/interfaces/contentSchema.d.ts.map +0 -1
  229. package/dist/interfaces/form.d.ts.map +0 -1
  230. package/dist/interfaces/index.d.ts.map +0 -1
  231. package/dist/interfaces/levoBlock.d.ts.map +0 -1
  232. package/dist/interfaces/site.d.ts.map +0 -1
  233. package/dist/interfaces/sites.d.ts.map +0 -1
  234. package/dist/interfaces/theme.d.ts.map +0 -1
  235. package/dist/pixel/constants/borderRadius.d.ts.map +0 -1
  236. package/dist/pixel/constants/colorOptions.d.ts.map +0 -1
  237. package/dist/pixel/constants/fontSizeOptions.d.ts.map +0 -1
  238. package/dist/pixel/constants/marginOptions.d.ts.map +0 -1
  239. package/dist/pixel/constants/spaceOptions.d.ts.map +0 -1
  240. package/dist/pixel/index.d.ts.map +0 -1
  241. package/dist/pixel/optionsMap.d.ts.map +0 -1
  242. package/dist/pixel/parserUtil.d.ts.map +0 -1
  243. package/dist/pixel/propertyMap.d.ts.map +0 -1
  244. package/dist/providers/AuthProvider.d.ts.map +0 -1
  245. package/dist/providers/BlockContext.d.ts.map +0 -1
  246. package/dist/providers/index.d.ts.map +0 -1
  247. package/dist/schemas/authSchemas.d.ts.map +0 -1
  248. package/dist/theme/defaultTheme.d.ts.map +0 -1
  249. package/dist/utils/blockHelpers.d.ts.map +0 -1
  250. package/dist/utils/colorUtils.d.ts.map +0 -1
  251. package/dist/utils/findFieldSchema.d.ts.map +0 -1
  252. package/dist/utils/getKeysWithValue.d.ts.map +0 -1
  253. package/dist/utils/index.d.ts.map +0 -1
  254. package/dist/utils/withBlockPropsUtils.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { IWorkspace } from '@levo-so/core';
2
- import { IBlockInstance, IPageExpanded, ITheme, BlockComponent, ISite } from '../interfaces';
3
2
  import { IPageDataContext } from '../contentEngine';
3
+ import { BlockComponent, IBlockInstance, IPageExpanded, ISite, ITheme } from '../interfaces';
4
4
  export type StudioData = {
5
5
  pageData?: {
6
6
  pageData: IPageExpanded;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tracks an element's position every frame via a shared rAF loop.
3
+ * Handles moving elements (carousels, animations), scroll, resize, and DOM removal.
4
+ */
5
+ export declare function useElementTracker(element: HTMLElement | null): {
6
+ highlightRef: import('react').RefObject<HTMLDivElement | null>;
7
+ isVisible: boolean;
8
+ };
9
+ //# sourceMappingURL=useElementTracker.d.ts.map
@@ -1,6 +1,6 @@
1
- export * from './PreviewHighlighter';
2
- export * from './types';
3
1
  export * from './constants';
4
- export * from './StudioPreview';
5
2
  export { MESSAGE_TYPES } from './constants';
3
+ export * from './PreviewHighlighter';
4
+ export * from './StudioPreview';
5
+ export * from './types';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,16 +1,13 @@
1
- import { ISelection, HighlightRect, IUserHighlight, ISocketUser, SelectionState, IGenerationStatusOverlay, IBlockGenerationInfo } from './types';
1
+ import { HighlightRect, IBlockGenerationInfo, IGenerationStatusOverlay, ISelection, ISocketUser, IUserHighlight, SelectionState } from './types';
2
2
  export declare function getElementCoordinates(element: HTMLElement): HighlightRect;
3
3
  export declare function getSelectionFromElement(element: HTMLElement): ISelection | null;
4
4
  export declare function findElementBySelection(selection: ISelection): HTMLElement | null;
5
5
  export declare function createSelectionState(element: HTMLElement, type: "selected" | "hovered"): SelectionState;
6
6
  export declare function findParentElement(currentSelections: SelectionState): HTMLElement | null;
7
- export declare function updateSelectionRects(selections: SelectionState): SelectionState;
8
7
  export declare function findBlockElementById(blockId: string): HTMLElement | null;
9
8
  export declare function createUserHighlight(user: ISocketUser): IUserHighlight | null;
10
9
  export declare function createUserHighlights(users: ISocketUser[]): IUserHighlight[];
11
- export declare function updateUserHighlightRects(highlights: IUserHighlight[]): IUserHighlight[];
12
10
  export declare function isElementWithinUserSelectedBlock(element: HTMLElement, userHighlights: IUserHighlight[]): boolean;
13
11
  export declare function createGenerationStatusOverlay(blockInfo: IBlockGenerationInfo): IGenerationStatusOverlay | null;
14
12
  export declare function createGenerationStatusOverlays(blocksInfo: IBlockGenerationInfo[]): IGenerationStatusOverlay[];
15
- export declare function updateGenerationStatusOverlayRects(overlays: IGenerationStatusOverlay[]): IGenerationStatusOverlay[];
16
13
  //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ import { AnimationProperties, ScrollAnimationOffset, TransitionConfig, ViewportConfig } from '../interfaces';
3
+ /** Children accepted by AnimatedBlock */
4
+ type BlockChildren = ReactNode;
5
+ /** Scroll-linked animation configuration */
6
+ interface IScrollConfig {
7
+ /** Starting animation state */
8
+ from: AnimationProperties;
9
+ /** Ending animation state */
10
+ to: AnimationProperties;
11
+ /** Scroll offset range for animation timeline */
12
+ offset: ScrollAnimationOffset;
13
+ }
14
+ /** Entry (viewport-triggered) animation configuration */
15
+ interface IEntryConfig {
16
+ /** Starting animation state */
17
+ from: AnimationProperties;
18
+ /** Ending animation state */
19
+ to: AnimationProperties;
20
+ /** Transition timing config */
21
+ transition?: TransitionConfig;
22
+ /** Viewport detection options */
23
+ viewport?: ViewportConfig;
24
+ }
25
+ /** Props for AnimatedBlock component */
26
+ interface IAnimatedBlockProps {
27
+ /** Content to render inside the animated container */
28
+ children: BlockChildren;
29
+ /** Motion component to render (e.g., motion.div) */
30
+ MotionComponent: ComponentType<Record<string, unknown>>;
31
+ /** Props forwarded to the Motion component */
32
+ motionProps: Record<string, unknown>;
33
+ /** Scroll animation config — timeline tied to scroll position */
34
+ scroll?: IScrollConfig;
35
+ /** Entry animation config — plays once when entering viewport */
36
+ entry?: IEntryConfig;
37
+ /** Hover animation state */
38
+ whileHover?: unknown;
39
+ /** Exit animation state */
40
+ exit?: unknown;
41
+ }
42
+ /**
43
+ * AnimatedBlock - Unified animation component for studio elements
44
+ *
45
+ * Handles both entry (viewport-triggered) and scroll-linked animations.
46
+ * Entry and scroll are mutually exclusive - scroll takes precedence if both provided.
47
+ */
48
+ declare const AnimatedBlock: React.FC<IAnimatedBlockProps>;
49
+ export default AnimatedBlock;
50
+ //# sourceMappingURL=AnimatedBlock.d.ts.map
@@ -1,5 +1,5 @@
1
1
  export { default as BackgroundEffects } from './index';
2
- export * from './presets';
3
2
  export * from './presetSystem';
3
+ export * from './presets';
4
4
  export * from './presetUtils';
5
5
  //# sourceMappingURL=exports.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * This module provides a complete preset system for background effects,
5
5
  * including built-in presets and application logic.
6
6
  */
7
- export { BUILT_IN_PRESETS, PRESET_CATEGORIES, PRESET_MAP, getPresetsByCategory, getAvailableCategories, } from './presets';
7
+ export type { BackgroundEffectConfig, BackgroundPreset, } from '../../interfaces';
8
+ export { BUILT_IN_PRESETS, getAvailableCategories, getPresetsByCategory, PRESET_CATEGORIES, PRESET_MAP, } from './presets';
8
9
  export { getEffectConfigFromPresetId, type PresetOperationResult, } from './presetUtils';
9
- export type { BackgroundPreset, BackgroundEffectConfig, } from '../../interfaces';
10
10
  //# sourceMappingURL=presetSystem.d.ts.map
@@ -0,0 +1,65 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Tax line item from booking calculation
4
+ * Note: percentage is included in label (e.g., "GST 18%")
5
+ */
6
+ export interface ITaxLineItem {
7
+ id: string;
8
+ label: string;
9
+ amount: number;
10
+ }
11
+ /**
12
+ * Booking summary from create booking API
13
+ */
14
+ export interface IBookingSummary {
15
+ _id: string;
16
+ instance_label: string;
17
+ /** Collection/form name (e.g., "Registration Form") */
18
+ context_label: string;
19
+ cover_image: {
20
+ location: string;
21
+ } | null;
22
+ /** QR code image for check-in scanning */
23
+ qr_image: {
24
+ location: string;
25
+ } | null;
26
+ /** Invoice PDF file, null if not generated */
27
+ invoice: {
28
+ location: string;
29
+ } | null;
30
+ starts_at: string | null;
31
+ ends_at: string | null;
32
+ quantity: number;
33
+ currency: string;
34
+ unit_amount: number;
35
+ total_amount: number;
36
+ status: string;
37
+ paid: boolean;
38
+ /** User-submitted form fields */
39
+ form_data: Record<string, unknown>;
40
+ /** Tax line items breakdown */
41
+ taxes?: ITaxLineItem[];
42
+ /** Whether tax is included in unit_amount */
43
+ tax_inclusive?: boolean;
44
+ /** Discount amount applied */
45
+ discount?: number;
46
+ }
47
+ export interface IBookingCardProps {
48
+ summary: IBookingSummary;
49
+ onComplete?: () => void;
50
+ className?: string;
51
+ }
52
+ /**
53
+ * BookingCard
54
+ *
55
+ * Inline card for booking payment flow (not a modal):
56
+ * - Summary: Shows booking details and "Pay Now" button
57
+ * - Processing: Shows loading state during payment
58
+ * - Failed: Shows error with retry option
59
+ * - Confirmed: Shows success message after payment
60
+ *
61
+ * For free bookings (status = confirmed), shows confirmation directly.
62
+ */
63
+ export declare const BookingCard: React.FC<IBookingCardProps>;
64
+ export default BookingCard;
65
+ //# sourceMappingURL=BookingCard.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { BookingCard, type IBookingCardProps, type IBookingSummary, type ITaxLineItem, } from './BookingCard';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { default as React } from 'react';
2
+ interface IBookingRecord {
3
+ _id: string;
4
+ status: string;
5
+ paid: boolean;
6
+ unit_amount: number;
7
+ currency: string;
8
+ quantity: number;
9
+ instance_label?: string;
10
+ }
11
+ interface IBookingSummaryData {
12
+ _id: string;
13
+ instance_label: string;
14
+ cover_image: {
15
+ location: string;
16
+ } | null;
17
+ /** QR code image for check-in scanning */
18
+ qr_image: {
19
+ location: string;
20
+ } | null;
21
+ /** Invoice PDF file, null if not generated */
22
+ invoice: {
23
+ location: string;
24
+ } | null;
25
+ starts_at: string | null;
26
+ ends_at: string | null;
27
+ quantity: number;
28
+ currency: string;
29
+ unit_amount: number;
30
+ total_amount: number;
31
+ }
32
+ interface IBookingConfirmationProps {
33
+ booking: IBookingRecord;
34
+ summary: IBookingSummaryData | null;
35
+ onClose: () => void;
36
+ }
37
+ /**
38
+ * BookingConfirmation
39
+ *
40
+ * Displays confirmation after successful booking:
41
+ * - Success icon and message
42
+ * - Booking ID
43
+ * - Booking details (name, dates, amount)
44
+ * - Close button
45
+ */
46
+ export declare const BookingConfirmation: React.FC<IBookingConfirmationProps>;
47
+ export default BookingConfirmation;
48
+ //# sourceMappingURL=BookingConfirmation.d.ts.map
@@ -0,0 +1,19 @@
1
+ export interface BookingModalProps {
2
+ isOpen: boolean;
3
+ onClose: () => void;
4
+ contentId: string;
5
+ collectionKey: string;
6
+ }
7
+ /**
8
+ * BookingModal
9
+ *
10
+ * Multi-step modal for booking payment flow:
11
+ * 1. Loading: Creates booking from content
12
+ * 2. Summary: Shows booking details and "Pay Now" button
13
+ * 3. Confirmation: Shows success message after payment
14
+ *
15
+ * For free bookings (unit_amount = 0), skips payment and goes directly to confirmation.
16
+ */
17
+ export declare const BookingModal: ({ isOpen, onClose, contentId, collectionKey }: BookingModalProps) => import("react/jsx-runtime").JSX.Element | null;
18
+ export default BookingModal;
19
+ //# sourceMappingURL=BookingModal.d.ts.map
@@ -0,0 +1,34 @@
1
+ import { default as React } from 'react';
2
+ interface IBookingSummaryData {
3
+ _id: string;
4
+ instance_label: string;
5
+ cover_image: {
6
+ location: string;
7
+ } | null;
8
+ starts_at: string | null;
9
+ ends_at: string | null;
10
+ quantity: number;
11
+ currency: string;
12
+ unit_amount: number;
13
+ total_amount: number;
14
+ status: string;
15
+ paid: boolean;
16
+ }
17
+ interface IBookingSummaryProps {
18
+ summary: IBookingSummaryData;
19
+ onPay: () => void;
20
+ isLoading: boolean;
21
+ }
22
+ /**
23
+ * BookingSummary
24
+ *
25
+ * Displays booking details before payment:
26
+ * - Cover image (if available)
27
+ * - Instance label (booking name)
28
+ * - Date/time (if available)
29
+ * - Quantity and pricing
30
+ * - Pay Now button
31
+ */
32
+ export declare const BookingSummary: React.FC<IBookingSummaryProps>;
33
+ export default BookingSummary;
34
+ //# sourceMappingURL=BookingSummary.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { BookingConfirmation } from './BookingConfirmation';
2
+ export { BookingModal, type BookingModalProps } from './BookingModal';
3
+ export { BookingSummary } from './BookingSummary';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,3 @@
1
+ export * from './bookingModal';
1
2
  export * from './ui';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -2,6 +2,9 @@ import { ILemaField } from '@levo-so/core';
2
2
  import { default as React } from 'react';
3
3
  declare const FieldRenderer: React.FC<{
4
4
  field: ILemaField;
5
+ settings?: {
6
+ enableVerification?: boolean;
7
+ };
5
8
  }>;
6
9
  export default FieldRenderer;
7
10
  //# sourceMappingURL=FieldRenderer.d.ts.map
@@ -1,5 +1,5 @@
1
- import { default as React } from 'react';
2
1
  import { ILemaCollection } from '@levo-so/core';
2
+ import { default as React } from 'react';
3
3
  declare const IntegrationFilters: React.FC<{
4
4
  selectedFields: string[];
5
5
  schema: ILemaCollection;
@@ -1,5 +1,5 @@
1
- import { default as React } from 'react';
2
1
  import { ILemaField } from '@levo-so/core';
2
+ import { default as React } from 'react';
3
3
  declare const DropdownField: React.FC<{
4
4
  field: ILemaField;
5
5
  isMulti?: boolean;
@@ -1,5 +1,5 @@
1
- import { default as React } from 'react';
2
1
  import { ILemaField } from '@levo-so/core';
2
+ import { default as React } from 'react';
3
3
  declare const TextField: React.FC<{
4
4
  field: ILemaField;
5
5
  }>;
@@ -0,0 +1,27 @@
1
+ export interface IAttendeeFormProps {
2
+ values: {
3
+ name: string;
4
+ email: string;
5
+ is_business_purchase?: boolean;
6
+ billing_details?: {
7
+ name?: string;
8
+ tax_id?: string;
9
+ address?: {
10
+ line1?: string;
11
+ line2?: string;
12
+ city?: string;
13
+ state?: string;
14
+ postal_code?: string;
15
+ country?: string;
16
+ };
17
+ };
18
+ };
19
+ handleChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
20
+ handleBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
21
+ handleSubmit: (e?: React.FormEvent<HTMLFormElement>) => void;
22
+ registerLoading: boolean;
23
+ onBack: () => void;
24
+ submitLabel: string;
25
+ }
26
+ export declare const AttendeeForm: React.FC<IAttendeeFormProps>;
27
+ //# sourceMappingURL=AttendeeForm.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { LevoEvent } from '@levo-so/core';
2
+ import { ITicketWithTaxBreakdown } from './utils';
3
+ export interface ICouponViewProps {
4
+ couponCode: string;
5
+ onCouponCodeChange: (code: string) => void;
6
+ couponError: string | null;
7
+ couponLoading: boolean;
8
+ onValidateCoupon: (code?: string) => void;
9
+ publicCoupons: LevoEvent.Coupon.Root[];
10
+ onBack: () => void;
11
+ selectedTicket: LevoEvent.Ticket.Root | ITicketWithTaxBreakdown | null;
12
+ }
13
+ export declare const CouponView: React.FC<ICouponViewProps>;
14
+ //# sourceMappingURL=CouponView.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { LevoEvent } from '@levo-so/core';
2
+ import { IDiscount, ITicketWithTaxBreakdown } from './utils';
3
+ export interface ITicketSelectionStepProps {
4
+ tickets: (LevoEvent.Ticket.Root | ITicketWithTaxBreakdown)[];
5
+ selectedTicket: LevoEvent.Ticket.Root | ITicketWithTaxBreakdown | null;
6
+ onSelectTicket: (ticket: LevoEvent.Ticket.Root | ITicketWithTaxBreakdown) => void;
7
+ discount: IDiscount | null;
8
+ couponCode: string;
9
+ publicCouponsCount: number;
10
+ onApplyCouponClick: () => void;
11
+ onRemoveCoupon: () => void;
12
+ onNext: () => void;
13
+ }
14
+ export declare const TicketSelectionStep: React.FC<ITicketSelectionStepProps>;
15
+ //# sourceMappingURL=TicketSelectionStep.d.ts.map
@@ -1,2 +1,86 @@
1
- export declare const currencySymbol: any;
1
+ import { LevoEvent } from '@levo-so/core';
2
+ export declare const currencySymbol: Record<string, string>;
3
+ /**
4
+ * Tax line item from API (pre-calculated)
5
+ */
6
+ export interface ITaxLineItem {
7
+ id?: string;
8
+ _id?: string;
9
+ label: string;
10
+ percentage: number;
11
+ amount: number;
12
+ }
13
+ /**
14
+ * Extended ticket with server-calculated tax breakdown
15
+ * All values are pre-calculated by the API - no client-side calculation needed
16
+ */
17
+ export interface ITicketWithTaxBreakdown extends Omit<LevoEvent.Ticket.Root, "taxes"> {
18
+ /** Base price before tax (for tax-inclusive, back-calculated) */
19
+ subtotal: number;
20
+ /** Total tax amount */
21
+ tax_amount: number;
22
+ /** Final payable amount */
23
+ total: number;
24
+ /** Individual tax line items with amounts */
25
+ taxes: ITaxLineItem[];
26
+ /** Whether price includes tax */
27
+ tax_inclusive: boolean;
28
+ /** Whether taxes are enabled */
29
+ tax_enabled: boolean;
30
+ }
31
+ /**
32
+ * Response from coupon validation API (pre-calculated by server)
33
+ * All values are pre-calculated - no client-side calculation needed
34
+ */
35
+ export interface IDiscountWithTax {
36
+ /** Base price before discount */
37
+ base_amount: number;
38
+ /** Final payable amount (legacy, same as total_amount) */
39
+ sale_amount: number;
40
+ /** Amount eligible for discount */
41
+ discountable_amount: number;
42
+ /** Discount amount applied */
43
+ discount: number;
44
+ /** Taxable amount after discount */
45
+ taxable_amount: number;
46
+ /** Individual tax line items with amounts */
47
+ taxes: ITaxLineItem[];
48
+ /** Total tax amount */
49
+ tax_amount: number;
50
+ /** Whether price includes tax */
51
+ tax_inclusive: boolean;
52
+ /** Final total payable */
53
+ total_amount: number;
54
+ }
55
+ /**
56
+ * Legacy discount interface (for backwards compatibility)
57
+ * @deprecated Use IDiscountWithTax instead
58
+ */
59
+ export interface IDiscount {
60
+ base_amount: number;
61
+ sale_amount: number;
62
+ discount: number;
63
+ taxable_amount?: number;
64
+ taxes?: ITaxLineItem[];
65
+ tax_amount?: number;
66
+ tax_inclusive?: boolean;
67
+ total_amount?: number;
68
+ }
69
+ export declare const formatCurrency: (value?: {
70
+ unit_amount?: number;
71
+ currency?: string;
72
+ } | null) => string;
73
+ /**
74
+ * Get tax label suffix for price display in ticket selector
75
+ * Returns "+ taxes" for exclusive, "(inclusive of taxes)" for inclusive
76
+ */
77
+ export declare const getTaxLabel: (ticket: ITicketWithTaxBreakdown | LevoEvent.Ticket.Root | null) => string | null;
78
+ /**
79
+ * Check if discount has tax information from API
80
+ */
81
+ export declare const hasDiscountTaxInfo: (discount: IDiscount | null) => discount is IDiscount & Required<Pick<IDiscount, "taxes" | "tax_amount" | "taxable_amount" | "total_amount">>;
82
+ /**
83
+ * Check if ticket has tax breakdown from API
84
+ */
85
+ export declare const hasTicketTaxBreakdown: (ticket: LevoEvent.Ticket.Root | ITicketWithTaxBreakdown | null) => ticket is ITicketWithTaxBreakdown;
2
86
  //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,22 @@
1
+ import { Stripe } from '@stripe/stripe-js';
2
+ export interface IStripeEmbeddedCheckoutProps {
3
+ /** Whether modal is open */
4
+ isOpen: boolean;
5
+ /** Close modal handler */
6
+ onClose: () => void;
7
+ /** Stripe Promise from loadStripe */
8
+ stripePromise: Promise<Stripe | null> | null;
9
+ /** Checkout Session client_secret (from embedded mode session) */
10
+ clientSecret: string;
11
+ /** Called when checkout completes successfully */
12
+ onComplete?: () => void;
13
+ }
14
+ /**
15
+ * Stripe Embedded Checkout Modal
16
+ *
17
+ * Renders Stripe's hosted checkout UI inside a modal.
18
+ * Backend must create Checkout Session with ui_mode: 'embedded'.
19
+ */
20
+ export declare const StripePaymentModal: ({ isOpen, onClose, stripePromise, clientSecret, onComplete, }: IStripeEmbeddedCheckoutProps) => import("react/jsx-runtime").JSX.Element | null;
21
+ export default StripePaymentModal;
22
+ //# sourceMappingURL=StripePaymentModal.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { StripePaymentModal } from './StripePaymentModal';
2
+ export type { IStripeEmbeddedCheckoutProps } from './StripePaymentModal';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { DayPicker } from 'react-day-picker';
2
- import * as React from "react";
2
+ import type * as React from "react";
3
3
  export type CalendarProps = React.ComponentProps<typeof DayPicker>;
4
4
  export declare const Calendar: ({ className, classNames, showOutsideDays, captionLayout, formatters, components, ...props }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
5
5
  //# sourceMappingURL=Calendar.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Avatar as AvatarPrimitive } from 'radix-ui';
2
- import * as React from "react";
2
+ import type * as React from "react";
3
3
  declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
4
  declare function AvatarImage({ className, isActive, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image> & {
5
5
  isActive?: boolean;
@@ -1,4 +1,5 @@
1
- export * from './input';
2
1
  export * from './avatar';
2
+ export * from './input';
3
3
  export * from './skeleton';
4
+ export * from './tooltip';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as React from "react";
1
+ import type * as React from "react";
2
2
  declare function Input({ className, type, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
3
3
  export { Input };
4
4
  //# sourceMappingURL=input.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as React from "react";
1
+ import type * as React from "react";
2
2
  declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): import("react/jsx-runtime").JSX.Element;
3
3
  export { Textarea };
4
4
  //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { Tooltip as TooltipPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
4
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
5
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const TooltipPortal: React.FC<TooltipPrimitive.TooltipPortalProps>;
7
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const SimpleTooltipWrapper: React.FC<{
9
+ children: React.ReactNode;
10
+ label?: string | React.ReactElement;
11
+ labelClassName?: string;
12
+ asChild?: boolean;
13
+ contentProps?: React.ComponentProps<typeof TooltipContent>;
14
+ side?: "top" | "bottom" | "left" | "right";
15
+ }>;
16
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, SimpleTooltipWrapper, TooltipPortal, };
17
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -1,4 +1,5 @@
1
- export * from './Calendar';
2
1
  export * from './base';
2
+ export * from './Calendar';
3
+ export * from './form/FormInput';
3
4
  export * from './form/FormTextarea';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,7 +1,6 @@
1
- import { ComponentType, ForwardRefExoticComponent, ReactElement, RefAttributes, ReactNode } from 'react';
1
+ import { ComponentType, ForwardRefExoticComponent, ReactElement, ReactNode, RefAttributes } from 'react';
2
2
  import { IFieldConfig, IStyles } from '../interfaces';
3
- type RenderFunction = (item: unknown, index: number) => ReactNode;
4
- type BlockChildren = ReactNode | RenderFunction;
3
+ type BlockChildren = ReactNode;
5
4
  /**
6
5
  * Base props interface for all studio elements
7
6
  *
@@ -15,11 +14,9 @@ export interface BaseElementProps {
15
14
  content?: any;
16
15
  generatedClassName?: string;
17
16
  }
18
- export interface WithBlockPropsComponent<P = {}> {
19
- (props: P & {
20
- children?: BlockChildren;
21
- }): ReactElement | null;
22
- }
17
+ export type WithBlockPropsComponent<P = {}> = (props: P & {
18
+ children?: BlockChildren;
19
+ }) => ReactElement | null;
23
20
  /**
24
21
  * withBlockProps - Higher-Order Component for Studio Elements
25
22
  *
@@ -32,17 +29,12 @@ export interface WithBlockPropsComponent<P = {}> {
32
29
  * 2. Generates CSS classes for element targeting and theme variants
33
30
  * 3. Handles nested data access via dot-notation element keys
34
31
  * 4. Provides consistent interface for all studio elements
35
- * 5. Added support for Framer Motion animations driven by studio config
32
+ * 5. Supports Framer Motion animations via whileInView for entry animations
36
33
  *
37
34
  * CSS Class Generation:
38
35
  * - Base class: `levo-{blockId}-{elementKey}` for unique element targeting
39
36
  * - Variant classes: `levo-variant-{groupId}-{variantId}` for theme variants
40
37
  *
41
- * The generated classes enable:
42
- * - Element-specific styling in CSS
43
- * - Theme variant styling via class selectors
44
- * - CSS cascade integration with theme system
45
- *
46
38
  * @example
47
39
  * // Element with theme variants selected
48
40
  * <Button elementKey="hero.button" />
@@ -0,0 +1,10 @@
1
+ import { AnimationProperties, TransitionConfig, ViewportConfig } from '../interfaces';
2
+ /** Default visible state - target for all animations */
3
+ export declare const DEFAULT_VISIBLE_STATE: AnimationProperties;
4
+ /** Default "from" state for entry/scroll animations */
5
+ export declare const DEFAULT_FROM_STATE: AnimationProperties;
6
+ /** Default transition config */
7
+ export declare const DEFAULT_TRANSITION: TransitionConfig;
8
+ /** Default viewport config for entry animations */
9
+ export declare const DEFAULT_VIEWPORT: ViewportConfig;
10
+ //# sourceMappingURL=animation.d.ts.map