@window-splitter/solid 0.8.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 (48) hide show
  1. package/.storybook/main.ts +24 -0
  2. package/.storybook/preview.ts +14 -0
  3. package/.tshy/build.json +8 -0
  4. package/.tshy/esm.json +18 -0
  5. package/.turbo/turbo-build.log +5 -0
  6. package/.turbo/turbo-lint.log +5 -0
  7. package/CHANGELOG.md +66 -0
  8. package/README.md +54 -0
  9. package/dist/esm/SolidWIndowSplitter.d.ts +19 -0
  10. package/dist/esm/SolidWIndowSplitter.d.ts.map +1 -0
  11. package/dist/esm/SolidWIndowSplitter.jsx +506 -0
  12. package/dist/esm/SolidWIndowSplitter.jsx.map +1 -0
  13. package/dist/esm/SolidWindowSplitter.stories.d.ts +52 -0
  14. package/dist/esm/SolidWindowSplitter.stories.d.ts.map +1 -0
  15. package/dist/esm/SolidWindowSplitter.stories.jsx +470 -0
  16. package/dist/esm/SolidWindowSplitter.stories.jsx.map +1 -0
  17. package/dist/esm/SolidWindowSplitter.test.d.ts +2 -0
  18. package/dist/esm/SolidWindowSplitter.test.d.ts.map +1 -0
  19. package/dist/esm/SolidWindowSplitter.test.jsx +197 -0
  20. package/dist/esm/SolidWindowSplitter.test.jsx.map +1 -0
  21. package/dist/esm/context.d.ts +18 -0
  22. package/dist/esm/context.d.ts.map +1 -0
  23. package/dist/esm/context.jsx +38 -0
  24. package/dist/esm/context.jsx.map +1 -0
  25. package/dist/esm/index.d.ts +2 -0
  26. package/dist/esm/index.d.ts.map +1 -0
  27. package/dist/esm/index.js +2 -0
  28. package/dist/esm/index.js.map +1 -0
  29. package/dist/esm/mergeSolidAttributes.d.ts +6 -0
  30. package/dist/esm/mergeSolidAttributes.d.ts.map +1 -0
  31. package/dist/esm/mergeSolidAttributes.js +45 -0
  32. package/dist/esm/mergeSolidAttributes.js.map +1 -0
  33. package/dist/esm/package.json +3 -0
  34. package/doctor-storybook.log +29 -0
  35. package/eslint.config.js +10 -0
  36. package/index.html +11 -0
  37. package/package.json +104 -0
  38. package/rsbuild.config.js +25 -0
  39. package/src/SolidWIndowSplitter.tsx +683 -0
  40. package/src/SolidWindowSplitter.stories.tsx +689 -0
  41. package/src/SolidWindowSplitter.test.tsx +333 -0
  42. package/src/__snapshots__/SolidWindowSplitter.test.tsx.snap +56 -0
  43. package/src/context.tsx +58 -0
  44. package/src/index.ts +1 -0
  45. package/src/mergeSolidAttributes.ts +61 -0
  46. package/tsconfig.json +8 -0
  47. package/vite.config.js +6 -0
  48. package/vitest.config.ts +22 -0
