@ostack.tech/ui-kform-scaffolder 0.15.3 → 0.15.5

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.
@@ -64,12 +64,12 @@ try {
64
64
  `;break;case T.modes.ESCAPED:this.source+=` ; __append(escapeFn(`+w(e)+`))
65
65
  `;break;case T.modes.RAW:this.source+=` ; __append(`+w(e)+`)
66
66
  `;break;case T.modes.COMMENT:break;case T.modes.LITERAL:this._addOutput(e);break}}else this._addOutput(e)}t.opts.compileDebug&&a&&(this.currentLine+=a,this.source+=` ; __line = `+this.currentLine+`
67
- `)}},e.escapeXML=r.escapeXML,e.__express=e.renderFile,e.VERSION=a,e.name=u,typeof window<`u`&&(window.ejs=e)})),U=dr(),Fr=u(fr()),Ir=Pr();function Lr(e){return{id:self.crypto.randomUUID(),kind:``,...e}}function Rr(e,t,n,r){let{schematic:i,removed:a}=zr(e,t);return Br(i,a,n,r)}function zr(e,t){if(e.id===t)return{schematic:null,removed:e};if(!e.children)return{schematic:e,removed:null};let n=[],r=null;for(let i of e.children){let{schematic:e,removed:a}=zr(i,t);e!==null&&n.push(e),a!==null&&(r=a)}return{schematic:{...e,children:n},removed:r}}function Br(e,t,n,r){if(e.id===n){let n=e.children??[],i=r===null?n.length:n.findIndex(e=>e.id===r);return{...e,children:[...n.slice(0,i),t,...n.slice(i)]}}return e.children?{...e,children:e.children.map(e=>Br(e,t,n,r))}:e}var Vr=(0,C.createContext)(null);function Hr(){let e=(0,C.useContext)(Vr);if(e===null)throw Error(`Schematic builder not in context.`);return e}function Ur(){let{name:e,setSchematic:t,latestSchematicFileHandleRef:n}=Hr();return(0,U.jsx)(`button`,{className:`builder-icon-button builder-action builder-load-schematic`,type:`button`,onClick:async()=>{try{let r=await Qn({extensions:[`.json`],mimeTypes:[`application/json`],description:`Form schematic`,id:e});n.current=r.handle??null;let i=JSON.parse(await r.text());t(()=>i)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;alert(`Unable to load schematic: ${e?.toString()}`)}},title:`Load schematic`,"aria-label":`Load schematic`,children:`📂`})}function Wr(){let{name:e,getRootSchematic:t,latestSchematicFileHandleRef:n}=Hr();return(0,U.jsx)(`button`,{className:`builder-icon-button builder-action builder-save-schematic`,type:`button`,onClick:async()=>{try{let r=t();n.current=await er(new Blob([JSON.stringify(r,null,2)]),{fileName:`${r.name}-schematic.json`,extensions:[`.json`],mimeTypes:[`application/json`],description:`Form schematic`,id:e},n.current),Xn&&alert(`Schematic saved successfully as “${n.current?.name??`unknown`}”.`)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;alert(`Unable to save schematic: ${e?.toString()}`)}},title:`Save schematic`,"aria-label":`Save schematic`,children:`💾`})}function Gr(e,t){return(n,r)=>e(n,{...r,...t})}function Kr(e,t,n){return!e||!t?e||t||``:`${e}${e.endsWith(n)?``:n}${t}`}function W(e,t){return Kr(e,t,`/`)}function qr(e,t){return Kr(e,t,`.`)}function Jr(e,t,n){let r=new Map,i={schematicKinds:n.schematicKinds,rootSchematic:e,files:r,currentPath:n.basePath??`/`,currentPackage:qr(n.basePackage,e.packageSuffix),currentDir:n.baseDir};for(let n of t)n(e,i);return Array.from(r).map(([e,t])=>({path:e,content:t.getContent(),base64:t.base64,binary:t.binary,executable:t.executable}))}function Yr(){let{basePath:e,basePackage:t,baseDir:n,schematicKinds:r,scaffolders:i,scaffoldingData:a,getRootSchematic:o}=Hr();return(0,C.useCallback)(()=>{let s=o(),c=typeof i==`function`?i(s):i,l=typeof a==`function`?a(s):a;return l&&(c=c.map(e=>Gr(e,l))),Jr(s,c,{schematicKinds:r,basePath:e,basePackage:t,baseDir:typeof n==`function`?n(s):n})},[n,t,e,o,i,a,r])}function Xr(){let{getRootSchematic:e,name:t}=Hr(),n=Yr();return(0,U.jsx)(`button`,{className:`builder-input builder-action builder-scaffold-zip`,type:`submit`,onClick:async r=>{r.preventDefault();try{let r=e(),i=n(),a=new Fr.default;for(let{path:e,content:t,base64:n,binary:r,executable:o}of i)a.file(e,t,{base64:n,binary:r,unixPermissions:o?`755`:void 0});let o=await er(a.generateAsync({platform:`UNIX`,type:`blob`}),{fileName:`${r.name}.zip`,extensions:[`.zip`],mimeTypes:[`application/zip`],description:`Form scaffolding`,id:t});Xn&&alert(`Project scaffolded successfully in “${o?.name??`unknown`}”.`)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;alert(`Unable to scaffold project: ${e?.toString()}`)}},children:`Scaffold 🏗️`})}function Zr(e,t){let{useSchematic:n,setSchematic:r}=Hr(),i=n(n=>n.config?.[e]??t),a=(0,C.useCallback)(t=>r(n=>({config:{...n.config,[e]:typeof t==`function`?t(n.config?.[e]):t}})),[e,r]);return(0,C.useMemo)(()=>[i,a],[i,a])}function Qr({disabled:e}){let[t,n]=Zr(`useFileBase64Serializer`,!1);return(0,U.jsx)(`div`,{className:`builder-config-field`,children:(0,U.jsxs)(`label`,{children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),disabled:e}),`Use `,(0,U.jsx)(`code`,{children:`File.Base64Serializer`})]})})}function $r({disabled:e}){let[t,n]=Zr(`useTableValuesSerializer`,!1);return(0,U.jsx)(`div`,{className:`builder-config-field`,children:(0,U.jsxs)(`label`,{children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),disabled:e}),`Use `,(0,U.jsx)(`code`,{children:`Table.ValuesSerializer`})]})})}var ei=[/^kotlin\.[^.]+$/,/^kotlin\.annotation\.[^.]+$/,/^kotlin\.collections\.[^.]+$/,/^kotlin\.comparisons\.[^.]+$/,/^kotlin\.io\.[^.]+$/,/^kotlin\.ranges\.[^.]+$/,/^kotlin\.sequences\.[^.]+$/,/^kotlin\.text\.[^.]+$/];function ti(e){return ei.some(t=>t.test(e))}function ni(e){return{package:e.currentPackage??``,imports:new Set,declarations:[],getContent:ri}}function ri(){return[this.package&&`package ${this.package}`,Array.from(this.imports).filter(e=>!ti(e)).sort().map(e=>`import ${e}`).join(`
67
+ `)}},e.escapeXML=r.escapeXML,e.__express=e.renderFile,e.VERSION=a,e.name=u,typeof window<`u`&&(window.ejs=e)})),U=dr(),Fr=u(fr()),Ir=Pr();function Lr(e){return{id:self.crypto.randomUUID(),kind:``,...e}}function Rr(e,t,n,r){let{schematic:i,removed:a}=zr(e,t);return Br(i,a,n,r)}function zr(e,t){if(e.id===t)return{schematic:null,removed:e};if(!e.children)return{schematic:e,removed:null};let n=[],r=null;for(let i of e.children){let{schematic:e,removed:a}=zr(i,t);e!==null&&n.push(e),a!==null&&(r=a)}return{schematic:{...e,children:n},removed:r}}function Br(e,t,n,r){if(e.id===n){let n=e.children??[],i=r===null?n.length:n.findIndex(e=>e.id===r);return{...e,children:[...n.slice(0,i),t,...n.slice(i)]}}return e.children?{...e,children:e.children.map(e=>Br(e,t,n,r))}:e}var Vr=(0,C.createContext)(null);function Hr(){let e=(0,C.useContext)(Vr);if(e===null)throw Error(`Schematic builder not in context.`);return e}function Ur(){let{name:e,setSchematic:t,latestSchematicFileHandleRef:n}=Hr();return(0,U.jsx)(`button`,{className:`builder-icon-button builder-action builder-load-schematic`,type:`button`,onClick:async()=>{try{let r=await Qn({extensions:[`.json`],mimeTypes:[`application/json`],description:`Form schematic`,id:e});n.current=r.handle??null;let i=JSON.parse(await r.text());t(()=>i)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;alert(`Unable to load schematic: ${e?.toString()}`)}},title:`Load schematic`,"aria-label":`Load schematic`,children:`📂`})}function Wr(){let{name:e,getRootSchematic:t,latestSchematicFileHandleRef:n}=Hr();return(0,U.jsx)(`button`,{className:`builder-icon-button builder-action builder-save-schematic`,type:`button`,onClick:async()=>{try{let r=t();n.current=await er(new Blob([JSON.stringify(r,null,2)]),{fileName:`${r.name}-schematic.json`,extensions:[`.json`],mimeTypes:[`application/json`],description:`Form schematic`,id:e},n.current),Xn&&alert(`Schematic saved successfully as “${n.current?.name??`unknown`}”.`)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;alert(`Unable to save schematic: ${e?.toString()}`)}},title:`Save schematic`,"aria-label":`Save schematic`,children:`💾`})}function Gr(e,t){return(n,r)=>e(n,{...r,...t})}function Kr(e,t,n){return!e||!t?e||t||``:`${e}${e.endsWith(n)?``:n}${t}`}function W(e,t){return Kr(e,t,`/`)}function qr(e,t){return Kr(e,t,`.`)}function Jr(e,t,n){let r=new Map,i={schematicKinds:n.schematicKinds,rootSchematic:e,files:r,currentPath:n.basePath??`/`,currentPackage:qr(n.basePackage,e.packageSuffix),currentDir:n.baseDir};for(let n of t)n(e,i);return Array.from(r).map(([e,t])=>({path:e,content:t.getContent(),base64:t.base64,binary:t.binary,executable:t.executable}))}function Yr(){let{basePath:e,basePackage:t,baseDir:n,schematicKinds:r,scaffolders:i,scaffoldingData:a,getRootSchematic:o}=Hr();return(0,C.useCallback)(()=>{let s=o(),c=typeof i==`function`?i(s):i,l=typeof a==`function`?a(s):a;return l&&(c=c.map(e=>Gr(e,l))),Jr(s,c,{schematicKinds:r,basePath:e,basePackage:t,baseDir:typeof n==`function`?n(s):n})},[n,t,e,o,i,a,r])}function Xr(){let{getRootSchematic:e,name:t}=Hr(),n=Yr();return(0,U.jsx)(`button`,{className:`builder-input builder-action builder-scaffold-zip`,type:`submit`,onClick:async r=>{r.preventDefault();try{let r=e(),i=n(),a=new Fr.default;for(let{path:e,content:t,base64:n,binary:r,executable:o}of i)a.file(e,t,{base64:n,binary:r,unixPermissions:o?`755`:void 0});let o=await er(a.generateAsync({platform:`UNIX`,type:`blob`}),{fileName:`${r.name}.zip`,extensions:[`.zip`],mimeTypes:[`application/zip`],description:`Form scaffolding`,id:t});Xn&&alert(`Project scaffolded successfully in “${o?.name??`unknown`}”.`)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;alert(`Unable to scaffold project: ${e?.toString()}`)}},children:`Scaffold 🏗️`})}function Zr(e,t){let{useSchematic:n,setSchematic:r}=Hr(),i=n(n=>n.config?.[e]??t),a=(0,C.useCallback)(t=>r(n=>({config:{...n.config,[e]:typeof t==`function`?t(n.config?.[e]):t}})),[e,r]);return(0,C.useMemo)(()=>[i,a],[i,a])}function Qr({disabled:e}){let[t,n]=Zr(`useFileBase64Serializer`,!1);return(0,U.jsx)(`div`,{className:`builder-config-field`,children:(0,U.jsxs)(`label`,{children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),disabled:e}),`Use `,(0,U.jsx)(`code`,{children:`FileBase64Serializer`})]})})}function $r({disabled:e}){let[t,n]=Zr(`useTableValuesSerializer`,!1);return(0,U.jsx)(`div`,{className:`builder-config-field`,children:(0,U.jsxs)(`label`,{children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),disabled:e}),`Use `,(0,U.jsx)(`code`,{children:`TableValuesSerializer`})]})})}var ei=[/^kotlin\.[^.]+$/,/^kotlin\.annotation\.[^.]+$/,/^kotlin\.collections\.[^.]+$/,/^kotlin\.comparisons\.[^.]+$/,/^kotlin\.io\.[^.]+$/,/^kotlin\.ranges\.[^.]+$/,/^kotlin\.sequences\.[^.]+$/,/^kotlin\.text\.[^.]+$/];function ti(e){return ei.some(t=>t.test(e))}function ni(e){return{package:e.currentPackage??``,imports:new Set,declarations:[],getContent:ri}}function ri(){return[this.package&&`package ${this.package}`,Array.from(this.imports).filter(e=>!ti(e)).sort().map(e=>`import ${e}`).join(`
68
68
  `),...this.declarations].filter(e=>e).join(`
69
69
 
70
70
  `)+`
71
71
  `}function ii(e){return e.substring(e.lastIndexOf(`.`)+1)}var ai=`kotlin.js.JsExport`,oi=`kotlinx.serialization.Serializable`;function si(e,t){return!e||e.length===0?t:[...typeof e==`string`?[e]:e,t].join(`
72
- `)}function ci(e,t){return t.currentFile.imports.add(ai),si(`@${ii(ai)}`,e)}function li(e,t){return t.currentFile.imports.add(oi),si(`@${ii(oi)}`,e)}function ui(e,t){let n=W(t.currentDir,`${e.name}.kt`),r=t.files.get(n);r||t.files.set(n,r=ni(t)),di(e,{...t,currentFile:r})}function di(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=t.currentFile.declarations.length;t.currentFile.declarations.push(``);let i=n.scaffoldModel?.(e,t)??`typealias ${e.name} = ${pi(e,t)}`;t.currentFile.declarations[r]=n.scaffoldModel?ci(li(i,t),t):i}function fi(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);return typeof n.propertyAnnotations==`function`?n.propertyAnnotations(e,t):n.propertyAnnotations}function pi(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=n.package??qr(t.currentPackage,e.packageSuffix),i=e.name||n.name;return r!==t.currentPackage&&t.currentFile.imports.add(qr(r,i)),n.package==null&&r!==t.currentPackage?ui(e,{...t,currentPackage:qr(t.currentPackage,e.packageSuffix),currentDir:W(t.currentDir,e.packageSuffix?.replace(`.`,`/`))}):n.scaffoldModel&&di(e,t),(n.scaffoldType?.(e,t)??i)+(e.nullable?`?`:``)}function mi(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);return e.nullable?`null`:typeof n.defaultValue==`function`?n.defaultValue(e,t):n.defaultValue}var hi=/([\p{Ll}\d])(\p{Lu})/gu,gi=/(\p{Lu})([\p{Lu}][\p{Ll}])/gu,_i=/(\d)\p{Ll}|(\p{L})\d/u,vi=/[^\p{L}\d]+/giu,yi=`$1\0$2`,bi=``;function xi(e){let t=e.trim();t=t.replace(hi,yi).replace(gi,yi),t=t.replace(vi,`\0`);let n=0,r=t.length;for(;t.charAt(n)===`\0`;)n++;if(n===r)return[];for(;t.charAt(r-1)===`\0`;)r--;return t.slice(n,r).split(/\0/g)}function Si(e){let t=xi(e);for(let e=0;e<t.length;e++){let n=t[e],r=_i.exec(n);if(r){let i=r.index+(r[1]??r[2]).length;t.splice(e,1,n.slice(0,i),n.slice(i))}}return t}function Ci(e,t){let[n,r,i]=G(e,t),a=Ti(t?.locale),o=Ei(t?.locale),s=t?.mergeAmbiguousCharacters?Di(a,o):Oi(a,o);return n+r.map((e,t)=>t===0?a(e):s(e,t)).join(t?.delimiter??``)+i}function wi(e,t){let[n,r,i]=G(e,t),a=Ti(t?.locale),o=Ei(t?.locale),s=t?.mergeAmbiguousCharacters?Di(a,o):Oi(a,o);return n+r.map(s).join(t?.delimiter??``)+i}function Ti(e){return e===!1?e=>e.toLowerCase():t=>t.toLocaleLowerCase(e)}function Ei(e){return e===!1?e=>e.toUpperCase():t=>t.toLocaleUpperCase(e)}function Di(e,t){return n=>`${t(n[0])}${e(n.slice(1))}`}function Oi(e,t){return(n,r)=>{let i=n[0];return(r>0&&i>=`0`&&i<=`9`?`_`+i:t(i))+e(n.slice(1))}}function G(e,t={}){let n=t.split??(t.separateNumbers?Si:xi),r=t.prefixCharacters??bi,i=t.suffixCharacters??bi,a=0,o=e.length;for(;a<e.length;){let t=e.charAt(a);if(!r.includes(t))break;a++}for(;o>a;){let t=o-1,n=e.charAt(t);if(!i.includes(n))break;o=t}return[e.slice(0,a),n(e.slice(a,o)),e.slice(o)]}function ki(e){return e?``:void 0}var Ai={onKeyDown:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation()};function ji(){let{schematicKinds:e,useSchematic:t,setSchematic:n}=Hr(),r=t(e=>e.kind),i=t(e=>e.collapsed);return e.get(r)?.builder?(0,U.jsx)(`button`,{type:`button`,className:`builder-child-marker`,title:i?`Expand`:`Collapse`,onClick:()=>n(e=>({collapsed:!e.collapsed})),...Ai,children:i?`▸`:`▾`}):(0,U.jsx)(`span`,{className:`builder-child-marker`,children:`•`})}function Mi(){let{removeSchematic:e}=Hr();return(0,U.jsx)(`button`,{className:`builder-icon-button builder-child-remove`,type:`button`,title:`Remove`,onClick:e,...Ai,children:`×`})}var Ni=`--KIND--`;function Pi(){let{schematicKinds:e,useSchematic:t,setSchematic:n,parentChildName:r}=Hr(),i=t(e=>e.kind);return(0,U.jsxs)(`select`,{className:`builder-input builder-schema`,value:i,onChange:t=>{let i=e.get(t.target.value);n({kind:t.target.value,packageSuffix:i?.defaultPackageSuffix?.(r),name:i?.defaultName?.(r),collapsed:!1,nullable:i?.nullable??i?.defaultNullable,children:i?.initChildren?.(r)})},required:!0,style:{width:`calc(${(i||Ni).length}ch + 1.85rem)`},...Ai,children:[(0,U.jsx)(`option`,{children:Ni}),Array.from(e.values()).filter(e=>!e.internal).map(e=>(0,U.jsx)(`option`,{value:e.kind,children:e.kind},e.kind))]})}function Fi(){let{schematicKinds:e,useSchematic:t,setSchematic:n}=Hr(),r=t(e=>e.kind),i=t(e=>!!e.nullable),a=e.get(r);return a&&a.nullable===void 0&&(0,U.jsx)(`input`,{className:`builder-input builder-nullable`,type:`checkbox`,title:`Nullable?`,checked:i,onChange:e=>n({nullable:e.target.checked}),...Ai})}var Ii=`package.suffix`,Li=`ClassName`;function Ri(){let{useSchematic:e,setSchematic:t,parentPackage:n}=Hr(),r=(0,C.useRef)(null),i=e(e=>e.packageSuffix),a=e(e=>e.name);return(0,U.jsxs)(`div`,{className:`builder-package-name`,children:[n&&(0,U.jsxs)(`span`,{className:`builder-package-prefix`,children:[n,`.`]}),(0,U.jsx)(`input`,{className:`builder-input builder-package`,placeholder:Ii,value:i??``,onChange:e=>t({packageSuffix:e.target.value}),pattern:`(([a-z_][a-z0-9_]*)(\\.([a-z_][a-z0-9_]*))*)?`,style:{width:`${(i||Ii).length}ch`},...Ai,ref:r}),(0,U.jsx)(`button`,{type:`button`,className:`builder-icon-button builder-edit-package`,onClick:()=>{let e=r.current;e.style.display=`initial`,e.focus(),e.style.display=``},children:`🖉`}),(0,U.jsx)(`span`,{className:`builder-operator`,children:`.`}),(0,U.jsx)(`input`,{className:`builder-input builder-name`,placeholder:Li,value:a??``,onChange:e=>t({name:e.target.value}),required:!0,pattern:`[a-zA-Z_][a-zA-Z0-9_]*`,style:{width:`${(a||Li).length}ch`},...Ai})]})}var zi=`class-field`;function Bi(){let e=Hr(),{useSchematic:t,setSchematic:n,draggedSchematic:r,disableDrop:i}=e,a=t(e=>e.id),o=t(e=>e.packageSuffix),s=t(e=>e.children)??[],c=r!=null&&r.id===s.at(-1)?.id,{setNodeRef:l,isOver:u}=On({id:`${a}-append`,data:{parentId:a,sortBefore:null,ignored:c},disabled:i||r?.type!==`class-field`});return(0,U.jsxs)(`div`,{className:`class-builder builder`,children:[(0,U.jsx)(Ri,{}),s.length===0&&(0,U.jsx)(`div`,{className:`builder-empty`,"data-over":ki(u),ref:l,children:`No fields.`}),s.length>0&&(0,U.jsxs)(`ul`,{className:`builder-children`,children:[s.map((i,c)=>(0,U.jsx)(Vr.Provider,{value:{...e,useSchematic:e=>t(t=>e(t.children[c])),setSchematic:e=>n(t=>({...t,children:t.children.map(t=>i===t?{...t,...typeof e==`function`?e(t):e}:t)})),removeSchematic:()=>n(e=>({...e,children:e.children.filter(e=>e!==i)})),parentPackage:qr(e.parentPackage,o),parentId:a,ignoreDrop:r!=null&&r.id===s[c-1]?.id},children:(0,U.jsx)(Hi,{})},i.id)),(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(u&&!c),ref:l})]}),(0,U.jsx)(`button`,{className:`builder-input builder-new-child`,type:`button`,onClick:()=>{n(e=>({...e,children:[...e.children??[],Lr({childName:``})]}))},...Ai,children:`Add field`})]})}var Vi=`fieldName`;function Hi(){let e=Hr(),{schematicKinds:t,useSchematic:n,setSchematic:r,draggedSchematic:i,parentId:a,disableDrop:o,ignoreDrop:s}=e,c=n(e=>e.id),l=n(e=>e.childName),u=n(e=>e.kind),d=n(e=>e.nullable),f=n(e=>e.collapsed),p=t.get(u)?.builder,{attributes:m,listeners:h,setNodeRef:g,isDragging:_}=wn({id:c,data:{type:zi,node:(0,U.jsxs)(U.Fragment,{children:[[l,u].filter(e=>e).join(`: `),d?`?`:``]})}}),v=_||s,{setNodeRef:y,isOver:b}=On({id:c,data:{parentId:a,sortBefore:c,ignored:v},disabled:o||i?.type!==`class-field`});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(b&&!v),ref:y}),(0,U.jsxs)(`li`,{className:`builder-child class-builder-field`,"data-dragging":ki(_),...h,...m,ref:g,"data-collapsible":ki(p!=null),children:[(0,U.jsxs)(`div`,{className:`builder-child-content`,children:[(0,U.jsx)(ji,{}),(0,U.jsx)(`input`,{className:`builder-input class-builder-field-id`,placeholder:Vi,value:l,onChange:e=>r({childName:e.target.value}),required:!0,pattern:`[a-zA-Z_][a-zA-Z0-9_]*`,style:{width:`${(l||Vi).length}ch`},...Ai}),(0,U.jsx)(`span`,{className:`builder-operator`,children:`∶`}),(0,U.jsx)(Vr.Provider,{value:{...e,parentChildName:l},children:(0,U.jsx)(Pi,{})}),(0,U.jsx)(Fi,{}),(0,U.jsx)(Mi,{})]}),p&&!f&&(0,U.jsx)(Vr.Provider,{value:{...e,parentChildName:l,disableDrop:o||_},children:(0,U.jsx)(p,{})})]})]})}var Ui=`enum-entry`;function Wi(){let e=Hr(),{useSchematic:t,setSchematic:n,draggedSchematic:r,disableDrop:i}=e,a=t(e=>e.id),o=t(e=>e.children)??[],s=r!=null&&r.id===o.at(-1)?.id,{setNodeRef:c,isOver:l}=On({id:`${a}-append`,data:{parentId:a,sortBefore:null,ignored:s},disabled:i||r?.type!==`enum-entry`});return(0,U.jsxs)(`div`,{className:`enum-builder builder`,children:[(0,U.jsx)(Ri,{}),o.length===0&&(0,U.jsx)(`div`,{className:`builder-empty`,"data-over":ki(l),ref:c,children:`No entries.`}),o.length>0&&(0,U.jsxs)(`ul`,{className:`builder-children`,children:[o.map((i,s)=>(0,U.jsx)(Vr.Provider,{value:{...e,useSchematic:e=>t(t=>e(t.children[s])),setSchematic:e=>n(t=>({...t,children:t.children.map(t=>i===t?{...t,...typeof e==`function`?e(t):e}:t)})),removeSchematic:()=>n(e=>({...e,children:e.children.filter(e=>e!==i)})),parentId:a,ignoreDrop:r!=null&&r.id===o[s-1]?.id},children:(0,U.jsx)(Ki,{})},i.id)),(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(l&&!s),ref:c})]}),(0,U.jsx)(`button`,{className:`builder-input builder-new-child`,type:`button`,onClick:()=>{n(e=>({...e,children:[...e.children??[],Lr({childName:``})]}))},...Ai,children:`Add entry`})]})}var Gi=`ENTRY_NAME`;function Ki(){let{schematicKinds:e,useSchematic:t,setSchematic:n,draggedSchematic:r,parentId:i,disableDrop:a,ignoreDrop:o}=Hr(),s=t(e=>e.id),c=t(e=>e.childName),l=t(e=>e.kind),u=e.get(l)?.builder,{attributes:d,listeners:f,setNodeRef:p,isDragging:m}=wn({id:s,data:{type:Ui,node:(0,U.jsx)(U.Fragment,{children:[c,l].filter(e=>e).join(`: `)})}}),h=m||o,{setNodeRef:g,isOver:_}=On({id:s,data:{parentId:i,sortBefore:s,ignored:h},disabled:a||r?.type!==`enum-entry`});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(_&&!h),ref:g}),(0,U.jsx)(`li`,{className:`builder-child`,"data-dragging":ki(m),...f,...d,ref:p,"data-collapsible":ki(u!=null),children:(0,U.jsxs)(`div`,{className:`builder-child-content`,children:[(0,U.jsx)(ji,{}),(0,U.jsx)(`input`,{className:`builder-input enum-builder-entry-id`,placeholder:Gi,value:c,onChange:e=>n({childName:e.target.value}),required:!0,pattern:`[a-zA-Z_][a-zA-Z0-9_]*`,style:{width:`${(c||Gi).length}ch`},...Ai}),(0,U.jsx)(Mi,{})]})})]})}function qi({showKindSelect:e=!0}){let t=Hr(),{useSchematic:n,setSchematic:r}=t,i=n(e=>e.id);return(0,U.jsx)(`div`,{className:`listable-builder builder`,children:(0,U.jsx)(Vr.Provider,{value:{...t,useSchematic:e=>n(t=>e(t.children[0])),setSchematic:e=>r(t=>({...t,children:[{...t.children[0],...typeof e==`function`?e(t.children[0]):e}]})),removeSchematic:()=>{},parentId:i},children:(0,U.jsx)(Yi,{showKindSelect:e})})})}function Ji(){return(0,U.jsx)(qi,{showKindSelect:!1})}function Yi({showKindSelect:e=!0}){let{schematicKinds:t,useSchematic:n}=Hr(),r=n(e=>e.kind),i=t.get(r)?.builder;return(0,U.jsxs)(U.Fragment,{children:[e&&(0,U.jsx)(Pi,{}),i&&(0,U.jsx)(i,{})]})}var Xi=/\r?\n/,Zi=/^\s*$/,Qi=/\s/,$i=/(^\r?\n)|(\r?\n$)/g;function ea(e,...t){let n=Math.min(...e.join(``).split(Xi).filter(ta).map(na)),r=``;for(let i=0;i<t.length;++i){let a=ia(e[i],n);r+=a,r+=ra(String(t[i]),na(a.split(Xi).at(-1)))}return r+=ia(e.at(-1),n),r.replace($i,``)}function ta(e){return!Zi.test(e)}function na(e){let t=0;for(let n of e){if(!Qi.test(n))break;++t}return t}function ra(e,t){let n=e.split(Xi),r=[n[0]];for(let e=1;e<n.length;++e){let i=n[e];r.push(i&&` `.repeat(t)+i)}return r.join(`
72
+ `)}function ci(e,t){return t.currentFile.imports.add(ai),si(`@${ii(ai)}`,e)}function li(e,t){return t.currentFile.imports.add(oi),si(`@${ii(oi)}`,e)}function ui(e,t){let n=W(t.currentDir,`${e.name}.kt`),r=t.files.get(n);r||t.files.set(n,r=ni(t)),di(e,{...t,currentFile:r})}function di(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=t.currentFile.declarations.length;t.currentFile.declarations.push(``);let i=n.scaffoldModel?.(e,t)??`typealias ${e.name} = ${pi(e,t)}`;t.currentFile.declarations[r]=n.scaffoldModel?ci(li(i,t),t):i}function fi(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);return typeof n.propertyAnnotations==`function`?n.propertyAnnotations(e,t):n.propertyAnnotations}function pi(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=n.package??qr(t.currentPackage,e.packageSuffix),i=e.name||n.name;return r!==t.currentPackage&&t.currentFile.imports.add(qr(r,i)),n.package==null&&r!==t.currentPackage?ui(e,{...t,currentPackage:qr(t.currentPackage,e.packageSuffix),currentDir:W(t.currentDir,e.packageSuffix?.replace(`.`,`/`))}):n.scaffoldModel&&di(e,t),(n.scaffoldType?.(e,t)??i)+(e.nullable?`?`:``)}function mi(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);return e.nullable?`null`:typeof n.defaultValue==`function`?n.defaultValue(e,t):n.defaultValue}var hi=/([\p{Ll}\d])(\p{Lu})/gu,gi=/(\p{Lu})([\p{Lu}][\p{Ll}])/gu,_i=/(\d)\p{Ll}|(\p{L})\d/u,vi=/[^\p{L}\d]+/giu,yi=`$1\0$2`,bi=``;function xi(e){let t=e.trim();t=t.replace(hi,yi).replace(gi,yi),t=t.replace(vi,`\0`);let n=0,r=t.length;for(;t.charAt(n)===`\0`;)n++;if(n===r)return[];for(;t.charAt(r-1)===`\0`;)r--;return t.slice(n,r).split(/\0/g)}function Si(e){let t=xi(e);for(let e=0;e<t.length;e++){let n=t[e],r=_i.exec(n);if(r){let i=r.index+(r[1]??r[2]).length;t.splice(e,1,n.slice(0,i),n.slice(i))}}return t}function Ci(e,t){let[n,r,i]=G(e,t),a=Ti(t?.locale),o=Ei(t?.locale),s=t?.mergeAmbiguousCharacters?Di(a,o):Oi(a,o);return n+r.map((e,t)=>t===0?a(e):s(e,t)).join(t?.delimiter??``)+i}function wi(e,t){let[n,r,i]=G(e,t),a=Ti(t?.locale),o=Ei(t?.locale),s=t?.mergeAmbiguousCharacters?Di(a,o):Oi(a,o);return n+r.map(s).join(t?.delimiter??``)+i}function Ti(e){return e===!1?e=>e.toLowerCase():t=>t.toLocaleLowerCase(e)}function Ei(e){return e===!1?e=>e.toUpperCase():t=>t.toLocaleUpperCase(e)}function Di(e,t){return n=>`${t(n[0])}${e(n.slice(1))}`}function Oi(e,t){return(n,r)=>{let i=n[0];return(r>0&&i>=`0`&&i<=`9`?`_`+i:t(i))+e(n.slice(1))}}function G(e,t={}){let n=t.split??(t.separateNumbers?Si:xi),r=t.prefixCharacters??bi,i=t.suffixCharacters??bi,a=0,o=e.length;for(;a<e.length;){let t=e.charAt(a);if(!r.includes(t))break;a++}for(;o>a;){let t=o-1,n=e.charAt(t);if(!i.includes(n))break;o=t}return[e.slice(0,a),n(e.slice(a,o)),e.slice(o)]}function ki(e){return e?``:void 0}var Ai={onKeyDown:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation()};function ji(){let{schematicKinds:e,useSchematic:t,setSchematic:n}=Hr(),r=t(e=>e.kind),i=t(e=>e.collapsed);return e.get(r)?.builder?(0,U.jsx)(`button`,{type:`button`,className:`builder-child-marker`,title:i?`Expand`:`Collapse`,onClick:()=>n(e=>({collapsed:!e.collapsed})),...Ai,children:i?`▸`:`▾`}):(0,U.jsx)(`span`,{className:`builder-child-marker`,children:`•`})}function Mi(){let{removeSchematic:e}=Hr();return(0,U.jsx)(`button`,{className:`builder-icon-button builder-child-remove`,type:`button`,title:`Remove`,onClick:e,...Ai,children:`×`})}var Ni=`--KIND--`;function Pi(){let{schematicKinds:e,useSchematic:t,setSchematic:n,parentChildName:r}=Hr(),i=t(e=>e.kind);return(0,U.jsxs)(`select`,{className:`builder-input builder-schema`,value:i,onChange:t=>{let i=e.get(t.target.value);n({kind:t.target.value,packageSuffix:i?.defaultPackageSuffix?.(r),name:i?.defaultName?.(r),collapsed:!1,nullable:i?.nullable??i?.defaultNullable,children:i?.initChildren?.(r)})},required:!0,style:{width:`calc(${(i||Ni).length}ch + 1.85rem)`},...Ai,children:[(0,U.jsx)(`option`,{children:Ni}),Array.from(e.values()).filter(e=>!e.internal).map(e=>(0,U.jsx)(`option`,{value:e.kind,children:e.kind},e.kind))]})}function Fi(){let{schematicKinds:e,useSchematic:t,setSchematic:n}=Hr(),r=t(e=>e.kind),i=t(e=>!!e.nullable),a=e.get(r);return a&&a.nullable===void 0&&(0,U.jsx)(`input`,{className:`builder-input builder-nullable`,type:`checkbox`,title:`Nullable?`,checked:i,onChange:e=>n({nullable:e.target.checked}),...Ai})}var Ii=`package.suffix`,Li=`ClassName`;function Ri(){let{useSchematic:e,setSchematic:t,parentPackage:n}=Hr(),r=(0,C.useRef)(null),i=e(e=>e.packageSuffix),a=e(e=>e.name);return(0,U.jsxs)(`div`,{className:`builder-package-name`,children:[n&&(0,U.jsxs)(`span`,{className:`builder-package-prefix`,children:[n,`.`]}),(0,U.jsx)(`input`,{className:`builder-input builder-package`,placeholder:Ii,value:i??``,onChange:e=>t({packageSuffix:e.target.value}),pattern:`(([a-z_][a-z0-9_]*)(\\.([a-z_][a-z0-9_]*))*)?`,style:{width:`${(i||Ii).length}ch`},...Ai,ref:r}),(0,U.jsx)(`button`,{type:`button`,className:`builder-icon-button builder-edit-package`,onClick:()=>{let e=r.current;e.style.display=`initial`,e.focus(),e.style.display=``},children:`🖉`}),(0,U.jsx)(`span`,{className:`builder-operator`,children:`.`}),(0,U.jsx)(`input`,{className:`builder-input builder-name`,placeholder:Li,value:a??``,onChange:e=>t({name:e.target.value}),required:!0,pattern:`[a-zA-Z_][a-zA-Z0-9_]*`,style:{width:`${(a||Li).length}ch`},...Ai})]})}var zi=`class-field`;function Bi(){let e=Hr(),{useSchematic:t,setSchematic:n,draggedSchematic:r,disableDrop:i}=e,a=t(e=>e.id),o=t(e=>e.packageSuffix),s=t(e=>e.children)??[],c=r!=null&&r.id===s.at(-1)?.id,{setNodeRef:l,isOver:u}=On({id:`${a}-append`,data:{parentId:a,sortBefore:null,ignored:c},disabled:i||r?.type!==`class-field`});return(0,U.jsxs)(`div`,{className:`class-builder builder`,children:[(0,U.jsx)(Ri,{}),s.length===0&&(0,U.jsx)(`div`,{className:`builder-empty`,"data-over":ki(u),ref:l,children:`No fields.`}),s.length>0&&(0,U.jsxs)(`ul`,{className:`builder-children`,children:[s.map((i,c)=>(0,U.jsx)(Vr,{value:{...e,useSchematic:e=>t(t=>e(t.children[c])),setSchematic:e=>n(t=>({...t,children:t.children.map(t=>i===t?{...t,...typeof e==`function`?e(t):e}:t)})),removeSchematic:()=>n(e=>({...e,children:e.children.filter(e=>e!==i)})),parentPackage:qr(e.parentPackage,o),parentId:a,ignoreDrop:r!=null&&r.id===s[c-1]?.id},children:(0,U.jsx)(Hi,{})},i.id)),(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(u&&!c),ref:l})]}),(0,U.jsx)(`button`,{className:`builder-input builder-new-child`,type:`button`,onClick:()=>{n(e=>({...e,children:[...e.children??[],Lr({childName:``})]}))},...Ai,children:`Add field`})]})}var Vi=`fieldName`;function Hi(){let e=Hr(),{schematicKinds:t,useSchematic:n,setSchematic:r,draggedSchematic:i,parentId:a,disableDrop:o,ignoreDrop:s}=e,c=n(e=>e.id),l=n(e=>e.childName),u=n(e=>e.kind),d=n(e=>e.nullable),f=n(e=>e.collapsed),p=t.get(u)?.builder,{attributes:m,listeners:h,setNodeRef:g,isDragging:_}=wn({id:c,data:{type:zi,node:(0,U.jsxs)(U.Fragment,{children:[[l,u].filter(e=>e).join(`: `),d?`?`:``]})}}),v=_||s,{setNodeRef:y,isOver:b}=On({id:c,data:{parentId:a,sortBefore:c,ignored:v},disabled:o||i?.type!==`class-field`});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(b&&!v),ref:y}),(0,U.jsxs)(`li`,{className:`builder-child class-builder-field`,"data-dragging":ki(_),...h,...m,ref:g,"data-collapsible":ki(p!=null),children:[(0,U.jsxs)(`div`,{className:`builder-child-content`,children:[(0,U.jsx)(ji,{}),(0,U.jsx)(`input`,{className:`builder-input class-builder-field-id`,placeholder:Vi,value:l,onChange:e=>r({childName:e.target.value}),required:!0,pattern:`[a-zA-Z_][a-zA-Z0-9_]*`,style:{width:`${(l||Vi).length}ch`},...Ai}),(0,U.jsx)(`span`,{className:`builder-operator`,children:`∶`}),(0,U.jsx)(Vr,{value:{...e,parentChildName:l},children:(0,U.jsx)(Pi,{})}),(0,U.jsx)(Fi,{}),(0,U.jsx)(Mi,{})]}),p&&!f&&(0,U.jsx)(Vr,{value:{...e,parentChildName:l,disableDrop:o||_},children:(0,U.jsx)(p,{})})]})]})}var Ui=`enum-entry`;function Wi(){let e=Hr(),{useSchematic:t,setSchematic:n,draggedSchematic:r,disableDrop:i}=e,a=t(e=>e.id),o=t(e=>e.children)??[],s=r!=null&&r.id===o.at(-1)?.id,{setNodeRef:c,isOver:l}=On({id:`${a}-append`,data:{parentId:a,sortBefore:null,ignored:s},disabled:i||r?.type!==`enum-entry`});return(0,U.jsxs)(`div`,{className:`enum-builder builder`,children:[(0,U.jsx)(Ri,{}),o.length===0&&(0,U.jsx)(`div`,{className:`builder-empty`,"data-over":ki(l),ref:c,children:`No entries.`}),o.length>0&&(0,U.jsxs)(`ul`,{className:`builder-children`,children:[o.map((i,s)=>(0,U.jsx)(Vr,{value:{...e,useSchematic:e=>t(t=>e(t.children[s])),setSchematic:e=>n(t=>({...t,children:t.children.map(t=>i===t?{...t,...typeof e==`function`?e(t):e}:t)})),removeSchematic:()=>n(e=>({...e,children:e.children.filter(e=>e!==i)})),parentId:a,ignoreDrop:r!=null&&r.id===o[s-1]?.id},children:(0,U.jsx)(Ki,{})},i.id)),(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(l&&!s),ref:c})]}),(0,U.jsx)(`button`,{className:`builder-input builder-new-child`,type:`button`,onClick:()=>{n(e=>({...e,children:[...e.children??[],Lr({childName:``})]}))},...Ai,children:`Add entry`})]})}var Gi=`ENTRY_NAME`;function Ki(){let{schematicKinds:e,useSchematic:t,setSchematic:n,draggedSchematic:r,parentId:i,disableDrop:a,ignoreDrop:o}=Hr(),s=t(e=>e.id),c=t(e=>e.childName),l=t(e=>e.kind),u=e.get(l)?.builder,{attributes:d,listeners:f,setNodeRef:p,isDragging:m}=wn({id:s,data:{type:Ui,node:(0,U.jsx)(U.Fragment,{children:[c,l].filter(e=>e).join(`: `)})}}),h=m||o,{setNodeRef:g,isOver:_}=On({id:s,data:{parentId:i,sortBefore:s,ignored:h},disabled:a||r?.type!==`enum-entry`});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`li`,{className:`builder-child-droppable`,"data-over":ki(_&&!h),ref:g}),(0,U.jsx)(`li`,{className:`builder-child`,"data-dragging":ki(m),...f,...d,ref:p,"data-collapsible":ki(u!=null),children:(0,U.jsxs)(`div`,{className:`builder-child-content`,children:[(0,U.jsx)(ji,{}),(0,U.jsx)(`input`,{className:`builder-input enum-builder-entry-id`,placeholder:Gi,value:c,onChange:e=>n({childName:e.target.value}),required:!0,pattern:`[a-zA-Z_][a-zA-Z0-9_]*`,style:{width:`${(c||Gi).length}ch`},...Ai}),(0,U.jsx)(Mi,{})]})})]})}function qi({showKindSelect:e=!0}){let t=Hr(),{useSchematic:n,setSchematic:r}=t,i=n(e=>e.id);return(0,U.jsx)(`div`,{className:`listable-builder builder`,children:(0,U.jsx)(Vr,{value:{...t,useSchematic:e=>n(t=>e(t.children[0])),setSchematic:e=>r(t=>({...t,children:[{...t.children[0],...typeof e==`function`?e(t.children[0]):e}]})),removeSchematic:()=>{},parentId:i},children:(0,U.jsx)(Yi,{showKindSelect:e})})})}function Ji(){return(0,U.jsx)(qi,{showKindSelect:!1})}function Yi({showKindSelect:e=!0}){let{schematicKinds:t,useSchematic:n}=Hr(),r=n(e=>e.kind),i=t.get(r)?.builder;return(0,U.jsxs)(U.Fragment,{children:[e&&(0,U.jsx)(Pi,{}),i&&(0,U.jsx)(i,{})]})}var Xi=/\r?\n/,Zi=/^\s*$/,Qi=/\s/,$i=/(^\r?\n)|(\r?\n$)/g;function ea(e,...t){let n=Math.min(...e.join(``).split(Xi).filter(ta).map(na)),r=``;for(let i=0;i<t.length;++i){let a=ia(e[i],n);r+=a,r+=ra(String(t[i]),na(a.split(Xi).at(-1)))}return r+=ia(e.at(-1),n),r.replace($i,``)}function ta(e){return!Zi.test(e)}function na(e){let t=0;for(let n of e){if(!Qi.test(n))break;++t}return t}function ra(e,t){let n=e.split(Xi),r=[n[0]];for(let e=1;e<n.length;++e){let i=n[e];r.push(i&&` `.repeat(t)+i)}return r.join(`
73
73
  `)}function ia(e,t){let n=e.split(Xi),r=[n[0]];for(let e=1;e<n.length;++e)r.push(n[e].slice(t));return r.join(`
74
74
  `)}var aa=`tech.ostack.kform.schemas.NullableSchema`,oa={kind:`Any`,package:`kotlin`,name:`Any`,schema:`tech.ostack.kform.schemas.AnySchema`,nullable:!1,defaultValue:`null`,scaffoldType:()=>`Any?`},sa={kind:`BigDecimal`,package:`tech.ostack.kform.datatypes`,name:`BigDecimal`,schema:`tech.ostack.kform.schemas.BigDecimalSchema`,defaultNullable:!0,defaultValue:`BigDecimal.ZERO`},ca={kind:`BigInteger`,package:`tech.ostack.kform.datatypes`,name:`BigInteger`,schema:`tech.ostack.kform.schemas.BigIntegerSchema`,defaultNullable:!0,defaultValue:`BigInteger.ZERO`},la={kind:`Boolean`,package:`kotlin`,name:`Boolean`,schema:`tech.ostack.kform.schemas.BooleanSchema`,defaultValue:`false`},ua={kind:`Byte`,package:`kotlin`,name:`Byte`,schema:`tech.ostack.kform.schemas.ByteSchema`,defaultNullable:!0,defaultValue:`0.toByte()`},da={kind:`Char`,package:`kotlin`,name:`Char`,schema:`tech.ostack.kform.schemas.CharSchema`,defaultNullable:!0,defaultValue:`0.toChar()`},fa={kind:`Class`,schema:`tech.ostack.kform.schemas.ClassSchema`,defaultValue:e=>`${e.name}()`,builder:Bi,initChildren:()=>[],defaultPackageSuffix:e=>e.toLowerCase(),defaultName:e=>wi(e),scaffoldModel:(e,t)=>ea`
75
75
  data class ${e.name}(
@@ -86,7 +86,7 @@ try {
86
86
  ${e.children?.map(e=>e.childName).join(`,
87
87
  `)}
88
88
  }
89
- `},ha={kind:`File`,package:`tech.ostack.kform.datatypes`,name:`File`,schema:`tech.ostack.kform.schemas.FileSchema`,defaultNullable:!0,defaultValue:(e,t)=>(t.currentFile.imports.add(`tech.ostack.kform.datatypes.emptyPlaceholderFile`),`emptyPlaceholderFile()`),propertyAnnotations:(e,t)=>t.useFileBase64Serializer?`@Serializable(with = File.Base64Serializer::class)`:void 0},ga={kind:`Float`,package:`kotlin`,name:`Float`,schema:`tech.ostack.kform.schemas.FloatSchema`,defaultNullable:!0,defaultValue:`0f`},_a={kind:`Instant`,package:`kotlin.time`,name:`Instant`,schema:`tech.ostack.kform.schemas.InstantSchema`,defaultNullable:!0,defaultValue:`Instant.fromEpochMilliseconds(0)`},va={kind:`Int`,package:`kotlin`,name:`Int`,schema:`tech.ostack.kform.schemas.IntSchema`,defaultNullable:!0,defaultValue:`0`},ya={kind:`List`,package:`kotlin.collections`,name:`List`,schema:`tech.ostack.kform.schemas.ListSchema`,defaultValue:`emptyList()`,builder:qi,initChildren:()=>[Lr()],scaffoldType:(e,t)=>`List<${pi(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})}>`,scaffoldSchema:(e,t)=>`ListSchema { ${ka(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})} }`},ba={kind:`LocalDate`,package:`kotlinx.datetime`,name:`LocalDate`,schema:`tech.ostack.kform.schemas.LocalDateSchema`,defaultNullable:!0,defaultValue:`LocalDate(1970, 1, 1)`},xa={kind:`LocalDateTime`,package:`kotlinx.datetime`,name:`LocalDateTime`,schema:`tech.ostack.kform.schemas.LocalDateTimeSchema`,defaultNullable:!0,defaultValue:`LocalDateTime(1970, 1, 1, 0, 0)`},Sa={kind:`Long`,package:`kotlin`,name:`Long`,schema:`tech.ostack.kform.schemas.LongSchema`,defaultNullable:!0,defaultValue:`0L`},Ca={kind:`Short`,package:`kotlin`,name:`Short`,schema:`tech.ostack.kform.schemas.ShortSchema`,defaultNullable:!0,defaultValue:`0.toShort()`},wa={kind:`String`,package:`kotlin`,name:`String`,schema:`tech.ostack.kform.schemas.StringSchema`,defaultValue:`""`},Ta={kind:`Table`,package:`tech.ostack.kform.datatypes`,name:`Table`,schema:`tech.ostack.kform.schemas.TableSchema`,defaultValue:(e,t)=>(t.currentFile.imports.add(`tech.ostack.kform.datatypes.tableOf`),`tableOf()`),builder:qi,initChildren:()=>[Lr()],propertyAnnotations:(e,t)=>t.useTableValuesSerializer?`@Serializable(with = Table.ValuesSerializer::class)`:void 0,scaffoldType:(e,t)=>`Table<${pi(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})}>`,scaffoldSchema:(e,t)=>`TableSchema { ${ka(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})} }`},Ea=[oa,sa,ca,la,ua,da,fa,pa,ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,wa,Ta];function Da(e,t){let n=W(t.currentDir,`${e.name}Schema.kt`),r=t.files.get(n);r||(t.files.set(n,r=ni(t)),t.files.set(W(t.currentDir,`${e.name}Validations.kt`),ni(t))),Oa(e,{...t,currentFile:r})}function Oa(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=t.currentFile.declarations.length;t.currentFile.declarations.push(``);let i=`val ${e.name}Schema = ${n.scaffoldSchema?.(e,t)??`${ii(n.schema)}()`}`;t.currentFile.imports.add(n.schema),t.currentFile.declarations[r]=t.currentPath===`/`?ci(i,t):i}function ka(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=n.package??qr(t.currentPackage,e.packageSuffix),i;return n.package==null&&r!==t.currentPackage?(i=`${e.name}Schema`,t.currentFile.imports.add(`${r}.${i}`),Da(e,{...t,currentPackage:qr(t.currentPackage,e.packageSuffix),currentDir:W(t.currentDir,e.packageSuffix?.replace(`.`,`/`))})):(i=n.scaffoldSchema?.(e,t)??`${ii(n.schema)}()`,t.currentFile.imports.add(n.schema)),e.nullable?(t.currentFile.imports.add(aa),`${ii(aa)} { ${i} }`):i}var Aa=`package <%= filePackage %>
89
+ `},ha={kind:`File`,package:`tech.ostack.kform.datatypes`,name:`File`,schema:`tech.ostack.kform.schemas.FileSchema`,defaultNullable:!0,defaultValue:(e,t)=>(t.currentFile.imports.add(`tech.ostack.kform.datatypes.emptyPlaceholderFile`),`emptyPlaceholderFile()`),propertyAnnotations:(e,t)=>{if(t.useFileBase64Serializer)return t.currentFile.imports.add(`tech.ostack.kform.serializers.FileBase64Serializer`),`@Serializable(with = FileBase64Serializer::class)`}},ga={kind:`Float`,package:`kotlin`,name:`Float`,schema:`tech.ostack.kform.schemas.FloatSchema`,defaultNullable:!0,defaultValue:`0f`},_a={kind:`Instant`,package:`kotlin.time`,name:`Instant`,schema:`tech.ostack.kform.schemas.InstantSchema`,defaultNullable:!0,defaultValue:`Instant.fromEpochMilliseconds(0)`},va={kind:`Int`,package:`kotlin`,name:`Int`,schema:`tech.ostack.kform.schemas.IntSchema`,defaultNullable:!0,defaultValue:`0`},ya={kind:`List`,package:`kotlin.collections`,name:`List`,schema:`tech.ostack.kform.schemas.ListSchema`,defaultValue:`emptyList()`,builder:qi,initChildren:()=>[Lr()],scaffoldType:(e,t)=>`List<${pi(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})}>`,scaffoldSchema:(e,t)=>`ListSchema { ${ka(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})} }`},ba={kind:`LocalDate`,package:`kotlinx.datetime`,name:`LocalDate`,schema:`tech.ostack.kform.schemas.LocalDateSchema`,defaultNullable:!0,defaultValue:`LocalDate(1970, 1, 1)`},xa={kind:`LocalDateTime`,package:`kotlinx.datetime`,name:`LocalDateTime`,schema:`tech.ostack.kform.schemas.LocalDateTimeSchema`,defaultNullable:!0,defaultValue:`LocalDateTime(1970, 1, 1, 0, 0)`},Sa={kind:`Long`,package:`kotlin`,name:`Long`,schema:`tech.ostack.kform.schemas.LongSchema`,defaultNullable:!0,defaultValue:`0L`},Ca={kind:`Short`,package:`kotlin`,name:`Short`,schema:`tech.ostack.kform.schemas.ShortSchema`,defaultNullable:!0,defaultValue:`0.toShort()`},wa={kind:`String`,package:`kotlin`,name:`String`,schema:`tech.ostack.kform.schemas.StringSchema`,defaultValue:`""`},Ta={kind:`Table`,package:`tech.ostack.kform.datatypes`,name:`Table`,schema:`tech.ostack.kform.schemas.TableSchema`,defaultValue:(e,t)=>(t.currentFile.imports.add(`tech.ostack.kform.datatypes.tableOf`),`tableOf()`),builder:qi,initChildren:()=>[Lr()],propertyAnnotations:(e,t)=>{if(t.useTableValuesSerializer)return t.currentFile.imports.add(`tech.ostack.kform.serializers.TableValuesSerializer`),`@Serializable(with = TableValuesSerializer::class)`},scaffoldType:(e,t)=>`Table<${pi(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})}>`,scaffoldSchema:(e,t)=>`TableSchema { ${ka(e.children[0],{...t,currentPath:W(t.currentPath,`*`)})} }`},Ea=[oa,sa,ca,la,ua,da,fa,pa,ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,wa,Ta];function Da(e,t){let n=W(t.currentDir,`${e.name}Schema.kt`),r=t.files.get(n);r||(t.files.set(n,r=ni(t)),t.files.set(W(t.currentDir,`${e.name}Validations.kt`),ni(t))),Oa(e,{...t,currentFile:r})}function Oa(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=t.currentFile.declarations.length;t.currentFile.declarations.push(``);let i=`val ${e.name}Schema = ${n.scaffoldSchema?.(e,t)??`${ii(n.schema)}()`}`;t.currentFile.imports.add(n.schema),t.currentFile.declarations[r]=t.currentPath===`/`?ci(i,t):i}function ka(e,t){let n=t.schematicKinds.get(e.kind);if(!n)throw Error(`Unknown schematic kind ${e.kind}`);let r=n.package??qr(t.currentPackage,e.packageSuffix),i;return n.package==null&&r!==t.currentPackage?(i=`${e.name}Schema`,t.currentFile.imports.add(`${r}.${i}`),Da(e,{...t,currentPackage:qr(t.currentPackage,e.packageSuffix),currentDir:W(t.currentDir,e.packageSuffix?.replace(`.`,`/`))})):(i=n.scaffoldSchema?.(e,t)??`${ii(n.schema)}()`,t.currentFile.imports.add(n.schema)),e.nullable?(t.currentFile.imports.add(aa),`${ii(aa)} { ${i} }`):i}var Aa=`package <%= filePackage %>
90
90
 
