solid-uix 0.3.1 → 0.5.0

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 +22 -2
  2. package/dist/main.css +1 -1
  3. package/dist/main.js +271 -446
  4. package/dist/main.js.map +1 -0
  5. package/dist/ssr/main.js +395 -0
  6. package/dist/ssr/main.js.map +1 -0
  7. package/dist/{button → types/button}/button.d.ts +2 -0
  8. package/dist/{button → types/button}/button.types.d.ts +3 -1
  9. package/dist/types/dialog/dialog.d.ts +11 -0
  10. package/dist/types/dialog/dialog.types.d.ts +17 -0
  11. package/dist/types/dialog/provider/context.d.ts +3 -0
  12. package/dist/types/dialog/provider/context.types.d.ts +14 -0
  13. package/dist/types/dialog/provider/provider.d.ts +2 -0
  14. package/dist/types/dialog/provider/provider.types.d.ts +7 -0
  15. package/dist/{field → types/field}/field.types.d.ts +1 -1
  16. package/dist/types/link/link.d.ts +2 -0
  17. package/dist/types/link/link.stories.d.ts +48 -0
  18. package/dist/types/link/link.types.d.ts +6 -0
  19. package/dist/types/main.d.ts +13 -0
  20. package/dist/types/select/select.d.ts +5 -0
  21. package/dist/types/select/select.types.d.ts +5 -0
  22. package/dist/types/text_area/text_area.d.ts +2 -0
  23. package/dist/types/text_area/text_area.stories.d.ts +38 -0
  24. package/dist/types/text_area/text_area.types.d.ts +4 -0
  25. package/dist/types/text_input/text_input.stories.d.ts +30 -0
  26. package/dist/{utils → types/utils}/noop.d.ts +2 -1
  27. package/package.json +10 -9
  28. package/dist/main.d.ts +0 -4
  29. package/dist/main.umd.cjs +0 -1
  30. /package/dist/{checkbox → types/checkbox}/checkbox.d.ts +0 -0
  31. /package/dist/{checkbox → types/checkbox}/checkbox.stories.d.ts +0 -0
  32. /package/dist/{checkbox → types/checkbox}/checkbox.types.d.ts +0 -0
  33. /package/dist/{field → types/field}/field.context.d.ts +0 -0
  34. /package/dist/{field → types/field}/field.d.ts +0 -0
  35. /package/dist/{list → types/list}/list.d.ts +0 -0
  36. /package/dist/{list → types/list}/list.types.d.ts +0 -0
  37. /package/dist/{text_input → types/text_input}/text_input.d.ts +0 -0
  38. /package/dist/{text_input → types/text_input}/text_input.types.d.ts +0 -0
  39. /package/dist/{utils → types/utils}/cls.d.ts +0 -0
  40. /package/dist/{utils → types/utils}/message.d.ts +0 -0
  41. /package/dist/{utils → types/utils}/string.d.ts +0 -0
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,395 @@
1
+ import { ssrElement, mergeProps as mergeProps$1, escape, createComponent, ssr, ssrHydrationKey, ssrAttribute } from 'solid-js/web';
2
+ import { mergeProps, splitProps, createContext, useContext, createUniqueId, createSignal, createMemo, createEffect, children, Show } from 'solid-js';
3
+
4
+ const cls = (...classes) => {
5
+ return classes.filter(Boolean).join(" ");
6
+ };
7
+
8
+ const button = "_button_1x3l8_1";
9
+ const solid = "_solid_1x3l8_29";
10
+ const outlined = "_outlined_1x3l8_44";
11
+ const link$1 = "_link_1x3l8_60";
12
+ const sx$5 = {
13
+ button: button,
14
+ solid: solid,
15
+ outlined: outlined,
16
+ link: link$1
17
+ };
18
+
19
+ const defaultProps = {
20
+ variant: "solid"
21
+ };
22
+ const Button = (props) => {
23
+ const merged = mergeProps(defaultProps, props);
24
+ const [local, rest] = splitProps(merged, ["class", "variant"]);
25
+ return ssrElement("button", mergeProps$1({
26
+ type: "button"
27
+ }, rest, {
28
+ get ["class"]() {
29
+ return cls(sx$5.button, local.class, local.variant === "solid" && sx$5.solid, local.variant === "outlined" && sx$5.outlined);
30
+ }
31
+ }), () => escape(rest.children), true);
32
+ };
33
+
34
+ const link = "_link_yqbjv_1";
35
+ const underline = "_underline_yqbjv_14";
36
+ const secondary = "_secondary_yqbjv_18";
37
+ const disabled$1 = "_disabled_yqbjv_22";
38
+ const sx$4 = {
39
+ link: link,
40
+ underline: underline,
41
+ secondary: secondary,
42
+ disabled: disabled$1
43
+ };
44
+
45
+ const Link = (props) => {
46
+ const [local, rest] = splitProps(props, ["class", "disabled", "color", "underline"]);
47
+ return ssrElement("a", mergeProps$1(rest, {
48
+ get ["class"]() {
49
+ return cls(sx$4.link, local.class, local.disabled && sx$4.disabled, local.color === "secondary" && sx$4.secondary, local.underline === "always" && sx$4.underline);
50
+ },
51
+ get ["aria-disabled"]() {
52
+ return local.disabled;
53
+ }
54
+ }), () => escape(rest.children), true);
55
+ };
56
+
57
+ const checkbox = "_checkbox_1npj4_1";
58
+ const input$1 = "_input_1npj4_8";
59
+ const indicator = "_indicator_1npj4_18";
60
+ const label$1 = "_label_1npj4_37";
61
+ const disabled = "_disabled_1npj4_46";
62
+ const sx$3 = {
63
+ checkbox: checkbox,
64
+ input: input$1,
65
+ indicator: indicator,
66
+ label: label$1,
67
+ disabled: disabled
68
+ };
69
+
70
+ const isError = (message) => {
71
+ return message.level === "error";
72
+ };
73
+ const getMessageIds = (messages) => {
74
+ if (!messages.length) {
75
+ return void 0;
76
+ }
77
+ return messages.map((message) => message.id).join(" ");
78
+ };
79
+
80
+ const noop = () => {
81
+ };
82
+ const noopAccessor = (value) => {
83
+ return () => value;
84
+ };
85
+ const noopSetter = () => {
86
+ return () => {
87
+ };
88
+ };
89
+
90
+ const defaultValue$1 = {
91
+ fieldId: void 0,
92
+ error: noopAccessor(false),
93
+ ariaDescribedBy: noopAccessor(void 0),
94
+ ariaErrorMessage: noopAccessor(void 0),
95
+ setMessage: noop
96
+ };
97
+ const FieldContext = createContext(defaultValue$1, {});
98
+ const useFieldContext = () => {
99
+ return useContext(FieldContext);
100
+ };
101
+ const FieldProvider = (props) => {
102
+ const fieldId = createUniqueId();
103
+ const [messages, setMessages] = createSignal([]);
104
+ const error = createMemo(() => {
105
+ return props.error;
106
+ });
107
+ const ariaDescribedBy = createMemo(() => {
108
+ return getMessageIds(messages());
109
+ });
110
+ const ariaErrorMessage = createMemo(() => {
111
+ return getMessageIds(messages().filter(isError));
112
+ });
113
+ const setMessage = (message) => {
114
+ setMessages((prev) => [...prev, message]);
115
+ };
116
+ return createComponent(FieldContext.Provider, {
117
+ value: {
118
+ fieldId,
119
+ error,
120
+ setMessage,
121
+ ariaDescribedBy,
122
+ ariaErrorMessage
123
+ },
124
+ get children() {
125
+ return props.children;
126
+ }
127
+ });
128
+ };
129
+
130
+ var _tmpl$ = ["<span", ">", "<span", "></span><!--$-->", "<!--/--></span>"], _tmpl$2 = ["<label", ">", "</label>"];
131
+ const Checkbox = (props) => {
132
+ const [local, rest] = splitProps(props, ["label", "error", "class"]);
133
+ const context = useFieldContext();
134
+ const id = createUniqueId();
135
+ return ssr(_tmpl$, ssrHydrationKey() + ssrAttribute("class", escape(cls(sx$3.checkbox, local.class, rest.disabled && sx$3.disabled), true), false), ssrElement("input", mergeProps$1(rest, {
136
+ id,
137
+ type: "checkbox",
138
+ get ["class"]() {
139
+ return sx$3.input;
140
+ },
141
+ get ["aria-describedby"]() {
142
+ return context.ariaDescribedBy();
143
+ },
144
+ get ["aria-invalid"]() {
145
+ return context.error() || !!local.error;
146
+ },
147
+ get ["aria-errormessage"]() {
148
+ return context.ariaErrorMessage();
149
+ }
150
+ }), void 0, false), ssrAttribute("class", escape(sx$3.indicator, true), false), local.label && ssr(_tmpl$2, ssrHydrationKey() + ssrAttribute("for", escape(id, true), false) + ssrAttribute("class", escape(sx$3.label, true), false), escape(local.label)));
151
+ };
152
+
153
+ const input = "_input_vvaje_1";
154
+ const sx$2 = {
155
+ input: input
156
+ };
157
+
158
+ const TextInput = (props) => {
159
+ const [local, rest] = splitProps(props, ["error", "class"]);
160
+ const context = useFieldContext();
161
+ return ssrElement("input", mergeProps$1(rest, {
162
+ get ["class"]() {
163
+ return cls(sx$2.input, local.class);
164
+ },
165
+ get id() {
166
+ return context.fieldId;
167
+ },
168
+ get ["aria-describedby"]() {
169
+ return context.ariaDescribedBy();
170
+ },
171
+ get ["aria-invalid"]() {
172
+ return context.error() || !!local.error;
173
+ },
174
+ get ["aria-errormessage"]() {
175
+ return context.ariaErrorMessage();
176
+ }
177
+ }), void 0, true);
178
+ };
179
+
180
+ const defaultValue = {
181
+ setDialogRef() {
182
+ },
183
+ ariaLabelledBy: noopAccessor(void 0),
184
+ ariaDescribedBy: noopAccessor(void 0),
185
+ setTitleId: noopSetter(),
186
+ setDescriptionId: noopSetter(),
187
+ openDialog: noop,
188
+ closeDialog: noop,
189
+ onOpenChange: noop,
190
+ onBeforeClose: noop
191
+ };
192
+ const DialogContext = createContext(defaultValue);
193
+ const useDialogContext = () => {
194
+ return useContext(DialogContext);
195
+ };
196
+
197
+ const DialogProvider = (props) => {
198
+ let dialogRef;
199
+ const setDialogRef = (element) => {
200
+ dialogRef = element;
201
+ };
202
+ const [ariaLabelledBy, setTitleId] = createSignal();
203
+ const [ariaDescribedBy, setDescriptionId] = createSignal();
204
+ const isOpen = createMemo(() => {
205
+ return props.isOpen;
206
+ });
207
+ const openDialog = () => {
208
+ dialogRef?.showModal();
209
+ props.onOpenChange?.(true);
210
+ };
211
+ const closeDialog = () => {
212
+ dialogRef?.requestClose();
213
+ };
214
+ createEffect(() => {
215
+ if (isOpen()) {
216
+ openDialog();
217
+ } else {
218
+ closeDialog();
219
+ }
220
+ });
221
+ return createComponent(DialogContext.Provider, {
222
+ get value() {
223
+ return {
224
+ ariaLabelledBy,
225
+ ariaDescribedBy,
226
+ setDialogRef,
227
+ setTitleId,
228
+ setDescriptionId,
229
+ openDialog,
230
+ closeDialog,
231
+ onOpenChange: props.onOpenChange,
232
+ onBeforeClose: props.onBeforeClose
233
+ };
234
+ },
235
+ get children() {
236
+ return props.children;
237
+ }
238
+ });
239
+ };
240
+
241
+ const dialog = "_dialog_1klsa_1";
242
+ const title = "_title_1klsa_16";
243
+ const description = "_description_1klsa_26";
244
+ const actions = "_actions_1klsa_37";
245
+ const sx$1 = {
246
+ dialog: dialog,
247
+ title: title,
248
+ description: description,
249
+ actions: actions
250
+ };
251
+
252
+ const Dialog = (props) => {
253
+ return createComponent(DialogProvider, mergeProps$1(props, {
254
+ get children() {
255
+ return props.children;
256
+ }
257
+ }));
258
+ };
259
+ const Trigger = (props) => {
260
+ const context = useDialogContext();
261
+ const child = children(() => props.children);
262
+ createEffect(() => {
263
+ const element = child();
264
+ if (element instanceof HTMLElement) {
265
+ element.onclick = context.openDialog;
266
+ }
267
+ });
268
+ return child();
269
+ };
270
+ const Content = (props) => {
271
+ const context = useDialogContext();
272
+ return ssrElement("dialog", mergeProps$1(props, {
273
+ get ["class"]() {
274
+ return cls(sx$1.dialog, props.class);
275
+ },
276
+ get ["aria-labelledby"]() {
277
+ return context.ariaLabelledBy();
278
+ },
279
+ get ["aria-describedby"]() {
280
+ return context.ariaDescribedBy();
281
+ }
282
+ }), () => escape(props.children), true);
283
+ };
284
+ const Title = (props) => {
285
+ const context = useDialogContext();
286
+ const titleId = createUniqueId();
287
+ context.setTitleId(titleId);
288
+ return ssrElement("h2", mergeProps$1(props, {
289
+ id: titleId,
290
+ get ["class"]() {
291
+ return cls(sx$1.title, props.class);
292
+ }
293
+ }), () => escape(props.children), true);
294
+ };
295
+ const Description = (props) => {
296
+ const context = useDialogContext();
297
+ const descriptionId = createUniqueId();
298
+ context.setDescriptionId(descriptionId);
299
+ return ssrElement("p", mergeProps$1(props, {
300
+ id: descriptionId,
301
+ get ["class"]() {
302
+ return cls(sx$1.description, props.class);
303
+ }
304
+ }), () => escape(props.children), true);
305
+ };
306
+ const Close = (props) => {
307
+ const context = useDialogContext();
308
+ const child = children(() => props.children);
309
+ createEffect(() => {
310
+ const element = child();
311
+ if (element instanceof HTMLElement) {
312
+ element.onclick = context.closeDialog;
313
+ }
314
+ });
315
+ return child();
316
+ };
317
+ const Actions = (props) => {
318
+ return ssrElement("div", mergeProps$1(props, {
319
+ get ["class"]() {
320
+ return cls(sx$1.actions, props.class);
321
+ }
322
+ }), () => escape(props.children), true);
323
+ };
324
+ Dialog.Trigger = Trigger;
325
+ Dialog.Content = Content;
326
+ Dialog.Title = Title;
327
+ Dialog.Description = Description;
328
+ Dialog.Close = Close;
329
+ Dialog.Actions = Actions;
330
+
331
+ const field = "_field_1ijme_1";
332
+ const label = "_label_1ijme_7";
333
+ const message = "_message_1ijme_19";
334
+ const error = "_error_1ijme_31";
335
+ const sx = {
336
+ field: field,
337
+ label: label,
338
+ message: message,
339
+ error: error
340
+ };
341
+
342
+ const Field = (props) => {
343
+ const [local, rest] = splitProps(props, ["class", "error"]);
344
+ return createComponent(FieldProvider, {
345
+ get error() {
346
+ return !!local.error;
347
+ },
348
+ get children() {
349
+ return ssrElement("div", mergeProps$1(rest, {
350
+ get ["class"]() {
351
+ return cls(sx.field, local.class);
352
+ }
353
+ }), () => escape(props.children), true);
354
+ }
355
+ });
356
+ };
357
+ const FieldLabel = (props) => {
358
+ const [local, rest] = splitProps(props, ["class"]);
359
+ const context = useFieldContext();
360
+ return ssrElement("label", mergeProps$1(rest, {
361
+ get ["for"]() {
362
+ return context.fieldId;
363
+ },
364
+ get ["class"]() {
365
+ return cls(sx.label, local.class);
366
+ }
367
+ }), () => escape(rest.children), true);
368
+ };
369
+ const FieldMessage = (props) => {
370
+ const [local, rest] = splitProps(props, ["class", "level"]);
371
+ const context = useFieldContext();
372
+ const messageId = createUniqueId();
373
+ context.setMessage({
374
+ level: local.level || "info",
375
+ id: messageId
376
+ });
377
+ return createComponent(Show, {
378
+ get when() {
379
+ return rest.children;
380
+ },
381
+ get children() {
382
+ return ssrElement("p", mergeProps$1(rest, {
383
+ id: messageId,
384
+ get ["class"]() {
385
+ return cls(sx.message, local.class, local.level === "error" && sx.error);
386
+ }
387
+ }), () => escape(rest.children), true);
388
+ }
389
+ });
390
+ };
391
+ Field.Label = FieldLabel;
392
+ Field.Message = FieldMessage;
393
+
394
+ export { Button, Checkbox, Dialog, Field, Link, TextInput, sx$5 as buttonSx, cls };
395
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
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":["defaultProps","variant","Button","props","merged","mergeProps","local","rest","splitProps","_$ssrElement","_$mergeProps","type","cls","sx","button","class","solid","outlined","_$escape","children","Link","link","disabled","color","secondary","underline","defaultValue","fieldId","undefined","error","noopAccessor","ariaDescribedBy","ariaErrorMessage","setMessage","noop","FieldContext","createContext","useFieldContext","useContext","FieldProvider","createUniqueId","messages","setMessages","createSignal","createMemo","getMessageIds","filter","isError","message","prev","_$createComponent","Provider","value","Checkbox","context","id","_$ssr","_tmpl$","_$ssrHydrationKey","_$ssrAttribute","checkbox","input","indicator","label","_tmpl$2","TextInput","DialogProvider","dialogRef","setDialogRef","element","ariaLabelledBy","setTitleId","setDescriptionId","isOpen","openDialog","showModal","onOpenChange","closeDialog","requestClose","createEffect","DialogContext","onBeforeClose","Dialog","Trigger","useDialogContext","child","HTMLElement","onclick","Content","dialog","Title","titleId","title","Description","descriptionId","description","Close","Actions","actions","Field","field","FieldLabel","FieldMessage","messageId","level","Show","when","Label","Message"],"mappings":"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"}
@@ -1,2 +1,4 @@
1
1
  import { ButtonProps } from './button.types';
