@fluentui/react-divider 9.0.0-alpha.9 → 9.0.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.
Files changed (85) hide show
  1. package/CHANGELOG.json +2010 -1
  2. package/CHANGELOG.md +768 -2
  3. package/Spec.md +22 -137
  4. package/dist/react-divider.d.ts +35 -49
  5. package/lib/Divider.js.map +1 -1
  6. package/lib/common/isConformant.d.ts +3 -1
  7. package/lib/common/isConformant.js +7 -5
  8. package/lib/common/isConformant.js.map +1 -1
  9. package/lib/components/Divider/Divider.d.ts +4 -5
  10. package/lib/components/Divider/Divider.js +6 -6
  11. package/lib/components/Divider/Divider.js.map +1 -1
  12. package/lib/components/Divider/Divider.types.d.ts +23 -36
  13. package/lib/components/Divider/Divider.types.js +1 -0
  14. package/lib/components/Divider/Divider.types.js.map +1 -1
  15. package/lib/components/Divider/index.js +1 -0
  16. package/lib/components/Divider/index.js.map +1 -1
  17. package/lib/components/Divider/renderDivider.d.ts +1 -1
  18. package/lib/components/Divider/renderDivider.js +8 -7
  19. package/lib/components/Divider/renderDivider.js.map +1 -1
  20. package/lib/components/Divider/useDivider.d.ts +4 -9
  21. package/lib/components/Divider/useDivider.js +37 -19
  22. package/lib/components/Divider/useDivider.js.map +1 -1
  23. package/lib/components/Divider/useDividerStyles.d.ts +2 -2
  24. package/lib/components/Divider/useDividerStyles.js +169 -204
  25. package/lib/components/Divider/useDividerStyles.js.map +1 -1
  26. package/lib/index.js.map +1 -1
  27. package/lib/tsdoc-metadata.json +1 -1
  28. package/lib-commonjs/Divider.js +7 -2
  29. package/lib-commonjs/Divider.js.map +1 -1
  30. package/lib-commonjs/common/isConformant.d.ts +3 -1
  31. package/lib-commonjs/common/isConformant.js +17 -7
  32. package/lib-commonjs/common/isConformant.js.map +1 -1
  33. package/lib-commonjs/components/Divider/Divider.d.ts +4 -5
  34. package/lib-commonjs/components/Divider/Divider.js +20 -11
  35. package/lib-commonjs/components/Divider/Divider.js.map +1 -1
  36. package/lib-commonjs/components/Divider/Divider.types.d.ts +23 -36
  37. package/lib-commonjs/components/Divider/Divider.types.js +4 -1
  38. package/lib-commonjs/components/Divider/Divider.types.js.map +1 -1
  39. package/lib-commonjs/components/Divider/index.js +12 -2
  40. package/lib-commonjs/components/Divider/index.js.map +1 -1
  41. package/lib-commonjs/components/Divider/renderDivider.d.ts +1 -1
  42. package/lib-commonjs/components/Divider/renderDivider.js +20 -10
  43. package/lib-commonjs/components/Divider/renderDivider.js.map +1 -1
  44. package/lib-commonjs/components/Divider/useDivider.d.ts +4 -9
  45. package/lib-commonjs/components/Divider/useDivider.js +46 -20
  46. package/lib-commonjs/components/Divider/useDivider.js.map +1 -1
  47. package/lib-commonjs/components/Divider/useDividerStyles.d.ts +2 -2
  48. package/lib-commonjs/components/Divider/useDividerStyles.js +178 -205
  49. package/lib-commonjs/components/Divider/useDividerStyles.js.map +1 -1
  50. package/lib-commonjs/index.js +7 -2
  51. package/lib-commonjs/index.js.map +1 -1
  52. package/package.json +15 -12
  53. package/NOTICE.txt +0 -0
  54. package/config/api-extractor.json +0 -3
  55. package/config/tests.js +0 -7
  56. package/etc/react-divider.api.md +0 -45
  57. package/just.config.ts +0 -3
  58. package/lib-amd/Divider.d.ts +0 -1
  59. package/lib-amd/Divider.js +0 -6
  60. package/lib-amd/Divider.js.map +0 -1
  61. package/lib-amd/common/isConformant.d.ts +0 -2
  62. package/lib-amd/common/isConformant.js +0 -13
  63. package/lib-amd/common/isConformant.js.map +0 -1
  64. package/lib-amd/components/Divider/Divider.d.ts +0 -7
  65. package/lib-amd/components/Divider/Divider.js +0 -15
  66. package/lib-amd/components/Divider/Divider.js.map +0 -1
  67. package/lib-amd/components/Divider/Divider.types.d.ts +0 -48
  68. package/lib-amd/components/Divider/Divider.types.js +0 -5
  69. package/lib-amd/components/Divider/Divider.types.js.map +0 -1
  70. package/lib-amd/components/Divider/index.d.ts +0 -5
  71. package/lib-amd/components/Divider/index.js +0 -9
  72. package/lib-amd/components/Divider/index.js.map +0 -1
  73. package/lib-amd/components/Divider/renderDivider.d.ts +0 -5
  74. package/lib-amd/components/Divider/renderDivider.js +0 -13
  75. package/lib-amd/components/Divider/renderDivider.js.map +0 -1
  76. package/lib-amd/components/Divider/useDivider.d.ts +0 -13
  77. package/lib-amd/components/Divider/useDivider.js +0 -26
  78. package/lib-amd/components/Divider/useDivider.js.map +0 -1
  79. package/lib-amd/components/Divider/useDividerStyles.d.ts +0 -3
  80. package/lib-amd/components/Divider/useDividerStyles.js +0 -210
  81. package/lib-amd/components/Divider/useDividerStyles.js.map +0 -1
  82. package/lib-amd/index.d.ts +0 -1
  83. package/lib-amd/index.js +0 -6
  84. package/lib-amd/index.js.map +0 -1
  85. package/src/components/Divider/Divider.types.ts +0 -56
