@brightspot/ui 6.3.2 → 6.3.3-pr.337.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.
Files changed (24) hide show
  1. package/README.md +2 -0
  2. package/dist/storybook/project.json +1 -1
  3. package/package.json +1 -1
  4. package/src/legacy/tool-ui/src/Conversation.ts +3 -0
  5. package/src/legacy/tool-ui/src/Entry.ts +4 -29
  6. package/src/legacy/tool-ui/src/ProseMirror.css +5 -0
  7. package/src/legacy/tool-ui/src/RepeatableContentSelector.css +2 -2
  8. package/src/legacy/tool-ui/src/SearchResult.css +5 -0
  9. package/src/legacy/tool-ui/src/Toggleable/index.ts +37 -1
  10. package/src/legacy/tool-ui/src/main/webapp/dist/2111.99de62ae687524cfc313.css +1 -0
  11. package/src/legacy/tool-ui/src/main/webapp/dist/7718.99de62ae687524cfc313.css +1 -0
  12. package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.94bb2bfda58abfdd894e.js → RTEProseMirror.2a7b7972a23037063c2b.js} +5 -5
  13. package/src/legacy/tool-ui/src/main/webapp/dist/v4.530415a8a382eeef4f62.css +3 -0
  14. package/src/legacy/tool-ui/src/main/webapp/dist/{v4.cb024eef14914807528c.js → v4.9012ceafef1b97713a86.js} +5 -5
  15. package/src/legacy/tool-ui/src/main/webapp/dist/{v5.10d2a7f1cabee072b6a1.js → v5.50328b73e388603de68f.js} +5 -5
  16. package/src/legacy/tool-ui/src/main/webapp/dist/{v5.e1e83f5e0cd06ad0280c.css → v5.5eaf0e5934f304bb3f4a.css} +1 -1
  17. package/src/legacy/tool-ui/src/main/webapp/v4/ContentEdit.less +1 -0
  18. package/src/legacy/tool-ui/src/main/webapp/v4/SearchResult.less +7 -0
  19. package/src/legacy/tool-ui/src/main/webapp/dist/2111.5d43fec84fea624d6371.css +0 -1
  20. package/src/legacy/tool-ui/src/main/webapp/dist/7718.5d43fec84fea624d6371.css +0 -1
  21. package/src/legacy/tool-ui/src/main/webapp/dist/v4.05d6a78ae435b930dd53.css +0 -3
  22. /package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.94bb2bfda58abfdd894e.js.LICENSE.txt → RTEProseMirror.2a7b7972a23037063c2b.js.LICENSE.txt} +0 -0
  23. /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.cb024eef14914807528c.js.LICENSE.txt → v4.9012ceafef1b97713a86.js.LICENSE.txt} +0 -0
  24. /package/src/legacy/tool-ui/src/main/webapp/dist/{v5.10d2a7f1cabee072b6a1.js.LICENSE.txt → v5.50328b73e388603de68f.js.LICENSE.txt} +0 -0
package/README.md CHANGED
@@ -47,6 +47,8 @@ Now edit anything in `src/legacy/tool-ui/src/` and the browser updates on its ow
47
47
 
48
48
  _Seeing `502` errors? The CMS backend isn't reachable — check the docker step._
49
49
 
50
+ _Seeing `The 'btu-…' class does not exist` after a pull? Run `yarn install` here. New utilities can arrive with new dependency versions — icon names come from `lucide-static` — and a pull updates the code without updating what's installed. Running it at the repo root installs the `src/legacy/tool-ui/` workspace too, so one command covers both._
51
+
50
52
  ### Full way — build the real package (for a final check only)
51
53
 
52
54
  Slower, but produces the actual file the CMS ships. Needs two temporary edits in `brightspot` — **don't commit them**.
