@fluentui/react-list 9.2.7 → 9.3.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/CHANGELOG.md CHANGED
@@ -1,12 +1,23 @@
1
1
  # Change Log - @fluentui/react-list
2
2
 
3
- This log was last generated on Fri, 11 Jul 2025 15:56:58 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 17 Jul 2025 13:45:41 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.3.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-list_v9.3.0)
8
+
9
+ Thu, 17 Jul 2025 13:45:41 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-list_v9.2.7..@fluentui/react-list_v9.3.0)
11
+
12
+ ### Minor changes
13
+
14
+ - feat: enable griffel raw styles ([PR #34853](https://github.com/microsoft/fluentui/pull/34853) by martinhochel@microsoft.com)
15
+ - Bump @fluentui/react-checkbox to v9.5.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
16
+ - Bump @fluentui/react-tabster to v9.26.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
17
+
7
18
  ## [9.2.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-list_v9.2.7)
8
19
 
9
- Fri, 11 Jul 2025 15:56:58 GMT
20
+ Fri, 11 Jul 2025 15:59:24 GMT
10
21
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-list_v9.2.6..@fluentui/react-list_v9.2.7)
11
22
 
12
23
  ### Patches
@@ -0,0 +1,18 @@
1
+ import { makeResetStyles, mergeClasses } from '@griffel/react';
2
+ export const listClassNames = {
3
+ root: 'fui-List'
4
+ };
5
+ const useRootBaseStyles = makeResetStyles({
6
+ padding: 0,
7
+ margin: 0,
8
+ textIndent: 0,
9
+ listStyleType: 'none'
10
+ });
11
+ /**
12
+ * Apply styling to the List slots based on the state
13
+ */ export const useListStyles_unstable = (state)=>{
14
+ 'use no memo';
15
+ const rootStyles = useRootBaseStyles();
16
+ state.root.className = mergeClasses(listClassNames.root, rootStyles, state.root.className);
17
+ return state;
18
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/List/useListStyles.styles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { ListSlots, ListState } from './List.types';\n\nexport const listClassNames: SlotClassNames<ListSlots> = {\n root: 'fui-List',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n padding: 0,\n margin: 0,\n textIndent: 0,\n listStyleType: 'none',\n});\n\n/**\n * Apply styling to the List slots based on the state\n */\nexport const useListStyles_unstable = (state: ListState): ListState => {\n 'use no memo';\n\n const rootStyles = useRootBaseStyles();\n\n state.root.className = mergeClasses(listClassNames.root, rootStyles, state.root.className);\n\n return state;\n};\n"],"names":["makeResetStyles","mergeClasses","listClassNames","root","useRootBaseStyles","padding","margin","textIndent","listStyleType","useListStyles_unstable","state","rootStyles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,eAAe,EAAEC,YAAY,QAAQ,iBAAiB;AAG/D,OAAO,MAAMC,iBAA4C;IACvDC,MAAM;AACR,EAAE;AAEF,MAAMC,oBAAoBJ,gBAAgB;IACxCK,SAAS;IACTC,QAAQ;IACRC,YAAY;IACZC,eAAe;AACjB;AAEA;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CAACC;IACrC;IAEA,MAAMC,aAAaP;IAEnBM,MAAMP,IAAI,CAACS,SAAS,GAAGX,aAAaC,eAAeC,IAAI,EAAEQ,YAAYD,MAAMP,IAAI,CAACS,SAAS;IAEzF,OAAOF;AACT,EAAE"}
@@ -0,0 +1,48 @@
1
+ import { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';
2
+ import { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';
3
+ import { tokens } from '@fluentui/react-theme';
4
+ export const listItemClassNames = {
5
+ root: 'fui-ListItem',
6
+ checkmark: 'fui-ListItem__checkmark'
7
+ };
8
+ const useRootBaseStyles = makeResetStyles({
9
+ padding: 0,
10
+ margin: 0,
11
+ textIndent: 0,
12
+ listStyleType: 'none',
13
+ ...createCustomFocusIndicatorStyle({
14
+ outline: `${tokens.strokeWidthThick} solid ${tokens.colorStrokeFocus2}`,
15
+ borderRadius: tokens.borderRadiusMedium
16
+ }, {
17
+ selector: 'focus'
18
+ })
19
+ });
20
+ const useCheckmarkBaseStyles = makeStyles({
21
+ root: {
22
+ alignSelf: 'center',
23
+ '& .fui-Checkbox__indicator': {
24
+ margin: '4px'
25
+ }
26
+ }
27
+ });
28
+ /**
29
+ * Styles for the root slot
30
+ */ const useStyles = makeStyles({
31
+ rootClickableOrSelectable: {
32
+ display: 'flex',
33
+ cursor: 'pointer'
34
+ }
35
+ });
36
+ /**
37
+ * Apply styling to the ListItem slots based on the state
38
+ */ export const useListItemStyles_unstable = (state)=>{
39
+ 'use no memo';
40
+ const rootBaseStyles = useRootBaseStyles();
41
+ const checkmarkBaseStyles = useCheckmarkBaseStyles();
42
+ const styles = useStyles();
43
+ state.root.className = mergeClasses(listItemClassNames.root, rootBaseStyles, (state.selectable || state.navigable) && styles.rootClickableOrSelectable, state.root.className);
44
+ if (state.checkmark) {
45
+ state.checkmark.className = mergeClasses(listItemClassNames.checkmark, checkmarkBaseStyles.root, state.checkmark.className);
46
+ }
47
+ return state;
48
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ListItem/useListItemStyles.styles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport type { ListItemSlots, ListItemState } from './ListItem.types';\nimport { tokens } from '@fluentui/react-theme';\n\nexport const listItemClassNames: SlotClassNames<ListItemSlots> = {\n root: 'fui-ListItem',\n checkmark: 'fui-ListItem__checkmark',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n padding: 0,\n margin: 0,\n textIndent: 0,\n listStyleType: 'none',\n ...createCustomFocusIndicatorStyle(\n {\n outline: `${tokens.strokeWidthThick} solid ${tokens.colorStrokeFocus2}`,\n borderRadius: tokens.borderRadiusMedium,\n },\n { selector: 'focus' },\n ),\n});\n\nconst useCheckmarkBaseStyles = makeStyles({\n root: {\n alignSelf: 'center',\n\n '& .fui-Checkbox__indicator': { margin: '4px' },\n },\n});\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n rootClickableOrSelectable: {\n display: 'flex',\n cursor: 'pointer',\n },\n});\n\n/**\n * Apply styling to the ListItem slots based on the state\n */\nexport const useListItemStyles_unstable = (state: ListItemState): ListItemState => {\n 'use no memo';\n\n const rootBaseStyles = useRootBaseStyles();\n const checkmarkBaseStyles = useCheckmarkBaseStyles();\n const styles = useStyles();\n\n state.root.className = mergeClasses(\n listItemClassNames.root,\n rootBaseStyles,\n (state.selectable || state.navigable) && styles.rootClickableOrSelectable,\n state.root.className,\n );\n\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(\n listItemClassNames.checkmark,\n checkmarkBaseStyles.root,\n state.checkmark.className,\n );\n }\n\n return state;\n};\n"],"names":["makeStyles","makeResetStyles","mergeClasses","createCustomFocusIndicatorStyle","tokens","listItemClassNames","root","checkmark","useRootBaseStyles","padding","margin","textIndent","listStyleType","outline","strokeWidthThick","colorStrokeFocus2","borderRadius","borderRadiusMedium","selector","useCheckmarkBaseStyles","alignSelf","useStyles","rootClickableOrSelectable","display","cursor","useListItemStyles_unstable","state","rootBaseStyles","checkmarkBaseStyles","styles","className","selectable","navigable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,UAAU,EAAEC,eAAe,EAAEC,YAAY,QAAQ,iBAAiB;AAC3E,SAASC,+BAA+B,QAAQ,0BAA0B;AAE1E,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAO,MAAMC,qBAAoD;IAC/DC,MAAM;IACNC,WAAW;AACb,EAAE;AAEF,MAAMC,oBAAoBP,gBAAgB;IACxCQ,SAAS;IACTC,QAAQ;IACRC,YAAY;IACZC,eAAe;IACf,GAAGT,gCACD;QACEU,SAAS,CAAC,EAAET,OAAOU,gBAAgB,CAAC,OAAO,EAAEV,OAAOW,iBAAiB,CAAC,CAAC;QACvEC,cAAcZ,OAAOa,kBAAkB;IACzC,GACA;QAAEC,UAAU;IAAQ,EACrB;AACH;AAEA,MAAMC,yBAAyBnB,WAAW;IACxCM,MAAM;QACJc,WAAW;QAEX,8BAA8B;YAAEV,QAAQ;QAAM;IAChD;AACF;AACA;;CAEC,GACD,MAAMW,YAAYrB,WAAW;IAC3BsB,2BAA2B;QACzBC,SAAS;QACTC,QAAQ;IACV;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,6BAA6B,CAACC;IACzC;IAEA,MAAMC,iBAAiBnB;IACvB,MAAMoB,sBAAsBT;IAC5B,MAAMU,SAASR;IAEfK,MAAMpB,IAAI,CAACwB,SAAS,GAAG5B,aACrBG,mBAAmBC,IAAI,EACvBqB,gBACA,AAACD,CAAAA,MAAMK,UAAU,IAAIL,MAAMM,SAAS,AAAD,KAAMH,OAAOP,yBAAyB,EACzEI,MAAMpB,IAAI,CAACwB,SAAS;IAGtB,IAAIJ,MAAMnB,SAAS,EAAE;QACnBmB,MAAMnB,SAAS,CAACuB,SAAS,GAAG5B,aAC1BG,mBAAmBE,SAAS,EAC5BqB,oBAAoBtB,IAAI,EACxBoB,MAAMnB,SAAS,CAACuB,SAAS;IAE7B;IAEA,OAAOJ;AACT,EAAE"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ listClassNames: function() {
13
+ return listClassNames;
14
+ },
15
+ useListStyles_unstable: function() {
16
+ return useListStyles_unstable;
17
+ }
18
+ });
19
+ const _react = require("@griffel/react");
20
+ const listClassNames = {
21
+ root: 'fui-List'
22
+ };
23
+ const useRootBaseStyles = (0, _react.makeResetStyles)({
24
+ padding: 0,
25
+ margin: 0,
26
+ textIndent: 0,
27
+ listStyleType: 'none'
28
+ });
29
+ const useListStyles_unstable = (state)=>{
30
+ 'use no memo';
31
+ const rootStyles = useRootBaseStyles();
32
+ state.root.className = (0, _react.mergeClasses)(listClassNames.root, rootStyles, state.root.className);
33
+ return state;
34
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/List/useListStyles.styles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { ListSlots, ListState } from './List.types';\n\nexport const listClassNames: SlotClassNames<ListSlots> = {\n root: 'fui-List',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n padding: 0,\n margin: 0,\n textIndent: 0,\n listStyleType: 'none',\n});\n\n/**\n * Apply styling to the List slots based on the state\n */\nexport const useListStyles_unstable = (state: ListState): ListState => {\n 'use no memo';\n\n const rootStyles = useRootBaseStyles();\n\n state.root.className = mergeClasses(listClassNames.root, rootStyles, state.root.className);\n\n return state;\n};\n"],"names":["listClassNames","useListStyles_unstable","root","useRootBaseStyles","makeResetStyles","padding","margin","textIndent","listStyleType","state","rootStyles","className","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAIaA,cAAAA;eAAAA;;IAcAC,sBAAAA;eAAAA;;;uBAjBiC;AAGvC,MAAMD,iBAA4C;IACvDE,MAAM;AACR;AAEA,MAAMC,oBAAoBC,IAAAA,sBAAAA,EAAgB;IACxCC,SAAS;IACTC,QAAQ;IACRC,YAAY;IACZC,eAAe;AACjB;AAKO,MAAMP,yBAAyB,CAACQ;IACrC;IAEA,MAAMC,aAAaP;IAEnBM,MAAMP,IAAI,CAACS,SAAS,GAAGC,IAAAA,mBAAAA,EAAaZ,eAAeE,IAAI,EAAEQ,YAAYD,MAAMP,IAAI,CAACS,SAAS;IAEzF,OAAOF;AACT"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ listItemClassNames: function() {
13
+ return listItemClassNames;
14
+ },
15
+ useListItemStyles_unstable: function() {
16
+ return useListItemStyles_unstable;
17
+ }
18
+ });
19
+ const _react = require("@griffel/react");
20
+ const _reacttabster = require("@fluentui/react-tabster");
21
+ const _reacttheme = require("@fluentui/react-theme");
22
+ const listItemClassNames = {
23
+ root: 'fui-ListItem',
24
+ checkmark: 'fui-ListItem__checkmark'
25
+ };
26
+ const useRootBaseStyles = (0, _react.makeResetStyles)({
27
+ padding: 0,
28
+ margin: 0,
29
+ textIndent: 0,
30
+ listStyleType: 'none',
31
+ ...(0, _reacttabster.createCustomFocusIndicatorStyle)({
32
+ outline: `${_reacttheme.tokens.strokeWidthThick} solid ${_reacttheme.tokens.colorStrokeFocus2}`,
33
+ borderRadius: _reacttheme.tokens.borderRadiusMedium
34
+ }, {
35
+ selector: 'focus'
36
+ })
37
+ });
38
+ const useCheckmarkBaseStyles = (0, _react.makeStyles)({
39
+ root: {
40
+ alignSelf: 'center',
41
+ '& .fui-Checkbox__indicator': {
42
+ margin: '4px'
43
+ }
44
+ }
45
+ });
46
+ /**
47
+ * Styles for the root slot
48
+ */ const useStyles = (0, _react.makeStyles)({
49
+ rootClickableOrSelectable: {
50
+ display: 'flex',
51
+ cursor: 'pointer'
52
+ }
53
+ });
54
+ const useListItemStyles_unstable = (state)=>{
55
+ 'use no memo';
56
+ const rootBaseStyles = useRootBaseStyles();
57
+ const checkmarkBaseStyles = useCheckmarkBaseStyles();
58
+ const styles = useStyles();
59
+ state.root.className = (0, _react.mergeClasses)(listItemClassNames.root, rootBaseStyles, (state.selectable || state.navigable) && styles.rootClickableOrSelectable, state.root.className);
60
+ if (state.checkmark) {
61
+ state.checkmark.className = (0, _react.mergeClasses)(listItemClassNames.checkmark, checkmarkBaseStyles.root, state.checkmark.className);
62
+ }
63
+ return state;
64
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ListItem/useListItemStyles.styles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport type { ListItemSlots, ListItemState } from './ListItem.types';\nimport { tokens } from '@fluentui/react-theme';\n\nexport const listItemClassNames: SlotClassNames<ListItemSlots> = {\n root: 'fui-ListItem',\n checkmark: 'fui-ListItem__checkmark',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n padding: 0,\n margin: 0,\n textIndent: 0,\n listStyleType: 'none',\n ...createCustomFocusIndicatorStyle(\n {\n outline: `${tokens.strokeWidthThick} solid ${tokens.colorStrokeFocus2}`,\n borderRadius: tokens.borderRadiusMedium,\n },\n { selector: 'focus' },\n ),\n});\n\nconst useCheckmarkBaseStyles = makeStyles({\n root: {\n alignSelf: 'center',\n\n '& .fui-Checkbox__indicator': { margin: '4px' },\n },\n});\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n rootClickableOrSelectable: {\n display: 'flex',\n cursor: 'pointer',\n },\n});\n\n/**\n * Apply styling to the ListItem slots based on the state\n */\nexport const useListItemStyles_unstable = (state: ListItemState): ListItemState => {\n 'use no memo';\n\n const rootBaseStyles = useRootBaseStyles();\n const checkmarkBaseStyles = useCheckmarkBaseStyles();\n const styles = useStyles();\n\n state.root.className = mergeClasses(\n listItemClassNames.root,\n rootBaseStyles,\n (state.selectable || state.navigable) && styles.rootClickableOrSelectable,\n state.root.className,\n );\n\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(\n listItemClassNames.checkmark,\n checkmarkBaseStyles.root,\n state.checkmark.className,\n );\n }\n\n return state;\n};\n"],"names":["listItemClassNames","useListItemStyles_unstable","root","checkmark","useRootBaseStyles","makeResetStyles","padding","margin","textIndent","listStyleType","createCustomFocusIndicatorStyle","outline","tokens","strokeWidthThick","colorStrokeFocus2","borderRadius","borderRadiusMedium","selector","useCheckmarkBaseStyles","makeStyles","alignSelf","useStyles","rootClickableOrSelectable","display","cursor","state","rootBaseStyles","checkmarkBaseStyles","styles","className","mergeClasses","selectable","navigable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAMaA,kBAAAA;eAAAA;;IAuCAC,0BAAAA;eAAAA;;;uBA5C6C;8BACV;4BAEzB;AAEhB,MAAMD,qBAAoD;IAC/DE,MAAM;IACNC,WAAW;AACb;AAEA,MAAMC,oBAAoBC,IAAAA,sBAAAA,EAAgB;IACxCC,SAAS;IACTC,QAAQ;IACRC,YAAY;IACZC,eAAe;IACf,GAAGC,IAAAA,6CAAAA,EACD;QACEC,SAAS,CAAC,EAAEC,kBAAAA,CAAOC,gBAAgB,CAAC,OAAO,EAAED,kBAAAA,CAAOE,iBAAiB,CAAC,CAAC;QACvEC,cAAcH,kBAAAA,CAAOI,kBAAkB;IACzC,GACA;QAAEC,UAAU;IAAQ,EACrB;AACH;AAEA,MAAMC,yBAAyBC,IAAAA,iBAAAA,EAAW;IACxCjB,MAAM;QACJkB,WAAW;QAEX,8BAA8B;YAAEb,QAAQ;QAAM;IAChD;AACF;AACA;;CAEC,GACD,MAAMc,YAAYF,IAAAA,iBAAAA,EAAW;IAC3BG,2BAA2B;QACzBC,SAAS;QACTC,QAAQ;IACV;AACF;AAKO,MAAMvB,6BAA6B,CAACwB;IACzC;IAEA,MAAMC,iBAAiBtB;IACvB,MAAMuB,sBAAsBT;IAC5B,MAAMU,SAASP;IAEfI,MAAMvB,IAAI,CAAC2B,SAAS,GAAGC,IAAAA,mBAAAA,EACrB9B,mBAAmBE,IAAI,EACvBwB,gBACA,AAACD,CAAAA,MAAMM,UAAU,IAAIN,MAAMO,SAAS,AAATA,KAAcJ,OAAON,yBAAyB,EACzEG,MAAMvB,IAAI,CAAC2B,SAAS;IAGtB,IAAIJ,MAAMtB,SAAS,EAAE;QACnBsB,MAAMtB,SAAS,CAAC0B,SAAS,GAAGC,IAAAA,mBAAAA,EAC1B9B,mBAAmBG,SAAS,EAC5BwB,oBAAoBzB,IAAI,EACxBuB,MAAMtB,SAAS,CAAC0B,SAAS;IAE7B;IAEA,OAAOJ;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-list",
3
- "version": "9.2.7",
3
+ "version": "9.3.0",
4
4
  "description": "React List v9",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -26,11 +26,11 @@
26
26
  "@fluentui/scripts-cypress": "*"
27
27
  },
28
28
  "dependencies": {
29
- "@fluentui/react-checkbox": "^9.4.7",
29
+ "@fluentui/react-checkbox": "^9.5.0",
30
30
  "@fluentui/react-context-selector": "^9.2.2",
31
31
  "@fluentui/react-jsx-runtime": "^9.1.2",
32
32
  "@fluentui/keyboard-keys": "^9.0.8",
33
- "@fluentui/react-tabster": "^9.25.3",
33
+ "@fluentui/react-tabster": "^9.26.0",
34
34
  "@fluentui/react-theme": "^9.1.24",
35
35
  "@fluentui/react-utilities": "^9.22.0",
36
36
  "@fluentui/react-shared-contexts": "^9.24.0",