@bendyline/docblocks-react 2.7.5 → 2.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/THIRD_PARTY_NOTICES.txt +26 -26
  2. package/dist/{AiDiagrams-5P657GFC.js → AiDiagrams-7KBAOXPB.js} +4 -2
  3. package/dist/{AiEditorAssistant-V4MZRC6Q.js → AiEditorAssistant-4B2PFFOT.js} +128 -12
  4. package/dist/{AiStudyDialog-GSCFTG3G.js → AiStudyDialog-JPVFFZBB.js} +14 -4
  5. package/dist/{AudioExportDialog-IOYIEAER.js → AudioExportDialog-EICCBSSE.js} +1 -1
  6. package/dist/{ExportDialog-LGWBXIWN.js → ExportDialog-EYDGTJ3S.js} +1 -1
  7. package/dist/{ExportToolbarControls-HOV424TO.js → ExportToolbarControls-2XY2CKGH.js} +45 -4
  8. package/dist/{PresentationMaker-H5B44Q7P.js → PresentationMaker-VYQKNL3L.js} +2 -2
  9. package/dist/{SpeechToolbarControl-KNI2C4JJ.js → SpeechToolbarControl-E6OSJGHL.js} +217 -71
  10. package/dist/{TextFromNarration-EYOMW2IW.js → TextFromNarration-ME6FAYWO.js} +1 -1
  11. package/dist/{WorkspaceSearchPanel-J6BKEZQJ.js → WorkspaceSearchPanel-MEBBTK7F.js} +3 -3
  12. package/dist/{chunk-I44HKDQX.js → chunk-3TSJQESW.js} +16 -3
  13. package/dist/chunk-5OIHB3SR.js +1162 -0
  14. package/dist/chunk-6QHZNL6C.js +208 -0
  15. package/dist/{chunk-FBPCURCS.js → chunk-7HBKKXRV.js} +291 -82
  16. package/dist/{chunk-KBDZDFPU.js → chunk-BNKIPCXO.js} +4 -1
  17. package/dist/{chunk-2IYBBFQX.js → chunk-BZRYQENB.js} +59 -16
  18. package/dist/{chunk-GFK4TCKN.js → chunk-G63YXKBC.js} +8 -5
  19. package/dist/{chunk-DICE7VBJ.js → chunk-KHQ44ZFA.js} +16 -1
  20. package/dist/{chunk-CUCWCZRO.js → chunk-N7AKLJPY.js} +143 -98
  21. package/dist/{chunk-USKX66SA.js → chunk-T2PA7QEF.js} +1 -1
  22. package/dist/editor.js +2 -2
  23. package/dist/export/index.js +1 -1
  24. package/dist/index.js +232 -134
  25. package/dist/settings/index.js +2 -1
  26. package/package.json +8 -8
  27. package/src/styles/docblocks.css +547 -11
  28. package/dist/chunk-I4JURPYS.js +0 -812
  29. package/dist/{QuickOpenDialog-ENVFGIHS.js → QuickOpenDialog-3QEX7RZG.js} +3 -3
@@ -16,7 +16,8 @@ import {
16
16
  resolveWriteCanvasFonts,
17
17
  saveInterfaceFont,
18
18
  saveProofingPreferences
19
- } from "../chunk-FBPCURCS.js";
19
+ } from "../chunk-7HBKKXRV.js";
20
+ import "../chunk-TBLZBNQF.js";
20
21
  import "../chunk-VJPGZCFS.js";
21
22
  export {
22
23
  AccentColorSettings,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/docblocks-react",
3
- "version": "2.7.5",
3
+ "version": "2.7.7",
4
4
  "description": "React components for DocBlocks — file explorer, workspace picker, and editor shell",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -85,14 +85,14 @@
85
85
  }
86
86
  },
