@fluentui/react-persona 9.1.0-beta.2 → 9.1.0-beta.4

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.json CHANGED
@@ -2,7 +2,93 @@
2
2
  "name": "@fluentui/react-persona",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 02 Nov 2022 11:54:56 GMT",
5
+ "date": "Thu, 17 Nov 2022 23:02:39 GMT",
6
+ "tag": "@fluentui/react-persona_v9.1.0-beta.4",
7
+ "version": "9.1.0-beta.4",
8
+ "comments": {
9
+ "prerelease": [
10
+ {
11
+ "author": "esteban.230@hotmail.com",
12
+ "package": "@fluentui/react-persona",
13
+ "commit": "9066dc6a278db9df1fe3a277e66c94c201107d14",
14
+ "comment": "feat: Adding size and textAlignment props and updating styles."
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@fluentui/react-persona",
19
+ "comment": "Bump @fluentui/react-avatar to v9.2.7",
20
+ "commit": "94e156be5d3b5790d82dccf08c32672733fb9335"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@fluentui/react-persona",
25
+ "comment": "Bump @fluentui/react-badge to v9.0.13",
26
+ "commit": "94e156be5d3b5790d82dccf08c32672733fb9335"
27
+ },
28
+ {
29
+ "author": "beachball",
30
+ "package": "@fluentui/react-persona",
31
+ "comment": "Bump @fluentui/react-utilities to v9.2.2",
32
+ "commit": "94e156be5d3b5790d82dccf08c32672733fb9335"
33
+ }
34
+ ],
35
+ "none": [
36
+ {
37
+ "author": "martinhochel@microsoft.com",
38
+ "package": "@fluentui/react-persona",
39
+ "commit": "ea768501802d65d63ddc63fff3816fb6b5008ae4",
40
+ "comment": "chore: update package scaffold"
41
+ }
42
+ ]
43
+ }
44
+ },
45
+ {
46
+ "date": "Fri, 11 Nov 2022 14:58:09 GMT",
47
+ "tag": "@fluentui/react-persona_v9.1.0-beta.3",
48
+ "version": "9.1.0-beta.3",
49
+ "comments": {
50
+ "prerelease": [
51
+ {
52
+ "author": "martinhochel@microsoft.com",
53
+ "package": "@fluentui/react-persona",
54
+ "commit": "b3907043bd8d7b650c55e8e7c3119b14f2606c38",
55
+ "comment": "fix: create valid export maps"
56
+ },
57
+ {
58
+ "author": "beachball",
59
+ "package": "@fluentui/react-persona",
60
+ "comment": "Bump @fluentui/react-avatar to v9.2.6",
61
+ "commit": "b4c9a0ae8d7444bf746f1307ab01e2dc16310720"
62
+ },
63
+ {
64
+ "author": "beachball",
65
+ "package": "@fluentui/react-persona",
66
+ "comment": "Bump @fluentui/react-badge to v9.0.12",
67
+ "commit": "b4c9a0ae8d7444bf746f1307ab01e2dc16310720"
68
+ },
69
+ {
70
+ "author": "beachball",
71
+ "package": "@fluentui/react-persona",
72
+ "comment": "Bump @fluentui/react-theme to v9.1.2",
73
+ "commit": "b4c9a0ae8d7444bf746f1307ab01e2dc16310720"
74
+ },
75
+ {
76
+ "author": "beachball",
77
+ "package": "@fluentui/react-persona",
78
+ "comment": "Bump @fluentui/react-utilities to v9.2.1",
79
+ "commit": "b4c9a0ae8d7444bf746f1307ab01e2dc16310720"
80
+ },
81
+ {
82
+ "author": "beachball",
83
+ "package": "@fluentui/react-persona",
84
+ "comment": "Bump @fluentui/react-conformance-griffel to v9.0.0-beta.18",
85
+ "commit": "b4c9a0ae8d7444bf746f1307ab01e2dc16310720"
86
+ }
87
+ ]
88
+ }
89
+ },
90
+ {
91
+ "date": "Wed, 02 Nov 2022 11:57:56 GMT",
6
92
  "tag": "@fluentui/react-persona_v9.1.0-beta.2",
7
93
  "version": "9.1.0-beta.2",
8
94
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,38 @@
1
1
  # Change Log - @fluentui/react-persona
2
2
 
3
- This log was last generated on Wed, 02 Nov 2022 11:54:56 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 17 Nov 2022 23:02:39 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.1.0-beta.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-persona_v9.1.0-beta.4)
8
+
9
+ Thu, 17 Nov 2022 23:02:39 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-persona_v9.1.0-beta.3..@fluentui/react-persona_v9.1.0-beta.4)
11
+
12
+ ### Changes
13
+
14
+ - feat: Adding size and textAlignment props and updating styles. ([PR #25626](https://github.com/microsoft/fluentui/pull/25626) by esteban.230@hotmail.com)
15
+ - Bump @fluentui/react-avatar to v9.2.7 ([PR #25683](https://github.com/microsoft/fluentui/pull/25683) by beachball)
16
+ - Bump @fluentui/react-badge to v9.0.13 ([PR #25683](https://github.com/microsoft/fluentui/pull/25683) by beachball)
17
+ - Bump @fluentui/react-utilities to v9.2.2 ([PR #25683](https://github.com/microsoft/fluentui/pull/25683) by beachball)
18
+
19
+ ## [9.1.0-beta.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-persona_v9.1.0-beta.3)
20
+
21
+ Fri, 11 Nov 2022 14:58:09 GMT
22
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-persona_v9.1.0-beta.2..@fluentui/react-persona_v9.1.0-beta.3)
23
+
24
+ ### Changes
25
+
26
+ - fix: create valid export maps ([PR #25558](https://github.com/microsoft/fluentui/pull/25558) by martinhochel@microsoft.com)
27
+ - Bump @fluentui/react-avatar to v9.2.6 ([PR #25615](https://github.com/microsoft/fluentui/pull/25615) by beachball)
28
+ - Bump @fluentui/react-badge to v9.0.12 ([PR #25615](https://github.com/microsoft/fluentui/pull/25615) by beachball)
29
+ - Bump @fluentui/react-theme to v9.1.2 ([PR #25615](https://github.com/microsoft/fluentui/pull/25615) by beachball)
30
+ - Bump @fluentui/react-utilities to v9.2.1 ([PR #25615](https://github.com/microsoft/fluentui/pull/25615) by beachball)
31
+ - Bump @fluentui/react-conformance-griffel to v9.0.0-beta.18 ([PR #25615](https://github.com/microsoft/fluentui/pull/25615) by beachball)
32
+
7
33
  ## [9.1.0-beta.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-persona_v9.1.0-beta.2)
8
34
 
9
- Wed, 02 Nov 2022 11:54:56 GMT
35
+ Wed, 02 Nov 2022 11:57:56 GMT
10
36
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-persona_v9.1.0-beta.1..@fluentui/react-persona_v9.1.0-beta.2)
11
37
 
12
38
  ### Changes
package/dist/index.d.ts CHANGED
@@ -33,12 +33,24 @@ export declare type PersonaProps = ComponentProps<PersonaSlots> & {
33
33
  * @default false
34
34
  */
35
35
  presenceOnly?: boolean;
36
+ /**
37
+ * The size of a Persona and its text.
38
+ *
39
+ * @default medium
40
+ */
41
+ size?: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large' | 'huge';
36
42
  /**
37
43
  * The position of the text relative to the avatar/presence.
38
44
  *
39
45
  * @default after
40
46
  */
41
- textPosition?: 'before' | 'after' | 'below';
47
+ textPosition?: 'after' | 'before' | 'below';
48
+ /**
49
+ * The vertical alignment of the text relative to the avatar/presence.
50
+ *
51
+ * @default start
52
+ */
53
+ textAlignment?: 'center' | 'start';
42
54
  };
43
55
 
44
56
  export declare type PersonaSlots = {
@@ -79,11 +91,7 @@ export declare type PersonaSlots = {
79
91
  /**
80
92
  * State used in rendering Persona
81
93
  */
82
- export declare type PersonaState = ComponentState<PersonaSlots> & Required<Pick<PersonaProps, 'textPosition' | 'presenceOnly'>> & {
83
- /**
84
- * Whether the sizing type is fixed or not.
85
- */
86
- fixed: boolean;
94
+ export declare type PersonaState = ComponentState<PersonaSlots> & Required<Pick<PersonaProps, 'presenceOnly' | 'size' | 'textAlignment' | 'textPosition'>> & {
87
95
  /**
88
96
  * The number of text lines used.
89
97
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Persona.js","sourceRoot":"../src/","sources":["Persona.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './components/Persona/index';\n"]}
1
+ {"version":3,"file":"Persona.js","sourceRoot":"../src/","sources":["packages/react-components/react-persona/src/Persona.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './components/Persona/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["components/Persona/Persona.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,sBAAT,QAAuC,iBAAvC;AACA,SAAS,mBAAT,QAAoC,cAApC;AACA,SAAS,yBAAT,QAA0C,oBAA1C;AAIA;;;AAGG;;AACH,OAAO,MAAM,OAAO,gBAAsC,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;EACxF,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAD,EAAQ,GAAR,CAAjC;EAEA,yBAAyB,CAAC,KAAD,CAAzB;EACA,OAAO,sBAAsB,CAAC,KAAD,CAA7B;AACD,CALyD,CAAnD;AAOP,OAAO,CAAC,WAAR,GAAsB,SAAtB","sourcesContent":["import * as React from 'react';\nimport { renderPersona_unstable } from './renderPersona';\nimport { usePersona_unstable } from './usePersona';\nimport { usePersonaStyles_unstable } from './usePersonaStyles';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport type { PersonaProps } from './Persona.types';\n\n/**\n * A Persona is a visual representation of a person or status that showcases an Avatar, PresenceBadge,\n * or an Avatar with a PresenceBadge.\n */\nexport const Persona: ForwardRefComponent<PersonaProps> = React.forwardRef((props, ref) => {\n const state = usePersona_unstable(props, ref);\n\n usePersonaStyles_unstable(state);\n return renderPersona_unstable(state);\n});\n\nPersona.displayName = 'Persona';\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["packages/react-components/react-persona/src/components/Persona/Persona.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,sBAAT,QAAuC,iBAAvC;AACA,SAAS,mBAAT,QAAoC,cAApC;AACA,SAAS,yBAAT,QAA0C,oBAA1C;AAIA;;;AAGG;;AACH,OAAO,MAAM,OAAO,gBAAsC,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;EACxF,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAD,EAAQ,GAAR,CAAjC;EAEA,yBAAyB,CAAC,KAAD,CAAzB;EACA,OAAO,sBAAsB,CAAC,KAAD,CAA7B;AACD,CALyD,CAAnD;AAOP,OAAO,CAAC,WAAR,GAAsB,SAAtB","sourcesContent":["import * as React from 'react';\nimport { renderPersona_unstable } from './renderPersona';\nimport { usePersona_unstable } from './usePersona';\nimport { usePersonaStyles_unstable } from './usePersonaStyles';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport type { PersonaProps } from './Persona.types';\n\n/**\n * A Persona is a visual representation of a person or status that showcases an Avatar, PresenceBadge,\n * or an Avatar with a PresenceBadge.\n */\nexport const Persona: ForwardRefComponent<PersonaProps> = React.forwardRef((props, ref) => {\n const state = usePersona_unstable(props, ref);\n\n usePersonaStyles_unstable(state);\n return renderPersona_unstable(state);\n});\n\nPersona.displayName = 'Persona';\n"],"sourceRoot":"../src/"}
@@ -1 +1 @@
1
- {"version":3,"file":"Persona.types.js","sourceRoot":"../src/","sources":["components/Persona/Persona.types.ts"],"names":[],"mappings":"","sourcesContent":["import { Avatar } from '@fluentui/react-avatar';\nimport { PresenceBadge } from '@fluentui/react-badge';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type PersonaSlots = {\n root: NonNullable<Slot<'div'>>;\n\n /**\n * Avatar to display.\n *\n * If a PresenceBadge and an Avatar are provided, the Avatar will display the PresenceBadge as its presence.\n */\n avatar?: Slot<typeof Avatar>;\n\n /**\n * PresenceBadge to display.\n *\n * If `presenceOnly` is true, the PresenceBadge will be displayed instead of the Avatar.\n */\n presence?: Slot<typeof PresenceBadge>;\n\n /**\n * The first line of text in the Persona, larger than the rest of the lines.\n *\n * This defaults to the `name` prop, and it is recomended that you only set its value if it should be different from\n * from the `name` prop.\n */\n primaryText?: Slot<'span'>;\n\n /**\n * The second line of text in the Persona.\n */\n secondaryText?: Slot<'span'>;\n\n /**\n * The third line of text in the Persona.\n */\n tertiaryText?: Slot<'span'>;\n\n /**\n * The fourth line of text in the Persona.\n */\n quaternaryText?: Slot<'span'>;\n};\n\n/**\n * Persona Props\n */\nexport type PersonaProps = ComponentProps<PersonaSlots> & {\n /**\n * The name of the person or entity represented by the Persona.\n *\n * When `primaryText` is not provided, this will be used as the default value for `primaryText`.\n */\n name?: string;\n\n /**\n * Whether to display only the presence.\n *\n * @default false\n */\n presenceOnly?: boolean;\n\n /**\n * The position of the text relative to the avatar/presence.\n *\n * @default after\n */\n textPosition?: 'before' | 'after' | 'below';\n};\n\n/**\n * State used in rendering Persona\n */\nexport type PersonaState = ComponentState<PersonaSlots> &\n Required<Pick<PersonaProps, 'textPosition' | 'presenceOnly'>> & {\n /**\n * Whether the sizing type is fixed or not.\n */\n fixed: boolean;\n /**\n * The number of text lines used.\n */\n numTextLines: number;\n };\n"]}
1
+ {"version":3,"file":"Persona.types.js","sourceRoot":"../src/","sources":["packages/react-components/react-persona/src/components/Persona/Persona.types.ts"],"names":[],"mappings":"","sourcesContent":["import { Avatar } from '@fluentui/react-avatar';\nimport { PresenceBadge } from '@fluentui/react-badge';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type PersonaSlots = {\n root: NonNullable<Slot<'div'>>;\n\n /**\n * Avatar to display.\n *\n * If a PresenceBadge and an Avatar are provided, the Avatar will display the PresenceBadge as its presence.\n */\n avatar?: Slot<typeof Avatar>;\n\n /**\n * PresenceBadge to display.\n *\n * If `presenceOnly` is true, the PresenceBadge will be displayed instead of the Avatar.\n */\n presence?: Slot<typeof PresenceBadge>;\n\n /**\n * The first line of text in the Persona, larger than the rest of the lines.\n *\n * This defaults to the `name` prop, and it is recomended that you only set its value if it should be different from\n * from the `name` prop.\n */\n primaryText?: Slot<'span'>;\n\n /**\n * The second line of text in the Persona.\n */\n secondaryText?: Slot<'span'>;\n\n /**\n * The third line of text in the Persona.\n */\n tertiaryText?: Slot<'span'>;\n\n /**\n * The fourth line of text in the Persona.\n */\n quaternaryText?: Slot<'span'>;\n};\n\n/**\n * Persona Props\n */\nexport type PersonaProps = ComponentProps<PersonaSlots> & {\n /**\n * The name of the person or entity represented by the Persona.\n *\n * When `primaryText` is not provided, this will be used as the default value for `primaryText`.\n */\n name?: string;\n\n /**\n * Whether to display only the presence.\n *\n * @default false\n */\n presenceOnly?: boolean;\n\n /**\n * The size of a Persona and its text.\n *\n * @default medium\n */\n size?: 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large' | 'huge';\n\n /**\n * The position of the text relative to the avatar/presence.\n *\n * @default after\n */\n textPosition?: 'after' | 'before' | 'below';\n\n /**\n * The vertical alignment of the text relative to the avatar/presence.\n *\n * @default start\n */\n textAlignment?: 'center' | 'start';\n};\n\n/**\n * State used in rendering Persona\n */\nexport type PersonaState = ComponentState<PersonaSlots> &\n Required<Pick<PersonaProps, 'presenceOnly' | 'size' | 'textAlignment' | 'textPosition'>> & {\n /**\n * The number of text lines used.\n */\n numTextLines: number;\n };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/Persona/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './Persona';\nexport * from './Persona.types';\nexport * from './renderPersona';\nexport * from './usePersona';\nexport * from './usePersonaStyles';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["packages/react-components/react-persona/src/components/Persona/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './Persona';\nexport * from './Persona.types';\nexport * from './renderPersona';\nexport * from './usePersona';\nexport * from './usePersonaStyles';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["components/Persona/renderPersona.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,sBAAsB,GAAI,KAAD,IAAwB;EAC5D,MAAM;IAAE,YAAF;IAAgB;EAAhB,IAAiC,KAAvC;EACA,MAAM;IAAE,KAAF;IAAS;EAAT,IAAuB,QAAQ,CAAe,KAAf,CAArC;EAEA,MAAM,IAAI,GAAG,YAAY,GACrB,KAAK,CAAC,QAAN,iBAAkB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAP,EAAe,EAAA,GAAK,SAAS,CAAC;EAAf,CAAf,CADG,GAErB,KAAK,CAAC,MAAN,iBAAgB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,MAAP,EAAa,EAAA,GAAK,SAAS,CAAC;EAAf,CAAb,CAFpB;EAIA,oBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;EAAf,CAAX,EACG,CAAC,YAAY,KAAK,OAAjB,IAA4B,YAAY,KAAK,OAA9C,KAA0D,IAD7D,EAEG,KAAK,CAAC,WAAN,iBAAqB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,WAAP,EAAkB,EAAA,GAAK,SAAS,CAAC;EAAf,CAAlB,CAFxB,EAGG,KAAK,CAAC,aAAN,iBAAuB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,aAAP,EAAoB,EAAA,GAAK,SAAS,CAAC;EAAf,CAApB,CAH1B,EAIG,KAAK,CAAC,YAAN,iBAAsB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,YAAP,EAAmB,EAAA,GAAK,SAAS,CAAC;EAAf,CAAnB,CAJzB,EAKG,KAAK,CAAC,cAAN,iBAAwB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,cAAP,EAAqB,EAAA,GAAK,SAAS,CAAC;EAAf,CAArB,CAL3B,EAMG,YAAY,KAAK,QAAjB,IAA6B,IANhC,CADF;AAUD,CAlBM","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { PersonaState, PersonaSlots } from './Persona.types';\n\n/**\n * Render the final JSX of Persona\n */\nexport const renderPersona_unstable = (state: PersonaState) => {\n const { presenceOnly, textPosition } = state;\n const { slots, slotProps } = getSlots<PersonaSlots>(state);\n\n const coin = presenceOnly\n ? slots.presence && <slots.presence {...slotProps.presence} />\n : slots.avatar && <slots.avatar {...slotProps.avatar} />;\n\n return (\n <slots.root {...slotProps.root}>\n {(textPosition === 'after' || textPosition === 'below') && coin}\n {slots.primaryText && <slots.primaryText {...slotProps.primaryText} />}\n {slots.secondaryText && <slots.secondaryText {...slotProps.secondaryText} />}\n {slots.tertiaryText && <slots.tertiaryText {...slotProps.tertiaryText} />}\n {slots.quaternaryText && <slots.quaternaryText {...slotProps.quaternaryText} />}\n {textPosition === 'before' && coin}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["packages/react-components/react-persona/src/components/Persona/renderPersona.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,sBAAsB,GAAI,KAAD,IAAwB;EAC5D,MAAM;IAAE,YAAF;IAAgB;EAAhB,IAAiC,KAAvC;EACA,MAAM;IAAE,KAAF;IAAS;EAAT,IAAuB,QAAQ,CAAe,KAAf,CAArC;EAEA,MAAM,IAAI,GAAG,YAAY,GACrB,KAAK,CAAC,QAAN,iBAAkB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAP,EAAe,EAAA,GAAK,SAAS,CAAC;EAAf,CAAf,CADG,GAErB,KAAK,CAAC,MAAN,iBAAgB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,MAAP,EAAa,EAAA,GAAK,SAAS,CAAC;EAAf,CAAb,CAFpB;EAIA,oBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;EAAf,CAAX,EACG,CAAC,YAAY,KAAK,OAAjB,IAA4B,YAAY,KAAK,OAA9C,KAA0D,IAD7D,EAEG,KAAK,CAAC,WAAN,iBAAqB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,WAAP,EAAkB,EAAA,GAAK,SAAS,CAAC;EAAf,CAAlB,CAFxB,EAGG,KAAK,CAAC,aAAN,iBAAuB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,aAAP,EAAoB,EAAA,GAAK,SAAS,CAAC;EAAf,CAApB,CAH1B,EAIG,KAAK,CAAC,YAAN,iBAAsB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,YAAP,EAAmB,EAAA,GAAK,SAAS,CAAC;EAAf,CAAnB,CAJzB,EAKG,KAAK,CAAC,cAAN,iBAAwB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,cAAP,EAAqB,EAAA,GAAK,SAAS,CAAC;EAAf,CAArB,CAL3B,EAMG,YAAY,KAAK,QAAjB,IAA6B,IANhC,CADF;AAUD,CAlBM","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { PersonaState, PersonaSlots } from './Persona.types';\n\n/**\n * Render the final JSX of Persona\n */\nexport const renderPersona_unstable = (state: PersonaState) => {\n const { presenceOnly, textPosition } = state;\n const { slots, slotProps } = getSlots<PersonaSlots>(state);\n\n const coin = presenceOnly\n ? slots.presence && <slots.presence {...slotProps.presence} />\n : slots.avatar && <slots.avatar {...slotProps.avatar} />;\n\n return (\n <slots.root {...slotProps.root}>\n {(textPosition === 'after' || textPosition === 'below') && coin}\n {slots.primaryText && <slots.primaryText {...slotProps.primaryText} />}\n {slots.secondaryText && <slots.secondaryText {...slotProps.secondaryText} />}\n {slots.tertiaryText && <slots.tertiaryText {...slotProps.tertiaryText} />}\n {slots.quaternaryText && <slots.quaternaryText {...slotProps.quaternaryText} />}\n {textPosition === 'before' && coin}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
@@ -13,9 +13,11 @@ import { PresenceBadge } from '@fluentui/react-badge';
13
13
 
14
14
  export const usePersona_unstable = (props, ref) => {
15
15
  const {
16
+ name,
16
17
  presenceOnly = false,
17
- textPosition = 'after',
18
- name
18
+ size = 'medium',
19
+ textAlignment = 'start',
20
+ textPosition = 'after'
19
21
  } = props;
20
22
  const primaryText = resolveShorthand(props.primaryText, {
21
23
  required: true,
@@ -27,54 +29,11 @@ export const usePersona_unstable = (props, ref) => {
27
29
  const tertiaryText = resolveShorthand(props.tertiaryText);
28
30
  const quaternaryText = resolveShorthand(props.quaternaryText);
29
31
  const numTextLines = [primaryText, secondaryText, tertiaryText, quaternaryText].filter(Boolean).length;
30
- let fixed = false;
31
-
32
- if (!presenceOnly && props.avatar) {
33
- fixed = !!props.avatar.size;
34
- } else if (props.presence && props.presence) {
35
- fixed = !!props.presence.size;
36
- }
37
-
38
- let avatarSize = undefined;
39
- let presenceSize = undefined;
40
-
41
- if (presenceOnly && !fixed) {
42
- if (numTextLines === 1) {
43
- presenceSize = 'small';
44
- } else if (numTextLines === 2) {
45
- presenceSize = 'large';
46
- } else {
47
- presenceSize = 'extra-large';
48
- }
49
- } else if (!fixed) {
50
- if (numTextLines === 1) {
51
- avatarSize = 16;
52
- } else if (numTextLines === 2) {
53
- avatarSize = 32;
54
- } else if (numTextLines === 3) {
55
- avatarSize = 56;
56
- } else {
57
- avatarSize = 72;
58
- }
59
- }
60
-
61
- const avatar = !presenceOnly ? resolveShorthand(props.avatar, {
62
- required: true,
63
- defaultProps: {
64
- name,
65
- badge: props.presence,
66
- size: avatarSize
67
- }
68
- }) : undefined;
69
- const presence = presenceOnly ? resolveShorthand(props.presence, {
70
- defaultProps: {
71
- size: presenceSize
72
- }
73
- }) : undefined;
74
32
  return {
75
- fixed,
76
33
  numTextLines,
77
34
  presenceOnly,
35
+ size,
36
+ textAlignment,
78
37
  textPosition,
79
38
  components: {
80
39
  root: 'div',
@@ -90,12 +49,39 @@ export const usePersona_unstable = (props, ref) => {
90
49
  },
91
50
  /* excludedPropNames */
92
51
  ['name']),
93
- avatar,
94
- presence,
52
+ avatar: !presenceOnly ? resolveShorthand(props.avatar, {
53
+ required: true,
54
+ defaultProps: {
55
+ name,
56
+ badge: props.presence,
57
+ size: avatarSizes[size]
58
+ }
59
+ }) : undefined,
60
+ presence: presenceOnly ? resolveShorthand(props.presence, {
61
+ defaultProps: {
62
+ size: presenceSizes[size]
63
+ }
64
+ }) : undefined,
95
65
  primaryText,
96
66
  secondaryText,
97
67
  tertiaryText,
98
68
  quaternaryText
99
69
  };
100
70
  };
71
+ const presenceSizes = {
72
+ 'extra-small': 'tiny',
73
+ small: 'extra-small',
74
+ medium: 'small',
75
+ large: 'medium',
76
+ 'extra-large': 'large',
77
+ huge: 'large'
78
+ };
79
+ const avatarSizes = {
80
+ 'extra-small': 20,
81
+ small: 28,
82
+ medium: 32,
83
+ large: 36,
84
+ 'extra-large': 40,
85
+ huge: 56
86
+ };
101
87
  //# sourceMappingURL=usePersona.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["components/Persona/usePersona.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Avatar } from '@fluentui/react-avatar';\nimport { getNativeElementProps, resolveShorthand } from '@fluentui/react-utilities';\nimport { PresenceBadge } from '@fluentui/react-badge';\nimport type { AvatarProps } from '@fluentui/react-avatar';\nimport type { PersonaProps, PersonaState } from './Persona.types';\nimport type { PresenceBadgeProps } from '@fluentui/react-badge';\n\n/**\n * Create the state required to render Persona.\n *\n * The returned state can be modified with hooks such as usePersonaStyles_unstable,\n * before being passed to renderPersona_unstable.\n *\n * @param props - props from this instance of Persona\n * @param ref - reference to root HTMLElement of Persona\n */\nexport const usePersona_unstable = (props: PersonaProps, ref: React.Ref<HTMLElement>): PersonaState => {\n const { presenceOnly = false, textPosition = 'after', name } = props;\n\n const primaryText = resolveShorthand(props.primaryText, {\n required: true,\n defaultProps: {\n children: name,\n },\n });\n const secondaryText = resolveShorthand(props.secondaryText);\n const tertiaryText = resolveShorthand(props.tertiaryText);\n const quaternaryText = resolveShorthand(props.quaternaryText);\n\n const numTextLines = [primaryText, secondaryText, tertiaryText, quaternaryText].filter(Boolean).length;\n\n let fixed = false;\n if (!presenceOnly && props.avatar) {\n fixed = !!(props.avatar as AvatarProps).size;\n } else if (props.presence && props.presence) {\n fixed = !!(props.presence as PresenceBadgeProps).size;\n }\n\n let avatarSize: AvatarProps['size'] = undefined;\n let presenceSize: PresenceBadgeProps['size'] = undefined;\n if (presenceOnly && !fixed) {\n if (numTextLines === 1) {\n presenceSize = 'small';\n } else if (numTextLines === 2) {\n presenceSize = 'large';\n } else {\n presenceSize = 'extra-large';\n }\n } else if (!fixed) {\n if (numTextLines === 1) {\n avatarSize = 16;\n } else if (numTextLines === 2) {\n avatarSize = 32;\n } else if (numTextLines === 3) {\n avatarSize = 56;\n } else {\n avatarSize = 72;\n }\n }\n\n const avatar: PersonaState['avatar'] = !presenceOnly\n ? resolveShorthand(props.avatar, {\n required: true,\n defaultProps: {\n name,\n badge: props.presence,\n size: avatarSize,\n },\n })\n : undefined;\n\n const presence: PersonaState['presence'] = presenceOnly\n ? resolveShorthand(props.presence, {\n defaultProps: {\n size: presenceSize,\n },\n })\n : undefined;\n\n return {\n fixed,\n numTextLines,\n presenceOnly,\n textPosition,\n\n components: {\n root: 'div',\n avatar: Avatar,\n presence: PresenceBadge,\n primaryText: 'span',\n secondaryText: 'span',\n tertiaryText: 'span',\n quaternaryText: 'span',\n },\n\n root: getNativeElementProps(\n 'div',\n {\n ...props,\n ref,\n },\n /* excludedPropNames */ ['name'],\n ),\n avatar,\n presence,\n primaryText,\n secondaryText,\n tertiaryText,\n quaternaryText,\n };\n};\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["packages/react-components/react-persona/src/components/Persona/usePersona.ts"],"names":[],"mappings":"AACA,SAAS,MAAT,QAAuB,wBAAvB;AACA,SAAS,qBAAT,EAAgC,gBAAhC,QAAwD,2BAAxD;AACA,SAAS,aAAT,QAA8B,uBAA9B;AAGA;;;;;;;;AAQG;;AACH,OAAO,MAAM,mBAAmB,GAAG,CAAC,KAAD,EAAsB,GAAtB,KAAmE;EACpG,MAAM;IAAE,IAAF;IAAQ,YAAY,GAAG,KAAvB;IAA8B,IAAI,GAAG,QAArC;IAA+C,aAAa,GAAG,OAA/D;IAAwE,YAAY,GAAG;EAAvF,IAAmG,KAAzG;EAEA,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAP,EAAoB;IACtD,QAAQ,EAAE,IAD4C;IAEtD,YAAY,EAAE;MACZ,QAAQ,EAAE;IADE;EAFwC,CAApB,CAApC;EAMA,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAP,CAAtC;EACA,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAP,CAArC;EACA,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,cAAP,CAAvC;EAEA,MAAM,YAAY,GAAG,CAAC,WAAD,EAAc,aAAd,EAA6B,YAA7B,EAA2C,cAA3C,EAA2D,MAA3D,CAAkE,OAAlE,EAA2E,MAAhG;EAEA,OAAO;IACL,YADK;IAEL,YAFK;IAGL,IAHK;IAIL,aAJK;IAKL,YALK;IAOL,UAAU,EAAE;MACV,IAAI,EAAE,KADI;MAEV,MAAM,EAAE,MAFE;MAGV,QAAQ,EAAE,aAHA;MAIV,WAAW,EAAE,MAJH;MAKV,aAAa,EAAE,MALL;MAMV,YAAY,EAAE,MANJ;MAOV,cAAc,EAAE;IAPN,CAPP;IAiBL,IAAI,EAAE,qBAAqB,CACzB,KADyB,EAEzB,EACE,GAAG,KADL;MAEE;IAFF,CAFyB;IAMzB;IAAwB,CAAC,MAAD,CANC,CAjBtB;IAyBL,MAAM,EAAE,CAAC,YAAD,GACJ,gBAAgB,CAAC,KAAK,CAAC,MAAP,EAAe;MAC7B,QAAQ,EAAE,IADmB;MAE7B,YAAY,EAAE;QACZ,IADY;QAEZ,KAAK,EAAE,KAAK,CAAC,QAFD;QAGZ,IAAI,EAAE,WAAW,CAAC,IAAD;MAHL;IAFe,CAAf,CADZ,GASJ,SAlCC;IAmCL,QAAQ,EAAE,YAAY,GAClB,gBAAgB,CAAC,KAAK,CAAC,QAAP,EAAiB;MAC/B,YAAY,EAAE;QACZ,IAAI,EAAE,aAAa,CAAC,IAAD;MADP;IADiB,CAAjB,CADE,GAMlB,SAzCC;IA0CL,WA1CK;IA2CL,aA3CK;IA4CL,YA5CK;IA6CL;EA7CK,CAAP;AA+CD,CA9DM;AAgEP,MAAM,aAAa,GAAG;EACpB,eAAe,MADK;EAEpB,KAAK,EAAE,aAFa;EAGpB,MAAM,EAAE,OAHY;EAIpB,KAAK,EAAE,QAJa;EAKpB,eAAe,OALK;EAMpB,IAAI,EAAE;AANc,CAAtB;AASA,MAAM,WAAW,GAAG;EAClB,eAAe,EADG;EAElB,KAAK,EAAE,EAFW;EAGlB,MAAM,EAAE,EAHU;EAIlB,KAAK,EAAE,EAJW;EAKlB,eAAe,EALG;EAMlB,IAAI,EAAE;AANY,CAApB","sourcesContent":["import * as React from 'react';\nimport { Avatar } from '@fluentui/react-avatar';\nimport { getNativeElementProps, resolveShorthand } from '@fluentui/react-utilities';\nimport { PresenceBadge } from '@fluentui/react-badge';\nimport type { PersonaProps, PersonaState } from './Persona.types';\n\n/**\n * Create the state required to render Persona.\n *\n * The returned state can be modified with hooks such as usePersonaStyles_unstable,\n * before being passed to renderPersona_unstable.\n *\n * @param props - props from this instance of Persona\n * @param ref - reference to root HTMLElement of Persona\n */\nexport const usePersona_unstable = (props: PersonaProps, ref: React.Ref<HTMLElement>): PersonaState => {\n const { name, presenceOnly = false, size = 'medium', textAlignment = 'start', textPosition = 'after' } = props;\n\n const primaryText = resolveShorthand(props.primaryText, {\n required: true,\n defaultProps: {\n children: name,\n },\n });\n const secondaryText = resolveShorthand(props.secondaryText);\n const tertiaryText = resolveShorthand(props.tertiaryText);\n const quaternaryText = resolveShorthand(props.quaternaryText);\n\n const numTextLines = [primaryText, secondaryText, tertiaryText, quaternaryText].filter(Boolean).length;\n\n return {\n numTextLines,\n presenceOnly,\n size,\n textAlignment,\n textPosition,\n\n components: {\n root: 'div',\n avatar: Avatar,\n presence: PresenceBadge,\n primaryText: 'span',\n secondaryText: 'span',\n tertiaryText: 'span',\n quaternaryText: 'span',\n },\n\n root: getNativeElementProps(\n 'div',\n {\n ...props,\n ref,\n },\n /* excludedPropNames */ ['name'],\n ),\n avatar: !presenceOnly\n ? resolveShorthand(props.avatar, {\n required: true,\n defaultProps: {\n name,\n badge: props.presence,\n size: avatarSizes[size],\n },\n })\n : undefined,\n presence: presenceOnly\n ? resolveShorthand(props.presence, {\n defaultProps: {\n size: presenceSizes[size],\n },\n })\n : undefined,\n primaryText,\n secondaryText,\n tertiaryText,\n quaternaryText,\n };\n};\n\nconst presenceSizes = {\n 'extra-small': 'tiny',\n small: 'extra-small',\n medium: 'small',\n large: 'medium',\n 'extra-large': 'large',\n huge: 'large',\n} as const;\n\nconst avatarSizes = {\n 'extra-small': 20,\n small: 28,\n medium: 32,\n large: 36,\n 'extra-large': 40,\n huge: 56,\n} as const;\n"],"sourceRoot":"../src/"}
@@ -9,25 +9,24 @@ export const personaClassNames = {
9
9
  tertiaryText: 'fui-Persona__tertiaryText',
10
10
  quaternaryText: 'fui-Persona__quaternaryText'
11
11
  };
12
+ const avatarSpacing = `--fui-Persona__avatar--spacing`;
12
13
  /**
13
14
  * Styles for the root slot
14
15
  */
15
16
 
16
17
  const useStyles = /*#__PURE__*/__styles({
17
- "root": {
18
+ "base": {
18
19
  "mc9l5x": "fwk3njj",
19
20
  "t4k1zu": "f4wu0r3",
20
21
  "v29qe6": "fvtn1bl"
21
22
  },
22
23
  "after": {
23
24
  "Bxotwcr": "f1u07yai",
24
- "B7hvi0a": "f1m2n5bn",
25
- "i8kkvl": "f4px1ci"
25
+ "B7hvi0a": "f1m2n5bn"
26
26
  },
27
27
  "before": {
28
28
  "Bxotwcr": "f1u07yai",
29
- "B7hvi0a": "f1tll2w5",
30
- "i8kkvl": "f4px1ci"
29
+ "B7hvi0a": "f1tll2w5"
31
30
  },
32
31
  "below": {
33
32
  "B7hvi0a": "f1oiokrs"
@@ -35,14 +34,67 @@ const useStyles = /*#__PURE__*/__styles({
35
34
  "coin": {
36
35
  "Ijaq50": "f1hek2iy"
37
36
  },
38
- "fixed": {
37
+ "start": {
39
38
  "qb2dma": "f9h729m"
40
39
  },
41
- "scaled": {
40
+ "center": {
42
41
  "qb2dma": "f7nlbp4"
42
+ },
43
+ "alignToPrimary": {
44
+ "Budl1dq": "fv2o0x6"
45
+ },
46
+ "afterAlignToPrimary": {
47
+ "qb2dma": "f7nlbp4",
48
+ "Ijaq50": "f1rnkkuc",
49
+ "Bw0ie65": "f1warjpf"
50
+ },
51
+ "beforeAlignToPrimary": {
52
+ "qb2dma": "f7nlbp4",
53
+ "Ijaq50": "f1rnkkuc",
54
+ "Br312pm": "fwu52yu"
55
+ }
56
+ }, {
57
+ "d": [".fwk3njj{display:inline-grid;}", ".f4wu0r3{grid-auto-columns:max-content;}", ".fvtn1bl{grid-auto-rows:max-content;}", ".f1u07yai{grid-auto-flow:column;}", ".f1m2n5bn{justify-items:start;}", ".f1tll2w5{justify-items:end;}", ".f1oiokrs{justify-items:center;}", ".f1hek2iy{grid-row-start:span 5;}", ".f9h729m{-webkit-align-self:start;-ms-flex-item-align:start;align-self:start;}", ".f7nlbp4{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;}", ".fv2o0x6{grid-template-columns:max-content [middle] max-content;}", ".f1rnkkuc{grid-row-start:unset;}", ".f1warjpf{grid-column-end:middle;}", ".fwu52yu{grid-column-start:middle;}"]
58
+ });
59
+
60
+ const useAvatarSpacingStyles = /*#__PURE__*/__styles({
61
+ "extra-small": {
62
+ "Bs1gm4r": "f1e48tse"
63
+ },
64
+ "small": {
65
+ "Bs1gm4r": "f18q9vkd"
66
+ },
67
+ "medium": {
68
+ "Bs1gm4r": "f18q9vkd"
69
+ },
70
+ "large": {
71
+ "Bs1gm4r": "fx34bi6"
72
+ },
73
+ "extra-large": {
74
+ "Bs1gm4r": "fx34bi6"
75
+ },
76
+ "huge": {
77
+ "Bs1gm4r": "f1o96qtm"
78
+ },
79
+ "after": {
80
+ "t21cq0": ["f103ycu4", "f1tao51"]
81
+ },
82
+ "below": {
83
+ "jrapky": "fbo7acy"
84
+ },
85
+ "before": {
86
+ "Frg6f3": ["f1tao51", "f103ycu4"]
87
+ }
88
+ }, {
89
+ "d": [".f1e48tse{--fui-Persona__avatar--spacing:var(--spacingHorizontalSNudge);}", ".f18q9vkd{--fui-Persona__avatar--spacing:var(--spacingHorizontalS);}", ".fx34bi6{--fui-Persona__avatar--spacing:var(--spacingHorizontalMNudge);}", ".f1o96qtm{--fui-Persona__avatar--spacing:var(--spacingHorizontalM);}", ".f103ycu4{margin-right:var(--fui-Persona__avatar--spacing);}", ".f1tao51{margin-left:var(--fui-Persona__avatar--spacing);}", ".fbo7acy{margin-bottom:var(--fui-Persona__avatar--spacing);}"]
90
+ });
91
+
92
+ const usePresenceSpacingStyles = /*#__PURE__*/__styles({
93
+ "small": {
94
+ "Bs1gm4r": "f1e48tse"
43
95
  }
44
96
  }, {
45
- "d": [".fwk3njj{display:inline-grid;}", ".f4wu0r3{grid-auto-columns:max-content;}", ".fvtn1bl{grid-auto-rows:max-content;}", ".f1u07yai{grid-auto-flow:column;}", ".f1m2n5bn{justify-items:start;}", ".f4px1ci{-webkit-column-gap:8px;column-gap:8px;}", ".f1tll2w5{justify-items:end;}", ".f1oiokrs{justify-items:center;}", ".f1hek2iy{grid-row-start:span 5;}", ".f9h729m{-webkit-align-self:start;-ms-flex-item-align:start;align-self:start;}", ".f7nlbp4{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;}"]
97
+ "d": [".f1e48tse{--fui-Persona__avatar--spacing:var(--spacingHorizontalSNudge);}"]
46
98
  });
47
99
  /**
48
100
  * Apply styling to the Persona slots based on the state
@@ -51,22 +103,28 @@ const useStyles = /*#__PURE__*/__styles({
51
103
 
52
104
  export const usePersonaStyles_unstable = state => {
53
105
  const {
54
- fixed,
106
+ size,
107
+ textAlignment,
55
108
  textPosition
56
109
  } = state;
57
- const styles = useStyles();
110
+ const alignToPrimary = textAlignment === 'start' && size !== 'extra-large' && size !== 'huge';
58
111
  const {
59
112
  primaryTextClassName,
60
113
  optionalTextClassName
61
- } = useTextClassNames(state);
62
- state.root.className = mergeClasses(personaClassNames.root, styles.root, styles[textPosition], state.root.className);
114
+ } = useTextClassNames(state, alignToPrimary);
115
+ const styles = useStyles();
116
+ const avatarSpacingStyles = useAvatarSpacingStyles();
117
+ const presenceSpacingStyles = { ...avatarSpacingStyles,
118
+ ...usePresenceSpacingStyles()
119
+ };
120
+ state.root.className = mergeClasses(personaClassNames.root, styles.base, styles[textPosition], textPosition !== 'below' && alignToPrimary && styles.alignToPrimary, state.root.className);
63
121
 
64
122
  if (state.avatar) {
65
- state.avatar.className = mergeClasses(personaClassNames.avatar, styles.coin, fixed ? styles.fixed : styles.scaled, state.avatar.className);
123
+ state.avatar.className = mergeClasses(personaClassNames.avatar, styles.coin, styles[textAlignment], avatarSpacingStyles[size], avatarSpacingStyles[textPosition], state.avatar.className);
66
124
  }
67
125
 
68
126
  if (state.presence) {
69
- state.presence.className = mergeClasses(personaClassNames.presence, styles.coin, fixed ? styles.fixed : styles.scaled, state.presence.className);
127
+ state.presence.className = mergeClasses(personaClassNames.presence, styles.coin, styles[textAlignment], presenceSpacingStyles[size], presenceSpacingStyles[textPosition], textPosition === 'after' && alignToPrimary && styles.afterAlignToPrimary, textPosition === 'before' && alignToPrimary && styles.beforeAlignToPrimary, state.presence.className);
70
128
  }
71
129
 
72
130
  if (state.primaryText) {
@@ -98,6 +156,12 @@ const useTextStyles = /*#__PURE__*/__styles({
98
156
  "optionalText": {
99
157
  "sj55zd": "fkfq4zb"
100
158
  },
159
+ "beforeAlignToPrimary": {
160
+ "Bw0ie65": "f1warjpf"
161
+ },
162
+ "afterAlignToPrimary": {
163
+ "Br312pm": "fwu52yu"
164
+ },
101
165
  "body1": {
102
166
  "Bahqtrf": "fk6fouc",
103
167
  "Be2twd7": "fkhj508",
@@ -115,94 +179,50 @@ const useTextStyles = /*#__PURE__*/__styles({
115
179
  "Be2twd7": "fod5ikn",
116
180
  "Bhrd7zp": "fl43uef",
117
181
  "Bg96gwp": "faaz57k"
118
- },
119
- "subtitle1": {
120
- "Bahqtrf": "fk6fouc",
121
- "Be2twd7": "f1pp30po",
122
- "Bhrd7zp": "fl43uef",
123
- "Bg96gwp": "f106mvju"
124
- },
125
- "title2": {
126
- "Bahqtrf": "fk6fouc",
127
- "Be2twd7": "fojgt09",
128
- "Bhrd7zp": "fl43uef",
129
- "Bg96gwp": "fcen8rp"
130
- },
131
- "title3": {
132
- "Bahqtrf": "fk6fouc",
133
- "Be2twd7": "f1x0m3f5",
134
- "Bhrd7zp": "fl43uef",
135
- "Bg96gwp": "fb86gi6"
136
182
  }
137
183
  }, {
138
- "d": [".ftgm304{display:block;}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".fkfq4zb{color:var(--colorNeutralForeground2);}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", ".fod5ikn{font-size:var(--fontSizeBase400);}", ".fl43uef{font-weight:var(--fontWeightSemibold);}", ".faaz57k{line-height:var(--lineHeightBase400);}", ".f1pp30po{font-size:var(--fontSizeBase500);}", ".f106mvju{line-height:var(--lineHeightBase500);}", ".fojgt09{font-size:var(--fontSizeHero700);}", ".fcen8rp{line-height:var(--lineHeightHero700);}", ".f1x0m3f5{font-size:var(--fontSizeBase600);}", ".fb86gi6{line-height:var(--lineHeightBase600);}"]
184
+ "d": [".ftgm304{display:block;}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".fkfq4zb{color:var(--colorNeutralForeground2);}", ".f1warjpf{grid-column-end:middle;}", ".fwu52yu{grid-column-start:middle;}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", ".fod5ikn{font-size:var(--fontSizeBase400);}", ".fl43uef{font-weight:var(--fontWeightSemibold);}", ".faaz57k{line-height:var(--lineHeightBase400);}"]
139
185
  });
140
186
 
141
- const useTextClassNames = state => {
187
+ const useTextClassNames = (state, alignToPrimary) => {
142
188
  const {
143
- fixed,
144
- numTextLines,
145
- presenceOnly
189
+ presenceOnly,
190
+ size,
191
+ textPosition
146
192
  } = state;
147
193
  const textStyles = useTextStyles();
148
194
  let primaryTextSize;
149
- let optionalTextSize;
150
-
151
- if (fixed) {
152
- if (state.avatar && state.avatar.size) {
153
- const {
154
- size
155
- } = state.avatar;
156
-
157
- if (size < 40) {
158
- primaryTextSize = textStyles.body1;
159
- optionalTextSize = textStyles.caption1;
160
- } else if (size < 64) {
161
- primaryTextSize = textStyles.subtitle2;
162
- optionalTextSize = textStyles.body1;
163
- } else if (size < 96) {
164
- primaryTextSize = textStyles.subtitle1;
165
- optionalTextSize = textStyles.caption1;
166
- } else {
167
- if (numTextLines > 1) {
168
- primaryTextSize = textStyles.title3;
169
- } else {
170
- primaryTextSize = textStyles.title2;
171
- }
172
-
173
- optionalTextSize = textStyles.body1;
174
- }
175
- } else if (presenceOnly && state.presence) {
176
- const {
177
- size
178
- } = state.presence;
179
-
180
- if (size === 'extra-small' || size === 'tiny') {
181
- if (numTextLines > 1) {
182
- primaryTextSize = textStyles.body1;
183
- } else {
184
- primaryTextSize = textStyles.caption1;
185
- }
186
-
187
- optionalTextSize = textStyles.caption1;
188
- } else {
189
- primaryTextSize = textStyles.body1;
190
- optionalTextSize = textStyles.caption1;
195
+ let alignToPrimaryClassName;
196
+
197
+ if (presenceOnly) {
198
+ if (size === 'extra-small') {
199
+ primaryTextSize = state.numTextLines > 1 ? textStyles.body1 : textStyles.caption1;
200
+ } else if (size === 'extra-large' || size === 'huge') {
201
+ primaryTextSize = textStyles.subtitle2;
202
+ } else {
203
+ primaryTextSize = textStyles.body1;
204
+ }
205
+
206
+ if (alignToPrimary) {
207
+ if (textPosition === 'before') {
208
+ alignToPrimaryClassName = textStyles.beforeAlignToPrimary;
209
+ } else if (textPosition === 'after') {
210
+ alignToPrimaryClassName = textStyles.afterAlignToPrimary;
191
211
  }
192
212
  }
193
213
  } else {
194
- if (numTextLines > 1) {
195
- primaryTextSize = textStyles.body1;
214
+ if (size === 'huge') {
215
+ primaryTextSize = textStyles.subtitle2;
216
+ } else if (size === 'extra-large') {
217
+ primaryTextSize = textStyles.subtitle2;
196
218
  } else {
197
- primaryTextSize = textStyles.caption1;
219
+ primaryTextSize = textStyles.body1;
198
220
  }
199
-
200
- optionalTextSize = textStyles.caption1;
201
221
  }
202
222
 
203
223
  return {
204
- primaryTextClassName: mergeClasses(textStyles.base, textStyles.primaryText, primaryTextSize),
205
- optionalTextClassName: mergeClasses(textStyles.base, textStyles.optionalText, optionalTextSize)
224
+ primaryTextClassName: mergeClasses(textStyles.base, textStyles.primaryText, primaryTextSize, alignToPrimaryClassName),
225
+ optionalTextClassName: mergeClasses(textStyles.base, textStyles.optionalText, !presenceOnly && size === 'huge' ? textStyles.body1 : textStyles.caption1, alignToPrimaryClassName)
206
226
  };
207
227
  };
208
228
  //# sourceMappingURL=usePersonaStyles.js.map