@fluentui/react-breadcrumb 9.3.16 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/dist/index.d.ts +75 -0
  3. package/lib/Breadcrumb.js +1 -1
  4. package/lib/Breadcrumb.js.map +1 -1
  5. package/lib/BreadcrumbButton.js +1 -1
  6. package/lib/BreadcrumbButton.js.map +1 -1
  7. package/lib/BreadcrumbDivider.js +1 -1
  8. package/lib/BreadcrumbDivider.js.map +1 -1
  9. package/lib/BreadcrumbItem.js +1 -1
  10. package/lib/BreadcrumbItem.js.map +1 -1
  11. package/lib/components/Breadcrumb/Breadcrumb.types.js +1 -3
  12. package/lib/components/Breadcrumb/Breadcrumb.types.js.map +1 -1
  13. package/lib/components/Breadcrumb/index.js +1 -1
  14. package/lib/components/Breadcrumb/index.js.map +1 -1
  15. package/lib/components/Breadcrumb/useBreadcrumb.js +37 -8
  16. package/lib/components/Breadcrumb/useBreadcrumb.js.map +1 -1
  17. package/lib/components/BreadcrumbButton/BreadcrumbButton.types.js +1 -3
  18. package/lib/components/BreadcrumbButton/BreadcrumbButton.types.js.map +1 -1
  19. package/lib/components/BreadcrumbButton/index.js +1 -1
  20. package/lib/components/BreadcrumbButton/index.js.map +1 -1
  21. package/lib/components/BreadcrumbButton/useBreadcrumbButton.js +24 -12
  22. package/lib/components/BreadcrumbButton/useBreadcrumbButton.js.map +1 -1
  23. package/lib/components/BreadcrumbDivider/BreadcrumbDivider.types.js +1 -1
  24. package/lib/components/BreadcrumbDivider/BreadcrumbDivider.types.js.map +1 -1
  25. package/lib/components/BreadcrumbDivider/index.js +1 -1
  26. package/lib/components/BreadcrumbDivider/index.js.map +1 -1
  27. package/lib/components/BreadcrumbDivider/useBreadcrumbDivider.js +18 -4
  28. package/lib/components/BreadcrumbDivider/useBreadcrumbDivider.js.map +1 -1
  29. package/lib/components/BreadcrumbItem/BreadcrumbItem.types.js +1 -1
  30. package/lib/components/BreadcrumbItem/BreadcrumbItem.types.js.map +1 -1
  31. package/lib/components/BreadcrumbItem/index.js +1 -1
  32. package/lib/components/BreadcrumbItem/index.js.map +1 -1
  33. package/lib/components/BreadcrumbItem/useBreadcrumbItem.js +14 -2
  34. package/lib/components/BreadcrumbItem/useBreadcrumbItem.js.map +1 -1
  35. package/lib/index.js +4 -4
  36. package/lib/index.js.map +1 -1
  37. package/lib-commonjs/Breadcrumb.js +6 -0
  38. package/lib-commonjs/Breadcrumb.js.map +1 -1
  39. package/lib-commonjs/BreadcrumbButton.js +3 -0
  40. package/lib-commonjs/BreadcrumbButton.js.map +1 -1
  41. package/lib-commonjs/BreadcrumbDivider.js +3 -0
  42. package/lib-commonjs/BreadcrumbDivider.js.map +1 -1
  43. package/lib-commonjs/BreadcrumbItem.js +3 -0
  44. package/lib-commonjs/BreadcrumbItem.js.map +1 -1
  45. package/lib-commonjs/components/Breadcrumb/Breadcrumb.types.js +1 -3
  46. package/lib-commonjs/components/Breadcrumb/Breadcrumb.types.js.map +1 -1
  47. package/lib-commonjs/components/Breadcrumb/index.js +6 -0
  48. package/lib-commonjs/components/Breadcrumb/index.js.map +1 -1
  49. package/lib-commonjs/components/Breadcrumb/useBreadcrumb.js +38 -11
  50. package/lib-commonjs/components/Breadcrumb/useBreadcrumb.js.map +1 -1
  51. package/lib-commonjs/components/BreadcrumbButton/BreadcrumbButton.types.js +1 -3
  52. package/lib-commonjs/components/BreadcrumbButton/BreadcrumbButton.types.js.map +1 -1
  53. package/lib-commonjs/components/BreadcrumbButton/index.js +3 -0
  54. package/lib-commonjs/components/BreadcrumbButton/index.js.map +1 -1
  55. package/lib-commonjs/components/BreadcrumbButton/useBreadcrumbButton.js +29 -15
  56. package/lib-commonjs/components/BreadcrumbButton/useBreadcrumbButton.js.map +1 -1
  57. package/lib-commonjs/components/BreadcrumbDivider/BreadcrumbDivider.types.js +1 -1
  58. package/lib-commonjs/components/BreadcrumbDivider/BreadcrumbDivider.types.js.map +1 -1
  59. package/lib-commonjs/components/BreadcrumbDivider/index.js +3 -0
  60. package/lib-commonjs/components/BreadcrumbDivider/index.js.map +1 -1
  61. package/lib-commonjs/components/BreadcrumbDivider/useBreadcrumbDivider.js +23 -7
  62. package/lib-commonjs/components/BreadcrumbDivider/useBreadcrumbDivider.js.map +1 -1
  63. package/lib-commonjs/components/BreadcrumbItem/BreadcrumbItem.types.js +1 -1
  64. package/lib-commonjs/components/BreadcrumbItem/BreadcrumbItem.types.js.map +1 -1
  65. package/lib-commonjs/components/BreadcrumbItem/index.js +3 -0
  66. package/lib-commonjs/components/BreadcrumbItem/index.js.map +1 -1
  67. package/lib-commonjs/components/BreadcrumbItem/useBreadcrumbItem.js +19 -5
  68. package/lib-commonjs/components/BreadcrumbItem/useBreadcrumbItem.js.map +1 -1
  69. package/lib-commonjs/index.js +15 -0
  70. package/lib-commonjs/index.js.map +1 -1
  71. package/package.json +8 -8
package/CHANGELOG.md CHANGED
@@ -1,12 +1,38 @@
1
1
  # Change Log - @fluentui/react-breadcrumb
2
2
 