87
87
  "dependencies": {
88
- "@bendyline/docblocks": "2.7.5",
89
- "@bendyline/squisq": "2.13.0",
88
+ "@bendyline/docblocks": "2.7.7",
89
+ "@bendyline/squisq": "2.13.3",
90
90
  "@bendyline/squisq-calc": "2.11.2",
91
- "@bendyline/squisq-editor-react": "2.13.1",
92
- "@bendyline/squisq-formats": "2.8.1",
93
- "@bendyline/squisq-react": "2.12.8",
94
- "@bendyline/squisq-video": "2.4.6",
95
- "@bendyline/squisq-video-react": "2.5.9",
91
+ "@bendyline/squisq-editor-react": "2.13.5",
92
+ "@bendyline/squisq-formats": "2.8.4",
93
+ "@bendyline/squisq-react": "2.12.12",
94
+ "@bendyline/squisq-video": "2.4.9",
95
+ "@bendyline/squisq-video-react": "2.5.13",
96
96
  "lucide-react": "1.52.0",
97
97
  "qrcode": "1.5.4"
98
98
  },
@@ -2060,10 +2060,25 @@ html:has(.db-shell--mobile) .squisq-toolbar-overflow-menu {
2060
2060
  .db-shell--desktop-toolbar-wrapped:not(.db-shell--mobile) .squisq-toolbar {
2061
2061
  min-height: calc(var(--db-toolbar-wrapped-row) * 2);
2062
2062
  flex-wrap: wrap;
2063
- align-content: stretch;
2063
+ align-content: flex-start;
2064
+ /* Squisq's 1px item gap would otherwise also open between the two rows. */
2065
+ row-gap: 0;
2064
2066
  padding-right: var(--db-toolbar-wrapped-inline-end);
2065
2067
  }
2066
2068
 
2069
+ /* A flex line is only as tall as its tallest item, which on the second row is
2070
+ a 28px button, and stretching the lines splits the leftover height between
2071
+ both of them, so the controls sat below the row's center by half of it.
2072
+ This zero-width strut holds the second line open to a full row instead. It
2073
+ is the last item, so it lands there whatever the current mode renders; its
2074
+ negative margin cancels the 1px column gap so the right edge stays put. */
2075
+ .db-shell--desktop-toolbar-wrapped:not(.db-shell--mobile) .squisq-toolbar::after {
2076
+ content: '';
2077
+ flex: 0 0 0;
2078
+ height: var(--db-toolbar-wrapped-second-row, var(--db-toolbar-wrapped-row));
2079
+ margin-inline-start: -1px;
2080
+ }
2081
+
2067
2082
  /* The tab row spans the whole toolbar, padding included, so its surface runs
2068
2083
  edge to edge and its right-hand divider (which separated it from the
2069
2084
  formatting controls when they shared a row) has nothing left to divide. */
@@ -2930,6 +2945,11 @@ html:has(.db-shell--mobile) .squisq-toolbar-overflow-menu {
2930
2945
  margin: 0;
2931
2946
  }
2932
2947
 
2948
+ .db-settings-speech-model .db-settings-hint a {
2949
+ text-decoration: underline;
2950
+ text-underline-offset: 0.15em;
2951
+ }
2952
+
2933
2953
  .db-settings-speech-model .db-settings-ai-download-progress {
2934
2954
  min-width: 140px;
2935
2955
  margin-top: 0;
@@ -3459,6 +3479,37 @@ html:has(.db-shell--mobile) .squisq-toolbar-overflow-menu {
3459
3479
  font-weight: 600;
3460
3480
  }
3461
3481
 
3482
+ .db-export-more-formats summary {
3483
+ cursor: pointer;
3484
+ }
3485
+
3486
+ .db-export-completion {
3487
+ position: fixed;
3488
+ z-index: 200;
3489
+ right: 16px;
3490
+ bottom: calc(48px + var(--db-safe-bottom, 0px));
3491
+ box-sizing: border-box;
3492
+ width: min(400px, calc(100vw - 32px));
3493
+ padding: 12px 16px;
3494
+ border: 1px solid var(--db-border);
3495
+ border-radius: 6px;
3496
+ background: var(--db-bg-raised);
3497
+ color: var(--db-text);
3498
+ box-shadow: 0 4px 16px var(--db-shadow);
3499
+ font: 13px/1.5 var(--db-ui-font);
3500
+ overflow-wrap: anywhere;
3501
+ }
3502
+
3503
+ .db-export-completion p {
3504
+ margin: 0 0 8px;
3505
+ }
3506
+
3507
+ .db-export-completion-actions {
3508
+ display: flex;
3509
+ flex-wrap: wrap;
3510
+ gap: 8px;
3511
+ }
3512
+
3462
3513
  .db-export-btn {
3463
3514
  padding: 6px 16px;
3464
3515
  font-size: 13px;
@@ -6469,8 +6520,12 @@ html:has(.db-shell) :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
6469
6520
  gap: 8px;
6470
6521
  }
6471
6522
 
6472
- /* Status has its own row, so errors cannot steal space from the actions. */
6523
+ /* Status has its own row, so errors cannot steal space from the actions. The
6524
+ footer is a wrapping column, which sizes each row to its content: a definite
6525
+ width keeps a one-line knowledge pill from widening it, and keeps text from
6526
+ being measured at a narrower width than it is shown at. */
6473
6527
  .db-ai-footer-status {
6528
+ width: 100%;
6474
6529
  min-width: 0;
6475
6530
  overflow-wrap: anywhere;
6476
6531
  }
@@ -6603,6 +6658,125 @@ html:has(.db-shell) :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
6603
6658
  }
6604
6659
  }
