@openedx/paragon 23.0.0-alpha.4 → 23.0.0-alpha.6

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 (68) hide show
  1. package/dist/Card/BaseCard.d.ts +18 -0
  2. package/dist/Card/BaseCard.js +53 -0
  3. package/dist/Card/BaseCard.js.map +1 -0
  4. package/dist/Card/index.js +1 -1
  5. package/dist/Card/index.js.map +1 -1
  6. package/dist/Card/index.scss +2 -0
  7. package/dist/Container/index.d.ts +16 -0
  8. package/dist/Container/index.js +15 -13
  9. package/dist/Container/index.js.map +1 -1
  10. package/dist/IconButton/index.js +1 -1
  11. package/dist/IconButton/index.js.map +1 -1
  12. package/dist/Menu/SelectMenu.js +9 -4
  13. package/dist/Menu/SelectMenu.js.map +1 -1
  14. package/dist/Modal/ModalContext.d.ts +15 -0
  15. package/dist/Modal/ModalContext.js +7 -14
  16. package/dist/Modal/ModalContext.js.map +1 -1
  17. package/dist/Modal/ModalDialog.d.ts +110 -0
  18. package/dist/Modal/ModalDialog.js +23 -21
  19. package/dist/Modal/ModalDialog.js.map +1 -1
  20. package/dist/Modal/ModalDialogHeader.d.ts +10 -0
  21. package/dist/Modal/ModalDialogHeader.js +6 -7
  22. package/dist/Modal/ModalDialogHeader.js.map +1 -1
  23. package/dist/Modal/ModalLayer.d.ts +53 -0
  24. package/dist/Modal/ModalLayer.js +5 -14
  25. package/dist/Modal/ModalLayer.js.map +1 -1
  26. package/dist/Modal/Portal.d.ts +11 -0
  27. package/dist/Modal/Portal.js +5 -6
  28. package/dist/Modal/Portal.js.map +1 -1
  29. package/dist/core.css +2 -0
  30. package/dist/core.css.map +1 -1
  31. package/dist/core.min.css +1 -1
  32. package/dist/hooks/useArrowKeyNavigation.js +2 -3
  33. package/dist/hooks/useArrowKeyNavigation.js.map +1 -1
  34. package/dist/index.d.ts +19 -5
  35. package/dist/index.js +5 -5
  36. package/icons/es5/Newsstand.js +15 -0
  37. package/icons/es5/index.js +1 -0
  38. package/icons/es5/index.ts +1 -0
  39. package/icons/jsx/Newsstand.jsx +17 -0
  40. package/icons/jsx/index.jsx +1 -0
  41. package/icons/svg/newsstand.svg +1 -0
  42. package/package.json +2 -2
  43. package/src/Card/BaseCard.tsx +92 -0
  44. package/src/Card/README.md +0 -2
  45. package/src/Card/index.jsx +1 -1
  46. package/src/Card/index.scss +2 -0
  47. package/src/Card/tests/BaseCard.test.jsx +82 -0
  48. package/src/Container/{Container.test.jsx → Container.test.tsx} +14 -8
  49. package/src/Container/README.md +4 -0
  50. package/src/Container/index.tsx +64 -0
  51. package/src/DataTable/selection/tests/ControlledSelectHeader.test.jsx +7 -7
  52. package/src/IconButton/index.tsx +1 -1
  53. package/src/Menu/SelectMenu.jsx +5 -0
  54. package/src/Menu/SelectMenu.test.jsx +6 -0
  55. package/src/Menu/select-menu.md +8 -0
  56. package/src/Modal/{ModalContext.jsx → ModalContext.tsx} +19 -16
  57. package/src/Modal/{ModalDialog.jsx → ModalDialog.tsx} +50 -23
  58. package/src/Modal/{ModalDialogHeader.jsx → ModalDialogHeader.tsx} +17 -11
  59. package/src/Modal/{ModalLayer.jsx → ModalLayer.tsx} +17 -17
  60. package/src/Modal/{Portal.jsx → Portal.tsx} +10 -7
  61. package/src/Modal/tests/{ModalDialog.test.jsx → ModalDialog.test.tsx} +16 -10
  62. package/src/Modal/tests/{ModalLayer.test.jsx → ModalLayer.test.tsx} +5 -5
  63. package/src/Modal/tests/{Portal.test.jsx → Portal.test.tsx} +3 -3
  64. package/src/hooks/useArrowKeyNavigation.jsx +1 -2
  65. package/src/index.d.ts +19 -5
  66. package/src/index.js +5 -5
  67. package/src/Container/index.jsx +0 -49
  68. /package/src/Truncate/{Truncate.test.js → utils.test.js} +0 -0
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { ComponentWithAsProp, BsPropsWithAs } from '../utils/types/bootstrap';
3
+ declare const colorVariants: readonly ["primary", "secondary", "success", "danger", "warning", "info", "dark", "light"];
4
+ declare const textVariants: readonly ["white", "muted"];
5
+ type ColorVariant = typeof colorVariants[number];
6
+ type TextVariant = typeof textVariants[number];
7
+ interface Props extends BsPropsWithAs {
8
+ prefix?: string;
9
+ bgColor?: ColorVariant;
10
+ textColor?: ColorVariant | TextVariant;
11
+ borderColor?: ColorVariant;
12
+ hasBody?: boolean;
13
+ className?: string;
14
+ children: React.ReactNode;
15
+ }
16
+ type BaseCardType = ComponentWithAsProp<'div', Props>;
17
+ declare const BaseCard: BaseCardType;
18
+ export default BaseCard;
@@ -0,0 +1,53 @@
1
+ var _excluded = ["prefix", "className", "bgColor", "textColor", "borderColor", "hasBody", "children", "as"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
+ import React from 'react';
6
+ import PropTypes from 'prop-types';
7
+ import classNames from 'classnames';
8
+ // @ts-ignore
9
+ import CardBody from './CardBody';
10
+ var BASE_CARD_CLASSNAME = 'card';
11
+ var colorVariants = ['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light'];
12
+ var textVariants = ['white', 'muted'];
13
+ var BaseCard = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
14
+ var prefix = _ref.prefix,
15
+ className = _ref.className,
16
+ bgColor = _ref.bgColor,
17
+ textColor = _ref.textColor,
18
+ borderColor = _ref.borderColor,
19
+ _ref$hasBody = _ref.hasBody,
20
+ hasBody = _ref$hasBody === void 0 ? false : _ref$hasBody,
21
+ children = _ref.children,
22
+ _ref$as = _ref.as,
23
+ Component = _ref$as === void 0 ? 'div' : _ref$as,
24
+ props = _objectWithoutProperties(_ref, _excluded);
25
+ var classes = classNames(className, prefix ? "".concat(prefix, "-").concat(BASE_CARD_CLASSNAME) : BASE_CARD_CLASSNAME, bgColor && "bg-".concat(bgColor), textColor && "text-".concat(textColor), borderColor && "border-".concat(borderColor));
26
+ return /*#__PURE__*/React.createElement(Component, _extends({
27
+ ref: ref
28
+ }, props, {
29
+ className: classes
30
+ }), hasBody ? /*#__PURE__*/React.createElement(CardBody, null, children) : children);
31
+ });
32
+
33
+ /* eslint-disable react/require-default-props */
34
+ BaseCard.propTypes = {
35
+ /** Prefix for component CSS classes. */
36
+ prefix: PropTypes.string,
37
+ /** Background color of the card. */
38
+ bgColor: PropTypes.oneOf(colorVariants),
39
+ /** Text color of the card. */
40
+ textColor: PropTypes.oneOf([].concat(colorVariants, textVariants)),
41
+ /** Border color of the card. */
42
+ borderColor: PropTypes.oneOf(colorVariants),
43
+ /** Determines whether the card should render its children inside a `CardBody` wrapper. */
44
+ hasBody: PropTypes.bool,
45
+ /** Set a custom element for this component. */
46
+ as: PropTypes.elementType,
47
+ /** Additional CSS class names to apply to the card element. */
48
+ className: PropTypes.string,
49
+ /** The content to render inside the card. */
50
+ children: PropTypes.node
51
+ };
52
+ export default BaseCard;
53
+ //# sourceMappingURL=BaseCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseCard.js","names":["React","PropTypes","classNames","CardBody","BASE_CARD_CLASSNAME","colorVariants","textVariants","BaseCard","forwardRef","_ref","ref","prefix","className","bgColor","textColor","borderColor","_ref$hasBody","hasBody","children","_ref$as","as","Component","props","_objectWithoutProperties","_excluded","classes","concat","createElement","_extends","propTypes","string","oneOf","bool","elementType","node"],"sources":["../../src/Card/BaseCard.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport type { ComponentWithAsProp, BsPropsWithAs } from '../utils/types/bootstrap';\n\n// @ts-ignore\nimport CardBody from './CardBody';\n\nconst BASE_CARD_CLASSNAME = 'card';\n\nconst colorVariants = [\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'warning',\n 'info',\n 'dark',\n 'light',\n] as const;\n\nconst textVariants = [\n 'white',\n 'muted',\n] as const;\n\ntype ColorVariant = typeof colorVariants[number];\ntype TextVariant = typeof textVariants[number];\ninterface Props extends BsPropsWithAs {\n prefix?: string;\n bgColor?: ColorVariant;\n textColor?: ColorVariant | TextVariant;\n borderColor?: ColorVariant;\n hasBody?: boolean;\n className?: string;\n children: React.ReactNode;\n}\ntype BaseCardType = ComponentWithAsProp<'div', Props>;\n\nconst BaseCard : BaseCardType = React.forwardRef<HTMLDivElement, Props>(\n (\n {\n prefix,\n className,\n bgColor,\n textColor,\n borderColor,\n hasBody = false,\n children,\n as: Component = 'div',\n ...props\n },\n ref,\n ) => {\n const classes = classNames(\n className,\n prefix ? `${prefix}-${BASE_CARD_CLASSNAME}` : BASE_CARD_CLASSNAME,\n bgColor && `bg-${bgColor}`,\n textColor && `text-${textColor}`,\n borderColor && `border-${borderColor}`,\n );\n\n return (\n <Component ref={ref} {...props} className={classes}>\n {hasBody ? <CardBody>{children}</CardBody> : children}\n </Component>\n );\n },\n);\n\n/* eslint-disable react/require-default-props */\nBaseCard.propTypes = {\n /** Prefix for component CSS classes. */\n prefix: PropTypes.string,\n /** Background color of the card. */\n bgColor: PropTypes.oneOf(colorVariants),\n /** Text color of the card. */\n textColor: PropTypes.oneOf([...colorVariants, ...textVariants]),\n /** Border color of the card. */\n borderColor: PropTypes.oneOf(colorVariants),\n /** Determines whether the card should render its children inside a `CardBody` wrapper. */\n hasBody: PropTypes.bool,\n /** Set a custom element for this component. */\n as: PropTypes.elementType,\n /** Additional CSS class names to apply to the card element. */\n className: PropTypes.string,\n /** The content to render inside the card. */\n children: PropTypes.node,\n};\n\nexport default BaseCard;\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAInC;AACA,OAAOC,QAAQ,MAAM,YAAY;AAEjC,IAAMC,mBAAmB,GAAG,MAAM;AAElC,IAAMC,aAAa,GAAG,CACpB,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,CACC;AAEV,IAAMC,YAAY,GAAG,CACnB,OAAO,EACP,OAAO,CACC;AAeV,IAAMC,QAAuB,gBAAGP,KAAK,CAACQ,UAAU,CAC9C,UAAAC,IAAA,EAYEC,GAAG,EACA;EAAA,IAXDC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,WAAW,GAAAN,IAAA,CAAXM,WAAW;IAAAC,YAAA,GAAAP,IAAA,CACXQ,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IACfE,QAAQ,GAAAT,IAAA,CAARS,QAAQ;IAAAC,OAAA,GAAAV,IAAA,CACRW,EAAE;IAAEC,SAAS,GAAAF,OAAA,cAAG,KAAK,GAAAA,OAAA;IAClBG,KAAK,GAAAC,wBAAA,CAAAd,IAAA,EAAAe,SAAA;EAIV,IAAMC,OAAO,GAAGvB,UAAU,CACxBU,SAAS,EACTD,MAAM,MAAAe,MAAA,CAAMf,MAAM,OAAAe,MAAA,CAAItB,mBAAmB,IAAKA,mBAAmB,EACjES,OAAO,UAAAa,MAAA,CAAUb,OAAO,CAAE,EAC1BC,SAAS,YAAAY,MAAA,CAAYZ,SAAS,CAAE,EAChCC,WAAW,cAAAW,MAAA,CAAcX,WAAW,CACtC,CAAC;EAED,oBACEf,KAAA,CAAA2B,aAAA,CAACN,SAAS,EAAAO,QAAA;IAAClB,GAAG,EAAEA;EAAI,GAAKY,KAAK;IAAEV,SAAS,EAAEa;EAAQ,IAChDR,OAAO,gBAAGjB,KAAA,CAAA2B,aAAA,CAACxB,QAAQ,QAAEe,QAAmB,CAAC,GAAGA,QACpC,CAAC;AAEhB,CACF,CAAC;;AAED;AACAX,QAAQ,CAACsB,SAAS,GAAG;EACnB;EACAlB,MAAM,EAAEV,SAAS,CAAC6B,MAAM;EACxB;EACAjB,OAAO,EAAEZ,SAAS,CAAC8B,KAAK,CAAC1B,aAAa,CAAC;EACvC;EACAS,SAAS,EAAEb,SAAS,CAAC8B,KAAK,IAAAL,MAAA,CAAKrB,aAAa,EAAKC,YAAY,CAAC,CAAC;EAC/D;EACAS,WAAW,EAAEd,SAAS,CAAC8B,KAAK,CAAC1B,aAAa,CAAC;EAC3C;EACAY,OAAO,EAAEhB,SAAS,CAAC+B,IAAI;EACvB;EACAZ,EAAE,EAAEnB,SAAS,CAACgC,WAAW;EACzB;EACArB,SAAS,EAAEX,SAAS,CAAC6B,MAAM;EAC3B;EACAZ,QAAQ,EAAEjB,SAAS,CAACiC;AACtB,CAAC;AAED,eAAe3B,QAAQ","ignoreList":[]}
@@ -9,9 +9,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9
9
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
11
  import React from 'react';
