@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,783 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
+ var __getProtoOf = Object.getPrototypeOf;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __objRest = (source, exclude) => {
27
+ var target = {};
28
+ for (var prop in source)
29
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
30
+ target[prop] = source[prop];
31
+ if (source != null && __getOwnPropSymbols)
32
+ for (var prop of __getOwnPropSymbols(source)) {
33
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
34
+ target[prop] = source[prop];
35
+ }
36
+ return target;
37
+ };
38
+ var __export = (target, all) => {
39
+ for (var name in all)
40
+ __defProp(target, name, { get: all[name], enumerable: true });
41
+ };
42
+ var __copyProps = (to, from, except, desc) => {
43
+ if (from && typeof from === "object" || typeof from === "function") {
44
+ for (let key of __getOwnPropNames(from))
45
+ if (!__hasOwnProp.call(to, key) && key !== except)
46
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
47
+ }
48
+ return to;
49
+ };
50
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
51
+ // If the importer is in node compatibility mode or this is not an ESM
52
+ // file that has been converted to a CommonJS file using a Babel-
53
+ // compatible transform (i.e. "__esModule" has not been set), then set
54
+ // "default" to the CommonJS "module.exports" for node compatibility.
55
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
56
+ mod
57
+ ));
58
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
59
+
60
+ // src/components/Modal.tsx
61
+ var Modal_exports = {};
62
+ __export(Modal_exports, {
63
+ Modal: () => Modal
64
+ });
65
+ module.exports = __toCommonJS(Modal_exports);
66
+ var import_clsx7 = __toESM(require("clsx"), 1);
67
+ var import_react3 = require("react");
68
+
69
+ // src/components/Heading.tsx
70
+ var import_clsx2 = __toESM(require("clsx"), 1);
71
+
72
+ // src/classNames.ts
73
+ var import_clsx = __toESM(require("clsx"), 1);
74
+ var typography = {
75
+ display1: (0, import_clsx.default)(
76
+ "font-sans font-semibold",
77
+ "text-display-1-mobile desktop:text-display-1-desktop compact:text-display-1-desktop-compact",
78
+ "leading-display-1-mobile desktop:leading-display-1-desktop"
79
+ ),
80
+ display2: (0, import_clsx.default)(
81
+ "font-sans font-bold",
82
+ "text-display-2-mobile desktop:text-display-2-desktop compact:text-display-2-desktop-compact",
83
+ "leading-display-2-mobile desktop:leading-display-2-desktop"
84
+ ),
85
+ heading1: (0, import_clsx.default)(
86
+ "font-sans font-semibold",
87
+ "text-heading-1-mobile desktop:text-heading-1-desktop compact:text-heading-1-desktop-compact",
88
+ "leading-heading-1-mobile desktop:leading-heading-1-desktop"
89
+ ),
90
+ heading2: (0, import_clsx.default)(
91
+ "font-sans font-normal",
92
+ "text-heading-2-mobile desktop:text-heading-2-desktop compact:text-heading-2-desktop-compact",
93
+ "leading-heading-2-mobile desktop:leading-heading-2-desktop"
94
+ ),
95
+ heading3: (0, import_clsx.default)(
96
+ "font-sans font-semibold",
97
+ "text-heading-3-mobile desktop:text-heading-3-desktop compact:text-heading-3-desktop-compact",
98
+ "leading-heading-3-mobile desktop:leading-heading-3-desktop"
99
+ ),
100
+ subheader: (0, import_clsx.default)(
101
+ "font-sans font-semibold",
102
+ "text-subheader-mobile desktop:text-subheader-desktop compact:text-subheader-desktop-compact",
103
+ "leading-subheader-mobile desktop:leading-subheader-desktop"
104
+ ),
105
+ link: (0, import_clsx.default)(
106
+ "font-sans font-normal",
107
+ "text-link-mobile desktop:text-link-desktop compact:text-link-desktop-compact",
108
+ "leading-link-mobile desktop:leading-link-desktop"
109
+ ),
110
+ buttonLabel: (0, import_clsx.default)(
111
+ "font-sans font-semibold",
112
+ "text-label-mobile desktop:text-label-desktop compact:text-label-desktop-compact",
113
+ "leading-label-mobile desktop:leading-label-desktop"
114
+ ),
115
+ label: (0, import_clsx.default)(
116
+ "font-sans font-semibold",
117
+ "text-label-mobile desktop:text-label-desktop compact:text-label-desktop-compact",
118
+ "leading-label-mobile desktop:leading-label-desktop"
119
+ ),
120
+ paragraph: (0, import_clsx.default)(
121
+ "font-sans font-normal",
122
+ "text-paragraph-mobile desktop:text-paragraph-desktop compact:text-paragraph-desktop-compact",
123
+ "leading-paragraph-mobile desktop:leading-paragraph-desktop"
124
+ ),
125
+ caption: (0, import_clsx.default)(
126
+ "font-sans font-normal",
127
+ "text-caption-mobile desktop:text-caption-desktop compact:text-caption-desktop-compact",
128
+ "leading-caption-mobile desktop:leading-caption-desktop"
129
+ )
130
+ };
131
+ var baseTransition = (0, import_clsx.default)(
132
+ "transition-colors duration-100 ease-in-out"
133
+ );
134
+ var componentGap = (0, import_clsx.default)(
135
+ "gap-mobile-component-gap desktop:gap-desktop-component-gap compact:gap-desktop-compact-component-gap"
136
+ );
137
+ var paddingUsingComponentGap = (0, import_clsx.default)(
138
+ "p-mobile-component-gap desktop:p-desktop-component-gap compact:p-desktop-compact-component-gap"
139
+ );
140
+ var paddingYUsingLayoutGroupGap = (0, import_clsx.default)(
141
+ "py-mobile-layout-group-gap desktop:py-desktop-layout-group-gap compact:py-desktop-compact-layout-group-gap"
142
+ );
143
+ var componentPadding = (0, import_clsx.default)(
144
+ "p-mobile-component-padding desktop:p-desktop-component-padding compact:p-desktop-compact-component-padding"
145
+ );
146
+ var componentPaddingBottom = (0, import_clsx.default)(
147
+ "pb-mobile-component-padding desktop:pb-desktop-component-padding compact:pb-desktop-compact-component-padding"
148
+ );
149
+ var componentPaddingY = (0, import_clsx.default)(
150
+ "py-mobile-component-padding desktop:py-desktop-component-padding compact:py-desktop-compact-component-padding"
151
+ );
152
+ var componentPaddingXUsingComponentGap = (0, import_clsx.default)(
153
+ "px-mobile-component-gap desktop:px-desktop-component-gap compact:px-desktop-compact-component-gap"
154
+ );
155
+ var componentPaddingYUsingComponentGap = (0, import_clsx.default)(
156
+ "py-mobile-component-gap desktop:py-desktop-component-gap compact:py-desktop-compact-component-gap"
157
+ );
158
+ var componentPaddingMinusBorder = (0, import_clsx.default)(
159
+ "p-[calc(var(--spacing-mobile-component-padding)_-_1px)] desktop:p-[calc(var(--spacing-desktop-component-padding)_-_1px)] compact:p-[calc(var(--spacing-desktop-compact-component-padding)_-_1px)]"
160
+ );
161
+ var componentPaddingMinus2pxBorder = (0, import_clsx.default)(
162
+ "p-[calc(var(--spacing-mobile-component-padding)_-_2px)] desktop:p-[calc(var(--spacing-desktop-component-padding)_-_2px)] compact:p-[calc(var(--spacing-desktop-compact-component-padding)_-_2px)]"
163
+ );
164
+ var layoutPaddingBottom = (0, import_clsx.default)(
165
+ "pb-mobile-layout-padding desktop:pb-desktop-layout-padding compact:pb-desktop-compact-layout-padding"
166
+ );
167
+ var layoutPaddingY = (0, import_clsx.default)(
168
+ "py-mobile-layout-padding desktop:py-desktop-layout-padding compact:py-desktop-compact-layout-padding"
169
+ );
170
+ var containerPaddingX = (0, import_clsx.default)(
171
+ "px-mobile-container-padding desktop:px-desktop-container-padding compact:px-desktop-compact-container-padding"
172
+ );
173
+ var containerPaddingY = (0, import_clsx.default)(
174
+ "py-mobile-container-padding desktop:py-desktop-container-padding compact:py-desktop-compact-container-padding"
175
+ );
176
+ var layoutGroupGapPaddingY = (0, import_clsx.default)(
177
+ "py-mobile-layout-group-gap desktop:py-desktop-layout-group-gap compact:py-desktop-compact-layout-group-gap"
178
+ );
179
+ var layoutGroupGap = (0, import_clsx.default)(
180
+ "gap-mobile-layout-group-gap desktop:gap-desktop-layout-group-gap compact:gap-desktop-compact-layout-group-gap"
181
+ );
182
+ var layoutGap = (0, import_clsx.default)(
183
+ "gap-mobile-layout-gap desktop:gap-desktop-layout-gap compact:gap-desktop-compact-layout-gap"
184
+ );
185
+ var gapUsingContainerPadding = (0, import_clsx.default)(
186
+ "gap-mobile-container-padding desktop:gap-desktop-container-padding compact:gap-desktop-compact-container-padding"
187
+ );
188
+
189
+ // src/components/Heading.tsx
190
+ var import_jsx_runtime = require("react/jsx-runtime");
191
+ var Heading = (_a) => {
192
+ var _b = _a, {
193
+ className,
194
+ children,
195
+ as,
196
+ color,
197
+ align,
198
+ variant = "heading1"
199
+ } = _b, props = __objRest(_b, [
200
+ "className",
201
+ "children",
202
+ "as",
203
+ "color",
204
+ "align",
205
+ "variant"
206
+ ]);
207
+ const defaultElement = variant === "heading1" ? "h1" : variant === "heading2" ? "h2" : "h3";
208
+ const Element = as != null ? as : defaultElement;
209
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
210
+ Element,
211
+ __spreadProps(__spreadValues({
212
+ className: (0, import_clsx2.default)(
213
+ typography[variant],
214
+ className,
215
+ align === "left" && "text-left",
216
+ align === "center" && "text-center",
217
+ align === "right" && "text-right"
218
+ ),
219
+ style: __spreadProps(__spreadValues({}, props.style), {
220
+ color: color ? `var(--color-${color})` : void 0
221
+ })
222
+ }, props), {
223
+ children
224
+ })
225
+ );
226
+ };
227
+ Heading.displayName = "Heading";
228
+ var Heading1 = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heading, __spreadProps(__spreadValues({}, props), { variant: "heading1" }));
229
+ var Heading2 = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heading, __spreadProps(__spreadValues({}, props), { variant: "heading2" }));
230
+ var Heading3 = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heading, __spreadProps(__spreadValues({}, props), { variant: "heading3" }));
231
+ Heading1.displayName = "Heading1";
232
+ Heading2.displayName = "Heading2";
233
+ Heading3.displayName = "Heading3";
234
+
235
+ // src/components/Button.tsx
236
+ var import_clsx3 = __toESM(require("clsx"), 1);
237
+ var import_jsx_runtime2 = require("react/jsx-runtime");
238
+ var Button = (_a) => {
239
+ var _b = _a, {
240
+ variant = "primary",
241
+ as = "button",
242
+ block,
243
+ leftIcon,
244
+ rightIcon,
245
+ className,
246
+ classNameLabel,
247
+ disabled = false,
248
+ children,
249
+ iconOnly = false,
250
+ colorClassName,
251
+ href
252
+ } = _b, props = __objRest(_b, [
253
+ "variant",
254
+ "as",
255
+ "block",
256
+ "leftIcon",
257
+ "rightIcon",
258
+ "className",
259
+ "classNameLabel",
260
+ "disabled",
261
+ "children",
262
+ "iconOnly",
263
+ "colorClassName",
264
+ "href"
265
+ ]);
266
+ const primaryVariantStyles = variant === "primary" && (0, import_clsx3.default)(
267
+ (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-on-action-primary-normal",
268
+ "bg-background-action-primary-normal border-background-action-primary-normal",
269
+ "hover:bg-background-action-primary-hover hover:border-background-action-primary-hover",
270
+ "focus:bg-background-action-primary-hover focus:border-background-action-primary-hover focus:outline-0",
271
+ "active:bg-background-action-primary-active active:border-background-action-primary-active",
272
+ "disabled:bg-background-action-primary-disabled disabled:border-background-action-primary-disabled disabled:text-text-on-action-primary-disabled"
273
+ );
274
+ const secondaryVariantStyles = variant === "secondary" && (0, import_clsx3.default)(
275
+ (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-action-primary-normal",
276
+ "bg-background-action-secondary-normal border-border-action-normal",
277
+ "hover:bg-background-action-secondary-hover hover:border-border-action-hover hover:text-text-action-primary-hover",
278
+ "focus:bg-background-action-secondary-hover focus:border-border-action-hover focus:text-text-action-primary-hover focus:outline-0",
279
+ "active:bg-background-action-secondary-active active:border-border-action-active active:text-text-action-primary-active",
280
+ "disabled:bg-background-action-primary-disabled disabled:border-border-action-disabled disabled:text-text-action-primary-disabled"
281
+ );
282
+ const tertiaryVariantStyles = variant === "tertiary" && (0, import_clsx3.default)(
283
+ "bg-transparent border-transparent",
284
+ iconOnly ? (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-icon-action-primary-normal" : (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-action-primary-normal",
285
+ "bg-transparent border-transparent",
286
+ "hover:bg-background-action-secondary-hover hover:border-background-action-secondary-hover hover:text-text-action-primary-hover",
287
+ "focus:bg-background-action-secondary-hover focus:border-background-action-secondary-hover focus:text-text-action-primary-hover focus:outline-0",
288
+ "active:bg-background-action-secondary-active active:border-transparent active:text-text-action-primary-active",
289
+ "disabled:bg-transparent disabled:border-transparent disabled:text-text-action-primary-disabled"
290
+ );
291
+ const primaryCriticalVariantStyles = variant === "primary-critical" && (0, import_clsx3.default)(
292
+ (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-on-action-primary-normal",
293
+ "bg-background-action-critical-primary-normal border-background-action-critical-primary-normal",
294
+ "hover:bg-background-action-critical-primary-hover hover:border-background-action-critical-primary-hover",
295
+ "focus:bg-background-action-critical-primary-hover focus:border-background-action-critical-primary-hover focus:outline-0",
296
+ "active:bg-background-action-critical-primary-active active:border-background-action-critical-primary-active",
297
+ "disabled:bg-background-action-critical-primary-disabled disabled:border-background-action-critical-primary-disabled disabled:text-text-on-action-primary-disabled"
298
+ );
299
+ const secondaryCriticalVariantStyles = variant === "secondary-critical" && (0, import_clsx3.default)(
300
+ (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-action-critical-normal",
301
+ "bg-background-action-critical-secondary-normal border-border-action-critical-normal",
302
+ "hover:bg-background-action-critical-secondary-hover hover:border-border-action-critical-hover hover:text-text-action-critical-hover",
303
+ "focus:bg-background-action-critical-secondary-hover focus:border-border-action-critical-hover focus:text-text-action-critical-hover focus:outline-0",
304
+ "active:bg-background-action-critical-secondary-active active:border-border-action-critical-active active:text-text-action-critical-active",
305
+ "disabled:bg-background-action-critical-disabled disabled:border-border-action-critical-disabled disabled:text-text-action-critical-disabled"
306
+ );
307
+ const tertiaryCriticalVariantStyles = variant === "tertiary-critical" && (0, import_clsx3.default)(
308
+ (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-action-critical-normal",
309
+ "bg-transparent border-transparent text-text-action-critical-normal",
310
+ "hover:bg-background-action-critical-secondary-hover hover:border-background-action-critical-secondary-hover hover:text-text-action-critical-hover",
311
+ "focus:bg-background-action-critical-secondary-hover focus:border-background-action-critical-secondary-hover focus:text-text-action-critical-hover focus:outline-0",
312
+ "active:bg-background-action-critical-secondary-active active:border-background-action-critical-secondary-active active:text-text-action-critical-active",
313
+ "disabled:bg-transparent disabled:border-transparent disabled:text-text-action-critical-disabled"
314
+ );
315
+ const navigationVarianStyles = variant === "navigation" && (0, import_clsx3.default)(
316
+ (colorClassName == null ? void 0 : colorClassName.trim()) ? colorClassName : "text-text-on-action-primary-normal",
317
+ "bg-transparent",
318
+ "hover:bg-background-on-action-secondary-hover hover:text-brand-text-action-primary-hover",
319
+ // "hover:bg-background-action-secondary-hover hover:text-text-action-primary-hover", // Will use this once colors are finalized
320
+ "focus:bg-background-on-action-secondary-hover focus:text-brand-text-action-primary-hover focus:outline-0",
321
+ // "focus:bg-background-action-secondary-hover focus:text-text-action-primary-hover", // Will use this once colors are finalized
322
+ "active:bg-background-on-action-secondary-active active:text-brand-text-action-primary-active",
323
+ // "active:bg-background-action-secondary-active active:text-text-action-primary-active", // Will use this once colors are finalized
324
+ "disabled:bg-transparent disabled:text-text-on-action-primary-disabled",
325
+ "flex-col",
326
+ paddingUsingComponentGap
327
+ );
328
+ const notNavigationVariantStyles = variant !== "navigation" && (0, import_clsx3.default)("border-2 flex-row", componentPaddingMinus2pxBorder, componentGap);
329
+ const buttonClasses = (0, import_clsx3.default)(
330
+ disabled ? "cursor-default" : "cursor-pointer",
331
+ block ? "w-full" : "w-fit",
332
+ baseTransition,
333
+ "rounded-sm whitespace-nowrap inline-flex items-center justify-center group/btn",
334
+ primaryVariantStyles,
335
+ secondaryVariantStyles,
336
+ tertiaryVariantStyles,
337
+ primaryCriticalVariantStyles,
338
+ secondaryCriticalVariantStyles,
339
+ tertiaryCriticalVariantStyles,
340
+ navigationVarianStyles,
341
+ notNavigationVariantStyles,
342
+ className
343
+ );
344
+ const labelClasses = (0, import_clsx3.default)(
345
+ "min-h-6 flex items-center justify-center",
346
+ classNameLabel,
347
+ componentPaddingXUsingComponentGap,
348
+ typography.buttonLabel
349
+ );
350
+ const Element = href ? "a" : as;
351
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
352
+ Element,
353
+ __spreadProps(__spreadValues({
354
+ type: Element === "button" ? "button" : void 0,
355
+ className: buttonClasses
356
+ }, props), {
357
+ disabled,
358
+ href,
359
+ children: [
360
+ leftIcon && leftIcon,
361
+ !iconOnly && children && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: labelClasses, children }),
362
+ rightIcon && rightIcon
363
+ ]
364
+ })
365
+ );
366
+ };
367
+ Button.displayName = "Button";
368
+
369
+ // src/components/Icon.tsx
370
+ var import_clsx4 = __toESM(require("clsx"), 1);
371
+ var import_jsx_runtime3 = require("react/jsx-runtime");
372
+ function Icon(_a) {
373
+ var _b = _a, {
374
+ name,
375
+ size = 24,
376
+ variant = "outline"
377
+ } = _b, props = __objRest(_b, [
378
+ "name",
379
+ "size",
380
+ "variant"
381
+ ]);
382
+ const variantStyle = variant === "filled" ? '"FILL" 1' : '"FILL" 0';
383
+ const weightStyle = size === 16 ? '"wght" 400' : '"wght" 300';
384
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
385
+ "span",
386
+ __spreadProps(__spreadValues({}, props), {
387
+ className: (0, import_clsx4.default)(
388
+ "icon",
389
+ `icon-${size}`,
390
+ // size === 16 ? "font-normal" : "font-light", // size 16 font weight is not working as normal from before
391
+ props.className
392
+ ),
393
+ style: __spreadValues({
394
+ fontVariationSettings: variantStyle + `, ${weightStyle}`
395
+ }, props.style),
396
+ children: name
397
+ })
398
+ );
399
+ }
400
+
401
+ // src/components/ModalHeader.tsx
402
+ var import_jsx_runtime4 = require("react/jsx-runtime");
403
+ var ModalHeader = ({
404
+ title,
405
+ hideCloseIcon,
406
+ headerIcon,
407
+ onClose
408
+ }) => {
409
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex justify-between items-center p-mobile-container-padding desktop:p-desktop-container-padding compact:p-desktop-compact-container-padding gap-mobile-container-gap desktop:gap-desktop-container-gap compact:gap-desktop-compact-container-gap", children: [
410
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex items-center gap-2", children: [
411
+ headerIcon,
412
+ title && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Heading2, { as: "p", children: title })
413
+ ] }),
414
+ !hideCloseIcon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
415
+ Button,
416
+ {
417
+ iconOnly: true,
418
+ variant: "tertiary",
419
+ onClick: onClose,
420
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-icon-primary-normal contents", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { name: "close", size: 24 }) })
421
+ }
422
+ )
423
+ ] });
424
+ };
425
+ ModalHeader.displayName = "ModalHeader";
426
+
427
+ // src/components/ModalContent.tsx
428
+ var import_clsx5 = __toESM(require("clsx"), 1);
429
+ var import_jsx_runtime5 = require("react/jsx-runtime");
430
+ function ModalContent({
431
+ fixedHeightScrolling,
432
+ children
433
+ }) {
434
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
435
+ "div",
436
+ {
437
+ className: (0, import_clsx5.default)(
438
+ "flex-grow desktop:flex-grow-0 p-4",
439
+ fixedHeightScrolling && "overflow-auto"
440
+ ),
441
+ children
442
+ }
443
+ );
444
+ }
445
+ ModalContent.displayName = "ModalContent";
446
+
447
+ // src/components/ModalButtons.tsx
448
+ var import_jsx_runtime6 = require("react/jsx-runtime");
449
+ var ModalButtons = ({
450
+ onClose,
451
+ onContinue,
452
+ customActions
453
+ }) => {
454
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "border-t border-neutral-300 p-4 flex justify-end space-x-2", children: customActions != null ? customActions : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
455
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
456
+ Button,
457
+ {
458
+ variant: "secondary",
459
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { name: "close", size: 24 }),
460
+ onClick: onClose,
461
+ className: "max-sm:w-full",
462
+ children: "Close"
463
+ }
464
+ ),
465
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
466
+ Button,
467
+ {
468
+ variant: "primary",
469
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { name: "check", size: 24 }),
470
+ className: "max-sm:w-full",
471
+ onClick: onContinue,
472
+ children: "Continue"
473
+ }
474
+ )
475
+ ] }) });
476
+ };
477
+ ModalButtons.displayName = "ModalButtons";
478
+
479
+ // src/components/ModalScrim.tsx
480
+ var import_clsx6 = __toESM(require("clsx"), 1);
481
+ var import_jsx_runtime7 = require("react/jsx-runtime");
482
+ var ModalScrim = ({
483
+ show = false,
484
+ size = "small",
485
+ children,
486
+ onClick,
487
+ ref
488
+ }) => {
489
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
490
+ "div",
491
+ {
492
+ className: (0, import_clsx6.default)(
493
+ "overflow-y-auto h-screen transition-[visibility,opacity,background] ease-in-out duration-100 grid place-content-center desktop:p-4 group bg-neutral-600/50 fixed opacity-0",
494
+ !show && " pointer-events-none",
495
+ size === "small" && "p-4",
496
+ "inset-0 z-50"
497
+ ),
498
+ onMouseDown: onClick,
499
+ ref,
500
+ children
501
+ }
502
+ );
503
+ };
504
+ ModalScrim.displayName = "ModalScrim";
505
+
506
+ // src/components/Modal.tsx
507
+ var import_react_dom = require("react-dom");
508
+
509
+ // src/utils.ts
510
+ function findDocumentRoot(element) {
511
+ if (typeof window === "undefined" || typeof document === "undefined") {
512
+ throw new Error(
513
+ "findDocumentRoot can only be used in a browser environment."
514
+ );
515
+ }
516
+ if (!element || !(element instanceof Node)) {
517
+ return window.document.body;
518
+ }
519
+ var currentElement = element;
520
+ while (currentElement && currentElement.parentNode) {
521
+ if (currentElement.parentNode === document) {
522
+ return document.body;
523
+ } else if (currentElement.parentNode instanceof DocumentFragment) {
524
+ return currentElement.parentNode;
525
+ } else {
526
+ currentElement = currentElement.parentNode;
527
+ }
528
+ }
529
+ return window.document.body;
530
+ }
531
+
532
+ // src/components/Modal.tsx
533
+ var import_react_use = require("react-use");
534
+
535
+ // src/components/useMatchesMedia.tsx
536
+ var import_react = require("react");
537
+ var useMatchesMedia = (query) => {
538
+ const [matches, setMatches] = (0, import_react.useState)(
539
+ () => typeof window !== "undefined" ? window.matchMedia(query).matches : false
540
+ );
541
+ (0, import_react.useLayoutEffect)(() => {
542
+ const mediaQueryList = window.matchMedia(query);
543
+ const listener = (event) => {
544
+ setMatches(event.matches);
545
+ };
546
+ mediaQueryList.addEventListener("change", listener);
547
+ setMatches(mediaQueryList.matches);
548
+ return () => {
549
+ mediaQueryList.removeEventListener("change", listener);
550
+ };
551
+ }, [query]);
552
+ return matches;
553
+ };
554
+ var useMatchesMobile = () => {
555
+ const isMobile = useMatchesMedia("(width < 48rem)");
556
+ return isMobile;
557
+ };
558
+
559
+ // src/components/useMounted.tsx
560
+ var import_react2 = require("react");
561
+ var useMounted = () => {
562
+ const [isMounted, setIsMounted] = (0, import_react2.useState)(false);
563
+ (0, import_react2.useEffect)(() => {
564
+ setIsMounted(true);
565
+ return () => setIsMounted(false);
566
+ }, []);
567
+ return isMounted;
568
+ };
569
+
570
+ // src/components/Modal.tsx
571
+ var import_jsx_runtime8 = require("react/jsx-runtime");
572
+ var fadeInScale = (element, duration = 300) => element.animate(
573
+ [
574
+ { opacity: 0, transform: "scale(0.95)" },
575
+ { opacity: 1, transform: "scale(1)" }
576
+ ],
577
+ {
578
+ duration,
579
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
580
+ fill: "both"
581
+ }
582
+ );
583
+ var fadeOutScale = (element, duration = 200) => element.animate(
584
+ [
585
+ { opacity: 1, transform: "scale(1)" },
586
+ { opacity: 0, transform: "scale(0.95)" }
587
+ ],
588
+ {
589
+ duration,
590
+ easing: "ease-in-out",
591
+ fill: "both"
592
+ }
593
+ );
594
+ var bgFadeIn = (element, duration = 300) => element.animate([{ opacity: 0 }, { opacity: 1 }], {
595
+ duration,
596
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
597
+ fill: "both"
598
+ });
599
+ var bgFadeOut = (element, duration = 200) => element.animate([{ opacity: 1 }, { opacity: 0 }], {
600
+ duration,
601
+ easing: "ease-in-out",
602
+ fill: "both"
603
+ });
604
+ var whenAllAnimationsFinish = (animations, callback) => {
605
+ let finishedCount = 0;
606
+ animations.forEach((animation) => {
607
+ animation.onfinish = () => {
608
+ finishedCount += 1;
609
+ if (finishedCount === animations.length) {
610
+ callback();
611
+ }
612
+ };
613
+ });
614
+ };
615
+ var sizes = {
616
+ small: {
617
+ sizeClass: "max-h-screen desktop:max-w-120 rounded-sm"
618
+ },
619
+ medium: {
620
+ sizeClass: "desktop:max-w-180 w-screen desktop:h-fit h-screen desktop:w-full max-w-240"
621
+ },
622
+ large: {
623
+ sizeClass: "desktop:max-w-240 w-screen desktop:h-fit h-screen desktop:w-full max-w-240"
624
+ },
625
+ "x-large": {
626
+ sizeClass: "desktop:max-w-300 w-screen desktop:h-fit h-screen desktop:w-full max-w-240"
627
+ }
628
+ };
629
+ var Modal = ({
630
+ title,
631
+ open = false,
632
+ size = "small",
633
+ className,
634
+ children,
635
+ onClose,
636
+ onContinue,
637
+ closeOnBackdropClick = true,
638
+ showButtons = false,
639
+ hideCloseIcon = false,
640
+ headerIcon,
641
+ fixedHeightScrolling = false,
642
+ customActions
643
+ }) => {
644
+ var _a;
645
+ const mounted = useMounted();
646
+ const modalRef = (0, import_react3.useRef)(null);
647
+ const bgRef = (0, import_react3.useRef)(null);
648
+ const wasOpen = (0, import_react_use.usePrevious)(open);
649
+ const isMobile = useMatchesMobile();
650
+ const computedFixedHeightScrolling = isMobile || fixedHeightScrolling;
651
+ (0, import_react3.useEffect)(() => {
652
+ if (!mounted) return;
653
+ if (!modalRef.current || !bgRef.current) {
654
+ console.error("Modal or background reference is not set.");
655
+ return;
656
+ }
657
+ if (wasOpen === void 0) return;
658
+ if (wasOpen && !open) {
659
+ const modalAnimation = fadeOutScale(modalRef.current);
660
+ const bgAnimation = bgFadeOut(bgRef.current);
661
+ whenAllAnimationsFinish([modalAnimation, bgAnimation], () => {
662
+ if (onClose) {
663
+ onClose();
664
+ }
665
+ });
666
+ } else if (!wasOpen && open) {
667
+ fadeInScale(modalRef.current);
668
+ bgFadeIn(bgRef.current);
669
+ }
670
+ }, [mounted, open]);
671
+ const handleKeyDown = (0, import_react3.useCallback)(
672
+ (e) => {
673
+ if (e.key === "Escape") {
674
+ if (onClose) {
675
+ e.preventDefault();
676
+ onClose();
677
+ }
678
+ }
679
+ },
680
+ [onClose, bgRef, modalRef]
681
+ );
682
+ const handleClose = (0, import_react3.useCallback)(() => {
683
+ if (onClose) {
684
+ onClose();
685
+ }
686
+ }, [onClose]);
687
+ (0, import_react3.useEffect)(() => {
688
+ if (open) {
689
+ document.addEventListener("keyup", handleKeyDown);
690
+ }
691
+ return () => {
692
+ document.removeEventListener("keyup", handleKeyDown);
693
+ };
694
+ }, [open, handleKeyDown]);
695
+ (0, import_react3.useEffect)(() => {
696
+ if (!open) return;
697
+ const scrollY = window.scrollY;
698
+ const body = document.body;
699
+ body.style.position = "fixed";
700
+ body.style.top = `-${scrollY}px`;
701
+ body.style.left = "0";
702
+ body.style.right = "0";
703
+ body.style.overflow = "hidden";
704
+ body.style.width = "100%";
705
+ return () => {
706
+ body.style.position = "";
707
+ body.style.top = "";
708
+ body.style.left = "";
709
+ body.style.right = "";
710
+ body.style.overflow = "";
711
+ body.style.width = "";
712
+ window.scrollTo(0, scrollY);
713
+ };
714
+ }, [open]);
715
+ const { sizeClass } = (_a = sizes[size]) != null ? _a : sizes.small;
716
+ const backgroundClickHandler = (0, import_react3.useCallback)(
717
+ (e) => {
718
+ const target = e.target;
719
+ const currentTarget = e.currentTarget;
720
+ if (currentTarget.contains(target) && currentTarget !== target) {
721
+ e.stopPropagation();
722
+ return;
723
+ }
724
+ if (open && closeOnBackdropClick) {
725
+ handleClose();
726
+ }
727
+ },
728
+ [open, closeOnBackdropClick, handleClose]
729
+ );
730
+ if (!mounted) {
731
+ return null;
732
+ }
733
+ return (0, import_react_dom.createPortal)(
734
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
735
+ ModalScrim,
736
+ {
737
+ size,
738
+ ref: bgRef,
739
+ show: open,
740
+ onClick: backgroundClickHandler,
741
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
742
+ "div",
743
+ {
744
+ ref: modalRef,
745
+ className: (0, import_clsx7.default)(
746
+ "bg-white shadow-md rounded-sm flex flex-col overflow-hidden w-full opacity-0 h-fit",
747
+ computedFixedHeightScrolling && "desktop:max-h-[calc(100vh-32px)] desktop:h-auto",
748
+ className,
749
+ sizeClass
750
+ ),
751
+ onClick: (e) => e.stopPropagation(),
752
+ children: [
753
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
754
+ ModalHeader,
755
+ {
756
+ title,
757
+ onClose: handleClose,
758
+ hideCloseIcon,
759
+ headerIcon
760
+ }
761
+ ),
762
+ children && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ModalContent, { fixedHeightScrolling: computedFixedHeightScrolling, children }),
763
+ showButtons && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
764
+ ModalButtons,
765
+ {
766
+ onClose: handleClose,
767
+ onContinue,
768
+ customActions
769
+ }
770
+ )
771
+ ]
772
+ }
773
+ )
774
+ }
775
+ ),
776
+ findDocumentRoot(bgRef.current)
777
+ );
778
+ };
779
+ Modal.displayName = "Modal";
780
+ // Annotate the CommonJS export names for ESM import in node:
781
+ 0 && (module.exports = {
782
+ Modal
783
+ });