jvetrau-ds 0.1.24 → 0.1.25

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 (195) hide show
  1. package/components/card-group/card-group.cjs +33 -0
  2. package/components/card-group/card-group.cjs.map +1 -0
  3. package/components/card-group/card-group.css +60 -0
  4. package/components/card-group/card-group.d.cts +8 -0
  5. package/components/card-group/card-group.d.ts +8 -0
  6. package/components/card-group/card-group.js +31 -0
  7. package/components/card-group/card-group.js.map +1 -0
  8. package/components/card-group/index.cjs +13 -0
  9. package/components/card-group/index.cjs.map +1 -0
  10. package/components/card-group/index.d.cts +2 -0
  11. package/components/card-group/index.d.ts +2 -0
  12. package/components/card-group/index.js +3 -0
  13. package/components/card-group/index.js.map +1 -0
  14. package/components/index.cjs +6 -0
  15. package/components/index.d.cts +1 -0
  16. package/components/index.d.ts +1 -0
  17. package/components/index.js +1 -0
  18. package/components/panel/panel.css +3 -0
  19. package/index.cjs +30 -18
  20. package/index.d.cts +5 -3
  21. package/index.d.ts +5 -3
  22. package/index.js +5 -3
  23. package/package.json +1 -1
  24. package/patterns/index.cjs +6 -0
  25. package/patterns/index.d.cts +1 -0
  26. package/patterns/index.d.ts +1 -0
  27. package/patterns/index.js +1 -0
  28. package/patterns/modal/index.cjs +13 -0
  29. package/patterns/modal/index.cjs.map +1 -0
  30. package/patterns/modal/index.d.cts +2 -0
  31. package/patterns/modal/index.d.ts +2 -0
  32. package/patterns/modal/index.js +3 -0
  33. package/patterns/modal/index.js.map +1 -0
  34. package/patterns/modal/modal.cjs +73 -0
  35. package/patterns/modal/modal.cjs.map +1 -0
  36. package/patterns/modal/modal.css +79 -0
  37. package/patterns/modal/modal.d.cts +14 -0
  38. package/patterns/modal/modal.d.ts +14 -0
  39. package/patterns/modal/modal.js +71 -0
  40. package/patterns/modal/modal.js.map +1 -0
  41. package/patterns/public.cjs +6 -20
  42. package/patterns/public.d.cts +3 -0
  43. package/patterns/public.d.ts +3 -0
  44. package/patterns/public.js +1 -3
  45. package/styles.css +146 -0
  46. package/themes/base/desktop.css +1 -0
  47. package/themes/base/desktop.md +1 -0
  48. package/themes/base/desktop.scoped.css +1 -0
  49. package/themes/base/diagram.css +1 -0
  50. package/themes/base/diagram.md +1 -0
  51. package/themes/base/diagram.scoped.css +1 -0
  52. package/themes/base/mobile.css +1 -0
  53. package/themes/base/mobile.md +1 -0
  54. package/themes/base/mobile.scoped.css +1 -0
  55. package/themes/brandcopilot/desktop.css +1 -0
  56. package/themes/brandcopilot/desktop.md +1 -0
  57. package/themes/brandcopilot/desktop.scoped.css +1 -0
  58. package/themes/brandcopilot/diagram.css +1 -0
  59. package/themes/brandcopilot/diagram.md +1 -0
  60. package/themes/brandcopilot/diagram.scoped.css +1 -0
  61. package/themes/brandcopilot/mobile.css +1 -0
  62. package/themes/brandcopilot/mobile.md +1 -0
  63. package/themes/brandcopilot/mobile.scoped.css +1 -0
  64. package/themes/dmpatterns/desktop.css +1 -0
  65. package/themes/dmpatterns/desktop.md +1 -0
  66. package/themes/dmpatterns/desktop.scoped.css +1 -0
  67. package/themes/dmpatterns/diagram.css +1 -0
  68. package/themes/dmpatterns/diagram.md +1 -0
  69. package/themes/dmpatterns/diagram.scoped.css +1 -0
  70. package/themes/dmpatterns/mobile.css +1 -0
  71. package/themes/dmpatterns/mobile.md +1 -0
  72. package/themes/dmpatterns/mobile.scoped.css +1 -0
  73. package/themes/pdigest/desktop.css +1 -0
  74. package/themes/pdigest/desktop.md +1 -0
  75. package/themes/pdigest/desktop.scoped.css +1 -0
  76. package/themes/pdigest/diagram.css +1 -0
  77. package/themes/pdigest/diagram.md +1 -0
  78. package/themes/pdigest/diagram.scoped.css +1 -0
  79. package/themes/pdigest/mobile.css +1 -0
  80. package/themes/pdigest/mobile.md +1 -0
  81. package/themes/pdigest/mobile.scoped.css +1 -0
  82. package/themes/redesigntrack/desktop.css +1 -0
  83. package/themes/redesigntrack/desktop.md +1 -0
  84. package/themes/redesigntrack/desktop.scoped.css +1 -0
  85. package/themes/redesigntrack/diagram.css +1 -0
  86. package/themes/redesigntrack/diagram.md +1 -0
  87. package/themes/redesigntrack/diagram.scoped.css +1 -0
  88. package/themes/redesigntrack/mobile.css +1 -0
  89. package/themes/redesigntrack/mobile.md +1 -0
  90. package/themes/redesigntrack/mobile.scoped.css +1 -0
  91. package/tokens/runtime/tokens.base.desktop.runtime.cjs +1 -0
  92. package/tokens/runtime/tokens.base.desktop.runtime.cjs.map +1 -1
  93. package/tokens/runtime/tokens.base.desktop.runtime.d.cts +1 -0
  94. package/tokens/runtime/tokens.base.desktop.runtime.d.ts +1 -0
  95. package/tokens/runtime/tokens.base.desktop.runtime.js +1 -0
  96. package/tokens/runtime/tokens.base.desktop.runtime.js.map +1 -1
  97. package/tokens/runtime/tokens.base.diagram.runtime.cjs +1 -0
  98. package/tokens/runtime/tokens.base.diagram.runtime.cjs.map +1 -1
  99. package/tokens/runtime/tokens.base.diagram.runtime.d.cts +1 -0
  100. package/tokens/runtime/tokens.base.diagram.runtime.d.ts +1 -0
  101. package/tokens/runtime/tokens.base.diagram.runtime.js +1 -0
  102. package/tokens/runtime/tokens.base.diagram.runtime.js.map +1 -1
  103. package/tokens/runtime/tokens.base.mobile.runtime.cjs +1 -0
  104. package/tokens/runtime/tokens.base.mobile.runtime.cjs.map +1 -1
  105. package/tokens/runtime/tokens.base.mobile.runtime.d.cts +1 -0
  106. package/tokens/runtime/tokens.base.mobile.runtime.d.ts +1 -0
  107. package/tokens/runtime/tokens.base.mobile.runtime.js +1 -0
  108. package/tokens/runtime/tokens.base.mobile.runtime.js.map +1 -1
  109. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.cjs +1 -0
  110. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.cjs.map +1 -1
  111. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.d.cts +1 -0
  112. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.d.ts +1 -0
  113. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.js +1 -0
  114. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.js.map +1 -1
  115. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.cjs +1 -0
  116. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.cjs.map +1 -1
  117. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.d.cts +1 -0
  118. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.d.ts +1 -0
  119. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.js +1 -0
  120. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.js.map +1 -1
  121. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.cjs +1 -0
  122. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.cjs.map +1 -1
  123. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.d.cts +1 -0
  124. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.d.ts +1 -0
  125. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.js +1 -0
  126. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.js.map +1 -1
  127. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.cjs +1 -0
  128. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.cjs.map +1 -1
  129. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.d.cts +1 -0
  130. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.d.ts +1 -0
  131. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.js +1 -0
  132. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.js.map +1 -1
  133. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.cjs +1 -0
  134. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.cjs.map +1 -1
  135. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.d.cts +1 -0
  136. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.d.ts +1 -0
  137. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.js +1 -0
  138. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.js.map +1 -1
  139. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.cjs +1 -0
  140. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.cjs.map +1 -1
  141. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.d.cts +1 -0
  142. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.d.ts +1 -0
  143. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.js +1 -0
  144. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.js.map +1 -1
  145. package/tokens/runtime/tokens.pdigest.desktop.runtime.cjs +1 -0
  146. package/tokens/runtime/tokens.pdigest.desktop.runtime.cjs.map +1 -1
  147. package/tokens/runtime/tokens.pdigest.desktop.runtime.d.cts +1 -0
  148. package/tokens/runtime/tokens.pdigest.desktop.runtime.d.ts +1 -0
  149. package/tokens/runtime/tokens.pdigest.desktop.runtime.js +1 -0
  150. package/tokens/runtime/tokens.pdigest.desktop.runtime.js.map +1 -1
  151. package/tokens/runtime/tokens.pdigest.diagram.runtime.cjs +1 -0
  152. package/tokens/runtime/tokens.pdigest.diagram.runtime.cjs.map +1 -1
  153. package/tokens/runtime/tokens.pdigest.diagram.runtime.d.cts +1 -0
  154. package/tokens/runtime/tokens.pdigest.diagram.runtime.d.ts +1 -0
  155. package/tokens/runtime/tokens.pdigest.diagram.runtime.js +1 -0
  156. package/tokens/runtime/tokens.pdigest.diagram.runtime.js.map +1 -1
  157. package/tokens/runtime/tokens.pdigest.mobile.runtime.cjs +1 -0
  158. package/tokens/runtime/tokens.pdigest.mobile.runtime.cjs.map +1 -1
  159. package/tokens/runtime/tokens.pdigest.mobile.runtime.d.cts +1 -0
  160. package/tokens/runtime/tokens.pdigest.mobile.runtime.d.ts +1 -0
  161. package/tokens/runtime/tokens.pdigest.mobile.runtime.js +1 -0
  162. package/tokens/runtime/tokens.pdigest.mobile.runtime.js.map +1 -1
  163. package/tokens/runtime/tokens.redesigntrack.desktop.runtime.cjs +1 -0
  164. package/tokens/runtime/tokens.redesigntrack.desktop.runtime.cjs.map +1 -1
  165. package/tokens/runtime/tokens.redesigntrack.desktop.runtime.d.cts +1 -0
  166. package/tokens/runtime/tokens.redesigntrack.desktop.runtime.d.ts +1 -0
  167. package/tokens/runtime/tokens.redesigntrack.desktop.runtime.js +1 -0
  168. package/tokens/runtime/tokens.redesigntrack.desktop.runtime.js.map +1 -1
  169. package/tokens/runtime/tokens.redesigntrack.diagram.runtime.cjs +1 -0
  170. package/tokens/runtime/tokens.redesigntrack.diagram.runtime.cjs.map +1 -1
  171. package/tokens/runtime/tokens.redesigntrack.diagram.runtime.d.cts +1 -0
  172. package/tokens/runtime/tokens.redesigntrack.diagram.runtime.d.ts +1 -0
  173. package/tokens/runtime/tokens.redesigntrack.diagram.runtime.js +1 -0
  174. package/tokens/runtime/tokens.redesigntrack.diagram.runtime.js.map +1 -1
  175. package/tokens/runtime/tokens.redesigntrack.mobile.runtime.cjs +1 -0
  176. package/tokens/runtime/tokens.redesigntrack.mobile.runtime.cjs.map +1 -1
  177. package/tokens/runtime/tokens.redesigntrack.mobile.runtime.d.cts +1 -0
  178. package/tokens/runtime/tokens.redesigntrack.mobile.runtime.d.ts +1 -0
  179. package/tokens/runtime/tokens.redesigntrack.mobile.runtime.js +1 -0
  180. package/tokens/runtime/tokens.redesigntrack.mobile.runtime.js.map +1 -1
  181. package/tokens/themes/base/dist/desktop.json +8 -0
  182. package/tokens/themes/base/dist/diagram.json +8 -0
  183. package/tokens/themes/base/dist/mobile.json +8 -0
  184. package/tokens/themes/brandcopilot/dist/desktop.json +8 -0
  185. package/tokens/themes/brandcopilot/dist/diagram.json +8 -0
  186. package/tokens/themes/brandcopilot/dist/mobile.json +8 -0
  187. package/tokens/themes/dmpatterns/dist/desktop.json +8 -0
  188. package/tokens/themes/dmpatterns/dist/diagram.json +8 -0
  189. package/tokens/themes/dmpatterns/dist/mobile.json +8 -0
  190. package/tokens/themes/pdigest/dist/desktop.json +8 -0
  191. package/tokens/themes/pdigest/dist/diagram.json +8 -0
  192. package/tokens/themes/pdigest/dist/mobile.json +8 -0
  193. package/tokens/themes/redesigntrack/dist/desktop.json +8 -0
  194. package/tokens/themes/redesigntrack/dist/diagram.json +8 -0
  195. package/tokens/themes/redesigntrack/dist/mobile.json +8 -0
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('./card-group.css');
5
+ var classnames = require('../helpers/classnames');
6
+
7
+ const CardGroup = ({
8
+ columns,
9
+ className = "",
10
+ children,
11
+ ...props
12
+ }) => {
13
+ const classes = classnames.classnames("card-group", className, {
14
+ "card-group--auto": columns === void 0,
15
+ "card-group--columns-1": columns === 1,
16
+ "card-group--columns-2": columns === 2,
17
+ "card-group--columns-3": columns === 3,
18
+ "card-group--columns-4": columns === 4
19
+ });
20
+ return /* @__PURE__ */ jsxRuntime.jsx(
21
+ "div",
22
+ {
23
+ className: classes,
24
+ ...props,
25
+ children
26
+ }
27
+ );
28
+ };
29
+ var card_group_default = CardGroup;
30
+
31
+ module.exports = card_group_default;
32
+ //# sourceMappingURL=card-group.cjs.map
33
+ //# sourceMappingURL=card-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/card-group/card-group.tsx"],"names":["classnames","jsx"],"mappings":";;;;;;AASA,MAAM,YAAsC,CAAC;AAAA,EAC3C,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAUA,qBAAA,CAAW,YAAA,EAAc,SAAA,EAAW;AAAA,IAClD,oBAAoB,OAAA,KAAY,MAAA;AAAA,IAChC,yBAAyB,OAAA,KAAY,CAAA;AAAA,IACrC,yBAAyB,OAAA,KAAY,CAAA;AAAA,IACrC,yBAAyB,OAAA,KAAY,CAAA;AAAA,IACrC,yBAAyB,OAAA,KAAY;AAAA,GACtC,CAAA;AAED,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,kBAAA,GAAQ","file":"card-group.cjs","sourcesContent":["import React from 'react';\nimport './card-group.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CardGroupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n columns?: 1 | 2 | 3 | 4;\n}\n\nconst CardGroup: React.FC<CardGroupProps> = ({\n columns,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('card-group', className, {\n 'card-group--auto': columns === undefined,\n 'card-group--columns-1': columns === 1,\n 'card-group--columns-2': columns === 2,\n 'card-group--columns-3': columns === 3,\n 'card-group--columns-4': columns === 4,\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default CardGroup;"]}
@@ -0,0 +1,60 @@
1
+ .card-group {
2
+ /* color */
3
+
4
+ /* typography */
5
+
6
+ /* size */
7
+ --card-group-gap: var(--margin-container);
8
+ --card-group-min-column-width: var(--size-container-width-min);
9
+
10
+ display: grid;
11
+ gap: var(--card-group-gap);
12
+ width: 100%;
13
+
14
+ /* border */
15
+
16
+ /* depth */
17
+
18
+ /* motion */
19
+ }
20
+
21
+ .card-group--auto {
22
+ /* size */
23
+ grid-template-columns:
24
+ repeat(
25
+ auto-fit,
26
+ minmax(
27
+ min(var(--card-group-min-column-width), 100%),
28
+ 1fr
29
+ )
30
+ );
31
+ }
32
+
33
+ .card-group--columns-1 {
34
+ /* size */
35
+ grid-template-columns: repeat(1, minmax(0, 1fr));
36
+ }
37
+
38
+ .card-group--columns-2 {
39
+ /* size */
40
+ grid-template-columns: repeat(2, minmax(0, 1fr));
41
+ }
42
+
43
+ .card-group--columns-3 {
44
+ /* size */
45
+ grid-template-columns: repeat(3, minmax(0, 1fr));
46
+ }
47
+
48
+ .card-group--columns-4 {
49
+ /* size */
50
+ grid-template-columns: repeat(4, minmax(0, 1fr));
51
+ }
52
+
53
+ @media (max-width: 720px) {
54
+ .card-group--columns-2,
55
+ .card-group--columns-3,
56
+ .card-group--columns-4 {
57
+ /* size */
58
+ grid-template-columns: 1fr;
59
+ }
60
+ }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+
3
+ interface CardGroupProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ columns?: 1 | 2 | 3 | 4;
5
+ }
6
+ declare const CardGroup: React.FC<CardGroupProps>;
7
+
8
+ export { type CardGroupProps, CardGroup as default };
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+
3
+ interface CardGroupProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ columns?: 1 | 2 | 3 | 4;
5
+ }
6
+ declare const CardGroup: React.FC<CardGroupProps>;
7
+
8
+ export { type CardGroupProps, CardGroup as default };
@@ -0,0 +1,31 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import './card-group.css';
3
+ import { classnames } from '../helpers/classnames';
4
+
5
+ const CardGroup = ({
6
+ columns,
7
+ className = "",
8
+ children,
9
+ ...props
10
+ }) => {
11
+ const classes = classnames("card-group", className, {
12
+ "card-group--auto": columns === void 0,
13
+ "card-group--columns-1": columns === 1,
14
+ "card-group--columns-2": columns === 2,
15
+ "card-group--columns-3": columns === 3,
16
+ "card-group--columns-4": columns === 4
17
+ });
18
+ return /* @__PURE__ */ jsx(
19
+ "div",
20
+ {
21
+ className: classes,
22
+ ...props,
23
+ children
24
+ }
25
+ );
26
+ };
27
+ var card_group_default = CardGroup;
28
+
29
+ export { card_group_default as default };
30
+ //# sourceMappingURL=card-group.js.map
31
+ //# sourceMappingURL=card-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/card-group/card-group.tsx"],"names":[],"mappings":";;;;AASA,MAAM,YAAsC,CAAC;AAAA,EAC3C,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,YAAA,EAAc,SAAA,EAAW;AAAA,IAClD,oBAAoB,OAAA,KAAY,MAAA;AAAA,IAChC,yBAAyB,OAAA,KAAY,CAAA;AAAA,IACrC,yBAAyB,OAAA,KAAY,CAAA;AAAA,IACrC,yBAAyB,OAAA,KAAY,CAAA;AAAA,IACrC,yBAAyB,OAAA,KAAY;AAAA,GACtC,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,kBAAA,GAAQ","file":"card-group.js","sourcesContent":["import React from 'react';\nimport './card-group.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CardGroupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n columns?: 1 | 2 | 3 | 4;\n}\n\nconst CardGroup: React.FC<CardGroupProps> = ({\n columns,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('card-group', className, {\n 'card-group--auto': columns === undefined,\n 'card-group--columns-1': columns === 1,\n 'card-group--columns-2': columns === 2,\n 'card-group--columns-3': columns === 3,\n 'card-group--columns-4': columns === 4,\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default CardGroup;"]}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var cardGroup = require('./card-group');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var cardGroup__default = /*#__PURE__*/_interopDefault(cardGroup);
8
+
9
+
10
+
11
+ module.exports = cardGroup__default.default;
12
+ //# sourceMappingURL=index.cjs.map
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
@@ -0,0 +1,2 @@
1
+ export { CardGroupProps, default } from './card-group.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { CardGroupProps, default } from './card-group.js';
2
+ import 'react';
@@ -0,0 +1,3 @@
1
+ export { default } from './card-group';
2
+ //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -21,6 +21,7 @@ var avatar = require('./avatar/avatar');
21
21
  var attach = require('./attach/attach');
