@brightspot/ui 6.2.0 → 6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/action-bar/ActionBar.d.ts +1 -0
- package/dist/components/action-bar/ActionBar.d.ts.map +1 -1
- package/dist/components/action-bar/ActionBar.js +6 -2
- package/dist/components/action-bar/ActionBar.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts +1 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +6 -2
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarGroup.d.ts +1 -0
- package/dist/components/avatar/AvatarGroup.d.ts.map +1 -1
- package/dist/components/avatar/AvatarGroup.js +6 -2
- package/dist/components/avatar/AvatarGroup.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +1 -0
- package/dist/components/badge/Badge.d.ts.map +1 -1
- package/dist/components/badge/Badge.js +6 -2
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/button-group/ButtonGroup.d.ts +1 -0
- package/dist/components/button-group/ButtonGroup.d.ts.map +1 -1
- package/dist/components/button-group/ButtonGroup.js +6 -2
- package/dist/components/button-group/ButtonGroup.js.map +1 -1
- package/dist/components/card/Card.d.ts.map +1 -1
- package/dist/components/card/Card.js +4 -2
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.js +4 -2
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/circular-progress/CircularProgress.d.ts +2 -0
- package/dist/components/circular-progress/CircularProgress.d.ts.map +1 -1
- package/dist/components/circular-progress/CircularProgress.js +9 -3
- package/dist/components/circular-progress/CircularProgress.js.map +1 -1
- package/dist/components/icon/Icon.d.ts +1 -0
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +6 -2
- package/dist/components/icon/Icon.js.map +1 -1
- package/dist/components/linear-progress/LinearProgress.d.ts +2 -0
- package/dist/components/linear-progress/LinearProgress.d.ts.map +1 -1
- package/dist/components/linear-progress/LinearProgress.js +9 -3
- package/dist/components/linear-progress/LinearProgress.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +1 -0
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +6 -2
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/popover/Popover.d.ts +1 -0
- package/dist/components/popover/Popover.d.ts.map +1 -1
- package/dist/components/popover/Popover.js +6 -2
- package/dist/components/popover/Popover.js.map +1 -1
- package/dist/components/switch/Switch.d.ts.map +1 -1
- package/dist/components/switch/Switch.js +4 -2
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/tabs/Tab.d.ts +1 -0
- package/dist/components/tabs/Tab.d.ts.map +1 -1
- package/dist/components/tabs/Tab.js +6 -2
- package/dist/components/tabs/Tab.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +1 -0
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +6 -2
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/custom-elements.json +90 -0
- package/dist/storybook/assets/{ActionBar.stories-DgLrwInB.js → ActionBar.stories-CgkvHW27.js} +1 -1
- package/dist/storybook/assets/{ActionItem.stories-C-SkWFxc.js → ActionItem.stories-CyxwhrvR.js} +1 -1
- package/dist/storybook/assets/{AiSparkle.stories-BdwXJ4C1.js → AiSparkle.stories-h2LSw10e.js} +1 -1
- package/dist/storybook/assets/{Avatar.stories-BQrt8GRW.js → Avatar.stories-CQ3eFTbI.js} +1 -1
- package/dist/storybook/assets/{AvatarGroup.stories-BdmsYcGc.js → AvatarGroup.stories-CIyZOd7R.js} +1 -1
- package/dist/storybook/assets/{Badge.stories-mu4nbODQ.js → Badge.stories-CwPkYUuY.js} +1 -1
- package/dist/storybook/assets/{Banner.stories-DMP2OXL9.js → Banner.stories-B7AhWymc.js} +1 -1
- package/dist/storybook/assets/{Button-xZDsWWL_.js → Button-fLz-Mqji.js} +1 -1
- package/dist/storybook/assets/{Button.stories-C4jM9Bim.js → Button.stories-Bj_cB5Tr.js} +1 -1
- package/dist/storybook/assets/{ButtonGroup.stories-zscaMCvE.js → ButtonGroup.stories-DMAr8q3A.js} +1 -1
- package/dist/storybook/assets/{Card.stories-CsV1xMbI.js → Card.stories-CouVkvTr.js} +1 -1
- package/dist/storybook/assets/{Celebrate.stories-D2mVlrqj.js → Celebrate.stories-Cai7aITx.js} +1 -1
- package/dist/storybook/assets/{Checkbox.stories-CAOPfsPn.js → Checkbox.stories-BTzuHih7.js} +1 -1
- package/dist/storybook/assets/{CircularProgress.stories-Dj44Wy1Q.js → CircularProgress.stories-DwiMDCrW.js} +1 -1
- package/dist/storybook/assets/{ClipboardMixin.stories-sMr91AkY.js → ClipboardMixin.stories-BTzKKsAG.js} +1 -1
- package/dist/storybook/assets/{Color-6BZIO3FS-Di40DCa8.js → Color-6BZIO3FS-z5x4axZs.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-nUklULEf.js → Colors.stories-LjQN3QJP.js} +1 -1
- package/dist/storybook/assets/{CombinedEffects.stories-DHteudNU.js → CombinedEffects.stories-CcWkxBPD.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin-DC5hoSCf.js → ComponentStatesMixin-6JmalSeW.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-DyZXrUfS.js → ComponentStatesMixin.stories-wr7wl9D5.js} +1 -1
- package/dist/storybook/assets/{CopyToClipboard.stories-DKfUIVB6.js → CopyToClipboard.stories-CBL_GlzJ.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-C6iPHMJ-.js → Debounce.stories-DDW0347e.js} +1 -1
- package/dist/storybook/assets/{DocsRenderer-LL677BLK-BC-DluPS.js → DocsRenderer-LL677BLK-LHrG4h5r.js} +3 -3
- package/dist/storybook/assets/{Dropdown.stories-DY3LbbOm.js → Dropdown.stories-BixGKdVC.js} +1 -1
- package/dist/storybook/assets/{EmptyState.stories-Ec87tfLY.js → EmptyState.stories-DYCizkT5.js} +1 -1
- package/dist/storybook/assets/{EscaAvatar.stories-ZaaMKZqz.js → EscaAvatar.stories-IV0FybUu.js} +1 -1
- package/dist/storybook/assets/{Events.stories-DaTVivNG.js → Events.stories-9X1B5LFU.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-B6jRenfp.js → Heading.stories-BWFKyeYP.js} +1 -1
- package/dist/storybook/assets/{HueRipple.stories-CnDz87pe.js → HueRipple.stories-KJySD4yc.js} +1 -1
- package/dist/storybook/assets/{Icon.stories-DH0mXw3h.js → Icon.stories-n4-_RBwe.js} +1 -1
- package/dist/storybook/assets/{IconButton.stories-CNtEEf3-.js → IconButton.stories--cc9Az0q.js} +1 -1
- package/dist/storybook/assets/{LinearProgress.stories-B7q0qeGc.js → LinearProgress.stories-CXISMQqr.js} +1 -1
- package/dist/storybook/assets/{Message.stories--ArrB33R.js → Message.stories-DCgZ9H2r.js} +1 -1
- package/dist/storybook/assets/{OnFindMixin.stories-Bu3Et43N.js → OnFindMixin.stories-DwYEl4q4.js} +1 -1
- package/dist/storybook/assets/{Pagination.stories-DL3nv05u.js → Pagination.stories-B8AqV3jI.js} +1 -1
- package/dist/storybook/assets/{Popover.stories-C1xiMRm0.js → Popover.stories-Dj8TUysk.js} +1 -1
- package/dist/storybook/assets/{ReadyMixin-CkFGSiXW.js → ReadyMixin-B1y8EBLz.js} +1 -1
- package/dist/storybook/assets/{RovingTabindexMixin.stories-DxABagoS.js → RovingTabindexMixin.stories-BTYV78Cy.js} +1 -1
- package/dist/storybook/assets/{Rtc.stories-DICg80iT.js → Rtc.stories-CiQ4OgEf.js} +1 -1
- package/dist/storybook/assets/{ScrollShadow.stories-YSVPDcG9.js → ScrollShadow.stories-BRpbl9WU.js} +1 -1
- package/dist/storybook/assets/{Switch.stories-UQoRYdvu.js → Switch.stories-Dfw56-LB.js} +1 -1
- package/dist/storybook/assets/{Tab.stories-aO-j5FR7.js → Tab.stories-DCIPSPwr.js} +1 -1
- package/dist/storybook/assets/{Tabs.stories-Vh5fj_rb.js → Tabs.stories-DrT2D2oW.js} +1 -1
- package/dist/storybook/assets/{Throttle.stories-DqQiG8mr.js → Throttle.stories-B5Y8K9s3.js} +1 -1
- package/dist/storybook/assets/{Tooltip.stories-DykL06JB.js → Tooltip.stories-CUjm8cuW.js} +1 -1
- package/dist/storybook/assets/{Upload.stories-BunAEUlO.js → Upload.stories-Dt7V8qIe.js} +1 -1
- package/dist/storybook/assets/{UploadItem.stories-CNR2IKsl.js → UploadItem.stories-DSXxGs8M.js} +1 -1
- package/dist/storybook/assets/{Welcome.stories-DuKEOEsw.js → Welcome.stories-BDFQb8oF.js} +1 -1
- package/dist/storybook/assets/{Widget.stories-B5WKvF2m.js → Widget.stories-CQnE1dST.js} +1 -1
- package/dist/storybook/assets/{WithTooltip-65CFNBJE-KIfM6hV3.js → WithTooltip-65CFNBJE-D1OYJPzp.js} +1 -1
- package/dist/storybook/assets/{blocks-BJtylb2_.js → blocks-Z0quNc1U.js} +5 -5
- package/dist/storybook/assets/{formatter-EIJCOSYU-DyJPXrAY.js → formatter-EIJCOSYU-DwWzDvJC.js} +1 -1
- package/dist/storybook/assets/if-defined-Dl8MuiCE.js +1 -0
- package/dist/storybook/assets/{iframe-BoW1X7a_.js → iframe-WTEmYHJj.js} +4 -4
- package/dist/storybook/assets/{index-9YgpSjWr.js → index-BvPCa7_B.js} +1 -1
- package/dist/storybook/assets/{onFind-BWxYoVUv.js → onFind-CqIRRMTv.js} +1 -1
- package/dist/storybook/assets/{onFind.stories-30rdWtPx.js → onFind.stories-C4PPQTaQ.js} +1 -1
- package/dist/storybook/assets/{onRemove.stories-B7qKCwA-.js → onRemove.stories-BGFCh6DN.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-_lsloFGV.js → onVisible.stories-4ni7syfJ.js} +1 -1
- package/dist/storybook/assets/{style-map-D7rS_uYZ.js → style-map-BhvFBtuB.js} +1 -1
- package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-mLC5--p6.js → syntaxhighlighter-ED5Y7EFY-D_cJwnoJ.js} +1 -1
- package/dist/storybook/iframe.html +1 -1
- package/dist/storybook/project.json +1 -1
- package/package.json +4 -1
- package/src/legacy/tool-ui/src/CodeMirror.css +9 -9
- package/src/legacy/tool-ui/src/ComboInput.css +4 -0
- package/src/legacy/tool-ui/src/Compat.css +5 -0
- package/src/legacy/tool-ui/src/ContentEdit.css +2 -1
- package/src/legacy/tool-ui/src/ContentInputGroup.css +4 -6
- package/src/legacy/tool-ui/src/Dialog.css +83 -26
- package/src/legacy/tool-ui/src/FileInput.css +1 -1
- package/src/legacy/tool-ui/src/Global.d.ts +2 -0
- package/src/legacy/tool-ui/src/ImageEditor.css +1 -1
- package/src/legacy/tool-ui/src/MenuView.css +10 -5
- package/src/legacy/tool-ui/src/Page.css +29 -6
- package/src/legacy/tool-ui/src/Popup.css +18 -1
- package/src/legacy/tool-ui/src/Revisions.css +6 -2
- package/src/legacy/tool-ui/src/SearchWidgetAdvanced.css +4 -13
- package/src/legacy/tool-ui/src/dialog/index.ts +10 -18
- package/src/legacy/tool-ui/src/main/webapp/dist/5598.315afb3723a27880f87c.js +2 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/6086.82620005e5673191c44f.js +1 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.fffd76fefb194ae6889b.js → RTEProseMirror.c51a5594e0f150018284.js} +7 -7
- package/src/legacy/tool-ui/src/main/webapp/dist/v4.05d6a78ae435b930dd53.css +3 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/{v4.59ef78c7444a26d2fc6e.js → v4.d6a6409510307d938253.js} +4 -4
- package/src/legacy/tool-ui/src/main/webapp/dist/{v5.81bcf80e29f5d0b03f40.js → v5.ccf9a17a04d333b8bbce.js} +4 -4
- package/src/legacy/tool-ui/src/main/webapp/dist/v5.e1e83f5e0cd06ad0280c.css +5 -0
- package/src/legacy/tool-ui/src/main/webapp/v4/ComboInput.less +7 -0
- package/src/legacy/tool-ui/src/theme/Theme.ts +28 -0
- package/src/legacy/tool-ui/src/v5.ts +14 -7
- package/dist/storybook/assets/if-defined-DELMnuB4.js +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/011a678e3efe41981754.png +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/194137260531ee29a5f2.svg +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/1e8408af1a34bdf61457.png +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/44b38a404dec4643c46b.png +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/4a4ee777ddc0d4cedee4.png +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/5598.d84773ca53126661bdca.js +0 -2
- package/src/legacy/tool-ui/src/main/webapp/dist/6086.7ca02b827506f29db590.js +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/c6e9c007f41bd4d26c20.png +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/v4.b1e9f6ac0449331711fc.css +0 -3
- package/src/legacy/tool-ui/src/main/webapp/dist/v5.b8a1f40b189e4537117d.css +0 -5
- /package/src/legacy/tool-ui/src/main/webapp/dist/{5598.d84773ca53126661bdca.js.LICENSE.txt → 5598.315afb3723a27880f87c.js.LICENSE.txt} +0 -0
- /package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.fffd76fefb194ae6889b.js.LICENSE.txt → RTEProseMirror.c51a5594e0f150018284.js.LICENSE.txt} +0 -0
- /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.59ef78c7444a26d2fc6e.js.LICENSE.txt → v4.d6a6409510307d938253.js.LICENSE.txt} +0 -0
- /package/src/legacy/tool-ui/src/main/webapp/dist/{v5.81bcf80e29f5d0b03f40.js.LICENSE.txt → v5.ccf9a17a04d333b8bbce.js.LICENSE.txt} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.CodeMirror {
|
|
2
|
-
@apply h-auto rounded-lg border border-gray-300 bg-white !text-gray-900 transition hover
|
|
2
|
+
@apply h-auto rounded-lg border border-gray-300 !bg-white !text-gray-900 transition hover:!bg-gray-100;
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
Bound :has() invalidation. CM mutates inner DOM per keystroke; without
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
.CodeMirror-scrollbar-filler,
|
|
18
18
|
.CodeMirror-gutter-filler {
|
|
19
|
-
@apply bg-white;
|
|
19
|
+
@apply !bg-white;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.CodeMirror-gutters {
|
|
23
|
-
@apply border-e-gray-300 bg-gray-50;
|
|
23
|
+
@apply !border-e-gray-300 !bg-gray-50;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.CodeMirror-linenumber {
|
|
@@ -28,23 +28,23 @@
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.CodeMirror-guttermarker {
|
|
31
|
-
@apply text-gray-900;
|
|
31
|
+
@apply !text-gray-900;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.CodeMirror-guttermarker-subtle {
|
|
35
|
-
@apply text-gray-500;
|
|
35
|
+
@apply !text-gray-500;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
.CodeMirror-cursor {
|
|
39
|
-
@apply border-s-[2px] border-s-primary-600;
|
|
39
|
+
@apply !border-s-[2px] !border-s-primary-600;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
.CodeMirror div.CodeMirror-secondarycursor {
|
|
43
|
-
@apply border-s-gray-200;
|
|
43
|
+
@apply !border-s-gray-200;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.cm-fat-cursor .CodeMirror-cursor {
|
|
47
|
-
@apply bg-success-200;
|
|
47
|
+
@apply !bg-success-200;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.cm-fat-cursor-mark {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
.CodeMirror-ruler {
|
|
59
|
-
@apply border-s-gray-200;
|
|
59
|
+
@apply !border-s-gray-200;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
.cm-s-default .cm-header {
|
|
@@ -385,6 +385,11 @@ suggests. Example use case "pin" icon button in live blog posts */
|
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
+
/* Collapse edit-top-html container when empty so it doesn't reserve space above tabs. */
|
|
389
|
+
.bsp-edit-top-html {
|
|
390
|
+
@apply empty:hidden;
|
|
391
|
+
}
|
|
392
|
+
|
|
388
393
|
/* v4 things which shouldn't appear in v5 */
|
|
389
394
|
.v4-only {
|
|
390
395
|
@apply hidden;
|
|
@@ -367,8 +367,9 @@
|
|
|
367
367
|
@apply !blokk;
|
|
368
368
|
}
|
|
369
369
|
|
|
370
|
+
/* Hug the device width (plus borders) when it fits so the iframe renders unscaled. */
|
|
370
371
|
& .PreviewFrame-typeDisplay {
|
|
371
|
-
@apply [grid-area:preview] [grid-column:container-start/container-end];
|
|
372
|
+
@apply w-[min(100%,calc(var(--ContentEdit-previewWidth,100%)_+_2px))] justify-self-center [grid-area:preview] [grid-column:container-start/container-end];
|
|
372
373
|
}
|
|
373
374
|
|
|
374
375
|
& .PreviewFrame-typeControls .ComboInput:not(:has(~ .ComboInput)) {
|
|
@@ -171,12 +171,6 @@
|
|
|
171
171
|
@apply w-full;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
/* min() replaces a @[312px]/CIG gate. Pixel-identical only while .CIG-row keeps
|
|
175
|
-
contain:inline-size - otherwise the 100% inflates intrinsic widths. */
|
|
176
|
-
> .CIG-small.inputSmall:not(.is-grid) {
|
|
177
|
-
@apply min-w-[min(312px,100%)] max-w-[540px] basis-1/2;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
174
|
/* Inside a layout with columns, unset the min width to prevent fields from
|
|
181
175
|
overlapping on smaller viewports. Set flex basis back to full so that the fields are not
|
|
182
176
|
really small here. These will still get the max width of 540px. */
|
|
@@ -190,6 +184,10 @@
|
|
|
190
184
|
}
|
|
191
185
|
}
|
|
192
186
|
|
|
187
|
+
.CIG .CIG-row:not([data-type="file"]) > .CIG-small.inputSmall:not(.is-grid) {
|
|
188
|
+
@apply min-w-[min(312px,100%)] max-w-[540px] basis-1/2;
|
|
189
|
+
}
|
|
190
|
+
|
|
193
191
|
.CIG-large,
|
|
194
192
|
.CIG-small {
|
|
195
193
|
--CIG-space: 0.375rem;
|
|
@@ -194,7 +194,13 @@ dialog:modal > .QueryField-frame > .Popup:where(:not([popover])) {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
/* Fix the ActionBar to the bottom of the modal.
|
|
197
|
+
/* Fix the ActionBar to the bottom of the modal.
|
|
198
|
+
One layout for every popup body: the frame scrolls, the wrappers between
|
|
199
|
+
it and the ActionBar (has-ActionBarContent) stretch as plain columns, and
|
|
200
|
+
the bar pins to the bottom with mt-auto while staying visible during
|
|
201
|
+
scroll (sticky). This works for any child count or nesting depth, unlike
|
|
202
|
+
the row subgrid it replaces. SearchFields, SearchWidgetAdvanced, and
|
|
203
|
+
PostPublish own their internal layouts and only join the outer column. */
|
|
198
204
|
&:where(
|
|
199
205
|
:not(
|
|
200
206
|
[name='toolUserTfa'],
|
|
@@ -204,38 +210,79 @@ dialog:modal > .QueryField-frame > .Popup:where(:not([popover])) {
|
|
|
204
210
|
)
|
|
205
211
|
)
|
|
206
212
|
.Popup-content:where(.has-ActionBar:not(.has-AdminNav, .is-editing)) {
|
|
207
|
-
@apply grid-rows-[[title]_max-content_[main]
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
213
|
+
@apply grid-rows-[[title]_max-content_[main]_minmax(0,1fr)];
|
|
214
|
+
|
|
215
|
+
.has-ActionBarContent:not(
|
|
216
|
+
.SearchFields,
|
|
217
|
+
.SearchFields *,
|
|
218
|
+
.SearchWidgetAdvanced,
|
|
219
|
+
.SearchWidgetAdvanced *,
|
|
220
|
+
.PostPublish-form,
|
|
221
|
+
.PostPublish-form *
|
|
222
|
+
) {
|
|
223
|
+
@apply flex grow flex-col row-[main];
|
|
224
|
+
|
|
225
|
+
/* Body content lines up with the popup inset; wrappers and full-bleed
|
|
226
|
+
elements are exempt. */
|
|
227
|
+
> :not(
|
|
228
|
+
.ActionBar,
|
|
229
|
+
.Message,
|
|
230
|
+
.TabBar,
|
|
231
|
+
.has-ActionBarContent,
|
|
232
|
+
.AIChat-wrapper,
|
|
233
|
+
.DT-wrapper,
|
|
234
|
+
table
|
|
235
|
+
) {
|
|
236
|
+
@apply mx-[--space];
|
|
237
|
+
}
|
|
218
238
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
239
|
+
/* A form that is a sibling of the ActionBar is plain content here;
|
|
240
|
+
without this it keeps the Widget grid's subgrid columns, which
|
|
241
|
+
collapse inside this flex column. */
|
|
242
|
+
> form:not(.has-ActionBarContent) {
|
|
243
|
+
@apply flex flex-col;
|
|
222
244
|
}
|
|
223
245
|
|
|
224
|
-
|
|
225
|
-
|
|
246
|
+
/* Same hazard for a fixedScrollable holding the fields before the bar
|
|
247
|
+
(e.g. the Profile popup): Widget.css turns it into a subgrid when it
|
|
248
|
+
holds a TC/CIG, which orphans inside this flex column and shoves the
|
|
249
|
+
fields into a phantom second column. */
|
|
250
|
+
> .fixedScrollable.before-ActionBar {
|
|
251
|
+
@apply flex flex-col;
|
|
226
252
|
}
|
|
227
253
|
}
|
|
228
254
|
|
|
229
|
-
|
|
230
|
-
|
|
255
|
+
/* Gap between the last content element and the bar. */
|
|
256
|
+
.before-ActionBar {
|
|
257
|
+
@apply mb-6;
|
|
231
258
|
}
|
|
232
259
|
|
|
233
|
-
|
|
234
|
-
|
|
260
|
+
/* Chat log keeps its own scroll pane. */
|
|
261
|
+
.AIChat-wrapper.before-ActionBar {
|
|
262
|
+
@apply grow overflow-y-auto px-[--space];
|
|
235
263
|
}
|
|
236
264
|
|
|
237
265
|
.ActionBar {
|
|
238
|
-
@apply mt-
|
|
266
|
+
@apply mt-auto;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* SearchFields keeps its legacy two-pane grid, with or without tabs
|
|
270
|
+
(Select Fields vs Show/Hide Filters). */
|
|
271
|
+
.SearchFields {
|
|
272
|
+
@apply grid h-full grow grid-rows-[[main]_1fr_max-content_[action-bar]] row-[main];
|
|
273
|
+
|
|
274
|
+
&.has-tabs {
|
|
275
|
+
@apply grid-rows-[auto_[main]_1fr_max-content_[action-bar]];
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
> form.has-ActionBarContent {
|
|
279
|
+
@apply grid grid-rows-[subgrid] row-[main/action-bar];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* Self-managed widgets still fill the body column. */
|
|
284
|
+
:is(.Widget.SearchWidgetAdvanced, .PostPublish-form) {
|
|
285
|
+
@apply grow;
|
|
239
286
|
}
|
|
240
287
|
}
|
|
241
288
|
|
|
@@ -255,6 +302,12 @@ dialog:modal > .QueryField-frame > .Popup:where(:not([popover])) {
|
|
|
255
302
|
.Popup-content .Popup-close {
|
|
256
303
|
@apply first:ms-auto;
|
|
257
304
|
}
|
|
305
|
+
|
|
306
|
+
/* Same when the only element before it is the legacy heading, which is
|
|
307
|
+
always hidden (e.g. objectId-edit popups without a cloned title). */
|
|
308
|
+
.Popup-content > .Popup-heading + .Popup-close {
|
|
309
|
+
@apply ms-auto;
|
|
310
|
+
}
|
|
258
311
|
}
|
|
259
312
|
|
|
260
313
|
/* Content Edit workflow popup — v4 lifecycle does not always remove [open]
|
|
@@ -400,9 +453,10 @@ dialog dialog > .PrePublishPopup {
|
|
|
400
453
|
--popup-w: initial;
|
|
401
454
|
}
|
|
402
455
|
|
|
403
|
-
/* Post Publish Actions modal
|
|
456
|
+
/* Post Publish Actions modal. The named columns mirror the Widget grid,
|
|
457
|
+
which no longer reaches here via subgrid. */
|
|
404
458
|
dialog:modal .PostPublish-form > div {
|
|
405
|
-
@apply h-full;
|
|
459
|
+
@apply grid h-full [grid-template-columns:[fullbleed-start]_var(--space)_[content-start]_1fr_auto_[content-end]_var(--space)_[fullbleed-end]];
|
|
406
460
|
|
|
407
461
|
> * {
|
|
408
462
|
@apply col-[content-start/content-end];
|
|
@@ -416,8 +470,11 @@ dialog:modal .PostPublish-form > div {
|
|
|
416
470
|
@apply relative mb-12 mt-1.5 after:absolute after:-bottom-6 after:-left-[var(--space)] after:-right-[var(--space)] after:h-px after:bg-gray-200;
|
|
417
471
|
}
|
|
418
472
|
|
|
419
|
-
|
|
420
|
-
|
|
473
|
+
/* Content area(s) before the ActionBar scroll. The ActionBar is always the
|
|
474
|
+
last child, so div:not(.ActionBar) matches the content divs; .before-ActionBar
|
|
475
|
+
(stamped by dialog/index.ts) covers a non-div immediately before the bar. */
|
|
476
|
+
> div:not(.ActionBar),
|
|
477
|
+
> .before-ActionBar {
|
|
421
478
|
@apply relative col-[fullbleed-start/fullbleed-end] max-h-full overflow-y-auto px-[--space] pb-6;
|
|
422
479
|
}
|
|
423
480
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.FileInput {
|
|
2
|
-
@apply relative flex cursor-pointer flex-col items-center gap-3 rounded-lg border border-gray-300 px-6 py-4 before:btu-icon before:btu-icon-upload before:rounded-full before:bg-gray-100 before:p-2 before:text-primary-700 after:text-sm after:font-semibold after:text-primary-700 after:[content:attr(data-choose)] hover:border-gray-300 hover:bg-gray-100 hover:before:bg-gray-200 hover:before:text-gray-700 hover:after:underline hover:after:[content:attr(data-choose)];
|
|
2
|
+
@apply relative flex max-w-[540px] cursor-pointer flex-col items-center gap-3 rounded-lg border border-gray-300 px-6 py-4 before:btu-icon before:btu-icon-upload before:rounded-full before:bg-gray-100 before:p-2 before:text-primary-700 after:text-sm after:font-semibold after:text-primary-700 after:[content:attr(data-choose)] hover:border-gray-300 hover:bg-gray-100 hover:before:bg-gray-200 hover:before:text-gray-700 hover:after:underline hover:after:[content:attr(data-choose)];
|
|
3
3
|
|
|
4
4
|
input[type='file'] {
|
|
5
5
|
@apply absolute bottom-0 left-0 right-0 top-0 cursor-pointer border-0 p-0 opacity-0;
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
.is-imagePreview {
|
|
80
80
|
--icon-button-w: 37px;
|
|
81
81
|
|
|
82
|
-
@apply relative
|
|
82
|
+
@apply relative w-fit grid items-center overflow-hidden [grid-template-areas:'preview_preview_preview''groups_open_edit''message_message_message'] [grid-template-columns:calc(100%-var(--icon-button-w)*2)_auto_auto] before:relative before:h-full before:rounded-t-lg before:border before:border-b-0 before:border-gray-300 before:[grid-area:preview];
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
.ImageEditor-editToggle,
|
|
@@ -44,12 +44,17 @@
|
|
|
44
44
|
|
|
45
45
|
/* SUBMENUS */
|
|
46
46
|
.rte2-toolbar-submenu-2 {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
/* Only these render an icon (or a bare chevron) instead of their name, so only these
|
|
48
|
+
can afford to collapse the label. Every other submenu name reaches the DOM verbatim
|
|
49
|
+
from @RichTextElement.Tag(menu = ...) and has no icon, so hiding it leaves nothing.
|
|
50
|
+
:is() rather than :where() to keep the specificity the sibling rule below assumes. */
|
|
51
|
+
&:is(
|
|
52
|
+
[data-rte-toolbar-submenu='Style'],
|
|
53
|
+
[data-rte-toolbar-submenu='Align'],
|
|
54
|
+
[data-rte-toolbar-submenu='Enhancements']
|
|
51
55
|
)
|
|
52
|
-
> button
|
|
56
|
+
> button,
|
|
57
|
+
&.rte-overflow-btn > button {
|
|
53
58
|
@apply btu-button-text-hidden;
|
|
54
59
|
}
|
|
55
60
|
|
|
@@ -161,11 +161,12 @@
|
|
|
161
161
|
|
|
162
162
|
> a {
|
|
163
163
|
@apply grid auto-cols-[0px] grid-flow-col grid-cols-[max-content] items-center justify-center rounded-lg text-[0] @[80px]:grid-cols-[max-content_minmax(0,1fr)_max-content] max-md:grow;
|
|
164
|
+
}
|
|
164
165
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
/* Displays site name when no site switcher is present; at .Page-title level (not nested under
|
|
167
|
+
> a) because v5.ts moves .toolUserSite into .Page-title as a sibling of > a */
|
|
168
|
+
.Page-siteName {
|
|
169
|
+
@apply hidden @[80px]:col-[2/3] @[80px]:line-clamp-1 @[80px]:blokk @[80px]:truncate @[80px]:px-2 @[80px]:text-sm;
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
> a:hover a[target='siteSwitch'] {
|
|
@@ -232,8 +233,30 @@
|
|
|
232
233
|
}
|
|
233
234
|
|
|
234
235
|
.Page-header {
|
|
235
|
-
@apply flex w-full items-center justify-end overflow-hidden border-b
|
|
236
|
+
@apply flex w-full items-center justify-end overflow-hidden border-b p-4 text-[var(--Page-header-fg,theme(colors.gray.700))] max-md:gap-4 md:h-[var(--page-header-h)] md:flex-nowrap md:@container/page-header;
|
|
236
237
|
grid-area: header;
|
|
238
|
+
/* Defaults to the original `bg-white` token; overridden by the V5 custom header color. */
|
|
239
|
+
background-color: var(--Page-header-bg, var(--btu-theme-white));
|
|
240
|
+
/*
|
|
241
|
+
srgb-linear (not oklch) so r/g/b are linear-light and 0.2126r+0.7152g+0.0722b is true WCAG
|
|
242
|
+
luminance — the black/white flip is then correct at any saturation. 0.198 is the white↔#171717
|
|
243
|
+
(≈linear 0.0086) crossover; *100000 makes the clamp a hard step. Unset --Page-header-bg makes
|
|
244
|
+
this invalid on purpose, so .Page-header falls back to gray-700. Needs relative-color syntax:
|
|
245
|
+
Chrome 119 / Safari 16.4 / Firefox 128.
|
|
246
|
+
*/
|
|
247
|
+
--Page-header-fg: color(from var(--Page-header-bg) srgb-linear
|
|
248
|
+
clamp(0.0086, (0.198 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1)
|
|
249
|
+
clamp(0.0086, (0.198 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1)
|
|
250
|
+
clamp(0.0086, (0.198 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1));
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/*
|
|
254
|
+
currentColor so the icons follow the header's derived fg (gray-700 by default). Kept a low-
|
|
255
|
+
specificity element selector on purpose: the button component's per-state hover/pressed tokens
|
|
256
|
+
must still win over this rest-state override.
|
|
257
|
+
*/
|
|
258
|
+
.Page-header button {
|
|
259
|
+
--button-fill-none-text-color: currentColor;
|
|
237
260
|
}
|
|
238
261
|
|
|
239
262
|
.Page-header > * {
|
|
@@ -901,7 +924,7 @@
|
|
|
901
924
|
}
|
|
902
925
|
|
|
903
926
|
.Page-create .ComboInput-label {
|
|
904
|
-
--button-border-radius:
|
|
927
|
+
--button-border-radius: .5rem;
|
|
905
928
|
@apply btu-button btu-button-text-hidden btu-button-fill-none btu-button-gray before:btu-icon before:btu-icon-plus;
|
|
906
929
|
}
|
|
907
930
|
|
|
@@ -335,10 +335,27 @@
|
|
|
335
335
|
}
|
|
336
336
|
|
|
337
337
|
.Popup[name^='conversation-'],
|
|
338
|
-
.Popup[name='toolUserSaveSearch']
|
|
338
|
+
.Popup[name='toolUserSaveSearch'],
|
|
339
|
+
.Popup[name='contentReportingStatus'],
|
|
340
|
+
.Popup.is-contentReportingStatus {
|
|
339
341
|
@apply [--popup-h:auto];
|
|
340
342
|
}
|
|
341
343
|
|
|
344
|
+
/* Report status download bar and form fields sit directly in the frame
|
|
345
|
+
(outside a Widget grid), so they need their own inset. The is-* class covers
|
|
346
|
+
the same page opened through the Past Report Results view popup, which uses
|
|
347
|
+
a generic objectId-edit frame (marked by ContentReporting.js). */
|
|
348
|
+
.Popup[name='contentReportingStatus'] .frame,
|
|
349
|
+
.Popup.is-contentReportingStatus .frame {
|
|
350
|
+
> .ContentReporting-status {
|
|
351
|
+
@apply pt-6;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
> .CIG {
|
|
355
|
+
@apply px-6 pb-6;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
342
359
|
/* Available schedules popup */
|
|
343
360
|
.frame[name='scheduleList'] {
|
|
344
361
|
ul {
|
|
@@ -239,11 +239,15 @@
|
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
.Revisions-workflowTransition .Revisions-userLabel {
|
|
242
|
-
@apply
|
|
242
|
+
@apply inline;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.Revisions-workflowTransition .Revisions-userLabel::before {
|
|
246
|
+
@apply content-['_'];
|
|
243
247
|
}
|
|
244
248
|
|
|
245
249
|
.Revisions-workflowTransition .Revisions-userLabel > span {
|
|
246
|
-
@apply me-0.5
|
|
250
|
+
@apply me-0.5;
|
|
247
251
|
}
|
|
248
252
|
|
|
249
253
|
.Revisions-workflowComment {
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Dialog.css assigns grid-template-rows: subgrid to all .has-ActionBarContent elements
|
|
3
|
-
* via a deeply-nested selector at specificity (0,4,1). The Advanced Query Builder form
|
|
4
|
-
* needs its own 4-row grid (header | scrollpane | 1fr spacer | ActionBar), so !important
|
|
5
|
-
* is the only way to override it from outside Dialog.css.
|
|
6
|
-
*/
|
|
7
|
-
.SearchWidgetAdvanced > form.has-ActionBarContent {
|
|
8
|
-
grid-template-rows: min-content min-content 1fr min-content !important;
|
|
9
|
-
align-items: stretch;
|
|
10
|
-
height: 100%;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
1
|
.SearchWidgetAdvanced > form {
|
|
14
|
-
|
|
2
|
+
/* 4-row grid: header | scrollpane | 1fr spacer | ActionBar. Columns come
|
|
3
|
+
from the Widget grid; Dialog.css exempts this widget from its popup
|
|
4
|
+
column layout so the grid here stays in charge. */
|
|
5
|
+
@apply col-[fullbleed-start/fullbleed-end] grid h-full grid-cols-subgrid items-stretch pt-6 [grid-template-rows:min-content_min-content_1fr_min-content];
|
|
15
6
|
|
|
16
7
|
/* Explicit row assignments for the 4-row grid above.
|
|
17
8
|
* Row 1: header (ComboInput + add button side by side)
|
|
@@ -308,14 +308,23 @@ export default class Dialog extends ComponentStatesMixin(
|
|
|
308
308
|
|
|
309
309
|
popupContent.classList.add('has-ActionBar')
|
|
310
310
|
|
|
311
|
-
// Mark ancestors of ActionBars that have substantive content
|
|
312
311
|
actionBars.forEach((actionBar) => {
|
|
312
|
+
// Mark ancestors of ActionBars that have substantive content
|
|
313
313
|
const hasContent = actionBar.querySelector(
|
|
314
314
|
':scope > *:not(.ImageEditor-closeButton)',
|
|
315
315
|
)
|
|
316
316
|
if (hasContent) {
|
|
317
317
|
this._markAncestors(actionBar, 'has-ActionBarContent', popupContent)
|
|
318
318
|
}
|
|
319
|
+
|
|
320
|
+
// Mark the element immediately before an ActionBar
|
|
321
|
+
const previous = actionBar.previousElementSibling
|
|
322
|
+
const isPrePublishScrollable =
|
|
323
|
+
previous?.classList.contains('fixedScrollable') &&
|
|
324
|
+
previous.closest('.Widget.PrePublish')
|
|
325
|
+
if (previous && !isPrePublishScrollable) {
|
|
326
|
+
previous.classList.add('before-ActionBar')
|
|
327
|
+
}
|
|
319
328
|
})
|
|
320
329
|
|
|
321
330
|
// Mark ancestors of status messages
|
|
@@ -326,23 +335,6 @@ export default class Dialog extends ComponentStatesMixin(
|
|
|
326
335
|
messages.forEach((message) => {
|
|
327
336
|
this._markAncestors(message, 'has-StatusMessage', dialog)
|
|
328
337
|
})
|
|
329
|
-
|
|
330
|
-
// Mark elements that appear immediately before an ActionBar
|
|
331
|
-
const candidates = this._findInScope(
|
|
332
|
-
scope,
|
|
333
|
-
'form, .TC, .AIChat-wrapper, .fixedScrollable',
|
|
334
|
-
)
|
|
335
|
-
candidates.forEach((element) => {
|
|
336
|
-
const isBeforeActionBar =
|
|
337
|
-
element.nextElementSibling?.classList.contains('ActionBar')
|
|
338
|
-
const isPrePublishScrollable =
|
|
339
|
-
element.classList.contains('fixedScrollable') &&
|
|
340
|
-
element.closest('.Widget.PrePublish')
|
|
341
|
-
|
|
342
|
-
if (isBeforeActionBar && !isPrePublishScrollable) {
|
|
343
|
-
element.classList.add('before-ActionBar')
|
|
344
|
-
}
|
|
345
|
-
})
|
|
346
338
|
}
|
|
347
339
|
|
|
348
340
|
private async _handleClose(e?: Event): Promise<void> {
|