@peak-ai/canvas 1.2.1-rc.2 → 1.2.1-rc.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/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["headerContent","icon","bodyContent"],_excluded2=["headerContent","headerDescription","bodyContent","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","className","isEditable"],_excluded3=["config","chartType","chartData","className","isEditable","title","subTitle","gjsModel","performInteraction","interactionApiInProgress"],_excluded4=["data","headerMapper","className","isEditable","title","subTitle","gjsModel","performInteraction","interactionApiInProgress"],_excluded5=["label","defaultChecked","className","isEditable"],_excluded6=["triggerContent","cardContent","className","isEditable"],_excluded7=["label","placeholder","value","className","isEditable"],_excluded8=["text","className","isEditable"],_excluded9=["className"],_excluded10=["label","placeholder","value","className","isEditable"],_excluded11=["triggerContent","tooltipContent","className","isEditable"];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-names *//* eslint-disable @typescript-eslint/no-explicit-any */import chroma from"chroma-js";import React,{useEffect,useState}from"react";import{theme}from"@peak-ai/ais-components/theme";import Markdown from"markdown-to-jsx";import{Card,CardHeader,CardTitle,CardDescription,CardContent,CardFooter}from"../../shadcn/components/ui/card";import{ChartContainer,ChartTooltip,ChartTooltipContent}from"../../shadcn/components/ui/chart";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{PieChart,Pie,BarChart,Bar,LineChart,Line,XAxis,YAxis,ResponsiveContainer,CartesianGrid,Legend}from"recharts";import{Table,TableHeader,TableRow,TableHead,TableBody,TableCell}from"../../shadcn/components/ui/table";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}from"../../shadcn/components/ui/skeleton";import{
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["headerContent","icon","bodyContent"],_excluded2=["headerContent","headerDescription","bodyContent","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","className","isEditable"],_excluded3=["config","chartType","chartData","className","isEditable","title","subTitle","gjsModel","performInteraction","interactionApiInProgress"],_excluded4=["data","headerMapper","className","isEditable","title","subTitle","gjsModel","performInteraction","interactionApiInProgress"],_excluded5=["label","defaultChecked","className","isEditable"],_excluded6=["triggerContent","cardContent","className","isEditable"],_excluded7=["label","placeholder","value","className","isEditable"],_excluded8=["text","className","isEditable"],_excluded9=["className"],_excluded10=["label","placeholder","value","className","isEditable"],_excluded11=["triggerContent","tooltipContent","className","isEditable"];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-names *//* eslint-disable @typescript-eslint/no-explicit-any */import chroma from"chroma-js";import React,{useEffect,useState}from"react";import{theme}from"@peak-ai/ais-components/theme";import Markdown from"markdown-to-jsx";import{Card,CardHeader,CardTitle,CardDescription,CardContent,CardFooter}from"../../shadcn/components/ui/card";import{ChartContainer,ChartTooltip,ChartTooltipContent}from"../../shadcn/components/ui/chart";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{PieChart,Pie,BarChart,Bar,LineChart,Line,XAxis,YAxis,ResponsiveContainer,CartesianGrid,Legend}from"recharts";import{Table,TableHeader,TableRow,TableHead,TableBody,TableCell}from"../../shadcn/components/ui/table";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}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 getNColors(n){var colors=[];// const pallette = pallettes[Math.floor(Math.random() * pallettes.length)];
|
|
2
2
|
for(var _iterator=_createForOfIteratorHelperLoose(baseColors),_step;!(_step=_iterator()).done;){var baseColor=_step.value;// eslint-disable-next-line import/no-named-as-default-member
|
|
3
|
-
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}export function renderActionCard(props){var _props$headerContent=props.headerContent,headerContent=_props$headerContent===void 0?"Default Action Card Title":_props$headerContent,icon=props.icon,_props$bodyContent=props.bodyContent,bodyContent=_props$bodyContent===void 0?"Default body content. Click to edit.":_props$bodyContent,rest=_objectWithoutPropertiesLoose(props,_excluded);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$headerContent2=props.headerContent,headerContent=_props$headerContent2===void 0?"Default Card Title":_props$headerContent2,_props$headerDescript=props.headerDescription,headerDescription=_props$headerDescript===void 0?"Default header description":_props$headerDescript,_props$bodyContent2=props.bodyContent,bodyContent=_props$bodyContent2===void 0?"Default body content. Click to edit.":_props$bodyContent2,_props$footerContent=props.footerContent,footerContent=_props$footerContent===void 0?"":_props$footerContent,footerClass=props.footerClass,footerIcon=props.footerIcon,_props$contentMetadat=props.contentMetadata,contentMetadata=_props$contentMetadat===void 0?"":_props$contentMetadat,contentMetadataClass=props.contentMetadataClass,className=props.className,_props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,rest=_objectWithoutPropertiesLoose(props,_excluded2);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());return/*#__PURE__*/_jsxs(Card,_extends({},rest,{className:mergedCardClassName,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]})]}))}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$config=props.config,config=_props$config===void 0?{}:_props$config,_props$chartType=props.chartType,chartType=_props$chartType===void 0?"pie":_props$chartType,_props$chartData=props.chartData,chartData=_props$chartData===void 0?[]:_props$chartData,className=props.className,_props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,_props$title=props.title,title=_props$title===void 0?"Title":_props$title,_props$subTitle=props.subTitle,subTitle=_props$subTitle===void 0?"Subtitle":_props$subTitle,gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,_props$interactionApi=props.interactionApiInProgress,interactionApiInProgress=_props$interactionApi===void 0?false:_props$interactionApi,rest=_objectWithoutPropertiesLoose(props,_excluded3);var _useState=useState(chartData),uiData=_useState[0],setData=_useState[1];var _useState2=useState(interactionApiInProgress),interacting=_useState2[0],setInteracting=_useState2[1];var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;useEffect(function(){gjsModel.on("change:componentProps",function(){setData(gjsModel.get("componentProps").chartData||[]);setInteracting(gjsModel.get("componentProps").interactionApiInProgress||false)})},[]);if(chartType==="pie"){var colors=getNColors(uiData.length);for(var i=0;i<uiData.length;i++){var data=uiData[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=uiData.length*config.dataKeys.length;config.chartUi={};if(totalDataPoints>15){width=totalDataPoints*15+config.dataKeys.length*3*uiData.length+uiData.length*10;config.chartUi={barSize:15,barGap:3,barCategoryGap:0.5,width:width}}}function interact(){var id=gjsModel.get("id");performInteraction({id:id,chartData:chartData,affectedComponents:[id],type:"chart"})}var chartUi=interacting?/*#__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,uiData,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,uiData,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__*/_jsxs(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:[/*#__PURE__*/_jsx("div",{className:"mb-2",children:/*#__PURE__*/_jsx(Button,{onClick:interact,disabled:interacting,children:"Perform Interaction"})}),chartUi]})]})}export function renderTable(props){var _props$data=props.data,data=_props$data===void 0?[]:_props$data,_props$headerMapper=props.headerMapper,headerMapper=_props$headerMapper===void 0?{}:_props$headerMapper,className=props.className,_props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,_props$title2=props.title,title=_props$title2===void 0?"Title":_props$title2,_props$subTitle2=props.subTitle,subTitle=_props$subTitle2===void 0?"Subtitle":_props$subTitle2,gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2,_props$interactionApi2=props.interactionApiInProgress,interactionApiInProgress=_props$interactionApi2===void 0?false:_props$interactionApi2,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState3=useState(data),uiData=_useState3[0],setData=_useState3[1];var _useState4=useState(interactionApiInProgress),interacting=_useState4[0],setInteracting=_useState4[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setData(gjsModel.get("componentProps").data||[]);setInteracting(gjsModel.get("componentProps").interactionApiInProgress||false)})},[]);var parsedData=uiData.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData});function interact(){var id=gjsModel.get("id");performInteraction({id:id,data:data,affectedComponents:[id]})}var headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});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;var renderTable=interacting?/*#__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__*/_jsx(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)})},rIdx)})})]}));var tableData=/*#__PURE__*/_jsxs(ScrollArea,{"data-slot":"table-container",className:mergedClasses,children:[renderTable,/*#__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__*/_jsxs(CardContent,{"data-slot":"bodyContent",contentEditable:false,children:[/*#__PURE__*/_jsx("div",{className:"mb-2",children:/*#__PURE__*/_jsx(Button,{onClick:interact,disabled:interacting,children:"Perform Interaction"})}),tableData]})]})}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$isEditable4=props.isEditable,isEditable=_props$isEditable4===void 0?false:_props$isEditable4,rest=_objectWithoutPropertiesLoose(props,_excluded5);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$isEditable5=props.isEditable,isEditable=_props$isEditable5===void 0?false:_props$isEditable5,rest=_objectWithoutPropertiesLoose(props,_excluded6);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$isEditable6=props.isEditable,isEditable=_props$isEditable6===void 0?false:_props$isEditable6,rest=_objectWithoutPropertiesLoose(props,_excluded7);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$isEditable7=props.isEditable,isEditable=_props$isEditable7===void 0?false:_props$isEditable7,rest=_objectWithoutPropertiesLoose(props,_excluded8);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,_excluded9);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$isEditable8=props.isEditable,isEditable=_props$isEditable8===void 0?false:_props$isEditable8,rest=_objectWithoutPropertiesLoose(props,_excluded10);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$isEditable9=props.isEditable,isEditable=_props$isEditable9===void 0?false:_props$isEditable9,rest=_objectWithoutPropertiesLoose(props,_excluded11);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})]}))}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 _props$summaryText=props.summaryText,summaryText=_props$summaryText===void 0?"":_props$summaryText;return/*#__PURE__*/_jsx("div",{className:"px-[1em]",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:{ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3.5rem]"}},h3:{props:{className:"text-2xl font-bold leading-[3rem]"}},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]"}}}},children:summaryText})})}export function getRenderers(){return{ActionCard:renderActionCard,Card:renderCard,Chart:renderChart,Checkbox:renderCheckbox,HoverCard:renderHoverCard,Input:renderInput,Label:renderLabel,Markdown:renderMarkdown,Separator:renderSeparator,Table:renderTable,Tabs:renderTab,Textarea:renderTextarea,Tooltip:renderTooltip}}
|
|
3
|
+
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}export function renderActionCard(props){var _props$headerContent=props.headerContent,headerContent=_props$headerContent===void 0?"Default Action Card Title":_props$headerContent,icon=props.icon,_props$bodyContent=props.bodyContent,bodyContent=_props$bodyContent===void 0?"Default body content. Click to edit.":_props$bodyContent,rest=_objectWithoutPropertiesLoose(props,_excluded);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$headerContent2=props.headerContent,headerContent=_props$headerContent2===void 0?"Default Card Title":_props$headerContent2,_props$headerDescript=props.headerDescription,headerDescription=_props$headerDescript===void 0?"Default header description":_props$headerDescript,_props$bodyContent2=props.bodyContent,bodyContent=_props$bodyContent2===void 0?"Default body content. Click to edit.":_props$bodyContent2,_props$footerContent=props.footerContent,footerContent=_props$footerContent===void 0?"":_props$footerContent,footerClass=props.footerClass,footerIcon=props.footerIcon,_props$contentMetadat=props.contentMetadata,contentMetadata=_props$contentMetadat===void 0?"":_props$contentMetadat,contentMetadataClass=props.contentMetadataClass,className=props.className,_props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,rest=_objectWithoutPropertiesLoose(props,_excluded2);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());return/*#__PURE__*/_jsxs(Card,_extends({},rest,{className:mergedCardClassName,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]})]}))}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$config=props.config,config=_props$config===void 0?{}:_props$config,_props$chartType=props.chartType,chartType=_props$chartType===void 0?"pie":_props$chartType,_props$chartData=props.chartData,chartData=_props$chartData===void 0?[]:_props$chartData,className=props.className,_props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,_props$title=props.title,title=_props$title===void 0?"Title":_props$title,_props$subTitle=props.subTitle,subTitle=_props$subTitle===void 0?"Subtitle":_props$subTitle,gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,_props$interactionApi=props.interactionApiInProgress,interactionApiInProgress=_props$interactionApi===void 0?false:_props$interactionApi,rest=_objectWithoutPropertiesLoose(props,_excluded3);var _useState=useState(chartData),uiData=_useState[0],setData=_useState[1];var _useState2=useState(interactionApiInProgress),interacting=_useState2[0],setInteracting=_useState2[1];var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;useEffect(function(){gjsModel.on("change:componentProps",function(){setData(gjsModel.get("componentProps").chartData||[]);setInteracting(gjsModel.get("componentProps").interactionApiInProgress||false)})},[]);if(chartType==="pie"){var colors=getNColors(uiData.length);for(var i=0;i<uiData.length;i++){var data=uiData[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=uiData.length*config.dataKeys.length;config.chartUi={};if(totalDataPoints>15){width=totalDataPoints*15+config.dataKeys.length*3*uiData.length+uiData.length*10;config.chartUi={barSize:15,barGap:3,barCategoryGap:0.5,width:width}}}function interact(){var id=gjsModel.get("id");performInteraction({id:id,chartData:chartData,affectedComponents:[id],type:"chart"})}var chartUi=interacting?/*#__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,uiData,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,uiData,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})]})}export function renderTable(props){var _props$data=props.data,data=_props$data===void 0?[]:_props$data,_props$headerMapper=props.headerMapper,headerMapper=_props$headerMapper===void 0?{}:_props$headerMapper,className=props.className,_props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,_props$title2=props.title,title=_props$title2===void 0?"Title":_props$title2,_props$subTitle2=props.subTitle,subTitle=_props$subTitle2===void 0?"Subtitle":_props$subTitle2,gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2,_props$interactionApi2=props.interactionApiInProgress,interactionApiInProgress=_props$interactionApi2===void 0?false:_props$interactionApi2,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState3=useState(data),uiData=_useState3[0],setData=_useState3[1];var _useState4=useState(interactionApiInProgress),interacting=_useState4[0],setInteracting=_useState4[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setData(gjsModel.get("componentProps").data||[]);setInteracting(gjsModel.get("componentProps").interactionApiInProgress||false)})},[]);var parsedData=uiData.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData});function interact(){var id=gjsModel.get("id");performInteraction({id:id,data:data,affectedComponents:[id]})}var headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});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;var renderTable=interacting?/*#__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__*/_jsx(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)})},rIdx)})})]}));var tableData=/*#__PURE__*/_jsxs(ScrollArea,{"data-slot":"table-container",className:mergedClasses,children:[renderTable,/*#__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 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$isEditable4=props.isEditable,isEditable=_props$isEditable4===void 0?false:_props$isEditable4,rest=_objectWithoutPropertiesLoose(props,_excluded5);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$isEditable5=props.isEditable,isEditable=_props$isEditable5===void 0?false:_props$isEditable5,rest=_objectWithoutPropertiesLoose(props,_excluded6);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$isEditable6=props.isEditable,isEditable=_props$isEditable6===void 0?false:_props$isEditable6,rest=_objectWithoutPropertiesLoose(props,_excluded7);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$isEditable7=props.isEditable,isEditable=_props$isEditable7===void 0?false:_props$isEditable7,rest=_objectWithoutPropertiesLoose(props,_excluded8);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,_excluded9);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$isEditable8=props.isEditable,isEditable=_props$isEditable8===void 0?false:_props$isEditable8,rest=_objectWithoutPropertiesLoose(props,_excluded10);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$isEditable9=props.isEditable,isEditable=_props$isEditable9===void 0?false:_props$isEditable9,rest=_objectWithoutPropertiesLoose(props,_excluded11);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})]}))}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 _props$summaryText=props.summaryText,summaryText=_props$summaryText===void 0?"":_props$summaryText;return/*#__PURE__*/_jsx("div",{className:"px-[1em]",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:{ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3.5rem]"}},h3:{props:{className:"text-2xl font-bold leading-[3rem]"}},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]"}}}},children:summaryText})})}export function getRenderers(){return{ActionCard:renderActionCard,Card:renderCard,Chart:renderChart,Checkbox:renderCheckbox,HoverCard:renderHoverCard,Input:renderInput,Label:renderLabel,Markdown:renderMarkdown,Separator:renderSeparator,Table:renderTable,Tabs:renderTab,Textarea:renderTextarea,Tooltip:renderTooltip}}
|
|
4
4
|
//# sourceMappingURL=render-components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","theme","Markdown","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","Checkbox","HoverCard","HoverCardTrigger","HoverCardContent","Input","Label","Separator","Textarea","Tooltip","TooltipTrigger","TooltipContent","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","cn","ScrollArea","ScrollBar","Tabs","TabsList","TabsTrigger","TabsContent","TableLoader","ChartLoader","Button","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","_props$headerContent","headerContent","icon","_props$bodyContent","bodyContent","rest","_objectWithoutPropertiesLoose","_excluded","defaultClasses","_extends","className","isEditable","contentEditable","children","renderCard","_props$headerContent2","_props$headerDescript","headerDescription","_props$bodyContent2","_props$footerContent","footerContent","footerClass","footerIcon","_props$contentMetadat","contentMetadata","contentMetadataClass","_props$isEditable","_excluded2","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasFooterContent","trim","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$config","_props$chartType","_props$chartData","chartData","_props$isEditable2","_props$title","title","_props$subTitle","subTitle","gjsModel","_props$performInterac","performInteraction","_props$interactionApi","interactionApiInProgress","_excluded3","_useState","uiData","setData","_useState2","interacting","setInteracting","mergedClasses","on","get","width","totalDataPoints","barSize","barGap","barCategoryGap","interact","id","affectedComponents","Fragment","height","orientation","onClick","disabled","renderTable","_props$data","_props$headerMapper","headerMapper","_props$isEditable3","_props$title2","_props$subTitle2","_props$performInterac2","_props$interactionApi2","_excluded4","_useState3","_useState4","parsedData","datum","newData","headers","Object","keys","header","rows","values","head","idx","row","rIdx","cell","cIdx","tableData","renderCheckbox","_props$label","_props$defaultChecked","defaultChecked","_props$isEditable4","_excluded5","merged","renderHoverCard","_props$triggerContent","triggerContent","_props$cardContent","cardContent","_props$isEditable5","_excluded6","asChild","renderInput","_props$label2","_props$placeholder","placeholder","_props$value","_props$isEditable6","_excluded7","renderLabel","_props$text","text","_props$isEditable7","_excluded8","renderSeparator","_excluded9","renderTextarea","_props$label3","_props$placeholder2","_props$value2","_props$isEditable8","_excluded10","renderTooltip","_props$triggerContent2","_props$tooltipContent","tooltipContent","_props$isEditable9","_excluded11","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_props$summaryText","summaryText","options","overrides","ul","h1","h2","h3","h4","h5","h6","getRenderers","ActionCard","Chart"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX } from 'react';\n\nimport { theme } from '@peak-ai/ais-components/theme';\nimport Markdown from 'markdown-to-jsx';\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';\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';\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';\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 } from '../../shadcn/components/ui/skeleton';\nimport { Button } from '../../shadcn/components/ui/button'\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 // 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\nexport function renderActionCard(props: any): JSX.Element {\n const {\n headerContent = 'Default Action Card Title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n ...rest\n } = props;\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 {\n headerContent = 'Default Card Title',\n headerDescription = 'Default header description',\n bodyContent = 'Default body content. Click to edit.',\n footerContent = '',\n footerClass,\n footerIcon,\n contentMetadata = '',\n contentMetadataClass,\n className,\n isEditable = false,\n ...rest\n } = props;\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 ? cn(defaultFooterClasses, footerClass) : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n const hasFooterContent = !!((footerContent ?? '').trim() || (footerIcon ?? '').trim());\n\n return (\n <Card {...rest} className={mergedCardClassName}>\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 </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 {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n gjsModel,\n performInteraction = () => {},\n interactionApiInProgress = false,\n ...rest\n } = props;\n\n const [uiData, setData] = useState(chartData);\n const [interacting, setInteracting] = useState(interactionApiInProgress);\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setData(gjsModel.get('componentProps').chartData || []);\n setInteracting(gjsModel.get('componentProps').interactionApiInProgress || false);\n });\n }, []);\n\n if (chartType === 'pie') {\n const colors = getNColors(uiData.length);\n\n for (let i = 0; i < uiData.length; i++) {\n const data = uiData[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 = uiData.length * config.dataKeys.length;\n config.chartUi = {};\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 15 +\n config.dataKeys.length * 3 * uiData.length +\n uiData.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({ id, chartData, affectedComponents: [id], type: 'chart' });\n }\n\n const chartUi = interacting ? <ChartLoader /> : (\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, uiData, 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, uiData, 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 <div className='mb-2'>\n <Button onClick={interact} disabled={interacting}>\n Perform Interaction\n </Button>\n </div>\n { chartUi }\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n gjsModel,\n performInteraction = () => {},\n interactionApiInProgress = false,\n ...rest\n } = props;\n\n const [uiData, setData] = useState(data);\n const [interacting, setInteracting] = useState(interactionApiInProgress);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setData(gjsModel.get('componentProps').data || []);\n setInteracting(gjsModel.get('componentProps').interactionApiInProgress || false);\n });\n }, []);\n\n const parsedData = uiData.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n \n function interact() {\n const id = gjsModel.get('id');\n performInteraction({ id, data, affectedComponents: [id] });\n }\n\n const headers = Object.keys(parsedData[0] || {}).map((header) => headerMapper[header] || header);\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 const renderTable = interacting ? <TableLoader /> : (\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 </TableRow>\n ))}\n </TableBody>\n </Table>\n )\n\n const tableData = (\n <ScrollArea data-slot=\"table-container\" className={mergedClasses}>\n {renderTable}\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 <div className='mb-2'>\n <Button onClick={interact} disabled={interacting}>\n Perform Interaction\n </Button>\n </div>\n {tableData}\n </CardContent>\n </Card>\n );\n}\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\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 { summaryText = '' } = props;\n\n return (\n <div className=\"px-[1em]\">\n <Markdown\n options={{\n overrides: {\n ul: {\n props: {\n className: 'list-disc',\n },\n },\n h1: {\n props: {\n className: 'text-4xl font-bold leading-[4rem]',\n },\n },\n h2: {\n props: {\n className: 'text-3xl font-bold leading-[3.5rem]',\n },\n },\n h3: {\n props: {\n className: 'text-2xl font-bold leading-[3rem]',\n },\n },\n h4: {\n props: {\n className: 'text-xl font-bold leading-[2.5rem]',\n },\n },\n h5: {\n props: {\n className: 'text-lg font-bold leading-[2.5rem]',\n },\n },\n h6: {\n props: {\n className: 'text-base font-bold leading-[2rem]',\n },\n },\n },\n }}\n >\n {summaryText}\n </Markdown>\n </div>\n );\n}\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Card: renderCard,\n Chart: renderChart,\n Checkbox: renderCheckbox,\n HoverCard: renderHoverCard,\n Input: renderInput,\n Label: renderLabel,\n Markdown: renderMarkdown,\n Separator: renderSeparator,\n Table: renderTable,\n Tabs: renderTab,\n Textarea: renderTextarea,\n Tooltip: renderTooltip,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","theme","Markdown","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","Checkbox","HoverCard","HoverCardTrigger","HoverCardContent","Input","Label","Separator","Textarea","Tooltip","TooltipTrigger","TooltipContent","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","cn","ScrollArea","ScrollBar","Tabs","TabsList","TabsTrigger","TabsContent","TableLoader","ChartLoader","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","_props$headerContent","headerContent","icon","_props$bodyContent","bodyContent","rest","_objectWithoutPropertiesLoose","_excluded","defaultClasses","_extends","className","isEditable","contentEditable","children","renderCard","_props$headerContent2","_props$headerDescript","headerDescription","_props$bodyContent2","_props$footerContent","footerContent","footerClass","footerIcon","_props$contentMetadat","contentMetadata","contentMetadataClass","_props$isEditable","_excluded2","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasFooterContent","trim","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$config","_props$chartType","_props$chartData","chartData","_props$isEditable2","_props$title","title","_props$subTitle","subTitle","gjsModel","_props$performInterac","performInteraction","_props$interactionApi","interactionApiInProgress","_excluded3","_useState","uiData","setData","_useState2","interacting","setInteracting","mergedClasses","on","get","width","totalDataPoints","barSize","barGap","barCategoryGap","interact","id","affectedComponents","Fragment","height","orientation","renderTable","_props$data","_props$headerMapper","headerMapper","_props$isEditable3","_props$title2","_props$subTitle2","_props$performInterac2","_props$interactionApi2","_excluded4","_useState3","_useState4","parsedData","datum","newData","headers","Object","keys","header","rows","values","head","idx","row","rIdx","cell","cIdx","tableData","renderCheckbox","_props$label","_props$defaultChecked","defaultChecked","_props$isEditable4","_excluded5","merged","renderHoverCard","_props$triggerContent","triggerContent","_props$cardContent","cardContent","_props$isEditable5","_excluded6","asChild","renderInput","_props$label2","_props$placeholder","placeholder","_props$value","_props$isEditable6","_excluded7","renderLabel","_props$text","text","_props$isEditable7","_excluded8","renderSeparator","_excluded9","renderTextarea","_props$label3","_props$placeholder2","_props$value2","_props$isEditable8","_excluded10","renderTooltip","_props$triggerContent2","_props$tooltipContent","tooltipContent","_props$isEditable9","_excluded11","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_props$summaryText","summaryText","options","overrides","ul","h1","h2","h3","h4","h5","h6","getRenderers","ActionCard","Chart"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX } from 'react';\n\nimport { theme } from '@peak-ai/ais-components/theme';\nimport Markdown from 'markdown-to-jsx';\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';\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';\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';\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 } 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 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\nexport function renderActionCard(props: any): JSX.Element {\n const {\n headerContent = 'Default Action Card Title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n ...rest\n } = props;\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 {\n headerContent = 'Default Card Title',\n headerDescription = 'Default header description',\n bodyContent = 'Default body content. Click to edit.',\n footerContent = '',\n footerClass,\n footerIcon,\n contentMetadata = '',\n contentMetadataClass,\n className,\n isEditable = false,\n ...rest\n } = props;\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 ? cn(defaultFooterClasses, footerClass) : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n const hasFooterContent = !!((footerContent ?? '').trim() || (footerIcon ?? '').trim());\n\n return (\n <Card {...rest} className={mergedCardClassName}>\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 </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 {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n gjsModel,\n performInteraction = () => {},\n interactionApiInProgress = false,\n ...rest\n } = props;\n\n const [uiData, setData] = useState(chartData);\n const [interacting, setInteracting] = useState(interactionApiInProgress);\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setData(gjsModel.get('componentProps').chartData || []);\n setInteracting(gjsModel.get('componentProps').interactionApiInProgress || false);\n });\n }, []);\n\n if (chartType === 'pie') {\n const colors = getNColors(uiData.length);\n\n for (let i = 0; i < uiData.length; i++) {\n const data = uiData[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 = uiData.length * config.dataKeys.length;\n config.chartUi = {};\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 15 +\n config.dataKeys.length * 3 * uiData.length +\n uiData.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({ id, chartData, affectedComponents: [id], type: 'chart' });\n }\n\n const chartUi = interacting ? <ChartLoader /> : (\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, uiData, 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, uiData, 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\nexport function renderTable(props: any): JSX.Element {\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n gjsModel,\n performInteraction = () => {},\n interactionApiInProgress = false,\n ...rest\n } = props;\n\n const [uiData, setData] = useState(data);\n const [interacting, setInteracting] = useState(interactionApiInProgress);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setData(gjsModel.get('componentProps').data || []);\n setInteracting(gjsModel.get('componentProps').interactionApiInProgress || false);\n });\n }, []);\n\n const parsedData = uiData.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n \n function interact() {\n const id = gjsModel.get('id');\n performInteraction({ id, data, affectedComponents: [id] });\n }\n\n const headers = Object.keys(parsedData[0] || {}).map((header) => headerMapper[header] || header);\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 const renderTable = interacting ? <TableLoader /> : (\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 </TableRow>\n ))}\n </TableBody>\n </Table>\n )\n\n const tableData = (\n <ScrollArea data-slot=\"table-container\" className={mergedClasses}>\n {renderTable}\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 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\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 { summaryText = '' } = props;\n\n return (\n <div className=\"px-[1em]\">\n <Markdown\n options={{\n overrides: {\n ul: {\n props: {\n className: 'list-disc',\n },\n },\n h1: {\n props: {\n className: 'text-4xl font-bold leading-[4rem]',\n },\n },\n h2: {\n props: {\n className: 'text-3xl font-bold leading-[3.5rem]',\n },\n },\n h3: {\n props: {\n className: 'text-2xl font-bold leading-[3rem]',\n },\n },\n h4: {\n props: {\n className: 'text-xl font-bold leading-[2.5rem]',\n },\n },\n h5: {\n props: {\n className: 'text-lg font-bold leading-[2.5rem]',\n },\n },\n h6: {\n props: {\n className: 'text-base font-bold leading-[2rem]',\n },\n },\n },\n }}\n >\n {summaryText}\n </Markdown>\n </div>\n );\n}\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Card: renderCard,\n Chart: renderChart,\n Checkbox: renderCheckbox,\n HoverCard: renderHoverCard,\n Input: renderInput,\n Label: renderLabel,\n Markdown: renderMarkdown,\n Separator: renderSeparator,\n Table: renderTable,\n Tabs: renderTab,\n Textarea: renderTextarea,\n Tooltip: renderTooltip,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|