@levo-so/studio 0.1.59 → 0.1.61

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 (121) hide show
  1. package/dist/{Beams-0Cg_3upg.js → Beams-sKsW_tr4.js} +46 -55
  2. package/dist/{Dots-turX9wMO.js → Dots-BEIutbKS.js} +44 -40
  3. package/dist/{Gradient-Be4Kqh_1.js → Gradient-DAR7R3Mz.js} +2 -2
  4. package/dist/Grid-BuKIXWMJ.js +174 -0
  5. package/dist/MessageCard-C8v6oHmf.js +45 -0
  6. package/dist/{Waves-DL4kuojY.js → Waves-C8qlIS1W.js} +29 -80
  7. package/dist/bridge/Highlighter.d.ts +3 -5
  8. package/dist/bridge/StudioBlockPreview.d.ts +1 -0
  9. package/dist/bridge/StudioPagePreview.d.ts +2 -2
  10. package/dist/bridge/StudioPreview.d.ts +1 -1
  11. package/dist/bridge/constants.d.ts +2 -0
  12. package/dist/bridge/hooks/useElementTracker.d.ts +9 -0
  13. package/dist/bridge/index.d.ts +3 -3
  14. package/dist/bridge/utils.d.ts +1 -4
  15. package/dist/components/AnimatedBlock.d.ts +50 -0
  16. package/dist/components/backgroundPresets/exports.d.ts +1 -1
  17. package/dist/components/backgroundPresets/presetSystem.d.ts +2 -2
  18. package/dist/components/bookingCard/BookingCard.d.ts +65 -0
  19. package/dist/components/bookingCard/index.d.ts +2 -0
  20. package/dist/components/bookingModal/BookingConfirmation.d.ts +48 -0
  21. package/dist/components/bookingModal/BookingModal.d.ts +19 -0
  22. package/dist/components/bookingModal/BookingSummary.d.ts +34 -0
  23. package/dist/components/bookingModal/index.d.ts +4 -0
  24. package/dist/components/index.d.ts +1 -0
  25. package/dist/components/integrationFilters/FieldRenderer.d.ts +3 -0
  26. package/dist/components/integrationFilters/IntegrationFilters.d.ts +1 -1
  27. package/dist/components/integrationFilters/fields/DropdownField.d.ts +1 -1
  28. package/dist/components/integrationFilters/fields/TextField.d.ts +1 -1
  29. package/dist/components/registerModal/AttendeeForm.d.ts +27 -0
  30. package/dist/components/registerModal/CouponView.d.ts +14 -0
  31. package/dist/components/registerModal/RegisterModal.d.ts +2 -1
  32. package/dist/components/registerModal/TicketSelectionStep.d.ts +15 -0
  33. package/dist/components/registerModal/utils.d.ts +85 -1
  34. package/dist/components/stripePaymentModal/StripePaymentModal.d.ts +22 -0
  35. package/dist/components/stripePaymentModal/index.d.ts +3 -0
  36. package/dist/components/ui/Calendar.d.ts +1 -1
  37. package/dist/components/ui/base/avatar.d.ts +13 -0
  38. package/dist/components/ui/base/index.d.ts +3 -0
  39. package/dist/components/ui/base/input.d.ts +1 -1
  40. package/dist/components/ui/base/skeleton.d.ts +3 -0
  41. package/dist/components/ui/base/textarea.d.ts +4 -0
  42. package/dist/components/ui/base/tooltip.d.ts +17 -0
  43. package/dist/components/ui/form/FormTextarea.d.ts +15 -0
  44. package/dist/components/ui/index.d.ts +3 -0
  45. package/dist/components/withBlockProps.d.ts +6 -14
  46. package/dist/constants/animation.d.ts +10 -0
  47. package/dist/contentEngine/content.d.ts +8 -3
  48. package/dist/contentEngine/index.d.ts +3 -3
  49. package/dist/contentEngine/sourceFetcher.d.ts +1 -1
  50. package/dist/contentEngine/themeUtils.d.ts +13 -0
  51. package/dist/contentEngine/types.d.ts +1 -0
  52. package/dist/contentEngine/useContextEngine.d.ts +11 -0
  53. package/dist/context/ForumContext.d.ts +48 -0
  54. package/dist/core/AccessManager/index.d.ts +1 -1
  55. package/dist/core/LevoBlock.d.ts +3 -2
  56. package/dist/core/LevoPage.d.ts +2 -2
  57. package/dist/core/index.d.ts +1 -1
  58. package/dist/elements/AlertDialog/index.d.ts +23 -0
  59. package/dist/elements/Carousel.d.ts +10 -2
  60. package/dist/elements/Tabs.d.ts +1 -1
  61. package/dist/elements/UserMenu.d.ts +1 -1
  62. package/dist/elements/accordion/index.d.ts +1 -1
  63. package/dist/elements/dialog/index.d.ts +1 -1
  64. package/dist/elements/forum/ForumPost.d.ts +18 -0
  65. package/dist/elements/forum/ForumPostContentRenderer.d.ts +8 -0
  66. package/dist/elements/forum/SearchInput.d.ts +5 -0
  67. package/dist/elements/forum/categoryFilter/CategoryFilter.d.ts +16 -0
  68. package/dist/elements/forum/categoryFilter/index.d.ts +2 -0
  69. package/dist/elements/forum/comments/Comment.d.ts +14 -0
  70. package/dist/elements/forum/comments/Comments.d.ts +9 -0
  71. package/dist/elements/forum/comments/ReplyBox.d.ts +11 -0
  72. package/dist/elements/forum/comments/commentUtility.d.ts +25 -0
  73. package/dist/elements/forum/comments/index.d.ts +2 -0
  74. package/dist/elements/forum/createForumPost/CreateForumPost.d.ts +9 -0
  75. package/dist/elements/forum/createForumPost/CreateForumPostModal.d.ts +87 -0
  76. package/dist/elements/forum/createForumPost/index.d.ts +2 -0
  77. package/dist/elements/forum/index.d.ts +8 -0
  78. package/dist/elements/forum/restrictionOverlays/CommentsRestrictionOverlay.d.ts +16 -0
  79. package/dist/elements/forum/restrictionOverlays/JoinRequestForm.d.ts +14 -0
  80. package/dist/elements/forum/restrictionOverlays/PendingRequestState.d.ts +11 -0
  81. package/dist/elements/forum/restrictionOverlays/PostsRestrictionOverlay.d.ts +16 -0
  82. package/dist/elements/forum/restrictionOverlays/index.d.ts +5 -0
  83. package/dist/elements/forum/utility/Video.d.ts +16 -0
  84. package/dist/elements/forum/utility/index.d.ts +49 -0
  85. package/dist/elements/index.d.ts +10 -9
  86. package/dist/elements-BxhlsyhI.js +9 -0
  87. package/dist/hooks/index.d.ts +3 -0
  88. package/dist/hooks/useLogin.d.ts +1 -1
  89. package/dist/hooks/useStripePayment.d.ts +49 -0
  90. package/dist/index-BJrh8CwF.js +16197 -0
  91. package/dist/{index-BdswdesP.js → index-BYXw6aHi.js} +3 -4
  92. package/dist/index-CV5mr-8e.js +365 -0
  93. package/dist/index-CXtfbmpx.js +23 -0
  94. package/dist/index-CgUU2EbC.js +765 -0
  95. package/dist/index-DsAqikcl.js +29 -0
  96. package/dist/index-DxsNKR4p.js +56 -0
  97. package/dist/{index-DHHPZcEh.js → index-IcG2wuuE.js} +1 -8
  98. package/dist/index.d.ts +16 -13
  99. package/dist/index.js +159 -107
  100. package/dist/interfaces/block.d.ts +2 -2
  101. package/dist/interfaces/levoBlock.d.ts +64 -10
  102. package/dist/interfaces/site.d.ts +1 -193
  103. package/dist/interfaces/sites.d.ts +201 -3
  104. package/dist/interfaces/theme.d.ts +2 -0
  105. package/dist/pixel/parserUtil.d.ts +1 -0
  106. package/dist/providers/AuthProvider.d.ts +1 -0
  107. package/dist/providers/BlockContext.d.ts +2 -1
  108. package/dist/providers/LazyMotionProvider.d.ts +15 -0
  109. package/dist/providers/index.d.ts +1 -0
  110. package/dist/studio.css +1 -1
  111. package/dist/utils/colorUtils.d.ts +7 -0
  112. package/dist/utils/getKeysWithValue.d.ts +1 -1
  113. package/dist/utils/string.d.ts +7 -0
  114. package/dist/utils/withBlockPropsUtils.d.ts +6 -55
  115. package/package.json +13 -16
  116. package/dist/Grid-B0vqOT42.js +0 -184
  117. package/dist/MessageCard-CCngWCHS.js +0 -53
  118. package/dist/components/withBlockProps copy.d.ts +0 -61
  119. package/dist/index-CPJI9a7D.js +0 -13503
  120. package/dist/index-CmNhuPZp.js +0 -34
  121. package/dist/index-kVKDoWCh.js +0 -57