22
22
  var actionGroup = require('./action-group/action-group');
23
23
  var fieldGroup = require('./field-group/field-group');
24
+ var cardGroup = require('./card-group/card-group');
24
25
 
25
26
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
26
27
 
@@ -45,6 +46,7 @@ var avatar__default = /*#__PURE__*/_interopDefault(avatar);
45
46
  var attach__default = /*#__PURE__*/_interopDefault(attach);
46
47
  var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
47
48
  var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
49
+ var cardGroup__default = /*#__PURE__*/_interopDefault(cardGroup);
48
50
 
49
51
 
50
52
 
@@ -132,5 +134,9 @@ Object.defineProperty(exports, "FieldGroup", {
132
134
  enumerable: true,
133
135
  get: function () { return fieldGroup__default.default; }
134
136
  });
137
+ Object.defineProperty(exports, "CardGroup", {
138
+ enumerable: true,
139
+ get: function () { return cardGroup__default.default; }
140
+ });
135
141
  //# sourceMappingURL=index.cjs.map
136
142
  //# sourceMappingURL=index.cjs.map
@@ -19,5 +19,6 @@ export { default as Avatar, AvatarProps } from './avatar/avatar.cjs';
19
19
  export { default as Attach, AttachItem, AttachProps } from './attach/attach.cjs';
