@openedx/paragon 21.5.7 → 21.6.1

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.
@@ -14,12 +14,17 @@ function FilterStatus(_ref) {
14
14
  } = _ref;
15
15
  const {
16
16
  state,
17
- setAllFilters
17
+ setAllFilters,
18
+ headers
18
19
  } = useContext(DataTableContext);
19
20
  if (!setAllFilters) {
20
21
  return null;
21
22
  }
22
- const filterNames = state.filters ? state.filters.map(filter => filter.id) : [];
23
+ const headersMap = headers.reduce((cur, acc) => {
24
+ cur[acc.id] = acc.Header;
25
+ return cur;
26
+ }, {});
27
+ const filterNames = state.filters ? state.filters.map(filter => headersMap[filter.id]) : [];
23
28
  const filterTexts = /*#__PURE__*/React.createElement("p", null, "Filtered by ", filterNames.join(', '));
24
29
  return /*#__PURE__*/React.createElement("div", {
25
30
  className: className
@@ -1 +1 @@
1
- {"version":3,"file":"FilterStatus.js","names":["React","useContext","PropTypes","FormattedMessage","DataTableContext","Button","FilterStatus","_ref","className","variant","size","clearFiltersText","buttonClassName","showFilteredFields","state","setAllFilters","filterNames","filters","map","filter","id","filterTexts","createElement","join","onClick","undefined","defaultMessage","description","defaultProps","propTypes","string","oneOfType","element","bool"],"sources":["../../src/DataTable/FilterStatus.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport DataTableContext from './DataTableContext';\nimport Button from '../Button';\n\nfunction FilterStatus({\n className, variant, size, clearFiltersText, buttonClassName, showFilteredFields,\n}) {\n const { state, setAllFilters } = useContext(DataTableContext);\n if (!setAllFilters) {\n return null;\n }\n\n const filterNames = state.filters ? state.filters.map((filter) => filter.id) : [];\n const filterTexts = <p>Filtered by {filterNames.join(', ')}</p>;\n\n return (\n <div className={className}>\n {showFilteredFields && filterTexts}\n <Button\n className={buttonClassName}\n variant={variant}\n size={size}\n onClick={() => setAllFilters([])}\n >\n {clearFiltersText === undefined\n ? (\n <FormattedMessage\n id=\"pgn.DataTable.FilterStatus.clearFiltersText\"\n defaultMessage=\"Clear filters\"\n description=\"A text that appears on the `Clear filters` button\"\n />\n )\n : clearFiltersText}\n </Button>\n </div>\n );\n}\n\nFilterStatus.defaultProps = {\n /** Specifies class name to append to the base element. */\n className: null,\n /** Specifies class name to append to the button. */\n buttonClassName: 'pgn__smart-status-button',\n /** The visual style of the `FilterStatus`. */\n variant: 'link',\n /** The size of the `FilterStatus`. */\n size: 'inline',\n /** A text that appears on the `Clear filters` button, defaults to 'Clear filters'. */\n clearFiltersText: undefined,\n /** Whether to display applied filters. */\n showFilteredFields: true,\n};\n\nFilterStatus.propTypes = {\n className: PropTypes.string,\n buttonClassName: PropTypes.string,\n variant: PropTypes.string,\n size: PropTypes.string,\n clearFiltersText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n showFilteredFields: PropTypes.bool,\n};\n\nexport default FilterStatus;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,gBAAgB,QAAQ,YAAY;AAC7C,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,MAAM,MAAM,WAAW;AAE9B,SAASC,YAAYA,CAAAC,IAAA,EAElB;EAAA,IAFmB;IACpBC,SAAS;IAAEC,OAAO;IAAEC,IAAI;IAAEC,gBAAgB;IAAEC,eAAe;IAAEC;EAC/D,CAAC,GAAAN,IAAA;EACC,MAAM;IAAEO,KAAK;IAAEC;EAAc,CAAC,GAAGd,UAAU,CAACG,gBAAgB,CAAC;EAC7D,IAAI,CAACW,aAAa,EAAE;IAClB,OAAO,IAAI;EACb;EAEA,MAAMC,WAAW,GAAGF,KAAK,CAACG,OAAO,GAAGH,KAAK,CAACG,OAAO,CAACC,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,EAAE,CAAC,GAAG,EAAE;EACjF,MAAMC,WAAW,gBAAGrB,KAAA,CAAAsB,aAAA,YAAG,cAAY,EAACN,WAAW,CAACO,IAAI,CAAC,IAAI,CAAK,CAAC;EAE/D,oBACEvB,KAAA,CAAAsB,aAAA;IAAKd,SAAS,EAAEA;EAAU,GACvBK,kBAAkB,IAAIQ,WAAW,eAClCrB,KAAA,CAAAsB,aAAA,CAACjB,MAAM;IACLG,SAAS,EAAEI,eAAgB;IAC3BH,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXc,OAAO,EAAEA,CAAA,KAAMT,aAAa,CAAC,EAAE;EAAE,GAEhCJ,gBAAgB,KAAKc,SAAS,gBAE3BzB,KAAA,CAAAsB,aAAA,CAACnB,gBAAgB;IACfiB,EAAE,EAAC,6CAA6C;IAChDM,cAAc,EAAC,eAAe;IAC9BC,WAAW,EAAC;EAAmD,CAChE,CAAC,GAEFhB,gBACE,CACL,CAAC;AAEV;AAEAL,YAAY,CAACsB,YAAY,GAAG;EAC1B;EACApB,SAAS,EAAE,IAAI;EACf;EACAI,eAAe,EAAE,0BAA0B;EAC3C;EACAH,OAAO,EAAE,MAAM;EACf;EACAC,IAAI,EAAE,QAAQ;EACd;EACAC,gBAAgB,EAAEc,SAAS;EAC3B;EACAZ,kBAAkB,EAAE;AACtB,CAAC;AAEDP,YAAY,CAACuB,SAAS,GAAG;EACvBrB,SAAS,EAAEN,SAAS,CAAC4B,MAAM;EAC3BlB,eAAe,EAAEV,SAAS,CAAC4B,MAAM;EACjCrB,OAAO,EAAEP,SAAS,CAAC4B,MAAM;EACzBpB,IAAI,EAAER,SAAS,CAAC4B,MAAM;EACtBnB,gBAAgB,EAAET,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC8B,OAAO,EAAE9B,SAAS,CAAC4B,MAAM,CAAC,CAAC;EAC5EjB,kBAAkB,EAAEX,SAAS,CAAC+B;AAChC,CAAC;AAED,eAAe3B,YAAY"}
1
+ {"version":3,"file":"FilterStatus.js","names":["React","useContext","PropTypes","FormattedMessage","DataTableContext","Button","FilterStatus","_ref","className","variant","size","clearFiltersText","buttonClassName","showFilteredFields","state","setAllFilters","headers","headersMap","reduce","cur","acc","id","Header","filterNames","filters","map","filter","filterTexts","createElement","join","onClick","undefined","defaultMessage","description","defaultProps","propTypes","string","oneOfType","element","bool"],"sources":["../../src/DataTable/FilterStatus.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport DataTableContext from './DataTableContext';\nimport Button from '../Button';\n\nfunction FilterStatus({\n className, variant, size, clearFiltersText, buttonClassName, showFilteredFields,\n}) {\n const { state, setAllFilters, headers } = useContext(DataTableContext);\n if (!setAllFilters) {\n return null;\n }\n\n const headersMap = headers.reduce((cur, acc) => {\n cur[acc.id] = acc.Header;\n return cur;\n }, {});\n const filterNames = state.filters ? state.filters.map((filter) => headersMap[filter.id]) : [];\n const filterTexts = <p>Filtered by {filterNames.join(', ')}</p>;\n\n return (\n <div className={className}>\n {showFilteredFields && filterTexts}\n <Button\n className={buttonClassName}\n variant={variant}\n size={size}\n onClick={() => setAllFilters([])}\n >\n {clearFiltersText === undefined\n ? (\n <FormattedMessage\n id=\"pgn.DataTable.FilterStatus.clearFiltersText\"\n defaultMessage=\"Clear filters\"\n description=\"A text that appears on the `Clear filters` button\"\n />\n )\n : clearFiltersText}\n </Button>\n </div>\n );\n}\n\nFilterStatus.defaultProps = {\n /** Specifies class name to append to the base element. */\n className: null,\n /** Specifies class name to append to the button. */\n buttonClassName: 'pgn__smart-status-button',\n /** The visual style of the `FilterStatus`. */\n variant: 'link',\n /** The size of the `FilterStatus`. */\n size: 'inline',\n /** A text that appears on the `Clear filters` button, defaults to 'Clear filters'. */\n clearFiltersText: undefined,\n /** Whether to display applied filters. */\n showFilteredFields: true,\n};\n\nFilterStatus.propTypes = {\n className: PropTypes.string,\n buttonClassName: PropTypes.string,\n variant: PropTypes.string,\n size: PropTypes.string,\n clearFiltersText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n showFilteredFields: PropTypes.bool,\n};\n\nexport default FilterStatus;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,gBAAgB,QAAQ,YAAY;AAC7C,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,MAAM,MAAM,WAAW;AAE9B,SAASC,YAAYA,CAAAC,IAAA,EAElB;EAAA,IAFmB;IACpBC,SAAS;IAAEC,OAAO;IAAEC,IAAI;IAAEC,gBAAgB;IAAEC,eAAe;IAAEC;EAC/D,CAAC,GAAAN,IAAA;EACC,MAAM;IAAEO,KAAK;IAAEC,aAAa;IAAEC;EAAQ,CAAC,GAAGf,UAAU,CAACG,gBAAgB,CAAC;EACtE,IAAI,CAACW,aAAa,EAAE;IAClB,OAAO,IAAI;EACb;EAEA,MAAME,UAAU,GAAGD,OAAO,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;IAC9CD,GAAG,CAACC,GAAG,CAACC,EAAE,CAAC,GAAGD,GAAG,CAACE,MAAM;IACxB,OAAOH,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACN,MAAMI,WAAW,GAAGT,KAAK,CAACU,OAAO,GAAGV,KAAK,CAACU,OAAO,CAACC,GAAG,CAAEC,MAAM,IAAKT,UAAU,CAACS,MAAM,CAACL,EAAE,CAAC,CAAC,GAAG,EAAE;EAC7F,MAAMM,WAAW,gBAAG3B,KAAA,CAAA4B,aAAA,YAAG,cAAY,EAACL,WAAW,CAACM,IAAI,CAAC,IAAI,CAAK,CAAC;EAE/D,oBACE7B,KAAA,CAAA4B,aAAA;IAAKpB,SAAS,EAAEA;EAAU,GACvBK,kBAAkB,IAAIc,WAAW,eAClC3B,KAAA,CAAA4B,aAAA,CAACvB,MAAM;IACLG,SAAS,EAAEI,eAAgB;IAC3BH,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXoB,OAAO,EAAEA,CAAA,KAAMf,aAAa,CAAC,EAAE;EAAE,GAEhCJ,gBAAgB,KAAKoB,SAAS,gBAE3B/B,KAAA,CAAA4B,aAAA,CAACzB,gBAAgB;IACfkB,EAAE,EAAC,6CAA6C;IAChDW,cAAc,EAAC,eAAe;IAC9BC,WAAW,EAAC;EAAmD,CAChE,CAAC,GAEFtB,gBACE,CACL,CAAC;AAEV;AAEAL,YAAY,CAAC4B,YAAY,GAAG;EAC1B;EACA1B,SAAS,EAAE,IAAI;EACf;EACAI,eAAe,EAAE,0BAA0B;EAC3C;EACAH,OAAO,EAAE,MAAM;EACf;EACAC,IAAI,EAAE,QAAQ;EACd;EACAC,gBAAgB,EAAEoB,SAAS;EAC3B;EACAlB,kBAAkB,EAAE;AACtB,CAAC;AAEDP,YAAY,CAAC6B,SAAS,GAAG;EACvB3B,SAAS,EAAEN,SAAS,CAACkC,MAAM;EAC3BxB,eAAe,EAAEV,SAAS,CAACkC,MAAM;EACjC3B,OAAO,EAAEP,SAAS,CAACkC,MAAM;EACzB1B,IAAI,EAAER,SAAS,CAACkC,MAAM;EACtBzB,gBAAgB,EAAET,SAAS,CAACmC,SAAS,CAAC,CAACnC,SAAS,CAACoC,OAAO,EAAEpC,SAAS,CAACkC,MAAM,CAAC,CAAC;EAC5EvB,kBAAkB,EAAEX,SAAS,CAACqC;AAChC,CAAC;AAED,eAAejC,YAAY"}
@@ -0,0 +1,13 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import * as React from "react";
3
+ const SvgVideocamOutlined = props => /*#__PURE__*/React.createElement("svg", _extends({
4
+ width: 24,
5
+ height: 24,
6
+ viewBox: "0 0 24 24",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg"
9
+ }, props), /*#__PURE__*/React.createElement("path", {
10
+ d: "M15 8v8H5V8h10Zm1-2H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4V7c0-.55-.45-1-1-1Z",
11
+ fill: "currentColor"
12
+ }));
13
+ export default SvgVideocamOutlined;
@@ -2183,6 +2183,7 @@ export { default as VideoStable } from "./VideoStable";
2183
2183
  export { default as VideoTranscript } from "./VideoTranscript";
2184
2184
  export { default as Videocam } from "./Videocam";
2185
2185
  export { default as VideocamOff } from "./VideocamOff";
2186
+ export { default as VideocamOutlined } from "./VideocamOutlined";
2186
2187
  export { default as VideogameAsset } from "./VideogameAsset";
2187
2188
  export { default as VideogameAssetOff } from "./VideogameAssetOff";
2188
2189
  export { default as ViewAgenda } from "./ViewAgenda";
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ const SvgVideocamOutlined = (props) => (
3
+ <svg
4
+ width={24}
5
+ height={24}
6
+ viewBox="0 0 24 24"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ {...props}
10
+ >
11
+ <path
12
+ d="M15 8v8H5V8h10Zm1-2H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4V7c0-.55-.45-1-1-1Z"
13
+ fill="currentColor"
14
+ />
15
+ </svg>
16
+ );
17
+ export default SvgVideocamOutlined;
@@ -2183,6 +2183,7 @@ export { default as VideoStable } from "./VideoStable";
2183
2183
  export { default as VideoTranscript } from "./VideoTranscript";
2184
2184
  export { default as Videocam } from "./Videocam";
2185
2185
  export { default as VideocamOff } from "./VideocamOff";
2186
+ export { default as VideocamOutlined } from "./VideocamOutlined";
2186
2187
  export { default as VideogameAsset } from "./VideogameAsset";
2187
2188
  export { default as VideogameAssetOff } from "./VideogameAssetOff";
2188
2189
  export { default as ViewAgenda } from "./ViewAgenda";
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15 8V16H5V8H15ZM16 6H4C3.45 6 3 6.45 3 7V17C3 17.55 3.45 18 4 18H16C16.55 18 17 17.55 17 17V13.5L21 17.5V6.5L17 10.5V7C17 6.45 16.55 6 16 6Z" fill="#00262B"/>
3
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openedx/paragon",
3
- "version": "21.5.7",
3
+ "version": "21.6.1",
4
4
  "description": "Accessible, responsive UI component library based on Bootstrap.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -38,9 +38,9 @@ Use as a secondary navigation pattern to help convey hierarchy and enable naviga
38
38
  ```jsx live
39
39
  <Breadcrumb ariaLabel="Breadcrumb mobile view"
40
40
  links={[
41
- { label: 'Link 1', href: '/link-1' },
42
- { label: 'Link 2', href: '/link-2' },
43
- { label: 'Link 3', href: '/link-3' },
41
+ { label: 'Link 1', href: '#link-1' },
42
+ { label: 'Link 2', href: '#link-2' },
43
+ { label: 'Link 3', href: '#link-3' },
44
44
  ]}
45
45
  isMobile
46
46
  />
@@ -56,9 +56,9 @@ Use as a secondary navigation pattern to help convey hierarchy and enable naviga
56
56
  <div className="bg-dark-700 p-4">
57
57
  <Breadcrumb ariaLabel="Breadcrumb inverse pallete"
58
58
  links={[
59
- {label: 'Link 1', href: '/link-1'},
60
- {label: 'Link 2', href: '/link-2'},
61
- {label: 'Link 3', href: '/link-3'},
59
+ {label: 'Link 1', href: '#link-1'},
60
+ {label: 'Link 2', href: '#link-2'},
61
+ {label: 'Link 3', href: '#link-3'},
62
62
  ]}
63
63
  variant="dark"
64
64
  isMobile={isExtraSmall}
@@ -7,12 +7,16 @@ import Button from '../Button';
7
7
  function FilterStatus({
8
8
  className, variant, size, clearFiltersText, buttonClassName, showFilteredFields,
9
9
  }) {
10
- const { state, setAllFilters } = useContext(DataTableContext);
10
+ const { state, setAllFilters, headers } = useContext(DataTableContext);
11
11
  if (!setAllFilters) {
12
12
  return null;
13
13
  }
14
14
 
15
- const filterNames = state.filters ? state.filters.map((filter) => filter.id) : [];
15
+ const headersMap = headers.reduce((cur, acc) => {
16
+ cur[acc.id] = acc.Header;
17
+ return cur;
18
+ }, {});
19
+ const filterNames = state.filters ? state.filters.map((filter) => headersMap[filter.id]) : [];
16
20
  const filterTexts = <p>Filtered by {filterNames.join(', ')}</p>;
17
21
 
18
22
  return (
@@ -7,8 +7,9 @@ import FilterStatus from '../FilterStatus';
7
7
  import DataTableContext from '../DataTableContext';
8
8
 
9
9
  const filterNames = ['color', 'breed', 'discipline'];
10
+ const headers = [{ id: 'color', Header: 'color' }, { id: 'breed', Header: 'breed' }, { id: 'discipline', Header: 'discipline' }];
10
11
  const filters = filterNames.map((name) => ({ id: name }));
11
- const instance = { state: { filters }, setAllFilters: () => {} };
12
+ const instance = { state: { filters }, setAllFilters: () => {}, headers };
12
13
  const filterProps = {
13
14
  buttonClassName: 'buttonClass',
14
15
  variant: 'variant',
@@ -9,6 +9,7 @@ import RowStatus from '../RowStatus';
9
9
  import SelectionStatus from '../selection/SelectionStatus';
10
10
 
11
11
  const filters = [{ id: 'name' }, { id: 'age' }];
12
+ const headers = [{ id: 'name', Header: 'name' }, { id: 'age', Header: 'age' }];
12
13
  const filterNames = ['name', 'age'];
13
14
  const itemCount = 101;
14
15
  const instance = {
@@ -22,6 +23,7 @@ const instance = {
22
23
  SelectionStatusComponent: SelectionStatus,
23
24
  FilterStatusComponent: FilterStatus,
24
25
  RowStatusComponent: RowStatus,
26
+ headers,
25
27
  };
26
28
 
27
29
  // eslint-disable-next-line react/prop-types
@@ -12,8 +12,6 @@ devStatus: 'Done'
12
12
  notes: ''
13
13
  ---
14
14
 
15
- ## Menu
16
-
17
15
  An arrow-key navigable ``Menu`` which consists of ``MenuItems``. A ``Menu`` can be employed to produce its common variants, including dropdown menus, select menus, and others. ``Menus`` are keyboard navigable with both tab and arrow keys.
18
16
 
19
17
  ## MenuItem