@orangelogic/design-system 2.164.0 → 2.166.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 (34) hide show
  1. package/library/chunks/{asset-link-format.0q_MQOYh.js → asset-link-format.b3g80XdM.js} +1 -1
  2. package/library/chunks/{button.DGyqdBou.js → button.U0OBAsln.js} +1 -1
  3. package/library/chunks/button.styles.B81R4myI.js +5 -0
  4. package/library/chunks/{color-swatch-group.ChP9amU9.js → color-swatch-group.exfnb_Rr.js} +4383 -4063
  5. package/library/chunks/{confirm-popover.D8mdy6KG.js → confirm-popover.Dpoah4lQ.js} +1 -1
  6. package/library/chunks/{document-viewer.Cng07M-1.js → document-viewer.DbxPRuLE.js} +2 -2
  7. package/library/chunks/{folder-select.Dw1ZKZAq.js → folder-select.Di32cpBd.js} +1 -1
  8. package/library/chunks/{pagination.qFmncShC.js → pagination.qpK3q6zm.js} +1 -1
  9. package/library/chunks/{tab-group.1Y71_aN8.js → tab-group.BUdxhjXK.js} +1 -1
  10. package/library/components/asset-link-format.js +2 -2
  11. package/library/components/atoms.js +4 -4
  12. package/library/components/button.js +2 -2
  13. package/library/components/color-picker.js +1 -1
  14. package/library/components/color-swatch-group.js +1 -1
  15. package/library/components/confirm-popover.js +2 -2
  16. package/library/components/document-viewer.js +1 -1
  17. package/library/components/dynamic-select.js +1 -1
  18. package/library/components/element-clamp.js +1 -1
  19. package/library/components/file-on-demand.js +4 -4
  20. package/library/components/folder-select.js +1 -1
  21. package/library/components/line-clamp.js +1 -1
  22. package/library/components/molecules.js +2 -2
  23. package/library/components/organisms.js +2 -2
  24. package/library/components/pagination.js +2 -2
  25. package/library/components/radio-button.js +1 -1
  26. package/library/components/tab-group.js +2 -2
  27. package/library/components/types.js +14 -14
  28. package/library/components/video.js +1 -1
  29. package/library/package.json +1 -1
  30. package/library/packages/atoms/src/components/button/button.d.ts +1 -0
  31. package/library/packages/hybrid/table-core/src/table/table.d.ts +146 -0
  32. package/library/packages/hybrid/table-core/src/tabulator-tables/core/TabulatorFull.d.ts +14 -0
  33. package/package.json +1 -1
  34. package/library/chunks/button.styles.svc2lIwC.js +0 -5
