@manafishrov/ui 1.4.0 → 1.4.2

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.
@@ -1,5 +1,5 @@
1
- import { Select as SelectPrimitive } from '@ark-ui/solid/select';
2
1
  import { Component, ComponentProps, JSX, JSXElement } from 'solid-js';
2
+ import { Select as SelectPrimitive } from '@ark-ui/solid/select';
3
3
  export declare const SelectControl: (props: SelectPrimitive.ControlProps) => JSX.Element;
4
4
  export declare const SelectItemContext: (props: SelectPrimitive.ItemContextProps) => JSX.Element;
5
5
  export declare const SelectHiddenSelect: (props: SelectPrimitive.HiddenSelectProps) => JSX.Element;
@@ -1,111 +1,113 @@
1
- import { delegateEvents as S, createComponent as o, mergeProps as l, spread as w, insert as h, effect as z, setAttribute as x, className as C, template as g } from "solid-js/web";
2
- import { select_exports as r } from "../node_modules/.bun/@ark-ui_solid@5.34.1_2e1854f049906f04/node_modules/@ark-ui/solid/dist/chunk/RJHFA54S.js";
3
- import { splitProps as i, For as I } from "solid-js";
1
+ import { delegateEvents as z, createComponent as r, mergeProps as l, spread as S, insert as h, For as C, effect as I, setAttribute as x, className as k, template as g } from "solid-js/web";
2
+ import { select_exports as o } from "../node_modules/.bun/@ark-ui_solid@5.34.1_2e1854f049906f04/node_modules/@ark-ui/solid/dist/chunk/RJHFA54S.js";
4
3
  import { cn as n } from "../node_modules/.bun/tailwind-variants@3.2.2_7ac958b541464b98/node_modules/tailwind-variants/dist/index.js";
