@mieweb/ui 0.10.0-dev.15 → 0.10.0-dev.16

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 (191) hide show
  1. package/dist/CsvBlock-FVOKKWIY.cjs +17 -0
  2. package/dist/{CsvBlock-ROJCKJDP.cjs.map → CsvBlock-FVOKKWIY.cjs.map} +1 -1
  3. package/dist/CsvBlock-MXZO4W3N.js +8 -0
  4. package/dist/{CsvBlock-UWPMTLE2.js.map → CsvBlock-MXZO4W3N.js.map} +1 -1
  5. package/dist/HtmlPreviewBlock-2UGW33SQ.js +8 -0
  6. package/dist/{HtmlPreviewBlock-ME5U3XNS.js.map → HtmlPreviewBlock-2UGW33SQ.js.map} +1 -1
  7. package/dist/HtmlPreviewBlock-CZKTQUCL.cjs +17 -0
  8. package/dist/{HtmlPreviewBlock-DWFN6EUB.cjs.map → HtmlPreviewBlock-CZKTQUCL.cjs.map} +1 -1
  9. package/dist/MermaidBlock-NLDOJZUJ.cjs +17 -0
  10. package/dist/{MermaidBlock-D2UC5M55.cjs.map → MermaidBlock-NLDOJZUJ.cjs.map} +1 -1
  11. package/dist/MermaidBlock-QXAEMOAA.js +8 -0
  12. package/dist/{MermaidBlock-2B6CPD6Y.js.map → MermaidBlock-QXAEMOAA.js.map} +1 -1
  13. package/dist/SurveyBlock-GSHYZMTW.cjs +17 -0
  14. package/dist/{SurveyBlock-4CD4AYMJ.cjs.map → SurveyBlock-GSHYZMTW.cjs.map} +1 -1
  15. package/dist/SurveyBlock-M5BEFZGT.js +8 -0
  16. package/dist/{SurveyBlock-4DO62RBT.js.map → SurveyBlock-M5BEFZGT.js.map} +1 -1
  17. package/dist/brands/index.cjs +13 -13
  18. package/dist/brands/index.js +1 -1
  19. package/dist/{chunk-VNYW4C4J.cjs → chunk-2BGS7RFM.cjs} +4 -84
  20. package/dist/chunk-2BGS7RFM.cjs.map +1 -0
  21. package/dist/{chunk-TMMVIUUN.js → chunk-4IETGCMD.js} +4 -4
  22. package/dist/{chunk-TMMVIUUN.js.map → chunk-4IETGCMD.js.map} +1 -1
  23. package/dist/{chunk-76TBQDED.js → chunk-4LPGJ3ZO.js} +4 -4
  24. package/dist/{chunk-76TBQDED.js.map → chunk-4LPGJ3ZO.js.map} +1 -1
  25. package/dist/{chunk-6EN3IQQI.cjs → chunk-6GZKQR7P.cjs} +4 -4
  26. package/dist/{chunk-6EN3IQQI.cjs.map → chunk-6GZKQR7P.cjs.map} +1 -1
  27. package/dist/{chunk-Y5HFM7LO.js → chunk-77PNQILS.js} +3 -3
  28. package/dist/{chunk-Y5HFM7LO.js.map → chunk-77PNQILS.js.map} +1 -1
  29. package/dist/{chunk-G4D6CLBT.js → chunk-7U5QYH54.js} +3 -3
  30. package/dist/{chunk-G4D6CLBT.js.map → chunk-7U5QYH54.js.map} +1 -1
  31. package/dist/chunk-AXRRBEER.js +86 -0
  32. package/dist/chunk-AXRRBEER.js.map +1 -0
  33. package/dist/{chunk-VU6UTJRM.js → chunk-CATY3P2U.js} +3 -3
  34. package/dist/{chunk-VU6UTJRM.js.map → chunk-CATY3P2U.js.map} +1 -1
  35. package/dist/{chunk-UV2FVNWT.cjs → chunk-DF7K6DOJ.cjs} +5 -5
  36. package/dist/{chunk-UV2FVNWT.cjs.map → chunk-DF7K6DOJ.cjs.map} +1 -1
  37. package/dist/{chunk-TVTIGV7Q.js → chunk-DXCATYEO.js} +4 -4
  38. package/dist/{chunk-TVTIGV7Q.js.map → chunk-DXCATYEO.js.map} +1 -1
  39. package/dist/{chunk-5MCBWTIF.cjs → chunk-E2B5BLAF.cjs} +4 -4
  40. package/dist/{chunk-5MCBWTIF.cjs.map → chunk-E2B5BLAF.cjs.map} +1 -1
  41. package/dist/{chunk-GD7EBGC4.cjs → chunk-EQXFDPXV.cjs} +14 -14
  42. package/dist/{chunk-GD7EBGC4.cjs.map → chunk-EQXFDPXV.cjs.map} +1 -1
  43. package/dist/{chunk-ENKFJJZX.js → chunk-ETCHEURD.js} +4 -4
  44. package/dist/{chunk-ENKFJJZX.js.map → chunk-ETCHEURD.js.map} +1 -1
  45. package/dist/{chunk-DEDN5HAG.js → chunk-FDP6VS5G.js} +3 -3
  46. package/dist/{chunk-DEDN5HAG.js.map → chunk-FDP6VS5G.js.map} +1 -1
  47. package/dist/{chunk-WNZAYBVB.cjs → chunk-GRV4MOEO.cjs} +26 -26
  48. package/dist/{chunk-WNZAYBVB.cjs.map → chunk-GRV4MOEO.cjs.map} +1 -1
  49. package/dist/{chunk-DLRCAV4Z.js → chunk-IBCCFWD4.js} +24 -3
  50. package/dist/chunk-IBCCFWD4.js.map +1 -0
  51. package/dist/{chunk-G3JX3UAU.cjs → chunk-IUQMOBFB.cjs} +5 -5
  52. package/dist/{chunk-G3JX3UAU.cjs.map → chunk-IUQMOBFB.cjs.map} +1 -1
  53. package/dist/{chunk-ZPSJ2UV6.cjs → chunk-JX4UZEBZ.cjs} +8 -8
  54. package/dist/{chunk-ZPSJ2UV6.cjs.map → chunk-JX4UZEBZ.cjs.map} +1 -1
  55. package/dist/{chunk-7ZXAQTV4.cjs → chunk-KM5OQQL5.cjs} +8 -8
  56. package/dist/{chunk-7ZXAQTV4.cjs.map → chunk-KM5OQQL5.cjs.map} +1 -1
  57. package/dist/{chunk-KQUI4BGS.cjs → chunk-LGIQVSAE.cjs} +17 -17
  58. package/dist/{chunk-KQUI4BGS.cjs.map → chunk-LGIQVSAE.cjs.map} +1 -1
  59. package/dist/{chunk-FXO5ARBB.cjs → chunk-M5NYHH3Z.cjs} +4 -4
  60. package/dist/{chunk-FXO5ARBB.cjs.map → chunk-M5NYHH3Z.cjs.map} +1 -1
  61. package/dist/{chunk-URAQIF67.cjs → chunk-MB5KIIT4.cjs} +6 -6
  62. package/dist/{chunk-URAQIF67.cjs.map → chunk-MB5KIIT4.cjs.map} +1 -1
  63. package/dist/{chunk-PSXTXFLM.cjs → chunk-NEFBVO5W.cjs} +24 -3
  64. package/dist/chunk-NEFBVO5W.cjs.map +1 -0
  65. package/dist/{chunk-XZNN3S3S.cjs → chunk-O5A4GTTG.cjs} +4 -4
  66. package/dist/{chunk-XZNN3S3S.cjs.map → chunk-O5A4GTTG.cjs.map} +1 -1
  67. package/dist/{chunk-DZ5HFLRC.js → chunk-OWLWABAS.js} +3 -3
  68. package/dist/{chunk-DZ5HFLRC.js.map → chunk-OWLWABAS.js.map} +1 -1
  69. package/dist/{chunk-IX6KFB3K.cjs → chunk-OZ2LP2VQ.cjs} +9 -9
  70. package/dist/{chunk-IX6KFB3K.cjs.map → chunk-OZ2LP2VQ.cjs.map} +1 -1
  71. package/dist/{chunk-N6IY47YA.cjs → chunk-PLDJU623.cjs} +8 -8
  72. package/dist/{chunk-N6IY47YA.cjs.map → chunk-PLDJU623.cjs.map} +1 -1
  73. package/dist/{chunk-WGPLUCBD.js → chunk-R47H3Y7J.js} +3 -3
  74. package/dist/{chunk-WGPLUCBD.js.map → chunk-R47H3Y7J.js.map} +1 -1
  75. package/dist/{chunk-OE5CKRUC.js → chunk-R5AFQWR5.js} +3 -3
  76. package/dist/{chunk-OE5CKRUC.js.map → chunk-R5AFQWR5.js.map} +1 -1
  77. package/dist/{chunk-2IZLKPUW.js → chunk-T7U5HHGK.js} +3 -3
  78. package/dist/{chunk-2IZLKPUW.js.map → chunk-T7U5HHGK.js.map} +1 -1
  79. package/dist/{chunk-OCSCBB52.cjs → chunk-TVSGJT6G.cjs} +6 -6
  80. package/dist/{chunk-OCSCBB52.cjs.map → chunk-TVSGJT6G.cjs.map} +1 -1
  81. package/dist/{chunk-3QEVGSFG.cjs → chunk-UKUKBUME.cjs} +5 -5
  82. package/dist/{chunk-3QEVGSFG.cjs.map → chunk-UKUKBUME.cjs.map} +1 -1
  83. package/dist/{chunk-GOALNQZ2.js → chunk-UV4IJNSN.js} +4 -83
  84. package/dist/chunk-UV4IJNSN.js.map +1 -0
  85. package/dist/{chunk-VOKVG3ER.js → chunk-UXI33QGR.js} +3 -3
  86. package/dist/{chunk-VOKVG3ER.js.map → chunk-UXI33QGR.js.map} +1 -1
  87. package/dist/{chunk-XEAT7XJG.cjs → chunk-VLBUT2QM.cjs} +4 -4
  88. package/dist/{chunk-XEAT7XJG.cjs.map → chunk-VLBUT2QM.cjs.map} +1 -1
  89. package/dist/chunk-VNCIIXGO.js +1924 -0
  90. package/dist/chunk-VNCIIXGO.js.map +1 -0
  91. package/dist/{chunk-5GUOOLPR.cjs → chunk-VPRKE2YU.cjs} +5 -5
  92. package/dist/{chunk-5GUOOLPR.cjs.map → chunk-VPRKE2YU.cjs.map} +1 -1
  93. package/dist/{chunk-KZFBQ7GY.js → chunk-VVZALGPI.js} +3 -3
  94. package/dist/{chunk-KZFBQ7GY.js.map → chunk-VVZALGPI.js.map} +1 -1
  95. package/dist/{chunk-V7D3YGUV.js → chunk-W5TPBCBM.js} +4 -4
  96. package/dist/{chunk-V7D3YGUV.js.map → chunk-W5TPBCBM.js.map} +1 -1
  97. package/dist/{chunk-H4ZXMQQW.js → chunk-WBBOH5QF.js} +3 -3
  98. package/dist/{chunk-H4ZXMQQW.js.map → chunk-WBBOH5QF.js.map} +1 -1
  99. package/dist/{chunk-3QGS6CXD.js → chunk-WC25GQZD.js} +3 -3
  100. package/dist/{chunk-3QGS6CXD.js.map → chunk-WC25GQZD.js.map} +1 -1
  101. package/dist/{chunk-VKELAMAZ.js → chunk-WN6A4QOF.js} +3 -3
  102. package/dist/{chunk-VKELAMAZ.js.map → chunk-WN6A4QOF.js.map} +1 -1
  103. package/dist/chunk-XFLEW7AT.cjs +88 -0
  104. package/dist/chunk-XFLEW7AT.cjs.map +1 -0
  105. package/dist/{chunk-MNILXWVY.js → chunk-XU2E7MTG.js} +7 -7
  106. package/dist/{chunk-MNILXWVY.js.map → chunk-XU2E7MTG.js.map} +1 -1
  107. package/dist/{chunk-E4IBHYJ7.cjs → chunk-YEQLSYJO.cjs} +5 -5
  108. package/dist/{chunk-E4IBHYJ7.cjs.map → chunk-YEQLSYJO.cjs.map} +1 -1
  109. package/dist/chunk-YIWJTNR5.cjs +1967 -0
  110. package/dist/chunk-YIWJTNR5.cjs.map +1 -0
  111. package/dist/components/AlertDialog/index.cjs +4 -3
  112. package/dist/components/AlertDialog/index.js +3 -2
  113. package/dist/components/Button/index.cjs +4 -3
  114. package/dist/components/Button/index.d.cts +3 -2
  115. package/dist/components/Button/index.d.ts +3 -2
  116. package/dist/components/Button/index.js +2 -1
  117. package/dist/components/CalendarView/index.cjs +5 -4
  118. package/dist/components/CalendarView/index.d.cts +1 -1
  119. package/dist/components/CalendarView/index.d.ts +1 -1
  120. package/dist/components/CalendarView/index.js +3 -2
  121. package/dist/components/CustomizableDashboard/index.cjs +10 -9
  122. package/dist/components/CustomizableDashboard/index.js +3 -2
  123. package/dist/components/FloatingWindow/index.cjs +5 -4
  124. package/dist/components/FloatingWindow/index.js +3 -2
  125. package/dist/components/GanttView/index.d.cts +1 -1
  126. package/dist/components/GanttView/index.d.ts +1 -1
  127. package/dist/components/ListView/index.cjs +5 -4
  128. package/dist/components/ListView/index.d.cts +90 -2
  129. package/dist/components/ListView/index.d.ts +90 -2
  130. package/dist/components/ListView/index.js +3 -2
  131. package/dist/components/Markdown/index.cjs +20 -19
  132. package/dist/components/Markdown/index.js +8 -7
  133. package/dist/components/MediaEditor/index.cjs +9 -8
  134. package/dist/components/MediaEditor/index.js +4 -3
  135. package/dist/components/MediaPlayer/index.cjs +6 -5
  136. package/dist/components/MediaPlayer/index.js +3 -2
  137. package/dist/components/MegaMenu/index.cjs +6 -5
  138. package/dist/components/MegaMenu/index.js +3 -2
  139. package/dist/components/RadialExplorer/index.cjs +4 -3
  140. package/dist/components/RadialExplorer/index.js +3 -2
  141. package/dist/components/RichTextEditor/index.cjs +6 -5
  142. package/dist/components/RichTextEditor/index.js +3 -2
  143. package/dist/components/SectionSpyNav/index.cjs +4 -3
  144. package/dist/components/SectionSpyNav/index.js +3 -2
  145. package/dist/components/ViewSet/index.cjs +6 -5
  146. package/dist/components/ViewSet/index.d.cts +101 -1
  147. package/dist/components/ViewSet/index.d.ts +101 -1
  148. package/dist/components/ViewSet/index.js +5 -4
  149. package/dist/components/ViewSwitcher/index.d.cts +57 -4
  150. package/dist/components/ViewSwitcher/index.d.ts +57 -4
  151. package/dist/datavis.cjs +3 -2
  152. package/dist/datavis.cjs.map +1 -1
  153. package/dist/datavis.js +2 -1
  154. package/dist/datavis.js.map +1 -1
  155. package/dist/esheet.cjs +7 -6
  156. package/dist/esheet.cjs.map +1 -1
  157. package/dist/esheet.js +4 -3
  158. package/dist/esheet.js.map +1 -1
  159. package/dist/index.cjs +613 -523
  160. package/dist/index.cjs.map +1 -1
  161. package/dist/index.d.cts +558 -1
  162. package/dist/index.d.ts +558 -1
  163. package/dist/index.js +41 -38
  164. package/dist/index.js.map +1 -1
  165. package/dist/styles/effects.css +33 -0
  166. package/dist/styles.css +1 -1
  167. package/dist/tailwind-preset.cjs +4 -4
  168. package/dist/tailwind-preset.js +1 -1
  169. package/dist/templates.cjs +103 -0
  170. package/dist/templates.cjs.map +1 -0
  171. package/dist/templates.d.cts +560 -0
  172. package/dist/templates.d.ts +560 -0
  173. package/dist/templates.js +10 -0
  174. package/dist/templates.js.map +1 -0
  175. package/dist/{types-DsdZvEI1.d.cts → types-C3HQe74F.d.cts} +1 -7
  176. package/dist/{types-DsdZvEI1.d.ts → types-C3HQe74F.d.ts} +1 -7
  177. package/package.json +12 -1
  178. package/dist/CsvBlock-ROJCKJDP.cjs +0 -16
  179. package/dist/CsvBlock-UWPMTLE2.js +0 -7
  180. package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +0 -16
  181. package/dist/HtmlPreviewBlock-ME5U3XNS.js +0 -7
  182. package/dist/MermaidBlock-2B6CPD6Y.js +0 -7
  183. package/dist/MermaidBlock-D2UC5M55.cjs +0 -16
  184. package/dist/SurveyBlock-4CD4AYMJ.cjs +0 -16
  185. package/dist/SurveyBlock-4DO62RBT.js +0 -7
  186. package/dist/chunk-DLRCAV4Z.js.map +0 -1
  187. package/dist/chunk-GOALNQZ2.js.map +0 -1
  188. package/dist/chunk-PSXTXFLM.cjs.map +0 -1
  189. package/dist/chunk-VNYW4C4J.cjs.map +0 -1
  190. package/dist/index-DoYYWsNc.d.cts +0 -127
  191. package/dist/index-DoYYWsNc.d.ts +0 -127
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/own.ts","../src/templates/icons.tsx","../src/templates/Section.tsx","../src/components/ComparisonSection/ComparisonSection.tsx","../src/components/CtaSection/CtaSection.tsx","../src/components/FaqSection/FaqSection.tsx","../src/components/FeatureGridSection/FeatureGridSection.tsx","../src/components/HeroSection/HeroSection.tsx","../src/components/LeadFormSection/LeadFormSection.tsx","../src/components/LogoCloudSection/LogoCloudSection.tsx","../src/components/PricingSection/PricingSection.tsx","../src/components/ProcessStepsSection/ProcessStepsSection.tsx","../src/components/ResourceCardsSection/ResourceCardsSection.tsx","../src/components/SplitContentSection/SplitContentSection.tsx","../src/components/StatsSection/StatsSection.tsx","../src/components/TestimonialSection/TestimonialSection.tsx","../src/components/VideoSection/VideoSection.tsx","../src/components/LandingPage/LandingPage.tsx","../src/components/LandingPage/presets.ts"],"names":["Activity","Award","BadgeCheck","Bell","Briefcase","Building2","Calendar","CalendarCheck","ChartColumn","ChartLine","CircleCheck","ClipboardCheck","Clock","Cloud","Database","DollarSign","Factory","FileText","FlaskConical","Globe","GraduationCap","Handshake","HardHat","Headset","HeartPulse","Hospital","Layers","Leaf","Lightbulb","Lock","Mail","MapPin","MessageSquare","Microscope","Phone","Plane","Plug","Rocket","Scale","Search","Settings","Shield","ShieldCheck","Smartphone","Sparkles","Stethoscope","Syringe","Target","Timer","TrendingUp","Truck","UserCheck","Users","Workflow","Wrench","Zap","jsx","cn","React","jsxs","buttonVariants","ArrowRight","React2","Fragment","Check","X","React3","React4","ChevronDown","React5","React6","ChevronRight","inputVariants","React7","RequiredMark","React8","columnClass","React9","Badge","React10","React11","React12","React13","TrendingDown","React14","Star","React15","React16"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,WAAA,CACd,KACA,GAAA,EACe;AACf,EAAA,OAAO,GAAA,IAAO,QAAQ,MAAA,CAAO,MAAA,CAAO,KAAK,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA,GAAI,MAAA;AAC7D;ACgEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,QAAA,EAAUA,oBAAA;AAAA,EACV,KAAA,EAAOC,iBAAA;AAAA,EACP,aAAA,EAAeC,sBAAA;AAAA,EACf,IAAA,EAAMC,gBAAA;AAAA,EACN,SAAA,EAAWC,qBAAA;AAAA,EACX,QAAA,EAAUC,qBAAA;AAAA,EACV,QAAA,EAAUC,oBAAA;AAAA,EACV,gBAAA,EAAkBC,yBAAA;AAAA,EAClB,cAAA,EAAgBC,uBAAA;AAAA,EAChB,YAAA,EAAcC,qBAAA;AAAA,EACd,cAAA,EAAgBC,uBAAA;AAAA,EAChB,iBAAA,EAAmBC,0BAAA;AAAA,EACnB,KAAA,EAAOC,iBAAA;AAAA,EACP,KAAA,EAAOC,iBAAA;AAAA,EACP,QAAA,EAAUC,oBAAA;AAAA,EACV,aAAA,EAAeC,sBAAA;AAAA,EACf,OAAA,EAASC,mBAAA;AAAA,EACT,WAAA,EAAaC,oBAAA;AAAA,EACb,KAAA,EAAOC,wBAAA;AAAA,EACP,KAAA,EAAOC,iBAAA;AAAA,EACP,gBAAA,EAAkBC,yBAAA;AAAA,EAClB,SAAA,EAAWC,qBAAA;AAAA,EACX,UAAA,EAAYC,mBAAA;AAAA,EACZ,OAAA,EAASC,mBAAA;AAAA,EACT,aAAA,EAAeC,sBAAA;AAAA,EACf,QAAA,EAAUC,oBAAA;AAAA,EACV,MAAA,EAAQC,kBAAA;AAAA,EACR,IAAA,EAAMC,gBAAA;AAAA,EACN,SAAA,EAAWC,qBAAA;AAAA,EACX,IAAA,EAAMC,gBAAA;AAAA,EACN,IAAA,EAAMC,gBAAA;AAAA,EACN,SAAA,EAAWC,kBAAA;AAAA,EACX,gBAAA,EAAkBC,yBAAA;AAAA,EAClB,UAAA,EAAYC,sBAAA;AAAA,EACZ,KAAA,EAAOC,iBAAA;AAAA,EACP,KAAA,EAAOC,iBAAA;AAAA,EACP,IAAA,EAAMC,gBAAA;AAAA,EACN,MAAA,EAAQC,kBAAA;AAAA,EACR,KAAA,EAAOC,iBAAA;AAAA,EACP,MAAA,EAAQC,kBAAA;AAAA,EACR,QAAA,EAAUC,oBAAA;AAAA,EACV,MAAA,EAAQC,kBAAA;AAAA,EACR,cAAA,EAAgBC,uBAAA;AAAA,EAChB,UAAA,EAAYC,sBAAA;AAAA,EACZ,QAAA,EAAUC,oBAAA;AAAA,EACV,WAAA,EAAaC,uBAAA;AAAA,EACb,OAAA,EAASC,mBAAA;AAAA,EACT,MAAA,EAAQC,kBAAA;AAAA,EACR,KAAA,EAAOC,iBAAA;AAAA,EACP,aAAA,EAAeC,sBAAA;AAAA,EACf,KAAA,EAAOC,iBAAA;AAAA,EACP,YAAA,EAAcC,qBAAA;AAAA,EACd,KAAA,EAAOC,iBAAA;AAAA,EACP,QAAA,EAAUC,oBAAA;AAAA,EACV,MAAA,EAAQC,kBAAA;AAAA,EACR,GAAA,EAAKC;AACP;AAWO,SAAS,YAAA,CAAa,EAAE,IAAA,EAAM,KAAA,EAAO,WAAU,EAAsB;AAG1E,EAAA,MAAM,OACJ,WAAA,CAAY,KAAA,EAAO,IAAI,CAAA,IACvB,WAAA,CAAY,eAAuC,IAAI,CAAA;AACzD,EAAA,IAAI,IAAA;AACF,IAAA,uBACEC,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,MAAA;AAAA,QACZ,WAAA,EAAa,IAAA;AAAA,QACb,SAAA,EAAWC,oBAAA,CAAG,QAAA,EAAU,SAAS;AAAA;AAAA,KACnC;AAEJ,EAAA,IAAI,KAAK,MAAA,IAAU,CAAA;AACjB,IAAA,uBACED,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAWC,oBAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA;AAAA,QAEzD,QAAA,EAAA;AAAA;AAAA,KACH;AAEJ,EAAA,OAAO,IAAA;AACT;ACzJA,IAAM,WAAA,GAA2C;AAAA,EAC/C,OAAA,EAAS,+BAAA;AAAA,EACT,KAAA,EAAO,0BAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,SAAA,GAAY,CAAC,IAAA,KAAsB,WAAA,CAAY,IAAI,CAAA;AAGzD,IAAM,SAAA,GAAY,CAAC,IAAA,KACxB,IAAA,KAAS,UACL,8CAAA,GACA,mDAAA;AAGC,IAAM,cAAA,GAAiB,CAAC,IAAA,KAC7B,IAAA,KAAS,UACL,eAAA,GACA,IAAA,KAAS,UACP,oBAAA,GACA,uBAAA;AAGD,IAAM,gBAAA,GAAmB,CAAC,IAAA,KAC/B,IAAA,KAAS,UAAU,YAAA,GAAe,iBAAA;AAG7B,IAAM,eAAA,GAAkB,CAAC,IAAA,KAC9B,IAAA,KAAS,UAAU,YAAA,GAAe,wCAAA;AAE7B,IAAM,cAAA,GAAiB,CAAC,KAAA,GAA2B,MAAA,KACxDA,oBAAA;AAAA,EACE,qCAAA;AAAA,EACA,KAAA,KAAU,WAAW,WAAA,GAAc;AACrC,CAAA;AAEF,IAAM,gBAAA,GAAmB,0BAAA;AAOlB,SAAS,SAAS,IAAA,EAA8C;AACrE,EAAA,IAAI,IAAA,IAAQ,MAAM,OAAO,MAAA;AAIzB,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,kBAAA,EAAoB,EAAE,CAAA;AAEpD,EAAA,IAAI,CAAC,UAAU,OAAO,MAAA;AACtB,EAAA,IAAI,CAAC,sBAAA,CAAuB,IAAA,CAAK,QAAQ,GAAG,OAAO,IAAA;AACnD,EAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,QAAQ,CAAA,GAAI,IAAA,GAAO,MAAA;AAClD;AAGO,SAAS,cAAA,CAAe;AAAA,EAC7B,UAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAGG;AACD,EAAA,MAAM,OAAO,UAAA,EAAY,IAAA;AACzB,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,KAAA,CAAM,IAAI,CAAA;AAChC,EAAA,MAAM,MAAM,EAAE,GAAG,KAAA,EAAO,IAAA,EAAM,cAAc,UAAA,EAAW;AAGvD,EAAA,OAAO,QAAQ,IAAA,IAAQ,IAAA,mBACrBD,cAAAA,CAAC,QAAM,GAAG,GAAA,EAAK,IAAA,EACZ,QAAA,EACH,oBAEAA,cAAAA,CAAC,GAAA,EAAA,EAAG,GAAG,KAAM,QAAA,EAAS,CAAA;AAE1B;AAGA,IAAM,iBAAA,GACEE,gBAAA,CAAA,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA,GAC1B,EAAE,aAAA,EAAe,MAAA,EAAO,GACxB,EAAE,aAAA,EAAe,MAAA,EAAO;AAIvB,SAAS,WAAA,CAAY;AAAA,EAC1B,UAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6D;AAC3D,EAAA,MAAM,QAAQ,UAAA,EAAY,KAAA;AAC1B,EAAA,IAAI,OAAO,uBAAOF,eAAC,KAAA,EAAA,EAAO,GAAG,OAAO,QAAA,EAAoB,CAAA;AACxD,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,KAAK,KAAA,CAAM,GAAA;AAAA,MACX,OAAA,EAAS,WAAW,MAAA,GAAY,MAAA;AAAA,MAC/B,GAAI,QAAA,GAAW,iBAAA,GAAoB,EAAC;AAAA,MACrC,QAAA,EAAS;AAAA;AAAA,GACX;AAEJ;AAgBO,SAAS,cAAA,CAAe;AAAA,EAC7B,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAI,OAAA,GAAU,IAAA;AAAA,EACd,IAAA,GAAO,SAAA;AAAA,EACP,KAAA,GAAQ,OAAA;AAAA,EACR,IAAA,GAAO,SAAA;AAAA,EACP,OAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,KAAA,IAAS,CAAC,aAAa,OAAO,IAAA;AAC/C,EAAA,uBACEG,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAWF,oBAAA;AAAA,QACT,WAAA;AAAA,QACA,UAAU,QAAA,IAAY,qBAAA;AAAA,QACtB;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,OAAA,oBACCD,cAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,qDAAA;AAAA,cACA,gBAAgB,IAAI;AAAA,aACtB;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QAED,yBACCD,cAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,OAAA;AAAA,YACJ,SAAA,EAAWC,oBAAA;AAAA,cACT,uCAAA;AAAA,cACA,iBAAiB,IAAI,CAAA;AAAA,cACrB,IAAA,KAAS,SACL,kCAAA,GACA;AAAA,aACN;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QAED,+BACCD,cAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,kBAAA;AAAA,cACA,IAAA,KAAS,SAAS,oBAAA,GAAuB,SAAA;AAAA,cACzC,eAAe,IAAI;AAAA,aACrB;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,GAEJ;AAEJ;AAqBO,IAAM,YAAA,GAAqBC,gBAAA,CAAA,UAAA;AAAA,EAChC,CACE;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,OAAA;AAAA,IACR,KAAA,GAAQ,MAAA;AAAA,IACR,OAAA,GAAU,SAAA;AAAA,IACV,SAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AAEH,IAAA,MAAM,UAAgBA,gBAAA,CAAA,KAAA,EAAM;AAC5B,IAAA,uBACEF,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,iBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,iBAAA,EAAiB,QAAQ,OAAA,GAAU,MAAA;AAAA,QACnC,SAAA,EAAWC,oBAAA;AAAA,UACT,OAAA,KAAY,YAAY,gBAAA,GAAmB,gBAAA;AAAA,UAC3C,UAAU,IAAI,CAAA;AAAA,UACd;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAE,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,CAAe,KAAK,CAAA,EAClC,QAAA,EAAA;AAAA,0BAAAH,cAAAA;AAAA,YAAC,cAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,KAAA;AAAA,cACA,WAAA;AAAA,cACA,KAAA;AAAA,cACA,IAAA;AAAA,cACA,OAAA;AAAA,cACA,SAAA,EAAWC,oBAAA,CAAG,KAAA,KAAU,QAAA,IAAY,YAAY;AAAA;AAAA,WAClD;AAAA,UACC;AAAA,SAAA,EACH;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAYpB,SAAS,QAAA,CAAS;AAAA,EACvB,OAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,KAAA,GAAQ,OAAA;AAAA,EACR,SAAA;AAAA,EACA;AACF,CAAA,EAAkB;AAChB,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,SAAA,EAAW,OAAO,IAAA;AACnC,EAAA,MAAM,UAAU,IAAA,KAAS,OAAA;AAEzB,EAAA,MAAM,IAAA,GAAO,oDAAA;AACb,EAAA,uBACEE,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWF,oBAAA;AAAA,QACT,8CAAA;AAAA,QACA,UAAU,QAAA,IAAY,mBAAA;AAAA,QACtB;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,OAAA,oBACCE,eAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,MAAM,OAAA,CAAQ,IAAA;AAAA,YACd,YAAY,OAAA,CAAQ,UAAA;AAAA,YACpB,UAAA;AAAA,YACA,WAAA,EAAU,aAAA;AAAA,YACV,SAAA,EAAWF,oBAAA;AAAA,cACTG,iCAAe,EAAE,OAAA,EAAS,SAAA,EAAW,IAAA,EAAM,MAAM,CAAA;AAAA,cACjD,IAAA;AAAA,cACA,OAAA,IACE;AAAA,aACJ;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,OAAA,CAAQ,KAAA;AAAA,8BACTJ,cAAAA,CAACK,sBAAA,EAAA,EAAW,aAAA,EAAY,MAAA,EAAO,WAAU,yBAAA,EAA0B;AAAA;AAAA;AAAA,SACrE;AAAA,QAED,6BACCL,cAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,MAAM,SAAA,CAAU,IAAA;AAAA,YAChB,YAAY,SAAA,CAAU,UAAA;AAAA,YACtB,UAAA;AAAA,YACA,WAAA,EAAU,eAAA;AAAA,YACV,SAAA,EAAWC,oBAAA;AAAA,cACTG,iCAAe,EAAE,OAAA,EAAS,SAAA,EAAW,IAAA,EAAM,MAAM,CAAA;AAAA,cACjD,IAAA;AAAA,cACA,OAAA,IACE;AAAA,aACJ;AAAA,YAEC,QAAA,EAAA,SAAA,CAAU;AAAA;AAAA;AACb;AAAA;AAAA,GAEJ;AAEJ;AASO,SAAS,QAAA,CAAS;AAAA,EACvB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP;AACF,CAAA,EAAkB;AAChB,EAAA,uBACEJ,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWC,oBAAA;AAAA,QACT,qEAAA;AAAA,QACA,IAAA,KAAS,UACL,wBAAA,GACA,8EAAA;AAAA,QACJ;AAAA,OACF;AAAA,MAEA,QAAA,kBAAAD,cAAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAY,KAAA,EAAc;AAAA;AAAA,GAC1C;AAEJ;ACnUA,IAAM,SAAA,GAAY,2BAAA;AAEX,IAAM,iBAAA,GAA0BM,gBAAA,CAAA,UAAA;AAAA,EAIrC,CACE;AAAA,IACE,OAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KACnB,OAAO,KAAA,KAAU,WACf,KAAA,GACE,KAAA,mBACFH,eAAAA,CAAAI,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAP,cAAAA;AAAA,QAACQ,iBAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU,6BAAA;AAAA,UACV,WAAA,EAAa;AAAA;AAAA,OACf;AAAA,sBACAR,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,SAAA,EAAW,QAAA,EAAA,MAAA,EAAQ,YAAY,UAAA,EAAW;AAAA,KAAA,EAC5D,CAAA,mBAEAG,eAAAA,CAAAI,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAP,cAAAA;AAAA,QAACS,aAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAWR,oBAAA,CAAG,gBAAA,EAAkB,cAAA,CAAe,IAAI,CAAC;AAAA;AAAA,OACtD;AAAA,sBACAD,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,SAAA,EACb,QAAA,EAAA,MAAA,EAAQ,eAAe,cAAA,EAC1B;AAAA,KAAA,EACF,CAAA;AAEJ,IAAA,uBACEA,cAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,oBAAA;AAAA,QACV,KAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAA,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA,CAAG,mCAAA,EAAqC,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,YAElE,QAAA,kBAAAE,eAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWF,oBAAA;AAAA,kBACT,mCAAA;AAAA;AAAA,kBAEA,OAAA,CAAQ,SAAS,CAAA,IAAK;AAAA,iBACxB;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,KAAA,oBAASD,cAAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kCAC9CA,cAAAA,CAAC,OAAA,EAAA,EACC,QAAA,kBAAAG,gBAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,oCAAAH,cAAAA;AAAA,sBAAC,IAAA;AAAA,sBAAA;AAAA,wBACC,KAAA,EAAM,KAAA;AAAA,wBACN,SAAA,EAAWC,oBAAA,CAAG,SAAA,EAAW,kCAAkC,CAAA;AAAA,wBAE1D,kBAAQ,OAAA,IAAW;AAAA;AAAA,qBACtB;AAAA,oBACC,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,sBACpBD,cAAAA;AAAA,sBAAC,IAAA;AAAA,sBAAA;AAAA,wBAEC,KAAA,EAAM,KAAA;AAAA,wBACN,SAAA,EAAWC,oBAAA;AAAA,0BACT,SAAA;AAAA,0BACA,mCAAA;AAAA,0BACA,MAAM,eAAA,IAAmB;AAAA,yBAC3B;AAAA,wBAEC,QAAA,EAAA;AAAA,uBAAA;AAAA,sBARI;AAAA,qBAUR;AAAA,mBAAA,EACH,CAAA,EACF,CAAA;AAAA,kCACAD,cAAAA,CAAC,OAAA,EAAA,EACE,eAAK,GAAA,CAAI,CAAC,wBACTG,eAAAA;AAAA,oBAAC,IAAA;AAAA,oBAAA;AAAA,sBAEC,SAAA,EAAWF,oBAAA;AAAA,wBACT,UAAA;AAAA,wBACA,IAAA,KAAS,UAAU,iBAAA,GAAoB;AAAA,uBACzC;AAAA,sBAEA,QAAA,EAAA;AAAA,wCAAAD,cAAAA;AAAA,0BAAC,IAAA;AAAA,0BAAA;AAAA,4BACC,KAAA,EAAM,KAAA;AAAA,4BACN,SAAA,EAAWC,oBAAA,CAAG,SAAA,EAAW,wBAAwB,CAAA;AAAA,4BAEhD,QAAA,EAAA,GAAA,CAAI;AAAA;AAAA,yBACP;AAAA,wBAEC,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,sBACpBD,cAAAA;AAAA,0BAAC,IAAA;AAAA,0BAAA;AAAA,4BAEC,SAAA,EAAWC,oBAAA;AAAA,8BACT,SAAA;AAAA,8BACA,qBAAA;AAAA,8BACA,MAAM,eAAA,IACJ;AAAA,6BACJ;AAAA,4BAEC,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,MAAA,CAAO,CAAC,KAAK,EAAE;AAAA,2BAAA;AAAA,0BAR3B;AAAA,yBAUR;AAAA;AAAA,qBAAA;AAAA,oBAzBI,GAAA,CAAI;AAAA,mBA2BZ,CAAA,EACH;AAAA;AAAA;AAAA;AACF;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;ACxIzB,IAAM,UAAA,GAAmBS,gBAAA,CAAA,UAAA;AAAA,EAC9B,CACE;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,GAAO,OAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,MAAA,GAAS,MAAA;AAAA,IACT,UAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,UAAgBA,gBAAA,CAAA,KAAA,EAAM;AAC5B,IAAA,MAAM,IAAA,mBACJP,eAAAA,CAAAI,mBAAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAP,cAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,OAAA;AAAA,UACA,KAAA;AAAA,UACA,WAAA;AAAA,UACA,KAAA;AAAA,UACA,IAAA;AAAA,UACA;AAAA;AAAA,OACF;AAAA,sBACAA,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,UAAA;AAAA,UACT,SAAA,EAAW,YAAA;AAAA,UACX,IAAA;AAAA,UACA,KAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,MACC,wBACCA,cAAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWC,oBAAA;AAAA,YACT,cAAA;AAAA,YACA,eAAe,IAAI,CAAA;AAAA,YACnB,UAAU,QAAA,IAAY;AAAA,WACxB;AAAA,UAEC,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EAEJ,CAAA;AAEF,IAAA,uBACED,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,aAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,iBAAA,EAAiB,OAAA;AAAA,QACjB,SAAA,EAAWC,oBAAA;AAAA,UACT,gBAAA;AAAA,UACA,MAAA,KAAW,MAAA,GAAS,SAAA,CAAU,IAAI,CAAA,GAAI,eAAA;AAAA,UACtC;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAD,eAAC,KAAA,EAAA,EAAI,SAAA,EAAW,gBAAe,EAC5B,QAAA,EAAA,MAAA,KAAW,0BACVA,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,0CAAA;AAAA,cACA,UAAU,IAAI,CAAA;AAAA,cACd,SAAS,OAAA,IAAW;AAAA,aACtB;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,YAGH,IAAA,EAEJ;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;ACjFlB,IAAM,UAAA,GAAmBU,gBAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,KAAA,EAAO,IAAA,GAAO,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,GAAG,IAAA,EAAK,EAAG,GAAA,qBACvDX,cAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA,EAAM,QAAA;AAAA,MACL,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVG,eAAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UAEC,IAAI,IAAA,CAAK,EAAA;AAAA,UACT,SAAA,EAAWF,oBAAA,CAAG,kBAAA,EAAoB,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,UAEjD,QAAA,EAAA;AAAA,4BAAAE,eAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWF,oBAAA;AAAA,kBACT,gHAAA;AAAA,kBACA,yEAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,IAAA,CAAK,QAAA;AAAA,kCACND,cAAAA;AAAA,oBAACY,uBAAA;AAAA,oBAAA;AAAA,sBACC,aAAA,EAAY,MAAA;AAAA,sBACZ,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA,aACF;AAAA,4BACAZ,cAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWC,oBAAA;AAAA,kBACT,+BAAA;AAAA,kBACA,eAAe,IAAI;AAAA,iBACrB;AAAA,gBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA,SAAA;AAAA,QAxBK,IAAA,CAAK,MAAM,IAAA,CAAK;AAAA,OA0BxB,CAAA,EACH;AAAA;AAAA;AAGN;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;ACjCzB,IAAM,WAAA,GAAc;AAAA,EAClB,CAAA,EAAG,gBAAA;AAAA,EACH,CAAA,EAAG,gBAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAEO,IAAM,kBAAA,GAA2BY,gBAAA,CAAA,UAAA;AAAA,EAItC,CACE;AAAA,IACE,QAAA;AAAA,IACA,OAAA,GAAU,CAAA;AAAA,IACV,OAAA,GAAU,OAAA;AAAA,IACV,KAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,OAAA;AAAA,IACR,UAAA;AAAA,IACA,GAAG;AAAA,GACL,EACA,wBAEAb,cAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,sBAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAA,cAAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWC,oBAAA,CAAG,iCAAA,EAAmC,WAAA,CAAY,OAAO,CAAC,CAAA;AAAA,UAEpE,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,qBACbE,eAAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAWF,oBAAA;AAAA,gBACT,qBAAA;AAAA,gBACA,YAAY,OAAA,IAAWA,oBAAA,CAAG,iBAAA,EAAmB,SAAA,CAAU,IAAI,CAAC;AAAA,eAC9D;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,OAAA,CAAQ,IAAA,oBACPD,cAAAA,CAAC,QAAA,EAAA,EAAS,MAAM,OAAA,CAAQ,IAAA,EAAM,OAAc,IAAA,EAAY,CAAA;AAAA,gBAEzD,OAAA,CAAQ,uBACPA,cAAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAWC,oBAAA;AAAA,sBACT,gDAAA;AAAA,sBACA,gBAAgB,IAAI;AAAA,qBACtB;AAAA,oBAEC,QAAA,EAAA,OAAA,CAAQ;AAAA;AAAA,iBACX;AAAA,gCAEFD,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAWC,oBAAA,CAAG,uBAAA,EAAyB,gBAAA,CAAiB,IAAI,CAAC,CAAA,EAC9D,QAAA,EAAA,OAAA,CAAQ,KAAA,EACX,CAAA;AAAA,gCACAD,eAAC,GAAA,EAAA,EAAE,SAAA,EAAW,eAAe,IAAI,CAAA,EAAI,kBAAQ,WAAA,EAAY,CAAA;AAAA,gBACxD,OAAA,CAAQ,wBACPG,eAAAA;AAAA,kBAAC,cAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAM,QAAQ,IAAA,CAAK,IAAA;AAAA,oBACnB,UAAA,EAAY,QAAQ,IAAA,CAAK,UAAA;AAAA,oBACzB,UAAA;AAAA,oBACA,SAAA,EAAWF,oBAAA;AAAA,sBACT,sEAAA;AAAA,sBACA,gBAAgB,IAAI;AAAA,qBACtB;AAAA,oBAEC,QAAA,EAAA;AAAA,sBAAA,OAAA,CAAQ,IAAA,CAAK,KAAA;AAAA,sCACdD,cAAAA;AAAA,wBAACK,sBAAAA;AAAA,wBAAA;AAAA,0BACC,aAAA,EAAY,MAAA;AAAA,0BACZ,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA;AACF;AAAA,aAAA;AAAA,YAtCG,OAAA,CAAQ;AAAA,WAyChB;AAAA;AAAA;AACH;AAAA;AAGN;AACA,kBAAA,CAAmB,WAAA,GAAc,oBAAA;ACxE1B,IAAM,WAAA,GAAoBS,gBAAA,CAAA,UAAA;AAAA,EAC/B,CACE;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA,GAAU,UAAA;AAAA,IACV,IAAA,GAAO,SAAA;AAAA,IACP,UAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA,GAAe,IAAA;AAAA,IACf,MAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,UAAgBA,gBAAA,CAAA,KAAA,EAAM;AAC5B,IAAA,MAAM,KAAA,GAAQ,OAAA,KAAY,OAAA,IAAW,CAAC,CAAC,KAAA;AACvC,IAAA,MAAM,KAAA,GAAQ,QAAQ,OAAA,GAAU,QAAA;AAChC,IAAA,uBACEd,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,cAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,iBAAA,EAAiB,OAAA;AAAA,QACjB,WAAWC,oBAAA,CAAG,yBAAA,EAA2B,SAAA,CAAU,IAAI,GAAG,SAAS,CAAA;AAAA,QAClE,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAE,eAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWF,oBAAA;AAAA,cACT,cAAA,EAAe;AAAA,cACf,KAAA,IAAS;AAAA,aACX;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAE,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAWF,qBAAG,CAAC,KAAA,IAAS,4BAA4B,CAAA,EACtD,QAAA,EAAA;AAAA,gBAAA,WAAA,IAAe,WAAA,CAAY,MAAA,GAAS,CAAA,oBACnCD,cAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,YAAA,EAAY,QAAQ,UAAA,IAAc,YAAA;AAAA,oBAClC,SAAA,EAAU,MAAA;AAAA,oBAEV,QAAA,kBAAAA,cAAAA;AAAA,sBAAC,IAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAWC,oBAAA;AAAA,0BACT,2CAAA;AAAA,0BACA,eAAe,IAAI,CAAA;AAAA,0BACnB,CAAC,KAAA,IAAS;AAAA,yBACZ;AAAA,wBAEC,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,KAAM;AAC7B,0BAAA,MAAM,IAAA,GAAO,CAAA,KAAM,WAAA,CAAY,MAAA,GAAS,CAAA;AACxC,0BAAA,uBACED,cAAAA,CAAC,IAAA,EAAA,EAAoB,SAAA,EAAU,yBAAA,EAC5B,iCACCA,cAAAA,CAAC,MAAA,EAAA,EAAK,cAAA,EAAa,QAAQ,QAAA,EAAA,KAAA,CAAM,KAAA,EAAM,oBAEvCG,eAAAA,CAAAI,qBAAA,EACE,QAAA,EAAA;AAAA,4CAAAP,cAAAA;AAAA,8BAAC,cAAA;AAAA,8BAAA;AAAA,gCACC,MAAM,KAAA,CAAM,IAAA;AAAA,gCACZ,YAAY,KAAA,CAAM,UAAA;AAAA,gCAClB,UAAA;AAAA,gCACA,SAAA,EAAU,yCAAA;AAAA,gCAET,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,6BACT;AAAA,4CACAA,cAAAA;AAAA,8BAACe,wBAAA;AAAA,8BAAA;AAAA,gCACC,aAAA,EAAY,MAAA;AAAA,gCACZ,SAAA,EAAU;AAAA;AAAA;AACZ,2BAAA,EACF,CAAA,EAAA,EAjBK,MAAM,IAmBf,CAAA;AAAA,wBAEJ,CAAC;AAAA;AAAA;AACH;AAAA,iBACF;AAAA,gCAEFf,cAAAA;AAAA,kBAAC,cAAA;AAAA,kBAAA;AAAA,oBACC,EAAA,EAAI,YAAA;AAAA,oBACJ,IAAA,EAAK,MAAA;AAAA,oBACL,OAAA;AAAA,oBACA,KAAA;AAAA,oBACA,WAAA;AAAA,oBACA,KAAA;AAAA,oBACA,IAAA;AAAA,oBACA;AAAA;AAAA,iBACF;AAAA,gCACAA,cAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,UAAA;AAAA,oBACT,SAAA,EAAW,YAAA;AAAA,oBACX,IAAA;AAAA,oBACA,KAAA;AAAA,oBACA,UAAA;AAAA,oBACA,SAAA,EAAU;AAAA;AAAA,iBACZ;AAAA,gBACC,OAAA,oBACCA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,cAAA,EAAgB,cAAA,CAAe,IAAI,CAAC,CAAA,EAClD,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,gBAED,UAAA,IAAc,UAAA,CAAW,MAAA,GAAS,CAAA,oBACjCD,cAAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAWC,oBAAA;AAAA,sBACT,yDAAA;AAAA,sBACA,CAAC,KAAA,IAAS;AAAA,qBACZ;AAAA,oBAEC,QAAA,EAAA,UAAA,CAAW,IAAI,CAAC,IAAA,qBACfE,eAAAA,CAAC,IAAA,EAAA,EAAc,WAAU,yBAAA,EACvB,QAAA,EAAA;AAAA,sCAAAH,cAAAA;AAAA,wBAAC9C,uBAAAA;AAAA,wBAAA;AAAA,0BACC,aAAA,EAAY,MAAA;AAAA,0BACZ,SAAA,EAAW+C,oBAAA,CAAG,iBAAA,EAAmB,eAAA,CAAgB,IAAI,CAAC;AAAA;AAAA,uBACxD;AAAA,sBACC;AAAA,qBAAA,EAAA,EALM,IAMT,CACD;AAAA;AAAA;AACH,eAAA,EAEJ,CAAA;AAAA,cACC,yBACCD,cAAAA;AAAA,gBAAC,WAAA;AAAA,gBAAA;AAAA,kBACE,GAAG,KAAA;AAAA,kBACJ,QAAA,EAAQ,IAAA;AAAA,kBACR,UAAA;AAAA,kBACA,SAAA,EAAWC,oBAAA;AAAA,oBACT,kDAAA;AAAA,oBACA,CAAC,KAAA,IAAS;AAAA;AACZ;AAAA;AACF;AAAA;AAAA;AAEJ;AAAA,KACF;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;ACjInB,IAAM,qBAAA,GAAyC;AAAA,EACpD;AAAA,IACE,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,YAAA,EAAc,YAAA;AAAA,IACd,KAAA,EAAO;AAAA,GACT;AAAA,EACA;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO,WAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,YAAA,EAAc,aAAA;AAAA,IACd,KAAA,EAAO;AAAA,GACT;AAAA,EACA;AAAA,IACE,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,YAAA,EAAc;AAAA,GAChB;AAAA,EACA;AAAA,IACE,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,YAAA,EAAc;AAAA;AAElB;AAEA,IAAM,YAAA,GAAeA,oBAAA;AAAA;AAAA;AAAA,EAGnBe,+BAAA,CAAc,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC5B;AACF,CAAA;AAEO,IAAM,eAAA,GAAwBC,gBAAA,CAAA,UAAA;AAAA,EAInC,CACE;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA,GAAS,MAAA;AAAA,IACT,MAAA,GAAS,qBAAA;AAAA,IACT,YAAA;AAAA,IACA,WAAA,GAAc,QAAA;AAAA,IACd,IAAA;AAAA,IACA,MAAA,GAAS,OAAA;AAAA,IACT,IAAA,GAAO,OAAA;AAAA,IACP,gBAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AAEH,IAAA,MAAM,SAAeA,gBAAA,CAAA,KAAA,EAAM;AAC3B,IAAA,MAAM,OAAA,GAAU,GAAG,MAAM,CAAA,MAAA,CAAA;AACzB,IAAA,MAAM,QAAQ,MAAA,KAAW,OAAA;AAGzB,IAAA,MAAM,iBACJ,OAAO,MAAA,KAAW,QAAA,GAAW,QAAA,CAAS,MAAM,CAAA,GAAI,MAAA;AAClD,IAAA,IAAI,cAAA,IAAkB,MAAM,OAAO,IAAA;AACnC,IAAA,uBACEjB,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,mBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,iBAAA,EAAiB,OAAA;AAAA,QACjB,WAAWC,oBAAA,CAAG,gBAAA,EAAkB,SAAA,CAAU,IAAI,GAAG,SAAS,CAAA;AAAA,QACzD,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAE,eAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWF,oBAAA;AAAA,cACT,cAAA,CAAe,KAAA,GAAQ,MAAA,GAAS,QAAQ,CAAA;AAAA,cACxC,KAAA,IAAS;AAAA,aACX;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAD,cAAAA;AAAA,gBAAC,cAAA;AAAA,gBAAA;AAAA,kBACC,OAAA;AAAA,kBACA,KAAA;AAAA,kBACA,WAAA;AAAA,kBACA,KAAA,EAAO,QAAQ,OAAA,GAAU,QAAA;AAAA,kBACzB,IAAA;AAAA,kBACA;AAAA;AAAA,eACF;AAAA,8BACAG,eAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,MAAA,EAAQ,cAAA;AAAA,kBACR,MAAA,EAAQ,OAAO,cAAA,KAAmB,QAAA,GAAW,MAAA,GAAS,MAAA;AAAA,kBACtD,iBAAA,EAAiB,OAAA;AAAA,kBACjB,SAAA,EAAWF,oBAAA;AAAA,oBACT,kDAAA;AAAA;AAAA,oBAEA,UAAU,SAAS,CAAA;AAAA,oBACnB,CAAC,KAAA,IAAS;AAAA,mBACZ;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,YAAA,IACC,OAAO,OAAA,CAAQ,YAAY,EAAE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,qBAC5CD,eAAC,OAAA,EAAA,EAAiB,IAAA,EAAK,UAAS,IAAA,EAAY,KAAA,EAAA,EAAhC,IAA8C,CAC3D,CAAA;AAAA,oBACF,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AACrB,sBAAA,MAAM,EAAA,GAAK,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,CAAA;AAClC,sBAAA,MAAM,MAAA,GAAS;AAAA,wBACb,EAAA;AAAA,wBACA,MAAM,KAAA,CAAM,IAAA;AAAA,wBACZ,UAAU,KAAA,CAAM,QAAA;AAAA,wBAChB,cAAc,KAAA,CAAM,YAAA;AAAA,wBACpB,SAAA,EAAW;AAAA,uBACb;AACA,sBAAA,uBACEG,eAAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BAEC,SAAA,EAAWF,oBAAA,CAAG,KAAA,CAAM,KAAA,KAAU,UAAU,eAAe,CAAA;AAAA,0BAEvD,QAAA,EAAA;AAAA,4CAAAE,eAAAA;AAAA,8BAAC,OAAA;AAAA,8BAAA;AAAA,gCACC,OAAA,EAAS,EAAA;AAAA,gCACT,SAAA,EAAU,kCAAA;AAAA,gCAET,QAAA,EAAA;AAAA,kCAAA,KAAA,CAAM,KAAA;AAAA,kCACN,KAAA,CAAM,QAAA,oBAAYH,cAAAA,CAACkB,8BAAA,EAAA,EAAa;AAAA;AAAA;AAAA,6BACnC;AAAA,4BACC,KAAA,CAAM,IAAA,KAAS,UAAA,mBACdlB,cAAAA;AAAA,8BAAC,UAAA;AAAA,8BAAA;AAAA,gCACE,GAAG,MAAA;AAAA,gCACJ,IAAA,EAAM,CAAA;AAAA,gCACN,aAAa,KAAA,CAAM;AAAA;AAAA,6BACrB,GACE,KAAA,CAAM,IAAA,KAAS,QAAA,mBACjBG,gBAAC,QAAA,EAAA,EAAQ,GAAG,MAAA,EAAQ,YAAA,EAAa,EAAA,EAC/B,QAAA,EAAA;AAAA,8CAAAH,cAAAA,CAAC,YAAO,KAAA,EAAM,EAAA,EAAG,UAAQ,IAAA,EACtB,QAAA,EAAA,KAAA,CAAM,eAAe,EAAA,EACxB,CAAA;AAAA,8BACC,KAAA,CAAM,OAAA,EAAS,GAAA,CAAI,CAAC,MAAA,qBACnBA,cAAAA,CAAC,QAAA,EAAA,EAAoB,KAAA,EAAO,MAAA,EACzB,QAAA,EAAA,MAAA,EAAA,EADU,MAEb,CACD;AAAA,6BAAA,EACH,oBAEAA,cAAAA;AAAA,8BAAC,OAAA;AAAA,8BAAA;AAAA,gCACE,GAAG,MAAA;AAAA,gCACJ,IAAA,EAAM,MAAM,IAAA,IAAQ,MAAA;AAAA,gCACpB,aAAa,KAAA,CAAM;AAAA;AAAA;AACrB;AAAA,yBAAA;AAAA,wBAhCG,KAAA,CAAM;AAAA,uBAkCb;AAAA,oBAEJ,CAAC,CAAA;AAAA,oCACDG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,EAAA;AAAA,sCAAAH,cAAAA;AAAA,wBAAC,QAAA;AAAA,wBAAA;AAAA,0BACC,IAAA,EAAK,QAAA;AAAA,0BACL,YAAA,EAAY,gBAAA;AAAA,0BACZ,SAAA,EAAWC,oBAAA;AAAA,4BACTG,gCAAA,CAAe;AAAA,8BACb,OAAA,EAAS,SAAA;AAAA,8BACT,IAAA,EAAM,IAAA;AAAA,8BACN,SAAA,EAAW;AAAA,6BACZ,CAAA;AAAA,4BACD;AAAA,2BACF;AAAA,0BAEC,QAAA,EAAA;AAAA;AAAA,uBACH;AAAA,sBACC,IAAA,oBACCJ,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,cAAA,EAAgB,cAAA,CAAe,SAAS,CAAC,CAAA,EACvD,QAAA,EAAA,IAAA,EACH;AAAA,qBAAA,EAEJ;AAAA;AAAA;AAAA;AACF;AAAA;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AChN9B,IAAM,WAAW,EAAE,IAAA,EAAM,OAAO,MAAA,EAAQ,KAAA,EAAO,MAAM,KAAA,EAAM;AAE3D,SAAS,IAAA,CAAK;AAAA,EACZ,IAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAKG;AAED,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,mBAChBD,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAK,IAAA,CAAK,GAAA;AAAA,MACV,GAAA,EAAK,MAAA,GAAS,EAAA,GAAK,IAAA,CAAK,IAAA;AAAA,MACxB,OAAA,EAAQ,MAAA;AAAA,MACR,QAAA,EAAS,OAAA;AAAA,MACT,SAAA,EAAWC,oBAAA;AAAA,QACT,4GAAA;AAAA;AAAA,QAEA,IAAA,KAAS,UACL,qBAAA,GACA;AAAA;AACN;AAAA,sBAGFD,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA;AAAA,QACT,yCAAA;AAAA,QACA,cAAA,CAAe,QAAQ,SAAS;AAAA,OAClC;AAAA,MAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,GACR;AAEF,EAAA,OAAO,IAAA,CAAK,uBACVD,cAAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,UAAA;AAAA,MACA,QAAA,EAAU,SAAS,EAAA,GAAK,MAAA;AAAA,MACxB,SAAA,EAAU,6FAAA;AAAA,MAET,QAAA,EAAA;AAAA;AAAA,GACH,GAEA,IAAA;AAEJ;AAEO,IAAM,gBAAA,GAAyBmB,gBAAA,CAAA,UAAA;AAAA,EAIpC,CACE;AAAA,IACE,KAAA;AAAA,IACA,OAAA,GAAU,MAAA;AAAA,IACV,KAAA,GAAQ,QAAA;AAAA,IACR,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,UAAA;AAAA,IACA,GAAG;AAAA,GACL,EACA,wBAEAnB,cAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,oBAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA,EAAQ,SAAA;AAAA,MACP,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA,OAAA,KAAY,4BACXA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,uHAAA;AAAA,UACV,KAAA,EACE,EAAE,wBAAA,EAA0B,QAAA,CAAS,KAAK,CAAA,EAAE;AAAA,UAG9C,QAAA,kBAAAG,eAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qCAAA,EACX,QAAA,EAAA;AAAA,YAAA,KAAA,CAAM,IAAI,CAAC,IAAA,qBACVH,cAAAA,CAAC,QAAmB,SAAA,EAAU,gBAAA,EAC5B,QAAA,kBAAAA,cAAAA,CAAC,QAAK,IAAA,EAAY,IAAA,EAAY,YAAwB,CAAA,EAAA,EAD/C,IAAA,CAAK,IAEd,CACD,CAAA;AAAA,YAEA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVA,cAAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBAEC,gBAAA,EAAe,EAAA;AAAA,gBACf,aAAA,EAAY,MAAA;AAAA,gBACZ,SAAA,EAAU,gBAAA;AAAA,gBAEV,0BAAAA,cAAAA,CAAC,IAAA,EAAA,EAAK,MAAY,IAAA,EAAY,UAAA,EAAwB,QAAM,IAAA,EAAC;AAAA,eAAA;AAAA,cALxD,CAAA,EAAG,KAAK,IAAI,CAAA,KAAA;AAAA,aAOpB;AAAA,WAAA,EACH;AAAA;AAAA,OACF,mBAEAA,cAAAA,CAAC,IAAA,EAAA,EAAG,WAAU,kEAAA,EACX,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVA,eAAC,IAAA,EAAA,EACC,QAAA,kBAAAA,cAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAY,IAAA,EAAY,YAAwB,CAAA,EAAA,EAD/C,IAAA,CAAK,IAEd,CACD,CAAA,EACH;AAAA;AAAA;AAIR;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AC3G/B,IAAMoB,YAAAA,GAAc;AAAA,EAClB,EAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,cAAA,GAAuBC,gBAAA,CAAA,UAAA;AAAA,EAIlC,CACE,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,GAAO,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,EAAY,GAAG,IAAA,EAAK,EACvE,wBAEAlB,eAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,iBAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAH,cAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,+CAAA;AAAA,cACAmB,aAAY,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,MAAA,EAAQ,CAAC,CAAC,CAAA;AAAA,cACrC,KAAA,CAAM,WAAW,CAAA,IAAK;AAAA,aACxB;AAAA,YAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVjB,eAAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAWF,oBAAA;AAAA,kBACT,+CAAA;AAAA,kBACA,UAAU,IAAI,CAAA;AAAA,kBACd,KAAK,WAAA,IACH;AAAA,iBACJ;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,IAAA,CAAK,WAAA,IAAe,KAAK,KAAA,oBACxBD,eAACsB,uBAAA,EAAA,EAAM,SAAA,EAAU,uHAAA,EACd,QAAA,EAAA,IAAA,CAAK,KAAA,EACR,CAAA;AAAA,kCAEFtB,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAWC,oBAAA,CAAG,uBAAA,EAAyB,gBAAA,CAAiB,IAAI,CAAC,CAAA,EAC9D,QAAA,EAAA,IAAA,CAAK,IAAA,EACR,CAAA;AAAA,kBACC,IAAA,CAAK,WAAA,oBACJD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,cAAA,EAAgB,cAAA,CAAe,IAAI,CAAC,CAAA,EAClD,eAAK,WAAA,EACR,CAAA;AAAA,kCAEFE,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4CAAA,EACX,QAAA,EAAA;AAAA,oCAAAH,cAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAWC,oBAAA;AAAA,0BACT,mCAAA;AAAA,0BACA,iBAAiB,IAAI;AAAA,yBACvB;AAAA,wBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,qBACR;AAAA,oBACC,IAAA,CAAK,MAAA,oBACJD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWC,oBAAA,CAAG,SAAA,EAAW,cAAA,CAAe,IAAI,CAAC,CAAA,EAChD,eAAK,MAAA,EACR;AAAA,mBAAA,EAEJ,CAAA;AAAA,kCACAD,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,iCACX,QAAA,EAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,qBAClBG,eAAAA,CAAC,IAAA,EAAA,EAAiB,WAAU,YAAA,EAC1B,QAAA,EAAA;AAAA,oCAAAH,cAAAA;AAAA,sBAACQ,iBAAAA;AAAA,sBAAA;AAAA,wBACC,aAAA,EAAY,MAAA;AAAA,wBACZ,SAAA,EAAWP,oBAAA;AAAA,0BACT,wBAAA;AAAA,0BACA,gBAAgB,IAAI;AAAA;AACtB;AAAA,qBACF;AAAA,oBACC;AAAA,mBAAA,EAAA,EARM,OAST,CACD,CAAA,EACH,CAAA;AAAA,kBACC,IAAA,CAAK,uBACJD,cAAAA;AAAA,oBAAC,cAAA;AAAA,oBAAA;AAAA,sBACC,IAAA,EAAM,KAAK,GAAA,CAAI,IAAA;AAAA,sBACf,UAAA,EAAY,KAAK,GAAA,CAAI,UAAA;AAAA,sBACrB,UAAA;AAAA,sBACA,SAAA,EAAWC,oBAAA;AAAA,wBACTG,gCAAA,CAAe;AAAA,0BACb,OAAA,EAAS,IAAA,CAAK,WAAA,GAAc,SAAA,GAAY,SAAA;AAAA,0BACxC,IAAA,EAAM,IAAA;AAAA,0BACN,SAAA,EAAW;AAAA,yBACZ,CAAA;AAAA,wBACD,6CAAA;AAAA,wBACA,IAAA,KAAS,OAAA,KACN,IAAA,CAAK,WAAA,GACF,+CAAA,GACA,oGAAA;AAAA,uBACR;AAAA,sBAEC,eAAK,GAAA,CAAI;AAAA;AAAA;AACZ;AAAA,eAAA;AAAA,cArEG,IAAA,CAAK;AAAA,aAwEb;AAAA;AAAA,SACH;AAAA,QACC,wBACCJ,cAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,cAAA;AAAA,cACA,eAAe,IAAI,CAAA;AAAA,cACnB,UAAU,QAAA,IAAY;AAAA,aACxB;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA;AAIR;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;ACrI7B,IAAMmB,YAAAA,GAAc;AAAA,EAClB,EAAA;AAAA,EACA,EAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAGA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAA;AAAA,EACA,EAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,mBAAA,GAA4BG,gBAAA,CAAA,UAAA,CAGvC,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,GAAO,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,GAAG,IAAA,IAAQ,GAAA,KAAQ;AACxE,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,QAAQ,CAAC,CAAA;AACxC,EAAA,uBACEvB,cAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,uBAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK,KAAA,CAAM,MAAA,IAAU,qBACnCH,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAWC,oBAAA;AAAA,cACT,qCAAA;AAAA,cACA,eAAe,OAAO,CAAA;AAAA,cACtB,IAAA,KAAS,UAAU,aAAA,GAAgB;AAAA;AACrC;AAAA,SACF;AAAA,wBAEFD,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAWC,qBAAG,sBAAA,EAAwBmB,YAAAA,CAAY,OAAO,CAAC,GAC3D,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,sBAChBjB,eAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,wCAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAH,cAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,aAAA,EAAY,MAAA;AAAA,kBACZ,SAAA,EAAWC,oBAAA;AAAA,oBACT,yEAAA;AAAA,oBACA,IAAA,KAAS,UACL,2BAAA,GACA;AAAA,mBACN;AAAA,kBAEC,QAAA,EAAA,IAAA,CAAK,IAAA,mBACJD,cAAAA,CAAC,YAAA,EAAA,EAAa,MAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAc,CAAA,GAE7C,CAAA,GAAI;AAAA;AAAA,eAER;AAAA,8BACAA,cAAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAWC,oBAAA;AAAA,oBACT,4BAAA;AAAA,oBACA,iBAAiB,IAAI;AAAA,mBACvB;AAAA,kBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,8BACAD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,eAAA,EAAiB,cAAA,CAAe,IAAI,CAAC,CAAA,EACnD,QAAA,EAAA,IAAA,CAAK,WAAA,EACR;AAAA;AAAA,WAAA;AAAA,UA5BK,IAAA,CAAK;AAAA,SA8Bb,CAAA,EACH;AAAA,OAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;ACjElC,IAAMmB,YAAAA,GAAc;AAAA,EAClB,CAAA,EAAG,gBAAA;AAAA,EACH,CAAA,EAAG,gBAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAEO,IAAM,oBAAA,GAA6BI,gBAAA,CAAA,UAAA;AAAA,EAIxC,CACE;AAAA,IACE,KAAA;AAAA,IACA,OAAA,GAAU,CAAA;AAAA,IACV,OAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,OAAA;AAAA,IACR,UAAA;AAAA,IACA,GAAG;AAAA,GACL,EACA,wBAEArB,eAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,wBAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAH,cAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA,CAAG,iCAAA,EAAmCmB,YAAAA,CAAY,OAAO,CAAC,CAAA;AAAA,YAEpE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVjB,eAAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAWF,oBAAA;AAAA,kBACT,0DAAA;AAAA,kBACA,4CAAA;AAAA,kBACA,UAAU,IAAI;AAAA,iBAChB;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,IAAA,CAAK,yBACJD,cAAAA;AAAA,oBAAC,WAAA;AAAA,oBAAA;AAAA,sBACE,GAAG,IAAA,CAAK,KAAA;AAAA,sBACT,UAAA;AAAA,sBACA,SAAA,EAAU;AAAA;AAAA,mBACZ;AAAA,kCAEFG,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gCAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAK,wBACJH,cAAAA;AAAA,sBAAC,GAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAWC,oBAAA;AAAA,0BACT,gDAAA;AAAA,0BACA,gBAAgB,IAAI;AAAA,yBACtB;AAAA,wBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,qBACR;AAAA,oCAEFD,cAAAA;AAAA,sBAAC,IAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAWC,oBAAA,CAAG,uBAAA,EAAyB,gBAAA,CAAiB,IAAI,CAAC,CAAA;AAAA,wBAG7D,QAAA,kBAAAD,cAAAA;AAAA,0BAAC,cAAA;AAAA,0BAAA;AAAA,4BACC,MAAM,IAAA,CAAK,IAAA;AAAA,4BACX,YAAY,IAAA,CAAK,UAAA;AAAA,4BACjB,UAAA;AAAA,4BACA,SAAA,EAAU,+EAAA;AAAA,4BAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA,qBACF;AAAA,oBACC,IAAA,CAAK,OAAA,oBACJA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,cAAA,EAAgB,cAAA,CAAe,IAAI,CAAC,CAAA,EAClD,eAAK,OAAA,EACR,CAAA;AAAA,oBAED,IAAA,CAAK,IAAA,oBACJD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,sBAAA,EAAwB,cAAA,CAAe,IAAI,CAAC,CAAA,EAC1D,eAAK,IAAA,EACR;AAAA,mBAAA,EAEJ;AAAA;AAAA,eAAA;AAAA,cAhDK,IAAA,CAAK;AAAA,aAkDb;AAAA;AAAA,SACH;AAAA,QACC,OAAA,oBACCD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,oBAAA,CAAG,OAAA,EAAS,KAAA,KAAU,QAAA,IAAY,aAAa,CAAA,EAC3D,QAAA,kBAAAE,eAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,MAAM,OAAA,CAAQ,IAAA;AAAA,YACd,YAAY,OAAA,CAAQ,UAAA;AAAA,YACpB,UAAA;AAAA,YACA,SAAA,EAAWF,oBAAA;AAAA,cACT,8DAAA;AAAA,cACA,gBAAgB,IAAI;AAAA,aACtB;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,OAAA,CAAQ,KAAA;AAAA,8BACTD,cAAAA;AAAA,gBAACK,sBAAAA;AAAA,gBAAA;AAAA,kBACC,aAAA,EAAY,MAAA;AAAA,kBACZ,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA,SACF,EACF;AAAA;AAAA;AAAA;AAIR;AACA,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AC/G5B,IAAM,mBAAA,GAA4BoB,gBAAA,CAAA,UAAA;AAAA,EAIvC,CACE;AAAA,IACE,OAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA,GAAgB,KAAA;AAAA,IAChB,IAAA,GAAO,SAAA;AAAA,IACP,UAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,UAAgBA,gBAAA,CAAA,KAAA,EAAM;AAC5B,IAAA,uBACEzB,cAAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,uBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,iBAAA,EAAiB,OAAA;AAAA,QACjB,WAAWC,oBAAA,CAAG,gBAAA,EAAkB,SAAA,CAAU,IAAI,GAAG,SAAS,CAAA;AAAA,QACzD,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAE,eAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWF,oBAAA;AAAA,cACT,cAAA,EAAe;AAAA,cACf;AAAA,aACF;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAE,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,gCAAAH,cAAAA;AAAA,kBAAC,cAAA;AAAA,kBAAA;AAAA,oBACC,OAAA;AAAA,oBACA,KAAA;AAAA,oBACA,WAAA;AAAA,oBACA,IAAA;AAAA,oBACA;AAAA;AAAA,iBACF;AAAA,gBACC,WAAW,OAAA,CAAQ,MAAA,GAAS,CAAA,oBAC3BA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACX,QAAA,EAAA,OAAA,CAAQ,IAAI,CAAC,IAAA,qBACZG,eAAAA,CAAC,IAAA,EAAA,EAAc,WAAU,YAAA,EACvB,QAAA,EAAA;AAAA,kCAAAH,cAAAA;AAAA,oBAAC9C,uBAAAA;AAAA,oBAAA;AAAA,sBACC,aAAA,EAAY,MAAA;AAAA,sBACZ,SAAA,EAAW+C,oBAAA;AAAA,wBACT,wBAAA;AAAA,wBACA,gBAAgB,IAAI;AAAA;AACtB;AAAA,mBACF;AAAA,kCACAD,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,cAAA,CAAe,IAAI,GAAI,QAAA,EAAA,IAAA,EAAK;AAAA,iBAAA,EAAA,EARtC,IAST,CACD,CAAA,EACH,CAAA;AAAA,gCAEFA,cAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,UAAA;AAAA,oBACT,SAAA,EAAW,YAAA;AAAA,oBACX,IAAA;AAAA,oBACA,UAAA;AAAA,oBACA,SAAA,EAAU;AAAA;AAAA;AACZ,eAAA,EACF,CAAA;AAAA,8BACAG,gBAAC,QAAA,EAAA,EAAO,SAAA,EAAWF,qBAAG,aAAA,KAAkB,OAAA,IAAW,gBAAgB,CAAA,EACjE,QAAA,EAAA;AAAA,gCAAAD,cAAAA;AAAA,kBAAC,WAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,KAAA;AAAA,oBACJ,UAAA;AAAA,oBACA,SAAA,EAAU;AAAA;AAAA,iBACZ;AAAA,gBACC,OAAA,oBACCA,cAAAA,CAAC,YAAA,EAAA,EAAW,SAAA,EAAWC,oBAAA,CAAG,cAAA,EAAgB,cAAA,CAAe,IAAI,CAAC,CAAA,EAC3D,QAAA,EAAA,OAAA,EACH;AAAA,eAAA,EAEJ;AAAA;AAAA;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACF;AACA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AC7FlC,IAAMmB,YAAAA,GAAc;AAAA,EAClB,EAAA;AAAA,EACA,EAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,YAAA,GAAqBM,gBAAA,CAAA,UAAA;AAAA,EAChC,CACE;AAAA,IACE,KAAA;AAAA,IACA,OAAA,GAAU,OAAA;AAAA,IACV,MAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,MAAA,GAAS,IAAI,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC3C,IAAA,uBACE1B,cAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,eAAA;AAAA,QACV,IAAA;AAAA,QACA,KAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAA,cAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,iCAAA;AAAA,cACAmB,aAAY,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,MAAA,EAAQ,CAAC,CAAC;AAAA,aACvC;AAAA,YAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,cAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,KAAU,MAAA,GAASO,wBAAA,GAAelC,sBAAAA;AACrD,cAAA,uBACEU,eAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAWF,oBAAA;AAAA,oBACT,6BAAA;AAAA,oBACA,UAAU,QAAA,IAAY,0BAAA;AAAA,oBACtB,YAAY,OAAA,IAAWA,oBAAA,CAAG,iBAAA,EAAmB,SAAA,CAAU,IAAI,CAAC;AAAA,mBAC9D;AAAA,kBAEA,QAAA,EAAA;AAAA,oCAAAE,gBAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,sCAAAH,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAiB,eAAK,KAAA,EAAM,CAAA;AAAA,sBAC3C,IAAA,CAAK,+BACJA,cAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,SAAA,EAAWC,oBAAA,CAAG,oBAAA,EAAsB,cAAA,CAAe,IAAI,CAAC,CAAA;AAAA,0BAEvD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,qBAAA,EAEJ,CAAA;AAAA,oCACAE,eAAAA;AAAA,sBAAC,IAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAWF,oBAAA;AAAA,0BACT,oFAAA;AAAA,0BACA,IAAA,KAAS,UACL,YAAA,GACA;AAAA,yBACN;AAAA,wBAEC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAK,yBACJD,cAAAA,CAAC,SAAM,aAAA,EAAY,MAAA,EAAO,WAAU,iBAAA,EAAkB,CAAA;AAAA,0BAEvD,IAAA,CAAK,MAAA;AAAA,0BACL,OAAO,KAAK,KAAA,KAAU,QAAA,GACnB,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,GACxB,IAAA,CAAK,KAAA;AAAA,0BACR,IAAA,CAAK;AAAA;AAAA;AAAA;AACR;AAAA,iBAAA;AAAA,gBAjCK,IAAA,CAAK;AAAA,eAkCZ;AAAA,YAEJ,CAAC;AAAA;AAAA;AACH;AAAA,KACF;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AC1EpB,IAAM,kBAAA,GAA2B4B,gBAAA,CAAA,UAAA;AAAA,EAItC,CACE;AAAA,IACE,YAAA;AAAA,IACA,OAAA,GAAU,OAAA;AAAA,IACV,MAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,GAAQ,QAAA;AAAA,IACR,UAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,WAAW,OAAA,KAAY,UAAA;AAC7B,IAAA,MAAM,QAAQ,QAAA,GAAW,YAAA,CAAa,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,YAAA;AACpD,IAAA,uBACE5B,cAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,qBAAA;AAAA,QACV,IAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA,EAAO,WAAW,QAAA,GAAW,MAAA;AAAA,QAC5B,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAA,cAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,kBAAA;AAAA,cACA,CAAC,QAAA,IAAY;AAAA,aACf;AAAA,YAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAE,MAAA,EAAQ,GAAG,CAAA,EAAE,qBACzBD,cAAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAAG,eAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWF,oBAAA;AAAA,kBACT,4BAAA;AAAA,kBACA,WACI,0BAAA,GACAA,oBAAA,CAAG,iBAAA,EAAmB,SAAA,CAAU,IAAI,CAAC;AAAA,iBAC3C;AAAA,gBAEC,QAAA,EAAA;AAAA,kBAAA,MAAA,oBACCE,eAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAAA,EACV,QAAA,EAAA;AAAA,oBAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,IAAK,CAAC,CAAA,EAAG,sBAC7BH,cAAAA;AAAA,sBAAC6B,gBAAA;AAAA,sBAAA;AAAA,wBAEC,aAAA,EAAY,MAAA;AAAA,wBACZ,SAAA,EAAW5B,oBAAA;AAAA,0BACT,QAAA;AAAA,0BACA,CAAA,GAAI,SAAS,cAAA,GAAiB;AAAA;AAChC,uBAAA;AAAA,sBALK;AAAA,qBAOR,CAAA;AAAA,oCACDD,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,SAAA,EACZ,QAAA,EAAA,CAAA,MAAA,EAAQ,UAAU,yBAAA,EAA2B,OAAA;AAAA,sBAC7C,UAAA;AAAA,sBACA,OAAO,MAAM;AAAA,qBACf,EACF;AAAA,mBAAA,EACF,CAAA;AAAA,kCAEFA,cAAAA;AAAA,oBAAC,YAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAWC,oBAAA;AAAA,wBACT,aAAA;AAAA,wBACA,QAAA,GACIA,oBAAA;AAAA,0BACE,kCAAA;AAAA,0BACA,iBAAiB,IAAI;AAAA,yBACvB,GACA;AAAA,uBACN;AAAA,sBAEA,QAAA,kBAAAD,cAAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM;AAAA;AAAA,mBACd;AAAA,kCACAG,eAAAA,CAAC,YAAA,EAAA,EAAW,SAAA,EAAU,iCAAA,EACnB,QAAA,EAAA;AAAA,oBAAA,CAAA,CAAE,0BACDH,cAAAA;AAAA,sBAAC,WAAA;AAAA,sBAAA;AAAA,wBACC,KAAK,CAAA,CAAE,MAAA;AAAA,wBACP,GAAA,EAAI,EAAA;AAAA,wBACJ,KAAA,EAAO,EAAA;AAAA,wBACP,MAAA,EAAQ,EAAA;AAAA,wBACR,UAAA;AAAA,wBACA,SAAA,EAAU;AAAA;AAAA,qBACZ;AAAA,oCAEFG,gBAAC,MAAA,EAAA,EAAK,SAAA,EAAWF,qBAAG,CAAC,QAAA,IAAY,YAAY,CAAA,EAC3C,QAAA,EAAA;AAAA,sCAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAuB,YAAE,MAAA,EAAO,CAAA;AAAA,sBAAA,CAC9C,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,OAAA,qBACZA,cAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,SAAA,EAAWC,oBAAA,CAAG,eAAA,EAAiB,cAAA,CAAe,IAAI,CAAC,CAAA;AAAA,0BAElD,QAAA,EAAA,CAAC,CAAA,CAAE,IAAA,EAAM,CAAA,CAAE,OAAO,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,IAAI;AAAA;AAAA;AAChD,qBAAA,EAEJ;AAAA,mBAAA,EACF;AAAA;AAAA;AAAA,aACF,EAAA,EAhEO,CAAA,EAAG,CAAA,CAAE,MAAM,CAAA,CAAA,EAAI,CAAA,CAAE,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAiE5C,CACD;AAAA;AAAA;AACH;AAAA,KACF;AAAA,EAEJ;AACF;AACA,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AC/G1B,IAAM,YAAA,GAAqB6B,gBAAA,CAAA,UAAA;AAAA,EAChC,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,IAAA,GAAO,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,GAAG,IAAA,EAAK,EAAG,GAAA,qBAChE9B,cAAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,eAAA;AAAA,MACV,IAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAG,eAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,yBAAA,EAChB,QAAA,EAAA;AAAA,wBAAAH,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mEAAA,EACZ,QAAA,EAAA,WAAA,IAAe,wBACdA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,CAAA,uCAAA,EAA0C,kBAAA,CAAmB,KAAA,CAAM,SAAS,CAAC,CAAA,CAAA;AAAA,YAClF,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,OAAA,EAAQ,MAAA;AAAA,YACR,KAAA,EAAM,2FAAA;AAAA,YACN,eAAA,EAAe,IAAA;AAAA,YACf,cAAA,EAAe,iCAAA;AAAA,YACf,SAAA,EAAU;AAAA;AAAA,4BAGZA,cAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,KAAK,KAAA,CAAM,GAAA;AAAA,YACX,QAAQ,KAAA,CAAM,MAAA;AAAA,YACd,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,cAAY,KAAA,CAAM,KAAA;AAAA,YAClB,QAAA,EAAQ,IAAA;AAAA,YACR,OAAA,EAAQ,MAAA;AAAA,YACR,SAAA,EAAU,wBAAA;AAAA,YAEV,QAAA,kBAAAA,cAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,UAAA;AAAA,gBACL,GAAA,EAAK,MAAM,QAAA,CAAS,GAAA;AAAA,gBACpB,OAAA,EAAS,MAAM,QAAA,CAAS,OAAA;AAAA,gBACxB,KAAA,EAAO,MAAM,QAAA,CAAS,KAAA;AAAA,gBACtB,OAAA,EAAO;AAAA;AAAA;AACT;AAAA,SACF,EAEJ,CAAA;AAAA,QACC,2BACCA,cAAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,oBAAA;AAAA,cACT,cAAA;AAAA,cACA,eAAe,IAAI,CAAA;AAAA,cACnB,UAAU,QAAA,IAAY;AAAA,aACxB;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA;AACH,OAAA,EAEJ;AAAA;AAAA;AAGN;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;ACR3B,IAAM,QAAA,GAAW;AAAA,EACf,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,gBAAA;AAAA,EACP,QAAA,EAAU,kBAAA;AAAA,EACV,KAAA,EAAO,mBAAA;AAAA,EACP,OAAA,EAAS,mBAAA;AAAA,EACT,KAAA,EAAO,YAAA;AAAA,EACP,UAAA,EAAY,iBAAA;AAAA,EACZ,OAAA,EAAS,cAAA;AAAA,EACT,KAAA,EAAO,YAAA;AAAA,EACP,YAAA,EAAc,kBAAA;AAAA,EACd,SAAA,EAAW,oBAAA;AAAA,EACX,GAAA,EAAK,UAAA;AAAA,EACL,WAAA,EAAa,eAAA;AAAA,EACb,GAAA,EAAK;AACP,CAAA;AAGO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,GAAG,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AAAA,EACvB;AACF,CAAA;AAGA,IAAM,6BAAa,IAAI,GAAA,CAAsB,CAAC,UAAA,EAAY,SAAS,CAAC,CAAA;AAgB7D,IAAM,WAAA,GAAoB8B,gBAAA,CAAA,UAAA;AAAA,EAC/B,CAAC,EAAE,MAAA,EAAQ,KAAA,EAAO,YAAY,MAAA,EAAQ,OAAA,EAAS,GAAG,IAAA,EAAK,EAAG,GAAA,qBACxD/B,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAA,EAAU,cAAA,EAAgB,GAAG,MACzC,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,KAAM;AACxB,IAAA,MAAM,MAAM,KAAA,CAAM,EAAA,IAAM,GAAG,KAAA,CAAM,IAAI,IAAI,CAAC,CAAA,CAAA;AAG1C,IAAA,IAAI,KAAA,CAAM,SAAS,QAAA,EAAU;AAC3B,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,MAAA,EAAQ,KAAA,CAAM,SAAS,CAAA;AAClD,MAAA,OAAO,MAAA,mBACLA,cAAAA,CAAC,MAAA,EAAA,EAAiB,EAAA,EAAI,KAAA,CAAM,EAAA,EAAK,GAAG,KAAA,CAAM,KAAA,EAAA,EAA7B,GAAoC,CAAA,GAC/C,IAAA;AAAA,IACN;AACA,IAAA,MAAM,EAAE,IAAA,EAAM,GAAG,KAAA,EAAM,GAAI,KAAA;AAE3B,IAAA,MAAM,OAAA,GAAU,WAAA;AAAA,MACd,QAAA;AAAA,MACA;AAAA,KACF;AAMA,IAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAIrB,IAAA,MAAM,MAAA,GACJ,KAAA,CAAM,IAAA,KAAS,WAAA,GACV,WAAA,CAAY,OAAA,EAAS,KAAA,CAAM,MAAM,CAAA,IAAK,QAAA,CAAS,KAAA,CAAM,MAAM,CAAA,GAC5D,MAAA;AACN,IAAA,IAAI,KAAA,CAAM,IAAA,KAAS,WAAA,IAAe,MAAA,IAAU,MAAM,OAAO,IAAA;AACzD,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AACxB,IAAA,OAAO,IAAA,CAAK,QAAA;AACZ,IAAA,OAAO,IAAA,CAAK,uBAAA;AACZ,IAAA,uBACEA,cAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QAEE,GAAG,IAAA;AAAA,QACJ,UAAA;AAAA,QACC,GAAI,WAAW,GAAA,CAAI,IAAI,IAAI,EAAE,KAAA,KAAU,EAAC;AAAA,QACxC,GAAI,KAAA,CAAM,IAAA,KAAS,cAAc,EAAE,MAAA,KAAW;AAAC,OAAA;AAAA,MAJ3C;AAAA,KAKP;AAAA,EAEJ,CAAC,CAAA,EACH;AAEJ;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;;;ACtJnB,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAA,EAAgB;AAAA,IACd,KAAA,EAAO,yBAAA;AAAA,IACP,WAAA,EACE,sGAAA;AAAA,IACF,QAAA,EAAU;AAAA,MACR,MAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAA,EAAY,OAAO,KAAK;AAAA,GAC7C;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,0BAAA;AAAA,IACP,WAAA,EACE,sFAAA;AAAA,IACF,QAAA,EAAU;AAAA,MACR,MAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAA,EAAY,KAAK;AAAA,GACtC;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,wBAAA;AAAA,IACP,WAAA,EACE,kFAAA;AAAA,IACF,QAAA,EAAU;AAAA,MACR,MAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,QAAA,EAAU,CAAC,MAAA,EAAQ,WAAW;AAAA,GAChC;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,YAAA;AAAA,IACP,WAAA,EACE,oEAAA;AAAA,IACF,UAAU,CAAC,MAAA,EAAQ,cAAc,UAAA,EAAY,cAAA,EAAgB,OAAO,KAAK,CAAA;AAAA,IACzE,QAAA,EAAU,CAAC,MAAA,EAAQ,YAAA,EAAc,KAAK;AAAA,GACxC;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,wBAAA;AAAA,IACP,WAAA,EACE,kEAAA;AAAA,IACF,UAAU,CAAC,MAAA,EAAQ,OAAA,EAAS,WAAA,EAAa,aAAa,KAAK,CAAA;AAAA,IAC3D,QAAA,EAAU,CAAC,MAAA,EAAQ,WAAW;AAAA,GAChC;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,SAAA;AAAA,IACP,WAAA,EACE,+GAAA;AAAA,IACF,QAAA,EAAU;AAAA,MACR,MAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAA,EAAW,KAAK;AAAA;AAEvC;AAKA,IAAM,WAAA,uBAAkB,GAAA,CAAsB;AAAA,EAC5C,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAC,CAAA;AAcM,SAAS,mBAAA,CACd,QACA,MAAA,EACoB;AACpB,EAAA,MAAM,SAA6B,EAAC;AACpC,EAAA,MAAM,QAAQ,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AAEtC,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAY,iBAAiB,CAAA;AACpD,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAA,KAAU;AAC3B,IAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA;AACxB,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,OAAA;AAAA,QACV,KAAA;AAAA,QACA,OAAA,EAAS,CAAA,oBAAA,EAAuB,CAAA,CAAE,IAAI,CAAA,iCAAA;AAAA,OACvC,CAAA;AAEH,IAAA,IAAI,EAAE,IAAA,KAAS,WAAA,IAAe,QAAA,CAAS,CAAA,CAAE,MAAM,CAAA,IAAK,IAAA;AAClD,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,OAAA;AAAA,QACV,KAAA;AAAA,QACA,OAAA,EAAS,CAAA,yBAAA,EAA4B,CAAA,CAAE,MAAM,CAAA,iCAAA;AAAA,OAC9C,CAAA;AAAA,EACL,CAAC,CAAA;AAED,EAAA,MAAM,WAAW,MAAA,CAAO,OAAA;AAAA,IAAQ,CAAC,CAAA,EAAG,CAAA,KAClC,CAAA,CAAE,IAAA,KAAS,MAAA,IAAA,CAAW,CAAA,CAAE,YAAA,IAAgB,IAAA,MAAU,IAAA,GAAO,CAAC,CAAC,IAAI;AAAC,GAClE;AACA,EAAA,IAAI,SAAS,MAAA,GAAS,CAAA;AACpB,IAAA,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAE,OAAA;AAAA,MAAQ,CAAC,KAAA,KACzB,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,OAAA;AAAA,QACV,KAAA;AAAA,QACA,OAAA,EACE;AAAA,OACH;AAAA,KACH;AACF,EAAA,IAAI,SAAS,MAAA,KAAW,CAAA;AACtB,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,QAAA,EAAU,SAAA;AAAA,MACV,OAAA,EACE;AAAA,KACH,CAAA;AACH,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AACtC,EAAA,IAAI,SAAA,GAAY,CAAA;AACd,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,QAAA,EAAU,SAAA;AAAA,MACV,KAAA,EAAO,SAAA;AAAA,MACP,OAAA,EAAS;AAAA,KACV,CAAA;AACH,EAAA,IAAI,QAAA,CAAS,MAAA,GAAS,CAAA,IAAK,QAAA,CAAS,CAAC,CAAA,KAAM,SAAA;AACzC,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,QAAA,EAAU,SAAA;AAAA,MACV,KAAA,EAAO,SAAS,CAAC,CAAA;AAAA,MACjB,OAAA,EACE;AAAA,KACH,CAAA;AAEH,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAoB;AACrC,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAA,KAAU;AAE3B,IAAA,MAAM,GAAA,GAAM;AAAA,MACV,GAAI,CAAA,CAAE,EAAA,GAAK,CAAC,CAAA,CAAE,EAAE,IAAI,EAAC;AAAA,MACrB,GAAI,CAAA,CAAE,IAAA,KAAS,QACX,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAC,IAAA,KAAU,IAAA,CAAK,EAAA,GAAK,CAAC,IAAA,CAAK,EAAE,IAAI,EAAG,IACpD;AAAC,KACP;AACA,IAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,EAAA,KAAO;AAClB,MAAA,IAAI,IAAA,CAAK,IAAI,EAAE,CAAA;AACb,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,QAAA,EAAU,OAAA;AAAA,UACV,KAAA;AAAA,UACA,SAAS,CAAA,cAAA,EAAiB,EAAE,iBAAiB,IAAA,CAAK,GAAA,CAAI,EAAE,CAAC,CAAA,EAAA;AAAA,SAC1D,CAAA;AAAA,WACE,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,KAAK,CAAA;AAAA,IACzB,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAA,KAAU;AAE3B,IAAA,IAAI,WAAA,CAAY,IAAI,CAAA,CAAE,IAAI,KAAK,EAAE,OAAA,IAAW,KAAK,CAAA,CAAE,KAAA,CAAA;AACjD,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,SAAA;AAAA,QACV,KAAA;AAAA,QACA,OAAA,EAAS,CAAA,CAAA,EAAI,CAAA,CAAE,IAAI,CAAA,wDAAA;AAAA,OACpB,CAAA;AACH,IAAA,IAAI,CAAA,CAAE,SAAS,YAAA,EAAc;AAC7B,IAAA,CAAA,CAAE,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,EAAK,CAAA,KAAM;AACzB,MAAA,IAAI,GAAA,CAAI,MAAA,CAAO,MAAA,KAAW,CAAA,CAAE,OAAA,CAAQ,MAAA;AAClC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,QAAA,EAAU,OAAA;AAAA,UACV,KAAA;AAAA,UACA,OAAA,EAAS,CAAA,eAAA,EAAkB,CAAC,CAAA,GAAA,EAAM,GAAA,CAAI,OAAO,CAAA,OAAA,EAAU,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA,YAAA,EAAe,CAAA,CAAE,QAAQ,MAAM,CAAA,SAAA;AAAA,SACxG,CAAA;AAAA,IACL,CAAC,CAAA;AACD,IAAA,IACE,CAAA,CAAE,oBAAoB,MAAA,KACrB,CAAA,CAAE,kBAAkB,CAAA,IAAK,CAAA,CAAE,eAAA,IAAmB,CAAA,CAAE,OAAA,CAAQ,MAAA,CAAA;AAEzD,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,SAAA;AAAA,QACV,KAAA;AAAA,QACA,SAAS,CAAA,gBAAA,EAAmB,CAAA,CAAE,eAAe,CAAA,gBAAA,EAAmB,CAAA,CAAE,QAAQ,MAAM,CAAA,oBAAA;AAAA,OACjF,CAAA;AAAA,EACL,CAAC,CAAA;AAED,EAAA,IAAI,CAAC,QAAQ,OAAO,MAAA;AACpB,EAAA,MAAM,OACJ,OAAO,MAAA,KAAW,QAAA,GAAW,cAAA,CAAe,MAAM,CAAA,GAAI,MAAA;AAExD,EAAA,KAAA,MAAW,QAAQ,IAAA,CAAK,QAAA;AACtB,IAAA,IAAI,CAAC,KAAA,CAAM,QAAA,CAAS,IAAI,CAAA;AACtB,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,OAAA;AAAA,QACV,OAAA,EAAS,CAAA,kBAAA,EAAqB,IAAI,CAAA,gBAAA,EAAmB,KAAK,KAAK,CAAA,QAAA;AAAA,OAChE,CAAA;AAEL,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAA,KAAU;AAC3B,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,CAAS,OAAA,CAAQ,EAAE,IAAI,CAAA;AACzC,IAAA,IAAI,SAAS,EAAA,EAAI;AACjB,IAAA,IAAI,IAAA,GAAO,IAAA;AACT,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,QAAA,EAAU,SAAA;AAAA,QACV,KAAA;AAAA,QACA,SAAS,CAAA,CAAA,EAAI,CAAA,CAAE,IAAI,CAAA,gBAAA,EAAmB,KAAK,KAAK,CAAA,4BAAA;AAAA,OACjD,CAAA;AAAA,SACE,IAAA,GAAO,IAAA;AAAA,EACd,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT","file":"chunk-YIWJTNR5.cjs","sourcesContent":["/**\n * `map[key]` restricted to own properties. Runtime page/CMS data supplies the\n * key, and a plain bracket lookup would also reach inherited\n * `Object.prototype` members — `\"toString\"` or `\"constructor\"` must resolve to\n * \"unknown\", not to a built-in function React then tries to render or call.\n */\nexport function ownProperty<T>(\n map: Record<string, T> | undefined,\n key: string\n): T | undefined {\n return map != null && Object.hasOwn(map, key) ? map[key] : undefined;\n}\n","import type * as React from 'react';\nimport {\n Activity,\n Award,\n BadgeCheck,\n Bell,\n Briefcase,\n Building2,\n Calendar,\n CalendarCheck,\n ChartColumn,\n ChartLine,\n CircleCheck,\n ClipboardCheck,\n Clock,\n Cloud,\n Database,\n DollarSign,\n Factory,\n FileText,\n FlaskConical,\n Globe,\n GraduationCap,\n Handshake,\n HardHat,\n Headset,\n HeartPulse,\n Hospital,\n Layers,\n Leaf,\n Lightbulb,\n Lock,\n Mail,\n MapPin,\n MessageSquare,\n Microscope,\n Phone,\n Plane,\n Plug,\n Rocket,\n Scale,\n Search,\n Settings,\n Shield,\n ShieldCheck,\n Smartphone,\n Sparkles,\n Stethoscope,\n Syringe,\n Target,\n Timer,\n TrendingUp,\n Truck,\n UserCheck,\n Users,\n Workflow,\n Wrench,\n Zap,\n} from 'lucide-react';\nimport { cn } from '../utils/cn';\nimport { ownProperty } from '../utils/own';\n\nexport type TemplateIconComponent = React.ComponentType<{\n className?: string;\n strokeWidth?: number;\n 'aria-hidden'?: boolean | 'true' | 'false';\n}>;\n\n/** Extra icon tokens a site maps to its own components; merged over the built-ins. */\nexport type TemplateIconRegistry = Record<string, TemplateIconComponent>;\n\n/**\n * Built-in icon tokens. Page data names an icon by token (`\"shield-check\"`)\n * rather than holding a component, so it stays JSON-serializable.\n */\nexport const templateIcons = {\n activity: Activity,\n award: Award,\n 'badge-check': BadgeCheck,\n bell: Bell,\n briefcase: Briefcase,\n building: Building2,\n calendar: Calendar,\n 'calendar-check': CalendarCheck,\n 'chart-column': ChartColumn,\n 'chart-line': ChartLine,\n 'circle-check': CircleCheck,\n 'clipboard-check': ClipboardCheck,\n clock: Clock,\n cloud: Cloud,\n database: Database,\n 'dollar-sign': DollarSign,\n factory: Factory,\n 'file-text': FileText,\n flask: FlaskConical,\n globe: Globe,\n 'graduation-cap': GraduationCap,\n handshake: Handshake,\n 'hard-hat': HardHat,\n headset: Headset,\n 'heart-pulse': HeartPulse,\n hospital: Hospital,\n layers: Layers,\n leaf: Leaf,\n lightbulb: Lightbulb,\n lock: Lock,\n mail: Mail,\n 'map-pin': MapPin,\n 'message-square': MessageSquare,\n microscope: Microscope,\n phone: Phone,\n plane: Plane,\n plug: Plug,\n rocket: Rocket,\n scale: Scale,\n search: Search,\n settings: Settings,\n shield: Shield,\n 'shield-check': ShieldCheck,\n smartphone: Smartphone,\n sparkles: Sparkles,\n stethoscope: Stethoscope,\n syringe: Syringe,\n target: Target,\n timer: Timer,\n 'trending-up': TrendingUp,\n truck: Truck,\n 'user-check': UserCheck,\n users: Users,\n workflow: Workflow,\n wrench: Wrench,\n zap: Zap,\n} satisfies TemplateIconRegistry;\n\nexport type TemplateIconName = keyof typeof templateIcons;\n\nexport interface TemplateIconProps {\n /** A built-in token, a token from `icons`, or a lettermark of up to four characters. */\n name: string;\n icons?: TemplateIconRegistry;\n className?: string;\n}\n\nexport function TemplateIcon({ name, icons, className }: TemplateIconProps) {\n // Icon names are page/CMS data — own properties only, or \"toString\" would\n // resolve to a prototype method instead of the lettermark/null fallback.\n const Icon =\n ownProperty(icons, name) ??\n ownProperty(templateIcons as TemplateIconRegistry, name);\n if (Icon)\n return (\n <Icon\n aria-hidden=\"true\"\n strokeWidth={1.75}\n className={cn('size-5', className)}\n />\n );\n if (name.length <= 4)\n return (\n <span\n aria-hidden=\"true\"\n className={cn('text-xs font-bold tracking-wide', className)}\n >\n {name}\n </span>\n );\n return null;\n}\n","import * as React from 'react';\nimport { ArrowRight } from 'lucide-react';\nimport { buttonVariants } from '../components/Button/button-variants';\nimport { cn } from '../utils/cn';\nimport { TemplateIcon, type TemplateIconRegistry } from './icons';\nimport type {\n SectionAlign,\n SectionTone,\n TemplateComponents,\n TemplateImageProps,\n TemplateLink,\n TemplateLinkProps,\n} from './types';\n\nconst toneSurface: Record<SectionTone, string> = {\n default: 'bg-background text-foreground',\n muted: 'bg-muted text-foreground',\n brand: 'bg-primary-900 text-white',\n};\n\nexport const toneClass = (tone: SectionTone) => toneSurface[tone];\n\n/** Card surface that reads correctly on the given section tone. */\nexport const cardClass = (tone: SectionTone) =>\n tone === 'brand'\n ? 'border border-white/15 bg-white/5 text-white'\n : 'border border-border bg-card text-card-foreground';\n\n// muted-foreground on bg-muted drops below AA in dark mode, so the muted tone mixes foreground instead.\nexport const mutedTextClass = (tone: SectionTone) =>\n tone === 'brand'\n ? 'text-white/80'\n : tone === 'muted'\n ? 'text-foreground/80'\n : 'text-muted-foreground';\n\n// Explicit, because host sites often colour h1–h4 in a base layer that beats inheritance.\nexport const headingTextClass = (tone: SectionTone) =>\n tone === 'brand' ? 'text-white' : 'text-foreground';\n\n// 800 (light) is the shade Button's primary fill already guarantees against white.\nexport const accentTextClass = (tone: SectionTone) =>\n tone === 'brand' ? 'text-white' : 'text-primary-800 dark:text-primary-300';\n\nexport const containerClass = (width: 'wide' | 'narrow' = 'wide') =>\n cn(\n 'mx-auto w-full px-4 sm:px-6 lg:px-8',\n width === 'narrow' ? 'max-w-3xl' : 'max-w-7xl'\n );\n\nconst SAFE_HREF_SCHEME = /^(?:https?|mailto|tel):/i;\n\n/**\n * A URL from page data, or `undefined` if its scheme is not http(s), mailto or\n * tel. Content/CMS URLs are untrusted, and a `javascript:` href is script\n * execution — React and site Link adapters render it verbatim.\n */\nexport function safeHref(href: string | undefined): string | undefined {\n if (href == null) return undefined;\n // Browsers drop tab/newline and leading controls when parsing, so\n // `java\\tscript:` still runs — match the scheme on the stripped value.\n // eslint-disable-next-line no-control-regex\n const stripped = href.replace(/[\\u0000-\\u0020]/g, '');\n // Blank means \"current document URL\" as a form action — not a real target.\n if (!stripped) return undefined;\n if (!/^[a-z][a-z0-9+.-]*:/i.test(stripped)) return href; // relative, hash, query, //\n return SAFE_HREF_SCHEME.test(stripped) ? href : undefined;\n}\n\n/** An anchor, or the site's `components.Link`, with `trackingId` as `data-track`. */\nexport function TemplateAnchor({\n components,\n trackingId,\n children,\n ...props\n}: TemplateLinkProps & {\n components?: TemplateComponents;\n trackingId?: string;\n}) {\n const Link = components?.Link;\n const href = safeHref(props.href);\n const all = { ...props, href, 'data-track': trackingId };\n // Adapters require an href (Next's Link throws), so a dropped one falls back\n // to an inert plain anchor.\n return Link && href != null ? (\n <Link {...all} href={href}>\n {children}\n </Link>\n ) : (\n <a {...all}>{children}</a>\n );\n}\n\n// React 18 only passes the lowercase attribute through; React 19 wants camelCase.\nconst fetchPriorityHigh = (\n React.version.startsWith('18.')\n ? { fetchpriority: 'high' }\n : { fetchPriority: 'high' }\n) as React.ImgHTMLAttributes<HTMLImageElement>;\n\n/** An `<img>`, or the site's `components.Image`. */\nexport function TemplateImg({\n components,\n priority,\n ...image\n}: TemplateImageProps & { components?: TemplateComponents }) {\n const Image = components?.Image;\n if (Image) return <Image {...image} priority={priority} />;\n return (\n <img\n {...image}\n alt={image.alt}\n loading={priority ? undefined : 'lazy'}\n {...(priority ? fetchPriorityHigh : {})}\n decoding=\"async\"\n />\n );\n}\n\nexport interface SectionHeadingProps {\n eyebrow?: string;\n title?: string;\n description?: string;\n /** Heading element. Sections use `h2`; only a page's hero is `h1`. */\n as?: 'h1' | 'h2' | 'h3';\n size?: 'section' | 'hero';\n align?: SectionAlign;\n tone?: SectionTone;\n titleId?: string;\n className?: string;\n}\n\n/** Eyebrow, heading and supporting text — the opener every landing section shares. */\nexport function SectionHeading({\n eyebrow,\n title,\n description,\n as: Heading = 'h2',\n size = 'section',\n align = 'start',\n tone = 'default',\n titleId,\n className,\n}: SectionHeadingProps) {\n if (!eyebrow && !title && !description) return null;\n return (\n <div\n data-slot=\"section-heading\"\n className={cn(\n 'max-w-3xl',\n align === 'center' && 'mx-auto text-center',\n className\n )}\n >\n {eyebrow && (\n <p\n className={cn(\n 'mb-3 text-sm font-semibold tracking-wider uppercase',\n accentTextClass(tone)\n )}\n >\n {eyebrow}\n </p>\n )}\n {title && (\n <Heading\n id={titleId}\n className={cn(\n 'font-bold tracking-tight text-balance',\n headingTextClass(tone),\n size === 'hero'\n ? 'text-4xl sm:text-5xl lg:text-6xl'\n : 'text-3xl sm:text-4xl'\n )}\n >\n {title}\n </Heading>\n )}\n {description && (\n <p\n className={cn(\n 'mt-4 text-pretty',\n size === 'hero' ? 'text-lg sm:text-xl' : 'text-lg',\n mutedTextClass(tone)\n )}\n >\n {description}\n </p>\n )}\n </div>\n );\n}\n\nexport interface SectionShellProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n 'title'\n> {\n eyebrow?: string;\n title?: string;\n description?: string;\n tone?: SectionTone;\n align?: SectionAlign;\n width?: 'wide' | 'narrow';\n spacing?: 'default' | 'compact';\n /** Accepted so sections can forward their props; the shell renders no links or images. */\n components?: TemplateComponents;\n}\n\n/**\n * The `<section>` + container + heading frame every landing section renders.\n * Exported so a site can build its own section that sits flush with the rest.\n */\nexport const SectionShell = React.forwardRef<HTMLElement, SectionShellProps>(\n (\n {\n eyebrow,\n title,\n description,\n tone = 'default',\n align = 'start',\n width = 'wide',\n spacing = 'default',\n className,\n children,\n components,\n ...rest\n },\n ref\n ) => {\n void components; // kept off the DOM\n const titleId = React.useId();\n return (\n <section\n ref={ref}\n data-slot=\"landing-section\"\n data-tone={tone}\n aria-labelledby={title ? titleId : undefined}\n className={cn(\n spacing === 'compact' ? 'py-10 sm:py-14' : 'py-16 sm:py-24',\n toneClass(tone),\n className\n )}\n {...rest}\n >\n <div className={containerClass(width)}>\n <SectionHeading\n eyebrow={eyebrow}\n title={title}\n description={description}\n align={align}\n tone={tone}\n titleId={titleId}\n className={cn(width === 'narrow' && 'max-w-none')}\n />\n {children}\n </div>\n </section>\n );\n }\n);\nSectionShell.displayName = 'SectionShell';\n\nexport interface CtaLinksProps {\n primary?: TemplateLink;\n secondary?: TemplateLink;\n tone?: SectionTone;\n align?: SectionAlign;\n className?: string;\n components?: TemplateComponents;\n}\n\n/** Primary + secondary calls to action as button-styled anchors. */\nexport function CtaLinks({\n primary,\n secondary,\n tone = 'default',\n align = 'start',\n className,\n components,\n}: CtaLinksProps) {\n if (!primary && !secondary) return null;\n const onBrand = tone === 'brand';\n // Long or translated labels must wrap rather than overflow on phones.\n const wrap = 'h-auto min-h-12 py-3 whitespace-normal text-center';\n return (\n <div\n data-slot=\"cta-links\"\n className={cn(\n 'flex flex-col gap-3 sm:flex-row sm:flex-wrap',\n align === 'center' && 'sm:justify-center',\n className\n )}\n >\n {primary && (\n <TemplateAnchor\n href={primary.href}\n trackingId={primary.trackingId}\n components={components}\n data-slot=\"cta-primary\"\n className={cn(\n buttonVariants({ variant: 'primary', size: 'lg' }),\n wrap,\n onBrand &&\n 'text-primary-900 hover:bg-primary-50 active:bg-primary-100 bg-white'\n )}\n >\n {primary.label}\n <ArrowRight aria-hidden=\"true\" className=\"size-5 rtl:-scale-x-100\" />\n </TemplateAnchor>\n )}\n {secondary && (\n <TemplateAnchor\n href={secondary.href}\n trackingId={secondary.trackingId}\n components={components}\n data-slot=\"cta-secondary\"\n className={cn(\n buttonVariants({ variant: 'outline', size: 'lg' }),\n wrap,\n onBrand &&\n 'border-white/70 text-white hover:bg-white/10 hover:text-white dark:border-white/70 dark:text-white dark:hover:bg-white/10'\n )}\n >\n {secondary.label}\n </TemplateAnchor>\n )}\n </div>\n );\n}\n\nexport interface IconTileProps {\n name: string;\n icons?: TemplateIconRegistry;\n tone?: SectionTone;\n className?: string;\n}\n\nexport function IconTile({\n name,\n icons,\n tone = 'default',\n className,\n}: IconTileProps) {\n return (\n <span\n data-slot=\"icon-tile\"\n className={cn(\n 'inline-flex size-11 shrink-0 items-center justify-center rounded-xl',\n tone === 'brand'\n ? 'bg-white/10 text-white'\n : 'bg-primary-100 text-primary-900 dark:bg-primary-900/60 dark:text-primary-200',\n className\n )}\n >\n <TemplateIcon name={name} icons={icons} />\n </span>\n );\n}\n","import * as React from 'react';\nimport { Check, X } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n cardClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport type { SectionBaseProps } from '../../templates/types';\n\nexport interface ComparisonRow {\n feature: string;\n /** One value per column: `true`/`false` render as included/not included, strings render as text. */\n values: (boolean | string)[];\n}\n\nexport interface ComparisonSectionLabels {\n /** Header of the first column. */\n feature?: string;\n /** Screen-reader text for a `true` cell. */\n included?: string;\n /** Screen-reader text for a `false` cell. */\n notIncluded?: string;\n}\n\nexport interface ComparisonSectionProps extends SectionBaseProps {\n /** Value column headers, e.g. `[\"Without BlueHive\", \"With BlueHive\"]`. */\n columns: string[];\n rows: ComparisonRow[];\n /** Index into `columns` to emphasise — usually your product. */\n highlightColumn?: number;\n labels?: ComparisonSectionLabels;\n}\n\nconst cellClass = 'px-3 py-3 sm:px-5 sm:py-4';\n\nexport const ComparisonSection = React.forwardRef<\n HTMLElement,\n ComparisonSectionProps\n>(\n (\n {\n columns,\n rows,\n highlightColumn,\n labels,\n title,\n tone = 'default',\n align = 'center',\n ...rest\n },\n ref\n ) => {\n const renderValue = (value: boolean | string) =>\n typeof value === 'string' ? (\n value\n ) : value ? (\n <>\n <Check\n aria-hidden=\"true\"\n className=\"text-success mx-auto size-5\"\n strokeWidth={2.5}\n />\n <span className=\"sr-only\">{labels?.included ?? 'Included'}</span>\n </>\n ) : (\n <>\n <X\n aria-hidden=\"true\"\n className={cn('mx-auto size-5', mutedTextClass(tone))}\n />\n <span className=\"sr-only\">\n {labels?.notIncluded ?? 'Not included'}\n </span>\n </>\n );\n return (\n <SectionShell\n ref={ref}\n data-slot=\"comparison-section\"\n title={title}\n tone={tone}\n align={align}\n {...rest}\n >\n <div\n className={cn('mt-12 overflow-x-auto rounded-2xl', cardClass(tone))}\n >\n <table\n className={cn(\n 'w-full border-collapse text-start',\n // Two value columns fit a phone; more scroll sideways.\n columns.length > 2 && 'min-w-[36rem]'\n )}\n >\n {title && <caption className=\"sr-only\">{title}</caption>}\n <thead>\n <tr>\n <th\n scope=\"col\"\n className={cn(cellClass, 'text-start text-sm font-semibold')}\n >\n {labels?.feature ?? 'Feature'}\n </th>\n {columns.map((column, i) => (\n <th\n key={column}\n scope=\"col\"\n className={cn(\n cellClass,\n 'text-center text-sm font-semibold',\n i === highlightColumn && 'bg-primary-800 text-white'\n )}\n >\n {column}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row) => (\n <tr\n key={row.feature}\n className={cn(\n 'border-t',\n tone === 'brand' ? 'border-white/15' : 'border-border'\n )}\n >\n <th\n scope=\"row\"\n className={cn(cellClass, 'text-start font-medium')}\n >\n {row.feature}\n </th>\n {/* One cell per column, so a short or long `values` array can't skew the table. */}\n {columns.map((column, i) => (\n <td\n key={column}\n className={cn(\n cellClass,\n 'text-center text-sm',\n i === highlightColumn &&\n 'bg-primary-500/10 font-semibold'\n )}\n >\n {renderValue(row.values[i] ?? '')}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </SectionShell>\n );\n }\n);\nComparisonSection.displayName = 'ComparisonSection';\n","import * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport {\n CtaLinks,\n SectionHeading,\n containerClass,\n mutedTextClass,\n toneClass,\n} from '../../templates/Section';\nimport type { SectionBaseProps, TemplateLink } from '../../templates/types';\n\nexport interface CtaSectionProps extends SectionBaseProps {\n title: string;\n primaryCta?: TemplateLink;\n secondaryCta?: TemplateLink;\n /** Small print under the buttons (\"Setup takes about 10 minutes\"). */\n note?: string;\n /** `band` fills the section with `tone`; `panel` floats a rounded card of `tone` on the page background. */\n layout?: 'band' | 'panel';\n}\n\nexport const CtaSection = React.forwardRef<HTMLElement, CtaSectionProps>(\n (\n {\n eyebrow,\n title,\n description,\n primaryCta,\n secondaryCta,\n note,\n tone = 'brand',\n align = 'center',\n layout = 'band',\n components,\n className,\n ...rest\n },\n ref\n ) => {\n const titleId = React.useId();\n const body = (\n <>\n <SectionHeading\n eyebrow={eyebrow}\n title={title}\n description={description}\n align={align}\n tone={tone}\n titleId={titleId}\n />\n <CtaLinks\n primary={primaryCta}\n secondary={secondaryCta}\n tone={tone}\n align={align}\n components={components}\n className=\"mt-8\"\n />\n {note && (\n <p\n className={cn(\n 'mt-4 text-sm',\n mutedTextClass(tone),\n align === 'center' && 'text-center'\n )}\n >\n {note}\n </p>\n )}\n </>\n );\n return (\n <section\n ref={ref}\n data-slot=\"cta-section\"\n data-tone={tone}\n aria-labelledby={titleId}\n className={cn(\n 'py-16 sm:py-24',\n layout === 'band' ? toneClass(tone) : 'bg-background',\n className\n )}\n {...rest}\n >\n <div className={containerClass()}>\n {layout === 'panel' ? (\n <div\n className={cn(\n 'rounded-3xl px-6 py-12 sm:px-12 sm:py-16',\n toneClass(tone),\n tone !== 'brand' && 'border-border border'\n )}\n >\n {body}\n </div>\n ) : (\n body\n )}\n </div>\n </section>\n );\n }\n);\nCtaSection.displayName = 'CtaSection';\n","import * as React from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n cardClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport type { SectionBaseProps } from '../../templates/types';\n\nexport interface FaqItem {\n question: string;\n /** Plain text; line breaks are preserved. */\n answer: string;\n /** Anchor id so a link can open straight to this answer. */\n id?: string;\n}\n\nexport interface FaqSectionProps extends SectionBaseProps {\n items: FaqItem[];\n}\n\nexport const FaqSection = React.forwardRef<HTMLElement, FaqSectionProps>(\n ({ items, tone = 'default', align = 'center', ...rest }, ref) => (\n <SectionShell\n ref={ref}\n data-slot=\"faq-section\"\n tone={tone}\n align={align}\n width=\"narrow\"\n {...rest}\n >\n <div className=\"mt-10 space-y-3\">\n {items.map((item) => (\n <details\n key={item.id ?? item.question}\n id={item.id}\n className={cn('group rounded-xl', cardClass(tone))}\n >\n <summary\n className={cn(\n 'flex cursor-pointer list-none items-center justify-between gap-4 rounded-xl px-5 py-4 text-start font-semibold',\n 'focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none',\n '[&::-webkit-details-marker]:hidden'\n )}\n >\n {item.question}\n <ChevronDown\n aria-hidden=\"true\"\n className=\"size-5 shrink-0 transition-transform group-open:rotate-180 motion-reduce:transition-none\"\n />\n </summary>\n <div\n className={cn(\n 'px-5 pb-5 whitespace-pre-line',\n mutedTextClass(tone)\n )}\n >\n {item.answer}\n </div>\n </details>\n ))}\n </div>\n </SectionShell>\n )\n);\nFaqSection.displayName = 'FaqSection';\n","import * as React from 'react';\nimport { ArrowRight } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n IconTile,\n SectionShell,\n TemplateAnchor,\n accentTextClass,\n cardClass,\n headingTextClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport type { TemplateIconRegistry } from '../../templates/icons';\nimport type { SectionBaseProps, TemplateLink } from '../../templates/types';\n\nexport interface FeatureItem {\n title: string;\n description: string;\n /** Icon token (see `templateIcons`) or a lettermark such as `\"EHR\"`. */\n icon?: string;\n /** Small label above the title. */\n tag?: string;\n link?: TemplateLink;\n}\n\nexport interface FeatureGridSectionProps extends SectionBaseProps {\n features: FeatureItem[];\n columns?: 2 | 3 | 4;\n /** `cards` frames each item; `plain` sets them straight on the section. */\n variant?: 'cards' | 'plain';\n icons?: TemplateIconRegistry;\n}\n\nconst columnClass = {\n 2: 'lg:grid-cols-2',\n 3: 'lg:grid-cols-3',\n 4: 'lg:grid-cols-4',\n} as const;\n\nexport const FeatureGridSection = React.forwardRef<\n HTMLElement,\n FeatureGridSectionProps\n>(\n (\n {\n features,\n columns = 3,\n variant = 'cards',\n icons,\n tone = 'default',\n align = 'start',\n components,\n ...rest\n },\n ref\n ) => (\n <SectionShell\n ref={ref}\n data-slot=\"feature-grid-section\"\n tone={tone}\n align={align}\n {...rest}\n >\n <ul\n className={cn('mt-12 grid gap-6 sm:grid-cols-2', columnClass[columns])}\n >\n {features.map((feature) => (\n <li\n key={feature.title}\n className={cn(\n 'flex flex-col gap-3',\n variant === 'cards' && cn('rounded-2xl p-6', cardClass(tone))\n )}\n >\n {feature.icon && (\n <IconTile name={feature.icon} icons={icons} tone={tone} />\n )}\n {feature.tag && (\n <p\n className={cn(\n 'text-xs font-semibold tracking-wider uppercase',\n accentTextClass(tone)\n )}\n >\n {feature.tag}\n </p>\n )}\n <h3 className={cn('text-lg font-semibold', headingTextClass(tone))}>\n {feature.title}\n </h3>\n <p className={mutedTextClass(tone)}>{feature.description}</p>\n {feature.link && (\n <TemplateAnchor\n href={feature.link.href}\n trackingId={feature.link.trackingId}\n components={components}\n className={cn(\n 'mt-auto inline-flex items-center gap-1 font-semibold hover:underline',\n accentTextClass(tone)\n )}\n >\n {feature.link.label}\n <ArrowRight\n aria-hidden=\"true\"\n className=\"size-4 rtl:-scale-x-100\"\n />\n </TemplateAnchor>\n )}\n </li>\n ))}\n </ul>\n </SectionShell>\n )\n);\nFeatureGridSection.displayName = 'FeatureGridSection';\n","import * as React from 'react';\nimport { ChevronRight, CircleCheck } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n CtaLinks,\n SectionHeading,\n TemplateAnchor,\n TemplateImg,\n accentTextClass,\n containerClass,\n mutedTextClass,\n toneClass,\n} from '../../templates/Section';\nimport type {\n SectionBaseProps,\n TemplateImage,\n TemplateLink,\n} from '../../templates/types';\n\nexport interface HeroSectionLabels {\n /** Accessible name of the breadcrumb `<nav>`. */\n breadcrumb?: string;\n}\n\nexport interface HeroSectionProps extends Omit<SectionBaseProps, 'align'> {\n title: string;\n /** `split` puts copy beside `image`; `centered` stacks everything. */\n variant?: 'centered' | 'split';\n primaryCta?: TemplateLink;\n secondaryCta?: TemplateLink;\n /** Reassurance line under the calls to action (\"No credit card required\"). */\n ctaNote?: string;\n /** Short trust points rendered as a checked list. */\n highlights?: string[];\n image?: TemplateImage;\n /** Trail ending in the current page, which renders unlinked. */\n breadcrumbs?: TemplateLink[];\n /** A page has one `h1`; set `h2` when the page already renders its own. */\n headingLevel?: 'h1' | 'h2';\n labels?: HeroSectionLabels;\n}\n\nexport const HeroSection = React.forwardRef<HTMLElement, HeroSectionProps>(\n (\n {\n eyebrow,\n title,\n description,\n variant = 'centered',\n tone = 'default',\n primaryCta,\n secondaryCta,\n ctaNote,\n highlights,\n image,\n breadcrumbs,\n headingLevel = 'h1',\n labels,\n components,\n className,\n ...rest\n },\n ref\n ) => {\n const titleId = React.useId();\n const split = variant === 'split' && !!image;\n const align = split ? 'start' : 'center';\n return (\n <section\n ref={ref}\n data-slot=\"hero-section\"\n data-tone={tone}\n aria-labelledby={titleId}\n className={cn('py-16 sm:py-24 lg:py-28', toneClass(tone), className)}\n {...rest}\n >\n <div\n className={cn(\n containerClass(),\n split && 'grid items-center gap-12 lg:grid-cols-2'\n )}\n >\n <div className={cn(!split && 'flex flex-col items-center')}>\n {breadcrumbs && breadcrumbs.length > 0 && (\n <nav\n aria-label={labels?.breadcrumb ?? 'Breadcrumb'}\n className=\"mb-6\"\n >\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1 text-sm',\n mutedTextClass(tone),\n !split && 'justify-center'\n )}\n >\n {breadcrumbs.map((crumb, i) => {\n const last = i === breadcrumbs.length - 1;\n return (\n <li key={crumb.href} className=\"flex items-center gap-1\">\n {last ? (\n <span aria-current=\"page\">{crumb.label}</span>\n ) : (\n <>\n <TemplateAnchor\n href={crumb.href}\n trackingId={crumb.trackingId}\n components={components}\n className=\"hover:underline focus-visible:underline\"\n >\n {crumb.label}\n </TemplateAnchor>\n <ChevronRight\n aria-hidden=\"true\"\n className=\"size-4 rtl:-scale-x-100\"\n />\n </>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n )}\n <SectionHeading\n as={headingLevel}\n size=\"hero\"\n eyebrow={eyebrow}\n title={title}\n description={description}\n align={align}\n tone={tone}\n titleId={titleId}\n />\n <CtaLinks\n primary={primaryCta}\n secondary={secondaryCta}\n tone={tone}\n align={align}\n components={components}\n className=\"mt-8\"\n />\n {ctaNote && (\n <p className={cn('mt-4 text-sm', mutedTextClass(tone))}>\n {ctaNote}\n </p>\n )}\n {highlights && highlights.length > 0 && (\n <ul\n className={cn(\n 'mt-8 flex flex-wrap gap-x-6 gap-y-2 text-sm font-medium',\n !split && 'justify-center'\n )}\n >\n {highlights.map((item) => (\n <li key={item} className=\"flex items-center gap-2\">\n <CircleCheck\n aria-hidden=\"true\"\n className={cn('size-4 shrink-0', accentTextClass(tone))}\n />\n {item}\n </li>\n ))}\n </ul>\n )}\n </div>\n {image && (\n <TemplateImg\n {...image}\n priority\n components={components}\n className={cn(\n 'h-auto w-full rounded-2xl object-cover shadow-xl',\n !split && 'mx-auto mt-12 max-w-5xl'\n )}\n />\n )}\n </div>\n </section>\n );\n }\n);\nHeroSection.displayName = 'HeroSection';\n","import * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { buttonVariants } from '../Button/button-variants';\nimport { RequiredMark, inputVariants } from '../Input';\nimport {\n SectionHeading,\n cardClass,\n containerClass,\n mutedTextClass,\n safeHref,\n toneClass,\n} from '../../templates/Section';\nimport type { SectionBaseProps } from '../../templates/types';\n\nexport interface LeadFormField {\n name: string;\n label: string;\n type?: 'text' | 'email' | 'tel' | 'textarea' | 'select';\n required?: boolean;\n autoComplete?: string;\n placeholder?: string;\n /** Choices for `type: 'select'`. */\n options?: string[];\n /** `half` pairs two fields on one row from the `sm` breakpoint. */\n width?: 'full' | 'half';\n}\n\nexport interface LeadFormSectionProps extends Omit<\n SectionBaseProps,\n 'align' | 'onSubmit'\n> {\n title: string;\n /**\n * A URL, or a React form action such as a Next.js Server Action. A URL is\n * page data: if its scheme is not http(s), mailto or tel the section\n * renders nothing, so an executable action never reaches the form.\n */\n action: string | ((formData: FormData) => void | Promise<void>);\n /** Only used with a URL `action`. */\n method?: 'post' | 'get';\n fields?: LeadFormField[];\n /** Posted with the form, e.g. `{ source: 'industry-construction' }`. */\n hiddenFields?: Record<string, string>;\n submitLabel?: string;\n /** Privacy or consent line under the button. */\n note?: string;\n /** Rendered as `data-track` on the submit button. */\n submitTrackingId?: string;\n /** `split` puts the heading beside the form; `stacked` centres it above. */\n layout?: 'split' | 'stacked';\n}\n\nexport const defaultLeadFormFields: LeadFormField[] = [\n {\n name: 'firstName',\n label: 'First name',\n required: true,\n autoComplete: 'given-name',\n width: 'half',\n },\n {\n name: 'lastName',\n label: 'Last name',\n required: true,\n autoComplete: 'family-name',\n width: 'half',\n },\n {\n name: 'email',\n label: 'Work email',\n type: 'email',\n required: true,\n autoComplete: 'email',\n },\n {\n name: 'company',\n label: 'Company',\n required: true,\n autoComplete: 'organization',\n },\n];\n\nconst controlClass = cn(\n // Input's field styling (single source of truth for form controls); h-auto\n // and py-2.5 because this one class also sizes <textarea> and <select>.\n inputVariants({ size: 'md' }),\n 'block h-auto py-2.5'\n);\n\nexport const LeadFormSection = React.forwardRef<\n HTMLElement,\n LeadFormSectionProps\n>(\n (\n {\n eyebrow,\n title,\n description,\n action,\n method = 'post',\n fields = defaultLeadFormFields,\n hiddenFields,\n submitLabel = 'Submit',\n note,\n layout = 'split',\n tone = 'muted',\n submitTrackingId,\n components,\n className,\n ...rest\n },\n ref\n ) => {\n void components; // the form renders no links or images\n const baseId = React.useId();\n const titleId = `${baseId}-title`;\n const split = layout === 'split';\n // Same trust boundary as TemplateAnchor hrefs — and after the hooks, so\n // the hook count stays stable if `action` changes.\n const resolvedAction =\n typeof action === 'string' ? safeHref(action) : action;\n if (resolvedAction == null) return null;\n return (\n <section\n ref={ref}\n data-slot=\"lead-form-section\"\n data-tone={tone}\n aria-labelledby={titleId}\n className={cn('py-16 sm:py-24', toneClass(tone), className)}\n {...rest}\n >\n <div\n className={cn(\n containerClass(split ? 'wide' : 'narrow'),\n split && 'grid items-start gap-12 lg:grid-cols-2'\n )}\n >\n <SectionHeading\n eyebrow={eyebrow}\n title={title}\n description={description}\n align={split ? 'start' : 'center'}\n tone={tone}\n titleId={titleId}\n />\n <form\n action={resolvedAction}\n method={typeof resolvedAction === 'string' ? method : undefined}\n aria-labelledby={titleId}\n className={cn(\n 'grid gap-5 rounded-2xl p-6 sm:grid-cols-2 sm:p-8',\n // The form card always uses the theme surface so inputs stay legible on a brand band.\n cardClass('default'),\n !split && 'mt-10'\n )}\n >\n {hiddenFields &&\n Object.entries(hiddenFields).map(([name, value]) => (\n <input key={name} type=\"hidden\" name={name} value={value} />\n ))}\n {fields.map((field) => {\n const id = `${baseId}-${field.name}`;\n const common = {\n id,\n name: field.name,\n required: field.required,\n autoComplete: field.autoComplete,\n className: controlClass,\n };\n return (\n <div\n key={field.name}\n className={cn(field.width !== 'half' && 'sm:col-span-2')}\n >\n <label\n htmlFor={id}\n className=\"mb-1.5 block text-sm font-medium\"\n >\n {field.label}\n {field.required && <RequiredMark />}\n </label>\n {field.type === 'textarea' ? (\n <textarea\n {...common}\n rows={4}\n placeholder={field.placeholder}\n />\n ) : field.type === 'select' ? (\n <select {...common} defaultValue=\"\">\n <option value=\"\" disabled>\n {field.placeholder ?? ''}\n </option>\n {field.options?.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n ) : (\n <input\n {...common}\n type={field.type ?? 'text'}\n placeholder={field.placeholder}\n />\n )}\n </div>\n );\n })}\n <div className=\"sm:col-span-2\">\n <button\n type=\"submit\"\n data-track={submitTrackingId}\n className={cn(\n buttonVariants({\n variant: 'primary',\n size: 'lg',\n fullWidth: true,\n }),\n 'h-auto min-h-12 py-3 whitespace-normal'\n )}\n >\n {submitLabel}\n </button>\n {note && (\n <p className={cn('mt-3 text-xs', mutedTextClass('default'))}>\n {note}\n </p>\n )}\n </div>\n </form>\n </div>\n </section>\n );\n }\n);\nLeadFormSection.displayName = 'LeadFormSection';\n","import * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n TemplateAnchor,\n mutedTextClass,\n} from '../../templates/Section';\nimport type {\n SectionBaseProps,\n TemplateComponents,\n} from '../../templates/types';\n\nexport interface LogoItem {\n name: string;\n /** Logo image; without it the name renders as a wordmark. */\n src?: string;\n href?: string;\n trackingId?: string;\n}\n\nexport interface LogoCloudSectionProps extends SectionBaseProps {\n logos: LogoItem[];\n /** `marquee` loops the row horizontally; it holds still under reduced motion. */\n variant?: 'grid' | 'marquee';\n speed?: 'slow' | 'normal' | 'fast';\n}\n\nconst duration = { slow: '60s', normal: '40s', fast: '25s' } as const;\n\nfunction Logo({\n logo,\n tone,\n hidden,\n components,\n}: {\n logo: LogoItem;\n tone: LogoCloudSectionProps['tone'];\n hidden?: boolean;\n components?: TemplateComponents;\n}) {\n // Plain <img>: logos have no intrinsic size to hand an image optimizer.\n const mark = logo.src ? (\n <img\n src={logo.src}\n alt={hidden ? '' : logo.name}\n loading=\"lazy\"\n decoding=\"async\"\n className={cn(\n 'h-8 w-auto max-w-[9rem] object-contain opacity-70 grayscale transition hover:opacity-100 hover:grayscale-0',\n // Logos are drawn white on dark surfaces so dark wordmarks stay visible.\n tone === 'brand'\n ? 'brightness-0 invert'\n : 'dark:brightness-0 dark:invert'\n )}\n />\n ) : (\n <span\n className={cn(\n 'text-lg font-semibold whitespace-nowrap',\n mutedTextClass(tone ?? 'default')\n )}\n >\n {logo.name}\n </span>\n );\n return logo.href ? (\n <TemplateAnchor\n href={logo.href}\n trackingId={logo.trackingId}\n components={components}\n tabIndex={hidden ? -1 : undefined}\n className=\"focus-visible:ring-ring inline-flex rounded focus-visible:ring-2 focus-visible:outline-none\"\n >\n {mark}\n </TemplateAnchor>\n ) : (\n mark\n );\n}\n\nexport const LogoCloudSection = React.forwardRef<\n HTMLElement,\n LogoCloudSectionProps\n>(\n (\n {\n logos,\n variant = 'grid',\n speed = 'normal',\n tone = 'default',\n align = 'center',\n components,\n ...rest\n },\n ref\n ) => (\n <SectionShell\n ref={ref}\n data-slot=\"logo-cloud-section\"\n tone={tone}\n align={align}\n spacing=\"compact\"\n {...rest}\n >\n {variant === 'marquee' ? (\n <div\n className=\"mie-marquee-host mt-8 overflow-hidden [mask-image:linear-gradient(90deg,transparent,black_10%,black_90%,transparent)]\"\n style={\n { '--mie-marquee-duration': duration[speed] } as React.CSSProperties\n }\n >\n <ul className=\"mie-marquee flex w-max items-center\">\n {logos.map((logo) => (\n <li key={logo.name} className=\"shrink-0 pe-12\">\n <Logo logo={logo} tone={tone} components={components} />\n </li>\n ))}\n {/* Second copy completes the loop; hidden from assistive tech. */}\n {logos.map((logo) => (\n <li\n key={`${logo.name}-copy`}\n data-duplicate=\"\"\n aria-hidden=\"true\"\n className=\"shrink-0 pe-12\"\n >\n <Logo logo={logo} tone={tone} components={components} hidden />\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <ul className=\"mt-8 flex flex-wrap items-center justify-center gap-x-12 gap-y-8\">\n {logos.map((logo) => (\n <li key={logo.name}>\n <Logo logo={logo} tone={tone} components={components} />\n </li>\n ))}\n </ul>\n )}\n </SectionShell>\n )\n);\nLogoCloudSection.displayName = 'LogoCloudSection';\n","import * as React from 'react';\nimport { Check } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Badge } from '../Badge';\nimport {\n SectionShell,\n TemplateAnchor,\n accentTextClass,\n cardClass,\n headingTextClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport { buttonVariants } from '../Button/button-variants';\nimport type { SectionBaseProps, TemplateLink } from '../../templates/types';\n\nexport interface PricingPlan {\n name: string;\n /** Display price as written, e.g. \"$49\", \"Custom\" or \"Free\". */\n price: string;\n /** Billing unit after the price, e.g. \"per employee / month\". */\n period?: string;\n description?: string;\n features: string[];\n cta?: TemplateLink;\n /** Emphasise this plan and show `badge`. */\n highlighted?: boolean;\n badge?: string;\n}\n\nexport interface PricingSectionProps extends SectionBaseProps {\n plans: PricingPlan[];\n /** Small print under the plans (taxes, contract terms). */\n note?: string;\n}\n\nconst columnClass = [\n '',\n 'lg:grid-cols-1',\n 'lg:grid-cols-2',\n 'lg:grid-cols-3',\n 'lg:grid-cols-4',\n] as const;\n\nexport const PricingSection = React.forwardRef<\n HTMLElement,\n PricingSectionProps\n>(\n (\n { plans, note, tone = 'default', align = 'center', components, ...rest },\n ref\n ) => (\n <SectionShell\n ref={ref}\n data-slot=\"pricing-section\"\n tone={tone}\n align={align}\n {...rest}\n >\n <ul\n className={cn(\n 'mt-12 grid items-stretch gap-6 md:grid-cols-2',\n columnClass[Math.min(plans.length, 4)],\n plans.length === 1 && 'mx-auto max-w-md'\n )}\n >\n {plans.map((plan) => (\n <li\n key={plan.name}\n className={cn(\n 'relative flex flex-col rounded-2xl p-6 sm:p-8',\n cardClass(tone),\n plan.highlighted &&\n 'ring-primary-600 dark:ring-primary-400 ring-2'\n )}\n >\n {plan.highlighted && plan.badge && (\n <Badge className=\"bg-primary-800 dark:bg-primary-800 absolute start-6 -top-3 px-3 py-1 text-xs font-semibold text-white dark:text-white\">\n {plan.badge}\n </Badge>\n )}\n <h3 className={cn('text-lg font-semibold', headingTextClass(tone))}>\n {plan.name}\n </h3>\n {plan.description && (\n <p className={cn('mt-2 text-sm', mutedTextClass(tone))}>\n {plan.description}\n </p>\n )}\n <p className=\"mt-6 flex flex-wrap items-baseline gap-x-2\">\n <span\n className={cn(\n 'text-4xl font-bold tracking-tight',\n headingTextClass(tone)\n )}\n >\n {plan.price}\n </span>\n {plan.period && (\n <span className={cn('text-sm', mutedTextClass(tone))}>\n {plan.period}\n </span>\n )}\n </p>\n <ul className=\"mt-6 flex-1 space-y-3 text-sm\">\n {plan.features.map((feature) => (\n <li key={feature} className=\"flex gap-3\">\n <Check\n aria-hidden=\"true\"\n className={cn(\n 'mt-0.5 size-4 shrink-0',\n accentTextClass(tone)\n )}\n />\n {feature}\n </li>\n ))}\n </ul>\n {plan.cta && (\n <TemplateAnchor\n href={plan.cta.href}\n trackingId={plan.cta.trackingId}\n components={components}\n className={cn(\n buttonVariants({\n variant: plan.highlighted ? 'primary' : 'outline',\n size: 'lg',\n fullWidth: true,\n }),\n 'mt-8 h-auto min-h-12 py-3 whitespace-normal',\n tone === 'brand' &&\n (plan.highlighted\n ? 'text-primary-900 hover:bg-primary-50 bg-white'\n : 'border-white/70 text-white hover:bg-white/10 hover:text-white dark:border-white/70 dark:text-white')\n )}\n >\n {plan.cta.label}\n </TemplateAnchor>\n )}\n </li>\n ))}\n </ul>\n {note && (\n <p\n className={cn(\n 'mt-8 text-sm',\n mutedTextClass(tone),\n align === 'center' && 'text-center'\n )}\n >\n {note}\n </p>\n )}\n </SectionShell>\n )\n);\nPricingSection.displayName = 'PricingSection';\n","import * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n headingTextClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport { TemplateIcon, type TemplateIconRegistry } from '../../templates/icons';\nimport type { SectionBaseProps } from '../../templates/types';\n\nexport interface ProcessStep {\n title: string;\n description: string;\n /** Icon token shown in the step marker instead of its number. */\n icon?: string;\n}\n\nexport interface ProcessStepsSectionProps extends SectionBaseProps {\n steps: ProcessStep[];\n icons?: TemplateIconRegistry;\n}\n\nconst columnClass = [\n '',\n '',\n 'lg:grid-cols-2',\n 'lg:grid-cols-3',\n 'lg:grid-cols-4',\n] as const;\n\n// Runs from the first marker's centre to the last: half a column in from each edge.\nconst connectorInset = [\n '',\n '',\n 'inset-x-[25%]',\n 'inset-x-[16.667%]',\n 'inset-x-[12.5%]',\n] as const;\n\nexport const ProcessStepsSection = React.forwardRef<\n HTMLElement,\n ProcessStepsSectionProps\n>(({ steps, icons, tone = 'default', align = 'center', ...rest }, ref) => {\n const columns = Math.min(steps.length, 4);\n return (\n <SectionShell\n ref={ref}\n data-slot=\"process-steps-section\"\n tone={tone}\n align={align}\n {...rest}\n >\n <div className=\"relative mt-12\">\n {steps.length > 1 && steps.length <= 4 && (\n <div\n aria-hidden=\"true\"\n className={cn(\n 'absolute top-6 hidden h-px lg:block',\n connectorInset[columns],\n tone === 'brand' ? 'bg-white/25' : 'bg-border'\n )}\n />\n )}\n <ol className={cn('relative grid gap-10', columnClass[columns])}>\n {steps.map((step, i) => (\n <li\n key={step.title}\n className=\"flex flex-col items-center text-center\"\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'flex size-12 items-center justify-center rounded-full text-lg font-bold',\n tone === 'brand'\n ? 'text-primary-900 bg-white'\n : 'bg-primary-800 text-white'\n )}\n >\n {step.icon ? (\n <TemplateIcon name={step.icon} icons={icons} />\n ) : (\n i + 1\n )}\n </span>\n <h3\n className={cn(\n 'mt-5 text-lg font-semibold',\n headingTextClass(tone)\n )}\n >\n {step.title}\n </h3>\n <p className={cn('mt-2 max-w-xs', mutedTextClass(tone))}>\n {step.description}\n </p>\n </li>\n ))}\n </ol>\n </div>\n </SectionShell>\n );\n});\nProcessStepsSection.displayName = 'ProcessStepsSection';\n","import * as React from 'react';\nimport { ArrowRight } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n TemplateAnchor,\n TemplateImg,\n accentTextClass,\n cardClass,\n headingTextClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport type {\n SectionBaseProps,\n TemplateImage,\n TemplateLink,\n} from '../../templates/types';\n\nexport interface ResourceItem {\n title: string;\n href: string;\n excerpt?: string;\n image?: TemplateImage;\n /** Content type label, e.g. \"Guide\" or \"Case study\". */\n kind?: string;\n /** Free-text detail line the caller formats, e.g. \"8 min read\". */\n meta?: string;\n trackingId?: string;\n}\n\nexport interface ResourceCardsSectionProps extends SectionBaseProps {\n items: ResourceItem[];\n columns?: 2 | 3 | 4;\n /** Link to the full index, shown under the cards. */\n viewAll?: TemplateLink;\n}\n\nconst columnClass = {\n 2: 'lg:grid-cols-2',\n 3: 'lg:grid-cols-3',\n 4: 'lg:grid-cols-4',\n} as const;\n\nexport const ResourceCardsSection = React.forwardRef<\n HTMLElement,\n ResourceCardsSectionProps\n>(\n (\n {\n items,\n columns = 3,\n viewAll,\n tone = 'default',\n align = 'start',\n components,\n ...rest\n },\n ref\n ) => (\n <SectionShell\n ref={ref}\n data-slot=\"resource-cards-section\"\n tone={tone}\n align={align}\n {...rest}\n >\n <ul\n className={cn('mt-12 grid gap-6 sm:grid-cols-2', columnClass[columns])}\n >\n {items.map((item) => (\n <li\n key={item.href}\n className={cn(\n 'group relative flex flex-col overflow-hidden rounded-2xl',\n 'focus-within:ring-ring focus-within:ring-2',\n cardClass(tone)\n )}\n >\n {item.image && (\n <TemplateImg\n {...item.image}\n components={components}\n className=\"aspect-video w-full object-cover\"\n />\n )}\n <div className=\"flex flex-1 flex-col gap-2 p-6\">\n {item.kind && (\n <p\n className={cn(\n 'text-xs font-semibold tracking-wider uppercase',\n accentTextClass(tone)\n )}\n >\n {item.kind}\n </p>\n )}\n <h3\n className={cn('text-lg font-semibold', headingTextClass(tone))}\n >\n {/* The ::after stretches the link over the whole card. */}\n <TemplateAnchor\n href={item.href}\n trackingId={item.trackingId}\n components={components}\n className=\"group-hover:underline after:absolute after:inset-0 focus-visible:outline-none\"\n >\n {item.title}\n </TemplateAnchor>\n </h3>\n {item.excerpt && (\n <p className={cn('line-clamp-3', mutedTextClass(tone))}>\n {item.excerpt}\n </p>\n )}\n {item.meta && (\n <p className={cn('mt-auto pt-2 text-sm', mutedTextClass(tone))}>\n {item.meta}\n </p>\n )}\n </div>\n </li>\n ))}\n </ul>\n {viewAll && (\n <p className={cn('mt-10', align === 'center' && 'text-center')}>\n <TemplateAnchor\n href={viewAll.href}\n trackingId={viewAll.trackingId}\n components={components}\n className={cn(\n 'inline-flex items-center gap-1 font-semibold hover:underline',\n accentTextClass(tone)\n )}\n >\n {viewAll.label}\n <ArrowRight\n aria-hidden=\"true\"\n className=\"size-4 rtl:-scale-x-100\"\n />\n </TemplateAnchor>\n </p>\n )}\n </SectionShell>\n )\n);\nResourceCardsSection.displayName = 'ResourceCardsSection';\n","import * as React from 'react';\nimport { CircleCheck } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n CtaLinks,\n SectionHeading,\n TemplateImg,\n accentTextClass,\n containerClass,\n mutedTextClass,\n toneClass,\n} from '../../templates/Section';\nimport type {\n SectionBaseProps,\n TemplateImage,\n TemplateLink,\n} from '../../templates/types';\n\nexport interface SplitContentSectionProps extends Omit<\n SectionBaseProps,\n 'align'\n> {\n title: string;\n image: TemplateImage;\n /** Caption under the image. */\n caption?: string;\n /** Proof points rendered as a checked list under the description. */\n bullets?: string[];\n primaryCta?: TemplateLink;\n secondaryCta?: TemplateLink;\n /** Which side the image sits on at desktop widths (follows reading direction). */\n mediaPosition?: 'start' | 'end';\n}\n\nexport const SplitContentSection = React.forwardRef<\n HTMLElement,\n SplitContentSectionProps\n>(\n (\n {\n eyebrow,\n title,\n description,\n image,\n caption,\n bullets,\n primaryCta,\n secondaryCta,\n mediaPosition = 'end',\n tone = 'default',\n components,\n className,\n ...rest\n },\n ref\n ) => {\n const titleId = React.useId();\n return (\n <section\n ref={ref}\n data-slot=\"split-content-section\"\n data-tone={tone}\n aria-labelledby={titleId}\n className={cn('py-16 sm:py-24', toneClass(tone), className)}\n {...rest}\n >\n <div\n className={cn(\n containerClass(),\n 'grid items-center gap-12 lg:grid-cols-2'\n )}\n >\n <div>\n <SectionHeading\n eyebrow={eyebrow}\n title={title}\n description={description}\n tone={tone}\n titleId={titleId}\n />\n {bullets && bullets.length > 0 && (\n <ul className=\"mt-6 space-y-3\">\n {bullets.map((item) => (\n <li key={item} className=\"flex gap-3\">\n <CircleCheck\n aria-hidden=\"true\"\n className={cn(\n 'mt-0.5 size-5 shrink-0',\n accentTextClass(tone)\n )}\n />\n <span className={mutedTextClass(tone)}>{item}</span>\n </li>\n ))}\n </ul>\n )}\n <CtaLinks\n primary={primaryCta}\n secondary={secondaryCta}\n tone={tone}\n components={components}\n className=\"mt-8\"\n />\n </div>\n <figure className={cn(mediaPosition === 'start' && 'lg:order-first')}>\n <TemplateImg\n {...image}\n components={components}\n className=\"h-auto w-full rounded-2xl object-cover shadow-lg\"\n />\n {caption && (\n <figcaption className={cn('mt-3 text-sm', mutedTextClass(tone))}>\n {caption}\n </figcaption>\n )}\n </figure>\n </div>\n </section>\n );\n }\n);\nSplitContentSection.displayName = 'SplitContentSection';\n","import * as React from 'react';\nimport { TrendingDown, TrendingUp } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n cardClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport type { SectionBaseProps } from '../../templates/types';\n\nexport interface StatItem {\n /** Numbers are locale-formatted; strings render as written. */\n value: number | string;\n prefix?: string;\n suffix?: string;\n label: string;\n description?: string;\n /** Decorative arrow. Say the direction in `label` too — the arrow is hidden from screen readers. */\n trend?: 'up' | 'down';\n}\n\nexport interface StatsSectionProps extends SectionBaseProps {\n stats: StatItem[];\n variant?: 'plain' | 'cards';\n /** BCP 47 locale for number formatting. */\n locale?: string;\n}\n\nconst columnClass = [\n '',\n '',\n 'lg:grid-cols-2',\n 'lg:grid-cols-3',\n 'lg:grid-cols-4',\n] as const;\n\nexport const StatsSection = React.forwardRef<HTMLElement, StatsSectionProps>(\n (\n {\n stats,\n variant = 'plain',\n locale,\n tone = 'default',\n align = 'center',\n ...rest\n },\n ref\n ) => {\n const format = new Intl.NumberFormat(locale);\n return (\n <SectionShell\n ref={ref}\n data-slot=\"stats-section\"\n tone={tone}\n align={align}\n {...rest}\n >\n <dl\n className={cn(\n 'mt-12 grid gap-6 sm:grid-cols-2',\n columnClass[Math.min(stats.length, 4)]\n )}\n >\n {stats.map((stat) => {\n const Trend = stat.trend === 'down' ? TrendingDown : TrendingUp;\n return (\n <div\n key={stat.label}\n className={cn(\n 'flex flex-col-reverse gap-2',\n align === 'center' && 'items-center text-center',\n variant === 'cards' && cn('rounded-2xl p-6', cardClass(tone))\n )}\n >\n <dt>\n <span className=\"font-semibold\">{stat.label}</span>\n {stat.description && (\n <span\n className={cn('mt-1 block text-sm', mutedTextClass(tone))}\n >\n {stat.description}\n </span>\n )}\n </dt>\n <dd\n className={cn(\n 'flex items-center gap-2 text-4xl font-bold tracking-tight tabular-nums sm:text-5xl',\n tone === 'brand'\n ? 'text-white'\n : 'text-primary-800 dark:text-primary-300'\n )}\n >\n {stat.trend && (\n <Trend aria-hidden=\"true\" className=\"size-7 shrink-0\" />\n )}\n {stat.prefix}\n {typeof stat.value === 'number'\n ? format.format(stat.value)\n : stat.value}\n {stat.suffix}\n </dd>\n </div>\n );\n })}\n </dl>\n </SectionShell>\n );\n }\n);\nStatsSection.displayName = 'StatsSection';\n","import * as React from 'react';\nimport { Star } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport {\n SectionShell,\n TemplateImg,\n cardClass,\n headingTextClass,\n mutedTextClass,\n} from '../../templates/Section';\nimport type { SectionBaseProps } from '../../templates/types';\n\nexport interface TestimonialItem {\n quote: string;\n author: string;\n role?: string;\n company?: string;\n /** Headshot URL; decorative, since the author is named beside it. */\n avatar?: string;\n /** Whole stars out of five. */\n rating?: 1 | 2 | 3 | 4 | 5;\n}\n\nexport interface TestimonialSectionLabels {\n /** Screen-reader rating text; `{rating}` is replaced with the number. */\n rating?: string;\n}\n\nexport interface TestimonialSectionProps extends SectionBaseProps {\n testimonials: TestimonialItem[];\n /** `featured` gives the first testimonial the whole section; `cards` lays them out in a grid. */\n variant?: 'cards' | 'featured';\n labels?: TestimonialSectionLabels;\n}\n\nexport const TestimonialSection = React.forwardRef<\n HTMLElement,\n TestimonialSectionProps\n>(\n (\n {\n testimonials,\n variant = 'cards',\n labels,\n tone = 'default',\n align = 'center',\n components,\n ...rest\n },\n ref\n ) => {\n const featured = variant === 'featured';\n const items = featured ? testimonials.slice(0, 1) : testimonials;\n return (\n <SectionShell\n ref={ref}\n data-slot=\"testimonial-section\"\n tone={tone}\n align={align}\n width={featured ? 'narrow' : 'wide'}\n {...rest}\n >\n <ul\n className={cn(\n 'mt-12 grid gap-6',\n !featured && 'md:grid-cols-2 lg:grid-cols-3'\n )}\n >\n {items.map(({ rating, ...t }) => (\n <li key={`${t.author}-${t.quote.slice(0, 24)}`}>\n <figure\n className={cn(\n 'flex h-full flex-col gap-6',\n featured\n ? 'items-center text-center'\n : cn('rounded-2xl p-6', cardClass(tone))\n )}\n >\n {rating && (\n <p className=\"text-warning flex gap-0.5\">\n {Array.from({ length: 5 }, (_, i) => (\n <Star\n key={i}\n aria-hidden=\"true\"\n className={cn(\n 'size-4',\n i < rating ? 'fill-current' : 'opacity-30'\n )}\n />\n ))}\n <span className=\"sr-only\">\n {(labels?.rating ?? 'Rated {rating} out of 5').replace(\n '{rating}',\n String(rating)\n )}\n </span>\n </p>\n )}\n <blockquote\n className={cn(\n 'text-pretty',\n featured\n ? cn(\n 'text-2xl font-medium sm:text-3xl',\n headingTextClass(tone)\n )\n : 'text-base'\n )}\n >\n <p>{t.quote}</p>\n </blockquote>\n <figcaption className=\"mt-auto flex items-center gap-3\">\n {t.avatar && (\n <TemplateImg\n src={t.avatar}\n alt=\"\"\n width={44}\n height={44}\n components={components}\n className=\"size-11 rounded-full object-cover\"\n />\n )}\n <span className={cn(!featured && 'text-start')}>\n <span className=\"block font-semibold\">{t.author}</span>\n {(t.role || t.company) && (\n <span\n className={cn('block text-sm', mutedTextClass(tone))}\n >\n {[t.role, t.company].filter(Boolean).join(', ')}\n </span>\n )}\n </span>\n </figcaption>\n </figure>\n </li>\n ))}\n </ul>\n </SectionShell>\n );\n }\n);\nTestimonialSection.displayName = 'TestimonialSection';\n","import * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { SectionShell, mutedTextClass } from '../../templates/Section';\nimport type { SectionBaseProps } from '../../templates/types';\n\ninterface VideoBase {\n /** Accessible name of the player, e.g. \"Product tour (3 min)\". */\n title: string;\n}\n\nexport type VideoSource =\n | (VideoBase & {\n /** Embeds `youtube-nocookie.com`, which sets no cookies until playback. Captions come from YouTube. */\n youtubeId: string;\n })\n | (VideoBase & {\n /** A self-hosted file, played with the native `<video>` element. */\n src: string;\n /** Still frame shown before playback. */\n poster?: string;\n /** WebVTT captions — required, because prerecorded speech needs captions (WCAG 1.2.2). */\n captions: { src: string; srcLang: string; label: string };\n });\n\nexport interface VideoSectionProps extends SectionBaseProps {\n video: VideoSource;\n /** Caption under the player. */\n caption?: string;\n}\n\nexport const VideoSection = React.forwardRef<HTMLElement, VideoSectionProps>(\n ({ video, caption, tone = 'default', align = 'center', ...rest }, ref) => (\n <SectionShell\n ref={ref}\n data-slot=\"video-section\"\n tone={tone}\n align={align}\n {...rest}\n >\n <figure className=\"mx-auto mt-12 max-w-5xl\">\n <div className=\"aspect-video overflow-hidden rounded-2xl bg-neutral-900 shadow-xl\">\n {'youtubeId' in video ? (\n <iframe\n src={`https://www.youtube-nocookie.com/embed/${encodeURIComponent(video.youtubeId)}`}\n title={video.title}\n loading=\"lazy\"\n allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n allowFullScreen\n referrerPolicy=\"strict-origin-when-cross-origin\"\n className=\"size-full border-0\"\n />\n ) : (\n <video\n src={video.src}\n poster={video.poster}\n title={video.title}\n aria-label={video.title}\n controls\n preload=\"none\"\n className=\"size-full object-cover\"\n >\n <track\n kind=\"captions\"\n src={video.captions.src}\n srcLang={video.captions.srcLang}\n label={video.captions.label}\n default\n />\n </video>\n )}\n </div>\n {caption && (\n <figcaption\n className={cn(\n 'mt-3 text-sm',\n mutedTextClass(tone),\n align === 'center' && 'text-center'\n )}\n >\n {caption}\n </figcaption>\n )}\n </figure>\n </SectionShell>\n )\n);\nVideoSection.displayName = 'VideoSection';\n","import * as React from 'react';\nimport {\n ComparisonSection,\n type ComparisonSectionProps,\n} from '../ComparisonSection';\nimport { CtaSection, type CtaSectionProps } from '../CtaSection';\nimport { FaqSection, type FaqSectionProps } from '../FaqSection';\nimport {\n FeatureGridSection,\n type FeatureGridSectionProps,\n} from '../FeatureGridSection';\nimport { HeroSection, type HeroSectionProps } from '../HeroSection';\nimport { LeadFormSection, type LeadFormSectionProps } from '../LeadFormSection';\nimport {\n LogoCloudSection,\n type LogoCloudSectionProps,\n} from '../LogoCloudSection';\nimport { PricingSection, type PricingSectionProps } from '../PricingSection';\nimport {\n ProcessStepsSection,\n type ProcessStepsSectionProps,\n} from '../ProcessStepsSection';\nimport {\n ResourceCardsSection,\n type ResourceCardsSectionProps,\n} from '../ResourceCardsSection';\nimport {\n SplitContentSection,\n type SplitContentSectionProps,\n} from '../SplitContentSection';\nimport { StatsSection, type StatsSectionProps } from '../StatsSection';\nimport {\n TestimonialSection,\n type TestimonialSectionProps,\n} from '../TestimonialSection';\nimport { VideoSection, type VideoSectionProps } from '../VideoSection';\nimport type { TemplateIconRegistry } from '../../templates/icons';\nimport { safeHref } from '../../templates/Section';\nimport type { TemplateComponents } from '../../templates/types';\nimport { ownProperty } from '../../utils/own';\n\n/** A section the site renders itself, looked up by name in `LandingPage`'s `custom` map. */\nexport interface CustomBlock {\n type: 'custom';\n component: string;\n props?: Record<string, unknown>;\n id?: string;\n}\n\n/** Section props as page data: no event handlers, children or components, so a block survives JSON. */\ntype BlockData<P> = Omit<\n P,\n keyof React.DOMAttributes<HTMLElement> | 'components' | 'icons'\n>;\n\n/** One entry of a page's `blocks` array: a section's props tagged with its `type`. */\nexport type LandingBlock =\n | ({ type: 'hero' } & BlockData<HeroSectionProps>)\n | ({ type: 'logos' } & BlockData<LogoCloudSectionProps>)\n | ({ type: 'features' } & BlockData<FeatureGridSectionProps>)\n | ({ type: 'split' } & BlockData<SplitContentSectionProps>)\n | ({ type: 'process' } & BlockData<ProcessStepsSectionProps>)\n | ({ type: 'stats' } & BlockData<StatsSectionProps>)\n | ({ type: 'comparison' } & BlockData<ComparisonSectionProps>)\n | ({ type: 'pricing' } & BlockData<PricingSectionProps>)\n | ({ type: 'video' } & BlockData<VideoSectionProps>)\n | ({ type: 'testimonials' } & BlockData<TestimonialSectionProps>)\n | ({ type: 'resources' } & BlockData<ResourceCardsSectionProps>)\n | ({ type: 'faq' } & BlockData<FaqSectionProps>)\n | ({ type: 'lead-form' } & Omit<BlockData<LeadFormSectionProps>, 'action'> & {\n /** A URL, or the name of a function in `LandingPage`'s `actions` map. */\n action: string;\n })\n | ({ type: 'cta' } & BlockData<CtaSectionProps>)\n | CustomBlock;\n\nexport type LandingBlockType = LandingBlock['type'];\n\nconst sections = {\n hero: HeroSection,\n logos: LogoCloudSection,\n features: FeatureGridSection,\n split: SplitContentSection,\n process: ProcessStepsSection,\n stats: StatsSection,\n comparison: ComparisonSection,\n pricing: PricingSection,\n video: VideoSection,\n testimonials: TestimonialSection,\n resources: ResourceCardsSection,\n faq: FaqSection,\n 'lead-form': LeadFormSection,\n cta: CtaSection,\n} satisfies Record<Exclude<LandingBlockType, 'custom'>, unknown>;\n\n/** Every block type the renderer knows — `validateLandingPage` checks runtime data against it. */\nexport const landingBlockTypes = [\n ...Object.keys(sections),\n 'custom',\n] as LandingBlockType[];\n\n/** Block types whose section resolves icon tokens. */\nconst takesIcons = new Set<LandingBlockType>(['features', 'process']);\n\nexport interface LandingPageProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The page, top to bottom. Plain data — import it from a content file or a CMS. */\n blocks: LandingBlock[];\n /** Site icon tokens, passed to every section that renders icons. */\n icons?: TemplateIconRegistry;\n /** Site image and link components (e.g. `next/image`, `next/link`), passed to every section. */\n components?: TemplateComponents;\n /** Site-owned sections for `{ type: 'custom', component }` blocks. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- each custom section owns its props\n custom?: Record<string, React.ComponentType<any>>;\n /** Form actions (e.g. Server Actions, React 19) that `lead-form` blocks name in `action`. */\n actions?: Record<string, (formData: FormData) => void | Promise<void>>;\n}\n\nexport const LandingPage = React.forwardRef<HTMLDivElement, LandingPageProps>(\n ({ blocks, icons, components, custom, actions, ...rest }, ref) => (\n <div ref={ref} data-slot=\"landing-page\" {...rest}>\n {blocks.map((block, i) => {\n const key = block.id ?? `${block.type}-${i}`;\n // Own-property lookups throughout: block data is runtime JSON, so\n // `\"toString\"` must mean \"unknown\", not `Object.prototype.toString`.\n if (block.type === 'custom') {\n const Custom = ownProperty(custom, block.component);\n return Custom ? (\n <Custom key={key} id={block.id} {...block.props} />\n ) : null;\n }\n const { type, ...props } = block;\n // `type` narrowed `props` to this section's props; TS can't correlate the lookup.\n const Section = ownProperty(\n sections as Record<string, unknown>,\n type\n ) as React.ComponentType<Record<string, unknown>> | undefined;\n // Runtime page data bypasses `BlockData`, so guard what TypeScript\n // cannot: skip unknown types the way unknown `custom` components are\n // skipped (`validateLandingPage` reports them), drop the props JSON\n // must not control, and inject the framework-owned props after the\n // spread so a block cannot override the site's adapters.\n if (!Section) return null;\n // A non-named lead-form action is a form URL — same trust boundary as\n // hrefs. No safe action means no form: an action-less form would\n // submit the lead to the current document URL instead of going inert.\n const action =\n block.type === 'lead-form'\n ? (ownProperty(actions, block.action) ?? safeHref(block.action))\n : undefined;\n if (block.type === 'lead-form' && action == null) return null;\n const data = { ...props } as Record<string, unknown>;\n delete data.children;\n delete data.dangerouslySetInnerHTML;\n return (\n <Section\n key={key}\n {...data}\n components={components}\n {...(takesIcons.has(type) ? { icons } : {})}\n {...(block.type === 'lead-form' ? { action } : {})}\n />\n );\n })}\n </div>\n )\n);\nLandingPage.displayName = 'LandingPage';\n","import { safeHref } from '../../templates/Section';\nimport {\n landingBlockTypes,\n type LandingBlock,\n type LandingBlockType,\n} from './LandingPage';\n\nexport interface LandingPreset {\n label: string;\n description: string;\n /** Recommended order, top to bottom. Blocks not listed may sit anywhere. */\n sequence: LandingBlockType[];\n /** Blocks the page is incomplete without. */\n required: LandingBlockType[];\n}\n\n/** Page archetypes shared by the BlueHive and Enterprise Health marketing sites. */\nexport const landingPresets = {\n 'vertical-hub': {\n label: 'Industry / vertical hub',\n description:\n 'One page per industry served: the sector problem, what the product does for it, proof, and a way in.',\n sequence: [\n 'hero',\n 'logos',\n 'features',\n 'split',\n 'stats',\n 'process',\n 'testimonials',\n 'resources',\n 'faq',\n 'cta',\n ],\n required: ['hero', 'features', 'faq', 'cta'],\n },\n 'service-detail': {\n label: 'Service / product detail',\n description:\n 'One offering explained: what it is, how it works, how it compares, and how to start.',\n sequence: [\n 'hero',\n 'features',\n 'video',\n 'process',\n 'comparison',\n 'pricing',\n 'stats',\n 'testimonials',\n 'faq',\n 'cta',\n ],\n required: ['hero', 'features', 'cta'],\n },\n campaign: {\n label: 'Campaign / ABM landing',\n description:\n 'A focused page for a campaign or named account that converts on the page itself.',\n sequence: [\n 'hero',\n 'logos',\n 'features',\n 'stats',\n 'testimonials',\n 'lead-form',\n 'faq',\n ],\n required: ['hero', 'lead-form'],\n },\n comparison: {\n label: 'Comparison',\n description:\n 'Your product against an alternative or the status quo, row by row.',\n sequence: ['hero', 'comparison', 'features', 'testimonials', 'faq', 'cta'],\n required: ['hero', 'comparison', 'cta'],\n },\n resource: {\n label: 'Resource / lead magnet',\n description:\n 'A guide, report or tool offered in exchange for contact details.',\n sequence: ['hero', 'split', 'lead-form', 'resources', 'faq'],\n required: ['hero', 'lead-form'],\n },\n pricing: {\n label: 'Pricing',\n description:\n 'Plans and what each includes, the proof that they are worth it, and the questions buyers ask before they pay.',\n sequence: [\n 'hero',\n 'pricing',\n 'comparison',\n 'stats',\n 'testimonials',\n 'faq',\n 'cta',\n ],\n required: ['hero', 'pricing', 'faq'],\n },\n} satisfies Record<string, LandingPreset>;\n\nexport type LandingPresetId = keyof typeof landingPresets;\n\n/** Block types whose items render `h3` titles under the section's `h2`. */\nconst headedItems = new Set<LandingBlockType>([\n 'features',\n 'process',\n 'pricing',\n 'resources',\n]);\n\nexport interface LandingPageIssue {\n severity: 'error' | 'warning';\n message: string;\n /** Index into `blocks`, when the issue belongs to one block. */\n index?: number;\n}\n\n/**\n * Checks a page against the heading contract (exactly one `h1` hero, first)\n * and, when given, a preset's required blocks and order. Run it in a build\n * step or test; `LandingPage` itself renders whatever it is given.\n */\nexport function validateLandingPage(\n blocks: LandingBlock[],\n preset?: LandingPresetId | LandingPreset\n): LandingPageIssue[] {\n const issues: LandingPageIssue[] = [];\n const types = blocks.map((b) => b.type);\n\n const knownTypes = new Set<string>(landingBlockTypes);\n blocks.forEach((b, index) => {\n if (!knownTypes.has(b.type))\n issues.push({\n severity: 'error',\n index,\n message: `Unknown block type \"${b.type}\": the renderer skips this block.`,\n });\n // A named action resolves like a relative URL; unsafe schemes never do.\n if (b.type === 'lead-form' && safeHref(b.action) == null)\n issues.push({\n severity: 'error',\n index,\n message: `Unsafe lead-form action \"${b.action}\": the renderer skips this block.`,\n });\n });\n\n const h1Heroes = blocks.flatMap((b, i) =>\n b.type === 'hero' && (b.headingLevel ?? 'h1') === 'h1' ? [i] : []\n );\n if (h1Heroes.length > 1)\n h1Heroes.slice(1).forEach((index) =>\n issues.push({\n severity: 'error',\n index,\n message:\n 'A second h1 hero: a page has one h1. Set headingLevel: \"h2\" or remove it.',\n })\n );\n if (h1Heroes.length === 0)\n issues.push({\n severity: 'warning',\n message:\n 'No h1 hero. The page must render its own h1 outside the blocks.',\n });\n const firstHero = types.indexOf('hero');\n if (firstHero > 0)\n issues.push({\n severity: 'warning',\n index: firstHero,\n message: 'The hero is not the first block.',\n });\n if (h1Heroes.length > 0 && h1Heroes[0] !== firstHero)\n issues.push({\n severity: 'warning',\n index: h1Heroes[0],\n message:\n 'The h1 hero is not the first hero: an h2 hero precedes the page h1.',\n });\n\n const seen = new Map<string, number>();\n blocks.forEach((b, index) => {\n // FAQ item ids become DOM ids too, so they share the page-wide namespace.\n const ids = [\n ...(b.id ? [b.id] : []),\n ...(b.type === 'faq'\n ? b.items.flatMap((item) => (item.id ? [item.id] : []))\n : []),\n ];\n ids.forEach((id) => {\n if (seen.has(id))\n issues.push({\n severity: 'error',\n index,\n message: `Duplicate id \"${id}\" (also block ${seen.get(id)}).`,\n });\n else seen.set(id, index);\n });\n });\n\n blocks.forEach((b, index) => {\n // Item titles are h3; without the section's h2 the outline skips a level.\n if (headedItems.has(b.type) && !('title' in b && b.title))\n issues.push({\n severity: 'warning',\n index,\n message: `\"${b.type}\" has no title, so its h3 item titles skip the h2 level.`,\n });\n if (b.type !== 'comparison') return;\n b.rows.forEach((row, r) => {\n if (row.values.length !== b.columns.length)\n issues.push({\n severity: 'error',\n index,\n message: `Comparison row ${r} (\"${row.feature}\") has ${row.values.length} values for ${b.columns.length} columns.`,\n });\n });\n if (\n b.highlightColumn !== undefined &&\n (b.highlightColumn < 0 || b.highlightColumn >= b.columns.length)\n )\n issues.push({\n severity: 'warning',\n index,\n message: `highlightColumn ${b.highlightColumn} is outside the ${b.columns.length} comparison columns.`,\n });\n });\n\n if (!preset) return issues;\n const spec: LandingPreset =\n typeof preset === 'string' ? landingPresets[preset] : preset;\n\n for (const type of spec.required)\n if (!types.includes(type))\n issues.push({\n severity: 'error',\n message: `Missing required \"${type}\" block for the ${spec.label} preset.`,\n });\n\n let last = -1;\n blocks.forEach((b, index) => {\n const rank = spec.sequence.indexOf(b.type);\n if (rank === -1) return;\n if (rank < last)\n issues.push({\n severity: 'warning',\n index,\n message: `\"${b.type}\" is out of the ${spec.label} preset's recommended order.`,\n });\n else last = rank;\n });\n\n return issues;\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkE4IBHYJ7_cjs = require('../../chunk-E4IBHYJ7.cjs');
3
+ var chunkYEQLSYJO_cjs = require('../../chunk-YEQLSYJO.cjs');
4
4
  require('../../chunk-7ZDPD5ZX.cjs');
5
5
  require('../../chunk-NNEFAUHV.cjs');
6
6
  require('../../chunk-FHY3K6PL.cjs');
7
7
  require('../../chunk-SCV7C55E.cjs');
8
- require('../../chunk-VNYW4C4J.cjs');
8
+ require('../../chunk-2BGS7RFM.cjs');
9
+ require('../../chunk-XFLEW7AT.cjs');
9
10
  require('../../chunk-NV2CWBI2.cjs');
10
11
  require('../../chunk-S5RVSXDV.cjs');
11
12
  require('../../chunk-EUAMEVVI.cjs');
@@ -14,7 +15,7 @@ require('../../chunk-EUAMEVVI.cjs');
14
15
 
15
16
  Object.defineProperty(exports, "AlertDialog", {
16
17
  enumerable: true,
17
- get: function () { return chunkE4IBHYJ7_cjs.AlertDialog; }
18
+ get: function () { return chunkYEQLSYJO_cjs.AlertDialog; }
18
19
  });
19
20
  //# sourceMappingURL=index.cjs.map
20
21
  //# sourceMappingURL=index.cjs.map
@@ -1,9 +1,10 @@
1
- export { AlertDialog } from '../../chunk-VOKVG3ER.js';
1
+ export { AlertDialog } from '../../chunk-UXI33QGR.js';
2
2
  import '../../chunk-5JJ2DAE4.js';
3
3
  import '../../chunk-4SMSH4OY.js';
4
4
  import '../../chunk-T4ME7QCT.js';
5
5
  import '../../chunk-VSQF22GL.js';
6
- import '../../chunk-GOALNQZ2.js';
6
+ import '../../chunk-UV4IJNSN.js';
7
+ import '../../chunk-AXRRBEER.js';
7
8
  import '../../chunk-XCP454Q6.js';
8
9
  import '../../chunk-TQONQSJO.js';
9
10
  import '../../chunk-PX6F3LHL.js';
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkVNYW4C4J_cjs = require('../../chunk-VNYW4C4J.cjs');
3
+ var chunk2BGS7RFM_cjs = require('../../chunk-2BGS7RFM.cjs');
4
+ var chunkXFLEW7AT_cjs = require('../../chunk-XFLEW7AT.cjs');
4
5
  require('../../chunk-S5RVSXDV.cjs');
5
6
  require('../../chunk-EUAMEVVI.cjs');
6
7
 
@@ -8,11 +9,11 @@ require('../../chunk-EUAMEVVI.cjs');
8
9
 
9
10
  Object.defineProperty(exports, "Button", {
10
11
  enumerable: true,
11
- get: function () { return chunkVNYW4C4J_cjs.Button; }
12
+ get: function () { return chunk2BGS7RFM_cjs.Button; }
12
13
  });
13
14
  Object.defineProperty(exports, "buttonVariants", {
14
15
  enumerable: true,
15
- get: function () { return chunkVNYW4C4J_cjs.buttonVariants; }
16
+ get: function () { return chunkXFLEW7AT_cjs.buttonVariants; }
16
17
  });
17
18
  //# sourceMappingURL=index.cjs.map
18
19
  //# sourceMappingURL=index.cjs.map
@@ -1,13 +1,14 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
1
  import * as React from 'react';
3
2
  import { VariantProps } from 'class-variance-authority';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "link" | "secondary" | "danger" | "outline" | "primary" | "ghost" | null | undefined;
6
+ variant?: "link" | "primary" | "secondary" | "ghost" | "outline" | "danger" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | "icon" | null | undefined;
8
8
  fullWidth?: boolean | null | undefined;
9
9
  effect?: "none" | "sheen" | "orbit" | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+
11
12
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
12
13
  /** Optional icon element to render before the button text */
13
14
  leftIcon?: React.ReactElement | null;
@@ -1,13 +1,14 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
1
  import * as React from 'react';
3
2
  import { VariantProps } from 'class-variance-authority';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "link" | "secondary" | "danger" | "outline" | "primary" | "ghost" | null | undefined;
6
+ variant?: "link" | "primary" | "secondary" | "ghost" | "outline" | "danger" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | "icon" | null | undefined;
8
8
  fullWidth?: boolean | null | undefined;
9
9
  effect?: "none" | "sheen" | "orbit" | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+
11
12
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
12
13
  /** Optional icon element to render before the button text */
13
14
  leftIcon?: React.ReactElement | null;
@@ -1,4 +1,5 @@
1
- export { Button, buttonVariants } from '../../chunk-GOALNQZ2.js';
1
+ export { Button } from '../../chunk-UV4IJNSN.js';
2
+ export { buttonVariants } from '../../chunk-AXRRBEER.js';
2
3
  import '../../chunk-TQONQSJO.js';
3
4
  import '../../chunk-PX6F3LHL.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkURAQIF67_cjs = require('../../chunk-URAQIF67.cjs');
3
+ var chunkMB5KIIT4_cjs = require('../../chunk-MB5KIIT4.cjs');
4
4
  require('../../chunk-4NCDU5IG.cjs');
5
5
  require('../../chunk-XXVUHLQN.cjs');
6
6
  require('../../chunk-L7L5S2HO.cjs');
7
- require('../../chunk-VNYW4C4J.cjs');
7
+ require('../../chunk-2BGS7RFM.cjs');
8
+ require('../../chunk-XFLEW7AT.cjs');
8
9
  require('../../chunk-S5RVSXDV.cjs');
9
10
  require('../../chunk-EUAMEVVI.cjs');
10
11
 
@@ -12,11 +13,11 @@ require('../../chunk-EUAMEVVI.cjs');
12
13
 
13
14
  Object.defineProperty(exports, "CalendarView", {
14
15
  enumerable: true,
15
- get: function () { return chunkURAQIF67_cjs.CalendarView; }
16
+ get: function () { return chunkMB5KIIT4_cjs.CalendarView; }
16
17
  });
17
18
  Object.defineProperty(exports, "defaultCalendarLabels", {
18
19
  enumerable: true,
19
- get: function () { return chunkURAQIF67_cjs.defaultCalendarLabels; }
20
+ get: function () { return chunkMB5KIIT4_cjs.defaultCalendarLabels; }
20
21
  });
21
22
  //# sourceMappingURL=index.cjs.map
22
23
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { V as ViewLabels, a as ViewBaseProps } from '../../types-DsdZvEI1.cjs';
2
+ import { V as ViewLabels, a as ViewBaseProps } from '../../types-C3HQe74F.cjs';
3
3
  import 'react';
4
4
 
5
5
  type CalendarViewSlot = 'toolbar' | 'weekday' | 'day' | 'outsideDay' | 'today' | 'entry' | 'selectedEntry' | 'state';
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { V as ViewLabels, a as ViewBaseProps } from '../../types-DsdZvEI1.js';
2
+ import { V as ViewLabels, a as ViewBaseProps } from '../../types-C3HQe74F.js';
3
3
  import 'react';
4
4
 
5
5
  type CalendarViewSlot = 'toolbar' | 'weekday' | 'day' | 'outsideDay' | 'today' | 'entry' | 'selectedEntry' | 'state';
@@ -1,8 +1,9 @@
1
- export { CalendarView, defaultCalendarLabels } from '../../chunk-G4D6CLBT.js';
1
+ export { CalendarView, defaultCalendarLabels } from '../../chunk-7U5QYH54.js';
2
2
  import '../../chunk-3YBS4WUQ.js';
3
3
  import '../../chunk-UA7E7PDS.js';
4
4
  import '../../chunk-BKSPDTX4.js';
5
- import '../../chunk-GOALNQZ2.js';
5
+ import '../../chunk-UV4IJNSN.js';
6
+ import '../../chunk-AXRRBEER.js';
6
7
  import '../../chunk-TQONQSJO.js';
7
8
  import '../../chunk-PX6F3LHL.js';
8
9
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkG3JX3UAU_cjs = require('../../chunk-G3JX3UAU.cjs');
3
+ var chunkIUQMOBFB_cjs = require('../../chunk-IUQMOBFB.cjs');
4
4
  require('../../chunk-PLMXN23Q.cjs');
5
5
  require('../../chunk-RS5VA6QU.cjs');
6
6
  require('../../chunk-NNEFAUHV.cjs');
7
7
  require('../../chunk-FHY3K6PL.cjs');
8
8
  require('../../chunk-SCV7C55E.cjs');
9
- require('../../chunk-VNYW4C4J.cjs');
9
+ require('../../chunk-2BGS7RFM.cjs');
10
+ require('../../chunk-XFLEW7AT.cjs');
10
11
  require('../../chunk-S5RVSXDV.cjs');
11
12
  require('../../chunk-EUAMEVVI.cjs');
12
13
 
@@ -14,31 +15,31 @@ require('../../chunk-EUAMEVVI.cjs');
14
15
 
15
16
  Object.defineProperty(exports, "CustomizableDashboard", {
16
17
  enumerable: true,
17
- get: function () { return chunkG3JX3UAU_cjs.CustomizableDashboard; }
18
+ get: function () { return chunkIUQMOBFB_cjs.CustomizableDashboard; }
18
19
  });
19
20
  Object.defineProperty(exports, "DashboardCustomizePanel", {
20
21
  enumerable: true,
21
- get: function () { return chunkG3JX3UAU_cjs.DashboardCustomizePanel; }
22
+ get: function () { return chunkIUQMOBFB_cjs.DashboardCustomizePanel; }
22
23
  });
23
24
  Object.defineProperty(exports, "consolidateColumns", {
24
25
  enumerable: true,
25
- get: function () { return chunkG3JX3UAU_cjs.consolidateColumns; }
26
+ get: function () { return chunkIUQMOBFB_cjs.consolidateColumns; }
26
27
  });
27
28
  Object.defineProperty(exports, "mergeColumnOrder", {
28
29
  enumerable: true,
29
- get: function () { return chunkG3JX3UAU_cjs.mergeColumnOrder; }
30
+ get: function () { return chunkIUQMOBFB_cjs.mergeColumnOrder; }
30
31
  });
31
32
  Object.defineProperty(exports, "moveAcrossColumns", {
32
33
  enumerable: true,
33
- get: function () { return chunkG3JX3UAU_cjs.moveAcrossColumns; }
34
+ get: function () { return chunkIUQMOBFB_cjs.moveAcrossColumns; }
34
35
  });
35
36
  Object.defineProperty(exports, "reorderOnDrop", {
36
37
  enumerable: true,
37
- get: function () { return chunkG3JX3UAU_cjs.reorderOnDrop; }
38
+ get: function () { return chunkIUQMOBFB_cjs.reorderOnDrop; }
38
39
  });
39
40
  Object.defineProperty(exports, "requiredColumns", {
40
41
  enumerable: true,
41
- get: function () { return chunkG3JX3UAU_cjs.requiredColumns; }
42
+ get: function () { return chunkIUQMOBFB_cjs.requiredColumns; }
42
43
  });
43
44
  //# sourceMappingURL=index.cjs.map
44
45
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,11 @@
1
- export { CustomizableDashboard, DashboardCustomizePanel, consolidateColumns, mergeColumnOrder, moveAcrossColumns, reorderOnDrop, requiredColumns } from '../../chunk-WGPLUCBD.js';
1
+ export { CustomizableDashboard, DashboardCustomizePanel, consolidateColumns, mergeColumnOrder, moveAcrossColumns, reorderOnDrop, requiredColumns } from '../../chunk-R47H3Y7J.js';
2
2
  import '../../chunk-AQ564XO7.js';
3
3
  import '../../chunk-LMBXJZLG.js';
4
4
  import '../../chunk-4SMSH4OY.js';
5
5
  import '../../chunk-T4ME7QCT.js';
6
6
  import '../../chunk-VSQF22GL.js';
7
- import '../../chunk-GOALNQZ2.js';
7
+ import '../../chunk-UV4IJNSN.js';
8
+ import '../../chunk-AXRRBEER.js';
8
9
  import '../../chunk-TQONQSJO.js';
9
10
  import '../../chunk-PX6F3LHL.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkN6IY47YA_cjs = require('../../chunk-N6IY47YA.cjs');
4
- require('../../chunk-VNYW4C4J.cjs');
3
+ var chunkPLDJU623_cjs = require('../../chunk-PLDJU623.cjs');
4
+ require('../../chunk-2BGS7RFM.cjs');
5
+ require('../../chunk-XFLEW7AT.cjs');
5
6
  require('../../chunk-S5RVSXDV.cjs');
6
7
  require('../../chunk-EUAMEVVI.cjs');
7
8
 
@@ -9,11 +10,11 @@ require('../../chunk-EUAMEVVI.cjs');
9
10
 
10
11
  Object.defineProperty(exports, "FloatingWindow", {
11
12
  enumerable: true,
12
- get: function () { return chunkN6IY47YA_cjs.FloatingWindow; }
13
+ get: function () { return chunkPLDJU623_cjs.FloatingWindow; }
13
14
  });
14
15
  Object.defineProperty(exports, "MinimizedWindow", {
15
16
  enumerable: true,
16
- get: function () { return chunkN6IY47YA_cjs.MinimizedWindow; }
17
+ get: function () { return chunkPLDJU623_cjs.MinimizedWindow; }
17
18
  });
18
19
  //# sourceMappingURL=index.cjs.map
19
20
  //# sourceMappingURL=index.cjs.map