6605
6660
 
6661
+ /* Knowledge indicator: whether the person's knowledge catalogs informed the
6662
+ output. A pill that opens to list the cited articles, or to say why none. */
6663
+ .db-ai-knowledge {
6664
+ max-width: 100%;
6665
+ margin: 6px 0;
6666
+ color: var(--db-text-secondary);
6667
+ font-size: 12px;
6668
+ font-weight: 400;
6669
+ }
6670
+
6671
+ .db-ai-knowledge > summary {
6672
+ display: inline-flex;
6673
+ align-items: center;
6674
+ gap: 5px;
6675
+ max-width: 100%;
6676
+ box-sizing: border-box;
6677
+ padding: 2px 9px;
6678
+ border: 1px solid var(--db-border);
6679
+ border-radius: 999px;
6680
+ cursor: pointer;
6681
+ list-style: none;
6682
+ }
6683
+
6684
+ .db-ai-knowledge > summary::-webkit-details-marker {
6685
+ display: none;
6686
+ }
6687
+
6688
+ /* A long catalog name truncates; the icon never shrinks to make room. */
6689
+ .db-ai-knowledge > summary svg {
6690
+ flex: none;
6691
+ }
6692
+
6693
+ .db-ai-knowledge > summary:hover {
6694
+ background: var(--db-bg-hover);
6695
+ }
6696
+
6697
+ .db-ai-knowledge > summary:focus-visible {
6698
+ outline: 2px solid var(--db-focus);
6699
+ outline-offset: 2px;
6700
+ }
6701
+
6702
+ .db-ai-knowledge--used > summary {
6703
+ border-color: var(--db-accent);
6704
+ background: var(--db-badge-bg);
6705
+ color: var(--db-badge-text);
6706
+ }
6707
+
6708
+ .db-ai-knowledge--used > summary:hover {
6709
+ color: var(--db-badge-text-hover);
6710
+ }
6711
+
6712
+ .db-ai-knowledge-names {
6713
+ min-width: 0;
6714
+ overflow: hidden;
6715
+ text-overflow: ellipsis;
6716
+ white-space: nowrap;
6717
+ }
6718
+
6719
+ .db-ai-knowledge-count {
6720
+ flex: none;
6721
+ /* Its leading space separates the words for reading; the gap spaces the pill. */
6722
+ white-space: nowrap;
6723
+ }
6724
+
6725
+ .db-ai-knowledge p,
6726
+ .db-ai-knowledge ul {
6727
+ margin: 6px 0 0;
6728
+ color: var(--db-text-muted);
6729
+ }
6730
+
6731
+ .db-ai-knowledge ul {
6732
+ padding-left: 18px;
6733
+ color: var(--db-text-secondary);
6734
+ }
6735
+
6736
+ /* A run can cite many articles; a list scrolls rather than pushing the actions away. */
6737
+ .db-ai-knowledge-source {
6738
+ max-height: 8.5em;
6739
+ overflow: auto;
6740
+ }
6741
+
6742
+ .db-ai-knowledge .db-ai-knowledge-catalog {
6743
+ color: var(--db-text-secondary);
6744
+ font-weight: 600;
6745
+ }
6746
+
6747
+ /* Facts to check: details in AI output that no source shows. */
6748
+ .db-ai-facts > summary {
6749
+ border-color: var(--db-danger);
6750
+ }
6751
+
6752
+ .db-ai-facts > summary svg {
6753
+ color: var(--db-danger);
6754
+ }
6755
+
6756
+ .db-ai-facts ul {
6757
+ max-height: 10em;
6758
+ overflow: auto;
6759
+ }
6760
+
6761
+ .db-ai-facts li + li {
6762
+ margin-top: 4px;
6763
+ }
6764
+
6765
+ .db-ai-facts-note {
6766
+ color: var(--db-danger);
6767
+ }
6768
+
6769
+ .db-ai-facts mark {
6770
+ padding: 0;
6771
+ background: none;
6772
+ color: var(--db-danger);
6773
+ font-weight: 600;
6774
+ }
6775
+
6776
+ .db-ai-review-knowledge {
6777
+ padding: 10px 14px 0;
6778
+ }
6779
+
6606
6780
  .db-text-from-narration button:not(.db-dialog-close),
