@manafishrov/ui 1.3.7 → 1.3.8

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.
@@ -89,7 +89,7 @@ const F = r.Control, M = r.ItemContext, N = r.HiddenSelect, O = (t) => {
89
89
  "data-slot": "select-trigger",
90
90
  "data-size": a,
91
91
  get class() {
92
- return n('px-2.5 text-sm *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*="size-"])]:size-4 gap-1.5 min-w-0 shadow-xs flex w-full items-center justify-between rounded-lg border border-input bg-transparent whitespace-nowrap transition-[color,box-shadow] outline-none select-none disabled:cursor-not-allowed disabled:opacity-50 data-placeholder-shown:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center dark:bg-input/30 dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*="size-"])]:text-muted-foreground', "data-[size=default]:h-10 data-[size=sm]:h-8 data-[size=sm]:rounded-[min(var(--radius-md),10px)]", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[focus-visible]:border-ring data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/50", "data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 dark:data-[invalid=true]:ring-destructive/40", "data-[disabled=true]:bg-input/50 data-[disabled=true]:opacity-50 dark:data-[disabled=true]:bg-input/80", "data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 data-[readonly=true]:data-[focus-visible]:border-input data-[readonly=true]:data-[focus-visible]:ring-0", e.class);
92
+ return n('px-2.5 text-sm *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*="size-"])]:size-4 gap-1.5 min-w-0 shadow-xs flex w-full items-center justify-between rounded-lg border border-input bg-transparent whitespace-nowrap transition-[color,box-shadow] outline-none select-none disabled:cursor-not-allowed disabled:opacity-50 data-placeholder-shown:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center dark:bg-input/30 dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*="size-"])]:text-muted-foreground', "data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)]", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[focus-visible]:border-ring data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/50", "data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 dark:data-[invalid=true]:ring-destructive/40", "data-[disabled=true]:bg-input/50 data-[disabled=true]:opacity-50 dark:data-[disabled=true]:bg-input/80", "data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 data-[readonly=true]:data-[focus-visible]:border-input data-[readonly=true]:data-[focus-visible]:ring-0", e.class);
93
93
  }
94
94
  }, s));
