@konstructio/ui 0.1.2-alpha.5 → 0.1.2-alpha.50

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 (203) hide show
  1. package/dist/{Combination-VYaRRJBZ.js → Combination-BtmnusWq.js} +141 -138
  2. package/dist/DatePicker.css +1 -1
  3. package/dist/Modal-CjC-CIJ8.js +99 -0
  4. package/dist/assets/icons/index.js +7 -0
  5. package/dist/chevron-down-DgT-uSF9.js +5 -0
  6. package/dist/chevron-right-DYvXLeql.js +7 -0
  7. package/dist/chevron-up-DEfvgPCw.js +54 -0
  8. package/dist/chevron-up-DrQr2Fwd.js +5 -0
  9. package/dist/components/Alert/Alert.js +2 -2
  10. package/dist/components/AlertDialog/AlertDialog.js +81 -53
  11. package/dist/components/AlertDialog/components/AlertDialogTrigger.js +3 -2
  12. package/dist/components/AlertDialog/components/index.js +1 -1
  13. package/dist/components/Badge/Badge.js +41 -44
  14. package/dist/components/Badge/Badge.variants.js +52 -13
  15. package/dist/components/Breadcrumb/Breadcrumb.js +1 -1
  16. package/dist/components/Breadcrumb/Breadcrumb.variants.js +3 -3
  17. package/dist/components/Breadcrumb/components/Item/Item.js +22 -22
  18. package/dist/components/Breadcrumb/components/Item/Item.variants.js +25 -14
  19. package/dist/components/Breadcrumb/hooks/useBreadcrumb.js +1 -1
  20. package/dist/components/Button/Button.js +1 -1
  21. package/dist/components/Button/Button.variants.js +108 -98
  22. package/dist/components/Card/Card.variants.js +7 -12
  23. package/dist/components/Checkbox/Checkbox.js +108 -105
  24. package/dist/components/Checkbox/Checkbox.variants.js +34 -7
  25. package/dist/components/Command/Command.js +2 -2
  26. package/dist/components/Command/components/Command.js +1 -1
  27. package/dist/components/Command/components/CommandEmpty.js +1 -1
  28. package/dist/components/Command/components/CommandGroup.js +1 -1
  29. package/dist/components/Command/components/CommandInput.js +2 -2
  30. package/dist/components/Command/components/CommandItem.js +1 -1
  31. package/dist/components/Command/components/CommandList.js +1 -1
  32. package/dist/components/Command/components/CommandSeparator.js +1 -1
  33. package/dist/components/Command/components/DialogContent.js +2 -2
  34. package/dist/components/Command/components/DialogOverlay.js +1 -1
  35. package/dist/components/Counter/Counter.js +210 -0
  36. package/dist/components/Counter/Counter.variants.js +70 -0
  37. package/dist/components/Datepicker/DatePicker.js +1587 -1353
  38. package/dist/components/Divider/Divider.variants.js +1 -1
  39. package/dist/components/DropdownButton/DropdownButton.js +1 -1
  40. package/dist/components/Filter/Filter.js +1 -1
  41. package/dist/components/Filter/Filter.variants.js +8 -7
  42. package/dist/components/Filter/components/BadgeDropdown/BadgeMultiSelect.js +71 -45
  43. package/dist/components/Filter/components/DateFilterDropdown/DateFilterDropdown.hook.js +2 -2
  44. package/dist/components/Filter/components/DateFilterDropdown/DateFilterDropdown.js +76 -43
  45. package/dist/components/Filter/components/ResetButton/ResetButton.js +15 -12
  46. package/dist/components/Filter/events/index.js +3 -3
  47. package/dist/components/ImageUpload/ImageUpload.js +221 -0
  48. package/dist/components/ImageUpload/ImageUpload.variants.js +109 -0
  49. package/dist/components/Input/Input.js +185 -118
  50. package/dist/components/Input/Input.variants.js +24 -19
  51. package/dist/components/Loading/Loading.js +1 -7
  52. package/dist/components/Modal/Modal.js +2 -2
  53. package/dist/components/Modal/components/Body/Body.js +1 -1
  54. package/dist/components/Modal/components/Footer/Footer.js +1 -1
  55. package/dist/components/Modal/components/Header/Header.js +1 -1
  56. package/dist/components/Modal/components/Wrapper/Wrapper.js +4 -4
  57. package/dist/components/Modal/components/index.js +1 -1
  58. package/dist/components/MultiSelectDropdown/MultiSelectDropdown.js +34 -0
  59. package/dist/components/MultiSelectDropdown/MultiSelectDropdown.variants.js +30 -0
  60. package/dist/components/MultiSelectDropdown/components/Item/Item.js +30 -0
  61. package/dist/components/MultiSelectDropdown/components/Item/Item.variants.js +38 -0
  62. package/dist/components/MultiSelectDropdown/components/List/List.js +30 -0
  63. package/dist/components/MultiSelectDropdown/components/List/List.variants.js +25 -0
  64. package/dist/components/MultiSelectDropdown/components/Wrapper/Wrapper.js +119 -0
  65. package/dist/components/MultiSelectDropdown/components/index.js +8 -0
  66. package/dist/components/MultiSelectDropdown/contexts/MultiSelectDropdown.context.js +21 -0
  67. package/dist/components/MultiSelectDropdown/contexts/MultiSelectDropdown.hook.js +13 -0
  68. package/dist/components/MultiSelectDropdown/contexts/MultiSelectDropdown.provider.js +138 -0
  69. package/dist/components/MultiSelectDropdown/contexts/index.js +6 -0
  70. package/dist/components/MultiSelectDropdown/hooks/useMultiSelectDropdown.js +32 -0
  71. package/dist/components/PhoneNumberInput/PhoneNumberInput.js +8 -0
  72. package/dist/components/PhoneNumberInput/PhoneNumberInput.variants.js +46 -0
  73. package/dist/components/PhoneNumberInput/components/FlagContent/FlagContent.js +36 -0
  74. package/dist/components/PhoneNumberInput/components/FlagSelectorList/FlagSelectorList.js +690 -0
  75. package/dist/components/PhoneNumberInput/components/FlagSelectorWrapper/FlagSelectorWrapper.js +60 -0
  76. package/dist/components/PhoneNumberInput/components/TruncateText/TruncateText.js +45 -0
  77. package/dist/components/PhoneNumberInput/components/Wrapper.js +651 -0
  78. package/dist/components/PhoneNumberInput/components/index.js +6 -0
  79. package/dist/components/PhoneNumberInput/contexts/index.js +8 -0
  80. package/dist/components/PhoneNumberInput/contexts/phone-number.context.js +28 -0
  81. package/dist/components/PhoneNumberInput/contexts/phone-number.hook.js +13 -0
  82. package/dist/components/PhoneNumberInput/contexts/phone-number.provider.js +6144 -0
  83. package/dist/components/PhoneNumberInput/utils/index.js +11 -0
  84. package/dist/components/PieChart/PieChart.js +463 -482
  85. package/dist/components/Radio/Radio.js +47 -44
  86. package/dist/components/Radio/Radio.variants.js +12 -8
  87. package/dist/components/RadioCard/RadioCard.variants.js +1 -6
  88. package/dist/components/RadioGroup/RadioGroup.js +10 -10
  89. package/dist/components/Range/Range.js +1 -1
  90. package/dist/components/Select/Select.js +48 -0
  91. package/dist/components/{Dropdown/Dropdown.variants.js → Select/Select.variants.js} +17 -11
  92. package/dist/components/Select/components/List/List.js +172 -0
  93. package/dist/components/{Dropdown → Select}/components/List/List.variants.js +11 -8
  94. package/dist/components/Select/components/ListItem/ListItem.js +117 -0
  95. package/dist/components/{Dropdown → Select}/components/ListItem/ListItem.variants.js +5 -4
  96. package/dist/components/Select/components/Wrapper.js +226 -0
  97. package/dist/components/Select/constants/index.js +4 -0
  98. package/dist/components/Select/constants/pagination.js +4 -0
  99. package/dist/components/Select/contexts/index.js +6 -0
  100. package/dist/components/Select/contexts/select.context.js +36 -0
  101. package/dist/components/Select/contexts/select.hook.js +11 -0
  102. package/dist/components/Select/contexts/select.provider.js +58 -0
  103. package/dist/components/Select/hooks/useNavigationList.js +50 -0
  104. package/dist/components/Select/hooks/useSelect.js +103 -0
  105. package/dist/components/Sidebar/Sidebar.variants.js +2 -2
  106. package/dist/components/Slider/Slider.js +1 -1
  107. package/dist/components/Switch/Switch.js +156 -129
  108. package/dist/components/Switch/Switch.variants.js +19 -10
  109. package/dist/components/Tabs/Tabs.js +1 -1
  110. package/dist/components/Tabs/Tabs.variants.js +4 -3
  111. package/dist/components/Tabs/components/Content.js +1 -1
  112. package/dist/components/Tabs/components/List.js +1 -1
  113. package/dist/components/Tabs/components/Trigger.js +1 -1
  114. package/dist/components/Tag/Tag.js +1 -1
  115. package/dist/components/Tag/Tag.variants.js +1 -0
  116. package/dist/components/TagSelect/components/Wrapper/Wrapper.js +49 -98
  117. package/dist/components/TimePicker/TimePicker.js +1 -1
  118. package/dist/components/TimePicker/TimePicker.variants.js +26 -14
  119. package/dist/components/TimePicker/components/MeridianList/MeridianList.js +30 -20
  120. package/dist/components/TimePicker/components/Wrapper/Wrapper.js +57 -35
  121. package/dist/components/TimePicker/components/WrapperList/WrapperList.js +53 -45
  122. package/dist/components/Toast/Toast.js +283 -256
  123. package/dist/components/Toast/Toast.variants.js +37 -24
  124. package/dist/components/Tooltip/Tooltip.js +15 -14
  125. package/dist/components/Tooltip/Tooltip.variants.js +5 -4
  126. package/dist/components/Typography/Typography.js +23 -25
  127. package/dist/components/Typography/Typography.variants.js +55 -52
  128. package/dist/components/VirtualizedTable/VirtualizedTable.js +97 -71
  129. package/dist/components/VirtualizedTable/components/Actions/Actions.js +95 -33
  130. package/dist/components/VirtualizedTable/components/Body/Body.js +73 -21
  131. package/dist/components/VirtualizedTable/components/DotPaginate/DotPaginate.js +94 -91
  132. package/dist/components/VirtualizedTable/components/DropdownPaginate/DropdownPaginate.js +20 -20
  133. package/dist/components/VirtualizedTable/components/Filter/Filter.js +61 -44
  134. package/dist/components/VirtualizedTable/components/FormPaginate/FormPaginate.js +33 -21
  135. package/dist/components/VirtualizedTable/components/Header/Header.js +61 -41
  136. package/dist/components/VirtualizedTable/components/Pagination/Pagination.js +43 -22
  137. package/dist/components/VirtualizedTable/components/Skeleton/Skeleton.js +106 -0
  138. package/dist/components/VirtualizedTable/components/TruncateText/TruncateText.js +22 -1858
  139. package/dist/components/VirtualizedTable/components/WrapperBody/WrapperBody.js +27 -0
  140. package/dist/components/VirtualizedTable/components/index.js +8 -6
  141. package/dist/components/VirtualizedTable/contexts/table.context.js +1 -0
  142. package/dist/components/VirtualizedTable/contexts/table.provider.js +68 -761
  143. package/dist/components/index.js +94 -86
  144. package/dist/contexts/theme.provider.js +0 -1
  145. package/dist/{createLucideIcon-D2CN7Ma9.js → createLucideIcon-D4r5Phnh.js} +0 -24
  146. package/dist/ellipsis-vertical-BVPtjl5f.js +9 -0
  147. package/dist/{index-C1g_chDT.js → index-AV6ZtGhy.js} +2 -2
  148. package/dist/index-BG8O18ZY.js +93 -0
  149. package/dist/index-BKjcReYh.js +55 -0
  150. package/dist/{index-N2OStZoU.js → index-BOE_3f_Z.js} +4 -25
  151. package/dist/{index-Cd2vhaop.js → index-BlSRBdPy.js} +5 -6
  152. package/dist/index-BmVmDQGH.js +662 -0
  153. package/dist/index-BvoZGpli.js +60 -0
  154. package/dist/index-Byr10W8m.js +1873 -0
  155. package/dist/{index-Dx2grAuN.js → index-CSWGJT-v.js} +0 -20
  156. package/dist/index-CeZcoQDw.js +479 -0
  157. package/dist/index-D6KzX_ef.js +135 -0
  158. package/dist/{index-B7t8D14s.js → index-D9SSJ6om.js} +4 -4
  159. package/dist/index-DKfEnhKr.js +200 -0
  160. package/dist/index-DLcqcWxM.js +29 -0
  161. package/dist/{index-ti1b9kqV.js → index-DMb4KD0b.js} +4 -4
  162. package/dist/{index-BAEWsOG1.js → index-DtEcCIrM.js} +1 -1
  163. package/dist/{index-bwWKd82e.js → index-Dy59FQl5.js} +1 -1
  164. package/dist/{index-C84F4YyO.js → index-gSPwC-1I.js} +10 -11
  165. package/dist/{index-Bnb0ezr3.js → index-vcSp8YRZ.js} +11 -12
  166. package/dist/index.d.ts +2142 -99
  167. package/dist/index.js +116 -106
  168. package/dist/libphonenumber-FTwQ9nyV.js +11549 -0
  169. package/dist/loader-juvMSJ9L.js +5 -0
  170. package/dist/package.json +43 -33
  171. package/dist/styles.css +1 -1
  172. package/dist/ui/civo-theme.css +194 -168
  173. package/dist/ui/theme.css +27 -0
  174. package/dist/{useBreadcrumb-B8DnuqkR.js → useBreadcrumb-BAHbGQ_O.js} +0 -10
  175. package/dist/utils/index.js +534 -501
  176. package/dist/x-BXShoIAM.js +8 -0
  177. package/dist/{x-4F_5p77m.js → x-Eoa9FJjA.js} +1 -1
  178. package/package.json +43 -33
  179. package/dist/Modal-D-NOEWMX.js +0 -98
  180. package/dist/chevron-down-MZvQoT2F.js +0 -11
  181. package/dist/chevron-right-VYBOBhRt.js +0 -19
  182. package/dist/components/Dropdown/Dropdown.js +0 -42
  183. package/dist/components/Dropdown/components/List/List.js +0 -79
  184. package/dist/components/Dropdown/components/ListItem/ListItem.js +0 -67
  185. package/dist/components/Dropdown/components/Wrapper.js +0 -205
  186. package/dist/components/Dropdown/contexts/dropdown.context.js +0 -19
  187. package/dist/components/Dropdown/contexts/dropdown.hook.js +0 -13
  188. package/dist/components/Dropdown/contexts/dropdown.provider.js +0 -30
  189. package/dist/components/Dropdown/contexts/index.js +0 -6
  190. package/dist/components/Dropdown/hooks/useDropdown.js +0 -58
  191. package/dist/components/Dropdown/hooks/useNavigationList.js +0 -62
  192. package/dist/components/NumberInput/NumberInput.js +0 -179
  193. package/dist/components/NumberInput/NumberInput.variants.js +0 -50
  194. package/dist/components/TimePicker/components/WrapperList/WrapperList.variants.js +0 -16
  195. package/dist/index-BITvcJAz.js +0 -423
  196. package/dist/index-BfXxHr_2.js +0 -125
  197. package/dist/index-Cvx4lqTq.js +0 -47
  198. package/dist/index-DBbEcSUG.js +0 -31
  199. package/dist/index-DQH6odE9.js +0 -82
  200. package/dist/index-DzIBBMjs.js +0 -436
  201. package/dist/index-os7vysFS.js +0 -131
  202. /package/dist/components/{Dropdown → Select}/components/EmptyList.js +0 -0
  203. /package/dist/components/{Dropdown → Select}/components/index.js +0 -0
