@razorpay/blade 12.95.3 → 12.95.5

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.
Files changed (46) hide show
  1. package/assets/spark/bottom-frame.jpg +0 -0
  2. package/build/lib/native/components/Spark/RzpGlass/presets.js +1 -1
  3. package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -1
  4. package/build/lib/web/development/_virtual/cloneDeep.js +1 -1
  5. package/build/lib/web/development/_virtual/cloneDeep3.js +1 -1
  6. package/build/lib/web/development/_virtual/flatten.js +1 -1
  7. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  8. package/build/lib/web/development/components/ActionList/ActionListBox.web.js +2 -1
  9. package/build/lib/web/development/components/ActionList/ActionListBox.web.js.map +1 -1
  10. package/build/lib/web/development/components/BaseMenu/BaseMenuItem/StyledMenuItemContainer.web.js +3 -0
  11. package/build/lib/web/development/components/BaseMenu/BaseMenuItem/StyledMenuItemContainer.web.js.map +1 -1
  12. package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js +6 -6
  13. package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js.map +1 -1
  14. package/build/lib/web/development/components/GenUI/GenUIComponents.web.js +13 -64
  15. package/build/lib/web/development/components/GenUI/GenUIComponents.web.js.map +1 -1
  16. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +2 -1
  17. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
  18. package/build/lib/web/development/components/TopNav/TabNav/TabNavIndicator.web.js +1 -1
  19. package/build/lib/web/development/components/TopNav/TabNav/TabNavIndicator.web.js.map +1 -1
  20. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  21. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  22. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  23. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  24. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  25. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  26. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  27. package/build/lib/web/development/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  28. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  29. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  30. package/build/lib/web/production/components/ActionList/ActionListBox.web.js +2 -1
  31. package/build/lib/web/production/components/ActionList/ActionListBox.web.js.map +1 -1
  32. package/build/lib/web/production/components/BaseMenu/BaseMenuItem/StyledMenuItemContainer.web.js +3 -0
  33. package/build/lib/web/production/components/BaseMenu/BaseMenuItem/StyledMenuItemContainer.web.js.map +1 -1
  34. package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js +6 -6
  35. package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js.map +1 -1
  36. package/build/lib/web/production/components/GenUI/GenUIComponents.web.js +13 -64
  37. package/build/lib/web/production/components/GenUI/GenUIComponents.web.js.map +1 -1
  38. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +2 -1
  39. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
  40. package/build/lib/web/production/components/TopNav/TabNav/TabNavIndicator.web.js +1 -1
  41. package/build/lib/web/production/components/TopNav/TabNav/TabNavIndicator.web.js.map +1 -1
  42. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  43. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  44. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  45. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  46. package/package.json +3 -2
