@orangelogic/design-system 2.170.0 → 2.172.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 (45) hide show
  1. package/library/chunks/{asset-link-format.BSo7khRt.js → asset-link-format.BATKDRgD.js} +1 -1
  2. package/library/chunks/button.styles.Bcj_XoRt.js +5 -0
  3. package/library/chunks/{button.DDem_XZq.js → button.zWaIO1sl.js} +1 -1
  4. package/library/chunks/{color-swatch-group.C_PwK2oY.js → color-swatch-group.CQlgq_I5.js} +3 -3
  5. package/library/chunks/{confirm-popover.Cx6BUoTL.js → confirm-popover.hHcCIzpX.js} +2 -2
  6. package/library/chunks/{dialog.B_v8598F.js → dialog.BaHYOyYO.js} +1 -1
  7. package/library/chunks/{document-viewer.BT1kp8Ig.js → document-viewer.B89YB5oo.js} +1 -1
  8. package/library/chunks/{folder-select.B9qqU1CQ.js → folder-select.C6Sv4jtu.js} +60 -44
  9. package/library/chunks/{modal.jdGhujoh.js → modal.Ct0bJBSe.js} +21 -7
  10. package/library/chunks/{pagination.TxcRv9BL.js → pagination.CwKlKOek.js} +1 -1
  11. package/library/chunks/{tab-group.BdWDbwBy.js → tab-group.C_n0GEc_.js} +1 -1
  12. package/library/components/asset-link-format.js +2 -2
  13. package/library/components/atoms.js +5 -5
  14. package/library/components/button.js +2 -2
  15. package/library/components/color-picker.js +1 -1
  16. package/library/components/color-swatch-group.js +1 -1
  17. package/library/components/confirm-popover.js +3 -3
  18. package/library/components/dialog.js +2 -2
  19. package/library/components/document-viewer.js +1 -1
  20. package/library/components/drawer.js +1 -1
  21. package/library/components/dynamic-select.js +62 -54
  22. package/library/components/element-clamp.js +1 -1
  23. package/library/components/file-on-demand.js +4 -4
  24. package/library/components/folder-select.js +1 -1
  25. package/library/components/line-clamp.js +1 -1
  26. package/library/components/molecules.js +2 -2
  27. package/library/components/organisms.js +2 -2
  28. package/library/components/pagination.js +2 -2
  29. package/library/components/radio-button.js +1 -1
  30. package/library/components/tab-group.js +2 -2
  31. package/library/components/types.js +22256 -22085
  32. package/library/package.json +1 -1
  33. package/library/packages/molecules/src/dynamic-select/dynamic-select.d.ts +7 -0
  34. package/library/packages/molecules/src/folder-select/folder-select.d.ts +14 -0
  35. package/library/packages/organisms/src/content-builder/content-builder.d.ts +23 -0
  36. package/library/packages/organisms/src/content-builder/content-builder.telemetry.d.ts +67 -0
  37. package/library/packages/organisms/src/content-builder/plugins/index.d.ts +1 -0
  38. package/library/packages/organisms/src/content-builder/plugins/telemetry.d.ts +15 -0
  39. package/library/packages/organisms/src/content-builder/styleController.d.ts +1 -0
  40. package/library/packages/types/src/content-builder.d.ts +5 -0
  41. package/library/packages/utils/src/custom-element/modal.d.ts +7 -0
  42. package/library/react-web-component.d.ts +8 -0
  43. package/library/utils.js +1 -1
  44. package/package.json +1 -1
  45. package/library/chunks/button.styles.BersilzZ.js +0 -5
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.170.0",
4
+ "version": "2.172.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -209,6 +209,12 @@ export default class CxDynamicSelect extends CortexElement {
209
209
  */
210
210
  noFlip: boolean;
211
211
  customChangeEvent: string;
212
+ /**
213
+ * When set to true, after options are fetched, the select falls back to the first option's value
214
+ * when the current `value` does not match any fetched option (including when no `value` was provided).
215
+ * Has no effect when `multiple` is enabled.
216
+ */
217
+ autoFallbackFirstOption: boolean;
212
218
  options: Option[];