@@ -1,194 +1,2 @@
1
- import { IMediaObject, LevoQuery, IWorkspace } from '@levo-so/core';
2
- import { ISite, ISiteStyleConfig } from './sites';
3
- import { IBlockInstance, IBlockSource, IPageSource } from './levoBlock';
4
- export interface IPageSpeedData {
5
- audit_id: string;
6
- mobile: Scores;
7
- desktop: Scores;
8
- completed_at: string;
9
- }
10
- interface Scores {
11
- performance: number;
12
- seo: number;
13
- "best-practices": number;
14
- accessibility: number;
15
- }
16
- export interface IStudioTags {
17
- id: string;
18
- title: string;
19
- slug: string;
20
- }
21
- export interface IPageStatMetric {
22
- current: number | null;
23
- past: number | null;
24
- change: number | null;
25
- }
26
- export interface IPageSettings {
27
- structured_data_json?: string;
28
- [key: string]: any;
29
- }
30
- export interface ILocalizedPage {
31
- id: string;
32
- language: string;
33
- title: string;
34
- }
35
- export interface IPage {
36
- id: string;
37
- workspace_id: string;
38
- site_id: string;
39
- site_version?: "v1" | "v2";
40
- title: string;
41
- description: string;
42
- key: string;
43
- url: string;
44
- live_url: string;
45
- domain: string;
46
- status: "published" | "draft";
47
- meta: IPageMeta;
48
- tags: IStudioTags[];
49
- pagespeed_score: IPageSpeedData;
50
- access: IPageAccess[];
51
- settings: IPageSettings;
52
- parent_id?: string;
53
- language?: string;
54
- is_generating?: boolean;
55
- localized_pages?: ILocalizedPage[];
56
- style_config?: ISiteStyleConfig | null;
57
- countries?: string[];
58
- theme: {
59
- colors: {
60
- brand: {
61
- main: string;
62
- foreground: string;
63
- background: string;
64
- };
65
- brandSecondary: {
66
- main: string;
67
- foreground: string;
68
- background: string;
69
- };
70
- text1: string;
71
- text2: string;
72
- text3: string;
73
- [x: string]: any;
74
- };
75
- };
76
- block_count: number;
77
- variable_count: number;
78
- source_count: number;
79
- url_count: number;
80
- created_at: string;
81
- updated_at: string;
82
- source?: (IPageSource | IBlockSource)[];
83
- kind: IPageKind;
84
- sample_url: string;
85
- insights: {
86
- bounce_rate: IPageStatMetric;
87
- page_views: IPageStatMetric;
88
- scroll_depth: IPageStatMetric;
89
- };
90
- }
91
- export interface IPageMeta {
92
- meta_title: string;
93
- meta_description: string;
94
- og_title: string;
95
- og_description: string;
96
- og_image: IMediaObject | null;
97
- og_url: string;
98
- keywords: string;
99
- disable_indexing: boolean;
100
- }
101
- export type IPageKind = "blog.page" | "collection.page" | "event.page" | "static";
102
- export interface IPageExpanded extends IPage {
103
- source: IPageSource[];
104
- kind: IPageKind;
105
- blocks: (IBlockInstance & {
106
- isPreview?: boolean;
107
- })[];
108
- access: IPageAccess[];
109
- }
110
- export interface IPageFromPath {
111
- workspace: IWorkspace;
112
- site: ISite;
113
- query: Record<string, string>;
114
- data: IPageExpanded | null;
115
- access: IPageAccessCheck | null;
116
- }
117
- export interface IPageAccessGatingOptions {
118
- collection: string;
119
- field: string;
120
- condition?: LevoQuery.Where;
121
- default_value?: Record<string, any>;
122
- hidden?: string[];
123
- content?: {
124
- entryNotFound?: string;
125
- conditionNotFulfilled?: string;
126
- };
127
- }
128
- export declare const IMembershipAuthenticationMethods: readonly ["linkedin", "google", "oauth", "microsoft", "otp", "whatsapp", "magiclink", "password"];
129
- export interface IPageAccessAuthenticationOptions {
130
- methods: (typeof IMembershipAuthenticationMethods)[number][];
131
- primary_method: (typeof IMembershipAuthenticationMethods)[number];
132
- }
133
- export type IPageAccessGating = {
134
- kind: "gating";
135
- options: IPageAccessGatingOptions;
136
- };
137
- export type IPageAccessAuthentication = {
138
- kind: "authentication";
139
- options: IPageAccessAuthenticationOptions;
140
- };
141
- export type IPageAccess = (IPageAccessGating | IPageAccessAuthentication) & {
142
- enabled: boolean;
143
- };
144
- export type IPageAccessAuthenticationCodes =
145
- /**
146
- * if `options.methods` is empty
147
- */
148
- "authentication.NOT_CONFIGURED"
149
- /**
150
- * if `getNullableAccount` returns `null`, when `kind: authentication` is not optional
151
- */
152
- | "authentication.NOT_LOGGED_IN" | "authentication.SUCCESS";
153
- export type IPageAccessGatingCodes =
154
- /**
155
- * if `options.collection` is empty
156
- */
157
- "gating.NOT_CONFIGURED"
158
- /**
159
- * if not `email` is given, and it could not fetched with authentication also
160
- */
161
- | "gating.IDENTIFIER_NOT_FOUND"
162
- /**
163
- * if `options.collection` does not have entry with the given `email`
164
- */
165
- | "gating.ENTRY_NOT_FOUND"
166
- /**
167
- * if `options.collection` has entry, but doesn't pass the `options.condition` criteria
168
- */
169
- | "gating.ENTRY_CONDITION_NOT_FULFILLED" | "gating.SUCCESS";
170
- export interface IPageAccessCheck {
171
- has_access: boolean;
172
- code?: IPageAccessAuthenticationCodes | IPageAccessGatingCodes;
173
- message: string;
174
- options?: Pick<IPageAccessGatingOptions, "collection" | "field" | "content"> | IPageAccessAuthenticationOptions;
175
- }
176
- export interface ISitemap {
177
- created_at: string;
178
- filename: string;
179
- id: string;
180
- location: string;
181
- name: string;
182
- page_id: string | null;
183
- path: string;
184
- updated_at: string;
185
- url_count: number;
186
- workspace_id: string;
187
- }
188
- export interface ISitemapsSettings {
189
- allow: string[];
190
- disallow: string[];
191
- sitemaps: string[];
192
- }
193
- export {};
1
+ export * from './sites';
194
2
  //# sourceMappingURL=site.d.ts.map
@@ -1,7 +1,202 @@
1
- import { IMediaObject, IFaviconMediaObject } from '@levo-so/core';
1
+ import { IFaviconMediaObject, IMediaObject, IWorkspace, LevoQuery } from '@levo-so/core';
2
+ import { IBlockInstance, IStudioSource } from './levoBlock';
2
3
  import { ITheme } from './theme';