@@ -0,0 +1,38 @@
1
+ import { c as e } from "../../../../index-D29mdTf5.js";
2
+ const t = e(
3
+ [
4
+ "cursor-pointer",
5
+ "py-1.5",
6
+ "px-2",
7
+ "last:pb-2",
8
+ "first:pt-2",
9
+ "h-full",
10
+ "flex",
11
+ "items-center",
12
+ "gap-2",
13
+ "hover:bg-gray-50",
14
+ "focus:bg-gray-50",
15
+ "dark:hover:bg-metal-700",
16
+ "dark:focus:bg-metal-700"
17
+ ],
18
+ {
19
+ variants: {
20
+ isSelected: {
21
+ true: "",
22
+ false: ""
23
+ }
24
+ },
25
+ compoundVariants: [
26
+ {
27
+ isSelected: !0,
28
+ class: ["bg-slate-50", "dark:bg-metal-700"]
29
+ }
30
+ ],
31
+ defaultVariants: {
32
+ isSelected: !1
33
+ }
34
+ }
35
+ );
36
+ export {
37
+ t as itemVariants
38
+ };
@@ -0,0 +1,30 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { cn as m } from "../../../../utils/index.js";
3
+ import { Item as t } from "../Item/Item.js";
4
+ import { listVariants as c } from "./List.variants.js";
5
+ import { Typography as d } from "../../../Typography/Typography.js";
6
+ import { useMultiSelectDropdown as p } from "../../contexts/MultiSelectDropdown.hook.js";
7
+ const y = ({ theme: s }) => {
8
+ const { options: i, selectedOptions: n, isLoading: l, noOptionsText: r } = p();
9
+ return /* @__PURE__ */ e("ul", { role: "listbox", "data-theme": s, className: m(c()), children: l ? /* @__PURE__ */ e(
10
+ t,
11
+ {
12
+ option: { id: "loading", label: "Loading..." },
13
+ className: "select-none pointer-events-none",
14
+ isSelected: !1
15
+ },
16
+ "loading"
17
+ ) : i.length > 0 ? i.map((o) => /* @__PURE__ */ e(
18
+ t,
19
+ {
20
+ option: o,
21
+ isSelected: n.some(
22
+ (a) => a.id === o.id
23
+ )
24
+ },
25
+ o.id
26
+ )) : /* @__PURE__ */ e("li", { className: "select-none", children: /* @__PURE__ */ e(d, { variant: "body2", className: "italic px-2 py-2", children: r ?? "No options" }) }) });
27
+ };
28
+ export {
29
+ y as List
30
+ };
@@ -0,0 +1,25 @@
1
+ import { c as a } from "../../../../index-D29mdTf5.js";
2
+ const o = a([
3
+ "absolute",
4
+ "bg-white",
5
+ "border",
6
+ "duration-100",
7
+ "flex",
8
+ "flex-col",
9
+ "mt-0.5",
10
+ "rounded",
11
+ "shadow-xs",
12
+ "top-full",
13
+ "transition-all",
14
+ "w-full",
15
+ "z-10",
16
+ "animate-in",
17
+ "fade-in-50",
18
+ "overflow-hidden",
19
+ "border-gray-200",
20
+ "dark:border-metal-700",
21
+ "dark:bg-metal-800"
22
+ ]);
23
+ export {
24
+ o as listVariants
25
+ };
@@ -0,0 +1,119 @@
1
+ import "../Item/Item.js";
2
+ import { List as S } from "../List/List.js";
3
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
4
+ import { forwardRef as k, useId as O, useImperativeHandle as C } from "react";
5
+ import { S as D } from "../../../../loader-juvMSJ9L.js";
6
+ import { Badge as L } from "../../../Badge/Badge.js";
7
+ import { Typography as p } from "../../../Typography/Typography.js";
8
+ import { cn as a } from "../../../../utils/index.js";
9
+ import { useMultiSelectDropdown as M } from "../../hooks/useMultiSelectDropdown.js";
10
+ import { labelVariants as R, multiSelectDropdownVariants as I, wrapperVariants as V } from "../../MultiSelectDropdown.variants.js";
11
+ import { X as j } from "../../../../x-BXShoIAM.js";
12
+ import { C as W } from "../../../../chevron-up-DEfvgPCw.js";
13
+ import { useMultiSelectDropdown as $ } from "../../contexts/MultiSelectDropdown.hook.js";
14
+ const B = k(
15
+ ({
16
+ isRequired: c,
17
+ label: n,
18
+ labelClassName: d,
19
+ name: s,
20
+ placeholder: f = "",
21
+ theme: u,
22
+ wrapperClassName: h
23
+ }, x) => {
24
+ const N = O(), i = s ? `${N}-name` : "id", {
25
+ inputRef: t,
26
+ isLoading: w,
27
+ isOpen: o,
28
+ selectedOptions: m,
29
+ onOpen: g,
30
+ onRemoveOption: v
31
+ } = $(), { wrapperRef: b, handleOpen: y } = M();
32
+ return C(x, () => t.current, [t]), /* @__PURE__ */ l(
33
+ "div",
34
+ {
35
+ ref: b,
36
+ className: a(
37
+ V({
38
+ className: h
39
+ })
40
+ ),
41
+ "data-theme": u,
42
+ children: [
43
+ n ? /* @__PURE__ */ l(
44
+ p,
45
+ {
46
+ component: "label",
47
+ variant: "labelLarge",
48
+ htmlFor: i,
49
+ className: a(
50
+ R({
51
+ className: d
52
+ })
53
+ ),
54
+ onClick: () => g(!0),
55
+ children: [
56
+ n,
57
+ " ",
58
+ c && /* @__PURE__ */ e(
59
+ p,
60
+ {
61
+ component: "span",
62
+ className: "text-red-500 dark:text-red-500 text-sm font-normal",
63
+ children: "*"
64
+ }
65
+ )
66
+ ]
67
+ }
68
+ ) : null,
69
+ /* @__PURE__ */ l(
70
+ "div",
71
+ {
72
+ id: i,
73
+ className: a(I()),
74
+ role: "combobox",
75
+ onClick: y,
76
+ "aria-expanded": o,
77
+ children: [
78
+ m.length === 0 ? /* @__PURE__ */ e("span", { className: "text-base text-inherit select-none", children: f }) : /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: m.map((r) => /* @__PURE__ */ e(
79
+ L,
80
+ {
81
+ "data-value": r.label,
82
+ label: r.value ?? r.label ?? "",
83
+ className: "select-none",
84
+ rightIcon: /* @__PURE__ */ e(j, { onClick: () => v(r) })
85
+ },
86
+ r.id
87
+ )) }),
88
+ w ? /* @__PURE__ */ e(D, { className: "w-4 h-4 animate-spin shrink-0 text-gray-400" }) : /* @__PURE__ */ e(
89
+ W,
90
+ {
91
+ className: a(
92
+ "w-4 h-4 transition-all duration-50 shrink-0 text-gray-400",
93
+ o ? "rotate-0" : "rotate-180"
94
+ )
95
+ }
96
+ )
97
+ ]
98
+ }
99
+ ),
100
+ /* @__PURE__ */ e(
101
+ "input",
102
+ {
103
+ ref: t,
104
+ type: "text",
105
+ name: s,
106
+ className: "hidden",
107
+ readOnly: !0
108
+ }
109
+ ),
110
+ o ? /* @__PURE__ */ e(S, {}) : null
111
+ ]
112
+ }
113
+ );
114
+ }
115
+ );
116
+ B.displayName = "MultiSelectDropdownWrapper";
117
+ export {
118
+ B as Wrapper
119
+ };
@@ -0,0 +1,8 @@
1
+ import { Item as e } from "./Item/Item.js";
2
+ import { List as t } from "./List/List.js";
3
+ import { Wrapper as f } from "./Wrapper/Wrapper.js";
4
+ export {
5
+ e as Item,
6
+ t as List,
7
+ f as Wrapper
8
+ };
@@ -0,0 +1,21 @@
1
+ import { createContext as n } from "react";
2
+ const t = {
3
+ options: [],
4
+ selectedOptions: [],
5
+ isOpen: !1,
6
+ inputRef: null,
7
+ onSelectOption() {
8
+ throw new Error("Function not implemented.");
9
+ },
10
+ onRemoveOption() {
11
+ throw new Error("Function not implemented.");
12
+ },
13
+ onOpen() {
14
+ throw new Error("Function not implemented.");
15
+ },
16
+ isLoading: !1,
17
+ noOptionsText: void 0
18
+ }, e = n(t);
19
+ export {
20
+ e as MultiSelectDropdownContext
21
+ };
@@ -0,0 +1,13 @@
1
+ import { useContext as o } from "react";
2
+ import { MultiSelectDropdownContext as e } from "./MultiSelectDropdown.context.js";
3
+ const i = () => {
4
+ const t = o(e);
5
+ if (!t)
6
+ throw new Error(
7
+ "useMultiSelectDropdown must be used within a MultiSelectDropdownProvider"
8
+ );
9
+ return t;
10
+ };
11
+ export {
12
+ i as useMultiSelectDropdown
13
+ };
@@ -0,0 +1,138 @@
1
+ import { jsx as V } from "react/jsx-runtime";
2
+ import { useRef as k, useState as R, useEffect as g, useCallback as S } from "react";
3
+ import { MultiSelectDropdownContext as C } from "./MultiSelectDropdown.context.js";
4
+ import { useToggle as E } from "../../../hooks/useToggle.js";
5
+ const q = ({
6
+ children: x,
7
+ defaultOptions: r = [],
8
+ multiselect: i = !0,
9
+ value: f,
10
+ onChange: m,
11
+ onBlur: u,
12
+ name: h,
13
+ isLoading: b,
14
+ noOptionsText: j
15
+ }) => {
16
+ const d = k(null), [w, I] = E(!1), [y, p] = R(r), [c, v] = R([]), o = f !== void 0;
17
+ g(() => {
18
+ if (!o) {
19
+ const n = new Set(
20
+ c.map((e) => e.id)
21
+ );
22
+ p(
23
+ i ? r.filter((e) => !n.has(e.id)) : r.map((e) => ({
24
+ ...e,
25
+ isSelected: n.has(e.id)
26
+ }))
27
+ );
28
+ }
29
+ }, [r, i, o, c]), g(() => {
30
+ if (o) {
31
+ const n = f || [];
32
+ v(n);
33
+ const e = new Set(n.map((s) => s.id));
34
+ p(
35
+ i ? r.filter((s) => !e.has(s.id)) : r.map((s) => ({
36
+ ...s,
37
+ isSelected: e.has(s.id)
38
+ }))
39
+ );
40
+ }
41
+ }, [f, o, r, i]);
42
+ const l = S(
43
+ (n) => {
44
+ const e = n.map(({ id: t, value: O, label: P }) => ({
45
+ id: t,
46
+ value: O ?? P
47
+ })), s = JSON.stringify(e);
48
+ d.current && (d.current.value = s), m && m({
49
+ target: {
50
+ value: n,
51
+ name: h ?? ""
52
+ }
53
+ });
54
+ },
55
+ [m, h]
56
+ ), a = S(
57
+ (n) => {
58
+ const e = w;
59
+ I(n), e && n === !1 && u && d.current && u({
60
+ target: d.current,
61
+ type: "blur"
62
+ });
63
+ },
64
+ [w, I, u, d]
65
+ ), D = S(
66
+ (n) => {
67
+ if (o) {
68
+ const t = [
69
+ ...i ? c : [],
70
+ n
71
+ ];
72
+ l(t), a(!1);
73
+ return;
74
+ }
75
+ const e = [
76
+ ...i ? c : [],
77
+ n
78
+ ];
79
+ v(e);
80
+ const s = e.map((t) => t.id);
81
+ p(() => i ? r.filter(
82
+ (t) => !s.includes(t.id)
83
+ ) : r.map((t) => ({
84
+ ...t,
85
+ isSelected: s.includes(t.id)
86
+ }))), l(e), a(!1);
87
+ },
88
+ [
89
+ r,
90
+ l,
91
+ i,
92
+ c,
93
+ a,
94
+ o
95
+ ]
96
+ ), M = S(
97
+ (n) => {
98
+ if (o) {
99
+ const t = c.filter(
100
+ (O) => O.id !== n.id
101
+ );
102
+ l(t);
103
+ return;
104
+ }
105
+ const e = c.filter(
106
+ (t) => t.id !== n.id
107
+ );
108
+ v(e);
109
+ const s = e.map((t) => t.id);
110
+ p(
111
+ () => r.filter(
112
+ (t) => !s.includes(t.id)
113
+ )
114
+ ), l(e);
115
+ },
116
+ [r, l, c, o]
117
+ );
118
+ return /* @__PURE__ */ V(
119
+ C.Provider,
120
+ {
121
+ value: {
122
+ options: y,
123
+ selectedOptions: c,
124
+ isOpen: w,
125
+ inputRef: d,
126
+ onSelectOption: D,
127
+ onRemoveOption: M,
128
+ onOpen: a,
129
+ isLoading: b,
130
+ noOptionsText: j
131
+ },
132
+ children: x
133
+ }
134
+ );
135
+ };
136
+ export {
137
+ q as MultiSelectDropdownProvider
138
+ };
@@ -0,0 +1,6 @@
1
+ import { useMultiSelectDropdown as r } from "./MultiSelectDropdown.hook.js";
2
+ import { MultiSelectDropdownProvider as l } from "./MultiSelectDropdown.provider.js";
3
+ export {
4
+ l as MultiSelectDropdownProvider,
5
+ r as useMultiSelectDropdown
6
+ };
@@ -0,0 +1,32 @@
1
+ import { useRef as l, useEffect as c, useCallback as u } from "react";
2
+ import { useMultiSelectDropdown as i } from "../contexts/MultiSelectDropdown.hook.js";
3
+ const f = () => {
4
+ const n = l(null), { onOpen: e } = i();
5
+ c(() => {
6
+ const t = new AbortController(), a = (o) => {
7
+ o.key === "Escape" && e(!1);
8
+ }, r = (o) => {
9
+ n.current?.contains(o.target) || e(!1);
10
+ };
11
+ return document.addEventListener("keydown", a, {
12
+ signal: t.signal
13
+ }), document.addEventListener("mousedown", r, {
14
+ signal: t.signal
15
+ }), () => {
16
+ t.abort();
17
+ };
18
+ }, [e, n]);
19
+ const s = u(
20
+ (t) => {
21
+ t.target?.closest("[data-value]") || e(!0);
22
+ },
23
+ [e]
24
+ );
25
+ return {
26
+ wrapperRef: n,
27
+ handleOpen: s
28
+ };
29
+ };
30
+ export {
31
+ f as useMultiSelectDropdown
32
+ };
@@ -0,0 +1,8 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { forwardRef as p } from "react";
3
+ import { PhoneNumberProvider as t } from "./contexts/phone-number.provider.js";
4
+ import { Wrapper as f } from "./components/Wrapper.js";
5
+ const u = p(({ defaultCountryCode: o = "US", ...m }, e) => /* @__PURE__ */ r(t, { defaultCountryCode: o, children: /* @__PURE__ */ r(f, { ref: e, ...m }) }));
6
+ export {
7
+ u as PhoneNumberInput
8
+ };
@@ -0,0 +1,46 @@
1
+ import { c as r } from "../../index-D29mdTf5.js";
2
+ const t = r(
3
+ [
4
+ "text-sm",
5
+ "relative",
6
+ "border",
7
+ "border-gray-300",
8
+ "rounded",
9
+ "data-[state=open]:border-aurora-500",
10
+ "focus-within:border-aurora-500",
11
+ "transition-colors",
12
+ "duration-150",
13
+ "dark:border-metal-700",
14
+ "dark:bg-metal-800",
15
+ "dark:data-[state=open]:border-metal-700",
16
+ "dark:focus-within:border-metal-700"
17
+ ],
18
+ {
19
+ variants: {
20
+ variant: {
21
+ default: [],
22
+ error: [
23
+ "border-red-600",
24
+ "dark:border-red-500",
25
+ "data-[state=open]:border-red-500",
26
+ "focus-within:border-red-500",
27
+ "pr-8",
28
+ "focus-visible:ring-transparent"
29
+ ]
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ variant: "default"
34
+ }
35
+ }
36
+ ), e = r([
37
+ "cursor-pointer",
38
+ "text-sm",
39
+ "leading-5",
40
+ "tracking-[0.1px]",
41
+ "dark:text-slate-50"
42
+ ]);
43
+ export {
44
+ e as labelVariants,
45
+ t as phoneNumberInputVariants
46
+ };
@@ -0,0 +1,36 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { cn as s } from "../../../../utils/index.js";
3
+ import { C as l } from "../../../../chevron-up-DrQr2Fwd.js";
4
+ import { usePhoneNumberContext as c } from "../../contexts/phone-number.hook.js";
5
+ const u = () => {
6
+ const { selectedCountry: o, isOpenSelector: t, handleOpenSelector: a } = c(), { flag: n } = o;
7
+ return /* @__PURE__ */ r(
8
+ "button",
9
+ {
10
+ type: "button",
11
+ className: "flex items-center gap-2 cursor-pointer",
12
+ onClick: () => a(!t),
13
+ children: [
14
+ /* @__PURE__ */ e(n, {}),
15
+ /* @__PURE__ */ e(
16
+ l,
17
+ {
18
+ className: s(
19
+ "transition-all",
20
+ "duration-100",
21
+ "data-[state=open]:rotate-0",
22
+ "data-[state=closed]:rotate-180",
23
+ "w-5",
24
+ "h-5",
25
+ "text-slate-400"
26
+ ),
27
+ "data-state": t ? "open" : "closed"
28
+ }
29
+ )
30
+ ]
31
+ }
32
+ );
33
+ };
34
+ export {
35
+ u as FlagContent
36
+ };