@net-advantage/nabs-ui-dynamicform 0.74.0 → 0.76.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nabs-ui-dynamicform/src/DynamicForm.field-renderer.test.d.ts +1 -0
- package/dist/nabs-ui-dynamicform/src/DynamicForm.test.d.ts +1 -0
- package/dist/nabs-ui-dynamicform/src/dynamicform.exports.test.d.ts +1 -0
- package/dist/nabs-ui-dynamicform.cjs +1 -1
- package/dist/nabs-ui-dynamicform.css +1 -1
- package/dist/nabs-ui-dynamicform.js +47 -32
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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 M=[`none`,`top`,`left`],N=[`default`,`currency`],P=`default`,F={none:``,top:`nabs-ui-textbox--label-top`,left:`nabs-ui-textbox--label-left`};function I(e){return typeof e==`string`&&M.includes(e)}function L(e){return I(e)?e:`top`}function R(e){return typeof e==`string`&&N.includes(e)}function z(e){return R(e)?e:P}function B(e){if(typeof e==`number`)return Number.isFinite(e);if(typeof e==`string`){let t=e.trim().replace(/,/g,``);if(!t)return!1;let n=Number(t);return Number.isFinite(n)}return!1}function V(e,t){return e||`nabs-ui-textbox-${t.replace(/:/g,``)}`}function H({label:e,labelPosition:t,className:n}){let r=L(t);return[`nabs-ui-textbox`,e?F[r]??F.top:``,n??``].filter(Boolean).join(` `)}function U(e,t=!1){return[`nabs-ui-textbox__input`,t?`nabs-ui-textbox__input--numeric`:``,e??``].filter(Boolean).join(` `)}function W(e){return[`nabs-ui-textbox__label`,e??``].filter(Boolean).join(` `)}function G(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 K({format:e,type:t=`text`,inputMode:n,value:r}){let i=z(e)===`currency`;return{isCurrency:i,shouldRightAlign:i||t===`number`||B(r),renderedType:i?`text`:t,renderedInputMode:i?n??`decimal`:n,renderedValue:i?G(r):r}}var q=(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=V(l,(0,e.useId)()),g=H({label:n,labelPosition:r,className:i}),_=W(o),{isCurrency:v,shouldRightAlign:y,renderedType:b,renderedInputMode:x,renderedValue:S}=K({format:s,type:u,inputMode:f,value:d}),C=U(a,y);return(0,t.jsxs)(`div`,{className:g,children:[n?(0,t.jsx)(`label`,{className:_,htmlFor:h,children:n}):null,v?(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:C,type:b,inputMode:x,value:S,...p})]}):(0,t.jsx)(`input`,{ref:m,id:h,className:C,type:b,inputMode:x,value:S,...p})]})});q.displayName=`Textbox`;function J(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Y(e){return!e||e.type!==`object`||!J(e.properties)?{}:Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,X(t)]))}function X(e){if(!e||!J(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 Y(e);default:return``}}function Z(e,t){if(!e||!J(e))return t;if(e.type===`object`&&J(e.properties)){let n=J(t)?t:{};return Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,Z(t,n[e]===void 0?X(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 ee(e){if(!e||!J(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 te={type:`object`,properties:{}};function Q({schema:e,name:n,value:r,onChange:i}){let a=e.title??n,o=e.description,s=ee(e),c=r;if(s===`radio`){let r=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)(q,{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:te,[p,m]=(0,e.useState)(()=>Z(f,r??Y(f)));(0,e.useEffect)(()=>{m(Z(f,r??Y(f)))},[f,r]);let h=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]:Z(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]:Z(n,t)})})},e))})]})});$.displayName=`DynamicForm`,exports.DynamicForm=$;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.nabs-ui-checkbox{box-sizing:border-box;cursor:pointer;font:inherit;align-items:center;gap:var(--nabs-ui-density-checkbox-gap,.75rem);min-width:0;padding:var(--nabs-ui-density-checkbox-padding-y,.8rem) var(--nabs-ui-density-checkbox-padding-x,1rem);transition:border-color .12s,box-shadow .12s,background-color .12s,transform .12s;display:inline-flex}.nabs-ui-checkbox:hover{transform:translateY(var(--nabs-ui-density-control-hover-translate-y,-1px))}.nabs-ui-checkbox__input{flex:none;margin:0}.nabs-ui-checkbox__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-checkbox--label-left{flex-direction:row-reverse}.nabs-ui-checkbox--label-top,.nabs-ui-checkbox--label-bottom{align-items:stretch;gap:var(--nabs-ui-density-checkbox-stack-gap,.5rem)}.nabs-ui-checkbox--label-top{flex-direction:column-reverse}.nabs-ui-checkbox--label-bottom{flex-direction:column}.nabs-ui-checkbox--label-top .nabs-ui-checkbox__label,.nabs-ui-checkbox--label-bottom .nabs-ui-checkbox__label{width:100%}.nabs-ui-checkbox--disabled{cursor:not-allowed}.nabs-ui-radiobutton{box-sizing:border-box;cursor:pointer;font:inherit;align-items:center;gap:var(--nabs-ui-density-radio-gap,.75rem);min-width:0;padding:var(--nabs-ui-density-radio-padding-y,.8rem) var(--nabs-ui-density-radio-padding-x,1rem);transition:border-color .12s,box-shadow .12s,background-color .12s,transform .12s;display:inline-flex}.nabs-ui-radiobutton:hover{transform:translateY(var(--nabs-ui-density-control-hover-translate-y,-1px))}.nabs-ui-radiobutton__input{flex:none;margin:0}.nabs-ui-radiobutton__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-radiobutton--label-left{flex-direction:row-reverse}.nabs-ui-radiobutton--label-top,.nabs-ui-radiobutton--label-bottom{align-items:stretch;gap:var(--nabs-ui-density-radio-stack-gap,.5rem)}.nabs-ui-radiobutton--label-top{flex-direction:column-reverse}.nabs-ui-radiobutton--label-bottom{flex-direction:column}.nabs-ui-radiobutton--label-top .nabs-ui-radiobutton__label,.nabs-ui-radiobutton--label-bottom .nabs-ui-radiobutton__label{width:100%}.nabs-ui-radiobutton--disabled{cursor:not-allowed}.nabs-ui-textarea{gap:var(--nabs-ui-density-gap-field,.5rem);min-width:0;display:grid}.nabs-ui-textarea__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-textarea__input{box-sizing:border-box;font:inherit;min-height:var(--nabs-ui-density-textarea-min-height,8rem);min-width:0;padding:var(--nabs-ui-density-textarea-padding-y,.85rem) var(--nabs-ui-density-textarea-padding-x,1rem);resize:vertical;width:100%;transition:border-color .12s,box-shadow .12s,background-color .12s}.nabs-ui-textarea__input[data-resize=none]{resize:none}.nabs-ui-textarea__input[data-resize=both]{resize:both}.nabs-ui-textarea__input[data-resize=horizontal]{resize:horizontal}.nabs-ui-textarea__input:disabled{cursor:not-allowed}.nabs-ui-textbox{gap:var(--nabs-ui-density-gap-field,.7rem);display:grid}.nabs-ui-textbox__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600}.nabs-ui-textbox__input{appearance:none;box-sizing:border-box;font:inherit;line-height:var(--nabs-ui-density-line-height-control,1.4);min-height:var(--nabs-ui-density-input-min-height,3rem);padding:var(--nabs-ui-density-input-padding-y,.8rem) var(--nabs-ui-density-input-padding-x,1rem);width:100%;transition:border-color .12s,box-shadow .12s,background-color .12s}.nabs-ui-textbox__input:disabled{cursor:not-allowed}.nabs-ui-textbox__currencyWrap{grid-template-columns:auto 1fr;align-items:center;display:grid}.nabs-ui-textbox__currencySymbol{min-width:var(--nabs-ui-density-textbox-currency-symbol-min-width,2rem);padding:var(--nabs-ui-density-textbox-currency-symbol-padding-y,.45rem) var(--nabs-ui-density-textbox-currency-symbol-padding-x,.65rem);justify-content:center;align-items:center;display:inline-flex}.nabs-ui-textbox--label-left{align-items:center;gap:var(--nabs-ui-density-gap-label-left,1rem);display:flex}.nabs-ui-textbox--label-left .nabs-ui-textbox__label{flex:0 0 var(--nabs-ui-density-label-width,9rem)}.nabs-ui-textbox--label-left .nabs-ui-textbox__input{flex:auto}@media (width<=640px){.nabs-ui-textbox--label-left{align-items:stretch;gap:var(--nabs-ui-density-gap-field,.7rem);flex-direction:column}.nabs-ui-textbox--label-left .nabs-ui-textbox__label{flex-basis:auto}}.nabs-ui-dynamicform{gap:var(--nabs-ui-density-dynamicform-gap,1rem);display:grid}.nabs-ui-dynamicform__header{gap:var(--nabs-ui-density-dynamicform-header-gap,.35rem);display:grid}.nabs-ui-dynamicform__title{font-size:var(--nabs-ui-density-dynamicform-title-font-size,1rem);font-weight:800;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-dynamicform__description{font-size:var(--nabs-ui-density-dynamicform-description-font-size,.9rem);margin:0;line-height:1.45}.nabs-ui-dynamicform__fields{gap:var(--nabs-ui-density-dynamicform-gap,1rem);display:grid}.nabs-ui-dynamicform__field{min-width:0}.nabs-ui-dynamicform__fieldset{gap:var(--nabs-ui-density-dynamicform-fieldset-gap,.85rem);min-width:0;padding:var(--nabs-ui-density-dynamicform-fieldset-padding-y,1rem) var(--nabs-ui-density-dynamicform-fieldset-padding-x,1rem);margin:0;display:grid}.nabs-ui-dynamicform__legend{font-size:var(--nabs-ui-density-font-size-control,.95rem);padding:0 var(--nabs-ui-density-dynamicform-legend-padding-x,.25rem);font-weight:800}.nabs-ui-dynamicform__radioGroup{gap:var(--nabs-ui-density-dynamicform-radio-gap,.65rem);display:grid}
|
|
1
|
+
.nabs-ui-checkbox{box-sizing:border-box;cursor:pointer;font:inherit;align-items:center;gap:var(--nabs-ui-density-checkbox-gap,.75rem);min-width:0;padding:var(--nabs-ui-density-checkbox-padding-y,.8rem) var(--nabs-ui-density-checkbox-padding-x,1rem);transition:border-color .12s,box-shadow .12s,background-color .12s,transform .12s;display:inline-flex}.nabs-ui-checkbox:hover{transform:translateY(var(--nabs-ui-density-control-hover-translate-y,-1px))}.nabs-ui-checkbox__input{flex:none;margin:0}.nabs-ui-checkbox__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-checkbox--label-left{flex-direction:row-reverse}.nabs-ui-checkbox--label-top,.nabs-ui-checkbox--label-bottom{align-items:stretch;gap:var(--nabs-ui-density-checkbox-stack-gap,.5rem)}.nabs-ui-checkbox--label-top{flex-direction:column-reverse}.nabs-ui-checkbox--label-bottom{flex-direction:column}.nabs-ui-checkbox--label-top .nabs-ui-checkbox__label,.nabs-ui-checkbox--label-bottom .nabs-ui-checkbox__label{width:100%}.nabs-ui-checkbox--disabled{cursor:not-allowed}.nabs-ui-radiobutton{box-sizing:border-box;cursor:pointer;font:inherit;align-items:center;gap:var(--nabs-ui-density-radio-gap,.75rem);min-width:0;padding:var(--nabs-ui-density-radio-padding-y,.8rem) var(--nabs-ui-density-radio-padding-x,1rem);transition:border-color .12s,box-shadow .12s,background-color .12s,transform .12s;display:inline-flex}.nabs-ui-radiobutton:hover{transform:translateY(var(--nabs-ui-density-control-hover-translate-y,-1px))}.nabs-ui-radiobutton__input{flex:none;margin:0}.nabs-ui-radiobutton__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-radiobutton--label-left{flex-direction:row-reverse}.nabs-ui-radiobutton--label-top,.nabs-ui-radiobutton--label-bottom{align-items:stretch;gap:var(--nabs-ui-density-radio-stack-gap,.5rem)}.nabs-ui-radiobutton--label-top{flex-direction:column-reverse}.nabs-ui-radiobutton--label-bottom{flex-direction:column}.nabs-ui-radiobutton--label-top .nabs-ui-radiobutton__label,.nabs-ui-radiobutton--label-bottom .nabs-ui-radiobutton__label{width:100%}.nabs-ui-radiobutton--disabled{cursor:not-allowed}.nabs-ui-textarea{gap:var(--nabs-ui-density-gap-field,.5rem);min-width:0;display:grid}.nabs-ui-textarea__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-textarea__input{box-sizing:border-box;font:inherit;min-height:var(--nabs-ui-density-textarea-min-height,8rem);min-width:0;padding:var(--nabs-ui-density-textarea-padding-y,.85rem) var(--nabs-ui-density-textarea-padding-x,1rem);resize:vertical;width:100%;transition:border-color .12s,box-shadow .12s,background-color .12s}.nabs-ui-textarea__input[data-resize=none]{resize:none}.nabs-ui-textarea__input[data-resize=both]{resize:both}.nabs-ui-textarea__input[data-resize=horizontal]{resize:horizontal}.nabs-ui-textarea__input:disabled{cursor:not-allowed}.nabs-ui-textbox{gap:var(--nabs-ui-density-gap-field,.7rem);display:grid}.nabs-ui-textbox__label{font-size:var(--nabs-ui-density-font-size-control,.95rem);font-weight:600}.nabs-ui-textbox__input{appearance:none;box-sizing:border-box;font:inherit;line-height:var(--nabs-ui-density-line-height-control,1.4);min-height:var(--nabs-ui-density-input-min-height,3rem);padding:var(--nabs-ui-density-input-padding-y,.8rem) var(--nabs-ui-density-input-padding-x,1rem);width:100%;transition:border-color .12s,box-shadow .12s,background-color .12s}.nabs-ui-textbox__input:disabled{cursor:not-allowed}.nabs-ui-textbox__input--numeric{text-align:right}.nabs-ui-textbox__currencyWrap{grid-template-columns:auto 1fr;align-items:center;display:grid}.nabs-ui-textbox__currencySymbol{min-width:var(--nabs-ui-density-textbox-currency-symbol-min-width,2rem);padding:var(--nabs-ui-density-textbox-currency-symbol-padding-y,.45rem) var(--nabs-ui-density-textbox-currency-symbol-padding-x,.65rem);justify-content:center;align-items:center;display:inline-flex}.nabs-ui-textbox--label-left{align-items:center;gap:var(--nabs-ui-density-gap-label-left,1rem);display:flex}.nabs-ui-textbox--label-left .nabs-ui-textbox__label{flex:0 0 var(--nabs-ui-density-label-width,9rem)}.nabs-ui-textbox--label-left .nabs-ui-textbox__input{flex:auto}@media (width<=640px){.nabs-ui-textbox--label-left{align-items:stretch;gap:var(--nabs-ui-density-gap-field,.7rem);flex-direction:column}.nabs-ui-textbox--label-left .nabs-ui-textbox__label{flex-basis:auto}}.nabs-ui-dynamicform{gap:var(--nabs-ui-density-dynamicform-gap,1rem);display:grid}.nabs-ui-dynamicform__header{gap:var(--nabs-ui-density-dynamicform-header-gap,.35rem);display:grid}.nabs-ui-dynamicform__title{font-size:var(--nabs-ui-density-dynamicform-title-font-size,1rem);font-weight:800;line-height:var(--nabs-ui-density-line-height-control,1.2)}.nabs-ui-dynamicform__description{font-size:var(--nabs-ui-density-dynamicform-description-font-size,.9rem);margin:0;line-height:1.45}.nabs-ui-dynamicform__fields{gap:var(--nabs-ui-density-dynamicform-gap,1rem);display:grid}.nabs-ui-dynamicform__field{min-width:0}.nabs-ui-dynamicform__fieldset{gap:var(--nabs-ui-density-dynamicform-fieldset-gap,.85rem);min-width:0;padding:var(--nabs-ui-density-dynamicform-fieldset-padding-y,1rem) var(--nabs-ui-density-dynamicform-fieldset-padding-x,1rem);margin:0;display:grid}.nabs-ui-dynamicform__legend{font-size:var(--nabs-ui-density-font-size-control,.95rem);padding:0 var(--nabs-ui-density-dynamicform-legend-padding-x,.25rem);font-weight:800}.nabs-ui-dynamicform__radioGroup{gap:var(--nabs-ui-density-dynamicform-radio-gap,.65rem);display:grid}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -152,7 +152,7 @@ function te(e) {
|
|
|
152
152
|
function ne(e) {
|
|
153
153
|
return ["nabs-ui-textarea__label", e ?? ""].filter(Boolean).join(" ");
|
|
154
154
|
}
|
|
155
|
-
function
|
|
155
|
+
function re({ rows: e, resize: t }) {
|
|
156
156
|
return {
|
|
157
157
|
renderedRows: typeof e == "number" ? e : 4,
|
|
158
158
|
renderedResize: k(t)
|
|
@@ -160,8 +160,8 @@ function j({ rows: e, resize: t }) {
|
|
|
160
160
|
}
|
|
161
161
|
//#endregion
|
|
162
162
|
//#region ../nabs-ui-textarea/src/Textarea.tsx
|
|
163
|
-
var
|
|
164
|
-
let f = A(s, n()), p = ee(t), m = te(r), h = ne(o), { renderedRows: g, renderedResize: _ } =
|
|
163
|
+
var j = 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: _ } = re({
|
|
165
165
|
rows: c,
|
|
166
166
|
resize: l
|
|
167
167
|
});
|
|
@@ -181,45 +181,59 @@ var M = e(({ label: e, className: t = "", inputClassName: r = "", labelClassName
|
|
|
181
181
|
})]
|
|
182
182
|
});
|
|
183
183
|
});
|
|
184
|
-
|
|
184
|
+
j.displayName = "Textarea";
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region ../nabs-ui-textbox/src/textbox.model.ts
|
|
187
|
-
var
|
|
187
|
+
var M = [
|
|
188
188
|
"none",
|
|
189
189
|
"top",
|
|
190
190
|
"left"
|
|
191
|
-
],
|
|
191
|
+
], N = ["default", "currency"], P = "default", F = {
|
|
192
192
|
none: "",
|
|
193
193
|
top: "nabs-ui-textbox--label-top",
|
|
194
194
|
left: "nabs-ui-textbox--label-left"
|
|
195
195
|
};
|
|
196
|
+
function I(e) {
|
|
197
|
+
return typeof e == "string" && M.includes(e);
|
|
198
|
+
}
|
|
196
199
|
function L(e) {
|
|
197
|
-
return
|
|
200
|
+
return I(e) ? e : "top";
|
|
198
201
|
}
|
|
199
202
|
function R(e) {
|
|
200
|
-
return
|
|
203
|
+
return typeof e == "string" && N.includes(e);
|
|
201
204
|
}
|
|
202
205
|
function z(e) {
|
|
203
|
-
return
|
|
204
|
-
}
|
|
205
|
-
function B(e) {
|
|
206
|
-
return z(e) ? e : F;
|
|
206
|
+
return R(e) ? e : P;
|
|
207
207
|
}
|
|
208
208
|
//#endregion
|
|
209
209
|
//#region ../nabs-ui-textbox/src/textbox.view-model.ts
|
|
210
|
+
function B(e) {
|
|
211
|
+
if (typeof e == "number") return Number.isFinite(e);
|
|
212
|
+
if (typeof e == "string") {
|
|
213
|
+
let t = e.trim().replace(/,/g, "");
|
|
214
|
+
if (!t) return !1;
|
|
215
|
+
let n = Number(t);
|
|
216
|
+
return Number.isFinite(n);
|
|
217
|
+
}
|
|
218
|
+
return !1;
|
|
219
|
+
}
|
|
210
220
|
function V(e, t) {
|
|
211
221
|
return e || `nabs-ui-textbox-${t.replace(/:/g, "")}`;
|
|
212
222
|
}
|
|
213
223
|
function H({ label: e, labelPosition: t, className: n }) {
|
|
214
|
-
let r =
|
|
224
|
+
let r = L(t);
|
|
215
225
|
return [
|
|
216
226
|
"nabs-ui-textbox",
|
|
217
|
-
e ?
|
|
227
|
+
e ? F[r] ?? F.top : "",
|
|
218
228
|
n ?? ""
|
|
219
229
|
].filter(Boolean).join(" ");
|
|
220
230
|
}
|
|
221
|
-
function U(e) {
|
|
222
|
-
return [
|
|
231
|
+
function U(e, t = !1) {
|
|
232
|
+
return [
|
|
233
|
+
"nabs-ui-textbox__input",
|
|
234
|
+
t ? "nabs-ui-textbox__input--numeric" : "",
|
|
235
|
+
e ?? ""
|
|
236
|
+
].filter(Boolean).join(" ");
|
|
223
237
|
}
|
|
224
238
|
function W(e) {
|
|
225
239
|
return ["nabs-ui-textbox__label", e ?? ""].filter(Boolean).join(" ");
|
|
@@ -236,9 +250,10 @@ function G(e) {
|
|
|
236
250
|
return e;
|
|
237
251
|
}
|
|
238
252
|
function K({ format: e, type: t = "text", inputMode: n, value: r }) {
|
|
239
|
-
let i =
|
|
253
|
+
let i = z(e) === "currency";
|
|
240
254
|
return {
|
|
241
255
|
isCurrency: i,
|
|
256
|
+
shouldRightAlign: i || t === "number" || B(r),
|
|
242
257
|
renderedType: i ? "text" : t,
|
|
243
258
|
renderedInputMode: i ? n ?? "decimal" : n,
|
|
244
259
|
renderedValue: i ? G(r) : r
|
|
@@ -251,19 +266,19 @@ var q = e(({ label: e, labelPosition: t = "top", className: r = "", inputClassNa
|
|
|
251
266
|
label: e,
|
|
252
267
|
labelPosition: t,
|
|
253
268
|
className: r
|
|
254
|
-
}), v =
|
|
269
|
+
}), v = W(s), { isCurrency: y, shouldRightAlign: b, renderedType: x, renderedInputMode: S, renderedValue: C } = K({
|
|
255
270
|
format: c,
|
|
256
271
|
type: d,
|
|
257
272
|
inputMode: p,
|
|
258
273
|
value: f
|
|
259
|
-
});
|
|
274
|
+
}), w = U(o, b);
|
|
260
275
|
return /* @__PURE__ */ a("div", {
|
|
261
276
|
className: _,
|
|
262
277
|
children: [e ? /* @__PURE__ */ i("label", {
|
|
263
|
-
className:
|
|
278
|
+
className: v,
|
|
264
279
|
htmlFor: g,
|
|
265
280
|
children: e
|
|
266
|
-
}) : null,
|
|
281
|
+
}) : null, y ? /* @__PURE__ */ a("div", {
|
|
267
282
|
className: "nabs-ui-textbox__currencyWrap",
|
|
268
283
|
children: [/* @__PURE__ */ i("span", {
|
|
269
284
|
className: "nabs-ui-textbox__currencySymbol",
|
|
@@ -272,7 +287,7 @@ var q = e(({ label: e, labelPosition: t = "top", className: r = "", inputClassNa
|
|
|
272
287
|
}), /* @__PURE__ */ i("input", {
|
|
273
288
|
ref: h,
|
|
274
289
|
id: g,
|
|
275
|
-
className:
|
|
290
|
+
className: w,
|
|
276
291
|
type: x,
|
|
277
292
|
inputMode: S,
|
|
278
293
|
value: C,
|
|
@@ -281,7 +296,7 @@ var q = e(({ label: e, labelPosition: t = "top", className: r = "", inputClassNa
|
|
|
281
296
|
}) : /* @__PURE__ */ i("input", {
|
|
282
297
|
ref: h,
|
|
283
298
|
id: g,
|
|
284
|
-
className:
|
|
299
|
+
className: w,
|
|
285
300
|
type: x,
|
|
286
301
|
inputMode: S,
|
|
287
302
|
value: C,
|
|
@@ -329,7 +344,7 @@ function Z(e, t) {
|
|
|
329
344
|
}
|
|
330
345
|
return t ?? "";
|
|
331
346
|
}
|
|
332
|
-
function
|
|
347
|
+
function ie(e) {
|
|
333
348
|
if (!e || !J(e)) return "textbox";
|
|
334
349
|
if (Array.isArray(e.enum) && e.enum.length > 0) return "radio";
|
|
335
350
|
if (e.type === "string") return e.maxLength !== void 0 && e.maxLength > 50 ? "textarea" : "textbox";
|
|
@@ -342,14 +357,14 @@ function re(e) {
|
|
|
342
357
|
}
|
|
343
358
|
//#endregion
|
|
344
359
|
//#region src/DynamicForm.tsx
|
|
345
|
-
var
|
|
360
|
+
var ae = {
|
|
346
361
|
type: "object",
|
|
347
362
|
properties: {}
|
|
348
363
|
};
|
|
349
364
|
function Q({ schema: e, name: t, value: n, onChange: r }) {
|
|
350
|
-
let o = e.title ?? t, s = e.description, c =
|
|
365
|
+
let o = e.title ?? t, s = e.description, c = ie(e), l = n;
|
|
351
366
|
if (c === "radio") {
|
|
352
|
-
let n =
|
|
367
|
+
let n = e.enum;
|
|
353
368
|
return /* @__PURE__ */ a("fieldset", {
|
|
354
369
|
className: "nabs-ui-dynamicform__fieldset",
|
|
355
370
|
children: [
|
|
@@ -373,10 +388,10 @@ function Q({ schema: e, name: t, value: n, onChange: r }) {
|
|
|
373
388
|
]
|
|
374
389
|
});
|
|
375
390
|
}
|
|
376
|
-
if (c === "textarea") return /* @__PURE__ */ i(
|
|
391
|
+
if (c === "textarea") return /* @__PURE__ */ i(j, {
|
|
377
392
|
label: o,
|
|
378
393
|
rows: 5,
|
|
379
|
-
value: String(l
|
|
394
|
+
value: String(l),
|
|
380
395
|
placeholder: String(e.default ?? ""),
|
|
381
396
|
onChange: (e) => r(e.target.value)
|
|
382
397
|
});
|
|
@@ -402,17 +417,17 @@ function Q({ schema: e, name: t, value: n, onChange: r }) {
|
|
|
402
417
|
step: p,
|
|
403
418
|
format: g ? "currency" : "default",
|
|
404
419
|
currencySymbol: g ? m : void 0,
|
|
405
|
-
value: String(l
|
|
420
|
+
value: String(l),
|
|
406
421
|
placeholder: String(e.default ?? ""),
|
|
407
422
|
onChange: (e) => _(e.target.value)
|
|
408
423
|
});
|
|
409
424
|
}
|
|
410
425
|
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 :
|
|
426
|
+
let p = n(), m = l ?? `nabs-ui-dynamicform-${p.replace(/:/g, "")}`, h = e && e.type === "object" ? e : ae, [g, _] = r(() => Z(h, o ?? Y(h)));
|
|
412
427
|
t(() => {
|
|
413
428
|
_(Z(h, o ?? Y(h)));
|
|
414
429
|
}, [h, o]);
|
|
415
|
-
let v =
|
|
430
|
+
let v = g, y = h.title ?? "Dynamic form", b = h.description, x = [
|
|
416
431
|
"nabs-ui-dynamicform",
|
|
417
432
|
u ? "nabs-ui-dynamicform--disabled" : "",
|
|
418
433
|
c
|
package/package.json
CHANGED