reaxify 0.0.98 → 1.3.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 (243) hide show
  1. package/dist/_virtual/_commonjsHelpers.cjs.js +1 -1
  2. package/dist/_virtual/_commonjsHelpers.es.js +3 -4
  3. package/dist/_virtual/index.cjs.js +1 -1
  4. package/dist/_virtual/index.cjs2.js +1 -1
  5. package/dist/_virtual/index.cjs3.js +1 -1
  6. package/dist/_virtual/index.es.js +3 -4
  7. package/dist/_virtual/index.es2.js +2 -3
  8. package/dist/_virtual/index.es3.js +0 -1
  9. package/dist/_virtual/react-is.development.cjs.js +1 -1
  10. package/dist/_virtual/react-is.development.es.js +0 -1
  11. package/dist/_virtual/react-is.production.min.cjs.js +1 -1
  12. package/dist/_virtual/react-is.production.min.es.js +2 -3
  13. package/dist/axios/index.d.ts.map +1 -1
  14. package/dist/axios/useAxios.cjs.js +1 -1
  15. package/dist/axios/useAxios.es.js +7 -7
  16. package/dist/components/Accordion/index.cjs.js +1 -1
  17. package/dist/components/Accordion/index.d.ts +4 -2
  18. package/dist/components/Accordion/index.d.ts.map +1 -1
  19. package/dist/components/Accordion/index.es.js +80 -96
  20. package/dist/components/Alert/index.cjs.js +1 -1
  21. package/dist/components/Alert/index.d.ts +6 -11
  22. package/dist/components/Alert/index.d.ts.map +1 -1
  23. package/dist/components/Alert/index.es.js +122 -99
  24. package/dist/components/Avatar/index.cjs.js +1 -1
  25. package/dist/components/Avatar/index.d.ts +3 -3
  26. package/dist/components/Avatar/index.d.ts.map +1 -1
  27. package/dist/components/Avatar/index.es.js +108 -97
  28. package/dist/components/Badge/index.cjs.js +1 -1
  29. package/dist/components/Badge/index.d.ts +1 -1
  30. package/dist/components/Badge/index.d.ts.map +1 -1
  31. package/dist/components/Badge/index.es.js +35 -35
  32. package/dist/components/Button/index.cjs.js +1 -1
  33. package/dist/components/Button/index.d.ts +1 -1
  34. package/dist/components/Button/index.d.ts.map +1 -1
  35. package/dist/components/Button/index.es.js +97 -99
  36. package/dist/components/ButtonGroup/index.cjs.js +1 -1
  37. package/dist/components/ButtonGroup/index.d.ts +0 -4
  38. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  39. package/dist/components/ButtonGroup/index.es.js +41 -37
  40. package/dist/components/Card/index.cjs.js +1 -1
  41. package/dist/components/Card/index.d.ts +4 -4
  42. package/dist/components/Card/index.d.ts.map +1 -1
  43. package/dist/components/Card/index.es.js +62 -36
  44. package/dist/components/Collapse/index.cjs.js +1 -0
  45. package/dist/components/Collapse/index.d.ts +14 -0
  46. package/dist/components/Collapse/index.d.ts.map +1 -0
  47. package/dist/components/Collapse/index.es.js +57 -0
  48. package/dist/components/Divider/index.cjs.js +1 -1
  49. package/dist/components/Divider/index.d.ts.map +1 -1
  50. package/dist/components/Divider/index.es.js +21 -18
  51. package/dist/components/Drawer/index.cjs.js +1 -1
  52. package/dist/components/Drawer/index.d.ts +6 -9
  53. package/dist/components/Drawer/index.d.ts.map +1 -1
  54. package/dist/components/Drawer/index.es.js +143 -104
  55. package/dist/components/Fill/index.cjs.js +1 -1
  56. package/dist/components/Fill/index.d.ts +1 -1
  57. package/dist/components/Fill/index.d.ts.map +1 -1
  58. package/dist/components/Fill/index.es.js +18 -10
  59. package/dist/components/InputGroup/index.cjs.js +1 -1
  60. package/dist/components/InputGroup/index.d.ts.map +1 -1
  61. package/dist/components/InputGroup/index.es.js +49 -37
  62. package/dist/components/List/index.cjs.js +1 -0
  63. package/dist/components/List/index.d.ts +25 -0
  64. package/dist/components/List/index.d.ts.map +1 -0
  65. package/dist/components/List/index.es.js +169 -0
  66. package/dist/components/Menu/index.cjs.js +1 -1
  67. package/dist/components/Menu/index.d.ts +3 -2
  68. package/dist/components/Menu/index.d.ts.map +1 -1
  69. package/dist/components/Menu/index.es.js +115 -96
  70. package/dist/components/Modal/index.cjs.js +1 -1
  71. package/dist/components/Modal/index.d.ts +7 -9
  72. package/dist/components/Modal/index.d.ts.map +1 -1
  73. package/dist/components/Modal/index.es.js +134 -87
  74. package/dist/components/Portal/index.cjs.js +1 -1
  75. package/dist/components/Portal/index.d.ts.map +1 -1
  76. package/dist/components/Portal/index.es.js +5 -4
  77. package/dist/components/Progress/index.cjs.js +1 -1
  78. package/dist/components/Progress/index.d.ts +1 -1
  79. package/dist/components/Progress/index.d.ts.map +1 -1
  80. package/dist/components/Progress/index.es.js +27 -22
  81. package/dist/components/Skeleton/index.cjs.js +1 -1
  82. package/dist/components/Skeleton/index.d.ts.map +1 -1
  83. package/dist/components/Skeleton/index.es.js +8 -8
  84. package/dist/components/Spacer/index.cjs.js +1 -1
  85. package/dist/components/Spacer/index.d.ts.map +1 -1
  86. package/dist/components/Spacer/index.es.js +5 -5
  87. package/dist/components/Spinner/index.cjs.js +1 -1
  88. package/dist/components/Spinner/index.d.ts +3 -2
  89. package/dist/components/Spinner/index.d.ts.map +1 -1
  90. package/dist/components/Spinner/index.es.js +17 -16
  91. package/dist/components/Stack/index.cjs.js +1 -1
  92. package/dist/components/Stack/index.d.ts.map +1 -1
  93. package/dist/components/Stack/index.es.js +30 -28
  94. package/dist/components/Switch/index.cjs.js +1 -1
  95. package/dist/components/Switch/index.d.ts.map +1 -1
  96. package/dist/components/Switch/index.es.js +17 -13
  97. package/dist/components/Table/index.cjs.js +1 -1
  98. package/dist/components/Table/index.d.ts +12 -6
  99. package/dist/components/Table/index.d.ts.map +1 -1
  100. package/dist/components/Table/index.es.js +143 -87
  101. package/dist/components/Tabs/index.cjs.js +1 -1
  102. package/dist/components/Tabs/index.d.ts +1 -1
  103. package/dist/components/Tabs/index.d.ts.map +1 -1
  104. package/dist/components/Tabs/index.es.js +58 -48
  105. package/dist/components/Toggle/index.cjs.js +1 -0
  106. package/dist/components/Toggle/index.d.ts +48 -0
  107. package/dist/components/Toggle/index.d.ts.map +1 -0
  108. package/dist/components/Toggle/index.es.js +115 -0
  109. package/dist/components/Tooltip/index.cjs.js +1 -1
  110. package/dist/components/Tooltip/index.d.ts +16 -9
  111. package/dist/components/Tooltip/index.d.ts.map +1 -1
  112. package/dist/components/Tooltip/index.es.js +191 -114
  113. package/dist/components/Typography/index.cjs.js +1 -1
  114. package/dist/components/Typography/index.d.ts +2 -2
  115. package/dist/components/Typography/index.d.ts.map +1 -1
  116. package/dist/components/Typography/index.es.js +19 -17
  117. package/dist/components/index.cjs.js +1 -1
  118. package/dist/components/index.d.ts +4 -0
  119. package/dist/components/index.d.ts.map +1 -1
  120. package/dist/components/index.es.js +48 -41
  121. package/dist/helpers/anchorPointer.cjs.js +1 -0
  122. package/dist/helpers/anchorPointer.d.ts +8 -0
  123. package/dist/helpers/anchorPointer.d.ts.map +1 -0
  124. package/dist/helpers/anchorPointer.es.js +11 -0
  125. package/dist/helpers/cn.cjs.js +1 -1
  126. package/dist/helpers/cn.es.js +2 -3
  127. package/dist/helpers/copy.cjs.js +1 -1
  128. package/dist/helpers/copy.es.js +4 -5
  129. package/dist/helpers/createPolymorphicComponent.cjs.js +1 -0
  130. package/dist/helpers/createPolymorphicComponent.d.ts +7 -0
  131. package/dist/helpers/createPolymorphicComponent.d.ts.map +1 -0
  132. package/dist/helpers/createPolymorphicComponent.es.js +15 -0
  133. package/dist/helpers/index.cjs.js +1 -1
  134. package/dist/helpers/index.d.ts +2 -0
  135. package/dist/helpers/index.d.ts.map +1 -1
  136. package/dist/helpers/index.es.js +30 -25
  137. package/dist/helpers/isEmpty.cjs.js +1 -1
  138. package/dist/helpers/isEmpty.es.js +0 -1
  139. package/dist/helpers/isServer.cjs.js +1 -1
  140. package/dist/helpers/isServer.es.js +0 -1
  141. package/dist/helpers/randomID.cjs.js +1 -1
  142. package/dist/helpers/randomID.es.js +0 -1
  143. package/dist/helpers/replaceNonDigits.cjs.js +1 -1
  144. package/dist/helpers/replaceNonDigits.es.js +4 -5
  145. package/dist/helpers/replacePersianNumbers.cjs.js +1 -1
  146. package/dist/helpers/replacePersianNumbers.es.js +0 -1
  147. package/dist/helpers/scrollIntoView.cjs.js +1 -1
  148. package/dist/helpers/scrollIntoView.es.js +4 -5
  149. package/dist/helpers/twoDigitNumber.cjs.js +1 -1
  150. package/dist/helpers/twoDigitNumber.es.js +0 -1
  151. package/dist/helpers/wait.cjs.js +1 -1
  152. package/dist/helpers/wait.es.js +5 -6
  153. package/dist/hooks/index.cjs.js +1 -1
  154. package/dist/hooks/index.d.ts +1 -0
  155. package/dist/hooks/index.d.ts.map +1 -1
  156. package/dist/hooks/index.es.js +6 -4
  157. package/dist/hooks/usePreventableClose.cjs.js +1 -0
  158. package/dist/hooks/usePreventableClose.d.ts +8 -0
  159. package/dist/hooks/usePreventableClose.d.ts.map +1 -0
  160. package/dist/hooks/usePreventableClose.es.js +21 -0
  161. package/dist/index.cjs.js +1 -1
  162. package/dist/index.es.js +1 -1
  163. package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.cjs.js +1 -1
  164. package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.es.js +2 -3
  165. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.cjs.js +1 -1
  166. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.es.js +7 -8
  167. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.cjs.js +1 -1
  168. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.es.js +0 -1
  169. package/dist/node_modules/@tanstack/hotkeys/dist/constants.cjs.js +1 -1
  170. package/dist/node_modules/@tanstack/hotkeys/dist/constants.es.js +0 -1
  171. package/dist/node_modules/@tanstack/hotkeys/dist/format.cjs.js +1 -1
  172. package/dist/node_modules/@tanstack/hotkeys/dist/format.es.js +4 -5
  173. package/dist/node_modules/@tanstack/hotkeys/dist/hotkey-manager.cjs.js +1 -1
  174. package/dist/node_modules/@tanstack/hotkeys/dist/hotkey-manager.es.js +11 -12
  175. package/dist/node_modules/@tanstack/hotkeys/dist/manager.utils.cjs.js +1 -1
  176. package/dist/node_modules/@tanstack/hotkeys/dist/manager.utils.es.js +0 -1
  177. package/dist/node_modules/@tanstack/hotkeys/dist/match.cjs.js +1 -1
  178. package/dist/node_modules/@tanstack/hotkeys/dist/match.es.js +2 -3
  179. package/dist/node_modules/@tanstack/hotkeys/dist/parse.cjs.js +1 -1
  180. package/dist/node_modules/@tanstack/hotkeys/dist/parse.es.js +45 -42
  181. package/dist/node_modules/@tanstack/react-hotkeys/dist/HotkeysProvider.cjs.js +1 -1
  182. package/dist/node_modules/@tanstack/react-hotkeys/dist/HotkeysProvider.es.js +0 -1
  183. package/dist/node_modules/@tanstack/react-hotkeys/dist/useHotkey.cjs.js +1 -1
  184. package/dist/node_modules/@tanstack/react-hotkeys/dist/useHotkey.es.js +3 -4
  185. package/dist/node_modules/@tanstack/react-hotkeys/dist/utils.cjs.js +1 -1
  186. package/dist/node_modules/@tanstack/react-hotkeys/dist/utils.es.js +0 -1
  187. package/dist/node_modules/@tanstack/store/dist/esm/alien.cjs.js +1 -1
  188. package/dist/node_modules/@tanstack/store/dist/esm/alien.es.js +22 -23
  189. package/dist/node_modules/@tanstack/store/dist/esm/atom.cjs.js +1 -1
  190. package/dist/node_modules/@tanstack/store/dist/esm/atom.es.js +0 -1
  191. package/dist/node_modules/@tanstack/store/dist/esm/store.cjs.js +1 -1
  192. package/dist/node_modules/@tanstack/store/dist/esm/store.es.js +2 -3
  193. package/dist/node_modules/iconsax-react/dist/esm/ArrowDown2.cjs.js +1 -1
  194. package/dist/node_modules/iconsax-react/dist/esm/ArrowDown2.es.js +0 -1
  195. package/dist/node_modules/iconsax-react/dist/esm/_rollupPluginBabelHelpers-3bc641ae.cjs.js +1 -1
  196. package/dist/node_modules/iconsax-react/dist/esm/_rollupPluginBabelHelpers-3bc641ae.es.js +12 -13
  197. package/dist/node_modules/object-assign/index.cjs.js +1 -1
  198. package/dist/node_modules/object-assign/index.es.js +7 -8
  199. package/dist/node_modules/prop-types/checkPropTypes.cjs.js +1 -1
  200. package/dist/node_modules/prop-types/checkPropTypes.es.js +12 -13
  201. package/dist/node_modules/prop-types/factoryWithThrowingShims.cjs.js +1 -1
  202. package/dist/node_modules/prop-types/factoryWithThrowingShims.es.js +6 -7
  203. package/dist/node_modules/prop-types/factoryWithTypeCheckers.cjs.js +1 -1
  204. package/dist/node_modules/prop-types/factoryWithTypeCheckers.es.js +1 -2
  205. package/dist/node_modules/prop-types/index.cjs.js +1 -1
  206. package/dist/node_modules/prop-types/index.es.js +3 -4
  207. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.cjs.js +1 -1
  208. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.es.js +0 -1
  209. package/dist/node_modules/prop-types/lib/has.cjs.js +1 -1
  210. package/dist/node_modules/prop-types/lib/has.es.js +2 -3
  211. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.cjs.js +2 -2
  212. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.es.js +0 -1
  213. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.cjs.js +1 -1
  214. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.es.js +0 -1
  215. package/dist/node_modules/prop-types/node_modules/react-is/index.cjs.js +1 -1
  216. package/dist/node_modules/prop-types/node_modules/react-is/index.es.js +3 -4
  217. package/dist/node_modules/react-animate-height/dist/esm/index.cjs.js +1 -1
  218. package/dist/node_modules/react-animate-height/dist/esm/index.es.js +0 -1
  219. package/dist/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  220. package/dist/node_modules/react-transition-group/esm/Transition.es.js +0 -1
  221. package/dist/node_modules/react-transition-group/esm/TransitionGroupContext.cjs.js +1 -1
  222. package/dist/node_modules/react-transition-group/esm/TransitionGroupContext.es.js +2 -3
  223. package/dist/node_modules/react-transition-group/esm/config.cjs.js +1 -1
  224. package/dist/node_modules/react-transition-group/esm/config.es.js +2 -3
  225. package/dist/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  226. package/dist/node_modules/react-transition-group/esm/utils/PropTypes.es.js +2 -3
  227. package/dist/node_modules/react-transition-group/esm/utils/reflow.cjs.js +1 -1
  228. package/dist/node_modules/react-transition-group/esm/utils/reflow.es.js +3 -4
  229. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.js +1 -1
  230. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.es.js +0 -1
  231. package/dist/providers/ThemeProvider.d.ts +33 -1
  232. package/dist/providers/ThemeProvider.d.ts.map +1 -1
  233. package/dist/providers/index.cjs.js +1 -1
  234. package/dist/providers/index.d.ts.map +1 -1
  235. package/dist/providers/index.es.js +3 -2
  236. package/dist/stores/portalElement.cjs.js +1 -1
  237. package/dist/stores/portalElement.d.ts.map +1 -1
  238. package/dist/stores/portalElement.es.js +13 -10
  239. package/dist/style.css +1 -0
  240. package/dist/types/index.d.ts +2 -2
  241. package/dist/types/index.d.ts.map +1 -1
  242. package/package.json +7 -3
  243. package/dist/reaxify.css +0 -1
