@jointhedots/ui 2.0.20

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.
Files changed (35) hide show
  1. package/bundle.manifest.json +47 -0
  2. package/chunk.73S35ZUP.js +1 -0
  3. package/chunk.7FLBFFZJ.js +1 -0
  4. package/chunk.IWVPDTNR.js +60 -0
  5. package/chunk.J7UOQR25.js +787 -0
  6. package/chunk.NOVIDUKC.js +1 -0
  7. package/chunk.NZRTZDOB.js +1 -0
  8. package/chunk.OW3MI2XU.js +35 -0
  9. package/chunk.S2ABQ2TE.js +51 -0
  10. package/chunk.SOVKFN6E.js +57 -0
  11. package/chunk.TB7PTJUW.js +297 -0
  12. package/chunk.VLRB3H3F.js +12 -0
  13. package/chunk.YJXSWWE6.js +3 -0
  14. package/chunk.ZTJG4JJS.js +26 -0
  15. package/cid.0Z4H3pyI6YJvF25fpMdVxrsrJb2aoHNuRqCW8ykQutc.json +44 -0
  16. package/cid.N30c0jISJNset9Hvr2NLQnsa9sVwvpNmyKx2QZaYQyc.json +10 -0
  17. package/export.applicationboard.js +1 -0
  18. package/export.codeeditor.js +1 -0
  19. package/export.componentslibrary.js +1 -0
  20. package/export.dialog.js +1 -0
  21. package/export.icon.js +1 -0
  22. package/export.inputs.js +1 -0
  23. package/export.items.js +1 -0
  24. package/export.layouts.js +1 -0
  25. package/export.notifications.js +1 -0
  26. package/export.servicepoint.js +1 -0
  27. package/export.theme.js +1 -0
  28. package/lambda.node_modules.monaco_editor.esm.vs.editor.editor_worker_js.js +1 -0
  29. package/lambda.node_modules.monaco_editor.esm.vs.language.css.css_worker.js +66 -0
  30. package/lambda.node_modules.monaco_editor.esm.vs.language.html.html_worker.js +443 -0
  31. package/lambda.node_modules.monaco_editor.esm.vs.language.json.json_worker.js +31 -0
  32. package/lambda.node_modules.monaco_editor.esm.vs.language.typescript.ts_worker.js +67711 -0
  33. package/lambda.src.applicationboard.component.js +1 -0
  34. package/package.json +73 -0
  35. package/types.d.ts +1862 -0
