@openedx/paragon 22.13.0 → 22.15.0
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.
- package/dist/Alert/_variables.scss +2 -1
- package/dist/Annotation/index.js.map +1 -1
- package/dist/Annotation/index.scss +6 -5
- package/dist/Avatar/index.js.map +1 -1
- package/dist/AvatarButton/index.js.map +1 -1
- package/dist/Breadcrumb/index.js.map +1 -1
- package/dist/Bubble/index.js +1 -0
- package/dist/Bubble/index.js.map +1 -1
- package/dist/Bubble/index.scss +3 -2
- package/dist/Button/deprecated/index.js.map +1 -1
- package/dist/Button/index.scss +19 -18
- package/dist/Card/CardCarousel/CardCarouselHeader.js +2 -2
- package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
- package/dist/Card/CardFooter.js.map +1 -1
- package/dist/Card/CardHeader.js +1 -1
- package/dist/Card/CardHeader.js.map +1 -1
- package/dist/Card/CardImageCap.js.map +1 -1
- package/dist/Card/CardStatus.js.map +1 -1
- package/dist/Card/_variables.scss +3 -2
- package/dist/Card/index.js.map +1 -1
- package/dist/Card/index.scss +10 -9
- package/dist/Chip/ChipIcon.d.ts +1 -1
- package/dist/Chip/index.js +1 -0
- package/dist/Chip/index.js.map +1 -1
- package/dist/ChipCarousel/index.js.map +1 -1
- package/dist/Collapsible/index.js.map +1 -1
- package/dist/ColorPicker/index.js +1 -1
- package/dist/ColorPicker/index.js.map +1 -1
- package/dist/ColorPicker/index.scss +2 -1
- package/dist/DataTable/CollapsibleButtonGroup.js +2 -2
- package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
- package/dist/DataTable/DropdownFilters.js +1 -1
- package/dist/DataTable/DropdownFilters.js.map +1 -1
- package/dist/DataTable/TableRow.js.map +1 -1
- package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
- package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
- package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
- package/dist/DataTable/filters/TextFilter.js.map +1 -1
- package/dist/DataTable/index.scss +14 -13
- package/dist/DataTable/utils/getVisibleColumns.js +1 -1
- package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
- package/dist/Dropdown/_variables.scss +2 -1
- package/dist/Dropdown/deprecated/DropdownMenu.js +15 -19
- package/dist/Dropdown/deprecated/DropdownMenu.js.map +1 -1
- package/dist/Dropdown/deprecated/index.js +1 -1
- package/dist/Dropdown/deprecated/index.js.map +1 -1
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Dropzone/DefaultContent.js.map +1 -1
- package/dist/Dropzone/UploadProgress.js.map +1 -1
- package/dist/Dropzone/index.scss +3 -2
- package/dist/Fieldset/index.js.map +1 -1
- package/dist/Form/FormAutosuggest.js +1 -1
- package/dist/Form/FormAutosuggest.js.map +1 -1
- package/dist/Form/FormControl.js.map +1 -1
- package/dist/Form/FormControlDecorator.js.map +1 -1
- package/dist/Form/FormGroupContext.d.ts +1 -1
- package/dist/Form/FormGroupContext.js.map +1 -1
- package/dist/Form/FormText.js.map +1 -1
- package/dist/Form/_index.scss +9 -7
- package/dist/Form/_variables.scss +4 -2
- package/dist/Form/fieldUtils.js.map +1 -1
- package/dist/Hyperlink/index.d.ts +10 -5
- package/dist/Hyperlink/index.js +57 -25
- package/dist/Hyperlink/index.js.map +1 -1
- package/dist/Hyperlink/index.scss +3 -1
- package/dist/Icon/index.js.map +1 -1
- package/dist/IconButton/index.d.ts +13 -8
- package/dist/IconButton/index.js.map +1 -1
- package/dist/IconButtonToggle/index.js.map +1 -1
- package/dist/IconButtonToggle/index.scss +3 -1
- package/dist/Input/index.js.map +1 -1
- package/dist/InputSelect/index.js.map +1 -1
- package/dist/Layout/index.js.map +1 -1
- package/dist/ListBox/index.js.map +1 -1
- package/dist/ListBoxOption/index.js.map +1 -1
- package/dist/Menu/SelectMenu.js +1 -1
- package/dist/Menu/SelectMenu.js.map +1 -1
- package/dist/Menu/index.js +1 -1
- package/dist/Menu/index.js.map +1 -1
- package/dist/Modal/ModalContext.d.ts +1 -1
- package/dist/Modal/ModalDialog.d.ts +1 -1
- package/dist/Modal/ModalDialog.js.map +1 -1
- package/dist/Modal/ModalDialogBody.js +1 -1
- package/dist/Modal/ModalDialogBody.js.map +1 -1
- package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
- package/dist/Modal/ModalLayer.d.ts +3 -3
- package/dist/Modal/ModalLayer.js.map +1 -1
- package/dist/Modal/ModalPopup.js.map +1 -1
- package/dist/Modal/_ModalDialog.scss +3 -1
- package/dist/Modal/index.js +3 -1
- package/dist/Modal/index.js.map +1 -1
- package/dist/Modal/index.scss +3 -5
- package/dist/Nav/_mixins.scss +3 -1
- package/dist/Overlay/index.d.ts +2 -2
- package/dist/PageBanner/index.js.map +1 -1
- package/dist/PageBanner/index.scss +2 -1
- package/dist/Pagination/PaginationContext.js.map +1 -1
- package/dist/Pagination/index.js.map +1 -1
- package/dist/Popover/_variables.scss +2 -1
- package/dist/Popover/index.js.map +1 -1
- package/dist/ProductTour/Checkpoint.scss +9 -8
- package/dist/ProductTour/index.js +1 -1
- package/dist/ProductTour/index.js.map +1 -1
- package/dist/ProgressBar/index.js.map +1 -1
- package/dist/Scrollable/index.js +1 -1
- package/dist/Scrollable/index.js.map +1 -1
- package/dist/SearchField/SearchFieldAdvanced.js.map +1 -1
- package/dist/SearchField/index.scss +2 -1
- package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
- package/dist/Sheet/index.js.map +1 -1
- package/dist/Stack/index.js.map +1 -1
- package/dist/StatefulButton/index.js.map +1 -1
- package/dist/StatusAlert/index.js.map +1 -1
- package/dist/Stepper/StepperHeader.js +1 -1
- package/dist/Stepper/StepperHeader.js.map +1 -1
- package/dist/Stepper/StepperHeaderStep.js.map +1 -1
- package/dist/Sticky/index.js.map +1 -1
- package/dist/Table/_variables.scss +2 -1
- package/dist/Tabs/deprecated/index.js.map +1 -1
- package/dist/Tabs/index.js +1 -1
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Toast/ToastContainer.scss +1 -1
- package/dist/Toast/index.scss +2 -2
- package/dist/Truncate/index.js +1 -1
- package/dist/Truncate/index.js.map +1 -1
- package/dist/ValidationFormGroup/index.js.map +1 -1
- package/dist/asInput/index.js.map +1 -1
- package/dist/hooks/{useArrowKeyNavigation.js → useArrowKeyNavigationHook.js} +5 -1
- package/dist/hooks/useArrowKeyNavigationHook.js.map +1 -0
- package/dist/hooks/{useIndexOfLastVisibleChild.js → useIndexOfLastVisibleChildHook.js} +5 -1
- package/dist/hooks/useIndexOfLastVisibleChildHook.js.map +1 -0
- package/dist/hooks/{useIsVisible.js → useIsVisibleHook.js} +1 -1
- package/dist/hooks/useIsVisibleHook.js.map +1 -0
- package/dist/hooks/{useToggle.js → useToggleHook.js} +5 -1
- package/dist/hooks/useToggleHook.js.map +1 -0
- package/dist/hooks/{useWindowSize.js → useWindowSizeHook.js} +1 -1
- package/dist/hooks/useWindowSizeHook.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/paragon.css +1 -45
- package/dist/utils/newId.js.map +1 -1
- package/dist/withDeprecatedProps.js.map +1 -1
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/CHANGELOG.md +50 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/LICENSE +7 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/README.md +37 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.d.ts +20 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js +79 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js.map +1 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/package.json +40 -0
- package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/tsconfig.json +4 -0
- package/icons/package.json +1 -1
- package/package.json +12 -19
- package/scss/core/_exports.module.scss +7 -6
- package/scss/core/_functions.scss +9 -7
- package/scss/core/_typography.scss +2 -1
- package/scss/core/_utilities.scss +2 -1
- package/scss/core/_variables.scss +98 -95
- package/src/Alert/_variables.scss +2 -1
- package/src/Annotation/index.scss +6 -5
- package/src/Breadcrumb/Breadcrumb.test.jsx +3 -2
- package/src/Bubble/index.scss +3 -2
- package/src/Bubble/index.tsx +1 -0
- package/src/Button/Button.test.tsx +6 -1
- package/src/Button/deprecated/Button.test.jsx +6 -4
- package/src/Button/index.scss +19 -18
- package/src/Card/CardCarousel/tests/CardCarouselControls.test.jsx +6 -4
- package/src/Card/_variables.scss +3 -2
- package/src/Card/index.scss +10 -9
- package/src/Chip/index.tsx +1 -0
- package/src/Collapsible/Collapsible.test.jsx +15 -7
- package/src/ColorPicker/ColorPicker.test.jsx +9 -16
- package/src/ColorPicker/index.jsx +1 -1
- package/src/ColorPicker/index.scss +2 -1
- package/src/DataTable/CollapsibleButtonGroup.jsx +2 -2
- package/src/DataTable/DropdownFilters.jsx +1 -1
- package/src/DataTable/dataviews.mdx +1 -8
- package/src/DataTable/index.scss +14 -13
- package/src/DataTable/selection/tests/ControlledSelectHeader.test.jsx +6 -4
- package/src/DataTable/tests/BulkActions.test.jsx +2 -4
- package/src/DataTable/tests/DataViewToggle.test.jsx +3 -7
- package/src/DataTable/tests/DropdownFilters.test.jsx +1 -1
- package/src/DataTable/tests/TableActions.test.jsx +1 -1
- package/src/Dropdown/_variables.scss +2 -1
- package/src/Dropdown/deprecated/Dropdown.test.jsx +43 -27
- package/src/Dropzone/README.md +3 -3
- package/src/Dropzone/index.scss +3 -2
- package/src/Dropzone/tests/__snapshots__/Dropzone.test.jsx.snap +10 -1
- package/src/Form/FormAutosuggest.jsx +1 -1
- package/src/Form/FormGroupContext.tsx +1 -1
- package/src/Form/_index.scss +9 -7
- package/src/Form/_variables.scss +4 -2
- package/src/Form/tests/FormAutosuggest.test.jsx +76 -57
- package/src/Form/tests/FormCheckboxSet.test.jsx +3 -2
- package/src/Form/tests/FormControl.test.jsx +9 -6
- package/src/Form/tests/FormRadioSet.test.jsx +3 -2
- package/src/Hyperlink/Hyperlink.test.tsx +50 -20
- package/src/Hyperlink/README.md +14 -1
- package/src/Hyperlink/index.scss +3 -1
- package/src/Hyperlink/index.tsx +71 -30
- package/src/IconButtonToggle/IconButtonToggle.test.jsx +3 -2
- package/src/IconButtonToggle/index.scss +3 -1
- package/src/ListBox/ListBox.test.jsx +8 -4
- package/src/MailtoLink/MailtoLink.test.jsx +12 -3
- package/src/Menu/Menu.test.jsx +27 -19
- package/src/Menu/SelectMenu.jsx +1 -1
- package/src/Menu/SelectMenu.test.jsx +35 -16
- package/src/Menu/__snapshots__/Menu.test.jsx.snap +0 -1
- package/src/Menu/index.jsx +1 -1
- package/src/Modal/ModalDialogBody.jsx +1 -1
- package/src/Modal/_ModalDialog.scss +3 -1
- package/src/Modal/index.jsx +2 -0
- package/src/Modal/index.scss +3 -5
- package/src/Modal/tests/ModalLayer.test.tsx +3 -2
- package/src/Nav/_mixins.scss +3 -1
- package/src/OverflowScroll/data/tests/useOverflowScroll.test.jsx +1 -2
- package/src/OverflowScroll/data/tests/useOverflowScrollActions.test.jsx +1 -1
- package/src/OverflowScroll/data/tests/useOverflowScrollElementAttributes.test.jsx +1 -1
- package/src/OverflowScroll/data/tests/useOverflowScrollEventListeners.test.jsx +1 -2
- package/src/PageBanner/index.scss +2 -1
- package/src/Pagination/Pagination.test.jsx +36 -28
- package/src/Popover/_variables.scss +2 -1
- package/src/ProductTour/Checkpoint.scss +9 -8
- package/src/ProductTour/Checkpoint.test.jsx +3 -2
- package/src/ProductTour/ProductTour.test.jsx +11 -24
- package/src/ProductTour/index.jsx +1 -1
- package/src/Scrollable/Scrollable.test.jsx +2 -2
- package/src/Scrollable/index.jsx +1 -1
- package/src/SearchField/index.scss +2 -1
- package/src/SelectableBox/tests/SelectableBox.test.jsx +3 -2
- package/src/StatusAlert/StatusAlert.test.jsx +6 -2
- package/src/Stepper/StepperHeader.jsx +1 -1
- package/src/Stepper/tests/Stepper.test.jsx +1 -1
- package/src/Table/_variables.scss +2 -1
- package/src/Tabs/Tabs.test.jsx +1 -1
- package/src/Tabs/deprecated/Tabs.test.jsx +6 -4
- package/src/Tabs/index.jsx +1 -1
- package/src/Toast/ToastContainer.scss +1 -1
- package/src/Toast/index.scss +2 -2
- package/src/Truncate/index.jsx +1 -1
- package/src/hooks/tests/useToggle.test.tsx +1 -1
- package/src/hooks/{useArrowKeyNavigation.tsx → useArrowKeyNavigationHook.tsx} +4 -0
- package/src/hooks/{useIndexOfLastVisibleChild.tsx → useIndexOfLastVisibleChildHook.tsx} +4 -0
- package/src/hooks/{useToggle.tsx → useToggleHook.tsx} +4 -0
- package/src/index.d.ts +6 -6
- package/src/index.js +6 -6
- package/dist/hooks/useArrowKeyNavigation.js.map +0 -1
- package/dist/hooks/useIndexOfLastVisibleChild.js.map +0 -1
- package/dist/hooks/useIsVisible.js.map +0 -1
- package/dist/hooks/useToggle.js.map +0 -1
- package/dist/hooks/useWindowSize.js.map +0 -1
- package/src/DataTable/tests/utils.js +0 -9
- /package/dist/hooks/{useArrowKeyNavigation.d.ts → useArrowKeyNavigationHook.d.ts} +0 -0
- /package/dist/hooks/{useIndexOfLastVisibleChild.d.ts → useIndexOfLastVisibleChildHook.d.ts} +0 -0
- /package/dist/hooks/{useIsVisible.d.ts → useIsVisibleHook.d.ts} +0 -0
- /package/dist/hooks/{useToggle.d.ts → useToggleHook.d.ts} +0 -0
- /package/dist/hooks/{useWindowSize.d.ts → useWindowSizeHook.d.ts} +0 -0
- /package/src/hooks/{useIsVisible.tsx → useIsVisibleHook.tsx} +0 -0
- /package/src/hooks/{useWindowSize.tsx → useWindowSizeHook.tsx} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalDialogBody.js","names":["React","PropTypes","classNames","useIsVisible","ModalDialogBody","_ref","as","children","props","isScrolledToTop","topSentinelRef","isScrolledToBottom","bottomSentinelRef","className","createElement","Fragment","ref","propTypes","elementType","node","isRequired","string","defaultProps","undefined"],"sources":["../../src/Modal/ModalDialogBody.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport useIsVisible from '../hooks/
|
|
1
|
+
{"version":3,"file":"ModalDialogBody.js","names":["React","PropTypes","classNames","useIsVisible","ModalDialogBody","_ref","as","children","props","isScrolledToTop","topSentinelRef","isScrolledToBottom","bottomSentinelRef","className","createElement","Fragment","ref","propTypes","elementType","node","isRequired","string","defaultProps","undefined"],"sources":["../../src/Modal/ModalDialogBody.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport useIsVisible from '../hooks/useIsVisibleHook';\n\nfunction ModalDialogBody({\n as,\n children,\n ...props\n}) {\n const [isScrolledToTop, topSentinelRef] = useIsVisible();\n const [isScrolledToBottom, bottomSentinelRef] = useIsVisible();\n const className = classNames(\n 'pgn__modal-body',\n props.className,\n {\n 'pgn__modal-body-scroll-top': isScrolledToTop,\n 'pgn__modal-body-scroll-bottom': isScrolledToBottom,\n },\n );\n return React.createElement(\n as,\n { ...props, className },\n (\n <>\n <div ref={topSentinelRef} />\n <div className=\"pgn__modal-body-content\">\n {children}\n </div>\n <div ref={bottomSentinelRef} />\n </>\n ),\n );\n}\n\nModalDialogBody.propTypes = {\n /** Specifies the base element */\n as: PropTypes.elementType,\n /** Specifies the contents of the header */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n};\n\nModalDialogBody.defaultProps = {\n as: 'div',\n className: undefined,\n};\n\nexport default ModalDialogBody;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,YAAY,MAAM,2BAA2B;AAEpD,SAASC,eAAeA,CAAAC,IAAA,EAIrB;EAAA,IAJsB;IACvBC,EAAE;IACFC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAAH,IAAA;EACC,MAAM,CAACI,eAAe,EAAEC,cAAc,CAAC,GAAGP,YAAY,CAAC,CAAC;EACxD,MAAM,CAACQ,kBAAkB,EAAEC,iBAAiB,CAAC,GAAGT,YAAY,CAAC,CAAC;EAC9D,MAAMU,SAAS,GAAGX,UAAU,CAC1B,iBAAiB,EACjBM,KAAK,CAACK,SAAS,EACf;IACE,4BAA4B,EAAEJ,eAAe;IAC7C,+BAA+B,EAAEE;EACnC,CACF,CAAC;EACD,oBAAOX,KAAK,CAACc,aAAa,CACxBR,EAAE,EACF;IAAE,GAAGE,KAAK;IAAEK;EAAU,CAAC,eAErBb,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAe,QAAA,qBACEf,KAAA,CAAAc,aAAA;IAAKE,GAAG,EAAEN;EAAe,CAAE,CAAC,eAC5BV,KAAA,CAAAc,aAAA;IAAKD,SAAS,EAAC;EAAyB,GACrCN,QACE,CAAC,eACNP,KAAA,CAAAc,aAAA;IAAKE,GAAG,EAAEJ;EAAkB,CAAE,CAC9B,CAEN,CAAC;AACH;AAEAR,eAAe,CAACa,SAAS,GAAG;EAC1B;EACAX,EAAE,EAAEL,SAAS,CAACiB,WAAW;EACzB;EACAX,QAAQ,EAAEN,SAAS,CAACkB,IAAI,CAACC,UAAU;EACnC;EACAP,SAAS,EAAEZ,SAAS,CAACoB;AACvB,CAAC;AAEDjB,eAAe,CAACkB,YAAY,GAAG;EAC7BhB,EAAE,EAAE,KAAK;EACTO,SAAS,EAAEU;AACb,CAAC;AAED,eAAenB,eAAe","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalDialogHeroBackground.js","names":["React","PropTypes","classNames","ModalDialogHeroBackground","_ref","as","backgroundSrc","children","props","createElement","className","style","backgroundImage","undefined","propTypes","elementType","string","node","shape","defaultProps"],"sources":["../../src/Modal/ModalDialogHeroBackground.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nfunction ModalDialogHeroBackground({\n as,\n backgroundSrc,\n children,\n ...props\n}) {\n return React.createElement(\n as,\n {\n ...props,\n className: classNames('pgn__modal-hero-bg', props.className),\n style: {\n backgroundImage: backgroundSrc ? `url(${backgroundSrc})` : undefined,\n ...props.style,\n },\n },\n children,\n );\n}\n\nModalDialogHeroBackground.propTypes = {\n as: PropTypes.elementType,\n backgroundSrc: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.shape({}),\n};\n\nModalDialogHeroBackground.defaultProps = {\n as: 'div',\n backgroundSrc: undefined,\n children: null,\n className: undefined,\n style: {},\n};\n\nexport default ModalDialogHeroBackground;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,yBAAyBA,CAAAC,IAAA,EAK/B;EAAA,IALgC;IACjCC,EAAE;IACFC,aAAa;IACbC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAAJ,IAAA;EACC,oBAAOJ,KAAK,CAACS,aAAa,CACxBJ,EAAE,EACF;IACE,GAAGG,KAAK;IACRE,SAAS,EAAER,UAAU,CAAC,oBAAoB,EAAEM,KAAK,CAACE,SAAS,CAAC;IAC5DC,KAAK,EAAE;MACLC,eAAe,EAAEN,aAAa,
|
|
1
|
+
{"version":3,"file":"ModalDialogHeroBackground.js","names":["React","PropTypes","classNames","ModalDialogHeroBackground","_ref","as","backgroundSrc","children","props","createElement","className","style","backgroundImage","undefined","propTypes","elementType","string","node","shape","defaultProps"],"sources":["../../src/Modal/ModalDialogHeroBackground.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nfunction ModalDialogHeroBackground({\n as,\n backgroundSrc,\n children,\n ...props\n}) {\n return React.createElement(\n as,\n {\n ...props,\n className: classNames('pgn__modal-hero-bg', props.className),\n style: {\n backgroundImage: backgroundSrc ? `url(${backgroundSrc})` : undefined,\n ...props.style,\n },\n },\n children,\n );\n}\n\nModalDialogHeroBackground.propTypes = {\n as: PropTypes.elementType,\n backgroundSrc: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.shape({}),\n};\n\nModalDialogHeroBackground.defaultProps = {\n as: 'div',\n backgroundSrc: undefined,\n children: null,\n className: undefined,\n style: {},\n};\n\nexport default ModalDialogHeroBackground;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,yBAAyBA,CAAAC,IAAA,EAK/B;EAAA,IALgC;IACjCC,EAAE;IACFC,aAAa;IACbC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAAJ,IAAA;EACC,oBAAOJ,KAAK,CAACS,aAAa,CACxBJ,EAAE,EACF;IACE,GAAGG,KAAK;IACRE,SAAS,EAAER,UAAU,CAAC,oBAAoB,EAAEM,KAAK,CAACE,SAAS,CAAC;IAC5DC,KAAK,EAAE;MACLC,eAAe,EAAEN,aAAa,GAAG,OAAOA,aAAa,GAAG,GAAGO,SAAS;MACpE,GAAGL,KAAK,CAACG;IACX;EACF,CAAC,EACDJ,QACF,CAAC;AACH;AAEAJ,yBAAyB,CAACW,SAAS,GAAG;EACpCT,EAAE,EAAEJ,SAAS,CAACc,WAAW;EACzBT,aAAa,EAAEL,SAAS,CAACe,MAAM;EAC/BT,QAAQ,EAAEN,SAAS,CAACgB,IAAI;EACxBP,SAAS,EAAET,SAAS,CAACe,MAAM;EAC3BL,KAAK,EAAEV,SAAS,CAACiB,KAAK,CAAC,CAAC,CAAC;AAC3B,CAAC;AAEDf,yBAAyB,CAACgB,YAAY,GAAG;EACvCd,EAAE,EAAE,KAAK;EACTC,aAAa,EAAEO,SAAS;EACxBN,QAAQ,EAAE,IAAI;EACdG,SAAS,EAAEG,SAAS;EACpBF,KAAK,EAAE,CAAC;AACV,CAAC;AAED,eAAeR,yBAAyB","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
declare function ModalBackdrop({ onClick }: {
|
|
4
4
|
onClick?: () => void;
|
|
5
|
-
}):
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
declare namespace ModalBackdrop {
|
|
7
7
|
var propTypes: {
|
|
8
8
|
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -10,7 +10,7 @@ declare namespace ModalBackdrop {
|
|
|
10
10
|
}
|
|
11
11
|
declare function ModalContentContainer({ children }: {
|
|
12
12
|
children?: React.ReactNode;
|
|
13
|
-
}):
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
declare namespace ModalContentContainer {
|
|
15
15
|
var propTypes: {
|
|
16
16
|
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
@@ -34,7 +34,7 @@ interface Props {
|
|
|
34
34
|
* rest of the application is made non-interactive. The assumption made by this
|
|
35
35
|
* component is that if a modal object is visible then it is "enabled"
|
|
36
36
|
*/
|
|
37
|
-
declare function ModalLayer({ children, onClose, isOpen, isBlocking, zIndex, }: Props):
|
|
37
|
+
declare function ModalLayer({ children, onClose, isOpen, isBlocking, zIndex, }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
38
38
|
declare namespace ModalLayer {
|
|
39
39
|
var propTypes: {
|
|
40
40
|
/** Specifies the contents of the modal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalLayer.js","names":["React","useEffect","classNames","PropTypes","FocusOn","Portal","ModalContextProvider","ModalBackdrop","_ref","onClick","createElement","className","onKeyDown","propTypes","func","ModalContentContainer","_ref2","children","node","ModalLayer","_ref3","onClose","isOpen","isBlocking","zIndex","document","body","classList","add","remove","handleClose","undefined","allowPinchZoom","scrollLock","enabled","onEscapeKey","onClickOutside","isRequired","bool","number"],"sources":["../../src/Modal/ModalLayer.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport Portal from './Portal';\nimport { ModalContextProvider } from './ModalContext';\n\n// istanbul ignore next\nfunction ModalBackdrop({ onClick }: { onClick?: () => void }) {\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className=\"pgn__modal-backdrop\"\n onClick={onClick}\n onKeyDown={onClick}\n data-testid=\"modal-backdrop\"\n />\n );\n}\n\nModalBackdrop.propTypes = {\n onClick: PropTypes.func,\n};\n\n// istanbul ignore next\nfunction ModalContentContainer({ children = null }: { children?: React.ReactNode }) {\n return <div className=\"pgn__modal-content-container\">{children}</div>;\n}\n\nModalContentContainer.propTypes = {\n children: PropTypes.node,\n};\n\ninterface Props {\n /** Specifies the contents of the modal */\n children: React.ReactNode;\n /** A callback function for when the modal is dismissed */\n onClose: () => void;\n /** Is the modal dialog open or closed */\n isOpen: boolean;\n /** Prevent clicking on the backdrop or pressing Esc to close the modal */\n isBlocking?: boolean;\n /** Specifies the z-index of the modal */\n zIndex?: number;\n}\n\n/**\n * The ModalLayer should be used for any component that wishes to engage the user\n * in a \"mode\" where a layer on top of the application is interactive while the\n * rest of the application is made non-interactive. The assumption made by this\n * component is that if a modal object is visible then it is \"enabled\"\n */\nfunction ModalLayer({\n children, onClose, isOpen, isBlocking = false, zIndex,\n}: Props) {\n useEffect(() => {\n if (isOpen) {\n document.body.classList.add('pgn__hidden-scroll-padding-right');\n } else {\n document.body.classList.remove('pgn__hidden-scroll-padding-right');\n }\n return () => {\n document.body.classList.remove('pgn__hidden-scroll-padding-right');\n };\n }, [isOpen]);\n\n if (!isOpen) {\n return null;\n }\n\n const handleClose = isBlocking ? undefined : onClose;\n\n return (\n <ModalContextProvider onClose={onClose} isOpen={isOpen} isBlocking={isBlocking}>\n <Portal>\n <FocusOn\n allowPinchZoom\n scrollLock\n enabled={isOpen}\n onEscapeKey={handleClose}\n onClickOutside={handleClose}\n className={classNames(\n 'pgn__modal-layer',\n zIndex ? `zindex-${zIndex}` : '',\n )}\n >\n <ModalContentContainer>\n <ModalBackdrop onClick={handleClose} />\n {children}\n </ModalContentContainer>\n </FocusOn>\n </Portal>\n </ModalContextProvider>\n );\n}\n\nModalLayer.propTypes = {\n /** Specifies the contents of the modal */\n children: PropTypes.node.isRequired,\n /** A callback function for when the modal is dismissed */\n onClose: PropTypes.func.isRequired,\n /** Is the modal dialog open or closed */\n isOpen: PropTypes.bool.isRequired,\n /** Prevent clicking on the backdrop or pressing Esc to close the modal */\n isBlocking: PropTypes.bool,\n /** Specifies the z-index of the modal */\n zIndex: PropTypes.number,\n};\n\nexport { ModalBackdrop, ModalContentContainer };\nexport default ModalLayer;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,OAAO,QAAQ,gBAAgB;AACxC,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,oBAAoB,QAAQ,gBAAgB;;AAErD;AACA,SAASC,aAAaA,CAAAC,IAAA,EAAwC;EAAA,IAAvC;IAAEC;EAAkC,CAAC,GAAAD,IAAA;EAC1D;IAAA;IACE;IACAR,KAAA,CAAAU,aAAA;MACEC,SAAS,EAAC,qBAAqB;MAC/BF,OAAO,EAAEA,OAAQ;MACjBG,SAAS,EAAEH,OAAQ;MACnB,eAAY;IAAgB,CAC7B;EAAC;AAEN;AAEAF,aAAa,CAACM,SAAS,GAAG;EACxBJ,OAAO,EAAEN,SAAS,CAACW;AACrB,CAAC;;AAED;AACA,SAASC,qBAAqBA,CAAAC,KAAA,EAAsD;EAAA,IAArD;IAAEC,QAAQ,GAAG;EAAqC,CAAC,GAAAD,KAAA;EAChF,oBAAOhB,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAA8B,GAAEM,QAAc,CAAC;AACvE;AAEAF,qBAAqB,CAACF,SAAS,GAAG;EAChCI,QAAQ,EAAEd,SAAS,CAACe;AACtB,CAAC;AAeD;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAAAC,KAAA,EAET;EAAA,IAFU;IAClBH,QAAQ;IAAEI,OAAO;IAAEC,MAAM;IAAEC,UAAU,GAAG,KAAK;IAAEC;EAC1C,CAAC,GAAAJ,KAAA;EACNnB,SAAS,CAAC,MAAM;IACd,IAAIqB,MAAM,EAAE;MACVG,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC,kCAAkC,CAAC;IACjE,CAAC,MAAM;MACLH,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACE,MAAM,CAAC,kCAAkC,CAAC;IACpE;IACA,OAAO,MAAM;MACXJ,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACE,MAAM,CAAC,kCAAkC,CAAC;IACpE,CAAC;EACH,CAAC,EAAE,CAACP,MAAM,CAAC,CAAC;EAEZ,IAAI,CAACA,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAMQ,WAAW,GAAGP,UAAU,GAAGQ,SAAS,GAAGV,OAAO;EAEpD,oBACErB,KAAA,CAAAU,aAAA,CAACJ,oBAAoB;IAACe,OAAO,EAAEA,OAAQ;IAACC,MAAM,EAAEA,MAAO;IAACC,UAAU,EAAEA;EAAW,gBAC7EvB,KAAA,CAAAU,aAAA,CAACL,MAAM,qBACLL,KAAA,CAAAU,aAAA,CAACN,OAAO;IACN4B,cAAc;IACdC,UAAU;IACVC,OAAO,EAAEZ,MAAO;IAChBa,WAAW,EAAEL,WAAY;IACzBM,cAAc,EAAEN,WAAY;IAC5BnB,SAAS,EAAET,UAAU,CACnB,kBAAkB,EAClBsB,MAAM,
|
|
1
|
+
{"version":3,"file":"ModalLayer.js","names":["React","useEffect","classNames","PropTypes","FocusOn","Portal","ModalContextProvider","ModalBackdrop","_ref","onClick","createElement","className","onKeyDown","propTypes","func","ModalContentContainer","_ref2","children","node","ModalLayer","_ref3","onClose","isOpen","isBlocking","zIndex","document","body","classList","add","remove","handleClose","undefined","allowPinchZoom","scrollLock","enabled","onEscapeKey","onClickOutside","isRequired","bool","number"],"sources":["../../src/Modal/ModalLayer.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport Portal from './Portal';\nimport { ModalContextProvider } from './ModalContext';\n\n// istanbul ignore next\nfunction ModalBackdrop({ onClick }: { onClick?: () => void }) {\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className=\"pgn__modal-backdrop\"\n onClick={onClick}\n onKeyDown={onClick}\n data-testid=\"modal-backdrop\"\n />\n );\n}\n\nModalBackdrop.propTypes = {\n onClick: PropTypes.func,\n};\n\n// istanbul ignore next\nfunction ModalContentContainer({ children = null }: { children?: React.ReactNode }) {\n return <div className=\"pgn__modal-content-container\">{children}</div>;\n}\n\nModalContentContainer.propTypes = {\n children: PropTypes.node,\n};\n\ninterface Props {\n /** Specifies the contents of the modal */\n children: React.ReactNode;\n /** A callback function for when the modal is dismissed */\n onClose: () => void;\n /** Is the modal dialog open or closed */\n isOpen: boolean;\n /** Prevent clicking on the backdrop or pressing Esc to close the modal */\n isBlocking?: boolean;\n /** Specifies the z-index of the modal */\n zIndex?: number;\n}\n\n/**\n * The ModalLayer should be used for any component that wishes to engage the user\n * in a \"mode\" where a layer on top of the application is interactive while the\n * rest of the application is made non-interactive. The assumption made by this\n * component is that if a modal object is visible then it is \"enabled\"\n */\nfunction ModalLayer({\n children, onClose, isOpen, isBlocking = false, zIndex,\n}: Props) {\n useEffect(() => {\n if (isOpen) {\n document.body.classList.add('pgn__hidden-scroll-padding-right');\n } else {\n document.body.classList.remove('pgn__hidden-scroll-padding-right');\n }\n return () => {\n document.body.classList.remove('pgn__hidden-scroll-padding-right');\n };\n }, [isOpen]);\n\n if (!isOpen) {\n return null;\n }\n\n const handleClose = isBlocking ? undefined : onClose;\n\n return (\n <ModalContextProvider onClose={onClose} isOpen={isOpen} isBlocking={isBlocking}>\n <Portal>\n <FocusOn\n allowPinchZoom\n scrollLock\n enabled={isOpen}\n onEscapeKey={handleClose}\n onClickOutside={handleClose}\n className={classNames(\n 'pgn__modal-layer',\n zIndex ? `zindex-${zIndex}` : '',\n )}\n >\n <ModalContentContainer>\n <ModalBackdrop onClick={handleClose} />\n {children}\n </ModalContentContainer>\n </FocusOn>\n </Portal>\n </ModalContextProvider>\n );\n}\n\nModalLayer.propTypes = {\n /** Specifies the contents of the modal */\n children: PropTypes.node.isRequired,\n /** A callback function for when the modal is dismissed */\n onClose: PropTypes.func.isRequired,\n /** Is the modal dialog open or closed */\n isOpen: PropTypes.bool.isRequired,\n /** Prevent clicking on the backdrop or pressing Esc to close the modal */\n isBlocking: PropTypes.bool,\n /** Specifies the z-index of the modal */\n zIndex: PropTypes.number,\n};\n\nexport { ModalBackdrop, ModalContentContainer };\nexport default ModalLayer;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalPopup.js","names":["React","PropTypes","FocusOn","Portal","PopperElement","ModalContextProvider","PLACEMENT_OFFSETS","right","left","ModalPopup","_ref","children","onClose","isOpen","positionRef","isBlocking","withPortal","placement","hasArrow","popperProps","RootComponent","Fragment","placementOffsetValue","popperParams","name","options","scroll","offset","handleOnClickOutside","e","type","createElement","modifiers","target","scrollLock","enabled","onEscapeKey","onClickOutside","className","id","propTypes","node","isRequired","func","bool","oneOfType","shape","current","defaultProps"],"sources":["../../src/Modal/ModalPopup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport Portal from './Portal';\nimport PopperElement from './PopperElement';\nimport { ModalContextProvider } from './ModalContext';\n\nconst PLACEMENT_OFFSETS = { right: [-2, 10], left: [-2, 10] };\n\nfunction ModalPopup({\n children,\n onClose,\n isOpen,\n positionRef,\n isBlocking,\n withPortal,\n placement,\n hasArrow,\n ...popperProps\n}) {\n const RootComponent = withPortal ? Portal : React.Fragment;\n const placementOffsetValue = PLACEMENT_OFFSETS[placement] || [0, 10];\n\n const popperParams = [\n {\n name: 'eventListeners',\n options: { scroll: false },\n },\n {\n name: 'offset',\n options: {\n offset: () => placementOffsetValue,\n },\n },\n ];\n\n const handleOnClickOutside = (e) => {\n if (e.type === 'touchstart') {\n return;\n }\n\n onClose();\n };\n\n return (\n <ModalContextProvider onClose={onClose} isOpen={isOpen} isBlocking={isBlocking}>\n <RootComponent>\n <PopperElement\n modifiers={hasArrow ? popperParams : null}\n target={positionRef}\n placement={placement}\n {...popperProps}\n >\n <FocusOn\n scrollLock={false}\n enabled={isOpen}\n onEscapeKey={onClose}\n onClickOutside={handleOnClickOutside}\n >\n {isOpen && (\n <div className=\"pgn__modal-popup__tooltip\">\n {children}\n {hasArrow && (\n <div\n id=\"arrow\"\n data-testid=\"modal-popup-arrow\"\n className={`pgn__modal-popup__arrow pgn__modal-popup__arrow-${placement}`}\n data-popper-arrow=\"\"\n />\n )}\n </div>\n )}\n </FocusOn>\n </PopperElement>\n </RootComponent>\n </ModalContextProvider>\n );\n}\n\nModalPopup.propTypes = {\n /** Specifies the contents of the modal */\n children: PropTypes.node.isRequired,\n /** A callback function for when the modal is dismissed */\n onClose: PropTypes.func.isRequired,\n /** Is the modal dialog open or closed */\n isOpen: PropTypes.bool.isRequired,\n /** Prevent clicking on the backdrop or pressing Esc to close the modal */\n isBlocking: PropTypes.bool,\n /** Insert modal into a different location in the DOM */\n withPortal: PropTypes.bool,\n // This type: https://stackoverflow.com/questions/48007326/what-is-the-correct-proptype-for-a-ref-in-react\n /** Specifies an element near which the modal should be displayed */\n positionRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.shape({}) }),\n ]),\n /** Specifies position according to the element that the ``positionRef`` prop points to */\n placement: PopperElement.propTypes.placement,\n /** Caret to the modal popup pointing to the target */\n hasArrow: PropTypes.bool,\n};\n\nModalPopup.defaultProps = {\n isBlocking: false,\n withPortal: false,\n placement: 'bottom-start',\n positionRef: null,\n hasArrow: false,\n};\n\nexport default ModalPopup;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,OAAO,QAAQ,gBAAgB;AACxC,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,SAASC,oBAAoB,QAAQ,gBAAgB;AAErD,MAAMC,iBAAiB,GAAG;EAAEC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAAEC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;AAAE,CAAC;AAE7D,SAASC,UAAUA,CAAAC,IAAA,EAUhB;EAAA,IAViB;IAClBC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC,WAAW;IACXC,UAAU;IACVC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACR,GAAGC;EACL,CAAC,GAAAT,IAAA;EACC,MAAMU,aAAa,GAAGJ,UAAU,GAAGb,MAAM,GAAGH,KAAK,CAACqB,QAAQ;EAC1D,MAAMC,oBAAoB,GAAGhB,iBAAiB,CAACW,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;EAEpE,MAAMM,YAAY,GAAG,CACnB;IACEC,IAAI,EAAE,gBAAgB;IACtBC,OAAO,EAAE;MAAEC,MAAM,EAAE;IAAM;EAC3B,CAAC,EACD;IACEF,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAE;MACPE,MAAM,EAAEA,CAAA,KAAML;IAChB;EACF,CAAC,CACF;EAED,MAAMM,oBAAoB,GAAIC,CAAC,IAAK;IAClC,IAAIA,CAAC,CAACC,IAAI,KAAK,YAAY,EAAE;MAC3B;IACF;IAEAlB,OAAO,CAAC,CAAC;EACX,CAAC;EAED,oBACEZ,KAAA,CAAA+B,aAAA,CAAC1B,oBAAoB;IAACO,OAAO,EAAEA,OAAQ;IAACC,MAAM,EAAEA,MAAO;IAACE,UAAU,EAAEA;EAAW,gBAC7Ef,KAAA,CAAA+B,aAAA,CAACX,aAAa,qBACZpB,KAAA,CAAA+B,aAAA,CAAC3B,aAAa;IACZ4B,SAAS,EAAEd,QAAQ,GAAGK,YAAY,GAAG,IAAK;IAC1CU,MAAM,EAAEnB,WAAY;IACpBG,SAAS,EAAEA,SAAU;IAAA,GACjBE;EAAW,gBAEfnB,KAAA,CAAA+B,aAAA,CAAC7B,OAAO;IACNgC,UAAU,EAAE,KAAM;IAClBC,OAAO,EAAEtB,MAAO;IAChBuB,WAAW,EAAExB,OAAQ;IACrByB,cAAc,EAAET;EAAqB,GAEpCf,MAAM,iBACLb,KAAA,CAAA+B,aAAA;IAAKO,SAAS,EAAC;EAA2B,GACvC3B,QAAQ,EACRO,QAAQ,iBACPlB,KAAA,CAAA+B,aAAA;IACEQ,EAAE,EAAC,OAAO;IACV,eAAY,mBAAmB;IAC/BD,SAAS,
|
|
1
|
+
{"version":3,"file":"ModalPopup.js","names":["React","PropTypes","FocusOn","Portal","PopperElement","ModalContextProvider","PLACEMENT_OFFSETS","right","left","ModalPopup","_ref","children","onClose","isOpen","positionRef","isBlocking","withPortal","placement","hasArrow","popperProps","RootComponent","Fragment","placementOffsetValue","popperParams","name","options","scroll","offset","handleOnClickOutside","e","type","createElement","modifiers","target","scrollLock","enabled","onEscapeKey","onClickOutside","className","id","propTypes","node","isRequired","func","bool","oneOfType","shape","current","defaultProps"],"sources":["../../src/Modal/ModalPopup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport Portal from './Portal';\nimport PopperElement from './PopperElement';\nimport { ModalContextProvider } from './ModalContext';\n\nconst PLACEMENT_OFFSETS = { right: [-2, 10], left: [-2, 10] };\n\nfunction ModalPopup({\n children,\n onClose,\n isOpen,\n positionRef,\n isBlocking,\n withPortal,\n placement,\n hasArrow,\n ...popperProps\n}) {\n const RootComponent = withPortal ? Portal : React.Fragment;\n const placementOffsetValue = PLACEMENT_OFFSETS[placement] || [0, 10];\n\n const popperParams = [\n {\n name: 'eventListeners',\n options: { scroll: false },\n },\n {\n name: 'offset',\n options: {\n offset: () => placementOffsetValue,\n },\n },\n ];\n\n const handleOnClickOutside = (e) => {\n if (e.type === 'touchstart') {\n return;\n }\n\n onClose();\n };\n\n return (\n <ModalContextProvider onClose={onClose} isOpen={isOpen} isBlocking={isBlocking}>\n <RootComponent>\n <PopperElement\n modifiers={hasArrow ? popperParams : null}\n target={positionRef}\n placement={placement}\n {...popperProps}\n >\n <FocusOn\n scrollLock={false}\n enabled={isOpen}\n onEscapeKey={onClose}\n onClickOutside={handleOnClickOutside}\n >\n {isOpen && (\n <div className=\"pgn__modal-popup__tooltip\">\n {children}\n {hasArrow && (\n <div\n id=\"arrow\"\n data-testid=\"modal-popup-arrow\"\n className={`pgn__modal-popup__arrow pgn__modal-popup__arrow-${placement}`}\n data-popper-arrow=\"\"\n />\n )}\n </div>\n )}\n </FocusOn>\n </PopperElement>\n </RootComponent>\n </ModalContextProvider>\n );\n}\n\nModalPopup.propTypes = {\n /** Specifies the contents of the modal */\n children: PropTypes.node.isRequired,\n /** A callback function for when the modal is dismissed */\n onClose: PropTypes.func.isRequired,\n /** Is the modal dialog open or closed */\n isOpen: PropTypes.bool.isRequired,\n /** Prevent clicking on the backdrop or pressing Esc to close the modal */\n isBlocking: PropTypes.bool,\n /** Insert modal into a different location in the DOM */\n withPortal: PropTypes.bool,\n // This type: https://stackoverflow.com/questions/48007326/what-is-the-correct-proptype-for-a-ref-in-react\n /** Specifies an element near which the modal should be displayed */\n positionRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.shape({}) }),\n ]),\n /** Specifies position according to the element that the ``positionRef`` prop points to */\n placement: PopperElement.propTypes.placement,\n /** Caret to the modal popup pointing to the target */\n hasArrow: PropTypes.bool,\n};\n\nModalPopup.defaultProps = {\n isBlocking: false,\n withPortal: false,\n placement: 'bottom-start',\n positionRef: null,\n hasArrow: false,\n};\n\nexport default ModalPopup;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
1
3
|
.pgn__modal {
|
|
2
4
|
background: $modal-content-bg;
|
|
3
5
|
border-radius: $modal-content-inner-border-radius;
|
|
@@ -315,7 +317,7 @@
|
|
|
315
317
|
|
|
316
318
|
.pgn__alert-modal__title_icon {
|
|
317
319
|
flex-shrink: 0;
|
|
318
|
-
margin-right: map
|
|
320
|
+
margin-right: map.get($spacers, 2\.5);
|
|
319
321
|
}
|
|
320
322
|
}
|
|
321
323
|
}
|
package/dist/Modal/index.js
CHANGED
|
@@ -47,6 +47,8 @@ class Modal extends React.Component {
|
|
|
47
47
|
}
|
|
48
48
|
componentWillUnmount() {
|
|
49
49
|
if (this.parentElement) {
|
|
50
|
+
// TODO: update this to use the new createRoot() compatible APIs.
|
|
51
|
+
// eslint-disable-next-line react/no-deprecated
|
|
50
52
|
ReactDOM.unmountComponentAtNode(this.parentElement);
|
|
51
53
|
}
|
|
52
54
|
}
|
|
@@ -106,7 +108,7 @@ class Modal extends React.Component {
|
|
|
106
108
|
renderButtons() {
|
|
107
109
|
return this.props.buttons.map(button => {
|
|
108
110
|
// button is either a React component that we want clone or a set of props
|
|
109
|
-
if (
|
|
111
|
+
if (/*#__PURE__*/React.isValidElement(button)) {
|
|
110
112
|
return /*#__PURE__*/React.cloneElement(button, {
|
|
111
113
|
key: button.props.children
|
|
112
114
|
});
|
package/dist/Modal/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","ReactDOM","classNames","PropTypes","FocusOn","tabbable","Close","Button","Icon","newId","Variant","Modal","Component","constructor","props","close","bind","headerId","modalBodyRef","createRef","document","el","createElement","isIE11","global","MSInputMethodContext","documentMode","state","open","componentDidMount","parentSelector","parentElement","querySelector","Error","appendChild","componentDidUpdate","prevProps","prevState","setState","componentWillUnmount","unmountComponentAtNode","getVariantIconClassName","variant","variantIconClassName","status","WARNING","toLowerCase","getVariantGridBody","body","className","id","getTabbableBodyElements","current","isValidVariantStatus","Object","values","includes","e","stopPropagation","onClose","renderButtons","buttons","map","button","isValidElement","cloneElement","key","children","label","buttonProps","Deprecated","renderBody","renderModal","dialogClassName","renderDefaultCloseButton","renderHeaderCloseButton","closeText","title","hasTabbableElements","length","renderModalFooter","Fragment","show","fade","role","enabled","onClickOutside","onEscapeKey","tabIndex","onClick","src","screenReaderText","ref","render","createPortal","propTypes","bool","string","oneOfType","element","isRequired","arrayOf","shape","func","defaultProps","undefined"],"sources":["../../src/Modal/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport { tabbable } from 'tabbable';\n\nimport { Close } from '../../icons';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport newId from '../utils/newId';\nimport Variant from '../utils/constants';\n\nclass Modal extends React.Component {\n constructor(props) {\n super(props);\n\n this.close = this.close.bind(this);\n\n this.headerId = newId();\n this.modalBodyRef = React.createRef();\n\n if (typeof document !== 'undefined') {\n this.el = document.createElement('div');\n // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612\n this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;\n }\n\n this.state = {\n open: props.open,\n };\n }\n\n componentDidMount() {\n const { parentSelector } = this.props;\n this.parentElement = document.querySelector(parentSelector);\n if (this.parentElement === null) {\n throw new Error(`Modal received invalid parentSelector: ${parentSelector}, no matching element found`);\n }\n this.parentElement.appendChild(this.el);\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { open } = this.props;\n if (open !== prevProps.open || open !== prevState.open) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ open });\n }\n }\n\n componentWillUnmount() {\n if (this.parentElement) {\n ReactDOM.unmountComponentAtNode(this.parentElement);\n }\n }\n\n getVariantIconClassName() {\n const { variant } = this.props;\n let variantIconClassName;\n\n switch (variant.status) {\n case Variant.status.WARNING:\n variantIconClassName = classNames(\n 'fa',\n 'fa-exclamation-triangle',\n 'fa-3x',\n `text-${variant.status.toLowerCase()}`,\n );\n break;\n default:\n break;\n }\n\n return variantIconClassName;\n }\n\n getVariantGridBody(body) {\n const { variant } = this.props;\n\n return (\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-10\">\n <div>\n {body}\n </div>\n </div>\n <div className=\"col-md-2\" data-testid=\"modal-icon\">\n <Icon\n id={newId(`Modal-${variant.status}`)}\n className={this.getVariantIconClassName()}\n />\n </div>\n </div>\n </div>\n );\n }\n\n getTabbableBodyElements() {\n if (this.modalBodyRef?.current) {\n return tabbable(this.modalBodyRef.current);\n }\n return [];\n }\n\n isValidVariantStatus() {\n const { variant } = this.props;\n return Object.values(Variant.status).includes(variant.status);\n }\n\n close(e) {\n if (e) {\n e.stopPropagation();\n }\n\n this.setState({ open: false });\n this.props.onClose();\n }\n\n renderButtons() {\n return this.props.buttons.map((button) => {\n // button is either a React component that we want clone or a set of props\n if (React.isValidElement(button)) {\n return React.cloneElement(button, {\n key: button.props.children,\n });\n }\n\n const { label, ...buttonProps } = button;\n\n return (\n <Button.Deprecated\n {...buttonProps}\n key={label}\n >\n {label}\n </Button.Deprecated>\n );\n });\n }\n\n renderBody() {\n let { body } = this.props;\n\n if (typeof body === 'string') {\n body = <p>{body}</p>;\n }\n\n if (this.isValidVariantStatus()) {\n body = this.getVariantGridBody(body);\n }\n\n return body;\n }\n\n renderModal() {\n const { open } = this.state;\n const {\n dialogClassName,\n renderDefaultCloseButton,\n renderHeaderCloseButton,\n buttons,\n closeText,\n title,\n } = this.props;\n\n const hasTabbableElements = (\n renderDefaultCloseButton\n || renderHeaderCloseButton\n || buttons.length > 0\n || this.getTabbableBodyElements().length > 0\n );\n const renderModalFooter = renderDefaultCloseButton || buttons.length > 0;\n\n return (\n <>\n <div\n className={classNames({\n 'modal-backdrop': open,\n show: open,\n fade: !open,\n })}\n role=\"presentation\"\n data-testid=\"modal-backdrop\"\n />\n <div\n className={classNames(\n 'modal',\n {\n show: open,\n fade: !open,\n 'd-block': open,\n 'is-ie11': this.isIE11,\n },\n )}\n role=\"presentation\"\n data-testid=\"modal\"\n >\n <div\n className={classNames(\n {\n 'modal-dialog': open,\n },\n dialogClassName,\n )}\n role=\"dialog\"\n aria-modal\n aria-labelledby={this.headerId}\n >\n <FocusOn\n enabled={open}\n onClickOutside={this.close}\n onEscapeKey={this.close}\n >\n <div\n className=\"modal-content\"\n data-testid=\"modal-content\"\n // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.\n {...(!hasTabbableElements ? { tabIndex: -1 } : {})}\n >\n <div className=\"modal-header\">\n <h2 className=\"modal-title\" id={this.headerId}>{title}</h2>\n {renderHeaderCloseButton && (\n <Button.Deprecated\n className=\"p-1\"\n onClick={this.close}\n data-testid=\"modal-header-btn\"\n >\n <Icon src={Close} screenReaderText={closeText} />\n </Button.Deprecated>\n )}\n </div>\n <div className=\"modal-body\" ref={this.modalBodyRef} data-testid=\"modal-body\">\n {this.renderBody()}\n </div>\n {renderModalFooter && (\n <div className=\"modal-footer\">\n {renderDefaultCloseButton && (\n <Button\n variant=\"link\"\n onClick={this.close}\n data-testid=\"modal-footer-btn\"\n >\n {closeText}\n </Button>\n )}\n {this.renderButtons()}\n </div>\n )}\n </div>\n </FocusOn>\n </div>\n </div>\n </>\n );\n }\n\n render() {\n if (!this.el) {\n return null;\n }\n\n return ReactDOM.createPortal(\n this.renderModal(),\n this.el,\n );\n }\n}\n\nModal.propTypes = {\n /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */\n open: PropTypes.bool,\n /** is the selector for an element in the dom which the modal should be rendered under.\n * It uses querySelector to find the first element that matches that selector,\n * and then creates a React portal to a div underneath the parent element.\n */\n parentSelector: PropTypes.string,\n /** a string or an element that is rendered inside of the modal title, above the modal body. */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n /** a string or an element that is rendered inside of the modal body, between the title and the footer. */\n body: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n /** an array of either elements or shapes that take the form of the buttonPropTypes.\n * See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40)\n * for a list of acceptable props to pass as part of a button. */\n buttons: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}), // TODO: Only accept nodes in the future\n ])),\n /** specifies the display text of the default Close button. It defaults to \"Close\". */\n closeText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** a function that is called on close. It can be used to perform actions upon closing of the modal,\n * such as restoring focus to the previous logical focusable element. */\n onClose: PropTypes.func.isRequired,\n variant: PropTypes.shape({\n status: PropTypes.string,\n }),\n /** specifies whether the default close button is rendered in the footer. It defaults to true. */\n renderDefaultCloseButton: PropTypes.bool,\n /** specifies whether a close button is rendered in the modal header. It defaults to true. */\n renderHeaderCloseButton: PropTypes.bool,\n /**\n * Specifies optional classes to add to the element with the '.modal-dialog' class.\n * See Bootstrap documentation for possible classes. Some options: modal-lg, modal-sm, modal-dialog-centered\n */\n dialogClassName: PropTypes.string,\n};\n\nModal.defaultProps = {\n open: false,\n parentSelector: 'body',\n buttons: [],\n closeText: 'Close',\n variant: {},\n renderDefaultCloseButton: true,\n renderHeaderCloseButton: true,\n dialogClassName: undefined,\n};\n\nexport default Modal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","ReactDOM","classNames","PropTypes","FocusOn","tabbable","Close","Button","Icon","newId","Variant","Modal","Component","constructor","props","close","bind","headerId","modalBodyRef","createRef","document","el","createElement","isIE11","global","MSInputMethodContext","documentMode","state","open","componentDidMount","parentSelector","parentElement","querySelector","Error","appendChild","componentDidUpdate","prevProps","prevState","setState","componentWillUnmount","unmountComponentAtNode","getVariantIconClassName","variant","variantIconClassName","status","WARNING","toLowerCase","getVariantGridBody","body","className","id","getTabbableBodyElements","current","isValidVariantStatus","Object","values","includes","e","stopPropagation","onClose","renderButtons","buttons","map","button","isValidElement","cloneElement","key","children","label","buttonProps","Deprecated","renderBody","renderModal","dialogClassName","renderDefaultCloseButton","renderHeaderCloseButton","closeText","title","hasTabbableElements","length","renderModalFooter","Fragment","show","fade","role","enabled","onClickOutside","onEscapeKey","tabIndex","onClick","src","screenReaderText","ref","render","createPortal","propTypes","bool","string","oneOfType","element","isRequired","arrayOf","shape","func","defaultProps","undefined"],"sources":["../../src/Modal/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { FocusOn } from 'react-focus-on';\nimport { tabbable } from 'tabbable';\n\nimport { Close } from '../../icons';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport newId from '../utils/newId';\nimport Variant from '../utils/constants';\n\nclass Modal extends React.Component {\n constructor(props) {\n super(props);\n\n this.close = this.close.bind(this);\n\n this.headerId = newId();\n this.modalBodyRef = React.createRef();\n\n if (typeof document !== 'undefined') {\n this.el = document.createElement('div');\n // Sets true for IE11, false otherwise: https://stackoverflow.com/a/22082397/6620612\n this.isIE11 = !!global.MSInputMethodContext && !!document.documentMode;\n }\n\n this.state = {\n open: props.open,\n };\n }\n\n componentDidMount() {\n const { parentSelector } = this.props;\n this.parentElement = document.querySelector(parentSelector);\n if (this.parentElement === null) {\n throw new Error(`Modal received invalid parentSelector: ${parentSelector}, no matching element found`);\n }\n this.parentElement.appendChild(this.el);\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { open } = this.props;\n if (open !== prevProps.open || open !== prevState.open) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ open });\n }\n }\n\n componentWillUnmount() {\n if (this.parentElement) {\n // TODO: update this to use the new createRoot() compatible APIs.\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.unmountComponentAtNode(this.parentElement);\n }\n }\n\n getVariantIconClassName() {\n const { variant } = this.props;\n let variantIconClassName;\n\n switch (variant.status) {\n case Variant.status.WARNING:\n variantIconClassName = classNames(\n 'fa',\n 'fa-exclamation-triangle',\n 'fa-3x',\n `text-${variant.status.toLowerCase()}`,\n );\n break;\n default:\n break;\n }\n\n return variantIconClassName;\n }\n\n getVariantGridBody(body) {\n const { variant } = this.props;\n\n return (\n <div className=\"container-fluid\">\n <div className=\"row\">\n <div className=\"col-md-10\">\n <div>\n {body}\n </div>\n </div>\n <div className=\"col-md-2\" data-testid=\"modal-icon\">\n <Icon\n id={newId(`Modal-${variant.status}`)}\n className={this.getVariantIconClassName()}\n />\n </div>\n </div>\n </div>\n );\n }\n\n getTabbableBodyElements() {\n if (this.modalBodyRef?.current) {\n return tabbable(this.modalBodyRef.current);\n }\n return [];\n }\n\n isValidVariantStatus() {\n const { variant } = this.props;\n return Object.values(Variant.status).includes(variant.status);\n }\n\n close(e) {\n if (e) {\n e.stopPropagation();\n }\n\n this.setState({ open: false });\n this.props.onClose();\n }\n\n renderButtons() {\n return this.props.buttons.map((button) => {\n // button is either a React component that we want clone or a set of props\n if (React.isValidElement(button)) {\n return React.cloneElement(button, {\n key: button.props.children,\n });\n }\n\n const { label, ...buttonProps } = button;\n\n return (\n <Button.Deprecated\n {...buttonProps}\n key={label}\n >\n {label}\n </Button.Deprecated>\n );\n });\n }\n\n renderBody() {\n let { body } = this.props;\n\n if (typeof body === 'string') {\n body = <p>{body}</p>;\n }\n\n if (this.isValidVariantStatus()) {\n body = this.getVariantGridBody(body);\n }\n\n return body;\n }\n\n renderModal() {\n const { open } = this.state;\n const {\n dialogClassName,\n renderDefaultCloseButton,\n renderHeaderCloseButton,\n buttons,\n closeText,\n title,\n } = this.props;\n\n const hasTabbableElements = (\n renderDefaultCloseButton\n || renderHeaderCloseButton\n || buttons.length > 0\n || this.getTabbableBodyElements().length > 0\n );\n const renderModalFooter = renderDefaultCloseButton || buttons.length > 0;\n\n return (\n <>\n <div\n className={classNames({\n 'modal-backdrop': open,\n show: open,\n fade: !open,\n })}\n role=\"presentation\"\n data-testid=\"modal-backdrop\"\n />\n <div\n className={classNames(\n 'modal',\n {\n show: open,\n fade: !open,\n 'd-block': open,\n 'is-ie11': this.isIE11,\n },\n )}\n role=\"presentation\"\n data-testid=\"modal\"\n >\n <div\n className={classNames(\n {\n 'modal-dialog': open,\n },\n dialogClassName,\n )}\n role=\"dialog\"\n aria-modal\n aria-labelledby={this.headerId}\n >\n <FocusOn\n enabled={open}\n onClickOutside={this.close}\n onEscapeKey={this.close}\n >\n <div\n className=\"modal-content\"\n data-testid=\"modal-content\"\n // if the modal doesn't contain any tabbable elements, make this element programmatically focusable.\n {...(!hasTabbableElements ? { tabIndex: -1 } : {})}\n >\n <div className=\"modal-header\">\n <h2 className=\"modal-title\" id={this.headerId}>{title}</h2>\n {renderHeaderCloseButton && (\n <Button.Deprecated\n className=\"p-1\"\n onClick={this.close}\n data-testid=\"modal-header-btn\"\n >\n <Icon src={Close} screenReaderText={closeText} />\n </Button.Deprecated>\n )}\n </div>\n <div className=\"modal-body\" ref={this.modalBodyRef} data-testid=\"modal-body\">\n {this.renderBody()}\n </div>\n {renderModalFooter && (\n <div className=\"modal-footer\">\n {renderDefaultCloseButton && (\n <Button\n variant=\"link\"\n onClick={this.close}\n data-testid=\"modal-footer-btn\"\n >\n {closeText}\n </Button>\n )}\n {this.renderButtons()}\n </div>\n )}\n </div>\n </FocusOn>\n </div>\n </div>\n </>\n );\n }\n\n render() {\n if (!this.el) {\n return null;\n }\n\n return ReactDOM.createPortal(\n this.renderModal(),\n this.el,\n );\n }\n}\n\nModal.propTypes = {\n /** specifies whether the modal renders open or closed on the initial render. It defaults to false. */\n open: PropTypes.bool,\n /** is the selector for an element in the dom which the modal should be rendered under.\n * It uses querySelector to find the first element that matches that selector,\n * and then creates a React portal to a div underneath the parent element.\n */\n parentSelector: PropTypes.string,\n /** a string or an element that is rendered inside of the modal title, above the modal body. */\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n /** a string or an element that is rendered inside of the modal body, between the title and the footer. */\n body: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,\n /** an array of either elements or shapes that take the form of the buttonPropTypes.\n * See the [buttonPropTypes](https://github.com/openedx/paragon/blob/master/src/Button/index.jsx#L40)\n * for a list of acceptable props to pass as part of a button. */\n buttons: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({}), // TODO: Only accept nodes in the future\n ])),\n /** specifies the display text of the default Close button. It defaults to \"Close\". */\n closeText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** a function that is called on close. It can be used to perform actions upon closing of the modal,\n * such as restoring focus to the previous logical focusable element. */\n onClose: PropTypes.func.isRequired,\n variant: PropTypes.shape({\n status: PropTypes.string,\n }),\n /** specifies whether the default close button is rendered in the footer. It defaults to true. */\n renderDefaultCloseButton: PropTypes.bool,\n /** specifies whether a close button is rendered in the modal header. It defaults to true. */\n renderHeaderCloseButton: PropTypes.bool,\n /**\n * Specifies optional classes to add to the element with the '.modal-dialog' class.\n * See Bootstrap documentation for possible classes. Some options: modal-lg, modal-sm, modal-dialog-centered\n */\n dialogClassName: PropTypes.string,\n};\n\nModal.defaultProps = {\n open: false,\n parentSelector: 'body',\n buttons: [],\n closeText: 'Close',\n variant: {},\n renderDefaultCloseButton: true,\n renderHeaderCloseButton: true,\n dialogClassName: undefined,\n};\n\nexport default Modal;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/Modal/index.scss
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use "sass:map";
|
|
1
2
|
@import "variables";
|
|
2
3
|
@import "~bootstrap/scss/modal";
|
|
3
4
|
@import "ModalDialog";
|
|
@@ -19,12 +20,9 @@
|
|
|
19
20
|
|
|
20
21
|
.pgn__modal-backdrop {
|
|
21
22
|
background: $modal-backdrop-bg;
|
|
22
|
-
|
|
23
|
-
left: 0;
|
|
23
|
+
inset: 0;
|
|
24
24
|
opacity: $modal-backdrop-opacity;
|
|
25
25
|
position: fixed;
|
|
26
|
-
right: 0;
|
|
27
|
-
top: 0;
|
|
28
26
|
z-index: 0;
|
|
29
27
|
}
|
|
30
28
|
|
|
@@ -88,7 +86,7 @@
|
|
|
88
86
|
margin: auto;
|
|
89
87
|
padding: calc($spacer / 2);
|
|
90
88
|
|
|
91
|
-
@media (min-width: map
|
|
89
|
+
@media (min-width: map.get($grid-breakpoints, "sm")) {
|
|
92
90
|
padding: $spacer;
|
|
93
91
|
}
|
|
94
92
|
}
|
package/dist/Nav/_mixins.scss
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
1
3
|
@mixin nav-tabs-link-focus(
|
|
2
4
|
$border-color,
|
|
3
5
|
$radius: $nav-tabs-border-radius,
|
|
@@ -5,7 +7,7 @@
|
|
|
5
7
|
) {
|
|
6
8
|
position: relative;
|
|
7
9
|
outline: 0;
|
|
8
|
-
z-index: map
|
|
10
|
+
z-index: map.get($map: $indexes, $key: 1);
|
|
9
11
|
|
|
10
12
|
&::before {
|
|
11
13
|
content: "";
|
package/dist/Overlay/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { type OverlayProps } from 'react-bootstrap/Overlay';
|
|
3
3
|
import { type OverlayTriggerProps, type OverlayTriggerType } from 'react-bootstrap/OverlayTrigger';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
declare function Overlay(props: OverlayProps):
|
|
5
|
+
declare function Overlay(props: OverlayProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
declare namespace Overlay {
|
|
7
7
|
var propTypes: {
|
|
8
8
|
/** Specifies the content of the `Overlay`. */
|
|
@@ -72,7 +72,7 @@ declare namespace Overlay {
|
|
|
72
72
|
transition: React.ForwardRefExoticComponent<import("react-bootstrap/Fade").FadeProps & React.RefAttributes<import("react-transition-group/Transition").default<any>>>;
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
-
declare function OverlayTrigger(props: OverlayTriggerProps):
|
|
75
|
+
declare function OverlayTrigger(props: OverlayTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
76
76
|
declare namespace OverlayTrigger {
|
|
77
77
|
var propTypes: {
|
|
78
78
|
/** Specifies the content of the `OverlayTrigger`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","Close","Icon","IconButton","PAGE_BANNER_DISMISS_ALT_TEXT","VARIANTS","light","dark","warning","accentA","accentB","PageBanner","_ref","children","dismissible","dismissAltText","onDismiss","show","variant","rest","createElement","className","role","onClick","iconAs","alt","src","size","invertColors","propTypes","node","bool","func","oneOf","defaultProps","undefined"],"sources":["../../src/PageBanner/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Close } from '../../icons';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\nexport const PAGE_BANNER_DISMISS_ALT_TEXT = 'Dismiss';\n\nexport const VARIANTS = {\n light: 'light',\n dark: 'dark',\n warning: 'warning',\n accentA: 'accentA',\n accentB: 'accentB',\n};\n\nfunction PageBanner({\n children, dismissible, dismissAltText, onDismiss, show, variant, ...rest\n}) {\n if (!show) {\n return null;\n }\n return (\n <div\n className={classNames(\n 'pgn__pageBanner-component',\n `pgn__pageBanner__${variant}`,\n )}\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n {...rest}\n >\n <div className=\"pgn__pageBanner-content\">\n { children }\n </div>\n {dismissible && (\n <span className=\"pgn__pageBanner-dismissButtonContainer\">\n <IconButton\n onClick={onDismiss}\n iconAs={Icon}\n alt={dismissAltText}\n src={Close}\n size=\"inline\"\n invertColors={variant === 'dark'}\n variant={variant === 'dark' ? 'dark' : 'black'}\n />\n </span>\n )}\n </div>\n );\n}\n\nPageBanner.propTypes = {\n /** An element rendered inside the `Page Banner`. */\n children: PropTypes.node,\n /** Boolean used to control whether `Page Banner` is dismissible. */\n dismissible: PropTypes.bool,\n /** An element to be set as the dismiss button's alt text (preferably a translated string). */\n dismissAltText: PropTypes.node,\n /** A function to be called on dismiss of the `Page Banner`. */\n onDismiss: PropTypes.func,\n /** Boolean used to control whether the Page Banner shows. */\n show: PropTypes.bool,\n /** A string designating which color variant of the `Page Banner` to display */\n variant: PropTypes.oneOf([VARIANTS.light, VARIANTS.dark, VARIANTS.warning, VARIANTS.accentA, VARIANTS.accentB]),\n};\n\nPageBanner.defaultProps = {\n children: undefined,\n dismissible: false,\n dismissAltText: PAGE_BANNER_DISMISS_ALT_TEXT,\n onDismiss: () => {},\n show: true,\n variant: VARIANTS.accentA,\n};\n\nexport default PageBanner;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,QAAQ,aAAa;AACnC,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,UAAU,MAAM,eAAe;AAEtC,OAAO,MAAMC,4BAA4B,GAAG,SAAS;AAErD,OAAO,MAAMC,QAAQ,GAAG;EACtBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACX,CAAC;AAED,SAASC,UAAUA,CAAAC,IAAA,EAEhB;EAAA,IAFiB;IAClBC,QAAQ;IAAEC,WAAW;IAAEC,cAAc;IAAEC,SAAS;IAAEC,IAAI;IAAEC,OAAO;IAAE,GAAGC;EACtE,CAAC,GAAAP,IAAA;EACC,IAAI,CAACK,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EACA,oBACEnB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAErB,UAAU,CACnB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","Close","Icon","IconButton","PAGE_BANNER_DISMISS_ALT_TEXT","VARIANTS","light","dark","warning","accentA","accentB","PageBanner","_ref","children","dismissible","dismissAltText","onDismiss","show","variant","rest","createElement","className","role","onClick","iconAs","alt","src","size","invertColors","propTypes","node","bool","func","oneOf","defaultProps","undefined"],"sources":["../../src/PageBanner/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Close } from '../../icons';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\n\nexport const PAGE_BANNER_DISMISS_ALT_TEXT = 'Dismiss';\n\nexport const VARIANTS = {\n light: 'light',\n dark: 'dark',\n warning: 'warning',\n accentA: 'accentA',\n accentB: 'accentB',\n};\n\nfunction PageBanner({\n children, dismissible, dismissAltText, onDismiss, show, variant, ...rest\n}) {\n if (!show) {\n return null;\n }\n return (\n <div\n className={classNames(\n 'pgn__pageBanner-component',\n `pgn__pageBanner__${variant}`,\n )}\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n {...rest}\n >\n <div className=\"pgn__pageBanner-content\">\n { children }\n </div>\n {dismissible && (\n <span className=\"pgn__pageBanner-dismissButtonContainer\">\n <IconButton\n onClick={onDismiss}\n iconAs={Icon}\n alt={dismissAltText}\n src={Close}\n size=\"inline\"\n invertColors={variant === 'dark'}\n variant={variant === 'dark' ? 'dark' : 'black'}\n />\n </span>\n )}\n </div>\n );\n}\n\nPageBanner.propTypes = {\n /** An element rendered inside the `Page Banner`. */\n children: PropTypes.node,\n /** Boolean used to control whether `Page Banner` is dismissible. */\n dismissible: PropTypes.bool,\n /** An element to be set as the dismiss button's alt text (preferably a translated string). */\n dismissAltText: PropTypes.node,\n /** A function to be called on dismiss of the `Page Banner`. */\n onDismiss: PropTypes.func,\n /** Boolean used to control whether the Page Banner shows. */\n show: PropTypes.bool,\n /** A string designating which color variant of the `Page Banner` to display */\n variant: PropTypes.oneOf([VARIANTS.light, VARIANTS.dark, VARIANTS.warning, VARIANTS.accentA, VARIANTS.accentB]),\n};\n\nPageBanner.defaultProps = {\n children: undefined,\n dismissible: false,\n dismissAltText: PAGE_BANNER_DISMISS_ALT_TEXT,\n onDismiss: () => {},\n show: true,\n variant: VARIANTS.accentA,\n};\n\nexport default PageBanner;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,QAAQ,aAAa;AACnC,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,UAAU,MAAM,eAAe;AAEtC,OAAO,MAAMC,4BAA4B,GAAG,SAAS;AAErD,OAAO,MAAMC,QAAQ,GAAG;EACtBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACX,CAAC;AAED,SAASC,UAAUA,CAAAC,IAAA,EAEhB;EAAA,IAFiB;IAClBC,QAAQ;IAAEC,WAAW;IAAEC,cAAc;IAAEC,SAAS;IAAEC,IAAI;IAAEC,OAAO;IAAE,GAAGC;EACtE,CAAC,GAAAP,IAAA;EACC,IAAI,CAACK,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EACA,oBACEnB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAErB,UAAU,CACnB,2BAA2B,EAC3B,oBAAoBkB,OAAO,EAC7B,CAAE;IACFI,IAAI,EAAC,OAAO;IACZ,aAAU,QAAQ;IAClB,eAAY,MAAM;IAAA,GACdH;EAAI,gBAERrB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAAyB,GACpCR,QACC,CAAC,EACLC,WAAW,iBACVhB,KAAA,CAAAsB,aAAA;IAAMC,SAAS,EAAC;EAAwC,gBACtDvB,KAAA,CAAAsB,aAAA,CAACjB,UAAU;IACToB,OAAO,EAAEP,SAAU;IACnBQ,MAAM,EAAEtB,IAAK;IACbuB,GAAG,EAAEV,cAAe;IACpBW,GAAG,EAAEzB,KAAM;IACX0B,IAAI,EAAC,QAAQ;IACbC,YAAY,EAAEV,OAAO,KAAK,MAAO;IACjCA,OAAO,EAAEA,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG;EAAQ,CAChD,CACG,CAEL,CAAC;AAEV;AAEAP,UAAU,CAACkB,SAAS,GAAG;EACrB;EACAhB,QAAQ,EAAEd,SAAS,CAAC+B,IAAI;EACxB;EACAhB,WAAW,EAAEf,SAAS,CAACgC,IAAI;EAC3B;EACAhB,cAAc,EAAEhB,SAAS,CAAC+B,IAAI;EAC9B;EACAd,SAAS,EAAEjB,SAAS,CAACiC,IAAI;EACzB;EACAf,IAAI,EAAElB,SAAS,CAACgC,IAAI;EACpB;EACAb,OAAO,EAAEnB,SAAS,CAACkC,KAAK,CAAC,CAAC5B,QAAQ,CAACC,KAAK,EAAED,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACG,OAAO,EAAEH,QAAQ,CAACI,OAAO,EAAEJ,QAAQ,CAACK,OAAO,CAAC;AAChH,CAAC;AAEDC,UAAU,CAACuB,YAAY,GAAG;EACxBrB,QAAQ,EAAEsB,SAAS;EACnBrB,WAAW,EAAE,KAAK;EAClBC,cAAc,EAAEX,4BAA4B;EAC5CY,SAAS,EAAEA,CAAA,KAAM,CAAC,CAAC;EACnBC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAEb,QAAQ,CAACI;AACpB,CAAC;AAED,eAAeE,UAAU","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use "sass:map";
|
|
1
2
|
// stylelint-disable-next-line selector-class-pattern
|
|
2
3
|
.pgn__pageBanner-component {
|
|
3
4
|
width: 100%;
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
flex-grow: 1;
|
|
47
48
|
justify-content: center;
|
|
48
49
|
align-items: center;
|
|
49
|
-
padding:
|
|
50
|
+
padding: map.get($spacers, 2) map.get($spacers, 2\.5);
|
|
50
51
|
text-align: center;
|
|
51
52
|
}
|
|
52
53
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationContext.js","names":["React","createContext","useEffect","useRef","useState","PropTypes","PAGINATION_VARIANTS","getPaginationRange","PaginationContext","PaginationContextProvider","_ref","children","onPageSelect","invertColors","maxPagesDisplayed","buttonLabels","icons","variant","pageCount","currentPage","controlledCurrentPage","initialPage","setCurrentPage","pageButtonSelected","setPageButtonSelected","previousButtonRef","nextButtonRef","pageButtonRef","currentPageRef","focus","isUncontrolled","undefined","isPageButtonActive","page","isOnFirstPage","isOnLastPage","isDefaultVariant","default","getPageButtonRefHandler","pageNum","element","current","handlePageSelect","handlePreviousButtonClick","prevState","handleNextButtonClick","getAriaLabelForPreviousButton","ariaLabel","previous","getAriaLabelForNextButton","next","getAriaLabelForPageButton","getAriaLabelForPageOfCountButton","pageOfCount","getScreenReaderText","getPageOfText","getPageButtonVariant","buttonVariant","getNextButtonIcon","rightIcon","getPrevButtonIcon","leftIcon","displayPages","currentIndex","count","length","requireFirstAndLastPages","value","createElement","Provider","propTypes","node","isRequired","func","number","shape","string","oneOfType","oneOf","Object","values","bool","defaultProps"],"sources":["../../src/Pagination/PaginationContext.jsx"],"sourcesContent":["import React, {\n createContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { PAGINATION_VARIANTS } from './constants';\nimport getPaginationRange from './getPaginationRange';\n\nconst PaginationContext = createContext({});\n\nfunction PaginationContextProvider({\n children, onPageSelect, invertColors, maxPagesDisplayed,\n buttonLabels, icons, variant,\n pageCount, currentPage: controlledCurrentPage, initialPage,\n}) {\n const [currentPage, setCurrentPage] = useState(controlledCurrentPage || initialPage);\n const [pageButtonSelected, setPageButtonSelected] = useState(false);\n const previousButtonRef = useRef(null);\n const nextButtonRef = useRef(null);\n const pageButtonRef = useRef([]);\n\n useEffect(() => {\n const currentPageRef = pageButtonRef[currentPage];\n\n if (currentPageRef && pageButtonSelected) {\n currentPageRef.focus();\n setPageButtonSelected(false);\n }\n }, [currentPage, pageButtonSelected]);\n\n const isUncontrolled = () => controlledCurrentPage === undefined;\n const isPageButtonActive = (page) => page === currentPage;\n const isOnFirstPage = () => (currentPage === 1 || pageCount === 0);\n const isOnLastPage = () => currentPage === pageCount || pageCount === 0;\n const isDefaultVariant = () => variant === PAGINATION_VARIANTS.default;\n\n if (!isUncontrolled() && controlledCurrentPage !== currentPage) {\n setCurrentPage(controlledCurrentPage);\n }\n\n const getPageButtonRefHandler = (pageNum) => (element) => { pageButtonRef.current[pageNum] = element; };\n\n const handlePageSelect = (page) => {\n if (page !== currentPage) {\n if (isUncontrolled()) {\n setCurrentPage(page);\n }\n setPageButtonSelected(true);\n onPageSelect(page);\n }\n };\n\n const handlePreviousButtonClick = () => {\n onPageSelect(currentPage - 1);\n if (currentPage === 2) {\n nextButtonRef.current.focus();\n }\n if (isUncontrolled()) {\n setCurrentPage((prevState) => prevState - 1);\n }\n };\n\n const handleNextButtonClick = () => {\n onPageSelect(currentPage + 1);\n if (currentPage === pageCount - 1) {\n previousButtonRef.current.focus();\n }\n if (isUncontrolled()) {\n setCurrentPage((prevState) => prevState + 1);\n }\n };\n\n const getAriaLabelForPreviousButton = () => {\n let ariaLabel = `${buttonLabels.previous}`;\n\n if (!isOnFirstPage()) {\n ariaLabel += `, ${buttonLabels.page} ${currentPage - 1}`;\n }\n\n return ariaLabel;\n };\n\n const getAriaLabelForNextButton = () => {\n let ariaLabel = `${buttonLabels.next}`;\n\n if (!isOnLastPage()) {\n ariaLabel += `, ${buttonLabels.page} ${currentPage + 1}`;\n }\n\n return ariaLabel;\n };\n\n const getAriaLabelForPageButton = (page) => {\n let ariaLabel = `${buttonLabels.page} ${page}`;\n\n if (isPageButtonActive(page)) {\n ariaLabel += `, ${buttonLabels.currentPage}`;\n }\n\n return ariaLabel;\n };\n\n const getAriaLabelForPageOfCountButton = () => `${buttonLabels.page} ${currentPage}, ${buttonLabels.currentPage}, ${buttonLabels.pageOfCount} ${pageCount}`;\n\n const getScreenReaderText = () => `${buttonLabels.page} ${currentPage}, ${buttonLabels.currentPage}, ${buttonLabels.pageOfCount} ${pageCount}`;\n const getPageOfText = () => `${currentPage} ${buttonLabels.pageOfCount} ${pageCount}`;\n\n const getPageButtonVariant = (page) => {\n let buttonVariant = isPageButtonActive(page) ? 'primary' : 'tertiary';\n\n if (invertColors) {\n buttonVariant = `inverse-${buttonVariant}`;\n }\n\n return buttonVariant;\n };\n\n const getNextButtonIcon = () => icons.rightIcon;\n const getPrevButtonIcon = () => icons.leftIcon;\n\n const displayPages = getPaginationRange({\n currentIndex: currentPage,\n count: pageCount,\n length: maxPagesDisplayed,\n requireFirstAndLastPages: true,\n });\n\n const value = {\n invertColors,\n displayPages,\n pageCount,\n buttonLabels,\n previousButtonRef,\n nextButtonRef,\n pageButtonRef,\n getPrevButtonIcon,\n getNextButtonIcon,\n getAriaLabelForNextButton,\n getAriaLabelForPageButton,\n getAriaLabelForPreviousButton,\n getAriaLabelForPageOfCountButton,\n getPageButtonVariant,\n handlePreviousButtonClick,\n handleNextButtonClick,\n handlePageSelect,\n isOnFirstPage,\n isOnLastPage,\n isPageButtonActive,\n isDefaultVariant,\n getScreenReaderText,\n getPageOfText,\n getPageButtonRefHandler,\n };\n\n return (\n <PaginationContext.Provider value={value}>\n {children}\n </PaginationContext.Provider>\n );\n}\n\nPaginationContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n onPageSelect: PropTypes.func.isRequired,\n pageCount: PropTypes.number.isRequired,\n buttonLabels: PropTypes.shape({\n previous: PropTypes.string,\n next: PropTypes.string,\n page: PropTypes.string,\n currentPage: PropTypes.string,\n pageOfCount: PropTypes.string,\n }).isRequired,\n currentPage: PropTypes.number,\n maxPagesDisplayed: PropTypes.number.isRequired,\n icons: PropTypes.shape({\n leftIcon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n rightIcon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n }).isRequired,\n variant: PropTypes.oneOf(Object.values(PAGINATION_VARIANTS)).isRequired,\n invertColors: PropTypes.bool.isRequired,\n initialPage: PropTypes.number.isRequired,\n};\n\nPaginationContextProvider.defaultProps = {\n currentPage: undefined,\n};\n\nexport { PaginationContextProvider };\nexport default PaginationContext;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PaginationContext.js","names":["React","createContext","useEffect","useRef","useState","PropTypes","PAGINATION_VARIANTS","getPaginationRange","PaginationContext","PaginationContextProvider","_ref","children","onPageSelect","invertColors","maxPagesDisplayed","buttonLabels","icons","variant","pageCount","currentPage","controlledCurrentPage","initialPage","setCurrentPage","pageButtonSelected","setPageButtonSelected","previousButtonRef","nextButtonRef","pageButtonRef","currentPageRef","focus","isUncontrolled","undefined","isPageButtonActive","page","isOnFirstPage","isOnLastPage","isDefaultVariant","default","getPageButtonRefHandler","pageNum","element","current","handlePageSelect","handlePreviousButtonClick","prevState","handleNextButtonClick","getAriaLabelForPreviousButton","ariaLabel","previous","getAriaLabelForNextButton","next","getAriaLabelForPageButton","getAriaLabelForPageOfCountButton","pageOfCount","getScreenReaderText","getPageOfText","getPageButtonVariant","buttonVariant","getNextButtonIcon","rightIcon","getPrevButtonIcon","leftIcon","displayPages","currentIndex","count","length","requireFirstAndLastPages","value","createElement","Provider","propTypes","node","isRequired","func","number","shape","string","oneOfType","oneOf","Object","values","bool","defaultProps"],"sources":["../../src/Pagination/PaginationContext.jsx"],"sourcesContent":["import React, {\n createContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { PAGINATION_VARIANTS } from './constants';\nimport getPaginationRange from './getPaginationRange';\n\nconst PaginationContext = createContext({});\n\nfunction PaginationContextProvider({\n children, onPageSelect, invertColors, maxPagesDisplayed,\n buttonLabels, icons, variant,\n pageCount, currentPage: controlledCurrentPage, initialPage,\n}) {\n const [currentPage, setCurrentPage] = useState(controlledCurrentPage || initialPage);\n const [pageButtonSelected, setPageButtonSelected] = useState(false);\n const previousButtonRef = useRef(null);\n const nextButtonRef = useRef(null);\n const pageButtonRef = useRef([]);\n\n useEffect(() => {\n const currentPageRef = pageButtonRef[currentPage];\n\n if (currentPageRef && pageButtonSelected) {\n currentPageRef.focus();\n setPageButtonSelected(false);\n }\n }, [currentPage, pageButtonSelected]);\n\n const isUncontrolled = () => controlledCurrentPage === undefined;\n const isPageButtonActive = (page) => page === currentPage;\n const isOnFirstPage = () => (currentPage === 1 || pageCount === 0);\n const isOnLastPage = () => currentPage === pageCount || pageCount === 0;\n const isDefaultVariant = () => variant === PAGINATION_VARIANTS.default;\n\n if (!isUncontrolled() && controlledCurrentPage !== currentPage) {\n setCurrentPage(controlledCurrentPage);\n }\n\n const getPageButtonRefHandler = (pageNum) => (element) => { pageButtonRef.current[pageNum] = element; };\n\n const handlePageSelect = (page) => {\n if (page !== currentPage) {\n if (isUncontrolled()) {\n setCurrentPage(page);\n }\n setPageButtonSelected(true);\n onPageSelect(page);\n }\n };\n\n const handlePreviousButtonClick = () => {\n onPageSelect(currentPage - 1);\n if (currentPage === 2) {\n nextButtonRef.current.focus();\n }\n if (isUncontrolled()) {\n setCurrentPage((prevState) => prevState - 1);\n }\n };\n\n const handleNextButtonClick = () => {\n onPageSelect(currentPage + 1);\n if (currentPage === pageCount - 1) {\n previousButtonRef.current.focus();\n }\n if (isUncontrolled()) {\n setCurrentPage((prevState) => prevState + 1);\n }\n };\n\n const getAriaLabelForPreviousButton = () => {\n let ariaLabel = `${buttonLabels.previous}`;\n\n if (!isOnFirstPage()) {\n ariaLabel += `, ${buttonLabels.page} ${currentPage - 1}`;\n }\n\n return ariaLabel;\n };\n\n const getAriaLabelForNextButton = () => {\n let ariaLabel = `${buttonLabels.next}`;\n\n if (!isOnLastPage()) {\n ariaLabel += `, ${buttonLabels.page} ${currentPage + 1}`;\n }\n\n return ariaLabel;\n };\n\n const getAriaLabelForPageButton = (page) => {\n let ariaLabel = `${buttonLabels.page} ${page}`;\n\n if (isPageButtonActive(page)) {\n ariaLabel += `, ${buttonLabels.currentPage}`;\n }\n\n return ariaLabel;\n };\n\n const getAriaLabelForPageOfCountButton = () => `${buttonLabels.page} ${currentPage}, ${buttonLabels.currentPage}, ${buttonLabels.pageOfCount} ${pageCount}`;\n\n const getScreenReaderText = () => `${buttonLabels.page} ${currentPage}, ${buttonLabels.currentPage}, ${buttonLabels.pageOfCount} ${pageCount}`;\n const getPageOfText = () => `${currentPage} ${buttonLabels.pageOfCount} ${pageCount}`;\n\n const getPageButtonVariant = (page) => {\n let buttonVariant = isPageButtonActive(page) ? 'primary' : 'tertiary';\n\n if (invertColors) {\n buttonVariant = `inverse-${buttonVariant}`;\n }\n\n return buttonVariant;\n };\n\n const getNextButtonIcon = () => icons.rightIcon;\n const getPrevButtonIcon = () => icons.leftIcon;\n\n const displayPages = getPaginationRange({\n currentIndex: currentPage,\n count: pageCount,\n length: maxPagesDisplayed,\n requireFirstAndLastPages: true,\n });\n\n const value = {\n invertColors,\n displayPages,\n pageCount,\n buttonLabels,\n previousButtonRef,\n nextButtonRef,\n pageButtonRef,\n getPrevButtonIcon,\n getNextButtonIcon,\n getAriaLabelForNextButton,\n getAriaLabelForPageButton,\n getAriaLabelForPreviousButton,\n getAriaLabelForPageOfCountButton,\n getPageButtonVariant,\n handlePreviousButtonClick,\n handleNextButtonClick,\n handlePageSelect,\n isOnFirstPage,\n isOnLastPage,\n isPageButtonActive,\n isDefaultVariant,\n getScreenReaderText,\n getPageOfText,\n getPageButtonRefHandler,\n };\n\n return (\n <PaginationContext.Provider value={value}>\n {children}\n </PaginationContext.Provider>\n );\n}\n\nPaginationContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n onPageSelect: PropTypes.func.isRequired,\n pageCount: PropTypes.number.isRequired,\n buttonLabels: PropTypes.shape({\n previous: PropTypes.string,\n next: PropTypes.string,\n page: PropTypes.string,\n currentPage: PropTypes.string,\n pageOfCount: PropTypes.string,\n }).isRequired,\n currentPage: PropTypes.number,\n maxPagesDisplayed: PropTypes.number.isRequired,\n icons: PropTypes.shape({\n leftIcon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n rightIcon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n }).isRequired,\n variant: PropTypes.oneOf(Object.values(PAGINATION_VARIANTS)).isRequired,\n invertColors: PropTypes.bool.isRequired,\n initialPage: PropTypes.number.isRequired,\n};\n\nPaginationContextProvider.defaultProps = {\n currentPage: undefined,\n};\n\nexport { PaginationContextProvider };\nexport default PaginationContext;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","classNames","PropTypes","ReducedPagination","MinimalPagination","DefaultPagination","PaginationContextProvider","PAGINATION_VARIANTS","ScreenReaderText","greaterThan","ChevronLeft","ChevronRight","Pagination","props","invertColors","variant","size","paginationLabel","className","renderPaginationComponent","reduced","createElement","minimal","default","propTypes","onPageSelect","func","isRequired","pageCount","number","string","buttonLabels","shape","previous","next","page","currentPage","pageOfCount","maxPagesDisplayed","icons","leftIcon","elementType","rightIcon","oneOf","bool","initialPage","defaultProps","undefined"],"sources":["../../src/Pagination/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport ReducedPagination from './ReducedPagination';\nimport MinimalPagination from './MinimalPagination';\nimport DefaultPagination from './DefaultPagination';\nimport { PaginationContextProvider } from './PaginationContext';\nimport { PAGINATION_VARIANTS } from './constants';\nimport { ScreenReaderText } from './subcomponents';\n\nimport { greaterThan } from '../utils/propTypes';\nimport { ChevronLeft, ChevronRight } from '../../icons';\n\nfunction Pagination(props) {\n const {\n invertColors,\n variant,\n size,\n paginationLabel,\n className,\n } = props;\n\n const renderPaginationComponent = () => {\n if (variant === PAGINATION_VARIANTS.reduced) {\n return <ReducedPagination />;\n }\n\n if (variant === PAGINATION_VARIANTS.minimal) {\n return <MinimalPagination />;\n }\n\n return <DefaultPagination />;\n };\n\n return (\n <PaginationContextProvider {...props}>\n <nav\n aria-label={paginationLabel}\n className={classNames(className, {\n [`pagination-${variant}`]: variant,\n 'pagination-inverse': invertColors,\n 'pagination-small': size !== PAGINATION_VARIANTS.default,\n })}\n >\n <ScreenReaderText />\n {renderPaginationComponent()}\n </nav>\n </PaginationContextProvider>\n );\n}\n\nPagination.propTypes = {\n /**\n * Specifies a callback function that is executed when the\n * user selects a page button or the `Previous`/`Next` buttons. For example:\n *\n * ```jsx\n * <Pagination onPageSelect={(pageNumber) => { console.log(pageNumber); } />\n * ```\n */\n onPageSelect: PropTypes.func.isRequired,\n /** Specifies the total number of pages in the `Pagination` component. */\n pageCount: PropTypes.number.isRequired,\n /** Specifies the `aria-label` for the `<nav>` element that wraps the pagination button list. */\n paginationLabel: PropTypes.string.isRequired,\n /**\n * Specifies the labels to use for the `Previous`/`Next`\n * buttons as well as the various parts of `aria-label`\n * on the page buttons for accessibility. All button labels\n * accept both string or elements. The button label options are as follows:\n *\n * `previous`: Text for the `Previous` button;\n *\n * `next`: Text for the `Next` button;\n *\n * `page`: Text in the `aria-label` on page buttons to describe the button (e.g., \"**Page** 1\");\n *\n * `currentPage`: Text to depict the selected page in the `aria-label`\n * on page buttons (e.g., \"Page 1, **Current Page**\");\n *\n * `pageOfCount`: Text that separates the current page and total page count\n * for the mobile UI (e.g., \"Page 1 **of** 20\").\n *\n * The default is:\n * ```javascript\n * {\n * previous: 'Previous',\n * next: 'Next',\n * page: 'Page',\n * currentPage: 'Current Page',\n * pageOfCount: 'of',\n * }\n * ```\n */\n buttonLabels: PropTypes.shape({\n previous: PropTypes.string,\n next: PropTypes.string,\n page: PropTypes.string,\n currentPage: PropTypes.string,\n pageOfCount: PropTypes.string,\n }),\n /** Specifies any class name(s) for the `Pagination` component. The default is an empty string. */\n className: PropTypes.string,\n /** specifies the page that the `Pagination` component will automatically select. The default is `1`. */\n currentPage: PropTypes.number,\n /**\n * Specifies the number of page buttons to display in between the `Previous`\n * and `Next` buttons. This number also includes any ellipses in the total count.\n * Also, to ensure that at least one clickable page button is shown when both ellipses\n * are displayed, this value must be greater than `4`. The default is `7`.\n */\n maxPagesDisplayed: greaterThan(4),\n /**\n * Specifies icons used to indicate previous and next page. Can be an element,\n * string, symbol, etc. Default is chevrons rendered using fa-css.\n */\n icons: PropTypes.shape({\n leftIcon: PropTypes.elementType,\n rightIcon: PropTypes.elementType,\n }),\n variant: PropTypes.oneOf(['default', 'secondary', 'reduced', 'minimal']),\n invertColors: PropTypes.bool,\n size: PropTypes.oneOf(['default', 'small']),\n initialPage: PropTypes.number,\n};\n\nPagination.defaultProps = {\n icons: {\n leftIcon: ChevronLeft,\n rightIcon: ChevronRight,\n },\n buttonLabels: {\n previous: 'Previous',\n next: 'Next',\n page: 'Page',\n currentPage: 'Current Page',\n pageOfCount: 'of',\n },\n className: undefined,\n initialPage: 1,\n currentPage: undefined,\n maxPagesDisplayed: 7,\n variant: 'default',\n invertColors: false,\n size: 'default',\n};\n\nexport default Pagination;\nexport * from './constants';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAElC,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,mBAAmB,QAAQ,aAAa;AACjD,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,WAAW,EAAEC,YAAY,QAAQ,aAAa;AAEvD,SAASC,UAAUA,CAACC,KAAK,EAAE;EACzB,MAAM;IACJC,YAAY;IACZC,OAAO;IACPC,IAAI;IACJC,eAAe;IACfC;EACF,CAAC,GAAGL,KAAK;EAET,MAAMM,yBAAyB,GAAGA,CAAA,KAAM;IACtC,IAAIJ,OAAO,KAAKR,mBAAmB,CAACa,OAAO,EAAE;MAC3C,oBAAOpB,KAAA,CAAAqB,aAAA,CAAClB,iBAAiB,MAAE,CAAC;IAC9B;IAEA,IAAIY,OAAO,KAAKR,mBAAmB,CAACe,OAAO,EAAE;MAC3C,oBAAOtB,KAAA,CAAAqB,aAAA,CAACjB,iBAAiB,MAAE,CAAC;IAC9B;IAEA,oBAAOJ,KAAA,CAAAqB,aAAA,CAAChB,iBAAiB,MAAE,CAAC;EAC9B,CAAC;EAED,oBACEL,KAAA,CAAAqB,aAAA,CAACf,yBAAyB;IAAA,GAAKO;EAAK,gBAClCb,KAAA,CAAAqB,aAAA;IACE,cAAYJ,eAAgB;IAC5BC,SAAS,EAAEjB,UAAU,CAACiB,SAAS,EAAE;MAC/B,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","classNames","PropTypes","ReducedPagination","MinimalPagination","DefaultPagination","PaginationContextProvider","PAGINATION_VARIANTS","ScreenReaderText","greaterThan","ChevronLeft","ChevronRight","Pagination","props","invertColors","variant","size","paginationLabel","className","renderPaginationComponent","reduced","createElement","minimal","default","propTypes","onPageSelect","func","isRequired","pageCount","number","string","buttonLabels","shape","previous","next","page","currentPage","pageOfCount","maxPagesDisplayed","icons","leftIcon","elementType","rightIcon","oneOf","bool","initialPage","defaultProps","undefined"],"sources":["../../src/Pagination/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport ReducedPagination from './ReducedPagination';\nimport MinimalPagination from './MinimalPagination';\nimport DefaultPagination from './DefaultPagination';\nimport { PaginationContextProvider } from './PaginationContext';\nimport { PAGINATION_VARIANTS } from './constants';\nimport { ScreenReaderText } from './subcomponents';\n\nimport { greaterThan } from '../utils/propTypes';\nimport { ChevronLeft, ChevronRight } from '../../icons';\n\nfunction Pagination(props) {\n const {\n invertColors,\n variant,\n size,\n paginationLabel,\n className,\n } = props;\n\n const renderPaginationComponent = () => {\n if (variant === PAGINATION_VARIANTS.reduced) {\n return <ReducedPagination />;\n }\n\n if (variant === PAGINATION_VARIANTS.minimal) {\n return <MinimalPagination />;\n }\n\n return <DefaultPagination />;\n };\n\n return (\n <PaginationContextProvider {...props}>\n <nav\n aria-label={paginationLabel}\n className={classNames(className, {\n [`pagination-${variant}`]: variant,\n 'pagination-inverse': invertColors,\n 'pagination-small': size !== PAGINATION_VARIANTS.default,\n })}\n >\n <ScreenReaderText />\n {renderPaginationComponent()}\n </nav>\n </PaginationContextProvider>\n );\n}\n\nPagination.propTypes = {\n /**\n * Specifies a callback function that is executed when the\n * user selects a page button or the `Previous`/`Next` buttons. For example:\n *\n * ```jsx\n * <Pagination onPageSelect={(pageNumber) => { console.log(pageNumber); } />\n * ```\n */\n onPageSelect: PropTypes.func.isRequired,\n /** Specifies the total number of pages in the `Pagination` component. */\n pageCount: PropTypes.number.isRequired,\n /** Specifies the `aria-label` for the `<nav>` element that wraps the pagination button list. */\n paginationLabel: PropTypes.string.isRequired,\n /**\n * Specifies the labels to use for the `Previous`/`Next`\n * buttons as well as the various parts of `aria-label`\n * on the page buttons for accessibility. All button labels\n * accept both string or elements. The button label options are as follows:\n *\n * `previous`: Text for the `Previous` button;\n *\n * `next`: Text for the `Next` button;\n *\n * `page`: Text in the `aria-label` on page buttons to describe the button (e.g., \"**Page** 1\");\n *\n * `currentPage`: Text to depict the selected page in the `aria-label`\n * on page buttons (e.g., \"Page 1, **Current Page**\");\n *\n * `pageOfCount`: Text that separates the current page and total page count\n * for the mobile UI (e.g., \"Page 1 **of** 20\").\n *\n * The default is:\n * ```javascript\n * {\n * previous: 'Previous',\n * next: 'Next',\n * page: 'Page',\n * currentPage: 'Current Page',\n * pageOfCount: 'of',\n * }\n * ```\n */\n buttonLabels: PropTypes.shape({\n previous: PropTypes.string,\n next: PropTypes.string,\n page: PropTypes.string,\n currentPage: PropTypes.string,\n pageOfCount: PropTypes.string,\n }),\n /** Specifies any class name(s) for the `Pagination` component. The default is an empty string. */\n className: PropTypes.string,\n /** specifies the page that the `Pagination` component will automatically select. The default is `1`. */\n currentPage: PropTypes.number,\n /**\n * Specifies the number of page buttons to display in between the `Previous`\n * and `Next` buttons. This number also includes any ellipses in the total count.\n * Also, to ensure that at least one clickable page button is shown when both ellipses\n * are displayed, this value must be greater than `4`. The default is `7`.\n */\n maxPagesDisplayed: greaterThan(4),\n /**\n * Specifies icons used to indicate previous and next page. Can be an element,\n * string, symbol, etc. Default is chevrons rendered using fa-css.\n */\n icons: PropTypes.shape({\n leftIcon: PropTypes.elementType,\n rightIcon: PropTypes.elementType,\n }),\n variant: PropTypes.oneOf(['default', 'secondary', 'reduced', 'minimal']),\n invertColors: PropTypes.bool,\n size: PropTypes.oneOf(['default', 'small']),\n initialPage: PropTypes.number,\n};\n\nPagination.defaultProps = {\n icons: {\n leftIcon: ChevronLeft,\n rightIcon: ChevronRight,\n },\n buttonLabels: {\n previous: 'Previous',\n next: 'Next',\n page: 'Page',\n currentPage: 'Current Page',\n pageOfCount: 'of',\n },\n className: undefined,\n initialPage: 1,\n currentPage: undefined,\n maxPagesDisplayed: 7,\n variant: 'default',\n invertColors: false,\n size: 'default',\n};\n\nexport default Pagination;\nexport * from './constants';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use "sass:color";
|
|
1
2
|
// Popovers
|
|
2
3
|
|
|
3
4
|
$popover-font-size: $font-size-sm !default;
|
|
@@ -26,7 +27,7 @@ $popover-arrow-width: 1rem !default;
|
|
|
26
27
|
$popover-arrow-height: .5rem !default;
|
|
27
28
|
$popover-arrow-color: $popover-bg !default;
|
|
28
29
|
|
|
29
|
-
$popover-arrow-outer-color:
|
|
30
|
+
$popover-arrow-outer-color: color.adjust($popover-border-color, $alpha: .05) !default;
|
|
30
31
|
|
|
31
32
|
$popover-success-bg: $success-100 !default;
|
|
32
33
|
$popover-success-icon-color: $success-500 !default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","BasePopover","BasePopoverTitle","BasePopoverContent","PLACEMENT_VARIANTS","Popover","forwardRef","_ref","ref","children","variant","props","createElement","className","PopoverTitle","PopoverContent","commonPropTypes","as","elementType","bsPrefix","string","propTypes","id","isRequired","placement","oneOf","title","arrowProps","shape","oneOfType","func","current","element","style","content","bool","popper","show","node","defaultProps","undefined","Title","Content"],"sources":["../../src/Popover/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BasePopover from 'react-bootstrap/Popover';\nimport BasePopoverTitle from 'react-bootstrap/PopoverTitle';\nimport BasePopoverContent from 'react-bootstrap/PopoverContent';\n\nconst PLACEMENT_VARIANTS = [\n 'auto',\n 'top',\n 'bottom',\n 'left',\n 'right',\n];\n\nconst Popover = React.forwardRef(({\n children,\n variant,\n ...props\n}, ref) => (\n <BasePopover\n {...props}\n className={classNames({ [`popover-${variant}`]: !!variant }, props.className)}\n ref={ref}\n >\n {children}\n </BasePopover>\n));\n\nfunction PopoverTitle(props) {\n return <BasePopoverTitle {...props} />;\n}\nfunction PopoverContent(props) {\n return <BasePopoverContent {...props} />;\n}\n\nconst commonPropTypes = {\n /** Specifies the base element */\n as: PropTypes.elementType,\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nPopoverTitle.propTypes = commonPropTypes;\nPopoverContent.propTypes = commonPropTypes;\n\nPopover.propTypes = {\n ...BasePopover.propTypes,\n /** An html id attribute, necessary for accessibility. */\n id: PropTypes.string.isRequired,\n /**\n * Sets the direction the Popover is positioned towards.\n *\n * This is generally provided by the `Overlay` component positioning the popover.\n */\n placement: PropTypes.oneOf(PLACEMENT_VARIANTS),\n /**\n * When this prop is set, it creates a `Popover` with\n * a `Popover.Title` inside passing the children directly to it.\n */\n title: PropTypes.string,\n /**\n * An `Overlay` injected set of props for positioning the popover arrow.\n *\n * This is generally provided by the `Overlay` component positioning the popover.\n */\n arrowProps: PropTypes.shape({\n ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.element }),\n ]),\n style: PropTypes.shape({}),\n }),\n /**\n * When this prop is set, it creates a `Popover` with\n * a `Popover.Content` inside passing the children directly to it.\n */\n content: PropTypes.bool,\n /** A `Popper.js` config object passed to the the underlying popper instance. */\n popper: PropTypes.shape({}),\n /** Whether the `Overlay` is shown. */\n show: PropTypes.bool,\n /** Specifies the content of the `Overlay` */\n children: PropTypes.node,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** The visual style of the `Overlay` */\n variant: PropTypes.string,\n};\n\nPopover.defaultProps = {\n ...BasePopover.defaultProps,\n placement: 'right',\n title: undefined,\n arrowProps: undefined,\n content: undefined,\n popper: undefined,\n show: undefined,\n children: undefined,\n className: undefined,\n variant: undefined,\n};\n\nPopoverTitle.defaultProps = {\n as: 'div',\n bsPrefix: 'popover-header',\n};\n\nPopoverContent.defaultProps = {\n as: 'div',\n bsPrefix: 'popover-body',\n};\n\nPopover.Title = PopoverTitle;\nPopover.Content = PopoverContent;\n\nexport { PopoverTitle, PopoverContent };\nexport default Popover;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAM,yBAAyB;AACjD,OAAOC,gBAAgB,MAAM,8BAA8B;AAC3D,OAAOC,kBAAkB,MAAM,gCAAgC;AAE/D,MAAMC,kBAAkB,GAAG,CACzB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,CACR;AAED,MAAMC,OAAO,gBAAGP,KAAK,CAACQ,UAAU,CAAC,CAAAC,IAAA,EAI9BC,GAAG;EAAA,IAJ4B;IAChCC,QAAQ;IACRC,OAAO;IACP,GAAGC;EACL,CAAC,GAAAJ,IAAA;EAAA,oBACCT,KAAA,CAAAc,aAAA,CAACX,WAAW;IAAA,GACNU,KAAK;IACTE,SAAS,EAAEb,UAAU,CAAC;MAAE,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classNames","BasePopover","BasePopoverTitle","BasePopoverContent","PLACEMENT_VARIANTS","Popover","forwardRef","_ref","ref","children","variant","props","createElement","className","PopoverTitle","PopoverContent","commonPropTypes","as","elementType","bsPrefix","string","propTypes","id","isRequired","placement","oneOf","title","arrowProps","shape","oneOfType","func","current","element","style","content","bool","popper","show","node","defaultProps","undefined","Title","Content"],"sources":["../../src/Popover/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BasePopover from 'react-bootstrap/Popover';\nimport BasePopoverTitle from 'react-bootstrap/PopoverTitle';\nimport BasePopoverContent from 'react-bootstrap/PopoverContent';\n\nconst PLACEMENT_VARIANTS = [\n 'auto',\n 'top',\n 'bottom',\n 'left',\n 'right',\n];\n\nconst Popover = React.forwardRef(({\n children,\n variant,\n ...props\n}, ref) => (\n <BasePopover\n {...props}\n className={classNames({ [`popover-${variant}`]: !!variant }, props.className)}\n ref={ref}\n >\n {children}\n </BasePopover>\n));\n\nfunction PopoverTitle(props) {\n return <BasePopoverTitle {...props} />;\n}\nfunction PopoverContent(props) {\n return <BasePopoverContent {...props} />;\n}\n\nconst commonPropTypes = {\n /** Specifies the base element */\n as: PropTypes.elementType,\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nPopoverTitle.propTypes = commonPropTypes;\nPopoverContent.propTypes = commonPropTypes;\n\nPopover.propTypes = {\n ...BasePopover.propTypes,\n /** An html id attribute, necessary for accessibility. */\n id: PropTypes.string.isRequired,\n /**\n * Sets the direction the Popover is positioned towards.\n *\n * This is generally provided by the `Overlay` component positioning the popover.\n */\n placement: PropTypes.oneOf(PLACEMENT_VARIANTS),\n /**\n * When this prop is set, it creates a `Popover` with\n * a `Popover.Title` inside passing the children directly to it.\n */\n title: PropTypes.string,\n /**\n * An `Overlay` injected set of props for positioning the popover arrow.\n *\n * This is generally provided by the `Overlay` component positioning the popover.\n */\n arrowProps: PropTypes.shape({\n ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.element }),\n ]),\n style: PropTypes.shape({}),\n }),\n /**\n * When this prop is set, it creates a `Popover` with\n * a `Popover.Content` inside passing the children directly to it.\n */\n content: PropTypes.bool,\n /** A `Popper.js` config object passed to the the underlying popper instance. */\n popper: PropTypes.shape({}),\n /** Whether the `Overlay` is shown. */\n show: PropTypes.bool,\n /** Specifies the content of the `Overlay` */\n children: PropTypes.node,\n /** Specifies class name to append to the base element */\n className: PropTypes.string,\n /** The visual style of the `Overlay` */\n variant: PropTypes.string,\n};\n\nPopover.defaultProps = {\n ...BasePopover.defaultProps,\n placement: 'right',\n title: undefined,\n arrowProps: undefined,\n content: undefined,\n popper: undefined,\n show: undefined,\n children: undefined,\n className: undefined,\n variant: undefined,\n};\n\nPopoverTitle.defaultProps = {\n as: 'div',\n bsPrefix: 'popover-header',\n};\n\nPopoverContent.defaultProps = {\n as: 'div',\n bsPrefix: 'popover-body',\n};\n\nPopover.Title = PopoverTitle;\nPopover.Content = PopoverContent;\n\nexport { PopoverTitle, PopoverContent };\nexport default Popover;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use "sass:map";
|
|
1
2
|
@import "variables";
|
|
2
3
|
|
|
3
4
|
$checkpoint-arrow-top-color: solid $checkpoint-arrow-width $checkpoint-border-color;
|
|
@@ -9,12 +10,12 @@ $checkpoint-arrow-transparent: solid $checkpoint-arrow-width transparent;
|
|
|
9
10
|
background: $checkpoint-background-color;
|
|
10
11
|
border-top: $checkpoint-border-width solid $checkpoint-border-color;
|
|
11
12
|
border-radius: $border-radius;
|
|
12
|
-
padding:
|
|
13
|
+
padding: map.get($spacers, 4);
|
|
13
14
|
box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .3);
|
|
14
15
|
z-index: $checkpoint-z-index;
|
|
15
16
|
max-width: $checkpoint-max-width;
|
|
16
17
|
|
|
17
|
-
@media (max-width: map
|
|
18
|
+
@media (max-width: map.get($grid-breakpoints, "md")) {
|
|
18
19
|
min-width: 90%;
|
|
19
20
|
max-width: 90%;
|
|
20
21
|
}
|
|
@@ -43,7 +44,7 @@ $checkpoint-arrow-transparent: solid $checkpoint-arrow-width transparent;
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
.pgn__checkpoint-button_dismiss {
|
|
46
|
-
margin-inline-end:
|
|
47
|
+
margin-inline-end: map.get($spacers, 2);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
.pgn__checkpoint-breadcrumb {
|
|
@@ -61,11 +62,11 @@ $checkpoint-arrow-transparent: solid $checkpoint-arrow-width transparent;
|
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
&:not(:first-child) {
|
|
64
|
-
margin-left:
|
|
65
|
+
margin-left: map.get($spacers, 1\.5);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
[dir="rtl"] & {
|
|
68
|
-
margin-left:
|
|
69
|
+
margin-left: map.get($spacers, 1\.5);
|
|
69
70
|
margin-right: 0;
|
|
70
71
|
|
|
71
72
|
&:last-child {
|
|
@@ -81,19 +82,19 @@ $checkpoint-arrow-transparent: solid $checkpoint-arrow-width transparent;
|
|
|
81
82
|
|
|
82
83
|
.pgn__checkpoint-body {
|
|
83
84
|
color: $checkpoint-body-color;
|
|
84
|
-
margin-bottom:
|
|
85
|
+
margin-bottom: map.get($spacers, 3\.5);
|
|
85
86
|
text-align: start;
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
.pgn__checkpoint-header {
|
|
89
90
|
display: flex;
|
|
90
91
|
justify-content: space-between;
|
|
91
|
-
margin-bottom:
|
|
92
|
+
margin-bottom: map.get($spacers, 2\.5);
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
#pgn__checkpoint-title {
|
|
95
96
|
font-size: $h3-font-size;
|
|
96
|
-
margin-inline-end:
|
|
97
|
+
margin-inline-end: map.get($spacers, 2\.5);
|
|
97
98
|
margin-bottom: 0;
|
|
98
99
|
}
|
|
99
100
|
}
|