@manafishrov/ui 1.2.13 → 1.3.1

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.
@@ -22,4 +22,4 @@ export declare const DatePickerDayView: Component;
22
22
  export declare const DatePickerMonthView: Component;
23
23
  export declare const DatePickerYearView: Component;
24
24
  export declare const DatePickerViews: Component;
25
- export declare const Calendar: Component<DatePickerPrimitive.RootProps>;
25
+ export declare const DatePickerCalendar: Component<DatePickerPrimitive.RootProps>;
@@ -2,8 +2,8 @@ import { createComponent as e, mergeProps as s, spread as v, insert as P, templa
2
2
  import { date_picker_exports as n } from "../node_modules/.bun/@ark-ui_solid@5.34.1_2e1854f049906f04/node_modules/@ark-ui/solid/dist/chunk/4V5X4XYS.js";
3
3
  import { splitProps as o, For as c } from "solid-js";
4
4
  import { cn as l } from "../node_modules/.bun/tailwind-variants@3.2.2_7ac958b541464b98/node_modules/tailwind-variants/dist/index.js";
5
- import y from "../_virtual/calendar-month.js";
6
- import D from "../_virtual/chevron-left.js";
5
+ import D from "../_virtual/calendar-month.js";
6
+ import y from "../_virtual/chevron-left.js";
7
7
  import T from "../_virtual/chevron-right.js";
8
8
  import { buttonVariants as i } from "./Button.js";
9
9
  var C = /* @__PURE__ */ k("<button>");
@@ -88,7 +88,7 @@ const z = (r) => {
88
88
  }
89
89
  }, a, {
90
90
  get children() {
91
- return t.children ?? e(y, {
91
+ return t.children ?? e(D, {
92
92
  class: "size-4"
93
93
  });
94
94
  }
@@ -117,7 +117,7 @@ const z = (r) => {
117
117
  }
118
118
  }, a, {
119
119
  get children() {
120
- return t.children ?? e(D, {
120
+ return t.children ?? e(y, {
121
121
  class: "size-4"
122
122
  });
123
123
  }
@@ -326,8 +326,8 @@ const z = (r) => {
326
326
  }
327
327
  }));
328
328
  export {
329
- X as Calendar,
330
329
  z as DatePicker,
330
+ X as DatePickerCalendar,
331
331
  _ as DatePickerContent,
332
332
  d as DatePickerContext,
333
333
  Q as DatePickerControl,
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../../src/components/DatePicker.tsx"],"sourcesContent":["import { DatePicker as DatePickerPrimitive } from '@ark-ui/solid/date-picker';\nimport { type Component, For, splitProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\nimport CalendarMonthIcon from '~icons/material-symbols/calendar-month';\nimport ChevronLeftIcon from '~icons/material-symbols/chevron-left';\nimport ChevronRightIcon from '~icons/material-symbols/chevron-right';\n\nimport { buttonVariants } from '@/components/Button';\nexport const DatePicker: Component<DatePickerPrimitive.RootProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.Root class={cn('flex w-full flex-col', local.class)} {...others} />;\n};\nexport const DatePickerContext = DatePickerPrimitive.Context,\n DatePickerRangeText = DatePickerPrimitive.RangeText,\n DatePickerView = DatePickerPrimitive.View,\n DatePickerViewTrigger = DatePickerPrimitive.ViewTrigger;\nexport const DatePickerTable: Component<DatePickerPrimitive.TableProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Table\n class={cn('space-y-1 w-full border-collapse', local.class)}\n {...others}\n />\n );\n};\nexport const DatePickerTableBody: Component<DatePickerPrimitive.TableBodyProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.TableBody class={cn('', local.class)} {...others} />;\n};\nexport const DatePickerTableCell: Component<DatePickerPrimitive.TableCellProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.TableCell\n class={cn(\n 'text-sm p-0 relative text-center focus-within:relative focus-within:z-20 [&:has([data-selected])]:bg-accent first:[&:has([data-selected])]:rounded-l-md last:[&:has([data-selected])]:rounded-r-md',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerTableHead: Component<DatePickerPrimitive.TableHeadProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.TableHead class={cn('', local.class)} {...others} />;\n};\nexport const DatePickerTableHeader: Component<DatePickerPrimitive.TableHeaderProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.TableHeader\n class={cn('w-9 font-normal rounded-md text-[0.8rem] text-muted-foreground', local.class)}\n {...others}\n />\n );\n};\nexport const DatePickerTableRow: Component<DatePickerPrimitive.TableRowProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.TableRow class={cn('mt-2 flex w-full', local.class)} {...others} />;\n};\nexport const DatePickerLabel: Component<DatePickerPrimitive.LabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Label\n class={cn(\n 'mb-1.5 gap-2 text-sm font-medium flex items-center leading-none select-none group-data-disabled:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerControl: Component<DatePickerPrimitive.ControlProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.Control class={cn('gap-2 flex flex-row', local.class)} {...others} />;\n};\nexport const DatePickerInput: Component<DatePickerPrimitive.InputProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Input\n class={cn(\n 'h-9 px-3 py-2 text-sm file:text-sm file:font-medium shadow-sm flex w-full rounded-lg border border-input bg-background transition-colors file:border-0 file:bg-transparent placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30 dark:hover:bg-input/50',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerTrigger: Component<DatePickerPrimitive.TriggerProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.Trigger\n class={cn(\n buttonVariants({ variant: 'outline', size: 'icon' }),\n 'size-9 p-0 font-normal',\n local.class,\n )}\n {...others}\n >\n {local.children ?? <CalendarMonthIcon class='size-4' />}\n </DatePickerPrimitive.Trigger>\n );\n};\nexport const DatePickerPositioner: Component<DatePickerPrimitive.PositionerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.Positioner class={cn('isolate z-50', local.class)} {...others} />;\n};\nexport const DatePickerContent: Component<DatePickerPrimitive.ContentProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Content\n class={cn(\n 'w-72 p-3 shadow-md rounded-lg bg-popover text-popover-foreground ring-1 ring-foreground/10 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerPrevTrigger: Component<DatePickerPrimitive.PrevTriggerProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.PrevTrigger\n class={cn(\n buttonVariants({ variant: 'outline' }),\n 'size-7 p-0 left-1 absolute bg-transparent opacity-50 hover:opacity-100',\n local.class,\n )}\n {...others}\n >\n {local.children ?? <ChevronLeftIcon class='size-4' />}\n </DatePickerPrimitive.PrevTrigger>\n );\n};\nexport const DatePickerNextTrigger: Component<DatePickerPrimitive.NextTriggerProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.NextTrigger\n class={cn(\n buttonVariants({ variant: 'outline' }),\n 'size-7 p-0 right-1 absolute bg-transparent opacity-50 hover:opacity-100',\n local.class,\n )}\n {...others}\n >\n {local.children ?? <ChevronRightIcon class='size-4' />}\n </DatePickerPrimitive.NextTrigger>\n );\n};\nexport const DatePickerTableCellTrigger: Component<DatePickerPrimitive.TableCellTriggerProps> = (\n props,\n) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.TableCellTrigger\n class={cn(\n buttonVariants({ variant: 'ghost' }),\n 'size-9 p-0 font-normal data-selected:opacity-100',\n 'data-today:bg-accent data-today:text-accent-foreground',\n 'data-selected:bg-primary data-selected:text-primary-foreground data-selected:hover:bg-primary data-selected:hover:text-primary-foreground data-selected:focus:bg-primary data-selected:focus:text-primary-foreground',\n 'data-disabled:text-muted-foreground data-[disabled=true]:opacity-50',\n 'data-outside-range:text-muted-foreground data-outside-range:opacity-50',\n 'data-in-range:rounded-none data-in-range:bg-accent data-in-range:text-accent-foreground',\n 'data-range-end:rounded-r-md data-range-start:rounded-l-md',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerViewControl: Component<DatePickerPrimitive.ViewControlProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.ViewControl\n class={cn('pt-1 mb-4 px-8 relative flex items-center justify-center', local.class)}\n {...others}\n >\n <DatePickerPrevTrigger />\n <DatePickerViewTrigger\n asChild={(triggerProps) => (\n <button\n class={cn(buttonVariants({ variant: 'ghost' }), 'h-7 px-2 py-1 text-sm font-medium')}\n {...triggerProps()}\n >\n <DatePickerRangeText />\n </button>\n )}\n />\n <DatePickerNextTrigger />\n </DatePickerPrimitive.ViewControl>\n );\n};\nexport const DatePickerDayView: Component = () => (\n <DatePickerView view='day'>\n <DatePickerViewControl />\n <DatePickerTable>\n <DatePickerTableHead>\n <DatePickerTableRow>\n <DatePickerContext>\n {(api) => (\n <For each={api().weekDays}>\n {(weekDay) => (\n <DatePickerTableHeader aria-label={weekDay.narrow}>\n {weekDay.short}\n </DatePickerTableHeader>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableRow>\n </DatePickerTableHead>\n <DatePickerTableBody>\n <DatePickerContext>\n {(api) => (\n <For each={api().weeks}>\n {(week) => (\n <DatePickerTableRow>\n <For each={week}>\n {(day) => (\n <DatePickerTableCell value={day}>\n <DatePickerTableCellTrigger>{day.day}</DatePickerTableCellTrigger>\n </DatePickerTableCell>\n )}\n </For>\n </DatePickerTableRow>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableBody>\n </DatePickerTable>\n </DatePickerView>\n);\nexport const DatePickerMonthView: Component = () => (\n <DatePickerView view='month'>\n <DatePickerViewControl />\n <DatePickerTable>\n <DatePickerTableBody>\n <DatePickerContext>\n {(api) => (\n <For each={api().getMonthsGrid({ columns: 4, format: 'short' })}>\n {(months) => (\n <DatePickerTableRow class='gap-2 w-full'>\n <For each={months}>\n {(month) => (\n <DatePickerTableCell value={month.value} class='flex-1'>\n <DatePickerTableCellTrigger class='w-full'>\n {month.label}\n </DatePickerTableCellTrigger>\n </DatePickerTableCell>\n )}\n </For>\n </DatePickerTableRow>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableBody>\n </DatePickerTable>\n </DatePickerView>\n);\nexport const DatePickerYearView: Component = () => (\n <DatePickerView view='year'>\n <DatePickerViewControl />\n <DatePickerTable>\n <DatePickerTableBody>\n <DatePickerContext>\n {(api) => (\n <For each={api().getYearsGrid({ columns: 4 })}>\n {(years) => (\n <DatePickerTableRow class='gap-2 w-full'>\n <For each={years}>\n {(year) => (\n <DatePickerTableCell value={year.value} class='flex-1'>\n <DatePickerTableCellTrigger class='w-full'>\n {year.label}\n </DatePickerTableCellTrigger>\n </DatePickerTableCell>\n )}\n </For>\n </DatePickerTableRow>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableBody>\n </DatePickerTable>\n </DatePickerView>\n);\nexport const DatePickerViews: Component = () => [\n <DatePickerDayView />,\n <DatePickerMonthView />,\n <DatePickerYearView />,\n];\nexport const Calendar: Component<DatePickerPrimitive.RootProps> = (props) => (\n <DatePicker {...props} inline unmountOnExit={false}>\n <DatePickerContent class='border-none shadow-none ring-0'>\n <DatePickerViews />\n </DatePickerContent>\n </DatePicker>\n);\n"],"names":["DatePicker","props","local","others","splitProps","_$createComponent","DatePickerPrimitive","Root","_$mergeProps","cn","class","DatePickerContext","Context","DatePickerRangeText","RangeText","DatePickerView","View","DatePickerViewTrigger","ViewTrigger","DatePickerTable","Table","DatePickerTableBody","TableBody","DatePickerTableCell","TableCell","DatePickerTableHead","TableHead","DatePickerTableHeader","TableHeader","DatePickerTableRow","TableRow","DatePickerLabel","Label","DatePickerControl","Control","DatePickerInput","Input","DatePickerTrigger","Trigger","buttonVariants","variant","size","children","CalendarMonthIcon","DatePickerPositioner","Positioner","DatePickerContent","Content","DatePickerPrevTrigger","PrevTrigger","ChevronLeftIcon","DatePickerNextTrigger","NextTrigger","ChevronRightIcon","DatePickerTableCellTrigger","TableCellTrigger","DatePickerViewControl","ViewControl","asChild","triggerProps","_el$","_tmpl$","_$spread","_$insert","DatePickerDayView","view","api","For","each","weekDays","weekDay","narrow","short","weeks","week","day","value","DatePickerMonthView","getMonthsGrid","columns","format","months","month","label","DatePickerYearView","getYearsGrid","years","year","DatePickerViews","Calendar","inline","unmountOnExit"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","sources":["../../src/components/DatePicker.tsx"],"sourcesContent":["import { DatePicker as DatePickerPrimitive } from '@ark-ui/solid/date-picker';\nimport { type Component, For, splitProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\nimport CalendarMonthIcon from '~icons/material-symbols/calendar-month';\nimport ChevronLeftIcon from '~icons/material-symbols/chevron-left';\nimport ChevronRightIcon from '~icons/material-symbols/chevron-right';\n\nimport { buttonVariants } from '@/components/Button';\nexport const DatePicker: Component<DatePickerPrimitive.RootProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.Root class={cn('flex w-full flex-col', local.class)} {...others} />;\n};\nexport const DatePickerContext = DatePickerPrimitive.Context,\n DatePickerRangeText = DatePickerPrimitive.RangeText,\n DatePickerView = DatePickerPrimitive.View,\n DatePickerViewTrigger = DatePickerPrimitive.ViewTrigger;\nexport const DatePickerTable: Component<DatePickerPrimitive.TableProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Table\n class={cn('space-y-1 w-full border-collapse', local.class)}\n {...others}\n />\n );\n};\nexport const DatePickerTableBody: Component<DatePickerPrimitive.TableBodyProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.TableBody class={cn('', local.class)} {...others} />;\n};\nexport const DatePickerTableCell: Component<DatePickerPrimitive.TableCellProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.TableCell\n class={cn(\n 'text-sm p-0 relative text-center focus-within:relative focus-within:z-20 [&:has([data-selected])]:bg-accent first:[&:has([data-selected])]:rounded-l-md last:[&:has([data-selected])]:rounded-r-md',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerTableHead: Component<DatePickerPrimitive.TableHeadProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.TableHead class={cn('', local.class)} {...others} />;\n};\nexport const DatePickerTableHeader: Component<DatePickerPrimitive.TableHeaderProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.TableHeader\n class={cn('w-9 font-normal rounded-md text-[0.8rem] text-muted-foreground', local.class)}\n {...others}\n />\n );\n};\nexport const DatePickerTableRow: Component<DatePickerPrimitive.TableRowProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.TableRow class={cn('mt-2 flex w-full', local.class)} {...others} />;\n};\nexport const DatePickerLabel: Component<DatePickerPrimitive.LabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Label\n class={cn(\n 'mb-1.5 gap-2 text-sm font-medium flex items-center leading-none select-none group-data-disabled:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerControl: Component<DatePickerPrimitive.ControlProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.Control class={cn('gap-2 flex flex-row', local.class)} {...others} />;\n};\nexport const DatePickerInput: Component<DatePickerPrimitive.InputProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Input\n class={cn(\n 'h-9 px-3 py-2 text-sm file:text-sm file:font-medium shadow-sm flex w-full rounded-lg border border-input bg-background transition-colors file:border-0 file:bg-transparent placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30 dark:hover:bg-input/50',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerTrigger: Component<DatePickerPrimitive.TriggerProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.Trigger\n class={cn(\n buttonVariants({ variant: 'outline', size: 'icon' }),\n 'size-9 p-0 font-normal',\n local.class,\n )}\n {...others}\n >\n {local.children ?? <CalendarMonthIcon class='size-4' />}\n </DatePickerPrimitive.Trigger>\n );\n};\nexport const DatePickerPositioner: Component<DatePickerPrimitive.PositionerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <DatePickerPrimitive.Positioner class={cn('isolate z-50', local.class)} {...others} />;\n};\nexport const DatePickerContent: Component<DatePickerPrimitive.ContentProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.Content\n class={cn(\n 'w-72 p-3 shadow-md rounded-lg bg-popover text-popover-foreground ring-1 ring-foreground/10 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerPrevTrigger: Component<DatePickerPrimitive.PrevTriggerProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.PrevTrigger\n class={cn(\n buttonVariants({ variant: 'outline' }),\n 'size-7 p-0 left-1 absolute bg-transparent opacity-50 hover:opacity-100',\n local.class,\n )}\n {...others}\n >\n {local.children ?? <ChevronLeftIcon class='size-4' />}\n </DatePickerPrimitive.PrevTrigger>\n );\n};\nexport const DatePickerNextTrigger: Component<DatePickerPrimitive.NextTriggerProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.NextTrigger\n class={cn(\n buttonVariants({ variant: 'outline' }),\n 'size-7 p-0 right-1 absolute bg-transparent opacity-50 hover:opacity-100',\n local.class,\n )}\n {...others}\n >\n {local.children ?? <ChevronRightIcon class='size-4' />}\n </DatePickerPrimitive.NextTrigger>\n );\n};\nexport const DatePickerTableCellTrigger: Component<DatePickerPrimitive.TableCellTriggerProps> = (\n props,\n) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <DatePickerPrimitive.TableCellTrigger\n class={cn(\n buttonVariants({ variant: 'ghost' }),\n 'size-9 p-0 font-normal data-selected:opacity-100',\n 'data-today:bg-accent data-today:text-accent-foreground',\n 'data-selected:bg-primary data-selected:text-primary-foreground data-selected:hover:bg-primary data-selected:hover:text-primary-foreground data-selected:focus:bg-primary data-selected:focus:text-primary-foreground',\n 'data-disabled:text-muted-foreground data-[disabled=true]:opacity-50',\n 'data-outside-range:text-muted-foreground data-outside-range:opacity-50',\n 'data-in-range:rounded-none data-in-range:bg-accent data-in-range:text-accent-foreground',\n 'data-range-end:rounded-r-md data-range-start:rounded-l-md',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const DatePickerViewControl: Component<DatePickerPrimitive.ViewControlProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <DatePickerPrimitive.ViewControl\n class={cn('pt-1 mb-4 px-8 relative flex items-center justify-center', local.class)}\n {...others}\n >\n <DatePickerPrevTrigger />\n <DatePickerViewTrigger\n asChild={(triggerProps) => (\n <button\n class={cn(buttonVariants({ variant: 'ghost' }), 'h-7 px-2 py-1 text-sm font-medium')}\n {...triggerProps()}\n >\n <DatePickerRangeText />\n </button>\n )}\n />\n <DatePickerNextTrigger />\n </DatePickerPrimitive.ViewControl>\n );\n};\nexport const DatePickerDayView: Component = () => (\n <DatePickerView view='day'>\n <DatePickerViewControl />\n <DatePickerTable>\n <DatePickerTableHead>\n <DatePickerTableRow>\n <DatePickerContext>\n {(api) => (\n <For each={api().weekDays}>\n {(weekDay) => (\n <DatePickerTableHeader aria-label={weekDay.narrow}>\n {weekDay.short}\n </DatePickerTableHeader>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableRow>\n </DatePickerTableHead>\n <DatePickerTableBody>\n <DatePickerContext>\n {(api) => (\n <For each={api().weeks}>\n {(week) => (\n <DatePickerTableRow>\n <For each={week}>\n {(day) => (\n <DatePickerTableCell value={day}>\n <DatePickerTableCellTrigger>{day.day}</DatePickerTableCellTrigger>\n </DatePickerTableCell>\n )}\n </For>\n </DatePickerTableRow>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableBody>\n </DatePickerTable>\n </DatePickerView>\n);\nexport const DatePickerMonthView: Component = () => (\n <DatePickerView view='month'>\n <DatePickerViewControl />\n <DatePickerTable>\n <DatePickerTableBody>\n <DatePickerContext>\n {(api) => (\n <For each={api().getMonthsGrid({ columns: 4, format: 'short' })}>\n {(months) => (\n <DatePickerTableRow class='gap-2 w-full'>\n <For each={months}>\n {(month) => (\n <DatePickerTableCell value={month.value} class='flex-1'>\n <DatePickerTableCellTrigger class='w-full'>\n {month.label}\n </DatePickerTableCellTrigger>\n </DatePickerTableCell>\n )}\n </For>\n </DatePickerTableRow>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableBody>\n </DatePickerTable>\n </DatePickerView>\n);\nexport const DatePickerYearView: Component = () => (\n <DatePickerView view='year'>\n <DatePickerViewControl />\n <DatePickerTable>\n <DatePickerTableBody>\n <DatePickerContext>\n {(api) => (\n <For each={api().getYearsGrid({ columns: 4 })}>\n {(years) => (\n <DatePickerTableRow class='gap-2 w-full'>\n <For each={years}>\n {(year) => (\n <DatePickerTableCell value={year.value} class='flex-1'>\n <DatePickerTableCellTrigger class='w-full'>\n {year.label}\n </DatePickerTableCellTrigger>\n </DatePickerTableCell>\n )}\n </For>\n </DatePickerTableRow>\n )}\n </For>\n )}\n </DatePickerContext>\n </DatePickerTableBody>\n </DatePickerTable>\n </DatePickerView>\n);\nexport const DatePickerViews: Component = () => [\n <DatePickerDayView />,\n <DatePickerMonthView />,\n <DatePickerYearView />,\n];\nexport const DatePickerCalendar: Component<DatePickerPrimitive.RootProps> = (props) => (\n <DatePicker {...props} inline unmountOnExit={false}>\n <DatePickerContent class='border-none shadow-none ring-0'>\n <DatePickerViews />\n </DatePickerContent>\n </DatePicker>\n);\n"],"names":["DatePicker","props","local","others","splitProps","_$createComponent","DatePickerPrimitive","Root","_$mergeProps","cn","class","DatePickerContext","Context","DatePickerRangeText","RangeText","DatePickerView","View","DatePickerViewTrigger","ViewTrigger","DatePickerTable","Table","DatePickerTableBody","TableBody","DatePickerTableCell","TableCell","DatePickerTableHead","TableHead","DatePickerTableHeader","TableHeader","DatePickerTableRow","TableRow","DatePickerLabel","Label","DatePickerControl","Control","DatePickerInput","Input","DatePickerTrigger","Trigger","buttonVariants","variant","size","children","CalendarMonthIcon","DatePickerPositioner","Positioner","DatePickerContent","Content","DatePickerPrevTrigger","PrevTrigger","ChevronLeftIcon","DatePickerNextTrigger","NextTrigger","ChevronRightIcon","DatePickerTableCellTrigger","TableCellTrigger","DatePickerViewControl","ViewControl","asChild","triggerProps","_el$","_tmpl$","_$spread","_$insert","DatePickerDayView","view","api","For","each","weekDays","weekDay","narrow","short","weeks","week","day","value","DatePickerMonthView","getMonthsGrid","columns","format","months","month","label","DatePickerYearView","getYearsGrid","years","year","DatePickerViews","DatePickerCalendar","inline","unmountOnExit"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Component, ComponentProps, JSXElement } from 'solid-js';
4
4
  import { VariantProps } from 'tailwind-variants';
5
5
  export { useFieldset } from '@ark-ui/solid/fieldset';
6
6
  export declare const FieldContext: (props: PrimitiveField.ContextProps) => import("solid-js").JSX.Element;
7
- export declare const FieldSet: Component<PrimitiveFieldset.RootProps>;
7
+ export declare const Fieldset: Component<PrimitiveFieldset.RootProps>;
8
8
  export type FieldLegendProps = PrimitiveFieldset.LegendProps & {
9
9
  variant?: 'legend' | 'label';
10
10
  };
@@ -254,9 +254,9 @@ export {
254
254
  N as FieldRequiredIndicator,
255
255
  K as FieldSelect,
256
256
  W as FieldSeparator,
257
- B as FieldSet,
258
257
  J as FieldTextarea,
259
258
  Q as FieldTitle,
259
+ B as Fieldset,
260
260
  L as fieldVariants,
261
261
  ee as useFieldset
262
262
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sources":["../../src/components/Field.tsx"],"sourcesContent":["import { Field as PrimitiveField } from '@ark-ui/solid/field';\nimport { Fieldset as PrimitiveFieldset } from '@ark-ui/solid/fieldset';\nimport {\n type Component,\n type ComponentProps,\n createMemo,\n For,\n type JSXElement,\n Show,\n splitProps,\n} from 'solid-js';\nimport { type VariantProps, tv, cn } from 'tailwind-variants';\n\nimport { Separator } from '@/components/Separator';\n\nexport { useFieldset } from '@ark-ui/solid/fieldset';\nexport const FieldContext = PrimitiveField.Context;\n\nexport const FieldSet: Component<PrimitiveFieldset.RootProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <PrimitiveFieldset.Root\n data-slot='field-set'\n class={cn(\n 'gap-4 has-data-[slot=checkbox-group]:gap-3 has-data-[slot=radio-group]:gap-3 flex flex-col',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveFieldset.Root>\n );\n};\n\nexport type FieldLegendProps = PrimitiveFieldset.LegendProps & {\n variant?: 'legend' | 'label';\n};\n\nexport const FieldLegend: Component<FieldLegendProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'variant', 'children']);\n return (\n <PrimitiveFieldset.Legend\n data-slot='field-legend'\n data-variant={local.variant ?? 'legend'}\n class={cn(\n 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveFieldset.Legend>\n );\n};\n\nexport const FieldGroup: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='field-group'\n class={cn(\n 'gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const fieldVariants = tv({\n base: 'group/field flex w-full transition-colors data-[invalid=true]:text-destructive',\n variants: {\n orientation: {\n vertical: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'gap-4 flex-row items-center has-data-[slot=field-content]:items-start [&>[data-slot=field-label]]:flex-auto has-data-[slot=field-content]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n '@md/field-group:gap-4 @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-data-[slot=field-content]:items-start @md/field-group:has-data-[slot=field-content]:[&>[role=checkbox],[role=radio]]:mt-px flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type FieldProps = PrimitiveField.RootProps & VariantProps<typeof fieldVariants>;\n\nexport const Field: Component<FieldProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'orientation', 'children']);\n return (\n <PrimitiveField.Root\n role='group'\n data-slot='field'\n data-orientation={local.orientation ?? 'vertical'}\n class={fieldVariants({ orientation: local.orientation, class: local.class })}\n {...others}\n >\n {local.children}\n </PrimitiveField.Root>\n );\n};\n\nexport const FieldContent: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='field-content'\n class={cn('group/field-content leading-snug relative flex flex-1 flex-col', local.class)}\n {...others}\n />\n );\n};\nexport const FieldInput: Component<PrimitiveField.InputProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <PrimitiveField.Input\n data-slot='field-input'\n class={cn(\n 'min-w-0 text-base md:text-sm h-8 px-2.5 py-1 flex w-full rounded-lg border border-input bg-transparent transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 dark:bg-input/30 dark:disabled:bg-input/80 dark:data-[invalid=true]:border-destructive/50 dark:data-[invalid=true]:ring-destructive/40',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const FieldTextarea: Component<PrimitiveField.TextareaProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <PrimitiveField.Textarea\n data-slot='field-textarea'\n class={cn(\n 'min-w-0 text-base md:text-sm px-2.5 py-2 flex min-h-[80px] w-full rounded-lg border border-input bg-transparent transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 dark:bg-input/30 dark:disabled:bg-input/80 dark:data-[invalid=true]:border-destructive/50 dark:data-[invalid=true]:ring-destructive/40',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const FieldSelect: Component<PrimitiveField.SelectProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <PrimitiveField.Select\n data-slot='field-select'\n class={cn(\n 'min-w-0 text-base md:text-sm h-8 px-2.5 py-1 flex w-full rounded-lg border border-input bg-transparent transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 dark:bg-input/30 dark:disabled:bg-input/80 dark:data-[invalid=true]:border-destructive/50 dark:data-[invalid=true]:ring-destructive/40',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const FieldRequiredIndicator: Component<PrimitiveField.RequiredIndicatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'fallback', 'children']);\n return (\n <PrimitiveField.RequiredIndicator\n fallback={local.fallback ?? '*'}\n class={cn('text-sm font-medium leading-none text-destructive', local.class)}\n {...others}\n >\n {local.children}\n </PrimitiveField.RequiredIndicator>\n );\n};\n\nexport const FieldLabel: Component<PrimitiveField.LabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <PrimitiveField.Label\n data-slot='field-label'\n class={cn(\n 'group-data-[orientation=vertical]/field:mb-1.5',\n 'gap-2 text-sm font-medium flex items-center leading-none select-none group-data-disabled:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n '*:data-[slot=field]:p-2.5 group/field-label peer/field-label leading-snug flex w-fit group-data-disabled/field:opacity-50 has-data-[slot=field]:rounded-lg has-data-[slot=field]:border has-[[data-state=checked]]:border-primary/30 has-[[data-state=checked]]:bg-primary/5 dark:has-[[data-state=checked]]:border-primary/20 dark:has-[[data-state=checked]]:bg-primary/10',\n 'has-data-[slot=field]:w-full has-data-[slot=field]:flex-col',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveField.Label>\n );\n};\n\nexport const FieldTitle: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <div\n data-slot='field-label'\n class={cn(\n 'group-data-[orientation=vertical]/field:mb-1.5',\n 'gap-2 text-sm font-medium leading-snug flex w-fit items-center group-data-disabled/field:opacity-50',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </div>\n );\n};\n\nexport const FieldDescription: Component<PrimitiveField.HelperTextProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <PrimitiveField.HelperText\n data-slot='field-description'\n class={cn(\n 'text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal text-left text-muted-foreground group-has-data-[orientation=horizontal]/field:text-balance',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveField.HelperText>\n );\n};\n\nexport type FieldSeparatorProps = ComponentProps<'div'> & {\n children?: JSXElement;\n};\n\nexport const FieldSeparator: Component<FieldSeparatorProps> = (props) => {\n const [local, others] = splitProps(props, ['children', 'class']);\n return (\n <div\n data-slot='field-separator'\n data-content={Boolean(local.children)}\n class={cn(\n '-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative',\n local.class,\n )}\n {...others}\n >\n <Separator class='inset-0 absolute top-1/2' />\n <Show when={local.children}>\n <span\n class='px-2 relative mx-auto block w-fit bg-background text-muted-foreground'\n data-slot='field-separator-content'\n >\n {local.children}\n </span>\n </Show>\n </div>\n );\n};\n\nexport type FieldErrorProps = PrimitiveField.ErrorTextProps & {\n errors?: ({ message?: string } | string | undefined)[];\n};\n\nexport const FieldError: Component<FieldErrorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children', 'errors']);\n\n const uniqueErrors = createMemo(() => {\n const { errors } = local;\n if (!errors || errors.length === 0) {\n return [];\n }\n\n const messages: string[] = [];\n for (const error of errors) {\n if (typeof error === 'string') {\n messages.push(error);\n } else if (error && typeof error === 'object' && typeof error.message === 'string') {\n messages.push(error.message);\n }\n }\n\n return [...new Set(messages)];\n });\n\n return (\n <div class='mt-[3px] flex min-h-[0.875rem] flex-col justify-start'>\n <PrimitiveField.ErrorText\n data-slot='field-error'\n class={cn('font-medium text-[0.8rem] leading-[0.875rem] text-destructive', local.class)}\n {...others}\n >\n <Show\n when={local.children}\n fallback={\n <Show when={uniqueErrors().length > 0}>\n <Show when={uniqueErrors().length > 1} fallback={uniqueErrors().at(0)}>\n <ul class='ml-4 gap-1 flex list-disc flex-col'>\n <For each={uniqueErrors()}>{(error) => <li>{error}</li>}</For>\n </ul>\n </Show>\n </Show>\n }\n >\n {local.children}\n </Show>\n </PrimitiveField.ErrorText>\n </div>\n );\n};\n"],"names":["FieldContext","PrimitiveField","Context","FieldSet","props","local","others","splitProps","_$createComponent","PrimitiveFieldset","Root","_$mergeProps","cn","class","children","FieldLegend","Legend","variant","FieldGroup","_el$","_tmpl$","_$spread","fieldVariants","tv","base","variants","orientation","vertical","horizontal","responsive","defaultVariants","Field","role","FieldContent","_el$2","_tmpl$2","FieldInput","Input","FieldTextarea","Textarea","FieldSelect","Select","FieldRequiredIndicator","RequiredIndicator","fallback","FieldLabel","Label","FieldTitle","_el$3","_tmpl$3","_$insert","FieldDescription","HelperText","FieldSeparator","_el$4","_tmpl$5","Boolean","Separator","Show","when","_el$5","_tmpl$4","FieldError","uniqueErrors","createMemo","errors","length","messages","error","push","message","Set","_el$6","_tmpl$6","ErrorText","at","_el$7","_tmpl$7","For","each","_el$8","_tmpl$8"],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sources":["../../src/components/Field.tsx"],"sourcesContent":["import { Field as PrimitiveField } from '@ark-ui/solid/field';\nimport { Fieldset as PrimitiveFieldset } from '@ark-ui/solid/fieldset';\nimport {\n type Component,\n type ComponentProps,\n createMemo,\n For,\n type JSXElement,\n Show,\n splitProps,\n} from 'solid-js';\nimport { type VariantProps, tv, cn } from 'tailwind-variants';\n\nimport { Separator } from '@/components/Separator';\n\nexport { useFieldset } from '@ark-ui/solid/fieldset';\nexport const FieldContext = PrimitiveField.Context;\n\nexport const Fieldset: Component<PrimitiveFieldset.RootProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <PrimitiveFieldset.Root\n data-slot='field-set'\n class={cn(\n 'gap-4 has-data-[slot=checkbox-group]:gap-3 has-data-[slot=radio-group]:gap-3 flex flex-col',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveFieldset.Root>\n );\n};\n\nexport type FieldLegendProps = PrimitiveFieldset.LegendProps & {\n variant?: 'legend' | 'label';\n};\n\nexport const FieldLegend: Component<FieldLegendProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'variant', 'children']);\n return (\n <PrimitiveFieldset.Legend\n data-slot='field-legend'\n data-variant={local.variant ?? 'legend'}\n class={cn(\n 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveFieldset.Legend>\n );\n};\n\nexport const FieldGroup: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='field-group'\n class={cn(\n 'gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const fieldVariants = tv({\n base: 'group/field flex w-full transition-colors data-[invalid=true]:text-destructive',\n variants: {\n orientation: {\n vertical: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n horizontal:\n 'gap-4 flex-row items-center has-data-[slot=field-content]:items-start [&>[data-slot=field-label]]:flex-auto has-data-[slot=field-content]:[&>[role=checkbox],[role=radio]]:mt-px',\n responsive:\n '@md/field-group:gap-4 @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-data-[slot=field-content]:items-start @md/field-group:has-data-[slot=field-content]:[&>[role=checkbox],[role=radio]]:mt-px flex-col [&>*]:w-full [&>.sr-only]:w-auto',\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type FieldProps = PrimitiveField.RootProps & VariantProps<typeof fieldVariants>;\n\nexport const Field: Component<FieldProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'orientation', 'children']);\n return (\n <PrimitiveField.Root\n role='group'\n data-slot='field'\n data-orientation={local.orientation ?? 'vertical'}\n class={fieldVariants({ orientation: local.orientation, class: local.class })}\n {...others}\n >\n {local.children}\n </PrimitiveField.Root>\n );\n};\n\nexport const FieldContent: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='field-content'\n class={cn('group/field-content leading-snug relative flex flex-1 flex-col', local.class)}\n {...others}\n />\n );\n};\nexport const FieldInput: Component<PrimitiveField.InputProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <PrimitiveField.Input\n data-slot='field-input'\n class={cn(\n 'min-w-0 text-base md:text-sm h-8 px-2.5 py-1 flex w-full rounded-lg border border-input bg-transparent transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 dark:bg-input/30 dark:disabled:bg-input/80 dark:data-[invalid=true]:border-destructive/50 dark:data-[invalid=true]:ring-destructive/40',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const FieldTextarea: Component<PrimitiveField.TextareaProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <PrimitiveField.Textarea\n data-slot='field-textarea'\n class={cn(\n 'min-w-0 text-base md:text-sm px-2.5 py-2 flex min-h-[80px] w-full rounded-lg border border-input bg-transparent transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 dark:bg-input/30 dark:disabled:bg-input/80 dark:data-[invalid=true]:border-destructive/50 dark:data-[invalid=true]:ring-destructive/40',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const FieldSelect: Component<PrimitiveField.SelectProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <PrimitiveField.Select\n data-slot='field-select'\n class={cn(\n 'min-w-0 text-base md:text-sm h-8 px-2.5 py-1 flex w-full rounded-lg border border-input bg-transparent transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 dark:bg-input/30 dark:disabled:bg-input/80 dark:data-[invalid=true]:border-destructive/50 dark:data-[invalid=true]:ring-destructive/40',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const FieldRequiredIndicator: Component<PrimitiveField.RequiredIndicatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'fallback', 'children']);\n return (\n <PrimitiveField.RequiredIndicator\n fallback={local.fallback ?? '*'}\n class={cn('text-sm font-medium leading-none text-destructive', local.class)}\n {...others}\n >\n {local.children}\n </PrimitiveField.RequiredIndicator>\n );\n};\n\nexport const FieldLabel: Component<PrimitiveField.LabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <PrimitiveField.Label\n data-slot='field-label'\n class={cn(\n 'group-data-[orientation=vertical]/field:mb-1.5',\n 'gap-2 text-sm font-medium flex items-center leading-none select-none group-data-disabled:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n '*:data-[slot=field]:p-2.5 group/field-label peer/field-label leading-snug flex w-fit group-data-disabled/field:opacity-50 has-data-[slot=field]:rounded-lg has-data-[slot=field]:border has-[[data-state=checked]]:border-primary/30 has-[[data-state=checked]]:bg-primary/5 dark:has-[[data-state=checked]]:border-primary/20 dark:has-[[data-state=checked]]:bg-primary/10',\n 'has-data-[slot=field]:w-full has-data-[slot=field]:flex-col',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveField.Label>\n );\n};\n\nexport const FieldTitle: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <div\n data-slot='field-label'\n class={cn(\n 'group-data-[orientation=vertical]/field:mb-1.5',\n 'gap-2 text-sm font-medium leading-snug flex w-fit items-center group-data-disabled/field:opacity-50',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </div>\n );\n};\n\nexport const FieldDescription: Component<PrimitiveField.HelperTextProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <PrimitiveField.HelperText\n data-slot='field-description'\n class={cn(\n 'text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal text-left text-muted-foreground group-has-data-[orientation=horizontal]/field:text-balance',\n '[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </PrimitiveField.HelperText>\n );\n};\n\nexport type FieldSeparatorProps = ComponentProps<'div'> & {\n children?: JSXElement;\n};\n\nexport const FieldSeparator: Component<FieldSeparatorProps> = (props) => {\n const [local, others] = splitProps(props, ['children', 'class']);\n return (\n <div\n data-slot='field-separator'\n data-content={Boolean(local.children)}\n class={cn(\n '-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative',\n local.class,\n )}\n {...others}\n >\n <Separator class='inset-0 absolute top-1/2' />\n <Show when={local.children}>\n <span\n class='px-2 relative mx-auto block w-fit bg-background text-muted-foreground'\n data-slot='field-separator-content'\n >\n {local.children}\n </span>\n </Show>\n </div>\n );\n};\n\nexport type FieldErrorProps = PrimitiveField.ErrorTextProps & {\n errors?: ({ message?: string } | string | undefined)[];\n};\n\nexport const FieldError: Component<FieldErrorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children', 'errors']);\n\n const uniqueErrors = createMemo(() => {\n const { errors } = local;\n if (!errors || errors.length === 0) {\n return [];\n }\n\n const messages: string[] = [];\n for (const error of errors) {\n if (typeof error === 'string') {\n messages.push(error);\n } else if (error && typeof error === 'object' && typeof error.message === 'string') {\n messages.push(error.message);\n }\n }\n\n return [...new Set(messages)];\n });\n\n return (\n <div class='mt-[3px] flex min-h-[0.875rem] flex-col justify-start'>\n <PrimitiveField.ErrorText\n data-slot='field-error'\n class={cn('font-medium text-[0.8rem] leading-[0.875rem] text-destructive', local.class)}\n {...others}\n >\n <Show\n when={local.children}\n fallback={\n <Show when={uniqueErrors().length > 0}>\n <Show when={uniqueErrors().length > 1} fallback={uniqueErrors().at(0)}>\n <ul class='ml-4 gap-1 flex list-disc flex-col'>\n <For each={uniqueErrors()}>{(error) => <li>{error}</li>}</For>\n </ul>\n </Show>\n </Show>\n }\n >\n {local.children}\n </Show>\n </PrimitiveField.ErrorText>\n </div>\n );\n};\n"],"names":["FieldContext","PrimitiveField","Context","Fieldset","props","local","others","splitProps","_$createComponent","PrimitiveFieldset","Root","_$mergeProps","cn","class","children","FieldLegend","Legend","variant","FieldGroup","_el$","_tmpl$","_$spread","fieldVariants","tv","base","variants","orientation","vertical","horizontal","responsive","defaultVariants","Field","role","FieldContent","_el$2","_tmpl$2","FieldInput","Input","FieldTextarea","Textarea","FieldSelect","Select","FieldRequiredIndicator","RequiredIndicator","fallback","FieldLabel","Label","FieldTitle","_el$3","_tmpl$3","_$insert","FieldDescription","HelperText","FieldSeparator","_el$4","_tmpl$5","Boolean","Separator","Show","when","_el$5","_tmpl$4","FieldError","uniqueErrors","createMemo","errors","length","messages","error","push","message","Set","_el$6","_tmpl$6","ErrorText","at","_el$7","_tmpl$7","For","each","_el$8","_tmpl$8"],"mappings":"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"}
@@ -24,5 +24,5 @@ export type MenuComboboxEmptyProps = ComponentProps<'div'> & {
24
24
  searchValue?: string;
25
25
  };
26
26
  export declare const MenuComboboxEmpty: Component<MenuComboboxEmptyProps>;
27
- export type { MenuCheckboxItemData, MenuComboboxGroupedListProps, MenuComboboxListProps, MenuItemData, MenuItemGroupData, MenuRadioGroupData, MenuRadioItemData, MenuSeparatorData, } from './MenuComboboxList';
27
+ export type { MenuComboboxCheckboxItemData, MenuComboboxItemData, MenuComboboxItemGroupData, MenuComboboxRadioItemGroupData, MenuComboboxRadioItemData, MenuComboboxSeparatorData, MenuComboboxGroupedListProps, MenuComboboxListProps, } from './MenuComboboxList';
28
28
  export { MenuComboboxGroupedList, MenuComboboxList } from './MenuComboboxList';
@@ -1 +1 @@
1
- {"version":3,"file":"MenuCombobox.js","sources":["../../src/components/MenuCombobox.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@ark-ui/solid/menu';\nimport { type Component, type ComponentProps, splitProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\nimport CheckIcon from '~icons/material-symbols/check';\nimport ChevronRightIcon from '~icons/material-symbols/chevron-right';\nimport SearchIcon from '~icons/material-symbols/search';\n\nexport const MenuCombobox = MenuPrimitive.Root;\nexport const MenuComboboxTrigger = MenuPrimitive.Trigger;\nexport const MenuComboboxContext = MenuPrimitive.Context;\nexport const MenuComboboxItemGroup = MenuPrimitive.ItemGroup;\nexport const MenuComboboxItemText = MenuPrimitive.ItemText;\nexport const MenuComboboxRadioItemGroup = MenuPrimitive.RadioItemGroup;\n\nexport const MenuComboboxPositioner: Component<MenuPrimitive.PositionerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Positioner\n data-slot='menu-combobox-positioner'\n class={cn('isolate z-50', local.class)}\n {...others}\n />\n );\n};\nexport const MenuComboboxContent: Component<MenuPrimitive.ContentProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Content\n data-slot='menu-combobox-content'\n class={cn(\n 'min-w-48 p-0 shadow-md isolate overflow-hidden rounded-md border bg-popover text-popover-foreground outline-none',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport type MenuComboboxSearchInputProps = ComponentProps<'input'> & {\n onValueChange?: (value: string) => void;\n};\nexport const MenuComboboxSearchInput: Component<MenuComboboxSearchInputProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'onValueChange', 'value']);\n const handleInput = (inputEvent: InputEvent & { currentTarget: HTMLInputElement }): void => {\n if (typeof local.onValueChange === 'function') {\n local.onValueChange(inputEvent.currentTarget.value);\n }\n };\n return (\n <div data-slot='menu-combobox-search' class='gap-2 px-3 py-2 flex items-center border-b'>\n <SearchIcon class='size-4 shrink-0 text-muted-foreground' />\n <input\n type='text'\n class={cn(\n 'text-sm flex-1 bg-transparent outline-none placeholder:text-muted-foreground',\n local.class,\n )}\n onInput={handleInput}\n value={local.value}\n {...others}\n />\n </div>\n );\n};\nexport const MenuComboboxItem: Component<MenuPrimitive.ItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Item\n data-slot='menu-combobox-item'\n class={cn(\n 'px-3 py-2 text-sm mx-1 my-0.5 relative flex cursor-default items-center rounded-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const MenuComboboxTriggerItem: Component<MenuPrimitive.TriggerItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.TriggerItem\n data-slot='menu-combobox-trigger-item'\n class={cn(\n 'px-3 py-2 text-sm mx-1 my-0.5 flex cursor-default items-center rounded-sm outline-none select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground',\n local.class,\n )}\n {...others}\n >\n {local.children}\n <ChevronRightIcon class='size-4 ml-auto' />\n </MenuPrimitive.TriggerItem>\n );\n};\nexport const MenuComboboxItemGroupLabel: Component<MenuPrimitive.ItemGroupLabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.ItemGroupLabel\n data-slot='menu-combobox-item-group-label'\n class={cn('px-3 py-1.5 text-xs font-semibold text-muted-foreground', local.class)}\n {...others}\n />\n );\n};\nexport const MenuComboboxSeparator: Component<MenuPrimitive.SeparatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Separator\n data-slot='menu-combobox-separator'\n class={cn('-mx-1 my-1 h-px bg-muted', local.class)}\n {...others}\n />\n );\n};\nexport const MenuComboboxItemIndicator: Component<MenuPrimitive.ItemIndicatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.ItemIndicator\n data-slot='menu-combobox-item-indicator'\n class={cn('right-3 size-3.5 absolute flex items-center justify-center', local.class)}\n {...others}\n >\n {local.children ?? <CheckIcon class='size-4' />}\n </MenuPrimitive.ItemIndicator>\n );\n};\nexport const MenuComboboxCheckboxItem: Component<MenuPrimitive.CheckboxItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.CheckboxItem\n data-slot='menu-combobox-checkbox-item'\n class={cn(\n 'py-2 pr-3 pl-9 text-sm mx-1 my-0.5 relative flex cursor-default items-center rounded-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50',\n local.class,\n )}\n {...others}\n >\n <MenuPrimitive.ItemIndicator class='left-3 size-3.5 absolute flex items-center justify-center'>\n <CheckIcon class='size-4' />\n </MenuPrimitive.ItemIndicator>\n <MenuPrimitive.ItemText>{local.children}</MenuPrimitive.ItemText>\n </MenuPrimitive.CheckboxItem>\n );\n};\nexport const MenuComboboxRadioItem: Component<MenuPrimitive.RadioItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.RadioItem\n data-slot='menu-combobox-radio-item'\n class={cn(\n 'py-2 pr-3 pl-9 text-sm mx-1 my-0.5 relative flex cursor-default items-center rounded-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50',\n local.class,\n )}\n {...others}\n >\n <MenuPrimitive.ItemIndicator class='left-3 size-3.5 absolute flex items-center justify-center'>\n <div class='size-2 rounded-full bg-current' />\n </MenuPrimitive.ItemIndicator>\n <MenuPrimitive.ItemText>{local.children}</MenuPrimitive.ItemText>\n </MenuPrimitive.RadioItem>\n );\n};\nexport const MenuComboboxShortcut: Component<ComponentProps<'span'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <span class={cn('text-xs tracking-widest ml-auto opacity-60', local.class)} {...others} />;\n};\n\nexport type MenuComboboxEmptyProps = ComponentProps<'div'> & { searchValue?: string };\nexport const MenuComboboxEmpty: Component<MenuComboboxEmptyProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'searchValue']);\n return (\n <div\n data-slot='menu-combobox-empty'\n class={cn('py-6 text-sm text-center text-muted-foreground', local.class)}\n {...others}\n >\n No results found.\n </div>\n );\n};\nexport type {\n MenuCheckboxItemData,\n MenuComboboxGroupedListProps,\n MenuComboboxListProps,\n MenuItemData,\n MenuItemGroupData,\n MenuRadioGroupData,\n MenuRadioItemData,\n MenuSeparatorData,\n} from './MenuComboboxList';\nexport { MenuComboboxGroupedList, MenuComboboxList } from './MenuComboboxList';\n"],"names":["MenuCombobox","MenuPrimitive","Root","MenuComboboxTrigger","Trigger","MenuComboboxContext","Context","MenuComboboxItemGroup","ItemGroup","MenuComboboxItemText","ItemText","MenuComboboxRadioItemGroup","RadioItemGroup","MenuComboboxPositioner","props","local","others","splitProps","_$createComponent","Positioner","_$mergeProps","cn","class","MenuComboboxContent","Content","MenuComboboxSearchInput","handleInput","inputEvent","onValueChange","currentTarget","value","_el$","_tmpl$","_el$2","firstChild","_$insert","SearchIcon","$$input","_$spread","MenuComboboxItem","Item","MenuComboboxTriggerItem","TriggerItem","children","_$memo","ChevronRightIcon","MenuComboboxItemGroupLabel","ItemGroupLabel","MenuComboboxSeparator","Separator","MenuComboboxItemIndicator","ItemIndicator","CheckIcon","MenuComboboxCheckboxItem","CheckboxItem","MenuComboboxRadioItem","RadioItem","_tmpl$2","MenuComboboxShortcut","_el$4","_tmpl$3","MenuComboboxEmpty","_el$5","_tmpl$4","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"MenuCombobox.js","sources":["../../src/components/MenuCombobox.tsx"],"sourcesContent":["import { Menu as MenuPrimitive } from '@ark-ui/solid/menu';\nimport { type Component, type ComponentProps, splitProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\nimport CheckIcon from '~icons/material-symbols/check';\nimport ChevronRightIcon from '~icons/material-symbols/chevron-right';\nimport SearchIcon from '~icons/material-symbols/search';\n\nexport const MenuCombobox = MenuPrimitive.Root;\nexport const MenuComboboxTrigger = MenuPrimitive.Trigger;\nexport const MenuComboboxContext = MenuPrimitive.Context;\nexport const MenuComboboxItemGroup = MenuPrimitive.ItemGroup;\nexport const MenuComboboxItemText = MenuPrimitive.ItemText;\nexport const MenuComboboxRadioItemGroup = MenuPrimitive.RadioItemGroup;\n\nexport const MenuComboboxPositioner: Component<MenuPrimitive.PositionerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Positioner\n data-slot='menu-combobox-positioner'\n class={cn('isolate z-50', local.class)}\n {...others}\n />\n );\n};\nexport const MenuComboboxContent: Component<MenuPrimitive.ContentProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Content\n data-slot='menu-combobox-content'\n class={cn(\n 'min-w-48 p-0 shadow-md isolate overflow-hidden rounded-md border bg-popover text-popover-foreground outline-none',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport type MenuComboboxSearchInputProps = ComponentProps<'input'> & {\n onValueChange?: (value: string) => void;\n};\nexport const MenuComboboxSearchInput: Component<MenuComboboxSearchInputProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'onValueChange', 'value']);\n const handleInput = (inputEvent: InputEvent & { currentTarget: HTMLInputElement }): void => {\n if (typeof local.onValueChange === 'function') {\n local.onValueChange(inputEvent.currentTarget.value);\n }\n };\n return (\n <div data-slot='menu-combobox-search' class='gap-2 px-3 py-2 flex items-center border-b'>\n <SearchIcon class='size-4 shrink-0 text-muted-foreground' />\n <input\n type='text'\n class={cn(\n 'text-sm flex-1 bg-transparent outline-none placeholder:text-muted-foreground',\n local.class,\n )}\n onInput={handleInput}\n value={local.value}\n {...others}\n />\n </div>\n );\n};\nexport const MenuComboboxItem: Component<MenuPrimitive.ItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Item\n data-slot='menu-combobox-item'\n class={cn(\n 'px-3 py-2 text-sm mx-1 my-0.5 relative flex cursor-default items-center rounded-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50',\n local.class,\n )}\n {...others}\n />\n );\n};\nexport const MenuComboboxTriggerItem: Component<MenuPrimitive.TriggerItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.TriggerItem\n data-slot='menu-combobox-trigger-item'\n class={cn(\n 'px-3 py-2 text-sm mx-1 my-0.5 flex cursor-default items-center rounded-sm outline-none select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground',\n local.class,\n )}\n {...others}\n >\n {local.children}\n <ChevronRightIcon class='size-4 ml-auto' />\n </MenuPrimitive.TriggerItem>\n );\n};\nexport const MenuComboboxItemGroupLabel: Component<MenuPrimitive.ItemGroupLabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.ItemGroupLabel\n data-slot='menu-combobox-item-group-label'\n class={cn('px-3 py-1.5 text-xs font-semibold text-muted-foreground', local.class)}\n {...others}\n />\n );\n};\nexport const MenuComboboxSeparator: Component<MenuPrimitive.SeparatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <MenuPrimitive.Separator\n data-slot='menu-combobox-separator'\n class={cn('-mx-1 my-1 h-px bg-muted', local.class)}\n {...others}\n />\n );\n};\nexport const MenuComboboxItemIndicator: Component<MenuPrimitive.ItemIndicatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.ItemIndicator\n data-slot='menu-combobox-item-indicator'\n class={cn('right-3 size-3.5 absolute flex items-center justify-center', local.class)}\n {...others}\n >\n {local.children ?? <CheckIcon class='size-4' />}\n </MenuPrimitive.ItemIndicator>\n );\n};\nexport const MenuComboboxCheckboxItem: Component<MenuPrimitive.CheckboxItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.CheckboxItem\n data-slot='menu-combobox-checkbox-item'\n class={cn(\n 'py-2 pr-3 pl-9 text-sm mx-1 my-0.5 relative flex cursor-default items-center rounded-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50',\n local.class,\n )}\n {...others}\n >\n <MenuPrimitive.ItemIndicator class='left-3 size-3.5 absolute flex items-center justify-center'>\n <CheckIcon class='size-4' />\n </MenuPrimitive.ItemIndicator>\n <MenuPrimitive.ItemText>{local.children}</MenuPrimitive.ItemText>\n </MenuPrimitive.CheckboxItem>\n );\n};\nexport const MenuComboboxRadioItem: Component<MenuPrimitive.RadioItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <MenuPrimitive.RadioItem\n data-slot='menu-combobox-radio-item'\n class={cn(\n 'py-2 pr-3 pl-9 text-sm mx-1 my-0.5 relative flex cursor-default items-center rounded-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50',\n local.class,\n )}\n {...others}\n >\n <MenuPrimitive.ItemIndicator class='left-3 size-3.5 absolute flex items-center justify-center'>\n <div class='size-2 rounded-full bg-current' />\n </MenuPrimitive.ItemIndicator>\n <MenuPrimitive.ItemText>{local.children}</MenuPrimitive.ItemText>\n </MenuPrimitive.RadioItem>\n );\n};\nexport const MenuComboboxShortcut: Component<ComponentProps<'span'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <span class={cn('text-xs tracking-widest ml-auto opacity-60', local.class)} {...others} />;\n};\n\nexport type MenuComboboxEmptyProps = ComponentProps<'div'> & { searchValue?: string };\nexport const MenuComboboxEmpty: Component<MenuComboboxEmptyProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'searchValue']);\n return (\n <div\n data-slot='menu-combobox-empty'\n class={cn('py-6 text-sm text-center text-muted-foreground', local.class)}\n {...others}\n >\n No results found.\n </div>\n );\n};\nexport type {\n MenuComboboxCheckboxItemData,\n MenuComboboxItemData,\n MenuComboboxItemGroupData,\n MenuComboboxRadioItemGroupData,\n MenuComboboxRadioItemData,\n MenuComboboxSeparatorData,\n MenuComboboxGroupedListProps,\n MenuComboboxListProps,\n} from './MenuComboboxList';\nexport { MenuComboboxGroupedList, MenuComboboxList } from './MenuComboboxList';\n"],"names":["MenuCombobox","MenuPrimitive","Root","MenuComboboxTrigger","Trigger","MenuComboboxContext","Context","MenuComboboxItemGroup","ItemGroup","MenuComboboxItemText","ItemText","MenuComboboxRadioItemGroup","RadioItemGroup","MenuComboboxPositioner","props","local","others","splitProps","_$createComponent","Positioner","_$mergeProps","cn","class","MenuComboboxContent","Content","MenuComboboxSearchInput","handleInput","inputEvent","onValueChange","currentTarget","value","_el$","_tmpl$","_el$2","firstChild","_$insert","SearchIcon","$$input","_$spread","MenuComboboxItem","Item","MenuComboboxTriggerItem","TriggerItem","children","_$memo","ChevronRightIcon","MenuComboboxItemGroupLabel","ItemGroupLabel","MenuComboboxSeparator","Separator","MenuComboboxItemIndicator","ItemIndicator","CheckIcon","MenuComboboxCheckboxItem","CheckboxItem","MenuComboboxRadioItem","RadioItem","_tmpl$2","MenuComboboxShortcut","_el$4","_tmpl$3","MenuComboboxEmpty","_el$5","_tmpl$4","_$delegateEvents"],"mappings":"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"}
@@ -1,42 +1,42 @@
1
1
  import { Component } from 'solid-js';
2
- export type MenuItemData = {
2
+ export type MenuComboboxItemData = {
3
3
  value: string;
4
4
  label: string;
5
5
  disabled?: boolean;
6
6
  shortcut?: string;
7
7
  };
8
- export type MenuCheckboxItemData = {
8
+ export type MenuComboboxCheckboxItemData = {
9
9
  type: 'checkbox';
10
10
  value: string;
11
11
  label: string;
12
12
  checked?: boolean;
13
13
  disabled?: boolean;
14
14
  };
15
- export type MenuRadioItemData = {
15
+ export type MenuComboboxRadioItemData = {
16
16
  type: 'radio';
17
17
  value: string;
18
18
  label: string;
19
19
  disabled?: boolean;
20
20
  };
21
- export type MenuRadioGroupData = {
21
+ export type MenuComboboxRadioItemGroupData = {
22
22
  type: 'radio-group';
23
23
  value: string;
24
- items: MenuRadioItemData[];
24
+ items: MenuComboboxRadioItemData[];
25
25
  };
26
- export type MenuSeparatorData = {
26
+ export type MenuComboboxSeparatorData = {
27
27
  type: 'separator';
28
28
  };
29
- export type MenuItemGroupData = {
29
+ export type MenuComboboxItemGroupData = {
30
30
  label: string;
31
- items: (MenuItemData | MenuCheckboxItemData | MenuRadioGroupData | MenuSeparatorData)[];
31
+ items: (MenuComboboxItemData | MenuComboboxCheckboxItemData | MenuComboboxRadioItemGroupData | MenuComboboxSeparatorData)[];
32
32
  };
33
33
  export type MenuComboboxListProps = {
34
- items: MenuItemData[];
34
+ items: MenuComboboxItemData[];
35
35
  searchValue?: string;
36
36
  class?: string;
37
37
  };
38
38
  export type MenuComboboxGroupedListProps = {
39
- groups: MenuItemGroupData[];
39
+ groups: MenuComboboxItemGroupData[];
40
40
  searchValue?: string;
41
41
  class?: string;
42
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MenuComboboxList.js","sources":["../../src/components/MenuComboboxList.tsx"],"sourcesContent":["import { type Component, type JSXElement, For, createMemo, splitProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport {\n MenuComboboxCheckboxItem,\n MenuComboboxEmpty,\n MenuComboboxItem,\n MenuComboboxItemGroup,\n MenuComboboxItemGroupLabel,\n MenuComboboxRadioItem,\n MenuComboboxRadioItemGroup,\n MenuComboboxSeparator,\n MenuComboboxShortcut,\n} from '@/components/MenuCombobox';\n\nexport type MenuItemData = { value: string; label: string; disabled?: boolean; shortcut?: string };\nexport type MenuCheckboxItemData = {\n type: 'checkbox';\n value: string;\n label: string;\n checked?: boolean;\n disabled?: boolean;\n};\nexport type MenuRadioItemData = { type: 'radio'; value: string; label: string; disabled?: boolean };\nexport type MenuRadioGroupData = { type: 'radio-group'; value: string; items: MenuRadioItemData[] };\nexport type MenuSeparatorData = { type: 'separator' };\nexport type MenuItemGroupData = {\n label: string;\n items: (MenuItemData | MenuCheckboxItemData | MenuRadioGroupData | MenuSeparatorData)[];\n};\nexport type MenuComboboxListProps = { items: MenuItemData[]; searchValue?: string; class?: string };\nexport type MenuComboboxGroupedListProps = {\n groups: MenuItemGroupData[];\n searchValue?: string;\n class?: string;\n};\n\nconst hasShortcut = (shortcut?: string): boolean => typeof shortcut === 'string' && shortcut !== '';\nconst matchesSearch = (\n item: MenuItemData | MenuCheckboxItemData | MenuRadioItemData,\n search: string,\n): boolean =>\n item.label.toLowerCase().includes(search) || item.value.toLowerCase().includes(search);\n\nconst renderRadioItems = (items: MenuRadioItemData[]): JSXElement => (\n <For each={items}>\n {(radioItem) => (\n <MenuComboboxRadioItem value={radioItem.value} disabled={radioItem.disabled}>\n {radioItem.label}\n </MenuComboboxRadioItem>\n )}\n </For>\n);\n\nconst renderGroupedItem = (\n item: MenuItemData | MenuCheckboxItemData | MenuRadioGroupData | MenuSeparatorData,\n): JSXElement => {\n if (!('type' in item)) {\n return (\n <MenuComboboxItem value={item.value} disabled={item.disabled}>\n {item.label}\n {hasShortcut(item.shortcut) && <MenuComboboxShortcut>{item.shortcut}</MenuComboboxShortcut>}\n </MenuComboboxItem>\n );\n }\n if (item.type === 'separator') {\n return <MenuComboboxSeparator />;\n }\n if (item.type === 'checkbox') {\n return (\n <MenuComboboxCheckboxItem\n value={item.value}\n disabled={item.disabled}\n checked={item.checked ?? false}\n >\n {item.label}\n </MenuComboboxCheckboxItem>\n );\n }\n if (item.type === 'radio-group') {\n return (\n <MenuComboboxRadioItemGroup value={item.value}>\n {renderRadioItems(item.items)}\n </MenuComboboxRadioItemGroup>\n );\n }\n return <></>;\n};\n\ntype GroupFilterResult =\n | MenuItemData\n | MenuCheckboxItemData\n | MenuRadioGroupData\n | MenuSeparatorData;\n\nconst filterGroupItem = (\n item: MenuItemData | MenuCheckboxItemData | MenuRadioGroupData | MenuSeparatorData,\n search: string,\n): GroupFilterResult[] => {\n if (!('type' in item)) {\n return matchesSearch(item, search) ? [item] : [];\n }\n if (item.type === 'separator') {\n return [item];\n }\n if (item.type === 'checkbox') {\n return matchesSearch(item, search) ? [item] : [];\n }\n const filteredRadioItems = item.items.filter((radioItem) => matchesSearch(radioItem, search));\n return filteredRadioItems.length > 0 ? [{ ...item, items: filteredRadioItems }] : [];\n};\n\nconst GroupItems: Component<{ items: MenuItemGroupData['items'] }> = (props) => (\n <For each={props.items}>{(item) => renderGroupedItem(item)}</For>\n);\n\nconst GroupSection: Component<{ group: MenuItemGroupData; showSeparator: boolean }> = (props) => (\n <>\n {props.showSeparator && <MenuComboboxSeparator />}\n <MenuComboboxItemGroup>\n <MenuComboboxItemGroupLabel>{props.group.label}</MenuComboboxItemGroupLabel>\n <GroupItems items={props.group.items} />\n </MenuComboboxItemGroup>\n </>\n);\n\nexport const MenuComboboxList: Component<MenuComboboxListProps> = (props) => {\n const [local] = splitProps(props, ['items', 'searchValue', 'class']);\n const filteredItems = createMemo(() => {\n const search = (local.searchValue ?? '').toLowerCase().trim();\n return search === ''\n ? local.items\n : local.items.filter(\n (item) =>\n item.label.toLowerCase().includes(search) || item.value.toLowerCase().includes(search),\n );\n });\n const emptyProps = (): { searchValue: string } | Record<string, never> =>\n typeof local.searchValue === 'string' ? { searchValue: local.searchValue } : {};\n return (\n <div class={cn('p-1 max-h-64 overflow-y-auto', local.class)}>\n <For each={filteredItems()}>\n {(item) => (\n <MenuComboboxItem value={item.value} disabled={item.disabled}>\n {item.label}\n {hasShortcut(item.shortcut) && (\n <MenuComboboxShortcut>{item.shortcut}</MenuComboboxShortcut>\n )}\n </MenuComboboxItem>\n )}\n </For>\n {filteredItems().length === 0 && <MenuComboboxEmpty {...emptyProps()} />}\n </div>\n );\n};\n\nexport const MenuComboboxGroupedList: Component<MenuComboboxGroupedListProps> = (props) => {\n const [local] = splitProps(props, ['groups', 'searchValue', 'class']);\n const filteredGroups = createMemo(() => {\n const search = (local.searchValue ?? '').toLowerCase().trim();\n if (search === '') {\n return local.groups;\n }\n return local.groups\n .map((group) => {\n const filteredItems = group.items.flatMap((item) => filterGroupItem(item, search));\n if (filteredItems.length > 0) {\n return { ...group, items: filteredItems };\n }\n return false;\n })\n .filter((group): group is MenuItemGroupData => group !== false);\n });\n\n const emptyProps = (): { searchValue: string } | Record<string, never> =>\n typeof local.searchValue === 'string' ? { searchValue: local.searchValue } : {};\n return (\n <div class={cn('p-1 max-h-64 overflow-y-auto', local.class)}>\n <For each={filteredGroups()}>\n {(group, groupIndex) => <GroupSection group={group} showSeparator={groupIndex() > 0} />}\n </For>\n {filteredGroups().length === 0 && <MenuComboboxEmpty {...emptyProps()} />}\n </div>\n );\n};\n"],"names":["hasShortcut","shortcut","matchesSearch","item","search","label","toLowerCase","includes","value","renderRadioItems","items","_$createComponent","For","each","children","radioItem","MenuComboboxRadioItem","disabled","renderGroupedItem","type","MenuComboboxSeparator","MenuComboboxCheckboxItem","checked","MenuComboboxRadioItemGroup","MenuComboboxItem","_$memo","MenuComboboxShortcut","filterGroupItem","filteredRadioItems","filter","length","GroupItems","props","GroupSection","showSeparator","MenuComboboxItemGroup","MenuComboboxItemGroupLabel","group","MenuComboboxList","local","splitProps","filteredItems","createMemo","searchValue","trim","emptyProps","_el$","_tmpl$","_$insert","_c$","MenuComboboxEmpty","_$mergeProps","_$effect","_$className","cn","class","MenuComboboxGroupedList","filteredGroups","groups","map","flatMap","_el$2","groupIndex","_c$2"],"mappings":"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"}
1
+ {"version":3,"file":"MenuComboboxList.js","sources":["../../src/components/MenuComboboxList.tsx"],"sourcesContent":["import { type Component, type JSXElement, For, createMemo, splitProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport {\n MenuComboboxCheckboxItem,\n MenuComboboxEmpty,\n MenuComboboxItem,\n MenuComboboxItemGroup,\n MenuComboboxItemGroupLabel,\n MenuComboboxRadioItem,\n MenuComboboxRadioItemGroup,\n MenuComboboxSeparator,\n MenuComboboxShortcut,\n} from '@/components/MenuCombobox';\n\nexport type MenuComboboxItemData = {\n value: string;\n label: string;\n disabled?: boolean;\n shortcut?: string;\n};\nexport type MenuComboboxCheckboxItemData = {\n type: 'checkbox';\n value: string;\n label: string;\n checked?: boolean;\n disabled?: boolean;\n};\nexport type MenuComboboxRadioItemData = {\n type: 'radio';\n value: string;\n label: string;\n disabled?: boolean;\n};\nexport type MenuComboboxRadioItemGroupData = {\n type: 'radio-group';\n value: string;\n items: MenuComboboxRadioItemData[];\n};\nexport type MenuComboboxSeparatorData = { type: 'separator' };\nexport type MenuComboboxItemGroupData = {\n label: string;\n items: (\n | MenuComboboxItemData\n | MenuComboboxCheckboxItemData\n | MenuComboboxRadioItemGroupData\n | MenuComboboxSeparatorData\n )[];\n};\n\nexport type MenuComboboxListProps = {\n items: MenuComboboxItemData[];\n searchValue?: string;\n class?: string;\n};\nexport type MenuComboboxGroupedListProps = {\n groups: MenuComboboxItemGroupData[];\n searchValue?: string;\n class?: string;\n};\n\nconst hasShortcut = (shortcut?: string): boolean => typeof shortcut === 'string' && shortcut !== '';\nconst matchesSearch = (\n item: MenuComboboxItemData | MenuComboboxCheckboxItemData | MenuComboboxRadioItemData,\n search: string,\n): boolean =>\n item.label.toLowerCase().includes(search) || item.value.toLowerCase().includes(search);\n\nconst renderRadioItems = (items: MenuComboboxRadioItemData[]): JSXElement => (\n <For each={items}>\n {(radioItem) => (\n <MenuComboboxRadioItem value={radioItem.value} disabled={radioItem.disabled}>\n {radioItem.label}\n </MenuComboboxRadioItem>\n )}\n </For>\n);\n\nconst renderGroupedItem = (\n item:\n | MenuComboboxItemData\n | MenuComboboxCheckboxItemData\n | MenuComboboxRadioItemGroupData\n | MenuComboboxSeparatorData,\n): JSXElement => {\n if (!('type' in item)) {\n return (\n <MenuComboboxItem value={item.value} disabled={item.disabled}>\n {item.label}\n {hasShortcut(item.shortcut) && <MenuComboboxShortcut>{item.shortcut}</MenuComboboxShortcut>}\n </MenuComboboxItem>\n );\n }\n if (item.type === 'separator') {\n return <MenuComboboxSeparator />;\n }\n if (item.type === 'checkbox') {\n return (\n <MenuComboboxCheckboxItem\n value={item.value}\n disabled={item.disabled}\n checked={item.checked ?? false}\n >\n {item.label}\n </MenuComboboxCheckboxItem>\n );\n }\n if (item.type === 'radio-group') {\n return (\n <MenuComboboxRadioItemGroup value={item.value}>\n {renderRadioItems(item.items)}\n </MenuComboboxRadioItemGroup>\n );\n }\n return <></>;\n};\n\ntype GroupFilterResult =\n | MenuComboboxItemData\n | MenuComboboxCheckboxItemData\n | MenuComboboxRadioItemGroupData\n | MenuComboboxSeparatorData;\n\nconst filterGroupItem = (\n item:\n | MenuComboboxItemData\n | MenuComboboxCheckboxItemData\n | MenuComboboxRadioItemGroupData\n | MenuComboboxSeparatorData,\n search: string,\n): GroupFilterResult[] => {\n if (!('type' in item)) {\n return matchesSearch(item, search) ? [item] : [];\n }\n if (item.type === 'separator') {\n return [item];\n }\n if (item.type === 'checkbox') {\n return matchesSearch(item, search) ? [item] : [];\n }\n const filteredRadioItems = item.items.filter((radioItem) => matchesSearch(radioItem, search));\n return filteredRadioItems.length > 0 ? [{ ...item, items: filteredRadioItems }] : [];\n};\n\nconst GroupItems: Component<{ items: MenuComboboxItemGroupData['items'] }> = (props) => (\n <For each={props.items}>{(item) => renderGroupedItem(item)}</For>\n);\n\nconst GroupSection: Component<{ group: MenuComboboxItemGroupData; showSeparator: boolean }> = (\n props,\n) => (\n <>\n {props.showSeparator && <MenuComboboxSeparator />}\n <MenuComboboxItemGroup>\n <MenuComboboxItemGroupLabel>{props.group.label}</MenuComboboxItemGroupLabel>\n <GroupItems items={props.group.items} />\n </MenuComboboxItemGroup>\n </>\n);\n\nexport const MenuComboboxList: Component<MenuComboboxListProps> = (props) => {\n const [local] = splitProps(props, ['items', 'searchValue', 'class']);\n const filteredItems = createMemo(() => {\n const search = (local.searchValue ?? '').toLowerCase().trim();\n return search === ''\n ? local.items\n : local.items.filter(\n (item) =>\n item.label.toLowerCase().includes(search) || item.value.toLowerCase().includes(search),\n );\n });\n const emptyProps = (): { searchValue: string } | Record<string, never> =>\n typeof local.searchValue === 'string' ? { searchValue: local.searchValue } : {};\n return (\n <div class={cn('p-1 max-h-64 overflow-y-auto', local.class)}>\n <For each={filteredItems()}>\n {(item) => (\n <MenuComboboxItem value={item.value} disabled={item.disabled}>\n {item.label}\n {hasShortcut(item.shortcut) && (\n <MenuComboboxShortcut>{item.shortcut}</MenuComboboxShortcut>\n )}\n </MenuComboboxItem>\n )}\n </For>\n {filteredItems().length === 0 && <MenuComboboxEmpty {...emptyProps()} />}\n </div>\n );\n};\n\nexport const MenuComboboxGroupedList: Component<MenuComboboxGroupedListProps> = (props) => {\n const [local] = splitProps(props, ['groups', 'searchValue', 'class']);\n const filteredGroups = createMemo(() => {\n const search = (local.searchValue ?? '').toLowerCase().trim();\n if (search === '') {\n return local.groups;\n }\n return local.groups\n .map((group) => {\n const filteredItems = group.items.flatMap((item) => filterGroupItem(item, search));\n if (filteredItems.length > 0) {\n return { ...group, items: filteredItems };\n }\n return false;\n })\n .filter((group): group is MenuComboboxItemGroupData => group !== false);\n });\n\n const emptyProps = (): { searchValue: string } | Record<string, never> =>\n typeof local.searchValue === 'string' ? { searchValue: local.searchValue } : {};\n return (\n <div class={cn('p-1 max-h-64 overflow-y-auto', local.class)}>\n <For each={filteredGroups()}>\n {(group, groupIndex) => <GroupSection group={group} showSeparator={groupIndex() > 0} />}\n </For>\n {filteredGroups().length === 0 && <MenuComboboxEmpty {...emptyProps()} />}\n </div>\n );\n};\n"],"names":["hasShortcut","shortcut","matchesSearch","item","search","label","toLowerCase","includes","value","renderRadioItems","items","_$createComponent","For","each","children","radioItem","MenuComboboxRadioItem","disabled","renderGroupedItem","type","MenuComboboxSeparator","MenuComboboxCheckboxItem","checked","MenuComboboxRadioItemGroup","MenuComboboxItem","_$memo","MenuComboboxShortcut","filterGroupItem","filteredRadioItems","filter","length","GroupItems","props","GroupSection","showSeparator","MenuComboboxItemGroup","MenuComboboxItemGroupLabel","group","MenuComboboxList","local","splitProps","filteredItems","createMemo","searchValue","trim","emptyProps","_el$","_tmpl$","_$insert","_c$","MenuComboboxEmpty","_$mergeProps","_$effect","_$className","cn","class","MenuComboboxGroupedList","filteredGroups","groups","map","flatMap","_el$2","groupIndex","_c$2"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Component } from 'solid-js';
2
+ export type AutoSubmitProps = {
3
+ debounce?: number;
4
+ };
5
+ export declare const AutoSubmit: Component<AutoSubmitProps>;
@@ -0,0 +1,21 @@
1
+ import { createEffect as n, onCleanup as s } from "solid-js";
2
+ import { useFormContext as m } from "./context.js";
3
+ const i = 300, h = (o) => {
4
+ const t = m(), r = t.useStore((e) => e.values), u = t.useStore((e) => e.isTouched);
5
+ return n(() => {
6
+ if (r(), !u())
7
+ return;
8
+ const e = setTimeout(() => {
9
+ t.handleSubmit().catch((c) => {
10
+ throw c;
11
+ });
12
+ }, Math.max(0, o.debounce ?? i));
13
+ s(() => {
14
+ clearTimeout(e);
15
+ });
16
+ }), [];
17
+ };
18
+ export {
19
+ h as AutoSubmit
20
+ };
21
+ //# sourceMappingURL=AutoSubmit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoSubmit.js","sources":["../../../src/components/form/AutoSubmit.tsx"],"sourcesContent":["import { createEffect, onCleanup, type Component } from 'solid-js';\n\nimport { useFormContext } from './context';\n\nconst DEFAULT_DEBOUNCE_MS = 300;\n\nexport type AutoSubmitProps = {\n debounce?: number;\n};\n\nexport const AutoSubmit: Component<AutoSubmitProps> = (props) => {\n const form = useFormContext();\n const values = form.useStore((state) => state.values);\n const isTouched = form.useStore((state) => state.isTouched);\n\n createEffect(() => {\n values();\n\n if (!isTouched()) {\n return;\n }\n\n const debounceTimer = setTimeout(\n () => {\n form.handleSubmit().catch((error: unknown) => {\n throw error;\n });\n },\n Math.max(0, props.debounce ?? DEFAULT_DEBOUNCE_MS),\n );\n\n onCleanup(() => {\n clearTimeout(debounceTimer);\n });\n });\n\n return <></>;\n};\n"],"names":["DEFAULT_DEBOUNCE_MS","AutoSubmit","props","form","useFormContext","values","useStore","state","isTouched","createEffect","debounceTimer","setTimeout","handleSubmit","catch","error","Math","max","debounce","onCleanup","clearTimeout"],"mappings":";;AAIA,MAAMA,IAAsB,KAMfC,IAA0CC,CAAAA,MAAU;AAC/D,QAAMC,IAAOC,EAAAA,GACPC,IAASF,EAAKG,SAAUC,CAAAA,MAAUA,EAAMF,MAAM,GAC9CG,IAAYL,EAAKG,SAAUC,CAAAA,MAAUA,EAAMC,SAAS;AAE1DC,SAAAA,EAAa,MAAM;AAGjB,QAFAJ,EAAAA,GAEI,CAACG;AACH;AAGF,UAAME,IAAgBC,WACpB,MAAM;AACJR,MAAAA,EAAKS,aAAAA,EAAeC,MAAM,CAACC,MAAmB;AAC5C,cAAMA;AAAAA,MACR,CAAC;AAAA,IACH,GACAC,KAAKC,IAAI,GAAGd,EAAMe,YAAYjB,CAAmB,CACnD;AAEAkB,IAAAA,EAAU,MAAM;AACdC,mBAAaT,CAAa;AAAA,IAC5B,CAAC;AAAA,EACH,CAAC,GAED,CAAA;AACF;"}