91
91
  import kotlin.js.JsExport
92
92
  import kotlin.jvm.JvmOverloads
@@ -170,7 +170,7 @@ suspend fun assert<%= formClass %>NotContainsWarning(
170
170
  LocatedValidationWarning(path, code),
171
171
  validate<%= formClass %>(<%= formVar %>, path, externalContexts),
172
172
  )
173
- `;function Ia(e,t){Na(t,`${e.name}Validator.kt`,Fa,{filePackage:t.currentPackage,formVar:Ci(e.name),formClass:e.name})}var La=typeof document<`u`?C.useLayoutEffect:()=>{};function Ra(e,t){La(()=>{if(!e){t(void 0);return}let n=()=>t(e.getBoundingClientRect());n();let r=new ResizeObserver(([e])=>e&&n());return r.observe(e),window.addEventListener(`resize`,n),()=>{r.disconnect(),window.removeEventListener(`resize`,n),t(void 0)}},[e,t])}function za({children:e}){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(null);return Ra(t,e=>{r&&e&&(r.style.setProperty(`--anchor-top`,`${e.top}px`),r.style.setProperty(`--anchor-left`,`${e.left}px`),r.style.setProperty(`--anchor-bottom`,`${e.bottom}px`),r.style.setProperty(`--anchor-right`,`${e.right}px`),r.style.setProperty(`--anchor-width`,`${e.width}px`),r.style.setProperty(`--anchor-height`,`${e.height}px`))}),Ra(r,e=>{r&&e&&(r.style.setProperty(`--width`,`${e.width}px`),r.style.setProperty(`--height`,`${e.height}px`))}),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`button`,{type:`button`,className:`builder-icon-button builder-action builder-config-schematic`,popoverTarget:`builder-config-popover`,title:`Config`,"aria-label":`Config`,ref:n,children:`⚙️`}),(0,U.jsx)(`div`,{popover:``,id:`builder-config-popover`,ref:i,children:e})]})}var Ba={currentDir:`shared/src/commonMain/kotlin`},Va={currentDir:`shared/src/commonTest/kotlin`};function Ha({name:e=`kform`,title:t=document.title,basePath:n,basePackage:r,baseDir:i,defaultRootClassPackage:a=`org.example`,defaultRootClassName:o=`MyForm`,schematicKinds:s=Ea,scaffolders:c=[Gr(Da,Ba),Gr(ui,Ba),Gr(Pa,Ba),Gr(Ia,Va)],scaffoldingData:l=e=>e.config,actions:u=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Ur,{}),(0,U.jsx)(Wr,{}),(0,U.jsx)(Xr,{})]}),configs:d=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Qr,{}),(0,U.jsx)($r,{})]}),version:f=`0.35.0`}){let[p]=(0,C.useState)(()=>Kn(Yn(()=>Lr({kind:fa.kind,packageSuffix:a,name:o,children:[]}),{name:e}))),m=(0,C.useMemo)(()=>new Map(s.sort((e,t)=>e.kind.localeCompare(t.kind)).map(e=>[e.kind,e])),[s]),h=(0,C.useRef)(null),[g,_]=(0,C.useState)(null),v=Se(xe(St,{activationConstraint:{distance:10,delay:400,tolerance:20}}),xe(_t));return(0,U.jsx)(Vr.Provider,{value:{name:e,basePath:n,basePackage:r,baseDir:i,schematicKinds:m,scaffolders:c,scaffoldingData:l,getRootSchematic:p.getState,useSchematic:p,setSchematic:p.setState,removeSchematic:()=>{},parentPackage:r,draggedSchematic:g,latestSchematicFileHandleRef:h},children:(0,U.jsxs)(bn,{sensors:v,collisionDetection:Ae,onDragStart:e=>_({id:e.active.id,...e.active.data.current}),onDragEnd:e=>{let{parentId:t,sortBefore:n,ignored:r}=e.over?.data.current??{};r||p.setState(r=>Rr(r,e.active.id,t,n)),_(null)},children:[(0,U.jsxs)(`form`,{className:`builder-root`,children:[(0,U.jsxs)(`header`,{className:`builder-header`,children:[(0,U.jsx)(`h1`,{className:`builder-title`,children:t}),f&&(0,U.jsx)(`div`,{className:`builder-version`,children:f}),(0,U.jsxs)(`div`,{className:`builder-actions`,children:[d&&(0,U.jsx)(za,{children:d}),u]})]}),(0,U.jsx)(Bi,{})]}),(0,U.jsx)(Bn,{children:g&&(0,U.jsx)(`div`,{className:`builder-dragged`,children:g.node})})]})})}function Ua(e,t){return{...t,content:e,getContent:Wa}}function Wa(){return this.content}function Ga(e,t,n,r){e.files.set(W(e.currentDir,t),Ua(n,r))}function Ka(){return{imports:[],declarations:[],getContent:qa}}function qa(){return[Ja(this.imports).sort((e,t)=>e.moduleName.localeCompare(t.moduleName)).map(e=>Ya(e)).join(`
173
+ `;function Ia(e,t){Na(t,`${e.name}Validator.kt`,Fa,{filePackage:t.currentPackage,formVar:Ci(e.name),formClass:e.name})}var La=typeof document<`u`?C.useLayoutEffect:C.useEffect;function Ra(e,t){La(()=>{if(!e){t(void 0);return}let n=()=>t(e.getBoundingClientRect());n();let r=new ResizeObserver(([e])=>e&&n());return r.observe(e),window.addEventListener(`resize`,n),()=>{r.disconnect(),window.removeEventListener(`resize`,n),t(void 0)}},[e,t])}function za({children:e}){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(null);return Ra(t,e=>{r&&e&&(r.style.setProperty(`--anchor-top`,`${e.top}px`),r.style.setProperty(`--anchor-left`,`${e.left}px`),r.style.setProperty(`--anchor-bottom`,`${e.bottom}px`),r.style.setProperty(`--anchor-right`,`${e.right}px`),r.style.setProperty(`--anchor-width`,`${e.width}px`),r.style.setProperty(`--anchor-height`,`${e.height}px`))}),Ra(r,e=>{r&&e&&(r.style.setProperty(`--width`,`${e.width}px`),r.style.setProperty(`--height`,`${e.height}px`))}),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`button`,{type:`button`,className:`builder-icon-button builder-action builder-config-schematic`,popoverTarget:`builder-config-popover`,title:`Config`,"aria-label":`Config`,ref:n,children:`⚙️`}),(0,U.jsx)(`div`,{popover:``,id:`builder-config-popover`,ref:i,children:e})]})}var Ba={currentDir:`shared/src/commonMain/kotlin`},Va={currentDir:`shared/src/commonTest/kotlin`};function Ha({name:e=`kform`,title:t=document.title,basePath:n,basePackage:r,baseDir:i,defaultRootClassPackage:a=`org.example`,defaultRootClassName:o=`MyForm`,schematicKinds:s=Ea,scaffolders:c=[Gr(Da,Ba),Gr(ui,Ba),Gr(Pa,Ba),Gr(Ia,Va)],scaffoldingData:l=e=>e.config,actions:u=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Ur,{}),(0,U.jsx)(Wr,{}),(0,U.jsx)(Xr,{})]}),configs:d=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Qr,{}),(0,U.jsx)($r,{})]}),version:f=`0.36.0`}){let[p]=(0,C.useState)(()=>Kn(Yn(()=>Lr({kind:fa.kind,packageSuffix:a,name:o,children:[]}),{name:e}))),m=(0,C.useMemo)(()=>new Map(s.sort((e,t)=>e.kind.localeCompare(t.kind)).map(e=>[e.kind,e])),[s]),h=(0,C.useRef)(null),[g,_]=(0,C.useState)(null),v=Se(xe(St,{activationConstraint:{distance:10,delay:400,tolerance:20}}),xe(_t));return(0,U.jsx)(Vr,{value:{name:e,basePath:n,basePackage:r,baseDir:i,schematicKinds:m,scaffolders:c,scaffoldingData:l,getRootSchematic:p.getState,useSchematic:p,setSchematic:p.setState,removeSchematic:()=>{},parentPackage:r,draggedSchematic:g,latestSchematicFileHandleRef:h},children:(0,U.jsxs)(bn,{sensors:v,collisionDetection:Ae,onDragStart:e=>_({id:e.active.id,...e.active.data.current}),onDragEnd:e=>{let{parentId:t,sortBefore:n,ignored:r}=e.over?.data.current??{};r||p.setState(r=>Rr(r,e.active.id,t,n)),_(null)},children:[(0,U.jsxs)(`form`,{className:`builder-root`,children:[(0,U.jsxs)(`header`,{className:`builder-header`,children:[(0,U.jsx)(`h1`,{className:`builder-title`,children:t}),f&&(0,U.jsx)(`div`,{className:`builder-version`,children:f}),(0,U.jsxs)(`div`,{className:`builder-actions`,children:[d&&(0,U.jsx)(za,{children:d}),u]})]}),(0,U.jsx)(Bi,{})]}),(0,U.jsx)(Bn,{children:g&&(0,U.jsx)(`div`,{className:`builder-dragged`,children:g.node})})]})})}function Ua(e,t){return{...t,content:e,getContent:Wa}}function Wa(){return this.content}function Ga(e,t,n,r){e.files.set(W(e.currentDir,t),Ua(n,r))}function Ka(){return{imports:[],declarations:[],getContent:qa}}function qa(){return[Ja(this.imports).sort((e,t)=>e.moduleName.localeCompare(t.moduleName)).map(e=>Ya(e)).join(`
174
174
  `),...this.declarations].filter(e=>e).join(`
