Skip to content

Commit 3f7d552

Browse files
committed
feat(react-components): add separate entrypoint for Fluent UI base state hooks
- Introduced a new index file in the base directory to export hooks and types from various Fluent UI components including Accordion, Badge, Breadcrumb, Button, Card, Divider, Image, Input, Link, Persona, Radio, Rating, Search, Skeleton, Slider, SpinButton, Spinner, Switch, and Textarea. - Created a package.json template for the base entrypoint with appropriate configurations. - Updated unstable.d.ts to include types and hooks for the newly added components, removing unused imports. - Enhanced the API generation executor to discover additional api-extractor configuration files and process them. - Modified workspace plugin configuration to accommodate multiple api-extractor configurations and outputs.
1 parent 0e111eb commit 3f7d552

File tree

11 files changed

+1044
-464
lines changed

11 files changed

+1044
-464
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Ignore build output for the react-components unstable export path
2+
/base/
23
/unstable/
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3+
"extends": "@fluentui/scripts-api-extractor/api-extractor.common.v-next.json",
4+
"mainEntryPointFilePath": "<projectFolder>/../../../dist/out-tsc/types/packages/react-components/<unscopedPackageName>/src/base/index.d.ts",
5+
"apiReport": {
6+
"enabled": true,
7+
"reportFileName": "<unscopedPackageName>.base"
8+
},
9+
"dtsRollup": {
10+
"enabled": true,
11+
"untrimmedFilePath": "<projectFolder>/dist/base.d.ts"
12+
}
13+
}
Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,313 @@
1+
## API Report File for "@fluentui/react-components"
2+
3+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4+
5+
```ts
6+
7+
import { AccordionBaseProps } from '@fluentui/react-accordion';
8+
import { AccordionBaseState } from '@fluentui/react-accordion';
9+
import { AccordionHeaderBaseProps } from '@fluentui/react-accordion';
10+
import { AccordionHeaderBaseState } from '@fluentui/react-accordion';
11+
import { AccordionPanelBaseProps } from '@fluentui/react-accordion';
12+
import { AccordionPanelBaseState } from '@fluentui/react-accordion';
13+
import { BadgeBaseProps } from '@fluentui/react-badge';
14+
import { BadgeBaseState } from '@fluentui/react-badge';
15+
import { BreadcrumbBaseProps } from '@fluentui/react-breadcrumb';
16+
import { BreadcrumbBaseState } from '@fluentui/react-breadcrumb';
17+
import { BreadcrumbButtonBaseProps } from '@fluentui/react-breadcrumb';
18+
import { BreadcrumbButtonBaseState } from '@fluentui/react-breadcrumb';
19+
import { BreadcrumbDividerBaseProps } from '@fluentui/react-breadcrumb';
20+
import { BreadcrumbDividerBaseState } from '@fluentui/react-breadcrumb';
21+
import { BreadcrumbItemBaseProps } from '@fluentui/react-breadcrumb';
22+
import { BreadcrumbItemBaseState } from '@fluentui/react-breadcrumb';
23+
import { ButtonBaseProps } from '@fluentui/react-button';
24+
import { ButtonBaseState } from '@fluentui/react-button';
25+
import { CardBaseProps } from '@fluentui/react-card';
26+
import { CardBaseState } from '@fluentui/react-card';
27+
import { CardFooterBaseProps } from '@fluentui/react-card';
28+
import { CardFooterBaseState } from '@fluentui/react-card';
29+
import { CardHeaderBaseProps } from '@fluentui/react-card';
30+
import { CardHeaderBaseState } from '@fluentui/react-card';
31+
import { CardPreviewBaseProps } from '@fluentui/react-card';
32+
import { CardPreviewBaseState } from '@fluentui/react-card';
33+
import { CounterBadgeBaseProps } from '@fluentui/react-badge';
34+
import { CounterBadgeBaseState } from '@fluentui/react-badge';
35+
import { DividerBaseProps } from '@fluentui/react-divider';
36+
import { DividerBaseState } from '@fluentui/react-divider';
37+
import { ImageBaseProps } from '@fluentui/react-image';
38+
import { ImageBaseState } from '@fluentui/react-image';
39+
import { InputBaseProps } from '@fluentui/react-input';
40+
import { InputBaseState } from '@fluentui/react-input';
41+
import { LinkBaseProps } from '@fluentui/react-link';
42+
import { LinkBaseState } from '@fluentui/react-link';
43+
import { PersonaBaseProps } from '@fluentui/react-persona';
44+
import { PersonaBaseState } from '@fluentui/react-persona';
45+
import { PresenceBadgeBaseProps } from '@fluentui/react-badge';
46+
import { PresenceBadgeBaseState } from '@fluentui/react-badge';
47+
import { RadioBaseProps } from '@fluentui/react-radio';
48+
import { RadioBaseState } from '@fluentui/react-radio';
49+
import { RadioGroupBaseProps } from '@fluentui/react-radio';
50+
import { RadioGroupBaseState } from '@fluentui/react-radio';
51+
import { RatingBaseProps } from '@fluentui/react-rating';
52+
import { RatingBaseState } from '@fluentui/react-rating';
53+
import { RatingDisplayBaseProps } from '@fluentui/react-rating';
54+
import { RatingDisplayBaseState } from '@fluentui/react-rating';
55+
import { RatingItemBaseProps } from '@fluentui/react-rating';
56+
import { RatingItemBaseState } from '@fluentui/react-rating';
57+
import { SearchBoxBaseProps } from '@fluentui/react-search';
58+
import { SearchBoxBaseState } from '@fluentui/react-search';
59+
import { SkeletonBaseProps } from '@fluentui/react-skeleton';
60+
import { SkeletonBaseState } from '@fluentui/react-skeleton';
61+
import { SkeletonItemBaseProps } from '@fluentui/react-skeleton';
62+
import { SkeletonItemBaseState } from '@fluentui/react-skeleton';
63+
import { SliderBaseProps } from '@fluentui/react-slider';
64+
import { SliderBaseState } from '@fluentui/react-slider';
65+
import { SpinButtonBaseProps } from '@fluentui/react-spinbutton';
66+
import { SpinButtonBaseState } from '@fluentui/react-spinbutton';
67+
import { SpinnerBaseProps } from '@fluentui/react-spinner';
68+
import { SpinnerBaseState } from '@fluentui/react-spinner';
69+
import { SwitchBaseProps } from '@fluentui/react-switch';
70+
import { SwitchBaseState } from '@fluentui/react-switch';
71+
import { TextareaBaseProps } from '@fluentui/react-textarea';
72+
import { TextareaBaseState } from '@fluentui/react-textarea';
73+
import { ToggleButtonBaseProps } from '@fluentui/react-button';
74+
import { ToggleButtonBaseState } from '@fluentui/react-button';
75+
import { useAccordionBase_unstable } from '@fluentui/react-accordion';
76+
import { useAccordionHeaderBase_unstable } from '@fluentui/react-accordion';
77+
import { useAccordionPanelBase_unstable } from '@fluentui/react-accordion';
78+
import { useBadgeBase_unstable } from '@fluentui/react-badge';
79+
import { useBreadcrumbBase_unstable } from '@fluentui/react-breadcrumb';
80+
import { useBreadcrumbButtonBase_unstable } from '@fluentui/react-breadcrumb';
81+
import { useBreadcrumbDividerBase_unstable } from '@fluentui/react-breadcrumb';
82+
import { useBreadcrumbItemBase_unstable } from '@fluentui/react-breadcrumb';
83+
import { useButtonBase_unstable } from '@fluentui/react-button';
84+
import { useCardBase_unstable } from '@fluentui/react-card';
85+
import { useCardFooterBase_unstable } from '@fluentui/react-card';
86+
import { useCardHeaderBase_unstable } from '@fluentui/react-card';
87+
import { useCardPreviewBase_unstable } from '@fluentui/react-card';
88+
import { useCounterBadgeBase_unstable } from '@fluentui/react-badge';
89+
import { useDividerBase_unstable } from '@fluentui/react-divider';
90+
import { useImageBase_unstable } from '@fluentui/react-image';
91+
import { useInputBase_unstable } from '@fluentui/react-input';
92+
import { useLinkBase_unstable } from '@fluentui/react-link';
93+
import { usePersonaBase_unstable } from '@fluentui/react-persona';
94+
import { usePresenceBadgeBase_unstable } from '@fluentui/react-badge';
95+
import { useRadioBase_unstable } from '@fluentui/react-radio';
96+
import { useRadioGroupBase_unstable } from '@fluentui/react-radio';
97+
import { useRatingBase_unstable } from '@fluentui/react-rating';
98+
import { useRatingDisplayBase_unstable } from '@fluentui/react-rating';
99+
import { useSearchBoxBase_unstable } from '@fluentui/react-search';
100+
import { useSkeletonBase_unstable } from '@fluentui/react-skeleton';
101+
import { useSkeletonItemBase_unstable } from '@fluentui/react-skeleton';
102+
import { useSliderBase_unstable } from '@fluentui/react-slider';
103+
import { useSpinButtonBase_unstable } from '@fluentui/react-spinbutton';
104+
import { useSpinnerBase_unstable } from '@fluentui/react-spinner';
105+
import { useSwitchBase_unstable } from '@fluentui/react-switch';
106+
import { useTextareaBase_unstable } from '@fluentui/react-textarea';
107+
import { useToggleButtonBase_unstable } from '@fluentui/react-button';
108+
109+
export { AccordionBaseProps }
110+
111+
export { AccordionBaseState }
112+
113+
export { AccordionHeaderBaseProps }
114+
115+
export { AccordionHeaderBaseState }
116+
117+
export { AccordionPanelBaseProps }
118+
119+
export { AccordionPanelBaseState }
120+
121+
export { BadgeBaseProps }
122+
123+
export { BadgeBaseState }
124+
125+
export { BreadcrumbBaseProps }
126+
127+
export { BreadcrumbBaseState }
128+
129+
export { BreadcrumbButtonBaseProps }
130+
131+
export { BreadcrumbButtonBaseState }
132+
133+
export { BreadcrumbDividerBaseProps }
134+
135+
export { BreadcrumbDividerBaseState }
136+
137+
export { BreadcrumbItemBaseProps }
138+
139+
export { BreadcrumbItemBaseState }
140+
141+
export { ButtonBaseProps }
142+
143+
export { ButtonBaseState }
144+
145+
export { CardBaseProps }
146+
147+
export { CardBaseState }
148+
149+
export { CardFooterBaseProps }
150+
151+
export { CardFooterBaseState }
152+
153+
export { CardHeaderBaseProps }
154+
155+
export { CardHeaderBaseState }
156+
157+
export { CardPreviewBaseProps }
158+
159+
export { CardPreviewBaseState }
160+
161+
export { CounterBadgeBaseProps }
162+
163+
export { CounterBadgeBaseState }
164+
165+
export { DividerBaseProps }
166+
167+
export { DividerBaseState }
168+
169+
export { ImageBaseProps }
170+
171+
export { ImageBaseState }
172+
173+
export { InputBaseProps }
174+
175+
export { InputBaseState }
176+
177+
export { LinkBaseProps }
178+
179+
export { LinkBaseState }
180+
181+
export { PersonaBaseProps }
182+
183+
export { PersonaBaseState }
184+
185+
export { PresenceBadgeBaseProps }
186+
187+
export { PresenceBadgeBaseState }
188+
189+
export { RadioBaseProps }
190+
191+
export { RadioBaseState }
192+
193+
export { RadioGroupBaseProps }
194+
195+
export { RadioGroupBaseState }
196+
197+
export { RatingBaseProps }
198+
199+
export { RatingBaseState }
200+
201+
export { RatingDisplayBaseProps }
202+
203+
export { RatingDisplayBaseState }
204+
205+
export { RatingItemBaseProps }
206+
207+
export { RatingItemBaseState }
208+
209+
export { SearchBoxBaseProps }
210+
211+
export { SearchBoxBaseState }
212+
213+
export { SkeletonBaseProps }
214+
215+
export { SkeletonBaseState }
216+
217+
export { SkeletonItemBaseProps }
218+
219+
export { SkeletonItemBaseState }
220+
221+
export { SliderBaseProps }
222+
223+
export { SliderBaseState }
224+
225+
export { SpinButtonBaseProps }
226+
227+
export { SpinButtonBaseState }
228+
229+
export { SpinnerBaseProps }
230+
231+
export { SpinnerBaseState }
232+
233+
export { SwitchBaseProps }
234+
235+
export { SwitchBaseState }
236+
237+
export { TextareaBaseProps }
238+
239+
export { TextareaBaseState }
240+
241+
export { ToggleButtonBaseProps }
242+
243+
export { ToggleButtonBaseState }
244+
245+
export { useAccordionBase_unstable }
246+
247+
export { useAccordionHeaderBase_unstable }
248+
249+
export { useAccordionPanelBase_unstable }
250+
251+
export { useBadgeBase_unstable }
252+
253+
export { useBreadcrumbBase_unstable }
254+
255+
export { useBreadcrumbButtonBase_unstable }
256+
257+
export { useBreadcrumbDividerBase_unstable }
258+
259+
export { useBreadcrumbItemBase_unstable }
260+
261+
export { useButtonBase_unstable }
262+
263+
export { useCardBase_unstable }
264+
265+
export { useCardFooterBase_unstable }
266+
267+
export { useCardHeaderBase_unstable }
268+
269+
export { useCardPreviewBase_unstable }
270+
271+
export { useCounterBadgeBase_unstable }
272+
273+
export { useDividerBase_unstable }
274+
275+
export { useImageBase_unstable }
276+
277+
export { useInputBase_unstable }
278+
279+
export { useLinkBase_unstable }
280+
281+
export { usePersonaBase_unstable }
282+
283+
export { usePresenceBadgeBase_unstable }
284+
285+
export { useRadioBase_unstable }
286+
287+
export { useRadioGroupBase_unstable }
288+
289+
export { useRatingBase_unstable }
290+
291+
export { useRatingDisplayBase_unstable }
292+
293+
export { useSearchBoxBase_unstable }
294+
295+
export { useSkeletonBase_unstable }
296+
297+
export { useSkeletonItemBase_unstable }
298+
299+
export { useSliderBase_unstable }
300+
301+
export { useSpinButtonBase_unstable }
302+
303+
export { useSpinnerBase_unstable }
304+
305+
export { useSwitchBase_unstable }
306+
307+
export { useTextareaBase_unstable }
308+
309+
export { useToggleButtonBase_unstable }
310+
311+
// (No @packageDocumentation comment for this package)
312+
313+
```

