import type { Meta, StoryObj } from '@storybook/html'; import { DatePicker, type DatePickerOptions } from '@42/core/date-picker'; import '@42/styles/date-picker.css'; const meta: Meta = { title: 'Core/Inputs & Forms/DatePicker', tags: ['autodocs'], argTypes: { weekStartsOn: { control: { type: 'number', min: 0, max: 6 } }, locale: { control: 'text' }, placeholder: { control: 'text' }, closeOnSelect: { control: 'boolean' }, placement: { control: 'select', options: ['bottom-start', 'bottom-end', 'top-start', 'top-end'], }, }, args: { weekStartsOn: 1, locale: 'en-US', placeholder: 'Select a date', closeOnSelect: true, placement: 'bottom-start', }, render: (args) => { const root = document.createElement('div'); root.dataset.c42Datepicker = ''; root.innerHTML = `
`; new DatePicker(root, args); return root; }, }; export default meta; type Story = StoryObj; export const Default: Story = {}; export const WithDefaultValue: Story = { args: { defaultValue: new Date().toISOString().slice(0, 10) }, }; export const Ranged: Story = { args: { min: new Date(Date.now() - 5 * 86400000).toISOString().slice(0, 10), max: new Date(Date.now() + 10 * 86400000).toISOString().slice(0, 10), }, }; export const RangeSelection: Story = { args: { mode: 'range', placeholder: 'Select date range', closeOnSelect: true, } as DatePickerOptions, };