@window-splitter/solid 1.1.3 โ†’ 1.2.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.1.2 build /Users/alisowski/Documents/react-window-splitter/packages/solid
3
+ > @window-splitter/solid@1.1.4 build /Users/andrew/Documents/window-splitter/packages/solid
4
4
  > tshy
5
5
 
@@ -0,0 +1,29 @@
1
+
2
+ > @window-splitter/solid@1.1.3 test /Users/andrew/Documents/window-splitter/packages/solid
3
+ > CI=true vitest
4
+
5
+
6
+  RUN  v3.1.2 /Users/andrew/Documents/window-splitter/packages/solid
7
+
8
+ stderr | src/SolidWindowSplitter.test.tsx > Autosave > localStorage
9
+ null
10
+ stderr | src/SolidWindowSplitter.test.tsx > Keyboard interactions with collapsed panels
11
+ null
12
+ stdout | src/SolidWindowSplitter.test.tsx > imperative panel API > panel
13
+ COLLAPSE PASSIVE true
14
+ stdout | src/SolidWindowSplitter.test.tsx > imperative panel API > panel
15
+ COLLAPSE PASSIVE false
16
+ โœ“  chromium  src/SolidWindowSplitter.test.tsx (10 tests) 27042ms
17
+ โœ“ horizontal layout  3706ms
18
+ โœ“ vertical layout  1300ms
19
+ โœ“ Autosave > localStorage  1310ms
20
+ โœ“ Autosave > callback  4832ms
21
+ โœ“ Autosave > cookie  1325ms
22
+ โœ“ Keyboard interactions with collapsed panels  3084ms
23
+ โœ“ imperative panel API > panel  11128ms
24
+
25
+  Test Files  1 passed (1)
26
+  Tests  10 passed (10)
27
+  Start at  12:24:47
28
+  Duration  27.62s (transform 0ms, setup 0ms, collect 182ms, tests 27.04s, environment 0ms, prepare 9ms)
29
+
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # v1.2.0 (Wed Jul 08 2026)
2
+
3
+ #### ๐Ÿš€ Enhancement
4
+
5
+ - apply animations directly to dom [#85](https://github.com/hipstersmoothie/window-splitter/pull/85) ([@hipstersmoothie](https://github.com/hipstersmoothie) [@vikr01](https://github.com/vikr01))
6
+
7
+ #### ๐Ÿ› Bug Fix
8
+
9
+ - apply animations directly to dom ([@hipstersmoothie](https://github.com/hipstersmoothie))
10
+
11
+ #### Authors: 2
12
+
13
+ - Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
14
+ - Vik R ([@vikr01](https://github.com/vikr01))
15
+
16
+ ---
17
+
1
18
  # v1.1.1 (Mon Jul 14 2025)
2
19
 
3
20
  #### ๐Ÿ› Bug Fix
@@ -11,6 +11,7 @@ export function PanelGroup(props) {
11
11
  "snapshot",
12
12
  "shiftAmount",
13
13
  ]);
14
+ let elementRef;
14
15
  const [intiialValue, send, machineState, groupId] = createRoot(() => {
15
16
  const defaultGroupId = `panel-group-${createUniqueId()}`;
16
17
  const groupIdInit = props.autosaveId || props.id || defaultGroupId;
@@ -37,7 +38,7 @@ export function PanelGroup(props) {
37
38
  ...(snapshot ? prepareSnapshot(snapshot) : undefined),
38
39
  }, (value) => {
39
40
  setCurrentValue({ ...value });
40
- }),
41
+ }, () => elementRef ?? null),
41
42
  groupIdInit,
42
43
  ];
43
44
  });
@@ -54,7 +55,6 @@ export function PanelGroup(props) {
54
55
  {props.children}
55
56
  </GroupMachineProvider>));
56
57
  setIsInitialPrerender(false);
57
- let elementRef;
58
58
  // Measure group size
