@brightspot/ui 6.1.2-pr.275 → 6.3.0
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-Q_bdek_N.js → ActionBar.stories-CgkvHW27.js} +1 -1
- package/dist/storybook/assets/{ActionItem.stories-Ccyot7vj.js → ActionItem.stories-CyxwhrvR.js} +1 -1
- package/dist/storybook/assets/{AiSparkle.stories-Ccapqzcw.js → AiSparkle.stories-h2LSw10e.js} +1 -1
- package/dist/storybook/assets/{Avatar.stories-CPcQWZtG.js → Avatar.stories-CQ3eFTbI.js} +1 -1
- package/dist/storybook/assets/{AvatarGroup.stories-Bws-izJt.js → AvatarGroup.stories-CIyZOd7R.js} +1 -1
- package/dist/storybook/assets/{Badge.stories-xck9Ke5e.js → Badge.stories-CwPkYUuY.js} +1 -1
- package/dist/storybook/assets/{Banner.stories-D3ieqG7F.js → Banner.stories-B7AhWymc.js} +1 -1
- package/dist/storybook/assets/{Button-CQ2ZvHGM.js → Button-fLz-Mqji.js} +1 -1
- package/dist/storybook/assets/{Button.stories-BkGox6QF.js → Button.stories-Bj_cB5Tr.js} +1 -1
- package/dist/storybook/assets/{ButtonGroup.stories-BxDNL7ej.js → ButtonGroup.stories-DMAr8q3A.js} +1 -1
- package/dist/storybook/assets/{Card.stories-BrzAwQwE.js → Card.stories-CouVkvTr.js} +1 -1
- package/dist/storybook/assets/{Celebrate.stories-BFqqbYhp.js → Celebrate.stories-Cai7aITx.js} +1 -1
- package/dist/storybook/assets/{Checkbox.stories-yNb9DH9g.js → Checkbox.stories-BTzuHih7.js} +1 -1
- package/dist/storybook/assets/{CircularProgress.stories--KSA2X4d.js → CircularProgress.stories-DwiMDCrW.js} +1 -1
- package/dist/storybook/assets/{ClipboardMixin.stories-DT0symyW.js → ClipboardMixin.stories-BTzKKsAG.js} +1 -1
- package/dist/storybook/assets/{Color-6BZIO3FS-CEpjJcuB.js → Color-6BZIO3FS-z5x4axZs.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-BEtjS3CS.js → Colors.stories-LjQN3QJP.js} +1 -1
- package/dist/storybook/assets/{CombinedEffects.stories-DZsO6E1c.js → CombinedEffects.stories-CcWkxBPD.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin-C-G6neuB.js → ComponentStatesMixin-6JmalSeW.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-D4B2eXzV.js → ComponentStatesMixin.stories-wr7wl9D5.js} +1 -1
- package/dist/storybook/assets/{CopyToClipboard.stories-C1wxRcNr.js → CopyToClipboard.stories-CBL_GlzJ.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-CEXdiU_4.js → Debounce.stories-DDW0347e.js} +1 -1
- package/dist/storybook/assets/{DocsRenderer-LL677BLK-iD6uwWm0.js → DocsRenderer-LL677BLK-LHrG4h5r.js} +3 -3
- package/dist/storybook/assets/{Dropdown.stories-DzgAKuev.js → Dropdown.stories-BixGKdVC.js} +1 -1
- package/dist/storybook/assets/{EmptyState.stories-8IezRmLe.js → EmptyState.stories-DYCizkT5.js} +1 -1
- package/dist/storybook/assets/{EscaAvatar.stories-CFRMImDC.js → EscaAvatar.stories-IV0FybUu.js} +1 -1
- package/dist/storybook/assets/{Events.stories-wc_WlNNX.js → Events.stories-9X1B5LFU.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-CBopc-Ov.js → Heading.stories-BWFKyeYP.js} +1 -1
- package/dist/storybook/assets/{HueRipple.stories-B1BLaONM.js → HueRipple.stories-KJySD4yc.js} +1 -1
- package/dist/storybook/assets/{Icon.stories-Bul1n2nN.js → Icon.stories-n4-_RBwe.js} +1 -1
- package/dist/storybook/assets/{IconButton.stories-DDCBKBqw.js → IconButton.stories--cc9Az0q.js} +1 -1
- package/dist/storybook/assets/{LinearProgress.stories-DWroemrV.js → LinearProgress.stories-CXISMQqr.js} +1 -1
- package/dist/storybook/assets/{Message.stories-CfWo8uqR.js → Message.stories-DCgZ9H2r.js} +1 -1
- package/dist/storybook/assets/{OnFindMixin.stories-DRr67PU5.js → OnFindMixin.stories-DwYEl4q4.js} +1 -1
- package/dist/storybook/assets/{Pagination.stories-CJ0dmE6y.js → Pagination.stories-B8AqV3jI.js} +1 -1
- package/dist/storybook/assets/{Popover.stories-CFFe2utX.js → Popover.stories-Dj8TUysk.js} +1 -1
- package/dist/storybook/assets/{ReadyMixin-euHV5BrF.js → ReadyMixin-B1y8EBLz.js} +1 -1
- package/dist/storybook/assets/{RovingTabindexMixin.stories-CcKn8eYu.js → RovingTabindexMixin.stories-BTYV78Cy.js} +1 -1
- package/dist/storybook/assets/{Rtc.stories-B_26leBQ.js → Rtc.stories-CiQ4OgEf.js} +1 -1
- package/dist/storybook/assets/{ScrollShadow.stories-COcTqDYx.js → ScrollShadow.stories-BRpbl9WU.js} +1 -1
- package/dist/storybook/assets/{Switch.stories-fZAYVOXQ.js → Switch.stories-Dfw56-LB.js} +1 -1
- package/dist/storybook/assets/{Tab.stories-ChmYj35a.js → Tab.stories-DCIPSPwr.js} +1 -1
- package/dist/storybook/assets/{Tabs.stories-Bgb-44oF.js → Tabs.stories-DrT2D2oW.js} +1 -1
- package/dist/storybook/assets/{Throttle.stories-BP21CM6q.js → Throttle.stories-B5Y8K9s3.js} +1 -1
- package/dist/storybook/assets/{Tooltip.stories-Ck7XsJKW.js → Tooltip.stories-CUjm8cuW.js} +1 -1
- package/dist/storybook/assets/{Upload.stories-DMedgAwp.js → Upload.stories-Dt7V8qIe.js} +1 -1
- package/dist/storybook/assets/{UploadItem.stories-D1rV5quQ.js → UploadItem.stories-DSXxGs8M.js} +1 -1
- package/dist/storybook/assets/{Welcome.stories-DDEhWqOY.js → Welcome.stories-BDFQb8oF.js} +1 -1
- package/dist/storybook/assets/{Widget.stories-iTycJQkv.js → Widget.stories-CQnE1dST.js} +1 -1
- package/dist/storybook/assets/{WithTooltip-65CFNBJE-BDmGdT_q.js → WithTooltip-65CFNBJE-D1OYJPzp.js} +1 -1
- package/dist/storybook/assets/{blocks-45GMe9mP.js → blocks-Z0quNc1U.js} +5 -5
- package/dist/storybook/assets/{formatter-EIJCOSYU-Dvxzfjid.js → formatter-EIJCOSYU-DwWzDvJC.js} +1 -1
- package/dist/storybook/assets/if-defined-Dl8MuiCE.js +1 -0
- package/dist/storybook/assets/iframe-HDp5BmO_.css +1 -0
- package/dist/storybook/assets/{iframe-CemlMLl9.js → iframe-WTEmYHJj.js} +4 -4
- package/dist/storybook/assets/{index-Ei3bFG4y.js → index-BvPCa7_B.js} +1 -1
- package/dist/storybook/assets/{onFind-96dPwZGj.js → onFind-CqIRRMTv.js} +1 -1
- package/dist/storybook/assets/{onFind.stories-DwMmvzD8.js → onFind.stories-C4PPQTaQ.js} +1 -1
- package/dist/storybook/assets/{onRemove.stories-Bw8nC3q8.js → onRemove.stories-BGFCh6DN.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-BZyJ5si2.js → onVisible.stories-4ni7syfJ.js} +1 -1
- package/dist/storybook/assets/{style-map-BZ1BR1yx.js → style-map-BhvFBtuB.js} +1 -1
- package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-B4dajqNJ.js → syntaxhighlighter-ED5Y7EFY-D_cJwnoJ.js} +1 -1
- package/dist/storybook/iframe.html +2 -2
- package/dist/storybook/project.json +1 -1
- package/dist/tailwind-plugin-button.js +2 -0
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +2 -0
- package/package.json +4 -1
- package/src/legacy/tool-ui/src/Admin.css +2 -6
- package/src/legacy/tool-ui/src/CIGCluster.css +9 -1
- package/src/legacy/tool-ui/src/ChartCompat.ts +1 -1
- package/src/legacy/tool-ui/src/Compat.css +11 -0
- package/src/legacy/tool-ui/src/ContentEdit.css +19 -12
- package/src/legacy/tool-ui/src/ContentEditPanel.ts +26 -12
- package/src/legacy/tool-ui/src/ContentInputGroup.css +12 -10
- package/src/legacy/tool-ui/src/Conversation.css +19 -7
- package/src/legacy/tool-ui/src/DashboardWidget.css +4 -0
- package/src/legacy/tool-ui/src/Dialog.css +83 -26
- package/src/legacy/tool-ui/src/EmbeddedInputGroup/index.ts +20 -50
- package/src/legacy/tool-ui/src/Enhancement.css +3 -2
- package/src/legacy/tool-ui/src/Entry.ts +11 -0
- package/src/legacy/tool-ui/src/FileInput.css +1 -1
- package/src/legacy/tool-ui/src/Global.d.ts +3 -0
- package/src/legacy/tool-ui/src/Guide.css +5 -5
- package/src/legacy/tool-ui/src/ImageEditor.css +1 -1
- package/src/legacy/tool-ui/src/LinkTable.css +4 -0
- package/src/legacy/tool-ui/src/LiveBlog.css +2 -2
- package/src/legacy/tool-ui/src/MenuView.css +13 -7
- package/src/legacy/tool-ui/src/Message.css +4 -9
- package/src/legacy/tool-ui/src/Page.css +32 -9
- package/src/legacy/tool-ui/src/Popup.css +18 -1
- package/src/legacy/tool-ui/src/ProseMirror.css +1 -1
- package/src/legacy/tool-ui/src/RepeatableContentInputGroup.css +5 -5
- package/src/legacy/tool-ui/src/Revisions.css +8 -4
- package/src/legacy/tool-ui/src/SearchFields.css +2 -2
- package/src/legacy/tool-ui/src/SearchWidgetAdvanced.css +4 -13
- package/src/legacy/tool-ui/src/TabBar.css +2 -2
- package/src/legacy/tool-ui/src/Widget.css +29 -2
- package/src/legacy/tool-ui/src/dialog/index.ts +10 -18
- package/src/legacy/tool-ui/src/form/FormFilter/index.ts +2 -2
- package/src/legacy/tool-ui/src/main/webapp/dist/2111.5d43fec84fea624d6371.css +1 -0
- 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/7718.5d43fec84fea624d6371.css +1 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/{9360.41a5ba8d859d49f86811.js → 9360.22bc0127e04bc73d5261.js} +2 -2
- package/src/legacy/tool-ui/src/main/webapp/dist/{9360.41a5ba8d859d49f86811.js.LICENSE.txt → 9360.22bc0127e04bc73d5261.js.LICENSE.txt} +1 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/ChartCompat.c7121ea8407d80ee5abe.js +1 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.1407c7815b605e9c9e5c.js +500 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/{v4.1074f0affb38bd0dd492.js → v4.447a0e68294d13059714.js} +8 -8
- package/src/legacy/tool-ui/src/main/webapp/dist/v4.b1e9f6ac0449331711fc.css +3 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/v5.4b881dc40345f5053736.js +92 -0
- package/src/legacy/tool-ui/src/main/webapp/dist/v5.c4249c5b01957c28ff92.css +5 -0
- package/src/legacy/tool-ui/src/main/webapp/v4/CIGCluster.less +9 -0
- package/src/legacy/tool-ui/src/main/webapp/v4/TabBar.less +4 -0
- package/src/legacy/tool-ui/src/theme/Theme.ts +28 -0
- package/src/legacy/tool-ui/src/v5.ts +61 -13
- package/dist/storybook/assets/if-defined-C-mi5lcR.js +0 -1
- package/dist/storybook/assets/iframe-abUCrGGI.css +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/2111.8f1e08a5cc223fd14542.css +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/7718.8f1e08a5cc223fd14542.css +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/ChartCompat.4dd096dd030942227ec6.js +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.55a2d6ccdce502c79815.js +0 -500
- package/src/legacy/tool-ui/src/main/webapp/dist/c6e9c007f41bd4d26c20.png +0 -1
- package/src/legacy/tool-ui/src/main/webapp/dist/v4.477ad1936f8c04d7b232.css +0 -3
- package/src/legacy/tool-ui/src/main/webapp/dist/v5.b49d2d7615d030b68f89.js +0 -92
- package/src/legacy/tool-ui/src/main/webapp/dist/v5.f9baf26a8d24e59e7af0.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.55a2d6ccdce502c79815.js.LICENSE.txt → RTEProseMirror.1407c7815b605e9c9e5c.js.LICENSE.txt} +0 -0
- /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.1074f0affb38bd0dd492.js.LICENSE.txt → v4.447a0e68294d13059714.js.LICENSE.txt} +0 -0
- /package/src/legacy/tool-ui/src/main/webapp/dist/{v5.b49d2d7615d030b68f89.js.LICENSE.txt → v5.4b881dc40345f5053736.js.LICENSE.txt} +0 -0
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
btu-cig-cluster {
|
|
2
|
+
// Flex (not block) so narrow .CIG-row children pair up like they do in .CIG.
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-wrap: wrap;
|
|
5
|
+
|
|
6
|
+
// Children run the full row; the narrow modifiers (.is-half etc.) override this to pair up.
|
|
7
|
+
> * {
|
|
8
|
+
width: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
2
11
|
.CIG-title {
|
|
3
12
|
padding: 0;
|
|
4
13
|
}
|
|
@@ -19,6 +19,11 @@ Contrast ratios
|
|
|
19
19
|
*/
|
|
20
20
|
const defaultLuminances = [90, 81, 72, 38, 14, 8, 4]
|
|
21
21
|
|
|
22
|
+
// The header color only ever comes from a hex picker. Restricting to opaque hex rejects the values
|
|
23
|
+
// that would break the header — `transparent`/alpha (which pass CSS.supports but paint a see-through
|
|
24
|
+
// header) and anything malformed from an API/import write that skips the server-side check.
|
|
25
|
+
const HEADER_COLOR_HEX = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i
|
|
26
|
+
|
|
22
27
|
/*
|
|
23
28
|
Contrast ratios
|
|
24
29
|
|
|
@@ -43,6 +48,7 @@ type ThemeType = {
|
|
|
43
48
|
highContrast?: boolean
|
|
44
49
|
contrastChoices?: 'more' | 'normal'
|
|
45
50
|
headerBackground?: string
|
|
51
|
+
headerColor?: string
|
|
46
52
|
luminances?: number[]
|
|
47
53
|
darkLuminances?: number[]
|
|
48
54
|
colors: Colors
|
|
@@ -173,6 +179,20 @@ export default class Theme {
|
|
|
173
179
|
},
|
|
174
180
|
)
|
|
175
181
|
|
|
182
|
+
// Adds event listener to the V5 Header Color (live preview)
|
|
183
|
+
onFind(
|
|
184
|
+
this._element,
|
|
185
|
+
".CIG-row[data-field-name='cms.headerColor'] .color",
|
|
186
|
+
(headerColorInput) => {
|
|
187
|
+
headerColorInput.addEventListener('change', (e) => {
|
|
188
|
+
if (e.target instanceof HTMLInputElement) {
|
|
189
|
+
this._theme.headerColor = e.target.value
|
|
190
|
+
}
|
|
191
|
+
this._updateUI()
|
|
192
|
+
})
|
|
193
|
+
},
|
|
194
|
+
)
|
|
195
|
+
|
|
176
196
|
// Only display color table if custom is chosen as preset
|
|
177
197
|
onFind(
|
|
178
198
|
this._element,
|
|
@@ -336,6 +356,14 @@ export default class Theme {
|
|
|
336
356
|
}
|
|
337
357
|
}
|
|
338
358
|
|
|
359
|
+
// Foreground contrast is derived from this in CSS (.Page-header), not here.
|
|
360
|
+
const headerColor = this._theme.headerColor
|
|
361
|
+
if (headerColor && HEADER_COLOR_HEX.test(headerColor)) {
|
|
362
|
+
style.setProperty('--Page-header-bg', headerColor)
|
|
363
|
+
} else {
|
|
364
|
+
style.removeProperty('--Page-header-bg')
|
|
365
|
+
}
|
|
366
|
+
|
|
339
367
|
const gray = cc.hex.hsl(this._theme.colors.gray)
|
|
340
368
|
|
|
341
369
|
const black = this._guessColor(gray[0], gray[1], blackLuminance)
|
|
@@ -370,17 +370,26 @@ onFind('.TabBar.is-menuOnly', (container: HTMLElement) => {
|
|
|
370
370
|
})
|
|
371
371
|
})
|
|
372
372
|
|
|
373
|
-
/** Adds a
|
|
374
|
-
*
|
|
373
|
+
/** Adds a data-label attribute to search result tab items so CSS can pick each
|
|
374
|
+
* view's icon (see SearchResult.css `[data-label='list'|'grid'|'board'|...]`).
|
|
375
|
+
*
|
|
376
|
+
* The key MUST be derived from the stable view class name (data-view), not the
|
|
377
|
+
* visible text: the text is localized, so keying off it left the built-in views
|
|
378
|
+
* (List/Grid/Board/Hierarchy/Taxonomy/Mixed) with no icon in non-English locales.
|
|
379
|
+
* aria-label/title still use the human-readable (localized) text.
|
|
375
380
|
*/
|
|
376
381
|
onFind('.SearchResult-views > ul', (tabs: HTMLElement) => {
|
|
377
382
|
tabs
|
|
378
383
|
.querySelectorAll<HTMLElement>(':scope > li > a')
|
|
379
384
|
.forEach((tabItem: HTMLElement) => {
|
|
380
|
-
const
|
|
381
|
-
tabItem.dataset.
|
|
382
|
-
|
|
383
|
-
|
|
385
|
+
const text = tabItem.textContent?.trim() ?? ''
|
|
386
|
+
const viewClass = (tabItem.dataset.view ?? '').split('.').pop() ?? ''
|
|
387
|
+
const core = viewClass.match(
|
|
388
|
+
/^(List|Grid|Board|Hierarchy|Taxonomy|Mixed)SearchResultView$/,
|
|
389
|
+
)
|
|
390
|
+
tabItem.dataset.label = core ? core[1].toLowerCase() : text.toLowerCase()
|
|
391
|
+
tabItem.ariaLabel = text || tabItem.dataset.label
|
|
392
|
+
tabItem.title = text || tabItem.dataset.label
|
|
384
393
|
})
|
|
385
394
|
})
|
|
386
395
|
|
|
@@ -1542,15 +1551,22 @@ onFind('.QueryField-toggle', (toggle: HTMLElement) => {
|
|
|
1542
1551
|
dialog.show()
|
|
1543
1552
|
})
|
|
1544
1553
|
|
|
1545
|
-
dialog.addEventListener('btu-dialog-closed', (
|
|
1546
|
-
popup
|
|
1554
|
+
dialog.addEventListener('btu-dialog-closed', () => {
|
|
1555
|
+
// Re-query instead of closing over `popup`: submitting a filter form
|
|
1556
|
+
// reloads the frame and replaces the Popup element.
|
|
1557
|
+
queryFieldFrame
|
|
1558
|
+
.querySelector<HTMLElement>('.Popup')
|
|
1559
|
+
?.classList.remove('is-visible')
|
|
1547
1560
|
})
|
|
1548
1561
|
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1562
|
+
// Delegate from the frame, which survives reloads, rather than binding the
|
|
1563
|
+
// Done button directly. A reload swaps in a new button, and this listener
|
|
1564
|
+
// is only attached on the first load.
|
|
1565
|
+
queryFieldFrame.addEventListener('click', (event) => {
|
|
1566
|
+
const target = event.target as HTMLElement | null
|
|
1567
|
+
if (target?.closest('.QueryField-button')) {
|
|
1568
|
+
dialog.close()
|
|
1569
|
+
}
|
|
1554
1570
|
})
|
|
1555
1571
|
}
|
|
1556
1572
|
|
|
@@ -2054,12 +2070,32 @@ onFind('.ActionBar', (actionBar) => {
|
|
|
2054
2070
|
const widgetTitle = widget.querySelector<HTMLElement>('.Widget-title')
|
|
2055
2071
|
|
|
2056
2072
|
let lastPointerType = ''
|
|
2073
|
+
|
|
2074
|
+
// The browser refocuses whatever was focused before when the window regains focus. That
|
|
2075
|
+
// arrives as a focusin with no preceding pointerdown, so the pointer guard below never
|
|
2076
|
+
// catches it, and the scroll drags the editor away from wherever they had deliberately
|
|
2077
|
+
// scrolled to — most visibly with a rich text field taller than the pane.
|
|
2078
|
+
// Seeded from hasFocus() because binding can happen while the window is already blurred —
|
|
2079
|
+
// a background tab, or form content that mounts lazily while the user is away — in which
|
|
2080
|
+
// case the blur has already fired and there is nothing left to listen for.
|
|
2081
|
+
let isRestoringFocus = !document.hasFocus()
|
|
2082
|
+
const handleWindowBlur = () => {
|
|
2083
|
+
isRestoringFocus = true
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
// Any deliberate input means we are no longer restoring, so the flag cannot go stale if
|
|
2087
|
+
// focus happens to return to something outside this widget.
|
|
2088
|
+
const clearRestoringFocus = () => {
|
|
2089
|
+
isRestoringFocus = false
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2057
2092
|
const handlePointerdown = (event: Event) => {
|
|
2058
2093
|
lastPointerType = (event as PointerEvent).pointerType
|
|
2059
2094
|
// Reset after current task so only the immediately following focusin is affected.
|
|
2060
2095
|
setTimeout(() => {
|
|
2061
2096
|
lastPointerType = ''
|
|
2062
2097
|
}, 0)
|
|
2098
|
+
clearRestoringFocus()
|
|
2063
2099
|
}
|
|
2064
2100
|
|
|
2065
2101
|
const handleFocusin = (event: Event) => {
|
|
@@ -2067,6 +2103,13 @@ onFind('.ActionBar', (actionBar) => {
|
|
|
2067
2103
|
// smooth scrolling mid-click disrupts dropdown positioning and button actions.
|
|
2068
2104
|
if (lastPointerType) return
|
|
2069
2105
|
|
|
2106
|
+
// Skip the single focusin the browser fires when restoring focus on window re-entry.
|
|
2107
|
+
// Keyboard navigation afterwards still scrolls, which is what this handler is for.
|
|
2108
|
+
if (isRestoringFocus) {
|
|
2109
|
+
isRestoringFocus = false
|
|
2110
|
+
return
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2070
2113
|
const target = event.target
|
|
2071
2114
|
if (!(target instanceof HTMLElement)) return
|
|
2072
2115
|
|
|
@@ -2083,8 +2126,13 @@ onFind('.ActionBar', (actionBar) => {
|
|
|
2083
2126
|
|
|
2084
2127
|
widget.addEventListener('pointerdown', handlePointerdown, { passive: true })
|
|
2085
2128
|
widget.addEventListener('focusin', handleFocusin, { passive: true })
|
|
2129
|
+
// Bound on window without capture — capture would also pick up element blur events.
|
|
2130
|
+
window.addEventListener('blur', handleWindowBlur)
|
|
2131
|
+
window.addEventListener('keydown', clearRestoringFocus, { passive: true })
|
|
2086
2132
|
onRemove(widget, () => {
|
|
2087
2133
|
widget.removeEventListener('pointerdown', handlePointerdown)
|
|
2088
2134
|
widget.removeEventListener('focusin', handleFocusin)
|
|
2135
|
+
window.removeEventListener('blur', handleWindowBlur)
|
|
2136
|
+
window.removeEventListener('keydown', clearRestoringFocus)
|
|
2089
2137
|
})
|
|
2090
2138
|
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as r}from"./iframe-CemlMLl9.js";const m=o=>o??r;export{m as o};
|