@dmsi/wedgekit-react 0.0.2

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 (263) hide show
  1. package/README.md +35 -0
  2. package/dist/chunk-27KIIUAR.js +59 -0
  3. package/dist/chunk-2G2E2JMA.js +123 -0
  4. package/dist/chunk-4C66DLIJ.js +51 -0
  5. package/dist/chunk-4RD5ZF2V.js +55 -0
  6. package/dist/chunk-4RJKB7LC.js +14 -0
  7. package/dist/chunk-4T7F5BZZ.js +26 -0
  8. package/dist/chunk-5GOBP2JS.js +53 -0
  9. package/dist/chunk-6ZY524ID.js +42 -0
  10. package/dist/chunk-AWQSSKCK.js +32 -0
  11. package/dist/chunk-BNHSAFMP.js +93 -0
  12. package/dist/chunk-BWRHL2AG.js +439 -0
  13. package/dist/chunk-DKKYR6DS.js +132 -0
  14. package/dist/chunk-E5ALT5W7.js +182 -0
  15. package/dist/chunk-FY7PTP6E.js +322 -0
  16. package/dist/chunk-GTCSRHPF.js +119 -0
  17. package/dist/chunk-I2UVVKQI.js +12 -0
  18. package/dist/chunk-IGQVA7SC.js +41 -0
  19. package/dist/chunk-K3IKUSZW.js +59 -0
  20. package/dist/chunk-KENSVWOY.js +151 -0
  21. package/dist/chunk-KX3O6GJ6.js +138 -0
  22. package/dist/chunk-L4UM372R.js +253 -0
  23. package/dist/chunk-ORMEWXMH.js +37 -0
  24. package/dist/chunk-Q3FKEKIN.js +23 -0
  25. package/dist/chunk-SEKKGFM6.js +28 -0
  26. package/dist/chunk-SY3HT54E.js +91 -0
  27. package/dist/chunk-TAW5ZZ4Z.js +346 -0
  28. package/dist/chunk-TRUPPHBQ.js +109 -0
  29. package/dist/chunk-TU55CHXU.js +30 -0
  30. package/dist/chunk-TWZZB4WO.js +114 -0
  31. package/dist/chunk-TYI74BSP.js +62 -0
  32. package/dist/chunk-U42SKNR6.js +104 -0
  33. package/dist/chunk-UU3FA6LV.js +72 -0
  34. package/dist/chunk-WVUIIBRR.js +51 -0
  35. package/dist/chunk-XUIPGYP5.js +39 -0
  36. package/dist/chunk-Z4UCFUF7.js +299 -0
  37. package/dist/components/Breadcrumbs.cjs +376 -0
  38. package/dist/components/Breadcrumbs.js +90 -0
  39. package/dist/components/Button.cjs +319 -0
  40. package/dist/components/Button.js +8 -0
  41. package/dist/components/CalendarRange.cjs +520 -0
  42. package/dist/components/CalendarRange.js +13 -0
  43. package/dist/components/Caption.cjs +283 -0
  44. package/dist/components/Caption.js +80 -0
  45. package/dist/components/Checkbox.cjs +378 -0
  46. package/dist/components/Checkbox.js +11 -0
  47. package/dist/components/ContentTab.cjs +382 -0
  48. package/dist/components/ContentTab.js +10 -0
  49. package/dist/components/ContentTabs.cjs +472 -0
  50. package/dist/components/ContentTabs.js +98 -0
  51. package/dist/components/DMSiLogo.cjs +79 -0
  52. package/dist/components/DMSiLogo.js +56 -0
  53. package/dist/components/DataGrid.cjs +3113 -0
  54. package/dist/components/DataGrid.js +758 -0
  55. package/dist/components/DataGridCell.cjs +1907 -0
  56. package/dist/components/DataGridCell.js +24 -0
  57. package/dist/components/DataTable.cjs +791 -0
  58. package/dist/components/DataTable.js +720 -0
  59. package/dist/components/DateInput.cjs +1130 -0
  60. package/dist/components/DateInput.js +170 -0
  61. package/dist/components/DateRangeInput.cjs +1131 -0
  62. package/dist/components/DateRangeInput.js +171 -0
  63. package/dist/components/DebugJson.cjs +50 -0
  64. package/dist/components/DebugJson.js +27 -0
  65. package/dist/components/Display.cjs +234 -0
  66. package/dist/components/Display.js +12 -0
  67. package/dist/components/EditingContext.cjs +73 -0
  68. package/dist/components/EditingContext.js +35 -0
  69. package/dist/components/FilterGroup.cjs +1431 -0
  70. package/dist/components/FilterGroup.js +231 -0
  71. package/dist/components/FullViewportBox.cjs +35 -0
  72. package/dist/components/FullViewportBox.js +12 -0
  73. package/dist/components/Grid.cjs +69 -0
  74. package/dist/components/Grid.js +36 -0
  75. package/dist/components/GridContainer.cjs +125 -0
  76. package/dist/components/GridContainer.js +92 -0
  77. package/dist/components/Heading.cjs +238 -0
  78. package/dist/components/Heading.js +14 -0
  79. package/dist/components/HorizontalDivider.cjs +33 -0
  80. package/dist/components/HorizontalDivider.js +10 -0
  81. package/dist/components/Icon.cjs +98 -0
  82. package/dist/components/Icon.js +7 -0
  83. package/dist/components/Input.cjs +672 -0
  84. package/dist/components/Input.js +21 -0
  85. package/dist/components/InputGroup.cjs +270 -0
  86. package/dist/components/InputGroup.js +60 -0
  87. package/dist/components/Label.cjs +223 -0
  88. package/dist/components/Label.js +8 -0
  89. package/dist/components/Link.cjs +262 -0
  90. package/dist/components/Link.js +8 -0
  91. package/dist/components/List.cjs +37 -0
  92. package/dist/components/List.js +14 -0
  93. package/dist/components/LiveChatComponent.cjs +63 -0
  94. package/dist/components/LiveChatComponent.js +40 -0
  95. package/dist/components/LogoAgilityTopBar.cjs +115 -0
  96. package/dist/components/LogoAgilityTopBar.js +92 -0
  97. package/dist/components/LogoDMSiTopBar.cjs +79 -0
  98. package/dist/components/LogoDMSiTopBar.js +7 -0
  99. package/dist/components/LogoMillworkTopBar.cjs +221 -0
  100. package/dist/components/LogoMillworkTopBar.js +198 -0
  101. package/dist/components/MainBar.cjs +211 -0
  102. package/dist/components/MainBar.js +65 -0
  103. package/dist/components/Menu.cjs +437 -0
  104. package/dist/components/Menu.js +11 -0
  105. package/dist/components/MenuOption.cjs +483 -0
  106. package/dist/components/MenuOption.js +13 -0
  107. package/dist/components/MobileDataGrid.cjs +658 -0
  108. package/dist/components/MobileDataGrid.js +125 -0
  109. package/dist/components/Modal.cjs +783 -0
  110. package/dist/components/Modal.js +245 -0
  111. package/dist/components/ModalButtons.cjs +385 -0
  112. package/dist/components/ModalButtons.js +10 -0
  113. package/dist/components/ModalContent.cjs +57 -0
  114. package/dist/components/ModalContent.js +7 -0
  115. package/dist/components/ModalHeader.cjs +426 -0
  116. package/dist/components/ModalHeader.js +11 -0
  117. package/dist/components/ModalScrim.cjs +64 -0
  118. package/dist/components/ModalScrim.js +7 -0
  119. package/dist/components/NavigationTab.cjs +431 -0
  120. package/dist/components/NavigationTab.js +10 -0
  121. package/dist/components/NavigationTabs.cjs +477 -0
  122. package/dist/components/NavigationTabs.js +56 -0
  123. package/dist/components/Notification.cjs +640 -0
  124. package/dist/components/Notification.js +117 -0
  125. package/dist/components/OptionPill.cjs +478 -0
  126. package/dist/components/OptionPill.js +11 -0
  127. package/dist/components/Paragraph.cjs +231 -0
  128. package/dist/components/Paragraph.js +8 -0
  129. package/dist/components/Password.cjs +700 -0
  130. package/dist/components/Password.js +53 -0
  131. package/dist/components/ProjectBar.cjs +242 -0
  132. package/dist/components/ProjectBar.js +63 -0
  133. package/dist/components/Radio.cjs +349 -0
  134. package/dist/components/Radio.js +131 -0
  135. package/dist/components/Search.cjs +767 -0
  136. package/dist/components/Search.js +12 -0
  137. package/dist/components/Select.cjs +758 -0
  138. package/dist/components/Select.js +12 -0
  139. package/dist/components/SideMenu.cjs +54 -0
  140. package/dist/components/SideMenu.js +21 -0
  141. package/dist/components/SideMenuGroup.cjs +422 -0
  142. package/dist/components/SideMenuGroup.js +83 -0
  143. package/dist/components/SideMenuItem.cjs +388 -0
  144. package/dist/components/SideMenuItem.js +70 -0
  145. package/dist/components/Stack.cjs +138 -0
  146. package/dist/components/Stack.js +7 -0
  147. package/dist/components/StatusPill.cjs +265 -0
  148. package/dist/components/StatusPill.js +52 -0
  149. package/dist/components/Stepper.cjs +885 -0
  150. package/dist/components/Stepper.js +105 -0
  151. package/dist/components/Subheader.cjs +226 -0
  152. package/dist/components/Subheader.js +8 -0
  153. package/dist/components/Surface.cjs +98 -0
  154. package/dist/components/Surface.js +40 -0
  155. package/dist/components/Swatch.cjs +1728 -0
  156. package/dist/components/Swatch.js +1319 -0
  157. package/dist/components/Textarea.cjs +269 -0
  158. package/dist/components/Textarea.js +96 -0
  159. package/dist/components/Theme.cjs +36 -0
  160. package/dist/components/Theme.js +7 -0
  161. package/dist/components/Time.cjs +1118 -0
  162. package/dist/components/Time.js +353 -0
  163. package/dist/components/Toast.cjs +644 -0
  164. package/dist/components/Toast.js +218 -0
  165. package/dist/components/Tooltip.cjs +273 -0
  166. package/dist/components/Tooltip.js +9 -0
  167. package/dist/components/TopBar.cjs +352 -0
  168. package/dist/components/TopBar.js +132 -0
  169. package/dist/components/useInfiniteScroll.cjs +57 -0
  170. package/dist/components/useInfiniteScroll.js +8 -0
  171. package/dist/components/useMatchesMedia.cjs +53 -0
  172. package/dist/components/useMatchesMedia.js +9 -0
  173. package/dist/components/useMenuSystem.cjs +358 -0
  174. package/dist/components/useMenuSystem.js +11 -0
  175. package/dist/components/useMounted.cjs +39 -0
  176. package/dist/components/useMounted.js +8 -0
  177. package/dist/fonts.css +21 -0
  178. package/dist/icons-light[FILL]-PPZXOLWS.woff2 +0 -0
  179. package/dist/icons-normal[FILL]-PPZXOLWS.woff2 +0 -0
  180. package/dist/index.css +4401 -0
  181. package/dist/open-sans-55T6A4JE.woff2 +0 -0
  182. package/dist/types.cjs +18 -0
  183. package/dist/types.js +0 -0
  184. package/package.json +66 -0
  185. package/src/brand.css +125 -0
  186. package/src/classNames.ts +144 -0
  187. package/src/components/Breadcrumbs.tsx +116 -0
  188. package/src/components/Button.tsx +210 -0
  189. package/src/components/CalendarRange.tsx +429 -0
  190. package/src/components/Caption.tsx +101 -0
  191. package/src/components/Checkbox.tsx +196 -0
  192. package/src/components/ContentTab.tsx +66 -0
  193. package/src/components/ContentTabs.tsx +103 -0
  194. package/src/components/DMSiLogo.tsx +32 -0
  195. package/src/components/DataGrid.tsx +948 -0
  196. package/src/components/DataGridCell.tsx +384 -0
  197. package/src/components/DataTable.tsx +835 -0
  198. package/src/components/DateInput.tsx +188 -0
  199. package/src/components/DateRangeInput.tsx +179 -0
  200. package/src/components/DebugJson.tsx +24 -0
  201. package/src/components/Display.tsx +60 -0
  202. package/src/components/EditingContext.tsx +40 -0
  203. package/src/components/FilterGroup.tsx +234 -0
  204. package/src/components/FullViewportBox.tsx +11 -0
  205. package/src/components/Grid.tsx +75 -0
  206. package/src/components/GridContainer.tsx +124 -0
  207. package/src/components/Heading.tsx +66 -0
  208. package/src/components/HorizontalDivider.tsx +3 -0
  209. package/src/components/Icon.tsx +36 -0
  210. package/src/components/Input.tsx +511 -0
  211. package/src/components/InputGroup.tsx +51 -0
  212. package/src/components/Label.tsx +40 -0
  213. package/src/components/Link.tsx +106 -0
  214. package/src/components/List.tsx +10 -0
  215. package/src/components/LiveChatComponent.tsx +56 -0
  216. package/src/components/LogoAgilityTopBar.tsx +53 -0
  217. package/src/components/LogoDMSiTopBar.tsx +32 -0
  218. package/src/components/LogoMillworkTopBar.tsx +118 -0
  219. package/src/components/MainBar.tsx +83 -0
  220. package/src/components/Menu.tsx +286 -0
  221. package/src/components/MenuOption.tsx +275 -0
  222. package/src/components/MobileDataGrid.tsx +135 -0
  223. package/src/components/Modal.tsx +271 -0
  224. package/src/components/ModalButtons.tsx +44 -0
  225. package/src/components/ModalContent.tsx +23 -0
  226. package/src/components/ModalHeader.tsx +41 -0
  227. package/src/components/ModalScrim.tsx +35 -0
  228. package/src/components/NavigationTab.tsx +89 -0
  229. package/src/components/NavigationTabs.tsx +63 -0
  230. package/src/components/Notification.tsx +120 -0
  231. package/src/components/OptionPill.tsx +114 -0
  232. package/src/components/Paragraph.tsx +49 -0
  233. package/src/components/Password.tsx +46 -0
  234. package/src/components/ProjectBar.tsx +76 -0
  235. package/src/components/Radio.tsx +140 -0
  236. package/src/components/Search.tsx +129 -0
  237. package/src/components/Select.tsx +104 -0
  238. package/src/components/SideMenu.tsx +21 -0
  239. package/src/components/SideMenuGroup.tsx +81 -0
  240. package/src/components/SideMenuItem.tsx +90 -0
  241. package/src/components/Stack.tsx +179 -0
  242. package/src/components/StatusPill.tsx +51 -0
  243. package/src/components/Stepper.tsx +91 -0
  244. package/src/components/Subheader.tsx +44 -0
  245. package/src/components/Surface.tsx +34 -0
  246. package/src/components/Swatch.tsx +1066 -0
  247. package/src/components/Textarea.tsx +101 -0
  248. package/src/components/Theme.tsx +13 -0
  249. package/src/components/Time.tsx +438 -0
  250. package/src/components/Toast.tsx +244 -0
  251. package/src/components/Tooltip.tsx +137 -0
  252. package/src/components/TopBar.tsx +124 -0
  253. package/src/components/useInfiniteScroll.tsx +40 -0
  254. package/src/components/useMatchesMedia.tsx +28 -0
  255. package/src/components/useMenuSystem.tsx +367 -0
  256. package/src/components/useMounted.tsx +14 -0
  257. package/src/darkmode.css +140 -0
  258. package/src/fonts.css +23 -0
  259. package/src/index.css +509 -0
  260. package/src/index.tsx +2 -0
  261. package/src/types.ts +149 -0
  262. package/src/utils/formatting.tsx +81 -0
  263. package/src/utils.ts +23 -0
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
24
+ };
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
+
35
+ // src/components/useMenuSystem.tsx
36
+ var useMenuSystem_exports = {};
37
+ __export(useMenuSystem_exports, {
38
+ useMenuPosition: () => useMenuPosition,
39
+ useSubMenuSystem: () => useSubMenuSystem
40
+ });
41
+ module.exports = __toCommonJS(useMenuSystem_exports);
42
+ var import_react2 = require("react");
43
+
44
+ // src/components/useMatchesMedia.tsx
45
+ var import_react = require("react");
46
+ var useMatchesMedia = (query) => {
47
+ const [matches, setMatches] = (0, import_react.useState)(
48
+ () => typeof window !== "undefined" ? window.matchMedia(query).matches : false
49
+ );
50
+ (0, import_react.useLayoutEffect)(() => {
51
+ const mediaQueryList = window.matchMedia(query);
52
+ const listener = (event) => {
53
+ setMatches(event.matches);
54
+ };
55
+ mediaQueryList.addEventListener("change", listener);
56
+ setMatches(mediaQueryList.matches);
57
+ return () => {
58
+ mediaQueryList.removeEventListener("change", listener);
59
+ };
60
+ }, [query]);
61
+ return matches;
62
+ };
63
+ var useMatchesMobile = () => {
64
+ const isMobile = useMatchesMedia("(width < 48rem)");
65
+ return isMobile;
66
+ };
67
+
68
+ // src/components/useMenuSystem.tsx
69
+ function useSubMenuSystem(mobilePositionTo) {
70
+ const [activeMenus, setActiveMenus] = (0, import_react2.useState)(
71
+ {}
72
+ );
73
+ const [activeMenu, setActiveMenu] = (0, import_react2.useState)("");
74
+ const [currentSubMenuLevel, setCurrentSubMenuLevel] = (0, import_react2.useState)(null);
75
+ const menuRootRef = (0, import_react2.useRef)(null);
76
+ const subMenuRefs = (0, import_react2.useRef)({});
77
+ const hoverTimeoutRef = (0, import_react2.useRef)(null);
78
+ const closeTimeoutRef = (0, import_react2.useRef)(null);
79
+ const isMobile = useMatchesMobile();
80
+ const toggleMenu = (menuId, level) => {
81
+ if (closeTimeoutRef.current) {
82
+ clearTimeout(closeTimeoutRef.current);
83
+ closeTimeoutRef.current = null;
84
+ }
85
+ setActiveMenu(menuId);
86
+ setCurrentSubMenuLevel(level);
87
+ setActiveMenus((prev) => {
88
+ const newActiveMenus = __spreadValues({}, prev);
89
+ if (newActiveMenus[level] === menuId) {
90
+ delete newActiveMenus[level];
91
+ } else {
92
+ newActiveMenus[level] = menuId;
93
+ }
94
+ Object.keys(newActiveMenus).forEach((key) => {
95
+ if (Number(key) > level) {
96
+ delete newActiveMenus[Number(key)];
97
+ }
98
+ });
99
+ return newActiveMenus;
100
+ });
101
+ };
102
+ const openMenu = (menuId, level) => {
103
+ if (closeTimeoutRef.current) {
104
+ clearTimeout(closeTimeoutRef.current);
105
+ closeTimeoutRef.current = null;
106
+ }
107
+ setActiveMenus((prev) => {
108
+ const newActiveMenus = __spreadValues({}, prev);
109
+ newActiveMenus[level] = menuId;
110
+ Object.keys(newActiveMenus).forEach((key) => {
111
+ if (Number(key) > level) {
112
+ delete newActiveMenus[Number(key)];
113
+ }
114
+ });
115
+ return newActiveMenus;
116
+ });
117
+ };
118
+ const openMenuWithDelay = (menuId, level, delay = 150) => {
119
+ if (isMobile) {
120
+ return;
121
+ }
122
+ if (hoverTimeoutRef.current) {
123
+ clearTimeout(hoverTimeoutRef.current);
124
+ }
125
+ hoverTimeoutRef.current = setTimeout(() => {
126
+ openMenu(menuId, level);
127
+ }, delay);
128
+ };
129
+ const closeMenuWithDelay = (level, delay = 500) => {
130
+ if (isMobile) {
131
+ return;
132
+ }
133
+ if (hoverTimeoutRef.current) {
134
+ clearTimeout(hoverTimeoutRef.current);
135
+ hoverTimeoutRef.current = null;
136
+ }
137
+ closeTimeoutRef.current = setTimeout(() => {
138
+ closeSubMenuLevel(level);
139
+ }, delay);
140
+ };
141
+ const cancelCloseTimeout = () => {
142
+ if (isMobile) {
143
+ return;
144
+ }
145
+ if (closeTimeoutRef.current) {
146
+ clearTimeout(closeTimeoutRef.current);
147
+ closeTimeoutRef.current = null;
148
+ }
149
+ };
150
+ const closeSubMenuLevel = (level) => {
151
+ setActiveMenus((prev) => {
152
+ const newActiveMenus = __spreadValues({}, prev);
153
+ delete newActiveMenus[level];
154
+ Object.keys(newActiveMenus).forEach((key) => {
155
+ if (Number(key) >= level) {
156
+ delete newActiveMenus[Number(key)];
157
+ }
158
+ });
159
+ if (isMobile) {
160
+ const newSubMenuLevel = level - 1;
161
+ setCurrentSubMenuLevel(newSubMenuLevel);
162
+ const newActiveMenu = newActiveMenus[newSubMenuLevel];
163
+ if (Object.keys(newActiveMenus).length > 0 && newActiveMenu) {
164
+ setActiveMenu(newActiveMenu);
165
+ }
166
+ }
167
+ return newActiveMenus;
168
+ });
169
+ };
170
+ const registerSubMenu = (id, element) => {
171
+ subMenuRefs.current[id] = element;
172
+ };
173
+ const isMenuActive = (menuId, level) => {
174
+ return activeMenus[level] === menuId;
175
+ };
176
+ (0, import_react2.useEffect)(() => {
177
+ const handleClickOutside = (event) => {
178
+ var _a;
179
+ if (Object.keys(activeMenus).length === 0) return;
180
+ const target = event.target;
181
+ if ((_a = menuRootRef.current) == null ? void 0 : _a.contains(target)) return;
182
+ const isInsideActiveSubmenu = Object.values(activeMenus).some((id) => {
183
+ const submenuEl = subMenuRefs.current[id];
184
+ return submenuEl == null ? void 0 : submenuEl.contains(target);
185
+ });
186
+ if (!isInsideActiveSubmenu) {
187
+ setActiveMenus({});
188
+ }
189
+ };
190
+ document.addEventListener("mousedown", handleClickOutside);
191
+ return () => {
192
+ document.removeEventListener("mousedown", handleClickOutside);
193
+ };
194
+ }, [activeMenus]);
195
+ (0, import_react2.useEffect)(() => {
196
+ return () => {
197
+ if (hoverTimeoutRef.current) {
198
+ clearTimeout(hoverTimeoutRef.current);
199
+ }
200
+ if (closeTimeoutRef.current) {
201
+ clearTimeout(closeTimeoutRef.current);
202
+ }
203
+ };
204
+ }, []);
205
+ const getAllFocusableMenuElements = () => {
206
+ const elements = [];
207
+ if (menuRootRef.current) {
208
+ elements.push(...Array.from(menuRootRef.current.children));
209
+ }
210
+ Object.values(activeMenus).forEach((menuId) => {
211
+ const submenuEl = subMenuRefs.current[menuId];
212
+ if (submenuEl) {
213
+ elements.push(...Array.from(submenuEl.children));
214
+ }
215
+ });
216
+ return elements;
217
+ };
218
+ const findCurrentMenuLevel = (element) => {
219
+ let current = element.parentElement;
220
+ while (current) {
221
+ const level = current.getAttribute("data-menu-level");
222
+ if (level !== null) {
223
+ return parseInt(level, 10);
224
+ }
225
+ current = current.parentElement;
226
+ }
227
+ return 0;
228
+ };
229
+ const getMenuElementsAtLevel = (level) => {
230
+ var _a;
231
+ if (level === 0 && menuRootRef.current) {
232
+ return Array.from(menuRootRef.current.children);
233
+ }
234
+ const menuId = (_a = Object.entries(activeMenus).find(([, id]) => {
235
+ const submenuEl = subMenuRefs.current[id];
236
+ return submenuEl && submenuEl.getAttribute("data-menu-level") === level.toString();
237
+ })) == null ? void 0 : _a[1];
238
+ if (menuId) {
239
+ const submenuEl = subMenuRefs.current[menuId];
240
+ if (submenuEl) {
241
+ return Array.from(submenuEl.children);
242
+ }
243
+ }
244
+ return [];
245
+ };
246
+ return {
247
+ menuRootRef,
248
+ activeMenus,
249
+ openMenu,
250
+ isMenuActive,
251
+ registerSubMenu,
252
+ closeSubMenuLevel,
253
+ getAllFocusableMenuElements,
254
+ findCurrentMenuLevel,
255
+ getMenuElementsAtLevel,
256
+ mobileHide: isMobile && Object.keys(activeMenus).length > 0,
257
+ listeners: {
258
+ onSubMenuHover: openMenuWithDelay,
259
+ onSubMenuLeave: closeMenuWithDelay,
260
+ onSubMenuEnter: cancelCloseTimeout,
261
+ toggleMenu,
262
+ mobilePositionTo,
263
+ activeMenu,
264
+ currentSubMenuLevel,
265
+ closeSubMenuLevel
266
+ }
267
+ };
268
+ }
269
+ function useMenuPosition(elementRef, position = "bottom", options) {
270
+ const [menuPosition, setMenuPosition] = (0, import_react2.useState)({
271
+ top: 0,
272
+ left: 0,
273
+ minWidth: 0
274
+ });
275
+ const isMobile = useMatchesMobile();
276
+ const updatePosition = (0, import_react2.useCallback)(() => {
277
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
278
+ if (!(elementRef == null ? void 0 : elementRef.current)) return;
279
+ const triggerRect = elementRef.current.getBoundingClientRect();
280
+ const menuRect = (_b = (_a = options == null ? void 0 : options.menuRef) == null ? void 0 : _a.current) == null ? void 0 : _b.getBoundingClientRect();
281
+ const viewportWidth = window.innerWidth;
282
+ const menuWidth = (menuRect == null ? void 0 : menuRect.width) || triggerRect.width;
283
+ const topOffset = (_c = options == null ? void 0 : options.topOffset) != null ? _c : 4;
284
+ let top = 0;
285
+ let left = 0;
286
+ if (position === "bottom" || position === "bottom-right") {
287
+ top = triggerRect.top + triggerRect.height + topOffset;
288
+ } else {
289
+ top = triggerRect.top;
290
+ }
291
+ if (position === "bottom") {
292
+ left = triggerRect.left + window.scrollX;
293
+ } else if (position === "bottom-right") {
294
+ left = triggerRect.right + window.scrollX - menuWidth;
295
+ } else if (position === "right") {
296
+ left = triggerRect.right + window.scrollX;
297
+ }
298
+ const overflowsLeftViewport = left + menuWidth > viewportWidth;
299
+ if (overflowsLeftViewport) {
300
+ left = triggerRect.left - menuWidth;
301
+ }
302
+ if (isMobile) {
303
+ left = triggerRect.left + menuWidth > viewportWidth ? Math.max(viewportWidth - menuWidth, 0) - 8 : triggerRect.left;
304
+ top = ((_f = (_e = (_d = elementRef.current.parentElement) == null ? void 0 : _d.getBoundingClientRect()) == null ? void 0 : _e.top) != null ? _f : 0) + ((_i = (_h = (_g = elementRef.current.parentElement) == null ? void 0 : _g.getBoundingClientRect()) == null ? void 0 : _h.height) != null ? _i : 0) + topOffset;
305
+ }
306
+ setMenuPosition({
307
+ top,
308
+ left,
309
+ minWidth: triggerRect.width
310
+ });
311
+ }, [elementRef, position, options == null ? void 0 : options.menuRef, options == null ? void 0 : options.topOffset, isMobile]);
312
+ (0, import_react2.useEffect)(() => {
313
+ if (!(options == null ? void 0 : options.isOpen) || !(options == null ? void 0 : options.setIsOpen)) return;
314
+ const handleClickOutside = (event) => {
315
+ var _a, _b, _c, _d, _e;
316
+ const target = event.target;
317
+ if ((_a = elementRef.current) == null ? void 0 : _a.contains(target)) return;
318
+ if ((_c = (_b = options.menuRef) == null ? void 0 : _b.current) == null ? void 0 : _c.contains(target)) return;
319
+ if ((_d = options.additionalRefs) == null ? void 0 : _d.some((ref) => {
320
+ var _a2;
321
+ return (_a2 = ref.current) == null ? void 0 : _a2.contains(target);
322
+ }))
323
+ return;
324
+ (_e = options.setIsOpen) == null ? void 0 : _e.call(options, false);
325
+ };
326
+ document.addEventListener("mousedown", handleClickOutside);
327
+ return () => {
328
+ document.removeEventListener("mousedown", handleClickOutside);
329
+ };
330
+ }, [
331
+ options,
332
+ elementRef,
333
+ options == null ? void 0 : options.isOpen,
334
+ options == null ? void 0 : options.setIsOpen,
335
+ options == null ? void 0 : options.menuRef,
336
+ options == null ? void 0 : options.additionalRefs
337
+ ]);
338
+ (0, import_react2.useEffect)(() => {
339
+ updatePosition();
340
+ const resizeObserver = new ResizeObserver(updatePosition);
341
+ if (elementRef == null ? void 0 : elementRef.current) {
342
+ resizeObserver.observe(elementRef.current);
343
+ }
344
+ window.addEventListener("scroll", updatePosition);
345
+ window.addEventListener("resize", updatePosition);
346
+ return () => {
347
+ resizeObserver.disconnect();
348
+ window.removeEventListener("scroll", updatePosition);
349
+ window.removeEventListener("resize", updatePosition);
350
+ };
351
+ }, [elementRef, updatePosition]);
352
+ return { menuPosition, updatePosition };
353
+ }
354
+ // Annotate the CommonJS export names for ESM import in node:
355
+ 0 && (module.exports = {
356
+ useMenuPosition,
357
+ useSubMenuSystem
358
+ });
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import {
3
+ useMenuPosition,
4
+ useSubMenuSystem
5
+ } from "../chunk-Z4UCFUF7.js";
6
+ import "../chunk-SEKKGFM6.js";
7
+ import "../chunk-ORMEWXMH.js";
8
+ export {
9
+ useMenuPosition,
10
+ useSubMenuSystem
11
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/components/useMounted.tsx
22
+ var useMounted_exports = {};
23
+ __export(useMounted_exports, {
24
+ useMounted: () => useMounted
25
+ });
26
+ module.exports = __toCommonJS(useMounted_exports);
27
+ var import_react = require("react");
28
+ var useMounted = () => {
29
+ const [isMounted, setIsMounted] = (0, import_react.useState)(false);
30
+ (0, import_react.useEffect)(() => {
31
+ setIsMounted(true);
32
+ return () => setIsMounted(false);
33
+ }, []);
34
+ return isMounted;
35
+ };
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ useMounted
39
+ });
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import {
3
+ useMounted
4
+ } from "../chunk-4RJKB7LC.js";
5
+ import "../chunk-ORMEWXMH.js";
6
+ export {
7
+ useMounted
8
+ };
package/dist/fonts.css ADDED
@@ -0,0 +1,21 @@
1
+ /* src/fonts.css */
2
+ @font-face {
3
+ font-family: "Open Sans";
4
+ src: url("./open-sans-55T6A4JE.woff2") format("woff2");
5
+ font-weight: 100 900;
6
+ font-style: normal;
7
+ }
8
+ @font-face {
9
+ font-family: "Icons";
10
+ src: url("./icons-light[FILL]-PPZXOLWS.woff2") format("woff2");
11
+ font-weight: 300;
12
+ font-style: normal;
13
+ font-display: block;
14
+ }
15
+ @font-face {
16
+ font-family: "Icons";
17
+ src: url("./icons-normal[FILL]-PPZXOLWS.woff2") format("woff2");
18
+ font-weight: 400;
19
+ font-style: normal;
20
+ font-display: block;
21
+ }