packages/react-components/react-components/package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,21 @@
9999
"node": "./lib-commonjs/unstable/index.js",
100100
"import": "./lib/unstable/index.js",
101101
"require": "./lib-commonjs/unstable/index.js"
102+
},
103+
"./base": {
104+
"types": "./dist/base.d.ts",
105+
"node": "./lib-commonjs/base/index.js",
106+
"import": "./lib/base/index.js",
107+
"require": "./lib-commonjs/base/index.js"
102108
}
103109
},
104110
"files": [
105111
"*.md",
106112
"dist/*.d.ts",
107113
"lib",
108114
"lib-commonjs",
109-
"unstable"
115+
"unstable",
116+
"base"
110117
],
111118
"wyw-in-js": {
112119
"tags": {

packages/react-components/react-components/project.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@
2424
"substitutions": {
2525
"__tmpl__": ""
2626
}
27+
},
28+
{
29+
"input": "{projectRoot}/src/base",
30+
"output": "base",
31+
"glob": "*.json__tmpl__",
32+
"substitutions": {
33+
"__tmpl__": ""
34+
}
35+
},
36+
{
37+
"input": "{projectRoot}/src/base",
38+
"output": "dist",
39+
"glob": "*.d.ts__tmpl__",
40+
"substitutions": {
41+
"__tmpl__": ""
42+
}
2743
}
2844
]
2945
}

0 commit comments

Comments
 (0)