12
- import BaseCard from 'react-bootstrap/Card';
13
12
  import PropTypes from 'prop-types';
14
13
  import classNames from 'classnames';
14
+ import BaseCard from './BaseCard';
15
15
  import CardContext, { CardContextProvider } from './CardContext';
16
16
  import CardHeader from './CardHeader';
17
17
  import CardDivider from './CardDivider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","BaseCard","PropTypes","classNames","CardContext","CardContextProvider","CardHeader","CardDivider","CardSection","CardFooter","CardImageCap","CardBody","CardStatus","withDeprecatedProps","DeprTypes","CARD_VARIANTS","Card","forwardRef","_ref","ref","orientation","isLoading","className","isClickable","muted","variant","props","_objectWithoutProperties","_excluded","resolvedVariant","createElement","_extends","_defineProperty","horizontal","clickable","concat","tabIndex","default","CardColumns","CardDeck","CardCarousel","CardImg","CardGroup","CardGrid","propTypes","string","oneOf","bool","defaultProps","_objectSpread","undefined","CardWithDeprecatedProp","deprType","REMOVED","message","Status","Header","Divider","Section","Footer","ImageCap","Context","Body"],"sources":["../../src/Card/index.jsx"],"sourcesContent":["import React from 'react';\nimport BaseCard from 'react-bootstrap/Card';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport CardContext, { CardContextProvider } from './CardContext';\nimport CardHeader from './CardHeader';\nimport CardDivider from './CardDivider';\nimport CardSection from './CardSection';\nimport CardFooter from './CardFooter';\nimport CardImageCap from './CardImageCap';\nimport CardBody from './CardBody';\nimport CardStatus from './CardStatus';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const CARD_VARIANTS = ['light', 'dark', 'muted'];\n\nconst Card = React.forwardRef(({\n orientation,\n isLoading,\n className,\n isClickable,\n muted,\n variant,\n ...props\n}, ref) => {\n const resolvedVariant = muted ? 'muted' : variant;\n\n return (\n <CardContextProvider\n orientation={orientation}\n isLoading={isLoading}\n variant={resolvedVariant}\n >\n <BaseCard\n {...props}\n className={classNames(className, 'pgn__card', {\n horizontal: orientation === 'horizontal',\n clickable: isClickable,\n [`pgn__card-${resolvedVariant}`]: resolvedVariant,\n })}\n ref={ref}\n tabIndex={isClickable ? 0 : -1}\n />\n </CardContextProvider>\n );\n});\n\nexport { default as CardColumns } from 'react-bootstrap/CardColumns';\nexport { default as CardDeck } from './CardDeck';\nexport { default as CardCarousel } from './CardCarousel/CardCarousel';\nexport { default as CardImg } from 'react-bootstrap/CardImg';\nexport { default as CardGroup } from 'react-bootstrap/CardGroup';\nexport { default as CardGrid } from './CardGrid';\n\nCard.propTypes = {\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies which orientation to use. */\n orientation: PropTypes.oneOf(['vertical', 'horizontal']),\n /** Specifies whether the `Card` is clickable, if `true` appropriate `hover` and `focus` styling will be added. */\n isClickable: PropTypes.bool,\n /** Specifies loading state. */\n isLoading: PropTypes.bool,\n /** Specifies `Card` style variant. */\n variant: PropTypes.oneOf(CARD_VARIANTS),\n /** **Deprecated**. Specifies whether `Card` uses `muted` variant. Use `variant=\"muted\"` instead. */\n muted: PropTypes.bool,\n};\n\nCard.defaultProps = {\n ...BaseCard.defaultProps,\n className: undefined,\n orientation: 'vertical',\n isClickable: false,\n variant: 'light',\n isLoading: false,\n};\n\nconst CardWithDeprecatedProp = withDeprecatedProps(Card, 'Card', {\n muted: {\n deprType: DeprTypes.REMOVED,\n message: 'Use \"variant\" prop instead, i.e. variant=\"muted\"',\n },\n});\n\nCardWithDeprecatedProp.Status = CardStatus;\nCardWithDeprecatedProp.Header = CardHeader;\nCardWithDeprecatedProp.Divider = CardDivider;\nCardWithDeprecatedProp.Section = CardSection;\nCardWithDeprecatedProp.Footer = CardFooter;\nCardWithDeprecatedProp.ImageCap = CardImageCap;\nCardWithDeprecatedProp.Context = CardContext;\nCardWithDeprecatedProp.Body = CardBody;\n\nexport default CardWithDeprecatedProp;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseCard","CardContext","CardContextProvider","CardHeader","CardDivider","CardSection","CardFooter","CardImageCap","CardBody","CardStatus","withDeprecatedProps","DeprTypes","CARD_VARIANTS","Card","forwardRef","_ref","ref","orientation","isLoading","className","isClickable","muted","variant","props","_objectWithoutProperties","_excluded","resolvedVariant","createElement","_extends","_defineProperty","horizontal","clickable","concat","tabIndex","default","CardColumns","CardDeck","CardCarousel","CardImg","CardGroup","CardGrid","propTypes","string","oneOf","bool","defaultProps","_objectSpread","undefined","CardWithDeprecatedProp","deprType","REMOVED","message","Status","Header","Divider","Section","Footer","ImageCap","Context","Body"],"sources":["../../src/Card/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseCard from './BaseCard';\nimport CardContext, { CardContextProvider } from './CardContext';\nimport CardHeader from './CardHeader';\nimport CardDivider from './CardDivider';\nimport CardSection from './CardSection';\nimport CardFooter from './CardFooter';\nimport CardImageCap from './CardImageCap';\nimport CardBody from './CardBody';\nimport CardStatus from './CardStatus';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const CARD_VARIANTS = ['light', 'dark', 'muted'];\n\nconst Card = React.forwardRef(({\n orientation,\n isLoading,\n className,\n isClickable,\n muted,\n variant,\n ...props\n}, ref) => {\n const resolvedVariant = muted ? 'muted' : variant;\n\n return (\n <CardContextProvider\n orientation={orientation}\n isLoading={isLoading}\n variant={resolvedVariant}\n >\n <BaseCard\n {...props}\n className={classNames(className, 'pgn__card', {\n horizontal: orientation === 'horizontal',\n clickable: isClickable,\n [`pgn__card-${resolvedVariant}`]: resolvedVariant,\n })}\n ref={ref}\n tabIndex={isClickable ? 0 : -1}\n />\n </CardContextProvider>\n );\n});\n\nexport { default as CardColumns } from 'react-bootstrap/CardColumns';\nexport { default as CardDeck } from './CardDeck';\nexport { default as CardCarousel } from './CardCarousel/CardCarousel';\nexport { default as CardImg } from 'react-bootstrap/CardImg';\nexport { default as CardGroup } from 'react-bootstrap/CardGroup';\nexport { default as CardGrid } from './CardGrid';\n\nCard.propTypes = {\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies which orientation to use. */\n orientation: PropTypes.oneOf(['vertical', 'horizontal']),\n /** Specifies whether the `Card` is clickable, if `true` appropriate `hover` and `focus` styling will be added. */\n isClickable: PropTypes.bool,\n /** Specifies loading state. */\n isLoading: PropTypes.bool,\n /** Specifies `Card` style variant. */\n variant: PropTypes.oneOf(CARD_VARIANTS),\n /** **Deprecated**. Specifies whether `Card` uses `muted` variant. Use `variant=\"muted\"` instead. */\n muted: PropTypes.bool,\n};\n\nCard.defaultProps = {\n ...BaseCard.defaultProps,\n className: undefined,\n orientation: 'vertical',\n isClickable: false,\n variant: 'light',\n isLoading: false,\n};\n\nconst CardWithDeprecatedProp = withDeprecatedProps(Card, 'Card', {\n muted: {\n deprType: DeprTypes.REMOVED,\n message: 'Use \"variant\" prop instead, i.e. variant=\"muted\"',\n },\n});\n\nCardWithDeprecatedProp.Status = CardStatus;\nCardWithDeprecatedProp.Header = CardHeader;\nCardWithDeprecatedProp.Divider = CardDivider;\nCardWithDeprecatedProp.Section = CardSection;\nCardWithDeprecatedProp.Footer = CardFooter;\nCardWithDeprecatedProp.ImageCap = CardImageCap;\nCardWithDeprecatedProp.Context = CardContext;\nCardWithDeprecatedProp.Body = CardBody;\n\nexport default CardWithDeprecatedProp;\n"],"mappings":"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","ignoreList":[]}