3
- This log was last generated on Thu, 12 Feb 2026 10:42:48 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 26 Mar 2026 08:10:38 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.4.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-breadcrumb_v9.4.0)
8
+
9
+ Thu, 26 Mar 2026 08:10:38 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-breadcrumb_v9.3.17..@fluentui/react-breadcrumb_v9.4.0)
11
+
12
+ ### Minor changes
13
+
14
+ - feat: add base hooks for Breadcrumb ([PR #35819](https://github.com/microsoft/fluentui/pull/35819) by dmytrokirpa@microsoft.com)
15
+ - Bump @fluentui/react-button to v9.9.0 ([PR #35824](https://github.com/microsoft/fluentui/pull/35824) by beachball)
16
+ - Bump @fluentui/react-link to v9.8.0 ([PR #35824](https://github.com/microsoft/fluentui/pull/35824) by beachball)
17
+
18
+ ## [9.3.17](https://github.com/microsoft/fluentui/tree/@fluentui/react-breadcrumb_v9.3.17)
19
+
20
+ Wed, 25 Feb 2026 13:32:28 GMT
21
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-breadcrumb_v9.3.16..@fluentui/react-breadcrumb_v9.3.17)
22
+
23
+ ### Patches
24
+
25
+ - Bump @fluentui/react-aria to v9.17.10 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
26
+ - Bump @fluentui/react-button to v9.8.2 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
27
+ - Bump @fluentui/react-link to v9.7.4 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
28
+ - Bump @fluentui/react-shared-contexts to v9.26.2 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
29
+ - Bump @fluentui/react-tabster to v9.26.13 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
30
+ - Bump @fluentui/react-utilities to v9.26.2 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
31
+ - Bump @fluentui/react-jsx-runtime to v9.4.1 ([PR #35782](https://github.com/microsoft/fluentui/pull/35782) by beachball)
32
+
7
33
  ## [9.3.16](https://github.com/microsoft/fluentui/tree/@fluentui/react-breadcrumb_v9.3.16)
8
34
 
9
- Thu, 12 Feb 2026 10:42:48 GMT
35
+ Thu, 12 Feb 2026 10:46:15 GMT
10
36
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-breadcrumb_v9.3.15..@fluentui/react-breadcrumb_v9.3.16)
11
37
 
12
38
  ### Patches
package/dist/index.d.ts CHANGED
@@ -8,17 +8,26 @@ import type { JSXElement } from '@fluentui/react-utilities';
8
8
  import * as React_2 from 'react';
9
9
  import type { Slot } from '@fluentui/react-utilities';
10
10
  import type { SlotClassNames } from '@fluentui/react-utilities';
11
+ import { TabsterDOMAttribute } from '@fluentui/react-tabster';
11
12
 
12
13
  /**
13
14
  * Breadcrumb component - TODO: add more docs
14
15
  */
15
16
  export declare const Breadcrumb: ForwardRefComponent<BreadcrumbProps>;
16
17
 
18
+ export declare type BreadcrumbBaseProps = Omit<BreadcrumbProps, 'size'>;
19
+
20
+ export declare type BreadcrumbBaseState = Omit<BreadcrumbState, 'size'>;
21
+
17
22
  /**
18
23
  * A button component which is used inside the Breadcrumb.
19
24
  */
20
25
  export declare const BreadcrumbButton: ForwardRefComponent<BreadcrumbButtonProps>;
21
26
 
27
+ export declare type BreadcrumbButtonBaseProps = Omit<BreadcrumbButtonProps, 'size'>;
28
+
29
+ export declare type BreadcrumbButtonBaseState = Omit<BreadcrumbButtonState, 'size'>;
30
+
22
31
  /**
23
32
  * Static CSS class names used internally for the component slots.
24
33
  */
@@ -55,6 +64,16 @@ export declare type BreadcrumbContextValues = Required<Pick<BreadcrumbProps, 'si
55
64
  */
56
65
  export declare const BreadcrumbDivider: ForwardRefComponent<BreadcrumbDividerProps>;
57
66
 
67
+ /**
68
+ * BreadcrumbDivider base props (same as BreadcrumbDividerProps since BreadcrumbDivider has no design props of its own)
69
+ */
70
+ export declare type BreadcrumbDividerBaseProps = BreadcrumbDividerProps;
71
+
72
+ /**
73
+ * BreadcrumbDivider base state (excludes size, which is a design prop injected from context)
74
+ */
75
+ export declare type BreadcrumbDividerBaseState = Omit<BreadcrumbDividerState, 'size'>;
76
+
58
77
  export declare const breadcrumbDividerClassNames: SlotClassNames<BreadcrumbDividerSlots>;
59
78
 
60
79
  /**
@@ -77,6 +96,16 @@ export declare type BreadcrumbDividerState = ComponentState<BreadcrumbDividerSlo
77
96
  */
78
97
  export declare const BreadcrumbItem: ForwardRefComponent<BreadcrumbItemProps>;
79
98
 
99
+ /**
100
+ * BreadcrumbItem base props (same as BreadcrumbItemProps since size is passed through context, not as a design prop)
101
+ */
102
+ export declare type BreadcrumbItemBaseProps = Omit<BreadcrumbItemProps, 'size'>;
103
+
104
+ /**
105
+ * BreadcrumbItem base state (excludes size, which is a design prop injected from context)
106
+ */
107
+ export declare type BreadcrumbItemBaseState = Omit<BreadcrumbItemState, 'size'>;
108
+
80
109
  export declare const breadcrumbItemClassNames: SlotClassNames<BreadcrumbItemSlots>;
81
110
 
82
111
  /**
@@ -197,6 +226,25 @@ export declare const truncateBreadcrumLongTooltip: (content: string, maxLength?:
197
226
  */
198
227
  export declare const useBreadcrumb_unstable: (props: BreadcrumbProps, ref: React_2.Ref<HTMLElement>) => BreadcrumbState;
199
228
 
229
+ /**
230
+ * Hook to get accessibility attributes for Breadcrumb component, such as roving tab index.
231
+ * Based on Tabster's useArrowNavigationGroup.
232
+ *
233
+ * @param focusMode - whether the Breadcrumb uses arrow key navigation or tab key navigation
234
+ * @returns Tabster DOM attributes
235
+ */
236
+ export declare const useBreadcrumbA11yBehavior_unstable: ({ focusMode, }: Pick<BreadcrumbBaseProps, "focusMode">) => Partial<TabsterDOMAttribute>;
237
+
238
+ /**
239
+ * Base hook for Breadcrumb component, which manages state related to slots structure and ARIA attributes.
240
+ *
241
+ * Note: keyboard navigation behavior is not handled in this hook, but in useBreadcrumbA11yBehavior_unstable.
242
+ *
243
+ * @param props - props from this instance of Breadcrumb
244
+ * @param ref - reference to root HTMLElement of Breadcrumb
245
+ */
246
+ export declare const useBreadcrumbBase_unstable: (props: BreadcrumbBaseProps, ref: React_2.Ref<HTMLElement>) => BreadcrumbBaseState;
247
+
200
248
  /**
201
249
  * Create the state required to render BreadcrumbButton.
202
250
  *
@@ -208,6 +256,15 @@ export declare const useBreadcrumb_unstable: (props: BreadcrumbProps, ref: React
208
256
  */
209
257
  export declare const useBreadcrumbButton_unstable: (props: BreadcrumbButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => BreadcrumbButtonState;
210
258
 
259
+ /**
260
+ * Base hook for BreadcrumbButton component, which manages state related to button behavior,
261
+ * ARIA attributes (aria-current, aria-disabled), and slot structure without design props.
262
+ *
263
+ * @param props - props from this instance of BreadcrumbButton
264
+ * @param ref - reference to root HTMLElement of BreadcrumbButton
265
+ */
266
+ export declare const useBreadcrumbButtonBase_unstable: (props: BreadcrumbButtonBaseProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => BreadcrumbButtonBaseState;
267
+
211
268
  /**
212
269
  * Apply styling to the BreadcrumbButton slots based on the state
213
270
  */
@@ -229,6 +286,15 @@ export declare const useBreadcrumbContext_unstable: () => BreadcrumbContextValue
229
286
  */
230
287
  export declare const useBreadcrumbDivider_unstable: (props: BreadcrumbDividerProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbDividerState;
231
288
 
289
+ /**
290
+ * Base hook for BreadcrumbDivider component, which manages state related to slots structure and ARIA attributes
291
+ * without design props. Note: size is provided via BreadcrumbContext in the full hook.
292
+ *
293
+ * @param props - props from this instance of BreadcrumbDivider
294
+ * @param ref - reference to root HTMLElement of BreadcrumbDivider
295
+ */
296
+ export declare const useBreadcrumbDividerBase_unstable: (props: BreadcrumbDividerBaseProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbDividerBaseState;
297
+
232
298
  /**
233
299
  * Apply styling to the BreadcrumbDivider slots based on the state
234
300
  */
@@ -245,6 +311,15 @@ export declare const useBreadcrumbDividerStyles_unstable: (state: BreadcrumbDivi
245
311
  */
246
312
  export declare const useBreadcrumbItem_unstable: (props: BreadcrumbItemProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbItemState;
247
313
 
314
+ /**
315
+ * Base hook for BreadcrumbItem component, which manages state related to slots structure
316
+ * without design props. Note: size is provided via BreadcrumbContext in the full hook.
317
+ *
318
+ * @param props - props from this instance of BreadcrumbItem
319
+ * @param ref - reference to root HTMLElement of BreadcrumbItem
320
+ */
321
+ export declare const useBreadcrumbItemBase_unstable: (props: BreadcrumbItemBaseProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbItemBaseState;
322
+
248
323
  /**
249
324
  * Apply styling to the BreadcrumbItem slots based on the state
250
325
  */
package/lib/Breadcrumb.js CHANGED
@@ -1 +1 @@
1
- export { Breadcrumb, BreadcrumbProvider, breadcrumbClassNames, breadcrumbDefaultValue, renderBreadcrumb_unstable, useBreadcrumbContext_unstable, useBreadcrumbStyles_unstable, useBreadcrumb_unstable } from './components/Breadcrumb/index';
1
+ export { Breadcrumb, BreadcrumbProvider, breadcrumbClassNames, breadcrumbDefaultValue, renderBreadcrumb_unstable, useBreadcrumbContext_unstable, useBreadcrumbStyles_unstable, useBreadcrumb_unstable, useBreadcrumbBase_unstable, useBreadcrumbA11yBehavior_unstable } from './components/Breadcrumb/index';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Breadcrumb.ts"],"sourcesContent":["export type {\n BreadcrumbContextValues,\n BreadcrumbProps,\n BreadcrumbSlots,\n BreadcrumbState,\n} from './components/Breadcrumb/index';\nexport {\n Breadcrumb,\n BreadcrumbProvider,\n breadcrumbClassNames,\n breadcrumbDefaultValue,\n renderBreadcrumb_unstable,\n useBreadcrumbContext_unstable,\n useBreadcrumbStyles_unstable,\n useBreadcrumb_unstable,\n} from './components/Breadcrumb/index';\n"],"names":["Breadcrumb","BreadcrumbProvider","breadcrumbClassNames","breadcrumbDefaultValue","renderBreadcrumb_unstable","useBreadcrumbContext_unstable","useBreadcrumbStyles_unstable","useBreadcrumb_unstable"],"mappings":"AAMA,SACEA,UAAU,EACVC,kBAAkB,EAClBC,oBAAoB,EACpBC,sBAAsB,EACtBC,yBAAyB,EACzBC,6BAA6B,EAC7BC,4BAA4B,EAC5BC,sBAAsB,QACjB,gCAAgC"}
1
+ {"version":3,"sources":["../src/Breadcrumb.ts"],"sourcesContent":["export type {\n BreadcrumbContextValues,\n BreadcrumbProps,\n BreadcrumbSlots,\n BreadcrumbState,\n BreadcrumbBaseProps,\n BreadcrumbBaseState,\n} from './components/Breadcrumb/index';\nexport {\n Breadcrumb,\n BreadcrumbProvider,\n breadcrumbClassNames,\n breadcrumbDefaultValue,\n renderBreadcrumb_unstable,\n useBreadcrumbContext_unstable,\n useBreadcrumbStyles_unstable,\n useBreadcrumb_unstable,\n useBreadcrumbBase_unstable,\n useBreadcrumbA11yBehavior_unstable,\n} from './components/Breadcrumb/index';\n"],"names":["Breadcrumb","BreadcrumbProvider","breadcrumbClassNames","breadcrumbDefaultValue","renderBreadcrumb_unstable","useBreadcrumbContext_unstable","useBreadcrumbStyles_unstable","useBreadcrumb_unstable","useBreadcrumbBase_unstable","useBreadcrumbA11yBehavior_unstable"],"mappings":"AAQA,SACEA,UAAU,EACVC,kBAAkB,EAClBC,oBAAoB,EACpBC,sBAAsB,EACtBC,yBAAyB,EACzBC,6BAA6B,EAC7BC,4BAA4B,EAC5BC,sBAAsB,EACtBC,0BAA0B,EAC1BC,kCAAkC,QAC7B,gCAAgC"}
@@ -1 +1 @@
1
- export { BreadcrumbButton, breadcrumbButtonClassNames, renderBreadcrumbButton_unstable, useBreadcrumbButtonStyles_unstable, useBreadcrumbButton_unstable } from './components/BreadcrumbButton/index';
1
+ export { BreadcrumbButton, breadcrumbButtonClassNames, renderBreadcrumbButton_unstable, useBreadcrumbButtonStyles_unstable, useBreadcrumbButton_unstable, useBreadcrumbButtonBase_unstable } from './components/BreadcrumbButton/index';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/BreadcrumbButton.ts"],"sourcesContent":["export type {\n BreadcrumbButtonProps,\n BreadcrumbButtonSlots,\n BreadcrumbButtonState,\n} from './components/BreadcrumbButton/index';\nexport {\n BreadcrumbButton,\n breadcrumbButtonClassNames,\n renderBreadcrumbButton_unstable,\n useBreadcrumbButtonStyles_unstable,\n useBreadcrumbButton_unstable,\n} from './components/BreadcrumbButton/index';\n"],"names":["BreadcrumbButton","breadcrumbButtonClassNames","renderBreadcrumbButton_unstable","useBreadcrumbButtonStyles_unstable","useBreadcrumbButton_unstable"],"mappings":"AAKA,SACEA,gBAAgB,EAChBC,0BAA0B,EAC1BC,+BAA+B,EAC/BC,kCAAkC,EAClCC,4BAA4B,QACvB,sCAAsC"}
1
+ {"version":3,"sources":["../src/BreadcrumbButton.ts"],"sourcesContent":["export type {\n BreadcrumbButtonProps,\n BreadcrumbButtonSlots,\n BreadcrumbButtonState,\n BreadcrumbButtonBaseProps,\n BreadcrumbButtonBaseState,\n} from './components/BreadcrumbButton/index';\nexport {\n BreadcrumbButton,\n breadcrumbButtonClassNames,\n renderBreadcrumbButton_unstable,\n useBreadcrumbButtonStyles_unstable,\n useBreadcrumbButton_unstable,\n useBreadcrumbButtonBase_unstable,\n} from './components/BreadcrumbButton/index';\n"],"names":["BreadcrumbButton","breadcrumbButtonClassNames","renderBreadcrumbButton_unstable","useBreadcrumbButtonStyles_unstable","useBreadcrumbButton_unstable","useBreadcrumbButtonBase_unstable"],"mappings":"AAOA,SACEA,gBAAgB,EAChBC,0BAA0B,EAC1BC,+BAA+B,EAC/BC,kCAAkC,EAClCC,4BAA4B,EAC5BC,gCAAgC,QAC3B,sCAAsC"}
@@ -1 +1 @@
1
- export { BreadcrumbDivider, breadcrumbDividerClassNames, renderBreadcrumbDivider_unstable, useBreadcrumbDividerStyles_unstable, useBreadcrumbDivider_unstable } from './components/BreadcrumbDivider/index';
1
+ export { BreadcrumbDivider, breadcrumbDividerClassNames, renderBreadcrumbDivider_unstable, useBreadcrumbDividerStyles_unstable, useBreadcrumbDivider_unstable, useBreadcrumbDividerBase_unstable } from './components/BreadcrumbDivider/index';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/BreadcrumbDivider.ts"],"sourcesContent":["export type {\n BreadcrumbDividerProps,\n BreadcrumbDividerSlots,\n BreadcrumbDividerState,\n} from './components/BreadcrumbDivider/index';\nexport {\n BreadcrumbDivider,\n breadcrumbDividerClassNames,\n renderBreadcrumbDivider_unstable,\n useBreadcrumbDividerStyles_unstable,\n useBreadcrumbDivider_unstable,\n} from './components/BreadcrumbDivider/index';\n"],"names":["BreadcrumbDivider","breadcrumbDividerClassNames","renderBreadcrumbDivider_unstable","useBreadcrumbDividerStyles_unstable","useBreadcrumbDivider_unstable"],"mappings":"AAKA,SACEA,iBAAiB,EACjBC,2BAA2B,EAC3BC,gCAAgC,EAChCC,mCAAmC,EACnCC,6BAA6B,QACxB,uCAAuC"}
1
+ {"version":3,"sources":["../src/BreadcrumbDivider.ts"],"sourcesContent":["export type {\n BreadcrumbDividerProps,\n BreadcrumbDividerSlots,\n BreadcrumbDividerState,\n BreadcrumbDividerBaseProps,\n BreadcrumbDividerBaseState,\n} from './components/BreadcrumbDivider/index';\nexport {\n BreadcrumbDivider,\n breadcrumbDividerClassNames,\n renderBreadcrumbDivider_unstable,\n useBreadcrumbDividerStyles_unstable,\n useBreadcrumbDivider_unstable,\n useBreadcrumbDividerBase_unstable,\n} from './components/BreadcrumbDivider/index';\n"],"names":["BreadcrumbDivider","breadcrumbDividerClassNames","renderBreadcrumbDivider_unstable","useBreadcrumbDividerStyles_unstable","useBreadcrumbDivider_unstable","useBreadcrumbDividerBase_unstable"],"mappings":"AAOA,SACEA,iBAAiB,EACjBC,2BAA2B,EAC3BC,gCAAgC,EAChCC,mCAAmC,EACnCC,6BAA6B,EAC7BC,iCAAiC,QAC5B,uCAAuC"}
@@ -1 +1 @@
1
- export { BreadcrumbItem, breadcrumbItemClassNames, renderBreadcrumbItem_unstable, useBreadcrumbItemStyles_unstable, useBreadcrumbItem_unstable } from './components/BreadcrumbItem/index';
1
+ export { BreadcrumbItem, breadcrumbItemClassNames, renderBreadcrumbItem_unstable, useBreadcrumbItemStyles_unstable, useBreadcrumbItem_unstable, useBreadcrumbItemBase_unstable } from './components/BreadcrumbItem/index';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/BreadcrumbItem.ts"],"sourcesContent":["export type { BreadcrumbItemProps, BreadcrumbItemSlots, BreadcrumbItemState } from './components/BreadcrumbItem/index';\nexport {\n BreadcrumbItem,\n breadcrumbItemClassNames,\n renderBreadcrumbItem_unstable,\n useBreadcrumbItemStyles_unstable,\n useBreadcrumbItem_unstable,\n} from './components/BreadcrumbItem/index';\n"],"names":["BreadcrumbItem","breadcrumbItemClassNames","renderBreadcrumbItem_unstable","useBreadcrumbItemStyles_unstable","useBreadcrumbItem_unstable"],"mappings":"AACA,SACEA,cAAc,EACdC,wBAAwB,EACxBC,6BAA6B,EAC7BC,gCAAgC,EAChCC,0BAA0B,QACrB,oCAAoC"}
1
+ {"version":3,"sources":["../src/BreadcrumbItem.ts"],"sourcesContent":["export type {\n BreadcrumbItemProps,\n BreadcrumbItemSlots,\n BreadcrumbItemState,\n BreadcrumbItemBaseProps,\n BreadcrumbItemBaseState,\n} from './components/BreadcrumbItem/index';\nexport {\n BreadcrumbItem,\n breadcrumbItemClassNames,\n renderBreadcrumbItem_unstable,\n useBreadcrumbItemStyles_unstable,\n useBreadcrumbItem_unstable,\n useBreadcrumbItemBase_unstable,\n} from './components/BreadcrumbItem/index';\n"],"names":["BreadcrumbItem","breadcrumbItemClassNames","renderBreadcrumbItem_unstable","useBreadcrumbItemStyles_unstable","useBreadcrumbItem_unstable","useBreadcrumbItemBase_unstable"],"mappings":"AAOA,SACEA,cAAc,EACdC,wBAAwB,EACxBC,6BAA6B,EAC7BC,gCAAgC,EAChCC,0BAA0B,EAC1BC,8BAA8B,QACzB,oCAAoC"}
@@ -1,3 +1 @@
1
- /**
2
- * State used in rendering Breadcrumb
3
- */ export { };
1
+ export { };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Breadcrumb/Breadcrumb.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\n/**\n * Data shared between breadcrumb components\n */\nexport type BreadcrumbContextValues = Required<Pick<BreadcrumbProps, 'size'>>;\n\nexport type BreadcrumbSlots = {\n /**\n * Root element of the component.\n */\n root: Slot<'nav'>;\n /**\n * Ordered list which contains items.\n */\n list?: Slot<'ol'>;\n};\n\n/**\n * Breadcrumb Props\n */\nexport type BreadcrumbProps = ComponentProps<BreadcrumbSlots> & {\n /**\n * Sets the focus behavior for the Breadcrumb.\n *\n * `tab`\n * This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Tab key and then release focus\n * after the last inner element.\n *\n * `arrow`\n * This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Arrow key.\n *\n * @default 'tab'\n */\n focusMode?: 'arrow' | 'tab';\n\n /**\n * Controls size of Breadcrumb items and dividers.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n};\n\n/**\n * State used in rendering Breadcrumb\n */\nexport type BreadcrumbState = ComponentState<BreadcrumbSlots> & Required<Pick<BreadcrumbProps, 'size'>>;\n"],"names":[],"mappings":"AA4CA;;CAEC,GACD,WAAwG"}
1
+ {"version":3,"sources":["../src/components/Breadcrumb/Breadcrumb.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\n/**\n * Data shared between breadcrumb components\n */\nexport type BreadcrumbContextValues = Required<Pick<BreadcrumbProps, 'size'>>;\n\nexport type BreadcrumbSlots = {\n /**\n * Root element of the component.\n */\n root: Slot<'nav'>;\n /**\n * Ordered list which contains items.\n */\n list?: Slot<'ol'>;\n};\n\n/**\n * Breadcrumb Props\n */\nexport type BreadcrumbProps = ComponentProps<BreadcrumbSlots> & {\n /**\n * Sets the focus behavior for the Breadcrumb.\n *\n * `tab`\n * This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Tab key and then release focus\n * after the last inner element.\n *\n * `arrow`\n * This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Arrow key.\n *\n * @default 'tab'\n */\n focusMode?: 'arrow' | 'tab';\n\n /**\n * Controls size of Breadcrumb items and dividers.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n};\n\n/**\n * State used in rendering Breadcrumb\n */\nexport type BreadcrumbState = ComponentState<BreadcrumbSlots> & Required<Pick<BreadcrumbProps, 'size'>>;\n\nexport type BreadcrumbBaseProps = Omit<BreadcrumbProps, 'size'>;\n\nexport type BreadcrumbBaseState = Omit<BreadcrumbState, 'size'>;\n"],"names":[],"mappings":"AAmDA,WAAgE"}
@@ -1,5 +1,5 @@
1
1
  export { Breadcrumb } from './Breadcrumb';
2
2
  export { BreadcrumbProvider, breadcrumbDefaultValue, useBreadcrumbContext_unstable } from './BreadcrumbContext';
3
3
  export { renderBreadcrumb_unstable } from './renderBreadcrumb';
4
- export { useBreadcrumb_unstable } from './useBreadcrumb';
4
+ export { useBreadcrumb_unstable, useBreadcrumbBase_unstable, useBreadcrumbA11yBehavior_unstable } from './useBreadcrumb';
5
5
  export { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Breadcrumb/index.ts"],"sourcesContent":["export { Breadcrumb } from './Breadcrumb';\nexport type { BreadcrumbContextValues, BreadcrumbProps, BreadcrumbSlots, BreadcrumbState } from './Breadcrumb.types';\nexport { BreadcrumbProvider, breadcrumbDefaultValue, useBreadcrumbContext_unstable } from './BreadcrumbContext';\nexport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nexport { useBreadcrumb_unstable } from './useBreadcrumb';\nexport { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\n"],"names":["Breadcrumb","BreadcrumbProvider","breadcrumbDefaultValue","useBreadcrumbContext_unstable","renderBreadcrumb_unstable","useBreadcrumb_unstable","breadcrumbClassNames","useBreadcrumbStyles_unstable"],"mappings":"AAAA,SAASA,UAAU,QAAQ,eAAe;AAE1C,SAASC,kBAAkB,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,sBAAsB;AAChH,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,oBAAoB,EAAEC,4BAA4B,QAAQ,+BAA+B"}
1
+ {"version":3,"sources":["../src/components/Breadcrumb/index.ts"],"sourcesContent":["export { Breadcrumb } from './Breadcrumb';\nexport type {\n BreadcrumbBaseProps,\n BreadcrumbBaseState,\n BreadcrumbContextValues,\n BreadcrumbProps,\n BreadcrumbSlots,\n BreadcrumbState,\n} from './Breadcrumb.types';\nexport { BreadcrumbProvider, breadcrumbDefaultValue, useBreadcrumbContext_unstable } from './BreadcrumbContext';\nexport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nexport {\n useBreadcrumb_unstable,\n useBreadcrumbBase_unstable,\n useBreadcrumbA11yBehavior_unstable,\n} from './useBreadcrumb';\nexport { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\n"],"names":["Breadcrumb","BreadcrumbProvider","breadcrumbDefaultValue","useBreadcrumbContext_unstable","renderBreadcrumb_unstable","useBreadcrumb_unstable","useBreadcrumbBase_unstable","useBreadcrumbA11yBehavior_unstable","breadcrumbClassNames","useBreadcrumbStyles_unstable"],"mappings":"AAAA,SAASA,UAAU,QAAQ,eAAe;AAS1C,SAASC,kBAAkB,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,sBAAsB;AAChH,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SACEC,sBAAsB,EACtBC,0BAA0B,EAC1BC,kCAAkC,QAC7B,kBAAkB;AACzB,SAASC,oBAAoB,EAAEC,4BAA4B,QAAQ,+BAA+B"}
@@ -11,12 +11,29 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
11
11
  * @param props - props from this instance of Breadcrumb
12
12
  * @param ref - reference to root HTMLElement of Breadcrumb
13
13
  */ export const useBreadcrumb_unstable = (props, ref)=>{
14
- const { focusMode = 'tab', size = 'medium', list, ...rest } = props;
15
- const focusAttributes = useArrowNavigationGroup({
16
- circular: true,
17
- axis: 'horizontal',
18
- memorizeCurrent: true
14
+ const { focusMode = 'tab', size = 'medium', ...breadcrumbProps } = props;
15
+ const state = useBreadcrumbBase_unstable(breadcrumbProps, ref);
16
+ const focusAttributes = useBreadcrumbA11yBehavior_unstable({
17
+ focusMode
19
18
  });
19
+ return {
20
+ ...state,
21
+ root: {
22
+ ...focusAttributes,
23
+ ...state.root
24
+ },
25
+ size
26
+ };
27
+ };
28
+ /**
29
+ * Base hook for Breadcrumb component, which manages state related to slots structure and ARIA attributes.
30
+ *
31
+ * Note: keyboard navigation behavior is not handled in this hook, but in useBreadcrumbA11yBehavior_unstable.
32
+ *
33
+ * @param props - props from this instance of Breadcrumb
34
+ * @param ref - reference to root HTMLElement of Breadcrumb
35
+ */ export const useBreadcrumbBase_unstable = (props, ref)=>{
36
+ const { focusMode = 'tab', list, ...rest } = props;
20
37
  var _props_arialabel;
21
38
  return {
22
39
  components: {
@@ -26,7 +43,6 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
26
43
  root: slot.always(getIntrinsicElementProps('nav', {
27
44
  ref,
28
45
  'aria-label': (_props_arialabel = props['aria-label']) !== null && _props_arialabel !== void 0 ? _props_arialabel : 'breadcrumb',
29
- ...focusMode === 'arrow' ? focusAttributes : {},
30
46
  ...rest
31
47
  }), {
32
48
  elementType: 'nav'
@@ -37,7 +53,20 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
37
53
  role: 'list'
38
54
  },
39
55
  elementType: 'ol'
40
- }),
41
- size
56
+ })
42
57
  };
43
58
  };
59
+ /**
60
+ * Hook to get accessibility attributes for Breadcrumb component, such as roving tab index.
61
+ * Based on Tabster's useArrowNavigationGroup.
62
+ *
63
+ * @param focusMode - whether the Breadcrumb uses arrow key navigation or tab key navigation
64
+ * @returns Tabster DOM attributes
65
+ */ export const useBreadcrumbA11yBehavior_unstable = ({ focusMode })=>{
66
+ const focusAttributes = useArrowNavigationGroup({
67
+ circular: true,
68
+ axis: 'horizontal',
69
+ memorizeCurrent: true
70
+ });
71
+ return focusMode === 'arrow' ? focusAttributes : {};
72
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Breadcrumb/useBreadcrumb.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbProps, BreadcrumbState } from './Breadcrumb.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n\n/**\n * Create the state required to render Breadcrumb.\n *\n * The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,\n * before being passed to renderBreadcrumb_unstable.\n *\n * @param props - props from this instance of Breadcrumb\n * @param ref - reference to root HTMLElement of Breadcrumb\n */\nexport const useBreadcrumb_unstable = (props: BreadcrumbProps, ref: React.Ref<HTMLElement>): BreadcrumbState => {\n const { focusMode = 'tab', size = 'medium', list, ...rest } = props;\n\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal',\n memorizeCurrent: true,\n });\n\n return {\n components: {\n root: 'nav',\n list: 'ol',\n },\n root: slot.always(\n getIntrinsicElementProps('nav', {\n ref,\n 'aria-label': props['aria-label'] ?? 'breadcrumb',\n ...(focusMode === 'arrow' ? focusAttributes : {}),\n ...rest,\n }),\n { elementType: 'nav' },\n ),\n list: slot.optional(list, { renderByDefault: true, defaultProps: { role: 'list' }, elementType: 'ol' }),\n size,\n };\n};\n"],"names":["React","getIntrinsicElementProps","slot","useArrowNavigationGroup","useBreadcrumb_unstable","props","ref","focusMode","size","list","rest","focusAttributes","circular","axis","memorizeCurrent","components","root","always","elementType","optional","renderByDefault","defaultProps","role"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,IAAI,QAAQ,4BAA4B;AAE3E,SAASC,uBAAuB,QAAQ,0BAA0B;AAElE;;;;;;;;CAQC,GACD,OAAO,MAAMC,yBAAyB,CAACC,OAAwBC;IAC7D,MAAM,EAAEC,YAAY,KAAK,EAAEC,OAAO,QAAQ,EAAEC,IAAI,EAAE,GAAGC,MAAM,GAAGL;IAE9D,MAAMM,kBAAkBR,wBAAwB;QAC9CS,UAAU;QACVC,MAAM;QACNC,iBAAiB;IACnB;QAUoBT;IARpB,OAAO;QACLU,YAAY;YACVC,MAAM;YACNP,MAAM;QACR;QACAO,MAAMd,KAAKe,MAAM,CACfhB,yBAAyB,OAAO;YAC9BK;YACA,cAAcD,CAAAA,mBAAAA,KAAK,CAAC,aAAa,cAAnBA,8BAAAA,mBAAuB;YACrC,GAAIE,cAAc,UAAUI,kBAAkB,CAAC,CAAC;YAChD,GAAGD,IAAI;QACT,IACA;YAAEQ,aAAa;QAAM;QAEvBT,MAAMP,KAAKiB,QAAQ,CAACV,MAAM;YAAEW,iBAAiB;YAAMC,cAAc;gBAAEC,MAAM;YAAO;YAAGJ,aAAa;QAAK;QACrGV;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/Breadcrumb/useBreadcrumb.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbBaseProps, BreadcrumbBaseState, BreadcrumbProps, BreadcrumbState } from './Breadcrumb.types';\nimport { TabsterDOMAttribute, useArrowNavigationGroup } from '@fluentui/react-tabster';\n\n/**\n * Create the state required to render Breadcrumb.\n *\n * The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,\n * before being passed to renderBreadcrumb_unstable.\n *\n * @param props - props from this instance of Breadcrumb\n * @param ref - reference to root HTMLElement of Breadcrumb\n */\nexport const useBreadcrumb_unstable = (props: BreadcrumbProps, ref: React.Ref<HTMLElement>): BreadcrumbState => {\n const { focusMode = 'tab', size = 'medium', ...breadcrumbProps } = props;\n const state = useBreadcrumbBase_unstable(breadcrumbProps, ref);\n const focusAttributes = useBreadcrumbA11yBehavior_unstable({ focusMode });\n\n return {\n ...state,\n root: {\n ...focusAttributes,\n ...state.root,\n },\n size,\n };\n};\n\n/**\n * Base hook for Breadcrumb component, which manages state related to slots structure and ARIA attributes.\n *\n * Note: keyboard navigation behavior is not handled in this hook, but in useBreadcrumbA11yBehavior_unstable.\n *\n * @param props - props from this instance of Breadcrumb\n * @param ref - reference to root HTMLElement of Breadcrumb\n */\nexport const useBreadcrumbBase_unstable = (\n props: BreadcrumbBaseProps,\n ref: React.Ref<HTMLElement>,\n): BreadcrumbBaseState => {\n const { focusMode = 'tab', list, ...rest } = props;\n\n return {\n components: {\n root: 'nav',\n list: 'ol',\n },\n root: slot.always(\n getIntrinsicElementProps('nav', {\n ref,\n 'aria-label': props['aria-label'] ?? 'breadcrumb',\n ...rest,\n }),\n { elementType: 'nav' },\n ),\n list: slot.optional(list, { renderByDefault: true, defaultProps: { role: 'list' }, elementType: 'ol' }),\n };\n};\n\n/**\n * Hook to get accessibility attributes for Breadcrumb component, such as roving tab index.\n * Based on Tabster's useArrowNavigationGroup.\n *\n * @param focusMode - whether the Breadcrumb uses arrow key navigation or tab key navigation\n * @returns Tabster DOM attributes\n */\nexport const useBreadcrumbA11yBehavior_unstable = ({\n focusMode,\n}: Pick<BreadcrumbBaseProps, 'focusMode'>): Partial<TabsterDOMAttribute> => {\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal',\n memorizeCurrent: true,\n });\n\n return focusMode === 'arrow' ? focusAttributes : {};\n};\n"],"names":["React","getIntrinsicElementProps","slot","useArrowNavigationGroup","useBreadcrumb_unstable","props","ref","focusMode","size","breadcrumbProps","state","useBreadcrumbBase_unstable","focusAttributes","useBreadcrumbA11yBehavior_unstable","root","list","rest","components","always","elementType","optional","renderByDefault","defaultProps","role","circular","axis","memorizeCurrent"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,IAAI,QAAQ,4BAA4B;AAE3E,SAA8BC,uBAAuB,QAAQ,0BAA0B;AAEvF;;;;;;;;CAQC,GACD,OAAO,MAAMC,yBAAyB,CAACC,OAAwBC;IAC7D,MAAM,EAAEC,YAAY,KAAK,EAAEC,OAAO,QAAQ,EAAE,GAAGC,iBAAiB,GAAGJ;IACnE,MAAMK,QAAQC,2BAA2BF,iBAAiBH;IAC1D,MAAMM,kBAAkBC,mCAAmC;QAAEN;IAAU;IAEvE,OAAO;QACL,GAAGG,KAAK;QACRI,MAAM;YACJ,GAAGF,eAAe;YAClB,GAAGF,MAAMI,IAAI;QACf;QACAN;IACF;AACF,EAAE;AAEF;;;;;;;CAOC,GACD,OAAO,MAAMG,6BAA6B,CACxCN,OACAC;IAEA,MAAM,EAAEC,YAAY,KAAK,EAAEQ,IAAI,EAAE,GAAGC,MAAM,GAAGX;QAUzBA;IARpB,OAAO;QACLY,YAAY;YACVH,MAAM;YACNC,MAAM;QACR;QACAD,MAAMZ,KAAKgB,MAAM,CACfjB,yBAAyB,OAAO;YAC9BK;YACA,cAAcD,CAAAA,mBAAAA,KAAK,CAAC,aAAa,cAAnBA,8BAAAA,mBAAuB;YACrC,GAAGW,IAAI;QACT,IACA;YAAEG,aAAa;QAAM;QAEvBJ,MAAMb,KAAKkB,QAAQ,CAACL,MAAM;YAAEM,iBAAiB;YAAMC,cAAc;gBAAEC,MAAM;YAAO;YAAGJ,aAAa;QAAK;IACvG;AACF,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAMN,qCAAqC,CAAC,EACjDN,SAAS,EAC8B;IACvC,MAAMK,kBAAkBT,wBAAwB;QAC9CqB,UAAU;QACVC,MAAM;QACNC,iBAAiB;IACnB;IAEA,OAAOnB,cAAc,UAAUK,kBAAkB,CAAC;AACpD,EAAE"}
@@ -1,3 +1 @@
1
- /**
2
- * State used in rendering BreadcrumbButton
3
- */ export { };
1
+ export { };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbButton/BreadcrumbButton.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState } from '@fluentui/react-utilities';\nimport { ButtonProps, ButtonSlots, ButtonState } from '@fluentui/react-button';\nimport { BreadcrumbProps } from '../Breadcrumb/Breadcrumb.types';\n\nexport type BreadcrumbButtonSlots = ButtonSlots;\n\n/**\n * BreadcrumbButton Props\n */\nexport type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> &\n Pick<BreadcrumbProps, 'size'> &\n Pick<ButtonProps, 'disabled' | 'disabledFocusable'> & {\n /**\n * Defines current sate of BreadcrumbButton.\n *\n * @default false\n */\n current?: boolean;\n };\n\n/**\n * State used in rendering BreadcrumbButton\n */\nexport type BreadcrumbButtonState = ComponentState<BreadcrumbButtonSlots> &\n Omit<ButtonState, keyof ButtonSlots | 'components'> &\n Required<Pick<BreadcrumbButtonProps, 'current' | 'size'>>;\n"],"names":[],"mappings":"AAoBA;;CAEC,GACD,WAE4D"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbButton/BreadcrumbButton.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState } from '@fluentui/react-utilities';\nimport { ButtonProps, ButtonSlots, ButtonState } from '@fluentui/react-button';\nimport { BreadcrumbProps } from '../Breadcrumb/Breadcrumb.types';\n\nexport type BreadcrumbButtonSlots = ButtonSlots;\n\n/**\n * BreadcrumbButton Props\n */\nexport type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> &\n Pick<BreadcrumbProps, 'size'> &\n Pick<ButtonProps, 'disabled' | 'disabledFocusable'> & {\n /**\n * Defines current sate of BreadcrumbButton.\n *\n * @default false\n */\n current?: boolean;\n };\n\n/**\n * State used in rendering BreadcrumbButton\n */\nexport type BreadcrumbButtonState = ComponentState<BreadcrumbButtonSlots> &\n Omit<ButtonState, keyof ButtonSlots | 'components'> &\n Required<Pick<BreadcrumbButtonProps, 'current' | 'size'>>;\n\nexport type BreadcrumbButtonBaseProps = Omit<BreadcrumbButtonProps, 'size'>;\n\nexport type BreadcrumbButtonBaseState = Omit<BreadcrumbButtonState, 'size'>;\n"],"names":[],"mappings":"AA6BA,WAA4E"}
@@ -1,4 +1,4 @@
1
1
  export { BreadcrumbButton } from './BreadcrumbButton';
2
2
  export { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';
3
- export { useBreadcrumbButton_unstable } from './useBreadcrumbButton';
3
+ export { useBreadcrumbButton_unstable, useBreadcrumbButtonBase_unstable } from './useBreadcrumbButton';
4
4
  export { breadcrumbButtonClassNames, useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbButton/index.ts"],"sourcesContent":["export { BreadcrumbButton } from './BreadcrumbButton';\nexport type { BreadcrumbButtonProps, BreadcrumbButtonSlots, BreadcrumbButtonState } from './BreadcrumbButton.types';\nexport { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';\nexport { useBreadcrumbButton_unstable } from './useBreadcrumbButton';\nexport { breadcrumbButtonClassNames, useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';\n"],"names":["BreadcrumbButton","renderBreadcrumbButton_unstable","useBreadcrumbButton_unstable","breadcrumbButtonClassNames","useBreadcrumbButtonStyles_unstable"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,qBAAqB;AAEtD,SAASC,+BAA+B,QAAQ,2BAA2B;AAC3E,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,0BAA0B,EAAEC,kCAAkC,QAAQ,qCAAqC"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbButton/index.ts"],"sourcesContent":["export { BreadcrumbButton } from './BreadcrumbButton';\nexport type {\n BreadcrumbButtonBaseProps,\n BreadcrumbButtonBaseState,\n BreadcrumbButtonProps,\n BreadcrumbButtonSlots,\n BreadcrumbButtonState,\n} from './BreadcrumbButton.types';\nexport { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';\nexport { useBreadcrumbButton_unstable, useBreadcrumbButtonBase_unstable } from './useBreadcrumbButton';\nexport { breadcrumbButtonClassNames, useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';\n"],"names":["BreadcrumbButton","renderBreadcrumbButton_unstable","useBreadcrumbButton_unstable","useBreadcrumbButtonBase_unstable","breadcrumbButtonClassNames","useBreadcrumbButtonStyles_unstable"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,qBAAqB;AAQtD,SAASC,+BAA+B,QAAQ,2BAA2B;AAC3E,SAASC,4BAA4B,EAAEC,gCAAgC,QAAQ,wBAAwB;AACvG,SAASC,0BAA0B,EAAEC,kCAAkC,QAAQ,qCAAqC"}
@@ -12,21 +12,33 @@ import { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';
12
12
  * @param ref - reference to root HTMLElement of BreadcrumbButton
13
13
  */ export const useBreadcrumbButton_unstable = (props, ref)=>{
14
14
  const { size } = useBreadcrumbContext_unstable();
15
+ const state = useBreadcrumbButtonBase_unstable(props, ref);
16
+ return {
17
+ ...state,
18
+ size
19
+ };
20
+ };
21
+ /**
22
+ * Base hook for BreadcrumbButton component, which manages state related to button behavior,
23
+ * ARIA attributes (aria-current, aria-disabled), and slot structure without design props.
24
+ *
25
+ * @param props - props from this instance of BreadcrumbButton
26
+ * @param ref - reference to root HTMLElement of BreadcrumbButton
27
+ */ export const useBreadcrumbButtonBase_unstable = (props, ref)=>{
15
28
  const { current = false, as, ...rest } = props;
16
29
  const controlType = (as !== null && as !== void 0 ? as : props.href) ? 'a' : 'button';
17
30
  var _props_ariacurrent, _props_ariadisabled;
31
+ const { size: _size, ...buttonState } = useButton_unstable({
32
+ role: undefined,
33
+ type: undefined,
34
+ as: controlType,
35
+ iconPosition: 'before',
36
+ 'aria-current': current ? (_props_ariacurrent = props['aria-current']) !== null && _props_ariacurrent !== void 0 ? _props_ariacurrent : 'page' : undefined,
37
+ 'aria-disabled': current ? (_props_ariadisabled = props['aria-disabled']) !== null && _props_ariadisabled !== void 0 ? _props_ariadisabled : true : undefined,
38
+ ...rest
39
+ }, ref);
18
40
  return {
19
- ...useButton_unstable({
20
- appearance: 'subtle',
21
- role: undefined,
22
- type: undefined,
23
- as: controlType,
24
- iconPosition: 'before',
25
- 'aria-current': current ? (_props_ariacurrent = props['aria-current']) !== null && _props_ariacurrent !== void 0 ? _props_ariacurrent : 'page' : undefined,
26
- 'aria-disabled': current ? (_props_ariadisabled = props['aria-disabled']) !== null && _props_ariadisabled !== void 0 ? _props_ariadisabled : true : undefined,
27
- ...rest
28
- }, ref),
29
- current,
30
- size
41
+ ...buttonState,
42
+ current
31
43
  };
32
44
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbButton/useBreadcrumbButton.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ARIAButtonProps } from '@fluentui/react-aria';\nimport { useButton_unstable } from '@fluentui/react-button';\nimport type { ButtonProps } from '@fluentui/react-button';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\nimport type { BreadcrumbButtonProps, BreadcrumbButtonState } from './BreadcrumbButton.types';\n\n/**\n * Create the state required to render BreadcrumbButton.\n *\n * The returned state can be modified with hooks such as useBreadcrumbButtonStyles_unstable,\n * before being passed to renderBreadcrumbButton_unstable.\n *\n * @param props - props from this instance of BreadcrumbButton\n * @param ref - reference to root HTMLElement of BreadcrumbButton\n */\nexport const useBreadcrumbButton_unstable = (\n props: BreadcrumbButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>,\n): BreadcrumbButtonState => {\n const { size } = useBreadcrumbContext_unstable();\n const { current = false, as, ...rest } = props;\n\n const controlType = as ?? (props as ARIAButtonProps<'a'>).href ? 'a' : 'button';\n\n return {\n ...useButton_unstable(\n {\n appearance: 'subtle',\n role: undefined,\n type: undefined,\n as: controlType,\n iconPosition: 'before',\n 'aria-current': current ? props['aria-current'] ?? 'page' : undefined,\n 'aria-disabled': current ? props['aria-disabled'] ?? true : undefined,\n ...rest,\n } as ButtonProps,\n ref,\n ),\n current,\n size,\n };\n};\n"],"names":["React","useButton_unstable","useBreadcrumbContext_unstable","useBreadcrumbButton_unstable","props","ref","size","current","as","rest","controlType","href","appearance","role","undefined","type","iconPosition"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,SAASC,6BAA6B,QAAQ,kCAAkC;AAGhF;;;;;;;;CAQC,GACD,OAAO,MAAMC,+BAA+B,CAC1CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGJ;IACjB,MAAM,EAAEK,UAAU,KAAK,EAAEC,EAAE,EAAE,GAAGC,MAAM,GAAGL;IAEzC,MAAMM,cAAcF,CAAAA,eAAAA,gBAAAA,KAAM,AAACJ,MAA+BO,IAAI,AAAD,IAAI,MAAM;QAUvCP,oBACCA;IATjC,OAAO;QACL,GAAGH,mBACD;YACEW,YAAY;YACZC,MAAMC;YACNC,MAAMD;YACNN,IAAIE;YACJM,cAAc;YACd,gBAAgBT,UAAUH,CAAAA,qBAAAA,KAAK,CAAC,eAAe,cAArBA,gCAAAA,qBAAyB,SAASU;YAC5D,iBAAiBP,UAAUH,CAAAA,sBAAAA,KAAK,CAAC,gBAAgB,cAAtBA,iCAAAA,sBAA0B,OAAOU;YAC5D,GAAGL,IAAI;QACT,GACAJ,IACD;QACDE;QACAD;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbButton/useBreadcrumbButton.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ARIAButtonProps } from '@fluentui/react-aria';\nimport { useButton_unstable } from '@fluentui/react-button';\nimport type { ButtonProps } from '@fluentui/react-button';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\nimport type {\n BreadcrumbButtonBaseProps,\n BreadcrumbButtonBaseState,\n BreadcrumbButtonProps,\n BreadcrumbButtonState,\n} from './BreadcrumbButton.types';\n\n/**\n * Create the state required to render BreadcrumbButton.\n *\n * The returned state can be modified with hooks such as useBreadcrumbButtonStyles_unstable,\n * before being passed to renderBreadcrumbButton_unstable.\n *\n * @param props - props from this instance of BreadcrumbButton\n * @param ref - reference to root HTMLElement of BreadcrumbButton\n */\nexport const useBreadcrumbButton_unstable = (\n props: BreadcrumbButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>,\n): BreadcrumbButtonState => {\n const { size } = useBreadcrumbContext_unstable();\n const state = useBreadcrumbButtonBase_unstable(props, ref);\n\n return {\n ...state,\n size,\n };\n};\n\n/**\n * Base hook for BreadcrumbButton component, which manages state related to button behavior,\n * ARIA attributes (aria-current, aria-disabled), and slot structure without design props.\n *\n * @param props - props from this instance of BreadcrumbButton\n * @param ref - reference to root HTMLElement of BreadcrumbButton\n */\nexport const useBreadcrumbButtonBase_unstable = (\n props: BreadcrumbButtonBaseProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>,\n): BreadcrumbButtonBaseState => {\n const { current = false, as, ...rest } = props;\n\n const controlType = as ?? (props as ARIAButtonProps<'a'>).href ? 'a' : 'button';\n\n const { size: _size, ...buttonState } = useButton_unstable(\n {\n role: undefined,\n type: undefined,\n as: controlType,\n iconPosition: 'before',\n 'aria-current': current ? props['aria-current'] ?? 'page' : undefined,\n 'aria-disabled': current ? props['aria-disabled'] ?? true : undefined,\n ...rest,\n } as ButtonProps,\n ref,\n );\n\n return {\n ...buttonState,\n current,\n };\n};\n"],"names":["React","useButton_unstable","useBreadcrumbContext_unstable","useBreadcrumbButton_unstable","props","ref","size","state","useBreadcrumbButtonBase_unstable","current","as","rest","controlType","href","_size","buttonState","role","undefined","type","iconPosition"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,SAASC,6BAA6B,QAAQ,kCAAkC;AAQhF;;;;;;;;CAQC,GACD,OAAO,MAAMC,+BAA+B,CAC1CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGJ;IACjB,MAAMK,QAAQC,iCAAiCJ,OAAOC;IAEtD,OAAO;QACL,GAAGE,KAAK;QACRD;IACF;AACF,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAME,mCAAmC,CAC9CJ,OACAC;IAEA,MAAM,EAAEI,UAAU,KAAK,EAAEC,EAAE,EAAE,GAAGC,MAAM,GAAGP;IAEzC,MAAMQ,cAAcF,CAAAA,eAAAA,gBAAAA,KAAM,AAACN,MAA+BS,IAAI,AAAD,IAAI,MAAM;QAQzCT,oBACCA;IAP/B,MAAM,EAAEE,MAAMQ,KAAK,EAAE,GAAGC,aAAa,GAAGd,mBACtC;QACEe,MAAMC;QACNC,MAAMD;QACNP,IAAIE;QACJO,cAAc;QACd,gBAAgBV,UAAUL,CAAAA,qBAAAA,KAAK,CAAC,eAAe,cAArBA,gCAAAA,qBAAyB,SAASa;QAC5D,iBAAiBR,UAAUL,CAAAA,sBAAAA,KAAK,CAAC,gBAAgB,cAAtBA,iCAAAA,sBAA0B,OAAOa;QAC5D,GAAGN,IAAI;IACT,GACAN;IAGF,OAAO;QACL,GAAGU,WAAW;QACdN;IACF;AACF,EAAE"}
@@ -1,3 +1,3 @@
1
1
  /**
2
- * State used in rendering BreadcrumbDivider
2
+ * BreadcrumbDivider base state (excludes size, which is a design prop injected from context)
3
3
  */ export { };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbDivider/BreadcrumbDivider.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbProps } from '../Breadcrumb/Breadcrumb.types';\n\nexport type BreadcrumbDividerSlots = {\n root: Slot<'li'>;\n};\n\n/**\n * BreadcrumbDivider Props\n */\nexport type BreadcrumbDividerProps = ComponentProps<BreadcrumbDividerSlots> & {};\n\n/**\n * State used in rendering BreadcrumbDivider\n */\nexport type BreadcrumbDividerState = ComponentState<BreadcrumbDividerSlots> & Pick<BreadcrumbProps, 'size'>;\n"],"names":[],"mappings":"AAYA;;CAEC,GACD,WAA4G"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbDivider/BreadcrumbDivider.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbProps } from '../Breadcrumb/Breadcrumb.types';\n\nexport type BreadcrumbDividerSlots = {\n root: Slot<'li'>;\n};\n\n/**\n * BreadcrumbDivider Props\n */\nexport type BreadcrumbDividerProps = ComponentProps<BreadcrumbDividerSlots> & {};\n\n/**\n * State used in rendering BreadcrumbDivider\n */\nexport type BreadcrumbDividerState = ComponentState<BreadcrumbDividerSlots> & Pick<BreadcrumbProps, 'size'>;\n\n/**\n * BreadcrumbDivider base props (same as BreadcrumbDividerProps since BreadcrumbDivider has no design props of its own)\n */\nexport type BreadcrumbDividerBaseProps = BreadcrumbDividerProps;\n\n/**\n * BreadcrumbDivider base state (excludes size, which is a design prop injected from context)\n */\nexport type BreadcrumbDividerBaseState = Omit<BreadcrumbDividerState, 'size'>;\n"],"names":[],"mappings":"AAsBA;;CAEC,GACD,WAA8E"}
@@ -1,4 +1,4 @@
1
1
  export { BreadcrumbDivider } from './BreadcrumbDivider';
2
2
  export { renderBreadcrumbDivider_unstable } from './renderBreadcrumbDivider';
3
- export { useBreadcrumbDivider_unstable } from './useBreadcrumbDivider';
3
+ export { useBreadcrumbDivider_unstable, useBreadcrumbDividerBase_unstable } from './useBreadcrumbDivider';
4
4
  export { breadcrumbDividerClassNames, useBreadcrumbDividerStyles_unstable } from './useBreadcrumbDividerStyles.styles';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbDivider/index.ts"],"sourcesContent":["export { BreadcrumbDivider } from './BreadcrumbDivider';\nexport type { BreadcrumbDividerProps, BreadcrumbDividerSlots, BreadcrumbDividerState } from './BreadcrumbDivider.types';\nexport { renderBreadcrumbDivider_unstable } from './renderBreadcrumbDivider';\nexport { useBreadcrumbDivider_unstable } from './useBreadcrumbDivider';\nexport { breadcrumbDividerClassNames, useBreadcrumbDividerStyles_unstable } from './useBreadcrumbDividerStyles.styles';\n"],"names":["BreadcrumbDivider","renderBreadcrumbDivider_unstable","useBreadcrumbDivider_unstable","breadcrumbDividerClassNames","useBreadcrumbDividerStyles_unstable"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,sBAAsB;AAExD,SAASC,gCAAgC,QAAQ,4BAA4B;AAC7E,SAASC,6BAA6B,QAAQ,yBAAyB;AACvE,SAASC,2BAA2B,EAAEC,mCAAmC,QAAQ,sCAAsC"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbDivider/index.ts"],"sourcesContent":["export { BreadcrumbDivider } from './BreadcrumbDivider';\nexport type {\n BreadcrumbDividerBaseProps,\n BreadcrumbDividerBaseState,\n BreadcrumbDividerProps,\n BreadcrumbDividerSlots,\n BreadcrumbDividerState,\n} from './BreadcrumbDivider.types';\nexport { renderBreadcrumbDivider_unstable } from './renderBreadcrumbDivider';\nexport { useBreadcrumbDivider_unstable, useBreadcrumbDividerBase_unstable } from './useBreadcrumbDivider';\nexport { breadcrumbDividerClassNames, useBreadcrumbDividerStyles_unstable } from './useBreadcrumbDividerStyles.styles';\n"],"names":["BreadcrumbDivider","renderBreadcrumbDivider_unstable","useBreadcrumbDivider_unstable","useBreadcrumbDividerBase_unstable","breadcrumbDividerClassNames","useBreadcrumbDividerStyles_unstable"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,sBAAsB;AAQxD,SAASC,gCAAgC,QAAQ,4BAA4B;AAC7E,SAASC,6BAA6B,EAAEC,iCAAiC,QAAQ,yBAAyB;AAC1G,SAASC,2BAA2B,EAAEC,mCAAmC,QAAQ,sCAAsC"}
@@ -14,8 +14,24 @@ import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts
14
14
  * @param ref - reference to root HTMLElement of BreadcrumbDivider
15
15
  */ export const useBreadcrumbDivider_unstable = (props, ref)=>{
16
16
  const { size } = useBreadcrumbContext_unstable();
17
+ const state = useBreadcrumbDividerBase_unstable(props, ref);
17
18
  const { dir } = useFluent();
18
- const icon = getDividerIcon(dir);
19
+ return {
20
+ ...state,
21
+ root: {
22
+ ...state.root,
23
+ children: getDividerIcon(dir)
24
+ },
25
+ size
26
+ };
27
+ };
28
+ /**
29
+ * Base hook for BreadcrumbDivider component, which manages state related to slots structure and ARIA attributes
30
+ * without design props. Note: size is provided via BreadcrumbContext in the full hook.
31
+ *
32
+ * @param props - props from this instance of BreadcrumbDivider
33
+ * @param ref - reference to root HTMLElement of BreadcrumbDivider
34
+ */ export const useBreadcrumbDividerBase_unstable = (props, ref)=>{
19
35
  return {
20
36
  components: {
21
37
  root: 'li'
@@ -23,12 +39,10 @@ import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts
23
39
  root: slot.always(getIntrinsicElementProps('li', {
24
40
  ref,
25
41
  'aria-hidden': true,
26
- children: icon,
27
42
  ...props
28
43
  }), {
29
44
  elementType: 'li'
30
- }),
31
- size
45
+ })
32
46
  };
33
47
  };
34
48
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbDivider/useBreadcrumbDivider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbDividerProps, BreadcrumbDividerState } from './BreadcrumbDivider.types';\nimport { ChevronRightRegular, ChevronLeftRegular } from '@fluentui/react-icons';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Create the state required to render BreadcrumbDivider.\n *\n * The returned state can be modified with hooks such as useBreadcrumbDividerStyles_unstable,\n * before being passed to renderBreadcrumbDivider_unstable.\n *\n * @param props - props from this instance of BreadcrumbDivider\n * @param ref - reference to root HTMLElement of BreadcrumbDivider\n */\nexport const useBreadcrumbDivider_unstable = (\n props: BreadcrumbDividerProps,\n ref: React.Ref<HTMLLIElement>,\n): BreadcrumbDividerState => {\n const { size } = useBreadcrumbContext_unstable();\n const { dir } = useFluent();\n const icon = getDividerIcon(dir);\n\n return {\n components: {\n root: 'li',\n },\n root: slot.always(\n getIntrinsicElementProps('li', {\n ref,\n 'aria-hidden': true,\n children: icon,\n ...props,\n }),\n { elementType: 'li' },\n ),\n size,\n };\n};\n\n/**\n * Get icon of the divider\n *\n * @param dir - RTL or LTR\n */\nfunction getDividerIcon(dir: string) {\n return dir === 'rtl' ? <ChevronLeftRegular /> : <ChevronRightRegular />;\n}\n"],"names":["React","getIntrinsicElementProps","slot","ChevronRightRegular","ChevronLeftRegular","useBreadcrumbContext_unstable","useFluent_unstable","useFluent","useBreadcrumbDivider_unstable","props","ref","size","dir","icon","getDividerIcon","components","root","always","children","elementType"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,IAAI,QAAQ,4BAA4B;AAE3E,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,wBAAwB;AAChF,SAASC,6BAA6B,QAAQ,kCAAkC;AAChF,SAASC,sBAAsBC,SAAS,QAAQ,kCAAkC;AAElF;;;;;;;;CAQC,GACD,OAAO,MAAMC,gCAAgC,CAC3CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGN;IACjB,MAAM,EAAEO,GAAG,EAAE,GAAGL;IAChB,MAAMM,OAAOC,eAAeF;IAE5B,OAAO;QACLG,YAAY;YACVC,MAAM;QACR;QACAA,MAAMd,KAAKe,MAAM,CACfhB,yBAAyB,MAAM;YAC7BS;YACA,eAAe;YACfQ,UAAUL;YACV,GAAGJ,KAAK;QACV,IACA;YAAEU,aAAa;QAAK;QAEtBR;IACF;AACF,EAAE;AAEF;;;;CAIC,GACD,SAASG,eAAeF,GAAW;IACjC,OAAOA,QAAQ,sBAAQ,oBAACR,0CAAwB,oBAACD;AACnD"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbDivider/useBreadcrumbDivider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type {\n BreadcrumbDividerBaseProps,\n BreadcrumbDividerBaseState,\n BreadcrumbDividerProps,\n BreadcrumbDividerState,\n} from './BreadcrumbDivider.types';\nimport { ChevronRightRegular, ChevronLeftRegular } from '@fluentui/react-icons';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Create the state required to render BreadcrumbDivider.\n *\n * The returned state can be modified with hooks such as useBreadcrumbDividerStyles_unstable,\n * before being passed to renderBreadcrumbDivider_unstable.\n *\n * @param props - props from this instance of BreadcrumbDivider\n * @param ref - reference to root HTMLElement of BreadcrumbDivider\n */\nexport const useBreadcrumbDivider_unstable = (\n props: BreadcrumbDividerProps,\n ref: React.Ref<HTMLLIElement>,\n): BreadcrumbDividerState => {\n const { size } = useBreadcrumbContext_unstable();\n const state = useBreadcrumbDividerBase_unstable(props, ref);\n const { dir } = useFluent();\n\n return {\n ...state,\n root: {\n ...state.root,\n children: getDividerIcon(dir),\n },\n size,\n };\n};\n\n/**\n * Base hook for BreadcrumbDivider component, which manages state related to slots structure and ARIA attributes\n * without design props. Note: size is provided via BreadcrumbContext in the full hook.\n *\n * @param props - props from this instance of BreadcrumbDivider\n * @param ref - reference to root HTMLElement of BreadcrumbDivider\n */\nexport const useBreadcrumbDividerBase_unstable = (\n props: BreadcrumbDividerBaseProps,\n ref: React.Ref<HTMLLIElement>,\n): BreadcrumbDividerBaseState => {\n return {\n components: {\n root: 'li',\n },\n root: slot.always(\n getIntrinsicElementProps('li', {\n ref,\n 'aria-hidden': true,\n ...props,\n }),\n { elementType: 'li' },\n ),\n };\n};\n\n/**\n * Get icon of the divider\n *\n * @param dir - RTL or LTR\n */\nfunction getDividerIcon(dir: string) {\n return dir === 'rtl' ? <ChevronLeftRegular /> : <ChevronRightRegular />;\n}\n"],"names":["React","getIntrinsicElementProps","slot","ChevronRightRegular","ChevronLeftRegular","useBreadcrumbContext_unstable","useFluent_unstable","useFluent","useBreadcrumbDivider_unstable","props","ref","size","state","useBreadcrumbDividerBase_unstable","dir","root","children","getDividerIcon","components","always","elementType"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,IAAI,QAAQ,4BAA4B;AAO3E,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,wBAAwB;AAChF,SAASC,6BAA6B,QAAQ,kCAAkC;AAChF,SAASC,sBAAsBC,SAAS,QAAQ,kCAAkC;AAElF;;;;;;;;CAQC,GACD,OAAO,MAAMC,gCAAgC,CAC3CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGN;IACjB,MAAMO,QAAQC,kCAAkCJ,OAAOC;IACvD,MAAM,EAAEI,GAAG,EAAE,GAAGP;IAEhB,OAAO;QACL,GAAGK,KAAK;QACRG,MAAM;YACJ,GAAGH,MAAMG,IAAI;YACbC,UAAUC,eAAeH;QAC3B;QACAH;IACF;AACF,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAME,oCAAoC,CAC/CJ,OACAC;IAEA,OAAO;QACLQ,YAAY;YACVH,MAAM;QACR;QACAA,MAAMb,KAAKiB,MAAM,CACflB,yBAAyB,MAAM;YAC7BS;YACA,eAAe;YACf,GAAGD,KAAK;QACV,IACA;YAAEW,aAAa;QAAK;IAExB;AACF,EAAE;AAEF;;;;CAIC,GACD,SAASH,eAAeH,GAAW;IACjC,OAAOA,QAAQ,sBAAQ,oBAACV,0CAAwB,oBAACD;AACnD"}
@@ -1,3 +1,3 @@
1
1
  /**
2
- * State used in rendering BreadcrumbItem
2
+ * BreadcrumbItem base state (excludes size, which is a design prop injected from context)
3
3
  */ export { };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbItem/BreadcrumbItem.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbProps } from '../Breadcrumb';\n\nexport type BreadcrumbItemSlots = {\n root: Slot<'li'>;\n};\n\n/**\n * BreadcrumbItem Props\n */\nexport type BreadcrumbItemProps = ComponentProps<BreadcrumbItemSlots> & Pick<BreadcrumbProps, 'size'>;\n\n/**\n * State used in rendering BreadcrumbItem\n */\nexport type BreadcrumbItemState = ComponentState<BreadcrumbItemSlots> & Required<Pick<BreadcrumbItemProps, 'size'>>;\n"],"names":[],"mappings":"AAYA;;CAEC,GACD,WAAoH"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbItem/BreadcrumbItem.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbProps } from '../Breadcrumb';\n\nexport type BreadcrumbItemSlots = {\n root: Slot<'li'>;\n};\n\n/**\n * BreadcrumbItem Props\n */\nexport type BreadcrumbItemProps = ComponentProps<BreadcrumbItemSlots> & Pick<BreadcrumbProps, 'size'>;\n\n/**\n * State used in rendering BreadcrumbItem\n */\nexport type BreadcrumbItemState = ComponentState<BreadcrumbItemSlots> & Required<Pick<BreadcrumbItemProps, 'size'>>;\n\n/**\n * BreadcrumbItem base props (same as BreadcrumbItemProps since size is passed through context, not as a design prop)\n */\nexport type BreadcrumbItemBaseProps = Omit<BreadcrumbItemProps, 'size'>;\n\n/**\n * BreadcrumbItem base state (excludes size, which is a design prop injected from context)\n */\nexport type BreadcrumbItemBaseState = Omit<BreadcrumbItemState, 'size'>;\n"],"names":[],"mappings":"AAsBA;;CAEC,GACD,WAAwE"}
@@ -1,4 +1,4 @@
1
1
  export { BreadcrumbItem } from './BreadcrumbItem';
2
2
  export { renderBreadcrumbItem_unstable } from './renderBreadcrumbItem';
3
- export { useBreadcrumbItem_unstable } from './useBreadcrumbItem';
3
+ export { useBreadcrumbItem_unstable, useBreadcrumbItemBase_unstable } from './useBreadcrumbItem';
4
4
  export { breadcrumbItemClassNames, useBreadcrumbItemStyles_unstable } from './useBreadcrumbItemStyles.styles';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BreadcrumbItem/index.ts"],"sourcesContent":["export { BreadcrumbItem } from './BreadcrumbItem';\nexport type { BreadcrumbItemProps, BreadcrumbItemSlots, BreadcrumbItemState } from './BreadcrumbItem.types';\nexport { renderBreadcrumbItem_unstable } from './renderBreadcrumbItem';\nexport { useBreadcrumbItem_unstable } from './useBreadcrumbItem';\nexport { breadcrumbItemClassNames, useBreadcrumbItemStyles_unstable } from './useBreadcrumbItemStyles.styles';\n"],"names":["BreadcrumbItem","renderBreadcrumbItem_unstable","useBreadcrumbItem_unstable","breadcrumbItemClassNames","useBreadcrumbItemStyles_unstable"],"mappings":"AAAA,SAASA,cAAc,QAAQ,mBAAmB;AAElD,SAASC,6BAA6B,QAAQ,yBAAyB;AACvE,SAASC,0BAA0B,QAAQ,sBAAsB;AACjE,SAASC,wBAAwB,EAAEC,gCAAgC,QAAQ,mCAAmC"}
1
+ {"version":3,"sources":["../src/components/BreadcrumbItem/index.ts"],"sourcesContent":["export { BreadcrumbItem } from './BreadcrumbItem';\nexport type {\n BreadcrumbItemBaseProps,\n BreadcrumbItemBaseState,\n BreadcrumbItemProps,\n BreadcrumbItemSlots,\n BreadcrumbItemState,\n} from './BreadcrumbItem.types';\nexport { renderBreadcrumbItem_unstable } from './renderBreadcrumbItem';\nexport { useBreadcrumbItem_unstable, useBreadcrumbItemBase_unstable } from './useBreadcrumbItem';\nexport { breadcrumbItemClassNames, useBreadcrumbItemStyles_unstable } from './useBreadcrumbItemStyles.styles';\n"],"names":["BreadcrumbItem","renderBreadcrumbItem_unstable","useBreadcrumbItem_unstable","useBreadcrumbItemBase_unstable","breadcrumbItemClassNames","useBreadcrumbItemStyles_unstable"],"mappings":"AAAA,SAASA,cAAc,QAAQ,mBAAmB;AAQlD,SAASC,6BAA6B,QAAQ,yBAAyB;AACvE,SAASC,0BAA0B,EAAEC,8BAA8B,QAAQ,sBAAsB;AACjG,SAASC,wBAAwB,EAAEC,gCAAgC,QAAQ,mCAAmC"}
@@ -12,6 +12,19 @@ import { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';
12
12
  * @param ref - reference to root HTMLElement of BreadcrumbItem
13
13
  */ export const useBreadcrumbItem_unstable = (props, ref)=>{
14
14
  const { size } = useBreadcrumbContext_unstable();
15
+ const state = useBreadcrumbItemBase_unstable(props, ref);
16
+ return {
17
+ ...state,
18
+ size
19
+ };
20
+ };
21
+ /**
22
+ * Base hook for BreadcrumbItem component, which manages state related to slots structure
23
+ * without design props. Note: size is provided via BreadcrumbContext in the full hook.
24
+ *
25
+ * @param props - props from this instance of BreadcrumbItem
26
+ * @param ref - reference to root HTMLElement of BreadcrumbItem
27
+ */ export const useBreadcrumbItemBase_unstable = (props, ref)=>{
15
28
  return {
16
29
  components: {
17
30
  root: 'li'
@@ -21,7 +34,6 @@ import { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';
21
34
  ...props
22
35
  }), {
23
36
  elementType: 'li'
24
- }),
25
- size
37
+ })
26
38
  };
27
39
  };