@@ -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// px per average character at ~14px font size\nconst CHAR_WIDTH = 7.5;\n// horizontal cell padding (left + right)\nconst CELL_H_PADDING = 8;\n\n// Returns the minimum pixel width hint for a cell based on its content type.\n// Used as the `min` track in `minmax(min, max-content)` so columns never\n// collapse below a sensible floor while still growing to fit real content.\nconst getCellMinWidth = (cell?: Partial<TableCellType>): number => {\n if (!cell?.component) return 80;\n switch (cell.component) {\n case 'TEXT':\n return Math.max(80, Math.min(300, (cell.value?.length ?? 1) * CHAR_WIDTH + CELL_H_PADDING));\n case 'AMOUNT':\n // currency symbol + digits + separators\n return Math.max(\n 100,\n (String(cell.value?.toString() ?? 0).length + 2) * CHAR_WIDTH + CELL_H_PADDING,\n );\n case 'INDICATOR':\n return Math.max(100, (cell.value?.length ?? 1) * CHAR_WIDTH);\n case 'BADGE':\n return Math.max(80, (cell.value?.length ?? 1) * CHAR_WIDTH);\n case 'DATE': {\n const dateValue = dayjs(cell.value);\n if (!dateValue.isValid()) {\n return (cell.value?.length ?? 0) * CHAR_WIDTH;\n }\n const defaultFormat = 'DD MMM YYYY, HH:mm';\n const formatted = dateValue.format(cell.dateFormat || defaultFormat);\n return formatted.length * CHAR_WIDTH;\n }\n case 'LINK':\n return Math.max(80, Math.min(250, (cell.text?.length ?? 1) * CHAR_WIDTH + CELL_H_PADDING));\n default:\n return 80;\n }\n};\n\n// Produces one CSS grid track per column as a `fr` value proportional to\n// the estimated content width so columns fill the full table width while\n// still reflecting relative content size (wider content → more space).\nconst calculateColumnWidths = (headers: string[], rows: Partial<TableCellType>[][]): string[] => {\n const weights = headers.map((header, colIndex) => {\n const headerWeight = header.length * CHAR_WIDTH + CELL_H_PADDING;\n const cellWeight = rows.reduce((max, row) => {\n const cell = row[colIndex];\n return Math.max(max, getCellMinWidth(cell));\n }, 80);\n return Math.max(headerWeight, cellWeight);\n });\n\n // Normalise to smallest weight so fr numbers stay small and readable\n const minWeight = Math.min(...weights);\n return weights.map((w) => `${Math.round((w / minWeight) * 10) / 10}fr`);\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 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 if (!title && !description) {\n return null;\n }\n\n return (\n <Box height=\"100%\" display=\"flex\" flexDirection=\"column\" gap=\"spacing.3\">\n <Card width=\"100%\" height=\"100%\" padding=\"spacing.7\">\n <CardHeader showDivider={false}>\n <CardHeaderLeading title={title || ''} subtitle={description || ''} />\n </CardHeader>\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","CHAR_WIDTH","CELL_H_PADDING","getCellMinWidth","_cell$value$length","_cell$value2","_cell$value$toString","_cell$value3","_cell$value$length2","_cell$value4","_cell$value$length3","_cell$value5","_cell$text$length","_cell$text2","Math","max","min","_cell$value$length4","_cell$value6","calculateColumnWidths","headers","rows","weights","header","colIndex","headerWeight","cellWeight","reduce","row","minWeight","apply","_toConsumableArray","w","round","RenderTableComponent","_ref18","columnWidths","tableData","nodes","id","cells","Table","backgroundColor","rowDensity","gridTemplateColumns","join","TableHeader","TableHeaderRow","TableHeaderCell","TableBody","TableRow","hoverActions","cellIndex","TableCell","RenderCardComponent","_ref19","description","footer","Card","padding","CardHeader","showDivider","CardHeaderLeading","subtitle","CardBody","child","GenUIComponentRenderer","CardFooter","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 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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"}
@@ -115,8 +115,9 @@ var getPresets = function getPresets(assetsPath) {
115
115
  gradientMapSrc: "".concat(assetsPath, "/colorama-gradient-map-green.jpg"),
116
116
  gradientMap2Src: "".concat(assetsPath, "/colorama-gradient-map-blue.jpg"),
117
117
  gradientMapBlend: 0,
118
+ modifyGamma: 0.97,
118
119
  edgeFeather: [0.3, 0, 3, 0],
119
- panY: -0.04,
120
+ panY: 0.03,
120
121
  numSegments: 30,
121
122
  enableBloom: false,
122
123
  slitAngle: 15 * Math.PI / 180
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sources":["../../../../../../../src/components/Spark/RzpGlass/presets.ts"],"sourcesContent":["import type { RzpGlassConfig, RzpGlassPresetDefinition } from './types';\n\n// ============================================\n// DEFAULT CONFIG VALUES\n// ============================================\nconst DEFAULT_CONFIG: Required<RzpGlassConfig> = {\n // Input Phase\n inputMin: 0.0,\n inputMax: 1.0,\n // Modify Phase\n modifyGamma: 1.05,\n posterizeLevels: 0.0,\n cycleRepetitions: 1.0,\n phaseShift: 0.0,\n cycleSpeed: 0.0,\n // Output Cycle\n wrapMode: false,\n reverse: true,\n // Composite\n blendWithOriginal: 0.0,\n gradientMapBlend: 0.0,\n gradientMapBlendDuration: 0.6,\n\n // Center Element\n enableCenterElement: true,\n centerAnimDuration: 6.0,\n\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.2,\n ccContrast: 0.0,\n\n // Displacement\n numSegments: 45.0,\n slitAngle: 0.15,\n displacementX: -12.0,\n displacementY: -20.0,\n\n // Playback\n paused: false,\n startTime: 0,\n endTime: 14,\n animateLightIndependently: false,\n playbackRate: 1.0,\n\n // Light Effect\n lightIntensity: 0.2,\n lightStartFrame: 140,\n\n // Effect Toggles\n enableDisplacement: true,\n enableColorama: true,\n enableBloom: true,\n enableLightSweep: true,\n\n // Canvas\n aspectRatio: 3 / 2,\n\n // Zoom & Pan\n zoom: 1,\n panX: 0,\n panY: 0,\n edgeFeather: [0, 0, 0, 0],\n\n // Background Color\n backgroundColor: [-1, -1, -1],\n\n // Cycle Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n};\n\n// ============================================\n// PRESETS\n// ============================================\nexport type RzpGlassPreset = 'default' | 'zoomed' | 'bottomWave' | 'rippleWave' | 'circleSlideUp';\n\n/**\n * Get preset definitions with dynamic CDN path support.\n * Asset URLs in presets will use the provided assetsPath.\n */\nconst getPresets = (assetsPath: string): Record<RzpGlassPreset, RzpGlassPresetDefinition> => ({\n /** Baseline — identical to DEFAULT_CONFIG, no overrides */\n default: {},\n\n /**\n * Zoomed-in closeup: high zoom, fine segments, edge feathering.\n * Good for a tight card/badge usage.\n */\n zoomed: {\n lightIntensity: 0.2,\n lightStartFrame: 0,\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.62,\n ccContrast: 0.0,\n // Displacement\n numSegments: 20.0,\n slitAngle: (15 * Math.PI) / 180,\n displacementX: -12.0,\n displacementY: -20.0,\n // Playback\n paused: true,\n startTime: 10,\n endTime: 14,\n animateLightIndependently: true,\n // Zoom & Pan\n zoom: 5,\n panX: -0.01,\n panY: 0.1,\n edgeFeather: [3, 5, 3, 3],\n // Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n },\n bottomWave: {\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n gradientMapBlend: 0,\n edgeFeather: [0.3, 0, 3, 0],\n panY: -0.04,\n numSegments: 30,\n enableBloom: false,\n slitAngle: (15 * Math.PI) / 180,\n },\n rippleWave: {\n videoSrc: `${assetsPath}/ray-pulse.mp4`,\n aspectRatio: 1.61,\n playbackRate: 0.7,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 35,\n ccGamma: 2.0,\n displacementX: -2.0,\n displacementY: -11.0,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 2,\n },\n circleSlideUp: {\n videoSrc: `${assetsPath}/success-animation-circle.mp4`,\n aspectRatio: 1.61,\n playbackRate: 0.85,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 25,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 1,\n },\n});\n\nexport { DEFAULT_CONFIG, getPresets };\n"],"names":["DEFAULT_CONFIG","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","gradientMapBlend","gradientMapBlendDuration","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","numSegments","slitAngle","displacementX","displacementY","paused","startTime","endTime","animateLightIndependently","playbackRate","lightIntensity","lightStartFrame","enableDisplacement","enableColorama","enableBloom","enableLightSweep","aspectRatio","zoom","panX","panY","edgeFeather","backgroundColor","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","getPresets","assetsPath","zoomed","Math","PI","bottomWave","imageSrc","concat","gradientMapSrc","gradientMap2Src","rippleWave","videoSrc","circleSlideUp"],"mappings":"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"}
1
+ {"version":3,"file":"presets.js","sources":["../../../../../../../src/components/Spark/RzpGlass/presets.ts"],"sourcesContent":["import type { RzpGlassConfig, RzpGlassPresetDefinition } from './types';\n\n// ============================================\n// DEFAULT CONFIG VALUES\n// ============================================\nconst DEFAULT_CONFIG: Required<RzpGlassConfig> = {\n // Input Phase\n inputMin: 0.0,\n inputMax: 1.0,\n // Modify Phase\n modifyGamma: 1.05,\n posterizeLevels: 0.0,\n cycleRepetitions: 1.0,\n phaseShift: 0.0,\n cycleSpeed: 0.0,\n // Output Cycle\n wrapMode: false,\n reverse: true,\n // Composite\n blendWithOriginal: 0.0,\n gradientMapBlend: 0.0,\n gradientMapBlendDuration: 0.6,\n\n // Center Element\n enableCenterElement: true,\n centerAnimDuration: 6.0,\n\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.2,\n ccContrast: 0.0,\n\n // Displacement\n numSegments: 45.0,\n slitAngle: 0.15,\n displacementX: -12.0,\n displacementY: -20.0,\n\n // Playback\n paused: false,\n startTime: 0,\n endTime: 14,\n animateLightIndependently: false,\n playbackRate: 1.0,\n\n // Light Effect\n lightIntensity: 0.2,\n lightStartFrame: 140,\n\n // Effect Toggles\n enableDisplacement: true,\n enableColorama: true,\n enableBloom: true,\n enableLightSweep: true,\n\n // Canvas\n aspectRatio: 3 / 2,\n\n // Zoom & Pan\n zoom: 1,\n panX: 0,\n panY: 0,\n edgeFeather: [0, 0, 0, 0],\n\n // Background Color\n backgroundColor: [-1, -1, -1],\n\n // Cycle Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n};\n\n// ============================================\n// PRESETS\n// ============================================\nexport type RzpGlassPreset = 'default' | 'zoomed' | 'bottomWave' | 'rippleWave' | 'circleSlideUp';\n\n/**\n * Get preset definitions with dynamic CDN path support.\n * Asset URLs in presets will use the provided assetsPath.\n */\nconst getPresets = (assetsPath: string): Record<RzpGlassPreset, RzpGlassPresetDefinition> => ({\n /** Baseline — identical to DEFAULT_CONFIG, no overrides */\n default: {},\n\n /**\n * Zoomed-in closeup: high zoom, fine segments, edge feathering.\n * Good for a tight card/badge usage.\n */\n zoomed: {\n lightIntensity: 0.2,\n lightStartFrame: 0,\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.62,\n ccContrast: 0.0,\n // Displacement\n numSegments: 20.0,\n slitAngle: (15 * Math.PI) / 180,\n displacementX: -12.0,\n displacementY: -20.0,\n // Playback\n paused: true,\n startTime: 10,\n endTime: 14,\n animateLightIndependently: true,\n // Zoom & Pan\n zoom: 5,\n panX: -0.01,\n panY: 0.1,\n edgeFeather: [3, 5, 3, 3],\n // Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n },\n bottomWave: {\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n gradientMapBlend: 0,\n modifyGamma: 0.97,\n edgeFeather: [0.3, 0, 3, 0],\n panY: 0.03,\n numSegments: 30,\n enableBloom: false,\n slitAngle: (15 * Math.PI) / 180,\n },\n rippleWave: {\n videoSrc: `${assetsPath}/ray-pulse.mp4`,\n aspectRatio: 1.61,\n playbackRate: 0.7,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 35,\n ccGamma: 2.0,\n displacementX: -2.0,\n displacementY: -11.0,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 2,\n },\n circleSlideUp: {\n videoSrc: `${assetsPath}/success-animation-circle.mp4`,\n aspectRatio: 1.61,\n playbackRate: 0.85,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 25,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 1,\n },\n});\n\nexport { DEFAULT_CONFIG, getPresets };\n"],"names":["DEFAULT_CONFIG","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","gradientMapBlend","gradientMapBlendDuration","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","numSegments","slitAngle","displacementX","displacementY","paused","startTime","endTime","animateLightIndependently","playbackRate","lightIntensity","lightStartFrame","enableDisplacement","enableColorama","enableBloom","enableLightSweep","aspectRatio","zoom","panX","panY","edgeFeather","backgroundColor","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","getPresets","assetsPath","zoomed","Math","PI","bottomWave","imageSrc","concat","gradientMapSrc","gradientMap2Src","rippleWave","videoSrc","circleSlideUp"],"mappings":"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"}
@@ -40,7 +40,7 @@ var StyledTabNavIndicatorLine = /*#__PURE__*/styled(BaseBox).withConfig({
40
40
  return {
41
41
  position: 'relative',
42
42
  width: '100%',
43
- height: makeSpace(theme.border.width.thin),
43
+ height: makeSpace(theme.border.width.thinner),
44
44
  borderTopLeftRadius: makeBorderSize(theme.border.radius.medium),
45
45
  borderTopRightRadius: makeBorderSize(theme.border.radius.medium)
46
46
  };