@devslab/dds-react 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 (50) hide show
  1. package/README.ko.md +18 -0
  2. package/README.md +46 -0
  3. package/dist/calendar-view-I_sNlioP.js +145 -0
  4. package/dist/calendar-view-I_sNlioP.js.map +1 -0
  5. package/dist/calendar-view.d.ts +16 -0
  6. package/dist/calendar-view.d.ts.map +1 -0
  7. package/dist/calendar.d.ts +19 -0
  8. package/dist/calendar.d.ts.map +1 -0
  9. package/dist/calendar.js +51 -0
  10. package/dist/calendar.js.map +1 -0
  11. package/dist/choice-B3vNMfKK.js +300 -0
  12. package/dist/choice-B3vNMfKK.js.map +1 -0
  13. package/dist/choice-types.d.ts +56 -0
  14. package/dist/choice-types.d.ts.map +1 -0
  15. package/dist/combobox.d.ts +4 -0
  16. package/dist/combobox.d.ts.map +1 -0
  17. package/dist/combobox.js +13 -0
  18. package/dist/combobox.js.map +1 -0
  19. package/dist/controls-BajigKUv.js +139 -0
  20. package/dist/controls-BajigKUv.js.map +1 -0
  21. package/dist/date-only.d.ts +36 -0
  22. package/dist/date-only.d.ts.map +1 -0
  23. package/dist/date-picker.d.ts +12 -1
  24. package/dist/date-picker.d.ts.map +1 -1
  25. package/dist/date-picker.js +198 -0
  26. package/dist/date-picker.js.map +1 -0
  27. package/dist/dropdown-menu.d.ts +31 -0
  28. package/dist/dropdown-menu.d.ts.map +1 -0
  29. package/dist/dropdown-menu.js +73 -0
  30. package/dist/dropdown-menu.js.map +1 -0
  31. package/dist/index.d.ts +6 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +201 -454
  34. package/dist/index.js.map +1 -1
  35. package/dist/input.d.ts +22 -0
  36. package/dist/input.d.ts.map +1 -0
  37. package/dist/input.js +92 -0
  38. package/dist/input.js.map +1 -0
  39. package/dist/internal/choice.d.ts +5 -0
  40. package/dist/internal/choice.d.ts.map +1 -0
  41. package/dist/popover.d.ts +21 -0
  42. package/dist/popover.d.ts.map +1 -0
  43. package/dist/popover.js +49 -0
  44. package/dist/popover.js.map +1 -0
  45. package/dist/select-picker.d.ts +4 -0
  46. package/dist/select-picker.d.ts.map +1 -0
  47. package/dist/select-picker.js +13 -0
  48. package/dist/select-picker.js.map +1 -0
  49. package/package.json +46 -10
  50. package/styles.css +10 -1
@@ -0,0 +1,31 @@
1
+ import { type ComponentProps } from "react";
2
+ import { Menu as ArkMenu } from "@ark-ui/react/menu";
3
+ export interface DropdownMenuProps extends Omit<ComponentProps<typeof ArkMenu.Root>, "onOpenChange" | "onSelect"> {
4
+ onOpenChange?: (open: boolean) => void;
5
+ onSelect?: (value: string) => void;
6
+ dir?: "ltr" | "rtl";
7
+ }
8
+ export interface DropdownMenuContentProps extends ComponentProps<typeof ArkMenu.Content> {
9
+ portal?: boolean;
10
+ portalMount?: HTMLElement;
11
+ }
12
+ declare function Root({ onOpenChange, onSelect, positioning, children, ...props }: DropdownMenuProps): import("react").JSX.Element;
13
+ /** Item.onSelect is an action callback; Root callbacks expose DDS scalar values. */
14
+ export declare const DropdownMenu: {
15
+ Root: typeof Root;
16
+ Trigger: import("react").ForwardRefExoticComponent<ArkMenu.TriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
17
+ Content: import("react").ForwardRefExoticComponent<Omit<DropdownMenuContentProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
18
+ Item: import("react").ForwardRefExoticComponent<ArkMenu.ItemProps & import("react").RefAttributes<HTMLDivElement>>;
19
+ Group: import("react").ForwardRefExoticComponent<ArkMenu.ItemGroupProps & import("react").RefAttributes<HTMLDivElement>>;
20
+ Label: import("react").ForwardRefExoticComponent<ArkMenu.ItemGroupLabelProps & import("react").RefAttributes<HTMLDivElement>>;
21
+ Separator: import("react").ForwardRefExoticComponent<ArkMenu.SeparatorProps & import("react").RefAttributes<HTMLHRElement>>;
22
+ CheckboxItem: import("react").ForwardRefExoticComponent<ArkMenu.CheckboxItemProps & import("react").RefAttributes<HTMLDivElement>>;
23
+ RadioGroup: import("react").ForwardRefExoticComponent<ArkMenu.RadioItemGroupProps & import("react").RefAttributes<HTMLDivElement>>;
24
+ RadioItem: import("react").ForwardRefExoticComponent<ArkMenu.RadioItemProps & import("react").RefAttributes<HTMLDivElement>>;
25
+ ItemText: import("react").ForwardRefExoticComponent<ArkMenu.ItemTextProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ ItemIndicator: import("react").ForwardRefExoticComponent<ArkMenu.ItemIndicatorProps & import("react").RefAttributes<HTMLDivElement>>;
27
+ Submenu: typeof Root;
28
+ SubmenuTrigger: import("react").ForwardRefExoticComponent<ArkMenu.TriggerItemProps & import("react").RefAttributes<HTMLDivElement>>;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../src/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AACf,OAAO,EACL,IAAI,IAAI,OAAO,EAIhB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,cAAc,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,EACnC,cAAc,GAAG,UAAU,CAC5B;IACD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACrB;AACD,MAAM,WAAW,wBACf,SAAQ,cAAc,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,iBAAS,IAAI,CAAC,EACZ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,+BAkCnB;AAwCD,oFAAoF;AACpF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAexB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { createContext as e, forwardRef as t, useContext as n, useEffect as r, useState as i } from "react";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ import { Portal as o } from "@ark-ui/react/portal";
4
+ import { Menu as s, useMenu as c, useMenuContext as l } from "@ark-ui/react/menu";
5
+ //#region src/dropdown-menu.tsx
6
+ var u = e(null);
7
+ function d({ onOpenChange: e, onSelect: t, positioning: i, children: o, ...l }) {
8
+ let d = n(u), f = {
9
+ ...l,
10
+ positioning: {
11
+ strategy: "fixed",
12
+ ...i
13
+ },
14
+ onOpenChange: (t) => e?.(t.open),
15
+ onSelect: (e) => t?.(e.value)
16
+ }, p = c(f);
17
+ return r(() => {
18
+ let e = !0;
19
+ return queueMicrotask(() => {
20
+ !e || !d || (d.api.setChild(p.service), p.api.setParent(d.service));
21
+ }), () => {
22
+ e = !1;
23
+ };
24
+ }, [d?.service, p.service]), /* @__PURE__ */ a(u.Provider, {
25
+ value: p,
26
+ children: /* @__PURE__ */ a(s.RootProvider, {
27
+ ...l,
28
+ value: p,
29
+ lazyMount: l.lazyMount,
30
+ unmountOnExit: l.unmountOnExit,
31
+ children: o
32
+ })
33
+ });
34
+ }
35
+ var f = t(function({ portal: e = !0, portalMount: t, className: n, children: c, ...u }, d) {
36
+ let f = l().getTriggerProps().id, [p, m] = i(null);
37
+ r(() => {
38
+ let e = f ? document.getElementById(f) : null;
39
+ m(t ?? e?.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? document.body);
40
+ }, [t, f]);
41
+ let h = /* @__PURE__ */ a(s.Positioner, {
42
+ className: "dds-menu-positioner",
43
+ children: /* @__PURE__ */ a(s.Content, {
44
+ ...u,
45
+ ref: d,
46
+ className: ["dds-menu", n].filter(Boolean).join(" "),
47
+ children: c
48
+ })
49
+ });
50
+ return e ? p ? /* @__PURE__ */ a(o, {
51
+ container: { current: p },
52
+ children: h
53
+ }) : null : h;
54
+ }), p = {
55
+ Root: d,
56
+ Trigger: s.Trigger,
57
+ Content: f,
58
+ Item: s.Item,
59
+ Group: s.ItemGroup,
60
+ Label: s.ItemGroupLabel,
61
+ Separator: s.Separator,
62
+ CheckboxItem: s.CheckboxItem,
63
+ RadioGroup: s.RadioItemGroup,
64
+ RadioItem: s.RadioItem,
65
+ ItemText: s.ItemText,
66
+ ItemIndicator: s.ItemIndicator,
67
+ Submenu: d,
68
+ SubmenuTrigger: s.TriggerItem
69
+ };
70
+ //#endregion
71
+ export { p as DropdownMenu };
72
+
73
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../src/dropdown-menu.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n forwardRef,\n useEffect,\n useState,\n type ComponentProps,\n} from \"react\";\nimport {\n Menu as ArkMenu,\n useMenu,\n useMenuContext,\n type UseMenuReturn,\n} from \"@ark-ui/react/menu\";\nimport { Portal } from \"@ark-ui/react/portal\";\n\nexport interface DropdownMenuProps\n extends Omit<\n ComponentProps<typeof ArkMenu.Root>,\n \"onOpenChange\" | \"onSelect\"\n > {\n onOpenChange?: (open: boolean) => void;\n onSelect?: (value: string) => void;\n dir?: \"ltr\" | \"rtl\";\n}\nexport interface DropdownMenuContentProps\n extends ComponentProps<typeof ArkMenu.Content> {\n portal?: boolean;\n portalMount?: HTMLElement;\n}\nconst MenuTree = createContext<UseMenuReturn | null>(null);\nfunction Root({\n onOpenChange,\n onSelect,\n positioning,\n children,\n ...props\n}: DropdownMenuProps) {\n const parent = useContext(MenuTree);\n const options = {\n ...props,\n positioning: { strategy: \"fixed\" as const, ...positioning },\n onOpenChange: (event: { open: boolean }) => onOpenChange?.(event.open),\n onSelect: (event: { value: string }) => onSelect?.(event.value),\n };\n const menu = useMenu(options);\n useEffect(() => {\n // Register after every machine mount, including StrictMode's effect replay.\n // Ark's once-only registration can precede the parent's machine restart.\n let active = true;\n queueMicrotask(() => {\n if (!active || !parent) return;\n parent.api.setChild(menu.service);\n menu.api.setParent(parent.service);\n });\n return () => {\n active = false;\n };\n }, [parent?.service, menu.service]);\n return (\n <MenuTree.Provider value={menu}>\n <ArkMenu.RootProvider\n {...props}\n value={menu}\n lazyMount={props.lazyMount}\n unmountOnExit={props.unmountOnExit}\n >\n {children}\n </ArkMenu.RootProvider>\n </MenuTree.Provider>\n );\n}\nconst Content = forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n function Content(\n { portal = true, portalMount, className, children, ...props },\n ref,\n ) {\n const api = useMenuContext();\n const triggerId = api.getTriggerProps().id;\n const [mount, setMount] = useState<HTMLElement | null>(null);\n useEffect(() => {\n // Keep nested overlays inside the modal isolation subtree.\n const trigger = triggerId ? document.getElementById(triggerId) : null;\n setMount(\n portalMount ??\n trigger?.closest<HTMLElement>(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n ) ??\n document.body,\n );\n }, [portalMount, triggerId]);\n const content = (\n <ArkMenu.Positioner className=\"dds-menu-positioner\">\n <ArkMenu.Content\n {...props}\n ref={ref}\n className={[\"dds-menu\", className].filter(Boolean).join(\" \")}\n >\n {children}\n </ArkMenu.Content>\n </ArkMenu.Positioner>\n );\n return portal ? (\n mount ? (\n <Portal container={{ current: mount }}>{content}</Portal>\n ) : null\n ) : (\n content\n );\n },\n);\n/** Item.onSelect is an action callback; Root callbacks expose DDS scalar values. */\nexport const DropdownMenu = {\n Root,\n Trigger: ArkMenu.Trigger,\n Content,\n Item: ArkMenu.Item,\n Group: ArkMenu.ItemGroup,\n Label: ArkMenu.ItemGroupLabel,\n Separator: ArkMenu.Separator,\n CheckboxItem: ArkMenu.CheckboxItem,\n RadioGroup: ArkMenu.RadioItemGroup,\n RadioItem: ArkMenu.RadioItem,\n ItemText: ArkMenu.ItemText,\n ItemIndicator: ArkMenu.ItemIndicator,\n Submenu: Root,\n SubmenuTrigger: ArkMenu.TriggerItem,\n};\n"],"mappings":";;;;;AA8BA,IAAM,IAAW,EAAoC,IAAI;AACzD,SAAS,EAAK,EACZ,iBACA,aACA,gBACA,aACA,GAAG,KACiB;CACpB,IAAM,IAAS,EAAW,CAAQ,GAC5B,IAAU;EACd,GAAG;EACH,aAAa;GAAE,UAAU;GAAkB,GAAG;EAAY;EAC1D,eAAe,MAA6B,IAAe,EAAM,IAAI;EACrE,WAAW,MAA6B,IAAW,EAAM,KAAK;CAChE,GACM,IAAO,EAAQ,CAAO;CAc5B,OAbA,QAAgB;EAGd,IAAI,IAAS;EAMb,OALA,qBAAqB;GACf,CAAC,KAAU,CAAC,MAChB,EAAO,IAAI,SAAS,EAAK,OAAO,GAChC,EAAK,IAAI,UAAU,EAAO,OAAO;EACnC,CAAC,SACY;GACX,IAAS;EACX;CACF,GAAG,CAAC,GAAQ,SAAS,EAAK,OAAO,CAAC,GAEhC,kBAAC,EAAS,UAAV;EAAmB,OAAO;EACxB,UAAA,kBAAC,EAAQ,cAAT;GACE,GAAI;GACJ,OAAO;GACP,WAAW,EAAM;GACjB,eAAe,EAAM;GAEpB;EACmB,CAAA;CACL,CAAA;AAEvB;AACA,IAAM,IAAU,EACd,SACE,EAAE,YAAS,IAAM,gBAAa,cAAW,aAAU,GAAG,KACtD,GACA;CAEA,IAAM,IADM,EACM,CAAA,CAAI,gBAAgB,CAAC,CAAC,IAClC,CAAC,GAAO,KAAY,EAA6B,IAAI;CAC3D,QAAgB;EAEd,IAAM,IAAU,IAAY,SAAS,eAAe,CAAS,IAAI;EACjE,EACE,KACE,GAAS,QACP,2CACF,KACA,SAAS,IACb;CACF,GAAG,CAAC,GAAa,CAAS,CAAC;CAC3B,IAAM,IACJ,kBAAC,EAAQ,YAAT;EAAoB,WAAU;EAC5B,UAAA,kBAAC,EAAQ,SAAT;GACE,GAAI;GACC;GACL,WAAW,CAAC,YAAY,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;GAE1D;EACc,CAAA;CACC,CAAA;CAEtB,OAAO,IACL,IACE,kBAAC,GAAD;EAAQ,WAAW,EAAE,SAAS,EAAM;EAAI,UAAA;CAAgB,CAAA,IACtD,OAEJ;AAEJ,CACF,GAEa,IAAe;CAC1B;CACA,SAAS,EAAQ;CACjB;CACA,MAAM,EAAQ;CACd,OAAO,EAAQ;CACf,OAAO,EAAQ;CACf,WAAW,EAAQ;CACnB,cAAc,EAAQ;CACtB,YAAY,EAAQ;CACpB,WAAW,EAAQ;CACnB,UAAU,EAAQ;CAClB,eAAe,EAAQ;CACvB,SAAS;CACT,gBAAgB,EAAQ;AAC1B"}
package/dist/index.d.ts CHANGED
@@ -15,4 +15,10 @@ export { Toast as ArkToast } from "@ark-ui/react/toast";
15
15
  export * from "./date-picker";
16
16
  export { DatePicker as ArkDatePicker } from "@ark-ui/react/date-picker";
17
17
  export * from "./status-pill";
18
+ export * from "./input";
19
+ export * from "./combobox";
20
+ export * from "./select-picker";
21
+ export * from "./dropdown-menu";
22
+ export * from "./popover";
23
+ export * from "./calendar";
18
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAExE,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAExE,cAAc,eAAe,CAAC;AAE9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}