20
20
  export { default as ActionGroup, ActionGroupProps } from './action-group/action-group.cjs';
21
21
  export { default as FieldGroup, FieldGroupProps } from './field-group/field-group.cjs';
22
+ export { default as CardGroup, CardGroupProps } from './card-group/card-group.cjs';
22
23
  import 'react';
23
24
  import '../types-DboVOY__.cjs';
@@ -19,5 +19,6 @@ export { default as Avatar, AvatarProps } from './avatar/avatar.js';
19
19
  export { default as Attach, AttachItem, AttachProps } from './attach/attach.js';
20
20
  export { default as ActionGroup, ActionGroupProps } from './action-group/action-group.js';
21
21
  export { default as FieldGroup, FieldGroupProps } from './field-group/field-group.js';
22
+ export { default as CardGroup, CardGroupProps } from './card-group/card-group.js';
22
23
  import 'react';
23
24
  import '../types-DboVOY__.js';
@@ -19,5 +19,6 @@ export { default as Avatar } from './avatar/avatar';
19
19
  export { default as Attach } from './attach/attach';
20
20
  export { default as ActionGroup } from './action-group/action-group';
21
21
  export { default as FieldGroup } from './field-group/field-group';
22
+ export { default as CardGroup } from './card-group/card-group';
22
23
  //# sourceMappingURL=index.js.map
