// // Copyright 2025 DXOS.org // import { type Meta, type StoryObj } from '@storybook/react-vite'; import React from 'react'; import { Input, ScrollArea } from '../../components'; import { withLayout, withTheme } from '../../testing'; import { Column } from './Column'; const List = () => { return ( {Array.from({ length: 100 }).map((_, i) => ( ))} ); }; const DefaultStory = () => { return (

Header

A
B
C
{Array.from({ length: 100 }).map((_, i) => ( ))}

Section with overflow

{new Error().stack}
Footer
); }; const meta: Meta = { title: 'ui/react-ui-core/components/Column', render: DefaultStory, decorators: [withTheme(), withLayout({ layout: 'column', classNames: 'w-[25rem]' })], parameters: { layout: 'fullscreen', }, }; export default meta; type Story = StoryObj; export const Default: Story = {}; const InputList = ({ items = 50 }: { items?: number }) => (
{Array.from({ length: items }).map((_, index) => ( ))}
); export const WithScrollArea = { decorators: [withLayout({ layout: 'column' })], render: () => (

Header

Footer

), }; /** * Column.Center places a single element in the center column of the parent grid. * Preferred for centered content — safe to nest * compound components (Form.Root, Editor.Root, etc.) that render `display: contents`. */ export const WithCenter: Story = { decorators: [withLayout({ classNames: 'w-[25rem]' })], render: () => (

Header (Column.Center)

This text is inside Column.Center. It sits in the central column between the gutters.

Name

Footer (Column.Center)

), }; /** * ScrollArea auto-bleeds inside Column.Root (via [.dx-column_&]:col-span-full). * No Column.Bleed wrapper needed. */ export const WithScrollAreaAutoBleed: Story = { decorators: [withLayout({ layout: 'column', classNames: 'w-[25rem]' })], render: () => (

Header (Column.Center)

Footer (Column.Center)

), }; export const Experimental = { render: () => { return (
A
B
C
B
); }, };