solid-uix 0.5.0 → 0.5.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.
Files changed (41) hide show
  1. package/README.md +1 -7
  2. package/dist/main.css +269 -1
  3. package/dist/main.d.ts +79 -0
  4. package/dist/main.js +348 -246
  5. package/dist/main.jsx +386 -0
  6. package/package.json +11 -10
  7. package/dist/main.js.map +0 -1
  8. package/dist/ssr/main.js +0 -395
  9. package/dist/ssr/main.js.map +0 -1
  10. package/dist/types/button/button.d.ts +0 -4
  11. package/dist/types/button/button.types.d.ts +0 -4
  12. package/dist/types/checkbox/checkbox.d.ts +0 -2
  13. package/dist/types/checkbox/checkbox.stories.d.ts +0 -29
  14. package/dist/types/checkbox/checkbox.types.d.ts +0 -5
  15. package/dist/types/dialog/dialog.d.ts +0 -11
  16. package/dist/types/dialog/dialog.types.d.ts +0 -17
  17. package/dist/types/dialog/provider/context.d.ts +0 -3
  18. package/dist/types/dialog/provider/context.types.d.ts +0 -14
  19. package/dist/types/dialog/provider/provider.d.ts +0 -2
  20. package/dist/types/dialog/provider/provider.types.d.ts +0 -7
  21. package/dist/types/field/field.context.d.ts +0 -3
  22. package/dist/types/field/field.d.ts +0 -6
  23. package/dist/types/field/field.types.d.ts +0 -19
  24. package/dist/types/link/link.d.ts +0 -2
  25. package/dist/types/link/link.stories.d.ts +0 -48
  26. package/dist/types/link/link.types.d.ts +0 -6
  27. package/dist/types/list/list.d.ts +0 -5
  28. package/dist/types/list/list.types.d.ts +0 -3
  29. package/dist/types/main.d.ts +0 -13
  30. package/dist/types/select/select.d.ts +0 -5
  31. package/dist/types/select/select.types.d.ts +0 -5
  32. package/dist/types/text_area/text_area.d.ts +0 -2
  33. package/dist/types/text_area/text_area.stories.d.ts +0 -38
  34. package/dist/types/text_area/text_area.types.d.ts +0 -4
  35. package/dist/types/text_input/text_input.d.ts +0 -2
  36. package/dist/types/text_input/text_input.stories.d.ts +0 -30
  37. package/dist/types/text_input/text_input.types.d.ts +0 -4
  38. package/dist/types/utils/cls.d.ts +0 -3
  39. package/dist/types/utils/message.d.ts +0 -7
  40. package/dist/types/utils/noop.d.ts +0 -4
  41. package/dist/types/utils/string.d.ts +0 -1