2
+ import { default as sx } from './button.module.css';
2
3
  export declare const Button: (props: ButtonProps) => import("solid-js").JSX.Element;
4
+ export { sx as buttonSx };
@@ -1,2 +1,4 @@
1
1
  import { JSX } from 'solid-js';
2
- export type ButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;
2
+ export type ButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
3
+ variant?: "solid" | "outlined";
4
+ };
@@ -0,0 +1,11 @@
1
+ import { ParentProps } from 'solid-js';
2
+ import { DialogActionsProps, DialogCloseProps, DialogContentProps, DialogDescriptionProps, DialogProps, DialogTitleProps } from './dialog.types';
3
+ export declare const Dialog: {
4
+ (props: DialogProps): import("solid-js").JSX.Element;
5
+ Trigger: (props: ParentProps) => import("solid-js").JSX.Element;
6
+ Content: (props: DialogContentProps) => import("solid-js").JSX.Element;
7
+ Title: (props: DialogTitleProps) => import("solid-js").JSX.Element;
8
+ Description: (props: DialogDescriptionProps) => import("solid-js").JSX.Element;
9
+ Close: (props: DialogCloseProps) => import("solid-js").JSX.Element;
10
+ Actions: (props: DialogActionsProps) => import("solid-js").JSX.Element;
11
+ };
@@ -0,0 +1,17 @@
1
+ import { JSX, ParentProps } from 'solid-js';
2
+ export type OnOpenChange = (isOpen: boolean) => void;
3
+ /**
4
+ * Use event.preventDefault() to prevent dialog close
5
+ * @link https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/cancel_event
6
+ */
7
+ export type OnBeforeClose = (event: Event) => void;
8
+ export type DialogProps = ParentProps & {
9
+ isOpen?: boolean;
10
+ onOpenChange?: OnOpenChange;
11
+ onBeforeClose?: OnBeforeClose;
12
+ };
13
+ export type DialogContentProps = JSX.DialogHtmlAttributes<HTMLDialogElement>;
14
+ export type DialogTitleProps = JSX.HTMLAttributes<HTMLHeadingElement>;
15
+ export type DialogDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement>;
16
+ export type DialogCloseProps = ParentProps;
17
+ export type DialogActionsProps = JSX.HTMLAttributes<HTMLDivElement>;
@@ -0,0 +1,3 @@
1
+ import { DialogContextValue } from './context.types';
2
+ export declare const DialogContext: import('solid-js').Context<DialogContextValue>;
3
+ export declare const useDialogContext: () => DialogContextValue;
@@ -0,0 +1,14 @@
1
+ import { Accessor, Setter } from 'solid-js';
2
+ import { OnBeforeClose, OnOpenChange } from '../dialog.types';
3
+ export type SetDialogRef = (element: HTMLDialogElement) => void;
4
+ export type DialogContextValue = {
5
+ setDialogRef: SetDialogRef;
6
+ ariaLabelledBy: Accessor<string | undefined>;
7
+ ariaDescribedBy: Accessor<string | undefined>;
8
+ setTitleId: Setter<string | undefined>;
9
+ setDescriptionId: Setter<string | undefined>;
10
+ openDialog(): void;
11
+ closeDialog(): void;
12
+ onOpenChange?: OnOpenChange;
13
+ onBeforeClose?: OnBeforeClose;
14
+ };
@@ -0,0 +1,2 @@
1
+ import { DialogProviderProps } from './provider.types';
2
+ export declare const DialogProvider: (props: DialogProviderProps) => import("solid-js").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { ParentProps } from 'solid-js';
2
+ import { OnBeforeClose, OnOpenChange } from '../dialog.types';
3
+ export type DialogProviderProps = ParentProps & {
4
+ isOpen?: boolean;
5
+ onOpenChange?: OnOpenChange;
6
+ onBeforeClose?: OnBeforeClose;
7
+ };
@@ -11,8 +11,8 @@ export type FieldMessageProps = JSX.HTMLAttributes<HTMLParagraphElement> & {
11
11
  level?: MessageLevel;
12
12
  };
