@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
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schemas/theme-manifest.schema.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Zod schemas for ThemeManifest validation\n * Used for runtime validation of uploaded theme bundles\n */\n\nimport { z } from \"zod\";\n\n/**\n * Author information schema\n */\nexport const authorSchema = z.object({\n name: z.string().min(1, \"Author name is required\"),\n email: z.string().email({ message: \"Invalid email address\" }).optional(),\n url: z.string().url({ message: \"Invalid URL\" }).optional(),\n});\n\n/**\n * Peer dependencies schema\n */\nexport const peerDependenciesSchema = z.object({\n react: z.string().min(1, \"React version is required\"),\n \"react-dom\": z.string().min(1, \"React DOM version is required\"),\n \"@onex/core\": z.string().optional(),\n});\n\n/**\n * Theme preview schema\n */\nexport const previewSchema = z.object({\n thumbnail: z.string().url({ message: \"Thumbnail must be a valid URL\" }).optional(),\n screenshots: z.array(z.string().url({ message: \"Screenshot URL is invalid\" })).optional(),\n});\n\n/**\n * Export paths schema\n */\nexport const exportsSchema = z.object({\n main: z.string().min(1, \"Main export path is required\"),\n types: z.string().optional(),\n});\n\n/**\n * Theme manifest schema\n * Validates the manifest.json file in theme bundles\n */\nexport const themeManifestSchema = z.object({\n // Required fields\n id: z\n .string()\n .min(3, \"Theme ID must be at least 3 characters\")\n .max(50, \"Theme ID must be at most 50 characters\")\n .regex(\n /^[a-z0-9-]+$/,\n \"Theme ID must be lowercase letters, numbers, and hyphens only\"\n ),\n\n name: z\n .string()\n .min(1, \"Theme name is required\")\n .max(100, \"Theme name must be at most 100 characters\"),\n\n version: z\n .string()\n .regex(\n /^\\d+\\.\\d+\\.\\d+(-[a-z0-9.]+)?$/,\n \"Version must follow semver format (e.g., 1.0.0)\"\n ),\n\n author: authorSchema,\n\n engine: z\n .string()\n .min(1, \"Engine version is required\")\n .regex(\n /^[\\^~>=<]*\\d+\\.\\d+\\.\\d+/,\n \"Engine must be a valid semver range (e.g., ^1.0.0)\"\n ),\n\n peerDependencies: peerDependenciesSchema,\n\n sections: z\n .array(z.string().min(1))\n .min(1, \"At least one section is required\"),\n\n config: z.record(z.string(), z.any()), // ThemeConfig validation done separately\n\n exports: exportsSchema,\n\n // Optional fields\n description: z.string().max(500).optional(),\n\n preview: previewSchema.optional(),\n\n license: z.string().optional(),\n\n repository: z.string().url({ message: \"Repository must be a valid URL\" }).optional(),\n\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Type inference from schema\n */\nexport type ThemeManifestValidation = z.infer<typeof themeManifestSchema>;\n\n/**\n * Validate theme manifest\n *\n * @param manifest - The manifest object to validate\n * @returns Validation result with typed data or errors\n */\nexport function validateThemeManifest(manifest: unknown) {\n return themeManifestSchema.safeParse(manifest);\n}\n\n/**\n * Validate theme manifest and throw on error\n *\n * @param manifest - The manifest object to validate\n * @throws ZodError if validation fails\n */\nexport function assertValidThemeManifest(manifest: unknown): asserts manifest is ThemeManifestValidation {\n themeManifestSchema.parse(manifest);\n}\n"]}
1
+ {"version":3,"sources":["../src/schemas/theme-manifest.schema.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Zod schemas for ThemeManifest validation\n * Used for runtime validation of uploaded theme bundles\n */\n\nimport { z } from \"zod\";\n\n/**\n * Author information schema\n */\nexport const authorSchema = z.object({\n name: z.string().min(1, \"Author name is required\"),\n email: z.string().email({ message: \"Invalid email address\" }).optional(),\n url: z.string().url({ message: \"Invalid URL\" }).optional(),\n});\n\n/**\n * Peer dependencies schema\n */\nexport const peerDependenciesSchema = z.object({\n react: z.string().min(1, \"React version is required\"),\n \"react-dom\": z.string().min(1, \"React DOM version is required\"),\n \"@onex/core\": z.string().optional(),\n});\n\n/**\n * Theme preview schema\n */\nexport const previewSchema = z.object({\n thumbnail: z\n .string()\n .url({ message: \"Thumbnail must be a valid URL\" })\n .optional(),\n screenshots: z\n .array(z.string().url({ message: \"Screenshot URL is invalid\" }))\n .optional(),\n});\n\n/**\n * Export paths schema\n */\nexport const exportsSchema = z.object({\n main: z.string().min(1, \"Main export path is required\"),\n types: z.string().optional(),\n});\n\n/**\n * Theme manifest schema\n * Validates the manifest.json file in theme bundles\n */\nexport const themeManifestSchema = z.object({\n // Required fields\n id: z\n .string()\n .min(3, \"Theme ID must be at least 3 characters\")\n .max(50, \"Theme ID must be at most 50 characters\")\n .regex(\n /^[a-z0-9-]+$/,\n \"Theme ID must be lowercase letters, numbers, and hyphens only\"\n ),\n\n name: z\n .string()\n .min(1, \"Theme name is required\")\n .max(100, \"Theme name must be at most 100 characters\"),\n\n version: z\n .string()\n .regex(\n /^\\d+\\.\\d+\\.\\d+(-[a-z0-9.]+)?$/,\n \"Version must follow semver format (e.g., 1.0.0)\"\n ),\n\n author: authorSchema,\n\n engine: z\n .string()\n .min(1, \"Engine version is required\")\n .regex(\n /^[\\^~>=<]*\\d+\\.\\d+\\.\\d+/,\n \"Engine must be a valid semver range (e.g., ^1.0.0)\"\n ),\n\n peerDependencies: peerDependenciesSchema,\n\n sections: z\n .array(z.string().min(1))\n .min(1, \"At least one section is required\"),\n\n config: z.record(z.string(), z.any()), // ThemeConfig validation done separately\n\n exports: exportsSchema,\n\n // Optional fields\n description: z.string().max(500).optional(),\n\n preview: previewSchema.optional(),\n\n license: z.string().optional(),\n\n repository: z\n .string()\n .url({ message: \"Repository must be a valid URL\" })\n .optional(),\n\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Type inference from schema\n */\nexport type ThemeManifestValidation = z.infer<typeof themeManifestSchema>;\n\n/**\n * Validate theme manifest\n *\n * @param manifest - The manifest object to validate\n * @returns Validation result with typed data or errors\n */\nexport function validateThemeManifest(manifest: unknown) {\n return themeManifestSchema.safeParse(manifest);\n}\n\n/**\n * Validate theme manifest and throw on error\n *\n * @param manifest - The manifest object to validate\n * @throws ZodError if validation fails\n */\nexport function assertValidThemeManifest(\n manifest: unknown\n): asserts manifest is ThemeManifestValidation {\n themeManifestSchema.parse(manifest);\n}\n"]}
package/dist/index.mjs CHANGED
@@ -1,6 +1,25 @@
1
1
  "use client";
2
- export { AccordionComponent, AlertComponent, BadgeComponent, BlockListRenderer, BlockRenderer, ButtonComponent, COMPONENT_CATEGORIES, COMPONENT_TYPES, CardComponent, CartProvider, CheckboxComponent, CodeComponent, ColumnsComponent, ComponentListRenderer, ComponentRegistry, ComponentRenderer, ContainerComponent, DEFAULT_INSPECTOR_CONFIG, DividerComponent, FIELD_TYPES, FullWidthSection, GalleryComponent, GridComponent, GridContainer, HeadingComponent, IconComponent, ImageComponent, InputComponent, LinkComponent, ListComponent, MapComponent, PageDataProvider, ParagraphComponent, ProgressComponent, QuoteComponent, RatingComponent, SECTION_CATEGORIES, SectionListRenderer, SectionRenderer, SelectComponent, SpacerComponent, TableComponent, TabsComponent, TextareaComponent, ThemeContextProvider, TimerComponent, VideoComponent, ViewportProvider, accordionComponentDefinition, alertComponentDefinition, animationFieldDefinitions, badgeComponentDefinition, blockRegistry, buttonComponentDefinition, cardComponentDefinition, checkboxComponentDefinition, cn, codeComponentDefinition, columnsComponentDefinition, componentRegistry, containerComponentDefinition, countEnabledItems, createBlockRegistry, defaultAnimationSettings, dividerComponentDefinition, filterEnabledBlocks, filterEnabledComponents, findBlockInSection, findComponentInSection, formatBlockName, galleryComponentDefinition, generateBlockId, generateHandle, generateId, generatePageId, generateSectionId, generateThemeId, getActiveBlocks, getActiveComponents, getBlockPath, getComponentPath, getComponentValues, getComponentsByType, getElementLabel, getFirstComponentByType, getSectionValues, getSelectionColor, gridComponentDefinition, groupBySlot, hasComponentType, hasEnabledItems, headingComponentDefinition, iconComponentDefinition, imageComponentDefinition, inputComponentDefinition, linkComponentDefinition, listComponentDefinition, mapComponentDefinition, paragraphComponentDefinition, progressComponentDefinition, quoteComponentDefinition, ratingComponentDefinition, removeNestedBlock, renderBlock, renderSection, selectComponentDefinition, sortBlocks, sortComponents, spacerComponentDefinition, tableComponentDefinition, tabsComponentDefinition, textareaComponentDefinition, timerComponentDefinition, toComponentInstance, updateNestedBlock, updateNestedComponent, useCart, useComponentInstance, useComponentRegistration, usePageData, useResponsiveClass, useThemeContext, useViewport, useWebsiteSettings, validateComponent, validateContent, validateSection, validateSettings, validateStyle, version, videoComponentDefinition } from './chunk-7EON6Q4L.mjs';
3
- export { createSectionRegistry, sectionRegistry } from './chunk-XE4EOKS4.mjs';
2
+ export { initializeOnex, isOnexInitialized, resetOnexInitialization, version } from './chunk-AIXBDAVP.mjs';
3
+ export { CartService, initializeCartService, useCart } from './chunk-73AINNCI.mjs';
4
+ export { ProductCard, ProductsService, initializeProductsService, useProducts } from './chunk-ULBDOFZI.mjs';
5
+ export { OrdersService, initializeOrdersService, useOrders } from './chunk-T6EJ2GAV.mjs';
6
+ export { BlockListRenderer, BlockRenderer, ComponentListRenderer, ComponentRenderer, SectionListRenderer, SectionRenderer, renderBlock, renderSection, useComponentInstance, useComponentRegistration } from './chunk-KCQGGU5R.mjs';
7
+ export { ComponentRegistry, blockRegistry, componentRegistry, createBlockRegistry } from './chunk-4JVQJI3I.mjs';
8
+ export { PageDataProvider, ThemeContextProvider, ViewportProvider, usePageData, useResponsiveClass, useThemeContext, useViewport, useWebsiteSettings } from './chunk-K24UHN6G.mjs';
9
+ export { CartProvider } from './chunk-WVC5GP24.mjs';
10
+ export { createConfigFromEnv, validateConfig } from './chunk-DXAI6XOI.mjs';
11
+ export { ApiClient } from './chunk-43BVHGDT.mjs';
12
+ export { AuthService } from './chunk-SK2FSHFM.mjs';
13
+ export { createSectionRegistry, sectionRegistry } from './chunk-ONJREDYY.mjs';
14
+ export { BANK_TRANSFER_DATA, FinanceService, initializeFinanceService, useFinance } from './chunk-PFJOL3HI.mjs';
15
+ export { ContactService, initializeContactService, useContact } from './chunk-MT22NYKT.mjs';
16
+ export { BlogService, initializeBlogService, useBlog } from './chunk-OAPYSC2X.mjs';
17
+ export { initializeAuthService, useAuth } from './chunk-V5E2KWMA.mjs';
18
+ export { AccordionComponent, AlertComponent, BadgeComponent, Button, ButtonComponent, CardComponent, CheckboxComponent, CodeComponent, ColumnsComponent, ContainerComponent, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DividerComponent, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FullWidthSection, GalleryComponent, GridComponent, GridContainer, HeadingComponent, IconComponent, ImageComponent, Input, InputComponent, Label, LinkComponent, ListComponent, MapComponent, ParagraphComponent, ProgressComponent, QuoteComponent, RadioGroup, RadioGroupItem, RatingComponent, SelectComponent, SpacerComponent, TableComponent, TabsComponent, Textarea, TextareaComponent, TimerComponent, TornSeparator, TornSeparatorCreamToDark, TornSeparatorCreamToWhite, TornSeparatorDarkToCream, TornSeparatorDarkToWhite, TornSeparatorWhiteToCream, TornSeparatorWhiteToDark, UserMenu, VideoComponent, accordionComponentDefinition, alertComponentDefinition, badgeComponentDefinition, buttonComponentDefinition, buttonVariants, cardComponentDefinition, checkboxComponentDefinition, codeComponentDefinition, columnsComponentDefinition, containerComponentDefinition, dividerComponentDefinition, galleryComponentDefinition, gridComponentDefinition, headingComponentDefinition, iconComponentDefinition, imageComponentDefinition, inputComponentDefinition, linkComponentDefinition, listComponentDefinition, mapComponentDefinition, paragraphComponentDefinition, progressComponentDefinition, quoteComponentDefinition, ratingComponentDefinition, selectComponentDefinition, spacerComponentDefinition, tableComponentDefinition, tabsComponentDefinition, textareaComponentDefinition, timerComponentDefinition, useFormField, videoComponentDefinition } from './chunk-RUCHWUD7.mjs';
19
+ export { countEnabledItems, filterEnabledBlocks, filterEnabledComponents, findBlockInSection, findComponentInSection, formatBlockName, generateBlockId, generateHandle, generateId, generatePageId, generateSectionId, generateThemeId, getActiveBlocks, getActiveComponents, getBlockPath, getComponentPath, getComponentValues, getComponentsByType, getElementLabel, getFirstComponentByType, getSectionValues, getSelectionColor, groupBySlot, hasComponentType, hasEnabledItems, removeNestedBlock, sortBlocks, sortComponents, toComponentInstance, updateNestedBlock, updateNestedComponent, validateComponent, validateContent, validateSection, validateSettings, validateStyle } from './chunk-NHOIGGYU.mjs';
20
+ export { cn } from './chunk-O3XR7TW3.mjs';
21
+ export { COMPONENT_CATEGORIES, COMPONENT_TYPES, DEFAULT_INSPECTOR_CONFIG, FIELD_TYPES, SECTION_CATEGORIES, animationFieldDefinitions, defaultAnimationSettings } from './chunk-F5TFNWFJ.mjs';
22
+ import './chunk-YOSPWY5K.mjs';
4
23
  import { z } from 'zod';
