@duongthiu/onex-core 0.1.0 → 0.1.1

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 (190) hide show
  1. package/README.md +44 -65
  2. package/THEME_API.md +36 -33
  3. package/dist/api.js +14 -0
  4. package/dist/api.js.map +1 -0
  5. package/dist/api.mjs +5 -0
  6. package/dist/api.mjs.map +1 -0
  7. package/dist/auth.js +23 -0
  8. package/dist/auth.js.map +1 -0
  9. package/dist/auth.mjs +6 -0
  10. package/dist/auth.mjs.map +1 -0
  11. package/dist/blog.js +22 -0
  12. package/dist/blog.js.map +1 -0
  13. package/dist/blog.mjs +5 -0
  14. package/dist/blog.mjs.map +1 -0
  15. package/dist/cart.js +27 -0
  16. package/dist/cart.js.map +1 -0
  17. package/dist/cart.mjs +6 -0
  18. package/dist/cart.mjs.map +1 -0
  19. package/dist/chunk-2CSWHI3L.js +210 -0
  20. package/dist/chunk-2CSWHI3L.js.map +1 -0
  21. package/dist/chunk-2FGHIDUV.js +99 -0
  22. package/dist/chunk-2FGHIDUV.js.map +1 -0
  23. package/dist/chunk-2NMEKWO5.js +40 -0
  24. package/dist/chunk-2NMEKWO5.js.map +1 -0
  25. package/dist/chunk-43BVHGDT.mjs +131 -0
  26. package/dist/chunk-43BVHGDT.mjs.map +1 -0
  27. package/dist/chunk-4JVQJI3I.mjs +290 -0
  28. package/dist/chunk-4JVQJI3I.mjs.map +1 -0
  29. package/dist/chunk-5N2EKK5O.js +9550 -0
  30. package/dist/chunk-5N2EKK5O.js.map +1 -0
  31. package/dist/chunk-5T6NDVSN.js +76 -0
  32. package/dist/chunk-5T6NDVSN.js.map +1 -0
  33. package/dist/chunk-73AINNCI.mjs +201 -0
  34. package/dist/chunk-73AINNCI.mjs.map +1 -0
  35. package/dist/chunk-AIXBDAVP.mjs +61 -0
  36. package/dist/chunk-AIXBDAVP.mjs.map +1 -0
  37. package/dist/chunk-ALYN5HAC.js +210 -0
  38. package/dist/chunk-ALYN5HAC.js.map +1 -0
  39. package/dist/chunk-AREMJR3Q.js +36 -0
  40. package/dist/chunk-AREMJR3Q.js.map +1 -0
  41. package/dist/chunk-DXAI6XOI.mjs +33 -0
  42. package/dist/chunk-DXAI6XOI.mjs.map +1 -0
  43. package/dist/chunk-F5TFNWFJ.mjs +257 -0
  44. package/dist/chunk-F5TFNWFJ.mjs.map +1 -0
  45. package/dist/chunk-FQ7FWUZN.js +265 -0
  46. package/dist/chunk-FQ7FWUZN.js.map +1 -0
  47. package/dist/{chunk-3SZX6LHT.js → chunk-J27VGXJH.js} +2 -24
  48. package/dist/chunk-J27VGXJH.js.map +1 -0
  49. package/dist/chunk-JZ46LLTZ.js +121 -0
  50. package/dist/chunk-JZ46LLTZ.js.map +1 -0
  51. package/dist/chunk-K24UHN6G.mjs +76 -0
  52. package/dist/chunk-K24UHN6G.mjs.map +1 -0
  53. package/dist/chunk-KCQGGU5R.mjs +344 -0
  54. package/dist/chunk-KCQGGU5R.mjs.map +1 -0
  55. package/dist/chunk-MT22NYKT.mjs +117 -0
  56. package/dist/chunk-MT22NYKT.mjs.map +1 -0
  57. package/dist/chunk-NDD472IZ.js +85 -0
  58. package/dist/chunk-NDD472IZ.js.map +1 -0
  59. package/dist/chunk-NHOIGGYU.mjs +833 -0
  60. package/dist/chunk-NHOIGGYU.mjs.map +1 -0
  61. package/dist/chunk-O3XR7TW3.mjs +12 -0
  62. package/dist/chunk-O3XR7TW3.mjs.map +1 -0
  63. package/dist/chunk-OAPYSC2X.mjs +206 -0
  64. package/dist/chunk-OAPYSC2X.mjs.map +1 -0
  65. package/dist/{chunk-XE4EOKS4.mjs → chunk-ONJREDYY.mjs} +3 -23
  66. package/dist/chunk-ONJREDYY.mjs.map +1 -0
  67. package/dist/chunk-OVT2LUAM.js +197 -0
  68. package/dist/chunk-OVT2LUAM.js.map +1 -0
  69. package/dist/chunk-OWNGNGKL.js +331 -0
  70. package/dist/chunk-OWNGNGKL.js.map +1 -0
  71. package/dist/chunk-P7SXNZSV.js +298 -0
  72. package/dist/chunk-P7SXNZSV.js.map +1 -0
  73. package/dist/chunk-PFJOL3HI.mjs +71 -0
  74. package/dist/chunk-PFJOL3HI.mjs.map +1 -0
  75. package/dist/chunk-PPULMWJ6.js +295 -0
  76. package/dist/chunk-PPULMWJ6.js.map +1 -0
  77. package/dist/chunk-RGIVKACG.js +359 -0
  78. package/dist/chunk-RGIVKACG.js.map +1 -0
  79. package/dist/chunk-RPP5K2LP.js +870 -0
  80. package/dist/chunk-RPP5K2LP.js.map +1 -0
  81. package/dist/{chunk-7EON6Q4L.mjs → chunk-RUCHWUD7.mjs} +7651 -6370
  82. package/dist/chunk-RUCHWUD7.mjs.map +1 -0
  83. package/dist/chunk-SEVUIX4H.js +137 -0
  84. package/dist/chunk-SEVUIX4H.js.map +1 -0
  85. package/dist/chunk-SK2FSHFM.mjs +208 -0
  86. package/dist/chunk-SK2FSHFM.mjs.map +1 -0
  87. package/dist/chunk-T6EJ2GAV.mjs +294 -0
  88. package/dist/chunk-T6EJ2GAV.mjs.map +1 -0
  89. package/dist/chunk-ULBDOFZI.mjs +302 -0
  90. package/dist/chunk-ULBDOFZI.mjs.map +1 -0
  91. package/dist/chunk-V3JIELNV.js +241 -0
  92. package/dist/chunk-V3JIELNV.js.map +1 -0
  93. package/dist/chunk-V5E2KWMA.mjs +238 -0
  94. package/dist/chunk-V5E2KWMA.mjs.map +1 -0
  95. package/dist/chunk-VJA3ER6A.js +14 -0
  96. package/dist/chunk-VJA3ER6A.js.map +1 -0
  97. package/dist/chunk-VLI7ULX5.js +66 -0
  98. package/dist/chunk-VLI7ULX5.js.map +1 -0
  99. package/dist/chunk-WFGS5OFH.mjs +189 -0
  100. package/dist/chunk-WFGS5OFH.mjs.map +1 -0
  101. package/dist/chunk-WVC5GP24.mjs +96 -0
  102. package/dist/chunk-WVC5GP24.mjs.map +1 -0
  103. package/dist/chunk-YOSPWY5K.mjs +36 -0
  104. package/dist/chunk-YOSPWY5K.mjs.map +1 -0
  105. package/dist/chunk-ZFFXXLX7.js +205 -0
  106. package/dist/chunk-ZFFXXLX7.js.map +1 -0
  107. package/dist/client.js +512 -249
  108. package/dist/client.mjs +21 -2
  109. package/dist/components.js +393 -0
  110. package/dist/components.js.map +1 -0
  111. package/dist/components.mjs +8 -0
  112. package/dist/components.mjs.map +1 -0
  113. package/dist/config.js +17 -0
  114. package/dist/config.js.map +1 -0
  115. package/dist/config.mjs +4 -0
  116. package/dist/config.mjs.map +1 -0
  117. package/dist/contact.js +22 -0
  118. package/dist/contact.js.map +1 -0
  119. package/dist/contact.mjs +5 -0
  120. package/dist/contact.mjs.map +1 -0
  121. package/dist/contexts.js +51 -0
  122. package/dist/contexts.js.map +1 -0
  123. package/dist/contexts.mjs +6 -0
  124. package/dist/contexts.mjs.map +1 -0
  125. package/dist/finance.js +26 -0
  126. package/dist/finance.js.map +1 -0
  127. package/dist/finance.mjs +5 -0
  128. package/dist/finance.mjs.map +1 -0
  129. package/dist/icons.js +15 -0
  130. package/dist/icons.js.map +1 -0
  131. package/dist/icons.mjs +4 -0
  132. package/dist/icons.mjs.map +1 -0
  133. package/dist/index.js +512 -249
  134. package/dist/index.js.map +1 -1
  135. package/dist/index.mjs +21 -2
  136. package/dist/index.mjs.map +1 -1
  137. package/dist/internal.js +1437 -0
  138. package/dist/internal.js.map +1 -0
  139. package/dist/internal.mjs +1404 -0
  140. package/dist/internal.mjs.map +1 -0
  141. package/dist/motion.js +51 -0
  142. package/dist/motion.js.map +1 -0
  143. package/dist/motion.mjs +38 -0
  144. package/dist/motion.mjs.map +1 -0
  145. package/dist/orders.js +22 -0
  146. package/dist/orders.js.map +1 -0
  147. package/dist/orders.mjs +5 -0
  148. package/dist/orders.mjs.map +1 -0
  149. package/dist/products.js +27 -0
  150. package/dist/products.js.map +1 -0
  151. package/dist/products.mjs +6 -0
  152. package/dist/products.mjs.map +1 -0
  153. package/dist/registry.js +44 -0
  154. package/dist/registry.js.map +1 -0
  155. package/dist/registry.mjs +7 -0
  156. package/dist/registry.mjs.map +1 -0
  157. package/dist/renderers.js +51 -0
  158. package/dist/renderers.js.map +1 -0
  159. package/dist/renderers.mjs +6 -0
  160. package/dist/renderers.mjs.map +1 -0
  161. package/dist/server.js +11 -189
  162. package/dist/server.js.map +1 -1
  163. package/dist/server.mjs +3 -186
  164. package/dist/server.mjs.map +1 -1
  165. package/dist/types.js +37 -0
  166. package/dist/types.js.map +1 -0
  167. package/dist/types.mjs +4 -0
  168. package/dist/types.mjs.map +1 -0
  169. package/dist/utils.js +160 -0
  170. package/dist/utils.js.map +1 -0
  171. package/dist/utils.mjs +7 -0
  172. package/dist/utils.mjs.map +1 -0
  173. package/dist/wrappers.js +104 -0
  174. package/dist/wrappers.js.map +1 -0
  175. package/dist/wrappers.mjs +96 -0
  176. package/dist/wrappers.mjs.map +1 -0
  177. package/package.json +112 -9
  178. package/dist/api-vuL1Eg5L.d.mts +0 -2961
  179. package/dist/api-vuL1Eg5L.d.ts +0 -2961
  180. package/dist/chunk-3SZX6LHT.js.map +0 -1
  181. package/dist/chunk-7EON6Q4L.mjs.map +0 -1
  182. package/dist/chunk-WDY773GJ.js +0 -8308
  183. package/dist/chunk-WDY773GJ.js.map +0 -1
  184. package/dist/chunk-XE4EOKS4.mjs.map +0 -1
  185. package/dist/client.d.mts +0 -1461
  186. package/dist/client.d.ts +0 -1461
  187. package/dist/index.d.mts +0 -125
  188. package/dist/index.d.ts +0 -125
  189. package/dist/server.d.mts +0 -70
  190. package/dist/server.d.ts +0 -70
