@upstart.gg/sdk 0.0.137 → 0.0.138

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 (232) hide show
  1. package/dist/shared/ai/schemas.js +2 -2
  2. package/dist/shared/ai/schemas.js.map +1 -1
  3. package/dist/shared/ai/types.d.ts +2 -2
  4. package/dist/shared/ai/types.d.ts.map +1 -1
  5. package/dist/shared/ajv.js +26 -25
  6. package/dist/shared/ajv.js.map +1 -1
  7. package/dist/shared/attributes.d.ts +8 -0
  8. package/dist/shared/attributes.d.ts.map +1 -1
  9. package/dist/shared/attributes.js +15 -14
  10. package/dist/shared/brick-manifest.js +2 -2
  11. package/dist/shared/bricks/manifests/accordion.manifest.js +8 -7
  12. package/dist/shared/bricks/manifests/all-manifests.js +38 -37
  13. package/dist/shared/bricks/manifests/all-props.d.ts +32 -22
  14. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -1
  15. package/dist/shared/bricks/manifests/all-props.js +40 -39
  16. package/dist/shared/bricks/manifests/all-props.js.map +1 -1
  17. package/dist/shared/bricks/manifests/box.manifest.js +11 -10
  18. package/dist/shared/bricks/manifests/button.manifest.js +10 -9
  19. package/dist/shared/bricks/manifests/card.manifest.d.ts +2 -0
  20. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  21. package/dist/shared/bricks/manifests/card.manifest.js +13 -12
  22. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +1 -0
  23. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  24. package/dist/shared/bricks/manifests/carousel.manifest.js +11 -10
  25. package/dist/shared/bricks/manifests/footer.manifest.d.ts +2 -0
  26. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  27. package/dist/shared/bricks/manifests/footer.manifest.js +9 -8
  28. package/dist/shared/bricks/manifests/form.manifest.js +9 -8
  29. package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -4
  30. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  31. package/dist/shared/bricks/manifests/hero.manifest.js +10 -9
  32. package/dist/shared/bricks/manifests/html.manifest.d.ts +1 -0
  33. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  34. package/dist/shared/bricks/manifests/html.manifest.js +6 -5
  35. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  36. package/dist/shared/bricks/manifests/icon.manifest.js +9 -8
  37. package/dist/shared/bricks/manifests/image.manifest.d.ts +1 -0
  38. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  39. package/dist/shared/bricks/manifests/image.manifest.js +12 -11
  40. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -0
  41. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  42. package/dist/shared/bricks/manifests/images-gallery.manifest.js +11 -10
  43. package/dist/shared/bricks/manifests/map.manifest.d.ts +1 -0
  44. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  45. package/dist/shared/bricks/manifests/map.manifest.js +9 -8
  46. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +2 -0
  47. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  48. package/dist/shared/bricks/manifests/navbar.manifest.js +11 -10
  49. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  50. package/dist/shared/bricks/manifests/sidebar.manifest.js +11 -10
  51. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  52. package/dist/shared/bricks/manifests/social-links.manifest.js +10 -9
  53. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  54. package/dist/shared/bricks/manifests/spacer.manifest.js +6 -5
  55. package/dist/shared/bricks/manifests/table.manifest.d.ts +1 -0
  56. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  57. package/dist/shared/bricks/manifests/table.manifest.js +10 -9
  58. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +1 -1
  59. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  60. package/dist/shared/bricks/manifests/tabs.manifest.js +11 -10
  61. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +3 -1
  62. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  63. package/dist/shared/bricks/manifests/testimonials.manifest.js +13 -12
  64. package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -5
  65. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  66. package/dist/shared/bricks/manifests/text.manifest.js +10 -9
  67. package/dist/shared/bricks/manifests/timeline.manifest.js +11 -10
  68. package/dist/shared/bricks/manifests/video.manifest.js +9 -8
  69. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  70. package/dist/shared/bricks/props/background.js +1 -1
  71. package/dist/shared/bricks/props/border.js +2 -2
  72. package/dist/shared/bricks/props/color.d.ts.map +1 -1
  73. package/dist/shared/bricks/props/color.js +1 -1
  74. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  75. package/dist/shared/bricks/props/common.js +2 -1
  76. package/dist/shared/bricks/props/grow.d.ts +3 -0
  77. package/dist/shared/bricks/props/grow.d.ts.map +1 -0
  78. package/dist/shared/bricks/props/grow.js +10 -0
  79. package/dist/shared/bricks/props/grow.js.map +1 -0
  80. package/dist/shared/bricks/props/helpers.js +3 -2
  81. package/dist/shared/bricks/props/image.d.ts +1 -0
  82. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  83. package/dist/shared/bricks/props/image.js +1 -1
  84. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  85. package/dist/shared/bricks/props/string.js +1 -1
  86. package/dist/shared/bricks.d.ts +18 -17
  87. package/dist/shared/bricks.d.ts.map +1 -1
  88. package/dist/shared/bricks.js +39 -38
  89. package/dist/shared/chunk-2EOCK66Z.js +19 -0
  90. package/dist/shared/chunk-2EOCK66Z.js.map +1 -0
  91. package/dist/shared/{chunk-XXPSM6UA.js → chunk-2UEPTT5J.js} +5 -9
  92. package/dist/shared/chunk-2UEPTT5J.js.map +1 -0
  93. package/dist/shared/{chunk-DRQKKPTX.js → chunk-2Z5WOCFS.js} +41 -1
  94. package/dist/shared/chunk-2Z5WOCFS.js.map +1 -0
  95. package/dist/shared/{chunk-7U5WPHXB.js → chunk-34IUWNRX.js} +7 -7
  96. package/dist/shared/chunk-57NRTXRA.js +309 -0
  97. package/dist/shared/chunk-57NRTXRA.js.map +1 -0
  98. package/dist/shared/{chunk-T6C3NG2L.js → chunk-5HJT5NJ3.js} +8 -8
  99. package/dist/shared/{chunk-BZTWZC77.js → chunk-5J4Y43RM.js} +37 -179
  100. package/dist/shared/chunk-5J4Y43RM.js.map +1 -0
  101. package/dist/shared/{chunk-KKWT3OXF.js → chunk-5OVOXUFX.js} +3 -2
  102. package/dist/shared/{chunk-KKWT3OXF.js.map → chunk-5OVOXUFX.js.map} +1 -1
  103. package/dist/shared/{chunk-XK2CERPB.js → chunk-5SNSUC6Q.js} +7 -7
  104. package/dist/shared/{chunk-JLDAS3VE.js → chunk-B5T2LFV2.js} +10 -14
  105. package/dist/shared/chunk-B5T2LFV2.js.map +1 -0
  106. package/dist/shared/{chunk-PF75LW33.js → chunk-E3ZW57HF.js} +18 -9
  107. package/dist/shared/chunk-E3ZW57HF.js.map +1 -0
  108. package/dist/shared/{chunk-JSDKK5QN.js → chunk-EUFVTHAG.js} +5 -3
  109. package/dist/shared/chunk-EUFVTHAG.js.map +1 -0
  110. package/dist/shared/{chunk-U4KZUX37.js → chunk-FC52EHCC.js} +8 -8
  111. package/dist/shared/chunk-FC52EHCC.js.map +1 -0
  112. package/dist/shared/{chunk-JW7MQAU4.js → chunk-FVV27R73.js} +9 -94
  113. package/dist/shared/chunk-FVV27R73.js.map +1 -0
  114. package/dist/shared/{chunk-SQXZNGQF.js → chunk-FYGFB5U5.js} +3 -1
  115. package/dist/shared/chunk-FYGFB5U5.js.map +1 -0
  116. package/dist/shared/{chunk-J45LSQT6.js → chunk-GNTJT7MR.js} +2 -2
  117. package/dist/shared/chunk-HHUFGV7J.js +259 -0
  118. package/dist/shared/chunk-HHUFGV7J.js.map +1 -0
  119. package/dist/shared/{chunk-W2RFDII5.js → chunk-IMDOF55E.js} +12 -4
  120. package/dist/shared/chunk-IMDOF55E.js.map +1 -0
  121. package/dist/shared/{chunk-KQH6V22E.js → chunk-IPWYNE6Y.js} +25 -25
  122. package/dist/shared/{chunk-H6TMBELF.js → chunk-J6R3GSKS.js} +46 -34
  123. package/dist/shared/chunk-J6R3GSKS.js.map +1 -0
  124. package/dist/shared/{chunk-TBT2PTGB.js → chunk-KRODRZNS.js} +9 -9
  125. package/dist/shared/chunk-KTA7XES3.js +168 -0
  126. package/dist/shared/chunk-KTA7XES3.js.map +1 -0
  127. package/dist/shared/{chunk-SK2O7GFC.js → chunk-L4W4B2RQ.js} +15 -70
  128. package/dist/shared/chunk-L4W4B2RQ.js.map +1 -0
  129. package/dist/shared/{chunk-MYOLWTB2.js → chunk-NTP6BKRU.js} +9 -9
  130. package/dist/shared/chunk-NTP6BKRU.js.map +1 -0
  131. package/dist/shared/{chunk-JF52BBFD.js → chunk-O53V22BK.js} +18 -10
  132. package/dist/shared/chunk-O53V22BK.js.map +1 -0
  133. package/dist/shared/{chunk-ZVJNRKT4.js → chunk-ORIUCOED.js} +7 -7
  134. package/dist/shared/{chunk-LGDDJJHK.js → chunk-PFZMRSHJ.js} +11 -11
  135. package/dist/shared/{chunk-6AE7UD73.js → chunk-QHKOAIOK.js} +31 -60
  136. package/dist/shared/chunk-QHKOAIOK.js.map +1 -0
  137. package/dist/shared/{chunk-LPAQ47C6.js → chunk-RDOCVLCF.js} +11 -11
  138. package/dist/shared/{chunk-VSLRTXLF.js → chunk-RFH7PEVS.js} +5 -4
  139. package/dist/shared/chunk-RFH7PEVS.js.map +1 -0
  140. package/dist/shared/{chunk-XNRSL6FL.js → chunk-T3UPW5OW.js} +5 -4
  141. package/dist/shared/{chunk-XNRSL6FL.js.map → chunk-T3UPW5OW.js.map} +1 -1
  142. package/dist/shared/{chunk-FUUSAMN3.js → chunk-TGKNA2JS.js} +8 -8
  143. package/dist/shared/{chunk-HY7JOP3J.js → chunk-TZ6X7ZM5.js} +19 -11
  144. package/dist/shared/chunk-TZ6X7ZM5.js.map +1 -0
  145. package/dist/shared/{chunk-VTCHJT4O.js → chunk-UC75KRLX.js} +2 -2
  146. package/dist/shared/{chunk-4KY7OZWD.js → chunk-VMIJ6MG5.js} +13 -13
  147. package/dist/shared/{chunk-SRYBJ6NQ.js → chunk-VYA2FCTY.js} +2 -2
  148. package/dist/shared/{chunk-LGGPCCCY.js → chunk-XYWSIMZ6.js} +3 -3
  149. package/dist/shared/chunk-XYWSIMZ6.js.map +1 -0
  150. package/dist/shared/{chunk-FHA4DFIM.js → chunk-ZYQZUWF7.js} +10 -10
  151. package/dist/shared/{chunk-2O5HVPID.js → chunk-ZZVYD4BG.js} +3 -3
  152. package/dist/shared/context.d.ts +4 -0
  153. package/dist/shared/context.d.ts.map +1 -1
  154. package/dist/shared/context.js +43 -42
  155. package/dist/shared/context.js.map +1 -1
  156. package/dist/shared/page.d.ts +2 -0
  157. package/dist/shared/page.d.ts.map +1 -1
  158. package/dist/shared/page.js +41 -40
  159. package/dist/shared/site.d.ts +7 -0
  160. package/dist/shared/site.d.ts.map +1 -1
  161. package/dist/shared/site.js +43 -42
  162. package/dist/shared/sitemap.js +42 -41
  163. package/dist/shared/utils/schema.d.ts +0 -5
  164. package/dist/shared/utils/schema.d.ts.map +1 -1
  165. package/dist/shared/utils/schema.js +1 -3
  166. package/package.json +2 -2
  167. package/src/shared/ai/schemas.ts +1 -1
  168. package/src/shared/ai/types.ts +2 -2
  169. package/src/shared/bricks/manifests/card.manifest.ts +25 -168
  170. package/src/shared/bricks/manifests/hero.manifest.ts +44 -249
  171. package/src/shared/bricks/manifests/html.manifest.ts +6 -0
  172. package/src/shared/bricks/manifests/icon.manifest.ts +1 -89
  173. package/src/shared/bricks/manifests/image.manifest.ts +0 -4
  174. package/src/shared/bricks/manifests/images-gallery.manifest.ts +8 -0
  175. package/src/shared/bricks/manifests/map.manifest.ts +9 -65
  176. package/src/shared/bricks/manifests/sidebar.manifest.ts +0 -1
  177. package/src/shared/bricks/manifests/social-links.manifest.ts +0 -1
  178. package/src/shared/bricks/manifests/spacer.manifest.ts +0 -1
  179. package/src/shared/bricks/manifests/table.manifest.ts +6 -0
  180. package/src/shared/bricks/manifests/tabs.manifest.ts +12 -429
  181. package/src/shared/bricks/manifests/testimonials.manifest.ts +28 -226
  182. package/src/shared/bricks/manifests/text.manifest.ts +16 -44
  183. package/src/shared/bricks/props/background.ts +2 -1
  184. package/src/shared/bricks/props/color.ts +5 -2
  185. package/src/shared/bricks/props/common.ts +2 -8
  186. package/src/shared/bricks/props/grow.ts +11 -0
  187. package/src/shared/bricks/props/image.ts +40 -0
  188. package/src/shared/bricks/props/string.ts +2 -0
  189. package/src/shared/bricks.ts +33 -23
  190. package/src/shared/page.ts +1 -0
  191. package/src/shared/site.ts +1 -0
  192. package/src/shared/utils/schema.ts +28 -18
  193. package/src/shared/utils/tests/schema.test.ts +211 -4
  194. package/dist/shared/chunk-6AE7UD73.js.map +0 -1
  195. package/dist/shared/chunk-BZTWZC77.js.map +0 -1
  196. package/dist/shared/chunk-DRQKKPTX.js.map +0 -1
  197. package/dist/shared/chunk-H6TMBELF.js.map +0 -1
  198. package/dist/shared/chunk-HUWMIXNN.js +0 -570
  199. package/dist/shared/chunk-HUWMIXNN.js.map +0 -1
  200. package/dist/shared/chunk-HY7JOP3J.js.map +0 -1
  201. package/dist/shared/chunk-JF52BBFD.js.map +0 -1
  202. package/dist/shared/chunk-JLDAS3VE.js.map +0 -1
  203. package/dist/shared/chunk-JSDKK5QN.js.map +0 -1
  204. package/dist/shared/chunk-JW7MQAU4.js.map +0 -1
  205. package/dist/shared/chunk-LGGPCCCY.js.map +0 -1
  206. package/dist/shared/chunk-MYOLWTB2.js.map +0 -1
  207. package/dist/shared/chunk-O24RDXZS.js +0 -505
  208. package/dist/shared/chunk-O24RDXZS.js.map +0 -1
  209. package/dist/shared/chunk-PF75LW33.js.map +0 -1
  210. package/dist/shared/chunk-QEJGPYTB.js +0 -462
  211. package/dist/shared/chunk-QEJGPYTB.js.map +0 -1
  212. package/dist/shared/chunk-SK2O7GFC.js.map +0 -1
  213. package/dist/shared/chunk-SQXZNGQF.js.map +0 -1
  214. package/dist/shared/chunk-U4KZUX37.js.map +0 -1
  215. package/dist/shared/chunk-VSLRTXLF.js.map +0 -1
  216. package/dist/shared/chunk-W2RFDII5.js.map +0 -1
  217. package/dist/shared/chunk-XXPSM6UA.js.map +0 -1
  218. /package/dist/shared/{chunk-7U5WPHXB.js.map → chunk-34IUWNRX.js.map} +0 -0
  219. /package/dist/shared/{chunk-T6C3NG2L.js.map → chunk-5HJT5NJ3.js.map} +0 -0
  220. /package/dist/shared/{chunk-XK2CERPB.js.map → chunk-5SNSUC6Q.js.map} +0 -0
  221. /package/dist/shared/{chunk-J45LSQT6.js.map → chunk-GNTJT7MR.js.map} +0 -0
  222. /package/dist/shared/{chunk-KQH6V22E.js.map → chunk-IPWYNE6Y.js.map} +0 -0
  223. /package/dist/shared/{chunk-TBT2PTGB.js.map → chunk-KRODRZNS.js.map} +0 -0
  224. /package/dist/shared/{chunk-ZVJNRKT4.js.map → chunk-ORIUCOED.js.map} +0 -0
  225. /package/dist/shared/{chunk-LGDDJJHK.js.map → chunk-PFZMRSHJ.js.map} +0 -0
  226. /package/dist/shared/{chunk-LPAQ47C6.js.map → chunk-RDOCVLCF.js.map} +0 -0
  227. /package/dist/shared/{chunk-FUUSAMN3.js.map → chunk-TGKNA2JS.js.map} +0 -0
  228. /package/dist/shared/{chunk-VTCHJT4O.js.map → chunk-UC75KRLX.js.map} +0 -0
  229. /package/dist/shared/{chunk-4KY7OZWD.js.map → chunk-VMIJ6MG5.js.map} +0 -0
  230. /package/dist/shared/{chunk-SRYBJ6NQ.js.map → chunk-VYA2FCTY.js.map} +0 -0
  231. /package/dist/shared/{chunk-FHA4DFIM.js.map → chunk-ZYQZUWF7.js.map} +0 -0
  232. /package/dist/shared/{chunk-2O5HVPID.js.map → chunk-ZZVYD4BG.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/text.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { textContent } from \"../props/text\";\nimport { defineProps } from \"../props/helpers\";\nimport { border, rounding } from \"../props/border\";\nimport { RxTextAlignLeft } from \"react-icons/rx\";\nimport { Type } from \"@sinclair/typebox\";\nimport { alignItems } from \"../props/align\";\nimport { shadow } from \"../props/effects\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\nimport { backgroundColor } from \"../props/background\";\nimport { color } from \"../props/color\";\n\nexport const manifest = defineBrickManifest({\n type: \"text\",\n category: \"basic\",\n name: \"Text\",\n description: \"Text with formatting options\",\n aiInstructions: `Use the text component for rich content blocks, announcements, descriptions, and formatted text throughout your site.\n\nCONTENT FORMATTING:\n- Supports HTML tags: <h1>, <h2>, <h3>, <h4>, <p>, <span>, <strong>, <em>, <br>, <a>, <ul>, <li>, <ol>\n- Only 'text-align' style is supported (center, left, right) - avoid other inline styles\n- Use <strong> for emphasis, <em> for italics, <br> for line breaks\n- Links: <a href=\"/page\">Internal</a> or <a href=\"https://external.com\">External</a>\n- Lists: <ul><li>Item 1</li><li>Item 2</li></ul>\n\nSTYLING OPTIONS:\n- \"color\": Leave empty to inherit parent text color, which is the recommended setting when the brick is a direct child of a section or box with background color.\n- \"backgroundColor\": Only use when the text brick is a direct child of a section.Leave empty for transparent background, or set to a color like \"bg-xxx-nnn\" for emphasis.\n- \"padding\": Use CSS values like \"1rem\", \"2rem\", \"24px\" for internal spacing\n\nWHEN TO USE:\n- All text content that requires formatting\n- Rich content sections (About Us, Service descriptions)\n- Announcements and notices\n- Product descriptions with formatting\n- Quotes and testimonials\n- FAQ content and detailed explanations\n\nBEST PRACTICES:\n- Keep HTML minimal - complex layouts should use multiple components\n- Use semantic headings (h2, h3, h4) for proper hierarchy\n- Center-align for quotes/testimonials, left-align for body text`,\n\n defaultWidth: {\n mobile: \"100%\",\n },\n defaultHeight: {\n desktop: \"auto\",\n mobile: \"auto\",\n },\n staticClasses: \"prose lg:prose-lg\",\n icon: RxTextAlignLeft,\n props: defineProps({\n backgroundColor: Type.Optional(\n backgroundColor({\n title: \"Background color\",\n }),\n ),\n color: Type.Optional(\n color({\n title: \"Text color\",\n }),\n ),\n content: textContent({\n title: \"Content\",\n // metadata: {\n // category: \"content\",\n // },\n }),\n padding: Type.Optional(\n cssLength({\n default: \"2rem\",\n description: \"Padding inside the text.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: rounding({\n default: \"rounded-md\",\n }),\n border: Type.Optional(border()),\n shadow: Type.Optional(shadow()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Welcome paragraph with emphasis and padding\",\n type: \"text\",\n props: {\n content:\n \"Welcome to our platform! We're <strong>excited</strong> to have you here. Our mission is to <em>transform</em> the way you work with cutting-edge technology and <a href='/features'>innovative features</a>.\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Feature list with HTML formatting and smaller padding\",\n type: \"text\",\n props: {\n content:\n \"<h3>Key Features</h3><ul><li><strong>Advanced Analytics</strong> - Real-time data insights</li><li><strong>Cloud Integration</strong> - Seamless connectivity</li><li><strong>24/7 Support</strong> - Always here to help</li></ul>\",\n padding: \"1rem\",\n },\n },\n {\n description: \"Quote block with text styling but no background\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'><em>\\\"Innovation distinguishes between a leader and a follower.\\\"</em><br><strong>- Steve Jobs</strong></p>\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Simple heading with subtle background\",\n type: \"text\",\n props: {\n content:\n \"<h2>About Our Company</h2><p>We've been serving customers since 2010, building trust through quality products and exceptional service.</p>\",\n },\n },\n {\n description: \"Team introduction with formatting, no background color\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'><strong>Meet Our Team</strong></p><p>Our diverse team of experts brings together decades of experience in technology, design, and business strategy. We're passionate about <em>creating solutions</em> that make a real difference.</p><p><a href='/team'>Learn more about our team</a> and the values that drive us forward.</p>\",\n padding: \"2rem\",\n },\n },\n {\n description: \"Maintenance notice with neutral background and border\",\n type: \"text\",\n props: {\n content:\n \"<p>Scheduled maintenance will occur on <em>Sunday, March 15th</em> from 2:00 AM to 6:00 AM UTC.</p><p>During this time, some features may be temporarily unavailable. We apologize for any inconvenience.</p>\",\n padding: \"1rem\",\n border: {\n width: \"border\",\n color: \"border-neutral-400\",\n },\n rounding: \"rounded-lg\",\n },\n },\n {\n description: \"Minimal text with no padding or background\",\n type: \"text\",\n props: {\n content: \"This is some minimal text.\",\n padding: \"0rem\",\n },\n },\n {\n description: \"Call-to-action text with secondary background and shadow\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='text-align: center'>Ready to Get Started?</h3><p style='text-align: center'>Join thousands of satisfied customers who trust our platform. <strong>Sign up today</strong> and experience the difference!</p><p style='text-align: center'><a href='/signup'>Create Your Free Account</a></p>\",\n padding: \"2.5rem\",\n rounding: \"rounded-xl\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Technical documentation with accent colors and code-like formatting\",\n type: \"text\",\n props: {\n content:\n \"<h4>API Authentication</h4><p>To authenticate your requests, include your API key in the header:</p><p><strong>Authorization: Bearer YOUR_API_KEY</strong></p><p>All API endpoints require authentication. You can find your API key in the <a href='/dashboard'>dashboard settings</a>.</p>\",\n padding: \"1.5rem\",\n rounding: \"rounded-md\",\n border: {\n width: \"border-4\",\n color: \"border-accent-500\",\n },\n },\n },\n {\n description: \"Success message with primary background and top alignment\",\n type: \"text\",\n props: {\n content:\n \"<h3>✅ Payment Successful!</h3><p>Thank you for your purchase. Your order <strong>#12345</strong> has been confirmed.</p><p>You will receive an email confirmation shortly at your registered email address.</p>\",\n padding: \"2rem\",\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Footer information with neutral dark theme and multiple links\",\n type: \"text\",\n props: {\n content:\n \"<p style='text-align: center'>© 2024 Company Name. All rights reserved.</p><p style='text-align: center'><a href='/privacy'>Privacy Policy</a> | <a href='/terms'>Terms of Service</a> | <a href='/contact'>Contact Us</a></p><p style='text-align: center'><em>Follow us on social media for the latest updates</em></p>\",\n padding: \"1.5rem\",\n },\n },\n {\n description: \"Product description with large padding and rounded corners\",\n type: \"text\",\n props: {\n content:\n \"<h2>Premium Wireless Headphones</h2><p>Experience <strong>crystal-clear audio</strong> with our latest wireless headphones featuring:</p><ul><li>Active noise cancellation</li><li>30-hour battery life</li><li>Premium leather comfort</li><li>Hi-res audio certification</li></ul><p>Perfect for <em>music lovers</em> and <em>professionals</em> alike.</p>\",\n padding: \"3rem\",\n rounding: \"rounded-2xl\",\n shadow: \"shadow-lg\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n },\n },\n {\n description: \"Emergency alert with accent background and extra bold formatting\",\n type: \"text\",\n props: {\n content:\n \"<h3 style='text-align: center'>⚠️ URGENT NOTICE</h3><p style='text-align: center'><strong>System maintenance is currently in progress.</strong></p><p style='text-align: center'>Some services may be <em>temporarily unavailable</em>. We expect full restoration by 4:00 PM EST.</p><p style='text-align: center'>For urgent support, please <a href='/emergency-contact'>contact our emergency line</a>.</p>\",\n padding: \"2rem\",\n rounding: \"rounded-md\",\n border: {\n width: \"border-2\",\n color: \"border-accent-600\",\n },\n shadow: \"shadow-xl\",\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -1,27 +1,27 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
- import {
4
- defineProps
5
- } from "./chunk-VTCHJT4O.js";
6
3
  import {
7
4
  boolean
8
5
  } from "./chunk-KNREHAPN.js";
9
6
  import {
10
- fontSize,
11
- textContent
12
- } from "./chunk-2U5U3CCJ.js";
13
- import {
14
- cssLength
15
- } from "./chunk-OJ6KL7FU.js";
7
+ defineProps
8
+ } from "./chunk-UC75KRLX.js";
16
9
  import {
17
10
  loop
18
11
  } from "./chunk-XFZQGRRL.js";
