@tempots/beatui 1.7.5 → 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 (159) 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/better-auth/index.cjs.js +1 -1
  8. package/dist/better-auth/index.es.js +27 -26
  9. package/dist/card-BkA7Wvbh.cjs +1 -0
  10. package/dist/card-DX1DwGbL.js +62 -0
  11. package/dist/{colors-C2sgnzFH.js → colors-CyMhfbJi.js} +64 -58
  12. package/dist/{colors-DPCHjRMj.cjs → colors-IXZF9U-s.cjs} +1 -1
  13. package/dist/control-hqEuMzyI.js +343 -0
  14. package/dist/control-muup9GF1.cjs +1 -0
  15. package/dist/custom-validation-BA9iJWl_.cjs +1 -0
  16. package/dist/custom-validation-BOBoUwHY.js +181 -0
  17. package/dist/{de-C5-k5Eov.js → de-CBIwvkAH.js} +1 -1
  18. package/dist/{de-DZqdSEta.cjs → de-DdfxrlT3.cjs} +1 -1
  19. package/dist/deep-merge-8fwp1z4X.js +1346 -0
  20. package/dist/deep-merge-VDGE_HQD.cjs +1 -0
  21. package/dist/duration-input-DmsljXl3.cjs +1 -0
  22. package/dist/{duration-input-D4V_PHIg.js → duration-input-ZQlcqdXU.js} +32 -31
  23. package/dist/{editor-toolbar-group-FpOHrmtx.js → editor-toolbar-group-BNTBMJCe.js} +2 -2
  24. package/dist/{editor-toolbar-group-C_ft_T8D.cjs → editor-toolbar-group-DiMzqYgz.cjs} +1 -1
  25. package/dist/{es-h6jmoF4X.js → es--9HaEj2D.js} +1 -1
  26. package/dist/{es-CJgYfRap.cjs → es-DSdljxFJ.cjs} +1 -1
  27. package/dist/{fa-BuxK837l.js → fa-1Z-akcW7.js} +1 -1
  28. package/dist/{fa-BQ5PzwNY.cjs → fa-BolmeWRT.cjs} +1 -1
  29. package/dist/flyout-CuKFh_T7.js +151 -0
  30. package/dist/flyout-DC_tKaTG.cjs +1 -0
  31. package/dist/{fr-Bv3TG44U.cjs → fr-CODgUuoZ.cjs} +1 -1
  32. package/dist/{fr-BwILQ9G2.js → fr-DhHM9rou.js} +1 -1
  33. package/dist/{he-yC9Sc7JD.js → he-CBamXbGJ.js} +1 -1
  34. package/dist/{he-5LbvgMCC.cjs → he-Juw-dr28.cjs} +1 -1
  35. package/dist/{hi-Da7rcCpP.js → hi-DvvcX-Ra.js} +1 -1
  36. package/dist/{hi-YWhWcG_L.cjs → hi-R749jeg-.cjs} +1 -1
  37. package/dist/{index-CvU9E9wd.js → index-BfQaT5Jy.js} +104 -104
  38. package/dist/{index-XogEKwdt.cjs → index-Dv7nPuwA.cjs} +1 -1
  39. package/dist/index.cjs.js +4 -4
  40. package/dist/index.es.js +6713 -9831
  41. package/dist/{input-container-CyOgiiQD.cjs → input-container-BaWQLWB6.cjs} +1 -1
  42. package/dist/{input-container-8JFB11xN.js → input-container-DCS5oJ4S.js} +4 -4
  43. package/dist/{it-BxOIJE45.cjs → it-DT5oRZDH.cjs} +1 -1
  44. package/dist/{it-Yeklau78.js → it-aV6i8Qxz.js} +1 -1
  45. package/dist/{ja-Dxj9Q5Yd.js → ja-CuLhGnJX.js} +1 -1
  46. package/dist/{ja-CNhjK06P.cjs → ja-CwKaCYLB.cjs} +1 -1
  47. package/dist/json-schema/index.cjs.js +1 -1
  48. package/dist/json-schema/index.es.js +83 -79
  49. package/dist/json-schema-display/index.cjs.js +1 -1
  50. package/dist/json-schema-display/index.es.js +2 -2
  51. package/dist/json-structure/index.cjs.js +1 -1
  52. package/dist/json-structure/index.es.js +74 -72
  53. package/dist/{ko-DgkqcXTs.cjs → ko-Bucro9ID.cjs} +1 -1
  54. package/dist/{ko-gn_MsegK.js → ko-D-66BsEX.js} +1 -1
  55. package/dist/lexical/index.cjs.js +1 -1
  56. package/dist/lexical/index.es.js +5 -5
  57. package/dist/menu-BFLFKceF.cjs +1 -0
  58. package/dist/menu-BO6zqyfq.js +220 -0
  59. package/dist/modal-6Mq3vS5r.js +309 -0
  60. package/dist/modal-d77-TMc4.cjs +1 -0
  61. package/dist/{nl-vHNFtXXb.js → nl-CAny6wvm.js} +1 -1
  62. package/dist/{nl-Dy9lmbBO.cjs → nl-D7vHpehb.cjs} +1 -1
  63. package/dist/notice-BNGx86Yg.js +110 -0
  64. package/dist/notice-iF6zBMq9.cjs +1 -0
  65. package/dist/{oneof-branch-detection-Q_jxvJIA.js → oneof-branch-detection-Bm17RhC2.js} +27 -26
  66. package/dist/oneof-branch-detection-DZ4MrfBp.cjs +1 -0
  67. package/dist/openui/index.cjs.js +9 -0
  68. package/dist/openui/index.es.js +2174 -0
  69. package/dist/password-input-Bipt7Wsu.cjs +1 -0
  70. package/dist/password-input-mkRmrEPq.js +105 -0
  71. package/dist/{pl-BtYbtsmG.cjs → pl-CSiXoOKT.cjs} +1 -1
  72. package/dist/{pl-C0UdHla0.js → pl-rmZLgQ_V.js} +1 -1
  73. package/dist/prosemirror/index.cjs.js +1 -1
  74. package/dist/prosemirror/index.es.js +4 -4
  75. package/dist/{pt-CtNmqQ1X.cjs → pt-CJT-iq4y.cjs} +1 -1
  76. package/dist/{pt-DGKtfN0d.js → pt-DHnajqAi.js} +1 -1
  77. package/dist/{ru-CpXYLt-v.js → ru-C_E8OZNE.js} +1 -1
  78. package/dist/{ru-BaL_NPRU.cjs → ru-G3sr_ctV.cjs} +1 -1
  79. package/dist/slider-input-SLguFA0d.cjs +1 -0
  80. package/dist/slider-input-VYAMm7pE.js +285 -0
  81. package/dist/stepper-24p16Zsv.cjs +1 -0
  82. package/dist/stepper-TlzbfYWa.js +3222 -0
  83. package/dist/tailwind/preset.cjs.js +1 -1
  84. package/dist/tailwind/preset.es.js +38 -40
  85. package/dist/tailwind/vite-plugin.cjs.js +14 -12
  86. package/dist/tailwind/vite-plugin.es.js +317 -246
  87. package/dist/text-area-BdemKQ_w.cjs +1 -0
  88. package/dist/text-area-Br83-_PQ.js +431 -0
  89. package/dist/{text-input-NJypZSnE.js → text-input-ByuxdX8w.js} +5 -5
  90. package/dist/{text-input-DS5zlXb2.cjs → text-input-MjlUC_9u.cjs} +1 -1
  91. package/dist/{toolbar-BF2L6WKC.js → toolbar-CEBTTjHh.js} +1 -1
  92. package/dist/{toolbar-BBwfe8U9.cjs → toolbar-DWawYFFX.cjs} +1 -1
  93. package/dist/{tr-DwOd87oB.cjs → tr-DcxLHHTC.cjs} +1 -1
  94. package/dist/{tr-DIFZDFW_.js → tr-bVXwloKC.js} +1 -1
  95. package/dist/{translations-EwEmHe3v.cjs → translations-D3xqZUTA.cjs} +1 -1
  96. package/dist/{translations-BCMP-h52.js → translations-DU9wTV1y.js} +20 -19
  97. package/dist/{translations-5cXBrENb.js → translations-RT_UN8ny.js} +1 -1
  98. package/dist/{translations-BqWc0ZHz.cjs → translations-qljG2Chq.cjs} +1 -1
  99. package/dist/types/components/navigation/stepper.d.ts +4 -4
  100. package/dist/types/openui/index.d.ts +28 -0
  101. package/dist/types/openui/library/define-component.d.ts +15 -0
  102. package/dist/types/openui/library/library.d.ts +7 -0
  103. package/dist/types/openui/library/prompt-generator.d.ts +5 -0
  104. package/dist/types/openui/library/types.d.ts +33 -0
  105. package/dist/types/openui/parser/parser.d.ts +8 -0
  106. package/dist/types/openui/parser/streaming-parser.d.ts +14 -0
  107. package/dist/types/openui/parser/tokenizer.d.ts +9 -0
  108. package/dist/types/openui/parser/types.d.ts +46 -0
  109. package/dist/types/openui/registry/button.d.ts +148 -0
  110. package/dist/types/openui/registry/data.d.ts +177 -0
  111. package/dist/types/openui/registry/form.d.ts +65 -0
  112. package/dist/types/openui/registry/format.d.ts +67 -0
  113. package/dist/types/openui/registry/index.d.ts +9 -0
  114. package/dist/types/openui/registry/layout.d.ts +45 -0
  115. package/dist/types/openui/registry/navigation.d.ts +149 -0
  116. package/dist/types/openui/registry/overlay.d.ts +56 -0
  117. package/dist/types/openui/registry/typography.d.ts +17 -0
  118. package/dist/types/openui/renderer/action-context.d.ts +24 -0
  119. package/dist/types/openui/renderer/node-resolver.d.ts +9 -0
  120. package/dist/types/openui/renderer/openui-renderer.d.ts +32 -0
  121. package/dist/types/openui/renderer/skeleton.d.ts +2 -0
  122. package/dist/types/openui/streaming/from-fetch.d.ts +7 -0
  123. package/dist/types/openui/streaming/from-sse.d.ts +7 -0
  124. package/dist/types/openui/streaming/from-websocket.d.ts +10 -0
  125. package/dist/types/openui/streaming/types.d.ts +5 -0
  126. package/dist/types/tailwind/preset.d.ts +25 -4
  127. package/dist/types/tailwind/vite-plugin.d.ts +17 -5
  128. package/dist/types/tokens/colors.d.ts +87 -9
  129. package/dist/types/tokens/index.d.ts +7 -6
  130. package/dist/{ur-DBst-TXc.js → ur-Dls2qb4V.js} +1 -1
  131. package/dist/{ur-D9nLchps.cjs → ur-IRQoHh1E.cjs} +1 -1
  132. package/dist/use-form-BZ8vDYOv.cjs +2 -0
  133. package/dist/use-form-DsCzINfm.js +750 -0
  134. package/dist/utils-D3-NApSw.cjs +1 -0
  135. package/dist/utils-Nbh7yQ73.js +105 -0
  136. package/dist/{vi-Dg1aiMr5.cjs → vi-Bi9SvVCP.cjs} +1 -1
  137. package/dist/{vi-DQOJp32U.js → vi-C3mTzj50.js} +1 -1
  138. package/dist/widget-customization-BV6XB2v_.cjs +1 -0
  139. package/dist/widget-customization-Bso45ONQ.js +1198 -0
  140. package/dist/{zh-DPK4HXl2.js → zh-B4JRJBt2.js} +1 -1
  141. package/dist/{zh-tbwSTbmn.cjs → zh-BMU5rYu1.cjs} +1 -1
  142. package/package.json +31 -20
  143. package/dist/auth-divider-CjcrgXmq.cjs +0 -1
  144. package/dist/custom-validation-7por5nJN.js +0 -488
  145. package/dist/custom-validation-CLscGHY4.cjs +0 -1
  146. package/dist/deep-merge-D90SW1Ci.cjs +0 -1
  147. package/dist/deep-merge-DT2H9AGq.js +0 -1765
  148. package/dist/duration-input-4AQnQpyo.cjs +0 -1
  149. package/dist/menu-B60Q9j3-.cjs +0 -1
  150. package/dist/menu-BkqFGcXg.js +0 -366
  151. package/dist/notice-CQGJyZ8o.js +0 -211
  152. package/dist/notice-p2IqXS5-.cjs +0 -1
  153. package/dist/oneof-branch-detection-xDDDdYRk.cjs +0 -1
  154. package/dist/use-form-8NnZ-KHk.js +0 -1090
  155. package/dist/use-form-Dcra7GeE.cjs +0 -2
  156. package/dist/utils-DmEuG3Np.cjs +0 -1
  157. package/dist/utils-vUtP6iPG.js +0 -165
  158. package/dist/widget-customization-BIBva3f-.js +0 -1458
  159. package/dist/widget-customization-pqmtsraC.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@tempots/dom"),D=require("@tempots/std"),f=require("../use-form-Dcra7GeE.cjs"),b=require("../deep-merge-D90SW1Ci.cjs"),Ze=require("../text-input-DS5zlXb2.cjs"),j=require("../duration-input-4AQnQpyo.cjs"),B=require("../input-container-CyOgiiQD.cjs"),N=require("../stack-dwLevGa2.cjs");function pe(e){return e==="int64"||e==="int128"||e==="uint64"||e==="uint128"}function k(e){return e==="int8"||e==="int16"||e==="int32"||e==="int64"||e==="int128"||e==="uint8"||e==="uint16"||e==="uint32"||e==="uint64"||e==="uint128"}function _(e){return e==="float"||e==="double"||e==="decimal"}function de(e){return k(e)||_(e)}function z(e){return e==="date"||e==="datetime"||e==="time"||e==="duration"}function fe(e){return e==="string"||e==="boolean"||e==="null"||de(e)||z(e)||e==="uuid"||e==="uri"||e==="binary"}function He(e){return e==="object"||e==="array"||e==="set"||e==="map"||e==="tuple"||e==="choice"||e==="any"}function O(e){return typeof e=="object"&&e!==null&&"$ref"in e}function me(e){return typeof e=="object"&&e!==null&&!("type"in e)&&!("$ref"in e)&&!("enum"in e)&&!("const"in e)}function ye(e){return typeof e=="object"&&e!==null&&("type"in e||"$ref"in e||"enum"in e||"const"in e)}function R(e){return e.type==="object"&&"properties"in e}function X(e){return e.type==="array"&&"items"in e}function Y(e){return e.type==="set"&&"items"in e}function Q(e){return e.type==="map"&&"values"in e}function ee(e){return e.type==="tuple"&&"tuple"in e}function te(e){return e.type==="choice"&&"choices"in e}function ge(e){return"enum"in e&&Array.isArray(e.enum)}function he(e){return"const"in e}function Z(e){return e===void 0?null:typeof e=="string"||Array.isArray(e)?e:(O(e),null)}function be(e){return e===void 0?!1:e==="null"?!0:Array.isArray(e)?e.includes("null"):!1}function G(e){return typeof e=="string"?e==="null"?[]:[e]:Array.isArray(e)?e.filter(t=>t!=="null"):[]}const V={int8:{min:-128n,max:127n},int16:{min:-32768n,max:32767n},int32:{min:-2147483648n,max:2147483647n},int64:{min:-9223372036854775808n,max:9223372036854775807n},int128:{min:-170141183460469231731687303715884105728n,max:170141183460469231731687303715884105727n},uint8:{min:0n,max:255n},uint16:{min:0n,max:65535n},uint32:{min:0n,max:4294967295n},uint64:{min:0n,max:18446744073709551615n},uint128:{min:0n,max:340282366920938463463374607431768211455n}};function ve(e){return e.startsWith("#/")?e.slice(2).split("/"):e.includes("/")?e.split("/"):["definitions",e]}function Xe(e,t){let n=e;for(const r of t){if(n==null||typeof n!="object")return;n=n[r]}return n}function A(e,t){const n=ve(e),r=Xe(t,n);if(r==null){console.warn(`Failed to resolve $ref: ${e}`);return}if(ye(r))return r;if(me(r)){console.warn(`$ref "${e}" points to a namespace, not a type definition`);return}}function Ye(e,t){return A(e.$ref,t)}class xe{schema;visited=new Set;constructor(t){this.schema=t}resolve(t){if(this.visited.has(t)){console.warn(`Circular reference detected: ${t}`);return}this.visited.add(t);try{const n=A(t,this.schema);if(n?.type&&O(n.type)){const r=this.resolve(n.type.$ref);if(r){const{type:s,...a}=n;return{...r,...a}}}return n}finally{this.visited.delete(t)}}resolveDefinition(t){if(t.type&&O(t.type)){const n=this.resolve(t.type.$ref);if(n){const{type:r,...s}=t;return{...n,...s}}}return t}reset(){this.visited.clear()}}function J(e){return new xe(e)}class K{schema;definition;path;readOnly;locale;widgetRegistry;isPropertyRequired;suppressLabel;refResolver;constructor(t){this.schema=t.schema,this.definition=t.definition,this.path=t.path,this.readOnly=t.readOnly??!1,this.locale=t.locale,this.widgetRegistry=t.widgetRegistry,this.isPropertyRequired=t.isPropertyRequired??!1,this.suppressLabel=t.suppressLabel??!1,this.refResolver=t.refResolver??J(t.schema)}with(t){return new K({schema:this.schema,definition:t.definition??this.definition,path:t.path??this.path,readOnly:t.readOnly??this.readOnly,locale:t.locale??this.locale,widgetRegistry:t.widgetRegistry??this.widgetRegistry,isPropertyRequired:t.isPropertyRequired??this.isPropertyRequired,suppressLabel:t.suppressLabel??this.suppressLabel,refResolver:this.refResolver})}append(t){return this.with({path:[...this.path,t]})}get isRoot(){return this.path.length===0}get name(){const t=this.path[this.path.length-1];return typeof t=="string"?t:void 0}get widgetName(){return this.path.map(String).join(".")}get resolvedType(){const t=this.definition.type;if(!t)return null;if(O(t)){const n=this.refResolver.resolve(t.$ref);return n?.type?Z(n.type):null}return Z(t)}get primaryType(){const t=this.resolvedType;return t?typeof t=="string"?t==="null"?null:t:G(t)[0]??null:null}get isNullable(){return be(this.definition.type)}get isRequired(){return this.isPropertyRequired}get isOptional(){return!this.isPropertyRequired}get isDeprecated(){return this.definition.deprecated===!0}get isAbstract(){return this.definition.abstract===!0}get isPrimitive(){const t=this.primaryType;return t!=null&&fe(t)}get description(){return this.definition.description}get examples(){return this.definition.examples}get defaultValue(){return this.definition.default}get unit(){return this.definition.unit}get currency(){return this.definition.currency}get label(){if(this.locale&&this.definition.altnames){const n=`lang:${this.locale}`,r=this.definition.altnames[n];if(r)return r}if(this.definition.name)return this.definition.name;const t=this.name;return t?D.upperCaseFirst(D.humanize(t)):""}get altnames(){return this.definition.altnames}get jsonPath(){return this.path.length===0?"":"/"+this.path.map(String).join("/")}resolveRef(t){return this.refResolver.resolve(t)}get hasEnum(){return"enum"in this.definition&&Array.isArray(this.definition.enum)}get enumValues(){if("enum"in this.definition)return this.definition.enum}get hasConst(){return"const"in this.definition}get constValue(){if("const"in this.definition)return this.definition.const}get format(){if("format"in this.definition)return this.definition.format}}function Te(e,t){let n;const r=J(e);if(e.$root){const s=r.resolve(e.$root);s?n=s:(console.warn(`Failed to resolve $root: ${e.$root}`),n=e)}else e.type||e.properties?n=e:n={type:"any"};return new K({schema:e,definition:n,path:[],readOnly:t?.readOnly,locale:t?.locale,widgetRegistry:t?.widgetRegistry,refResolver:r})}function ne(e,t,n){const r=[],s=[];if(!e.$extends)return{merged:e,inheritanceChain:r,errors:s};const a=Array.isArray(e.$extends)?e.$extends:[e.$extends],o=new Set,i=(p,y=0)=>{if(y>100)return s.push({path:p.join(" -> "),message:"Maximum inheritance depth exceeded"}),[];const g=[];for(const d of p){if(o.has(d)){s.push({path:d,message:`Circular inheritance detected: ${d}`});continue}o.add(d),r.push(d);const h=A(d,t);if(!h){s.push({path:d,message:`Failed to resolve base type: ${d}`});continue}if(h.$extends){const m=Array.isArray(h.$extends)?h.$extends:[h.$extends],x=i(m,y+1);g.push(...x)}g.push(h),o.delete(d)}return g},u=i(a);return{merged:Qe(u,e),inheritanceChain:r,errors:s}}function Qe(e,t){if(e.length===0)return t;let n={...e[0]};for(let a=1;a<e.length;a++)n=ae(n,e[a]);n=ae(n,t);const{$extends:r,...s}=n;return s}function ae(e,t){return R(e)&&R(t)?et(e,t):{...e,...t}}function et(e,t){const n={...e.properties??{},...t.properties??{}},r=oe(e.required),s=oe(t.required),a=tt([...r,...s]),o={...e,...t,type:"object",properties:n};return a.length>0&&(o.required=a),o}function oe(e){return e?e.length===0?[]:Array.isArray(e[0])?e.flat():e:[]}function tt(e){return[...new Set(e)]}function nt(e){const t=J(e);return{resolve:n=>(t.reset(),ne(n,e))}}function rt(){return l.html.span(l.attr.class("bc-json-structure-deprecated-badge"),l.attr.style("font-size: var(--font-size-xs); color: var(--color-warning-500, #d97706); background: var(--color-warning-100, #fef3c7); padding: 0.125em 0.5em; border-radius: var(--radius-sm); margin-inline-start: 0.5em; font-weight: normal;"),"(deprecated)")}function w(e,t){return!e||!t?e??"":l.html.span(e,rt())}function it(e){const t=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:t}}function $e({ctx:e,controller:t}){const n=it(e);return f.Control(Ze.TextInput,{...n,controller:b.transformEmptyStringToUndefined(t)})}function st(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Ce({ctx:e,controller:t}){const n=st(e),r=f.Control(f.CheckboxInput,{...n,controller:t});return e.isNullable?f.Control(f.CheckboxInput,{...n,controller:t,after:b.NullableResetAfter(t.signal,t.disabled,s=>t.change(s))}):r}function at(e,t){const n=V[t],r=Ie(e,n.min),s=Se(e,n.max),a=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,min:typeof r=="bigint"?Number(r):r,max:typeof s=="bigint"?Number(s):s,step:1,placeholder:a}}function ot(e,t){const n=V[t],r=Ie(e,n.min),s=Se(e,n.max),a=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,min:typeof r=="number"?BigInt(r):r,max:typeof s=="number"?BigInt(s):s,placeholder:a}}function Ie(e,t){const n=e.definition;if(n.minimum!==void 0){const r=typeof n.minimum=="string"?BigInt(n.minimum):n.minimum;return typeof r=="bigint"?r>t?r:t:BigInt(r)>t?r:Number(t)}if(n.exclusiveMinimum!==void 0){const r=typeof n.exclusiveMinimum=="string"?BigInt(n.exclusiveMinimum):n.exclusiveMinimum,s=typeof r=="bigint"?r+1n:r+1;return typeof s=="bigint"?s>t?s:t:BigInt(s)>t?s:Number(t)}return t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER)?Number(t):t}function Se(e,t){const n=e.definition;if(n.maximum!==void 0){const r=typeof n.maximum=="string"?BigInt(n.maximum):n.maximum;return typeof r=="bigint"?r<t?r:t:BigInt(r)<t?r:Number(t)}if(n.exclusiveMaximum!==void 0){const r=typeof n.exclusiveMaximum=="string"?BigInt(n.exclusiveMaximum):n.exclusiveMaximum,s=typeof r=="bigint"?r-1n:r-1;return typeof s=="bigint"?s<t?s:t:BigInt(s)<t?s:Number(t)}return t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER)?Number(t):t}function we({ctx:e,controller:t,intType:n}){if(pe(n)){const s=ot(e,n);return e.isNullable?f.Control(j.NullableBigintInput,{...s,controller:t}):f.Control(j.BigintInput,{...s,controller:t})}const r=at(e,n);return e.isNullable?f.Control(b.NullableNumberInput,{...r,controller:t}):f.Control(b.NumberInput,{...r,controller:t})}function ut(e,t){const n=e.definition;let r;n.multipleOf!==void 0?r=n.multipleOf:t==="decimal"&&n.scale!==void 0&&(r=Math.pow(10,-n.scale));const s=n.minimum!==void 0?typeof n.minimum=="string"?parseFloat(n.minimum):n.minimum:void 0,a=n.maximum!==void 0?typeof n.maximum=="string"?parseFloat(n.maximum):n.maximum:void 0,o=n.exclusiveMinimum!==void 0?typeof n.exclusiveMinimum=="string"?parseFloat(n.exclusiveMinimum):n.exclusiveMinimum:void 0,i=n.exclusiveMaximum!==void 0?typeof n.exclusiveMaximum=="string"?parseFloat(n.exclusiveMaximum):n.exclusiveMaximum:void 0;let u=e.description;if(o!==void 0||i!==void 0){const p=[];o!==void 0&&p.push(`> ${o}`),i!==void 0&&p.push(`< ${i}`);const y=`Valid range: ${p.join(" and ")}`;u=u?`${u} (${y})`:y}const c=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:u,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,min:s??o,max:a??i,step:r,placeholder:c}}function je({ctx:e,controller:t,floatType:n}){const r=ut(e,n);return e.isNullable?f.Control(b.NullableNumberInput,{...r,controller:t}):f.Control(b.NumberInput,{...r,controller:t})}function lt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}function Me({ctx:e,controller:t}){const n=lt(e);return f.Control(b.UuidInput,{...n,controller:b.transformEmptyStringToUndefined(t)})}function ct(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Oe({ctx:e,controller:t,temporalType:n}){const r=ct(e);switch(n){case"date":return e.isNullable?f.Control(j.NullablePlainDateInput,{...r,controller:t}):f.Control(j.PlainDateInput,{...r,controller:t});case"datetime":return e.isNullable?f.Control(j.NullablePlainDateTimeInput,{...r,controller:t}):f.Control(j.PlainDateTimeInput,{...r,controller:t});case"time":return e.isNullable?f.Control(j.NullablePlainTimeInput,{...r,controller:t}):f.Control(j.PlainTimeInput,{...r,controller:t});case"duration":return e.isNullable?f.Control(b.NullableDurationInput,{...r,controller:t}):f.Control(j.DurationInput,{...r,controller:t});default:return console.warn(`Unknown temporal type: ${n}`),l.Empty}}function pt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:"https://example.com"}}function De({ctx:e,controller:t}){const n=pt(e);return f.Control(b.UrlInput,{...n,controller:b.transformEmptyStringToUndefined(t)})}function dt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Re({ctx:e,controller:t}){const n=dt(e);return f.Control(j.FileInput,{...n,controller:t})}function ft(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:"Enter JSON value"}}function mt(e){return e.transform(t=>t===void 0?void 0:JSON.stringify(t,null,2),t=>{if(!(t===void 0||t.trim()===""))try{return JSON.parse(t)}catch{return t}})}function H({ctx:e,controller:t}){const n=ft(e);return f.Control(b.TextArea,{...n,controller:mt(t)})}function E(e){return{label:e.suppressLabel?void 0:e.label,description:e.description,required:e.isRequired}}function F(e){if(e.default!==void 0)return e.default;if(e.examples&&e.examples.length>0)return e.examples[0];if(!e.type)return;const t=Array.isArray(e.type)?e.type[0]:e.type;if(!(typeof t=="object"&&"$ref"in t))switch(t){case"string":return"";case"boolean":return!1;case"null":return null;case"object":return{};case"array":case"set":return[];case"map":return{};case"any":return;default:return t==="int8"||t==="int16"||t==="int32"||t==="int64"||t==="int128"||t==="uint8"||t==="uint16"||t==="uint32"||t==="uint64"||t==="uint128"||t==="float"||t==="double"||t==="decimal"?0:void 0}}function yt(e,t){return!t||t.length===0?!1:typeof t[0]=="string"?t.includes(e):Array.isArray(t[0])?t.some(n=>n.includes(e)):!1}function gt(e,t="property"){if(!e.has(t))return t;let n=1;for(;e.has(`${t}${n}`);)n++;return`${t}${n}`}function Ae({ctx:e,controller:t}){const n=e.definition;if(n.type!=="object"||!("properties"in n))return console.warn("StructureObjectControl requires an ObjectTypeDefinition"),l.html.div("Invalid object definition");const r=n.properties,s=n.required,a=n.additionalProperties,o=a!==!1,i=typeof a=="object"&&a!==null?a:{type:"any"},u=n.minProperties??0,c=n.maxProperties??1/0,p=D.objectEntries(r),y=new Set(p.map(([v])=>v)),g=p.map(([v,$])=>{const T=v,I=t.field(T),C=yt(T,s);return S({ctx:e.with({definition:$,isPropertyRequired:C,suppressLabel:!1}).append(T),controller:I})}),d=l.MapSignal(t.signal,v=>{const $=Object.keys(v??{}),T=$.filter(C=>!y.has(C));if(T.length===0)return l.Empty;const I=$.length>u&&!e.readOnly;return l.Fragment(...T.map(C=>{const P=t.field(C);return l.html.div(l.attr.class("bc-json-structure-additional-property"),l.html.div(l.attr.class("bc-json-structure-additional-property-header"),l.html.strong(`${C}:`),B.Button({variant:"text",size:"xs",onClick:()=>{const U={...l.Value.get(t.signal)??{}};delete U[C],t.change(U)},disabled:!I},"Remove")),l.html.div(l.attr.class("bc-json-structure-additional-property-value"),S({ctx:e.with({definition:i,isPropertyRequired:!1,suppressLabel:!0}).append(C),controller:P})))}))}),h=o&&!e.readOnly?B.Button({variant:"outline",size:"sm",disabled:l.Value.map(t.signal,v=>Object.keys(v??{}).length>=c),onClick:()=>{const v=l.Value.get(t.signal)??{},$=new Set(Object.keys(v)),T=gt($),I=F(i);t.change({...v,[T]:I})}},"Add Property"):null,m=l.html.div(l.attr.class("bc-json-structure-object-fields"),...g,d,h),x=l.html.div(l.attr.class("bc-json-structure-object"),m);return!e.suppressLabel&&e.name?f.Field({...E(e),content:x}):x}function Ne({ctx:e,controller:t}){const n=e.definition;if(n.type!=="array"||!("items"in n))return console.warn("StructureArrayControl requires an ArrayTypeDefinition"),l.html.div("Invalid array definition");const r=n.items,s=n.minItems??0,a=n.maxItems??1/0,o=l.computedOf(t.signal)(u=>(u?.length??0)<a),i=l.computedOf(t.signal)(u=>(u?.length??0)>s);return b.ListControl({...E(e),controller:t,createItem:()=>F(r),showAdd:!0,addDisabled:l.computedOf(o)(u=>!u||e.readOnly),showRemove:!0,removeDisabled:l.computedOf(i)(u=>!u||e.readOnly),element:u=>{const c=u.position.index,p=u.item;return S({ctx:e.with({definition:r,suppressLabel:!0}).append(c),controller:p})}})}function ke({ctx:e,controller:t}){const n=e.definition;if(n.type!=="set"||!("items"in n))return console.warn("StructureSetControl requires a SetTypeDefinition"),l.html.div("Invalid set definition");const r=n.items,s=n.minItems??0,a=n.maxItems??1/0,o=l.computedOf(t.signal)(c=>(c?.length??0)<a),i=l.computedOf(t.signal)(c=>(c?.length??0)>s),u=l.computedOf(t.signal)(c=>{if(!c||c.length===0)return new Set;const p=new Map,y=new Set;for(let g=0;g<c.length;g++){const d=JSON.stringify(c[g]);p.has(d)?(y.add(p.get(d)),y.add(g)):p.set(d,g)}return y});return b.ListControl({...E(e),controller:t,createItem:()=>F(r),showAdd:!0,addDisabled:l.computedOf(o)(c=>!c||e.readOnly),showRemove:!0,removeDisabled:l.computedOf(i)(c=>!c||e.readOnly),element:c=>{const p=c.position.index,y=c.item,g=u.map(h=>h.has(p)),d=S({ctx:e.with({definition:r,suppressLabel:!0}).append(p),controller:y});return l.Fragment(d,l.When(g,()=>N.Label(l.attr.class("bc-json-structure-set-error"),"Duplicate value - sets must contain unique items")))}})}function ht(e,t="key"){if(!e.has(t))return t;let n=1;for(;e.has(`${t}${n}`);)n++;return`${t}${n}`}function Fe({ctx:e,controller:t}){const n=e.definition;if(n.type!=="map"||!("values"in n))return console.warn("StructureMapControl requires a MapTypeDefinition"),l.html.div("Invalid map definition");const r=n.values,s=n.minProperties??0,a=n.maxProperties??1/0,o=l.MapSignal(t.signal,p=>{const y=Object.keys(p??{});if(y.length===0)return l.Empty;const g=y.length>s&&!e.readOnly;return l.Fragment(...y.map(d=>{const h=t.field(d);return l.html.div(l.attr.class("bc-json-structure-map-entry"),l.html.div(l.attr.class("bc-json-structure-map-entry-header"),l.html.strong(l.attr.class("bc-json-structure-map-entry-key"),`${d}:`),B.Button({variant:"text",size:"xs",onClick:()=>{const m={...l.Value.get(t.signal)??{}};delete m[d],t.change(m)},disabled:!g},"Remove")),l.html.div(l.attr.class("bc-json-structure-map-entry-value"),S({ctx:e.with({definition:r,suppressLabel:!0}).append(d),controller:h})))}))}),i=e.readOnly?null:B.Button({variant:"outline",size:"sm",disabled:l.Value.map(t.signal,p=>Object.keys(p??{}).length>=a),onClick:()=>{const p=l.Value.get(t.signal)??{},y=new Set(Object.keys(p)),g=ht(y),d=F(r);t.change({...p,[g]:d})}},"Add Entry"),u=l.html.div(l.attr.class("bc-json-structure-map-entries"),o,i),c=l.html.div(l.attr.class("bc-json-structure-map"),u);return!e.suppressLabel&&e.name?f.Field({...E(e),content:c}):c}function qe({ctx:e,controller:t}){const n=e.definition;if(n.type!=="tuple"||!("tuple"in n)||!("properties"in n))return console.warn("StructureTupleControl requires a TupleTypeDefinition"),l.html.div("Invalid tuple definition");const r=n.tuple,s=n.properties,a=t.signal.value;if(!Array.isArray(a)||a.length!==r.length){const i=r.map(u=>{const c=s[u];return c?F(c):void 0});t.change(i)}const o=E(e);return l.html.div(l.attr.class("bc-json-structure-tuple"),o.label?l.html.label(l.attr.class("bc-json-structure-tuple-label"),o.label,o.required?l.html.span(l.attr.class("bc-required-indicator"),"*"):null):null,o.description?l.html.div(l.attr.class("bc-json-structure-tuple-description"),o.description):null,l.html.div(l.attr.class("bc-json-structure-tuple-elements"),...r.map((i,u)=>{const c=s[i];if(!c)return console.warn(`Tuple element "${i}" at index ${u} not found in properties`),l.html.div(l.attr.class("bc-json-structure-tuple-element"),l.html.span(`Missing definition for "${i}"`));const p=t.item(u),y=c.name||i;return l.html.div(l.attr.class("bc-json-structure-tuple-element"),l.html.div(l.attr.class("bc-json-structure-tuple-element-header"),l.html.span(l.attr.class("bc-json-structure-tuple-position"),`[${u}]`),l.html.span(l.attr.class("bc-json-structure-tuple-element-name"),y)),l.html.div(l.attr.class("bc-json-structure-tuple-element-control"),S({ctx:e.with({definition:c,suppressLabel:!0}).append(u),controller:p})))})))}function bt({options:e,selected:t,onChange:n,disabled:r}){return b.NativeSelect({options:e.map(s=>({type:"value",value:s.value,label:s.label})),value:t,onChange:n,disabled:r})}function vt({ctx:e,selector:t,inner:n}){const r=N.Stack(l.attr.class("bc-stack--gap-2 bc-stack--align-start"),t,n);return e.isRoot?r:f.Field({label:e.suppressLabel?void 0:e.label,description:e.description,required:e.isRequired,content:r})}function xt(e,t,n){if(!e||typeof e!="object")return null;const r=e;if(n&&n in r){const a=r[n];if(typeof a=="string"&&a in t)return a}const s=Object.keys(r);if(s.length===1){const a=s[0];if(a in t)return a}return null}function Tt(e,t,n){if(!e||typeof e!="object")return;const r=e;if(n&&n in r){const{[n]:s,...a}=r;return a}if(t in r)return r[t]}function ue(e,t,n){return n?e&&typeof e=="object"?{[n]:t,...e}:{[n]:t}:{[t]:e}}function Pe({ctx:e,controller:t}){const n=e.definition;if(!n.choices||typeof n.choices!="object")return console.warn("StructureChoiceControl requires choices property"),l.html.div(l.attr.class("bc-json-structure-error"),"Invalid choice definition: missing choices");const r=n.choices,s=n.selector,a=Object.keys(r);if(a.length===0)return l.html.div(l.attr.class("bc-json-structure-error"),"Choice type has no variants defined");const o=a.map(m=>{const v=r[m].name||m;return{value:m,label:v}}),i=l.computedOf(t.signal)(m=>xt(m,r,s)),u=l.Value.get(i)||a[0],c=l.prop(u);t.onDispose(()=>c.dispose());let p=!1;const y=i.on(m=>{!p&&m!==null&&c.set(m)});t.onDispose(y);const d=bt({options:o,selected:c,onChange:m=>{p=!0,c.set(m);const x=r[m];if(x){const v=F(x),$=ue(v,m,s);t.change($)}},disabled:e.readOnly||e.isDeprecated}),h=l.MapSignal(c,m=>{const x=r[l.Value.get(m)];if(!x)return l.html.div(l.attr.class("bc-json-structure-error"),`Choice variant not found: ${l.Value.get(m)}`);const v=l.computedOf(t.signal)(I=>Tt(I,l.Value.get(m),s)),$=I=>{const C=ue(I,l.Value.get(m),s);t.change(C)},T=new f.Controller([...t.path,l.Value.get(m)],$,v,t.status,{disabled:t.disabled},void 0);return t.onDispose(()=>T.dispose()),S({ctx:e.with({definition:x,suppressLabel:!0}).append(l.Value.get(m)),controller:T})});return vt({ctx:e,selector:d,inner:h})}function $t(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Ve({ctx:e,controller:t}){const n=$t(e);return b.NativeSelectControl({...n,options:(e.enumValues??[]).map(r=>({type:"value",value:r,label:String(r)})),controller:t})}function Ee({ctx:e,controller:t}){return l.Fragment(l.WithElement(()=>{l.Value.get(t.signal)!==e.constValue&&t.change(e.constValue)}),b.Group(N.MutedLabel(e.label,": "),N.Label(String(e.constValue))))}function Ct(e){return{label:e.suppressLabel?void 0:e.label,description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function It(e,t){if(e===null)return t.includes("null")?"null":null;if(e===void 0)return t.includes("string")?"string":t[0]??null;switch(typeof e){case"string":return t.includes("uuid")?"uuid":t.includes("uri")?"uri":t.includes("date")?"date":t.includes("datetime")?"datetime":t.includes("time")?"time":t.includes("duration")?"duration":t.includes("string")?"string":null;case"number":{if(Number.isInteger(e)){if(t.includes("int32"))return"int32";if(t.includes("int64"))return"int64";if(t.includes("uint32"))return"uint32";if(t.includes("uint64"))return"uint64";if(t.includes("int16"))return"int16";if(t.includes("int8"))return"int8";if(t.includes("uint16"))return"uint16";if(t.includes("uint8"))return"uint8"}return t.includes("double")?"double":t.includes("float")?"float":t.includes("decimal")?"decimal":null}case"bigint":return t.includes("int128")?"int128":t.includes("int64")?"int64":t.includes("uint128")?"uint128":t.includes("uint64")?"uint64":null;case"boolean":return t.includes("boolean")?"boolean":null;case"object":return e instanceof File||e instanceof Blob?t.includes("binary")?"binary":null:Array.isArray(e)?t.includes("array")?"array":t.includes("set")?"set":t.includes("tuple")?"tuple":null:t.includes("object")?"object":t.includes("map")?"map":null;default:return null}}function St(e,t){try{switch(t){case"string":case"uuid":case"uri":case"date":case"datetime":case"time":case"duration":return e==null?{ok:!0,value:void 0}:{ok:!0,value:String(e)};case"int8":case"int16":case"int32":case"uint8":case"uint16":case"uint32":return typeof e=="number"&&Number.isInteger(e)?{ok:!0,value:e}:typeof e=="string"?/^[-+]?\d+$/.test(e.trim())?{ok:!0,value:parseInt(e,10)}:{ok:!1}:typeof e=="boolean"?{ok:!0,value:e?1:0}:{ok:!1};case"int64":case"int128":case"uint64":case"uint128":{if(typeof e=="bigint")return{ok:!0,value:e};if(typeof e=="number"&&Number.isInteger(e))return{ok:!0,value:BigInt(e)};if(typeof e=="string")try{return{ok:!0,value:BigInt(e.trim())}}catch{return{ok:!1}}return{ok:!1}}case"float":case"double":case"decimal":{if(typeof e=="number")return{ok:!0,value:e};if(typeof e=="string"){const n=Number(e);return Number.isFinite(n)?{ok:!0,value:n}:{ok:!1}}return typeof e=="boolean"?{ok:!0,value:e?1:0}:{ok:!1}}case"boolean":{if(typeof e=="boolean")return{ok:!0,value:e};if(typeof e=="string"){const n=e.trim().toLowerCase();return n==="true"||n==="1"||n==="yes"?{ok:!0,value:!0}:n==="false"||n==="0"||n==="no"?{ok:!0,value:!1}:{ok:!1}}return typeof e=="number"?{ok:!0,value:e!==0}:{ok:!1}}case"array":case"set":case"tuple":return Array.isArray(e)?{ok:!0,value:e}:{ok:!1};case"object":case"map":return e!=null&&typeof e=="object"&&!Array.isArray(e)?{ok:!0,value:e}:{ok:!1};case"binary":return e instanceof File||e instanceof Blob?{ok:!0,value:e}:{ok:!1};case"null":return{ok:!0,value:null};case"any":case"choice":return{ok:!0,value:e};default:return{ok:!1}}}catch{return{ok:!1}}}function wt(e){switch(e){case"null":return null;case"array":case"set":case"tuple":return[];case"object":case"map":return{};case"binary":return;default:return}}function jt(e){return e.map(t=>({key:t,label:D.upperCaseFirst(t),detect:n=>It(n,[t])===t,convert:n=>St(n,t),defaultValue:()=>wt(t)}))}function Mt({options:e,selected:t,onChange:n}){if((e.length<=3?"segmented":"select")==="segmented"){const a=Object.fromEntries(e.map(o=>[o.value,o.label]));return b.SegmentedInput({options:a,value:t,onChange:o=>n(o),size:"sm"})}return b.NativeSelect({options:e.map(a=>({type:"value",value:a.value,label:a.label})),value:t,onChange:n})}function Ot({ctx:e,showSelector:t,selector:n,inner:r}){return e.isRoot?t?N.Stack(l.attr.class("bc-stack--gap-2"),n,r):r:f.Field({...Ct(e),content:t?N.Stack(l.attr.class("bc-stack--gap-2 bc-stack--align-start"),n,r):r})}function Dt({ctx:e,controller:t}){const n=e.definition,r=n.type;let s;if(Array.isArray(r))s=r;else return console.warn("StructureUnionControl called with non-array type"),S({ctx:e,controller:t});const a=s.includes("null"),o=G(r),i=a&&o.length>0?o:s,u=jt(i),c=new b.UnionController(t.path,t.change,t.signal,t.status,{disabled:t.disabled},u);t.onDispose(()=>c.dispose());const p=d=>Mt({options:i.map(h=>({value:h,label:D.upperCaseFirst(h)})),selected:c.activeBranch,onChange:d}),y=d=>{c.switchToBranch(d,!1)},g=l.MapSignal(c.activeBranch,d=>{const h=l.Value.get(d),m=c.getBranchController(h),x=e.with({definition:{...n,type:h},suppressLabel:!e.isRoot});return S({ctx:x,controller:m})});return Ot({ctx:e,showSelector:i.length>1,selector:p(y),inner:g})}function S({ctx:e,controller:t}){let n=e;const r=e.definition;if(r.type&&O(r.type)){const i=e.resolveRef(r.type.$ref);if(i){const{type:u,...c}=r,p={...i,...c};n=e.with({definition:p})}}if(n.definition.$extends){const{merged:i}=ne(n.definition,e.schema);n=n.with({definition:i})}const s=n.widgetRegistry;if(s){const i=s.findBestWidget(n);if(i)return i.registration.factory({controller:t,ctx:n})}if(ge(n.definition))return Ve({ctx:n,controller:t});if(he(n.definition))return Ee({ctx:n,controller:t});const a=n.resolvedType;if(Array.isArray(a)&&G(a).length>1)return Dt({ctx:n,controller:t});const o=n.primaryType;if(!o)return H({ctx:n,controller:t});if(R(n.definition)){const i=t instanceof f.ObjectController?t:t.object();return Ae({ctx:n,controller:i})}if(X(n.definition)){const i=t instanceof f.ArrayController?t:t.array();return Ne({ctx:n,controller:i})}if(Y(n.definition)){const i=t instanceof f.ArrayController?t:t.array();return ke({ctx:n,controller:i})}if(Q(n.definition)){const i=t instanceof f.ObjectController?t:t.object();return Fe({ctx:n,controller:i})}if(ee(n.definition)){const i=t instanceof f.ArrayController?t:t.array();return qe({ctx:n,controller:i})}if(te(n.definition))return Pe({ctx:n,controller:t});switch(o){case"string":return $e({ctx:n,controller:t});case"boolean":return Ce({ctx:n,controller:t});case"uuid":return Me({ctx:n,controller:t});case"uri":return De({ctx:n,controller:t});case"binary":return Re({ctx:n,controller:t});case"null":return Rt(n);case"any":return H({ctx:n,controller:t});default:return k(o)?we({ctx:n,controller:t,intType:o}):_(o)?je({ctx:n,controller:t,floatType:o}):z(o)?Oe({ctx:n,controller:t,temporalType:o}):(console.warn(`Unknown type: ${o}`),At(n,o))}}function Le({schema:e,controller:t,widgetRegistry:n,readOnly:r,locale:s}){const a=Te(e,{widgetRegistry:n,readOnly:r,locale:s});return S({ctx:a,controller:t})}function Rt(e){return l.html.div(l.attr.class("bc-json-structure-placeholder"),l.html.span(`[Null: ${e.label}]`),l.html.em("null"))}function At(e,t){return l.html.div(l.attr.class("bc-json-structure-unknown"),l.html.span(`Unknown type: ${t}`),l.html.em(`at path: ${e.jsonPath}`))}function re(e,t){return new Nt(e,t)}class Nt{schema;options;constructor(t,n){this.schema=t,this.options=n??{}}validate(t){const n=[];return this.validateValue(t,this.schema,"",n),{isValid:n.length===0,errors:n}}validateAt(t,n){return this.validate(t)}validateValue(t,n,r,s){if(this.options.stopOnFirstError&&s.length>0)return;if(t===null){const c=n.type;if(c==="null"||Array.isArray(c)&&c.includes("null"))return;s.push({path:r,type:"type",expected:c,actual:"null"});return}if("enum"in n&&Array.isArray(n.enum)){n.enum.includes(t)||s.push({path:r,type:"enum",expected:n.enum,actual:t});return}if("const"in n){t!==n.const&&s.push({path:r,type:"const",expected:n.const,actual:t});return}const a=n.type;if(!a)return;const i=(Array.isArray(a)?a:[a]).filter(c=>typeof c=="string");!i.some(c=>this.checkType(t,c,n,r,s))&&i.length>0&&s.push({path:r,type:"type",expected:a,actual:typeof t})}checkType(t,n,r,s,a){switch(n){case"string":return this.validateString(t,r,s,a);case"boolean":return typeof t=="boolean";case"null":return t===null;case"object":return this.validateObject(t,r,s,a);case"array":return this.validateArray(t,r,s,a);case"set":return this.validateSet(t,r,s,a);case"map":return this.validateMap(t,r,s,a);case"tuple":return this.validateTuple(t,r,s,a);case"choice":return this.validateChoice(t,r,s,a);case"any":return!0;default:return k(n)?this.validateInteger(t,n,r,s,a):_(n)?this.validateFloat(t,r,s,a):z(n)?this.validateTemporal(t,n,s,a):n==="uuid"?this.validateUuid(t,s,a):n==="uri"?this.validateUri(t,s,a):n==="binary"?this.validateBinary(t,s,a):!1}}validateString(t,n,r,s){if(typeof t!="string")return!1;const a=n;if(a.minLength!==void 0&&t.length<a.minLength&&s.push({path:r,type:"minLength",expected:a.minLength,actual:t.length}),a.maxLength!==void 0&&t.length>a.maxLength&&s.push({path:r,type:"maxLength",expected:a.maxLength,actual:t.length}),a.pattern!==void 0)try{new RegExp(a.pattern).test(t)||s.push({path:r,type:"pattern",expected:a.pattern,actual:t})}catch{}return!0}validateInteger(t,n,r,s,a){if(typeof t!="number"&&typeof t!="bigint")return!1;if(typeof t=="number"&&!Number.isInteger(t))return a.push({path:s,type:"type",expected:n,actual:"float"}),!1;if(k(n)){const o=V[n],i=typeof t=="bigint"?t:BigInt(Math.round(t));(i<o.min||i>o.max)&&a.push({path:s,type:"integer_bounds",expected:{min:o.min.toString(),max:o.max.toString()},actual:i.toString(),context:{type:n}})}return this.validateNumericConstraints(t,r,s,a),!0}validateFloat(t,n,r,s){return typeof t!="number"?!1:(this.validateNumericConstraints(t,n,r,s),!0)}validateNumericConstraints(t,n,r,s){const a=n,o=typeof t=="bigint"?Number(t):t;if(a.minimum!==void 0){const i=typeof a.minimum=="string"?Number(a.minimum):a.minimum;o<i&&s.push({path:r,type:"minimum",expected:i,actual:o})}if(a.maximum!==void 0){const i=typeof a.maximum=="string"?Number(a.maximum):a.maximum;o>i&&s.push({path:r,type:"maximum",expected:i,actual:o})}if(a.exclusiveMinimum!==void 0){const i=typeof a.exclusiveMinimum=="string"?Number(a.exclusiveMinimum):a.exclusiveMinimum;o<=i&&s.push({path:r,type:"exclusiveMinimum",expected:i,actual:o})}if(a.exclusiveMaximum!==void 0){const i=typeof a.exclusiveMaximum=="string"?Number(a.exclusiveMaximum):a.exclusiveMaximum;o>=i&&s.push({path:r,type:"exclusiveMaximum",expected:i,actual:o})}a.multipleOf!==void 0&&typeof t=="number"&&t%a.multipleOf!==0&&s.push({path:r,type:"multipleOf",expected:a.multipleOf,actual:t})}validateTemporal(t,n,r,s){if(typeof t!="string")return!1;const o={date:/^\d{4}-\d{2}-\d{2}$/,datetime:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?$/,time:/^\d{2}:\d{2}:\d{2}(\.\d+)?$/,duration:/^P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$/}[n];return o&&!o.test(t)?(s.push({path:r,type:"format",expected:n,actual:t}),!1):!0}validateUuid(t,n,r){return typeof t!="string"?!1:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?!0:(r.push({path:n,type:"format",expected:"uuid",actual:t}),!1)}validateUri(t,n,r){if(typeof t!="string")return!1;try{return new URL(t),!0}catch{return r.push({path:n,type:"format",expected:"uri",actual:t}),!1}}validateBinary(t,n,r){return t instanceof Uint8Array?!0:typeof t!="string"?!1:/^[A-Za-z0-9+/]*={0,2}$/.test(t)?!0:(r.push({path:n,type:"format",expected:"binary",actual:t}),!1)}validateObject(t,n,r,s){if(typeof t!="object"||t===null||Array.isArray(t))return!1;if(!R(n))return!0;const a=t,o=n.required;if(o){const i=Array.isArray(o[0])?o.flat():o;for(const u of i)u in a||s.push({path:r?`${r}/${u}`:`/${u}`,type:"required",expected:u})}for(const[i,u]of Object.entries(a)){const c=n.properties?.[i];if(c){const p=r?`${r}/${i}`:`/${i}`;this.validateValue(u,c,p,s)}else if(n.additionalProperties===!1)s.push({path:r?`${r}/${i}`:`/${i}`,type:"additionalProperties",actual:i});else if(typeof n.additionalProperties=="object"){const p=r?`${r}/${i}`:`/${i}`;this.validateValue(u,n.additionalProperties,p,s)}}return!0}validateArray(t,n,r,s){if(!Array.isArray(t))return!1;if(!X(n))return!0;const a=n;a.minItems!==void 0&&t.length<a.minItems&&s.push({path:r,type:"minItems",expected:a.minItems,actual:t.length}),a.maxItems!==void 0&&t.length>a.maxItems&&s.push({path:r,type:"maxItems",expected:a.maxItems,actual:t.length});for(let o=0;o<t.length;o++){const i=`${r}/${o}`;this.validateValue(t[o],n.items,i,s)}return!0}validateSet(t,n,r,s){if(!Array.isArray(t))return!1;if(!Y(n))return!0;const a=new Set;for(let o=0;o<t.length;o++){const i=JSON.stringify(t[o]);a.has(i)&&s.push({path:`${r}/${o}`,type:"uniqueItems",actual:t[o]}),a.add(i)}return this.validateArray(t,n,r,s)}validateMap(t,n,r,s){if(typeof t!="object"||t===null||Array.isArray(t))return!1;if(!Q(n))return!0;const a=t;for(const[o,i]of Object.entries(a)){const u=`${r}/${o}`;this.validateValue(i,n.values,u,s)}return!0}validateTuple(t,n,r,s){if(!Array.isArray(t))return!1;if(!ee(n))return!0;const a=n.tuple.length;t.length!==a&&s.push({path:r,type:"tuple_length",expected:a,actual:t.length});for(let o=0;o<n.tuple.length;o++){const i=n.tuple[o],u=n.properties?.[i];u&&o<t.length&&this.validateValue(t[o],u,`${r}/${o}`,s)}return!0}validateChoice(t,n,r,s){if(typeof t!="object"||t===null||Array.isArray(t))return!1;if(!te(n))return!0;const a=t,o=Object.keys(n.choices),i=Object.keys(a).find(c=>o.includes(c));if(!i)return s.push({path:r,type:"choice",expected:o,actual:Object.keys(a)}),!1;const u=n.choices[i];return u&&this.validateValue(a[i],u,`${r}/${i}`,s),!0}}function kt(e,t,n){return re(e,n).validate(t)}function Ue(e,t){const n=Ft(e,t);return{path:e.path,message:n,code:e.type}}function ie(e,t){return e.map(n=>{const r=t?.get(n.path);return Ue(n,r)})}function Ft(e,t){switch(e.type){case"type":return`Expected ${le(e.expected)}, got ${qt(e.actual)}`;case"type_mismatch":return`Value must be of type ${le(e.expected)}`;case"minLength":return`Must be at least ${e.expected} characters`;case"maxLength":return`Must be no more than ${e.expected} characters`;case"pattern":return Pt(e,t);case"format":return Vt(e);case"minimum":return`Must be at least ${e.expected}`;case"maximum":return`Must be at most ${e.expected}`;case"exclusiveMinimum":return`Must be greater than ${e.expected}`;case"exclusiveMaximum":return`Must be less than ${e.expected}`;case"multipleOf":return`Must be a multiple of ${e.expected}`;case"integer_bounds":return Et(e);case"minItems":return`Must have at least ${e.expected} items`;case"maxItems":return`Must have no more than ${e.expected} items`;case"uniqueItems":return"All items must be unique";case"contains":return"Must contain at least one matching item";case"minContains":return`Must contain at least ${e.expected} matching items`;case"maxContains":return`Must contain no more than ${e.expected} matching items`;case"required":return"This field is required";case"minProperties":return`Must have at least ${e.expected} properties`;case"maxProperties":return`Must have no more than ${e.expected} properties`;case"additionalProperties":return`Unknown property: ${e.actual}`;case"dependentRequired":return Lt(e);case"enum":return Ut(e);case"const":return`Must be exactly ${JSON.stringify(e.expected)}`;case"ref_not_found":return`Invalid reference: ${e.expected}`;case"circular_ref":return"Circular reference detected";case"invalid":return"Invalid value";default:return e.context?.message??`Validation error: ${e.type}`}}function le(e){return typeof e=="string"?ce(e):Array.isArray(e)?e.map(ce).join(" or "):String(e)}function qt(e){return e===null?"null":e===void 0?"undefined":typeof e}function ce(e){return{string:"text",boolean:"true/false",int8:"integer (-128 to 127)",int16:"integer (-32768 to 32767)",int32:"integer",int64:"large integer",int128:"very large integer",uint8:"positive integer (0 to 255)",uint16:"positive integer (0 to 65535)",uint32:"positive integer",uint64:"large positive integer",uint128:"very large positive integer",float:"decimal number",double:"decimal number",decimal:"decimal number",date:"date",datetime:"date and time",time:"time",duration:"duration",uuid:"UUID",uri:"URL",binary:"binary data",object:"object",array:"list",set:"unique list",map:"key-value pairs",tuple:"ordered list",choice:"one of multiple options",any:"any value",null:"empty"}[e]??e}function Pt(e,t){const n=t?.description;if(n&&e.type==="pattern")return`Does not match required format: ${n}`;const r=e.expected;if(r){const a={"^[a-zA-Z]+$":"letters only","^[0-9]+$":"numbers only","^[a-zA-Z0-9]+$":"letters and numbers only","^\\S+$":"no spaces allowed","^[a-z]+$":"lowercase letters only","^[A-Z]+$":"uppercase letters only"}[r];if(a)return`Must be ${a}`}return"Does not match required format"}function Vt(e){const t=e.expected;return{email:"Must be a valid email address","date-time":"Must be a valid date and time",date:"Must be a valid date",time:"Must be a valid time",uri:"Must be a valid URL","uri-reference":"Must be a valid URL or relative path",uuid:"Must be a valid UUID",hostname:"Must be a valid hostname",ipv4:"Must be a valid IPv4 address",ipv6:"Must be a valid IPv6 address",regex:"Must be a valid regular expression","json-pointer":"Must be a valid JSON pointer"}[t]??`Must be a valid ${t}`}function Et(e){const t=e.context?.type;if(t&&k(t)){const n=V[t];return`Must be between ${n.min} and ${n.max}`}return"Value is out of range for this integer type"}function Lt(e){const t=e.context?.dependent,n=e.context?.required;return t&&n?.length?`When "${t}" is present, "${n.join('", "')}" must also be provided`:"Missing required dependent fields"}function Ut(e){const t=e.expected;return t&&t.length<=5?`Must be one of: ${t.map(r=>JSON.stringify(r)).join(", ")}`:"Invalid value"}function Wt(e){const t=new Map;for(const n of e){const r=t.get(n.path)??[];r.push(n),t.set(n.path,r)}return t}function Bt(e,t){return e.filter(n=>n.path===t)}function _t(e,t){return e.some(n=>n.path===t)}function zt(e,t){const n=t===""?"/":`${t}/`;return e.filter(r=>r.path.startsWith(n))}class L{registrations=new Map;parent;constructor(t){this.parent=t??null}register(t,n){this.registrations.set(t,n)}unregister(t){this.registrations.delete(t)}get(t){return this.registrations.get(t)??this.parent?.get(t)}has(t){return this.registrations.has(t)||(this.parent?.has(t)??!1)}names(){const t=this.parent?.names()??[],n=Array.from(this.registrations.keys());return[...new Set([...t,...n])]}getForType(t){const n=[];this.parent&&n.push(...this.parent.getForType(t));for(const r of this.registrations.values())r.supportedTypes?.includes(t)&&n.push(r);return n}getForFormat(t){const n=[];this.parent&&n.push(...this.parent.getForFormat(t));for(const r of this.registrations.values())r.supportedFormats?.includes(t)&&n.push(r);return n}findBestWidget(t){const n=[];for(const s of this.names()){const a=this.get(s);if(!a)continue;const o=this.scoreWidget(a,t);o>0&&n.push({name:s,registration:a,score:o})}if(n.length===0)return null;n.sort((s,a)=>a.score!==s.score?a.score-s.score:(a.registration.priority??0)-(s.registration.priority??0));const r=n[0];return{name:r.name,registration:r.registration}}scoreWidget(t,n){let r=0;if(t.matcher)if(t.matcher(n))r+=100;else return 0;const s=n.primaryType;s&&t.supportedTypes?.includes(s)&&(r+=50);const a=n.format;return a&&t.supportedFormats?.includes(a)&&(r+=30),r+=t.priority??0,r}createChild(){return new L(this)}}let W=null;function q(){return W||(W=new L),W}function Gt(e){W=e}function Jt(e){return new L(e)}function Kt(e,t,n){return{name:`type:${e}`,registration:{factory:t,displayName:n?.displayName??`${e} widget`,description:n?.description,supportedTypes:[e],priority:n?.priority??0,canFallback:n?.canFallback??!1}}}function Zt(e,t,n){return{name:`format:${e}`,registration:{factory:t,displayName:n?.displayName??`${e} widget`,description:n?.description,supportedFormats:[e],priority:n?.priority??10,canFallback:n?.canFallback??!1}}}function Ht(e,t,n,r){return{name:`type:${e}:format:${t}`,registration:{factory:n,displayName:r?.displayName??`${e}/${t} widget`,description:r?.description,supportedTypes:[e],supportedFormats:[t],priority:r?.priority??20,canFallback:r?.canFallback??!1}}}function Xt(e,t,n,r){return{name:e,registration:{factory:n,displayName:r?.displayName??e,description:r?.description,matcher:t,priority:r?.priority??50,canFallback:r?.canFallback??!1}}}function We(e,t){if(t){const r=t.findBestWidget(e);if(r)return r}return q().findBestWidget(e)}function Yt(e){const t=e.definition,n={};if(typeof t=="object"&&"x:ui"in t){const r=t["x:ui"];r.widget&&typeof r.widget=="object"&&(n.options=r.widget),typeof r.priority=="number"&&(n.priority=r.priority)}if(typeof t=="object"&&"widget"in t){const r=t.widget;typeof r=="object"&&r!==null&&(n.options={...n.options??{},...r})}return Object.keys(n).length>0?n:void 0}function se(e){const t=e.definition;if(typeof t=="object"&&"x:ui"in t){const n=t["x:ui"];if(typeof n.widget=="string")return n.widget}if(typeof t=="object"&&"widget"in t){const n=t.widget;if(n&&typeof n.type=="string")return n.type}}function Qt(e){return se(e)!==void 0}function en(e,t){const n=se(e);if(n){if(t){const a=t.get(n);if(a)return{name:n,registration:a}}const s=q().get(n);if(s)return{name:n,registration:s};console.warn(`Widget "${n}" specified in definition but not found in registry`,{path:e.jsonPath})}return We(e,t)}function tn(e,t,n){return{...e,...t,...n}}function Be(e=q()){e.register("string",{factory:({controller:i,ctx:u})=>$e({ctx:u,controller:i}),displayName:"String",description:"Text input for string values",supportedTypes:["string"],priority:0,canFallback:!0}),e.register("boolean",{factory:({controller:i,ctx:u})=>Ce({ctx:u,controller:i}),displayName:"Boolean",description:"Checkbox for boolean values",supportedTypes:["boolean"],priority:0,canFallback:!0}),e.register("uuid",{factory:({controller:i,ctx:u})=>Me({ctx:u,controller:i}),displayName:"UUID",description:"Input for UUID values",supportedTypes:["uuid"],priority:0,canFallback:!0}),e.register("uri",{factory:({controller:i,ctx:u})=>De({ctx:u,controller:i}),displayName:"URI",description:"Input for URI/URL values",supportedTypes:["uri"],priority:0,canFallback:!0}),e.register("binary",{factory:({controller:i,ctx:u})=>Re({ctx:u,controller:i}),displayName:"Binary",description:"File upload for binary data",supportedTypes:["binary"],priority:0,canFallback:!0}),e.register("any",{factory:({controller:i,ctx:u})=>H({ctx:u,controller:i}),displayName:"Any",description:"Generic control for any type",supportedTypes:["any"],priority:0,canFallback:!0});const t=["int8","int16","int32","int64","int128","uint8","uint16","uint32","uint64","uint128"],n=({controller:i,ctx:u})=>we({ctx:u,controller:i,intType:u.primaryType});for(const i of t)e.register(i,{factory:n,displayName:i.toUpperCase(),description:`Number input for ${i} values`,supportedTypes:[i],priority:0,canFallback:!0});const r=["float","double","decimal"],s=({controller:i,ctx:u})=>je({ctx:u,controller:i,floatType:u.primaryType});for(const i of r)e.register(i,{factory:s,displayName:i.charAt(0).toUpperCase()+i.slice(1),description:`Number input for ${i} values`,supportedTypes:[i],priority:0,canFallback:!0});const a=["date","datetime","time","duration"],o=({controller:i,ctx:u})=>Oe({ctx:u,controller:i,temporalType:u.primaryType});for(const i of a)e.register(i,{factory:o,displayName:i.charAt(0).toUpperCase()+i.slice(1),description:`Input for ${i} values`,supportedTypes:[i],priority:0,canFallback:!0});e.register("object",{factory:({controller:i,ctx:u})=>Ae({ctx:u,controller:i}),displayName:"Object",description:"Form for object values",supportedTypes:["object"],priority:0,canFallback:!0}),e.register("array",{factory:({controller:i,ctx:u})=>Ne({ctx:u,controller:i}),displayName:"Array",description:"List control for array values",supportedTypes:["array"],priority:0,canFallback:!0}),e.register("set",{factory:({controller:i,ctx:u})=>ke({ctx:u,controller:i}),displayName:"Set",description:"Set control for unique values",supportedTypes:["set"],priority:0,canFallback:!0}),e.register("map",{factory:({controller:i,ctx:u})=>Fe({ctx:u,controller:i}),displayName:"Map",description:"Map control for key-value pairs",supportedTypes:["map"],priority:0,canFallback:!0}),e.register("tuple",{factory:({controller:i,ctx:u})=>qe({ctx:u,controller:i}),displayName:"Tuple",description:"Tuple control for fixed-length arrays",supportedTypes:["tuple"],priority:0,canFallback:!0}),e.register("choice",{factory:({controller:i,ctx:u})=>Pe({ctx:u,controller:i}),displayName:"Choice",description:"Choice control for union types",supportedTypes:["choice"],priority:0,canFallback:!0}),e.register("enum",{factory:({controller:i,ctx:u})=>Ve({ctx:u,controller:i}),displayName:"Enum",description:"Dropdown for enumerated values",priority:10,canFallback:!1,matcher:i=>i.hasEnum}),e.register("const",{factory:({controller:i,ctx:u})=>Ee({ctx:u,controller:i}),displayName:"Const",description:"Display for constant values",priority:20,canFallback:!1,matcher:i=>i.hasConst})}function _e(e=q()){return e.has("string")&&e.has("object")&&e.has("array")}function nn(e=q()){_e(e)||Be(e)}function ze(e){let t=e;if(e.$root){const n=A(e.$root,e);n&&(t=n)}return M(t,e,new Set)}function M(e,t,n){if(e.type&&O(e.type)){const r=e.type.$ref;if(n.has(r))return;n.add(r);try{const s=A(r,t);if(s){const a={...s,...e,type:s.type};return M(a,t,n)}return}finally{n.delete(r)}}return e.default!==void 0?e.default:Array.isArray(e.examples)&&e.examples.length>0?e.examples[0]:"const"in e&&e.const!==void 0?e.const:"enum"in e&&Array.isArray(e.enum)&&e.enum.length>0?e.enum[0]:yn(e)?null:rn(e,t,n)}function rn(e,t,n){const r=Ge(e);if(R(e))return an(e,t,n);if(r==="choice"&&"choices"in e)return on(e,t,n);if(r==="tuple"&&"tuple"in e&&"properties"in e)return un(e,t,n);if(r==="array")return ln(e,t,n);if(r==="set")return cn(e,t,n);if(r==="map")return{};if(r==="string")return pn(e);if(gn(r))return dn(e);if(hn(r))return fn(e);if(r==="boolean")return!1;if(r==="null")return null;if(bn(r))return mn(r);if(r==="uuid"||r==="uri"||r==="uri-reference"||r==="binary"||r==="bytes")return""}function sn(e){if(!e||e.length===0)return new Set;if(Array.isArray(e[0])){const t=e.flat();return new Set(t)}return new Set(e)}function an(e,t,n){if(!R(e))return{};const r=sn(e.required),s={};for(const[a,o]of Object.entries(e.properties))if(r.has(a))if(o.type&&O(o.type)){const i=o.type.$ref;if(n.has(i))continue;n.add(i);try{const u=A(i,t);if(u){const c={...u,...o,type:u.type},p=M(c,t,n);p!==void 0&&(s[a]=p)}}finally{n.delete(i)}}else{const i=M(o,t,n);i!==void 0&&(s[a]=i)}return s}function on(e,t,n){if(!("choices"in e))return;const r=e.choices,s=Object.keys(r);if(s.length===0)return;const a=s[0],o=r[a];if("selector"in e&&e.selector){const u=e.selector,c=M(o,t,n);return typeof c=="object"&&c!==null?{[u]:a,...c}:{[u]:a}}const i=M(o,t,n);return{[a]:i}}function un(e,t,n){if(!("tuple"in e)||!("properties"in e))return{};const r=e.tuple,s=e.properties,a=new Set(e.required??r),o={};for(const i of r){if(!a.has(i))continue;const u=s[i];if(u){const c=M(u,t,n);c!==void 0&&(o[i]=c)}}return o}function ln(e,t,n){const r=("minItems"in e?e.minItems:0)??0;if(r===0)return[];const s="items"in e?e.items:void 0;if(!s)return Array(r).fill(null);const a=M(s,t,n);return Array(r).fill(a??null)}function cn(e,t,n){const r=("minItems"in e?e.minItems:0)??0;if(r===0)return[];const s="items"in e?e.items:void 0;if(!s)return Array(r).fill(null);const a=M(s,t,n);return Array(r).fill(a??null)}function pn(e){switch("format"in e?e.format:void 0){case"date":return Je();case"date-time":return Ke();case"time":return"00:00:00";default:return""}}function dn(e){const t=Ge(e),n=t==="int64"||t==="uint64"||t==="int128"||t==="uint128";let r="minimum"in e?e.minimum:void 0,s="maximum"in e?e.maximum:void 0;const a="exclusiveMinimum"in e?e.exclusiveMinimum:void 0,o="exclusiveMaximum"in e?e.exclusiveMaximum:void 0;a!==void 0&&(r=a+1),o!==void 0&&(s=o-1);let i;r!==void 0&&s!==void 0?i=Math.round((r+s)/2):r!==void 0?i=r:s!==void 0?i=0<=s?0:s:i=0;const u="multipleOf"in e?e.multipleOf:void 0;return u!==void 0&&u>0&&(i=Math.round(i/u)*u,r!==void 0&&i<r&&(i=Math.ceil(r/u)*u),s!==void 0&&i>s&&(i=Math.floor(s/u)*u)),n?BigInt(Math.round(i)):Math.round(i)}function fn(e){let t="minimum"in e?e.minimum:void 0,n="maximum"in e?e.maximum:void 0;const r="exclusiveMinimum"in e?e.exclusiveMinimum:void 0,s="exclusiveMaximum"in e?e.exclusiveMaximum:void 0,a="multipleOf"in e?e.multipleOf:.001;r!==void 0&&(t=r+a),s!==void 0&&(n=s-a);let o;t!==void 0&&n!==void 0?o=(t+n)/2:t!==void 0?o=t:n!==void 0?o=0<=n?0:n:o=0;const i="multipleOf"in e?e.multipleOf:void 0;return i!==void 0&&i>0&&(o=Math.round(o/i)*i,t!==void 0&&o<t&&(o=Math.ceil(t/i)*i),n!==void 0&&o>n&&(o=Math.floor(n/i)*i)),o}function mn(e){switch(e){case"date":return Je();case"time":return"00:00:00";case"datetime":return Ke();case"duration":return"PT0S";default:return""}}function yn(e){return Array.isArray(e.type)?e.type.some(t=>typeof t=="string"?t==="null":!1):!1}function Ge(e){const t=e.type;if(typeof t=="string")return t;if(Array.isArray(t)){for(const n of t)if(typeof n=="string"&&n!=="null")return n}}function gn(e){return e?["int8","int16","int32","int64","int128","uint8","uint16","uint32","uint64","uint128"].includes(e):!1}function hn(e){return e?["float","double","decimal"].includes(e):!1}function bn(e){return e?["date","time","datetime","duration"].includes(e):!1}function Je(){return new Date().toISOString().split("T")[0]}function Ke(){return new Date().toISOString()}function vn(e){if(e.isValid)return D.Validation.valid;const t=ie(e.errors),n=new Map;for(const o of t){const i=n.get(o.path)||[];i.push(o),n.set(o.path,i)}const r=(o,i)=>{if(o.length===0)return{message:i.map(y=>y.message).join("; ")};const[u,...c]=o,p=r(c,i);return{dependencies:{[u]:p}}},s={},a={};for(const[o,i]of n.entries())if(o===""||o==="/")s.message=i.map(u=>u.message).join("; ");else{const u=o.split("/").filter(c=>c!=="");if(u.length===1)a[u[0]]={message:i.map(c=>c.message).join("; ")};else{const[c,...p]=u;a[c]=r(p,i)}}return Object.keys(a).length>0&&(s.dependencies=a),D.Validation.invalid(s)}function xn({schema:e,initialValue:t,validationMode:n,validateDebounceMs:r,widgetRegistry:s,readOnly:a,locale:o,onChange:i,onValidate:u,applySchemaDefaults:c=!0},p){const y=t!==void 0?l.Value.get(t):void 0,g=ze(e);let d;t===void 0?d=g??{}:c?d=b.deepMergeDefaults(g,y):d=y;const h=re(e),m=n??"onTouched",x=C=>{const P=h.validate(C);if(u&&!P.isValid){const U=ie(P.errors);u(U)}return vn(P)},{controller:v,setStatus:$}=f.useController({initialValue:d,validationMode:m,validateDebounceMs:r,validate:m==="onSubmit"?void 0:x,onChange:i}),T=()=>{v.dispose()},I=l.Fragment(l.OnDispose(T),Le({schema:e,controller:v,widgetRegistry:s,readOnly:a,locale:o}));return p({Form:I,controller:v,setStatus:$})}exports.DefaultWidgetRegistry=L;exports.INTEGER_BOUNDS=V;exports.JSONStructureForm=xn;exports.RefResolver=xe;exports.StructureContext=K;exports.StructureControl=Le;exports.StructureGenericControl=S;exports.createExtendsResolver=nt;exports.createRefResolver=J;exports.createStructureContext=Te;exports.createValidator=re;exports.createWidgetRegistry=Jt;exports.ensureDefaultWidgets=nn;exports.extractStructureDefaults=ze;exports.forFormat=Zt;exports.forMatcher=Xt;exports.forType=Kt;exports.forTypeAndFormat=Ht;exports.formatValidationError=Ue;exports.formatValidationErrors=ie;exports.getChildErrors=zt;exports.getErrorsForPath=Bt;exports.getExplicitWidgetName=se;exports.getGlobalWidgetRegistry=q;exports.getNonNullTypes=G;exports.getResolvedType=Z;exports.getWidgetOptions=Yt;exports.groupErrorsByPath=Wt;exports.hasConstValue=he;exports.hasCustomWidget=Qt;exports.hasDefaultWidgets=_e;exports.hasEnumValue=ge;exports.hasErrorsAtPath=_t;exports.isArrayTypeDefinition=X;exports.isBigIntType=pe;exports.isChoiceTypeDefinition=te;exports.isCompoundType=He;exports.isFloatType=_;exports.isIntegerType=k;exports.isMapTypeDefinition=Q;exports.isNamespace=me;exports.isNullableType=be;exports.isNumericType=de;exports.isObjectTypeDefinition=R;exports.isPrimitiveType=fe;exports.isSetTypeDefinition=Y;exports.isTemporalType=z;exports.isTupleTypeDefinition=ee;exports.isTypeDefinition=ye;exports.isTypeReference=O;exports.mergeWidgetOptions=tn;exports.parseRefPath=ve;exports.registerDefaultWidgets=Be;exports.resolveExtends=ne;exports.resolveRef=A;exports.resolveTypeReference=Ye;exports.resolveWidget=We;exports.resolveWidgetWithOverride=en;exports.setGlobalWidgetRegistry=Gt;exports.validate=kt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@tempots/dom"),R=require("@tempots/std"),y=require("../control-muup9GF1.cjs"),C=require("../deep-merge-VDGE_HQD.cjs"),Xe=require("../text-input-MjlUC_9u.cjs"),M=require("../text-area-BdemKQ_w.cjs"),j=require("../duration-input-DmsljXl3.cjs"),z=require("../input-container-BaWQLWB6.cjs"),F=require("../stack-dwLevGa2.cjs"),A=require("../use-form-BZ8vDYOv.cjs");function fe(e){return e==="int64"||e==="int128"||e==="uint64"||e==="uint128"}function q(e){return e==="int8"||e==="int16"||e==="int32"||e==="int64"||e==="int128"||e==="uint8"||e==="uint16"||e==="uint32"||e==="uint64"||e==="uint128"}function G(e){return e==="float"||e==="double"||e==="decimal"}function me(e){return q(e)||G(e)}function J(e){return e==="date"||e==="datetime"||e==="time"||e==="duration"}function ye(e){return e==="string"||e==="boolean"||e==="null"||me(e)||J(e)||e==="uuid"||e==="uri"||e==="binary"}function Ye(e){return e==="object"||e==="array"||e==="set"||e==="map"||e==="tuple"||e==="choice"||e==="any"}function D(e){return typeof e=="object"&&e!==null&&"$ref"in e}function ge(e){return typeof e=="object"&&e!==null&&!("type"in e)&&!("$ref"in e)&&!("enum"in e)&&!("const"in e)}function he(e){return typeof e=="object"&&e!==null&&("type"in e||"$ref"in e||"enum"in e||"const"in e)}function N(e){return e.type==="object"&&"properties"in e}function Q(e){return e.type==="array"&&"items"in e}function ee(e){return e.type==="set"&&"items"in e}function te(e){return e.type==="map"&&"values"in e}function ne(e){return e.type==="tuple"&&"tuple"in e}function re(e){return e.type==="choice"&&"choices"in e}function be(e){return"enum"in e&&Array.isArray(e.enum)}function ve(e){return"const"in e}function X(e){return e===void 0?null:typeof e=="string"||Array.isArray(e)?e:(D(e),null)}function xe(e){return e===void 0?!1:e==="null"?!0:Array.isArray(e)?e.includes("null"):!1}function K(e){return typeof e=="string"?e==="null"?[]:[e]:Array.isArray(e)?e.filter(t=>t!=="null"):[]}const L={int8:{min:-128n,max:127n},int16:{min:-32768n,max:32767n},int32:{min:-2147483648n,max:2147483647n},int64:{min:-9223372036854775808n,max:9223372036854775807n},int128:{min:-170141183460469231731687303715884105728n,max:170141183460469231731687303715884105727n},uint8:{min:0n,max:255n},uint16:{min:0n,max:65535n},uint32:{min:0n,max:4294967295n},uint64:{min:0n,max:18446744073709551615n},uint128:{min:0n,max:340282366920938463463374607431768211455n}};function Te(e){return e.startsWith("#/")?e.slice(2).split("/"):e.includes("/")?e.split("/"):["definitions",e]}function Qe(e,t){let n=e;for(const r of t){if(n==null||typeof n!="object")return;n=n[r]}return n}function k(e,t){const n=Te(e),r=Qe(t,n);if(r==null){console.warn(`Failed to resolve $ref: ${e}`);return}if(he(r))return r;if(ge(r)){console.warn(`$ref "${e}" points to a namespace, not a type definition`);return}}function et(e,t){return k(e.$ref,t)}class $e{schema;visited=new Set;constructor(t){this.schema=t}resolve(t){if(this.visited.has(t)){console.warn(`Circular reference detected: ${t}`);return}this.visited.add(t);try{const n=k(t,this.schema);if(n?.type&&D(n.type)){const r=this.resolve(n.type.$ref);if(r){const{type:s,...a}=n;return{...r,...a}}}return n}finally{this.visited.delete(t)}}resolveDefinition(t){if(t.type&&D(t.type)){const n=this.resolve(t.type.$ref);if(n){const{type:r,...s}=t;return{...n,...s}}}return t}reset(){this.visited.clear()}}function Z(e){return new $e(e)}class H{schema;definition;path;readOnly;locale;widgetRegistry;isPropertyRequired;suppressLabel;refResolver;constructor(t){this.schema=t.schema,this.definition=t.definition,this.path=t.path,this.readOnly=t.readOnly??!1,this.locale=t.locale,this.widgetRegistry=t.widgetRegistry,this.isPropertyRequired=t.isPropertyRequired??!1,this.suppressLabel=t.suppressLabel??!1,this.refResolver=t.refResolver??Z(t.schema)}with(t){return new H({schema:this.schema,definition:t.definition??this.definition,path:t.path??this.path,readOnly:t.readOnly??this.readOnly,locale:t.locale??this.locale,widgetRegistry:t.widgetRegistry??this.widgetRegistry,isPropertyRequired:t.isPropertyRequired??this.isPropertyRequired,suppressLabel:t.suppressLabel??this.suppressLabel,refResolver:this.refResolver})}append(t){return this.with({path:[...this.path,t]})}get isRoot(){return this.path.length===0}get name(){const t=this.path[this.path.length-1];return typeof t=="string"?t:void 0}get widgetName(){return this.path.map(String).join(".")}get resolvedType(){const t=this.definition.type;if(!t)return null;if(D(t)){const n=this.refResolver.resolve(t.$ref);return n?.type?X(n.type):null}return X(t)}get primaryType(){const t=this.resolvedType;return t?typeof t=="string"?t==="null"?null:t:K(t)[0]??null:null}get isNullable(){return xe(this.definition.type)}get isRequired(){return this.isPropertyRequired}get isOptional(){return!this.isPropertyRequired}get isDeprecated(){return this.definition.deprecated===!0}get isAbstract(){return this.definition.abstract===!0}get isPrimitive(){const t=this.primaryType;return t!=null&&ye(t)}get description(){return this.definition.description}get examples(){return this.definition.examples}get defaultValue(){return this.definition.default}get unit(){return this.definition.unit}get currency(){return this.definition.currency}get label(){if(this.locale&&this.definition.altnames){const n=`lang:${this.locale}`,r=this.definition.altnames[n];if(r)return r}if(this.definition.name)return this.definition.name;const t=this.name;return t?R.upperCaseFirst(R.humanize(t)):""}get altnames(){return this.definition.altnames}get jsonPath(){return this.path.length===0?"":"/"+this.path.map(String).join("/")}resolveRef(t){return this.refResolver.resolve(t)}get hasEnum(){return"enum"in this.definition&&Array.isArray(this.definition.enum)}get enumValues(){if("enum"in this.definition)return this.definition.enum}get hasConst(){return"const"in this.definition}get constValue(){if("const"in this.definition)return this.definition.const}get format(){if("format"in this.definition)return this.definition.format}}function Ce(e,t){let n;const r=Z(e);if(e.$root){const s=r.resolve(e.$root);s?n=s:(console.warn(`Failed to resolve $root: ${e.$root}`),n=e)}else e.type||e.properties?n=e:n={type:"any"};return new H({schema:e,definition:n,path:[],readOnly:t?.readOnly,locale:t?.locale,widgetRegistry:t?.widgetRegistry,refResolver:r})}function ie(e,t,n){const r=[],s=[];if(!e.$extends)return{merged:e,inheritanceChain:r,errors:s};const a=Array.isArray(e.$extends)?e.$extends:[e.$extends],o=new Set,i=(p,m=0)=>{if(m>100)return s.push({path:p.join(" -> "),message:"Maximum inheritance depth exceeded"}),[];const g=[];for(const d of p){if(o.has(d)){s.push({path:d,message:`Circular inheritance detected: ${d}`});continue}o.add(d),r.push(d);const h=k(d,t);if(!h){s.push({path:d,message:`Failed to resolve base type: ${d}`});continue}if(h.$extends){const f=Array.isArray(h.$extends)?h.$extends:[h.$extends],v=i(f,m+1);g.push(...v)}g.push(h),o.delete(d)}return g},u=i(a);return{merged:tt(u,e),inheritanceChain:r,errors:s}}function tt(e,t){if(e.length===0)return t;let n={...e[0]};for(let a=1;a<e.length;a++)n=ue(n,e[a]);n=ue(n,t);const{$extends:r,...s}=n;return s}function ue(e,t){return N(e)&&N(t)?nt(e,t):{...e,...t}}function nt(e,t){const n={...e.properties??{},...t.properties??{}},r=le(e.required),s=le(t.required),a=rt([...r,...s]),o={...e,...t,type:"object",properties:n};return a.length>0&&(o.required=a),o}function le(e){return e?e.length===0?[]:Array.isArray(e[0])?e.flat():e:[]}function rt(e){return[...new Set(e)]}function it(e){const t=Z(e);return{resolve:n=>(t.reset(),ie(n,e))}}function st(){return l.html.span(l.attr.class("bc-json-structure-deprecated-badge"),l.attr.style("font-size: var(--font-size-xs); color: var(--color-warning-500, #d97706); background: var(--color-warning-100, #fef3c7); padding: 0.125em 0.5em; border-radius: var(--radius-sm); margin-inline-start: 0.5em; font-weight: normal;"),"(deprecated)")}function w(e,t){return!e||!t?e??"":l.html.span(e,st())}function at(e){const t=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:t}}function Ie({ctx:e,controller:t}){const n=at(e);return y.Control(Xe.TextInput,{...n,controller:C.transformEmptyStringToUndefined(t)})}function ot(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Se({ctx:e,controller:t}){const n=ot(e),r=y.Control(y.CheckboxInput,{...n,controller:t});return e.isNullable?y.Control(y.CheckboxInput,{...n,controller:t,after:M.NullableResetAfter(t.signal,t.disabled,s=>t.change(s))}):r}function ut(e,t){const n=L[t],r=we(e,n.min),s=je(e,n.max),a=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,min:typeof r=="bigint"?Number(r):r,max:typeof s=="bigint"?Number(s):s,step:1,placeholder:a}}function lt(e,t){const n=L[t],r=we(e,n.min),s=je(e,n.max),a=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,min:typeof r=="number"?BigInt(r):r,max:typeof s=="number"?BigInt(s):s,placeholder:a}}function we(e,t){const n=e.definition;if(n.minimum!==void 0){const r=typeof n.minimum=="string"?BigInt(n.minimum):n.minimum;return typeof r=="bigint"?r>t?r:t:BigInt(r)>t?r:Number(t)}if(n.exclusiveMinimum!==void 0){const r=typeof n.exclusiveMinimum=="string"?BigInt(n.exclusiveMinimum):n.exclusiveMinimum,s=typeof r=="bigint"?r+1n:r+1;return typeof s=="bigint"?s>t?s:t:BigInt(s)>t?s:Number(t)}return t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER)?Number(t):t}function je(e,t){const n=e.definition;if(n.maximum!==void 0){const r=typeof n.maximum=="string"?BigInt(n.maximum):n.maximum;return typeof r=="bigint"?r<t?r:t:BigInt(r)<t?r:Number(t)}if(n.exclusiveMaximum!==void 0){const r=typeof n.exclusiveMaximum=="string"?BigInt(n.exclusiveMaximum):n.exclusiveMaximum,s=typeof r=="bigint"?r-1n:r-1;return typeof s=="bigint"?s<t?s:t:BigInt(s)<t?s:Number(t)}return t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER)?Number(t):t}function Me({ctx:e,controller:t,intType:n}){if(fe(n)){const s=lt(e,n);return e.isNullable?y.Control(j.NullableBigintInput,{...s,controller:t}):y.Control(j.BigintInput,{...s,controller:t})}const r=ut(e,n);return e.isNullable?y.Control(C.NullableNumberInput,{...r,controller:t}):y.Control(M.NumberInput,{...r,controller:t})}function ct(e,t){const n=e.definition;let r;n.multipleOf!==void 0?r=n.multipleOf:t==="decimal"&&n.scale!==void 0&&(r=Math.pow(10,-n.scale));const s=n.minimum!==void 0?typeof n.minimum=="string"?parseFloat(n.minimum):n.minimum:void 0,a=n.maximum!==void 0?typeof n.maximum=="string"?parseFloat(n.maximum):n.maximum:void 0,o=n.exclusiveMinimum!==void 0?typeof n.exclusiveMinimum=="string"?parseFloat(n.exclusiveMinimum):n.exclusiveMinimum:void 0,i=n.exclusiveMaximum!==void 0?typeof n.exclusiveMaximum=="string"?parseFloat(n.exclusiveMaximum):n.exclusiveMaximum:void 0;let u=e.description;if(o!==void 0||i!==void 0){const p=[];o!==void 0&&p.push(`> ${o}`),i!==void 0&&p.push(`< ${i}`);const m=`Valid range: ${p.join(" and ")}`;u=u?`${u} (${m})`:m}const c=e.examples?.[0]!=null?String(e.examples[0]):void 0;return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:u,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,min:s??o,max:a??i,step:r,placeholder:c}}function Oe({ctx:e,controller:t,floatType:n}){const r=ct(e,n);return e.isNullable?y.Control(C.NullableNumberInput,{...r,controller:t}):y.Control(M.NumberInput,{...r,controller:t})}function pt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}}function De({ctx:e,controller:t}){const n=pt(e);return y.Control(C.UuidInput,{...n,controller:C.transformEmptyStringToUndefined(t)})}function dt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Ae({ctx:e,controller:t,temporalType:n}){const r=dt(e);switch(n){case"date":return e.isNullable?y.Control(j.NullablePlainDateInput,{...r,controller:t}):y.Control(j.PlainDateInput,{...r,controller:t});case"datetime":return e.isNullable?y.Control(j.NullablePlainDateTimeInput,{...r,controller:t}):y.Control(j.PlainDateTimeInput,{...r,controller:t});case"time":return e.isNullable?y.Control(j.NullablePlainTimeInput,{...r,controller:t}):y.Control(j.PlainTimeInput,{...r,controller:t});case"duration":return e.isNullable?y.Control(C.NullableDurationInput,{...r,controller:t}):y.Control(j.DurationInput,{...r,controller:t});default:return console.warn(`Unknown temporal type: ${n}`),l.Empty}}function ft(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:"https://example.com"}}function Re({ctx:e,controller:t}){const n=ft(e);return y.Control(C.UrlInput,{...n,controller:C.transformEmptyStringToUndefined(t)})}function mt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Ne({ctx:e,controller:t}){const n=mt(e);return y.Control(j.FileInput,{...n,controller:t})}function yt(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated,placeholder:"Enter JSON value"}}function gt(e){return e.transform(t=>t===void 0?void 0:JSON.stringify(t,null,2),t=>{if(!(t===void 0||t.trim()===""))try{return JSON.parse(t)}catch{return t}})}function Y({ctx:e,controller:t}){const n=yt(e);return y.Control(M.TextArea,{...n,controller:gt(t)})}function U(e){return{label:e.suppressLabel?void 0:e.label,description:e.description,required:e.isRequired}}function P(e){if(e.default!==void 0)return e.default;if(e.examples&&e.examples.length>0)return e.examples[0];if(!e.type)return;const t=Array.isArray(e.type)?e.type[0]:e.type;if(!(typeof t=="object"&&"$ref"in t))switch(t){case"string":return"";case"boolean":return!1;case"null":return null;case"object":return{};case"array":case"set":return[];case"map":return{};case"any":return;default:return t==="int8"||t==="int16"||t==="int32"||t==="int64"||t==="int128"||t==="uint8"||t==="uint16"||t==="uint32"||t==="uint64"||t==="uint128"||t==="float"||t==="double"||t==="decimal"?0:void 0}}function ht(e,t){return!t||t.length===0?!1:typeof t[0]=="string"?t.includes(e):Array.isArray(t[0])?t.some(n=>n.includes(e)):!1}function bt(e,t="property"){if(!e.has(t))return t;let n=1;for(;e.has(`${t}${n}`);)n++;return`${t}${n}`}function ke({ctx:e,controller:t}){const n=e.definition;if(n.type!=="object"||!("properties"in n))return console.warn("StructureObjectControl requires an ObjectTypeDefinition"),l.html.div("Invalid object definition");const r=n.properties,s=n.required,a=n.additionalProperties,o=a!==!1,i=typeof a=="object"&&a!==null?a:{type:"any"},u=n.minProperties??0,c=n.maxProperties??1/0,p=R.objectEntries(r),m=new Set(p.map(([b])=>b)),g=p.map(([b,T])=>{const x=b,I=t.field(x),$=ht(x,s);return S({ctx:e.with({definition:T,isPropertyRequired:$,suppressLabel:!1}).append(x),controller:I})}),d=l.MapSignal(t.signal,b=>{const T=Object.keys(b??{}),x=T.filter($=>!m.has($));if(x.length===0)return l.Empty;const I=T.length>u&&!e.readOnly;return l.Fragment(...x.map($=>{const E=t.field($);return l.html.div(l.attr.class("bc-json-structure-additional-property"),l.html.div(l.attr.class("bc-json-structure-additional-property-header"),l.html.strong(`${$}:`),z.Button({variant:"text",size:"xs",onClick:()=>{const B={...l.Value.get(t.signal)??{}};delete B[$],t.change(B)},disabled:!I},"Remove")),l.html.div(l.attr.class("bc-json-structure-additional-property-value"),S({ctx:e.with({definition:i,isPropertyRequired:!1,suppressLabel:!0}).append($),controller:E})))}))}),h=o&&!e.readOnly?z.Button({variant:"outline",size:"sm",disabled:l.Value.map(t.signal,b=>Object.keys(b??{}).length>=c),onClick:()=>{const b=l.Value.get(t.signal)??{},T=new Set(Object.keys(b)),x=bt(T),I=P(i);t.change({...b,[x]:I})}},"Add Property"):null,f=l.html.div(l.attr.class("bc-json-structure-object-fields"),...g,d,h),v=l.html.div(l.attr.class("bc-json-structure-object"),f);return!e.suppressLabel&&e.name?y.Field({...U(e),content:v}):v}function Fe({ctx:e,controller:t}){const n=e.definition;if(n.type!=="array"||!("items"in n))return console.warn("StructureArrayControl requires an ArrayTypeDefinition"),l.html.div("Invalid array definition");const r=n.items,s=n.minItems??0,a=n.maxItems??1/0,o=l.computedOf(t.signal)(u=>(u?.length??0)<a),i=l.computedOf(t.signal)(u=>(u?.length??0)>s);return C.ListControl({...U(e),controller:t,createItem:()=>P(r),showAdd:!0,addDisabled:l.computedOf(o)(u=>!u||e.readOnly),showRemove:!0,removeDisabled:l.computedOf(i)(u=>!u||e.readOnly),element:u=>{const c=u.position.index,p=u.item;return S({ctx:e.with({definition:r,suppressLabel:!0}).append(c),controller:p})}})}function qe({ctx:e,controller:t}){const n=e.definition;if(n.type!=="set"||!("items"in n))return console.warn("StructureSetControl requires a SetTypeDefinition"),l.html.div("Invalid set definition");const r=n.items,s=n.minItems??0,a=n.maxItems??1/0,o=l.computedOf(t.signal)(c=>(c?.length??0)<a),i=l.computedOf(t.signal)(c=>(c?.length??0)>s),u=l.computedOf(t.signal)(c=>{if(!c||c.length===0)return new Set;const p=new Map,m=new Set;for(let g=0;g<c.length;g++){const d=JSON.stringify(c[g]);p.has(d)?(m.add(p.get(d)),m.add(g)):p.set(d,g)}return m});return C.ListControl({...U(e),controller:t,createItem:()=>P(r),showAdd:!0,addDisabled:l.computedOf(o)(c=>!c||e.readOnly),showRemove:!0,removeDisabled:l.computedOf(i)(c=>!c||e.readOnly),element:c=>{const p=c.position.index,m=c.item,g=u.map(h=>h.has(p)),d=S({ctx:e.with({definition:r,suppressLabel:!0}).append(p),controller:m});return l.Fragment(d,l.When(g,()=>F.Label(l.attr.class("bc-json-structure-set-error"),"Duplicate value - sets must contain unique items")))}})}function vt(e,t="key"){if(!e.has(t))return t;let n=1;for(;e.has(`${t}${n}`);)n++;return`${t}${n}`}function Pe({ctx:e,controller:t}){const n=e.definition;if(n.type!=="map"||!("values"in n))return console.warn("StructureMapControl requires a MapTypeDefinition"),l.html.div("Invalid map definition");const r=n.values,s=n.minProperties??0,a=n.maxProperties??1/0,o=l.MapSignal(t.signal,p=>{const m=Object.keys(p??{});if(m.length===0)return l.Empty;const g=m.length>s&&!e.readOnly;return l.Fragment(...m.map(d=>{const h=t.field(d);return l.html.div(l.attr.class("bc-json-structure-map-entry"),l.html.div(l.attr.class("bc-json-structure-map-entry-header"),l.html.strong(l.attr.class("bc-json-structure-map-entry-key"),`${d}:`),z.Button({variant:"text",size:"xs",onClick:()=>{const f={...l.Value.get(t.signal)??{}};delete f[d],t.change(f)},disabled:!g},"Remove")),l.html.div(l.attr.class("bc-json-structure-map-entry-value"),S({ctx:e.with({definition:r,suppressLabel:!0}).append(d),controller:h})))}))}),i=e.readOnly?null:z.Button({variant:"outline",size:"sm",disabled:l.Value.map(t.signal,p=>Object.keys(p??{}).length>=a),onClick:()=>{const p=l.Value.get(t.signal)??{},m=new Set(Object.keys(p)),g=vt(m),d=P(r);t.change({...p,[g]:d})}},"Add Entry"),u=l.html.div(l.attr.class("bc-json-structure-map-entries"),o,i),c=l.html.div(l.attr.class("bc-json-structure-map"),u);return!e.suppressLabel&&e.name?y.Field({...U(e),content:c}):c}function Ve({ctx:e,controller:t}){const n=e.definition;if(n.type!=="tuple"||!("tuple"in n)||!("properties"in n))return console.warn("StructureTupleControl requires a TupleTypeDefinition"),l.html.div("Invalid tuple definition");const r=n.tuple,s=n.properties,a=t.signal.value;if(!Array.isArray(a)||a.length!==r.length){const i=r.map(u=>{const c=s[u];return c?P(c):void 0});t.change(i)}const o=U(e);return l.html.div(l.attr.class("bc-json-structure-tuple"),o.label?l.html.label(l.attr.class("bc-json-structure-tuple-label"),o.label,o.required?l.html.span(l.attr.class("bc-required-indicator"),"*"):null):null,o.description?l.html.div(l.attr.class("bc-json-structure-tuple-description"),o.description):null,l.html.div(l.attr.class("bc-json-structure-tuple-elements"),...r.map((i,u)=>{const c=s[i];if(!c)return console.warn(`Tuple element "${i}" at index ${u} not found in properties`),l.html.div(l.attr.class("bc-json-structure-tuple-element"),l.html.span(`Missing definition for "${i}"`));const p=t.item(u),m=c.name||i;return l.html.div(l.attr.class("bc-json-structure-tuple-element"),l.html.div(l.attr.class("bc-json-structure-tuple-element-header"),l.html.span(l.attr.class("bc-json-structure-tuple-position"),`[${u}]`),l.html.span(l.attr.class("bc-json-structure-tuple-element-name"),m)),l.html.div(l.attr.class("bc-json-structure-tuple-element-control"),S({ctx:e.with({definition:c,suppressLabel:!0}).append(u),controller:p})))})))}function xt({options:e,selected:t,onChange:n,disabled:r}){return M.NativeSelect({options:e.map(s=>({type:"value",value:s.value,label:s.label})),value:t,onChange:n,disabled:r})}function Tt({ctx:e,selector:t,inner:n}){const r=F.Stack(l.attr.class("bc-stack--gap-2 bc-stack--align-start"),t,n);return e.isRoot?r:y.Field({label:e.suppressLabel?void 0:e.label,description:e.description,required:e.isRequired,content:r})}function $t(e,t,n){if(!e||typeof e!="object")return null;const r=e;if(n&&n in r){const a=r[n];if(typeof a=="string"&&a in t)return a}const s=Object.keys(r);if(s.length===1){const a=s[0];if(a in t)return a}return null}function Ct(e,t,n){if(!e||typeof e!="object")return;const r=e;if(n&&n in r){const{[n]:s,...a}=r;return a}if(t in r)return r[t]}function ce(e,t,n){return n?e&&typeof e=="object"?{[n]:t,...e}:{[n]:t}:{[t]:e}}function Ee({ctx:e,controller:t}){const n=e.definition;if(!n.choices||typeof n.choices!="object")return console.warn("StructureChoiceControl requires choices property"),l.html.div(l.attr.class("bc-json-structure-error"),"Invalid choice definition: missing choices");const r=n.choices,s=n.selector,a=Object.keys(r);if(a.length===0)return l.html.div(l.attr.class("bc-json-structure-error"),"Choice type has no variants defined");const o=a.map(f=>{const b=r[f].name||f;return{value:f,label:b}}),i=l.computedOf(t.signal)(f=>$t(f,r,s)),u=l.Value.get(i)||a[0],c=l.prop(u);t.onDispose(()=>c.dispose());let p=!1;const m=i.on(f=>{!p&&f!==null&&c.set(f)});t.onDispose(m);const d=xt({options:o,selected:c,onChange:f=>{p=!0,c.set(f);const v=r[f];if(v){const b=P(v),T=ce(b,f,s);t.change(T)}},disabled:e.readOnly||e.isDeprecated}),h=l.MapSignal(c,f=>{const v=r[l.Value.get(f)];if(!v)return l.html.div(l.attr.class("bc-json-structure-error"),`Choice variant not found: ${l.Value.get(f)}`);const b=l.computedOf(t.signal)(I=>Ct(I,l.Value.get(f),s)),T=I=>{const $=ce(I,l.Value.get(f),s);t.change($)},x=new A.Controller([...t.path,l.Value.get(f)],T,b,t.status,{disabled:t.disabled},void 0);return t.onDispose(()=>x.dispose()),S({ctx:e.with({definition:v,suppressLabel:!0}).append(l.Value.get(f)),controller:x})});return Tt({ctx:e,selector:d,inner:h})}function It(e){return{label:e.suppressLabel?void 0:w(e.label,e.isDeprecated),description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function Le({ctx:e,controller:t}){const n=It(e);return M.NativeSelectControl({...n,options:(e.enumValues??[]).map(r=>({type:"value",value:r,label:String(r)})),controller:t})}function Ue({ctx:e,controller:t}){return l.Fragment(l.WithElement(()=>{l.Value.get(t.signal)!==e.constValue&&t.change(e.constValue)}),M.Group(F.MutedLabel(e.label,": "),F.Label(String(e.constValue))))}function St(e){return{label:e.suppressLabel?void 0:e.label,description:e.description,required:e.isRequired,disabled:e.readOnly||e.isDeprecated}}function wt(e,t){if(e===null)return t.includes("null")?"null":null;if(e===void 0)return t.includes("string")?"string":t[0]??null;switch(typeof e){case"string":return t.includes("uuid")?"uuid":t.includes("uri")?"uri":t.includes("date")?"date":t.includes("datetime")?"datetime":t.includes("time")?"time":t.includes("duration")?"duration":t.includes("string")?"string":null;case"number":{if(Number.isInteger(e)){if(t.includes("int32"))return"int32";if(t.includes("int64"))return"int64";if(t.includes("uint32"))return"uint32";if(t.includes("uint64"))return"uint64";if(t.includes("int16"))return"int16";if(t.includes("int8"))return"int8";if(t.includes("uint16"))return"uint16";if(t.includes("uint8"))return"uint8"}return t.includes("double")?"double":t.includes("float")?"float":t.includes("decimal")?"decimal":null}case"bigint":return t.includes("int128")?"int128":t.includes("int64")?"int64":t.includes("uint128")?"uint128":t.includes("uint64")?"uint64":null;case"boolean":return t.includes("boolean")?"boolean":null;case"object":return e instanceof File||e instanceof Blob?t.includes("binary")?"binary":null:Array.isArray(e)?t.includes("array")?"array":t.includes("set")?"set":t.includes("tuple")?"tuple":null:t.includes("object")?"object":t.includes("map")?"map":null;default:return null}}function jt(e,t){try{switch(t){case"string":case"uuid":case"uri":case"date":case"datetime":case"time":case"duration":return e==null?{ok:!0,value:void 0}:{ok:!0,value:String(e)};case"int8":case"int16":case"int32":case"uint8":case"uint16":case"uint32":return typeof e=="number"&&Number.isInteger(e)?{ok:!0,value:e}:typeof e=="string"?/^[-+]?\d+$/.test(e.trim())?{ok:!0,value:parseInt(e,10)}:{ok:!1}:typeof e=="boolean"?{ok:!0,value:e?1:0}:{ok:!1};case"int64":case"int128":case"uint64":case"uint128":{if(typeof e=="bigint")return{ok:!0,value:e};if(typeof e=="number"&&Number.isInteger(e))return{ok:!0,value:BigInt(e)};if(typeof e=="string")try{return{ok:!0,value:BigInt(e.trim())}}catch{return{ok:!1}}return{ok:!1}}case"float":case"double":case"decimal":{if(typeof e=="number")return{ok:!0,value:e};if(typeof e=="string"){const n=Number(e);return Number.isFinite(n)?{ok:!0,value:n}:{ok:!1}}return typeof e=="boolean"?{ok:!0,value:e?1:0}:{ok:!1}}case"boolean":{if(typeof e=="boolean")return{ok:!0,value:e};if(typeof e=="string"){const n=e.trim().toLowerCase();return n==="true"||n==="1"||n==="yes"?{ok:!0,value:!0}:n==="false"||n==="0"||n==="no"?{ok:!0,value:!1}:{ok:!1}}return typeof e=="number"?{ok:!0,value:e!==0}:{ok:!1}}case"array":case"set":case"tuple":return Array.isArray(e)?{ok:!0,value:e}:{ok:!1};case"object":case"map":return e!=null&&typeof e=="object"&&!Array.isArray(e)?{ok:!0,value:e}:{ok:!1};case"binary":return e instanceof File||e instanceof Blob?{ok:!0,value:e}:{ok:!1};case"null":return{ok:!0,value:null};case"any":case"choice":return{ok:!0,value:e};default:return{ok:!1}}}catch{return{ok:!1}}}function Mt(e){switch(e){case"null":return null;case"array":case"set":case"tuple":return[];case"object":case"map":return{};case"binary":return;default:return}}function Ot(e){return e.map(t=>({key:t,label:R.upperCaseFirst(t),detect:n=>wt(n,[t])===t,convert:n=>jt(n,t),defaultValue:()=>Mt(t)}))}function Dt({options:e,selected:t,onChange:n}){if((e.length<=3?"segmented":"select")==="segmented"){const a=Object.fromEntries(e.map(o=>[o.value,o.label]));return M.SegmentedInput({options:a,value:t,onChange:o=>n(o),size:"sm"})}return M.NativeSelect({options:e.map(a=>({type:"value",value:a.value,label:a.label})),value:t,onChange:n})}function At({ctx:e,showSelector:t,selector:n,inner:r}){return e.isRoot?t?F.Stack(l.attr.class("bc-stack--gap-2"),n,r):r:y.Field({...St(e),content:t?F.Stack(l.attr.class("bc-stack--gap-2 bc-stack--align-start"),n,r):r})}function Rt({ctx:e,controller:t}){const n=e.definition,r=n.type;let s;if(Array.isArray(r))s=r;else return console.warn("StructureUnionControl called with non-array type"),S({ctx:e,controller:t});const a=s.includes("null"),o=K(r),i=a&&o.length>0?o:s,u=Ot(i),c=new C.UnionController(t.path,t.change,t.signal,t.status,{disabled:t.disabled},u);t.onDispose(()=>c.dispose());const p=d=>Dt({options:i.map(h=>({value:h,label:R.upperCaseFirst(h)})),selected:c.activeBranch,onChange:d}),m=d=>{c.switchToBranch(d,!1)},g=l.MapSignal(c.activeBranch,d=>{const h=l.Value.get(d),f=c.getBranchController(h),v=e.with({definition:{...n,type:h},suppressLabel:!e.isRoot});return S({ctx:v,controller:f})});return At({ctx:e,showSelector:i.length>1,selector:p(m),inner:g})}function S({ctx:e,controller:t}){let n=e;const r=e.definition;if(r.type&&D(r.type)){const i=e.resolveRef(r.type.$ref);if(i){const{type:u,...c}=r,p={...i,...c};n=e.with({definition:p})}}if(n.definition.$extends){const{merged:i}=ie(n.definition,e.schema);n=n.with({definition:i})}const s=n.widgetRegistry;if(s){const i=s.findBestWidget(n);if(i)return i.registration.factory({controller:t,ctx:n})}if(be(n.definition))return Le({ctx:n,controller:t});if(ve(n.definition))return Ue({ctx:n,controller:t});const a=n.resolvedType;if(Array.isArray(a)&&K(a).length>1)return Rt({ctx:n,controller:t});const o=n.primaryType;if(!o)return Y({ctx:n,controller:t});if(N(n.definition)){const i=t instanceof A.ObjectController?t:t.object();return ke({ctx:n,controller:i})}if(Q(n.definition)){const i=t instanceof A.ArrayController?t:t.array();return Fe({ctx:n,controller:i})}if(ee(n.definition)){const i=t instanceof A.ArrayController?t:t.array();return qe({ctx:n,controller:i})}if(te(n.definition)){const i=t instanceof A.ObjectController?t:t.object();return Pe({ctx:n,controller:i})}if(ne(n.definition)){const i=t instanceof A.ArrayController?t:t.array();return Ve({ctx:n,controller:i})}if(re(n.definition))return Ee({ctx:n,controller:t});switch(o){case"string":return Ie({ctx:n,controller:t});case"boolean":return Se({ctx:n,controller:t});case"uuid":return De({ctx:n,controller:t});case"uri":return Re({ctx:n,controller:t});case"binary":return Ne({ctx:n,controller:t});case"null":return Nt(n);case"any":return Y({ctx:n,controller:t});default:return q(o)?Me({ctx:n,controller:t,intType:o}):G(o)?Oe({ctx:n,controller:t,floatType:o}):J(o)?Ae({ctx:n,controller:t,temporalType:o}):(console.warn(`Unknown type: ${o}`),kt(n,o))}}function We({schema:e,controller:t,widgetRegistry:n,readOnly:r,locale:s}){const a=Ce(e,{widgetRegistry:n,readOnly:r,locale:s});return S({ctx:a,controller:t})}function Nt(e){return l.html.div(l.attr.class("bc-json-structure-placeholder"),l.html.span(`[Null: ${e.label}]`),l.html.em("null"))}function kt(e,t){return l.html.div(l.attr.class("bc-json-structure-unknown"),l.html.span(`Unknown type: ${t}`),l.html.em(`at path: ${e.jsonPath}`))}function se(e,t){return new Ft(e,t)}class Ft{schema;options;constructor(t,n){this.schema=t,this.options=n??{}}validate(t){const n=[];return this.validateValue(t,this.schema,"",n),{isValid:n.length===0,errors:n}}validateAt(t,n){return this.validate(t)}validateValue(t,n,r,s){if(this.options.stopOnFirstError&&s.length>0)return;if(t===null){const c=n.type;if(c==="null"||Array.isArray(c)&&c.includes("null"))return;s.push({path:r,type:"type",expected:c,actual:"null"});return}if("enum"in n&&Array.isArray(n.enum)){n.enum.includes(t)||s.push({path:r,type:"enum",expected:n.enum,actual:t});return}if("const"in n){t!==n.const&&s.push({path:r,type:"const",expected:n.const,actual:t});return}const a=n.type;if(!a)return;const i=(Array.isArray(a)?a:[a]).filter(c=>typeof c=="string");!i.some(c=>this.checkType(t,c,n,r,s))&&i.length>0&&s.push({path:r,type:"type",expected:a,actual:typeof t})}checkType(t,n,r,s,a){switch(n){case"string":return this.validateString(t,r,s,a);case"boolean":return typeof t=="boolean";case"null":return t===null;case"object":return this.validateObject(t,r,s,a);case"array":return this.validateArray(t,r,s,a);case"set":return this.validateSet(t,r,s,a);case"map":return this.validateMap(t,r,s,a);case"tuple":return this.validateTuple(t,r,s,a);case"choice":return this.validateChoice(t,r,s,a);case"any":return!0;default:return q(n)?this.validateInteger(t,n,r,s,a):G(n)?this.validateFloat(t,r,s,a):J(n)?this.validateTemporal(t,n,s,a):n==="uuid"?this.validateUuid(t,s,a):n==="uri"?this.validateUri(t,s,a):n==="binary"?this.validateBinary(t,s,a):!1}}validateString(t,n,r,s){if(typeof t!="string")return!1;const a=n;if(a.minLength!==void 0&&t.length<a.minLength&&s.push({path:r,type:"minLength",expected:a.minLength,actual:t.length}),a.maxLength!==void 0&&t.length>a.maxLength&&s.push({path:r,type:"maxLength",expected:a.maxLength,actual:t.length}),a.pattern!==void 0)try{new RegExp(a.pattern).test(t)||s.push({path:r,type:"pattern",expected:a.pattern,actual:t})}catch{}return!0}validateInteger(t,n,r,s,a){if(typeof t!="number"&&typeof t!="bigint")return!1;if(typeof t=="number"&&!Number.isInteger(t))return a.push({path:s,type:"type",expected:n,actual:"float"}),!1;if(q(n)){const o=L[n],i=typeof t=="bigint"?t:BigInt(Math.round(t));(i<o.min||i>o.max)&&a.push({path:s,type:"integer_bounds",expected:{min:o.min.toString(),max:o.max.toString()},actual:i.toString(),context:{type:n}})}return this.validateNumericConstraints(t,r,s,a),!0}validateFloat(t,n,r,s){return typeof t!="number"?!1:(this.validateNumericConstraints(t,n,r,s),!0)}validateNumericConstraints(t,n,r,s){const a=n,o=typeof t=="bigint"?Number(t):t;if(a.minimum!==void 0){const i=typeof a.minimum=="string"?Number(a.minimum):a.minimum;o<i&&s.push({path:r,type:"minimum",expected:i,actual:o})}if(a.maximum!==void 0){const i=typeof a.maximum=="string"?Number(a.maximum):a.maximum;o>i&&s.push({path:r,type:"maximum",expected:i,actual:o})}if(a.exclusiveMinimum!==void 0){const i=typeof a.exclusiveMinimum=="string"?Number(a.exclusiveMinimum):a.exclusiveMinimum;o<=i&&s.push({path:r,type:"exclusiveMinimum",expected:i,actual:o})}if(a.exclusiveMaximum!==void 0){const i=typeof a.exclusiveMaximum=="string"?Number(a.exclusiveMaximum):a.exclusiveMaximum;o>=i&&s.push({path:r,type:"exclusiveMaximum",expected:i,actual:o})}a.multipleOf!==void 0&&typeof t=="number"&&t%a.multipleOf!==0&&s.push({path:r,type:"multipleOf",expected:a.multipleOf,actual:t})}validateTemporal(t,n,r,s){if(typeof t!="string")return!1;const o={date:/^\d{4}-\d{2}-\d{2}$/,datetime:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?$/,time:/^\d{2}:\d{2}:\d{2}(\.\d+)?$/,duration:/^P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$/}[n];return o&&!o.test(t)?(s.push({path:r,type:"format",expected:n,actual:t}),!1):!0}validateUuid(t,n,r){return typeof t!="string"?!1:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?!0:(r.push({path:n,type:"format",expected:"uuid",actual:t}),!1)}validateUri(t,n,r){if(typeof t!="string")return!1;try{return new URL(t),!0}catch{return r.push({path:n,type:"format",expected:"uri",actual:t}),!1}}validateBinary(t,n,r){return t instanceof Uint8Array?!0:typeof t!="string"?!1:/^[A-Za-z0-9+/]*={0,2}$/.test(t)?!0:(r.push({path:n,type:"format",expected:"binary",actual:t}),!1)}validateObject(t,n,r,s){if(typeof t!="object"||t===null||Array.isArray(t))return!1;if(!N(n))return!0;const a=t,o=n.required;if(o){const i=Array.isArray(o[0])?o.flat():o;for(const u of i)u in a||s.push({path:r?`${r}/${u}`:`/${u}`,type:"required",expected:u})}for(const[i,u]of Object.entries(a)){const c=n.properties?.[i];if(c){const p=r?`${r}/${i}`:`/${i}`;this.validateValue(u,c,p,s)}else if(n.additionalProperties===!1)s.push({path:r?`${r}/${i}`:`/${i}`,type:"additionalProperties",actual:i});else if(typeof n.additionalProperties=="object"){const p=r?`${r}/${i}`:`/${i}`;this.validateValue(u,n.additionalProperties,p,s)}}return!0}validateArray(t,n,r,s){if(!Array.isArray(t))return!1;if(!Q(n))return!0;const a=n;a.minItems!==void 0&&t.length<a.minItems&&s.push({path:r,type:"minItems",expected:a.minItems,actual:t.length}),a.maxItems!==void 0&&t.length>a.maxItems&&s.push({path:r,type:"maxItems",expected:a.maxItems,actual:t.length});for(let o=0;o<t.length;o++){const i=`${r}/${o}`;this.validateValue(t[o],n.items,i,s)}return!0}validateSet(t,n,r,s){if(!Array.isArray(t))return!1;if(!ee(n))return!0;const a=new Set;for(let o=0;o<t.length;o++){const i=JSON.stringify(t[o]);a.has(i)&&s.push({path:`${r}/${o}`,type:"uniqueItems",actual:t[o]}),a.add(i)}return this.validateArray(t,n,r,s)}validateMap(t,n,r,s){if(typeof t!="object"||t===null||Array.isArray(t))return!1;if(!te(n))return!0;const a=t;for(const[o,i]of Object.entries(a)){const u=`${r}/${o}`;this.validateValue(i,n.values,u,s)}return!0}validateTuple(t,n,r,s){if(!Array.isArray(t))return!1;if(!ne(n))return!0;const a=n.tuple.length;t.length!==a&&s.push({path:r,type:"tuple_length",expected:a,actual:t.length});for(let o=0;o<n.tuple.length;o++){const i=n.tuple[o],u=n.properties?.[i];u&&o<t.length&&this.validateValue(t[o],u,`${r}/${o}`,s)}return!0}validateChoice(t,n,r,s){if(typeof t!="object"||t===null||Array.isArray(t))return!1;if(!re(n))return!0;const a=t,o=Object.keys(n.choices),i=Object.keys(a).find(c=>o.includes(c));if(!i)return s.push({path:r,type:"choice",expected:o,actual:Object.keys(a)}),!1;const u=n.choices[i];return u&&this.validateValue(a[i],u,`${r}/${i}`,s),!0}}function qt(e,t,n){return se(e,n).validate(t)}function Be(e,t){const n=Pt(e,t);return{path:e.path,message:n,code:e.type}}function ae(e,t){return e.map(n=>{const r=t?.get(n.path);return Be(n,r)})}function Pt(e,t){switch(e.type){case"type":return`Expected ${pe(e.expected)}, got ${Vt(e.actual)}`;case"type_mismatch":return`Value must be of type ${pe(e.expected)}`;case"minLength":return`Must be at least ${e.expected} characters`;case"maxLength":return`Must be no more than ${e.expected} characters`;case"pattern":return Et(e,t);case"format":return Lt(e);case"minimum":return`Must be at least ${e.expected}`;case"maximum":return`Must be at most ${e.expected}`;case"exclusiveMinimum":return`Must be greater than ${e.expected}`;case"exclusiveMaximum":return`Must be less than ${e.expected}`;case"multipleOf":return`Must be a multiple of ${e.expected}`;case"integer_bounds":return Ut(e);case"minItems":return`Must have at least ${e.expected} items`;case"maxItems":return`Must have no more than ${e.expected} items`;case"uniqueItems":return"All items must be unique";case"contains":return"Must contain at least one matching item";case"minContains":return`Must contain at least ${e.expected} matching items`;case"maxContains":return`Must contain no more than ${e.expected} matching items`;case"required":return"This field is required";case"minProperties":return`Must have at least ${e.expected} properties`;case"maxProperties":return`Must have no more than ${e.expected} properties`;case"additionalProperties":return`Unknown property: ${e.actual}`;case"dependentRequired":return Wt(e);case"enum":return Bt(e);case"const":return`Must be exactly ${JSON.stringify(e.expected)}`;case"ref_not_found":return`Invalid reference: ${e.expected}`;case"circular_ref":return"Circular reference detected";case"invalid":return"Invalid value";default:return e.context?.message??`Validation error: ${e.type}`}}function pe(e){return typeof e=="string"?de(e):Array.isArray(e)?e.map(de).join(" or "):String(e)}function Vt(e){return e===null?"null":e===void 0?"undefined":typeof e}function de(e){return{string:"text",boolean:"true/false",int8:"integer (-128 to 127)",int16:"integer (-32768 to 32767)",int32:"integer",int64:"large integer",int128:"very large integer",uint8:"positive integer (0 to 255)",uint16:"positive integer (0 to 65535)",uint32:"positive integer",uint64:"large positive integer",uint128:"very large positive integer",float:"decimal number",double:"decimal number",decimal:"decimal number",date:"date",datetime:"date and time",time:"time",duration:"duration",uuid:"UUID",uri:"URL",binary:"binary data",object:"object",array:"list",set:"unique list",map:"key-value pairs",tuple:"ordered list",choice:"one of multiple options",any:"any value",null:"empty"}[e]??e}function Et(e,t){const n=t?.description;if(n&&e.type==="pattern")return`Does not match required format: ${n}`;const r=e.expected;if(r){const a={"^[a-zA-Z]+$":"letters only","^[0-9]+$":"numbers only","^[a-zA-Z0-9]+$":"letters and numbers only","^\\S+$":"no spaces allowed","^[a-z]+$":"lowercase letters only","^[A-Z]+$":"uppercase letters only"}[r];if(a)return`Must be ${a}`}return"Does not match required format"}function Lt(e){const t=e.expected;return{email:"Must be a valid email address","date-time":"Must be a valid date and time",date:"Must be a valid date",time:"Must be a valid time",uri:"Must be a valid URL","uri-reference":"Must be a valid URL or relative path",uuid:"Must be a valid UUID",hostname:"Must be a valid hostname",ipv4:"Must be a valid IPv4 address",ipv6:"Must be a valid IPv6 address",regex:"Must be a valid regular expression","json-pointer":"Must be a valid JSON pointer"}[t]??`Must be a valid ${t}`}function Ut(e){const t=e.context?.type;if(t&&q(t)){const n=L[t];return`Must be between ${n.min} and ${n.max}`}return"Value is out of range for this integer type"}function Wt(e){const t=e.context?.dependent,n=e.context?.required;return t&&n?.length?`When "${t}" is present, "${n.join('", "')}" must also be provided`:"Missing required dependent fields"}function Bt(e){const t=e.expected;return t&&t.length<=5?`Must be one of: ${t.map(r=>JSON.stringify(r)).join(", ")}`:"Invalid value"}function _t(e){const t=new Map;for(const n of e){const r=t.get(n.path)??[];r.push(n),t.set(n.path,r)}return t}function zt(e,t){return e.filter(n=>n.path===t)}function Gt(e,t){return e.some(n=>n.path===t)}function Jt(e,t){const n=t===""?"/":`${t}/`;return e.filter(r=>r.path.startsWith(n))}class W{registrations=new Map;parent;constructor(t){this.parent=t??null}register(t,n){this.registrations.set(t,n)}unregister(t){this.registrations.delete(t)}get(t){return this.registrations.get(t)??this.parent?.get(t)}has(t){return this.registrations.has(t)||(this.parent?.has(t)??!1)}names(){const t=this.parent?.names()??[],n=Array.from(this.registrations.keys());return[...new Set([...t,...n])]}getForType(t){const n=[];this.parent&&n.push(...this.parent.getForType(t));for(const r of this.registrations.values())r.supportedTypes?.includes(t)&&n.push(r);return n}getForFormat(t){const n=[];this.parent&&n.push(...this.parent.getForFormat(t));for(const r of this.registrations.values())r.supportedFormats?.includes(t)&&n.push(r);return n}findBestWidget(t){const n=[];for(const s of this.names()){const a=this.get(s);if(!a)continue;const o=this.scoreWidget(a,t);o>0&&n.push({name:s,registration:a,score:o})}if(n.length===0)return null;n.sort((s,a)=>a.score!==s.score?a.score-s.score:(a.registration.priority??0)-(s.registration.priority??0));const r=n[0];return{name:r.name,registration:r.registration}}scoreWidget(t,n){let r=0;if(t.matcher)if(t.matcher(n))r+=100;else return 0;const s=n.primaryType;s&&t.supportedTypes?.includes(s)&&(r+=50);const a=n.format;return a&&t.supportedFormats?.includes(a)&&(r+=30),r+=t.priority??0,r}createChild(){return new W(this)}}let _=null;function V(){return _||(_=new W),_}function Kt(e){_=e}function Zt(e){return new W(e)}function Ht(e,t,n){return{name:`type:${e}`,registration:{factory:t,displayName:n?.displayName??`${e} widget`,description:n?.description,supportedTypes:[e],priority:n?.priority??0,canFallback:n?.canFallback??!1}}}function Xt(e,t,n){return{name:`format:${e}`,registration:{factory:t,displayName:n?.displayName??`${e} widget`,description:n?.description,supportedFormats:[e],priority:n?.priority??10,canFallback:n?.canFallback??!1}}}function Yt(e,t,n,r){return{name:`type:${e}:format:${t}`,registration:{factory:n,displayName:r?.displayName??`${e}/${t} widget`,description:r?.description,supportedTypes:[e],supportedFormats:[t],priority:r?.priority??20,canFallback:r?.canFallback??!1}}}function Qt(e,t,n,r){return{name:e,registration:{factory:n,displayName:r?.displayName??e,description:r?.description,matcher:t,priority:r?.priority??50,canFallback:r?.canFallback??!1}}}function _e(e,t){if(t){const r=t.findBestWidget(e);if(r)return r}return V().findBestWidget(e)}function en(e){const t=e.definition,n={};if(typeof t=="object"&&"x:ui"in t){const r=t["x:ui"];r.widget&&typeof r.widget=="object"&&(n.options=r.widget),typeof r.priority=="number"&&(n.priority=r.priority)}if(typeof t=="object"&&"widget"in t){const r=t.widget;typeof r=="object"&&r!==null&&(n.options={...n.options??{},...r})}return Object.keys(n).length>0?n:void 0}function oe(e){const t=e.definition;if(typeof t=="object"&&"x:ui"in t){const n=t["x:ui"];if(typeof n.widget=="string")return n.widget}if(typeof t=="object"&&"widget"in t){const n=t.widget;if(n&&typeof n.type=="string")return n.type}}function tn(e){return oe(e)!==void 0}function nn(e,t){const n=oe(e);if(n){if(t){const a=t.get(n);if(a)return{name:n,registration:a}}const s=V().get(n);if(s)return{name:n,registration:s};console.warn(`Widget "${n}" specified in definition but not found in registry`,{path:e.jsonPath})}return _e(e,t)}function rn(e,t,n){return{...e,...t,...n}}function ze(e=V()){e.register("string",{factory:({controller:i,ctx:u})=>Ie({ctx:u,controller:i}),displayName:"String",description:"Text input for string values",supportedTypes:["string"],priority:0,canFallback:!0}),e.register("boolean",{factory:({controller:i,ctx:u})=>Se({ctx:u,controller:i}),displayName:"Boolean",description:"Checkbox for boolean values",supportedTypes:["boolean"],priority:0,canFallback:!0}),e.register("uuid",{factory:({controller:i,ctx:u})=>De({ctx:u,controller:i}),displayName:"UUID",description:"Input for UUID values",supportedTypes:["uuid"],priority:0,canFallback:!0}),e.register("uri",{factory:({controller:i,ctx:u})=>Re({ctx:u,controller:i}),displayName:"URI",description:"Input for URI/URL values",supportedTypes:["uri"],priority:0,canFallback:!0}),e.register("binary",{factory:({controller:i,ctx:u})=>Ne({ctx:u,controller:i}),displayName:"Binary",description:"File upload for binary data",supportedTypes:["binary"],priority:0,canFallback:!0}),e.register("any",{factory:({controller:i,ctx:u})=>Y({ctx:u,controller:i}),displayName:"Any",description:"Generic control for any type",supportedTypes:["any"],priority:0,canFallback:!0});const t=["int8","int16","int32","int64","int128","uint8","uint16","uint32","uint64","uint128"],n=({controller:i,ctx:u})=>Me({ctx:u,controller:i,intType:u.primaryType});for(const i of t)e.register(i,{factory:n,displayName:i.toUpperCase(),description:`Number input for ${i} values`,supportedTypes:[i],priority:0,canFallback:!0});const r=["float","double","decimal"],s=({controller:i,ctx:u})=>Oe({ctx:u,controller:i,floatType:u.primaryType});for(const i of r)e.register(i,{factory:s,displayName:i.charAt(0).toUpperCase()+i.slice(1),description:`Number input for ${i} values`,supportedTypes:[i],priority:0,canFallback:!0});const a=["date","datetime","time","duration"],o=({controller:i,ctx:u})=>Ae({ctx:u,controller:i,temporalType:u.primaryType});for(const i of a)e.register(i,{factory:o,displayName:i.charAt(0).toUpperCase()+i.slice(1),description:`Input for ${i} values`,supportedTypes:[i],priority:0,canFallback:!0});e.register("object",{factory:({controller:i,ctx:u})=>ke({ctx:u,controller:i}),displayName:"Object",description:"Form for object values",supportedTypes:["object"],priority:0,canFallback:!0}),e.register("array",{factory:({controller:i,ctx:u})=>Fe({ctx:u,controller:i}),displayName:"Array",description:"List control for array values",supportedTypes:["array"],priority:0,canFallback:!0}),e.register("set",{factory:({controller:i,ctx:u})=>qe({ctx:u,controller:i}),displayName:"Set",description:"Set control for unique values",supportedTypes:["set"],priority:0,canFallback:!0}),e.register("map",{factory:({controller:i,ctx:u})=>Pe({ctx:u,controller:i}),displayName:"Map",description:"Map control for key-value pairs",supportedTypes:["map"],priority:0,canFallback:!0}),e.register("tuple",{factory:({controller:i,ctx:u})=>Ve({ctx:u,controller:i}),displayName:"Tuple",description:"Tuple control for fixed-length arrays",supportedTypes:["tuple"],priority:0,canFallback:!0}),e.register("choice",{factory:({controller:i,ctx:u})=>Ee({ctx:u,controller:i}),displayName:"Choice",description:"Choice control for union types",supportedTypes:["choice"],priority:0,canFallback:!0}),e.register("enum",{factory:({controller:i,ctx:u})=>Le({ctx:u,controller:i}),displayName:"Enum",description:"Dropdown for enumerated values",priority:10,canFallback:!1,matcher:i=>i.hasEnum}),e.register("const",{factory:({controller:i,ctx:u})=>Ue({ctx:u,controller:i}),displayName:"Const",description:"Display for constant values",priority:20,canFallback:!1,matcher:i=>i.hasConst})}function Ge(e=V()){return e.has("string")&&e.has("object")&&e.has("array")}function sn(e=V()){Ge(e)||ze(e)}function Je(e){let t=e;if(e.$root){const n=k(e.$root,e);n&&(t=n)}return O(t,e,new Set)}function O(e,t,n){if(e.type&&D(e.type)){const r=e.type.$ref;if(n.has(r))return;n.add(r);try{const s=k(r,t);if(s){const a={...s,...e,type:s.type};return O(a,t,n)}return}finally{n.delete(r)}}return e.default!==void 0?e.default:Array.isArray(e.examples)&&e.examples.length>0?e.examples[0]:"const"in e&&e.const!==void 0?e.const:"enum"in e&&Array.isArray(e.enum)&&e.enum.length>0?e.enum[0]:hn(e)?null:an(e,t,n)}function an(e,t,n){const r=Ke(e);if(N(e))return un(e,t,n);if(r==="choice"&&"choices"in e)return ln(e,t,n);if(r==="tuple"&&"tuple"in e&&"properties"in e)return cn(e,t,n);if(r==="array")return pn(e,t,n);if(r==="set")return dn(e,t,n);if(r==="map")return{};if(r==="string")return fn(e);if(bn(r))return mn(e);if(vn(r))return yn(e);if(r==="boolean")return!1;if(r==="null")return null;if(xn(r))return gn(r);if(r==="uuid"||r==="uri"||r==="uri-reference"||r==="binary"||r==="bytes")return""}function on(e){if(!e||e.length===0)return new Set;if(Array.isArray(e[0])){const t=e.flat();return new Set(t)}return new Set(e)}function un(e,t,n){if(!N(e))return{};const r=on(e.required),s={};for(const[a,o]of Object.entries(e.properties))if(r.has(a))if(o.type&&D(o.type)){const i=o.type.$ref;if(n.has(i))continue;n.add(i);try{const u=k(i,t);if(u){const c={...u,...o,type:u.type},p=O(c,t,n);p!==void 0&&(s[a]=p)}}finally{n.delete(i)}}else{const i=O(o,t,n);i!==void 0&&(s[a]=i)}return s}function ln(e,t,n){if(!("choices"in e))return;const r=e.choices,s=Object.keys(r);if(s.length===0)return;const a=s[0],o=r[a];if("selector"in e&&e.selector){const u=e.selector,c=O(o,t,n);return typeof c=="object"&&c!==null?{[u]:a,...c}:{[u]:a}}const i=O(o,t,n);return{[a]:i}}function cn(e,t,n){if(!("tuple"in e)||!("properties"in e))return{};const r=e.tuple,s=e.properties,a=new Set(e.required??r),o={};for(const i of r){if(!a.has(i))continue;const u=s[i];if(u){const c=O(u,t,n);c!==void 0&&(o[i]=c)}}return o}function pn(e,t,n){const r=("minItems"in e?e.minItems:0)??0;if(r===0)return[];const s="items"in e?e.items:void 0;if(!s)return Array(r).fill(null);const a=O(s,t,n);return Array(r).fill(a??null)}function dn(e,t,n){const r=("minItems"in e?e.minItems:0)??0;if(r===0)return[];const s="items"in e?e.items:void 0;if(!s)return Array(r).fill(null);const a=O(s,t,n);return Array(r).fill(a??null)}function fn(e){switch("format"in e?e.format:void 0){case"date":return Ze();case"date-time":return He();case"time":return"00:00:00";default:return""}}function mn(e){const t=Ke(e),n=t==="int64"||t==="uint64"||t==="int128"||t==="uint128";let r="minimum"in e?e.minimum:void 0,s="maximum"in e?e.maximum:void 0;const a="exclusiveMinimum"in e?e.exclusiveMinimum:void 0,o="exclusiveMaximum"in e?e.exclusiveMaximum:void 0;a!==void 0&&(r=a+1),o!==void 0&&(s=o-1);let i;r!==void 0&&s!==void 0?i=Math.round((r+s)/2):r!==void 0?i=r:s!==void 0?i=0<=s?0:s:i=0;const u="multipleOf"in e?e.multipleOf:void 0;return u!==void 0&&u>0&&(i=Math.round(i/u)*u,r!==void 0&&i<r&&(i=Math.ceil(r/u)*u),s!==void 0&&i>s&&(i=Math.floor(s/u)*u)),n?BigInt(Math.round(i)):Math.round(i)}function yn(e){let t="minimum"in e?e.minimum:void 0,n="maximum"in e?e.maximum:void 0;const r="exclusiveMinimum"in e?e.exclusiveMinimum:void 0,s="exclusiveMaximum"in e?e.exclusiveMaximum:void 0,a="multipleOf"in e?e.multipleOf:.001;r!==void 0&&(t=r+a),s!==void 0&&(n=s-a);let o;t!==void 0&&n!==void 0?o=(t+n)/2:t!==void 0?o=t:n!==void 0?o=0<=n?0:n:o=0;const i="multipleOf"in e?e.multipleOf:void 0;return i!==void 0&&i>0&&(o=Math.round(o/i)*i,t!==void 0&&o<t&&(o=Math.ceil(t/i)*i),n!==void 0&&o>n&&(o=Math.floor(n/i)*i)),o}function gn(e){switch(e){case"date":return Ze();case"time":return"00:00:00";case"datetime":return He();case"duration":return"PT0S";default:return""}}function hn(e){return Array.isArray(e.type)?e.type.some(t=>typeof t=="string"?t==="null":!1):!1}function Ke(e){const t=e.type;if(typeof t=="string")return t;if(Array.isArray(t)){for(const n of t)if(typeof n=="string"&&n!=="null")return n}}function bn(e){return e?["int8","int16","int32","int64","int128","uint8","uint16","uint32","uint64","uint128"].includes(e):!1}function vn(e){return e?["float","double","decimal"].includes(e):!1}function xn(e){return e?["date","time","datetime","duration"].includes(e):!1}function Ze(){return new Date().toISOString().split("T")[0]}function He(){return new Date().toISOString()}function Tn(e){if(e.isValid)return R.Validation.valid;const t=ae(e.errors),n=new Map;for(const o of t){const i=n.get(o.path)||[];i.push(o),n.set(o.path,i)}const r=(o,i)=>{if(o.length===0)return{message:i.map(m=>m.message).join("; ")};const[u,...c]=o,p=r(c,i);return{dependencies:{[u]:p}}},s={},a={};for(const[o,i]of n.entries())if(o===""||o==="/")s.message=i.map(u=>u.message).join("; ");else{const u=o.split("/").filter(c=>c!=="");if(u.length===1)a[u[0]]={message:i.map(c=>c.message).join("; ")};else{const[c,...p]=u;a[c]=r(p,i)}}return Object.keys(a).length>0&&(s.dependencies=a),R.Validation.invalid(s)}function $n({schema:e,initialValue:t,validationMode:n,validateDebounceMs:r,widgetRegistry:s,readOnly:a,locale:o,onChange:i,onValidate:u,applySchemaDefaults:c=!0},p){const m=t!==void 0?l.Value.get(t):void 0,g=Je(e);let d;t===void 0?d=g??{}:c?d=C.deepMergeDefaults(g,m):d=m;const h=se(e),f=n??"onTouched",v=$=>{const E=h.validate($);if(u&&!E.isValid){const B=ae(E.errors);u(B)}return Tn(E)},{controller:b,setStatus:T}=A.useController({initialValue:d,validationMode:f,validateDebounceMs:r,validate:f==="onSubmit"?void 0:v,onChange:i}),x=()=>{b.dispose()},I=l.Fragment(l.OnDispose(x),We({schema:e,controller:b,widgetRegistry:s,readOnly:a,locale:o}));return p({Form:I,controller:b,setStatus:T})}exports.DefaultWidgetRegistry=W;exports.INTEGER_BOUNDS=L;exports.JSONStructureForm=$n;exports.RefResolver=$e;exports.StructureContext=H;exports.StructureControl=We;exports.StructureGenericControl=S;exports.createExtendsResolver=it;exports.createRefResolver=Z;exports.createStructureContext=Ce;exports.createValidator=se;exports.createWidgetRegistry=Zt;exports.ensureDefaultWidgets=sn;exports.extractStructureDefaults=Je;exports.forFormat=Xt;exports.forMatcher=Qt;exports.forType=Ht;exports.forTypeAndFormat=Yt;exports.formatValidationError=Be;exports.formatValidationErrors=ae;exports.getChildErrors=Jt;exports.getErrorsForPath=zt;exports.getExplicitWidgetName=oe;exports.getGlobalWidgetRegistry=V;exports.getNonNullTypes=K;exports.getResolvedType=X;exports.getWidgetOptions=en;exports.groupErrorsByPath=_t;exports.hasConstValue=ve;exports.hasCustomWidget=tn;exports.hasDefaultWidgets=Ge;exports.hasEnumValue=be;exports.hasErrorsAtPath=Gt;exports.isArrayTypeDefinition=Q;exports.isBigIntType=fe;exports.isChoiceTypeDefinition=re;exports.isCompoundType=Ye;exports.isFloatType=G;exports.isIntegerType=q;exports.isMapTypeDefinition=te;exports.isNamespace=ge;exports.isNullableType=xe;exports.isNumericType=me;exports.isObjectTypeDefinition=N;exports.isPrimitiveType=ye;exports.isSetTypeDefinition=ee;exports.isTemporalType=J;exports.isTupleTypeDefinition=ne;exports.isTypeDefinition=he;exports.isTypeReference=D;exports.mergeWidgetOptions=rn;exports.parseRefPath=Te;exports.registerDefaultWidgets=ze;exports.resolveExtends=ie;exports.resolveRef=k;exports.resolveTypeReference=et;exports.resolveWidget=_e;exports.resolveWidgetWithOverride=nn;exports.setGlobalWidgetRegistry=Kt;exports.validate=qt;