@peak-ai/canvas 1.3.3-rc.13 → 1.3.3-rc.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugins/grapejs-plugin.js +3 -2
- package/plugins/grapejs-plugin.js.map +1 -1
- package/plugins/helpers/render-components.js +2 -2
- package/plugins/helpers/render-components.js.map +1 -1
- package/shadcn/components/ui/popover.d.ts +2 -0
- package/shadcn/components/ui/popover.js +4 -2
- package/shadcn/components/ui/popover.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";/* eslint-disable import/no-named-as-default-member *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import ReactDOM from"react-dom";import{getRenderers}from"./helpers/render-components";import{jsx as _jsx}from"react/jsx-runtime";export function createGrapesjsShadcnGenericPlugin(mode,performInteraction,renderedComponents){if(renderedComponents===void 0){renderedComponents={}}return function grapesjsShadcnGenericPlugin(editor){editor.DomComponents.addType("shadcn-generic",{model:{defaults:{tagName:"div",droppable:false,componentName:"Card",componentProps:{},traits:[]}},view:{events:{"input [data-slot]":"handleSlotInput"},handleSlotInput:function handleSlotInput(e){var target=e.target;var slot=target.dataset.slot;var text=target.innerText;var props=this.model.get("componentProps")||{};if(!slot){return}if(slot.startsWith("table-header-")){var _props$data;var idx=parseInt(slot.split("-")[2],10);var dataKeys=Object.keys(((_props$data=props.data)==null?void 0:_props$data[0])||{});if(!props.headerMapper){props.headerMapper={}}var key=dataKeys[idx];if(key){props.headerMapper[key]=text}}else{props[slot]=text}this.model.set("componentProps",_extends({},props))},render:function render(){var _this=this;var compName=this.model.get("componentName");var compProps=this.model.get("componentProps");if(typeof compProps==="string"){try{compProps=JSON.parse(compProps)}catch(err){// eslint-disable-next-line no-console
|
|
2
|
-
console.error("Invalid JSON in componentProps",err);compProps={}}}
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";/* eslint-disable import/no-named-as-default-member *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import ReactDOM from"react-dom";import{getRenderers}from"./helpers/render-components";import{jsx as _jsx}from"react/jsx-runtime";export function createGrapesjsShadcnGenericPlugin(mode,performInteraction,renderedComponents){if(renderedComponents===void 0){renderedComponents={}}return function grapesjsShadcnGenericPlugin(editor){editor.DomComponents.addType("shadcn-generic",{model:{defaults:{tagName:"div",droppable:false,componentName:"Card",componentProps:{},traits:[]}},view:{events:{"input [data-slot]":"handleSlotInput"},handleSlotInput:function handleSlotInput(e){var target=e.target;var slot=target.dataset.slot;var text=target.innerText;var props=this.model.get("componentProps")||{};if(!slot){return}if(slot.startsWith("table-header-")){var _props$data;var idx=parseInt(slot.split("-")[2],10);var dataKeys=Object.keys(((_props$data=props.data)==null?void 0:_props$data[0])||{});if(!props.headerMapper){props.headerMapper={}}var key=dataKeys[idx];if(key){props.headerMapper[key]=text}}else{props[slot]=text}this.model.set("componentProps",_extends({},props))},render:function render(){var _editor$Canvas,_this=this;var compName=this.model.get("componentName");var compProps=this.model.get("componentProps");if(typeof compProps==="string"){try{compProps=JSON.parse(compProps)}catch(err){// eslint-disable-next-line no-console
|
|
2
|
+
console.error("Invalid JSON in componentProps",err);compProps={}}}if(mode==="preview"&&(_editor$Canvas=editor.Canvas)!=null&&_editor$Canvas.getDocument){var iframeDoc=editor.Canvas.getDocument();// Pass that body into the PopoverContent as its mount target
|
|
3
|
+
compProps.container=iframeDoc.body}compProps.isEditable=mode==="editor";compProps.performInteraction=performInteraction;compProps.onChange=function(data){_this.model.set("componentProps",_extends({},_this.model.get("componentProps"),data))};var renderers=getRenderers();var Renderer=renderers[compName];if(Renderer){if(compName==="Tabs"){ReactDOM.render(/*#__PURE__*/_jsx(Renderer,_extends({},compProps,{gjsModel:this.model})),this.el);var children=this.model.components();var tabsContent=this.el.querySelectorAll(".tabs-content");children.each(function(childModel,i){var childView=_this.createView(childModel);if(childView){childView.render();tabsContent[i].appendChild(childView.el)}})}else{ReactDOM.render(/*#__PURE__*/_jsx(Renderer,_extends({},compProps,{gjsModel:this.model})),this.el)}}else{this.el.innerHTML="<div>Unsupported component: "+compName+"</div>"}renderedComponents[this.model.get("id")]=this.model;return this},createView:function createView(model){var _this$em$get$getType;var ComponentView=(_this$em$get$getType=this.em.get("DomComponents").getType(model.get("type")))==null?void 0:_this$em$get$getType.view;if(!ComponentView){// eslint-disable-next-line no-console
|
|
3
4
|
console.warn("No view found for component type:",model.get("type"));return null}var view=new ComponentView({model:model,config:this.config,componentTypes:this.componentTypes});return view},remove:function remove(){// eslint-disable-next-line import/no-named-as-default-member
|
|
4
5
|
ReactDOM.unmountComponentAtNode(this.el);return this}}})}}
|
|
5
6
|
//# sourceMappingURL=grapejs-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grapejs-plugin.js","names":["ReactDOM","getRenderers","jsx","_jsx","createGrapesjsShadcnGenericPlugin","mode","performInteraction","renderedComponents","grapesjsShadcnGenericPlugin","editor","DomComponents","addType","model","defaults","tagName","droppable","componentName","componentProps","traits","view","events","handleSlotInput","e","target","slot","dataset","text","innerText","props","get","startsWith","_props$data","idx","parseInt","split","dataKeys","Object","keys","data","headerMapper","key","set","_extends","render","_this","compName","compProps","JSON","parse","err","console","error","isEditable","onChange","renderers","Renderer","gjsModel","el","children","components","tabsContent","querySelectorAll","each","childModel","i","childView","createView","appendChild","innerHTML","_this$em$get$getType","ComponentView","em","getType","warn","config","componentTypes","remove","unmountComponentAtNode"],"sources":["../../src/plugins/grapejs-plugin.tsx"],"sourcesContent":["/* eslint-disable import/no-named-as-default-member */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport ReactDOM from 'react-dom';\nimport { Editor, Component } from 'grapesjs';\nimport { getRenderers } from './helpers/render-components';\n\nexport function createGrapesjsShadcnGenericPlugin(\n mode: 'editor' | 'preview',\n performInteraction: (payload: Record<string, any>) => void,\n renderedComponents: Record<string, Component> = {},\n) {\n return function grapesjsShadcnGenericPlugin(editor: Editor): void {\n editor.DomComponents.addType('shadcn-generic', {\n model: {\n defaults: {\n tagName: 'div',\n droppable: false,\n componentName: 'Card',\n componentProps: {},\n traits: [],\n },\n },\n view: {\n events: {\n 'input [data-slot]': 'handleSlotInput',\n } as any,\n handleSlotInput(e: Event) {\n const target = e.target as HTMLElement;\n const slot = target.dataset.slot;\n const text = target.innerText;\n\n const props = this.model.get('componentProps') || {};\n\n if (!slot) {\n return;\n }\n\n if (slot.startsWith('table-header-')) {\n const idx = parseInt(slot.split('-')[2], 10);\n const dataKeys = Object.keys(props.data?.[0] || {});\n\n if (!props.headerMapper) {\n props.headerMapper = {};\n }\n\n const key = dataKeys[idx];\n\n if (key) {\n props.headerMapper[key] = text;\n }\n } else {\n props[slot] = text;\n }\n\n this.model.set('componentProps', {\n ...props,\n });\n },\n render: function () {\n const compName: string = this.model.get('componentName');\n let compProps: any = this.model.get('componentProps');\n\n if (typeof compProps === 'string') {\n try {\n compProps = JSON.parse(compProps);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Invalid JSON in componentProps', err);\n compProps = {};\n }\n }\n\n compProps.isEditable = mode === 'editor';\n compProps.performInteraction = performInteraction;\n\n compProps.onChange = (data: Record<string, string>) => {\n this.model.set('componentProps', {\n ...this.model.get('componentProps'),\n ...data,\n });\n };\n\n const renderers = getRenderers();\n const Renderer = renderers[compName];\n\n if (Renderer) {\n if (compName === 'Tabs') {\n ReactDOM.render(<Renderer {...compProps} gjsModel={this.model} />, this.el);\n\n const children = this.model.components();\n const tabsContent = this.el.querySelectorAll('.tabs-content');\n children.each((childModel, i) => {\n const childView = this.createView(childModel);\n\n if (childView) {\n childView.render();\n tabsContent[i].appendChild(childView.el);\n }\n });\n } else {\n ReactDOM.render(<Renderer {...compProps} gjsModel={this.model} />, this.el);\n }\n } else {\n this.el.innerHTML = `<div>Unsupported component: ${compName}</div>`;\n }\n\n renderedComponents[this.model.get('id')] = this.model;\n\n return this;\n },\n createView(model: any) {\n const ComponentView = this.em.get('DomComponents').getType(model.get('type'))?.view;\n\n if (!ComponentView) {\n // eslint-disable-next-line no-console\n console.warn('No view found for component type:', model.get('type'));\n\n return null;\n }\n\n const view = new ComponentView({\n model,\n config: this.config,\n componentTypes: this.componentTypes,\n });\n\n return view;\n },\n remove: function () {\n // eslint-disable-next-line import/no-named-as-default-member\n ReactDOM.unmountComponentAtNode(this.el);\n\n return this;\n },\n },\n });\n };\n}\n"],"mappings":"qDAAA,sDACA,+BACA,uDACA,MAAO,CAAAA,QAAQ,KAAM,WAAW,CAEhC,OAASC,YAAY,KAAQ,6BAA6B,CAAC,OAAAC,GAAA,IAAAC,IAAA,yBAE3D,MAAO,SAAS,CAAAC,iCAAiCA,CAC/CC,IAA0B,CAC1BC,kBAA0D,CAC1DC,kBAA6C,CAC7C,IADAA,kBAA6C,WAA7CA,kBAA6C,CAAG,CAAC,CAAC,CAElD,MAAO,SAAS,CAAAC,2BAA2BA,CAACC,MAAc,CAAQ,CAChEA,MAAM,CAACC,aAAa,CAACC,OAAO,CAAC,gBAAgB,CAAE,CAC7CC,KAAK,CAAE,CACLC,QAAQ,CAAE,CACRC,OAAO,CAAE,KAAK,CACdC,SAAS,CAAE,KAAK,CAChBC,aAAa,CAAE,MAAM,CACrBC,cAAc,CAAE,CAAC,CAAC,CAClBC,MAAM,CAAE,EACV,CACF,CAAC,CACDC,IAAI,CAAE,CACJC,MAAM,CAAE,CACN,mBAAmB,CAAE,iBACvB,CAAQ,CACRC,eAAe,SAAf,CAAAA,eAAeA,CAACC,CAAQ,CAAE,CACxB,GAAM,CAAAC,MAAM,CAAGD,CAAC,CAACC,MAAqB,CACtC,GAAM,CAAAC,IAAI,CAAGD,MAAM,CAACE,OAAO,CAACD,IAAI,CAChC,GAAM,CAAAE,IAAI,CAAGH,MAAM,CAACI,SAAS,CAE7B,GAAM,CAAAC,KAAK,CAAG,IAAI,CAAChB,KAAK,CAACiB,GAAG,CAAC,gBAAgB,CAAC,EAAI,CAAC,CAAC,CAEpD,GAAI,CAACL,IAAI,CAAE,CACT,MACF,CAEA,GAAIA,IAAI,CAACM,UAAU,CAAC,eAAe,CAAC,CAAE,KAAAC,WAAA,CACpC,GAAM,CAAAC,GAAG,CAAGC,QAAQ,CAACT,IAAI,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAC5C,GAAM,CAAAC,QAAQ,CAAGC,MAAM,CAACC,IAAI,CAAC,EAAAN,WAAA,CAAAH,KAAK,CAACU,IAAI,eAAVP,WAAA,CAAa,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,CAEnD,GAAI,CAACH,KAAK,CAACW,YAAY,CAAE,CACvBX,KAAK,CAACW,YAAY,CAAG,CAAC,CACxB,CAEA,GAAM,CAAAC,GAAG,CAAGL,QAAQ,CAACH,GAAG,CAAC,CAEzB,GAAIQ,GAAG,CAAE,CACPZ,KAAK,CAACW,YAAY,CAACC,GAAG,CAAC,CAAGd,IAC5B,CACF,CAAC,IAAM,CACLE,KAAK,CAACJ,IAAI,CAAC,CAAGE,IAChB,CAEA,IAAI,CAACd,KAAK,CAAC6B,GAAG,CAAC,gBAAgB,CAAAC,QAAA,IAC1Bd,KAAK,CACT,CACH,CAAC,CACDe,MAAM,CAAE,QAAR,CAAAA,MAAMA,CAAA,CAAc,KAAAC,KAAA,MAClB,GAAM,CAAAC,QAAgB,CAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"grapejs-plugin.js","names":["ReactDOM","getRenderers","jsx","_jsx","createGrapesjsShadcnGenericPlugin","mode","performInteraction","renderedComponents","grapesjsShadcnGenericPlugin","editor","DomComponents","addType","model","defaults","tagName","droppable","componentName","componentProps","traits","view","events","handleSlotInput","e","target","slot","dataset","text","innerText","props","get","startsWith","_props$data","idx","parseInt","split","dataKeys","Object","keys","data","headerMapper","key","set","_extends","render","_editor$Canvas","_this","compName","compProps","JSON","parse","err","console","error","Canvas","getDocument","iframeDoc","container","body","isEditable","onChange","renderers","Renderer","gjsModel","el","children","components","tabsContent","querySelectorAll","each","childModel","i","childView","createView","appendChild","innerHTML","_this$em$get$getType","ComponentView","em","getType","warn","config","componentTypes","remove","unmountComponentAtNode"],"sources":["../../src/plugins/grapejs-plugin.tsx"],"sourcesContent":["/* eslint-disable import/no-named-as-default-member */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport ReactDOM from 'react-dom';\nimport { Editor, Component } from 'grapesjs';\nimport { getRenderers } from './helpers/render-components';\n\nexport function createGrapesjsShadcnGenericPlugin(\n mode: 'editor' | 'preview',\n performInteraction: (payload: Record<string, any>) => void,\n renderedComponents: Record<string, Component> = {},\n) {\n return function grapesjsShadcnGenericPlugin(editor: Editor): void {\n editor.DomComponents.addType('shadcn-generic', {\n model: {\n defaults: {\n tagName: 'div',\n droppable: false,\n componentName: 'Card',\n componentProps: {},\n traits: [],\n },\n },\n view: {\n events: {\n 'input [data-slot]': 'handleSlotInput',\n } as any,\n handleSlotInput(e: Event) {\n const target = e.target as HTMLElement;\n const slot = target.dataset.slot;\n const text = target.innerText;\n\n const props = this.model.get('componentProps') || {};\n\n if (!slot) {\n return;\n }\n\n if (slot.startsWith('table-header-')) {\n const idx = parseInt(slot.split('-')[2], 10);\n const dataKeys = Object.keys(props.data?.[0] || {});\n\n if (!props.headerMapper) {\n props.headerMapper = {};\n }\n\n const key = dataKeys[idx];\n\n if (key) {\n props.headerMapper[key] = text;\n }\n } else {\n props[slot] = text;\n }\n\n this.model.set('componentProps', {\n ...props,\n });\n },\n render: function () {\n const compName: string = this.model.get('componentName');\n let compProps: any = this.model.get('componentProps');\n\n if (typeof compProps === 'string') {\n try {\n compProps = JSON.parse(compProps);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Invalid JSON in componentProps', err);\n compProps = {};\n }\n }\n\n if (mode === 'preview' && editor.Canvas?.getDocument) {\n const iframeDoc = editor.Canvas.getDocument();\n // Pass that body into the PopoverContent as its mount target\n compProps.container = iframeDoc.body;\n }\n\n compProps.isEditable = mode === 'editor';\n compProps.performInteraction = performInteraction;\n\n compProps.onChange = (data: Record<string, string>) => {\n this.model.set('componentProps', {\n ...this.model.get('componentProps'),\n ...data,\n });\n };\n\n const renderers = getRenderers();\n const Renderer = renderers[compName];\n\n if (Renderer) {\n if (compName === 'Tabs') {\n ReactDOM.render(<Renderer {...compProps} gjsModel={this.model} />, this.el);\n\n const children = this.model.components();\n const tabsContent = this.el.querySelectorAll('.tabs-content');\n children.each((childModel, i) => {\n const childView = this.createView(childModel);\n\n if (childView) {\n childView.render();\n tabsContent[i].appendChild(childView.el);\n }\n });\n } else {\n ReactDOM.render(<Renderer {...compProps} gjsModel={this.model} />, this.el);\n }\n } else {\n this.el.innerHTML = `<div>Unsupported component: ${compName}</div>`;\n }\n\n renderedComponents[this.model.get('id')] = this.model;\n\n return this;\n },\n createView(model: any) {\n const ComponentView = this.em.get('DomComponents').getType(model.get('type'))?.view;\n\n if (!ComponentView) {\n // eslint-disable-next-line no-console\n console.warn('No view found for component type:', model.get('type'));\n\n return null;\n }\n\n const view = new ComponentView({\n model,\n config: this.config,\n componentTypes: this.componentTypes,\n });\n\n return view;\n },\n remove: function () {\n // eslint-disable-next-line import/no-named-as-default-member\n ReactDOM.unmountComponentAtNode(this.el);\n\n return this;\n },\n },\n });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -66,9 +66,9 @@ var saveChanges=function saveChanges(){if(!editRef.current){return}var content=e
|
|
|
66
66
|
// </div>
|
|
67
67
|
// );
|
|
68
68
|
// }
|
|
69
|
-
export function renderFilterMulti(props){var _props$isEditable4=props.isEditable,isEditable=_props$isEditable4===void 0?false:_props$isEditable4,gjsModel=props.gjsModel,_props$performInterac4=props.performInteraction,performInteraction=_props$performInterac4===void 0?function(){}:_props$performInterac4;var _useState15=useState(_extends({},props)),allData=_useState15[0],setAllData=_useState15[1];var _useState16=useState({interactionApiInProgress:false}),attributes=_useState16[0],setAttributes=_useState16[1];// Keep in sync with the GrapesJS model
|
|
69
|
+
export function renderFilterMulti(props){var _props$isEditable4=props.isEditable,isEditable=_props$isEditable4===void 0?false:_props$isEditable4,gjsModel=props.gjsModel,_props$performInterac4=props.performInteraction,performInteraction=_props$performInterac4===void 0?function(){}:_props$performInterac4,container=props.container;var _useState15=useState(_extends({},props)),allData=_useState15[0],setAllData=_useState15[1];var _useState16=useState({interactionApiInProgress:false}),attributes=_useState16[0],setAttributes=_useState16[1];// Keep in sync with the GrapesJS model
|
|
70
70
|
useEffect(function(){gjsModel.on("change:componentProps",function(){return setAllData(_extends({},gjsModel.get("componentProps")))});gjsModel.on("change:attributes",function(){return setAttributes(_extends({},gjsModel.get("attributes")))})},[gjsModel]);var filterKey=allData.filterKey,_allData$options=allData.options,options=_allData$options===void 0?[]:_allData$options,_allData$value=allData.value,value=_allData$value===void 0?[]:_allData$value,_allData$className=allData.className,className=_allData$className===void 0?"":_allData$className,_allData$affectedComp=allData.affectedComponents,affectedComponents=_allData$affectedComp===void 0?[]:_allData$affectedComp,id=allData.id;// Local buffer until “Apply”
|
|
71
|
-
var _useState17=useState(value),localSel=_useState17[0],setLocalSel=_useState17[1];useEffect(function(){return setLocalSel(value)},[value]);var toggleOption=function toggleOption(optValue){setLocalSel(function(prev){return prev.includes(optValue)?prev.filter(function(v){return v!==optValue}):[].concat(prev,[optValue])})};var applyFilters=function applyFilters(){performInteraction({interactionType:"filter",filterKey:filterKey,value:localSel,id:id,affectedComponents:[id].concat(affectedComponents)})};return/*#__PURE__*/_jsxs(Popover,{children:[/*#__PURE__*/_jsx(PopoverTrigger,{asChild:true,children:/*#__PURE__*/_jsxs(Button,{variant:"outline",size:"sm",className:className,disabled:isEditable||attributes.interactionApiInProgress,children:[localSel.length?localSel.length+" selected":"Filter",attributes.interactionApiInProgress&&/*#__PURE__*/_jsx(Loader2Icon,{className:"ml-2 animate-spin",size:16})]})}),/*#__PURE__*/_jsxs(PopoverContent,{className:"w-60 bg-popover p-4 rounded-lg shadow-lg",children:[/*#__PURE__*/_jsx(ScrollArea,{className:"max-h-64 mb-3 space-y-2",children:options.map(function(opt){return/*#__PURE__*/_jsxs("label",{className:"flex items-center",children:[/*#__PURE__*/_jsx(Checkbox,{checked:localSel.includes(opt.value),onCheckedChange:function onCheckedChange(){return toggleOption(opt.value)},disabled:isEditable||attributes.interactionApiInProgress}),/*#__PURE__*/_jsx("span",{className:"ml-2 text-sm",children:opt.label})]},opt.value)})}),/*#__PURE__*/_jsxs("div",{className:"flex space-x-2",children:[/*#__PURE__*/_jsx(PopoverClose,{asChild:true,children:/*#__PURE__*/_jsx(Button,{variant:"ghost",size:"sm",children:"Cancel"})}),/*#__PURE__*/_jsx(PopoverClose,{asChild:true,children:/*#__PURE__*/_jsxs(Button,{variant:"default",size:"sm",className:"flex-1",onClick:applyFilters,disabled:isEditable||attributes.interactionApiInProgress,children:[attributes.interactionApiInProgress&&/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin mr-2",size:16}),"Apply"]})})]})]})]})}// export function renderFilter(props: any): JSX.Element {
|
|
71
|
+
var _useState17=useState(value),localSel=_useState17[0],setLocalSel=_useState17[1];useEffect(function(){return setLocalSel(value)},[value]);var toggleOption=function toggleOption(optValue){setLocalSel(function(prev){return prev.includes(optValue)?prev.filter(function(v){return v!==optValue}):[].concat(prev,[optValue])})};var applyFilters=function applyFilters(){performInteraction({interactionType:"filter",filterKey:filterKey,value:localSel,id:id,affectedComponents:[id].concat(affectedComponents)})};return/*#__PURE__*/_jsxs(Popover,{children:[/*#__PURE__*/_jsx(PopoverTrigger,{asChild:true,children:/*#__PURE__*/_jsxs(Button,{variant:"outline",size:"sm",className:className,disabled:isEditable||attributes.interactionApiInProgress,children:[localSel.length?localSel.length+" selected":"Filter",attributes.interactionApiInProgress&&/*#__PURE__*/_jsx(Loader2Icon,{className:"ml-2 animate-spin",size:16})]})}),/*#__PURE__*/_jsxs(PopoverContent,{className:"w-60 bg-popover p-4 rounded-lg shadow-lg",portalled:true,container:container,children:[/*#__PURE__*/_jsx(ScrollArea,{className:"max-h-64 mb-3 space-y-2",children:options.map(function(opt){return/*#__PURE__*/_jsxs("label",{className:"flex items-center",children:[/*#__PURE__*/_jsx(Checkbox,{checked:localSel.includes(opt.value),onCheckedChange:function onCheckedChange(){return toggleOption(opt.value)},disabled:isEditable||attributes.interactionApiInProgress}),/*#__PURE__*/_jsx("span",{className:"ml-2 text-sm",children:opt.label})]},opt.value)})}),/*#__PURE__*/_jsxs("div",{className:"flex space-x-2",children:[/*#__PURE__*/_jsx(PopoverClose,{asChild:true,children:/*#__PURE__*/_jsx(Button,{variant:"ghost",size:"sm",children:"Cancel"})}),/*#__PURE__*/_jsx(PopoverClose,{asChild:true,children:/*#__PURE__*/_jsxs(Button,{variant:"default",size:"sm",className:"flex-1",onClick:applyFilters,disabled:isEditable||attributes.interactionApiInProgress,children:[attributes.interactionApiInProgress&&/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin mr-2",size:16}),"Apply"]})})]})]})]})}// export function renderFilter(props: any): JSX.Element {
|
|
72
72
|
// const { type, ...rest } = props;
|
|
73
73
|
// return type === 'multi' ? renderFilterMulti(rest) : renderFilterSelect(rest);
|
|
74
74
|
// }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useRef","theme","Markdown","Loader2Icon","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","Button","Popover","PopoverTrigger","PopoverContent","PopoverClose","Checkbox","cn","ScrollArea","ScrollBar","Tabs","TabsList","TabsTrigger","TabsContent","TableLoader","ChartLoader","CardLoader","jsx","_jsx","jsxs","_jsxs","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","getAffectedComponentsWithLoader","affectedComponents","showLoader","map","component","componentId","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","interactionApiInProgress","attributes","setAttributes","on","get","defaultClasses","className","isEditable","contentEditable","children","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasFooterContent","trim","getCardContent","Fragment","style","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","_ref2","key","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_props$performInterac","performInteraction","_excluded3","_useState5","_useState6","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","barSize","barGap","barCategoryGap","interact","id","interactionType","height","orientation","TableButton","_useState7","loading","setLoading","onClick","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","disabled","isDisabled","variant","size","text","renderTable","_props$performInterac2","_excluded4","_useState8","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","_useState9","parsedData","datum","newData","takeRowAction","_x","_x2","_takeRowAction","_callee2","rowIndex","actionId","_callee2$","_context2","payload","row","tableId","headers","Object","keys","header","rows","values","renderActions","rowActions","action","renderTableComponent","head","idx","rIdx","cell","cIdx","tableData","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState10","_useState11","_useState12","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","current","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","ref","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac3","_useState13","_useState14","_allData$variant","_allData$size","concat","renderFilterMulti","_props$isEditable4","_props$performInterac4","_useState15","_useState16","filterKey","_allData$options","_allData$value","_allData$className","_allData$affectedComp","_useState17","localSel","setLocalSel","toggleOption","optValue","filter","v","applyFilters","asChild","opt","checked","onCheckedChange","getRenderers","ActionCard","Chart"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX, useRef } from 'react';\n\nimport { theme } from '@peak-ai/ais-components/theme';\nimport Markdown from 'markdown-to-jsx';\nimport { Loader2Icon } from 'lucide-react';\n\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n} from '../../shadcn/components/ui/card';\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from '../../shadcn/components/ui/chart';\n\nimport {\n PieChart,\n Pie,\n BarChart,\n Bar,\n LineChart,\n Line,\n XAxis,\n YAxis,\n ResponsiveContainer,\n CartesianGrid,\n Legend,\n} from 'recharts';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableBody,\n TableCell,\n} from '../../shadcn/components/ui/table';\n\nimport { Button } from '../../shadcn/components/ui/button';\n\n// import {\n// Select,\n// SelectTrigger,\n// SelectValue,\n// SelectContent,\n// SelectItem,\n// } from '../../shadcn/components/ui/select';\n\nimport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n} from '../../shadcn/components/ui/popover';\nimport { Checkbox } from '../../shadcn/components/ui/checkbox';\n\nimport { cn } from '../../shadcn/utils';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../shadcn/components/ui/tabs';\nimport { TableLoader, ChartLoader, CardLoader } from '../../shadcn/components/ui/skeleton';\n\nconst baseColors = [\n [theme.colors.Blue_100, theme.colors.Blue_30],\n [theme.colors.Purpley_100, theme.colors.Purpley_30],\n [theme.colors.Light_Bluish_Green, '#06601b'],\n [theme.colors.Wild_Strawberry, '#4d001c'],\n];\n\nfunction getAffectedComponentsWithLoader(affectedComponents: Array<string>, showLoader = true) {\n return affectedComponents.map((component) => ({\n componentId: component,\n showLoader,\n }));\n}\n\nfunction getNColors(n: number) {\n const colors: Array<string[]> = [];\n // const pallette = pallettes[Math.floor(Math.random() * pallettes.length)];\n\n for (const baseColor of baseColors) {\n // eslint-disable-next-line import/no-named-as-default-member\n colors.push(chroma.scale(baseColor).mode('lab').colors(n));\n }\n\n function getOneColor(existing: Array<string>) {\n let color: null | string = null;\n\n do {\n const base = colors[Math.floor(Math.random() * colors.length)];\n const selectedColorIndex = Math.floor(Math.random() * base.length);\n color = base[selectedColorIndex];\n } while (existing.includes(color));\n\n return color as string;\n }\n\n const selectedColors: Array<string> = [];\n\n for (let i = 0; i < n; i++) {\n selectedColors.push(getOneColor(selectedColors));\n }\n\n return selectedColors;\n}\n\n/* TODO: Loader remains */\nexport function renderActionCard(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent = 'Default Action Card Title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses =\n 'bg-white text-black p-4 rounded-lg shadow border w-full max-w-full min-h-[180px]';\n\n return (\n <Card className={defaultClasses} isEditable={false} contentEditable={false} {...rest}>\n <CardContent className=\"p-0\" isEditable={false} contentEditable={false}>\n <div className=\"px-4 py-3\">\n <div className=\"flex items-start\">\n <span className=\"text-5xl mr-2\" aria-hidden=\"true\">\n {icon}\n </span>\n\n <div className=\"flex-1\">\n <div className=\"text-xl font-semibold\">{headerContent}</div>\n <div className=\"text-base leading-relaxed mt-1\">{bodyContent}</div>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function renderCard(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg shadow border';\n const defaultFooterClasses = 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n const mergedCardClassName = className ? cn(defaultClasses, className) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n const hasFooterContent = !!((footerContent ?? '').trim() || (footerIcon ?? '').trim());\n\n function getCardContent() {\n if (attributes.interactionApiInProgress) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {headerContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {headerDescription}\n </CardDescription>\n </CardHeader>\n\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n <div className=\"text-3xl font-semibold truncate\">{bodyContent}</div>\n {contentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {contentMetadata}\n </div>\n )}\n </CardContent>\n\n {hasFooterContent && (\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={mergedFooterClassName}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\n )}\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} className={mergedCardClassName}>\n {getCardContent()}\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n case 'bar':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <BarChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />\n );\n },\n )}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n case 'line':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <LineChart data={data}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Line\n type=\"monotone\"\n dataKey={key}\n stroke={color ?? '#4caf50'}\n name={name}\n key={key}\n />\n );\n },\n )}\n <Legend align=\"left\" />\n </LineChart>\n );\n default:\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n }\n}\n\nexport function renderChart(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n\n if (chartType === 'bar') {\n const totalDataPoints = chartData.length * config.dataKeys.length;\n config.chartUi = {};\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 15 +\n config.dataKeys.length * 3 * chartData.length +\n chartData.length * 10;\n config.chartUi = {\n barSize: 15,\n barGap: 3,\n barCategoryGap: 0.5,\n width,\n };\n }\n }\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n chartData,\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n type: 'chart',\n });\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && config.chartUi ? (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ScrollArea>\n <div className={width ? `min-w-[${width}px] w-full` : 'w-full'}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </ResponsiveContainer>\n ) : (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"px-6\">\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\n// Creating this separate component to manage loading state easily!\nfunction TableButton(props: any) {\n const [loading, setLoading] = useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <Button\n className={mergedClasses}\n onClick={!props.isEditable ? onClick : () => {}}\n disabled={props.isDisabled || loading}\n variant={props.variant}\n size=\"sm\"\n >\n {loading ? <Loader2Icon className=\"animate-spin\" /> : props.text}\n </Button>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const parsedData = data.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n\n async function takeRowAction(rowIndex: number, actionId: string) {\n const id = gjsModel.get('id');\n\n await performInteraction({\n id: actionId,\n interactionType: 'tableButton',\n payload: {\n row: data[rowIndex],\n tableId: id,\n },\n affectedComponents: [],\n });\n }\n\n const headers = Object.keys(parsedData[0] || {}).map((header) => headerMapper[header] || header);\n\n if (actions.length > 0) {\n headers.push('');\n }\n\n const rows = parsedData.map((datum: any) => Object.values(datum));\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n function renderActions(rowIndex: number, rowActions: Array<Record<string, any>>) {\n if (!actions.length) {\n return null;\n }\n\n return (\n <TableCell>\n {rowActions.map((action) => {\n return (\n <TableButton\n className={action.className}\n isEditable={isEditable}\n onClick={() => takeRowAction(rowIndex, action.id)}\n variant={action.variant}\n key={action.id}\n text={action.text}\n />\n );\n })}\n </TableCell>\n );\n }\n\n const renderTableComponent = attributes.interactionApiInProgress ? (\n <TableLoader />\n ) : (\n <Table {...rest} className={`caption-bottom text-sm ${mergedClasses}`} data-slot=\"table\">\n <TableHeader data-slot=\"table-header\" className=\"sticky top-0\">\n <TableRow>\n {headers.map((head: string, idx: number) => (\n <TableHead key={idx} data-slot={`table-header-${idx}`} contentEditable={isEditable}>\n {head}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody data-slot=\"table-body\">\n {rows.map((row: any[], rIdx: number) => (\n <TableRow\n key={rIdx}\n data-slot={`row-${rIdx}`}\n className=\"hover:bg-muted/50 border-b transition-colors\"\n >\n {row.map((cell: string, cIdx: number) => (\n <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {cell}\n </TableCell>\n ))}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n\n const tableData = (\n <ScrollArea data-slot=\"table-container\" className={mergedClasses}>\n {renderTableComponent}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n\n return (\n <Card className=\"shadow border\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n {tableData}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 200;\n\n if (props.tabs.length > 4) {\n tabsWidth = 150;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-gray-300\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger value={tab} key={tab} className={`text-md w-[${tabsWidth}px]`}>\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n // Save changes and exit editing mode\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (!allData.isEditable) {\n return (\n <div className=\"px-[1em]\" {...rest}>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em]\" {...rest}>\n {isEditing ? (\n <div\n ref={editRef}\n contentEditable\n onBlur={saveChanges}\n data-slot=\"summaryText\"\n className=\"p-2 min-h-[100px] whitespace-pre-wrap\"\n suppressContentEditableWarning={true}\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n />\n ) : (\n <div\n onClick={startEditing}\n data-slot=\"summaryText\"\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n >\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n )}\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n text,\n icon,\n className,\n payload,\n variant = 'default',\n size = 'sm',\n affectedComponents,\n } = allData;\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n payload,\n });\n }\n\n return (\n <Button\n className={className}\n onClick={!isEditable ? interact : () => {}}\n disabled={attributes.interactionApiInProgress}\n variant={variant}\n size={size}\n contentEditable={isEditable}\n >\n {attributes.interactionApiInProgress ? <Loader2Icon className=\"animate-spin\" /> : text}\n </Button>\n );\n}\n\n// export function renderFilterSelect(props: any): JSX.Element {\n// const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n// const [allData, setAllData] = useState({ ...props });\n// const [attributes, setAttributes] = useState({ interactionApiInProgress: false });\n\n// useEffect(() => {\n// gjsModel.on('change:componentProps', () => {\n// setAllData({ ...gjsModel.get('componentProps') });\n// });\n// }, [gjsModel]);\n\n// useEffect(() => {\n// gjsModel.on('change:attributes', () => {\n// setAttributes({ ...gjsModel.get('attributes') });\n// });\n// }, [gjsModel]);\n\n// const {\n// filterKey,\n// options = [] as Array<{ label: string; value: string }>,\n// value,\n// allowClear = false,\n// className = '',\n// affectedComponents = [] as string[],\n// id,\n// } = allData;\n\n// function onChange(newVal: string) {\n// performInteraction({\n// interactionType: 'filter',\n// filterKey,\n// value: newVal,\n// id,\n// affectedComponents: [id, ...affectedComponents],\n// });\n// }\n\n// return (\n// <div className={`${className} relative`}>\n// <Select\n// value={value}\n// onValueChange={onChange}\n// disabled={isEditable || attributes.interactionApiInProgress}\n// >\n// <SelectTrigger className=\"w-56\">\n// <SelectValue placeholder=\"Select…\" />\n// </SelectTrigger>\n// <SelectContent>\n// {allowClear && <SelectItem value=\"\">— clear —</SelectItem>}\n// {options.map((opt: any) => (\n// <SelectItem key={opt.value} value={opt.value}>\n// {opt.label}\n// </SelectItem>\n// ))}\n// </SelectContent>\n// </Select>\n\n// {attributes.interactionApiInProgress && (\n// <Loader2Icon className=\"absolute right-2 top-2 animate-spin text-gray-500\" size={16} />\n// )}\n// </div>\n// );\n// }\n\n\nexport function renderFilterMulti(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({ ...props });\n const [attributes, setAttributes] = useState({ interactionApiInProgress: false });\n\n // Keep in sync with the GrapesJS model\n useEffect(() => {\n gjsModel.on('change:componentProps', () => setAllData({ ...gjsModel.get('componentProps') }));\n gjsModel.on('change:attributes', () => setAttributes({ ...gjsModel.get('attributes') }));\n }, [gjsModel]);\n\n const {\n filterKey,\n options = [] as Array<{ label: string; value: string }>,\n value = [] as string[],\n className = '',\n affectedComponents = [] as string[],\n id,\n } = allData;\n\n // Local buffer until “Apply”\n const [localSel, setLocalSel] = useState<string[]>(value);\n useEffect(() => setLocalSel(value), [value]);\n\n const toggleOption = (optValue: string) => {\n setLocalSel((prev) =>\n prev.includes(optValue) ? prev.filter((v) => v !== optValue) : [...prev, optValue],\n );\n };\n\n const applyFilters = () => {\n performInteraction({\n interactionType: 'filter',\n filterKey,\n value: localSel,\n id,\n affectedComponents: [id, ...affectedComponents],\n });\n };\n\n return (\n <Popover>\n {/* trigger */}\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={className}\n disabled={isEditable || attributes.interactionApiInProgress}\n >\n {localSel.length ? `${localSel.length} selected` : 'Filter'}\n {attributes.interactionApiInProgress && (\n <Loader2Icon className=\"ml-2 animate-spin\" size={16} />\n )}\n </Button>\n </PopoverTrigger>\n\n {/* dropdown */}\n <PopoverContent className=\"w-60 bg-popover p-4 rounded-lg shadow-lg\">\n <ScrollArea className=\"max-h-64 mb-3 space-y-2\">\n {options.map((opt: any) => (\n <label key={opt.value} className=\"flex items-center\">\n <Checkbox\n checked={localSel.includes(opt.value)}\n onCheckedChange={() => toggleOption(opt.value)}\n disabled={isEditable || attributes.interactionApiInProgress}\n />\n <span className=\"ml-2 text-sm\">{opt.label}</span>\n </label>\n ))}\n </ScrollArea>\n\n {/* footer buttons */}\n <div className=\"flex space-x-2\">\n <PopoverClose asChild>\n <Button variant=\"ghost\" size=\"sm\">\n Cancel\n </Button>\n </PopoverClose>\n <PopoverClose asChild>\n <Button\n variant=\"default\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={applyFilters}\n disabled={isEditable || attributes.interactionApiInProgress}\n >\n {attributes.interactionApiInProgress && (\n <Loader2Icon className=\"animate-spin mr-2\" size={16} />\n )}\n Apply\n </Button>\n </PopoverClose>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\n// export function renderFilter(props: any): JSX.Element {\n// const { type, ...rest } = props;\n\n// return type === 'multi' ? renderFilterMulti(rest) : renderFilterSelect(rest);\n// }\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Card: renderCard,\n Chart: renderChart,\n Markdown: renderMarkdown,\n Table: renderTable,\n Tabs: renderTab,\n Button: renderButton,\n filter: renderFilterMulti,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useRef","theme","Markdown","Loader2Icon","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","Button","Popover","PopoverTrigger","PopoverContent","PopoverClose","Checkbox","cn","ScrollArea","ScrollBar","Tabs","TabsList","TabsTrigger","TabsContent","TableLoader","ChartLoader","CardLoader","jsx","_jsx","jsxs","_jsxs","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","getAffectedComponentsWithLoader","affectedComponents","showLoader","map","component","componentId","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","interactionApiInProgress","attributes","setAttributes","on","get","defaultClasses","className","isEditable","contentEditable","children","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasFooterContent","trim","getCardContent","Fragment","style","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","_ref2","key","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_props$performInterac","performInteraction","_excluded3","_useState5","_useState6","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","barSize","barGap","barCategoryGap","interact","id","interactionType","height","orientation","TableButton","_useState7","loading","setLoading","onClick","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","disabled","isDisabled","variant","size","text","renderTable","_props$performInterac2","_excluded4","_useState8","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","_useState9","parsedData","datum","newData","takeRowAction","_x","_x2","_takeRowAction","_callee2","rowIndex","actionId","_callee2$","_context2","payload","row","tableId","headers","Object","keys","header","rows","values","renderActions","rowActions","action","renderTableComponent","head","idx","rIdx","cell","cIdx","tableData","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState10","_useState11","_useState12","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","current","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","ref","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac3","_useState13","_useState14","_allData$variant","_allData$size","concat","renderFilterMulti","_props$isEditable4","_props$performInterac4","container","_useState15","_useState16","filterKey","_allData$options","_allData$value","_allData$className","_allData$affectedComp","_useState17","localSel","setLocalSel","toggleOption","optValue","filter","v","applyFilters","asChild","portalled","opt","checked","onCheckedChange","getRenderers","ActionCard","Chart"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX, useRef } from 'react';\n\nimport { theme } from '@peak-ai/ais-components/theme';\nimport Markdown from 'markdown-to-jsx';\nimport { Loader2Icon } from 'lucide-react';\n\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n} from '../../shadcn/components/ui/card';\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from '../../shadcn/components/ui/chart';\n\nimport {\n PieChart,\n Pie,\n BarChart,\n Bar,\n LineChart,\n Line,\n XAxis,\n YAxis,\n ResponsiveContainer,\n CartesianGrid,\n Legend,\n} from 'recharts';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableBody,\n TableCell,\n} from '../../shadcn/components/ui/table';\n\nimport { Button } from '../../shadcn/components/ui/button';\n\n// import {\n// Select,\n// SelectTrigger,\n// SelectValue,\n// SelectContent,\n// SelectItem,\n// } from '../../shadcn/components/ui/select';\n\nimport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n} from '../../shadcn/components/ui/popover';\nimport { Checkbox } from '../../shadcn/components/ui/checkbox';\n\nimport { cn } from '../../shadcn/utils';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../shadcn/components/ui/tabs';\nimport { TableLoader, ChartLoader, CardLoader } from '../../shadcn/components/ui/skeleton';\n\nconst baseColors = [\n [theme.colors.Blue_100, theme.colors.Blue_30],\n [theme.colors.Purpley_100, theme.colors.Purpley_30],\n [theme.colors.Light_Bluish_Green, '#06601b'],\n [theme.colors.Wild_Strawberry, '#4d001c'],\n];\n\nfunction getAffectedComponentsWithLoader(affectedComponents: Array<string>, showLoader = true) {\n return affectedComponents.map((component) => ({\n componentId: component,\n showLoader,\n }));\n}\n\nfunction getNColors(n: number) {\n const colors: Array<string[]> = [];\n // const pallette = pallettes[Math.floor(Math.random() * pallettes.length)];\n\n for (const baseColor of baseColors) {\n // eslint-disable-next-line import/no-named-as-default-member\n colors.push(chroma.scale(baseColor).mode('lab').colors(n));\n }\n\n function getOneColor(existing: Array<string>) {\n let color: null | string = null;\n\n do {\n const base = colors[Math.floor(Math.random() * colors.length)];\n const selectedColorIndex = Math.floor(Math.random() * base.length);\n color = base[selectedColorIndex];\n } while (existing.includes(color));\n\n return color as string;\n }\n\n const selectedColors: Array<string> = [];\n\n for (let i = 0; i < n; i++) {\n selectedColors.push(getOneColor(selectedColors));\n }\n\n return selectedColors;\n}\n\n/* TODO: Loader remains */\nexport function renderActionCard(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent = 'Default Action Card Title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses =\n 'bg-white text-black p-4 rounded-lg shadow border w-full max-w-full min-h-[180px]';\n\n return (\n <Card className={defaultClasses} isEditable={false} contentEditable={false} {...rest}>\n <CardContent className=\"p-0\" isEditable={false} contentEditable={false}>\n <div className=\"px-4 py-3\">\n <div className=\"flex items-start\">\n <span className=\"text-5xl mr-2\" aria-hidden=\"true\">\n {icon}\n </span>\n\n <div className=\"flex-1\">\n <div className=\"text-xl font-semibold\">{headerContent}</div>\n <div className=\"text-base leading-relaxed mt-1\">{bodyContent}</div>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function renderCard(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg shadow border';\n const defaultFooterClasses = 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n const mergedCardClassName = className ? cn(defaultClasses, className) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n const hasFooterContent = !!((footerContent ?? '').trim() || (footerIcon ?? '').trim());\n\n function getCardContent() {\n if (attributes.interactionApiInProgress) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {headerContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {headerDescription}\n </CardDescription>\n </CardHeader>\n\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n <div className=\"text-3xl font-semibold truncate\">{bodyContent}</div>\n {contentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {contentMetadata}\n </div>\n )}\n </CardContent>\n\n {hasFooterContent && (\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={mergedFooterClassName}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\n )}\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} className={mergedCardClassName}>\n {getCardContent()}\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n case 'bar':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <BarChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />\n );\n },\n )}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n case 'line':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <LineChart data={data}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Line\n type=\"monotone\"\n dataKey={key}\n stroke={color ?? '#4caf50'}\n name={name}\n key={key}\n />\n );\n },\n )}\n <Legend align=\"left\" />\n </LineChart>\n );\n default:\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n }\n}\n\nexport function renderChart(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n\n if (chartType === 'bar') {\n const totalDataPoints = chartData.length * config.dataKeys.length;\n config.chartUi = {};\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 15 +\n config.dataKeys.length * 3 * chartData.length +\n chartData.length * 10;\n config.chartUi = {\n barSize: 15,\n barGap: 3,\n barCategoryGap: 0.5,\n width,\n };\n }\n }\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n chartData,\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n type: 'chart',\n });\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && config.chartUi ? (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ScrollArea>\n <div className={width ? `min-w-[${width}px] w-full` : 'w-full'}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </ResponsiveContainer>\n ) : (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"px-6\">\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\n// Creating this separate component to manage loading state easily!\nfunction TableButton(props: any) {\n const [loading, setLoading] = useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <Button\n className={mergedClasses}\n onClick={!props.isEditable ? onClick : () => {}}\n disabled={props.isDisabled || loading}\n variant={props.variant}\n size=\"sm\"\n >\n {loading ? <Loader2Icon className=\"animate-spin\" /> : props.text}\n </Button>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const parsedData = data.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n\n async function takeRowAction(rowIndex: number, actionId: string) {\n const id = gjsModel.get('id');\n\n await performInteraction({\n id: actionId,\n interactionType: 'tableButton',\n payload: {\n row: data[rowIndex],\n tableId: id,\n },\n affectedComponents: [],\n });\n }\n\n const headers = Object.keys(parsedData[0] || {}).map((header) => headerMapper[header] || header);\n\n if (actions.length > 0) {\n headers.push('');\n }\n\n const rows = parsedData.map((datum: any) => Object.values(datum));\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n function renderActions(rowIndex: number, rowActions: Array<Record<string, any>>) {\n if (!actions.length) {\n return null;\n }\n\n return (\n <TableCell>\n {rowActions.map((action) => {\n return (\n <TableButton\n className={action.className}\n isEditable={isEditable}\n onClick={() => takeRowAction(rowIndex, action.id)}\n variant={action.variant}\n key={action.id}\n text={action.text}\n />\n );\n })}\n </TableCell>\n );\n }\n\n const renderTableComponent = attributes.interactionApiInProgress ? (\n <TableLoader />\n ) : (\n <Table {...rest} className={`caption-bottom text-sm ${mergedClasses}`} data-slot=\"table\">\n <TableHeader data-slot=\"table-header\" className=\"sticky top-0\">\n <TableRow>\n {headers.map((head: string, idx: number) => (\n <TableHead key={idx} data-slot={`table-header-${idx}`} contentEditable={isEditable}>\n {head}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody data-slot=\"table-body\">\n {rows.map((row: any[], rIdx: number) => (\n <TableRow\n key={rIdx}\n data-slot={`row-${rIdx}`}\n className=\"hover:bg-muted/50 border-b transition-colors\"\n >\n {row.map((cell: string, cIdx: number) => (\n <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {cell}\n </TableCell>\n ))}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n\n const tableData = (\n <ScrollArea data-slot=\"table-container\" className={mergedClasses}>\n {renderTableComponent}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n\n return (\n <Card className=\"shadow border\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n {tableData}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 200;\n\n if (props.tabs.length > 4) {\n tabsWidth = 150;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-gray-300\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger value={tab} key={tab} className={`text-md w-[${tabsWidth}px]`}>\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n // Save changes and exit editing mode\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (!allData.isEditable) {\n return (\n <div className=\"px-[1em]\" {...rest}>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em]\" {...rest}>\n {isEditing ? (\n <div\n ref={editRef}\n contentEditable\n onBlur={saveChanges}\n data-slot=\"summaryText\"\n className=\"p-2 min-h-[100px] whitespace-pre-wrap\"\n suppressContentEditableWarning={true}\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n />\n ) : (\n <div\n onClick={startEditing}\n data-slot=\"summaryText\"\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n >\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n )}\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n text,\n icon,\n className,\n payload,\n variant = 'default',\n size = 'sm',\n affectedComponents,\n } = allData;\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n payload,\n });\n }\n\n return (\n <Button\n className={className}\n onClick={!isEditable ? interact : () => {}}\n disabled={attributes.interactionApiInProgress}\n variant={variant}\n size={size}\n contentEditable={isEditable}\n >\n {attributes.interactionApiInProgress ? <Loader2Icon className=\"animate-spin\" /> : text}\n </Button>\n );\n}\n\n// export function renderFilterSelect(props: any): JSX.Element {\n// const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n// const [allData, setAllData] = useState({ ...props });\n// const [attributes, setAttributes] = useState({ interactionApiInProgress: false });\n\n// useEffect(() => {\n// gjsModel.on('change:componentProps', () => {\n// setAllData({ ...gjsModel.get('componentProps') });\n// });\n// }, [gjsModel]);\n\n// useEffect(() => {\n// gjsModel.on('change:attributes', () => {\n// setAttributes({ ...gjsModel.get('attributes') });\n// });\n// }, [gjsModel]);\n\n// const {\n// filterKey,\n// options = [] as Array<{ label: string; value: string }>,\n// value,\n// allowClear = false,\n// className = '',\n// affectedComponents = [] as string[],\n// id,\n// } = allData;\n\n// function onChange(newVal: string) {\n// performInteraction({\n// interactionType: 'filter',\n// filterKey,\n// value: newVal,\n// id,\n// affectedComponents: [id, ...affectedComponents],\n// });\n// }\n\n// return (\n// <div className={`${className} relative`}>\n// <Select\n// value={value}\n// onValueChange={onChange}\n// disabled={isEditable || attributes.interactionApiInProgress}\n// >\n// <SelectTrigger className=\"w-56\">\n// <SelectValue placeholder=\"Select…\" />\n// </SelectTrigger>\n// <SelectContent>\n// {allowClear && <SelectItem value=\"\">— clear —</SelectItem>}\n// {options.map((opt: any) => (\n// <SelectItem key={opt.value} value={opt.value}>\n// {opt.label}\n// </SelectItem>\n// ))}\n// </SelectContent>\n// </Select>\n\n// {attributes.interactionApiInProgress && (\n// <Loader2Icon className=\"absolute right-2 top-2 animate-spin text-gray-500\" size={16} />\n// )}\n// </div>\n// );\n// }\n\nexport function renderFilterMulti(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {}, container } = props;\n\n const [allData, setAllData] = useState({ ...props });\n const [attributes, setAttributes] = useState({ interactionApiInProgress: false });\n\n // Keep in sync with the GrapesJS model\n useEffect(() => {\n gjsModel.on('change:componentProps', () => setAllData({ ...gjsModel.get('componentProps') }));\n gjsModel.on('change:attributes', () => setAttributes({ ...gjsModel.get('attributes') }));\n }, [gjsModel]);\n\n const {\n filterKey,\n options = [] as Array<{ label: string; value: string }>,\n value = [] as string[],\n className = '',\n affectedComponents = [] as string[],\n id,\n } = allData;\n\n // Local buffer until “Apply”\n const [localSel, setLocalSel] = useState<string[]>(value);\n useEffect(() => setLocalSel(value), [value]);\n\n const toggleOption = (optValue: string) => {\n setLocalSel((prev) =>\n prev.includes(optValue) ? prev.filter((v) => v !== optValue) : [...prev, optValue],\n );\n };\n\n const applyFilters = () => {\n performInteraction({\n interactionType: 'filter',\n filterKey,\n value: localSel,\n id,\n affectedComponents: [id, ...affectedComponents],\n });\n };\n\n return (\n <Popover>\n {/* trigger */}\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={className}\n disabled={isEditable || attributes.interactionApiInProgress}\n >\n {localSel.length ? `${localSel.length} selected` : 'Filter'}\n {attributes.interactionApiInProgress && (\n <Loader2Icon className=\"ml-2 animate-spin\" size={16} />\n )}\n </Button>\n </PopoverTrigger>\n\n {/* dropdown */}\n <PopoverContent\n className=\"w-60 bg-popover p-4 rounded-lg shadow-lg\"\n portalled={true}\n container={container}\n >\n <ScrollArea className=\"max-h-64 mb-3 space-y-2\">\n {options.map((opt: any) => (\n <label key={opt.value} className=\"flex items-center\">\n <Checkbox\n checked={localSel.includes(opt.value)}\n onCheckedChange={() => toggleOption(opt.value)}\n disabled={isEditable || attributes.interactionApiInProgress}\n />\n <span className=\"ml-2 text-sm\">{opt.label}</span>\n </label>\n ))}\n </ScrollArea>\n\n {/* footer buttons */}\n <div className=\"flex space-x-2\">\n <PopoverClose asChild>\n <Button variant=\"ghost\" size=\"sm\">\n Cancel\n </Button>\n </PopoverClose>\n <PopoverClose asChild>\n <Button\n variant=\"default\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={applyFilters}\n disabled={isEditable || attributes.interactionApiInProgress}\n >\n {attributes.interactionApiInProgress && (\n <Loader2Icon className=\"animate-spin mr-2\" size={16} />\n )}\n Apply\n </Button>\n </PopoverClose>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\n// export function renderFilter(props: any): JSX.Element {\n// const { type, ...rest } = props;\n\n// return type === 'multi' ? renderFilterMulti(rest) : renderFilterSelect(rest);\n// }\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Card: renderCard,\n Chart: renderChart,\n Markdown: renderMarkdown,\n Table: renderTable,\n Tabs: renderTab,\n Button: renderButton,\n filter: renderFilterMulti,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,11 +2,13 @@ import * as React from 'react';
|
|
|
2
2
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
3
3
|
export type PopoverContentProps = {
|
|
4
4
|
portalled?: boolean;
|
|
5
|
+
container?: HTMLElement;
|
|
5
6
|
} & React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>;
|
|
6
7
|
export declare const Popover: React.FC<PopoverPrimitive.PopoverProps>;
|
|
7
8
|
export declare const PopoverTrigger: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
8
9
|
export declare const PopoverContent: React.ForwardRefExoticComponent<{
|
|
9
10
|
portalled?: boolean | undefined;
|
|
11
|
+
container?: HTMLElement | undefined;
|
|
10
12
|
} & Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
11
13
|
export declare const PopoverClose: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
12
14
|
export declare const PopoverAnchor: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["children"],_excluded2=["className","align","sideOffset","portalled"];import*as React from"react";import*as PopoverPrimitive from"@radix-ui/react-popover";import{cn}from"../../utils";// Extend Radix's PopoverContent props to include our custom 'portalled' flag
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["children"],_excluded2=["className","align","sideOffset","portalled"];import*as React from"react";import*as ReactDOM from"react-dom";import*as PopoverPrimitive from"@radix-ui/react-popover";import{cn}from"../../utils";// Extend Radix's PopoverContent props to include our custom 'portalled' flag
|
|
2
2
|
import{jsx as _jsx}from"react/jsx-runtime";// Root wrapper
|
|
3
3
|
export var Popover=PopoverPrimitive.Root;// Trigger wrapper
|
|
4
4
|
export var PopoverTrigger=/*#__PURE__*/React.forwardRef(function(_ref,ref){var children=_ref.children,props=_objectWithoutPropertiesLoose(_ref,_excluded);return/*#__PURE__*/_jsx(PopoverPrimitive.Trigger,_extends({ref:ref},props,{children:children}))});PopoverTrigger.displayName="PopoverTrigger";// Content wrapper
|
|
5
|
-
export var PopoverContent=/*#__PURE__*/React.forwardRef(function(_ref2,ref){var className=_ref2.className,_ref2$align=_ref2.align,align=_ref2$align===void 0?"center":_ref2$align,_ref2$sideOffset=_ref2.sideOffset,sideOffset=_ref2$sideOffset===void 0?4:_ref2$sideOffset,_ref2$portalled=_ref2.portalled,portalled=_ref2$portalled===void 0?true:_ref2$portalled,props=_objectWithoutPropertiesLoose(_ref2,_excluded2);var content=/*#__PURE__*/_jsx(PopoverPrimitive.Content,_extends({ref:ref,align:align,sideOffset:sideOffset,className:cn("bg-popover text-popover-foreground","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","z-50 w-72 origin-[--radix-popover-content-transform-origin]","rounded-md border p-4 shadow-md outline-none",className)},props))
|
|
5
|
+
export var PopoverContent=/*#__PURE__*/React.forwardRef(function(_ref2,ref){var className=_ref2.className,_ref2$align=_ref2.align,align=_ref2$align===void 0?"center":_ref2$align,_ref2$sideOffset=_ref2.sideOffset,sideOffset=_ref2$sideOffset===void 0?4:_ref2$sideOffset,_ref2$portalled=_ref2.portalled,portalled=_ref2$portalled===void 0?true:_ref2$portalled,props=_objectWithoutPropertiesLoose(_ref2,_excluded2);var content=/*#__PURE__*/_jsx(PopoverPrimitive.Content,_extends({ref:ref,align:align,sideOffset:sideOffset,className:cn("bg-popover text-popover-foreground","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","z-50 w-72 origin-[--radix-popover-content-transform-origin]","rounded-md border p-4 shadow-md outline-none",className)},props));// If inline rendering requested, return directly
|
|
6
|
+
if(!portalled){return content}// Otherwise, portal into the specified container, or fallback to document.body
|
|
7
|
+
if(props.container){return/*#__PURE__*/ReactDOM.createPortal(content,props.container)}return/*#__PURE__*/_jsx(PopoverPrimitive.Portal,{children:content})});PopoverContent.displayName="PopoverContent";// Close wrapper
|
|
6
8
|
export var PopoverClose=/*#__PURE__*/React.forwardRef(function(props,ref){return/*#__PURE__*/_jsx(PopoverPrimitive.Close,_extends({ref:ref},props))});PopoverClose.displayName="PopoverClose";// Anchor wrapper
|
|
7
9
|
export var PopoverAnchor=/*#__PURE__*/React.forwardRef(function(props,ref){return/*#__PURE__*/_jsx(PopoverPrimitive.Anchor,_extends({ref:ref},props))});PopoverAnchor.displayName="PopoverAnchor";
|
|
8
10
|
//# sourceMappingURL=popover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","names":["React","PopoverPrimitive","cn","jsx","_jsx","Popover","Root","PopoverTrigger","forwardRef","_ref","ref","children","props","_objectWithoutPropertiesLoose","_excluded","Trigger","_extends","displayName","PopoverContent","_ref2","className","_ref2$align","align","_ref2$sideOffset","sideOffset","_ref2$portalled","portalled","_excluded2","content","Content","Portal","PopoverClose","Close","PopoverAnchor","Anchor"],"sources":["../../../../src/shadcn/components/ui/popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { cn } from '../../utils';\n\n// Extend Radix's PopoverContent props to include our custom 'portalled' flag\nexport type PopoverContentProps = {\n /** Render inline instead of in a portal */\n portalled?: boolean;\n} & React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n\n// Root wrapper\nexport const Popover = PopoverPrimitive.Root;\n\n// Trigger wrapper\nexport const PopoverTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>\n>(({ children, ...props }, ref) => (\n <PopoverPrimitive.Trigger ref={ref} {...props}>\n {children}\n </PopoverPrimitive.Trigger>\n));\nPopoverTrigger.displayName = 'PopoverTrigger';\n\n// Content wrapper\nexport const PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ className, align = 'center', sideOffset = 4, portalled = true, ...props }, ref) => {\n const content = (\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'z-50 w-72 origin-[--radix-popover-content-transform-origin]',\n 'rounded-md border p-4 shadow-md outline-none',\n className,\n )}\n {...props}\n />\n );\n\n return portalled
|
|
1
|
+
{"version":3,"file":"popover.js","names":["React","ReactDOM","PopoverPrimitive","cn","jsx","_jsx","Popover","Root","PopoverTrigger","forwardRef","_ref","ref","children","props","_objectWithoutPropertiesLoose","_excluded","Trigger","_extends","displayName","PopoverContent","_ref2","className","_ref2$align","align","_ref2$sideOffset","sideOffset","_ref2$portalled","portalled","_excluded2","content","Content","container","createPortal","Portal","PopoverClose","Close","PopoverAnchor","Anchor"],"sources":["../../../../src/shadcn/components/ui/popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { cn } from '../../utils';\n\n// Extend Radix's PopoverContent props to include our custom 'portalled' flag\nexport type PopoverContentProps = {\n /** Render inline instead of in a portal */\n portalled?: boolean;\n /** Optional container element for portaling (e.g. iframe body) */\n container?: HTMLElement;\n} & React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n\n// Root wrapper\nexport const Popover = PopoverPrimitive.Root;\n\n// Trigger wrapper\nexport const PopoverTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>\n>(({ children, ...props }, ref) => (\n <PopoverPrimitive.Trigger ref={ref} {...props}>\n {children}\n </PopoverPrimitive.Trigger>\n));\nPopoverTrigger.displayName = 'PopoverTrigger';\n\n// Content wrapper\nexport const PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ className, align = 'center', sideOffset = 4, portalled = true, ...props }, ref) => {\n const content = (\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'z-50 w-72 origin-[--radix-popover-content-transform-origin]',\n 'rounded-md border p-4 shadow-md outline-none',\n className,\n )}\n {...props}\n />\n );\n\n // If inline rendering requested, return directly\n if (!portalled) {\n return content;\n }\n\n // Otherwise, portal into the specified container, or fallback to document.body\n if (props.container) {\n return ReactDOM.createPortal(content, props.container);\n }\n\n return <PopoverPrimitive.Portal>{content}</PopoverPrimitive.Portal>;\n },\n);\nPopoverContent.displayName = 'PopoverContent';\n\n// Close wrapper\nexport const PopoverClose = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Close>\n>((props, ref) => <PopoverPrimitive.Close ref={ref} {...props} />);\nPopoverClose.displayName = 'PopoverClose';\n\n// Anchor wrapper\nexport const PopoverAnchor = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor>\n>((props, ref) => <PopoverPrimitive.Anchor ref={ref} {...props} />);\nPopoverAnchor.displayName = 'PopoverAnchor';\n"],"mappings":"yOAAA,MAAO,GAAK,CAAAA,KAAK,KAAM,OAAO,CAC9B,MAAO,GAAK,CAAAC,QAAQ,KAAM,WAAW,CACrC,MAAO,GAAK,CAAAC,gBAAgB,KAAM,yBAAyB,CAC3D,OAASC,EAAE,KAAQ,aAAa,CAEhC;AAAA,OAAAC,GAAA,IAAAC,IAAA,yBAQA;AACA,MAAO,IAAM,CAAAC,OAAO,CAAGJ,gBAAgB,CAACK,IAAI,CAE5C;AACA,MAAO,IAAM,CAAAC,cAAc,cAAGR,KAAK,CAACS,UAAU,CAG5C,SAAAC,IAAA,CAAyBC,GAAG,KAAzB,CAAAC,QAAQ,CAAAF,IAAA,CAARE,QAAQ,CAAKC,KAAK,CAAAC,6BAAA,CAAAJ,IAAA,CAAAK,SAAA,qBACrBV,IAAA,CAACH,gBAAgB,CAACc,OAAO,CAAAC,QAAA,EAACN,GAAG,CAAEA,GAAI,EAAKE,KAAK,EAAAD,QAAA,CAC1CA,QAAQ,EACe,CAAC,CAC5B,CAAC,CACFJ,cAAc,CAACU,WAAW,CAAG,gBAAgB,CAE7C;AACA,MAAO,IAAM,CAAAC,cAAc,cAAGnB,KAAK,CAACS,UAAU,CAC5C,SAAAW,KAAA,CAA8ET,GAAG,CAAK,IAAnF,CAAAU,SAAS,CAAAD,KAAA,CAATC,SAAS,CAAAC,WAAA,CAAAF,KAAA,CAAEG,KAAK,CAALA,KAAK,CAAAD,WAAA,UAAG,QAAQ,CAAAA,WAAA,CAAAE,gBAAA,CAAAJ,KAAA,CAAEK,UAAU,CAAVA,UAAU,CAAAD,gBAAA,UAAG,CAAC,CAAAA,gBAAA,CAAAE,eAAA,CAAAN,KAAA,CAAEO,SAAS,CAATA,SAAS,CAAAD,eAAA,UAAG,IAAI,CAAAA,eAAA,CAAKb,KAAK,CAAAC,6BAAA,CAAAM,KAAA,CAAAQ,UAAA,EACxE,GAAM,CAAAC,OAAO,cACXxB,IAAA,CAACH,gBAAgB,CAAC4B,OAAO,CAAAb,QAAA,EACvBN,GAAG,CAAEA,GAAI,CACTY,KAAK,CAAEA,KAAM,CACbE,UAAU,CAAEA,UAAW,CACvBJ,SAAS,CAAElB,EAAE,CACX,oCAAoC,CACpC,8DAA8D,CAC9D,4DAA4D,CAC5D,8DAA8D,CAC9D,+EAA+E,CAC/E,+EAA+E,CAC/E,6DAA6D,CAC7D,8CAA8C,CAC9CkB,SACF,CAAE,EACER,KAAK,CACV,CACF,CAED;AACA,GAAI,CAACc,SAAS,CAAE,CACd,MAAO,CAAAE,OACT,CAEA;AACA,GAAIhB,KAAK,CAACkB,SAAS,CAAE,CACnB,mBAAO9B,QAAQ,CAAC+B,YAAY,CAACH,OAAO,CAAEhB,KAAK,CAACkB,SAAS,CACvD,CAEA,mBAAO1B,IAAA,CAACH,gBAAgB,CAAC+B,MAAM,EAAArB,QAAA,CAAEiB,OAAO,CAA0B,CACpE,CACF,CAAC,CACDV,cAAc,CAACD,WAAW,CAAG,gBAAgB,CAE7C;AACA,MAAO,IAAM,CAAAgB,YAAY,cAAGlC,KAAK,CAACS,UAAU,CAG1C,SAACI,KAAK,CAAEF,GAAG,qBAAKN,IAAA,CAACH,gBAAgB,CAACiC,KAAK,CAAAlB,QAAA,EAACN,GAAG,CAAEA,GAAI,EAAKE,KAAK,CAAG,CAAC,EAAC,CAClEqB,YAAY,CAAChB,WAAW,CAAG,cAAc,CAEzC;AACA,MAAO,IAAM,CAAAkB,aAAa,cAAGpC,KAAK,CAACS,UAAU,CAG3C,SAACI,KAAK,CAAEF,GAAG,qBAAKN,IAAA,CAACH,gBAAgB,CAACmC,MAAM,CAAApB,QAAA,EAACN,GAAG,CAAEA,GAAI,EAAKE,KAAK,CAAG,CAAC,EAAC,CACnEuB,aAAa,CAAClB,WAAW,CAAG,eAAe","ignoreList":[]}
|