@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.
Files changed (195) hide show
  1. package/dist/components/action-bar/ActionBar.d.ts +1 -0
  2. package/dist/components/action-bar/ActionBar.d.ts.map +1 -1
  3. package/dist/components/action-bar/ActionBar.js +6 -2
  4. package/dist/components/action-bar/ActionBar.js.map +1 -1
  5. package/dist/components/avatar/Avatar.d.ts +1 -0
  6. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  7. package/dist/components/avatar/Avatar.js +6 -2
  8. package/dist/components/avatar/Avatar.js.map +1 -1
  9. package/dist/components/avatar/AvatarGroup.d.ts +1 -0
  10. package/dist/components/avatar/AvatarGroup.d.ts.map +1 -1
  11. package/dist/components/avatar/AvatarGroup.js +6 -2
  12. package/dist/components/avatar/AvatarGroup.js.map +1 -1
  13. package/dist/components/badge/Badge.d.ts +1 -0
  14. package/dist/components/badge/Badge.d.ts.map +1 -1
  15. package/dist/components/badge/Badge.js +6 -2
  16. package/dist/components/badge/Badge.js.map +1 -1
  17. package/dist/components/button-group/ButtonGroup.d.ts +1 -0
  18. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -1
  19. package/dist/components/button-group/ButtonGroup.js +6 -2
  20. package/dist/components/button-group/ButtonGroup.js.map +1 -1
  21. package/dist/components/card/Card.d.ts.map +1 -1
  22. package/dist/components/card/Card.js +4 -2
  23. package/dist/components/card/Card.js.map +1 -1
  24. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  25. package/dist/components/checkbox/Checkbox.js +4 -2
  26. package/dist/components/checkbox/Checkbox.js.map +1 -1
  27. package/dist/components/circular-progress/CircularProgress.d.ts +2 -0
  28. package/dist/components/circular-progress/CircularProgress.d.ts.map +1 -1
  29. package/dist/components/circular-progress/CircularProgress.js +9 -3
  30. package/dist/components/circular-progress/CircularProgress.js.map +1 -1
  31. package/dist/components/icon/Icon.d.ts +1 -0
  32. package/dist/components/icon/Icon.d.ts.map +1 -1
  33. package/dist/components/icon/Icon.js +6 -2
  34. package/dist/components/icon/Icon.js.map +1 -1
  35. package/dist/components/linear-progress/LinearProgress.d.ts +2 -0
  36. package/dist/components/linear-progress/LinearProgress.d.ts.map +1 -1
  37. package/dist/components/linear-progress/LinearProgress.js +9 -3
  38. package/dist/components/linear-progress/LinearProgress.js.map +1 -1
  39. package/dist/components/pagination/Pagination.d.ts +1 -0
  40. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  41. package/dist/components/pagination/Pagination.js +6 -2
  42. package/dist/components/pagination/Pagination.js.map +1 -1
  43. package/dist/components/popover/Popover.d.ts +1 -0
  44. package/dist/components/popover/Popover.d.ts.map +1 -1
  45. package/dist/components/popover/Popover.js +6 -2
  46. package/dist/components/popover/Popover.js.map +1 -1
  47. package/dist/components/switch/Switch.d.ts.map +1 -1
  48. package/dist/components/switch/Switch.js +4 -2
  49. package/dist/components/switch/Switch.js.map +1 -1
  50. package/dist/components/tabs/Tab.d.ts +1 -0
  51. package/dist/components/tabs/Tab.d.ts.map +1 -1
  52. package/dist/components/tabs/Tab.js +6 -2
  53. package/dist/components/tabs/Tab.js.map +1 -1
  54. package/dist/components/tabs/Tabs.d.ts +1 -0
  55. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  56. package/dist/components/tabs/Tabs.js +6 -2
  57. package/dist/components/tabs/Tabs.js.map +1 -1
  58. package/dist/custom-elements.json +90 -0
  59. package/dist/storybook/assets/{ActionBar.stories-Q_bdek_N.js → ActionBar.stories-CgkvHW27.js} +1 -1
  60. package/dist/storybook/assets/{ActionItem.stories-Ccyot7vj.js → ActionItem.stories-CyxwhrvR.js} +1 -1
  61. package/dist/storybook/assets/{AiSparkle.stories-Ccapqzcw.js → AiSparkle.stories-h2LSw10e.js} +1 -1
  62. package/dist/storybook/assets/{Avatar.stories-CPcQWZtG.js → Avatar.stories-CQ3eFTbI.js} +1 -1
  63. package/dist/storybook/assets/{AvatarGroup.stories-Bws-izJt.js → AvatarGroup.stories-CIyZOd7R.js} +1 -1
  64. package/dist/storybook/assets/{Badge.stories-xck9Ke5e.js → Badge.stories-CwPkYUuY.js} +1 -1
  65. package/dist/storybook/assets/{Banner.stories-D3ieqG7F.js → Banner.stories-B7AhWymc.js} +1 -1
  66. package/dist/storybook/assets/{Button-CQ2ZvHGM.js → Button-fLz-Mqji.js} +1 -1
  67. package/dist/storybook/assets/{Button.stories-BkGox6QF.js → Button.stories-Bj_cB5Tr.js} +1 -1
  68. package/dist/storybook/assets/{ButtonGroup.stories-BxDNL7ej.js → ButtonGroup.stories-DMAr8q3A.js} +1 -1
  69. package/dist/storybook/assets/{Card.stories-BrzAwQwE.js → Card.stories-CouVkvTr.js} +1 -1
  70. package/dist/storybook/assets/{Celebrate.stories-BFqqbYhp.js → Celebrate.stories-Cai7aITx.js} +1 -1
  71. package/dist/storybook/assets/{Checkbox.stories-yNb9DH9g.js → Checkbox.stories-BTzuHih7.js} +1 -1
  72. package/dist/storybook/assets/{CircularProgress.stories--KSA2X4d.js → CircularProgress.stories-DwiMDCrW.js} +1 -1
  73. package/dist/storybook/assets/{ClipboardMixin.stories-DT0symyW.js → ClipboardMixin.stories-BTzKKsAG.js} +1 -1
  74. package/dist/storybook/assets/{Color-6BZIO3FS-CEpjJcuB.js → Color-6BZIO3FS-z5x4axZs.js} +1 -1
  75. package/dist/storybook/assets/{Colors.stories-BEtjS3CS.js → Colors.stories-LjQN3QJP.js} +1 -1
  76. package/dist/storybook/assets/{CombinedEffects.stories-DZsO6E1c.js → CombinedEffects.stories-CcWkxBPD.js} +1 -1
  77. package/dist/storybook/assets/{ComponentStatesMixin-C-G6neuB.js → ComponentStatesMixin-6JmalSeW.js} +1 -1
  78. package/dist/storybook/assets/{ComponentStatesMixin.stories-D4B2eXzV.js → ComponentStatesMixin.stories-wr7wl9D5.js} +1 -1
  79. package/dist/storybook/assets/{CopyToClipboard.stories-C1wxRcNr.js → CopyToClipboard.stories-CBL_GlzJ.js} +1 -1
  80. package/dist/storybook/assets/{Debounce.stories-CEXdiU_4.js → Debounce.stories-DDW0347e.js} +1 -1
  81. package/dist/storybook/assets/{DocsRenderer-LL677BLK-iD6uwWm0.js → DocsRenderer-LL677BLK-LHrG4h5r.js} +3 -3
  82. package/dist/storybook/assets/{Dropdown.stories-DzgAKuev.js → Dropdown.stories-BixGKdVC.js} +1 -1
  83. package/dist/storybook/assets/{EmptyState.stories-8IezRmLe.js → EmptyState.stories-DYCizkT5.js} +1 -1
  84. package/dist/storybook/assets/{EscaAvatar.stories-CFRMImDC.js → EscaAvatar.stories-IV0FybUu.js} +1 -1
  85. package/dist/storybook/assets/{Events.stories-wc_WlNNX.js → Events.stories-9X1B5LFU.js} +1 -1
  86. package/dist/storybook/assets/{Heading.stories-CBopc-Ov.js → Heading.stories-BWFKyeYP.js} +1 -1
  87. package/dist/storybook/assets/{HueRipple.stories-B1BLaONM.js → HueRipple.stories-KJySD4yc.js} +1 -1
  88. package/dist/storybook/assets/{Icon.stories-Bul1n2nN.js → Icon.stories-n4-_RBwe.js} +1 -1
  89. package/dist/storybook/assets/{IconButton.stories-DDCBKBqw.js → IconButton.stories--cc9Az0q.js} +1 -1
  90. package/dist/storybook/assets/{LinearProgress.stories-DWroemrV.js → LinearProgress.stories-CXISMQqr.js} +1 -1
  91. package/dist/storybook/assets/{Message.stories-CfWo8uqR.js → Message.stories-DCgZ9H2r.js} +1 -1
  92. package/dist/storybook/assets/{OnFindMixin.stories-DRr67PU5.js → OnFindMixin.stories-DwYEl4q4.js} +1 -1
  93. package/dist/storybook/assets/{Pagination.stories-CJ0dmE6y.js → Pagination.stories-B8AqV3jI.js} +1 -1
  94. package/dist/storybook/assets/{Popover.stories-CFFe2utX.js → Popover.stories-Dj8TUysk.js} +1 -1
  95. package/dist/storybook/assets/{ReadyMixin-euHV5BrF.js → ReadyMixin-B1y8EBLz.js} +1 -1
  96. package/dist/storybook/assets/{RovingTabindexMixin.stories-CcKn8eYu.js → RovingTabindexMixin.stories-BTYV78Cy.js} +1 -1
  97. package/dist/storybook/assets/{Rtc.stories-B_26leBQ.js → Rtc.stories-CiQ4OgEf.js} +1 -1
  98. package/dist/storybook/assets/{ScrollShadow.stories-COcTqDYx.js → ScrollShadow.stories-BRpbl9WU.js} +1 -1
  99. package/dist/storybook/assets/{Switch.stories-fZAYVOXQ.js → Switch.stories-Dfw56-LB.js} +1 -1
  100. package/dist/storybook/assets/{Tab.stories-ChmYj35a.js → Tab.stories-DCIPSPwr.js} +1 -1
  101. package/dist/storybook/assets/{Tabs.stories-Bgb-44oF.js → Tabs.stories-DrT2D2oW.js} +1 -1
  102. package/dist/storybook/assets/{Throttle.stories-BP21CM6q.js → Throttle.stories-B5Y8K9s3.js} +1 -1
  103. package/dist/storybook/assets/{Tooltip.stories-Ck7XsJKW.js → Tooltip.stories-CUjm8cuW.js} +1 -1
  104. package/dist/storybook/assets/{Upload.stories-DMedgAwp.js → Upload.stories-Dt7V8qIe.js} +1 -1
  105. package/dist/storybook/assets/{UploadItem.stories-D1rV5quQ.js → UploadItem.stories-DSXxGs8M.js} +1 -1
  106. package/dist/storybook/assets/{Welcome.stories-DDEhWqOY.js → Welcome.stories-BDFQb8oF.js} +1 -1
  107. package/dist/storybook/assets/{Widget.stories-iTycJQkv.js → Widget.stories-CQnE1dST.js} +1 -1
  108. package/dist/storybook/assets/{WithTooltip-65CFNBJE-BDmGdT_q.js → WithTooltip-65CFNBJE-D1OYJPzp.js} +1 -1
  109. package/dist/storybook/assets/{blocks-45GMe9mP.js → blocks-Z0quNc1U.js} +5 -5
  110. package/dist/storybook/assets/{formatter-EIJCOSYU-Dvxzfjid.js → formatter-EIJCOSYU-DwWzDvJC.js} +1 -1
  111. package/dist/storybook/assets/if-defined-Dl8MuiCE.js +1 -0
  112. package/dist/storybook/assets/iframe-HDp5BmO_.css +1 -0
  113. package/dist/storybook/assets/{iframe-CemlMLl9.js → iframe-WTEmYHJj.js} +4 -4
  114. package/dist/storybook/assets/{index-Ei3bFG4y.js → index-BvPCa7_B.js} +1 -1
  115. package/dist/storybook/assets/{onFind-96dPwZGj.js → onFind-CqIRRMTv.js} +1 -1
  116. package/dist/storybook/assets/{onFind.stories-DwMmvzD8.js → onFind.stories-C4PPQTaQ.js} +1 -1
  117. package/dist/storybook/assets/{onRemove.stories-Bw8nC3q8.js → onRemove.stories-BGFCh6DN.js} +1 -1
  118. package/dist/storybook/assets/{onVisible.stories-BZyJ5si2.js → onVisible.stories-4ni7syfJ.js} +1 -1
  119. package/dist/storybook/assets/{style-map-BZ1BR1yx.js → style-map-BhvFBtuB.js} +1 -1
  120. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-B4dajqNJ.js → syntaxhighlighter-ED5Y7EFY-D_cJwnoJ.js} +1 -1
  121. package/dist/storybook/iframe.html +2 -2
  122. package/dist/storybook/project.json +1 -1
  123. package/dist/tailwind-plugin-button.js +2 -0
  124. package/dist/tailwind-plugin-button.js.map +1 -1
  125. package/dist/tailwind-plugin-button.ts +2 -0
  126. package/package.json +4 -1
  127. package/src/legacy/tool-ui/src/Admin.css +2 -6
  128. package/src/legacy/tool-ui/src/CIGCluster.css +9 -1
  129. package/src/legacy/tool-ui/src/ChartCompat.ts +1 -1
  130. package/src/legacy/tool-ui/src/Compat.css +11 -0
  131. package/src/legacy/tool-ui/src/ContentEdit.css +19 -12
  132. package/src/legacy/tool-ui/src/ContentEditPanel.ts +26 -12
  133. package/src/legacy/tool-ui/src/ContentInputGroup.css +12 -10
  134. package/src/legacy/tool-ui/src/Conversation.css +19 -7
  135. package/src/legacy/tool-ui/src/DashboardWidget.css +4 -0
  136. package/src/legacy/tool-ui/src/Dialog.css +83 -26
  137. package/src/legacy/tool-ui/src/EmbeddedInputGroup/index.ts +20 -50
  138. package/src/legacy/tool-ui/src/Enhancement.css +3 -2
  139. package/src/legacy/tool-ui/src/Entry.ts +11 -0
  140. package/src/legacy/tool-ui/src/FileInput.css +1 -1
  141. package/src/legacy/tool-ui/src/Global.d.ts +3 -0
  142. package/src/legacy/tool-ui/src/Guide.css +5 -5
  143. package/src/legacy/tool-ui/src/ImageEditor.css +1 -1
  144. package/src/legacy/tool-ui/src/LinkTable.css +4 -0
  145. package/src/legacy/tool-ui/src/LiveBlog.css +2 -2
  146. package/src/legacy/tool-ui/src/MenuView.css +13 -7
  147. package/src/legacy/tool-ui/src/Message.css +4 -9
  148. package/src/legacy/tool-ui/src/Page.css +32 -9
  149. package/src/legacy/tool-ui/src/Popup.css +18 -1
  150. package/src/legacy/tool-ui/src/ProseMirror.css +1 -1
  151. package/src/legacy/tool-ui/src/RepeatableContentInputGroup.css +5 -5
  152. package/src/legacy/tool-ui/src/Revisions.css +8 -4
  153. package/src/legacy/tool-ui/src/SearchFields.css +2 -2
  154. package/src/legacy/tool-ui/src/SearchWidgetAdvanced.css +4 -13
  155. package/src/legacy/tool-ui/src/TabBar.css +2 -2
  156. package/src/legacy/tool-ui/src/Widget.css +29 -2
  157. package/src/legacy/tool-ui/src/dialog/index.ts +10 -18
  158. package/src/legacy/tool-ui/src/form/FormFilter/index.ts +2 -2
  159. package/src/legacy/tool-ui/src/main/webapp/dist/2111.5d43fec84fea624d6371.css +1 -0
  160. package/src/legacy/tool-ui/src/main/webapp/dist/5598.315afb3723a27880f87c.js +2 -0
  161. package/src/legacy/tool-ui/src/main/webapp/dist/6086.82620005e5673191c44f.js +1 -0
  162. package/src/legacy/tool-ui/src/main/webapp/dist/7718.5d43fec84fea624d6371.css +1 -0
  163. package/src/legacy/tool-ui/src/main/webapp/dist/{9360.41a5ba8d859d49f86811.js → 9360.22bc0127e04bc73d5261.js} +2 -2
  164. package/src/legacy/tool-ui/src/main/webapp/dist/{9360.41a5ba8d859d49f86811.js.LICENSE.txt → 9360.22bc0127e04bc73d5261.js.LICENSE.txt} +1 -1
  165. package/src/legacy/tool-ui/src/main/webapp/dist/ChartCompat.c7121ea8407d80ee5abe.js +1 -0
  166. package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.1407c7815b605e9c9e5c.js +500 -0
  167. package/src/legacy/tool-ui/src/main/webapp/dist/{v4.1074f0affb38bd0dd492.js → v4.447a0e68294d13059714.js} +8 -8
  168. package/src/legacy/tool-ui/src/main/webapp/dist/v4.b1e9f6ac0449331711fc.css +3 -0
  169. package/src/legacy/tool-ui/src/main/webapp/dist/v5.4b881dc40345f5053736.js +92 -0
  170. package/src/legacy/tool-ui/src/main/webapp/dist/v5.c4249c5b01957c28ff92.css +5 -0
  171. package/src/legacy/tool-ui/src/main/webapp/v4/CIGCluster.less +9 -0
  172. package/src/legacy/tool-ui/src/main/webapp/v4/TabBar.less +4 -0
  173. package/src/legacy/tool-ui/src/theme/Theme.ts +28 -0
  174. package/src/legacy/tool-ui/src/v5.ts +61 -13
  175. package/dist/storybook/assets/if-defined-C-mi5lcR.js +0 -1
  176. package/dist/storybook/assets/iframe-abUCrGGI.css +0 -1
  177. package/src/legacy/tool-ui/src/main/webapp/dist/011a678e3efe41981754.png +0 -1
  178. package/src/legacy/tool-ui/src/main/webapp/dist/194137260531ee29a5f2.svg +0 -1
  179. package/src/legacy/tool-ui/src/main/webapp/dist/1e8408af1a34bdf61457.png +0 -1
  180. package/src/legacy/tool-ui/src/main/webapp/dist/2111.8f1e08a5cc223fd14542.css +0 -1
  181. package/src/legacy/tool-ui/src/main/webapp/dist/44b38a404dec4643c46b.png +0 -1
  182. package/src/legacy/tool-ui/src/main/webapp/dist/4a4ee777ddc0d4cedee4.png +0 -1
  183. package/src/legacy/tool-ui/src/main/webapp/dist/5598.d84773ca53126661bdca.js +0 -2
  184. package/src/legacy/tool-ui/src/main/webapp/dist/6086.7ca02b827506f29db590.js +0 -1
  185. package/src/legacy/tool-ui/src/main/webapp/dist/7718.8f1e08a5cc223fd14542.css +0 -1
  186. package/src/legacy/tool-ui/src/main/webapp/dist/ChartCompat.4dd096dd030942227ec6.js +0 -1
  187. package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.55a2d6ccdce502c79815.js +0 -500
  188. package/src/legacy/tool-ui/src/main/webapp/dist/c6e9c007f41bd4d26c20.png +0 -1
  189. package/src/legacy/tool-ui/src/main/webapp/dist/v4.477ad1936f8c04d7b232.css +0 -3
  190. package/src/legacy/tool-ui/src/main/webapp/dist/v5.b49d2d7615d030b68f89.js +0 -92
  191. package/src/legacy/tool-ui/src/main/webapp/dist/v5.f9baf26a8d24e59e7af0.css +0 -5
  192. /package/src/legacy/tool-ui/src/main/webapp/dist/{5598.d84773ca53126661bdca.js.LICENSE.txt → 5598.315afb3723a27880f87c.js.LICENSE.txt} +0 -0
  193. /package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.55a2d6ccdce502c79815.js.LICENSE.txt → RTEProseMirror.1407c7815b605e9c9e5c.js.LICENSE.txt} +0 -0
  194. /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.1074f0affb38bd0dd492.js.LICENSE.txt → v4.447a0e68294d13059714.js.LICENSE.txt} +0 -0
  195. /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
  }
@@ -112,6 +112,10 @@
112
112
  &.state-selected {
113
113
  .TabBar-itemSelected();
114
114
  }
115
+
116
+ btu-cig-cluster .CIG .TabBar & {
117
+ width: auto;
118
+ }
115
119
  }
116
120
 
117
121
  .TabBar-menu:hover > .TabBar-menuToggle,
@@ -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 new data-label attribute to search result tab items
374
- * for icon styling the tab buttons based on their text content
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 label = tabItem.textContent?.toLowerCase() ?? ''
381
- tabItem.dataset.label = label
382
- tabItem.ariaLabel = label
383
- tabItem.title = label
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', (event) => {
1546
- popup.classList.remove('is-visible')
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
- const saveButton =
1550
- queryFieldFrame.querySelector<HTMLElement>('.QueryField-button')
1551
- if (!saveButton) return
1552
- saveButton.addEventListener('click', (event) => {
1553
- dialog.close(event)
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};