@fluentui/react-components 9.7.4 → 9.8.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.
@@ -3,69 +3,60 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- const React = /*#__PURE__*/require("react"); // eslint-disable-next-line import/no-extraneous-dependencies
8
-
9
-
6
+ const React = /*#__PURE__*/require("react");
7
+ // eslint-disable-next-line import/no-extraneous-dependencies
10
8
  const ReactIcons = /*#__PURE__*/require("@fluentui/react-icons");
11
-
12
9
  const react_input_1 = /*#__PURE__*/require("@fluentui/react-input");
13
-
14
10
  const react_1 = /*#__PURE__*/require("@griffel/react");
15
-
16
11
  const useStyles = /*#__PURE__*/react_1.__styles({
17
- "grid": {
18
- "mc9l5x": "f13qh94s",
19
- "Budl1dq": "f103s1qi",
20
- "w08cwm": "fz44487",
21
- "De3pzq": "f1vbpgwy",
22
- "Bqyf3fh": "f1y7pwzt",
23
- "tuaewz": "fkjsrz3",
24
- "js62xs": "f1v4pbv1",
25
- "ge08ax": "f10n702m",
26
- "vwmem1": "fukf1g8",
27
- "pq1t01": "f1ke9dqw",
28
- "Bspu8ag": ["ft83mph", "fduese8"],
29
- "B83reyd": "ffztlgx",
30
- "d2aa3c": ["fduese8", "ft83mph"],
31
- "Bo0llhl": "f1ad31ox",
32
- "Bfpbev4": "f1pcllc0",
33
- "Bs90se3": "fdkswtx",
34
- "B83tkto": "f1yxgqk0",
35
- "pxe6pr": "fg04g75",
36
- "Beqvepd": "fvrpp50",
37
- "Bq5m64l": ["f1xqymmk", "f1mqnmtg"],
38
- "B0xcf35": "f12h2kxz",
39
- "B9c2vit": ["f1mqnmtg", "f1xqymmk"]
12
+ grid: {
13
+ mc9l5x: "f13qh94s",
14
+ Budl1dq: "f103s1qi",
15
+ w08cwm: "fz44487",
16
+ De3pzq: "f1vbpgwy",
17
+ Bqyf3fh: "f1y7pwzt",
18
+ tuaewz: "fkjsrz3",
19
+ js62xs: "f1v4pbv1",
20
+ ge08ax: "f10n702m",
21
+ vwmem1: "fukf1g8",
22
+ pq1t01: "f1ke9dqw",
23
+ Bspu8ag: ["ft83mph", "fduese8"],
24
+ B83reyd: "ffztlgx",
25
+ d2aa3c: ["fduese8", "ft83mph"],
26
+ Bo0llhl: "f1ad31ox",
27
+ Bfpbev4: "f1pcllc0",
28
+ Bs90se3: "fdkswtx",
29
+ B83tkto: "f1yxgqk0",
30
+ pxe6pr: "fg04g75",
31
+ Beqvepd: "fvrpp50",
32
+ Bq5m64l: ["f1xqymmk", "f1mqnmtg"],
33
+ B0xcf35: "f12h2kxz",
34
+ B9c2vit: ["f1mqnmtg", "f1xqymmk"]
40
35
  },
41
- "searchBox": {
42
- "De3pzq": "f1vbpgwy",
43
- "B2u0y6b": "f1ogbl2p",
44
- "jrapky": "f1dl2k97"
36
+ searchBox: {
37
+ De3pzq: "f1vbpgwy",
38
+ B2u0y6b: "f1ogbl2p",
39
+ jrapky: "f1dl2k97"
45
40
  },
46
- "radio": {
47
- "De3pzq": "f1vbpgwy",
48
- "Be2twd7": "fnsq08h"
41
+ radio: {
42
+ De3pzq: "f1vbpgwy",
43
+ Be2twd7: "fnsq08h"
49
44
  }
50
45
  }, {
51
- "d": [".f13qh94s{display:grid;}", ".f103s1qi{grid-template-columns:auto auto auto auto;}", ".fz44487{grid-gap:10px;}", ".f1vbpgwy{background-color:#F7F7F7;}", ".f1y7pwzt>div{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".fkjsrz3>div{background-color:#FFFFFF;}", ".f1v4pbv1>div{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f10n702m>div{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".fukf1g8>div{-webkit-box-pack:space-around;-ms-flex-pack:space-around;-webkit-justify-content:space-around;justify-content:space-around;}", ".f1ke9dqw>div{padding-top:8px;}", ".ft83mph>div{padding-right:8px;}", ".fduese8>div{padding-left:8px;}", ".ffztlgx>div{padding-bottom:8px;}", ".f1ad31ox>div{overflow-x:hidden;}", ".f1pcllc0>div{overflow-y:hidden;}", ".fdkswtx>div>code{font-size:8px;}", ".f1yxgqk0>div>code{display:inline-block;}", ".fg04g75>div>code{height:auto;}", ".fvrpp50>div>code{padding-top:0px 8px;}", ".f1xqymmk>div>code{padding-right:0px 8px;}", ".f1mqnmtg>div>code{padding-left:0px 8px;}", ".f12h2kxz>div>code{padding-bottom:0px 8px;}", ".f1ogbl2p{max-width:320px;}", ".f1dl2k97{margin-bottom:10px;}", ".fnsq08h{font-size:11px;}"]
46
+ d: [".f13qh94s{display:grid;}", ".f103s1qi{grid-template-columns:auto auto auto auto;}", ".fz44487{grid-gap:10px;}", ".f1vbpgwy{background-color:#F7F7F7;}", ".f1y7pwzt>div{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".fkjsrz3>div{background-color:#FFFFFF;}", ".f1v4pbv1>div{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f10n702m>div{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".fukf1g8>div{-webkit-box-pack:space-around;-ms-flex-pack:space-around;-webkit-justify-content:space-around;justify-content:space-around;}", ".f1ke9dqw>div{padding-top:8px;}", ".ft83mph>div{padding-right:8px;}", ".fduese8>div{padding-left:8px;}", ".ffztlgx>div{padding-bottom:8px;}", ".f1ad31ox>div{overflow-x:hidden;}", ".f1pcllc0>div{overflow-y:hidden;}", ".fdkswtx>div>code{font-size:8px;}", ".f1yxgqk0>div>code{display:inline-block;}", ".fg04g75>div>code{height:auto;}", ".fvrpp50>div>code{padding-top:0px 8px;}", ".f1xqymmk>div>code{padding-right:0px 8px;}", ".f1mqnmtg>div>code{padding-left:0px 8px;}", ".f12h2kxz>div>code{padding-bottom:0px 8px;}", ".f1ogbl2p{max-width:320px;}", ".f1dl2k97{margin-bottom:10px;}", ".fnsq08h{font-size:11px;}"]
52
47
  });
53
-
54
- const reactIcons = /*#__PURE__*/Object.keys(ReactIcons) // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ const reactIcons = /*#__PURE__*/Object.keys(ReactIcons)
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
50
  .map(iconName => ReactIcons[iconName]).filter(icon => !!icon && !!icon.displayName);
56
-
57
51
  const ReactIconGrid = () => {
58
52
  const [search, setSearch] = React.useState('');
59
53
  const [size, setSize] = React.useState(24);
60
54
  const styles = useStyles();
61
-
62
55
  const _onSearchQueryChanged = ev => {
63
56
  setSearch(ev ? ev.currentTarget.value : '');
64
57
  };
65
-
66
58
  const _filterBySize = ev => {
67
59
  const newSize = ev ? ev.currentTarget.value : '';
68
-
69
60
  if (newSize === 'All') {
70
61
  setSize('');
71
62
  } else if (newSize === 'Unsized') {
@@ -74,17 +65,14 @@ const ReactIconGrid = () => {
74
65
  setSize(newSize);
75
66
  }
76
67
  };
77
-
78
68
  const _renderIcon = Icon => {
79
69
  return React.createElement("div", {
80
70
  key: Icon.displayName,
81
71
  "aria-label": Icon.displayName
82
72
  }, React.createElement(Icon, null), React.createElement("br", null), React.createElement("code", null, Icon.displayName));
83
73
  };
84
-
85
74
  const filteredIcons = React.useMemo(() => reactIcons.filter(icon => {
86
75
  var _a, _b;
87
-
88
76
  return size === 'Unsized' ? icon.displayName && !/\d/.test(icon.displayName.toLowerCase()) : ((_a = icon.displayName) === null || _a === void 0 ? void 0 : _a.toLowerCase().indexOf(search.toLowerCase())) !== -1 && ((_b = icon.displayName) === null || _b === void 0 ? void 0 : _b.indexOf(String(size))) !== -1;
89
77
  }), [search, size]);
90
78
  return React.createElement("div", null, React.createElement(react_input_1.Input, {
@@ -109,6 +97,5 @@ const ReactIconGrid = () => {
109
97
  className: styles.grid
110
98
  }, filteredIcons.map(_renderIcon)));
111
99
  };
112
-
113
100
  exports.default = ReactIconGrid;
114
101
  //# sourceMappingURL=ReactIconGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["packages/react-components/react-components/src/Concepts/Icons/ReactIconGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { FluentIconsProps } from '@fluentui/react-icons';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as ReactIcons from '@fluentui/react-icons';\nimport { Input } from '@fluentui/react-input';\nimport { makeStyles, shorthands } from '@griffel/react';\n\nconst useStyles = makeStyles({\n grid: {\n display: 'grid',\n gridTemplateColumns: 'auto auto auto auto',\n gridGap: '10px',\n backgroundColor: '#F7F7F7',\n\n '> div': {\n alignItems: 'center',\n backgroundColor: '#FFFFFF',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n ...shorthands.padding('8px'),\n ...shorthands.overflow('hidden'),\n\n '> code': {\n fontSize: '8px',\n display: 'inline-block',\n height: 'auto',\n ...shorthands.padding('0px 8px'),\n },\n },\n },\n\n searchBox: {\n backgroundColor: '#F7F7F7',\n maxWidth: '320px',\n marginBottom: '10px',\n },\n\n radio: {\n backgroundColor: '#F7F7F7',\n fontSize: '11px',\n },\n});\n\nconst reactIcons: React.FC<ReactIcons.FluentIconsProps>[] = Object.keys(ReactIcons)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(iconName => (ReactIcons as any)[iconName])\n .filter(icon => !!icon && !!icon.displayName);\n\nconst ReactIconGrid = () => {\n const [search, setSearch] = React.useState('');\n const [size, setSize] = React.useState<string | number>(24);\n const styles = useStyles();\n\n const _onSearchQueryChanged = (ev?: React.FormEvent<HTMLInputElement>) => {\n setSearch(ev ? ev.currentTarget.value : '');\n };\n\n const _filterBySize = (ev?: React.FormEvent<HTMLElement | HTMLInputElement>) => {\n const newSize = ev ? (ev.currentTarget as HTMLInputElement).value : '';\n if (newSize === 'All') {\n setSize('');\n } else if (newSize === 'Unsized') {\n setSize('Unsized');\n } else {\n setSize(newSize);\n }\n };\n\n const _renderIcon = (Icon: React.FC<FluentIconsProps>): JSX.Element => {\n return (\n <div key={Icon.displayName} aria-label={Icon.displayName}>\n <Icon />\n <br />\n <code>{Icon.displayName}</code>\n </div>\n );\n };\n\n const filteredIcons = React.useMemo(\n () =>\n reactIcons.filter(icon =>\n size === 'Unsized'\n ? icon.displayName! && !/\\d/.test(icon.displayName.toLowerCase())\n : icon.displayName?.toLowerCase().indexOf(search.toLowerCase()) !== -1 &&\n icon.displayName?.indexOf(String(size)) !== -1,\n ),\n [search, size],\n );\n\n return (\n <div>\n <Input\n type=\"search\"\n placeholder=\"Search icons\"\n value={search}\n aria-label=\"search\"\n // eslint-disable-next-line react/jsx-no-bind\n onChange={_onSearchQueryChanged}\n className={styles.searchBox}\n />\n {[16, 20, 24, 28, 32, 48, 'Unsized', 'All'].map(option => (\n <>\n <input\n id={`option-${option}`}\n defaultChecked={option === 24}\n type=\"radio\"\n value={option}\n name=\"size\"\n onChange={_filterBySize}\n />\n <label htmlFor={`option-${option}`} className={styles.radio}>\n {option}\n </label>\n </>\n ))}\n <div className={styles.grid}>{filteredIcons.map(_renderIcon)}</div>\n </div>\n );\n};\n\nexport default ReactIconGrid;\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"mappings":"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","names":["useStyles","react_1","reactIcons","Object","keys","ReactIcons","map","iconName","filter","icon","displayName","ReactIconGrid","search","setSearch","React","useState","size","setSize","styles","_onSearchQueryChanged","ev","currentTarget","value","_filterBySize","newSize","_renderIcon","Icon","key","filteredIcons","useMemo","test","toLowerCase","indexOf","String","react_input_1","type","placeholder","onChange","className","searchBox","option","id","defaultChecked","name","htmlFor","radio","grid","exports"],"sourceRoot":"../src/","sources":["packages/react-components/react-components/src/Concepts/Icons/ReactIconGrid.tsx"],"sourcesContent":["import * as React from 'react';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { FluentIconsProps } from '@fluentui/react-icons';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as ReactIcons from '@fluentui/react-icons';\nimport { Input } from '@fluentui/react-input';\nimport { makeStyles, shorthands } from '@griffel/react';\n\nconst useStyles = makeStyles({\n grid: {\n display: 'grid',\n gridTemplateColumns: 'auto auto auto auto',\n gridGap: '10px',\n backgroundColor: '#F7F7F7',\n\n '> div': {\n alignItems: 'center',\n backgroundColor: '#FFFFFF',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n ...shorthands.padding('8px'),\n ...shorthands.overflow('hidden'),\n\n '> code': {\n fontSize: '8px',\n display: 'inline-block',\n height: 'auto',\n ...shorthands.padding('0px 8px'),\n },\n },\n },\n\n searchBox: {\n backgroundColor: '#F7F7F7',\n maxWidth: '320px',\n marginBottom: '10px',\n },\n\n radio: {\n backgroundColor: '#F7F7F7',\n fontSize: '11px',\n },\n});\n\nconst reactIcons: React.FC<ReactIcons.FluentIconsProps>[] = Object.keys(ReactIcons)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(iconName => (ReactIcons as any)[iconName])\n .filter(icon => !!icon && !!icon.displayName);\n\nconst ReactIconGrid = () => {\n const [search, setSearch] = React.useState('');\n const [size, setSize] = React.useState<string | number>(24);\n const styles = useStyles();\n\n const _onSearchQueryChanged = (ev?: React.FormEvent<HTMLInputElement>) => {\n setSearch(ev ? ev.currentTarget.value : '');\n };\n\n const _filterBySize = (ev?: React.FormEvent<HTMLElement | HTMLInputElement>) => {\n const newSize = ev ? (ev.currentTarget as HTMLInputElement).value : '';\n if (newSize === 'All') {\n setSize('');\n } else if (newSize === 'Unsized') {\n setSize('Unsized');\n } else {\n setSize(newSize);\n }\n };\n\n const _renderIcon = (Icon: React.FC<FluentIconsProps>): JSX.Element => {\n return (\n <div key={Icon.displayName} aria-label={Icon.displayName}>\n <Icon />\n <br />\n <code>{Icon.displayName}</code>\n </div>\n );\n };\n\n const filteredIcons = React.useMemo(\n () =>\n reactIcons.filter(icon =>\n size === 'Unsized'\n ? icon.displayName! && !/\\d/.test(icon.displayName.toLowerCase())\n : icon.displayName?.toLowerCase().indexOf(search.toLowerCase()) !== -1 &&\n icon.displayName?.indexOf(String(size)) !== -1,\n ),\n [search, size],\n );\n\n return (\n <div>\n <Input\n type=\"search\"\n placeholder=\"Search icons\"\n value={search}\n aria-label=\"search\"\n // eslint-disable-next-line react/jsx-no-bind\n onChange={_onSearchQueryChanged}\n className={styles.searchBox}\n />\n {[16, 20, 24, 28, 32, 48, 'Unsized', 'All'].map(option => (\n <>\n <input\n id={`option-${option}`}\n defaultChecked={option === 24}\n type=\"radio\"\n value={option}\n name=\"size\"\n onChange={_filterBySize}\n />\n <label htmlFor={`option-${option}`} className={styles.radio}>\n {option}\n </label>\n </>\n ))}\n <div className={styles.grid}>{filteredIcons.map(_renderIcon)}</div>\n </div>\n );\n};\n\nexport default ReactIconGrid;\n"]}