213
219
  start: number;
214
220
  searchTerm: string;
@@ -228,6 +234,7 @@ export default class CxDynamicSelect extends CortexElement {
228
234
  private tableFilterCallback;
229
235
  private getCellValue;
230
236
  private getColWidth;
237
+ private getFallbackValue;
231
238
  private handleInputChange;
232
239
  private handleLoadMore;
233
240
  private handleCustomChange;
@@ -59,6 +59,20 @@ export default class CxFolderSelect extends CortexElement {
59
59
  private handleSearchTermInputChange;
60
60
  private handleSearchTermSelectChange;
61
61
  private handleTreeLoadingChange;
62
+ /**
63
+ * Lazy-loaded tree children can grow the popup's content well past its
64
+ * original height. cx-popup only recomputes flip/placement on scroll,
65
+ * resize, or viewport changes (Floating UI's autoUpdate) — not on
66
+ * internal content mutations — so without this the popup can stay
67
+ * anchored below the trigger even after it no longer fits there.
68
+ *
69
+ * Clearing --auto-size-available-height/-width first matters as much as
70
+ * the reposition() call itself: cx-select's own auto-size CSS clamps the
71
+ * listbox to the *previous* available space, so flip's overflow check
72
+ * still measures the clamped (small) height and never decides to flip
73
+ * (see the same clear in cx-select's filterOptionsByInput()).
74
+ */
75
+ private handleTreeChildrenLoaded;
62
76
  private handleSelectClear;
63
77
  /**
64
78
  * cx-folder-select-tree owns `currentRootIDsSet` (the real source of
@@ -111,6 +111,15 @@ export default class CxContentBuilder extends CortexElement {
111
111
  * @default false
112
112
  */
113
113
  enableAssetFormatControls: boolean;
114
+ /**
115
+ * Whether the content builder emits `ol:ui-metric` events timing each user action,
116
+ * for collection as browser OpenTelemetry histograms.
117
+ *
118
+ * Off by default: when false no timers are armed and no events are dispatched, so an
119
+ * unmonitored site pays nothing for this being here.
120
+ * @default false
121
+ */
122
+ enableMetrics: boolean;
114
123
  /**
115
124
  * Default asset format applied to image blocks.
116
125
  * Used as the initial format when a block is added, whether or not
@@ -221,6 +230,20 @@ export default class CxContentBuilder extends CortexElement {
221
230
  private readonly initializeCustomFrame;
222
231
  private containerDropdownObservers;
223
232
  private nextMapHoveredBadgeState;
233
+ /**
234
+ * Host callbacks handed to GrapesJS blocks and config UI, each timed via
235
+ * `measurePromise` so the promise's own settling is the completion signal.
236
+ *
237
+ * Getters, not fields set once in the constructor: a host can override
238
+ * `onRequestAsset` (etc.) on the element instance after construction but before
239
+ * these are read (e.g. `el.onRequestAsset = customFn`), and a constructor-time
240
+ * `.bind()` would have captured the original method forever, silently ignoring
241
+ * that override.
242
+ */
243
+ private get measuredOnRequestAsset();
244
+ private get measuredOnRequestDownloadFormat();
245
+ private get measuredOnConfigureWorkflow();
246
+ private get measuredOnRequestAssetFormat();
224
247
  get isDesigner(): boolean;
225
248
  get isTemplateEditable(): boolean;
226
249
  get isMultiLanguage(): boolean;
@@ -0,0 +1,67 @@
1
+ import { Component } from 'grapesjs';
2
+
3
+ export declare const UiAction: {
4
+ readonly AddBlock: "add_block";
5
+ readonly ConfigureWorkflow: "configure_workflow";
6
+ readonly DeviceSwitch: "device_switch";
7
+ readonly DuplicateBlock: "duplicate_block";
8
+ readonly EditorBoot: "editor_boot";
9
+ readonly MoveBlock: "move_block";
10
+ readonly OpenConfig: "open_config";
11
+ readonly PickAsset: "pick_asset";
12
+ readonly PickAssetFormat: "pick_asset_format";
13
+ readonly PickDownloadFormat: "pick_download_format";
14
+ readonly Redo: "redo";
15
+ readonly RemoveBlock: "remove_block";
16
+ readonly RichTextEdit: "rich_text_edit";
17
+ readonly SaveConfig: "save_config";
18
+ readonly SelectBlock: "select_block";
19
+ readonly Undo: "undo";
20
+ };
21
+ export type UiActionName = (typeof UiAction)[keyof typeof UiAction];
22
+ /** Mirrors the CMS5_BO.Data.MetricsIsEnabled parameter, passed in by the host VForm. */
23
+ export declare function setEditorMetricsEnabled(enabled: boolean): void;
24
+ /** Whether metrics are currently armed - the same flag `measureSync` and friends check. */
25
+ export declare function isEditorMetricsEnabled(): boolean;
26
+ export declare function dispatch(action: string, durationMs: number, component: string, blockType?: string): void;
27
+ /**
28
+ * Derive the block-type label from a GrapesJS component.
29
+ *
30
+ * Returns undefined for anything that is not a CMS5 block - a raw text node, a wrapper,
31
+ * an element the builder does not own - so those actions are recorded without a block
32
+ * dimension rather than under a misleading one.
33
+ */
34
+ export declare function blockTypeOf(component?: Component): string | undefined;
35
+ /**
36
+ * Time a synchronous action through to the paint that shows its result.
37
+ *
38
+ * Two nested frames, not one: the first callback still runs before the browser
39
+ * paints, so ending there would time the JavaScript and miss the layout and paint
40
+ * the user is actually waiting on.
41
+ */
42
+ export declare function measureSync(action: UiActionName, blockType?: string): void;
43
+ /**
44
+ * Time a synchronous action that started earlier, through to the paint that shows it.
45
+ *
46
+ * Needed for the editor commands: the only place that knows which block was
47
+ * involved is *after* the command has run, but the clock has to start before it.
48
+ * The caller keeps the start time and supplies the block type at the end, so the
49
+ * sample covers the whole action rather than only its trailing paint.
50
+ */
51
+ export declare function measureSyncFrom(startedAt: number, action: UiActionName, blockType?: string): void;
52
+ /**
53
+ * Start timing an action that finishes on its own schedule, and return the ender.
54
+ *
55
+ * Used where a paint is not the completion signal - opening the asset picker, saving
56
+ * a config, booting the editor. The returned function is safe to call more than once;
57
+ * only the first call records.
58
+ */
59
+ export declare function measureAsync(action: UiActionName, blockType?: string): () => void;
60
+ /**
61
+ * Wrap a promise-returning host callback so it reports how long it took.
62
+ *
63
+ * The picker is host code we hand control to, so the promise settling is the only
64
+ * reliable completion signal. Rejections are timed too and then rethrown untouched:
65
+ * a picker that fails slowly is exactly the case worth seeing.
66
+ */
67
+ export declare function measurePromise<TArgs extends unknown[], TResult>(action: UiActionName, fn: (...args: TArgs) => Promise<TResult>, blockType?: string): (...args: TArgs) => Promise<TResult>;
@@ -19,6 +19,7 @@ export { default as RichTextEditorPlugin } from './rich-text-editor';
19
19
  export * from './rich-text-editor/components';
20
20
  export { default as SearchBoxPlugin } from './search-box';
21
21
  export { default as TabsPlugin } from './tab-group';
22
+ export { default as TelemetryPlugin } from './telemetry';
22
23
  export { default as TextPlugin } from './text';
23
24
  export { default as TimelinePlugin } from './timeline';
24
25
  export { default as VideoPlugin } from './video';
@@ -0,0 +1,15 @@
1
+ import { Editor } from 'grapesjs';
2
+
3
+ export type TelemetryPluginOptions = {
4
+ bootStartedAt: number;
5
+ };
6
+ /**
7
+ * Subscribe to the editor's own event bus for edit-mode timing.
8
+ *
9
+ * A GrapesJS plugin rather than a function called after `grapesjs.init()`: all
10
+ * edit-mode instrumentation then lives alongside the other editor plugins and is
11
+ * wired the same way (`plugins: [...]`), instead of being a one-off call the reader
12
+ * has to notice separately.
13
+ */
14
+ declare const TelemetryPlugin: (editor: Editor, options: TelemetryPluginOptions) => void;
15
+ export default TelemetryPlugin;
@@ -152,6 +152,7 @@ export default class StyleController {
152
152
  };
153
153
  required?: boolean;
154
154
  selectConfigs?: {
155
+ autoFallbackFirstOption?: boolean;
155
156
  fullWidthPopup?: boolean;
156
157
  placement?: "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end" | "center";
157
158
  };
@@ -175,6 +175,11 @@ export type PropertyConfig<T = Record<string, any>> = Omit<TraitProperties, 'opt
175
175
  };
176
176
  required?: boolean;
177
177
  selectConfigs?: {
178
+ /**
179
+ * When true (dynamic select only), falls back to the first fetched option's value
180
+ * when the current value does not match any fetched option (or when no value is set).
181
+ */
182
+ autoFallbackFirstOption?: boolean;
178
183
  fullWidthPopup?: boolean;
179
184
  placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end' | 'center';
180
185
  };
@@ -17,6 +17,13 @@ export default class Modal {
17
17
  activateExternal(): void;
18
18
  /** Deactivates external modal behavior and re-enables focus trapping. */
19
19
  deactivateExternal(): void;
20
+ /**
21
+ * Focus counts as inside if either tree says so. `:focus-within` follows the
22
+ * render tree and covers content slotted in from elsewhere, but stops at the
23
+ * top layer (e.g. a hoisted listbox in a popover); the active element chain
24
+ * follows the DOM tree and covers that.
25
+ */
26
+ private hasFocusInside;
20
27
  private checkFocus;
21
28
  private handleFocusIn;
22
29
  private possiblyHasTabbableChildren;
@@ -5977,6 +5977,10 @@
5977
5977
  *
5978
5978
  */
5979
5979
  customChangeEvent?: string;
5980
+ /**
5981
+ * When set to true, after options are fetched, the select falls back to the first option's value when the current `value` does not match any fetched option (including when no `value` was provided). Has no effect when `multiple` is enabled.
5982
+ */
5983
+ autoFallbackFirstOption?: boolean;
5980
5984
  /**
5981
5985
  * Make localization attributes reactive eslint-disable-next-line lit/no-native-attributes
5982
5986
  */
@@ -9765,6 +9769,10 @@
9765
9769
  * Whether to expose the asset format / transformation / download-format / asset-format-picker controls in the per-block config sidebar for image, video, gallery, carousel, and timeline blocks. <br/>@default false
9766
9770
  */
9767
9771
  enableAssetFormatControls?: boolean;
9772
+ /**
9773
+ * Whether the content builder emits `ol:ui-metric` events timing each user action, for collection as browser OpenTelemetry histograms. <br/> Off by default: when false no timers are armed and no events are dispatched, so an unmonitored site pays nothing for this being here. <br/>@default false
9774
+ */
9775
+ enableMetrics?: boolean;
9768
9776
  /**
9769
9777
  * Default asset format applied to image blocks. Used as the initial format when a block is added, whether or not `enable-asset-format-controls` is on. <br/>@default 'TR1'
9770
9778
  */
package/library/utils.js CHANGED
@@ -15,7 +15,7 @@ import { f as k } from "./chunks/form.CP9KLGjF.js";
15
15
  import { F as Ue, c as _e, g as Pe, v as Xe, a as He } from "./chunks/form.CP9KLGjF.js";
16
16
  import { L as Be, r as $e } from "./chunks/i18n.DbXTTLXx.js";
17
17
  import { c as ze, q as qe } from "./chunks/math.DuKzLacZ.js";
18
- import { g as Ze } from "./chunks/modal.jdGhujoh.js";
18
+ import { g as Ze } from "./chunks/modal.Ct0bJBSe.js";
19
19
  import { g as Je, l as Ke, s as tr, u as er } from "./chunks/scroll.xtO5yojm.js";
20
20
  import { k as y } from "./chunks/dom.C5aVLhKS.js";
21
21
  import { c as ar, d as sr, h as or, m as nr, a as ir, g as lr, j as cr, b as ur, f as mr, i as fr, e as hr, l as gr, s as dr } from "./chunks/dom.C5aVLhKS.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.170.0",
4
+ "version": "2.172.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -1,5 +0,0 @@
1
- import { i as t } from "./lit-element.jLBm65_O.js";
2
- const r = t`:host{--background-color:var(--cx-color-primary);--color:light-dark(var(--cx-color-neutral-0),var(--cx-color-neutral-1000));--font-size:var(--cx-font-size-medium);--font-weight:var(--cx-font-weight-medium);--height:var(--cx-input-height-medium);--justify-content:center;--gap:0;--min-height:auto;--padding:0;--label-line-height:1.15;--button-custom-height:32px;--button-custom-padding:4px 8px 4px 8px;--button-custom-font-size:var(--cx-font-size-medium);cursor:pointer;width:auto;max-width:100%;line-height:normal;display:inline-block;position:relative}:host([width-type=fill]),:host([width-type=adaptive][device-type=tablet]),:host([width-type=adaptive][device-type=mobile]){width:100%}.button{align-items:center;justify-content:var(--justify-content,center);gap:var(--gap,0);border-style:solid;border-width:var(--cx-input-border-width);width:100%;font-family:var(--font-family,var(--cx-input-font-family)), var(--cx-font-sans);font-style:var(--font-style,normal);font-weight:var(--font-weight,var(--cx-font-weight-regular));font-size:var(--font-size,var(--cx-font-size-medium));height:var(--height,var(--cx-input-height-medium));min-height:var(--min-height,auto);padding:var(--padding,0);text-transform:var(--cx-button-text-transform,none);-webkit-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;transition:var(--cx-transition-x-fast) background-color, var(--cx-transition-x-fast) color, var(--cx-transition-x-fast) border, var(--cx-transition-x-fast) box-shadow;cursor:inherit;text-decoration:none;display:inline-flex}.button::-moz-focus-inner{border:0}.button:focus{outline:none}.button:focus-visible{outline:var(--cx-focus-ring);outline-offset:var(--cx-focus-ring-offset)}.button--disabled{opacity:.5;cursor:default}.button--disabled *{pointer-events:none}.button__prefix,.button__suffix{pointer-events:none;flex:none;align-items:center;display:flex}.button__label{line-height:var(--label-line-height);white-space:nowrap;text-overflow:ellipsis;display:none;overflow:hidden}.button__label::slotted(cx-icon){vertical-align:-2px}.button__label--has-label{display:inline-block}.button--standard.button--default{background-color:var(--cx-color-neutral-100);border-color:var(--cx-color-neutral-100);color:var(--cx-color-neutral-700)}.button--standard.button--default:hover:not(.button--disabled),.button--standard.button--default.button--focused:not(.button--disabled){background-color:var(--cx-color-neutral-200);border-color:var(--cx-color-neutral-200);color:var(--cx-color-neutral-700)}.button--standard.button--default:active:not(.button--disabled){background-color:var(--cx-color-neutral-300);border-color:var(--cx-color-neutral-300);color:var(--cx-color-neutral-700)}.button--standard.button--primary{background-color:var(--cx-color-primary);border-color:var(--cx-color-primary);color:var(--cx-color-neutral-0)}.button--standard.button--primary:hover:not(.button--disabled),.button--standard.button--primary.button--focused:not(.button--disabled){background-color:var(--cx-color-primary-500);border-color:var(--cx-color-primary-500);color:var(--cx-color-neutral-0)}.button--standard.button--primary:active:not(.button--disabled){background-color:var(--cx-color-primary-700);border-color:var(--cx-color-primary-700);color:var(--cx-color-neutral-0)}.button--standard.button--success{background-color:var(--cx-color-success);border-color:var(--cx-color-success);color:var(--cx-color-neutral-0)}.button--standard.button--success:hover:not(.button--disabled),.button--standard.button--success.button--focused:not(.button--disabled){background-color:var(--cx-color-success-500);border-color:var(--cx-color-success-500);color:var(--cx-color-neutral-0)}.button--standard.button--success:active:not(.button--disabled){background-color:var(--cx-color-success-700);border-color:var(--cx-color-success-700);color:var(--cx-color-neutral-0)}.button--standard.button--warning{background-color:var(--cx-color-warning);border-color:var(--cx-color-warning);color:var(--cx-color-neutral-0)}.button--standard.button--warning:hover:not(.button--disabled),.button--standard.button--warning.button--focused:not(.button--disabled){background-color:var(--cx-color-warning-500);border-color:var(--cx-color-warning-500);color:var(--cx-color-neutral-0)}.button--standard.button--warning:active:not(.button--disabled){background-color:var(--cx-color-warning-700);border-color:var(--cx-color-warning-700);color:var(--cx-color-neutral-0)}.button--standard.button--danger{background-color:var(--cx-color-danger);border-color:var(--cx-color-danger);color:var(--cx-color-neutral-0)}.button--standard.button--danger:hover:not(.button--disabled),.button--standard.button--danger.button--focused:not(.button--disabled){background-color:var(--cx-color-danger-500);border-color:var(--cx-color-danger-500);color:var(--cx-color-neutral-0)}.button--standard.button--danger:active:not(.button--disabled){background-color:var(--cx-color-danger-700);border-color:var(--cx-color-danger-700);color:var(--cx-color-neutral-0)}.button--standard.button--custom{background-color:var(--background-color);border-color:var(--background-color);color:var(--color)}.button--standard.button--custom:hover:not(.button--disabled),.button--standard.button--custom.button--focused:not(.button--disabled){background-color:var(--background-color-focus,var(--background-color));border-color:var(--background-color-focus,var(--background-color));color:var(--color-focus,var(--color))}.button--standard.button--custom:active:not(.button--disabled){background-color:var(--background-color-active,var(--background-color));border-color:var(--background-color-active,var(--background-color));color:var(--color-active,var(--color))}.button--outline{border:solid var(--cx-input-border-width);background:0 0}.button--outline.button--default{border-color:var(--cx-input-border-color);color:var(--cx-color-neutral)}.button--outline.button--default:hover:not(.button--disabled),.button--outline.button--default.button--focused:not(.button--disabled),.button--outline.button--default.button--checked:not(.button--disabled){border-color:var(--cx-color-neutral-300);background-color:var(--cx-color-neutral-100);color:var(--cx-color-neutral)}.button--outline.button--default:active:not(.button--disabled){border-color:var(--cx-color-neutral-300);background-color:var(--cx-color-neutral-200);color:var(--cx-color-neutral)}.button--outline.button--primary{border-color:var(--cx-color-primary);color:var(--cx-color-primary)}.button--outline.button--primary:hover:not(.button--disabled),.button--outline.button--primary.button--focused:not(.button--disabled),.button--outline.button--primary.button--checked:not(.button--disabled){background-color:var(--cx-color-primary-500);color:var(--cx-color-neutral-0)}.button--outline.button--primary:active:not(.button--disabled){border-color:var(--cx-color-primary-700);background-color:var(--cx-color-primary-700);color:var(--cx-color-neutral-0)}.button--outline.button--success{border-color:var(--cx-color-success);color:var(--cx-color-success)}.button--outline.button--success:hover:not(.button--disabled),.button--outline.button--success.button--focused:not(.button--disabled),.button--outline.button--success.button--checked:not(.button--disabled){background-color:var(--cx-color-success-500);color:var(--cx-color-neutral-0)}.button--outline.button--success:active:not(.button--disabled){border-color:var(--cx-color-success);background-color:var(--cx-color-success);color:var(--cx-color-neutral-0)}.button--outline.button--warning{border-color:var(--cx-color-warning);color:var(--cx-color-warning)}.button--outline.button--warning:hover:not(.button--disabled),.button--outline.button--warning.button--focused:not(.button--disabled),.button--outline.button--warning.button--checked:not(.button--disabled){background-color:var(--cx-color-warning-500);color:var(--cx-color-neutral-0)}.button--outline.button--warning:active:not(.button--disabled){border-color:var(--cx-color-warning-700);background-color:var(--cx-color-warning-700);color:var(--cx-color-neutral-0)}.button--outline.button--danger{border-color:var(--cx-color-danger);color:var(--cx-color-danger)}.button--outline.button--danger:hover:not(.button--disabled),.button--outline.button--danger.button--focused:not(.button--disabled),.button--outline.button--danger.button--checked:not(.button--disabled){background-color:var(--cx-color-danger-500);color:var(--cx-color-neutral-0)}.button--outline.button--danger:active:not(.button--disabled){border-color:var(--cx-color-danger-700);background-color:var(--cx-color-danger-700);color:var(--cx-color-neutral-0)}@media (forced-colors:active){.button.button--outline.button--checked:not(.button--disabled){outline:2px solid #0000}}.button--text{color:var(--cx-color-neutral);background-color:#0000;border-color:#0000}.button--text:hover:not(.button--disabled),.button--text.button--focused:not(.button--disabled){background-color:var(--cx-color-neutral-100);border-color:var(--cx-color-neutral-100);color:var(--cx-color-neutral)}.button--text:focus-visible:not(.button--disabled){color:var(--cx-color-neutral-800);background-color:#0000;border-color:#0000}.button--text:active:not(.button--disabled){background-color:var(--cx-color-neutral-200);border-color:var(--cx-color-neutral-200);color:var(--cx-color-neutral)}.button--tertiary{color:var(--cx-color-neutral);background-color:#0000;border-color:#0000}.button--tertiary:hover:not(.button--disabled),.button--tertiary.button--focused:not(.button--disabled){background-color:var(--cx-color-neutral-100);color:var(--cx-color-neutral);border-color:#0000}.button--tertiary:focus-visible:not(.button--disabled){background-color:var(--cx-color-neutral-200);color:var(--cx-color-neutral);border-color:#0000}.button--tertiary:active:not(.button--disabled){background-color:var(--cx-color-neutral-300);color:var(--cx-color-neutral);border-color:#0000}.button--small{height:auto;min-height:var(--cx-input-height-small);font-size:var(--cx-button-font-size-medium);border-radius:var(--cx-button-border-radius-small)}.button--small ::slotted(cx-icon){--font-size:var(--cx-font-size-medium)}.button--medium{height:auto;min-height:var(--cx-input-height-medium);font-size:var(--cx-button-font-size-medium);border-radius:var(--cx-button-border-radius-medium)}.button--large{height:auto;min-height:var(--cx-input-height-large);font-size:var(--cx-button-font-size-medium);border-radius:var(--cx-button-border-radius-large)}.button--x-large{height:auto;min-height:var(--cx-input-height-x-large);font-size:var(--cx-button-font-size-medium);border-radius:var(--cx-button-border-radius-large)}.button--custom-size{--height:var(--button-custom-height);--padding:var(--button-custom-padding);--font-size:var(--button-custom-font-size);--font-family:var(--button-custom-font-family), var(--cx-font-sans);--font-style:var(--button-custom-font-style);--font-weight:var(--button-custom-font-weight);border-radius:var(--cx-button-border-radius-medium)}.button--pill.button--small{border-radius:var(--cx-input-height-small)}.button--pill.button--medium{border-radius:var(--cx-input-height-medium)}.button--pill.button--large{border-radius:var(--cx-input-height-large)}.button--pill.button--x-large{border-radius:var(--cx-input-height-x-large)}.button--circle{padding-left:0;padding-right:0}.button--circle.button--small{width:var(--cx-input-height-small);border-radius:50%}.button--circle.button--medium{width:var(--cx-input-height-medium);border-radius:50%}.button--circle.button--large{width:var(--cx-input-height-large);border-radius:50%}.button--circle.button--x-large{width:var(--cx-input-height-x-large);border-radius:50%}.button--circle .button__prefix,.button--circle .button__suffix,.button--circle .button__caret{display:none}.button--circle .button__label{justify-content:center;align-items:center;line-height:1;display:inline-flex}.button--caret .button__caret{--font-size:var(--caret-font-size,var(--cx-font-size-large));margin-block:auto}.button--caret.button--small .button__caret{--font-size:var(--caret-font-size,var(--cx-font-size-medium))}.button--caret .button__suffix{display:none}.button--loading{cursor:wait;position:relative}.button--loading .button__prefix,.button--loading .button__label,.button--loading .button__suffix,.button--loading .button__caret{visibility:hidden}.button--loading cx-spinner{--indicator-color:currentColor;width:1em;height:1em;font-size:1em;position:absolute;top:calc(50% - .5em);left:calc(50% - .5em)}.button ::slotted(cx-badge){pointer-events:none;position:absolute;top:0;right:0;translate:50% -50%}.button--rtl ::slotted(cx-badge){left:0;right:auto;translate:-50% -50%}.button--has-label.button--small .button__label{padding:0 var(--cx-spacing-x-small)}.button--has-label.button--medium .button__label{padding:0 var(--cx-spacing-small)}.button--has-label.button--large .button__label{padding:0 var(--cx-spacing-medium)}.button--has-label.button--x-large .button__label{padding:0 var(--cx-spacing-large)}.button--has-prefix.button--small,.button--has-prefix.button--small .button__label,.button--has-prefix.button--medium,.button--has-prefix.button--medium .button__label{padding-inline-start:var(--cx-spacing-x-small)}.button--has-prefix.button--large{padding-inline-start:var(--cx-spacing-small)}.button--has-prefix.button--large .button__label{padding-inline-start:var(--cx-spacing-x-small)}.button--has-prefix.button--x-large,.button--has-prefix.button--x-large .button__label{padding-inline-start:var(--cx-spacing-medium)}.button--has-suffix.button--small,.button--caret.button--small,.button--has-suffix.button--small .button__label,.button--caret.button--small .button__label,.button--has-suffix.button--medium,.button--caret.button--medium,.button--has-suffix.button--medium .button__label,.button--caret.button--medium .button__label{padding-inline-end:var(--cx-spacing-x-small)}.button--has-suffix.button--large,.button--caret.button--large{padding-inline-end:var(--cx-spacing-small)}.button--has-suffix.button--large .button__label,.button--caret.button--large .button__label{padding-inline-end:var(--cx-spacing-x-small)}.button--has-suffix.button--x-large,.button--caret.button--x-large,.button--has-suffix.button--x-large .button__label,.button--caret.button--x-large .button__label{padding-inline-end:var(--cx-spacing-medium)}.button--caret cx-icon::part(span){height:auto}:host([data-cx-button-group__button--first]:not([data-cx-button-group__button--last])) .button{border-start-end-radius:0;border-end-end-radius:0}:host([data-cx-button-group__button--inner]) .button{border-radius:0}:host([data-cx-button-group__button--last]:not([data-cx-button-group__button--first])) .button{border-start-start-radius:0;border-end-start-radius:0}:host([data-cx-button-group__button]:not([data-cx-button-group__button--first])){margin-inline-start:calc(-1 * var(--cx-input-border-width))}:host([data-cx-button-group__button]:not([data-cx-button-group__button--first],[data-cx-button-group__button--radio],[variant=default]):not(:hover)) .button:after{content:"";top:0;inset-inline-start:0;mix-blend-mode:multiply;border-left:1px solid #80808054;position:absolute;bottom:0}:host([data-cx-button-group__button--hover]){z-index:1}:host([data-cx-button-group__button--focus]),:host([data-cx-button-group__button][checked]){z-index:2}`;
3
- export {
4
- r as b
5
- };