59
59
  onMount(() => {
60
60
  const observer = new ResizeObserver(([entry]) => {
@@ -1 +1 @@
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"]}
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 let elementRef: HTMLDivElement | undefined;\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 () => elementRef ?? null\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 // 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"]}
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.3",
5
+ "version": "1.2.0",
6
6
  "description": "A WAI-ARIA compliant window splitter for Solid.",
7
7
  "repository": {
8
8
  "url": "https://github.com/hipstersmoothie/window-splitter",
@@ -18,40 +18,50 @@
18
18
  "publishConfig": {
19
19
  "access": "public"
20
20
  },
21
+ "scripts": {
22
+ "build": "tshy",
23
+ "test": "CI=true vitest",
24
+ "dev": "tshy -w",
25
+ "lint": "eslint .",
26
+ "stats": "rsbuild --mode production build",
27
+ "storybook": "storybook dev -p 6006",
28
+ "build-storybook": "storybook build",
29
+ "clean": "rm -rf dist .turbo .tshy .tshy-build"
30
+ },
21
31
  "license": "MIT",
22
32
  "devDependencies": {
23
33
  "@chromatic-com/storybook": "^1.6.1",
24
- "@internal/eslint-config": "1.1.3",
34
+ "@internal/eslint-config": "1.2.0",
25
35
  "@rsbuild/core": "^1.3.12",
26
36
  "@rsdoctor/rspack-plugin": "^1.0.2",
27
37
  "@solidjs/testing-library": "^0.8.10",
28
38
  "@storybook/builder-vite": "9.0.0-beta.4",
29
- "@testing-library/jest-dom": "^6.4.8",
39
+ "@testing-library/jest-dom": "catalog:",
30
40
  "@types/node": "^20.14.10",
31
- "@vitest/browser": "^3.1.2",
32
- "@vitest/coverage-istanbul": "^3.1.2",
33
- "eslint": "^9.9.0",
41
+ "@vitest/browser": "catalog:",
42
+ "@vitest/coverage-istanbul": "catalog:",
43
+ "eslint": "catalog:",
34
44
  "eslint-plugin-solid": "^0.14.5",
35
45
  "framer-motion": "^11.3.28",
36
46
  "jsdom": "^24.1.1",
37
- "playwright": "^1.46.0",
47
+ "playwright": "catalog:",
38
48
  "solid-js": "^1.9.5",
39
49
  "storybook": "9.0.0-beta.4",
40
50
  "storybook-solidjs": "1.0.0-beta.6",
41
51
  "storybook-solidjs-vite": "1.0.0-beta.6",
42
52
  "tiny-cookie": "^2.5.1",
43
- "tshy": "^3.0.2",
44
- "typescript": "^5.5.4",
53
+ "tshy": "catalog:",
54
+ "typescript": "catalog:",
45
55
  "vite": "^6.3.3",
46
56
  "vite-plugin-solid": "^2.11.6",
47
- "vitest": "^3.1.2"
57
+ "vitest": "catalog:"
48
58
  },
49
59
  "peerDependencies": {
50
60
  "solid-js": ">=1.x"
51
61
  },
52
62
  "dependencies": {
53
- "@window-splitter/interface": "1.1.3",
54
- "@window-splitter/state": "1.1.3"
63
+ "@window-splitter/interface": "1.2.0",
64
+ "@window-splitter/state": "1.2.0"
55
65
  },
56
66
  "tshy": {
57
67
  "exclude": [
@@ -88,15 +98,5 @@
88
98
  "plugin:storybook/recommended"
89
99
  ]
90
100
  },
91
- "gitHead": "0fae9dff0a45d9423c1327667de042b70774b8bc",
92
- "scripts": {
93
- "build": "tshy",
94
- "test": "CI=true vitest",
95
- "dev": "tshy -w",
96
- "lint": "eslint .",
97
- "stats": "rsbuild --mode production build",
98
- "storybook": "storybook dev -p 6006",
99
- "build-storybook": "storybook build",
100
- "clean": "rm -rf dist .turbo .tshy .tshy-build"
101
- }
102
- }
101
+ "gitHead": "0349b0b301c05e2a1a9b281abe7b93cccc9d9b9b"
102
+ }
@@ -72,6 +72,7 @@ export function PanelGroup(props: PanelGroupProps) {
72
72
  "snapshot",
73
73
  "shiftAmount",
74
74
  ]);
75
+ let elementRef: HTMLDivElement | undefined;
75
76
  const [intiialValue, send, machineState, groupId] = createRoot(() => {
76
77
  const defaultGroupId = `panel-group-${createUniqueId()}`;
77
78
  const groupIdInit = props.autosaveId || props.id || defaultGroupId;
@@ -105,7 +106,8 @@ export function PanelGroup(props: PanelGroupProps) {
105
106
  },
106
107
  (value) => {
107
108
  setCurrentValue({ ...value });
108
- }
109
+ },
110
+ () => elementRef ?? null
109
111
  ),
110
112
  groupIdInit,
111
113
  ];
@@ -132,8 +134,6 @@ export function PanelGroup(props: PanelGroupProps) {
132
134
  ));
133
135
  setIsInitialPrerender(false);
134
136
 
135
- let elementRef: HTMLDivElement | undefined;
136
-
137
137
  // Measure group size
138
138
  onMount(() => {
139
139
  const observer = new ResizeObserver(([entry]) => {
@@ -1,18 +0,0 @@
1
-
2
- 
3
- > @window-splitter/solid@1.1.0 lint /Users/alisowski/Documents/react-window-splitter/packages/solid
4
- > eslint .
5
-
6
- =============
7
-
8
- WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
9
-
10
- You may find that it works just fine, or you may not.
11
-
12
- SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.6.0
13
-
14
- YOUR TYPESCRIPT VERSION: 5.8.3
15
-
16
- Please only submit bug reports when using the officially supported version.
17
-
18
- =============
package/LICENSE DELETED
@@ -1,7 +0,0 @@
1
- Copyright 2025 Andrew Lisowski
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the โ€œSoftwareโ€), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
-
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
-
7
- THE SOFTWARE IS PROVIDED โ€œAS ISโ€, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.