@razorpay/blade 12.95.5 → 12.96.0

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.
@@ -1016,9 +1016,12 @@ var RenderInfoGroupComponent = /*#__PURE__*/memo(function (_ref25) {
1016
1016
  }
1017
1017
 
1018
1018
  // Filter out invalid items during streaming
1019
+ // Filters out: null, undefined, and empty string children
1019
1020
  var validItems = items.filter(function (item) {
1020
- var _item$key, _item$value;
1021
- return ((_item$key = item.key) === null || _item$key === void 0 ? void 0 : _item$key.children) && ((_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.children);
1021
+ var _item$value, _item$key;
1022
+ var children = (_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.children;
1023
+ if (!((_item$key = item.key) !== null && _item$key !== void 0 && _item$key.children) || children == null) return false;
1024
+ return typeof children !== 'string' || children !== '';
1022
1025
  });
1023
1026
  if (validItems.length === 0) {
1024
1027
  return null;
@@ -1029,14 +1032,31 @@ var RenderInfoGroupComponent = /*#__PURE__*/memo(function (_ref25) {
1029
1032
  size: "medium",
1030
1033
  valueAlign: "left",
1031
1034
  children: validItems.map(function (item, index) {
1032
- var _item$key2, _item$key3, _item$value2, _item$value3;
1035
+ var _item$key4, _item$key5;
1036
+ var value = item.value;
1037
+ var isString = typeof value.children === 'string';
1038
+ if (isString) {
1039
+ var _item$key2, _item$key3;
1040
+ return /*#__PURE__*/jsxs(InfoItem, {
1041
+ children: [/*#__PURE__*/jsx(InfoItemKey, {
1042
+ helpText: item === null || item === void 0 || (_item$key2 = item.key) === null || _item$key2 === void 0 ? void 0 : _item$key2.helpText,
1043
+ children: item === null || item === void 0 || (_item$key3 = item.key) === null || _item$key3 === void 0 ? void 0 : _item$key3.children
1044
+ }), /*#__PURE__*/jsx(InfoItemValue, {
1045
+ helpText: value.helpText,
1046
+ children: value.children
1047
+ })]
1048
+ }, index);
1049
+ }
1033
1050
  return /*#__PURE__*/jsxs(InfoItem, {
1034
1051
  children: [/*#__PURE__*/jsx(InfoItemKey, {
1035
- helpText: item === null || item === void 0 || (_item$key2 = item.key) === null || _item$key2 === void 0 ? void 0 : _item$key2.helpText,
1036
- children: item === null || item === void 0 || (_item$key3 = item.key) === null || _item$key3 === void 0 ? void 0 : _item$key3.children
1052
+ helpText: item === null || item === void 0 || (_item$key4 = item.key) === null || _item$key4 === void 0 ? void 0 : _item$key4.helpText,
1053
+ children: item === null || item === void 0 || (_item$key5 = item.key) === null || _item$key5 === void 0 ? void 0 : _item$key5.children
1037
1054
  }), /*#__PURE__*/jsx(InfoItemValue, {
1038
- helpText: item === null || item === void 0 || (_item$value2 = item.value) === null || _item$value2 === void 0 ? void 0 : _item$value2.helpText,
1039
- children: item === null || item === void 0 || (_item$value3 = item.value) === null || _item$value3 === void 0 ? void 0 : _item$value3.children
1055
+ helpText: value.helpText,
1056
+ children: /*#__PURE__*/jsx(GenUIComponentRenderer, {
1057
+ component: value.children,
1058
+ index: index
1059
+ })
1040
1060
  })]
1041
1061
  }, index);
1042
1062
  })
@@ -1 +1 @@
1
- {"version":3,"file":"GenUIComponents.web.js","sources":["../../../../../../src/components/GenUI/GenUIComponents.web.tsx"],"sourcesContent":["/* eslint-disable no-case-declarations */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React, { memo, useMemo, useState } from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport dayjs from 'dayjs';\nimport { formatNumber } from '@razorpay/i18nify-js';\nimport ReactMarkdown from 'react-markdown';\nimport { createGlobalStyle } from 'styled-components';\nimport type { GenUIAction, GenUIBaseComponent, GenUIComponentRegistry } from './types';\nimport { useGenUIAction, useGenUIAnimation } from './GenUIContext';\nimport { ComponentRenderer } from './GenUISchemaRenderer';\nimport { createRehypeAnimate } from './rehypeAnimate';\nimport { Box } from '~components/Box';\nimport { Text, Heading } from '~components/Typography';\nimport { Skeleton } from '~components/Skeleton';\nimport {\n Card,\n CardBody,\n CardHeader,\n CardHeaderLeading,\n CardFooter,\n CardFooterLeading,\n} from '~components/Card';\nimport { Badge } from '~components/Badge';\nimport { Divider } from '~components/Divider';\nimport {\n ChartBar,\n ChartBarWrapper,\n ChartLine,\n ChartLineWrapper,\n ChartDonut,\n ChartDonutWrapper,\n ChartArea,\n ChartAreaWrapper,\n ChartXAxis,\n ChartYAxis,\n ChartCartesianGrid,\n ChartTooltip,\n ChartLegend,\n} from '~components/Charts';\nimport {\n Table,\n TableHeader,\n TableHeaderRow,\n TableHeaderCell,\n TableBody,\n TableRow,\n TableCell,\n} from '~components/Table';\nimport { Link } from '~components/Link';\nimport {\n DotIcon,\n InfoIcon,\n CheckCircleIcon,\n AlertTriangleIcon,\n CheckIcon,\n CloseIcon,\n EditIcon,\n TrashIcon,\n DownloadIcon,\n EyeIcon,\n CopyIcon,\n} from '~components/Icons';\nimport { InfoGroup, InfoItem, InfoItemKey, InfoItemValue } from '~components/InfoGroup';\nimport { Button } from '~components/Button';\nimport { IconButton } from '~components/Button/IconButton';\nimport { Amount } from '~components/Amount';\nimport { Indicator } from '~components/Indicator';\nimport { Alert } from '~components/Alert';\nimport { Tooltip, TooltipInteractiveWrapper } from '~components/Tooltip';\n\n/**\n * Global styles for text streaming animations\n * Applied to [data-animate-word] spans created by rehypeAnimate\n */\nconst TextAnimationStyles = createGlobalStyle`\n @keyframes animate-fadeIn {\n from {\n opacity: 0;\n color: #48D08C;\n filter: blur(2px);\n }\n to {\n opacity: 1;\n color: inherit;\n filter: blur(0px);\n }\n }\n\n [data-animate-word] {\n display: inline-block;\n animation: animate-fadeIn\n var(--animate-duration, 400ms)\n var(--animate-easing, ease) both;\n }\n`;\n\n/**\n * Built-in component types supported by GenUI\n */\nconst ComponentType = {\n TEXT: 'TEXT',\n CHART: 'CHART',\n TABLE: 'TABLE',\n CARD: 'CARD',\n BADGE: 'BADGE',\n SPACER: 'SPACER',\n DIVIDER: 'DIVIDER',\n STACK: 'STACK',\n GRID: 'GRID',\n INFO_GROUP: 'INFO_GROUP',\n BUTTON: 'BUTTON',\n LINK: 'LINK',\n ALERT: 'ALERT',\n AMOUNT: 'AMOUNT',\n} as const;\n\n/**\n * Valid feedback colors used across GenUI components (Badge, Indicator, Alert)\n * Used to validate streaming JSON where color values might be partial/incomplete\n */\nconst FeedbackColors = [\n 'information',\n 'negative',\n 'neutral',\n 'notice',\n 'positive',\n 'primary',\n] as const;\ntype FeedbackColor = typeof FeedbackColors[number];\n\nconst getValidFeedbackColor = (\n color: string | undefined,\n fallback: FeedbackColor = 'neutral',\n): FeedbackColor => {\n if (!color) return fallback;\n if (FeedbackColors.includes(color as FeedbackColor)) {\n return color as FeedbackColor;\n }\n return fallback;\n};\n\ntype TextComponent = GenUIBaseComponent & {\n component: typeof ComponentType.TEXT;\n content?: string;\n};\n\ntype ChartComponent = GenUIBaseComponent & {\n component: typeof ComponentType.CHART;\n chartType?: 'bar' | 'line' | 'pie' | 'area';\n variant?: 'full' | 'tiny';\n title?: string;\n xAxis?: string;\n data?: Array<Record<string, string | number>>;\n unit?: string;\n valueFormatter?: {\n type: 'currency' | 'percentage' | 'number' | 'string';\n currency?: string;\n suffix?: string;\n };\n};\n\n// Table cell component types (using component pattern)\ntype TableCellText = {\n component: 'TEXT';\n value: string;\n copyable?: boolean;\n};\n\ntype TableCellAmount = {\n component: 'AMOUNT';\n value: number;\n currency?: string;\n};\n\ntype TableCellIndicator = {\n component: 'INDICATOR';\n value: string;\n color: 'positive' | 'negative' | 'notice' | 'neutral' | 'primary' | 'information';\n};\n\ntype TableCellBadge = {\n component: 'BADGE';\n value: string;\n color: 'positive' | 'negative' | 'notice' | 'neutral' | 'primary' | 'information';\n};\n\ntype TableCellDate = {\n component: 'DATE';\n value: string;\n dateFormat?: string;\n};\n\ntype TableCellLink = {\n component: 'LINK';\n text: string;\n copyable?: boolean;\n action?: {\n type: 'CLICK';\n eventName?: 'link_click';\n data?: {\n url?: string;\n };\n };\n};\n\ntype TableCellType =\n | TableCellText\n | TableCellAmount\n | TableCellIndicator\n | TableCellBadge\n | TableCellDate\n | TableCellLink;\n\n// Table row action schema type\ntype TableRowActionSchema = {\n type: 'TABLE_ROW_ACTION';\n eventName: string;\n};\n\ntype TableRowActionButton = {\n type: 'BUTTON';\n text: string;\n action: TableRowActionSchema;\n};\n\ntype TableRowActionIconButton = {\n type: 'ICON_BUTTON';\n icon: 'check' | 'close' | 'edit' | 'delete' | 'download' | 'view' | 'copy';\n accessibilityLabel: string;\n action: TableRowActionSchema;\n};\n\ntype TableRowAction = TableRowActionButton | TableRowActionIconButton;\n\n// Event payload dispatched when table row actions are triggered\ntype TableRowActionEvent = {\n type: 'TABLE_ROW_ACTION';\n eventName: string;\n data: {\n rowIndex: number;\n rowData: TableCellType[];\n };\n};\n\ntype TableComponent = GenUIBaseComponent & {\n component: typeof ComponentType.TABLE;\n headers?: string[];\n rows?: TableCellType[][];\n rowActions?: TableRowAction[];\n};\n\ntype BadgeComponent = GenUIBaseComponent & {\n component: typeof ComponentType.BADGE;\n text?: string;\n color?: 'neutral' | 'negative' | 'notice' | 'positive' | 'primary' | 'information';\n};\n\ntype SpacerComponent = GenUIBaseComponent & {\n component: typeof ComponentType.SPACER;\n size?: 'small' | 'medium' | 'large';\n};\n\ntype DividerComponent = GenUIBaseComponent & {\n component: typeof ComponentType.DIVIDER;\n orientation?: 'horizontal' | 'vertical';\n};\n\ntype StackComponent = GenUIBaseComponent & {\n component: typeof ComponentType.STACK;\n direction?: 'vertical' | 'horizontal';\n gap?: 'small' | 'medium' | 'large';\n children?: GenUIComponent[];\n};\n\ntype GridComponent = GenUIBaseComponent & {\n component: typeof ComponentType.GRID;\n columns?: number;\n gap?: 'small' | 'medium' | 'large';\n children?: GenUIComponent[];\n};\n\ntype CardComponent = GenUIBaseComponent & {\n component: typeof ComponentType.CARD;\n title?: string;\n description?: string;\n footer?: string | null;\n children?: GenUIComponent[];\n};\n\ntype InfoGroupComponent = GenUIBaseComponent & {\n component: typeof ComponentType.INFO_GROUP;\n items?: Array<{\n key?: {\n helpText?: string;\n children: string;\n };\n value?: {\n helpText?: string;\n children: string;\n };\n }>;\n};\n\ntype ButtonComponent = GenUIBaseComponent & {\n component: typeof ComponentType.BUTTON;\n text?: string;\n action?: GenUIAction;\n};\n\ntype LinkComponent = GenUIBaseComponent & {\n component: typeof ComponentType.LINK;\n text?: string;\n action?: {\n type: 'CLICK';\n eventName?: 'link_click';\n data?: {\n url?: string;\n };\n };\n};\n\ntype AlertComponent = GenUIBaseComponent & {\n component: typeof ComponentType.ALERT;\n title?: string;\n description?: string;\n color?: 'information' | 'negative' | 'neutral' | 'notice' | 'positive';\n actions?: {\n primary?: {\n text?: string;\n action?: GenUIAction;\n };\n secondary?: {\n text?: string;\n action?: GenUIAction;\n };\n };\n};\n\ntype AmountComponent = GenUIBaseComponent & {\n component: typeof ComponentType.AMOUNT;\n value?: number;\n currency?: string;\n};\n\n/**\n * Union type of all built-in UI components\n */\ntype GenUIBuiltInUIComponent =\n | TextComponent\n | ChartComponent\n | TableComponent\n | BadgeComponent\n | SpacerComponent\n | DividerComponent\n | StackComponent\n | GridComponent\n | CardComponent\n | InfoGroupComponent\n | ButtonComponent\n | LinkComponent\n | AlertComponent\n | AmountComponent;\n\n/**\n * Generic UI component type - can be extended with custom components\n */\ntype GenUIComponent = GenUIBuiltInUIComponent | GenUIBaseComponent;\n\nconst ComponentErrorFallback = () => {\n return (\n <Box\n textAlign=\"center\"\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n height=\"100%\"\n width=\"100%\"\n >\n <Text size=\"medium\" weight=\"semibold\">\n Error rendering component\n </Text>\n </Box>\n );\n};\n\nconst ChartSkeletonLoader = ({\n title,\n isTiny,\n chartHeight = '350px',\n}: {\n title?: string;\n isTiny?: boolean;\n chartHeight?: string;\n}) => {\n return (\n <Box width=\"100%\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\" marginY=\"spacing.3\">\n {title && !isTiny ? (\n <Skeleton width=\"200px\" height=\"24px\" borderRadius=\"medium\" marginBottom=\"spacing.3\" />\n ) : null}\n <Box\n width=\"100%\"\n height={chartHeight as '100px' | '350px'}\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.3\"\n >\n <Box display=\"flex\" flexDirection=\"row\" gap=\"spacing.3\" height=\"100%\">\n <Skeleton width=\"40px\" height=\"100%\" borderRadius=\"medium\" />\n <Skeleton width=\"100%\" height=\"100%\" borderRadius=\"medium\" />\n </Box>\n <Skeleton width=\"100%\" height=\"40px\" borderRadius=\"medium\" />\n </Box>\n </Box>\n );\n};\n\n/**\n * Stable components object for ReactMarkdown to prevent re-renders during streaming.\n * Defined outside the component to maintain referential equality.\n */\nconst markdownComponents = {\n h1: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.4\" size=\"large\">\n {children}\n </Heading>\n ),\n h2: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.3\" size=\"medium\">\n {children}\n </Heading>\n ),\n h3: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.3\" size=\"small\">\n {children}\n </Heading>\n ),\n h4: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.3\" size=\"small\">\n {children}\n </Heading>\n ),\n b: ({ children }: { children?: React.ReactNode }) => (\n <Text size=\"medium\" weight=\"semibold\" color=\"surface.text.gray.subtle\">\n {children}\n </Text>\n ),\n a: ({ href, children }: { href?: string; children?: React.ReactNode }) => (\n <Link\n href={href}\n size=\"medium\"\n variant=\"anchor\"\n color=\"primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {(children as unknown) as string}\n </Link>\n ),\n li: ({ children }: { children?: React.ReactNode }) => (\n <Text marginY=\"spacing.3\" size=\"medium\">\n <DotIcon marginBottom=\"1px\" size=\"xsmall\" /> {children}\n </Text>\n ),\n ol: ({ children }: { children?: React.ReactNode }) => (\n <Box display=\"flex\" flexDirection=\"column\" marginLeft=\"spacing.4\">\n {children}\n </Box>\n ),\n ul: ({ children }: { children?: React.ReactNode }) => (\n <Box display=\"flex\" flexDirection=\"column\" marginLeft=\"spacing.4\">\n {children}\n </Box>\n ),\n hr: () => <Divider marginY=\"spacing.4\" />,\n i: ({ children }: { children?: React.ReactNode }) => (\n <Text size=\"medium\" variant=\"caption\" color=\"surface.text.gray.subtle\">\n {children}\n </Text>\n ),\n p: ({ children }: { children?: React.ReactNode }) => (\n <Text marginY=\"spacing.2\" size=\"medium\" color=\"surface.text.gray.subtle\">\n {children}\n </Text>\n ),\n};\n\nconst RenderTextComponent = memo(({ content }: TextComponent) => {\n const { isAnimating, animateOptions } = useGenUIAnimation();\n\n const rehypePlugins = useMemo(() => {\n if (!isAnimating) return [];\n return [createRehypeAnimate(animateOptions)];\n }, [isAnimating, animateOptions]);\n\n if (!content) return null;\n\n return (\n <>\n {isAnimating ? <TextAnimationStyles /> : null}\n <ReactMarkdown skipHtml rehypePlugins={rehypePlugins} components={markdownComponents}>\n {content}\n </ReactMarkdown>\n </>\n );\n});\n\nconst RenderChartComponent = memo(\n ({\n chartType,\n title,\n xAxis,\n data,\n unit = '',\n variant = 'full',\n valueFormatter,\n }: ChartComponent) => {\n const isTiny = variant === 'tiny';\n const chartHeight = isTiny ? '100px' : '350px';\n const minHeight = isTiny ? '100px' : '350px';\n const isLoading =\n !chartType || !xAxis || !data || data.length === 0 || !valueFormatter || !valueFormatter.type;\n\n // Handle incomplete data during streaming\n if (isLoading) {\n return <ChartSkeletonLoader title={title} isTiny={isTiny} chartHeight={chartHeight} />;\n }\n\n // Filter out empty objects and incomplete data from streaming\n const validData = data.filter((item) => {\n if (!item || Object.keys(item).length === 0) return false;\n\n // Check if xAxis key exists and has a valid value\n if (!item[xAxis] || item[xAxis] === '') return false;\n\n // Check if at least one numeric value exists\n const hasNumericValue = Object.keys(item).some(\n (key) => key !== xAxis && typeof item[key] === 'number' && !isNaN(Number(item[key])),\n );\n\n return hasNumericValue;\n });\n\n if (validData.length === 0) {\n return <ChartSkeletonLoader title={title} isTiny={isTiny} chartHeight={chartHeight} />;\n }\n\n // Auto-detect all numeric keys except xAxis for plotting\n const firstItem = validData[0];\n const keysToPlot = Object.keys(firstItem).filter(\n (key) => key !== xAxis && typeof firstItem[key] === 'number',\n );\n\n if (keysToPlot.length === 0) {\n return <ChartSkeletonLoader title={title} isTiny={isTiny} chartHeight={chartHeight} />;\n }\n\n const tickFormatter = (value: number | string) => {\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\n\n if (isNaN(numValue)) {\n return value.toString();\n }\n\n // Use valueFormatter if provided, otherwise fall back to unit\n if (valueFormatter) {\n const { type, currency: formatterCurrency, suffix: formatterSuffix } = valueFormatter;\n\n const buildPrefixSuffixString = (v: string) => {\n return `${v}${formatterSuffix ?? ''}`;\n };\n\n try {\n switch (type) {\n case 'currency': {\n const formatted = formatNumber(numValue, {\n currency: (formatterCurrency || 'INR') as 'INR',\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 1,\n },\n });\n return buildPrefixSuffixString(formatted);\n }\n\n case 'percentage': {\n const formatted = formatNumber(numValue / 100, {\n intlOptions: {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n },\n });\n if (formatterSuffix === '%') {\n return formatted;\n } else {\n return buildPrefixSuffixString(formatted);\n }\n }\n\n case 'number': {\n const numberFormatted = formatNumber(numValue, {\n intlOptions: {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n },\n });\n return buildPrefixSuffixString(numberFormatted);\n }\n\n case 'string': {\n return buildPrefixSuffixString(numValue.toString());\n }\n\n default:\n return numValue.toString();\n }\n } catch (error) {\n console.error('[GenUI Chart]: Error formatting value:', error);\n return numValue.toString();\n }\n }\n\n // Fallback to legacy unit formatting\n return `${numValue.toString()}${unit}`;\n };\n\n // TODO: Refactor into smaller components\n return (\n <ErrorBoundary FallbackComponent={ComponentErrorFallback}>\n <Box\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.3\"\n marginY=\"spacing.3\"\n minHeight={chartHeight}\n >\n {title && !isTiny ? (\n <Text\n size=\"large\"\n weight=\"semibold\"\n color=\"surface.text.gray.subtle\"\n marginBottom=\"spacing.3\"\n >\n {title}\n </Text>\n ) : null}\n <Box width=\"100%\" height={chartHeight} minHeight={minHeight}>\n {chartType === 'bar' ? (\n <ChartBarWrapper\n width=\"100%\"\n height={chartHeight}\n data={validData}\n colorTheme=\"categorical\"\n >\n {!isTiny ? <ChartCartesianGrid /> : null}\n {!isTiny ? <ChartXAxis dataKey={xAxis} /> : null}\n {!isTiny ? <ChartYAxis tickFormatter={tickFormatter} /> : null}\n {keysToPlot.map((key) => (\n <ChartBar key={key} dataKey={key} name={key} />\n ))}\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartBarWrapper>\n ) : chartType === 'line' ? (\n <ChartLineWrapper\n width=\"100%\"\n height={chartHeight}\n minHeight={minHeight}\n data={validData}\n colorTheme=\"categorical\"\n >\n {!isTiny ? <ChartCartesianGrid /> : null}\n {!isTiny ? <ChartXAxis dataKey={xAxis} /> : null}\n {!isTiny ? <ChartYAxis tickFormatter={tickFormatter} /> : null}\n {keysToPlot.map((key) => (\n <ChartLine key={key} dataKey={key} name={key} />\n ))}\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartLineWrapper>\n ) : chartType === 'area' ? (\n <ChartAreaWrapper\n width=\"100%\"\n height={chartHeight}\n minHeight={minHeight}\n data={validData}\n colorTheme=\"categorical\"\n >\n {!isTiny ? <ChartCartesianGrid /> : null}\n {!isTiny ? <ChartXAxis dataKey={xAxis} /> : null}\n {!isTiny ? <ChartYAxis tickFormatter={tickFormatter} /> : null}\n {keysToPlot.map((key) => (\n <ChartArea key={key} dataKey={key} name={key} type=\"monotone\" />\n ))}\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartAreaWrapper>\n ) : chartType === 'pie' ? (\n <ChartDonutWrapper width=\"100%\" height={chartHeight} minHeight={minHeight}>\n <ChartDonut\n dataKey={keysToPlot[0]}\n nameKey={xAxis}\n data={validData}\n radius=\"medium\"\n type=\"circle\"\n />\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartDonutWrapper>\n ) : null}\n </Box>\n </Box>\n </ErrorBoundary>\n );\n },\n // Custom comparison - only re-render if data length or key fields change\n (prevProps, nextProps) => {\n return (\n prevProps.chartType === nextProps.chartType &&\n prevProps.title === nextProps.title &&\n prevProps.xAxis === nextProps.xAxis &&\n prevProps.variant === nextProps.variant &&\n prevProps.data?.length === nextProps.data?.length &&\n JSON.stringify(prevProps.data?.[prevProps.data.length - 1]) ===\n JSON.stringify(nextProps.data?.[nextProps.data.length - 1]) &&\n JSON.stringify(prevProps.valueFormatter) === JSON.stringify(nextProps.valueFormatter)\n );\n },\n);\n\n// Primitive copy button — just the icon + tooltip, no text label.\n// Compose this inside any cell that needs copy behaviour.\nconst Copyable = ({ value }: { value?: string }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = () => {\n void navigator.clipboard.writeText(value ?? '');\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <Tooltip content={copied ? 'Copied!' : 'Copy'} placement=\"top\">\n <TooltipInteractiveWrapper>\n <IconButton\n icon={CopyIcon}\n size=\"medium\"\n emphasis=\"intense\"\n accessibilityLabel={`Copy ${value}`}\n onClick={handleCopy}\n />\n </TooltipInteractiveWrapper>\n </Tooltip>\n );\n};\n\n// Text + copy icon\nconst CopyableText = ({ value }: { value?: string }) => (\n <Box display=\"flex\" alignItems=\"center\" gap=\"spacing.2\">\n <Text size=\"medium\">{value ?? '-'}</Text>\n <Copyable value={value} />\n </Box>\n);\n\n// Table cell link renderer - fires action for consumer to handle\nconst TableCellLinkRenderer = ({ cell }: { cell?: Partial<TableCellLink> }) => {\n const onActionClick = useGenUIAction();\n\n const linkNode = cell?.action ? (\n <Link\n variant=\"button\"\n onClick={() => {\n if (onActionClick && cell.action) {\n onActionClick(cell.action);\n }\n }}\n >\n {cell.text ?? ''}\n </Link>\n ) : (\n <Text size=\"medium\">{cell?.text}</Text>\n );\n\n if (cell?.copyable && cell?.text) {\n return (\n <Box display=\"flex\" alignItems=\"center\" gap=\"spacing.2\">\n {linkNode}\n <Copyable value={cell.text} />\n </Box>\n );\n }\n\n return linkNode;\n};\n\n// Helper to render a single table cell based on its component type\nconst RenderTableCellContent = ({ cell }: { cell?: Partial<TableCellType> }) => {\n if (!cell) {\n return <Text size=\"medium\">-</Text>;\n }\n\n // Handle incomplete cell object during streaming\n if (!cell.component) {\n return <Text size=\"medium\">-</Text>;\n }\n\n // Handle component-based cell types\n switch (cell.component) {\n case 'TEXT': {\n if (cell.copyable && cell.value) {\n return <CopyableText value={cell.value} />;\n }\n return <Text size=\"medium\">{cell.value ?? '-'}</Text>;\n }\n\n case 'AMOUNT': {\n const currency = cell.currency || 'INR';\n // Ensure value is a valid number (handle streaming where value might be string/undefined)\n const numValue = typeof cell.value === 'string' ? parseFloat(cell.value) : cell.value;\n if (typeof numValue !== 'number' || isNaN(numValue)) {\n return <Text size=\"medium\">-</Text>;\n }\n return <Amount value={numValue} currency={currency as 'INR' | 'MYR'} size=\"medium\" />;\n }\n\n case 'INDICATOR': {\n // Handle streaming where value might be incomplete\n if (!cell.value) {\n return <Text size=\"medium\">-</Text>;\n }\n const indicatorColor = getValidFeedbackColor(cell.color, 'neutral');\n return (\n <Box display=\"flex\" alignItems=\"center\" gap=\"spacing.3\">\n <Indicator accessibilityLabel={cell.value} color={indicatorColor} />\n <Text size=\"medium\">{cell.value}</Text>\n </Box>\n );\n }\n\n case 'BADGE': {\n const badgeColor = getValidFeedbackColor(cell.color, 'neutral');\n return (\n <Badge color={badgeColor} emphasis=\"subtle\">\n {cell.value || '-'}\n </Badge>\n );\n }\n\n case 'DATE': {\n // Handle streaming where value might be incomplete\n if (!cell.value) {\n return <Text size=\"medium\">-</Text>;\n }\n\n // Parse the date value using dayjs\n const dateValue = dayjs(cell.value);\n\n // Check if date is valid\n if (!dateValue.isValid()) {\n return <Text size=\"medium\">{cell.value}</Text>;\n }\n\n // Use custom dateFormat if provided, otherwise use default\n // Format tokens: https://day.js.org/docs/en/display/format\n const defaultFormat = 'DD MMM YYYY, HH:mm';\n const formatted = dateValue.format(cell.dateFormat || defaultFormat);\n\n return <Text size=\"medium\">{formatted}</Text>;\n }\n\n case 'LINK': {\n // Handle streaming where text might be incomplete\n if (!cell.text) {\n return <Text size=\"medium\">-</Text>;\n }\n\n return <TableCellLinkRenderer cell={cell} />;\n }\n\n default:\n // Handle unknown component types during streaming\n return <Text size=\"medium\">{String((cell as { value?: string }).value || '-')}</Text>;\n }\n};\n\n// Icon mapping for row actions\nconst rowActionIconMap = {\n check: CheckIcon,\n close: CloseIcon,\n edit: EditIcon,\n delete: TrashIcon,\n download: DownloadIcon,\n view: EyeIcon,\n copy: CopyIcon,\n} as const;\n\n// Separate component for table row hover actions to avoid render issues\nconst TableRowHoverActions = ({\n rowActions,\n rowIndex,\n rowData,\n}: {\n rowActions: TableRowAction[];\n rowIndex: number;\n rowData: TableCellType[];\n}) => {\n const onActionClick = useGenUIAction();\n\n const createActionEvent = (eventName: string): TableRowActionEvent => ({\n type: 'TABLE_ROW_ACTION',\n eventName,\n data: {\n rowIndex,\n rowData,\n },\n });\n\n return (\n <>\n {rowActions.map((rowAction, index) => {\n // Guard: Skip incomplete button actions during streaming\n if (rowAction.type === 'BUTTON') {\n if (!rowAction.text) return null;\n return (\n <Button\n key={index}\n variant=\"tertiary\"\n size=\"xsmall\"\n onClick={() => {\n if (rowAction.action?.eventName && onActionClick) {\n onActionClick(createActionEvent(rowAction.action.eventName));\n }\n }}\n >\n {rowAction.text}\n </Button>\n );\n }\n\n // Guard: Skip incomplete icon button actions during streaming\n if (rowAction.type === 'ICON_BUTTON') {\n const IconComponent = rowAction.icon ? rowActionIconMap[rowAction.icon] : null;\n if (!IconComponent || !rowAction.accessibilityLabel) return null;\n return (\n <IconButton\n key={index}\n icon={IconComponent}\n size=\"medium\"\n emphasis=\"intense\"\n accessibilityLabel={rowAction.accessibilityLabel}\n onClick={() => {\n if (rowAction.action?.eventName && onActionClick) {\n onActionClick(createActionEvent(rowAction.action.eventName));\n }\n }}\n />\n );\n }\n\n return null;\n })}\n </>\n );\n};\n\n// Produces column widths using minmax(max-content, 1fr) so columns:\n// 1. Never shrink below their content width (no text wrapping)\n// 2. Expand proportionally to fill available width when space permits\nconst calculateColumnWidths = (headers: string[], _rows: Partial<TableCellType>[][]): string[] => {\n return headers.map(() => 'minmax(max-content, 1fr)');\n};\n\nconst RenderTableComponent = memo(({ headers, rows, rowActions }: TableComponent) => {\n const columnWidths = useMemo(\n () => (headers && rows ? calculateColumnWidths(headers, rows) : []),\n [headers, rows],\n );\n\n if (!headers || !rows || headers.length === 0 || rows.length === 0) {\n return null;\n }\n\n // Transform rows into table data format with id\n const tableData = {\n nodes: rows.map((row, index) => ({\n id: `row-${index}`,\n cells: row,\n })),\n };\n\n return (\n <Box display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\">\n <Table\n data={tableData}\n backgroundColor=\"transparent\"\n rowDensity=\"compact\"\n gridTemplateColumns={columnWidths.join(' ')}\n >\n {(data) => (\n <>\n <TableHeader>\n <TableHeaderRow>\n {headers.map((header, index) => (\n <TableHeaderCell key={index}>{header}</TableHeaderCell>\n ))}\n </TableHeaderRow>\n </TableHeader>\n <TableBody>\n {data.map((item, rowIndex) => (\n <TableRow\n key={rowIndex}\n item={item}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onHover={rowActions && rowActions.length > 0 ? () => {} : undefined}\n hoverActions={\n rowActions && rowActions.length > 0 ? (\n <TableRowHoverActions\n rowActions={rowActions}\n rowIndex={rowIndex}\n rowData={item.cells}\n />\n ) : undefined\n }\n >\n {item.cells.map((cell, cellIndex) => (\n <TableCell key={cellIndex}>\n <RenderTableCellContent cell={cell} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </>\n )}\n </Table>\n </Box>\n );\n});\n\nconst RenderCardComponent = memo(({ title, description, footer, children }: CardComponent) => {\n const hasHeader = title || description;\n\n return (\n <Box height=\"100%\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\">\n <Card width=\"100%\" height=\"100%\" padding=\"spacing.7\">\n {hasHeader ? (\n <CardHeader>\n <CardHeaderLeading title={title || ''} subtitle={description || ''} />\n </CardHeader>\n ) : null}\n\n {children && children.length > 0 ? (\n <CardBody height=\"100%\">\n <Box display=\"flex\" flexDirection=\"column\" gap=\"spacing.5\">\n {children.map((child, index) => {\n return <GenUIComponentRenderer key={index} component={child} index={index} />;\n })}\n </Box>\n </CardBody>\n ) : null}\n\n {footer ? (\n <CardFooter showDivider={true}>\n <CardFooterLeading subtitle={footer} />\n </CardFooter>\n ) : null}\n </Card>\n </Box>\n );\n});\n\nconst RenderBadgeComponent = memo(({ text, color }: BadgeComponent) => {\n if (!text) return null;\n\n return (\n <Badge color={color || 'neutral'} emphasis=\"subtle\">\n {text}\n </Badge>\n );\n});\n\nconst RenderSpacerComponent = memo(({ size }: SpacerComponent) => {\n if (!size) return null;\n\n const sizeMap = {\n small: 'spacing.2',\n medium: 'spacing.4',\n large: 'spacing.5',\n } as const;\n\n return <Box height={sizeMap[size]} width={sizeMap[size]} />;\n});\n\nconst RenderDividerComponent = memo(({ orientation = 'horizontal' }: DividerComponent) => {\n return (\n <Box display=\"flex\" paddingY=\"spacing.4\">\n <Divider\n orientation={orientation}\n {...(orientation === 'vertical' ? { height: '24px' } : {})}\n />\n </Box>\n );\n});\n\nconst RenderStackComponent = memo(({ direction = 'vertical', gap, children }: StackComponent) => {\n if (!children || children.length === 0) {\n return null;\n }\n\n const sizeMap = {\n small: 'spacing.2',\n medium: 'spacing.4',\n large: 'spacing.5',\n } as const;\n\n return (\n <Box\n display=\"flex\"\n width=\"100%\"\n paddingY=\"spacing.3\"\n flexDirection={direction === 'vertical' ? 'column' : 'row'}\n gap={sizeMap[gap ?? 'small']}\n >\n {children.map((child, index) => (\n <GenUIComponentRenderer key={index} component={child} index={index} />\n ))}\n </Box>\n );\n});\n\nconst RenderGridComponent = memo(({ columns, gap, children }: GridComponent) => {\n if (!columns || !children || children.length === 0) {\n return null;\n }\n\n const sizeMap = {\n small: 'spacing.2',\n medium: 'spacing.4',\n large: 'spacing.5',\n } as const;\n\n return (\n <Box\n display=\"grid\"\n width=\"100%\"\n marginY=\"spacing.3\"\n gridTemplateColumns={`repeat(${columns}, 1fr)`}\n gap={sizeMap[gap ?? 'small']}\n >\n {children.map((child, index) => (\n <GenUIComponentRenderer key={index} component={child} index={index} />\n ))}\n </Box>\n );\n});\n\nconst RenderInfoGroupComponent = memo(({ items }: InfoGroupComponent) => {\n if (!items || items.length === 0) {\n return null;\n }\n\n // Filter out invalid items during streaming\n const validItems = items.filter((item) => item.key?.children && item.value?.children);\n\n if (validItems.length === 0) {\n return null;\n }\n\n return (\n <InfoGroup marginY=\"spacing.3\" itemOrientation=\"horizontal\" size=\"medium\" valueAlign=\"left\">\n {validItems.map((item, index) => (\n <InfoItem key={index}>\n <InfoItemKey helpText={item?.key?.helpText}>{item?.key?.children}</InfoItemKey>\n <InfoItemValue helpText={item?.value?.helpText}>{item?.value?.children}</InfoItemValue>\n </InfoItem>\n ))}\n </InfoGroup>\n );\n});\n\nconst RenderButtonComponent = memo(({ text, action }: ButtonComponent) => {\n const onActionClick = useGenUIAction();\n\n if (!text) return null;\n\n const handleClick = () => {\n if (action && onActionClick) {\n onActionClick(action);\n }\n };\n\n return (\n <Button marginTop=\"spacing.2\" variant=\"tertiary\" onClick={handleClick}>\n {text}\n </Button>\n );\n});\n\nconst RenderLinkComponent = memo(({ text, action }: LinkComponent) => {\n const onActionClick = useGenUIAction();\n\n if (!text) return null;\n\n if (!action) {\n return (\n <Box marginBottom=\"spacing.2\">\n <Text size=\"medium\">{text}</Text>\n </Box>\n );\n }\n\n return (\n <Box marginBottom=\"spacing.2\">\n <Link\n variant=\"button\"\n onClick={() => {\n if (onActionClick) {\n onActionClick(action);\n }\n }}\n >\n {text}\n </Link>\n </Box>\n );\n});\n\nconst RenderAlertComponent = memo(\n ({ title, description, color = 'neutral', actions }: AlertComponent) => {\n const onActionClick = useGenUIAction();\n if (!title && !description) return null;\n\n // Validate color during streaming - show placeholder for invalid colors\n const validColor = getValidFeedbackColor(color);\n if (validColor !== color) {\n return <Box marginY=\"spacing.3\" width=\"100%\" />;\n }\n\n const iconMap = {\n information: InfoIcon,\n negative: AlertTriangleIcon,\n neutral: InfoIcon,\n notice: InfoIcon,\n positive: CheckCircleIcon,\n } as const;\n\n const Icon = iconMap[validColor];\n\n return (\n <Alert\n emphasis=\"subtle\"\n title={title}\n icon={Icon}\n description={description!}\n color={validColor}\n isDismissible={false}\n marginY=\"spacing.4\"\n actions={{\n primary: actions?.primary?.text\n ? {\n text: actions.primary.text,\n onClick: () => {\n if (actions.primary?.action && onActionClick) {\n onActionClick(actions.primary.action);\n }\n },\n }\n : undefined,\n secondary: actions?.secondary?.text\n ? {\n text: actions.secondary.text,\n onClick: () => {\n if (actions.secondary?.action && onActionClick) {\n onActionClick(actions.secondary.action);\n }\n },\n }\n : undefined,\n }}\n />\n );\n },\n);\n\nconst RenderAmountComponent = memo(({ value, currency }: AmountComponent) => {\n const resolvedCurrency = currency || 'INR';\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\n if (typeof numValue !== 'number' || isNaN(numValue)) {\n return <Text size=\"medium\">-</Text>;\n }\n return <Amount value={numValue} currency={resolvedCurrency as 'INR' | 'MYR'} />;\n});\n\n// Alias for internal use in built-in renderers\nconst GenUIComponentRenderer = ComponentRenderer;\ntype GenUIComponentRenderer = React.ComponentType<GenUIBaseComponent & { index: number }>;\n\n/**\n * Default registry of built-in components\n */\nconst createBuiltInRegistry = (): GenUIComponentRegistry => ({\n [ComponentType.TEXT]: {\n renderer: RenderTextComponent as GenUIComponentRenderer,\n },\n [ComponentType.CHART]: {\n renderer: RenderChartComponent as GenUIComponentRenderer,\n },\n [ComponentType.TABLE]: {\n renderer: RenderTableComponent as GenUIComponentRenderer,\n },\n [ComponentType.CARD]: {\n renderer: RenderCardComponent as GenUIComponentRenderer,\n },\n [ComponentType.BADGE]: {\n renderer: RenderBadgeComponent as GenUIComponentRenderer,\n },\n [ComponentType.SPACER]: {\n renderer: RenderSpacerComponent as GenUIComponentRenderer,\n },\n [ComponentType.DIVIDER]: {\n renderer: RenderDividerComponent as GenUIComponentRenderer,\n },\n [ComponentType.STACK]: {\n renderer: RenderStackComponent as GenUIComponentRenderer,\n },\n [ComponentType.GRID]: {\n renderer: RenderGridComponent as GenUIComponentRenderer,\n },\n [ComponentType.INFO_GROUP]: {\n renderer: RenderInfoGroupComponent as GenUIComponentRenderer,\n },\n [ComponentType.BUTTON]: {\n renderer: RenderButtonComponent as GenUIComponentRenderer,\n },\n [ComponentType.LINK]: {\n renderer: RenderLinkComponent as GenUIComponentRenderer,\n },\n [ComponentType.ALERT]: {\n renderer: RenderAlertComponent as GenUIComponentRenderer,\n },\n [ComponentType.AMOUNT]: {\n renderer: RenderAmountComponent as GenUIComponentRenderer,\n },\n});\n\nexport {\n // Built-in registry creator (used by GenUIProvider)\n createBuiltInRegistry,\n // Constants\n ComponentType,\n};\n\nexport type { GenUIComponent };\n"],"names":["TextAnimationStyles","createGlobalStyle","_templateObject","_taggedTemplateLiteral","ComponentType","TEXT","CHART","TABLE","CARD","BADGE","SPACER","DIVIDER","STACK","GRID","INFO_GROUP","BUTTON","LINK","ALERT","AMOUNT","FeedbackColors","getValidFeedbackColor","color","fallback","arguments","length","undefined","includes","ComponentErrorFallback","_jsx","Box","textAlign","display","flexDirection","alignItems","justifyContent","height","width","children","Text","size","weight","ChartSkeletonLoader","_ref","title","isTiny","_ref$chartHeight","chartHeight","_jsxs","gap","marginY","Skeleton","borderRadius","marginBottom","markdownComponents","h1","_ref2","Heading","h2","_ref3","h3","_ref4","h4","_ref5","b","_ref6","a","_ref7","href","Link","variant","target","rel","li","_ref8","DotIcon","ol","_ref9","marginLeft","ul","_ref0","hr","Divider","i","_ref1","p","_ref10","RenderTextComponent","memo","_ref11","content","_useGenUIAnimation","useGenUIAnimation","isAnimating","animateOptions","rehypePlugins","useMemo","createRehypeAnimate","_Fragment","ReactMarkdown","skipHtml","components","RenderChartComponent","_ref12","chartType","xAxis","data","_ref12$unit","unit","_ref12$variant","valueFormatter","minHeight","isLoading","type","validData","filter","item","Object","keys","hasNumericValue","some","key","isNaN","Number","firstItem","keysToPlot","tickFormatter","value","numValue","parseFloat","toString","formatterCurrency","currency","formatterSuffix","suffix","buildPrefixSuffixString","v","concat","formatted","formatNumber","intlOptions","notation","maximumFractionDigits","style","minimumFractionDigits","numberFormatted","error","console","ErrorBoundary","FallbackComponent","ChartBarWrapper","colorTheme","ChartCartesianGrid","ChartXAxis","dataKey","ChartYAxis","map","ChartBar","name","ChartLegend","ChartTooltip","ChartLineWrapper","ChartLine","ChartAreaWrapper","ChartArea","ChartDonutWrapper","ChartDonut","nameKey","radius","prevProps","nextProps","_prevProps$data","_nextProps$data","_prevProps$data2","_nextProps$data2","JSON","stringify","Copyable","_ref13","_useState","useState","_useState2","_slicedToArray","copied","setCopied","handleCopy","navigator","clipboard","writeText","setTimeout","Tooltip","placement","TooltipInteractiveWrapper","IconButton","icon","CopyIcon","emphasis","accessibilityLabel","onClick","CopyableText","_ref14","TableCellLinkRenderer","_ref15","_cell$text","cell","onActionClick","useGenUIAction","linkNode","action","text","copyable","RenderTableCellContent","_ref16","component","_cell$value","Amount","indicatorColor","Indicator","badgeColor","Badge","dateValue","dayjs","isValid","defaultFormat","format","dateFormat","String","rowActionIconMap","check","CheckIcon","close","CloseIcon","edit","EditIcon","TrashIcon","download","DownloadIcon","view","EyeIcon","copy","TableRowHoverActions","_ref17","rowActions","rowIndex","rowData","createActionEvent","eventName","rowAction","index","Button","_rowAction$action","IconComponent","_rowAction$action2","calculateColumnWidths","headers","_rows","RenderTableComponent","_ref18","rows","columnWidths","tableData","nodes","row","id","cells","Table","backgroundColor","rowDensity","gridTemplateColumns","join","TableHeader","TableHeaderRow","header","TableHeaderCell","TableBody","TableRow","onHover","hoverActions","cellIndex","TableCell","RenderCardComponent","_ref19","description","footer","hasHeader","Card","padding","CardHeader","CardHeaderLeading","subtitle","CardBody","child","GenUIComponentRenderer","CardFooter","showDivider","CardFooterLeading","RenderBadgeComponent","_ref20","RenderSpacerComponent","_ref21","sizeMap","small","medium","large","RenderDividerComponent","_ref22","_ref22$orientation","orientation","paddingY","_objectSpread","RenderStackComponent","_ref23","_ref23$direction","direction","RenderGridComponent","_ref24","columns","RenderInfoGroupComponent","_ref25","items","validItems","_item$key","_item$value","InfoGroup","itemOrientation","valueAlign","_item$key2","_item$key3","_item$value2","_item$value3","InfoItem","InfoItemKey","helpText","InfoItemValue","RenderButtonComponent","_ref26","handleClick","marginTop","RenderLinkComponent","_ref27","RenderAlertComponent","_ref28","_actions$primary","_actions$secondary","_ref28$color","actions","validColor","iconMap","information","InfoIcon","negative","AlertTriangleIcon","neutral","notice","positive","CheckCircleIcon","Icon","Alert","isDismissible","primary","_actions$primary2","secondary","_actions$secondary2","RenderAmountComponent","_ref29","resolvedCurrency","ComponentRenderer","createBuiltInRegistry","_ref30","_defineProperty","renderer"],"mappings":"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"}
1
+ {"version":3,"file":"GenUIComponents.web.js","sources":["../../../../../../src/components/GenUI/GenUIComponents.web.tsx"],"sourcesContent":["/* eslint-disable no-case-declarations */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React, { memo, useMemo, useState } from 'react';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport dayjs from 'dayjs';\nimport { formatNumber } from '@razorpay/i18nify-js';\nimport ReactMarkdown from 'react-markdown';\nimport { createGlobalStyle } from 'styled-components';\nimport type { GenUIAction, GenUIBaseComponent, GenUIComponentRegistry } from './types';\nimport { useGenUIAction, useGenUIAnimation } from './GenUIContext';\nimport { ComponentRenderer } from './GenUISchemaRenderer';\nimport { createRehypeAnimate } from './rehypeAnimate';\nimport { Box } from '~components/Box';\nimport { Text, Heading } from '~components/Typography';\nimport { Skeleton } from '~components/Skeleton';\nimport {\n Card,\n CardBody,\n CardHeader,\n CardHeaderLeading,\n CardFooter,\n CardFooterLeading,\n} from '~components/Card';\nimport { Badge } from '~components/Badge';\nimport { Divider } from '~components/Divider';\nimport {\n ChartBar,\n ChartBarWrapper,\n ChartLine,\n ChartLineWrapper,\n ChartDonut,\n ChartDonutWrapper,\n ChartArea,\n ChartAreaWrapper,\n ChartXAxis,\n ChartYAxis,\n ChartCartesianGrid,\n ChartTooltip,\n ChartLegend,\n} from '~components/Charts';\nimport {\n Table,\n TableHeader,\n TableHeaderRow,\n TableHeaderCell,\n TableBody,\n TableRow,\n TableCell,\n} from '~components/Table';\nimport { Link } from '~components/Link';\nimport {\n DotIcon,\n InfoIcon,\n CheckCircleIcon,\n AlertTriangleIcon,\n CheckIcon,\n CloseIcon,\n EditIcon,\n TrashIcon,\n DownloadIcon,\n EyeIcon,\n CopyIcon,\n} from '~components/Icons';\nimport { InfoGroup, InfoItem, InfoItemKey, InfoItemValue } from '~components/InfoGroup';\nimport { Button } from '~components/Button';\nimport { IconButton } from '~components/Button/IconButton';\nimport { Amount } from '~components/Amount';\nimport { Indicator } from '~components/Indicator';\nimport { Alert } from '~components/Alert';\nimport { Tooltip, TooltipInteractiveWrapper } from '~components/Tooltip';\n\n/**\n * Global styles for text streaming animations\n * Applied to [data-animate-word] spans created by rehypeAnimate\n */\nconst TextAnimationStyles = createGlobalStyle`\n @keyframes animate-fadeIn {\n from {\n opacity: 0;\n color: #48D08C;\n filter: blur(2px);\n }\n to {\n opacity: 1;\n color: inherit;\n filter: blur(0px);\n }\n }\n\n [data-animate-word] {\n display: inline-block;\n animation: animate-fadeIn\n var(--animate-duration, 400ms)\n var(--animate-easing, ease) both;\n }\n`;\n\n/**\n * Built-in component types supported by GenUI\n */\nconst ComponentType = {\n TEXT: 'TEXT',\n CHART: 'CHART',\n TABLE: 'TABLE',\n CARD: 'CARD',\n BADGE: 'BADGE',\n SPACER: 'SPACER',\n DIVIDER: 'DIVIDER',\n STACK: 'STACK',\n GRID: 'GRID',\n INFO_GROUP: 'INFO_GROUP',\n BUTTON: 'BUTTON',\n LINK: 'LINK',\n ALERT: 'ALERT',\n AMOUNT: 'AMOUNT',\n} as const;\n\n/**\n * Valid feedback colors used across GenUI components (Badge, Indicator, Alert)\n * Used to validate streaming JSON where color values might be partial/incomplete\n */\nconst FeedbackColors = [\n 'information',\n 'negative',\n 'neutral',\n 'notice',\n 'positive',\n 'primary',\n] as const;\ntype FeedbackColor = typeof FeedbackColors[number];\n\nconst getValidFeedbackColor = (\n color: string | undefined,\n fallback: FeedbackColor = 'neutral',\n): FeedbackColor => {\n if (!color) return fallback;\n if (FeedbackColors.includes(color as FeedbackColor)) {\n return color as FeedbackColor;\n }\n return fallback;\n};\n\ntype TextComponent = GenUIBaseComponent & {\n component: typeof ComponentType.TEXT;\n content?: string;\n};\n\ntype ChartComponent = GenUIBaseComponent & {\n component: typeof ComponentType.CHART;\n chartType?: 'bar' | 'line' | 'pie' | 'area';\n variant?: 'full' | 'tiny';\n title?: string;\n xAxis?: string;\n data?: Array<Record<string, string | number>>;\n unit?: string;\n valueFormatter?: {\n type: 'currency' | 'percentage' | 'number' | 'string';\n currency?: string;\n suffix?: string;\n };\n};\n\n// Table cell component types (using component pattern)\ntype TableCellText = {\n component: 'TEXT';\n value: string;\n copyable?: boolean;\n};\n\ntype TableCellAmount = {\n component: 'AMOUNT';\n value: number;\n currency?: string;\n};\n\ntype TableCellIndicator = {\n component: 'INDICATOR';\n value: string;\n color: 'positive' | 'negative' | 'notice' | 'neutral' | 'primary' | 'information';\n};\n\ntype TableCellBadge = {\n component: 'BADGE';\n value: string;\n color: 'positive' | 'negative' | 'notice' | 'neutral' | 'primary' | 'information';\n};\n\ntype TableCellDate = {\n component: 'DATE';\n value: string;\n dateFormat?: string;\n};\n\ntype TableCellLink = {\n component: 'LINK';\n text: string;\n copyable?: boolean;\n action?: {\n type: 'CLICK';\n eventName?: 'link_click';\n data?: {\n url?: string;\n };\n };\n};\n\ntype TableCellType =\n | TableCellText\n | TableCellAmount\n | TableCellIndicator\n | TableCellBadge\n | TableCellDate\n | TableCellLink;\n\n// Table row action schema type\ntype TableRowActionSchema = {\n type: 'TABLE_ROW_ACTION';\n eventName: string;\n};\n\ntype TableRowActionButton = {\n type: 'BUTTON';\n text: string;\n action: TableRowActionSchema;\n};\n\ntype TableRowActionIconButton = {\n type: 'ICON_BUTTON';\n icon: 'check' | 'close' | 'edit' | 'delete' | 'download' | 'view' | 'copy';\n accessibilityLabel: string;\n action: TableRowActionSchema;\n};\n\ntype TableRowAction = TableRowActionButton | TableRowActionIconButton;\n\n// Event payload dispatched when table row actions are triggered\ntype TableRowActionEvent = {\n type: 'TABLE_ROW_ACTION';\n eventName: string;\n data: {\n rowIndex: number;\n rowData: TableCellType[];\n };\n};\n\ntype TableComponent = GenUIBaseComponent & {\n component: typeof ComponentType.TABLE;\n headers?: string[];\n rows?: TableCellType[][];\n rowActions?: TableRowAction[];\n};\n\ntype BadgeComponent = GenUIBaseComponent & {\n component: typeof ComponentType.BADGE;\n text?: string;\n color?: 'neutral' | 'negative' | 'notice' | 'positive' | 'primary' | 'information';\n};\n\ntype SpacerComponent = GenUIBaseComponent & {\n component: typeof ComponentType.SPACER;\n size?: 'small' | 'medium' | 'large';\n};\n\ntype DividerComponent = GenUIBaseComponent & {\n component: typeof ComponentType.DIVIDER;\n orientation?: 'horizontal' | 'vertical';\n};\n\ntype StackComponent = GenUIBaseComponent & {\n component: typeof ComponentType.STACK;\n direction?: 'vertical' | 'horizontal';\n gap?: 'small' | 'medium' | 'large';\n children?: GenUIComponent[];\n};\n\ntype GridComponent = GenUIBaseComponent & {\n component: typeof ComponentType.GRID;\n columns?: number;\n gap?: 'small' | 'medium' | 'large';\n children?: GenUIComponent[];\n};\n\ntype CardComponent = GenUIBaseComponent & {\n component: typeof ComponentType.CARD;\n title?: string;\n description?: string;\n footer?: string | null;\n children?: GenUIComponent[];\n};\n\ntype InfoGroupItemValue = {\n helpText?: string;\n children: string | GenUIComponent;\n};\n\ntype InfoGroupComponent = GenUIBaseComponent & {\n component: typeof ComponentType.INFO_GROUP;\n items?: Array<{\n key?: {\n helpText?: string;\n children: string;\n };\n value?: InfoGroupItemValue;\n }>;\n};\n\ntype ButtonComponent = GenUIBaseComponent & {\n component: typeof ComponentType.BUTTON;\n text?: string;\n action?: GenUIAction;\n};\n\ntype LinkComponent = GenUIBaseComponent & {\n component: typeof ComponentType.LINK;\n text?: string;\n action?: {\n type: 'CLICK';\n eventName?: 'link_click';\n data?: {\n url?: string;\n };\n };\n};\n\ntype AlertComponent = GenUIBaseComponent & {\n component: typeof ComponentType.ALERT;\n title?: string;\n description?: string;\n color?: 'information' | 'negative' | 'neutral' | 'notice' | 'positive';\n actions?: {\n primary?: {\n text?: string;\n action?: GenUIAction;\n };\n secondary?: {\n text?: string;\n action?: GenUIAction;\n };\n };\n};\n\ntype AmountComponent = GenUIBaseComponent & {\n component: typeof ComponentType.AMOUNT;\n value?: number;\n currency?: string;\n};\n\n/**\n * Union type of all built-in UI components\n */\ntype GenUIBuiltInUIComponent =\n | TextComponent\n | ChartComponent\n | TableComponent\n | BadgeComponent\n | SpacerComponent\n | DividerComponent\n | StackComponent\n | GridComponent\n | CardComponent\n | InfoGroupComponent\n | ButtonComponent\n | LinkComponent\n | AlertComponent\n | AmountComponent;\n\n/**\n * Generic UI component type - can be extended with custom components\n */\ntype GenUIComponent = GenUIBuiltInUIComponent | GenUIBaseComponent;\n\nconst ComponentErrorFallback = () => {\n return (\n <Box\n textAlign=\"center\"\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n height=\"100%\"\n width=\"100%\"\n >\n <Text size=\"medium\" weight=\"semibold\">\n Error rendering component\n </Text>\n </Box>\n );\n};\n\nconst ChartSkeletonLoader = ({\n title,\n isTiny,\n chartHeight = '350px',\n}: {\n title?: string;\n isTiny?: boolean;\n chartHeight?: string;\n}) => {\n return (\n <Box width=\"100%\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\" marginY=\"spacing.3\">\n {title && !isTiny ? (\n <Skeleton width=\"200px\" height=\"24px\" borderRadius=\"medium\" marginBottom=\"spacing.3\" />\n ) : null}\n <Box\n width=\"100%\"\n height={chartHeight as '100px' | '350px'}\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.3\"\n >\n <Box display=\"flex\" flexDirection=\"row\" gap=\"spacing.3\" height=\"100%\">\n <Skeleton width=\"40px\" height=\"100%\" borderRadius=\"medium\" />\n <Skeleton width=\"100%\" height=\"100%\" borderRadius=\"medium\" />\n </Box>\n <Skeleton width=\"100%\" height=\"40px\" borderRadius=\"medium\" />\n </Box>\n </Box>\n );\n};\n\n/**\n * Stable components object for ReactMarkdown to prevent re-renders during streaming.\n * Defined outside the component to maintain referential equality.\n */\nconst markdownComponents = {\n h1: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.4\" size=\"large\">\n {children}\n </Heading>\n ),\n h2: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.3\" size=\"medium\">\n {children}\n </Heading>\n ),\n h3: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.3\" size=\"small\">\n {children}\n </Heading>\n ),\n h4: ({ children }: { children?: React.ReactNode }) => (\n <Heading marginBottom=\"spacing.3\" size=\"small\">\n {children}\n </Heading>\n ),\n b: ({ children }: { children?: React.ReactNode }) => (\n <Text size=\"medium\" weight=\"semibold\" color=\"surface.text.gray.subtle\">\n {children}\n </Text>\n ),\n a: ({ href, children }: { href?: string; children?: React.ReactNode }) => (\n <Link\n href={href}\n size=\"medium\"\n variant=\"anchor\"\n color=\"primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {(children as unknown) as string}\n </Link>\n ),\n li: ({ children }: { children?: React.ReactNode }) => (\n <Text marginY=\"spacing.3\" size=\"medium\">\n <DotIcon marginBottom=\"1px\" size=\"xsmall\" /> {children}\n </Text>\n ),\n ol: ({ children }: { children?: React.ReactNode }) => (\n <Box display=\"flex\" flexDirection=\"column\" marginLeft=\"spacing.4\">\n {children}\n </Box>\n ),\n ul: ({ children }: { children?: React.ReactNode }) => (\n <Box display=\"flex\" flexDirection=\"column\" marginLeft=\"spacing.4\">\n {children}\n </Box>\n ),\n hr: () => <Divider marginY=\"spacing.4\" />,\n i: ({ children }: { children?: React.ReactNode }) => (\n <Text size=\"medium\" variant=\"caption\" color=\"surface.text.gray.subtle\">\n {children}\n </Text>\n ),\n p: ({ children }: { children?: React.ReactNode }) => (\n <Text marginY=\"spacing.2\" size=\"medium\" color=\"surface.text.gray.subtle\">\n {children}\n </Text>\n ),\n};\n\nconst RenderTextComponent = memo(({ content }: TextComponent) => {\n const { isAnimating, animateOptions } = useGenUIAnimation();\n\n const rehypePlugins = useMemo(() => {\n if (!isAnimating) return [];\n return [createRehypeAnimate(animateOptions)];\n }, [isAnimating, animateOptions]);\n\n if (!content) return null;\n\n return (\n <>\n {isAnimating ? <TextAnimationStyles /> : null}\n <ReactMarkdown skipHtml rehypePlugins={rehypePlugins} components={markdownComponents}>\n {content}\n </ReactMarkdown>\n </>\n );\n});\n\nconst RenderChartComponent = memo(\n ({\n chartType,\n title,\n xAxis,\n data,\n unit = '',\n variant = 'full',\n valueFormatter,\n }: ChartComponent) => {\n const isTiny = variant === 'tiny';\n const chartHeight = isTiny ? '100px' : '350px';\n const minHeight = isTiny ? '100px' : '350px';\n const isLoading =\n !chartType || !xAxis || !data || data.length === 0 || !valueFormatter || !valueFormatter.type;\n\n // Handle incomplete data during streaming\n if (isLoading) {\n return <ChartSkeletonLoader title={title} isTiny={isTiny} chartHeight={chartHeight} />;\n }\n\n // Filter out empty objects and incomplete data from streaming\n const validData = data.filter((item) => {\n if (!item || Object.keys(item).length === 0) return false;\n\n // Check if xAxis key exists and has a valid value\n if (!item[xAxis] || item[xAxis] === '') return false;\n\n // Check if at least one numeric value exists\n const hasNumericValue = Object.keys(item).some(\n (key) => key !== xAxis && typeof item[key] === 'number' && !isNaN(Number(item[key])),\n );\n\n return hasNumericValue;\n });\n\n if (validData.length === 0) {\n return <ChartSkeletonLoader title={title} isTiny={isTiny} chartHeight={chartHeight} />;\n }\n\n // Auto-detect all numeric keys except xAxis for plotting\n const firstItem = validData[0];\n const keysToPlot = Object.keys(firstItem).filter(\n (key) => key !== xAxis && typeof firstItem[key] === 'number',\n );\n\n if (keysToPlot.length === 0) {\n return <ChartSkeletonLoader title={title} isTiny={isTiny} chartHeight={chartHeight} />;\n }\n\n const tickFormatter = (value: number | string) => {\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\n\n if (isNaN(numValue)) {\n return value.toString();\n }\n\n // Use valueFormatter if provided, otherwise fall back to unit\n if (valueFormatter) {\n const { type, currency: formatterCurrency, suffix: formatterSuffix } = valueFormatter;\n\n const buildPrefixSuffixString = (v: string) => {\n return `${v}${formatterSuffix ?? ''}`;\n };\n\n try {\n switch (type) {\n case 'currency': {\n const formatted = formatNumber(numValue, {\n currency: (formatterCurrency || 'INR') as 'INR',\n intlOptions: {\n notation: 'compact',\n maximumFractionDigits: 1,\n },\n });\n return buildPrefixSuffixString(formatted);\n }\n\n case 'percentage': {\n const formatted = formatNumber(numValue / 100, {\n intlOptions: {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n },\n });\n if (formatterSuffix === '%') {\n return formatted;\n } else {\n return buildPrefixSuffixString(formatted);\n }\n }\n\n case 'number': {\n const numberFormatted = formatNumber(numValue, {\n intlOptions: {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n },\n });\n return buildPrefixSuffixString(numberFormatted);\n }\n\n case 'string': {\n return buildPrefixSuffixString(numValue.toString());\n }\n\n default:\n return numValue.toString();\n }\n } catch (error) {\n console.error('[GenUI Chart]: Error formatting value:', error);\n return numValue.toString();\n }\n }\n\n // Fallback to legacy unit formatting\n return `${numValue.toString()}${unit}`;\n };\n\n // TODO: Refactor into smaller components\n return (\n <ErrorBoundary FallbackComponent={ComponentErrorFallback}>\n <Box\n width=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.3\"\n marginY=\"spacing.3\"\n minHeight={chartHeight}\n >\n {title && !isTiny ? (\n <Text\n size=\"large\"\n weight=\"semibold\"\n color=\"surface.text.gray.subtle\"\n marginBottom=\"spacing.3\"\n >\n {title}\n </Text>\n ) : null}\n <Box width=\"100%\" height={chartHeight} minHeight={minHeight}>\n {chartType === 'bar' ? (\n <ChartBarWrapper\n width=\"100%\"\n height={chartHeight}\n data={validData}\n colorTheme=\"categorical\"\n >\n {!isTiny ? <ChartCartesianGrid /> : null}\n {!isTiny ? <ChartXAxis dataKey={xAxis} /> : null}\n {!isTiny ? <ChartYAxis tickFormatter={tickFormatter} /> : null}\n {keysToPlot.map((key) => (\n <ChartBar key={key} dataKey={key} name={key} />\n ))}\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartBarWrapper>\n ) : chartType === 'line' ? (\n <ChartLineWrapper\n width=\"100%\"\n height={chartHeight}\n minHeight={minHeight}\n data={validData}\n colorTheme=\"categorical\"\n >\n {!isTiny ? <ChartCartesianGrid /> : null}\n {!isTiny ? <ChartXAxis dataKey={xAxis} /> : null}\n {!isTiny ? <ChartYAxis tickFormatter={tickFormatter} /> : null}\n {keysToPlot.map((key) => (\n <ChartLine key={key} dataKey={key} name={key} />\n ))}\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartLineWrapper>\n ) : chartType === 'area' ? (\n <ChartAreaWrapper\n width=\"100%\"\n height={chartHeight}\n minHeight={minHeight}\n data={validData}\n colorTheme=\"categorical\"\n >\n {!isTiny ? <ChartCartesianGrid /> : null}\n {!isTiny ? <ChartXAxis dataKey={xAxis} /> : null}\n {!isTiny ? <ChartYAxis tickFormatter={tickFormatter} /> : null}\n {keysToPlot.map((key) => (\n <ChartArea key={key} dataKey={key} name={key} type=\"monotone\" />\n ))}\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartAreaWrapper>\n ) : chartType === 'pie' ? (\n <ChartDonutWrapper width=\"100%\" height={chartHeight} minHeight={minHeight}>\n <ChartDonut\n dataKey={keysToPlot[0]}\n nameKey={xAxis}\n data={validData}\n radius=\"medium\"\n type=\"circle\"\n />\n {!isTiny ? <ChartLegend /> : null}\n {!isTiny ? <ChartTooltip /> : null}\n </ChartDonutWrapper>\n ) : null}\n </Box>\n </Box>\n </ErrorBoundary>\n );\n },\n // Custom comparison - only re-render if data length or key fields change\n (prevProps, nextProps) => {\n return (\n prevProps.chartType === nextProps.chartType &&\n prevProps.title === nextProps.title &&\n prevProps.xAxis === nextProps.xAxis &&\n prevProps.variant === nextProps.variant &&\n prevProps.data?.length === nextProps.data?.length &&\n JSON.stringify(prevProps.data?.[prevProps.data.length - 1]) ===\n JSON.stringify(nextProps.data?.[nextProps.data.length - 1]) &&\n JSON.stringify(prevProps.valueFormatter) === JSON.stringify(nextProps.valueFormatter)\n );\n },\n);\n\n// Primitive copy button — just the icon + tooltip, no text label.\n// Compose this inside any cell that needs copy behaviour.\nconst Copyable = ({ value }: { value?: string }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = () => {\n void navigator.clipboard.writeText(value ?? '');\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <Tooltip content={copied ? 'Copied!' : 'Copy'} placement=\"top\">\n <TooltipInteractiveWrapper>\n <IconButton\n icon={CopyIcon}\n size=\"medium\"\n emphasis=\"intense\"\n accessibilityLabel={`Copy ${value}`}\n onClick={handleCopy}\n />\n </TooltipInteractiveWrapper>\n </Tooltip>\n );\n};\n\n// Text + copy icon\nconst CopyableText = ({ value }: { value?: string }) => (\n <Box display=\"flex\" alignItems=\"center\" gap=\"spacing.2\">\n <Text size=\"medium\">{value ?? '-'}</Text>\n <Copyable value={value} />\n </Box>\n);\n\n// Table cell link renderer - fires action for consumer to handle\nconst TableCellLinkRenderer = ({ cell }: { cell?: Partial<TableCellLink> }) => {\n const onActionClick = useGenUIAction();\n\n const linkNode = cell?.action ? (\n <Link\n variant=\"button\"\n onClick={() => {\n if (onActionClick && cell.action) {\n onActionClick(cell.action);\n }\n }}\n >\n {cell.text ?? ''}\n </Link>\n ) : (\n <Text size=\"medium\">{cell?.text}</Text>\n );\n\n if (cell?.copyable && cell?.text) {\n return (\n <Box display=\"flex\" alignItems=\"center\" gap=\"spacing.2\">\n {linkNode}\n <Copyable value={cell.text} />\n </Box>\n );\n }\n\n return linkNode;\n};\n\n// Helper to render a single table cell based on its component type\nconst RenderTableCellContent = ({ cell }: { cell?: Partial<TableCellType> }) => {\n if (!cell) {\n return <Text size=\"medium\">-</Text>;\n }\n\n // Handle incomplete cell object during streaming\n if (!cell.component) {\n return <Text size=\"medium\">-</Text>;\n }\n\n // Handle component-based cell types\n switch (cell.component) {\n case 'TEXT': {\n if (cell.copyable && cell.value) {\n return <CopyableText value={cell.value} />;\n }\n return <Text size=\"medium\">{cell.value ?? '-'}</Text>;\n }\n\n case 'AMOUNT': {\n const currency = cell.currency || 'INR';\n // Ensure value is a valid number (handle streaming where value might be string/undefined)\n const numValue = typeof cell.value === 'string' ? parseFloat(cell.value) : cell.value;\n if (typeof numValue !== 'number' || isNaN(numValue)) {\n return <Text size=\"medium\">-</Text>;\n }\n return <Amount value={numValue} currency={currency as 'INR' | 'MYR'} size=\"medium\" />;\n }\n\n case 'INDICATOR': {\n // Handle streaming where value might be incomplete\n if (!cell.value) {\n return <Text size=\"medium\">-</Text>;\n }\n const indicatorColor = getValidFeedbackColor(cell.color, 'neutral');\n return (\n <Box display=\"flex\" alignItems=\"center\" gap=\"spacing.3\">\n <Indicator accessibilityLabel={cell.value} color={indicatorColor} />\n <Text size=\"medium\">{cell.value}</Text>\n </Box>\n );\n }\n\n case 'BADGE': {\n const badgeColor = getValidFeedbackColor(cell.color, 'neutral');\n return (\n <Badge color={badgeColor} emphasis=\"subtle\">\n {cell.value || '-'}\n </Badge>\n );\n }\n\n case 'DATE': {\n // Handle streaming where value might be incomplete\n if (!cell.value) {\n return <Text size=\"medium\">-</Text>;\n }\n\n // Parse the date value using dayjs\n const dateValue = dayjs(cell.value);\n\n // Check if date is valid\n if (!dateValue.isValid()) {\n return <Text size=\"medium\">{cell.value}</Text>;\n }\n\n // Use custom dateFormat if provided, otherwise use default\n // Format tokens: https://day.js.org/docs/en/display/format\n const defaultFormat = 'DD MMM YYYY, HH:mm';\n const formatted = dateValue.format(cell.dateFormat || defaultFormat);\n\n return <Text size=\"medium\">{formatted}</Text>;\n }\n\n case 'LINK': {\n // Handle streaming where text might be incomplete\n if (!cell.text) {\n return <Text size=\"medium\">-</Text>;\n }\n\n return <TableCellLinkRenderer cell={cell} />;\n }\n\n default:\n // Handle unknown component types during streaming\n return <Text size=\"medium\">{String((cell as { value?: string }).value || '-')}</Text>;\n }\n};\n\n// Icon mapping for row actions\nconst rowActionIconMap = {\n check: CheckIcon,\n close: CloseIcon,\n edit: EditIcon,\n delete: TrashIcon,\n download: DownloadIcon,\n view: EyeIcon,\n copy: CopyIcon,\n} as const;\n\n// Separate component for table row hover actions to avoid render issues\nconst TableRowHoverActions = ({\n rowActions,\n rowIndex,\n rowData,\n}: {\n rowActions: TableRowAction[];\n rowIndex: number;\n rowData: TableCellType[];\n}) => {\n const onActionClick = useGenUIAction();\n\n const createActionEvent = (eventName: string): TableRowActionEvent => ({\n type: 'TABLE_ROW_ACTION',\n eventName,\n data: {\n rowIndex,\n rowData,\n },\n });\n\n return (\n <>\n {rowActions.map((rowAction, index) => {\n // Guard: Skip incomplete button actions during streaming\n if (rowAction.type === 'BUTTON') {\n if (!rowAction.text) return null;\n return (\n <Button\n key={index}\n variant=\"tertiary\"\n size=\"xsmall\"\n onClick={() => {\n if (rowAction.action?.eventName && onActionClick) {\n onActionClick(createActionEvent(rowAction.action.eventName));\n }\n }}\n >\n {rowAction.text}\n </Button>\n );\n }\n\n // Guard: Skip incomplete icon button actions during streaming\n if (rowAction.type === 'ICON_BUTTON') {\n const IconComponent = rowAction.icon ? rowActionIconMap[rowAction.icon] : null;\n if (!IconComponent || !rowAction.accessibilityLabel) return null;\n return (\n <IconButton\n key={index}\n icon={IconComponent}\n size=\"medium\"\n emphasis=\"intense\"\n accessibilityLabel={rowAction.accessibilityLabel}\n onClick={() => {\n if (rowAction.action?.eventName && onActionClick) {\n onActionClick(createActionEvent(rowAction.action.eventName));\n }\n }}\n />\n );\n }\n\n return null;\n })}\n </>\n );\n};\n\n// Produces column widths using minmax(max-content, 1fr) so columns:\n// 1. Never shrink below their content width (no text wrapping)\n// 2. Expand proportionally to fill available width when space permits\nconst calculateColumnWidths = (headers: string[], _rows: Partial<TableCellType>[][]): string[] => {\n return headers.map(() => 'minmax(max-content, 1fr)');\n};\n\nconst RenderTableComponent = memo(({ headers, rows, rowActions }: TableComponent) => {\n const columnWidths = useMemo(\n () => (headers && rows ? calculateColumnWidths(headers, rows) : []),\n [headers, rows],\n );\n\n if (!headers || !rows || headers.length === 0 || rows.length === 0) {\n return null;\n }\n\n // Transform rows into table data format with id\n const tableData = {\n nodes: rows.map((row, index) => ({\n id: `row-${index}`,\n cells: row,\n })),\n };\n\n return (\n <Box display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\">\n <Table\n data={tableData}\n backgroundColor=\"transparent\"\n rowDensity=\"compact\"\n gridTemplateColumns={columnWidths.join(' ')}\n >\n {(data) => (\n <>\n <TableHeader>\n <TableHeaderRow>\n {headers.map((header, index) => (\n <TableHeaderCell key={index}>{header}</TableHeaderCell>\n ))}\n </TableHeaderRow>\n </TableHeader>\n <TableBody>\n {data.map((item, rowIndex) => (\n <TableRow\n key={rowIndex}\n item={item}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onHover={rowActions && rowActions.length > 0 ? () => {} : undefined}\n hoverActions={\n rowActions && rowActions.length > 0 ? (\n <TableRowHoverActions\n rowActions={rowActions}\n rowIndex={rowIndex}\n rowData={item.cells}\n />\n ) : undefined\n }\n >\n {item.cells.map((cell, cellIndex) => (\n <TableCell key={cellIndex}>\n <RenderTableCellContent cell={cell} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </>\n )}\n </Table>\n </Box>\n );\n});\n\nconst RenderCardComponent = memo(({ title, description, footer, children }: CardComponent) => {\n const hasHeader = title || description;\n\n return (\n <Box height=\"100%\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\">\n <Card width=\"100%\" height=\"100%\" padding=\"spacing.7\">\n {hasHeader ? (\n <CardHeader>\n <CardHeaderLeading title={title || ''} subtitle={description || ''} />\n </CardHeader>\n ) : null}\n\n {children && children.length > 0 ? (\n <CardBody height=\"100%\">\n <Box display=\"flex\" flexDirection=\"column\" gap=\"spacing.5\">\n {children.map((child, index) => {\n return <GenUIComponentRenderer key={index} component={child} index={index} />;\n })}\n </Box>\n </CardBody>\n ) : null}\n\n {footer ? (\n <CardFooter showDivider={true}>\n <CardFooterLeading subtitle={footer} />\n </CardFooter>\n ) : null}\n </Card>\n </Box>\n );\n});\n\nconst RenderBadgeComponent = memo(({ text, color }: BadgeComponent) => {\n if (!text) return null;\n\n return (\n <Badge color={color || 'neutral'} emphasis=\"subtle\">\n {text}\n </Badge>\n );\n});\n\nconst RenderSpacerComponent = memo(({ size }: SpacerComponent) => {\n if (!size) return null;\n\n const sizeMap = {\n small: 'spacing.2',\n medium: 'spacing.4',\n large: 'spacing.5',\n } as const;\n\n return <Box height={sizeMap[size]} width={sizeMap[size]} />;\n});\n\nconst RenderDividerComponent = memo(({ orientation = 'horizontal' }: DividerComponent) => {\n return (\n <Box display=\"flex\" paddingY=\"spacing.4\">\n <Divider\n orientation={orientation}\n {...(orientation === 'vertical' ? { height: '24px' } : {})}\n />\n </Box>\n );\n});\n\nconst RenderStackComponent = memo(({ direction = 'vertical', gap, children }: StackComponent) => {\n if (!children || children.length === 0) {\n return null;\n }\n\n const sizeMap = {\n small: 'spacing.2',\n medium: 'spacing.4',\n large: 'spacing.5',\n } as const;\n\n return (\n <Box\n display=\"flex\"\n width=\"100%\"\n paddingY=\"spacing.3\"\n flexDirection={direction === 'vertical' ? 'column' : 'row'}\n gap={sizeMap[gap ?? 'small']}\n >\n {children.map((child, index) => (\n <GenUIComponentRenderer key={index} component={child} index={index} />\n ))}\n </Box>\n );\n});\n\nconst RenderGridComponent = memo(({ columns, gap, children }: GridComponent) => {\n if (!columns || !children || children.length === 0) {\n return null;\n }\n\n const sizeMap = {\n small: 'spacing.2',\n medium: 'spacing.4',\n large: 'spacing.5',\n } as const;\n\n return (\n <Box\n display=\"grid\"\n width=\"100%\"\n marginY=\"spacing.3\"\n gridTemplateColumns={`repeat(${columns}, 1fr)`}\n gap={sizeMap[gap ?? 'small']}\n >\n {children.map((child, index) => (\n <GenUIComponentRenderer key={index} component={child} index={index} />\n ))}\n </Box>\n );\n});\n\nconst RenderInfoGroupComponent = memo(({ items }: InfoGroupComponent) => {\n if (!items || items.length === 0) {\n return null;\n }\n\n // Filter out invalid items during streaming\n // Filters out: null, undefined, and empty string children\n const validItems = items.filter((item) => {\n const children = item.value?.children;\n if (!item.key?.children || children == null) return false;\n return typeof children !== 'string' || children !== '';\n });\n\n if (validItems.length === 0) {\n return null;\n }\n\n return (\n <InfoGroup marginY=\"spacing.3\" itemOrientation=\"horizontal\" size=\"medium\" valueAlign=\"left\">\n {validItems.map((item, index) => {\n const value = item.value!;\n const isString = typeof value.children === 'string';\n\n if (isString) {\n return (\n <InfoItem key={index}>\n <InfoItemKey helpText={item?.key?.helpText}>{item?.key?.children}</InfoItemKey>\n <InfoItemValue helpText={value.helpText}>{value.children as string}</InfoItemValue>\n </InfoItem>\n );\n }\n\n return (\n <InfoItem key={index}>\n <InfoItemKey helpText={item?.key?.helpText}>{item?.key?.children}</InfoItemKey>\n <InfoItemValue helpText={value.helpText}>\n <GenUIComponentRenderer component={value.children as GenUIComponent} index={index} />\n </InfoItemValue>\n </InfoItem>\n );\n })}\n </InfoGroup>\n );\n});\n\nconst RenderButtonComponent = memo(({ text, action }: ButtonComponent) => {\n const onActionClick = useGenUIAction();\n\n if (!text) return null;\n\n const handleClick = () => {\n if (action && onActionClick) {\n onActionClick(action);\n }\n };\n\n return (\n <Button marginTop=\"spacing.2\" variant=\"tertiary\" onClick={handleClick}>\n {text}\n </Button>\n );\n});\n\nconst RenderLinkComponent = memo(({ text, action }: LinkComponent) => {\n const onActionClick = useGenUIAction();\n\n if (!text) return null;\n\n if (!action) {\n return (\n <Box marginBottom=\"spacing.2\">\n <Text size=\"medium\">{text}</Text>\n </Box>\n );\n }\n\n return (\n <Box marginBottom=\"spacing.2\">\n <Link\n variant=\"button\"\n onClick={() => {\n if (onActionClick) {\n onActionClick(action);\n }\n }}\n >\n {text}\n </Link>\n </Box>\n );\n});\n\nconst RenderAlertComponent = memo(\n ({ title, description, color = 'neutral', actions }: AlertComponent) => {\n const onActionClick = useGenUIAction();\n if (!title && !description) return null;\n\n // Validate color during streaming - show placeholder for invalid colors\n const validColor = getValidFeedbackColor(color);\n if (validColor !== color) {\n return <Box marginY=\"spacing.3\" width=\"100%\" />;\n }\n\n const iconMap = {\n information: InfoIcon,\n negative: AlertTriangleIcon,\n neutral: InfoIcon,\n notice: InfoIcon,\n positive: CheckCircleIcon,\n } as const;\n\n const Icon = iconMap[validColor];\n\n return (\n <Alert\n emphasis=\"subtle\"\n title={title}\n icon={Icon}\n description={description!}\n color={validColor}\n isDismissible={false}\n marginY=\"spacing.4\"\n actions={{\n primary: actions?.primary?.text\n ? {\n text: actions.primary.text,\n onClick: () => {\n if (actions.primary?.action && onActionClick) {\n onActionClick(actions.primary.action);\n }\n },\n }\n : undefined,\n secondary: actions?.secondary?.text\n ? {\n text: actions.secondary.text,\n onClick: () => {\n if (actions.secondary?.action && onActionClick) {\n onActionClick(actions.secondary.action);\n }\n },\n }\n : undefined,\n }}\n />\n );\n },\n);\n\nconst RenderAmountComponent = memo(({ value, currency }: AmountComponent) => {\n const resolvedCurrency = currency || 'INR';\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\n if (typeof numValue !== 'number' || isNaN(numValue)) {\n return <Text size=\"medium\">-</Text>;\n }\n return <Amount value={numValue} currency={resolvedCurrency as 'INR' | 'MYR'} />;\n});\n\n// Alias for internal use in built-in renderers\nconst GenUIComponentRenderer = ComponentRenderer;\ntype GenUIComponentRenderer = React.ComponentType<GenUIBaseComponent & { index: number }>;\n\n/**\n * Default registry of built-in components\n */\nconst createBuiltInRegistry = (): GenUIComponentRegistry => ({\n [ComponentType.TEXT]: {\n renderer: RenderTextComponent as GenUIComponentRenderer,\n },\n [ComponentType.CHART]: {\n renderer: RenderChartComponent as GenUIComponentRenderer,\n },\n [ComponentType.TABLE]: {\n renderer: RenderTableComponent as GenUIComponentRenderer,\n },\n [ComponentType.CARD]: {\n renderer: RenderCardComponent as GenUIComponentRenderer,\n },\n [ComponentType.BADGE]: {\n renderer: RenderBadgeComponent as GenUIComponentRenderer,\n },\n [ComponentType.SPACER]: {\n renderer: RenderSpacerComponent as GenUIComponentRenderer,\n },\n [ComponentType.DIVIDER]: {\n renderer: RenderDividerComponent as GenUIComponentRenderer,\n },\n [ComponentType.STACK]: {\n renderer: RenderStackComponent as GenUIComponentRenderer,\n },\n [ComponentType.GRID]: {\n renderer: RenderGridComponent as GenUIComponentRenderer,\n },\n [ComponentType.INFO_GROUP]: {\n renderer: RenderInfoGroupComponent as GenUIComponentRenderer,\n },\n [ComponentType.BUTTON]: {\n renderer: RenderButtonComponent as GenUIComponentRenderer,\n },\n [ComponentType.LINK]: {\n renderer: RenderLinkComponent as GenUIComponentRenderer,\n },\n [ComponentType.ALERT]: {\n renderer: RenderAlertComponent as GenUIComponentRenderer,\n },\n [ComponentType.AMOUNT]: {\n renderer: RenderAmountComponent as GenUIComponentRenderer,\n },\n});\n\nexport {\n // Built-in registry creator (used by GenUIProvider)\n createBuiltInRegistry,\n // Constants\n ComponentType,\n};\n\nexport type { GenUIComponent };\n"],"names":["TextAnimationStyles","createGlobalStyle","_templateObject","_taggedTemplateLiteral","ComponentType","TEXT","CHART","TABLE","CARD","BADGE","SPACER","DIVIDER","STACK","GRID","INFO_GROUP","BUTTON","LINK","ALERT","AMOUNT","FeedbackColors","getValidFeedbackColor","color","fallback","arguments","length","undefined","includes","ComponentErrorFallback","_jsx","Box","textAlign","display","flexDirection","alignItems","justifyContent","height","width","children","Text","size","weight","ChartSkeletonLoader","_ref","title","isTiny","_ref$chartHeight","chartHeight","_jsxs","gap","marginY","Skeleton","borderRadius","marginBottom","markdownComponents","h1","_ref2","Heading","h2","_ref3","h3","_ref4","h4","_ref5","b","_ref6","a","_ref7","href","Link","variant","target","rel","li","_ref8","DotIcon","ol","_ref9","marginLeft","ul","_ref0","hr","Divider","i","_ref1","p","_ref10","RenderTextComponent","memo","_ref11","content","_useGenUIAnimation","useGenUIAnimation","isAnimating","animateOptions","rehypePlugins","useMemo","createRehypeAnimate","_Fragment","ReactMarkdown","skipHtml","components","RenderChartComponent","_ref12","chartType","xAxis","data","_ref12$unit","unit","_ref12$variant","valueFormatter","minHeight","isLoading","type","validData","filter","item","Object","keys","hasNumericValue","some","key","isNaN","Number","firstItem","keysToPlot","tickFormatter","value","numValue","parseFloat","toString","formatterCurrency","currency","formatterSuffix","suffix","buildPrefixSuffixString","v","concat","formatted","formatNumber","intlOptions","notation","maximumFractionDigits","style","minimumFractionDigits","numberFormatted","error","console","ErrorBoundary","FallbackComponent","ChartBarWrapper","colorTheme","ChartCartesianGrid","ChartXAxis","dataKey","ChartYAxis","map","ChartBar","name","ChartLegend","ChartTooltip","ChartLineWrapper","ChartLine","ChartAreaWrapper","ChartArea","ChartDonutWrapper","ChartDonut","nameKey","radius","prevProps","nextProps","_prevProps$data","_nextProps$data","_prevProps$data2","_nextProps$data2","JSON","stringify","Copyable","_ref13","_useState","useState","_useState2","_slicedToArray","copied","setCopied","handleCopy","navigator","clipboard","writeText","setTimeout","Tooltip","placement","TooltipInteractiveWrapper","IconButton","icon","CopyIcon","emphasis","accessibilityLabel","onClick","CopyableText","_ref14","TableCellLinkRenderer","_ref15","_cell$text","cell","onActionClick","useGenUIAction","linkNode","action","text","copyable","RenderTableCellContent","_ref16","component","_cell$value","Amount","indicatorColor","Indicator","badgeColor","Badge","dateValue","dayjs","isValid","defaultFormat","format","dateFormat","String","rowActionIconMap","check","CheckIcon","close","CloseIcon","edit","EditIcon","TrashIcon","download","DownloadIcon","view","EyeIcon","copy","TableRowHoverActions","_ref17","rowActions","rowIndex","rowData","createActionEvent","eventName","rowAction","index","Button","_rowAction$action","IconComponent","_rowAction$action2","calculateColumnWidths","headers","_rows","RenderTableComponent","_ref18","rows","columnWidths","tableData","nodes","row","id","cells","Table","backgroundColor","rowDensity","gridTemplateColumns","join","TableHeader","TableHeaderRow","header","TableHeaderCell","TableBody","TableRow","onHover","hoverActions","cellIndex","TableCell","RenderCardComponent","_ref19","description","footer","hasHeader","Card","padding","CardHeader","CardHeaderLeading","subtitle","CardBody","child","GenUIComponentRenderer","CardFooter","showDivider","CardFooterLeading","RenderBadgeComponent","_ref20","RenderSpacerComponent","_ref21","sizeMap","small","medium","large","RenderDividerComponent","_ref22","_ref22$orientation","orientation","paddingY","_objectSpread","RenderStackComponent","_ref23","_ref23$direction","direction","RenderGridComponent","_ref24","columns","RenderInfoGroupComponent","_ref25","items","validItems","_item$value","_item$key","InfoGroup","itemOrientation","valueAlign","_item$key4","_item$key5","isString","_item$key2","_item$key3","InfoItem","InfoItemKey","helpText","InfoItemValue","RenderButtonComponent","_ref26","handleClick","marginTop","RenderLinkComponent","_ref27","RenderAlertComponent","_ref28","_actions$primary","_actions$secondary","_ref28$color","actions","validColor","iconMap","information","InfoIcon","negative","AlertTriangleIcon","neutral","notice","positive","CheckCircleIcon","Icon","Alert","isDismissible","primary","_actions$primary2","secondary","_actions$secondary2","RenderAmountComponent","_ref29","resolvedCurrency","ComponentRenderer","createBuiltInRegistry","_ref30","_defineProperty","renderer"],"mappings":"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"}
@@ -2,14 +2,23 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
4
4
  import { useRef, useState, useEffect, useCallback, memo } from 'react';
5
+ import { ErrorBoundary } from 'react-error-boundary';
5
6
  import styled, { createGlobalStyle, keyframes } from 'styled-components';
6
7
  import { useGenUI, GenUIContext } from './GenUIContext.web.js';
7
8
  import { useResize } from '../../utils/useResize.js';
8
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
9
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
9
10
 
10
11
  var _templateObject;
11
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ var ComponentErrorFallback = function ComponentErrorFallback() {
15
+ // eslint-disable-next-line react/jsx-no-useless-fragment
16
+ return /*#__PURE__*/jsx(Fragment, {});
17
+ };
18
+
19
+ /**
20
+ * Block-level component types that should have the animated gradient border effect
21
+ */
13
22
  var BLOCK_LEVEL_COMPONENTS = new Set(['CARD', 'TABLE']);
14
23
 
15
24
  /**
@@ -141,7 +150,7 @@ var getComponentKey = function getComponentKey(component, index) {
141
150
  * Internal component that renders a single GenUI component based on its schema
142
151
  * Must be used within a GenUIProvider
143
152
  */
144
- var ComponentRenderer = /*#__PURE__*/memo(function (_ref3) {
153
+ var ComponentRendererInner = /*#__PURE__*/memo(function (_ref3) {
145
154
  var component = _ref3.component,
146
155
  index = _ref3.index;
147
156
  var _useGenUI = useGenUI(),
@@ -190,6 +199,17 @@ var ComponentRenderer = /*#__PURE__*/memo(function (_ref3) {
190
199
  console.warn("[GenUI]: Unsupported component: ".concat(componentType));
191
200
  return null;
192
201
  });
202
+ var ComponentRenderer = /*#__PURE__*/memo(function (_ref4) {
203
+ var component = _ref4.component,
204
+ index = _ref4.index;
205
+ return /*#__PURE__*/jsx(ErrorBoundary, {
206
+ FallbackComponent: ComponentErrorFallback,
207
+ children: /*#__PURE__*/jsx(ComponentRendererInner, {
208
+ component: component,
209
+ index: index
210
+ })
211
+ });
212
+ });
193
213
  /**
194
214
  * Renders an array of GenUI components
195
215
  * Must be used within a GenUIProvider
@@ -201,10 +221,10 @@ var ComponentRenderer = /*#__PURE__*/memo(function (_ref3) {
201
221
  * </GenUIProvider>
202
222
  * ```
203
223
  */
204
- var GenUISchemaRenderer = /*#__PURE__*/memo(function (_ref4) {
205
- var components = _ref4.components,
206
- isAnimating = _ref4.isAnimating,
207
- animateOptions = _ref4.animateOptions;
224
+ var GenUISchemaRenderer = /*#__PURE__*/memo(function (_ref5) {
225
+ var components = _ref5.components,
226
+ isAnimating = _ref5.isAnimating,
227
+ animateOptions = _ref5.animateOptions;
208
228
  var parentContext = useGenUI();
209
229
  if (!components || components.length === 0) {
210
230
  return null;