23
24
  //# sourceMappingURL=index.js.map
@@ -38,6 +38,9 @@
38
38
  --panel-bg: transparent;
39
39
  --panel-color: var(--color-text);
40
40
 
41
+ /* size */
42
+ justify-content: flex-start;
43
+
41
44
  /* border */
42
45
  border-radius: 0;
43
46
  }
package/index.cjs CHANGED
@@ -20,17 +20,19 @@ var card = require('./components/card');
20
20
  var panel = require('./components/panel');
21
21
  var logo = require('./components/logo');
22
22
  var avatar = require('./components/avatar');
23
+ var attach = require('./components/attach');
24
+ var actionGroup = require('./components/action-group');
25
+ var fieldGroup = require('./components/field-group');
26
+ var cardGroup = require('./components/card-group');
23
27
  var header = require('./patterns/header');
24
28
  var footer = require('./patterns/footer');
25
29
  var screenHeader = require('./patterns/screen-header');
26
30
  var form = require('./patterns/form');
27
31
  var masthead = require('./patterns/masthead');
32
+ var modal = require('./patterns/modal');
28
33
  var foundation = require('./layouts/foundation');
29
34
  var base = require('./layouts/base');
30
35
  var sidebar = require('./layouts/sidebar');
31
- var attach = require('./components/attach');
32
- var actionGroup = require('./components/action-group');
33
- var fieldGroup = require('./components/field-group');
34
36
 