12
+ import {
13
+ fontSize,
14
+ textContent
15
+ } from "./chunk-2U5U3CCJ.js";
19
16
  import {
20
17
  colorPreset
21
18
  } from "./chunk-IEMCCHM4.js";
19
+ import {
20
+ cssLength
21
+ } from "./chunk-OJ6KL7FU.js";
22
22
  import {
23
23
  defineBrickManifest
24
- } from "./chunk-J45LSQT6.js";
24
+ } from "./chunk-GNTJT7MR.js";
25
25
  import {
26
26
  StringEnum
27
27
  } from "./chunk-GDYCCB3B.js";
@@ -419,4 +419,4 @@ export {
419
419
  manifest,
420
420
  examples
421
421
  };
422
- //# sourceMappingURL=chunk-LPAQ47C6.js.map
422
+ //# sourceMappingURL=chunk-RDOCVLCF.js.map
@@ -2,17 +2,18 @@
2
2
 
3
3
  import {
4
4
  pageAttributesSchema
5
- } from "./chunk-T6C3NG2L.js";
5
+ } from "./chunk-5HJT5NJ3.js";
6
6
  import {
7
7
  sectionSchema
8
- } from "./chunk-H6TMBELF.js";
8
+ } from "./chunk-J6R3GSKS.js";
9
9
 