@@ -0,0 +1,1437 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunk5T6NDVSN_js = require('./chunk-5T6NDVSN.js');
5
+ var chunkJZ46LLTZ_js = require('./chunk-JZ46LLTZ.js');
6
+ var chunk2CSWHI3L_js = require('./chunk-2CSWHI3L.js');
7
+ var chunkV3JIELNV_js = require('./chunk-V3JIELNV.js');
8
+ require('./chunk-2NMEKWO5.js');
9
+
10
+ // src/app-stubs.ts
11
+ function ensureHeaderComponents(section) {
12
+ if (section.components && section.components.length > 0) {
13
+ return section.components;
14
+ }
15
+ const { settings } = section;
16
+ return [
17
+ {
18
+ id: "header-logo",
19
+ type: "heading",
20
+ order: 0,
21
+ content: {
22
+ text: String((settings == null ? void 0 : settings.logoText) || "VTECH FILM"),
23
+ tag: "span"
24
+ },
25
+ style: {
26
+ fontSize: "2xl",
27
+ fontWeight: "bold",
28
+ color: "#F07E22",
29
+ fontFamily: "Montserrat, sans-serif"
30
+ },
31
+ enabled: true
32
+ },
33
+ {
34
+ id: "header-tagline",
35
+ type: "paragraph",
36
+ order: 1,
37
+ content: {
38
+ text: String((settings == null ? void 0 : settings.tagline) || "L\xC0M M\xC1T CHO NG\u01AF\u1EDCI VI\u1EC6T")
39
+ },
40
+ style: {
41
+ fontSize: "xs",
42
+ fontWeight: "medium",
43
+ color: "#6B7280",
44
+ textTransform: "uppercase",
45
+ letterSpacing: "0.05em"
46
+ },
47
+ enabled: true
48
+ },
49
+ {
50
+ id: "header-cta",
51
+ type: "button",
52
+ order: 2,
53
+ content: {
54
+ text: String((settings == null ? void 0 : settings.ctaText) || "Li\xEAn h\u1EC7"),
55
+ href: String((settings == null ? void 0 : settings.ctaLink) || "#contact")
56
+ },
57
+ style: {
58
+ fontSize: "sm",
59
+ fontWeight: "medium",
60
+ color: "#FFFFFF",
61
+ backgroundColor: "#F07E22",
62
+ padding: "0.5rem 1rem",
63
+ borderRadius: "0.375rem"
64
+ },
65
+ enabled: true
66
+ }
67
+ ];
68
+ }
69
+ function ensureFeaturesComponents(section) {
70
+ if (section.components && section.components.length > 0) {
71
+ return section.components;
72
+ }
73
+ const { settings } = section;
74
+ return [
75
+ {
76
+ id: "features-heading",
77
+ type: "heading",
78
+ order: 0,
79
+ content: {
80
+ text: String((settings == null ? void 0 : settings.heading) || "T\xEDnh n\u0103ng n\u1ED5i b\u1EADt"),
81
+ tag: "h2"
82
+ },
83
+ style: {
84
+ fontSize: "3xl",
85
+ fontWeight: "bold",
86
+ color: "#09090B",
87
+ marginBottom: "1rem",
88
+ fontFamily: "Montserrat, sans-serif"
89
+ },
90
+ enabled: true
91
+ },
92
+ {
93
+ id: "features-description",
94
+ type: "paragraph",
95
+ order: 1,
96
+ content: {
97
+ text: String(
98
+ (settings == null ? void 0 : settings.description) || "VTech Film mang \u0111\u1EBFn nh\u1EEFng t\xEDnh n\u0103ng v\u01B0\u1EE3t tr\u1ED9i cho kh\xF4ng gian c\u1EE7a b\u1EA1n"
99
+ )
100
+ },
101
+ style: {
102
+ fontSize: "base",
103
+ color: "#71717A",
104
+ maxWidth: "42rem",
105
+ margin: "0 auto"
106
+ },
107
+ enabled: true
108
+ }
109
+ ];
110
+ }
111
+ function ensureFooterComponents(section) {
112
+ if (section.components && section.components.length > 0) {
113
+ return section.components;
114
+ }
115
+ const { settings } = section;
116
+ return [
117
+ {
118
+ id: "footer-company-name",
119
+ type: "heading",
120
+ order: 0,
121
+ content: {
122
+ text: String((settings == null ? void 0 : settings.companyName) || "VTECH FILM"),
123
+ tag: "h3"
124
+ },
125
+ style: {
126
+ fontSize: "2xl",
127
+ fontWeight: "bold",
128
+ color: "#F07E22",
129
+ fontFamily: "Montserrat, sans-serif"
130
+ },
131
+ enabled: true
132
+ },
133
+ {
134
+ id: "footer-tagline",
135
+ type: "paragraph",
136
+ order: 1,
137
+ content: {
138
+ text: String((settings == null ? void 0 : settings.tagline) || "L\xC0M M\xC1T CHO NG\u01AF\u1EDCI VI\u1EC6T")
139
+ },
140
+ style: {
141
+ fontSize: "sm",
142
+ fontWeight: "medium",
143
+ color: "#9CA3AF",
144
+ textTransform: "uppercase",
145
+ letterSpacing: "0.05em"
146
+ },
147
+ enabled: true
148
+ },
149
+ {
150
+ id: "footer-description",
151
+ type: "paragraph",
152
+ order: 2,
153
+ content: {
154
+ text: String(
155
+ (settings == null ? void 0 : settings.description) || "Chuy\xEAn cung c\u1EA5p phim c\xE1ch nhi\u1EC7t cao c\u1EA5p cho \xF4 t\xF4 v\xE0 c\xF4ng tr\xECnh. Ch\u1EA5t l\u01B0\u1EE3ng - Uy t\xEDn - Chuy\xEAn nghi\u1EC7p."
156
+ )
157
+ },
158
+ style: {
159
+ fontSize: "sm",
160
+ color: "#9CA3AF",
161
+ lineHeight: "1.625"
162
+ },
163
+ enabled: true
164
+ },
165
+ {
166
+ id: "footer-products-title",
167
+ type: "heading",
168
+ order: 3,
169
+ content: {
170
+ text: String((settings == null ? void 0 : settings.productsColumnTitle) || "S\u1EA3n ph\u1EA9m"),
171
+ tag: "h4"
172
+ },
173
+ style: {
174
+ fontSize: "lg",
175
+ fontWeight: "semibold",
176
+ color: "#FFFFFF"
177
+ },
178
+ enabled: true
179
+ },
180
+ {
181
+ id: "footer-company-title",
182
+ type: "heading",
183
+ order: 4,
184
+ content: {
185
+ text: String((settings == null ? void 0 : settings.companyColumnTitle) || "C\xF4ng ty"),
186
+ tag: "h4"
187
+ },
188
+ style: {
189
+ fontSize: "lg",
190
+ fontWeight: "semibold",
191
+ color: "#FFFFFF"
192
+ },
193
+ enabled: true
194
+ },
195
+ {
196
+ id: "footer-contact-title",
197
+ type: "heading",
198
+ order: 5,
199
+ content: {
200
+ text: String((settings == null ? void 0 : settings.contactColumnTitle) || "Li\xEAn h\u1EC7"),
201
+ tag: "h4"
202
+ },
203
+ style: {
204
+ fontSize: "lg",
205
+ fontWeight: "semibold",
206
+ color: "#FFFFFF"
207
+ },
208
+ enabled: true
209
+ },
210
+ {
211
+ id: "footer-social-title",
212
+ type: "heading",
213
+ order: 6,
214
+ content: {
215
+ text: String((settings == null ? void 0 : settings.socialMediaTitle) || "Theo d\xF5i ch\xFAng t\xF4i"),
216
+ tag: "h4"
217
+ },
218
+ style: {
219
+ fontSize: "lg",
220
+ fontWeight: "semibold",
221
+ color: "#FFFFFF"
222
+ },
223
+ enabled: true
224
+ },
225
+ {
226
+ id: "footer-copyright",
227
+ type: "paragraph",
228
+ order: 7,
229
+ content: {
230
+ text: `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} ${String((settings == null ? void 0 : settings.copyrightText) || "VTech Film. B\u1EA3n quy\u1EC1n thu\u1ED9c v\u1EC1 VTech Film.")}`
231
+ },
232
+ style: {
233
+ fontSize: "sm",
234
+ color: "#6B7280"
235
+ },
236
+ enabled: true
237
+ }
238
+ ];
239
+ }
240
+ function ensureCategoriesComponents(section) {
241
+ if (section.components && section.components.length > 0) {
242
+ return section.components;
243
+ }
244
+ const { settings } = section;
245
+ return [
246
+ {
247
+ id: "categories-heading",
248
+ type: "heading",
249
+ order: 0,
250
+ content: {
251
+ text: String((settings == null ? void 0 : settings.heading) || "Danh m\u1EE5c s\u1EA3n ph\u1EA9m"),
252
+ tag: "h2"
253
+ },
254
+ style: {
255
+ fontSize: "3xl",
256
+ fontWeight: "bold",
257
+ color: "#09090B",
258
+ textAlign: "center",
259
+ marginBottom: "3rem",
260
+ fontFamily: "Montserrat, sans-serif"
261
+ },
262
+ enabled: true
263
+ }
264
+ ];
265
+ }
266
+ function ensureHeaderBlocks(section) {
267
+ if (section.blocks && section.blocks.length > 0) {
268
+ return section.blocks;
269
+ }
270
+ const { settings } = section;
271
+ let navItems = [];
272
+ try {
273
+ const navigationItemsStr = settings == null ? void 0 : settings.navigationItems;
274
+ if (navigationItemsStr) {
275
+ navItems = JSON.parse(navigationItemsStr);
276
+ }
277
+ } catch (e) {
278
+ navItems = [
279
+ { label: "Trang ch\u1EE7", href: "/" },
280
+ { label: "Gi\u1EDBi thi\u1EC7u", href: "/about" },
281
+ { label: "S\u1EA3n ph\u1EA9m", href: "/products" },
282
+ { label: "Tin t\u1EE9c", href: "/blog" }
283
+ ];
284
+ }
285
+ const navLinkComponents = navItems.map((item, index) => ({
286
+ id: `header-nav-link-${index}`,
287
+ type: "link",
288
+ order: index,
289
+ content: {
290
+ text: item.label,
291
+ href: item.href
292
+ },
293
+ style: {
294
+ fontSize: "sm",
295
+ fontWeight: "medium",
296
+ color: "#374151"
297
+ // text-gray-700
298
+ },
299
+ enabled: true
300
+ }));
301
+ return [
302
+ {
303
+ id: "header-navigation",
304
+ type: "navigation-links-block",
305
+ order: 0,
306
+ enabled: true,
307
+ settings: {
308
+ layout: "horizontal",
309
+ textSize: "sm",
310
+ textWeight: "medium",
311
+ spacing: "normal",
312
+ hoverEffect: "color"
313
+ },
314
+ components: navLinkComponents
315
+ }
316
+ ];
317
+ }
318
+ function ensureHeroComponents(section) {
319
+ if (section.components && section.components.length > 0) {
320
+ return section.components;
321
+ }
322
+ const { settings } = section;
323
+ const buttonStyleSetting = String((settings == null ? void 0 : settings.buttonStyle) || "filled");
324
+ const buttonBgColor = String((settings == null ? void 0 : settings.buttonBgColor) || "#002951");
325
+ const buttonTextColor = String((settings == null ? void 0 : settings.buttonTextColor) || "#FFFFFF");
326
+ const buttonBorderColor = String(
327
+ (settings == null ? void 0 : settings.buttonBorderColor) || buttonBgColor
328
+ );
329
+ return [
330
+ {
331
+ id: "hero-heading",
332
+ type: "heading",
333
+ order: 0,
334
+ content: {
335
+ text: String((settings == null ? void 0 : settings.heading) || ""),
336
+ tag: "h1"
337
+ },
338
+ style: {
339
+ fontSize: "sm",
340
+ fontWeight: "black",
341
+ textTransform: "uppercase",
342
+ color: "#FFFFFF"
343
+ },
344
+ enabled: true
345
+ },
346
+ {
347
+ id: "hero-subheading",
348
+ type: "heading",
349
+ order: 1,
350
+ content: {
351
+ text: String((settings == null ? void 0 : settings.subheading) || ""),
352
+ tag: "h2"
353
+ },
354
+ style: {
355
+ fontSize: "base",
356
+ fontWeight: "black",
357
+ textTransform: "uppercase",
358
+ color: "#FCE5D3"
359
+ },
360
+ enabled: true
361
+ },
362
+ {
363
+ id: "hero-description",
364
+ type: "paragraph",
365
+ order: 2,
366
+ content: {
367
+ text: String((settings == null ? void 0 : settings.description) || "")
368
+ },
369
+ style: {
370
+ fontSize: "xs",
371
+ fontWeight: "medium",
372
+ color: "#FFFFFF",
373
+ padding: "0 1rem"
374
+ },
375
+ enabled: true
376
+ },
377
+ ...(settings == null ? void 0 : settings.description2) ? [
378
+ {
379
+ id: "hero-description2",
380
+ type: "paragraph",
381
+ order: 3,
382
+ content: {
383
+ text: String(settings.description2)
384
+ },
385
+ style: {
386
+ fontSize: "xs",
387
+ fontWeight: "medium",
388
+ color: "#FFFFFF",
389
+ padding: "0 1rem"
390
+ },
391
+ styleMode: "advanced",
392
+ enabled: true
393
+ }
394
+ ] : [],
395
+ {
396
+ id: "hero-cta-button",
397
+ type: "button",
398
+ order: (settings == null ? void 0 : settings.description2) ? 4 : 3,
399
+ content: {
400
+ text: String((settings == null ? void 0 : settings.ctaText) || ""),
401
+ href: String((settings == null ? void 0 : settings.ctaUrl) || "")
402
+ },
403
+ style: {
404
+ padding: "0.75rem 1.5rem",
405
+ fontSize: "0.875rem",
406
+ color: buttonTextColor,
407
+ backgroundColor: buttonStyleSetting === "outline" ? "transparent" : buttonBgColor,
408
+ borderColor: buttonBorderColor,
409
+ borderWidth: buttonStyleSetting === "outline" ? "1px" : void 0,
410
+ borderStyle: buttonStyleSetting === "outline" ? "solid" : void 0,
411
+ borderRadius: "0.75rem"
412
+ },
413
+ enabled: true
414
+ }
415
+ ];
416
+ }
417
+ function ensureVideoComponents(section) {
418
+ if (section.components && section.components.length > 0) {
419
+ return section.components;
420
+ }
421
+ const { settings } = section;
422
+ const videoUrl = String((settings == null ? void 0 : settings.videoUrl) || "");
423
+ const detectVideoType = (url) => {
424
+ if (url.includes("youtube.com") || url.includes("youtu.be"))
425
+ return "youtube";
426
+ if (url.includes("vimeo.com")) return "vimeo";
427
+ return "hosted";
428
+ };
429
+ return [
430
+ {
431
+ id: "video-player",
432
+ type: "video",
433
+ order: 0,
434
+ content: {
435
+ videoType: detectVideoType(videoUrl),
436
+ videoUrl,
437
+ title: String((settings == null ? void 0 : settings.title) || "VTech Film Video"),
438
+ autoplay: Boolean(settings == null ? void 0 : settings.autoplay),
439
+ controls: true
440
+ },
441
+ style: {
442
+ aspectRatio: String((settings == null ? void 0 : settings.aspectRatio) || "16/9"),
443
+ width: "100%",
444
+ boxShadow: "none"
445
+ },
446
+ enabled: true
447
+ }
448
+ ];
449
+ }
450
+ function ensureBlogProjectsComponents(section) {
451
+ if (section.components && section.components.length > 0) {
452
+ return section.components;
453
+ }
454
+ const { settings } = section;
455
+ return [
456
+ {
457
+ id: "blog-projects-heading",
458
+ type: "heading",
459
+ order: 0,
460
+ content: {
461
+ text: String(
462
+ (settings == null ? void 0 : settings.heading) || "Ch\u1EA5t l\u01B0\u1EE3ng \u0111\u01B0\u1EE3c ch\u1EE9ng minh qua c\xF4ng tr\xECnh & xe Vtech Film"
463
+ ),
464
+ tag: "h2"
465
+ },
466
+ style: {
467
+ fontSize: "2xl",
468
+ fontWeight: "bold",
469
+ color: "#301907",
470
+ lineHeight: "1.3",
471
+ padding: "0 1rem"
472
+ },
473
+ enabled: true
474
+ },
475
+ {
476
+ id: "blog-projects-image",
477
+ type: "image",
478
+ order: 1,
479
+ content: {
480
+ src: String(
481
+ (settings == null ? void 0 : settings.projectImage) || "/assets/backgrounds/hero-background.jpg"
482
+ ),
483
+ alt: String((settings == null ? void 0 : settings.projectTitle) || "D\u1EF1 \xE1n phim c\xE1ch nhi\u1EC7t cao c\u1EA5p")
484
+ },
485
+ style: {
486
+ width: "100%",
487
+ height: "100%",
488
+ objectFit: "cover",
489
+ borderRadius: "0.75rem"
490
+ },
491
+ enabled: true
492
+ },
493
+ {
494
+ id: "blog-projects-title",
495
+ type: "heading",
496
+ order: 2,
497
+ content: {
498
+ text: String((settings == null ? void 0 : settings.projectTitle) || "D\u1EF1 \xE1n phim c\xE1ch nhi\u1EC7t cao c\u1EA5p"),
499
+ tag: "h3"
500
+ },
501
+ style: {
502
+ fontSize: "lg",
503
+ fontWeight: "black",
504
+ color: "#111827",
505
+ lineHeight: "1.2",
506
+ letterSpacing: "-0.48px"
507
+ },
508
+ enabled: true
509
+ },
510
+ {
511
+ id: "blog-projects-excerpt",
512
+ type: "paragraph",
513
+ order: 3,
514
+ content: {
515
+ text: String(
516
+ (settings == null ? void 0 : settings.projectExcerpt) || "Thi c\xF4ng phim c\xE1ch nhi\u1EC7t chuy\xEAn nghi\u1EC7p cho v\u0103n ph\xF2ng v\xE0 nh\xE0 k\xEDnh"
517
+ )
518
+ },
519
+ style: {
520
+ fontSize: "sm",
521
+ color: "#111827",
522
+ lineHeight: "1.2"
523
+ },
524
+ enabled: true
525
+ }
526
+ ];
527
+ }
528
+ function ensureContentCtaComponents(section) {
529
+ if (section.components && section.components.length > 0) {
530
+ return section.components;
531
+ }
532
+ const { settings } = section;
533
+ return [
534
+ {
535
+ id: "content-cta-heading",
536
+ type: "heading",
537
+ order: 0,
538
+ content: {
539
+ text: String((settings == null ? void 0 : settings.heading) || "Li\xEAn h\u1EC7 ngay h\xF4m nay"),
540
+ tag: "h2"
541
+ },
542
+ style: {
543
+ fontSize: "3xl",
544
+ fontWeight: "bold",
545
+ textAlign: "center",
546
+ color: "#FFFFFF"
547
+ },
548
+ enabled: true
549
+ }
550
+ ];
551
+ }
552
+ function ensureTestimonialsComponents(section) {
553
+ if (section.components && section.components.length > 0) {
554
+ return section.components;
555
+ }
556
+ const { settings } = section;
557
+ return [
558
+ {
559
+ id: "testimonials-heading",
560
+ type: "heading",
561
+ order: 0,
562
+ content: {
563
+ text: String((settings == null ? void 0 : settings.heading) || "\u0110\xE1nh gi\xE1 kh\xE1ch h\xE0ng"),
564
+ tag: "h2"
565
+ },
566
+ style: {
567
+ fontSize: "3xl",
568
+ fontWeight: "bold",
569
+ color: "#09090B",
570
+ textAlign: "center",
571
+ marginBottom: "1rem",
572
+ fontFamily: "Montserrat, sans-serif"
573
+ },
574
+ enabled: true
575
+ },
576
+ {
577
+ id: "testimonials-description",
578
+ type: "paragraph",
579
+ order: 1,
580
+ content: {
581
+ text: String(
582
+ (settings == null ? void 0 : settings.description) || "Nh\u1EEFng \u0111\xE1nh gi\xE1 t\u1EEB kh\xE1ch h\xE0ng c\u1EE7a ch\xFAng t\xF4i"
583
+ )
584
+ },
585
+ style: {
586
+ fontSize: "base",
587
+ color: "#6B7280",
588
+ textAlign: "center",
589
+ marginBottom: "3rem"
590
+ },
591
+ enabled: true
592
+ }
593
+ ];
594
+ }
595
+ function ensureContactComponents(section) {
596
+ if (section.components && section.components.length > 0) {
597
+ return section.components;
598
+ }
599
+ const { settings } = section;
600
+ return [
601
+ {
602
+ id: "contact-heading",
603
+ type: "heading",
604
+ order: 0,
605
+ content: {
606
+ text: String((settings == null ? void 0 : settings.heading) || "Li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i"),
607
+ tag: "h2"
608
+ },
609
+ style: {
610
+ fontSize: "3xl",
611
+ fontWeight: "bold",
612
+ color: "#09090B",
613
+ textAlign: "center",
614
+ marginBottom: "1rem",
615
+ fontFamily: "Montserrat, sans-serif"
616
+ },
617
+ enabled: true
618
+ },
619
+ {
620
+ id: "contact-description",
621
+ type: "paragraph",
622
+ order: 1,
623
+ content: {
624
+ text: String(
625
+ (settings == null ? void 0 : settings.description) || "Ch\xFAng t\xF4i lu\xF4n s\u1EB5n s\xE0ng h\u1ED7 tr\u1EE3 b\u1EA1n"
626
+ )
627
+ },
628
+ style: {
629
+ fontSize: "base",
630
+ color: "#6B7280",
631
+ textAlign: "center",
632
+ marginBottom: "3rem"
633
+ },
634
+ enabled: true
635
+ }
636
+ ];
637
+ }
638
+ function ensureBrandStoryComponents(section) {
639
+ if (section.components && section.components.length > 0) {
640
+ return section.components;
641
+ }
642
+ const { settings } = section;
643
+ const defaultStoryContent = `Ch\xFAng t\xF4i b\u1EAFt \u0111\u1EA7u h\xE0nh tr\xECnh t\u1EEB n\u0103m 1995, v\u1EDBi mong mu\u1ED1n b\u1EA3o t\u1ED3n v\xE0 ph\xE1t tri\u1EC3n ngh\u1EC7 thu\u1EADt th\u1EE7 c\xF4ng truy\u1EC1n th\u1ED1ng Vi\u1EC7t Nam. T\u1EEB m\u1ED9t x\u01B0\u1EDFng nh\u1ECF \u1EDF H\xE0 N\u1ED9i, ch\xFAng t\xF4i \u0111\xE3 ph\xE1t tri\u1EC3n th\xE0nh m\u1ED9t c\u1ED9ng \u0111\u1ED3ng g\u1ED3m h\u01A1n 200 ngh\u1EC7 nh\xE2n t\u1EEB c\xE1c l\xE0ng ngh\u1EC1 n\u1ED5i ti\u1EBFng nh\u01B0 B\xE1t Tr\xE0ng, Ph\xFA Vinh, H\u1EA1 Th\xE1i.
644
+
645
+ M\u1ED7i s\u1EA3n ph\u1EA9m c\u1EE7a ch\xFAng t\xF4i kh\xF4ng ch\u1EC9 l\xE0 m\u1ED9t m\xF3n \u0111\u1ED3, m\xE0 l\xE0 m\u1ED9t c\xE2u chuy\u1EC7n \u2013 c\xE2u chuy\u1EC7n v\u1EC1 tay ngh\u1EC1, v\u1EC1 v\u0103n h\xF3a, v\u1EC1 t\xECnh y\xEAu v\u1EDBi ngh\u1EC1 th\u1EE7 c\xF4ng. Ch\xFAng t\xF4i tin r\u1EB1ng, qua nh\u1EEFng s\u1EA3n ph\u1EA9m n\xE0y, di s\u1EA3n v\u0103n h\xF3a Vi\u1EC7t Nam s\u1EBD \u0111\u01B0\u1EE3c g\xECn gi\u1EEF v\xE0 lan t\u1ECFa \u0111\u1EBFn th\u1EBF gi\u1EDBi.
646
+
647
+ S\u1EE9 m\u1EC7nh c\u1EE7a ch\xFAng t\xF4i l\xE0 k\u1EBFt n\u1ED1i ng\u01B0\u1EDDi y\xEAu ngh\u1EC7 thu\u1EADt v\u1EDBi nh\u1EEFng t\xE1c ph\u1EA9m th\u1EE7 c\xF4ng cao c\u1EA5p, \u0111\u1ED3ng th\u1EDDi t\u1EA1o ra thu nh\u1EADp b\u1EC1n v\u1EEFng cho c\xE1c ngh\u1EC7 nh\xE2n v\xE0 gi\u1EEF g\xECn l\xE0ng ngh\u1EC1 truy\u1EC1n th\u1ED1ng.`;
648
+ return [
649
+ {
650
+ id: "brand-story-heading",
651
+ type: "heading",
652
+ order: 0,
653
+ content: {
654
+ text: String((settings == null ? void 0 : settings.heading) || "C\xE2u Chuy\u1EC7n Th\u01B0\u01A1ng Hi\u1EC7u"),
655
+ tag: "h2"
656
+ },
657
+ style: {
658
+ fontSize: "4xl",
659
+ fontWeight: "normal",
660
+ color: "#722F37",
661
+ fontStyle: "italic",
662
+ fontFamily: "serif",
663
+ textAlign: "center"
664
+ },
665
+ enabled: true
666
+ },
667
+ {
668
+ id: "brand-story-description",
669
+ type: "paragraph",
670
+ order: 1,
671
+ content: {
672
+ text: String(
673
+ (settings == null ? void 0 : settings.description) || "T\u1EEB nh\u1EEFng l\xE0ng ngh\u1EC1 truy\u1EC1n th\u1ED1ng, ch\xFAng t\xF4i mang \u0111\u1EBFn th\u1EBF gi\u1EDBi v\u1EBB \u0111\u1EB9p c\u1EE7a ngh\u1EC7 thu\u1EADt th\u1EE7 c\xF4ng Vi\u1EC7t Nam"
674
+ )
675
+ },
676
+ style: {
677
+ fontSize: "base",
678
+ color: "#6B5344",
679
+ textAlign: "center"
680
+ },
681
+ enabled: true
682
+ },
683
+ {
684
+ id: "brand-story-content",
685
+ type: "paragraph",
686
+ order: 2,
687
+ content: {
688
+ text: String((settings == null ? void 0 : settings.storyContent) || defaultStoryContent)
689
+ },
690
+ style: {
691
+ fontSize: "sm",
692
+ color: "#3D2314",
693
+ lineHeight: "1.625"
694
+ },
695
+ enabled: true
696
+ },
697
+ {
698
+ id: "brand-story-mission-title",
699
+ type: "heading",
700
+ order: 4,
701
+ content: {
702
+ text: String((settings == null ? void 0 : settings.missionTitle) || "S\u1EE9 M\u1EC7nh C\u1EE7a Ch\xFAng T\xF4i"),
703
+ tag: "h3"
704
+ },
705
+ style: {
706
+ fontSize: "lg",
707
+ fontWeight: "normal",
708
+ color: "#722F37",
709
+ fontFamily: "serif"
710
+ },
711
+ enabled: true
712
+ },
713
+ {
714
+ id: "brand-story-mission-text",
715
+ type: "paragraph",
716
+ order: 5,
717
+ content: {
718
+ text: String(
719
+ (settings == null ? void 0 : settings.missionText) || "G\xECn gi\u1EEF v\xE0 ph\xE1t huy gi\xE1 tr\u1ECB v\u0103n h\xF3a truy\u1EC1n th\u1ED1ng Vi\u1EC7t Nam th\xF4ng qua ngh\u1EC7 thu\u1EADt th\u1EE7 c\xF4ng, \u0111\u1ED3ng th\u1EDDi t\u1EA1o ra cu\u1ED9c s\u1ED1ng t\u1ED1t \u0111\u1EB9p h\u01A1n cho c\xE1c ngh\u1EC7 nh\xE2n v\xE0 c\u1ED9ng \u0111\u1ED3ng l\xE0ng ngh\u1EC1."
720
+ )
721
+ },
722
+ style: {
723
+ fontSize: "sm",
724
+ color: "#3D2314",
725
+ fontStyle: "italic",
726
+ fontFamily: "serif"
727
+ },
728
+ enabled: true
729
+ },
730
+ // Feature Card 1
731
+ {
732
+ id: "brand-story-feature-1-title",
733
+ type: "heading",
734
+ order: 6,
735
+ content: {
736
+ text: String((settings == null ? void 0 : settings.feature1Title) || "T\xE2m Huy\u1EBFt Ngh\u1EC7 Nh\xE2n"),
737
+ tag: "h4"
738
+ },
739
+ style: {
740
+ fontSize: "base",
741
+ fontWeight: "semibold",
742
+ color: "#3D2314"
743
+ },
744
+ enabled: true
745
+ },
746
+ {
747
+ id: "brand-story-feature-1-desc",
748
+ type: "paragraph",
749
+ order: 7,
750
+ content: {
751
+ text: String(
752
+ (settings == null ? void 0 : settings.feature1Desc) || "S\u1EA3n ph\u1EA9m l\xE0 t\xE2m huy\u1EBFt c\u1EE7a ngh\u1EC7 nh\xE2n, l\xE0m b\u1EB1ng t\xECnh y\xEAu v\xE0 \u0111am m\xEA v\u1EDBi ngh\u1EC1."
753
+ )
754
+ },
755
+ style: {
756
+ fontSize: "sm",
757
+ color: "#6B5344"
758
+ },
759
+ enabled: true
760
+ },
761
+ // Feature Card 2
762
+ {
763
+ id: "brand-story-feature-2-title",
764
+ type: "heading",
765
+ order: 8,
766
+ content: {
767
+ text: String((settings == null ? void 0 : settings.feature2Title) || "H\u1ED7 Tr\u1EE3 C\u1ED9ng \u0110\u1ED3ng"),
768
+ tag: "h4"
769
+ },
770
+ style: {
771
+ fontSize: "base",
772
+ fontWeight: "semibold",
773
+ color: "#3D2314"
774
+ },
775
+ enabled: true
776
+ },
777
+ {
778
+ id: "brand-story-feature-2-desc",
779
+ type: "paragraph",
780
+ order: 9,
781
+ content: {
782
+ text: String(
783
+ (settings == null ? void 0 : settings.feature2Desc) || "Ch\xFAng t\xF4i l\xE0m vi\u1EC7c tr\u1EF1c ti\u1EBFp v\u1EDBi c\xE1c l\xE0ng ngh\u1EC1, t\u1EA1o vi\u1EC7c l\xE0m b\u1EC1n v\u1EEFng v\xE0 b\u1EA3o t\u1ED3n di s\u1EA3n v\u0103n h\xF3a Vi\u1EC7t Nam."
784
+ )
785
+ },
786
+ style: {
787
+ fontSize: "sm",
788
+ color: "#6B5344"
789
+ },
790
+ enabled: true
791
+ },
792
+ // Feature Card 3
793
+ {
794
+ id: "brand-story-feature-3-title",
795
+ type: "heading",
796
+ order: 10,
797
+ content: {
798
+ text: String((settings == null ? void 0 : settings.feature3Title) || "Ch\u1EA5t L\u01B0\u1EE3ng Cao C\u1EA5p"),
799
+ tag: "h4"
800
+ },
801
+ style: {
802
+ fontSize: "base",
803
+ fontWeight: "semibold",
804
+ color: "#3D2314"
805
+ },
806
+ enabled: true
807
+ },
808
+ {
809
+ id: "brand-story-feature-3-desc",
810
+ type: "paragraph",
811
+ order: 11,
812
+ content: {
813
+ text: String(
814
+ (settings == null ? void 0 : settings.feature3Desc) || "Cam k\u1EBFt ch\u1EA5t l\u01B0\u1EE3ng v\u1EDBi nguy\xEAn li\u1EC7u t\u1EF1 nhi\xEAn, quy tr\xECnh ki\u1EC3m so\xE1t nghi\xEAm ng\u1EB7t v\xE0 b\u1EA3o h\xE0nh tr\u1ECDn \u0111\u1EDDi."
815
+ )
816
+ },
817
+ style: {
818
+ fontSize: "sm",
819
+ color: "#6B5344"
820
+ },
821
+ enabled: true
822
+ },
823
+ // Feature Card 4
824
+ {
825
+ id: "brand-story-feature-4-title",
826
+ type: "heading",
827
+ order: 12,
828
+ content: {
829
+ text: String((settings == null ? void 0 : settings.feature4Title) || "Th\xE2n Thi\u1EC7n M\xF4i Tr\u01B0\u1EDDng"),
830
+ tag: "h4"
831
+ },
832
+ style: {
833
+ fontSize: "base",
834
+ fontWeight: "semibold",
835
+ color: "#3D2314"
836
+ },
837
+ enabled: true
838
+ },
839
+ {
840
+ id: "brand-story-feature-4-desc",
841
+ type: "paragraph",
842
+ order: 13,
843
+ content: {
844
+ text: String(
845
+ (settings == null ? void 0 : settings.feature4Desc) || "S\u1EED d\u1EE5ng nguy\xEAn li\u1EC7u t\u1EF1 nhi\xEAn, quy tr\xECnh s\u1EA3n xu\u1EA5t th\u1EE7 c\xF4ng, kh\xF4ng g\xE2y h\u1EA1i cho m\xF4i tr\u01B0\u1EDDng."
846
+ )
847
+ },
848
+ style: {
849
+ fontSize: "sm",
850
+ color: "#6B5344"
851
+ },
852
+ enabled: true
853
+ }
854
+ ];
855
+ }
856
+ function ensureFeaturedProductsComponents(section) {
857
+ if (section.components && section.components.length > 0) {
858
+ return section.components;
859
+ }
860
+ const { settings } = section;
861
+ return [
862
+ {
863
+ id: "featured-products-heading",
864
+ type: "heading",
865
+ order: 0,
866
+ content: {
867
+ text: String((settings == null ? void 0 : settings.heading) || "S\u1EA3n ph\u1EA9m n\u1ED5i b\u1EADt"),
868
+ tag: "h2"
869
+ },
870
+ style: {
871
+ fontSize: "4xl",
872
+ fontWeight: "normal",
873
+ color: "#722F37",
874
+ fontStyle: "italic",
875
+ fontFamily: "serif",
876
+ textAlign: "center"
877
+ },
878
+ enabled: true
879
+ },
880
+ {
881
+ id: "featured-products-description",
882
+ type: "paragraph",
883
+ order: 1,
884
+ content: {
885
+ text: String(
886
+ (settings == null ? void 0 : settings.description) || "Kh\xE1m ph\xE1 c\xE1c s\u1EA3n ph\u1EA9m cao c\u1EA5p \u0111\u01B0\u1EE3c ch\u1EBF t\xE1c th\u1EE7 c\xF4ng b\u1EDFi ngh\u1EC7 nh\xE2n Vi\u1EC7t Nam"
887
+ )
888
+ },
889
+ style: {
890
+ fontSize: "base",
891
+ color: "#6B5344",
892
+ textAlign: "center"
893
+ },
894
+ enabled: true
895
+ }
896
+ ];
897
+ }
898
+ function ensureCollectionsComponents(section) {
899
+ if (section.components && section.components.length > 0) {
900
+ return section.components;
901
+ }
902
+ const { settings } = section;
903
+ return [
904
+ {
905
+ id: "collections-title-1",
906
+ type: "heading",
907
+ order: 0,
908
+ content: {
909
+ text: String((settings == null ? void 0 : settings.collection1Title) || "B\u1ED9 s\u01B0u t\u1EADp T\u1EBFt"),
910
+ tag: "h3"
911
+ },
912
+ style: {
913
+ fontSize: "3xl",
914
+ fontWeight: "normal",
915
+ color: "#722F37",
916
+ fontFamily: "serif"
917
+ },
918
+ enabled: true
919
+ },
920
+ {
921
+ id: "collections-desc-1",
922
+ type: "paragraph",
923
+ order: 1,
924
+ content: {
925
+ text: String(
926
+ (settings == null ? void 0 : settings.collection1Description) || "S\u1EAFc xu\xE2n r\u1EF1c r\u1EE1 trong t\u1EEBng thi\u1EBFt k\u1EBF s\u01A1n m\xE0i, mang l\u1EDDi ch\xFAc an khang \u2013 \u0111o\xE0n vi\xEAn."
927
+ )
928
+ },
929
+ style: {
930
+ fontSize: "sm",
931
+ color: "#6B5344"
932
+ },
933
+ enabled: true
934
+ },
935
+ {
936
+ id: "collections-title-2",
937
+ type: "heading",
938
+ order: 2,
939
+ content: {
940
+ text: String((settings == null ? void 0 : settings.collection2Title) || "B\u1ED9 s\u01B0u t\u1EADp Decor"),
941
+ tag: "h3"
942
+ },
943
+ style: {
944
+ fontSize: "3xl",
945
+ fontWeight: "normal",
946
+ color: "#722F37",
947
+ fontFamily: "serif"
948
+ },
949
+ enabled: true
950
+ },
951
+ {
952
+ id: "collections-desc-2",
953
+ type: "paragraph",
954
+ order: 3,
955
+ content: {
956
+ text: String(
957
+ (settings == null ? void 0 : settings.collection2Description) || "Nh\u1EEFng s\u1EA3n ph\u1EA9m decor s\u01A1n m\xE0i tinh t\u1EBF, t\u1EA1o \u0111i\u1EC3m nh\u1EA5n sang tr\u1ECDng cho kh\xF4ng gian."
958
+ )
959
+ },
960
+ style: {
961
+ fontSize: "sm",
962
+ color: "#6B5344"
963
+ },
964
+ enabled: true
965
+ }
966
+ ];
967
+ }
968
+ function ensureBestSellersComponents(section) {
969
+ if (section.components && section.components.length > 0) {
970
+ return section.components;
971
+ }
972
+ const { settings } = section;
973
+ return [
974
+ {
975
+ id: "best-sellers-heading",
976
+ type: "heading",
977
+ order: 0,
978
+ content: {
979
+ text: String((settings == null ? void 0 : settings.heading) || "S\u1EA3n Ph\u1EA9m B\xE1n Ch\u1EA1y"),
980
+ tag: "h2"
981
+ },
982
+ style: {
983
+ fontSize: "4xl",
984
+ fontWeight: "normal",
985
+ color: "#722F37",
986
+ fontStyle: "italic",
987
+ fontFamily: "serif",
988
+ textAlign: "center"
989
+ },
990
+ enabled: true
991
+ },
992
+ {
993
+ id: "best-sellers-description",
994
+ type: "paragraph",
995
+ order: 1,
996
+ content: {
997
+ text: String(
998
+ (settings == null ? void 0 : settings.description) || "Nh\u1EEFng s\u1EA3n ph\u1EA9m \u0111\u01B0\u1EE3c y\xEAu th\xEDch nh\u1EA5t t\u1EEB c\xE1c ngh\u1EC7 nh\xE2n h\xE0ng \u0111\u1EA7u"
999
+ )
1000
+ },
1001
+ style: {
1002
+ fontSize: "base",
1003
+ color: "#6B5344",
1004
+ textAlign: "center"
1005
+ },
1006
+ enabled: true
1007
+ }
1008
+ ];
1009
+ }
1010
+ function ensureCraftingProcessComponents(section) {
1011
+ if (section.components && section.components.length > 0) {
1012
+ return section.components;
1013
+ }
1014
+ const { settings } = section;
1015
+ return [
1016
+ {
1017
+ id: "crafting-process-heading",
1018
+ type: "heading",
1019
+ order: 0,
1020
+ content: {
1021
+ text: String((settings == null ? void 0 : settings.heading) || "Quy Tr\xECnh Ch\u1EBF T\xE1c"),
1022
+ tag: "h2"
1023
+ },
1024
+ style: {
1025
+ fontSize: "4xl",
1026
+ fontWeight: "normal",
1027
+ color: "#722F37",
1028
+ fontStyle: "italic",
1029
+ fontFamily: "serif",
1030
+ textAlign: "center"
1031
+ },
1032
+ enabled: true
1033
+ },
1034
+ {
1035
+ id: "crafting-process-description",
1036
+ type: "paragraph",
1037
+ order: 1,
1038
+ content: {
1039
+ text: String(
1040
+ (settings == null ? void 0 : settings.description) || "M\u1ED7i s\u1EA3n ph\u1EA9m tr\u1EA3i qua h\xE0ng ch\u1EE5c c\xF4ng \u0111o\u1EA1n, t\u1EEB tay ngh\u1EC1 c\u1EE7a ngh\u1EC7 nh\xE2n v\u1EDBi h\u01A1n 30 n\u0103m kinh nghi\u1EC7m"
1041
+ )
1042
+ },
1043
+ style: {
1044
+ fontSize: "base",
1045
+ color: "#6B5344",
1046
+ textAlign: "center"
1047
+ },
1048
+ enabled: true
1049
+ },
1050
+ // Step titles and descriptions
1051
+ {
1052
+ id: "crafting-process-step-1-title",
1053
+ type: "heading",
1054
+ order: 2,
1055
+ content: {
1056
+ text: String((settings == null ? void 0 : settings.step1Title) || "Ch\u1ECDn Nguy\xEAn Li\u1EC7u"),
1057
+ tag: "h3"
1058
+ },
1059
+ style: { fontSize: "lg", fontWeight: "semibold", color: "#C9A962" },
1060
+ enabled: true
1061
+ },
1062
+ {
1063
+ id: "crafting-process-step-1-desc",
1064
+ type: "paragraph",
1065
+ order: 3,
1066
+ content: {
1067
+ text: String(
1068
+ (settings == null ? void 0 : settings.step1Description) || "G\u1ED7 t\u1EF1 nhi\xEAn, s\u01A1n thi\xEAn nhi\xEAn, v\xE0ng l\xE1 \u0111\u01B0\u1EE3c tuy\u1EC3n ch\u1ECDn k\u1EF9 l\u01B0\u1EE1ng"
1069
+ )
1070
+ },
1071
+ style: { fontSize: "sm", color: "#FFFFFF" },
1072
+ enabled: true
1073
+ },
1074
+ {
1075
+ id: "crafting-process-step-2-title",
1076
+ type: "heading",
1077
+ order: 4,
1078
+ content: {
1079
+ text: String((settings == null ? void 0 : settings.step2Title) || "Ch\u1EBF T\xE1c"),
1080
+ tag: "h3"
1081
+ },
1082
+ style: { fontSize: "lg", fontWeight: "semibold", color: "#C9A962" },
1083
+ enabled: true
1084
+ },
1085
+ {
1086
+ id: "crafting-process-step-2-desc",
1087
+ type: "paragraph",
1088
+ order: 5,
1089
+ content: {
1090
+ text: String(
1091
+ (settings == null ? void 0 : settings.step2Description) || "Ngh\u1EC7 nh\xE2n d\xE0y c\xF4ng m\xE0i d\u0169a, kh\u1EAFc h\u1ECDa ti\u1EBFt t\u1EEBng chi ti\u1EBFt t\u1EC9 m\u1EC9"
1092
+ )
1093
+ },
1094
+ style: { fontSize: "sm", color: "#FFFFFF" },
1095
+ enabled: true
1096
+ },
1097
+ {
1098
+ id: "crafting-process-step-3-title",
1099
+ type: "heading",
1100
+ order: 6,
1101
+ content: {
1102
+ text: String((settings == null ? void 0 : settings.step3Title) || "Ph\u1EE7 S\u01A1n M\xE0i"),
1103
+ tag: "h3"
1104
+ },
1105
+ style: { fontSize: "lg", fontWeight: "semibold", color: "#C9A962" },
1106
+ enabled: true
1107
+ },
1108
+ {
1109
+ id: "crafting-process-step-3-desc",
1110
+ type: "paragraph",
1111
+ order: 7,
1112
+ content: {
1113
+ text: String(
1114
+ (settings == null ? void 0 : settings.step3Description) || "12-16 l\u1EDBp s\u01A1n m\xE0i \u0111\u01B0\u1EE3c ph\u1EE7 v\xE0 \u0111\xE1nh b\xF3ng"
1115
+ )
1116
+ },
1117
+ style: { fontSize: "sm", color: "#FFFFFF" },
1118
+ enabled: true
1119
+ },
1120
+ {
1121
+ id: "crafting-process-step-4-title",
1122
+ type: "heading",
1123
+ order: 8,
1124
+ content: {
1125
+ text: String((settings == null ? void 0 : settings.step4Title) || "\u1EE6 & Ho\xE0n Thi\u1EC7n"),
1126
+ tag: "h3"
1127
+ },
1128
+ style: { fontSize: "lg", fontWeight: "semibold", color: "#C9A962" },
1129
+ enabled: true
1130
+ },
1131
+ {
1132
+ id: "crafting-process-step-4-desc",
1133
+ type: "paragraph",
1134
+ order: 9,
1135
+ content: {
1136
+ text: String(
1137
+ (settings == null ? void 0 : settings.step4Description) || "S\u1EA3n ph\u1EA9m \u0111\u01B0\u1EE3c \u1EE7 30-45 ng\xE0y \u0111\u1EC3 \u0111\u1EA1t \u0111\u1ED9 b\xF3ng v\xE0 b\u1EC1n v\u1EEFng cao nh\u1EA5t"
1138
+ )
1139
+ },
1140
+ style: { fontSize: "sm", color: "#FFFFFF" },
1141
+ enabled: true
1142
+ }
1143
+ ];
1144
+ }
1145
+ function ensureTinanTestimonialsComponents(section) {
1146
+ if (section.components && section.components.length > 0) {
1147
+ return section.components;
1148
+ }
1149
+ const { settings } = section;
1150
+ return [
1151
+ {
1152
+ id: "tinan-testimonials-heading",
1153
+ type: "heading",
1154
+ order: 0,
1155
+ content: {
1156
+ text: String((settings == null ? void 0 : settings.heading) || "Kh\xE1ch h\xE0ng n\xF3i v\u1EC1 ch\xFAng t\xF4i"),
1157
+ tag: "h2"
1158
+ },
1159
+ style: {
1160
+ fontSize: "4xl",
1161
+ fontWeight: "normal",
1162
+ color: "#722F37",
1163
+ fontStyle: "italic",
1164
+ fontFamily: "serif",
1165
+ textAlign: "center"
1166
+ },
1167
+ enabled: true
1168
+ },
1169
+ {
1170
+ id: "tinan-testimonials-description",
1171
+ type: "paragraph",
1172
+ order: 1,
1173
+ content: {
1174
+ text: String(
1175
+ (settings == null ? void 0 : settings.description) || "Kh\xE1m ph\xE1 nh\u1EEFng c\xE2u chuy\u1EC7n, ki\u1EBFn th\u1EE9c v\xE0 c\u1EADp nh\u1EADt m\u1EDBi nh\u1EA5t v\u1EC1 ngh\u1EC7 thu\u1EADt s\u01A1n m\xE0i"
1176
+ )
1177
+ },
1178
+ style: {
1179
+ fontSize: "base",
1180
+ color: "#6B5344",
1181
+ textAlign: "center"
1182
+ },
1183
+ enabled: true
1184
+ }
1185
+ ];
1186
+ }
1187
+ function ensureTinanContactCtaComponents(section) {
1188
+ if (section.components && section.components.length > 0) {
1189
+ return section.components;
1190
+ }
1191
+ const { settings } = section;
1192
+ return [
1193
+ {
1194
+ id: "contact-cta-heading",
1195
+ type: "heading",
1196
+ order: 0,
1197
+ content: {
1198
+ text: String((settings == null ? void 0 : settings.heading) || "Li\xEAn h\u1EC7 ngay cho ch\xFAng t\xF4i"),
1199
+ tag: "h2"
1200
+ },
1201
+ style: {
1202
+ fontSize: "4xl",
1203
+ fontWeight: "bold",
1204
+ color: "#FFFFFF",
1205
+ fontStyle: "italic"
1206
+ },
1207
+ enabled: true
1208
+ },
1209
+ {
1210
+ id: "contact-cta-description",
1211
+ type: "paragraph",
1212
+ order: 1,
1213
+ content: {
1214
+ text: String(
1215
+ (settings == null ? void 0 : settings.description) || "\u0110\u1EC3 l\u1EA1i th\xF4ng tin \u0111\u1EC3 \u0111\u01B0\u1EE3c t\u01B0 v\u1EA5n v\xE0 s\u1EAFp x\u1EBFp thi c\xF4ng nhanh ch\xF3ng, thu\u1EADn ti\u1EC7n"
1216
+ )
1217
+ },
1218
+ style: {
1219
+ fontSize: "base",
1220
+ color: "rgba(255,255,255,0.9)"
1221
+ },
1222
+ enabled: true
1223
+ }
1224
+ ];
1225
+ }
1226
+ function ensureArtCornerComponents(section) {
1227
+ if (section.components && section.components.length > 0) {
1228
+ return section.components;
1229
+ }
1230
+ const { settings } = section;
1231
+ return [
1232
+ {
1233
+ id: "art-corner-heading",
1234
+ type: "heading",
1235
+ order: 0,
1236
+ content: {
1237
+ text: String((settings == null ? void 0 : settings.heading) || "G\xF3c Ngh\u1EC7 Thu\u1EADt"),
1238
+ tag: "h2"
1239
+ },
1240
+ style: {
1241
+ fontSize: "3xl",
1242
+ fontWeight: "normal",
1243
+ color: "#722F37",
1244
+ fontFamily: "serif",
1245
+ textAlign: "center"
1246
+ },
1247
+ enabled: true
1248
+ },
1249
+ {
1250
+ id: "art-corner-description",
1251
+ type: "paragraph",
1252
+ order: 1,
1253
+ content: {
1254
+ text: String(
1255
+ (settings == null ? void 0 : settings.description) || "Kh\xE1m ph\xE1 nh\u1EEFng c\xE2u chuy\u1EC7n, ki\u1EBFn th\u1EE9c v\xE0 c\u1EA3m h\u1EE9ng t\u1EEB ngh\u1EC7 thu\u1EADt s\u01A1n m\xE0i truy\u1EC1n th\u1ED1ng Vi\u1EC7t Nam."
1256
+ )
1257
+ },
1258
+ style: {
1259
+ fontSize: "base",
1260
+ color: "#6B5344",
1261
+ textAlign: "center"
1262
+ },
1263
+ enabled: true
1264
+ }
1265
+ ];
1266
+ }
1267
+
1268
+ // src/compat.ts
1269
+ function useLogout() {
1270
+ const { logout, isLoading } = chunkV3JIELNV_js.useAuth();
1271
+ return {
1272
+ handleLogout: logout,
1273
+ loading: isLoading
1274
+ };
1275
+ }
1276
+ function getAuthToken() {
1277
+ if (typeof window === "undefined") return null;
1278
+ const token = localStorage.getItem("auth_token");
1279
+ if (!token) return null;
1280
+ try {
1281
+ const userData = localStorage.getItem("user_data");
1282
+ if (userData) {
1283
+ const user = JSON.parse(userData);
1284
+ return {
1285
+ Token: token,
1286
+ Username: user.email || user.name || "",
1287
+ UserAttributes: user
1288
+ };
1289
+ }
1290
+ return { Token: token };
1291
+ } catch (e) {
1292
+ return { Token: token };
1293
+ }
1294
+ }
1295
+ var authApi = {
1296
+ async getInfo(accessToken, idToken, username) {
1297
+ console.warn(
1298
+ "[OneX Compat] authApi.getInfo is deprecated. Use useAuth instead."
1299
+ );
1300
+ const userData = typeof window !== "undefined" ? localStorage.getItem("user_data") : null;
1301
+ if (userData) {
1302
+ return JSON.parse(userData);
1303
+ }
1304
+ return {
1305
+ name: username,
1306
+ email: username
1307
+ };
1308
+ }
1309
+ };
1310
+ var contactApi = {
1311
+ async submit(payload) {
1312
+ console.warn(
1313
+ "[OneX Compat] contactApi.submit is deprecated. Use useContact instead."
1314
+ );
1315
+ const { submitContactForm } = chunkJZ46LLTZ_js.useContact.getState();
1316
+ return await submitContactForm(payload);
1317
+ }
1318
+ };
1319
+ var blogApi = {
1320
+ async getById(blogId) {
1321
+ console.warn(
1322
+ "[OneX Compat] blogApi.getById is deprecated. Use useBlog instead."
1323
+ );
1324
+ const { fetchBlogById } = chunk2CSWHI3L_js.useBlog.getState();
1325
+ await fetchBlogById(blogId);
1326
+ return chunk2CSWHI3L_js.useBlog.getState().currentBlog;
1327
+ },
1328
+ async getBySlug(slug) {
1329
+ console.warn(
1330
+ "[OneX Compat] blogApi.getBySlug is deprecated. Use useBlog instead."
1331
+ );
1332
+ const { fetchBlogBySlug } = chunk2CSWHI3L_js.useBlog.getState();
1333
+ await fetchBlogBySlug(slug);
1334
+ return chunk2CSWHI3L_js.useBlog.getState().currentBlog;
1335
+ }
1336
+ };
1337
+ var financeApi = {
1338
+ async createQrCode(payload) {
1339
+ console.warn(
1340
+ "[OneX Compat] financeApi.createQrCode is deprecated. Use useFinance instead."
1341
+ );
1342
+ const { createQrCode } = chunk5T6NDVSN_js.useFinance.getState();
1343
+ return await createQrCode(payload);
1344
+ }
1345
+ };
1346
+ var config = {
1347
+ get apiUrl() {
1348
+ console.warn(
1349
+ "[OneX Compat] config.apiUrl is deprecated. Pass config to initializeOnex instead."
1350
+ );
1351
+ return process.env.NEXT_PUBLIC_API_URL || "";
1352
+ },
1353
+ get companyId() {
1354
+ console.warn(
1355
+ "[OneX Compat] config.companyId is deprecated. Pass config to initializeOnex instead."
1356
+ );
1357
+ return process.env.NEXT_PUBLIC_API_COMPANY_ID || "";
1358
+ },
1359
+ get apiCompanyId() {
1360
+ return this.companyId;
1361
+ },
1362
+ get baseUrl() {
1363
+ return this.apiUrl;
1364
+ }
1365
+ };
1366
+
1367
+ // src/stubs.ts
1368
+ async function payOrder(_orderId, _paymentData) {
1369
+ console.warn(
1370
+ "[OneX Stub] payOrder is a temporary stub. Use useOrders().payOrder() instead."
1371
+ );
1372
+ throw new Error(
1373
+ "payOrder not yet implemented. Use useOrders().payOrder() instead."
1374
+ );
1375
+ }
1376
+ function useLocations() {
1377
+ console.warn("[OneX Stub] useLocations is not yet implemented.");
1378
+ return {
1379
+ locations: [],
1380
+ isLoading: false,
1381
+ error: null
1382
+ };
1383
+ }
1384
+ function useCheckInventory(_options) {
1385
+ console.warn("[OneX Stub] useCheckInventory is not yet implemented.");
1386
+ return {
1387
+ checkInventory: async () => ({ available: true, quantity: 0 }),
1388
+ isVariantAvailable: (_variant) => true,
1389
+ getAvailableStock: (_variant) => 0,
1390
+ checkIsOutOfStock: () => false,
1391
+ findMatchingVariant: (_option1, _option2) => null,
1392
+ getFirstAvailableVariant: () => null,
1393
+ isLoading: false,
1394
+ error: null
1395
+ };
1396
+ }
1397
+ function ProductsList(_props) {
1398
+ console.warn("[OneX Stub] ProductsList is not yet implemented.");
1399
+ return null;
1400
+ }
1401
+ var sen_data = [];
1402
+ var sen_data_up = [];
1403
+
1404
+ exports.ProductsList = ProductsList;
1405
+ exports.authApi = authApi;
1406
+ exports.blogApi = blogApi;
1407
+ exports.config = config;
1408
+ exports.contactApi = contactApi;
1409
+ exports.ensureArtCornerComponents = ensureArtCornerComponents;
1410
+ exports.ensureBestSellersComponents = ensureBestSellersComponents;
1411
+ exports.ensureBlogProjectsComponents = ensureBlogProjectsComponents;
1412
+ exports.ensureBrandStoryComponents = ensureBrandStoryComponents;
1413
+ exports.ensureCategoriesComponents = ensureCategoriesComponents;
1414
+ exports.ensureCollectionsComponents = ensureCollectionsComponents;
1415
+ exports.ensureContactComponents = ensureContactComponents;
1416
+ exports.ensureContentCtaComponents = ensureContentCtaComponents;
1417
+ exports.ensureCraftingProcessComponents = ensureCraftingProcessComponents;
1418
+ exports.ensureFeaturedProductsComponents = ensureFeaturedProductsComponents;
1419
+ exports.ensureFeaturesComponents = ensureFeaturesComponents;
1420
+ exports.ensureFooterComponents = ensureFooterComponents;
1421
+ exports.ensureHeaderBlocks = ensureHeaderBlocks;
1422
+ exports.ensureHeaderComponents = ensureHeaderComponents;
1423
+ exports.ensureHeroComponents = ensureHeroComponents;
1424
+ exports.ensureTestimonialsComponents = ensureTestimonialsComponents;
1425
+ exports.ensureTinanContactCtaComponents = ensureTinanContactCtaComponents;
1426
+ exports.ensureTinanTestimonialsComponents = ensureTinanTestimonialsComponents;
1427
+ exports.ensureVideoComponents = ensureVideoComponents;
1428
+ exports.financeApi = financeApi;
1429
+ exports.getAuthToken = getAuthToken;
1430
+ exports.payOrder = payOrder;
1431
+ exports.sen_data = sen_data;
1432
+ exports.sen_data_up = sen_data_up;
1433
+ exports.useCheckInventory = useCheckInventory;
1434
+ exports.useLocations = useLocations;
1435
+ exports.useLogout = useLogout;
1436
+ //# sourceMappingURL=internal.js.map
1437
+ //# sourceMappingURL=internal.js.map