@tempots/beatui 1.7.4 → 1.9.0

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 (161) hide show
  1. package/dist/{ar-Wr6gMs-M.cjs → ar-CEzAem0F.cjs} +1 -1
  2. package/dist/{ar-fdUqbCvM.js → ar-CQieaqsq.js} +1 -1
  3. package/dist/auth/index.cjs.js +1 -1
  4. package/dist/auth/index.es.js +1 -1
  5. package/dist/auth-divider-B8yr-E_b.cjs +1 -0
  6. package/dist/{auth-divider-D9KnNeyF.js → auth-divider-Byh5BWLc.js} +91 -88
  7. package/dist/beatui.css +1 -0
  8. package/dist/beatui.tailwind.css +1 -0
  9. package/dist/better-auth/index.cjs.js +1 -1
  10. package/dist/better-auth/index.es.js +27 -26
  11. package/dist/card-BkA7Wvbh.cjs +1 -0
  12. package/dist/card-DX1DwGbL.js +62 -0
  13. package/dist/{colors-C2sgnzFH.js → colors-CyMhfbJi.js} +64 -58
  14. package/dist/{colors-DPCHjRMj.cjs → colors-IXZF9U-s.cjs} +1 -1
  15. package/dist/control-hqEuMzyI.js +343 -0
  16. package/dist/control-muup9GF1.cjs +1 -0
  17. package/dist/custom-validation-BA9iJWl_.cjs +1 -0
  18. package/dist/custom-validation-BOBoUwHY.js +181 -0
  19. package/dist/{de-C5-k5Eov.js → de-CBIwvkAH.js} +1 -1
  20. package/dist/{de-DZqdSEta.cjs → de-DdfxrlT3.cjs} +1 -1
  21. package/dist/deep-merge-8fwp1z4X.js +1346 -0
  22. package/dist/deep-merge-VDGE_HQD.cjs +1 -0
  23. package/dist/duration-input-DmsljXl3.cjs +1 -0
  24. package/dist/{duration-input-D4V_PHIg.js → duration-input-ZQlcqdXU.js} +32 -31
  25. package/dist/{editor-toolbar-group-FpOHrmtx.js → editor-toolbar-group-BNTBMJCe.js} +2 -2
  26. package/dist/{editor-toolbar-group-C_ft_T8D.cjs → editor-toolbar-group-DiMzqYgz.cjs} +1 -1
  27. package/dist/{es-h6jmoF4X.js → es--9HaEj2D.js} +1 -1
  28. package/dist/{es-CJgYfRap.cjs → es-DSdljxFJ.cjs} +1 -1
  29. package/dist/{fa-BuxK837l.js → fa-1Z-akcW7.js} +1 -1
  30. package/dist/{fa-BQ5PzwNY.cjs → fa-BolmeWRT.cjs} +1 -1
  31. package/dist/flyout-CuKFh_T7.js +151 -0
  32. package/dist/flyout-DC_tKaTG.cjs +1 -0
  33. package/dist/{fr-Bv3TG44U.cjs → fr-CODgUuoZ.cjs} +1 -1
  34. package/dist/{fr-BwILQ9G2.js → fr-DhHM9rou.js} +1 -1
  35. package/dist/{he-yC9Sc7JD.js → he-CBamXbGJ.js} +1 -1
  36. package/dist/{he-5LbvgMCC.cjs → he-Juw-dr28.cjs} +1 -1
  37. package/dist/{hi-Da7rcCpP.js → hi-DvvcX-Ra.js} +1 -1
  38. package/dist/{hi-YWhWcG_L.cjs → hi-R749jeg-.cjs} +1 -1
  39. package/dist/{index-CvU9E9wd.js → index-BfQaT5Jy.js} +104 -104
  40. package/dist/{index-XogEKwdt.cjs → index-Dv7nPuwA.cjs} +1 -1
  41. package/dist/index.cjs.js +4 -4
  42. package/dist/index.es.js +6713 -9831
  43. package/dist/{input-container-CyOgiiQD.cjs → input-container-BaWQLWB6.cjs} +1 -1
  44. package/dist/{input-container-8JFB11xN.js → input-container-DCS5oJ4S.js} +4 -4
  45. package/dist/{it-BxOIJE45.cjs → it-DT5oRZDH.cjs} +1 -1
  46. package/dist/{it-Yeklau78.js → it-aV6i8Qxz.js} +1 -1
  47. package/dist/{ja-Dxj9Q5Yd.js → ja-CuLhGnJX.js} +1 -1
  48. package/dist/{ja-CNhjK06P.cjs → ja-CwKaCYLB.cjs} +1 -1
  49. package/dist/json-schema/index.cjs.js +1 -1
  50. package/dist/json-schema/index.es.js +83 -79
  51. package/dist/json-schema-display/index.cjs.js +1 -1
  52. package/dist/json-schema-display/index.es.js +2 -2
  53. package/dist/json-structure/index.cjs.js +1 -1
  54. package/dist/json-structure/index.es.js +74 -72
  55. package/dist/{ko-DgkqcXTs.cjs → ko-Bucro9ID.cjs} +1 -1
  56. package/dist/{ko-gn_MsegK.js → ko-D-66BsEX.js} +1 -1
  57. package/dist/lexical/index.cjs.js +1 -1
  58. package/dist/lexical/index.es.js +5 -5
  59. package/dist/menu-BFLFKceF.cjs +1 -0
  60. package/dist/menu-BO6zqyfq.js +220 -0
  61. package/dist/modal-6Mq3vS5r.js +309 -0
  62. package/dist/modal-d77-TMc4.cjs +1 -0
  63. package/dist/{nl-vHNFtXXb.js → nl-CAny6wvm.js} +1 -1
  64. package/dist/{nl-Dy9lmbBO.cjs → nl-D7vHpehb.cjs} +1 -1
  65. package/dist/notice-BNGx86Yg.js +110 -0
  66. package/dist/notice-iF6zBMq9.cjs +1 -0
  67. package/dist/{oneof-branch-detection-Q_jxvJIA.js → oneof-branch-detection-Bm17RhC2.js} +27 -26
  68. package/dist/oneof-branch-detection-DZ4MrfBp.cjs +1 -0
  69. package/dist/openui/index.cjs.js +9 -0
  70. package/dist/openui/index.es.js +2174 -0
  71. package/dist/password-input-Bipt7Wsu.cjs +1 -0
  72. package/dist/password-input-mkRmrEPq.js +105 -0
  73. package/dist/{pl-BtYbtsmG.cjs → pl-CSiXoOKT.cjs} +1 -1
  74. package/dist/{pl-C0UdHla0.js → pl-rmZLgQ_V.js} +1 -1
  75. package/dist/prosemirror/index.cjs.js +1 -1
  76. package/dist/prosemirror/index.es.js +4 -4
  77. package/dist/{pt-CtNmqQ1X.cjs → pt-CJT-iq4y.cjs} +1 -1
  78. package/dist/{pt-DGKtfN0d.js → pt-DHnajqAi.js} +1 -1
  79. package/dist/{ru-CpXYLt-v.js → ru-C_E8OZNE.js} +1 -1
  80. package/dist/{ru-BaL_NPRU.cjs → ru-G3sr_ctV.cjs} +1 -1
  81. package/dist/slider-input-SLguFA0d.cjs +1 -0
  82. package/dist/slider-input-VYAMm7pE.js +285 -0
  83. package/dist/stepper-24p16Zsv.cjs +1 -0
  84. package/dist/stepper-TlzbfYWa.js +3222 -0
  85. package/dist/tailwind/preset.cjs.js +1 -1
  86. package/dist/tailwind/preset.es.js +38 -40
  87. package/dist/tailwind/vite-plugin.cjs.js +14 -12
  88. package/dist/tailwind/vite-plugin.es.js +317 -246
  89. package/dist/text-area-BdemKQ_w.cjs +1 -0
  90. package/dist/text-area-Br83-_PQ.js +431 -0
  91. package/dist/{text-input-NJypZSnE.js → text-input-ByuxdX8w.js} +5 -5
  92. package/dist/{text-input-DS5zlXb2.cjs → text-input-MjlUC_9u.cjs} +1 -1
  93. package/dist/{toolbar-BF2L6WKC.js → toolbar-CEBTTjHh.js} +1 -1
  94. package/dist/{toolbar-BBwfe8U9.cjs → toolbar-DWawYFFX.cjs} +1 -1
  95. package/dist/{tr-DwOd87oB.cjs → tr-DcxLHHTC.cjs} +1 -1
  96. package/dist/{tr-DIFZDFW_.js → tr-bVXwloKC.js} +1 -1
  97. package/dist/{translations-EwEmHe3v.cjs → translations-D3xqZUTA.cjs} +1 -1
  98. package/dist/{translations-BCMP-h52.js → translations-DU9wTV1y.js} +20 -19
  99. package/dist/{translations-5cXBrENb.js → translations-RT_UN8ny.js} +1 -1
  100. package/dist/{translations-BqWc0ZHz.cjs → translations-qljG2Chq.cjs} +1 -1
  101. package/dist/types/components/navigation/stepper.d.ts +4 -4
  102. package/dist/types/openui/index.d.ts +28 -0
  103. package/dist/types/openui/library/define-component.d.ts +15 -0
  104. package/dist/types/openui/library/library.d.ts +7 -0
  105. package/dist/types/openui/library/prompt-generator.d.ts +5 -0
  106. package/dist/types/openui/library/types.d.ts +33 -0
  107. package/dist/types/openui/parser/parser.d.ts +8 -0
  108. package/dist/types/openui/parser/streaming-parser.d.ts +14 -0
  109. package/dist/types/openui/parser/tokenizer.d.ts +9 -0
  110. package/dist/types/openui/parser/types.d.ts +46 -0
  111. package/dist/types/openui/registry/button.d.ts +148 -0
  112. package/dist/types/openui/registry/data.d.ts +177 -0
  113. package/dist/types/openui/registry/form.d.ts +65 -0
  114. package/dist/types/openui/registry/format.d.ts +67 -0
  115. package/dist/types/openui/registry/index.d.ts +9 -0
  116. package/dist/types/openui/registry/layout.d.ts +45 -0
  117. package/dist/types/openui/registry/navigation.d.ts +149 -0
  118. package/dist/types/openui/registry/overlay.d.ts +56 -0
  119. package/dist/types/openui/registry/typography.d.ts +17 -0
  120. package/dist/types/openui/renderer/action-context.d.ts +24 -0
  121. package/dist/types/openui/renderer/node-resolver.d.ts +9 -0
  122. package/dist/types/openui/renderer/openui-renderer.d.ts +32 -0
  123. package/dist/types/openui/renderer/skeleton.d.ts +2 -0
  124. package/dist/types/openui/streaming/from-fetch.d.ts +7 -0
  125. package/dist/types/openui/streaming/from-sse.d.ts +7 -0
  126. package/dist/types/openui/streaming/from-websocket.d.ts +10 -0
  127. package/dist/types/openui/streaming/types.d.ts +5 -0
  128. package/dist/types/tailwind/preset.d.ts +25 -4
  129. package/dist/types/tailwind/vite-plugin.d.ts +17 -5
  130. package/dist/types/tokens/colors.d.ts +87 -9
  131. package/dist/types/tokens/index.d.ts +7 -6
  132. package/dist/{ur-DBst-TXc.js → ur-Dls2qb4V.js} +1 -1
  133. package/dist/{ur-D9nLchps.cjs → ur-IRQoHh1E.cjs} +1 -1
  134. package/dist/use-form-BZ8vDYOv.cjs +2 -0
  135. package/dist/use-form-DsCzINfm.js +750 -0
  136. package/dist/utils-D3-NApSw.cjs +1 -0
  137. package/dist/utils-Nbh7yQ73.js +105 -0
  138. package/dist/{vi-Dg1aiMr5.cjs → vi-Bi9SvVCP.cjs} +1 -1
  139. package/dist/{vi-DQOJp32U.js → vi-C3mTzj50.js} +1 -1
  140. package/dist/widget-customization-BV6XB2v_.cjs +1 -0
  141. package/dist/widget-customization-Bso45ONQ.js +1198 -0
  142. package/dist/{zh-DPK4HXl2.js → zh-B4JRJBt2.js} +1 -1
  143. package/dist/{zh-tbwSTbmn.cjs → zh-BMU5rYu1.cjs} +1 -1
  144. package/package.json +31 -20
  145. package/dist/auth-divider-CjcrgXmq.cjs +0 -1
  146. package/dist/custom-validation-7por5nJN.js +0 -488
  147. package/dist/custom-validation-CLscGHY4.cjs +0 -1
  148. package/dist/deep-merge-D90SW1Ci.cjs +0 -1
  149. package/dist/deep-merge-DT2H9AGq.js +0 -1765
  150. package/dist/duration-input-4AQnQpyo.cjs +0 -1
  151. package/dist/menu-B60Q9j3-.cjs +0 -1
  152. package/dist/menu-BkqFGcXg.js +0 -366
  153. package/dist/notice-CQGJyZ8o.js +0 -211
  154. package/dist/notice-p2IqXS5-.cjs +0 -1
  155. package/dist/oneof-branch-detection-xDDDdYRk.cjs +0 -1
  156. package/dist/use-form-8NnZ-KHk.js +0 -1090
  157. package/dist/use-form-Dcra7GeE.cjs +0 -2
  158. package/dist/utils-DmEuG3Np.cjs +0 -1
  159. package/dist/utils-vUtP6iPG.js +0 -165
  160. package/dist/widget-customization-BIBva3f-.js +0 -1458
  161. package/dist/widget-customization-pqmtsraC.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";const S=require("@tempots/std"),a=require("@tempots/dom"),W=require("./card-BkA7Wvbh.cjs"),F=require("./utils-D3-NApSw.cjs"),p=require("./stack-dwLevGa2.cjs"),g=require("./translations-D3xqZUTA.cjs"),H=require("ajv"),J=require("ajv/dist/2019"),K=require("ajv/dist/2020"),U=require("ajv-formats");function k(t){return t.split("/").slice(1).map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function V(t){const e=k(t.instancePath||"");if(t.keyword==="required"){const n=t.params.missingProperty;if(n!=null)return[...e,n]}if(t.keyword==="additionalProperties"){const n=t.params.additionalProperty;if(n!=null)return[...e,n]}if(t.keyword==="unevaluatedProperties"){const n=t.params.unevaluatedProperty;if(n!=null)return[...e,n]}return e.length>0?e:void 0}function M(t){return t.message??`${t.keyword} validation failed`}function q(t){return t.reduce((e,n)=>{const r=V(n);if(r==null)return e;let i=e;for(const o of r){const s=o;i.dependencies==null&&(i.dependencies={}),i.dependencies[s]==null&&(i.dependencies[s]={}),i=i.dependencies[s]}return i.message=M(n),e},{})}function G(t){const e=q(t);return S.Validation.invalid(e)}function X(t){const e={keyword:"x:ui",schemaType:["string","object"],errors:!1,validate:()=>!0};t.addKeyword(e)}let v=new WeakMap;function Q(){v=new WeakMap}function Y(t){v.delete(t)}function Z(){return{ajvInstances:0}}function E(t,e){let n=v.get(t);n==null&&(n=new WeakMap,v.set(t,n));const r=n.get(e);if(r)return r;const i=t.compile(e);return n.set(e,i),i}async function _(t,e,n){const i={"2020-12":K,"2019-09":J,"draft-07":H}[t],o=new i({meta:n,strictSchema:!1,allErrors:!0,removeAdditional:e});switch(t){case"2020-12":o.opts.defaultMeta="https://json-schema.org/draft/2020-12/schema";break;case"2019-09":o.opts.defaultMeta="https://json-schema.org/draft/2019-09/schema";break;case"draft-07":o.opts.defaultMeta="http://json-schema.org/draft-07/schema#";break}return U(o),X(o),o}function N(t){return t==null||t.includes("draft/2020-12")?"2020-12":t.includes("draft/2019-09")?"2019-09":"draft-07"}function ee(t){const e=t.indexOf("#");return e>=0?t.slice(0,e):t}function j(t,e=!0){if(Array.isArray(t))return t.map(n=>j(n,!1));if(t!=null&&typeof t=="object"){const n=t,r={};for(const[i,o]of Object.entries(n))!e&&(i==="$id"||i==="$schema"||i==="$dynamicAnchor")||(r[i]=j(o,!1));return r}return t}function C(t){const e=new Set,n=r=>{if(r!=null){if(Array.isArray(r)){for(const i of r)n(i);return}if(typeof r=="object"){const i=r,o=i.$ref;typeof o=="string"&&o.length>0&&o[0]!=="#"&&e.add(ee(o));for(const s of Object.values(i))n(s)}}};return n(t),[...e]}function x(t,e){for(const n of e){const r=n.$id;if(typeof r=="string"&&r.length>0&&!t.getSchema(r))try{t.addSchema(n)}catch{}}}async function te(t,e,n,r){if(n==null)return null;const i=new Set;if(r&&r.length>0)for(const l of r){const c=l.$id;typeof c=="string"&&c.length>0&&i.add(c)}const o=[],s=5;for(let l=0;l<s;l++){const c=C(e),u=o.flatMap(h=>C(h)),f=new Set([...c,...u]),d=[];for(const h of f)if(!i.has(h)){if(t.getSchema(h)){i.add(h);continue}d.push(h)}if(d.length===0)return null;try{const h=await n(d);if(!Array.isArray(h)||h.length===0)return null;x(t,h);for(const m of h){const y=m.$id;typeof y=="string"&&y.length>0&&(i.add(y),o.push(m))}}catch(h){return`refResolver failed: ${h instanceof Error?h.message:String(h)}`}}return"refResolver reached iteration limit while resolving external $refs"}async function ne(t,e){try{const n=N(t.$schema),r=e?.sanitizeAdditional===!1?!1:e?.sanitizeAdditional??!1,i=f=>typeof f=="string"&&f.endsWith("#")?f.slice(0,-1):f??"",o=t.$id,s=i(o);if(s!==""&&new Set(["https://json-schema.org/draft/2020-12/schema","https://json-schema.org/draft/2019-09/schema","http://json-schema.org/draft-07/schema"]).has(s)){const f=await _(n,r,!1),d=j(t);try{f.addMetaSchema(d)}catch{}const h=f.getSchema(o??s)??f.compile(d);return{ok:!0,value:{ajv:f,validate:h}}}const c=await _(n,r,!0);if(e?.externalSchemas&&e.externalSchemas.length>0&&x(c,e.externalSchemas),e?.refResolver){const f=await te(c,t,e.refResolver,e.externalSchemas);if(f!=null)return{ok:!1,error:f}}const u=c.compile(t);return{ok:!0,value:{ajv:c,validate:u}}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}function re(t,e){if(typeof t=="boolean"||typeof e=="boolean")return e;const n={...t};for(const[r,i]of Object.entries(e))r==="required"&&Array.isArray(t.required)&&Array.isArray(i)?n.required=[...new Set([...t.required,...i])]:r==="properties"&&t.properties&&typeof i=="object"&&i!=null?n.properties={...t.properties,...i}:n[r]=i;return n}function ie(t,e){if(typeof t=="boolean"||typeof e=="boolean")return t===e;const n=t.type,r=e.type;return!(n!=null&&r!=null&&n!==r||n==="string"&&r==="string"&&(t.minLength!=null&&e.maxLength!=null&&t.minLength>e.maxLength||t.maxLength!=null&&e.minLength!=null&&t.maxLength<e.minLength)||(n==="number"||n==="integer")&&(r==="number"||r==="integer")&&(t.minimum!=null&&e.maximum!=null&&t.minimum>e.maximum||t.maximum!=null&&e.minimum!=null&&t.maximum<e.minimum))}function se(t,e,n,r){if(typeof e=="boolean"||typeof n=="boolean")return{path:r,message:`Property "${t}" has conflicting boolean schema definitions in allOf branches`,conflictingValues:[e,n]};const i=e.type,o=n.type;if(i!=null&&o!=null&&i!==o){const s=Array.isArray(i)?i:[i],l=Array.isArray(o)?o:[o];return{path:r,message:`Property "${t}" has conflicting types: ${s.join("|")} vs ${l.join("|")}`,conflictingValues:[e,n]}}if(i===o&&i==="string"){const s=[];if(e.minLength!=null&&n.maxLength!=null&&e.minLength>n.maxLength&&s.push(`minLength ${e.minLength} > maxLength ${n.maxLength}`),e.maxLength!=null&&n.minLength!=null&&e.maxLength<n.minLength&&s.push(`maxLength ${e.maxLength} < minLength ${n.minLength}`),s.length>0)return{path:r,message:`Property "${t}" has conflicting string constraints: ${s.join(", ")}`,conflictingValues:[e,n]}}if(i===o&&(i==="number"||i==="integer")){const s=[];if(e.minimum!=null&&n.maximum!=null&&e.minimum>n.maximum&&s.push(`minimum ${e.minimum} > maximum ${n.maximum}`),e.maximum!=null&&n.minimum!=null&&e.maximum<n.minimum&&s.push(`maximum ${e.maximum} < minimum ${n.minimum}`),s.length>0)return{path:r,message:`Property "${t}" has conflicting numeric constraints: ${s.join(", ")}`,conflictingValues:[e,n]}}return ie(e,n)?null:{path:r,message:`Property "${t}" has conflicting definitions in allOf branches`,conflictingValues:[e,n]}}function oe(t){const e=Array.isArray(t)?t:[t],n=new Set(e.map(r=>r));return n.has("number")&&n.add("integer"),n}function ae(t,e,n,r){for(const[i,o]of Object.entries(e)){if(t[i]!=null&&t[i]!==o){const s=t[i],l=se(i,s,o,[...n,"properties",i]);l!=null&&r.push(l)}t[i]!=null?t[i]=re(t[i],o):t[i]=o}}function le(t,e,n,r){e!=null&&t.additionalProperties!=null&&t.additionalProperties!==e&&r.push({path:[...n,"additionalProperties"],message:`Conflicting additionalProperties values in allOf: ${t.additionalProperties} vs ${e}`,conflictingValues:[t.additionalProperties,e]})}function ce(t,e,n,r,i){e!=null&&t.maxProperties!=null&&e>t.maxProperties&&i.push({path:[...r,"minProperties"],message:`minProperties ${e} conflicts with existing maxProperties ${t.maxProperties}`,conflictingValues:[e,t.maxProperties]}),n!=null&&t.minProperties!=null&&n<t.minProperties&&i.push({path:[...r,"maxProperties"],message:`maxProperties ${n} conflicts with existing minProperties ${t.minProperties}`,conflictingValues:[n,t.minProperties]})}function fe(t,e,n){if(t.length===0)return;let r=null;for(const o of t)if(r==null)r=new Set(o);else{const s=new Set;for(const l of r)o.has(l)&&s.add(l);r=s}const i=Array.from(r??[]);if(i.length===0){const o=t.map(s=>Array.from(s));n.push({path:[...e,"type"],message:"Incompatible types in allOf (no common types)",conflictingValues:o});return}else return i.length===1?i[0]:i}function ue(t,e=[]){const n=[],r={},i=[],o=[],s={};for(const c of t){c.type!=null&&i.push(oe(c.type)),Array.isArray(c.required)&&o.push(...c.required),c.properties!=null&&ae(s,c.properties,e,n);const{type:u,required:f,properties:d,allOf:h,additionalProperties:m,patternProperties:y,minProperties:b,maxProperties:A,...z}=c;le(r,m,e,n),ce(r,b,A,e,n),Object.assign(r,z),m!=null&&(r.additionalProperties=m),y!=null&&(r.patternProperties=y),b!=null&&(r.minProperties=b),A!=null&&(r.maxProperties=A)}const l=fe(i,e,n);return l!=null&&(r.type=l),o.length>0&&(r.required=[...new Set(o)]),Object.keys(s).length>0&&(r.properties=s),{mergedSchema:r,conflicts:n}}class ${schema;definition;horizontal;path;ajv;isPropertyRequired;suppressLabel;schemaConflicts;notViolations;widgetRegistry;setStatus;formValue;validationMode;submitting;constructor(e){const{schema:n,definition:r,horizontal:i,path:o,ajv:s,isPropertyRequired:l,suppressLabel:c,schemaConflicts:u,notViolations:f,widgetRegistry:d,setStatus:h,formValue:m,validationMode:y,submitting:b}=e;this.schema=n,this.definition=r,this.horizontal=i,this.path=o,this.ajv=s,this.isPropertyRequired=l??!1,this.suppressLabel=c??!1,this.schemaConflicts=u??[],this.notViolations=f??[],this.widgetRegistry=d,this.setStatus=h,this.formValue=m,this.validationMode=y,this.submitting=b}with=e=>new $({schema:e.schema??this.schema,definition:e.definition??this.definition,horizontal:e.horizontal??this.horizontal,path:e.path??this.path,ajv:e.ajv??this.ajv,isPropertyRequired:e.isPropertyRequired??this.isPropertyRequired,suppressLabel:e.suppressLabel??this.suppressLabel,schemaConflicts:e.schemaConflicts??this.schemaConflicts,notViolations:e.notViolations??this.notViolations,widgetRegistry:e.widgetRegistry??this.widgetRegistry,setStatus:e.setStatus??this.setStatus,formValue:e.formValue??this.formValue,validationMode:e.validationMode??this.validationMode,submitting:e.submitting??this.submitting});append=e=>this.with({path:[...this.path,e]});get isRoot(){return this.path.length===0}get name(){const e=this.path[this.path.length-1];if(typeof e=="string")return e}get widgetName(){return this.path.map(String).join(".")}get widgetLabel(){const e=this.name;return(typeof this.definition=="object"&&this.definition!==null?this.definition.title:void 0)??(e!=null?S.upperCaseFirst(S.humanize(e)):void 0)}hasRequiredProperty=e=>typeof this.definition=="boolean"?!1:this.definition.required!=null&&this.definition.required.includes(e);get nullable(){return this.definition.nullable??!1}get isNullable(){return this.nullable||this.hasType("null")||this.hasEnumValue(null)||this.hasConstValue(null)||(this.anyOf?.some(e=>e.isNullable)??!1)||(this.oneOf?.some(e=>e.isNullable)??!1)}get isOptional(){return!this.isPropertyRequired}get shouldShowPresenceToggle(){return!(!this.isOptional||this.isRoot||(this.isNullable||this.isOptional)&&this.isPrimitive)}get isPrimitive(){if(typeof this.definition=="boolean")return!1;const e=this.definition;if(e.const!==void 0||e.enum!==void 0)return!0;if(e.type){const n=Array.isArray(e.type)?e.type:[e.type],r=["string","number","integer","boolean"];return n.every(i=>r.includes(i))}return!1}get isReadOnly(){return typeof this.definition=="boolean"?!1:!!this.definition.readOnly}get isWriteOnly(){return typeof this.definition=="boolean"?!1:!!this.definition.writeOnly}get isDeprecated(){return typeof this.definition=="boolean"?!1:!!this.definition.deprecated}get shouldIgnoreReadOnly(){if(typeof this.definition=="boolean")return!1;const e=this.definition["x:ui"];return e&&typeof e=="object"?!!e.ignoreReadOnly:!1}get shouldShowWriteOnly(){if(typeof this.definition=="boolean")return!1;const e=this.definition["x:ui"];return e&&typeof e=="object"?!!e.showWriteOnly:!1}get anyOf(){if(typeof this.definition!="boolean")return Array.isArray(this.definition.anyOf)?this.definition.anyOf.map(e=>this.with({definition:e})):void 0}get oneOf(){if(typeof this.definition!="boolean")return Array.isArray(this.definition.oneOf)?this.definition.oneOf.map(e=>this.with({definition:e})):void 0}get allOf(){if(typeof this.definition!="boolean")return Array.isArray(this.definition.allOf)?this.definition.allOf.map(e=>this.with({definition:e})):void 0}hasType=e=>this.definition===!0?!0:this.definition===!1?!1:Array.isArray(this.definition.type)?this.definition.type.includes(e):this.definition.type===e;hasEnumValue=e=>typeof this.definition=="boolean"?!1:Array.isArray(this.definition.enum)?this.definition.enum.includes(e):!1;hasConstValue=e=>typeof this.definition=="boolean"?!1:this.definition.const===e;get description(){if(typeof this.definition!="boolean")return this.definition.description}get examples(){if(typeof this.definition!="boolean")return this.definition.examples}get default(){if(typeof this.definition!="boolean")return this.definition.default}}let O=new WeakMap,R=new WeakMap;function T(t,e){const n=typeof e=="object"&&e!=null?e:null;if(n!=null){const s=O.get(n)?.get(t);if(s!=null)return s}let r=t;const i=new Set;for(;I(r);){const o=r.$ref;if(!o.startsWith("#")){console.warn(`resolveRef: external $ref not supported here: ${o}`);break}if(i.has(o)){console.warn(`resolveRef: cycle detected while resolving in-document $ref chain: ${[...i,o].join(" -> ")}`);break}i.add(o);const s=B(e,o);if(!w(s)){console.warn(`resolveRef: could not resolve JSON Pointer ${o}`);break}const{$ref:l,...c}=r;r={...s,...c}}if(n!=null){let o=O.get(n);o==null&&(o=new WeakMap,O.set(n,o)),o.set(t,r)}return r}function I(t){return w(t)&&typeof t.$ref=="string"}function w(t){return typeof t=="object"&&t!=null&&!Array.isArray(t)}function B(t,e){if(!e.startsWith("#"))return;if(e==="#")return t;if(typeof t!="object"||t==null)return;const n=t;let r=R.get(n);r==null&&(r=new Map,R.set(n,r));const i=r.get(e);if(i!==void 0)return i;const o=k(e);let s=t;for(const l of o){if(!w(s)&&!Array.isArray(s)){r.set(e,void 0);return}s=s[l]}return r.set(e,s),s}function de(t,e,n){let r=t;const i=new Set,o=(s,l)=>{const{$ref:c,...u}=l;return{...s,...u}};for(;I(r);){const s=r.$ref;if(i.has(s)){console.warn(`resolveAnyRef: cycle detected while resolving $ref chain: ${[...i,s].join(" -> ")}`);break}if(i.add(s),s.startsWith("#")){const d=B(e,s);if(!w(d)){console.warn(`resolveAnyRef: could not resolve JSON Pointer ${s}`);break}r=o(d,r);continue}if(!n){console.warn(`resolveAnyRef: external $ref without AJV not resolved: ${s}`);break}const l=s.indexOf("#"),c=l>=0?s.slice(0,l):s;let u=n.getSchema(s)||n.getSchema(c);if(!u)try{u=n.compile({$ref:s})}catch{}const f=u?.schema;if(!f||typeof f!="object"){console.warn(`resolveAnyRef: AJV could not provide schema for ${s}`);break}r=o(f,r)}return r}function he(t){if(typeof t.definition=="boolean")return;const e=F.getXUIConfig(t.definition);if(typeof e!="object")return;const n={};return typeof e.format=="string"&&["fieldset","tabs","accordion","group","grid"].includes(e.format)&&(n.format=e.format),Array.isArray(e.order)&&(n.order=e.order.filter(r=>typeof r=="string")),e.groups&&typeof e.groups=="object"&&(n.groups=e.groups),(typeof e.cols=="number"||e.cols&&typeof e.cols=="object")&&(n.cols=e.cols),Object.keys(n).length>0?n:void 0}function pe({title:t,children:e}){return a.html.fieldset(a.attr.class("bc-fieldset"),t?a.html.legend(a.attr.class("bc-fieldset__legend"),t):null,a.html.div(a.attr.class("bc-fieldset__content"),p.Stack(a.attr.class("bc-stack--gap-1"),...e)))}function me({title:t,children:e}){return W.Card({variant:"outlined",size:"md"},p.Stack(a.attr.class("bc-stack--gap-1"),t?p.Label(t):null,...e))}function ye({cols:t=1,children:e}){const n=typeof t=="number"?`bc-schema-grid bc-schema-grid--cols-${t}`:a.computedOf(t)(r=>{if(typeof r=="number")return`bc-schema-grid bc-schema-grid--cols-${r}`;if(r&&typeof r=="object"){const i=["bc-schema-grid"];return r.sm&&i.push(`bc-schema-grid--cols-sm-${r.sm}`),r.md&&i.push(`bc-schema-grid--cols-md-${r.md}`),r.lg&&i.push(`bc-schema-grid--cols-lg-${r.lg}`),r.xl&&i.push(`bc-schema-grid--cols-xl-${r.xl}`),r["2xl"]&&i.push(`bc-schema-grid--cols-2xl-${r["2xl"]}`),i.join(" ")}return"bc-schema-grid bc-schema-grid--cols-1"});return a.html.div(a.attr.class(n),a.attr.class("bc-schema-grid--gap-4"),...e)}function be({groups:t,children:e}){if(!t||Object.keys(t).length===0)return ge({title:g.defaultMessages.properties,children:e});const n=a.prop(Object.keys(t)[0]),r=Object.entries(t);return a.html.div(a.attr.class("bc-tabs"),a.html.div(a.attr.class("bc-tabs__header"),a.attr.role("tablist"),...r.map(([i],o)=>a.html.button(a.attr.type("button"),a.attr.class("bc-tabs__tab"),a.attr.class(a.computedOf(n)(s=>s===i?"bc-tabs__tab--active":"")),a.attr.role("tab"),a.attr.tabindex(n.map(s=>s===i?0:-1)),a.on.click(()=>n.set(i)),a.on.keydown(s=>{switch(s.key){case"ArrowLeft":s.preventDefault();const l=o>0?o-1:r.length-1;n.set(r[l][0]);break;case"ArrowRight":s.preventDefault();const c=o<r.length-1?o+1:0;n.set(r[c][0]);break;case"Home":s.preventDefault(),n.set(r[0][0]);break;case"End":s.preventDefault(),n.set(r[r.length-1][0]);break}}),i))),a.html.div(a.attr.class("bc-tabs__content"),...r.map(([i,o])=>a.html.div(a.attr.class("bc-tabs__panel"),a.attr.class(a.computedOf(n)(s=>s===i?"bc-tabs__panel--active":"bc-tabs__panel--hidden")),a.attr.role("tabpanel"),p.Stack(a.attr.class("bc-stack--gap-1"),...e.filter((s,l)=>o.length===0||l<o.length))))))}function ge({title:t,children:e}){return a.html.div(a.attr.class("bc-tabs"),a.html.div(a.attr.class("bc-tabs__header"),a.html.div(a.attr.class("bc-tabs__tab bc-tabs__tab--active"),t)),a.html.div(a.attr.class("bc-tabs__content"),a.html.div(a.attr.class("bc-tabs__panel bc-tabs__panel--active"),p.Stack(a.attr.class("bc-stack--gap-1"),...e))))}function ve({groups:t,children:e}){if(!t||Object.keys(t).length===0)return we({title:g.defaultMessages.properties,children:e});const n=Object.entries(t),r=a.prop(new Set([n[0]?.[0]].filter(Boolean)));return a.html.div(a.attr.class("bc-accordion"),...n.map(([i,o])=>{const s=a.computedOf(r)(l=>l.has(i));return a.html.div(a.attr.class("bc-accordion__item"),a.html.button(a.attr.type("button"),a.attr.class("bc-accordion__header"),a.aria.expanded(s),a.on.click(()=>{const l=r.value,c=new Set(l);c.has(i)?c.delete(i):c.add(i),r.set(c)}),a.on.keydown(l=>{if(l.key==="Enter"||l.key===" "){l.preventDefault();const c=r.value,u=new Set(c);u.has(i)?u.delete(i):u.add(i),r.set(u)}}),a.html.span(i),g.Icon({icon:a.computedOf(s)(l=>l?"chevron-up":"chevron-down"),size:"sm"})),a.html.div(a.attr.class("bc-accordion__content"),a.attr.class(a.computedOf(s)(l=>l?"bc-accordion__content--open":"bc-accordion__content--closed")),p.Stack(a.attr.class("bc-stack--gap-1"),...e.filter((l,c)=>o.length===0||c<o.length))))}))}function we({title:t,children:e}){const n=a.prop(!0);return a.html.div(a.attr.class("bc-accordion"),a.html.div(a.attr.class("bc-accordion__item"),a.html.button(a.attr.type("button"),a.attr.class("bc-accordion__header"),a.on.click(()=>n.set(!n.value)),a.html.span(t),g.Icon({icon:a.computedOf(n)(r=>r?"chevron-up":"chevron-down"),size:"sm"})),a.html.div(a.attr.class("bc-accordion__content"),a.attr.class(a.computedOf(n)(r=>r?"bc-accordion__content--open":"bc-accordion__content--closed")),p.Stack(a.attr.class("bc-stack--gap-1"),...e))))}function P(t,e,n){const r=new Map;n.forEach((s,l)=>{t[l]&&r.set(s,t[l])});let i=t;if(e.order&&e.order.length>0){const s=new Map,l=[];e.order.forEach(c=>{const u=r.get(c);u&&s.set(c,u)}),n.forEach((c,u)=>{!e.order.includes(c)&&t[u]&&l.push(t[u])}),i=[...Array.from(s.values()),...l]}let o;if(e.groups&&Object.keys(e.groups).length>0){o={};const s=new Set;Object.entries(e.groups).forEach(([c,u])=>{o[c]=[],u.forEach(f=>{const d=r.get(f);d&&(o[c].push(d),s.add(d))})});const l=i.filter(c=>!s.has(c));l.length>0&&(o.Other=l)}return{orderedChildren:i,groupedChildren:o}}function Ae(t,e,n,r=[]){if(!t||!t.format){if(t?.order){const{orderedChildren:l}=P(n,t,r);return p.Stack(a.attr.class("bc-stack--gap-1"),...l)}return p.Stack(a.attr.class("bc-stack--gap-1"),...n)}const i=e.widgetLabel||e.name,{orderedChildren:o,groupedChildren:s}=P(n,t,r);switch(t.format){case"fieldset":return pe({title:i,children:o});case"group":return me({title:i,children:o});case"grid":return ye({cols:t.cols,children:o});case"tabs":return be({groups:s||t.groups,children:s?Object.values(s).flat():o});case"accordion":return ve({groups:s||t.groups,children:s?Object.values(s).flat():o});default:return p.Stack(a.attr.class("bc-stack--gap-1"),...o)}}function D(t,e,n){const i=t.definition.oneOf;if(!Array.isArray(i)||i.length===0)return{matchingBranch:-1,validBranches:[],isAmbiguous:!1,hasNoMatch:!0};const o=i.map(f=>{if(typeof f=="object"&&f!=null&&"$ref"in f){const d=f.$ref;if(typeof d=="string"&&d.startsWith("#"))return T(f,t.schema)}return f}),s=[];for(let f=0;f<o.length;f++){const d=o[f];if(typeof d=="boolean"){d===!0&&s.push(f);continue}if(n)try{E(n,d)(e)&&s.push(f)}catch(h){console.warn(`Failed to compile oneOf branch ${f}:`,h),L(d,e)&&s.push(f)}else L(d,e)&&s.push(f)}const l=s.length>1,c=s.length===0;return{matchingBranch:s.length===1?s[0]:-1,validBranches:s,isAmbiguous:l,hasNoMatch:c}}function L(t,e){if("const"in t)return t.const===e;if(Array.isArray(t.enum))return t.enum.includes(e);if(t.type!=null){const n=Array.isArray(t.type)?t.type:[t.type],r=Oe(e);if(r==="unknown"||!n.includes(r))return!1}if(t.properties&&typeof e=="object"&&e!=null){const n=e;for(const[r,i]of Object.entries(t.properties))if(typeof i=="object"&&i!=null&&"const"in i&&n[r]!==i.const)return!1}return!0}function Oe(t){return t===null?"null":Array.isArray(t)?"array":typeof t=="object"?"object":typeof t=="string"?"string":typeof t=="number"?Number.isInteger(t)?"integer":"number":typeof t=="boolean"?"boolean":"unknown"}function Se(t,e,n=`Option ${e+1}`){if(typeof t=="boolean")return t?"Any Value":"No Value";if(t.title)return t.title;if(t.properties){for(const[r,i]of Object.entries(t.properties))if(typeof i=="object"&&i!=null&&"const"in i){const o=i.const;if(typeof o=="string")return`${r}: ${o}`}}return"const"in t&&typeof t.const=="string"?t.const:t.type?(Array.isArray(t.type)?t.type:[t.type]).join(" | "):n}function je(t,e,n){const r=D(t,e,n);return r.matchingBranch!==-1?r.matchingBranch:-1}exports.SchemaContext=$;exports.ajvErrorsToControllerValidation=G;exports.ajvErrorsToDependencies=q;exports.applyContainerLayout=Ae;exports.autoSelectOneOfBranch=je;exports.buildMessage=M;exports.buildPath=V;exports.clearCaches=Q;exports.clearCachesForAjv=Y;exports.compileWithCache=E;exports.detectOneOfBranch=D;exports.getAjvForSchema=ne;exports.getCacheStats=Z;exports.getContainerLayout=he;exports.getOneOfBranchLabel=Se;exports.jsonPointerToSegments=k;exports.mergeAllOf=ue;exports.resolveAnyRef=de;exports.resolveRef=T;
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("zod"),l=require("@tempots/dom"),T=require("../stack-dwLevGa2.cjs"),L=require("../text-area-BdemKQ_w.cjs"),H=require("../card-BkA7Wvbh.cjs"),m=require("../stepper-24p16Zsv.cjs"),j=require("../input-container-BaWQLWB6.cjs"),_=require("../control-muup9GF1.cjs"),J=require("../translations-D3xqZUTA.cjs"),Q=require("../text-input-MjlUC_9u.cjs"),V=require("../password-input-Bipt7Wsu.cjs"),B=require("../slider-input-SLguFA0d.cjs"),X=require("../modal-d77-TMc4.cjs");function Y(e){const n=e.split(`
2
+ `),a=[];let o="";for(const i of n){const r=i.trimEnd();if(o===""&&r.trim()==="")continue;if(o!==""?o+=`
3
+ `+r:o=r,ee(o)<=0){const s=o.trim();s!==""&&a.push(s),o=""}}return o.trim()!==""&&a.push(o.trim()),a}function ee(e){let n=0,a=!1,o=0;for(;o<e.length;){const i=e[o];if(a){if(i==="\\"){o+=2;continue}i==='"'&&(a=!1)}else i==='"'?a=!0:i==="("||i==="["||i==="{"?n++:(i===")"||i==="]"||i==="}")&&n--;o++}return n}function q(e){return n=>te(n,e)}function te(e,n){const a=Y(e),o=new Map,i=[],r=new Set,u=new Set,s=e.split(`
4
+ `);let d=0;for(let p=0;p<a.length;p++){const z=a[p],g=z.split(`
5
+ `)[0].trim();for(;d<s.length&&!s[d].trim().startsWith(g.slice(0,20));)d++;const h=d+1,f=z.indexOf("=");if(f===-1){i.push({line:h,message:`Malformed statement (no '='): ${z}`,code:"syntax"}),d++;continue}const y=z.slice(0,f).trim(),S=z.slice(f+1).trim();if(!ne(y)){i.push({line:h,message:`Invalid identifier: '${y}'`,code:"syntax"}),d++;continue}let W;try{W=E(S,u,i,h,n)}catch{i.push({line:h,message:`Failed to parse expression: ${S}`,code:"syntax"}),d++;continue}r.add(y),o.set(y,{value:W}),d++}const b=[...u].filter(p=>!r.has(p));return{root:o.has("root")?o.get("root").value:null,statements:o,meta:{incomplete:!1,unresolved:b,statementCount:o.size,errors:i}}}function ne(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function E(e,n,a,o,i){if(e=e.trim(),e==="null")return{type:"null"};if(e==="true")return{type:"boolean",value:!0};if(e==="false")return{type:"boolean",value:!1};if(e.startsWith('"'))return oe(e);if(/^-?\d/.test(e)||/^-?\.\d/.test(e)){const r=Number(e);if(!isNaN(r))return{type:"number",value:r}}if(e.startsWith("["))return ae(e,n,a,o,i);if(e.startsWith("{"))return ie(e,n,a,o,i);if(/^[A-Z]/.test(e)&&e.includes("("))return le(e,n,a,o,i);if(/^[a-z_]/.test(e)){const r=e;return n.add(r),{type:"reference",name:r}}if(/^[A-Z][a-zA-Z0-9_]*$/.test(e)){const r=e;return i&&!i.has(r)&&a.push({line:o,message:`Unknown component: '${r}'`,code:"unknown-component"}),{type:"component",name:r,args:[]}}throw new Error(`Cannot parse expression: ${e}`)}function oe(e){if(!e.startsWith('"')||!e.endsWith('"'))throw new Error(`Malformed string: ${e}`);return{type:"string",value:e.slice(1,-1).replace(/\\(["\\/bfnrt]|u[0-9a-fA-F]{4})/g,(o,i)=>{switch(i[0]){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return`
6
+ `;case"r":return"\r";case"t":return" ";case"u":return String.fromCharCode(parseInt(i.slice(1),16));default:return i}})}}function G(e){const n=[];let a=0,o=!1,i=0,r=0;for(;r<e.length;){const s=e[r];if(o){if(s==="\\"){r+=2;continue}s==='"'&&(o=!1)}else s==='"'?o=!0:s==="("||s==="["||s==="{"?a++:s===")"||s==="]"||s==="}"?a--:s===","&&a===0&&(n.push(e.slice(i,r).trim()),i=r+1);r++}const u=e.slice(i).trim();return u!==""&&n.push(u),n}function ae(e,n,a,o,i){const r=e.slice(1,-1).trim();return r===""?{type:"array",items:[]}:{type:"array",items:G(r).map(d=>E(d,n,a,o,i))}}function ie(e,n,a,o,i){const r=e.slice(1,-1).trim();if(r==="")return{type:"object",entries:{}};const u=G(r),s={};for(const d of u){const b=re(d);if(b===-1)throw new Error(`Malformed object entry: ${d}`);const v=d.slice(0,b).trim(),p=d.slice(b+1).trim();s[v]=E(p,n,a,o,i)}return{type:"object",entries:s}}function re(e){let n=0,a=!1,o=0;for(;o<e.length;){const i=e[o];if(a){if(i==="\\"){o+=2;continue}i==='"'&&(a=!1)}else if(i==='"')a=!0;else if(i==="("||i==="["||i==="{")n++;else if(i===")"||i==="]"||i==="}")n--;else if(i===":"&&n===0)return o;o++}return-1}function le(e,n,a,o,i){const r=e.indexOf("("),u=e.slice(0,r).trim();i&&!i.has(u)&&a.push({line:o,message:`Unknown component: '${u}'`,code:"unknown-component"});const s=e.slice(r+1,-1).trim();if(s==="")return{type:"component",name:u,args:[]};const b=G(s).map(v=>E(v,n,a,o,i));return{type:"component",name:u,args:b}}function se(e){const n=q(e);let a="",o={root:null,statements:new Map,meta:{incomplete:!0,unresolved:[],statementCount:0,errors:[]}};return{push(i){return a+=i,o=n(a),o},getResult(){return o}}}function c(e){return Object.freeze({name:e.name,props:e.props,description:e.description,renderer:e.renderer})}function K(e){return e._def??{}}function k(e){const n=K(e);if(!n.type)return"unknown";const a=n.type??"unknown";switch(a){case"string":return"string";case"number":case"int":return"number";case"boolean":return"boolean";case"bigint":return"bigint";case"null":return"null";case"undefined":return"undefined";case"any":case"unknown":return a;case"enum":{const o=n.entries;return o&&typeof o=="object"?Object.values(o).map(r=>JSON.stringify(r)).join(" | "):"enum"}case"literal":{const o=n.value;return JSON.stringify(o)}case"optional":{const o=n.innerType;return o?`${k(o)} | undefined`:"optional"}case"nullable":{const o=n.innerType;return o?`${k(o)} | null`:"nullable"}case"array":{const o=n.element;return o?`${k(o)}[]`:"array"}case"object":return"object";case"union":{const o=n.options;return Array.isArray(o)?o.map(i=>k(i)).join(" | "):"union"}case"record":return"record";case"map":return"map";case"set":return"set";case"tuple":return"tuple";case"date":return"Date";case"transform":case"pipe":{const o=n.innerType??n.in;return o?k(o):a}default:return a}}function N(e){const n=[];n.push(`### ${e.name}`),n.push(""),n.push(e.description),n.push("");const a=e.props.shape,o=Object.entries(a);if(o.length>0){n.push("**Props** (named, all optional unless marked):");for(const[i,r]of o){const u=k(r),b=K(r)?.type==="optional"||!1?"?":"";n.push(`- \`${i}${b}\`: ${u}`)}}else n.push("No props.");return n.join(`
7
+ `)}function ce(e,n,a){const o=[];if(o.push("# OpenUI Lang System Prompt"),o.push(""),o.push("## Syntax"),o.push(""),o.push("OpenUI Lang uses a simple declarative syntax where each statement takes the form:"),o.push(""),o.push("```"),o.push("identifier = Expression"),o.push("```"),o.push(""),o.push("Components accept named props as an object. Only include the props you need — all are optional unless noted:"),o.push(""),o.push("```"),o.push('btn = Button({label: "Click Me", variant: "filled", color: "primary"})'),o.push('card = Card({title: "Hello", content: "World"})'),o.push("layout = Stack([child1, child2]) // children array for layout components"),o.push("```"),o.push(""),o.push("Components are instantiated by name with positional arguments matching their prop order."),o.push("Children are nested inside component blocks using indentation or braces."),o.push(""),o.push("## Available Components"),o.push(""),n&&n.length>0){const i=new Set(n.flatMap(u=>u.components));for(const u of n){o.push(`### Group: ${u.name}`),o.push(""),o.push(u.description),o.push("");for(const s of u.components){const d=e.get(s);d&&(o.push(N(d)),o.push(""))}}const r=[...e.values()].filter(u=>!i.has(u.name));if(r.length>0){o.push("### Other Components"),o.push("");for(const u of r)o.push(N(u)),o.push("")}}else for(const i of e.values())o.push(N(i)),o.push("");if(o.push("## Rules"),o.push(""),o.push("- Always pass props as a named object: `Component({key: value, ...})`"),o.push("- Only include the props you need — omit optional ones for defaults."),o.push("- Layout components take children as an array: `Stack([child1, child2])`"),o.push("- Use references for composition: `root = Stack([header, content])`"),o.push("- Do not invent component names not listed above."),a?.additionalRules&&a.additionalRules.length>0)for(const i of a.additionalRules)o.push(`- ${i}`);return o.join(`
8
+ `)}function U(e){return e?._def??{}}function ue(e){const n=new Map;for(const a of e)n.set(a.name,a);return n}function de(e){try{return t.z.toJSONSchema(e.props)}catch{const n={},a=[];for(const[i,r]of Object.entries(e.props.shape)){const u=U(r),s=u.type==="optional";s||a.push(i);const d=s&&u.innerType?u.innerType:r;n[i]=P(d)}const o={type:"object",properties:n};return a.length>0&&(o.required=a),o}}function P(e){const n=U(e);if(!n.type)return{};switch(n.type){case"string":return{type:"string"};case"number":case"int":return{type:"number"};case"boolean":return{type:"boolean"};case"bigint":return{type:"integer"};case"null":return{type:"null"};case"array":return{type:"array",items:n.element?P(n.element):{}};case"object":{const a={};if(n.shape)for(const[o,i]of Object.entries(n.shape))a[o]=P(i);return{type:"object",properties:a}}case"enum":return n.entries&&typeof n.entries=="object"?{enum:Object.values(n.entries)}:{type:"string"};case"literal":return{const:n.value};case"optional":case"nullable":return n.innerType?P(n.innerType):{};case"union":return Array.isArray(n.options)?{oneOf:n.options.map(P)}:{};default:return{}}}function Z(e){const n=ue(e.components),a=e.root,o=e.groups;return{get components(){return n},get root(){return a},get(r){return n.get(r)},has(r){return n.has(r)},prompt(r){const u=r?.groups??o;return ce(n,u,r)},toJSONSchema(){const r={};for(const[u,s]of n)r[u]=de(s);return r},extend(r){const u=new Map(n);if(r.components)for(const s of r.components)u.set(s.name,s);return Z({components:[...u.values()],root:r.root??a,groups:o})}}}const me=[c({name:"Stack",props:t.z.object({children:t.z.array(t.z.any()).optional()}),description:"Vertical stack layout that arranges children in a column with consistent spacing.",renderer:e=>T.Stack(m.Gap("md"),...e.children??[])}),c({name:"Group",props:t.z.object({children:t.z.array(t.z.any()).optional()}),description:"Horizontal group layout that arranges children in a row with consistent spacing.",renderer:e=>L.Group(m.Gap("md"),...e.children??[])}),c({name:"Card",props:t.z.object({title:t.z.string().optional(),content:t.z.string().optional(),variant:t.z.enum(["default","elevated","outlined","flat"]).optional(),children:t.z.array(t.z.any()).optional()}),description:'A container with optional title and content text. Card("My Title", "Description text")',renderer:e=>{const n=[];return e.title&&n.push(l.html.h3(l.attr.class("font-semibold text-lg"),e.title)),e.content&&n.push(l.html.p(l.attr.class("text-gray-600 dark:text-gray-400"),e.content)),e.children&&n.push(...e.children),H.Card({variant:e.variant},...n)}}),c({name:"Divider",props:t.z.object({orientation:t.z.enum(["horizontal","vertical"]).optional(),variant:t.z.enum(["solid","dashed","dotted"]).optional(),tone:t.z.enum(["subtle","default","strong"]).optional(),label:t.z.string().optional(),labelAlign:t.z.enum(["left","center","right"]).optional()}),description:"A visual separator for dividing content sections.",renderer:e=>m.Divider({orientation:e.orientation,variant:e.variant,tone:e.tone,label:e.label,labelAlign:e.labelAlign})}),c({name:"Accordion",props:t.z.object({items:t.z.array(t.z.object({key:t.z.string(),header:t.z.string(),body:t.z.string(),defaultOpen:t.z.boolean().optional(),disabled:t.z.boolean().optional()})),multiple:t.z.boolean().optional(),size:t.z.enum(["xs","sm","md","lg","xl"]).optional(),variant:t.z.enum(["default","separated"]).optional()}),description:"An accordion component with collapsible sections. Each item has a clickable header that toggles content.",renderer:e=>m.Accordion({items:e.items.map(n=>({key:n.key,header:n.header,body:l.html.p(n.body),defaultOpen:n.defaultOpen,disabled:n.disabled})),multiple:e.multiple,size:e.size,variant:e.variant})}),c({name:"Center",props:t.z.object({gap:t.z.enum(["none","xs","sm","md","lg","xl","2xl"]).optional(),children:t.z.array(t.z.any()).optional()}),description:"Centers its children both horizontally and vertically within a container.",renderer:e=>m.Center({gap:e.gap},...e.children??[])}),c({name:"Collapse",props:t.z.object({open:t.z.boolean(),children:t.z.array(t.z.any()).optional()}),description:"Animated collapsible container that smoothly expands and contracts its content.",renderer:e=>m.Collapse({open:e.open},...e.children??[])})],F=t.z.enum(["filled","light","outline","dashed","default","subtle","text"]),A=t.z.enum(["xs","sm","md","lg","xl"]),x=t.z.enum(["primary","secondary","success","warning","danger","info","neutral","base"]),pe=[c({name:"Button",props:t.z.object({label:t.z.string(),variant:F.optional(),size:A.optional(),color:x.optional(),disabled:t.z.boolean().optional(),actionType:t.z.string().optional(),actionParams:t.z.record(t.z.string(),t.z.unknown()).optional()}),description:'Clickable button. Set actionType to dispatch an action on click. Button("Click Me", "filled", "md", "primary", false, "submit_form", {key: "value"})',renderer:e=>{const n=e.__onAction;return j.Button({variant:e.variant,size:e.size,color:e.color,disabled:e.disabled,onClick:e.actionType?()=>{n?.({kind:"button",type:e.actionType,params:e.actionParams??{},humanFriendlyMessage:`Clicked: ${e.label}`})}:void 0},e.label)}}),c({name:"ToggleButton",props:t.z.object({label:t.z.string(),pressed:t.z.boolean(),variant:F.optional(),size:A.optional(),color:x.optional(),disabled:t.z.boolean().optional()}),description:"A toggle button that can be pressed/unpressed, styled as a button with visual feedback for the pressed state.",renderer:e=>{const n=l.prop(e.pressed);return m.ToggleButton({pressed:n,onChange:a=>n.set(a),variant:e.variant,size:e.size,color:e.color,disabled:e.disabled},e.label)}}),c({name:"CopyButton",props:t.z.object({text:t.z.string(),variant:F.optional(),size:A.optional(),color:x.optional()}),description:"A button that copies text to the clipboard with visual feedback.",renderer:e=>m.CopyButton({text:e.text,variant:e.variant,size:e.size,color:e.color})}),c({name:"CloseButton",props:t.z.object({size:A.optional(),color:x.optional(),icon:t.z.string().optional()}),description:"A small icon-only button for dismissing modals, drawers, notifications, and tags.",renderer:e=>_.CloseButton({size:e.size,color:e.color,icon:e.icon})}),c({name:"ToggleButtonGroup",props:t.z.object({items:t.z.array(t.z.object({key:t.z.string(),label:t.z.string(),disabled:t.z.boolean().optional()})),selectedKeys:t.z.array(t.z.string()).optional(),multiple:t.z.boolean().optional(),variant:F.optional(),size:A.optional(),color:x.optional(),orientation:t.z.enum(["horizontal","vertical"]).optional()}),description:"A group container for toggle buttons that manages single or multiple selection.",renderer:e=>{const n=l.prop(e.selectedKeys??[]);return m.ToggleButtonGroup({items:e.items,value:n,onChange:a=>n.set(a),multiple:e.multiple,variant:e.variant,size:e.size,color:e.color,orientation:e.orientation})}})],D=t.z.enum(["xs","sm","md","lg","xl"]),C=t.z.enum(["primary","secondary","success","warning","danger","info","neutral","base"]),ze=[c({name:"StatCard",props:t.z.object({title:t.z.string(),value:t.z.string(),trend:t.z.string().optional(),trendDirection:t.z.enum(["up","down","flat"]).optional(),variant:t.z.enum(["default","elevated","outlined"]).optional(),size:D.optional(),color:C.optional()}),description:'Dashboard metric card. StatCard({title: "Revenue", value: "$12k", trend: "+8%", trendDirection: "up"})',renderer:e=>m.StatCard({variant:e.variant,size:e.size,color:e.color},m.StatCardLabel({},e.title),m.StatCardValue({},e.value),...e.trendDirection!=null?[m.StatCardTrend({value:e.trend??"",direction:e.trendDirection})]:[])}),c({name:"Badge",props:t.z.object({label:t.z.string(),variant:t.z.enum(["filled","light","outline","dashed","default","subtle","text"]).optional(),size:D.optional(),color:C.optional(),circle:t.z.boolean().optional()}),description:"A small status indicator or label component with theme-aware colors.",renderer:e=>m.Badge({variant:e.variant,size:e.size,color:e.color,circle:e.circle},e.label)}),c({name:"AutoColorBadge",props:t.z.object({label:t.z.string(),size:D.optional()}),description:"A badge that automatically assigns a color based on the label text.",renderer:e=>m.AutoColorBadge({size:e.size},e.label)}),c({name:"Avatar",props:t.z.object({name:t.z.string().optional(),src:t.z.string().optional(),icon:t.z.string().optional(),size:t.z.enum(["xs","sm","md","lg","xl","2xl"]).optional(),variant:t.z.enum(["circle","square"]).optional(),color:C.optional(),bordered:t.z.boolean().optional()}),description:"Renders a user avatar with image, initials, or icon fallback.",renderer:e=>m.Avatar({name:e.name,src:e.src,icon:e.icon,size:e.size,variant:e.variant,color:e.color,bordered:e.bordered})}),c({name:"AvatarGroup",props:t.z.object({names:t.z.array(t.z.string()),size:t.z.enum(["xs","sm","md","lg","xl","2xl"]).optional(),spacing:t.z.enum(["tight","normal"]).optional(),overflow:t.z.number().optional()}),description:"Renders a container for grouping multiple Avatar components with overlapping or spaced layout.",renderer:e=>m.AvatarGroup({size:e.size,spacing:e.spacing},...e.names.map(n=>m.Avatar({name:n,size:e.size})),...e.overflow!=null?[m.AvatarGroupOverflow({count:e.overflow,size:e.size})]:[])}),c({name:"ProgressBar",props:t.z.object({value:t.z.number().optional(),size:t.z.enum(["sm","md","lg"]).optional(),color:C.optional(),max:t.z.number().optional(),showLabel:t.z.boolean().optional()}),description:'Horizontal progress bar. ProgressBar(75, "md") shows 75% progress.',renderer:e=>m.ProgressBar({value:e.value,max:e.max,size:e.size,color:e.color,showLabel:e.showLabel??!0})}),c({name:"Skeleton",props:t.z.object({variant:t.z.enum(["text","rect","circle"]).optional(),width:t.z.string().optional(),height:t.z.string().optional(),lines:t.z.number().optional(),animate:t.z.boolean().optional()}),description:"A loading placeholder component that shows a shimmer animation.",renderer:e=>m.Skeleton({variant:e.variant,width:e.width,height:e.height,lines:e.lines,animate:e.animate})}),c({name:"Indicator",props:t.z.object({show:t.z.boolean().optional(),count:t.z.number().optional(),color:C.optional(),placement:t.z.enum(["top-right","top-left","bottom-right","bottom-left"]).optional(),size:D.optional(),children:t.z.array(t.z.any()).optional()}),description:"Overlays a small dot or count badge on any child content for notification counts or status.",renderer:e=>m.Indicator({show:e.show,count:e.count,color:e.color,placement:e.placement,size:e.size},...e.children??[])}),c({name:"HistoryTimeline",props:t.z.object({entries:t.z.array(t.z.object({id:t.z.string(),action:t.z.string(),actionColor:t.z.string(),icon:t.z.string(),target:t.z.string(),targetIcon:t.z.string(),actor:t.z.object({name:t.z.string(),initials:t.z.string()}),time:t.z.string(),detail:t.z.string(),restorable:t.z.boolean().optional()}))}),description:"A timeline component displaying a history of actions with filtering support.",renderer:e=>m.HistoryTimeline({entries:l.prop(e.entries)})}),c({name:"Icon",props:t.z.object({icon:t.z.string(),size:t.z.enum(["xs","sm","md","lg","xl","2xl"]).optional(),color:C.optional(),title:t.z.string().optional()}),description:"Renders an SVG icon from the Iconify icon library with lazy-loading and caching.",renderer:e=>J.Icon({icon:e.icon,size:e.size,color:e.color,title:e.title})})],w=t.z.enum(["xs","sm","md","lg","xl"]),be=[c({name:"TextInput",props:t.z.object({value:t.z.string().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A single-line text input component.",renderer:e=>{const n=l.prop(e.value??"");return Q.TextInput({value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size})}}),c({name:"NumberInput",props:t.z.object({value:t.z.number().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional(),min:t.z.number().optional(),max:t.z.number().optional(),step:t.z.number().optional()}),description:"A number input component for numeric values.",renderer:e=>{const n=l.prop(e.value??0);return L.NumberInput({value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size,min:e.min,max:e.max,step:e.step})}}),c({name:"PasswordInput",props:t.z.object({value:t.z.string().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A password input with toggle to show/hide the value.",renderer:e=>{const n=l.prop(e.value??"");return V.PasswordInput({value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size})}}),c({name:"EmailInput",props:t.z.object({value:t.z.string().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"An email address input component.",renderer:e=>{const n=l.prop(e.value??"");return V.EmailInput({value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size})}}),c({name:"TextArea",props:t.z.object({value:t.z.string().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional(),rows:t.z.number().optional()}),description:"A multi-line text input component.",renderer:e=>{const n=l.prop(e.value??"");return L.TextArea({value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size,rows:e.rows})}}),c({name:"CheckboxInput",props:t.z.object({checked:t.z.boolean().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A custom checkbox input component with icon-based checked/unchecked states.",renderer:e=>{const n=l.prop(e.checked??!1);return _.CheckboxInput({value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size})}}),c({name:"Switch",props:t.z.object({value:t.z.boolean().optional(),disabled:t.z.boolean().optional(),size:w.optional(),color:t.z.enum(["primary","secondary","success","warning","danger","info","neutral","base"]).optional()}),description:"A toggle switch component for boolean on/off states with animated thumb transition.",renderer:e=>{const n=l.prop(e.value??!1);return B.Switch({value:n,onChange:a=>n.set(a),disabled:e.disabled,size:e.size,color:e.color})}}),c({name:"RadioGroup",props:t.z.object({options:t.z.array(t.z.object({value:t.z.string(),label:t.z.string(),description:t.z.string().optional(),disabled:t.z.boolean().optional()})),value:t.z.string().optional(),orientation:t.z.enum(["horizontal","vertical"]).optional(),size:w.optional(),disabled:t.z.boolean().optional()}),description:"A group of radio buttons allowing the user to select one option from a mutually exclusive list.",renderer:e=>{const n=l.prop(e.value??e.options[0]?.value??"");return m.RadioGroup({options:l.prop(e.options),value:n,onChange:a=>n.set(a),orientation:e.orientation,size:e.size,disabled:e.disabled})}}),c({name:"NativeSelect",props:t.z.object({options:t.z.array(t.z.object({value:t.z.string(),label:t.z.string()})),value:t.z.string().optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A native HTML select dropdown input component.",renderer:e=>{const n=l.prop(e.value??e.options[0]?.value??"");return L.NativeSelect({options:l.prop(e.options.map(a=>({type:"value",value:a.value,label:a.label}))),value:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size})}}),c({name:"RatingInput",props:t.z.object({value:t.z.number().optional(),max:t.z.number().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A star rating input component with fractional precision support.",renderer:e=>{const n=l.prop(e.value??0);return B.RatingInput({value:n,onChange:a=>n.set(a),max:e.max,disabled:e.disabled,size:e.size})}}),c({name:"SliderInput",props:t.z.object({value:t.z.number().optional(),min:t.z.number().optional(),max:t.z.number().optional(),step:t.z.number().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A range slider input component.",renderer:e=>{const n=l.prop(e.value??e.min??0);return B.SliderInput({value:n,onChange:a=>n.set(a),min:e.min,max:e.max,step:e.step,disabled:e.disabled,size:e.size})}}),c({name:"ColorInput",props:t.z.object({value:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A color picker input component.",renderer:e=>{const n=l.prop(e.value??"#000000");return m.ColorInput({value:n,onChange:a=>n.set(a),disabled:e.disabled,size:e.size})}}),c({name:"TagInput",props:t.z.object({tags:t.z.array(t.z.string()).optional(),placeholder:t.z.string().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"An input for entering and managing a list of tags.",renderer:e=>{const n=l.prop(e.tags??[]);return m.TagInput({values:n,onChange:a=>n.set(a),placeholder:e.placeholder,disabled:e.disabled,size:e.size})}}),c({name:"OTPInput",props:t.z.object({value:t.z.string().optional(),length:t.z.number().optional(),disabled:t.z.boolean().optional(),size:w.optional()}),description:"A one-time password input with individual character fields.",renderer:e=>{const n=l.prop(e.value??"");return m.OtpInput({value:n,onChange:a=>n.set(a),length:e.length,disabled:e.disabled,size:e.size})}}),c({name:"SegmentedInput",props:t.z.object({options:t.z.record(t.z.string(),t.z.string()),value:t.z.string().optional(),size:w.optional(),disabled:t.z.boolean().optional(),variant:t.z.enum(["pill","squared"]).optional()}),description:"A segmented control for selecting one option from a set, similar to a tab bar or radio group.",renderer:e=>{const n=Object.keys(e.options),a=l.prop(e.value??n[0]??"");return L.SegmentedInput({options:e.options,value:a,onChange:o=>a.set(o),size:e.size,disabled:e.disabled,variant:e.variant})}})],I=t.z.enum(["xs","sm","md","lg","xl"]),M=t.z.enum(["primary","secondary","success","warning","danger","info","neutral","base"]),ge=[c({name:"Tabs",props:t.z.object({items:t.z.array(t.z.object({key:t.z.string(),label:t.z.string(),content:t.z.string().optional(),disabled:t.z.boolean().optional()})),activeKey:t.z.string().optional(),size:I.optional(),variant:t.z.enum(["default","filled","outline","underline","pill"]).optional(),color:M.optional(),orientation:t.z.enum(["horizontal","vertical"]).optional()}),description:"A tabbed navigation component with content panels for each tab.",renderer:e=>{const n=e.activeKey??e.items[0]?.key??"",a=l.prop(n);return m.Tabs({items:e.items.map(o=>({key:o.key,label:o.label,content:()=>l.html.div(l.style.padding("1rem 0"),o.content??""),disabled:o.disabled})),value:a,onChange:o=>a.set(o),size:e.size,variant:e.variant??"underline",color:e.color,orientation:e.orientation})}}),c({name:"Breadcrumbs",props:t.z.object({items:t.z.array(t.z.object({label:t.z.string(),href:t.z.string().optional(),icon:t.z.string().optional(),current:t.z.boolean().optional()})),separator:t.z.string().optional(),maxItems:t.z.number().optional(),size:I.optional()}),description:"A breadcrumb navigation component showing the current page location within a hierarchy.",renderer:e=>m.Breadcrumbs({items:l.prop(e.items),separator:e.separator,maxItems:e.maxItems,size:e.size})}),c({name:"Pagination",props:t.z.object({currentPage:t.z.number(),totalPages:t.z.number(),siblings:t.z.number().optional(),showPrevNext:t.z.boolean().optional(),showFirstLast:t.z.boolean().optional(),size:I.optional(),variant:t.z.enum(["filled","outline","default"]).optional(),color:M.optional()}),description:"A pagination control for navigating between pages of content.",renderer:e=>{const n=l.prop(e.currentPage);return m.Pagination({currentPage:n,totalPages:e.totalPages,onChange:a=>n.set(a),siblings:e.siblings,showPrevNext:e.showPrevNext,showFirstLast:e.showFirstLast,size:e.size,variant:e.variant,color:e.color})}}),c({name:"Stepper",props:t.z.object({steps:t.z.array(t.z.object({label:t.z.string(),description:t.z.string().optional(),icon:t.z.string().optional()})),activeStep:t.z.number().optional(),orientation:t.z.enum(["horizontal","vertical"]).optional(),variant:t.z.enum(["default","compact"]).optional(),size:I.optional(),color:M.optional(),showNavigation:t.z.boolean().optional()}),description:"A step-by-step wizard component for multi-step forms or workflows.",renderer:e=>{const n=l.prop(e.activeStep??0);return m.Stepper({steps:e.steps.map(a=>({label:a.label,description:a.description,icon:a.icon})),value:n,onChange:a=>n.set(a),orientation:e.orientation,variant:e.variant,size:e.size,color:e.color,showNavigation:e.showNavigation})}}),c({name:"TreeView",props:t.z.object({items:t.z.array(t.z.object({id:t.z.string(),label:t.z.string(),icon:t.z.string().optional(),badge:t.z.string().optional(),children:t.z.array(t.z.object({id:t.z.string(),label:t.z.string(),icon:t.z.string().optional()})).optional()})),selectedId:t.z.string().optional(),size:I.optional()}),description:"A hierarchical tree view component for displaying nested data with expand/collapse.",renderer:e=>{const n=l.prop(e.selectedId);return m.TreeView({items:l.prop(e.items),selectedId:n,onSelect:a=>n.set(a),size:e.size})}}),c({name:"Sidebar",props:t.z.object({backgroundMode:t.z.enum(["light","dark"]).optional(),groups:t.z.array(t.z.object({label:t.z.string(),links:t.z.array(t.z.object({label:t.z.string(),href:t.z.string().optional(),icon:t.z.string().optional(),active:t.z.boolean().optional()}))})).optional()}),description:"A navigation sidebar component for application layouts, supporting grouped links.",renderer:e=>m.Sidebar({backgroundMode:e.backgroundMode},...(e.groups??[]).map(n=>m.SidebarGroup({header:n.label},...n.links.map(a=>m.SidebarLink({content:a.label,href:a.href??"#",icon:a.icon})))))})],he=[c({name:"Modal",props:t.z.object({triggerLabel:t.z.string(),title:t.z.string().optional(),body:t.z.string(),footerLabel:t.z.string().optional(),size:t.z.enum(["sm","md","lg","xl"]).optional(),dismissable:t.z.boolean().optional(),position:t.z.enum(["center","top","bottom","left","right","top-start","top-end","bottom-start","bottom-end"]).optional()}),description:"A modal dialog component with structured header, body, and footer sections. Renders a trigger button that opens the modal.",renderer:e=>X.Modal({size:e.size,dismissable:e.dismissable,position:e.position},(n,a)=>j.Button({onClick:()=>n({header:e.title?l.html.h2(e.title):void 0,body:l.html.p(e.body),footer:e.footerLabel?j.Button({variant:"filled",onClick:a},e.footerLabel):void 0})},e.triggerLabel))}),c({name:"Drawer",props:t.z.object({triggerLabel:t.z.string(),title:t.z.string().optional(),body:t.z.string(),side:t.z.enum(["top","right","bottom","left","inline-start","inline-end"]).optional(),size:t.z.enum(["sm","md","lg","xl"]).optional()}),description:"A slide-out panel component that anchors to any side of the viewport. Renders a trigger button.",renderer:e=>m.Drawer((n,a)=>j.Button({onClick:()=>n({side:e.side,size:e.size,header:e.title?l.html.h3(e.title):void 0,body:l.html.p(e.body)})},e.triggerLabel))}),c({name:"Tooltip",props:t.z.object({content:t.z.string(),triggerLabel:t.z.string(),placement:t.z.enum(["top","bottom","left","right","top-start","top-end","bottom-start","bottom-end"]).optional()}),description:"A tooltip that provides contextual information when hovering or focusing on an element. Must be a child of the trigger element.",renderer:e=>j.Button({},e.triggerLabel,m.Tooltip({content:e.content,placement:e.placement}))}),c({name:"Popover",props:t.z.object({content:t.z.string(),triggerLabel:t.z.string(),placement:t.z.enum(["top","bottom","left","right","top-start","top-end","bottom-start","bottom-end"]).optional()}),description:"A popover that displays arbitrary content in a positioned overlay panel triggered by clicking. Must be a child of the trigger element.",renderer:e=>j.Button({stopPropagation:!1},e.triggerLabel,m.Popover({content:l.html.div(l.html.p(e.content)),placement:e.placement}))})],fe=[c({name:"FormatNumber",props:t.z.object({value:t.z.number(),style:t.z.enum(["decimal","currency","percent","unit"]).optional(),currency:t.z.string().optional(),notation:t.z.enum(["standard","scientific","engineering","compact"]).optional(),minimumFractionDigits:t.z.number().optional(),maximumFractionDigits:t.z.number().optional(),locale:t.z.string().optional()}),description:"Locale-aware number formatting component.",renderer:e=>m.FormatNumber({value:e.value,style:e.style,currency:e.currency,notation:e.notation,minimumFractionDigits:e.minimumFractionDigits,maximumFractionDigits:e.maximumFractionDigits,locale:e.locale})}),c({name:"FormatDate",props:t.z.object({value:t.z.string(),dateStyle:t.z.enum(["full","long","medium","short"]).optional(),locale:t.z.string().optional(),timeZone:t.z.string().optional()}),description:"Locale-aware date formatting component.",renderer:e=>m.FormatDate({value:e.value,dateStyle:e.dateStyle,locale:e.locale,timeZone:e.timeZone})}),c({name:"FormatTime",props:t.z.object({value:t.z.string(),timeStyle:t.z.enum(["full","long","medium","short"]).optional(),locale:t.z.string().optional(),timeZone:t.z.string().optional(),hour12:t.z.boolean().optional()}),description:"Locale-aware time formatting component.",renderer:e=>m.FormatTime({value:e.value,timeStyle:e.timeStyle,locale:e.locale,timeZone:e.timeZone,hour12:e.hour12})}),c({name:"FormatDateTime",props:t.z.object({value:t.z.string(),dateStyle:t.z.enum(["full","long","medium","short"]).optional(),timeStyle:t.z.enum(["full","long","medium","short"]).optional(),locale:t.z.string().optional(),timeZone:t.z.string().optional()}),description:"Locale-aware date and time formatting component combining date and time styles.",renderer:e=>m.FormatDateTime({value:e.value,dateStyle:e.dateStyle,timeStyle:e.timeStyle,locale:e.locale,timeZone:e.timeZone})}),c({name:"FormatRelativeTime",props:t.z.object({value:t.z.number(),unit:t.z.enum(["year","quarter","month","week","day","hour","minute","second"]),numeric:t.z.enum(["always","auto"]).optional(),style:t.z.enum(["long","short","narrow"]).optional(),locale:t.z.string().optional()}),description:'Locale-aware relative time formatting component (e.g., "2 days ago", "in 3 hours").',renderer:e=>m.FormatRelativeTime({value:e.value,unit:e.unit,numeric:e.numeric,style:e.style,locale:e.locale})}),c({name:"FormatFileSize",props:t.z.object({value:t.z.number(),decimalPlaces:t.z.number().optional(),locale:t.z.string().optional()}),description:'Locale-aware file size formatting component (e.g., "1.5 KB", "2.3 MB").',renderer:e=>m.FormatFileSize({value:e.value,decimalPlaces:e.decimalPlaces,locale:e.locale})})],ye=[c({name:"Kbd",props:t.z.object({key:t.z.string(),size:t.z.enum(["xs","sm","md"]).optional()}),description:"A styled keyboard key indicator component for displaying keyboard shortcuts.",renderer:e=>m.Kbd({size:e.size},e.key)}),c({name:"Label",props:t.z.object({text:t.z.string(),type:t.z.enum(["default","emphasis","muted","danger"]).optional()}),description:"An inline label component for text with semantic styling variants.",renderer:e=>{const n=e.type??"default";return n==="emphasis"?T.EmphasisLabel(e.text):n==="muted"?T.MutedLabel(e.text):n==="danger"?T.DangerLabel(e.text):T.Label(e.text)}})],ve=Z({components:[...me,...pe,...ze,...be,...ge,...he,...fe,...ye],root:"Stack",groups:[{name:"Layout",description:"Structural containers",components:["Stack","Flex","Card","Divider","Accordion","Center","Group","Collapse"]},{name:"Button",description:"Interactive buttons",components:["Button","ToggleButton","CopyButton","CloseButton","ToggleButtonGroup"]},{name:"Data Display",description:"Content presentation",components:["StatCard","Badge","AutoColorBadge","Avatar","AvatarGroup","ProgressBar","DataTable","Skeleton","Indicator","HistoryTimeline","Icon"]},{name:"Form",description:"User input controls",components:["TextInput","NumberInput","PasswordInput","EmailInput","TextArea","CheckboxInput","Switch","RadioGroup","NativeSelect","DropdownInput","ComboboxInput","DatePicker","TimePicker","RatingInput","SliderInput","ColorInput","TagInput","OTPInput","SegmentedInput"]},{name:"Navigation",description:"Navigation controls",components:["Tabs","Breadcrumbs","Pagination","Stepper","TreeView","Sidebar"]},{name:"Overlay",description:"Floating content",components:["Modal","Drawer","Tooltip","Popover"]},{name:"Format",description:"Formatted values",components:["FormatNumber","FormatDate","FormatTime","FormatDateTime","FormatRelativeTime","FormatFileSize"]},{name:"Typography",description:"Text elements",components:["Kbd","Label"]}]});function we(){return l.html.div(l.attr.class("bc-skeleton bc-skeleton--text"),l.attr.style("min-height: 1.5em; width: 100%;"))}function Se(e){return Object.keys(e.props.shape)}function O(e,n,a,o,i){switch(e.type){case"string":return e.value;case"number":return String(e.value);case"boolean":return String(e.value);case"null":return l.Empty;case"array":return l.Fragment(...e.items.map(r=>O(r,n,a,o,i)));case"object":return l.Empty;case"reference":{if(o){const r=o.get(e.name);if(r)return O(r.value,n,a,o,i)}return we()}case"component":{const r=n.get(e.name);if(!r)return l.Empty;const u=Se(r).includes("children"),s=e.args;let d={},b=[];if(s.length>=1&&s[0].type==="object"){d=$(s[0]);const h=s[s.length-1];s.length>1&&h.type==="array"&&u&&(b=h.items)}else s.length>=1&&s[0].type==="array"&&u&&(b=s[0].items);const v=b.map(h=>O(h,n,a,o,i));u&&v.length>0&&(d.children=v);const p={...d};delete p.children;const z=r.props.safeParse(p),g=z.success?{...z.data,...d.children!=null?{children:d.children}:{}}:d;return i&&d.actionType&&(g.__onAction=i),r.renderer(g,v)}}}function $(e){switch(e.type){case"string":return e.value;case"number":return e.value;case"boolean":return e.value;case"null":return null;case"array":return e.items.map(n=>$(n));case"object":return Object.fromEntries(Object.entries(e.entries).map(([n,a])=>[n,$(a)]));case"reference":return e.name;case"component":return e.name}}const R={mark:l.makeProviderMark("OpenUI:ActionContext"),create:(e={})=>{const n=l.prop([]);return{value:{onAction:e.onAction,actions:n},dispose:()=>n.dispose()}}};function Ce(e){const{library:n,response:a,isStreaming:o,onAction:i,onError:r,onComplete:u,debug:s}=e,d=i?p=>i(p):void 0;function b(p){if(!p)return l.Empty;const g=q(n)(p);return g.meta.errors.length>0&&r&&r(g.meta.errors),g.root?v(g.root,g):l.Empty}function v(p,z){if(p.type==="reference"){const g=z.statements.get(p.name);return g?v(g.value,z):l.Empty}if(p.type==="component"){const g=p.args.map(h=>{if(h.type==="reference"){const f=z.statements.get(h.name);return f?f.value:h}return h.type==="array"?{...h,items:h.items.map(f=>{if(f.type==="reference"){const y=z.statements.get(f.name);return y?y.value:f}return f})}:h});return O({...p,args:g},n,s,z.statements,d)}return O(p,n,s,z.statements,d)}return typeof a=="string"?l.html.div(l.attr.class(e.className??""),l.Provide(R,{onAction:i},()=>b(a))):l.html.div(l.attr.class(e.className??""),l.Provide(R,{onAction:i},()=>l.WithCtx(p=>{let z=null;const g=l.Value.get(a);if(g){const y=l.renderableOfTNode(b(g));z=l.renderWithContext(y,p)}const h=l.Value.on(a,y=>{if(z&&(z(!0),z=null),y){const S=l.renderableOfTNode(b(y));z=l.renderWithContext(S,p)}});let f=null;return o!==void 0&&(f=l.Value.on(o,y=>{!y&&u&&u()})),l.OnDispose(()=>{h(),f&&f(),z&&z(!0)})})))}function je(e,n){const a=l.prop(""),o=l.prop(!0),{onComplete:i,onError:r,extractContent:u,withCredentials:s}=n??{},d=new EventSource(e,{withCredentials:s??!1});let b="";return d.addEventListener("message",p=>{const z=p.data;if(u)try{b+=u(z)}catch{}else b+=z;a.set(b)}),d.addEventListener("error",()=>{if(d.readyState===EventSource.CLOSED)o.set(!1),i?.();else{const p=new Error("EventSource error");r?.(p),o.set(!1)}}),{response:a,isStreaming:o,abort:()=>{d.close(),a.dispose(),o.dispose()}}}function ke(e,n,a){const o=l.prop(""),i=l.prop(!0),r=new AbortController,u=()=>{r.abort(),o.dispose(),i.dispose()};return fetch(e,{...n,signal:r.signal}).then(async s=>{const d=s.body;if(!d){i.set(!1),a?.onComplete?.();return}const b=d.getReader(),v=new TextDecoder;let p="";for(;;){const{done:z,value:g}=await b.read();if(z)break;const h=v.decode(g,{stream:!0});if(a?.extractContent){const f=h.split(`
9
+ `);for(const y of f){const S=y.trim();if(S)try{p+=a.extractContent(S)}catch{}}o.set(p)}else p+=h,o.set(p)}i.set(!1),a?.onComplete?.()}).catch(s=>{s instanceof Error&&s.name==="AbortError"||(a?.onError?.(s instanceof Error?s:new Error(String(s))),i.set(!1))}),{response:o,isStreaming:i,abort:u}}function Ae(e,n){const a=l.prop(""),o=l.prop(!0),{onComplete:i,onError:r,extractContent:u,protocols:s}=n??{},d=s?new WebSocket(e,s):new WebSocket(e);let b="";return d.addEventListener("message",z=>{const g=z.data;if(u)try{b+=u(g)}catch{}else b+=g;a.set(b)}),d.addEventListener("close",()=>{o.set(!1),i?.()}),d.addEventListener("error",()=>{const z=new Error("WebSocket error");r?.(z),o.set(!1)}),{response:a,isStreaming:o,close:()=>{d.close(),a.dispose(),o.dispose()},send:z=>{d.send(z)}}}exports.ActionContextProvider=R;exports.OpenUIRenderer=Ce;exports.beatuiLibrary=ve;exports.createLibrary=Z;exports.createParser=q;exports.createStreamingParser=se;exports.defineComponent=c;exports.fromFetch=ke;exports.fromSSE=je;exports.fromWebSocket=Ae;