10
10
  // src/shared/page.ts
11
11
  import { Type } from "@sinclair/typebox";
12
12
  var pageSchema = Type.Object({
13
13
  id: Type.String({
14
14
  description: "The unique ID of the page. Use a human readable url-safe slug",
15
- examples: ["home", "about-us", "products-list"]
15
+ examples: ["home", "about-us", "products-list"],
16
+ pattern: "^[a-z0-9-_]+$"
16
17
  }),
17
18
  label: Type.String({
18
19
  description: "The label (name) of the page",
@@ -34,4 +35,4 @@ export {
34
35
  pageSchema,
35
36
  versionedPageSchema
36
37
  };
37
- //# sourceMappingURL=chunk-VSLRTXLF.js.map
38
+ //# sourceMappingURL=chunk-RFH7PEVS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/page.ts"],"sourcesContent":["import { pageAttributesSchema } from \"./attributes\";\nimport { sectionSchema } from \"./bricks\";\nimport { Type, type Static } from \"@sinclair/typebox\";\n\nexport const pageSchema = Type.Object({\n id: Type.String({\n description: \"The unique ID of the page. Use a human readable url-safe slug\",\n examples: [\"home\", \"about-us\", \"products-list\"],\n pattern: \"^[a-z0-9-_]+$\",\n }),\n label: Type.String({\n description: \"The label (name) of the page\",\n examples: [\"Home\", \"About us\", \"Products\"],\n }),\n sections: Type.Array(sectionSchema, {\n description: \"The sections of the page. See the Section schema\",\n }),\n attributes: pageAttributesSchema,\n});\n\nexport type Page = Static<typeof pageSchema>;\n\nexport const versionedPageSchema = Type.Composite([\n pageSchema,\n Type.Object({\n version: Type.String(),\n }),\n]);\n\nexport type VersionedPage = Static<typeof versionedPageSchema>;\n\n/**\n * Page context represents the page config PLUS:\n * - the pathParams of the actual request.\n * - the resolved data for the page.\n */\nexport type PageContext = VersionedPage & {\n pathParams?: Record<string, string>;\n data?: Record<string, unknown[]>;\n};\n"],"mappings":";;;;;;;;;;AAEA,SAAS,YAAyB;AAE3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,IAAI,KAAK,OAAO;AAAA,IACd,aAAa;AAAA,IACb,UAAU,CAAC,QAAQ,YAAY,eAAe;AAAA,IAC9C,SAAS;AAAA,EACX,CAAC;AAAA,EACD,OAAO,KAAK,OAAO;AAAA,IACjB,aAAa;AAAA,IACb,UAAU,CAAC,QAAQ,YAAY,UAAU;AAAA,EAC3C,CAAC;AAAA,EACD,UAAU,KAAK,MAAM,eAAe;AAAA,IAClC,aAAa;AAAA,EACf,CAAC;AAAA,EACD,YAAY;AACd,CAAC;AAIM,IAAM,sBAAsB,KAAK,UAAU;AAAA,EAChD;AAAA,EACA,KAAK,OAAO;AAAA,IACV,SAAS,KAAK,OAAO;AAAA,EACvB,CAAC;AACH,CAAC;","names":[]}
@@ -5,14 +5,14 @@ import {
5
5
  } from "./chunk-DCM4732T.js";
6
6
  import {
7
7
  sitemapSchema
8
- } from "./chunk-2O5HVPID.js";
8
+ } from "./chunk-ZZVYD4BG.js";
9
9
  import {
10
10
  defaultTheme,
11
11
  themeSchema
12
12
  } from "./chunk-FD7YYFRI.js";
13
13
  import {
14
14
  pageSchema
15
- } from "./chunk-VSLRTXLF.js";
15
+ } from "./chunk-RFH7PEVS.js";
16
16
  import {
17
17
  sitePrompt
18
18
  } from "./chunk-6TVVKUWM.js";
@@ -20,7 +20,7 @@ import {
20
20
  resolvePageAttributes,
21
21
  resolveSiteAttributes,
22
22
  siteAttributesSchema
23
- } from "./chunk-T6C3NG2L.js";
23
+ } from "./chunk-5HJT5NJ3.js";
24
24
  import {
25
25
  datasourcesList
26
26
  } from "./chunk-EMF5TCPX.js";
@@ -60,6 +60,7 @@ function createEmptyConfig(sitePrompt2) {
60
60
  // we need a fake page
61
61
  pages: [
62
62
  {
63
+ // Keep this fake id as is!
63
64
  id: "_default_",
64
65
  label: "First page",
65
66
  sections: [],
@@ -75,4 +76,4 @@ export {
75
76
  siteSchema,
76
77
  createEmptyConfig
77
78
  };
78
- //# sourceMappingURL=chunk-XNRSL6FL.js.map
79
+ //# sourceMappingURL=chunk-T3UPW5OW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/site.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { resolvePageAttributes, resolveSiteAttributes, siteAttributesSchema } from \"./attributes\";\nimport { datarecordsList } from \"./datarecords/types\";\nimport { datasourcesList } from \"./datasources/types\";\nimport { pageSchema } from \"./page\";\nimport { sitePrompt } from \"./prompt\";\nimport { sitemapSchema } from \"./sitemap\";\nimport { defaultTheme, themeSchema } from \"./theme\";\n\nexport const siteSchema = Type.Object({\n id: Type.String(),\n label: Type.String(),\n hostname: Type.String(),\n attributes: siteAttributesSchema,\n datasources: datasourcesList,\n datarecords: datarecordsList,\n themes: Type.Array(themeSchema),\n theme: themeSchema,\n sitemap: sitemapSchema,\n sitePrompt,\n});\n\nexport type Site = Static<typeof siteSchema>;\nexport type PublicSite = Omit<Site, \"sitePrompt\">;\n\nconst siteAndPagesSchema = Type.Object({\n site: siteSchema,\n pages: Type.Array(pageSchema),\n});\n\nexport type SiteAndPagesConfig = Static<typeof siteAndPagesSchema>;\n\nexport function createEmptyConfig(sitePrompt: string): SiteAndPagesConfig {\n return {\n site: {\n id: crypto.randomUUID(),\n label: `My site ${new Date().toLocaleString(undefined, { dateStyle: \"short\", timeStyle: \"short\" })}`,\n hostname: \"example.com\",\n sitePrompt,\n theme: defaultTheme,\n themes: [],\n sitemap: [],\n attributes: resolveSiteAttributes(),\n datarecords: [],\n datasources: [],\n },\n // we need a fake page\n pages: [\n {\n id: \"_default_\",\n label: \"First page\",\n sections: [],\n attributes: resolvePageAttributes({\n path: \"/\",\n }),\n },\n ],\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAyB;AAS3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,IAAI,KAAK,OAAO;AAAA,EAChB,OAAO,KAAK,OAAO;AAAA,EACnB,UAAU,KAAK,OAAO;AAAA,EACtB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ,KAAK,MAAM,WAAW;AAAA,EAC9B,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AACF,CAAC;AAKD,IAAM,qBAAqB,KAAK,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAO,KAAK,MAAM,UAAU;AAC9B,CAAC;AAIM,SAAS,kBAAkBA,aAAwC;AACxE,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,IAAI,OAAO,WAAW;AAAA,MACtB,OAAO,YAAW,oBAAI,KAAK,GAAE,eAAe,QAAW,EAAE,WAAW,SAAS,WAAW,QAAQ,CAAC,CAAC;AAAA,MAClG,UAAU;AAAA,MACV,YAAAA;AAAA,MACA,OAAO;AAAA,MACP,QAAQ,CAAC;AAAA,MACT,SAAS,CAAC;AAAA,MACV,YAAY,sBAAsB;AAAA,MAClC,aAAa,CAAC;AAAA,MACd,aAAa,CAAC;AAAA,IAChB;AAAA;AAAA,IAEA,OAAO;AAAA,MACL;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,UAAU,CAAC;AAAA,QACX,YAAY,sBAAsB;AAAA,UAChC,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;","names":["sitePrompt"]}
1
+ {"version":3,"sources":["../../src/shared/site.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { resolvePageAttributes, resolveSiteAttributes, siteAttributesSchema } from \"./attributes\";\nimport { datarecordsList } from \"./datarecords/types\";\nimport { datasourcesList } from \"./datasources/types\";\nimport { pageSchema } from \"./page\";\nimport { sitePrompt } from \"./prompt\";\nimport { sitemapSchema } from \"./sitemap\";\nimport { defaultTheme, themeSchema } from \"./theme\";\n\nexport const siteSchema = Type.Object({\n id: Type.String(),\n label: Type.String(),\n hostname: Type.String(),\n attributes: siteAttributesSchema,\n datasources: datasourcesList,\n datarecords: datarecordsList,\n themes: Type.Array(themeSchema),\n theme: themeSchema,\n sitemap: sitemapSchema,\n sitePrompt,\n});\n\nexport type Site = Static<typeof siteSchema>;\nexport type PublicSite = Omit<Site, \"sitePrompt\">;\n\nconst siteAndPagesSchema = Type.Object({\n site: siteSchema,\n pages: Type.Array(pageSchema),\n});\n\nexport type SiteAndPagesConfig = Static<typeof siteAndPagesSchema>;\n\nexport function createEmptyConfig(sitePrompt: string): SiteAndPagesConfig {\n return {\n site: {\n id: crypto.randomUUID(),\n label: `My site ${new Date().toLocaleString(undefined, { dateStyle: \"short\", timeStyle: \"short\" })}`,\n hostname: \"example.com\",\n sitePrompt,\n theme: defaultTheme,\n themes: [],\n sitemap: [],\n attributes: resolveSiteAttributes(),\n datarecords: [],\n datasources: [],\n },\n // we need a fake page\n pages: [\n {\n // Keep this fake id as is!\n id: \"_default_\",\n label: \"First page\",\n sections: [],\n attributes: resolvePageAttributes({\n path: \"/\",\n }),\n },\n ],\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAyB;AAS3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,IAAI,KAAK,OAAO;AAAA,EAChB,OAAO,KAAK,OAAO;AAAA,EACnB,UAAU,KAAK,OAAO;AAAA,EACtB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ,KAAK,MAAM,WAAW;AAAA,EAC9B,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AACF,CAAC;AAKD,IAAM,qBAAqB,KAAK,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAO,KAAK,MAAM,UAAU;AAC9B,CAAC;AAIM,SAAS,kBAAkBA,aAAwC;AACxE,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,IAAI,OAAO,WAAW;AAAA,MACtB,OAAO,YAAW,oBAAI,KAAK,GAAE,eAAe,QAAW,EAAE,WAAW,SAAS,WAAW,QAAQ,CAAC,CAAC;AAAA,MAClG,UAAU;AAAA,MACV,YAAAA;AAAA,MACA,OAAO;AAAA,MACP,QAAQ,CAAC;AAAA,MACT,SAAS,CAAC;AAAA,MACV,YAAY,sBAAsB;AAAA,MAClC,aAAa,CAAC;AAAA,MACd,aAAa,CAAC;AAAA,IAChB;AAAA;AAAA,IAEA,OAAO;AAAA,MACL;AAAA;AAAA,QAEE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,UAAU,CAAC;AAAA,QACX,YAAY,sBAAsB;AAAA,UAChC,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;","names":["sitePrompt"]}
@@ -2,25 +2,25 @@
2
2
 
3
3
  import {
4
4
  rounding
5
- } from "./chunk-SRYBJ6NQ.js";
5
+ } from "./chunk-VYA2FCTY.js";
6
6
  import {
7
7
  defineProps
8
- } from "./chunk-VTCHJT4O.js";
8
+ } from "./chunk-UC75KRLX.js";
9
9
  import {
10
10
  image
11
- } from "./chunk-DRQKKPTX.js";
12
- import {
13
- cssLength
14
- } from "./chunk-OJ6KL7FU.js";
11
+ } from "./chunk-2Z5WOCFS.js";
15
12
  import {
16
13
  loop
17
14
  } from "./chunk-XFZQGRRL.js";
18
15
  import {
19
16
  colorPreset
20
17
  } from "./chunk-IEMCCHM4.js";
18
+ import {
19
+ cssLength
20
+ } from "./chunk-OJ6KL7FU.js";
21
21
  import {
22
22
  defineBrickManifest
23
- } from "./chunk-J45LSQT6.js";
23
+ } from "./chunk-GNTJT7MR.js";
24
24
 
25
25
  // src/shared/bricks/manifests/carousel.manifest.ts
26
26
  import { Type } from "@sinclair/typebox";
@@ -844,4 +844,4 @@ export {
844
844
  manifest,
845
845
  examples
846
846
  };
847
- //# sourceMappingURL=chunk-FUUSAMN3.js.map
847
+ //# sourceMappingURL=chunk-TGKNA2JS.js.map
@@ -53,14 +53,20 @@ function normalizeSchemaEnum(schema) {
53
53
  function getSchemaDefaults(schema, mode) {
54
54
  if (schema.type === "object" && "properties" in schema) {
55
55
  const objectSchema = schema;
56
- const defaults = {};
56
+ const required = objectSchema.required || [];
57
+ const propertiesWithDefaults = {};
57
58
  for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {
58
59
  const defaultValue = getNestedDefaults(propertySchema, mode);
59
60
  if (defaultValue !== void 0) {
60
- defaults[key] = defaultValue;
61
+ propertiesWithDefaults[key] = defaultValue;
62
+ }
63
+ }
64
+ for (const requiredProp of required) {
65
+ if (!(requiredProp in propertiesWithDefaults)) {
66
+ return {};
61
67
  }
62
68
  }
63
- return defaults;
69
+ return propertiesWithDefaults;
64
70
  }
65
71
  if (schema.type === "array" && "items" in schema) {
66
72
  const arraySchema = schema;
@@ -83,14 +89,21 @@ function getNestedDefaults(schema, mode) {
83
89
  }
84
90
  if (schema.type === "object" && "properties" in schema) {
85
91
  const objectSchema = schema;
92
+ const required = objectSchema.required || [];
86
93
  const defaults = {};
94
+ const propertiesWithDefaults = {};
87
95
  for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {
88
96
  const defaultValue = getNestedDefaults(propertySchema, mode);
89
97
  if (defaultValue !== void 0) {
90
- defaults[key] = defaultValue;
98
+ propertiesWithDefaults[key] = defaultValue;
91
99
  }
92
100
  }
93
- return Object.keys(defaults).length > 0 ? defaults : void 0;
101
+ for (const requiredProp of required) {
102
+ if (!(requiredProp in propertiesWithDefaults)) {
103
+ return void 0;
104
+ }
105
+ }
106
+ return Object.keys(propertiesWithDefaults).length > 0 ? propertiesWithDefaults : void 0;
94
107
  }
95
108
  if (schema.type === "array" && "items" in schema) {
96
109
  return void 0;
@@ -114,10 +127,6 @@ function filterSchemaProperties(schema, filter) {
114
127
  }
115
128
  return extractProperties(schema);
116
129
  }
117
- function resolveSchema(schema) {
118
- console.warn("resolveSchema is deprecated, use resolveSchemaRecursive instead");
119
- return schema;
120
- }
121
130
  function validate(schema, data) {
122
131
  try {
123
132
  const valid = Value.Check(schema, data);
@@ -144,7 +153,6 @@ export {
144
153
  normalizeSchemaEnum,
145
154
  getSchemaDefaults,
146
155
  filterSchemaProperties,
147
- resolveSchema,
148
156
  validate
149
157
  };
150
- //# sourceMappingURL=chunk-HY7JOP3J.js.map
158
+ //# sourceMappingURL=chunk-TZ6X7ZM5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/utils/schema.ts"],"sourcesContent":["import { type TArray, type TObject, type TSchema, Kind, type Static } from \"@sinclair/typebox\";\nimport { Value } from \"@sinclair/typebox/value\";\nimport type { PageAttributes } from \"../attributes\";\nimport { defaultsDeep as applyDefaultsDeep, merge } from \"lodash-es\";\nimport { FormatRegistry } from \"@sinclair/typebox\";\nimport { DefaultErrorFunction, SetErrorFunction, ValueErrorType } from \"@sinclair/typebox/errors\";\n// export const jsonStringsSupportedFormats = [\"date-time\", \"date\", \"email\", \"url\"] as const;\n\n// import string enum for its side effects\nimport \"./string-enum\";\n\nconst urlValidator = (value: string) => {\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n};\n\nconst noCheck = (value: string) => true;\n\nFormatRegistry.Set(\"uuid\", (value) =>\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value),\n);\n// Allow different lengths for nanoid\nFormatRegistry.Set(\"nanoid\", (value) => /^[A-Za-z0-9_-]{7,32}$/.test(value));\nFormatRegistry.Set(\"slug\", (value) => /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value));\n// Simple format checks for richtext, markdown, multiline, password, image, file\nFormatRegistry.Set(\"richtext\", noCheck);\nFormatRegistry.Set(\"markdown\", noCheck);\nFormatRegistry.Set(\"multiline\", noCheck);\nFormatRegistry.Set(\"password\", noCheck);\nFormatRegistry.Set(\"image\", urlValidator);\nFormatRegistry.Set(\"file\", urlValidator);\n\nSetErrorFunction((error) => {\n if (error.errorType === ValueErrorType.Kind) {\n if (\n error.schema.type === \"string\" &&\n typeof error.value === \"string\" &&\n error.schema.enum &&\n !error.schema.enum.includes(error.value)\n ) {\n return `Must include valid value: [${error.schema.enum.join(\", \")}]`;\n }\n }\n\n return DefaultErrorFunction(error);\n});\n\nexport function normalizeSchemaEnum(schema: TSchema): Array<{ const: string; title: string }> {\n if (!(\"enum\" in schema)) {\n return schema.anyOf ?? schema.oneOf;\n }\n const {\n enum: enumValues,\n enumNames,\n \"ui:icons\": icons,\n } = schema as unknown as { enum: string[]; enumNames?: string[]; \"ui:icons\"?: string[] };\n // combine to key-value pairs\n return enumValues.map((value, index) => ({\n const: value,\n title: enumNames ? enumNames[index] : value,\n \"ui:icon\": icons ? icons[index] : undefined,\n }));\n}\n\nexport function getSchemaDefaults<T extends TObject | TArray>(\n schema: T,\n mode?: \"mobile\" | \"desktop\",\n): Static<T> {\n // Handle object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const required = objectSchema.required || [];\n\n // First pass: collect all properties that have defaults\n const propertiesWithDefaults: Record<string, unknown> = {};\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n if (defaultValue !== undefined) {\n propertiesWithDefaults[key] = defaultValue;\n }\n }\n\n // Second pass: validate that all required properties have defaults\n // If any required property lacks a default, return empty object\n for (const requiredProp of required) {\n if (!(requiredProp in propertiesWithDefaults)) {\n return {} as Static<T>;\n }\n }\n\n // If we get here, all required properties have defaults, so we can include all properties\n return propertiesWithDefaults as Static<T>;\n }\n\n // Handle array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n const arraySchema = schema as TArray;\n\n if (mode && typeof arraySchema[`default:${mode}`] !== \"undefined\") {\n return arraySchema[`default:${mode}`];\n }\n\n // If the array itself has an explicit default, return it\n if (arraySchema.default) {\n return arraySchema.default;\n }\n\n // Otherwise return empty array\n return [];\n }\n\n throw new Error(\"Schema must be either TObject or TArray\");\n}\n\n// Helper function for nested schema processing\nfunction getNestedDefaults(schema: TSchema, mode?: \"mobile\" | \"desktop\"): unknown {\n if (mode && typeof schema[`default:${mode}`] !== \"undefined\") {\n return schema[`default:${mode}`];\n }\n // Handle schemas with explicit default values\n if (\"default\" in schema && schema.default !== undefined) {\n return schema.default;\n }\n\n // Handle nested object schemas\n if (schema.type === \"object\" && \"properties\" in schema) {\n const objectSchema = schema as TObject;\n const required = objectSchema.required || [];\n const defaults: Record<string, unknown> = {};\n\n // First pass: collect all properties that have defaults\n const propertiesWithDefaults: Record<string, unknown> = {};\n for (const [key, propertySchema] of Object.entries(objectSchema.properties)) {\n const defaultValue = getNestedDefaults(propertySchema as TSchema, mode);\n if (defaultValue !== undefined) {\n propertiesWithDefaults[key] = defaultValue;\n }\n }\n\n // Second pass: validate that all required properties have defaults\n // If any required property lacks a default, this nested object cannot be included\n for (const requiredProp of required) {\n if (!(requiredProp in propertiesWithDefaults)) {\n return undefined;\n }\n }\n\n // If we get here, all required properties have defaults\n return Object.keys(propertiesWithDefaults).length > 0 ? propertiesWithDefaults : undefined;\n }\n\n // Handle nested array schemas\n if (schema.type === \"array\" && \"items\" in schema) {\n // Arrays only contribute defaults if explicitly set\n return undefined;\n }\n\n // No implicit defaults for any type\n return undefined;\n}\n\nexport type FieldFilter<\n T extends TSchema = TSchema,\n P extends Record<string, unknown> = Record<string, unknown>,\n> = (propsSchema: T, formData: P, pageAttributes: PageAttributes) => boolean;\n\nexport function filterSchemaProperties(schema: TObject, filter: (prop: TSchema) => boolean) {\n function extractProperties(schema: TObject): Record<string, TSchema> {\n const props: Record<string, TSchema> = {};\n for (const [key, prop] of Object.entries(schema.properties)) {\n if (filter(prop)) {\n props[key] = prop;\n } else if (prop.type === \"object\" && prop.properties) {\n const nestedContentProps = extractProperties(prop as TObject);\n if (Object.keys(nestedContentProps).length > 0) {\n Object.assign(props, nestedContentProps);\n }\n }\n }\n return props;\n }\n return extractProperties(schema);\n}\n\nexport function validate<T extends TSchema>(schema: TSchema, data: unknown): Static<T> {\n try {\n const valid = Value.Check(schema, data);\n if (!valid) {\n let finalError = \"\";\n for (const error of Value.Errors(schema, data)) {\n finalError += `Error at ${error.path} with value ${error.value}: ${error.message}\\n`;\n }\n console.error(\"Validation errors:\\n\", finalError);\n throw new Error(finalError);\n }\n } catch (e) {\n console.error(\"Validation exception:\", e);\n console.dir(e, { depth: null });\n throw e;\n }\n\n // Mutate data with defaults\n const defaults = getSchemaDefaults(schema as TObject | TArray);\n const finalObject = applyDefaultsDeep({}, data, defaults);\n\n return finalObject as Static<T>;\n}\n"],"mappings":"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","names":["schema"]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  commonProps
5
- } from "./chunk-XXPSM6UA.js";
5
+ } from "./chunk-2UEPTT5J.js";
6
6
 
7
7
  // src/shared/bricks/props/helpers.ts
8
8
  import { Type } from "@sinclair/typebox";
@@ -64,4 +64,4 @@ export {
64
64
  defineProps,
65
65
  array
66
66
  };
67
- //# sourceMappingURL=chunk-VTCHJT4O.js.map
67
+ //# sourceMappingURL=chunk-UC75KRLX.js.map
@@ -1,26 +1,26 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
2
 
3
- import {
4
- defineProps
5
- } from "./chunk-VTCHJT4O.js";
6
3
  import {
7
4
  boolean
8
5
  } from "./chunk-KNREHAPN.js";
9
6
  import {
10
- textContent
11
- } from "./chunk-2U5U3CCJ.js";
12
- import {
13
- image
14
- } from "./chunk-DRQKKPTX.js";
15
- import {
16
- urlOrPageId
17
- } from "./chunk-SQXZNGQF.js";
7
+ defineProps
8
+ } from "./chunk-UC75KRLX.js";
18
9
  import {
19
10
  tags
20
11
  } from "./chunk-BHARJBEK.js";
12
+ import {
13
+ image
14
+ } from "./chunk-2Z5WOCFS.js";
21
15
  import {
22
16
  shadow
23
17
  } from "./chunk-5RCC2STG.js";
18
+ import {
19
+ urlOrPageId
20
+ } from "./chunk-FYGFB5U5.js";
21
+ import {
22
+ textContent
23
+ } from "./chunk-2U5U3CCJ.js";
24
24
  import {
25
25
  colorPreset
26
26
  } from "./chunk-IEMCCHM4.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-MO6CRLQA.js";
30
30
  import {
31
31
  defineBrickManifest
32
- } from "./chunk-J45LSQT6.js";
32
+ } from "./chunk-GNTJT7MR.js";
33
33
  import {
34
34
  StringEnum
35
35
  } from "./chunk-GDYCCB3B.js";
@@ -365,4 +365,4 @@ export {
365
365
  navbarSchemaPropsLLM,
366
366
  examples
367
367
  };
368
- //# sourceMappingURL=chunk-4KY7OZWD.js.map
368
+ //# sourceMappingURL=chunk-VMIJ6MG5.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  borderColor
5
- } from "./chunk-JSDKK5QN.js";
5
+ } from "./chunk-EUFVTHAG.js";
6
6
  import {
7
7
  StringEnum
8
8
  } from "./chunk-GDYCCB3B.js";
