@linzjs/windows 11.3.0 → 12.0.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.
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import createCache from '@emotion/cache';
3
3
  import { CacheProvider } from '@emotion/react';
4
- import { useContext, useEffect, useState } from 'react';
4
+ import { useContext, useEffect, useMemo, useState } from 'react';
5
5
  import { createPortal } from 'react-dom';
6
6
  import { makePopoutId } from './generateId';
7
7
  import { openExternalWindow } from './openExternalWindow';
@@ -65,8 +65,13 @@ export const PopoutWindow = ({ name, title = name, size, popInPanelPosition, pop
65
65
  // The `@emotion/react/CacheProvider`provides a cache derived from createCache for inline styles
66
66
  // these will be generated into the `container` and prefixed with the `key` below, ensuring
67
67
  // the styles are in the popout rather than the root window.
68
- const myCache = createCache({ key: makePopoutId(name), container: headElement });
69
- const wrappedChildren = _jsx(CacheProvider, { value: myCache, children: children });
70
- return containerElement ? createPortal(wrappedChildren, containerElement) : null;
68
+ // Memoised so the cache (and its deduplication tracking) is stable across re-renders,
69
+ // and only created once headElement is defined — if container is undefined Emotion falls
70
+ // back to document.head, causing styles to be orphaned in the root window.
71
+ const myCache = useMemo(() => (headElement ? createCache({ key: makePopoutId(name), container: headElement }) : null), [headElement, name]);
72
+ if (!containerElement || !myCache) {
73
+ return null;
74
+ }
75
+ return createPortal(_jsx(CacheProvider, { value: myCache, children: children }), containerElement);
71
76
  };
72
77
  //# sourceMappingURL=PopoutWindow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopoutWindow.js","sourceRoot":"","sources":["../../src/panel/PopoutWindow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PopoutWindow.js","sourceRoot":"","sources":["../../src/panel/PopoutWindow.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
+ export declare const addInsertRuleListener: (fn: () => void) => void;
2
+ export declare const removeInsertRuleListener: (fn: () => void) => void;
1
3
  export declare const copyStyleSheets: (newHeadMountElement: HTMLDivElement) => void;
2
4
  /**
3
5
  * Add listener for dynamic style changes
4
6
  * This works by listening to any changes to the head element
5
7
  * If there are any changes it replaces all the styles in the floating window
6
8
  * at most every 100ms
7
- * @param newHeadMountElement
9
+ * @param onStyleChange throttled callback to trigger a style copy
8
10
  */
9
- export declare const observeStyleSheetChanges: (newHeadMountElement: HTMLDivElement) => MutationObserver | null;
11
+ export declare const observeStyleSheetChanges: (onStyleChange: () => void) => MutationObserver | null;
@@ -1,4 +1,23 @@
1
- import { throttle } from 'lodash-es';
1
+ // Shared patch for CSSStyleSheet.insertRule so multiple concurrent popouts don't stomp each other.
2
+ // Emotion (used by react-select) injects styles via insertRule, bypassing DOM mutations entirely.
3
+ const insertRuleListeners = new Set();
4
+ const originalInsertRule = CSSStyleSheet.prototype.insertRule;
5
+ export const addInsertRuleListener = (fn) => {
6
+ if (insertRuleListeners.size === 0) {
7
+ CSSStyleSheet.prototype.insertRule = function (rule, index) {
8
+ const result = originalInsertRule.call(this, rule, index);
9
+ insertRuleListeners.forEach((listener) => listener());
10
+ return result;
11
+ };
12
+ }
13
+ insertRuleListeners.add(fn);
14
+ };
15
+ export const removeInsertRuleListener = (fn) => {
16
+ insertRuleListeners.delete(fn);
17
+ if (insertRuleListeners.size === 0) {
18
+ CSSStyleSheet.prototype.insertRule = originalInsertRule;
19
+ }
20
+ };
2
21
  // Copy the app's styles into the new window
3
22
  export const copyStyleSheets = (newHeadMountElement) => {
4
23
  const stylesheets = Array.from(document.styleSheets);
@@ -26,19 +45,15 @@ export const copyStyleSheets = (newHeadMountElement) => {
26
45
  * This works by listening to any changes to the head element
27
46
  * If there are any changes it replaces all the styles in the floating window
28
47
  * at most every 100ms
29
- * @param newHeadMountElement
48
+ * @param onStyleChange throttled callback to trigger a style copy
30
49
  */
31
- export const observeStyleSheetChanges = (newHeadMountElement) => {
50
+ export const observeStyleSheetChanges = (onStyleChange) => {
32
51
  const targetNode = document.querySelector('head');
33
52
  if (!targetNode) {
34
53
  return null;
35
54
  }
36
55
  // Options for the observer (which mutations to observe)
37
56
  const config = { /*attributes: true,*/ childList: true /*, subtree: true */ };
38
- //throttle the copying of the all the styles at most 100ms
39
- const throttleCopyStyleSheets = throttle(() => {
40
- copyStyleSheets(newHeadMountElement);
41
- }, 100);
42
57
  // Callback function to execute when mutations are observed
43
58
  const callback = function (mutationList) {
44
59
  for (const mutation of mutationList) {
@@ -49,7 +64,7 @@ export const observeStyleSheetChanges = (newHeadMountElement) => {
49
64
  //floating window is complicated, so the easiest way is to just wait for modifications for finish
50
65
  //updating, then replace them all
51
66
  //we could probably just copy all style on every modification, by that might have a performance hit
52
- throttleCopyStyleSheets();
67
+ onStyleChange();
53
68
  } /*else if (mutation.type === "attributes") {
54
69
  //Do we need to handle attribute modifications?
55
70
  // console.log("The " + mutation.attributeName + " attribute was modified.");
@@ -1 +1 @@
1
- {"version":3,"file":"handleStyleSheetsChanges.js","sourceRoot":"","sources":["../../src/panel/handleStyleSheetsChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,mBAAmC,EAAE,EAAE;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAErD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACvD,eAAe,CAAC,GAAG,GAAG,YAAY,CAAC;YACnC,eAAe,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YACvC,mBAAmB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,UAAU,CAAC;YACvB,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;gBACH,mBAAmB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,mBAAmC,EAAE,EAAE;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wDAAwD;IACxD,MAAM,MAAM,GAAG,EAAE,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE9E,0DAA0D;IAC1D,MAAM,uBAAuB,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC5C,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,2DAA2D;IAC3D,MAAM,QAAQ,GAAqB,UAAU,YAAY;QACvD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,oEAAoE;gBACpE,oCAAoC;gBACpC,yFAAyF;gBACzF,iGAAiG;gBACjG,iCAAiC;gBACjC,mGAAmG;gBACnG,uBAAuB,EAAE,CAAC;YAC5B,CAAC,CAAC;;;qBAGO;QACX,CAAC;IACH,CAAC,CAAC;IAEF,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEhD,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAErC,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"handleStyleSheetsChanges.js","sourceRoot":"","sources":["../../src/panel/handleStyleSheetsChanges.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,kGAAkG;AAClG,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAc,CAAC;AAClD,MAAM,kBAAkB,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAc,EAAE,EAAE;IACtD,IAAI,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACnC,aAAa,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,IAAY,EAAE,KAAc;YACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IACD,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EAAc,EAAE,EAAE;IACzD,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACnC,aAAa,CAAC,SAAS,CAAC,UAAU,GAAG,kBAAkB,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,mBAAmC,EAAE,EAAE;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAErD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACvD,eAAe,CAAC,GAAG,GAAG,YAAY,CAAC;YACnC,eAAe,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YACvC,mBAAmB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,UAAU,CAAC;YACvB,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;gBACH,mBAAmB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AACF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,aAAyB,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wDAAwD;IACxD,MAAM,MAAM,GAAG,EAAE,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE9E,2DAA2D;IAC3D,MAAM,QAAQ,GAAqB,UAAU,YAAY;QACvD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,oEAAoE;gBACpE,oCAAoC;gBACpC,yFAAyF;gBACzF,iGAAiG;gBACjG,iCAAiC;gBACjC,mGAAmG;gBACnG,aAAa,EAAE,CAAC;YAClB,CAAC,CAAC;;;qBAGO;QACX,CAAC;IACH,CAAC,CAAC;IAEF,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEhD,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAErC,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { throttle } from 'lodash-es';
1
2
  import { makePopoutId, popoutWindowDivId } from './generateId';
2
- import { copyStyleSheets, observeStyleSheetChanges } from './handleStyleSheetsChanges';
3
+ import { addInsertRuleListener, copyStyleSheets, observeStyleSheetChanges, removeInsertRuleListener, } from './handleStyleSheetsChanges';
3
4
  /**
4
5
  * Open and scaffold the new external window.
5
6
  *
@@ -47,11 +48,19 @@ export const openExternalWindow = ({ title, size, setContainerElement, setHeadEl
47
48
  // so the modal shows up in the popped out window instead the main window
48
49
  newMountElement.id = popoutWindowDivId(title);
49
50
  copyStyleSheets(newHeadMountElement);
51
+ // Always intercept insertRule so styles injected after the initial copy (e.g. react-select
52
+ // rendering after the window opens) are synced to the popout. Uses a shared throttled
53
+ // callback so both this and the optional MutationObserver drive the same copy call.
54
+ const throttledCopy = throttle(() => copyStyleSheets(newHeadMountElement), 100);
55
+ addInsertRuleListener(throttledCopy);
50
56
  let observer = null;
51
57
  if (observeStyleChanges) {
52
- observer = observeStyleSheetChanges(newHeadMountElement);
58
+ observer = observeStyleSheetChanges(throttledCopy);
53
59
  }
54
- externalWindow.onbeforeunload = () => observer?.disconnect();
60
+ externalWindow.onbeforeunload = () => {
61
+ observer?.disconnect();
62
+ removeInsertRuleListener(throttledCopy);
63
+ };
55
64
  response.onCloseExternalWindow = () => {
56
65
  // Make sure the window closes when the component unmounts
57
66
  externalWindow.close();
@@ -1 +1 @@
1
- {"version":3,"file":"openExternalWindow.js","sourceRoot":"","sources":["../../src/panel/openExternalWindow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openExternalWindow.js","sourceRoot":"","sources":["../../src/panel/openExternalWindow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "./dist/index.scss": "./dist/index.scss"
23
23
  },
24
- "version": "11.3.0",
24
+ "version": "12.0.0",
25
25
  "peerDependencies": {
26
26
  "@linzjs/lui": ">=23",
27
27
  "react": ">=18",