5
24
 
6
25
  var authorSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schemas/theme-manifest.schema.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Zod schemas for ThemeManifest validation\n * Used for runtime validation of uploaded theme bundles\n */\n\nimport { z } from \"zod\";\n\n/**\n * Author information schema\n */\nexport const authorSchema = z.object({\n name: z.string().min(1, \"Author name is required\"),\n email: z.string().email({ message: \"Invalid email address\" }).optional(),\n url: z.string().url({ message: \"Invalid URL\" }).optional(),\n});\n\n/**\n * Peer dependencies schema\n */\nexport const peerDependenciesSchema = z.object({\n react: z.string().min(1, \"React version is required\"),\n \"react-dom\": z.string().min(1, \"React DOM version is required\"),\n \"@onex/core\": z.string().optional(),\n});\n\n/**\n * Theme preview schema\n */\nexport const previewSchema = z.object({\n thumbnail: z.string().url({ message: \"Thumbnail must be a valid URL\" }).optional(),\n screenshots: z.array(z.string().url({ message: \"Screenshot URL is invalid\" })).optional(),\n});\n\n/**\n * Export paths schema\n */\nexport const exportsSchema = z.object({\n main: z.string().min(1, \"Main export path is required\"),\n types: z.string().optional(),\n});\n\n/**\n * Theme manifest schema\n * Validates the manifest.json file in theme bundles\n */\nexport const themeManifestSchema = z.object({\n // Required fields\n id: z\n .string()\n .min(3, \"Theme ID must be at least 3 characters\")\n .max(50, \"Theme ID must be at most 50 characters\")\n .regex(\n /^[a-z0-9-]+$/,\n \"Theme ID must be lowercase letters, numbers, and hyphens only\"\n ),\n\n name: z\n .string()\n .min(1, \"Theme name is required\")\n .max(100, \"Theme name must be at most 100 characters\"),\n\n version: z\n .string()\n .regex(\n /^\\d+\\.\\d+\\.\\d+(-[a-z0-9.]+)?$/,\n \"Version must follow semver format (e.g., 1.0.0)\"\n ),\n\n author: authorSchema,\n\n engine: z\n .string()\n .min(1, \"Engine version is required\")\n .regex(\n /^[\\^~>=<]*\\d+\\.\\d+\\.\\d+/,\n \"Engine must be a valid semver range (e.g., ^1.0.0)\"\n ),\n\n peerDependencies: peerDependenciesSchema,\n\n sections: z\n .array(z.string().min(1))\n .min(1, \"At least one section is required\"),\n\n config: z.record(z.string(), z.any()), // ThemeConfig validation done separately\n\n exports: exportsSchema,\n\n // Optional fields\n description: z.string().max(500).optional(),\n\n preview: previewSchema.optional(),\n\n license: z.string().optional(),\n\n repository: z.string().url({ message: \"Repository must be a valid URL\" }).optional(),\n\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Type inference from schema\n */\nexport type ThemeManifestValidation = z.infer<typeof themeManifestSchema>;\n\n/**\n * Validate theme manifest\n *\n * @param manifest - The manifest object to validate\n * @returns Validation result with typed data or errors\n */\nexport function validateThemeManifest(manifest: unknown) {\n return themeManifestSchema.safeParse(manifest);\n}\n\n/**\n * Validate theme manifest and throw on error\n *\n * @param manifest - The manifest object to validate\n * @throws ZodError if validation fails\n */\nexport function assertValidThemeManifest(manifest: unknown): asserts manifest is ThemeManifestValidation {\n themeManifestSchema.parse(manifest);\n}\n"]}
