@window-splitter/solid 1.1.0 → 1.1.1--canary.9d2f98a.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,5 +1,5 @@
1
1
 
2
2
  
3
- > @window-splitter/solid@1.0.2 build /Users/andrew/Documents/react-window-splitter/packages/solid
3
+ > @window-splitter/solid@1.1.0 build /Users/alisowski/Documents/react-window-splitter/packages/solid
4
4
  > tshy
5
5
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  
3
- > @window-splitter/solid@1.0.2 lint /Users/andrew/Documents/react-window-splitter/packages/solid
3
+ > @window-splitter/solid@1.1.0 lint /Users/alisowski/Documents/react-window-splitter/packages/solid
4
4
  > eslint .
5
5
 
6
6
  =============
@@ -1 +1 @@
1
- {"version":3,"file":"SolidWIndowSplitter.d.ts","sourceRoot":"","sources":["../../src/SolidWIndowSplitter.tsx"],"names":[],"mappings":"AAsBA,OAAO,EACL,QAAQ,EAQR,GAAG,EAIH,GAAG,EAEJ,MAAM,UAAU,CAAC;AAQlB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EAKxB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACvD,qBAAqB;IACvB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,eA0JhD;AAgBD,MAAM,WAAW,UACf,SAAQ,gBAAgB,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,EACrD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAChE,6CAA6C;IAC7C,MAAM,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,eAkMtC;AAED,MAAM,WAAW,iBACf,SAAQ,uBAAuB,EAC7B,IAAI,CACF,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAClC,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjD;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAkMpD"}
1
+ {"version":3,"file":"SolidWIndowSplitter.d.ts","sourceRoot":"","sources":["../../src/SolidWIndowSplitter.tsx"],"names":[],"mappings":"AAsBA,OAAO,EACL,QAAQ,EAQR,GAAG,EAIH,GAAG,EAEJ,MAAM,UAAU,CAAC;AAQlB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EAKxB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACvD,qBAAqB;IACvB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,eA0JhD;AAgBD,MAAM,WAAW,UACf,SAAQ,gBAAgB,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,EACrD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAChE,6CAA6C;IAC7C,MAAM,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,eAoNtC;AAED,MAAM,WAAW,iBACf,SAAQ,uBAAuB,EAC7B,IAAI,CACF,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAClC,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjD;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAkMpD"}
@@ -241,16 +241,32 @@ export function Panel(props) {
241
241
  }));
