{"version":3,"file":"ChartWidget-Cc2HG0ha.mjs","names":["RechartsBarChart","RechartsLineChart","RechartsAreaChart","RechartsPieChart"],"sources":["../../widgets/src/widgets/ChartWidget.tsx"],"sourcesContent":["import type { WidgetPropertySchema } from \"@fluid-app/portal-core/registries\";\nimport {\n  Card,\n  ChartContainer,\n  ChartLegend,\n  ChartLegendContent,\n  ChartTooltip,\n  ChartTooltipContent,\n} from \"@fluid-app/ui-primitives\";\nimport type { ComponentProps } from \"react\";\nimport type React from \"react\";\nimport {\n  Bar,\n  BarChart as RechartsBarChart,\n  Line,\n  LineChart as RechartsLineChart,\n  Area,\n  AreaChart as RechartsAreaChart,\n  Pie,\n  PieChart as RechartsPieChart,\n  XAxis,\n  YAxis,\n  CartesianGrid,\n} from \"recharts\";\nimport {\n  getBorderRadiusField,\n  getBorderWidthField,\n  getBorderColorField,\n  getColorField,\n  getFontSizeField,\n  getHeightField,\n  getPaddingField,\n  borderWidthClasses,\n  borderColorClasses,\n} from \"../core/fields\";\nimport type {\n  BackgroundValue,\n  BorderRadiusOptions,\n  BorderWidthOptions,\n  ColorOptions,\n  FontSizeOptions,\n  PaddingOptions,\n} from \"@fluid-app/portal-core/types\";\n\ntype ChartDataPoint = Record<string, unknown>;\n\ntype ChartWidgetProps = ComponentProps<\"div\"> & {\n  // Title\n  titleEnabled?: boolean;\n  title?: string;\n  titleFontSize?: FontSizeOptions;\n  titleColor?: ColorOptions;\n\n  // Description\n  description?: string;\n  descriptionFontSize?: FontSizeOptions;\n  descriptionColor?: ColorOptions;\n\n  // Design\n  chartType?: \"bar\" | \"line\" | \"area\" | \"pie\";\n  showLegend?: boolean;\n  showTooltip?: boolean;\n  showGrid?: boolean;\n  width?: string;\n  height?: string;\n  background?: BackgroundValue;\n  padding?: PaddingOptions;\n  borderRadius?: BorderRadiusOptions;\n  borderWidth?: BorderWidthOptions;\n  borderColor?: ColorOptions;\n\n  // Data\n  dataKey?: string;\n  xAxisKey?: string;\n  /** Chart data - when provided via dataSource, this overrides defaultData */\n  data?: ChartDataPoint[];\n  /** Chart configuration - can be dynamically provided via dataSource */\n  chartConfig?: Record<string, { label: string; color: string }>;\n};\n\n// Default sample data for demonstration\nconst defaultData = [\n  { name: \"Jan\", value: 186 },\n  { name: \"Feb\", value: 305 },\n  { name: \"Mar\", value: 237 },\n  { name: \"Apr\", value: 273 },\n  { name: \"May\", value: 209 },\n  { name: \"Jun\", value: 214 },\n];\n\n// Pie chart data with individual fill properties\nconst defaultPieData = [\n  { name: \"Jan\", value: 186, fill: \"var(--chart-1)\" },\n  { name: \"Feb\", value: 305, fill: \"var(--chart-2)\" },\n  { name: \"Mar\", value: 237, fill: \"var(--chart-3)\" },\n  { name: \"Apr\", value: 273, fill: \"var(--chart-4)\" },\n  { name: \"May\", value: 209, fill: \"var(--chart-5)\" },\n];\n\nconst defaultChartConfig = {\n  value: {\n    label: \"Value\",\n    color: \"var(--chart-1)\",\n  },\n};\n\nexport function ChartWidget({\n  titleEnabled = true,\n  title = \"Chart Widget\",\n  titleFontSize = \"lg\",\n  titleColor = \"foreground\",\n\n  description = \"Displaying sample data\",\n  descriptionFontSize = \"md\",\n  descriptionColor = \"foreground\",\n\n  chartType = \"bar\",\n  showLegend = false,\n  showTooltip = true,\n  showGrid = true,\n  width = \"100%\",\n  height = \"300px\",\n  background = {\n    type: \"solid\",\n    color: \"background\",\n  },\n  padding = 4,\n  borderRadius = \"md\",\n  borderWidth = \"none\",\n  borderColor = \"muted\",\n\n  dataKey = \"value\",\n  xAxisKey = \"name\",\n  data,\n  chartConfig,\n  className,\n  ...props\n}: ChartWidgetProps): React.JSX.Element {\n  const backgroundColor = background.color || \"background\";\n  const backgroundImage =\n    (background.resource?.image_url || background.resource?.imageUrl) &&\n    background.type === \"image\"\n      ? `url(${background.resource.image_url || background.resource.imageUrl})`\n      : \"none\";\n  // Use provided data or fall back to default\n  const chartData = data ?? defaultData;\n  const chartPieData =\n    chartType === \"pie\" && data\n      ? data.map((item, index) => ({\n          ...item,\n          fill: `var(--chart-${(index % 5) + 1})`,\n        }))\n      : defaultPieData;\n  const config = chartConfig ?? defaultChartConfig;\n  const chartElement = (() => {\n    switch (chartType) {\n      case \"bar\":\n        return (\n          <RechartsBarChart data={chartData}>\n            {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n            <XAxis dataKey={xAxisKey} />\n            <YAxis />\n            {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n            {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n            <Bar dataKey={dataKey} fill=\"var(--color-value)\" radius={8} />\n          </RechartsBarChart>\n        );\n\n      case \"line\":\n        return (\n          <RechartsLineChart data={chartData}>\n            {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n            <XAxis dataKey={xAxisKey} />\n            <YAxis />\n            {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n            {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n            <Line\n              type=\"monotone\"\n              dataKey={dataKey}\n              stroke=\"var(--color-value)\"\n              strokeWidth={2}\n              dot={{ r: 4 }}\n            />\n          </RechartsLineChart>\n        );\n\n      case \"area\":\n        return (\n          <RechartsAreaChart data={chartData}>\n            {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n            <XAxis dataKey={xAxisKey} />\n            <YAxis />\n            {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n            {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n            <Area\n              type=\"monotone\"\n              dataKey={dataKey}\n              stroke=\"var(--color-value)\"\n              fill=\"var(--color-value)\"\n              fillOpacity={0.6}\n            />\n          </RechartsAreaChart>\n        );\n\n      case \"pie\":\n        return (\n          <RechartsPieChart>\n            {showTooltip && (\n              <ChartTooltip content={<ChartTooltipContent hideLabel />} />\n            )}\n            {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n            <Pie\n              data={chartPieData}\n              dataKey={dataKey}\n              nameKey={xAxisKey}\n              cx=\"50%\"\n              cy=\"50%\"\n              outerRadius={80}\n              label\n            />\n          </RechartsPieChart>\n        );\n\n      default:\n        // Fallback to bar chart for unknown chart types\n        return (\n          <RechartsBarChart data={chartData}>\n            {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n            <XAxis dataKey={xAxisKey} />\n            <YAxis />\n            {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n            {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n            <Bar dataKey={dataKey} fill=\"var(--color-value)\" radius={8} />\n          </RechartsBarChart>\n        );\n    }\n  })();\n\n  return (\n    <Card\n      className={`bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${borderWidthClasses[borderWidth]} ${borderWidth !== \"none\" ? borderColorClasses[borderColor] : \"\"} ${className}`}\n      style={{\n        width,\n        maxWidth: \"100%\",\n        backgroundImage,\n      }}\n      {...props}\n    >\n      <div className=\"p-6\">\n        <div className=\"mb-4\">\n          {titleEnabled && (\n            <h3\n              className={`text-${titleFontSize} text-${titleColor} font-header font-bold`}\n            >\n              {title}\n            </h3>\n          )}\n          {description && (\n            <p\n              className={`text-${descriptionFontSize} text-${descriptionColor}`}\n            >\n              {description}\n            </p>\n          )}\n        </div>\n        <ChartContainer config={config} style={{ height }}>\n          {chartElement}\n        </ChartContainer>\n      </div>\n    </Card>\n  );\n}\n\nexport const chartWidgetPropertySchema: WidgetPropertySchema = {\n  widgetType: \"ChartWidget\",\n  displayName: \"Chart\",\n  tabsConfig: [\n    { id: \"styling\", label: \"Styling\" },\n    { id: \"data\", label: \"Data\" },\n  ],\n  dataSourceTargetProps: [\"data\", \"chartConfig\"],\n  fields: [\n    // Content Tab - Title Group\n    {\n      key: \"titleEnabled\",\n      label: \"Widget Title\",\n      type: \"boolean\",\n      description: \"Enable the title displayed above the chart\",\n      defaultValue: true,\n      tab: \"styling\",\n      group: \"Title\",\n    },\n    {\n      key: \"title\",\n      label: \"Title\",\n      type: \"text\",\n      description: \"The chart title\",\n      defaultValue: \"Chart Widget\",\n      tab: \"styling\",\n      group: \"Title\",\n      requiresKeyToBeTrue: \"titleEnabled\",\n    },\n    getFontSizeField({\n      key: \"titleFontSize\",\n      label: \"Title Font Size\",\n      description: \"Font size for the chart title\",\n      defaultValue: \"lg\",\n      tab: \"styling\",\n      group: \"Title\",\n      requiresKeyToBeTrue: \"titleEnabled\",\n    }),\n    getColorField({\n      key: \"titleColor\",\n      label: \"Title Color\",\n      description: \"Color for the chart title\",\n      defaultValue: \"foreground\",\n      tab: \"styling\",\n      group: \"Title\",\n      requiresKeyToBeTrue: \"titleEnabled\",\n    }),\n\n    // Content Tab - Description Group\n    {\n      key: \"description\",\n      label: \"Description\",\n      type: \"textarea\",\n      description: \"The chart description\",\n      rows: 2,\n      defaultValue: \"Displaying sample data\",\n      tab: \"styling\",\n      group: \"Description\",\n    },\n    getFontSizeField({\n      key: \"descriptionFontSize\",\n      label: \"Description Font Size\",\n      description: \"Font size for the chart description\",\n      defaultValue: \"md\",\n      tab: \"styling\",\n      group: \"Description\",\n    }),\n    getColorField({\n      key: \"descriptionColor\",\n      label: \"Description Color\",\n      description: \"Color for the chart description\",\n      defaultValue: \"foreground\",\n      tab: \"styling\",\n      group: \"Description\",\n    }),\n\n    // Styling Tab - Design Group\n    {\n      key: \"chartType\",\n      label: \"Chart Type\",\n      type: \"select\",\n      description: \"Type of chart to display\",\n      options: [\n        { label: \"Bar Chart\", value: \"bar\" },\n        { label: \"Line Chart\", value: \"line\" },\n        { label: \"Area Chart\", value: \"area\" },\n        { label: \"Pie Chart\", value: \"pie\" },\n      ],\n      defaultValue: \"bar\",\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    {\n      key: \"showLegend\",\n      label: \"Show Legend\",\n      type: \"boolean\",\n      description: \"Display chart legend\",\n      defaultValue: false,\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    {\n      key: \"showTooltip\",\n      label: \"Show Tooltip\",\n      type: \"boolean\",\n      description: \"Display tooltip on hover\",\n      defaultValue: true,\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    {\n      key: \"showGrid\",\n      label: \"Show Grid\",\n      type: \"boolean\",\n      description: \"Display background grid lines\",\n      defaultValue: true,\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    {\n      key: \"separator\",\n      type: \"separator\",\n      label: \"Separator\",\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    {\n      key: \"width\",\n      label: \"Width\",\n      type: \"text\",\n      description:\n        \"Width of the chart container (CSS value, e.g., 100%, 600px)\",\n      defaultValue: \"100%\",\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    getHeightField({\n      key: \"height\",\n      label: \"Height\",\n      description: \"Height of the chart\",\n      defaultValue: \"300px\",\n      tab: \"styling\",\n      group: \"Design\",\n    }),\n    {\n      key: \"separator2\",\n      type: \"separator\",\n      label: \"Separator\",\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    {\n      type: \"background\",\n      key: \"background\",\n      label: \"Background\",\n      description: \"Background for the chart container\",\n      defaultValue: { type: \"solid\", color: \"background\" },\n      tab: \"styling\",\n      group: \"Design\",\n    },\n    getPaddingField({\n      key: \"padding\",\n      label: \"Padding\",\n      description: \"Padding for the chart container\",\n      defaultValue: 4,\n      tab: \"styling\",\n      group: \"Design\",\n    }),\n    getBorderRadiusField({\n      key: \"borderRadius\",\n      label: \"Border Radius\",\n      description: \"Border radius for the chart container\",\n      defaultValue: \"md\",\n      tab: \"styling\",\n      group: \"Design\",\n    }),\n    getBorderWidthField({\n      key: \"borderWidth\",\n      label: \"Border Width\",\n      description: \"Border width for the widget\",\n      defaultValue: \"none\",\n      tab: \"styling\",\n      group: \"Design\",\n    }),\n    getBorderColorField({\n      key: \"borderColor\",\n      label: \"Border Color\",\n      description: \"Border color for the widget\",\n      defaultValue: \"muted\",\n      tab: \"styling\",\n      group: \"Design\",\n    }),\n\n    // Data Tab - Data Group\n    {\n      key: \"dataSource\",\n      label: \"Data Source\",\n      type: \"dataSource\",\n      description: \"Configure the records and series rendered by the chart.\",\n      targetProps: [\n        {\n          key: \"data\",\n          description:\n            \"Records plotted by the chart, usually supplied by a data source.\",\n        },\n        {\n          key: \"chartConfig\",\n          description:\n            \"Series labels, colors, and value mappings for the chart data.\",\n        },\n      ],\n      tab: \"data\",\n      group: \"Data\",\n    },\n    {\n      key: \"dataKey\",\n      label: \"Data Key\",\n      type: \"select\",\n      description: \"Key in the data to use for chart values\",\n      options: [{ label: \"value\", value: \"value\" }],\n      defaultValue: \"value\",\n      tab: \"data\",\n      group: \"Data\",\n    },\n    {\n      key: \"xAxisKey\",\n      label: \"X-Axis Key\",\n      type: \"select\",\n      description: \"Key in the data to use for X-axis labels\",\n      options: [{ label: \"name\", value: \"name\" }],\n      defaultValue: \"name\",\n      tab: \"data\",\n      group: \"Data\",\n    },\n  ],\n} satisfies WidgetPropertySchema;\n"],"mappings":"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B;EACD,iBAAiB;GACf,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EACF,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,MAAM;GACN,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD,iBAAiB;GACf,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,SAAS;IACP;KAAE,OAAO;KAAa,OAAO;KAAO;IACpC;KAAE,OAAO;KAAc,OAAO;KAAQ;IACtC;KAAE,OAAO;KAAc,OAAO;KAAQ;IACtC;KAAE,OAAO;KAAa,OAAO;KAAO;IACrC;GACD,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD,eAAe;GACb,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACD;GACE,MAAM;GACN,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;IAAE,MAAM;IAAS,OAAO;IAAc;GACpD,KAAK;GACL,OAAO;GACR;EACD,gBAAgB;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,qBAAqB;GACnB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,aAAa,CACX;IACE,KAAK;IACL,aACE;IACH,EACD;IACE,KAAK;IACL,aACE;IACH,CACF;GACD,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,SAAS,CAAC;IAAE,OAAO;IAAS,OAAO;IAAS,CAAC;GAC7C,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,SAAS,CAAC;IAAE,OAAO;IAAQ,OAAO;IAAQ,CAAC;GAC3C,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACF;CACF"}