@proofhound/web-ui 0.1.6
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/LICENSE +190 -0
- package/dist/components/annotations/annotation-claim-dialog.d.ts +13 -0
- package/dist/components/annotations/annotation-claim-dialog.d.ts.map +1 -0
- package/dist/components/annotations/annotation-claim-dialog.js +60 -0
- package/dist/components/annotations/annotation-claim-dialog.js.map +1 -0
- package/dist/components/charts/source-legend.d.ts +10 -0
- package/dist/components/charts/source-legend.d.ts.map +1 -0
- package/dist/components/charts/source-legend.js +15 -0
- package/dist/components/charts/source-legend.js.map +1 -0
- package/dist/components/charts/source-stacked-bar.d.ts +22 -0
- package/dist/components/charts/source-stacked-bar.d.ts.map +1 -0
- package/dist/components/charts/source-stacked-bar.js +43 -0
- package/dist/components/charts/source-stacked-bar.js.map +1 -0
- package/dist/components/index.d.ts +15 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/json-object-textarea.d.ts +11 -0
- package/dist/components/json-object-textarea.d.ts.map +1 -0
- package/dist/components/json-object-textarea.js +82 -0
- package/dist/components/json-object-textarea.js.map +1 -0
- package/dist/components/model-context-window-input.d.ts +15 -0
- package/dist/components/model-context-window-input.d.ts.map +1 -0
- package/dist/components/model-context-window-input.js +57 -0
- package/dist/components/model-context-window-input.js.map +1 -0
- package/dist/components/model-probe-status.d.ts +11 -0
- package/dist/components/model-probe-status.d.ts.map +1 -0
- package/dist/components/model-probe-status.js +34 -0
- package/dist/components/model-probe-status.js.map +1 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.d.ts +28 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.d.ts.map +1 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.js +101 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.js.map +1 -0
- package/dist/components/prompt-language-select.d.ts +13 -0
- package/dist/components/prompt-language-select.d.ts.map +1 -0
- package/dist/components/prompt-language-select.js +14 -0
- package/dist/components/prompt-language-select.js.map +1 -0
- package/dist/components/prompt-version-picker-row.d.ts +27 -0
- package/dist/components/prompt-version-picker-row.d.ts.map +1 -0
- package/dist/components/prompt-version-picker-row.js +50 -0
- package/dist/components/prompt-version-picker-row.js.map +1 -0
- package/dist/components/prompt-version-status-badge.d.ts +8 -0
- package/dist/components/prompt-version-status-badge.d.ts.map +1 -0
- package/dist/components/prompt-version-status-badge.js +31 -0
- package/dist/components/prompt-version-status-badge.js.map +1 -0
- package/dist/components/quick-fill/quick-fill-picker.d.ts +42 -0
- package/dist/components/quick-fill/quick-fill-picker.d.ts.map +1 -0
- package/dist/components/quick-fill/quick-fill-picker.js +46 -0
- package/dist/components/quick-fill/quick-fill-picker.js.map +1 -0
- package/dist/components/time-zone-preference-menu.d.ts +10 -0
- package/dist/components/time-zone-preference-menu.d.ts.map +1 -0
- package/dist/components/time-zone-preference-menu.js +33 -0
- package/dist/components/time-zone-preference-menu.js.map +1 -0
- package/dist/contracts/index.d.ts +13 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +7 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/features/index.d.ts +3 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +4 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/model-quick-fill/model-preset-draft.d.ts +19 -0
- package/dist/features/model-quick-fill/model-preset-draft.d.ts.map +1 -0
- package/dist/features/model-quick-fill/model-preset-draft.js +22 -0
- package/dist/features/model-quick-fill/model-preset-draft.js.map +1 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts +7 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts.map +1 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.js +73 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.js.map +1 -0
- package/dist/hooks/annotation.d.ts +253 -0
- package/dist/hooks/annotation.d.ts.map +1 -0
- package/dist/hooks/annotation.js +79 -0
- package/dist/hooks/annotation.js.map +1 -0
- package/dist/hooks/canary-release.d.ts +674 -0
- package/dist/hooks/canary-release.d.ts.map +1 -0
- package/dist/hooks/canary-release.js +142 -0
- package/dist/hooks/canary-release.js.map +1 -0
- package/dist/hooks/connector.d.ts +585 -0
- package/dist/hooks/connector.d.ts.map +1 -0
- package/dist/hooks/connector.js +157 -0
- package/dist/hooks/connector.js.map +1 -0
- package/dist/hooks/dataset.d.ts +138 -0
- package/dist/hooks/dataset.d.ts.map +1 -0
- package/dist/hooks/dataset.js +84 -0
- package/dist/hooks/dataset.js.map +1 -0
- package/dist/hooks/experiment.d.ts +376 -0
- package/dist/hooks/experiment.d.ts.map +1 -0
- package/dist/hooks/experiment.js +58 -0
- package/dist/hooks/experiment.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/model.d.ts +327 -0
- package/dist/hooks/model.d.ts.map +1 -0
- package/dist/hooks/model.js +103 -0
- package/dist/hooks/model.js.map +1 -0
- package/dist/hooks/optimization.d.ts +557 -0
- package/dist/hooks/optimization.d.ts.map +1 -0
- package/dist/hooks/optimization.js +94 -0
- package/dist/hooks/optimization.js.map +1 -0
- package/dist/hooks/production-release.d.ts +141 -0
- package/dist/hooks/production-release.d.ts.map +1 -0
- package/dist/hooks/production-release.js +51 -0
- package/dist/hooks/production-release.js.map +1 -0
- package/dist/hooks/project-monitoring.d.ts +199 -0
- package/dist/hooks/project-monitoring.d.ts.map +1 -0
- package/dist/hooks/project-monitoring.js +55 -0
- package/dist/hooks/project-monitoring.js.map +1 -0
- package/dist/hooks/prompt.d.ts +509 -0
- package/dist/hooks/prompt.d.ts.map +1 -0
- package/dist/hooks/prompt.js +127 -0
- package/dist/hooks/prompt.js.map +1 -0
- package/dist/hooks/quick-start.d.ts +219 -0
- package/dist/hooks/quick-start.d.ts.map +1 -0
- package/dist/hooks/quick-start.js +35 -0
- package/dist/hooks/quick-start.js.map +1 -0
- package/dist/hooks/release-line.d.ts +819 -0
- package/dist/hooks/release-line.d.ts.map +1 -0
- package/dist/hooks/release-line.js +52 -0
- package/dist/hooks/release-line.js.map +1 -0
- package/dist/hooks/run-result.d.ts +118 -0
- package/dist/hooks/run-result.d.ts.map +1 -0
- package/dist/hooks/run-result.js +56 -0
- package/dist/hooks/run-result.js.map +1 -0
- package/dist/hooks/token.d.ts +58 -0
- package/dist/hooks/token.d.ts.map +1 -0
- package/dist/hooks/token.js +39 -0
- package/dist/hooks/token.js.map +1 -0
- package/dist/hooks/use-auto-refresh.d.ts +30 -0
- package/dist/hooks/use-auto-refresh.d.ts.map +1 -0
- package/dist/hooks/use-auto-refresh.js +175 -0
- package/dist/hooks/use-auto-refresh.js.map +1 -0
- package/dist/hooks/use-date-time-formatter.d.ts +11 -0
- package/dist/hooks/use-date-time-formatter.d.ts.map +1 -0
- package/dist/hooks/use-date-time-formatter.js +24 -0
- package/dist/hooks/use-date-time-formatter.js.map +1 -0
- package/dist/hooks/use-delayed-loading.d.ts +25 -0
- package/dist/hooks/use-delayed-loading.d.ts.map +1 -0
- package/dist/hooks/use-delayed-loading.js +95 -0
- package/dist/hooks/use-delayed-loading.js.map +1 -0
- package/dist/i18n/index.d.ts +5678 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +5712 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/language.d.ts +17 -0
- package/dist/i18n/language.d.ts.map +1 -0
- package/dist/i18n/language.js +43 -0
- package/dist/i18n/language.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-error.d.ts +2 -0
- package/dist/lib/api-error.d.ts.map +1 -0
- package/dist/lib/api-error.js +38 -0
- package/dist/lib/api-error.js.map +1 -0
- package/dist/lib/format.d.ts +30 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +157 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/index.d.ts +8 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/model-number.d.ts +2 -0
- package/dist/lib/model-number.d.ts.map +1 -0
- package/dist/lib/model-number.js +18 -0
- package/dist/lib/model-number.js.map +1 -0
- package/dist/lib/model-provider-type.d.ts +7 -0
- package/dist/lib/model-provider-type.d.ts.map +1 -0
- package/dist/lib/model-provider-type.js +28 -0
- package/dist/lib/model-provider-type.js.map +1 -0
- package/dist/lib/project-name.d.ts +7 -0
- package/dist/lib/project-name.d.ts.map +1 -0
- package/dist/lib/project-name.js +14 -0
- package/dist/lib/project-name.js.map +1 -0
- package/dist/lib/releases/release-line-model.d.ts +55 -0
- package/dist/lib/releases/release-line-model.d.ts.map +1 -0
- package/dist/lib/releases/release-line-model.js +476 -0
- package/dist/lib/releases/release-line-model.js.map +1 -0
- package/dist/lib/time-zone.d.ts +14 -0
- package/dist/lib/time-zone.d.ts.map +1 -0
- package/dist/lib/time-zone.js +118 -0
- package/dist/lib/time-zone.js.map +1 -0
- package/dist/lib/uuid.d.ts +2 -0
- package/dist/lib/uuid.d.ts.map +1 -0
- package/dist/lib/uuid.js +5 -0
- package/dist/lib/uuid.js.map +1 -0
- package/dist/providers/display-preferences-provider.d.ts +18 -0
- package/dist/providers/display-preferences-provider.d.ts.map +1 -0
- package/dist/providers/display-preferences-provider.js +46 -0
- package/dist/providers/display-preferences-provider.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +5 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/project-context-provider.d.ts +8 -0
- package/dist/providers/project-context-provider.d.ts.map +1 -0
- package/dist/providers/project-context-provider.js +15 -0
- package/dist/providers/project-context-provider.js.map +1 -0
- package/dist/providers/proofhound-web-provider.d.ts +9 -0
- package/dist/providers/proofhound-web-provider.d.ts.map +1 -0
- package/dist/providers/proofhound-web-provider.js +44 -0
- package/dist/providers/proofhound-web-provider.js.map +1 -0
- package/dist/providers/refine-provider.d.ts +5 -0
- package/dist/providers/refine-provider.d.ts.map +1 -0
- package/dist/providers/refine-provider.js +23 -0
- package/dist/providers/refine-provider.js.map +1 -0
- package/dist/screens/annotations/annotation-detail-page.d.ts +5 -0
- package/dist/screens/annotations/annotation-detail-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-detail-page.js +379 -0
- package/dist/screens/annotations/annotation-detail-page.js.map +1 -0
- package/dist/screens/annotations/annotation-new-page.d.ts +4 -0
- package/dist/screens/annotations/annotation-new-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-new-page.js +125 -0
- package/dist/screens/annotations/annotation-new-page.js.map +1 -0
- package/dist/screens/annotations/annotation-task-model.d.ts +39 -0
- package/dist/screens/annotations/annotation-task-model.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-task-model.js +88 -0
- package/dist/screens/annotations/annotation-task-model.js.map +1 -0
- package/dist/screens/annotations/annotation-ui.d.ts +33 -0
- package/dist/screens/annotations/annotation-ui.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-ui.js +92 -0
- package/dist/screens/annotations/annotation-ui.js.map +1 -0
- package/dist/screens/annotations/annotations-list-page.d.ts +4 -0
- package/dist/screens/annotations/annotations-list-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotations-list-page.js +82 -0
- package/dist/screens/annotations/annotations-list-page.js.map +1 -0
- package/dist/screens/connectors/connector-detail-page.d.ts +5 -0
- package/dist/screens/connectors/connector-detail-page.d.ts.map +1 -0
- package/dist/screens/connectors/connector-detail-page.js +838 -0
- package/dist/screens/connectors/connector-detail-page.js.map +1 -0
- package/dist/screens/connectors/connector-form-page.d.ts +8 -0
- package/dist/screens/connectors/connector-form-page.d.ts.map +1 -0
- package/dist/screens/connectors/connector-form-page.js +328 -0
- package/dist/screens/connectors/connector-form-page.js.map +1 -0
- package/dist/screens/connectors/connector-peek-dialog.d.ts +8 -0
- package/dist/screens/connectors/connector-peek-dialog.d.ts.map +1 -0
- package/dist/screens/connectors/connector-peek-dialog.js +24 -0
- package/dist/screens/connectors/connector-peek-dialog.js.map +1 -0
- package/dist/screens/connectors/connector-types.d.ts +36 -0
- package/dist/screens/connectors/connector-types.d.ts.map +1 -0
- package/dist/screens/connectors/connector-types.js +48 -0
- package/dist/screens/connectors/connector-types.js.map +1 -0
- package/dist/screens/connectors/connector-ui.d.ts +14 -0
- package/dist/screens/connectors/connector-ui.d.ts.map +1 -0
- package/dist/screens/connectors/connector-ui.js +40 -0
- package/dist/screens/connectors/connector-ui.js.map +1 -0
- package/dist/screens/connectors/connectors-list-page.d.ts +4 -0
- package/dist/screens/connectors/connectors-list-page.d.ts.map +1 -0
- package/dist/screens/connectors/connectors-list-page.js +220 -0
- package/dist/screens/connectors/connectors-list-page.js.map +1 -0
- package/dist/screens/dashboard/dashboard-screen.d.ts +5 -0
- package/dist/screens/dashboard/dashboard-screen.d.ts.map +1 -0
- package/dist/screens/dashboard/dashboard-screen.js +524 -0
- package/dist/screens/dashboard/dashboard-screen.js.map +1 -0
- package/dist/screens/datasets/dataset-detail-helpers.d.ts +10 -0
- package/dist/screens/datasets/dataset-detail-helpers.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-detail-helpers.js +84 -0
- package/dist/screens/datasets/dataset-detail-helpers.js.map +1 -0
- package/dist/screens/datasets/dataset-detail-page.d.ts +6 -0
- package/dist/screens/datasets/dataset-detail-page.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-detail-page.js +379 -0
- package/dist/screens/datasets/dataset-detail-page.js.map +1 -0
- package/dist/screens/datasets/dataset-import-runner.d.ts +17 -0
- package/dist/screens/datasets/dataset-import-runner.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-import-runner.js +33 -0
- package/dist/screens/datasets/dataset-import-runner.js.map +1 -0
- package/dist/screens/datasets/dataset-mappers.d.ts +5 -0
- package/dist/screens/datasets/dataset-mappers.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-mappers.js +79 -0
- package/dist/screens/datasets/dataset-mappers.js.map +1 -0
- package/dist/screens/datasets/dataset-samples-table.d.ts +21 -0
- package/dist/screens/datasets/dataset-samples-table.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-samples-table.js +59 -0
- package/dist/screens/datasets/dataset-samples-table.js.map +1 -0
- package/dist/screens/datasets/dataset-transfer-progress.d.ts +30 -0
- package/dist/screens/datasets/dataset-transfer-progress.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-transfer-progress.js +157 -0
- package/dist/screens/datasets/dataset-transfer-progress.js.map +1 -0
- package/dist/screens/datasets/dataset-types.d.ts +59 -0
- package/dist/screens/datasets/dataset-types.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-types.js +15 -0
- package/dist/screens/datasets/dataset-types.js.map +1 -0
- package/dist/screens/datasets/dataset-ui.d.ts +49 -0
- package/dist/screens/datasets/dataset-ui.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-ui.js +163 -0
- package/dist/screens/datasets/dataset-ui.js.map +1 -0
- package/dist/screens/datasets/dataset-upload-page.d.ts +4 -0
- package/dist/screens/datasets/dataset-upload-page.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-upload-page.js +425 -0
- package/dist/screens/datasets/dataset-upload-page.js.map +1 -0
- package/dist/screens/datasets/dataset-upload-parser.d.ts +21 -0
- package/dist/screens/datasets/dataset-upload-parser.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-upload-parser.js +536 -0
- package/dist/screens/datasets/dataset-upload-parser.js.map +1 -0
- package/dist/screens/datasets/datasets-list-page.d.ts +4 -0
- package/dist/screens/datasets/datasets-list-page.d.ts.map +1 -0
- package/dist/screens/datasets/datasets-list-page.js +249 -0
- package/dist/screens/datasets/datasets-list-page.js.map +1 -0
- package/dist/screens/experiments/experiment-detail-page.d.ts +5 -0
- package/dist/screens/experiments/experiment-detail-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-detail-page.js +460 -0
- package/dist/screens/experiments/experiment-detail-page.js.map +1 -0
- package/dist/screens/experiments/experiment-new-page.d.ts +21 -0
- package/dist/screens/experiments/experiment-new-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-new-page.js +427 -0
- package/dist/screens/experiments/experiment-new-page.js.map +1 -0
- package/dist/screens/experiments/experiment-option-adapter.d.ts +68 -0
- package/dist/screens/experiments/experiment-option-adapter.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-option-adapter.js +225 -0
- package/dist/screens/experiments/experiment-option-adapter.js.map +1 -0
- package/dist/screens/experiments/experiment-progress.d.ts +5 -0
- package/dist/screens/experiments/experiment-progress.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-progress.js +15 -0
- package/dist/screens/experiments/experiment-progress.js.map +1 -0
- package/dist/screens/experiments/experiment-repeat-href.d.ts +17 -0
- package/dist/screens/experiments/experiment-repeat-href.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-repeat-href.js +32 -0
- package/dist/screens/experiments/experiment-repeat-href.js.map +1 -0
- package/dist/screens/experiments/experiment-theme.d.ts +43 -0
- package/dist/screens/experiments/experiment-theme.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-theme.js +43 -0
- package/dist/screens/experiments/experiment-theme.js.map +1 -0
- package/dist/screens/experiments/experiment-ui.d.ts +36 -0
- package/dist/screens/experiments/experiment-ui.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-ui.js +46 -0
- package/dist/screens/experiments/experiment-ui.js.map +1 -0
- package/dist/screens/experiments/experiment-view-model.d.ts +118 -0
- package/dist/screens/experiments/experiment-view-model.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-view-model.js +114 -0
- package/dist/screens/experiments/experiment-view-model.js.map +1 -0
- package/dist/screens/experiments/experiments-comparison-view.d.ts +10 -0
- package/dist/screens/experiments/experiments-comparison-view.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-comparison-view.js +215 -0
- package/dist/screens/experiments/experiments-comparison-view.js.map +1 -0
- package/dist/screens/experiments/experiments-list-page.d.ts +4 -0
- package/dist/screens/experiments/experiments-list-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-list-page.js +364 -0
- package/dist/screens/experiments/experiments-list-page.js.map +1 -0
- package/dist/screens/experiments/experiments-table.d.ts +18 -0
- package/dist/screens/experiments/experiments-table.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-table.js +97 -0
- package/dist/screens/experiments/experiments-table.js.map +1 -0
- package/dist/screens/experiments/run-result-detail-sheet.d.ts +9 -0
- package/dist/screens/experiments/run-result-detail-sheet.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-detail-sheet.js +89 -0
- package/dist/screens/experiments/run-result-detail-sheet.js.map +1 -0
- package/dist/screens/experiments/run-result-display.d.ts +28 -0
- package/dist/screens/experiments/run-result-display.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-display.js +124 -0
- package/dist/screens/experiments/run-result-display.js.map +1 -0
- package/dist/screens/experiments/run-result-labels.d.ts +16 -0
- package/dist/screens/experiments/run-result-labels.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-labels.js +52 -0
- package/dist/screens/experiments/run-result-labels.js.map +1 -0
- package/dist/screens/index.d.ts +29 -0
- package/dist/screens/index.d.ts.map +1 -0
- package/dist/screens/index.js +43 -0
- package/dist/screens/index.js.map +1 -0
- package/dist/screens/models/model-form-page.d.ts +9 -0
- package/dist/screens/models/model-form-page.d.ts.map +1 -0
- package/dist/screens/models/model-form-page.js +876 -0
- package/dist/screens/models/model-form-page.js.map +1 -0
- package/dist/screens/models/model-view-model.d.ts +66 -0
- package/dist/screens/models/model-view-model.d.ts.map +1 -0
- package/dist/screens/models/model-view-model.js +36 -0
- package/dist/screens/models/model-view-model.js.map +1 -0
- package/dist/screens/models/models-list-page.d.ts +4 -0
- package/dist/screens/models/models-list-page.d.ts.map +1 -0
- package/dist/screens/models/models-list-page.js +352 -0
- package/dist/screens/models/models-list-page.js.map +1 -0
- package/dist/screens/models/project-model-adapter.d.ts +5 -0
- package/dist/screens/models/project-model-adapter.d.ts.map +1 -0
- package/dist/screens/models/project-model-adapter.js +63 -0
- package/dist/screens/models/project-model-adapter.js.map +1 -0
- package/dist/screens/monitoring/big-chart-card.d.ts +36 -0
- package/dist/screens/monitoring/big-chart-card.d.ts.map +1 -0
- package/dist/screens/monitoring/big-chart-card.js +32 -0
- package/dist/screens/monitoring/big-chart-card.js.map +1 -0
- package/dist/screens/monitoring/monitoring-filter-strip.d.ts +14 -0
- package/dist/screens/monitoring/monitoring-filter-strip.d.ts.map +1 -0
- package/dist/screens/monitoring/monitoring-filter-strip.js +36 -0
- package/dist/screens/monitoring/monitoring-filter-strip.js.map +1 -0
- package/dist/screens/monitoring/project-monitoring-page.d.ts +9 -0
- package/dist/screens/monitoring/project-monitoring-page.d.ts.map +1 -0
- package/dist/screens/monitoring/project-monitoring-page.js +240 -0
- package/dist/screens/monitoring/project-monitoring-page.js.map +1 -0
- package/dist/screens/monitoring/ranking-cards.d.ts +23 -0
- package/dist/screens/monitoring/ranking-cards.d.ts.map +1 -0
- package/dist/screens/monitoring/ranking-cards.js +78 -0
- package/dist/screens/monitoring/ranking-cards.js.map +1 -0
- package/dist/screens/optimizations/optimization-detail-page.d.ts +5 -0
- package/dist/screens/optimizations/optimization-detail-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-detail-page.js +934 -0
- package/dist/screens/optimizations/optimization-detail-page.js.map +1 -0
- package/dist/screens/optimizations/optimization-mappers.d.ts +56 -0
- package/dist/screens/optimizations/optimization-mappers.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-mappers.js +142 -0
- package/dist/screens/optimizations/optimization-mappers.js.map +1 -0
- package/dist/screens/optimizations/optimization-new-page.d.ts +8 -0
- package/dist/screens/optimizations/optimization-new-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-new-page.js +732 -0
- package/dist/screens/optimizations/optimization-new-page.js.map +1 -0
- package/dist/screens/optimizations/optimization-theme.d.ts +43 -0
- package/dist/screens/optimizations/optimization-theme.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-theme.js +46 -0
- package/dist/screens/optimizations/optimization-theme.js.map +1 -0
- package/dist/screens/optimizations/optimization-ui.d.ts +60 -0
- package/dist/screens/optimizations/optimization-ui.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-ui.js +164 -0
- package/dist/screens/optimizations/optimization-ui.js.map +1 -0
- package/dist/screens/optimizations/optimizations-list-page.d.ts +4 -0
- package/dist/screens/optimizations/optimizations-list-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimizations-list-page.js +358 -0
- package/dist/screens/optimizations/optimizations-list-page.js.map +1 -0
- package/dist/screens/prompts/prompt-body-editor.d.ts +15 -0
- package/dist/screens/prompts/prompt-body-editor.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-body-editor.js +165 -0
- package/dist/screens/prompts/prompt-body-editor.js.map +1 -0
- package/dist/screens/prompts/prompt-dataset-variables.d.ts +4 -0
- package/dist/screens/prompts/prompt-dataset-variables.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-dataset-variables.js +27 -0
- package/dist/screens/prompts/prompt-dataset-variables.js.map +1 -0
- package/dist/screens/prompts/prompt-detail-page.d.ts +5 -0
- package/dist/screens/prompts/prompt-detail-page.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-detail-page.js +1013 -0
- package/dist/screens/prompts/prompt-detail-page.js.map +1 -0
- package/dist/screens/prompts/prompt-model.d.ts +77 -0
- package/dist/screens/prompts/prompt-model.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-model.js +152 -0
- package/dist/screens/prompts/prompt-model.js.map +1 -0
- package/dist/screens/prompts/prompt-preview-parts.d.ts +12 -0
- package/dist/screens/prompts/prompt-preview-parts.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-preview-parts.js +32 -0
- package/dist/screens/prompts/prompt-preview-parts.js.map +1 -0
- package/dist/screens/prompts/prompt-preview.d.ts +10 -0
- package/dist/screens/prompts/prompt-preview.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-preview.js +16 -0
- package/dist/screens/prompts/prompt-preview.js.map +1 -0
- package/dist/screens/prompts/prompt-ui.d.ts +30 -0
- package/dist/screens/prompts/prompt-ui.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-ui.js +51 -0
- package/dist/screens/prompts/prompt-ui.js.map +1 -0
- package/dist/screens/prompts/prompts-list-page.d.ts +5 -0
- package/dist/screens/prompts/prompts-list-page.d.ts.map +1 -0
- package/dist/screens/prompts/prompts-list-page.js +208 -0
- package/dist/screens/prompts/prompts-list-page.js.map +1 -0
- package/dist/screens/quick-start/quick-start-screen.d.ts +2 -0
- package/dist/screens/quick-start/quick-start-screen.d.ts.map +1 -0
- package/dist/screens/quick-start/quick-start-screen.js +486 -0
- package/dist/screens/quick-start/quick-start-screen.js.map +1 -0
- package/dist/screens/releases/release-line-detail-page.d.ts +5 -0
- package/dist/screens/releases/release-line-detail-page.d.ts.map +1 -0
- package/dist/screens/releases/release-line-detail-page.js +973 -0
- package/dist/screens/releases/release-line-detail-page.js.map +1 -0
- package/dist/screens/releases/release-line-ui.d.ts +30 -0
- package/dist/screens/releases/release-line-ui.d.ts.map +1 -0
- package/dist/screens/releases/release-line-ui.js +197 -0
- package/dist/screens/releases/release-line-ui.js.map +1 -0
- package/dist/screens/releases/release-new-model.d.ts +5 -0
- package/dist/screens/releases/release-new-model.d.ts.map +1 -0
- package/dist/screens/releases/release-new-model.js +18 -0
- package/dist/screens/releases/release-new-model.js.map +1 -0
- package/dist/screens/releases/release-new-page.d.ts +6 -0
- package/dist/screens/releases/release-new-page.d.ts.map +1 -0
- package/dist/screens/releases/release-new-page.js +816 -0
- package/dist/screens/releases/release-new-page.js.map +1 -0
- package/dist/screens/releases/release-topology-canvas.d.ts +13 -0
- package/dist/screens/releases/release-topology-canvas.d.ts.map +1 -0
- package/dist/screens/releases/release-topology-canvas.js +856 -0
- package/dist/screens/releases/release-topology-canvas.js.map +1 -0
- package/dist/screens/releases/releases-list-page.d.ts +4 -0
- package/dist/screens/releases/releases-list-page.d.ts.map +1 -0
- package/dist/screens/releases/releases-list-page.js +86 -0
- package/dist/screens/releases/releases-list-page.js.map +1 -0
- package/dist/screens/settings/settings-page.d.ts +2 -0
- package/dist/screens/settings/settings-page.d.ts.map +1 -0
- package/dist/screens/settings/settings-page.js +250 -0
- package/dist/screens/settings/settings-page.js.map +1 -0
- package/dist/styles/globals.css +961 -0
- package/package.json +84 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { ClipboardList, Loader2 } from 'lucide-react';
|
|
5
|
+
import { Button, Input, cn } from '@proofhound/ui';
|
|
6
|
+
import { useLookupModelContextWindow } from '../hooks';
|
|
7
|
+
import { useI18n } from '../i18n';
|
|
8
|
+
function findProviderModelInput(form, inputName) {
|
|
9
|
+
const selector = `input[name="${inputName}"]`;
|
|
10
|
+
return (form?.querySelector(selector) ?? document.querySelector(selector))?.value.trim() ?? '';
|
|
11
|
+
}
|
|
12
|
+
export function ModelContextWindowInput({ defaultValue, readOnly = false, name = 'contextWindowTokens', providerModelInputName = 'providerModelId', placeholder = '128000', className, inputClassName, buttonClassName, onValueChange, testId, }) {
|
|
13
|
+
const { t } = useI18n();
|
|
14
|
+
const [value, setValue] = useState(defaultValue ?? '');
|
|
15
|
+
const [lookupStatus, setLookupStatus] = useState('idle');
|
|
16
|
+
const lookupMutation = useLookupModelContextWindow();
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect -- keep uncontrolled form defaults in sync after async model load
|
|
19
|
+
setValue(defaultValue ?? '');
|
|
20
|
+
}, [defaultValue]);
|
|
21
|
+
const lookupContextWindow = (event) => {
|
|
22
|
+
const providerModelId = findProviderModelInput(event.currentTarget.form, providerModelInputName);
|
|
23
|
+
if (!providerModelId) {
|
|
24
|
+
setLookupStatus('needsModelId');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
lookupMutation.mutate(providerModelId, {
|
|
28
|
+
onSuccess: (result) => {
|
|
29
|
+
if (!result) {
|
|
30
|
+
setLookupStatus('missing');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const nextValue = String(result.contextWindowTokens);
|
|
34
|
+
setValue(nextValue);
|
|
35
|
+
setLookupStatus('applied');
|
|
36
|
+
onValueChange?.(nextValue);
|
|
37
|
+
},
|
|
38
|
+
onError: () => setLookupStatus('failed'),
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const statusMessage = lookupStatus === 'applied'
|
|
42
|
+
? `${t('models.form.contextDictionaryApplied')}${value} tokens`
|
|
43
|
+
: lookupStatus === 'missing'
|
|
44
|
+
? t('models.form.contextDictionaryMissing')
|
|
45
|
+
: lookupStatus === 'needsModelId'
|
|
46
|
+
? t('models.form.contextDictionaryNeedsModelId')
|
|
47
|
+
: lookupStatus === 'failed'
|
|
48
|
+
? t('models.form.contextDictionaryFailed')
|
|
49
|
+
: null;
|
|
50
|
+
return (_jsxs("div", { className: cn('space-y-1.5', className), children: [_jsxs("div", { className: "flex gap-2", children: [_jsxs("div", { className: "relative min-w-0 flex-1", children: [_jsx(Input, { name: name, value: value, onChange: (event) => {
|
|
51
|
+
const nextValue = event.target.value;
|
|
52
|
+
setValue(nextValue);
|
|
53
|
+
setLookupStatus('idle');
|
|
54
|
+
onValueChange?.(nextValue);
|
|
55
|
+
}, inputMode: "numeric", className: cn('pr-20', readOnly && 'bg-muted/50 text-muted-foreground', inputClassName), placeholder: placeholder, readOnly: readOnly, "data-testid": testId }), _jsx("span", { className: "pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-[11px] text-muted-foreground", children: "tokens" })] }), _jsxs(Button, { type: "button", variant: "outline", className: cn('shrink-0', buttonClassName), disabled: readOnly || lookupMutation.isPending, onClick: lookupContextWindow, children: [lookupMutation.isPending ? _jsx(Loader2, { className: "size-4 animate-spin" }) : _jsx(ClipboardList, { className: "size-4" }), lookupMutation.isPending ? t('models.form.contextDictionaryPending') : t('models.form.chooseFromDictionary')] })] }), statusMessage && (_jsx("div", { "aria-live": "polite", className: cn('text-[11.5px] leading-relaxed', lookupStatus === 'applied' ? 'text-[var(--status-running-fg)]' : 'text-destructive'), children: statusMessage }))] }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=model-context-window-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-context-window-input.js","sourceRoot":"","sources":["../../src/components/model-context-window-input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ModelProbeFeedback = {
|
|
2
|
+
status: 'running' | 'success' | 'failed';
|
|
3
|
+
durationMs: number | null;
|
|
4
|
+
errorMessage?: string | null;
|
|
5
|
+
};
|
|
6
|
+
export declare function formatModelProbeDuration(durationMs: number | null): string;
|
|
7
|
+
export declare function ModelProbeStatus({ feedback, className, }: {
|
|
8
|
+
feedback: ModelProbeFeedback | null;
|
|
9
|
+
className?: string;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=model-probe-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-probe-status.d.ts","sourceRoot":"","sources":["../../src/components/model-probe-status.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM1E;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,kDAuCA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { AlertTriangle, Check, Loader2 } from 'lucide-react';
|
|
4
|
+
import { useI18n } from '../i18n';
|
|
5
|
+
import { cn } from '@proofhound/ui';
|
|
6
|
+
export function formatModelProbeDuration(durationMs) {
|
|
7
|
+
if (durationMs == null)
|
|
8
|
+
return '--';
|
|
9
|
+
const roundedMs = Math.max(0, Math.round(durationMs));
|
|
10
|
+
if (roundedMs < 1000)
|
|
11
|
+
return `${roundedMs} ms`;
|
|
12
|
+
const seconds = roundedMs / 1000;
|
|
13
|
+
return `${seconds < 10 ? seconds.toFixed(1) : seconds.toFixed(0)} s`;
|
|
14
|
+
}
|
|
15
|
+
export function ModelProbeStatus({ feedback, className, }) {
|
|
16
|
+
const { t } = useI18n();
|
|
17
|
+
if (!feedback)
|
|
18
|
+
return null;
|
|
19
|
+
const isRunning = feedback.status === 'running';
|
|
20
|
+
const isSuccess = feedback.status === 'success';
|
|
21
|
+
const Icon = isRunning ? Loader2 : isSuccess ? Check : AlertTriangle;
|
|
22
|
+
const title = isRunning
|
|
23
|
+
? t('models.probe.running')
|
|
24
|
+
: isSuccess
|
|
25
|
+
? t('models.probe.successTitle')
|
|
26
|
+
: t('models.probe.failedTitle');
|
|
27
|
+
const detail = isRunning
|
|
28
|
+
? t('models.probe.runningDetail')
|
|
29
|
+
: isSuccess
|
|
30
|
+
? `${t('models.probe.successDetail')} · ${formatModelProbeDuration(feedback.durationMs)}`
|
|
31
|
+
: `${feedback.errorMessage?.trim() || t('models.probe.failedDetail')} · ${formatModelProbeDuration(feedback.durationMs)}`;
|
|
32
|
+
return (_jsxs("div", { role: "status", "aria-live": "polite", "data-testid": "model-probe-status", className: cn('flex max-w-full items-start gap-2 rounded-md border px-3 py-2 text-[12.5px] leading-relaxed', isRunning && 'border-[var(--status-pending-bd)] bg-[var(--status-pending-bg)] text-[var(--status-pending-fg)]', isSuccess && 'border-[var(--status-running-bd)] bg-[var(--status-running-bg)] text-[var(--status-running-fg)]', feedback.status === 'failed' && 'border-destructive/40 bg-destructive/10 text-destructive', className), children: [_jsx(Icon, { className: cn('mt-0.5 size-4 shrink-0', isRunning && 'animate-spin') }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "font-medium", children: title }), _jsx("div", { className: "mt-0.5 font-mono text-[11px] opacity-85", children: detail })] })] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=model-probe-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-probe-status.js","sourceRoot":"","sources":["../../src/components/model-probe-status.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAQpC,MAAM,UAAU,wBAAwB,CAAC,UAAyB;IAChE,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,GAAG,SAAS,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,GAIV;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IACrE,MAAM,KAAK,GAAG,SAAS;QACrB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAC3B,CAAC,CAAC,SAAS;YACT,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACjC,CAAC,CAAC,SAAS;YACT,CAAC,CAAC,GAAG,CAAC,CAAC,4BAA4B,CAAC,MAAM,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACzF,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,2BAA2B,CAAC,MAAM,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IAE9H,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,eACH,QAAQ,iBACN,oBAAoB,EAChC,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,SAAS,IAAI,iGAAiG,EAC9G,SAAS,IAAI,iGAAiG,EAC9G,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,0DAA0D,EAC1F,SAAS,CACV,aAED,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,IAAI,cAAc,CAAC,GAAI,EAC9E,eAAK,SAAS,EAAC,SAAS,aACtB,cAAK,SAAS,EAAC,aAAa,YAAE,KAAK,GAAO,EAC1C,cAAK,SAAS,EAAC,yCAAyC,YAAE,MAAM,GAAO,IACnE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export type PromptDiffLineKind = 'same' | 'added' | 'removed' | 'blank';
|
|
3
|
+
export interface PromptDiffRow {
|
|
4
|
+
left: string;
|
|
5
|
+
right: string;
|
|
6
|
+
leftKind: PromptDiffLineKind;
|
|
7
|
+
rightKind: PromptDiffLineKind;
|
|
8
|
+
}
|
|
9
|
+
export declare function buildPromptDiffRows(fromText: string, toText: string): PromptDiffRow[];
|
|
10
|
+
export declare function getDiffLineClasses(kind: PromptDiffLineKind): "bg-[color-mix(in_srgb,var(--status-running-bg)_82%,transparent)] text-[var(--status-running-fg)]" | "bg-destructive/10 text-destructive" | "bg-muted/20 text-muted-foreground" | "text-foreground";
|
|
11
|
+
export interface DiffPromptPaneProps {
|
|
12
|
+
label: string;
|
|
13
|
+
rows: PromptDiffRow[];
|
|
14
|
+
side: 'left' | 'right';
|
|
15
|
+
paneRef: RefObject<HTMLDivElement | null>;
|
|
16
|
+
onScroll: () => void;
|
|
17
|
+
maxHeight?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function DiffPromptPane({ label, rows, side, paneRef, onScroll, maxHeight }: DiffPromptPaneProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export interface PromptDiffSplitViewProps {
|
|
21
|
+
fromLabel: string;
|
|
22
|
+
toLabel: string;
|
|
23
|
+
fromText: string;
|
|
24
|
+
toText: string;
|
|
25
|
+
maxHeight?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare function PromptDiffSplitView({ fromLabel, toLabel, fromText, toText, maxHeight, }: PromptDiffSplitViewProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=prompt-diff-split-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-diff-split-view.d.ts","sourceRoot":"","sources":["../../../src/components/prompt-diff/prompt-diff-split-view.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CA4DrF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,uMAW1D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAe,EAAE,EAAE,mBAAmB,2CAqC5G;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE,wBAAwB,2CAyC1B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useMemo, useRef } from 'react';
|
|
4
|
+
import { cn } from '@proofhound/ui';
|
|
5
|
+
export function buildPromptDiffRows(fromText, toText) {
|
|
6
|
+
const leftLines = fromText.split('\n');
|
|
7
|
+
const rightLines = toText.split('\n');
|
|
8
|
+
const lcs = Array.from({ length: leftLines.length + 1 }, () => Array(rightLines.length + 1).fill(0));
|
|
9
|
+
const getScore = (leftIndex, rightIndex) => lcs[leftIndex]?.[rightIndex] ?? 0;
|
|
10
|
+
for (let leftIndex = leftLines.length - 1; leftIndex >= 0; leftIndex -= 1) {
|
|
11
|
+
for (let rightIndex = rightLines.length - 1; rightIndex >= 0; rightIndex -= 1) {
|
|
12
|
+
lcs[leftIndex][rightIndex] =
|
|
13
|
+
leftLines[leftIndex] === rightLines[rightIndex]
|
|
14
|
+
? getScore(leftIndex + 1, rightIndex + 1) + 1
|
|
15
|
+
: Math.max(getScore(leftIndex + 1, rightIndex), getScore(leftIndex, rightIndex + 1));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const rows = [];
|
|
19
|
+
let leftIndex = 0;
|
|
20
|
+
let rightIndex = 0;
|
|
21
|
+
while (leftIndex < leftLines.length || rightIndex < rightLines.length) {
|
|
22
|
+
if (leftIndex < leftLines.length &&
|
|
23
|
+
rightIndex < rightLines.length &&
|
|
24
|
+
leftLines[leftIndex] === rightLines[rightIndex]) {
|
|
25
|
+
rows.push({
|
|
26
|
+
left: leftLines[leftIndex] ?? '',
|
|
27
|
+
right: rightLines[rightIndex] ?? '',
|
|
28
|
+
leftKind: 'same',
|
|
29
|
+
rightKind: 'same',
|
|
30
|
+
});
|
|
31
|
+
leftIndex += 1;
|
|
32
|
+
rightIndex += 1;
|
|
33
|
+
}
|
|
34
|
+
else if (rightIndex < rightLines.length &&
|
|
35
|
+
(leftIndex >= leftLines.length ||
|
|
36
|
+
getScore(leftIndex, rightIndex + 1) >= getScore(leftIndex + 1, rightIndex))) {
|
|
37
|
+
rows.push({
|
|
38
|
+
left: '',
|
|
39
|
+
right: rightLines[rightIndex] ?? '',
|
|
40
|
+
leftKind: 'blank',
|
|
41
|
+
rightKind: 'added',
|
|
42
|
+
});
|
|
43
|
+
rightIndex += 1;
|
|
44
|
+
}
|
|
45
|
+
else if (leftIndex < leftLines.length) {
|
|
46
|
+
rows.push({
|
|
47
|
+
left: leftLines[leftIndex] ?? '',
|
|
48
|
+
right: '',
|
|
49
|
+
leftKind: 'removed',
|
|
50
|
+
rightKind: 'blank',
|
|
51
|
+
});
|
|
52
|
+
leftIndex += 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return rows;
|
|
56
|
+
}
|
|
57
|
+
export function getDiffLineClasses(kind) {
|
|
58
|
+
if (kind === 'added') {
|
|
59
|
+
return 'bg-[color-mix(in_srgb,var(--status-running-bg)_82%,transparent)] text-[var(--status-running-fg)]';
|
|
60
|
+
}
|
|
61
|
+
if (kind === 'removed') {
|
|
62
|
+
return 'bg-destructive/10 text-destructive';
|
|
63
|
+
}
|
|
64
|
+
if (kind === 'blank') {
|
|
65
|
+
return 'bg-muted/20 text-muted-foreground';
|
|
66
|
+
}
|
|
67
|
+
return 'text-foreground';
|
|
68
|
+
}
|
|
69
|
+
export function DiffPromptPane({ label, rows, side, paneRef, onScroll, maxHeight = 320 }) {
|
|
70
|
+
return (_jsxs("div", { className: "rounded-md border bg-background", "data-testid": `prompt-diff-pane-${side}`, children: [_jsx("div", { className: "border-b bg-muted/35 px-3 py-2 font-mono text-[11px] text-muted-foreground", children: label }), _jsx("div", { ref: paneRef, onScroll: onScroll, className: "overflow-auto p-2 font-mono text-[11.5px] leading-5", style: { maxHeight: `${maxHeight}px` }, children: rows.map((row, index) => {
|
|
71
|
+
const value = side === 'left' ? row.left : row.right;
|
|
72
|
+
const kind = side === 'left' ? row.leftKind : row.rightKind;
|
|
73
|
+
return (_jsxs("div", { "data-testid": kind === 'added'
|
|
74
|
+
? 'prompt-diff-added-line'
|
|
75
|
+
: kind === 'removed'
|
|
76
|
+
? 'prompt-diff-removed-line'
|
|
77
|
+
: undefined, className: cn('grid grid-cols-[36px_minmax(0,1fr)] rounded px-2 py-0.5', getDiffLineClasses(kind)), children: [_jsx("span", { className: "select-none text-right text-[10px] opacity-60", children: index + 1 }), _jsx("span", { className: "whitespace-pre-wrap break-words pl-2", children: value || ' ' })] }, `${side}-${index}-${kind}`));
|
|
78
|
+
}) })] }));
|
|
79
|
+
}
|
|
80
|
+
export function PromptDiffSplitView({ fromLabel, toLabel, fromText, toText, maxHeight, }) {
|
|
81
|
+
const rows = useMemo(() => buildPromptDiffRows(fromText, toText), [fromText, toText]);
|
|
82
|
+
const topPaneRef = useRef(null);
|
|
83
|
+
const bottomPaneRef = useRef(null);
|
|
84
|
+
const syncingScrollRef = useRef(false);
|
|
85
|
+
const syncScroll = useCallback((source) => {
|
|
86
|
+
if (syncingScrollRef.current)
|
|
87
|
+
return;
|
|
88
|
+
const sourcePane = source === 'top' ? topPaneRef.current : bottomPaneRef.current;
|
|
89
|
+
const targetPane = source === 'top' ? bottomPaneRef.current : topPaneRef.current;
|
|
90
|
+
if (!sourcePane || !targetPane)
|
|
91
|
+
return;
|
|
92
|
+
syncingScrollRef.current = true;
|
|
93
|
+
targetPane.scrollTop = sourcePane.scrollTop;
|
|
94
|
+
targetPane.scrollLeft = sourcePane.scrollLeft;
|
|
95
|
+
window.requestAnimationFrame(() => {
|
|
96
|
+
syncingScrollRef.current = false;
|
|
97
|
+
});
|
|
98
|
+
}, []);
|
|
99
|
+
return (_jsxs("div", { className: "grid gap-3", children: [_jsx(DiffPromptPane, { label: fromLabel, rows: rows, side: "left", paneRef: topPaneRef, onScroll: () => syncScroll('top'), maxHeight: maxHeight }), _jsx(DiffPromptPane, { label: toLabel, rows: rows, side: "right", paneRef: bottomPaneRef, onScroll: () => syncScroll('bottom'), maxHeight: maxHeight })] }));
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=prompt-diff-split-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-diff-split-view.js","sourceRoot":"","sources":["../../../src/components/prompt-diff/prompt-diff-split-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PromptLanguageDto } from '@proofhound/shared';
|
|
2
|
+
import { type TranslationKey } from '../i18n';
|
|
3
|
+
export type PromptLanguage = PromptLanguageDto;
|
|
4
|
+
export declare function PromptLanguageSelect({ value, onChange, disabled, className, triggerClassName, labelKey, helpKey, }: {
|
|
5
|
+
value: PromptLanguage;
|
|
6
|
+
onChange: (value: PromptLanguage) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
triggerClassName?: string;
|
|
10
|
+
labelKey?: TranslationKey;
|
|
11
|
+
helpKey?: TranslationKey;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=prompt-language-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-language-select.d.ts","sourceRoot":"","sources":["../../src/components/prompt-language-select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAS5D,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAO/C,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,QAAiC,EACjC,OAA+B,GAChC,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,2CAwBA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Languages } from 'lucide-react';
|
|
4
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, cn, } from '@proofhound/ui';
|
|
5
|
+
import { useI18n } from '../i18n';
|
|
6
|
+
const PROMPT_LANGUAGE_OPTIONS = [
|
|
7
|
+
{ value: 'zh-CN', labelKey: 'promptLanguage.zhCN' },
|
|
8
|
+
{ value: 'en-US', labelKey: 'promptLanguage.enUS' },
|
|
9
|
+
];
|
|
10
|
+
export function PromptLanguageSelect({ value, onChange, disabled = false, className, triggerClassName, labelKey = 'promptLanguage.label', helpKey = 'promptLanguage.help', }) {
|
|
11
|
+
const { t } = useI18n();
|
|
12
|
+
return (_jsxs("div", { className: cn('space-y-1.5', className), children: [_jsxs("div", { className: "flex items-center gap-1.5 text-[12.5px] font-medium", children: [_jsx(Languages, { className: "size-3.5 text-muted-foreground", "aria-hidden": "true" }), _jsx("span", { children: t(labelKey) })] }), _jsxs(Select, { value: value, onValueChange: (next) => onChange(next), disabled: disabled, children: [_jsx(SelectTrigger, { className: cn('h-9 text-[12.5px]', triggerClassName), "aria-label": t(labelKey), children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: PROMPT_LANGUAGE_OPTIONS.map((option) => (_jsx(SelectItem, { value: option.value, children: t(option.labelKey) }, option.value))) })] }), _jsx("div", { className: "text-[11px] leading-relaxed text-muted-foreground", children: t(helpKey) })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=prompt-language-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-language-select.js","sourceRoot":"","sources":["../../src/components/prompt-language-select.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,EACX,EAAE,GACH,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAuB,MAAM,SAAS,CAAC;AAGvD,MAAM,uBAAuB,GAA+D;IAC1F,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE;IACnD,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE;CACpD,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,gBAAgB,EAChB,QAAQ,GAAG,sBAAsB,EACjC,OAAO,GAAG,qBAAqB,GAShC;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,aAC1C,eAAK,SAAS,EAAC,qDAAqD,aAClE,KAAC,SAAS,IAAC,SAAS,EAAC,gCAAgC,iBAAa,MAAM,GAAG,EAC3E,yBAAO,CAAC,CAAC,QAAQ,CAAC,GAAQ,IACtB,EACN,MAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAsB,CAAC,EAAE,QAAQ,EAAE,QAAQ,aACjG,KAAC,aAAa,IAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,gBAAc,CAAC,CAAC,QAAQ,CAAC,YAC1F,KAAC,WAAW,KAAG,GACD,EAChB,KAAC,aAAa,cACX,uBAAuB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvC,KAAC,UAAU,IAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,YAC/C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IADJ,MAAM,CAAC,KAAK,CAEhB,CACd,CAAC,GACY,IACT,EACT,cAAK,SAAS,EAAC,mDAAmD,YAAE,CAAC,CAAC,OAAO,CAAC,GAAO,IACjF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { PromptVersionStatusDto } from '@proofhound/shared';
|
|
3
|
+
type PickerVariable = {
|
|
4
|
+
type: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function PromptVariableModalityBadges({ variables, size, className, }: {
|
|
7
|
+
variables: ReadonlyArray<PickerVariable>;
|
|
8
|
+
size?: 'sm' | 'md';
|
|
9
|
+
className?: string;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export declare function PromptVersionPickerTag({ children, tone, }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
tone?: 'neutral' | 'info' | 'positive' | 'warning';
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function PromptVersionPickerRow({ version, status, variables, selected, onSelect, badges, createdAt, trailing, className, }: {
|
|
16
|
+
version: ReactNode;
|
|
17
|
+
status?: PromptVersionStatusDto | null;
|
|
18
|
+
variables: ReadonlyArray<PickerVariable>;
|
|
19
|
+
selected: boolean;
|
|
20
|
+
onSelect: () => void;
|
|
21
|
+
badges?: ReactNode;
|
|
22
|
+
createdAt?: ReactNode;
|
|
23
|
+
trailing?: ReactNode;
|
|
24
|
+
className?: string;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=prompt-version-picker-row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-version-picker-row.d.ts","sourceRoot":"","sources":["../../src/components/prompt-version-picker-row.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAuBF,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,IAAW,EACX,SAAS,GACV,EAAE;IACD,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,kDAyBA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,IAAgB,GACjB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CACpD,2CAiBA;AAgBD,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CA2BA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ModalityIcon, sortModalityKinds, cn } from '@proofhound/ui';
|
|
4
|
+
import { PromptVersionStatusBadge } from './prompt-version-status-badge';
|
|
5
|
+
import { useI18n } from '../i18n';
|
|
6
|
+
const MODALITY_LABEL_KEYS = {
|
|
7
|
+
text: 'prompts.variableType.text',
|
|
8
|
+
image: 'prompts.variableType.image',
|
|
9
|
+
number: 'prompts.variableType.number',
|
|
10
|
+
};
|
|
11
|
+
function variableTypeToModality(type) {
|
|
12
|
+
if (type === 'image' || type === 'image_url' || type === 'image_base64')
|
|
13
|
+
return 'image';
|
|
14
|
+
if (type === 'number')
|
|
15
|
+
return 'number';
|
|
16
|
+
return 'text';
|
|
17
|
+
}
|
|
18
|
+
function countVariableModalities(variables) {
|
|
19
|
+
const counts = {};
|
|
20
|
+
for (const variable of variables) {
|
|
21
|
+
const kind = variableTypeToModality(variable.type);
|
|
22
|
+
counts[kind] = (counts[kind] ?? 0) + 1;
|
|
23
|
+
}
|
|
24
|
+
return counts;
|
|
25
|
+
}
|
|
26
|
+
export function PromptVariableModalityBadges({ variables, size = 'sm', className, }) {
|
|
27
|
+
const { t } = useI18n();
|
|
28
|
+
const counts = countVariableModalities(variables);
|
|
29
|
+
const kinds = sortModalityKinds(Object.keys(counts).filter((kind) => typeof counts[kind] === 'number' && counts[kind] > 0));
|
|
30
|
+
if (kinds.length === 0)
|
|
31
|
+
return null;
|
|
32
|
+
return (_jsx("span", { className: cn('inline-flex flex-wrap items-center gap-1.5', className), children: kinds.map((kind) => {
|
|
33
|
+
const label = t(MODALITY_LABEL_KEYS[kind]);
|
|
34
|
+
const count = counts[kind] ?? 0;
|
|
35
|
+
return (_jsxs("span", { className: "inline-flex items-center gap-0.5", children: [_jsx("span", { className: "min-w-2.5 text-right font-mono text-[10.5px] font-semibold text-muted-foreground", children: count }), _jsx(ModalityIcon, { kind: kind, size: size, tooltip: label, "aria-label": `${count} ${label}` })] }, kind));
|
|
36
|
+
}) }));
|
|
37
|
+
}
|
|
38
|
+
export function PromptVersionPickerTag({ children, tone = 'neutral', }) {
|
|
39
|
+
return (_jsx("span", { className: cn('inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 font-mono text-[10.5px]', tone === 'info' &&
|
|
40
|
+
'border-[var(--status-canary-bd)] bg-[var(--status-canary-bg)] text-[var(--status-canary-fg)]', tone === 'positive' &&
|
|
41
|
+
'border-[var(--status-success-bd)] bg-[var(--status-success-bg)] text-[var(--status-success-fg)]', tone === 'warning' &&
|
|
42
|
+
'border-[var(--status-pending-bd)] bg-[var(--status-pending-bg)] text-[var(--status-pending-fg)]', tone === 'neutral' && 'border-border bg-muted text-muted-foreground'), children: children }));
|
|
43
|
+
}
|
|
44
|
+
function PickerRadio({ checked }) {
|
|
45
|
+
return (_jsx("span", { "aria-hidden": "true", className: cn('mt-0.5 inline-flex size-4 flex-none items-center justify-center rounded-full border', checked ? 'border-primary bg-primary/10' : 'border-border bg-background'), children: checked ? _jsx("span", { className: "size-2 rounded-full bg-primary" }) : null }));
|
|
46
|
+
}
|
|
47
|
+
export function PromptVersionPickerRow({ version, status, variables, selected, onSelect, badges, createdAt, trailing, className, }) {
|
|
48
|
+
return (_jsxs("button", { type: "button", onClick: onSelect, "aria-pressed": selected, className: cn('flex w-full items-start gap-2.5 border-b px-3 py-2.5 text-left transition-colors last:border-b-0 hover:bg-muted/40', selected && 'bg-primary/5', className), children: [_jsx(PickerRadio, { checked: selected }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [_jsx("span", { className: "font-mono text-[13px] font-semibold", children: version }), badges, status ? _jsx(PromptVersionStatusBadge, { status: status, compact: true }) : null] }), _jsxs("div", { className: "mt-1 flex flex-wrap items-center gap-1.5", children: [_jsx(PromptVariableModalityBadges, { variables: variables }), createdAt ? _jsx("span", { className: "font-mono text-[10.5px] text-muted-foreground", children: createdAt }) : null, trailing] })] })] }));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=prompt-version-picker-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-version-picker-row.js","sourceRoot":"","sources":["../../src/components/prompt-version-picker-row.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PromptVersionStatusDto } from '@proofhound/shared';
|
|
2
|
+
type PromptVersionStatus = PromptVersionStatusDto;
|
|
3
|
+
export declare function PromptVersionStatusBadge({ status, compact, }: {
|
|
4
|
+
status: PromptVersionStatus;
|
|
5
|
+
compact?: boolean;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=prompt-version-status-badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-version-status-badge.d.ts","sourceRoot":"","sources":["../../src/components/prompt-version-status-badge.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AASjE,KAAK,mBAAmB,GAAG,sBAAsB,CAAC;AAuBlD,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,OAAe,GAChB,EAAE;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,2CA0BA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Lock, Pencil } from 'lucide-react';
|
|
4
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, cn, } from '@proofhound/ui';
|
|
5
|
+
import { useI18n } from '../i18n';
|
|
6
|
+
const STATUS_LABEL_KEYS = {
|
|
7
|
+
editable: 'prompts.status.editable',
|
|
8
|
+
frozen: 'prompts.status.frozen',
|
|
9
|
+
};
|
|
10
|
+
const STATUS_CLASSES = {
|
|
11
|
+
editable: {
|
|
12
|
+
pill: 'border-[var(--prompt-editable-bd)] bg-[var(--prompt-editable-bg)] text-[var(--prompt-editable-fg)]',
|
|
13
|
+
icon: 'text-[var(--prompt-editable-icon)]',
|
|
14
|
+
},
|
|
15
|
+
frozen: {
|
|
16
|
+
pill: 'border-[var(--prompt-frozen-bd)] bg-[var(--prompt-frozen-bg)] text-[var(--prompt-frozen-fg)]',
|
|
17
|
+
icon: 'text-[var(--prompt-frozen-icon)]',
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const STATUS_ICONS = {
|
|
21
|
+
editable: Pencil,
|
|
22
|
+
frozen: Lock,
|
|
23
|
+
};
|
|
24
|
+
export function PromptVersionStatusBadge({ status, compact = false, }) {
|
|
25
|
+
const { t } = useI18n();
|
|
26
|
+
const classes = STATUS_CLASSES[status];
|
|
27
|
+
const Icon = STATUS_ICONS[status];
|
|
28
|
+
const label = t(STATUS_LABEL_KEYS[status]);
|
|
29
|
+
return (_jsx(TooltipProvider, { delayDuration: 180, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: cn('inline-flex items-center justify-center rounded-full border', compact ? 'size-5' : 'size-6', classes.pill), "aria-label": label, role: "img", children: _jsx(Icon, { className: cn(compact ? 'size-3' : 'size-3.5', classes.icon) }) }) }), _jsx(TooltipContent, { children: label })] }) }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=prompt-version-status-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-version-status-badge.js","sourceRoot":"","sources":["../../src/components/prompt-version-status-badge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,EACd,EAAE,GACH,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAuB,MAAM,SAAS,CAAC;AAGvD,MAAM,iBAAiB,GAAgD;IACrE,QAAQ,EAAE,yBAAyB;IACnC,MAAM,EAAE,uBAAuB;CAChC,CAAC;AAEF,MAAM,cAAc,GAAgE;IAClF,QAAQ,EAAE;QACR,IAAI,EAAE,oGAAoG;QAC1G,IAAI,EAAE,oCAAoC;KAC3C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,8FAA8F;QACpG,IAAI,EAAE,kCAAkC;KACzC;CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,IAAI;CACqC,CAAC;AAEpD,MAAM,UAAU,wBAAwB,CAAC,EACvC,MAAM,EACN,OAAO,GAAG,KAAK,GAIhB;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3C,OAAO,CACL,KAAC,eAAe,IAAC,aAAa,EAAE,GAAG,YACjC,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,eACE,SAAS,EAAE,EAAE,CACX,6DAA6D,EAC7D,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAC7B,OAAO,CAAC,IAAI,CACb,gBACW,KAAK,EACjB,IAAI,EAAC,KAAK,YAEV,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,GAAI,GACjE,GACQ,EACjB,KAAC,cAAc,cAAE,KAAK,GAAkB,IAChC,GACM,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface QuickFillPickerGroup<TGroup extends string = string> {
|
|
3
|
+
key: TGroup;
|
|
4
|
+
label: string;
|
|
5
|
+
}
|
|
6
|
+
export interface QuickFillPickerOption<TGroup extends string = string> {
|
|
7
|
+
key: string;
|
|
8
|
+
group: TGroup;
|
|
9
|
+
title: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
badges?: ReactNode[];
|
|
13
|
+
meta?: ReactNode[];
|
|
14
|
+
searchText?: string;
|
|
15
|
+
featured?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface QuickFillPickerLabels {
|
|
18
|
+
title: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
searchPlaceholder: string;
|
|
21
|
+
featured: string;
|
|
22
|
+
all: string;
|
|
23
|
+
empty: string;
|
|
24
|
+
apply: string;
|
|
25
|
+
selected: string;
|
|
26
|
+
ariaLabel: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function QuickFillPicker<TGroup extends string>({ groups, options, labels, selectedKey, disabled, collapsible, defaultOpen, collapseOnApply, showHeader, onApply, className, testId, }: {
|
|
29
|
+
groups: ReadonlyArray<QuickFillPickerGroup<TGroup>>;
|
|
30
|
+
options: ReadonlyArray<QuickFillPickerOption<TGroup>>;
|
|
31
|
+
labels: QuickFillPickerLabels;
|
|
32
|
+
selectedKey?: string | null;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
collapsible?: boolean;
|
|
35
|
+
defaultOpen?: boolean;
|
|
36
|
+
collapseOnApply?: boolean;
|
|
37
|
+
showHeader?: boolean;
|
|
38
|
+
onApply: (option: QuickFillPickerOption<TGroup>) => void;
|
|
39
|
+
className?: string;
|
|
40
|
+
testId?: string;
|
|
41
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
//# sourceMappingURL=quick-fill-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-fill-picker.d.ts","sourceRoot":"","sources":["../../../src/components/quick-fill/quick-fill-picker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAY1D,MAAM,WAAW,oBAAoB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,EAAE,EACrD,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,QAAQ,EACR,WAAmB,EACnB,WAAkB,EAClB,eAAuB,EACvB,UAAiB,EACjB,OAAO,EACP,SAAS,EACT,MAAM,GACP,EAAE;IACD,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,2CAsLA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from 'react';
|
|
4
|
+
import { Check, ChevronDown, Search, Sparkles } from 'lucide-react';
|
|
5
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger, Input, cn, } from '@proofhound/ui';
|
|
6
|
+
const FEATURED_SCOPE = '__featured';
|
|
7
|
+
const ALL_SCOPE = '__all';
|
|
8
|
+
export function QuickFillPicker({ groups, options, labels, selectedKey, disabled, collapsible = false, defaultOpen = true, collapseOnApply = false, showHeader = true, onApply, className, testId, }) {
|
|
9
|
+
const [scope, setScope] = useState(FEATURED_SCOPE);
|
|
10
|
+
const [query, setQuery] = useState('');
|
|
11
|
+
const [open, setOpen] = useState(defaultOpen);
|
|
12
|
+
const hasFeatured = options.some((option) => option.featured);
|
|
13
|
+
const normalizedQuery = query.trim().toLowerCase();
|
|
14
|
+
const selectedOption = selectedKey ? options.find((option) => option.key === selectedKey) : null;
|
|
15
|
+
const scopes = useMemo(() => [
|
|
16
|
+
...(hasFeatured ? [{ key: FEATURED_SCOPE, label: labels.featured }] : []),
|
|
17
|
+
{ key: ALL_SCOPE, label: labels.all },
|
|
18
|
+
...groups,
|
|
19
|
+
], [groups, hasFeatured, labels.all, labels.featured]);
|
|
20
|
+
const visibleOptions = options.filter((option) => {
|
|
21
|
+
const scopeMatched = scope === ALL_SCOPE || (scope === FEATURED_SCOPE ? option.featured : option.group === scope);
|
|
22
|
+
if (!scopeMatched)
|
|
23
|
+
return false;
|
|
24
|
+
if (!normalizedQuery)
|
|
25
|
+
return true;
|
|
26
|
+
const haystack = `${option.title} ${option.subtitle ?? ''} ${option.description ?? ''} ${option.searchText ?? ''}`;
|
|
27
|
+
return haystack.toLowerCase().includes(normalizedQuery);
|
|
28
|
+
});
|
|
29
|
+
const applyOption = (option) => {
|
|
30
|
+
onApply(option);
|
|
31
|
+
if (collapsible && collapseOnApply)
|
|
32
|
+
setOpen(false);
|
|
33
|
+
};
|
|
34
|
+
return (_jsx(Collapsible, { open: collapsible ? open : true, onOpenChange: setOpen, asChild: true, children: _jsxs("section", { className: cn('space-y-3 rounded-lg border bg-card p-4', className), "data-testid": testId, children: [showHeader ? (_jsxs("div", { className: "flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "inline-flex size-6 shrink-0 items-center justify-center rounded-full border bg-background text-primary", children: _jsx(Sparkles, { className: "size-3.5" }) }), _jsx("h2", { className: "text-sm font-semibold", children: labels.title }), selectedOption && (_jsxs("span", { className: "min-w-0 truncate rounded border bg-background px-2 py-0.5 text-[11px] text-muted-foreground", children: [labels.selected, " \u00B7 ", selectedOption.title] }))] }), labels.description && (_jsx("div", { className: "mt-1 text-[12px] leading-relaxed text-muted-foreground", children: labels.description }))] }), _jsxs("div", { className: "flex items-center gap-2 lg:justify-end", children: [_jsx(CollapsibleContent, { forceMount: true, className: cn(!open && 'hidden'), children: _jsxs("div", { className: "relative w-full lg:w-[320px]", children: [_jsx(Search, { className: "pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { value: query, onChange: (event) => setQuery(event.target.value), placeholder: labels.searchPlaceholder, className: "h-9 pl-8 text-sm" })] }) }), collapsible && (_jsx(CollapsibleTrigger, { type: "button", className: "inline-flex size-9 shrink-0 items-center justify-center rounded-md border bg-background text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", "aria-label": labels.ariaLabel, children: _jsx(ChevronDown, { className: cn('size-4 transition-transform', open && 'rotate-180') }) }))] })] })) : (_jsx(CollapsibleContent, { forceMount: true, className: cn(!open && 'hidden'), children: _jsxs("div", { className: "relative w-full", children: [_jsx(Search, { className: "pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { value: query, onChange: (event) => setQuery(event.target.value), placeholder: labels.searchPlaceholder, className: "h-9 pl-8 text-sm" })] }) })), _jsxs(CollapsibleContent, { className: "space-y-3", children: [_jsx("div", { role: "tablist", "aria-label": labels.ariaLabel, className: "flex flex-wrap gap-1.5", children: scopes.map((item) => {
|
|
35
|
+
const active = item.key === scope;
|
|
36
|
+
return (_jsx("button", { type: "button", role: "tab", "aria-selected": active, className: cn('h-7 rounded-md border px-2.5 text-[12px] font-medium transition-colors', active
|
|
37
|
+
? 'border-primary bg-primary text-primary-foreground'
|
|
38
|
+
: 'bg-background text-muted-foreground hover:text-foreground'), onClick: () => setScope(item.key), children: item.label }, item.key));
|
|
39
|
+
}) }), visibleOptions.length > 0 ? (_jsx("div", { className: "grid gap-2 md:grid-cols-2 xl:grid-cols-3", children: visibleOptions.map((option) => {
|
|
40
|
+
const selected = option.key === selectedKey;
|
|
41
|
+
return (_jsxs("button", { type: "button", className: cn('group flex min-h-[148px] flex-col rounded-lg border bg-background p-3 text-left transition-colors hover:border-primary/50 hover:bg-accent/35 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', selected && 'border-primary bg-accent/45'), disabled: disabled, "aria-pressed": selected, onClick: () => applyOption(option), children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-sm font-semibold", children: option.title }), option.subtitle && (_jsx("div", { className: "mt-0.5 truncate font-mono text-[11px] text-muted-foreground", children: option.subtitle }))] }), _jsxs("span", { className: cn('inline-flex h-6 shrink-0 items-center gap-1 rounded-md border px-2 text-[11px] font-medium', selected
|
|
42
|
+
? 'border-primary bg-primary text-primary-foreground'
|
|
43
|
+
: 'bg-card text-muted-foreground group-hover:text-foreground'), children: [selected ? _jsx(Check, { className: "size-3" }) : null, selected ? labels.selected : labels.apply] })] }), option.description && (_jsx("div", { className: "mt-2 line-clamp-2 text-[12px] leading-relaxed text-muted-foreground", children: option.description })), option.badges && option.badges.length > 0 && (_jsx("div", { className: "mt-3 flex flex-wrap gap-1", children: option.badges.map((badge, index) => (_jsx("span", { className: "rounded border bg-card px-1.5 py-0.5 text-[10.5px]", children: badge }, index))) })), option.meta && option.meta.length > 0 && (_jsx("div", { className: "mt-auto flex flex-wrap gap-x-3 gap-y-1 pt-3 font-mono text-[10.5px] text-muted-foreground", children: option.meta.map((item, index) => (_jsx("span", { children: item }, index))) }))] }, option.key));
|
|
44
|
+
}) })) : (_jsx("div", { className: "rounded-lg border border-dashed bg-background px-4 py-8 text-center text-sm text-muted-foreground", children: labels.empty }))] })] }) }));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=quick-fill-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-fill-picker.js","sourceRoot":"","sources":["../../../src/components/quick-fill/quick-fill-picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type TimeZonePreference } from '../lib/time-zone';
|
|
2
|
+
interface TimeZonePickerListProps {
|
|
3
|
+
value: TimeZonePreference;
|
|
4
|
+
resolvedTimeZone: string;
|
|
5
|
+
onChange: (value: TimeZonePreference) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function TimeZonePickerList({ value, resolvedTimeZone, onChange }: TimeZonePickerListProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function TimeZonePreferenceMenu(): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=time-zone-preference-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-zone-preference-menu.d.ts","sourceRoot":"","sources":["../../src/components/time-zone-preference-menu.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAG1B,UAAU,uBAAuB;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAMD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CA0EhG;AAED,wBAAgB,sBAAsB,4CAyCrC"}
|