package/Spec.md CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  ## Background
4
4
 
5
- The divider control is intended to replace the Separator control currently exported. Its purpose is to visually separate content.
6
- The purpose of redoing the component is to add minor structural updates and new engineering practices and update the naming conventions in the API to match naming conventions indicated by OpenUI research.
5
+ A `Divider` is used to visually segment content into groups.
7
6
 
8
7
  ## Prior Art
9
8
 
@@ -30,7 +29,7 @@ The purpose of redoing the component is to add minor structural updates and new
30
29
 
31
30
  Basic Examples:
32
31
 
33
- ```html
32
+ ```tsx
34
33
  <Divider />
35
34
  <Divider vertical />
36
35
  <Divider>This is a divider with content</Divider>
@@ -38,149 +37,33 @@ Basic Examples:
38
37
 
39
38
  ## Variants
40
39
 
41
- The divider will have two main variants, rendering horizontally or vertically. The control is the same with the optional property `vertical` defining how it renders.
42
-
43
- Standard default horizontal
44
-
45
- ```html
46
- <Divider />
47
- ```
48
-
49
- Vertical
50
-
51
- ```html
52
- <Divider vertical />
53
- ```
54
-
55
- Color
40
+ ### Layout
56
41
 
57
- ```html
58
- <Divider color="black" />
59
- ```
60
-
61
- Content
62
-
63
- ```html
64
- <Divider>My Content</Divider>
65
- ```
42
+ The `Divider` component has two layout variants:
66
43
 
67
- Icon
44
+ - The default `Divider` is separates contents by rendering a horizontal line.
45
+ - A `Divider` with the `vertical` prop set to true separates contents by rendering a vertical line.
68
46
 
69
- ```html
70
- <Divider><Icon /></Divider>
71
- ```
47
+ ### Inset
72
48
 
73
- Important
49
+ A `Divider` with the `inset` prop adds padding to the beginning and end of the component.
74
50
 
75
- ```html
76
- <Divider important>This is important!</Divider>
77
- ```
51
+ ### Appearance
78
52
 
79
- Inset
53
+ The `Divider` component has four appearance variants:
80
54
 
81
- ```html
82
- <Divider inset />
83
- ```
84
-
85
- Appearance
86
-
87
- ```html
88
- <Divider apperance="subtle" />
89
- <Divider apperance="brand" />
90
- <Divider apperance="strong" />
91
- ```
55
+ - The default `Divider` is styled with the neutral foreground color from the theme.
56
+ - appearance="brand": The `Divider` is styled with the brand color from the theme.
57
+ - appearance="strong": The `Divider` is styled with a strong color that emphasizes the visual separation.
58
+ - appearance="subtle": The `Divider` is styled with a subtle color to de-emphasize the visual separation.
92
59
 
93
60
  ## API
94
61
 