3
- import { ISitemapsSettings } from './site';
4
- export type ISiteCompact = Pick<ISite, "object" | "id" | "name" | "slug" | "icon" | "logo" | "is_default" | "created_at" | "updated_at">;
4
+ export interface IPageSpeedData {
5
+ audit_id: string;
6
+ mobile: Scores;
7
+ desktop: Scores;
8
+ completed_at: string;
9
+ }
10
+ interface Scores {
11
+ performance: number;
12
+ seo: number;
13
+ "best-practices": number;
14
+ accessibility: number;
15
+ }
16
+ export interface IStudioTags {
17
+ id: string;
18
+ title: string;
19
+ slug: string;
20
+ }
21
+ export interface IPageStatMetric {
22
+ current: number | null;
23
+ past: number | null;
24
+ change: number | null;
25
+ }
26
+ export interface IPageSettings {
27
+ structured_data_json?: string;
28
+ [key: string]: any;
29
+ }
30
+ export interface ILocalizedPage {
31
+ id: string;
32
+ language: string;
33
+ title: string;
34
+ status?: "published" | "draft";
35
+ countries?: string[];
36
+ url?: string;
37
+ }
38
+ export interface IPage {
39
+ id: string;
40
+ workspace_id: string;
41
+ site_id: string;
42
+ site_version?: "v1" | "v2";
43
+ title: string;
44
+ description: string;
45
+ key: string;
46
+ url: string;
47
+ live_url: string;
48
+ domain: string;
49
+ status: "published" | "draft";
50
+ meta: IPageMeta;
51
+ tags: IStudioTags[];
52
+ pagespeed_score: IPageSpeedData;
53
+ access: IPageAccess[];
54
+ settings: IPageSettings;
55
+ parent_id?: string;
56
+ language?: string;
57
+ is_generating?: boolean;
58
+ localized_pages?: ILocalizedPage[];
59
+ style_config?: ISiteStyleConfig | null;
60
+ countries?: string[];
61
+ theme: {
62
+ colors: {
63
+ brand: {
64
+ main: string;
65
+ foreground: string;
66
+ background: string;
67
+ };
68
+ brandSecondary: {
69
+ main: string;
70
+ foreground: string;
71
+ background: string;
72
+ };
73
+ text1: string;
74
+ text2: string;
75
+ text3: string;
76
+ [x: string]: any;
77
+ };
78
+ };
79
+ block_count: number;
80
+ variable_count: number;
81
+ source_count: number;
82
+ url_count: number;
83
+ created_at: string;
84
+ edit_count?: number;
85
+ updated_at: string;
86
+ thumbnail_url?: string;
87
+ thumbnail_url_mobile?: string;
88
+ source?: IStudioSource[];
89
+ kind: IPageKind;
90
+ sample_url: string;
91
+ insights: {
92
+ bounce_rate: IPageStatMetric;
93
+ page_views: IPageStatMetric;
94
+ scroll_depth: IPageStatMetric;
95
+ };
96
+ }
97
+ export interface IPageMeta {
98
+ meta_title: string;
99
+ meta_description: string;
100
+ og_title: string;
101
+ og_description: string;
102
+ og_image: IMediaObject | null;
103
+ og_url: string;
104
+ keywords: string;
105
+ disable_indexing: boolean;
106
+ }
107
+ export type IPageKind = "blog.page" | "collection.page" | "community.page" | "event.page" | "static";
108
+ export interface IPageExpanded extends IPage {
109
+ source: IStudioSource[];
110
+ kind: IPageKind;
111
+ blocks: (IBlockInstance & {
112
+ isPreview?: boolean;
113
+ })[];
114
+ access: IPageAccess[];
115
+ }
116
+ export interface IPageFromPath {
117
+ workspace: IWorkspace;
118
+ site: ISite;
119
+ query: Record<string, string>;
120
+ data: IPageExpanded | null;
121
+ access: IPageAccessCheck | null;
122
+ }
123
+ export interface IPageAccessGatingOptions {
124
+ collection: string;
125
+ field: string;
126
+ condition?: LevoQuery.Where;
127
+ default_value?: Record<string, any>;
128
+ hidden?: string[];
129
+ content?: {
130
+ entryNotFound?: string;
131
+ conditionNotFulfilled?: string;
132
+ };
133
+ }
134
+ export declare const IMembershipAuthenticationMethods: readonly ["linkedin", "google", "oauth", "microsoft", "otp", "whatsapp", "magiclink", "password"];
135
+ export interface IPageAccessAuthenticationOptions {
136
+ methods: (typeof IMembershipAuthenticationMethods)[number][];
137
+ primary_method: (typeof IMembershipAuthenticationMethods)[number];
138
+ }
139
+ export type IPageAccessGating = {
140
+ kind: "gating";
141
+ options: IPageAccessGatingOptions;
142
+ };
143
+ export type IPageAccessAuthentication = {
144
+ kind: "authentication";
145
+ options: IPageAccessAuthenticationOptions;
146
+ };
147
+ export type IPageAccess = (IPageAccessGating | IPageAccessAuthentication) & {
148
+ enabled: boolean;
149
+ };
150
+ export type IPageAccessAuthenticationCodes =
151
+ /**
152
+ * if `options.methods` is empty
153
+ */
154
+ "authentication.NOT_CONFIGURED"
155
+ /**
156
+ * if `getNullableAccount` returns `null`, when `kind: authentication` is not optional
157
+ */
158
+ | "authentication.NOT_LOGGED_IN" | "authentication.SUCCESS";
159
+ export type IPageAccessGatingCodes =
160
+ /**
161
+ * if `options.collection` is empty
162
+ */
163
+ "gating.NOT_CONFIGURED"
164
+ /**
165
+ * if not `email` is given, and it could not fetched with authentication also
166
+ */
167
+ | "gating.IDENTIFIER_NOT_FOUND"
168
+ /**
169
+ * if `options.collection` does not have entry with the given `email`
170
+ */
171
+ | "gating.ENTRY_NOT_FOUND"
172
+ /**
173
+ * if `options.collection` has entry, but doesn't pass the `options.condition` criteria
174
+ */
175
+ | "gating.ENTRY_CONDITION_NOT_FULFILLED" | "gating.SUCCESS";
176
+ export interface IPageAccessCheck {
177
+ has_access: boolean;
178
+ code?: IPageAccessAuthenticationCodes | IPageAccessGatingCodes;
179
+ message: string;
180
+ options?: Pick<IPageAccessGatingOptions, "collection" | "field" | "content"> | IPageAccessAuthenticationOptions;
181
+ }
182
+ export interface ISitemap {
183
+ created_at: string;
184
+ filename: string;
185
+ id: string;
186
+ location: string;
187
+ name: string;
188
+ page_id: string | null;
189
+ path: string;
190
+ updated_at: string;
191
+ url_count: number;
192
+ workspace_id: string;
193
+ }
194
+ export interface ISitemapsSettings {
195
+ allow: string[];
196
+ disallow: string[];
197
+ sitemaps: string[];
198
+ }
199
+ export type ISiteCompact = Pick<ISite, "object" | "id" | "name" | "slug" | "icon" | "logo" | "domain" | "domain_count" | "is_default" | "created_at" | "updated_at">;
5
200
  export interface ISiteStyleConfig {
6
201
  stylesheet_url: string | null;
7
202
  critical_css: string | null;
@@ -22,6 +217,8 @@ export interface ISite {
22
217
  theme: ITheme;
23
218
  settings: {
24
219
  head_code?: string;
220
+ studio_preview_url?: string;
221
+ staging_preview_url?: string;
25
222
  [key: string]: any;
26
223
  };
27
224
  page_count: number;
@@ -35,4 +232,5 @@ export interface ISite {
35
232
  created_at: string;
36
233
  updated_at: string;
37
234
  }
235
+ export {};
38
236
  //# sourceMappingURL=sites.d.ts.map
@@ -16,6 +16,7 @@ export interface OKLCHColor {
16
16
  export type IThemeFonts = {
17
17
  heading: string;
18
18
  body: string;
19
+ customFonts?: Record<string, string>;
19
20
  };
20
21
  /**
21
22
  * Configuration for a single variant group within a component theme
@@ -128,6 +129,7 @@ export interface ITheme {
128
129
  background3: OKLCHColor;
129
130
  iconPrimary: OKLCHColor;
130
131
  iconSecondary: OKLCHColor;
132
+ customColors?: Record<string, OKLCHColor>;
131
133
  };
132
134
  fonts: IThemeFonts;
133
135
  sizes: {
@@ -4,6 +4,7 @@ export interface IShadowConfig {
4
4
  blur: number;
5
5
  spread?: number;
6
6
  color?: string;
7
+ opacity?: number;
7
8
  }
8
9
  export interface IFilterConfig {
9
10
  "drop-shadow"?: IShadowConfig;
@@ -15,6 +15,7 @@ interface IAuthActions {
15
15
  export interface IAuthOverride {
16
16
  enabled: boolean;
17
17
  isLoggedIn: boolean;
18
+ selectedAccount?: ILevoMembership.Account | null;
18
19
  }
19
20
  interface IAuthProviderInterface extends IAuthState, IAuthActions {
20
21
  }
@@ -1,5 +1,5 @@
1
+ import { IBlockContext, IPageContext } from '../contentEngine';
1
2
  import { IBlockInstance } from '../interfaces';
2
- import { IPageContext, IBlockContext } from '../contentEngine';
3
3
  type BlockContextType = {
4
4
  parsedBlockData?: IBlockInstance;
5
5
  setParsedBlockData?: React.Dispatch<React.SetStateAction<IBlockInstance | undefined>>;
@@ -7,6 +7,7 @@ type BlockContextType = {
7
7
  pageContext?: IPageContext;
8
8
  blockContext?: IBlockContext;
9
9
  isBuilder?: boolean;
10
+ workspace_id: string;
10
11
  };
11
12
  export declare const BlockProvider: React.FC<{
12
13
  children: React.ReactNode;
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from 'react';
2
+ interface ILazyMotionProviderProps {
3
+ children: ReactNode;
4
+ /** Enforce m component usage - throws if motion component is used */
5
+ strict?: boolean;
6
+ }
7
+ /**
8
+ * Provides LazyMotion context with domAnimation features for reduced bundle size.
9
+ *
10
+ * Wrap your studio content with this provider to enable animations using the
11
+ * lighter `m` component instead of the full `motion` component (~18kb vs ~34kb).
12
+ */
13
+ export declare const LazyMotionProvider: React.FC<ILazyMotionProviderProps>;
14
+ export {};
15
+ //# sourceMappingURL=LazyMotionProvider.d.ts.map
@@ -1,3 +1,4 @@
1
1
  export * from './AuthProvider';
2
2
  export * from './BlockContext';
3
+ export * from './LazyMotionProvider';
3
4
  //# sourceMappingURL=index.d.ts.map
package/dist/studio.css CHANGED
@@ -1 +1 @@
1
- ._Overlay_1yuh0_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background-color:#00000080;animation:_overlayShow_1yuh0_1 .15s cubic-bezier(.16,1,.3,1)}._Overlay_1yuh0_1[data-state=open]{animation:_fadeIn_1yuh0_1 .2s ease-out}._Overlay_1yuh0_1[data-state=closed]{animation:_fadeOut_1yuh0_1 .2s ease-out}._Content_1yuh0_17{position:fixed;left:50%;top:50%;z-index:50;width:100%;max-width:calc(100% - 2rem);transform:translate(-50%,-50%);gap:1rem;border-radius:.5rem;padding:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transition-duration:.2s;background:var(--color-page)}@media (min-width: 640px){._Content_1yuh0_17{max-width:32rem}}._Content_1yuh0_17[data-state=open]{animation:_contentShow_1yuh0_1 .2s cubic-bezier(.16,1,.3,1)}._Content_1yuh0_17[data-state=closed]{animation:_contentHide_1yuh0_1 .2s cubic-bezier(.16,1,.3,1)}._Content_1yuh0_17:focus{outline:none}._Title_1yuh0_53{font-size:1.125rem;font-weight:600;line-height:1}._Description_1yuh0_59{font-size:.875rem;color:var(--muted-foreground)}._CloseButton_1yuh0_64{position:absolute;right:1rem;top:1rem;opacity:.7;border-radius:.25rem;transition:opacity .2s;outline:none;background:transparent;border:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}._CloseButton_1yuh0_64:hover{opacity:1}._CloseButton_1yuh0_64:focus{outline:2px solid var(--ring);outline-offset:2px}._CloseButton_1yuh0_64:disabled{pointer-events:none}._CloseButton_1yuh0_64[data-state=open]{background-color:var(--accent);color:var(--muted-foreground)}._CloseButton_1yuh0_64 svg:not([class*=size-]){width:1rem;height:1rem}._CloseButton_1yuh0_64 svg{pointer-events:none;flex-shrink:0}._Header_1yuh0_109{display:flex;flex-direction:column;gap:.5rem;text-align:center}@media (min-width: 640px){._Header_1yuh0_109{text-align:left}}._Footer_1yuh0_122{display:flex;flex-direction:column-reverse;gap:.5rem}@media (min-width: 640px){._Footer_1yuh0_122{flex-direction:row;justify-content:flex-end}}@keyframes _fadeIn_1yuh0_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1yuh0_1{0%{opacity:1}to{opacity:0}}@keyframes _contentShow_1yuh0_1{0%{opacity:0;transform:translate(-50%,-48%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes _contentHide_1yuh0_1{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-48%) scale(.95)}}._errorContainer_1mfd3_5{margin-bottom:1rem}._divider_1mfd3_9{margin:1rem 0;display:flex;align-items:center}._dividerLine_1mfd3_15{flex:1;height:1px;background-color:#e5e7eb}._dividerText_1mfd3_21{padding:0 .75rem;font-size:.875rem;color:#6b7280}._formSection_1mfd3_27{display:flex;flex-direction:column;gap:1rem}._fullWidthButton_1mfd3_36{width:100%}._oauthContainer_1mfd3_41{display:flex;flex:1;flex-direction:column;gap:.5rem;justify-content:space-evenly;align-items:center}._oauthContainer_1mfd3_41>div{width:100%}._googleButton_1mfd3_54{display:inline-flex;align-items:center;justify-content:center;width:100%;height:2.5rem;padding:0 1rem;border:1px solid oklch(.922 0 0);border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}._googleButton_1mfd3_54:hover{background:#f5f5f5}._googleButton_1mfd3_54:disabled{opacity:.5;cursor:not-allowed}._googleIcon_1mfd3_78{width:1.25rem;height:1.25rem;margin-right:.5rem}._errorContainer_1mfd3_5{margin-top:1rem;width:100%}._errorContent_1mfd3_90{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#ffe6e6;border:1px solid #ffcccc;border-radius:.375rem}._errorIcon_1mfd3_100{flex-shrink:0;font-size:1.125rem;color:#d63031;margin-top:.125rem}._errorText_1mfd3_107{flex:1;min-width:0}._errorTitle_1mfd3_112{font-size:.875rem;font-weight:600;color:#d63031;margin-bottom:.25rem}._errorMessage_1mfd3_119{font-size:.875rem;color:#d63031;line-height:1.4}._errorDismiss_1mfd3_125{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:.25rem;color:#d63031;cursor:pointer;font-size:1.125rem;line-height:1;transition:background-color .2s}._errorDismiss_1mfd3_125:hover{background:#ffe6e6}._errorDismiss_1mfd3_125:focus{outline:none;background:#ffe6e6;box-shadow:0 0 0 2px oklch(from var(--ring) l c h / .2)}._button_1je4h_2{display:flex;align-items:center;justify-content:center;font-size:.875rem;border-radius:.375rem;font-weight:500;transition:all .15s ease-in-out;cursor:pointer;border:1px solid transparent;background-color:var(--color-brand);color:var(--color-brand-foreground)}._button_1je4h_2:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-brand)}._button_1je4h_2:disabled{pointer-events:none;opacity:.6;cursor:not-allowed}._button_1je4h_2[data-variant=default]:hover:not(:disabled){background-color:var(--color-brand);opacity:.9}._button_1je4h_2[data-variant=outline]{border:1px solid #d1d5db;background-color:transparent;color:#374151}._button_1je4h_2[data-variant=outline]:hover:not(:disabled){background-color:#f3f4f6;color:#111827}._button_1je4h_2[data-variant=destructive]{background-color:#ef4444;color:#fff}._button_1je4h_2[data-variant=destructive]:hover:not(:disabled){background-color:#dc2626}._button_1je4h_2[data-variant=success]{background-color:#dcfce7;color:#166534;border:1px solid #16a34a}._button_1je4h_2[data-size=default]{height:2.25rem;padding:0 .75rem}._button_1je4h_2[data-size=lg]{height:2.5rem;padding:.5rem 1rem}._content_1je4h_70{display:flex;align-items:center;gap:.5rem}._icon_1je4h_77{display:flex;align-items:center;justify-content:center}._icon_1je4h_77 svg{width:1rem;height:1rem}._spinner_1je4h_89{animation:_spin_1je4h_89 1s linear infinite}@keyframes _spin_1je4h_89{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._iconEnter_1je4h_103{animation:_iconScale_1je4h_1 .3s ease-in-out}@keyframes _iconScale_1je4h_1{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}._text_1je4h_119{white-space:nowrap}._label_wx5fd_5{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#374151}._inputWrapper_wx5fd_13{display:flex;gap:.5rem}._input_wx5fd_13{flex:1;border-radius:.375rem;border:1px solid #d1d5db;padding:.5rem .75rem;font-size:.875rem;transition:all .15s ease-in-out}._input_wx5fd_13:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 1px var(--color-brand)}._input_wx5fd_13:disabled{background-color:#f9fafb;color:#6b7280}._editButton_wx5fd_38{font-size:.875rem}._label_1c9qn_5{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#374151}._inputGroup_1c9qn_13{display:flex;gap:.5rem;margin-bottom:1rem}._input_1c9qn_13{width:3rem;height:3rem;text-align:center;border-radius:.375rem;border:1px solid #d1d5db;font-size:1.125rem;font-weight:500;transition:all .15s ease-in-out}._input_1c9qn_13:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 1px var(--color-brand)}._resendButton_1c9qn_36{font-size:.875rem;color:var(--color-brand);background:none;border:none;cursor:pointer;transition:color .15s ease-in-out}._resendButton_1c9qn_36:hover:not(:disabled){color:var(--color-brand);opacity:.8}._resendButton_1c9qn_36:disabled{opacity:.5;cursor:not-allowed}._label_1fvbo_1{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#374151}._inputWrapper_1fvbo_9{display:flex;gap:.5rem}._phoneInputWrapper_1fvbo_14{flex:1;display:flex}._input_1fvbo_9{flex:1;border-radius:0 .375rem .375rem 0;border:1px solid #d1d5db;border-left:none;padding:.5rem .75rem;font-size:.875rem;transition:all .15s ease-in-out;width:100%}._input_1fvbo_9:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 1px var(--color-brand)}._input_1fvbo_9:disabled{background-color:#f9fafb;color:#6b7280}._selector_1fvbo_41{display:flex;align-items:center;justify-content:center;padding:0 .75rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem 0 0 .375rem;cursor:pointer;transition:all .15s ease-in-out}._selector_1fvbo_41:hover{background-color:#f9fafb}._selector_1fvbo_41:focus-visible{outline:0;box-shadow:inset 0 0 0 1px var(--color-brand);border-color:var(--color-brand);z-index:1}._selector_1fvbo_41:disabled{background-color:#f9fafb;cursor:not-allowed}._editButton_1fvbo_69{font-size:.875rem}._dropdownContent_1fvbo_73{z-index:50;width:300px;max-height:260px;overflow-y:auto;border-radius:.375rem;background-color:#fff;padding:.5rem 0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border:1px solid #e5e7eb;display:flex;flex-direction:column}._countryItem_1fvbo_89{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;cursor:pointer;font-size:.875rem;color:#374151;transition:background-color .1s;width:100%;text-align:left;border:none;background:none}._countryItem_1fvbo_89:hover,._countryItem_1fvbo_89:focus,._countryItem_1fvbo_89[data-selected=true]{background-color:#f3f4f6;outline:none}._flag_1fvbo_111{width:20px;height:15px;object-fit:cover;border-radius:2px}._countryName_1fvbo_118{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._dialCode_1fvbo_125{color:#6b7280;font-size:.75rem}.react-international-phone-country-selector{position:relative}.react-international-phone-country-selector-button{display:flex;height:var(--react-international-phone-height, 36px);box-sizing:border-box;align-items:center;justify-content:center;padding:0;border:1px solid var(--react-international-phone-country-selector-border-color, var(--react-international-phone-border-color, gainsboro));margin:0;-moz-appearance:button;appearance:button;-webkit-appearance:button;background-color:var(--react-international-phone-country-selector-background-color, var(--react-international-phone-background-color, white));cursor:pointer;text-transform:none;-webkit-user-select:none;user-select:none}.react-international-phone-country-selector-button:hover{background-color:var(--react-international-phone-country-selector-background-color-hover, whitesmoke)}.react-international-phone-country-selector-button--hide-dropdown{cursor:auto}.react-international-phone-country-selector-button--hide-dropdown:hover{background-color:transparent}.react-international-phone-country-selector-button__button-content{display:flex;align-items:center;justify-content:center}.react-international-phone-country-selector-button__flag-emoji{margin:0 4px}.react-international-phone-country-selector-button__flag-emoji--disabled{opacity:.75}.react-international-phone-country-selector-button__dropdown-arrow{border-top:var(--react-international-phone-country-selector-arrow-size, 4px) solid var(--react-international-phone-country-selector-arrow-color, #777);border-right:var(--react-international-phone-country-selector-arrow-size, 4px) solid transparent;border-left:var(--react-international-phone-country-selector-arrow-size, 4px) solid transparent;margin-right:4px;transition:all .1s ease-out}.react-international-phone-country-selector-button__dropdown-arrow--active{transform:rotateX(180deg)}.react-international-phone-country-selector-button__dropdown-arrow--disabled{border-top-color:var(--react-international-phone-disabled-country-selector-arrow-color, #999)}.react-international-phone-country-selector-button--disabled{background-color:var(--react-international-phone-disabled-country-selector-background-color, var(--react-international-phone-disabled-background-color, whitesmoke));cursor:auto}.react-international-phone-country-selector-button--disabled:hover{background-color:var(--react-international-phone-disabled-country-selector-background-color, var(--react-international-phone-disabled-background-color, whitesmoke))}.react-international-phone-flag-emoji{width:var(--react-international-phone-flag-width, 24px);height:var(--react-international-phone-flag-height, 24px);box-sizing:border-box}.react-international-phone-country-selector-dropdown{position:absolute;z-index:1;top:var(--react-international-phone-dropdown-top, 44px);left:var(--react-international-phone-dropdown-left, 0);display:flex;width:300px;max-height:200px;flex-direction:column;padding:4px 0;margin:0;background-color:var(--react-international-phone-dropdown-item-background-color, var(--react-international-phone-background-color, white));box-shadow:var(--react-international-phone-dropdown-shadow, 2px 2px 16px rgba(0, 0, 0, .25));color:var(--react-international-phone-dropdown-item-text-color, var(--react-international-phone-text-color, #222));list-style:none;overflow-y:scroll}.react-international-phone-country-selector-dropdown__preferred-list-divider{height:1px;border:none;margin:var(--react-international-phone-dropdown-preferred-list-divider-margin, 0);background:var(--react-international-phone-dropdown-preferred-list-divider-color, var(--react-international-phone-border-color, gainsboro))}.react-international-phone-country-selector-dropdown__list-item{display:flex;min-height:var(--react-international-phone-dropdown-item-height, 28px);box-sizing:border-box;align-items:center;padding:2px 8px}.react-international-phone-country-selector-dropdown__list-item-flag-emoji{margin-right:8px}.react-international-phone-country-selector-dropdown__list-item-country-name{overflow:hidden;margin-right:8px;font-size:var(--react-international-phone-dropdown-item-font-size, 14px);text-overflow:ellipsis;white-space:nowrap}.react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-dropdown-item-dial-code-color, gray);font-size:var(--react-international-phone-dropdown-item-font-size, 14px)}.react-international-phone-country-selector-dropdown__list-item:hover{background-color:var(--react-international-phone-selected-dropdown-item-background-color, var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke));cursor:pointer}.react-international-phone-country-selector-dropdown__list-item--selected,.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke);color:var(--react-international-phone-selected-dropdown-item-text-color, var(--react-international-phone-text-color, #222))}.react-international-phone-country-selector-dropdown__list-item--selected .react-international-phone-country-selector-dropdown__list-item-dial-code,.react-international-phone-country-selector-dropdown__list-item--focused .react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-selected-dropdown-item-dial-code-color, var(--react-international-phone-dropdown-item-dial-code-color, gray))}.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color, var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke))}.react-international-phone-dial-code-preview{display:flex;align-items:center;justify-content:center;padding:0 8px;border:1px solid var(--react-international-phone-dial-code-preview-border-color, var(--react-international-phone-border-color, gainsboro));margin-right:-1px;background-color:var(--react-international-phone-dial-code-preview-background-color, var(--react-international-phone-background-color, white));color:var(--react-international-phone-dial-code-preview-text-color, var(--react-international-phone-text-color, #222));font-size:var(--react-international-phone-dial-code-preview-font-size, var(--react-international-phone-font-size, 13px))}.react-international-phone-dial-code-preview--disabled{background-color:var(--react-international-phone-dial-code-preview-disabled-background-color, var(--react-international-phone-disabled-background-color, whitesmoke));color:var(--react-international-phone-dial-code-preview-disabled-text-color, var(--react-international-phone-disabled-text-color, #666))}.react-international-phone-input-container{display:flex}.react-international-phone-input-container .react-international-phone-country-selector-button{border-radius:var(--react-international-phone-border-radius, 4px);margin-right:-1px;border-bottom-right-radius:0;border-top-right-radius:0}.react-international-phone-input-container .react-international-phone-input{overflow:visible;height:var(--react-international-phone-height, 36px);box-sizing:border-box;padding:0 8px;border:1px solid var(--react-international-phone-border-color, gainsboro);border-radius:var(--react-international-phone-border-radius, 4px);margin:0;background-color:var(--react-international-phone-background-color, white);border-bottom-left-radius:0;border-top-left-radius:0;color:var(--react-international-phone-text-color, #222);font-family:inherit;font-size:var(--react-international-phone-font-size, 13px)}.react-international-phone-input-container .react-international-phone-input:focus{outline:none}.react-international-phone-input-container .react-international-phone-input--disabled{background-color:var(--react-international-phone-disabled-background-color, whitesmoke);color:var(--react-international-phone-disabled-text-color, #666)}._container_x1dec_1{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem}._iconWrapper_x1dec_9{width:4rem;height:4rem;border-radius:50%;background-color:#f0fdf4;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}._icon_x1dec_9{width:2rem;height:2rem;color:#16a34a}._content_x1dec_26{margin-bottom:2rem}._title_x1dec_30{font-size:1.5rem;font-weight:600;color:#111827;margin-bottom:.5rem}._message_x1dec_37{font-size:.875rem;color:#374151;margin-bottom:.75rem;line-height:1.5}._message_x1dec_37 strong{color:#111827;font-weight:600}._submessage_x1dec_49{font-size:.75rem;color:#6b7280;line-height:1.5}._actions_x1dec_55{width:100%}._resetButton_x1dec_59{width:100%;font-size:.875rem}._container_301k2_1{display:flex;flex-direction:column;gap:1rem;width:100%}._divider_301k2_8{position:relative;height:1px;width:100%;background-color:var(--border)}._dividerText_301k2_15{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;background:var(--background);padding:0 1rem;font-size:.875rem;color:var(--muted-foreground)}._formSection_301k2_27{display:flex;flex-direction:column;gap:1rem;width:100%}._googleButton_301k2_34{display:inline-flex;align-items:center;justify-content:center;width:100%;height:2.5rem;padding:0 1rem;border:1px solid var(--border);border-radius:.375rem;background:var(--background);font-size:.875rem;font-weight:500;color:var(--foreground);cursor:pointer;transition:background-color .2s}._googleButton_301k2_34:hover{background:var(--accent)}._googleButton_301k2_34:disabled{opacity:.5;cursor:not-allowed}._googleIcon_301k2_60{width:1.25rem;height:1.25rem;margin-right:.5rem}._primaryButton_301k2_66{width:100%}._errorContainer_301k2_70{margin-top:1rem;width:100%}._errorContent_301k2_75{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:oklch(from var(--destructive) l c h / .1);border:1px solid oklch(from var(--destructive) l c h / .3);border-radius:.375rem}._errorIcon_301k2_85{flex-shrink:0;font-size:1.125rem;color:var(--destructive);margin-top:.125rem}._errorText_301k2_92{flex:1;min-width:0}._errorTitle_301k2_97{font-size:.875rem;font-weight:600;color:var(--destructive);margin-bottom:.25rem}._errorMessage_301k2_104{font-size:.875rem;color:var(--destructive);line-height:1.4}._errorDismiss_301k2_110{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:.25rem;color:var(--destructive);cursor:pointer;font-size:1.125rem;line-height:1;transition:background-color .2s}._errorDismiss_301k2_110:hover{background:oklch(from var(--destructive) l c h / .1)}._errorDismiss_301k2_110:focus{outline:none;background:oklch(from var(--destructive) l c h / .1);box-shadow:0 0 0 2px oklch(from var(--ring) l c h / .2)}._TypographyBaseStyles_wqur5_1 ul{list-style-type:disc}._TypographyBaseStyles_wqur5_1 ol{list-style-type:decimal}._TypographyBaseStyles_wqur5_1 ul,._TypographyBaseStyles_wqur5_1 ol{padding-left:1.2rem}._accordionItem_ol1j4_1{overflow:hidden}._accordionItem_ol1j4_1:focus-within{position:relative;z-index:1}._accordionHeader_ol1j4_10{display:flex}._accordionTrigger_ol1j4_14{flex:1;display:flex;align-items:center;justify-content:space-between}._accordionContent_ol1j4_21{overflow:hidden}._accordionContent_ol1j4_21[data-state=open]{animation:_slideDown_ol1j4_1 .3s cubic-bezier(.87,0,.13,1)}._accordionContent_ol1j4_21[data-state=closed]{animation:_slideUp_ol1j4_1 .3s cubic-bezier(.87,0,.13,1)}._accordionChevron_ol1j4_33{flex-shrink:0;transition:transform .3s cubic-bezier(.87,0,.13,1)}._accordionTrigger_ol1j4_14[data-state=open]>._accordionChevron_ol1j4_33{transform:rotate(180deg)}@keyframes _slideDown_ol1j4_1{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes _slideUp_ol1j4_1{0%{height:var(--radix-accordion-content-height)}to{height:0}}._popoverContent_ob3yj_1{z-index:50;width:18rem;border-radius:.375rem;background-color:var(--color-page);padding:1rem;color:var(--color-text-1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;outline:none}._popoverContent_ob3yj_1[data-state=open]{animation:_fadeIn_ob3yj_1 .2s ease-out,_zoomIn_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-state=closed]{animation:_fadeOut_ob3yj_1 .2s ease-out,_zoomOut_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=bottom]{animation:_slideFromTop_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=left]{animation:_slideFromRight_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=right]{animation:_slideFromLeft_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=top]{animation:_slideFromBottom_ob3yj_1 .2s ease-out}@keyframes _fadeIn_ob3yj_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_ob3yj_1{0%{opacity:1}to{opacity:0}}@keyframes _zoomIn_ob3yj_1{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes _zoomOut_ob3yj_1{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes _slideFromTop_ob3yj_1{0%{transform:translateY(-.5rem)}to{transform:translateY(0)}}@keyframes _slideFromRight_ob3yj_1{0%{transform:translate(.5rem)}to{transform:translate(0)}}@keyframes _slideFromLeft_ob3yj_1{0%{transform:translate(-.5rem)}to{transform:translate(0)}}@keyframes _slideFromBottom_ob3yj_1{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}._userMenu_366z5_1{position:relative}._userAvatar_366z5_5{cursor:pointer;transition:opacity .2s ease}._userAvatar_366z5_5:hover{opacity:.8}._avatarCircle_366z5_14{width:40px;height:40px;border-radius:50%;background:var(--color-brand);display:flex;align-items:center;justify-content:center;color:var(--color-brand-foreground);font-weight:600;font-size:14px;-webkit-user-select:none;user-select:none}._userMenuPopover_366z5_28{width:250px;padding:0;border-radius:8px;box-shadow:0 10px 38px -10px #16171859,0 10px 20px -15px #16171833;background:#fff;border:1px solid #e5e7eb}._userMenuHeader_366z5_39{padding:16px;border-bottom:1px solid #f3f4f6}._userInfo_366z5_44{display:flex;align-items:center;gap:12px}._userAvatarSmall_366z5_50{width:32px;height:32px;border-radius:50%;background:var(--color-brand);display:flex;align-items:center;justify-content:center;color:var(--color-brand-foreground);font-weight:600;font-size:12px;-webkit-user-select:none;user-select:none}._userDetails_366z5_64{flex:1;min-width:0}._userName_366z5_69{font-weight:600;font-size:14px;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userEmail_366z5_78{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userMenuActions_366z5_86{padding:8px}._userMenuItem_366z5_90{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;border:none;background:none;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px;color:#374151;text-align:left}._userMenuItem_366z5_90:hover{background-color:#f9fafb;color:#111827}._userMenuItem_366z5_90:active{background-color:#f3f4f6}._logoutItem_366z5_115:hover{background-color:#fef2f2;color:#dc2626}._logoutItem_366z5_115:active{background-color:#fee2e2}._spinner_366z5_124{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:_spin_366z5_124 1s linear infinite}@keyframes _spin_366z5_124{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._userMenuItem_366z5_90:disabled{opacity:.6;cursor:not-allowed}._userMenuItem_366z5_90:disabled:hover{background-color:transparent;color:inherit}._logoutItem_366z5_115:disabled:hover{background-color:transparent;color:inherit}._loadingContainer_1d4on_1{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:1rem;font-size:1.4rem;z-index:50}._container_t4trl_1{position:fixed;top:0;left:0;right:0;bottom:0;background:color-mix(in oklch,var(--color-brand) 5%,transparent);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}._card_t4trl_16{background:#fff;border-radius:1rem;box-shadow:0 25px 50px #0000001a;width:100%;overflow:hidden;max-height:90vh;display:flex;flex-direction:column}._cardSm_t4trl_27{max-width:28rem}._cardMd_t4trl_31{max-width:32rem}._cardLg_t4trl_35{max-width:36rem}._logoContainer_t4trl_39{display:flex;justify-content:center;padding:2rem 2rem 1rem;background:color-mix(in oklch,var(--color-brand) 15%,transparent);flex-shrink:0}._logo_t4trl_39{height:3rem;width:auto;object-fit:contain}._content_t4trl_53{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:2rem 0}@media (max-width: 640px){._container_t4trl_1{padding:.5rem}._card_t4trl_16{max-width:100%;max-height:95vh}._content_t4trl_53{padding:1.5rem 0}._logoContainer_t4trl_39{padding:1.5rem 1.5rem 1rem}._logo_t4trl_39{height:2.5rem}}._header_s7k8g_1{text-align:center;margin-bottom:2rem;padding:0 2rem}._title_s7k8g_7{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}._subtitle_s7k8g_14{color:#6b7280;margin:0;line-height:1.5}._formWrapper_s7k8g_20{padding:0 2rem}@media (max-width: 640px){._header_s7k8g_1,._formWrapper_s7k8g_20{padding:0 1.5rem}._title_s7k8g_7{font-size:1.25rem}}._footnote_v8hnh_1{margin:0 2rem;padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:1rem}._footnoteText_v8hnh_11{font-size:.875rem;color:#6b7280;flex:1}._logoutButton_v8hnh_17{padding:.25rem .75rem;font-size:.875rem;font-weight:500;color:#374151;background:transparent;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;transition:all .2s;white-space:nowrap}._logoutButton_v8hnh_17:hover{background:#f3f4f6;border-color:#9ca3af}._logoutButton_v8hnh_17:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 640px){._footnote_v8hnh_1{margin:1.5rem 1.5rem 0;flex-direction:column;align-items:flex-start;gap:.5rem}._footnoteText_v8hnh_11{font-size:.8125rem}._logoutButton_v8hnh_17{align-self:stretch;text-align:center}}._header_emo7t_1{text-align:center;margin-bottom:1rem;flex-shrink:0;padding:0 2rem}._title_emo7t_8{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}._subtitle_emo7t_15{color:#6b7280;margin:0;line-height:1.5}._formContainer_emo7t_21{flex:1;margin-top:1rem;padding:0 2rem}@media (max-width: 640px){._header_emo7t_1,._formContainer_emo7t_21{padding:0 1.5rem}._title_emo7t_8{font-size:1.25rem}}
1
+ ._loadingContainer_1d4on_1{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;gap:1rem;font-size:1.4rem;z-index:50}._accordionItem_ol1j4_1{overflow:hidden}._accordionItem_ol1j4_1:focus-within{position:relative;z-index:1}._accordionHeader_ol1j4_10{display:flex}._accordionTrigger_ol1j4_14{flex:1;display:flex;align-items:center;justify-content:space-between}._accordionContent_ol1j4_21{overflow:hidden}._accordionContent_ol1j4_21[data-state=open]{animation:_slideDown_ol1j4_1 .3s cubic-bezier(.87,0,.13,1)}._accordionContent_ol1j4_21[data-state=closed]{animation:_slideUp_ol1j4_1 .3s cubic-bezier(.87,0,.13,1)}._accordionChevron_ol1j4_33{flex-shrink:0;transition:transform .3s cubic-bezier(.87,0,.13,1)}._accordionTrigger_ol1j4_14[data-state=open]>._accordionChevron_ol1j4_33{transform:rotate(180deg)}@keyframes _slideDown_ol1j4_1{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes _slideUp_ol1j4_1{0%{height:var(--radix-accordion-content-height)}to{height:0}}._Overlay_1yuh0_1{position:fixed;inset:0;z-index:50;background-color:#00000080;animation:_overlayShow_1yuh0_1 .15s cubic-bezier(.16,1,.3,1)}._Overlay_1yuh0_1[data-state=open]{animation:_fadeIn_1yuh0_1 .2s ease-out}._Overlay_1yuh0_1[data-state=closed]{animation:_fadeOut_1yuh0_1 .2s ease-out}._Content_1yuh0_17{position:fixed;left:50%;top:50%;z-index:50;width:100%;max-width:calc(100% - 2rem);transform:translate(-50%,-50%);gap:1rem;border-radius:.5rem;padding:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transition-duration:.2s;background:var(--color-page)}@media (min-width: 640px){._Content_1yuh0_17{max-width:32rem}}._Content_1yuh0_17[data-state=open]{animation:_contentShow_1yuh0_1 .2s cubic-bezier(.16,1,.3,1)}._Content_1yuh0_17[data-state=closed]{animation:_contentHide_1yuh0_1 .2s cubic-bezier(.16,1,.3,1)}._Content_1yuh0_17:focus{outline:none}._Title_1yuh0_53{font-size:1.125rem;font-weight:600;line-height:1}._Description_1yuh0_59{font-size:.875rem;color:var(--muted-foreground)}._CloseButton_1yuh0_64{position:absolute;right:1rem;top:1rem;opacity:.7;border-radius:.25rem;transition:opacity .2s;outline:none;background:transparent;border:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}._CloseButton_1yuh0_64:hover{opacity:1}._CloseButton_1yuh0_64:focus{outline:2px solid var(--ring);outline-offset:2px}._CloseButton_1yuh0_64:disabled{pointer-events:none}._CloseButton_1yuh0_64[data-state=open]{background-color:var(--accent);color:var(--muted-foreground)}._CloseButton_1yuh0_64 svg:not([class*=size-]){width:1rem;height:1rem}._CloseButton_1yuh0_64 svg{pointer-events:none;flex-shrink:0}._Header_1yuh0_109{display:flex;flex-direction:column;gap:.5rem;text-align:center}@media (min-width: 640px){._Header_1yuh0_109{text-align:left}}._Footer_1yuh0_122{display:flex;flex-direction:column-reverse;gap:.5rem}@media (min-width: 640px){._Footer_1yuh0_122{flex-direction:row;justify-content:flex-end}}@keyframes _fadeIn_1yuh0_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1yuh0_1{0%{opacity:1}to{opacity:0}}@keyframes _contentShow_1yuh0_1{0%{opacity:0;transform:translate(-50%,-48%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes _contentHide_1yuh0_1{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-48%) scale(.95)}}._popoverContent_ob3yj_1{z-index:50;width:18rem;border-radius:.375rem;background-color:var(--color-page);padding:1rem;color:var(--color-text-1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;outline:none}._popoverContent_ob3yj_1[data-state=open]{animation:_fadeIn_ob3yj_1 .2s ease-out,_zoomIn_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-state=closed]{animation:_fadeOut_ob3yj_1 .2s ease-out,_zoomOut_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=bottom]{animation:_slideFromTop_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=left]{animation:_slideFromRight_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=right]{animation:_slideFromLeft_ob3yj_1 .2s ease-out}._popoverContent_ob3yj_1[data-side=top]{animation:_slideFromBottom_ob3yj_1 .2s ease-out}@keyframes _fadeIn_ob3yj_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_ob3yj_1{0%{opacity:1}to{opacity:0}}@keyframes _zoomIn_ob3yj_1{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes _zoomOut_ob3yj_1{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes _slideFromTop_ob3yj_1{0%{transform:translateY(-.5rem)}to{transform:translateY(0)}}@keyframes _slideFromRight_ob3yj_1{0%{transform:translate(.5rem)}to{transform:translate(0)}}@keyframes _slideFromLeft_ob3yj_1{0%{transform:translate(-.5rem)}to{transform:translate(0)}}@keyframes _slideFromBottom_ob3yj_1{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}._TypographyBaseStyles_wqur5_1 ul{list-style-type:disc}._TypographyBaseStyles_wqur5_1 ol{list-style-type:decimal}._TypographyBaseStyles_wqur5_1 ul,._TypographyBaseStyles_wqur5_1 ol{padding-left:1.2rem}._userMenu_366z5_1{position:relative}._userAvatar_366z5_5{cursor:pointer;transition:opacity .2s ease}._userAvatar_366z5_5:hover{opacity:.8}._avatarCircle_366z5_14{width:40px;height:40px;border-radius:50%;background:var(--color-brand);display:flex;align-items:center;justify-content:center;color:var(--color-brand-foreground);font-weight:600;font-size:14px;-webkit-user-select:none;user-select:none}._userMenuPopover_366z5_28{width:250px;padding:0;border-radius:8px;box-shadow:0 10px 38px -10px #16171859,0 10px 20px -15px #16171833;background:#fff;border:1px solid #e5e7eb}._userMenuHeader_366z5_39{padding:16px;border-bottom:1px solid #f3f4f6}._userInfo_366z5_44{display:flex;align-items:center;gap:12px}._userAvatarSmall_366z5_50{width:32px;height:32px;border-radius:50%;background:var(--color-brand);display:flex;align-items:center;justify-content:center;color:var(--color-brand-foreground);font-weight:600;font-size:12px;-webkit-user-select:none;user-select:none}._userDetails_366z5_64{flex:1;min-width:0}._userName_366z5_69{font-weight:600;font-size:14px;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userEmail_366z5_78{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userMenuActions_366z5_86{padding:8px}._userMenuItem_366z5_90{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;border:none;background:none;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px;color:#374151;text-align:left}._userMenuItem_366z5_90:hover{background-color:#f9fafb;color:#111827}._userMenuItem_366z5_90:active{background-color:#f3f4f6}._logoutItem_366z5_115:hover{background-color:#fef2f2;color:#dc2626}._logoutItem_366z5_115:active{background-color:#fee2e2}._spinner_366z5_124{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:_spin_366z5_124 1s linear infinite}@keyframes _spin_366z5_124{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._userMenuItem_366z5_90:disabled{opacity:.6;cursor:not-allowed}._userMenuItem_366z5_90:disabled:hover{background-color:transparent;color:inherit}._logoutItem_366z5_115:disabled:hover{background-color:transparent;color:inherit}._button_1je4h_2{display:flex;align-items:center;justify-content:center;font-size:.875rem;border-radius:.375rem;font-weight:500;transition:all .15s ease-in-out;cursor:pointer;border:1px solid transparent;background-color:var(--color-brand);color:var(--color-brand-foreground)}._button_1je4h_2:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-brand)}._button_1je4h_2:disabled{pointer-events:none;opacity:.6;cursor:not-allowed}._button_1je4h_2[data-variant=default]:hover:not(:disabled){background-color:var(--color-brand);opacity:.9}._button_1je4h_2[data-variant=outline]{border:1px solid #d1d5db;background-color:transparent;color:#374151}._button_1je4h_2[data-variant=outline]:hover:not(:disabled){background-color:#f3f4f6;color:#111827}._button_1je4h_2[data-variant=destructive]{background-color:#ef4444;color:#fff}._button_1je4h_2[data-variant=destructive]:hover:not(:disabled){background-color:#dc2626}._button_1je4h_2[data-variant=success]{background-color:#dcfce7;color:#166534;border:1px solid #16a34a}._button_1je4h_2[data-size=default]{height:2.25rem;padding:0 .75rem}._button_1je4h_2[data-size=lg]{height:2.5rem;padding:.5rem 1rem}._content_1je4h_70{display:flex;align-items:center;gap:.5rem}._icon_1je4h_77{display:flex;align-items:center;justify-content:center}._icon_1je4h_77 svg{width:1rem;height:1rem}._spinner_1je4h_89{animation:_spin_1je4h_89 1s linear infinite}@keyframes _spin_1je4h_89{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._iconEnter_1je4h_103{animation:_iconScale_1je4h_1 .3s ease-in-out}@keyframes _iconScale_1je4h_1{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}._text_1je4h_119{white-space:nowrap}._label_wx5fd_5{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#374151}._inputWrapper_wx5fd_13{display:flex;gap:.5rem}._input_wx5fd_13{flex:1;border-radius:.375rem;border:1px solid #d1d5db;padding:.5rem .75rem;font-size:.875rem;transition:all .15s ease-in-out}._input_wx5fd_13:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 1px var(--color-brand)}._input_wx5fd_13:disabled{background-color:#f9fafb;color:#6b7280}._editButton_wx5fd_38{font-size:.875rem}._container_x1dec_1{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem}._iconWrapper_x1dec_9{width:4rem;height:4rem;border-radius:50%;background-color:#f0fdf4;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}._icon_x1dec_9{width:2rem;height:2rem;color:#16a34a}._content_x1dec_26{margin-bottom:2rem}._title_x1dec_30{font-size:1.5rem;font-weight:600;color:#111827;margin-bottom:.5rem}._message_x1dec_37{font-size:.875rem;color:#374151;margin-bottom:.75rem;line-height:1.5}._message_x1dec_37 strong{color:#111827;font-weight:600}._submessage_x1dec_49{font-size:.75rem;color:#6b7280;line-height:1.5}._actions_x1dec_55{width:100%}._resetButton_x1dec_59{width:100%;font-size:.875rem}._errorContainer_1mfd3_5{margin-bottom:1rem}._divider_1mfd3_9{margin:1rem 0;display:flex;align-items:center}._dividerLine_1mfd3_15{flex:1;height:1px;background-color:#e5e7eb}._dividerText_1mfd3_21{padding:0 .75rem;font-size:.875rem;color:#6b7280}._formSection_1mfd3_27{display:flex;flex-direction:column;gap:1rem}._fullWidthButton_1mfd3_36{width:100%}._oauthContainer_1mfd3_41{display:flex;flex:1;flex-direction:column;gap:.5rem;justify-content:space-evenly;align-items:center}._oauthContainer_1mfd3_41>div{width:100%}._googleButton_1mfd3_54{display:inline-flex;align-items:center;justify-content:center;width:100%;height:2.5rem;padding:0 1rem;border:1px solid oklch(.922 0 0);border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}._googleButton_1mfd3_54:hover{background:#f5f5f5}._googleButton_1mfd3_54:disabled{opacity:.5;cursor:not-allowed}._googleIcon_1mfd3_78{width:1.25rem;height:1.25rem;margin-right:.5rem}._errorContainer_1mfd3_5{margin-top:1rem;width:100%}._errorContent_1mfd3_90{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#ffe6e6;border:1px solid #ffcccc;border-radius:.375rem}._errorIcon_1mfd3_100{flex-shrink:0;font-size:1.125rem;color:#d63031;margin-top:.125rem}._errorText_1mfd3_107{flex:1;min-width:0}._errorTitle_1mfd3_112{font-size:.875rem;font-weight:600;color:#d63031;margin-bottom:.25rem}._errorMessage_1mfd3_119{font-size:.875rem;color:#d63031;line-height:1.4}._errorDismiss_1mfd3_125{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:.25rem;color:#d63031;cursor:pointer;font-size:1.125rem;line-height:1;transition:background-color .2s}._errorDismiss_1mfd3_125:hover{background:#ffe6e6}._errorDismiss_1mfd3_125:focus{outline:none;background:#ffe6e6;box-shadow:0 0 0 2px oklch(from var(--ring) l c h / .2)}._label_1c9qn_5{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#374151}._inputGroup_1c9qn_13{display:flex;gap:.5rem;margin-bottom:1rem}._input_1c9qn_13{width:3rem;height:3rem;text-align:center;border-radius:.375rem;border:1px solid #d1d5db;font-size:1.125rem;font-weight:500;transition:all .15s ease-in-out}._input_1c9qn_13:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 1px var(--color-brand)}._resendButton_1c9qn_36{font-size:.875rem;color:var(--color-brand);background:none;border:none;cursor:pointer;transition:color .15s ease-in-out}._resendButton_1c9qn_36:hover:not(:disabled){color:var(--color-brand);opacity:.8}._resendButton_1c9qn_36:disabled{opacity:.5;cursor:not-allowed}._label_1fvbo_1{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:#374151}._inputWrapper_1fvbo_9{display:flex;gap:.5rem}._phoneInputWrapper_1fvbo_14{flex:1;display:flex}._input_1fvbo_9{flex:1;border-radius:0 .375rem .375rem 0;border:1px solid #d1d5db;border-left:none;padding:.5rem .75rem;font-size:.875rem;transition:all .15s ease-in-out;width:100%}._input_1fvbo_9:focus{border-color:var(--color-brand);outline:none;box-shadow:0 0 0 1px var(--color-brand)}._input_1fvbo_9:disabled{background-color:#f9fafb;color:#6b7280}._selector_1fvbo_41{display:flex;align-items:center;justify-content:center;padding:0 .75rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem 0 0 .375rem;cursor:pointer;transition:all .15s ease-in-out}._selector_1fvbo_41:hover{background-color:#f9fafb}._selector_1fvbo_41:focus-visible{outline:0;box-shadow:inset 0 0 0 1px var(--color-brand);border-color:var(--color-brand);z-index:1}._selector_1fvbo_41:disabled{background-color:#f9fafb;cursor:not-allowed}._editButton_1fvbo_69{font-size:.875rem}._dropdownContent_1fvbo_73{z-index:50;width:300px;max-height:260px;overflow-y:auto;border-radius:.375rem;background-color:#fff;padding:.5rem 0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border:1px solid #e5e7eb;display:flex;flex-direction:column}._countryItem_1fvbo_89{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;cursor:pointer;font-size:.875rem;color:#374151;transition:background-color .1s;width:100%;text-align:left;border:none;background:none}._countryItem_1fvbo_89:hover,._countryItem_1fvbo_89:focus,._countryItem_1fvbo_89[data-selected=true]{background-color:#f3f4f6;outline:none}._flag_1fvbo_111{width:20px;height:15px;object-fit:cover;border-radius:2px}._countryName_1fvbo_118{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._dialCode_1fvbo_125{color:#6b7280;font-size:.75rem}.react-international-phone-country-selector{position:relative}.react-international-phone-country-selector-button{display:flex;height:var(--react-international-phone-height, 36px);box-sizing:border-box;align-items:center;justify-content:center;padding:0;border:1px solid var(--react-international-phone-country-selector-border-color, var(--react-international-phone-border-color, gainsboro));margin:0;appearance:button;-webkit-appearance:button;background-color:var(--react-international-phone-country-selector-background-color, var(--react-international-phone-background-color, white));cursor:pointer;text-transform:none;-webkit-user-select:none;user-select:none}.react-international-phone-country-selector-button:hover{background-color:var(--react-international-phone-country-selector-background-color-hover, whitesmoke)}.react-international-phone-country-selector-button--hide-dropdown{cursor:auto}.react-international-phone-country-selector-button--hide-dropdown:hover{background-color:transparent}.react-international-phone-country-selector-button__button-content{display:flex;align-items:center;justify-content:center}.react-international-phone-country-selector-button__flag-emoji{margin:0 4px}.react-international-phone-country-selector-button__flag-emoji--disabled{opacity:.75}.react-international-phone-country-selector-button__dropdown-arrow{border-top:var(--react-international-phone-country-selector-arrow-size, 4px) solid var(--react-international-phone-country-selector-arrow-color, #777);border-right:var(--react-international-phone-country-selector-arrow-size, 4px) solid transparent;border-left:var(--react-international-phone-country-selector-arrow-size, 4px) solid transparent;margin-right:4px;transition:all .1s ease-out}.react-international-phone-country-selector-button__dropdown-arrow--active{transform:rotateX(180deg)}.react-international-phone-country-selector-button__dropdown-arrow--disabled{border-top-color:var(--react-international-phone-disabled-country-selector-arrow-color, #999)}.react-international-phone-country-selector-button--disabled{background-color:var(--react-international-phone-disabled-country-selector-background-color, var(--react-international-phone-disabled-background-color, whitesmoke));cursor:auto}.react-international-phone-country-selector-button--disabled:hover{background-color:var(--react-international-phone-disabled-country-selector-background-color, var(--react-international-phone-disabled-background-color, whitesmoke))}.react-international-phone-flag-emoji{width:var(--react-international-phone-flag-width, 24px);height:var(--react-international-phone-flag-height, 24px);box-sizing:border-box}.react-international-phone-country-selector-dropdown{position:absolute;z-index:1;top:var(--react-international-phone-dropdown-top, 44px);left:var(--react-international-phone-dropdown-left, 0);display:flex;width:300px;max-height:200px;flex-direction:column;padding:4px 0;margin:0;background-color:var(--react-international-phone-dropdown-item-background-color, var(--react-international-phone-background-color, white));box-shadow:var(--react-international-phone-dropdown-shadow, 2px 2px 16px rgba(0, 0, 0, .25));color:var(--react-international-phone-dropdown-item-text-color, var(--react-international-phone-text-color, #222));list-style:none;overflow-y:scroll}.react-international-phone-country-selector-dropdown__preferred-list-divider{height:1px;border:none;margin:var(--react-international-phone-dropdown-preferred-list-divider-margin, 0);background:var(--react-international-phone-dropdown-preferred-list-divider-color, var(--react-international-phone-border-color, gainsboro))}.react-international-phone-country-selector-dropdown__list-item{display:flex;min-height:var(--react-international-phone-dropdown-item-height, 28px);box-sizing:border-box;align-items:center;padding:2px 8px}.react-international-phone-country-selector-dropdown__list-item-flag-emoji{margin-right:8px}.react-international-phone-country-selector-dropdown__list-item-country-name{overflow:hidden;margin-right:8px;font-size:var(--react-international-phone-dropdown-item-font-size, 14px);text-overflow:ellipsis;white-space:nowrap}.react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-dropdown-item-dial-code-color, gray);font-size:var(--react-international-phone-dropdown-item-font-size, 14px)}.react-international-phone-country-selector-dropdown__list-item:hover{background-color:var(--react-international-phone-selected-dropdown-item-background-color, var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke));cursor:pointer}.react-international-phone-country-selector-dropdown__list-item--selected,.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke);color:var(--react-international-phone-selected-dropdown-item-text-color, var(--react-international-phone-text-color, #222))}.react-international-phone-country-selector-dropdown__list-item--selected .react-international-phone-country-selector-dropdown__list-item-dial-code,.react-international-phone-country-selector-dropdown__list-item--focused .react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-selected-dropdown-item-dial-code-color, var(--react-international-phone-dropdown-item-dial-code-color, gray))}.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color, var(--react-international-phone-selected-dropdown-item-background-color, whitesmoke))}.react-international-phone-dial-code-preview{display:flex;align-items:center;justify-content:center;padding:0 8px;border:1px solid var(--react-international-phone-dial-code-preview-border-color, var(--react-international-phone-border-color, gainsboro));margin-right:-1px;background-color:var(--react-international-phone-dial-code-preview-background-color, var(--react-international-phone-background-color, white));color:var(--react-international-phone-dial-code-preview-text-color, var(--react-international-phone-text-color, #222));font-size:var(--react-international-phone-dial-code-preview-font-size, var(--react-international-phone-font-size, 13px))}.react-international-phone-dial-code-preview--disabled{background-color:var(--react-international-phone-dial-code-preview-disabled-background-color, var(--react-international-phone-disabled-background-color, whitesmoke));color:var(--react-international-phone-dial-code-preview-disabled-text-color, var(--react-international-phone-disabled-text-color, #666))}.react-international-phone-input-container{display:flex}.react-international-phone-input-container .react-international-phone-country-selector-button{border-radius:var(--react-international-phone-border-radius, 4px);margin-right:-1px;border-bottom-right-radius:0;border-top-right-radius:0}.react-international-phone-input-container .react-international-phone-input{overflow:visible;height:var(--react-international-phone-height, 36px);box-sizing:border-box;padding:0 8px;border:1px solid var(--react-international-phone-border-color, gainsboro);border-radius:var(--react-international-phone-border-radius, 4px);margin:0;background-color:var(--react-international-phone-background-color, white);border-bottom-left-radius:0;border-top-left-radius:0;color:var(--react-international-phone-text-color, #222);font-family:inherit;font-size:var(--react-international-phone-font-size, 13px)}.react-international-phone-input-container .react-international-phone-input:focus{outline:none}.react-international-phone-input-container .react-international-phone-input--disabled{background-color:var(--react-international-phone-disabled-background-color, whitesmoke);color:var(--react-international-phone-disabled-text-color, #666)}._container_301k2_1{display:flex;flex-direction:column;gap:1rem;width:100%}._divider_301k2_8{position:relative;height:1px;width:100%;background-color:var(--border)}._dividerText_301k2_15{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;background:var(--background);padding:0 1rem;font-size:.875rem;color:var(--muted-foreground)}._formSection_301k2_27{display:flex;flex-direction:column;gap:1rem;width:100%}._googleButton_301k2_34{display:inline-flex;align-items:center;justify-content:center;width:100%;height:2.5rem;padding:0 1rem;border:1px solid var(--border);border-radius:.375rem;background:var(--background);font-size:.875rem;font-weight:500;color:var(--foreground);cursor:pointer;transition:background-color .2s}._googleButton_301k2_34:hover{background:var(--accent)}._googleButton_301k2_34:disabled{opacity:.5;cursor:not-allowed}._googleIcon_301k2_60{width:1.25rem;height:1.25rem;margin-right:.5rem}._primaryButton_301k2_66{width:100%}._errorContainer_301k2_70{margin-top:1rem;width:100%}._errorContent_301k2_75{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:oklch(from var(--destructive) l c h / .1);border:1px solid oklch(from var(--destructive) l c h / .3);border-radius:.375rem}._errorIcon_301k2_85{flex-shrink:0;font-size:1.125rem;color:var(--destructive);margin-top:.125rem}._errorText_301k2_92{flex:1;min-width:0}._errorTitle_301k2_97{font-size:.875rem;font-weight:600;color:var(--destructive);margin-bottom:.25rem}._errorMessage_301k2_104{font-size:.875rem;color:var(--destructive);line-height:1.4}._errorDismiss_301k2_110{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:.25rem;color:var(--destructive);cursor:pointer;font-size:1.125rem;line-height:1;transition:background-color .2s}._errorDismiss_301k2_110:hover{background:oklch(from var(--destructive) l c h / .1)}._errorDismiss_301k2_110:focus{outline:none;background:oklch(from var(--destructive) l c h / .1);box-shadow:0 0 0 2px oklch(from var(--ring) l c h / .2)}._container_t4trl_1{position:fixed;inset:0;background:color-mix(in oklch,var(--color-brand) 5%,transparent);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}._card_t4trl_16{background:#fff;border-radius:1rem;box-shadow:0 25px 50px #0000001a;width:100%;overflow:hidden;max-height:90vh;display:flex;flex-direction:column}._cardSm_t4trl_27{max-width:28rem}._cardMd_t4trl_31{max-width:32rem}._cardLg_t4trl_35{max-width:36rem}._logoContainer_t4trl_39{display:flex;justify-content:center;padding:2rem 2rem 1rem;background:color-mix(in oklch,var(--color-brand) 15%,transparent);flex-shrink:0}._logo_t4trl_39{height:3rem;width:auto;object-fit:contain}._content_t4trl_53{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:2rem 0}@media (max-width: 640px){._container_t4trl_1{padding:.5rem}._card_t4trl_16{max-width:100%;max-height:95vh}._content_t4trl_53{padding:1.5rem 0}._logoContainer_t4trl_39{padding:1.5rem 1.5rem 1rem}._logo_t4trl_39{height:2.5rem}}._header_s7k8g_1{text-align:center;margin-bottom:2rem;padding:0 2rem}._title_s7k8g_7{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}._subtitle_s7k8g_14{color:#6b7280;margin:0;line-height:1.5}._formWrapper_s7k8g_20{padding:0 2rem}@media (max-width: 640px){._header_s7k8g_1,._formWrapper_s7k8g_20{padding:0 1.5rem}._title_s7k8g_7{font-size:1.25rem}}._footnote_v8hnh_1{margin:0 2rem;padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:1rem}._footnoteText_v8hnh_11{font-size:.875rem;color:#6b7280;flex:1}._logoutButton_v8hnh_17{padding:.25rem .75rem;font-size:.875rem;font-weight:500;color:#374151;background:transparent;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;transition:all .2s;white-space:nowrap}._logoutButton_v8hnh_17:hover{background:#f3f4f6;border-color:#9ca3af}._logoutButton_v8hnh_17:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 640px){._footnote_v8hnh_1{margin:1.5rem 1.5rem 0;flex-direction:column;align-items:flex-start;gap:.5rem}._footnoteText_v8hnh_11{font-size:.8125rem}._logoutButton_v8hnh_17{align-self:stretch;text-align:center}}._header_emo7t_1{text-align:center;margin-bottom:1rem;flex-shrink:0;padding:0 2rem}._title_emo7t_8{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}._subtitle_emo7t_15{color:#6b7280;margin:0;line-height:1.5}._formContainer_emo7t_21{flex:1;margin-top:1rem;padding:0 2rem}@media (max-width: 640px){._header_emo7t_1,._formContainer_emo7t_21{padding:0 1.5rem}._title_emo7t_8{font-size:1.25rem}}
@@ -52,6 +52,13 @@ export declare const oklchToRGBA: (oklchColor: OKLCHColor) => string;
52
52
  * Returns black color string for invalid input
53
53
  */
54
54
  export declare const oklchToHex: (oklchColor: OKLCHColor | string | undefined) => string;
55
+ /**
56
+ * Calculate WCAG 2.0 contrast ratio between two OKLCH colors
57
+ * Returns a number where higher values indicate better contrast
58
+ * WCAG AA requires 4.5:1 for normal text, 3:1 for large text
59
+ * WCAG AAA requires 7:1 for normal text, 4.5:1 for large text
60
+ */
61
+ export declare const getWcagContrast: (foreground: OKLCHColor, background: OKLCHColor) => number;
55
62
  export declare const generateAccentColor: (oklch: OKLCHColor) => {
56
63
  oklch: OKLCHColor;
57
64
  hex: string;
@@ -1,3 +1,3 @@
1
- export declare function getKeysWithValue(obj: Record<string, any>): Record<string, any>;
1
+ export declare function getKeysWithValue(obj: Record<string, any>, maxDepth?: number): Record<string, any>;
2
2
  export default getKeysWithValue;
3
3
  //# sourceMappingURL=getKeysWithValue.d.ts.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Replaces template variables in a string with values from an object
3
+ * @example format("Hello {name}", { name: "World" }) => "Hello World"
4
+ * @example format("{user.name} is {user.age}", { "user.name": "John", "user.age": 30 }) => "John is 30"
5
+ */
6
+ export declare const format: (template: string, values: Record<string, unknown>) => string;
7
+ //# sourceMappingURL=string.d.ts.map