@@ -80,4 +80,4 @@ export {
80
80
  border,
81
81
  rounding
82
82
  };
83
- //# sourceMappingURL=chunk-SRYBJ6NQ.js.map
83
+ //# sourceMappingURL=chunk-VYA2FCTY.js.map
@@ -2,10 +2,10 @@
2
2
 
3
3
  import {
4
4
  defineProps
5
- } from "./chunk-VTCHJT4O.js";
5
+ } from "./chunk-UC75KRLX.js";
6
6
  import {
7
7
  defineBrickManifest
8
- } from "./chunk-J45LSQT6.js";
8
+ } from "./chunk-GNTJT7MR.js";
9
9
 
10
10
  // src/shared/bricks/manifests/spacer.manifest.ts
11
11
  import { CgSpaceBetween } from "react-icons/cg";
@@ -56,4 +56,4 @@ export {
56
56
  manifest,
57
57
  examples
58
58
  };
59
- //# sourceMappingURL=chunk-LGGPCCCY.js.map
59
+ //# sourceMappingURL=chunk-XYWSIMZ6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/bricks/manifests/spacer.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { CgSpaceBetween } from \"react-icons/cg\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"spacer\",\n name: \"Spacer\",\n category: \"container\",\n description: \"A flexible element to create space between bricks.\",\n staticClasses: \"self-stretch\",\n minWidth: {\n desktop: 50,\n },\n defaultWidth: {\n mobile: \"auto\",\n desktop: \"50px\",\n },\n minHeight: {\n mobile: 30,\n },\n icon: CgSpaceBetween,\n props: defineProps({}),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Transparent spacer of 100px wide\",\n type: \"spacer\",\n props: {\n width: \"100px\",\n },\n },\n {\n description: \"Transparent spacer of 20px wide\",\n type: \"spacer\",\n props: {\n width: \"20px\",\n },\n },\n {\n description: \"Transparent spacer set in % (percentage)\",\n type: \"spacer\",\n props: {\n width: \"20%\",\n },\n },\n];\n"],"mappings":";;;;;;;;;;AAEA,SAAS,sBAAsB;AAGxB,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,eAAe;AAAA,EACf,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACT,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,EACN,OAAO,YAAY,CAAC,CAAC;AACvB,CAAC;AAIM,IAAM,WAAqC;AAAA,EAChD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -2,28 +2,28 @@
2
2
 