@@ -1 +1 @@
1
- {"generatedAt":1788974870315,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":true,"refCount":0,"knownPackages":{"testPackages":{"@storybook/addon-vitest":"10.2.12","@vitest/browser-playwright":"4.0.18","playwright":"1.58.2","vitest":"4.0.18"},"stylingPackages":{"tailwindcss":"^3.4.13","autoprefixer":"10.4.21"}},"hasRouterPackage":false,"packageManager":{"type":"yarn","agent":"yarn","nodeLinker":"undefined"},"preview":{"usesGlobals":true},"framework":{"name":"@storybook/web-components-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/web-components","portableStoriesFileCount":0,"applicationFileCount":6,"storybookVersion":"10.2.12","storybookVersionSpecifier":"10.2.12","language":"typescript","storybookPackages":{"@storybook/addon-themes":{"version":"10.2.12"},"@storybook/web-components-vite":{"version":"10.2.12"},"@wc-toolkit/storybook-helpers":{"version":"10.0.0"},"eslint-plugin-storybook":{"version":"10.0.7"},"storybook":{}},"addons":{"@storybook/addon-docs":{"version":"10.2.12"},"@storybook/addon-vitest":{"version":"10.2.12"}},"packageJsonType":"module"}
1
+ {"generatedAt":1789570944348,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":true,"refCount":0,"knownPackages":{"testPackages":{"@storybook/addon-vitest":"10.2.12","@vitest/browser-playwright":"4.0.18","playwright":"1.58.2","vitest":"4.0.18"},"stylingPackages":{"tailwindcss":"^3.4.13","autoprefixer":"10.4.21"}},"hasRouterPackage":false,"packageManager":{"type":"yarn","agent":"yarn","nodeLinker":"undefined"},"preview":{"usesGlobals":true},"framework":{"name":"@storybook/web-components-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/web-components","portableStoriesFileCount":0,"applicationFileCount":6,"storybookVersion":"10.2.12","storybookVersionSpecifier":"10.2.12","language":"typescript","storybookPackages":{"@storybook/addon-themes":{"version":"10.2.12"},"@storybook/web-components-vite":{"version":"10.2.12"},"@wc-toolkit/storybook-helpers":{"version":"10.0.0"},"eslint-plugin-storybook":{"version":"10.0.7"},"storybook":{}},"addons":{"@storybook/addon-docs":{"version":"10.2.12"},"@storybook/addon-vitest":{"version":"10.2.12"}},"packageJsonType":"module"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspot/ui",
3
- "version": "6.3.2",
3
+ "version": "6.3.3-pr.337.1",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "description": "A UI library for building Brightspot CMS components.",
@@ -424,6 +424,9 @@ onFind('.frame[name^=conversation-edit-post].loaded', (widget: HTMLElement) => {
424
424
 
425
425
  onFind('.Conversation-add-comment', (button) => {
426
426
  button.addEventListener('click', (event) => {
427
+ // This has no href, so keep the frame plugin from treating it as a link.
428
+ event.stopPropagation()
429
+
427
430
  const workflowBody = button.closest('.ContentEdit-workflowBody')
428
431
  if (workflowBody) {
429
432
  workflowBody
@@ -834,34 +834,6 @@ onVisible('.Deferred', (deferred) => {
834
834
  }
835
835
  })
836
836
 
837
- /* Frame JS removes the Widget class from frames so we need to re-add it; only target the popup's own
838
- frame so nested frames (e.g. the content edit preview) keep their regular styling */
839
- onFind(
840
- [
841
- '.Popup[name="edit-guide"] .frame',
842
- '.Popup[name="PostPublishActionsPage"] .frame',
843
- '.Popup[name^="create-new-object-"] > .Popup-content > .frame',
844
- '.Popup[name^="objectId-create-"] > .Popup-content > .frame',
845
- '.Popup[name="AddEmbeddedContent"] .frame',
846
- '.Popup[name^="conversation-"] .frame',
847
- '.Popup[name^="_copy"] > .Popup-content > .frame',
848
- '.Popup[name="DateStringCalendarFrame"] .frame',
849
- ],
850
- (frame: HTMLElement) => {
851
- const config = { attributeFilter: ['class'] }
852
- const observer = new MutationObserver((mutations) => {
853
- mutations.forEach((mutation) => {
854
- const target = mutation.target as HTMLElement
855
- if (!target.classList.contains('Widget')) {
856
- target.classList.add('Widget')
857
- }
858
- })
859
- })
860
-
861
- observer.observe(frame, config)
862
- },
863
- )
864
-
865
837
  // Handle Content Edit left pane scrolling to hide and collapse the top bar.
866
838
  // Note: Scroll event is used instead of IntersectionObserver because of dynamic content in scroll area.
867
839
  onFind('.ContentEdit-left', (leftPane: HTMLElement) => {
@@ -935,7 +907,10 @@ onFind('.Widget-controls', (controls: HTMLElement) => {
935
907
  const widget = controls.closest<HTMLElement>('.Widget')
936
908
  if (!widget) return
937
909
  const update = () =>
938
- widget.classList.toggle('has-widgetControls', controls.childNodes.length > 0)
910
+ widget.classList.toggle(
911
+ 'has-widgetControls',
912
+ controls.childNodes.length > 0,
913
+ )
939
914
  update()
940
915
  new MutationObserver(update).observe(controls, { childList: true })
941
916
  })
@@ -8,6 +8,11 @@
8
8
  @apply h-1 overflow-hidden;
9
9
  }
10
10
 
11
+ /* Tailwind's preflight makes img a block, which gives ProseMirror's cursor hack a line of its own. */
12
+ .ProseMirror img.ProseMirror-separator {
13
+ display: inline;
14
+ }
15
+
11
16
  /* styling enhanced text as it appears in the editor */
12
17
  .ProseMirror {
13
18
  .rte2-style-bold {
@@ -44,8 +44,8 @@
44
44
  @apply before:ms-2 before:flex before:size-5 before:cursor-move before:justify-center before:text-sm before:text-gray-500 before:content-[counter(RCS-item)];
45
45
  }
46
46
 
47
- /* Hide item until the multisort button gets added from Sortable.js */
48
- &.Sortable-item:not(:has(.MultiSortable-buttonToggle), .Sortable-ghost) {
47
+ /* Hide item until Sortable.js has finished initializing it */
48
+ &.Sortable-item:not(.is-sortableReady, .Sortable-ghost) {
49
49
  @apply opacity-0;
50
50
  }
51
51
  }
@@ -434,6 +434,11 @@
434
434
  .SearchResult-fullscreen {
435
435
  @apply btu-button btu-button-text-hidden btu-button-gray me-1 ms-3 overflow-visible bg-white opacity-[var(--controls-opacity,_1)] transition-opacity [grid-area:fullscreen] before:btu-icon before:btu-icon-maximize after:absolute after:right-[43px] after:h-full after:w-px after:bg-gray-200 hover:bg-gray-100;
436
436
  }
437
+
438
+ .SearchResult-actions-toggle.is-loading,
439
+ .SearchResult-fullscreen.is-loading {
440
+ @apply before:btu-icon-loader before:animate-spin;
441
+ }
437
442
  }
438
443
 
439
444
  /* Shown when user toggles Summary fiels in "Select Fields" menu */
@@ -37,6 +37,16 @@ export default class Toggleable extends EventEmitterMixin(
37
37
  this._handleChange()
38
38
  }
39
39
 
40
+ /*
41
+ Re-applies the current selection's show/hide + enable/disable state.
42
+ Called by an ancestor Toggleable after its enable pass, which would
43
+ otherwise leave this toggleable's toggled-off branch inputs enabled
44
+ and submitting stale values (BSP-19758).
45
+ */
46
+ refresh() {
47
+ this._handleChange()
48
+ }
49
+
40
50
  constructor() {
41
51
  super()
42
52
  this._forms = []
@@ -177,8 +187,8 @@ export default class Toggleable extends EventEmitterMixin(
177
187
  body: data,
178
188
  })
179
189
 
180
- form.element.innerHTML = await response.text()
181
190
  if (response.ok) {
191
+ form.element.innerHTML = await response.text()
182
192
  delete form.element.dataset.formFieldsUrl
183
193
  delete form.element.dataset.formFieldsData
184
194
 
@@ -187,6 +197,11 @@ export default class Toggleable extends EventEmitterMixin(
187
197
  )
188
198
  form.element.dispatchEvent(new Event('load'))
189
199
  form.element.dispatchEvent(new UIEvent('resize'))
200
+
201
+ // The selection may have changed while the request was in
202
+ // flight; re-apply it so content that arrived for a branch
203
+ // that is no longer selected doesn't come back enabled.
204
+ this._handleChange()
190
205
  } else {
191
206
  form.element.dispatchEvent(
192
207
  new CustomEvent('error', {
@@ -229,6 +244,27 @@ export default class Toggleable extends EventEmitterMixin(
229
244
  inputs.forEach((input) => {
230
245
  input.toggleAttribute('disabled', disable)
231
246
  })
247
+
248
+ if (!disable) {
249
+ // The enable pass above walks the whole subtree, so it also enabled
250
+ // inputs in nested toggleables' toggled-off branches (BSP-19758:
251
+ // duplicate typeId params flip a polymorphic record to the wrong
252
+ // type on save). Re-apply each nested toggleable's own state, after
253
+ // the enable pass, to disable those branches again. Document order
254
+ // guarantees an outer nested toggleable is refreshed before any
255
+ // toggleable inside its branches.
256
+ divsToToggle.forEach((el) => {
257
+ el.querySelectorAll<Toggleable>('btu-toggleable').forEach(
258
+ (nested) => {
259
+ // A not-yet-upgraded element applies its own state when it
260
+ // connects, so it can safely be skipped here.
261
+ if (nested !== this && nested instanceof Toggleable) {
262
+ nested.refresh()
263
+ }
264
+ },
265
+ )
266
+ })
267
+ }
232
268
  }
233
269
  }
234
270
 
@@ -0,0 +1 @@
1
+ .ProseMirror{--ProseMirror-numLines:10;min-height:calc(var(--ProseMirror-numLines) * 1.25rem);white-space:pre-wrap;line-height:normal}[dir] .ProseMirror{padding-top:var(--lineHeight-m);padding-bottom:var(--lineHeight-m)}[dir=ltr] .ProseMirror,[dir=rtl] .ProseMirror{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem;padding-left:1rem;padding-right:1rem}[dir] .ProseMirror:focus{box-shadow:none}:where(.ProseMirror-fullscreen-container){height:.25rem;overflow:hidden}.ProseMirror img.ProseMirror-separator{display:inline}.ProseMirror .rte2-style-bold{font-weight:700}.ProseMirror .rte2-style-italic{font-style:italic}.ProseMirror .rte2-style-underline{text-decoration-line:underline}.ProseMirror .rte2-style-strikethrough{text-decoration-line:line-through}[dir=ltr] .ProseMirror .cms-textAlign-left{text-align:left}[dir=rtl] .ProseMirror .cms-textAlign-left{text-align:right}[dir] .ProseMirror :where(.cms-textAlign-center,[dir] .rte2-style-align-center){text-align:center}[dir=ltr] .ProseMirror :where(.cms-textAlign-right,[dir=ltr] .rte2-style-align-right){text-align:right}[dir=rtl] .ProseMirror :where(.cms-textAlign-right,[dir=rtl] .rte2-style-align-right){text-align:left}.ProseMirror .rte2-style-subscript{bottom:-.25rem}.ProseMirror .rte2-style-subscript,.ProseMirror .rte2-style-superscript{position:relative;vertical-align:baseline;font-size:75%;line-height:0}.ProseMirror .rte2-style-superscript{top:-.5rem}.ProseMirror .rte2-style-brightspot-core-rte-heading-HeadingThree{font-size:1.125rem;line-height:1.75rem;font-weight:600}.ProseMirror .rte2-style-brightspot-core-rte-heading-HeadingTwo{font-size:1.5rem;line-height:2rem;font-weight:600}.ProseMirror :is(bsp-line,bsp-break){display:block}.ProseMirror :is(bsp-line,bsp-break):has(>.ProseMirror-trailingBreak){line-height:var(--lineHeight-m)}[dir] .ProseMirror :where(ul,[dir] ol):not(.Dropdown,[dir] .ProseMirror-tableSubmenuList){margin-top:1.25rem;margin-bottom:1.25rem}[dir=ltr] .ProseMirror :where(ul,[dir=ltr] ol):not(.Dropdown,[dir=ltr] .ProseMirror-tableSubmenuList){margin-left:2rem}[dir=rtl] .ProseMirror :where(ul,[dir=rtl] ol):not(.Dropdown,[dir=rtl] .ProseMirror-tableSubmenuList){margin-right:2rem}.ProseMirror ul{list-style-type:disc}.ProseMirror ul ul{list-style-type:circle}.ProseMirror ul ul ul{list-style-type:square}.ProseMirror ol{list-style-type:decimal}.ProseMirror ol ol{list-style-type:lower-alpha}.ProseMirror li{position:relative}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay){caret-color:transparent;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}[dir] .ProseMirror:has(+.ProseMirror-moveEnhancementOverlay){border-color:transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay)>:not(.Enhancement.readOnly.ProseMirror-selectednode){opacity:.6}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay) .Enhancement.readOnly.ProseMirror-selectednode{--tw-border-opacity:1}[dir] .ProseMirror:has(+.ProseMirror-moveEnhancementOverlay) .Enhancement.readOnly.ProseMirror-selectednode{border-color:oklch(var(--btu-theme-primary-700)/var(--tw-border-opacity))}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay) .Enhancement.readOnly.ProseMirror-selectednode>*{opacity:.6}.ProseMirror .rte2-style-comment{gap:.5rem;--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-primary-800)/var(--tw-text-opacity))}[dir] .ProseMirror .rte2-style-comment{border-radius:.25rem;background-color:oklch(var(--btu-theme-primary-50)/var(--tw-bg-opacity))}[dir=ltr] .ProseMirror .rte2-style-comment,[dir=rtl] .ProseMirror .rte2-style-comment{margin-left:.25rem;margin-right:.25rem;padding-left:.25rem;padding-right:.25rem}.ProseMirror .rte2-style-comment:before{font-family:lucide;display:inline-flex;font-feature-settings:"liga" 0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:var(--icon-size);font-style:normal;font-weight:400;letter-spacing:normal;line-height:var(--icon-size);text-transform:none;white-space:nowrap;word-wrap:normal;vertical-align:top;--tw-content:"\e116";padding-inline-end:.25rem;content:var(--tw-content);--icon-size:1.25rem}[dir=ltr] .ProseMirror .rte2-style-comment:before{direction:ltr}[dir=rtl] .ProseMirror .rte2-style-comment:before{direction:rtl}.ProseMirror .rte2-style-comment[data-collapse=true]:before{content:var(--tw-content);padding-inline-end:0}.ProseMirror .rte2-style-comment .collapsed{display:none}.is-locked .ProseMirror .rte2-style-comment{opacity:.6}.ProseMirror-comments{display:none}.rte2-style-ins-insert{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-success-900)/var(--tw-text-opacity));text-decoration-line:none}[dir] .rte2-style-ins-insert{background-color:oklch(var(--btu-theme-success-200)/var(--tw-bg-opacity))}.rte2-style-ins-insert .Enhancement{--tw-bg-opacity:1}[dir] .rte2-style-ins-insert .Enhancement{background-color:oklch(var(--btu-theme-success-50)/var(--tw-bg-opacity))}.rte2-style-ins-delete{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-error-900)/var(--tw-text-opacity))}[dir] .rte2-style-ins-delete{background-color:oklch(var(--btu-theme-error-200)/var(--tw-bg-opacity))}.rte2-style-ins-delete .Enhancement{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-error-600)/var(--tw-text-opacity))}[dir] .rte2-style-ins-delete .Enhancement{background-color:oklch(var(--btu-theme-error-50)/var(--tw-bg-opacity))}.rte2-style-ins-delete .ProsemirrorEnhancementMenu{display:none}[dir] .ProseMirror-previewMode .rte2-style-ins-insert,[dir] .ProseMirror-previewMode .rte2-style-ins-insert .Enhancement{background-color:transparent}.ProseMirror-previewMode .rte2-style-ins-delete{display:none}.ProseMirror-aiPreviewMode .rte2-style-ins-ai{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-purple-900)/var(--tw-text-opacity))}[dir] .ProseMirror-aiPreviewMode .rte2-style-ins-ai{background-color:oklch(var(--btu-theme-purple-100)/var(--tw-bg-opacity))}.ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-highlight{--tw-bg-opacity:1}[dir] .ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-highlight{background-color:oklch(var(--btu-theme-primary-50)/var(--tw-bg-opacity))}.ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-ins{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-primary-900)/var(--tw-text-opacity));text-decoration-line:none}[dir] .ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-ins{background-color:oklch(var(--btu-theme-primary-50)/var(--tw-bg-opacity))}.ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-del{--tw-bg-opacity:1;text-decoration-line:line-through}[dir] .ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-del{background-color:oklch(var(--btu-theme-gray-50)/var(--tw-bg-opacity))}.CIG-row:only-child.is-unlabeled[data-field=richText]{width:100%}
@@ -0,0 +1 @@
1
+ .ProseMirror{--ProseMirror-numLines:10;min-height:calc(var(--ProseMirror-numLines) * 1.25rem);white-space:pre-wrap;line-height:normal}[dir] .ProseMirror{padding-top:var(--lineHeight-m);padding-bottom:var(--lineHeight-m)}[dir=ltr] .ProseMirror,[dir=rtl] .ProseMirror{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem;padding-left:1rem;padding-right:1rem}[dir] .ProseMirror:focus{box-shadow:none}:where(.ProseMirror-fullscreen-container){height:.25rem;overflow:hidden}.ProseMirror img.ProseMirror-separator{display:inline}.ProseMirror .rte2-style-bold{font-weight:700}.ProseMirror .rte2-style-italic{font-style:italic}.ProseMirror .rte2-style-underline{text-decoration-line:underline}.ProseMirror .rte2-style-strikethrough{text-decoration-line:line-through}[dir=ltr] .ProseMirror .cms-textAlign-left{text-align:left}[dir=rtl] .ProseMirror .cms-textAlign-left{text-align:right}[dir] .ProseMirror :where(.cms-textAlign-center,[dir] .rte2-style-align-center){text-align:center}[dir=ltr] .ProseMirror :where(.cms-textAlign-right,[dir=ltr] .rte2-style-align-right){text-align:right}[dir=rtl] .ProseMirror :where(.cms-textAlign-right,[dir=rtl] .rte2-style-align-right){text-align:left}.ProseMirror .rte2-style-subscript{bottom:-.25rem}.ProseMirror .rte2-style-subscript,.ProseMirror .rte2-style-superscript{position:relative;vertical-align:baseline;font-size:75%;line-height:0}.ProseMirror .rte2-style-superscript{top:-.5rem}.ProseMirror .rte2-style-brightspot-core-rte-heading-HeadingThree{font-size:1.125rem;line-height:1.75rem;font-weight:600}.ProseMirror .rte2-style-brightspot-core-rte-heading-HeadingTwo{font-size:1.5rem;line-height:2rem;font-weight:600}.ProseMirror :is(bsp-line,bsp-break){display:block}.ProseMirror :is(bsp-line,bsp-break):has(>.ProseMirror-trailingBreak){line-height:var(--lineHeight-m)}[dir] .ProseMirror :where(ul,[dir] ol):not(.Dropdown,[dir] .ProseMirror-tableSubmenuList){margin-top:1.25rem;margin-bottom:1.25rem}[dir=ltr] .ProseMirror :where(ul,[dir=ltr] ol):not(.Dropdown,[dir=ltr] .ProseMirror-tableSubmenuList){margin-left:2rem}[dir=rtl] .ProseMirror :where(ul,[dir=rtl] ol):not(.Dropdown,[dir=rtl] .ProseMirror-tableSubmenuList){margin-right:2rem}.ProseMirror ul{list-style-type:disc}.ProseMirror ul ul{list-style-type:circle}.ProseMirror ul ul ul{list-style-type:square}.ProseMirror ol{list-style-type:decimal}.ProseMirror ol ol{list-style-type:lower-alpha}.ProseMirror li{position:relative}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay){caret-color:transparent;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}[dir] .ProseMirror:has(+.ProseMirror-moveEnhancementOverlay){border-color:transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay)>:not(.Enhancement.readOnly.ProseMirror-selectednode){opacity:.6}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay) .Enhancement.readOnly.ProseMirror-selectednode{--tw-border-opacity:1}[dir] .ProseMirror:has(+.ProseMirror-moveEnhancementOverlay) .Enhancement.readOnly.ProseMirror-selectednode{border-color:oklch(var(--btu-theme-primary-700)/var(--tw-border-opacity))}.ProseMirror:has(+.ProseMirror-moveEnhancementOverlay) .Enhancement.readOnly.ProseMirror-selectednode>*{opacity:.6}.ProseMirror .rte2-style-comment{gap:.5rem;--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-primary-800)/var(--tw-text-opacity))}[dir] .ProseMirror .rte2-style-comment{border-radius:.25rem;background-color:oklch(var(--btu-theme-primary-50)/var(--tw-bg-opacity))}[dir=ltr] .ProseMirror .rte2-style-comment,[dir=rtl] .ProseMirror .rte2-style-comment{margin-left:.25rem;margin-right:.25rem;padding-left:.25rem;padding-right:.25rem}.ProseMirror .rte2-style-comment:before{font-family:lucide;display:inline-flex;font-feature-settings:"liga" 0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:var(--icon-size);font-style:normal;font-weight:400;letter-spacing:normal;line-height:var(--icon-size);text-transform:none;white-space:nowrap;word-wrap:normal;vertical-align:top;--tw-content:"\e116";padding-inline-end:.25rem;content:var(--tw-content);--icon-size:1.25rem}[dir=ltr] .ProseMirror .rte2-style-comment:before{direction:ltr}[dir=rtl] .ProseMirror .rte2-style-comment:before{direction:rtl}.ProseMirror .rte2-style-comment[data-collapse=true]:before{content:var(--tw-content);padding-inline-end:0}.ProseMirror .rte2-style-comment .collapsed{display:none}.is-locked .ProseMirror .rte2-style-comment{opacity:.6}.ProseMirror-comments{display:none}.rte2-style-ins-insert{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-success-900)/var(--tw-text-opacity));text-decoration-line:none}[dir] .rte2-style-ins-insert{background-color:oklch(var(--btu-theme-success-200)/var(--tw-bg-opacity))}.rte2-style-ins-insert .Enhancement{--tw-bg-opacity:1}[dir] .rte2-style-ins-insert .Enhancement{background-color:oklch(var(--btu-theme-success-50)/var(--tw-bg-opacity))}.rte2-style-ins-delete{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-error-900)/var(--tw-text-opacity))}[dir] .rte2-style-ins-delete{background-color:oklch(var(--btu-theme-error-200)/var(--tw-bg-opacity))}.rte2-style-ins-delete .Enhancement{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-error-600)/var(--tw-text-opacity))}[dir] .rte2-style-ins-delete .Enhancement{background-color:oklch(var(--btu-theme-error-50)/var(--tw-bg-opacity))}.rte2-style-ins-delete .ProsemirrorEnhancementMenu{display:none}[dir] .ProseMirror-previewMode .rte2-style-ins-insert,[dir] .ProseMirror-previewMode .rte2-style-ins-insert .Enhancement{background-color:transparent}.ProseMirror-previewMode .rte2-style-ins-delete{display:none}.ProseMirror-aiPreviewMode .rte2-style-ins-ai{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-purple-900)/var(--tw-text-opacity))}[dir] .ProseMirror-aiPreviewMode .rte2-style-ins-ai{background-color:oklch(var(--btu-theme-purple-100)/var(--tw-bg-opacity))}.ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-highlight{--tw-bg-opacity:1}[dir] .ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-highlight{background-color:oklch(var(--btu-theme-primary-50)/var(--tw-bg-opacity))}.ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-ins{--tw-bg-opacity:1;--tw-text-opacity:1;color:oklch(var(--btu-theme-primary-900)/var(--tw-text-opacity));text-decoration-line:none}[dir] .ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-ins{background-color:oklch(var(--btu-theme-primary-50)/var(--tw-bg-opacity))}.ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-del{--tw-bg-opacity:1;text-decoration-line:line-through}[dir] .ProseMirror-aiInlinePreviewMode .rte2-style-ai-inline-del{background-color:oklch(var(--btu-theme-gray-50)/var(--tw-bg-opacity))}.CIG-row:only-child.is-unlabeled[data-field=richText]{width:100%}