@brightspot/ui 5.0.4-pre.20260624 → 5.2.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 (142) hide show
  1. package/dist/components/button-group/ButtonGroup.d.ts +7 -2
  2. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -1
  3. package/dist/components/button-group/ButtonGroup.js +23 -16
  4. package/dist/components/button-group/ButtonGroup.js.map +1 -1
  5. package/dist/components/card/Card.css +7 -0
  6. package/dist/components/card/Card.d.ts +244 -0
  7. package/dist/components/card/Card.d.ts.map +1 -0
  8. package/dist/components/card/Card.js +512 -0
  9. package/dist/components/card/Card.js.map +1 -0
  10. package/dist/components/empty-state/EmptyState.d.ts +11 -2
  11. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  12. package/dist/components/empty-state/EmptyState.js +19 -8
  13. package/dist/components/empty-state/EmptyState.js.map +1 -1
  14. package/dist/components/esca-avatar/EscaAvatar.d.ts +70 -0
  15. package/dist/components/esca-avatar/EscaAvatar.d.ts.map +1 -0
  16. package/dist/components/esca-avatar/EscaAvatar.js +218 -0
  17. package/dist/components/esca-avatar/EscaAvatar.js.map +1 -0
  18. package/dist/components/esca-avatar/animations/esca-search.json +1 -0
  19. package/dist/components/esca-avatar/animations/esca-task-complete.json +1 -0
  20. package/dist/components/esca-avatar/animations/esca-wave.json +1 -0
  21. package/dist/components/widget/Widget.d.ts +11 -2
  22. package/dist/components/widget/Widget.d.ts.map +1 -1
  23. package/dist/components/widget/Widget.js +21 -10
  24. package/dist/components/widget/Widget.js.map +1 -1
  25. package/dist/custom-elements.json +1081 -365
  26. package/dist/storybook/assets/{ActionBar.stories-cyX9vc6C.js → ActionBar.stories-CBN_ShP5.js} +1 -1
  27. package/dist/storybook/assets/{ActionItem.stories-Bs-Kxp5J.js → ActionItem.stories-DysfIj7U.js} +1 -1
  28. package/dist/storybook/assets/{Avatar.stories-B1Uee53f.js → Avatar.stories-BdgqH7I_.js} +1 -1
  29. package/dist/storybook/assets/{AvatarGroup.stories-W2EtKQBu.js → AvatarGroup.stories-DFCG_0Py.js} +1 -1
  30. package/dist/storybook/assets/{Badge.stories-BotNIO18.js → Badge.stories-BWPIJ2jm.js} +1 -1
  31. package/dist/storybook/assets/{Button-YTBnP55L.js → Button-B1_SwzVL.js} +1 -1
  32. package/dist/storybook/assets/{Button.stories-B-X7_d_i.js → Button.stories-C-H-KIcV.js} +1 -1
  33. package/dist/storybook/assets/{ButtonGroup.stories-BM-pxfK2.js → ButtonGroup.stories-BBdtnaP_.js} +1 -1
  34. package/dist/storybook/assets/Card.stories-FLC-WKC_.js +556 -0
  35. package/dist/storybook/assets/{Celebrate.stories-D9EJwzxo.js → Celebrate.stories-CZ7SfTOh.js} +1 -1
  36. package/dist/storybook/assets/{Checkbox.stories-f5VLVSw5.js → Checkbox.stories-C42Z-jkF.js} +1 -1
  37. package/dist/storybook/assets/{CircularProgress.stories-BI9e372u.js → CircularProgress.stories-DoC0japf.js} +1 -1
  38. package/dist/storybook/assets/{ClipboardMixin.stories-CsyJDNxc.js → ClipboardMixin.stories-Ci-drbJq.js} +1 -1
  39. package/dist/storybook/assets/{Color-6BZIO3FS-ClVOLIJG.js → Color-6BZIO3FS-rxeQBzj6.js} +1 -1
  40. package/dist/storybook/assets/{Colors.stories-hUYBvymM.js → Colors.stories-Bw1Kp3B7.js} +1 -1
  41. package/dist/storybook/assets/{CombinedEffects.stories-DkokyKCS.js → CombinedEffects.stories-DArqLKI1.js} +1 -1
  42. package/dist/storybook/assets/{ComponentStatesMixin-C4I_rtgt.js → ComponentStatesMixin-kUcZl-YW.js} +1 -1
  43. package/dist/storybook/assets/{ComponentStatesMixin.stories-BeLCYevK.js → ComponentStatesMixin.stories-PrGY6akN.js} +1 -1
  44. package/dist/storybook/assets/{CopyToClipboard.stories-DN9oagz-.js → CopyToClipboard.stories-CUzNoCic.js} +1 -1
  45. package/dist/storybook/assets/{Debounce.stories-CtNQAJxO.js → Debounce.stories-CrnUlkHs.js} +1 -1
  46. package/dist/storybook/assets/{DocsRenderer-LL677BLK-Bx1Fds2q.js → DocsRenderer-LL677BLK-BM3eNhez.js} +3 -3
  47. package/dist/storybook/assets/{Dropdown.stories-B862-mco.js → Dropdown.stories-DyIY6e6W.js} +1 -1
  48. package/dist/storybook/assets/{EmptyState.stories-Im3Vr4ZL.js → EmptyState.stories-BXFcxFcG.js} +1 -1
  49. package/dist/storybook/assets/EscaAvatar.stories-DnriDX7_.js +138 -0
  50. package/dist/storybook/assets/{Events.stories-B0tluV0t.js → Events.stories-YjZ1Qtl4.js} +1 -1
  51. package/dist/storybook/assets/{Heading.stories-6CzGqAAc.js → Heading.stories-CfQHk5pf.js} +1 -1
  52. package/dist/storybook/assets/{HueRipple.stories-DaQiDn9K.js → HueRipple.stories-CR75dLBM.js} +1 -1
  53. package/dist/storybook/assets/{Icon.stories-CFkYO_7w.js → Icon.stories-BCSRhY2s.js} +1 -1
  54. package/dist/storybook/assets/{IconButton.stories-DwBTqvTi.js → IconButton.stories-0O4LM1u6.js} +1 -1
  55. package/dist/storybook/assets/{LinearProgress.stories-Coxmgjmo.js → LinearProgress.stories-B7GYC8WE.js} +1 -1
  56. package/dist/storybook/assets/OnFindMixin.stories-UOK_ZP2n.js +300 -0
  57. package/dist/storybook/assets/{Pagination.stories-CYrKX5iI.js → Pagination.stories-Co3mbyct.js} +1 -1
  58. package/dist/storybook/assets/{Popover.stories-BkGiUOfu.js → Popover.stories-D5gsWcB0.js} +1 -1
  59. package/dist/storybook/assets/{ReadyMixin-CP6tQ4FB.js → ReadyMixin-DkhLzoe0.js} +1 -1
  60. package/dist/storybook/assets/{RovingTabindexMixin.stories-CzkPw8Nl.js → RovingTabindexMixin.stories-DPhOWmKd.js} +1 -1
  61. package/dist/storybook/assets/{Rtc.stories-CVch488H.js → Rtc.stories-D5Vpw1oP.js} +1 -1
  62. package/dist/storybook/assets/{ScrollShadow.stories-BGh-Irt7.js → ScrollShadow.stories-Cmbqjk5X.js} +1 -1
  63. package/dist/storybook/assets/{Switch.stories-DPfP0QVK.js → Switch.stories-Bfmr9Ugg.js} +1 -1
  64. package/dist/storybook/assets/{Tab.stories-CBcuRcDB.js → Tab.stories-DbucUczE.js} +1 -1
  65. package/dist/storybook/assets/{Tabs.stories-CDOBjYbs.js → Tabs.stories-DnPRsSsj.js} +1 -1
  66. package/dist/storybook/assets/{Throttle.stories-Bqyul0aW.js → Throttle.stories-DNwTsNRC.js} +1 -1
  67. package/dist/storybook/assets/{Tooltip.stories-B9dohX1h.js → Tooltip.stories-Fsp2BRAr.js} +1 -1
  68. package/dist/storybook/assets/{Upload.stories-C7dq2Wdk.js → Upload.stories-C-WggEd6.js} +1 -1
  69. package/dist/storybook/assets/{UploadItem.stories-35zsIKTv.js → UploadItem.stories-DwQzECXv.js} +1 -1
  70. package/dist/storybook/assets/{Welcome.stories-BuD3fpke.js → Welcome.stories-DFluhbVr.js} +1 -1
  71. package/dist/storybook/assets/{Widget.stories-D2UYzfyE.js → Widget.stories-7pJNHWTu.js} +1 -1
  72. package/dist/storybook/assets/{WithTooltip-65CFNBJE-DGiY8cz9.js → WithTooltip-65CFNBJE-BcgHQTz7.js} +1 -1
  73. package/dist/storybook/assets/{blocks-YjKl5E55.js → blocks-U4F5yAu3.js} +5 -5
  74. package/dist/storybook/assets/{formatter-EIJCOSYU-XYAiuXAN.js → formatter-EIJCOSYU-BjQsmbLH.js} +1 -1
  75. package/dist/storybook/assets/if-defined-CM2lJk-0.js +1 -0
  76. package/dist/storybook/assets/iframe-1F7Ef_8q.css +1 -0
  77. package/dist/storybook/assets/{iframe-CufEXQ5F.js → iframe-DNJdsh5L.js} +225 -225
  78. package/dist/storybook/assets/{index-DbEDIsEB.js → index-1U9xrCIK.js} +1 -1
  79. package/dist/storybook/assets/onFind-AbVF4rYD.js +1 -0
  80. package/dist/storybook/assets/{onFind.stories-UpwJxFqR.js → onFind.stories-j334ViWp.js} +15 -15
  81. package/dist/storybook/assets/{onRemove.stories-BMwQGBCl.js → onRemove.stories-fKMxne2_.js} +1 -1
  82. package/dist/storybook/assets/{onVisible.stories-axSo0Zv3.js → onVisible.stories-BCRoHlJz.js} +1 -1
  83. package/dist/storybook/assets/{style-map-BkaK9546.js → style-map-BZ07XihX.js} +1 -1
  84. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-CDDZTVRn.js → syntaxhighlighter-ED5Y7EFY-C2D-CgsB.js} +1 -1
  85. package/dist/storybook/iframe.html +48 -2
  86. package/dist/storybook/index.json +1 -1
  87. package/dist/storybook/project.json +1 -1
  88. package/dist/tailwind-plugin-button.js +5 -5
  89. package/dist/tailwind-plugin-button.js.map +1 -1
  90. package/dist/tailwind-plugin-button.ts +5 -5
  91. package/dist/tailwind-plugin-card.d.ts +2 -0
  92. package/dist/tailwind-plugin-card.d.ts.map +1 -0
  93. package/dist/tailwind-plugin-card.js +438 -0
  94. package/dist/tailwind-plugin-card.js.map +1 -0
  95. package/dist/tailwind-plugin-card.ts +515 -0
  96. package/dist/tailwind.config.d.ts.map +1 -1
  97. package/dist/tailwind.config.js +3 -1
  98. package/dist/tailwind.config.js.map +1 -1
  99. package/dist/tailwind.config.ts +3 -2
  100. package/dist/util/EventEmitterMixin.d.ts +5 -0
  101. package/dist/util/EventEmitterMixin.d.ts.map +1 -1
  102. package/dist/util/EventEmitterMixin.js.map +1 -1
  103. package/dist/util/OnFindMixin.d.ts +55 -0
  104. package/dist/util/OnFindMixin.d.ts.map +1 -0
  105. package/dist/util/OnFindMixin.js +70 -0
  106. package/dist/util/OnFindMixin.js.map +1 -0
  107. package/dist/util/onFind.d.ts +4 -2
  108. package/dist/util/onFind.d.ts.map +1 -1
  109. package/dist/util/onFind.js +12 -0
  110. package/dist/util/onFind.js.map +1 -1
  111. package/docs/components/ButtonGroup.md +7 -3
  112. package/docs/components/Card.md +83 -0
  113. package/docs/components/EmptyState.md +10 -6
  114. package/docs/components/EscaAvatar.md +70 -0
  115. package/docs/components/README.md +2 -0
  116. package/docs/components/Widget.md +18 -14
  117. package/package.json +2 -2
  118. package/src/legacy/tool-ui/src/AIInline.css +1 -1
  119. package/src/legacy/tool-ui/src/ContentForm.css +1 -1
  120. package/src/legacy/tool-ui/src/Guide.css +1 -1
  121. package/src/legacy/tool-ui/src/Notification.css +1 -1
  122. package/src/legacy/tool-ui/src/Popup.css +4 -1
  123. package/src/legacy/tool-ui/src/RepeatableContentInputGroup.css +3 -3
  124. package/src/legacy/tool-ui/src/SearchWidget.ts +10 -1
  125. package/src/legacy/tool-ui/src/dropdown/index.ts +2 -2
  126. package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.c6f3142a97caa5cd3c21.js +500 -0
  127. package/src/legacy/tool-ui/src/main/webapp/dist/v4.c1c3bde6e394b2a2b75c.css +3 -0
  128. package/src/legacy/tool-ui/src/main/webapp/dist/{v4.c5bcef50efdfa2d2e35f.js → v4.da15ce3ce45e85b4880a.js} +5 -5
  129. package/src/legacy/tool-ui/src/main/webapp/dist/v5.4edf99db4a5f4969d041.css +5 -0
  130. package/src/legacy/tool-ui/src/main/webapp/dist/{v5.86effb9bf858ae7b0640.js → v5.8491d982a282935a3058.js} +5 -5
  131. package/src/legacy/tool-ui/src/main/webapp/v4/ContentForm.less +1 -1
  132. package/src/legacy/tool-ui/src/main/webapp/v4/ContentSelector.less +3 -3
  133. package/src/legacy/tool-ui/src/v5.ts +4 -2
  134. package/dist/storybook/assets/if-defined-f_e-RnGa.js +0 -1
  135. package/dist/storybook/assets/iframe-PeGbyIdX.css +0 -1
  136. package/dist/storybook/assets/onFind-C7Wi8jr6.js +0 -1
  137. package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.945bd28778b1a3e937c7.js +0 -500
  138. package/src/legacy/tool-ui/src/main/webapp/dist/v4.a6f53058dbb04a69aa5c.css +0 -3
  139. package/src/legacy/tool-ui/src/main/webapp/dist/v5.f60c05ef0c9b89aae888.css +0 -5
  140. /package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.945bd28778b1a3e937c7.js.LICENSE.txt → RTEProseMirror.c6f3142a97caa5cd3c21.js.LICENSE.txt} +0 -0
  141. /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.c5bcef50efdfa2d2e35f.js.LICENSE.txt → v4.da15ce3ce45e85b4880a.js.LICENSE.txt} +0 -0
  142. /package/src/legacy/tool-ui/src/main/webapp/dist/{v5.86effb9bf858ae7b0640.js.LICENSE.txt → v5.8491d982a282935a3058.js.LICENSE.txt} +0 -0
