@etus/ui 0.4.0-beta.8 → 0.4.0-beta.9

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 (65) hide show
  1. package/dist/{chunk-2YWWZEPE.js → chunk-2HM5Z2YP.js} +3 -3
  2. package/dist/{chunk-2YWWZEPE.js.map → chunk-2HM5Z2YP.js.map} +1 -1
  3. package/dist/{chunk-SCGKQ5RE.js → chunk-2ROFZG3A.js} +3 -3
  4. package/dist/{chunk-SCGKQ5RE.js.map → chunk-2ROFZG3A.js.map} +1 -1
  5. package/dist/{chunk-YP2ATSXP.js → chunk-3BBOSSDG.js} +14 -6
  6. package/dist/{chunk-YP2ATSXP.js.map → chunk-3BBOSSDG.js.map} +1 -1
  7. package/dist/{chunk-LEAK22ZP.js → chunk-55RLLBXW.js} +3 -3
  8. package/dist/{chunk-LEAK22ZP.js.map → chunk-55RLLBXW.js.map} +1 -1
  9. package/dist/{chunk-43BS3PPX.js → chunk-5DMK7CVS.js} +3 -3
  10. package/dist/{chunk-43BS3PPX.js.map → chunk-5DMK7CVS.js.map} +1 -1
  11. package/dist/{chunk-5TZDEGZN.js → chunk-EVZ2GZU4.js} +3 -3
  12. package/dist/{chunk-5TZDEGZN.js.map → chunk-EVZ2GZU4.js.map} +1 -1
  13. package/dist/{chunk-4GQN76L7.js → chunk-G7PBPX3K.js} +3 -3
  14. package/dist/{chunk-4GQN76L7.js.map → chunk-G7PBPX3K.js.map} +1 -1
  15. package/dist/{chunk-BMNCNBPA.js → chunk-GDSYLR7L.js} +3 -3
  16. package/dist/{chunk-BMNCNBPA.js.map → chunk-GDSYLR7L.js.map} +1 -1
  17. package/dist/{chunk-237TQKWH.js → chunk-LNSCL76Q.js} +3 -3
  18. package/dist/{chunk-237TQKWH.js.map → chunk-LNSCL76Q.js.map} +1 -1
  19. package/dist/{chunk-JMZ4CO6R.js → chunk-NCT5WXKG.js} +3 -3
  20. package/dist/{chunk-JMZ4CO6R.js.map → chunk-NCT5WXKG.js.map} +1 -1
  21. package/dist/{chunk-KZRTQF64.js → chunk-RJ2QVURO.js} +3 -3
  22. package/dist/{chunk-KZRTQF64.js.map → chunk-RJ2QVURO.js.map} +1 -1
  23. package/dist/{chunk-YDZBLZVZ.js → chunk-SLRCXCHM.js} +3 -3
  24. package/dist/{chunk-YDZBLZVZ.js.map → chunk-SLRCXCHM.js.map} +1 -1
  25. package/dist/{chunk-JONTKXGK.js → chunk-U2CXFKRK.js} +3 -3
  26. package/dist/{chunk-JONTKXGK.js.map → chunk-U2CXFKRK.js.map} +1 -1
  27. package/dist/{chunk-B4ETIQOO.js → chunk-U2R47SPY.js} +3 -3
  28. package/dist/{chunk-B4ETIQOO.js.map → chunk-U2R47SPY.js.map} +1 -1
  29. package/dist/{chunk-ON7WFRYH.js → chunk-UST7EAJM.js} +3 -3
  30. package/dist/{chunk-ON7WFRYH.js.map → chunk-UST7EAJM.js.map} +1 -1
  31. package/dist/{chunk-QZWKXUZP.js → chunk-VBJ26PZJ.js} +3 -3
  32. package/dist/{chunk-QZWKXUZP.js.map → chunk-VBJ26PZJ.js.map} +1 -1
  33. package/dist/{chunk-YQX7XZES.js → chunk-YZ25HHV2.js} +3 -3
  34. package/dist/{chunk-YQX7XZES.js.map → chunk-YZ25HHV2.js.map} +1 -1
  35. package/dist/components/advanced/ReportBuilder/index.js +2 -2
  36. package/dist/components/advanced/index.js +6 -6
  37. package/dist/components/data-display/DashboardFilterbar/index.js +1 -1
  38. package/dist/components/data-display/List/index.js +2 -2
  39. package/dist/components/data-display/index.js +17 -17
  40. package/dist/components/feedback/Notification/index.js +2 -2
  41. package/dist/components/feedback/index.js +4 -4
  42. package/dist/components/forms/Field/index.js +2 -2
  43. package/dist/components/forms/Form/index.js +2 -2
  44. package/dist/components/forms/InputOTPField/index.js +3 -3
  45. package/dist/components/forms/Rating/index.js +1 -1
  46. package/dist/components/forms/TextareaField/index.js +3 -3
  47. package/dist/components/forms/index.js +11 -11
  48. package/dist/components/index.js +73 -73
  49. package/dist/components/layout/index.js +1 -1
  50. package/dist/components/navigation/AccountSwitch/index.js +2 -2
  51. package/dist/components/navigation/Sidebar/index.js +2 -2
  52. package/dist/components/navigation/index.js +11 -11
  53. package/dist/components/primitives/Avatar/index.js +1 -1
  54. package/dist/components/primitives/Label/index.js +1 -1
  55. package/dist/components/primitives/index.js +7 -7
  56. package/dist/components/workflow/ApprovalFlow/index.js +2 -2
  57. package/dist/components/workflow/CommentSystem/index.js +2 -2
  58. package/dist/components/workflow/DashboardBuilder/index.js +2 -2
  59. package/dist/components/workflow/KanbanBoard/index.js +2 -2
  60. package/dist/components/workflow/ReportGenerator/index.js +2 -2
  61. package/dist/components/workflow/index.js +8 -8
  62. package/dist/index.d.ts +6 -6
  63. package/dist/index.js +73 -73
  64. package/dist/styles.css +98 -25
  65. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/workflow/ReportGenerator/ReportGenerator.variants.ts","../src/components/workflow/ReportGenerator/ReportGenerator.tsx"],"names":["FilterIcon"],"mappings":"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","file":"chunk-KZRTQF64.js","sourcesContent":["/* eslint-disable sonarjs/no-duplicate-string -- Tailwind classes are intentionally duplicated across variants */\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ReportGenerator container variants\n */\nexport const reportGeneratorVariants = cva(\n [\n \"relative\",\n \"rounded-lg\",\n \"border\",\n \"border-border\",\n \"bg-card\",\n \"text-card-foreground\",\n ],\n {\n variants: {\n size: {\n default: \"p-6\",\n sm: \"p-4\",\n lg: \"p-8\",\n },\n layout: {\n default: \"\",\n compact: \"max-w-2xl\",\n full: \"w-full\",\n },\n },\n defaultVariants: {\n size: \"default\",\n layout: \"default\",\n },\n }\n)\n\n/**\n * Step indicator variants\n */\nexport const stepIndicatorVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"mb-6\",\n \"pb-6\",\n \"border-b\",\n \"border-border\",\n ],\n {\n variants: {\n size: {\n default: \"gap-4\",\n sm: \"gap-3\",\n lg: \"gap-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Step item variants\n */\nexport const stepItemVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"gap-2\",\n \"transition-colors\",\n \"duration-200\",\n ],\n {\n variants: {\n state: {\n pending: \"text-muted-foreground\",\n active: \"text-primary\",\n complete: \"text-success\",\n },\n clickable: {\n true: \"cursor-pointer hover:text-primary\",\n false: \"\",\n },\n },\n defaultVariants: {\n state: \"pending\",\n clickable: false,\n },\n }\n)\n\n/**\n * Step badge variants\n */\nexport const stepBadgeVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"rounded-full\",\n \"font-medium\",\n \"transition-colors\",\n \"duration-200\",\n ],\n {\n variants: {\n state: {\n pending: \"bg-muted text-muted-foreground\",\n active: \"bg-primary text-primary-foreground\",\n complete: \"bg-success text-success-foreground\",\n },\n size: {\n default: \"h-8 w-8 text-sm\",\n sm: \"h-6 w-6 text-xs\",\n lg: \"h-10 w-10 text-base\",\n },\n },\n defaultVariants: {\n state: \"pending\",\n size: \"default\",\n },\n }\n)\n\n/**\n * Template grid variants\n */\nexport const templateGridVariants = cva(\n [\n \"grid\",\n \"gap-4\",\n ],\n {\n variants: {\n columns: {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-1 sm:grid-cols-2\",\n 3: \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4\",\n },\n },\n defaultVariants: {\n columns: 3,\n },\n }\n)\n\n/**\n * Template card variants\n */\nexport const templateCardVariants = cva(\n [\n \"rounded-lg\",\n \"border\",\n \"border-border\",\n \"bg-background\",\n \"p-4\",\n \"cursor-pointer\",\n \"transition-all\",\n \"duration-200\",\n ],\n {\n variants: {\n state: {\n default: \"hover:border-primary/50 hover:shadow-sm\",\n selected: \"border-primary ring-2 ring-primary/20\",\n },\n },\n defaultVariants: {\n state: \"default\",\n },\n }\n)\n\n/**\n * Configuration section variants\n */\nexport const configSectionVariants = cva(\n [\n \"space-y-4\",\n ],\n {\n variants: {\n size: {\n default: \"mb-6\",\n sm: \"mb-4\",\n lg: \"mb-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Preview container variants\n */\nexport const previewContainerVariants = cva(\n [\n \"rounded-lg\",\n \"border\",\n \"border-border\",\n \"bg-muted/30\",\n \"overflow-hidden\",\n ],\n {\n variants: {\n size: {\n default: \"min-h-96\",\n sm: \"min-h-72\",\n lg: \"min-h-[var(--report-generator-root-min-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Preview header variants\n */\nexport const previewHeaderVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"justify-between\",\n \"border-b\",\n \"border-border\",\n \"bg-card\",\n ],\n {\n variants: {\n size: {\n default: \"px-4 py-3\",\n sm: \"px-3 py-2\",\n lg: \"px-6 py-4\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Preview content variants\n */\nexport const previewContentVariants = cva(\n [\n \"overflow-auto\",\n ],\n {\n variants: {\n size: {\n default: \"p-4 max-h-96\",\n sm: \"p-3 max-h-72\",\n lg: \"p-6 max-h-[var(--report-generator-output-max-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Export button group variants\n */\nexport const exportButtonGroupVariants = cva(\n [\n \"flex\",\n \"flex-wrap\",\n \"gap-2\",\n ],\n {\n variants: {\n align: {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n },\n },\n defaultVariants: {\n align: \"end\",\n },\n }\n)\n\n/**\n * Form actions variants\n */\nexport const formActionsVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"gap-3\",\n \"pt-6\",\n \"border-t\",\n \"border-border\",\n ],\n {\n variants: {\n align: {\n start: \"justify-start\",\n between: \"justify-between\",\n end: \"justify-end\",\n },\n },\n defaultVariants: {\n align: \"between\",\n },\n }\n)\n\n/**\n * Loading state variants\n */\nexport const loadingStateVariants = cva(\n [\n \"flex\",\n \"flex-col\",\n \"items-center\",\n \"justify-center\",\n \"text-center\",\n ],\n {\n variants: {\n size: {\n default: \"py-16 gap-4\",\n sm: \"py-12 gap-3\",\n lg: \"py-20 gap-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Error state variants\n */\nexport const errorStateVariants = cva(\n [\n \"flex\",\n \"flex-col\",\n \"items-center\",\n \"justify-center\",\n \"text-center\",\n \"text-destructive\",\n ],\n {\n variants: {\n size: {\n default: \"py-16 gap-4\",\n sm: \"py-12 gap-3\",\n lg: \"py-20 gap-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport type ReportGeneratorVariantProps = VariantProps<\n typeof reportGeneratorVariants\n>\nexport type StepIndicatorVariantProps = VariantProps<\n typeof stepIndicatorVariants\n>\nexport type StepBadgeVariantProps = VariantProps<typeof stepBadgeVariants>\nexport type TemplateCardVariantProps = VariantProps<typeof templateCardVariants>\nexport type PreviewContainerVariantProps = VariantProps<\n typeof previewContainerVariants\n>\n","import type {\n ColumnDefinition,\n ExportFormat,\n ReportConfig,\n ReportGeneratorProps,\n ReportGeneratorState,\n ReportTemplate,\n ScheduleConfig,\n} from \"./ReportGenerator.types\"\nimport type { KeyboardEvent } from \"react\"\n\nimport {\n AlertCircle,\n ArrowLeft,\n ArrowRight,\n Calendar,\n Check,\n Clock,\n Download,\n Eye,\n FileJson,\n FileSpreadsheet,\n FileText,\n Filter as FilterIcon,\n Loader2,\n Printer,\n Settings2,\n Table2,\n} from \"lucide-react\"\nimport { useCallback, useId, useMemo, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Checkbox } from \"../../forms/Checkbox\"\nimport { Button } from \"../../primitives/Button\"\nimport { Label } from \"../../primitives/Label\"\nimport {\n configSectionVariants,\n errorStateVariants,\n exportButtonGroupVariants,\n formActionsVariants,\n loadingStateVariants,\n previewContainerVariants,\n previewContentVariants,\n previewHeaderVariants,\n reportGeneratorVariants,\n stepBadgeVariants,\n stepIndicatorVariants,\n stepItemVariants,\n templateCardVariants,\n templateGridVariants,\n} from \"./ReportGenerator.variants\"\n\n/**\n * Step definitions\n */\nconst STEPS = [\n { label: \"Selecionar Template\", description: \"Escolha o tipo de relatório\" },\n { label: \"Configurar\", description: \"Defina filtros e colunas\" },\n { label: \"Visualizar\", description: \"Prévia do relatório\" },\n { label: \"Exportar\", description: \"Baixe o relatório\" },\n] as const\n\n/**\n * Export format labels and icons\n */\nconst EXPORT_FORMAT_INFO: Record<\n ExportFormat,\n { icon: React.ComponentType<{ className?: string }>; label: string; }\n> = {\n pdf: { label: \"PDF\", icon: FileText },\n xlsx: { label: \"Excel\", icon: FileSpreadsheet },\n csv: { label: \"CSV\", icon: Table2 },\n json: { label: \"JSON\", icon: FileJson },\n print: { label: \"Imprimir\", icon: Printer },\n}\n\n/**\n * StepIndicator displays the current progress through the wizard\n */\nfunction StepIndicator({\n currentStep,\n completedSteps,\n onStepClick,\n}: {\n completedSteps: number[]\n currentStep: number\n onStepClick?: (step: number) => void\n}) {\n return (\n <div\n aria-label=\"Etapas do gerador de relatórios\"\n className={stepIndicatorVariants()}\n role=\"navigation\"\n >\n {STEPS.map((step, index) => {\n const isComplete = completedSteps.includes(index)\n const isActive = index === currentStep\n const isClickable = onStepClick && (isComplete || index < currentStep)\n\n const handleClick = () => {\n if (isClickable) {\n onStepClick(index)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (isClickable && (e.key === \"Enter\" || e.key === \" \")) {\n e.preventDefault()\n onStepClick(index)\n }\n }\n\n return (\n <div\n key={step.label}\n className={cn(\n stepItemVariants({\n state: isComplete ? \"complete\" : isActive ? \"active\" : \"pending\",\n clickable: isClickable,\n }),\n index > 0 && \"flex-1\"\n )}\n aria-current={isActive ? \"step\" : undefined}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {index > 0 && (\n <div\n className={cn(\n \"h-px flex-1 mr-2\",\n isComplete || isActive ? \"bg-primary\" : \"bg-border\"\n )}\n />\n )}\n <div\n className={stepBadgeVariants({\n state: isComplete ? \"complete\" : isActive ? \"active\" : \"pending\",\n })}\n >\n {isComplete ? <Check className=\"h-4 w-4\" /> : index + 1}\n </div>\n <div className=\"hidden sm:block\">\n <div className=\"text-sm font-medium\">{step.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {step.description}\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\n/**\n * TemplateSelector displays available templates for selection\n */\nfunction TemplateSelector({\n templates,\n selectedTemplate,\n onSelect,\n}: {\n onSelect: (templateId: string) => void\n selectedTemplate?: string\n templates: ReportTemplate[]\n}) {\n const groupedTemplates = useMemo(() => {\n const groups: Record<string, ReportTemplate[]> = {}\n for (const template of templates) {\n const category = template.category\n groups[category] ??= []\n groups[category].push(template)\n }\n return groups\n }, [templates])\n\n const handleTemplateClick = (templateId: string) => {\n onSelect(templateId)\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>, templateId: string) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onSelect(templateId)\n }\n }\n\n return (\n <div aria-label=\"Templates disponíveis\" className=\"space-y-6\" role=\"listbox\">\n {Object.entries(groupedTemplates).map(([category, categoryTemplates]) => (\n <div key={category} className=\"space-y-3\">\n <h3 className=\"text-sm font-medium text-muted-foreground\">\n {category}\n </h3>\n <div className={templateGridVariants()}>\n {categoryTemplates.map((template) => {\n const isSelected = selectedTemplate === template.id\n return (\n <div\n key={template.id}\n className={templateCardVariants({\n state: isSelected ? \"selected\" : \"default\",\n })}\n aria-selected={isSelected}\n role=\"option\"\n tabIndex={0}\n onClick={() => { handleTemplateClick(template.id); }}\n onKeyDown={(e) => { handleKeyDown(e, template.id); }}\n >\n <div className=\"flex items-start gap-3\">\n {template.icon && (\n <div className=\"shrink-0 text-primary\">{template.icon}</div>\n )}\n <div className=\"flex-1 min-w-0\">\n <div className=\"font-medium\">{template.name}</div>\n <div className=\"text-sm text-muted-foreground line-clamp-2\">\n {template.description}\n </div>\n <div className=\"mt-2 text-xs text-muted-foreground\">\n {template.columns.length} colunas\n </div>\n </div>\n {isSelected && (\n <Check className=\"h-5 w-5 text-primary shrink-0\" />\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n ))}\n </div>\n )\n}\n\n/**\n * ConfigurationForm allows configuring the report\n */\nfunction ConfigurationForm({\n template,\n config,\n onChange,\n showSchedule,\n}: {\n config: Partial<ReportConfig>\n onChange: (config: Partial<ReportConfig>) => void\n showSchedule?: boolean\n template: ReportTemplate\n}) {\n const formId = useId()\n\n const handleColumnToggle = (columnId: string, checked: boolean) => {\n const currentColumns = config.columns ?? template.columns.map((c) => c.id)\n const newColumns = checked\n ? [...currentColumns, columnId]\n : currentColumns.filter((id) => id !== columnId)\n onChange({ ...config, columns: newColumns })\n }\n\n const handleTitleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange({ ...config, title: e.target.value })\n }\n\n const handleIncludeChartsChange = (checked: boolean) => {\n onChange({ ...config, includeCharts: checked })\n }\n\n const handleIncludeSummaryChange = (checked: boolean) => {\n onChange({ ...config, includeSummary: checked })\n }\n\n const selectedColumns = config.columns ?? template.columns.map((c) => c.id)\n\n return (\n <div aria-describedby={`${formId}-desc`} className=\"space-y-6\" role=\"form\">\n <p className=\"sr-only\" id={`${formId}-desc`}>\n Configure o relatório selecionando colunas e opções\n </p>\n\n {/* Report Title */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Settings2 className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Configurações Gerais</h3>\n </div>\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor={`${formId}-title`}>Título do Relatório</Label>\n <input\n className=\"mt-1.5 w-full px-3 py-2 rounded-md border border-input bg-background text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n id={`${formId}-title`}\n placeholder={template.name}\n type=\"text\"\n value={config.title ?? \"\"}\n onChange={handleTitleChange}\n />\n </div>\n </div>\n </div>\n\n {/* Column Selection */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Table2 className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Colunas</h3>\n </div>\n <div className=\"grid grid-cols-2 sm:grid-cols-3 gap-3\">\n {template.columns.map((column) => (\n <div key={column.id} className=\"flex items-center gap-2\">\n <Checkbox\n checked={selectedColumns.includes(column.id)}\n id={`${formId}-col-${column.id}`}\n onCheckedChange={(checked) =>\n { handleColumnToggle(column.id, checked === true); }\n }\n />\n <Label\n className=\"text-sm font-normal cursor-pointer\"\n htmlFor={`${formId}-col-${column.id}`}\n >\n {column.label}\n </Label>\n </div>\n ))}\n </div>\n </div>\n\n {/* Filters Section */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <FilterIcon className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Filtros</h3>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {template.defaultFilters && template.defaultFilters.length > 0\n ? `${String(template.defaultFilters.length)} filtro(s) configurado(s)`\n : \"Nenhum filtro configurado\"}\n </p>\n </div>\n\n {/* Options */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Opções</h3>\n </div>\n <div className=\"space-y-3\">\n {template.charts && template.charts.length > 0 && (\n <div className=\"flex items-center gap-2\">\n <Checkbox\n checked={config.includeCharts ?? true}\n id={`${formId}-charts`}\n onCheckedChange={handleIncludeChartsChange}\n />\n <Label\n className=\"text-sm font-normal cursor-pointer\"\n htmlFor={`${formId}-charts`}\n >\n Incluir gráficos\n </Label>\n </div>\n )}\n <div className=\"flex items-center gap-2\">\n <Checkbox\n checked={config.includeSummary ?? true}\n id={`${formId}-summary`}\n onCheckedChange={handleIncludeSummaryChange}\n />\n <Label\n className=\"text-sm font-normal cursor-pointer\"\n htmlFor={`${formId}-summary`}\n >\n Incluir resumo estatístico\n </Label>\n </div>\n </div>\n </div>\n\n {/* Schedule Option */}\n {showSchedule && (\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Clock className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Agendamento</h3>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n Configure o agendamento após gerar o relatório\n </p>\n </div>\n )}\n </div>\n )\n}\n\n/**\n * PreviewPanel displays the report preview\n */\nfunction PreviewPanel({\n data,\n columns,\n config,\n branding,\n}: {\n branding?: ReportGeneratorProps[\"branding\"]\n columns: ColumnDefinition[]\n config: ReportConfig\n data: unknown[]\n}) {\n const selectedColumns = columns.filter((c) => config.columns.includes(c.id))\n\n const formatValue = (value: unknown, column: ColumnDefinition): string => {\n if (value === null || value === undefined) return \"-\"\n\n switch (column.type) {\n case \"currency\":\n return new Intl.NumberFormat(\"pt-BR\", {\n style: \"currency\",\n currency: \"BRL\",\n }).format(Number(value))\n case \"date\":\n return new Intl.DateTimeFormat(\"pt-BR\").format(\n new Date(typeof value === \"string\" || typeof value === \"number\" ? value : 0)\n )\n case \"number\":\n return new Intl.NumberFormat(\"pt-BR\").format(Number(value))\n case \"boolean\":\n return value === true ? \"Sim\" : \"Não\"\n default:\n return typeof value === \"object\" ? JSON.stringify(value) : String(value as boolean | number | string)\n }\n }\n\n return (\n <div className={previewContainerVariants()}>\n <div className={previewHeaderVariants()}>\n <div className=\"flex items-center gap-3\">\n {branding?.logo && (\n <img\n alt={branding.companyName ?? \"Logo\"}\n className=\"h-8 w-auto\"\n src={branding.logo}\n />\n )}\n <div>\n <div className=\"font-semibold\">{config.title || \"Relatório\"}</div>\n {config.description && (\n <div className=\"text-xs text-muted-foreground\">\n {config.description}\n </div>\n )}\n </div>\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {data.length} registro(s)\n </div>\n </div>\n <div className={previewContentVariants()}>\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border\">\n {selectedColumns.map((column) => (\n <th\n key={column.id}\n className=\"px-3 py-2 text-left font-medium text-muted-foreground\"\n >\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.slice(0, 10).map((row, rowIndex) => {\n // Generate stable key from row data since preview data has no IDs\n const rowKey = `row-${String(rowIndex)}-${JSON.stringify(Object.values(row as Record<string, unknown>).slice(0, 2))}`\n return (\n <tr key={rowKey} className=\"border-b border-border/50\">\n {selectedColumns.map((column) => (\n <td key={column.id} className=\"px-3 py-2\">\n {formatValue(\n (row as Record<string, unknown>)[column.field],\n column\n )}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n {data.length > 10 && (\n <div className=\"mt-4 text-center text-sm text-muted-foreground\">\n Mostrando 10 de {data.length} registros\n </div>\n )}\n </div>\n </div>\n )\n}\n\n/**\n * ExportPanel displays export options\n */\nfunction ExportPanel({\n exportFormats,\n onExport,\n isExporting,\n showSchedule,\n onSchedule,\n}: {\n exportFormats: ExportFormat[]\n isExporting: boolean\n onExport: (format: ExportFormat) => void\n onSchedule?: () => void\n showSchedule?: boolean\n}) {\n return (\n <div className=\"space-y-6\">\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Download className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Formato de Exportação</h3>\n </div>\n <div className={exportButtonGroupVariants({ align: \"start\" })}>\n {exportFormats.map((format) => {\n const info = EXPORT_FORMAT_INFO[format]\n const Icon = info.icon\n return (\n <Button\n key={format}\n disabled={isExporting}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => { onExport(format); }}\n >\n <Icon className=\"h-4 w-4 mr-2\" />\n {info.label}\n </Button>\n )\n })}\n </div>\n </div>\n\n {showSchedule && onSchedule && (\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Agendar Relatório</h3>\n </div>\n <Button variant=\"outline\" onClick={onSchedule}>\n <Clock className=\"h-4 w-4 mr-2\" />\n Configurar Agendamento\n </Button>\n </div>\n )}\n </div>\n )\n}\n\n/**\n * ReportGenerator is a wizard-style component for creating and exporting reports\n */\nfunction ReportGenerator({\n templates,\n dataSource,\n defaultTemplate,\n exportFormats = [\"pdf\", \"xlsx\", \"csv\"],\n showPreview = true,\n showSchedule = false,\n maxRows = 10000,\n branding,\n className,\n onGenerate,\n onReportExport,\n onSchedule,\n onReportError,\n onConfigChange,\n size,\n layout,\n}: ReportGeneratorProps) {\n const componentId = useId()\n\n // State\n const [currentStep, setCurrentStep] = useState(0)\n const [completedSteps, setCompletedSteps] = useState<number[]>([])\n const [generatorState, setGeneratorState] =\n useState<ReportGeneratorState>(\"idle\")\n const [selectedTemplateId, setSelectedTemplateId] = useState<string | undefined>(\n defaultTemplate\n )\n const [config, setConfig] = useState<Partial<ReportConfig>>({})\n const [previewData, setPreviewData] = useState<unknown[]>([])\n const [error, setError] = useState<Error | null>(null)\n\n // Computed values\n const selectedTemplate = useMemo(\n () => templates.find((t) => t.id === selectedTemplateId),\n [templates, selectedTemplateId]\n )\n\n const effectiveSteps = useMemo(() => {\n if (!showPreview) {\n return STEPS.filter((_, index) => index !== 2)\n }\n return STEPS\n }, [showPreview])\n\n const isGenerating = generatorState === \"generating\"\n const isExporting = generatorState === \"exporting\"\n\n // Handlers\n const handleTemplateSelect = useCallback(\n (templateId: string) => {\n setSelectedTemplateId(templateId)\n const template = templates.find((t) => t.id === templateId)\n if (template) {\n const initialConfig: Partial<ReportConfig> = {\n templateId,\n title: template.name,\n columns: template.columns.map((c) => c.id),\n filters: template.defaultFilters ?? [],\n includeCharts: true,\n includeSummary: true,\n }\n setConfig(initialConfig)\n onConfigChange?.({ config: initialConfig as ReportConfig })\n }\n },\n [templates, onConfigChange]\n )\n\n const handleConfigChange = useCallback(\n (newConfig: Partial<ReportConfig>) => {\n setConfig(newConfig)\n onConfigChange?.({ config: newConfig as ReportConfig })\n },\n [onConfigChange]\n )\n\n const handleNext = useCallback(() => {\n // Mark current step as complete\n if (!completedSteps.includes(currentStep)) {\n setCompletedSteps((prev) => [...prev, currentStep])\n }\n\n // Moving from template selection to configuration\n if (currentStep === 0 && !selectedTemplateId) {\n return\n }\n\n // Moving to preview step - generate report\n if (currentStep === 1 && showPreview) {\n setGeneratorState(\"generating\")\n try {\n onGenerate?.({ config: config as ReportConfig })\n\n // Simulate data fetching based on data source\n let data: unknown[] = []\n if (dataSource.type === \"static\" && dataSource.data) {\n data = dataSource.data.slice(0, maxRows)\n } else {\n // For API/query, we'd fetch data here\n // For now, use empty array as placeholder\n data = []\n }\n\n setPreviewData(data)\n setGeneratorState(\"preview\")\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n setError(errorObj)\n setGeneratorState(\"error\")\n onReportError?.({ error: errorObj })\n return\n }\n }\n\n setCurrentStep((prev) => Math.min(prev + 1, effectiveSteps.length - 1))\n }, [\n currentStep,\n completedSteps,\n selectedTemplateId,\n showPreview,\n config,\n dataSource,\n maxRows,\n effectiveSteps.length,\n onGenerate,\n onReportError,\n ])\n\n const handleBack = useCallback(() => {\n setCurrentStep((prev) => Math.max(prev - 1, 0))\n if (generatorState === \"error\") {\n setGeneratorState(\"idle\")\n setError(null)\n }\n }, [generatorState])\n\n const handleStepClick = useCallback(\n (step: number) => {\n if (step < currentStep || completedSteps.includes(step)) {\n setCurrentStep(step)\n }\n },\n [currentStep, completedSteps]\n )\n\n const handleExport = useCallback(\n (format: ExportFormat) => {\n setGeneratorState(\"exporting\")\n try {\n // Create export blob based on format\n const content = JSON.stringify({\n config,\n data: previewData,\n format,\n generatedAt: new Date().toISOString(),\n })\n const blob = new Blob([content], { type: \"application/json\" })\n\n onReportExport?.({ format, data: blob })\n setGeneratorState(\"idle\")\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n setError(errorObj)\n setGeneratorState(\"error\")\n onReportError?.({ error: errorObj })\n }\n },\n [config, previewData, onReportExport, onReportError]\n )\n\n const handleSchedule = useCallback(() => {\n const schedule: ScheduleConfig = {\n frequency: \"weekly\",\n time: \"09:00\",\n recipients: [],\n format: \"pdf\",\n }\n onSchedule?.({ schedule })\n }, [onSchedule])\n\n // Determine if we can proceed to next step\n const canProceed = useMemo(() => {\n switch (currentStep) {\n case 0:\n return !!selectedTemplateId\n case 1:\n return (\n config.columns && config.columns.length > 0 && !!config.title?.trim()\n )\n default:\n return true\n }\n }, [currentStep, selectedTemplateId, config])\n\n // Render loading state for generation only\n if (isGenerating) {\n return (\n <div\n aria-busy=\"true\"\n aria-describedby={`${componentId}-loading`}\n className={cn(reportGeneratorVariants({ size, layout }), className)}\n role=\"status\"\n >\n <div className={loadingStateVariants()}>\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n <div id={`${componentId}-loading`}>\n <p className=\"font-medium\">Gerando relatório...</p>\n <p className=\"text-sm text-muted-foreground\">\n Por favor, aguarde\n </p>\n </div>\n </div>\n </div>\n )\n }\n\n // Render error state\n if (generatorState === \"error\" && error) {\n return (\n <div\n aria-describedby={`${componentId}-error`}\n className={cn(reportGeneratorVariants({ size, layout }), className)}\n role=\"alert\"\n >\n <div className={errorStateVariants()}>\n <AlertCircle className=\"h-8 w-8\" />\n <div id={`${componentId}-error`}>\n <p className=\"font-medium\">Erro ao gerar relatório</p>\n <p className=\"text-sm\">{error.message}</p>\n </div>\n <Button variant=\"outline\" onClick={handleBack}>\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\n Voltar\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <div\n aria-describedby={`${componentId}-desc`}\n aria-label=\"Gerador de Relatórios\"\n className={cn(reportGeneratorVariants({ size, layout }), className)}\n data-slot=\"report-generator\"\n role=\"form\"\n >\n <p className=\"sr-only\" id={`${componentId}-desc`}>\n Use este assistente para criar e exportar relatórios personalizados\n </p>\n\n {/* Step Indicator */}\n <StepIndicator\n completedSteps={completedSteps}\n currentStep={currentStep}\n onStepClick={handleStepClick}\n />\n\n {/* Step Content */}\n <div aria-live=\"polite\" className=\"min-h-72\">\n {/* Step 0: Template Selection */}\n {currentStep === 0 && (\n <TemplateSelector\n selectedTemplate={selectedTemplateId}\n templates={templates}\n onSelect={handleTemplateSelect}\n />\n )}\n\n {/* Step 1: Configuration */}\n {currentStep === 1 && selectedTemplate && (\n <ConfigurationForm\n config={config}\n showSchedule={showSchedule}\n template={selectedTemplate}\n onChange={handleConfigChange}\n />\n )}\n\n {/* Step 2: Preview (if enabled) */}\n {currentStep === 2 && showPreview && selectedTemplate && (\n <PreviewPanel\n branding={branding}\n columns={selectedTemplate.columns}\n config={config as ReportConfig}\n data={previewData}\n />\n )}\n\n {/* Step 3/2: Export */}\n {((currentStep === 3 && showPreview) ||\n (currentStep === 2 && !showPreview)) && (\n <ExportPanel\n exportFormats={exportFormats}\n isExporting={isExporting}\n showSchedule={showSchedule}\n onExport={handleExport}\n onSchedule={showSchedule ? handleSchedule : undefined}\n />\n )}\n </div>\n\n {/* Navigation Actions */}\n <div className={formActionsVariants()}>\n <Button\n disabled={currentStep === 0}\n variant=\"outline\"\n onClick={handleBack}\n >\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\n Voltar\n </Button>\n {currentStep < effectiveSteps.length - 1 ? (\n <Button disabled={!canProceed} onClick={handleNext}>\n Próximo\n <ArrowRight className=\"h-4 w-4 ml-2\" />\n </Button>\n ) : null}\n </div>\n </div>\n )\n}\n\nexport { ReportGenerator }\n"]}