3
3
  import {
4
4
  defineProps
5
- } from "./chunk-VTCHJT4O.js";
6
- import {
7
- fontSize
8
- } from "./chunk-2U5U3CCJ.js";
5
+ } from "./chunk-UC75KRLX.js";
9
6
  import {
10
7
  image
11
- } from "./chunk-DRQKKPTX.js";
8
+ } from "./chunk-2Z5WOCFS.js";
12
9
  import {
13
10
  urlOrPageId
14
- } from "./chunk-SQXZNGQF.js";
11
+ } from "./chunk-FYGFB5U5.js";
15
12
  import {
16
- cssLength
17
- } from "./chunk-OJ6KL7FU.js";
13
+ fontSize
14
+ } from "./chunk-2U5U3CCJ.js";
18
15
  import {
19
16
  colorPreset
20
17
  } from "./chunk-IEMCCHM4.js";
18
+ import {
19
+ cssLength
20
+ } from "./chunk-OJ6KL7FU.js";
21
21
  import {
22
22
  toLLMSchema
23
23
  } from "./chunk-MO6CRLQA.js";
24
24
  import {
25
25
  defineBrickManifest
26
- } from "./chunk-J45LSQT6.js";
26
+ } from "./chunk-GNTJT7MR.js";
27
27
 