35
37
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
36
38
 
@@ -54,17 +56,19 @@ var card__default = /*#__PURE__*/_interopDefault(card);
54
56
  var panel__default = /*#__PURE__*/_interopDefault(panel);
55
57
  var logo__default = /*#__PURE__*/_interopDefault(logo);
56
58
  var avatar__default = /*#__PURE__*/_interopDefault(avatar);
59
+ var attach__default = /*#__PURE__*/_interopDefault(attach);
60
+ var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
61
+ var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
62
+ var cardGroup__default = /*#__PURE__*/_interopDefault(cardGroup);
57
63
  var header__default = /*#__PURE__*/_interopDefault(header);
58
64
  var footer__default = /*#__PURE__*/_interopDefault(footer);
59
65
  var screenHeader__default = /*#__PURE__*/_interopDefault(screenHeader);
60
66
  var form__default = /*#__PURE__*/_interopDefault(form);
61
67
  var masthead__default = /*#__PURE__*/_interopDefault(masthead);
68
+ var modal__default = /*#__PURE__*/_interopDefault(modal);
62
69
  var foundation__default = /*#__PURE__*/_interopDefault(foundation);
63
70
  var base__default = /*#__PURE__*/_interopDefault(base);
64
71
  var sidebar__default = /*#__PURE__*/_interopDefault(sidebar);
65
- var attach__default = /*#__PURE__*/_interopDefault(attach);
66
- var actionGroup__default = /*#__PURE__*/_interopDefault(actionGroup);
67
- var fieldGroup__default = /*#__PURE__*/_interopDefault(fieldGroup);
68
72
 
