@net-advantage/nabs-ui-dynamicform 0.70.0 → 0.72.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.
@@ -0,0 +1,2 @@
1
+ import { createDefaultValue, createInitialValue, isRecord, normalizeValue } from './dynamicform.utils';
2
+ export { createDefaultValue, createInitialValue, isRecord, normalizeValue };
@@ -0,0 +1,4 @@
1
+ import { DynamicFormSchema, DynamicFormSchemaProperty, FieldMode } from './DynamicForm.types';
2
+ export declare function resolveSchema(schema: DynamicFormSchema | undefined): DynamicFormSchema;
3
+ export declare function buildDynamicFormClassNames(className: string | undefined, disabled: boolean): string;
4
+ export declare function resolveFieldMode(schema: DynamicFormSchemaProperty | undefined): FieldMode;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n={right:`nabs-ui-checkbox--label-right`,left:`nabs-ui-checkbox--label-left`,top:`nabs-ui-checkbox--label-top`,bottom:`nabs-ui-checkbox--label-bottom`},r=(0,e.forwardRef)(function({label:r=`Checkbox`,labelPosition:i=`right`,className:a=``,inputClassName:o=``,labelClassName:s=``,id:c,disabled:l,...u},d){let f=(0,e.useId)(),p=c??`nabs-ui-checkbox-${f.replace(/:/g,``)}`,m=[`nabs-ui-checkbox`,l?`nabs-ui-checkbox--disabled`:``,n[i]??n.right,a].filter(Boolean).join(` `),h=[`nabs-ui-checkbox__input`,o].filter(Boolean).join(` `),g=[`nabs-ui-checkbox__label`,s].filter(Boolean).join(` `);return(0,t.jsxs)(`label`,{className:m,htmlFor:p,children:[(0,t.jsx)(`input`,{ref:d,id:p,className:h,type:`checkbox`,disabled:l,...u}),(0,t.jsx)(`span`,{className:g,children:r})]})});r.displayName=`Checkbox`;var i={right:`nabs-ui-radiobutton--label-right`,left:`nabs-ui-radiobutton--label-left`,top:`nabs-ui-radiobutton--label-top`,bottom:`nabs-ui-radiobutton--label-bottom`};function a({label:n=`Radio button`,labelPosition:r=`right`,className:a=``,inputClassName:o=``,labelClassName:s=``,id:c,...l}){let u=l.disabled===!0,d=(0,e.useId)(),f=c??`nabs-ui-radiobutton-${d.replace(/:/g,``)}`,p=[`nabs-ui-radiobutton`,u?`nabs-ui-radiobutton--disabled`:``,i[r]??i.right,a].filter(Boolean).join(` `),m=[`nabs-ui-radiobutton__input`,o].filter(Boolean).join(` `),h=[`nabs-ui-radiobutton__label`,s].filter(Boolean).join(` `);return(0,t.jsxs)(`label`,{className:p,htmlFor:f,children:[(0,t.jsx)(`input`,{id:f,className:m,type:`radio`,...l}),(0,t.jsx)(`span`,{className:h,children:n})]})}var o=(0,e.forwardRef)(({label:n,className:r=``,inputClassName:i=``,labelClassName:a=``,id:o,rows:s=4,resize:c=`vertical`,...l},u)=>{let d=(0,e.useId)(),f=o??`nabs-ui-textarea-${d.replace(/:/g,``)}`,p=[`nabs-ui-textarea`,r].filter(Boolean).join(` `),m=[`nabs-ui-textarea__input`,i].filter(Boolean).join(` `),h=[`nabs-ui-textarea__label`,a].filter(Boolean).join(` `);return(0,t.jsxs)(`div`,{className:p,children:[n?(0,t.jsx)(`label`,{className:h,htmlFor:f,children:n}):null,(0,t.jsx)(`textarea`,{ref:u,id:f,className:m,rows:s,"data-resize":c,...l})]})});o.displayName=`Textarea`;var s={none:``,top:`nabs-ui-textbox--label-top`,left:`nabs-ui-textbox--label-left`};function c(e){if(e===``||e==null)return``;if(typeof e==`number`)return e.toFixed(2);if(typeof e==`string`){let t=e.trim();if(!t)return``;let n=Number.parseFloat(t);return Number.isNaN(n)?e:n.toFixed(2)}return e}var l=(0,e.forwardRef)(({label:n,labelPosition:r=`top`,className:i=``,inputClassName:a=``,labelClassName:o=``,format:l=`default`,currencySymbol:u=`$`,id:d,type:f=`text`,value:p,inputMode:m,...h},g)=>{let _=(0,e.useId)(),v=d??`nabs-ui-textbox-${_.replace(/:/g,``)}`,y=[`nabs-ui-textbox`,n?s[r]??s.top:``,i].filter(Boolean).join(` `),b=[`nabs-ui-textbox__input`,a].filter(Boolean).join(` `),x=[`nabs-ui-textbox__label`,o].filter(Boolean).join(` `),S=l===`currency`,C=S?`text`:f,w=S?m??`decimal`:m,T=S?c(p):p;return(0,t.jsxs)(`div`,{className:y,children:[n?(0,t.jsx)(`label`,{className:x,htmlFor:v,children:n}):null,S?(0,t.jsxs)(`div`,{className:`nabs-ui-textbox__currencyWrap`,children:[(0,t.jsx)(`span`,{className:`nabs-ui-textbox__currencySymbol`,"aria-hidden":`true`,children:u}),(0,t.jsx)(`input`,{ref:g,id:v,className:b,type:C,inputMode:w,value:T,...h})]}):(0,t.jsx)(`input`,{ref:g,id:v,className:b,type:C,inputMode:w,value:T,...h})]})});l.displayName=`Textbox`;function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e){return!e||e.type!==`object`||!u(e.properties)?{}:Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,f(t)]))}function f(e){if(!e||!u(e))return``;if(e.default!==void 0)return e.default;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0];switch(e.type){case`boolean`:return!1;case`integer`:case`number`:return``;case`object`:return d(e);default:return``}}function p(e,t){if(!e||!u(e))return t;if(e.type===`object`&&u(e.properties)){let n=u(t)?t:{};return Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,p(t,n[e]===void 0?f(t):n[e])]))}if(e.type===`boolean`)return t===!0;if(e.type===`integer`){if(t===``||t==null)return``;let e=Number.parseInt(String(t),10);return Number.isNaN(e)?``:e}if(e.type===`number`){if(t===``||t==null)return``;let e=Number.parseFloat(String(t));return Number.isNaN(e)?``:e}return t??``}function m(e){if(!e||!u(e))return`textbox`;if(Array.isArray(e.enum)&&e.enum.length>0)return`radio`;if(e.type===`string`)return e.maxLength!==void 0&&e.maxLength>50?`textarea`:`textbox`;if(e.type===`integer`)return`int`;if(e.type===`number`){let t=String(e.format??``).toLowerCase(),n=String(e.currencySymbol??``).trim().length>0;return t===`decimal`?n?`currencyDecimal`:`decimal`:n?`currencyDouble`:`double`}return e.type===`boolean`?`bool`:`textbox`}var h={type:`object`,properties:{}};function g({schema:e,name:n,value:i,onChange:s}){let c=e.title??n,u=e.description,d=m(e),p=i??f(e);if(d===`radio`){let r=Array.isArray(e.enum)?e.enum:[];return(0,t.jsxs)(`fieldset`,{className:`nabs-ui-dynamicform__fieldset`,children:[(0,t.jsx)(`legend`,{className:`nabs-ui-dynamicform__legend`,children:c}),u?(0,t.jsx)(`p`,{className:`nabs-ui-dynamicform__description`,children:u}):null,(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__radioGroup`,children:r.map(e=>(0,t.jsx)(a,{label:String(e),name:n,checked:p===e,onChange:()=>s(e)},String(e)))})]})}if(d===`textarea`)return(0,t.jsx)(o,{label:c,rows:5,value:String(p??``),placeholder:String(e.default??``),onChange:e=>s(e.target.value)});if(d===`bool`)return(0,t.jsx)(r,{label:c,checked:p===!0,onChange:e=>s(e.target.checked)});let h=d===`currencyDecimal`||d===`currencyDouble`,g=d===`int`||d===`decimal`||d===`double`||d===`currencyDecimal`||d===`currencyDouble`,_=g?`number`:`text`,v=d===`int`?1:g?`any`:void 0,y=String(e.currencySymbol??``).trim(),b=h&&y.length>0,x=e=>{if(d===`int`){s(e===``?``:Number.parseInt(e,10));return}if(d===`decimal`||d===`double`||d===`currencyDecimal`||d===`currencyDouble`){s(e===``?``:Number.parseFloat(e));return}s(e)};return(0,t.jsx)(l,{label:c,type:_,step:v,format:b?`currency`:`default`,currencySymbol:b?y:void 0,value:String(p??``),placeholder:String(e.default??``),onChange:e=>x(e.target.value)})}var _=(0,e.forwardRef)(function({schema:n,value:r,onChange:i,className:a=``,id:o,disabled:s=!1,...c},l){let f=(0,e.useId)(),m=o??`nabs-ui-dynamicform-${f.replace(/:/g,``)}`,_=n&&n.type===`object`?n:h,[v,y]=(0,e.useState)(()=>p(_,r??d(_)));(0,e.useEffect)(()=>{y(p(_,r??d(_)))},[_,r]);let b=u(v)?v:{},x=_.title??`Dynamic form`,S=_.description,C=[`nabs-ui-dynamicform`,s?`nabs-ui-dynamicform--disabled`:``,a].filter(Boolean).join(` `),w=e=>{y(e),i?.(e)};return s?(0,t.jsxs)(`div`,{ref:l,id:m,className:C,"aria-disabled":`true`,...c,children:[(0,t.jsxs)(`div`,{className:`nabs-ui-dynamicform__header`,children:[(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__title`,children:x}),S?(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__description`,children:S}):null]}),(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__fields`,children:Object.entries(_.properties??{}).map(([e,n])=>(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__field`,children:(0,t.jsx)(g,{schema:n,name:e,value:b[e],onChange:t=>w({...b,[e]:p(n,t)})})},e))})]}):(0,t.jsxs)(`div`,{ref:l,id:m,className:C,...c,children:[(0,t.jsxs)(`div`,{className:`nabs-ui-dynamicform__header`,children:[(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__title`,children:x}),S?(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__description`,children:S}):null]}),(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__fields`,children:Object.entries(_.properties??{}).map(([e,n])=>(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__field`,children:(0,t.jsx)(g,{schema:n,name:e,value:b[e],onChange:t=>w({...b,[e]:p(n,t)})})},e))})]})});_.displayName=`DynamicForm`,exports.DynamicForm=_;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n=[`right`,`left`,`top`,`bottom`],r=`right`,i={right:`nabs-ui-checkbox--label-right`,left:`nabs-ui-checkbox--label-left`,top:`nabs-ui-checkbox--label-top`,bottom:`nabs-ui-checkbox--label-bottom`};function a(e){return typeof e==`string`&&n.includes(e)}function o(e){return a(e)?e:r}function s(e,t){return e||`nabs-ui-checkbox-${t.replace(/:/g,``)}`}function c({disabled:e=!1,labelPosition:t,className:n}){let r=o(t);return[`nabs-ui-checkbox`,e?`nabs-ui-checkbox--disabled`:``,i[r],n??``].filter(Boolean).join(` `)}function l(e){return[`nabs-ui-checkbox__input`,e??``].filter(Boolean).join(` `)}function u(e){return[`nabs-ui-checkbox__label`,e??``].filter(Boolean).join(` `)}var d=(0,e.forwardRef)(function({label:n=`Checkbox`,labelPosition:r=`right`,className:i=``,inputClassName:a=``,labelClassName:o=``,id:d,disabled:f,...p},m){let h=s(d,(0,e.useId)()),g=c({disabled:f,labelPosition:r,className:i}),_=l(a),v=u(o);return(0,t.jsxs)(`label`,{className:g,htmlFor:h,children:[(0,t.jsx)(`input`,{ref:m,id:h,className:_,type:`checkbox`,disabled:f,...p}),(0,t.jsx)(`span`,{className:v,children:n})]})});d.displayName=`Checkbox`;var f=[`right`,`left`,`top`,`bottom`],p=`right`,m={right:`nabs-ui-radiobutton--label-right`,left:`nabs-ui-radiobutton--label-left`,top:`nabs-ui-radiobutton--label-top`,bottom:`nabs-ui-radiobutton--label-bottom`};function h(e){return typeof e==`string`&&f.includes(e)}function g(e){return h(e)?e:p}function _(e,t){return e||`nabs-ui-radiobutton-${t.replace(/:/g,``)}`}function v({disabled:e=!1,labelPosition:t,className:n}){let r=g(t);return[`nabs-ui-radiobutton`,e?`nabs-ui-radiobutton--disabled`:``,m[r],n??``].filter(Boolean).join(` `)}function y(e){return[`nabs-ui-radiobutton__input`,e??``].filter(Boolean).join(` `)}function b(e){return[`nabs-ui-radiobutton__label`,e??``].filter(Boolean).join(` `)}function x({label:n=`Radio button`,labelPosition:r=`right`,className:i=``,inputClassName:a=``,labelClassName:o=``,id:s,...c}){let l=c.disabled===!0,u=_(s,(0,e.useId)()),d=v({disabled:l,labelPosition:r,className:i}),f=y(a),p=b(o);return(0,t.jsxs)(`label`,{className:d,htmlFor:u,children:[(0,t.jsx)(`input`,{id:u,className:f,type:`radio`,...c}),(0,t.jsx)(`span`,{className:p,children:n})]})}var S=[`vertical`,`none`,`horizontal`,`both`],C=`vertical`;function w(e){return typeof e==`string`&&S.includes(e)}function T(e){return w(e)?e:C}function E(e,t){return e||`nabs-ui-textarea-${t.replace(/:/g,``)}`}function D(e){return[`nabs-ui-textarea`,e??``].filter(Boolean).join(` `)}function O(e){return[`nabs-ui-textarea__input`,e??``].filter(Boolean).join(` `)}function k(e){return[`nabs-ui-textarea__label`,e??``].filter(Boolean).join(` `)}function A({rows:e,resize:t}){return{renderedRows:typeof e==`number`?e:4,renderedResize:T(t)}}var j=(0,e.forwardRef)(({label:n,className:r=``,inputClassName:i=``,labelClassName:a=``,id:o,rows:s=4,resize:c=`vertical`,...l},u)=>{let d=E(o,(0,e.useId)()),f=D(r),p=O(i),m=k(a),{renderedRows:h,renderedResize:g}=A({rows:s,resize:c});return(0,t.jsxs)(`div`,{className:f,children:[n?(0,t.jsx)(`label`,{className:m,htmlFor:d,children:n}):null,(0,t.jsx)(`textarea`,{ref:u,id:d,className:p,rows:h,"data-resize":g,...l})]})});j.displayName=`Textarea`;var ee=[`none`,`top`,`left`],M=[`default`,`currency`],N=`default`,P={none:``,top:`nabs-ui-textbox--label-top`,left:`nabs-ui-textbox--label-left`};function F(e){return typeof e==`string`&&ee.includes(e)}function I(e){return F(e)?e:`top`}function L(e){return typeof e==`string`&&M.includes(e)}function R(e){return L(e)?e:N}function z(e,t){return e||`nabs-ui-textbox-${t.replace(/:/g,``)}`}function B({label:e,labelPosition:t,className:n}){let r=I(t);return[`nabs-ui-textbox`,e?P[r]??P.top:``,n??``].filter(Boolean).join(` `)}function V(e){return[`nabs-ui-textbox__input`,e??``].filter(Boolean).join(` `)}function H(e){return[`nabs-ui-textbox__label`,e??``].filter(Boolean).join(` `)}function U(e){if(e===``||e==null)return``;if(typeof e==`number`)return e.toFixed(2);if(typeof e==`string`){let t=e.trim();if(!t)return``;let n=Number.parseFloat(t);return Number.isNaN(n)?e:n.toFixed(2)}return e}function W({format:e,type:t=`text`,inputMode:n,value:r}){let i=R(e)===`currency`;return{isCurrency:i,renderedType:i?`text`:t,renderedInputMode:i?n??`decimal`:n,renderedValue:i?U(r):r}}var G=(0,e.forwardRef)(({label:n,labelPosition:r=`top`,className:i=``,inputClassName:a=``,labelClassName:o=``,format:s=`default`,currencySymbol:c=`$`,id:l,type:u=`text`,value:d,inputMode:f,...p},m)=>{let h=z(l,(0,e.useId)()),g=B({label:n,labelPosition:r,className:i}),_=V(a),v=H(o),{isCurrency:y,renderedType:b,renderedInputMode:x,renderedValue:S}=W({format:s,type:u,inputMode:f,value:d});return(0,t.jsxs)(`div`,{className:g,children:[n?(0,t.jsx)(`label`,{className:v,htmlFor:h,children:n}):null,y?(0,t.jsxs)(`div`,{className:`nabs-ui-textbox__currencyWrap`,children:[(0,t.jsx)(`span`,{className:`nabs-ui-textbox__currencySymbol`,"aria-hidden":`true`,children:c}),(0,t.jsx)(`input`,{ref:m,id:h,className:_,type:b,inputMode:x,value:S,...p})]}):(0,t.jsx)(`input`,{ref:m,id:h,className:_,type:b,inputMode:x,value:S,...p})]})});G.displayName=`Textbox`;function K(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function q(e){return!e||e.type!==`object`||!K(e.properties)?{}:Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,J(t)]))}function J(e){if(!e||!K(e))return``;if(e.default!==void 0)return e.default;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0];switch(e.type){case`boolean`:return!1;case`integer`:case`number`:return``;case`object`:return q(e);default:return``}}function Y(e,t){if(!e||!K(e))return t;if(e.type===`object`&&K(e.properties)){let n=K(t)?t:{};return Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,Y(t,n[e]===void 0?J(t):n[e])]))}if(e.type===`boolean`)return t===!0;if(e.type===`integer`){if(t===``||t==null)return``;let e=Number.parseInt(String(t),10);return Number.isNaN(e)?``:e}if(e.type===`number`){if(t===``||t==null)return``;let e=Number.parseFloat(String(t));return Number.isNaN(e)?``:e}return t??``}function X(e){if(!e||!K(e))return`textbox`;if(Array.isArray(e.enum)&&e.enum.length>0)return`radio`;if(e.type===`string`)return e.maxLength!==void 0&&e.maxLength>50?`textarea`:`textbox`;if(e.type===`integer`)return`int`;if(e.type===`number`){let t=String(e.format??``).toLowerCase(),n=String(e.currencySymbol??``).trim().length>0;return t===`decimal`?n?`currencyDecimal`:`decimal`:n?`currencyDouble`:`double`}return e.type===`boolean`?`bool`:`textbox`}var Z={type:`object`,properties:{}};function Q({schema:e,name:n,value:r,onChange:i}){let a=e.title??n,o=e.description,s=X(e),c=r??J(e);if(s===`radio`){let r=Array.isArray(e.enum)?e.enum:[];return(0,t.jsxs)(`fieldset`,{className:`nabs-ui-dynamicform__fieldset`,children:[(0,t.jsx)(`legend`,{className:`nabs-ui-dynamicform__legend`,children:a}),o?(0,t.jsx)(`p`,{className:`nabs-ui-dynamicform__description`,children:o}):null,(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__radioGroup`,children:r.map(e=>(0,t.jsx)(x,{label:String(e),name:n,checked:c===e,onChange:()=>i(e)},String(e)))})]})}if(s===`textarea`)return(0,t.jsx)(j,{label:a,rows:5,value:String(c??``),placeholder:String(e.default??``),onChange:e=>i(e.target.value)});if(s===`bool`)return(0,t.jsx)(d,{label:a,checked:c===!0,onChange:e=>i(e.target.checked)});let l=s===`currencyDecimal`||s===`currencyDouble`,u=s===`int`||s===`decimal`||s===`double`||s===`currencyDecimal`||s===`currencyDouble`,f=u?`number`:`text`,p=s===`int`?1:u?`any`:void 0,m=String(e.currencySymbol??``).trim(),h=l&&m.length>0,g=e=>{if(s===`int`){i(e===``?``:Number.parseInt(e,10));return}if(s===`decimal`||s===`double`||s===`currencyDecimal`||s===`currencyDouble`){i(e===``?``:Number.parseFloat(e));return}i(e)};return(0,t.jsx)(G,{label:a,type:f,step:p,format:h?`currency`:`default`,currencySymbol:h?m:void 0,value:String(c??``),placeholder:String(e.default??``),onChange:e=>g(e.target.value)})}var $=(0,e.forwardRef)(function({schema:n,value:r,onChange:i,className:a=``,id:o,disabled:s=!1,...c},l){let u=(0,e.useId)(),d=o??`nabs-ui-dynamicform-${u.replace(/:/g,``)}`,f=n&&n.type===`object`?n:Z,[p,m]=(0,e.useState)(()=>Y(f,r??q(f)));(0,e.useEffect)(()=>{m(Y(f,r??q(f)))},[f,r]);let h=K(p)?p:{},g=f.title??`Dynamic form`,_=f.description,v=[`nabs-ui-dynamicform`,s?`nabs-ui-dynamicform--disabled`:``,a].filter(Boolean).join(` `),y=e=>{m(e),i?.(e)};return s?(0,t.jsxs)(`div`,{ref:l,id:d,className:v,"aria-disabled":`true`,...c,children:[(0,t.jsxs)(`div`,{className:`nabs-ui-dynamicform__header`,children:[(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__title`,children:g}),_?(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__description`,children:_}):null]}),(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__fields`,children:Object.entries(f.properties??{}).map(([e,n])=>(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__field`,children:(0,t.jsx)(Q,{schema:n,name:e,value:h[e],onChange:t=>y({...h,[e]:Y(n,t)})})},e))})]}):(0,t.jsxs)(`div`,{ref:l,id:d,className:v,...c,children:[(0,t.jsxs)(`div`,{className:`nabs-ui-dynamicform__header`,children:[(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__title`,children:g}),_?(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__description`,children:_}):null]}),(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__fields`,children:Object.entries(f.properties??{}).map(([e,n])=>(0,t.jsx)(`div`,{className:`nabs-ui-dynamicform__field`,children:(0,t.jsx)(Q,{schema:n,name:e,value:h[e],onChange:t=>y({...h,[e]:Y(n,t)})})},e))})]})});$.displayName=`DynamicForm`,exports.DynamicForm=$;
@@ -1,97 +1,230 @@
1
1
  import { forwardRef as e, useEffect as t, useId as n, useState as r } from "react";
2
2
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
3
- //#region ../nabs-ui-checkbox/src/checkbox.utils.ts
4
- var o = {
3
+ //#region ../nabs-ui-checkbox/src/checkbox.model.ts
4
+ var o = [
5
+ "right",
6
+ "left",
7
+ "top",
8
+ "bottom"
9
+ ], s = "right", c = {
5
10
  right: "nabs-ui-checkbox--label-right",
6
11
  left: "nabs-ui-checkbox--label-left",
7
12
  top: "nabs-ui-checkbox--label-top",
8
13
  bottom: "nabs-ui-checkbox--label-bottom"
9
- }, s = e(function({ label: e = "Checkbox", labelPosition: t = "right", className: r = "", inputClassName: s = "", labelClassName: c = "", id: l, disabled: u, ...d }, f) {
10
- let p = n(), m = l ?? `nabs-ui-checkbox-${p.replace(/:/g, "")}`, h = [
14
+ };
15
+ function l(e) {
16
+ return typeof e == "string" && o.includes(e);
17
+ }
18
+ function u(e) {
19
+ return l(e) ? e : s;
20
+ }
21
+ //#endregion
22
+ //#region ../nabs-ui-checkbox/src/checkbox.view-model.ts
23
+ function d(e, t) {
24
+ return e || `nabs-ui-checkbox-${t.replace(/:/g, "")}`;
25
+ }
26
+ function f({ disabled: e = !1, labelPosition: t, className: n }) {
27
+ let r = u(t);
28
+ return [
11
29
  "nabs-ui-checkbox",
12
- u ? "nabs-ui-checkbox--disabled" : "",
13
- o[t] ?? o.right,
14
- r
15
- ].filter(Boolean).join(" "), g = ["nabs-ui-checkbox__input", s].filter(Boolean).join(" "), _ = ["nabs-ui-checkbox__label", c].filter(Boolean).join(" ");
30
+ e ? "nabs-ui-checkbox--disabled" : "",
31
+ c[r],
32
+ n ?? ""
33
+ ].filter(Boolean).join(" ");
34
+ }
35
+ function p(e) {
36
+ return ["nabs-ui-checkbox__input", e ?? ""].filter(Boolean).join(" ");
37
+ }
38
+ function m(e) {
39
+ return ["nabs-ui-checkbox__label", e ?? ""].filter(Boolean).join(" ");
40
+ }
41
+ //#endregion
42
+ //#region ../nabs-ui-checkbox/src/Checkbox.tsx
43
+ var h = e(function({ label: e = "Checkbox", labelPosition: t = "right", className: r = "", inputClassName: o = "", labelClassName: s = "", id: c, disabled: l, ...u }, h) {
44
+ let g = d(c, n()), _ = f({
45
+ disabled: l,
46
+ labelPosition: t,
47
+ className: r
48
+ }), v = p(o), y = m(s);
16
49
  return /* @__PURE__ */ a("label", {
17
- className: h,
18
- htmlFor: m,
50
+ className: _,
51
+ htmlFor: g,
19
52
  children: [/* @__PURE__ */ i("input", {
20
- ref: f,
21
- id: m,
22
- className: g,
53
+ ref: h,
54
+ id: g,
55
+ className: v,
23
56
  type: "checkbox",
24
- disabled: u,
25
- ...d
57
+ disabled: l,
58
+ ...u
26
59
  }), /* @__PURE__ */ i("span", {
27
- className: _,
60
+ className: y,
28
61
  children: e
29
62
  })]
30
63
  });
31
64
  });
32
- s.displayName = "Checkbox";
65
+ h.displayName = "Checkbox";
33
66
  //#endregion
34
- //#region ../nabs-ui-radiobutton/src/radiobutton.utils.ts
35
- var c = {
67
+ //#region ../nabs-ui-radiobutton/src/radiobutton.model.ts
68
+ var g = [
69
+ "right",
70
+ "left",
71
+ "top",
72
+ "bottom"
73
+ ], _ = "right", v = {
36
74
  right: "nabs-ui-radiobutton--label-right",
37
75
  left: "nabs-ui-radiobutton--label-left",
38
76
  top: "nabs-ui-radiobutton--label-top",
39
77
  bottom: "nabs-ui-radiobutton--label-bottom"
40
78
  };
79
+ function y(e) {
80
+ return typeof e == "string" && g.includes(e);
81
+ }
82
+ function b(e) {
83
+ return y(e) ? e : _;
84
+ }
41
85
  //#endregion
42
- //#region ../nabs-ui-radiobutton/src/RadioButton.tsx
43
- function l({ label: e = "Radio button", labelPosition: t = "right", className: r = "", inputClassName: o = "", labelClassName: s = "", id: l, ...u }) {
44
- let d = u.disabled === !0, f = n(), p = l ?? `nabs-ui-radiobutton-${f.replace(/:/g, "")}`, m = [
86
+ //#region ../nabs-ui-radiobutton/src/radiobutton.view-model.ts
87
+ function x(e, t) {
88
+ return e || `nabs-ui-radiobutton-${t.replace(/:/g, "")}`;
89
+ }
90
+ function S({ disabled: e = !1, labelPosition: t, className: n }) {
91
+ let r = b(t);
92
+ return [
45
93
  "nabs-ui-radiobutton",
46
- d ? "nabs-ui-radiobutton--disabled" : "",
47
- c[t] ?? c.right,
48
- r
49
- ].filter(Boolean).join(" "), h = ["nabs-ui-radiobutton__input", o].filter(Boolean).join(" "), g = ["nabs-ui-radiobutton__label", s].filter(Boolean).join(" ");
94
+ e ? "nabs-ui-radiobutton--disabled" : "",
95
+ v[r],
96
+ n ?? ""
97
+ ].filter(Boolean).join(" ");
98
+ }
99
+ function C(e) {
100
+ return ["nabs-ui-radiobutton__input", e ?? ""].filter(Boolean).join(" ");
101
+ }
102
+ function w(e) {
103
+ return ["nabs-ui-radiobutton__label", e ?? ""].filter(Boolean).join(" ");
104
+ }
105
+ //#endregion
106
+ //#region ../nabs-ui-radiobutton/src/RadioButton.tsx
107
+ function T({ label: e = "Radio button", labelPosition: t = "right", className: r = "", inputClassName: o = "", labelClassName: s = "", id: c, ...l }) {
108
+ let u = l.disabled === !0, d = x(c, n()), f = S({
109
+ disabled: u,
110
+ labelPosition: t,
111
+ className: r
112
+ }), p = C(o), m = w(s);
50
113
  return /* @__PURE__ */ a("label", {
51
- className: m,
52
- htmlFor: p,
114
+ className: f,
115
+ htmlFor: d,
53
116
  children: [/* @__PURE__ */ i("input", {
54
- id: p,
55
- className: h,
117
+ id: d,
118
+ className: p,
56
119
  type: "radio",
57
- ...u
120
+ ...l
58
121
  }), /* @__PURE__ */ i("span", {
59
- className: g,
122
+ className: m,
60
123
  children: e
61
124
  })]
62
125
  });
63
126
  }
64
127
  //#endregion
128
+ //#region ../nabs-ui-textarea/src/textarea.model.ts
129
+ var E = [
130
+ "vertical",
131
+ "none",
132
+ "horizontal",
133
+ "both"
134
+ ], D = "vertical";
135
+ function O(e) {
136
+ return typeof e == "string" && E.includes(e);
137
+ }
138
+ function k(e) {
139
+ return O(e) ? e : D;
140
+ }
141
+ //#endregion
142
+ //#region ../nabs-ui-textarea/src/textarea.view-model.ts
143
+ function A(e, t) {
144
+ return e || `nabs-ui-textarea-${t.replace(/:/g, "")}`;
145
+ }
146
+ function ee(e) {
147
+ return ["nabs-ui-textarea", e ?? ""].filter(Boolean).join(" ");
148
+ }
149
+ function te(e) {
150
+ return ["nabs-ui-textarea__input", e ?? ""].filter(Boolean).join(" ");
151
+ }
152
+ function ne(e) {
153
+ return ["nabs-ui-textarea__label", e ?? ""].filter(Boolean).join(" ");
154
+ }
155
+ function j({ rows: e, resize: t }) {
156
+ return {
157
+ renderedRows: typeof e == "number" ? e : 4,
158
+ renderedResize: k(t)
159
+ };
160
+ }
161
+ //#endregion
65
162
  //#region ../nabs-ui-textarea/src/Textarea.tsx
66
- var u = e(({ label: e, className: t = "", inputClassName: r = "", labelClassName: o = "", id: s, rows: c = 4, resize: l = "vertical", ...u }, d) => {
67
- let f = n(), p = s ?? `nabs-ui-textarea-${f.replace(/:/g, "")}`, m = ["nabs-ui-textarea", t].filter(Boolean).join(" "), h = ["nabs-ui-textarea__input", r].filter(Boolean).join(" "), g = ["nabs-ui-textarea__label", o].filter(Boolean).join(" ");
163
+ var M = e(({ label: e, className: t = "", inputClassName: r = "", labelClassName: o = "", id: s, rows: c = 4, resize: l = "vertical", ...u }, d) => {
164
+ let f = A(s, n()), p = ee(t), m = te(r), h = ne(o), { renderedRows: g, renderedResize: _ } = j({
165
+ rows: c,
166
+ resize: l
167
+ });
68
168
  return /* @__PURE__ */ a("div", {
69
- className: m,
169
+ className: p,
70
170
  children: [e ? /* @__PURE__ */ i("label", {
71
- className: g,
72
- htmlFor: p,
171
+ className: h,
172
+ htmlFor: f,
73
173
  children: e
74
174
  }) : null, /* @__PURE__ */ i("textarea", {
75
175
  ref: d,
76
- id: p,
77
- className: h,
78
- rows: c,
79
- "data-resize": l,
176
+ id: f,
177
+ className: m,
178
+ rows: g,
179
+ "data-resize": _,
80
180
  ...u
81
181
  })]
82
182
  });
83
183
  });
84
- u.displayName = "Textarea";
184
+ M.displayName = "Textarea";
85
185
  //#endregion
86
- //#region ../nabs-ui-textbox/src/textbox.utils.ts
87
- var d = {
186
+ //#region ../nabs-ui-textbox/src/textbox.model.ts
187
+ var N = [
188
+ "none",
189
+ "top",
190
+ "left"
191
+ ], P = ["default", "currency"], F = "default", I = {
88
192
  none: "",
89
193
  top: "nabs-ui-textbox--label-top",
90
194
  left: "nabs-ui-textbox--label-left"
91
195
  };
196
+ function L(e) {
197
+ return typeof e == "string" && N.includes(e);
198
+ }
199
+ function R(e) {
200
+ return L(e) ? e : "top";
201
+ }
202
+ function z(e) {
203
+ return typeof e == "string" && P.includes(e);
204
+ }
205
+ function B(e) {
206
+ return z(e) ? e : F;
207
+ }
92
208
  //#endregion
93
- //#region ../nabs-ui-textbox/src/Textbox.tsx
94
- function f(e) {
209
+ //#region ../nabs-ui-textbox/src/textbox.view-model.ts
210
+ function V(e, t) {
211
+ return e || `nabs-ui-textbox-${t.replace(/:/g, "")}`;
212
+ }
213
+ function H({ label: e, labelPosition: t, className: n }) {
214
+ let r = R(t);
215
+ return [
216
+ "nabs-ui-textbox",
217
+ e ? I[r] ?? I.top : "",
218
+ n ?? ""
219
+ ].filter(Boolean).join(" ");
220
+ }
221
+ function U(e) {
222
+ return ["nabs-ui-textbox__input", e ?? ""].filter(Boolean).join(" ");
223
+ }
224
+ function W(e) {
225
+ return ["nabs-ui-textbox__label", e ?? ""].filter(Boolean).join(" ");
226
+ }
227
+ function G(e) {
95
228
  if (e === "" || e == null) return "";
96
229
  if (typeof e == "number") return e.toFixed(2);
97
230
  if (typeof e == "string") {
@@ -102,70 +235,86 @@ function f(e) {
102
235
  }
103
236
  return e;
104
237
  }
105
- var p = e(({ label: e, labelPosition: t = "top", className: r = "", inputClassName: o = "", labelClassName: s = "", format: c = "default", currencySymbol: l = "$", id: u, type: p = "text", value: m, inputMode: h, ...g }, _) => {
106
- let v = n(), y = u ?? `nabs-ui-textbox-${v.replace(/:/g, "")}`, b = [
107
- "nabs-ui-textbox",
108
- e ? d[t] ?? d.top : "",
109
- r
110
- ].filter(Boolean).join(" "), x = ["nabs-ui-textbox__input", o].filter(Boolean).join(" "), S = ["nabs-ui-textbox__label", s].filter(Boolean).join(" "), C = c === "currency", w = C ? "text" : p, T = C ? h ?? "decimal" : h, E = C ? f(m) : m;
238
+ function K({ format: e, type: t = "text", inputMode: n, value: r }) {
239
+ let i = B(e) === "currency";
240
+ return {
241
+ isCurrency: i,
242
+ renderedType: i ? "text" : t,
243
+ renderedInputMode: i ? n ?? "decimal" : n,
244
+ renderedValue: i ? G(r) : r
245
+ };
246
+ }
247
+ //#endregion
248
+ //#region ../nabs-ui-textbox/src/Textbox.tsx
249
+ var q = e(({ label: e, labelPosition: t = "top", className: r = "", inputClassName: o = "", labelClassName: s = "", format: c = "default", currencySymbol: l = "$", id: u, type: d = "text", value: f, inputMode: p, ...m }, h) => {
250
+ let g = V(u, n()), _ = H({
251
+ label: e,
252
+ labelPosition: t,
253
+ className: r
254
+ }), v = U(o), y = W(s), { isCurrency: b, renderedType: x, renderedInputMode: S, renderedValue: C } = K({
255
+ format: c,
256
+ type: d,
257
+ inputMode: p,
258
+ value: f
259
+ });
111
260
  return /* @__PURE__ */ a("div", {
112
- className: b,
261
+ className: _,
113
262
  children: [e ? /* @__PURE__ */ i("label", {
114
- className: S,
115
- htmlFor: y,
263
+ className: y,
264
+ htmlFor: g,
116
265
  children: e
117
- }) : null, C ? /* @__PURE__ */ a("div", {
266
+ }) : null, b ? /* @__PURE__ */ a("div", {
118
267
  className: "nabs-ui-textbox__currencyWrap",
119
268
  children: [/* @__PURE__ */ i("span", {
120
269
  className: "nabs-ui-textbox__currencySymbol",
121
270
  "aria-hidden": "true",
122
271
  children: l
123
272
  }), /* @__PURE__ */ i("input", {
124
- ref: _,
125
- id: y,
126
- className: x,
127
- type: w,
128
- inputMode: T,
129
- value: E,
130
- ...g
273
+ ref: h,
274
+ id: g,
275
+ className: v,
276
+ type: x,
277
+ inputMode: S,
278
+ value: C,
279
+ ...m
131
280
  })]
132
281
  }) : /* @__PURE__ */ i("input", {
133
- ref: _,
134
- id: y,
135
- className: x,
136
- type: w,
137
- inputMode: T,
138
- value: E,
139
- ...g
282
+ ref: h,
283
+ id: g,
284
+ className: v,
285
+ type: x,
286
+ inputMode: S,
287
+ value: C,
288
+ ...m
140
289
  })]
141
290
  });
142
291
  });
143
- p.displayName = "Textbox";
292
+ q.displayName = "Textbox";
144
293
  //#endregion
145
294
  //#region src/dynamicform.utils.ts
146
- function m(e) {
295
+ function J(e) {
147
296
  return typeof e == "object" && !!e && !Array.isArray(e);
148
297
  }
149
- function h(e) {
150
- return !e || e.type !== "object" || !m(e.properties) ? {} : Object.fromEntries(Object.entries(e.properties).map(([e, t]) => [e, g(t)]));
298
+ function Y(e) {
299
+ return !e || e.type !== "object" || !J(e.properties) ? {} : Object.fromEntries(Object.entries(e.properties).map(([e, t]) => [e, X(t)]));
151
300
  }
152
- function g(e) {
153
- if (!e || !m(e)) return "";
301
+ function X(e) {
302
+ if (!e || !J(e)) return "";
154
303
  if (e.default !== void 0) return e.default;
155
304
  if (Array.isArray(e.enum) && e.enum.length > 0) return e.enum[0];
156
305
  switch (e.type) {
157
306
  case "boolean": return !1;
158
307
  case "integer":
159
308
  case "number": return "";
160
- case "object": return h(e);
309
+ case "object": return Y(e);
161
310
  default: return "";
162
311
  }
163
312
  }
164
- function _(e, t) {
165
- if (!e || !m(e)) return t;
166
- if (e.type === "object" && m(e.properties)) {
167
- let n = m(t) ? t : {};
168
- return Object.fromEntries(Object.entries(e.properties).map(([e, t]) => [e, _(t, n[e] === void 0 ? g(t) : n[e])]));
313
+ function Z(e, t) {
314
+ if (!e || !J(e)) return t;
315
+ if (e.type === "object" && J(e.properties)) {
316
+ let n = J(t) ? t : {};
317
+ return Object.fromEntries(Object.entries(e.properties).map(([e, t]) => [e, Z(t, n[e] === void 0 ? X(t) : n[e])]));
169
318
  }
170
319
  if (e.type === "boolean") return t === !0;
171
320
  if (e.type === "integer") {
@@ -180,8 +329,8 @@ function _(e, t) {
180
329
  }
181
330
  return t ?? "";
182
331
  }
183
- function v(e) {
184
- if (!e || !m(e)) return "textbox";
332
+ function re(e) {
333
+ if (!e || !J(e)) return "textbox";
185
334
  if (Array.isArray(e.enum) && e.enum.length > 0) return "radio";
186
335
  if (e.type === "string") return e.maxLength !== void 0 && e.maxLength > 50 ? "textarea" : "textbox";
187
336
  if (e.type === "integer") return "int";
@@ -193,13 +342,13 @@ function v(e) {
193
342
  }
194
343
  //#endregion
195
344
  //#region src/DynamicForm.tsx
196
- var y = {
345
+ var ie = {
197
346
  type: "object",
198
347
  properties: {}
199
348
  };
200
- function b({ schema: e, name: t, value: n, onChange: r }) {
201
- let o = e.title ?? t, c = e.description, d = v(e), f = n ?? g(e);
202
- if (d === "radio") {
349
+ function Q({ schema: e, name: t, value: n, onChange: r }) {
350
+ let o = e.title ?? t, s = e.description, c = re(e), l = n ?? X(e);
351
+ if (c === "radio") {
203
352
  let n = Array.isArray(e.enum) ? e.enum : [];
204
353
  return /* @__PURE__ */ a("fieldset", {
205
354
  className: "nabs-ui-dynamicform__fieldset",
@@ -208,129 +357,129 @@ function b({ schema: e, name: t, value: n, onChange: r }) {
208
357
  className: "nabs-ui-dynamicform__legend",
209
358
  children: o
210
359
  }),
211
- c ? /* @__PURE__ */ i("p", {
360
+ s ? /* @__PURE__ */ i("p", {
212
361
  className: "nabs-ui-dynamicform__description",
213
- children: c
362
+ children: s
214
363
  }) : null,
215
364
  /* @__PURE__ */ i("div", {
216
365
  className: "nabs-ui-dynamicform__radioGroup",
217
- children: n.map((e) => /* @__PURE__ */ i(l, {
366
+ children: n.map((e) => /* @__PURE__ */ i(T, {
218
367
  label: String(e),
219
368
  name: t,
220
- checked: f === e,
369
+ checked: l === e,
221
370
  onChange: () => r(e)
222
371
  }, String(e)))
223
372
  })
224
373
  ]
225
374
  });
226
375
  }
227
- if (d === "textarea") return /* @__PURE__ */ i(u, {
376
+ if (c === "textarea") return /* @__PURE__ */ i(M, {
228
377
  label: o,
229
378
  rows: 5,
230
- value: String(f ?? ""),
379
+ value: String(l ?? ""),
231
380
  placeholder: String(e.default ?? ""),
232
381
  onChange: (e) => r(e.target.value)
233
382
  });
234
- if (d === "bool") return /* @__PURE__ */ i(s, {
383
+ if (c === "bool") return /* @__PURE__ */ i(h, {
235
384
  label: o,
236
- checked: f === !0,
385
+ checked: l === !0,
237
386
  onChange: (e) => r(e.target.checked)
238
387
  });
239
- let m = d === "currencyDecimal" || d === "currencyDouble", h = d === "int" || d === "decimal" || d === "double" || d === "currencyDecimal" || d === "currencyDouble", _ = h ? "number" : "text", y = d === "int" ? 1 : h ? "any" : void 0, b = String(e.currencySymbol ?? "").trim(), x = m && b.length > 0, S = (e) => {
240
- if (d === "int") {
388
+ let u = c === "currencyDecimal" || c === "currencyDouble", d = c === "int" || c === "decimal" || c === "double" || c === "currencyDecimal" || c === "currencyDouble", f = d ? "number" : "text", p = c === "int" ? 1 : d ? "any" : void 0, m = String(e.currencySymbol ?? "").trim(), g = u && m.length > 0, _ = (e) => {
389
+ if (c === "int") {
241
390
  r(e === "" ? "" : Number.parseInt(e, 10));
242
391
  return;
243
392
  }
244
- if (d === "decimal" || d === "double" || d === "currencyDecimal" || d === "currencyDouble") {
393
+ if (c === "decimal" || c === "double" || c === "currencyDecimal" || c === "currencyDouble") {
245
394
  r(e === "" ? "" : Number.parseFloat(e));
246
395
  return;
247
396
  }
248
397
  r(e);
249
398
  };
250
- return /* @__PURE__ */ i(p, {
399
+ return /* @__PURE__ */ i(q, {
251
400
  label: o,
252
- type: _,
253
- step: y,
254
- format: x ? "currency" : "default",
255
- currencySymbol: x ? b : void 0,
256
- value: String(f ?? ""),
401
+ type: f,
402
+ step: p,
403
+ format: g ? "currency" : "default",
404
+ currencySymbol: g ? m : void 0,
405
+ value: String(l ?? ""),
257
406
  placeholder: String(e.default ?? ""),
258
- onChange: (e) => S(e.target.value)
407
+ onChange: (e) => _(e.target.value)
259
408
  });
260
409
  }
261
- var x = e(function({ schema: e, value: o, onChange: s, className: c = "", id: l, disabled: u = !1, ...d }, f) {
262
- let p = n(), g = l ?? `nabs-ui-dynamicform-${p.replace(/:/g, "")}`, v = e && e.type === "object" ? e : y, [x, S] = r(() => _(v, o ?? h(v)));
410
+ var $ = e(function({ schema: e, value: o, onChange: s, className: c = "", id: l, disabled: u = !1, ...d }, f) {
411
+ let p = n(), m = l ?? `nabs-ui-dynamicform-${p.replace(/:/g, "")}`, h = e && e.type === "object" ? e : ie, [g, _] = r(() => Z(h, o ?? Y(h)));
263
412
  t(() => {
264
- S(_(v, o ?? h(v)));
265
- }, [v, o]);
266
- let C = m(x) ? x : {}, w = v.title ?? "Dynamic form", T = v.description, E = [
413
+ _(Z(h, o ?? Y(h)));
414
+ }, [h, o]);
415
+ let v = J(g) ? g : {}, y = h.title ?? "Dynamic form", b = h.description, x = [
267
416
  "nabs-ui-dynamicform",
268
417
  u ? "nabs-ui-dynamicform--disabled" : "",
269
418
  c
270
- ].filter(Boolean).join(" "), D = (e) => {
271
- S(e), s?.(e);
419
+ ].filter(Boolean).join(" "), S = (e) => {
420
+ _(e), s?.(e);
272
421
  };
273
422
  return u ? /* @__PURE__ */ a("div", {
274
423
  ref: f,
275
- id: g,
276
- className: E,
424
+ id: m,
425
+ className: x,
277
426
  "aria-disabled": "true",
278
427
  ...d,
279
428
  children: [/* @__PURE__ */ a("div", {
280
429
  className: "nabs-ui-dynamicform__header",
281
430
  children: [/* @__PURE__ */ i("div", {
282
431
  className: "nabs-ui-dynamicform__title",
283
- children: w
284
- }), T ? /* @__PURE__ */ i("div", {
432
+ children: y
433
+ }), b ? /* @__PURE__ */ i("div", {
285
434
  className: "nabs-ui-dynamicform__description",
286
- children: T
435
+ children: b
287
436
  }) : null]
288
437
  }), /* @__PURE__ */ i("div", {
289
438
  className: "nabs-ui-dynamicform__fields",
290
- children: Object.entries(v.properties ?? {}).map(([e, t]) => /* @__PURE__ */ i("div", {
439
+ children: Object.entries(h.properties ?? {}).map(([e, t]) => /* @__PURE__ */ i("div", {
291
440
  className: "nabs-ui-dynamicform__field",
292
- children: /* @__PURE__ */ i(b, {
441
+ children: /* @__PURE__ */ i(Q, {
293
442
  schema: t,
294
443
  name: e,
295
- value: C[e],
296
- onChange: (n) => D({
297
- ...C,
298
- [e]: _(t, n)
444
+ value: v[e],
445
+ onChange: (n) => S({
446
+ ...v,
447
+ [e]: Z(t, n)
299
448
  })
300
449
  })
301
450
  }, e))
302
451
  })]
303
452
  }) : /* @__PURE__ */ a("div", {
304
453
  ref: f,
305
- id: g,
306
- className: E,
454
+ id: m,
455
+ className: x,
307
456
  ...d,
308
457
  children: [/* @__PURE__ */ a("div", {
309
458
  className: "nabs-ui-dynamicform__header",
310
459
  children: [/* @__PURE__ */ i("div", {
311
460
  className: "nabs-ui-dynamicform__title",
312
- children: w
313
- }), T ? /* @__PURE__ */ i("div", {
461
+ children: y
462
+ }), b ? /* @__PURE__ */ i("div", {
314
463
  className: "nabs-ui-dynamicform__description",
315
- children: T
464
+ children: b
316
465
  }) : null]
317
466
  }), /* @__PURE__ */ i("div", {
318
467
  className: "nabs-ui-dynamicform__fields",
319
- children: Object.entries(v.properties ?? {}).map(([e, t]) => /* @__PURE__ */ i("div", {
468
+ children: Object.entries(h.properties ?? {}).map(([e, t]) => /* @__PURE__ */ i("div", {
320
469
  className: "nabs-ui-dynamicform__field",
321
- children: /* @__PURE__ */ i(b, {
470
+ children: /* @__PURE__ */ i(Q, {
322
471
  schema: t,
323
472
  name: e,
324
- value: C[e],
325
- onChange: (n) => D({
326
- ...C,
327
- [e]: _(t, n)
473
+ value: v[e],
474
+ onChange: (n) => S({
475
+ ...v,
476
+ [e]: Z(t, n)
328
477
  })
329
478
  })
330
479
  }, e))
331
480
  })]
332
481
  });
333
482
  });
334
- x.displayName = "DynamicForm";
483
+ $.displayName = "DynamicForm";
335
484
  //#endregion
336
- export { x as DynamicForm };
485
+ export { $ as DynamicForm };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@net-advantage/nabs-ui-dynamicform",
3
- "version": "0.70.0",
3
+ "version": "0.72.0",
4
4
  "description": "Reusable schema-driven dynamic form for the Nabs UI library.",
5
5
  "type": "module",
6
6
  "main": "./dist/nabs-ui-dynamicform.cjs",
@@ -25,12 +25,17 @@
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "@vitejs/plugin-react": "^6.0.1",
28
+ "@vitest/coverage-v8": "^3.2.4",
28
29
  "react-dom": "^19.2.6",
29
30
  "typescript": "^5.8.0",
30
- "vite": "^8.0.12"
31
+ "vite": "^8.0.12",
32
+ "vitest": "^3.2.4"
31
33
  },
32
34
  "scripts": {
33
35
  "build": "vite build",
34
- "dev": "vite"
36
+ "dev": "vite",
37
+ "test:unit": "vitest run",
38
+ "test:unit:watch": "vitest",
39
+ "test:unit:coverage": "vitest run --coverage --coverage.reporter=html --coverage.reporter=json-summary --coverage.reporter=text-summary"
35
40
  }
36
41
  }