@@ -0,0 +1,169 @@
1
+ "use client";
2
+ import { jsx as u } from "react/jsx-runtime";
3
+ import { useHotkey as I } from "../../node_modules/@tanstack/react-hotkeys/dist/useHotkey.es.js";
4
+ import { createContext as H, useContext as j, useRef as E, useCallback as P } from "react";
5
+ import { twMerge as f } from "../../node_modules/tailwind-merge/dist/bundle-mjs.es.js";
6
+ import p from "../../hooks/useClasses.es.js";
7
+ import { asComponent as v } from "../../helpers/createPolymorphicComponent.es.js";
8
+ const N = H({
9
+ hover: !1,
10
+ disabled: !1
11
+ });
12
+ function x({
13
+ as: s,
14
+ divided: i = !1,
15
+ hover: a = !1,
16
+ disabled: o = !1,
17
+ className: r,
18
+ children: l,
19
+ ...c
20
+ }) {
21
+ const t = p((e) => {
22
+ var d;
23
+ return (d = e.list) == null ? void 0 : d.base;
24
+ }), n = v(s, "ul");
25
+ return /* @__PURE__ */ u(
26
+ n,
27
+ {
28
+ "data-name": "list",
29
+ className: f(
30
+ "w-full list-none p-0 m-0",
31
+ i && "divide-y divide-border",
32
+ t,
33
+ r
34
+ ),
35
+ ...c,
36
+ children: /* @__PURE__ */ u(N.Provider, { value: { hover: a, disabled: o }, children: l })
37
+ }
38
+ );
39
+ }
40
+ function R({
41
+ as: s,
42
+ hover: i,
43
+ active: a = !1,
44
+ disabled: o,
45
+ className: r,
46
+ children: l,
47
+ tabIndex: c,
48
+ onClick: t,
49
+ ...n
50
+ }) {
51
+ const e = p((g) => {
52
+ var L;
53
+ return (L = g.list) == null ? void 0 : L.item;
54
+ }), { hover: d, disabled: D } = j(N), h = E(null), m = o ?? D, b = (i ?? d) && !m, y = a && !m, C = b && !!t, w = P(
55
+ (g) => {
56
+ m || !t || t(g);
57
+ },
58
+ [m, t]
59
+ );
60
+ I("Enter", w, {
61
+ target: h,
62
+ enabled: C,
63
+ preventDefault: !0
64
+ }), I("Space", w, {
65
+ target: h,
66
+ enabled: C,
67
+ preventDefault: !0
68
+ });
69
+ const A = v(s, "li");
70
+ return /* @__PURE__ */ u(
71
+ A,
72
+ {
73
+ ref: h,
74
+ "data-name": "list-item",
75
+ tabIndex: c ?? (b ? 0 : void 0),
76
+ "aria-disabled": m || void 0,
77
+ "aria-current": y ? "true" : void 0,
78
+ className: f(
79
+ "flex items-center gap-3 px-4 py-3 min-w-0 w-full",
80
+ b && "cursor-pointer transition-colors hover:bg-dark/5 [user-select:none]",
81
+ b && (e == null ? void 0 : e.hover),
82
+ y && "bg-primary/10 text-primary",
83
+ y && (e == null ? void 0 : e.active),
84
+ m && "opacity-75 cursor-not-allowed pointer-events-none select-none",
85
+ m && (e == null ? void 0 : e.disabled),
86
+ e == null ? void 0 : e.base,
87
+ r
88
+ ),
89
+ onClick: m ? void 0 : t,
90
+ ...n,
91
+ children: l
92
+ }
93
+ );
94
+ }
95
+ function k({
96
+ as: s,
97
+ className: i,
98
+ children: a,
99
+ ...o
100
+ }) {
101
+ const r = p((c) => {
102
+ var t, n;
103
+ return (n = (t = c.list) == null ? void 0 : t.icon) == null ? void 0 : n.base;
104
+ }), l = v(s, "div");
105
+ return /* @__PURE__ */ u(
106
+ l,
107
+ {
108
+ "data-name": "list-icon",
109
+ className: f(
110
+ "shrink-0 flex items-center justify-center [&_svg]:size-5.5",
111
+ r,
112
+ i
113
+ ),
114
+ ...o,
115
+ children: a
116
+ }
117
+ );
118
+ }
119
+ function z({
120
+ as: s,
121
+ className: i,
122
+ children: a,
123
+ ...o
124
+ }) {
125
+ const r = p((c) => {
126
+ var t, n;
127
+ return (n = (t = c.list) == null ? void 0 : t.content) == null ? void 0 : n.base;
128
+ }), l = v(s, "div");
129
+ return /* @__PURE__ */ u(
130
+ l,
131
+ {
132
+ "data-name": "list-content",
133
+ className: f("flex-1 min-w-0 space-y-px", r, i),
134
+ ...o,
135
+ children: a
136
+ }
137
+ );
138
+ }
139
+ function M({
140
+ as: s,
141
+ className: i,
142
+ children: a,
143
+ onClick: o,
144
+ ...r
145
+ }) {
146
+ const l = p((n) => {
147
+ var e, d;
148
+ return (d = (e = n.list) == null ? void 0 : e.action) == null ? void 0 : d.base;
149
+ }), c = (n) => {
150
+ n.stopPropagation(), o == null || o(n);
151
+ }, t = v(s, "div");
152
+ return /* @__PURE__ */ u(
153
+ t,
154
+ {
155
+ "data-name": "list-action",
156
+ className: f("shrink-0 self-center", l, i),
157
+ onClick: c,
158
+ ...r,
159
+ children: a
160
+ }
161
+ );
162
+ }
163
+ x.Item = R;
164
+ x.Icon = k;
165
+ x.Content = z;
166
+ x.Action = M;
167
+ export {
168
+ x as default
169
+ };
@@ -1 +1 @@
1
- "use client";"use strict";const i=require("react/jsx-runtime"),A=require("../../helpers/cn.cjs.js"),L=require("../../hooks/useClasses.cjs.js"),t=require("react"),G=require("../../node_modules/@tanstack/react-hotkeys/dist/useHotkey.cjs.js"),R=require("../../node_modules/tailwind-merge/dist/bundle-mjs.cjs.js"),J=require("../Button/index.cjs.js"),K=require("../Portal/index.cjs.js"),Q=require("../../node_modules/react-transition-group/esm/Transition.cjs.js"),w=t.createContext({open:!1,onClose:()=>{},transitionState:"unmounted",closeOnClick:!1,preventClose:!1});function $({as:l,ref:a,open:n,duration:m=300,onClose:r,onEnter:v,onEntering:y,onEntered:C,onExit:u,onExiting:b,onExited:M,closeOnClick:f=!1,preventClose:j=!1,anchorEl:k=null,className:I,children:H,...N}){const W=L(e=>e.menu.base),B=l||"ul",s=16,o=t.useRef(null),S=t.useRef({left:s,right:s,top:s}),D={entering:"scale-100 opacity-100",entered:"scale-100 opacity-100",exiting:"scale-90 opacity-0",exited:"scale-90 opacity-0",unmounted:""},P=t.useCallback(e=>{S.current=e},[]),z=t.useCallback(e=>{var c,x,d;(c=o.current)==null||c.style.setProperty("--left",`${e.left}px`),(x=o.current)==null||x.style.setProperty("--right",`${e.right}px`),(d=o.current)==null||d.style.setProperty("--top",`${e.top}px`)},[]),p=t.useCallback(()=>{var E,O;if(!n||!k)return;const e=k.getBoundingClientRect(),c=window.innerWidth,x=window.innerHeight,d=((E=o.current)==null?void 0:E.offsetWidth)||150,T=((O=o.current)==null?void 0:O.offsetHeight)||200;let g=e.left,q=e.right,h=e.bottom;g=Math.min(Math.max(g,s),c-d-s),q=Math.min(Math.max(c-e.right,s),c-d-s),h=Math.min(Math.max(h,s),x-T-s),P({left:g,right:q,top:h}),z({left:g,right:q,top:h})},[n,k,P,z]),F=()=>{j||r==null||r()};return t.useEffect(()=>{p()},[p,H]),t.useEffect(()=>{const e=()=>{p()};return window.addEventListener("scroll",e),window.addEventListener("resize",e),()=>{window.removeEventListener("scroll",e),window.removeEventListener("resize",e)}},[p]),t.useImperativeHandle(a,()=>o.current),G.useHotkey("Escape",()=>r(),{conflictBehavior:"allow",ignoreInputs:!0,enabled:n&&!j}),i.jsx(K,{children:i.jsx(Q.default,{nodeRef:o,in:n,timeout:m,unmountOnExit:!0,onEnter:v,onEntering:y,onEntered:C,onExit:u,onExiting:b,onExited:M,children:e=>i.jsx(w.Provider,{value:{open:n,onClose:F,transitionState:e,closeOnClick:f,preventClose:j},children:i.jsxs(U,{children:[i.jsx(V,{}),i.jsx(B,{ref:o,autoFocus:!0,"data-open":n,role:"menu",style:{transitionDuration:`${m}ms`},className:R.twMerge("w-fit min-w-52 bg-white shadow-lg rounded py-2 transition-[scale,opacity] absolute top-(--top) left-(--left) right-auto origin-top-left rtl:left-auto rtl:right-(--right) rtl:origin-top-right",W,D[e],I),...N,children:H})]})})})})}function U({children:l}){const{transitionState:a}=t.useContext(w),n={entering:"active pointer-events-auto",entered:"active pointer-events-auto",exiting:"pointer-events-none",exited:"pointer-events-none",unmounted:""};return i.jsx("div",{className:R.twMerge("fixed inset-0 size-full flex flex-col bg-transparent transition-opacity overflow-hidden z-10",n[a]),children:l})}function V(){const{onClose:l,preventClose:a}=t.useContext(w);return i.jsx("div",{className:A("w-full flex-1 opacity-0 cursor-default lg:absolute lg:size-full lg:inset-0",a&&"[&:active~*]:scale-95"),onClick:l})}function X({as:l,closeOnClick:a,className:n,children:m,onClick:r,...v}){const y=L(f=>f.menu.item.base),{closeOnClick:C,onClose:u}=t.useContext(w),b=a??C,M=f=>{b&&(u==null||u()),r==null||r(f)};return i.jsx(J,{as:l??"li",color:"light",variant:"text",role:"menuitem",className:R.twMerge("w-full flex items-center justify-start align-middle px-4 py-1.5 bg-transparent text-base font-normal rounded-none whitespace-nowrap transition-colors hover:bg-dark/5",y,n),onClick:M,...v,children:m})}$.Item=X;module.exports=$;
1
+ "use client";"use strict";const i=require("react/jsx-runtime"),n=require("react"),R=require("../../node_modules/tailwind-merge/dist/bundle-mjs.cjs.js"),G=require("../Button/index.cjs.js"),J=require("../Portal/index.cjs.js"),W=require("../../hooks/useClasses.cjs.js"),K=require("../../helpers/anchorPointer.cjs.js"),Q=require("../../hooks/usePreventableClose.cjs.js"),U=require("../../node_modules/react-transition-group/esm/Transition.cjs.js"),V=require("../../helpers/cn.cjs.js"),X=require("../../helpers/createPolymorphicComponent.cjs.js"),y=n.createContext({open:!1,onClose:()=>{},transitionState:"unmounted",closeOnClick:!1,preventClose:!1,dismiss:()=>{},anchorPointer:!1});function I({as:l,ref:c,open:t,duration:u=300,onClose:o,onEnter:b,onEntering:M,onEntered:P,onExit:p,onExiting:j,onExited:q,closeOnClick:x=!1,preventClose:z=!1,anchorEl:g=null,anchorPointer:k=!1,className:S,children:H,...$}){const B=W(e=>e.menu.base),s=16,r=n.useRef(null),D=n.useRef({left:s,right:s,top:s}),A={entering:"scale-100 opacity-100",entered:"scale-100 opacity-100",exiting:"scale-90 opacity-0",exited:"scale-90 opacity-0",unmounted:""},O=n.useCallback(e=>{D.current=e},[]),E=n.useCallback(e=>{var w,h,C;(w=r.current)==null||w.style.setProperty("--left",`${e.left}px`),(h=r.current)==null||h.style.setProperty("--right",`${e.right}px`),(C=r.current)==null||C.style.setProperty("--top",`${e.top}px`)},[]),v=n.useCallback(()=>{var L,N;if(!t||!g)return;const e=window.innerWidth,w=window.innerHeight,h=((L=r.current)==null?void 0:L.offsetWidth)||150,C=((N=r.current)==null?void 0:N.offsetHeight)||200;let d,f,m;if(k){const a=K.getAnchorPointer(g);if(!a)return;d=a.x,f=e-a.x,m=a.y}else{const a=g.getBoundingClientRect();d=a.left,f=e-a.right,m=a.bottom}d=Math.min(Math.max(d,s),e-h-s),f=Math.min(Math.max(f,s),e-h-s),m=Math.min(Math.max(m,s),w-C-s),O({left:d,right:f,top:m}),E({left:d,right:f,top:m})},[t,g,k,O,E]),F=Q({preventClose:z,open:t,onClose:o});n.useEffect(()=>{v()},[v,H]),n.useEffect(()=>{const e=()=>{v()};return window.addEventListener("scroll",e),window.addEventListener("resize",e),()=>{window.removeEventListener("scroll",e),window.removeEventListener("resize",e)}},[v]),n.useImperativeHandle(c,()=>r.current);const T=X.asComponent(l,"ul");return i.jsx(J,{children:i.jsx(U.default,{nodeRef:r,in:t,timeout:u,unmountOnExit:!0,onEnter:b,onEntering:M,onEntered:P,onExit:p,onExiting:j,onExited:q,children:e=>i.jsx(y.Provider,{value:{open:t,onClose:o,dismiss:F,transitionState:e,closeOnClick:x,preventClose:z,anchorPointer:k},children:i.jsxs(Y,{children:[i.jsx(Z,{}),i.jsx(T,{ref:r,autoFocus:!0,"data-open":t,role:"menu","data-name":"menu",style:{transitionDuration:`${u}ms`},className:R.twMerge("w-fit min-w-52 bg-white shadow-lg rounded py-2 transition-[scale,opacity] absolute top-(--top) left-(--left) right-auto origin-top-left rtl:left-auto rtl:right-(--right) rtl:origin-top-right",B,A[e],S),...$,children:H})]})})})})}function Y({children:l}){const{transitionState:c}=n.useContext(y),t={entering:"active pointer-events-auto",entered:"active pointer-events-auto",exiting:"pointer-events-none",exited:"pointer-events-none",unmounted:""};return i.jsx("div",{"data-name":"menu-container",className:R.twMerge("fixed inset-0 size-full flex flex-col bg-transparent transition-opacity overflow-hidden z-10",t[c]),children:l})}function Z(){const{dismiss:l,preventClose:c,anchorPointer:t}=n.useContext(y),u=o=>{t&&o.preventDefault()};return i.jsx("div",{"data-name":"menu-backdrop",className:V("w-full flex-1 opacity-0 cursor-default lg:absolute lg:size-full lg:inset-0",c&&"[&:active~*]:scale-95"),onContextMenu:u,onClick:l})}function _({as:l,closeOnClick:c,className:t,children:u,onClick:o,...b}){const M=W(x=>x.menu.item.base),{closeOnClick:P,onClose:p}=n.useContext(y),j=c??P,q=x=>{j&&(p==null||p()),o==null||o(x)};return i.jsx(G,{as:l??"li",color:"light",variant:"text",role:"menuitem","data-name":"menu-item",className:R.twMerge("w-full flex items-center justify-start align-middle px-4 py-1.5 bg-transparent text-base font-normal rounded-none whitespace-nowrap transition-colors hover:bg-dark/5",M,t),onClick:q,...b,children:u})}I.Item=_;module.exports=I;
@@ -2,14 +2,15 @@ import { ComponentPropsWithAs, ToggleEventProps, ToggleProps } from '../../types
2
2
  import { ElementType } from 'react';
3
3
  type MenuProps = {
4
4
  anchorEl?: HTMLElement | null;
5
+ anchorPointer?: boolean;
5
6
  closeOnClick?: boolean;
6
7
  preventClose?: boolean;
7
8
  duration?: number;
8
- } & Partial<ToggleEventProps> & ToggleProps;
9
+ } & Partial<ToggleEventProps> & Partial<ToggleProps>;
9
10
  type MenuItemProps = {
10
11
  closeOnClick?: boolean;
11
12
  };
12
- declare function Menu<E extends ElementType = "ul">({ as, ref, open, duration, onClose, onEnter, onEntering, onEntered, onExit, onExiting, onExited, closeOnClick, preventClose, anchorEl, className, children, ...props }: ComponentPropsWithAs<E, MenuProps>): import("react/jsx-runtime").JSX.Element;
13
+ declare function Menu<E extends ElementType = "ul">({ as, ref, open, duration, onClose, onEnter, onEntering, onEntered, onExit, onExiting, onExited, closeOnClick, preventClose, anchorEl, anchorPointer, className, children, ...props }: ComponentPropsWithAs<E, MenuProps>): import("react/jsx-runtime").JSX.Element;
13
14
  declare namespace Menu {
14
15
  var Item: typeof MenuItem;
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Menu/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAEL,WAAW,EAOZ,MAAM,OAAO,CAAC;AAOf,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAC3B,WAAW,CAAC;AACd,KAAK,aAAa,GAAG;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAgBF,iBAAS,IAAI,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,EAAE,EAC1C,EAAE,EACF,GAAG,EACH,IAAI,EACJ,QAAc,EACd,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAoB,EACpB,YAAoB,EACpB,QAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,2CA2HpC;kBA7IQ,IAAI;;;AA8Kb,iBAAS,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,EAAE,EAClD,EAAE,EACF,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,EAAE,aAAa,CAAC,2CAyBxC;AAID,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Menu/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAEL,WAAW,EAOZ,MAAM,OAAO,CAAC;AAOf,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAC3B,OAAO,CAAC,WAAW,CAAC,CAAC;AACvB,KAAK,aAAa,GAAG;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAoBF,iBAAS,IAAI,CAAC,CAAC,SAAS,WAAW,GAAG,IAAI,EAAE,EAC1C,EAAE,EACF,GAAG,EACH,IAAI,EACJ,QAAc,EACd,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAoB,EACpB,YAAoB,EACpB,QAAe,EACf,aAAqB,EACrB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,2CAmIpC;kBAtJQ,IAAI;;;AA6Lb,iBAAS,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,EAAE,EAClD,EAAE,EACF,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,EAAE,aAAa,CAAC,2CA0BxC;AAID,eAAe,IAAI,CAAC"}
@@ -1,41 +1,47 @@
1
1
  "use client";
2
- import { jsx as r, jsxs as J } from "react/jsx-runtime";
3
- import K from "../../helpers/cn.es.js";
4
- import $ from "../../hooks/useClasses.es.js";
5
- import { createContext as Q, useRef as N, useCallback as H, useEffect as W, useImperativeHandle as U, useContext as z } from "react";
6
- import { useHotkey as V } from "../../node_modules/@tanstack/react-hotkeys/dist/useHotkey.es.js";
7
- import { twMerge as O } from "../../node_modules/tailwind-merge/dist/bundle-mjs.es.js";
8
- import X from "../Button/index.es.js";
9
- import Y from "../Portal/index.es.js";
10
- import Z from "../../node_modules/react-transition-group/esm/Transition.es.js";
11
- const w = Q({
2
+ import { jsx as r, jsxs as K } from "react/jsx-runtime";
3
+ import { useRef as E, useCallback as H, useEffect as I, useImperativeHandle as Q, createContext as U, useContext as O } from "react";
4
+ import { twMerge as R } from "../../node_modules/tailwind-merge/dist/bundle-mjs.es.js";
5
+ import V from "../Button/index.es.js";
6
+ import X from "../Portal/index.es.js";
7
+ import S from "../../hooks/useClasses.es.js";
8
+ import { getAnchorPointer as Y } from "../../helpers/anchorPointer.es.js";
9
+ import Z from "../../hooks/usePreventableClose.es.js";
10
+ import _ from "../../node_modules/react-transition-group/esm/Transition.es.js";
11
+ import tt from "../../helpers/cn.es.js";
12
+ import { asComponent as et } from "../../helpers/createPolymorphicComponent.es.js";
13
+ const y = U({
12
14
  open: !1,
13
15
  onClose: () => {
14
16
  },
15
17
  transitionState: "unmounted",
16
18
  closeOnClick: !1,
17
- preventClose: !1
19
+ preventClose: !1,
20
+ dismiss: () => {
21
+ },
22
+ anchorPointer: !1
18
23
  });
19
- function _({
20
- as: s,
24
+ function nt({
25
+ as: a,
21
26
  ref: l,
22
27
  open: e,
23
- duration: m = 300,
28
+ duration: c = 300,
24
29
  onClose: o,
25
- onEnter: x,
26
- onEntering: v,
27
- onEntered: y,
28
- onExit: c,
29
- onExiting: b,
30
- onExited: C,
31
- closeOnClick: u = !1,
32
- preventClose: M = !1,
33
- anchorEl: k = null,
34
- className: j,
35
- children: R,
36
- ...S
30
+ onEnter: C,
31
+ onEntering: b,
32
+ onEntered: M,
33
+ onExit: d,
34
+ onExiting: P,
35
+ onExited: k,
36
+ closeOnClick: p = !1,
37
+ preventClose: L = !1,
38
+ anchorEl: h = null,
39
+ anchorPointer: z = !1,
40
+ className: D,
41
+ children: N,
42
+ ...A
37
43
  }) {
38
- const D = $((t) => t.menu.base), F = s || "ul", n = 16, i = N(null), T = N({
44
+ const F = S((t) => t.menu.base), n = 16, i = E(null), T = E({
39
45
  left: n,
40
46
  right: n,
41
47
  top: n
@@ -45,77 +51,84 @@ function _({
45
51
  exiting: "scale-90 opacity-0",
46
52
  exited: "scale-90 opacity-0",
47
53
  unmounted: ""
48
- }, E = H((t) => {
54
+ }, W = H((t) => {
49
55
  T.current = t;
50
- }, []), L = H((t) => {
51
- var a, p, f;
52
- (a = i.current) == null || a.style.setProperty("--left", `${t.left}px`), (p = i.current) == null || p.style.setProperty("--right", `${t.right}px`), (f = i.current) == null || f.style.setProperty("--top", `${t.top}px`);
53
- }, []), d = H(() => {
54
- var B, I;
55
- if (!e || !k) return;
56
- const t = k.getBoundingClientRect(), a = window.innerWidth, p = window.innerHeight, f = ((B = i.current) == null ? void 0 : B.offsetWidth) || 150, G = ((I = i.current) == null ? void 0 : I.offsetHeight) || 200;
57
- let h = t.left, P = t.right, g = t.bottom;
58
- h = Math.min(Math.max(h, n), a - f - n), P = Math.min(
59
- Math.max(a - t.right, n),
60
- a - f - n
61
- ), g = Math.min(Math.max(g, n), p - G - n), E({ left: h, right: P, top: g }), L({ left: h, right: P, top: g });
62
- }, [e, k, E, L]), A = () => {
63
- M || o == null || o();
64
- };
65
- return W(() => {
66
- d();
67
- }, [d, R]), W(() => {
56
+ }, []), $ = H((t) => {
57
+ var v, g, w;
58
+ (v = i.current) == null || v.style.setProperty("--left", `${t.left}px`), (g = i.current) == null || g.style.setProperty("--right", `${t.right}px`), (w = i.current) == null || w.style.setProperty("--top", `${t.top}px`);
59
+ }, []), x = H(() => {
60
+ var j, B;
61
+ if (!e || !h) return;
62
+ const t = window.innerWidth, v = window.innerHeight, g = ((j = i.current) == null ? void 0 : j.offsetWidth) || 150, w = ((B = i.current) == null ? void 0 : B.offsetHeight) || 200;
63
+ let u, m, f;
64
+ if (z) {
65
+ const s = Y(h);
66
+ if (!s) return;
67
+ u = s.x, m = t - s.x, f = s.y;
68
+ } else {
69
+ const s = h.getBoundingClientRect();
70
+ u = s.left, m = t - s.right, f = s.bottom;
71
+ }
72
+ u = Math.min(Math.max(u, n), t - g - n), m = Math.min(
73
+ Math.max(m, n),
74
+ t - g - n
75
+ ), f = Math.min(Math.max(f, n), v - w - n), W({ left: u, right: m, top: f }), $({ left: u, right: m, top: f });
76
+ }, [e, h, z, W, $]), G = Z({ preventClose: L, open: e, onClose: o });
77
+ I(() => {
78
+ x();
79
+ }, [x, N]), I(() => {
68
80
  const t = () => {
69
- d();
81
+ x();
70
82
  };
71
83
  return window.addEventListener("scroll", t), window.addEventListener("resize", t), () => {
72
84
  window.removeEventListener("scroll", t), window.removeEventListener("resize", t);
73
85
  };
74
- }, [d]), U(l, () => i.current), V("Escape", () => o(), {
75
- conflictBehavior: "allow",
76
- ignoreInputs: !0,
77
- enabled: e && !M
78
- }), /* @__PURE__ */ r(Y, { children: /* @__PURE__ */ r(
79
- Z,
86
+ }, [x]), Q(l, () => i.current);
87
+ const J = et(a, "ul");
88
+ return /* @__PURE__ */ r(X, { children: /* @__PURE__ */ r(
89
+ _,
80
90
  {
81
91
  nodeRef: i,
82
92
  in: e,
83
- timeout: m,
93
+ timeout: c,
84
94
  unmountOnExit: !0,
85
- onEnter: x,
86
- onEntering: v,
87
- onEntered: y,
88
- onExit: c,
89
- onExiting: b,
90
- onExited: C,
95
+ onEnter: C,
96
+ onEntering: b,
97
+ onEntered: M,
98
+ onExit: d,
99
+ onExiting: P,
100
+ onExited: k,
91
101
  children: (t) => /* @__PURE__ */ r(
92
- w.Provider,
102
+ y.Provider,
93
103
  {
94
104
  value: {
95
105
  open: e,
96
- onClose: A,
106
+ onClose: o,
107
+ dismiss: G,
97
108
  transitionState: t,
98
- closeOnClick: u,
99
- preventClose: M
109
+ closeOnClick: p,
110
+ preventClose: L,
111
+ anchorPointer: z
100
112
  },
101
- children: /* @__PURE__ */ J(tt, { children: [
102
- /* @__PURE__ */ r(et, {}),
113
+ children: /* @__PURE__ */ K(ot, { children: [
114
+ /* @__PURE__ */ r(it, {}),
103
115
  /* @__PURE__ */ r(
104
- F,
116
+ J,
105
117
  {
106
118
  ref: i,
107
119
  autoFocus: !0,
108
120
  "data-open": e,
109
121
  role: "menu",
110
- style: { transitionDuration: `${m}ms` },
111
- className: O(
122
+ "data-name": "menu",
123
+ style: { transitionDuration: `${c}ms` },
124
+ className: R(
112
125
  "w-fit min-w-52 bg-white shadow-lg rounded py-2 transition-[scale,opacity] absolute top-(--top) left-(--left) right-auto origin-top-left rtl:left-auto rtl:right-(--right) rtl:origin-top-right",
113
- D,
126
+ F,
114
127
  q[t],
115
- j
128
+ D
116
129
  ),
117
- ...S,
118
- children: R
130
+ ...A,
131
+ children: N
119
132
  }
120
133
  )
121
134
  ] })
@@ -124,12 +137,13 @@ function _({
124
137
  }
125
138
  ) });
126
139
  }
127
- function tt({ children: s }) {
128
- const { transitionState: l } = z(w);
140
+ function ot({ children: a }) {
141
+ const { transitionState: l } = O(y);
129
142
  return /* @__PURE__ */ r(
130
143
  "div",
131
144
  {
132
- className: O(
145
+ "data-name": "menu-container",
146
+ className: R(
133
147
  "fixed inset-0 size-full flex flex-col bg-transparent transition-opacity overflow-hidden z-10",
134
148
  {
135
149
  entering: "active pointer-events-auto",
@@ -139,53 +153,58 @@ function tt({ children: s }) {
139
153
  unmounted: ""
140
154
  }[l]
141
155
  ),
142
- children: s
156
+ children: a
143
157
  }
144
158
  );
145
159
  }
146
- function et() {
147
- const { onClose: s, preventClose: l } = z(w);
160
+ function it() {
161
+ const { dismiss: a, preventClose: l, anchorPointer: e } = O(y), c = (o) => {
162
+ e && o.preventDefault();
163
+ };
148
164
  return /* @__PURE__ */ r(
149
165
  "div",
150
166
  {
151
- className: K(
167
+ "data-name": "menu-backdrop",
168
+ className: tt(
152
169
  "w-full flex-1 opacity-0 cursor-default lg:absolute lg:size-full lg:inset-0",
153
170
  l && "[&:active~*]:scale-95"
154
171
  ),
155
- onClick: s
172
+ onContextMenu: c,
173
+ onClick: a
156
174
  }
157
175
  );
158
176
  }
159
- function nt({
160
- as: s,
177
+ function st({
178
+ as: a,
161
179
  closeOnClick: l,
162
180
  className: e,
163
- children: m,
181
+ children: c,
164
182
  onClick: o,
165
- ...x
183
+ ...C
166
184
  }) {
167
- const v = $((u) => u.menu.item.base), { closeOnClick: y, onClose: c } = z(w), b = l ?? y, C = (u) => {
168
- b && (c == null || c()), o == null || o(u);
185
+ const b = S((p) => p.menu.item.base), { closeOnClick: M, onClose: d } = O(y), P = l ?? M, k = (p) => {
186
+ P && (d == null || d()), o == null || o(p);
169
187
  };
170
188
  return /* @__PURE__ */ r(
171
- X,
189
+ V,
172
190
  {
173
- as: s ?? "li",
191
+ as: a ?? "li",
174
192
  color: "light",
175
193
  variant: "text",
176
194
  role: "menuitem",
177
- className: O(
195
+ "data-name": "menu-item",
196
+ className: R(
178
197
  "w-full flex items-center justify-start align-middle px-4 py-1.5 bg-transparent text-base font-normal rounded-none whitespace-nowrap transition-colors hover:bg-dark/5",
179
- v,
198
+ b,
180
199
  e
181
200
  ),
182
- onClick: C,
183
- ...x,
184
- children: m
201
+ onClick: k,
202
+ ...C,
203
+ children: c
185
204
  }
186
205
  );
187
206
  }
188
- _.Item = nt;
207
+ nt.Item = st;
189
208
  export {
190
- _ as default
209
+ nt as default
191
210
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),m=require("../../helpers/cn.cjs.js"),r=require("../../hooks/useClasses.cjs.js"),i=require("react"),k=require("../../node_modules/@tanstack/react-hotkeys/dist/useHotkey.cjs.js"),z=require("../../node_modules/tailwind-merge/dist/bundle-mjs.cjs.js"),x=require("../Card/index.cjs.js"),R=require("../Portal/index.cjs.js"),B=require("../../node_modules/react-transition-group/esm/Transition.cjs.js"),j=i.createContext({size:"md",open:!1,onClose:()=>{},transitionState:"unmounted",duration:300});function l({as:t,ref:n,size:o="md",open:e=!1,onClose:a=()=>{},onEnter:f,onEntering:p,onEntered:b,onExit:v,onExiting:u,onExited:c,duration:y=300,preventClose:g=!1,className:C,children:h,...w}){const H=r(d=>d.modal.base),M=i.useRef(null),N=t||"div",S={entering:"active opacity-100 pointer-events-auto",entered:"active opacity-100 pointer-events-auto",exiting:"opacity-0 pointer-events-none",exited:"opacity-0 pointer-events-none",unmounted:""},q=()=>{g||a()};return i.useImperativeHandle(n,()=>M.current),k.useHotkey("Escape",()=>a(),{conflictBehavior:"allow",ignoreInputs:!0,enabled:e&&!g}),s.jsx(R,{children:s.jsx(B.default,{nodeRef:M,in:e,timeout:y,unmountOnExit:!0,onEnter:f,onEntering:p,onEntered:b,onExit:v,onExiting:u,onExited:c,children:d=>s.jsxs(N,{ref:M,"data-open":e,style:{transitionDuration:`${y}ms`},className:z.twMerge("modal fixed size-full inset-0 flex flex-col z-10 bg-black/20 transition-opacity backdrop-blur p-4",H,S[d],C),...w,children:[s.jsx("div",{onClick:q,className:m("absolute inset-0 cursor-default opacity-0",g&&"[&:active~*]:scale-95")}),s.jsx(j.Provider,{value:{size:o,open:e,onClose:q,transitionState:d,duration:y},children:h})]})})})}function D({className:t,children:n,...o}){const e=r(u=>u.modal.dialog),{size:a,transitionState:f,duration:p}=i.useContext(j),b={entering:"scale-100",entered:"scale-100",exiting:"scale-75",exited:"scale-75",unmounted:""},v=i.useMemo(()=>{var c;return[{sm:"min-[576px]:w-[300px]",md:"min-[576px]:w-[500px]",lg:"min-[992px]:w-[800px]"}[a],(c=e==null?void 0:e.size)==null?void 0:c[a]]},[a,e==null?void 0:e.size]);return s.jsx(x,{as:"div",style:{transitionDuration:`${p}ms`},className:z.twMerge("max-w-full max-h-full m-auto transition-transform",e==null?void 0:e.base,v,b[f],t),...o,children:n})}function F({className:t,...n}){const o=r(e=>e.modal.header.base);return s.jsx(x.Header,{className:m(o,t),...n})}function $({className:t,...n}){const o=r(e=>e.modal.body.base);return s.jsx(x.Body,{className:m(o,t),...n})}function E({className:t,...n}){const o=r(e=>e.modal.footer.base);return s.jsx(x.Footer,{className:m(o,t),...n})}l.Dialog=D;l.Header=F;l.Body=$;l.Footer=E;exports.ModalContext=j;exports.default=l;
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),l=require("react"),q=require("../../node_modules/tailwind-merge/dist/bundle-mjs.cjs.js"),x=require("../Card/index.cjs.js"),k=require("../Portal/index.cjs.js"),d=require("../../hooks/useClasses.cjs.js"),D=require("../../hooks/usePreventableClose.cjs.js"),H=require("../../node_modules/react-transition-group/esm/Transition.cjs.js"),f=require("../../helpers/cn.cjs.js"),P=require("../../helpers/createPolymorphicComponent.cjs.js"),j=l.createContext({size:"md",open:!1,onClose:()=>{},transitionState:"unmounted",duration:300,preventClose:!1,dismiss:()=>{}});function c({as:n,ref:o,size:a="md",open:t=!1,onClose:e=()=>{},onEnter:r,onEntering:p,onEntered:b,onExit:g,onExiting:v,onExited:u,duration:i=300,preventClose:y=!1,className:z,children:h,...w}){const N=d(m=>m.modal.base),M=l.useRef(null),S={entering:"active opacity-100 pointer-events-auto",entered:"active opacity-100 pointer-events-auto",exiting:"opacity-0 pointer-events-none",exited:"opacity-0 pointer-events-none",unmounted:""},C=D({preventClose:y,open:t,onClose:e});l.useImperativeHandle(o,()=>M.current);const R=P.asComponent(n,"div");return s.jsx(k,{children:s.jsx(H.default,{nodeRef:M,in:t,timeout:i,unmountOnExit:!0,onEnter:r,onEntering:p,onEntered:b,onExit:g,onExiting:v,onExited:u,children:m=>s.jsxs(R,{ref:M,"data-open":t,role:"dialog","data-name":"modal",style:{transitionDuration:`${i}ms`},className:q.twMerge("modal fixed size-full inset-0 flex flex-col z-10 bg-black/20 transition-opacity backdrop-blur p-4",N,S[m],z),...w,children:[s.jsx("div",{"data-name":"modal-backdrop",onClick:C,className:f("absolute inset-0 cursor-default opacity-0",y&&"[&:active~*]:scale-95")}),s.jsx(j.Provider,{value:{size:a,open:t,onClose:e,dismiss:C,transitionState:m,duration:i,preventClose:y},children:h})]})})})}function B({as:n,className:o,children:a,...t}){const e=d(u=>u.modal.dialog),{size:r,transitionState:p,duration:b}=l.useContext(j),g={entering:"scale-100",entered:"scale-100",exiting:"scale-75",exited:"scale-75",unmounted:""},v=l.useMemo(()=>{var i;return[{sm:"min-[576px]:w-[300px]",md:"min-[576px]:w-[500px]",lg:"min-[992px]:w-[800px]"}[r],(i=e==null?void 0:e.size)==null?void 0:i[r]]},[r,e==null?void 0:e.size]);return s.jsx(x,{as:n,"data-name":"modal-dialog",style:{transitionDuration:`${b}ms`},className:q.twMerge("max-w-full max-h-full m-auto transition-transform",e==null?void 0:e.base,v,g[p],o),...t,children:a})}function F({as:n,className:o,...a}){const t=d(e=>e.modal.header.base);return s.jsx(x.Header,{as:n,"data-name":"modal-header",className:f(t,o),...a})}function $({as:n,className:o,...a}){const t=d(e=>e.modal.body.base);return s.jsx(x.Body,{as:n,"data-name":"modal-body",className:f(t,o),...a})}function O({as:n,className:o,...a}){const t=d(e=>e.modal.footer.base);return s.jsx(x.Footer,{as:n,"data-name":"modal-footer",className:f(t,o),...a})}c.Dialog=B;c.Header=F;c.Body=$;c.Footer=O;exports.ModalContext=j;exports.default=c;
@@ -1,20 +1,18 @@
1
1
  import { ComponentPropsWithAs, Size, ToggleEventProps, ToggleProps } from '../../types';
2
- import { ComponentProps, ElementType } from 'react';
2
+ import { ElementType } from 'react';
3
3
  import { TransitionStatus } from 'react-transition-group';
4
4
  type Context = {
5
5
  size: Size;
6
6
  transitionState: TransitionStatus;
7
7
  duration: number;
8
+ preventClose: boolean;
9
+ dismiss: VoidFunction;
8
10
  } & ToggleProps;
9
11
  type ModalProps = {
10
12
  size?: Size;
11
13
  duration?: number;
12
14
  preventClose?: boolean;
13
15
  } & Partial<ToggleEventProps> & Partial<ToggleProps>;
14
- type ModalDialogProps = Omit<ComponentProps<"div">, "as" | "ref">;
15
- type ModalHeaderProps = ComponentProps<"div">;
16
- type ModalBodyProps = ComponentProps<"div">;
17
- type ModalFooterProps = ComponentProps<"div">;
18
16
  export declare const ModalContext: import('react').Context<Context>;
19
17
  declare function Modal<E extends ElementType = "div">({ as, ref, size, open, onClose, onEnter, onEntering, onEntered, onExit, onExiting, onExited, duration, preventClose, className, children, ...props }: ComponentPropsWithAs<E, ModalProps>): import("react/jsx-runtime").JSX.Element;
20
18
  declare namespace Modal {
@@ -23,9 +21,9 @@ declare namespace Modal {
23
21
  var Body: typeof ModalBody;
24
22
  var Footer: typeof ModalFooter;
25
23
  }
26
- declare function ModalDialog({ className, children, ...props }: ModalDialogProps): import("react/jsx-runtime").JSX.Element;
27
- declare function ModalHeader({ className, ...props }: ModalHeaderProps): import("react/jsx-runtime").JSX.Element;
28
- declare function ModalBody({ className, ...props }: ModalBodyProps): import("react/jsx-runtime").JSX.Element;
29
- declare function ModalFooter({ className, ...props }: ModalFooterProps): import("react/jsx-runtime").JSX.Element;
24
+ declare function ModalDialog<E extends ElementType = "div">({ as, className, children, ...props }: ComponentPropsWithAs<E>): import("react/jsx-runtime").JSX.Element;
25
+ declare function ModalHeader<E extends ElementType = "div">({ as, className, ...props }: ComponentPropsWithAs<E>): import("react/jsx-runtime").JSX.Element;
26
+ declare function ModalBody<E extends ElementType = "div">({ as, className, ...props }: ComponentPropsWithAs<E>): import("react/jsx-runtime").JSX.Element;
27
+ declare function ModalFooter<E extends ElementType = "div">({ as, className, ...props }: ComponentPropsWithAs<E>): import("react/jsx-runtime").JSX.Element;
30
28
  export default Modal;
31
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,cAAc,EAEd,WAAW,EAKZ,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKtE,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,gBAAgB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAAC;AAChB,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAC3B,OAAO,CAAC,WAAW,CAAC,CAAC;AACvB,KAAK,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;AAClE,KAAK,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5C,KAAK,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE9C,eAAO,MAAM,YAAY,kCAMvB,CAAC;AAEH,iBAAS,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EAC5C,EAAE,EACF,GAAG,EACH,IAAW,EACX,IAAY,EACZ,OAAkB,EAClB,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAc,EACd,YAAoB,EACpB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,2CAuErC;kBAxFQ,KAAK;;;;;;AAyFd,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAkCvE;AACD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAG7D;AACD,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAGzD;AACD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAG7D;AAOD,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAGL,WAAW,EAKZ,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKtE,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,EAAE,gBAAgB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;CACvB,GAAG,WAAW,CAAC;AAChB,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAC3B,OAAO,CAAC,WAAW,CAAC,CAAC;AAEvB,eAAO,MAAM,YAAY,kCAQvB,CAAC;AAEH,iBAAS,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EAC5C,EAAE,EACF,GAAG,EACH,IAAW,EACX,IAAY,EACZ,OAAkB,EAClB,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAc,EACd,YAAoB,EACpB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,2CAoErC;kBArFQ,KAAK;;;;;;AAsFd,iBAAS,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EAClD,EAAE,EACF,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAmCzB;AACD,iBAAS,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EAClD,EAAE,EACF,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAUzB;AACD,iBAAS,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EAChD,EAAE,EACF,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAUzB;AACD,iBAAS,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,EAClD,EAAE,EACF,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAUzB;AAOD,eAAe,KAAK,CAAC"}