@tempots/beatui 1.1.3 → 1.2.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.
- package/dist/{ar-DaKbK_t8.js → ar-C-kUt6f9.js} +8 -7
- package/dist/ar-Dc56zcjW.cjs +1 -0
- package/dist/auth/index.cjs.js +1 -1
- package/dist/auth/index.es.js +1 -1
- package/dist/{auth-divider-Cp3xGpHr.js → auth-divider-DGNQZKEb.js} +7 -7
- package/dist/{auth-divider-3t_-R0sL.cjs → auth-divider-DfWGT38w.cjs} +1 -1
- package/dist/beatui.css +74 -7
- package/dist/beatui.tailwind.css +74 -7
- package/dist/better-auth/index.cjs.js +1 -1
- package/dist/better-auth/index.es.js +5 -5
- package/dist/{colors-DwufPN8S.js → colors-C2sgnzFH.js} +7 -7
- package/dist/{colors-B-p6IzX9.cjs → colors-DPCHjRMj.cjs} +1 -1
- package/dist/{de-3MTPDS1i.js → de-CP0kbElb.js} +8 -7
- package/dist/de-DboQlEC4.cjs +1 -0
- package/dist/{deep-merge-Bz9HHpRt.cjs → deep-merge-Bjv1NvKj.cjs} +1 -1
- package/dist/{deep-merge-Da602mAN.js → deep-merge-DwXDd3iF.js} +234 -233
- package/dist/{duration-input-g-cQ3cs1.cjs → duration-input-CjNZyVkf.cjs} +1 -1
- package/dist/{duration-input-HM1i6RRY.js → duration-input-CnMMvPgT.js} +4 -4
- package/dist/{editor-toolbar-group-Crlu1QJw.js → editor-toolbar-group-DWUWUO-B.js} +2 -2
- package/dist/{editor-toolbar-group-mkL4QozO.cjs → editor-toolbar-group-QVdBUbB8.cjs} +1 -1
- package/dist/{es-DwMUvBeU.js → es-BtIkcnsw.js} +8 -7
- package/dist/es-CAmE_0Ph.cjs +1 -0
- package/dist/{fa-0rvQiKrJ.js → fa-11-rZmQ-.js} +8 -7
- package/dist/fa-D9LrFZdW.cjs +1 -0
- package/dist/{fr-B4i6NzLl.js → fr-C-L2F8w2.js} +8 -7
- package/dist/fr-DKogQyss.cjs +1 -0
- package/dist/{he-C71n-hsn.js → he-Bu1xGoQ9.js} +8 -7
- package/dist/he-CVx91Jdr.cjs +1 -0
- package/dist/hi-BgrHV72l.cjs +1 -0
- package/dist/{hi-xmrXpeVU.js → hi-CewH-MAH.js} +8 -7
- package/dist/{index-C3o9GSH6.js → index-BGKz2Nol.js} +1 -1
- package/dist/{index-B5MAsOC-.cjs → index-DFF7Uahh.cjs} +1 -1
- package/dist/index.cjs.js +2 -2
- package/dist/index.es.js +1273 -1293
- package/dist/{input-container-Di1YvVB_.cjs → input-container-BkPcNDaZ.cjs} +1 -1
- package/dist/{input-container-BvEcp7FU.js → input-container-CO3DNqpp.js} +2 -2
- package/dist/{it-CDZTtOBC.js → it-5hiKQO_p.js} +8 -7
- package/dist/it-B1rA1F9l.cjs +1 -0
- package/dist/{ja-Zz1LzidW.js → ja-CGfEmZrm.js} +8 -7
- package/dist/ja-DZnjjqoi.cjs +1 -0
- package/dist/json-schema/index.cjs.js +1 -1
- package/dist/json-schema/index.es.js +10 -10
- package/dist/json-schema-display/index.cjs.js +1 -1
- package/dist/json-schema-display/index.es.js +1 -1
- package/dist/json-structure/index.cjs.js +1 -1
- package/dist/json-structure/index.es.js +5 -5
- package/dist/ko-CDnYKYWU.cjs +1 -0
- package/dist/{ko-9laUsZDL.js → ko-DZthvREd.js} +8 -7
- package/dist/lexical/index.cjs.js +1 -1
- package/dist/lexical/index.es.js +4 -4
- package/dist/{modal-BT0jjDqX.cjs → modal-DCxNGrzk.cjs} +1 -1
- package/dist/{modal-DBguyX-b.js → modal-YKqlh4Dk.js} +3 -3
- package/dist/nl-Bj8QnDEY.cjs +1 -0
- package/dist/{nl-Dcll9fVA.js → nl-CcKyHlQ7.js} +9 -8
- package/dist/{notice-Dtz7ADVH.js → notice-Du3tWJTW.js} +4 -4
- package/dist/{notice-BNghd0oS.cjs → notice-Q0A1gIho.cjs} +1 -1
- package/dist/{oneof-branch-detection-ZUBZ6hqy.cjs → oneof-branch-detection-BEkAezNi.cjs} +1 -1
- package/dist/{oneof-branch-detection-J_DYEEcD.js → oneof-branch-detection-DSzC0PkO.js} +1 -1
- package/dist/pl-BmuuxxVd.cjs +1 -0
- package/dist/{pl-Dm9N9Gbr.js → pl-Mwtjp4MV.js} +8 -7
- package/dist/prosemirror/index.cjs.js +1 -1
- package/dist/prosemirror/index.es.js +4 -4
- package/dist/{pt-CFi5cn0k.js → pt-BaTsY-8f.js} +8 -7
- package/dist/pt-RiC0yeVA.cjs +1 -0
- package/dist/{ru-CEhZUw8R.js → ru-CvbGmz5s.js} +10 -9
- package/dist/ru-pRqtOQHF.cjs +1 -0
- package/dist/tailwind/preset.cjs.js +1 -1
- package/dist/tailwind/preset.es.js +2 -2
- package/dist/tailwind/vite-plugin.cjs.js +1 -1
- package/dist/tailwind/vite-plugin.es.js +1 -1
- package/dist/{text-input-dDUEUmlC.js → text-input-BAn02BzO.js} +1 -1
- package/dist/{text-input-DL9FvpTZ.cjs → text-input-D_IxFd0M.cjs} +1 -1
- package/dist/{toolbar-DY0ax2Qd.js → toolbar-BKan3NHw.js} +1 -1
- package/dist/{toolbar-DoKdYXIL.cjs → toolbar-CnecqhaU.cjs} +1 -1
- package/dist/tr-B9JhBJeL.cjs +1 -0
- package/dist/{tr-ZmnVDhLP.js → tr-YFqQdZjM.js} +9 -8
- package/dist/{translations-C81buKAw.cjs → translations-C_-cObaF.cjs} +1 -1
- package/dist/{translations-A4kR7CW8.js → translations-CxDUnbXn.js} +1 -1
- package/dist/{translations-B1_yyDUK.js → translations-DT5QQ4WO.js} +88 -87
- package/dist/translations-qefRsdGi.cjs +1 -0
- package/dist/types/beatui-i18n/default.d.ts +1 -0
- package/dist/types/beatui-i18n/locales/en.d.ts +1 -0
- package/dist/types/beatui-i18n/translations.d.ts +1 -0
- package/dist/types/components/data/data-table.d.ts +8 -1
- package/dist/types/components/form/input/date-input.d.ts +4 -4
- package/dist/types/components/form/input/date-time-input.d.ts +4 -4
- package/dist/types/components/form/input/input-container.d.ts +1 -1
- package/dist/types/components/form/input/nullable-date-input.d.ts +2 -2
- package/dist/types/components/form/input/nullable-date-time-input.d.ts +2 -2
- package/dist/ur-BZakU0iv.cjs +1 -0
- package/dist/{ur-yYgj3NmT.js → ur-CdnwwnG_.js} +8 -7
- package/dist/{use-form-CaW192gw.cjs → use-form-BvBkVEKi.cjs} +1 -1
- package/dist/{use-form-Dn6v2tEh.js → use-form-D_TJyZhP.js} +2 -2
- package/dist/{vi-D5u4CLQO.js → vi-Bwvz1d_n.js} +8 -7
- package/dist/vi-D1nly0nb.cjs +1 -0
- package/dist/{widget-customization-DOWmUuPU.cjs → widget-customization-CD_NyRQ8.cjs} +1 -1
- package/dist/{widget-customization-YhVcA-KM.js → widget-customization-D2a6SVP3.js} +5 -5
- package/dist/zh-DBk7sSD9.cjs +1 -0
- package/dist/{zh-B0kwMMer.js → zh-hy7Uw6c5.js} +9 -8
- package/package.json +1 -1
- package/dist/ar-CuI1Jgt6.cjs +0 -1
- package/dist/de-DthHehbh.cjs +0 -1
- package/dist/es-B6GJLk9h.cjs +0 -1
- package/dist/fa-BwgP93iV.cjs +0 -1
- package/dist/fr-CQzk5zqY.cjs +0 -1
- package/dist/he-DcxxvRfs.cjs +0 -1
- package/dist/hi-D-KHVWg4.cjs +0 -1
- package/dist/it-D344Dutu.cjs +0 -1
- package/dist/ja-BNgnDZ27.cjs +0 -1
- package/dist/ko-D-WJ9NK7.cjs +0 -1
- package/dist/nl-CrqUlFie.cjs +0 -1
- package/dist/pl-9UksIrvX.cjs +0 -1
- package/dist/pt-_kfdzwqi.cjs +0 -1
- package/dist/ru-CW1WNNlr.cjs +0 -1
- package/dist/tr-B6GIRegf.cjs +0 -1
- package/dist/translations-Dbx7L7Q1.cjs +0 -1
- package/dist/ur-CtFl_tz6.cjs +0 -1
- package/dist/vi-DyCZSpsk.cjs +0 -1
- package/dist/zh-C3ZxMQKb.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-CaW192gw.cjs"),b=require("../deep-merge-Bz9HHpRt.cjs"),Ze=require("../text-input-DL9FvpTZ.cjs"),j=require("../duration-input-g-cQ3cs1.cjs"),B=require("../input-container-Di1YvVB_.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 W={...l.Value.get(t.signal)??{}};delete W[C],t.change(W)},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.InputWrapper({...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.InputWrapper({...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.InputWrapper({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.InputWrapper({...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 We(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 We(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 Wt(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 Wt(e){const t=e.expected;return t&&t.length<=5?`Must be one of: ${t.map(r=>JSON.stringify(r)).join(", ")}`:"Invalid value"}function Ut(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 U=null;function q(){return U||(U=new L),U}function Gt(e){U=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 Ue(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 Ue(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 W=ie(P.errors);u(W)}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=We;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=Ut;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=Ue;exports.resolveWidgetWithOverride=en;exports.setGlobalWidgetRegistry=Gt;exports.validate=kt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@tempots/dom"),D=require("@tempots/std"),f=require("../use-form-BvBkVEKi.cjs"),b=require("../deep-merge-Bjv1NvKj.cjs"),Ze=require("../text-input-D_IxFd0M.cjs"),j=require("../duration-input-CjNZyVkf.cjs"),B=require("../input-container-BkPcNDaZ.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 W={...l.Value.get(t.signal)??{}};delete W[C],t.change(W)},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.InputWrapper({...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.InputWrapper({...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.InputWrapper({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.InputWrapper({...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 We(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 We(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 Wt(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 Wt(e){const t=e.expected;return t&&t.length<=5?`Must be one of: ${t.map(r=>JSON.stringify(r)).join(", ")}`:"Invalid value"}function Ut(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 U=null;function q(){return U||(U=new L),U}function Gt(e){U=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 Ue(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 Ue(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 W=ie(P.errors);u(W)}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=We;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=Ut;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=Ue;exports.resolveWidgetWithOverride=en;exports.setGlobalWidgetRegistry=Gt;exports.validate=kt;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { html as p, attr as f, Empty as Z, MapSignal as B, Fragment as P, Value as x, computedOf as M, When as Ke, prop as Je, WithElement as Ze, OnDispose as He } from "@tempots/dom";
|
|
2
2
|
import { upperCaseFirst as H, humanize as Xe, objectEntries as Ye, Validation as re } from "@tempots/std";
|
|
3
|
-
import { b, a as ie, I as W, d as Qe, O as se, A as G, f as et } from "../use-form-
|
|
4
|
-
import { e as X, N as tt, f as de, g as fe, U as nt, c as rt, a as it, T as st, L as me, b as ye, h as at, G as ut, i as ot, S as ct, j as lt } from "../deep-merge-
|
|
5
|
-
import { T as pt } from "../text-input-
|
|
6
|
-
import { N as dt, B as ft, D as mt, a as yt, P as gt, b as ht, c as bt, d as vt, e as xt, F as $t } from "../duration-input-
|
|
7
|
-
import { B as U } from "../input-container-
|
|
3
|
+
import { b, a as ie, I as W, d as Qe, O as se, A as G, f as et } from "../use-form-D_TJyZhP.js";
|
|
4
|
+
import { e as X, N as tt, f as de, g as fe, U as nt, c as rt, a as it, T as st, L as me, b as ye, h as at, G as ut, i as ot, S as ct, j as lt } from "../deep-merge-DwXDd3iF.js";
|
|
5
|
+
import { T as pt } from "../text-input-BAn02BzO.js";
|
|
6
|
+
import { N as dt, B as ft, D as mt, a as yt, P as gt, b as ht, c as bt, d as vt, e as xt, F as $t } from "../duration-input-CnMMvPgT.js";
|
|
7
|
+
import { B as U } from "../input-container-CO3DNqpp.js";
|
|
8
8
|
import { L as ge, S as K, M as Tt } from "../stack-BLMteGTn.js";
|
|
9
9
|
function It(e) {
|
|
10
10
|
return e === "int64" || e === "int128" || e === "uint64" || e === "uint128";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./translations-qefRsdGi.cjs"),r={loadingExtended:"로딩 중입니다. 잠시만 기다려 주세요",loadingShort:"로딩 중...",locale:"지역",iconDescription:"아이콘",loadingIcon:"로딩 아이콘",failedToLoadIcon:"아이콘 로드 실패",editLabel:"편집",selectOne:"하나 선택",selectNone:"없음",selectMany:"여러 개 선택",noResults:"결과 없음",passwordPlaceholderText:"비밀번호",togglePasswordVisibility:"비밀번호 표시 전환",toggleMenu:"메뉴 전환",toggleAside:"사이드 패널 전환",mainNavigation:"메인 네비게이션",sidebar:"사이드바",closeDrawer:"드로어 닫기",closeModal:"모달 닫기",confirm:"확인",cancel:"취소",addLabel:"추가",removeItem:"항목 제거",currentLocale:"한국어",ar:"아랍어",de:"독일어",en:"영어",es:"스페인어",fr:"프랑스어",hi:"힌디어",it:"이탈리아어",ja:"일본어",ko:"한국어",nl:"네덜란드어",pl:"폴란드어",pt:"포르투갈어",ru:"러시아어",tr:"터키어",vi:"베트남어",zh:"중국어",he:"히브리어",fa:"페르시아어",ur:"우르두어",emailPlaceholderText:"이메일을 입력하세요",incrementValue:"값 증가",decrementValue:"값 감소",dropZoneInstructions:e=>e?"클릭하여 선택하거나 파일을 여기로 드래그하세요, 또는 Enter 또는 Space 키를 눌러 파일 선택기를 여세요":"파일을 여기로 드래그하세요",fileSizeUnits:["바이트","KB","MB","GB","TB"],removeFile:"파일 제거",clearAllFiles:"모든 파일 지우기",clearValue:"값 지우기",unknownType:"알 수 없는 형식",filesInputInstructions:(e,t,l)=>{let o=(e==null||e>1,"클릭하여 선택하거나 파일을 여기로 드래그하세요");if(e||t){const n=[];if(e!=null&&e>1&&n.push(`최대 ${e}개 파일`),t&&l){const a=i.formatFileSize(t,{units:l});n.push(`각각 최대 ${a}`)}n.length>0&&(o+=` (${n.join(", ")})`)}return o},paginationLabel:"페이지네이션",paginationRange:(e,t,l,o)=>o>l?`${o}개 중 ${l}개의 ${e}~${t}행`:`${l}개 중 ${e}~${t}행`,firstPage:"첫 페이지",previousPage:"이전 페이지",nextPage:"다음 페이지",lastPage:"마지막 페이지",breadcrumbs:"탐색 경로",commandPalette:"명령 팔레트",typeACommand:"명령어를 입력하세요...",noResultsFound:"결과를 찾을 수 없음",noMatchingCommands:"일치하는 명령어 없음",appearanceSystem:"시스템",appearanceLight:"라이트",appearanceDark:"다크",ok:"OK",changeTypeConfirmation:"유형을 변경하면 현재 값이 지워집니다. 계속하시겠습니까?",notifications:"알림",markAllAsRead:"모두 읽음으로 표시",noNotifications:"알림 없음",schemaConflictsDetected:"스키마 충돌 감지됨",schemaViolationsDetected:"스키마 위반 감지됨",properties:"속성",uploading:"업로드 중...",dropFilesOrBrowse:"파일을 여기에 놓거나 클릭하여 찾아보기",acceptedTypes:e=>`허용 형식: ${e}`,enterUrlPrompt:"URL 입력:",exceeded:"(초과)",pdfPreview:"PDF 미리보기",lexical:{fontFamily:"글꼴",fontSize:"글꼴 크기",lineHeight:"줄 높이",fontColor:"글꼴 색상",highlightColor:"강조 색상",backgroundColor:"배경 색상",bold:"굵게",italic:"기울임꼴",underline:"밑줄",strikethrough:"취소선",code:"코드",clearFormatting:"서식 지우기",normal:"본문",heading:e=>`제목 ${e}`,bulletList:"글머리 기호 목록",orderedList:"번호 매기기 목록",checkList:"체크리스트",indent:"들여쓰기",outdent:"내어쓰기",blockquote:"인용문",codeBlock:"코드 블록",horizontalRule:"가로줄",insertTable:"표 삽입",link:"링크",undo:"실행 취소",redo:"다시 실행",cut:"잘라내기",copy:"복사",paste:"붙여넣기",defaultOption:"기본값",slashCommands:"슬래시 명령어",noCommandsFound:"명령어를 찾을 수 없음",changeBlockType:"블록 유형 변경",blockTypes:"블록 유형",enterUrl:"URL 입력:",tableActions:"Table actions",insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",insertColumnLeft:"Insert column left",insertColumnRight:"Insert column right",deleteRow:"Delete row",deleteColumn:"Delete column",deleteTable:"Delete table"},dataTable:{sortAscending:"오름차순 정렬",sortDescending:"내림차순 정렬",clearSort:"정렬 해제",filterPlaceholder:"필터...",clearFilter:"필터 해제",selectAll:"모두 선택",deselectAll:"모두 선택 해제",selectedCount:e=>`${e}개 선택됨`,resetAll:"모두 초기화",noResults:"결과를 찾을 수 없습니다",loading:"로딩 중...",filterPanelAddCondition:"조건 추가",filterPanelApply:"적용",filterPanelClear:"필터 지우기",filterPanelAnd:"그리고",filterPanelOr:"또는",filterPanelContains:"포함",filterPanelNotContains:"포함하지 않음",filterPanelEquals:"같음",filterPanelNotEquals:"같지 않음",filterPanelStartsWith:"시작 문자",filterPanelEndsWith:"끝 문자",filterPanelIsNull:"비어 있음",filterPanelIsNotNull:"비어 있지 않음",filterPanelGt:"보다 큼",filterPanelGte:"크거나 같음",filterPanelLt:"보다 작음",filterPanelLte:"작거나 같음",filterPanelBetween:"사이",filterPanelValuePlaceholder:"값...",sortMultiHint:"Shift를 누른 채로 여러 열 정렬",columnVisibility:"열",showAllColumns:"모두 표시",menuSortAsc:"오름차순 정렬",menuSortDesc:"내림차순 정렬",menuClearSort:"정렬 지우기",menuHideColumn:"열 숨기기",menuChooseColumns:"열 선택",menuResetColumns:"열 초기화",menuFilter:"필터",rowCount:(e,t)=>`행: ${e} 전체 행: ${t}`,filterTagsPlaceholder:"값 선택...",groupCount:e=>`${e}개 항목`,collapseGroup:"그룹 접기",expandGroup:"그룹 펼치기",describeFilter:{textContains:(e,t)=>`${e} "${t}" 포함`,textNotContains:(e,t)=>`${e} "${t}" 미포함`,textEquals:(e,t)=>`${e} "${t}"와 같음`,textNotEquals:(e,t)=>`${e} "${t}"와 다름`,textStartsWith:(e,t)=>`${e} "${t}"로 시작`,textEndsWith:(e,t)=>`${e} "${t}"로 끝남`,compareEq:(e,t)=>`${e} = ${t}`,compareNeq:(e,t)=>`${e} ≠ ${t}`,compareGt:(e,t)=>`${e} > ${t}`,compareGte:(e,t)=>`${e} ≥ ${t}`,compareLt:(e,t)=>`${e} < ${t}`,compareLte:(e,t)=>`${e} ≤ ${t}`,rangeBetween:(e,t,l)=>`${e} ${t} ~ ${l} 사이`,rangeGte:(e,t)=>`${e} ≥ ${t}`,rangeLte:(e,t)=>`${e} ≤ ${t}`,setIn:(e,t)=>`${e} [${t}] 중 포함`,setNotIn:(e,t)=>`${e} [${t}] 중 미포함`,booleanIs:(e,t)=>`${e} ${t}`,isNull:e=>`${e} 비어있음`,isNotNull:e=>`${e} 비어있지 않음`,compositeAnd:e=>e.join(" 그리고 "),compositeOr:e=>e.join(" 또는 ")}},prosemirror:{bold:"Bold",italic:"Italic",code:"Code",link:"Link",removeLink:"Remove Link",heading:e=>`Heading ${e}`,bulletList:"Bullet List",orderedList:"Ordered List",blockquote:"Blockquote",codeBlock:"Code Block",horizontalRule:"Horizontal Rule",linkUrlPlaceholder:"https://example.com"},pdfPageViewer:{loading:"PDF 로딩 중...",loadFailed:"PDF 로드 실패",invalidPdf:"유효하지 않은 PDF 파일",pageOutOfRange:(e,t)=>`페이지 ${e}이(가) 범위를 벗어났습니다 (1-${t})`,renderFailed:"PDF 페이지 렌더링 실패"}};exports.default=r;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as i } from "./translations-
|
|
1
|
+
import { f as i } from "./translations-DT5QQ4WO.js";
|
|
2
2
|
const s = {
|
|
3
3
|
loadingExtended: "로딩 중입니다. 잠시만 기다려 주세요",
|
|
4
4
|
loadingShort: "로딩 중...",
|
|
@@ -59,21 +59,22 @@ const s = {
|
|
|
59
59
|
clearValue: "값 지우기",
|
|
60
60
|
unknownType: "알 수 없는 형식",
|
|
61
61
|
filesInputInstructions: (e, t, l) => {
|
|
62
|
-
let
|
|
62
|
+
let o = (e == null || e > 1, "클릭하여 선택하거나 파일을 여기로 드래그하세요");
|
|
63
63
|
if (e || t) {
|
|
64
|
-
const
|
|
65
|
-
if (e != null && e > 1 &&
|
|
64
|
+
const n = [];
|
|
65
|
+
if (e != null && e > 1 && n.push(`최대 ${e}개 파일`), t && l) {
|
|
66
66
|
const a = i(t, {
|
|
67
67
|
units: l
|
|
68
68
|
});
|
|
69
|
-
|
|
69
|
+
n.push(`각각 최대 ${a}`);
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
n.length > 0 && (o += ` (${n.join(", ")})`);
|
|
72
72
|
}
|
|
73
|
-
return
|
|
73
|
+
return o;
|
|
74
74
|
},
|
|
75
75
|
// Pagination
|
|
76
76
|
paginationLabel: "페이지네이션",
|
|
77
|
+
paginationRange: (e, t, l, o) => o > l ? `${o}개 중 ${l}개의 ${e}~${t}행` : `${l}개 중 ${e}~${t}행`,
|
|
77
78
|
firstPage: "첫 페이지",
|
|
78
79
|
previousPage: "이전 페이지",
|
|
79
80
|
nextPage: "다음 페이지",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("@lexical/rich-text"),F=require("@lexical/list"),G=require("@lexical/table"),ee=require("@lexical/link"),ie=require("@lexical/code"),Re=require("@lexical/hashtag"),ne=require("@lexical/mark"),dt=require("@lexical/overflow"),n=require("lexical"),ft=require("@lexical/plain-text"),Fe=require("@lexical/history");require("@lexical/clipboard");const Ae=require("@lexical/markdown"),Be=require("@lexical/html"),B=require("@lexical/selection"),gt=require("@lexical/text"),ge=require("@lexical/utils"),mt=require("@lexical/offset"),pt=require("@lexical/dragon");require("@lexical/file");const ht=require("@lexical/yjs");require("@lexical/headless");const e=require("@tempots/dom"),Le=require("../link-portal-_tiDFZqh.cjs"),Ie=require("../theme-DogY9oT1.cjs"),J=require("../menu-B60Q9j3-.cjs"),q=require("../translations-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("@lexical/rich-text"),F=require("@lexical/list"),G=require("@lexical/table"),ee=require("@lexical/link"),ie=require("@lexical/code"),Re=require("@lexical/hashtag"),ne=require("@lexical/mark"),dt=require("@lexical/overflow"),n=require("lexical"),ft=require("@lexical/plain-text"),Fe=require("@lexical/history");require("@lexical/clipboard");const Ae=require("@lexical/markdown"),Be=require("@lexical/html"),B=require("@lexical/selection"),gt=require("@lexical/text"),ge=require("@lexical/utils"),mt=require("@lexical/offset"),pt=require("@lexical/dragon");require("@lexical/file");const ht=require("@lexical/yjs");require("@lexical/headless");const e=require("@tempots/dom"),Le=require("../link-portal-_tiDFZqh.cjs"),Ie=require("../theme-DogY9oT1.cjs"),J=require("../menu-B60Q9j3-.cjs"),q=require("../translations-qefRsdGi.cjs"),ve=require("../editor-toolbar-group-QVdBUbB8.cjs"),bt=require("@tempots/std"),je=require("../toolbar-CnecqhaU.cjs"),Ct=require("../input-container-BkPcNDaZ.cjs");function ae(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const s=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(o,a,s.get?s:{enumerable:!0,get:()=>t[a]})}}return o.default=t,Object.freeze(o)}const fe=ae(G),re=ae(ie),yt=ae(n),Et=ae(mt),ke=ae(pt),Ot={separator:!0};class oe extends n.DecoratorNode{static getType(){return"horizontal-rule"}static clone(o){return new oe(o.__key)}static importJSON(o){return se()}static importDOM(){return{hr:()=>({conversion:Tt,priority:0})}}exportJSON(){return{...super.exportJSON(),type:"horizontal-rule",version:1}}exportDOM(){return{element:document.createElement("hr")}}createDOM(){return document.createElement("hr")}updateDOM(){return!1}getTextContent(){return`
|
|
2
2
|
`}isInline(){return!1}decorate(){return null}}function Tt(){return{node:se()}}function se(){return n.$applyNodeReplacement(new oe)}function Ue(t){return t instanceof oe}function me(t){const o=[j.HeadingNode,j.QuoteNode,F.ListNode,F.ListItemNode,ee.LinkNode,ie.CodeNode,ie.CodeHighlightNode,oe];return t.table&&o.push(G.TableNode,G.TableCellNode,G.TableRowNode),t.autoLink&&o.push(ee.AutoLinkNode),t.hashtag&&o.push(Re.HashtagNode),t.mark&&o.push(ne.MarkNode),t.overflow&&o.push(dt.OverflowNode),[...new Set(o)]}function pe(t){switch(t){case"bare":return{richText:!0,history:!0,clipboard:!0};case"docked":return{richText:!0,history:!0,clipboard:!0,list:!0,link:!0,autoLink:!0,code:!0,table:!0};case"contextual":return{richText:!0,history:!0,clipboard:!0,list:!0,link:!0,autoLink:!0,code:!0,table:!0}}}async function ze(){return yt}async function he(t){return j.registerRichText(t)}async function be(t){return ft.registerPlainText(t)}async function Ce(t,o){const a=Fe.createEmptyHistoryState(),s=o?.delay??300;return Fe.registerHistory(t,a,s)}async function ye(t){return()=>{}}async function Ee(t){return typeof F.registerList=="function"?typeof F.registerCheckList=="function"?ge.mergeRegister(F.registerList(t),F.registerCheckList(t)):F.registerList(t):ge.mergeRegister(t.registerCommand(F.INSERT_ORDERED_LIST_COMMAND,()=>(F.insertList(t,"number"),!0),n.COMMAND_PRIORITY_LOW),t.registerCommand(F.INSERT_UNORDERED_LIST_COMMAND,()=>(F.insertList(t,"bullet"),!0),n.COMMAND_PRIORITY_LOW),t.registerCommand(F.INSERT_CHECK_LIST_COMMAND,()=>(F.insertList(t,"check"),!0),n.COMMAND_PRIORITY_LOW),t.registerCommand(F.REMOVE_LIST_COMMAND,()=>(F.removeList(t),!0),n.COMMAND_PRIORITY_LOW))}async function Oe(t){return t.registerCommand(ee.TOGGLE_LINK_COMMAND,o=>(o===null||typeof o=="string"?ee.toggleLink(o):ee.toggleLink(o.url,o),!0),n.COMMAND_PRIORITY_LOW)}async function Nt(t,o,a){const s=o?.trigger||"/";let i=!1,u=null,h=0;const O=()=>t.getEditorState().read(()=>{const y=n.$getSelection();if(!n.$isRangeSelection(y)||!y.isCollapsed())return!1;const E=y.anchor,M=E.getNode();if(!n.$isTextNode(M))return!1;const _=M.getTextContent(),I=E.offset;if(I===0||_[I-1]!==s)return!1;if(I===1)return!0;const C=_[I-2];return!!/\s/.test(C)}),A=()=>u?t.getEditorState().read(()=>{if(!u)return"";const y=u.getTextContent(),E=y.indexOf(s,h);if(E===-1)return"";const M=n.$getSelection();if(!n.$isRangeSelection(M))return"";const _=M.anchor;if(_.getNode().getKey()!==u.getKey())return"";const N=_.offset;return N<=E?"":y.slice(E+1,N)}):"",R=()=>{t.getEditorState().read(()=>{const y=n.$getSelection();if(n.$isRangeSelection(y)){const E=y.anchor,M=E.getNode();if(n.$isTextNode(M)){u=M,h=E.offset-1,i=!0;const _={isActive:!0,filterText:"",anchorNode:u,anchorOffset:h};a?.onTrigger?.(_,k),a?.onUpdate?.(_,k)}}})},b=()=>{i&&(i=!1,u=null,h=0,a?.onClose?.())},k=()=>{u&&t.update(()=>{if(!u)return;const y=u.getTextContent(),E=y.indexOf(s,h);if(E===-1)return;const M=n.$getSelection();if(!n.$isRangeSelection(M))return;const _=M.anchor;if(_.getNode().getKey()!==u.getKey())return;const N=_.offset,C=y.slice(0,E),v=y.slice(N);u.setTextContent(C+v);const c=n.$getSelection();n.$isRangeSelection(c)&&(c.anchor.set(u.getKey(),E,"text"),c.focus.set(u.getKey(),E,"text"))})},S=()=>{if(!i)return;const E={isActive:!0,filterText:A(),anchorNode:u,anchorOffset:h};a?.onUpdate?.(E,k)},m=t.registerMutationListener(n.TextNode,y=>{if(!i&&O()){R();return}i&&(u&&!y.has(u.getKey())?S():b())}),T=ge.mergeRegister(t.registerUpdateListener(({editorState:y})=>{y.read(()=>{if(!i)return;const E=n.$getSelection();if(!n.$isRangeSelection(E)){b();return}const M=E.anchor,_=M.getNode();if(!u||_.getKey()!==u.getKey()){b();return}const N=u.getTextContent().indexOf(s,h);if(N===-1||M.offset<=N){b();return}})}),t.registerCommand(n.KEY_ARROW_DOWN_COMMAND,y=>i?(y.preventDefault(),!0):!1,n.COMMAND_PRIORITY_LOW),t.registerCommand(n.KEY_ARROW_UP_COMMAND,y=>i?(y.preventDefault(),!0):!1,n.COMMAND_PRIORITY_LOW),t.registerCommand(n.KEY_ENTER_COMMAND,y=>i?(y?.preventDefault(),!0):!1,n.COMMAND_PRIORITY_LOW),t.registerCommand(n.KEY_ESCAPE_COMMAND,y=>i?(y?.preventDefault(),b(),!0):!1,n.COMMAND_PRIORITY_LOW));return()=>{b(),m(),T()}}function St(t,o,a){a(),o.handler(t),t.focus()}const Mt=n.createCommand("TOGGLE_SLASH_COMMAND_PALETTE"),ce=n.createCommand("INSERT_HORIZONTAL_RULE_COMMAND"),xt=n.createCommand("INSERT_IMAGE_COMMAND");function Te(t){return t.registerCommand(ce,()=>{const o=n.$getSelection();if(!n.$isRangeSelection(o))return!1;if(o.focus.getNode()!==null){const s=se();o.insertNodes([s]);const i=n.$createParagraphNode();s.insertAfter(i),i.selectStart()}return!0},n.COMMAND_PRIORITY_LOW)}const Ge={dependencies:[oe],export:t=>Ue(t)?"---":null,regExp:/^(---|\*\*\*|___)\s?$/,replace:(t,o,a,s)=>{const i=se();if(s)t.replace(i);else{t.replace(i);const u=n.$createParagraphNode();i.insertAfter(u),u.selectStart()}},type:"element"},De=[...Ae.TRANSFORMERS,Ge];async function K(t){let o="";return t.getEditorState().read(()=>{o=Ae.$convertToMarkdownString(De)}),o}async function V(t,o){t.update(()=>{Ae.$convertFromMarkdownString(o,De)})}async function kt(){return De}async function Y(t){let o="";return t.getEditorState().read(()=>{o=Be.$generateHtmlFromNodes(t)}),o}async function X(t,o){t.update(()=>{const s=new DOMParser().parseFromString(o,"text/html"),i=Be.$generateNodesFromDOM(t,s);n.$getRoot().clear(),n.$insertNodes(i)})}async function _t(t,o,a){let s,i,u;switch(o){case"markdown":s=await K(t),i="text/markdown",u="md";break;case"html":s=await Y(t),i="text/html",u="html";break;case"json":s=JSON.stringify(t.getEditorState().toJSON(),null,2),i="application/json",u="json";break}const h=new Blob([s],{type:i}),O=URL.createObjectURL(h),A=document.createElement("a");A.href=O,A.download=a??`document.${u}`,A.click(),URL.revokeObjectURL(O)}async function vt(t,o,a){const s=await new Promise((u,h)=>{const O=new FileReader;O.onload=()=>u(O.result),O.onerror=()=>h(O.error),O.readAsText(o)});switch(a??Rt(o.name)){case"markdown":{await V(t,s);break}case"html":{await X(t,s);break}case"json":{const u=t.parseEditorState(s);t.setEditorState(u);break}}}function Rt(t){return t.endsWith(".md")||t.endsWith(".markdown")?"markdown":t.endsWith(".html")||t.endsWith(".htm")?"html":"json"}async function Ne(t,o){return"registerTablePlugin"in fe&&typeof fe.registerTablePlugin=="function"?fe.registerTablePlugin(t):()=>{}}async function At(t,o=3,a=3){t.dispatchCommand(fe.INSERT_TABLE_COMMAND,{rows:String(o),columns:String(a),includeHeaders:!0})}async function Lt(t,o){return"registerCodeHighlighting"in re&&typeof re.registerCodeHighlighting=="function"?re.registerCodeHighlighting(t):()=>{}}async function It(t,o){return"registerCodeHighlighting"in re&&typeof re.registerCodeHighlighting=="function"?re.registerCodeHighlighting(t):()=>{}}const Dt=/#[\w\u0590-\u05ff]+/;function wt(t){return new Re.HashtagNode(t)}async function $t(t,o){const a=[],s=gt.registerLexicalTextEntity(t,i=>{const u=Dt.exec(i);return u?{start:u.index,end:u.index+u[0].length}:null},Re.HashtagNode,wt);if(Array.isArray(s)?a.push(...s):typeof s=="function"&&a.push(s),o?.onHashtagClick){const i=t.registerCommand(n.CLICK_COMMAND,u=>{const h=u.target;if(h.classList.contains("bc-lexical-hashtag")){const O=h.textContent;if(O)return o.onHashtagClick(O.replace("#","")),!0}return!1},n.COMMAND_PRIORITY_LOW);a.push(i)}return()=>{a.forEach(i=>i())}}const Pt=/((https?:\/\/(www\.)?|www\.)[^\s<>]+)/g,Ht=/([a-zA-Z0-9._+-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/g,Ft=[{pattern:Pt,urlTransformer:t=>t.startsWith("http")?t:`https://${t}`},{pattern:Ht,urlTransformer:t=>`mailto:${t}`}];async function Bt(t,o){const a=o?.matchers??Ft;return t.registerMutationListener(n.TextNode,s=>{t.update(()=>{for(const[i,u]of s){if(u!=="created"&&u!=="updated")continue;const h=n.$getNodeByKey(i);if(!h||!n.$isTextNode(h))continue;const O=h.getTextContent();for(const A of a){const R=new RegExp(A.pattern.source,A.pattern.flags);let b;for(;(b=R.exec(O))!==null;)A.urlTransformer(b[0])}}})})}async function jt(t,o){const a=[];return o?.onMarkClick&&a.push(t.registerCommand(n.CLICK_COMMAND,s=>{const i=s.target;if(i.classList.contains("bc-lexical-mark")){const u=i.dataset.markId;if(u)return o.onMarkClick(u,{id:u,type:i.dataset.markType||"annotation",data:{}}),!0}return!1},n.COMMAND_PRIORITY_LOW)),()=>a.forEach(s=>s())}async function Ut(t,o,a){t.update(()=>{const s=n.$getSelection();n.$isRangeSelection(s)&&ne.$wrapSelectionInMarkNode(s,s.isBackward(),o)})}async function zt(t,o){t.update(()=>{const s=n.$getRoot().getAllTextNodes().filter(i=>{const u=i.getParent();return ne.$isMarkNode(u)?ne.$getMarkIDs(i,0)?.includes(o)??!1:!1});for(const i of s){const u=i.getParent();ne.$isMarkNode(u)&&ne.$unwrapMarkNode(u)}})}async function Gt(t,o){const{maxLength:a,onOverflow:s}=o;return t.registerUpdateListener(({editorState:i})=>{i.read(()=>{const O=n.$getRoot().getTextContent().length,A=O>a;s&&s(A,O)})})}async function Se(t){return"registerDragonSupport"in ke&&typeof ke.registerDragonSupport=="function"?ke.registerDragonSupport(t):()=>{}}async function Me(t,o){const a=o.docMap??new Map,s=o.id??"lexical",i=o.doc.getText(s),u=ht.createBinding(t,o.provider,i,o.doc,a),h=t.registerUpdateListener(()=>{});return()=>{h(),u&&typeof u.destroy=="function"&&u.destroy()}}function qt(t){let o={hasSelection:!1,selectedText:"",anchorOffset:0,focusOffset:0};return t.getEditorState().read(()=>{const a=n.$getSelection();n.$isRangeSelection(a)&&(o={hasSelection:!a.isCollapsed(),selectedText:a.getTextContent(),anchorOffset:a.anchor.offset,focusOffset:a.focus.offset})}),o}function we(t){let o="";return t.getEditorState().read(()=>{o=n.$getRoot().getTextContent()}),o}function Wt(t){return we(t).length}function Kt(t){const o=we(t).trim();return o?o.split(/\s+/).length:0}function Yt(t,o){t.update(()=>{const a=n.$getSelection();n.$isRangeSelection(a)&&a.insertText(o)}),t.focus()}async function Jt(){return Et}function le(t,o,a){const s=new Map;if(t)for(const i of t.split(";")){const u=i.trim();if(!u)continue;const h=u.indexOf(":");if(h===-1)continue;const O=u.slice(0,h).trim(),A=u.slice(h+1).trim();s.set(O,A)}return a?s.set(o,a):s.delete(o),s.size===0?"":Array.from(s.entries()).map(([i,u])=>`${i}: ${u}`).join("; ")}function te(t,o){if(!t)return"";const a=new RegExp(`(?:^|;)\\s*${o.replace(/-/g,"\\-")}:\\s*([^;]+)`),s=t.match(a);return s?s[1].trim():""}function Vt(t,o){const a=t.getElementByKey(o);a&&t.getEditorState().read(()=>{const s=n.$getNodeByKey(o);if(!n.$isElementNode(s)||n.$isRootNode(s))return;const i=s.getStyle(),u=te(i,"background-color");a.style.backgroundColor=u||"";const h=te(i,"line-height");a.style.lineHeight=h||""})}function $e(t){const o=t.registerUpdateListener(({dirtyElements:a})=>{if(a.size!==0)for(const[s]of a)Vt(t,s)});return t.getEditorState().read(()=>{const a=n.$getRoot();for(const s of a.getChildren())if(n.$isElementNode(s)){const i=s.getStyle();if(i){const u=t.getElementByKey(s.getKey());if(u){const h=te(i,"background-color");h&&(u.style.backgroundColor=h);const O=te(i,"line-height");O&&(u.style.lineHeight=O)}}}}),o}function _e(t,o){const a=o.exportDOM(t);if(a.element&&ge.isHTMLElement(a.element)&&n.$isElementNode(o)){const s=o.getStyle(),i=te(s,"background-color");i&&(a.element.style.backgroundColor=i);const u=te(s,"line-height");u&&(a.element.style.lineHeight=u)}return a}function xe(){const t=new Map;return t.set(n.ParagraphNode,_e),t.set(j.HeadingNode,_e),t.set(j.QuoteNode,_e),t}function Xt(){const t=o=>()=>({conversion:a=>{const s=o(a);if(s&&n.$isElementNode(s)){a.style?.textAlign&&s.setFormat(a.style.textAlign);let i="";a.style?.backgroundColor&&(i=le(i,"background-color",a.style.backgroundColor)),a.style?.lineHeight&&(i=le(i,"line-height",a.style.lineHeight)),i&&s.setStyle(i)}return{node:s}},priority:1});return{p:t(()=>n.$createParagraphNode()),h1:t(()=>j.$createHeadingNode("h1")),h2:t(()=>j.$createHeadingNode("h2")),h3:t(()=>j.$createHeadingNode("h3")),h4:t(()=>j.$createHeadingNode("h4")),h5:t(()=>j.$createHeadingNode("h5")),h6:t(()=>j.$createHeadingNode("h6"))}}const qe=["color","font-size","font-family","background-color","line-height"],Zt=new Set(["font-weight","font-style","text-decoration","text-decoration-line","vertical-align"]),Qt={code:"code",em:"italic",i:"italic",mark:"highlight",s:"strikethrough",strong:"bold",sub:"subscript",sup:"superscript",u:"underline"},eo=["span","b","em","i","strong","u","s","sub","sup","code","mark"];function to(t,o,a){if(!n.$isTextNode(o))return;const s=t.fontWeight,i=t.textDecoration.split(" ");(s==="700"||s==="bold")&&!o.hasFormat("bold")&&o.toggleFormat("bold"),t.fontStyle==="italic"&&!o.hasFormat("italic")&&o.toggleFormat("italic"),i.includes("line-through")&&!o.hasFormat("strikethrough")&&o.toggleFormat("strikethrough"),i.includes("underline")&&!o.hasFormat("underline")&&o.toggleFormat("underline"),t.verticalAlign==="sub"&&!o.hasFormat("subscript")&&o.toggleFormat("subscript"),t.verticalAlign==="super"&&!o.hasFormat("superscript")&&o.toggleFormat("superscript"),a&&!o.hasFormat(a)&&o.toggleFormat(a)}function We(t=qe){const o={};for(const a of eo)o[a]=s=>{const i=s.style,u=Qt[a],h=a==="b"?i.fontWeight!=="normal"?"bold":void 0:u;return{conversion:()=>({node:null,forChild:O=>{if(!n.$isTextNode(O))return O;to(i,O,h);let A=O.getStyle();for(const R of t){if(Zt.has(R))continue;const b=i.getPropertyValue(R);b&&(A=le(A,R,b))}return A&&O.setStyle(A),O}}),priority:1}};return o}function ue(t){return{...Xt(),...We(t)}}async function de(t={}){const{nodes:o=[],plugins:a=[],onError:s}=t,u=(await ze()).createEditor({namespace:"BeatUIHeadless",nodes:o,onError:h=>{s?s(h,u):console.error("[BeatUI Headless]",h)},editable:!1,html:{export:xe(),import:ue()}});if(a.length>0)for(const h of a)h.register(u);return u}async function oo(t){const o=await de();return await V(o,t),o.getEditorState().toJSON()}async function no(t){const o=await de(),a=o.parseEditorState(JSON.stringify(t));return o.setEditorState(a),await K(o)}async function ro(t){const o=await de();return await X(o,t),o.getEditorState().toJSON()}async function io(t){const o=await de(),a=o.parseEditorState(JSON.stringify(t));return o.setEditorState(a),await Y(o)}const Ke=t=>{const{value:o,format:a,plugins:s,readOnly:i,placeholder:u,class:h,namespace:O="BeatUILexical",heightMode:A="auto",autoFocus:R=!1,onError:b,onInput:k,onChange:S,onBlur:m,onReady:T}=t;return e.Use(Ie.Theme,({appearance:y})=>e.html.div(e.Task(()=>Promise.resolve().then(()=>require("../styles-url-CkPTI32j.cjs")),({default:E})=>Le.LinkPortal({id:"beatui-lexical-css",href:E})),e.attr.class("bc-lexical-editor-container"),A==="fixed"?e.attr.class("bc-lexical-editor-container--fixed"):null,e.attr.class(h),e.html.div(e.attr.class("bc-lexical-editor"),e.attr.class(`bc-lexical-editor--${A}`),e.attr.contenteditable(i!=null?e.Value.map(i,E=>!E):!0),i!=null?e.attr.class(e.Value.map(i,E=>E?"bc-lexical-editor--readonly":"")):null,e.WithElement(E=>{let M=null;const _=[];return(async()=>{try{const N=s??pe("bare"),C=me(N),v=e.Value.get(a??"markdown"),c=n.createEditor({namespace:O,nodes:C,theme:{heading:{h1:"bc-lexical-h1",h2:"bc-lexical-h2",h3:"bc-lexical-h3",h4:"bc-lexical-h4",h5:"bc-lexical-h5",h6:"bc-lexical-h6"},text:{bold:"bc-lexical-bold",italic:"bc-lexical-italic",underline:"bc-lexical-underline",strikethrough:"bc-lexical-strikethrough",code:"bc-lexical-code"},list:{ul:"bc-lexical-ul",ol:"bc-lexical-ol",listitem:"bc-lexical-li",listitemChecked:"bc-lexical-li-checked",listitemUnchecked:"bc-lexical-li-unchecked"},link:"bc-lexical-link",quote:"bc-lexical-blockquote",code:"bc-lexical-code-block",codeHighlight:{},hashtag:"bc-lexical-hashtag",table:"bc-lexical-table",tableCell:"bc-lexical-table-cell",tableCellHeader:"bc-lexical-table-cell-header",tableRow:"bc-lexical-table-row",mark:"bc-lexical-mark",paragraph:"bc-lexical-paragraph"},onError:f=>{b?b(f,c):console.error("[BeatUI Lexical]",f)},editable:i?!e.Value.get(i):!0,html:{export:xe(),import:ue()}});M=c,c.setRootElement(E);const D=[];if(N.richText?D.push(he(c)):N.plainText&&D.push(be(c)),N.history){const f=typeof N.history=="object"?N.history:void 0;D.push(Ce(c,f))}if(N.clipboard&&D.push(ye(c)),N.list&&D.push(Ee(c)),N.link&&D.push(Oe(c)),N.yjs&&D.push(Me(c,N.yjs)),N.dragon&&D.push(Se(c)),N.table&&D.push(Ne(c)),(await Promise.all(D)).forEach(f=>{f&&_.push(f)}),_.push(Te(c)),_.push($e(c)),o!=null){const f=e.Value.get(o);if(f!=null&&(f!==""||v==="json"&&typeof f=="object")){if(v==="markdown"&&typeof f=="string")await V(c,f);else if(v==="html"&&typeof f=="string")await X(c,f);else if(v==="json"&&typeof f=="object")try{const l=JSON.stringify(f),L=c.parseEditorState(l);c.setEditorState(L)}catch(l){console.error("[BeatUI] Failed to parse JSON editor state:",l),b&&b(l instanceof Error?l:new Error(String(l)),c)}}}if(_.push(c.registerUpdateListener(({editorState:f,dirtyElements:d,dirtyLeaves:l})=>{d.size===0&&l.size===0||k&&f.read(async()=>{if(v==="markdown"){const L=await K(c);k(L,c)}else if(v==="html"){const L=await Y(c);k(L,c)}else v==="json"&&k(f.toJSON(),c)})})),o!=null&&_.push(e.Value.on(o,async f=>{if(f!=null){if(v==="markdown"&&typeof f=="string"){const d=await K(c);f!==d&&await V(c,f)}else if(v==="html"&&typeof f=="string"){const d=await Y(c);f!==d&&await X(c,f)}else if(v==="json"&&typeof f=="object"){const d=JSON.stringify(c.getEditorState().toJSON()),l=JSON.stringify(f);if(d!==l){const L=c.parseEditorState(l);c.setEditorState(L)}}}})),i!=null&&_.push(e.Value.on(i,f=>{c.setEditable(!f)})),_.push(c.registerCommand(n.BLUR_COMMAND,()=>(m&&m(c),S&&c.getEditorState().read(async()=>{if(v==="markdown"){const f=await K(c);S(f,c)}else if(v==="html"){const f=await Y(c);S(f,c)}else v==="json"&&S(c.getEditorState().toJSON(),c)}),!1),n.COMMAND_PRIORITY_LOW)),_.push(y.on(f=>{const d=c.getRootElement();d&&(d.dataset.theme=f)})),R)c.focus();else{const f=c.getRootElement();f&&f===document.activeElement&&f.blur()}T&&T(c)}catch(N){console.error("[BeatUI] Failed to initialize Lexical editor:",N);const C=E;C.textContent="Failed to load Lexical editor."}})(),e.OnDispose(()=>{try{_.forEach(N=>N())}catch{}try{M?.setRootElement(null)}catch{}})}))))};function Ye(t,o,a){const s=(m,T)=>o.map(()=>{const y=t.value;return y?y.getEditorState().read(()=>{const E=n.$getSelection();return n.$isRangeSelection(E)?m(E):T}):T}),i=m=>{const T=m.anchor.getNode();return T.getKey()==="root"?T:T.getTopLevelElementOrThrow()};return{withSelection:s,getAnchorElement:i,textFormatActive:m=>s(T=>T.hasFormat(m),!1),blockTypeActive:m=>s(T=>i(T).getType()===m,!1),listTypeActive:m=>s(T=>{const y=i(T).getParent();return F.$isListNode(y)&&y.getListType()===m},!1),headingActive:m=>o.map(()=>{const T=t.value;return T?T.getEditorState().read(()=>{const y=n.$getSelection();if(n.$isRangeSelection(y)){const E=i(y);if(E.getType()==="heading")return T.getElementByKey(E.getKey())?.tagName===`H${m}`}return!1}):!1}),linkActive:()=>s(m=>{const T=m.anchor.getNode();return T.getParent()?.getType()==="link"||T.getType()==="link"},!1),dispatch:(m,T)=>()=>{const y=t.value;y&&(y.dispatchCommand(m,T),y.focus())},toggleBlock:(m,T)=>()=>{const y=t.value;y&&(y.update(()=>{const E=n.$getSelection();if(n.$isRangeSelection(E)){const M=i(E);B.$setBlocksType(E,()=>M.getType()===m?n.$createParagraphNode():T())}}),y.focus())},toggleLink:()=>{const m=t.value;m&&(m.getEditorState().read(()=>{const T=n.$getSelection();if(n.$isRangeSelection(T)){const y=T.anchor.getNode();if(y.getParent()?.getType()==="link"||y.getType()==="link")m.dispatchCommand(ee.TOGGLE_LINK_COMMAND,null);else{const _=prompt(a?.enterUrlMessage?.()??"Enter URL:");_&&m.dispatchCommand(ee.TOGGLE_LINK_COMMAND,_)}}}),m.focus())}}}function Je(t,o){return a=>s=>ve.EditorToolbarButton({...s,display:a,disabled:t,size:o})}const lo={font:["font-family","font-size","line-height"],color:["font-color","highlight-color","background-color"],"text-formatting":["bold","italic","underline","strikethrough","code"],"clear-formatting":["clear-formatting"],headings:["paragraph","heading-1","heading-2","heading-3","heading-4","heading-5","heading-6"],lists:["bullet-list","ordered-list","check-list"],indent:["indent","outdent"],blocks:["blockquote","code-block","horizontal-rule"],tables:["insert-table"],links:["link"],history:["undo","redo"],clipboard:["cut","copy","paste"]},ao=["font","color","text-formatting","clear-formatting","headings","lists","indent","blocks","tables","links","history","clipboard"];function so(){return ao.map(t=>({group:t}))}function co(t){if(t.layout)return t.layout;const{visibleGroups:o,hiddenGroups:a,customGroups:s}=t;let i=so();if((o||a)&&(i=i.filter(u=>{if("separator"in u||"customGroup"in u)return!0;const h=u.group;return!(a?.includes(h)||o&&!o.includes(h))})),s&&s.length>0)for(const u of s)i.push({customGroup:u.id});return i}const uo=[{value:"Arial",label:"Arial"},{value:"Courier New",label:"Courier New"},{value:"Georgia",label:"Georgia"},{value:"Times New Roman",label:"Times New Roman"},{value:"Trebuchet MS",label:"Trebuchet MS"},{value:"Verdana",label:"Verdana"}],fo=[{value:"10px",label:"10"},{value:"12px",label:"12"},{value:"14px",label:"14"},{value:"16px",label:"16"},{value:"18px",label:"18"},{value:"20px",label:"20"},{value:"24px",label:"24"},{value:"30px",label:"30"},{value:"36px",label:"36"}],go=[{value:"1",label:"1"},{value:"1.15",label:"1.15"},{value:"1.5",label:"1.5"},{value:"2",label:"2"},{value:"2.5",label:"2.5"},{value:"3",label:"3"}];function Ve({editor:t,stateUpdate:o,toolbar:a={},readOnly:s=e.signal(!1),size:i="sm"}){const{maxHeadingLevel:u=3}=a,h=co(a);return e.Use(q.BeatUII18n,O=>e.Ensure(t,A=>{const R=A,b=O.$.lexical,{getAnchorElement:k,textFormatActive:S,blockTypeActive:m,listTypeActive:T,headingActive:y,linkActive:E,dispatch:M,toggleBlock:_,toggleLink:I}=Ye(R,o,{enterUrlMessage:()=>O.value.lexical.enterUrl}),C=Je(s,i)(e.signal(!0)),v=()=>{const r=R.value;r&&(r.update(()=>{const p=n.$getSelection();n.$isRangeSelection(p)&&B.$setBlocksType(p,()=>n.$createParagraphNode())}),r.focus())},c=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();if(n.$isRangeSelection(w)){const z=k(w),Z=`h${r}`,Q=p.getElementByKey(z.getKey());z.getType()==="heading"&&Q?.tagName===`H${r}`?B.$setBlocksType(w,()=>n.$createParagraphNode()):B.$setBlocksType(w,()=>j.$createHeadingNode(Z))}}),p.focus())},D=()=>{const r=R.value;if(!r)return;const p=r.getRootElement();p&&(p.focus(),document.execCommand("copy"))},x=()=>{const r=R.value;if(!r)return;const p=r.getRootElement();p&&(p.focus(),document.execCommand("cut"))},f=()=>{const r=R.value;r&&navigator.clipboard.readText().then(p=>{r.update(()=>{const w=n.$getSelection();n.$isRangeSelection(w)&&w.insertText(p)}),r.focus()}).catch(()=>{})},d=()=>{const r=R.value;r&&(r.update(()=>{const p=n.$getSelection();if(n.$isRangeSelection(p))for(const w of p.getNodes())n.$isTextNode(w)&&(w.setFormat(0),w.setStyle(""))}),r.focus())},l=()=>{const r=R.value;r&&(r.dispatchCommand(G.INSERT_TABLE_COMMAND,{rows:"3",columns:"3",includeHeaders:!0}),r.focus())},L={value:"",label:O.value.lexical.defaultOption},W=[L,...a.fontFamilies??uo],g=[L,...a.fontSizes??fo],P=[L,...a.lineHeights??go],H=o.map(()=>{const r=R.value;return r?r.getEditorState().read(()=>{const p=n.$getSelection();return n.$isRangeSelection(p)?B.$getSelectionStyleValueForProperty(p,"font-family",""):""}):""}),U=o.map(()=>{const r=R.value;return r?r.getEditorState().read(()=>{const p=n.$getSelection();return n.$isRangeSelection(p)?B.$getSelectionStyleValueForProperty(p,"font-size",""):""}):""}),tt=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();n.$isRangeSelection(w)&&B.$patchStyleText(w,{"font-family":r||null})}),p.focus())},ot=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();n.$isRangeSelection(w)&&B.$patchStyleText(w,{"font-size":r||null})}),p.focus())},nt=o.map(()=>{const r=R.value;return r?r.getEditorState().read(()=>{const p=n.$getSelection();return n.$isRangeSelection(p)&&B.$getSelectionStyleValueForProperty(p,"color","")||"#000000"}):"#000000"}),rt=o.map(()=>{const r=R.value;return r?r.getEditorState().read(()=>{const p=n.$getSelection();return n.$isRangeSelection(p)&&B.$getSelectionStyleValueForProperty(p,"background-color","")||"#ffffff"}):"#ffffff"}),it=o.map(()=>{const r=R.value;return r?r.getEditorState().read(()=>{const p=n.$getSelection();if(n.$isRangeSelection(p)){const z=k(p).getStyle();return te(z,"background-color")||"#ffffff"}return"#ffffff"}):"#ffffff"}),lt=o.map(()=>{const r=R.value;return r?r.getEditorState().read(()=>{const p=n.$getSelection();if(n.$isRangeSelection(p)){const z=k(p).getStyle();return te(z,"line-height")||""}return""}):""}),at=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();n.$isRangeSelection(w)&&B.$patchStyleText(w,{color:r})}),p.focus())},st=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();n.$isRangeSelection(w)&&B.$patchStyleText(w,{"background-color":r})}),p.focus())},ct=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();if(n.$isRangeSelection(w)){const z=k(w),Z=z.getStyle(),Q=le(Z,"background-color",r);z.setStyle(Q)}}),p.focus())},ut=r=>{const p=R.value;p&&(p.update(()=>{const w=n.$getSelection();if(n.$isRangeSelection(w)){const z=k(w),Z=z.getStyle(),Q=le(Z,"line-height",r);z.setStyle(Q)}}),p.focus())},$=new Map;$.set("bold",()=>C({active:S("bold"),onClick:M(n.FORMAT_TEXT_COMMAND,"bold"),label:b.map(r=>r.bold),icon:"mdi:format-bold"})),$.set("italic",()=>C({active:S("italic"),onClick:M(n.FORMAT_TEXT_COMMAND,"italic"),label:b.map(r=>r.italic),icon:"mdi:format-italic"})),$.set("underline",()=>C({active:S("underline"),onClick:M(n.FORMAT_TEXT_COMMAND,"underline"),label:b.map(r=>r.underline),icon:"mdi:format-underline"})),$.set("strikethrough",()=>C({active:S("strikethrough"),onClick:M(n.FORMAT_TEXT_COMMAND,"strikethrough"),label:b.map(r=>r.strikethrough),icon:"mdi:format-strikethrough"})),$.set("code",()=>C({active:S("code"),onClick:M(n.FORMAT_TEXT_COMMAND,"code"),label:b.map(r=>r.code),icon:"mdi:code-tags"})),$.set("clear-formatting",()=>C({active:e.signal(!1),onClick:d,label:b.map(r=>r.clearFormatting),icon:"mdi:format-clear"})),$.set("paragraph",()=>C({active:m("paragraph"),onClick:v,label:b.map(r=>r.normal),icon:"mdi:format-paragraph"}));for(let r=1;r<=u;r++)$.set(`heading-${r}`,()=>C({active:y(r),onClick:()=>c(r),label:b.map(p=>p.heading(r)),icon:`mdi:format-header-${r}`}));$.set("bullet-list",()=>C({active:T("bullet"),onClick:M(F.INSERT_UNORDERED_LIST_COMMAND,void 0),label:b.map(r=>r.bulletList),icon:"mdi:format-list-bulleted"})),$.set("ordered-list",()=>C({active:T("number"),onClick:M(F.INSERT_ORDERED_LIST_COMMAND,void 0),label:b.map(r=>r.orderedList),icon:"mdi:format-list-numbered"})),$.set("check-list",()=>C({active:T("check"),onClick:M(F.INSERT_CHECK_LIST_COMMAND,void 0),label:b.map(r=>r.checkList),icon:"mdi:format-list-checks"})),$.set("indent",()=>C({active:e.signal(!1),onClick:M(n.INDENT_CONTENT_COMMAND,void 0),label:b.map(r=>r.indent),icon:"mdi:format-indent-increase"})),$.set("outdent",()=>C({active:e.signal(!1),onClick:M(n.OUTDENT_CONTENT_COMMAND,void 0),label:b.map(r=>r.outdent),icon:"mdi:format-indent-decrease"})),$.set("blockquote",()=>C({active:m("quote"),onClick:_("quote",j.$createQuoteNode),label:b.map(r=>r.blockquote),icon:"mdi:format-quote-close"})),$.set("code-block",()=>C({active:m("code"),onClick:_("code",ie.$createCodeNode),label:b.map(r=>r.codeBlock),icon:"mdi:code-braces"})),$.set("horizontal-rule",()=>C({active:e.signal(!1),onClick:M(ce,void 0),label:b.map(r=>r.horizontalRule),icon:"mdi:minus"})),$.set("insert-table",()=>C({active:e.signal(!1),onClick:l,label:b.map(r=>r.insertTable),icon:"mdi:table-plus"})),$.set("link",()=>C({active:E(),onClick:I,label:b.map(r=>r.link),icon:"mdi:link"})),$.set("undo",()=>C({active:e.signal(!1),onClick:M(n.UNDO_COMMAND,void 0),label:b.map(r=>r.undo),icon:"mdi:undo"})),$.set("redo",()=>C({active:e.signal(!1),onClick:M(n.REDO_COMMAND,void 0),label:b.map(r=>r.redo),icon:"mdi:redo"})),$.set("cut",()=>C({active:e.signal(!1),onClick:x,label:b.map(r=>r.cut),icon:"mdi:content-cut"})),$.set("copy",()=>C({active:e.signal(!1),onClick:D,label:b.map(r=>r.copy),icon:"mdi:content-copy"})),$.set("paste",()=>C({active:e.signal(!1),onClick:f,label:b.map(r=>r.paste),icon:"mdi:content-paste"})),$.set("font-family",()=>e.html.select(e.attr.class("bc-lexical-toolbar-select"),e.attr.title(b.map(r=>r.fontFamily)),e.attr.disabled(s),e.on.change(r=>tt(r.target.value)),...W.map(r=>e.html.option(e.attr.value(r.value),e.attr.selected(H.map(p=>p===r.value)),r.label)))),$.set("font-size",()=>e.html.select(e.attr.class("bc-lexical-toolbar-select"),e.attr.title(b.map(r=>r.fontSize)),e.attr.disabled(s),e.on.change(r=>ot(r.target.value)),...g.map(r=>e.html.option(e.attr.value(r.value),e.attr.selected(U.map(p=>p===r.value)),r.label)))),$.set("line-height",()=>e.html.select(e.attr.class("bc-lexical-toolbar-select"),e.attr.title(b.map(r=>r.lineHeight)),e.attr.disabled(s),e.on.change(r=>ut(r.target.value)),...P.map(r=>e.html.option(e.attr.value(r.value),e.attr.selected(lt.map(p=>p===r.value)),r.label)))),$.set("font-color",()=>e.html.label(e.attr.class("bc-lexical-toolbar-color"),e.attr.title(b.map(r=>r.fontColor)),e.html.input(e.attr.type("color"),e.attr.value(nt),e.attr.disabled(s),e.on.input(r=>at(r.target.value))),e.html.span(e.attr.class("bc-lexical-toolbar-color-icon"),"A"))),$.set("highlight-color",()=>e.html.label(e.attr.class("bc-lexical-toolbar-color"),e.attr.title(b.map(r=>r.highlightColor)),e.html.input(e.attr.type("color"),e.attr.value(rt),e.attr.disabled(s),e.on.input(r=>st(r.target.value))),e.html.span(e.attr.class("bc-lexical-toolbar-color-icon bc-lexical-toolbar-color-icon--highlight"),"A"))),$.set("background-color",()=>e.html.label(e.attr.class("bc-lexical-toolbar-color"),e.attr.title(b.map(r=>r.backgroundColor)),e.html.input(e.attr.type("color"),e.attr.value(it),e.attr.disabled(s),e.on.input(r=>ct(r.target.value))),e.html.span(e.attr.class("bc-lexical-toolbar-color-icon bc-lexical-toolbar-color-icon--bg"),"■")));const Pe={editor:R,stateUpdate:o,readOnly:s,size:i,button:r=>C({active:r.active??e.signal(!1),onClick:r.onClick,label:r.label,icon:r.icon})},He=r=>{if(r.type==="button"){const p=r;$.set(r.id,()=>C({active:p.active?.(Pe)??e.signal(!1),onClick:()=>p.onClick(R.value),label:p.label,icon:p.icon}))}else if(r.type==="select"){const p=r,w=p.resetOnSelect!==!1;$.set(r.id,()=>e.html.select(e.attr.class("bc-lexical-toolbar-select"),e.attr.title(p.label),e.attr.disabled(s),e.on.change(z=>{const Z=z.target,Q=Z.value;Q!==""&&(p.onSelect(Q,R.value),w&&(Z.value=""))}),e.html.option(e.attr.value(""),e.attr.disabled(w),e.attr.selected(!0),p.label),...p.options.map(z=>e.html.option(e.attr.value(z.value),z.label))))}else if(r.type==="custom"){const p=r;$.set(r.id,()=>p.render(Pe))}};if(a.customItems)for(const r of a.customItems)He(r);if(a.customGroups)for(const r of a.customGroups)for(const p of r.items)He(p);return je.Toolbar({},e.attr.class("bc-lexical-toolbar"),...mo(h,$,u,a.customGroups))}))}function mo(t,o,a,s){const i=new Map;if(s)for(const h of s)i.set(h.id,h);const u=[];for(const h of t){if("separator"in h){u.push(je.ToolbarDivider());continue}if("customGroup"in h){const b=i.get(h.customGroup);if(!b)continue;const k=[];for(const m of b.items){const T=o.get(m.id);T&&k.push(T())}if(k.length===0)continue;const S=k.map(()=>e.signal(!0));u.push(ve.EditorToolbarGroup({display:S},...k));continue}let O=h.items??lo[h.group]??[];h.group==="headings"&&!h.items&&(O=O.filter(b=>b.startsWith("heading-")?parseInt(b.split("-")[1],10)<=a:!0));const A=[];for(const b of O){const k=o.get(b);k&&A.push(k())}if(A.length===0)continue;const R=A.map(()=>e.signal(!0));u.push(ve.EditorToolbarGroup({display:R},...A))}return u}function Xe({editor:t,stateUpdate:o,readOnly:a=e.signal(!1)}){const s=e.prop(!1),i=e.prop(0),u=e.prop(0);let h=null;const O=e.prop(!1),A=I=>{let N=null;return I.getEditorState().read(()=>{const C=n.$getSelection();if(!n.$isRangeSelection(C))return;let v=C.anchor.getNode();for(;v;){if(G.$isTableCellNode(v)){N=v;break}if(v=v.getParent(),!v||v.getKey()==="root")break}}),N},R=(I,N)=>{const C=I.getBoundingClientRect(),v=N.closest(".bc-lexical-editor-container"),c=v?v.getBoundingClientRect():N.getBoundingClientRect();return i.value=C.top-c.top+2,u.value=c.right-C.right+2,!0},b=()=>{const I=t.value;if(!I){s.value=!1;return}const N=A(I);if(!N){O.value||(s.value=!1);return}const C=I.getElementByKey(N.getKey()),v=I.getRootElement();C&&v?(R(C,v),s.value=!0):s.value=!1};o.onChange(b);const k=I=>()=>{const N=t.value;N&&(N.update(I),h?.set(!1),N.focus())},S=k(()=>G.$insertTableRowAtSelection(!1)),m=k(()=>G.$insertTableRowAtSelection(!0)),T=k(()=>G.$insertTableColumnAtSelection(!1)),y=k(()=>G.$insertTableColumnAtSelection(!0)),E=k(()=>G.$deleteTableRowAtSelection()),M=k(()=>G.$deleteTableColumnAtSelection()),_=k(()=>{const I=n.$getSelection();if(!n.$isRangeSelection(I))return;const N=I.anchor.getNode(),C=G.$getTableCellNodeFromLexicalNode(N);if(!C)return;G.$getTableNodeFromLexicalNodeOrThrow(C).remove()});return e.Use(q.BeatUII18n,I=>e.Ensure(t,N=>{const C=N,v=I.$.lexical,c=d=>{const l=C.value;if(!l||a.value)return;const L=l.getRootElement();if(!L)return;const g=d.target.closest("td, th");g&&L.contains(g)&&(d.preventDefault(),R(g,L)&&(s.value=!0),bt.delayedAnimationFrame(()=>{h?.set(!0)}))},D=C.value?.getRootElement(),f=D?.closest(".bc-lexical-editor-container")??D??document;return f.addEventListener("contextmenu",c),[e.OnDispose(()=>{f.removeEventListener("contextmenu",c)}),e.When(s,()=>e.html.div(e.attr.class("bc-table-cell-marker"),e.style.position("absolute"),e.style.top(i.map(d=>`${d}px`)),e.style.right(u.map(d=>`${d}px`)),e.style.zIndex("10"),e.WithElement(d=>{d.addEventListener("mousedown",l=>{l.preventDefault()})}),e.html.button(e.attr.class("bc-table-cell-marker__button"),e.attr.type("button"),e.attr.title(v.map(d=>d.tableActions)),e.attr.disabled(a),q.Icon({icon:"lucide:chevron-down",size:"xs"}),e.WithElement(d=>{const l=new MutationObserver(()=>{const L=d.getAttribute("aria-expanded")==="true";O.value=L});return l.observe(d,{attributes:!0,attributeFilter:["aria-expanded"]}),e.OnDispose(()=>l.disconnect())}),J.Menu({items:()=>[J.MenuItem({key:"insert-row-above",content:v.map(d=>d.insertRowAbove),before:q.Icon({icon:"lucide:arrow-up",size:"sm"}),onClick:S,disabled:a}),J.MenuItem({key:"insert-row-below",content:v.map(d=>d.insertRowBelow),before:q.Icon({icon:"lucide:arrow-down",size:"sm"}),onClick:m,disabled:a}),J.MenuItem({key:"insert-column-left",content:v.map(d=>d.insertColumnLeft),before:q.Icon({icon:"lucide:arrow-left",size:"sm"}),onClick:T,disabled:a}),J.MenuItem({key:"insert-column-right",content:v.map(d=>d.insertColumnRight),before:q.Icon({icon:"lucide:arrow-right",size:"sm"}),onClick:y,disabled:a}),J.MenuSeparator(),J.MenuItem({key:"delete-row",content:v.map(d=>d.deleteRow),before:q.Icon({icon:"lucide:trash-2",size:"sm"}),onClick:E,disabled:a}),J.MenuItem({key:"delete-column",content:v.map(d=>d.deleteColumn),before:q.Icon({icon:"lucide:trash-2",size:"sm"}),onClick:M,disabled:a}),J.MenuItem({key:"delete-table",content:v.map(d=>d.deleteTable),before:q.Icon({icon:"lucide:trash-2",size:"sm"}),onClick:_,disabled:a})],placement:"bottom-end",showOn:d=>(h=d,e.on.click(()=>{d.set(!d.value)})),showDelay:0,hideDelay:0,mainAxisOffset:4,onClose:()=>{const d=C.value;d&&d.focus()},ariaLabel:v.map(d=>d.tableActions)}))))]}))}const po=t=>{const{value:o,format:a,plugins:s,readOnly:i,placeholder:u,class:h,namespace:O="BeatUILexical",heightMode:A="fixed",toolbar:R,autoFocus:b=!1,onError:k,onInput:S,onChange:m,onBlur:T,onReady:y}=t,E=e.prop(null),M=e.prop(0),_=N=>typeof N=="object"&&N!==null&&"map"in N&&typeof N.map=="function",I=i!=null?_(i)?i:e.prop(e.Value.get(i)):e.prop(!1);return e.Use(Ie.Theme,({appearance:N})=>e.html.div(e.Task(()=>Promise.resolve().then(()=>require("../styles-url-CkPTI32j.cjs")),({default:C})=>Le.LinkPortal({id:"beatui-lexical-css",href:C})),e.attr.class("bc-lexical-editor-container"),A==="fixed"?e.attr.class("bc-lexical-editor-container--fixed"):null,e.attr.class(h),e.When(I.map(C=>!C),()=>Ve({editor:E,stateUpdate:M,toolbar:R,readOnly:I,size:"sm"})),Xe({editor:E,stateUpdate:M,readOnly:I}),e.html.div(e.attr.class("bc-lexical-editor"),e.attr.class(`bc-lexical-editor--${A}`),e.attr.contenteditable(i!=null?e.Value.map(i,C=>!C):!0),i!=null?e.attr.class(e.Value.map(i,C=>C?"bc-lexical-editor--readonly":"")):null,e.WithElement(C=>{let v=null;const c=[];return(async()=>{try{const x=s??pe("docked"),f=me(x),d=e.Value.get(a??"markdown"),l=n.createEditor({namespace:O,nodes:f,theme:{heading:{h1:"bc-lexical-h1",h2:"bc-lexical-h2",h3:"bc-lexical-h3",h4:"bc-lexical-h4",h5:"bc-lexical-h5",h6:"bc-lexical-h6"},text:{bold:"bc-lexical-bold",italic:"bc-lexical-italic",underline:"bc-lexical-underline",strikethrough:"bc-lexical-strikethrough",code:"bc-lexical-code"},list:{ul:"bc-lexical-ul",ol:"bc-lexical-ol",listitem:"bc-lexical-li",listitemChecked:"bc-lexical-li-checked",listitemUnchecked:"bc-lexical-li-unchecked"},link:"bc-lexical-link",quote:"bc-lexical-blockquote",code:"bc-lexical-code-block",codeHighlight:{},hashtag:"bc-lexical-hashtag",table:"bc-lexical-table",tableCell:"bc-lexical-table-cell",tableCellHeader:"bc-lexical-table-cell-header",tableRow:"bc-lexical-table-row",mark:"bc-lexical-mark",paragraph:"bc-lexical-paragraph"},onError:g=>{k?k(g,l):console.error("[BeatUI Lexical]",g)},editable:i?!e.Value.get(i):!0,html:{export:xe(),import:ue()}});v=l,E.set(l),l.setRootElement(C);const L=[];if(x.richText?L.push(he(l)):x.plainText&&L.push(be(l)),x.history){const g=typeof x.history=="object"?x.history:void 0;L.push(Ce(l,g))}if(x.clipboard&&L.push(ye(l)),x.list&&L.push(Ee(l)),x.link&&L.push(Oe(l)),x.yjs&&L.push(Me(l,x.yjs)),x.dragon&&L.push(Se(l)),x.table&&L.push(Ne(l)),(await Promise.all(L)).forEach(g=>{g&&c.push(g)}),c.push(Te(l)),c.push($e(l)),c.push(l.registerCommand(n.SELECTION_CHANGE_COMMAND,()=>(M.set(M.value+1),!1),n.COMMAND_PRIORITY_LOW)),c.push(l.registerUpdateListener(({editorState:g,dirtyElements:P,dirtyLeaves:H})=>{(P.size>0||H.size>0)&&M.set(M.value+1),S&&(P.size>0||H.size>0)&&g.read(async()=>{if(d==="markdown"){const U=await K(l);S(U,l)}else if(d==="html"){const U=await Y(l);S(U,l)}else d==="json"&&S(g.toJSON(),l)})})),o!=null){const g=e.Value.get(o);if(g!=null&&(g!==""||d==="json"&&typeof g=="object")){if(d==="markdown"&&typeof g=="string")await V(l,g);else if(d==="html"&&typeof g=="string")await X(l,g);else if(d==="json"&&typeof g=="object")try{const H=JSON.stringify(g),U=l.parseEditorState(H);l.setEditorState(U)}catch(H){console.error("[BeatUI] Failed to parse JSON editor state:",H),k&&k(H instanceof Error?H:new Error(String(H)),l)}}}if(o!=null&&c.push(e.Value.on(o,async g=>{if(g!=null){if(d==="markdown"&&typeof g=="string"){const P=await K(l);g!==P&&await V(l,g)}else if(d==="html"&&typeof g=="string"){const P=await Y(l);g!==P&&await X(l,g)}else if(d==="json"&&typeof g=="object"){const P=JSON.stringify(l.getEditorState().toJSON()),H=JSON.stringify(g);if(P!==H){const U=l.parseEditorState(H);l.setEditorState(U)}}}})),i!=null&&c.push(e.Value.on(i,g=>{l.setEditable(!g)})),c.push(l.registerCommand(n.BLUR_COMMAND,()=>(T&&T(l),m&&l.getEditorState().read(async()=>{if(d==="markdown"){const g=await K(l);m(g,l)}else if(d==="html"){const g=await Y(l);m(g,l)}else d==="json"&&m(l.getEditorState().toJSON(),l)}),!1),n.COMMAND_PRIORITY_LOW)),c.push(N.on(g=>{const P=l.getRootElement();P&&(P.dataset.theme=g)})),b)l.focus();else{const g=l.getRootElement();g&&g===document.activeElement&&g.blur()}y&&y(l)}catch(x){console.error("[BeatUI] Failed to initialize Lexical editor:",x);const f=C;f.textContent="Failed to load Lexical editor."}})(),e.OnDispose(()=>{try{c.forEach(x=>x())}catch{}try{v?.setRootElement(null)}catch{}E.set(null)})}))))};function Ze({editor:t,stateUpdate:o,groups:a=["text-formatting"],readOnly:s=e.signal(!1),size:i="sm"}){const u=e.prop(!1),h=e.prop(0),O=e.prop(0);return e.Use(q.BeatUII18n,A=>e.Ensure(t,R=>{const b=R,k=A.$.lexical,S=c=>a.includes(c),{textFormatActive:m,linkActive:T,dispatch:y,toggleLink:E}=Ye(b,o,{enterUrlMessage:()=>A.value.lexical.enterUrl}),_=Je(s,i)(e.signal(!0)),I=()=>{const c=b.value;if(!c){u.value=!1;return}const D=c.getRootElement();if(!D){u.value=!1;return}const x=window.getSelection();if(!x||x.rangeCount===0||x.isCollapsed){u.value=!1;return}const f=x.anchorNode;if(f&&!D.contains(f)){u.value=!1;return}const l=x.getRangeAt(0).getBoundingClientRect();if(l.width===0&&l.height===0){u.value=!1;return}const L=40,W=8;let g=l.top-L-W;const P=l.left+l.width/2;g<0&&(g=l.bottom+W),h.value=g,O.value=P,u.value=!0},N=o.onChange(I),C=()=>{I()};document.addEventListener("selectionchange",C);const v=e.html.div(e.attr.class("bc-floating-toolbar"),e.style.position("fixed"),e.style.top(h.map(c=>`${c}px`)),e.style.left(O.map(c=>`${c}px`)),e.style.transform("translateX(-50%)"),e.WithElement(c=>{const D=f=>{if(f.key==="Escape"&&u.value){u.value=!1;const d=b.value;d&&d.focus()}},x=f=>{if(u.value&&!c.contains(f.target)){const d=b.value;if(d){const l=d.getRootElement();if(l&&l.contains(f.target))return}u.value=!1}};return document.addEventListener("keydown",D),document.addEventListener("mousedown",x),e.OnDispose(()=>{N(),document.removeEventListener("keydown",D),document.removeEventListener("mousedown",x),document.removeEventListener("selectionchange",C)})}),...S("text-formatting")?[_({active:m("bold"),onClick:y(n.FORMAT_TEXT_COMMAND,"bold"),label:k.map(c=>c.bold),icon:"mdi:format-bold"}),_({active:m("italic"),onClick:y(n.FORMAT_TEXT_COMMAND,"italic"),label:k.map(c=>c.italic),icon:"mdi:format-italic"}),_({active:m("underline"),onClick:y(n.FORMAT_TEXT_COMMAND,"underline"),label:k.map(c=>c.underline),icon:"mdi:format-underline"}),_({active:m("strikethrough"),onClick:y(n.FORMAT_TEXT_COMMAND,"strikethrough"),label:k.map(c=>c.strikethrough),icon:"mdi:format-strikethrough"}),_({active:m("code"),onClick:y(n.FORMAT_TEXT_COMMAND,"code"),label:k.map(c=>c.code),icon:"mdi:code-tags"})]:[],...S("links")?[_({active:T(),onClick:E,label:k.map(c=>c.link),icon:"mdi:link"})]:[],...S("clipboard")?[_({active:e.signal(!1),onClick:()=>{const c=b.value;if(!c)return;const D=c.getRootElement();D&&(D.focus(),document.execCommand("cut"))},label:k.map(c=>c.cut),icon:"mdi:content-cut"}),_({active:e.signal(!1),onClick:()=>{const c=b.value;if(!c)return;const D=c.getRootElement();D&&(D.focus(),document.execCommand("copy"))},label:k.map(c=>c.copy),icon:"mdi:content-copy"}),_({active:e.signal(!1),onClick:()=>{const c=b.value;c&&navigator.clipboard.readText().then(D=>{c.update(()=>{const x=n.$getSelection();n.$isRangeSelection(x)&&x.insertText(D)}),c.focus()}).catch(()=>{})},label:k.map(c=>c.paste),icon:"mdi:content-paste"})]:[]);return e.When(u,()=>v)}))}const ho=[{id:"heading1",label:"Heading 1",description:"Large section heading",icon:"mdi:format-header-1",keywords:["h1","heading","title"],category:"Basic blocks",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createHeadingNode("h1"))})}},{id:"heading2",label:"Heading 2",description:"Medium section heading",icon:"mdi:format-header-2",keywords:["h2","heading"],category:"Basic blocks",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createHeadingNode("h2"))})}},{id:"heading3",label:"Heading 3",description:"Small section heading",icon:"mdi:format-header-3",keywords:["h3","heading"],category:"Basic blocks",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createHeadingNode("h3"))})}},{id:"bullet-list",label:"Bullet List",description:"Create a bulleted list",icon:"mdi:format-list-bulleted",keywords:["ul","unordered","bullets"],category:"Lists",handler:t=>{t.dispatchCommand(F.INSERT_UNORDERED_LIST_COMMAND,void 0)}},{id:"ordered-list",label:"Ordered List",description:"Create a numbered list",icon:"mdi:format-list-numbered",keywords:["ol","numbered","1","2","3"],category:"Lists",handler:t=>{t.dispatchCommand(F.INSERT_ORDERED_LIST_COMMAND,void 0)}},{id:"quote",label:"Quote",description:"Insert a blockquote",icon:"mdi:format-quote-close",keywords:["blockquote","citation"],category:"Basic blocks",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createQuoteNode())})}},{id:"code-block",label:"Code Block",description:"Insert a code block",icon:"mdi:code-braces",keywords:["code","pre","programming"],category:"Basic blocks",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>ie.$createCodeNode())})}},{id:"divider",label:"Divider",description:"Insert a horizontal rule",icon:"mdi:minus",keywords:["hr","horizontal","line","separator"],category:"Basic blocks",handler:t=>{t.dispatchCommand(ce,void 0)}},{id:"table",label:"Table",description:"Insert a table",icon:"mdi:table",keywords:["table","grid","cells","rows","columns"],category:"Advanced",handler:t=>{t.dispatchCommand(G.INSERT_TABLE_COMMAND,{rows:"3",columns:"3",includeHeaders:!0})}}];function bo({commands:t,isVisible:o,filterText:a,position:s,onSelect:i,onClose:u}){const h=e.prop(0),O=a.map(S=>{const m=S.toLowerCase().trim();return m?t.filter(T=>[T.label.toLowerCase(),T.description?.toLowerCase()||"",...T.keywords?.map(E=>E.toLowerCase())||[]].join(" ").includes(m)):t});O.onChange(()=>{h.value=0});const A=S=>{const m=O.value;if(S>=0&&S<m.length){const T=m[S];i(T)}},R=S=>{if(!o.value)return;const T=O.value.length-1;switch(S.key){case"ArrowDown":S.preventDefault(),h.value=Math.min(h.value+1,T);break;case"ArrowUp":S.preventDefault(),h.value=Math.max(h.value-1,0);break;case"Enter":S.preventDefault(),A(h.value);break;case"Escape":S.preventDefault(),u();break}},b=(S,m)=>{const T=h.map(E=>E===m),y=`slash-cmd-${S.id}`;return e.html.div(e.attr.class("bc-slash-command-palette__item"),e.attr.id(y),e.attr.role("option"),e.aria.selected(T),e.WithElement(E=>{const M=()=>{h.value=m},_=()=>{A(m)};return E.addEventListener("mouseenter",M),E.addEventListener("click",_),e.OnDispose(()=>{E.removeEventListener("mouseenter",M),E.removeEventListener("click",_)})}),typeof S.icon=="string"?e.html.div(e.attr.class("bc-slash-command-palette__icon"),q.Icon({icon:S.icon,size:"sm"})):S.icon,e.html.div(e.attr.class("bc-slash-command-palette__content"),e.html.div(e.attr.class("bc-slash-command-palette__label"),S.label),S.description?e.html.div(e.attr.class("bc-slash-command-palette__description"),S.description):void 0),S.category?e.html.div(e.attr.class("bc-slash-command-palette__category"),S.category):void 0)},k=e.Use(q.BeatUII18n,S=>e.html.div(e.attr.class("bc-slash-command-palette"),e.attr.role("listbox"),e.aria.label(S.$.lexical.map(m=>m.slashCommands)),e.style.position("absolute"),e.style.top(s.map(m=>`${m.top}px`)),e.style.left(s.map(m=>`${m.left}px`)),e.WithElement(()=>(document.addEventListener("keydown",R),e.OnDispose(()=>{document.removeEventListener("keydown",R)}))),e.When(O.map(m=>m.length===0),()=>e.html.div(e.attr.class("bc-slash-command-palette__empty"),S.$.lexical.map(m=>m.noCommandsFound))),e.ForEach(O,(m,T)=>{const y=m.value;return b(y,T.index)})));return e.When(o,()=>k)}const Qe=[{id:"paragraph",label:"Paragraph",icon:"mdi:format-paragraph",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>n.$createParagraphNode())})}},{id:"heading1",label:"Heading 1",icon:"mdi:format-header-1",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createHeadingNode("h1"))})}},{id:"heading2",label:"Heading 2",icon:"mdi:format-header-2",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createHeadingNode("h2"))})}},{id:"heading3",label:"Heading 3",icon:"mdi:format-header-3",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createHeadingNode("h3"))})}},{id:"bullet-list",label:"Bullet List",icon:"mdi:format-list-bulleted",handler:t=>{t.dispatchCommand(F.INSERT_UNORDERED_LIST_COMMAND,void 0)}},{id:"ordered-list",label:"Ordered List",icon:"mdi:format-list-numbered",handler:t=>{t.dispatchCommand(F.INSERT_ORDERED_LIST_COMMAND,void 0)}},{id:"quote",label:"Quote",icon:"mdi:format-quote-close",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>j.$createQuoteNode())})}},{id:"code-block",label:"Code Block",icon:"mdi:code-braces",handler:t=>{t.update(()=>{const o=n.$getSelection();n.$isRangeSelection(o)&&B.$setBlocksType(o,()=>ie.$createCodeNode())})}},{id:"divider",label:"Divider",icon:"mdi:minus",handler:t=>{t.dispatchCommand(ce,void 0)}},{id:"table",label:"Table",icon:"mdi:table",handler:t=>{t.dispatchCommand(G.INSERT_TABLE_COMMAND,{rows:"3",columns:"3",includeHeaders:!0})}}];function et({editor:t,stateUpdate:o,readOnly:a=e.signal(!1),commands:s=Qe}){const i=e.prop(!1),u=e.prop(!1),h=e.prop(0),O=e.prop(0);return e.Use(q.BeatUII18n,A=>e.Ensure(t,R=>{const b=R;let k=null,S=!1,m=null;const T=24,y=4,E=200,M=f=>{if(f===k&&i.value)return;k=f;const d=f.getBoundingClientRect();h.value=d.top,O.value=d.left-T-y,i.value=!0},_=()=>{m!=null&&(clearTimeout(m),m=null)},I=()=>{u.value||(_(),m=setTimeout(()=>{m=null,u.value||(i.value=!1,k=null)},E))},N=()=>{const f=b.value;if(!f)return;const d=f.getRootElement();d&&(c(d),f.getEditorState().read(()=>{const l=n.$getSelection();if(n.$isRangeSelection(l))try{const W=l.anchor.getNode().getTopLevelElementOrThrow(),g=f.getElementByKey(W.getKey());g&&M(g)}catch{}}))},C=f=>{if(u.value)return;const d=b.value;if(!d)return;const l=d.getRootElement();if(l)for(const L of Array.from(l.children)){const W=L.getBoundingClientRect();if(f.clientY>=W.top&&f.clientY<=W.bottom){_(),M(L);return}}},v=()=>{I()},c=f=>{S||(S=!0,f.addEventListener("mousemove",C),f.addEventListener("mouseleave",v))},D=o.onChange(N);return[e.OnDispose(()=>{D(),_();const f=b.value;if(f){const d=f.getRootElement();d&&S&&(d.removeEventListener("mousemove",C),d.removeEventListener("mouseleave",v))}}),e.When(i,()=>e.html.div(e.attr.class("bc-block-handle"),e.style.position("fixed"),e.style.top(h.map(f=>`${f}px`)),e.style.left(O.map(f=>`${f}px`)),e.on.mouseenter(_),e.on.mouseleave(()=>I()),e.WithElement(f=>{f.addEventListener("mousedown",d=>{d.preventDefault()})}),e.html.button(e.attr.class("bc-block-handle__button"),e.attr.type("button"),e.attr.title(A.$.lexical.map(f=>f.changeBlockType)),e.attr.disabled(a),q.Icon({icon:"mdi:drag-horizontal-variant",size:"sm"}),e.WithElement(f=>{const d=new MutationObserver(()=>{const l=f.getAttribute("aria-expanded")==="true";u.value=l});return d.observe(f,{attributes:!0,attributeFilter:["aria-expanded"]}),e.OnDispose(()=>d.disconnect())}),J.Menu({items:()=>s.map(f=>J.MenuItem({key:f.id,content:f.label,before:q.Icon({icon:f.icon,size:"sm"}),onClick:()=>{const d=b.value;d&&(f.handler(d),d.focus())}})),placement:"bottom-start",showOn:"click",showDelay:0,hideDelay:0,mainAxisOffset:4,onClose:()=>{const f=b.value;f&&f.focus()},ariaLabel:A.value.lexical.blockTypes}))))]}))}const Co=t=>{const{value:o,format:a,plugins:s,readOnly:i,placeholder:u,class:h,namespace:O="BeatUILexical",heightMode:A="auto",floatingToolbarGroups:R,autoFocus:b=!1,onError:k,onInput:S,onChange:m,onBlur:T,onReady:y}=t,E=e.prop(null),M=e.prop(0),_=N=>typeof N=="object"&&N!==null&&"map"in N&&typeof N.map=="function",I=i!=null?_(i)?i:e.prop(e.Value.get(i)):e.prop(!1);return e.Use(Ie.Theme,({appearance:N})=>e.html.div(e.Task(()=>Promise.resolve().then(()=>require("../styles-url-CkPTI32j.cjs")),({default:C})=>Le.LinkPortal({id:"beatui-lexical-css",href:C})),e.attr.class("bc-lexical-editor-container"),A==="fixed"?e.attr.class("bc-lexical-editor-container--fixed"):null,e.attr.class(h),Ze({editor:E,stateUpdate:M,groups:R??["text-formatting","links"],readOnly:I}),et({editor:E,stateUpdate:M,readOnly:I}),Xe({editor:E,stateUpdate:M,readOnly:I}),e.html.div(e.attr.class("bc-lexical-editor"),e.attr.class(`bc-lexical-editor--${A}`),e.attr.contenteditable(i!=null?e.Value.map(i,C=>!C):!0),i!=null?e.attr.class(e.Value.map(i,C=>C?"bc-lexical-editor--readonly":"")):null,e.WithElement(C=>{let v=null;const c=[];return(async()=>{try{const x=s??pe("contextual"),f=me(x),d=e.Value.get(a??"markdown"),l=n.createEditor({namespace:O,nodes:f,theme:{heading:{h1:"bc-lexical-h1",h2:"bc-lexical-h2",h3:"bc-lexical-h3",h4:"bc-lexical-h4",h5:"bc-lexical-h5",h6:"bc-lexical-h6"},text:{bold:"bc-lexical-bold",italic:"bc-lexical-italic",underline:"bc-lexical-underline",strikethrough:"bc-lexical-strikethrough",code:"bc-lexical-code"},list:{ul:"bc-lexical-ul",ol:"bc-lexical-ol",listitem:"bc-lexical-li",listitemChecked:"bc-lexical-li-checked",listitemUnchecked:"bc-lexical-li-unchecked"},link:"bc-lexical-link",quote:"bc-lexical-blockquote",code:"bc-lexical-code-block",codeHighlight:{},hashtag:"bc-lexical-hashtag",table:"bc-lexical-table",tableCell:"bc-lexical-table-cell",tableCellHeader:"bc-lexical-table-cell-header",tableRow:"bc-lexical-table-row",mark:"bc-lexical-mark",paragraph:"bc-lexical-paragraph"},onError:g=>{k?k(g,l):console.error("[BeatUI Lexical]",g)},editable:i?!e.Value.get(i):!0,html:{export:xe(),import:ue()}});v=l,E.set(l),l.setRootElement(C);const L=[];if(x.richText?L.push(he(l)):x.plainText&&L.push(be(l)),x.history){const g=typeof x.history=="object"?x.history:void 0;L.push(Ce(l,g))}if(x.clipboard&&L.push(ye(l)),x.list&&L.push(Ee(l)),x.link&&L.push(Oe(l)),x.yjs&&L.push(Me(l,x.yjs)),x.dragon&&L.push(Se(l)),x.table&&L.push(Ne(l)),(await Promise.all(L)).forEach(g=>{g&&c.push(g)}),c.push(Te(l)),c.push($e(l)),c.push(l.registerCommand(n.SELECTION_CHANGE_COMMAND,()=>(M.set(M.value+1),!1),n.COMMAND_PRIORITY_LOW)),c.push(l.registerUpdateListener(({editorState:g,dirtyElements:P,dirtyLeaves:H})=>{(P.size>0||H.size>0)&&M.set(M.value+1),S&&(P.size>0||H.size>0)&&g.read(async()=>{if(d==="markdown"){const U=await K(l);S(U,l)}else if(d==="html"){const U=await Y(l);S(U,l)}else d==="json"&&S(g.toJSON(),l)})})),o!=null){const g=e.Value.get(o);if(g!=null&&(g!==""||d==="json"&&typeof g=="object")){if(d==="markdown"&&typeof g=="string")await V(l,g);else if(d==="html"&&typeof g=="string")await X(l,g);else if(d==="json"&&typeof g=="object")try{const H=JSON.stringify(g),U=l.parseEditorState(H);l.setEditorState(U)}catch(H){console.error("[BeatUI] Failed to parse JSON editor state:",H),k&&k(H instanceof Error?H:new Error(String(H)),l)}}}if(o!=null&&c.push(e.Value.on(o,async g=>{if(g!=null){if(d==="markdown"&&typeof g=="string"){const P=await K(l);g!==P&&await V(l,g)}else if(d==="html"&&typeof g=="string"){const P=await Y(l);g!==P&&await X(l,g)}else if(d==="json"&&typeof g=="object"){const P=JSON.stringify(l.getEditorState().toJSON()),H=JSON.stringify(g);if(P!==H){const U=l.parseEditorState(H);l.setEditorState(U)}}}})),i!=null&&c.push(e.Value.on(i,g=>{l.setEditable(!g)})),c.push(l.registerCommand(n.BLUR_COMMAND,()=>(T&&T(l),m&&l.getEditorState().read(async()=>{if(d==="markdown"){const g=await K(l);m(g,l)}else if(d==="html"){const g=await Y(l);m(g,l)}else d==="json"&&m(l.getEditorState().toJSON(),l)}),!1),n.COMMAND_PRIORITY_LOW)),c.push(N.on(g=>{const P=l.getRootElement();P&&(P.dataset.theme=g)})),b)l.focus();else{const g=l.getRootElement();g&&g===document.activeElement&&g.blur()}y&&y(l)}catch(x){console.error("[BeatUI] Failed to initialize Lexical editor:",x);const f=C;f.textContent="Failed to load Lexical editor."}})(),e.OnDispose(()=>{try{c.forEach(x=>x())}catch{}try{v?.setRootElement(null)}catch{}E.set(null)})}))))},yo=t=>{const{value:o,before:a,after:s,onChange:i,onInput:u,onBlur:h,disabled:O,hasError:A,name:R,placeholder:b,id:k,required:S,tabIndex:m,size:T,class:y,namespace:E,format:M,plugins:_,readOnly:I,onError:N,onReady:C,marks:v,autoFocus:c}=t,D=O!=null&&I!=null?e.computedOf(O,I)((x,f)=>(x??!1)||(f??!1)):O??I;return Ct.InputContainer({disabled:O,hasError:A,size:T,baseContainer:!0,growInput:!0,focusableSelector:"[contenteditable]",before:a,after:s,input:e.html.div(e.attr.class("bc-lexical-editor-input"),e.attr.name(R),e.attr.id(k),S!=null?e.aria.required(S):null,m!=null?e.attr.tabindex(m):null,A!=null?e.attr.class(e.Value.map(A,x=>x?"bc-lexical-editor-input--error":"")):null,Ke({value:o,format:M??"markdown",plugins:_,readOnly:D,placeholder:b,namespace:E,class:y,autoFocus:c,onError:N,onReady:C,onInput:u?(x,f)=>{u(x)}:void 0,onChange:i?(x,f)=>{i(x)}:void 0,onBlur:h?x=>{h()}:void 0}))})};Object.defineProperty(exports,"INSERT_CHECK_LIST_COMMAND",{enumerable:!0,get:()=>F.INSERT_CHECK_LIST_COMMAND});Object.defineProperty(exports,"INSERT_ORDERED_LIST_COMMAND",{enumerable:!0,get:()=>F.INSERT_ORDERED_LIST_COMMAND});Object.defineProperty(exports,"INSERT_UNORDERED_LIST_COMMAND",{enumerable:!0,get:()=>F.INSERT_UNORDERED_LIST_COMMAND});Object.defineProperty(exports,"REMOVE_LIST_COMMAND",{enumerable:!0,get:()=>F.REMOVE_LIST_COMMAND});Object.defineProperty(exports,"BLUR_COMMAND",{enumerable:!0,get:()=>n.BLUR_COMMAND});Object.defineProperty(exports,"CLEAR_EDITOR_COMMAND",{enumerable:!0,get:()=>n.CLEAR_EDITOR_COMMAND});Object.defineProperty(exports,"CLICK_COMMAND",{enumerable:!0,get:()=>n.CLICK_COMMAND});Object.defineProperty(exports,"COMMAND_PRIORITY_CRITICAL",{enumerable:!0,get:()=>n.COMMAND_PRIORITY_CRITICAL});Object.defineProperty(exports,"COMMAND_PRIORITY_EDITOR",{enumerable:!0,get:()=>n.COMMAND_PRIORITY_EDITOR});Object.defineProperty(exports,"COMMAND_PRIORITY_HIGH",{enumerable:!0,get:()=>n.COMMAND_PRIORITY_HIGH});Object.defineProperty(exports,"COMMAND_PRIORITY_LOW",{enumerable:!0,get:()=>n.COMMAND_PRIORITY_LOW});Object.defineProperty(exports,"COMMAND_PRIORITY_NORMAL",{enumerable:!0,get:()=>n.COMMAND_PRIORITY_NORMAL});Object.defineProperty(exports,"COPY_COMMAND",{enumerable:!0,get:()=>n.COPY_COMMAND});Object.defineProperty(exports,"CUT_COMMAND",{enumerable:!0,get:()=>n.CUT_COMMAND});Object.defineProperty(exports,"DecoratorNode",{enumerable:!0,get:()=>n.DecoratorNode});Object.defineProperty(exports,"ElementNode",{enumerable:!0,get:()=>n.ElementNode});Object.defineProperty(exports,"FOCUS_COMMAND",{enumerable:!0,get:()=>n.FOCUS_COMMAND});Object.defineProperty(exports,"FORMAT_ELEMENT_COMMAND",{enumerable:!0,get:()=>n.FORMAT_ELEMENT_COMMAND});Object.defineProperty(exports,"FORMAT_TEXT_COMMAND",{enumerable:!0,get:()=>n.FORMAT_TEXT_COMMAND});Object.defineProperty(exports,"INDENT_CONTENT_COMMAND",{enumerable:!0,get:()=>n.INDENT_CONTENT_COMMAND});Object.defineProperty(exports,"INSERT_PARAGRAPH_COMMAND",{enumerable:!0,get:()=>n.INSERT_PARAGRAPH_COMMAND});Object.defineProperty(exports,"KEY_ENTER_COMMAND",{enumerable:!0,get:()=>n.KEY_ENTER_COMMAND});Object.defineProperty(exports,"KEY_ESCAPE_COMMAND",{enumerable:!0,get:()=>n.KEY_ESCAPE_COMMAND});Object.defineProperty(exports,"KEY_TAB_COMMAND",{enumerable:!0,get:()=>n.KEY_TAB_COMMAND});Object.defineProperty(exports,"OUTDENT_CONTENT_COMMAND",{enumerable:!0,get:()=>n.OUTDENT_CONTENT_COMMAND});Object.defineProperty(exports,"PASTE_COMMAND",{enumerable:!0,get:()=>n.PASTE_COMMAND});Object.defineProperty(exports,"REDO_COMMAND",{enumerable:!0,get:()=>n.REDO_COMMAND});Object.defineProperty(exports,"SELECTION_CHANGE_COMMAND",{enumerable:!0,get:()=>n.SELECTION_CHANGE_COMMAND});Object.defineProperty(exports,"TextNode",{enumerable:!0,get:()=>n.TextNode});Object.defineProperty(exports,"UNDO_COMMAND",{enumerable:!0,get:()=>n.UNDO_COMMAND});Object.defineProperty(exports,"createCommand",{enumerable:!0,get:()=>n.createCommand});exports.$createHorizontalRuleNode=se;exports.$isHorizontalRuleNode=Ue;exports.BareEditor=Ke;exports.BlockHandle=et;exports.ContextualEditor=Co;exports.DEFAULT_BLOCK_COMMANDS=Qe;exports.DEFAULT_INLINE_STYLE_PROPERTIES=qe;exports.DEFAULT_SLASH_COMMANDS=ho;exports.DockedEditor=po;exports.FloatingToolbar=Ze;exports.HR_TRANSFORMER=Ge;exports.HorizontalRuleNode=oe;exports.INSERT_HORIZONTAL_RULE_COMMAND=ce;exports.INSERT_IMAGE_COMMAND=xt;exports.LexicalEditorInput=yo;exports.LexicalToolbar=Ve;exports.SlashCommandPalette=bo;exports.TOGGLE_SLASH_COMMAND_PALETTE=Mt;exports.TOOLBAR_SEPARATOR=Ot;exports.applyMark=Ut;exports.buildInlineStyleImportMap=We;exports.buildStyleImportMap=ue;exports.createDefaultPluginConfig=pe;exports.createHeadlessEditor=de;exports.executeSlashCommand=St;exports.exportEditorToFile=_t;exports.exportToHtml=Y;exports.exportToMarkdown=K;exports.getCharacterCount=Wt;exports.getMarkdownTransformers=kt;exports.getNodesForPlugins=me;exports.getSelectionInfo=qt;exports.getTextContent=we;exports.getWordCount=Kt;exports.htmlToLexicalJson=ro;exports.importFileToEditor=vt;exports.importFromHtml=X;exports.importFromMarkdown=V;exports.insertTable=At;exports.insertTextAtCursor=Yt;exports.lexicalJsonToHtml=io;exports.lexicalJsonToMarkdown=no;exports.loadLexicalCore=ze;exports.loadOffsetUtils=Jt;exports.markdownToLexicalJson=oo;exports.registerAutoLinkPlugin=Bt;exports.registerClipboardPlugin=ye;exports.registerCodePlugin=Lt;exports.registerCodeShikiPlugin=It;exports.registerDragonPlugin=Se;exports.registerHashtagPlugin=$t;exports.registerHistoryPlugin=Ce;exports.registerHorizontalRulePlugin=Te;exports.registerLinkPlugin=Oe;exports.registerListPlugin=Ee;exports.registerMarkPlugin=jt;exports.registerOverflowPlugin=Gt;exports.registerPlainTextPlugin=be;exports.registerRichTextPlugin=he;exports.registerSlashCommandsPlugin=Nt;exports.registerTablePlugin=Ne;exports.registerYjsPlugin=Me;exports.removeMark=zt;
|
package/dist/lexical/index.es.js
CHANGED
|
@@ -29,11 +29,11 @@ import { Use as ue, html as D, Task as Ke, attr as f, Value as U, WithElement as
|
|
|
29
29
|
import { L as qe } from "../link-portal-Cr2l9f3k.js";
|
|
30
30
|
import { T as Ye } from "../theme-kQZEeusG.js";
|
|
31
31
|
import { M as Et, a as le, b as Fo } from "../menu-BkqFGcXg.js";
|
|
32
|
-
import { B as ye, I as Z } from "../translations-
|
|
33
|
-
import { E as Ho, a as gt } from "../editor-toolbar-group-
|
|
32
|
+
import { B as ye, I as Z } from "../translations-DT5QQ4WO.js";
|
|
33
|
+
import { E as Ho, a as gt } from "../editor-toolbar-group-DWUWUO-B.js";
|
|
34
34
|
import { delayedAnimationFrame as Po } from "@tempots/std";
|
|
35
|
-
import { b as Bo, c as $o } from "../toolbar-
|
|
36
|
-
import { I as Uo } from "../input-container-
|
|
35
|
+
import { b as Bo, c as $o } from "../toolbar-BKan3NHw.js";
|
|
36
|
+
import { I as Uo } from "../input-container-CO3DNqpp.js";
|
|
37
37
|
const Vn = { separator: !0 };
|
|
38
38
|
class ge extends co {
|
|
39
39
|
static getType() {
|