@orangelogic/design-system 2.188.0 → 2.190.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.
@@ -3,7 +3,7 @@ import "../chunks/typography.IqHbnd3C.js";
3
3
  import "../chunks/lib-cortex-element.CVMmyPMC.js";
4
4
  import "../chunks/color-swatch.D6Gg5bpz.js";
5
5
  import "../chunks/component.styles.CRO4Odto.js";
6
- import { C as v } from "../chunks/color-swatch-group.CCgwey9f.js";
6
+ import { C as v } from "../chunks/color-swatch-group.tnhiQ0jp.js";
7
7
  import "../chunks/transformation.8uLv6uwG.js";
8
8
  import "../chunks/custom-element.L4WJXn1j.js";
9
9
  import "../chunks/debounce.DaHuiSGU.js";
@@ -1,5 +1,5 @@
1
1
  import { C as a } from "../chunks/asset-link-format.D--xQVgR.js";
2
- import { C as t } from "../chunks/color-swatch-group.CCgwey9f.js";
2
+ import { C as t } from "../chunks/color-swatch-group.tnhiQ0jp.js";
3
3
  import { default as C } from "./file-on-demand.js";
4
4
  export {
5
5
  a as CxAssetLinkFormat,
@@ -121,7 +121,7 @@ import { a as JZt, g as ZZt } from "../chunks/slot.j5oheLJC.js";
121
121
  import { c as Or, d as Oee, H as An, e as Ta, f as gs, a as Dee, b as rr } from "../chunks/resizable-component.styles.CAfXABBc.js";
122
122
  import { a as Fo, E as Kn, b as Yv, O as rp, T as vp, G as k8 } from "../chunks/index.Cpamj0jB.js";
123
123
  import { C as eQt } from "../chunks/index.Cpamj0jB.js";
124
- import { A as Bl, D as Ck, P as ZS, E as Mu, B as lt, c as yp, S as If, d as Bo, e as JF, g as Iee, T as _8, a as ZF, f as c3 } from "../chunks/transformation.8uLv6uwG.js";
124
+ import { A as Bl, D as Ck, P as ZS, B as lt, E as Mu, c as yp, S as If, d as Bo, e as JF, g as Iee, T as _8, a as ZF, f as c3 } from "../chunks/transformation.8uLv6uwG.js";
125
125
  import { b as nQt } from "../chunks/transformation.8uLv6uwG.js";
126
126
  import { t as Tu, b as Mee, c as C8, g as S8 } from "../chunks/toast.CXEAfCvN.js";
127
127
  import { j as rQt, f as oQt, e as aQt, i as sQt, a as lQt, h as cQt, m as dQt, d as uQt, r as pQt } from "../chunks/toast.CXEAfCvN.js";
@@ -141,8 +141,8 @@ import { g as rz, F as jee } from "../chunks/form.DSsy3Fcy.js";
141
141
  import { c as xQt, f as kQt, v as _Qt, a as CQt } from "../chunks/form.DSsy3Fcy.js";
142
142
  import { d as eT, c as O8, e as Hee, i as D8, h as Vee, p as Uee, t as qee } from "../chunks/date.iWq_pkIk.js";
143
143
  import { b as TQt, f as AQt, g as EQt, a as OQt, n as DQt } from "../chunks/date.iWq_pkIk.js";
144
- import { F as oz, a as Wee, b as h6, H as Gee, c as u0, d as Kee, o as _u } from "../chunks/color-swatch-group.CCgwey9f.js";
145
- import { C as MQt, e as PQt, f as NQt } from "../chunks/color-swatch-group.CCgwey9f.js";
144
+ import { F as oz, a as Wee, b as h6, H as Gee, c as u0, d as Kee, o as _u } from "../chunks/color-swatch-group.tnhiQ0jp.js";
145
+ import { C as MQt, e as PQt, f as NQt } from "../chunks/color-swatch-group.tnhiQ0jp.js";
146
146
  import { F as Wd, C as g6, s as p3, a as tT } from "../chunks/folder-select.CIqVGGFl.js";
147
147
  import { b as h3, a as Aw, c as Yee, r as Ue, j as _e, w as Xee, R as Jee } from "../chunks/jsx-runtime.CTpPVMxj.js";
148
148
  import { j as nT } from "../chunks/index.CrhRU5m8.js";
@@ -143827,7 +143827,7 @@ var nUt = Object.defineProperty, iUt = Object.getOwnPropertyDescriptor, li = (n,
143827
143827
  };
143828
143828
  let Qn = class extends hn {
143829
143829
  constructor() {
143830
- super(), this.localize = new En(this), this.configsController = new Yx(this.localize), this.initialData = "", this.device = "desktop", this.devices = Iee, this.autoInit = !1, this.pageId = "", this.allowDuplicateBlocks = !1, this.enableAssetFormatControls = !1, this.enableMetrics = !1, this.defaultImageFormat = Pu, this.defaultVideoPosterFormat = Pu, this.defaultGalleryFormat = Pu, this.defaultCarouselFormat = Pu, this.defaultTimelineFormat = Pu, this.enableFontFamilyControls = !1, this.allowedFolders = [], this.defaultLanguage = "en-us", this.supportedLanguages = ["en"], this.mode = Mu.Template, this.contentBuilder = null, this.ready = !1, this.editingComponent = null, this.isGalleryConfigOpen = !1, this.hoveredComponent = void 0, this.hoveredComponentPlacement = "top", this.defaultRowGap = 0, this.containerDropdowns = [], this.containerDropdownStateMap = {}, this.distance = void 0, this.toolbar = [], this.toolbarActive = !1, this.childSelected = void 0, this.mappedSupportedLanguages = [], this.mousePosition = { x: 0, y: 0 }, this._teamSpaceRoles = [], this.canvasDocument = null, this._dsm = null, this.hasBoundUpdate = !1, this.newlyAddedComponentTimeout = null, this.initializeCustomFrame = _Nt(), this.containerDropdownObservers = [], this.nextMapHoveredBadgeState = null, this.deselectAll = this.deselectAll.bind(this), this.handleCanvasClick = this.handleCanvasClick.bind(this), this.handleRootToolbarRightClick = this.handleRootToolbarRightClick.bind(this), this.handleCanvasKeydown = this.handleCanvasKeydown.bind(this), this.handleTemplatesDataSourceChange = this.handleTemplatesDataSourceChange.bind(this), this.handleCanvasMouseMove = this.handleCanvasMouseMove.bind(this), this.handleTemplateManagerUpdated = this.handleTemplateManagerUpdated.bind(this), this.handleCanvasScroll = this.handleCanvasScroll.bind(this);
143830
+ super(), this.localize = new En(this), this.configsController = new Yx(this.localize), this.initialData = "", this.device = "desktop", this.devices = Iee, this.autoInit = !1, this.pageId = "", this.allowDuplicateBlocks = !1, this.enableAssetFormatControls = !1, this.enableMetrics = !1, this.defaultImageFormat = Pu, this.defaultVideoPosterFormat = Pu, this.defaultGalleryFormat = Pu, this.defaultCarouselFormat = Pu, this.defaultTimelineFormat = Pu, this.enableFontFamilyControls = !1, this.allowedFolders = [], this.defaultLanguage = "en-us", this.supportedLanguages = ["en"], this.mode = Mu.Template, this.contentBuilder = null, this.ready = !1, this.editingComponent = null, this.isGalleryConfigOpen = !1, this.hoveredComponent = void 0, this.hoveredComponentPlacement = "top", this.defaultRowGap = 0, this.containerDropdowns = [], this.containerDropdownStateMap = {}, this.distance = void 0, this.toolbar = [], this.toolbarActive = !1, this.childSelected = void 0, this.mappedSupportedLanguages = [], this.mousePosition = { x: 0, y: 0 }, this._teamSpaceRoles = [], this.canvasDocument = null, this._dsm = null, this.hasBoundUpdate = !1, this.blockTypesPromise = null, this.newlyAddedComponentTimeout = null, this.initializeCustomFrame = _Nt(), this.containerDropdownObservers = [], this.nextMapHoveredBadgeState = null, this.deselectAll = this.deselectAll.bind(this), this.handleCanvasClick = this.handleCanvasClick.bind(this), this.handleRootToolbarRightClick = this.handleRootToolbarRightClick.bind(this), this.handleCanvasKeydown = this.handleCanvasKeydown.bind(this), this.handleTemplatesDataSourceChange = this.handleTemplatesDataSourceChange.bind(this), this.handleCanvasMouseMove = this.handleCanvasMouseMove.bind(this), this.handleTemplateManagerUpdated = this.handleTemplateManagerUpdated.bind(this), this.handleCanvasScroll = this.handleCanvasScroll.bind(this);
143831
143831
  }
143832
143832
  get teamSpaceRoles() {
143833
143833
  return this._teamSpaceRoles;
@@ -143838,6 +143838,11 @@ let Qn = class extends hn {
143838
143838
  get dsm() {
143839
143839
  return this._dsm ??= this.contentBuilder?.DataSources, this._dsm;
143840
143840
  }
143841
+ prefetchBlockTypes() {
143842
+ return this.blockTypesPromise = D3t({
143843
+ excludeBlocksWithNoTemplates: !this.isDesigner
143844
+ });
143845
+ }
143841
143846
  /**
143842
143847
  * Host callbacks handed to GrapesJS blocks and config UI, each timed via
143843
143848
  * `measurePromise` so the promise's own settling is the completion signal.
@@ -144441,7 +144446,7 @@ let Qn = class extends hn {
144441
144446
  }), this.contentBuilder?.onReady(async () => {
144442
144447
  if (!this.contentBuilder)
144443
144448
  return;
144444
- this.contentBuilder.Canvas.getFrameEl().setAttribute("aria-label", "content-builder-frame"), this.updateFrameSize(), this._teamSpaceRoles = await this.fetchTeamSpaceRoles();
144449
+ this.contentBuilder.Canvas.getFrameEl().setAttribute("aria-label", "content-builder-frame"), this.updateFrameSize(), this._teamSpaceRoles = await this.fetchTeamSpaceRoles(), this.prefetchBlockTypes();
144445
144450
  }), this.contentBuilder?.on("load", async (i) => {
144446
144451
  this.contentBuilder?.getEl()?.addEventListener(
144447
144452
  "mousedown",
@@ -144546,9 +144551,9 @@ let Qn = class extends hn {
144546
144551
  this.hasBoundUpdate || (this.contentBuilder?.on("update", () => {
144547
144552
  this.emit("cx-change");
144548
144553
  }), this.hasBoundUpdate = !0);
144549
- const { component: o, index: a, parentComponent: s } = i ?? {}, l = await D3t({
144550
- excludeBlocksWithNoTemplates: !this.isDesigner
144551
- }), c = this.contentBuilder?.getWrapper(), d = c?.findType(lt.Column) ?? [], u = d.find((k) => k.parent() === c) ?? d[0];
144554
+ const { component: o, index: a, parentComponent: s } = i ?? {};
144555
+ this.blockTypesPromise ??= this.prefetchBlockTypes();
144556
+ const l = await this.blockTypesPromise, c = this.contentBuilder?.getWrapper(), d = c?.findType(lt.Column) ?? [], u = d.find((k) => k.parent() === c) ?? d[0];
144552
144557
  if (!u) {
144553
144558
  this.blockPicker.limitedBlocks = vR(lt.Column), this.blockPicker.show(), r();
144554
144559
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.188.0",
4
+ "version": "2.190.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Sticky can't pin frozen cells here — every wrapper up to the real horizontal scroller (the
3
- * OverlayScrollbars viewport on `.tabulator`) is `width: max-content` and never scrolls — so
4
- * `syncFrozenOffset` mirrors the viewport's scrollLeft into these vars instead. If horizontal
5
- * scrolling ever moves back onto `.tabulator-tableholder`, delete this sheet.
2
+ * Frozen columns are pinned by `position: sticky` written from `FrozenColumns.layoutElement`, and
3
+ * their resize handles by matching insets from `ResizeColumns.reinitializeColumn`. Both resolve
4
+ * against `.tabulator-tableholder`, the table's single scroll container — keep it that way. This
5
+ * sheet only owns what sticky cannot express: the freeze divider and the stacking order around it.
6
6
  */
7
7
  declare const _default: import('lit').CSSResult;
8
8
  export default _default;
@@ -1,9 +1,12 @@
1
1
  /**
2
- * use-overlay-scrollbar: table-scoped OverlayScrollbars rules — structure of
3
- * the generated horizontal viewport, positioning of the scrollbars slotted
4
- * into `.table` (see initVerticalScrollbar), and the mapping of the `:host`
5
- * scrollbar css vars (declared below) onto the OverlayScrollbars theme so
6
- * tables with and without use-overlay-scrollbar look the same.
2
+ * use-overlay-scrollbar: table-scoped OverlayScrollbars rules — positioning of
3
+ * the scrollbars slotted into `.table` (see initScrollbars) and the mapping of
4
+ * the `:host` scrollbar css vars (declared below) onto the OverlayScrollbars
5
+ * theme so tables with and without use-overlay-scrollbar look the same.
6
+ *
7
+ * There are deliberately no rules for a generated viewport element: the single
8
+ * instance runs in `viewportIsTarget` mode so `.tabulator-tableholder` stays
9
+ * the scroll container that frozen columns pin against.
7
10
  */
8
11
  declare const _default: import('lit').CSSResult;
9
12
  export default _default;
@@ -102,10 +102,7 @@ export default class CxTable extends CortexElement {
102
102
  'cx-table-toolbar': typeof CxTableToolbar;
103
103
  'cx-tooltip': typeof CxTooltip;
104
104
  };
105
- private verticalOsInstance;
106
- private horizontalOsInstance;
107
- /** Removes the horizontal scrollbar's scroll listener (see syncFrozenOffset). */
108
- private frozenScrollOff;
105
+ private osInstance;
109
106
  private resizeObserver;
110
107
  private overflowObserver;
111
108
  private readonly ajaxFacetsController;
@@ -926,14 +923,7 @@ export default class CxTable extends CortexElement {
926
923
  private repositionValidationTooltipNow;
927
924
  private handleValidationMouseOut;
928
925
  disconnectedCallback(): void;
929
- private initVerticalScrollbar;
930
- private initHorizontalScrollbar;
931
- /**
932
- * Mirrors the horizontal scroller's offset into `--frozen-offset-start/end` so
933
- * `table-frozen.styles.ts` can pin frozen columns. Deliberately not debounced: the offset must
934
- * land in the same frame as the scroll, and it is only two custom-property writes.
935
- */
936
- private syncFrozenOffset;
926
+ private initScrollbars;
937
927
  private readonly checkHorizontalOverflow;
938
928
  private initOverflowObserver;
939
929
  private registerEventListeners;
@@ -62,6 +62,7 @@ export default class RowManager extends CoreFeature implements IRowManager {
62
62
  getElement(): HTMLElement;
63
63
  getTableElement(): HTMLElement;
64
64
  initialize(): void;
65
+ private initializeWheelWatcher;
65
66
  /**
66
67
  * IRow Manipulation
67
68
  */
@@ -28,6 +28,8 @@ export default class ResizeColumns extends Module {
28
28
  * walks `columns` because `columnsByIndex` is still empty when `column-rendered` creates handles.
29
29
  */
30
30
  private isPinnedEnd;
31
+ private pinHandle;
32
+ private repinFrozenHandles;
31
33
  /**
32
34
  * The in-flow handle goes right after the element it resizes — except for an end-pinned column,
33
35
  * whose right edge is the table edge: its handle goes before the element, onto the freeze
@@ -35,9 +37,9 @@ export default class ResizeColumns extends Module {
35
37
  */
36
38
  private attachHandle;
37
39
  /**
38
- * Re-inserts handles next to the element they resize. Upstream wrote `left`/`right` insets here
39
- * for frozen columns, which added to the flow position and pushed handles a column width off;
40
- * frozen handles travel via `table-frozen.styles.ts` instead (which also owns their z-index).
40
+ * Re-inserts handles next to the element they resize and re-pins the frozen ones. Runs off
41
+ * `column-width`, which `FrozenColumns` subscribes to first (in `initialize()`, whereas this
42
+ * module subscribes lazily from `column-rendered`), so the margins read here are already current.
41
43
  */
42
44
  reinitializeColumn(column: Column): void;
43
45
  initializeColumn(type: string, component: any, column: Column, element: HTMLElement): void;
@@ -226,6 +226,14 @@ export default class CxContentBuilder extends CortexElement {
226
226
  private _dsm;
227
227
  private get dsm();
228
228
  private hasBoundUpdate;
229
+ /**
230
+ * In-flight/resolved block-types fetch, kept as a promise (not the awaited value) so the
231
+ * `component:open-picker` handler can share it even if it fires before the prefetch below
232
+ * settles. Prefetched once `isDesigner` is known (right after team-space roles resolve) so
233
+ * the block picker dialog shows immediately instead of waiting on the API on first open.
234
+ */
235
+ private blockTypesPromise;
236
+ private prefetchBlockTypes;
229
237
  private newlyAddedComponentTimeout;
230
238
  private readonly initializeCustomFrame;
231
239
  private containerDropdownObservers;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.188.0",
4
+ "version": "2.190.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {