@devslab/dds-solid 0.21.1 → 0.22.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 (72) hide show
  1. package/README.ko.md +6 -0
  2. package/README.md +6 -0
  3. package/dist/assets/calendar-view-1RO2mtf1.js +456 -0
  4. package/dist/assets/calendar-view-1RO2mtf1.js.map +1 -0
  5. package/dist/assets/choice-DoXiK8nc.js +443 -0
  6. package/dist/assets/choice-DoXiK8nc.js.map +1 -0
  7. package/dist/assets/utils-Ou0UJRlO.js +11 -0
  8. package/dist/assets/utils-Ou0UJRlO.js.map +1 -0
  9. package/dist/calendar-view-CTBTPB4T.js +444 -0
  10. package/dist/calendar-view-CTBTPB4T.js.map +1 -0
  11. package/dist/calendar-view.d.ts +16 -0
  12. package/dist/calendar-view.d.ts.map +1 -0
  13. package/dist/calendar.d.ts +19 -0
  14. package/dist/calendar.d.ts.map +1 -0
  15. package/dist/calendar.js +95 -0
  16. package/dist/calendar.js.map +1 -0
  17. package/dist/calendar.server.js +95 -0
  18. package/dist/calendar.server.js.map +1 -0
  19. package/dist/choice-BPMiJlPJ.js +395 -0
  20. package/dist/choice-BPMiJlPJ.js.map +1 -0
  21. package/dist/choice-types.d.ts +56 -0
  22. package/dist/choice-types.d.ts.map +1 -0
  23. package/dist/combobox.d.ts +4 -0
  24. package/dist/combobox.d.ts.map +1 -0
  25. package/dist/combobox.js +10 -0
  26. package/dist/combobox.js.map +1 -0
  27. package/dist/combobox.server.js +10 -0
  28. package/dist/combobox.server.js.map +1 -0
  29. package/dist/date-only.d.ts +36 -0
  30. package/dist/date-only.d.ts.map +1 -0
  31. package/dist/date-picker.d.ts +10 -1
  32. package/dist/date-picker.d.ts.map +1 -1
  33. package/dist/date-picker.js +258 -0
  34. package/dist/date-picker.js.map +1 -0
  35. package/dist/date-picker.server.js +260 -0
  36. package/dist/date-picker.server.js.map +1 -0
  37. package/dist/dropdown-menu.d.ts +31 -0
  38. package/dist/dropdown-menu.d.ts.map +1 -0
  39. package/dist/dropdown-menu.js +101 -0
  40. package/dist/dropdown-menu.js.map +1 -0
  41. package/dist/dropdown-menu.server.js +111 -0
  42. package/dist/dropdown-menu.server.js.map +1 -0
  43. package/dist/index.d.ts +6 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +232 -647
  46. package/dist/index.js.map +1 -1
  47. package/dist/input.d.ts +26 -0
  48. package/dist/input.d.ts.map +1 -0
  49. package/dist/input.js +130 -0
  50. package/dist/input.js.map +1 -0
  51. package/dist/input.server.js +120 -0
  52. package/dist/input.server.js.map +1 -0
  53. package/dist/internal/choice.d.ts +5 -0
  54. package/dist/internal/choice.d.ts.map +1 -0
  55. package/dist/popover.d.ts +22 -0
  56. package/dist/popover.d.ts.map +1 -0
  57. package/dist/popover.js +76 -0
  58. package/dist/popover.js.map +1 -0
  59. package/dist/popover.server.js +79 -0
  60. package/dist/popover.server.js.map +1 -0
  61. package/dist/select-picker.d.ts +4 -0
  62. package/dist/select-picker.d.ts.map +1 -0
  63. package/dist/select-picker.js +10 -0
  64. package/dist/select-picker.js.map +1 -0
  65. package/dist/select-picker.server.js +10 -0
  66. package/dist/select-picker.server.js.map +1 -0
  67. package/dist/server.js +28 -445
  68. package/dist/server.js.map +1 -1
  69. package/dist/utils-oKxhg9RG.js +11 -0
  70. package/dist/utils-oKxhg9RG.js.map +1 -0
  71. package/package.json +63 -6
  72. package/styles.css +10 -1
