@aiquants/resize-panels 1.8.1 → 2.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.
Files changed (81) hide show
  1. package/README.md +213 -108
  2. package/dist/GlobalDebugOverlay-Cf3GOn2A.cjs +1 -0
  3. package/dist/{GlobalDebugOverlay-DYCR0FIu.js → GlobalDebugOverlay-DQtUdNeF.js} +28 -28
  4. package/dist/debugOverlayStore-D7FT6zPE.js +135 -0
  5. package/dist/debugOverlayStore-DY09saU8.cjs +1 -0
  6. package/dist/index-DZ0itiBD.js +1299 -0
  7. package/dist/index-DqATP_BA.cjs +2 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.d.ts +2 -29
  10. package/dist/index.js +25 -13
  11. package/dist/src/GlobalDebugOverlay.d.ts.map +1 -0
  12. package/dist/src/Panel.d.ts +46 -0
  13. package/dist/src/Panel.d.ts.map +1 -0
  14. package/dist/src/PanelDebugInfo.d.ts +34 -0
  15. package/dist/src/PanelDebugInfo.d.ts.map +1 -0
  16. package/dist/src/PanelGroup.d.ts.map +1 -0
  17. package/dist/{PanelResizeHandle.d.ts → src/PanelResizeHandle.d.ts} +1 -1
  18. package/dist/src/PanelResizeHandle.d.ts.map +1 -0
  19. package/dist/src/allocateLayout.d.ts +60 -0
  20. package/dist/src/allocateLayout.d.ts.map +1 -0
  21. package/dist/src/context.d.ts.map +1 -0
  22. package/dist/{debugOverlayStore.d.ts → src/debugOverlayStore.d.ts} +10 -2
  23. package/dist/src/debugOverlayStore.d.ts.map +1 -0
  24. package/dist/src/hooks.d.ts +48 -0
  25. package/dist/src/hooks.d.ts.map +1 -0
  26. package/dist/src/index.d.ts +32 -0
  27. package/dist/src/index.d.ts.map +1 -0
  28. package/dist/src/reducer.d.ts +49 -0
  29. package/dist/src/reducer.d.ts.map +1 -0
  30. package/dist/src/roundHalfToEven.d.ts.map +1 -0
  31. package/dist/src/types.d.ts +481 -0
  32. package/dist/src/types.d.ts.map +1 -0
  33. package/dist/src/utils/simple-logger.d.ts.map +1 -0
  34. package/dist/src/utils.d.ts +164 -0
  35. package/dist/src/utils.d.ts.map +1 -0
  36. package/dist/styles/resize-panels.standalone.css +1 -1
  37. package/dist/tests/support/dom-harness.d.ts +89 -0
  38. package/dist/tests/support/dom-harness.d.ts.map +1 -0
  39. package/package.json +3 -3
  40. package/src/GlobalDebugOverlay.tsx +3 -3
  41. package/src/Panel.tsx +203 -541
  42. package/src/PanelDebugInfo.tsx +52 -106
  43. package/src/PanelGroup.tsx +27 -42
  44. package/src/PanelResizeHandle.tsx +544 -504
  45. package/src/allocateLayout.ts +412 -0
  46. package/src/debugOverlayStore.ts +19 -15
  47. package/src/hooks.ts +187 -779
  48. package/src/index.ts +37 -6
  49. package/src/reducer.ts +364 -1126
  50. package/src/types.ts +282 -65
  51. package/src/utils.ts +205 -164
  52. package/dist/GlobalDebugOverlay-afs0vF-Q.cjs +0 -1
  53. package/dist/GlobalDebugOverlay.d.ts.map +0 -1
  54. package/dist/Panel.d.ts +0 -7
  55. package/dist/Panel.d.ts.map +0 -1
  56. package/dist/PanelDebugInfo.d.ts +0 -26
  57. package/dist/PanelDebugInfo.d.ts.map +0 -1
  58. package/dist/PanelGroup.d.ts.map +0 -1
  59. package/dist/PanelResizeHandle.d.ts.map +0 -1
  60. package/dist/context.d.ts.map +0 -1
  61. package/dist/debugOverlayStore-Cntyxboe.js +0 -141
  62. package/dist/debugOverlayStore-Dkl-fHoa.cjs +0 -1
  63. package/dist/debugOverlayStore.d.ts.map +0 -1
  64. package/dist/hooks.d.ts +0 -45
  65. package/dist/hooks.d.ts.map +0 -1
  66. package/dist/index-BzgId8aQ.js +0 -1972
  67. package/dist/index-xTV-c0PN.cjs +0 -2
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/reducer.d.ts +0 -39
  70. package/dist/reducer.d.ts.map +0 -1
  71. package/dist/roundHalfToEven.d.ts.map +0 -1
  72. package/dist/types.d.ts +0 -253
  73. package/dist/types.d.ts.map +0 -1
  74. package/dist/utils/simple-logger.d.ts.map +0 -1
  75. package/dist/utils.d.ts +0 -61
  76. package/dist/utils.d.ts.map +0 -1
  77. /package/dist/{GlobalDebugOverlay.d.ts → src/GlobalDebugOverlay.d.ts} +0 -0
  78. /package/dist/{PanelGroup.d.ts → src/PanelGroup.d.ts} +0 -0
  79. /package/dist/{context.d.ts → src/context.d.ts} +0 -0
  80. /package/dist/{roundHalfToEven.d.ts → src/roundHalfToEven.d.ts} +0 -0
  81. /package/dist/{utils → src/utils}/simple-logger.d.ts +0 -0
