@peak-ai/canvas 1.3.3-rc.8 → 1.3.3
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/GrapesjsCanvas.js +3 -2
- package/GrapesjsCanvas.js.map +1 -1
- package/helpers/index.d.ts +4 -0
- package/helpers/index.js +1 -1
- package/helpers/index.js.map +1 -1
- package/helpers/merge-json.js +1 -1
- package/helpers/merge-json.js.map +1 -1
- package/index.styles.js +1 -1
- package/index.styles.js.map +1 -1
- package/package.json +2 -2
- package/plugins/grapejs-plugin.js.map +1 -1
- package/plugins/helpers/extra.js +1 -1
- package/plugins/helpers/extra.js.map +1 -1
- package/plugins/helpers/render-components.d.ts +0 -1
- package/plugins/helpers/render-components.js +3 -75
- package/plugins/helpers/render-components.js.map +1 -1
- package/shadcn/components/ui/button.d.ts +1 -1
- package/shadcn/components/ui/filter.d.ts +7 -0
- package/shadcn/components/ui/filter.js +2 -0
- package/shadcn/components/ui/filter.js.map +1 -0
- package/shadcn/components/ui/scroll-area.d.ts +4 -1
- package/shadcn/components/ui/scroll-area.js +1 -1
- package/shadcn/components/ui/scroll-area.js.map +1 -1
- package/shadcn/components/ui/popover.d.ts +0 -8
- package/shadcn/components/ui/popover.js +0 -2
- package/shadcn/components/ui/popover.js.map +0 -1
package/GrapesjsCanvas.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useRef}from"react"
|
|
2
|
-
}}if(
|
|
1
|
+
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useRef}from"react";// eslint-disable-next-line import/no-named-as-default
|
|
2
|
+
import grapesjs from"grapesjs";import"grapesjs/dist/css/grapes.min.css";import tailwind from"grapesjs-tailwind";import{TypesToRegister}from"./constants";import{toKebabCase}from"./helpers";import{createGrapesjsShadcnGenericPlugin}from"./plugins/grapejs-plugin";import{StyledEditor}from"./index.styles";import{tailwindCompiledCss}from"./helpers/css";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function setComponentProperties(editor,isPreview){function setPropertiesRecursively(comp){comp.set({editable:!isPreview,draggable:!isPreview,droppable:!isPreview&&comp.getName()!=="Shadcn-generic",selectable:!isPreview,hoverable:!isPreview,highlightable:!isPreview,copyable:false,resizable:false,removable:!isPreview,badgable:false});if(!isPreview){comp.set("toolbar",[{attributes:{"class":"fa fa-arrows"},command:"tlb-move"},{attributes:{"class":"fa fa-trash"},command:"tlb-delete"}])}comp.components().forEach(setPropertiesRecursively)}if(isPreview){editor.runCommand("core:preview")}else{editor.stopCommand("core:preview")}var wrapper=editor.getWrapper();wrapper==null||wrapper.find("*").forEach(setPropertiesRecursively)}function convertStyles(stylesArray){return stylesArray.map(function(block){var selectors=Array.isArray(block.selectors)?block.selectors.join(", "):block.selectors;var declarations=Object.entries(block.style).map(function(_ref){var prop=_ref[0],value=_ref[1];return toKebabCase(prop)+": "+value+";"}).join(" ");return selectors+" { "+declarations+" }"}).join("\n")}function expandActions(node){var _node$componentProps;if(node.type==="shadcn-generic"&&node.componentName==="Actions"&&Array.isArray((_node$componentProps=node.componentProps)==null?void 0:_node$componentProps.actions)){var actions=node.componentProps.actions;return _extends({},node,{type:"div",classes:["dashboard-cards"].concat(node.classes||[]),componentName:undefined,componentProps:undefined,components:actions.map(function(action,i){var icon=action.icon,title=action.title,description=action.description;return{id:node.id+"--action-card-"+i,type:"shadcn-generic",componentName:"ActionCard",badgable:false,copyable:false,componentProps:{icon:icon,headerContent:title,bodyContent:description}}})})}if(Array.isArray(node.components)){return _extends({},node,{components:node.components.map(expandActions)})}return node}function setInteracting(renderedComponents,components,inProgress){components.forEach(function(component){var componentId=component.componentId,showLoader=component.showLoader;if(!showLoader){return}var gjsModel=renderedComponents[componentId];if(gjsModel){gjsModel.set("attributes",_extends({},gjsModel.get("attributes"),{interactionApiInProgress:inProgress}))}})}function GrapesjsCanvas(_ref2){var json=_ref2.json,_ref2$mode=_ref2.mode,mode=_ref2$mode===void 0?"preview":_ref2$mode,setEditor=_ref2.setEditor,performInteraction=_ref2.performInteraction;var editorRef=useRef(null);var editorInstance=useRef(null);var renderedComponents={};function performInteractionWrapper(_x){return _performInteractionWrapper.apply(this,arguments)}function _performInteractionWrapper(){_performInteractionWrapper=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(payload){var _editorInstance$curre;var updatedJson,result;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return(_editorInstance$curre=editorInstance.current)==null?void 0:_editorInstance$curre.store();case 2:updatedJson=_context.sent;setInteracting(renderedComponents,payload.affectedComponents,true);_context.prev=4;_context.next=7;return performInteraction(_extends({},payload,{json:updatedJson}));case 7:result=_context.sent;Object.entries(result||{}).forEach(function(_ref4){var key=_ref4[0],value=_ref4[1];var model=renderedComponents[key];if(model){model.set("componentProps",_extends({},model.get("componentProps"),value))}});case 9:_context.prev=9;setInteracting(renderedComponents,payload.affectedComponents,false);return _context.finish(9);case 12:case"end":return _context.stop()}},_callee,null,[[4,,9,12]])}));return _performInteractionWrapper.apply(this,arguments)}useEffect(function(){var _json$pages,_json$pages$0$frames;if(!editorRef.current){return function(){// Cleanup if editorRef is not available
|
|
3
|
+
}}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(currentMode,performInteractionWrapper,renderedComponents)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});// Tailwind CSS rules aren't fully added to our component
|
|
3
4
|
// So, adding them from here!
|
|
4
5
|
editor.on("load",function(){var canvasHead=editor.Canvas.getDocument().head;var style=document.createElement("style");var fullCss="\n "+tailwindCompiledCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");canvasHead.appendChild(style)});editorInstance.current=editor;if(setEditor){setEditor(editor)}TypesToRegister.forEach(function(_ref3){var type=_ref3.type,tagName=_ref3.tagName;if(!editor.DomComponents.getType(type)){editor.DomComponents.addType(type,{model:{defaults:{tagName:tagName}},view:{}})}});if(json&&((_json$pages=json.pages)==null?void 0:_json$pages.length)>0&&((_json$pages$0$frames=json.pages[0].frames)==null?void 0:_json$pages$0$frames.length)>0){var raw=json.pages[0].frames[0].component;var processed=expandActions(raw);editor.setComponents(processed);var cssText=convertStyles(json.styles||[]);editor.setStyle(cssText)}editor.on("load",function(){setComponentProperties(editor,mode==="preview")});return function(){editor.destroy()};// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
5
6
|
},[json,mode]);return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(StyledEditor,{}),/*#__PURE__*/_jsx("div",{ref:editorRef})]})}export default GrapesjsCanvas;
|
package/GrapesjsCanvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","createGrapesjsShadcnGenericPlugin","StyledEditor","tailwindCompiledCss","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","expandActions","node","_node$componentProps","type","componentName","componentProps","actions","_extends","classes","concat","undefined","action","i","icon","title","description","id","headerContent","bodyContent","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","get","interactionApiInProgress","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","editorRef","editorInstance","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","payload","_editorInstance$curre","updatedJson","result","wrap","_callee$","_context","prev","next","current","store","sent","affectedComponents","_ref4","key","model","finish","stop","_json$pages","_json$pages$0$frames","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","on","canvasHead","Canvas","getDocument","head","document","createElement","fullCss","innerHTML","setAttribute","appendChild","_ref3","tagName","DomComponents","getType","addType","defaults","view","pages","length","frames","raw","processed","setComponents","cssText","styles","setStyle","Fragment","children","ref"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef } from 'react';\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport { tailwindCompiledCss } from './helpers/css';\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction expandActions(node: any): any {\n if (\n node.type === 'shadcn-generic' &&\n node.componentName === 'Actions' &&\n Array.isArray(node.componentProps?.actions)\n ) {\n const { actions } = node.componentProps;\n\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => {\n const { icon, title, description } = action;\n\n return {\n id: `${node.id}--action-card-${i}`,\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n }),\n };\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n\n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<any>(null);\n const renderedComponents: Record<string, Component> = {};\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents, payload.affectedComponents, true);\n\n try {\n const result = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n Object.entries(result || {}).forEach(([key, value]) => {\n const model = renderedComponents[key];\n\n if (model) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n });\n }\n });\n } finally {\n setInteracting(renderedComponents, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // Cleanup if editorRef is not available\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n currentMode,\n performInteractionWrapper,\n renderedComponents,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', () => {\n const canvasHead = editor.Canvas.getDocument().head;\n const style = document.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n canvasHead.appendChild(style);\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editor.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editor.setStyle(cssText);\n }\n\n editor.on('load', () => {\n setComponentProperties(editor, mode === 'preview');\n });\n\n return () => {\n editor.destroy();\n };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n }, [json, mode]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div ref={editorRef} />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","createGrapesjsShadcnGenericPlugin","StyledEditor","tailwindCompiledCss","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","expandActions","node","_node$componentProps","type","componentName","componentProps","actions","_extends","classes","concat","undefined","action","i","icon","title","description","id","headerContent","bodyContent","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","get","interactionApiInProgress","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","editorRef","editorInstance","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","payload","_editorInstance$curre","updatedJson","result","wrap","_callee$","_context","prev","next","current","store","sent","affectedComponents","_ref4","key","model","finish","stop","_json$pages","_json$pages$0$frames","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","canvas","customBadgeLabel","tagName","on","canvasHead","Canvas","getDocument","head","document","createElement","fullCss","innerHTML","setAttribute","appendChild","_ref3","DomComponents","getType","addType","defaults","view","pages","length","frames","raw","processed","setComponents","cssText","styles","setStyle","Fragment","children","ref"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef } from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport { tailwindCompiledCss } from './helpers/css';\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction expandActions(node: any): any {\n if (\n node.type === 'shadcn-generic' &&\n node.componentName === 'Actions' &&\n Array.isArray(node.componentProps?.actions)\n ) {\n const { actions } = node.componentProps;\n\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => {\n const { icon, title, description } = action;\n\n return {\n id: `${node.id}--action-card-${i}`,\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n }),\n };\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n \n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<any>(null);\n const renderedComponents: Record<string, Component> = {};\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents, payload.affectedComponents, true);\n\n try {\n const result = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n Object.entries(result || {}).forEach(([key, value]) => {\n const model = renderedComponents[key];\n\n if (model) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n });\n }\n });\n } finally {\n setInteracting(renderedComponents, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // Cleanup if editorRef is not available\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n currentMode,\n performInteractionWrapper,\n renderedComponents,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n canvas: {\n customBadgeLabel: (component) => {\n const tagName = component.get('tagName');\n \n return tagName === 'body' ? '' : (tagName || '');\n },\n },\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', () => {\n const canvasHead = editor.Canvas.getDocument().head;\n const style = document.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n canvasHead.appendChild(style);\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editor.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editor.setStyle(cssText);\n }\n\n editor.on('load', () => {\n setComponentProperties(editor, mode === 'preview');\n });\n\n return () => {\n editor.destroy();\n };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n }, [json, mode]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div ref={editorRef} />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
|
package/helpers/index.d.ts
CHANGED
package/helpers/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function toKebabCase(str){return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}
|
|
1
|
+
export function toKebabCase(str){return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}export function getAffectedComponentsWithLoader(affectedComponents,showLoader){if(showLoader===void 0){showLoader=true}return affectedComponents.map(function(component){return{componentId:component,showLoader:showLoader}})}
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/helpers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["toKebabCase","str","replace","toLowerCase"],"sources":["../../src/helpers/index.ts"],"sourcesContent":["export function toKebabCase(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n"],"mappings":"AAAA,MAAO,SAAS,CAAAA,WAAWA,CAACC,GAAW,CAAU,CAC/C,MAAO,CAAAA,GAAG,CAACC,OAAO,CAAC,iBAAiB,CAAE,OAAO,CAAC,CAACC,WAAW,CAAC,CAC7D","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["toKebabCase","str","replace","toLowerCase","getAffectedComponentsWithLoader","affectedComponents","showLoader","map","component","componentId"],"sources":["../../src/helpers/index.ts"],"sourcesContent":["export function toKebabCase(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport function getAffectedComponentsWithLoader(\n affectedComponents: Array<string>,\n showLoader = true,\n) {\n return affectedComponents.map((component) => ({\n componentId: component,\n showLoader,\n }));\n}\n"],"mappings":"AAAA,MAAO,SAAS,CAAAA,WAAWA,CAACC,GAAW,CAAU,CAC/C,MAAO,CAAAA,GAAG,CAACC,OAAO,CAAC,iBAAiB,CAAE,OAAO,CAAC,CAACC,WAAW,CAAC,CAC7D,CAEA,MAAO,SAAS,CAAAC,+BAA+BA,CAC7CC,kBAAiC,CACjCC,UAAU,CACV,IADAA,UAAU,WAAVA,UAAU,CAAG,IAAI,CAEjB,MAAO,CAAAD,kBAAkB,CAACE,GAAG,CAAC,SAACC,SAAS,QAAM,CAC5CC,WAAW,CAAED,SAAS,CACtBF,UAAU,CAAVA,UACF,CAAC,CAAC,CACJ","ignoreList":[]}
|
package/helpers/merge-json.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";/* eslint-disable @typescript-eslint/no-explicit-any */function isPlaceholder(obj){return typeof obj==="object"&&obj!==null&&obj.name==="__peak_placeholder"}function extractPlaceholders(json,mapping,parentId){if(parentId===void 0){parentId=undefined}var updatedParentId=parentId;if(json===null){return}else if(Array.isArray(json)){json.forEach(function(item){return extractPlaceholders(item,mapping,updatedParentId)});return}else if(typeof json==="object"){if(json.id){updatedParentId=json.id}for(var _i=0,_Object$entries=Object.entries(json);_i<_Object$entries.length;_i++){var _Object$entries$_i=_Object$entries[_i],key=_Object$entries$_i[0],value=_Object$entries$_i[1];if(isPlaceholder(value)){if(updatedParentId){mapping[updatedParentId]=mapping[updatedParentId]||{};mapping[updatedParentId][key]=value}}else if(typeof value==="object"){extractPlaceholders(value,mapping,updatedParentId)}}}}function replacePlaceholders(json,mapping){if(json===null){return json}
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";/* eslint-disable @typescript-eslint/no-explicit-any */function isPlaceholder(obj){return typeof obj==="object"&&obj!==null&&obj.name==="__peak_placeholder"}function extractPlaceholders(json,mapping,parentId){if(parentId===void 0){parentId=undefined}var updatedParentId=parentId;if(json===null){return}else if(Array.isArray(json)){json.forEach(function(item){return extractPlaceholders(item,mapping,updatedParentId)});return}else if(typeof json==="object"){if(json.id){updatedParentId=json.id}for(var _i=0,_Object$entries=Object.entries(json);_i<_Object$entries.length;_i++){var _Object$entries$_i=_Object$entries[_i],key=_Object$entries$_i[0],value=_Object$entries$_i[1];if(isPlaceholder(value)){if(updatedParentId){mapping[updatedParentId]=mapping[updatedParentId]||{};mapping[updatedParentId][key]=value}}else if(typeof value==="object"){extractPlaceholders(value,mapping,updatedParentId)}}}}function replacePlaceholders(json,mapping){if(json===null){return json}if(Array.isArray(json)){return json.map(function(item){return replacePlaceholders(item,mapping)})}if(typeof json==="object"){var _newJson$componentNam,_newJson$componentPro;var newJson=_extends({},json);if(newJson.id&&mapping[newJson.id]){for(var _i2=0,_Object$entries2=Object.entries(mapping[newJson.id]);_i2<_Object$entries2.length;_i2++){var _Object$entries2$_i=_Object$entries2[_i2],key=_Object$entries2$_i[0],placeholderValue=_Object$entries2$_i[1];if(key in newJson){newJson[key]=placeholderValue}}}if(((_newJson$componentNam=newJson.componentName)==null?void 0:_newJson$componentNam.toLowerCase())==="filter"&&Array.isArray((_newJson$componentPro=newJson.componentProps)==null?void 0:_newJson$componentPro.value)&&newJson.componentProps.value.length){newJson.componentProps=_extends({},newJson.componentProps,{value:null})}for(var _i3=0,_Object$entries3=Object.entries(newJson);_i3<_Object$entries3.length;_i3++){var _Object$entries3$_i=_Object$entries3[_i3],_key=_Object$entries3$_i[0],value=_Object$entries3$_i[1];newJson[_key]=replacePlaceholders(value,mapping)}return newJson}return json}export function getUpdatedUiJson(uiJson,finalJson){var placeholderMapping={};extractPlaceholders(uiJson,placeholderMapping);var cloneJson=JSON.parse(JSON.stringify(finalJson));var newFinalJson=replacePlaceholders(cloneJson,placeholderMapping);return _extends({},newFinalJson,{styles:uiJson.styles||[]})}
|
|
2
2
|
//# sourceMappingURL=merge-json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-json.js","names":["isPlaceholder","obj","name","extractPlaceholders","json","mapping","parentId","undefined","updatedParentId","Array","isArray","forEach","item","id","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","replacePlaceholders","map","newJson","_i2","_Object$entries2","_Object$entries2$_i","_i3","_Object$entries3","_Object$entries3$_i","getUpdatedUiJson","uiJson","finalJson","placeholderMapping","cloneJson","JSON","parse","stringify","newFinalJson","
|
|
1
|
+
{"version":3,"file":"merge-json.js","names":["isPlaceholder","obj","name","extractPlaceholders","json","mapping","parentId","undefined","updatedParentId","Array","isArray","forEach","item","id","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","replacePlaceholders","map","_newJson$componentNam","_newJson$componentPro","newJson","_extends","_i2","_Object$entries2","_Object$entries2$_i","placeholderValue","componentName","toLowerCase","componentProps","_i3","_Object$entries3","_Object$entries3$_i","getUpdatedUiJson","uiJson","finalJson","placeholderMapping","cloneJson","JSON","parse","stringify","newFinalJson","styles"],"sources":["../../src/helpers/merge-json.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction isPlaceholder(obj: Record<string, any>) {\n return typeof obj === 'object' && obj !== null && obj.name === '__peak_placeholder';\n}\n\nfunction extractPlaceholders(\n json: Record<string, any>,\n mapping: Record<string, any>,\n parentId: string | undefined = undefined,\n) {\n let updatedParentId = parentId;\n\n if (json === null) {\n return;\n } else if (Array.isArray(json)) {\n json.forEach((item) => extractPlaceholders(item, mapping, updatedParentId));\n\n return;\n } else if (typeof json === 'object') {\n if (json.id) {\n updatedParentId = json.id;\n }\n\n for (const [key, value] of Object.entries(json)) {\n if (isPlaceholder(value)) {\n if (updatedParentId) {\n mapping[updatedParentId] = mapping[updatedParentId] || {};\n mapping[updatedParentId][key] = value;\n }\n } else if (typeof value === 'object') {\n extractPlaceholders(value, mapping, updatedParentId);\n }\n }\n }\n}\n\nfunction replacePlaceholders(\n json: Record<string, any>,\n mapping: Record<string, any>,\n): Record<string, any> {\n if (json === null) {\n return json;\n }\n\n if (Array.isArray(json)) {\n return json.map((item) => replacePlaceholders(item, mapping));\n }\n\n if (typeof json === 'object') {\n const newJson = { ...json };\n\n if (newJson.id && mapping[newJson.id]) {\n for (const [key, placeholderValue] of Object.entries(mapping[newJson.id])) {\n if (key in newJson) {\n newJson[key] = placeholderValue;\n }\n }\n }\n\n if (\n newJson.componentName?.toLowerCase() === 'filter' &&\n Array.isArray(newJson.componentProps?.value) &&\n newJson.componentProps.value.length\n ) {\n newJson.componentProps = {\n ...newJson.componentProps,\n value: null,\n };\n }\n\n for (const [key, value] of Object.entries(newJson)) {\n newJson[key] = replacePlaceholders(value, mapping);\n }\n\n return newJson;\n }\n\n return json;\n}\n\nexport function getUpdatedUiJson(uiJson: Record<string, any>, finalJson: Record<string, any>) {\n const placeholderMapping = {};\n extractPlaceholders(uiJson, placeholderMapping);\n\n const cloneJson = JSON.parse(JSON.stringify(finalJson));\n const newFinalJson = replacePlaceholders(cloneJson, placeholderMapping);\n\n return {\n ...newFinalJson,\n styles: uiJson.styles || [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/index.styles.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createGlobalStyle}from"styled-components";export var StyledEditor=createGlobalStyle([".gs-sidebar-left,.gs-sidebar-top,.gs-sidebar-right,.gjs-pn-panels,.gjs-pn-views,.gjs-off-prv,.gjs-pn-devices{display:none !important;}.gjs-cv-canvas{height:100% !important;width:100% !important;top:0 !important;}"]);
|
|
1
|
+
import{createGlobalStyle}from"styled-components";export var StyledEditor=createGlobalStyle([".gs-sidebar-left,.gs-sidebar-top,.gs-sidebar-right,.gjs-pn-panels,.gjs-pn-views,.gjs-off-prv,.gjs-pn-devices{display:none !important;}.gjs-badge-label{display:none !important;}.gjs-cv-canvas{height:100% !important;width:100% !important;top:0 !important;}.gjs-hovered,.gjs-selected,[data-gjs-type],[data-highlightable]{outline:none !important;}.gjs-highlighter,.gjs-highlighter-sel,.gjs-selected-parent,.gjs-toolbar{outline:none !important;border:none !important;box-shadow:none !important;}.gjs-frame{outline:none !important;border:none !important;}.gjs-selected::before,.gjs-selected::after,.gjs-hovered::before,.gjs-hovered::after{display:none !important;background:none !important;}.gjs-com-badge,.gjs-badge{display:none !important;}"]);
|
|
2
2
|
//# sourceMappingURL=index.styles.js.map
|
package/index.styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.styles.js","names":["createGlobalStyle","StyledEditor"],"sources":["../src/index.styles.ts"],"sourcesContent":["import { createGlobalStyle } from 'styled-components';\n\nexport const StyledEditor = createGlobalStyle`\n /* Hide GrapesJS panels */\n .gs-sidebar-left,\n .gs-sidebar-top,\n .gs-sidebar-right,\n .gjs-pn-panels,\n .gjs-pn-views,\n .gjs-off-prv,\n .gjs-pn-devices {\n display: none !important;\n }\n\n .gjs-cv-canvas {\n height: 100% !important;\n width: 100% !important;\n top: 0 !important;\n }\n`;\n"],"mappings":"AAAA,OAASA,iBAAiB,KAAQ,mBAAmB,CAErD,MAAO,IAAM,CAAAC,YAAY,CAAGD,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.styles.js","names":["createGlobalStyle","StyledEditor"],"sources":["../src/index.styles.ts"],"sourcesContent":["import { createGlobalStyle } from 'styled-components';\n\nexport const StyledEditor = createGlobalStyle`\n /* Hide GrapesJS panels */\n .gs-sidebar-left,\n .gs-sidebar-top,\n .gs-sidebar-right,\n .gjs-pn-panels,\n .gjs-pn-views,\n .gjs-off-prv,\n .gjs-pn-devices {\n display: none !important;\n }\n\n .gjs-badge-label {\n display: none !important;\n }\n\n .gjs-cv-canvas {\n height: 100% !important;\n width: 100% !important;\n top: 0 !important;\n }\n\n .gjs-hovered, \n .gjs-selected,\n [data-gjs-type],\n [data-highlightable] {\n outline: none !important;\n }\n\n .gjs-highlighter, \n .gjs-highlighter-sel,\n .gjs-selected-parent,\n .gjs-toolbar {\n outline: none !important;\n border: none !important;\n box-shadow: none !important;\n }\n\n .gjs-frame {\n outline: none !important;\n border: none !important;\n }\n\n .gjs-selected::before,\n .gjs-selected::after,\n .gjs-hovered::before,\n .gjs-hovered::after {\n display: none !important;\n background: none !important;\n }\n\n .gjs-com-badge,\n .gjs-badge {\n display: none !important;\n }\n`;\n"],"mappings":"AAAA,OAASA,iBAAiB,KAAQ,mBAAmB,CAErD,MAAO,IAAM,CAAAC,YAAY,CAAGD,iBAAiB,suBAuD5C","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
"name": "@peak-ai/canvas",
|
|
3
3
|
"author": "squad-builder-experience",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
|
-
"version": "1.3.3
|
|
5
|
+
"version": "1.3.3",
|
|
6
6
|
"description": "",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@peak-ai/ais-components": "6.41.0",
|
|
9
9
|
"@radix-ui/react-checkbox": "^1.3.2",
|
|
10
10
|
"@radix-ui/react-hover-card": "^1.1.7",
|
|
11
11
|
"@radix-ui/react-label": "^2.1.3",
|
|
12
|
-
"@radix-ui/react-popover": "^1.1.14",
|
|
13
12
|
"@radix-ui/react-scroll-area": "^1.2.5",
|
|
14
13
|
"@radix-ui/react-separator": "^1.1.3",
|
|
15
14
|
"@radix-ui/react-slot": "^1.2.0",
|
|
@@ -22,6 +21,7 @@
|
|
|
22
21
|
"clsx": "^2.1.1",
|
|
23
22
|
"grapesjs": "0.22.6",
|
|
24
23
|
"grapesjs-tailwind": "1.0.7",
|
|
24
|
+
"lodash": "^4.17.21",
|
|
25
25
|
"lucide-react": "^0.525.0",
|
|
26
26
|
"markdown": "^0.5.0",
|
|
27
27
|
"markdown-to-jsx": "7.4.1",
|
|
@@ -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,
|
|
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, any>) => {\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":[]}
|
package/plugins/helpers/extra.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["label","defaultChecked","className","isEditable"],_excluded2=["triggerContent","cardContent","className","isEditable"],_excluded3=["label","placeholder","value","className","isEditable"],_excluded4=["text","className","isEditable"],_excluded5=["className"],_excluded6=["label","placeholder","value","className","isEditable"],_excluded7=["triggerContent","tooltipContent","className","isEditable"]
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["label","defaultChecked","className","isEditable"],_excluded2=["triggerContent","cardContent","className","isEditable"],_excluded3=["label","placeholder","value","className","isEditable"],_excluded4=["text","className","isEditable"],_excluded5=["className"],_excluded6=["label","placeholder","value","className","isEditable"],_excluded7=["triggerContent","tooltipContent","className","isEditable"];/* eslint-disable @typescript-eslint/no-explicit-any */import{cn}from"../../shadcn/utils";import{Checkbox}from"../../shadcn/components/ui/checkbox";import{HoverCard,HoverCardTrigger,HoverCardContent}from"../../shadcn/components/ui/hover-card";import{Input}from"../../shadcn/components/ui/input";import{Label}from"../../shadcn/components/ui/label";import{Separator}from"../../shadcn/components/ui/separator";import{Textarea}from"../../shadcn/components/ui/textarea";import{Tooltip,TooltipTrigger,TooltipContent}from"../../shadcn/components/ui/tooltip";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function renderCheckbox(props){var _props$label=props.label,label=_props$label===void 0?"":_props$label,_props$defaultChecked=props.defaultChecked,defaultChecked=_props$defaultChecked===void 0?false:_props$defaultChecked,className=props.className,_props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,rest=_objectWithoutPropertiesLoose(props,_excluded);var defaultClasses="flex items-center";var merged=className?cn(defaultClasses,className):defaultClasses;return/*#__PURE__*/_jsxs("div",_extends({className:merged},rest,{children:[/*#__PURE__*/_jsx(Checkbox,{defaultChecked:defaultChecked}),label&&/*#__PURE__*/_jsx(Label,{"data-slot":"label",contentEditable:isEditable,className:"ml-2",children:label})]}))}export function renderHoverCard(props){var _props$triggerContent=props.triggerContent,triggerContent=_props$triggerContent===void 0?"Hover over me":_props$triggerContent,_props$cardContent=props.cardContent,cardContent=_props$cardContent===void 0?"Additional information":_props$cardContent,className=props.className,_props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,rest=_objectWithoutPropertiesLoose(props,_excluded2);var defaultClasses="w-[320px] max-w-[320px] shadow rounded-lg";var merged=className?cn(defaultClasses,className):defaultClasses;return/*#__PURE__*/_jsxs(HoverCard,_extends({className:merged},rest,{children:[/*#__PURE__*/_jsx(HoverCardTrigger,{asChild:true,children:/*#__PURE__*/_jsx("span",{"data-slot":"triggerContent",contentEditable:isEditable,children:triggerContent})}),/*#__PURE__*/_jsx(HoverCardContent,{children:/*#__PURE__*/_jsx("div",{"data-slot":"cardContent",contentEditable:isEditable,children:cardContent})})]}))}export function renderInput(props){var _props$label2=props.label,label=_props$label2===void 0?"":_props$label2,_props$placeholder=props.placeholder,placeholder=_props$placeholder===void 0?"":_props$placeholder,_props$value=props.value,value=_props$value===void 0?"":_props$value,className=props.className,_props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,rest=_objectWithoutPropertiesLoose(props,_excluded3);var defaultClasses="w-[320px] p-2 border border-gray-300 rounded-md";var merged=className?cn(defaultClasses,className):defaultClasses;return/*#__PURE__*/_jsxs("div",_extends({className:"flex flex-col "+merged},rest,{children:[label&&/*#__PURE__*/_jsx(Label,{"data-slot":"label",contentEditable:isEditable,className:"mb-1",children:label}),/*#__PURE__*/_jsx(Input,{placeholder:placeholder,value:value})]}))}export function renderLabel(props){var _props$text=props.text,text=_props$text===void 0?"Label":_props$text,className=props.className,_props$isEditable4=props.isEditable,isEditable=_props$isEditable4===void 0?false:_props$isEditable4,rest=_objectWithoutPropertiesLoose(props,_excluded4);var defaultClasses="text-base font-semibold mb-2";var merged=className?cn(defaultClasses,className):defaultClasses;return/*#__PURE__*/_jsx(Label,_extends({"data-slot":"text",contentEditable:isEditable,className:merged},rest,{children:text}))}export function renderSeparator(props){var className=props.className,rest=_objectWithoutPropertiesLoose(props,_excluded5);var defaultClasses="my-4 border-t-2";var merged=className?cn(defaultClasses,className):defaultClasses;return/*#__PURE__*/_jsx(Separator,_extends({className:merged},rest))}export function renderTextarea(props){var _props$label3=props.label,label=_props$label3===void 0?"":_props$label3,_props$placeholder2=props.placeholder,placeholder=_props$placeholder2===void 0?"":_props$placeholder2,_props$value2=props.value,value=_props$value2===void 0?"":_props$value2,className=props.className,_props$isEditable5=props.isEditable,isEditable=_props$isEditable5===void 0?false:_props$isEditable5,rest=_objectWithoutPropertiesLoose(props,_excluded6);var defaultClasses="w-[320px] p-2 border border-gray-300 rounded-md";var merged=className?cn(defaultClasses,className):defaultClasses;return/*#__PURE__*/_jsxs("div",_extends({className:"flex flex-col "+merged},rest,{children:[label&&/*#__PURE__*/_jsx(Label,{"data-slot":"label",contentEditable:isEditable,className:"mb-1",children:label}),/*#__PURE__*/_jsx(Textarea,{placeholder:placeholder,value:value})]}))}export function renderTooltip(props){var _props$triggerContent2=props.triggerContent,triggerContent=_props$triggerContent2===void 0?"Hover here":_props$triggerContent2,_props$tooltipContent=props.tooltipContent,tooltipContent=_props$tooltipContent===void 0?"Tooltip information":_props$tooltipContent,className=props.className,_props$isEditable6=props.isEditable,isEditable=_props$isEditable6===void 0?false:_props$isEditable6,rest=_objectWithoutPropertiesLoose(props,_excluded7);var merged=className||"";return/*#__PURE__*/_jsxs(Tooltip,_extends({className:merged},rest,{children:[/*#__PURE__*/_jsx(TooltipTrigger,{asChild:true,children:/*#__PURE__*/_jsx("span",{"data-slot":"triggerContent",contentEditable:isEditable,children:triggerContent})}),/*#__PURE__*/_jsx(TooltipContent,{"data-slot":"tooltipContent",contentEditable:isEditable,children:tooltipContent})]}))}
|
|
2
2
|
//# sourceMappingURL=extra.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra.js","names":["cn","Checkbox","HoverCard","HoverCardTrigger","HoverCardContent","Input","Label","Separator","Textarea","Tooltip","TooltipTrigger","TooltipContent","jsx","_jsx","jsxs","_jsxs","renderCheckbox","props","_props$label","label","_props$defaultChecked","defaultChecked","className","_props$isEditable","isEditable","rest","_objectWithoutPropertiesLoose","_excluded","defaultClasses","merged","_extends","children","contentEditable","renderHoverCard","_props$triggerContent","triggerContent","_props$cardContent","cardContent","_props$isEditable2","_excluded2","asChild","renderInput","_props$label2","_props$placeholder","placeholder","_props$value","value","_props$isEditable3","_excluded3","renderLabel","_props$text","text","_props$isEditable4","_excluded4","renderSeparator","_excluded5","renderTextarea","_props$label3","_props$placeholder2","_props$value2","_props$isEditable5","_excluded6","renderTooltip","_props$triggerContent2","_props$tooltipContent","tooltipContent","_props$isEditable6","_excluded7"],"sources":["../../../src/plugins/helpers/extra.tsx"],"sourcesContent":["import { JSX } from 'react';\n\nimport { cn } from '../../shadcn/utils';\nimport { Checkbox } from '../../shadcn/components/ui/checkbox';\nimport {\n HoverCard,\n HoverCardTrigger,\n HoverCardContent,\n} from '../../shadcn/components/ui/hover-card';\nimport { Input } from '../../shadcn/components/ui/input';\nimport { Label } from '../../shadcn/components/ui/label';\nimport { Separator } from '../../shadcn/components/ui/separator';\nimport { Textarea } from '../../shadcn/components/ui/textarea';\nimport { Tooltip, TooltipTrigger, TooltipContent } from '../../shadcn/components/ui/tooltip';\n\nexport function renderCheckbox(props: any): JSX.Element {\n const { label = '', defaultChecked = false, className, isEditable = false, ...rest } = props;\n const defaultClasses = 'flex items-center';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <div className={merged} {...rest}>\n <Checkbox defaultChecked={defaultChecked} />\n {label && (\n <Label data-slot=\"label\" contentEditable={isEditable} className=\"ml-2\">\n {label}\n </Label>\n )}\n </div>\n );\n}\n\nexport function renderHoverCard(props: any): JSX.Element {\n const {\n triggerContent = 'Hover over me',\n cardContent = 'Additional information',\n className,\n isEditable = false,\n ...rest\n } = props;\n const defaultClasses = 'w-[320px] max-w-[320px] shadow rounded-lg';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <HoverCard className={merged} {...rest}>\n <HoverCardTrigger asChild>\n <span data-slot=\"triggerContent\" contentEditable={isEditable}>\n {triggerContent}\n </span>\n </HoverCardTrigger>\n <HoverCardContent>\n <div data-slot=\"cardContent\" contentEditable={isEditable}>\n {cardContent}\n </div>\n </HoverCardContent>\n </HoverCard>\n );\n}\n\nexport function renderInput(props: any): JSX.Element {\n const {\n label = '',\n placeholder = '',\n value = '',\n className,\n isEditable = false,\n ...rest\n } = props;\n const defaultClasses = 'w-[320px] p-2 border border-gray-300 rounded-md';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <div className={`flex flex-col ${merged}`} {...rest}>\n {label && (\n <Label data-slot=\"label\" contentEditable={isEditable} className=\"mb-1\">\n {label}\n </Label>\n )}\n <Input placeholder={placeholder} value={value} />\n </div>\n );\n}\n\nexport function renderLabel(props: any): JSX.Element {\n const { text = 'Label', className, isEditable = false, ...rest } = props;\n const defaultClasses = 'text-base font-semibold mb-2';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <Label data-slot=\"text\" contentEditable={isEditable} className={merged} {...rest}>\n {text}\n </Label>\n );\n}\n\nexport function renderSeparator(props: any): JSX.Element {\n const { className, ...rest } = props;\n const defaultClasses = 'my-4 border-t-2';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return <Separator className={merged} {...rest} />;\n}\n\nexport function renderTextarea(props: any): JSX.Element {\n const {\n label = '',\n placeholder = '',\n value = '',\n className,\n isEditable = false,\n ...rest\n } = props;\n const defaultClasses = 'w-[320px] p-2 border border-gray-300 rounded-md';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <div className={`flex flex-col ${merged}`} {...rest}>\n {label && (\n <Label data-slot=\"label\" contentEditable={isEditable} className=\"mb-1\">\n {label}\n </Label>\n )}\n <Textarea placeholder={placeholder} value={value} />\n </div>\n );\n}\n\nexport function renderTooltip(props: any): JSX.Element {\n const {\n triggerContent = 'Hover here',\n tooltipContent = 'Tooltip information',\n className,\n isEditable = false,\n ...rest\n } = props;\n const merged = className || '';\n\n return (\n <Tooltip className={merged} {...rest}>\n <TooltipTrigger asChild>\n <span data-slot=\"triggerContent\" contentEditable={isEditable}>\n {triggerContent}\n </span>\n </TooltipTrigger>\n <TooltipContent data-slot=\"tooltipContent\" contentEditable={isEditable}>\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n );\n}"],"mappings":"ijBAEA,OAASA,EAAE,KAAQ,oBAAoB,CACvC,OAASC,QAAQ,KAAQ,qCAAqC,CAC9D,OACEC,SAAS,CACTC,gBAAgB,CAChBC,gBAAgB,KACX,uCAAuC,CAC9C,OAASC,KAAK,KAAQ,kCAAkC,CACxD,OAASC,KAAK,KAAQ,kCAAkC,CACxD,OAASC,SAAS,KAAQ,sCAAsC,CAChE,OAASC,QAAQ,KAAQ,qCAAqC,CAC9D,OAASC,OAAO,CAAEC,cAAc,CAAEC,cAAc,KAAQ,oCAAoC,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAE7F,MAAO,SAAS,CAAAC,cAAcA,CAACC,KAAU,CAAe,CACtD,IAAAC,YAAA,CAAuFD,KAAK,CAApFE,KAAK,CAALA,KAAK,CAAAD,YAAA,UAAG,EAAE,CAAAA,YAAA,CAAAE,qBAAA,CAAqEH,KAAK,CAAxEI,cAAc,CAAdA,cAAc,CAAAD,qBAAA,UAAG,KAAK,CAAAA,qBAAA,CAAEE,SAAS,CAAkCL,KAAK,CAAhDK,SAAS,CAAAC,iBAAA,CAAkCN,KAAK,CAArCO,UAAU,CAAVA,UAAU,CAAAD,iBAAA,UAAG,KAAK,CAAAA,iBAAA,CAAKE,IAAI,CAAAC,6BAAA,CAAKT,KAAK,CAAAU,SAAA,EAC5F,GAAM,CAAAC,cAAc,CAAG,mBAAmB,CAC1C,GAAM,CAAAC,MAAM,CAAGP,SAAS,CAAGtB,EAAE,CAAC4B,cAAc,CAAEN,SAAS,CAAC,CAAGM,cAAc,CAEzE,mBACEb,KAAA,OAAAe,QAAA,EAAKR,SAAS,CAAEO,MAAO,EAAKJ,IAAI,EAAAM,QAAA,eAC9BlB,IAAA,CAACZ,QAAQ,EAACoB,cAAc,CAAEA,cAAe,CAAE,CAAC,CAC3CF,KAAK,eACJN,IAAA,CAACP,KAAK,EAAC,YAAU,OAAO,CAAC0B,eAAe,CAAER,UAAW,CAACF,SAAS,CAAC,MAAM,CAAAS,QAAA,CACnEZ,KAAK,CACD,CACR,GACE,CAET,CAEA,MAAO,SAAS,CAAAc,eAAeA,CAAChB,KAAU,CAAe,CACvD,IAAAiB,qBAAA,CAMIjB,KAAK,CALPkB,cAAc,CAAdA,cAAc,CAAAD,qBAAA,UAAG,eAAe,CAAAA,qBAAA,CAAAE,kBAAA,CAK9BnB,KAAK,CAJPoB,WAAW,CAAXA,WAAW,CAAAD,kBAAA,UAAG,wBAAwB,CAAAA,kBAAA,CACtCd,SAAS,CAGPL,KAAK,CAHPK,SAAS,CAAAgB,kBAAA,CAGPrB,KAAK,CAFPO,UAAU,CAAVA,UAAU,CAAAc,kBAAA,UAAG,KAAK,CAAAA,kBAAA,CACfb,IAAI,CAAAC,6BAAA,CACLT,KAAK,CAAAsB,UAAA,EACT,GAAM,CAAAX,cAAc,CAAG,2CAA2C,CAClE,GAAM,CAAAC,MAAM,CAAGP,SAAS,CAAGtB,EAAE,CAAC4B,cAAc,CAAEN,SAAS,CAAC,CAAGM,cAAc,CAEzE,mBACEb,KAAA,CAACb,SAAS,CAAA4B,QAAA,EAACR,SAAS,CAAEO,MAAO,EAAKJ,IAAI,EAAAM,QAAA,eACpClB,IAAA,CAACV,gBAAgB,EAACqC,OAAO,MAAAT,QAAA,cACvBlB,IAAA,SAAM,YAAU,gBAAgB,CAACmB,eAAe,CAAER,UAAW,CAAAO,QAAA,CAC1DI,cAAc,CACX,CAAC,CACS,CAAC,cACnBtB,IAAA,CAACT,gBAAgB,EAAA2B,QAAA,cACflB,IAAA,QAAK,YAAU,aAAa,CAACmB,eAAe,CAAER,UAAW,CAAAO,QAAA,CACtDM,WAAW,CACT,CAAC,CACU,CAAC,GACV,CAEf,CAEA,MAAO,SAAS,CAAAI,WAAWA,CAACxB,KAAU,CAAe,CACnD,IAAAyB,aAAA,CAOIzB,KAAK,CANPE,KAAK,CAALA,KAAK,CAAAuB,aAAA,UAAG,EAAE,CAAAA,aAAA,CAAAC,kBAAA,CAMR1B,KAAK,CALP2B,WAAW,CAAXA,WAAW,CAAAD,kBAAA,UAAG,EAAE,CAAAA,kBAAA,CAAAE,YAAA,CAKd5B,KAAK,CAJP6B,KAAK,CAALA,KAAK,CAAAD,YAAA,UAAG,EAAE,CAAAA,YAAA,CACVvB,SAAS,CAGPL,KAAK,CAHPK,SAAS,CAAAyB,kBAAA,CAGP9B,KAAK,CAFPO,UAAU,CAAVA,UAAU,CAAAuB,kBAAA,UAAG,KAAK,CAAAA,kBAAA,CACftB,IAAI,CAAAC,6BAAA,CACLT,KAAK,CAAA+B,UAAA,EACT,GAAM,CAAApB,cAAc,CAAG,iDAAiD,CACxE,GAAM,CAAAC,MAAM,CAAGP,SAAS,CAAGtB,EAAE,CAAC4B,cAAc,CAAEN,SAAS,CAAC,CAAGM,cAAc,CAEzE,mBACEb,KAAA,OAAAe,QAAA,EAAKR,SAAS,kBAAmBO,MAAS,EAAKJ,IAAI,EAAAM,QAAA,EAChDZ,KAAK,eACJN,IAAA,CAACP,KAAK,EAAC,YAAU,OAAO,CAAC0B,eAAe,CAAER,UAAW,CAACF,SAAS,CAAC,MAAM,CAAAS,QAAA,CACnEZ,KAAK,CACD,CACR,cACDN,IAAA,CAACR,KAAK,EAACuC,WAAW,CAAEA,WAAY,CAACE,KAAK,CAAEA,KAAM,CAAE,CAAC,GAC9C,CAET,CAEA,MAAO,SAAS,CAAAG,WAAWA,CAAChC,KAAU,CAAe,CACnD,IAAAiC,WAAA,CAAmEjC,KAAK,CAAhEkC,IAAI,CAAJA,IAAI,CAAAD,WAAA,UAAG,OAAO,CAAAA,WAAA,CAAE5B,SAAS,CAAkCL,KAAK,CAAhDK,SAAS,CAAA8B,kBAAA,CAAkCnC,KAAK,CAArCO,UAAU,CAAVA,UAAU,CAAA4B,kBAAA,UAAG,KAAK,CAAAA,kBAAA,CAAK3B,IAAI,CAAAC,6BAAA,CAAKT,KAAK,CAAAoC,UAAA,EACxE,GAAM,CAAAzB,cAAc,CAAG,8BAA8B,CACrD,GAAM,CAAAC,MAAM,CAAGP,SAAS,CAAGtB,EAAE,CAAC4B,cAAc,CAAEN,SAAS,CAAC,CAAGM,cAAc,CAEzE,mBACEf,IAAA,CAACP,KAAK,CAAAwB,QAAA,EAAC,YAAU,MAAM,CAACE,eAAe,CAAER,UAAW,CAACF,SAAS,CAAEO,MAAO,EAAKJ,IAAI,EAAAM,QAAA,CAC7EoB,IAAI,EACA,CAEX,CAEA,MAAO,SAAS,CAAAG,eAAeA,CAACrC,KAAU,CAAe,CACvD,GAAQ,CAAAK,SAAS,CAAcL,KAAK,CAA5BK,SAAS,CAAKG,IAAI,CAAAC,6BAAA,CAAKT,KAAK,CAAAsC,UAAA,EACpC,GAAM,CAAA3B,cAAc,CAAG,iBAAiB,CACxC,GAAM,CAAAC,MAAM,CAAGP,SAAS,CAAGtB,EAAE,CAAC4B,cAAc,CAAEN,SAAS,CAAC,CAAGM,cAAc,CAEzE,mBAAOf,IAAA,CAACN,SAAS,CAAAuB,QAAA,EAACR,SAAS,CAAEO,MAAO,EAAKJ,IAAI,CAAG,CAClD,CAEA,MAAO,SAAS,CAAA+B,cAAcA,CAACvC,KAAU,CAAe,CACtD,IAAAwC,aAAA,CAOIxC,KAAK,CANPE,KAAK,CAALA,KAAK,CAAAsC,aAAA,UAAG,EAAE,CAAAA,aAAA,CAAAC,mBAAA,CAMRzC,KAAK,CALP2B,WAAW,CAAXA,WAAW,CAAAc,mBAAA,UAAG,EAAE,CAAAA,mBAAA,CAAAC,aAAA,CAKd1C,KAAK,CAJP6B,KAAK,CAALA,KAAK,CAAAa,aAAA,UAAG,EAAE,CAAAA,aAAA,CACVrC,SAAS,CAGPL,KAAK,CAHPK,SAAS,CAAAsC,kBAAA,CAGP3C,KAAK,CAFPO,UAAU,CAAVA,UAAU,CAAAoC,kBAAA,UAAG,KAAK,CAAAA,kBAAA,CACfnC,IAAI,CAAAC,6BAAA,CACLT,KAAK,CAAA4C,UAAA,EACT,GAAM,CAAAjC,cAAc,CAAG,iDAAiD,CACxE,GAAM,CAAAC,MAAM,CAAGP,SAAS,CAAGtB,EAAE,CAAC4B,cAAc,CAAEN,SAAS,CAAC,CAAGM,cAAc,CAEzE,mBACEb,KAAA,OAAAe,QAAA,EAAKR,SAAS,kBAAmBO,MAAS,EAAKJ,IAAI,EAAAM,QAAA,EAChDZ,KAAK,eACJN,IAAA,CAACP,KAAK,EAAC,YAAU,OAAO,CAAC0B,eAAe,CAAER,UAAW,CAACF,SAAS,CAAC,MAAM,CAAAS,QAAA,CACnEZ,KAAK,CACD,CACR,cACDN,IAAA,CAACL,QAAQ,EAACoC,WAAW,CAAEA,WAAY,CAACE,KAAK,CAAEA,KAAM,CAAE,CAAC,GACjD,CAET,CAEA,MAAO,SAAS,CAAAgB,aAAaA,CAAC7C,KAAU,CAAe,CACrD,IAAA8C,sBAAA,CAMI9C,KAAK,CALPkB,cAAc,CAAdA,cAAc,CAAA4B,sBAAA,UAAG,YAAY,CAAAA,sBAAA,CAAAC,qBAAA,CAK3B/C,KAAK,CAJPgD,cAAc,CAAdA,cAAc,CAAAD,qBAAA,UAAG,qBAAqB,CAAAA,qBAAA,CACtC1C,SAAS,CAGPL,KAAK,CAHPK,SAAS,CAAA4C,kBAAA,CAGPjD,KAAK,CAFPO,UAAU,CAAVA,UAAU,CAAA0C,kBAAA,UAAG,KAAK,CAAAA,kBAAA,CACfzC,IAAI,CAAAC,6BAAA,CACLT,KAAK,CAAAkD,UAAA,EACT,GAAM,CAAAtC,MAAM,CAAGP,SAAS,EAAI,EAAE,CAE9B,mBACEP,KAAA,CAACN,OAAO,CAAAqB,QAAA,EAACR,SAAS,CAAEO,MAAO,EAAKJ,IAAI,EAAAM,QAAA,eAClClB,IAAA,CAACH,cAAc,EAAC8B,OAAO,MAAAT,QAAA,cACrBlB,IAAA,SAAM,YAAU,gBAAgB,CAACmB,eAAe,CAAER,UAAW,CAAAO,QAAA,CAC1DI,cAAc,CACX,CAAC,CACO,CAAC,cACjBtB,IAAA,CAACF,cAAc,EAAC,YAAU,gBAAgB,CAACqB,eAAe,CAAER,UAAW,CAAAO,QAAA,CACpEkC,cAAc,CACD,CAAC,GACV,CAEb","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"extra.js","names":["cn","Checkbox","HoverCard","HoverCardTrigger","HoverCardContent","Input","Label","Separator","Textarea","Tooltip","TooltipTrigger","TooltipContent","jsx","_jsx","jsxs","_jsxs","renderCheckbox","props","_props$label","label","_props$defaultChecked","defaultChecked","className","_props$isEditable","isEditable","rest","_objectWithoutPropertiesLoose","_excluded","defaultClasses","merged","_extends","children","contentEditable","renderHoverCard","_props$triggerContent","triggerContent","_props$cardContent","cardContent","_props$isEditable2","_excluded2","asChild","renderInput","_props$label2","_props$placeholder","placeholder","_props$value","value","_props$isEditable3","_excluded3","renderLabel","_props$text","text","_props$isEditable4","_excluded4","renderSeparator","_excluded5","renderTextarea","_props$label3","_props$placeholder2","_props$value2","_props$isEditable5","_excluded6","renderTooltip","_props$triggerContent2","_props$tooltipContent","tooltipContent","_props$isEditable6","_excluded7"],"sources":["../../../src/plugins/helpers/extra.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { JSX } from 'react';\n\nimport { cn } from '../../shadcn/utils';\nimport { Checkbox } from '../../shadcn/components/ui/checkbox';\nimport {\n HoverCard,\n HoverCardTrigger,\n HoverCardContent,\n} from '../../shadcn/components/ui/hover-card';\nimport { Input } from '../../shadcn/components/ui/input';\nimport { Label } from '../../shadcn/components/ui/label';\nimport { Separator } from '../../shadcn/components/ui/separator';\nimport { Textarea } from '../../shadcn/components/ui/textarea';\nimport { Tooltip, TooltipTrigger, TooltipContent } from '../../shadcn/components/ui/tooltip';\n\nexport function renderCheckbox(props: any): JSX.Element {\n const { label = '', defaultChecked = false, className, isEditable = false, ...rest } = props;\n const defaultClasses = 'flex items-center';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <div className={merged} {...rest}>\n <Checkbox defaultChecked={defaultChecked} />\n {label && (\n <Label data-slot=\"label\" contentEditable={isEditable} className=\"ml-2\">\n {label}\n </Label>\n )}\n </div>\n );\n}\n\nexport function renderHoverCard(props: any): JSX.Element {\n const {\n triggerContent = 'Hover over me',\n cardContent = 'Additional information',\n className,\n isEditable = false,\n ...rest\n } = props;\n const defaultClasses = 'w-[320px] max-w-[320px] shadow rounded-lg';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <HoverCard className={merged} {...rest}>\n <HoverCardTrigger asChild>\n <span data-slot=\"triggerContent\" contentEditable={isEditable}>\n {triggerContent}\n </span>\n </HoverCardTrigger>\n <HoverCardContent>\n <div data-slot=\"cardContent\" contentEditable={isEditable}>\n {cardContent}\n </div>\n </HoverCardContent>\n </HoverCard>\n );\n}\n\nexport function renderInput(props: any): JSX.Element {\n const {\n label = '',\n placeholder = '',\n value = '',\n className,\n isEditable = false,\n ...rest\n } = props;\n const defaultClasses = 'w-[320px] p-2 border border-gray-300 rounded-md';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <div className={`flex flex-col ${merged}`} {...rest}>\n {label && (\n <Label data-slot=\"label\" contentEditable={isEditable} className=\"mb-1\">\n {label}\n </Label>\n )}\n <Input placeholder={placeholder} value={value} />\n </div>\n );\n}\n\nexport function renderLabel(props: any): JSX.Element {\n const { text = 'Label', className, isEditable = false, ...rest } = props;\n const defaultClasses = 'text-base font-semibold mb-2';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <Label data-slot=\"text\" contentEditable={isEditable} className={merged} {...rest}>\n {text}\n </Label>\n );\n}\n\nexport function renderSeparator(props: any): JSX.Element {\n const { className, ...rest } = props;\n const defaultClasses = 'my-4 border-t-2';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return <Separator className={merged} {...rest} />;\n}\n\nexport function renderTextarea(props: any): JSX.Element {\n const {\n label = '',\n placeholder = '',\n value = '',\n className,\n isEditable = false,\n ...rest\n } = props;\n const defaultClasses = 'w-[320px] p-2 border border-gray-300 rounded-md';\n const merged = className ? cn(defaultClasses, className) : defaultClasses;\n\n return (\n <div className={`flex flex-col ${merged}`} {...rest}>\n {label && (\n <Label data-slot=\"label\" contentEditable={isEditable} className=\"mb-1\">\n {label}\n </Label>\n )}\n <Textarea placeholder={placeholder} value={value} />\n </div>\n );\n}\n\nexport function renderTooltip(props: any): JSX.Element {\n const {\n triggerContent = 'Hover here',\n tooltipContent = 'Tooltip information',\n className,\n isEditable = false,\n ...rest\n } = props;\n const merged = className || '';\n\n return (\n <Tooltip className={merged} {...rest}>\n <TooltipTrigger asChild>\n <span data-slot=\"triggerContent\" contentEditable={isEditable}>\n {triggerContent}\n </span>\n </TooltipTrigger>\n <TooltipContent data-slot=\"tooltipContent\" contentEditable={isEditable}>\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,5 +6,4 @@ export declare function renderTable(props: any): JSX.Element;
|
|
|
6
6
|
export declare function renderTab(props: any): JSX.Element;
|
|
7
7
|
export declare function renderMarkdown(props: any): JSX.Element;
|
|
8
8
|
export declare function renderButton(props: any): JSX.Element;
|
|
9
|
-
export declare function renderFilterMulti(props: any): JSX.Element;
|
|
10
9
|
export declare function getRenderers(): Record<string, (props: any) => JSX.Element>;
|
|
@@ -1,77 +1,5 @@
|
|
|
1
|
-
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["gjsModel"],_excluded2=["isEditable","gjsModel"],_excluded3=["isEditable","gjsModel","performInteraction"],_excluded4=["gjsModel","performInteraction"],_excluded5=["gjsModel"];import _regeneratorRuntime from"@babel/runtime/regenerator";function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}/* eslint-disable func-style *//* eslint-disable @typescript-eslint/no-empty-function *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import chroma from"chroma-js";import React,{useEffect,useState,useRef}from"react";import{theme}from"@peak-ai/ais-components/theme";import Markdown from"markdown-to-jsx";import{Loader2Icon}from"lucide-react";import{Card,CardHeader,CardTitle,CardDescription,CardContent,CardFooter}from"../../shadcn/components/ui/card";import{ChartContainer,ChartTooltip,ChartTooltipContent}from"../../shadcn/components/ui/chart";import{
|
|
2
|
-
// Select,
|
|
3
|
-
// SelectTrigger,
|
|
4
|
-
// SelectValue,
|
|
5
|
-
// SelectContent,
|
|
6
|
-
// SelectItem,
|
|
7
|
-
// } from '../../shadcn/components/ui/select';
|
|
8
|
-
import{Popover,PopoverTrigger,PopoverContent,PopoverClose}from"../../shadcn/components/ui/popover";import{Checkbox}from"../../shadcn/components/ui/checkbox";import{cn}from"../../shadcn/utils";import{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{Tabs,TabsList,TabsTrigger,TabsContent}from"../../shadcn/components/ui/tabs";import{TableLoader,ChartLoader,CardLoader}from"../../shadcn/components/ui/skeleton";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var baseColors=[[theme.colors.Blue_100,theme.colors.Blue_30],[theme.colors.Purpley_100,theme.colors.Purpley_30],[theme.colors.Light_Bluish_Green,"#06601b"],[theme.colors.Wild_Strawberry,"#4d001c"]];function getAffectedComponentsWithLoader(affectedComponents,showLoader){if(showLoader===void 0){showLoader=true}return affectedComponents.map(function(component){return{componentId:component,showLoader:showLoader}})}function getNColors(n){var colors=[];// const pallette = pallettes[Math.floor(Math.random() * pallettes.length)];
|
|
9
|
-
for(var _iterator=_createForOfIteratorHelperLoose(baseColors),_step;!(_step=_iterator()).done;){var baseColor=_step.value;// eslint-disable-next-line import/no-named-as-default-member
|
|
10
|
-
colors.push(chroma.scale(baseColor).mode("lab").colors(n))}function getOneColor(existing){var color=null;do{var base=colors[Math.floor(Math.random()*colors.length)];var selectedColorIndex=Math.floor(Math.random()*base.length);color=base[selectedColorIndex]}while(existing.includes(color));return color}var selectedColors=[];for(var i=0;i<n;i++){selectedColors.push(getOneColor(selectedColors))}return selectedColors}/* TODO: Loader remains */export function renderActionCard(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded);var _useState=useState(_extends({},props)),allData=_useState[0],setAllData=_useState[1];var _allData$headerConten=allData.headerContent,headerContent=_allData$headerConten===void 0?"Default Action Card Title":_allData$headerConten,icon=allData.icon,_allData$bodyContent=allData.bodyContent,bodyContent=_allData$bodyContent===void 0?"Default body content. Click to edit.":_allData$bodyContent;var _useState2=useState({interactionApiInProgress:false}),attributes=_useState2[0],setAttributes=_useState2[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg shadow border w-full max-w-full min-h-[180px]";return/*#__PURE__*/_jsx(Card,_extends({className:defaultClasses,isEditable:false,contentEditable:false},rest,{children:/*#__PURE__*/_jsx(CardContent,{className:"p-0",isEditable:false,contentEditable:false,children:/*#__PURE__*/_jsx("div",{className:"px-4 py-3",children:/*#__PURE__*/_jsxs("div",{className:"flex items-start",children:[/*#__PURE__*/_jsx("span",{className:"text-5xl mr-2","aria-hidden":"true",children:icon}),/*#__PURE__*/_jsxs("div",{className:"flex-1",children:[/*#__PURE__*/_jsx("div",{className:"text-xl font-semibold",children:headerContent}),/*#__PURE__*/_jsx("div",{className:"text-base leading-relaxed mt-1",children:bodyContent})]})]})})})}))}export function renderCard(props){var _props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded2);var _useState3=useState(_extends({},props)),allData=_useState3[0],setAllData=_useState3[1];var headerContent=allData.headerContent,headerDescription=allData.headerDescription,bodyContent=allData.bodyContent,footerContent=allData.footerContent,footerClass=allData.footerClass,footerIcon=allData.footerIcon,contentMetadata=allData.contentMetadata,contentMetadataClass=allData.contentMetadataClass,className=allData.className;var _useState4=useState({interactionApiInProgress:false}),attributes=_useState4[0],setAttributes=_useState4[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg shadow border";var defaultFooterClasses="text-sm";var defaultContentMetadataClasses="text-xs";var mergedCardClassName=className?cn(defaultClasses,className):defaultClasses;var mergedFooterClassName=footerClass?cn(defaultFooterClasses,footerClass):defaultFooterClasses;var mergedContentMetadataClassName=contentMetadataClass?cn(defaultContentMetadataClasses,contentMetadataClass):defaultContentMetadataClasses;var hasFooterContent=!!((footerContent!=null?footerContent:"").trim()||(footerIcon!=null?footerIcon:"").trim());function getCardContent(){if(attributes.interactionApiInProgress){return/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsx(CardLoader,{})})}return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"headerContent",contentEditable:isEditable,className:"text-lg",children:headerContent}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"headerDescription",contentEditable:isEditable,className:"text-sm",children:headerDescription})]}),/*#__PURE__*/_jsxs(CardContent,{"data-slot":"bodyContent",contentEditable:false,children:[/*#__PURE__*/_jsx("div",{className:"text-3xl font-semibold truncate",children:bodyContent}),contentMetadata&&/*#__PURE__*/_jsx("div",{className:mergedContentMetadataClassName,style:{color:"#2A44D4"},children:contentMetadata})]}),hasFooterContent&&/*#__PURE__*/_jsxs(CardFooter,{"data-slot":"footerContent",contentEditable:isEditable,className:mergedFooterClassName,children:[footerIcon&&/*#__PURE__*/_jsx("span",{className:"mr-2","aria-hidden":"true",children:footerIcon}),footerContent]})]})}return/*#__PURE__*/_jsx(Card,_extends({},rest,{className:mergedCardClassName,children:getCardContent()}))}function renderChartComponent(chartType,data,config){switch(chartType){case"pie":return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref){var name=_ref.name,percent=_ref.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]});case"bar":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(BarChart,_extends({data:data},config.chartUi,{children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(Legend,{align:"left",wrapperStyle:{marginLeft:20}}),config.dataKeys.map(function(_ref2){var key=_ref2.key,name=_ref2.name,color=_ref2.color;return/*#__PURE__*/_jsx(Bar,{dataKey:key,fill:color!=null?color:"#4caf50",name:name,radius:2},key)}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})})]}));case"line":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(LineChart,{data:data,children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})}),config.dataKeys.map(function(_ref3){var key=_ref3.key,name=_ref3.name,color=_ref3.color;return/*#__PURE__*/_jsx(Line,{type:"monotone",dataKey:key,stroke:color!=null?color:"#4caf50",name:name},key)}),/*#__PURE__*/_jsx(Legend,{align:"left"})]});default:return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref4){var name=_ref4.name,percent=_ref4.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]})}}export function renderChart(props){var _props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded3);var _useState5=useState(_extends({},props)),allData=_useState5[0],setAllData=_useState5[1];var _useState6=useState({interactionApiInProgress:false}),attributes=_useState6[0],setAttributes=_useState6[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _allData$config=allData.config,config=_allData$config===void 0?{}:_allData$config,_allData$chartType=allData.chartType,chartType=_allData$chartType===void 0?"pie":_allData$chartType,_allData$chartData=allData.chartData,chartData=_allData$chartData===void 0?[]:_allData$chartData,className=allData.className,_allData$title=allData.title,title=_allData$title===void 0?"Title":_allData$title,_allData$subTitle=allData.subTitle,subTitle=_allData$subTitle===void 0?"Subtitle":_allData$subTitle;var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;if(chartType==="pie"){var colors=getNColors(chartData.length);for(var i=0;i<chartData.length;i++){var data=chartData[i];if(!data.fill){data.fill=colors[i]}}}else if(!config.color){config.color=baseColors[Math.floor(Math.random()*baseColors.length)]}var width=undefined;if(chartType==="bar"){var totalDataPoints=chartData.length*config.dataKeys.length;config.chartUi={};if(totalDataPoints>15){width=totalDataPoints*15+config.dataKeys.length*3*chartData.length+chartData.length*10;config.chartUi={barSize:15,barGap:3,barCategoryGap:0.5,width:width}}}function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",chartData:chartData,affectedComponents:getAffectedComponentsWithLoader([id],true),type:"chart"})}var chartUi=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(ChartLoader,{}):/*#__PURE__*/_jsx(React.Fragment,{children:chartType==="bar"&&config.chartUi?/*#__PURE__*/_jsx(ResponsiveContainer,{width:"95%",height:250,children:/*#__PURE__*/_jsxs(ScrollArea,{children:[/*#__PURE__*/_jsx("div",{className:width?"min-w-["+width+"px] w-full":"w-full",children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"95%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})});return/*#__PURE__*/_jsxs(Card,{className:"shadow border mt-2 mb-2",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}// Creating this separate component to manage loading state easily!
|
|
1
|
+
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["gjsModel"],_excluded2=["isEditable","gjsModel"],_excluded3=["isEditable","gjsModel","performInteraction"],_excluded4=["gjsModel","performInteraction"],_excluded5=["gjsModel"];import _regeneratorRuntime from"@babel/runtime/regenerator";function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}/* eslint-disable func-style *//* eslint-disable @typescript-eslint/no-empty-function *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import chroma from"chroma-js";import React,{useEffect,useState,useRef}from"react";import{theme}from"@peak-ai/ais-components/theme";import Markdown from"markdown-to-jsx";import{Loader2Icon}from"lucide-react";import{PieChart,Pie,BarChart,Bar,LineChart,Line,XAxis,YAxis,ResponsiveContainer,CartesianGrid,Legend}from"recharts";import{Button}from"../../shadcn/components/ui/button";import{Card,CardHeader,CardTitle,CardDescription,CardContent,CardFooter}from"../../shadcn/components/ui/card";import{ChartContainer,ChartTooltip,ChartTooltipContent}from"../../shadcn/components/ui/chart";import{renderFilter}from"../../shadcn/components/ui/filter";import{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{TableLoader,ChartLoader,CardLoader}from"../../shadcn/components/ui/skeleton";import{Table,TableHeader,TableRow,TableHead,TableBody,TableCell}from"../../shadcn/components/ui/table";import{Tabs,TabsList,TabsTrigger,TabsContent}from"../../shadcn/components/ui/tabs";import{cn}from"../../shadcn/utils";import{getAffectedComponentsWithLoader}from"../../helpers";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var baseColors=[[theme.colors.Blue_100,theme.colors.Blue_30],[theme.colors.Purpley_100,theme.colors.Purpley_30],[theme.colors.Light_Bluish_Green,"#06601b"],[theme.colors.Wild_Strawberry,"#4d001c"]];function getNColors(n){var colors=[];for(var _iterator=_createForOfIteratorHelperLoose(baseColors),_step;!(_step=_iterator()).done;){var baseColor=_step.value;// eslint-disable-next-line import/no-named-as-default-member
|
|
2
|
+
colors.push(chroma.scale(baseColor).mode("lab").colors(n))}function getOneColor(existing){var color=null;do{var base=colors[Math.floor(Math.random()*colors.length)];var selectedColorIndex=Math.floor(Math.random()*base.length);color=base[selectedColorIndex]}while(existing.includes(color));return color}var selectedColors=[];for(var i=0;i<n;i++){selectedColors.push(getOneColor(selectedColors))}return selectedColors}/* TODO: Loader remains */export function renderActionCard(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded);var _useState=useState(_extends({},props)),allData=_useState[0],setAllData=_useState[1];var _allData$headerConten=allData.headerContent,headerContent=_allData$headerConten===void 0?"Default Action Card Title":_allData$headerConten,icon=allData.icon,_allData$bodyContent=allData.bodyContent,bodyContent=_allData$bodyContent===void 0?"Default body content. Click to edit.":_allData$bodyContent;var _useState2=useState({interactionApiInProgress:false}),attributes=_useState2[0],setAttributes=_useState2[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full";return/*#__PURE__*/_jsx(Card,_extends({className:defaultClasses,isEditable:false,contentEditable:false},rest,{children:/*#__PURE__*/_jsx(CardContent,{className:"p-0",isEditable:false,contentEditable:false,children:/*#__PURE__*/_jsx("div",{className:"px-4 py-3",children:/*#__PURE__*/_jsxs("div",{className:"flex items-start",children:[/*#__PURE__*/_jsx("span",{className:"text-5xl mr-2","aria-hidden":"true",children:icon}),/*#__PURE__*/_jsxs("div",{className:"flex-1",children:[/*#__PURE__*/_jsx("div",{className:"text-xl font-semibold",children:headerContent}),/*#__PURE__*/_jsx("div",{className:"text-base leading-relaxed mt-1",children:bodyContent})]})]})})})}))}export function renderCard(props){var _props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded2);var _useState3=useState(_extends({},props)),allData=_useState3[0],setAllData=_useState3[1];var headerContent=allData.headerContent,headerDescription=allData.headerDescription,bodyContent=allData.bodyContent,footerContent=allData.footerContent,footerClass=allData.footerClass,footerIcon=allData.footerIcon,contentMetadata=allData.contentMetadata,contentMetadataClass=allData.contentMetadataClass,className=allData.className;var _useState4=useState({interactionApiInProgress:false}),attributes=_useState4[0],setAttributes=_useState4[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full";var defaultFooterClasses="text-sm";var defaultContentMetadataClasses="text-xs";var mergedCardClassName=className?cn(defaultClasses,className):defaultClasses;var mergedFooterClassName=footerClass?cn(defaultFooterClasses,footerClass):defaultFooterClasses;var mergedContentMetadataClassName=contentMetadataClass?cn(defaultContentMetadataClasses,contentMetadataClass):defaultContentMetadataClasses;function getCardContent(){if(attributes.interactionApiInProgress){return/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsx(CardLoader,{})})}return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"headerContent",contentEditable:isEditable,className:"text-lg",children:headerContent}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"headerDescription",contentEditable:isEditable,className:"text-sm",children:headerDescription})]}),/*#__PURE__*/_jsxs(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"flex-grow",children:[/*#__PURE__*/_jsx("div",{className:"text-3xl font-semibold truncate",children:bodyContent}),contentMetadata&&/*#__PURE__*/_jsx("div",{className:mergedContentMetadataClassName,style:{color:"#2A44D4"},children:contentMetadata})]}),/*#__PURE__*/_jsxs(CardFooter,{"data-slot":"footerContent",contentEditable:isEditable,className:cn(mergedFooterClassName),children:[footerIcon&&/*#__PURE__*/_jsx("span",{className:"mr-2","aria-hidden":"true",children:footerIcon}),footerContent]})]})}return/*#__PURE__*/_jsx(Card,_extends({},rest,{className:mergedCardClassName,children:getCardContent()}))}function renderChartComponent(chartType,data,config){switch(chartType){case"pie":return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref){var name=_ref.name,percent=_ref.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]});case"bar":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(BarChart,_extends({data:data},config.chartUi,{children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(Legend,{align:"left",wrapperStyle:{marginLeft:20}}),config.dataKeys.map(function(_ref2){var key=_ref2.key,name=_ref2.name,color=_ref2.color;return/*#__PURE__*/_jsx(Bar,{dataKey:key,fill:color!=null?color:"#4caf50",name:name,radius:2},key)}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})})]}));case"line":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(LineChart,{data:data,children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})}),config.dataKeys.map(function(_ref3){var key=_ref3.key,name=_ref3.name,color=_ref3.color;return/*#__PURE__*/_jsx(Line,{type:"monotone",dataKey:key,stroke:color!=null?color:"#4caf50",name:name},key)}),/*#__PURE__*/_jsx(Legend,{align:"left"})]});default:return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref4){var name=_ref4.name,percent=_ref4.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]})}}export function renderChart(props){var _props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded3);var _useState5=useState(_extends({},props)),allData=_useState5[0],setAllData=_useState5[1];var _useState6=useState({interactionApiInProgress:false}),attributes=_useState6[0],setAttributes=_useState6[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _allData$config=allData.config,config=_allData$config===void 0?{}:_allData$config,_allData$chartType=allData.chartType,chartType=_allData$chartType===void 0?"pie":_allData$chartType,_allData$chartData=allData.chartData,chartData=_allData$chartData===void 0?[]:_allData$chartData,className=allData.className,_allData$title=allData.title,title=_allData$title===void 0?"Title":_allData$title,_allData$subTitle=allData.subTitle,subTitle=_allData$subTitle===void 0?"Subtitle":_allData$subTitle;var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;if(chartType==="pie"){var colors=getNColors(chartData.length);for(var i=0;i<chartData.length;i++){var data=chartData[i];if(!data.fill){data.fill=colors[i]}}}else if(!config.color){config.color=baseColors[Math.floor(Math.random()*baseColors.length)]}var width=undefined;if(chartType==="bar"){var totalDataPoints=chartData.length*config.dataKeys.length;config.chartUi={};if(totalDataPoints>15){width=totalDataPoints*15+config.dataKeys.length*3*chartData.length+chartData.length*10;config.chartUi={barSize:15,barGap:3,barCategoryGap:0.5,width:width}}}function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",chartData:chartData,affectedComponents:getAffectedComponentsWithLoader([id],true),type:"chart"})}var chartUi=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(ChartLoader,{}):/*#__PURE__*/_jsx(React.Fragment,{children:chartType==="bar"&&config.chartUi?/*#__PURE__*/_jsx(ResponsiveContainer,{width:"95%",height:250,children:/*#__PURE__*/_jsxs(ScrollArea,{children:[/*#__PURE__*/_jsx("div",{className:width?"min-w-["+width+"px] w-full":"w-full",children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"95%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})});return/*#__PURE__*/_jsxs(Card,{className:"shadow border mt-2 mb-2",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}// Creating this separate component to manage loading state easily!
|
|
11
3
|
function TableButton(props){var _useState7=useState(false),loading=_useState7[0],setLoading=_useState7[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=3;return props.onClick();case 3:setLoading(false);case 4:case"end":return _context.stop()}},_callee)}));return _onClick.apply(this,arguments)}var defaultClasses="mr-2";var mergedClasses=props.className?cn(defaultClasses,props.className):defaultClasses;return/*#__PURE__*/_jsx(Button,{className:mergedClasses,onClick:!props.isEditable?onClick:function(){},disabled:props.isDisabled||loading,variant:props.variant,size:"sm",children:loading?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):props.text})}export function renderTable(props){var gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState8=useState(_extends({},props)),allData=_useState8[0],setAllData=_useState8[1];var _allData$data=allData.data,data=_allData$data===void 0?[]:_allData$data,_allData$headerMapper=allData.headerMapper,headerMapper=_allData$headerMapper===void 0?{}:_allData$headerMapper,className=allData.className,_allData$isEditable=allData.isEditable,isEditable=_allData$isEditable===void 0?false:_allData$isEditable,_allData$title2=allData.title,title=_allData$title2===void 0?"Title":_allData$title2,_allData$subTitle2=allData.subTitle,subTitle=_allData$subTitle2===void 0?"Subtitle":_allData$subTitle2,_allData$actions=allData.actions,actions=_allData$actions===void 0?[]:_allData$actions;var _useState9=useState({interactionApiInProgress:false}),attributes=_useState9[0],setAttributes=_useState9[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var parsedData=data.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData});function takeRowAction(_x,_x2){return _takeRowAction.apply(this,arguments)}function _takeRowAction(){_takeRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(rowIndex,actionId){var id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:id=gjsModel.get("id");_context2.next=3;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 3:case"end":return _context2.stop()}},_callee2)}));return _takeRowAction.apply(this,arguments)}var headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});if(actions.length>0){headers.push("")}var rows=parsedData.map(function(datum){return Object.values(datum)});var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;function renderActions(rowIndex,rowActions){if(!actions.length){return null}return/*#__PURE__*/_jsx(TableCell,{children:rowActions.map(function(action){return/*#__PURE__*/_jsx(TableButton,{className:action.className,isEditable:isEditable,onClick:function onClick(){return takeRowAction(rowIndex,action.id)},variant:action.variant,text:action.text},action.id)})})}var renderTableComponent=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(TableLoader,{}):/*#__PURE__*/_jsxs(Table,_extends({},rest,{className:"caption-bottom text-sm "+mergedClasses,"data-slot":"table",children:[/*#__PURE__*/_jsx(TableHeader,{"data-slot":"table-header",className:"sticky top-0",children:/*#__PURE__*/_jsx(TableRow,{children:headers.map(function(head,idx){return/*#__PURE__*/_jsx(TableHead,{"data-slot":"table-header-"+idx,contentEditable:isEditable,children:head},idx)})})}),/*#__PURE__*/_jsx(TableBody,{"data-slot":"table-body",children:rows.map(function(row,rIdx){return/*#__PURE__*/_jsxs(TableRow,{"data-slot":"row-"+rIdx,className:"hover:bg-muted/50 border-b transition-colors",children:[row.map(function(cell,cIdx){return/*#__PURE__*/_jsx(TableCell,{"data-slot":"cell-"+rIdx+"-"+cIdx,className:"p-2 align-middle whitespace-nowrap",contentEditable:false,children:cell},cIdx)}),renderActions(rIdx,actions)]},rIdx)})})]}));var tableData=/*#__PURE__*/_jsxs(ScrollArea,{"data-slot":"table-container",className:mergedClasses,children:[renderTableComponent,/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]});return/*#__PURE__*/_jsxs(Card,{className:"shadow border",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,children:tableData})]})}export function renderTab(props){var tabsWidth=200;if(props.tabs.length>4){tabsWidth=150}return/*#__PURE__*/_jsxs(Tabs,{defaultValue:props.defaultValue,children:[/*#__PURE__*/_jsx("div",{className:"text-center mb-4",children:/*#__PURE__*/_jsx(TabsList,{className:"bg-gray-300",children:props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsTrigger,{value:tab,className:"text-md w-["+tabsWidth+"px]",children:tab},tab)})})}),props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsContent,{value:tab,className:"tabs-content"},tab)})]})}export function renderMarkdown(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded5);var _useState10=useState(_extends({},props)),allData=_useState10[0],setAllData=_useState10[1];var _useState11=useState({interactionApiInProgress:false}),attributes=_useState11[0],setAttributes=_useState11[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _useState12=useState(false),isEditing=_useState12[0],setIsEditing=_useState12[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};// Save changes and exit editing mode
|
|
12
|
-
var saveChanges=function saveChanges(){if(!editRef.current){return}var content=editRef.current.innerText||"";setAllData(function(prev){return _extends({},prev,{summaryText:content})});setIsEditing(false);editRef.current.innerHTML=""};var markdownStyles={ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3rem]"}},h3:{props:{className:"text-2xl font-bold leading-[2rem]"}},h4:{props:{className:"text-xl font-bold leading-[2.5rem]"}},h5:{props:{className:"text-lg font-bold leading-[2.5rem]"}},h6:{props:{className:"text-base font-bold leading-[2rem]"}}};if(!allData.isEditable){return/*#__PURE__*/_jsx("div",_extends({className:"px-[1em]"},rest,{children:/*#__PURE__*/_jsx("div",{"data-slot":"summaryText",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}return/*#__PURE__*/_jsx("div",_extends({className:"p-[1em]"},rest,{children:isEditing?/*#__PURE__*/_jsx("div",{ref:editRef,contentEditable:true,onBlur:saveChanges,"data-slot":"summaryText",className:"p-2 min-h-[100px] whitespace-pre-wrap",suppressContentEditableWarning:true,style:{whiteSpace:"pre-wrap",wordWrap:"break-word"}}):/*#__PURE__*/_jsx("div",{onClick:startEditing,"data-slot":"summaryText",style:{whiteSpace:"pre-wrap",wordWrap:"break-word"},children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}export function renderButton(props){var _props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,gjsModel=props.gjsModel,_props$performInterac3=props.performInteraction,performInteraction=_props$performInterac3===void 0?function(){}:_props$performInterac3;var _useState13=useState(_extends({},props)),allData=_useState13[0],setAllData=_useState13[1];var _useState14=useState({interactionApiInProgress:false}),attributes=_useState14[0],setAttributes=_useState14[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var text=allData.text,icon=allData.icon,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(Button,{className:className,onClick:!isEditable?interact:function(){},disabled:attributes.interactionApiInProgress,variant:variant,size:size,contentEditable:isEditable,children:attributes.interactionApiInProgress?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):text})}
|
|
13
|
-
// const { isEditable = false, gjsModel, performInteraction = () => {} } = props;
|
|
14
|
-
// const [allData, setAllData] = useState({ ...props });
|
|
15
|
-
// const [attributes, setAttributes] = useState({ interactionApiInProgress: false });
|
|
16
|
-
// useEffect(() => {
|
|
17
|
-
// gjsModel.on('change:componentProps', () => {
|
|
18
|
-
// setAllData({ ...gjsModel.get('componentProps') });
|
|
19
|
-
// });
|
|
20
|
-
// }, [gjsModel]);
|
|
21
|
-
// useEffect(() => {
|
|
22
|
-
// gjsModel.on('change:attributes', () => {
|
|
23
|
-
// setAttributes({ ...gjsModel.get('attributes') });
|
|
24
|
-
// });
|
|
25
|
-
// }, [gjsModel]);
|
|
26
|
-
// const {
|
|
27
|
-
// filterKey,
|
|
28
|
-
// options = [] as Array<{ label: string; value: string }>,
|
|
29
|
-
// value,
|
|
30
|
-
// allowClear = false,
|
|
31
|
-
// className = '',
|
|
32
|
-
// affectedComponents = [] as string[],
|
|
33
|
-
// id,
|
|
34
|
-
// } = allData;
|
|
35
|
-
// function onChange(newVal: string) {
|
|
36
|
-
// performInteraction({
|
|
37
|
-
// interactionType: 'filter',
|
|
38
|
-
// filterKey,
|
|
39
|
-
// value: newVal,
|
|
40
|
-
// id,
|
|
41
|
-
// affectedComponents: [id, ...affectedComponents],
|
|
42
|
-
// });
|
|
43
|
-
// }
|
|
44
|
-
// return (
|
|
45
|
-
// <div className={`${className} relative`}>
|
|
46
|
-
// <Select
|
|
47
|
-
// value={value}
|
|
48
|
-
// onValueChange={onChange}
|
|
49
|
-
// disabled={isEditable || attributes.interactionApiInProgress}
|
|
50
|
-
// >
|
|
51
|
-
// <SelectTrigger className="w-56">
|
|
52
|
-
// <SelectValue placeholder="Select…" />
|
|
53
|
-
// </SelectTrigger>
|
|
54
|
-
// <SelectContent>
|
|
55
|
-
// {allowClear && <SelectItem value="">— clear —</SelectItem>}
|
|
56
|
-
// {options.map((opt: any) => (
|
|
57
|
-
// <SelectItem key={opt.value} value={opt.value}>
|
|
58
|
-
// {opt.label}
|
|
59
|
-
// </SelectItem>
|
|
60
|
-
// ))}
|
|
61
|
-
// </SelectContent>
|
|
62
|
-
// </Select>
|
|
63
|
-
// {attributes.interactionApiInProgress && (
|
|
64
|
-
// <Loader2Icon className="absolute right-2 top-2 animate-spin text-gray-500" size={16} />
|
|
65
|
-
// )}
|
|
66
|
-
// </div>
|
|
67
|
-
// );
|
|
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;// 1) local “open” state for the popover
|
|
70
|
-
var _useState15=useState(false),open=_useState15[0],setOpen=_useState15[1];var _useState16=useState(_extends({},props)),allData=_useState16[0],setAllData=_useState16[1];var _useState17=useState({interactionApiInProgress:false}),attributes=_useState17[0],setAttributes=_useState17[1];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;// 2) buffer selection locally
|
|
71
|
-
var _useState18=useState(value),localSel=_useState18[0],setLocalSel=_useState18[1];useEffect(function(){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)});// 4) close the popover once we’ve kicked off the API
|
|
72
|
-
setOpen(false)};return/*#__PURE__*/_jsxs(Popover,{open:open,onOpenChange:setOpen,children:[/*#__PURE__*/_jsx(PopoverTrigger,{asChild:true,children:/*#__PURE__*/_jsxs(Button,{variant:"outline",size:"sm",className:className,disabled:isEditable||attributes.interactionApiInProgress,onClick:function onClick(){setOpen(true)},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__*/_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 {
|
|
73
|
-
// const { type, ...rest } = props;
|
|
74
|
-
// return type === 'multi' ? renderFilterMulti(rest) : renderFilterSelect(rest);
|
|
75
|
-
// }
|
|
76
|
-
export function getRenderers(){return{ActionCard:renderActionCard,Card:renderCard,Chart:renderChart,Markdown:renderMarkdown,Table:renderTable,Tabs:renderTab,Button:renderButton,filter:renderFilterMulti}}
|
|
4
|
+
var saveChanges=function saveChanges(){if(!editRef.current){return}var content=editRef.current.innerText||"";setAllData(function(prev){return _extends({},prev,{summaryText:content})});setIsEditing(false);editRef.current.innerHTML=""};var markdownStyles={ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3rem]"}},h3:{props:{className:"text-2xl font-bold leading-[2rem]"}},h4:{props:{className:"text-xl font-bold leading-[2.5rem]"}},h5:{props:{className:"text-lg font-bold leading-[2.5rem]"}},h6:{props:{className:"text-base font-bold leading-[2rem]"}}};if(!allData.isEditable){return/*#__PURE__*/_jsx("div",_extends({className:"px-[1em]"},rest,{children:/*#__PURE__*/_jsx("div",{"data-slot":"summaryText",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}return/*#__PURE__*/_jsx("div",_extends({className:"p-[1em]"},rest,{children:isEditing?/*#__PURE__*/_jsx("div",{ref:editRef,contentEditable:true,onBlur:saveChanges,"data-slot":"summaryText",className:"p-2 min-h-[100px] whitespace-pre-wrap",suppressContentEditableWarning:true,style:{whiteSpace:"pre-wrap",wordWrap:"break-word"}}):/*#__PURE__*/_jsx("div",{onClick:startEditing,"data-slot":"summaryText",style:{whiteSpace:"pre-wrap",wordWrap:"break-word"},children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}export function renderButton(props){var _props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,gjsModel=props.gjsModel,_props$performInterac3=props.performInteraction,performInteraction=_props$performInterac3===void 0?function(){}:_props$performInterac3;var _useState13=useState(_extends({},props)),allData=_useState13[0],setAllData=_useState13[1];var _useState14=useState({interactionApiInProgress:false}),attributes=_useState14[0],setAttributes=_useState14[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var text=allData.text,icon=allData.icon,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(Button,{className:className,onClick:!isEditable?interact:function(){},disabled:attributes.interactionApiInProgress,variant:variant,size:size,contentEditable:isEditable,children:attributes.interactionApiInProgress?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):text})}export function getRenderers(){return{ActionCard:renderActionCard,Button:renderButton,Card:renderCard,Chart:renderChart,Filter:renderFilter,Markdown:renderMarkdown,Table:renderTable,Tabs:renderTab}}
|
|
77
5
|
//# sourceMappingURL=render-components.js.map
|
|
@@ -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","open","setOpen","_useState16","_useState17","filterKey","_allData$options","_allData$value","_allData$className","_allData$affectedComp","_useState18","localSel","setLocalSel","toggleOption","optValue","filter","v","applyFilters","onOpenChange","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 { Popover, PopoverTrigger, PopoverContent, PopoverClose } 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 = () => {} } = props;\n\n // 1) local “open” state for the popover\n const [open, setOpen] = useState(false);\n\n const [allData, setAllData] = useState({ ...props });\n const [attributes, setAttributes] = useState({ interactionApiInProgress: false });\n\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 // 2) buffer selection locally\n const [localSel, setLocalSel] = useState<string[]>(value);\n useEffect(() => {\n setLocalSel(value);\n }, [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 // 4) close the popover once we’ve kicked off the API\n setOpen(false);\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={className}\n disabled={isEditable || attributes.interactionApiInProgress}\n onClick={() => {\n setOpen(true);\n }}\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 <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 <div className=\"flex space-x-2\">\n {/* 3) allow closing without applying */}\n <PopoverClose asChild>\n <Button variant=\"ghost\" size=\"sm\">\n Cancel\n </Button>\n </PopoverClose>\n\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 </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","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","Button","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","renderFilter","ScrollArea","ScrollBar","TableLoader","ChartLoader","CardLoader","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","Tabs","TabsList","TabsTrigger","TabsContent","cn","getAffectedComponentsWithLoader","jsx","_jsx","jsxs","_jsxs","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","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","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","map","_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","affectedComponents","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","getRenderers","ActionCard","Chart","Filter"],"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';\n\nimport Markdown from 'markdown-to-jsx';\nimport { Loader2Icon } from 'lucide-react';\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';\n\nimport { Button } from '../../shadcn/components/ui/button';\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';\nimport { renderFilter } from '../../shadcn/components/ui/filter';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport { TableLoader, ChartLoader, CardLoader } from '../../shadcn/components/ui/skeleton';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableBody,\n TableCell,\n} from '../../shadcn/components/ui/table';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../shadcn/components/ui/tabs';\n\nimport { cn } from '../../shadcn/utils';\nimport { getAffectedComponentsWithLoader } from '../../helpers';\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 getNColors(n: number) {\n const colors: Array<string[]> = [];\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 = 'bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full';\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 <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 flex flex-col h-full';\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 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} className=\"flex-grow\">\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 <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={cn(mergedFooterClassName)}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\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\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Button: renderButton,\n Card: renderCard,\n Chart: renderChart,\n Filter: renderFilter,\n Markdown: renderMarkdown,\n Table: renderTable,\n Tabs: renderTab,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
4
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
|
-
size?: "
|
|
5
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
7
7
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
8
8
|
asChild?: boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type FilterProps = {
|
|
2
|
+
isEditable?: boolean;
|
|
3
|
+
gjsModel: any;
|
|
4
|
+
performInteraction: (payload: Record<string, any>) => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export declare function renderFilter({ gjsModel, performInteraction }: FilterProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import{useCallback,useEffect,useRef,useState}from"react";import{ChevronDown,ChevronUp,ListFilter as FilterIcon,Loader2Icon}from"lucide-react";import{Button}from"./button";import{Checkbox}from"./checkbox";import{ScrollArea}from"./scroll-area";import{getAffectedComponentsWithLoader}from"../../../helpers";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function FilterHeader(_ref){var label=_ref.label,count=_ref.count,isDisabled=_ref.isDisabled,isDropdownOpen=_ref.isDropdownOpen,isLoading=_ref.isLoading,toggleOpen=_ref.toggleOpen;var ChevronIcon=isDropdownOpen?ChevronUp:ChevronDown;return/*#__PURE__*/_jsxs(Button,{variant:"outline",size:"sm",disabled:isDisabled,onClick:toggleOpen,className:"px-2",children:[/*#__PURE__*/_jsx(FilterIcon,{size:16}),count>0?label+" ("+count+")":label,isLoading?/*#__PURE__*/_jsx(Loader2Icon,{className:"ml-2 animate-spin",size:16}):/*#__PURE__*/_jsx(ChevronIcon,{size:16,className:"ml-1"})]})}function FilterActions(_ref2){var selected=_ref2.selected,allSelected=_ref2.allSelected,onClear=_ref2.onClear,onSelectAll=_ref2.onSelectAll,isDisabled=_ref2.isDisabled;return/*#__PURE__*/_jsxs("div",{className:"flex items-center mb-3",children:[/*#__PURE__*/_jsx(Checkbox,{checked:allSelected,onCheckedChange:function onCheckedChange(){return allSelected?onClear():onSelectAll()},disabled:isDisabled}),/*#__PURE__*/_jsx("span",{className:"ml-2 text-sm text-gray-900",children:"Select All"}),selected.length>0&&/*#__PURE__*/_jsx("button",{type:"button",className:"ml-auto text-sm text-blue-600 hover:underline",onMouseDown:function onMouseDown(e){e.stopPropagation();e.preventDefault()},onClick:onClear,disabled:isDisabled,children:"Clear All"})]})}function FilterOptionList(_ref3){var options=_ref3.options,selected=_ref3.selected,onToggle=_ref3.onToggle,isDisabled=_ref3.isDisabled;return/*#__PURE__*/_jsx(ScrollArea,{viewportClassName:"max-h-48 overflow-y-auto mb-4 space-y-2",children:options.length>0?options.map(function(opt){return/*#__PURE__*/_jsxs("label",{className:"flex items-center space-x-2 hover:bg-gray-100 rounded p-1 transition",children:[/*#__PURE__*/_jsx(Checkbox,{checked:selected.includes(opt.value),onCheckedChange:function onCheckedChange(){return onToggle(opt.value)},disabled:isDisabled}),/*#__PURE__*/_jsx("span",{className:"text-sm text-gray-900",children:opt.label})]},opt.value)}):/*#__PURE__*/_jsx("div",{className:"text-sm text-gray-500",children:"No results found"})})}export function renderFilter(_ref4){var gjsModel=_ref4.gjsModel,performInteraction=_ref4.performInteraction;var wrapperRef=useRef(null);var _useState=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState[0],setComponentData=_useState[1];var _useState2=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState2[0],setAttributes=_useState2[1];var _useState3=useState(false),isDropdownOpen=_useState3[0],setIsDropdownOpen=_useState3[1];var _useState4=useState(""),searchQuery=_useState4[0],setSearchQuery=_useState4[1];var _useState5=useState(false),isApplying=_useState5[0],setIsApplying=_useState5[1];var _componentData$option=componentData.options,options=_componentData$option===void 0?[]:_componentData$option,_componentData$value=componentData.value,value=_componentData$value===void 0?[]:_componentData$value,_componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$text=componentData.text,label=_componentData$text===void 0?"Filter":_componentData$text,_componentData$filter=componentData.filterType,filterType=_componentData$filter===void 0?"multiselect":_componentData$filter;var defaultValue=componentData["default"]||[];var _useState6=useState(function(){return Array.isArray(value)&&value.length>0?value:defaultValue}),selectedValues=_useState6[0],setSelectedValues=_useState6[1];var isMultiSelect=filterType==="multiselect";var isBusy=attributes.interactionApiInProgress||isApplying;var allOptionsSelected=selectedValues.length===options.length&&options.length>0;useEffect(function(){function updateComponentData(){setComponentData(_extends({},gjsModel.get("componentProps")))}function updateAttributes(){setAttributes(_extends({},gjsModel.get("attributes")))}gjsModel.on("change:componentProps",updateComponentData);gjsModel.on("change:attributes",updateAttributes);return function(){gjsModel.off("change:componentProps",updateComponentData);gjsModel.off("change:attributes",updateAttributes)}},[gjsModel]);useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){setIsDropdownOpen(false)}}function handleEscape(e){if(e.key==="Escape"){setIsDropdownOpen(false)}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);var filteredOptions=options.filter(function(opt){return opt.label.toLowerCase().includes(searchQuery.toLowerCase())});function updateAndApply(_x){return _updateAndApply.apply(this,arguments)}function _updateAndApply(){_updateAndApply=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(newValues){var id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(newValues===void 0){newValues=selectedValues}setIsApplying(true);_context.prev=2;gjsModel.set("componentProps",_extends({},gjsModel.get("componentProps"),{value:newValues}));id=gjsModel.get("id");_context.next=7;return performInteraction({interactionType:"filter",id:id,affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true)});case 7:_context.prev=7;setIsApplying(false);setIsDropdownOpen(false);return _context.finish(7);case 11:case"end":return _context.stop()}},_callee,null,[[2,,7,11]])}));return _updateAndApply.apply(this,arguments)}var handleOptionToggle=useCallback(function(val){if(isMultiSelect){setSelectedValues(function(prev){return prev.includes(val)?prev.filter(function(v){return v!==val}):[].concat(prev,[val])})}else{if(selectedValues.includes(val)){setSelectedValues([]);updateAndApply([])}else{var singleValue=[val];setSelectedValues(singleValue);updateAndApply(singleValue)}}},[isMultiSelect,selectedValues]);function handleClearAll(){setSelectedValues([])}function handleSelectAll(){setSelectedValues(options.map(function(o){return o.value}))}return/*#__PURE__*/_jsxs("div",{ref:wrapperRef,className:"relative inline-block "+className,style:{color:"#2A44D4",backgroundColor:"rgb(255 255 255)"},children:[/*#__PURE__*/_jsx(FilterHeader,{label:label,count:selectedValues.length,isDisabled:isBusy,isDropdownOpen:isDropdownOpen,isLoading:isBusy,toggleOpen:function toggleOpen(){return setIsDropdownOpen(function(prev){return!prev})}}),isDropdownOpen&&/*#__PURE__*/_jsxs("div",{className:"absolute right-0 top-full mt-2 w-64 bg-white border rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 p-4 z-50",children:[/*#__PURE__*/_jsx("input",{type:"text",placeholder:"Search...",value:searchQuery,onChange:function onChange(e){return setSearchQuery(e.target.value)},className:"w-full mb-3 px-2 py-1 border rounded focus:outline-none",disabled:isBusy}),isMultiSelect&&/*#__PURE__*/_jsx(FilterActions,{selected:selectedValues,allSelected:allOptionsSelected,onClear:handleClearAll,onSelectAll:handleSelectAll,isDisabled:isBusy}),/*#__PURE__*/_jsx(FilterOptionList,{options:filteredOptions,selected:selectedValues,onToggle:handleOptionToggle,isDisabled:isBusy}),isMultiSelect&&/*#__PURE__*/_jsxs("div",{className:"flex justify-end space-x-2",children:[/*#__PURE__*/_jsx(Button,{variant:"ghost",size:"sm",onClick:function onClick(){return setIsDropdownOpen(false)},disabled:isApplying,children:"Cancel"}),/*#__PURE__*/_jsxs(Button,{variant:"default",size:"sm",onClick:function onClick(){return updateAndApply(selectedValues)},disabled:isBusy,children:[isApplying&&/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin mr-2",size:16}),"Apply"]})]})]})]})}
|
|
2
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","names":["useCallback","useEffect","useRef","useState","ChevronDown","ChevronUp","ListFilter","FilterIcon","Loader2Icon","Button","Checkbox","ScrollArea","getAffectedComponentsWithLoader","jsx","_jsx","jsxs","_jsxs","FilterHeader","_ref","label","count","isDisabled","isDropdownOpen","isLoading","toggleOpen","ChevronIcon","variant","size","disabled","onClick","className","children","FilterActions","_ref2","selected","allSelected","onClear","onSelectAll","checked","onCheckedChange","length","type","onMouseDown","e","stopPropagation","preventDefault","FilterOptionList","_ref3","options","onToggle","viewportClassName","map","opt","includes","value","renderFilter","_ref4","gjsModel","performInteraction","wrapperRef","_useState","_extends","get","componentData","setComponentData","_useState2","attributes","setAttributes","_useState3","setIsDropdownOpen","_useState4","searchQuery","setSearchQuery","_useState5","isApplying","setIsApplying","_componentData$option","_componentData$value","_componentData$classN","_componentData$affect","affectedComponents","_componentData$text","text","_componentData$filter","filterType","defaultValue","_useState6","Array","isArray","selectedValues","setSelectedValues","isMultiSelect","isBusy","interactionApiInProgress","allOptionsSelected","updateComponentData","updateAttributes","on","off","_wrapperRef$current$o","_wrapperRef$current","doc","current","ownerDocument","document","handleOutsideClick","contains","target","handleEscape","key","addEventListener","removeEventListener","filteredOptions","filter","toLowerCase","updateAndApply","_x","_updateAndApply","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newValues","id","wrap","_callee$","_context","prev","next","set","interactionType","concat","finish","stop","handleOptionToggle","val","v","singleValue","handleClearAll","handleSelectAll","o","ref","style","color","backgroundColor","placeholder","onChange"],"sources":["../../../../src/shadcn/components/ui/filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDown, ChevronUp, ListFilter as FilterIcon, Loader2Icon } from 'lucide-react';\n\nimport { Button } from './button';\nimport { Checkbox } from './checkbox';\nimport { ScrollArea } from './scroll-area';\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\n\ntype FilterOption = {\n label: string;\n value: string;\n};\n\ntype FilterProps = {\n isEditable?: boolean;\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n};\n\ntype FilterHeaderProps = {\n label: string;\n count: number;\n isDisabled: boolean;\n isDropdownOpen: boolean;\n isLoading: boolean;\n toggleOpen: () => void;\n};\n\ntype FilterActionsProps = {\n selected: string[];\n allSelected: boolean;\n onClear: () => void;\n onSelectAll: () => void;\n isDisabled: boolean;\n};\n\ntype FilterOptionListProps = {\n options: FilterOption[];\n selected: string[];\n onToggle: (value: string) => void;\n isDisabled: boolean;\n};\n\nfunction FilterHeader({\n label,\n count,\n isDisabled,\n isDropdownOpen,\n isLoading,\n toggleOpen,\n}: FilterHeaderProps) {\n const ChevronIcon = isDropdownOpen ? ChevronUp : ChevronDown;\n\n return (\n <Button variant=\"outline\" size=\"sm\" disabled={isDisabled} onClick={toggleOpen} className=\"px-2\">\n <FilterIcon size={16} />\n {count > 0 ? `${label} (${count})` : label}\n {isLoading ? (\n <Loader2Icon className=\"ml-2 animate-spin\" size={16} />\n ) : (\n <ChevronIcon size={16} className=\"ml-1\" />\n )}\n </Button>\n );\n}\n\nfunction FilterActions({\n selected,\n allSelected,\n onClear,\n onSelectAll,\n isDisabled,\n}: FilterActionsProps) {\n return (\n <div className=\"flex items-center mb-3\">\n <Checkbox\n checked={allSelected}\n onCheckedChange={() => (allSelected ? onClear() : onSelectAll())}\n disabled={isDisabled}\n />\n <span className=\"ml-2 text-sm text-gray-900\">Select All</span>\n {selected.length > 0 && (\n <button\n type=\"button\"\n className=\"ml-auto text-sm text-blue-600 hover:underline\"\n onMouseDown={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n onClick={onClear}\n disabled={isDisabled}\n >\n Clear All\n </button>\n )}\n </div>\n );\n}\n\nfunction FilterOptionList({ options, selected, onToggle, isDisabled }: FilterOptionListProps) {\n return (\n <ScrollArea viewportClassName=\"max-h-48 overflow-y-auto mb-4 space-y-2\">\n {options.length > 0 ? (\n options.map((opt) => (\n <label\n key={opt.value}\n className=\"flex items-center space-x-2 hover:bg-gray-100 rounded p-1 transition\"\n >\n <Checkbox\n checked={selected.includes(opt.value)}\n onCheckedChange={() => onToggle(opt.value)}\n disabled={isDisabled}\n />\n <span className=\"text-sm text-gray-900\">{opt.label}</span>\n </label>\n ))\n ) : (\n <div className=\"text-sm text-gray-500\">No results found</div>\n )}\n </ScrollArea>\n );\n}\n\nexport function renderFilter({ gjsModel, performInteraction }: FilterProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [isApplying, setIsApplying] = useState(false);\n\n const {\n options = [],\n value = [],\n className = '',\n affectedComponents = [],\n text: label = 'Filter',\n filterType = 'multiselect',\n } = componentData;\n\n const defaultValue = componentData.default || [];\n\n const [selectedValues, setSelectedValues] = useState<string[]>(() => {\n return Array.isArray(value) && value.length > 0 ? value : defaultValue;\n });\n\n const isMultiSelect = filterType === 'multiselect';\n const isBusy = attributes.interactionApiInProgress || isApplying;\n const allOptionsSelected = selectedValues.length === options.length && options.length > 0;\n\n useEffect(() => {\n function updateComponentData() {\n setComponentData({ ...gjsModel.get('componentProps') });\n }\n\n function updateAttributes() {\n setAttributes({ ...gjsModel.get('attributes') });\n }\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setIsDropdownOpen(false);\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n setIsDropdownOpen(false);\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n const filteredOptions = options.filter((opt: FilterOption) =>\n opt.label.toLowerCase().includes(searchQuery.toLowerCase()),\n );\n\n async function updateAndApply(newValues: string[] = selectedValues) {\n setIsApplying(true);\n\n try {\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: newValues,\n });\n\n const id = gjsModel.get('id');\n\n await performInteraction({\n interactionType: 'filter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n } finally {\n setIsApplying(false);\n setIsDropdownOpen(false);\n }\n }\n\n const handleOptionToggle = useCallback(\n (val: string) => {\n if (isMultiSelect) {\n setSelectedValues((prev) =>\n prev.includes(val) ? prev.filter((v) => v !== val) : [...prev, val],\n );\n } else {\n if (selectedValues.includes(val)) {\n setSelectedValues([]);\n updateAndApply([]);\n } else {\n const singleValue = [val];\n setSelectedValues(singleValue);\n updateAndApply(singleValue);\n }\n }\n },\n [isMultiSelect, selectedValues],\n );\n\n function handleClearAll() {\n setSelectedValues([]);\n }\n\n function handleSelectAll() {\n setSelectedValues(options.map((o: FilterOption) => o.value));\n }\n\n return (\n <div\n ref={wrapperRef}\n className={`relative inline-block ${className}`}\n style={{ color: '#2A44D4', backgroundColor: 'rgb(255 255 255)' }}\n >\n <FilterHeader\n label={label}\n count={selectedValues.length}\n isDisabled={isBusy}\n isDropdownOpen={isDropdownOpen}\n isLoading={isBusy}\n toggleOpen={() => setIsDropdownOpen((prev) => !prev)}\n />\n\n {isDropdownOpen && (\n <div className=\"absolute right-0 top-full mt-2 w-64 bg-white border rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 p-4 z-50\">\n <input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full mb-3 px-2 py-1 border rounded focus:outline-none\"\n disabled={isBusy}\n />\n\n {isMultiSelect && (\n <FilterActions\n selected={selectedValues}\n allSelected={allOptionsSelected}\n onClear={handleClearAll}\n onSelectAll={handleSelectAll}\n isDisabled={isBusy}\n />\n )}\n\n <FilterOptionList\n options={filteredOptions}\n selected={selectedValues}\n onToggle={handleOptionToggle}\n isDisabled={isBusy}\n />\n\n {isMultiSelect && (\n <div className=\"flex justify-end space-x-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsDropdownOpen(false)}\n disabled={isApplying}\n >\n Cancel\n </Button>\n <Button\n variant=\"default\"\n size=\"sm\"\n onClick={() => updateAndApply(selectedValues)}\n disabled={isBusy}\n >\n {isApplying && <Loader2Icon className=\"animate-spin mr-2\" size={16} />}Apply\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
3
|
-
|
|
3
|
+
type ScrollAreaProps = {
|
|
4
|
+
viewportClassName?: string;
|
|
5
|
+
} & React.ComponentProps<typeof ScrollAreaPrimitive.Root>;
|
|
6
|
+
declare function ScrollArea({ className, children, viewportClassName, ...props }: ScrollAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
4
7
|
declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
|
|
5
8
|
export { ScrollArea, ScrollBar };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className","children"],_excluded2=["className","orientation"];import*as React from"react";import*as ScrollAreaPrimitive from"@radix-ui/react-scroll-area";import{cn}from"../../utils";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function ScrollArea(_ref){var className=_ref.className,children=_ref.children,props=_objectWithoutPropertiesLoose(_ref,_excluded);return/*#__PURE__*/_jsxs(ScrollAreaPrimitive.Root,_extends({"data-slot":"scroll-area",className:cn("relative",className)},props,{children:[/*#__PURE__*/_jsx(ScrollAreaPrimitive.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className","children","viewportClassName"],_excluded2=["className","orientation"];import*as React from"react";import*as ScrollAreaPrimitive from"@radix-ui/react-scroll-area";import{cn}from"../../utils";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function ScrollArea(_ref){var className=_ref.className,children=_ref.children,viewportClassName=_ref.viewportClassName,props=_objectWithoutPropertiesLoose(_ref,_excluded);return/*#__PURE__*/_jsxs(ScrollAreaPrimitive.Root,_extends({"data-slot":"scroll-area",className:cn("relative",className)},props,{children:[/*#__PURE__*/_jsx(ScrollAreaPrimitive.Viewport,{"data-slot":"scroll-area-viewport",className:cn("focus-visible:ring-ring/50 rounded-[inherit] outline-none focus-visible:ring-[3px]","h-full w-full",viewportClassName),children:children}),/*#__PURE__*/_jsx(ScrollBar,{}),/*#__PURE__*/_jsx(ScrollAreaPrimitive.Corner,{})]}))}function ScrollBar(_ref2){var className=_ref2.className,_ref2$orientation=_ref2.orientation,orientation=_ref2$orientation===void 0?"vertical":_ref2$orientation,props=_objectWithoutPropertiesLoose(_ref2,_excluded2);return/*#__PURE__*/_jsx(ScrollAreaPrimitive.ScrollAreaScrollbar,_extends({"data-slot":"scroll-area-scrollbar",orientation:orientation,className:cn("flex touch-none p-px transition-colors select-none",orientation==="vertical"&&"h-full w-2.5 border-l border-l-transparent",orientation==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",className)},props,{children:/*#__PURE__*/_jsx(ScrollAreaPrimitive.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})}))}export{ScrollArea,ScrollBar};
|
|
2
2
|
//# sourceMappingURL=scroll-area.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.js","names":["React","ScrollAreaPrimitive","cn","jsx","_jsx","jsxs","_jsxs","ScrollArea","_ref","className","children","props","_objectWithoutPropertiesLoose","_excluded","Root","_extends","Viewport","ScrollBar","Corner","_ref2","_ref2$orientation","orientation","_excluded2","ScrollAreaScrollbar","ScrollAreaThumb"],"sources":["../../../../src/shadcn/components/ui/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '../../utils';\n\
|
|
1
|
+
{"version":3,"file":"scroll-area.js","names":["React","ScrollAreaPrimitive","cn","jsx","_jsx","jsxs","_jsxs","ScrollArea","_ref","className","children","viewportClassName","props","_objectWithoutPropertiesLoose","_excluded","Root","_extends","Viewport","ScrollBar","Corner","_ref2","_ref2$orientation","orientation","_excluded2","ScrollAreaScrollbar","ScrollAreaThumb"],"sources":["../../../../src/shadcn/components/ui/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '../../utils';\n\ntype ScrollAreaProps = {\n viewportClassName?: string;\n} & React.ComponentProps<typeof ScrollAreaPrimitive.Root>;\n\nfunction ScrollArea({ className, children, viewportClassName, ...props }: ScrollAreaProps) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn('relative', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn(\n 'focus-visible:ring-ring/50 rounded-[inherit] outline-none focus-visible:ring-[3px]',\n 'h-full w-full',\n viewportClassName,\n )}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n 'flex touch-none p-px transition-colors select-none',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent',\n orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":"sPAAA,MAAO,GAAK,CAAAA,KAAK,KAAM,OAAO,CAC9B,MAAO,GAAK,CAAAC,mBAAmB,KAAM,6BAA6B,CAElE,OAASC,EAAE,KAAQ,aAAa,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAMjC,QAAS,CAAAC,UAAUA,CAAAC,IAAA,CAAwE,IAArE,CAAAC,SAAS,CAAAD,IAAA,CAATC,SAAS,CAAEC,QAAQ,CAAAF,IAAA,CAARE,QAAQ,CAAEC,iBAAiB,CAAAH,IAAA,CAAjBG,iBAAiB,CAAKC,KAAK,CAAAC,6BAAA,CAAAL,IAAA,CAAAM,SAAA,EACpE,mBACER,KAAA,CAACL,mBAAmB,CAACc,IAAI,CAAAC,QAAA,EACvB,YAAU,aAAa,CACvBP,SAAS,CAAEP,EAAE,CAAC,UAAU,CAAEO,SAAS,CAAE,EACjCG,KAAK,EAAAF,QAAA,eAETN,IAAA,CAACH,mBAAmB,CAACgB,QAAQ,EAC3B,YAAU,sBAAsB,CAChCR,SAAS,CAAEP,EAAE,CACX,oFAAoF,CACpF,eAAe,CACfS,iBACF,CAAE,CAAAD,QAAA,CAEDA,QAAQ,CACmB,CAAC,cAC/BN,IAAA,CAACc,SAAS,GAAE,CAAC,cACbd,IAAA,CAACH,mBAAmB,CAACkB,MAAM,GAAE,CAAC,GACN,CAE9B,CAEA,QAAS,CAAAD,SAASA,CAAAE,KAAA,CAIuD,IAHvE,CAAAX,SAAS,CAAAW,KAAA,CAATX,SAAS,CAAAY,iBAAA,CAAAD,KAAA,CACTE,WAAW,CAAXA,WAAW,CAAAD,iBAAA,UAAG,UAAU,CAAAA,iBAAA,CACrBT,KAAK,CAAAC,6BAAA,CAAAO,KAAA,CAAAG,UAAA,EAER,mBACEnB,IAAA,CAACH,mBAAmB,CAACuB,mBAAmB,CAAAR,QAAA,EACtC,YAAU,uBAAuB,CACjCM,WAAW,CAAEA,WAAY,CACzBb,SAAS,CAAEP,EAAE,CACX,oDAAoD,CACpDoB,WAAW,GAAK,UAAU,EAAI,4CAA4C,CAC1EA,WAAW,GAAK,YAAY,EAAI,8CAA8C,CAC9Eb,SACF,CAAE,EACEG,KAAK,EAAAF,QAAA,cAETN,IAAA,CAACH,mBAAmB,CAACwB,eAAe,EAClC,YAAU,mBAAmB,CAC7BhB,SAAS,CAAC,wCAAwC,CACnD,CAAC,EACqC,CAE7C,CAEA,OAASF,UAAU,CAAEW,SAAS","ignoreList":[]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
3
|
-
declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
declare function PopoverClose({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose };
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _extends from"@babel/runtime/helpers/extends";var _excluded=["className","align","sideOffset"];import*as React from"react";import*as PopoverPrimitive from"@radix-ui/react-popover";import{cn}from"../../utils";import{jsx as _jsx}from"react/jsx-runtime";function Popover(_ref){var props=_extends({},(_objectDestructuringEmpty(_ref),_ref));return/*#__PURE__*/_jsx(PopoverPrimitive.Root,_extends({"data-slot":"popover"},props))}function PopoverTrigger(_ref2){var props=_extends({},(_objectDestructuringEmpty(_ref2),_ref2));return/*#__PURE__*/_jsx(PopoverPrimitive.Trigger,_extends({"data-slot":"popover-trigger"},props))}function PopoverClose(_ref3){var props=_extends({},(_objectDestructuringEmpty(_ref3),_ref3));return/*#__PURE__*/_jsx(PopoverPrimitive.Close,_extends({"data-slot":"popover-close"},props))}function PopoverContent(_ref4){var className=_ref4.className,_ref4$align=_ref4.align,align=_ref4$align===void 0?"center":_ref4$align,_ref4$sideOffset=_ref4.sideOffset,sideOffset=_ref4$sideOffset===void 0?4:_ref4$sideOffset,props=_objectWithoutPropertiesLoose(_ref4,_excluded);return/*#__PURE__*/_jsx(PopoverPrimitive.Portal,{children:/*#__PURE__*/_jsx(PopoverPrimitive.Content,_extends({"data-slot":"popover-content",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-hidden",className)},props))})}function PopoverAnchor(_ref5){var props=_extends({},(_objectDestructuringEmpty(_ref5),_ref5));return/*#__PURE__*/_jsx(PopoverPrimitive.Anchor,_extends({"data-slot":"popover-anchor"},props))}export{Popover,PopoverTrigger,PopoverContent,PopoverAnchor,PopoverClose};
|
|
2
|
-
//# sourceMappingURL=popover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","names":["React","PopoverPrimitive","cn","jsx","_jsx","Popover","_ref","props","_extends","_objectDestructuringEmpty","Root","PopoverTrigger","_ref2","Trigger","PopoverClose","_ref3","Close","PopoverContent","_ref4","className","_ref4$align","align","_ref4$sideOffset","sideOffset","_objectWithoutPropertiesLoose","_excluded","Portal","children","Content","PopoverAnchor","_ref5","Anchor"],"sources":["../../../../src/shadcn/components/ui/popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '../../utils';\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverClose({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Close>) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n '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-hidden',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose };\n"],"mappings":"4RAAA,MAAO,GAAK,CAAAA,KAAK,KAAM,OAAO,CAC9B,MAAO,GAAK,CAAAC,gBAAgB,KAAM,yBAAyB,CAE3D,OAASC,EAAE,KAAQ,aAAa,CAAC,OAAAC,GAAA,IAAAC,IAAA,yBAEjC,QAAS,CAAAC,OAAOA,CAAAC,IAAA,CAAmE,IAA7D,CAAAC,KAAK,CAAAC,QAAA,KAAAC,yBAAA,CAAAH,IAAA,EAAAA,IAAA,GACzB,mBAAOF,IAAA,CAACH,gBAAgB,CAACS,IAAI,CAAAF,QAAA,EAAC,YAAU,SAAS,EAAKD,KAAK,CAAG,CAChE,CAEA,QAAS,CAAAI,cAAcA,CAAAC,KAAA,CAAsE,IAAhE,CAAAL,KAAK,CAAAC,QAAA,KAAAC,yBAAA,CAAAG,KAAA,EAAAA,KAAA,GAChC,mBAAOR,IAAA,CAACH,gBAAgB,CAACY,OAAO,CAAAL,QAAA,EAAC,YAAU,iBAAiB,EAAKD,KAAK,CAAG,CAC3E,CAEA,QAAS,CAAAO,YAAYA,CAAAC,KAAA,CAAoE,IAA9D,CAAAR,KAAK,CAAAC,QAAA,KAAAC,yBAAA,CAAAM,KAAA,EAAAA,KAAA,GAC9B,mBAAOX,IAAA,CAACH,gBAAgB,CAACe,KAAK,CAAAR,QAAA,EAAC,YAAU,eAAe,EAAKD,KAAK,CAAG,CACvE,CAEA,QAAS,CAAAU,cAAcA,CAAAC,KAAA,CAKmC,IAJxD,CAAAC,SAAS,CAAAD,KAAA,CAATC,SAAS,CAAAC,WAAA,CAAAF,KAAA,CACTG,KAAK,CAALA,KAAK,CAAAD,WAAA,UAAG,QAAQ,CAAAA,WAAA,CAAAE,gBAAA,CAAAJ,KAAA,CAChBK,UAAU,CAAVA,UAAU,CAAAD,gBAAA,UAAG,CAAC,CAAAA,gBAAA,CACXf,KAAK,CAAAiB,6BAAA,CAAAN,KAAA,CAAAO,SAAA,EAER,mBACErB,IAAA,CAACH,gBAAgB,CAACyB,MAAM,EAAAC,QAAA,cACtBvB,IAAA,CAACH,gBAAgB,CAAC2B,OAAO,CAAApB,QAAA,EACvB,YAAU,iBAAiB,CAC3Ba,KAAK,CAAEA,KAAM,CACbE,UAAU,CAAEA,UAAW,CACvBJ,SAAS,CAAEjB,EAAE,CACX,geAAge,CACheiB,SACF,CAAE,EACEZ,KAAK,CACV,CAAC,CACqB,CAE7B,CAEA,QAAS,CAAAsB,aAAaA,CAAAC,KAAA,CAAqE,IAA/D,CAAAvB,KAAK,CAAAC,QAAA,KAAAC,yBAAA,CAAAqB,KAAA,EAAAA,KAAA,GAC/B,mBAAO1B,IAAA,CAACH,gBAAgB,CAAC8B,MAAM,CAAAvB,QAAA,EAAC,YAAU,gBAAgB,EAAKD,KAAK,CAAG,CACzE,CAEA,OAASF,OAAO,CAAEM,cAAc,CAAEM,cAAc,CAAEY,aAAa,CAAEf,YAAY","ignoreList":[]}
|