// @ts-nocheck import { createSignal } from "solid-js" import { createStore } from "solid-js/store" import * as mod from "./resize-handle" const docs = `### Overview Drag handle for resizing panels or split views. Use alongside resizable panels and split layouts. ### API - Required: \`direction\`, \`size\`, \`min\`, \`max\`, \`onResize\`. - Optional: \`edge\`, \`onCollapse\`, \`collapseThreshold\`. ### Variants and states - Horizontal and vertical directions. ### Behavior - Drag updates size and calls \`onResize\` with clamped values. ### Accessibility - TODO: provide keyboard resizing guidance if needed. ### Theming/tokens - Uses \`data-component="resize-handle"\` with direction/edge data attributes. ` export default { title: "UI/ResizeHandle", id: "components-resize-handle", component: mod.ResizeHandle, tags: ["autodocs"], parameters: { docs: { description: { component: docs, }, }, }, } export const Basic = { render: () => { const [size, setSize] = createSignal(240) return (
Size: {size()}px
) }, } export const Vertical = { render: () => { const [size, setSize] = createSignal(180) return (
Size: {size()}px
) }, } export const Collapse = { render: () => { const [state, setState] = createStore({ size: 200, collapsed: false, }) const size = () => state.size const collapsed = () => state.collapsed return (
{collapsed() ? "Collapsed" : `Size: ${size()}px`}
{ setState("collapsed", false) setState("size", next) }} onCollapse={() => setState("collapsed", true)} style="height:24px;border:1px dashed color-mix(in oklab, var(--text-base) 20%, transparent)" />
) }, } export const EdgeStart = { render: () => { const [size, setSize] = createSignal(240) return (
Size: {size()}px
) }, }