@adoptai/genui-components 0.1.65 → 0.1.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builders/BlockForm.d.ts +35 -0
- package/dist/builders/BlockForm.d.ts.map +1 -0
- package/dist/builders/BuilderForm.d.ts +76 -0
- package/dist/builders/BuilderForm.d.ts.map +1 -0
- package/dist/builders/BuilderRecap.d.ts +12 -0
- package/dist/builders/BuilderRecap.d.ts.map +1 -0
- package/dist/builders/ContextSlot.d.ts +12 -0
- package/dist/builders/ContextSlot.d.ts.map +1 -0
- package/dist/builders/FieldRenderer.d.ts +19 -0
- package/dist/builders/FieldRenderer.d.ts.map +1 -0
- package/dist/builders/StepperBuilder.d.ts +27 -0
- package/dist/builders/StepperBuilder.d.ts.map +1 -0
- package/dist/builders/fields.d.ts +52 -0
- package/dist/builders/fields.d.ts.map +1 -0
- package/dist/builders/hooks.d.ts +39 -0
- package/dist/builders/hooks.d.ts.map +1 -0
- package/dist/builders/index.d.ts +20 -0
- package/dist/builders/index.d.ts.map +1 -0
- package/dist/builders/resolver.d.ts +24 -0
- package/dist/builders/resolver.d.ts.map +1 -0
- package/dist/builders/schemas.d.ts +351 -0
- package/dist/builders/schemas.d.ts.map +1 -0
- package/dist/builders/validateBuilder.d.ts +10 -0
- package/dist/builders/validateBuilder.d.ts.map +1 -0
- package/dist/composites/aging-report/resolver.d.ts +3 -0
- package/dist/composites/aging-report/resolver.d.ts.map +1 -0
- package/dist/composites/alert/resolver.d.ts +3 -0
- package/dist/composites/alert/resolver.d.ts.map +1 -0
- package/dist/composites/allocation-donut/resolver.d.ts +3 -0
- package/dist/composites/allocation-donut/resolver.d.ts.map +1 -0
- package/dist/composites/amortization-table/resolver.d.ts +3 -0
- package/dist/composites/amortization-table/resolver.d.ts.map +1 -0
- package/dist/composites/area-chart/resolver.d.ts +3 -0
- package/dist/composites/area-chart/resolver.d.ts.map +1 -0
- package/dist/composites/audit-trail/resolver.d.ts +3 -0
- package/dist/composites/audit-trail/resolver.d.ts.map +1 -0
- package/dist/composites/balance-sheet/resolver.d.ts +3 -0
- package/dist/composites/balance-sheet/resolver.d.ts.map +1 -0
- package/dist/composites/bullet-chart/resolver.d.ts +3 -0
- package/dist/composites/bullet-chart/resolver.d.ts.map +1 -0
- package/dist/composites/cash-flow-statement/resolver.d.ts +3 -0
- package/dist/composites/cash-flow-statement/resolver.d.ts.map +1 -0
- package/dist/composites/chart-of-accounts/resolver.d.ts +3 -0
- package/dist/composites/chart-of-accounts/resolver.d.ts.map +1 -0
- package/dist/composites/cited-answer/resolver.d.ts +3 -0
- package/dist/composites/cited-answer/resolver.d.ts.map +1 -0
- package/dist/composites/combo-chart/resolver.d.ts +3 -0
- package/dist/composites/combo-chart/resolver.d.ts.map +1 -0
- package/dist/composites/comparative-bar-chart/resolver.d.ts +3 -0
- package/dist/composites/comparative-bar-chart/resolver.d.ts.map +1 -0
- package/dist/composites/compliance-checklist/resolver.d.ts +3 -0
- package/dist/composites/compliance-checklist/resolver.d.ts.map +1 -0
- package/dist/composites/connect-integration/resolver.d.ts +3 -0
- package/dist/composites/connect-integration/resolver.d.ts.map +1 -0
- package/dist/composites/data-table/resolver.d.ts +3 -0
- package/dist/composites/data-table/resolver.d.ts.map +1 -0
- package/dist/composites/decision-card/resolver.d.ts +20 -0
- package/dist/composites/decision-card/resolver.d.ts.map +1 -0
- package/dist/composites/decision-queue/resolver.d.ts +33 -0
- package/dist/composites/decision-queue/resolver.d.ts.map +1 -0
- package/dist/composites/depreciation-schedule/resolver.d.ts +3 -0
- package/dist/composites/depreciation-schedule/resolver.d.ts.map +1 -0
- package/dist/composites/document-field-extraction/FieldAuditLog.d.ts +27 -0
- package/dist/composites/document-field-extraction/FieldAuditLog.d.ts.map +1 -0
- package/dist/composites/document-field-extraction/FieldDetail.d.ts +22 -0
- package/dist/composites/document-field-extraction/FieldDetail.d.ts.map +1 -0
- package/dist/composites/document-field-extraction/FieldDetails.d.ts +18 -0
- package/dist/composites/document-field-extraction/FieldDetails.d.ts.map +1 -0
- package/dist/composites/document-field-extraction/bboxTransform.d.ts +25 -0
- package/dist/composites/document-field-extraction/bboxTransform.d.ts.map +1 -0
- package/dist/composites/document-field-extraction/fieldLabels.d.ts +2 -0
- package/dist/composites/document-field-extraction/fieldLabels.d.ts.map +1 -0
- package/dist/composites/document-field-extraction/resolver.d.ts +16 -0
- package/dist/composites/document-field-extraction/resolver.d.ts.map +1 -0
- package/dist/composites/document-preview/ExcelViewer.d.ts +8 -0
- package/dist/composites/document-preview/ExcelViewer.d.ts.map +1 -0
- package/dist/composites/document-preview/PdfViewer.d.ts +10 -0
- package/dist/composites/document-preview/PdfViewer.d.ts.map +1 -0
- package/dist/composites/document-preview/resolver.d.ts +3 -0
- package/dist/composites/document-preview/resolver.d.ts.map +1 -0
- package/dist/composites/document-preview/useFullscreen.d.ts +8 -0
- package/dist/composites/document-preview/useFullscreen.d.ts.map +1 -0
- package/dist/composites/download-card/resolver.d.ts +3 -0
- package/dist/composites/download-card/resolver.d.ts.map +1 -0
- package/dist/composites/engagement-pipeline/resolver.d.ts +3 -0
- package/dist/composites/engagement-pipeline/resolver.d.ts.map +1 -0
- package/dist/composites/entity-card-grid/resolver.d.ts +3 -0
- package/dist/composites/entity-card-grid/resolver.d.ts.map +1 -0
- package/dist/composites/escalation-card/resolver.cjs +35 -4
- package/dist/composites/escalation-card/resolver.cjs.map +1 -1
- package/dist/composites/escalation-card/resolver.d.ts +3 -0
- package/dist/composites/escalation-card/resolver.d.ts.map +1 -0
- package/dist/composites/escalation-card/resolver.js +35 -4
- package/dist/composites/escalation-card/resolver.js.map +1 -1
- package/dist/composites/file-browser/resolver.d.ts +3 -0
- package/dist/composites/file-browser/resolver.d.ts.map +1 -0
- package/dist/composites/flow-canvas/DiagramStreamParser.d.ts +15 -0
- package/dist/composites/flow-canvas/DiagramStreamParser.d.ts.map +1 -0
- package/dist/composites/flow-canvas/ElementStreamParser.d.ts +19 -0
- package/dist/composites/flow-canvas/ElementStreamParser.d.ts.map +1 -0
- package/dist/composites/flow-canvas/ExcalidrawCanvas.d.ts +8 -0
- package/dist/composites/flow-canvas/ExcalidrawCanvas.d.ts.map +1 -0
- package/dist/composites/flow-canvas/FlowGraph.d.ts +11 -0
- package/dist/composites/flow-canvas/FlowGraph.d.ts.map +1 -0
- package/dist/composites/flow-canvas/layoutFlow.d.ts +18 -0
- package/dist/composites/flow-canvas/layoutFlow.d.ts.map +1 -0
- package/dist/composites/flow-canvas/parseMermaidFlow.d.ts +24 -0
- package/dist/composites/flow-canvas/parseMermaidFlow.d.ts.map +1 -0
- package/dist/composites/flow-canvas/resolver.d.ts +12 -0
- package/dist/composites/flow-canvas/resolver.d.ts.map +1 -0
- package/dist/composites/funnel-chart/resolver.d.ts +3 -0
- package/dist/composites/funnel-chart/resolver.d.ts.map +1 -0
- package/dist/composites/gauge-chart/resolver.d.ts +3 -0
- package/dist/composites/gauge-chart/resolver.d.ts.map +1 -0
- package/dist/composites/general-ledger/resolver.d.ts +3 -0
- package/dist/composites/general-ledger/resolver.d.ts.map +1 -0
- package/dist/composites/grouped-table/resolver.d.ts +3 -0
- package/dist/composites/grouped-table/resolver.d.ts.map +1 -0
- package/dist/composites/heatmap-table/resolver.d.ts +3 -0
- package/dist/composites/heatmap-table/resolver.d.ts.map +1 -0
- package/dist/composites/income-statement/resolver.d.ts +3 -0
- package/dist/composites/income-statement/resolver.d.ts.map +1 -0
- package/dist/composites/integrations-list/resolver.d.ts +3 -0
- package/dist/composites/integrations-list/resolver.d.ts.map +1 -0
- package/dist/composites/invoice-detail/resolver.d.ts +3 -0
- package/dist/composites/invoice-detail/resolver.d.ts.map +1 -0
- package/dist/composites/job-tracker/resolver.d.ts +3 -0
- package/dist/composites/job-tracker/resolver.d.ts.map +1 -0
- package/dist/composites/journal-entry/resolver.d.ts +3 -0
- package/dist/composites/journal-entry/resolver.d.ts.map +1 -0
- package/dist/composites/key-value-list/resolver.d.ts +3 -0
- package/dist/composites/key-value-list/resolver.d.ts.map +1 -0
- package/dist/composites/legal-test-result/resolver.d.ts +3 -0
- package/dist/composites/legal-test-result/resolver.d.ts.map +1 -0
- package/dist/composites/line-chart/resolver.d.ts +3 -0
- package/dist/composites/line-chart/resolver.d.ts.map +1 -0
- package/dist/composites/news-feed/resolver.d.ts +3 -0
- package/dist/composites/news-feed/resolver.d.ts.map +1 -0
- package/dist/composites/ops-dashboard/resolver.d.ts +3 -0
- package/dist/composites/ops-dashboard/resolver.d.ts.map +1 -0
- package/dist/composites/pipeline-preview/layout.d.ts +39 -0
- package/dist/composites/pipeline-preview/layout.d.ts.map +1 -0
- package/dist/composites/pipeline-preview/opMeta.d.ts +9 -0
- package/dist/composites/pipeline-preview/opMeta.d.ts.map +1 -0
- package/dist/composites/pipeline-preview/resolver.d.ts +3 -0
- package/dist/composites/pipeline-preview/resolver.d.ts.map +1 -0
- package/dist/composites/provenance-chain/resolver.d.ts +3 -0
- package/dist/composites/provenance-chain/resolver.d.ts.map +1 -0
- package/dist/composites/radar-chart/resolver.d.ts +3 -0
- package/dist/composites/radar-chart/resolver.d.ts.map +1 -0
- package/dist/composites/reconciliation-view/resolver.d.ts +3 -0
- package/dist/composites/reconciliation-view/resolver.d.ts.map +1 -0
- package/dist/composites/scatter-chart/resolver.d.ts +3 -0
- package/dist/composites/scatter-chart/resolver.d.ts.map +1 -0
- package/dist/composites/screener-table/resolver.d.ts +3 -0
- package/dist/composites/screener-table/resolver.d.ts.map +1 -0
- package/dist/composites/search-results/resolver.d.ts +3 -0
- package/dist/composites/search-results/resolver.d.ts.map +1 -0
- package/dist/composites/sparkline-table/resolver.d.ts +3 -0
- package/dist/composites/sparkline-table/resolver.d.ts.map +1 -0
- package/dist/composites/stacked-breakdown/resolver.d.ts +3 -0
- package/dist/composites/stacked-breakdown/resolver.d.ts.map +1 -0
- package/dist/composites/stat-grid/resolver.d.ts +3 -0
- package/dist/composites/stat-grid/resolver.d.ts.map +1 -0
- package/dist/composites/status-card/resolver.d.ts +3 -0
- package/dist/composites/status-card/resolver.d.ts.map +1 -0
- package/dist/composites/tabby-auth/resolver.d.ts +3 -0
- package/dist/composites/tabby-auth/resolver.d.ts.map +1 -0
- package/dist/composites/tabs-panel/resolver.d.ts +3 -0
- package/dist/composites/tabs-panel/resolver.d.ts.map +1 -0
- package/dist/composites/transaction-feed/resolver.d.ts +3 -0
- package/dist/composites/transaction-feed/resolver.d.ts.map +1 -0
- package/dist/composites/treemap-chart/resolver.d.ts +3 -0
- package/dist/composites/treemap-chart/resolver.d.ts.map +1 -0
- package/dist/composites/trial-balance/resolver.d.ts +3 -0
- package/dist/composites/trial-balance/resolver.d.ts.map +1 -0
- package/dist/composites/variance-analysis/resolver.d.ts +3 -0
- package/dist/composites/variance-analysis/resolver.d.ts.map +1 -0
- package/dist/composites/waterfall-chart/resolver.d.ts +3 -0
- package/dist/composites/waterfall-chart/resolver.d.ts.map +1 -0
- package/dist/composites/workflow-stepper/resolver.d.ts +20 -0
- package/dist/composites/workflow-stepper/resolver.d.ts.map +1 -0
- package/dist/index.cjs +89 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -12
- package/dist/index.js.map +1 -1
- package/dist/renderer.cjs +64 -9
- package/dist/renderer.cjs.map +1 -1
- package/dist/renderer.d.ts +7 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +64 -9
- package/dist/renderer.js.map +1 -1
- package/dist/resolver.cjs +64 -9
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.d.ts +6 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +64 -9
- package/dist/resolver.js.map +1 -1
- package/dist/schemas/aging-report.d.ts +74 -0
- package/dist/schemas/aging-report.d.ts.map +1 -0
- package/dist/schemas/alert.d.ts +39 -0
- package/dist/schemas/alert.d.ts.map +1 -0
- package/dist/schemas/allocation-donut.d.ts +53 -0
- package/dist/schemas/allocation-donut.d.ts.map +1 -0
- package/dist/schemas/amortization-table.d.ts +102 -0
- package/dist/schemas/amortization-table.d.ts.map +1 -0
- package/dist/schemas/area-chart.d.ts +61 -0
- package/dist/schemas/area-chart.d.ts.map +1 -0
- package/dist/schemas/audit-trail.d.ts +88 -0
- package/dist/schemas/audit-trail.d.ts.map +1 -0
- package/dist/schemas/balance-sheet.d.ts +170 -0
- package/dist/schemas/balance-sheet.d.ts.map +1 -0
- package/dist/schemas/buildRenderUITool.d.ts +7 -0
- package/dist/schemas/buildRenderUITool.d.ts.map +1 -0
- package/dist/schemas/bullet-chart.d.ts +58 -0
- package/dist/schemas/bullet-chart.d.ts.map +1 -0
- package/dist/schemas/cash-flow-statement.d.ts +165 -0
- package/dist/schemas/cash-flow-statement.d.ts.map +1 -0
- package/dist/schemas/chart-of-accounts.d.ts +93 -0
- package/dist/schemas/chart-of-accounts.d.ts.map +1 -0
- package/dist/schemas/cited-answer.d.ts +76 -0
- package/dist/schemas/cited-answer.d.ts.map +1 -0
- package/dist/schemas/coercePayload.d.ts +16 -0
- package/dist/schemas/coercePayload.d.ts.map +1 -0
- package/dist/schemas/combo-chart.d.ts +111 -0
- package/dist/schemas/combo-chart.d.ts.map +1 -0
- package/dist/schemas/comparative-bar-chart.d.ts +83 -0
- package/dist/schemas/comparative-bar-chart.d.ts.map +1 -0
- package/dist/schemas/compliance-checklist.d.ts +91 -0
- package/dist/schemas/compliance-checklist.d.ts.map +1 -0
- package/dist/schemas/connect-integration.d.ts +47 -0
- package/dist/schemas/connect-integration.d.ts.map +1 -0
- package/dist/schemas/data-table.d.ts +63 -0
- package/dist/schemas/data-table.d.ts.map +1 -0
- package/dist/schemas/decision-card.d.ts +186 -0
- package/dist/schemas/decision-card.d.ts.map +1 -0
- package/dist/schemas/decision-queue.d.ts +227 -0
- package/dist/schemas/decision-queue.d.ts.map +1 -0
- package/dist/schemas/depreciation-schedule.d.ts +125 -0
- package/dist/schemas/depreciation-schedule.d.ts.map +1 -0
- package/dist/schemas/document-field-extraction.d.ts +258 -0
- package/dist/schemas/document-field-extraction.d.ts.map +1 -0
- package/dist/schemas/document-preview.d.ts +128 -0
- package/dist/schemas/document-preview.d.ts.map +1 -0
- package/dist/schemas/download-card.d.ts +62 -0
- package/dist/schemas/download-card.d.ts.map +1 -0
- package/dist/schemas/engagement-pipeline.d.ts +119 -0
- package/dist/schemas/engagement-pipeline.d.ts.map +1 -0
- package/dist/schemas/entity-card-grid.d.ts +101 -0
- package/dist/schemas/entity-card-grid.d.ts.map +1 -0
- package/dist/schemas/escalation-card.d.ts +75 -0
- package/dist/schemas/escalation-card.d.ts.map +1 -0
- package/dist/schemas/file-browser.d.ts +81 -0
- package/dist/schemas/file-browser.d.ts.map +1 -0
- package/dist/schemas/flow-canvas.d.ts +58 -0
- package/dist/schemas/flow-canvas.d.ts.map +1 -0
- package/dist/schemas/funnel-chart.d.ts +53 -0
- package/dist/schemas/funnel-chart.d.ts.map +1 -0
- package/dist/schemas/gauge-chart.d.ts +58 -0
- package/dist/schemas/gauge-chart.d.ts.map +1 -0
- package/dist/schemas/general-ledger.d.ts +120 -0
- package/dist/schemas/general-ledger.d.ts.map +1 -0
- package/dist/schemas/grouped-table.d.ts +101 -0
- package/dist/schemas/grouped-table.d.ts.map +1 -0
- package/dist/schemas/heatmap-table.d.ts +76 -0
- package/dist/schemas/heatmap-table.d.ts.map +1 -0
- package/dist/schemas/income-statement.d.ts +170 -0
- package/dist/schemas/income-statement.d.ts.map +1 -0
- package/dist/schemas/index.cjs +29 -5
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.d.ts +5973 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +29 -5
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/integrations-list.d.ts +62 -0
- package/dist/schemas/integrations-list.d.ts.map +1 -0
- package/dist/schemas/invoice-detail.d.ts +157 -0
- package/dist/schemas/invoice-detail.d.ts.map +1 -0
- package/dist/schemas/job-tracker.d.ts +114 -0
- package/dist/schemas/job-tracker.d.ts.map +1 -0
- package/dist/schemas/journal-entry.d.ts +90 -0
- package/dist/schemas/journal-entry.d.ts.map +1 -0
- package/dist/schemas/key-value-list.d.ts +108 -0
- package/dist/schemas/key-value-list.d.ts.map +1 -0
- package/dist/schemas/legal-test-result.d.ts +130 -0
- package/dist/schemas/legal-test-result.d.ts.map +1 -0
- package/dist/schemas/line-chart.d.ts +71 -0
- package/dist/schemas/line-chart.d.ts.map +1 -0
- package/dist/schemas/news-feed.d.ts +63 -0
- package/dist/schemas/news-feed.d.ts.map +1 -0
- package/dist/schemas/ops-dashboard.d.ts +92 -0
- package/dist/schemas/ops-dashboard.d.ts.map +1 -0
- package/dist/schemas/pipeline-preview.d.ts +209 -0
- package/dist/schemas/pipeline-preview.d.ts.map +1 -0
- package/dist/schemas/provenance-chain.d.ts +121 -0
- package/dist/schemas/provenance-chain.d.ts.map +1 -0
- package/dist/schemas/radar-chart.d.ts +70 -0
- package/dist/schemas/radar-chart.d.ts.map +1 -0
- package/dist/schemas/reconciliation-view.d.ts +156 -0
- package/dist/schemas/reconciliation-view.d.ts.map +1 -0
- package/dist/schemas/scatter-chart.d.ts +90 -0
- package/dist/schemas/scatter-chart.d.ts.map +1 -0
- package/dist/schemas/screener-table.d.ts +74 -0
- package/dist/schemas/screener-table.d.ts.map +1 -0
- package/dist/schemas/search-results.d.ts +87 -0
- package/dist/schemas/search-results.d.ts.map +1 -0
- package/dist/schemas/sparkline-table.d.ts +74 -0
- package/dist/schemas/sparkline-table.d.ts.map +1 -0
- package/dist/schemas/stacked-breakdown.d.ts +70 -0
- package/dist/schemas/stacked-breakdown.d.ts.map +1 -0
- package/dist/schemas/stat-grid.d.ts +55 -0
- package/dist/schemas/stat-grid.d.ts.map +1 -0
- package/dist/schemas/status-card.d.ts +84 -0
- package/dist/schemas/status-card.d.ts.map +1 -0
- package/dist/schemas/tabby-auth.d.ts +58 -0
- package/dist/schemas/tabby-auth.d.ts.map +1 -0
- package/dist/schemas/tabs-panel.d.ts +42 -0
- package/dist/schemas/tabs-panel.d.ts.map +1 -0
- package/dist/schemas/transaction-feed.d.ts +82 -0
- package/dist/schemas/transaction-feed.d.ts.map +1 -0
- package/dist/schemas/treemap-chart.d.ts +53 -0
- package/dist/schemas/treemap-chart.d.ts.map +1 -0
- package/dist/schemas/trial-balance.d.ts +85 -0
- package/dist/schemas/trial-balance.d.ts.map +1 -0
- package/dist/schemas/validatePayload.d.ts +10 -0
- package/dist/schemas/validatePayload.d.ts.map +1 -0
- package/dist/schemas/variance-analysis.d.ts +73 -0
- package/dist/schemas/variance-analysis.d.ts.map +1 -0
- package/dist/schemas/waterfall-chart.d.ts +53 -0
- package/dist/schemas/waterfall-chart.d.ts.map +1 -0
- package/dist/schemas/workflow-stepper.d.ts +183 -0
- package/dist/schemas/workflow-stepper.d.ts.map +1 -0
- package/dist/shared/ColumnSettingsPanel.d.ts +13 -0
- package/dist/shared/ColumnSettingsPanel.d.ts.map +1 -0
- package/dist/shared/ComponentActions.d.ts +20 -0
- package/dist/shared/ComponentActions.d.ts.map +1 -0
- package/dist/shared/FileCard.d.ts +35 -0
- package/dist/shared/FileCard.d.ts.map +1 -0
- package/dist/shared/FitText.d.ts +22 -0
- package/dist/shared/FitText.d.ts.map +1 -0
- package/dist/shared/InteractionContext.d.ts +40 -0
- package/dist/shared/InteractionContext.d.ts.map +1 -0
- package/dist/shared/Markdown.d.ts +23 -0
- package/dist/shared/Markdown.d.ts.map +1 -0
- package/dist/shared/PreviewModal.d.ts +19 -0
- package/dist/shared/PreviewModal.d.ts.map +1 -0
- package/dist/shared/ThemeContext.d.ts +34 -0
- package/dist/shared/ThemeContext.d.ts.map +1 -0
- package/dist/shared/brandIcons.d.ts +3 -0
- package/dist/shared/brandIcons.d.ts.map +1 -0
- package/dist/shared/downloadCSV.d.ts +5 -0
- package/dist/shared/downloadCSV.d.ts.map +1 -0
- package/dist/shared/fileType.d.ts +19 -0
- package/dist/shared/fileType.d.ts.map +1 -0
- package/dist/shared/styles.d.ts +14 -0
- package/dist/shared/styles.d.ts.map +1 -0
- package/dist/shared/theme.d.ts +80 -0
- package/dist/shared/theme.d.ts.map +1 -0
- package/dist/shared/useColumnVisibility.d.ts +13 -0
- package/dist/shared/useColumnVisibility.d.ts.map +1 -0
- package/dist/shared/useSeriesToggle.d.ts +8 -0
- package/dist/shared/useSeriesToggle.d.ts.map +1 -0
- package/dist/shared/viewers/CsvViewer.d.ts +13 -0
- package/dist/shared/viewers/CsvViewer.d.ts.map +1 -0
- package/dist/shared/viewers/DocxViewer.d.ts +8 -0
- package/dist/shared/viewers/DocxViewer.d.ts.map +1 -0
- package/dist/shared/viewers/PreviewHost.d.ts +17 -0
- package/dist/shared/viewers/PreviewHost.d.ts.map +1 -0
- package/dist/shared/viewers/TextViewer.d.ts +13 -0
- package/dist/shared/viewers/TextViewer.d.ts.map +1 -0
- package/dist/shared/viewers/decode.d.ts +14 -0
- package/dist/shared/viewers/decode.d.ts.map +1 -0
- package/dist/tool-definitions.json +5456 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SchemaPayload } from "../../schemas";
|
|
3
|
+
type Field = NonNullable<SchemaPayload<"document-field-extraction">["fields"]>[number];
|
|
4
|
+
/**
|
|
5
|
+
* One editable field card in the extraction modal's right-hand list. Ported from
|
|
6
|
+
* adoptwebui's file-explorer review pane (documentViewer/FieldCard.jsx) so chat
|
|
7
|
+
* and the explorer behave identically: click to select (drives two-way bbox
|
|
8
|
+
* highlight), pencil to edit, Save (⌘↵) / Cancel (Esc).
|
|
9
|
+
*
|
|
10
|
+
* `onSave` is host-provided and async; it throws on failure (surfaced inline).
|
|
11
|
+
* When `onSave` is absent the card is read-only (legacy / non-docstore payloads).
|
|
12
|
+
*/
|
|
13
|
+
export declare function FieldDetail({ field, selected, onSelect, onSave, correctionCount, cardRef, }: {
|
|
14
|
+
field: Field;
|
|
15
|
+
selected: boolean;
|
|
16
|
+
onSelect: (key: string | null) => void;
|
|
17
|
+
onSave?: (fieldKey: string, value: string) => Promise<void>;
|
|
18
|
+
correctionCount?: number;
|
|
19
|
+
cardRef?: React.Ref<HTMLDivElement>;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=FieldDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldDetail.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/FieldDetail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,KAAK,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AA+DvF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,eAAmB,EACnB,OAAO,GACR,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACrC,2CAiTA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SchemaPayload } from "../../schemas";
|
|
2
|
+
type Payload = SchemaPayload<"document-field-extraction">;
|
|
3
|
+
type Summary = NonNullable<Payload["summary"]>;
|
|
4
|
+
/**
|
|
5
|
+
* "Details" tab — a read-only summary of one document's extracted data. Ported
|
|
6
|
+
* from adoptwebui's file-explorer review pane (documentViewer/DocumentDetails.jsx)
|
|
7
|
+
* so chat and the explorer show the identical document summary. Driven entirely
|
|
8
|
+
* by the deterministic `summary` projection the extraction pipeline produced
|
|
9
|
+
* (no client-side inference); shows an empty state when absent.
|
|
10
|
+
*/
|
|
11
|
+
export declare function FieldDetails({ summary, fileName, pageCount, pagesProcessed, }: {
|
|
12
|
+
summary?: Summary | null;
|
|
13
|
+
fileName?: string;
|
|
14
|
+
pageCount?: number;
|
|
15
|
+
pagesProcessed?: number;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=FieldDetails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldDetails.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/FieldDetails.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,KAAK,OAAO,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC1D,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAc/C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,GACf,EAAE;IACD,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,2CAkOA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type Bbox = [number, number, number, number];
|
|
2
|
+
/** Page size in PDF points (from PageDimension.width_pt / height_pt). */
|
|
3
|
+
export interface PagePoints {
|
|
4
|
+
wPts: number;
|
|
5
|
+
hPts: number;
|
|
6
|
+
}
|
|
7
|
+
/** Rendered size of the page image in CSS pixels (measured at runtime). */
|
|
8
|
+
export interface RenderPx {
|
|
9
|
+
wPx: number;
|
|
10
|
+
hPx: number;
|
|
11
|
+
}
|
|
12
|
+
/** A top-left-origin pixel rectangle ready for absolute positioning. */
|
|
13
|
+
export interface Rect {
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Convert a PDF-point, bottom-left bbox into a top-left pixel rect scaled to the
|
|
21
|
+
* rendered page image. Returns `null` for a missing/degenerate bbox or page size
|
|
22
|
+
* (callers skip rendering a box in that case).
|
|
23
|
+
*/
|
|
24
|
+
export declare function bboxToRect(bbox: Bbox | null | undefined, page: PagePoints, px: RenderPx): Rect | null;
|
|
25
|
+
//# sourceMappingURL=bboxTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bboxTransform.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/bboxTransform.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2EAA2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wEAAwE;AACxE,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAC7B,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,QAAQ,GACX,IAAI,GAAG,IAAI,CAkBb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldLabels.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/fieldLabels.ts"],"names":[],"mappings":"AAmBA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SchemaPayload } from "../../schemas";
|
|
2
|
+
import { type AuditEvent } from "./FieldAuditLog";
|
|
3
|
+
type Payload = SchemaPayload<"document-field-extraction">;
|
|
4
|
+
/** Handler/data props the HOST injects after resolveUI (NOT part of the LLM
|
|
5
|
+
* payload). When `onFieldSave` is present the field cards become editable and
|
|
6
|
+
* the audit tab is shown; otherwise the card stays read-only. */
|
|
7
|
+
export interface DocumentFieldExtractionHandlers {
|
|
8
|
+
onFieldSave?: (fieldKey: string, value: string) => Promise<void>;
|
|
9
|
+
auditEvents?: AuditEvent[];
|
|
10
|
+
auditLoading?: boolean;
|
|
11
|
+
onLoadAudit?: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function DocumentFieldExtractionResolver(p: Payload & DocumentFieldExtractionHandlers): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function DocumentFieldExtractionSkeleton(): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/resolver.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQnD,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjE,KAAK,OAAO,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAI1D;;kEAEkE;AAClE,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAkeD,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,OAAO,GAAG,+BAA+B,2CAqO7C;AAED,wBAAgB,+BAA+B,4CAiG9C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ExcelViewerProps {
|
|
2
|
+
url?: string;
|
|
3
|
+
base64?: string;
|
|
4
|
+
onLoadSuccess?: (sheetNames: string[]) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function ExcelViewer({ url, base64, onLoadSuccess }: ExcelViewerProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ExcelViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExcelViewer.d.ts","sourceRoot":"","sources":["../../../src/composites/document-preview/ExcelViewer.tsx"],"names":[],"mappings":"AASA,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAChD;AAED,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,gBAAgB,2CA6K3E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "react-pdf/dist/Page/AnnotationLayer.css";
|
|
2
|
+
import "react-pdf/dist/Page/TextLayer.css";
|
|
3
|
+
interface PdfViewerProps {
|
|
4
|
+
url?: string;
|
|
5
|
+
base64?: string;
|
|
6
|
+
onLoadSuccess?: (numPages: number) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function PdfViewer({ url, base64, onLoadSuccess }: PdfViewerProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=PdfViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfViewer.d.ts","sourceRoot":"","sources":["../../../src/composites/document-preview/PdfViewer.tsx"],"names":[],"mappings":"AAIA,OAAO,yCAAyC,CAAC;AACjD,OAAO,mCAAmC,CAAC;AAQ3C,UAAU,cAAc;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,cAAc,2CAkFvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/document-preview/resolver.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgFnD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,2CA0J3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFullscreen.d.ts","sourceRoot":"","sources":["../../../src/composites/document-preview/useFullscreen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;;;;;EAyB/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/download-card/resolver.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,2CAsCrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/engagement-pipeline/resolver.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAoBnD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,2CA8WjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/entity-card-grid/resolver.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA2DnD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,2CA0K1E"}
|
|
@@ -252,7 +252,7 @@ var PRIORITY_STYLES = {
|
|
|
252
252
|
low: { color: SEMANTIC.neutral.color, bg: SEMANTIC.neutral.bg, label: "LOW" }
|
|
253
253
|
};
|
|
254
254
|
function EscalationCardResolver(p) {
|
|
255
|
-
var _a, _b, _c, _d;
|
|
255
|
+
var _a, _b, _c, _d, _e;
|
|
256
256
|
const { BORDER: BORDER2, MUTED: MUTED2, ACCENT: ACCENT2, ACCENT_SOFT: ACCENT_SOFT2, SHADOW: SHADOW2 } = useTheme();
|
|
257
257
|
const [cardHovered, setCardHovered] = react.useState(false);
|
|
258
258
|
const [btnHovered, setBtnHovered] = react.useState(false);
|
|
@@ -345,7 +345,38 @@ function EscalationCardResolver(p) {
|
|
|
345
345
|
] }),
|
|
346
346
|
p.description && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "12px", color: MUTED2, lineHeight: 1.45 }, children: p.description })
|
|
347
347
|
] }),
|
|
348
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
348
|
+
p.document_target ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
349
|
+
"button",
|
|
350
|
+
{
|
|
351
|
+
type: "button",
|
|
352
|
+
"data-testid": "escalation-review-in-document",
|
|
353
|
+
onClick: () => (
|
|
354
|
+
// ponytail: window event bridges chat card → cockpit Files
|
|
355
|
+
// panel without threading a handler through the genui host.
|
|
356
|
+
window.dispatchEvent(
|
|
357
|
+
new CustomEvent("genui:review-in-document", {
|
|
358
|
+
detail: p.document_target
|
|
359
|
+
})
|
|
360
|
+
)
|
|
361
|
+
),
|
|
362
|
+
onMouseEnter: () => setBtnHovered(true),
|
|
363
|
+
onMouseLeave: () => setBtnHovered(false),
|
|
364
|
+
style: {
|
|
365
|
+
background: btnHovered ? ACCENT_SOFT2 : ACCENT2,
|
|
366
|
+
color: "white",
|
|
367
|
+
border: "none",
|
|
368
|
+
borderRadius: "8px",
|
|
369
|
+
padding: "8px 16px",
|
|
370
|
+
fontSize: "12px",
|
|
371
|
+
fontWeight: 600,
|
|
372
|
+
whiteSpace: "nowrap",
|
|
373
|
+
flexShrink: 0,
|
|
374
|
+
cursor: "pointer",
|
|
375
|
+
transition: "background 0.15s"
|
|
376
|
+
},
|
|
377
|
+
children: ((_d = p.ctaLabel) != null ? _d : "Review in Document") + " \u2192"
|
|
378
|
+
}
|
|
379
|
+
) : p.url ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
349
380
|
"a",
|
|
350
381
|
{
|
|
351
382
|
href: p.url,
|
|
@@ -366,9 +397,9 @@ function EscalationCardResolver(p) {
|
|
|
366
397
|
cursor: "pointer",
|
|
367
398
|
transition: "background 0.15s"
|
|
368
399
|
},
|
|
369
|
-
children: ((
|
|
400
|
+
children: ((_e = p.ctaLabel) != null ? _e : "Review & Resolve") + " \u2192"
|
|
370
401
|
}
|
|
371
|
-
)
|
|
402
|
+
) : null
|
|
372
403
|
]
|
|
373
404
|
}
|
|
374
405
|
) }) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/shared/theme.ts","../../../src/shared/ThemeContext.tsx","../../../src/shared/ColumnSettingsPanel.tsx","../../../src/shared/ComponentActions.tsx","../../../src/composites/escalation-card/resolver.tsx"],"names":["createContext","useContext","BORDER","MUTED","ACCENT","jsxs","jsx","SURFACE","SURFACE_MUTED","useState","useRef","useCallback","useEffect","toPng","ACCENT_SOFT","SHADOW"],"mappings":";;;;;;;AAOO,IAAM,MAAA,GAAS,SAAA;AACf,IAAM,WAAA,GAAc,SAAA;AACpB,IAAM,KAAA,GAAQ,SAAA;AACd,IAAM,KAAA,GAAQ,SAAA;AACd,IAAM,OAAA,GAAU,SAAA;AAChB,IAAM,aAAA,GAAgB,SAAA;AACtB,IAAM,MAAA,GAAS,4BAAA;AAKf,IAAM,UAAA,GAAa,SAAA;AAInB,IAAM,KAAA,GAAQ,qBAAA;AACd,IAAM,MAAA,GAAS,SAAA;AACf,IAAM,WAAA,GAAc,SAAA;AACpB,IAAM,SAAA,GAAY,SAAA;AAwBlB,IAAM,QAAA,GAAW;AAAA,EAEtB,KAAA,EAAS,EAAE,EAAA,EAAI,sBAAA,EAAyB,OAAO,SAAA,EAAU;AAAA,EACzD,OAAA,EAAS,EAAE,EAAA,EAAI,sBAAA,EAAyB,OAAO,SAAA,EAAU;AAAA,EAGzD,OAAA,EAAS,EAAE,EAAA,EAAI,wBAAA,EAA0B,OAAO,SAAA;AAClD,CAAA;AAEO,IAAM,aAAA,GAAgB;AAAA,EAC3B,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AC1BO,IAAM,cAAA,GAA8B;AAAA,EACzC,MAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,CAAC,GAAG,aAAa;AAClC,CAAA;AAEA,IAAM,iBAAA,GAAoBA,oBAA2B,cAAc,CAAA;AAmB5D,SAAS,QAAA,GAAwB;AACtC,EAAA,OAAOC,iBAAW,iBAAiB,CAAA;AACrC;ACrEO,SAAS,oBAAoB,EAAE,OAAA,EAAS,QAAQ,QAAA,EAAU,SAAA,EAAW,WAAU,EAA6B;AACjH,EAAA,MAAM,EAAE,QAAAC,OAAAA,EAAQ,KAAA,EAAAC,QAAO,MAAA,EAAAC,OAAAA,KAAW,QAAA,EAAS;AAC3C,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,KAAA,EAAO,QAAA,EAAU,OAAA,EAAQ,EACpF,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,eAAA,EAAiB,aAAA,EAAe,KAAA,EAAO,YAAA,EAAc,CAAA,UAAA,EAAaH,OAAM,IAAG,EACxH,QAAA,EAAA;AAAA,sBAAAI,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,SAAA;AAAA,UACT,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,QAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,QAAQ,KAAA,EAAOF,OAAAA,EAAQ,UAAA,EAAY,GAAA,EAAK,SAAS,CAAA,EAAE;AAAA,UAC9H,QAAA,EAAA;AAAA;AAAA,OAED;AAAA,sBACAE,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,SAAA;AAAA,UACT,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,QAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,QAAQ,KAAA,EAAOH,MAAAA,EAAO,UAAA,EAAY,GAAA,EAAK,SAAS,CAAA,EAAE;AAAA,UAC7H,QAAA,EAAA;AAAA;AAAA;AAED,KAAA,EACF,CAAA;AAAA,IACC,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,qBACZE,eAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QAEC,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,KAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,OAAO,mBAAA,EAAoB;AAAA,QAE5H,QAAA,EAAA;AAAA,0BAAAC,cAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,UAAA;AAAA,cACL,OAAA,EAAS,CAAC,MAAA,CAAO,GAAA,CAAI,IAAI,GAAG,CAAA;AAAA,cAC5B,QAAA,EAAU,MAAM,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA;AAAA,cAChC,KAAA,EAAO,EAAE,WAAA,EAAaF,OAAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,SAAA;AAAU;AAAA,WAC5F;AAAA,UACC,GAAA,CAAI;AAAA;AAAA,OAAA;AAAA,MATA,GAAA,CAAI;AAAA,KAWZ;AAAA,GAAA,EACH,CAAA;AAEJ;ACxCA,IAAM,SAAA,GAAY,SAAA;AAClB,IAAM,SAAA,GAAY,SAAA;AAmBX,SAAS,iBAAiB,EAAE,QAAA,EAAU,eAAe,YAAA,EAAc,QAAA,GAAW,aAAY,EAA0B;AACzH,EAAA,MAAM,EAAE,MAAA,EAAAF,OAAAA,EAAQ,KAAA,EAAAC,MAAAA,EAAO,SAAAI,QAAAA,EAAS,aAAA,EAAAC,cAAAA,EAAc,GAAI,QAAA,EAAS;AAC3D,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIC,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,eAAmB,MAAM,CAAA;AACjD,EAAA,MAAM,UAAA,GAAaC,aAAuB,IAAI,CAAA;AAC9C,EAAA,MAAM,OAAA,GAAUA,aAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,MAAA,GAASA,aAA0B,IAAI,CAAA;AAE7C,EAAA,MAAM,KAAA,GAAQC,kBAAY,MAAM;AAC9B,IAAA,OAAA,CAAQ,KAAK,CAAA;AACb,IAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,EAChB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AA1CvC,MAAA,IAAA,EAAA,EAAA,EAAA;AA2CM,MAAA,IAAA,CAAI,EAAA,GAAA,OAAA,CAAQ,OAAA,KAAR,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiB,QAAA,CAAS,EAAE,MAAA,CAAA,EAAiB;AACjD,MAAA,IAAA,CAAI,EAAA,GAAA,MAAA,CAAO,OAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,QAAA,CAAS,EAAE,MAAA,CAAA,EAAiB;AAChD,MAAA,KAAA,EAAM;AAAA,IACR,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,OAAO,CAAA;AAC9C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,OAAO,CAAA;AAAA,EAChE,CAAA,EAAG,CAAC,IAAA,EAAM,KAAK,CAAC,CAAA;AAEhB,EAAA,MAAM,iBAAA,GAAoBD,kBAAY,YAAY;AAChD,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAME,iBAAA,CAAM,UAAA,CAAW,OAAA,EAAS,EAAE,eAAA,EAAiB,OAAA,EAAS,UAAA,EAAY,CAAA,EAAG,CAAA;AACvF,MAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACpC,MAAA,CAAA,CAAE,IAAA,GAAO,GAAA;AACT,MAAA,CAAA,CAAE,QAAA,GAAW,GAAG,QAAQ,CAAA,IAAA,CAAA;AACxB,MAAA,CAAA,CAAE,KAAA,EAAM;AAAA,IACV,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAER;AACA,IAAA,KAAA,EAAM;AAAA,EACR,CAAA,EAAG,CAAC,QAAA,EAAU,KAAK,CAAC,CAAA;AAEpB,EAAA,MAAM,SAAA,GAAYF,kBAAY,MAAM;AAClC,IAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,EAAA;AACA,IAAA,KAAA,EAAM;AAAA,EACR,CAAA,EAAG,CAAC,aAAA,EAAe,KAAK,CAAC,CAAA;AAEzB,EAAA,uBACEN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAS,EACpE,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,SAAI,GAAA,EAAK,UAAA,EAAY,OAAO,EAAE,KAAA,EAAO,MAAA,EAAO,EAC1C,QAAA,EACH,CAAA;AAAA,oBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,cAAA,EAAgB,UAAA,EAAY,SAAA,EAAW,OAAO,QAAA,EAAU,UAAA,EAAY,QAAQ,EAAA,EAAI,UAAA,EAAY,GAAE,EAC3H,QAAA,EAAA;AAAA,sBAAAC,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,MAAA;AAAA,UACL,SAAS,MAAM;AAAE,YAAA,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAG,YAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,UAAG,CAAA;AAAA,UACtD,YAAA,EAAW,mBAAA;AAAA,UACX,KAAA,EAAO;AAAA,YACL,UAAA,EAAY,MAAA;AAAA,YACZ,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,SAAA;AAAA,YACR,OAAA,EAAS,SAAA;AAAA,YACT,OAAA,EAAS,MAAA;AAAA,YACT,GAAA,EAAK,KAAA;AAAA,YACL,UAAA,EAAY,QAAA;AAAA,YACZ,YAAA,EAAc,KAAA;AAAA,YACd,UAAA,EAAY;AAAA,WACd;AAAA,UACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,YAAA,CAAA,CAAE,aAAA,CAAc,MAAM,UAAA,GAAaE,cAAAA;AACnC,YAAA,CAAA,CAAE,aAAA,CAAc,gBAAA,CAAmC,QAAQ,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAO,CAAA,CAAE,KAAA,CAAM,IAAA,GAAO,SAAU,CAAA;AAAA,UACxG,CAAA;AAAA,UACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,YAAA,CAAA,CAAE,aAAA,CAAc,MAAM,UAAA,GAAa,MAAA;AACnC,YAAA,CAAA,CAAE,aAAA,CAAc,gBAAA,CAAmC,QAAQ,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAO,CAAA,CAAE,KAAA,CAAM,IAAA,GAAO,SAAU,CAAA;AAAA,UACxG,CAAA;AAAA,UAEA,QAAA,kBAAAH,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAK,MAAA,EAAO,GAAA,EAAI,SAAQ,UAAA,EACjC,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,SAAA,EAAW,UAAA,EAAY,cAAa,EAAG,CAAA;AAAA,4BAClFA,cAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,UAAA,EAAY,cAAa,EAAG,CAAA;AAAA,4BACnFA,cAAAA,CAAC,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,UAAA,EAAY,cAAa,EAAG;AAAA,WAAA,EACrF;AAAA;AAAA,OACF;AAAA,MAEC,wBACCA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,OAAA;AAAA,UACL,KAAA,EAAO;AAAA,YACL,QAAA,EAAU,UAAA;AAAA,YACV,MAAA,EAAQ,MAAA;AAAA,YACR,KAAA,EAAO,CAAA;AAAA,YACP,YAAA,EAAc,KAAA;AAAA,YACd,UAAA,EAAYC,QAAAA;AAAA,YACZ,MAAA,EAAQ,aAAaL,OAAM,CAAA,CAAA;AAAA,YAC3B,YAAA,EAAc,SAAA;AAAA,YACd,SAAA,EAAW,6BAAA;AAAA,YACX,MAAA,EAAQ,EAAA;AAAA,YACR,OAAA,EAAS,IAAA,KAAS,SAAA,GAAY,MAAA,GAAS,KAAA;AAAA,YACvC,QAAA,EAAU,IAAA,KAAS,SAAA,GAAY,OAAA,GAAU;AAAA,WAC3C;AAAA,UAEC,QAAA,EAAA,IAAA,KAAS,MAAA,mBACRG,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAS,EACpD,QAAA,EAAA;AAAA,YAAA,YAAA,oBACCC,eAAC,UAAA,EAAA,EAAW,KAAA,EAAM,qBAAoB,OAAA,EAAS,MAAM,OAAA,CAAQ,SAAS,CAAA,EAAG,CAAA;AAAA,YAE1E,iCACCA,cAAAA,CAAC,cAAW,KAAA,EAAM,cAAA,EAAe,SAAS,SAAA,EAAW,CAAA;AAAA,4BAEvDA,cAAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAM,cAAA,EAAe,SAAS,iBAAA,EAAmB;AAAA,WAAA,EAC/D,CAAA,mBAEAD,eAAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,cAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,MAAM,OAAA,CAAQ,MAAM,CAAA;AAAA,gBAC7B,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,QAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,QAAQ,KAAA,EAAOH,MAAAA,EAAO,YAAA,EAAc,KAAA,EAAO,SAAS,CAAA,EAAE;AAAA,gBACjI,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAG,cAAAA;AAAA,cAAC,mBAAA;AAAA,cAAA;AAAA,gBACC,SAAS,YAAA,CAAc,OAAA;AAAA,gBACvB,QAAQ,YAAA,CAAc,MAAA;AAAA,gBACtB,UAAU,YAAA,CAAc,QAAA;AAAA,gBACxB,WAAW,YAAA,CAAc,SAAA;AAAA,gBACzB,WAAW,YAAA,CAAc;AAAA;AAAA;AAC3B,WAAA,EACF;AAAA;AAAA;AAEJ,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,KAAA,EAAO,OAAA,EAAQ,EAA2C;AAC9E,EAAA,MAAM,EAAE,aAAA,EAAAE,cAAAA,EAAc,GAAI,QAAA,EAAS;AACnC,EAAA,uBACEF,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,UAAA,EAAY,MAAA;AAAA,QACZ,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,SAAA;AAAA,QACR,OAAA,EAAS,UAAA;AAAA,QACT,QAAA,EAAU,QAAA;AAAA,QACV,KAAA,EAAO,mBAAA;AAAA,QACP,SAAA,EAAW,MAAA;AAAA,QACX,YAAA,EAAc,KAAA;AAAA,QACd,UAAA,EAAY,kBAAA;AAAA,QACZ,UAAA,EAAY;AAAA,OACd;AAAA,MACA,cAAc,CAAC,CAAA,KAAO,CAAA,CAAE,aAAA,CAAc,MAAM,UAAA,GAAaE,cAAAA;AAAA,MACzD,cAAc,CAAC,CAAA,KAAO,CAAA,CAAE,aAAA,CAAc,MAAM,UAAA,GAAa,MAAA;AAAA,MAExD,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AC3KA,IAAM,eAAA,GAAkF;AAAA,EACtF,IAAA,EAAM,EAAE,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,KAAA,EAAO,EAAA,EAAI,QAAA,CAAS,KAAA,CAAM,EAAA,EAAI,KAAA,EAAO,MAAA,EAAO;AAAA,EAC1E,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,EAAA,EAAI,QAAA,CAAS,OAAA,CAAQ,EAAA,EAAI,KAAA,EAAO,QAAA,EAAS;AAAA,EAClF,GAAA,EAAK,EAAE,KAAA,EAAO,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,EAAA,EAAI,QAAA,CAAS,OAAA,CAAQ,EAAA,EAAI,KAAA,EAAO,KAAA;AACxE,CAAA;AAEO,SAAS,uBAAuB,CAAA,EAAqC;AAhB5E,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAiBE,EAAA,MAAM,EAAE,MAAA,EAAAN,OAAAA,EAAQ,KAAA,EAAAC,MAAAA,EAAO,MAAA,EAAAC,OAAAA,EAAQ,WAAA,EAAAU,YAAAA,EAAa,MAAA,EAAAC,OAAAA,EAAO,GAAI,QAAA,EAAS;AAChE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIN,eAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,eAAS,KAAK,CAAA;AAElD,EAAA,MAAM,gBAAgB,CAAA,CAAE,QAAA,GAAW,eAAA,CAAgB,CAAA,CAAE,QAAQ,CAAA,GAAI,IAAA;AAEjE,EAAA,MAAM,SAAA,GAAA,CAAY,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,KAAA,KAAf,IAAA,GAAA,EAAA,GAAwBL,OAAAA;AAC1C,EAAA,MAAM,MAAA,GAAA,CAAS,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,EAAA,KAAf,IAAA,GAAA,EAAA,GAAqB,SAAA;AAEpC,EAAA,uBACEE,eAAC,gBAAA,EAAA,EAAiB,QAAA,EAAA,CAAU,OAAE,KAAA,KAAF,IAAA,GAAA,EAAA,GAAW,YAAA,EACrC,QAAA,kBAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,KAAA,EAAO,QAAQ,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,GAAA,EAAK,MAAA,EAAO,EACjF,QAAA,kBAAAD,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAc,MAAM,cAAA,CAAe,IAAI,CAAA;AAAA,MACvC,YAAA,EAAc,MAAM,cAAA,CAAe,KAAK,CAAA;AAAA,MACxC,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,UAAA;AAAA,QACV,YAAA,EAAc,SAAA;AAAA,QACd,MAAA,EAAQ,aAAaH,OAAM,CAAA,CAAA;AAAA,QAC3B,OAAA,EAAS,qBAAA;AAAA,QACT,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,KAAA;AAAA,QACf,UAAA,EAAY,QAAA;AAAA,QACZ,GAAA,EAAK,MAAA;AAAA,QACL,QAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAW,cACP,yDAAA,GACAa,OAAAA;AAAA,QACJ,UAAA,EAAY;AAAA,OACd;AAAA,MAGA,QAAA,EAAA;AAAA,wBAAAT,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,QAAA,EAAU,UAAA;AAAA,cACV,GAAA,EAAK,CAAA;AAAA,cACL,IAAA,EAAM,CAAA;AAAA,cACN,MAAA,EAAQ,CAAA;AAAA,cACR,KAAA,EAAO,KAAA;AAAA,cACP,UAAA,EAAY;AAAA;AACd;AAAA,SACF;AAAA,wBAGAA,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,UAAA,EAAY,MAAA;AAAA,cACZ,KAAA,EAAO,SAAA;AAAA,cACP,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB,QAAA;AAAA,cAChB,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY,CAAA;AAAA,cACZ,UAAA,EAAY,CAAA;AAAA,cACZ,SAAA,EAAW;AAAA,aACb;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAGAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,OAAM,EACvF,QAAA,EAAA;AAAA,0BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,KAAA,EAAO,QAAA,EAAU,MAAA,EAAO,EAC/E,QAAA,EAAA;AAAA,YAAA,CAAA,CAAE,yBACDC,cAAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO;AAAA,kBACL,UAAA,EAAY,mBAAA;AAAA,kBACZ,QAAA,EAAU,MAAA;AAAA,kBACV,UAAA,EAAY,GAAA;AAAA,kBACZ,KAAA,EAAO,mBAAA;AAAA,kBACP,aAAA,EAAe,SAAA;AAAA,kBACf,MAAA,EAAQ;AAAA,iBACV;AAAA,gBAEC,QAAA,EAAA,CAAA,CAAE;AAAA;AAAA,aACL;AAAA,YAED,iCACCA,cAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO;AAAA,kBACL,QAAA,EAAU,MAAA;AAAA,kBACV,UAAA,EAAY,GAAA;AAAA,kBACZ,aAAA,EAAe,QAAA;AAAA,kBACf,OAAA,EAAS,SAAA;AAAA,kBACT,YAAA,EAAc,QAAA;AAAA,kBACd,YAAY,aAAA,CAAc,EAAA;AAAA,kBAC1B,OAAO,aAAA,CAAc;AAAA,iBACvB;AAAA,gBAEC,QAAA,EAAA,aAAA,CAAc;AAAA;AAAA;AACjB,WAAA,EAEJ,CAAA;AAAA,UACC,CAAA,CAAE,WAAA,oBACDA,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,QAAA,EAAU,MAAA,EAAQ,OAAOH,MAAAA,EAAO,UAAA,EAAY,IAAA,EAAK,EAC7D,YAAE,WAAA,EACL;AAAA,SAAA,EAEJ,CAAA;AAAA,wBAGAG,cAAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,MAAM,CAAA,CAAE,GAAA;AAAA,YACR,MAAA,EAAO,QAAA;AAAA,YACP,GAAA,EAAI,qBAAA;AAAA,YACJ,YAAA,EAAc,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,YACtC,YAAA,EAAc,MAAM,aAAA,CAAc,KAAK,CAAA;AAAA,YACvC,KAAA,EAAO;AAAA,cACL,UAAA,EAAY,aAAaQ,YAAAA,GAAcV,OAAAA;AAAA,cACvC,KAAA,EAAO,OAAA;AAAA,cACP,YAAA,EAAc,KAAA;AAAA,cACd,OAAA,EAAS,UAAA;AAAA,cACT,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,cAAA,EAAgB,MAAA;AAAA,cAChB,UAAA,EAAY,QAAA;AAAA,cACZ,UAAA,EAAY,CAAA;AAAA,cACZ,MAAA,EAAQ,SAAA;AAAA,cACR,UAAA,EAAY;AAAA,aACd;AAAA,YAEE,QAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAE,QAAA,KAAF,IAAA,GAAA,EAAA,GAAc,kBAAA,IAAsB;AAAA;AAAA;AACxC;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ","file":"resolver.cjs","sourcesContent":["// Theme tokens. Defaults below are the light-mode values; every token is also\n// exposed through `useTheme()` (see ThemeContext) so a consumer can override\n// them per theme (e.g. adoptwebui passes `var(--th-*)` strings for dark mode).\n//\n// IMPORTANT: components must read colors from `useTheme()` — NOT these static\n// imports — so provider overrides actually apply. The static exports remain for\n// non-React callers and as the default values.\nexport const BORDER = \"#dedede\";\nexport const BORDER_SOFT = \"#f2f2f2\"; // lighter hairline (subtle dividers, row lines)\nexport const MUTED = \"#777777\";\nexport const PAPER = \"#f6f6f6\"; // recessed panel surface\nexport const SURFACE = \"#ffffff\"; // primary card / component surface\nexport const SURFACE_MUTED = \"#fafafa\"; // zebra rows, hover fills, progress tracks\nexport const SHADOW = \"0 1px 2px rgba(0,0,0,0.04)\"; // resting card elevation\n// Primary text color. Mirrors contract.css's `--foreground` default so components\n// look identical when unthemed. Exposed as a token so portaled UI (e.g. the\n// preview modal, which mounts on document.body and escapes any ancestor that\n// overrides `--foreground`) can re-pin `--foreground` from the active theme.\nexport const FOREGROUND = \"#111111\";\n// Modal/overlay backdrop scrim. Default is a neutral dark slate; consumers can\n// pass a theme-tinted rgba so the defocus matches the active theme (e.g. warm\n// on a \"carbon\" dark theme, blue on \"midnight\") instead of always reading blue.\nexport const SCRIM = \"rgba(15,23,42,0.55)\";\nexport const ACCENT = \"#ff5000\";\nexport const ACCENT_SOFT = \"#cc4000\";\nexport const SECONDARY = \"#0364ff\";\n\n// Semantic status colors. Backgrounds are translucent tints of the hue so they\n// sit correctly on ANY surface (white in light, dark panel in dark) instead of\n// a fixed pastel fill; the text is a mid-saturated hue legible on both. Keep\n// hue == meaning (blue=info/asset, green=success/revenue, red=error/expense,\n// amber=warning/draft, purple=filed/equity).\nexport const ACCOUNT_TYPE_COLORS = {\n asset: { bg: \"rgba(37,99,235,0.12)\", color: \"#2563eb\" },\n liability: { bg: \"rgba(217,119,6,0.14)\", color: \"#d97706\" },\n equity: { bg: \"rgba(124,58,237,0.13)\", color: \"#7c3aed\" },\n revenue: { bg: \"rgba(22,163,74,0.13)\", color: \"#16a34a\" },\n expense: { bg: \"rgba(220,38,38,0.12)\", color: \"#dc2626\" },\n} as const;\n\nexport const STATUS_COLORS = {\n draft: { bg: \"rgba(217,119,6,0.14)\", color: \"#d97706\" },\n \"pending-review\": { bg: \"rgba(37,99,235,0.12)\", color: \"#2563eb\" },\n approved: { bg: \"rgba(22,163,74,0.13)\", color: \"#16a34a\" },\n filed: { bg: \"rgba(124,58,237,0.13)\", color: \"#7c3aed\" },\n} as const;\n\n// Shared semantic hue pairs for inline status badges (translucent bg + mid-hue\n// text), so components don't hardcode pastel fills that break in dark mode.\nexport const SEMANTIC = {\n success: { bg: \"rgba(22,163,74,0.13)\", color: \"#16a34a\" },\n error: { bg: \"rgba(220,38,38,0.12)\", color: \"#dc2626\" },\n warning: { bg: \"rgba(217,119,6,0.14)\", color: \"#d97706\" },\n info: { bg: \"rgba(37,99,235,0.12)\", color: \"#2563eb\" },\n purple: { bg: \"rgba(124,58,237,0.13)\", color: \"#7c3aed\" },\n neutral: { bg: \"rgba(120,120,120,0.12)\", color: \"#777777\" },\n} as const;\n\nexport const CHART_PALETTE = [\n \"#ff5000\",\n \"#0364ff\",\n \"#16a34a\",\n \"#dc2626\",\n \"#7c3aed\",\n \"#0891b2\",\n \"#f59e0b\",\n \"#6366f1\",\n \"#ec4899\",\n \"#84cc16\",\n \"#e11d48\",\n \"#0ea5e9\",\n];\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n BORDER,\n BORDER_SOFT,\n MUTED,\n PAPER,\n SURFACE,\n SURFACE_MUTED,\n SHADOW,\n FOREGROUND,\n SCRIM,\n ACCENT,\n ACCENT_SOFT,\n SECONDARY,\n CHART_PALETTE,\n} from \"./theme\";\n\nexport interface ThemeTokens {\n BORDER: string;\n /** Lighter hairline — subtle dividers / row lines. */\n BORDER_SOFT: string;\n MUTED: string;\n /** Recessed panel surface. */\n PAPER: string;\n /** Primary card / component surface (white in light, dark panel in dark). */\n SURFACE: string;\n /** Zebra rows, hover fills, progress tracks. */\n SURFACE_MUTED: string;\n /** Resting card elevation box-shadow. */\n SHADOW: string;\n /** Primary text color. Components read text via the `--foreground` CSS var by\n * default; this token lets portaled UI (preview modal) re-pin that var from\n * the active theme. */\n FOREGROUND: string;\n /** Modal/overlay backdrop scrim (rgba). Pass a theme-tinted value so the\n * defocus matches the active theme rather than always reading blue. */\n SCRIM: string;\n ACCENT: string;\n ACCENT_SOFT: string;\n SECONDARY: string;\n CHART_PALETTE: string[];\n}\n\nexport const DEFAULT_TOKENS: ThemeTokens = {\n BORDER,\n BORDER_SOFT,\n MUTED,\n PAPER,\n SURFACE,\n SURFACE_MUTED,\n SHADOW,\n FOREGROUND,\n SCRIM,\n ACCENT,\n ACCENT_SOFT,\n SECONDARY,\n CHART_PALETTE: [...CHART_PALETTE],\n};\n\nconst GenUIThemeContext = createContext<ThemeTokens>(DEFAULT_TOKENS);\n\nexport interface GenUIThemeProviderProps {\n colors?: Partial<ThemeTokens>;\n children: React.ReactNode;\n}\n\nexport function GenUIThemeProvider({ colors, children }: GenUIThemeProviderProps) {\n const merged = useMemo(\n () => (colors ? { ...DEFAULT_TOKENS, ...colors } : DEFAULT_TOKENS),\n [colors]\n );\n return (\n <GenUIThemeContext.Provider value={merged}>\n {children}\n </GenUIThemeContext.Provider>\n );\n}\n\nexport function useTheme(): ThemeTokens {\n return useContext(GenUIThemeContext);\n}\n","\"use client\";\n\nimport React from \"react\";\nimport { useTheme } from \"./ThemeContext\";\n\ninterface ColumnSettingsPanelProps {\n columns: { key: string; label: string }[];\n hidden: Set<string>;\n onToggle: (key: string) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\nexport function ColumnSettingsPanel({ columns, hidden, onToggle, onShowAll, onHideAll }: ColumnSettingsPanelProps) {\n const { BORDER, MUTED, ACCENT } = useTheme();\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"6px\", minWidth: \"180px\" }}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", paddingBottom: \"4px\", borderBottom: `1px solid ${BORDER}` }}>\n <button\n onClick={onShowAll}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: ACCENT, fontWeight: 500, padding: 0 }}\n >\n Show all\n </button>\n <button\n onClick={onHideAll}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: MUTED, fontWeight: 500, padding: 0 }}\n >\n Hide all\n </button>\n </div>\n {columns.map((col) => (\n <label\n key={col.key}\n style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\", cursor: \"pointer\", fontSize: \"12px\", color: \"var(--foreground)\" }}\n >\n <input\n type=\"checkbox\"\n checked={!hidden.has(col.key)}\n onChange={() => onToggle(col.key)}\n style={{ accentColor: ACCENT, width: \"14px\", height: \"14px\", margin: 0, cursor: \"pointer\" }}\n />\n {col.label}\n </label>\n ))}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport { toPng } from \"html-to-image\";\nimport { ColumnSettingsPanel } from \"./ColumnSettingsPanel\";\nimport { useTheme } from \"./ThemeContext\";\n\nconst DOT_COLOR = \"#aaaaaa\";\nconst DOT_HOVER = \"#555555\";\n\ninterface ColumnConfig {\n columns: { key: string; label: string }[];\n hidden: Set<string>;\n onToggle: (key: string) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\ninterface ComponentActionsProps {\n children: React.ReactNode;\n onDownloadCSV?: () => void;\n columnConfig?: ColumnConfig;\n filename?: string;\n}\n\ntype MenuView = \"main\" | \"columns\";\n\nexport function ComponentActions({ children, onDownloadCSV, columnConfig, filename = \"component\" }: ComponentActionsProps) {\n const { BORDER, MUTED, SURFACE, SURFACE_MUTED } = useTheme();\n const [open, setOpen] = useState(false);\n const [view, setView] = useState<MenuView>(\"main\");\n const contentRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const btnRef = useRef<HTMLButtonElement>(null);\n\n const close = useCallback(() => {\n setOpen(false);\n setView(\"main\");\n }, []);\n\n useEffect(() => {\n if (!open) return;\n const handler = (e: MouseEvent) => {\n if (menuRef.current?.contains(e.target as Node)) return;\n if (btnRef.current?.contains(e.target as Node)) return;\n close();\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, [open, close]);\n\n const handleDownloadPNG = useCallback(async () => {\n if (!contentRef.current) return;\n try {\n const url = await toPng(contentRef.current, { backgroundColor: \"white\", pixelRatio: 2 });\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `${filename}.png`;\n a.click();\n } catch {\n // silent fail\n }\n close();\n }, [filename, close]);\n\n const handleCSV = useCallback(() => {\n onDownloadCSV?.();\n close();\n }, [onDownloadCSV, close]);\n\n return (\n <div style={{ width: \"100%\", display: \"flex\", flexDirection: \"column\" }}>\n <div ref={contentRef} style={{ width: \"100%\" }}>\n {children}\n </div>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", marginTop: \"4px\", position: \"relative\", zIndex: 10, flexShrink: 0 }}>\n <button\n ref={btnRef}\n onClick={() => { setOpen((o) => !o); setView(\"main\"); }}\n aria-label=\"Component actions\"\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px 8px\",\n display: \"flex\",\n gap: \"3px\",\n alignItems: \"center\",\n borderRadius: \"6px\",\n transition: \"background 0.15s\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = SURFACE_MUTED;\n e.currentTarget.querySelectorAll<SVGCircleElement>(\"circle\").forEach((c) => (c.style.fill = DOT_HOVER));\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"none\";\n e.currentTarget.querySelectorAll<SVGCircleElement>(\"circle\").forEach((c) => (c.style.fill = DOT_COLOR));\n }}\n >\n <svg width=\"20\" height=\"6\" viewBox=\"0 0 20 6\">\n <circle cx=\"3\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n <circle cx=\"10\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n <circle cx=\"17\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n </svg>\n </button>\n\n {open && (\n <div\n ref={menuRef}\n style={{\n position: \"absolute\",\n bottom: \"100%\",\n right: 0,\n marginBottom: \"4px\",\n background: SURFACE,\n border: `1px solid ${BORDER}`,\n borderRadius: \"0.75rem\",\n boxShadow: \"0 4px 12px rgba(0,0,0,0.06)\",\n zIndex: 50,\n padding: view === \"columns\" ? \"10px\" : \"4px\",\n minWidth: view === \"columns\" ? \"200px\" : \"160px\",\n }}\n >\n {view === \"main\" ? (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {columnConfig && (\n <MenuButton label=\"Customize columns\" onClick={() => setView(\"columns\")} />\n )}\n {onDownloadCSV && (\n <MenuButton label=\"Download CSV\" onClick={handleCSV} />\n )}\n <MenuButton label=\"Download PNG\" onClick={handleDownloadPNG} />\n </div>\n ) : (\n <div>\n <button\n onClick={() => setView(\"main\")}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: MUTED, marginBottom: \"6px\", padding: 0 }}\n >\n ← Back\n </button>\n <ColumnSettingsPanel\n columns={columnConfig!.columns}\n hidden={columnConfig!.hidden}\n onToggle={columnConfig!.onToggle}\n onShowAll={columnConfig!.onShowAll}\n onHideAll={columnConfig!.onHideAll}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nfunction MenuButton({ label, onClick }: { label: string; onClick: () => void }) {\n const { SURFACE_MUTED } = useTheme();\n return (\n <button\n onClick={onClick}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"8px 12px\",\n fontSize: \"12.5px\",\n color: \"var(--foreground)\",\n textAlign: \"left\",\n borderRadius: \"8px\",\n transition: \"background 0.15s\",\n whiteSpace: \"nowrap\",\n }}\n onMouseEnter={(e) => (e.currentTarget.style.background = SURFACE_MUTED)}\n onMouseLeave={(e) => (e.currentTarget.style.background = \"none\")}\n >\n {label}\n </button>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport type { SchemaPayload } from \"../../schemas\";\nimport { ComponentActions } from \"../../shared/ComponentActions\";\nimport { SEMANTIC } from \"../../shared/theme\";\nimport { useTheme } from \"../../shared/ThemeContext\";\n\ntype Priority = \"low\" | \"medium\" | \"high\";\n\nconst PRIORITY_STYLES: Record<Priority, { color: string; bg: string; label: string }> = {\n high: { color: SEMANTIC.error.color, bg: SEMANTIC.error.bg, label: \"HIGH\" },\n medium: { color: SEMANTIC.warning.color, bg: SEMANTIC.warning.bg, label: \"MEDIUM\" },\n low: { color: SEMANTIC.neutral.color, bg: SEMANTIC.neutral.bg, label: \"LOW\" },\n};\n\nexport function EscalationCardResolver(p: SchemaPayload<\"escalation-card\">) {\n const { BORDER, MUTED, ACCENT, ACCENT_SOFT, SHADOW } = useTheme();\n const [cardHovered, setCardHovered] = useState(false);\n const [btnHovered, setBtnHovered] = useState(false);\n\n const priorityStyle = p.priority ? PRIORITY_STYLES[p.priority] : null;\n // Default (no priority) badge falls back to the action accent.\n const railColor = priorityStyle?.color ?? ACCENT;\n const iconBg = priorityStyle?.bg ?? \"#fff2ec\";\n\n return (\n <ComponentActions filename={p.title ?? \"escalation\"}>\n <div style={{ width: \"100%\", display: \"flex\", flexDirection: \"column\", gap: \"10px\" }}>\n <div\n onMouseEnter={() => setCardHovered(true)}\n onMouseLeave={() => setCardHovered(false)}\n style={{\n position: \"relative\",\n borderRadius: \"0.75rem\",\n border: `1px solid ${BORDER}`,\n padding: \"16px 18px 16px 20px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: \"14px\",\n overflow: \"hidden\",\n boxShadow: cardHovered\n ? \"0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.08)\"\n : SHADOW,\n transition: \"box-shadow 0.2s, border-color 0.2s\",\n }}\n >\n {/* Priority accent rail */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: \"4px\",\n background: railColor,\n }}\n />\n\n {/* Escalation icon box */}\n <div\n style={{\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"8px\",\n background: iconBg,\n color: railColor,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"18px\",\n lineHeight: 1,\n flexShrink: 0,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.04)\",\n }}\n >\n {\"⚑\"}\n </div>\n\n {/* Body */}\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: \"4px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\", flexWrap: \"wrap\" }}>\n {p.title && (\n <p\n style={{\n fontFamily: \"var(--font-serif)\",\n fontSize: \"15px\",\n fontWeight: 400,\n color: \"var(--foreground)\",\n letterSpacing: \"-0.01em\",\n margin: 0,\n }}\n >\n {p.title}\n </p>\n )}\n {priorityStyle && (\n <span\n style={{\n fontSize: \"10px\",\n fontWeight: 600,\n letterSpacing: \"0.04em\",\n padding: \"2px 8px\",\n borderRadius: \"9999px\",\n background: priorityStyle.bg,\n color: priorityStyle.color,\n }}\n >\n {priorityStyle.label}\n </span>\n )}\n </div>\n {p.description && (\n <span style={{ fontSize: \"12px\", color: MUTED, lineHeight: 1.45 }}>\n {p.description}\n </span>\n )}\n </div>\n\n {/* CTA deeplink */}\n <a\n href={p.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onMouseEnter={() => setBtnHovered(true)}\n onMouseLeave={() => setBtnHovered(false)}\n style={{\n background: btnHovered ? ACCENT_SOFT : ACCENT,\n color: \"white\",\n borderRadius: \"8px\",\n padding: \"8px 16px\",\n fontSize: \"12px\",\n fontWeight: 600,\n textDecoration: \"none\",\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n cursor: \"pointer\",\n transition: \"background 0.15s\",\n }}\n >\n {(p.ctaLabel ?? \"Review & Resolve\") + \" →\"}\n </a>\n </div>\n </div>\n </ComponentActions>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/shared/theme.ts","../../../src/shared/ThemeContext.tsx","../../../src/shared/ColumnSettingsPanel.tsx","../../../src/shared/ComponentActions.tsx","../../../src/composites/escalation-card/resolver.tsx"],"names":["createContext","useContext","BORDER","MUTED","ACCENT","jsxs","jsx","SURFACE","SURFACE_MUTED","useState","useRef","useCallback","useEffect","toPng","ACCENT_SOFT","SHADOW"],"mappings":"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","file":"resolver.cjs","sourcesContent":["// Theme tokens. Defaults below are the light-mode values; every token is also\n// exposed through `useTheme()` (see ThemeContext) so a consumer can override\n// them per theme (e.g. adoptwebui passes `var(--th-*)` strings for dark mode).\n//\n// IMPORTANT: components must read colors from `useTheme()` — NOT these static\n// imports — so provider overrides actually apply. The static exports remain for\n// non-React callers and as the default values.\nexport const BORDER = \"#dedede\";\nexport const BORDER_SOFT = \"#f2f2f2\"; // lighter hairline (subtle dividers, row lines)\nexport const MUTED = \"#777777\";\nexport const PAPER = \"#f6f6f6\"; // recessed panel surface\nexport const SURFACE = \"#ffffff\"; // primary card / component surface\nexport const SURFACE_MUTED = \"#fafafa\"; // zebra rows, hover fills, progress tracks\nexport const SHADOW = \"0 1px 2px rgba(0,0,0,0.04)\"; // resting card elevation\n// Primary text color. Mirrors contract.css's `--foreground` default so components\n// look identical when unthemed. Exposed as a token so portaled UI (e.g. the\n// preview modal, which mounts on document.body and escapes any ancestor that\n// overrides `--foreground`) can re-pin `--foreground` from the active theme.\nexport const FOREGROUND = \"#111111\";\n// Modal/overlay backdrop scrim. Default is a neutral dark slate; consumers can\n// pass a theme-tinted rgba so the defocus matches the active theme (e.g. warm\n// on a \"carbon\" dark theme, blue on \"midnight\") instead of always reading blue.\nexport const SCRIM = \"rgba(15,23,42,0.55)\";\nexport const ACCENT = \"#ff5000\";\nexport const ACCENT_SOFT = \"#cc4000\";\nexport const SECONDARY = \"#0364ff\";\n\n// Semantic status colors. Backgrounds are translucent tints of the hue so they\n// sit correctly on ANY surface (white in light, dark panel in dark) instead of\n// a fixed pastel fill; the text is a mid-saturated hue legible on both. Keep\n// hue == meaning (blue=info/asset, green=success/revenue, red=error/expense,\n// amber=warning/draft, purple=filed/equity).\nexport const ACCOUNT_TYPE_COLORS = {\n asset: { bg: \"rgba(37,99,235,0.12)\", color: \"#2563eb\" },\n liability: { bg: \"rgba(217,119,6,0.14)\", color: \"#d97706\" },\n equity: { bg: \"rgba(124,58,237,0.13)\", color: \"#7c3aed\" },\n revenue: { bg: \"rgba(22,163,74,0.13)\", color: \"#16a34a\" },\n expense: { bg: \"rgba(220,38,38,0.12)\", color: \"#dc2626\" },\n} as const;\n\nexport const STATUS_COLORS = {\n draft: { bg: \"rgba(217,119,6,0.14)\", color: \"#d97706\" },\n \"pending-review\": { bg: \"rgba(37,99,235,0.12)\", color: \"#2563eb\" },\n approved: { bg: \"rgba(22,163,74,0.13)\", color: \"#16a34a\" },\n filed: { bg: \"rgba(124,58,237,0.13)\", color: \"#7c3aed\" },\n} as const;\n\n// Shared semantic hue pairs for inline status badges (translucent bg + mid-hue\n// text), so components don't hardcode pastel fills that break in dark mode.\nexport const SEMANTIC = {\n success: { bg: \"rgba(22,163,74,0.13)\", color: \"#16a34a\" },\n error: { bg: \"rgba(220,38,38,0.12)\", color: \"#dc2626\" },\n warning: { bg: \"rgba(217,119,6,0.14)\", color: \"#d97706\" },\n info: { bg: \"rgba(37,99,235,0.12)\", color: \"#2563eb\" },\n purple: { bg: \"rgba(124,58,237,0.13)\", color: \"#7c3aed\" },\n neutral: { bg: \"rgba(120,120,120,0.12)\", color: \"#777777\" },\n} as const;\n\nexport const CHART_PALETTE = [\n \"#ff5000\",\n \"#0364ff\",\n \"#16a34a\",\n \"#dc2626\",\n \"#7c3aed\",\n \"#0891b2\",\n \"#f59e0b\",\n \"#6366f1\",\n \"#ec4899\",\n \"#84cc16\",\n \"#e11d48\",\n \"#0ea5e9\",\n];\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n BORDER,\n BORDER_SOFT,\n MUTED,\n PAPER,\n SURFACE,\n SURFACE_MUTED,\n SHADOW,\n FOREGROUND,\n SCRIM,\n ACCENT,\n ACCENT_SOFT,\n SECONDARY,\n CHART_PALETTE,\n} from \"./theme\";\n\nexport interface ThemeTokens {\n BORDER: string;\n /** Lighter hairline — subtle dividers / row lines. */\n BORDER_SOFT: string;\n MUTED: string;\n /** Recessed panel surface. */\n PAPER: string;\n /** Primary card / component surface (white in light, dark panel in dark). */\n SURFACE: string;\n /** Zebra rows, hover fills, progress tracks. */\n SURFACE_MUTED: string;\n /** Resting card elevation box-shadow. */\n SHADOW: string;\n /** Primary text color. Components read text via the `--foreground` CSS var by\n * default; this token lets portaled UI (preview modal) re-pin that var from\n * the active theme. */\n FOREGROUND: string;\n /** Modal/overlay backdrop scrim (rgba). Pass a theme-tinted value so the\n * defocus matches the active theme rather than always reading blue. */\n SCRIM: string;\n ACCENT: string;\n ACCENT_SOFT: string;\n SECONDARY: string;\n CHART_PALETTE: string[];\n}\n\nexport const DEFAULT_TOKENS: ThemeTokens = {\n BORDER,\n BORDER_SOFT,\n MUTED,\n PAPER,\n SURFACE,\n SURFACE_MUTED,\n SHADOW,\n FOREGROUND,\n SCRIM,\n ACCENT,\n ACCENT_SOFT,\n SECONDARY,\n CHART_PALETTE: [...CHART_PALETTE],\n};\n\nconst GenUIThemeContext = createContext<ThemeTokens>(DEFAULT_TOKENS);\n\nexport interface GenUIThemeProviderProps {\n colors?: Partial<ThemeTokens>;\n children: React.ReactNode;\n}\n\nexport function GenUIThemeProvider({ colors, children }: GenUIThemeProviderProps) {\n const merged = useMemo(\n () => (colors ? { ...DEFAULT_TOKENS, ...colors } : DEFAULT_TOKENS),\n [colors]\n );\n return (\n <GenUIThemeContext.Provider value={merged}>\n {children}\n </GenUIThemeContext.Provider>\n );\n}\n\nexport function useTheme(): ThemeTokens {\n return useContext(GenUIThemeContext);\n}\n","\"use client\";\n\nimport React from \"react\";\nimport { useTheme } from \"./ThemeContext\";\n\ninterface ColumnSettingsPanelProps {\n columns: { key: string; label: string }[];\n hidden: Set<string>;\n onToggle: (key: string) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\nexport function ColumnSettingsPanel({ columns, hidden, onToggle, onShowAll, onHideAll }: ColumnSettingsPanelProps) {\n const { BORDER, MUTED, ACCENT } = useTheme();\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"6px\", minWidth: \"180px\" }}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", paddingBottom: \"4px\", borderBottom: `1px solid ${BORDER}` }}>\n <button\n onClick={onShowAll}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: ACCENT, fontWeight: 500, padding: 0 }}\n >\n Show all\n </button>\n <button\n onClick={onHideAll}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: MUTED, fontWeight: 500, padding: 0 }}\n >\n Hide all\n </button>\n </div>\n {columns.map((col) => (\n <label\n key={col.key}\n style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\", cursor: \"pointer\", fontSize: \"12px\", color: \"var(--foreground)\" }}\n >\n <input\n type=\"checkbox\"\n checked={!hidden.has(col.key)}\n onChange={() => onToggle(col.key)}\n style={{ accentColor: ACCENT, width: \"14px\", height: \"14px\", margin: 0, cursor: \"pointer\" }}\n />\n {col.label}\n </label>\n ))}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport { toPng } from \"html-to-image\";\nimport { ColumnSettingsPanel } from \"./ColumnSettingsPanel\";\nimport { useTheme } from \"./ThemeContext\";\n\nconst DOT_COLOR = \"#aaaaaa\";\nconst DOT_HOVER = \"#555555\";\n\ninterface ColumnConfig {\n columns: { key: string; label: string }[];\n hidden: Set<string>;\n onToggle: (key: string) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\ninterface ComponentActionsProps {\n children: React.ReactNode;\n onDownloadCSV?: () => void;\n columnConfig?: ColumnConfig;\n filename?: string;\n}\n\ntype MenuView = \"main\" | \"columns\";\n\nexport function ComponentActions({ children, onDownloadCSV, columnConfig, filename = \"component\" }: ComponentActionsProps) {\n const { BORDER, MUTED, SURFACE, SURFACE_MUTED } = useTheme();\n const [open, setOpen] = useState(false);\n const [view, setView] = useState<MenuView>(\"main\");\n const contentRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const btnRef = useRef<HTMLButtonElement>(null);\n\n const close = useCallback(() => {\n setOpen(false);\n setView(\"main\");\n }, []);\n\n useEffect(() => {\n if (!open) return;\n const handler = (e: MouseEvent) => {\n if (menuRef.current?.contains(e.target as Node)) return;\n if (btnRef.current?.contains(e.target as Node)) return;\n close();\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, [open, close]);\n\n const handleDownloadPNG = useCallback(async () => {\n if (!contentRef.current) return;\n try {\n const url = await toPng(contentRef.current, { backgroundColor: \"white\", pixelRatio: 2 });\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `${filename}.png`;\n a.click();\n } catch {\n // silent fail\n }\n close();\n }, [filename, close]);\n\n const handleCSV = useCallback(() => {\n onDownloadCSV?.();\n close();\n }, [onDownloadCSV, close]);\n\n return (\n <div style={{ width: \"100%\", display: \"flex\", flexDirection: \"column\" }}>\n <div ref={contentRef} style={{ width: \"100%\" }}>\n {children}\n </div>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", marginTop: \"4px\", position: \"relative\", zIndex: 10, flexShrink: 0 }}>\n <button\n ref={btnRef}\n onClick={() => { setOpen((o) => !o); setView(\"main\"); }}\n aria-label=\"Component actions\"\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px 8px\",\n display: \"flex\",\n gap: \"3px\",\n alignItems: \"center\",\n borderRadius: \"6px\",\n transition: \"background 0.15s\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = SURFACE_MUTED;\n e.currentTarget.querySelectorAll<SVGCircleElement>(\"circle\").forEach((c) => (c.style.fill = DOT_HOVER));\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"none\";\n e.currentTarget.querySelectorAll<SVGCircleElement>(\"circle\").forEach((c) => (c.style.fill = DOT_COLOR));\n }}\n >\n <svg width=\"20\" height=\"6\" viewBox=\"0 0 20 6\">\n <circle cx=\"3\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n <circle cx=\"10\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n <circle cx=\"17\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n </svg>\n </button>\n\n {open && (\n <div\n ref={menuRef}\n style={{\n position: \"absolute\",\n bottom: \"100%\",\n right: 0,\n marginBottom: \"4px\",\n background: SURFACE,\n border: `1px solid ${BORDER}`,\n borderRadius: \"0.75rem\",\n boxShadow: \"0 4px 12px rgba(0,0,0,0.06)\",\n zIndex: 50,\n padding: view === \"columns\" ? \"10px\" : \"4px\",\n minWidth: view === \"columns\" ? \"200px\" : \"160px\",\n }}\n >\n {view === \"main\" ? (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {columnConfig && (\n <MenuButton label=\"Customize columns\" onClick={() => setView(\"columns\")} />\n )}\n {onDownloadCSV && (\n <MenuButton label=\"Download CSV\" onClick={handleCSV} />\n )}\n <MenuButton label=\"Download PNG\" onClick={handleDownloadPNG} />\n </div>\n ) : (\n <div>\n <button\n onClick={() => setView(\"main\")}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: MUTED, marginBottom: \"6px\", padding: 0 }}\n >\n ← Back\n </button>\n <ColumnSettingsPanel\n columns={columnConfig!.columns}\n hidden={columnConfig!.hidden}\n onToggle={columnConfig!.onToggle}\n onShowAll={columnConfig!.onShowAll}\n onHideAll={columnConfig!.onHideAll}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nfunction MenuButton({ label, onClick }: { label: string; onClick: () => void }) {\n const { SURFACE_MUTED } = useTheme();\n return (\n <button\n onClick={onClick}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"8px 12px\",\n fontSize: \"12.5px\",\n color: \"var(--foreground)\",\n textAlign: \"left\",\n borderRadius: \"8px\",\n transition: \"background 0.15s\",\n whiteSpace: \"nowrap\",\n }}\n onMouseEnter={(e) => (e.currentTarget.style.background = SURFACE_MUTED)}\n onMouseLeave={(e) => (e.currentTarget.style.background = \"none\")}\n >\n {label}\n </button>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport type { SchemaPayload } from \"../../schemas\";\nimport { ComponentActions } from \"../../shared/ComponentActions\";\nimport { SEMANTIC } from \"../../shared/theme\";\nimport { useTheme } from \"../../shared/ThemeContext\";\n\ntype Priority = \"low\" | \"medium\" | \"high\";\n\nconst PRIORITY_STYLES: Record<Priority, { color: string; bg: string; label: string }> = {\n high: { color: SEMANTIC.error.color, bg: SEMANTIC.error.bg, label: \"HIGH\" },\n medium: { color: SEMANTIC.warning.color, bg: SEMANTIC.warning.bg, label: \"MEDIUM\" },\n low: { color: SEMANTIC.neutral.color, bg: SEMANTIC.neutral.bg, label: \"LOW\" },\n};\n\nexport function EscalationCardResolver(p: SchemaPayload<\"escalation-card\">) {\n const { BORDER, MUTED, ACCENT, ACCENT_SOFT, SHADOW } = useTheme();\n const [cardHovered, setCardHovered] = useState(false);\n const [btnHovered, setBtnHovered] = useState(false);\n\n const priorityStyle = p.priority ? PRIORITY_STYLES[p.priority] : null;\n // Default (no priority) badge falls back to the action accent.\n const railColor = priorityStyle?.color ?? ACCENT;\n const iconBg = priorityStyle?.bg ?? \"#fff2ec\";\n\n return (\n <ComponentActions filename={p.title ?? \"escalation\"}>\n <div style={{ width: \"100%\", display: \"flex\", flexDirection: \"column\", gap: \"10px\" }}>\n <div\n onMouseEnter={() => setCardHovered(true)}\n onMouseLeave={() => setCardHovered(false)}\n style={{\n position: \"relative\",\n borderRadius: \"0.75rem\",\n border: `1px solid ${BORDER}`,\n padding: \"16px 18px 16px 20px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: \"14px\",\n overflow: \"hidden\",\n boxShadow: cardHovered\n ? \"0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.08)\"\n : SHADOW,\n transition: \"box-shadow 0.2s, border-color 0.2s\",\n }}\n >\n {/* Priority accent rail */}\n <div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: \"4px\",\n background: railColor,\n }}\n />\n\n {/* Escalation icon box */}\n <div\n style={{\n width: \"40px\",\n height: \"40px\",\n borderRadius: \"8px\",\n background: iconBg,\n color: railColor,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"18px\",\n lineHeight: 1,\n flexShrink: 0,\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.04)\",\n }}\n >\n {\"⚑\"}\n </div>\n\n {/* Body */}\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: \"4px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\", flexWrap: \"wrap\" }}>\n {p.title && (\n <p\n style={{\n fontFamily: \"var(--font-serif)\",\n fontSize: \"15px\",\n fontWeight: 400,\n color: \"var(--foreground)\",\n letterSpacing: \"-0.01em\",\n margin: 0,\n }}\n >\n {p.title}\n </p>\n )}\n {priorityStyle && (\n <span\n style={{\n fontSize: \"10px\",\n fontWeight: 600,\n letterSpacing: \"0.04em\",\n padding: \"2px 8px\",\n borderRadius: \"9999px\",\n background: priorityStyle.bg,\n color: priorityStyle.color,\n }}\n >\n {priorityStyle.label}\n </span>\n )}\n </div>\n {p.description && (\n <span style={{ fontSize: \"12px\", color: MUTED, lineHeight: 1.45 }}>\n {p.description}\n </span>\n )}\n </div>\n\n {/* CTA: document_target reviews in-app (host listens for the window\n event and highlights the field's bbox in its document panel);\n url deeplinks. document_target wins when both are present. */}\n {p.document_target ? (\n <button\n type=\"button\"\n data-testid=\"escalation-review-in-document\"\n onClick={() =>\n // ponytail: window event bridges chat card → cockpit Files\n // panel without threading a handler through the genui host.\n window.dispatchEvent(\n new CustomEvent(\"genui:review-in-document\", {\n detail: p.document_target,\n })\n )\n }\n onMouseEnter={() => setBtnHovered(true)}\n onMouseLeave={() => setBtnHovered(false)}\n style={{\n background: btnHovered ? ACCENT_SOFT : ACCENT,\n color: \"white\",\n border: \"none\",\n borderRadius: \"8px\",\n padding: \"8px 16px\",\n fontSize: \"12px\",\n fontWeight: 600,\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n cursor: \"pointer\",\n transition: \"background 0.15s\",\n }}\n >\n {(p.ctaLabel ?? \"Review in Document\") + \" →\"}\n </button>\n ) : p.url ? (\n <a\n href={p.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onMouseEnter={() => setBtnHovered(true)}\n onMouseLeave={() => setBtnHovered(false)}\n style={{\n background: btnHovered ? ACCENT_SOFT : ACCENT,\n color: \"white\",\n borderRadius: \"8px\",\n padding: \"8px 16px\",\n fontSize: \"12px\",\n fontWeight: 600,\n textDecoration: \"none\",\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n cursor: \"pointer\",\n transition: \"background 0.15s\",\n }}\n >\n {(p.ctaLabel ?? \"Review & Resolve\") + \" →\"}\n </a>\n ) : null}\n </div>\n </div>\n </ComponentActions>\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/escalation-card/resolver.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAanD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,2CAsKzE"}
|
|
@@ -250,7 +250,7 @@ var PRIORITY_STYLES = {
|
|
|
250
250
|
low: { color: SEMANTIC.neutral.color, bg: SEMANTIC.neutral.bg, label: "LOW" }
|
|
251
251
|
};
|
|
252
252
|
function EscalationCardResolver(p) {
|
|
253
|
-
var _a, _b, _c, _d;
|
|
253
|
+
var _a, _b, _c, _d, _e;
|
|
254
254
|
const { BORDER: BORDER2, MUTED: MUTED2, ACCENT: ACCENT2, ACCENT_SOFT: ACCENT_SOFT2, SHADOW: SHADOW2 } = useTheme();
|
|
255
255
|
const [cardHovered, setCardHovered] = useState(false);
|
|
256
256
|
const [btnHovered, setBtnHovered] = useState(false);
|
|
@@ -343,7 +343,38 @@ function EscalationCardResolver(p) {
|
|
|
343
343
|
] }),
|
|
344
344
|
p.description && /* @__PURE__ */ jsx("span", { style: { fontSize: "12px", color: MUTED2, lineHeight: 1.45 }, children: p.description })
|
|
345
345
|
] }),
|
|
346
|
-
/* @__PURE__ */ jsx(
|
|
346
|
+
p.document_target ? /* @__PURE__ */ jsx(
|
|
347
|
+
"button",
|
|
348
|
+
{
|
|
349
|
+
type: "button",
|
|
350
|
+
"data-testid": "escalation-review-in-document",
|
|
351
|
+
onClick: () => (
|
|
352
|
+
// ponytail: window event bridges chat card → cockpit Files
|
|
353
|
+
// panel without threading a handler through the genui host.
|
|
354
|
+
window.dispatchEvent(
|
|
355
|
+
new CustomEvent("genui:review-in-document", {
|
|
356
|
+
detail: p.document_target
|
|
357
|
+
})
|
|
358
|
+
)
|
|
359
|
+
),
|
|
360
|
+
onMouseEnter: () => setBtnHovered(true),
|
|
361
|
+
onMouseLeave: () => setBtnHovered(false),
|
|
362
|
+
style: {
|
|
363
|
+
background: btnHovered ? ACCENT_SOFT2 : ACCENT2,
|
|
364
|
+
color: "white",
|
|
365
|
+
border: "none",
|
|
366
|
+
borderRadius: "8px",
|
|
367
|
+
padding: "8px 16px",
|
|
368
|
+
fontSize: "12px",
|
|
369
|
+
fontWeight: 600,
|
|
370
|
+
whiteSpace: "nowrap",
|
|
371
|
+
flexShrink: 0,
|
|
372
|
+
cursor: "pointer",
|
|
373
|
+
transition: "background 0.15s"
|
|
374
|
+
},
|
|
375
|
+
children: ((_d = p.ctaLabel) != null ? _d : "Review in Document") + " \u2192"
|
|
376
|
+
}
|
|
377
|
+
) : p.url ? /* @__PURE__ */ jsx(
|
|
347
378
|
"a",
|
|
348
379
|
{
|
|
349
380
|
href: p.url,
|
|
@@ -364,9 +395,9 @@ function EscalationCardResolver(p) {
|
|
|
364
395
|
cursor: "pointer",
|
|
365
396
|
transition: "background 0.15s"
|
|
366
397
|
},
|
|
367
|
-
children: ((
|
|
398
|
+
children: ((_e = p.ctaLabel) != null ? _e : "Review & Resolve") + " \u2192"
|
|
368
399
|
}
|
|
369
|
-
)
|
|
400
|
+
) : null
|
|
370
401
|
]
|
|
371
402
|
}
|
|
372
403
|
) }) });
|