package/dist/main.jsx ADDED
@@ -0,0 +1,386 @@
1
+ // src/utils/cls.ts
2
+ var cls = (...classes) => {
3
+ return classes.filter(Boolean).join(" ");
4
+ };
5
+
6
+ // src/button/button.tsx
7
+ import { mergeProps, splitProps } from "solid-js";
8
+
9
+ // src/button/button.module.css
10
+ var button_default = {
11
+ button: "button_button",
12
+ solid: "button_solid",
13
+ outlined: "button_outlined",
14
+ link: "button_link"
15
+ };
16
+
17
+ // src/button/button.tsx
18
+ var defaultProps = {
19
+ variant: "solid"
20
+ };
21
+ var Button = (props) => {
22
+ const merged = mergeProps(defaultProps, props);
23
+ const [local, rest] = splitProps(merged, ["class", "variant"]);
24
+ return <button
25
+ type="button"
26
+ {...rest}
27
+ class={cls(
28
+ button_default.button,
29
+ local.class,
30
+ local.variant === "solid" && button_default.solid,
31
+ local.variant === "outlined" && button_default.outlined
32
+ )}
33
+ >
34
+ {rest.children}
35
+ </button>;
36
+ };
37
+
38
+ // src/link/link.module.css
39
+ var link_default = {
40
+ link: "link_link",
41
+ underline: "link_underline",
42
+ secondary: "link_secondary",
43
+ disabled: "link_disabled"
44
+ };
45
+
46
+ // src/link/link.tsx
47
+ import { splitProps as splitProps2 } from "solid-js";
48
+ var Link = (props) => {
49
+ const [local, rest] = splitProps2(props, ["class", "reset", "disabled", "color", "underline"]);
50
+ return <a
51
+ {...rest}
52
+ class={cls(
53
+ !local.reset && link_default.link,
54
+ local.class,
55
+ local.disabled && link_default.disabled,
56
+ local.color === "secondary" && link_default.secondary,
57
+ local.underline === "always" && link_default.underline
58
+ )}
59
+ aria-disabled={local.disabled}
60
+ >
61
+ {rest.children}
62
+ </a>;
63
+ };
64
+
65
+ // src/checkbox/checkbox.tsx
66
+ import { createUniqueId as createUniqueId2, splitProps as splitProps3 } from "solid-js";
67
+
68
+ // src/checkbox/checkbox.module.css
69
+ var checkbox_default = {
70
+ checkbox: "checkbox_checkbox",
71
+ input: "checkbox_input",
72
+ indicator: "checkbox_indicator",
73
+ label: "checkbox_label",
74
+ disabled: "checkbox_disabled"
75
+ };
76
+
77
+ // src/field/field.context.tsx
78
+ import { createContext, createMemo, createSignal, createUniqueId, useContext } from "solid-js";
79
+
80
+ // src/utils/message.ts
81
+ var isError = (message) => {
82
+ return message.level === "error";
83
+ };
84
+ var getMessageIds = (messages) => {
85
+ if (!messages.length) {
86
+ return void 0;
87
+ }
88
+ return messages.map((message) => message.id).join(" ");
89
+ };
90
+
91
+ // src/utils/noop.ts
92
+ var noop = () => {
93
+ };
94
+ var noopAccessor = (value) => {
95
+ return () => value;
96
+ };
97
+ var noopSetter = () => {
98
+ return () => {
99
+ };
100
+ };
101
+
102
+ // src/field/field.context.tsx
103
+ var defaultValue = {
104
+ fieldId: void 0,
105
+ error: noopAccessor(false),
106
+ ariaDescribedBy: noopAccessor(void 0),
107
+ ariaErrorMessage: noopAccessor(void 0),
108
+ setMessage: noop
109
+ };
110
+ var FieldContext = createContext(defaultValue, {});
111
+ var useFieldContext = () => {
112
+ return useContext(FieldContext);
113
+ };
114
+ var FieldProvider = (props) => {
115
+ const fieldId = createUniqueId();
116
+ const [messages, setMessages] = createSignal([]);
117
+ const error = createMemo(() => {
118
+ return props.error;
119
+ });
120
+ const ariaDescribedBy = createMemo(() => {
121
+ return getMessageIds(messages());
122
+ });
123
+ const ariaErrorMessage = createMemo(() => {
124
+ return getMessageIds(messages().filter(isError));
125
+ });
126
+ const setMessage = (message) => {
127
+ setMessages((prev) => [...prev, message]);
128
+ };
129
+ return <FieldContext.Provider
130
+ value={{
131
+ fieldId,
132
+ error,
133
+ setMessage,
134
+ ariaDescribedBy,
135
+ ariaErrorMessage
136
+ }}
137
+ >
138
+ {props.children}
139
+ </FieldContext.Provider>;
140
+ };
141
+
142
+ // src/checkbox/checkbox.tsx
143
+ var Checkbox = (props) => {
144
+ const [local, rest] = splitProps3(props, ["label", "error", "class"]);
145
+ const context = useFieldContext();
146
+ const id = createUniqueId2();
147
+ return <span class={cls(checkbox_default.checkbox, local.class, rest.disabled && checkbox_default.disabled)}>
148
+ <input
149
+ {...rest}
150
+ id={id}
151
+ type="checkbox"
152
+ class={checkbox_default.input}
153
+ aria-describedby={context.ariaDescribedBy()}
154
+ aria-invalid={context.error() || !!local.error}
155
+ aria-errormessage={context.ariaErrorMessage()}
156
+ />
157
+ <span class={checkbox_default.indicator} />
158
+
159
+ {local.label && <label for={id} class={checkbox_default.label}>
160
+ {local.label}
161
+ </label>}
162
+ </span>;
163
+ };
164
+
165
+ // src/text_input/text_input.tsx
166
+ import { splitProps as splitProps4 } from "solid-js";
167
+
168
+ // src/text_input/text_input.module.css
169
+ var text_input_default = {
170
+ input: "text_input_input"
171
+ };
172
+
173
+ // src/text_input/text_input.tsx
174
+ var TextInput = (props) => {
175
+ const [local, rest] = splitProps4(props, ["error", "class"]);
176
+ const context = useFieldContext();
177
+ return <input
178
+ {...rest}
179
+ class={cls(text_input_default.input, local.class)}
180
+ id={context.fieldId}
181
+ aria-describedby={context.ariaDescribedBy()}
182
+ aria-invalid={context.error() || !!local.error}
183
+ aria-errormessage={context.ariaErrorMessage()}
184
+ />;
185
+ };
186
+
187
+ // src/dialog/dialog.tsx
188
+ import { children, createEffect as createEffect2, createUniqueId as createUniqueId3 } from "solid-js";
189
+
190
+ // src/dialog/provider/provider.tsx
191
+ import { createEffect, createMemo as createMemo2, createSignal as createSignal2 } from "solid-js";
192
+
193
+ // src/dialog/provider/context.ts
194
+ import { createContext as createContext2, useContext as useContext2 } from "solid-js";
195
+ var defaultValue2 = {
196
+ setDialogRef() {
197
+ },
198
+ ariaLabelledBy: noopAccessor(void 0),
199
+ ariaDescribedBy: noopAccessor(void 0),
200
+ setTitleId: noopSetter(),
201
+ setDescriptionId: noopSetter(),
202
+ openDialog: noop,
203
+ closeDialog: noop,
204
+ onOpenChange: noop,
205
+ onBeforeClose: noop
206
+ };
207
+ var DialogContext = createContext2(defaultValue2);
208
+ var useDialogContext = () => {
209
+ return useContext2(DialogContext);
210
+ };
211
+
212
+ // src/dialog/provider/provider.tsx
213
+ var DialogProvider = (props) => {
214
+ let dialogRef;
215
+ const setDialogRef = (element) => {
216
+ dialogRef = element;
217
+ };
218
+ const [ariaLabelledBy, setTitleId] = createSignal2();
219
+ const [ariaDescribedBy, setDescriptionId] = createSignal2();
220
+ const isOpen = createMemo2(() => {
221
+ return props.isOpen;
222
+ });
223
+ const openDialog = () => {
224
+ dialogRef?.showModal();
225
+ props.onOpenChange?.(true);
226
+ };
227
+ const closeDialog = () => {
228
+ dialogRef?.requestClose();
229
+ };
230
+ createEffect(() => {
231
+ if (isOpen()) {
232
+ openDialog();
233
+ } else {
234
+ closeDialog();
235
+ }
236
+ });
237
+ return <DialogContext.Provider
238
+ value={{
239
+ ariaLabelledBy,
240
+ ariaDescribedBy,
241
+ setDialogRef,
242
+ setTitleId,
243
+ setDescriptionId,
244
+ openDialog,
245
+ closeDialog,
246
+ onOpenChange: props.onOpenChange,
247
+ onBeforeClose: props.onBeforeClose
248
+ }}
249
+ >
250
+ {props.children}
251
+ </DialogContext.Provider>;
252
+ };
253
+
254
+ // src/dialog/dialog.module.css
255
+ var dialog_default = {
256
+ dialog: "dialog_dialog",
257
+ title: "dialog_title",
258
+ description: "dialog_description",
259
+ actions: "dialog_actions"
260
+ };
261
+
262
+ // src/dialog/dialog.tsx
263
+ var Dialog = (props) => {
264
+ return <DialogProvider {...props}>{props.children}</DialogProvider>;
265
+ };
266
+ var Trigger = (props) => {
267
+ const context = useDialogContext();
268
+ const child = children(() => props.children);
269
+ createEffect2(() => {
270
+ const element = child();
271
+ if (element instanceof HTMLElement) {
272
+ element.onclick = context.openDialog;
273
+ }
274
+ });
275
+ return <>{child()}</>;
276
+ };
277
+ var Content = (props) => {
278
+ const context = useDialogContext();
279
+ return <dialog
280
+ {...props}
281
+ ref={(element) => {
282
+ props.ref = element;
283
+ context.setDialogRef(element);
284
+ }}
285
+ class={cls(dialog_default.dialog, props.class)}
286
+ aria-labelledby={context.ariaLabelledBy()}
287
+ aria-describedby={context.ariaDescribedBy()}
288
+ onClose={() => context.onOpenChange?.(false)}
289
+ onCancel={context.onBeforeClose}
290
+ >
291
+ {props.children}
292
+ </dialog>;
293
+ };
294
+ var Title = (props) => {
295
+ const context = useDialogContext();
296
+ const titleId = createUniqueId3();
297
+ context.setTitleId(titleId);
298
+ return <h2 {...props} id={titleId} class={cls(dialog_default.title, props.class)}>
299
+ {props.children}
300
+ </h2>;
301
+ };
302
+ var Description = (props) => {
303
+ const context = useDialogContext();
304
+ const descriptionId = createUniqueId3();
305
+ context.setDescriptionId(descriptionId);
306
+ return <p {...props} id={descriptionId} class={cls(dialog_default.description, props.class)}>
307
+ {props.children}
308
+ </p>;
309
+ };
310
+ var Close = (props) => {
311
+ const context = useDialogContext();
312
+ const child = children(() => props.children);
313
+ createEffect2(() => {
314
+ const element = child();
315
+ if (element instanceof HTMLElement) {
316
+ element.onclick = context.closeDialog;
317
+ }
318
+ });
319
+ return <>{child()}</>;
320
+ };
321
+ var Actions = (props) => {
322
+ return <div {...props} class={cls(dialog_default.actions, props.class)}>
323
+ {props.children}
324
+ </div>;
325
+ };
326
+ Dialog.Trigger = Trigger;
327
+ Dialog.Content = Content;
328
+ Dialog.Title = Title;
329
+ Dialog.Description = Description;
330
+ Dialog.Close = Close;
331
+ Dialog.Actions = Actions;
332
+
333
+ // src/field/field.tsx
334
+ import { createUniqueId as createUniqueId4, Show, splitProps as splitProps5 } from "solid-js";
335
+
336
+ // src/field/field.module.css
337
+ var field_default = {
338
+ field: "field_field",
339
+ label: "field_label",
340
+ message: "field_message",
341
+ error: "field_error"
342
+ };
343
+
344
+ // src/field/field.tsx
345
+ var Field = (props) => {
346
+ const [local, rest] = splitProps5(props, ["class", "error"]);
347
+ return <FieldProvider error={!!local.error}>
348
+ <div {...rest} class={cls(field_default.field, local.class)}>
349
+ {props.children}
350
+ </div>
351
+ </FieldProvider>;
352
+ };
353
+ var FieldLabel = (props) => {
354
+ const [local, rest] = splitProps5(props, ["class"]);
355
+ const context = useFieldContext();
356
+ return <label {...rest} for={context.fieldId} class={cls(field_default.label, local.class)}>
357
+ {rest.children}
358
+ </label>;
359
+ };
360
+ var FieldMessage = (props) => {
361
+ const [local, rest] = splitProps5(props, ["class", "level"]);
362
+ const context = useFieldContext();
363
+ const messageId = createUniqueId4();
364
+ context.setMessage({ level: local.level || "info", id: messageId });
365
+ return <Show when={rest.children}>
366
+ <p
367
+ {...rest}
368
+ id={messageId}
369
+ class={cls(field_default.message, local.class, local.level === "error" && field_default.error)}
370
+ >
371
+ {rest.children}
372
+ </p>
373
+ </Show>;
374
+ };
375
+ Field.Label = FieldLabel;
376
+ Field.Message = FieldMessage;
377
+ export {
378
+ Button,
379
+ Checkbox,
380
+ Dialog,
381
+ Field,
382
+ Link,
383
+ TextInput,
384
+ button_default as buttonSx,
385
+ cls
386
+ };
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "solid-uix",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "type": "module",
5
+ "main": "dist/main.js",
5
6
  "module": "./dist/main.js",