@@ -0,0 +1,120 @@
1
+ import { t as classes } from "./assets/utils-Ou0UJRlO.js";
2
+ import { createEffect, createSignal, createUniqueId, onCleanup, onMount, splitProps } from "solid-js";
3
+ import { escape, mergeProps as mergeProps$1, ssr, ssrAttribute, ssrElement, ssrHydrationKey } from "solid-js/web";
4
+ //#region src/input.tsx
5
+ var _tmpl$ = [
6
+ "<span",
7
+ "><!--$-->",
8
+ "<!--/-->",
9
+ "<!--$-->",
10
+ "<!--/--></span>"
11
+ ];
12
+ var _tmpl$2 = [
13
+ "<label",
14
+ " class=\"dds-input__label\">",
15
+ "</label>"
16
+ ];
17
+ var _tmpl$3 = [
18
+ "<button",
19
+ " type=\"button\" class=\"dds-input__clear\"",
20
+ "><span aria-hidden=\"true\">×</span></button>"
21
+ ];
22
+ var _tmpl$4 = [
23
+ "<span",
24
+ " class=\"dds-input-group__start\">",
25
+ "</span>"
26
+ ];
27
+ var _tmpl$5 = [
28
+ "<span",
29
+ " class=\"dds-input-group__end\">",
30
+ "</span>"
31
+ ];
32
+ /** A native text input. Supply label, aria-label, or aria-labelledby. */
33
+ function Input(props) {
34
+ const [local, rest] = splitProps(props, [
35
+ "value",
36
+ "defaultValue",
37
+ "onValueChange",
38
+ "label",
39
+ "labelPlacement",
40
+ "clearable",
41
+ "clearLabel",
42
+ "class",
43
+ "wrapperClass",
44
+ "id",
45
+ "type",
46
+ "ref",
47
+ "onInput",
48
+ "onKeyDown",
49
+ "disabled",
50
+ "readonly",
51
+ "readOnly"
52
+ ]);
53
+ const generated = createUniqueId();
54
+ const id = () => local.id ?? `dds-input-${generated}`;
55
+ const initial = local.defaultValue ?? "";
56
+ const [internal, setInternal] = createSignal(initial);
57
+ const current = () => local.value ?? internal();
58
+ const readOnly = () => local.readonly || local.readOnly;
59
+ let input;
60
+ onMount(() => {
61
+ input.defaultValue = initial;
62
+ });
63
+ createEffect(() => {
64
+ rest.form;
65
+ const form = input.form;
66
+ const reset = (event) => queueMicrotask(() => {
67
+ if (event.defaultPrevented) return;
68
+ if (local.value === void 0) setInternal(initial);
69
+ input.value = current();
70
+ });
71
+ form?.addEventListener("reset", reset);
72
+ onCleanup(() => form?.removeEventListener("reset", reset));
73
+ });
74
+ return ssr(_tmpl$, ssrHydrationKey() + ssrAttribute("class", escape(classes("dds-input", local.wrapperClass), true), false) + ssrAttribute("data-label-placement", escape(local.labelPlacement ?? "outside", true), false) + ssrAttribute("data-filled", current().length > 0 ? "" : escape(void 0, true), false) + ssrAttribute("data-disabled", local.disabled ? "" : escape(void 0, true), false) + ssrAttribute("data-readonly", readOnly() ? "" : escape(void 0, true), false), local.label != null && ssr(_tmpl$2, ssrHydrationKey() + ssrAttribute("for", escape(id(), true), false), escape(local.label)), ssrElement("input", mergeProps$1(rest, {
75
+ get id() {
76
+ return id();
77
+ },
78
+ get type() {
79
+ return local.type ?? "text";
80
+ },
81
+ get disabled() {
82
+ return local.disabled;
83
+ },
84
+ get readonly() {
85
+ return readOnly();
86
+ },
87
+ get ["class"]() {
88
+ return classes("dds-input__control", local.class);
89
+ },
90
+ get value() {
91
+ return current();
92
+ }
93
+ }), void 0, false), local.clearable && current().length > 0 && !local.disabled && !readOnly() && ssr(_tmpl$3, ssrHydrationKey(), ssrAttribute("aria-label", escape(local.clearLabel ?? "내용 지우기", true), false)));
94
+ }
95
+ /** Layout only: the child Input owns its value and accessible name. */
96
+ function InputGroup(props) {
97
+ const [local, rest] = splitProps(props, [
98
+ "start",
99
+ "end",
100
+ "class",
101
+ "children"
102
+ ]);
103
+ return ssrElement("div", mergeProps$1(rest, { get ["class"]() {
104
+ return classes("dds-input-group", local.class);
105
+ } }), () => [
106
+ "<!--$-->",
107
+ local.start != null && ssr(_tmpl$4, ssrHydrationKey(), escape(local.start)),
108
+ "<!--/-->",
109
+ "<!--$-->",
110
+ escape(local.children),
111
+ "<!--/-->",
112
+ "<!--$-->",
113
+ local.end != null && ssr(_tmpl$5, ssrHydrationKey(), escape(local.end)),
114
+ "<!--/-->"
115
+ ], true);
116
+ }
117
+ //#endregion
118
+ export { Input, InputGroup };
119
+
120
+ //# sourceMappingURL=input.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.server.js","names":["createEffect","createSignal","createUniqueId","onCleanup","onMount","splitProps","JSX","classes","LabelPlacement","InputProps","Omit","InputHTMLAttributes","HTMLInputElement","type","value","defaultValue","onValueChange","next","label","Element","labelPlacement","clearable","clearLabel","class","wrapperClass","readOnly","callHandler","handler","event","E","data","Input","props","local","rest","generated","id","initial","internal","setInternal","current","readonly","input","form","reset","Event","queueMicrotask","defaultPrevented","undefined","addEventListener","removeEventListener","update","disabled","_$ssr","_tmpl$","_$ssrHydrationKey","_$ssrAttribute","_$escape","length","_tmpl$2","_$ssrElement","_$mergeProps","_tmpl$3","InputGroupProps","HTMLAttributes","HTMLDivElement","start","end","children","InputGroup","_tmpl$4","_tmpl$5"],"sources":["../src/input.tsx"],"sourcesContent":["import {\n createEffect,\n createSignal,\n createUniqueId,\n onCleanup,\n onMount,\n splitProps,\n type JSX,\n} from \"solid-js\";\nimport { classes } from \"./utils\";\n\nexport type LabelPlacement = \"outside\" | \"inside\" | \"hidden\";\nexport interface InputProps\n extends Omit<\n JSX.InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"value\" | \"defaultValue\" | \"children\" | \"class\"\n > {\n type?: \"text\" | \"search\" | \"email\" | \"tel\" | \"url\" | \"password\" | \"number\";\n value?: string;\n defaultValue?: string;\n onValueChange?: (next: string) => void;\n label?: JSX.Element;\n labelPlacement?: LabelPlacement;\n clearable?: boolean;\n clearLabel?: string;\n class?: string;\n wrapperClass?: string;\n /** Alias for the native Solid readonly property. */\n readOnly?: boolean;\n}\nfunction callHandler<E>(\n handler:\n | ((event: E) => void)\n | { 0: (data: any, event: E) => void; 1: any }\n | undefined,\n event: E,\n) {\n if (typeof handler === \"function\") handler(event);\n else if (handler) handler[0](handler[1], event);\n}\n/** A native text input. Supply label, aria-label, or aria-labelledby. */\nexport function Input(props: InputProps) {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"defaultValue\",\n \"onValueChange\",\n \"label\",\n \"labelPlacement\",\n \"clearable\",\n \"clearLabel\",\n \"class\",\n \"wrapperClass\",\n \"id\",\n \"type\",\n \"ref\",\n \"onInput\",\n \"onKeyDown\",\n \"disabled\",\n \"readonly\",\n \"readOnly\",\n ]);\n const generated = createUniqueId();\n const id = () => local.id ?? `dds-input-${generated}`;\n const initial = local.defaultValue ?? \"\";\n const [internal, setInternal] = createSignal(initial);\n const current = () => local.value ?? internal();\n const readOnly = () => local.readonly || local.readOnly;\n let input!: HTMLInputElement;\n onMount(() => {\n input.defaultValue = initial;\n });\n createEffect(() => {\n // Native form ownership can change after mount, including external forms.\n void rest.form;\n const form = input.form;\n const reset = (event: Event) =>\n queueMicrotask(() => {\n if (event.defaultPrevented) return;\n if (local.value === undefined) setInternal(initial);\n input.value = current();\n });\n form?.addEventListener(\"reset\", reset);\n onCleanup(() => form?.removeEventListener(\"reset\", reset));\n });\n const update = (next: string) => {\n if (local.disabled || readOnly()) return;\n if (local.value === undefined) setInternal(next);\n local.onValueChange?.(next);\n // A declined controlled edit must not leave the DOM holding a draft.\n input.value = current();\n };\n return (\n <span\n class={classes(\"dds-input\", local.wrapperClass)}\n data-label-placement={local.labelPlacement ?? \"outside\"}\n data-filled={current().length > 0 ? \"\" : undefined}\n data-disabled={local.disabled ? \"\" : undefined}\n data-readonly={readOnly() ? \"\" : undefined}\n >\n {local.label != null && (\n <label for={id()} class=\"dds-input__label\">\n {local.label}\n </label>\n )}\n <input\n {...rest}\n ref={(node) => {\n input = node;\n if (typeof local.ref === \"function\") local.ref(node);\n }}\n id={id()}\n type={local.type ?? \"text\"}\n disabled={local.disabled}\n readonly={readOnly()}\n class={classes(\"dds-input__control\", local.class)}\n value={current()}\n onInput={(event) => {\n callHandler(local.onInput, event);\n update(event.currentTarget.value);\n }}\n onKeyDown={(event) => {\n callHandler(local.onKeyDown, event);\n if (\n event.key === \"Enter\" &&\n (event.isComposing || event.keyCode === 229)\n )\n event.preventDefault();\n }}\n />\n {local.clearable &&\n current().length > 0 &&\n !local.disabled &&\n !readOnly() && (\n <button\n type=\"button\"\n class=\"dds-input__clear\"\n aria-label={local.clearLabel ?? \"내용 지우기\"}\n onPointerDown={(event) => event.preventDefault()}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n update(\"\");\n input.focus();\n }}\n >\n <span aria-hidden=\"true\">×</span>\n </button>\n )}\n </span>\n );\n}\nexport interface InputGroupProps extends JSX.HTMLAttributes<HTMLDivElement> {\n start?: JSX.Element;\n end?: JSX.Element;\n children?: JSX.Element;\n}\n/** Layout only: the child Input owns its value and accessible name. */\nexport function InputGroup(props: InputGroupProps) {\n const [local, rest] = splitProps(props, [\n \"start\",\n \"end\",\n \"class\",\n \"children\",\n ]);\n return (\n <div {...rest} class={classes(\"dds-input-group\", local.class)}>\n {local.start != null && (\n <span class=\"dds-input-group__start\">{local.start}</span>\n )}\n {local.children}\n {local.end != null && (\n <span class=\"dds-input-group__end\">{local.end}</span>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type ComboboxProps } from "../choice-types";
2
+ export declare function Choice(props: ComboboxProps & {
3
+ searchable: boolean;
4
+ }): import("solid-js").JSX.Element;
5
+ //# sourceMappingURL=choice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice.d.ts","sourceRoot":"","sources":["../../src/internal/choice.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,kCA0apE"}
@@ -0,0 +1,22 @@
1
+ import { type ComponentProps } from "solid-js";
2
+ import { Popover as ArkPopover } from "@ark-ui/solid/popover";
3
+ export interface PopoverProps extends Omit<ComponentProps<typeof ArkPopover.Root>, "onOpenChange"> {
4
+ onOpenChange?: (open: boolean) => void;
5
+ }
6
+ export interface PopoverContentProps extends ComponentProps<typeof ArkPopover.Content> {
7
+ portal?: boolean;
8
+ portalMount?: HTMLElement;
9
+ }
10
+ declare function Root(props: PopoverProps): import("solid-js").JSX.Element;
11
+ declare function Content(props: PopoverContentProps): import("solid-js").JSX.Element;
12
+ export declare const Popover: {
13
+ Root: typeof Root;
14
+ Trigger: (props: ArkPopover.TriggerProps) => import("solid-js").JSX.Element;
15
+ Content: typeof Content;
16
+ Title: (props: ArkPopover.TitleProps) => import("solid-js").JSX.Element;
17
+ Description: (props: ArkPopover.DescriptionProps) => import("solid-js").JSX.Element;
18
+ CloseTrigger: (props: ArkPopover.CloseTriggerProps) => import("solid-js").JSX.Element;
19
+ Anchor: (props: ArkPopover.AnchorProps) => import("solid-js").JSX.Element;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../src/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,OAAO,IAAI,UAAU,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IACpE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AACD,MAAM,WAAW,mBACf,SAAQ,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AACD,iBAAS,IAAI,CAAC,KAAK,EAAE,YAAY,kCAchC;AACD,iBAAS,OAAO,CAAC,KAAK,EAAE,mBAAmB,kCA2C1C;AACD,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { Show as e, createEffect as t, createSignal as n, splitProps as r } from "solid-js";
2
+ import { Portal as i, createComponent as a, mergeProps as o } from "solid-js/web";
3
+ import { Popover as s, usePopoverContext as c } from "@ark-ui/solid/popover";
4
+ //#region src/popover.tsx
5
+ function l(e) {
6
+ let [t, n] = r(e, [
7
+ "onOpenChange",
8
+ "modal",
9
+ "positioning"
10
+ ]);
11
+ return a(s.Root, o(n, {
12
+ get positioning() {
13
+ return {
14
+ strategy: "fixed",
15
+ ...t.positioning
16
+ };
17
+ },
18
+ get modal() {
19
+ return t.modal ?? !1;
20
+ },
21
+ onOpenChange: (e) => t.onOpenChange?.(e.open)
22
+ }));
23
+ }
24
+ function u(l) {
25
+ let [u, d] = r(l, [
26
+ "portal",
27
+ "portalMount",
28
+ "class",
29
+ "children"
30
+ ]), f = c(), [p, m] = n();
31
+ t(() => {
32
+ if (typeof document > "u") return;
33
+ let e = f().getTriggerProps().id, t = e ? document.getElementById(e) : null;
34
+ m(u.portalMount ?? t?.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? document.body);
35
+ });
36
+ let h = a(s.Positioner, {
37
+ class: "dds-popover-positioner",
38
+ get children() {
39
+ return a(s.Content, o(d, {
40
+ get "aria-labelledby"() {
41
+ return d["aria-labelledby"] ?? (d["aria-label"] ? void 0 : f().getTitleProps().id);
42
+ },
43
+ get class() {
44
+ return ["dds-popover", u.class].filter(Boolean).join(" ");
45
+ },
46
+ get children() {
47
+ return u.children;
48
+ }
49
+ }));
50
+ }
51
+ });
52
+ return u.portal === !1 ? h : a(e, {
53
+ get when() {
54
+ return p();
55
+ },
56
+ children: (e) => a(i, {
57
+ get mount() {
58
+ return e();
59
+ },
60
+ children: h
61
+ })
62
+ });
63
+ }
64
+ var d = {
65
+ Root: l,
66
+ Trigger: s.Trigger,
67
+ Content: u,
68
+ Title: s.Title,
69
+ Description: s.Description,
70
+ CloseTrigger: s.CloseTrigger,
71
+ Anchor: s.Anchor
72
+ };
73
+ //#endregion
74
+ export { d as Popover };
75
+
76
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.js","names":["splitProps","createEffect","createSignal","Show","ComponentProps","Portal","Popover","ArkPopover","usePopoverContext","PopoverProps","Omit","Root","onOpenChange","open","PopoverContentProps","Content","portal","portalMount","HTMLElement","props","local","rest","_$createComponent","_$mergeProps","positioning","strategy","modal","event","api","mount","setMount","document","triggerId","getTriggerProps","id","trigger","getElementById","closest","body","content","Positioner","children","aria-labelledby","undefined","getTitleProps","class","filter","Boolean","join","when","target","Trigger","Title","Description","CloseTrigger","Anchor"],"sources":["../src/popover.tsx"],"sourcesContent":["import {\n splitProps,\n createEffect,\n createSignal,\n Show,\n type ComponentProps,\n} from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport {\n Popover as ArkPopover,\n usePopoverContext,\n} from \"@ark-ui/solid/popover\";\nexport interface PopoverProps\n extends Omit<ComponentProps<typeof ArkPopover.Root>, \"onOpenChange\"> {\n onOpenChange?: (open: boolean) => void;\n}\nexport interface PopoverContentProps\n extends ComponentProps<typeof ArkPopover.Content> {\n portal?: boolean;\n portalMount?: HTMLElement;\n}\nfunction Root(props: PopoverProps) {\n const [local, rest] = splitProps(props, [\n \"onOpenChange\",\n \"modal\",\n \"positioning\",\n ]);\n return (\n <ArkPopover.Root\n {...rest}\n positioning={{ strategy: \"fixed\", ...local.positioning }}\n modal={local.modal ?? false}\n onOpenChange={(event) => local.onOpenChange?.(event.open)}\n />\n );\n}\nfunction Content(props: PopoverContentProps) {\n const [local, rest] = splitProps(props, [\n \"portal\",\n \"portalMount\",\n \"class\",\n \"children\",\n ]);\n const api = usePopoverContext();\n const [mount, setMount] = createSignal<HTMLElement>();\n createEffect(() => {\n if (typeof document === \"undefined\") return;\n const triggerId = api().getTriggerProps().id;\n const trigger = triggerId ? document.getElementById(triggerId) : null;\n // Keep nested overlays inside the modal isolation subtree.\n setMount(\n local.portalMount ??\n trigger?.closest<HTMLElement>(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n ) ??\n document.body,\n );\n });\n const content = (\n <ArkPopover.Positioner class=\"dds-popover-positioner\">\n <ArkPopover.Content\n {...rest}\n aria-labelledby={\n rest[\"aria-labelledby\"] ??\n (rest[\"aria-label\"] ? undefined : api().getTitleProps().id)\n }\n class={[\"dds-popover\", local.class].filter(Boolean).join(\" \")}\n >\n {local.children}\n </ArkPopover.Content>\n </ArkPopover.Positioner>\n );\n return local.portal === false ? (\n content\n ) : (\n <Show when={mount()}>\n {(target) => <Portal mount={target()}>{content}</Portal>}\n </Show>\n );\n}\nexport const Popover = {\n Root,\n Trigger: ArkPopover.Trigger,\n Content,\n Title: ArkPopover.Title,\n Description: ArkPopover.Description,\n CloseTrigger: ArkPopover.CloseTrigger,\n Anchor: ArkPopover.Anchor,\n};\n"],"mappings":";;;;AAqBA,SAASW,EAAKQ,GAAqB;CACjC,IAAM,CAACC,GAAOC,KAAQrB,EAAWmB,GAAO;EACtC;EACA;EACA;CAAa,CACd;CACD,OAAAG,EACGf,EAAWI,MAAIY,EACVF,GAAI;EAAA,IACRG,cAAW;GAAA,OAAE;IAAEC,UAAU;IAAS,GAAGL,EAAMI;GAAY;EAAC;EAAA,IACxDE,QAAK;GAAA,OAAEN,EAAMM,SAAS;EAAK;EAC3Bd,eAAee,MAAUP,EAAMR,eAAee,EAAMd,IAAI;CAAC,CAAA,CAAA;AAG/D;AACA,SAASE,EAAQI,GAA4B;CAC3C,IAAM,CAACC,GAAOC,KAAQrB,EAAWmB,GAAO;EACtC;EACA;EACA;EACA;CAAU,CACX,GACKS,IAAMpB,EAAkB,GACxB,CAACqB,GAAOC,KAAY5B,EAA0B;CACpDD,QAAmB;EACjB,IAAI,OAAO8B,WAAa,KAAa;EACrC,IAAMC,IAAYJ,EAAI,CAAC,CAACK,gBAAgB,CAAC,CAACC,IACpCC,IAAUH,IAAYD,SAASK,eAAeJ,CAAS,IAAI;EAEjEF,EACEV,EAAMH,eACJkB,GAASE,QACP,2CACF,KACAN,SAASO,IACb;CACF,CAAC;CACD,IAAMC,IAAOjB,EACVf,EAAWiC,YAAU;EAAA,OAAA;EAAA,IAAAC,WAAA;GAAA,OAAAnB,EACnBf,EAAWQ,SAAOQ,EACbF,GAAI;IAAA,IAAA,oBAAA;KAAA,OAENA,EAAK,uBACJA,EAAK,gBAAgBsB,KAAAA,IAAYf,EAAI,CAAC,CAACgB,cAAc,CAAC,CAACV;IAAG;IAAA,IAAA,QAAA;KAAA,OAEtD,CAAC,eAAed,EAAMyB,KAAK,CAAC,CAACC,OAAOC,OAAO,CAAC,CAACC,KAAK,GAAG;IAAC;IAAA,IAAAP,WAAA;KAAA,OAE5DrB,EAAMqB;IAAQ;GAAA,CAAA,CAAA;EAAA;CAAA,CAAA;CAIrB,OAAOrB,EAAMJ,WAAW,KACtBuB,IAAOjB,EAENnB,GAAI;EAAA,IAAC8C,OAAI;GAAA,OAAEpB,EAAM;EAAC;EAAAY,WACfS,MAAM5B,EAAMjB,GAAM;GAAA,IAACwB,QAAK;IAAA,OAAEqB,EAAO;GAAC;GAAAT,UAAGF;EAAO,CAAA;CAAU,CAAA;AAG9D;AACA,IAAajC,IAAU;CACrBK;CACAwC,SAAS5C,EAAW4C;CACpBpC;CACAqC,OAAO7C,EAAW6C;CAClBC,aAAa9C,EAAW8C;CACxBC,cAAc/C,EAAW+C;CACzBC,QAAQhD,EAAWgD;AACrB"}
@@ -0,0 +1,79 @@
1
+ import { Show, createEffect, createSignal, splitProps } from "solid-js";
2
+ import { Portal, createComponent, mergeProps as mergeProps$1 } from "solid-js/web";
3
+ import { Popover as Popover$1, usePopoverContext } from "@ark-ui/solid/popover";
4
+ //#region src/popover.tsx
5
+ function Root(props) {
6
+ const [local, rest] = splitProps(props, [
7
+ "onOpenChange",
8
+ "modal",
9
+ "positioning"
10
+ ]);
11
+ return createComponent(Popover$1.Root, mergeProps$1(rest, {
12
+ get positioning() {
13
+ return {
14
+ strategy: "fixed",
15
+ ...local.positioning
16
+ };
17
+ },
18
+ get modal() {
19
+ return local.modal ?? false;
20
+ },
21
+ onOpenChange: (event) => local.onOpenChange?.(event.open)
22
+ }));
23
+ }
24
+ function Content(props) {
25
+ const [local, rest] = splitProps(props, [
26
+ "portal",
27
+ "portalMount",
28
+ "class",
29
+ "children"
30
+ ]);
31
+ const api = usePopoverContext();
32
+ const [mount, setMount] = createSignal();
33
+ createEffect(() => {
34
+ if (typeof document === "undefined") return;
35
+ const triggerId = api().getTriggerProps().id;
36
+ const trigger = triggerId ? document.getElementById(triggerId) : null;
37
+ setMount(local.portalMount ?? trigger?.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? document.body);
38
+ });
39
+ const content = createComponent(Popover$1.Positioner, {
40
+ "class": "dds-popover-positioner",
41
+ get children() {
42
+ return createComponent(Popover$1.Content, mergeProps$1(rest, {
43
+ get ["aria-labelledby"]() {
44
+ return rest["aria-labelledby"] ?? (rest["aria-label"] ? void 0 : api().getTitleProps().id);
45
+ },
46
+ get ["class"]() {
47
+ return ["dds-popover", local.class].filter(Boolean).join(" ");
48
+ },
49
+ get children() {
50
+ return local.children;
51
+ }
52
+ }));
53
+ }
54
+ });
55
+ return local.portal === false ? content : createComponent(Show, {
56
+ get when() {
57
+ return mount();
58
+ },
59
+ children: (target) => createComponent(Portal, {
60
+ get mount() {
61
+ return target();
62
+ },
63
+ children: content
64
+ })
65
+ });
66
+ }
67
+ var Popover = {
68
+ Root,
69
+ Trigger: Popover$1.Trigger,
70
+ Content,
71
+ Title: Popover$1.Title,
72
+ Description: Popover$1.Description,
73
+ CloseTrigger: Popover$1.CloseTrigger,
74
+ Anchor: Popover$1.Anchor
75
+ };
76
+ //#endregion
77
+ export { Popover };
78
+
79
+ //# sourceMappingURL=popover.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.server.js","names":["splitProps","createEffect","createSignal","Show","ComponentProps","Portal","Popover","ArkPopover","usePopoverContext","PopoverProps","Omit","Root","onOpenChange","open","PopoverContentProps","Content","portal","portalMount","HTMLElement","props","local","rest","_$createComponent","_$mergeProps","positioning","strategy","modal","event","api","mount","setMount","document","triggerId","getTriggerProps","id","trigger","getElementById","closest","body","content","Positioner","children","aria-labelledby","undefined","getTitleProps","class","filter","Boolean","join","when","target","Trigger","Title","Description","CloseTrigger","Anchor"],"sources":["../src/popover.tsx"],"sourcesContent":["import {\n splitProps,\n createEffect,\n createSignal,\n Show,\n type ComponentProps,\n} from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport {\n Popover as ArkPopover,\n usePopoverContext,\n} from \"@ark-ui/solid/popover\";\nexport interface PopoverProps\n extends Omit<ComponentProps<typeof ArkPopover.Root>, \"onOpenChange\"> {\n onOpenChange?: (open: boolean) => void;\n}\nexport interface PopoverContentProps\n extends ComponentProps<typeof ArkPopover.Content> {\n portal?: boolean;\n portalMount?: HTMLElement;\n}\nfunction Root(props: PopoverProps) {\n const [local, rest] = splitProps(props, [\n \"onOpenChange\",\n \"modal\",\n \"positioning\",\n ]);\n return (\n <ArkPopover.Root\n {...rest}\n positioning={{ strategy: \"fixed\", ...local.positioning }}\n modal={local.modal ?? false}\n onOpenChange={(event) => local.onOpenChange?.(event.open)}\n />\n );\n}\nfunction Content(props: PopoverContentProps) {\n const [local, rest] = splitProps(props, [\n \"portal\",\n \"portalMount\",\n \"class\",\n \"children\",\n ]);\n const api = usePopoverContext();\n const [mount, setMount] = createSignal<HTMLElement>();\n createEffect(() => {\n if (typeof document === \"undefined\") return;\n const triggerId = api().getTriggerProps().id;\n const trigger = triggerId ? document.getElementById(triggerId) : null;\n // Keep nested overlays inside the modal isolation subtree.\n setMount(\n local.portalMount ??\n trigger?.closest<HTMLElement>(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n ) ??\n document.body,\n );\n });\n const content = (\n <ArkPopover.Positioner class=\"dds-popover-positioner\">\n <ArkPopover.Content\n {...rest}\n aria-labelledby={\n rest[\"aria-labelledby\"] ??\n (rest[\"aria-label\"] ? undefined : api().getTitleProps().id)\n }\n class={[\"dds-popover\", local.class].filter(Boolean).join(\" \")}\n >\n {local.children}\n </ArkPopover.Content>\n </ArkPopover.Positioner>\n );\n return local.portal === false ? (\n content\n ) : (\n <Show when={mount()}>\n {(target) => <Portal mount={target()}>{content}</Portal>}\n </Show>\n );\n}\nexport const Popover = {\n Root,\n Trigger: ArkPopover.Trigger,\n Content,\n Title: ArkPopover.Title,\n Description: ArkPopover.Description,\n CloseTrigger: ArkPopover.CloseTrigger,\n Anchor: ArkPopover.Anchor,\n};\n"],"mappings":";;;;AAqBA,SAASW,KAAKQ,OAAqB;CACjC,MAAM,CAACC,OAAOC,QAAQrB,WAAWmB,OAAO;EACtC;EACA;EACA;CAAa,CACd;CACD,OAAAG,gBACGf,UAAWI,MAAIY,aACVF,MAAI;EAAA,IACRG,cAAW;GAAA,OAAE;IAAEC,UAAU;IAAS,GAAGL,MAAMI;GAAY;EAAC;EAAA,IACxDE,QAAK;GAAA,OAAEN,MAAMM,SAAS;EAAK;EAC3Bd,eAAee,UAAUP,MAAMR,eAAee,MAAMd,IAAI;CAAC,CAAA,CAAA;AAG/D;AACA,SAASE,QAAQI,OAA4B;CAC3C,MAAM,CAACC,OAAOC,QAAQrB,WAAWmB,OAAO;EACtC;EACA;EACA;EACA;CAAU,CACX;CACD,MAAMS,MAAMpB,kBAAkB;CAC9B,MAAM,CAACqB,OAAOC,YAAY5B,aAA0B;CACpDD,mBAAmB;EACjB,IAAI,OAAO8B,aAAa,aAAa;EACrC,MAAMC,YAAYJ,IAAI,CAAC,CAACK,gBAAgB,CAAC,CAACC;EAC1C,MAAMC,UAAUH,YAAYD,SAASK,eAAeJ,SAAS,IAAI;EAEjEF,SACEV,MAAMH,eACJkB,SAASE,QACP,2CACF,KACAN,SAASO,IACb;CACF,CAAC;CACD,MAAMC,UAAOjB,gBACVf,UAAWiC,YAAU;EAAA,SAAA;EAAA,IAAAC,WAAA;GAAA,OAAAnB,gBACnBf,UAAWQ,SAAOQ,aACbF,MAAI;IAAA,KAAA,qBAAA;KAAA,OAENA,KAAK,uBACJA,KAAK,gBAAgBsB,KAAAA,IAAYf,IAAI,CAAC,CAACgB,cAAc,CAAC,CAACV;IAAG;IAAA,KAAA,WAAA;KAAA,OAEtD,CAAC,eAAed,MAAMyB,KAAK,CAAC,CAACC,OAAOC,OAAO,CAAC,CAACC,KAAK,GAAG;IAAC;IAAA,IAAAP,WAAA;KAAA,OAE5DrB,MAAMqB;IAAQ;GAAA,CAAA,CAAA;EAAA;CAAA,CAAA;CAIrB,OAAOrB,MAAMJ,WAAW,QACtBuB,UAAOjB,gBAENnB,MAAI;EAAA,IAAC8C,OAAI;GAAA,OAAEpB,MAAM;EAAC;EAAAY,WACfS,WAAM5B,gBAAMjB,QAAM;GAAA,IAACwB,QAAK;IAAA,OAAEqB,OAAO;GAAC;GAAAT,UAAGF;EAAO,CAAA;CAAU,CAAA;AAG9D;AACA,IAAajC,UAAU;CACrBK;CACAwC,SAAS5C,UAAW4C;CACpBpC;CACAqC,OAAO7C,UAAW6C;CAClBC,aAAa9C,UAAW8C;CACxBC,cAAc/C,UAAW+C;CACzBC,QAAQhD,UAAWgD;AACrB"}
@@ -0,0 +1,4 @@
1
+ import type { SelectPickerProps } from "./choice-types";
2
+ export type { SelectPickerProps, ChoiceOption, ChoiceMessages, ChoiceVirtualization, } from "./choice-types";
3
+ export declare function SelectPicker(props: SelectPickerProps): import("solid-js").JSX.Element;
4
+ //# sourceMappingURL=select-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-picker.d.ts","sourceRoot":"","sources":["../src/select-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCAEpD"}
@@ -0,0 +1,10 @@
1
+ import { t as e } from "./choice-BPMiJlPJ.js";
2
+ import { createComponent as t, mergeProps as n } from "solid-js/web";
3
+ //#region src/select-picker.tsx
4
+ function r(r) {
5
+ return t(e, n(r, { searchable: !1 }));
6
+ }
7
+ //#endregion
8
+ export { r as SelectPicker };
9
+
10
+ //# sourceMappingURL=select-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-picker.js","names":["Choice","SelectPickerProps","ChoiceOption","ChoiceMessages","ChoiceVirtualization","SelectPicker","props","_$createComponent","_$mergeProps","searchable"],"sources":["../src/select-picker.tsx"],"sourcesContent":["import { Choice } from \"./internal/choice\";\nimport type { SelectPickerProps } from \"./choice-types\";\nexport type {\n SelectPickerProps,\n ChoiceOption,\n ChoiceMessages,\n ChoiceVirtualization,\n} from \"./choice-types\";\nexport function SelectPicker(props: SelectPickerProps) {\n return <Choice {...props} searchable={false} />;\n}\n"],"mappings":";;;AAQA,SAAgBK,EAAaC,GAA0B;CACrD,OAAAC,EAAQP,GAAMQ,EAAKF,GAAK,EAAEG,YAAY,GAAK,CAAA,CAAA;AAC7C"}
@@ -0,0 +1,10 @@
1
+ import { t as Choice } from "./assets/choice-DoXiK8nc.js";
2
+ import { createComponent, mergeProps } from "solid-js/web";
3
+ //#region src/select-picker.tsx
4
+ function SelectPicker(props) {
5
+ return createComponent(Choice, mergeProps(props, { searchable: false }));
6
+ }
7
+ //#endregion
8
+ export { SelectPicker };
9
+
10
+ //# sourceMappingURL=select-picker.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-picker.server.js","names":["Choice","SelectPickerProps","ChoiceOption","ChoiceMessages","ChoiceVirtualization","SelectPicker","props","_$createComponent","_$mergeProps","searchable"],"sources":["../src/select-picker.tsx"],"sourcesContent":["import { Choice } from \"./internal/choice\";\nimport type { SelectPickerProps } from \"./choice-types\";\nexport type {\n SelectPickerProps,\n ChoiceOption,\n ChoiceMessages,\n ChoiceVirtualization,\n} from \"./choice-types\";\nexport function SelectPicker(props: SelectPickerProps) {\n return <Choice {...props} searchable={false} />;\n}\n"],"mappings":";;;AAQA,SAAgBK,aAAaC,OAA0B;CACrD,OAAAC,gBAAQP,QAAMQ,WAAKF,OAAK,EAAEG,YAAY,MAAK,CAAA,CAAA;AAC7C"}