28
28
  // src/shared/bricks/manifests/footer.manifest.ts
29
29
  import { Type } from "@sinclair/typebox";
@@ -534,4 +534,4 @@ export {
534
534
  footerSchemaPropsLLM,
535
535
  examples
536
536
  };
537
- //# sourceMappingURL=chunk-FHA4DFIM.js.map
537
+ //# sourceMappingURL=chunk-ZYQZUWF7.js.map
@@ -2,10 +2,10 @@
2
2
 
3
3
  import {
4
4
  pageSchema
5
- } from "./chunk-VSLRTXLF.js";
5
+ } from "./chunk-RFH7PEVS.js";
6
6
  import {
7
7
  pageAttributesSchema
8
- } from "./chunk-T6C3NG2L.js";
8
+ } from "./chunk-5HJT5NJ3.js";
9
9
  import {
10
10
  StringEnum
11
11
  } from "./chunk-GDYCCB3B.js";
@@ -38,4 +38,4 @@ export {
38
38
  sitemapEntry,
39
39
  sitemapSchema
40
40
  };
41
- //# sourceMappingURL=chunk-2O5HVPID.js.map
41
+ //# sourceMappingURL=chunk-ZZVYD4BG.js.map
@@ -114,6 +114,7 @@ export declare const callContextSchema: import("@sinclair/typebox").TObject<{
114
114
  logo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
115
115
  src: import("@sinclair/typebox").TString;
116
116
  alt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
117
+ aspectRatio: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"auto" | "1:1" | "4:3" | "3:4" | "16:9" | "9:16" | "2:3" | "3:2" | "5:4" | "4:5" | "21:9" | "9:21" | "original">>;
117
118
  fit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-none" | "object-contain" | "object-cover" | "object-fill" | "object-scale-down">>;
118
119
  position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-top" | "object-center" | "object-bottom" | "object-left" | "object-right" | "object-top-left" | "object-top-right" | "object-bottom-left" | "object-bottom-right">>;
119
120
  }>>;