@@ -0,0 +1,47 @@
1
+ {
2
+ "$id": "jointhedots.ui",
3
+ "type": "bundle",
4
+ "name": "@jointhedots/ui",
5
+ "data": {
6
+ "baseline": "jointhedots.ui-v0",
7
+ "components": [
8
+ {
9
+ "id": "jtd:application.board.component",
10
+ "icon": "utility:apps",
11
+ "title": "Application Board",
12
+ "services": [
13
+ "component",
14
+ "component.view.react"
15
+ ],
16
+ "description": "",
17
+ "ref": "cid.0Z4H3pyI6YJvF25fpMdVxrsrJb2aoHNuRqCW8ykQutc.json"
18
+ },
19
+ {
20
+ "id": "monaco.provider",
21
+ "title": "monaco.provider",
22
+ "services": [
23
+ "monaco.editor.worker",
24
+ "monaco.json.worker",
25
+ "monaco.css.worker",
26
+ "monaco.html.worker",
27
+ "monaco.ts.worker"
28
+ ],
29
+ "description": "",
30
+ "ref": "cid.N30c0jISJNset9Hvr2NLQnsa9sVwvpNmyKx2QZaYQyc.json"
31
+ }
32
+ ],
33
+ "exports": {
34
+ "@jointhedots/ui/ApplicationBoard": "export.applicationboard.js",
35
+ "@jointhedots/ui/ComponentsLibrary": "export.componentslibrary.js",
36
+ "@jointhedots/ui/CodeEditor": "export.codeeditor.js",
37
+ "@jointhedots/ui/Dialog": "export.dialog.js",
38
+ "@jointhedots/ui/Icon": "export.icon.js",
39
+ "@jointhedots/ui/Items": "export.items.js",
40
+ "@jointhedots/ui/ServicePoint": "export.servicepoint.js",
41
+ "@jointhedots/ui/Layouts": "export.layouts.js",
42
+ "@jointhedots/ui/Notifications": "export.notifications.js",
43
+ "@jointhedots/ui/Inputs": "export.inputs.js",
44
+ "@jointhedots/ui/theme": "export.theme.js"
45
+ }
46
+ }
47
+ }
@@ -0,0 +1 @@
1
+ var d=Object.defineProperty;var e=(c,a)=>{for(var b in a)d(c,b,{get:a[b],enumerable:!0})};export{e as a};
@@ -0,0 +1 @@
1
+ import{b as T,d as L}from"./chunk.NOVIDUKC.js";import{i as w,q as B}from"./chunk.IWVPDTNR.js";import{d as k}from"./chunk.SOVKFN6E.js";import{n as b,p as S}from"./chunk.TB7PTJUW.js";import{j as C}from"./chunk.OW3MI2XU.js";import{createComponentFilter as me,acquireServicePoint as ge}from"@jointhedots/core";import{useEffect as j,useMemo as W,useRef as J,useState as R}from"react";import{createComponentFilter as Q,acquireServicePoint as X}from"@jointhedots/core";import{useCurrentView as Y}from"@jointhedots/core/react";import{getViewReferenceFrom as Z,gotoURLView as N}from"@jointhedots/core/view";import{Fragment as te,jsx as e,jsxs as f}from"react/jsx-runtime";var V=o=>{let n=J(null);return j(()=>{let t=i=>{n.current&&!n.current.contains(i.target)&&o()};return document.addEventListener("mousedown",t),()=>{document.removeEventListener("mousedown",t)}},[o]),n};function G(o,n){return Z(o?.view)===n}function H(o,n,t){if(n&&n.pages)for(let i in n.pages){let s=H(i,n.pages[i],t);if(s)return s}else if(G(n,t))return o;return null}function ee(o){let{title:n,entry:t,active:i,onGoto:s}=o,[r,a]=R(!1),c=V(()=>a(!1)),d=H(n,t,i),m=t.pages,u=d||n;return f("li",{className:`slds-context-bar__item slds-context-bar__dropdown-trigger slds-dropdown-trigger slds-dropdown-trigger_click slds-is-open ${d?"slds-is-active":""}`,children:[e("a",{className:"slds-context-bar__label-action",title:"Menu Item",onClick:()=>a(!r),children:e("span",{className:"slds-truncate",title:u,children:u})}),n&&e("div",{className:"slds-context-bar__icon-action slds-p-left_none",onClick:()=>a(!r),children:f("button",{className:"slds-button slds-button_icon slds-button_icon slds-context-bar__button","aria-haspopup":"true",title:`Open ${n}`,children:[e(C,{className:"slds-button__icon",name:"utility:chevrondown"}),e("span",{className:"slds-assistive-text",children:"Open menu item submenu"})]})}),r&&e("div",{ref:c,className:"slds-dropdown slds-dropdown_left",children:e("ul",{className:"slds-dropdown__list",role:"menu",children:m&&Object.keys(m).map((g,_)=>{let P=m[g];return e("li",{className:"slds-dropdown__item slds-p-horizontal_xx-small",role:"presentation",children:e(S,{name:g,icon:P.icon||"blank",summary:P.description||g,onSelect:(()=>{a(!1),s(P)})})},_)})})})]})}function ne(o){let{toolings:n,origin:t,onClose:i}=o,s=V(i),r=W(()=>Q({services:["view.react"],types:["jtd:application.board.component"]}),[]),a=c=>{i(),N({name:c.id})};return f("div",{ref:s,className:"slds-dropdown slds-dropdown_left",children:[f("div",{style:{display:"flex",fontSize:"130%",justifyContent:"flex-start",paddingLeft:5,borderBottom:"solid thin #0005"},children:[e(b,{icon:"bi:person-gear",name:"Configuration",onActivate:()=>{N({name:"settings"},t)}}),Array.isArray(n)&&e(M,{toolings:n,anchor:"menu"})]}),e(w,{filter:r,onSelect:a})]})}function I(o){let{panel:n,descriptor:t,active:i,origin:s}=o,[r,a]=R(!1),{title:c,pages:d,toolings:m}=t,u=p=>{p.view&&N(p.view,s)};return f("div",{className:"slds-context-bar",children:[e("div",{className:"slds-context-bar__primary",children:f("div",{className:"slds-context-bar__item slds-context-bar__dropdown-trigger slds-dropdown-trigger slds-dropdown-trigger_click slds-no-hover slds-is-open",children:[e("div",{className:"slds-context-bar__icon-action",children:f("button",{className:"slds-button slds-icon-waffle_container slds-context-bar__button",onClick:()=>a(!r),title:"Settings",children:[f("span",{className:"slds-icon-waffle",children:[e("span",{className:"slds-r1"}),e("span",{className:"slds-r2"}),e("span",{className:"slds-r3"}),e("span",{className:"slds-r4"}),e("span",{className:"slds-r5"}),e("span",{className:"slds-r6"}),e("span",{className:"slds-r7"}),e("span",{className:"slds-r8"}),e("span",{className:"slds-r9"})]}),e("span",{className:"slds-assistive-text",children:"Open App Launcher"})]})}),r&&e(ne,{toolings:m,origin:s,onClose:()=>a(!1)}),!n&&c&&e("span",{className:"slds-context-bar__label-action slds-context-bar__app-name",children:e("span",{className:"slds-truncate",title:"App Name",children:c})})]})}),f("nav",{className:"slds-context-bar__secondary",role:"navigation",children:[e("ul",{className:"slds-grid",children:d&&Object.keys(d).map(p=>{let g=d[p];if(g.pages)return e(ee,{title:p,entry:g,active:i,onGoto:u},p);{let _=`slds-context-bar__item ${G(g,i)?"slds-is-active":""}`;return e("li",{className:_,children:e("a",{title:p,className:"slds-context-bar__label-action",onClick:()=>u(g),children:e("span",{className:"slds-truncate",title:g.description||p,children:p})})},p)}})}),e("div",{style:{flexGrow:1,display:"flex"},children:e("div",{style:{flexGrow:1}})})]}),e("div",{style:{display:"flex",alignItems:"center",gap:5,paddingRight:5},children:Array.isArray(m)&&e(M,{toolings:m,anchor:"status"})})]})}function M(o){let{toolings:n,anchor:t}=o,i=Y();return e(te,{children:n.map((s,r)=>{if(s.anchor!==t)return null;if(s.type==="servicePoint"){let a=X(s.id);if(a)return e(T,{servicePoint:a},r)}else{if(s.type==="notifications")return e(k,{},r);if(s.type==="link"){let{url:a,view:c,title:d,icon:m}=s;if(a)return e(b,{icon:m,name:d,onActivate:()=>{window.open(a,"_blank")}},r);if(c)return e(b,{icon:m,name:d,onActivate:()=>{N(c,i)}},r)}}return null})})}import{Button as ue}from"react-lightning-design-system";import{ButtonGroup as oe,PageHeader as ie,PageHeaderDetail as se,PageHeaderHeading as re,Button as ae}from"react-lightning-design-system";import{Fragment as ce,jsx as v,jsxs as O}from"react/jsx-runtime";function D({children:o,icon:n,title:t,onClose:i,legend:s,buttons:r,info:a,minHeight:c}){return O(ie,{children:[v(re,{figure:n,info:a,legend:s||"",title:t,rightActions:O(oe,{children:[i&&v(ae,{type:"neutral",onClick:()=>i(),icon:"close",title:"Close"}),r]})}),v(se,{children:v(y,{sx:{backgroundColor:"white",margin:"0 -1rem -1rem",padding:le()?"0":"1rem",borderRadius:"0 0 0.25rem 0.25rem",width:"100%",minHeight:c||"85vh"},children:o})})]})}function le(){return window.location.href.indexOf("embedded=true")>-1}function q({children:o,component_id:n}){return v(ce,{children:o})}function y(o){let{children:n,className:t,sx:i}=o;return v("div",{className:t,style:i,children:n})}function A(o){let{children:n,className:t,sx:i}=o;return v("div",{className:t,style:i,children:n})}import{InvokeView as K,useAsyncMemo as fe,useCurrentView as ve,useLocationHash as ye,UseServicePoints as U}from"@jointhedots/core/react";import"@salesforce-ux/design-system/assets/styles/salesforce-lightning-design-system.min.css";import{Tab as F,Tabs as pe}from"react-lightning-design-system";import{jsx as x,jsxs as de}from"react/jsx-runtime";function E(){return x("div",{style:{margin:10,display:"grid"},children:de(pe,{defaultActiveKey:"0",onSelect:function(){},type:"default",children:[x(F,{title:"Service Points",eventKey:"0",children:x(L,{})}),x(F,{title:"Components",eventKey:"1",children:x(B,{title:"Components"})})]})})}import{getViewReferenceFrom as xe,getViewInfosFrom as z,gotoURLView as $}from"@jointhedots/core/view";import{useMemo as be}from"react";import{Fragment as we,jsx as l,jsxs as h}from"react/jsx-runtime";function sn(o){let{title:n,page:t,origin:i}=o;return t.view?l(y,{sx:{backgroundColor:"white",minHeight:"90vh",mt:1},children:l(K,{view:t.view})}):t.pages?h(y,{className:"container",children:[n,l(y,{sx:{height:"400px",m:2,textAlign:"center"},children:l(A,{container:!0,spacing:2,children:Object.keys(t.pages).map(s=>{let r=t.pages[s];return l(A,{item:!0,md:4,children:h(D,{title:s,minHeight:"150px",children:[l("p",{children:t.description}),r.view&&l(ue,{type:"brand",onClick:()=>$(r.view,i),children:"Try it"})]})})})})})]}):l("div",{className:"container",children:n})}function rn(o){let{placeholder:n,descriptor:t}=o,{landingPage:i,requirements:s}=t,r=ye(),a=ve(),c=a?.nested||z(i?.view)||z(r),d=xe(c),m=fe(async()=>{let p=[];for(let g in s?.servicePoints)p.push(ge(g));return p},[],[s]),u=null;return c?c.name==="settings"?u=l(E,{}):u=l(q,{component_id:c.name,children:l(y,{sx:{backgroundColor:"white",minHeight:"90vh",mt:1},children:l(U,{requirements:s,configurator:null,children:l(K,{view:c})})})}):u=l(we,{children:n}),h(U,{requireds:m,configurator:null,children:[l(I,{descriptor:o.descriptor,active:d,origin:a}),u]})}function an(){let o=be(()=>me({services:["view.react"],types:["jtd:application.board.component"]}),[]);return l("div",{className:"slds-grid slds-grid_vertical-align-center slds-grid_align-center",style:{minWidth:"100vw",minHeight:"100vh"},children:h("div",{className:"slds-box",children:[l("div",{style:{fontSize:"130%",paddingLeft:5,marginBottom:10,borderBottom:"solid thin #0005"},children:l("span",{children:"Choose an application"})}),l(w,{filter:o,onSelect:t=>{$({name:t.id})}})]})})}export{sn as a,rn as b,an as c};
@@ -0,0 +1,60 @@
1
+ import{e as J}from"./chunk.SOVKFN6E.js";import{a as j,b as $}from"./chunk.VLRB3H3F.js";import{a as q}from"./chunk.NZRTZDOB.js";import{c as b,f,j as R,p as T,q as O}from"./chunk.TB7PTJUW.js";import{a as L,b as F}from"./chunk.S2ABQ2TE.js";import{j as B}from"./chunk.OW3MI2XU.js";import{useMemo as Z,useRef as Ae,useState as E}from"react";import{toast as Ne}from"react-toastify";import{acquireComponent as De,ComponentControllerKey as A,EditorKey as ee,unregisterComponent as _e,saveComponentManifest as te,acquireFutureComponent as Be}from"@jointhedots/core";import{ModalContent as Le,Button as X}from"react-lightning-design-system";import Fe from"@rjsf/core";import Re from"@rjsf/validator-ajv8";import ye,{useCallback as K,useEffect as ge,useMemo as be}from"react";import{ComponentsRegistry as he,createComponentFilter as P,acquireComponent as k,deleteComponent as xe}from"@jointhedots/core";import{useAsyncMemo as we,useAsyncState as Se}from"@jointhedots/core/react";var ce=`.jtd-input_wrapper {
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: center;
5
+ margin-bottom: 10px;
6
+ }
7
+
8
+ .jtd-input_label {
9
+ display: flex;
10
+ flex: 1;
11
+ color: #666;
12
+ }
13
+
14
+ .jtd-input_input {
15
+ display: flex;
16
+ flex: 2;
17
+ border: 1px solid #999;
18
+ padding-top: 7px;
19
+ padding-bottom: 7px;
20
+ padding-left: 10px;
21
+ padding-right: 10px;
22
+ font-size: 16px;
23
+ border-radius: 5px;
24
+ min-width: 0;
25
+ }`;document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(ce));import{jsx as V,jsxs as le}from"react/jsx-runtime";function z({label:t,value:e,onChange:o,placeholder:i="",type:n="text"}){return le("div",{className:"jtd-input_wrapper",children:[V("label",{className:"jtd-input_label",children:t}),V("input",{type:n,className:"jtd-input_input",placeholder:i,value:e,onChange:r=>{o(r.target.value)}})]})}import{acquireComponent as pe,EditorKey as me}from"@jointhedots/core";import{useAsyncMemo as de}from"@jointhedots/core/react";import{Spinner as ue}from"@salesforce/design-system-react";import{Fragment as S,jsx as C,jsxs as Ce}from"react/jsx-runtime";function fe(t){let{entry:e}=t,o=de(async()=>{let i=pe(e.id),n=await i.fetch(),r=await me.fetch(i);return{manifest:n,preview:r?.preview}},void 0,[e]);return C(S,{children:o!==void 0?C(S,{children:o.preview&&C(o.preview,{manifest:o.manifest})}):C(ue,{})})}function H(t){let{entry:e}=t;return Ce(S,{children:[C(fe,{entry:e}),C(J,{subject_uri:e.id})]})}var ve=`.Livedoc-Component-Browser {
26
+ display: flex;
27
+ flex-direction: row;
28
+ align-items: center;
29
+ border-bottom: var(--app-highlight-background) 1px dashed;
30
+ }
31
+ .Livedoc-Component-Browser .ComponentPack {
32
+ font-size: 12px;
33
+ font-weight: bold;
34
+ padding: 5px !important;
35
+ text-transform: capitalize;
36
+ text-overflow: ellipsis;
37
+ text-wrap: nowrap;
38
+ overflow: hidden;
39
+ }
40
+ .Livedoc-Component-Browser .ComponentItem {
41
+ display: flex;
42
+ flex-direction: row;
43
+ align-items: center;
44
+ white-space: nowrap;
45
+ cursor: pointer;
46
+ padding: 5px !important;
47
+ border-radius: 10px;
48
+ background-color: var(--app-background);
49
+ gap: 5px;
50
+ }
51
+ .Livedoc-Component-Browser .ComponentItem:hover {
52
+ background-color: #eee;
53
+ outline: solid thin #aaa;
54
+ }
55
+ .Livedoc-Component-Browser .ComponentItem > :nth-child(2) {
56
+ flex: 1;
57
+ padding-left: 5px;
58
+ text-overflow: ellipsis;
59
+ overflow: hidden;
60
+ }`;document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(ve));import{Fragment as Q,jsx as p,jsxs as M}from"react/jsx-runtime";function Pe(t){return t.lastIndexOf(":")<0?"common":t.slice(0,t.lastIndexOf(":"))}function Mt(t){let e=t.lastIndexOf(":");return e<0?t:t.slice(e+1)}function ke(t){let e={};for(let o of t){let i=Pe(o.id);(e[i]=e[i]||[]).push(o)}return e}function h(t){return t.icon||"avatar:"+t.title}function Ie(t){let{id:e}=t,o=we(async()=>k(e).fetch(),null,[e]);return o?M(f,{children:[p(B,{name:h(o)}),o.title||e]}):p(Q,{children:"component..."})}function U(t){let{entry:e,display:o,selected:i,onSelect:n,onActivate:r}=t,a=o?.small?T:O,s=[],c=e.description;if(i!==0){let m=i&1;s.push({name:m?"Unselect":"Select",icon:m?"bi:dash-circle-dotted":"bi:check2-circle",optional:!0,onActivate:async y=>{n(y.data)}})}let d=k(e.id).getLogStats().error_count>0;return s.push({name:d?"Issues":"Infos",icon:d?"[error]bi:exclamation-triangle-fill":"bi:info",onActivate:async()=>{b({title:e.title,icon:h(e),content:p(H,{entry:e})}).open("side")}}),e.type&&(o?.allowEdit&&s.push({name:"edit",icon:"bi:pencil",optional:!0,onActivate:async()=>{await W(k(e.id))}}),o?.allowDelete&&s.push({name:"destroy",icon:"bi:trash",optional:!0,onActivate:async()=>{await q(`Do you want to destroy component '${e.title}' ?`)&&(i&1&&n(e),xe(e.id))}}),c||(c=p(Ie,{id:e.type}))),p(a,{data:e,icon:h(e),name:e.title||e.id,summary:c,selected:i,tooling:s,onSelect:n&&(m=>n(m.data)),onActivate:r&&(m=>r(m.data))})}function I(t){let{display:e,entries:o,onSelect:i,onActivate:n}=t,r=be(()=>e?.grouped?ke(o):null,[o,e?.grouped]),a=K(c=>{i(c)},[i]),s=K(c=>{n(c)},[n]);return r?Object.keys(r).map((c,l)=>M("div",{children:[p("div",{className:"ComponentPack",children:c?c.replace(":"," "):"workspace"}),r[c].map((d,m)=>p(U,{entry:d,display:e,onSelect:i&&a,onActivate:n&&s},m))]},c)):p("div",{children:o.map((c,l)=>p(U,{entry:c,display:e,onSelect:i&&a,onActivate:n&&s},l))})}function Me(t){let{display:e,filter:o,onSelect:i,onActivate:n}=t,r=t.provider||he.components_provider,a=Se(async()=>r.search_component_publications(o),[o]);return p(Q,{children:a.waiting(s=>p(I,{entries:s,display:e,onSelect:i,onActivate:n}))})}function G(t){let{provider:e,onSelect:o,onActivate:i}=t,[n,r]=ye.useState(()=>P(t.filter));return ge(()=>{t.filter!==n&&r(P(t.filter))},[t.filter]),M(f,{gap:3,padding:10,vertical:!0,className:"Livedoc-Component-Browser",children:[p(f.FixedDock,{children:p(f,{gap:3,children:p(f.FlexDock,{children:p(z,{label:"Search",value:n.query,onChange:a=>{r(P({...n,query:a}))}})})})}),p(f.FlexDock,{children:p(Me,{filter:n,display:Ee,provider:e,onSelect:o,onActivate:i})})]})}var Ee={grouped:!0,small:!1,allowEdit:!0,allowDelete:!0};import{Fragment as Y,jsx as u,jsxs as w}from"react/jsx-runtime";var Te=$(new j("json"));function Oe(){let t=new Uint8Array(16);return crypto.getRandomValues(t),Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function je(t){let e="config:"+Oe(),o=(t.specs.component.services||[]).reduce((i,n)=>(i[n]=!0,i),{});for(let i of t.tags)if(i.startsWith("component.")){let n=i.slice(10);o[n]=!0}return{$id:e,type:t.$id,services:o}}async function oe(t,e){let o=await t.fetch(),i=await A.fetch(t),n=je(o);n=(await i.checkDescriptor(n))?.fixed||n;let a=Be(n),s=await new Promise(async c=>{let l=!1,d=b(),m=await ee.fetch(a);d.display({title:`New: ${o.title}`,icon:`${o.icon}|bi:plus-circle-fill[RB,info]`,content:u(ne,{created:!0,driver:t,controller:i,editor:m,manifest:n,onValidate:y=>{l=!0,c(y),d.close()},onCancel:()=>{d.close()}}),onClose:()=>{l||(l=!0,c(void 0))}}),d.open("side")});if(s){if(!e||s.services?.[e])return await te(s),a;Ne.error(`Component creation invalid for service '${e}'`)}return _e(a.id),null}async function W(t){let e=await t.fetch(),o=De(e.type),i=await o.fetch(),n=await A.fetch(o),r=await ee.fetch(t),a=await new Promise(s=>{let c=h(e),l=b(),d=!1;l.display({title:`Edit: ${e.title||i.title}`,icon:`${c}|bi:pencil-fill[RB,info]`,content:u(ne,{created:!1,driver:o,controller:n,editor:r,manifest:e,onValidate:m=>{d=!0,s(m),l.close()},onCancel:()=>{l.close()}}),onClose:()=>{d||(d=!0,s(null))}}),l.open("side")});a&&await te(a)}var $e=t=>{let{schema:e,manifest:o,onChange:i,onValidate:n,onCancel:r}=t,a=Ae();return w(Y,{children:[u(Fe,{ref:a,schema:e,validator:Re,formData:o,templates:{ButtonTemplates:{SubmitButton:()=>u(Y,{})}},onChange:s=>i(s.formData)}),u(X,{type:"brand",onClick:()=>n(o),children:"Apply"}),r&&u(X,{type:"neutral",onClick:r,children:"Cancel"})]})},qe=t=>{let{descriptor:e,schema:o,manifest:i,onChange:n}=t,r=Z(()=>JSON.stringify(i,null,2),[i]);return u(Te,{value:r,adjustHeightMax:300})};function ne(t){let{driver:e,controller:o,editor:i,created:n,onValidate:r,onCancel:a}=t,[s,c]=E(t.manifest),l=A.spec(e),d=e.manifest,[m,y]=E(null),[D,re]=E(!1),ae=async g=>{let x=await o.checkDescriptor(g);!x||!x.issues?.length&&!x.fixed?r(g):(c(g),y(x))},se=Z(()=>({type:"object",properties:{title:{type:"string"},...l.attributes},required:["name",...Object.keys(l.attributes)]}),[l]),_=n&&i?.creator||i?.editor||$e;return D&&(_=qe),w("div",{children:[w("div",{style:{position:"relative",minHeight:"2.5em"},children:[u("div",{style:Je,children:s.$id}),u("div",{style:{position:"absolute",top:0,right:10},children:u(F,{icon:"bi:code",onClick:()=>re(!D)})})]}),w(Le,{className:"slds-p-horizontal_small",children:[u(_,{created:n,manifest:s,descriptor:l,schema:se,onChange:c,onValidate:ae,onCancel:a}),m?.issues?.length&&u("div",{className:"JDT-ErrorBoundary",children:m.issues.map(g=>u("div",{children:g.message}))})]})]})}var Je={position:"absolute",float:"right",color:"white",textShadow:"1px 1px 0 rgba(0, 0, 0, 0.5)",fontSize:"80%"};import{createComponentFilter as Ve,acquireComponent as ze,createComponentPublication as He,ComponentsRegistry as Ke}from"@jointhedots/core";import{useAsyncState as Ue}from"@jointhedots/core/react";import{Fragment as ie,jsx as v,jsxs as N}from"react/jsx-runtime";function Ge(t){let{service:e}=t,o=Ue(async()=>{let{entries:n}=t;if(!n){let r=Ke.components_provider,a=Ve({services:["component"],tags:e&&["component."+e]});n=await r.search_component_publications(a)}return n},[e,t.entries]),i=async function(n){let r=ze(n.id),a=await oe(r,e);a&&t.onCreate&&t.onCreate(await He(a.manifest))};return N(ie,{children:[v("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",margin:5,paddingBottom:5,fontSize:"110%",gap:8,color:"grey"},children:"New"}),o.waiting(n=>v(I,{entries:n,display:{grouped:!1,small:!0},onSelect:i}))]})}function Qe(t){let{label:e,service:o,onCreate:i}=t;return v(L,{icon:"bi:plus",label:e||"New Component",onClick:n=>R(n,()=>v(Ge,{service:o,onCreate:i}))})}function io(t){let{title:e,filter:o}=t;return N(ie,{children:[N("h2",{className:"slds-tile",style:{display:"flex"},children:[e,v(Qe,{})]}),v(G,{filter:o})]})}export{fe as a,Pe as b,Mt as c,ke as d,h as e,Ie as f,U as g,I as h,Me as i,G as j,je as k,oe as l,W as m,ne as n,Ge as o,Qe as p,io as q};