@semiont/react-ui 0.5.26 → 0.5.28
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/README.md +28 -4
- package/dist/{PdfAnnotationCanvas.client-6ZSF6ZTJ.js → PdfAnnotationCanvas.client-C2IGG4SW.js} +33 -6
- package/dist/{PdfAnnotationCanvas.client-JCJMXWWJ.css → PdfAnnotationCanvas.client-TGDPPGXJ.css} +6 -1
- package/dist/{ar-YTUUGK2O.js → ar-FABPTJVB.js} +88 -26
- package/dist/{bn-ASGNGPMD.js → bn-LKP6BDMH.js} +88 -26
- package/dist/{chunk-L3WKRWP3.js → chunk-2GOHTTHW.js} +88 -26
- package/dist/{chunk-OBQOZCJE.js → chunk-2YHEE63S.js} +31 -31
- package/dist/{cs-WMYVAOZY.js → cs-YQYNWHRG.js} +88 -26
- package/dist/{da-FSHHN4D6.js → da-QHZOYKRY.js} +88 -26
- package/dist/{de-FJFO3TPT.js → de-GKA7RD7J.js} +88 -26
- package/dist/{el-XOH4QIAG.js → el-45T257AL.js} +88 -26
- package/dist/{en-3FCBW3YD.js → en-RVW5EQ66.js} +4 -2
- package/dist/{es-HDX4QI7E.js → es-AVER7RU4.js} +88 -26
- package/dist/{fa-DJ6WTFTJ.js → fa-K3VPK3O2.js} +88 -26
- package/dist/{fi-4S7H7W7U.js → fi-5NEKF7EB.js} +88 -26
- package/dist/{fr-6UJSYHXC.js → fr-FUMNDLBZ.js} +88 -26
- package/dist/{he-ZZJOHJX2.js → he-3JGNA3PR.js} +88 -26
- package/dist/{hi-HZJTAW7U.js → hi-IJY375DF.js} +88 -26
- package/dist/{id-E3I6ILEM.js → id-LWHKJ7ZD.js} +88 -26
- package/dist/index.css +380 -524
- package/dist/index.d.ts +318 -192
- package/dist/index.js +2960 -2421
- package/dist/integrations/css-modules-helper.js +1 -3
- package/dist/{it-ULAPAD7U.js → it-EBVOV4RW.js} +88 -26
- package/dist/{ja-SAHZQ4CZ.js → ja-KWRIX2NF.js} +88 -26
- package/dist/{ko-DFU2ADQ4.js → ko-L5CJMFDS.js} +88 -26
- package/dist/{ms-NWL76XNT.js → ms-LSNMJDR2.js} +88 -26
- package/dist/{nl-ATCM76WN.js → nl-ZB32MB7U.js} +88 -26
- package/dist/{no-UIAQ5RJF.js → no-4GTNY7M5.js} +88 -26
- package/dist/{pl-NOECQDXD.js → pl-LUHBLTHB.js} +88 -26
- package/dist/{pt-SVWIIUPC.js → pt-C4H3UNQ6.js} +88 -26
- package/dist/{ro-NR2DRTZG.js → ro-GGITS5V4.js} +88 -26
- package/dist/{sv-STVJ37JP.js → sv-T56RTLBP.js} +88 -26
- package/dist/test-utils.css +1 -1
- package/dist/test-utils.d.ts +1 -1
- package/dist/test-utils.js +2 -2
- package/dist/{th-UWQR4K54.js → th-22X2IWCB.js} +88 -26
- package/dist/{tr-WNXZSD27.js → tr-77TFG62H.js} +88 -26
- package/dist/{uk-SJRMB47Y.js → uk-MIIL6NXT.js} +88 -26
- package/dist/{vi-TMRQFES2.js → vi-7JYOIGNV.js} +88 -26
- package/dist/{zh-QOL3LYEM.js → zh-ID6DRYU4.js} +88 -26
- package/package.json +11 -10
- package/src/components/AssistProgress.tsx +178 -134
- package/src/components/CodeMirrorRenderer.tsx +8 -8
- package/src/components/{EntityFoundLog.tsx → ItemFoundLog.tsx} +12 -7
- package/src/components/ProtectedErrorBoundary.css +3 -1
- package/src/components/StatusDisplay.css +1 -1
- package/src/components/Toast.css +3 -1
- package/src/components/__tests__/AssistProgress.test.tsx +268 -141
- package/src/components/annotation/annotation-entries.css +0 -4
- package/src/components/annotation/references.css +0 -4
- package/src/components/image-annotation/AnnotationOverlay.tsx +6 -6
- package/src/components/image-annotation/SvgDrawingCanvas.tsx +1 -1
- package/src/components/image-annotation/__tests__/AnnotationOverlay.click.test.tsx +7 -9
- package/src/components/image-annotation/__tests__/SvgDrawingCanvas.click.test.tsx +1 -2
- package/src/components/layout/Header.css +0 -4
- package/src/components/layout/LeftSidebar.css +0 -4
- package/src/components/modals/ComposeStep.tsx +218 -0
- package/src/components/modals/ConfigureGatherStep.tsx +10 -18
- package/src/components/modals/ConfigureGenerationStep.tsx +131 -54
- package/src/components/modals/ConfigureSearchStep.tsx +42 -40
- package/src/components/modals/ContextSummary.tsx +185 -72
- package/src/components/modals/CorpusPane.tsx +75 -0
- package/src/components/modals/DiscardPrompt.tsx +38 -0
- package/src/components/modals/GatherContextStep.tsx +237 -107
- package/src/components/modals/ReferenceWizardModal.tsx +287 -60
- package/src/components/modals/ResourceGenerateModal.tsx +233 -109
- package/src/components/modals/SearchModal.css +335 -111
- package/src/components/modals/SearchModal.tsx +1 -1
- package/src/components/modals/SearchResultsStep.tsx +63 -88
- package/src/components/modals/WizardFooter.tsx +69 -0
- package/src/components/modals/__tests__/ComposeStep.test.tsx +152 -0
- package/src/components/modals/__tests__/ConfigureGatherStep.test.tsx +14 -26
- package/src/components/modals/__tests__/ConfigureGenerationStep.test.tsx +290 -0
- package/src/components/modals/__tests__/ConfigureSearchStep.test.tsx +95 -0
- package/src/components/modals/__tests__/GatherContextStep.resource.test.tsx +463 -25
- package/src/components/modals/__tests__/ReferenceWizardModal.test.tsx +635 -0
- package/src/components/modals/__tests__/ResourceGenerateModal.test.tsx +277 -85
- package/src/components/modals/__tests__/SearchModal.search-wiring.test.tsx +6 -2
- package/src/components/modals/__tests__/SearchResultsStep.test.tsx +61 -0
- package/src/components/modals/__tests__/WizardFooter.test.tsx +344 -0
- package/src/components/modals/modals.css +16 -42
- package/src/components/navigation/NavigationTabs.css +0 -20
- package/src/components/pdf-annotation/PdfAnnotationCanvas.css +21 -2
- package/src/components/pdf-annotation/PdfAnnotationCanvas.tsx +36 -3
- package/src/components/pdf-annotation/__tests__/PdfAnnotationCanvas.test.tsx +41 -6
- package/src/components/resource/AnnotateView.tsx +19 -8
- package/src/components/resource/AnnotationHistory.tsx +2 -0
- package/src/components/resource/BrowseView.tsx +20 -9
- package/src/components/resource/ResourceViewer.tsx +27 -28
- package/src/components/resource/__tests__/AnnotateView.embeddable.test.tsx +1 -1
- package/src/components/resource/__tests__/AnnotateView.focus.test.tsx +50 -0
- package/src/components/resource/__tests__/AnnotationHistory.test.tsx +2 -0
- package/src/components/resource/__tests__/BrowseView.embeddable.test.tsx +1 -1
- package/src/components/resource/__tests__/BrowseView.test.tsx +38 -12
- package/src/components/resource/__tests__/ResourceViewer.embeddable.test.tsx +47 -3
- package/src/components/resource/annotate-renderers.tsx +3 -3
- package/src/components/resource/event-formatting.ts +0 -3
- package/src/components/resource/panels/AssessmentEntry.tsx +1 -1
- package/src/components/resource/panels/AssessmentPanel.css +5 -6
- package/src/components/resource/panels/AssistSection.css +95 -263
- package/src/components/resource/panels/AssistSection.tsx +4 -4
- package/src/components/resource/panels/AssistShell.tsx +12 -4
- package/src/components/resource/panels/CollaborationPanel.css +47 -22
- package/src/components/resource/panels/CollaborationPanel.tsx +93 -2
- package/src/components/resource/panels/CommentEntry.tsx +1 -1
- package/src/components/resource/panels/CommentsPanel.css +0 -16
- package/src/components/resource/panels/HighlightEntry.tsx +1 -1
- package/src/components/resource/panels/HighlightPanel.css +0 -7
- package/src/components/resource/panels/JsonLdPanel.css +0 -4
- package/src/components/resource/panels/ReferenceEntry.tsx +10 -3
- package/src/components/resource/panels/ReferencesPanel.css +0 -12
- package/src/components/resource/panels/ReferencesPanel.tsx +16 -20
- package/src/components/resource/panels/ResourceInfoPanel.css +0 -32
- package/src/components/resource/panels/ResourceInfoPanel.tsx +89 -20
- package/src/components/resource/panels/StatisticsPanel.css +0 -20
- package/src/components/resource/panels/TagEntry.tsx +1 -1
- package/src/components/resource/panels/TaggingPanel.css +0 -4
- package/src/components/resource/panels/TaggingPanel.tsx +2 -10
- package/src/components/resource/panels/UnifiedAnnotationsPanel.css +0 -4
- package/src/components/resource/panels/UnifiedAnnotationsPanel.tsx +7 -2
- package/src/components/resource/panels/__tests__/AssessmentEntry.test.tsx +0 -1
- package/src/components/resource/panels/__tests__/AssistSection.test.tsx +48 -50
- package/src/components/resource/panels/__tests__/AssistShell.test.tsx +11 -6
- package/src/components/resource/panels/__tests__/CollaborationPanel.test.tsx +89 -0
- package/src/components/resource/panels/__tests__/CommentEntry.test.tsx +1 -2
- package/src/components/resource/panels/__tests__/HighlightEntry.test.tsx +0 -1
- package/src/components/resource/panels/__tests__/HighlightPanel.annotationProgress.test.tsx +44 -36
- package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +41 -1
- package/src/components/resource/panels/__tests__/ReferencesPanel.headless.test.tsx +1 -1
- package/src/components/resource/panels/__tests__/ReferencesPanel.test.tsx +67 -54
- package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +185 -7
- package/src/components/resource/panels/__tests__/TagEntry.test.tsx +0 -1
- package/src/components/settings/SettingsPanel.css +0 -4
- package/src/features/auth/auth.css +2 -26
- package/src/features/resource-compose/__tests__/ResourceComposePage.test.tsx +0 -65
- package/src/features/resource-compose/components/ResourceComposePage.tsx +17 -130
- package/src/features/resource-compose/state/__tests__/compose-page-state-unit.test.ts +1 -76
- package/src/features/resource-compose/state/compose-page-state-unit.ts +5 -48
- package/src/features/resource-discovery/__tests__/ResourceDiscoveryPage.test.tsx +55 -0
- package/src/features/resource-discovery/components/ResourceDiscoveryPage.tsx +29 -0
- package/src/features/resource-discovery/state/__tests__/discover-state-unit.test.ts +53 -3
- package/src/features/resource-discovery/state/discover-state-unit.ts +29 -8
- package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +71 -15
- package/src/features/resource-viewer/components/ResourceViewerPage.tsx +166 -71
- package/src/features/resource-viewer/hooks/__tests__/useResourceViewedReport.test.tsx +63 -0
- package/src/features/resource-viewer/hooks/useResourceViewedReport.ts +33 -0
- package/src/features/resource-viewer/state/__tests__/resource-viewer-page-state-unit.test.ts +2 -2
- package/src/features/resource-viewer/state/resource-viewer-page-state-unit.ts +1 -1
- package/src/styles/core/buttons.css +3 -1
- package/src/styles/core/forms.css +35 -29
- package/src/styles/core/indicators.css +0 -4
- package/src/styles/core/inputs.css +0 -4
- package/src/styles/core/progress.css +2 -34
- package/src/styles/core/sliders.css +0 -4
- package/src/styles/core/toggles.css +0 -4
- package/src/styles/features/resource-discovery.css +13 -0
- package/src/styles/features/resource-viewer.css +0 -42
- package/src/styles/features/resource.css +0 -4
- package/src/styles/motivations/motivation-assessment.css +2 -2
- package/src/styles/panels/history-panel.css +0 -40
- package/src/styles/panels/user-panel.css +0 -3
- package/src/styles/patterns/panel-helpers.css +0 -27
- package/src/styles/patterns/panel-sections.css +0 -59
- package/src/styles/patterns/panels-base.css +0 -32
- package/translations/ar.json +84 -24
- package/translations/bn.json +84 -24
- package/translations/cs.json +84 -24
- package/translations/da.json +84 -24
- package/translations/de.json +84 -24
- package/translations/el.json +84 -24
- package/translations/en.json +84 -24
- package/translations/es.json +84 -24
- package/translations/fa.json +84 -24
- package/translations/fi.json +84 -24
- package/translations/fr.json +84 -24
- package/translations/he.json +84 -24
- package/translations/hi.json +84 -24
- package/translations/id.json +84 -24
- package/translations/it.json +84 -24
- package/translations/ja.json +84 -24
- package/translations/ko.json +84 -24
- package/translations/ms.json +84 -24
- package/translations/nl.json +84 -24
- package/translations/no.json +84 -24
- package/translations/pl.json +84 -24
- package/translations/pt.json +84 -24
- package/translations/ro.json +84 -24
- package/translations/sv.json +84 -24
- package/translations/th.json +84 -24
- package/translations/tr.json +84 -24
- package/translations/uk.json +84 -24
- package/translations/vi.json +84 -24
- package/translations/zh.json +84 -24
- package/dist/PdfAnnotationCanvas.client-6ZSF6ZTJ.js.map +0 -1
- package/dist/PdfAnnotationCanvas.client-JCJMXWWJ.css.map +0 -1
- package/dist/ar-YTUUGK2O.js.map +0 -1
- package/dist/bn-ASGNGPMD.js.map +0 -1
- package/dist/chunk-BTUG3VJJ.js.map +0 -1
- package/dist/chunk-L3WKRWP3.js.map +0 -1
- package/dist/chunk-O23TLLXW.js.map +0 -1
- package/dist/chunk-OBQOZCJE.js.map +0 -1
- package/dist/chunk-QT7LYM72.js.map +0 -1
- package/dist/chunk-VXASXU4K.js.map +0 -1
- package/dist/chunk-XUDKYAVC.js +0 -21
- package/dist/chunk-XUDKYAVC.js.map +0 -1
- package/dist/cs-WMYVAOZY.js.map +0 -1
- package/dist/da-FSHHN4D6.js.map +0 -1
- package/dist/de-FJFO3TPT.js.map +0 -1
- package/dist/el-XOH4QIAG.js.map +0 -1
- package/dist/en-3FCBW3YD.js.map +0 -1
- package/dist/es-HDX4QI7E.js.map +0 -1
- package/dist/fa-DJ6WTFTJ.js.map +0 -1
- package/dist/fi-4S7H7W7U.js.map +0 -1
- package/dist/fr-6UJSYHXC.js.map +0 -1
- package/dist/he-ZZJOHJX2.js.map +0 -1
- package/dist/hi-HZJTAW7U.js.map +0 -1
- package/dist/id-E3I6ILEM.js.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrations/css-modules-helper.js.map +0 -1
- package/dist/integrations/styled-components-theme.js.map +0 -1
- package/dist/it-ULAPAD7U.js.map +0 -1
- package/dist/ja-SAHZQ4CZ.js.map +0 -1
- package/dist/ko-DFU2ADQ4.js.map +0 -1
- package/dist/ms-NWL76XNT.js.map +0 -1
- package/dist/nl-ATCM76WN.js.map +0 -1
- package/dist/no-UIAQ5RJF.js.map +0 -1
- package/dist/pl-NOECQDXD.js.map +0 -1
- package/dist/pt-SVWIIUPC.js.map +0 -1
- package/dist/ro-NR2DRTZG.js.map +0 -1
- package/dist/sv-STVJ37JP.js.map +0 -1
- package/dist/test-utils.css.map +0 -1
- package/dist/test-utils.js.map +0 -1
- package/dist/th-UWQR4K54.js.map +0 -1
- package/dist/tr-WNXZSD27.js.map +0 -1
- package/dist/uk-SJRMB47Y.js.map +0 -1
- package/dist/vi-TMRQFES2.js.map +0 -1
- package/dist/zh-QOL3LYEM.js.map +0 -1
- package/src/components/modals/ResourceSearchModal.tsx +0 -224
- package/src/components/modals/__tests__/ResourceSearchModal.test.tsx +0 -159
- package/src/integrations/tailwind-plugin.cjs +0 -224
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
z-index: 1000;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
/* Resource search modal variant (higher z-index) */
|
|
10
|
-
.semiont-search-modal--resource {
|
|
11
|
-
z-index: 1001;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
9
|
/* Backdrop */
|
|
15
10
|
.semiont-search-modal__backdrop {
|
|
16
11
|
position: fixed;
|
|
@@ -369,12 +364,7 @@
|
|
|
369
364
|
outline-color: var(--semiont-color-primary-400);
|
|
370
365
|
}
|
|
371
366
|
|
|
372
|
-
/* Search
|
|
373
|
-
.semiont-search-modal__search-form {
|
|
374
|
-
margin-bottom: 1rem;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
/* Search input (for ResourceSearchModal) */
|
|
367
|
+
/* Search input */
|
|
378
368
|
.semiont-search-modal__search-input {
|
|
379
369
|
width: 100%;
|
|
380
370
|
padding: 0.5rem 0.75rem;
|
|
@@ -398,79 +388,16 @@
|
|
|
398
388
|
outline-color: var(--semiont-color-primary-400);
|
|
399
389
|
}
|
|
400
390
|
|
|
401
|
-
/* Resource list */
|
|
402
|
-
.semiont-search-modal__resource-list {
|
|
403
|
-
display: flex;
|
|
404
|
-
flex-direction: column;
|
|
405
|
-
gap: 0.5rem;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/* Resource item */
|
|
409
|
-
.semiont-search-modal__resource-item {
|
|
410
|
-
padding: 0.75rem;
|
|
411
|
-
border: 1px solid var(--semiont-color-gray-200);
|
|
412
|
-
border-radius: 0.5rem;
|
|
413
|
-
cursor: pointer;
|
|
414
|
-
transition: background-color 0.2s;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
.semiont-search-modal__resource-item:hover {
|
|
418
|
-
background-color: var(--semiont-color-gray-50);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
[data-theme="dark"] .semiont-search-modal__resource-item {
|
|
422
|
-
border-color: var(--semiont-color-gray-700);
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
[data-theme="dark"] .semiont-search-modal__resource-item:hover {
|
|
426
|
-
background-color: rgba(55, 65, 81, 0.5);
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
/* Resource name */
|
|
430
|
-
.semiont-search-modal__resource-name {
|
|
431
|
-
font-weight: 500;
|
|
432
|
-
color: var(--semiont-color-gray-900);
|
|
433
|
-
margin-bottom: 0.25rem;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
[data-theme="dark"] .semiont-search-modal__resource-name {
|
|
437
|
-
color: var(--semiont-color-white);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
/* Resource description */
|
|
441
|
-
.semiont-search-modal__resource-description {
|
|
442
|
-
font-size: 0.875rem;
|
|
443
|
-
color: var(--semiont-color-gray-600);
|
|
444
|
-
display: -webkit-box;
|
|
445
|
-
-webkit-line-clamp: 2;
|
|
446
|
-
-webkit-box-orient: vertical;
|
|
447
|
-
overflow: hidden;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
[data-theme="dark"] .semiont-search-modal__resource-description {
|
|
451
|
-
color: var(--semiont-color-gray-400);
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
/* Resource media type */
|
|
455
|
-
.semiont-search-modal__resource-media-type {
|
|
456
|
-
font-size: 0.875rem;
|
|
457
|
-
font-style: italic;
|
|
458
|
-
color: var(--semiont-color-gray-500);
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
[data-theme="dark"] .semiont-search-modal__resource-media-type {
|
|
462
|
-
color: var(--semiont-color-gray-500);
|
|
463
|
-
}
|
|
464
|
-
|
|
465
391
|
/* Wide panel variant for two-pane layouts */
|
|
466
392
|
.semiont-search-modal__panel--wide {
|
|
467
393
|
max-width: 1100px;
|
|
468
394
|
}
|
|
469
395
|
|
|
470
|
-
/* Gather-context step:
|
|
396
|
+
/* Gather-context step. Width comes from `--wide` (GEP D2: the family's own
|
|
397
|
+
1100px precedent), applied alongside at both call sites — this class owns
|
|
398
|
+
only the gather-specific flex/height shape. */
|
|
471
399
|
.semiont-search-modal__panel--gather {
|
|
472
|
-
max-
|
|
473
|
-
max-height: min(90vh, 680px);
|
|
400
|
+
max-height: min(92vh, 860px);
|
|
474
401
|
display: flex;
|
|
475
402
|
flex-direction: column;
|
|
476
403
|
overflow: hidden;
|
|
@@ -497,14 +424,57 @@
|
|
|
497
424
|
padding: 2rem 0;
|
|
498
425
|
}
|
|
499
426
|
|
|
500
|
-
|
|
501
|
-
|
|
427
|
+
/* The gather skeleton: the loading screen is the loaded screen minus the
|
|
428
|
+
data — known annotation facts up top, pane headers in place, shimmer bars
|
|
429
|
+
where the gather's answers will land. */
|
|
430
|
+
.semiont-gather__skeleton {
|
|
431
|
+
display: flex;
|
|
432
|
+
flex-direction: column;
|
|
433
|
+
gap: 1rem;
|
|
434
|
+
flex: 1;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.semiont-gather__skeleton-source {
|
|
438
|
+
font-size: var(--semiont-text-sm);
|
|
502
439
|
color: var(--semiont-text-secondary);
|
|
503
|
-
font-weight: 500;
|
|
504
440
|
}
|
|
505
441
|
|
|
506
|
-
|
|
442
|
+
.semiont-gather__skeleton-header {
|
|
443
|
+
display: flex;
|
|
444
|
+
align-items: center;
|
|
445
|
+
justify-content: space-between;
|
|
446
|
+
gap: 0.5rem;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.semiont-gather__skeleton-exact {
|
|
450
|
+
font-weight: var(--semiont-font-medium);
|
|
451
|
+
color: var(--semiont-text-primary);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.semiont-gather__skeleton-panes {
|
|
455
|
+
display: grid;
|
|
456
|
+
grid-template-columns: 1fr 1fr;
|
|
457
|
+
gap: 1.5rem;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.semiont-gather__skeleton-pane {
|
|
461
|
+
display: flex;
|
|
462
|
+
flex-direction: column;
|
|
463
|
+
gap: 0.5rem;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/* One small dots animation per zone, sitting exactly where that zone's
|
|
467
|
+
content will land. Reuses the loading-dot spans (same animation). */
|
|
468
|
+
.semiont-gather__skeleton-dots {
|
|
469
|
+
display: flex;
|
|
470
|
+
gap: 0.375rem;
|
|
471
|
+
padding: 0.375rem 0;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.semiont-gather__loading-text {
|
|
475
|
+
font-size: 1.125rem;
|
|
507
476
|
color: var(--semiont-text-secondary);
|
|
477
|
+
font-weight: 500;
|
|
508
478
|
}
|
|
509
479
|
|
|
510
480
|
.semiont-gather__loading-dot {
|
|
@@ -535,6 +505,231 @@
|
|
|
535
505
|
padding-top: 0.25rem;
|
|
536
506
|
}
|
|
537
507
|
|
|
508
|
+
/* GEP P2: the evidence panes — quiet lists under small-cap headers (D1/D3/D4). */
|
|
509
|
+
.semiont-gather-pane {
|
|
510
|
+
display: flex;
|
|
511
|
+
flex-direction: column;
|
|
512
|
+
gap: 0.5rem;
|
|
513
|
+
min-height: 0;
|
|
514
|
+
overflow-y: auto; /* a pane scrolls inside itself; the panel never grows */
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.semiont-gather-pane__title {
|
|
518
|
+
font-size: var(--semiont-text-xs);
|
|
519
|
+
font-weight: 700;
|
|
520
|
+
text-transform: uppercase;
|
|
521
|
+
letter-spacing: 0.06em;
|
|
522
|
+
color: var(--semiont-text-tertiary);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
.semiont-gather-pane__summary {
|
|
526
|
+
margin: 0;
|
|
527
|
+
font-size: var(--semiont-text-sm);
|
|
528
|
+
color: var(--semiont-text-primary);
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.semiont-gather-pane__empty {
|
|
532
|
+
margin: 0;
|
|
533
|
+
font-size: var(--semiont-text-sm);
|
|
534
|
+
font-style: italic;
|
|
535
|
+
color: var(--semiont-text-secondary);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
.semiont-corpus__list {
|
|
539
|
+
display: flex;
|
|
540
|
+
flex-direction: column;
|
|
541
|
+
gap: 0.5rem;
|
|
542
|
+
list-style: none;
|
|
543
|
+
padding: 0;
|
|
544
|
+
margin: 0;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
.semiont-corpus__card {
|
|
548
|
+
padding: 0.375rem 0.5rem;
|
|
549
|
+
border: 1px solid var(--semiont-border-primary);
|
|
550
|
+
border-radius: 0.375rem;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
.semiont-corpus__card-head {
|
|
554
|
+
display: flex;
|
|
555
|
+
align-items: baseline;
|
|
556
|
+
flex-wrap: wrap;
|
|
557
|
+
gap: 0.375rem;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.semiont-corpus__source {
|
|
561
|
+
font-size: var(--semiont-text-sm);
|
|
562
|
+
font-weight: 500;
|
|
563
|
+
color: var(--semiont-text-primary);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
.semiont-corpus__score {
|
|
567
|
+
margin-left: auto;
|
|
568
|
+
font-size: var(--semiont-text-xs);
|
|
569
|
+
font-variant-numeric: tabular-nums;
|
|
570
|
+
color: var(--semiont-text-tertiary);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.semiont-corpus__snippet {
|
|
574
|
+
margin: 0.25rem 0 0;
|
|
575
|
+
font-size: var(--semiont-text-xs);
|
|
576
|
+
color: var(--semiont-text-secondary);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
.semiont-corpus__receipt {
|
|
580
|
+
margin: 0;
|
|
581
|
+
font-size: var(--semiont-text-xs);
|
|
582
|
+
font-style: italic;
|
|
583
|
+
color: var(--semiont-text-tertiary);
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
/* GEP P4 (D3): the graph pane's body — a deterministic, hand-rolled SVG. */
|
|
587
|
+
.semiont-graph {
|
|
588
|
+
width: 100%;
|
|
589
|
+
height: auto;
|
|
590
|
+
flex-shrink: 0;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
.semiont-graph__node rect {
|
|
594
|
+
fill: var(--semiont-bg-secondary);
|
|
595
|
+
stroke: var(--semiont-border-primary);
|
|
596
|
+
stroke-width: 1;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
.semiont-graph__node text {
|
|
600
|
+
font-size: 11px;
|
|
601
|
+
fill: var(--semiont-text-primary);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
.semiont-graph__node--focal rect {
|
|
605
|
+
fill: var(--semiont-color-primary-100);
|
|
606
|
+
stroke: var(--semiont-color-primary-600);
|
|
607
|
+
stroke-width: 2;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.semiont-graph__node--annotation rect {
|
|
611
|
+
fill: var(--semiont-bg-primary);
|
|
612
|
+
stroke-dasharray: 4 3;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.semiont-graph__edge line {
|
|
616
|
+
stroke: var(--semiont-border-primary);
|
|
617
|
+
stroke-width: 1.5;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.semiont-graph__edge--cites line {
|
|
621
|
+
stroke: var(--semiont-color-primary-600);
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
.semiont-graph__edge--annotation-of line {
|
|
625
|
+
stroke-dasharray: 4 3;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
[data-theme="dark"] .semiont-graph__node--focal rect {
|
|
629
|
+
fill: var(--semiont-color-primary-900);
|
|
630
|
+
stroke: var(--semiont-color-primary-400);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
[data-theme="dark"] .semiont-graph__edge--cites line {
|
|
634
|
+
stroke: var(--semiont-color-primary-400);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
/* Recall chips: the exclusion picker inverted — every entity type starts
|
|
638
|
+
INCLUDED, wearing the app's token look (the semiont-tag tint), and a click
|
|
639
|
+
crosses one off the recall: outline, tertiary text, struck through. The
|
|
640
|
+
wire still carries the exclude list; only the presentation inverted. */
|
|
641
|
+
.semiont-form__recall-chips {
|
|
642
|
+
display: flex;
|
|
643
|
+
flex-wrap: wrap;
|
|
644
|
+
gap: 0.375rem;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
.semiont-form__recall-chip {
|
|
648
|
+
padding: 0.25rem 0.75rem;
|
|
649
|
+
border-radius: var(--semiont-radius-full);
|
|
650
|
+
font-size: var(--semiont-text-sm);
|
|
651
|
+
cursor: pointer;
|
|
652
|
+
border: 1px solid transparent;
|
|
653
|
+
background: var(--semiont-color-primary-100);
|
|
654
|
+
color: var(--semiont-color-primary-700);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
[data-theme="dark"] .semiont-form__recall-chip {
|
|
658
|
+
background: var(--semiont-color-primary-900);
|
|
659
|
+
color: var(--semiont-color-primary-300);
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
.semiont-form__recall-chip[data-included="false"] {
|
|
663
|
+
background: none;
|
|
664
|
+
border-color: var(--semiont-border-primary);
|
|
665
|
+
color: var(--semiont-text-tertiary);
|
|
666
|
+
text-decoration: line-through;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.semiont-form__recall-chip:hover {
|
|
670
|
+
opacity: 0.85;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
.semiont-form__recall-chip:focus-visible {
|
|
674
|
+
outline: 2px solid var(--semiont-color-primary-500);
|
|
675
|
+
outline-offset: 1px;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
/* Post-gather receipt: the spent controls' compact echo — what THIS gather
|
|
679
|
+
asked for, and the way back to the full form. Same vocabulary as the
|
|
680
|
+
corpus pane's exclusion receipt and the wizard's strategy band: a choice
|
|
681
|
+
made upstream, echoed compactly. Dashed like the graph's annotation
|
|
682
|
+
nodes — a stand-in for something expandable. */
|
|
683
|
+
.semiont-gather-receipt {
|
|
684
|
+
display: block;
|
|
685
|
+
width: 100%;
|
|
686
|
+
flex-shrink: 0;
|
|
687
|
+
text-align: left;
|
|
688
|
+
padding: 0.5rem 0.75rem;
|
|
689
|
+
font-size: var(--semiont-text-sm);
|
|
690
|
+
color: var(--semiont-text-secondary);
|
|
691
|
+
background: none;
|
|
692
|
+
border: 1px dashed var(--semiont-border-primary);
|
|
693
|
+
border-radius: 0.375rem;
|
|
694
|
+
cursor: pointer;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
.semiont-gather-receipt:hover {
|
|
698
|
+
color: var(--semiont-text-primary);
|
|
699
|
+
border-color: var(--semiont-color-primary-600);
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
/* GEP D5: the hint on its own full-width row, input-then-act above the footer. */
|
|
703
|
+
.semiont-gather__hint-row {
|
|
704
|
+
flex-shrink: 0;
|
|
705
|
+
padding-top: 0.5rem;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.semiont-gather__hint-effect {
|
|
709
|
+
font-weight: 400;
|
|
710
|
+
color: var(--semiont-text-tertiary);
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
/* GEP D8: the gather step's hint stays visible while being steered by. */
|
|
714
|
+
.semiont-wizard__hint-echo {
|
|
715
|
+
margin: 0 0 0.5rem;
|
|
716
|
+
font-size: var(--semiont-text-xs);
|
|
717
|
+
font-style: italic;
|
|
718
|
+
color: var(--semiont-text-secondary);
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
/* Suggested references are prose (D3) — sentences, listed, not chipped. */
|
|
722
|
+
.semiont-gather__suggested {
|
|
723
|
+
margin: 0.5rem 0 0;
|
|
724
|
+
padding-left: 1.25rem;
|
|
725
|
+
font-size: var(--semiont-text-xs);
|
|
726
|
+
color: var(--semiont-text-secondary);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
.semiont-gather__suggested li {
|
|
730
|
+
margin-bottom: 0.25rem;
|
|
731
|
+
}
|
|
732
|
+
|
|
538
733
|
/* Two-column body below the strip */
|
|
539
734
|
.semiont-gather__body {
|
|
540
735
|
display: flex;
|
|
@@ -599,8 +794,24 @@
|
|
|
599
794
|
margin-bottom: 0.5rem;
|
|
600
795
|
}
|
|
601
796
|
|
|
602
|
-
|
|
603
|
-
|
|
797
|
+
/* The chosen strategy on a strategy step — the chooser band collapsed to its
|
|
798
|
+
selection: a passive echo on the label's own line (--echo). Sized like the
|
|
799
|
+
form's text and in the TEXT color: blue is reserved for controls, and this
|
|
800
|
+
is never a control — the emoji carries the strategy's identity. */
|
|
801
|
+
.semiont-gather__footer--echo {
|
|
802
|
+
display: flex;
|
|
803
|
+
align-items: baseline;
|
|
804
|
+
gap: 0.75rem;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
.semiont-gather__footer--echo .semiont-gather__footer-label {
|
|
808
|
+
margin-bottom: 0;
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
.semiont-gather__chosen-strategy {
|
|
812
|
+
font-size: var(--semiont-text-sm);
|
|
813
|
+
font-weight: var(--semiont-font-semibold);
|
|
814
|
+
color: var(--semiont-text-primary);
|
|
604
815
|
}
|
|
605
816
|
|
|
606
817
|
.semiont-gather__actions {
|
|
@@ -665,10 +876,6 @@
|
|
|
665
876
|
color: var(--semiont-color-primary-600);
|
|
666
877
|
}
|
|
667
878
|
|
|
668
|
-
[data-theme="dark"] .semiont-gather__expand-btn {
|
|
669
|
-
color: var(--semiont-text-tertiary);
|
|
670
|
-
}
|
|
671
|
-
|
|
672
879
|
[data-theme="dark"] .semiont-gather__expand-btn:hover {
|
|
673
880
|
color: var(--semiont-color-primary-400);
|
|
674
881
|
}
|
|
@@ -708,40 +915,57 @@
|
|
|
708
915
|
}
|
|
709
916
|
}
|
|
710
917
|
|
|
711
|
-
/*
|
|
712
|
-
|
|
918
|
+
/* D4 discard guard: inline prompt raised when dismissal would destroy a
|
|
919
|
+
non-empty compose draft. Never window.confirm; the footer stays
|
|
920
|
+
dismissal-free (A4) — this band owns the decision. */
|
|
921
|
+
.semiont-wizard__discard-prompt {
|
|
713
922
|
display: flex;
|
|
714
|
-
|
|
923
|
+
align-items: center;
|
|
924
|
+
gap: 0.75rem;
|
|
925
|
+
margin-bottom: 0.75rem;
|
|
926
|
+
padding: 0.5rem 0.75rem;
|
|
927
|
+
border: 1px solid var(--semiont-color-red-600);
|
|
928
|
+
border-radius: var(--semiont-radius-md);
|
|
715
929
|
}
|
|
716
930
|
|
|
717
|
-
.semiont-
|
|
718
|
-
flex:
|
|
719
|
-
|
|
720
|
-
overflow-y: auto;
|
|
931
|
+
.semiont-wizard__discard-prompt-text {
|
|
932
|
+
flex: 1;
|
|
933
|
+
font-weight: var(--semiont-font-semibold);
|
|
721
934
|
}
|
|
722
935
|
|
|
723
|
-
|
|
936
|
+
/* The strategy steps' single scroll pane: evidence + step content scroll
|
|
937
|
+
TOGETHER inside the clipped gather panel. The hosts start it scrolled to
|
|
938
|
+
the bottom on entry, so the step's own content shows in full and the
|
|
939
|
+
evidence tucks up under the modal top. */
|
|
940
|
+
.semiont-wizard__step-scroll {
|
|
724
941
|
flex: 1;
|
|
725
|
-
|
|
942
|
+
min-height: 0;
|
|
726
943
|
overflow-y: auto;
|
|
944
|
+
display: flex;
|
|
945
|
+
flex-direction: column;
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
/* Inside the single pane the display flows at natural height — the gather
|
|
949
|
+
step's clip-and-scroll flex (outer/body/panes each scrolling internally)
|
|
950
|
+
would otherwise compress the evidence AND nest scrollbars. One scrollbar
|
|
951
|
+
governs the whole step. */
|
|
952
|
+
.semiont-wizard__step-scroll .semiont-gather__outer,
|
|
953
|
+
.semiont-wizard__step-scroll .semiont-gather__body {
|
|
954
|
+
flex: none;
|
|
955
|
+
min-height: auto;
|
|
956
|
+
overflow: visible;
|
|
727
957
|
}
|
|
728
958
|
|
|
729
|
-
|
|
959
|
+
.semiont-wizard__step-scroll .semiont-gather__left,
|
|
960
|
+
.semiont-wizard__step-scroll .semiont-gather__right,
|
|
961
|
+
.semiont-wizard__step-scroll .semiont-gather-pane {
|
|
962
|
+
min-height: auto;
|
|
963
|
+
overflow-y: visible;
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
/* Narrow screens */
|
|
730
967
|
@media (max-width: 640px) {
|
|
731
968
|
.semiont-search-modal__panel--wide {
|
|
732
969
|
max-width: 100%;
|
|
733
970
|
}
|
|
734
|
-
|
|
735
|
-
.semiont-search-results__two-pane {
|
|
736
|
-
flex-direction: column;
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
.semiont-search-results__context-pane {
|
|
740
|
-
flex: none;
|
|
741
|
-
max-height: 200px;
|
|
742
|
-
}
|
|
743
|
-
|
|
744
|
-
.semiont-search-results__results-pane {
|
|
745
|
-
max-height: 350px;
|
|
746
|
-
}
|
|
747
971
|
}
|
|
@@ -74,7 +74,7 @@ export function SearchModal({
|
|
|
74
74
|
(q) =>
|
|
75
75
|
semiontRef.current!.browse.resources({ search: q, limit: SEARCH_LIMIT }).pipe(
|
|
76
76
|
map((st) => {
|
|
77
|
-
const resources = readyValue(st);
|
|
77
|
+
const resources = readyValue(st)?.resources;
|
|
78
78
|
if (resources === undefined) return undefined;
|
|
79
79
|
return resources
|
|
80
80
|
.map((resource): SearchResult | null => {
|