1
+ {"version":3,"sources":["../src/schemas/theme-manifest.schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAUO,IAAM,YAAA,GAAe,EAAE,MAAA,CAAO;AAAA,EACnC,MAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,yBAAyB,CAAA;AAAA,EACjD,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,KAAA,CAAM,EAAE,OAAA,EAAS,uBAAA,EAAyB,CAAA,CAAE,QAAA,EAAS;AAAA,EACvE,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,EAAE,OAAA,EAAS,aAAA,EAAe,CAAA,CAAE,QAAA;AAClD,CAAC;AAKM,IAAM,sBAAA,GAAyB,EAAE,MAAA,CAAO;AAAA,EAC7C,OAAO,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,2BAA2B,CAAA;AAAA,EACpD,aAAa,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,+BAA+B,CAAA;AAAA,EAC9D,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC3B,CAAC;AAKM,IAAM,aAAA,GAAgB,EAAE,MAAA,CAAO;AAAA,EACpC,SAAA,EAAW,CAAA,CACR,MAAA,EAAO,CACP,GAAA,CAAI,EAAE,OAAA,EAAS,+BAAA,EAAiC,CAAA,CAChD,QAAA,EAAS;AAAA,EACZ,WAAA,EAAa,CAAA,CACV,KAAA,CAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,EAAE,OAAA,EAAS,2BAAA,EAA6B,CAAC,EAC9D,QAAA;AACL,CAAC;AAKM,IAAM,aAAA,GAAgB,EAAE,MAAA,CAAO;AAAA,EACpC,MAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,8BAA8B,CAAA;AAAA,EACtD,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC;AAMM,IAAM,mBAAA,GAAsB,EAAE,MAAA,CAAO;AAAA;AAAA,EAE1C,EAAA,EAAI,CAAA,CACD,MAAA,EAAO,CACP,GAAA,CAAI,CAAA,EAAG,wCAAwC,CAAA,CAC/C,GAAA,CAAI,EAAA,EAAI,wCAAwC,CAAA,CAChD,KAAA;AAAA,IACC,cAAA;AAAA,IACA;AAAA,GACF;AAAA,EAEF,IAAA,EAAM,CAAA,CACH,MAAA,EAAO,CACP,GAAA,CAAI,GAAG,wBAAwB,CAAA,CAC/B,GAAA,CAAI,GAAA,EAAK,2CAA2C,CAAA;AAAA,EAEvD,OAAA,EAAS,CAAA,CACN,MAAA,EAAO,CACP,KAAA;AAAA,IACC,+BAAA;AAAA,IACA;AAAA,GACF;AAAA,EAEF,MAAA,EAAQ,YAAA;AAAA,EAER,QAAQ,CAAA,CACL,MAAA,GACA,GAAA,CAAI,CAAA,EAAG,4BAA4B,CAAA,CACnC,KAAA;AAAA,IACC,yBAAA;AAAA,IACA;AAAA,GACF;AAAA,EAEF,gBAAA,EAAkB,sBAAA;AAAA,EAElB,QAAA,EAAU,CAAA,CACP,KAAA,CAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAC,CAAA,CACvB,GAAA,CAAI,CAAA,EAAG,kCAAkC,CAAA;AAAA,EAE5C,MAAA,EAAQ,EAAE,MAAA,CAAO,CAAA,CAAE,QAAO,EAAG,CAAA,CAAE,KAAK,CAAA;AAAA;AAAA,EAEpC,OAAA,EAAS,aAAA;AAAA;AAAA,EAGT,aAAa,CAAA,CAAE,MAAA,GAAS,GAAA,CAAI,GAAG,EAAE,QAAA,EAAS;AAAA,EAE1C,OAAA,EAAS,cAAc,QAAA,EAAS;AAAA,EAEhC,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAE7B,UAAA,EAAY,CAAA,CACT,MAAA,EAAO,CACP,GAAA,CAAI,EAAE,OAAA,EAAS,gCAAA,EAAkC,CAAA,CACjD,QAAA,EAAS;AAAA,EAEZ,MAAM,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA;AAC5B,CAAC;AAaM,SAAS,sBAAsB,QAAA,EAAmB;AACvD,EAAA,OAAO,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAC/C;AAQO,SAAS,yBACd,QAAA,EAC6C;AAC7C,EAAA,mBAAA,CAAoB,MAAM,QAAQ,CAAA;AACpC","file":"index.mjs","sourcesContent":["/**\n * Zod schemas for ThemeManifest validation\n * Used for runtime validation of uploaded theme bundles\n */\n\nimport { z } from \"zod\";\n\n/**\n * Author information schema\n */\nexport const authorSchema = z.object({\n name: z.string().min(1, \"Author name is required\"),\n email: z.string().email({ message: \"Invalid email address\" }).optional(),\n url: z.string().url({ message: \"Invalid URL\" }).optional(),\n});\n\n/**\n * Peer dependencies schema\n */\nexport const peerDependenciesSchema = z.object({\n react: z.string().min(1, \"React version is required\"),\n \"react-dom\": z.string().min(1, \"React DOM version is required\"),\n \"@onex/core\": z.string().optional(),\n});\n\n/**\n * Theme preview schema\n */\nexport const previewSchema = z.object({\n thumbnail: z\n .string()\n .url({ message: \"Thumbnail must be a valid URL\" })\n .optional(),\n screenshots: z\n .array(z.string().url({ message: \"Screenshot URL is invalid\" }))\n .optional(),\n});\n\n/**\n * Export paths schema\n */\nexport const exportsSchema = z.object({\n main: z.string().min(1, \"Main export path is required\"),\n types: z.string().optional(),\n});\n\n/**\n * Theme manifest schema\n * Validates the manifest.json file in theme bundles\n */\nexport const themeManifestSchema = z.object({\n // Required fields\n id: z\n .string()\n .min(3, \"Theme ID must be at least 3 characters\")\n .max(50, \"Theme ID must be at most 50 characters\")\n .regex(\n /^[a-z0-9-]+$/,\n \"Theme ID must be lowercase letters, numbers, and hyphens only\"\n ),\n\n name: z\n .string()\n .min(1, \"Theme name is required\")\n .max(100, \"Theme name must be at most 100 characters\"),\n\n version: z\n .string()\n .regex(\n /^\\d+\\.\\d+\\.\\d+(-[a-z0-9.]+)?$/,\n \"Version must follow semver format (e.g., 1.0.0)\"\n ),\n\n author: authorSchema,\n\n engine: z\n .string()\n .min(1, \"Engine version is required\")\n .regex(\n /^[\\^~>=<]*\\d+\\.\\d+\\.\\d+/,\n \"Engine must be a valid semver range (e.g., ^1.0.0)\"\n ),\n\n peerDependencies: peerDependenciesSchema,\n\n sections: z\n .array(z.string().min(1))\n .min(1, \"At least one section is required\"),\n\n config: z.record(z.string(), z.any()), // ThemeConfig validation done separately\n\n exports: exportsSchema,\n\n // Optional fields\n description: z.string().max(500).optional(),\n\n preview: previewSchema.optional(),\n\n license: z.string().optional(),\n\n repository: z\n .string()\n .url({ message: \"Repository must be a valid URL\" })\n .optional(),\n\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Type inference from schema\n */\nexport type ThemeManifestValidation = z.infer<typeof themeManifestSchema>;\n\n/**\n * Validate theme manifest\n *\n * @param manifest - The manifest object to validate\n * @returns Validation result with typed data or errors\n */\nexport function validateThemeManifest(manifest: unknown) {\n return themeManifestSchema.safeParse(manifest);\n}\n\n/**\n * Validate theme manifest and throw on error\n *\n * @param manifest - The manifest object to validate\n * @throws ZodError if validation fails\n */\nexport function assertValidThemeManifest(\n manifest: unknown\n): asserts manifest is ThemeManifestValidation {\n themeManifestSchema.parse(manifest);\n}\n"]}