6
- "types": "./dist/types/main.d.ts",
7
+ "types": "./dist/main.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
- "import": "./dist/main.js"
10
+ "types": "./dist/main.d.ts",
11
+ "solid": "./dist/main.jsx",
12
+ "default": "./dist/main.js"
10
13
  },
11
- "./ssr": {
12
- "import": "./dist/ssr/main.js"
13
- },
14
- "./css": {
15
- "import": "./dist/main.css"
14
+ "./dist/main.css": {
15
+ "default": "./dist/main.css"
16
16
  }
17
17
  },
18
18
  "files": [
@@ -29,15 +29,16 @@
29
29
  "@solidjs/testing-library": "^0.8.10",
30
30
  "@testing-library/user-event": "^14.6.1",
31
31
  "@types/node": "^24.9.2",
32
+ "esbuild-plugin-solid": "^0.6.0",
32
33
  "happy-dom": "^17.4.4",
34
+ "tsup": "^8.3.5",
33
35
  "typescript": "~5.7.2",
34
36
  "vite": "^6.0.11",
35
- "vite-plugin-dts": "^4.5.0",
36
37
  "vite-plugin-solid": "^2.11.6",
37
38
  "vitest": "^3.1.1"
38
39
  },
39
40
  "scripts": {
40
- "build": "tsc && vite build && BUILD_TARGET=ssr vite build && rm -f dist/ssr/*.css",
41
+ "build": "tsc --project tsconfig.build.json && tsup",
41
42
  "test": "vitest run",
42
43
  "start": "cd src-storybook && npm start"
43
44
  },