69
73
 
70
74
 
@@ -148,6 +152,22 @@ Object.defineProperty(exports, "Avatar", {
148
152
  enumerable: true,
149
153
  get: function () { return avatar__default.default; }
150
154
  });
155
+ Object.defineProperty(exports, "Attach", {
156
+ enumerable: true,
157
+ get: function () { return attach__default.default; }
158
+ });
159
+ Object.defineProperty(exports, "ActionGroup", {
160
+ enumerable: true,
161
+ get: function () { return actionGroup__default.default; }
162
+ });
163
+ Object.defineProperty(exports, "FieldGroup", {
164
+ enumerable: true,
165
+ get: function () { return fieldGroup__default.default; }
166
+ });
167
+ Object.defineProperty(exports, "CardGroup", {
168
+ enumerable: true,
169
+ get: function () { return cardGroup__default.default; }
170
+ });
151
171
  Object.defineProperty(exports, "Header", {
152
172
  enumerable: true,
153
173
  get: function () { return header__default.default; }
@@ -168,6 +188,10 @@ Object.defineProperty(exports, "Masthead", {
168
188
  enumerable: true,
169
189
  get: function () { return masthead__default.default; }
170
190
  });
191
+ Object.defineProperty(exports, "Modal", {
192
+ enumerable: true,
193
+ get: function () { return modal__default.default; }
194
+ });
171
195
  Object.defineProperty(exports, "LayoutFoundation", {
172
196
  enumerable: true,
173
197
  get: function () { return foundation__default.default; }
@@ -180,17 +204,5 @@ Object.defineProperty(exports, "LayoutSidebar", {
180
204
  enumerable: true,
181
205
  get: function () { return sidebar__default.default; }
182
206
  });
183
- Object.defineProperty(exports, "Attach", {
184
- enumerable: true,
185
- get: function () { return attach__default.default; }
186
- });
187
- Object.defineProperty(exports, "ActionGroup", {
188
- enumerable: true,
189
- get: function () { return actionGroup__default.default; }
190
- });
191
- Object.defineProperty(exports, "FieldGroup", {
192
- enumerable: true,
193
- get: function () { return fieldGroup__default.default; }
194
- });
195
207
  //# sourceMappingURL=index.cjs.map
196
208
  //# sourceMappingURL=index.cjs.map
package/index.d.cts CHANGED
@@ -18,16 +18,18 @@ export { default as Card, CardProps } from './components/card/card.cjs';
18
18
  export { default as Panel, PanelProps } from './components/panel/panel.cjs';
19
19
  export { default as Logo, LogoProps } from './components/logo/logo.cjs';
20
20
  export { default as Avatar, AvatarProps } from './components/avatar/avatar.cjs';
21
+ export { default as Attach, AttachItem, AttachProps } from './components/attach/attach.cjs';
22
+ export { default as ActionGroup, ActionGroupProps } from './components/action-group/action-group.cjs';
23
+ export { default as FieldGroup, FieldGroupProps } from './components/field-group/field-group.cjs';
24
+ export { default as CardGroup, CardGroupProps } from './components/card-group/card-group.cjs';
21
25
  export { default as Header, HeaderProps } from './patterns/header/header.cjs';
22
26
  export { default as Footer, FooterProps } from './patterns/footer/footer.cjs';
23
27
  export { default as ScreenHeader, ScreenHeaderProps } from './patterns/screen-header/screen-header.cjs';
24
28
  export { default as Form, FormProps } from './patterns/form/form.cjs';
25
29
  export { default as Masthead, MastheadProps } from './patterns/masthead/masthead.cjs';
30
+ export { default as Modal, ModalProps } from './patterns/modal/modal.cjs';
26
31
  export { default as LayoutFoundation, LayoutFoundationProps, LayoutFoundationWidth } from './layouts/foundation/foundation.cjs';
27
32
  export { default as LayoutBase, LayoutBaseProps } from './layouts/base/base.cjs';
28
33
  export { default as LayoutSidebar, LayoutSidebarProps } from './layouts/sidebar/sidebar.cjs';
29
- export { default as Attach, AttachItem, AttachProps } from './components/attach/attach.cjs';
30
- export { default as ActionGroup, ActionGroupProps } from './components/action-group/action-group.cjs';
31
- export { default as FieldGroup, FieldGroupProps } from './components/field-group/field-group.cjs';
32
34
  import 'react';
33
35
  import './types-DboVOY__.cjs';
package/index.d.ts CHANGED
@@ -18,16 +18,18 @@ export { default as Card, CardProps } from './components/card/card.js';
18
18
  export { default as Panel, PanelProps } from './components/panel/panel.js';
19
19
  export { default as Logo, LogoProps } from './components/logo/logo.js';
20
20
  export { default as Avatar, AvatarProps } from './components/avatar/avatar.js';
21
+ export { default as Attach, AttachItem, AttachProps } from './components/attach/attach.js';
22
+ export { default as ActionGroup, ActionGroupProps } from './components/action-group/action-group.js';
23
+ export { default as FieldGroup, FieldGroupProps } from './components/field-group/field-group.js';
24
+ export { default as CardGroup, CardGroupProps } from './components/card-group/card-group.js';
21
25
  export { default as Header, HeaderProps } from './patterns/header/header.js';
22
26
  export { default as Footer, FooterProps } from './patterns/footer/footer.js';
23
27
  export { default as ScreenHeader, ScreenHeaderProps } from './patterns/screen-header/screen-header.js';
24
28
  export { default as Form, FormProps } from './patterns/form/form.js';
25
29
  export { default as Masthead, MastheadProps } from './patterns/masthead/masthead.js';
30
+ export { default as Modal, ModalProps } from './patterns/modal/modal.js';
26
31
  export { default as LayoutFoundation, LayoutFoundationProps, LayoutFoundationWidth } from './layouts/foundation/foundation.js';
27
32
  export { default as LayoutBase, LayoutBaseProps } from './layouts/base/base.js';
28
33
  export { default as LayoutSidebar, LayoutSidebarProps } from './layouts/sidebar/sidebar.js';
29
- export { default as Attach, AttachItem, AttachProps } from './components/attach/attach.js';
30
- export { default as ActionGroup, ActionGroupProps } from './components/action-group/action-group.js';
31
- export { default as FieldGroup, FieldGroupProps } from './components/field-group/field-group.js';
32
34
  import 'react';
33
35
  import './types-DboVOY__.js';
package/index.js CHANGED
@@ -18,16 +18,18 @@ export { default as Card } from './components/card';
18
18
  export { default as Panel } from './components/panel';
19
19
  export { default as Logo } from './components/logo';
20
20
  export { default as Avatar } from './components/avatar';
21
+ export { default as Attach } from './components/attach';
22
+ export { default as ActionGroup } from './components/action-group';
23
+ export { default as FieldGroup } from './components/field-group';
24
+ export { default as CardGroup } from './components/card-group';
21
25
  export { default as Header } from './patterns/header';
22
26
  export { default as Footer } from './patterns/footer';
23
27
  export { default as ScreenHeader } from './patterns/screen-header';
24
28
  export { default as Form } from './patterns/form';
25
29
  export { default as Masthead } from './patterns/masthead';
30
+ export { default as Modal } from './patterns/modal';
26
31
  export { default as LayoutFoundation } from './layouts/foundation';
27
32
  export { default as LayoutBase } from './layouts/base';
28
33
  export { default as LayoutSidebar } from './layouts/sidebar';
29
- export { default as Attach } from './components/attach';
30
- export { default as ActionGroup } from './components/action-group';
31
- export { default as FieldGroup } from './components/field-group';
32
34
  //# sourceMappingURL=index.js.map
33
35
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jvetrau-ds",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "description": "Multi-brand React design system with semantic tokens",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -5,6 +5,7 @@ var footer = require('./footer');
5
5
  var screenHeader = require('./screen-header');
6
6
  var form = require('./form');
7
7
  var masthead = require('./masthead');
8
+ var modal = require('./modal');
8
9
 
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
@@ -13,6 +14,7 @@ var footer__default = /*#__PURE__*/_interopDefault(footer);
13
14
  var screenHeader__default = /*#__PURE__*/_interopDefault(screenHeader);
14
15
  var form__default = /*#__PURE__*/_interopDefault(form);
15
16
  var masthead__default = /*#__PURE__*/_interopDefault(masthead);
17
+ var modal__default = /*#__PURE__*/_interopDefault(modal);
16
18
 
17
19
 
18
20
 
@@ -36,5 +38,9 @@ Object.defineProperty(exports, "Masthead", {
36
38
  enumerable: true,
37
39
  get: function () { return masthead__default.default; }
38
40
  });
41
+ Object.defineProperty(exports, "Modal", {
42
+ enumerable: true,
43
+ get: function () { return modal__default.default; }
44
+ });
39
45
  //# sourceMappingURL=index.cjs.map
40
46
  //# sourceMappingURL=index.cjs.map
@@ -3,4 +3,5 @@ export { default as Footer, FooterProps } from './footer/footer.cjs';
3
3
  export { default as ScreenHeader, ScreenHeaderProps } from './screen-header/screen-header.cjs';
4
4
  export { default as Form, FormProps } from './form/form.cjs';
5
5
  export { default as Masthead, MastheadProps } from './masthead/masthead.cjs';
6
+ export { default as Modal, ModalProps } from './modal/modal.cjs';
6
7
  import 'react';
@@ -3,4 +3,5 @@ export { default as Footer, FooterProps } from './footer/footer.js';
3
3
  export { default as ScreenHeader, ScreenHeaderProps } from './screen-header/screen-header.js';
4
4
  export { default as Form, FormProps } from './form/form.js';
5
5
  export { default as Masthead, MastheadProps } from './masthead/masthead.js';
6
+ export { default as Modal, ModalProps } from './modal/modal.js';
6
7
  import 'react';
package/patterns/index.js CHANGED
@@ -3,5 +3,6 @@ export { default as Footer } from './footer';
3
3
  export { default as ScreenHeader } from './screen-header';
4
4
  export { default as Form } from './form';
5
5
  export { default as Masthead } from './masthead';
6
+ export { default as Modal } from './modal';
6
7
  //# sourceMappingURL=index.js.map
7
8
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var modal = require('./modal');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var modal__default = /*#__PURE__*/_interopDefault(modal);
8
+
9
+
10
+
11
+ module.exports = modal__default.default;
12
+ //# sourceMappingURL=index.cjs.map
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
@@ -0,0 +1,2 @@
1
+ export { ModalProps, default } from './modal.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { ModalProps, default } from './modal.js';
2
+ import 'react';
@@ -0,0 +1,3 @@
1
+ export { default } from './modal';
2
+ //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ require('./modal.css');
6
+ var classnames = require('../../components/helpers/classnames');
7
+
8
+ const Modal = ({
9
+ open,
10
+ onClose,
11
+ ariaLabel,
12
+ presentation = "dialog",
13
+ size = "default",
14
+ closeOnBackdrop = true,
15
+ closeOnEscape = true,
16
+ className = "",
17
+ children,
18
+ ...props
19
+ }) => {
20
+ react.useEffect(() => {
21
+ if (!open || !closeOnEscape) {
22
+ return;
23
+ }
24
+ const handleKeyDown = (event) => {
25
+ if (event.key === "Escape") {
26
+ onClose();
27
+ }
28
+ };
29
+ document.addEventListener("keydown", handleKeyDown);
30
+ return () => {
31
+ document.removeEventListener("keydown", handleKeyDown);
32
+ };
33
+ }, [open, closeOnEscape, onClose]);
34
+ if (!open) {
35
+ return null;
36
+ }
37
+ const classes = classnames.classnames("modal", className, {
38
+ "modal--wide": size === "wide",
39
+ "modal--fullscreen": presentation === "fullscreen"
40
+ });
41
+ const handleBackdropClick = () => {
42
+ if (!closeOnBackdrop) {
43
+ return;
44
+ }
45
+ onClose();
46
+ };
47
+ return /* @__PURE__ */ jsxRuntime.jsx(
48
+ "div",
49
+ {
50
+ className: classes,
51
+ onClick: handleBackdropClick,
52
+ children: /* @__PURE__ */ jsxRuntime.jsx(
53
+ "div",
54
+ {
55
+ className: "modal__content",
56
+ role: "dialog",
57
+ "aria-modal": "true",
58
+ "aria-label": ariaLabel,
59
+ onClick: (event) => {
60
+ event.stopPropagation();
61
+ },
62
+ ...props,
63
+ children
64
+ }
65
+ )
66
+ }
67
+ );
68
+ };
69
+ var modal_default = Modal;
70
+
71
+ module.exports = modal_default;
72
+ //# sourceMappingURL=modal.cjs.map
73
+ //# sourceMappingURL=modal.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/patterns/modal/modal.tsx"],"names":["useEffect","classnames","jsx"],"mappings":";;;;;;;AAeA,MAAM,QAA8B,CAAC;AAAA,EACnC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,GAAe,QAAA;AAAA,EACf,IAAA,GAAO,SAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,aAAA,EAAe;AAC3B,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyB;AAC9C,MAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,QAAA,OAAA,EAAQ;AAAA,MACV;AAAA,IACF,CAAA;AAEA,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,aAAa,CAAA;AAElD,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,aAAa,CAAA;AAAA,IACvD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,aAAA,EAAe,OAAO,CAAC,CAAA;AAEjC,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAA,GAAUC,qBAAA,CAAW,OAAA,EAAS,SAAA,EAAW;AAAA,IAC7C,eAAe,IAAA,KAAS,MAAA;AAAA,IACxB,qBAAqB,YAAA,KAAiB;AAAA,GACvC,CAAA;AAED,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,OAAA,EAAS,mBAAA;AAAA,MAET,QAAA,kBAAAA,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,gBAAA;AAAA,UACV,IAAA,EAAK,QAAA;AAAA,UACL,YAAA,EAAW,MAAA;AAAA,UACX,YAAA,EAAY,SAAA;AAAA,UACZ,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,YAAA,KAAA,CAAM,eAAA,EAAgB;AAAA,UACxB,CAAA;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"modal.cjs","sourcesContent":["import React, { useEffect } from 'react';\nimport './modal.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface ModalProps\n extends React.HTMLAttributes<HTMLDivElement> {\n open: boolean;\n onClose: () => void;\n ariaLabel: string;\n presentation?: 'dialog' | 'fullscreen';\n size?: 'default' | 'wide';\n closeOnBackdrop?: boolean;\n closeOnEscape?: boolean;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n ariaLabel,\n presentation = 'dialog',\n size = 'default',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className = '',\n children,\n ...props\n}) => {\n useEffect(() => {\n if (!open || !closeOnEscape) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open, closeOnEscape, onClose]);\n\n if (!open) {\n return null;\n }\n\n const classes = classnames('modal', className, {\n 'modal--wide': size === 'wide',\n 'modal--fullscreen': presentation === 'fullscreen',\n });\n\n const handleBackdropClick = () => {\n if (!closeOnBackdrop) {\n return;\n }\n\n onClose();\n };\n\n return (\n <div\n className={classes}\n onClick={handleBackdropClick}\n >\n <div\n className=\"modal__content\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={ariaLabel}\n onClick={(event) => {\n event.stopPropagation();\n }}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n};\n\nexport default Modal;"]}