175
175
 
176
176
  `)+`
@@ -655,11 +655,11 @@ org.gradle.caching=true
655
655
  org.gradle.configuration-cache=true
656
656
  `,Ds=`[versions]
657
657
  # Plugins
658
- kotlin = "2.3.21"
658
+ kotlin = "2.4.0"
659
659
  nodeGradle = "7.1.0"
660
660
  # Libraries
661
- kotlinxCoroutines = "1.11.0"
662
661
  kform = "<%= kFormVersion %>"
662
+ kotlinxCoroutines = "1.11.0"
663
663
  <%_ if (includeKotlinxDatetime) { -%>
664
664
  kotlinxDatetime = "0.8.0"
665
665
  <%_ } -%>
@@ -684,6 +684,7 @@ nodejs = "<%= nodejsVersion %>"
684
684
  [libraries]
685
685
  kform = { module = "tech.ostack:kform", version.ref = "kform" }
686
686
  kform-jsBindings = { module = "tech.ostack:kform-js-bindings", version.ref = "kform" }
687
+ kform-test = { module = "tech.ostack:kform-test", version.ref = "kform" }
687
688
  kotlinxCoroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
688
689
  <%_ if (includeKotlinxDatetime) { -%>
689
690
  kotlinxDatetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" }
@@ -840,6 +841,7 @@ kotlin {
840
841
  }
841
842
  commonTest.dependencies {
842
843
  implementation(kotlin("test"))
844
+ implementation(libs.kform.test)
843
845
  implementation(libs.kotlinxCoroutines.test)
844
846
  }
845
847
  jvmTest.dependencies {
@@ -879,10 +881,12 @@ external object JsJodaTimeZoneModule
879
881
 
880
882
  @JsExport
881
883
  val jsJodaTz = JsJodaTimeZoneModule
882
- `;function Ms(e,t){let n={gradlePropertiesGroup:t.gradlePropertiesGroup??t.currentPackage,filePackage:t.currentPackage,formId:mo(e.name),formTitle:fo(e.name),kFormVersion:`0.35.0`,serializationFormat:t.serializationFormat??`json`,includeKotlinxDatetime:t.includeKotlinxDatetime??Ns(e,t),includeKtMath:t.includeKtMath??Ps(e),jvmToolchainVersion:t.jvmToolchainVersion??`21`,nodejsVersion:t.nodejsVersion??`24.16.0`};Na(t,`gradle.properties`,Es,n),Na(t,`settings.gradle.kts`,ks,n),Na(t,`gradle/libs.versions.toml`,Ds,n),Ga(t,`build.gradle.kts`,Ts),Na(t,`shared/build.gradle.kts`,As,n),n.includeKotlinxDatetime&&Na(t,`shared/src/jsMain/kotlin/JsJodaTimeZone.kt`,js,n),Na(t,`react-app/build.gradle.kts`,Os,n)}function Ns(e,t){return t.schematicKinds.get(e.kind)?.package===`kotlinx.datetime`||e.children?.some(e=>Ns(e,t))===!0}function Ps(e){return[`BigInteger`,`BigDecimal`].includes(e.kind)||e.children?.some(e=>Ps(e))===!0}var Fs=`/assets/gradle-wrapper-BR-5feie.jar`,Is=`distributionBase=GRADLE_USER_HOME
884
+ `;function Ms(e,t){let n={gradlePropertiesGroup:t.gradlePropertiesGroup??t.currentPackage,filePackage:t.currentPackage,formId:mo(e.name),formTitle:fo(e.name),kFormVersion:`0.36.0`,serializationFormat:t.serializationFormat??`json`,includeKotlinxDatetime:t.includeKotlinxDatetime??Ns(e,t),includeKtMath:t.includeKtMath??Ps(e),jvmToolchainVersion:t.jvmToolchainVersion??`21`,nodejsVersion:t.nodejsVersion??`24.16.0`};Na(t,`gradle.properties`,Es,n),Na(t,`settings.gradle.kts`,ks,n),Na(t,`gradle/libs.versions.toml`,Ds,n),Ga(t,`build.gradle.kts`,Ts),Na(t,`shared/build.gradle.kts`,As,n),n.includeKotlinxDatetime&&Na(t,`shared/src/jsMain/kotlin/JsJodaTimeZone.kt`,js,n),Na(t,`react-app/build.gradle.kts`,Os,n)}function Ns(e,t){return t.schematicKinds.get(e.kind)?.package===`kotlinx.datetime`||e.children?.some(e=>Ns(e,t))===!0}function Ps(e){return[`BigInteger`,`BigDecimal`].includes(e.kind)||e.children?.some(e=>Ps(e))===!0}var Fs=`/assets/gradle-wrapper-BvbY_R1M.jar`,Is=`distributionBase=GRADLE_USER_HOME
883
885
  distributionPath=wrapper/dists
884
- distributionUrl=https\\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
886
+ distributionUrl=https\\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
885
887
  networkTimeout=10000
888
+ retries=0
889
+ retryBackOffMs=500
886
890
  validateDistributionUrl=true
887
891
  zipStoreBase=GRADLE_USER_HOME
888
892
  zipStorePath=wrapper/dists
@@ -911,8 +915,8 @@ zipStorePath=wrapper/dists
911
915
  @rem\r
912
916
  @rem ##########################################################################\r
913
917
  \r
914
- @rem Set local scope for the variables with windows NT shell\r
915
- if "%OS%"=="Windows_NT" setlocal\r
918
+ @rem Set local scope for the variables, and ensure extensions are enabled\r
919
+ setlocal EnableExtensions\r
916
920
  \r
917
921
  set DIRNAME=%~dp0\r
918
922
  if "%DIRNAME%"=="" set DIRNAME=.\r
@@ -939,7 +943,7 @@ echo. 1>&2\r
939
943
  echo Please set the JAVA_HOME variable in your environment to match the 1>&2\r
940
944
  echo location of your Java installation. 1>&2\r
941
945
  \r
942
- goto fail\r
946
+ "%COMSPEC%" /c exit 1\r
943
947
  \r
944
948
  :findJavaFromJavaHome\r
945
949
  set JAVA_HOME=%JAVA_HOME:"=%\r
@@ -953,7 +957,7 @@ echo. 1>&2\r
953
957
  echo Please set the JAVA_HOME variable in your environment to match the 1>&2\r
954
958
  echo location of your Java installation. 1>&2\r
955
959
  \r
956
- goto fail\r
960
+ "%COMSPEC%" /c exit 1\r
957
961
  \r
958
962
  :execute\r
959
963
  @rem Setup the command line\r
@@ -961,24 +965,13 @@ goto fail\r
961
965
  \r
962
966
  \r
963
967
  @rem Execute Gradle\r
964
- "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar" %*\r
965
- \r
966
- :end\r
967
- @rem End local scope for the variables with windows NT shell\r
968
- if %ERRORLEVEL% equ 0 goto mainEnd\r
969
- \r
970
- :fail\r
971
- rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r
972
- rem the _cmd.exe /c_ return code!\r
973
- set EXIT_CODE=%ERRORLEVEL%\r
974
- if %EXIT_CODE% equ 0 set EXIT_CODE=1\r
975
- if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%\r
976
- exit /b %EXIT_CODE%\r
977
- \r
978
- :mainEnd\r
979
- if "%OS%"=="Windows_NT" endlocal\r
968
+ @rem endlocal doesn't take effect until after the line is parsed and variables are expanded\r
969
+ @rem which allows us to clear the local environment before executing the java command\r
970
+ endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar" %* & call :exitWithErrorLevel\r
980
971
  \r
981
- :omega\r
972
+ :exitWithErrorLevel\r
973
+ @rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts\r
974
+ "%COMSPEC%" /c exit %ERRORLEVEL%\r
982
975
  `,Rs=`#!/bin/sh
983
976
 
984
977
  #
@@ -1038,7 +1031,7 @@ if "%OS%"=="Windows_NT" endlocal\r
1038
1031
  # Darwin, MinGW, and NonStop.
1039
1032
  #
1040
1033
  # (3) This script is generated from the Groovy template
1041
- # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
1034
+ # https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
1042
1035
  # within the Gradle project.
1043
1036
  #
1044
1037
  # You can find Gradle at https://github.com/gradle/gradle/.
@@ -1481,7 +1474,7 @@ export default defineConfig({
1481
1474
  plugins: [react()],
1482
1475
  build: {
1483
1476
  outDir: "<%= viteConfigOutDir %>",
1484
- rollupOptions: {
1477
+ rolldownOptions: {
1485
1478
  preserveEntrySignatures: "exports-only",
1486
1479
  input: {
1487
1480
  "<%= formId %>-app":
@@ -1513,4 +1506,4 @@ export default defineConfig({
1513
1506
  proxy: { "<%= apiBasePath %>": "<%= viteConfigProxyTarget %>" },
1514
1507
  },
1515
1508
  });
1516
- `;function ic(e,t){let n={formId:mo(e.name),formClass:e.name,formTitle:fo(e.name),ostackUiVersion:`0.15.3`,kFormVersion:`0.35.0`,dependencyVersions:JSON.parse(`{"@eslint/js":"^10.0.1","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-brands-svg-icons":"^7.2.0","@fortawesome/free-regular-svg-icons":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0","@ostack.tech/kform":"~0.35.0","@ostack.tech/kform-react":"~0.35.0","@ostack.tech/kform-scaffolder":"~0.35.0","@storybook/addon-docs":"^10.4.2","@storybook/addon-links":"^10.4.2","@storybook/react-vite":"^10.4.2","@types/node":"^24.12.4","@types/react":"^19.2.16","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","change-case":"^5.4.4","cpy-cli":"^7.0.0","date-fns":"^4.4.0","eslint":"^10.4.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^13.0.0","eslint-plugin-storybook":"^10.4.2","globals":"^17.6.0","happy-dom":"^20.9.0","lint-staged":"^17.0.7","prettier":"^3.8.3","prettier-plugin-jsdoc":"^1.8.1","react":"^19.2.7","react-dom":"^19.2.7","rimraf":"^6.1.3","sass-embedded":"^1.100.0","simple-git-hooks":"^2.13.1","storybook":"^10.4.2","terser":"^5.48.0","tslib":"^2.8.1","typescript":"~6.0.3","typescript-eslint":"^8.60.1","vite":"^8.0.16","vitest":"^4.1.8","write-excel-file":"^4.0.7","zod":"^4.4.3","zustand":"^5.0.14"}`),encodedExternalContexts:JSON.stringify(t.serializationFormat===`json`?`{}`:`<${e.name}ExternalContexts />`),apiBasePath:t.apiBasePath??`/api/`,viteConfigOutDir:t.viteConfigOutDir??`build/dist/`,viteConfigProxyTarget:t.viteConfigProxyTarget??`http://127.0.0.1:8080/`};Na(t,`react-app/package.json`,Qs,n),Na(t,`react-app/vite.config.ts`,rc,n),Ga(t,`react-app/tsconfig.json`,tc),Ga(t,`react-app/tsconfig.app.json`,ec),Ga(t,`react-app/tsconfig.node.json`,nc),Ga(t,`react-app/eslint.config.js`,Xs),Na(t,`react-app/index.html`,Zs,n),Ga(t,`react-app/public/vite.svg`,$s)}var ac={currentDir:`shared/src/commonMain/kotlin`},oc={currentDir:`shared/src/commonTest/kotlin`},sc={currentDir:`react-app/src`};function cc({name:e=`ostack-ui-kform`,schematicKinds:t=us,scaffolders:n=[Gs,zs,Ms,ic,Gr(Da,ac),Gr(ui,ac),Gr(qs,ac),Gr(ws,ac),Gr(Bo,ac),Gr(Ia,oc),Gr(Bs,sc),Gr(Ys,sc),Gr(ms,sc),Gr(Ss,sc),Gr(To,sc),Gr(ko,sc),Gr(Po,sc)],scaffoldingData:r=e=>({useFileBase64Serializer:!0,...e.config}),configs:i=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Qa,{}),(0,U.jsx)(eo,{}),(0,U.jsx)(to,{})]}),version:a=`0.15.3`,...o}){return(0,U.jsx)(Ha,{name:e,schematicKinds:t,scaffolders:n,scaffoldingData:r,configs:i,version:a,...o})}(0,S.createRoot)(document.getElementById(`root`)).render((0,U.jsx)(C.StrictMode,{children:(0,U.jsx)(cc,{})}));
1509
+ `;function ic(e,t){let n={formId:mo(e.name),formClass:e.name,formTitle:fo(e.name),ostackUiVersion:`0.15.5`,kFormVersion:`0.36.0`,dependencyVersions:JSON.parse(`{"@eslint/js":"^10.0.1","@fortawesome/fontawesome-svg-core":"^7.2.0","@fortawesome/free-brands-svg-icons":"^7.2.0","@fortawesome/free-regular-svg-icons":"^7.2.0","@fortawesome/free-solid-svg-icons":"^7.2.0","@ostack.tech/kform":"~0.36.0","@ostack.tech/kform-react":"~0.36.0","@ostack.tech/kform-scaffolder":"~0.36.0","@storybook/addon-a11y":"^10.4.6","@storybook/addon-docs":"^10.4.6","@storybook/addon-links":"^10.4.6","@storybook/react-vite":"^10.4.6","@types/node":"^24.13.2","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.2","change-case":"^5.4.4","cpy-cli":"^7.0.0","date-fns":"^4.4.0","eslint":"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3","eslint-plugin-simple-import-sort":"^13.0.0","eslint-plugin-storybook":"^10.4.6","globals":"^17.7.0","happy-dom":"^20.10.6","lint-staged":"^17.0.8","prettier":"^3.8.4","prettier-plugin-jsdoc":"^1.8.1","react":"^19.2.7","react-dom":"^19.2.7","rimraf":"^6.1.3","sass-embedded":"^1.100.0","simple-git-hooks":"^2.13.1","storybook":"^10.4.6","terser":"^5.48.0","tslib":"^2.8.1","typescript":"~6.0.3","typescript-eslint":"^8.61.1","vite":"^8.0.16","vitest":"^4.1.9","write-excel-file":"^4.1.1","zod":"^4.4.3","zustand":"^5.0.14"}`),encodedExternalContexts:JSON.stringify(t.serializationFormat===`json`?`{}`:`<${e.name}ExternalContexts />`),apiBasePath:t.apiBasePath??`/api/`,viteConfigOutDir:t.viteConfigOutDir??`build/dist/`,viteConfigProxyTarget:t.viteConfigProxyTarget??`http://127.0.0.1:8080/`};Na(t,`react-app/package.json`,Qs,n),Na(t,`react-app/vite.config.ts`,rc,n),Ga(t,`react-app/tsconfig.json`,tc),Ga(t,`react-app/tsconfig.app.json`,ec),Ga(t,`react-app/tsconfig.node.json`,nc),Ga(t,`react-app/eslint.config.js`,Xs),Na(t,`react-app/index.html`,Zs,n),Ga(t,`react-app/public/vite.svg`,$s)}var ac={currentDir:`shared/src/commonMain/kotlin`},oc={currentDir:`shared/src/commonTest/kotlin`},sc={currentDir:`react-app/src`};function cc({name:e=`ostack-ui-kform`,schematicKinds:t=us,scaffolders:n=[Gs,zs,Ms,ic,Gr(Da,ac),Gr(ui,ac),Gr(qs,ac),Gr(ws,ac),Gr(Bo,ac),Gr(Ia,oc),Gr(Bs,sc),Gr(Ys,sc),Gr(ms,sc),Gr(Ss,sc),Gr(To,sc),Gr(ko,sc),Gr(Po,sc)],scaffoldingData:r=e=>({useFileBase64Serializer:!0,...e.config}),configs:i=(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Qa,{}),(0,U.jsx)(eo,{}),(0,U.jsx)(to,{})]}),version:a=`0.15.5`,...o}){return(0,U.jsx)(Ha,{name:e,schematicKinds:t,scaffolders:n,scaffoldingData:r,configs:i,version:a,...o})}(0,S.createRoot)(document.getElementById(`root`)).render((0,U.jsx)(C.StrictMode,{children:(0,U.jsx)(cc,{})}));
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="light dark" />
7
7
  <title>Form Scaffolder—ostack/UI-KForm</title>
8
- <script type="module" crossorigin src="/assets/index-B-KacLGe.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-DdVJhKOe.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-BKUWl2po.css">
10
10
  </head>
11
11
  <body>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ostack.tech/ui-kform-scaffolder",
3
3
  "description": "Scaffold a new project using ostack/KForm, UI, and UI-KForm.",
4
- "version": "0.15.3",
4
+ "version": "0.15.5",
5
5
  "homepage": "https://ui-kform-scaffolder.ostack.tech/",
6
6
  "author": {
7
7
  "name": "Opensoft",
@@ -37,7 +37,7 @@
37
37
  "preview": "vite build --mode webapp && vite preview --outDir dist/webapp/"
38
38
  },
39
39
  "peerDependencies": {
40
- "@ostack.tech/kform-scaffolder": "~0.35.0",
40
+ "@ostack.tech/kform-scaffolder": "~0.36.0",
41
41
  "@types/react": "^19.0.0",
42
42
  "change-case": "^5.0.0",
43
43
  "react": "^19.0.0",