@@ -143,6 +144,7 @@ export declare const callContextSchema: import("@sinclair/typebox").TObject<{
143
144
  logo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
144
145
  src: import("@sinclair/typebox").TString;
145
146
  alt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
147
+ aspectRatio: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"auto" | "1:1" | "4:3" | "3:4" | "16:9" | "9:16" | "2:3" | "3:2" | "5:4" | "4:5" | "21:9" | "9:21" | "original">>;
146
148
  fit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-none" | "object-contain" | "object-cover" | "object-fill" | "object-scale-down">>;
147
149
  position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-top" | "object-center" | "object-bottom" | "object-left" | "object-right" | "object-top-left" | "object-top-right" | "object-bottom-left" | "object-bottom-right">>;
148
150
  }>>;
@@ -159,6 +161,7 @@ export declare const callContextSchema: import("@sinclair/typebox").TObject<{
159
161
  ogImage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
160
162
  src: import("@sinclair/typebox").TString;
161
163
  alt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
164
+ aspectRatio: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"auto" | "1:1" | "4:3" | "3:4" | "16:9" | "9:16" | "2:3" | "3:2" | "5:4" | "4:5" | "21:9" | "9:21" | "original">>;
162
165
  fit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-none" | "object-contain" | "object-cover" | "object-fill" | "object-scale-down">>;
163
166
  position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-top" | "object-center" | "object-bottom" | "object-left" | "object-right" | "object-top-left" | "object-top-right" | "object-bottom-left" | "object-bottom-right">>;
164
167
  }>>;
