ngx-view-builder-runtime 0.5.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/LICENSE.md +69 -0
- package/README.md +98 -0
- package/fesm2022/ngx-view-builder-runtime-avatar-element-D9TPAiIC.mjs +1 -0
- package/fesm2022/ngx-view-builder-runtime-breadcrumbs-element-B-IYngp0.mjs +1 -0
- package/fesm2022/ngx-view-builder-runtime-icon-element-D2Zs5vIG.mjs +1 -0
- package/fesm2022/ngx-view-builder-runtime-ngx-view-builder-runtime-q8FSSVhq.mjs +49 -0
- package/fesm2022/ngx-view-builder-runtime-toast-element-zLm-618Z.mjs +1 -0
- package/fesm2022/ngx-view-builder-runtime.mjs +1 -0
- package/package.json +61 -0
- package/styles/base.css +0 -0
- package/styles/components.css +443 -0
- package/styles/element.css +618 -0
- package/styles/fp-utilities.css +310 -0
- package/styles/index.css +7 -0
- package/styles/reset.css +54 -0
- package/styles/tokens.css +290 -0
- package/types/ngx-view-builder-runtime.d.ts +8801 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{NgClass as r}from"@angular/common";import*as o from"@angular/core";import{input as v,signal as p,inject as a,computed as n,ChangeDetectionStrategy as u,Component as m}from"@angular/core";import{E as b,U as h,S as g,a as l,N as c,D as d}from"./ngx-view-builder-runtime-ngx-view-builder-runtime-q8FSSVhq.mjs";class e{model=v.required(...ngDevMode?[{debugName:"model"}]:[]);visible=p(true,...ngDevMode?[{debugName:"visible"}]:[]);elementActionService=a(b);uiTranslationService=a(h);hideTimeoutId=null;autoHideStartedAt=0;autoHideDelayMs=0;autoHideRemainingMs=0;isEditor=n(()=>g.isEditor(),...ngDevMode?[{debugName:"isEditor"}]:[]);shellClass=n(()=>{const t=this.resolvePosition();return{[`nvb-toast-shell--${t}`]:true,"nvb-toast-shell--editor":this.isEditor()}},...ngDevMode?[{debugName:"shellClass"}]:[]);variantClass=n(()=>`nvb-toast--${this.resolveVariant()}`,...ngDevMode?[{debugName:"variantClass"}]:[]);iconName=n(()=>{const t=String(this.model()?.icon??"").trim();if(t){return t}switch(this.resolveVariant()){case"success":return"check_circle";case"warning":return"warning";case"error":return"error";default:return"info"}},...ngDevMode?[{debugName:"iconName"}]:[]);showActionButton=n(()=>String(this.model()?.actionText??"").trim().length>0,...ngDevMode?[{debugName:"showActionButton"}]:[]);ngOnInit(){this.visible.set(Boolean(this.model()?.initiallyVisible??true));if(this.isEditor()){this.visible.set(true);return}this.scheduleAutoHide()}ngOnDestroy(){this.clearAutoHide()}onToastClick(t){t.stopPropagation();void this.runActions("click")}onActionClick(t){t.preventDefault();t.stopPropagation();void this.runActions("action")}onDismissClick(t){t.preventDefault();t.stopPropagation();this.visible.set(false);this.clearAutoHide();void this.runActions("dismiss")}pauseAutoHide(){if(this.isEditor()||this.hideTimeoutId===null){return}const t=Date.now()-this.autoHideStartedAt;this.autoHideRemainingMs=Math.max(1e3,this.autoHideDelayMs-t);this.clearAutoHide()}resumeAutoHide(){if(this.isEditor()||!this.visible()||!this.model().autoHide||this.hideTimeoutId!==null){return}this.scheduleAutoHide(this.autoHideRemainingMs||this.resolveAutoHideDelayMs())}resolvedTitle(){const t=String(this.model()?.title??"").trim();return t==="Notification"?this.uiTranslationService.translate("toast.titleDefault","Notification"):t}resolvedDescription(){const t=String(this.model()?.descriptionText??"").trim();return t==="Toast message"?this.uiTranslationService.translate("toast.descriptionDefault","Toast message"):t}dismissLabel(){return this.uiTranslationService.translate("common.dismiss","Dismiss")}toastAriaLive(){return this.resolveVariant()==="info"?"polite":"assertive"}toastRole(){return this.toastAriaLive()==="assertive"?"alert":"status"}scheduleAutoHide(t=this.resolveAutoHideDelayMs()){this.clearAutoHide();if(!this.visible()){return}if(!this.model().autoHide){return}this.autoHideDelayMs=t;this.autoHideRemainingMs=t;this.autoHideStartedAt=Date.now();this.hideTimeoutId=setTimeout(()=>{this.visible.set(false);this.hideTimeoutId=null;void this.runActions("autoHide")},t)}clearAutoHide(){if(this.hideTimeoutId===null){return}clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null}resolveAutoHideDelayMs(){const t=Number(this.model()?.autoHideMs);if(Number.isFinite(t)&&t>=0){return Math.floor(t)}return 7e3}async runActions(t){const i={action:t,value:this.model().value,item:null,row:null};const s=String(this.model().name??"").trim();if(s){i[s]=this.model().value}await this.elementActionService.runActions(this.model(),this.model().events??[],"click",i)}resolveVariant(){const t=String(this.model()?.variant??"info").trim().toLowerCase();if(t==="error"||t==="danger"||t==="risk"){return"error"}if(t==="warning"||t==="warn"){return"warning"}if(t==="success"||t==="ok"){return"success"}if(t==="info"||t==="neutral"){return"info"}return"info"}resolvePosition(){const t=String(this.model()?.position??"top-right").trim().toLowerCase();if(t==="top-left"||t==="top-center"||t==="top-right"||t==="bottom-left"||t==="bottom-center"||t==="bottom-right"){return t}return"top-right"}static ɵfac=o.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:o,type:e,deps:[],target:o.ɵɵFactoryTarget.Component});static ɵcmp=o.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:e,isStandalone:true,selector:"toast-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:o,template:'<element-wrapper [model]="model()">\n @if (visible()) {\n <section class="nvb-toast-shell" [ngClass]="shellClass()" data-testid="toast-root">\n <article\n class="nvb-toast"\n [ngClass]="variantClass()"\n [class.nvb-toast--no-icon]="!model().showIcon"\n [attr.role]="toastRole()"\n [attr.aria-live]="toastAriaLive()"\n (click)="onToastClick($event)"\n (mouseenter)="pauseAutoHide()"\n (mouseleave)="resumeAutoHide()"\n (focusin)="pauseAutoHide()"\n (focusout)="resumeAutoHide()"\n >\n @if (model().showIcon) {\n <span class="nvb-toast__media" aria-hidden="true">\n <nvb-icon class="nvb-toast__icon" [name]="iconName()"></nvb-icon>\n </span>\n }\n\n <div class="nvb-toast__content">\n <h4 class="nvb-toast__title">{{ resolvedTitle() | dynamicText: model() }}</h4>\n\n @if (resolvedDescription()) {\n <p class="nvb-toast__description">\n {{ resolvedDescription() | dynamicText: model() }}\n </p>\n }\n </div>\n\n @if (showActionButton()) {\n <button type="button" class="nvb-toast__action" (click)="onActionClick($event)">\n {{ model().actionText | dynamicText: model() }}\n </button>\n }\n\n @if (model().dismissible) {\n <button\n type="button"\n class="nvb-toast__dismiss"\n (click)="onDismissClick($event)"\n [attr.aria-label]="dismissLabel()"\n >\n <nvb-icon name="close"></nvb-icon>\n </button>\n }\n </article>\n </section>\n }\n</element-wrapper>\n',styles:[":host{display:block;width:100%;font-family:var(--nvb-font-family)}.nvb-toast-shell{position:fixed;z-index:2147483500;width:min(360px,100vw - 32px);pointer-events:none;display:grid;gap:16px}.nvb-toast-shell--editor{position:relative;inset:auto;width:min(360px,100%);max-width:100%;margin-top:8px}.nvb-toast-shell--top-left{top:16px;left:16px}.nvb-toast-shell--top-center{top:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--top-right{top:16px;right:16px}.nvb-toast-shell--bottom-left{bottom:16px;left:16px}.nvb-toast-shell--bottom-center{bottom:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--bottom-right{bottom:16px;right:16px}.nvb-toast{--nvb-toast-icon-color: var(--nvb-color-primary-600);pointer-events:auto;position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) 24px;gap:4px 12px;align-items:start;min-height:52px;padding:12px;border:1px solid var(--nvb-color-neutral-200);border-radius:var(--nvb-toast-radius, 4px);background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);box-shadow:0 8px 16px color-mix(in oklab,var(--nvb-color-neutral-950) 14%,transparent),0 0 2px color-mix(in oklab,var(--nvb-color-neutral-950) 12%,transparent);overflow:hidden}.nvb-toast__media{grid-column:1;grid-row:1/span 2;width:20px;height:20px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-toast-icon-color);flex:0 0 auto}.nvb-toast__icon{font-size:20px;line-height:1}.nvb-toast__content{grid-column:2;min-width:0;display:grid;gap:2px}.nvb-toast--no-icon .nvb-toast__content,.nvb-toast--no-icon .nvb-toast__action{grid-column:1/3}.nvb-toast__title{margin:0;font-size:14px;font-weight:600;line-height:20px;letter-spacing:0;color:var(--nvb-color-neutral-900)}.nvb-toast__description{margin:0;font-size:13px;line-height:18px;color:var(--nvb-color-neutral-600);overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.nvb-toast__action{grid-column:2;justify-self:start;min-height:22px;padding:0;border:0;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-primary-700);font:inherit;font-size:13px;line-height:20px;font-weight:600;cursor:pointer;white-space:nowrap}.nvb-toast__action:hover{color:var(--nvb-color-primary-800);text-decoration:underline;text-underline-offset:2px}.nvb-toast__action:focus-visible,.nvb-toast__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-toast__dismiss{grid-column:3;grid-row:1;width:24px;height:24px;margin:-2px -2px 0 0;border:1px solid transparent;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-neutral-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .16s ease,color .16s ease}.nvb-toast__dismiss:hover{background:var(--nvb-color-neutral-100);color:var(--nvb-color-neutral-900)}.nvb-toast--info{--nvb-toast-icon-color: var(--nvb-color-primary-600)}.nvb-toast--success{--nvb-toast-icon-color: var(--nvb-color-success-700)}.nvb-toast--warning{--nvb-toast-icon-color: var(--nvb-color-warning-700)}.nvb-toast--error{--nvb-toast-icon-color: var(--nvb-color-risk-700)}@media(max-width:520px){.nvb-toast-shell{width:min(360px,100vw - 24px)}}\n"],dependencies:[{kind:"component",type:l,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:r,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"component",type:c,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]},{kind:"pipe",type:d,name:"dynamicText"}],changeDetection:o.ChangeDetectionStrategy.OnPush})}o.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:o,type:e,decorators:[{type:m,args:[{selector:"toast-element",changeDetection:u.OnPush,imports:[l,r,d,c],template:'<element-wrapper [model]="model()">\n @if (visible()) {\n <section class="nvb-toast-shell" [ngClass]="shellClass()" data-testid="toast-root">\n <article\n class="nvb-toast"\n [ngClass]="variantClass()"\n [class.nvb-toast--no-icon]="!model().showIcon"\n [attr.role]="toastRole()"\n [attr.aria-live]="toastAriaLive()"\n (click)="onToastClick($event)"\n (mouseenter)="pauseAutoHide()"\n (mouseleave)="resumeAutoHide()"\n (focusin)="pauseAutoHide()"\n (focusout)="resumeAutoHide()"\n >\n @if (model().showIcon) {\n <span class="nvb-toast__media" aria-hidden="true">\n <nvb-icon class="nvb-toast__icon" [name]="iconName()"></nvb-icon>\n </span>\n }\n\n <div class="nvb-toast__content">\n <h4 class="nvb-toast__title">{{ resolvedTitle() | dynamicText: model() }}</h4>\n\n @if (resolvedDescription()) {\n <p class="nvb-toast__description">\n {{ resolvedDescription() | dynamicText: model() }}\n </p>\n }\n </div>\n\n @if (showActionButton()) {\n <button type="button" class="nvb-toast__action" (click)="onActionClick($event)">\n {{ model().actionText | dynamicText: model() }}\n </button>\n }\n\n @if (model().dismissible) {\n <button\n type="button"\n class="nvb-toast__dismiss"\n (click)="onDismissClick($event)"\n [attr.aria-label]="dismissLabel()"\n >\n <nvb-icon name="close"></nvb-icon>\n </button>\n }\n </article>\n </section>\n }\n</element-wrapper>\n',styles:[":host{display:block;width:100%;font-family:var(--nvb-font-family)}.nvb-toast-shell{position:fixed;z-index:2147483500;width:min(360px,100vw - 32px);pointer-events:none;display:grid;gap:16px}.nvb-toast-shell--editor{position:relative;inset:auto;width:min(360px,100%);max-width:100%;margin-top:8px}.nvb-toast-shell--top-left{top:16px;left:16px}.nvb-toast-shell--top-center{top:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--top-right{top:16px;right:16px}.nvb-toast-shell--bottom-left{bottom:16px;left:16px}.nvb-toast-shell--bottom-center{bottom:16px;left:50%;transform:translate(-50%)}.nvb-toast-shell--bottom-right{bottom:16px;right:16px}.nvb-toast{--nvb-toast-icon-color: var(--nvb-color-primary-600);pointer-events:auto;position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) 24px;gap:4px 12px;align-items:start;min-height:52px;padding:12px;border:1px solid var(--nvb-color-neutral-200);border-radius:var(--nvb-toast-radius, 4px);background:var(--nvb-color-neutral-000);color:var(--nvb-color-neutral-800);box-shadow:0 8px 16px color-mix(in oklab,var(--nvb-color-neutral-950) 14%,transparent),0 0 2px color-mix(in oklab,var(--nvb-color-neutral-950) 12%,transparent);overflow:hidden}.nvb-toast__media{grid-column:1;grid-row:1/span 2;width:20px;height:20px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;color:var(--nvb-toast-icon-color);flex:0 0 auto}.nvb-toast__icon{font-size:20px;line-height:1}.nvb-toast__content{grid-column:2;min-width:0;display:grid;gap:2px}.nvb-toast--no-icon .nvb-toast__content,.nvb-toast--no-icon .nvb-toast__action{grid-column:1/3}.nvb-toast__title{margin:0;font-size:14px;font-weight:600;line-height:20px;letter-spacing:0;color:var(--nvb-color-neutral-900)}.nvb-toast__description{margin:0;font-size:13px;line-height:18px;color:var(--nvb-color-neutral-600);overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.nvb-toast__action{grid-column:2;justify-self:start;min-height:22px;padding:0;border:0;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-primary-700);font:inherit;font-size:13px;line-height:20px;font-weight:600;cursor:pointer;white-space:nowrap}.nvb-toast__action:hover{color:var(--nvb-color-primary-800);text-decoration:underline;text-underline-offset:2px}.nvb-toast__action:focus-visible,.nvb-toast__dismiss:focus-visible{outline:0;box-shadow:var(--nvb-focus-ring)}.nvb-toast__dismiss{grid-column:3;grid-row:1;width:24px;height:24px;margin:-2px -2px 0 0;border:1px solid transparent;border-radius:var(--nvb-button-radius, 4px);background:transparent;color:var(--nvb-color-neutral-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .16s ease,color .16s ease}.nvb-toast__dismiss:hover{background:var(--nvb-color-neutral-100);color:var(--nvb-color-neutral-900)}.nvb-toast--info{--nvb-toast-icon-color: var(--nvb-color-primary-600)}.nvb-toast--success{--nvb-toast-icon-color: var(--nvb-color-success-700)}.nvb-toast--warning{--nvb-toast-icon-color: var(--nvb-color-warning-700)}.nvb-toast--error{--nvb-toast-icon-color: var(--nvb-color-risk-700)}@media(max-width:520px){.nvb-toast-shell{width:min(360px,100vw - 24px)}}\n"]}]}],propDecorators:{model:[{type:o.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{e as ToastElement};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as s,b as i,c as t,d as o,e as r,f as l,g as n,h as d,B as E,i as c,j as u,k as S,l as m,m as T,n as _,o as g,p as b,C as M,q as N,r as A,s as R,t as I,u as C,v as p,w as B,x as v,y as V,z as L,F as x,G as P,H as w,I as D,J as O,K as y,L as U,O as F,P as h,Q as G,R as X,T as W,V as H,W as Y,X as k,Y as z,Z as K,_ as f,$ as J,a0 as j,a1 as Z,a2 as q,a3 as Q,a4 as $,D as ee,a5 as ae,a6 as se,a7 as ie,a8 as te,a9 as oe,aa as re,ab as le,ac as ne,E as de,ad as Ee,ae as ce,af as ue,ag as Se,ah as me,ai as Te,aj as _e,ak as ge,al as be,am as Me,an as Ne,ao as Ae,ap as Re,aq as Ie,ar as Ce,as as pe,at as Be,au as ve,av as Ve,aw as Le,ax as xe,ay as Pe,az as we,aA as De,aB as Oe,aC as ye,aD as Ue,aE as Fe,aF as he,aG as Ge,aH as Xe,aI as We,aJ as He,aK as Ye,aL as ke,aM as ze,aN as Ke,aO as fe,M as Je,aP as je,aQ as Ze,aR as qe,aS as Qe,aT as $e,aU as ea,aV as aa,aW as sa,aX as ia,aY as ta,aZ as oa,a_ as ra,a$ as la,b0 as na,b1 as da,b2 as Ea,b3 as ca,b4 as ua,b5 as Sa,b6 as ma,b7 as Ta,b8 as _a,b9 as ga,ba,bb as Ma,bc as Na,bd as Aa,be as Ra,bf as Ia,bg as Ca,bh as pa,bi as Ba,bj as va,bk as Va,bl as La,bm as xa,bn as Pa,bo as wa,bp as Da,bq as Oa,br as ya,bs as Ua,bt as Fa,bu as ha,bv as Ga,bw as Xa,bx as Wa,by as Ha,bz as Ya,bA as ka,bB as za,N as Ka,bC as fa,bD as Ja,bE as ja,bF as Za,bG as qa,bH as Qa,bI as $a,bJ as es,bK as as,bL as ss,bM as is,bN as ts,bO as os,bP as rs,bQ as ls,bR as ns,bS as ds,bT as Es,bU as cs,bV as us,bW as Ss,bX as ms,bY as Ts,bZ as _s,b_ as gs,b$ as bs,c0 as Ms,c1 as Ns,c2 as As,c3 as Rs,c4 as Is,c5 as Cs,c6 as ps,c7 as Bs,c8 as vs,c9 as Vs,ca as Ls,cb as xs,cc as Ps,S as ws,cd as Ds,ce as Os,cf as ys,cg as Us,ch as Fs,ci as hs,cj as Gs,ck as Xs,cl as Ws,cm as Hs,cn as Ys,co as ks,cp as zs,cq as Ks,cr as fs,cs as Js,ct as js,cu as Zs,cv as qs,cw as Qs,cx as $s,cy as ei,cz as ai,cA as si,cB as ii,cC as ti,cD as oi,U as ri,cE as li,cF as ni,cG as di,cH as Ei,cI as ci,cJ as ui,cK as Si,cL as mi,cM as Ti,cN as _i,cO as gi,cP as bi,cQ as Mi,cR as Ni,cS as Ai,cT as Ri,cU as Ii,cV as Ci,cW as pi,cX as Bi,cY as vi,cZ as Vi,c_ as Li,c$ as xi,d0 as Pi,d1 as wi,d2 as Di,d3 as Oi,d4 as yi,d5 as Ui,d6 as Fi,d7 as hi,d8 as Gi,d9 as Xi,da as Wi,db as Hi,dc as Yi,dd as ki,de as zi,df as Ki,dg as fi,dh as Ji,di as ji,dj as Zi,dk as qi,dl as Qi,dm as $i,dn as et,dp as at,dq as st,dr as it,ds as tt,dt as ot,du as rt,dv as lt,dw as nt,dx as dt,dy as Et,dz as ct,dA as ut,dB as St,dC as mt,dD as Tt,dE as _t,dF as gt,dG as bt}from"./ngx-view-builder-runtime-ngx-view-builder-runtime-q8FSSVhq.mjs";export{s as ALIGN_CLASS_MAP,i as ALIGN_CLASS_PREFIX,t as APPLICATION_LOCALE_VALUE,o as AccordionElement,r as AccordionModel,l as ApplicationLocaleService,n as AutocompleteModel,d as AvatarModel,E as BLOCK_TAGS,c as BUILT_IN_STRUCTURE_MIGRATIONS,u as BUILT_IN_TABLE_CELL_ELEMENT_TYPES,S as BadgeModel,m as BreadcrumbsModel,T as BuilderModel,_ as BuilderPageDisplayModeEnum,g as BuilderTabRegistryService,b as ButtonModel,M as COLOR_CLASS_PREFIX,N as CURRENT_SCHEMA_VERSION,A as ChartModel,R as CheckboxInputModel,I as ChoiceModel,C as ColumnFragmentModeEnum,p as ColumnModel,B as ComponentRegistryService,v as ConfirmDialog,V as CreatorStructureService,L as CustomHtmlModel,x as DATA_JSON_CAPABLE_ELEMENT_TYPES,P as DEFAULT_FONT,w as DEFAULT_FONT_CLASS,D as DEFAULT_MOBILE_BREAKPOINT,O as DEFAULT_SIZE_CLASS,y as DEFAULT_TABLET_BREAKPOINT,U as DEFAULT_TEXT_COLOR,F as DataService,h as DataSourceModel,G as DataSourceService,X as DatePickerModel,W as DateRangeModel,H as DialogDragController,Y as DialogElement,k as DialogModel,z as DividerModel,K as DomInstrumentationService,f as DragAndDropService,J as DragAutoScrollService,j as DynamicPanel,Z as DynamicPanelModel,q as DynamicTableColumnModel,Q as DynamicTableModel,$ as DynamicTableRowColumnModel,ee as DynamicTextPipe,ae as ELEMENT_ROW_CONTEXT_KEY,se as ELEMENT_ROW_SCOPE_PATH_KEY,ie as EN_UI_DICTIONARY,te as EXCLUDE_FROM_DATA_JSON_KEY,oe as ElementActionButtonToneEnum,re as ElementActionButtonVariantEnum,le as ElementActionDialogOperationEnum,ne as ElementActionResponseModeEnum,de as ElementActionService,Ee as ElementActionSetValueModeEnum,ce as ElementActionToastPositionEnum,ue as ElementActionToastVariantEnum,Se as ElementActionTriggerEnum,me as ElementActionTypeEnum,Te as ElementBaseModel,_e as ElementContentBox,ge as ElementContentRow,be as ElementDataSourceUseForEnum,Me as ElementExecutionModeEnum,Ne as ElementFocusService,Ae as ElementTypesEnum,Re as ElementsService,Ie as EmptyBlockElement,Ce as EmptyBlockModel,pe as EventService,Be as ExpressionService,ve as FONT_CLASS_MAP,Ve as FONT_CLASS_PREFIX,Le as FeaturePackRegistryService,xe as FileUploadModel,Pe as ForgeInitializerService,we as HeaderModel,De as HeaderTabEnum,Oe as INLINE_TAGS,ye as IconModel,Ue as IconSvgService,Fe as IframeModel,he as ImageModel,Ge as LEGACY_SCHEMA_VERSION,Xe as LINE_HEIGHT_CLASS_MAP,We as LINE_HEIGHT_CLASS_PREFIX,He as LOCALE_CHOICES,Ye as ListBoxModel,ke as ListGridModel,ze as LocalizationService,Ke as MANAGED_STRUCTURE_SETTING_KEYS,fe as MARK_TAG_MAP,Je as MarkupSecurityService,je as MessageCardModel,Ze as ModelService,qe as MultiSelectInputModel,Qe as NGX_VIEW_BUILDER_AI_ACTION_TYPES,$e as NGX_VIEW_BUILDER_AI_API_VERSION,ea as NGX_VIEW_BUILDER_AI_AUTOMATION_ACTION_TYPES,aa as NGX_VIEW_BUILDER_AI_ROW_CONTAINERS,sa as NGX_VIEW_BUILDER_AI_TAB_CONTAINERS,ia as NGX_VIEW_BUILDER_AI_TEMPLATES_CAPABILITY,ta as NGX_VIEW_BUILDER_AI_VALIDATOR_TYPES,oa as NGX_VIEW_BUILDER_BRIDGE_PROTOCOL_VERSION,ra as NGX_VIEW_BUILDER_PROJECT_LAYER,la as NGX_VIEW_BUILDER_UI_TRANSLATIONS,na as NVB_TEXT_CONTEXT_KEY,da as NativeCodeEditor,Ea as NgxViewBuilder,ca as NgxViewBuilderActionExecutorService,ua as NgxViewBuilderAiApiService,Sa as NgxViewBuilderAlignEnum,ma as NgxViewBuilderApiService,Ta as NgxViewBuilderAutomationActionTypeEnum,_a as NgxViewBuilderAutomationService,ga as NgxViewBuilderBuilderTabRenderModeEnum,ba as NgxViewBuilderChromePositionEnum,Ma as NgxViewBuilderDataSourceTypeEnum,Na as NgxViewBuilderDialogCloseReasonEnum,Aa as NgxViewBuilderExecutionReasonEnum,Ra as NgxViewBuilderHeadlessService,Ia as NgxViewBuilderInteractionStatusEnum,Ca as NgxViewBuilderMcpBridgeService,pa as NgxViewBuilderPageNavigationModeEnum,Ba as NgxViewBuilderPreviewModeEnum,va as NgxViewBuilderProcessService,Va as NgxViewBuilderRenderModeEnum,La as NgxViewBuilderRenderPhaseEnum,xa as NgxViewBuilderRenderer,Pa as NgxViewBuilderRuleExecutedBranchEnum,wa as NgxViewBuilderRuleRunModeEnum,Da as NgxViewBuilderRulesEngineService,Oa as NgxViewBuilderRuntime,ya as NgxViewBuilderSaveRequestedSourceEnum,Ua as NgxViewBuilderTableSettingsSourceEnum,Fa as NgxViewBuilderThemeModeEnum,ha as NgxViewBuilderTriggerEngineService,Ga as NgxViewBuilderTriggerEventEnum,Xa as NgxViewBuilderValidator,Wa as NgxViewBuilderWebsocketMessageModeEnum,Ha as NumberInputModel,Ya as NumberStepperModel,ka as NvbElement,za as NvbElementContextService,Ka as NvbIcon,fa as NvbRichTextEditor,Ja as NvbRows,ja as NvbScope,Za as NvbSelect,qa as NvbStyleOutlet,Qa as NvbTab,$a as PHONE_COUNTRY_OPTIONS,es as PHONE_COUNTRY_PROPERTY_CHOICES,as as PageElement,ss as PageTitleModel,is as PanelElement,ts as PanelModel,os as PhoneInputModel,rs as PreviewRendererService,ls as ProgressBarModel,ns as ProgressFlowElement,ds as ProgressFlowModel,Es as PropertyModel,cs as RICH_TEXT_TOOLBAR_ICONS,us as RICH_TEXT_TOOLBAR_TOOLS,Ss as RadioInputModel,ms as RendererService,Ts as RichTextModel,_s as RouterOutletModel,gs as RowModel,bs as RuntimeDynamicPanel,Ms as RuntimeVariableSourceTypeEnum,Ns as RuntimeVariablesService,As as SIZE_CLASS_MAP,Rs as SIZE_CLASS_PREFIX,Is as SelectButtonModel,Cs as SelectInputModel,ps as SettingsModel,Bs as SignaturePadModel,vs as SingleCheckboxModel,Vs as SliderModel,Ls as SpacerModel,xs as SplitterElement,Ps as SplitterModel,ws as StateService,Ds as StatsCardModel,Os as StructureMigrationService,ys as StructureModel,Us as StructureService,Fs as TableCellElementRegistryService,hs as TableColumnAlignEnum,Gs as TableColumnCellActionsDisplayModeEnum,Xs as TableColumnTypeEnum,Ws as TableFilterControlTypeEnum,Hs as TableFilterOptionsSourceTypeEnum,Ys as TableInlineEditStartModeEnum,ks as TableInlineEditorTypeEnum,zs as TableModel,Ks as TableRowActionsDropdownButtonStyleEnum,fs as TableStatusToneEnum,Js as TabsElement,js as TabsModel,Zs as TabsProModel,qs as TemplateEngineService,Qs as TemplateStorageModeEnum,$s as TextAreaModel,ei as TextInputModel,ai as TimePickerModel,si as ToastModel,ii as ToggleSwitchModel,ti as TooltipComponent,oi as UiTranslatePipe,ri as UiTranslationService,li as ValidatorService,ni as ValueChangeTriggerEnum,di as VideoModel,Ei as applyDynamicPanelRowNumberingContext,ci as applyElementRowContext,ui as applyRuntimeNumberingContext,Si as applyStructureMigrations,mi as applyViewportBreakpoints,Ti as bridgeNgxViewBuilderApiEvents,_i as buildElementRowRuntimeContext,gi as buildFocusKey,bi as buildResponsiveColumnStyle,Mi as clearStructureMigrationNotice,Ni as cloneRecord,Ai as cloneValue,Ri as composeCssSize,Ii as configureStructureMigrations,Ci as createUuid,pi as describeDragEvent,Bi as describeEventTarget,vi as describeMouseEvent,Vi as elements,Li as getMobileBreakpoint,xi as getRuntimeTextContext,Pi as getStructureMigrationConfig,wi as getTabletBreakpoint,Di as getViewportContentWidth,Oi as isDataJsonCapableElementType,yi as isDragDebugEnabled,Ui as isMobileViewport,Fi as isMobileWidth,hi as isPlainRecord,Gi as isRelativeResponsiveWidth,Xi as isTabletViewport,Wi as isTabletWidth,Hi as lastStructureMigration,Yi as logDragDebug,ki as logDragDebugThrottled,zi as migrateStructure,Ki as normalizeBreakpoint,fi as normalizeCssSizeUnit,Ji as normalizeResponsiveCssSize,ji as normalizeStringList,Zi as provideNgxViewBuilderExtensions,qi as provideNgxViewBuilderMigrations,Qi as provideNgxViewBuilderProjectLayer,$i as provideNgxViewBuilderProjectLayers,et as provideNgxViewBuilderRuntime,at as provideNgxViewBuilderUiTranslations,st as pruneStructureSettings,it as readSchemaVersion,tt as recordStructureMigration,ot as resetStructureMigrationConfig,rt as resolveAllowedPhoneCountries,lt as resolveCssSizeSetting,nt as resolveElementRowContext,dt as resolveElementRowScope,Et as resolveElementRowScopedPath,ct as resolveFixedViewport,ut as resolvePhoneCountry,St as resolveResponsiveDisplayWidth,mt as resolveResponsiveWidth,Tt as resolveRuntimeTextContextValue,_t as resolveStructureSettings,gt as setElementRowContext,bt as setViewportContentWidth};
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ngx-view-builder-runtime",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Native Angular runtime for NGX View Builder: renders forms, dashboards, data tables and guided flows defined as JSON.",
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
|
+
"homepage": "https://ngxviewbuilder.io",
|
|
7
|
+
"author": "NGX View Builder (https://ngxviewbuilder.io)",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/ngxviewbuilder/ngx-view-builder-community.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/ngxviewbuilder/ngx-view-builder-community/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"angular",
|
|
17
|
+
"form-builder",
|
|
18
|
+
"view-builder",
|
|
19
|
+
"drag-and-drop",
|
|
20
|
+
"json-forms",
|
|
21
|
+
"dashboard",
|
|
22
|
+
"low-code"
|
|
23
|
+
],
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"@angular/common": "^22.0.0",
|
|
26
|
+
"@angular/core": "^22.0.0",
|
|
27
|
+
"@angular/cdk": "^22.0.0"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"tslib": "^2.6.0",
|
|
31
|
+
"jexl": "^2.3.0",
|
|
32
|
+
"@codemirror/autocomplete": "^6.20.0",
|
|
33
|
+
"@codemirror/commands": "^6.9.0",
|
|
34
|
+
"@codemirror/lang-html": "^6.4.11",
|
|
35
|
+
"@codemirror/lang-json": "^6.0.2",
|
|
36
|
+
"@codemirror/lang-javascript": "^6.2.4",
|
|
37
|
+
"@codemirror/language": "^6.11.2",
|
|
38
|
+
"@codemirror/state": "^6.5.4",
|
|
39
|
+
"@codemirror/view": "^6.39.12",
|
|
40
|
+
"@lezer/highlight": "^1.2.0",
|
|
41
|
+
"codemirror": "^6.0.2",
|
|
42
|
+
"prettier": "^3.6.2",
|
|
43
|
+
"lodash-es": "^4.17.21"
|
|
44
|
+
},
|
|
45
|
+
"sideEffects": [
|
|
46
|
+
"styles/*.css"
|
|
47
|
+
],
|
|
48
|
+
"exports": {
|
|
49
|
+
"./styles/*.css": "./styles/*.css",
|
|
50
|
+
"./package.json": {
|
|
51
|
+
"default": "./package.json"
|
|
52
|
+
},
|
|
53
|
+
".": {
|
|
54
|
+
"types": "./types/ngx-view-builder-runtime.d.ts",
|
|
55
|
+
"default": "./fesm2022/ngx-view-builder-runtime.mjs"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"module": "fesm2022/ngx-view-builder-runtime.mjs",
|
|
59
|
+
"typings": "types/ngx-view-builder-runtime.d.ts",
|
|
60
|
+
"type": "module"
|
|
61
|
+
}
|
package/styles/base.css
ADDED
|
File without changes
|
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
.nvb-root {
|
|
2
|
+
--nvb-button-height-lg: 40px;
|
|
3
|
+
--nvb-button-height-ms: 32px;
|
|
4
|
+
--nvb-button-height-sm: 32px;
|
|
5
|
+
--nvb-button-height-sx: 28px;
|
|
6
|
+
--nvb-button-padding-lg: 0 16px;
|
|
7
|
+
--nvb-button-padding-ms: 0 12px;
|
|
8
|
+
--nvb-button-padding-sm: 0 10px;
|
|
9
|
+
--nvb-button-padding-sx: 0 8px;
|
|
10
|
+
--nvb-button-font-size-lg: 14px;
|
|
11
|
+
--nvb-button-font-size-ms: 13px;
|
|
12
|
+
--nvb-button-font-size-sm: 13px;
|
|
13
|
+
--nvb-button-font-size-sx: 12px;
|
|
14
|
+
--nvb-button-radius: var(--nvb-radius-md);
|
|
15
|
+
--nvb-button-gap: 6px;
|
|
16
|
+
--nvb-button-border-color: var(--nvb-color-neutral-300);
|
|
17
|
+
--nvb-button-bg: var(--nvb-color-neutral-000);
|
|
18
|
+
--nvb-button-text-color: var(--nvb-color-neutral-800);
|
|
19
|
+
--nvb-button-hover-bg: var(--nvb-color-neutral-050);
|
|
20
|
+
--nvb-button-primary-bg: var(--nvb-color-primary-600);
|
|
21
|
+
--nvb-button-primary-hover-bg: var(--nvb-color-primary-700);
|
|
22
|
+
--nvb-button-danger-bg: var(--nvb-color-risk-050);
|
|
23
|
+
--nvb-button-danger-text-color: var(--nvb-color-risk-700);
|
|
24
|
+
--nvb-button-danger-border-color: var(--nvb-color-risk-300);
|
|
25
|
+
--nvb-surface-bg: var(--nvb-color-neutral-000);
|
|
26
|
+
--nvb-surface-muted-bg: color-mix(in oklab, var(--nvb-color-neutral-050) 84%, var(--nvb-color-neutral-000));
|
|
27
|
+
--nvb-stroke-subtle: var(--nvb-color-neutral-200);
|
|
28
|
+
--nvb-stroke-strong: var(--nvb-color-neutral-300);
|
|
29
|
+
--nvb-shadow-2: 0 1px 2px color-mix(in oklab, var(--nvb-color-neutral-950) 6%, transparent);
|
|
30
|
+
--nvb-shadow-8:
|
|
31
|
+
0 4px 8px color-mix(in oklab, var(--nvb-color-neutral-950) 10%, transparent),
|
|
32
|
+
0 12px 24px color-mix(in oklab, var(--nvb-color-neutral-950) 8%, transparent);
|
|
33
|
+
--nvb-shadow-16:
|
|
34
|
+
0 8px 16px color-mix(in oklab, var(--nvb-color-neutral-950) 12%, transparent),
|
|
35
|
+
0 24px 48px color-mix(in oklab, var(--nvb-color-neutral-950) 14%, transparent);
|
|
36
|
+
--nvb-dialog-radius: var(--nvb-radius-lg);
|
|
37
|
+
--nvb-menu-radius: var(--nvb-input-radius, var(--nvb-radius-md));
|
|
38
|
+
--nvb-tablist-height: 40px;
|
|
39
|
+
--nvb-card-bg: var(--nvb-color-neutral-000);
|
|
40
|
+
--nvb-card-border-color: var(--nvb-color-neutral-200);
|
|
41
|
+
--nvb-card-radius: var(--nvb-radius-md);
|
|
42
|
+
--nvb-card-shadow: var(--nvb-shadow-2);
|
|
43
|
+
--nvb-card-padding: 12px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.nvb-root .nvb-sr-only {
|
|
47
|
+
position: absolute;
|
|
48
|
+
width: 1px;
|
|
49
|
+
height: 1px;
|
|
50
|
+
padding: 0;
|
|
51
|
+
margin: -1px;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
clip: rect(0, 0, 0, 0);
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
border: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.nvb-root .nvb-button,
|
|
59
|
+
.nvb-root .nvb-control__add-row-button {
|
|
60
|
+
box-sizing: border-box;
|
|
61
|
+
min-height: var(--nvb-button-height-ms);
|
|
62
|
+
padding: var(--nvb-button-padding-ms);
|
|
63
|
+
border: 1px solid var(--nvb-button-border-color);
|
|
64
|
+
border-radius: var(--nvb-button-radius);
|
|
65
|
+
background: var(--nvb-button-bg);
|
|
66
|
+
color: var(--nvb-button-text-color);
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
display: inline-flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
justify-content: center;
|
|
71
|
+
gap: var(--nvb-button-gap);
|
|
72
|
+
font-family: var(--nvb-font-family);
|
|
73
|
+
font-size: var(--nvb-button-font-size-ms);
|
|
74
|
+
font-weight: 600;
|
|
75
|
+
line-height: 20px;
|
|
76
|
+
white-space: nowrap;
|
|
77
|
+
overflow: visible;
|
|
78
|
+
transition:
|
|
79
|
+
background-color 0.2s ease,
|
|
80
|
+
border-color 0.2s ease,
|
|
81
|
+
color 0.2s ease,
|
|
82
|
+
opacity 0.2s ease,
|
|
83
|
+
box-shadow 0.2s ease;
|
|
84
|
+
box-shadow: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.nvb-root .nvb-button:focus-visible,
|
|
88
|
+
.nvb-root .nvb-control__add-row-button:focus-visible,
|
|
89
|
+
.nvb-root .nvb-icon-button:focus-visible {
|
|
90
|
+
outline: 0;
|
|
91
|
+
border-color: var(--nvb-input-focus-border-color, var(--nvb-color-primary-500));
|
|
92
|
+
box-shadow: var(--nvb-focus-ring);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.nvb-root .nvb-button:hover:not(:disabled),
|
|
96
|
+
.nvb-root .nvb-control__add-row-button:hover:not(:disabled) {
|
|
97
|
+
background: var(--nvb-button-hover-bg);
|
|
98
|
+
border-color: var(--nvb-color-neutral-400);
|
|
99
|
+
color: var(--nvb-color-neutral-900);
|
|
100
|
+
box-shadow: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.nvb-root .nvb-button:disabled,
|
|
104
|
+
.nvb-root .nvb-control__add-row-button:disabled {
|
|
105
|
+
cursor: not-allowed;
|
|
106
|
+
opacity: 0.5;
|
|
107
|
+
box-shadow: none;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.nvb-root .nvb-button--lg {
|
|
111
|
+
min-height: var(--nvb-button-height-lg);
|
|
112
|
+
padding: var(--nvb-button-padding-lg);
|
|
113
|
+
font-size: var(--nvb-button-font-size-lg);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.nvb-root .nvb-button--ms,
|
|
117
|
+
.nvb-root .nvb-button--md {
|
|
118
|
+
min-height: var(--nvb-button-height-ms);
|
|
119
|
+
padding: var(--nvb-button-padding-ms);
|
|
120
|
+
font-size: var(--nvb-button-font-size-ms);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.nvb-root .nvb-button--sm {
|
|
124
|
+
min-height: var(--nvb-button-height-sm);
|
|
125
|
+
padding: var(--nvb-button-padding-sm);
|
|
126
|
+
font-size: var(--nvb-button-font-size-sm);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.nvb-root .nvb-button--sx,
|
|
130
|
+
.nvb-root .nvb-button--xs {
|
|
131
|
+
min-height: var(--nvb-button-height-sx);
|
|
132
|
+
padding: var(--nvb-button-padding-sx);
|
|
133
|
+
font-size: var(--nvb-button-font-size-sx);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.nvb-root .nvb-button--left {
|
|
137
|
+
justify-content: flex-start;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.nvb-root .nvb-button--full {
|
|
141
|
+
width: 100%;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.nvb-root .nvb-button--subtle {
|
|
145
|
+
border-color: transparent;
|
|
146
|
+
background: transparent;
|
|
147
|
+
color: var(--nvb-color-neutral-700);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.nvb-root .nvb-button--subtle:hover:not(:disabled) {
|
|
151
|
+
border-color: transparent;
|
|
152
|
+
background: color-mix(in oklab, var(--nvb-color-neutral-100) 72%, var(--nvb-color-neutral-000));
|
|
153
|
+
color: var(--nvb-color-neutral-900);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.nvb-root .nvb-button--neutral {
|
|
157
|
+
background: var(--nvb-color-neutral-000);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.nvb-root .nvb-button--primary,
|
|
161
|
+
.nvb-root .nvb-button--active {
|
|
162
|
+
border-color: var(--nvb-color-primary-500);
|
|
163
|
+
background: var(--nvb-button-primary-bg);
|
|
164
|
+
color: var(--nvb-color-neutral-000);
|
|
165
|
+
box-shadow: none;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.nvb-root .nvb-button--primary-soft {
|
|
169
|
+
border-color: transparent;
|
|
170
|
+
background: color-mix(in oklab, var(--nvb-color-primary-050) 76%, var(--nvb-color-neutral-000));
|
|
171
|
+
color: var(--nvb-color-primary-700);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.nvb-root .nvb-button--primary:hover:not(:disabled),
|
|
175
|
+
.nvb-root .nvb-button--active:hover:not(:disabled) {
|
|
176
|
+
border-color: var(--nvb-color-primary-600);
|
|
177
|
+
background: var(--nvb-button-primary-hover-bg);
|
|
178
|
+
color: var(--nvb-color-neutral-000);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.nvb-root .nvb-button--primary-soft:hover:not(:disabled) {
|
|
182
|
+
border-color: var(--nvb-color-primary-500);
|
|
183
|
+
background: color-mix(
|
|
184
|
+
in oklab,
|
|
185
|
+
var(--nvb-color-primary-050) 70%,
|
|
186
|
+
var(--nvb-color-primary-100, var(--nvb-color-primary-050))
|
|
187
|
+
);
|
|
188
|
+
color: var(--nvb-color-primary-800);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.nvb-root .nvb-button--danger {
|
|
192
|
+
border-color: var(--nvb-button-danger-border-color);
|
|
193
|
+
background: var(--nvb-button-danger-bg);
|
|
194
|
+
color: var(--nvb-button-danger-text-color);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.nvb-root .nvb-button--danger:hover:not(:disabled),
|
|
198
|
+
.nvb-root .nvb-icon-button--danger:hover:not(:disabled) {
|
|
199
|
+
border-color: var(--nvb-color-risk-400);
|
|
200
|
+
background: color-mix(
|
|
201
|
+
in oklab,
|
|
202
|
+
var(--nvb-color-risk-050) 70%,
|
|
203
|
+
var(--nvb-color-risk-100, var(--nvb-color-risk-050))
|
|
204
|
+
);
|
|
205
|
+
color: var(--nvb-color-risk-800, var(--nvb-color-risk-700));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.nvb-root .nvb-button__icon,
|
|
209
|
+
.nvb-root .nvb-control__add-row-button span {
|
|
210
|
+
font-size: 15px;
|
|
211
|
+
line-height: 1;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.nvb-root .nvb-control__add-row-button {
|
|
215
|
+
border-color: var(--nvb-control-button-border-color);
|
|
216
|
+
background: var(--nvb-control-button-bg);
|
|
217
|
+
color: var(--nvb-control-button-text-color);
|
|
218
|
+
font-size: var(--nvb-control-font-size);
|
|
219
|
+
height: var(--nvb-control-height);
|
|
220
|
+
min-height: var(--nvb-control-height);
|
|
221
|
+
padding: 0 var(--nvb-control-padding-x);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.nvb-root .nvb-control__add-row-button:hover:not(:disabled) {
|
|
225
|
+
border-color: var(--nvb-control-button-hover-border-color);
|
|
226
|
+
background: var(--nvb-control-button-hover-bg);
|
|
227
|
+
color: var(--nvb-control-button-hover-text-color);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.nvb-root .nvb-control__add-row-button--compact {
|
|
231
|
+
height: var(--nvb-control-height-sm);
|
|
232
|
+
min-height: var(--nvb-control-height-sm);
|
|
233
|
+
padding: 0 10px;
|
|
234
|
+
font-size: 12px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.nvb-root .nvb-control__add-row-button--compact span {
|
|
238
|
+
font-size: 16px;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.nvb-root .nvb-control__add-row-button--link {
|
|
242
|
+
min-height: 26px;
|
|
243
|
+
padding: 0;
|
|
244
|
+
border-color: transparent;
|
|
245
|
+
background: transparent;
|
|
246
|
+
color: var(--nvb-color-primary-600);
|
|
247
|
+
border-radius: var(--nvb-radius-md);
|
|
248
|
+
font-size: 14px;
|
|
249
|
+
font-weight: 600;
|
|
250
|
+
justify-content: flex-start;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.nvb-root .nvb-control__add-row-button--link:hover:not(:disabled) {
|
|
254
|
+
border-color: transparent;
|
|
255
|
+
background: transparent;
|
|
256
|
+
color: var(--nvb-color-primary-700);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.nvb-root .nvb-control__add-row-button--link.nvb-control__add-row-button--compact {
|
|
260
|
+
padding: 0 2px;
|
|
261
|
+
font-size: 12px;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.nvb-root .nvb-control__add-row-button nvb-icon {
|
|
265
|
+
width: 16px;
|
|
266
|
+
height: 16px;
|
|
267
|
+
display: inline-flex;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.nvb-root .nvb-button__label {
|
|
271
|
+
display: inline-flex;
|
|
272
|
+
align-items: center;
|
|
273
|
+
min-height: 20px;
|
|
274
|
+
line-height: 20px;
|
|
275
|
+
overflow: hidden;
|
|
276
|
+
text-overflow: ellipsis;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.nvb-root .nvb-icon-button {
|
|
280
|
+
width: var(--nvb-button-height-ms);
|
|
281
|
+
min-width: var(--nvb-button-height-ms);
|
|
282
|
+
height: var(--nvb-button-height-ms);
|
|
283
|
+
min-height: var(--nvb-button-height-ms);
|
|
284
|
+
border: 1px solid var(--nvb-color-neutral-300);
|
|
285
|
+
border-radius: var(--nvb-control-radius);
|
|
286
|
+
background: var(--nvb-color-neutral-000);
|
|
287
|
+
color: var(--nvb-color-neutral-800);
|
|
288
|
+
cursor: pointer;
|
|
289
|
+
display: inline-flex;
|
|
290
|
+
align-items: center;
|
|
291
|
+
justify-content: center;
|
|
292
|
+
padding: 0;
|
|
293
|
+
transition:
|
|
294
|
+
background-color 0.16s ease,
|
|
295
|
+
border-color 0.16s ease,
|
|
296
|
+
color 0.16s ease,
|
|
297
|
+
opacity 0.16s ease,
|
|
298
|
+
box-shadow 0.16s ease;
|
|
299
|
+
box-shadow: none;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.nvb-root .nvb-icon-button:hover:not(:disabled) {
|
|
303
|
+
background: var(--nvb-color-neutral-050);
|
|
304
|
+
border-color: var(--nvb-color-neutral-400);
|
|
305
|
+
color: var(--nvb-color-neutral-900);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.nvb-root .nvb-icon-button:disabled {
|
|
309
|
+
cursor: not-allowed;
|
|
310
|
+
opacity: 0.5;
|
|
311
|
+
box-shadow: none;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.nvb-root .nvb-icon-button--lg {
|
|
315
|
+
width: var(--nvb-button-height-lg);
|
|
316
|
+
min-width: var(--nvb-button-height-lg);
|
|
317
|
+
height: var(--nvb-button-height-lg);
|
|
318
|
+
min-height: var(--nvb-button-height-lg);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.nvb-root .nvb-icon-button--sm {
|
|
322
|
+
width: var(--nvb-button-height-sm);
|
|
323
|
+
min-width: var(--nvb-button-height-sm);
|
|
324
|
+
height: var(--nvb-button-height-sm);
|
|
325
|
+
min-height: var(--nvb-button-height-sm);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.nvb-root .nvb-icon-button--sx,
|
|
329
|
+
.nvb-root .nvb-icon-button--xs {
|
|
330
|
+
width: var(--nvb-button-height-sx);
|
|
331
|
+
min-width: var(--nvb-button-height-sx);
|
|
332
|
+
height: var(--nvb-button-height-sx);
|
|
333
|
+
min-height: var(--nvb-button-height-sx);
|
|
334
|
+
border-radius: var(--nvb-radius-md);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.nvb-root .nvb-icon-button--danger {
|
|
338
|
+
border-color: var(--nvb-button-danger-border-color);
|
|
339
|
+
background: var(--nvb-button-danger-bg);
|
|
340
|
+
color: var(--nvb-button-danger-text-color);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.nvb-root .nvb-icon-button--ghost {
|
|
344
|
+
border-color: transparent;
|
|
345
|
+
background: transparent;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
.nvb-root .nvb-icon-button--ghost:hover:not(:disabled) {
|
|
349
|
+
border-color: transparent;
|
|
350
|
+
background: color-mix(in oklab, var(--nvb-color-neutral-100) 72%, var(--nvb-color-neutral-000));
|
|
351
|
+
color: var(--nvb-color-neutral-800);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.nvb-root .nvb-icon-button--drag {
|
|
355
|
+
cursor: grab;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.nvb-root .nvb-icon-button--drag:active {
|
|
359
|
+
cursor: grabbing;
|
|
360
|
+
transform: scale(0.98);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.nvb-root .nvb-icon-button span,
|
|
364
|
+
.nvb-root .nvb-icon-button nvb-icon,
|
|
365
|
+
.nvb-root .nvb-control__add-row-button nvb-icon,
|
|
366
|
+
.nvb-root .nvb-control__add-row-button .nvb-icon-svg {
|
|
367
|
+
font-size: 18px;
|
|
368
|
+
line-height: 1;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.nvb-root .nvb-icon-button--sx span,
|
|
372
|
+
.nvb-root .nvb-icon-button--sx nvb-icon,
|
|
373
|
+
.nvb-root .nvb-icon-button--xs span,
|
|
374
|
+
.nvb-root .nvb-icon-button--xs nvb-icon {
|
|
375
|
+
font-size: 15px;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.nvb-root .nvb-search-field {
|
|
379
|
+
position: relative;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.nvb-root .nvb-search-field .nvb-search-field__icon {
|
|
383
|
+
position: absolute;
|
|
384
|
+
left: 10px;
|
|
385
|
+
top: 50%;
|
|
386
|
+
transform: translateY(-50%);
|
|
387
|
+
z-index: 1;
|
|
388
|
+
display: inline-flex;
|
|
389
|
+
width: 16px;
|
|
390
|
+
height: 16px;
|
|
391
|
+
align-items: center;
|
|
392
|
+
justify-content: center;
|
|
393
|
+
color: var(--nvb-color-neutral-500);
|
|
394
|
+
font-size: 16px;
|
|
395
|
+
line-height: 1;
|
|
396
|
+
pointer-events: none;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.nvb-root .nvb-search-field .nvb-search-field__input {
|
|
400
|
+
display: block;
|
|
401
|
+
box-sizing: border-box;
|
|
402
|
+
width: 100%;
|
|
403
|
+
height: 32px;
|
|
404
|
+
min-height: 32px;
|
|
405
|
+
padding: 0 32px 0 36px;
|
|
406
|
+
border: 1px solid var(--nvb-color-neutral-300);
|
|
407
|
+
border-radius: var(--nvb-input-radius, var(--nvb-radius-md));
|
|
408
|
+
background: var(--nvb-color-neutral-000);
|
|
409
|
+
color: var(--nvb-color-neutral-800);
|
|
410
|
+
font-size: 12px;
|
|
411
|
+
font-weight: 400;
|
|
412
|
+
line-height: 20px;
|
|
413
|
+
box-shadow: none;
|
|
414
|
+
transition:
|
|
415
|
+
border-color 0.12s ease,
|
|
416
|
+
background-color 0.12s ease,
|
|
417
|
+
box-shadow 0.12s ease;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.nvb-root .nvb-search-field.nvb-search-field--no-icon .nvb-search-field__input {
|
|
421
|
+
padding-left: 12px;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.nvb-root .nvb-search-field .nvb-search-field__input::placeholder {
|
|
425
|
+
color: var(--nvb-color-neutral-400);
|
|
426
|
+
font-weight: 400;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.nvb-root .nvb-search-field .nvb-search-field__input:focus,
|
|
430
|
+
.nvb-root .nvb-search-field .nvb-search-field__input:focus-visible {
|
|
431
|
+
outline: none;
|
|
432
|
+
border-color: var(--nvb-color-primary-500);
|
|
433
|
+
box-shadow: var(--nvb-focus-ring);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.nvb-root .nvb-search-field .nvb-search-field__clear {
|
|
437
|
+
position: absolute;
|
|
438
|
+
right: 6px;
|
|
439
|
+
top: 50%;
|
|
440
|
+
transform: translateY(-50%);
|
|
441
|
+
z-index: 2;
|
|
442
|
+
color: var(--nvb-color-neutral-500);
|
|
443
|
+
}
|