6607
6781
  .db-ai-draft-dialog .db-dialog-footer button,
6608
6782
  .db-ai-study-dialog .db-dialog-footer button,
@@ -6806,27 +6980,240 @@ html:has(.db-shell) :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
6806
6980
  margin-top: 10px;
6807
6981
  }
6808
6982
 
6809
- .db-settings-ai-knowledge-list {
6810
- list-style: none;
6983
+ .db-settings-ai-knowledge-actions {
6984
+ display: flex;
6985
+ flex-wrap: wrap;
6986
+ align-items: center;
6987
+ gap: 8px;
6988
+ }
6989
+
6990
+ .db-settings-ai-knowledge progress {
6991
+ max-width: 100%;
6992
+ }
6993
+
6994
+ /* Knowledge catalogs: the downloaded ones sit together in one bin, each row a
6995
+ disclosure that starts collapsed; adding one happens in its own dialog. */
6996
+ .db-knowledge-bin {
6997
+ margin-top: 10px;
6998
+ border: 1px solid var(--db-border);
6999
+ border-radius: 6px;
7000
+ background: var(--db-bg-subtle);
7001
+ overflow-wrap: anywhere;
7002
+ }
7003
+
7004
+ .db-knowledge-bin-header {
7005
+ display: flex;
7006
+ flex-wrap: wrap;
7007
+ align-items: center;
7008
+ gap: 8px;
7009
+ padding: 8px 8px 8px 12px;
7010
+ border-bottom: 1px solid var(--db-border);
7011
+ }
7012
+
7013
+ .db-knowledge-bin-title {
7014
+ margin: 0;
7015
+ color: var(--db-text);
7016
+ font-size: 13px;
7017
+ font-weight: 600;
7018
+ }
7019
+
7020
+ .db-knowledge-bin-count {
7021
+ min-width: 18px;
7022
+ box-sizing: border-box;
7023
+ padding: 0 6px;
7024
+ border: 1px solid var(--db-border);
7025
+ border-radius: 9px;
7026
+ background: var(--db-bg-raised);
7027
+ color: var(--db-text-secondary);
7028
+ font-size: 11px;
7029
+ line-height: 16px;
7030
+ text-align: center;
7031
+ }
7032
+
7033
+ .db-knowledge-bin-header .db-settings-action {
7034
+ margin: 0 0 0 auto;
7035
+ padding: 4px 10px;
7036
+ }
7037
+
7038
+ .db-knowledge-bin .db-knowledge-bin-empty {
7039
+ margin: 0;
7040
+ padding: 12px;
7041
+ }
7042
+
7043
+ .db-knowledge-bin-list {
6811
7044
  margin: 0;
6812
7045
  padding: 0;
7046
+ list-style: none;
6813
7047
  }
6814
7048
 
6815
- .db-settings-ai-knowledge-list > li {
7049
+ .db-knowledge-item + .db-knowledge-item {
6816
7050
  border-top: 1px solid var(--db-border);
6817
- padding-block: 12px;
6818
- overflow-wrap: anywhere;
6819
7051
  }
6820
7052
 
6821
- .db-settings-ai-knowledge-actions {
7053
+ .db-knowledge-item-toggle {
7054
+ display: flex;
7055
+ align-items: center;
7056
+ gap: 10px;
7057
+ box-sizing: border-box;
7058
+ width: 100%;
7059
+ padding: 9px 12px;
7060
+ border: none;
7061
+ background: transparent;
7062
+ color: var(--db-text);
7063
+ font: inherit;
7064
+ font-size: 13px;
7065
+ text-align: left;
7066
+ cursor: pointer;
7067
+ }
7068
+
7069
+ .db-knowledge-item:last-child .db-knowledge-item-toggle:not([aria-expanded='true']) {
7070
+ border-radius: 0 0 5px 5px;
7071
+ }
7072
+
7073
+ .db-knowledge-item-toggle:hover {
7074
+ background: var(--db-bg-hover);
7075
+ }
7076
+
7077
+ .db-knowledge-item-toggle:focus-visible {
7078
+ outline: 2px solid var(--db-focus, var(--db-accent));
7079
+ outline-offset: -2px;
7080
+ }
7081
+
7082
+ /* Points right while collapsed, down while open. */
7083
+ .db-knowledge-item-caret {
7084
+ flex: 0 0 auto;
7085
+ width: 6px;
7086
+ height: 6px;
7087
+ border-right: 2px solid currentColor;
7088
+ border-bottom: 2px solid currentColor;
7089
+ color: var(--db-text-muted);
7090
+ transform: rotate(-45deg);
7091
+ transition: transform 120ms ease;
7092
+ }
7093
+
7094
+ .db-knowledge-item-caret--open {
7095
+ transform: rotate(45deg);
7096
+ }
7097
+
7098
+ .db-knowledge-item-name {
7099
+ flex: 1 1 auto;
7100
+ min-width: 0;
7101
+ font-weight: 600;
7102
+ }
7103
+
7104
+ .db-knowledge-item-summary {
7105
+ flex: 0 1 auto;
7106
+ color: var(--db-text-muted);
7107
+ font-size: 12px;
7108
+ text-align: right;
7109
+ }
7110
+
7111
+ .db-knowledge-item-summary--error {
7112
+ color: var(--db-danger);
7113
+ }
7114
+
7115
+ /* Indented to line up with the catalog name, past the caret. */
7116
+ .db-knowledge-item-body {
7117
+ padding: 0 12px 12px 30px;
7118
+ }
7119
+
7120
+ .db-knowledge-item-body p {
7121
+ margin: 0 0 6px;
7122
+ }
7123
+
7124
+ .db-knowledge-item-body [role='group'] {
7125
+ margin-top: 10px;
7126
+ }
7127
+
7128
+ /* The add dialog keeps one height while a search narrows the list, and only
7129
+ the list scrolls, so the search field stays in reach. */
7130
+ .db-knowledge-add-dialog {
7131
+ height: min(calc(100dvh - 32px), 560px);
7132
+ }
7133
+
7134
+ .db-knowledge-add-body {
7135
+ display: flex;
7136
+ flex: 1;
7137
+ flex-direction: column;
7138
+ overflow: hidden;
7139
+ }
7140
+
7141
+ /* The footer sits outside the dialog body's 13px, so its settings actions
7142
+ would otherwise inherit the page's 16px. */
7143
+ .db-knowledge-add-dialog .db-dialog-footer {
7144
+ font-size: 13px;
7145
+ }
7146
+
7147
+ .db-knowledge-add-dialog .db-dialog-footer .db-settings-action {
7148
+ margin-top: 0;
7149
+ }
7150
+
7151
+ .db-knowledge-search {
7152
+ margin-bottom: 8px;
7153
+ }
7154
+
7155
+ .db-knowledge-catalog-list {
7156
+ display: grid;
7157
+ flex: 1 1 auto;
7158
+ align-content: start;
7159
+ gap: 8px;
7160
+ min-height: 0;
7161
+ margin: 0;
7162
+ /* Room for focus rings at the scroll edges. */
7163
+ padding: 2px;
7164
+ overflow-y: auto;
7165
+ list-style: none;
7166
+ }
7167
+
7168
+ .db-knowledge-catalog {
6822
7169
  display: flex;
6823
7170
  flex-wrap: wrap;
7171
+ align-items: flex-start;
7172
+ gap: 8px 16px;
7173
+ padding: 12px;
7174
+ border: 1px solid var(--db-border);
7175
+ border-radius: 6px;
7176
+ background: var(--db-bg-subtle);
7177
+ overflow-wrap: anywhere;
7178
+ }
7179
+
7180
+ .db-knowledge-catalog-text {
7181
+ flex: 1 1 240px;
7182
+ min-width: 0;
7183
+ }
7184
+
7185
+ .db-knowledge-catalog-name {
7186
+ display: block;
7187
+ margin-bottom: 2px;
7188
+ color: var(--db-text);
7189
+ font-size: 13px;
7190
+ }
7191
+
7192
+ .db-knowledge-catalog p {
7193
+ margin: 0 0 4px;
7194
+ }
7195
+
7196
+ .db-knowledge-catalog-action {
7197
+ display: flex;
7198
+ flex: 0 0 auto;
6824
7199
  align-items: center;
6825
7200
  gap: 8px;
6826
7201
  }
6827
7202
 
6828
- .db-settings-ai-knowledge progress {
7203
+ .db-knowledge-catalog-action .db-settings-action {
7204
+ margin-top: 0;
7205
+ }
7206
+
7207
+ .db-knowledge-catalog-action progress {
7208
+ width: 96px;
6829
7209
  max-width: 100%;
7210
+ accent-color: var(--db-accent);
7211
+ }
7212
+
7213
+ .db-knowledge-catalog-added {
7214
+ color: var(--db-accent-deep);
7215
+ font-size: 12px;
7216
+ font-weight: 600;
6830
7217
  }
6831
7218
 
6832
7219
  .db-ai-review-disclaimer {
@@ -6856,11 +7243,152 @@ html:has(.db-shell) :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
6856
7243
  font: inherit;
6857
7244
  }
6858
7245
 
7246
+ /* The Illustrate panel's two steps: ideas to edit, then pictures to insert. */
7247
+ .db-ai-illustrate-steps ol {
7248
+ display: flex;
7249
+ gap: 6px;
7250
+ margin: 0;
7251
+ padding: 10px 14px 0;
7252
+ list-style: none;
7253
+ }
7254
+
7255
+ .db-ai-illustrate-steps li {
7256
+ flex: 1 1 0;
7257
+ min-width: 0;
7258
+ }
7259
+
7260
+ .db-ai-review-panel .db-ai-illustrate-steps button {
7261
+ display: flex;
7262
+ align-items: center;
7263
+ gap: 7px;
7264
+ width: 100%;
7265
+ border-color: var(--db-border);
7266
+ background: transparent;
7267
+ color: var(--db-text-muted);
7268
+ }
7269
+
7270
+ .db-ai-review-panel .db-ai-illustrate-steps button[aria-current='step'] {
7271
+ border-color: var(--db-accent);
7272
+ background: var(--db-accent-soft-08);
7273
+ color: var(--db-text);
7274
+ }
7275
+
7276
+ .db-ai-step-number {
7277
+ display: inline-grid;
7278
+ place-items: center;
7279
+ width: 18px;
7280
+ height: 18px;
7281
+ flex: 0 0 18px;
7282
+ box-sizing: border-box;
7283
+ border: 1px solid var(--db-border-strong);
7284
+ border-radius: 50%;
7285
+ font-size: 11px;
7286
+ }
7287
+
7288
+ [aria-current='step'] > .db-ai-step-number {
7289
+ border-color: var(--db-accent);
7290
+ background: var(--db-accent);
7291
+ color: var(--db-text-on-accent);
7292
+ }
7293
+
7294
+ .db-ai-illustrate-intro {
7295
+ margin: 10px 14px 0;
7296
+ color: var(--db-text-muted);
7297
+ font-size: 12px;
7298
+ }
7299
+
7300
+ .db-ai-illustrate-bar {
7301
+ display: flex;
7302
+ flex-wrap: wrap;
7303
+ align-items: center;
7304
+ gap: 8px;
7305
+ padding: 10px 14px 0;
7306
+ }
7307
+
7308
+ .db-ai-illustrate-progress {
7309
+ display: inline-flex;
7310
+ align-items: center;
7311
+ flex-wrap: wrap;
7312
+ gap: 8px;
7313
+ min-width: 0;
7314
+ min-height: var(--db-target-min);
7315
+ color: var(--db-text-secondary);
7316
+ font: 600 12px/1.2 var(--db-ui-font);
7317
+ }
7318
+
7319
+ .db-ai-illustrate-progress progress {
7320
+ width: 90px;
7321
+ height: 6px;
7322
+ accent-color: var(--db-accent);
7323
+ }
7324
+
7325
+ .db-ai-review-panel button.db-ai-illustrate-primary {
7326
+ border-color: var(--db-accent);
7327
+ background: var(--db-accent);
7328
+ color: var(--db-text-on-accent);
7329
+ }
7330
+
6859
7331
  .db-ai-illustrate-footer {
6860
7332
  position: sticky;
6861
7333
  bottom: 0;
6862
- padding-bottom: 10px;
6863
- background: var(--db-bg);
7334
+ display: flex;
7335
+ flex-wrap: wrap;
7336
+ align-items: center;
7337
+ justify-content: flex-end;
7338
+ gap: 8px;
7339
+ padding: 10px 14px;
7340
+ border-top: 1px solid var(--db-border);
7341
+ background: var(--db-bg-raised);
7342
+ }
7343
+
7344
+ .db-ai-idea-card .db-ai-field {
7345
+ gap: 4px;
7346
+ margin-bottom: 10px;
7347
+ font-size: 12px;
7348
+ }
7349
+
7350
+ .db-ai-idea-card .db-ai-field textarea {
7351
+ min-height: 64px;
7352
+ }
7353
+
7354
+ .db-ai-idea-card input,
7355
+ .db-ai-idea-card select {
7356
+ box-sizing: border-box;
7357
+ width: 100%;
7358
+ min-width: 0;
7359
+ min-height: var(--db-target-min);
7360
+ padding: 5px 8px;
7361
+ border: 1px solid var(--db-input-border);
7362
+ border-radius: 5px;
7363
+ background: var(--db-bg-subtle);
7364
+ color: var(--db-text);
7365
+ font: 400 var(--db-input-font-size) / 1.3 var(--db-ui-font);
7366
+ }
7367
+
7368
+ .db-ai-idea-card input:focus-visible,
7369
+ .db-ai-idea-card select:focus-visible {
7370
+ border-color: var(--db-accent);
7371
+ outline: none;
7372
+ box-shadow: 0 0 0 1px var(--db-accent);
7373
+ }
7374
+
7375
+ .db-ai-idea-card :is(input, select, textarea):disabled {
7376
+ opacity: 0.6;
7377
+ }
7378
+
7379
+ .db-ai-idea-row {
7380
+ display: grid;
7381
+ grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
7382
+ gap: 8px;
7383
+ }
7384
+
7385
+ .db-ai-idea-state {
7386
+ margin-left: auto;
7387
+ }
7388
+
7389
+ .db-ai-idea-actions {
7390
+ display: flex;
7391
+ justify-content: flex-end;
6864
7392
  }
6865
7393
 
6866
7394
  .db-ai-field--inline {
@@ -6925,6 +7453,13 @@ html:has(.db-shell) :is(.squisq-view-menu-checkbox, .squisq-view-menu-radio) {
6925
7453
  margin-bottom: 14px;
6926
7454
  }
6927
7455
 
7456
+ /* Public issue, private email, Cancel: stacked full width, since the
7457
+ destinations need their whole labels to say where the report goes. */
7458
+ .db-ai-report-dialog .db-ai-report-footer {
7459
+ flex-direction: column;
7460
+ align-items: stretch;
7461
+ }
7462
+
6928
7463
  /* Study aids: Summarize document, Create quiz, Create flashcards. */
6929
7464
  .db-ai-study-dialog .db-dialog-header,
6930
7465
  .db-ai-study-dialog .db-dialog-footer {
@@ -7691,6 +8226,7 @@ button.db-git-file-row:hover {
7691
8226
  @media (prefers-reduced-motion: reduce) {
7692
8227
  .db-workspace-picker-caret,
7693
8228
  .db-app-menu-caret,
8229
+ .db-knowledge-item-caret,
7694
8230
  .db-ws-settings-btn,
7695
8231
  .db-shell-sidebar-resizer,
7696
8232
  .db-sidebar-collapse-preview,