@patternfly/react-core 5.2.0-prerelease.40 → 5.2.0-prerelease.41

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 (254) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/Modal/package.json +1 -0
  119. package/dist/dynamic/next/components/package.json +1 -1
  120. package/dist/esm/next/components/Modal/Modal.d.ts +73 -0
  121. package/dist/esm/next/components/Modal/Modal.d.ts.map +1 -0
  122. package/dist/esm/next/components/Modal/Modal.js +114 -0
  123. package/dist/esm/next/components/Modal/Modal.js.map +1 -0
  124. package/dist/esm/next/components/Modal/ModalBody.d.ts +19 -0
  125. package/dist/esm/next/components/Modal/ModalBody.d.ts.map +1 -0
  126. package/dist/esm/next/components/Modal/ModalBody.js +11 -0
  127. package/dist/esm/next/components/Modal/ModalBody.js.map +1 -0
  128. package/dist/esm/next/components/Modal/ModalBox.d.ts +21 -0
  129. package/dist/esm/next/components/Modal/ModalBox.d.ts.map +1 -0
  130. package/dist/esm/next/components/Modal/ModalBox.js +15 -0
  131. package/dist/esm/next/components/Modal/ModalBox.js.map +1 -0
  132. package/dist/esm/next/components/Modal/ModalBoxCloseButton.d.ts +14 -0
  133. package/dist/esm/next/components/Modal/ModalBoxCloseButton.d.ts.map +1 -0
  134. package/dist/esm/next/components/Modal/ModalBoxCloseButton.js +14 -0
  135. package/dist/esm/next/components/Modal/ModalBoxCloseButton.js.map +1 -0
  136. package/dist/esm/next/components/Modal/ModalBoxDescription.d.ts +11 -0
  137. package/dist/esm/next/components/Modal/ModalBoxDescription.d.ts.map +1 -0
  138. package/dist/esm/next/components/Modal/ModalBoxDescription.js +10 -0
  139. package/dist/esm/next/components/Modal/ModalBoxDescription.js.map +1 -0
  140. package/dist/esm/next/components/Modal/ModalBoxTitle.d.ts +17 -0
  141. package/dist/esm/next/components/Modal/ModalBoxTitle.d.ts.map +1 -0
  142. package/dist/esm/next/components/Modal/ModalBoxTitle.js +38 -0
  143. package/dist/esm/next/components/Modal/ModalBoxTitle.js.map +1 -0
  144. package/dist/esm/next/components/Modal/ModalContent.d.ts +42 -0
  145. package/dist/esm/next/components/Modal/ModalContent.d.ts.map +1 -0
  146. package/dist/esm/next/components/Modal/ModalContent.js +45 -0
  147. package/dist/esm/next/components/Modal/ModalContent.js.map +1 -0
  148. package/dist/esm/next/components/Modal/ModalFooter.d.ts +10 -0
  149. package/dist/esm/next/components/Modal/ModalFooter.d.ts.map +1 -0
  150. package/dist/esm/next/components/Modal/ModalFooter.js +10 -0
  151. package/dist/esm/next/components/Modal/ModalFooter.js.map +1 -0
  152. package/dist/esm/next/components/Modal/ModalHeader.d.ts +25 -0
  153. package/dist/esm/next/components/Modal/ModalHeader.d.ts.map +1 -0
  154. package/dist/esm/next/components/Modal/ModalHeader.js +21 -0
  155. package/dist/esm/next/components/Modal/ModalHeader.js.map +1 -0
  156. package/dist/esm/next/components/Modal/index.d.ts +5 -0
  157. package/dist/esm/next/components/Modal/index.d.ts.map +1 -0
  158. package/dist/esm/next/components/Modal/index.js +5 -0
  159. package/dist/esm/next/components/Modal/index.js.map +1 -0
  160. package/dist/esm/next/components/index.d.ts +1 -1
  161. package/dist/esm/next/components/index.d.ts.map +1 -1
  162. package/dist/esm/next/components/index.js +1 -1
  163. package/dist/esm/next/components/index.js.map +1 -1
  164. package/dist/js/next/components/Modal/Modal.d.ts +73 -0
  165. package/dist/js/next/components/Modal/Modal.d.ts.map +1 -0
  166. package/dist/js/next/components/Modal/Modal.js +117 -0
  167. package/dist/js/next/components/Modal/Modal.js.map +1 -0
  168. package/dist/js/next/components/Modal/ModalBody.d.ts +19 -0
  169. package/dist/js/next/components/Modal/ModalBody.d.ts.map +1 -0
  170. package/dist/js/next/components/Modal/ModalBody.js +15 -0
  171. package/dist/js/next/components/Modal/ModalBody.js.map +1 -0
  172. package/dist/js/next/components/Modal/ModalBox.d.ts +21 -0
  173. package/dist/js/next/components/Modal/ModalBox.d.ts.map +1 -0
  174. package/dist/js/next/components/Modal/ModalBox.js +19 -0
  175. package/dist/js/next/components/Modal/ModalBox.js.map +1 -0
  176. package/dist/js/next/components/Modal/ModalBoxCloseButton.d.ts +14 -0
  177. package/dist/js/next/components/Modal/ModalBoxCloseButton.d.ts.map +1 -0
  178. package/dist/js/next/components/Modal/ModalBoxCloseButton.js +18 -0
  179. package/dist/js/next/components/Modal/ModalBoxCloseButton.js.map +1 -0
  180. package/dist/js/next/components/Modal/ModalBoxDescription.d.ts +11 -0
  181. package/dist/js/next/components/Modal/ModalBoxDescription.d.ts.map +1 -0
  182. package/dist/js/next/components/Modal/ModalBoxDescription.js +14 -0
  183. package/dist/js/next/components/Modal/ModalBoxDescription.js.map +1 -0
  184. package/dist/js/next/components/Modal/ModalBoxTitle.d.ts +17 -0
  185. package/dist/js/next/components/Modal/ModalBoxTitle.d.ts.map +1 -0
  186. package/dist/js/next/components/Modal/ModalBoxTitle.js +43 -0
  187. package/dist/js/next/components/Modal/ModalBoxTitle.js.map +1 -0
  188. package/dist/js/next/components/Modal/ModalContent.d.ts +42 -0
  189. package/dist/js/next/components/Modal/ModalContent.d.ts.map +1 -0
  190. package/dist/js/next/components/Modal/ModalContent.js +49 -0
  191. package/dist/js/next/components/Modal/ModalContent.js.map +1 -0
  192. package/dist/js/next/components/Modal/ModalFooter.d.ts +10 -0
  193. package/dist/js/next/components/Modal/ModalFooter.d.ts.map +1 -0
  194. package/dist/js/next/components/Modal/ModalFooter.js +14 -0
  195. package/dist/js/next/components/Modal/ModalFooter.js.map +1 -0
  196. package/dist/js/next/components/Modal/ModalHeader.d.ts +25 -0
  197. package/dist/js/next/components/Modal/ModalHeader.d.ts.map +1 -0
  198. package/dist/js/next/components/Modal/ModalHeader.js +25 -0
  199. package/dist/js/next/components/Modal/ModalHeader.js.map +1 -0
  200. package/dist/js/next/components/Modal/index.d.ts +5 -0
  201. package/dist/js/next/components/Modal/index.d.ts.map +1 -0
  202. package/dist/js/next/components/Modal/index.js +8 -0
  203. package/dist/js/next/components/Modal/index.js.map +1 -0
  204. package/dist/js/next/components/index.d.ts +1 -1
  205. package/dist/js/next/components/index.d.ts.map +1 -1
  206. package/dist/js/next/components/index.js +1 -1
  207. package/dist/js/next/components/index.js.map +1 -1
  208. package/helpers/package.json +1 -1
  209. package/layouts/package.json +1 -1
  210. package/next/package.json +1 -1
  211. package/package.json +2 -2
  212. package/src/next/components/Modal/Modal.tsx +202 -0
  213. package/src/next/components/Modal/ModalBody.tsx +42 -0
  214. package/src/next/components/Modal/ModalBox.tsx +63 -0
  215. package/src/next/components/Modal/ModalBoxCloseButton.tsx +38 -0
  216. package/src/next/components/Modal/ModalBoxDescription.tsx +24 -0
  217. package/src/next/components/Modal/ModalBoxTitle.tsx +75 -0
  218. package/src/next/components/Modal/ModalContent.tsx +131 -0
  219. package/src/next/components/Modal/ModalFooter.tsx +23 -0
  220. package/src/next/components/Modal/ModalHeader.tsx +71 -0
  221. package/src/next/components/Modal/__tests__/Modal.test.tsx +145 -0
  222. package/src/next/components/Modal/__tests__/ModalBody.test.tsx +60 -0
  223. package/src/next/components/Modal/__tests__/ModalBox.test.tsx +58 -0
  224. package/src/next/components/Modal/__tests__/ModalBoxCloseButton.test.tsx +18 -0
  225. package/src/next/components/Modal/__tests__/ModalBoxDescription.test.tsx +8 -0
  226. package/src/next/components/Modal/__tests__/ModalBoxHeader.test.tsx +21 -0
  227. package/src/next/components/Modal/__tests__/ModalBoxTitle.test.tsx +37 -0
  228. package/src/next/components/Modal/__tests__/ModalContent.test.tsx +46 -0
  229. package/src/next/components/Modal/__tests__/ModalFooter.test.tsx +8 -0
  230. package/src/next/components/Modal/__tests__/__snapshots__/ModalBody.test.tsx.snap +12 -0
  231. package/src/next/components/Modal/__tests__/__snapshots__/ModalBox.test.tsx.snap +86 -0
  232. package/src/next/components/Modal/__tests__/__snapshots__/ModalBoxDescription.test.tsx.snap +12 -0
  233. package/src/next/components/Modal/__tests__/__snapshots__/ModalBoxHeader.test.tsx.snap +46 -0
  234. package/src/next/components/Modal/__tests__/__snapshots__/ModalBoxTitle.test.tsx.snap +218 -0
  235. package/src/next/components/Modal/__tests__/__snapshots__/ModalContent.test.tsx.snap +128 -0
  236. package/src/next/components/Modal/__tests__/__snapshots__/ModalFooter.test.tsx.snap +11 -0
  237. package/src/next/components/Modal/examples/Modal.md +148 -0
  238. package/src/next/components/Modal/examples/ModalBasic.tsx +43 -0
  239. package/src/next/components/Modal/examples/ModalCustomFocus.tsx +43 -0
  240. package/src/next/components/Modal/examples/ModalCustomHeader.tsx +58 -0
  241. package/src/next/components/Modal/examples/ModalCustomTitleIcon.tsx +54 -0
  242. package/src/next/components/Modal/examples/ModalCustomWidth.tsx +43 -0
  243. package/src/next/components/Modal/examples/ModalNoHeaderFooter.tsx +40 -0
  244. package/src/next/components/Modal/examples/ModalSize.tsx +63 -0
  245. package/src/next/components/Modal/examples/ModalTitleIcon.tsx +48 -0
  246. package/src/next/components/Modal/examples/ModalTopAligned.tsx +43 -0
  247. package/src/next/components/Modal/examples/ModalWithDescription.tsx +80 -0
  248. package/src/next/components/Modal/examples/ModalWithDropdown.tsx +105 -0
  249. package/src/next/components/Modal/examples/ModalWithForm.tsx +211 -0
  250. package/src/next/components/Modal/examples/ModalWithHelp.tsx +63 -0
  251. package/src/next/components/Modal/examples/ModalWithOverflowingContent.tsx +75 -0
  252. package/src/next/components/Modal/examples/ModalWithWizard.tsx +59 -0
  253. package/src/next/components/Modal/index.ts +4 -0
  254. package/src/next/components/index.ts +1 -1
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalBoxDescription = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const react_styles_1 = require("@patternfly/react-styles");
7
+ const modal_box_1 = tslib_1.__importDefault(require("@patternfly/react-styles/css/components/ModalBox/modal-box"));
8
+ const ModalBoxDescription = (_a) => {
9
+ var { children = null, className = '', id = '' } = _a, props = tslib_1.__rest(_a, ["children", "className", "id"]);
10
+ return (React.createElement("div", Object.assign({}, props, { id: id, className: (0, react_styles_1.css)(modal_box_1.default.modalBoxDescription, className) }), children));
11
+ };
12
+ exports.ModalBoxDescription = ModalBoxDescription;
13
+ exports.ModalBoxDescription.displayName = 'ModalBoxDescription';
14
+ //# sourceMappingURL=ModalBoxDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalBoxDescription.js","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalBoxDescription.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,2DAA+C;AAC/C,mHAAgF;AAWzE,MAAM,mBAAmB,GAAsD,CAAC,EAK5D,EAAE,EAAE;QALwD,EACrF,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,EAAE,EACd,EAAE,GAAG,EAAE,OAEkB,EADtB,KAAK,sBAJ6E,+BAKtF,CADS;IACsB,OAAA,CAC9B,6CAAS,KAAK,IAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAC1E,QAAQ,CACL,CACP,CAAA;CAAA,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AACF,2BAAmB,CAAC,WAAW,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ export declare const isVariantIcon: (icon: any) => icon is string;
3
+ export interface ModalBoxTitleProps {
4
+ /** Additional classes added to the modal box title. */
5
+ className?: string;
6
+ /** Id of the modal box title. */
7
+ id?: string;
8
+ /** Content rendered inside the modal box title. */
9
+ title: React.ReactNode;
10
+ /** Optional alert icon (or other) to show before the title. When the predefined alert types
11
+ * are used the default styling will be automatically applied. */
12
+ titleIconVariant?: 'success' | 'danger' | 'warning' | 'info' | 'custom' | React.ComponentType<any>;
13
+ /** Optional title label text for screen readers. */
14
+ titleScreenReaderText?: string;
15
+ }
16
+ export declare const ModalBoxTitle: React.FunctionComponent<ModalBoxTitleProps>;
17
+ //# sourceMappingURL=ModalBoxTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalBoxTitle.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalBoxTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,eAAO,MAAM,aAAa,SAAU,GAAG,mBACsC,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;qEACiE;IACjE,gBAAgB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnG,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CA4CrE,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalBoxTitle = exports.isVariantIcon = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const modal_box_1 = tslib_1.__importDefault(require("@patternfly/react-styles/css/components/ModalBox/modal-box"));
7
+ const react_styles_1 = require("@patternfly/react-styles");
8
+ const helpers_1 = require("../../../helpers");
9
+ const Tooltip_1 = require("../../../components/Tooltip");
10
+ const check_circle_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/check-circle-icon'));
11
+ const exclamation_circle_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/exclamation-circle-icon'));
12
+ const exclamation_triangle_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/exclamation-triangle-icon'));
13
+ const info_circle_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/info-circle-icon'));
14
+ const bell_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/bell-icon'));
15
+ const helpers_2 = require("../../../helpers");
16
+ const isVariantIcon = (icon) => ['success', 'danger', 'warning', 'info', 'custom'].includes(icon);
17
+ exports.isVariantIcon = isVariantIcon;
18
+ const ModalBoxTitle = (_a) => {
19
+ var { className, id, title, titleIconVariant, titleScreenReaderText } = _a, props = tslib_1.__rest(_a, ["className", "id", "title", "titleIconVariant", "titleScreenReaderText"]);
20
+ const [hasTooltip, setHasTooltip] = React.useState(false);
21
+ const h1 = React.useRef(null);
22
+ const label = titleScreenReaderText ||
23
+ ((0, exports.isVariantIcon)(titleIconVariant) ? `${(0, helpers_1.capitalize)(titleIconVariant)} alert:` : titleScreenReaderText);
24
+ const variantIcons = {
25
+ success: React.createElement(check_circle_icon_1.default, null),
26
+ danger: React.createElement(exclamation_circle_icon_1.default, null),
27
+ warning: React.createElement(exclamation_triangle_icon_1.default, null),
28
+ info: React.createElement(info_circle_icon_1.default, null),
29
+ custom: React.createElement(bell_icon_1.default, null)
30
+ };
31
+ const CustomIcon = !(0, exports.isVariantIcon)(titleIconVariant) && titleIconVariant;
32
+ (0, helpers_2.useIsomorphicLayoutEffect)(() => {
33
+ setHasTooltip(h1.current && h1.current.offsetWidth < h1.current.scrollWidth);
34
+ }, []);
35
+ const content = (React.createElement("h1", Object.assign({ id: id, ref: h1, className: (0, react_styles_1.css)(modal_box_1.default.modalBoxTitle, titleIconVariant && modal_box_1.default.modifiers.icon, className) }, props),
36
+ titleIconVariant && (React.createElement("span", { className: (0, react_styles_1.css)(modal_box_1.default.modalBoxTitleIcon) }, (0, exports.isVariantIcon)(titleIconVariant) ? variantIcons[titleIconVariant] : React.createElement(CustomIcon, null))),
37
+ label && React.createElement("span", { className: "pf-v5-screen-reader" }, label),
38
+ React.createElement("span", { className: (0, react_styles_1.css)(modal_box_1.default.modalBoxTitleText) }, title)));
39
+ return hasTooltip ? React.createElement(Tooltip_1.Tooltip, { content: title }, content) : content;
40
+ };
41
+ exports.ModalBoxTitle = ModalBoxTitle;
42
+ exports.ModalBoxTitle.displayName = 'ModalBoxTitle';
43
+ //# sourceMappingURL=ModalBoxTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalBoxTitle.js","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalBoxTitle.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,mHAAqF;AACrF,2DAA+C;AAC/C,8CAA8C;AAC9C,yDAAsD;AACtD,wHAAuF;AACvF,oIAAmG;AACnG,wIAAuG;AACvG,sHAAqF;AACrF,wGAAwE;AACxE,8CAA6D;AAEtD,MAAM,aAAa,GAAG,CAAC,IAAS,EAAkB,EAAE,CACzD,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAc,CAAC,CAAC;AADjE,QAAA,aAAa,iBACoD;AAgBvE,MAAM,aAAa,GAAgD,CAAC,EAOtD,EAAE,EAAE;QAPkD,EACzE,SAAS,EACT,EAAE,EACF,KAAK,EACL,gBAAgB,EAChB,qBAAqB,OAEF,EADhB,KAAK,sBANiE,yEAO1E,CADS;IAER,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAqB,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GACT,qBAAqB;QACrB,CAAC,IAAA,qBAAa,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,oBAAU,EAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACvG,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,oBAAC,2BAAe,OAAG;QAC5B,MAAM,EAAE,oBAAC,iCAAqB,OAAG;QACjC,OAAO,EAAE,oBAAC,mCAAuB,OAAG;QACpC,IAAI,EAAE,oBAAC,0BAAc,OAAG;QACxB,MAAM,EAAE,oBAAC,mBAAQ,OAAG;KACrB,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAA,qBAAa,EAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC;IAExE,IAAA,mCAAyB,EAAC,GAAG,EAAE;QAC7B,aAAa,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,CACd,0CACE,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,EAAE,EACP,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAW,CAAC,aAAa,EAAE,gBAAgB,IAAI,mBAAW,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAChG,KAAK;QAER,gBAAgB,IAAI,CACnB,8BAAM,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAW,CAAC,iBAAiB,CAAC,IAChD,IAAA,qBAAa,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,oBAAC,UAAU,OAAG,CAC7E,CACR;QACA,KAAK,IAAI,8BAAM,SAAS,EAAC,qBAAqB,IAAE,KAAK,CAAQ;QAC9D,8BAAM,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAW,CAAC,iBAAiB,CAAC,IAAG,KAAK,CAAQ,CAChE,CACN,CAAC;IAEF,OAAO,UAAU,CAAC,CAAC,CAAC,oBAAC,iBAAO,IAAC,OAAO,EAAE,KAAK,IAAG,OAAO,CAAW,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7E,CAAC,CAAC;AA5CW,QAAA,aAAa,iBA4CxB;AACF,qBAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+ import { OUIAProps } from '../../../helpers';
3
+ export interface ModalContentProps extends OUIAProps {
4
+ /** Id to use for the modal box description. This should match the ModalHeader labelId or descriptorId. */
5
+ 'aria-describedby'?: string;
6
+ /** Accessible descriptor of the modal. */
7
+ 'aria-label'?: string;
8
+ /** Id to use for the modal box label. This should include the ModalHeader labelId. */
9
+ 'aria-labelledby'?: string;
10
+ /** Id of the modal box container. */
11
+ boxId: string;
12
+ /** Content rendered inside the modal. */
13
+ children: React.ReactNode;
14
+ /** Additional classes added to the modal box. */
15
+ className?: string;
16
+ /** Flag to disable focus trap. */
17
+ disableFocusTrap?: boolean;
18
+ /** The element to focus when the modal opens. By default the first
19
+ * focusable element will receive focus.
20
+ */
21
+ elementToFocus?: HTMLElement | SVGElement | string;
22
+ /** Flag to show the modal. */
23
+ isOpen?: boolean;
24
+ /** A callback for when the close button is clicked. */
25
+ onClose?: (event: KeyboardEvent | React.MouseEvent) => void;
26
+ /** Position of the modal. By default a modal will be positioned vertically and horizontally centered. */
27
+ position?: 'default' | 'top';
28
+ /** Offset from alternate position. Can be any valid CSS length/percentage. */
29
+ positionOffset?: string;
30
+ /** Variant of the modal. */
31
+ variant?: 'small' | 'medium' | 'large' | 'default';
32
+ /** Default width of the modal. */
33
+ width?: number | string;
34
+ /** Maximum width of the modal. */
35
+ maxWidth?: number | string;
36
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
37
+ ouiaId?: number | string;
38
+ /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
39
+ ouiaSafe?: boolean;
40
+ }
41
+ export declare const ModalContent: React.FunctionComponent<ModalContentProps>;
42
+ //# sourceMappingURL=ModalContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalContent.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAgB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK3D,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,0GAA0G;IAC1G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IACnD,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5D,yGAAyG;IACzG,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC7B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACnD,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,iLAAiL;IACjL,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAiFnE,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalContent = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const helpers_1 = require("../../../helpers");
7
+ const bullseye_1 = tslib_1.__importDefault(require("@patternfly/react-styles/css/layouts/Bullseye/bullseye"));
8
+ const react_styles_1 = require("@patternfly/react-styles");
9
+ const helpers_2 = require("../../../helpers");
10
+ const Backdrop_1 = require("../../../components/Backdrop");
11
+ const ModalBoxCloseButton_1 = require("./ModalBoxCloseButton");
12
+ const ModalBox_1 = require("./ModalBox");
13
+ const ModalContent = (_a) => {
14
+ var { children, className, isOpen = false, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby, onClose, variant = 'default', position, positionOffset, width, maxWidth, boxId, disableFocusTrap = false, ouiaId, ouiaSafe = true, elementToFocus } = _a, props = tslib_1.__rest(_a, ["children", "className", "isOpen", 'aria-label', 'aria-describedby', 'aria-labelledby', "onClose", "variant", "position", "positionOffset", "width", "maxWidth", "boxId", "disableFocusTrap", "ouiaId", "ouiaSafe", "elementToFocus"]);
15
+ if (!isOpen) {
16
+ return null;
17
+ }
18
+ const ariaLabelledbyFormatted = () => {
19
+ const idRefList = [];
20
+ if (ariaLabel && boxId) {
21
+ idRefList.push(ariaLabel && boxId);
22
+ }
23
+ if (ariaLabelledby) {
24
+ idRefList.push(ariaLabelledby);
25
+ }
26
+ if (idRefList.length === 0) {
27
+ return undefined;
28
+ }
29
+ else {
30
+ return idRefList.join(' ');
31
+ }
32
+ };
33
+ const modalBox = (React.createElement(ModalBox_1.ModalBox, Object.assign({ className: (0, react_styles_1.css)(className), variant: variant, position: position, positionOffset: positionOffset, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledbyFormatted(), "aria-describedby": ariaDescribedby }, (0, helpers_2.getOUIAProps)(exports.ModalContent.displayName, ouiaId, ouiaSafe), { style: Object.assign(Object.assign({}, (width && { '--pf-v5-c-modal-box--Width': typeof width !== 'number' ? width : `${width}px` })), (maxWidth && {
34
+ '--pf-v5-c-modal-box--MaxWidth': typeof maxWidth !== 'number' ? maxWidth : `${maxWidth}px`
35
+ })) }, props, { id: boxId }),
36
+ onClose && React.createElement(ModalBoxCloseButton_1.ModalBoxCloseButton, { onClose: (event) => onClose(event), ouiaId: ouiaId }),
37
+ children));
38
+ return (React.createElement(Backdrop_1.Backdrop, null,
39
+ React.createElement(helpers_1.FocusTrap, { active: !disableFocusTrap, focusTrapOptions: {
40
+ clickOutsideDeactivates: true,
41
+ tabbableOptions: { displayCheck: 'none' },
42
+ // FocusTrap's initialFocus can accept false as a value to prevent initial focus.
43
+ // We want to prevent this in case false is ever passed in.
44
+ initialFocus: elementToFocus || undefined
45
+ }, className: (0, react_styles_1.css)(bullseye_1.default.bullseye) }, modalBox)));
46
+ };
47
+ exports.ModalContent = ModalContent;
48
+ exports.ModalContent.displayName = 'ModalContent';
49
+ //# sourceMappingURL=ModalContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalContent.js","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalContent.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,8CAA6C;AAC7C,8GAAoF;AACpF,2DAA+C;AAC/C,8CAA2D;AAC3D,2DAAwD;AACxD,+DAA4D;AAC5D,yCAAsC;AAyC/B,MAAM,YAAY,GAA+C,CAAC,EAmBrD,EAAE,EAAE;QAnBiD,EACvE,QAAQ,EACR,SAAS,EACT,MAAM,GAAG,KAAK,EACd,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,eAAe,EACnC,iBAAiB,EAAE,cAAc,EACjC,OAAO,EACP,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,cAAc,EACd,KAAK,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,GAAG,KAAK,EACxB,MAAM,EACN,QAAQ,GAAG,IAAI,EACf,cAAc,OAEI,EADf,KAAK,sBAlB+D,sOAmBxE,CADS;IAER,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,MAAM,uBAAuB,GAAG,GAAW,EAAE;QAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,SAAS,IAAI,KAAK,EAAE;YACtB,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;SACpC;QACD,IAAI,cAAc,EAAE;YAClB,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAChC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CACf,oBAAC,mBAAQ,kBACP,SAAS,EAAE,IAAA,kBAAG,EAAC,SAAS,CAAC,EACzB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,gBAClB,SAAS,qBACJ,uBAAuB,EAAE,sBACxB,eAAe,IAC7B,IAAA,sBAAY,EAAC,oBAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,IAC5D,KAAK,EACH,gCACK,CAAC,KAAK,IAAI,EAAE,4BAA4B,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAC7F,CAAC,QAAQ,IAAI;YACd,+BAA+B,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI;SAC3F,CAAC,CACoB,IAEtB,KAAK,IACT,EAAE,EAAE,KAAK;QAER,OAAO,IAAI,oBAAC,yCAAmB,IAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI;QACtF,QAAQ,CACA,CACZ,CAAC;IACF,OAAO,CACL,oBAAC,mBAAQ;QACP,oBAAC,mBAAS,IACR,MAAM,EAAE,CAAC,gBAAgB,EACzB,gBAAgB,EAAE;gBAChB,uBAAuB,EAAE,IAAI;gBAC7B,eAAe,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;gBACzC,iFAAiF;gBACjF,2DAA2D;gBAC3D,YAAY,EAAE,cAAc,IAAI,SAAS;aAC1C,EACD,SAAS,EAAE,IAAA,kBAAG,EAAC,kBAAc,CAAC,QAAQ,CAAC,IAEtC,QAAQ,CACC,CACH,CACZ,CAAC;AACJ,CAAC,CAAC;AAjFW,QAAA,YAAY,gBAiFvB;AACF,oBAAY,CAAC,WAAW,GAAG,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ /** Renders content in the footer of the modal */
3
+ export interface ModalFooterProps {
4
+ /** Content rendered inside the modal footer. */
5
+ children?: React.ReactNode;
6
+ /** Additional classes added to the modal footer. */
7
+ className?: string;
8
+ }
9
+ export declare const ModalFooter: React.FunctionComponent<ModalFooterProps>;
10
+ //# sourceMappingURL=ModalFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalFooter.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iDAAiD;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAQjE,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalFooter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const react_styles_1 = require("@patternfly/react-styles");
7
+ const modal_box_1 = tslib_1.__importDefault(require("@patternfly/react-styles/css/components/ModalBox/modal-box"));
8
+ const ModalFooter = (_a) => {
9
+ var { children, className } = _a, props = tslib_1.__rest(_a, ["children", "className"]);
10
+ return (React.createElement("footer", Object.assign({}, props, { className: (0, react_styles_1.css)(modal_box_1.default.modalBoxFooter, className) }), children));
11
+ };
12
+ exports.ModalFooter = ModalFooter;
13
+ exports.ModalFooter.displayName = 'ModalFooter';
14
+ //# sourceMappingURL=ModalFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalFooter.js","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalFooter.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,2DAA+C;AAC/C,mHAAgF;AAWzE,MAAM,WAAW,GAA8C,CAAC,EAIpD,EAAE,EAAE;QAJgD,EACrE,QAAQ,EACR,SAAS,OAEQ,EADd,KAAK,sBAH6D,yBAItE,CADS;IACc,OAAA,CACtB,gDAAY,KAAK,IAAE,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAM,CAAC,cAAc,EAAE,SAAS,CAAC,KAChE,QAAQ,CACF,CACV,CAAA;CAAA,CAAC;AARW,QAAA,WAAW,eAQtB;AACF,mBAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ /** Renders content in the header of the modal */
3
+ export interface ModalHeaderProps {
4
+ /** Custom content rendered inside the modal header. If children are supplied then the tile, tileIconVariant and titleScreenReaderText props are ignored. */
5
+ children?: React.ReactNode;
6
+ /** Additional classes added to the modal header. */
7
+ className?: string;
8
+ /** Description of the modal. */
9
+ description?: React.ReactNode;
10
+ /** Id of the modal description. */
11
+ descriptorId?: string;
12
+ /** Optional help section for the modal header. */
13
+ help?: React.ReactNode;
14
+ /** Id of the modal title. */
15
+ labelId?: string;
16
+ /** Content rendered inside the modal title. */
17
+ title?: React.ReactNode;
18
+ /** Optional alert icon (or other) to show before the title. When the predefined alert types
19
+ * are used the default styling will be automatically applied. */
20
+ titleIconVariant?: 'success' | 'danger' | 'warning' | 'info' | 'custom' | React.ComponentType<any>;
21
+ /** Optional title label text for screen readers. */
22
+ titleScreenReaderText?: string;
23
+ }
24
+ export declare const ModalHeader: React.FunctionComponent<ModalHeaderProps>;
25
+ //# sourceMappingURL=ModalHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,iDAAiD;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,4JAA4J;IAC5J,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;qEACiE;IACjE,gBAAgB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnG,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAuCjE,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalHeader = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const react_styles_1 = require("@patternfly/react-styles");
7
+ const modal_box_1 = tslib_1.__importDefault(require("@patternfly/react-styles/css/components/ModalBox/modal-box"));
8
+ const ModalBoxDescription_1 = require("./ModalBoxDescription");
9
+ const ModalBoxTitle_1 = require("./ModalBoxTitle");
10
+ const ModalHeader = (_a) => {
11
+ var { children, className, descriptorId, description, labelId, title, titleIconVariant, titleScreenReaderText, help } = _a, props = tslib_1.__rest(_a, ["children", "className", "descriptorId", "description", "labelId", "title", "titleIconVariant", "titleScreenReaderText", "help"]);
12
+ const headerContent = children ? (children) : (React.createElement(React.Fragment, null,
13
+ React.createElement(ModalBoxTitle_1.ModalBoxTitle, { title: title, titleIconVariant: titleIconVariant, titleScreenReaderText: titleScreenReaderText, id: labelId }),
14
+ description && React.createElement(ModalBoxDescription_1.ModalBoxDescription, { id: descriptorId }, description)));
15
+ // TODO: apply variant modifier for icon styling. Core fix needed first. similar to this:
16
+ // className={css(className, isVariantIcon(titleIconVariant) && modalStyles.modifiers[titleIconVariant])}
17
+ return (React.createElement("header", Object.assign({ className: (0, react_styles_1.css)(modal_box_1.default.modalBoxHeader, help && modal_box_1.default.modifiers.help, className) }, props),
18
+ help && (React.createElement(React.Fragment, null,
19
+ React.createElement("div", { className: (0, react_styles_1.css)(modal_box_1.default.modalBoxHeaderMain) }, headerContent),
20
+ React.createElement("div", { className: `${modal_box_1.default.modalBoxHeader}-help` }, help))),
21
+ !help && headerContent));
22
+ };
23
+ exports.ModalHeader = ModalHeader;
24
+ exports.ModalHeader.displayName = 'ModalHeader';
25
+ //# sourceMappingURL=ModalHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalHeader.js","sourceRoot":"","sources":["../../../../../src/next/components/Modal/ModalHeader.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAC/B,2DAA+C;AAC/C,mHAAgF;AAChF,+DAA4D;AAC5D,mDAAgD;AA0BzC,MAAM,WAAW,GAA8C,CAAC,EAWpD,EAAE,EAAE;QAXgD,EACrE,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,qBAAqB,EACrB,IAAI,OAEa,EADd,KAAK,sBAV6D,iIAWtE,CADS;IAER,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAC/B,QAAQ,CACT,CAAC,CAAC,CAAC,CACF;QACE,oBAAC,6BAAa,IACZ,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,EAAE,EAAE,OAAO,GACX;QACD,WAAW,IAAI,oBAAC,yCAAmB,IAAC,EAAE,EAAE,YAAY,IAAG,WAAW,CAAuB,CACzF,CACJ,CAAC;IAEF,2FAA2F;IAC3F,yGAAyG;IACzG,OAAO,CACL,8CAAQ,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAM,CAAC,cAAc,EAAE,IAAI,IAAI,mBAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAM,KAAK;QAC/F,IAAI,IAAI,CACP;YACE,6BAAK,SAAS,EAAE,IAAA,kBAAG,EAAC,mBAAM,CAAC,kBAAkB,CAAC,IAAG,aAAa,CAAO;YACrE,6BAAK,SAAS,EAAE,GAAG,mBAAM,CAAC,cAAc,OAAO,IAAG,IAAI,CAAO,CAC5D,CACJ;QACA,CAAC,IAAI,IAAI,aAAa,CAChB,CACV,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,WAAW,eAuCtB;AACF,mBAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './Modal';
2
+ export * from './ModalBody';
3
+ export * from './ModalHeader';
4
+ export * from './ModalFooter';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Modal/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Modal"), exports);
5
+ tslib_1.__exportStar(require("./ModalBody"), exports);
6
+ tslib_1.__exportStar(require("./ModalHeader"), exports);
7
+ tslib_1.__exportStar(require("./ModalFooter"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/next/components/Modal/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,sDAA4B;AAC5B,wDAA8B;AAC9B,wDAA8B"}
@@ -1,2 +1,2 @@
1
- export * from './';
1
+ export * from './Modal';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/next/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,IAAI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/next/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./"), exports);
4
+ tslib_1.__exportStar(require("./Modal"), exports);
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/next/components/index.ts"],"names":[],"mappings":";;;AAAA,6CAAmB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/next/components/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB"}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.2.0-prerelease.39","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.2.0-prerelease.40","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.2.0-prerelease.39","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.2.0-prerelease.40","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.2.0-prerelease.39","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.2.0-prerelease.40","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.2.0-prerelease.40",
3
+ "version": "5.2.0-prerelease.41",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -71,5 +71,5 @@
71
71
  "react": "^17 || ^18",
72
72
  "react-dom": "^17 || ^18"
73
73
  },
74
- "gitHead": "01b0155542e7cfeed4f5197f3cb9ecc0d6f98d56"
74
+ "gitHead": "c90c7f26330e3d94ae5927318060b6d2a7faeef6"
75
75
  }