package/dist/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sources":["../src/utils/cls.ts","../src/button/button.tsx","../src/link/link.tsx","../src/utils/message.ts","../src/utils/noop.ts","../src/field/field.context.tsx","../src/checkbox/checkbox.tsx","../src/text_input/text_input.tsx","../src/dialog/provider/context.ts","../src/dialog/provider/provider.tsx","../src/dialog/dialog.tsx","../src/field/field.tsx"],"sourcesContent":["type ClassName = string | undefined | boolean;\n\nexport const cls = (...classes: ClassName[]): string => {\n return classes.filter(Boolean).join(\" \");\n};\n","import { ButtonProps } from \"./button.types\";\nimport { mergeProps, splitProps } from \"solid-js\";\nimport { cls } from \"../utils/cls\";\nimport sx from \"./button.module.css\";\n\nconst defaultProps = {\n variant: \"solid\",\n};\n\nexport const Button = (props: ButtonProps) => {\n const merged = mergeProps(defaultProps, props);\n const [local, rest] = splitProps(merged, [\"class\", \"variant\"]);\n\n return (\n <button\n type=\"button\"\n {...rest}\n class={cls(\n sx.button,\n local.class,\n local.variant === \"solid\" && sx.solid,\n local.variant === \"outlined\" && sx.outlined\n )}\n >\n {rest.children}\n </button>\n );\n};\n\nexport { sx as buttonSx };\n","import { cls } from \"../utils/cls\";\nimport { LinkProps } from \"./link.types\";\nimport sx from \"./link.module.css\";\nimport { splitProps } from \"solid-js\";\n\nexport const Link = (props: LinkProps) => {\n const [local, rest] = splitProps(props, [\"class\", \"disabled\", \"color\", \"underline\"]);\n\n return (\n <a\n {...rest}\n class={cls(\n sx.link,\n local.class,\n local.disabled && sx.disabled,\n local.color === \"secondary\" && sx.secondary,\n local.underline === \"always\" && sx.underline\n )}\n aria-disabled={local.disabled}\n >\n {rest.children}\n </a>\n );\n};\n","export type MessageLevel = \"info\" | \"warning\" | \"error\";\n\nexport type Message = {\n level: MessageLevel;\n id: string;\n};\n\nexport const isError = (message: Message) => {\n return message.level === \"error\";\n};\n\nexport const getMessageIds = (messages: Message[]) => {\n if (!messages.length) {\n return undefined;\n }\n\n return messages.map((message) => message.id).join(\" \");\n};\n","import { Accessor, Setter } from \"solid-js\";\n\nexport const noop = () => {};\n\nexport const noopAccessor = <T>(value: T): Accessor<T> => {\n return () => value;\n};\n\nexport const noopSetter = <T>(): Setter<T> => {\n return (() => {}) as any;\n};\n","import { createContext, createMemo, createSignal, createUniqueId, useContext } from \"solid-js\";\nimport { FieldContextValue, FieldProviderProps } from \"./field.types\";\nimport { getMessageIds, isError, Message } from \"../utils/message\";\nimport { noop, noopAccessor } from \"../utils/noop\";\n\nconst defaultValue: FieldContextValue = {\n fieldId: undefined,\n error: noopAccessor(false),\n ariaDescribedBy: noopAccessor(undefined),\n ariaErrorMessage: noopAccessor(undefined),\n setMessage: noop,\n};\n\nconst FieldContext = createContext(defaultValue, {});\n\nexport const useFieldContext = () => {\n return useContext(FieldContext);\n};\n\nexport const FieldProvider = (props: FieldProviderProps) => {\n const fieldId = createUniqueId();\n\n const [messages, setMessages] = createSignal<Message[]>([]);\n\n const error = createMemo(() => {\n return props.error;\n });\n\n const ariaDescribedBy = createMemo(() => {\n return getMessageIds(messages());\n });\n\n const ariaErrorMessage = createMemo(() => {\n return getMessageIds(messages().filter(isError));\n });\n\n const setMessage = (message: Message) => {\n setMessages((prev) => [...prev, message]);\n };\n\n return (\n <FieldContext.Provider\n value={{\n fieldId,\n error,\n setMessage,\n ariaDescribedBy,\n ariaErrorMessage,\n }}\n >\n {props.children}\n </FieldContext.Provider>\n );\n};\n","import { createUniqueId, splitProps } from \"solid-js\";\nimport { CheckboxProps } from \"./checkbox.types\";\nimport sx from \"./checkbox.module.css\";\nimport { cls } from \"../utils/cls\";\nimport { useFieldContext } from \"../field/field.context\";\n\nexport const Checkbox = (props: CheckboxProps) => {\n const [local, rest] = splitProps(props, [\"label\", \"error\", \"class\"]);\n const context = useFieldContext();\n const id = createUniqueId();\n\n return (\n <span class={cls(sx.checkbox, local.class, rest.disabled && sx.disabled)}>\n <input\n {...rest}\n id={id}\n type=\"checkbox\"\n class={sx.input}\n aria-describedby={context.ariaDescribedBy()}\n aria-invalid={context.error() || !!local.error}\n aria-errormessage={context.ariaErrorMessage()}\n />\n <span class={sx.indicator} />\n\n {local.label && (\n <label for={id} class={sx.label}>\n {local.label}\n </label>\n )}\n </span>\n );\n};\n","import { splitProps } from \"solid-js\";\nimport { TextInputProps } from \"./text_input.types\";\nimport { cls } from \"../utils/cls\";\nimport { useFieldContext } from \"../field/field.context\";\nimport sx from \"./text_input.module.css\";\n\nexport const TextInput = (props: TextInputProps) => {\n const [local, rest] = splitProps(props, [\"error\", \"class\"]);\n const context = useFieldContext();\n\n return (\n <input\n {...rest}\n class={cls(sx.input, local.class)}\n id={context.fieldId}\n aria-describedby={context.ariaDescribedBy()}\n aria-invalid={context.error() || !!local.error}\n aria-errormessage={context.ariaErrorMessage()}\n />\n );\n};\n","import { createContext, useContext } from \"solid-js\";\nimport { noop, noopAccessor, noopSetter } from \"../../utils/noop\";\nimport { DialogContextValue } from \"./context.types\";\n\nconst defaultValue: DialogContextValue = {\n setDialogRef() {},\n ariaLabelledBy: noopAccessor(undefined),\n ariaDescribedBy: noopAccessor(undefined),\n setTitleId: noopSetter(),\n setDescriptionId: noopSetter(),\n openDialog: noop,\n closeDialog: noop,\n onOpenChange: noop,\n onBeforeClose: noop,\n};\n\nexport const DialogContext = createContext(defaultValue);\n\nexport const useDialogContext = () => {\n return useContext(DialogContext);\n};\n","import { createEffect, createMemo, createSignal } from \"solid-js\";\nimport { DialogProviderProps } from \"./provider.types\";\nimport { DialogContext } from \"./context\";\nimport { SetDialogRef } from \"./context.types\";\n\nexport const DialogProvider = (props: DialogProviderProps) => {\n let dialogRef: HTMLDialogElement;\n\n const setDialogRef: SetDialogRef = (element) => {\n dialogRef = element;\n };\n\n const [ariaLabelledBy, setTitleId] = createSignal<string | undefined>();\n const [ariaDescribedBy, setDescriptionId] = createSignal<string | undefined>();\n\n const isOpen = createMemo(() => {\n return props.isOpen;\n });\n\n const openDialog = () => {\n dialogRef?.showModal();\n props.onOpenChange?.(true);\n };\n\n const closeDialog = () => {\n dialogRef?.requestClose();\n };\n\n createEffect(() => {\n if (isOpen()) {\n openDialog();\n } else {\n closeDialog();\n }\n });\n\n return (\n <DialogContext.Provider\n value={{\n ariaLabelledBy,\n ariaDescribedBy,\n setDialogRef,\n setTitleId,\n setDescriptionId,\n openDialog,\n closeDialog,\n onOpenChange: props.onOpenChange,\n onBeforeClose: props.onBeforeClose,\n }}\n >\n {props.children}\n </DialogContext.Provider>\n );\n};\n","import { children, createEffect, createUniqueId, ParentProps } from \"solid-js\";\nimport {\n DialogActionsProps,\n DialogCloseProps,\n DialogContentProps,\n DialogDescriptionProps,\n DialogProps,\n DialogTitleProps,\n} from \"./dialog.types\";\nimport { cls } from \"../utils/cls\";\nimport { DialogProvider } from \"./provider/provider\";\nimport { useDialogContext } from \"./provider/context\";\nimport sx from \"./dialog.module.css\";\n\nexport const Dialog = (props: DialogProps) => {\n return <DialogProvider {...props}>{props.children}</DialogProvider>;\n};\n\nconst Trigger = (props: ParentProps) => {\n const context = useDialogContext();\n const child = children(() => props.children);\n\n createEffect(() => {\n const element = child();\n\n if (element instanceof HTMLElement) {\n element.onclick = context.openDialog;\n }\n });\n\n return <>{child()}</>;\n};\n\nconst Content = (props: DialogContentProps) => {\n const context = useDialogContext();\n\n return (\n <dialog\n {...props}\n ref={(element) => {\n props.ref = element;\n context.setDialogRef(element);\n }}\n class={cls(sx.dialog, props.class)}\n aria-labelledby={context.ariaLabelledBy()}\n aria-describedby={context.ariaDescribedBy()}\n onClose={() => context.onOpenChange?.(false)}\n onCancel={context.onBeforeClose}\n >\n {props.children}\n </dialog>\n );\n};\n\nconst Title = (props: DialogTitleProps) => {\n const context = useDialogContext();\n const titleId = createUniqueId();\n\n context.setTitleId(titleId);\n\n return (\n <h2 {...props} id={titleId} class={cls(sx.title, props.class)}>\n {props.children}\n </h2>\n );\n};\n\nconst Description = (props: DialogDescriptionProps) => {\n const context = useDialogContext();\n const descriptionId = createUniqueId();\n\n context.setDescriptionId(descriptionId);\n\n return (\n <p {...props} id={descriptionId} class={cls(sx.description, props.class)}>\n {props.children}\n </p>\n );\n};\n\nconst Close = (props: DialogCloseProps) => {\n const context = useDialogContext();\n const child = children(() => props.children);\n\n createEffect(() => {\n const element = child();\n\n if (element instanceof HTMLElement) {\n element.onclick = context.closeDialog;\n }\n });\n\n return <>{child()}</>;\n};\n\nconst Actions = (props: DialogActionsProps) => {\n return (\n <div {...props} class={cls(sx.actions, props.class)}>\n {props.children}\n </div>\n );\n};\n\nDialog.Trigger = Trigger;\nDialog.Content = Content;\nDialog.Title = Title;\nDialog.Description = Description;\nDialog.Close = Close;\nDialog.Actions = Actions;\n","import { createUniqueId, Show, splitProps } from \"solid-js\";\nimport { FieldLabelProps, FieldMessageProps, FieldProps } from \"./field.types\";\nimport { FieldProvider, useFieldContext } from \"./field.context\";\nimport { cls } from \"../utils/cls\";\nimport sx from \"./field.module.css\";\n\nexport const Field = (props: FieldProps) => {\n const [local, rest] = splitProps(props, [\"class\", \"error\"]);\n\n return (\n <FieldProvider error={!!local.error}>\n <div {...rest} class={cls(sx.field, local.class)}>\n {props.children}\n </div>\n </FieldProvider>\n );\n};\n\nconst FieldLabel = (props: FieldLabelProps) => {\n const [local, rest] = splitProps(props, [\"class\"]);\n const context = useFieldContext();\n\n return (\n <label {...rest} for={context.fieldId} class={cls(sx.label, local.class)}>\n {rest.children}\n </label>\n );\n};\n\nconst FieldMessage = (props: FieldMessageProps) => {\n const [local, rest] = splitProps(props, [\"class\", \"level\"]);\n const context = useFieldContext();\n const messageId = createUniqueId();\n\n context.setMessage({ level: local.level || \"info\", id: messageId });\n\n return (\n <Show when={rest.children}>\n <p\n {...rest}\n id={messageId}\n class={cls(sx.message, local.class, local.level === \"error\" && sx.error)}\n >\n {rest.children}\n </p>\n </Show>\n );\n};\n\nField.Label = FieldLabel;\n\nField.Message = FieldMessage;\n"],"names":["cls","classes","defaultProps","variant","Button","props","merged","mergeProps","local","rest","splitProps","_el$","_tmpl$","_$mergeProps","sx","button","class","solid","outlined","children","Link","link","disabled","color","secondary","underline","isError","message","getMessageIds","messages","noop","noopAccessor","value","noopSetter","defaultValue","fieldId","undefined","error","ariaDescribedBy","ariaErrorMessage","setMessage","FieldContext","createContext","useFieldContext","useContext","FieldProvider","createUniqueId","setMessages","createSignal","createMemo","filter","prev","_$createComponent","Provider","Checkbox","context","id","_el$2","firstChild","_el$3","nextSibling","input","_$insert","_c$","_$memo","label","_el$4","_tmpl$2","_$effect","_$className","_p$","_v$","checkbox","_v$2","indicator","e","t","TextInput","DialogContext","useDialogContext","DialogProvider","dialogRef","setDialogRef","element","ariaLabelledBy","setTitleId","setDescriptionId","isOpen","openDialog","showModal","onOpenChange","closeDialog","requestClose","createEffect","onBeforeClose","Dialog","Trigger","child","HTMLElement","onclick","Content","_$use","ref","dialog","onClose","onCancel","Title","titleId","title","Description","descriptionId","_tmpl$3","description","Close","Actions","_tmpl$4","actions","Field","field","FieldLabel","FieldMessage","messageId","level","Show","when","Label","Message"],"mappings":"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"}