95
62
  From [Divider.types.tsx](https://github.com/microsoft/fluentui/blob/master/packages/react-divider/src/components/Divider/Divider.types.ts)
96
63
 
97
- ### Slots
98
-
99
- - root
100
-
101
- ### Props
102
-
103
- ```ts
104
- export interface DividerProps extends ComponentProps, React.HTMLAttributes<HTMLElement> {
105
- /**
106
- * Determines the alignment of the content within the divider.
107
- * @defaultvalue 'center'
108
- */
109
- alignContent?: 'start' | 'end' | 'center';
110
-
111
- /**
112
- * Predefined visual styles
113
- * @defaultvalue 'default'
114
- */
115
- appearance?: 'default' | 'subtle' | 'brand' | 'strong';
116
-
117
- /**
118
- * A divider can have a overriding border color
119
- */
120
- color?: string;
121
-
122
- /**
123
- * A divider can be classified as important to emphasize its content
124
- */
125
- important?: boolean;
126
-
127
- /**
128
- * Adds a 12px padding to the begining and end of the divider
129
- */
130
- inset?: boolean;
131
-
132
- /**
133
- * A divider can be horizontal (default) or vertical
134
- */
135
- vertical?: boolean;
136
-
137
- /**
138
- * Overrides for border visuals
139
- */
140
- borderStyle?: string;
141
- borderSize?: string | number;
142
-
143
- /**
144
- * Accessibility wrapper for content when presented.
145
- * A shorthand prop can be a literal, object, or
146
- * JSX. The `children` prop of the object can be a render function,
147
- * taking in the original slot component and props.
148
- */
149
- wrapper?: ShorthandProps<React.HTMLAttributes<HTMLDivElement>>;
150
- }
151
- ```
152
-
153
- ## Styling Tokens
154
-
155
- The current exposed tokens and default values are listed below:
156
-
157
- **Default**
158
-
159
- Font Color : tokens.alias.color.neutral.neutralForeground2
160
-
161
- Border Color: tokens.alias.color.neutral.neutralStroke2
162
-
163
- **Subtle**
164
-
165
- Font Color : tokens.alias.color.neutral.neutralForeground2
64
+ ## HTML Structure
166
65
 
167
- Border Color: tokens.alias.color.neutral.neutralStroke3
168
-
169
- **Brand**
170
-
171
- Font Color : tokens.alias.color.brand.brandBackgroundStatic
172
-
173
- Border Color: tokens.alias.color.brand.brandBackgroundStatic
174
-
175
- **Brand**
176
-
177
- Font Color : tokens.alias.color.neutral.neutralForeground2
178
-
179
- Border Color: tokens.alias.color.neutral.neutralStroke1
180
-
181
- ## Structure
182
-
183
- ```
66
+ ```html
184
67
  <div>
185
68
  <!-- ::before to handle the divider line independent of the divider having content or not -->
186
69
  <div>Content</div>
@@ -195,11 +78,13 @@ Border Color: tokens.alias.color.neutral.neutralStroke1
195
78
  ## Behaviors
196
79
 
197
80
  This component has no state.
198
- This control will have no interactions.
199
- This control will have no effect on screen readers.
200
81
 
201
- Content, if provided, will self determine it's behaviors.
82
+ This component has no mouse, touch or keyboard interactions.
83
+
84
+ Content, if provided, will self-determine its behaviors.
202
85
 
203
86
  ## Accessibility
204
87
 
205
- Since the divider is not a focusable element itself, this control doesn't require any accessibility roles or special behavior applied to it. The descendant content when wrapped from the divider must handle any required accessibility behaviors itself when appropriate.
88
+ - The `Divider` component should be assigned a `role="separator"` by default.
89
+ - The `Divider` component should be named by its content.
90
+ - The `Divider` component should have no other accessibility concerns otherwise. The descendant content in the divider must handle any required accessibility behaviors itself when appropriate.
@@ -1,80 +1,66 @@
1
- import { ComponentProps } from '@fluentui/react-utilities';
2
- import * as React from 'react';
3
- import { ShorthandProps } from '@fluentui/react-utilities';
1
+ import type { ComponentProps } from '@fluentui/react-utilities';
2
+ import type { ComponentState } from '@fluentui/react-utilities';
3
+ import type { ForwardRefComponent } from '@fluentui/react-utilities';
4
+ import type { IntrinsicShorthandProps } from '@fluentui/react-utilities';
5
+ import * as React_2 from 'react';
4
6
 
5
7
  /**
6
- * Define a styled Divider, using the `useDivider` and `useDividerStyles` hooks.
7
- * {@docCategory Divider}
8
+ * A divider visually segments content into groups.
8
9
  */
9
- export declare const Divider: React.ForwardRefExoticComponent<DividerProps & React.RefAttributes<HTMLElement>>;
10
+ export declare const Divider: ForwardRefComponent<DividerProps>;
10
11
 
11
- /**
12
- * {@docCategory Divider}
13
- */
14
- export declare interface DividerProps extends ComponentProps, React.HTMLAttributes<HTMLElement> {
12
+ export declare const dividerClassName = "fui-Divider";
13
+
14
+ export declare type DividerCommons = {
15
15
  /**
16
16
  * Determines the alignment of the content within the divider.
17
17
  * @defaultvalue 'center'
18
18
  */
19
- alignContent?: 'start' | 'end' | 'center';
19
+ alignContent: 'start' | 'center' | 'end';
20
20
  /**
21
- * Predefined visual styles
22
- * @defaultvalue 'default'
21
+ * A divider can have one of the preset appearances.
22
+ * When not specified, the divider has its default appearance.
23
23
  */
24
- appearance?: 'default' | 'subtle' | 'brand' | 'strong';
24
+ appearance?: 'brand' | 'strong' | 'subtle';
25
25
  /**
26
- * A divider can be classified as important to emphasize its content
26
+ * Adds padding to the beginning and end of the divider.
27
+ * @default false
27
28
  */
28
- important?: boolean;
29
+ inset: boolean;
29
30
  /**
30
- * Adds a 12px padding to the begining and end of the divider
31
- */
32
- inset?: boolean;
33
- /**
34
- * A divider can be horizontal (default) or vertical*/
35
- vertical?: boolean;
36
- /**
37
- * Accessibility wrapper for content when presented.
38
- * A shorthand prop can be a literal, object, or
39
- * JSX. The `children` prop of the object can be a render function,
40
- * taking in the original slot component and props.
31
+ * A divider can be horizontal (default) or vertical.
32
+ * @default false
41
33
  */
42
- wrapper?: ShorthandProps<React.HTMLAttributes<HTMLDivElement>>;
43
- }
34
+ vertical: boolean;
35
+ };
44
36
 
45
- /**
46
- * Consts listing which props are shorthand props.
47
- */
48
- export declare const dividerShorthandProps: readonly ["wrapper", "children"];
37
+ export declare type DividerProps = ComponentProps<DividerSlots> & Partial<DividerCommons>;
49
38
 
50
- /**
51
- * {@docCategory Divider}
52
- */
53
- export declare interface DividerState extends DividerProps {
39
+ export declare type DividerSlots = {
54
40
  /**
55
- * Ref to the root slot
41
+ * Root of the component that renders as a `<div>` tag.
56
42
  */
57
- ref: React.RefObject<HTMLElement>;
43
+ root: IntrinsicShorthandProps<'div'>;
58
44
  /**
59
- * The Id created to expose accessability for readers
45
+ * Accessibility wrapper for content when presented.
60
46
  */
61
- labelledById?: string;
62
- }
47
+ wrapper: IntrinsicShorthandProps<'div'>;
48
+ };
49
+
50
+ export declare type DividerState = ComponentState<DividerSlots> & DividerCommons;
63
51
 
64
52
  /**
65
- * Function that renders the final JSX of the component
53
+ * Renders a Divider component by passing the slot props (defined in `state`) to the appropriate slots.
66
54
  */
67
55
  export declare const renderDivider: (state: DividerState) => JSX.Element;
68
56
 
69
57
  /**
70
58
  * Returns the props and state required to render the component
71
- * @param props - Divider properties
72
- * @param ref - reference to root HTMLElement of Divider
73
- * @param defaultProps - default values for the properties of Divider
59
+ * @param props - User-provided props to the Divider component.
60
+ * @param ref - User-provided ref to be passed to the Divider component.
74
61
  */
75
- export declare const useDivider: (props: DividerProps, ref: React.Ref<HTMLElement>, defaultProps?: DividerProps | undefined) => DividerState;
62
+ export declare const useDivider: (props: DividerProps, ref: React_2.Ref<HTMLElement>) => DividerState;
76
63
 
77
- /** Applies style classnames to slots */
78
- export declare const useDividerStyles: (s: DividerState) => DividerState;
64
+ export declare const useDividerStyles: (state: DividerState) => DividerState;
79
65
 
80
66
  export { }
@@ -1 +1 @@
1
- {"version":3,"file":"Divider.js","sourceRoot":"../src/","sources":["Divider.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './components/Divider/index';\n"]}
1
+ {"version":3,"file":"Divider.js","sourceRoot":"","sources":["../src/Divider.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -1,2 +1,4 @@
1
1
  import { IsConformantOptions } from '@fluentui/react-conformance';
2
- export declare function isConformant(testInfo: Omit<IsConformantOptions, 'componentPath'>): void;
2
+ export declare function isConformant<TProps = {}>(testInfo: Omit<IsConformantOptions<TProps>, 'componentPath'> & {
3
+ componentPath?: string;
4
+ }): void;
@@ -1,9 +1,11 @@
1
1
  import { isConformant as baseIsConformant } from '@fluentui/react-conformance';
2
+ import makeStylesTests from '@fluentui/react-conformance-make-styles';
2
3
  export function isConformant(testInfo) {
3
- var defaultOptions = {
4
- asPropHandlesRef: true,
5
- componentPath: module.parent.filename.replace('.test', ''),
6
- };
7
- baseIsConformant(defaultOptions, testInfo);
4
+ const defaultOptions = {
5
+ asPropHandlesRef: true,
6
+ componentPath: module.parent.filename.replace('.test', ''),
7
+ extraTests: makeStylesTests
8
+ };
9
+ baseIsConformant(defaultOptions, testInfo);
8
10
  }
9
11
  //# sourceMappingURL=isConformant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isConformant.js","sourceRoot":"../src/","sources":["common/isConformant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAuB,MAAM,6BAA6B,CAAC;AAEpG,MAAM,UAAU,YAAY,CAAC,QAAoD;IAC/E,IAAM,cAAc,GAAG;QACrB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,MAAO,CAAC,MAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;KAC7D,CAAC;IAEF,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import { isConformant as baseIsConformant, IsConformantOptions } from '@fluentui/react-conformance';\n\nexport function isConformant(testInfo: Omit<IsConformantOptions, 'componentPath'>) {\n const defaultOptions = {\n asPropHandlesRef: true,\n componentPath: module!.parent!.filename.replace('.test', ''),\n };\n\n baseIsConformant(defaultOptions, testInfo);\n}\n"]}
1
+ {"version":3,"sources":["../../src/common/isConformant.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY,IAAI,gBAAzB,QAAkF,6BAAlF;AACA,OAAO,eAAP,MAA4B,yCAA5B;AAEA,OAAM,SAAU,YAAV,CACJ,QADI,EACqF;AAEzF,QAAM,cAAc,GAAyC;AAC3D,IAAA,gBAAgB,EAAE,IADyC;AAE3D,IAAA,aAAa,EAAE,MAAO,CAAC,MAAR,CAAgB,QAAhB,CAAyB,OAAzB,CAAiC,OAAjC,EAA0C,EAA1C,CAF4C;AAG3D,IAAA,UAAU,EAAE;AAH+C,GAA7D;AAMA,EAAA,gBAAgB,CAAC,cAAD,EAAiB,QAAjB,CAAhB;AACD","sourceRoot":""}
@@ -1,7 +1,6 @@
1
- import * as React from 'react';
2
- import { DividerProps } from './Divider.types';
1
+ import type { ForwardRefComponent } from '@fluentui/react-utilities';
2
+ import type { DividerProps } from './Divider.types';
3
3
  /**
4
- * Define a styled Divider, using the `useDivider` and `useDividerStyles` hooks.
5
- * {@docCategory Divider}
4
+ * A divider visually segments content into groups.
6
5
  */
7
- export declare const Divider: React.ForwardRefExoticComponent<DividerProps & React.RefAttributes<HTMLElement>>;
6
+ export declare const Divider: ForwardRefComponent<DividerProps>;
@@ -3,13 +3,13 @@ import { renderDivider } from './renderDivider';
3
3
  import { useDivider } from './useDivider';
4
4
  import { useDividerStyles } from './useDividerStyles';
5
5
  /**
6
- * Define a styled Divider, using the `useDivider` and `useDividerStyles` hooks.
7
- * {@docCategory Divider}
6
+ * A divider visually segments content into groups.
8
7
  */
9
- export var Divider = React.forwardRef(function (props, ref) {
10
- var state = useDivider(props, ref);
11
- useDividerStyles(state);
12
- return renderDivider(state);
8
+
9
+ export const Divider = /*#__PURE__*/React.forwardRef((props, ref) => {
10
+ const state = useDivider(props, ref);
11
+ useDividerStyles(state);
12
+ return renderDivider(state);
13
13
  });
14
14
  Divider.displayName = 'Divider';
15
15
  //# sourceMappingURL=Divider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Divider.js","sourceRoot":"../src/","sources":["components/Divider/Divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,MAAM,CAAC,IAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAA4B,UAAC,KAAK,EAAE,GAAG;IAC5E,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAErC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC","sourcesContent":["import * as React from 'react';\nimport { DividerProps } from './Divider.types';\nimport { renderDivider } from './renderDivider';\nimport { useDivider } from './useDivider';\nimport { useDividerStyles } from './useDividerStyles';\n\n/**\n * Define a styled Divider, using the `useDivider` and `useDividerStyles` hooks.\n * {@docCategory Divider}\n */\nexport const Divider = React.forwardRef<HTMLElement, DividerProps>((props, ref) => {\n const state = useDivider(props, ref);\n\n useDividerStyles(state);\n return renderDivider(state);\n});\n\nDivider.displayName = 'Divider';\n"]}
1
+ {"version":3,"sources":["../../../src/components/Divider/Divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,aAAT,QAA8B,iBAA9B;AACA,SAAS,UAAT,QAA2B,cAA3B;AACA,SAAS,gBAAT,QAAiC,oBAAjC;AAIA;;AAEG;;AACH,OAAO,MAAM,OAAO,gBAAsC,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AACxF,QAAM,KAAK,GAAG,UAAU,CAAC,KAAD,EAAQ,GAAR,CAAxB;AAEA,EAAA,gBAAgB,CAAC,KAAD,CAAhB;AAEA,SAAO,aAAa,CAAC,KAAD,CAApB;AACD,CANyD,CAAnD;AAQP,OAAO,CAAC,WAAR,GAAsB,SAAtB","sourceRoot":""}
@@ -1,48 +1,35 @@
1
- import * as React from 'react';
2
- import { ComponentProps, ShorthandProps } from '@fluentui/react-utilities';
3
- /**
4
- * {@docCategory Divider}
5
- */
6
- export interface DividerProps extends ComponentProps, React.HTMLAttributes<HTMLElement> {
1
+ import type { ComponentProps, ComponentState, IntrinsicShorthandProps } from '@fluentui/react-utilities';
2
+ export declare type DividerSlots = {
7
3
  /**
8
- * Determines the alignment of the content within the divider.
9
- * @defaultvalue 'center'
4
+ * Root of the component that renders as a `<div>` tag.
10
5
  */
11
- alignContent?: 'start' | 'end' | 'center';
6
+ root: IntrinsicShorthandProps<'div'>;
12
7
  /**
13
- * Predefined visual styles
14
- * @defaultvalue 'default'
15
- */
16
- appearance?: 'default' | 'subtle' | 'brand' | 'strong';
17
- /**
18
- * A divider can be classified as important to emphasize its content
8
+ * Accessibility wrapper for content when presented.
19
9
  */
20
- important?: boolean;
10
+ wrapper: IntrinsicShorthandProps<'div'>;
11
+ };
12
+ export declare type DividerCommons = {
21
13
  /**
22
- * Adds a 12px padding to the begining and end of the divider
14
+ * Determines the alignment of the content within the divider.
15
+ * @defaultvalue 'center'
23
16
  */
24
- inset?: boolean;
17
+ alignContent: 'start' | 'center' | 'end';
25
18
  /**
26
- * A divider can be horizontal (default) or vertical*/
27
- vertical?: boolean;
28
- /**
29
- * Accessibility wrapper for content when presented.
30
- * A shorthand prop can be a literal, object, or
31
- * JSX. The `children` prop of the object can be a render function,
32
- * taking in the original slot component and props.
19
+ * A divider can have one of the preset appearances.
20
+ * When not specified, the divider has its default appearance.
33
21
  */
34
- wrapper?: ShorthandProps<React.HTMLAttributes<HTMLDivElement>>;
35
- }
36
- /**
37
- * {@docCategory Divider}
38
- */
39
- export interface DividerState extends DividerProps {
22
+ appearance?: 'brand' | 'strong' | 'subtle';
40
23
  /**
41
- * Ref to the root slot
24
+ * Adds padding to the beginning and end of the divider.
25
+ * @default false
42
26
  */
43
- ref: React.RefObject<HTMLElement>;
27
+ inset: boolean;
44
28
  /**
45
- * The Id created to expose accessability for readers
29
+ * A divider can be horizontal (default) or vertical.
30
+ * @default false
46
31
  */
47
- labelledById?: string;
48
- }
32
+ vertical: boolean;
33
+ };
34
+ export declare type DividerProps = ComponentProps<DividerSlots> & Partial<DividerCommons>;
35
+ export declare type DividerState = ComponentState<DividerSlots> & DividerCommons;
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=Divider.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Divider.types.js","sourceRoot":"../src/","sources":["components/Divider/Divider.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { ComponentProps, ShorthandProps } from '@fluentui/react-utilities';\n\n/**\n * {@docCategory Divider}\n */\nexport interface DividerProps extends ComponentProps, React.HTMLAttributes<HTMLElement> {\n /**\n * Determines the alignment of the content within the divider.\n * @defaultvalue 'center'\n */\n alignContent?: 'start' | 'end' | 'center';\n\n /**\n * Predefined visual styles\n * @defaultvalue 'default'\n */\n appearance?: 'default' | 'subtle' | 'brand' | 'strong';\n\n /**\n * A divider can be classified as important to emphasize its content\n */\n important?: boolean;\n\n /**\n * Adds a 12px padding to the begining and end of the divider\n */\n inset?: boolean;\n\n /**\n * A divider can be horizontal (default) or vertical*/\n vertical?: boolean;\n\n /**\n * Accessibility wrapper for content when presented.\n * A shorthand prop can be a literal, object, or\n * JSX. The `children` prop of the object can be a render function,\n * taking in the original slot component and props.\n */\n wrapper?: ShorthandProps<React.HTMLAttributes<HTMLDivElement>>;\n}\n\n/**\n * {@docCategory Divider}\n */\nexport interface DividerState extends DividerProps {\n /**\n * Ref to the root slot\n */\n ref: React.RefObject<HTMLElement>;\n\n /**\n * The Id created to expose accessability for readers\n */\n labelledById?: string;\n}\n"]}
1
+ {"version":3,"file":"Divider.types.js","sourceRoot":"","sources":["../../../src/components/Divider/Divider.types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  export * from './Divider';
2
+ export * from './Divider.types';
2
3
  export * from './renderDivider';
3
4
  export * from './useDivider';
4
5
  export * from './useDividerStyles';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/Divider/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './Divider';\nexport * from './Divider.types';\nexport * from './renderDivider';\nexport * from './useDivider';\nexport * from './useDividerStyles';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Divider/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { DividerState } from './Divider.types';
2
2
  /**
3
- * Function that renders the final JSX of the component
3
+ * Renders a Divider component by passing the slot props (defined in `state`) to the appropriate slots.
4
4
  */
5
5
  export declare const renderDivider: (state: DividerState) => JSX.Element;
@@ -1,13 +1,14 @@
1
- import { __assign } from "tslib";
2
1
  import * as React from 'react';
3
2
  import { getSlots } from '@fluentui/react-utilities';
4
- import { dividerShorthandProps } from './useDivider';
5
3
  /**
6
- * Function that renders the final JSX of the component
4
+ * Renders a Divider component by passing the slot props (defined in `state`) to the appropriate slots.
7
5
  */
8
- export var renderDivider = function (state) {
9
- var _a = getSlots(state, dividerShorthandProps), slots = _a.slots, slotProps = _a.slotProps;
10
- var children = state.children;
11
- return (React.createElement(slots.root, __assign({}, slotProps.root, { role: "separator" }), children !== undefined && React.createElement(slots.wrapper, __assign({}, slotProps.wrapper))));
6
+
7
+ export const renderDivider = state => {
8
+ const {
9
+ slots,
10
+ slotProps
11
+ } = getSlots(state, ['root', 'wrapper']);
12
+ return /*#__PURE__*/React.createElement(slots.root, Object.assign({}, slotProps.root), slotProps.root.children !== undefined && /*#__PURE__*/React.createElement(slots.wrapper, Object.assign({}, slotProps.wrapper), slotProps.root.children));
12
13
  };
13
14
  //# sourceMappingURL=renderDivider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderDivider.js","sourceRoot":"../src/","sources":["components/Divider/renderDivider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,KAAmB;IACzC,IAAA,2CAA6D,EAA3D,gBAAK,EAAE,wBAAoD,CAAC;IAC5D,IAAA,yBAAQ,CAAW;IAE3B,OAAO,CACL,oBAAC,KAAK,CAAC,IAAI,eAAK,SAAS,CAAC,IAAI,IAAE,IAAI,EAAC,WAAW,KAC7C,QAAQ,KAAK,SAAS,IAAI,oBAAC,KAAK,CAAC,OAAO,eAAK,SAAS,CAAC,OAAO,EAAI,CACxD,CACd,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { DividerState } from './Divider.types';\nimport { dividerShorthandProps } from './useDivider';\n\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderDivider = (state: DividerState) => {\n const { slots, slotProps } = getSlots(state, dividerShorthandProps);\n const { children } = state;\n\n return (\n <slots.root {...slotProps.root} role=\"separator\">\n {children !== undefined && <slots.wrapper {...slotProps.wrapper} />}\n </slots.root>\n );\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/Divider/renderDivider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,aAAa,GAAI,KAAD,IAAwB;AACnD,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAe,KAAf,EAAsB,CAAC,MAAD,EAAS,SAAT,CAAtB,CAArC;AACA,sBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,SAAS,CAAC,IAAf,CAAX,EACG,SAAS,CAAC,IAAV,CAAe,QAAf,KAA4B,SAA5B,iBACC,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,OAAP,EAAc,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,SAAS,CAAC,OAAf,CAAd,EAAuC,SAAS,CAAC,IAAV,CAAe,QAAtD,CAFJ,CADF;AAOD,CATM","sourceRoot":""}
@@ -1,13 +1,8 @@
1
1
  import * as React from 'react';
2
- import { DividerProps, DividerState } from './Divider.types';
3
- /**
4
- * Consts listing which props are shorthand props.
5
- */
6
- export declare const dividerShorthandProps: readonly ["wrapper", "children"];
2
+ import type { DividerProps, DividerState } from './Divider.types';
7
3
  /**
8
4
  * Returns the props and state required to render the component
9
- * @param props - Divider properties
10
- * @param ref - reference to root HTMLElement of Divider
11
- * @param defaultProps - default values for the properties of Divider
5
+ * @param props - User-provided props to the Divider component.
6
+ * @param ref - User-provided ref to be passed to the Divider component.
12
7
  */
13
- export declare const useDivider: (props: DividerProps, ref: React.Ref<HTMLElement>, defaultProps?: DividerProps | undefined) => DividerState;
8
+ export declare const useDivider: (props: DividerProps, ref: React.Ref<HTMLElement>) => DividerState;
@@ -1,24 +1,42 @@
1
- import * as React from 'react';
2
- import { makeMergeProps, resolveShorthandProps, useId, useMergedRefs } from '@fluentui/react-utilities';
3
- /**
4
- * Consts listing which props are shorthand props.
5
- */
6
- export var dividerShorthandProps = ['wrapper', 'children'];
7
- var mergeProps = makeMergeProps({ deepMerge: dividerShorthandProps });
1
+ import { getNativeElementProps, resolveShorthand, useId } from '@fluentui/react-utilities';
8
2
  /**
9
3
  * Returns the props and state required to render the component
10
- * @param props - Divider properties
11
- * @param ref - reference to root HTMLElement of Divider
12
- * @param defaultProps - default values for the properties of Divider
4
+ * @param props - User-provided props to the Divider component.
5
+ * @param ref - User-provided ref to be passed to the Divider component.
13
6
  */
14
- export var useDivider = function (props, ref, defaultProps) {
15
- var dividerId = useId('divider-');
16
- var state = mergeProps({
17
- ref: useMergedRefs(ref, React.useRef(null)),
18
- /* The Id created to expose accessibility for readers */
19
- 'aria-labelledby': props.children ? dividerId : undefined,
20
- wrapper: { as: 'div', children: props.children, id: dividerId },
21
- }, defaultProps && resolveShorthandProps(defaultProps, dividerShorthandProps), resolveShorthandProps(props, dividerShorthandProps));
22
- return state;
7
+
8
+ export const useDivider = (props, ref) => {
9
+ const {
10
+ alignContent = 'center',
11
+ appearance,
12
+ inset = false,
13
+ vertical = false,
14
+ wrapper
15
+ } = props;
16
+ const dividerId = useId('divider-');
17
+ return {
18
+ // Props passed at the top-level
19
+ alignContent,
20
+ appearance,
21
+ inset,
22
+ vertical,
23
+ // Slots definition
24
+ components: {
25
+ root: 'div',
26
+ wrapper: 'div'
27
+ },
28
+ root: getNativeElementProps('div', { ...props,
29
+ ref,
30
+ role: 'separator',
31
+ 'aria-labelledby': props.children ? dividerId : undefined
32
+ }),
33
+ wrapper: resolveShorthand(wrapper, {
34
+ required: true,
35
+ defaultProps: {
36
+ id: dividerId,
37
+ children: props.children
38
+ }
39
+ })
40
+ };
23
41
  };
24
42
  //# sourceMappingURL=useDivider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDivider.js","sourceRoot":"../src/","sources":["components/Divider/useDivider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAGxG;;GAEG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AAEtE,IAAM,UAAU,GAAG,cAAc,CAAe,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,UACxB,KAAmB,EACnB,GAA2B,EAC3B,YAA2B;IAE3B,IAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,UAAU,CACtB;QACE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,wDAAwD;QACxD,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACzD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE;KAChE,EACD,YAAY,IAAI,qBAAqB,CAAC,YAAY,EAAE,qBAAqB,CAAC,EAC1E,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CACpD,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { makeMergeProps, resolveShorthandProps, useId, useMergedRefs } from '@fluentui/react-utilities';\nimport { DividerProps, DividerState } from './Divider.types';\n\n/**\n * Consts listing which props are shorthand props.\n */\nexport const dividerShorthandProps = ['wrapper', 'children'] as const;\n\nconst mergeProps = makeMergeProps<DividerState>({ deepMerge: dividerShorthandProps });\n\n/**\n * Returns the props and state required to render the component\n * @param props - Divider properties\n * @param ref - reference to root HTMLElement of Divider\n * @param defaultProps - default values for the properties of Divider\n */\nexport const useDivider = (\n props: DividerProps,\n ref: React.Ref<HTMLElement>,\n defaultProps?: DividerProps,\n): DividerState => {\n const dividerId = useId('divider-');\n const state = mergeProps(\n {\n ref: useMergedRefs(ref, React.useRef(null)),\n /* The Id created to expose accessibility for readers */\n 'aria-labelledby': props.children ? dividerId : undefined,\n wrapper: { as: 'div', children: props.children, id: dividerId },\n },\n defaultProps && resolveShorthandProps(defaultProps, dividerShorthandProps),\n resolveShorthandProps(props, dividerShorthandProps),\n );\n\n return state;\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/Divider/useDivider.ts"],"names":[],"mappings":"AACA,SAAS,qBAAT,EAAgC,gBAAhC,EAAkD,KAAlD,QAA+D,2BAA/D;AAGA;;;;AAIG;;AACH,OAAO,MAAM,UAAU,GAAG,CAAC,KAAD,EAAsB,GAAtB,KAAmE;AAC3F,QAAM;AAAE,IAAA,YAAY,GAAG,QAAjB;AAA2B,IAAA,UAA3B;AAAuC,IAAA,KAAK,GAAG,KAA/C;AAAsD,IAAA,QAAQ,GAAG,KAAjE;AAAwE,IAAA;AAAxE,MAAoF,KAA1F;AACA,QAAM,SAAS,GAAG,KAAK,CAAC,UAAD,CAAvB;AAEA,SAAO;AACL;AACA,IAAA,YAFK;AAGL,IAAA,UAHK;AAIL,IAAA,KAJK;AAKL,IAAA,QALK;AAOL;AACA,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,KADI;AAEV,MAAA,OAAO,EAAE;AAFC,KARP;AAaL,IAAA,IAAI,EAAE,qBAAqB,CAAC,KAAD,EAAQ,EACjC,GAAG,KAD8B;AAEjC,MAAA,GAFiC;AAGjC,MAAA,IAAI,EAAE,WAH2B;AAIjC,yBAAmB,KAAK,CAAC,QAAN,GAAiB,SAAjB,GAA6B;AAJf,KAAR,CAbtB;AAmBL,IAAA,OAAO,EAAE,gBAAgB,CAAC,OAAD,EAAU;AACjC,MAAA,QAAQ,EAAE,IADuB;AAEjC,MAAA,YAAY,EAAE;AACZ,QAAA,EAAE,EAAE,SADQ;AAEZ,QAAA,QAAQ,EAAE,KAAK,CAAC;AAFJ;AAFmB,KAAV;AAnBpB,GAAP;AA2BD,CA/BM","sourceRoot":""}