@@ -0,0 +1,202 @@
1
+ import * as React from 'react';
2
+ import * as ReactDOM from 'react-dom';
3
+ import { canUseDOM, KeyTypes, PickOptional } from '../../../helpers';
4
+ import { css } from '@patternfly/react-styles';
5
+ import styles from '@patternfly/react-styles/css/components/Backdrop/backdrop';
6
+ import { ModalContent } from './ModalContent';
7
+ import { OUIAProps, getDefaultOUIAId } from '../../../helpers';
8
+
9
+ export interface ModalProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
10
+ /** The parent container to append the modal to. Defaults to "document.body". */
11
+ appendTo?: HTMLElement | (() => HTMLElement);
12
+ /** Id to use for the modal box description. This should match the ModalHeader labelId or descriptorId. */
13
+ 'aria-describedby'?: string;
14
+ /** Adds an accessible name to the modal when there is no title in the ModalHeader. */
15
+ 'aria-label'?: string;
16
+ /** Id to use for the modal box label. This should include the ModalHeader labelId. */
17
+ 'aria-labelledby'?: string;
18
+ /** Content rendered inside the modal. */
19
+ children: React.ReactNode;
20
+ /** Additional classes added to the modal. */
21
+ className?: string;
22
+ /** Flag to disable focus trap. */
23
+ disableFocusTrap?: boolean;
24
+ /** The element to focus when the modal opens. By default the first
25
+ * focusable element will receive focus.
26
+ */
27
+ elementToFocus?: HTMLElement | SVGElement | string;
28
+ /** An id to use for the modal box container. */
29
+ id?: string;
30
+ /** Flag to show the modal. */
31
+ isOpen?: boolean;
32
+ /** Add callback for when the close button is clicked. This prop needs to be passed to render the close button */
33
+ onClose?: (event: KeyboardEvent | React.MouseEvent) => void;
34
+ /** Modal handles pressing of the escape key and closes the modal. If you want to handle
35
+ * this yourself you can use this callback function. */
36
+ onEscapePress?: (event: KeyboardEvent) => void;
37
+ /** Position of the modal. By default a modal will be positioned vertically and horizontally centered. */
38
+ position?: 'default' | 'top';
39
+ /** Offset from alternate position. Can be any valid CSS length/percentage. */
40
+ positionOffset?: string;
41
+ /** Variant of the modal. */
42
+ variant?: 'small' | 'medium' | 'large' | 'default';
43
+ /** Default width of the modal. */
44
+ width?: number | string;
45
+ /** Maximum width of the modal. */
46
+ maxWidth?: number | string;
47
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
48
+ ouiaId?: number | string;
49
+ /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
50
+ ouiaSafe?: boolean;
51
+ }
52
+
53
+ export enum ModalVariant {
54
+ small = 'small',
55
+ medium = 'medium',
56
+ large = 'large',
57
+ default = 'default'
58
+ }
59
+
60
+ interface ModalState {
61
+ container: HTMLElement;
62
+ ouiaStateId: string;
63
+ }
64
+
65
+ class Modal extends React.Component<ModalProps, ModalState> {
66
+ static displayName = 'Modal';
67
+ static currentId = 0;
68
+ boxId = '';
69
+
70
+ static defaultProps: PickOptional<ModalProps> = {
71
+ isOpen: false,
72
+ variant: 'default',
73
+ appendTo: () => document.body,
74
+ ouiaSafe: true,
75
+ position: 'default'
76
+ };
77
+
78
+ constructor(props: ModalProps) {
79
+ super(props);
80
+ const boxIdNum = Modal.currentId++;
81
+ this.boxId = props.id || `pf-modal-part-${boxIdNum}`;
82
+
83
+ this.state = {
84
+ container: undefined,
85
+ ouiaStateId: getDefaultOUIAId(Modal.displayName, props.variant)
86
+ };
87
+ }
88
+
89
+ handleEscKeyClick = (event: KeyboardEvent): void => {
90
+ const { onEscapePress } = this.props;
91
+ if (event.key === KeyTypes.Escape && this.props.isOpen) {
92
+ onEscapePress ? onEscapePress(event) : this.props.onClose?.(event);
93
+ }
94
+ };
95
+
96
+ getElement = (appendTo: HTMLElement | (() => HTMLElement)) => {
97
+ if (typeof appendTo === 'function') {
98
+ return appendTo();
99
+ }
100
+ return appendTo || document.body;
101
+ };
102
+
103
+ toggleSiblingsFromScreenReaders = (hide: boolean) => {
104
+ const { appendTo } = this.props;
105
+ const target: HTMLElement = this.getElement(appendTo);
106
+ const bodyChildren = target.children;
107
+ for (const child of Array.from(bodyChildren)) {
108
+ if (child !== this.state.container) {
109
+ hide ? child.setAttribute('aria-hidden', '' + hide) : child.removeAttribute('aria-hidden');
110
+ }
111
+ }
112
+ };
113
+
114
+ isEmpty = (value: string | null | undefined) => value === null || value === undefined || value === '';
115
+
116
+ componentDidMount() {
117
+ const {
118
+ appendTo,
119
+ 'aria-describedby': ariaDescribedby,
120
+ 'aria-label': ariaLabel,
121
+ 'aria-labelledby': ariaLabelledby
122
+ } = this.props;
123
+ const target: HTMLElement = this.getElement(appendTo);
124
+ const container = document.createElement('div');
125
+ this.setState({ container });
126
+ target.appendChild(container);
127
+ target.addEventListener('keydown', this.handleEscKeyClick, false);
128
+
129
+ if (this.props.isOpen) {
130
+ target.classList.add(css(styles.backdropOpen));
131
+ } else {
132
+ target.classList.remove(css(styles.backdropOpen));
133
+ }
134
+
135
+ if (!ariaDescribedby && !ariaLabel && !ariaLabelledby) {
136
+ // eslint-disable-next-line no-console
137
+ console.error('Modal: Specify at least one of: aria-describedby, aria-label, aria-labelledby.');
138
+ }
139
+ }
140
+
141
+ componentDidUpdate() {
142
+ const { appendTo } = this.props;
143
+ const target: HTMLElement = this.getElement(appendTo);
144
+ if (this.props.isOpen) {
145
+ target.classList.add(css(styles.backdropOpen));
146
+ this.toggleSiblingsFromScreenReaders(true);
147
+ } else {
148
+ target.classList.remove(css(styles.backdropOpen));
149
+ this.toggleSiblingsFromScreenReaders(false);
150
+ }
151
+ }
152
+
153
+ componentWillUnmount() {
154
+ const { appendTo } = this.props;
155
+ const target: HTMLElement = this.getElement(appendTo);
156
+ if (this.state.container) {
157
+ target.removeChild(this.state.container);
158
+ }
159
+ target.removeEventListener('keydown', this.handleEscKeyClick, false);
160
+ target.classList.remove(css(styles.backdropOpen));
161
+ this.toggleSiblingsFromScreenReaders(false);
162
+ }
163
+
164
+ render() {
165
+ const {
166
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
167
+ appendTo,
168
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
169
+ onEscapePress,
170
+ 'aria-labelledby': ariaLabelledby,
171
+ 'aria-label': ariaLabel,
172
+ 'aria-describedby': ariaDescribedby,
173
+ ouiaId,
174
+ ouiaSafe,
175
+ position,
176
+ elementToFocus,
177
+ ...props
178
+ } = this.props;
179
+ const { container } = this.state;
180
+
181
+ if (!canUseDOM || !container) {
182
+ return null;
183
+ }
184
+
185
+ return ReactDOM.createPortal(
186
+ <ModalContent
187
+ boxId={this.boxId}
188
+ aria-label={ariaLabel}
189
+ aria-describedby={ariaDescribedby}
190
+ aria-labelledby={ariaLabelledby}
191
+ ouiaId={ouiaId !== undefined ? ouiaId : this.state.ouiaStateId}
192
+ ouiaSafe={ouiaSafe}
193
+ position={position}
194
+ elementToFocus={elementToFocus}
195
+ {...props}
196
+ />,
197
+ container
198
+ ) as React.ReactElement;
199
+ }
200
+ }
201
+
202
+ export { Modal };
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+ import { css } from '@patternfly/react-styles';
3
+ import styles from '@patternfly/react-styles/css/components/ModalBox/modal-box';
4
+
5
+ /** Renders content in the body of the modal */
6
+
7
+ export interface ModalBodyProps extends React.HTMLProps<HTMLDivElement> {
8
+ /** Content rendered inside the modal body. */
9
+ children?: React.ReactNode;
10
+ /** Additional classes added to the modal body. */
11
+ className?: string;
12
+ /** Accessible label applied to the modal body. This should be used to communicate
13
+ * important information about the modal body div element if needed, such as when it is scrollable.
14
+ */
15
+ 'aria-label'?: string;
16
+ /** Accessible role applied to the modal body. This will default to "region" if the
17
+ * aria-label property is passed in. Set to a more appropriate role as applicable
18
+ * based on the modal content and context.
19
+ */
20
+ role?: string;
21
+ }
22
+
23
+ export const ModalBody: React.FunctionComponent<ModalBodyProps> = ({
24
+ children,
25
+ className,
26
+ 'aria-label': ariaLabel,
27
+ role,
28
+ ...props
29
+ }: ModalBodyProps) => {
30
+ const defaultModalBodyRole = ariaLabel ? 'region' : undefined;
31
+ return (
32
+ <div
33
+ aria-label={ariaLabel}
34
+ role={role || defaultModalBodyRole}
35
+ className={css(styles.modalBoxBody, className)}
36
+ {...props}
37
+ >
38
+ {children}
39
+ </div>
40
+ );
41
+ };
42
+ ModalBody.displayName = 'ModalBody';