@kizenapps/cli 1.0.0 → 1.1.0-431518c

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,5 @@
1
+ import{n as e}from"./rolldown-runtime-DF2fYuay.js";import{A as t,j as n,k as r,y as i}from"./fa-core-BoBqCOD3.js";import{n as a}from"./react-csXWLXSE.js";import{A as o,I as s,M as c,O as l,a as u,c as d,d as f,f as p,i as m,l as h,n as g,o as _,p as v,r as y,s as b,u as x,v as S}from"./useQuery-5OkVbV1s.js";import{a as C,i as w,n as T,o as E,r as D}from"./BootstrapContext-D5ZnMrOp.js";import{r as O}from"./api-CT-MKz2h.js";import{D as k,E as A,O as j,S as M,T as N,_ as P,b as F,g as I,h as L,k as R,m as ee,p as te,v as ne,w as z,x as re,y as ie}from"./configStorage-TfZCyGrB.js";function ae(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function oe(e,t,n){let r=e.slice(0);return r[t]=n,r}var B=class extends s{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,S.batch(()=>{let e=this.#i,t=this.#f(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!c(e,n)});!o&&!s||(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(ae(e,n).forEach(e=>{e.destroy()}),ae(n,e).forEach(e=>{e.subscribe(t=>{this.#p(e,t)})})),this.#m()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#f(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(!this.#a||this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=o(this.#a,t(e))),this.#a}return e}#f(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new v(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#p(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=oe(this.#t,n,t),this.#m())}#m(){if(this.hasListeners()){let e=this.#a,t=this.#u(this.#t,this.#l);e!==this.#d(t,this.#r?.combine)&&S.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},V=e(n(),1);function H({queries:e,...t},n){let r=p(n),i=h(),a=d(),o=V.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);o.forEach(e=>{g(e),u(e,a,r.getQueryCache().get(e.queryHash))}),b(a);let[s]=V.useState(()=>new B(r,o,t)),[c,f,x]=s.getOptimisticResult(o,t.combine),C=!i&&t.subscribed!==!1;V.useSyncExternalStore(V.useCallback(e=>C?s.subscribe(S.batchCalls(e)):l,[s,C]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),V.useEffect(()=>{s.setQueries(o,t)},[o,t,s]);let w=c.some((e,t)=>m(o[t],e))?c.flatMap((e,t)=>{let n=o[t];return n&&m(n,e)?y(n,new v(r,n),a):[]}):[];if(w.length>0)throw Promise.all(w);let T=c.find((e,t)=>{let n=o[t];return n&&_({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(T?.error)throw T.error;return f(x())}var se=`integration:${N.RUN_FRAME_SCRIPT}`,ce={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},le=(e,t,n)=>{let r,i=ce[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function ue(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var de={date:ue({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:ue({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:ue({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},fe={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},pe=(e,t,n,r)=>fe[e];function me(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var he={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:me({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:me({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:me({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:me({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:me({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function U(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?_e(s,e=>e.test(o)):ge(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function ge(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function _e(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function ve(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var ye={code:`en-US`,formatDistance:le,formatLong:de,formatRelative:pe,localize:he,match:{ordinalNumber:ve({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:U({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:U({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:U({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:U({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:U({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}},be={};function xe(){return be}var Se=365.2425,Ce=6048e5,we=864e5,Te=3600*24;Te*7,Te*Se/12*3;var Ee=Symbol.for(`constructDateFrom`);function W(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&Ee in e?e[Ee](t):e instanceof Date?new e.constructor(t):new Date(t)}function G(e,t){return W(t||e,e)}function De(e){let t=G(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function Oe(e,...t){let n=W.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function ke(e,t){let n=G(e,t?.in);return n.setHours(0,0,0,0),n}function Ae(e,t,n){let[r,i]=Oe(n?.in,e,t),a=ke(r),o=ke(i),s=+a-De(a),c=+o-De(o);return Math.round((s-c)/we)}function je(e,t){let n=G(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Me(e,t){let n=G(e,t?.in);return Ae(n,je(n))+1}function Ne(e,t){let n=xe(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=G(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function Pe(e,t){return Ne(e,{...t,weekStartsOn:1})}function Fe(e,t){let n=G(e,t?.in),r=n.getFullYear(),i=W(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=Pe(i),o=W(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=Pe(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function Ie(e,t){let n=Fe(e,t),r=W(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Pe(r)}function Le(e,t){let n=G(e,t?.in),r=Pe(n)-+Ie(n);return Math.round(r/Ce)+1}function Re(e,t){let n=G(e,t?.in),r=n.getFullYear(),i=xe(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=W(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=Ne(o,t),c=W(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=Ne(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function ze(e,t){let n=xe(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Re(e,t),a=W(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),Ne(a,t)}function Be(e,t){let n=G(e,t?.in),r=Ne(n,t)-+ze(n,t);return Math.round(r/Ce)+1}function K(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var q={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return K(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):K(n+1,2)},d(e,t){return K(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return K(e.getHours()%12||12,t.length)},H(e,t){return K(e.getHours(),t.length)},m(e,t){return K(e.getMinutes(),t.length)},s(e,t){return K(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return K(Math.trunc(r*10**(n-3)),t.length)}},Ve={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},He={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return q.y(e,t)},Y:function(e,t,n,r){let i=Re(e,r),a=i>0?i:1-i;return t===`YY`?K(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):K(a,t.length)},R:function(e,t){return K(Fe(e),t.length)},u:function(e,t){return K(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return K(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return K(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return q.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return K(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=Be(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):K(i,t.length)},I:function(e,t,n){let r=Le(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):K(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):q.d(e,t)},D:function(e,t,n){let r=Me(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):K(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return K(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return K(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return K(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?Ve.noon:r===0?Ve.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?Ve.evening:r>=12?Ve.afternoon:r>=4?Ve.morning:Ve.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return q.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):q.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):K(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):K(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):q.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):q.s(e,t)},S:function(e,t){return q.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return We(r);case`XXXX`:case`XX`:return Ge(r);default:return Ge(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return We(r);case`xxxx`:case`xx`:return Ge(r);default:return Ge(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+Ue(r,`:`);default:return`GMT`+Ge(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+Ue(r,`:`);default:return`GMT`+Ge(r,`:`)}},t:function(e,t,n){return K(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return K(+e,t.length)}};function Ue(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+K(a,2)}function We(e,t){return e%60==0?(e>0?`-`:`+`)+K(Math.abs(e)/60,2):Ge(e,t)}function Ge(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=K(Math.trunc(r/60),2),a=K(r%60,2);return n+i+t+a}var Ke=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},qe=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},Je={p:qe,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return Ke(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,Ke(r,t)).replace(`{{time}}`,qe(i,t))}},Ye=/^D+$/,Xe=/^Y+$/,Ze=[`D`,`DD`,`YY`,`YYYY`];function Qe(e){return Ye.test(e)}function $e(e){return Xe.test(e)}function et(e,t,n){let r=tt(e,t,n);if(console.warn(r),Ze.includes(e))throw RangeError(r)}function tt(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}function nt(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function rt(e){return!(!nt(e)&&typeof e!=`number`||isNaN(+G(e)))}var it=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,at=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ot=/^'([^]*?)'?$/,st=/''/g,ct=/[a-zA-Z]/;function lt(e,t,n){let r=xe(),i=n?.locale??r.locale??ye,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=G(e,n?.in);if(!rt(s))throw RangeError(`Invalid time value`);let c=t.match(at).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=Je[t];return n(e,i.formatLong)}return e}).join(``).match(it).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:ut(e)};if(He[t])return{isToken:!0,value:e};if(t.match(ct))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&$e(a)||!n?.useAdditionalDayOfYearTokens&&Qe(a))&&et(a,t,String(e));let o=He[a[0]];return o(s,a,i.localize,l)}).join(``)}function ut(e){let t=e.match(ot);return t?t[1].replace(st,`'`):e}function dt(e,t){let n=G(e,t?.in);return n.setHours(23,59,59,999),n}function ft(){return Object.assign({},xe())}function pt(e,t,n){let r=ft(),i=gt(e,n.timeZone,n.locale??r.locale);return`formatToParts`in i?mt(i,t):ht(i,t)}function mt(e,t){let n=e.formatToParts(t);for(let e=n.length-1;e>=0;--e)if(n[e].type===`timeZoneName`)return n[e].value}function ht(e,t){let n=e.format(t).replace(/\u200E/g,``),r=/ [\w-+ ]+$/.exec(n);return r?r[0].substr(1):``}function gt(e,t,n){return new Intl.DateTimeFormat(n?[n.code,`en-US`]:void 0,{timeZone:t,timeZoneName:e})}function _t(e,t){let n=wt(t);return`formatToParts`in n?yt(n,e):bt(n,e)}var vt={year:0,month:1,day:2,hour:3,minute:4,second:5};function yt(e,t){try{let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let t=vt[n[e].type];t!==void 0&&(r[t]=parseInt(n[e].value,10))}return r}catch(e){if(e instanceof RangeError)return[NaN];throw e}}function bt(e,t){let n=e.format(t),r=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);return[parseInt(r[3],10),parseInt(r[1],10),parseInt(r[2],10),parseInt(r[4],10),parseInt(r[5],10),parseInt(r[6],10)]}var xt={},St=new Intl.DateTimeFormat(`en-US`,{hourCycle:`h23`,timeZone:`America/New_York`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(new Date(`2014-06-25T04:00:00.123Z`)),Ct=St===`06/25/2014, 00:00:00`||St===`‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00`;function wt(e){return xt[e]||(xt[e]=Ct?new Intl.DateTimeFormat(`en-US`,{hourCycle:`h23`,timeZone:e,year:`numeric`,month:`numeric`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`numeric`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})),xt[e]}function Tt(e,t,n,r,i,a,o){let s=new Date(0);return s.setUTCFullYear(e,t,n),s.setUTCHours(r,i,a,o),s}var Et=36e5,Dt=6e4,Ot={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function kt(e,t,n){if(!e)return 0;let r=Ot.timezoneZ.exec(e);if(r)return 0;let i,a;if(r=Ot.timezoneHH.exec(e),r)return i=parseInt(r[1],10),Nt(i)?-(i*Et):NaN;if(r=Ot.timezoneHHMM.exec(e),r){i=parseInt(r[2],10);let e=parseInt(r[3],10);return Nt(i,e)?(a=Math.abs(i)*Et+e*Dt,r[1]===`+`?-a:a):NaN}if(Ft(e)){t=new Date(t||Date.now());let r=jt(n?t:At(t),e);return-(n?r:Mt(t,r,e))}return NaN}function At(e){return Tt(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function jt(e,t){let n=_t(e,t),r=Tt(n[0],n[1]-1,n[2],n[3]%24,n[4],n[5],0).getTime(),i=e.getTime(),a=i%1e3;return i-=a>=0?a:1e3+a,r-i}function Mt(e,t,n){let r=e.getTime()-t,i=jt(new Date(r),n);if(t===i)return t;r-=i-t;let a=jt(new Date(r),n);return i===a?i:Math.max(i,a)}function Nt(e,t){return-23<=e&&e<=23&&(t==null||0<=t&&t<=59)}var Pt={};function Ft(e){if(Pt[e])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:e}),Pt[e]=!0,!0}catch{return!1}}var It=60*1e3,Lt={X:function(e,t,n){let r=Rt(n.timeZone,e);if(r===0)return`Z`;switch(t){case`X`:return Vt(r);case`XXXX`:case`XX`:return Bt(r);default:return Bt(r,`:`)}},x:function(e,t,n){let r=Rt(n.timeZone,e);switch(t){case`x`:return Vt(r);case`xxxx`:case`xx`:return Bt(r);default:return Bt(r,`:`)}},O:function(e,t,n){let r=Rt(n.timeZone,e);switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+Ht(r,`:`);default:return`GMT`+Bt(r,`:`)}},z:function(e,t,n){switch(t){case`z`:case`zz`:case`zzz`:return pt(`short`,e,n);default:return pt(`long`,e,n)}}};function Rt(e,t){let n=e?kt(e,t,!0)/It:t?.getTimezoneOffset()??0;if(Number.isNaN(n))throw RangeError(`Invalid time zone specified: `+e);return n}function zt(e,t){let n=e<0?`-`:``,r=Math.abs(e).toString();for(;r.length<t;)r=`0`+r;return n+r}function Bt(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=zt(Math.floor(r/60),2),a=zt(Math.floor(r%60),2);return n+i+t+a}function Vt(e,t){return e%60==0?(e>0?`-`:`+`)+zt(Math.abs(e)/60,2):Bt(e,t)}function Ht(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.floor(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+zt(a,2)}function Ut(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e-+t}var Wt=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,Gt=36e5,Kt=6e4,qt=2,J={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:Wt};function Jt(e,t={}){if(arguments.length<1)throw TypeError(`1 argument required, but only `+arguments.length+` present`);if(e===null)return new Date(NaN);let n=t.additionalDigits==null?qt:Number(t.additionalDigits);if(n!==2&&n!==1&&n!==0)throw RangeError(`additionalDigits must be 0, 1 or 2`);if(e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`)return new Date(e.getTime());if(typeof e==`number`||Object.prototype.toString.call(e)===`[object Number]`)return new Date(e);if(Object.prototype.toString.call(e)!==`[object String]`)return new Date(NaN);let r=Yt(e),{year:i,restDateString:a}=Xt(r.date,n),o=Zt(a,i);if(o===null||isNaN(o.getTime()))return new Date(NaN);if(o){let e=o.getTime(),n=0,i;if(r.time&&(n=Qt(r.time),n===null||isNaN(n)))return new Date(NaN);if(r.timeZone||t.timeZone){if(i=kt(r.timeZone||t.timeZone,new Date(e+n)),isNaN(i))return new Date(NaN)}else i=Ut(new Date(e+n)),i=Ut(new Date(e+n+i));return new Date(e+n+i)}else return new Date(NaN)}function Yt(e){let t={},n=J.dateTimePattern.exec(e),r;if(n?(t.date=n[1],r=n[3]):(n=J.datePattern.exec(e),n?(t.date=n[1],r=n[2]):(t.date=null,r=e)),r){let e=J.timeZone.exec(r);e?(t.time=r.replace(e[1],``),t.timeZone=e[1].trim()):t.time=r}return t}function Xt(e,t){if(e){let n=J.YYY[t],r=J.YYYYY[t],i=J.YYYY.exec(e)||r.exec(e);if(i){let t=i[1];return{year:parseInt(t,10),restDateString:e.slice(t.length)}}if(i=J.YY.exec(e)||n.exec(e),i){let t=i[1];return{year:parseInt(t,10)*100,restDateString:e.slice(t.length)}}}return{year:null}}function Zt(e,t){if(t===null)return null;let n,r,i;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let a=J.MM.exec(e);if(a)return n=new Date(0),r=parseInt(a[1],10)-1,rn(t,r)?(n.setUTCFullYear(t,r),n):new Date(NaN);if(a=J.DDD.exec(e),a){n=new Date(0);let e=parseInt(a[1],10);return an(t,e)?(n.setUTCFullYear(t,0,e),n):new Date(NaN)}if(a=J.MMDD.exec(e),a){n=new Date(0),r=parseInt(a[1],10)-1;let e=parseInt(a[2],10);return rn(t,r,e)?(n.setUTCFullYear(t,r,e),n):new Date(NaN)}if(a=J.Www.exec(e),a)return i=parseInt(a[1],10)-1,on(i)?$t(t,i):new Date(NaN);if(a=J.WwwD.exec(e),a){i=parseInt(a[1],10)-1;let e=parseInt(a[2],10)-1;return on(i,e)?$t(t,i,e):new Date(NaN)}return null}function Qt(e){let t,n,r=J.HH.exec(e);if(r)return t=parseFloat(r[1].replace(`,`,`.`)),sn(t)?t%24*Gt:NaN;if(r=J.HHMM.exec(e),r)return t=parseInt(r[1],10),n=parseFloat(r[2].replace(`,`,`.`)),sn(t,n)?t%24*Gt+n*Kt:NaN;if(r=J.HHMMSS.exec(e),r){t=parseInt(r[1],10),n=parseInt(r[2],10);let e=parseFloat(r[3].replace(`,`,`.`));return sn(t,n,e)?t%24*Gt+n*Kt+e*1e3:NaN}return null}function $t(e,t,n){t||=0,n||=0;let r=new Date(0);r.setUTCFullYear(e,0,4);let i=r.getUTCDay()||7,a=t*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}var en=[31,28,31,30,31,30,31,31,30,31,30,31],tn=[31,29,31,30,31,30,31,31,30,31,30,31];function nn(e){return e%400==0||e%4==0&&e%100!=0}function rn(e,t,n){if(t<0||t>11)return!1;if(n!=null){if(n<1)return!1;let r=nn(e);if(r&&n>tn[t]||!r&&n>en[t])return!1}return!0}function an(e,t){if(t<1)return!1;let n=nn(e);return!(n&&t>366||!n&&t>365)}function on(e,t){return!(e<0||e>52||t!=null&&(t<0||t>6))}function sn(e,t,n){return!(e<0||e>=25||t!=null&&(t<0||t>=60)||n!=null&&(n<0||n>=60))}var cn=/([xXOz]+)|''|'(''|[^'])+('|$)/g;function ln(e,t,n={}){t=String(t);let r=t.match(cn);if(r){let i=Jt(n.originalDate||e,n);t=r.reduce(function(e,t){if(t[0]===`'`)return e;let r=e.indexOf(t),a=e[r-1]===`'`,o=e.replace(t,`'`+Lt[t[0]](i,t,n)+`'`);return a?o.substring(0,r-1)+o.substring(r+1):o},t)}return lt(e,t,n)}function un(e,t,n){e=Jt(e,n);let r=kt(t,e,!0),i=new Date(e.getTime()-r),a=new Date(0);return a.setFullYear(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()),a.setHours(i.getUTCHours(),i.getUTCMinutes(),i.getUTCSeconds(),i.getUTCMilliseconds()),a}function dn(e,t,n,r){return r={...r,timeZone:t,originalDate:e},ln(un(e,t,{timeZone:r.timeZone}),n,r)}var Y=t(),fn=a(),pn=(0,V.createContext)(null),mn=({children:e})=>{let t=(0,V.useRef)({}),n=(0,V.useCallback)(()=>{Object.keys(t.current).forEach(e=>{t.current[e]?.forEach(e=>{e()}),t.current[e]=[]})},[]);return(0,V.useEffect)(()=>()=>{n()},[n]),(0,Y.jsx)(pn.Provider,{value:{terminators:t,cleanupWorkers:n},children:e})},hn=()=>{let e=(0,V.useContext)(pn);if(!e)throw Error(`useTerminators must be used within a TerminatorsWrapper`);return e},gn=(0,V.createContext)(null),_n=({children:e})=>{let[t,n]=(0,V.useState)({}),r=(0,V.useCallback)((e,t)=>{n(n=>({...n,[e]:{...n[e],...t}}))},[]);return(0,Y.jsx)(gn.Provider,{value:{sessionData:t,setSessionData:r},children:e})},vn=()=>{let e=(0,V.useContext)(gn);if(!e)throw Error(`useSessionData must be used within a SessionDataWrapper`);return e},yn=(0,V.createContext)(null),bn=({children:e,bootstrapPlugins:t=[],userConfigs:n=[],user:r,teamMember:i,business:a,clientObject:o,appPath:s})=>{let[c,l]=(0,V.useState)(!1),[u,d]=(0,V.useState)({}),f=(0,V.useMemo)(()=>Object.values(u).some(e=>e.waitingOnRouteScript),[u]),p=(0,V.useMemo)(()=>t.reduce((e,t)=>({...e,[t.api_name]:t.id}),{}),[t]),m=(0,V.useMemo)(()=>n.reduce((e,t)=>({...e,[t.api_name]:t.config}),{}),[n]),h=(0,V.useCallback)(()=>{l(!0)},[]);return(0,Y.jsx)(yn.Provider,{value:{installedPluginAPINamesToIds:p,userConfigsByApiName:m,user:r,teamMember:i,business:a,clientObject:o,appPath:s,onInitialBootstrap:h,setRouteScriptRunState:d},children:e({waitingOnRouteScript:f,hasFinishedBootstrapping:c})})},xn=()=>{let e=(0,V.useContext)(yn);if(!e)throw Error(`useAppState must be used within an AppStateWrapper`);return e},Sn=(0,V.createContext)(null),Cn=({children:e})=>{let[t,n]=(0,V.useState)({}),r=(0,V.useCallback)(e=>t=>{n(n=>({...n,[e]:t(n[e]??{indicator:`none`,hidden:!1,pending:!1})}))},[]),i=(0,V.useCallback)(e=>!e||!t[e]?{indicator:`none`,hidden:!1,pending:!1}:{...t[e]},[t]),a=(0,V.useMemo)(()=>{let e=Object.keys(t);return e.length>0&&e.some(e=>t[e]?.indicator===`block`)},[t]);return(0,Y.jsx)(Sn.Provider,{value:{getRunnerStateUpdater:r,getRunnerState:i},children:e(a)})},wn=()=>{let e=(0,V.useContext)(Sn);if(!e)throw Error(`useRunnerState must be used within a RunnerStateWrapper`);return e},Tn=(0,V.createContext)(null),En=({children:e,showing:t,showPrompt:n,show:r,onConfirm:i,onHide:a})=>{let[o,s]=(0,V.useState)([]),[c,l]=(0,V.useState)([]),[u,d]=(0,V.useState)([]),f=(0,V.useRef)(void 0),p=(0,V.useRef)(void 0),m=(0,V.useCallback)((e,t)=>{s(n=>[...n,{config:e,cb:t}])},[]),h=(0,V.useCallback)((e,t)=>{l(n=>[...n,{objectId:e,cb:t}])},[]),g=(0,V.useCallback)((e,t,n)=>{d(r=>[...r,{objectId:e,relatedEntityId:t,cb:n}])},[]),_=(0,V.useCallback)(e=>{c[0]?.cb(e),l(e=>e.slice(1))},[c]),v=(0,V.useCallback)(e=>{u[0]?.cb(e),d(e=>e.slice(1))},[u]);(0,V.useEffect)(()=>{o.length>0&&!t&&(f.current=o[0]?.config,p.current=o[0]?.cb,n())},[o,t,n]);let y=(0,V.useCallback)(()=>{f.current=void 0,p.current=void 0,s(e=>e.slice(1))},[]),b=(0,V.useMemo)(()=>({props:{show:r,onConfirm:e=>{i(),p.current&&p.current({canceled:!1,values:e}),y()},onHide:(e,...t)=>{a(...t),p.current&&p.current({canceled:!0,values:{},eventSource:e}),y()}},config:f.current??{}}),[i,a,r,y]);return(0,Y.jsx)(Tn.Provider,{value:{modalState:b,showModal:m,showCreateRecordModal:h,showCreateRelatedRecordModal:g,onCreateRecordComplete:_,onCreateRelatedRecordComplete:v},children:e({showPluginModal:b.props.show,pluginApiName:b.config.pluginApiName??``,handleShowModal:m,handleShowCreateRecordModal:h,handleShowCreateRelatedRecordModal:g,derivedModalState:b,handleCreateRecordComplete:_,handleCreateRelatedRecordComplete:v,showCreateRecordModal:c.length>0,createRecordModalObjectId:c[0]?.objectId??``,showCreateRelatedRecordModal:u.length>0,createRelatedRecordModalObjectId:u[0]?.objectId??``,createRelatedRecordModalRelatedEntityId:u[0]?.relatedEntityId??``})})},Dn=()=>{let e=(0,V.useContext)(Tn);if(!e)throw Error(`useModals must be used within a ModalsWrapper`);return e},On=(0,V.createContext)(null),kn=({children:e,monitoringExceptionHelper:t})=>{let n=(0,V.useCallback)((e,n)=>{t(e,{extra:n})},[t]);return(0,Y.jsx)(On.Provider,{value:{sendException:n},children:e})},An=()=>{let e=(0,V.useContext)(On);if(!e)throw Error(`useMonitoring must be used within an MonitoringWrapper`);return e},jn=(0,V.createContext)(null),Mn=({children:e,onNavigate:t})=>{let n=(0,V.useCallback)(e=>{t(e,{replace:!1})},[t]),r=(0,V.useCallback)(e=>{t(e,{replace:!0})},[t]);return(0,Y.jsx)(jn.Provider,{value:{push:n,replace:r},children:e})},Nn=()=>{let e=(0,V.useContext)(jn);if(!e)throw Error(`useHistory must be used within an HistoryWrapper`);return e},Pn=(0,V.createContext)(null),Fn=({children:e,performRequest:t,createFileId:n,performFileUpload:r,getPendingCacheCount:i,invalidateCache:a})=>(0,Y.jsx)(Pn.Provider,{value:{performRequest:t,createFileId:n,performFileUpload:r,getPendingCacheCount:i,invalidateCache:a},children:e}),In=()=>{let e=(0,V.useContext)(Pn);if(!e)throw Error(`useNetwork must be used within a NetworkWrapper`);return e},Ln=e=>e,Rn=(0,V.createContext)({t:Ln}),zn=e=>{let{children:t,t:n=Ln}=e;return(0,Y.jsx)(Rn.Provider,{value:{t:n},children:t})},X=()=>(0,V.useContext)(Rn),Bn=(e,t)=>{if(!Array.isArray(e))throw Error(`Return value must be an array`);t.required.forEach(t=>{e.forEach((e,n)=>{if(!(t.key in e))throw Error(`Missing required field: ${t.key} in result row ${String(n)}`);let r=typeof e[t.key];if(r!==t.type)throw Error(`Invalid type for field: ${t.key} in result row ${String(n)}. Expected ${t.type}, got ${r}`)})}),t.optional.forEach(t=>{e.forEach((e,n)=>{if(t.key in e){let r=typeof e[t.key];if(r!==t.type)throw Error(`Invalid type for field: ${t.key} in result row ${String(n)}. Expected ${t.type}, got ${r}`)}})})},Vn=({onError:e,showToast:t,clearToasts:n})=>{let{t:r}=X(),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(void 0),{terminators:c}=hn(),{sessionData:l,setSessionData:u}=vn(),{installedPluginAPINamesToIds:d,userConfigsByApiName:f,user:p,teamMember:m,business:h,clientObject:g,appPath:_}=xn(),{getRunnerState:v,getRunnerStateUpdater:y}=wn(),{showModal:b,showCreateRecordModal:x}=Dn(),{sendException:S}=An(),C=Nn(),{performRequest:w,createFileId:T,performFileUpload:E,getPendingCacheCount:D,invalidateCache:O}=In(),k=(0,V.useCallback)(t=>n=>{e?.(n);let r=n?.message??`Unknown plugin error`;S(Error(r),{error:n,workerName:`calendarSource`,pluginApiName:t?.plugin_api_name??``})},[e,S]);return[(0,V.useCallback)(async(i,o,v,S)=>{let A=``,j=z(o);s(j);try{let e=d[o.plugin_api_name];A=JSON.stringify({...v,pluginId:e,__kizen_user_config:f[o.plugin_api_name]})}catch{k(o)({message:r(`Arguments passed to the script are invalid`)})}let M=!1,N=await F({user:p,teamMember:m,business:h,onError:k(o),setLoadingState:a,scriptBody:i,clientObject:g,onStateChange:e=>{y(j)(t=>({...t,...e}))},workerName:`calendarSource`,args:A,pushHistory:C.push,onShowToast:t,onClearToasts:n,terminators:c,plugin:o,sessionData:l,setSessionData:u,onShowModal:b,onShowCreateRecordModal:x,onShowCreateRelatedRecordModal:()=>{},onNetworkError:e=>{e?.status===503&&(M=!0)},appPath:_,onNetworkRequest:w,createFileId:T,performFileUpload:E,getPendingCacheCount:D,invalidateCache:O});try{S&&Bn(N,S)}catch(t){e?.(t)}return{result:N,authError:M}},[p,m,d,h,g,C,t,n,c,l,u,b,x,k,y,f,e,w,T,_,E,D,O,r]),{...v(o),pending:i}]},Hn=(0,V.createContext)(null),Un=({children:e,showToast:t,clearToasts:n})=>(0,Y.jsx)(Hn.Provider,{value:{showToast:t,clearToasts:n},children:e}),Z=()=>{let e=(0,V.useContext)(Hn);if(!e)throw Error(`useToast must be used within a ToastWrapper`);return e},Wn=async(e,t,n,r)=>{let{result:i,authError:a}=await n(e,t,r,{required:[{key:`id`,type:`string`},{key:`name`,type:`string`}],optional:[{key:`description`,type:`string`}]});return Array.isArray(i)?{result:i,authError:a}:(console.warn(`Expected calendar source script to return an array, but got:`,i),{result:[],authError:a})},Gn=async(e,t,n,r)=>{let{result:i,authError:a}=await n(e,t,r,{required:[{key:`id`,type:`string`},{key:`calendar_id`,type:`string`},{key:`title`,type:`string`},{key:`start_time`,type:`number`},{key:`end_time`,type:`number`}],optional:[{key:`description`,type:`string`},{key:`url`,type:`string`},{key:`activity_id`,type:`string`},{key:`all_day`,type:`boolean`},{key:`busy`,type:`boolean`}]});return Array.isArray(i)?{result:i,authError:a}:(console.warn(`Expected calendar event script to return an array, but got:`,i),{result:[],authError:a})},Kn=(e,t,n={})=>{let{showToast:r,clearToasts:i}=Z(),{t:a}=X(),[o]=Vn({onError:e=>{r({message:`${a(`Error fetching calendar options.`)} ${e?.message??``}`,variant:`failure`})},showToast:r,clearToasts:i}),s=H({queries:t.map(t=>({queryKey:k.CALENDAR_SOURCE_CALENDAR_LIST(t.plugin_api_name,t.api_name),queryFn:async()=>{let e=n[t.plugin_api_name]?.business_config??{},{result:r,authError:i}=await Wn(t.calendars_script,t,o,e);return{source:t,calendars:r,authError:i}},enabled:e&&!!t.calendars_script}))}),c=s.some(e=>e.isLoading);return{calendars:(0,V.useMemo)(()=>c||!e?{}:s.reduce((e,t)=>{if(!t.data?.source.plugin_api_name||typeof t.data.source.plugin_api_name!=`string`)return e;let n=t.data.source.plugin_api_name;return e[n]??=[],e[n].push(...t.data.calendars.map(e=>({calendar:e,source:t.data.source}))),e},{}),[s,c,e]),errorServices:(0,V.useMemo)(()=>s.filter(e=>e.data?.authError).map(e=>e.data?.source.plugin_api_name),[s]),isLoading:c}},qn=`yyyy-MM-dd'T'HH:mm:ssXXX`,Jn=e=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw Error(`Invalid date string: ${e}. Expected format: YYYY-MM-DD`);let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)},Yn=(e,t)=>dn(e,t,qn),Xn=(e,t,n={})=>{let r=Intl.DateTimeFormat().resolvedOptions().timeZone,i=Yn(ke(Jn(t.rangeStart)),r),a=Yn(dt(Jn(t.rangeEnd)),r),{showToast:o,clearToasts:s}=Z(),{t:c}=X(),[l]=Vn({onError:e=>{o({message:`${c(`Error fetching calendar events.`)} ${e?.message??``}`,variant:`failure`})},showToast:o,clearToasts:s}),u=H({queries:e.map(({calendar:e,source:r})=>({queryKey:k.CALENDAR_SOURCE_EVENTS(r.plugin_api_name,r.api_name,e.id,t),queryFn:async()=>{let t=n[r.plugin_api_name]?.business_config??{},{result:o,authError:s}=await Gn(r.events_script,r,l,{...t,calendar:{calendar_id:e.id,range_start:i,range_end:a}});return{calendarId:e.id,events:o,authError:s}}}))}),d=u.some(e=>e.isLoading),f=(0,V.useMemo)(()=>e.reduce((e,{calendar:t,source:n})=>(e[t.id]={source:n,calendar:t},e),{}),[e]);return{events:(0,V.useMemo)(()=>d?{}:u.reduce((e,t)=>(t.data?.calendarId&&(e[t.data.calendarId]=t.data.events),e),{}),[u,d]),sources:f,isLoading:d}},Zn=({onError:e,scriptUIRef:t,plugin:n,onChangeMinimized:r})=>{let{terminators:i}=hn(),{sessionData:a,setSessionData:o}=vn(),{installedPluginAPINamesToIds:s,userConfigsByApiName:c,user:l,teamMember:u,business:d,clientObject:f,appPath:p}=xn(),{showModal:m,showCreateRecordModal:h,showCreateRelatedRecordModal:g}=Dn(),{sendException:_}=An(),{showToast:v,clearToasts:y}=Z(),b=Nn(),{performRequest:x,createFileId:S,performFileUpload:C,getPendingCacheCount:w,invalidateCache:T}=In(),{t:E}=X(),[D,O]=(0,V.useState)(!1),[k,A]=(0,V.useState)({indicator:`none`,hidden:!0,triggerHidden:!1,hideHeader:!1}),j=(0,V.useRef)(!1),[M,N]=(0,V.useState)(!1);D&&!j.current&&(j.current=!0),!D&&j.current&&!M&&N(!0);let P=(0,V.useCallback)(t=>{e?.(t);let r=t?.message??`Unknown plugin error`;_(Error(r),{error:t,workerName:`floatingFrame`,pluginApiName:n.plugin_api_name})},[e,n,_]);return[(0,V.useCallback)((e,_)=>{let D=``;try{let e=s[n.plugin_api_name];D=JSON.stringify({..._,pluginId:e,__kizen_user_config:c[n.plugin_api_name]})}catch{P({message:E(`Arguments passed to the script are invalid`)})}return F({user:l,teamMember:u,business:d,onError:P,setLoadingState:(...e)=>{(0,fn.flushSync)(()=>{O(...e)})},scriptBody:e,clientObject:f,scriptUIRef:t,onStateChange:e=>{let{minimized:t,...n}=e;typeof t==`boolean`&&r?.(t),A(e=>({...e,...n}))},workerName:`floatingFramePlugin`,args:D,pushHistory:b.push,plugin:n,onShowToast:v,onClearToasts:y,terminators:i,sessionData:a,setSessionData:o,onShowModal:m,onShowCreateRecordModal:h,onShowCreateRelatedRecordModal:g,appPath:p,onNetworkRequest:x,createFileId:S,performFileUpload:C,getPendingCacheCount:w,invalidateCache:T})},[l,u,d,s,f,t,b,n,r,v,y,i,a,o,P,A,c,m,h,g,x,p,S,C,w,T,E]),{...k,pending:M?!1:D}]},Qn=({onError:e,scriptUIRef:t,plugin:n})=>{let{terminators:r}=hn(),{sessionData:i,setSessionData:a}=vn(),{installedPluginAPINamesToIds:o,userConfigsByApiName:s,user:c,teamMember:l,business:u,clientObject:d,appPath:f}=xn(),{getRunnerState:p,getRunnerStateUpdater:m}=wn(),{showModal:h,showCreateRecordModal:g}=Dn(),{sendException:_}=An(),{showToast:v,clearToasts:y}=Z(),b=Nn(),{performRequest:x,createFileId:S,performFileUpload:C,getPendingCacheCount:w,invalidateCache:T}=In(),{t:E}=X(),[D,O]=(0,V.useState)(!1),[k,A]=(0,V.useState)(void 0),j=(0,V.useCallback)((t,r)=>{e?.(t);let i=t?.message??`Unknown plugin error`;_(Error(i),{error:t,workerName:`genericPlugin`,pluginApiName:n?.plugin_api_name??r?.plugin_api_name??``})},[e,n,_]);return[(0,V.useCallback)((e,p,_)=>{let D=``,k=z(_);A(k);try{let e=o[n?.plugin_api_name??_?.plugin_api_name??``];D=JSON.stringify({...p,pluginId:e,__kizen_user_config:s[n?.plugin_api_name??_?.plugin_api_name??``]})}catch{j({message:E(`Arguments passed to the script are invalid`)})}return F({user:c,teamMember:l,business:u,onError:j,setLoadingState:O,scriptBody:e,clientObject:d,scriptUIRef:t,onStateChange:e=>{m(k)(t=>({...t,...e}))},workerName:`genericPlugin`,args:D,pushHistory:b.push,onShowToast:v,onClearToasts:y,terminators:r,plugin:n,executionPlugin:_,sessionData:i,setSessionData:a,onShowModal:h,onShowCreateRecordModal:g,onShowCreateRelatedRecordModal:()=>{},appPath:f,onNetworkRequest:x,createFileId:S,performFileUpload:C,getPendingCacheCount:w,invalidateCache:T})},[c,l,o,u,d,t,b,v,y,r,n,i,a,j,m,s,h,g,x,f,S,C,w,T,E]),{...p(k),pending:D}]},$n=({entityId:e,objectId:t,onError:n,scriptUIRef:r,onReleaseBlockingScript:i})=>{let{terminators:a}=hn(),{sessionData:o,setSessionData:s}=vn(),{installedPluginAPINamesToIds:c,userConfigsByApiName:l,user:u,teamMember:d,business:f,clientObject:p,appPath:m}=xn(),{getRunnerState:h,getRunnerStateUpdater:g}=wn(),{showModal:_,showCreateRecordModal:v,showCreateRelatedRecordModal:y}=Dn(),{sendException:b}=An(),{showToast:x,clearToasts:S}=Z(),C=Nn(),{performRequest:w,createFileId:T,performFileUpload:E,getPendingCacheCount:D,invalidateCache:O}=In(),{t:k}=X(),[A,j]=(0,V.useState)(!1),[M,N]=(0,V.useState)(void 0),P=(0,V.useCallback)((r,i)=>{n?.(r);let a=r?.message??`Unknown plugin error`;b(Error(a),{error:r,workerName:`recordDetail`,pluginApiName:i?.plugin_api_name??``,objectId:t,entityId:e})},[n,t,e,b]);return[(0,V.useCallback)((n,h,b,A)=>{let M=``;try{let e=c[b?.plugin_api_name??``];M=JSON.stringify({...h,pluginId:e,__kizen_user_config:l[b?.plugin_api_name??``]})}catch{P({message:k(`Arguments passed to the script are invalid`)},b)}let I=z(b);return N(I),F({user:u,teamMember:d,business:f,onReleaseBlockingScript:i,onError:e=>{P(e,b)},setLoadingState:j,scriptBody:n,clientObject:p,scriptUIRef:r,onStateChange:e=>{g(I)(t=>({...t,...e}))},workerName:`recordDetail`,args:M,context:A??{entityId:e,objectId:t},pushHistory:C.push,onShowToast:x,onClearToasts:S,terminators:a,executionPlugin:b,sessionData:o,setSessionData:s,onShowModal:_,onShowCreateRecordModal:v,onShowCreateRelatedRecordModal:y,appPath:m,onNetworkRequest:w,createFileId:T,performFileUpload:E,getPendingCacheCount:D,invalidateCache:O})},[u,d,c,f,e,t,p,r,C,x,S,a,o,s,_,v,y,i,P,g,l,w,m,T,E,D,O,k]),{...h(M),pending:A}]},er=(e,t)=>{let{showToast:n}=Z(),{t:r}=X(),i=(0,V.useRef)(null),a=(0,V.useRef)(null),o=e?.css,s=(0,V.useMemo)(()=>{let t=e?.html;return t?M.sanitize(t):null},[e]),c=(0,V.useMemo)(()=>e?.event_scripts??{},[e]),[l,{pending:u}]=Qn({onError:e=>{n({message:`${r(`Script could not be executed:`)} ${e?.message??`Unknown Error`}`,variant:`failure`})},scriptUIRef:i,plugin:e}),d=(0,V.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),!u){let n=e.target.getAttribute(`data-script`);n&&c[n]&&l(c[n],t)}},[u,l,c,t]);return(0,V.useEffect)(()=>{let e=a.current;return e&&e.addEventListener(`click`,d),()=>{e&&e.removeEventListener(`click`,d)}},[d,e]),{scopedCss:`
2
+ @scope {
3
+ ${o??``}
4
+ }
5
+ `,sanitizedHtml:s,outputUIRef:i,interactableScriptRef:a}},tr=(e,t,n,r,i={})=>{let a=(0,V.useMemo)(()=>t?.event_scripts??{},[t]),o=(0,V.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),!r){let n=t.target.getAttribute(`data-script`);n&&a[n]&&e(a[n],{...i})}},[r,e,a,i]);(0,V.useEffect)(()=>{let e=n?.current;return e&&e.addEventListener(`click`,o),()=>{e&&e.removeEventListener(`click`,o)}},[o,t,n])},nr=(e,t,n)=>{let r=e?.iframe_url,i=e?.script,a=e?.callback,o=e?.args,{showToast:s}=Z(),{t:c}=X(),l=(0,V.useRef)(null),[u,{pending:d}]=Qn({onError:e=>{s({message:`${c(`Plugin error:`)} ${e?.message??``}`,variant:`failure`})},scriptUIRef:l,plugin:e}),f=(0,V.useMemo)(()=>{let e=new URLSearchParams(t);return{...Object.fromEntries(e),...o}},[t,o]),{outputUIRef:p,scopedCss:m,sanitizedHtml:h,interactableScriptRef:g}=er(e,f);tr(u,e,l,d);let _=(0,V.useRef)(!1);(0,V.useEffect)(()=>{!r&&!_.current&&i&&!n&&(_.current=!0,u(i,f))},[r,u,i,f,n]);let v=(0,V.useCallback)(e=>{let t=e.data;if(t?.type===`kizen:plugin_callback`){let e=t.query;a&&u(a,e)}},[u,a]);return(0,V.useEffect)(()=>(window.addEventListener(`message`,v),()=>{window.removeEventListener(`message`,v)}),[v]),{scriptUIRef:l,outputUIRef:p,scopedCss:m,sanitizedHtml:h,interactableScriptRef:g,iframeURL:r,pending:d}},rr=(0,V.createContext)(null),ir=({children:e})=>{let[t,n]=(0,V.useState)([]),[r,i]=(0,V.useState)(!1),a=(0,V.useCallback)((e,t)=>{n(n=>{let r=[e,...n.filter(t=>t!==e)];return t?.(r),r})},[]),o=(0,V.useMemo)(()=>[...t].reverse().reduce((e,t,n)=>({...e,[t]:n}),{}),[t]);return(0,V.useEffect)(()=>{let e=new MutationObserver(()=>{document.querySelector(`div[role="dialog"]`)?i(!0):i(!1)});return e.observe(document.body,{childList:!0}),()=>{e.disconnect()}},[]),(0,Y.jsx)(rr.Provider,{value:{touchFloatingFrame:a,floatingFrameOffset:o},children:e(r)})},ar=()=>{let e=(0,V.useContext)(rr);if(!e)throw Error(`useFloatingFrame must be used within a FloatingFrameWrapper`);return e},or=[`^/$`,`^/login*`,`/settings/mine$`,`/settings/others$`,`/create-new-business$`,`^/choose-business*`,`^/inactive-business$`,`^/reset$`,`/welcome$`,`/embed/*`,`/create-new-business$`,`/businessbuilder`],sr=[`https://js.stripe.com`],cr=(e,t,n,r)=>e<n?t<r?`top-left`:`top-right`:t<r?`bottom-left`:`bottom-right`,lr=e=>{let{currentWindow:t,pathname:n,id:r,frameHeaderSize:i,defaultPositionGap:a=0,viewportHeight:o=window.innerHeight,hiddenByModal:s,updateEmployeeConfig:c}=e,l=(0,V.useRef)(null),u=(0,V.useRef)(!1),{showToast:d}=Z(),{t:f}=X(),{installedPluginAPINamesToIds:p,clientObject:m}=xn(),{touchFloatingFrame:h,floatingFrameOffset:g}=ar(),_=g[r]??-1,v=t.minimized_style===`none`,y=t.minimized_style===`circle`||v,b=t.default_position===`bottom-right-fixed`,x=t.default_position===`bottom-left-fixed`,S=b||x,C=t.minimized_config?.icon??`action-drag-handle`,w=t.minimized_config?.color??`blue`,T=(0,V.useMemo)(()=>{let e=n.split(`/`),t=e[1],r=e[2];if(t===`client`)return{objectId:m?.id,entityId:r};if(t===`custom-objects`)return{objectId:r,entityId:e[3]}},[m,n]),E=(0,V.useMemo)(()=>{let e=t.match,r=t.ignore;return!!(e?.length&&!e.some(e=>new RegExp(e).test(n))||or.concat(r??[]).filter(Boolean).some(e=>{try{return new RegExp(e).test(n)}catch{return!1}}))},[t,n]),D=t.plugin_api_name?p[t.plugin_api_name]:``,[O,k]=(0,V.useState)(()=>t.employee_config?.[r]?.minimized??!1),A=t.script,j=t.type,M=t.args,N=t.message_handler,P=t.width??0,[F,I]=(0,V.useState)(()=>{let e=window.innerHeight;return Math.min(t.height??0,e-i)}),[L,R]=(0,V.useState)(null),ee=t.default_position,te=(0,V.useCallback)(e=>{let n=t.employee_config?.[r]?.position;if(!n?.quadrant){let t=window.innerWidth-P,r=window.innerHeight-F-i;if(O&&!e&&(r=window.innerHeight-i),n)try{let e=n;return e.left>t&&(e.left=t),e.top>r&&(e.top=r),e.left<0&&(e.left=a),e.top<0&&(e.top=a),e}catch{}let o=t;return ee===`bottom-left`&&(o=a),{left:o,top:r-a}}else if(n.quadrant===`top-left`){let e=n.deltas?.left??0,t=n.deltas?.top??0;return{...n,left:e,top:t}}else if(n.quadrant===`top-right`){let e=window.innerWidth-P-(n.deltas?.right??0),t=n.deltas?.top??0;return{...n,left:e,top:t}}else if(n.quadrant===`bottom-left`){let e=n.deltas?.left??0,t=window.innerHeight-(O?0:F)-(n.deltas?.bottom??0)-i;return{...n,left:e,top:t}}else{let e=window.innerWidth-P-(n.deltas?.right??0),t=window.innerHeight-(O?0:F)-(n.deltas?.bottom??0)-i;return{...n,left:e,top:t}}},[t,r,ee,O,P,F,i,a]),ne=(0,V.useCallback)(e=>{let t=te(e),n=[`bottom-right`,`bottom-left`].includes(t.quadrant??``)&&O?0:F;return t.left<0?t.left=0:t.left>window.innerWidth-P&&(t.left=window.innerWidth-P),t.top<0?t.top=0:t.top>window.innerHeight-n&&(t.top=window.innerHeight-n),t},[te,P,F,O]);(0,V.useEffect)(()=>{let e=t.height??0;if(e>o){I(o-i);let e=te(!0);e.top=0,R(e)}else I(e)},[t.height,te,o,i]);let[z,re]=(0,V.useState)(O),[ie,ae]=(0,V.useState)(O&&y),oe=F*5e-4*1e3,B=e=>{k(e),e&&y?setTimeout(()=>{ae(e)},oe):y&&ae(e),s?setTimeout(()=>{re(e)},oe):re(e),(L?.quadrant===`bottom-left`||L?.quadrant===`bottom-right`)&&R(e?e=>e?{...e,top:e.top+F}:null:e=>{if(!e)return null;let t=window.innerHeight,n=e.top>=0&&e.top+F<=t;return{...e,top:n?e.top:e.top-F}}),c?.(r,O,L)({minimized:e})},[H,{pending:ce,hidden:le,indicator:ue,triggerHidden:de,hideHeader:fe}]=Zn({onError:e=>{d({message:`${f(`Plugin error:`)} ${e?.message??``}`,variant:`failure`})},scriptUIRef:l,plugin:t,onChangeMinimized:e=>{B(e)}}),pe=(0,V.useMemo)(()=>fe&&S,[fe,S]),me=(0,V.useMemo)(()=>{if(!L)return`top`;let{left:e,top:t}=L;return window.innerWidth-(e+P)<40?`left`:t<40?`bottom`:`top`},[L,P]),he=(0,V.useCallback)(()=>{let e=x?`left`:`right`,n=`${t.plugin_api_name}-${t.api_name}-trigger-${e}`;return document.getElementById(n)},[x,t]),U=(0,V.useCallback)(()=>{if(!S)return;let e=he();if(!e)return;let t=e.getBoundingClientRect(),n=O?0:F,r=pe?0:i,o=t.top-(n+r)-a,s=x?t.left:t.right-P,c=n+r,l=Math.max(0,window.innerWidth-P),u=Math.max(0,window.innerHeight-c);s=Math.min(Math.max(0,s),l),o=Math.min(Math.max(0,o),u),R({left:s,top:o,quadrant:x?`bottom-left`:`bottom-right`,deltas:{top:o,left:s,right:window.innerWidth-(s+P),bottom:window.innerHeight-(o+c)}})},[S,x,F,O,P,pe,he,i,a]);(0,V.useEffect)(()=>{S&&U()},[S,F,O,U]),(0,V.useEffect)(()=>{if(!S)return;U();let e=new ResizeObserver(()=>{U()});return e.observe(document.body),()=>{e.disconnect()}},[S,U]),(0,V.useEffect)(()=>{!u.current&&A&&j===`script`&&!E&&(u.current=!0,H(A,{...M}))},[H,A,j,M,E]),(0,V.useEffect)(()=>{let e=e=>{let n=e;if(n?.detail?.recipient?.frame===t.api_name){let e=n.detail;if(e.recipient?.plugin!==t.plugin_api_name)return;e.recipient.script&&t.event_scripts?.[e.recipient.script]&&H(t.event_scripts[e.recipient.script]??``,{...e.args,...M,...T})}};return window.addEventListener(se,e),()=>{window.removeEventListener(se,e)}},[t,H,M,T]);let[ge,_e]=(0,V.useState)(!1),ve=(e,t)=>{_e(!1),h(r);let n=window.innerWidth,i=window.innerHeight;if(t.node){let e=t.node.getBoundingClientRect(),a=e.left,o=e.top,s=o+e.height,l=a+e.width,u=o,d=i-s,f=a,p=n-l,m={left:a,right:l,top:o,quadrant:cr(u,f,d,p),deltas:{top:u,bottom:d,left:f,right:p}};R(m),c?.(r,O,L)({position:m})}};(0,V.useEffect)(()=>{let e=()=>{S?U():R(ne(!1))};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[S,U,ne]),tr(H,t,l,ce,M),(0,V.useEffect)(()=>{let e=e=>{e.source!==window&&N&&!sr.includes(e.origin)&&H(N,{...M,eventData:e.data})};return window.addEventListener(`message`,e),()=>{window.removeEventListener(`message`,e)}},[H,M,N]);let{outputUIRef:ye,scopedCss:be,sanitizedHtml:xe,interactableScriptRef:Se}=er(t,{}),Ce=z?le||E||s:le||E,we=`floating-window-parent--${r}`,Te=`floating-drag-handle--${r}`,Ee=`floating-window-content--${r}`,W=t.employee_config?.[r]?.position?.quadrant?.split(`-`)[1]===`right`?`right`:`left`;x?W=`left`:b&&(W=`right`);let G=t.minimized_config?.customIcon,De=null;return G?.startsWith(`data:image/`)&&(De=({className:e=``})=>(0,Y.jsx)(`img`,{src:G,alt:t.title||`Open Frame`,className:`object-cover select-none pointer-events-none ${e}`})),L||R(ne(!1)),{circleProps:{id:r,side:W,circleIcon:C,CustomIcon:De,circleColor:w,onClick:()=>{B(!O)},hidden:!!(Ce||E||v||de)},parentProps:{className:we,dragging:ge,hidden:Ce||ie||E||v},draggableProps:{onStop:ve,onStart:()=>{_e(!0)},bounds:`.${we}`,handle:`.${Te}`,defaultPosition:{x:L?.left??0,y:L?.top??0},position:{x:L?.left??0,y:L?.top??0},disabled:S},floatProps:{pending:ce,width:P,dragging:ge,height:F,isCircle:y&&O},contentProps:{className:Ee,dragging:ge,solid:!0},minimized:O,pending:ce,indicator:ue,hideHeader:pe,isFixed:S,isCircle:y,outputUIRef:ye,scopedCss:be,sanitizedHtml:xe,interactableScriptRef:Se,tooltipPosition:me,currentPluginId:D,setMinimized:B,dragHandleClassName:Te,height:F,script:A,dragging:ge,frameOffset:_,scriptUIRef:l}},ur=()=>{(0,V.useEffect)(()=>{let e=null,t=t=>{if(!t.detail?.location)return;let n=L(t.detail.location);n!==e&&(e=n,document.querySelectorAll(`iframe[id^=${A}-]`).forEach(e=>{let n=null;try{n=new URL(e.src,window.location.href).origin}catch(e){I(`script-runner-logging`)&&console.warn(`Failed to parse iframe src for location change message target origin:`,e),n=null}n&&e.contentWindow?.postMessage({action:j,location:t.detail?.location},n)}))};return window.addEventListener(R,t),()=>{window.removeEventListener(R,t)}},[])},dr=[],fr=[],pr=new E,mr=({children:e})=>(0,V.useContext)(x)?(0,Y.jsx)(Y.Fragment,{children:e}):(0,Y.jsx)(f,{client:pr,children:e}),hr=e=>{let{children:t,bootstrapPlugins:n,userConfigs:r,user:i,teamMember:a,business:o,clientObject:s,onNavigate:c,modal:l,monitoringExceptionHelper:u,showToast:d,clearToasts:f,performRequest:p,appPath:m,hideFramesOnModal:h=!0,createFileId:g,performFileUpload:_,t:v,invalidateCache:y,getPendingCacheCount:b}=e;return ur(),(0,Y.jsx)(mr,{children:(0,Y.jsx)(bn,{bootstrapPlugins:n??dr,userConfigs:r??fr,user:i,teamMember:a,business:o,clientObject:s,appPath:m,children:({hasFinishedBootstrapping:e,waitingOnRouteScript:n})=>(0,Y.jsx)(zn,{t:v,children:(0,Y.jsx)(Cn,{children:r=>(0,Y.jsx)(Mn,{onNavigate:c,children:(0,Y.jsx)(En,{...l,children:i=>(0,Y.jsx)(kn,{monitoringExceptionHelper:u,children:(0,Y.jsx)(_n,{children:(0,Y.jsx)(mn,{children:(0,Y.jsx)(Un,{showToast:d,clearToasts:f,children:(0,Y.jsx)(ir,{children:a=>(0,Y.jsx)(Fn,{performRequest:p,createFileId:g,performFileUpload:_,invalidateCache:y,getPendingCacheCount:b,children:t({...i,showLoadingIndicator:r,hasFinishedBootstrapping:e,waitingOnRouteScript:n,hiddenByModal:h?a:!1})})})})})})})})})})})})})},gr=(0,V.createContext)(null),_r=gr.Provider,vr=(e,t)=>{if(e===`custom_object`)return t?.id},yr=(e,t)=>{if(e.type===`custom_object`)return e.allow_multiple?(t?.value??[]).length>0:!!t?.value?.id;if(e.type===`field`)return e.allow_multiple?(t?.value??[]).length>0:!!t?.value?.value;if(e.type===`text`)return!!(t?.value??``).trim();if(e.type===`number`){let e=Number(t?.value);return!!t?.value&&!isNaN(e)}else if(e.type===`select`)return e.allow_multiple?(t?.value??[]).length>0:!!t?.value?.value;else if(e.type===`boolean`)return!!t?.value;return!1},br=e=>{let t=(e.fields??[]).filter(e=>e.type===`custom_object`),n=(e.fields??[]).filter(e=>e.type===`container`).flatMap(e=>br(e)),r=e.actions?.filter(e=>e.hint_object_name)??[];return[...t,...n,...r.map(e=>({...ee(e),match_hint:e.hint_object_name??``}))]},xr=e=>{let t=(e.fields??[]).filter(e=>e.type===`field`),n=(e.fields??[]).filter(e=>e.type===`container`).flatMap(e=>xr(e));return[...t,...n]},Sr=({children:e,config:t,value:n,onStateChange:r,disabledKeys:i,templateAssociationsByActionApiName:a,getObjectByAPIName:o,getCustomObjectDetails:s})=>{let[c,l]=(0,V.useState)(n??{}),u=(0,V.useMemo)(()=>te(t),[t]),d=(0,V.useMemo)(()=>u.reduce((e,t)=>({...e,[t.key]:{type:t.type,value:t.default}}),{}),[u]),f=(0,V.useMemo)(()=>{let e={...Object.entries(a??{}).reduce((e,[t,n])=>{let r=`action__${t}`,i=n.map(e=>({id:e.custom_object.id??``,objectName:e.custom_object.object_name??`Unknown Object`}));return i.length>0&&n.length>0&&n[0]&&(e[r]={type:`custom_object`,value:i,config:ee(n[0].browser_js_action_template)}),e},{}),...c};return i?.forEach(t=>{e[t]&&(e[t]=void 0)}),e},[c,a,i]),p=(0,V.useRef)(!!n),m=(0,V.useRef)({}),[h,g]=(0,V.useState)(!n),[_,v]=(0,V.useState)({}),[y,b]=(0,V.useState)({}),[x,S]=(0,V.useState)(!1),C=(0,V.useRef)(null),[w,T]=(0,V.useState)({}),[E,D]=(0,V.useState)(!1),[O,k]=(0,V.useState)(!0),A=(0,V.useRef)({}),j=(0,V.useCallback)((e,t)=>{A.current[e]=t},[]),M=(0,V.useCallback)(e=>{typeof e==`function`?l(t=>{let n=e(t);return m.current=n,r?.(n),n}):(m.current=e,l(e),r?.(e)),T({})},[r]),N=(0,V.useCallback)((e,t)=>{if(e.startsWith(`{{`)&&e.endsWith(`}}`)){let n=e.slice(2,-2).trim();return vr(t[n]?.type,t[n]?.value)}return e},[]),F=(0,V.useCallback)(e=>N(e,f),[f,N]),{clientObject:I}=xn(),L=(0,V.useCallback)(async e=>e===`client_client`&&I?[{id:I.id,object_name:I.objectName}]:await o(e),[I,o]),R=(0,V.useCallback)(async()=>{let e=br(t);for(let t of e){if(!t.match_hint)continue;let e=await L(t.match_hint);if(e?.[0]){let n={id:e[0].id,objectName:e[0].object_name};M(e=>({...e,[t.key]:{type:`custom_object`,value:t.allow_multiple?[n]:n}}))}}},[t,M,L]),ne=(0,V.useCallback)(()=>xr(t),[t]),z=(0,V.useCallback)(async(e,t)=>{let n=ne(),r={};for(let i of n){if(!i.object_id)continue;let n=t??N(i.object_id,m.current);if(e&&!i.object_id.includes(e))continue;if(!r[n]&&n)try{r[n]=await s(n)}catch{}let a=r[n];if(a){let e=a.fields.find(e=>e.name===i.match_hint);e&&M(t=>({...t,[i.key]:{type:`field`,value:{value:e.id,label:e.displayName},associatedObject:{id:n,name:a.objectName}}}))}}},[N,ne,M,s]),re=(0,V.useCallback)(async e=>{let n=br(t).find(t=>t.key===e);if(n?.match_hint){let t=``,r=(await L(n.match_hint))?.[0];r&&(t=r.id,M(t=>({...t,[e]:{type:`custom_object`,value:{id:r.id,objectName:r.object_name}}})),t&&z(void 0,t))}},[t,M,z,L]),ie=(0,V.useCallback)(async()=>{await R(),await z(),g(!1)},[R,z]),ae=(0,V.useCallback)(()=>xr(t),[t]),oe=(0,V.useCallback)(e=>z(e),[z]),B=(0,V.useCallback)(()=>{C.current&&=(clearTimeout(C.current),null),C.current=setTimeout(()=>{S(!0)},500)},[]),H=(0,V.useCallback)(async(e,t)=>{B(),v(e=>({...e,[t]:!0})),D(!0);let n=await P(e,{...d,...f});return b(e=>(e[t]===!1&&typeof n==`boolean`&&n&&(f[t]||re(t)),{...e,[t]:n})),v(e=>({...e,[t]:!1})),n},[f,B,re,d]);p.current||(p.current=!0,ie());let se=(0,V.useCallback)(e=>y[e]===!1,[y]),ce=(0,V.useCallback)(e=>_[e]===!0,[_]),le=(0,V.useCallback)(e=>{if(w[e])return{message:w[e],showMessage:!0,error:!0}},[w]),ue=(0,V.useMemo)(()=>{let e=(t.fields??[]).filter(e=>e.type===`container`).map(e=>e.when),n=u.map(e=>e.when);return[...e,...n].filter(Boolean)},[t,u]),de=(0,V.useMemo)(()=>u.reduce((e,t)=>(e[t.key]=t,e),{}),[u]),fe=(0,V.useCallback)((e,t,n)=>{t.add(e);let r=de[e];r?.dependencies?.length&&r.dependencies.forEach(e=>{n.has(e)||(n.add(e),fe(e,t,n))})},[de]),pe=(0,V.useMemo)(()=>u.map(e=>{let t=new Set,n=e.dependencies??[],r=new Set;return n.forEach(e=>{fe(e,t,r)}),{...e,dependencies:Array.from(t)}}),[u,fe]),me=(0,V.useCallback)(e=>{pe.filter(t=>t.dependencies.length===0?!1:t.dependencies.includes(e)&&t.key!==e).forEach(e=>{A.current[e.key]?.()})},[pe]),he=(0,V.useCallback)(async()=>{let e=(await Promise.all(u.map(async e=>e.when?await P(e.when,{...d,...f})?e:null:e))).filter(Boolean),t=0;for(let n of e)n&&n.required&&!yr(n,f[n.key])?(T(e=>({...e,[n.key]:`This field is required`})),t++):n?.validation_pattern?new RegExp(n.validation_pattern).test(f[n.key]?.value??n.default??``)||(T(e=>({...e,[n.key]:`Value must match the pattern ${n.validation_pattern??``}`})),t++):n&&T(e=>({...e,[n.key]:void 0}));return{isValid:t===0,includedKeys:e.map(e=>e?.key).filter(e=>!!e)}},[f,u,d]);(0,V.useEffect)(()=>{B()},[B]);let U=Object.values(_).filter(Boolean).length;return!E&&ue.length===0&&D(!0),E&&O&&U===0&&k(!1),(0,Y.jsx)(_r,{value:{state:f,setState:M,interpolateValue:F,getNestedFields:ae,reInferFieldsForObject:oe,inferencePending:h,evaluateExpression:H,shouldHideField:se,shouldDisableField:ce,expressionsIdle:x,getFieldErrorState:le,validateForm:he,waitingExpressionCount:U,initialExpressionsPending:O,flattenedFields:u,flattenedFieldsByKey:de,afterFieldChange:me,registerFieldResetter:j,disabledKeys:i??[]},children:e})},Cr=()=>{let e=(0,V.useContext)(gr);if(!e)throw Error(`useSetupAssistant must be used within a SetupAssistantController`);return e};function Q(e,t=!1){let n=Cr(),{evaluateExpression:r,shouldHideField:i,getFieldErrorState:a,disabledKeys:o}=n;(0,V.useEffect)(()=>{e.when&&r(e.when,e.key)},[e.when,e.key,r]);let s=i(e.key),c=o.includes(e.key)||t,l=a(e.key);return{...n,shouldHide:s,isDisabled:c,errorState:l}}var wr=({field:e,disabled:t=!1})=>{let{state:n,setState:r,afterFieldChange:i,registerFieldResetter:a,isDisabled:o,shouldHide:s,errorState:c}=Q(e,t),l=n[e.key]?.value??e.default??!1,u=l===!0||l===`true`,d=(0,V.useCallback)(t=>{r(n=>({...n,[e.key]:{type:`boolean`,value:t}})),i(e.key)},[e.key,r,i]);return(0,V.useEffect)(()=>{a(e.key,()=>{d(void 0)})},[e.key,a,d]),s?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>{d(e.target.checked)},disabled:o,className:`h-3.5 w-3.5 cursor-pointer accent-blue-600`}),(0,Y.jsxs)(`span`,{className:`text-[13px] ${o?`text-neutral-400`:`text-neutral-700`}`,children:[e.label,e.required&&(0,Y.jsx)(`span`,{className:`text-red-500 ml-0.5`,children:`*`})]}),e.tooltip&&(0,Y.jsx)(`span`,{className:`text-[11px] text-neutral-400`,title:e.tooltip,children:`?`})]}),c?.showMessage&&c.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:c.message})]})},Tr=({field:e,pluginApiName:t,disabled:n=!1})=>{let{shouldHide:r}=Q(e,n),i=e.columns??1;return r?null:(0,Y.jsxs)(`div`,{children:[e.label&&(0,Y.jsx)(`h3`,{className:`text-[14px] font-semibold text-neutral-800 mb-3 mt-4`,children:e.label}),(0,Y.jsx)(`div`,{className:`gap-4`,style:{display:`grid`,gridTemplateColumns:`repeat(${String(i)}, 1fr)`},children:e.fields?.map(e=>(0,Y.jsx)(Or,{field:e,pluginApiName:t,disabled:n},e.key))})]})},$=({field:e})=>e.label?(0,Y.jsxs)(`label`,{className:`text-[12px] font-medium text-neutral-600`,children:[e.label,e.required&&(0,Y.jsx)(`span`,{className:`text-red-500 ml-0.5`,children:`*`}),e.tooltip&&(0,Y.jsx)(`span`,{className:`ml-1 text-neutral-400 cursor-help`,title:e.tooltip,children:`?`})]}):null,Er=({label:e,value:t,onChange:n,onSelect:a,options:o,loading:s,placeholder:c,disabled:l,keepOpenOnSelect:u})=>{let[d,f]=(0,V.useState)(!1),p=(0,V.useRef)(null);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e&&(0,Y.jsx)(`label`,{className:`text-[11px] font-semibold uppercase tracking-widest text-neutral-500`,children:e}),(0,Y.jsxs)(`div`,{ref:p,className:`relative`,children:[(0,Y.jsx)(r,{icon:i,className:`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[10px] text-neutral-400`}),(0,Y.jsx)(`input`,{type:`text`,className:`w-full rounded border border-black/10 bg-white py-1.5 pl-7 pr-2.5 font-mono text-[12px] text-neutral-800 focus:border-neutral-400 focus:outline-none disabled:opacity-50`,value:t,placeholder:c,disabled:l,onChange:e=>{n(e.target.value)},onFocus:()=>{f(!0)},onBlur:()=>{f(!1)}})]}),(0,Y.jsxs)(D,{anchorRef:p,open:d,children:[s&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-[12px] text-neutral-400`,children:`Loading…`}),!s&&o.length===0&&t.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-[12px] text-neutral-400`,children:`Start typing to search…`}),!s&&o.length===0&&t.length>0&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-[12px] text-neutral-400`,children:`No results`}),!s&&o.map(e=>(0,Y.jsx)(`div`,{className:`cursor-pointer px-3 py-2 text-[12px] text-neutral-800 hover:bg-neutral-100`,onClick:()=>{a(e.id,e.label),u||f(!1)},children:e.label},e.id))]})]})},Dr={container:Tr,custom_object:({field:e,disabled:t=!1})=>{let{state:n,setState:r,getNestedFields:i,reInferFieldsForObject:a,shouldDisableField:o,registerFieldResetter:s,afterFieldChange:c,isDisabled:l,shouldHide:u,errorState:d}=Q(e,t),f=o(e.key)||l,[p,m]=(0,V.useState)(``),[h,g]=(0,V.useState)([]),[_,v]=(0,V.useState)(!1),y=(0,V.useRef)(null),b=O(),x=T(),S=(0,V.useCallback)(async e=>{v(!0);try{let t=new URLSearchParams({page_size:`20`});e&&t.set(`search`,e);let n=await(await b(`/custom-objects?${t.toString()}`)).json(),r=(Array.isArray(n)?n:n.results??[]).map(e=>({id:e.id,label:e.object_name})),i=x?.business.client_object;i?.access&&(!e||i.object_name.toLowerCase().includes(e.toLowerCase()))&&r.unshift({id:i.id,label:i.object_name}),g(r)}catch{}finally{v(!1)}},[b,x]),C=e.allow_multiple?n[e.key]?.value??[]:[],w=(0,V.useCallback)((t,i)=>{let a=n[e.key]?.value??[];a.some(e=>e.id===t)||(r(n=>({...n,[e.key]:{type:`custom_object`,value:[...a,{id:t,objectName:i}]}})),c(e.key),m(``))},[n,e.key,r,c]),E=(0,V.useCallback)(t=>{let i=n[e.key]?.value??[];r(n=>({...n,[e.key]:{type:`custom_object`,value:i.filter(e=>e.id!==t)}})),c(e.key)},[n,e.key,r,c]),D=e.allow_multiple?void 0:n[e.key]?.value,k=(0,V.useRef)(!1);(0,V.useEffect)(()=>{!e.allow_multiple&&D?.objectName&&!k.current&&(m(D.objectName),k.current=!0)},[e.allow_multiple,D]);let A=(0,V.useCallback)(t=>{m(t),D&&(r(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key))),c(e.key)),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{S(t)},300)},[D,e.key,r,c,S]),j=(0,V.useCallback)((t,n)=>{m(n),r(r=>({...r,[e.key]:{type:`custom_object`,value:{id:t,objectName:n}}}));let o=i().filter(t=>t.object_id?.includes(e.key));for(let e of o)r(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key)));a(e.key),c(e.key)},[e.key,r,i,a,c]),M=(0,V.useCallback)(t=>{e.allow_multiple?(m(t),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{S(t)},300)):A(t)},[e.allow_multiple,A,S]),N=(0,V.useCallback)((t,n)=>{e.allow_multiple?w(t,n):j(t,n)},[e.allow_multiple,w,j]);if((0,V.useEffect)(()=>{s(e.key,()=>{r(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key))),m(``),k.current=!1})},[e.key,s,r]),u)return null;if(e.allow_multiple){let t=h.filter(e=>!C.some(t=>t.id===e.id));return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),C.length>0&&(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-1`,children:C.map(e=>(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-neutral-100 px-2 py-0.5 text-[11px] text-neutral-700`,children:[e.objectName,(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{E(e.id)},disabled:f,className:`text-neutral-400 hover:text-neutral-600`,"aria-label":`Remove ${e.objectName}`,children:`×`})]},e.id))}),(0,Y.jsx)(Er,{value:p,onChange:M,onSelect:N,options:t,loading:_,placeholder:e.placeholder??`Search for objects...`,disabled:f,keepOpenOnSelect:!0}),d?.showMessage&&d.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:d.message})]})}return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),(0,Y.jsxs)(`div`,{className:`relative`,children:[(0,Y.jsx)(Er,{value:p,onChange:M,onSelect:N,options:h,loading:_,placeholder:e.placeholder??`Search for an object...`,disabled:f}),D&&(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{r(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key))),m(``),k.current=!1,c(e.key)},disabled:f,className:`absolute right-2 top-1/2 -translate-y-1/2 text-[11px] text-neutral-400 hover:text-neutral-600`,"aria-label":`Clear selection`,children:`×`})]}),d?.showMessage&&d.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:d.message})]})},field:({field:e,disabled:t=!1})=>{let{interpolateValue:n,state:r,setState:i,registerFieldResetter:a,afterFieldChange:o,isDisabled:s,shouldHide:c,errorState:l}=Q(e,t),u=n(e.object_id??``),[d,f]=(0,V.useState)([]),[p,m]=(0,V.useState)(``),[h,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(null),y=O();(0,V.useEffect)(()=>{!u||u===_||c||(async()=>{g(!0);try{m((await(await y(`/custom-objects/${u}`)).json()).object_name??``);let e=await(await y(`/custom-objects/${u}/fields`)).json();f((Array.isArray(e)?e:e.results??[]).map(e=>({label:e.display_name,value:e.id}))),v(u)}catch{}finally{g(!1)}})()},[u,_,y,e.key,c]);let b=r[e.key]?.value,x=(0,V.useCallback)(t=>{i(n=>({...n,[e.key]:{type:`field`,value:t,associatedObject:{id:u,name:p}}})),o(e.key)},[e.key,i,u,p,o]);if((0,V.useEffect)(()=>{a(e.key,()=>{i(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key)))})},[e.key,a,i]),c)return null;let S=!u||s;if(e.allow_multiple){let t=Array.isArray(b)?b:[];return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),(0,Y.jsx)(`div`,{className:`rounded border p-2 text-[13px] ${l?.error?`border-red-300`:`border-black/10`} ${S?`bg-neutral-50`:`bg-white`}`,children:h&&d.length===0?(0,Y.jsx)(`span`,{className:`text-neutral-400 text-[12px]`,children:`Loading fields...`}):u?d.length===0?(0,Y.jsx)(`span`,{className:`text-neutral-400 text-[12px]`,children:`No fields available`}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-1 max-h-48 overflow-y-auto transition-opacity ${h?`opacity-60`:``}`,children:d.map(e=>{let n=t.some(t=>t.value===e.value);return(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n,disabled:S,onChange:()=>{x(n?t.filter(t=>t.value!==e.value):[...t,e])},className:`h-3 w-3 accent-blue-600`}),(0,Y.jsx)(`span`,{className:`text-[12px]`,children:e.label})]},e.value)})}):(0,Y.jsx)(`span`,{className:`text-neutral-400 text-[12px]`,children:`Select an object first`})}),l?.showMessage&&l.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:l.message})]})}let C=b&&!Array.isArray(b)?b.value:``;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),h&&d.length===0?(0,Y.jsx)(`div`,{className:`w-full rounded border border-black/10 px-2 py-1.5 text-[12px] text-neutral-400 bg-neutral-50`,children:`Loading fields...`}):(0,Y.jsxs)(`select`,{value:C,onChange:e=>{let t=d.find(t=>t.value===e.target.value);t&&x(t)},disabled:S,className:`w-full rounded border px-2 py-1.5 text-[13px] font-mono focus:outline-none focus:ring-1 transition-opacity ${l?.error?`border-red-300 focus:ring-red-400`:`border-black/10 focus:ring-blue-400`} ${S?`bg-neutral-50 text-neutral-400`:`bg-white`} ${h?`opacity-60`:``}`,children:[(0,Y.jsx)(`option`,{value:``,children:u?`Choose a field`:`Select an object first`}),d.map(e=>(0,Y.jsx)(`option`,{value:e.value,children:e.label},e.value))]}),l?.showMessage&&l.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:l.message})]})},text:({field:e,disabled:t=!1})=>{let{state:n,setState:r,afterFieldChange:i,registerFieldResetter:a,isDisabled:o,shouldHide:s,errorState:c}=Q(e,t),[l,u]=(0,V.useState)(n[e.key]?.value??e.default??``),d=(0,V.useCallback)(t=>{r(n=>({...n,[e.key]:{type:`text`,value:t}})),i(e.key)},[e.key,r,i]);return(0,V.useEffect)(()=>{a(e.key,()=>{u(``),d(``)})},[e.key,a,d]),(0,V.useEffect)(()=>{let e=setTimeout(()=>{d(l)},300);return()=>{clearTimeout(e)}},[l,d]),s?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),(0,Y.jsx)(`input`,{type:`text`,value:l,onChange:e=>{u(e.target.value)},placeholder:e.placeholder??e.default??`Enter text`,disabled:o,className:`rounded border px-2 py-1.5 text-[13px] font-mono focus:outline-none focus:ring-1 ${c?.error?`border-red-300 focus:ring-red-400`:`border-black/10 focus:ring-blue-400`} ${o?`bg-neutral-50 text-neutral-400`:`bg-white`}`}),c?.showMessage&&c.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:c.message})]})},description:({field:e})=>{let{shouldHide:t}=Q(e);return t?null:(0,Y.jsx)(`div`,{className:`text-[13px] text-neutral-500 leading-relaxed`,children:e.content})},number:({field:e,disabled:t=!1})=>{let{state:n,setState:r,afterFieldChange:i,registerFieldResetter:a,isDisabled:o,shouldHide:s,errorState:c}=Q(e,t),l=n[e.key]?.value??e.default??``,[u,d]=(0,V.useState)(String(l)),f=(0,V.useCallback)(t=>{r(n=>({...n,[e.key]:{type:`number`,value:t}})),i(e.key)},[e.key,r,i]);return(0,V.useEffect)(()=>{a(e.key,()=>{d(``),f(``)})},[e.key,a,f]),(0,V.useEffect)(()=>{let e=setTimeout(()=>{f(u)},300);return()=>{clearTimeout(e)}},[u,f]),s?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),(0,Y.jsx)(`input`,{type:`number`,value:u,onChange:e=>{d(e.target.value)},placeholder:e.placeholder??e.default??`Enter a number`,disabled:o,className:`rounded border px-2 py-1.5 text-[13px] font-mono focus:outline-none focus:ring-1 ${c?.error?`border-red-300 focus:ring-red-400`:`border-black/10 focus:ring-blue-400`} ${o?`bg-neutral-50 text-neutral-400`:`bg-white`}`}),c?.showMessage&&c.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:c.message})]})},select:({field:e,pluginApiName:t,disabled:n=!1})=>{let{state:r,setState:i,inferencePending:a,initialExpressionsPending:o,expressionsIdle:s,afterFieldChange:c,registerFieldResetter:l,isDisabled:u,shouldHide:d,errorState:f}=Q(e,n),p=!a&&!o&&s,[m,h]=(0,V.useState)([]),[g,_]=(0,V.useState)(!1),v=(0,V.useRef)(null),[y,b]=(0,V.useState)(``),[x,S]=(0,V.useState)(``),[C,w]=(0,V.useState)(!1),T=(0,V.useRef)(null),E=!!(e.getFetchUrl||e.optionMapper),k=r[e.key]?.value,A=O(),j=(0,V.useCallback)(t=>{i(n=>({...n,[e.key]:{type:`select`,value:t}})),c(e.key)},[c,e.key,i]);(0,V.useEffect)(()=>{l(e.key,()=>{i(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key))),b(``),S(``)})},[e.key,l,i]),(0,V.useEffect)(()=>{if(!e.typeahead)return;let t=setTimeout(()=>{S(y)},300);return()=>{clearTimeout(t)}},[y,e.typeahead]);let M=(0,V.useMemo)(()=>e.typeahead?{...r,search:x}:r,[r,x,e.typeahead]),N=(0,V.useMemo)(()=>JSON.stringify(M),[M]),P=(0,V.useCallback)(async n=>{_(!0);try{let r={__kizen_state:{value:{...n,pluginApiName:t}}},i;if(e.getFetchUrl){let t=await re(e.getFetchUrl,r);if(t){let n=e.fetchMethod??`GET`,a={"Content-Type":`application/json`},o=null;if(e.getHeaders&&(a=await ne(e.getHeaders,r)),n===`POST`&&e.getBody){let t=await ne(e.getBody,r);o=JSON.stringify(t)}if(t.startsWith(`/`))i={data:await(await A(t,{method:n,headers:a,...o!=null&&{body:o}})).json()};else{let e=await fetch(t,{method:n,headers:a,...o!=null&&{body:o}});e.ok&&(i=await e.json())}}}if(e.optionMapper){let r=await ie(e.optionMapper,{__kizen_state:{value:{...n,result:i,pluginApiName:t}}});h(structuredClone(r))}else Array.isArray(i)&&h(i)}catch{}finally{_(!1)}},[e,t,A]);if((0,V.useEffect)(()=>{!E||!p||d||e.typeahead||v.current!==N&&(v.current=N,P(M))},[E,p,N,M,e.typeahead,d,P]),(0,V.useEffect)(()=>{!E||!p||d||!e.typeahead||C&&v.current!==N&&(v.current=N,P(M))},[E,p,N,M,e.typeahead,C,d,P]),(0,V.useEffect)(()=>{!E||!e.autoSelect||e.typeahead||u||d||k||m.length===1&&m[0]&&(e.allow_multiple?j([m[0]]):j(m[0]))},[E,e.autoSelect,e.typeahead,e.allow_multiple,u,d,k,m,j]),d)return null;let F=E?m:e.options??[];if(e.allow_multiple){let t=Array.isArray(k)?k:[];return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),(0,Y.jsx)(`div`,{className:`rounded border p-2 text-[13px] ${f?.error?`border-red-300`:`border-black/10`} ${u?`bg-neutral-50`:`bg-white`}`,children:g&&F.length===0?(0,Y.jsx)(`span`,{className:`text-neutral-400 text-[12px]`,children:`Loading options...`}):F.length===0?(0,Y.jsx)(`span`,{className:`text-neutral-400 text-[12px]`,children:`No options available`}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-1 max-h-48 overflow-y-auto transition-opacity ${g?`opacity-60`:``}`,children:F.map(e=>{let n=t.some(t=>t.value===e.value);return(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n,disabled:u,onChange:()=>{j(n?t.filter(t=>t.value!==e.value):[...t,e])},className:`h-3 w-3 accent-blue-600`}),(0,Y.jsx)(`span`,{className:`text-[12px]`,children:e.label})]},e.value)})})}),f?.showMessage&&f.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:f.message})]})}if(e.typeahead){let t=k&&!Array.isArray(k)?k.label:``;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),(0,Y.jsxs)(`div`,{ref:T,className:`relative`,children:[(0,Y.jsx)(`input`,{type:`text`,value:t&&!C?t:y,placeholder:e.placeholder??`Search...`,disabled:u,onChange:t=>{b(t.target.value),k&&(i(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key))),c(e.key))},onFocus:()=>{w(!0),t&&b(t)},onBlur:()=>{w(!1)},className:`w-full rounded border px-2 py-1.5 text-[13px] font-mono focus:outline-none focus:ring-1 ${f?.error?`border-red-300 focus:ring-red-400`:`border-black/10 focus:ring-blue-400`} ${u?`bg-neutral-50 text-neutral-400`:`bg-white`}`}),t&&!C&&(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{i(t=>Object.fromEntries(Object.entries(t).filter(([t])=>t!==e.key))),b(``),S(``),c(e.key)},disabled:u,className:`absolute right-2 top-1/2 -translate-y-1/2 text-[11px] text-neutral-400 hover:text-neutral-600`,"aria-label":`Clear selection`,children:`×`})]}),(0,Y.jsxs)(D,{anchorRef:T,open:C,children:[g&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-[12px] text-neutral-400`,children:`Loading...`}),!g&&F.length===0&&y.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-[12px] text-neutral-400`,children:`Start typing to search...`}),!g&&F.length===0&&y.length>0&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-[12px] text-neutral-400`,children:`No results`}),!g&&F.map(e=>(0,Y.jsx)(`div`,{className:`cursor-pointer px-3 py-2 text-[12px] text-neutral-800 hover:bg-neutral-100`,onClick:()=>{j(e),b(e.label),w(!1)},children:e.label},e.value))]}),f?.showMessage&&f.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:f.message})]})}let I=k&&!Array.isArray(k)?F.findIndex(e=>JSON.stringify(e.value)===JSON.stringify(k.value)):-1;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($,{field:e}),g&&F.length===0?(0,Y.jsx)(`div`,{className:`w-full rounded border border-black/10 px-2 py-1.5 text-[12px] text-neutral-400 bg-neutral-50`,children:`Loading options...`}):(0,Y.jsxs)(`select`,{value:I>=0?String(I):``,onChange:e=>{let t=F[Number(e.target.value)];t&&j(t)},disabled:u,className:`w-full rounded border px-2 py-1.5 text-[13px] font-mono focus:outline-none focus:ring-1 transition-opacity ${f?.error?`border-red-300 focus:ring-red-400`:`border-black/10 focus:ring-blue-400`} ${u?`bg-neutral-50 text-neutral-400`:`bg-white`} ${g?`opacity-60`:``}`,children:[(0,Y.jsx)(`option`,{value:``,children:e.placeholder??`Choose an option`}),F.map((e,t)=>(0,Y.jsx)(`option`,{value:String(t),children:e.label},e.label))]}),f?.showMessage&&f.message&&(0,Y.jsx)(`span`,{className:`text-[11px] text-red-500`,children:f.message})]})},boolean:wr},Or=({field:e,pluginApiName:t,disabled:n=!1})=>{let r=Dr[e.type];return(0,Y.jsx)(r,{field:e,pluginApiName:t,disabled:n})},kr=new Set([`get`,`delete`,`head`]),Ar=async(e,t,n,r,i)=>{let a=r!=null,o=r instanceof FormData||r instanceof Blob,s=a&&!o?{"Content-Type":`application/json`,...i?.headers}:i?.headers,c=await e(n,{method:t,...a&&{body:o?r:JSON.stringify(r)},...s&&{headers:s}});return c.status===204||c.headers.get(`content-length`)===`0`?{}:await c.json()};function jr(e){return{get:(t,n)=>Ar(e,`GET`,t,void 0,n),delete:(t,n)=>Ar(e,`DELETE`,t,void 0,n),head:(t,n)=>Ar(e,`HEAD`,t,void 0,n),post:(t,n,r)=>Ar(e,`POST`,t,n,r),put:(t,n,r)=>Ar(e,`PUT`,t,n,r),patch:(t,n,r)=>Ar(e,`PATCH`,t,n,r),request:(t,n,r,i)=>{let a=t.toLowerCase(),o=kr.has(a)?r:i,s=kr.has(a)?void 0:r;return Ar(e,t.toUpperCase(),n,s,o)}}}var Mr=()=>{let e=O(),t=T();return{getObjectByAPIName:(0,V.useCallback)(async n=>{try{let t=await(await e(`/api/custom-objects?filters=${encodeURIComponent(JSON.stringify({api_name:n}))}`)).json(),r=Array.isArray(t)?t:t.results;if(r&&r.length>0)return r}catch{}let r=t?.business.client_object;if(r?.access&&r.name===n)return[{id:r.id,object_name:r.object_name}]},[e,t]),getCustomObjectDetails:(0,V.useCallback)(async t=>{try{let[n,r]=await Promise.all([e(`/api/custom-objects/${t}`),e(`/api/custom-objects/${t}/fields`)]),i=await n.json(),a=await r.json(),o=Array.isArray(a)?a:a.results??[];return{id:t,objectName:i.object_name??``,fields:o.map(e=>({id:e.id,name:e.name,displayName:e.display_name}))}}catch{return{id:t,objectName:``,fields:[]}}},[e])}},Nr=({state:e,onDismiss:t})=>{let n=e.error?.message??`Unknown error`,r=e.context?.workerName,i=e.context?.pluginApiName;return(0,Y.jsx)(w,{open:e.visible,size:`xl`,ariaModal:!0,fontMono:!1,onBackdropClick:t,header:(0,Y.jsx)(C,{title:`Critical Exception`,statusDot:`red`}),footer:(0,Y.jsx)(`button`,{onClick:t,className:`rounded bg-neutral-900 px-3 py-1.5 text-[12px] text-white transition-colors hover:bg-neutral-700`,children:`Dismiss`}),children:(0,Y.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,Y.jsx)(`p`,{className:`m-0 mb-3 text-[12px] leading-relaxed text-neutral-700`,children:`This error will be logged in Kizen's monitoring stack. Did you mean to throw it, or would you prefer to handle the error in your application code with a toast or other messaging?`}),(r??i)&&(0,Y.jsxs)(`div`,{className:`mb-3 flex flex-wrap gap-2 text-[11px] text-neutral-600`,children:[r&&(0,Y.jsxs)(`span`,{className:`rounded bg-neutral-100 px-2 py-0.5 font-mono`,children:[`worker: `,r]}),i&&(0,Y.jsxs)(`span`,{className:`rounded bg-neutral-100 px-2 py-0.5 font-mono`,children:[`plugin: `,i]})]}),(0,Y.jsx)(`div`,{className:`mb-2 text-[11px] font-semibold uppercase tracking-wide text-neutral-500`,children:`Error`}),(0,Y.jsx)(`div`,{className:`whitespace-pre-wrap break-words rounded border border-black/10 bg-neutral-950 px-3 py-2 font-mono text-[11px] leading-relaxed text-amber-300`,children:n})]})})};function Pr(){let[e,t]=(0,V.useState)({visible:!1});return{onMonitoringException:(0,V.useCallback)((e,n)=>{let r={};n.extra.workerName!==void 0&&(r.workerName=n.extra.workerName),n.extra.pluginApiName!==void 0&&(r.pluginApiName=n.extra.pluginApiName),t({visible:!0,error:e,context:r})},[]),dialog:(0,Y.jsx)(Nr,{state:e,onDismiss:(0,V.useCallback)(()=>{t(e=>({...e,visible:!1}))},[])})}}export{Er as a,nr as c,lr as d,Qn as f,Or as i,Xn as l,Cr as m,Mr as n,hr as o,$n as p,jr as r,Sr as s,Pr as t,Kn as u};
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Kizen App Development Toolkit</title>
7
- <script type="module" crossorigin src="/assets/index-BXPMaCXm.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-BVpA7WNR.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-DF2fYuay.js">
9
9
  <link rel="modulepreload" crossorigin href="/assets/fa-core-BoBqCOD3.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/useQuery-5OkVbV1s.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kizenapps/cli",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-431518c",
4
4
  "description": "CLI tool for running Kizen plugin apps locally",
5
5
  "license": "GPL-3.0",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "dist"
15
15
  ],
16
16
  "dependencies": {
17
- "@kizenapps/engine": "1.2.2",
17
+ "@kizenapps/engine": "1.3.0",
18
18
  "@kizenapps/packager": "^0.1.0",
19
19
  "chrome-launcher": "^1.2.1",
20
20
  "chrome-remote-interface": "^0.34.0",
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DF2fYuay.js";import{A as t,a as n,j as r,k as i,r as a}from"./fa-core-BoBqCOD3.js";import{t as o}from"./useNavigate-BblEmQ3O.js";import{n as s,t as c}from"./bundleQuery-CjbA01rb.js";import{t as l}from"./useQuery-5OkVbV1s.js";import{r as u}from"./api-CT-MKz2h.js";import{t as d}from"./Card-BpDJPrPZ.js";import{t as f}from"./CodeViewer-C9aVhzG7.js";import{t as p}from"./useLocalStorage-CyZiO78q.js";import{i as m,r as h,u as g}from"./configStorage-DcQWEL9-.js";import{t as _}from"./WhenBadge-P9aN2Qd7.js";var v=e(r(),1),y=t(),b=({title:e,defaultOpen:t=!1,children:r})=>{let[o,s]=(0,v.useState)(t);return(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`button`,{onClick:()=>{s(e=>!e)},className:`flex w-full items-center gap-1.5 py-1 text-[11px] font-semibold uppercase tracking-widest text-neutral-400 hover:text-neutral-600`,children:[(0,y.jsx)(i,{icon:o?a:n,className:`w-2.5`}),e]}),o&&(0,y.jsx)(`div`,{className:`pb-2`,children:r})]})},x=({result:e})=>{let t=Object.entries(e.outputValues);return(0,y.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-black/10 bg-white p-4`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{className:`rounded px-2 py-0.5 text-[11px] font-semibold ${e.success?`bg-green-100 text-green-700`:`bg-red-100 text-red-700`}`,children:e.success?`Success`:`Error`}),(0,y.jsxs)(`span`,{className:`text-[11px] text-neutral-400`,children:[String(e.durationMs),`ms`]}),e.exitCode!==0&&(0,y.jsxs)(`span`,{className:`text-[11px] text-neutral-400`,children:[`exit code `,String(e.exitCode)]})]}),e.error&&(0,y.jsx)(`pre`,{className:`overflow-auto rounded bg-red-50 p-3 font-mono text-[12px] text-red-800`,children:e.error}),t.length>0&&(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`mb-1 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Outputs`}),(0,y.jsx)(`div`,{className:`divide-y divide-black/5`,children:t.map(([e,t])=>(0,y.jsxs)(`div`,{className:`flex items-start gap-2 py-1.5`,children:[(0,y.jsx)(`span`,{className:`shrink-0 font-mono text-[12px] text-neutral-600`,children:e}),(0,y.jsx)(`span`,{className:`text-[11px] text-neutral-300`,children:`=`}),(0,y.jsx)(`pre`,{className:`min-w-0 flex-1 overflow-auto font-mono text-[12px] text-neutral-800`,children:typeof t==`string`?t:JSON.stringify(t,null,2)})]},e))})]}),e.logs.length>0&&(0,y.jsx)(b,{title:`Logs (${String(e.logs.length)})`,children:(0,y.jsx)(`div`,{className:`space-y-0.5`,children:e.logs.map((e,t)=>(0,y.jsx)(`div`,{className:`font-mono text-[12px] text-neutral-600`,children:e},t))})}),e.stdout&&(0,y.jsx)(b,{title:`Stdout`,children:(0,y.jsx)(`pre`,{className:`overflow-auto rounded bg-neutral-50 p-3 font-mono text-[12px] text-neutral-700`,children:e.stdout})}),e.stderr&&(0,y.jsx)(b,{title:`Stderr`,children:(0,y.jsx)(`pre`,{className:`overflow-auto rounded bg-neutral-50 p-3 font-mono text-[12px] text-neutral-700`,children:e.stderr})}),e.httpRequests&&e.httpRequests.count>0&&(0,y.jsx)(b,{title:`Network (${String(e.httpRequests.count)}${e.httpRequests.notLogged>0?`, ${String(e.httpRequests.notLogged)} not logged`:``})`,children:(0,y.jsx)(`div`,{className:`space-y-1.5`,children:e.httpRequests.requests.map((e,t)=>(0,y.jsx)(w,{request:e},t))})})]})},S=e=>{switch(e.toUpperCase()){case`GET`:return`bg-blue-100 text-blue-700`;case`POST`:return`bg-green-100 text-green-700`;case`PUT`:case`PATCH`:return`bg-amber-100 text-amber-700`;case`DELETE`:return`bg-red-100 text-red-700`;default:return`bg-neutral-100 text-neutral-700`}},C=(e,t)=>t||e>=500?`text-red-700`:e>=400?`text-amber-700`:e>=200?`text-green-700`:`text-neutral-600`,w=({request:e})=>{let[t,r]=(0,v.useState)(!1),o=e.requestErrorType!==null;return(0,y.jsxs)(`div`,{className:`rounded border border-black/5 bg-neutral-50`,children:[(0,y.jsxs)(`button`,{onClick:()=>{r(e=>!e)},className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left hover:bg-neutral-100`,children:[(0,y.jsx)(i,{icon:t?a:n,className:`w-2.5 text-neutral-400`}),(0,y.jsx)(`span`,{className:`rounded px-1.5 py-0.5 font-mono text-[10px] font-semibold ${S(e.method)}`,children:e.method}),(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[12px] text-neutral-700`,children:e.url}),(0,y.jsx)(`span`,{className:`font-mono text-[11px] font-semibold ${C(e.responseStatusCode,o)}`,children:o?e.requestErrorType:e.responseStatusCode}),(0,y.jsxs)(`span`,{className:`font-mono text-[10px] text-neutral-400`,children:[(e.duration*1e3).toFixed(0),`ms`]})]}),t&&(0,y.jsxs)(`div`,{className:`space-y-2 border-t border-black/5 p-2.5`,children:[(0,y.jsx)(T,{title:`Request Headers`,data:e.headers}),e.body&&(0,y.jsx)(E,{title:`Request Body`,body:e.body}),(0,y.jsx)(T,{title:`Response Headers`,data:e.responseHeaders}),e.responseBody&&(0,y.jsx)(E,{title:`Response Body`,body:e.responseBody})]})]})},T=({title:e,data:t})=>{let n=Object.entries(t);return n.length===0?null:(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-widest text-neutral-400`,children:e}),(0,y.jsx)(`div`,{className:`divide-y divide-black/5 rounded border border-black/5 bg-white`,children:n.map(([e,t])=>(0,y.jsxs)(`div`,{className:`flex gap-2 px-2 py-1 font-mono text-[11px]`,children:[(0,y.jsxs)(`span`,{className:`shrink-0 text-neutral-500`,children:[e,`:`]}),(0,y.jsx)(`span`,{className:`min-w-0 flex-1 break-all text-neutral-800`,children:t})]},e))})]})},E=({title:e,body:t})=>(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-widest text-neutral-400`,children:e}),(0,y.jsx)(`pre`,{className:`overflow-auto rounded border border-black/5 bg-white p-2 font-mono text-[11px] text-neutral-800`,children:t})]}),D=[`python-3-13`,`python-3-12`],O=`python-3-12`,k={text:`s`,string:`s`,number:`n`,integer:`n`,boolean:`b`,date:`d`,datetime:`dt`,phone:`p`,phonenumber:`p`,uuid:`u`,file:`f`,list:`l`};function A(e){return k[e.toLowerCase()]??`s`}function j(e){return D.includes(e)?e:O}function M(e,t){let n=Object.keys(e);if(n.length===0)return null;let r={};for(let i of n)r[i]={t:A(t[i]??`string`),v:e[i]};return r}function N(e){let t=Object.keys(e);if(t.length===0)return null;let n={};for(let r of t)n[r]=A(e[r]??`string`);return n}function P(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r.v;return t}function F(e){if(!e)return;let t=e.requests.map(e=>({method:e.method,url:e.url,headers:e.headers,body:e.body,requestSubmittedAt:e.requestSubmittedAt,session:e.session,responseStatusCode:e.responseStatusCode,responseHeaders:e.responseHeaders,responseBody:e.responseBody,requestErrorType:e.requestErrorType,duration:e.duration}));return{count:e.count,notLogged:e.not_logged,requests:t}}async function I(e,t){let n=Date.now(),r={user_script:t.script,runtime:j(t.scriptRuntime),secrets:t.secretNames.length>0?t.secretNames:void 0,inputs:M(t.inputs,t.inputTypes),output_types:N(t.outputTypes)};try{let t=await e(`/coderunner/run`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),i=Date.now()-n;if(!t.ok){let e=await t.text();return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Remote runner returned ${String(t.status)}: ${e}`,exitCode:1,durationMs:i}}let a=await t.json(),o=a.error!==null,s=F(a.http_requests),c={success:!o,outputValues:P(a.values),logs:a.logs??[],stdout:``,stderr:``,exitCode:+!!o,durationMs:a.duration_ms??i,...s&&{httpRequests:s}};return o&&a.error&&(c.error=a.error.detail?`${a.error.error}\n${a.error.detail}`:a.error.error),c}catch(e){return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Remote execution failed: ${e instanceof Error?e.message:String(e)}`,exitCode:1,durationMs:Date.now()-n}}}var L=()=>{let{apiName:e,stepApiName:t}=s({strict:!1}),n=o(),{data:r,isLoading:i,isError:a}=l(c),b=u(),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)(null),[E,D]=p(`kizen-step-inputs:${e??``}:${t??``}`,{}),[O,k]=p(`kizen-step-secrets:${e??``}:${t??``}`,{}),[A,j]=p(`kizen-code-runner-mode`,`local`),M=r?.find(t=>t.api_name===e),N=(0,v.useMemo)(()=>M?.artifacts.automation_action_configs??[],[M]),P=N.find(e=>e.action_step_api_name===t)??N[0],F=(0,v.useMemo)(()=>{if(!e||!M)return{};let t=M.base_config,n=h(e),r=m(e),i=g(n?.__kizen_clean_config??{},[],n?.__kizen_setup_assistant_values??{},t?.setup_assistant?.fields),a=g(r?.__kizen_clean_config??{},[],r?.__kizen_setup_assistant_values??{},t?.user_setup_assistant?.fields),o={};for(let[e,t]of Object.entries(i))o[`config__${e}`]=t;for(let[e,t]of Object.entries(a))o[`userConfig__${e}`]=t;return o},[e,M]);if((0,v.useEffect)(()=>{if(!t&&N.length>0&&e){let t=N[0];t&&n({to:`/$apiName/code-steps/$stepApiName`,params:{apiName:e,stepApiName:t.action_step_api_name},replace:!0})}},[t,N,e,n]),(0,v.useEffect)(()=>{T(null)},[t]),i)return(0,y.jsx)(d,{children:(0,y.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-400`,children:`Fetching bundle.json…`})});if(a)return(0,y.jsx)(d,{children:(0,y.jsx)(`p`,{className:`m-0 text-[13px] text-red-700`,children:`Could not load bundle.json.`})});if(!M)return(0,y.jsx)(d,{children:(0,y.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`No app found with api_name`,` `,(0,y.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:e}),`.`]})});if(N.length===0)return(0,y.jsx)(d,{children:(0,y.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:`This app has no automation code steps.`})});if(!P)return(0,y.jsx)(d,{children:(0,y.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`Step not found: `,(0,y.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:t}),`.`]})});let L=async()=>{C(!0),T(null);try{let t=Object.fromEntries(P.inputs.map(e=>[e.name,E[e.name]??``])),n;n=A===`remote`?await I(b,{script:P.script,scriptRuntime:P.script_runtime,inputs:t,inputTypes:Object.fromEntries(P.inputs.map(e=>[e.name,e.data_type])),outputTypes:Object.fromEntries(P.outputs.map(e=>[e.name,e.data_type])),secretNames:P.secrets.map(t=>`${e??``}__${t}`)}):await(await fetch(`/api/execute-step`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({script:P.script,scriptRuntime:P.script_runtime,inputs:t,secrets:Object.fromEntries(P.secrets.map(t=>[`${e??``}__${t}`,O[t]??``]))})})).json(),T(n)}catch(e){T({success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:e instanceof Error?e.message:String(e),exitCode:1,durationMs:0})}finally{C(!1)}};return(0,y.jsxs)(`div`,{className:`space-y-4`,children:[(0,y.jsxs)(d,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Code Step`}),(0,y.jsx)(`select`,{value:P.action_step_api_name,onChange:t=>{e&&n({to:`/$apiName/code-steps/$stepApiName`,params:{apiName:e,stepApiName:t.target.value}})},className:`rounded border border-black/10 bg-transparent px-2 py-0.5 text-[13px] font-mono text-neutral-700 focus:outline-none`,children:N.map(e=>(0,y.jsx)(`option`,{value:e.action_step_api_name,children:e.name},e.action_step_api_name))}),(0,y.jsx)(`div`,{className:`flex-1`}),(0,y.jsx)(`span`,{className:`rounded bg-blue-50 px-1.5 py-0.5 text-[10px] font-semibold text-blue-600`,children:P.script_runtime})]}),P.overall_description&&(0,y.jsx)(`p`,{className:`mt-2 text-[12px] text-neutral-500`,children:P.overall_description}),P.when&&(0,y.jsx)(`div`,{className:`mt-2`,children:(0,y.jsx)(_,{when:P.when,whenState:F})})]}),(0,y.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-3`,children:[(0,y.jsxs)(d,{children:[(0,y.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Inputs`}),P.inputs.length>0?(0,y.jsx)(`div`,{className:`space-y-3`,children:P.inputs.map(e=>(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`label`,{className:`mb-1 block text-[12px] text-neutral-700`,children:[e.label,e.required&&(0,y.jsx)(`span`,{className:`ml-0.5 text-red-500`,children:`*`})]}),(0,y.jsx)(`input`,{type:`text`,value:E[e.name]??``,onChange:t=>{D({...E,[e.name]:t.target.value})},placeholder:e.name,className:`w-full rounded border border-black/10 bg-white px-2.5 py-1.5 font-mono text-[13px] text-neutral-800 placeholder:text-neutral-300 focus:border-blue-300 focus:outline-none`}),(0,y.jsx)(`div`,{className:`mt-0.5 font-mono text-[10px] text-neutral-400`,children:e.name})]},e.name))}):(0,y.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]}),(0,y.jsxs)(d,{children:[(0,y.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Outputs`}),P.outputs.length>0?(0,y.jsx)(`div`,{className:`space-y-2`,children:P.outputs.map(e=>(0,y.jsxs)(`div`,{className:`flex items-baseline gap-2 rounded border border-black/5 bg-neutral-50 px-2.5 py-1.5`,children:[(0,y.jsx)(`span`,{className:`text-[13px] text-neutral-700`,children:e.label}),(0,y.jsx)(`span`,{className:`font-mono text-[10px] text-neutral-400`,children:e.name}),(0,y.jsx)(`span`,{className:`ml-auto rounded bg-white px-1.5 py-0.5 font-mono text-[10px] text-neutral-500`,children:e.data_type})]},e.name))}):(0,y.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]}),(0,y.jsxs)(d,{children:[(0,y.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Secrets`}),A===`remote`&&(0,y.jsx)(`p`,{className:`mb-3 rounded border border-blue-100 bg-blue-50 px-2.5 py-1.5 text-[12px] text-blue-700`,children:`Remote runner uses secrets from your business context.`}),P.secrets.length>0?(0,y.jsx)(`div`,{className:`space-y-3`,children:P.secrets.map(e=>(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`label`,{className:`mb-1 block text-[12px] text-neutral-700`,children:e}),(0,y.jsx)(`input`,{type:`password`,value:O[e]??``,onChange:t=>{k({...O,[e]:t.target.value})},placeholder:e,disabled:A===`remote`,className:`w-full rounded border border-black/10 bg-white px-2.5 py-1.5 font-mono text-[13px] text-neutral-800 placeholder:text-neutral-300 focus:border-blue-300 focus:outline-none disabled:cursor-not-allowed disabled:bg-neutral-50 disabled:text-neutral-400`})]},e))}):(0,y.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]})]}),(0,y.jsx)(f,{code:P.script,language:`python`,onRun:()=>void L(),isRunning:S,executionMode:A,onModeChange:j}),w&&(0,y.jsx)(x,{result:w})]})};export{L as CodeStepsPage};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DF2fYuay.js";import{A as t,T as n,j as r,k as i}from"./fa-core-BoBqCOD3.js";import{n as a,t as o}from"./bundleQuery-CjbA01rb.js";import{t as s}from"./useQuery-5OkVbV1s.js";import{a as c,i as l,n as u}from"./BootstrapContext-D5ZnMrOp.js";import{i as d,n as f,o as p,r as m,s as h,t as g}from"./useCriticalExceptionDialog-BI_gNDBK.js";import{d as _}from"./storageKeys-C6c8YF5Y.js";import{n as v,r as y}from"./api-CT-MKz2h.js";import{t as b}from"./Card-BpDJPrPZ.js";import{t as x}from"./CodeViewer-C9aVhzG7.js";import{c as S,i as C,n as w,o as T,r as E,s as D,t as O}from"./configStorage-DcQWEL9-.js";var k=e(r(),1),A=t(),j=e=>e?JSON.stringify(e,null,2):`{}`,M=({apiName:e,configTemplate:t})=>{let n=E(e),r=j(t),[i,a]=(0,k.useState)(n?.__kizen_clean_config?JSON.stringify(n.__kizen_clean_config,null,2):r),[o,s]=(0,k.useState)(null),[c,l]=(0,k.useState)(!1);return(0,A.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,A.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,A.jsxs)(`p`,{className:`text-[13px] text-neutral-500 m-0`,children:[`No setup assistant defined. Enter configuration as JSON.`,t?` Pre-populated from config_template.`:``]})}),(0,A.jsx)(`textarea`,{value:i,onChange:e=>{a(e.target.value),s(null),l(!1)},spellCheck:!1,className:`w-full min-h-[300px] rounded border p-3 text-[13px] font-mono leading-relaxed focus:outline-none focus:ring-1 ${o?`border-red-300 focus:ring-red-400`:`border-black/10 focus:ring-blue-400`}`}),o&&(0,A.jsxs)(`span`,{className:`text-[12px] text-red-500`,children:[`Parse error: `,o]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(`button`,{onClick:()=>{try{D(e,JSON.parse(i)),s(null),l(!0),setTimeout(()=>{l(!1)},2e3)}catch(e){s(e instanceof Error?e.message:`Invalid JSON`),l(!1)}},className:`rounded bg-blue-600 px-4 py-1.5 text-[13px] font-medium text-white hover:bg-blue-700 active:bg-blue-800`,children:`Save Configuration`}),(0,A.jsx)(`button`,{onClick:()=>{O(e),a(r),s(null),l(!1)},className:`rounded border border-black/10 px-4 py-1.5 text-[13px] font-medium text-neutral-600 hover:bg-neutral-50 active:bg-neutral-100`,children:`Reset`}),c&&(0,A.jsx)(`span`,{className:`text-[12px] text-green-600 font-medium`,children:`Saved`})]})]})},N=({open:e,onClose:t,apiName:n,loadFn:r,label:i})=>{let a=(0,k.useMemo)(()=>e?r(n)?.__kizen_clean_config??null:null,[e,n,r]),o=(0,k.useMemo)(()=>a?JSON.stringify(a,null,2):``,[a]),[s,u]=(0,k.useState)(!1);return(0,k.useEffect)(()=>{e||u(!1)},[e]),(0,A.jsx)(l,{open:e,size:`xl`,ariaModal:!0,onBackdropClick:t,header:(0,A.jsx)(c,{title:`Stored JSON — ${i}`,onClose:t}),footer:a?(0,A.jsx)(`button`,{onClick:()=>{navigator.clipboard.writeText(o).then(()=>{u(!0),setTimeout(()=>{u(!1)},1200)})},className:`rounded border border-black/10 px-3 py-1 text-[12px] font-medium text-neutral-600 hover:bg-neutral-50 active:bg-neutral-100`,children:s?`Copied`:`Copy`}):void 0,children:(0,A.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,A.jsxs)(`p`,{className:`m-0 mb-3 text-[12px] text-neutral-500`,children:[`This is the saved JSON the plugin runtime will see as`,` `,(0,A.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 font-mono text-[11px]`,children:i}),`. Save the form to refresh.`]}),a?(0,A.jsx)(x,{code:o,language:`json`}):(0,A.jsx)(`div`,{className:`rounded border border-dashed border-black/10 px-4 py-6 text-center text-[12px] text-neutral-400`,children:`No saved configuration yet. Save the form to populate this view.`})]})})},P=({config:e,apiName:t,loadFn:n,saveFn:r,clearFn:i})=>{let a=n(t)?.__kizen_setup_assistant_values,o=(0,k.useRef)({}),[s,c]=(0,k.useState)(!1),{getObjectByAPIName:l,getCustomObjectDetails:u}=f(),p=(0,k.useCallback)(e=>{o.current=e},[]);return(0,A.jsx)(h,{config:e,value:a,onStateChange:p,disabledKeys:[],getObjectByAPIName:l,getCustomObjectDetails:u,children:(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[e.fields?.map(e=>(0,A.jsx)(d,{field:e,pluginApiName:t},e.key)),(0,A.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,A.jsx)(`button`,{onClick:()=>{let n=o.current;r(t,n,e),c(!0),setTimeout(()=>{c(!1)},2e3)},className:`rounded bg-blue-600 px-4 py-1.5 text-[13px] font-medium text-white hover:bg-blue-700 active:bg-blue-800`,children:`Save Configuration`}),(0,A.jsx)(`button`,{onClick:()=>{i(t),window.location.reload()},className:`rounded border border-black/10 px-4 py-1.5 text-[13px] font-medium text-neutral-600 hover:bg-neutral-50 active:bg-neutral-100`,children:`Reset`}),s&&(0,A.jsx)(`span`,{className:`text-[12px] text-green-600 font-medium`,children:`Saved`})]})]})})},F=({config:e,apiName:t,loadFn:r,saveFn:a,clearFn:o})=>{let s=u(),c=y(),l=(0,k.useMemo)(()=>m(c),[c]),{environment:d}=_(),f=v[d],[h,b]=(0,k.useState)(!1),[x,S]=(0,k.useState)(!1),{onMonitoringException:C,dialog:w}=g();return s?(0,A.jsx)(p,{appPath:f,user:{id:s.team.user,crm_client_id:``},business:s.business,clientObject:s.business.client_object?{id:s.business.client_object.id,objectName:s.business.client_object.object_name}:void 0,teamMember:s.team,onNavigate:()=>{},performFileUpload:()=>Promise.resolve({url:``}),monitoringExceptionHelper:C,performRequest:async(e,t,n,r)=>({data:await l.request(e,t,n,r)}),modal:{showing:h,show:x,showPrompt:()=>{b(!0),S(!0)},onConfirm:()=>{b(!1),S(!1)},onHide:()=>{b(!1),S(!1)}},showToast:()=>{},clearToasts:()=>{},children:()=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(P,{config:e,apiName:t,loadFn:r,saveFn:a,clearFn:o}),w]})}):(0,A.jsx)(i,{icon:n,className:`animate-spin text-neutral-400`})},I=()=>{let{apiName:e}=a({strict:!1}),{data:t,isLoading:n,isError:r}=s(o),[i,c]=(0,k.useState)(null);if(n)return(0,A.jsx)(b,{children:(0,A.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-400`,children:`Fetching bundle.json…`})});if(r)return(0,A.jsx)(b,{children:(0,A.jsx)(`p`,{className:`m-0 text-[13px] text-red-700`,children:`Could not load bundle.json.`})});let l=t?.find(t=>t.api_name===e);if(!l)return(0,A.jsx)(b,{children:(0,A.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`No app found with api_name`,` `,(0,A.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:e}),`.`]})});let u=l.base_config,d=u?.setup_assistant,f=u?.user_setup_assistant,p=(d?.fields?.length??0)>0,m=(f?.fields?.length??0)>0;return!p&&!m?(0,A.jsx)(b,{children:(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{className:`text-[15px] font-bold text-neutral-900 m-0`,children:`Configuration`}),(0,A.jsx)(`p`,{className:`text-[12px] text-neutral-400 m-0 mt-1`,children:`Enter plugin configuration as JSON.`})]}),(0,A.jsx)(M,{apiName:e??``,configTemplate:l.config_template})]})}):(0,A.jsxs)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start`,children:[p&&d&&(0,A.jsx)(b,{className:`lg:flex-1 lg:min-w-0`,children:(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,A.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsx)(`h2`,{className:`text-[15px] font-bold text-neutral-900 m-0`,children:`Business Configuration`}),(0,A.jsxs)(`p`,{className:`text-[12px] text-neutral-400 m-0 mt-1`,children:[`Configure the business-level setup assistant fields. These values are shared across the whole business and exposed to plugin scripts at`,` `,(0,A.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 font-mono text-[11px]`,children:`this.config`}),`.`]})]}),(0,A.jsx)(`button`,{onClick:()=>{c(`business`)},className:`shrink-0 rounded border border-black/10 px-3 py-1.5 text-[12px] font-medium text-neutral-600 hover:bg-neutral-50 active:bg-neutral-100`,children:`View JSON`})]}),(0,A.jsx)(F,{config:d,apiName:e??``,loadFn:E,saveFn:T,clearFn:O})]})}),m&&f&&(0,A.jsx)(b,{className:`lg:flex-1 lg:min-w-0`,children:(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,A.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsx)(`h2`,{className:`text-[15px] font-bold text-neutral-900 m-0`,children:`User Configuration`}),(0,A.jsxs)(`p`,{className:`text-[12px] text-neutral-400 m-0 mt-1`,children:[`Configure the per-user setup assistant fields. These values are scoped to the logged-in user and exposed to plugin scripts at`,` `,(0,A.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 font-mono text-[11px]`,children:`this.userConfig`}),`.`]})]}),(0,A.jsx)(`button`,{onClick:()=>{c(`user`)},className:`shrink-0 rounded border border-black/10 px-3 py-1.5 text-[12px] font-medium text-neutral-600 hover:bg-neutral-50 active:bg-neutral-100`,children:`View JSON`})]}),(0,A.jsx)(F,{config:f,apiName:e??``,loadFn:C,saveFn:S,clearFn:w})]})}),(0,A.jsx)(N,{open:i===`business`,onClose:()=>{c(null)},apiName:e??``,loadFn:E,label:`this.config`}),(0,A.jsx)(N,{open:i===`user`,onClose:()=>{c(null)},apiName:e??``,loadFn:C,label:`this.userConfig`})]})};export{I as ConfigurationPage};