@@ -0,0 +1,135 @@
1
+ import { useSyncExternalStore as x } from "react";
2
+ const k = (l) => JSON.stringify(
3
+ l.map((e) => ({
4
+ id: e.id,
5
+ size: e.size,
6
+ sizeUnit: e.sizeUnit,
7
+ preferredPercentageSize: e.preferredPercentageSize,
8
+ preferredPixelSize: e.preferredPixelSize,
9
+ minSize: e.minSize ?? null,
10
+ maxSize: e.maxSize ?? null,
11
+ collapseFromStart: e.collapseFromStart,
12
+ collapseFromEnd: e.collapseFromEnd,
13
+ collapsed: e.collapsed,
14
+ collapsedByDirection: e.collapsedByDirection,
15
+ preferenceBeforeCollapse: e.preferenceBeforeCollapse,
16
+ pixelAdjustPriority: e.pixelAdjustPriority ?? null,
17
+ flexAdjustPriority: e.flexAdjustPriority ?? null,
18
+ measuredPixelSize: e.measuredPixelSize ?? null,
19
+ measuredPercentageSize: e.measuredPercentageSize ?? null
20
+ }))
21
+ ), H = (l) => JSON.stringify(
22
+ l.map((e) => ({
23
+ id: e.id,
24
+ thickness: e.thickness,
25
+ visible: e.visible,
26
+ direction: e.direction,
27
+ startPanelId: e.startPanelId ?? null,
28
+ endPanelId: e.endPanelId ?? null
29
+ }))
30
+ ), N = () => {
31
+ const l = /* @__PURE__ */ new Set(), e = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Set();
32
+ let c = null, v = 0, u = !0, h = [], P = {
33
+ ownerId: null,
34
+ groups: h
35
+ };
36
+ const y = () => {
37
+ for (const s of l)
38
+ s();
39
+ }, S = () => {
40
+ u = !0, y();
41
+ }, p = () => {
42
+ const s = c;
43
+ if (s && d.has(s))
44
+ return !1;
45
+ c = null;
46
+ const r = d.values().next();
47
+ return r.done || (c = r.value), s !== c;
48
+ };
49
+ return {
50
+ subscribe: (s) => (l.add(s), () => {
51
+ l.delete(s);
52
+ }),
53
+ getSnapshot: () => (p() && (u = !0), u && (h = Array.from(e.values()).sort((r, n) => r.index - n.index).map(({ serializedPanels: r, serializedHandles: n, ...f }) => f), P = {
54
+ ownerId: c,
55
+ groups: h
56
+ }, u = !1), P),
57
+ getOwnerId: () => (p() && (u = !0), c),
58
+ enableGroup: (s) => {
59
+ const r = d.size;
60
+ d.add(s), d.size !== r && p() && S();
61
+ },
62
+ disableGroup: (s) => {
63
+ d.delete(s) && p() && S();
64
+ },
65
+ updateGroup: (s, r) => {
66
+ const n = e.get(s), f = n?.index ?? v++, b = k(r.panels), m = H(r.handles), G = n?.displayName !== r.displayName, O = n?.direction !== r.direction, w = n ? n.containerSize.width !== r.containerSize.width || n.containerSize.height !== r.containerSize.height : !0;
67
+ let g = n?.serializedPanels !== b;
68
+ if (!g && n)
69
+ if (n.panels.length !== r.panels.length)
70
+ g = !0;
71
+ else
72
+ for (let o = 0; o < r.panels.length; o += 1) {
73
+ const i = n.panels[o], t = r.panels[o];
74
+ if (!(i && t)) {
75
+ g = !0;
76
+ break;
77
+ }
78
+ if (i.id !== t.id || i.size !== t.size || i.preferredPercentageSize !== t.preferredPercentageSize || i.preferredPixelSize !== t.preferredPixelSize || i.collapsed !== t.collapsed || i.measuredPixelSize !== t.measuredPixelSize || i.measuredPercentageSize !== t.measuredPercentageSize) {
79
+ g = !0;
80
+ break;
81
+ }
82
+ }
83
+ let z = n?.serializedHandles !== m;
84
+ if (!z && n)
85
+ if (n.handles.length !== r.handles.length)
86
+ z = !0;
87
+ else
88
+ for (let o = 0; o < r.handles.length; o += 1) {
89
+ const i = n.handles[o], t = r.handles[o];
90
+ if (!(i && t)) {
91
+ z = !0;
92
+ break;
93
+ }
94
+ if (i.id !== t.id || i.thickness !== t.thickness || i.visible !== t.visible || i.direction !== t.direction || i.startPanelId !== t.startPanelId || i.endPanelId !== t.endPanelId) {
95
+ z = !0;
96
+ break;
97
+ }
98
+ }
99
+ if (!n && r.panels.length === 0 && r.handles.length === 0 || n && !G && !O && !w && !g && !z)
100
+ return;
101
+ const C = r.panels.map((o) => ({ ...o })), I = r.handles.map((o) => ({ ...o })), D = { ...r.containerSize };
102
+ e.set(s, {
103
+ groupId: s,
104
+ displayName: r.displayName,
105
+ direction: r.direction,
106
+ containerSize: D,
107
+ panels: C,
108
+ handles: I,
109
+ index: f,
110
+ serializedPanels: b,
111
+ serializedHandles: m
112
+ }), S();
113
+ },
114
+ removeGroup: (s) => {
115
+ const r = e.delete(s), n = d.delete(s), f = p();
116
+ (r || n || f) && S();
117
+ }
118
+ };
119
+ }, a = N(), M = () => x(a.subscribe, a.getOwnerId, a.getOwnerId), q = () => x(a.subscribe, a.getSnapshot, a.getSnapshot), K = (l) => {
120
+ a.enableGroup(l);
121
+ }, L = (l) => {
122
+ a.disableGroup(l);
123
+ }, Q = (l, e) => {
124
+ a.updateGroup(l, e);
125
+ }, R = (l) => {
126
+ a.removeGroup(l);
127
+ };
128
+ export {
129
+ L as disableDebugOverlayGroup,
130
+ K as enableDebugOverlayGroup,
131
+ R as removeDebugOverlayGroup,
132
+ Q as updateDebugOverlayGroup,
133
+ M as useDebugOverlayOwnerId,
134
+ q as useDebugOverlaySnapshot
135
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),k=l=>JSON.stringify(l.map(e=>({id:e.id,size:e.size,sizeUnit:e.sizeUnit,preferredPercentageSize:e.preferredPercentageSize,preferredPixelSize:e.preferredPixelSize,minSize:e.minSize??null,maxSize:e.maxSize??null,collapseFromStart:e.collapseFromStart,collapseFromEnd:e.collapseFromEnd,collapsed:e.collapsed,collapsedByDirection:e.collapsedByDirection,preferenceBeforeCollapse:e.preferenceBeforeCollapse,pixelAdjustPriority:e.pixelAdjustPriority??null,flexAdjustPriority:e.flexAdjustPriority??null,measuredPixelSize:e.measuredPixelSize??null,measuredPercentageSize:e.measuredPercentageSize??null}))),H=l=>JSON.stringify(l.map(e=>({id:e.id,thickness:e.thickness,visible:e.visible,direction:e.direction,startPanelId:e.startPanelId??null,endPanelId:e.endPanelId??null}))),N=()=>{const l=new Set,e=new Map,d=new Set;let c=null,v=0,u=!0,z=[],h={ownerId:null,groups:z};const x=()=>{for(const s of l)s()},b=()=>{u=!0,x()},g=()=>{const s=c;if(s&&d.has(s))return!1;c=null;const r=d.values().next();return r.done||(c=r.value),s!==c};return{subscribe:s=>(l.add(s),()=>{l.delete(s)}),getSnapshot:()=>(g()&&(u=!0),u&&(z=Array.from(e.values()).sort((r,n)=>r.index-n.index).map(({serializedPanels:r,serializedHandles:n,...p})=>p),h={ownerId:c,groups:z},u=!1),h),getOwnerId:()=>(g()&&(u=!0),c),enableGroup:s=>{const r=d.size;d.add(s),d.size!==r&&g()&&b()},disableGroup:s=>{d.delete(s)&&g()&&b()},updateGroup:(s,r)=>{const n=e.get(s),p=n?.index??v++,P=k(r.panels),m=H(r.handles),O=n?.displayName!==r.displayName,G=n?.direction!==r.direction,w=n?n.containerSize.width!==r.containerSize.width||n.containerSize.height!==r.containerSize.height:!0;let S=n?.serializedPanels!==P;if(!S&&n)if(n.panels.length!==r.panels.length)S=!0;else for(let o=0;o<r.panels.length;o+=1){const i=n.panels[o],t=r.panels[o];if(!(i&&t)){S=!0;break}if(i.id!==t.id||i.size!==t.size||i.preferredPercentageSize!==t.preferredPercentageSize||i.preferredPixelSize!==t.preferredPixelSize||i.collapsed!==t.collapsed||i.measuredPixelSize!==t.measuredPixelSize||i.measuredPercentageSize!==t.measuredPercentageSize){S=!0;break}}let f=n?.serializedHandles!==m;if(!f&&n)if(n.handles.length!==r.handles.length)f=!0;else for(let o=0;o<r.handles.length;o+=1){const i=n.handles[o],t=r.handles[o];if(!(i&&t)){f=!0;break}if(i.id!==t.id||i.thickness!==t.thickness||i.visible!==t.visible||i.direction!==t.direction||i.startPanelId!==t.startPanelId||i.endPanelId!==t.endPanelId){f=!0;break}}if(!n&&r.panels.length===0&&r.handles.length===0||n&&!O&&!G&&!w&&!S&&!f)return;const D=r.panels.map(o=>({...o})),I=r.handles.map(o=>({...o})),C={...r.containerSize};e.set(s,{groupId:s,displayName:r.displayName,direction:r.direction,containerSize:C,panels:D,handles:I,index:p,serializedPanels:P,serializedHandles:m}),b()},removeGroup:s=>{const r=e.delete(s),n=d.delete(s),p=g();(r||n||p)&&b()}}},a=N(),j=()=>y.useSyncExternalStore(a.subscribe,a.getOwnerId,a.getOwnerId),A=()=>y.useSyncExternalStore(a.subscribe,a.getSnapshot,a.getSnapshot),B=l=>{a.enableGroup(l)},E=l=>{a.disableGroup(l)},F=(l,e)=>{a.updateGroup(l,e)},J=l=>{a.removeGroup(l)};exports.disableDebugOverlayGroup=E;exports.enableDebugOverlayGroup=B;exports.removeDebugOverlayGroup=J;exports.updateDebugOverlayGroup=F;exports.useDebugOverlayOwnerId=j;exports.useDebugOverlaySnapshot=A;