95
95
  }, X = (t) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@ark-ui/solid/select';\nimport {\n type Component,\n type ComponentProps,\n type JSX,\n type JSXElement,\n For,\n splitProps,\n} from 'solid-js';\nimport { cn } from 'tailwind-variants';\nimport CheckIcon from '~icons/material-symbols/check';\nimport CloseIcon from '~icons/material-symbols/close';\nimport ExpandMoreIcon from '~icons/material-symbols/expand-more';\n\nexport const SelectControl = SelectPrimitive.Control;\nexport const SelectItemContext = SelectPrimitive.ItemContext;\nexport const SelectHiddenSelect = SelectPrimitive.HiddenSelect;\nexport const SelectList: Component<SelectPrimitive.ListProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.List\n data-slot='select-list'\n class={cn('p-1 max-h-[min(var(--available-height),300px)] overflow-y-auto', local.class)}\n {...others}\n />\n );\n};\nexport const SelectContext = SelectPrimitive.Context;\n\ntype SelectComponent = (<TItem extends { value: string; label: string }>(\n props: SelectPrimitive.RootProps<TItem> & { class?: string },\n) => JSXElement) & {\n Tabs: <TItem extends { value: string; label: string }>(\n props: SelectTabsProps<TItem>,\n ) => JSXElement;\n};\n\nexport type SelectTabsTab<TItem extends { value: string; label: string }> = {\n value: TItem['value'];\n label: string;\n disabled?: boolean;\n};\n\nexport type SelectTabsProps<TItem extends { value: string; label: string }> =\n ComponentProps<'div'> & {\n items: SelectTabsTab<TItem>[];\n value?: TItem['value'];\n onValueChange?: (value: TItem['value']) => void;\n };\n\nconst SelectTabs = <TItem extends { value: string; label: string }>(\n props: SelectTabsProps<TItem>,\n): JSXElement => {\n const [local, others] = splitProps(props, ['class', 'items', 'value', 'onValueChange']);\n return (\n <div\n role='tablist'\n data-slot='select-tabs'\n class={cn('gap-1 p-1 inline-flex rounded-md bg-muted', local.class)}\n {...others}\n >\n <For each={local.items}>\n {(tab) => {\n const isActive = (): boolean => local.value === tab.value;\n return (\n <button\n type='button'\n role='tab'\n disabled={tab.disabled === true}\n aria-selected={isActive()}\n data-state={isActive() ? 'active' : 'inactive'}\n class={cn(\n 'h-8 px-3 text-sm rounded-sm transition-colors',\n 'data-[state=active]:shadow-sm data-[state=active]:bg-background data-[state=active]:text-foreground',\n 'data-[state=inactive]:text-muted-foreground hover:data-[state=inactive]:text-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n )}\n onClick={() => {\n if (typeof local.onValueChange === 'function' && tab.disabled !== true) {\n local.onValueChange(tab.value);\n }\n }}\n >\n {tab.label}\n </button>\n );\n }}\n </For>\n </div>\n );\n};\n\nconst SelectRoot = <TItem extends { value: string; label: string }>(\n props: SelectPrimitive.RootProps<TItem> & { class?: string },\n): JSXElement => {\n const [local, others] = splitProps(props, ['class', 'positioning']);\n\n const positioning: NonNullable<SelectPrimitive.RootProps<TItem>['positioning']> = {\n placement: 'bottom-start',\n gutter: 4,\n sameWidth: true,\n ...local.positioning,\n };\n\n return (\n <SelectPrimitive.Root\n class={cn('flex w-full flex-col', local.class)}\n positioning={positioning}\n {...others}\n />\n );\n};\n\nexport const Select: SelectComponent = Object.assign(SelectRoot, {\n Tabs: SelectTabs as SelectComponent['Tabs'],\n});\n\nexport const SelectLabel: Component<SelectPrimitive.LabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.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};\n\nexport const SelectGroup: Component<SelectPrimitive.ItemGroupProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.ItemGroup\n data-slot='select-group'\n class={cn('scroll-my-1', local.class)}\n {...others}\n />\n );\n};\n\nexport const SelectValue: Component<SelectPrimitive.ValueTextProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.ValueText\n data-slot='select-value'\n class={cn('flex flex-1 text-left', local.class)}\n {...others}\n />\n );\n};\n\nexport const SelectTrigger: Component<\n SelectPrimitive.TriggerProps & { size?: 'sm' | 'default' }\n> = (props) => {\n const [local, others] = splitProps(props, ['class', 'size']);\n const size = local.size ?? 'default';\n\n return (\n <SelectPrimitive.Trigger\n data-slot='select-trigger'\n data-size={size}\n class={cn(\n 'px-2.5 text-sm *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*=\"size-\"])]:size-4 gap-1.5 min-w-0 shadow-xs flex w-full items-center justify-between rounded-lg border border-input bg-transparent whitespace-nowrap transition-[color,box-shadow] outline-none select-none disabled:cursor-not-allowed disabled:opacity-50 data-placeholder-shown:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center dark:bg-input/30 dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:text-muted-foreground',\n 'data-[size=default]:h-10 data-[size=sm]:h-8 data-[size=sm]:rounded-[min(var(--radius-md),10px)]',\n 'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[focus-visible]:border-ring data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/50',\n 'data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 dark:data-[invalid=true]:ring-destructive/40',\n 'data-[disabled=true]:bg-input/50 data-[disabled=true]:opacity-50 dark:data-[disabled=true]:bg-input/80',\n 'data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 data-[readonly=true]:data-[focus-visible]:border-input data-[readonly=true]:data-[focus-visible]:ring-0',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const SelectIndicator: Component<SelectPrimitive.IndicatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <SelectPrimitive.Indicator\n class={cn('opacity-50 transition-transform data-[state=open]:rotate-180', local.class)}\n {...others}\n >\n {local.children ?? <ExpandMoreIcon class='size-4' />}\n </SelectPrimitive.Indicator>\n );\n};\n\nconst callEventHandler = <\n TElement,\n THandlerEvent extends Event,\n TEvent extends THandlerEvent & { currentTarget: TElement; target: Element },\n>(\n handler: JSX.EventHandlerUnion<TElement, THandlerEvent> | undefined,\n event: TEvent,\n): void => {\n if (typeof handler === 'function') {\n handler(event);\n return;\n }\n if (Array.isArray(handler)) {\n const [boundHandler, boundData] = handler;\n boundHandler(boundData, event);\n }\n};\n\nexport const SelectClearTrigger: Component<SelectPrimitive.ClearTriggerProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'class',\n 'children',\n 'tabIndex',\n 'onClick',\n 'onKeyDown',\n ]);\n return (\n <SelectPrimitive.ClearTrigger\n class={cn(\n 'p-0.5 rounded-[4px] text-muted-foreground transition-colors hover:text-foreground focus-visible:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none',\n local.class,\n )}\n onClick={(event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => {\n event.stopPropagation();\n callEventHandler(local.onClick, event);\n }}\n onKeyDown={(event: KeyboardEvent & { currentTarget: HTMLButtonElement; target: Element }) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n callEventHandler(local.onKeyDown, event);\n }}\n {...others}\n tabIndex={local.tabIndex ?? 0}\n >\n {local.children ?? <CloseIcon class='size-3.5' />}\n </SelectPrimitive.ClearTrigger>\n );\n};\n\nexport const SelectPositioner: Component<SelectPrimitive.PositionerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <SelectPrimitive.Positioner class={cn('isolate z-50', local.class)} {...others} />;\n};\n\nexport const SelectContent: Component<SelectPrimitive.ContentProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.Content\n data-slot='select-content'\n class={cn(\n 'shadow-md relative isolate z-50 max-h-(--available-height) w-(--reference-width) min-w-[8rem] origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-input bg-popover text-popover-foreground duration-100 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 'outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[focus-visible]:border-ring data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/50',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const SelectItemGroupLabel: Component<SelectPrimitive.ItemGroupLabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.ItemGroupLabel\n data-slot='select-group-label'\n class={cn('px-1.5 py-1 text-xs text-muted-foreground', local.class)}\n {...others}\n />\n );\n};\n\nexport const SelectItem: Component<SelectPrimitive.ItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <SelectPrimitive.Item\n data-slot='select-item'\n class={cn(\n \"gap-2 py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 relative flex w-full cursor-default items-center rounded-sm outline-hidden select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center\",\n local.class,\n )}\n {...others}\n >\n <SelectPrimitive.ItemText class='gap-2 flex flex-1 shrink-0 whitespace-nowrap'>\n {local.children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator class='right-2 size-4 pointer-events-none absolute flex items-center justify-center'>\n <CheckIcon class='pointer-events-none' />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n};\n\nexport const SelectSeparator: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='select-separator'\n class={cn('-mx-1 my-1 pointer-events-none h-px bg-border', local.class)}\n {...others}\n />\n );\n};\n"],"names":["SelectControl","SelectPrimitive","Control","SelectItemContext","ItemContext","SelectHiddenSelect","HiddenSelect","SelectList","props","local","others","splitProps","_$createComponent","List","_$mergeProps","cn","class","SelectContext","Context","SelectTabs","_el$","_tmpl$","_$spread","_$insert","For","each","items","children","tab","isActive","value","_el$2","_tmpl$2","$$click","onValueChange","disabled","label","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","t","_$setAttribute","a","o","_$className","undefined","SelectRoot","positioning","placement","gutter","sameWidth","Root","Select","Object","assign","Tabs","SelectLabel","Label","SelectGroup","ItemGroup","SelectValue","ValueText","SelectTrigger","size","Trigger","SelectIndicator","Indicator","ExpandMoreIcon","callEventHandler","handler","event","Array","isArray","boundHandler","boundData","SelectClearTrigger","ClearTrigger","onClick","stopPropagation","onKeyDown","key","tabIndex","CloseIcon","SelectPositioner","Positioner","SelectContent","Content","SelectItemGroupLabel","ItemGroupLabel","SelectItem","Item","ItemText","ItemIndicator","CheckIcon","SelectSeparator","_el$3","_tmpl$3","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from '@ark-ui/solid/select';\nimport {\n type Component,\n type ComponentProps,\n type JSX,\n type JSXElement,\n For,\n splitProps,\n} from 'solid-js';\nimport { cn } from 'tailwind-variants';\nimport CheckIcon from '~icons/material-symbols/check';\nimport CloseIcon from '~icons/material-symbols/close';\nimport ExpandMoreIcon from '~icons/material-symbols/expand-more';\n\nexport const SelectControl = SelectPrimitive.Control;\nexport const SelectItemContext = SelectPrimitive.ItemContext;\nexport const SelectHiddenSelect = SelectPrimitive.HiddenSelect;\nexport const SelectList: Component<SelectPrimitive.ListProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.List\n data-slot='select-list'\n class={cn('p-1 max-h-[min(var(--available-height),300px)] overflow-y-auto', local.class)}\n {...others}\n />\n );\n};\nexport const SelectContext = SelectPrimitive.Context;\n\ntype SelectComponent = (<TItem extends { value: string; label: string }>(\n props: SelectPrimitive.RootProps<TItem> & { class?: string },\n) => JSXElement) & {\n Tabs: <TItem extends { value: string; label: string }>(\n props: SelectTabsProps<TItem>,\n ) => JSXElement;\n};\n\nexport type SelectTabsTab<TItem extends { value: string; label: string }> = {\n value: TItem['value'];\n label: string;\n disabled?: boolean;\n};\n\nexport type SelectTabsProps<TItem extends { value: string; label: string }> =\n ComponentProps<'div'> & {\n items: SelectTabsTab<TItem>[];\n value?: TItem['value'];\n onValueChange?: (value: TItem['value']) => void;\n };\n\nconst SelectTabs = <TItem extends { value: string; label: string }>(\n props: SelectTabsProps<TItem>,\n): JSXElement => {\n const [local, others] = splitProps(props, ['class', 'items', 'value', 'onValueChange']);\n return (\n <div\n role='tablist'\n data-slot='select-tabs'\n class={cn('gap-1 p-1 inline-flex rounded-md bg-muted', local.class)}\n {...others}\n >\n <For each={local.items}>\n {(tab) => {\n const isActive = (): boolean => local.value === tab.value;\n return (\n <button\n type='button'\n role='tab'\n disabled={tab.disabled === true}\n aria-selected={isActive()}\n data-state={isActive() ? 'active' : 'inactive'}\n class={cn(\n 'h-8 px-3 text-sm rounded-sm transition-colors',\n 'data-[state=active]:shadow-sm data-[state=active]:bg-background data-[state=active]:text-foreground',\n 'data-[state=inactive]:text-muted-foreground hover:data-[state=inactive]:text-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n )}\n onClick={() => {\n if (typeof local.onValueChange === 'function' && tab.disabled !== true) {\n local.onValueChange(tab.value);\n }\n }}\n >\n {tab.label}\n </button>\n );\n }}\n </For>\n </div>\n );\n};\n\nconst SelectRoot = <TItem extends { value: string; label: string }>(\n props: SelectPrimitive.RootProps<TItem> & { class?: string },\n): JSXElement => {\n const [local, others] = splitProps(props, ['class', 'positioning']);\n\n const positioning: NonNullable<SelectPrimitive.RootProps<TItem>['positioning']> = {\n placement: 'bottom-start',\n gutter: 4,\n sameWidth: true,\n ...local.positioning,\n };\n\n return (\n <SelectPrimitive.Root\n class={cn('flex w-full flex-col', local.class)}\n positioning={positioning}\n {...others}\n />\n );\n};\n\nexport const Select: SelectComponent = Object.assign(SelectRoot, {\n Tabs: SelectTabs as SelectComponent['Tabs'],\n});\n\nexport const SelectLabel: Component<SelectPrimitive.LabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.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};\n\nexport const SelectGroup: Component<SelectPrimitive.ItemGroupProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.ItemGroup\n data-slot='select-group'\n class={cn('scroll-my-1', local.class)}\n {...others}\n />\n );\n};\n\nexport const SelectValue: Component<SelectPrimitive.ValueTextProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.ValueText\n data-slot='select-value'\n class={cn('flex flex-1 text-left', local.class)}\n {...others}\n />\n );\n};\n\nexport const SelectTrigger: Component<\n SelectPrimitive.TriggerProps & { size?: 'sm' | 'default' }\n> = (props) => {\n const [local, others] = splitProps(props, ['class', 'size']);\n const size = local.size ?? 'default';\n\n return (\n <SelectPrimitive.Trigger\n data-slot='select-trigger'\n data-size={size}\n class={cn(\n 'px-2.5 text-sm *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*=\"size-\"])]:size-4 gap-1.5 min-w-0 shadow-xs flex w-full items-center justify-between rounded-lg border border-input bg-transparent whitespace-nowrap transition-[color,box-shadow] outline-none select-none disabled:cursor-not-allowed disabled:opacity-50 data-placeholder-shown:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center dark:bg-input/30 dark:hover:bg-input/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:text-muted-foreground',\n 'data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)]',\n 'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[focus-visible]:border-ring data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/50',\n 'data-[invalid=true]:border-destructive data-[invalid=true]:ring-[3px] data-[invalid=true]:ring-destructive/20 dark:data-[invalid=true]:ring-destructive/40',\n 'data-[disabled=true]:bg-input/50 data-[disabled=true]:opacity-50 dark:data-[disabled=true]:bg-input/80',\n 'data-[readonly=true]:cursor-default data-[readonly=true]:focus-visible:border-input data-[readonly=true]:focus-visible:ring-0 data-[readonly=true]:data-[focus-visible]:border-input data-[readonly=true]:data-[focus-visible]:ring-0',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const SelectIndicator: Component<SelectPrimitive.IndicatorProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <SelectPrimitive.Indicator\n class={cn('opacity-50 transition-transform data-[state=open]:rotate-180', local.class)}\n {...others}\n >\n {local.children ?? <ExpandMoreIcon class='size-4' />}\n </SelectPrimitive.Indicator>\n );\n};\n\nconst callEventHandler = <\n TElement,\n THandlerEvent extends Event,\n TEvent extends THandlerEvent & { currentTarget: TElement; target: Element },\n>(\n handler: JSX.EventHandlerUnion<TElement, THandlerEvent> | undefined,\n event: TEvent,\n): void => {\n if (typeof handler === 'function') {\n handler(event);\n return;\n }\n if (Array.isArray(handler)) {\n const [boundHandler, boundData] = handler;\n boundHandler(boundData, event);\n }\n};\n\nexport const SelectClearTrigger: Component<SelectPrimitive.ClearTriggerProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'class',\n 'children',\n 'tabIndex',\n 'onClick',\n 'onKeyDown',\n ]);\n return (\n <SelectPrimitive.ClearTrigger\n class={cn(\n 'p-0.5 rounded-[4px] text-muted-foreground transition-colors hover:text-foreground focus-visible:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none',\n local.class,\n )}\n onClick={(event: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => {\n event.stopPropagation();\n callEventHandler(local.onClick, event);\n }}\n onKeyDown={(event: KeyboardEvent & { currentTarget: HTMLButtonElement; target: Element }) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n callEventHandler(local.onKeyDown, event);\n }}\n {...others}\n tabIndex={local.tabIndex ?? 0}\n >\n {local.children ?? <CloseIcon class='size-3.5' />}\n </SelectPrimitive.ClearTrigger>\n );\n};\n\nexport const SelectPositioner: Component<SelectPrimitive.PositionerProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return <SelectPrimitive.Positioner class={cn('isolate z-50', local.class)} {...others} />;\n};\n\nexport const SelectContent: Component<SelectPrimitive.ContentProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.Content\n data-slot='select-content'\n class={cn(\n 'shadow-md relative isolate z-50 max-h-(--available-height) w-(--reference-width) min-w-[8rem] origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-input bg-popover text-popover-foreground duration-100 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 'outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[focus-visible]:border-ring data-[focus-visible]:ring-[3px] data-[focus-visible]:ring-ring/50',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nexport const SelectItemGroupLabel: Component<SelectPrimitive.ItemGroupLabelProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <SelectPrimitive.ItemGroupLabel\n data-slot='select-group-label'\n class={cn('px-1.5 py-1 text-xs text-muted-foreground', local.class)}\n {...others}\n />\n );\n};\n\nexport const SelectItem: Component<SelectPrimitive.ItemProps> = (props) => {\n const [local, others] = splitProps(props, ['class', 'children']);\n return (\n <SelectPrimitive.Item\n data-slot='select-item'\n class={cn(\n \"gap-2 py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 relative flex w-full cursor-default items-center rounded-sm outline-hidden select-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center\",\n local.class,\n )}\n {...others}\n >\n <SelectPrimitive.ItemText class='gap-2 flex flex-1 shrink-0 whitespace-nowrap'>\n {local.children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator class='right-2 size-4 pointer-events-none absolute flex items-center justify-center'>\n <CheckIcon class='pointer-events-none' />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n};\n\nexport const SelectSeparator: Component<ComponentProps<'div'>> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='select-separator'\n class={cn('-mx-1 my-1 pointer-events-none h-px bg-border', local.class)}\n {...others}\n />\n );\n};\n"],"names":["SelectControl","SelectPrimitive","Control","SelectItemContext","ItemContext","SelectHiddenSelect","HiddenSelect","SelectList","props","local","others","splitProps","_$createComponent","List","_$mergeProps","cn","class","SelectContext","Context","SelectTabs","_el$","_tmpl$","_$spread","_$insert","For","each","items","children","tab","isActive","value","_el$2","_tmpl$2","$$click","onValueChange","disabled","label","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","t","_$setAttribute","a","o","_$className","undefined","SelectRoot","positioning","placement","gutter","sameWidth","Root","Select","Object","assign","Tabs","SelectLabel","Label","SelectGroup","ItemGroup","SelectValue","ValueText","SelectTrigger","size","Trigger","SelectIndicator","Indicator","ExpandMoreIcon","callEventHandler","handler","event","Array","isArray","boundHandler","boundData","SelectClearTrigger","ClearTrigger","onClick","stopPropagation","onKeyDown","key","tabIndex","CloseIcon","SelectPositioner","Positioner","SelectContent","Content","SelectItemGroupLabel","ItemGroupLabel","SelectItem","Item","ItemText","ItemIndicator","CheckIcon","SelectSeparator","_el$3","_tmpl$3","_$delegateEvents"],"mappings":"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"}
@@ -4,6 +4,7 @@ export type SelectFieldProps = ComponentProps<typeof Select> & {
4
4
  label?: string;
5
5
  description?: string;
6
6
  placeholder?: string;
7
+ showSelectIndicator?: boolean;
7
8
  trailingAddon?: JSXElement;
8
9
  };
9
10
  export declare const SelectField: Component<SelectFieldProps>;
@@ -1,32 +1,39 @@
1
- import { createComponent as e, mergeProps as i } from "solid-js/web";
2
- import { Field as o, FieldLabel as a, FieldContent as c, FieldError as u, FieldDescription as g } from "../Field.js";
3
- import { Select as s, SelectControl as h, SelectTrigger as p, SelectValue as m, SelectPositioner as f, SelectContent as b } from "../Select.js";
4
- import { useFieldContext as S } from "./context.js";
5
- import { WithTrailingAddon as C } from "./WithTrailingAddon.js";
6
- import { splitProps as F } from "solid-js";
7
- const v = (l) => [e(h, {
1
+ import { createComponent as e, mergeProps as i, Show as o } from "solid-js/web";
2
+ import { Field as a, FieldLabel as c, FieldContent as u, FieldError as g, FieldDescription as s } from "../Field.js";
3
+ import { Select as h, SelectControl as m, SelectTrigger as p, SelectValue as S, SelectIndicator as f, SelectPositioner as b, SelectContent as C } from "../Select.js";
4
+ import { useFieldContext as F } from "./context.js";
5
+ import { WithTrailingAddon as I } from "./WithTrailingAddon.js";
6
+ import { splitProps as w } from "solid-js";
7
+ const O = (n) => [e(m, {
8
8
  get children() {
9
9
  return e(p, {
10
10
  get children() {
11
- return e(m, {
11
+ return [e(S, {
12
12
  get placeholder() {
13
- return l.placeholder;
13
+ return n.placeholder;
14
14
  }
15
- });
15
+ }), e(o, {
16
+ get when() {
17
+ return n.showSelectIndicator !== !1;
18
+ },
19
+ get children() {
20
+ return e(f, {});
21
+ }
22
+ })];
16
23
  }
17
24
  });
18
25
  }
19
- }), e(f, {
26
+ }), e(b, {
20
27
  get children() {
21
- return e(b, {
28
+ return e(C, {
22
29
  get children() {
23
- return l.children;
30
+ return n.children;
24
31
  }
25
32
  });
26
33
  }
27
- })], B = (l) => {
28
- const t = S(), [r, n] = F(l, ["label", "description", "required", "disabled", "readOnly", "placeholder", "children", "trailingAddon"]);
29
- return e(o, {
34
+ })], v = ["label", "description", "required", "disabled", "readOnly", "placeholder", "showSelectIndicator", "children", "trailingAddon"], T = (n) => {
35
+ const t = F(), [r, l] = w(n, v);
36
+ return e(a, {
30
37
  get invalid() {
31
38
  return t().state.meta.errors.length > 0;
32
39
  },
@@ -40,18 +47,18 @@ const v = (l) => [e(h, {
40
47
  return r.required ?? !1;
41
48
  },
42
49
  get children() {
43
- return [e(a, {
50
+ return [e(c, {
44
51
  get children() {
45
52
  return r.label;
46
53
  }
47
- }), e(c, {
54
+ }), e(u, {
48
55
  get children() {
49
- return [e(C, {
56
+ return [e(I, {
50
57
  get addon() {
51
58
  return r.trailingAddon;
52
59
  },
53
60
  get children() {
54
- return e(s, i({
61
+ return e(h, i({
55
62
  get value() {
56
63
  return t().state.value;
57
64
  },
@@ -70,12 +77,15 @@ const v = (l) => [e(h, {
70
77
  get readOnly() {
71
78
  return r.readOnly ?? !1;
72
79
  }
73
- }, n, {
80
+ }, l, {
74
81
  get children() {
75
- return e(v, {
82
+ return e(O, {
76
83
  get placeholder() {
77
84
  return r.placeholder ?? "";
78
85
  },
86
+ get showSelectIndicator() {
87
+ return r.showSelectIndicator;
88
+ },
79
89
  get children() {
80
90
  return r.children;
81
91
  }
@@ -83,11 +93,11 @@ const v = (l) => [e(h, {
83
93
  }
84
94
  }));
85
95
  }
86
- }), e(u, {
96
+ }), e(g, {
87
97
  get errors() {
88
98
  return t().state.meta.errors;
89
99
  }
90
- }), e(g, {
100
+ }), e(s, {
91
101
  get children() {
92
102
  return r.description;
93
103
  }
@@ -98,6 +108,6 @@ const v = (l) => [e(h, {
98
108
  });
99
109
  };
100
110
  export {
101
- B as SelectField
111
+ T as SelectField
102
112
  };
103
113
  //# sourceMappingURL=SelectField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectField.js","sources":["../../../src/components/form/SelectField.tsx"],"sourcesContent":["import type { Component, ComponentProps, JSX, JSXElement } from 'solid-js';\n\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\nimport {\n Select,\n SelectContent,\n SelectControl,\n SelectPositioner,\n SelectTrigger,\n SelectValue,\n} from '@/components/Select';\n\nimport { useFieldContext } from './context';\nimport { WithTrailingAddon } from './WithTrailingAddon';\n\nconst SelectInput: Component<{ placeholder: string; children: JSX.Element }> = (props) => (\n <>\n <SelectControl>\n <SelectTrigger>\n <SelectValue placeholder={props.placeholder} />\n </SelectTrigger>\n </SelectControl>\n <SelectPositioner>\n <SelectContent>{props.children}</SelectContent>\n </SelectPositioner>\n </>\n);\n\nexport type SelectFieldProps = ComponentProps<typeof Select> & {\n label?: string;\n description?: string;\n placeholder?: string;\n trailingAddon?: JSXElement;\n};\n\nexport const SelectField: Component<SelectFieldProps> = (props) => {\n const field = useFieldContext<string[]>();\n const [local, others] = splitProps(props, [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'placeholder',\n 'children',\n 'trailingAddon',\n ]);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <WithTrailingAddon addon={local.trailingAddon}>\n <Select\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n {...others}\n >\n <SelectInput placeholder={local.placeholder ?? ''}>{local.children}</SelectInput>\n </Select>\n </WithTrailingAddon>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["SelectInput","props","_$createComponent","SelectControl","children","SelectTrigger","SelectValue","placeholder","SelectPositioner","SelectContent","SelectField","field","useFieldContext","local","others","splitProps","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","WithTrailingAddon","addon","trailingAddon","Select","_$mergeProps","value","onValueChange","details","handleChange","onBlur","handleBlur","FieldError","FieldDescription","description"],"mappings":"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"}
1
+ {"version":3,"file":"SelectField.js","sources":["../../../src/components/form/SelectField.tsx"],"sourcesContent":["import type { Component, ComponentProps, JSX, JSXElement } from 'solid-js';\n\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\nimport {\n Select,\n SelectContent,\n SelectControl,\n SelectIndicator,\n SelectPositioner,\n SelectTrigger,\n SelectValue,\n} from '@/components/Select';\n\nimport { useFieldContext } from './context';\nimport { WithTrailingAddon } from './WithTrailingAddon';\n\nconst SelectInput: Component<{\n placeholder: string;\n showSelectIndicator: boolean | undefined;\n children: JSX.Element;\n}> = (props) => (\n <>\n <SelectControl>\n <SelectTrigger>\n <SelectValue placeholder={props.placeholder} />\n <Show when={props.showSelectIndicator !== false}>\n <SelectIndicator />\n </Show>\n </SelectTrigger>\n </SelectControl>\n <SelectPositioner>\n <SelectContent>{props.children}</SelectContent>\n </SelectPositioner>\n </>\n);\n\nexport type SelectFieldProps = ComponentProps<typeof Select> & {\n label?: string;\n description?: string;\n placeholder?: string;\n showSelectIndicator?: boolean;\n trailingAddon?: JSXElement;\n};\n\nconst SELECT_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'placeholder',\n 'showSelectIndicator',\n 'children',\n 'trailingAddon',\n] as const;\n\nexport const SelectField: Component<SelectFieldProps> = (props) => {\n const field = useFieldContext<string[]>();\n const [local, others] = splitProps(props, SELECT_FIELD_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <WithTrailingAddon addon={local.trailingAddon}>\n <Select\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n {...others}\n >\n <SelectInput\n placeholder={local.placeholder ?? ''}\n showSelectIndicator={local.showSelectIndicator}\n >\n {local.children}\n </SelectInput>\n </Select>\n </WithTrailingAddon>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["SelectInput","props","_$createComponent","SelectControl","children","SelectTrigger","SelectValue","placeholder","_$Show","when","showSelectIndicator","SelectIndicator","SelectPositioner","SelectContent","SELECT_FIELD_PROPS","SelectField","field","useFieldContext","local","others","splitProps","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","WithTrailingAddon","addon","trailingAddon","Select","_$mergeProps","value","onValueChange","details","handleChange","onBlur","handleBlur","FieldError","FieldDescription","description"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createComponent as t, Portal as s, insert as a, template as l } from "solid-js/web";
1
+ import { createComponent as t, Portal as l, insert as a, template as s } from "solid-js/web";
2
2
  import { Toaster as c, createToaster as u, toast_exports as o } from "../../node_modules/.bun/@ark-ui_solid@5.34.1_2e1854f049906f04/node_modules/@ark-ui/solid/dist/chunk/4OJLSY6B.js";
3
3
  import { Show as r } from "solid-js";
4
4
  import { cn as n } from "../../node_modules/.bun/tailwind-variants@3.2.2_7ac958b541464b98/node_modules/tailwind-variants/dist/index.js";
@@ -8,14 +8,14 @@ import m from "../../_virtual/error.js";
8
8
  import h from "../../_virtual/info.js";
9
9
  import p from "../../_virtual/warning.js";
10
10
  import { Spinner as f } from "../Spinner.js";
11
- var x = /* @__PURE__ */ l('<div class="gap-1 grid">');
12
- const w = u({
11
+ var x = /* @__PURE__ */ s('<div class="gap-1 grid">'), w = /* @__PURE__ */ s("<div aria-hidden=true class=h-5>");
12
+ const b = u({
13
13
  placement: "bottom-end",
14
14
  overlap: !0,
15
15
  gap: 16
16
- }), b = (e) => t(o.Root, {
16
+ }), v = (e) => t(o.Root, {
17
17
  get class() {
18
- return n("group gap-3 p-4 pr-10 shadow-lg min-w-72 pointer-events-auto relative flex w-full items-center rounded-lg border bg-popover transition-all", "data-[state=open]:sm:slide-in-from-bottom-full data-[state=open]:animate-in data-[state=open]:slide-in-from-top-full", "border-border text-popover-foreground");
18
+ return n("group gap-3 p-4 pr-10 shadow-lg min-w-72 pointer-events-auto relative flex w-full items-center rounded-lg border bg-popover", "data-[state=open]:sm:slide-in-from-bottom-full data-[state=open]:animate-in data-[state=open]:slide-in-from-top-full", "border-border text-popover-foreground");
19
19
  },
20
20
  get children() {
21
21
  return [t(r, {
@@ -95,6 +95,9 @@ const w = u({
95
95
  get when() {
96
96
  return e.toast().description;
97
97
  },
98
+ get fallback() {
99
+ return w();
100
+ },
98
101
  get children() {
99
102
  return t(o.Description, {
100
103
  class: "text-sm opacity-90",
@@ -113,18 +116,18 @@ const w = u({
113
116
  }
114
117
  })];
115
118
  }
116
- }), D = () => t(s, {
119
+ }), E = () => t(l, {
117
120
  get children() {
118
121
  return t(c, {
119
- toaster: w,
120
- children: (e) => t(b, {
122
+ toaster: b,
123
+ children: (e) => t(v, {
121
124
  toast: e
122
125
  })
123
126
  });
124
127
  }
125
128
  });
126
129
  export {
127
- D as Toaster,
128
- w as toast
130
+ E as Toaster,
131
+ b as toast
129
132
  };
130
133
  //# sourceMappingURL=Toaster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.js","sources":["../../../src/components/toaster/Toaster.tsx"],"sourcesContent":["import {\n Toast,\n Toaster as ToasterPrimitive,\n createToaster,\n type ToastOptions,\n} from '@ark-ui/solid/toast';\nimport { type Component, type Accessor, Show } from 'solid-js';\nimport { Portal } from 'solid-js/web';\nimport { cn } from 'tailwind-variants';\nimport CheckCircleIcon from '~icons/material-symbols/check-circle';\nimport CloseIcon from '~icons/material-symbols/close';\nimport ErrorIcon from '~icons/material-symbols/error';\nimport InfoIcon from '~icons/material-symbols/info';\nimport WarningIcon from '~icons/material-symbols/warning';\n\nimport { Spinner } from '@/components/Spinner';\n\nexport const toast = createToaster({\n placement: 'bottom-end',\n overlap: true,\n gap: 16,\n});\n\nconst ToastItem: Component<{ toast: Accessor<ToastOptions> }> = (props) => (\n <Toast.Root\n class={cn(\n 'group gap-3 p-4 pr-10 shadow-lg min-w-72 pointer-events-auto relative flex w-full items-center rounded-lg border bg-popover transition-all',\n 'data-[state=open]:sm:slide-in-from-bottom-full data-[state=open]:animate-in data-[state=open]:slide-in-from-top-full',\n 'border-border text-popover-foreground',\n )}\n >\n <Show when={props.toast().type === 'success'}>\n <CheckCircleIcon class={cn('size-5 text-green-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'info'}>\n <InfoIcon class={cn('size-5 text-blue-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'warning'}>\n <WarningIcon class={cn('size-5 text-amber-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'error'}>\n <ErrorIcon class={cn('size-5 text-red-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'loading'}>\n <Spinner class={cn('size-5 text-muted-foreground')} />\n </Show>\n <div class='gap-1 grid'>\n <Show when={props.toast().title}>\n <Toast.Title class='text-sm font-semibold tracking-tight leading-none'>\n {props.toast().title}\n </Toast.Title>\n </Show>\n <Show when={props.toast().description}>\n <Toast.Description class='text-sm opacity-90'>\n {props.toast().description}\n </Toast.Description>\n </Show>\n </div>\n <Toast.CloseTrigger class='top-2 right-2 p-1 absolute cursor-pointer rounded-md text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 hover:text-foreground focus:opacity-100 focus:outline-none'>\n <CloseIcon class='size-4' />\n </Toast.CloseTrigger>\n </Toast.Root>\n);\n\nexport const Toaster: Component = () => (\n <Portal>\n <ToasterPrimitive toaster={toast}>{(item) => <ToastItem toast={item} />}</ToasterPrimitive>\n </Portal>\n);\n"],"names":["toast","createToaster","placement","overlap","gap","ToastItem","props","_$createComponent","Toast","Root","cn","children","Show","when","type","CheckCircleIcon","InfoIcon","WarningIcon","ErrorIcon","Spinner","_el$","_tmpl$","_$insert","title","Title","description","Description","CloseTrigger","CloseIcon","Toaster","Portal","ToasterPrimitive","toaster","item"],"mappings":";;;;;;;;;;;AAiBO,MAAMA,IAAQC,EAAc;AAAA,EACjCC,WAAW;AAAA,EACXC,SAAS;AAAA,EACTC,KAAK;AACP,CAAC,GAEKC,IAA2DC,CAAAA,MAAKC,EACnEC,EAAMC,MAAI;AAAA,EAAA,IAAA,QAAA;AAAA,WACFC,EACL,8IACA,wHACA,uCACF;AAAA,EAAC;AAAA,EAAA,IAAAC,WAAA;AAAA,WAAA,CAAAJ,EAEAK,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEP,EAAMN,QAAQc,SAAS;AAAA,MAAS;AAAA,MAAA,IAAAH,WAAA;AAAA,eAAAJ,EACzCQ,GAAe;AAAA,UAAA,IAAA,QAAA;AAAA,mBAAQL,EAAG,gCAAgC;AAAA,UAAC;AAAA,UAAA,eAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAAH,EAE7DK,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEP,EAAMN,QAAQc,SAAS;AAAA,MAAM;AAAA,MAAA,IAAAH,WAAA;AAAA,eAAAJ,EACtCS,GAAQ;AAAA,UAAA,IAAA,QAAA;AAAA,mBAAQN,EAAG,+BAA+B;AAAA,UAAC;AAAA,UAAA,eAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAAH,EAErDK,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEP,EAAMN,QAAQc,SAAS;AAAA,MAAS;AAAA,MAAA,IAAAH,WAAA;AAAA,eAAAJ,EACzCU,GAAW;AAAA,UAAA,IAAA,QAAA;AAAA,mBAAQP,EAAG,gCAAgC;AAAA,UAAC;AAAA,UAAA,eAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAAH,EAEzDK,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEP,EAAMN,QAAQc,SAAS;AAAA,MAAO;AAAA,MAAA,IAAAH,WAAA;AAAA,eAAAJ,EACvCW,GAAS;AAAA,UAAA,IAAA,QAAA;AAAA,mBAAQR,EAAG,8BAA8B;AAAA,UAAC;AAAA,UAAA,eAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAAH,EAErDK,GAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEP,EAAMN,QAAQc,SAAS;AAAA,MAAS;AAAA,MAAA,IAAAH,WAAA;AAAA,eAAAJ,EACzCY,GAAO;AAAA,UAAA,IAAA,QAAA;AAAA,mBAAQT,EAAG,8BAA8B;AAAA,UAAC;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,IAAA,MAAA;AAAA,UAAAU,IAAAC,EAAAA;AAAAC,aAAAA,EAAAF,GAAAb,EAGjDK,GAAI;AAAA,QAAA,IAACC,OAAI;AAAA,iBAAEP,EAAMN,QAAQuB;AAAAA,QAAK;AAAA,QAAA,IAAAZ,WAAA;AAAA,iBAAAJ,EAC5BC,EAAMgB,OAAK;AAAA,YAAA,OAAA;AAAA,YAAA,IAAAb,WAAA;AAAA,qBACTL,EAAMN,QAAQuB;AAAAA,YAAK;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA,GAAA,IAAA,GAAAD,EAAAF,GAAAb,EAGvBK,GAAI;AAAA,QAAA,IAACC,OAAI;AAAA,iBAAEP,EAAMN,QAAQyB;AAAAA,QAAW;AAAA,QAAA,IAAAd,WAAA;AAAA,iBAAAJ,EAClCC,EAAMkB,aAAW;AAAA,YAAA,OAAA;AAAA,YAAA,IAAAf,WAAA;AAAA,qBACfL,EAAMN,QAAQyB;AAAAA,YAAW;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA,GAAA,IAAA,GAAAL;AAAAA,IAAA,MAAAb,EAI/BC,EAAMmB,cAAY;AAAA,MAAA,OAAA;AAAA,MAAA,IAAAhB,WAAA;AAAA,eAAAJ,EAChBqB,GAAS;AAAA,UAAA,OAAA;AAAA,QAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,CAAA;AAAA,EAAA;AAAA,CAAA,GAKHC,IAAqBA,MAAAtB,EAC/BuB,GAAM;AAAA,EAAA,IAAAnB,WAAA;AAAA,WAAAJ,EACJwB,GAAgB;AAAA,MAACC,SAAShC;AAAAA,MAAKW,UAAIsB,CAAAA,MAAI1B,EAAMF,GAAS;AAAA,QAACL,OAAOiC;AAAAA,MAAAA,CAAI;AAAA,IAAA,CAAI;AAAA,EAAA;AAAA,CAAA;"}
1
+ {"version":3,"file":"Toaster.js","sources":["../../../src/components/toaster/Toaster.tsx"],"sourcesContent":["import {\n Toast,\n Toaster as ToasterPrimitive,\n createToaster,\n type ToastOptions,\n} from '@ark-ui/solid/toast';\nimport { type Component, type Accessor, Show } from 'solid-js';\nimport { Portal } from 'solid-js/web';\nimport { cn } from 'tailwind-variants';\nimport CheckCircleIcon from '~icons/material-symbols/check-circle';\nimport CloseIcon from '~icons/material-symbols/close';\nimport ErrorIcon from '~icons/material-symbols/error';\nimport InfoIcon from '~icons/material-symbols/info';\nimport WarningIcon from '~icons/material-symbols/warning';\n\nimport { Spinner } from '@/components/Spinner';\n\nexport const toast = createToaster({\n placement: 'bottom-end',\n overlap: true,\n gap: 16,\n});\n\nconst ToastItem: Component<{ toast: Accessor<ToastOptions> }> = (props) => (\n <Toast.Root\n class={cn(\n 'group gap-3 p-4 pr-10 shadow-lg min-w-72 pointer-events-auto relative flex w-full items-center rounded-lg border bg-popover',\n 'data-[state=open]:sm:slide-in-from-bottom-full data-[state=open]:animate-in data-[state=open]:slide-in-from-top-full',\n 'border-border text-popover-foreground',\n )}\n >\n <Show when={props.toast().type === 'success'}>\n <CheckCircleIcon class={cn('size-5 text-green-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'info'}>\n <InfoIcon class={cn('size-5 text-blue-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'warning'}>\n <WarningIcon class={cn('size-5 text-amber-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'error'}>\n <ErrorIcon class={cn('size-5 text-red-500 shrink-0')} aria-hidden='true' />\n </Show>\n <Show when={props.toast().type === 'loading'}>\n <Spinner class={cn('size-5 text-muted-foreground')} />\n </Show>\n <div class='gap-1 grid'>\n <Show when={props.toast().title}>\n <Toast.Title class='text-sm font-semibold tracking-tight leading-none'>\n {props.toast().title}\n </Toast.Title>\n </Show>\n <Show when={props.toast().description} fallback={<div aria-hidden='true' class='h-5' />}>\n <Toast.Description class='text-sm opacity-90'>\n {props.toast().description}\n </Toast.Description>\n </Show>\n </div>\n <Toast.CloseTrigger class='top-2 right-2 p-1 absolute cursor-pointer rounded-md text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 hover:text-foreground focus:opacity-100 focus:outline-none'>\n <CloseIcon class='size-4' />\n </Toast.CloseTrigger>\n </Toast.Root>\n);\n\nexport const Toaster: Component = () => (\n <Portal>\n <ToasterPrimitive toaster={toast}>{(item) => <ToastItem toast={item} />}</ToasterPrimitive>\n </Portal>\n);\n"],"names":["toast","createToaster","placement","overlap","gap","ToastItem","props","_$createComponent","Toast","Root","cn","children","Show","when","type","CheckCircleIcon","InfoIcon","WarningIcon","ErrorIcon","Spinner","_el$","_tmpl$","_$insert","title","Title","description","fallback","_tmpl$2","Description","CloseTrigger","CloseIcon","Toaster","Portal","ToasterPrimitive","toaster","item"],"mappings":"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"}