5
- import k from "../_virtual/check.js";
6
- import _ from "../_virtual/close.js";
7
- import T from "../_virtual/expand-more.js";
8
- var L = /* @__PURE__ */ g("<div role=tablist data-slot=select-tabs>"), P = /* @__PURE__ */ g("<button type=button role=tab>"), V = /* @__PURE__ */ g("<div data-slot=select-separator>");
9
- const F = r.Control, M = r.ItemContext, N = r.HiddenSelect, O = (t) => {
4
+ import _ from "../_virtual/check.js";
5
+ import T from "../_virtual/close.js";
6
+ import L from "../_virtual/expand-more.js";
7
+ import { createSelectTriggerRef as y } from "../primitives/selectTriggerRef.js";
8
+ import { splitProps as i } from "solid-js";
9
+ var P = /* @__PURE__ */ g("<div role=tablist data-slot=select-tabs>"), V = /* @__PURE__ */ g("<button type=button role=tab>"), A = /* @__PURE__ */ g("<div data-slot=select-separator>");
10
+ const N = o.Control, O = o.ItemContext, W = o.HiddenSelect, q = (t) => {
10
11
  const [e, s] = i(t, ["class"]);
11
- return o(r.List, l({
12
+ return r(o.List, l({
12
13
  "data-slot": "select-list",
13
14
  get class() {
14
15
  return n("p-1 max-h-[min(var(--available-height),300px)] overflow-y-auto", e.class);
15
16
  }
16
17
  }, s));
17
- }, W = r.Context, A = (t) => {
18
+ }, B = o.Context, D = (t) => {
18
19
  const [e, s] = i(t, ["class", "items", "value", "onValueChange"]);
19
20
  return (() => {
20
- var a = L();
21
- return w(a, l({
21
+ var a = P();
22
+ return S(a, l({
22
23
  get class() {
23
24
  return n("gap-1 p-1 inline-flex rounded-md bg-muted", e.class);
24
25
  }
25
- }, s), !1, !0), h(a, o(I, {
26
+ }, s), !1, !0), h(a, r(C, {
26
27
  get each() {
27
28
  return e.items;
28
29
  },
29
- children: (u) => {
30
- const p = () => e.value === u.value;
30
+ children: (d) => {
31
+ const p = () => e.value === d.value;
31
32
  return (() => {
32
- var d = P();
33
- return d.$$click = () => {
34
- typeof e.onValueChange == "function" && u.disabled !== !0 && e.onValueChange(u.value);
35
- }, h(d, () => u.label), z((c) => {
36
- var f = u.disabled === !0, m = p(), v = p() ? "active" : "inactive", b = n("h-8 px-3 text-sm rounded-sm transition-colors", "data-[state=active]:shadow-sm data-[state=active]:bg-background data-[state=active]:text-foreground", "data-[state=inactive]:text-muted-foreground hover:data-[state=inactive]:text-foreground", "disabled:pointer-events-none disabled:opacity-50");
37
- return f !== c.e && (d.disabled = c.e = f), m !== c.t && x(d, "aria-selected", c.t = m), v !== c.a && x(d, "data-state", c.a = v), b !== c.o && C(d, c.o = b), c;
33
+ var u = V();
34
+ return u.$$click = () => {
35
+ typeof e.onValueChange == "function" && d.disabled !== !0 && e.onValueChange(d.value);
36
+ }, h(u, () => d.label), I((c) => {
37
+ var f = d.disabled === !0, m = p(), v = p() ? "active" : "inactive", b = n("h-8 px-3 text-sm rounded-sm transition-colors", "data-[state=active]:shadow-sm data-[state=active]:bg-background data-[state=active]:text-foreground", "data-[state=inactive]:text-muted-foreground hover:data-[state=inactive]:text-foreground", "disabled:pointer-events-none disabled:opacity-50");
38
+ return f !== c.e && (u.disabled = c.e = f), m !== c.t && x(u, "aria-selected", c.t = m), v !== c.a && x(u, "data-state", c.a = v), b !== c.o && k(u, c.o = b), c;
38
39
  }, {
39
40
  e: void 0,
40
41
  t: void 0,
41
42
  a: void 0,
42
43
  o: void 0
43
- }), d;
44
+ }), u;
44
45
  })();
45
46
  }
46
47
  })), a;
47
48
  })();
48
- }, D = (t) => {
49
+ }, E = (t) => {
49
50
  const [e, s] = i(t, ["class", "positioning"]), a = {
50
51
  placement: "bottom-start",
51
52
  gutter: 4,
52
53
  sameWidth: !0,
53
54
  ...e.positioning
54
55
  };
55
- return o(r.Root, l({
56
+ return r(o.Root, l({
56
57
  get class() {
57
58
  return n("flex w-full flex-col", e.class);
58
59
  },
59
60
  positioning: a
60
61
  }, s));
61
- }, q = Object.assign(D, {
62
- Tabs: A
63
- }), B = (t) => {
62
+ }, J = Object.assign(E, {
63
+ Tabs: D
64
+ }), Q = (t) => {
64
65
  const [e, s] = i(t, ["class"]);
65
- return o(r.Label, l({
66
+ return r(o.Label, l({
66
67
  get class() {
67
68
  return 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", e.class);
68
69
  }
69
70
  }, s));
70
- }, J = (t) => {
71
+ }, U = (t) => {
71
72
  const [e, s] = i(t, ["class"]);
72
- return o(r.ItemGroup, l({
73
+ return r(o.ItemGroup, l({
73
74
  "data-slot": "select-group",
74
75
  get class() {
75
76
  return n("scroll-my-1", e.class);
76
77
  }
77
78
  }, s));
78
- }, Q = (t) => {
79
+ }, X = (t) => {
79
80
  const [e, s] = i(t, ["class"]);
80
- return o(r.ValueText, l({
81
+ return r(o.ValueText, l({
81
82
  "data-slot": "select-value",
82
83
  get class() {
83
84
  return n("flex flex-1 text-left", e.class);
84
85
  }
85
86
  }, s));
86
- }, U = (t) => {
87
- const [e, s] = i(t, ["class", "size"]), a = e.size ?? "default";
88
- return o(r.Trigger, l({
87
+ }, Y = (t) => {
88
+ const [e, s] = i(t, ["class", "size", "ref"]), a = e.size ?? "default", d = typeof e.ref == "function" ? y(e.ref) : y();
89
+ return r(o.Trigger, l({
90
+ ref: d,
89
91
  "data-slot": "select-trigger",
90
92
  "data-size": a,
91
93
  get class() {
92
94
  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
95
  }
94
96
  }, s));
95
- }, X = (t) => {
97
+ }, Z = (t) => {
96
98
  const [e, s] = i(t, ["class", "children"]);
97
- return o(r.Indicator, l({
99
+ return r(o.Indicator, l({
98
100
  get class() {
99
101
  return n("opacity-50 transition-transform data-[state=open]:rotate-180", e.class);
100
102
  }
101
103
  }, s, {
102
104
  get children() {
103
- return e.children ?? o(T, {
105
+ return e.children ?? r(L, {
104
106
  class: "size-4"
105
107
  });
106
108
  }
107
109
  }));
108
- }, y = (t, e) => {
110
+ }, w = (t, e) => {
109
111
  if (typeof t == "function") {
110
112
  t(e);
111
113
  return;
@@ -114,104 +116,104 @@ const F = r.Control, M = r.ItemContext, N = r.HiddenSelect, O = (t) => {
114
116
  const [s, a] = t;
115
117
  s(a, e);
116
118
  }
117
- }, Y = (t) => {
119
+ }, ee = (t) => {
118
120
  const [e, s] = i(t, ["class", "children", "tabIndex", "onClick", "onKeyDown"]);
119
- return o(r.ClearTrigger, l({
121
+ return r(o.ClearTrigger, l({
120
122
  get class() {
121
123
  return 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", e.class);
122
124
  },
123
125
  onClick: (a) => {
124
- a.stopPropagation(), y(e.onClick, a);
126
+ a.stopPropagation(), w(e.onClick, a);
125
127
  },
126
128
  onKeyDown: (a) => {
127
- (a.key === "Enter" || a.key === " ") && a.stopPropagation(), y(e.onKeyDown, a);
129
+ (a.key === "Enter" || a.key === " ") && a.stopPropagation(), w(e.onKeyDown, a);
128
130
  }
129
131
  }, s, {
130
132
  get tabIndex() {
131
133
  return e.tabIndex ?? 0;
132
134
  },
133
135
  get children() {
134
- return e.children ?? o(_, {
136
+ return e.children ?? r(T, {
135
137
  class: "size-3.5"
136
138
  });
137
139
  }
138
140
  }));
139
- }, Z = (t) => {
141
+ }, te = (t) => {
140
142
  const [e, s] = i(t, ["class"]);
141
- return o(r.Positioner, l({
143
+ return r(o.Positioner, l({
142
144
  get class() {
143
145
  return n("isolate z-50", e.class);
144
146
  }
145
147
  }, s));
146
- }, ee = (t) => {
148
+ }, se = (t) => {
147
149
  const [e, s] = i(t, ["class"]);
148
- return o(r.Content, l({
150
+ return r(o.Content, l({
149
151
  "data-slot": "select-content",
150
152
  get class() {
151
153
  return 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", "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", e.class);
152
154
  }
153
155
  }, s));
154
- }, te = (t) => {
156
+ }, ae = (t) => {
155
157
  const [e, s] = i(t, ["class"]);
156
- return o(r.ItemGroupLabel, l({
158
+ return r(o.ItemGroupLabel, l({
157
159
  "data-slot": "select-group-label",
158
160
  get class() {
159
161
  return n("px-1.5 py-1 text-xs text-muted-foreground", e.class);
160
162
  }
161
163
  }, s));
162
- }, se = (t) => {
164
+ }, re = (t) => {
163
165
  const [e, s] = i(t, ["class", "children"]);
164
- return o(r.Item, l({
166
+ return r(o.Item, l({
165
167
  "data-slot": "select-item",
166
168
  get class() {
167
169
  return 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", e.class);
168
170
  }
169
171
  }, s, {
170
172
  get children() {
171
- return [o(r.ItemText, {
173
+ return [r(o.ItemText, {
172
174
  class: "gap-2 flex flex-1 shrink-0 whitespace-nowrap",
173
175
  get children() {
174
176
  return e.children;
175
177
  }
176
- }), o(r.ItemIndicator, {
178
+ }), r(o.ItemIndicator, {
177
179
  class: "right-2 size-4 pointer-events-none absolute flex items-center justify-center",
178
180
  get children() {
179
- return o(k, {
181
+ return r(_, {
180
182
  class: "pointer-events-none"
181
183
  });
182
184
  }
183
185
  })];
184
186
  }
185
187
  }));
186
- }, ae = (t) => {
188
+ }, oe = (t) => {
187
189
  const [e, s] = i(t, ["class"]);
188
190
  return (() => {
189
- var a = V();
190
- return w(a, l({
191
+ var a = A();
192
+ return S(a, l({
191
193
  get class() {
192
194
  return n("-mx-1 my-1 pointer-events-none h-px bg-border", e.class);
193
195
  }
194
196
  }, s), !1, !1), a;
195
197
  })();
196
198
  };
197
- S(["click"]);
199
+ z(["click"]);
198
200
  export {
199
- q as Select,
200
- Y as SelectClearTrigger,
201
- ee as SelectContent,
202
- W as SelectContext,
203
- F as SelectControl,
204
- J as SelectGroup,
205
- N as SelectHiddenSelect,
206
- X as SelectIndicator,
207
- se as SelectItem,
208
- M as SelectItemContext,
209
- te as SelectItemGroupLabel,
210
- B as SelectLabel,
211
- O as SelectList,
212
- Z as SelectPositioner,
213
- ae as SelectSeparator,
214
- U as SelectTrigger,
215
- Q as SelectValue
201
+ J as Select,
202
+ ee as SelectClearTrigger,
203
+ se as SelectContent,
204
+ B as SelectContext,
205
+ N as SelectControl,
206
+ U as SelectGroup,
207
+ W as SelectHiddenSelect,
208
+ Z as SelectIndicator,
209
+ re as SelectItem,
210
+ O as SelectItemContext,
211
+ ae as SelectItemGroupLabel,
212
+ Q as SelectLabel,
213
+ q as SelectList,
214
+ te as SelectPositioner,
215
+ oe as SelectSeparator,
216
+ Y as SelectTrigger,
217
+ X as SelectValue
216
218
  };
217
219
  //# sourceMappingURL=Select.js.map
@@ -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-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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"}
1
+ {"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import type { Component, ComponentProps, JSX, JSXElement } from 'solid-js';\n\nimport { Select as SelectPrimitive } from '@ark-ui/solid/select';\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\nimport { createSelectTriggerRef } from '../primitives/selectTriggerRef';\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', 'ref']);\n const size = local.size ?? 'default';\n const ref =\n typeof local.ref === 'function' ? createSelectTriggerRef(local.ref) : createSelectTriggerRef();\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\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","ref","createSelectTriggerRef","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,19 +1,19 @@
1
- import { createComponent as t, Portal as l, insert as s, memo as r, template as d } from "solid-js/web";
2
- import { Toaster as c, createToaster as m, toast_exports as a } from "../../node_modules/.bun/@ark-ui_solid@5.34.1_2e1854f049906f04/node_modules/@ark-ui/solid/dist/chunk/4OJLSY6B.js";
3
- import { Show as i } from "solid-js";
1
+ import { createComponent as t, Portal as l, insert as s, memo as r, template as c } from "solid-js/web";
2
+ import { Toaster as u, createToaster as d, toast_exports as i } from "../../node_modules/.bun/@ark-ui_solid@5.34.1_2e1854f049906f04/node_modules/@ark-ui/solid/dist/chunk/4OJLSY6B.js";
3
+ import { Show as a } 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";
5
- import u from "../../_virtual/check-circle.js";
5
+ import m from "../../_virtual/check-circle.js";
6
6
  import g from "../../_virtual/error.js";
7
7
  import h from "../../_virtual/info.js";
8
- import f from "../../_virtual/warning.js";
9
- import { buttonVariants as p } from "../Button.js";
8
+ import p from "../../_virtual/warning.js";
9
+ import { buttonVariants as f } from "../Button.js";
10
10
  import { Spinner as x } from "../Spinner.js";
11
- var b = /* @__PURE__ */ d('<div class="min-w-0 gap-1 grid flex-1">');
12
- const v = m({
11
+ var v = /* @__PURE__ */ c('<div class="min-w-0 gap-1 grid flex-1">');
12
+ const w = d({
13
13
  placement: "bottom-end",
14
14
  overlap: !0,
15
15
  gap: 16
16
- }), w = (e) => [r(() => r(() => e.type === "success")() && t(u, {
16
+ }), y = (e) => [r(() => r(() => e.type === "success")() && t(m, {
17
17
  get class() {
18
18
  return n("size-4 shrink-0");
19
19
  },
@@ -23,7 +23,7 @@ const v = m({
23
23
  return n("size-4 shrink-0");
24
24
  },
25
25
  "aria-hidden": "true"
26
- })), r(() => r(() => e.type === "warning")() && t(f, {
26
+ })), r(() => r(() => e.type === "warning")() && t(p, {
27
27
  get class() {
28
28
  return n("size-4 shrink-0");
29
29
  },
@@ -37,35 +37,35 @@ const v = m({
37
37
  get class() {
38
38
  return n("size-4 text-muted-foreground");
39
39
  }
40
- }))], y = (e) => t(a.Root, {
40
+ }))], b = (e) => t(i.Root, {
41
41
  get class() {
42
- return n("group gap-2 px-4 py-3.5 shadow-lg min-w-80 pointer-events-auto relative flex w-full items-center rounded-xl 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", "data-[state=closed]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full", "border-border text-popover-foreground");
42
+ return n("group gap-2 px-4 py-3.5 shadow-lg min-w-80 ease-in-out pointer-events-auto relative flex w-full items-center rounded-xl border bg-popover", "border-border text-popover-foreground");
43
43
  },
44
44
  get children() {
45
- return [t(w, {
45
+ return [t(y, {
46
46
  get type() {
47
47
  return e.toast().type;
48
48
  }
49
49
  }), (() => {
50
- var o = b();
51
- return s(o, t(i, {
50
+ var o = v();
51
+ return s(o, t(a, {
52
52
  get when() {
53
53
  return e.toast().title;
54
54
  },
55
55
  get children() {
56
- return t(a.Title, {
56
+ return t(i.Title, {
57
57
  class: "text-sm font-semibold tracking-tight leading-none",
58
58
  get children() {
59
59
  return e.toast().title;
60
60
  }
61
61
  });
62
62
  }
63
- }), null), s(o, t(i, {
63
+ }), null), s(o, t(a, {
64
64
  get when() {
65
65
  return e.toast().description;
66
66
  },
67
67
  get children() {
68
- return t(a.Description, {
68
+ return t(i.Description, {
69
69
  class: "text-sm text-muted-foreground",
70
70
  get children() {
71
71
  return e.toast().description;
@@ -73,13 +73,13 @@ const v = m({
73
73
  });
74
74
  }
75
75
  }), null), o;
76
- })(), t(i, {
76
+ })(), t(a, {
77
77
  get when() {
78
78
  return e.toast().action;
79
79
  },
80
- children: (o) => t(a.ActionTrigger, {
80
+ children: (o) => t(i.ActionTrigger, {
81
81
  get class() {
82
- return p({
82
+ return f({
83
83
  class: "shrink-0",
84
84
  size: "sm",
85
85
  variant: "secondary"
@@ -93,9 +93,9 @@ const v = m({
93
93
  }
94
94
  }), E = () => t(l, {
95
95
  get children() {
96
- return t(c, {
97
- toaster: v,
98
- children: (e) => t(y, {
96
+ return t(u, {
97
+ toaster: w,
98
+ children: (e) => t(b, {
99
99
  toast: e
100
100
  })
101
101
  });
@@ -103,6 +103,6 @@ const v = m({
103
103
  });
104
104
  export {
105
105
  E as Toaster,
106
- v as toast
106
+ w as toast
107
107
  };
108
108
  //# 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 ErrorIcon from '~icons/material-symbols/error';\nimport InfoIcon from '~icons/material-symbols/info';\nimport WarningIcon from '~icons/material-symbols/warning';\n\nimport { buttonVariants } from '@/components/Button';\nimport { Spinner } from '@/components/Spinner';\n\nexport const toast = createToaster({\n placement: 'bottom-end',\n overlap: true,\n gap: 16,\n});\n\nconst ToastIcon: Component<{ type: ToastOptions['type'] }> = (props) => (\n <>\n {props.type === 'success' && (\n <CheckCircleIcon class={cn('size-4 shrink-0')} aria-hidden='true' />\n )}\n {props.type === 'info' && <InfoIcon class={cn('size-4 shrink-0')} aria-hidden='true' />}\n {props.type === 'warning' && <WarningIcon class={cn('size-4 shrink-0')} aria-hidden='true' />}\n {props.type === 'error' && <ErrorIcon class={cn('size-4 shrink-0')} aria-hidden='true' />}\n {props.type === 'loading' && <Spinner class={cn('size-4 text-muted-foreground')} />}\n </>\n);\n\nconst ToastItem: Component<{ toast: Accessor<ToastOptions> }> = (props) => (\n <Toast.Root\n class={cn(\n 'group gap-2 px-4 py-3.5 shadow-lg min-w-80 pointer-events-auto relative flex w-full items-center rounded-xl 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 'data-[state=closed]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full',\n 'border-border text-popover-foreground',\n )}\n >\n <ToastIcon type={props.toast().type} />\n <div class='min-w-0 gap-1 grid flex-1'>\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 text-muted-foreground'>\n {props.toast().description}\n </Toast.Description>\n </Show>\n </div>\n <Show when={props.toast().action}>\n {(action) => (\n <Toast.ActionTrigger\n class={buttonVariants({\n class: 'shrink-0',\n size: 'sm',\n variant: 'secondary',\n })}\n >\n {action().label}\n </Toast.ActionTrigger>\n )}\n </Show>\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","ToastIcon","props","_$memo","type","_$createComponent","CheckCircleIcon","cn","InfoIcon","WarningIcon","ErrorIcon","Spinner","ToastItem","Toast","Root","children","_el$","_tmpl$","_$insert","Show","when","title","Title","description","Description","action","ActionTrigger","buttonVariants","class","size","variant","label","Toaster","Portal","ToasterPrimitive","toaster","item"],"mappings":"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"}
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 ErrorIcon from '~icons/material-symbols/error';\nimport InfoIcon from '~icons/material-symbols/info';\nimport WarningIcon from '~icons/material-symbols/warning';\n\nimport { buttonVariants } from '@/components/Button';\nimport { Spinner } from '@/components/Spinner';\n\nexport const toast = createToaster({\n placement: 'bottom-end',\n overlap: true,\n gap: 16,\n});\n\nconst ToastIcon: Component<{ type: ToastOptions['type'] }> = (props) => (\n <>\n {props.type === 'success' && (\n <CheckCircleIcon class={cn('size-4 shrink-0')} aria-hidden='true' />\n )}\n {props.type === 'info' && <InfoIcon class={cn('size-4 shrink-0')} aria-hidden='true' />}\n {props.type === 'warning' && <WarningIcon class={cn('size-4 shrink-0')} aria-hidden='true' />}\n {props.type === 'error' && <ErrorIcon class={cn('size-4 shrink-0')} aria-hidden='true' />}\n {props.type === 'loading' && <Spinner class={cn('size-4 text-muted-foreground')} />}\n </>\n);\n\nconst ToastItem: Component<{ toast: Accessor<ToastOptions> }> = (props) => (\n <Toast.Root\n class={cn(\n 'group gap-2 px-4 py-3.5 shadow-lg min-w-80 ease-in-out pointer-events-auto relative flex w-full items-center rounded-xl border bg-popover',\n 'border-border text-popover-foreground',\n )}\n >\n <ToastIcon type={props.toast().type} />\n <div class='min-w-0 gap-1 grid flex-1'>\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 text-muted-foreground'>\n {props.toast().description}\n </Toast.Description>\n </Show>\n </div>\n <Show when={props.toast().action}>\n {(action) => (\n <Toast.ActionTrigger\n class={buttonVariants({\n class: 'shrink-0',\n size: 'sm',\n variant: 'secondary',\n })}\n >\n {action().label}\n </Toast.ActionTrigger>\n )}\n </Show>\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","ToastIcon","props","_$memo","type","_$createComponent","CheckCircleIcon","cn","InfoIcon","WarningIcon","ErrorIcon","Spinner","ToastItem","Toast","Root","children","_el$","_tmpl$","_$insert","Show","when","title","Title","description","Description","action","ActionTrigger","buttonVariants","class","size","variant","label","Toaster","Portal","ToasterPrimitive","toaster","item"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const createSelectTriggerRef: (forwardRef?: (element: HTMLButtonElement) => void) => ((element: HTMLButtonElement) => void);
@@ -0,0 +1,22 @@
1
+ const a = (r) => {
2
+ let e = !1;
3
+ return (t) => {
4
+ t.addEventListener(
5
+ "pointerdown",
6
+ () => {
7
+ t.getAttribute("aria-expanded") === "true" && (e = !0);
8
+ },
9
+ !0
10
+ ), t.addEventListener(
11
+ "click",
12
+ (i) => {
13
+ e && (e = !1, i.stopPropagation());
14
+ },
15
+ !0
16
+ ), r && r(t);
17
+ };
18
+ };
19
+ export {
20
+ a as createSelectTriggerRef
21
+ };
22
+ //# sourceMappingURL=selectTriggerRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectTriggerRef.js","sources":["../../src/primitives/selectTriggerRef.ts"],"sourcesContent":["// Workaround for https://github.com/chakra-ui/ark/issues/3146\n// SolidJS event delegation causes interact-outside to close the select on pointerdown,\n// Then the delegated click re-opens it. We suppress that click when already open.\nexport const createSelectTriggerRef = (\n forwardRef?: (element: HTMLButtonElement) => void,\n): ((element: HTMLButtonElement) => void) => {\n let suppressNextClick = false;\n\n return (element: HTMLButtonElement): void => {\n element.addEventListener(\n 'pointerdown',\n () => {\n if (element.getAttribute('aria-expanded') === 'true') {\n suppressNextClick = true;\n }\n },\n true,\n );\n element.addEventListener(\n 'click',\n (event) => {\n if (suppressNextClick) {\n suppressNextClick = false;\n event.stopPropagation();\n }\n },\n true,\n );\n if (forwardRef) {\n forwardRef(element);\n }\n };\n};\n"],"names":["createSelectTriggerRef","forwardRef","suppressNextClick","element","event"],"mappings":"AAGO,MAAMA,IAAyB,CACpCC,MAC2C;AAC3C,MAAIC,IAAoB;AAExB,SAAO,CAACC,MAAqC;AAC3C,IAAAA,EAAQ;AAAA,MACN;AAAA,MACA,MAAM;AACJ,QAAIA,EAAQ,aAAa,eAAe,MAAM,WAC5CD,IAAoB;AAAA,MAExB;AAAA,MACA;AAAA,IAAA,GAEFC,EAAQ;AAAA,MACN;AAAA,MACA,CAACC,MAAU;AACT,QAAIF,MACFA,IAAoB,IACpBE,EAAM,gBAAA;AAAA,MAEV;AAAA,MACA;AAAA,IAAA,GAEEH,KACFA,EAAWE,CAAO;AAAA,EAEtB;AACF;"}