@@ -13,6 +13,7 @@
13
13
  | Name | Module | Package |
14
14
  | ------------------- | ------------------------------ | ------- |
15
15
  | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
+ | `OnFindMixin` | /src/util/OnFindMixin.js | |
16
17
  | `ReadyMixin` | /src/util/ReadyMixin.js | |
17
18
 
18
19
  ### Static Fields
@@ -23,23 +24,26 @@
23
24
 
24
25
  ### Fields
25
26
 
26
- | Name | Privacy | Type | Default | Description | Inherited From |
27
- | -------------------- | ------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------------- |
28
- | `_internals` | private | | | | |
29
- | `heading` | | `string` | `''` | Heading text displayed in the header. | |
30
- | `collapsible` | | `boolean` | `false` | Whether the widget can be collapsed/expanded.
When true, a chevron toggle button appears in the header. | |
31
- | `collapsed` | | `boolean` | `false` | Whether the widget is currently collapsed.
When true, body and footer are hidden. Implies collapsible. | |
32
- | `fullscreenable` | | `boolean` | `false` | Whether the widget can enter fullscreen mode.
When true, a fullscreen toggle button appears in the header. | |
33
- | `_isFullscreen` | private | `boolean` | `false` | | |
34
- | `_collapseTooltip` | private | | `new TooltipController(this, { target: 'button[data-tooltip="collapse"]', text: () => (this.collapsed ? 'Expand' : 'Collapse'), position: 'bottom', noArrow: true, offset: 'sm', })` | | |
35
- | `_fullscreenTooltip` | private | | `new TooltipController(this, { target: 'button[data-tooltip="fullscreen"]', text: () => (this._isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'), position: 'bottom', noArrow: true, offset: 'sm', })` | | |
36
- | `isFullscreen` | | `boolean` | | Whether the widget is currently in fullscreen mode (read-only).
Use \`btu-widget-fullscreen-changed\` event to react to changes. | |
27
+ | Name | Privacy | Type | Default | Description | Inherited From |
28
+ | -------------------- | ------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------------- |
29
+ | `_internals` | private | | | | |
30
+ | `heading` | | `string` | `''` | Heading text displayed in the header. | |
31
+ | `collapsible` | | `boolean` | `false` | Whether the widget can be collapsed/expanded.
When true, a chevron toggle button appears in the header. | |
32
+ | `collapsed` | | `boolean` | `false` | Whether the widget is currently collapsed.
When true, body and footer are hidden. Implies collapsible. | |
33
+ | `fullscreenable` | | `boolean` | `false` | Whether the widget can enter fullscreen mode.
When true, a fullscreen toggle button appears in the header. | |
34
+ | `_isFullscreen` | private | `boolean` | `false` | | |
35
+ | `_collapseTooltip` | private | | `new TooltipController(this, { target: 'button[data-tooltip="collapse"]', text: () => (this.collapsed ? 'Expand' : 'Collapse'), position: 'bottom', noArrow: true, offset: 'sm', })` | | |
36
+ | `_fullscreenTooltip` | private | | `new TooltipController(this, { target: 'button[data-tooltip="fullscreen"]', text: () => (this._isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'), position: 'bottom', noArrow: true, offset: 'sm', })` | | |
37
+ | `isFullscreen` | | `boolean` | | Whether the widget is currently in fullscreen mode (read-only).
Use \`btu-widget-fullscreen-changed\` event to react to changes. | |
38
+ | `#stopFns` | private | `Array<() => void>` | `[]` | | OnFindMixin |
37
39
 
38
40
  ### Methods
39
41
 
40
- | Name | Privacy | Description | Parameters | Return | Inherited From |
41
- | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
42
- | `emit` | | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean` | EventEmitterMixin |
42
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
43
+ | -------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- | ----------------- |
44
+ | `emit` | | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean` | EventEmitterMixin |
45
+ | `onFindRegistration` | | | | `OnFindRegistration \| OnFindRegistration[] \| null` | OnFindMixin |
46
+ | `#armFind` | private | | | | OnFindMixin |
43
47
 
44
48
  ### Events
45
49
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspot/ui",
3
- "version": "5.0.4-pre.20260624",
3
+ "version": "5.2.0",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "description": "A UI library for building Brightspot CMS components.",
@@ -21,7 +21,6 @@
21
21
  "cem:watch": "cem analyze --litelement --watch",
22
22
  "cem:docs": "yarn cem && node scripts/generate-docs.mjs",
23
23
  "build": "yarn clean && tsc --noEmitOnError && yarn cem && node scripts/copy-component-css.mjs && shx cp ./src/*.ts ./dist && shx rm ./dist/tailwind.storybook.config* && shx rm -Rf ./dist/stories",
24
- "build:cms-ui": "yarn build && (cd src/legacy/tool-ui && yarn install --frozen-lockfile && yarn build) && (cd tool-ui && yarn install && yarn build)",
25
24
  "prepack": "yarn build && yarn build-storybook && (cd src/legacy/tool-ui && yarn build)",
26
25
  "storybook": "yarn cem && storybook dev -p 6006",
27
26
  "build-storybook": "yarn cem && storybook build -o ./dist/storybook",
@@ -80,6 +79,7 @@
80
79
  "@tailwindcss/container-queries": "^0.1.1",
81
80
  "broadcast-channel": "^4.13.0",
82
81
  "loglevel": "^1.8.0",
82
+ "lottie-web": "^5.13.0",
83
83
  "lucide-static": "0.508.0",
84
84
  "tabbable": "6.2.0",
85
85
  "tailwindcss": "^3.4.13",
@@ -43,7 +43,7 @@
43
43
  @apply m-0 p-0;
44
44
 
45
45
  > button {
46
- @apply flex w-full cursor-pointer items-center gap-1 rounded px-3 py-2 text-start text-sm text-gray-900 hover:bg-gray-100;
46
+ @apply flex w-full cursor-pointer items-center gap-1 px-3 py-2 text-start text-sm text-gray-900 hover:bg-gray-100;
47
47
  }
48
48
  }
49
49
  }
@@ -26,7 +26,7 @@
26
26
  > .CIG-large
27
27
  > .RCIG-list
28
28
  > li
29
- > :where(.RCIG-remove, btu-dropdown) {
29
+ > :where(.RCIG-remove, btu-legacy-dropdown) {
30
30
  @apply hidden;
31
31
  }
32
32
  }
@@ -137,7 +137,7 @@
137
137
  &:not(.has-dropdown-actions) {
138
138
  @apply grid-cols-[1fr];
139
139
 
140
- > btu-dropdown {
140
+ > btu-legacy-dropdown {
141
141
  @apply hidden;
142
142
  }
143
143
 
@@ -185,7 +185,7 @@
185
185
  }
186
186
 
187
187
  > .RCIG-remove,
188
- > btu-dropdown {
188
+ > btu-legacy-dropdown {
189
189
  @apply hidden;
190
190
  }
191
191
  }
@@ -278,7 +278,10 @@
278
278
  .AuthorPersona-title,
279
279
  .ContentEdit-workflowTitle,
280
280
  .PrePublishPopup .Widget-title,
281
- .Widget.is-collapsible .Widget-title
281
+ .Widget.is-collapsible .Widget-title,
282
+ /* Don't hide heading elements that are editable rich text content
283
+ (e.g. an H3 rich text element inside the RTE). */
284
+ .ProseMirror *
282
285
  ) {
283
286
  @apply !hidden;
284
287
  }
@@ -17,7 +17,7 @@
17
17
  @apply grid grid-cols-[1fr_repeat(4,auto)] grid-rows-[minmax(2.75rem,_auto)_1fr] items-center gap-x-2; /* minmax used to set the initial height of the RCIG-item to reduce shift while loading. */
18
18
 
19
19
  /* Accounts for fewer RCIG actions */
20
- &:not(:has(> btu-dropdown)),
20
+ &:not(:has(> btu-legacy-dropdown)),
21
21
  &:not(.MultiSortable) {
22
22
  @apply grid-cols-[1fr_repeat(3,auto)];
23
23
  }
@@ -147,7 +147,7 @@
147
147
  @apply invisible;
148
148
  }