@@ -373,6 +376,7 @@ export declare const callContextSchema: import("@sinclair/typebox").TObject<{
373
376
  ogImage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
374
377
  src: import("@sinclair/typebox").TString;
375
378
  alt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
379
+ aspectRatio: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"auto" | "1:1" | "4:3" | "3:4" | "16:9" | "9:16" | "2:3" | "3:2" | "5:4" | "4:5" | "21:9" | "9:21" | "original">>;
376
380
  fit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-none" | "object-contain" | "object-cover" | "object-fill" | "object-scale-down">>;
377
381
  position: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"object-top" | "object-center" | "object-bottom" | "object-left" | "object-right" | "object-top-left" | "object-top-right" | "object-bottom-left" | "object-bottom-right">>;
378
382
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/shared/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,qBAAqB;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/shared/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,qBAAqB;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -2,70 +2,71 @@
2
2
 
3
3
  import {
4
4
  siteSchema
5
- } from "./chunk-XNRSL6FL.js";
5
+ } from "./chunk-T3UPW5OW.js";
6
6
  import "./chunk-DCM4732T.js";
7
7
  import "./chunk-OSJ6KGPX.js";
8
8
  import "./chunk-7LAWWRU7.js";
9
9
  import "./chunk-EID5HPF3.js";
10
- import "./chunk-2O5HVPID.js";
10
+ import "./chunk-ZZVYD4BG.js";
11
11
  import "./chunk-FD7YYFRI.js";
12
12
  import {
13
13
  imageResultsSchema
14
14
  } from "./chunk-GLV6QIIM.js";
15
15
  import {
16
16
  versionedPageSchema
17
- } from "./chunk-VSLRTXLF.js";
17
+ } from "./chunk-RFH7PEVS.js";
18
18
  import "./chunk-6TVVKUWM.js";
19
- import "./chunk-T6C3NG2L.js";
20
- import "./chunk-H6TMBELF.js";
21
- import "./chunk-KQH6V22E.js";
22
- import "./chunk-O24RDXZS.js";
23
- import "./chunk-6AE7UD73.js";
24
- import "./chunk-TBT2PTGB.js";
25
- import "./chunk-ZVJNRKT4.js";
26
- import "./chunk-PF75LW33.js";
27
- import "./chunk-SK2O7GFC.js";
28
- import "./chunk-U4KZUX37.js";
29
- import "./chunk-MYOLWTB2.js";
30
- import "./chunk-LGGPCCCY.js";
31
- import "./chunk-JF52BBFD.js";
32
- import "./chunk-HUWMIXNN.js";
33
- import "./chunk-BZTWZC77.js";
34
- import "./chunk-FUUSAMN3.js";
35
- import "./chunk-XK2CERPB.js";
36
- import "./chunk-QEJGPYTB.js";
37
- import "./chunk-W2RFDII5.js";
38
- import "./chunk-JW7MQAU4.js";
39
- import "./chunk-JLDAS3VE.js";
40
- import "./chunk-LPAQ47C6.js";
41
- import "./chunk-LGDDJJHK.js";
42
- import "./chunk-7U5WPHXB.js";
19
+ import "./chunk-5HJT5NJ3.js";
20
+ import "./chunk-J6R3GSKS.js";
21
+ import "./chunk-IPWYNE6Y.js";
22
+ import "./chunk-57NRTXRA.js";
23
+ import "./chunk-QHKOAIOK.js";
24
+ import "./chunk-KRODRZNS.js";
25
+ import "./chunk-ORIUCOED.js";
26
+ import "./chunk-E3ZW57HF.js";
27
+ import "./chunk-L4W4B2RQ.js";
43
28
  import "./chunk-XCZVD5H6.js";
29
+ import "./chunk-FC52EHCC.js";
44
30
  import "./chunk-6WIMWLCJ.js";
31
+ import "./chunk-NTP6BKRU.js";
32
+ import "./chunk-XYWSIMZ6.js";
33
+ import "./chunk-O53V22BK.js";
34
+ import "./chunk-KTA7XES3.js";
35
+ import "./chunk-5J4Y43RM.js";
36
+ import "./chunk-TGKNA2JS.js";
37
+ import "./chunk-5SNSUC6Q.js";
45
38
  import "./chunk-HPCCD6V5.js";
39
+ import "./chunk-HHUFGV7J.js";
40
+ import "./chunk-IMDOF55E.js";
41
+ import "./chunk-FVV27R73.js";
42
+ import "./chunk-B5T2LFV2.js";
43
+ import "./chunk-RDOCVLCF.js";
44
+ import "./chunk-PFZMRSHJ.js";
45
+ import "./chunk-34IUWNRX.js";
46
46
  import "./chunk-3ZDN5BWN.js";
47
47
  import "./chunk-WPZV3LYL.js";
48
- import "./chunk-SRYBJ6NQ.js";
49
- import "./chunk-JSDKK5QN.js";
50
- import "./chunk-4KY7OZWD.js";
51
- import "./chunk-FHA4DFIM.js";
52
- import "./chunk-VTCHJT4O.js";
48
+ import "./chunk-VYA2FCTY.js";
49
+ import "./chunk-EUFVTHAG.js";
50
+ import "./chunk-VMIJ6MG5.js";
51
+ import "./chunk-ZYQZUWF7.js";
53
52
  import "./chunk-KNREHAPN.js";
54
- import "./chunk-2U5U3CCJ.js";
55
- import "./chunk-DRQKKPTX.js";
56
- import "./chunk-SQXZNGQF.js";
53
+ import "./chunk-UC75KRLX.js";
57
54
  import "./chunk-BHARJBEK.js";
58
- import "./chunk-XXPSM6UA.js";
59
- import "./chunk-OJ6KL7FU.js";
60
- import "./chunk-XFZQGRRL.js";
55
+ import "./chunk-5OVOXUFX.js";
56
+ import "./chunk-2Z5WOCFS.js";
61
57
  import "./chunk-5RCC2STG.js";
62
- import "./chunk-ZRBTAC3G.js";
63
- import "./chunk-KKWT3OXF.js";
58
+ import "./chunk-XFZQGRRL.js";
59
+ import "./chunk-FYGFB5U5.js";
60
+ import "./chunk-2U5U3CCJ.js";
64
61
  import "./chunk-IEMCCHM4.js";
62
+ import "./chunk-2UEPTT5J.js";
63
+ import "./chunk-2EOCK66Z.js";
64
+ import "./chunk-OJ6KL7FU.js";
65
+ import "./chunk-ZRBTAC3G.js";
65
66
  import "./chunk-EMF5TCPX.js";
66
67
  import "./chunk-MO6CRLQA.js";
67
- import "./chunk-J45LSQT6.js";
68
- import "./chunk-HY7JOP3J.js";
68
+ import "./chunk-GNTJT7MR.js";
69
+ import "./chunk-TZ6X7ZM5.js";
69
70
  import "./chunk-GDYCCB3B.js";
70
71
  import "./chunk-ZGQ3AQBG.js";
71
72