13
13
  export type FieldContextValue = {
14
+ fieldId?: string;
14
15
  error: Accessor<boolean>;
15
- fieldId: string;
16
16
  ariaDescribedBy: Accessor<string | undefined>;
17
17
  ariaErrorMessage: Accessor<string | undefined>;
18
18
  setMessage(message: Message): void;
@@ -0,0 +1,2 @@
1
+ import { LinkProps } from './link.types';
2
+ export declare const Link: (props: LinkProps) => import("solid-js").JSX.Element;
@@ -0,0 +1,48 @@
1
+ declare const _default: {
2
+ title: string;
3
+ component: (props: import('./link.types').LinkProps) => import("solid-js").JSX.Element;
4
+ parameters: {
5
+ layout: string;
6
+ };
7
+ tags: string[];
8
+ argTypes: {
9
+ color: {
10
+ control: {
11
+ type: string;
12
+ };
13
+ options: string[];
14
+ };
15
+ underline: {
16
+ control: {
17
+ type: string;
18
+ };
19
+ options: string[];
20
+ };
21
+ };
22
+ args: {
23
+ children: string;
24
+ color: string;
25
+ underline: string;
26
+ disabled: boolean;
27
+ onClick: import('storybook/test').Mock<(...args: any[]) => any>;
28
+ };
29
+ };
30
+ export default _default;
31
+ export declare const Default: {
32
+ args: {};
33
+ };
34
+ export declare const Underline: {
35
+ args: {
36
+ underline: string;
37
+ };
38
+ };
39
+ export declare const Secondary: {
40
+ args: {
41
+ color: string;
42
+ };
43
+ };
44
+ export declare const Disabled: {
45
+ args: {
46
+ disabled: boolean;
47
+ };
48
+ };
@@ -0,0 +1,6 @@
1
+ import { JSX } from 'solid-js';
2
+ export type LinkProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {
3
+ disabled?: boolean;
4
+ color?: "accent" | "secondary";
5
+ underline?: "hover" | "always";
6
+ };