@@ -828,6 +828,19 @@ export default class CxTable extends CortexElement {
828
828
  private activeSearchValue;
829
829
  /** Monotonic counter to discard responses from superseded dataUrl fetches. */
830
830
  private dataUrlRequestId;
831
+ /**
832
+ * Full in-memory rows parsed from `dataUrl` when `pagination` is on —
833
+ * deliberately a plain field (not `@state()`): `internalAjaxRequestFunc`
834
+ * reads it at call time on every page request, so updating it must not by
835
+ * itself trigger a re-render or `initTable()` re-run (only flipping
836
+ * `paginationMode` should, and only once, the first time — see
837
+ * `loadFromDataUrl()`).
838
+ */
839
+ private inMemoryDataUrlRows;
840
+ /** Row index -> field -> failures, from validating `inMemoryDataUrlRows` against `columns`' `validator` configs. Same non-reactive rationale as `inMemoryDataUrlRows`. */
841
+ private inMemoryValidationResult;
842
+ /** Internally-generated `ajaxRequestFunc` paging `inMemoryDataUrlRows`, set up by `loadFromDataUrl()`. */
843
+ private internalAjaxRequestFunc;
831
844
  /** True when facets are available — either from facet-config or from an AJAX response. Controls toolbar visibility. */
832
845
  hasFacets: boolean;
833
846
  /** Whether the column-header right-click context menu is open. */
@@ -942,6 +955,16 @@ export default class CxTable extends CortexElement {
942
955
  handleLoadingChange(): void;
943
956
  setLoading(value: boolean): void;
944
957
  isLoading(): boolean;
958
+ /**
959
+ * Jumps to the page containing the first invalid row and resolves `true`;
960
+ * resolves `false` when there is nothing invalid. Under the in-memory
961
+ * `dataUrl` + `pagination` path (see `loadFromDataUrl()`), this reads the
962
+ * full-dataset result in `inMemoryValidationResult` — the only way to find
963
+ * "first invalid" across rows that may not be on the currently-loaded
964
+ * page. Otherwise it falls back to the current page's real invalid cells
965
+ * via `getInvalidCells()`/`setPageToRow()`, same as before.
966
+ */
967
+ goToFirstInvalid(): Promise<boolean>;
945
968
  search(searchText: string): void;
946
969
  private handleSearch;
947
970
  private handleAppliedFilterRemove;
@@ -950,6 +973,8 @@ export default class CxTable extends CortexElement {
950
973
  handleDropdownFiltersPropChange(): void;
951
974
  handleDataUrlChange(): void;
952
975
  private handleTableExport;
976
+ /** Builds the `"field dir"` string `applyInMemoryFilterAndSort` expects, from whatever sort is currently active — mirrors `Sort.remoteSortParams`' last-applied-sort convention. */
977
+ private buildActiveSortParam;
953
978
  private handleDropdownFilterChange;
954
979
  private handleTableGroupByChange;
955
980
  private handleSelectAllChange;
@@ -959,6 +984,127 @@ export default class CxTable extends CortexElement {
959
984
  * Otherwise columns are auto-detected from the loaded data's headers, same as before.
960
985
  */
961
986
  private resolveColumnsAfterLoad;
987
+ /**
988
+ * Parses a `dataUrl` response fully into a plain in-memory row array
989
+ * instead of streaming it into `tabulatorInstance` — the counterpart to
990
+ * `streamCsvData`/`streamJsonData`/`streamXmlData` used when `pagination`
991
+ * is on and the consumer has not supplied their own `ajaxRequestFunc` (see
992
+ * `loadFromDataUrl()`). Each row is stamped with its absolute `__cxRowIndex`
993
+ * before accumulating (needed later to map a validation result back to a
994
+ * cell regardless of which page it ends up rendered on), yielding a frame
995
+ * between chunks so parsing a multi-million-row file never blocks the main
996
+ * thread.
997
+ *
998
+ * Calls `onFirstPageReady` (at most once) as soon as enough rows exist for
999
+ * a first page, so the caller can show the table well before the rest of
1000
+ * a multi-million-row file finishes parsing in the background.
1001
+ */
1002
+ /**
1003
+ * Validates each chunk against `resolvedColumns` as it arrives (instead of
1004
+ * waiting for the whole file to finish parsing, then validating the full
1005
+ * array in one pass) — the file loader's existing chunk size (bumped from
1006
+ * its 500-row default) is reused as the validation batch size too, so no
1007
+ * separate buffering/offset bookkeeping is needed: a chunk's absolute
1008
+ * offset is simply how many rows existed before it was pushed.
1009
+ */
1010
+ private static readonly IN_MEMORY_PARSE_CHUNK_SIZE;
1011
+ private parseDataUrlIntoMemory;
1012
+ /**
1013
+ * Applies whatever search/header/dropdown filter and sort is currently
1014
+ * active to an in-memory row array, the same way Tabulator's Filter/Sort
1015
+ * modules would against `rowManager` in local mode — needed because under
1016
+ * in-memory `dataUrl` pagination, `rowManager` only ever holds one page's
1017
+ * rows, so those modules' own client-side filter/sort logic never runs
1018
+ * (`filterMode`/`sortMode` are forced to `remote`, which skips it — see
1019
+ * `Filter.filter()`/`Sort.sort()`'s `!== 'remote'` guards). Both Filter and
1020
+ * Sort already compute and send the params this reads (`SearchText`,
1021
+ * `filters`, `Sort`) to a real remote backend; this is the in-memory
1022
+ * equivalent of that backend.
1023
+ *
1024
+ * Shared by `createInMemoryAjaxRequestFunc` (per-page slice) and
1025
+ * `handleTableExport` (full filtered/sorted set, no pagination slice).
1026
+ */
1027
+ private applyInMemoryFilterAndSort;
1028
+ /**
1029
+ * Builds the `ajaxRequestFunc` that serves pages directly from
1030
+ * `inMemoryDataUrlRows` — reads the array at call time (not at creation
1031
+ * time), so the same function reference keeps working correctly across
1032
+ * every subsequent `dataUrl` reload without needing Tabulator to
1033
+ * re-initialize.
1034
+ */
1035
+ private createInMemoryAjaxRequestFunc;
1036
+ /**
1037
+ * Updates the pagination control's displayed count and max page from a
1038
+ * row count that has not gone through any redraw/filter/sort pipeline —
1039
+ * cheap (a couple of field writes), so it is safe to call on every
1040
+ * streamed chunk while `dataUrl` parsing continues in the background
1041
+ * after the first page is already shown, keeping "X of Y" current.
1042
+ */
1043
+ private updatePaginationCountLive;
1044
+ /**
1045
+ * Normalizes one column's `validator` definition (string shorthand like
1046
+ * `'required'`/`'min:5'`, a single `{ type, parameters, message }` object,
1047
+ * or an array of either) into plain rule descriptors for the validation
1048
+ * worker. Mirrors `Validate.ts`'s `_extractValidator`/`_buildValidator`
1049
+ * normalization, minus the `Cell`-bound `func` lookup — the worker
1050
+ * resolves `type` to a rule function itself. Function-type validators are
1051
+ * skipped: there is no `Cell` to hand them in an in-memory validation
1052
+ * pass, the same "JSON-only rules go to the worker" split `validateAsync()`
1053
+ * already applies for its main-thread-vs-worker column split.
1054
+ */
1055
+ private normalizeValidatorConfig;
1056
+ /**
1057
+ * Validates a chunk of in-memory rows against `columns`' `validator`
1058
+ * configs, using the shared validation worker (`validateBatch`) — the same
1059
+ * rule engine `Validate.ts` uses for on-page validation, just fed plain
1060
+ * values instead of `Cell`s.
1061
+ *
1062
+ * Merges failures into `resultTarget` (rather than always building a fresh
1063
+ * Map) so callers validating chunk-by-chunk as a multi-million-row file
1064
+ * streams in can accumulate one shared result instead of replacing it
1065
+ * per chunk. `rowIndexOffset` re-bases `validateBatch`'s per-call
1066
+ * `rowIndex` (0-based within THIS chunk's `values` arrays) to each row's
1067
+ * absolute `__cxRowIndex` in the full dataset, since chunk-by-chunk
1068
+ * validation means `rows` here is never the full array.
1069
+ *
1070
+ * Caveat: a `unique` validator only sees the current chunk's values, not
1071
+ * the whole column — chunk-by-chunk validation cannot catch a duplicate
1072
+ * split across two chunks. Acceptable for the rule types this table's
1073
+ * examples use; a table relying on cross-chunk `unique` checks would need
1074
+ * a different (whole-array) validation pass.
1075
+ */
1076
+ private validateInMemoryRowsChunk;
1077
+ /**
1078
+ * Wraps a column's existing `formatter` (or supplies a passthrough one) so
1079
+ * that, once rendered, a cell whose row/field combination failed
1080
+ * validation gets the same visual treatment `Validate.ts` applies —
1081
+ * `tabulator-validation-fail` class plus `VALIDATION_MESSAGE_ATTRIBUTE` —
1082
+ * looked up from `inMemoryValidationResult` by the row's original
1083
+ * (pre-slice) index, stashed on each row object as `__cxRowIndex` when it
1084
+ * was parsed. Only wraps a function `formatter`; a column using one of
1085
+ * Tabulator's built-in string formatter names (e.g. `'money'`) falls back
1086
+ * to the raw value here rather than losing that formatting silently —
1087
+ * columns needing both a built-in formatter and in-memory validation
1088
+ * styling should use the function form instead.
1089
+ *
1090
+ * Also mirrors the result onto `cell._getSelf().modules.validate.invalid` —
1091
+ * the same field `Validate.ts` itself writes — so `cell.getValidationErrors()`
1092
+ * (and anything reading it, e.g. a `mutateOnValidate` row-error-summary
1093
+ * column) sees this in-memory result instead of always finding it empty.
1094
+ */
1095
+ private applyInMemoryValidationFormatter;
1096
+ /**
1097
+ * `Validate.ts`'s own `refreshMutateOnValidateColumns` only runs after its
1098
+ * own `cellValidate`/`userValidate` calls — paths the in-memory pagination
1099
+ * flow never goes through, since `applyInMemoryValidationFormatter` writes
1100
+ * results directly instead. Re-runs `mutateOnValidate` columns' `mutator`
1101
+ * for every currently-rendered row (only the current page has real cells)
1102
+ * so a row-error-summary column built the documented way — reading sibling
1103
+ * cells' `getValidationErrors()` from a `mutateOnValidate` column — reflects
1104
+ * this in-memory result too. Call after `inMemoryValidationResult` updates,
1105
+ * before the redraw that applies the formatter's own styling.
1106
+ */
1107
+ private refreshInMemoryMutateOnValidateColumns;
962
1108
  private streamCsvData;
963
1109
  private streamJsonData;
964
1110
  private streamXmlData;
@@ -1,6 +1,7 @@
1
1
  import { default as Filter } from '../modules/Filter/Filter';
2
2
  import { default as Page } from '../modules/Page/Page';
3
3
  import { default as SelectRow } from '../modules/SelectRow/SelectRow';
4
+ import { default as Sort } from '../modules/Sort/Sort';
4
5
  import { default as Tabulator } from './Tabulator';
5
6
  import { GroupArg, GroupValuesArg, ICellComponent, ITabulatorFull, Options, SheetLookup, SortDirection, Sorter, SpreadsheetComponent, ValidationSummary } from './types';
6
7
 
@@ -41,11 +42,24 @@ declare class TabulatorFull extends Tabulator implements ITabulatorFull {
41
42
  * The setPage method returns a promise, this can be used to run any other commands that have to be run after the data has been loaded into the table. By running them in the promise you ensure they are only run after the table has loaded the data.
42
43
  */
43
44
  setPage: (page: number | 'first' | 'prev' | 'next' | 'last') => Promise<void>;
45
+ /**
46
+ * Jumps to the page containing the given row component.
47
+ */
48
+ setPageToRow: (row: unknown) => Promise<void>;
44
49
  getSheetData: (key?: SheetLookup) => unknown[][];
45
50
  getPage: () => Page;
51
+ /**
52
+ * The current page size (row count per page).
53
+ */
54
+ getPageSize: () => number | true;
46
55
  setFilter: Filter['setFilter'];
56
+ getFilters: Filter['getFilters'];
47
57
  createFilterFieldFunction: Filter['createFilterFieldFunction'];
48
58
  clearFilter: Filter['clearFilter'];
59
+ /**
60
+ * Returns the currently active sorters.
61
+ */
62
+ getSorters: Sort['getSort'];
49
63
  selectRow: SelectRow['selectRows'];
50
64
  deselectRow: SelectRow['deselectRows'];
51
65
  toggleSelectRow: SelectRow['toggleRow'];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.164.0",
4
+ "version": "2.166.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;--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{white-space:nowrap;text-overflow:ellipsis;line-height:1.15;display:inline-block;overflow:hidden}.button__label::slotted(cx-icon){vertical-align:-2px}.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(--cx-font-size-large);margin-block:auto}.button--caret.button--small .button__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
- };