242
242
  createRefContent(() => props.handle, () => ({
243
243
  getId: () => panelId(),
244
- collapse: () => {
245
- if (!panel().collapsible)
246
- return;
247
- send?.({ type: "collapsePanel", panelId: panelId(), controlled: true });
244
+ collapse: async () => {
245
+ if (panel().collapsible) {
246
+ // eslint-disable-next-line solid/reactivity
247
+ return await new Promise((resolve) => {
248
+ send?.({
249
+ type: "collapsePanel",
250
+ panelId: panelId(),
251
+ controlled: true,
252
+ resolve,
253
+ });
254
+ });
255
+ }
248
256
  },
249
257
  isCollapsed: () => Boolean(panel().collapsible && panel().collapsed),
250
- expand: () => {
251
- if (!panel().collapsible)
252
- return;
253
- send?.({ type: "expandPanel", panelId: panelId(), controlled: true });
258
+ expand: async () => {
259
+ if (panel().collapsible) {
260
+ // eslint-disable-next-line solid/reactivity
261
+ return await new Promise((resolve) => {
262
+ send?.({
263
+ type: "expandPanel",
264
+ panelId: panelId(),
265
+ controlled: true,
266
+ resolve,
267
+ });
268
+ });
269
+ }
254
270
  },
255
271
  isExpanded: () => Boolean(panel().collapsible && !panel().collapsed),
256
272
  getPixelSize: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidWIndowSplitter.jsx","sourceRoot":"","sources":["../../src/SolidWIndowSplitter.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,SAAS,EACT,YAAY,EACZ,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EAEZ,8BAA8B,EAC9B,oCAAoC,EACpC,eAAe,EACf,yBAAyB,EACzB,WAAW,EACX,aAAa,EAEb,SAAS,EACT,YAAY,EACZ,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,cAAc,EAEd,EAAE,EACF,SAAS,EACT,OAAO,EAEP,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,eAAe,EACf,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAML,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,IAAI,GACL,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAUjE,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE;QAClC,aAAa;QACb,kBAAkB;QAClB,YAAY;QACZ,UAAU;QACV,aAAa;KACd,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;QAClE,MAAM,cAAc,GAAG,eAAe,cAAc,EAAE,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,IAAI,cAAc,CAAC;QACnE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,YAAY,CAAC;QACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,cAAc,CAAC;QAElE,IAAI,QAA8C,CAAC;QAEnD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC5B,CAAC;aAAM,IACL,OAAO,MAAM,KAAK,WAAW;YAC7B,KAAK,CAAC,UAAU;YAChB,gBAAgB,KAAK,cAAc,EACnC,CAAC;YACD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAE7D,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA6B,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO;YACL,GAAG,YAAY,CACb;gBACE,WAAW;gBACX,OAAO,EAAE,WAAW;gBACpB,gBAAgB,EAAE,gBAAgB;gBAClC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACtD,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAChC,CAAC,CACF;YACD,WAAW;SACZ,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG,YAAY,EAAE,EAAE,IAAI,YAAY,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,kDAAkD;IAClD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CACtC,CAAC,oBAAoB,CACnB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,KAAK,CAAC,CAAC,UAAU,CAAC,CAClB,gBAAgB,CAAC,CAAC,kBAAkB,CAAC,CAErC;MAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;IAAA,EAAE,oBAAoB,CAAC,CACxB,CAAC,CAAC;IACH,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,UAAsC,CAAC;IAE3C,qBAAqB;IACrB,OAAO,CAAC,GAAG,EAAE;QACX,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChE,OAAO;YACT,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU;YAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,CACnC,YAAY,EAAE;SACX,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;IAEF,wBAAwB;IACxB,YAAY,CACV,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QAChB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,EAAE;YAC9D,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC,CACH,CAAC;IAEF,gBAAgB,CACd,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAClB,GAAG,EAAE,CAAC,CAAC;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO;QACpB,aAAa,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;QAC5D,kBAAkB,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC;QACtE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACpB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;YAE/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBACpD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAE9B,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;oBACxC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,OAAO,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;KACxE,CAAC,CACH,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IAEtD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAE7C,OAAO,CACL,CAAC,GAAG,CACF,EAAE,CAAC,CAAC,OAAO,CAAC,CACZ,GAAG,CAAC,CAAC,UAAU,CAAC,CAChB,wBAAwB,CACxB,IAAI,KAAK,CAAC,CACV,KAAK,CAAC,CAAC;YACL,OAAO,EAAE,MAAM;YACf,uBAAuB,EACrB,YAAY,EAAE,EAAE,WAAW,KAAK,YAAY;gBAC1C,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,SAAS;YACf,oBAAoB,EAClB,YAAY,EAAE,EAAE,WAAW,KAAK,UAAU;gBACxC,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,SAAS;YACf,MAAM,EAAE,MAAM;YACd,GAAG,KAAK,CAAC,KAAK;SACf,CAAC,CAEF;MAAA,CAAC,gBAAgB,EAAE,CACrB;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAgC,EAChC,SAAkB;IAElB,kBAAkB,CAAC,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,OAA6B,CAAC;QAC9C,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE;QAClC,KAAK;QACL,KAAK;QACL,IAAI;QACJ,aAAa;QACb,WAAW;QACX,eAAe;QACf,kBAAkB;QAClB,mBAAmB;QACnB,UAAU;QACV,kBAAkB;QAClB,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,0BAA0B,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC;IAE5C,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,SAAS,GAAG,GAAc,EAAE,CAChC,eAAe,CAAC;QACd,EAAE,EAAE,OAAO,EAAE;QACb,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE;QAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAE;QACrD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;QACrC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CAAC;IAEL,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;QAE9B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC;YAE1E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,kBAAkB,EAAE,EAAE,CAAC;oBACzB,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,sBAAsB,GAAG,IAAI,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE;wBACJ,EAAE,EAAE,SAAS,CAAC,EAAE;wBAChB,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,EAAE;wBACrD,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;qBACtC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,EAAE;QAC3C,MAAM,YAAY,GAAG,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;YAAE,OAAO;QACxD,OAAO,8BAA8B,CAAC,SAAS,EAAE,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,YAAY,CACV,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE;QACX,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAEpC,2CAA2C;QAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CACvC,4BAA4B,CACX,CAAC;QAEpB,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY;YAAE,OAAO;QAE3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAEtE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QAEtC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1E,sBAAsB,GAAG,KAAK,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,IAAI,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,KAAK,CAAC;IAC5D,YAAY,CACV,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,KAAK,CAAC;QAE/C,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,oBAAoB;YAAE,OAAO;QAEjD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,gBAAgB,CACd,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAClB,GAAG,EAAE,CAAC,CAAC;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;QACtB,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW;gBAAE,OAAO;YACjC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,IAAI,KAAK,EAAE,CAAC,SAAS,CAAC;QACpE,MAAM,EAAE,GAAG,EAAE;YACX,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW;gBAAE,OAAO;YACjC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;QACpE,YAAY,EAAE,GAAG,EAAE;YACjB,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC,CACH,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,qBAAqB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC;QAEjC,OAAO,qBAAqB,CAAC;YAC3B,OAAO;YACP,EAAE,EAAE,OAAO,EAAE;YACb,WAAW,EAAE,YAAY,EAAE,WAAW;YACtC,SAAS,EAAE,YAAY,EAAE,SAAS;SACnC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,GAAG,CACF,IAAI,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CACjD,KAAK,CAAC,CAAC;YACL,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,QAAQ;YAClB,GAAG,KAAK,CAAC,KAAK;SACf,CAAC,EACF,CACH,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE;QAClC,MAAM;QACN,IAAI;QACJ,aAAa;QACb,QAAQ;QACR,WAAW;QACX,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,0BAA0B,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,IAAI,4BAA4B,GAAG,KAAK,CAAC;IACzC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,UAAU,GAAG,GAAG,EAAE,CACtB,yBAAyB,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK;QACzB,EAAE,EAAE,QAAQ,EAAE;KACf,CAAC,CAAC;IAEL,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC;YAExE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,kBAAkB,EAAE,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE,UAAU,EAAE;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,4BAA4B,GAAG,IAAI,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,EAAE;QAC3C,MAAM,aAAa,GACjB,4BAA4B,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAAE,OAAO;QAC5D,OAAO,oCAAoC,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,YAAY,CACV,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE;QACX,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,4BAA4B;YAAE,OAAO;QAE1C,2CAA2C;QAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CACxC,4BAA4B,CACX,CAAC;QAEpB,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa;YAAE,OAAO;QAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAEvE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QAEtC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1E,4BAA4B,GAAG,KAAK,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,MAAM,CAAC;QAClD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxD,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,kBAAkB,CAAC;IAC/D,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,kBAAkB,EAAE,KAAK,QAAQ,EAAE,CAAC;IAC7D,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,CAAC;QAE/B,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QAE1B,OAAO,4BAA4B,CAAC;YAClC,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,EAAE,EAAE,QAAQ,EAAE;YACd,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,UAAU,EAAE,UAAU,EAAE;YACxB,kBAAkB,EAAE,kBAAkB,EAAE;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC,WAAW,KAAK,YAAY;YAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;YACzD,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,8BAA8B,CACrD,YAAY,EACZ,QAAQ,EAAE,CACX,CAAC;YAEF,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBAC1C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;oBAC/B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,qBAAqB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,CAAC,GAAG,CACF,IAAI,oBAAoB,CACtB,KAAK,EACL,eAAe,EAAE,EACjB,KAAK,CAAC,QAAQ;QACZ,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAC/D;QACE,KAAK,EAAE;YACL,MAAM,EAAE,MAAM,EAAE;YAChB,GAAG,UAAU,EAAE;YACf,GAAG,KAAK,CAAC,KAAK;SACf;KACF,CACF,CAAC,CACF,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,EACf,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {\n buildTemplate,\n getCollapsiblePanelForHandleId,\n getCursor,\n getGroupSize,\n getPanelGroupPercentageSizes,\n getPanelGroupPixelSizes,\n getPanelPercentageSize,\n getPanelPixelSize,\n groupMachine,\n GroupMachineContextValue,\n haveConstraintsChangedForPanel,\n haveConstraintsChangedForPanelHandle,\n initializePanel,\n initializePanelHandleData,\n isPanelData,\n isPanelHandle,\n PanelData,\n parseUnit,\n prepareItems,\n prepareSnapshot,\n} from \"@window-splitter/state\";\nimport {\n Accessor,\n children,\n createDeferred,\n createEffect,\n createRenderEffect,\n createRoot,\n createSignal,\n createUniqueId,\n JSX,\n on,\n onCleanup,\n onMount,\n Ref,\n splitProps,\n} from \"solid-js\";\nimport {\n GroupMachineProvider,\n useMachineActor,\n useGroupId,\n useMachineState,\n useInitialPrerenderContext,\n} from \"./context.jsx\";\nimport {\n PanelGroupHandle,\n SharedPanelGroupProps,\n PanelHandle,\n SharedPanelProps,\n SharedPanelResizerProps,\n measureGroupChildren,\n getPanelDomAttributes,\n getPanelResizerDomAttributes,\n move,\n} from \"@window-splitter/interface\";\nimport { mergeSolidAttributes } from \"./mergeSolidAttributes.js\";\n\nexport interface PanelGroupProps\n extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"style\">,\n SharedPanelGroupProps {\n /** Imperative handle to control the group */\n handle?: Ref<PanelGroupHandle>;\n style?: JSX.CSSProperties;\n}\n\nexport function PanelGroup(props: PanelGroupProps) {\n const [, attrs] = splitProps(props, [\n \"orientation\",\n \"autosaveStrategy\",\n \"autosaveId\",\n \"snapshot\",\n \"shiftAmount\",\n ]);\n const [intiialValue, send, machineState, groupId] = createRoot(() => {\n const defaultGroupId = `panel-group-${createUniqueId()}`;\n const groupIdInit = props.autosaveId || props.id || defaultGroupId;\n const orientation = props.orientation || \"horizontal\";\n const autosaveStrategy = props.autosaveStrategy || \"localStorage\";\n\n let snapshot: GroupMachineContextValue | undefined;\n\n if (props.snapshot) {\n snapshot = props.snapshot;\n } else if (\n typeof window !== \"undefined\" &&\n props.autosaveId &&\n autosaveStrategy === \"localStorage\"\n ) {\n const localSnapshot = localStorage.getItem(props.autosaveId);\n\n if (localSnapshot) {\n snapshot = JSON.parse(localSnapshot) as GroupMachineContextValue;\n }\n }\n\n return [\n ...groupMachine(\n {\n orientation,\n groupId: groupIdInit,\n autosaveStrategy: autosaveStrategy,\n shiftAmount: props.shiftAmount,\n ...(snapshot ? prepareSnapshot(snapshot) : undefined),\n },\n (value) => {\n setCurrentValue({ ...value });\n }\n ),\n groupIdInit,\n ];\n });\n const [currentValue, setCurrentValue] = createSignal(intiialValue);\n\n const getContext = () => {\n const context = currentValue?.() || intiialValue;\n if (!context) throw new Error(\"No state\");\n return context;\n };\n\n // Prerender the children with the machine context\n const [isInitialPrerender, setIsInitialPrerender] = createSignal(true);\n const resolvedChildren = children(() => (\n <GroupMachineProvider\n groupId={groupId}\n send={send}\n state={getContext}\n initialPrerender={isInitialPrerender}\n >\n {props.children}\n </GroupMachineProvider>\n ));\n setIsInitialPrerender(false);\n\n let elementRef: HTMLDivElement | undefined;\n\n // Measure group size\n onMount(() => {\n const observer = new ResizeObserver(([entry]) => {\n if (!entry) return;\n if (!(entry.contentRect.width > 0 && entry.contentRect.height > 0))\n return;\n send({ type: \"setSize\", size: entry.contentRect });\n });\n\n if (elementRef) observer.observe(elementRef);\n onCleanup(() => observer.disconnect());\n });\n\n const childIds = createDeferred(() =>\n currentValue()\n .items.map((i) => i.id)\n .join(\",\")\n );\n\n // Measure children size\n createEffect(\n on(childIds, () => {\n const cleanup = measureGroupChildren(groupId, (childrenSizes) => {\n send({ type: \"setActualItemsSize\", childrenSizes });\n });\n\n onCleanup(cleanup);\n })\n );\n\n createRefContent(\n () => props.handle,\n () => ({\n getId: () => groupId,\n getPixelSizes: () => getPanelGroupPixelSizes(currentValue()),\n getPercentageSizes: () => getPanelGroupPercentageSizes(currentValue()),\n setSizes: (updates) => {\n const context = currentValue();\n\n for (let index = 0; index < updates.length; index++) {\n const item = context.items[index];\n const update = updates[index];\n\n if (item && isPanelData(item) && update) {\n send({ type: \"setPanelPixelSize\", panelId: item.id, size: update });\n }\n }\n },\n getTemplate: () => {\n const context = getContext();\n return buildTemplate({ ...context, items: prepareItems(context) });\n },\n getState: () => (machineState.current === \"idle\" ? \"idle\" : \"dragging\"),\n })\n );\n\n const getTemplate = () => buildTemplate(getContext());\n\n onMount(() => send({ type: \"unlockGroup\" }));\n onCleanup(() => send({ type: \"lockGroup\" }));\n\n return (\n <div\n id={groupId}\n ref={elementRef}\n data-panel-group-wrapper\n {...attrs}\n style={{\n display: \"grid\",\n \"grid-template-columns\":\n currentValue()?.orientation === \"horizontal\"\n ? getTemplate()\n : undefined,\n \"grid-template-rows\":\n currentValue()?.orientation === \"vertical\"\n ? getTemplate()\n : undefined,\n height: \"100%\",\n ...props.style,\n }}\n >\n {resolvedChildren()}\n </div>\n );\n}\n\nfunction createRefContent<T extends Exclude<unknown, () => void>>(\n getRef: () => Ref<T> | undefined,\n createRef: () => T\n) {\n createRenderEffect(() => {\n const refProp = getRef();\n if (typeof refProp !== \"function\") {\n return () => {};\n }\n const refFunc = refProp as (value: T) => void;\n refFunc(createRef());\n });\n}\n\nexport interface PanelProps\n extends SharedPanelProps<Accessor<boolean | undefined>>,\n Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onResize\" | \"style\"> {\n /** Imperative handle to control the panel */\n handle?: Ref<PanelHandle>;\n style?: JSX.CSSProperties;\n}\n\nexport function Panel(props: PanelProps) {\n const [, attrs] = splitProps(props, [\n \"min\",\n \"max\",\n \"id\",\n \"collapsible\",\n \"collapsed\",\n \"collapsedSize\",\n \"onCollapseChange\",\n \"collapseAnimation\",\n \"onResize\",\n \"defaultCollapsed\",\n \"default\",\n \"isStaticAtRest\",\n ]);\n\n const isInitialPrerender = useInitialPrerenderContext();\n const send = useMachineActor();\n const groupId = useGroupId();\n const state = useMachineState();\n const defaultId = createUniqueId();\n const panelId = () => props.id || defaultId;\n\n let dynamicPanelIsMounting = false;\n let hasMounted = false;\n\n const initPanel = (): PanelData =>\n initializePanel({\n id: panelId(),\n min: props.min,\n max: props.max,\n collapsible: props.collapsible,\n collapsed: props.collapsed?.(),\n collapsedSize: props.collapsedSize,\n onCollapseChange: { current: props.onCollapseChange },\n collapseAnimation: props.collapseAnimation,\n onResize: { current: props.onResize },\n defaultCollapsed: props.defaultCollapsed,\n default: props.default,\n isStaticAtRest: props.isStaticAtRest,\n });\n\n createRoot(() => {\n const panelData = initPanel();\n\n if (send) {\n const hasRegistered = state?.()?.items.find((i) => i.id === panelData.id);\n\n if (!hasRegistered) {\n if (isInitialPrerender()) {\n send({ type: \"registerPanel\", data: panelData });\n } else {\n dynamicPanelIsMounting = true;\n }\n } else {\n send?.({\n type: \"rebindPanelCallbacks\",\n data: {\n id: panelData.id,\n onCollapseChange: { current: props.onCollapseChange },\n onResize: { current: props.onResize },\n },\n });\n }\n }\n\n return panelData.id;\n });\n\n const panel = () => {\n const currentPanel = state?.()?.items.find((i) => i.id === panelId());\n if (!currentPanel || !isPanelData(currentPanel))\n throw new Error(\"Panel not found\");\n return currentPanel;\n };\n\n const contraintChanged = createDeferred(() => {\n const currentPanel = dynamicPanelIsMounting === false ? panel() : undefined;\n if (!currentPanel || !isPanelData(currentPanel)) return;\n return haveConstraintsChangedForPanel(initPanel(), currentPanel);\n });\n\n createEffect(\n on(contraintChanged, () => {\n if (!hasMounted) return;\n send?.({ type: \"updateConstraints\", data: initPanel() });\n })\n );\n\n onMount(() => {\n hasMounted = true;\n if (!dynamicPanelIsMounting) return;\n\n // get the index of the panel in it's group\n const panelElement = document.getElementById(panelId());\n\n if (!panelElement) return;\n\n const groupElement = panelElement.closest(\n `[data-panel-group-wrapper]`\n ) as HTMLDivElement;\n\n if (!groupElement || !panelElement) return;\n\n const order = Array.from(groupElement.children).indexOf(panelElement);\n\n if (typeof order !== \"number\") return;\n\n send?.({ type: \"registerDynamicPanel\", data: { ...initPanel(), order } });\n dynamicPanelIsMounting = false;\n });\n\n const panelData = () => {\n const item = state?.()?.items.find((i) => i.id === panelId());\n if (!item || !isPanelData(item)) return undefined;\n return item;\n };\n\n const currentCollapsed = () => props.collapsed?.() || false;\n createEffect(\n on(currentCollapsed, () => {\n const collapsed = props.collapsed?.() || false;\n\n if (!panelData?.()?.collapseIsControlled) return;\n\n if (collapsed) {\n send?.({ type: \"collapsePanel\", panelId: panelId(), controlled: true });\n } else {\n send?.({ type: \"expandPanel\", panelId: panelId(), controlled: true });\n }\n })\n );\n\n createRefContent(\n () => props.handle,\n () => ({\n getId: () => panelId(),\n collapse: () => {\n if (!panel().collapsible) return;\n send?.({ type: \"collapsePanel\", panelId: panelId(), controlled: true });\n },\n isCollapsed: () => Boolean(panel().collapsible && panel().collapsed),\n expand: () => {\n if (!panel().collapsible) return;\n send?.({ type: \"expandPanel\", panelId: panelId(), controlled: true });\n },\n isExpanded: () => Boolean(panel().collapsible && !panel().collapsed),\n getPixelSize: () => {\n const s = state?.();\n if (!s) throw new Error(\"No state\");\n return getPanelPixelSize(s, panelId());\n },\n setSize: (size) => {\n send?.({ type: \"setPanelPixelSize\", panelId: panelId(), size });\n },\n getPercentageSize: () => {\n const s = state?.();\n if (!s) throw new Error(\"No state\");\n return getPanelPercentageSize(s, panelId());\n },\n })\n );\n\n onCleanup(() => {\n // We wait a frame because in Solid children unmount before their parent\n // and we want to only unregister if just the panel is being removed, not\n // the whole group. This frame allows for the parent to lock the machine.\n requestAnimationFrame(() => {\n send?.({ type: \"unregisterPanel\", id: panelId() });\n });\n });\n\n const domAttributes = () => {\n const currentPanel = panelData();\n\n return getPanelDomAttributes({\n groupId,\n id: panelId(),\n collapsible: currentPanel?.collapsible,\n collapsed: currentPanel?.collapsed,\n });\n };\n\n return (\n <div\n {...mergeSolidAttributes(attrs, domAttributes())}\n style={{\n \"min-width\": 0,\n \"min-height\": 0,\n overflow: \"hidden\",\n ...props.style,\n }}\n />\n );\n}\n\nexport interface PanelResizerProps\n extends SharedPanelResizerProps,\n Omit<\n JSX.HTMLAttributes<HTMLDivElement>,\n \"onDragStart\" | \"onDrag\" | \"onDragEnd\" | \"style\"\n > {\n style?: JSX.CSSProperties;\n}\n\nexport function PanelResizer(props: PanelResizerProps) {\n const [, attrs] = splitProps(props, [\n \"size\",\n \"id\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"disabled\",\n ]);\n\n const isInitialPrerender = useInitialPrerenderContext();\n const send = useMachineActor();\n const state = useMachineState();\n const defaultId = createUniqueId();\n const handleId = () => props.id || defaultId;\n const handle = () => {\n const currentHandle = state?.()?.items.find((i) => i.id === handleId());\n if (!currentHandle || !isPanelHandle(currentHandle))\n throw new Error(\"Handle not found\");\n return currentHandle;\n };\n\n let dynamicPanelHandleIsMounting = false;\n let hasMounted = false;\n\n const initHandle = () =>\n initializePanelHandleData({\n size: props.size || \"0px\",\n id: handleId(),\n });\n\n createRoot(() => {\n if (send) {\n const hasRegistered = state?.()?.items.find((i) => i.id === handleId());\n\n if (!hasRegistered) {\n if (isInitialPrerender()) {\n send({\n type: \"registerPanelHandle\",\n data: initHandle(),\n });\n } else {\n dynamicPanelHandleIsMounting = true;\n }\n }\n }\n });\n\n const contraintChanged = createDeferred(() => {\n const currentHandle =\n dynamicPanelHandleIsMounting === false ? handle() : undefined;\n if (!currentHandle || !isPanelHandle(currentHandle)) return;\n return haveConstraintsChangedForPanelHandle(initHandle(), currentHandle);\n });\n\n createEffect(\n on(contraintChanged, () => {\n if (!hasMounted) return;\n send?.({ type: \"updateConstraints\", data: initHandle() });\n })\n );\n\n onMount(() => {\n hasMounted = true;\n if (!dynamicPanelHandleIsMounting) return;\n\n // get the index of the panel in it's group\n const handleElement = document.getElementById(handleId());\n\n if (!handleElement) return;\n\n const groupElement = handleElement.closest(\n `[data-panel-group-wrapper]`\n ) as HTMLDivElement;\n\n if (!groupElement || !handleElement) return;\n\n const order = Array.from(groupElement.children).indexOf(handleElement);\n\n if (typeof order !== \"number\") return;\n\n send?.({ type: \"registerPanelHandle\", data: { ...initHandle(), order } });\n dynamicPanelHandleIsMounting = false;\n });\n\n const { moveProps } = move({\n onMoveStart: () => {\n send?.({ type: \"dragHandleStart\", handleId: handleId() });\n props.onDragStart?.();\n document.body.style.cursor = cursor() || \"auto\";\n },\n onMove: (e) => {\n send?.({ type: \"dragHandle\", handleId: handleId(), value: e });\n props.onDrag?.();\n },\n onMoveEnd: () => {\n send?.({ type: \"dragHandleEnd\", handleId: handleId() });\n props.onDragEnd?.();\n document.body.style.cursor = \"auto\";\n },\n });\n\n const itemIndex = () =>\n state?.()?.items.findIndex((item) => item.id === handleId()) || -1;\n const activeDragHandleId = () => state?.()?.activeDragHandleId;\n const isDragging = () => activeDragHandleId() === handleId();\n const panelBeforeHandle = () => state?.()?.items[itemIndex() - 1];\n const panelAttributes = () => {\n const panelBefore = panelBeforeHandle();\n const currentState = state?.();\n\n if (!panelBefore || !currentState || !isPanelData(panelBefore))\n return { id: handleId };\n\n return getPanelResizerDomAttributes({\n groupId: currentState.groupId,\n id: handleId(),\n orientation: currentState.orientation,\n isDragging: isDragging(),\n activeDragHandleId: activeDragHandleId(),\n disabled: props.disabled,\n controlsId: panelBefore.id,\n min: panelBefore.min,\n max: panelBefore.max,\n currentValue: panelBefore.currentValue,\n groupSize: getGroupSize(currentState),\n });\n };\n\n const cursor = () => {\n if (props.disabled) return;\n const currentState = state?.();\n if (!currentState) return;\n return getCursor(currentState);\n };\n const dimensions = () => {\n const currentState = state?.();\n if (!currentState) return {};\n const unit = parseUnit(props.size || \"0px\");\n return currentState.orientation === \"horizontal\"\n ? { width: `${unit.value.toNumber()}px`, height: \"100%\" }\n : { height: `${unit.value.toNumber()}px`, width: \"100%\" };\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const currentState = state?.();\n if (!currentState) return undefined;\n\n try {\n const collapsiblePanel = getCollapsiblePanelForHandleId(\n currentState,\n handleId()\n );\n\n if (e.key === \"Enter\" && collapsiblePanel) {\n if (collapsiblePanel.collapsed) {\n send?.({ type: \"expandPanel\", panelId: collapsiblePanel.id });\n } else {\n send?.({ type: \"collapsePanel\", panelId: collapsiblePanel.id });\n }\n }\n } catch {\n return undefined;\n }\n };\n\n onCleanup(() => {\n // We wait a frame because in Solid children unmount before their parent\n // and we want to only unregister if just the panel is being removed, not\n // the whole group. This frame allows for the parent to lock the machine.\n requestAnimationFrame(() => {\n send?.({ type: \"unregisterPanelHandle\", id: handleId() });\n });\n });\n\n return (\n <div\n {...mergeSolidAttributes(\n attrs,\n panelAttributes(),\n props.disabled\n ? {}\n : mergeSolidAttributes(moveProps, { onKeyDown, tabIndex: 0 }),\n {\n style: {\n cursor: cursor(),\n ...dimensions(),\n ...props.style,\n },\n }\n )}\n id={handleId()}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"SolidWIndowSplitter.jsx","sourceRoot":"","sources":["../../src/SolidWIndowSplitter.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n buildTemplate,\n getCollapsiblePanelForHandleId,\n getCursor,\n getGroupSize,\n getPanelGroupPercentageSizes,\n getPanelGroupPixelSizes,\n getPanelPercentageSize,\n getPanelPixelSize,\n groupMachine,\n GroupMachineContextValue,\n haveConstraintsChangedForPanel,\n haveConstraintsChangedForPanelHandle,\n initializePanel,\n initializePanelHandleData,\n isPanelData,\n isPanelHandle,\n PanelData,\n parseUnit,\n prepareItems,\n prepareSnapshot,\n} from \"@window-splitter/state\";\nimport {\n Accessor,\n children,\n createDeferred,\n createEffect,\n createRenderEffect,\n createRoot,\n createSignal,\n createUniqueId,\n JSX,\n on,\n onCleanup,\n onMount,\n Ref,\n splitProps,\n} from \"solid-js\";\nimport {\n GroupMachineProvider,\n useMachineActor,\n useGroupId,\n useMachineState,\n useInitialPrerenderContext,\n} from \"./context.jsx\";\nimport {\n PanelGroupHandle,\n SharedPanelGroupProps,\n PanelHandle,\n SharedPanelProps,\n SharedPanelResizerProps,\n measureGroupChildren,\n getPanelDomAttributes,\n getPanelResizerDomAttributes,\n move,\n} from \"@window-splitter/interface\";\nimport { mergeSolidAttributes } from \"./mergeSolidAttributes.js\";\n\nexport interface PanelGroupProps\n extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"style\">,\n SharedPanelGroupProps {\n /** Imperative handle to control the group */\n handle?: Ref<PanelGroupHandle>;\n style?: JSX.CSSProperties;\n}\n\nexport function PanelGroup(props: PanelGroupProps) {\n const [, attrs] = splitProps(props, [\n \"orientation\",\n \"autosaveStrategy\",\n \"autosaveId\",\n \"snapshot\",\n \"shiftAmount\",\n ]);\n const [intiialValue, send, machineState, groupId] = createRoot(() => {\n const defaultGroupId = `panel-group-${createUniqueId()}`;\n const groupIdInit = props.autosaveId || props.id || defaultGroupId;\n const orientation = props.orientation || \"horizontal\";\n const autosaveStrategy = props.autosaveStrategy || \"localStorage\";\n\n let snapshot: GroupMachineContextValue | undefined;\n\n if (props.snapshot) {\n snapshot = props.snapshot;\n } else if (\n typeof window !== \"undefined\" &&\n props.autosaveId &&\n autosaveStrategy === \"localStorage\"\n ) {\n const localSnapshot = localStorage.getItem(props.autosaveId);\n\n if (localSnapshot) {\n snapshot = JSON.parse(localSnapshot) as GroupMachineContextValue;\n }\n }\n\n return [\n ...groupMachine(\n {\n orientation,\n groupId: groupIdInit,\n autosaveStrategy: autosaveStrategy,\n shiftAmount: props.shiftAmount,\n ...(snapshot ? prepareSnapshot(snapshot) : undefined),\n },\n (value) => {\n setCurrentValue({ ...value });\n }\n ),\n groupIdInit,\n ];\n });\n const [currentValue, setCurrentValue] = createSignal(intiialValue);\n\n const getContext = () => {\n const context = currentValue?.() || intiialValue;\n if (!context) throw new Error(\"No state\");\n return context;\n };\n\n // Prerender the children with the machine context\n const [isInitialPrerender, setIsInitialPrerender] = createSignal(true);\n const resolvedChildren = children(() => (\n <GroupMachineProvider\n groupId={groupId}\n send={send}\n state={getContext}\n initialPrerender={isInitialPrerender}\n >\n {props.children}\n </GroupMachineProvider>\n ));\n setIsInitialPrerender(false);\n\n let elementRef: HTMLDivElement | undefined;\n\n // Measure group size\n onMount(() => {\n const observer = new ResizeObserver(([entry]) => {\n if (!entry) return;\n if (!(entry.contentRect.width > 0 && entry.contentRect.height > 0))\n return;\n send({ type: \"setSize\", size: entry.contentRect });\n });\n\n if (elementRef) observer.observe(elementRef);\n onCleanup(() => observer.disconnect());\n });\n\n const childIds = createDeferred(() =>\n currentValue()\n .items.map((i) => i.id)\n .join(\",\")\n );\n\n // Measure children size\n createEffect(\n on(childIds, () => {\n const cleanup = measureGroupChildren(groupId, (childrenSizes) => {\n send({ type: \"setActualItemsSize\", childrenSizes });\n });\n\n onCleanup(cleanup);\n })\n );\n\n createRefContent(\n () => props.handle,\n () => ({\n getId: () => groupId,\n getPixelSizes: () => getPanelGroupPixelSizes(currentValue()),\n getPercentageSizes: () => getPanelGroupPercentageSizes(currentValue()),\n setSizes: (updates) => {\n const context = currentValue();\n\n for (let index = 0; index < updates.length; index++) {\n const item = context.items[index];\n const update = updates[index];\n\n if (item && isPanelData(item) && update) {\n send({ type: \"setPanelPixelSize\", panelId: item.id, size: update });\n }\n }\n },\n getTemplate: () => {\n const context = getContext();\n return buildTemplate({ ...context, items: prepareItems(context) });\n },\n getState: () => (machineState.current === \"idle\" ? \"idle\" : \"dragging\"),\n })\n );\n\n const getTemplate = () => buildTemplate(getContext());\n\n onMount(() => send({ type: \"unlockGroup\" }));\n onCleanup(() => send({ type: \"lockGroup\" }));\n\n return (\n <div\n id={groupId}\n ref={elementRef}\n data-panel-group-wrapper\n {...attrs}\n style={{\n display: \"grid\",\n \"grid-template-columns\":\n currentValue()?.orientation === \"horizontal\"\n ? getTemplate()\n : undefined,\n \"grid-template-rows\":\n currentValue()?.orientation === \"vertical\"\n ? getTemplate()\n : undefined,\n height: \"100%\",\n ...props.style,\n }}\n >\n {resolvedChildren()}\n </div>\n );\n}\n\nfunction createRefContent<T extends Exclude<unknown, () => void>>(\n getRef: () => Ref<T> | undefined,\n createRef: () => T\n) {\n createRenderEffect(() => {\n const refProp = getRef();\n if (typeof refProp !== \"function\") {\n return () => {};\n }\n const refFunc = refProp as (value: T) => void;\n refFunc(createRef());\n });\n}\n\nexport interface PanelProps\n extends SharedPanelProps<Accessor<boolean | undefined>>,\n Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onResize\" | \"style\"> {\n /** Imperative handle to control the panel */\n handle?: Ref<PanelHandle>;\n style?: JSX.CSSProperties;\n}\n\nexport function Panel(props: PanelProps) {\n const [, attrs] = splitProps(props, [\n \"min\",\n \"max\",\n \"id\",\n \"collapsible\",\n \"collapsed\",\n \"collapsedSize\",\n \"onCollapseChange\",\n \"collapseAnimation\",\n \"onResize\",\n \"defaultCollapsed\",\n \"default\",\n \"isStaticAtRest\",\n ]);\n\n const isInitialPrerender = useInitialPrerenderContext();\n const send = useMachineActor();\n const groupId = useGroupId();\n const state = useMachineState();\n const defaultId = createUniqueId();\n const panelId = () => props.id || defaultId;\n\n let dynamicPanelIsMounting = false;\n let hasMounted = false;\n\n const initPanel = (): PanelData =>\n initializePanel({\n id: panelId(),\n min: props.min,\n max: props.max,\n collapsible: props.collapsible,\n collapsed: props.collapsed?.(),\n collapsedSize: props.collapsedSize,\n onCollapseChange: { current: props.onCollapseChange },\n collapseAnimation: props.collapseAnimation,\n onResize: { current: props.onResize },\n defaultCollapsed: props.defaultCollapsed,\n default: props.default,\n isStaticAtRest: props.isStaticAtRest,\n });\n\n createRoot(() => {\n const panelData = initPanel();\n\n if (send) {\n const hasRegistered = state?.()?.items.find((i) => i.id === panelData.id);\n\n if (!hasRegistered) {\n if (isInitialPrerender()) {\n send({ type: \"registerPanel\", data: panelData });\n } else {\n dynamicPanelIsMounting = true;\n }\n } else {\n send?.({\n type: \"rebindPanelCallbacks\",\n data: {\n id: panelData.id,\n onCollapseChange: { current: props.onCollapseChange },\n onResize: { current: props.onResize },\n },\n });\n }\n }\n\n return panelData.id;\n });\n\n const panel = () => {\n const currentPanel = state?.()?.items.find((i) => i.id === panelId());\n if (!currentPanel || !isPanelData(currentPanel))\n throw new Error(\"Panel not found\");\n return currentPanel;\n };\n\n const contraintChanged = createDeferred(() => {\n const currentPanel = dynamicPanelIsMounting === false ? panel() : undefined;\n if (!currentPanel || !isPanelData(currentPanel)) return;\n return haveConstraintsChangedForPanel(initPanel(), currentPanel);\n });\n\n createEffect(\n on(contraintChanged, () => {\n if (!hasMounted) return;\n send?.({ type: \"updateConstraints\", data: initPanel() });\n })\n );\n\n onMount(() => {\n hasMounted = true;\n if (!dynamicPanelIsMounting) return;\n\n // get the index of the panel in it's group\n const panelElement = document.getElementById(panelId());\n\n if (!panelElement) return;\n\n const groupElement = panelElement.closest(\n `[data-panel-group-wrapper]`\n ) as HTMLDivElement;\n\n if (!groupElement || !panelElement) return;\n\n const order = Array.from(groupElement.children).indexOf(panelElement);\n\n if (typeof order !== \"number\") return;\n\n send?.({ type: \"registerDynamicPanel\", data: { ...initPanel(), order } });\n dynamicPanelIsMounting = false;\n });\n\n const panelData = () => {\n const item = state?.()?.items.find((i) => i.id === panelId());\n if (!item || !isPanelData(item)) return undefined;\n return item;\n };\n\n const currentCollapsed = () => props.collapsed?.() || false;\n createEffect(\n on(currentCollapsed, () => {\n const collapsed = props.collapsed?.() || false;\n\n if (!panelData?.()?.collapseIsControlled) return;\n\n if (collapsed) {\n send?.({ type: \"collapsePanel\", panelId: panelId(), controlled: true });\n } else {\n send?.({ type: \"expandPanel\", panelId: panelId(), controlled: true });\n }\n })\n );\n\n createRefContent(\n () => props.handle,\n () => ({\n getId: () => panelId(),\n collapse: async () => {\n if (panel().collapsible) {\n // eslint-disable-next-line solid/reactivity\n return await new Promise<void>((resolve) => {\n send?.({\n type: \"collapsePanel\",\n panelId: panelId(),\n controlled: true,\n resolve,\n });\n });\n }\n },\n isCollapsed: () => Boolean(panel().collapsible && panel().collapsed),\n expand: async () => {\n if (panel().collapsible) {\n // eslint-disable-next-line solid/reactivity\n return await new Promise<void>((resolve) => {\n send?.({\n type: \"expandPanel\",\n panelId: panelId(),\n controlled: true,\n resolve,\n });\n });\n }\n },\n isExpanded: () => Boolean(panel().collapsible && !panel().collapsed),\n getPixelSize: () => {\n const s = state?.();\n if (!s) throw new Error(\"No state\");\n return getPanelPixelSize(s, panelId());\n },\n setSize: (size) => {\n send?.({ type: \"setPanelPixelSize\", panelId: panelId(), size });\n },\n getPercentageSize: () => {\n const s = state?.();\n if (!s) throw new Error(\"No state\");\n return getPanelPercentageSize(s, panelId());\n },\n })\n );\n\n onCleanup(() => {\n // We wait a frame because in Solid children unmount before their parent\n // and we want to only unregister if just the panel is being removed, not\n // the whole group. This frame allows for the parent to lock the machine.\n requestAnimationFrame(() => {\n send?.({ type: \"unregisterPanel\", id: panelId() });\n });\n });\n\n const domAttributes = () => {\n const currentPanel = panelData();\n\n return getPanelDomAttributes({\n groupId,\n id: panelId(),\n collapsible: currentPanel?.collapsible,\n collapsed: currentPanel?.collapsed,\n });\n };\n\n return (\n <div\n {...mergeSolidAttributes(attrs, domAttributes())}\n style={{\n \"min-width\": 0,\n \"min-height\": 0,\n overflow: \"hidden\",\n ...props.style,\n }}\n />\n );\n}\n\nexport interface PanelResizerProps\n extends SharedPanelResizerProps,\n Omit<\n JSX.HTMLAttributes<HTMLDivElement>,\n \"onDragStart\" | \"onDrag\" | \"onDragEnd\" | \"style\"\n > {\n style?: JSX.CSSProperties;\n}\n\nexport function PanelResizer(props: PanelResizerProps) {\n const [, attrs] = splitProps(props, [\n \"size\",\n \"id\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"disabled\",\n ]);\n\n const isInitialPrerender = useInitialPrerenderContext();\n const send = useMachineActor();\n const state = useMachineState();\n const defaultId = createUniqueId();\n const handleId = () => props.id || defaultId;\n const handle = () => {\n const currentHandle = state?.()?.items.find((i) => i.id === handleId());\n if (!currentHandle || !isPanelHandle(currentHandle))\n throw new Error(\"Handle not found\");\n return currentHandle;\n };\n\n let dynamicPanelHandleIsMounting = false;\n let hasMounted = false;\n\n const initHandle = () =>\n initializePanelHandleData({\n size: props.size || \"0px\",\n id: handleId(),\n });\n\n createRoot(() => {\n if (send) {\n const hasRegistered = state?.()?.items.find((i) => i.id === handleId());\n\n if (!hasRegistered) {\n if (isInitialPrerender()) {\n send({\n type: \"registerPanelHandle\",\n data: initHandle(),\n });\n } else {\n dynamicPanelHandleIsMounting = true;\n }\n }\n }\n });\n\n const contraintChanged = createDeferred(() => {\n const currentHandle =\n dynamicPanelHandleIsMounting === false ? handle() : undefined;\n if (!currentHandle || !isPanelHandle(currentHandle)) return;\n return haveConstraintsChangedForPanelHandle(initHandle(), currentHandle);\n });\n\n createEffect(\n on(contraintChanged, () => {\n if (!hasMounted) return;\n send?.({ type: \"updateConstraints\", data: initHandle() });\n })\n );\n\n onMount(() => {\n hasMounted = true;\n if (!dynamicPanelHandleIsMounting) return;\n\n // get the index of the panel in it's group\n const handleElement = document.getElementById(handleId());\n\n if (!handleElement) return;\n\n const groupElement = handleElement.closest(\n `[data-panel-group-wrapper]`\n ) as HTMLDivElement;\n\n if (!groupElement || !handleElement) return;\n\n const order = Array.from(groupElement.children).indexOf(handleElement);\n\n if (typeof order !== \"number\") return;\n\n send?.({ type: \"registerPanelHandle\", data: { ...initHandle(), order } });\n dynamicPanelHandleIsMounting = false;\n });\n\n const { moveProps } = move({\n onMoveStart: () => {\n send?.({ type: \"dragHandleStart\", handleId: handleId() });\n props.onDragStart?.();\n document.body.style.cursor = cursor() || \"auto\";\n },\n onMove: (e) => {\n send?.({ type: \"dragHandle\", handleId: handleId(), value: e });\n props.onDrag?.();\n },\n onMoveEnd: () => {\n send?.({ type: \"dragHandleEnd\", handleId: handleId() });\n props.onDragEnd?.();\n document.body.style.cursor = \"auto\";\n },\n });\n\n const itemIndex = () =>\n state?.()?.items.findIndex((item) => item.id === handleId()) || -1;\n const activeDragHandleId = () => state?.()?.activeDragHandleId;\n const isDragging = () => activeDragHandleId() === handleId();\n const panelBeforeHandle = () => state?.()?.items[itemIndex() - 1];\n const panelAttributes = () => {\n const panelBefore = panelBeforeHandle();\n const currentState = state?.();\n\n if (!panelBefore || !currentState || !isPanelData(panelBefore))\n return { id: handleId };\n\n return getPanelResizerDomAttributes({\n groupId: currentState.groupId,\n id: handleId(),\n orientation: currentState.orientation,\n isDragging: isDragging(),\n activeDragHandleId: activeDragHandleId(),\n disabled: props.disabled,\n controlsId: panelBefore.id,\n min: panelBefore.min,\n max: panelBefore.max,\n currentValue: panelBefore.currentValue,\n groupSize: getGroupSize(currentState),\n });\n };\n\n const cursor = () => {\n if (props.disabled) return;\n const currentState = state?.();\n if (!currentState) return;\n return getCursor(currentState);\n };\n const dimensions = () => {\n const currentState = state?.();\n if (!currentState) return {};\n const unit = parseUnit(props.size || \"0px\");\n return currentState.orientation === \"horizontal\"\n ? { width: `${unit.value.toNumber()}px`, height: \"100%\" }\n : { height: `${unit.value.toNumber()}px`, width: \"100%\" };\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const currentState = state?.();\n if (!currentState) return undefined;\n\n try {\n const collapsiblePanel = getCollapsiblePanelForHandleId(\n currentState,\n handleId()\n );\n\n if (e.key === \"Enter\" && collapsiblePanel) {\n if (collapsiblePanel.collapsed) {\n send?.({ type: \"expandPanel\", panelId: collapsiblePanel.id });\n } else {\n send?.({ type: \"collapsePanel\", panelId: collapsiblePanel.id });\n }\n }\n } catch {\n return undefined;\n }\n };\n\n onCleanup(() => {\n // We wait a frame because in Solid children unmount before their parent\n // and we want to only unregister if just the panel is being removed, not\n // the whole group. This frame allows for the parent to lock the machine.\n requestAnimationFrame(() => {\n send?.({ type: \"unregisterPanelHandle\", id: handleId() });\n });\n });\n\n return (\n <div\n {...mergeSolidAttributes(\n attrs,\n panelAttributes(),\n props.disabled\n ? {}\n : mergeSolidAttributes(moveProps, { onKeyDown, tabIndex: 0 }),\n {\n style: {\n cursor: cursor(),\n ...dimensions(),\n ...props.style,\n },\n }\n )}\n id={handleId()}\n />\n );\n}\n"]}
@@ -121,18 +121,18 @@ test("Keyboard interactions with collapsed panels", async () => {
121
121
  await expectTemplate(handle, "209px 10px 209px 10px 60px");
122
122
  const resizer2 = document.getElementById("resizer-2");
123
123
  fireEvent.keyDown(resizer2, { key: "Enter" });
124
- await expectTemplate(handle, "209px 10px 169px 10px 100px");
124
+ await expectTemplate(handle, "209.015625px 10px 167px 10px 101.984375px");
125
125
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
126
126
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
127
127
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
128
128
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
129
- await expectTemplate(handle, "209px 10px 165px 10px 104px");
129
+ await expectTemplate(handle, "209.015625px 10px 163px 10px 105.984375px");
130
130
  fireEvent.keyDown(resizer2, { key: "ArrowLeft", shiftKey: true });
131
- await expectTemplate(handle, "209.03125px 10px 149.984375px 10px 118.984375px");
131
+ await expectTemplate(handle, "209.03125px 10px 147.984375px 10px 120.984375px");
132
132
  fireEvent.keyDown(resizer2, { key: "Enter" });
133
133
  await expectTemplate(handle, "209.03125px 10px 208.96875px 10px 60px");
134
134
  fireEvent.keyDown(resizer2, { key: "Enter" });
135
- await expectTemplate(handle, "209.0625px 10px 149.96875px 10px 118.96875px");
135
+ await expectTemplate(handle, "209.046875px 10px 144.9375px 10px 124.015625px");
136
136
  });
137
137
  describe("imperative panel API", async () => {
138
138
  test("panel group", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidWindowSplitter.test.jsx","sourceRoot":"","sources":["../../src/SolidWindowSplitter.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import { test, expect, describe, vi, afterEach } from \"vitest\";\nimport { cleanup, fireEvent, render, waitFor } from \"@solidjs/testing-library\";\nimport * as Cookies from \"tiny-cookie\";\n\nimport { PanelGroupHandle, PanelHandle } from \"@window-splitter/interface\";\nimport {\n Autosave,\n AutosaveCollapsible,\n Collapsible,\n ConditionalPanel,\n Simple,\n VerticalLayout,\n DynamicConstraints,\n AutosaveCookie,\n} from \"./SolidWindowSplitter.stories.jsx\";\nimport { createTestUtils, dragHandle } from \"@window-splitter/interface/test\";\n\nconst { expectTemplate, waitForMeasurement, waitForCondition } =\n createTestUtils({ waitFor });\n\nafterEach(() => {\n cleanup();\n});\n\ntest(\"horizontal layout\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"500px\" }}>\n <Simple handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n\n expect(getByText(\"Panel 1\")).toBeInTheDocument();\n expect(getByText(\"Panel 2\")).toBeInTheDocument();\n\n await expectTemplate(handle, \"244px 10px 244px\");\n\n // Should respect the min\n await dragHandle({ delta: 300 });\n await expectTemplate(handle, \"388px 10px 100px\");\n});\n\ntest(\"vertical layout\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"500px\" }}>\n <VerticalLayout handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n\n expect(getByText(\"top\")).toBeInTheDocument();\n expect(getByText(\"middle\")).toBeInTheDocument();\n expect(getByText(\"bottom\")).toBeInTheDocument();\n\n await expectTemplate(handle, \"96px 10px 108px 10px 96px\");\n\n // Should respect the min\n await dragHandle({ delta: 100, orientation: \"vertical\" });\n await expectTemplate(handle, \"172px 10px 64px 10px 64px\");\n});\n\ntest(\"Conditional Panels\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"500px\" }}>\n <ConditionalPanel handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"244px 10px 244px\");\n\n getByText(\"Expand\").click();\n await expectTemplate(handle, \"244px 10px 134px 10px 100px\");\n\n getByText(\"Close\").click();\n await expectTemplate(handle, \"244px 10px 244px\");\n});\n\ntest(\"Dynamic constraints\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"1000px\" }}>\n <DynamicConstraints handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"100px 10px 178px 10px 700px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle, \"500px 10px 178px 10px 300px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle, \"400px 10px 178px 10px 400px\");\n});\n\ndescribe(\"Autosave\", () => {\n test(\"localStorage\", async () => {\n localStorage.clear();\n\n let handle: PanelGroupHandle | null = null!;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Autosave handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"244px 10px 244px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle, \"342px 10px 146px\");\n\n await waitForCondition(() =>\n Boolean(localStorage.getItem(\"autosave-example-solid\"))\n );\n const obj = JSON.parse(\n localStorage.getItem(\"autosave-example-solid\") || \"{}\"\n );\n expect(obj.items).toMatchSnapshot();\n });\n\n test(\"callback\", async () => {\n localStorage.clear();\n\n let handle: PanelGroupHandle | null = null!;\n\n const spy = vi.fn();\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <AutosaveCollapsible\n handle={(v) => (handle = v)}\n onCollapseChange={spy}\n />\n </div>\n ));\n\n await dragHandle({ delta: -200 });\n await expectTemplate(handle, \"100px 10px 388px\");\n expect(spy).toHaveBeenCalledWith(true);\n\n cleanup();\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <AutosaveCollapsible\n handle={(v) => (handle = v)}\n onCollapseChange={spy}\n />\n </div>\n ));\n\n await expectTemplate(handle, \"100px 10px 388px\");\n await dragHandle({ delta: 200 });\n expect(spy).toHaveBeenCalledWith(false);\n });\n\n test(\"cookie\", async () => {\n // clear cookies\n document.cookie = \"test=; expires=Thu, 01 Jan 1970 00:00:00 GMT\";\n\n let handle: PanelGroupHandle | null = null!;\n\n render(() => (\n <div style={{ width: \"502px\" }}>\n <AutosaveCookie handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"245px 10px 245px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle, \"343px 10px 147px\");\n\n await waitForCondition(() =>\n document.cookie.includes(\"autosave-cookie-solid\")\n );\n\n expect(document.cookie).toMatchSnapshot();\n\n const snapshot = Cookies.get(\"autosave-cookie-solid\");\n\n cleanup();\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <AutosaveCookie\n handle={(v) => (handle = v)}\n snapshot={snapshot ? JSON.parse(snapshot) : undefined}\n />\n </div>\n ));\n\n await expectTemplate(handle, \"341.609375px 10px 146.390625px\");\n });\n});\n\ntest(\"Keyboard interactions with collapsed panels\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Collapsible handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"209px 10px 209px 10px 60px\");\n\n const resizer2 = document.getElementById(\"resizer-2\")!;\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(handle, \"209px 10px 169px 10px 100px\");\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n await expectTemplate(handle, \"209px 10px 165px 10px 104px\");\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\", shiftKey: true });\n await expectTemplate(\n handle,\n \"209.03125px 10px 149.984375px 10px 118.984375px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(handle, \"209.03125px 10px 208.96875px 10px 60px\");\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(handle, \"209.0625px 10px 149.96875px 10px 118.96875px\");\n});\n\ndescribe(\"imperative panel API\", async () => {\n test(\"panel group\", async () => {\n let handle: PanelGroupHandle;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Collapsible handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle!);\n\n expect(handle!.getPercentageSizes()).toMatchInlineSnapshot(`\n [\n 0.5,\n 0.020080321285140562,\n 0.5,\n 0.020080321285140562,\n 0.12048192771084337,\n ]\n `);\n\n expect(handle!.getPixelSizes()).toMatchInlineSnapshot(`\n [\n 209,\n 10,\n 209,\n 10,\n 60,\n ]\n `);\n\n await expectTemplate(handle!, \"209px 10px 209px 10px 60px\");\n });\n\n test(\"panel\", async () => {\n let handle: PanelGroupHandle;\n let rightHandle: PanelHandle;\n let leftHandle: PanelHandle;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Collapsible\n handle={(v) => (handle = v)}\n rightPanelHandle={(v) => (rightHandle = v)}\n leftPanelHandle={(v) => (leftHandle = v)}\n />\n </div>\n ));\n\n await waitForMeasurement(handle!);\n\n expect(rightHandle!.isCollapsed()).toBe(true);\n expect(rightHandle!.isExpanded()).toBe(false);\n\n rightHandle!.expand();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle!.isCollapsed()).toBe(false);\n expect(rightHandle!.isExpanded()).toBe(true);\n\n rightHandle!.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle!.isCollapsed()).toBe(true);\n expect(rightHandle!.isExpanded()).toBe(false);\n\n // Test the non controlled version\n\n expect(leftHandle!.isCollapsed()).toBe(false);\n expect(leftHandle!.isExpanded()).toBe(true);\n\n leftHandle!.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(leftHandle!.isCollapsed()).toBe(true);\n expect(leftHandle!.isExpanded()).toBe(false);\n expect(rightHandle!.getPercentageSize()).toBe(\n leftHandle!.getPercentageSize()\n );\n expect(rightHandle!.getPixelSize()).toBe(leftHandle!.getPixelSize());\n\n leftHandle!.expand();\n await new Promise((resolve) => setTimeout(resolve, 5000));\n\n expect(leftHandle!.isCollapsed()).toBe(false);\n expect(leftHandle!.isExpanded()).toBe(true);\n });\n});\n"]}
1
+ {"version":3,"file":"SolidWindowSplitter.test.jsx","sourceRoot":"","sources":["../../src/SolidWindowSplitter.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import { test, expect, describe, vi, afterEach } from \"vitest\";\nimport { cleanup, fireEvent, render, waitFor } from \"@solidjs/testing-library\";\nimport * as Cookies from \"tiny-cookie\";\n\nimport { PanelGroupHandle, PanelHandle } from \"@window-splitter/interface\";\nimport {\n Autosave,\n AutosaveCollapsible,\n Collapsible,\n ConditionalPanel,\n Simple,\n VerticalLayout,\n DynamicConstraints,\n AutosaveCookie,\n} from \"./SolidWindowSplitter.stories.jsx\";\nimport { createTestUtils, dragHandle } from \"@window-splitter/interface/test\";\n\nconst { expectTemplate, waitForMeasurement, waitForCondition } =\n createTestUtils({ waitFor });\n\nafterEach(() => {\n cleanup();\n});\n\ntest(\"horizontal layout\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"500px\" }}>\n <Simple handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n\n expect(getByText(\"Panel 1\")).toBeInTheDocument();\n expect(getByText(\"Panel 2\")).toBeInTheDocument();\n\n await expectTemplate(handle, \"244px 10px 244px\");\n\n // Should respect the min\n await dragHandle({ delta: 300 });\n await expectTemplate(handle, \"388px 10px 100px\");\n});\n\ntest(\"vertical layout\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"500px\" }}>\n <VerticalLayout handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n\n expect(getByText(\"top\")).toBeInTheDocument();\n expect(getByText(\"middle\")).toBeInTheDocument();\n expect(getByText(\"bottom\")).toBeInTheDocument();\n\n await expectTemplate(handle, \"96px 10px 108px 10px 96px\");\n\n // Should respect the min\n await dragHandle({ delta: 100, orientation: \"vertical\" });\n await expectTemplate(handle, \"172px 10px 64px 10px 64px\");\n});\n\ntest(\"Conditional Panels\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"500px\" }}>\n <ConditionalPanel handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"244px 10px 244px\");\n\n getByText(\"Expand\").click();\n await expectTemplate(handle, \"244px 10px 134px 10px 100px\");\n\n getByText(\"Close\").click();\n await expectTemplate(handle, \"244px 10px 244px\");\n});\n\ntest(\"Dynamic constraints\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n const { getByText } = render(() => (\n <div style={{ width: \"1000px\" }}>\n <DynamicConstraints handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"100px 10px 178px 10px 700px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle, \"500px 10px 178px 10px 300px\");\n\n getByText(\"Toggle Custom\").click();\n await expectTemplate(handle, \"400px 10px 178px 10px 400px\");\n});\n\ndescribe(\"Autosave\", () => {\n test(\"localStorage\", async () => {\n localStorage.clear();\n\n let handle: PanelGroupHandle | null = null!;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Autosave handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"244px 10px 244px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle, \"342px 10px 146px\");\n\n await waitForCondition(() =>\n Boolean(localStorage.getItem(\"autosave-example-solid\"))\n );\n const obj = JSON.parse(\n localStorage.getItem(\"autosave-example-solid\") || \"{}\"\n );\n expect(obj.items).toMatchSnapshot();\n });\n\n test(\"callback\", async () => {\n localStorage.clear();\n\n let handle: PanelGroupHandle | null = null!;\n\n const spy = vi.fn();\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <AutosaveCollapsible\n handle={(v) => (handle = v)}\n onCollapseChange={spy}\n />\n </div>\n ));\n\n await dragHandle({ delta: -200 });\n await expectTemplate(handle, \"100px 10px 388px\");\n expect(spy).toHaveBeenCalledWith(true);\n\n cleanup();\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <AutosaveCollapsible\n handle={(v) => (handle = v)}\n onCollapseChange={spy}\n />\n </div>\n ));\n\n await expectTemplate(handle, \"100px 10px 388px\");\n await dragHandle({ delta: 200 });\n expect(spy).toHaveBeenCalledWith(false);\n });\n\n test(\"cookie\", async () => {\n // clear cookies\n document.cookie = \"test=; expires=Thu, 01 Jan 1970 00:00:00 GMT\";\n\n let handle: PanelGroupHandle | null = null!;\n\n render(() => (\n <div style={{ width: \"502px\" }}>\n <AutosaveCookie handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"245px 10px 245px\");\n\n await dragHandle({ delta: 100 });\n await expectTemplate(handle, \"343px 10px 147px\");\n\n await waitForCondition(() =>\n document.cookie.includes(\"autosave-cookie-solid\")\n );\n\n expect(document.cookie).toMatchSnapshot();\n\n const snapshot = Cookies.get(\"autosave-cookie-solid\");\n\n cleanup();\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <AutosaveCookie\n handle={(v) => (handle = v)}\n snapshot={snapshot ? JSON.parse(snapshot) : undefined}\n />\n </div>\n ));\n\n await expectTemplate(handle, \"341.609375px 10px 146.390625px\");\n });\n});\n\ntest(\"Keyboard interactions with collapsed panels\", async () => {\n let handle: PanelGroupHandle | null = null!;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Collapsible handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle);\n await expectTemplate(handle, \"209px 10px 209px 10px 60px\");\n\n const resizer2 = document.getElementById(\"resizer-2\")!;\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(handle, \"209.015625px 10px 167px 10px 101.984375px\");\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\" });\n await expectTemplate(handle, \"209.015625px 10px 163px 10px 105.984375px\");\n\n fireEvent.keyDown(resizer2, { key: \"ArrowLeft\", shiftKey: true });\n await expectTemplate(\n handle,\n \"209.03125px 10px 147.984375px 10px 120.984375px\"\n );\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(handle, \"209.03125px 10px 208.96875px 10px 60px\");\n\n fireEvent.keyDown(resizer2, { key: \"Enter\" });\n await expectTemplate(\n handle,\n \"209.046875px 10px 144.9375px 10px 124.015625px\"\n );\n});\n\ndescribe(\"imperative panel API\", async () => {\n test(\"panel group\", async () => {\n let handle: PanelGroupHandle;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Collapsible handle={(v) => (handle = v)} />\n </div>\n ));\n\n await waitForMeasurement(handle!);\n\n expect(handle!.getPercentageSizes()).toMatchInlineSnapshot(`\n [\n 0.5,\n 0.020080321285140562,\n 0.5,\n 0.020080321285140562,\n 0.12048192771084337,\n ]\n `);\n\n expect(handle!.getPixelSizes()).toMatchInlineSnapshot(`\n [\n 209,\n 10,\n 209,\n 10,\n 60,\n ]\n `);\n\n await expectTemplate(handle!, \"209px 10px 209px 10px 60px\");\n });\n\n test(\"panel\", async () => {\n let handle: PanelGroupHandle;\n let rightHandle: PanelHandle;\n let leftHandle: PanelHandle;\n\n render(() => (\n <div style={{ width: \"500px\" }}>\n <Collapsible\n handle={(v) => (handle = v)}\n rightPanelHandle={(v) => (rightHandle = v)}\n leftPanelHandle={(v) => (leftHandle = v)}\n />\n </div>\n ));\n\n await waitForMeasurement(handle!);\n\n expect(rightHandle!.isCollapsed()).toBe(true);\n expect(rightHandle!.isExpanded()).toBe(false);\n\n rightHandle!.expand();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle!.isCollapsed()).toBe(false);\n expect(rightHandle!.isExpanded()).toBe(true);\n\n rightHandle!.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(rightHandle!.isCollapsed()).toBe(true);\n expect(rightHandle!.isExpanded()).toBe(false);\n\n // Test the non controlled version\n\n expect(leftHandle!.isCollapsed()).toBe(false);\n expect(leftHandle!.isExpanded()).toBe(true);\n\n leftHandle!.collapse();\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n expect(leftHandle!.isCollapsed()).toBe(true);\n expect(leftHandle!.isExpanded()).toBe(false);\n expect(rightHandle!.getPercentageSize()).toBe(\n leftHandle!.getPercentageSize()\n );\n expect(rightHandle!.getPixelSize()).toBe(leftHandle!.getPixelSize());\n\n leftHandle!.expand();\n await new Promise((resolve) => setTimeout(resolve, 5000));\n\n expect(leftHandle!.isCollapsed()).toBe(false);\n expect(leftHandle!.isExpanded()).toBe(true);\n });\n});\n"]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@window-splitter/solid",
4
4
  "sideEffects": false,
5
- "version": "1.1.0",
5
+ "version": "1.1.1--canary.9d2f98a.0",
6
6
  "description": "A WAI-ARIA compliant window splitter for Solid.",
7
7
  "repository": {
8
8
  "url": "https://github.com/hipstersmoothie/window-splitter",
@@ -31,7 +31,7 @@
31
31
  "license": "MIT",
32
32
  "devDependencies": {
33
33
  "@chromatic-com/storybook": "^1.6.1",
34
- "@internal/eslint-config": "1.1.0",
34
+ "@internal/eslint-config": "1.1.1--canary.9d2f98a.0",
35
35
  "@rsbuild/core": "^1.3.12",
36
36
  "@rsdoctor/rspack-plugin": "^1.0.2",
37
37
  "@solidjs/testing-library": "^0.8.10",
@@ -60,8 +60,8 @@
60
60
  "solid-js": ">=1.x"
61
61
  },
62
62
  "dependencies": {
63
- "@window-splitter/interface": "1.1.0",
64
- "@window-splitter/state": "1.1.0"
63
+ "@window-splitter/interface": "1.1.1--canary.9d2f98a.0",
64
+ "@window-splitter/state": "1.1.1--canary.9d2f98a.0"
65
65
  },
66
66
  "tshy": {
67
67
  "exclude": [
@@ -98,5 +98,5 @@
98
98
  "plugin:storybook/recommended"
99
99
  ]
100
100
  },
101
- "gitHead": "bb02be9bc8534214871f13704afd741d2fab810f"
101
+ "gitHead": "9d2f98a3d6226018c598018cea829d6412b60cd0"
102
102
  }
@@ -379,14 +379,32 @@ export function Panel(props: PanelProps) {
379
379
  () => props.handle,
380
380
  () => ({
381
381
  getId: () => panelId(),
382
- collapse: () => {
383
- if (!panel().collapsible) return;
384
- send?.({ type: "collapsePanel", panelId: panelId(), controlled: true });
382
+ collapse: async () => {
383
+ if (panel().collapsible) {
384
+ // eslint-disable-next-line solid/reactivity
385
+ return await new Promise<void>((resolve) => {
386
+ send?.({
387
+ type: "collapsePanel",
388
+ panelId: panelId(),
389
+ controlled: true,
390
+ resolve,
391
+ });
392
+ });
393
+ }
385
394
  },
386
395
  isCollapsed: () => Boolean(panel().collapsible && panel().collapsed),
387
- expand: () => {
388
- if (!panel().collapsible) return;
389
- send?.({ type: "expandPanel", panelId: panelId(), controlled: true });
396
+ expand: async () => {
397
+ if (panel().collapsible) {
398
+ // eslint-disable-next-line solid/reactivity
399
+ return await new Promise<void>((resolve) => {
400
+ send?.({
401
+ type: "expandPanel",
402
+ panelId: panelId(),
403
+ controlled: true,
404
+ resolve,
405
+ });
406
+ });
407
+ }
390
408
  },
391
409
  isExpanded: () => Boolean(panel().collapsible && !panel().collapsed),
392
410
  getPixelSize: () => {
@@ -221,25 +221,28 @@ test("Keyboard interactions with collapsed panels", async () => {
221
221
 
222
222
  const resizer2 = document.getElementById("resizer-2")!;
223
223
  fireEvent.keyDown(resizer2, { key: "Enter" });
224
- await expectTemplate(handle, "209px 10px 169px 10px 100px");
224
+ await expectTemplate(handle, "209.015625px 10px 167px 10px 101.984375px");
225
225
 
226
226
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
227
227
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
228
228
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
229
229
  fireEvent.keyDown(resizer2, { key: "ArrowLeft" });
230
- await expectTemplate(handle, "209px 10px 165px 10px 104px");
230
+ await expectTemplate(handle, "209.015625px 10px 163px 10px 105.984375px");
231
231
 
232
232
  fireEvent.keyDown(resizer2, { key: "ArrowLeft", shiftKey: true });
233
233
  await expectTemplate(
234
234
  handle,
235
- "209.03125px 10px 149.984375px 10px 118.984375px"
235
+ "209.03125px 10px 147.984375px 10px 120.984375px"
236
236
  );
237
237
 
238
238
  fireEvent.keyDown(resizer2, { key: "Enter" });
239
239
  await expectTemplate(handle, "209.03125px 10px 208.96875px 10px 60px");
240
240
 
241
241
  fireEvent.keyDown(resizer2, { key: "Enter" });
242
- await expectTemplate(handle, "209.0625px 10px 149.96875px 10px 118.96875px");
242
+ await expectTemplate(
243
+ handle,
244
+ "209.046875px 10px 144.9375px 10px 124.015625px"
245
+ );
243
246
  });
244
247
 
245
248
  describe("imperative panel API", async () => {
@@ -1,29 +0,0 @@
1
- 🩺 The doctor is checking the health of your Storybook..
2
- ╭ Incompatible packages found ─────────────────────────────────────────────────────────────────────────────╮
3
- │ │
4
- │ You are currently using Storybook 1.0.0-beta.7 but you have packages which are incompatible with it: │
5
- │ - @storybook/builder-vite@9.0.0-beta.4 which depends on 9.0.0-beta.4 │
6
- │ Repo: https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme │
7
- │ - storybook-solidjs@1.0.0-beta.7 which depends on * │
8
- │ Repo: https://github.com/storybookjs/storybook/tree/main/renderers/solid │
9
- │ - storybook-solidjs-vite@1.0.0-beta.7 which depends on * │
10
- │ Repo: https://github.com/storybookjs/storybook/tree/main/frameworks/solid-vite │
11
- │ │
12
- │ │
13
- │ Please consider updating your packages or contacting the maintainers for compatibility details. │
14
- │ For more on Storybook 9 compatibility, see the linked GitHub issue: │
15
- │ https://github.com/storybookjs/storybook/issues/30944 │
16
- │ │
17
- │ │
18
- │ The version of storybook@1.0.0-beta.7 is behind the following core packages: │
19
- │ - @storybook/builder-vite@9.0.0-beta.4 │
20
- │ Upgrade Storybook with: │
21
- │ npx storybook@latest upgrade │
22
- │ │
23
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
24
-
25
- You can always recheck the health of your project by running:
26
- npx storybook doctor
27
-
28
- Full logs are available in /Users/andrew/Documents/react-window-splitter/packages/solid/doctor-storybook.log
29
-