1
+ {"version":3,"sources":["../src/components/workflow/ReportGenerator/ReportGenerator.variants.ts","../src/components/workflow/ReportGenerator/ReportGenerator.tsx"],"names":["FilterIcon"],"mappings":"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","file":"chunk-RJ2QVURO.js","sourcesContent":["/* eslint-disable sonarjs/no-duplicate-string -- Tailwind classes are intentionally duplicated across variants */\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ReportGenerator container variants\n */\nexport const reportGeneratorVariants = cva(\n [\n \"relative\",\n \"rounded-lg\",\n \"border\",\n \"border-border\",\n \"bg-card\",\n \"text-card-foreground\",\n ],\n {\n variants: {\n size: {\n default: \"p-6\",\n sm: \"p-4\",\n lg: \"p-8\",\n },\n layout: {\n default: \"\",\n compact: \"max-w-2xl\",\n full: \"w-full\",\n },\n },\n defaultVariants: {\n size: \"default\",\n layout: \"default\",\n },\n }\n)\n\n/**\n * Step indicator variants\n */\nexport const stepIndicatorVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"mb-6\",\n \"pb-6\",\n \"border-b\",\n \"border-border\",\n ],\n {\n variants: {\n size: {\n default: \"gap-4\",\n sm: \"gap-3\",\n lg: \"gap-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Step item variants\n */\nexport const stepItemVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"gap-2\",\n \"transition-colors\",\n \"duration-200\",\n ],\n {\n variants: {\n state: {\n pending: \"text-muted-foreground\",\n active: \"text-primary\",\n complete: \"text-success\",\n },\n clickable: {\n true: \"cursor-pointer hover:text-primary\",\n false: \"\",\n },\n },\n defaultVariants: {\n state: \"pending\",\n clickable: false,\n },\n }\n)\n\n/**\n * Step badge variants\n */\nexport const stepBadgeVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"rounded-full\",\n \"font-medium\",\n \"transition-colors\",\n \"duration-200\",\n ],\n {\n variants: {\n state: {\n pending: \"bg-muted text-muted-foreground\",\n active: \"bg-primary text-primary-foreground\",\n complete: \"bg-success text-success-foreground\",\n },\n size: {\n default: \"h-8 w-8 text-sm\",\n sm: \"h-6 w-6 text-xs\",\n lg: \"h-10 w-10 text-base\",\n },\n },\n defaultVariants: {\n state: \"pending\",\n size: \"default\",\n },\n }\n)\n\n/**\n * Template grid variants\n */\nexport const templateGridVariants = cva(\n [\n \"grid\",\n \"gap-4\",\n ],\n {\n variants: {\n columns: {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-1 sm:grid-cols-2\",\n 3: \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4\",\n },\n },\n defaultVariants: {\n columns: 3,\n },\n }\n)\n\n/**\n * Template card variants\n */\nexport const templateCardVariants = cva(\n [\n \"rounded-lg\",\n \"border\",\n \"border-border\",\n \"bg-background\",\n \"p-4\",\n \"cursor-pointer\",\n \"transition-all\",\n \"duration-200\",\n ],\n {\n variants: {\n state: {\n default: \"hover:border-primary/50 hover:shadow-sm\",\n selected: \"border-primary ring-2 ring-primary/20\",\n },\n },\n defaultVariants: {\n state: \"default\",\n },\n }\n)\n\n/**\n * Configuration section variants\n */\nexport const configSectionVariants = cva(\n [\n \"space-y-4\",\n ],\n {\n variants: {\n size: {\n default: \"mb-6\",\n sm: \"mb-4\",\n lg: \"mb-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Preview container variants\n */\nexport const previewContainerVariants = cva(\n [\n \"rounded-lg\",\n \"border\",\n \"border-border\",\n \"bg-muted/30\",\n \"overflow-hidden\",\n ],\n {\n variants: {\n size: {\n default: \"min-h-96\",\n sm: \"min-h-72\",\n lg: \"min-h-[var(--report-generator-root-min-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Preview header variants\n */\nexport const previewHeaderVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"justify-between\",\n \"border-b\",\n \"border-border\",\n \"bg-card\",\n ],\n {\n variants: {\n size: {\n default: \"px-4 py-3\",\n sm: \"px-3 py-2\",\n lg: \"px-6 py-4\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Preview content variants\n */\nexport const previewContentVariants = cva(\n [\n \"overflow-auto\",\n ],\n {\n variants: {\n size: {\n default: \"p-4 max-h-96\",\n sm: \"p-3 max-h-72\",\n lg: \"p-6 max-h-[var(--report-generator-output-max-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Export button group variants\n */\nexport const exportButtonGroupVariants = cva(\n [\n \"flex\",\n \"flex-wrap\",\n \"gap-2\",\n ],\n {\n variants: {\n align: {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n },\n },\n defaultVariants: {\n align: \"end\",\n },\n }\n)\n\n/**\n * Form actions variants\n */\nexport const formActionsVariants = cva(\n [\n \"flex\",\n \"items-center\",\n \"gap-3\",\n \"pt-6\",\n \"border-t\",\n \"border-border\",\n ],\n {\n variants: {\n align: {\n start: \"justify-start\",\n between: \"justify-between\",\n end: \"justify-end\",\n },\n },\n defaultVariants: {\n align: \"between\",\n },\n }\n)\n\n/**\n * Loading state variants\n */\nexport const loadingStateVariants = cva(\n [\n \"flex\",\n \"flex-col\",\n \"items-center\",\n \"justify-center\",\n \"text-center\",\n ],\n {\n variants: {\n size: {\n default: \"py-16 gap-4\",\n sm: \"py-12 gap-3\",\n lg: \"py-20 gap-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Error state variants\n */\nexport const errorStateVariants = cva(\n [\n \"flex\",\n \"flex-col\",\n \"items-center\",\n \"justify-center\",\n \"text-center\",\n \"text-destructive\",\n ],\n {\n variants: {\n size: {\n default: \"py-16 gap-4\",\n sm: \"py-12 gap-3\",\n lg: \"py-20 gap-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport type ReportGeneratorVariantProps = VariantProps<\n typeof reportGeneratorVariants\n>\nexport type StepIndicatorVariantProps = VariantProps<\n typeof stepIndicatorVariants\n>\nexport type StepBadgeVariantProps = VariantProps<typeof stepBadgeVariants>\nexport type TemplateCardVariantProps = VariantProps<typeof templateCardVariants>\nexport type PreviewContainerVariantProps = VariantProps<\n typeof previewContainerVariants\n>\n","import type {\n ColumnDefinition,\n ExportFormat,\n ReportConfig,\n ReportGeneratorProps,\n ReportGeneratorState,\n ReportTemplate,\n ScheduleConfig,\n} from \"./ReportGenerator.types\"\nimport type { KeyboardEvent } from \"react\"\n\nimport {\n AlertCircle,\n ArrowLeft,\n ArrowRight,\n Calendar,\n Check,\n Clock,\n Download,\n Eye,\n FileJson,\n FileSpreadsheet,\n FileText,\n Filter as FilterIcon,\n Loader2,\n Printer,\n Settings2,\n Table2,\n} from \"lucide-react\"\nimport { useCallback, useId, useMemo, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Checkbox } from \"../../forms/Checkbox\"\nimport { Button } from \"../../primitives/Button\"\nimport { Label } from \"../../primitives/Label\"\nimport {\n configSectionVariants,\n errorStateVariants,\n exportButtonGroupVariants,\n formActionsVariants,\n loadingStateVariants,\n previewContainerVariants,\n previewContentVariants,\n previewHeaderVariants,\n reportGeneratorVariants,\n stepBadgeVariants,\n stepIndicatorVariants,\n stepItemVariants,\n templateCardVariants,\n templateGridVariants,\n} from \"./ReportGenerator.variants\"\n\n/**\n * Step definitions\n */\nconst STEPS = [\n { label: \"Selecionar Template\", description: \"Escolha o tipo de relatório\" },\n { label: \"Configurar\", description: \"Defina filtros e colunas\" },\n { label: \"Visualizar\", description: \"Prévia do relatório\" },\n { label: \"Exportar\", description: \"Baixe o relatório\" },\n] as const\n\n/**\n * Export format labels and icons\n */\nconst EXPORT_FORMAT_INFO: Record<\n ExportFormat,\n { icon: React.ComponentType<{ className?: string }>; label: string; }\n> = {\n pdf: { label: \"PDF\", icon: FileText },\n xlsx: { label: \"Excel\", icon: FileSpreadsheet },\n csv: { label: \"CSV\", icon: Table2 },\n json: { label: \"JSON\", icon: FileJson },\n print: { label: \"Imprimir\", icon: Printer },\n}\n\n/**\n * StepIndicator displays the current progress through the wizard\n */\nfunction StepIndicator({\n currentStep,\n completedSteps,\n onStepClick,\n}: {\n completedSteps: number[]\n currentStep: number\n onStepClick?: (step: number) => void\n}) {\n return (\n <div\n aria-label=\"Etapas do gerador de relatórios\"\n className={stepIndicatorVariants()}\n role=\"navigation\"\n >\n {STEPS.map((step, index) => {\n const isComplete = completedSteps.includes(index)\n const isActive = index === currentStep\n const isClickable = onStepClick && (isComplete || index < currentStep)\n\n const handleClick = () => {\n if (isClickable) {\n onStepClick(index)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (isClickable && (e.key === \"Enter\" || e.key === \" \")) {\n e.preventDefault()\n onStepClick(index)\n }\n }\n\n return (\n <div\n key={step.label}\n className={cn(\n stepItemVariants({\n state: isComplete ? \"complete\" : isActive ? \"active\" : \"pending\",\n clickable: isClickable,\n }),\n index > 0 && \"flex-1\"\n )}\n aria-current={isActive ? \"step\" : undefined}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {index > 0 && (\n <div\n className={cn(\n \"h-px flex-1 mr-2\",\n isComplete || isActive ? \"bg-primary\" : \"bg-border\"\n )}\n />\n )}\n <div\n className={stepBadgeVariants({\n state: isComplete ? \"complete\" : isActive ? \"active\" : \"pending\",\n })}\n >\n {isComplete ? <Check className=\"h-4 w-4\" /> : index + 1}\n </div>\n <div className=\"hidden sm:block\">\n <div className=\"text-sm font-medium\">{step.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {step.description}\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\n/**\n * TemplateSelector displays available templates for selection\n */\nfunction TemplateSelector({\n templates,\n selectedTemplate,\n onSelect,\n}: {\n onSelect: (templateId: string) => void\n selectedTemplate?: string\n templates: ReportTemplate[]\n}) {\n const groupedTemplates = useMemo(() => {\n const groups: Record<string, ReportTemplate[]> = {}\n for (const template of templates) {\n const category = template.category\n groups[category] ??= []\n groups[category].push(template)\n }\n return groups\n }, [templates])\n\n const handleTemplateClick = (templateId: string) => {\n onSelect(templateId)\n }\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>, templateId: string) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onSelect(templateId)\n }\n }\n\n return (\n <div aria-label=\"Templates disponíveis\" className=\"space-y-6\" role=\"listbox\">\n {Object.entries(groupedTemplates).map(([category, categoryTemplates]) => (\n <div key={category} className=\"space-y-3\">\n <h3 className=\"text-sm font-medium text-muted-foreground\">\n {category}\n </h3>\n <div className={templateGridVariants()}>\n {categoryTemplates.map((template) => {\n const isSelected = selectedTemplate === template.id\n return (\n <div\n key={template.id}\n className={templateCardVariants({\n state: isSelected ? \"selected\" : \"default\",\n })}\n aria-selected={isSelected}\n role=\"option\"\n tabIndex={0}\n onClick={() => { handleTemplateClick(template.id); }}\n onKeyDown={(e) => { handleKeyDown(e, template.id); }}\n >\n <div className=\"flex items-start gap-3\">\n {template.icon && (\n <div className=\"shrink-0 text-primary\">{template.icon}</div>\n )}\n <div className=\"flex-1 min-w-0\">\n <div className=\"font-medium\">{template.name}</div>\n <div className=\"text-sm text-muted-foreground line-clamp-2\">\n {template.description}\n </div>\n <div className=\"mt-2 text-xs text-muted-foreground\">\n {template.columns.length} colunas\n </div>\n </div>\n {isSelected && (\n <Check className=\"h-5 w-5 text-primary shrink-0\" />\n )}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n ))}\n </div>\n )\n}\n\n/**\n * ConfigurationForm allows configuring the report\n */\nfunction ConfigurationForm({\n template,\n config,\n onChange,\n showSchedule,\n}: {\n config: Partial<ReportConfig>\n onChange: (config: Partial<ReportConfig>) => void\n showSchedule?: boolean\n template: ReportTemplate\n}) {\n const formId = useId()\n\n const handleColumnToggle = (columnId: string, checked: boolean) => {\n const currentColumns = config.columns ?? template.columns.map((c) => c.id)\n const newColumns = checked\n ? [...currentColumns, columnId]\n : currentColumns.filter((id) => id !== columnId)\n onChange({ ...config, columns: newColumns })\n }\n\n const handleTitleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange({ ...config, title: e.target.value })\n }\n\n const handleIncludeChartsChange = (checked: boolean) => {\n onChange({ ...config, includeCharts: checked })\n }\n\n const handleIncludeSummaryChange = (checked: boolean) => {\n onChange({ ...config, includeSummary: checked })\n }\n\n const selectedColumns = config.columns ?? template.columns.map((c) => c.id)\n\n return (\n <div aria-describedby={`${formId}-desc`} className=\"space-y-6\" role=\"form\">\n <p className=\"sr-only\" id={`${formId}-desc`}>\n Configure o relatório selecionando colunas e opções\n </p>\n\n {/* Report Title */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Settings2 className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Configurações Gerais</h3>\n </div>\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor={`${formId}-title`}>Título do Relatório</Label>\n <input\n className=\"mt-1.5 w-full px-3 py-2 rounded-md border border-input bg-background text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n id={`${formId}-title`}\n placeholder={template.name}\n type=\"text\"\n value={config.title ?? \"\"}\n onChange={handleTitleChange}\n />\n </div>\n </div>\n </div>\n\n {/* Column Selection */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Table2 className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Colunas</h3>\n </div>\n <div className=\"grid grid-cols-2 sm:grid-cols-3 gap-3\">\n {template.columns.map((column) => (\n <div key={column.id} className=\"flex items-center gap-2\">\n <Checkbox\n checked={selectedColumns.includes(column.id)}\n id={`${formId}-col-${column.id}`}\n onCheckedChange={(checked) =>\n { handleColumnToggle(column.id, checked === true); }\n }\n />\n <Label\n className=\"text-sm font-normal cursor-pointer\"\n htmlFor={`${formId}-col-${column.id}`}\n >\n {column.label}\n </Label>\n </div>\n ))}\n </div>\n </div>\n\n {/* Filters Section */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <FilterIcon className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Filtros</h3>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {template.defaultFilters && template.defaultFilters.length > 0\n ? `${String(template.defaultFilters.length)} filtro(s) configurado(s)`\n : \"Nenhum filtro configurado\"}\n </p>\n </div>\n\n {/* Options */}\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Opções</h3>\n </div>\n <div className=\"space-y-3\">\n {template.charts && template.charts.length > 0 && (\n <div className=\"flex items-center gap-2\">\n <Checkbox\n checked={config.includeCharts ?? true}\n id={`${formId}-charts`}\n onCheckedChange={handleIncludeChartsChange}\n />\n <Label\n className=\"text-sm font-normal cursor-pointer\"\n htmlFor={`${formId}-charts`}\n >\n Incluir gráficos\n </Label>\n </div>\n )}\n <div className=\"flex items-center gap-2\">\n <Checkbox\n checked={config.includeSummary ?? true}\n id={`${formId}-summary`}\n onCheckedChange={handleIncludeSummaryChange}\n />\n <Label\n className=\"text-sm font-normal cursor-pointer\"\n htmlFor={`${formId}-summary`}\n >\n Incluir resumo estatístico\n </Label>\n </div>\n </div>\n </div>\n\n {/* Schedule Option */}\n {showSchedule && (\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Clock className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Agendamento</h3>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n Configure o agendamento após gerar o relatório\n </p>\n </div>\n )}\n </div>\n )\n}\n\n/**\n * PreviewPanel displays the report preview\n */\nfunction PreviewPanel({\n data,\n columns,\n config,\n branding,\n}: {\n branding?: ReportGeneratorProps[\"branding\"]\n columns: ColumnDefinition[]\n config: ReportConfig\n data: unknown[]\n}) {\n const selectedColumns = columns.filter((c) => config.columns.includes(c.id))\n\n const formatValue = (value: unknown, column: ColumnDefinition): string => {\n if (value === null || value === undefined) return \"-\"\n\n switch (column.type) {\n case \"currency\":\n return new Intl.NumberFormat(\"pt-BR\", {\n style: \"currency\",\n currency: \"BRL\",\n }).format(Number(value))\n case \"date\":\n return new Intl.DateTimeFormat(\"pt-BR\").format(\n new Date(typeof value === \"string\" || typeof value === \"number\" ? value : 0)\n )\n case \"number\":\n return new Intl.NumberFormat(\"pt-BR\").format(Number(value))\n case \"boolean\":\n return value === true ? \"Sim\" : \"Não\"\n default:\n return typeof value === \"object\" ? JSON.stringify(value) : String(value as boolean | number | string)\n }\n }\n\n return (\n <div className={previewContainerVariants()}>\n <div className={previewHeaderVariants()}>\n <div className=\"flex items-center gap-3\">\n {branding?.logo && (\n <img\n alt={branding.companyName ?? \"Logo\"}\n className=\"h-8 w-auto\"\n src={branding.logo}\n />\n )}\n <div>\n <div className=\"font-semibold\">{config.title || \"Relatório\"}</div>\n {config.description && (\n <div className=\"text-xs text-muted-foreground\">\n {config.description}\n </div>\n )}\n </div>\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {data.length} registro(s)\n </div>\n </div>\n <div className={previewContentVariants()}>\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border\">\n {selectedColumns.map((column) => (\n <th\n key={column.id}\n className=\"px-3 py-2 text-left font-medium text-muted-foreground\"\n >\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.slice(0, 10).map((row, rowIndex) => {\n // Generate stable key from row data since preview data has no IDs\n const rowKey = `row-${String(rowIndex)}-${JSON.stringify(Object.values(row as Record<string, unknown>).slice(0, 2))}`\n return (\n <tr key={rowKey} className=\"border-b border-border/50\">\n {selectedColumns.map((column) => (\n <td key={column.id} className=\"px-3 py-2\">\n {formatValue(\n (row as Record<string, unknown>)[column.field],\n column\n )}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n {data.length > 10 && (\n <div className=\"mt-4 text-center text-sm text-muted-foreground\">\n Mostrando 10 de {data.length} registros\n </div>\n )}\n </div>\n </div>\n )\n}\n\n/**\n * ExportPanel displays export options\n */\nfunction ExportPanel({\n exportFormats,\n onExport,\n isExporting,\n showSchedule,\n onSchedule,\n}: {\n exportFormats: ExportFormat[]\n isExporting: boolean\n onExport: (format: ExportFormat) => void\n onSchedule?: () => void\n showSchedule?: boolean\n}) {\n return (\n <div className=\"space-y-6\">\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Download className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Formato de Exportação</h3>\n </div>\n <div className={exportButtonGroupVariants({ align: \"start\" })}>\n {exportFormats.map((format) => {\n const info = EXPORT_FORMAT_INFO[format]\n const Icon = info.icon\n return (\n <Button\n key={format}\n disabled={isExporting}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => { onExport(format); }}\n >\n <Icon className=\"h-4 w-4 mr-2\" />\n {info.label}\n </Button>\n )\n })}\n </div>\n </div>\n\n {showSchedule && onSchedule && (\n <div className={configSectionVariants()}>\n <div className=\"flex items-center gap-2 mb-3\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n <h3 className=\"text-sm font-medium\">Agendar Relatório</h3>\n </div>\n <Button variant=\"outline\" onClick={onSchedule}>\n <Clock className=\"h-4 w-4 mr-2\" />\n Configurar Agendamento\n </Button>\n </div>\n )}\n </div>\n )\n}\n\n/**\n * ReportGenerator is a wizard-style component for creating and exporting reports\n */\nfunction ReportGenerator({\n templates,\n dataSource,\n defaultTemplate,\n exportFormats = [\"pdf\", \"xlsx\", \"csv\"],\n showPreview = true,\n showSchedule = false,\n maxRows = 10000,\n branding,\n className,\n onGenerate,\n onReportExport,\n onSchedule,\n onReportError,\n onConfigChange,\n size,\n layout,\n}: ReportGeneratorProps) {\n const componentId = useId()\n\n // State\n const [currentStep, setCurrentStep] = useState(0)\n const [completedSteps, setCompletedSteps] = useState<number[]>([])\n const [generatorState, setGeneratorState] =\n useState<ReportGeneratorState>(\"idle\")\n const [selectedTemplateId, setSelectedTemplateId] = useState<string | undefined>(\n defaultTemplate\n )\n const [config, setConfig] = useState<Partial<ReportConfig>>({})\n const [previewData, setPreviewData] = useState<unknown[]>([])\n const [error, setError] = useState<Error | null>(null)\n\n // Computed values\n const selectedTemplate = useMemo(\n () => templates.find((t) => t.id === selectedTemplateId),\n [templates, selectedTemplateId]\n )\n\n const effectiveSteps = useMemo(() => {\n if (!showPreview) {\n return STEPS.filter((_, index) => index !== 2)\n }\n return STEPS\n }, [showPreview])\n\n const isGenerating = generatorState === \"generating\"\n const isExporting = generatorState === \"exporting\"\n\n // Handlers\n const handleTemplateSelect = useCallback(\n (templateId: string) => {\n setSelectedTemplateId(templateId)\n const template = templates.find((t) => t.id === templateId)\n if (template) {\n const initialConfig: Partial<ReportConfig> = {\n templateId,\n title: template.name,\n columns: template.columns.map((c) => c.id),\n filters: template.defaultFilters ?? [],\n includeCharts: true,\n includeSummary: true,\n }\n setConfig(initialConfig)\n onConfigChange?.({ config: initialConfig as ReportConfig })\n }\n },\n [templates, onConfigChange]\n )\n\n const handleConfigChange = useCallback(\n (newConfig: Partial<ReportConfig>) => {\n setConfig(newConfig)\n onConfigChange?.({ config: newConfig as ReportConfig })\n },\n [onConfigChange]\n )\n\n const handleNext = useCallback(() => {\n // Mark current step as complete\n if (!completedSteps.includes(currentStep)) {\n setCompletedSteps((prev) => [...prev, currentStep])\n }\n\n // Moving from template selection to configuration\n if (currentStep === 0 && !selectedTemplateId) {\n return\n }\n\n // Moving to preview step - generate report\n if (currentStep === 1 && showPreview) {\n setGeneratorState(\"generating\")\n try {\n onGenerate?.({ config: config as ReportConfig })\n\n // Simulate data fetching based on data source\n let data: unknown[] = []\n if (dataSource.type === \"static\" && dataSource.data) {\n data = dataSource.data.slice(0, maxRows)\n } else {\n // For API/query, we'd fetch data here\n // For now, use empty array as placeholder\n data = []\n }\n\n setPreviewData(data)\n setGeneratorState(\"preview\")\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n setError(errorObj)\n setGeneratorState(\"error\")\n onReportError?.({ error: errorObj })\n return\n }\n }\n\n setCurrentStep((prev) => Math.min(prev + 1, effectiveSteps.length - 1))\n }, [\n currentStep,\n completedSteps,\n selectedTemplateId,\n showPreview,\n config,\n dataSource,\n maxRows,\n effectiveSteps.length,\n onGenerate,\n onReportError,\n ])\n\n const handleBack = useCallback(() => {\n setCurrentStep((prev) => Math.max(prev - 1, 0))\n if (generatorState === \"error\") {\n setGeneratorState(\"idle\")\n setError(null)\n }\n }, [generatorState])\n\n const handleStepClick = useCallback(\n (step: number) => {\n if (step < currentStep || completedSteps.includes(step)) {\n setCurrentStep(step)\n }\n },\n [currentStep, completedSteps]\n )\n\n const handleExport = useCallback(\n (format: ExportFormat) => {\n setGeneratorState(\"exporting\")\n try {\n // Create export blob based on format\n const content = JSON.stringify({\n config,\n data: previewData,\n format,\n generatedAt: new Date().toISOString(),\n })\n const blob = new Blob([content], { type: \"application/json\" })\n\n onReportExport?.({ format, data: blob })\n setGeneratorState(\"idle\")\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n setError(errorObj)\n setGeneratorState(\"error\")\n onReportError?.({ error: errorObj })\n }\n },\n [config, previewData, onReportExport, onReportError]\n )\n\n const handleSchedule = useCallback(() => {\n const schedule: ScheduleConfig = {\n frequency: \"weekly\",\n time: \"09:00\",\n recipients: [],\n format: \"pdf\",\n }\n onSchedule?.({ schedule })\n }, [onSchedule])\n\n // Determine if we can proceed to next step\n const canProceed = useMemo(() => {\n switch (currentStep) {\n case 0:\n return !!selectedTemplateId\n case 1:\n return (\n config.columns && config.columns.length > 0 && !!config.title?.trim()\n )\n default:\n return true\n }\n }, [currentStep, selectedTemplateId, config])\n\n // Render loading state for generation only\n if (isGenerating) {\n return (\n <div\n aria-busy=\"true\"\n aria-describedby={`${componentId}-loading`}\n className={cn(reportGeneratorVariants({ size, layout }), className)}\n role=\"status\"\n >\n <div className={loadingStateVariants()}>\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n <div id={`${componentId}-loading`}>\n <p className=\"font-medium\">Gerando relatório...</p>\n <p className=\"text-sm text-muted-foreground\">\n Por favor, aguarde\n </p>\n </div>\n </div>\n </div>\n )\n }\n\n // Render error state\n if (generatorState === \"error\" && error) {\n return (\n <div\n aria-describedby={`${componentId}-error`}\n className={cn(reportGeneratorVariants({ size, layout }), className)}\n role=\"alert\"\n >\n <div className={errorStateVariants()}>\n <AlertCircle className=\"h-8 w-8\" />\n <div id={`${componentId}-error`}>\n <p className=\"font-medium\">Erro ao gerar relatório</p>\n <p className=\"text-sm\">{error.message}</p>\n </div>\n <Button variant=\"outline\" onClick={handleBack}>\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\n Voltar\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <div\n aria-describedby={`${componentId}-desc`}\n aria-label=\"Gerador de Relatórios\"\n className={cn(reportGeneratorVariants({ size, layout }), className)}\n data-slot=\"report-generator\"\n role=\"form\"\n >\n <p className=\"sr-only\" id={`${componentId}-desc`}>\n Use este assistente para criar e exportar relatórios personalizados\n </p>\n\n {/* Step Indicator */}\n <StepIndicator\n completedSteps={completedSteps}\n currentStep={currentStep}\n onStepClick={handleStepClick}\n />\n\n {/* Step Content */}\n <div aria-live=\"polite\" className=\"min-h-72\">\n {/* Step 0: Template Selection */}\n {currentStep === 0 && (\n <TemplateSelector\n selectedTemplate={selectedTemplateId}\n templates={templates}\n onSelect={handleTemplateSelect}\n />\n )}\n\n {/* Step 1: Configuration */}\n {currentStep === 1 && selectedTemplate && (\n <ConfigurationForm\n config={config}\n showSchedule={showSchedule}\n template={selectedTemplate}\n onChange={handleConfigChange}\n />\n )}\n\n {/* Step 2: Preview (if enabled) */}\n {currentStep === 2 && showPreview && selectedTemplate && (\n <PreviewPanel\n branding={branding}\n columns={selectedTemplate.columns}\n config={config as ReportConfig}\n data={previewData}\n />\n )}\n\n {/* Step 3/2: Export */}\n {((currentStep === 3 && showPreview) ||\n (currentStep === 2 && !showPreview)) && (\n <ExportPanel\n exportFormats={exportFormats}\n isExporting={isExporting}\n showSchedule={showSchedule}\n onExport={handleExport}\n onSchedule={showSchedule ? handleSchedule : undefined}\n />\n )}\n </div>\n\n {/* Navigation Actions */}\n <div className={formActionsVariants()}>\n <Button\n disabled={currentStep === 0}\n variant=\"outline\"\n onClick={handleBack}\n >\n <ArrowLeft className=\"h-4 w-4 mr-2\" />\n Voltar\n </Button>\n {currentStep < effectiveSteps.length - 1 ? (\n <Button disabled={!canProceed} onClick={handleNext}>\n Próximo\n <ArrowRight className=\"h-4 w-4 ml-2\" />\n </Button>\n ) : null}\n </div>\n </div>\n )\n}\n\nexport { ReportGenerator }\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Textarea } from './chunk-U6EOAIPK.js';
2
- import { Avatar, AvatarImage, AvatarFallback } from './chunk-YP2ATSXP.js';
2
+ import { Avatar, AvatarImage, AvatarFallback } from './chunk-3BBOSSDG.js';
3
3
  import { Button } from './chunk-HDOR3SN3.js';
4
4
  import { cn } from './chunk-HRNDJU7D.js';
5
5
  import { Paperclip, Smile, Send, MoreHorizontal, Edit2, Trash2, CornerDownRight, X, MessageCircle } from 'lucide-react';
@@ -1066,5 +1066,5 @@ function CommentSystem({
1066
1066
  }
1067
1067
 
1068
1068
  export { CommentInput, CommentItem, CommentReactions, CommentSystem, commentActionsVariants, commentContentVariants, commentEmptyStateVariants, commentHeaderVariants, commentInputContainerVariants, commentItemVariants, commentMentionVariants, commentReactionVariants, commentRepliesVariants, commentSystemVariants, commentThreadLineVariants, commentTimelineMarkerVariants, defaultReactions, mentionSuggestionItemVariants, mentionSuggestionsVariants };
1069
- //# sourceMappingURL=chunk-YDZBLZVZ.js.map
1070
- //# sourceMappingURL=chunk-YDZBLZVZ.js.map
1069
+ //# sourceMappingURL=chunk-SLRCXCHM.js.map
1070
+ //# sourceMappingURL=chunk-SLRCXCHM.js.map