@@ -352,6 +352,8 @@ a.pgn__card {
352
352
  bottom: calc(-1 * var(--pgn-spacing-card-logo-bottom-offset-base));
353
353
  width: var(--pgn-size-card-logo-width);
354
354
  height: var(--pgn-size-card-logo-height);
355
+ object-fit: scale-down;
356
+ object-position: center center;
355
357
  border-radius: var(--pgn-size-card-border-radius-logo);
356
358
  box-shadow: var(--pgn-elevation-box-shadow-level-1);
357
359
  padding: map_get($spacers, 2);
@@ -0,0 +1,16 @@
1
+ import { type ContainerProps as RBContainerProps } from 'react-bootstrap/Container';
2
+ import type { ComponentWithAsProp } from '../utils/types/bootstrap';
3
+ declare enum ContainerSizeClass {
4
+ xs = "container-mw-xs",
5
+ sm = "container-mw-sm",
6
+ md = "container-mw-md",
7
+ lg = "container-mw-lg",
8
+ xl = "container-mw-xl"
9
+ }
10
+ export type ContainerSize = keyof typeof ContainerSizeClass;
11
+ interface ContainerProps extends RBContainerProps {
12
+ size?: ContainerSize;
13
+ }
14
+ type ContainerType = ComponentWithAsProp<'div', ContainerProps>;
15
+ declare const Container: ContainerType;
16
+ export default Container;
@@ -8,24 +8,26 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
8
8
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9
9
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
- import React, { forwardRef } from 'react';
11
+ /* eslint-disable react/require-default-props */
12
+ import React from 'react';
12
13
  import classNames from 'classnames';
13
- import RBContainer from 'react-bootstrap/Container';
14
14
  import PropTypes from 'prop-types';
15
- var SIZE_CLASS_NAMES = {
16
- xs: 'container-mw-xs',
17
- sm: 'container-mw-sm',
18
- md: 'container-mw-md',
19
- lg: 'container-mw-lg',
20
- xl: 'container-mw-xl'
21
- };
22
- var Container = /*#__PURE__*/forwardRef(function (_ref, ref) {
15
+ import RBContainer from 'react-bootstrap/Container';
16
+ var ContainerSizeClass = /*#__PURE__*/function (ContainerSizeClass) {
17
+ ContainerSizeClass["xs"] = "container-mw-xs";
18
+ ContainerSizeClass["sm"] = "container-mw-sm";
19
+ ContainerSizeClass["md"] = "container-mw-md";
20
+ ContainerSizeClass["lg"] = "container-mw-lg";
21
+ ContainerSizeClass["xl"] = "container-mw-xl";
22
+ return ContainerSizeClass;
23
+ }(ContainerSizeClass || {});
24
+ var Container = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
23
25
  var size = _ref.size,
24
26
  children = _ref.children,
25
27
  props = _objectWithoutProperties(_ref, _excluded);
26
28
  return /*#__PURE__*/React.createElement(RBContainer, _extends({}, props, {
27
29
  ref: ref,
28
- className: classNames(props.className, SIZE_CLASS_NAMES[size])
30
+ className: classNames(props.className, size && ContainerSizeClass[size])
29
31
  }), children);
30
32
  });
31
33
  Container.propTypes = _objectSpread(_objectSpread({}, RBContainer.propTypes), {}, {
@@ -35,8 +37,8 @@ Container.propTypes = _objectSpread(_objectSpread({}, RBContainer.propTypes), {}
35
37
  children: PropTypes.node,
36
38
  /** Fill all available space at any breakpoint */
37
39
  fluid: PropTypes.bool,
38
- /** Set the maximum width for the container */
39
- size: PropTypes.oneOf(Object.keys(SIZE_CLASS_NAMES)),
40
+ /** Set the maximum width for the container. Omiting the prop will remove the max-width */
41
+ size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),
40
42
  /** Overrides underlying component base CSS class name */
41
43
  bsPrefix: PropTypes.string
42
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","forwardRef","classNames","RBContainer","PropTypes","SIZE_CLASS_NAMES","xs","sm","md","lg","xl","Container","_ref","ref","size","children","props","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","_objectSpread","as","elementType","node","fluid","bool","oneOf","Object","keys","bsPrefix","string","defaultProps","undefined"],"sources":["../../src/Container/index.jsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport RBContainer from 'react-bootstrap/Container';\nimport PropTypes from 'prop-types';\n\nconst SIZE_CLASS_NAMES = {\n xs: 'container-mw-xs',\n sm: 'container-mw-sm',\n md: 'container-mw-md',\n lg: 'container-mw-lg',\n xl: 'container-mw-xl',\n};\n\nconst Container = forwardRef(({ size, children, ...props }, ref) => (\n <RBContainer\n {...props}\n ref={ref}\n className={classNames(\n props.className,\n SIZE_CLASS_NAMES[size],\n )}\n >\n {children}\n </RBContainer>\n));\n\nContainer.propTypes = {\n ...RBContainer.propTypes,\n /** Override the base element */\n as: PropTypes.elementType,\n /** Specifies the contents of the container */\n children: PropTypes.node,\n /** Fill all available space at any breakpoint */\n fluid: PropTypes.bool,\n /** Set the maximum width for the container */\n size: PropTypes.oneOf(Object.keys(SIZE_CLASS_NAMES)),\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nContainer.defaultProps = {\n as: 'div',\n children: undefined,\n fluid: true,\n size: undefined,\n bsPrefix: 'container',\n};\n\nexport default Container;\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,SAAS,MAAM,YAAY;AAElC,IAAMC,gBAAgB,GAAG;EACvBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE;AACN,CAAC;AAED,IAAMC,SAAS,gBAAGV,UAAU,CAAC,UAAAW,IAAA,EAA+BC,GAAG;EAAA,IAA/BC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAKC,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAAA,oBACtDlB,KAAA,CAAAmB,aAAA,CAAChB,WAAW,EAAAiB,QAAA,KACNJ,KAAK;IACTH,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEnB,UAAU,CACnBc,KAAK,CAACK,SAAS,EACfhB,gBAAgB,CAACS,IAAI,CACvB;EAAE,IAEDC,QACU,CAAC;AAAA,CACf,CAAC;AAEFJ,SAAS,CAACW,SAAS,GAAAC,aAAA,CAAAA,aAAA,KACdpB,WAAW,CAACmB,SAAS;EACxB;EACAE,EAAE,EAAEpB,SAAS,CAACqB,WAAW;EACzB;EACAV,QAAQ,EAAEX,SAAS,CAACsB,IAAI;EACxB;EACAC,KAAK,EAAEvB,SAAS,CAACwB,IAAI;EACrB;EACAd,IAAI,EAAEV,SAAS,CAACyB,KAAK,CAACC,MAAM,CAACC,IAAI,CAAC1B,gBAAgB,CAAC,CAAC;EACpD;EACA2B,QAAQ,EAAE5B,SAAS,CAAC6B;AAAM,EAC3B;AAEDtB,SAAS,CAACuB,YAAY,GAAG;EACvBV,EAAE,EAAE,KAAK;EACTT,QAAQ,EAAEoB,SAAS;EACnBR,KAAK,EAAE,IAAI;EACXb,IAAI,EAAEqB,SAAS;EACfH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAerB,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","classNames","PropTypes","RBContainer","ContainerSizeClass","Container","forwardRef","_ref","ref","size","children","props","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","_objectSpread","as","elementType","node","fluid","bool","oneOf","bsPrefix","string","defaultProps","undefined"],"sources":["../../src/Container/index.tsx"],"sourcesContent":["/* eslint-disable react/require-default-props */\nimport React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport RBContainer, { type ContainerProps as RBContainerProps } from 'react-bootstrap/Container';\n\nimport type { ComponentWithAsProp } from '../utils/types/bootstrap';\n\nenum ContainerSizeClass {\n xs = 'container-mw-xs',\n sm = 'container-mw-sm',\n md = 'container-mw-md',\n lg = 'container-mw-lg',\n xl = 'container-mw-xl',\n}\n\nexport type ContainerSize = keyof typeof ContainerSizeClass;\n\ninterface ContainerProps extends RBContainerProps {\n size?: ContainerSize;\n}\n\ntype ContainerType = ComponentWithAsProp<'div', ContainerProps>;\n\nconst Container: ContainerType = React.forwardRef<Element, ContainerProps>(({\n size,\n children,\n ...props\n}, ref) => (\n <RBContainer\n {...props}\n ref={ref}\n className={classNames(\n props.className,\n size && ContainerSizeClass[size],\n )}\n >\n {children}\n </RBContainer>\n));\n\nContainer.propTypes = {\n ...RBContainer.propTypes,\n /** Override the base element */\n as: PropTypes.elementType,\n /** Specifies the contents of the container */\n children: PropTypes.node,\n /** Fill all available space at any breakpoint */\n fluid: PropTypes.bool,\n /** Set the maximum width for the container. Omiting the prop will remove the max-width */\n size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nContainer.defaultProps = {\n as: 'div',\n children: undefined,\n fluid: true,\n size: undefined,\n bsPrefix: 'container',\n};\n\nexport default Container;\n"],"mappings":";;;;;;;;;;AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,WAAW,MAAmD,2BAA2B;AAAC,IAI5FC,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA,EAAlBA,kBAAkB;AAgBvB,IAAMC,SAAwB,gBAAGL,KAAK,CAACM,UAAU,CAA0B,UAAAC,IAAA,EAIxEC,GAAG;EAAA,IAHJC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACLC,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAAA,oBAERb,KAAA,CAAAc,aAAA,CAACX,WAAW,EAAAY,QAAA,KACNJ,KAAK;IACTH,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEf,UAAU,CACnBU,KAAK,CAACK,SAAS,EACfP,IAAI,IAAIL,kBAAkB,CAACK,IAAI,CACjC;EAAE,IAEDC,QACU,CAAC;AAAA,CACf,CAAC;AAEFL,SAAS,CAACY,SAAS,GAAAC,aAAA,CAAAA,aAAA,KACdf,WAAW,CAACc,SAAS;EACxB;EACAE,EAAE,EAAEjB,SAAS,CAACkB,WAAW;EACzB;EACAV,QAAQ,EAAER,SAAS,CAACmB,IAAI;EACxB;EACAC,KAAK,EAAEpB,SAAS,CAACqB,IAAI;EACrB;EACAd,IAAI,EAAEP,SAAS,CAACsB,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EACrD;EACAC,QAAQ,EAAEvB,SAAS,CAACwB;AAAM,EAC3B;AAEDrB,SAAS,CAACsB,YAAY,GAAG;EACvBR,EAAE,EAAE,KAAK;EACTT,QAAQ,EAAEkB,SAAS;EACnBN,KAAK,EAAE,IAAI;EACXb,IAAI,EAAEmB,SAAS;EACfH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAepB,SAAS","ignoreList":[]}
@@ -12,9 +12,9 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
12
12
  import React from 'react';
13
13
  import PropTypes from 'prop-types';
14
14
  import classNames from 'classnames';
15
- import Icon from '../Icon';
16
15
  import { OverlayTrigger } from '../Overlay';
17
16
  import Tooltip from '../Tooltip';
17
+ import Icon from '../Icon';
18
18
  var IconButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
19
19
  var className = _ref.className,
20
20
  alt = _ref.alt,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","Icon","OverlayTrigger","Tooltip","IconButton","forwardRef","_ref","ref","className","alt","invertColors","icon","src","iconClassNames","onClick","size","variant","iconAs","isActive","children","attrs","_objectWithoutProperties","_excluded","invert","activeStyle","concat","IconComponent","createElement","_extends","_defineProperty","type","defaultProps","undefined","propTypes","string","elementType","isRequired","bool","shape","prefix","iconName","array","func","oneOf","IconButtonWithTooltip","_ref2","tooltipPlacement","tooltipContent","props","_excluded2","placement","overlay","id","_objectSpread","node"],"sources":["../../src/IconButton/index.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { type Placement } from 'react-bootstrap/Overlay';\nimport Icon from '../Icon';\nimport { OverlayTrigger } from '../Overlay';\nimport Tooltip from '../Tooltip';\n\ninterface Props extends React.HTMLAttributes<HTMLButtonElement> {\n iconAs?: React.ComponentType<any>,\n /** Additional CSS class[es] to apply to this button */\n className?: string;\n /** Alt text for your icon. For best practice, avoid using alt text to describe\n * the image in the `IconButton`. Instead, we recommend describing the function\n * of the button. */\n alt: string;\n /** Changes icon styles for dark background */\n invertColors?: boolean;\n /** An icon component to render. Example import of a Paragon icon component:\n * `import { Check } from '@openedx/paragon/icons';`\n * */\n // Note: React.ComponentType is what we want here. React.ElementType would allow some element type strings like \"div\",\n // but we only want to allow components like 'Add' (a specific icon component function/class)\n src?: React.ComponentType;\n /** Extra class names that will be added to the icon */\n iconClassNames?: string;\n /** Click handler for the button */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n /** whether to show the `IconButton` in an active state, whose styling is distinct from default state */\n isActive?: boolean;\n /** @deprecated Using FontAwesome icons is deprecated. Instead, pass iconAs={Icon} src={...} */\n icon?: { prefix?: string; iconName?: string, icon?: any[] },\n /** Type of button (uses Bootstrap options) */\n variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand';\n /** size of button to render */\n size?: 'sm' | 'md' | 'inline';\n /** no children */\n children?: never;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, Props>(({\n className,\n alt,\n invertColors,\n icon,\n src,\n iconClassNames,\n onClick,\n size,\n variant,\n iconAs,\n isActive,\n children, // unused, just here because we don't want it to be part of 'attrs'\n ...attrs\n}, ref) => {\n const invert = invertColors ? 'inverse-' : '';\n const activeStyle = isActive ? `${variant}-` : '';\n const IconComponent = iconAs;\n\n return (\n <button\n aria-label={alt}\n className={classNames(\n 'btn-icon',\n `btn-icon-${invert}${variant}`,\n `btn-icon-${size}`,\n {\n [`btn-icon-${invert}${activeStyle}active`]: isActive,\n },\n className,\n )}\n onClick={onClick}\n type=\"button\"\n ref={ref}\n {...attrs}\n >\n <span className=\"btn-icon__icon-container\">\n {IconComponent && (\n <IconComponent\n className={classNames('btn-icon__icon', iconClassNames)}\n icon={icon as any}\n src={src}\n />\n )}\n </span>\n </button>\n );\n});\n\nIconButton.defaultProps = {\n iconAs: Icon,\n src: undefined,\n icon: undefined,\n iconClassNames: undefined,\n className: undefined,\n invertColors: false,\n variant: 'primary',\n size: 'md',\n onClick: () => {},\n isActive: false,\n children: undefined,\n};\n\nIconButton.propTypes = {\n /** A custom class name. */\n className: PropTypes.string,\n /** Component that renders the icon, currently defaults to `Icon` */\n iconAs: PropTypes.elementType as any,\n /** An icon component to render. Example import of a Paragon icon component:\n * `import { Check } from '@openedx/paragon/icons';`\n * */\n src: PropTypes.elementType as any,\n /** Alt text for your icon. For best practice, avoid using alt text to describe\n * the image in the `IconButton`. Instead, we recommend describing the function\n * of the button. */\n alt: PropTypes.string.isRequired,\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n /** Accepts a [Paragon icon](https://paragon-openedx.netlify.app/foundations/icons) */\n icon: PropTypes.shape({\n prefix: PropTypes.string,\n iconName: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n icon: PropTypes.array,\n }) as any,\n /** Extra class names that will be added to the icon */\n iconClassNames: PropTypes.string,\n /** Click handler for the button */\n onClick: PropTypes.func,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** size of button to render */\n size: PropTypes.oneOf(['sm', 'md', 'inline']),\n /** whether to show the `IconButton` in an active state, whose styling is distinct from default state */\n isActive: PropTypes.bool,\n};\n\ninterface PropsWithTooltip extends Props {\n /** choose from https://popper.js.org/docs/v2/constructors/#options */\n tooltipPlacement: Placement,\n /** any content to pass to tooltip content area */\n tooltipContent: React.ReactNode,\n}\n\n/**\n * An icon button wrapped in overlaytrigger to display a tooltip.\n */\nfunction IconButtonWithTooltip({\n tooltipPlacement, tooltipContent, ...props\n}: PropsWithTooltip) {\n const invert = props.invertColors ? 'inverse-' : '';\n return (\n <OverlayTrigger\n placement={tooltipPlacement}\n overlay={(\n <Tooltip\n id={`iconbutton-tooltip-${tooltipPlacement}`}\n variant={invert ? 'light' : undefined}\n >\n {tooltipContent}\n </Tooltip>\n )}\n >\n <IconButton {...props} />\n </OverlayTrigger>\n );\n}\n\nIconButtonWithTooltip.defaultProps = {\n ...IconButton.defaultProps,\n tooltipPlacement: 'top',\n};\n\nIconButtonWithTooltip.propTypes = {\n /** tooltip placement can be top, left, right etc, per https://popper.js.org/docs/v2/constructors/#options */\n tooltipPlacement: PropTypes.string,\n /** any valid JSX or text to be rendered as tooltip contents */\n tooltipContent: PropTypes.node.isRequired,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n};\n\n(IconButton as any).IconButtonWithTooltip = IconButtonWithTooltip;\n\nexport default IconButton as typeof IconButton & {\n IconButtonWithTooltip: typeof IconButtonWithTooltip,\n};\nexport { IconButtonWithTooltip };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","OverlayTrigger","Tooltip","Icon","IconButton","forwardRef","_ref","ref","className","alt","invertColors","icon","src","iconClassNames","onClick","size","variant","iconAs","isActive","children","attrs","_objectWithoutProperties","_excluded","invert","activeStyle","concat","IconComponent","createElement","_extends","_defineProperty","type","defaultProps","undefined","propTypes","string","elementType","isRequired","bool","shape","prefix","iconName","array","func","oneOf","IconButtonWithTooltip","_ref2","tooltipPlacement","tooltipContent","props","_excluded2","placement","overlay","id","_objectSpread","node"],"sources":["../../src/IconButton/index.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { type Placement } from 'react-bootstrap/Overlay';\nimport { OverlayTrigger } from '../Overlay';\nimport Tooltip from '../Tooltip';\nimport Icon from '../Icon';\n\ninterface Props extends React.HTMLAttributes<HTMLButtonElement> {\n iconAs?: React.ComponentType<any>,\n /** Additional CSS class[es] to apply to this button */\n className?: string;\n /** Alt text for your icon. For best practice, avoid using alt text to describe\n * the image in the `IconButton`. Instead, we recommend describing the function\n * of the button. */\n alt: string;\n /** Changes icon styles for dark background */\n invertColors?: boolean;\n /** An icon component to render. Example import of a Paragon icon component:\n * `import { Check } from '@openedx/paragon/icons';`\n * */\n // Note: React.ComponentType is what we want here. React.ElementType would allow some element type strings like \"div\",\n // but we only want to allow components like 'Add' (a specific icon component function/class)\n src?: React.ComponentType;\n /** Extra class names that will be added to the icon */\n iconClassNames?: string;\n /** Click handler for the button */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n /** whether to show the `IconButton` in an active state, whose styling is distinct from default state */\n isActive?: boolean;\n /** @deprecated Using FontAwesome icons is deprecated. Instead, pass iconAs={Icon} src={...} */\n icon?: { prefix?: string; iconName?: string, icon?: any[] },\n /** Type of button (uses Bootstrap options) */\n variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand';\n /** size of button to render */\n size?: 'sm' | 'md' | 'inline';\n /** no children */\n children?: never;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, Props>(({\n className,\n alt,\n invertColors,\n icon,\n src,\n iconClassNames,\n onClick,\n size,\n variant,\n iconAs,\n isActive,\n children, // unused, just here because we don't want it to be part of 'attrs'\n ...attrs\n}, ref) => {\n const invert = invertColors ? 'inverse-' : '';\n const activeStyle = isActive ? `${variant}-` : '';\n const IconComponent = iconAs;\n\n return (\n <button\n aria-label={alt}\n className={classNames(\n 'btn-icon',\n `btn-icon-${invert}${variant}`,\n `btn-icon-${size}`,\n {\n [`btn-icon-${invert}${activeStyle}active`]: isActive,\n },\n className,\n )}\n onClick={onClick}\n type=\"button\"\n ref={ref}\n {...attrs}\n >\n <span className=\"btn-icon__icon-container\">\n {IconComponent && (\n <IconComponent\n className={classNames('btn-icon__icon', iconClassNames)}\n icon={icon as any}\n src={src}\n />\n )}\n </span>\n </button>\n );\n});\n\nIconButton.defaultProps = {\n iconAs: Icon,\n src: undefined,\n icon: undefined,\n iconClassNames: undefined,\n className: undefined,\n invertColors: false,\n variant: 'primary',\n size: 'md',\n onClick: () => {},\n isActive: false,\n children: undefined,\n};\n\nIconButton.propTypes = {\n /** A custom class name. */\n className: PropTypes.string,\n /** Component that renders the icon, currently defaults to `Icon` */\n iconAs: PropTypes.elementType as any,\n /** An icon component to render. Example import of a Paragon icon component:\n * `import { Check } from '@openedx/paragon/icons';`\n * */\n src: PropTypes.elementType as any,\n /** Alt text for your icon. For best practice, avoid using alt text to describe\n * the image in the `IconButton`. Instead, we recommend describing the function\n * of the button. */\n alt: PropTypes.string.isRequired,\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n /** Accepts a [Paragon icon](https://paragon-openedx.netlify.app/foundations/icons) */\n icon: PropTypes.shape({\n prefix: PropTypes.string,\n iconName: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n icon: PropTypes.array,\n }) as any,\n /** Extra class names that will be added to the icon */\n iconClassNames: PropTypes.string,\n /** Click handler for the button */\n onClick: PropTypes.func,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** size of button to render */\n size: PropTypes.oneOf(['sm', 'md', 'inline']),\n /** whether to show the `IconButton` in an active state, whose styling is distinct from default state */\n isActive: PropTypes.bool,\n};\n\ninterface PropsWithTooltip extends Props {\n /** choose from https://popper.js.org/docs/v2/constructors/#options */\n tooltipPlacement: Placement,\n /** any content to pass to tooltip content area */\n tooltipContent: React.ReactNode,\n}\n\n/**\n * An icon button wrapped in overlaytrigger to display a tooltip.\n */\nfunction IconButtonWithTooltip({\n tooltipPlacement, tooltipContent, ...props\n}: PropsWithTooltip) {\n const invert = props.invertColors ? 'inverse-' : '';\n return (\n <OverlayTrigger\n placement={tooltipPlacement}\n overlay={(\n <Tooltip\n id={`iconbutton-tooltip-${tooltipPlacement}`}\n variant={invert ? 'light' : undefined}\n >\n {tooltipContent}\n </Tooltip>\n )}\n >\n <IconButton {...props} />\n </OverlayTrigger>\n );\n}\n\nIconButtonWithTooltip.defaultProps = {\n ...IconButton.defaultProps,\n tooltipPlacement: 'top',\n};\n\nIconButtonWithTooltip.propTypes = {\n /** tooltip placement can be top, left, right etc, per https://popper.js.org/docs/v2/constructors/#options */\n tooltipPlacement: PropTypes.string,\n /** any valid JSX or text to be rendered as tooltip contents */\n tooltipContent: PropTypes.node.isRequired,\n /** Type of button (uses Bootstrap options) */\n variant: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'light', 'dark', 'black', 'brand']),\n /** Changes icon styles for dark background */\n invertColors: PropTypes.bool,\n};\n\n(IconButton as any).IconButtonWithTooltip = IconButtonWithTooltip;\n\nexport default IconButton as typeof IconButton & {\n IconButtonWithTooltip: typeof IconButtonWithTooltip,\n};\nexport { IconButtonWithTooltip };\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- var _excluded = ["defaultMessage", "children", "className", "variant"];
1
+ var _excluded = ["defaultMessage", "children", "className", "variant", "disabled"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -23,6 +23,7 @@ function SelectMenu(_ref) {
23
23
  children = _ref.children,
24
24
  className = _ref.className,
25
25
  variant = _ref.variant,
26
+ disabled = _ref.disabled,
26
27
  props = _objectWithoutProperties(_ref, _excluded);
27
28
  var _useState = useState(null),
28
29
  _useState2 = _slicedToArray(_useState, 2),
@@ -106,7 +107,8 @@ function SelectMenu(_ref) {
106
107
  ref: setTriggerTarget,
107
108
  variant: variant,
108
109
  iconAfter: ExpandMore,
109
- onClick: open
110
+ onClick: open,
111
+ disabled: disabled
110
112
  }, selected !== undefined && children[selected] ? children[selected].props.children : defaultMessage), /*#__PURE__*/React.createElement("div", {
111
113
  className: "pgn__menu-select-popup"
112
114
  }, /*#__PURE__*/React.createElement(ModalPopup, {
@@ -140,12 +142,15 @@ SelectMenu.propTypes = {
140
142
  /** Specifies class name to append to the base element */
141
143
  className: PropTypes.string,
142
144
  /** Specifies variant to use. */
143
- variant: PropTypes.string
145
+ variant: PropTypes.string,
146
+ /** Specifies if the `SelectMenu` is disabled. */
147
+ disabled: PropTypes.bool
144
148
  };
145
149
  SelectMenu.defaultProps = {
146
150
  defaultMessage: SELECT_MENU_DEFAULT_MESSAGE,
147
151
  className: undefined,
148
- variant: 'outline-primary'
152
+ variant: 'outline-primary',
153
+ disabled: false
149
154
  };
150
155
  var SelectMenuWithDeprecatedProp = withDeprecatedProps(SelectMenu, 'SelectMenu', {
151
156
  isLink: {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectMenu.js","names":["React","useState","useEffect","useCallback","PropTypes","classNames","ExpandMore","Button","ModalPopup","useToggle","Menu","withDeprecatedProps","DeprTypes","SELECT_MENU_DEFAULT_MESSAGE","SelectMenu","_ref","defaultMessage","children","className","variant","props","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","triggerTarget","setTriggerTarget","focusMenuRef","useRef","itemsCollection","useMemo","Array","from","length","map","createRef","defaultIndex","i","defaultSelected","undefined","_useState3","_useState4","selected","setSelected","_useToggle","_useToggle2","isOpen","open","close","createMenuItems","Children","child","index","newProps","onClick","e","current","id","concat","toString","role","cloneElement","prevOpenRef","numItems","scrollIntoView","block","focus","preventScroll","createElement","_extends","ref","iconAfter","placement","positionRef","onClose","modifiers","name","options","padding","top","bottom","key","propTypes","string","node","isRequired","defaultProps","SelectMenuWithDeprecatedProp","isLink","deprType","MOVED_AND_FORMAT","message","newName","transform"],"sources":["../../src/Menu/SelectMenu.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { ExpandMore } from '../../icons';\nimport Button from '../Button';\nimport ModalPopup from '../Modal/ModalPopup';\nimport useToggle from '../hooks/useToggle';\nimport Menu from '.';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const SELECT_MENU_DEFAULT_MESSAGE = 'Select...';\n\nfunction SelectMenu({\n defaultMessage,\n children,\n className,\n variant,\n ...props\n}) {\n const [triggerTarget, setTriggerTarget] = useState(null);\n // this ref is used to focus the menu open button after any menu option is clicked.\n // triggerTarget.current.focus() inside the onCLick() function didn't guarantee element focus.\n const focusMenuRef = React.useRef(false);\n const itemsCollection = React.useMemo(\n () => Array.from({ length: children.length }).map(() => React.createRef()),\n [children.length],\n );\n\n const defaultIndex = useCallback(() => {\n for (let i = 0; i < children.length; i++) {\n if (children[i].props && children[i].props.defaultSelected) {\n return i;\n }\n }\n return undefined;\n }, [children]);\n\n const [selected, setSelected] = useState(defaultIndex());\n const [isOpen, open, close] = useToggle(false);\n\n const createMenuItems = () => React.Children.map(children, (child, index) => {\n const newProps = {\n onClick(e) {\n if (child.props.onClick) {\n child.props.onClick(e);\n }\n setSelected(index);\n close();\n focusMenuRef.current = true;\n },\n id: `${index.toString()}_pgn__menu-item`,\n role: 'link',\n };\n if (selected === index) {\n newProps['aria-current'] = 'page';\n }\n return React.cloneElement(child, newProps);\n });\n\n const prevOpenRef = React.useRef();\n\n useEffect(() => {\n if (isOpen && selected) {\n const numItems = children.length;\n if (numItems > 6 && selected > 1 && numItems - selected > 2) {\n // on \"middle elements\", set offset to center of block and scroll to center\n itemsCollection[selected].current.children[0].scrollIntoView({\n block: 'center',\n });\n }\n }\n // set focus on open\n if (isOpen && !prevOpenRef.current && selected) {\n itemsCollection[selected].current.children[0].focus({ preventScroll: (defaultIndex() === selected) });\n }\n if (focusMenuRef.current) {\n triggerTarget.focus();\n focusMenuRef.current = false;\n }\n prevOpenRef.current = isOpen;\n }, [isOpen, children.length, defaultIndex, itemsCollection, selected, triggerTarget]);\n\n return (\n <div className={classNames('pgn__menu-select', className)} {...props}>\n <Button\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n ref={setTriggerTarget}\n variant={variant}\n iconAfter={ExpandMore}\n onClick={open}\n >\n {selected !== undefined && children[selected] ? children[selected].props.children : defaultMessage}\n </Button>\n <div className=\"pgn__menu-select-popup\">\n <ModalPopup\n placement=\"bottom-start\"\n positionRef={triggerTarget}\n isOpen={isOpen}\n onClose={close}\n modifiers={\n [\n {\n name: 'flip',\n options: {\n padding: { top: 150, bottom: 150 },\n },\n },\n ]\n }\n >\n <Menu aria-label=\"Select Menu\">\n {createMenuItems().map((child, index) => (\n <div key={child.props.id} ref={itemsCollection[index]}>\n {child}\n </div>\n ))}\n </Menu>\n </ModalPopup>\n </div>\n </div>\n );\n}\n\nSelectMenu.propTypes = {\n /** String that is displayed for default value of the ``SelectMenu`` */\n defaultMessage: PropTypes.string,\n /** Specifies the content of the ``SelectMenu`` */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** Specifies variant to use. */\n variant: PropTypes.string,\n};\n\nSelectMenu.defaultProps = {\n defaultMessage: SELECT_MENU_DEFAULT_MESSAGE,\n className: undefined,\n variant: 'outline-primary',\n};\n\nconst SelectMenuWithDeprecatedProp = withDeprecatedProps(SelectMenu, 'SelectMenu', {\n isLink: {\n deprType: DeprTypes.MOVED_AND_FORMAT,\n message: 'Use \"variant\" prop instead, i.e. variant=\"link\"',\n newName: 'variant',\n transform: () => 'link',\n },\n});\n\nexport default SelectMenuWithDeprecatedProp;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectMenu.js","names":["React","useState","useEffect","useCallback","PropTypes","classNames","ExpandMore","Button","ModalPopup","useToggle","Menu","withDeprecatedProps","DeprTypes","SELECT_MENU_DEFAULT_MESSAGE","SelectMenu","_ref","defaultMessage","children","className","variant","disabled","props","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","triggerTarget","setTriggerTarget","focusMenuRef","useRef","itemsCollection","useMemo","Array","from","length","map","createRef","defaultIndex","i","defaultSelected","undefined","_useState3","_useState4","selected","setSelected","_useToggle","_useToggle2","isOpen","open","close","createMenuItems","Children","child","index","newProps","onClick","e","current","id","concat","toString","role","cloneElement","prevOpenRef","numItems","scrollIntoView","block","focus","preventScroll","createElement","_extends","ref","iconAfter","placement","positionRef","onClose","modifiers","name","options","padding","top","bottom","key","propTypes","string","node","isRequired","bool","defaultProps","SelectMenuWithDeprecatedProp","isLink","deprType","MOVED_AND_FORMAT","message","newName","transform"],"sources":["../../src/Menu/SelectMenu.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { ExpandMore } from '../../icons';\nimport Button from '../Button';\nimport ModalPopup from '../Modal/ModalPopup';\nimport useToggle from '../hooks/useToggle';\nimport Menu from '.';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nexport const SELECT_MENU_DEFAULT_MESSAGE = 'Select...';\n\nfunction SelectMenu({\n defaultMessage,\n children,\n className,\n variant,\n disabled,\n ...props\n}) {\n const [triggerTarget, setTriggerTarget] = useState(null);\n // this ref is used to focus the menu open button after any menu option is clicked.\n // triggerTarget.current.focus() inside the onCLick() function didn't guarantee element focus.\n const focusMenuRef = React.useRef(false);\n const itemsCollection = React.useMemo(\n () => Array.from({ length: children.length }).map(() => React.createRef()),\n [children.length],\n );\n\n const defaultIndex = useCallback(() => {\n for (let i = 0; i < children.length; i++) {\n if (children[i].props && children[i].props.defaultSelected) {\n return i;\n }\n }\n return undefined;\n }, [children]);\n\n const [selected, setSelected] = useState(defaultIndex());\n const [isOpen, open, close] = useToggle(false);\n\n const createMenuItems = () => React.Children.map(children, (child, index) => {\n const newProps = {\n onClick(e) {\n if (child.props.onClick) {\n child.props.onClick(e);\n }\n setSelected(index);\n close();\n focusMenuRef.current = true;\n },\n id: `${index.toString()}_pgn__menu-item`,\n role: 'link',\n };\n if (selected === index) {\n newProps['aria-current'] = 'page';\n }\n return React.cloneElement(child, newProps);\n });\n\n const prevOpenRef = React.useRef();\n\n useEffect(() => {\n if (isOpen && selected) {\n const numItems = children.length;\n if (numItems > 6 && selected > 1 && numItems - selected > 2) {\n // on \"middle elements\", set offset to center of block and scroll to center\n itemsCollection[selected].current.children[0].scrollIntoView({\n block: 'center',\n });\n }\n }\n // set focus on open\n if (isOpen && !prevOpenRef.current && selected) {\n itemsCollection[selected].current.children[0].focus({ preventScroll: (defaultIndex() === selected) });\n }\n if (focusMenuRef.current) {\n triggerTarget.focus();\n focusMenuRef.current = false;\n }\n prevOpenRef.current = isOpen;\n }, [isOpen, children.length, defaultIndex, itemsCollection, selected, triggerTarget]);\n\n return (\n <div className={classNames('pgn__menu-select', className)} {...props}>\n <Button\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n ref={setTriggerTarget}\n variant={variant}\n iconAfter={ExpandMore}\n onClick={open}\n disabled={disabled}\n >\n {selected !== undefined && children[selected] ? children[selected].props.children : defaultMessage}\n </Button>\n <div className=\"pgn__menu-select-popup\">\n <ModalPopup\n placement=\"bottom-start\"\n positionRef={triggerTarget}\n isOpen={isOpen}\n onClose={close}\n modifiers={\n [\n {\n name: 'flip',\n options: {\n padding: { top: 150, bottom: 150 },\n },\n },\n ]\n }\n >\n <Menu aria-label=\"Select Menu\">\n {createMenuItems().map((child, index) => (\n <div key={child.props.id} ref={itemsCollection[index]}>\n {child}\n </div>\n ))}\n </Menu>\n </ModalPopup>\n </div>\n </div>\n );\n}\n\nSelectMenu.propTypes = {\n /** String that is displayed for default value of the ``SelectMenu`` */\n defaultMessage: PropTypes.string,\n /** Specifies the content of the ``SelectMenu`` */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** Specifies variant to use. */\n variant: PropTypes.string,\n /** Specifies if the `SelectMenu` is disabled. */\n disabled: PropTypes.bool,\n};\n\nSelectMenu.defaultProps = {\n defaultMessage: SELECT_MENU_DEFAULT_MESSAGE,\n className: undefined,\n variant: 'outline-primary',\n disabled: false,\n};\n\nconst SelectMenuWithDeprecatedProp = withDeprecatedProps(SelectMenu, 'SelectMenu', {\n isLink: {\n deprType: DeprTypes.MOVED_AND_FORMAT,\n message: 'Use \"variant\" prop instead, i.e. variant=\"link\"',\n newName: 'variant',\n transform: () => 'link',\n },\n});\n\nexport default SelectMenuWithDeprecatedProp;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface ContextData {
3
+ onClose: () => void;
4
+ isOpen: boolean;
5
+ isBlocking: boolean;
6
+ }
7
+ declare const ModalContext: React.Context<ContextData>;
8
+ declare function ModalContextProvider({ onClose, isOpen, isBlocking, children, }: {
9
+ onClose: () => void;
10
+ isOpen: boolean;
11
+ isBlocking?: boolean;
12
+ children?: React.ReactNode;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ export { ModalContextProvider };
15
+ export default ModalContext;
@@ -1,13 +1,16 @@
1
1
  import React, { useMemo } from 'react';
2
- import PropTypes from 'prop-types';
3
2
  var ModalContext = /*#__PURE__*/React.createContext({
4
- onClose: function onClose() {}
3
+ onClose: function onClose() {},
4
+ isOpen: false,
5
+ isBlocking: false
5
6
  });
6
7
  function ModalContextProvider(_ref) {
7
8
  var onClose = _ref.onClose,
8
9
  isOpen = _ref.isOpen,
9
- isBlocking = _ref.isBlocking,
10
- children = _ref.children;
10
+ _ref$isBlocking = _ref.isBlocking,
11
+ isBlocking = _ref$isBlocking === void 0 ? false : _ref$isBlocking,
12
+ _ref$children = _ref.children,
13
+ children = _ref$children === void 0 ? null : _ref$children;
11
14
  var modalContextValue = useMemo(function () {
12
15
  return {
13
16
  onClose: onClose,
@@ -19,16 +22,6 @@ function ModalContextProvider(_ref) {
19
22
  value: modalContextValue
20
23
  }, children);
21
24
  }
22
- ModalContextProvider.propTypes = {
23
- children: PropTypes.node,
24
- onClose: PropTypes.func.isRequired,
25
- isBlocking: PropTypes.bool,
26
- isOpen: PropTypes.bool.isRequired
27
- };
28
- ModalContextProvider.defaultProps = {
29
- children: null,
30
- isBlocking: false
31
- };
32
25
  export { ModalContextProvider };
33
26
  export default ModalContext;
34
27
  //# sourceMappingURL=ModalContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalContext.js","names":["React","useMemo","PropTypes","ModalContext","createContext","onClose","ModalContextProvider","_ref","isOpen","isBlocking","children","modalContextValue","createElement","Provider","value","propTypes","node","func","isRequired","bool","defaultProps"],"sources":["../../src/Modal/ModalContext.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst ModalContext = React.createContext({\n onClose: () => {},\n});\n\nfunction ModalContextProvider({\n onClose, isOpen, isBlocking, children,\n}) {\n const modalContextValue = useMemo(\n () => ({ onClose, isOpen, isBlocking }),\n [onClose, isOpen, isBlocking],\n );\n\n return (\n <ModalContext.Provider value={modalContextValue}>\n {children}\n </ModalContext.Provider>\n );\n}\n\nModalContextProvider.propTypes = {\n children: PropTypes.node,\n onClose: PropTypes.func.isRequired,\n isBlocking: PropTypes.bool,\n isOpen: PropTypes.bool.isRequired,\n};\n\nModalContextProvider.defaultProps = {\n children: null,\n isBlocking: false,\n};\n\nexport { ModalContextProvider };\nexport default ModalContext;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,SAAS,MAAM,YAAY;AAElC,IAAMC,YAAY,gBAAGH,KAAK,CAACI,aAAa,CAAC;EACvCC,OAAO,EAAE,SAAAA,QAAA,EAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAASC,oBAAoBA,CAAAC,IAAA,EAE1B;EAAA,IADDF,OAAO,GAAAE,IAAA,CAAPF,OAAO;IAAEG,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAErC,IAAMC,iBAAiB,GAAGV,OAAO,CAC/B;IAAA,OAAO;MAAEI,OAAO,EAAPA,OAAO;MAAEG,MAAM,EAANA,MAAM;MAAEC,UAAU,EAAVA;IAAW,CAAC;EAAA,CAAC,EACvC,CAACJ,OAAO,EAAEG,MAAM,EAAEC,UAAU,CAC9B,CAAC;EAED,oBACET,KAAA,CAAAY,aAAA,CAACT,YAAY,CAACU,QAAQ;IAACC,KAAK,EAAEH;EAAkB,GAC7CD,QACoB,CAAC;AAE5B;AAEAJ,oBAAoB,CAACS,SAAS,GAAG;EAC/BL,QAAQ,EAAER,SAAS,CAACc,IAAI;EACxBX,OAAO,EAAEH,SAAS,CAACe,IAAI,CAACC,UAAU;EAClCT,UAAU,EAAEP,SAAS,CAACiB,IAAI;EAC1BX,MAAM,EAAEN,SAAS,CAACiB,IAAI,CAACD;AACzB,CAAC;AAEDZ,oBAAoB,CAACc,YAAY,GAAG;EAClCV,QAAQ,EAAE,IAAI;EACdD,UAAU,EAAE;AACd,CAAC;AAED,SAASH,oBAAoB;AAC7B,eAAeH,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"ModalContext.js","names":["React","useMemo","ModalContext","createContext","onClose","isOpen","isBlocking","ModalContextProvider","_ref","_ref$isBlocking","_ref$children","children","modalContextValue","createElement","Provider","value"],"sources":["../../src/Modal/ModalContext.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\ninterface ContextData {\n onClose: () => void;\n isOpen: boolean;\n isBlocking: boolean;\n}\n\nconst ModalContext = React.createContext<ContextData>({\n onClose: () => {},\n isOpen: false,\n isBlocking: false,\n});\n\nfunction ModalContextProvider({\n onClose,\n isOpen,\n isBlocking = false,\n children = null,\n}: {\n onClose: () => void;\n isOpen: boolean;\n isBlocking?: boolean;\n children?: React.ReactNode;\n}) {\n const modalContextValue = useMemo<ContextData>(\n () => ({ onClose, isOpen, isBlocking }),\n [onClose, isOpen, isBlocking],\n );\n\n return (\n <ModalContext.Provider value={modalContextValue}>\n {children}\n </ModalContext.Provider>\n );\n}\n\nexport { ModalContextProvider };\nexport default ModalContext;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAQtC,IAAMC,YAAY,gBAAGF,KAAK,CAACG,aAAa,CAAc;EACpDC,OAAO,EAAE,SAAAA,QAAA,EAAM,CAAC,CAAC;EACjBC,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,SAASC,oBAAoBA,CAAAC,IAAA,EAU1B;EAAA,IATDJ,OAAO,GAAAI,IAAA,CAAPJ,OAAO;IACPC,MAAM,GAAAG,IAAA,CAANH,MAAM;IAAAI,eAAA,GAAAD,IAAA,CACNF,UAAU;IAAVA,UAAU,GAAAG,eAAA,cAAG,KAAK,GAAAA,eAAA;IAAAC,aAAA,GAAAF,IAAA,CAClBG,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,IAAI,GAAAA,aAAA;EAOf,IAAME,iBAAiB,GAAGX,OAAO,CAC/B;IAAA,OAAO;MAAEG,OAAO,EAAPA,OAAO;MAAEC,MAAM,EAANA,MAAM;MAAEC,UAAU,EAAVA;IAAW,CAAC;EAAA,CAAC,EACvC,CAACF,OAAO,EAAEC,MAAM,EAAEC,UAAU,CAC9B,CAAC;EAED,oBACEN,KAAA,CAAAa,aAAA,CAACX,YAAY,CAACY,QAAQ;IAACC,KAAK,EAAEH;EAAkB,GAC7CD,QACoB,CAAC;AAE5B;AAEA,SAASJ,oBAAoB;AAC7B,eAAeL,YAAY","ignoreList":[]}
@@ -0,0 +1,110 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ export declare const MODAL_DIALOG_CLOSE_LABEL = "Close";
4
+ interface Props {
5
+ /** Specifies the content of the dialog */
6
+ children: React.ReactNode;
7
+ /** The aria-label of the dialog */
8
+ title: string;
9
+ /** A callback to close the modal dialog, e.g. when Escape is pressed */
10
+ onClose: () => void;
11
+ /** Is the modal dialog open or closed? */
12
+ isOpen?: boolean;
13
+ /** The close 'x' icon button in the top right of the dialog box */
14
+ hasCloseButton?: boolean;
15
+ /** Size determines the maximum width of the dialog box */
16
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen';
17
+ /** The visual style of the dialog box */
18
+ variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark';
19
+ /** The label supplied to the close icon button if one is rendered */
20
+ closeLabel?: string;
21
+ /** Specifies class name to append to the base element */
22
+ className?: string;
23
+ /**
24
+ * Determines where a scrollbar should appear if a modal is too large for the
25
+ * viewport. When false, the ``ModalDialog``. Body receives a scrollbar, when true
26
+ * the browser window itself receives the scrollbar.
27
+ */
28
+ isFullscreenScroll?: boolean;
29
+ /** To show full screen view on mobile screens */
30
+ isFullscreenOnMobile?: boolean;
31
+ /** Prevent clicking on the backdrop or pressing Esc to close the modal */
32
+ isBlocking?: boolean;
33
+ /** Specifies the z-index of the modal */
34
+ zIndex?: number;
35
+ /** Specifies whether overflow is visible in the modal */
36
+ isOverflowVisible?: boolean;
37
+ }
38
+ declare function ModalDialog({ children, title, isOpen, onClose, size, variant, hasCloseButton, closeLabel, isFullscreenScroll, className, isFullscreenOnMobile, isBlocking, zIndex, isOverflowVisible, }: Props): import("react/jsx-runtime").JSX.Element;
39
+ declare namespace ModalDialog {
40
+ var propTypes: {
41
+ /**
42
+ * Specifies the content of the dialog
43
+ */
44
+ children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
45
+ /**
46
+ * The aria-label of the dialog
47
+ */
48
+ title: PropTypes.Validator<string>;
49
+ /**
50
+ * A callback to close the modal dialog
51
+ */
52
+ onClose: PropTypes.Validator<(...args: any[]) => any>;
53
+ /**
54
+ * Is the modal dialog open or closed
55
+ */
56
+ isOpen: PropTypes.Requireable<boolean>;
57
+ /**
58
+ * The close 'x' icon button in the top right of the dialog box
59
+ */
60
+ hasCloseButton: PropTypes.Requireable<boolean>;
61
+ /**
62
+ * Sizes determine the maximum width of the dialog box
63
+ */
64
+ size: PropTypes.Requireable<string>;
65
+ /**
66
+ * The visual style of the dialog box
67
+ */
68
+ variant: PropTypes.Requireable<string>;
69
+ /**
70
+ * The label supplied to the close icon button if one is rendered
71
+ */
72
+ closeLabel: PropTypes.Requireable<string>;
73
+ /**
74
+ * Specifies class name to append to the base element
75
+ */
76
+ className: PropTypes.Requireable<string>;
77
+ /**
78
+ * Determines where a scrollbar should appear if a modal is too large for the
79
+ * viewport. When false, the ``ModalDialog``. Body receives a scrollbar, when true
80
+ * the browser window itself receives the scrollbar.
81
+ */
82
+ isFullscreenScroll: PropTypes.Requireable<boolean>;
83
+ /**
84
+ * To show full screen view on mobile screens
85
+ */
86
+ isFullscreenOnMobile: PropTypes.Requireable<boolean>;
87
+ /**
88
+ * Prevent clicking on the backdrop or pressing Esc to close the modal
89
+ */
90
+ isBlocking: PropTypes.Requireable<boolean>;
91
+ /**
92
+ * Specifies the z-index of the modal
93
+ */
94
+ zIndex: PropTypes.Requireable<number>;
95
+ /**
96
+ * Specifies whether overflow content inside the modal should be visible.
97
+ * - `true` - content that exceeds the modal boundaries will remain visible outside the modal's main viewport,
98
+ * rather than being clipped or hidden.
99
+ * - `false` - any overflow content will be clipped to fit within the modal's dimensions.
100
+ */
101
+ isOverflowVisible: PropTypes.Validator<boolean>;
102
+ };
103
+ var Header: import("react-bootstrap/esm/helpers").BsPrefixRefForwardingComponent<"div", import("./ModalDialogHeader").Props>;
104
+ var Title: any;
105
+ var Footer: any;
106
+ var CloseButton: any;
107
+ var Body: any;
108
+ var Hero: any;
109
+ }
110
+ export default ModalDialog;