@@ -0,0 +1,470 @@
1
+ import { spring } from "framer-motion";
2
+ import { PanelGroup, PanelResizer, Panel, } from "./SolidWIndowSplitter.jsx";
3
+ import { createSignal, Show, splitProps } from "solid-js";
4
+ const meta = {
5
+ title: "Components/Solid",
6
+ component: PanelGroup,
7
+ };
8
+ export default meta;
9
+ function StyledPanelGroup(props) {
10
+ return (<PanelGroup {...props} style={{
11
+ border: "1px solid rgba(0, 0, 0, 0.3)",
12
+ background: "rgba(0, 0, 0, 0.1)",
13
+ "border-radius": "12px",
14
+ "box-sizing": "border-box",
15
+ ...props.style,
16
+ }}/>);
17
+ }
18
+ function StyledPanel(props) {
19
+ const [, attrs] = splitProps(props, ["children"]);
20
+ return (<Panel style={{
21
+ overflow: "hidden",
22
+ }} {...attrs}>
23
+ <div style={{
24
+ height: "100%",
25
+ width: "100%",
26
+ padding: "20px",
27
+ display: "flex",
28
+ "align-items": "center",
29
+ "justify-content": "center",
30
+ overflow: "hidden",
31
+ "box-sizing": "border-box",
32
+ }}>
33
+ {props.children}
34
+ </div>
35
+ </Panel>);
36
+ }
37
+ function StyledResizer(props) {
38
+ return <PanelResizer size="10px" style={{ background: "red" }} {...props}/>;
39
+ }
40
+ export function Simple(props) {
41
+ return (<StyledPanelGroup handle={props.handle} style={{ height: "200px" }}>
42
+ <StyledPanel>Panel 1</StyledPanel>
43
+ <StyledResizer />
44
+ <StyledPanel min="100px">Panel 2</StyledPanel>
45
+ </StyledPanelGroup>);
46
+ }
47
+ export function Autosave(props) {
48
+ return (<StyledPanelGroup autosaveId="autosave-example-solid" handle={props.handle} snapshot={props.snapshot}>
49
+ <StyledPanel id="1">Panel 1</StyledPanel>
50
+ <StyledResizer id="resizer"/>
51
+ <StyledPanel id="2">Panel 2</StyledPanel>
52
+ </StyledPanelGroup>);
53
+ }
54
+ export function AutosaveCookie(props) {
55
+ return (<StyledPanelGroup autosaveId="autosave-cookie-solid" autosaveStrategy="cookie" style={{ height: "200px" }} handle={props.handle} snapshot={props.snapshot}>
56
+ <StyledPanel id="1">Panel 1</StyledPanel>
57
+ <StyledResizer id="resizer1" size="10px" style={{ background: "red" }}/>
58
+ <StyledPanel id="2">Panel 2</StyledPanel>
59
+ </StyledPanelGroup>);
60
+ }
61
+ export function AutosaveCollapsible(props) {
62
+ return (<StyledPanelGroup autosaveId="autosave-example-2" handle={props.handle}>
63
+ <StyledPanel id="1" collapsible collapsedSize="100px" min="140px" onCollapseChange={props.onCollapseChange}>
64
+ Collapsible
65
+ </StyledPanel>
66
+ <StyledResizer id="resizer"/>
67
+ <StyledPanel id="2">Panel 2</StyledPanel>
68
+ </StyledPanelGroup>);
69
+ }
70
+ // TODO: fix this
71
+ export function DynamicConstraints(props) {
72
+ const [customOn, setCustomOn] = createSignal(false);
73
+ return (<>
74
+ <StyledPanelGroup handle={props.handle}>
75
+ <StyledPanel default="100px" min={customOn() ? "200px" : "100px"}>
76
+ <div>Panel 1</div>
77
+ </StyledPanel>
78
+ <StyledResizer />
79
+ <StyledPanel min="100px">
80
+ <div>Panel 2</div>
81
+ </StyledPanel>
82
+ <StyledResizer />
83
+ <StyledPanel min={customOn() ? "100px" : "400px"} max={customOn() ? "300px" : "700px"}>
84
+ <div>Panel 3</div>
85
+ </StyledPanel>
86
+ </StyledPanelGroup>
87
+ <button type="button" onClick={() => setCustomOn(!customOn())}>
88
+ Toggle Custom
89
+ </button>
90
+ </>);
91
+ }
92
+ export function SimpleMin() {
93
+ return (<StyledPanelGroup>
94
+ <StyledPanel min="100px">
95
+ <div>Panel 1</div>
96
+ </StyledPanel>
97
+ <StyledResizer />
98
+ <StyledPanel min="100px">
99
+ <div>Panel 2</div>
100
+ </StyledPanel>
101
+ <StyledResizer />
102
+ <StyledPanel min="100px">
103
+ <div>Panel 3</div>
104
+ </StyledPanel>
105
+ </StyledPanelGroup>);
106
+ }
107
+ export function SimpleMinMax() {
108
+ return (<StyledPanelGroup>
109
+ <StyledPanel min="100px" max="200px">
110
+ <div>Panel 1</div>
111
+ </StyledPanel>
112
+ <StyledResizer />
113
+ <StyledPanel min="100px">
114
+ <div>Panel 2</div>
115
+ </StyledPanel>
116
+ <StyledResizer size="20px"/>
117
+ <StyledPanel min="100px">
118
+ <div>Panel 3</div>
119
+ </StyledPanel>
120
+ </StyledPanelGroup>);
121
+ }
122
+ export function SimpleConstraints() {
123
+ return (<StyledPanelGroup>
124
+ <StyledPanel min="100px" max="50%">
125
+ <div>Panel 1</div>
126
+ </StyledPanel>
127
+ <StyledResizer />
128
+ <StyledPanel>
129
+ <div>Panel 2</div>
130
+ </StyledPanel>
131
+ </StyledPanelGroup>);
132
+ }
133
+ export function HorizontalLayout() {
134
+ return (<StyledPanelGroup orientation="horizontal">
135
+ <StyledPanel default="30%" min="20%">
136
+ left
137
+ </StyledPanel>
138
+ <StyledResizer />
139
+ <StyledPanel min="20%">middle</StyledPanel>
140
+ <StyledResizer />
141
+ <StyledPanel default="30%" min="20%">
142
+ right
143
+ </StyledPanel>
144
+ </StyledPanelGroup>);
145
+ }
146
+ export function VerticalLayout(props) {
147
+ return (<StyledPanelGroup orientation="vertical" style={{ height: "322px" }} handle={props.handle}>
148
+ <StyledPanel default="30%" min="20%">
149
+ top
150
+ </StyledPanel>
151
+ <StyledResizer />
152
+ <StyledPanel min="20%">middle</StyledPanel>
153
+ <StyledResizer />
154
+ <StyledPanel default="30%" min="20%">
155
+ bottom
156
+ </StyledPanel>
157
+ </StyledPanelGroup>);
158
+ }
159
+ export function VerticalLayout2() {
160
+ return (<StyledPanelGroup orientation="vertical" style={{ height: "calc(100vh - 100px)" }}>
161
+ <StyledPanel default="200px" min="200px">
162
+ top
163
+ </StyledPanel>
164
+ <StyledResizer />
165
+ <StyledPanel min="200px" collapsedSize="60px" defaultCollapsed collapsible>
166
+ middle
167
+ </StyledPanel>
168
+ </StyledPanelGroup>);
169
+ }
170
+ export function NestedGroups() {
171
+ return (<PanelGroup orientation="horizontal" style={{
172
+ border: "1px solid rgba(0, 0, 0, 0.3)",
173
+ "border-radius": "12px",
174
+ height: "400px",
175
+ }}>
176
+ <Panel min="10%">1</Panel>
177
+ <StyledResizer />
178
+ <Panel min="10%">
179
+ <PanelGroup orientation="vertical">
180
+ <Panel min="10%">2-1</Panel>
181
+ <StyledResizer />
182
+ <Panel min="10%">
183
+ <PanelGroup orientation="horizontal">
184
+ <Panel min="20%">2-2-1</Panel>
185
+ <StyledResizer />
186
+ <Panel min="20%">2-2-2</Panel>
187
+ </PanelGroup>
188
+ </Panel>
189
+ </PanelGroup>
190
+ </Panel>
191
+ <StyledResizer />
192
+ <Panel min="10%">3</Panel>
193
+ </PanelGroup>);
194
+ }
195
+ export function WithOverflow() {
196
+ return (<StyledPanelGroup style={{ height: "400px" }}>
197
+ <Panel min="200px">
198
+ <div style={{
199
+ overflow: "auto",
200
+ padding: "40px",
201
+ height: "100%",
202
+ "box-sizing": "border-box",
203
+ }}>
204
+ <p>
205
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
206
+ euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi, eu
207
+ tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
208
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
209
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
210
+ eu tincidunt nisl nisl eu nisl.
211
+ </p>
212
+ <p>
213
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
214
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
215
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
216
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
217
+ eu tincidunt nisl nisl eu nisl.
218
+ </p>
219
+ <p>
220
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
221
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
222
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
223
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
224
+ eu tincidunt nisl nisl eu nisl.
225
+ </p>
226
+ <p>
227
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
228
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
229
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
230
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
231
+ eu tincidunt nisl nisl eu nisl.
232
+ </p>
233
+ <p>
234
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
235
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
236
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
237
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
238
+ eu tincidunt nisl nisl eu nisl.
239
+ </p>
240
+ </div>
241
+ </Panel>
242
+ <StyledResizer />
243
+ <Panel min="200px">
244
+ <div style={{
245
+ overflow: "auto",
246
+ padding: "40px",
247
+ height: "100%",
248
+ "box-sizing": "border-box",
249
+ }}>
250
+ <p>
251
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
252
+ euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi, eu
253
+ tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
254
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
255
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
256
+ eu tincidunt nisl nisl eu nisl.
257
+ </p>
258
+ <p>
259
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
260
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
261
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
262
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
263
+ eu tincidunt nisl nisl eu nisl.
264
+ </p>
265
+ <p>
266
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
267
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
268
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
269
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
270
+ eu tincidunt nisl nisl eu nisl.
271
+ </p>
272
+ <p>
273
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
274
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
275
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
276
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
277
+ eu tincidunt nisl nisl eu nisl.
278
+ </p>
279
+ <p>
280
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
281
+ eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies
282
+ ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.
283
+ Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,
284
+ eu tincidunt nisl nisl eu nisl.
285
+ </p>
286
+ </div>
287
+ </Panel>
288
+ </StyledPanelGroup>);
289
+ }
290
+ export function Collapsible(props) {
291
+ const [collapsed, setCollapsed] = createSignal(true);
292
+ return (<StyledPanelGroup handle={props.handle}>
293
+ <StyledPanel handle={props.leftPanelHandle} min="100px" collapsible collapsedSize="60px" style={{ border: "10px solid green", "box-sizing": "border-box" }} onCollapseChange={(isCollapsed) => {
294
+ console.log("COLLAPSE PASSIVE", isCollapsed);
295
+ }}>
296
+ <div>1</div>
297
+ </StyledPanel>
298
+ <StyledResizer />
299
+ <StyledPanel min="100px">
300
+ <div>2</div>
301
+ </StyledPanel>
302
+ <StyledResizer id="resizer-2"/>
303
+ <StyledPanel handle={props.rightPanelHandle} min="100px" collapsible collapsedSize="60px" collapseAnimation={{ easing: "bounce", duration: 1000 }} style={{ border: "10px solid blue", "box-sizing": "border-box" }} collapsed={collapsed} onCollapseChange={setCollapsed}>
304
+ <div>3</div>
305
+ </StyledPanel>
306
+ </StyledPanelGroup>);
307
+ }
308
+ export function CustomCollapseAnimation() {
309
+ const springFn = spring({
310
+ keyframes: [0, 1],
311
+ velocity: 1,
312
+ stiffness: 100,
313
+ damping: 10,
314
+ mass: 1.0,
315
+ });
316
+ return (<StyledPanelGroup>
317
+ <StyledPanel min="100px" collapsible collapsedSize="60px" style={{ border: "10px solid green", "box-sizing": "border-box" }}>
318
+ 1
319
+ </StyledPanel>
320
+ <StyledResizer />
321
+ <StyledPanel min="100px">2</StyledPanel>
322
+ <StyledResizer />
323
+ <StyledPanel style={{ border: "10px solid blue", "box-sizing": "border-box" }} min="100px" collapsible collapsedSize="60px" defaultCollapsed collapseAnimation={{
324
+ easing: (t) => springFn.next(t * 1000).value,
325
+ duration: 1000,
326
+ }}>
327
+ 3
328
+ </StyledPanel>
329
+ </StyledPanelGroup>);
330
+ }
331
+ export function ImperativePanel() {
332
+ let groupRef;
333
+ let panelRef;
334
+ return (<>
335
+ <StyledPanelGroup handle={(v) => (groupRef = v)}>
336
+ <StyledPanel handle={(v) => (panelRef = v)} min="100px" collapsible collapsedSize="60px">
337
+ 1
338
+ </StyledPanel>
339
+ <StyledResizer />
340
+ <StyledPanel min="100px">2</StyledPanel>
341
+ <StyledResizer />
342
+ <StyledPanel min="100px" collapsible collapsedSize="60px" defaultCollapsed>
343
+ 3
344
+ </StyledPanel>
345
+ </StyledPanelGroup>
346
+
347
+ <div>
348
+ <button type="button" onClick={() => alert(`Sizes: ${groupRef?.getPixelSizes()}`)}>
349
+ Get pixel sizes
350
+ </button>
351
+ <button type="button" onClick={() => alert(`Sizes: ${groupRef?.getPercentageSizes()}`)}>
352
+ Get percent sizes
353
+ </button>
354
+ <button type="button" onClick={() => groupRef?.setSizes(["200px", "10px", "50%", "10px", "150px"])}>
355
+ Override sizes
356
+ </button>
357
+ </div>
358
+
359
+ <div>
360
+ <button type="button" onClick={() => panelRef?.collapse()}>
361
+ Collapse
362
+ </button>
363
+ <button type="button" onClick={() => alert(`Collapsed: ${panelRef?.isCollapsed()}`)}>
364
+ Is Collapsed?
365
+ </button>
366
+ <button type="button" onClick={() => panelRef?.expand()}>
367
+ Expand
368
+ </button>
369
+ <button type="button" onClick={() => alert(`Expanded: ${panelRef?.isExpanded()}`)}>
370
+ Is Expanded?
371
+ </button>
372
+ <button type="button" onClick={() => alert(`Id: ${panelRef?.getId()}`)}>
373
+ Get Id
374
+ </button>
375
+ <button type="button" onClick={() => alert(`Size: ${panelRef?.getPixelSize()}`)}>
376
+ Get Pixel Size
377
+ </button>
378
+ <button type="button" onClick={() => alert(`Percentage: ${panelRef?.getPercentageSize()}`)}>
379
+ Get Percentage Size
380
+ </button>
381
+ <button type="button" onClick={() => panelRef?.setSize("30px")}>
382
+ Set size to 100px
383
+ </button>
384
+ <button type="button" onClick={() => panelRef?.setSize("50%")}>
385
+ Set size to 50%
386
+ </button>
387
+ </div>
388
+ </>);
389
+ }
390
+ export function ConditionalPanel(props) {
391
+ const [isExpanded, setIsExpanded] = createSignal(false);
392
+ return (<>
393
+ <StyledPanelGroup handle={props.handle}>
394
+ <StyledPanel id="panel-1" min="100px" collapsible collapsedSize="60px">
395
+ <div>1</div>
396
+ </StyledPanel>
397
+ <StyledResizer id="handle-1"/>
398
+ <StyledPanel id="panel-2" min="100px">
399
+ <div>2</div>
400
+ </StyledPanel>
401
+
402
+ {isExpanded() && (<>
403
+ <StyledResizer id="handle-2"/>
404
+ <StyledPanel id="panel-3" min="100px">
405
+ 3
406
+ <button type="button" onClick={() => setIsExpanded(false)}>
407
+ Close
408
+ </button>
409
+ </StyledPanel>
410
+ </>)}
411
+ </StyledPanelGroup>
412
+
413
+ <button type="button" onClick={() => setIsExpanded(true)}>
414
+ Expand
415
+ </button>
416
+ </>);
417
+ }
418
+ export function ConditionalPanelComplex() {
419
+ const [isExpanded, setIsExpanded] = createSignal(false);
420
+ return (<>
421
+ <StyledPanelGroup>
422
+ <StyledPanel id="panel-1" min="100px" collapsible collapsedSize="60px">
423
+ <div>1</div>
424
+ </StyledPanel>
425
+ <StyledResizer id="handle-1"/>
426
+ <StyledPanel id="panel-2" min="100px">
427
+ <div>2</div>
428
+ </StyledPanel>
429
+ <StyledResizer id="handle-2"/>
430
+ <StyledPanel id="panel-3" min="100px">
431
+ <div>3</div>
432
+ </StyledPanel>
433
+ <Show when={isExpanded()}>
434
+ <StyledResizer id="handle-3"/>
435
+ <StyledPanel id="panel-4" min="100px">
436
+ expanded
437
+ <button type="button" onClick={() => setIsExpanded(false)}>
438
+ Close
439
+ </button>
440
+ </StyledPanel>
441
+ </Show>
442
+ <StyledResizer id="handle-4"/>
443
+ <StyledPanel min="200px" collapsible collapsedSize="60px" defaultCollapsed id="panel-5">
444
+ <div>4</div>
445
+ </StyledPanel>
446
+ </StyledPanelGroup>
447
+ <button type="button" onClick={() => setIsExpanded(true)}>
448
+ Expand
449
+ </button>
450
+ </>);
451
+ }
452
+ export function WithDefaultWidth() {
453
+ return (<PanelGroup style={{ height: "400px" }}>
454
+ <Panel style={{ "background-color": "#333366" }}/>
455
+ <PanelResizer size="3px"/>
456
+ <Panel default="100px" min="100px" max="400px" style={{ "background-color": "#ff3366" }}/>
457
+ </PanelGroup>);
458
+ }
459
+ export function StaticAtRest() {
460
+ return (<StyledPanelGroup style={{ height: "200px" }}>
461
+ <StyledPanel min="100px" max="300px" isStaticAtRest>
462
+ Panel 1
463
+ </StyledPanel>
464
+ <StyledResizer />
465
+ <StyledPanel min="100px">Panel 2</StyledPanel>
466
+ <StyledResizer />
467
+ <StyledPanel min="100px">Panel 3</StyledPanel>
468
+ </StyledPanelGroup>);
469
+ }
470
+ //# sourceMappingURL=SolidWindowSplitter.stories.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidWindowSplitter.stories.jsx","sourceRoot":"","sources":["../../src/SolidWindowSplitter.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Meta } from \"storybook-solidjs\";\nimport { spring } from \"framer-motion\";\n\nimport {\n PanelGroup,\n PanelResizer,\n Panel,\n PanelGroupProps,\n PanelProps,\n PanelResizerProps,\n} from \"./SolidWIndowSplitter.jsx\";\nimport { createSignal, Ref, Show, splitProps } from \"solid-js\";\nimport { PanelHandle } from \"@window-splitter/interface\";\nimport { PanelGroupHandle } from \"@window-splitter/interface\";\nimport { GroupMachineContextValue } from \"@window-splitter/state\";\n\nconst meta = {\n title: \"Components/Solid\",\n component: PanelGroup,\n} satisfies Meta<typeof PanelGroup>;\n\nexport default meta;\n\nfunction StyledPanelGroup(props: PanelGroupProps) {\n return (\n <PanelGroup\n {...props}\n style={{\n border: \"1px solid rgba(0, 0, 0, 0.3)\",\n background: \"rgba(0, 0, 0, 0.1)\",\n \"border-radius\": \"12px\",\n \"box-sizing\": \"border-box\",\n ...props.style,\n }}\n />\n );\n}\n\nfunction StyledPanel(props: PanelProps) {\n const [, attrs] = splitProps(props, [\"children\"]);\n return (\n <Panel\n style={{\n overflow: \"hidden\",\n }}\n {...attrs}\n >\n <div\n style={{\n height: \"100%\",\n width: \"100%\",\n padding: \"20px\",\n display: \"flex\",\n \"align-items\": \"center\",\n \"justify-content\": \"center\",\n overflow: \"hidden\",\n \"box-sizing\": \"border-box\",\n }}\n >\n {props.children}\n </div>\n </Panel>\n );\n}\n\nfunction StyledResizer(props: PanelResizerProps) {\n return <PanelResizer size=\"10px\" style={{ background: \"red\" }} {...props} />;\n}\n\nexport function Simple(props: { handle?: Ref<PanelGroupHandle> }) {\n return (\n <StyledPanelGroup handle={props.handle} style={{ height: \"200px\" }}>\n <StyledPanel>Panel 1</StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">Panel 2</StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function Autosave(props: {\n handle?: Ref<PanelGroupHandle>;\n snapshot?: GroupMachineContextValue;\n}) {\n return (\n <StyledPanelGroup\n autosaveId=\"autosave-example-solid\"\n handle={props.handle}\n snapshot={props.snapshot}\n >\n <StyledPanel id=\"1\">Panel 1</StyledPanel>\n <StyledResizer id=\"resizer\" />\n <StyledPanel id=\"2\">Panel 2</StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function AutosaveCookie(props: {\n handle?: Ref<PanelGroupHandle>;\n snapshot?: GroupMachineContextValue;\n}) {\n return (\n <StyledPanelGroup\n autosaveId=\"autosave-cookie-solid\"\n autosaveStrategy=\"cookie\"\n style={{ height: \"200px\" }}\n handle={props.handle}\n snapshot={props.snapshot}\n >\n <StyledPanel id=\"1\">Panel 1</StyledPanel>\n <StyledResizer id=\"resizer1\" size=\"10px\" style={{ background: \"red\" }} />\n <StyledPanel id=\"2\">Panel 2</StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function AutosaveCollapsible(props: {\n handle?: Ref<PanelGroupHandle>;\n onCollapseChange?: (isCollapsed: boolean) => void;\n}) {\n return (\n <StyledPanelGroup autosaveId=\"autosave-example-2\" handle={props.handle}>\n <StyledPanel\n id=\"1\"\n collapsible\n collapsedSize=\"100px\"\n min=\"140px\"\n onCollapseChange={props.onCollapseChange}\n >\n Collapsible\n </StyledPanel>\n <StyledResizer id=\"resizer\" />\n <StyledPanel id=\"2\">Panel 2</StyledPanel>\n </StyledPanelGroup>\n );\n}\n\n// TODO: fix this\nexport function DynamicConstraints(props: { handle?: Ref<PanelGroupHandle> }) {\n const [customOn, setCustomOn] = createSignal(false);\n\n return (\n <>\n <StyledPanelGroup handle={props.handle}>\n <StyledPanel default=\"100px\" min={customOn() ? \"200px\" : \"100px\"}>\n <div>Panel 1</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">\n <div>Panel 2</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel\n min={customOn() ? \"100px\" : \"400px\"}\n max={customOn() ? \"300px\" : \"700px\"}\n >\n <div>Panel 3</div>\n </StyledPanel>\n </StyledPanelGroup>\n <button type=\"button\" onClick={() => setCustomOn(!customOn())}>\n Toggle Custom\n </button>\n </>\n );\n}\n\nexport function SimpleMin() {\n return (\n <StyledPanelGroup>\n <StyledPanel min=\"100px\">\n <div>Panel 1</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">\n <div>Panel 2</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">\n <div>Panel 3</div>\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function SimpleMinMax() {\n return (\n <StyledPanelGroup>\n <StyledPanel min=\"100px\" max=\"200px\">\n <div>Panel 1</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">\n <div>Panel 2</div>\n </StyledPanel>\n <StyledResizer size=\"20px\" />\n <StyledPanel min=\"100px\">\n <div>Panel 3</div>\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function SimpleConstraints() {\n return (\n <StyledPanelGroup>\n <StyledPanel min=\"100px\" max=\"50%\">\n <div>Panel 1</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel>\n <div>Panel 2</div>\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function HorizontalLayout() {\n return (\n <StyledPanelGroup orientation=\"horizontal\">\n <StyledPanel default=\"30%\" min=\"20%\">\n left\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"20%\">middle</StyledPanel>\n <StyledResizer />\n <StyledPanel default=\"30%\" min=\"20%\">\n right\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function VerticalLayout(props: { handle?: Ref<PanelGroupHandle> }) {\n return (\n <StyledPanelGroup\n orientation=\"vertical\"\n style={{ height: \"322px\" }}\n handle={props.handle}\n >\n <StyledPanel default=\"30%\" min=\"20%\">\n top\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"20%\">middle</StyledPanel>\n <StyledResizer />\n <StyledPanel default=\"30%\" min=\"20%\">\n bottom\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function VerticalLayout2() {\n return (\n <StyledPanelGroup\n orientation=\"vertical\"\n style={{ height: \"calc(100vh - 100px)\" }}\n >\n <StyledPanel default=\"200px\" min=\"200px\">\n top\n </StyledPanel>\n <StyledResizer />\n <StyledPanel\n min=\"200px\"\n collapsedSize=\"60px\"\n defaultCollapsed\n collapsible\n >\n middle\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function NestedGroups() {\n return (\n <PanelGroup\n orientation=\"horizontal\"\n style={{\n border: \"1px solid rgba(0, 0, 0, 0.3)\",\n \"border-radius\": \"12px\",\n height: \"400px\",\n }}\n >\n <Panel min=\"10%\">1</Panel>\n <StyledResizer />\n <Panel min=\"10%\">\n <PanelGroup orientation=\"vertical\">\n <Panel min=\"10%\">2-1</Panel>\n <StyledResizer />\n <Panel min=\"10%\">\n <PanelGroup orientation=\"horizontal\">\n <Panel min=\"20%\">2-2-1</Panel>\n <StyledResizer />\n <Panel min=\"20%\">2-2-2</Panel>\n </PanelGroup>\n </Panel>\n </PanelGroup>\n </Panel>\n <StyledResizer />\n <Panel min=\"10%\">3</Panel>\n </PanelGroup>\n );\n}\n\nexport function WithOverflow() {\n return (\n <StyledPanelGroup style={{ height: \"400px\" }}>\n <Panel min=\"200px\">\n <div\n style={{\n overflow: \"auto\",\n padding: \"40px\",\n height: \"100%\",\n \"box-sizing\": \"border-box\",\n }}\n >\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec\n euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi, eu\n tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n </div>\n </Panel>\n <StyledResizer />\n <Panel min=\"200px\">\n <div\n style={{\n overflow: \"auto\",\n padding: \"40px\",\n height: \"100%\",\n \"box-sizing\": \"border-box\",\n }}\n >\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec\n euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi, eu\n tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n <p>\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl. Sed euismod, nisl eget ultricies\n ultrices, nunc nisi aliquam nisi, eu tincidunt nisl nisl eu nisl.\n Sed euismod, nisl eget ultricies ultrices, nunc nisi aliquam nisi,\n eu tincidunt nisl nisl eu nisl.\n </p>\n </div>\n </Panel>\n </StyledPanelGroup>\n );\n}\n\nexport function Collapsible(props: {\n handle?: Ref<PanelGroupHandle>;\n rightPanelHandle?: Ref<PanelHandle>;\n leftPanelHandle?: Ref<PanelHandle>;\n}) {\n const [collapsed, setCollapsed] = createSignal(true);\n\n return (\n <StyledPanelGroup handle={props.handle}>\n <StyledPanel\n handle={props.leftPanelHandle}\n min=\"100px\"\n collapsible\n collapsedSize=\"60px\"\n style={{ border: \"10px solid green\", \"box-sizing\": \"border-box\" }}\n onCollapseChange={(isCollapsed) => {\n console.log(\"COLLAPSE PASSIVE\", isCollapsed);\n }}\n >\n <div>1</div>\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">\n <div>2</div>\n </StyledPanel>\n <StyledResizer id=\"resizer-2\" />\n <StyledPanel\n handle={props.rightPanelHandle}\n min=\"100px\"\n collapsible\n collapsedSize=\"60px\"\n collapseAnimation={{ easing: \"bounce\", duration: 1000 }}\n style={{ border: \"10px solid blue\", \"box-sizing\": \"border-box\" }}\n collapsed={collapsed}\n onCollapseChange={setCollapsed}\n >\n <div>3</div>\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function CustomCollapseAnimation() {\n const springFn = spring({\n keyframes: [0, 1],\n velocity: 1,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n });\n\n return (\n <StyledPanelGroup>\n <StyledPanel\n min=\"100px\"\n collapsible\n collapsedSize=\"60px\"\n style={{ border: \"10px solid green\", \"box-sizing\": \"border-box\" }}\n >\n 1\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">2</StyledPanel>\n <StyledResizer />\n <StyledPanel\n style={{ border: \"10px solid blue\", \"box-sizing\": \"border-box\" }}\n min=\"100px\"\n collapsible\n collapsedSize=\"60px\"\n defaultCollapsed\n collapseAnimation={{\n easing: (t) => springFn.next(t * 1000).value,\n duration: 1000,\n }}\n >\n 3\n </StyledPanel>\n </StyledPanelGroup>\n );\n}\n\nexport function ImperativePanel() {\n let groupRef: PanelGroupHandle | undefined;\n let panelRef: PanelHandle | undefined;\n\n return (\n <>\n <StyledPanelGroup handle={(v) => (groupRef = v)}>\n <StyledPanel\n handle={(v) => (panelRef = v)}\n min=\"100px\"\n collapsible\n collapsedSize=\"60px\"\n >\n 1\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">2</StyledPanel>\n <StyledResizer />\n <StyledPanel\n min=\"100px\"\n collapsible\n collapsedSize=\"60px\"\n defaultCollapsed\n >\n 3\n </StyledPanel>\n </StyledPanelGroup>\n\n <div>\n <button\n type=\"button\"\n onClick={() => alert(`Sizes: ${groupRef?.getPixelSizes()}`)}\n >\n Get pixel sizes\n </button>\n <button\n type=\"button\"\n onClick={() => alert(`Sizes: ${groupRef?.getPercentageSizes()}`)}\n >\n Get percent sizes\n </button>\n <button\n type=\"button\"\n onClick={() =>\n groupRef?.setSizes([\"200px\", \"10px\", \"50%\", \"10px\", \"150px\"])\n }\n >\n Override sizes\n </button>\n </div>\n\n <div>\n <button type=\"button\" onClick={() => panelRef?.collapse()}>\n Collapse\n </button>\n <button\n type=\"button\"\n onClick={() => alert(`Collapsed: ${panelRef?.isCollapsed()}`)}\n >\n Is Collapsed?\n </button>\n <button type=\"button\" onClick={() => panelRef?.expand()}>\n Expand\n </button>\n <button\n type=\"button\"\n onClick={() => alert(`Expanded: ${panelRef?.isExpanded()}`)}\n >\n Is Expanded?\n </button>\n <button type=\"button\" onClick={() => alert(`Id: ${panelRef?.getId()}`)}>\n Get Id\n </button>\n <button\n type=\"button\"\n onClick={() => alert(`Size: ${panelRef?.getPixelSize()}`)}\n >\n Get Pixel Size\n </button>\n <button\n type=\"button\"\n onClick={() => alert(`Percentage: ${panelRef?.getPercentageSize()}`)}\n >\n Get Percentage Size\n </button>\n <button type=\"button\" onClick={() => panelRef?.setSize(\"30px\")}>\n Set size to 100px\n </button>\n <button type=\"button\" onClick={() => panelRef?.setSize(\"50%\")}>\n Set size to 50%\n </button>\n </div>\n </>\n );\n}\n\nexport function ConditionalPanel(props: { handle?: Ref<PanelGroupHandle> }) {\n const [isExpanded, setIsExpanded] = createSignal(false);\n\n return (\n <>\n <StyledPanelGroup handle={props.handle}>\n <StyledPanel id=\"panel-1\" min=\"100px\" collapsible collapsedSize=\"60px\">\n <div>1</div>\n </StyledPanel>\n <StyledResizer id=\"handle-1\" />\n <StyledPanel id=\"panel-2\" min=\"100px\">\n <div>2</div>\n </StyledPanel>\n\n {isExpanded() && (\n <>\n <StyledResizer id=\"handle-2\" />\n <StyledPanel id=\"panel-3\" min=\"100px\">\n 3\n <button type=\"button\" onClick={() => setIsExpanded(false)}>\n Close\n </button>\n </StyledPanel>\n </>\n )}\n </StyledPanelGroup>\n\n <button type=\"button\" onClick={() => setIsExpanded(true)}>\n Expand\n </button>\n </>\n );\n}\n\nexport function ConditionalPanelComplex() {\n const [isExpanded, setIsExpanded] = createSignal(false);\n\n return (\n <>\n <StyledPanelGroup>\n <StyledPanel id=\"panel-1\" min=\"100px\" collapsible collapsedSize=\"60px\">\n <div>1</div>\n </StyledPanel>\n <StyledResizer id=\"handle-1\" />\n <StyledPanel id=\"panel-2\" min=\"100px\">\n <div>2</div>\n </StyledPanel>\n <StyledResizer id=\"handle-2\" />\n <StyledPanel id=\"panel-3\" min=\"100px\">\n <div>3</div>\n </StyledPanel>\n <Show when={isExpanded()}>\n <StyledResizer id=\"handle-3\" />\n <StyledPanel id=\"panel-4\" min=\"100px\">\n expanded\n <button type=\"button\" onClick={() => setIsExpanded(false)}>\n Close\n </button>\n </StyledPanel>\n </Show>\n <StyledResizer id=\"handle-4\" />\n <StyledPanel\n min=\"200px\"\n collapsible\n collapsedSize=\"60px\"\n defaultCollapsed\n id=\"panel-5\"\n >\n <div>4</div>\n </StyledPanel>\n </StyledPanelGroup>\n <button type=\"button\" onClick={() => setIsExpanded(true)}>\n Expand\n </button>\n </>\n );\n}\n\nexport function WithDefaultWidth() {\n return (\n <PanelGroup style={{ height: \"400px\" }}>\n <Panel style={{ \"background-color\": \"#333366\" }} />\n <PanelResizer size=\"3px\" />\n <Panel\n default=\"100px\"\n min=\"100px\"\n max=\"400px\"\n style={{ \"background-color\": \"#ff3366\" }}\n />\n </PanelGroup>\n );\n}\n\nexport function StaticAtRest() {\n return (\n <StyledPanelGroup style={{ height: \"200px\" }}>\n <StyledPanel min=\"100px\" max=\"300px\" isStaticAtRest>\n Panel 1\n </StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">Panel 2</StyledPanel>\n <StyledResizer />\n <StyledPanel min=\"100px\">Panel 3</StyledPanel>\n </StyledPanelGroup>\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SolidWindowSplitter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidWindowSplitter.test.d.ts","sourceRoot":"","sources":["../../src/SolidWindowSplitter.test.tsx"],"names":[],"mappings":""}