149
149
 
150
- .RCIG-item:has(> btu-dropdown) {
150
+ .RCIG-item:has(> btu-legacy-dropdown) {
151
151
  .Dropdown-button {
152
152
  @apply btu-button-xs bg-white touch-device:btu-button-sm;
153
153
 
@@ -160,7 +160,7 @@
160
160
  @apply Dropdown-is-open;
161
161
  }
162
162
 
163
- & > btu-dropdown :where(.RCIG-swap, .copyButton, .convertButton) {
163
+ & > btu-legacy-dropdown :where(.RCIG-swap, .copyButton, .convertButton) {
164
164
  @apply visible before:btu-icon before:me-2;
165
165
  }
166
166
 
@@ -148,7 +148,16 @@ onFind('.searchFiltersType', (element) => {
148
148
  ? document.querySelector('.Page-search input[name="q"]')
149
149
  : element.nextElementSibling?.querySelector('input[name="q"]')
150
150
 
151
- if (targetQuery && targetQuery instanceof HTMLInputElement) {
151
+ // Only seed the sticky value into an empty, unfocused field so we never
152
+ // overwrite text the user has typed. This re-fires on every search frame
153
+ // reload; without the guard a reload overwrites the field with the saved
154
+ // (possibly empty) query and discards what the user just typed.
155
+ if (
156
+ targetQuery &&
157
+ targetQuery instanceof HTMLInputElement &&
158
+ !targetQuery.value &&
159
+ document.activeElement !== targetQuery
160
+ ) {
152
161
  targetQuery.value = sourceQuery.value
153
162
  }
154
163
  })
@@ -3,7 +3,7 @@ import { customElement, queryAsync, property } from 'lit/decorators.js'
3
3
  import { EventEmitterMixin } from '../EventEmitterMixin'
4
4
  import { setupMenuForAria, toggleMenu } from '../dom/popupMenu'
5
5
 
6
- @customElement('btu-dropdown')
6
+ @customElement('btu-legacy-dropdown')
7
7
  export default class Dropdown extends EventEmitterMixin(LitElement) {
8
8
  @queryAsync('.Dropdown-container')
9
9
  _dropdownContainer?: Promise<HTMLElement>
@@ -100,6 +100,6 @@ export default class Dropdown extends EventEmitterMixin(LitElement) {
100
100
 
101
101
  declare global {
102
102
  interface HTMLElementTagNameMap {
103
- 'btu-dropdown': Dropdown
103
+ 'btu-legacy-dropdown': Dropdown
104
104
  }
105
105
  }