Private
Public Access
1
0

feat: Fluent UI Outlook Lite + connections mockup

This commit is contained in:
2026-04-14 18:52:25 +00:00
parent 1199eff6c3
commit dfa4010406
34820 changed files with 1003813 additions and 205 deletions

1590
node_modules/@fluentui/react-breadcrumb/CHANGELOG.md generated vendored Normal file

File diff suppressed because it is too large Load Diff

15
node_modules/@fluentui/react-breadcrumb/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,15 @@
@fluentui/react-breadcrumb
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Note: Usage of the fonts and icons referenced in Fluent UI React is subject to the terms listed at https://aka.ms/fluentui-assets-license

43
node_modules/@fluentui/react-breadcrumb/README.md generated vendored Normal file
View File

@@ -0,0 +1,43 @@
# @fluentui/react-breadcrumb
**React Breadcrumb components for [Fluent UI React](https://react.fluentui.dev/)**
Breadcrumbs should be used as a navigational aid in your app or site. They indicate the current page's location within a hierarchy and help the user understand where they are in relation to the rest of that hierarchy.
## Usage
To import React Breadcrumb components:
```tsx
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbButton,
BreadcrumbDivider,
BreadcrumbProps
} from "@fluentui/react-components';
```
Simple example of Breadcrumb Usage:
```tsx
import { Breadcrumb, BreadcrumbItem, BreadcrumbDivider } from '@fluentui/react-breadcrumb';
export const App = () => (
<Breadcrumb aria-label="breadcrumb">
<BreadcrumbItem>Item 1</BreadcrumbItem>
<BreadcrumbDivider />
<BreadcrumbItem>Item 2</BreadcrumbItem>
<BreadcrumbDivider />
<BreadcrumbItem current={true}>Item 3</BreadcrumbItem>
</Breadcrumb>
);
```
## Specification
See the [Spec.md](./docs/Spec.md) file for background information on the design/engineering decisions of the component.
## API
For information about the components, please refer to the [API documentation](https://react.fluentui.dev/?path=/docs/components-breadcrumb--default).

333
node_modules/@fluentui/react-breadcrumb/dist/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,333 @@
import { ButtonProps } from '@fluentui/react-button';
import { ButtonSlots } from '@fluentui/react-button';
import { ButtonState } from '@fluentui/react-button';
import type { ComponentProps } from '@fluentui/react-utilities';
import type { ComponentState } from '@fluentui/react-utilities';
import type { ForwardRefComponent } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';
import * as React_2 from 'react';
import type { Slot } from '@fluentui/react-utilities';
import type { SlotClassNames } from '@fluentui/react-utilities';
import { TabsterDOMAttribute } from '@fluentui/react-tabster';
/**
* Breadcrumb component - TODO: add more docs
*/
export declare const Breadcrumb: ForwardRefComponent<BreadcrumbProps>;
export declare type BreadcrumbBaseProps = Omit<BreadcrumbProps, 'size'>;
export declare type BreadcrumbBaseState = Omit<BreadcrumbState, 'size'>;
/**
* A button component which is used inside the Breadcrumb.
*/
export declare const BreadcrumbButton: ForwardRefComponent<BreadcrumbButtonProps>;
export declare type BreadcrumbButtonBaseProps = Omit<BreadcrumbButtonProps, 'size'>;
export declare type BreadcrumbButtonBaseState = Omit<BreadcrumbButtonState, 'size'>;
/**
* Static CSS class names used internally for the component slots.
*/
export declare const breadcrumbButtonClassNames: SlotClassNames<BreadcrumbButtonSlots>;
/**
* BreadcrumbButton Props
*/
export declare type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> & Pick<BreadcrumbProps, 'size'> & Pick<ButtonProps, 'disabled' | 'disabledFocusable'> & {
/**
* Defines current sate of BreadcrumbButton.
*
* @default false
*/
current?: boolean;
};
export declare type BreadcrumbButtonSlots = ButtonSlots;
/**
* State used in rendering BreadcrumbButton
*/
export declare type BreadcrumbButtonState = ComponentState<BreadcrumbButtonSlots> & Omit<ButtonState, keyof ButtonSlots | 'components'> & Required<Pick<BreadcrumbButtonProps, 'current' | 'size'>>;
export declare const breadcrumbClassNames: SlotClassNames<BreadcrumbSlots>;
/**
* Data shared between breadcrumb components
*/
export declare type BreadcrumbContextValues = Required<Pick<BreadcrumbProps, 'size'>>;
/**
* A divider component which is used inside the Breadcrumb
*/
export declare const BreadcrumbDivider: ForwardRefComponent<BreadcrumbDividerProps>;
/**
* BreadcrumbDivider base props (same as BreadcrumbDividerProps since BreadcrumbDivider has no design props of its own)
*/
export declare type BreadcrumbDividerBaseProps = BreadcrumbDividerProps;
/**
* BreadcrumbDivider base state (excludes size, which is a design prop injected from context)
*/
export declare type BreadcrumbDividerBaseState = Omit<BreadcrumbDividerState, 'size'>;
export declare const breadcrumbDividerClassNames: SlotClassNames<BreadcrumbDividerSlots>;
/**
* BreadcrumbDivider Props
*/
export declare type BreadcrumbDividerProps = ComponentProps<BreadcrumbDividerSlots> & {};
export declare type BreadcrumbDividerSlots = {
root: Slot<'li'>;
};
/**
* State used in rendering BreadcrumbDivider
*/
export declare type BreadcrumbDividerState = ComponentState<BreadcrumbDividerSlots> & Pick<BreadcrumbProps, 'size'>;
/**
* BreadcrumbItem component is a wrapper for BreadcrumbLink and BreadcrumbButton.
* It can be used as a non-interactive item.
*/
export declare const BreadcrumbItem: ForwardRefComponent<BreadcrumbItemProps>;
/**
* BreadcrumbItem base props (same as BreadcrumbItemProps since size is passed through context, not as a design prop)
*/
export declare type BreadcrumbItemBaseProps = Omit<BreadcrumbItemProps, 'size'>;
/**
* BreadcrumbItem base state (excludes size, which is a design prop injected from context)
*/
export declare type BreadcrumbItemBaseState = Omit<BreadcrumbItemState, 'size'>;
export declare const breadcrumbItemClassNames: SlotClassNames<BreadcrumbItemSlots>;
/**
* BreadcrumbItem Props
*/
export declare type BreadcrumbItemProps = ComponentProps<BreadcrumbItemSlots> & Pick<BreadcrumbProps, 'size'>;
export declare type BreadcrumbItemSlots = {
root: Slot<'li'>;
};
/**
* State used in rendering BreadcrumbItem
*/
export declare type BreadcrumbItemState = ComponentState<BreadcrumbItemSlots> & Required<Pick<BreadcrumbItemProps, 'size'>>;
/**
* Breadcrumb Props
*/
export declare type BreadcrumbProps = ComponentProps<BreadcrumbSlots> & {
/**
* Sets the focus behavior for the Breadcrumb.
*
* `tab`
* This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Tab key and then release focus
* after the last inner element.
*
* `arrow`
* This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Arrow key.
*
* @default 'tab'
*/
focusMode?: 'arrow' | 'tab';
/**
* Controls size of Breadcrumb items and dividers.
*
* @default 'medium'
*/
size?: 'small' | 'medium' | 'large';
};
/**
* @internal
*/
export declare const BreadcrumbProvider: React_2.Provider<Required<Pick<BreadcrumbProps, "size">> | undefined>;
export declare type BreadcrumbSlots = {
/**
* Root element of the component.
*/
root: Slot<'nav'>;
/**
* Ordered list which contains items.
*/
list?: Slot<'ol'>;
};
/**
* State used in rendering Breadcrumb
*/
export declare type BreadcrumbState = ComponentState<BreadcrumbSlots> & Required<Pick<BreadcrumbProps, 'size'>>;
export declare const isTruncatableBreadcrumbContent: (content: string, maxLength: number) => boolean;
export declare type PartitionBreadcrumbItems<T> = {
startDisplayedItems: readonly T[];
overflowItems?: readonly T[];
endDisplayedItems?: readonly T[];
};
/**
* Get the displayed items and overflowing items based on the array of BreadcrumbItems needed for Breadcrumb.
*
* @param options - Configure the partition options
*
* @returns Three arrays split into displayed items and overflow items based on maxDisplayedItems.
*/
export declare const partitionBreadcrumbItems: <T>(options: PartitionBreadcrumbItemsOptions<T>) => PartitionBreadcrumbItems<T>;
export declare type PartitionBreadcrumbItemsOptions<T> = {
items: readonly T[];
maxDisplayedItems?: number;
overflowIndex?: number;
};
/**
* Render the final JSX of Breadcrumb
*/
export declare const renderBreadcrumb_unstable: (state: BreadcrumbState, contextValues: BreadcrumbContextValues) => JSXElement;
/**
* Render the final JSX of BreadcrumbButton
*/
export declare const renderBreadcrumbButton_unstable: (state: BreadcrumbButtonState) => JSXElement;
/**
* Render the final JSX of BreadcrumbDivider
*/
export declare const renderBreadcrumbDivider_unstable: (state: BreadcrumbDividerState) => JSXElement;
/**
* Render the final JSX of BreadcrumbItem
*/
export declare const renderBreadcrumbItem_unstable: (state: BreadcrumbItemState) => JSXElement;
export declare const truncateBreadcrumbLongName: (content: string, maxLength?: number) => string;
export declare const truncateBreadcrumLongTooltip: (content: string, maxLength?: number) => string;
/**
* Create the state required to render Breadcrumb.
*
* The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,
* before being passed to renderBreadcrumb_unstable.
*
* @param props - props from this instance of Breadcrumb
* @param ref - reference to root HTMLElement of Breadcrumb
*/
export declare const useBreadcrumb_unstable: (props: BreadcrumbProps, ref: React_2.Ref<HTMLElement>) => BreadcrumbState;
/**
* Hook to get accessibility attributes for Breadcrumb component, such as roving tab index.
* Based on Tabster's useArrowNavigationGroup.
*
* @param focusMode - whether the Breadcrumb uses arrow key navigation or tab key navigation
* @returns Tabster DOM attributes
*/
export declare const useBreadcrumbA11yBehavior_unstable: ({ focusMode, }: Pick<BreadcrumbBaseProps, "focusMode">) => Partial<TabsterDOMAttribute>;
/**
* Base hook for Breadcrumb component, which manages state related to slots structure and ARIA attributes.
*
* Note: keyboard navigation behavior is not handled in this hook, but in useBreadcrumbA11yBehavior_unstable.
*
* @param props - props from this instance of Breadcrumb
* @param ref - reference to root HTMLElement of Breadcrumb
*/
export declare const useBreadcrumbBase_unstable: (props: BreadcrumbBaseProps, ref: React_2.Ref<HTMLElement>) => BreadcrumbBaseState;
/**
* Create the state required to render BreadcrumbButton.
*
* The returned state can be modified with hooks such as useBreadcrumbButtonStyles_unstable,
* before being passed to renderBreadcrumbButton_unstable.
*
* @param props - props from this instance of BreadcrumbButton
* @param ref - reference to root HTMLElement of BreadcrumbButton
*/
export declare const useBreadcrumbButton_unstable: (props: BreadcrumbButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => BreadcrumbButtonState;
/**
* Base hook for BreadcrumbButton component, which manages state related to button behavior,
* ARIA attributes (aria-current, aria-disabled), and slot structure without design props.
*
* @param props - props from this instance of BreadcrumbButton
* @param ref - reference to root HTMLElement of BreadcrumbButton
*/
export declare const useBreadcrumbButtonBase_unstable: (props: BreadcrumbButtonBaseProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => BreadcrumbButtonBaseState;
/**
* Apply styling to the BreadcrumbButton slots based on the state
*/
export declare const useBreadcrumbButtonStyles_unstable: (state: BreadcrumbButtonState) => BreadcrumbButtonState;
/**
* @internal
*/
export declare const useBreadcrumbContext_unstable: () => BreadcrumbContextValues;
/**
* Create the state required to render BreadcrumbDivider.
*
* The returned state can be modified with hooks such as useBreadcrumbDividerStyles_unstable,
* before being passed to renderBreadcrumbDivider_unstable.
*
* @param props - props from this instance of BreadcrumbDivider
* @param ref - reference to root HTMLElement of BreadcrumbDivider
*/
export declare const useBreadcrumbDivider_unstable: (props: BreadcrumbDividerProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbDividerState;
/**
* Base hook for BreadcrumbDivider component, which manages state related to slots structure and ARIA attributes
* without design props. Note: size is provided via BreadcrumbContext in the full hook.
*
* @param props - props from this instance of BreadcrumbDivider
* @param ref - reference to root HTMLElement of BreadcrumbDivider
*/
export declare const useBreadcrumbDividerBase_unstable: (props: BreadcrumbDividerBaseProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbDividerBaseState;
/**
* Apply styling to the BreadcrumbDivider slots based on the state
*/
export declare const useBreadcrumbDividerStyles_unstable: (state: BreadcrumbDividerState) => BreadcrumbDividerState;
/**
* Create the state required to render BreadcrumbItem.
*
* The returned state can be modified with hooks such as useBreadcrumbItemStyles_unstable,
* before being passed to renderBreadcrumbItem_unstable.
*
* @param props - props from this instance of BreadcrumbItem
* @param ref - reference to root HTMLElement of BreadcrumbItem
*/
export declare const useBreadcrumbItem_unstable: (props: BreadcrumbItemProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbItemState;
/**
* Base hook for BreadcrumbItem component, which manages state related to slots structure
* without design props. Note: size is provided via BreadcrumbContext in the full hook.
*
* @param props - props from this instance of BreadcrumbItem
* @param ref - reference to root HTMLElement of BreadcrumbItem
*/
export declare const useBreadcrumbItemBase_unstable: (props: BreadcrumbItemBaseProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbItemBaseState;
/**
* Apply styling to the BreadcrumbItem slots based on the state
*/
export declare const useBreadcrumbItemStyles_unstable: (state: BreadcrumbItemState) => BreadcrumbItemState;
/**
* Apply styling to the Breadcrumb slots based on the state
*/
export declare const useBreadcrumbStyles_unstable: (state: BreadcrumbState) => BreadcrumbState;
export { }

View File

@@ -0,0 +1,43 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
Breadcrumb: function() {
return _index.Breadcrumb;
},
BreadcrumbProvider: function() {
return _index.BreadcrumbProvider;
},
breadcrumbClassNames: function() {
return _index.breadcrumbClassNames;
},
breadcrumbDefaultValue: function() {
return _index.breadcrumbDefaultValue;
},
renderBreadcrumb_unstable: function() {
return _index.renderBreadcrumb_unstable;
},
useBreadcrumbA11yBehavior_unstable: function() {
return _index.useBreadcrumbA11yBehavior_unstable;
},
useBreadcrumbBase_unstable: function() {
return _index.useBreadcrumbBase_unstable;
},
useBreadcrumbContext_unstable: function() {
return _index.useBreadcrumbContext_unstable;
},
useBreadcrumbStyles_unstable: function() {
return _index.useBreadcrumbStyles_unstable;
},
useBreadcrumb_unstable: function() {
return _index.useBreadcrumb_unstable;
}
});
const _index = require("./components/Breadcrumb/index");

View File

@@ -0,0 +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":";;;;;;;;;;;IASEA;gCAAU;;;eACVC,yBAAkB;;;eAClBC,2BAAoB;;;eACpBC,6BAAsB;;;eACtBC,gCAAyB;;;eAKzBK,yCAAkC;;8BADR;eAA1BD;;;eAHAH,oCAA6B;;gCACD;eAA5BC;;;eACAC,6BAAsB;;;uBAGjB,gCAAgC"}

View File

@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbButton: function() {
return _index.BreadcrumbButton;
},
breadcrumbButtonClassNames: function() {
return _index.breadcrumbButtonClassNames;
},
renderBreadcrumbButton_unstable: function() {
return _index.renderBreadcrumbButton_unstable;
},
useBreadcrumbButtonBase_unstable: function() {
return _index.useBreadcrumbButtonBase_unstable;
},
useBreadcrumbButtonStyles_unstable: function() {
return _index.useBreadcrumbButtonStyles_unstable;
},
useBreadcrumbButton_unstable: function() {
return _index.useBreadcrumbButton_unstable;
}
});
const _index = require("./components/BreadcrumbButton/index");

View File

@@ -0,0 +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":";;;;;;;;;;;;eAQEA,uBAAgB;;;eAChBC,iCAA0B;;;eAC1BC,sCAA+B;;;eAG/BG,uCAAgC;;;eAFhCF,yCAAkC;;;eAClCC,mCAA4B;;;uBAEvB,sCAAsC"}

View File

@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbDivider: function() {
return _index.BreadcrumbDivider;
},
breadcrumbDividerClassNames: function() {
return _index.breadcrumbDividerClassNames;
},
renderBreadcrumbDivider_unstable: function() {
return _index.renderBreadcrumbDivider_unstable;
},
useBreadcrumbDividerBase_unstable: function() {
return _index.useBreadcrumbDividerBase_unstable;
},
useBreadcrumbDividerStyles_unstable: function() {
return _index.useBreadcrumbDividerStyles_unstable;
},
useBreadcrumbDivider_unstable: function() {
return _index.useBreadcrumbDivider_unstable;
}
});
const _index = require("./components/BreadcrumbDivider/index");

View File

@@ -0,0 +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":";;;;;;;;;;;;eAQEA,wBAAiB;;;eACjBC,kCAA2B;;;eAC3BC,uCAAgC;;;eAGhCG,wCAAiC;;;eAFjCF,0CAAmC;;;eACnCC,oCAA6B;;;uBAExB,uCAAuC"}

View File

@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbItem: function() {
return _index.BreadcrumbItem;
},
breadcrumbItemClassNames: function() {
return _index.breadcrumbItemClassNames;
},
renderBreadcrumbItem_unstable: function() {
return _index.renderBreadcrumbItem_unstable;
},
useBreadcrumbItemBase_unstable: function() {
return _index.useBreadcrumbItemBase_unstable;
},
useBreadcrumbItemStyles_unstable: function() {
return _index.useBreadcrumbItemStyles_unstable;
},
useBreadcrumbItem_unstable: function() {
return _index.useBreadcrumbItem_unstable;
}
});
const _index = require("./components/BreadcrumbItem/index");

View File

@@ -0,0 +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":";;;;;;;;;;;;eAQEA,qBAAc;;;eACdC,+BAAwB;;;eACxBC,oCAA6B;;;eAG7BG,qCAA8B;;;eAF9BF,uCAAgC;;;eAChCC,iCAA0B;;;uBAErB,oCAAoC"}

View File

@@ -0,0 +1,26 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Breadcrumb", {
enumerable: true,
get: function() {
return Breadcrumb;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _useBreadcrumb = require("./useBreadcrumb");
const _renderBreadcrumb = require("./renderBreadcrumb");
const _useBreadcrumbStylesstyles = require("./useBreadcrumbStyles.styles");
const _useBreadcrumbContextValue = require("./useBreadcrumbContextValue");
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const Breadcrumb = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useBreadcrumb.useBreadcrumb_unstable)(props, ref);
const contextValues = (0, _useBreadcrumbContextValue.useBreadcrumbContextValues_unstable)(state);
(0, _useBreadcrumbStylesstyles.useBreadcrumbStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useBreadcrumbStyles_unstable')(state);
return (0, _renderBreadcrumb.renderBreadcrumb_unstable)(state, contextValues);
});
Breadcrumb.displayName = 'Breadcrumb';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useBreadcrumb_unstable } from './useBreadcrumb';\nimport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nimport { useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\nimport type { BreadcrumbProps } from './Breadcrumb.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Breadcrumb component - TODO: add more docs\n */\nexport const Breadcrumb: ForwardRefComponent<BreadcrumbProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumb_unstable(props, ref);\n const contextValues = useBreadcrumbContextValues_unstable(state);\n\n useBreadcrumbStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbStyles_unstable')(state);\n\n return renderBreadcrumb_unstable(state, contextValues);\n});\n\nBreadcrumb.displayName = 'Breadcrumb';\n"],"names":["React","useBreadcrumb_unstable","renderBreadcrumb_unstable","useBreadcrumbStyles_unstable","useBreadcrumbContextValues_unstable","useCustomStyleHook_unstable","Breadcrumb","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;+BACQ,kBAAkB;kCACf,qBAAqB;2CAClB,+BAA+B;2CAGxB,8BAA8B;qCACtC,kCAAkC;AAKvE,MAAMM,aAAAA,WAAAA,GAAmDN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IACvF,MAAMC,YAAQT,qCAAAA,EAAuBO,OAAOC;IAC5C,MAAME,oBAAgBP,8DAAAA,EAAoCM;QAE1DP,uDAAAA,EAA6BO;QAC7BL,gDAAAA,EAA4B,gCAAgCK;IAE5D,WAAOR,2CAAAA,EAA0BQ,OAAOC;AAC1C,GAAG;AAEHL,WAAWM,WAAW,GAAG"}

View File

@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

View File

@@ -0,0 +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":""}

View File

@@ -0,0 +1,33 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbProvider: function() {
return BreadcrumbProvider;
},
breadcrumbDefaultValue: function() {
return breadcrumbDefaultValue;
},
useBreadcrumbContext_unstable: function() {
return useBreadcrumbContext_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const BreadcrumbContext = /*#__PURE__*/ _react.createContext(undefined);
const breadcrumbDefaultValue = {
size: 'medium'
};
const BreadcrumbProvider = BreadcrumbContext.Provider;
const useBreadcrumbContext_unstable = ()=>{
var _React_useContext;
return (_React_useContext = _react.useContext(BreadcrumbContext)) !== null && _React_useContext !== void 0 ? _React_useContext : breadcrumbDefaultValue;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/BreadcrumbContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { BreadcrumbContextValues } from './Breadcrumb.types';\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValues | undefined>(undefined);\n\n/**\n * @internal\n */\nexport const breadcrumbDefaultValue: BreadcrumbContextValues = {\n size: 'medium',\n};\n\n/**\n * @internal\n */\nexport const BreadcrumbProvider = BreadcrumbContext.Provider;\n\n/**\n * @internal\n */\nexport const useBreadcrumbContext_unstable = (): BreadcrumbContextValues =>\n React.useContext(BreadcrumbContext) ?? breadcrumbDefaultValue;\n"],"names":["React","BreadcrumbContext","createContext","undefined","breadcrumbDefaultValue","size","BreadcrumbProvider","Provider","useBreadcrumbContext_unstable","useContext"],"mappings":"AAAA;;;;;;;;;;;;sBAiBaM;eAAAA;;0BAPAF;;;iCAYAI;;;;;iEApBU,QAAQ;AAG/B,MAAMP,kCAAoBD,OAAME,aAAa,CAAsCC;AAK5E,MAAMC,yBAAkD;IAC7DC,MAAM;AACR,EAAE;AAKK,2BAA2BJ,kBAAkBM,QAAQ,CAAC;AAKtD,MAAMC,gCAAgC;QAC3CR;WAAAA,CAAAA,oBAAAA,OAAMS,UAAU,CAACR,kBAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAAuCI;EAAuB"}

View File

@@ -0,0 +1,47 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
Breadcrumb: function() {
return _Breadcrumb.Breadcrumb;
},
BreadcrumbProvider: function() {
return _BreadcrumbContext.BreadcrumbProvider;
},
breadcrumbClassNames: function() {
return _useBreadcrumbStylesstyles.breadcrumbClassNames;
},
breadcrumbDefaultValue: function() {
return _BreadcrumbContext.breadcrumbDefaultValue;
},
renderBreadcrumb_unstable: function() {
return _renderBreadcrumb.renderBreadcrumb_unstable;
},
useBreadcrumbA11yBehavior_unstable: function() {
return _useBreadcrumb.useBreadcrumbA11yBehavior_unstable;
},
useBreadcrumbBase_unstable: function() {
return _useBreadcrumb.useBreadcrumbBase_unstable;
},
useBreadcrumbContext_unstable: function() {
return _BreadcrumbContext.useBreadcrumbContext_unstable;
},
useBreadcrumbStyles_unstable: function() {
return _useBreadcrumbStylesstyles.useBreadcrumbStyles_unstable;
},
useBreadcrumb_unstable: function() {
return _useBreadcrumb.useBreadcrumb_unstable;
}
});
const _Breadcrumb = require("./Breadcrumb");
const _BreadcrumbContext = require("./BreadcrumbContext");
const _renderBreadcrumb = require("./renderBreadcrumb");
const _useBreadcrumb = require("./useBreadcrumb");
const _useBreadcrumbStylesstyles = require("./useBreadcrumbStyles.styles");

View File

@@ -0,0 +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":";;;;;;;;;;;IAASA;qCAAU;;;eASVC,qCAAkB;;IAOlBO,oBAAoB;;;;eAPAN,yCAAsB;;;eAC1CE,2CAAyB;;;eAIhCG,iDAAkC;;;eADlCD,yCAA0B;;;eAJyBH,gDAA6B;;;eAOnDM,uDAA4B;;;eAJzDJ,qCAAsB;;;4BAZG,eAAe;mCASgD,sBAAsB;kCACtE,qBAAqB;+BAKxD,kBAAkB;2CAC0C,+BAA+B"}

View File

@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderBreadcrumb_unstable", {
enumerable: true,
get: function() {
return renderBreadcrumb_unstable;
}
});
const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
const _reactutilities = require("@fluentui/react-utilities");
const _BreadcrumbContext = require("./BreadcrumbContext");
const renderBreadcrumb_unstable = (state, contextValues)=>{
(0, _reactutilities.assertSlots)(state);
return /*#__PURE__*/ (0, _jsxruntime.jsx)(state.root, {
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_BreadcrumbContext.BreadcrumbProvider, {
value: contextValues,
children: state.list && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.list, {
children: state.root.children
})
})
});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/renderBreadcrumb.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\nimport { BreadcrumbProvider } from './BreadcrumbContext';\nimport type { BreadcrumbState, BreadcrumbSlots, BreadcrumbContextValues } from './Breadcrumb.types';\n/**\n * Render the final JSX of Breadcrumb\n */\nexport const renderBreadcrumb_unstable = (\n state: BreadcrumbState,\n contextValues: BreadcrumbContextValues,\n): JSXElement => {\n assertSlots<BreadcrumbSlots>(state);\n return (\n <state.root>\n <BreadcrumbProvider value={contextValues}>\n {state.list && <state.list>{state.root.children}</state.list>}\n </BreadcrumbProvider>\n </state.root>\n );\n};\n"],"names":["assertSlots","BreadcrumbProvider","renderBreadcrumb_unstable","state","contextValues","root","value","list","children"],"mappings":";;;;+BAWaE;;;;;;4BAVb,gDAAiD;gCAErB,4BAA4B;mCAGrB,sBAAsB;AAKlD,kCAAkC,CACvCC,OACAC;QAEAJ,2BAAAA,EAA6BG;IAC7B,OAAA,WAAA,OACE,eAAA,EAACA,MAAME,IAAI,EAAA;kBACT,WAAA,GAAA,mBAAA,EAACJ,qCAAAA,EAAAA;YAAmBK,OAAOF;sBACxBD,MAAMI,IAAI,IAAA,WAAA,OAAI,eAAA,EAACJ,MAAMI,IAAI,EAAA;0BAAEJ,MAAME,IAAI,CAACG,QAAQ;;;;AAIvD,EAAE"}

View File

@@ -0,0 +1,73 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
useBreadcrumbA11yBehavior_unstable: function() {
return useBreadcrumbA11yBehavior_unstable;
},
useBreadcrumbBase_unstable: function() {
return useBreadcrumbBase_unstable;
},
useBreadcrumb_unstable: function() {
return useBreadcrumb_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactutilities = require("@fluentui/react-utilities");
const _reacttabster = require("@fluentui/react-tabster");
const useBreadcrumb_unstable = (props, ref)=>{
const { focusMode = 'tab', size = 'medium', ...breadcrumbProps } = props;
const state = useBreadcrumbBase_unstable(breadcrumbProps, ref);
const focusAttributes = useBreadcrumbA11yBehavior_unstable({
focusMode
});
return {
...state,
root: {
...focusAttributes,
...state.root
},
size
};
};
const useBreadcrumbBase_unstable = (props, ref)=>{
const { focusMode = 'tab', list, ...rest } = props;
var _props_arialabel;
return {
components: {
root: 'nav',
list: 'ol'
},
root: _reactutilities.slot.always((0, _reactutilities.getIntrinsicElementProps)('nav', {
ref,
'aria-label': (_props_arialabel = props['aria-label']) !== null && _props_arialabel !== void 0 ? _props_arialabel : 'breadcrumb',
...rest
}), {
elementType: 'nav'
}),
list: _reactutilities.slot.optional(list, {
renderByDefault: true,
defaultProps: {
role: 'list'
},
elementType: 'ol'
})
};
};
const useBreadcrumbA11yBehavior_unstable = ({ focusMode })=>{
const focusAttributes = (0, _reacttabster.useArrowNavigationGroup)({
circular: true,
axis: 'horizontal',
memorizeCurrent: true
});
return focusMode === 'arrow' ? focusAttributes : {};
};

View File

@@ -0,0 +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;;;;;;;;;;;;sCAqEaa;eAAAA;;IA9BAF,0BAAAA;;;0BAvBAP;;;;;iEAdU,QAAQ;gCACgB,4BAA4B;8BAEd,0BAA0B;AAWhF,MAAMA,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;AAUK,mCAAmC,CACxCH,OACAC;IAEA,MAAM,EAAEC,YAAY,KAAK,EAAEQ,IAAI,EAAE,GAAGC,MAAM,GAAGX;QAUzBA;IARpB,OAAO;QACLY,YAAY;YACVH,MAAM;YACNC,MAAM;QACR;QACAD,MAAMZ,oBAAAA,CAAKgB,MAAM,KACfjB,wCAAAA,EAAyB,OAAO;YAC9BK;YACA,cAAcD,CAAAA,mBAAAA,KAAK,CAAC,aAAA,AAAa,MAAA,QAAnBA,qBAAAA,KAAAA,IAAAA,mBAAuB;YACrC,GAAGW,IAAI;QACT,IACA;YAAEG,aAAa;QAAM;QAEvBJ,MAAMb,oBAAAA,CAAKkB,QAAQ,CAACL,MAAM;YAAEM,iBAAiB;YAAMC,cAAc;gBAAEC,MAAM;YAAO;YAAGJ,aAAa;QAAK;IACvG;AACF,EAAE;AASK,2CAA2C,CAAC,EACjDZ,SAAS,EAC8B;IACvC,MAAMK,sBAAkBT,qCAAAA,EAAwB;QAC9CqB,UAAU;QACVC,MAAM;QACNC,iBAAiB;IACnB;IAEA,OAAOnB,cAAc,UAAUK,kBAAkB,CAAC;AACpD,EAAE"}

View File

@@ -0,0 +1,21 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useBreadcrumbContextValues_unstable", {
enumerable: true,
get: function() {
return useBreadcrumbContextValues_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
function useBreadcrumbContextValues_unstable(state) {
const { size } = state;
return _react.useMemo(()=>({
size
}), [
size
]);
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/useBreadcrumbContextValue.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { BreadcrumbContextValues, BreadcrumbState } from './Breadcrumb.types';\n\nexport function useBreadcrumbContextValues_unstable(state: BreadcrumbState): BreadcrumbContextValues {\n const { size } = state;\n return React.useMemo(() => ({ size }), [size]);\n}\n"],"names":["React","useBreadcrumbContextValues_unstable","state","size","useMemo"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;AAGxB,SAASC,oCAAoCC,KAAsB;IACxE,MAAM,EAAEC,IAAI,EAAE,GAAGD;IACjB,OAAOF,OAAMI,OAAO,CAAC,IAAO,CAAA;YAAED;SAAK,CAAA,EAAI;QAACA;KAAK;AAC/C"}

View File

@@ -0,0 +1,36 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbClassNames: function() {
return breadcrumbClassNames;
},
useBreadcrumbStyles_unstable: function() {
return useBreadcrumbStyles_unstable;
}
});
const _react = require("@griffel/react");
const breadcrumbClassNames = {
root: 'fui-Breadcrumb',
list: 'fui-Breadcrumb__list'
};
const useListClassName = /*#__PURE__*/ (0, _react.__resetStyles)("rc5rb6b", null, [
".rc5rb6b{list-style-type:none;display:flex;align-items:center;margin:0;padding:0;}"
]);
const useBreadcrumbStyles_unstable = (state)=>{
'use no memo';
const listBaseClassName = useListClassName();
state.root.className = (0, _react.mergeClasses)(breadcrumbClassNames.root, state.root.className);
if (state.list) {
state.list.className = (0, _react.mergeClasses)(listBaseClassName, breadcrumbClassNames.list, state.list.className);
}
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["useBreadcrumbStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeResetStyles, mergeClasses } from '@griffel/react';\nexport const breadcrumbClassNames = {\n root: 'fui-Breadcrumb',\n list: 'fui-Breadcrumb__list'\n};\nconst useListClassName = makeResetStyles({\n listStyleType: 'none',\n display: 'flex',\n alignItems: 'center',\n margin: 0,\n padding: 0\n});\n/**\n * Apply styling to the Breadcrumb slots based on the state\n */ export const useBreadcrumbStyles_unstable = (state)=>{\n 'use no memo';\n const listBaseClassName = useListClassName();\n state.root.className = mergeClasses(breadcrumbClassNames.root, state.root.className);\n if (state.list) {\n state.list.className = mergeClasses(listBaseClassName, breadcrumbClassNames.list, state.list.className);\n }\n return state;\n};\n"],"names":["__resetStyles","mergeClasses","breadcrumbClassNames","root","list","useListClassName","useBreadcrumbStyles_unstable","state","listBaseClassName","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAECE,oBAAoB;;;gCAaY;eAA5BI;;;uBAd6B,gBAAgB;AACvD,6BAA6B;IAChCH,IAAI,EAAE,gBAAgB;IACtBC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,gBAAgB,GAAA,WAAA,GAAGL,wBAAA,EAAA,WAAA,MAAA;IAAA;CAMxB,CAAC;AAGS,sCAAsCO,KAAK,IAAG;IACrD,aAAa;IACb,MAAMC,iBAAiB,GAAGH,gBAAgB,CAAC,CAAC;IAC5CE,KAAK,CAACJ,IAAI,CAACM,SAAS,GAAGR,uBAAY,EAACC,oBAAoB,CAACC,IAAI,EAAEI,KAAK,CAACJ,IAAI,CAACM,SAAS,CAAC;IACpF,IAAIF,KAAK,CAACH,IAAI,EAAE;QACZG,KAAK,CAACH,IAAI,CAACK,SAAS,OAAGR,mBAAY,EAACO,iBAAiB,EAAEN,oBAAoB,CAACE,IAAI,EAAEG,KAAK,CAACH,IAAI,CAACK,SAAS,CAAC;IAC3G;IACA,OAAOF,KAAK;AAChB,CAAC"}

View File

@@ -0,0 +1,40 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbClassNames: function() {
return breadcrumbClassNames;
},
useBreadcrumbStyles_unstable: function() {
return useBreadcrumbStyles_unstable;
}
});
const _react = require("@griffel/react");
const breadcrumbClassNames = {
root: 'fui-Breadcrumb',
list: 'fui-Breadcrumb__list'
};
const useListClassName = (0, _react.makeResetStyles)({
listStyleType: 'none',
display: 'flex',
alignItems: 'center',
margin: 0,
padding: 0
});
const useBreadcrumbStyles_unstable = (state)=>{
'use no memo';
const listBaseClassName = useListClassName();
state.root.className = (0, _react.mergeClasses)(breadcrumbClassNames.root, state.root.className);
if (state.list) {
state.list.className = (0, _react.mergeClasses)(listBaseClassName, breadcrumbClassNames.list, state.list.className);
}
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/useBreadcrumbStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { BreadcrumbSlots, BreadcrumbState } from './Breadcrumb.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const breadcrumbClassNames: SlotClassNames<BreadcrumbSlots> = {\n root: 'fui-Breadcrumb',\n list: 'fui-Breadcrumb__list',\n};\n\nconst useListClassName = makeResetStyles({\n listStyleType: 'none',\n display: 'flex',\n alignItems: 'center',\n margin: 0,\n padding: 0,\n});\n\n/**\n * Apply styling to the Breadcrumb slots based on the state\n */\nexport const useBreadcrumbStyles_unstable = (state: BreadcrumbState): BreadcrumbState => {\n 'use no memo';\n\n const listBaseClassName = useListClassName();\n state.root.className = mergeClasses(breadcrumbClassNames.root, state.root.className);\n if (state.list) {\n state.list.className = mergeClasses(listBaseClassName, breadcrumbClassNames.list, state.list.className);\n }\n return state;\n};\n"],"names":["makeResetStyles","mergeClasses","breadcrumbClassNames","root","list","useListClassName","listStyleType","display","alignItems","margin","padding","useBreadcrumbStyles_unstable","state","listBaseClassName","className"],"mappings":"AAAA;;;;;;;;;;;;IAMaE,oBAAAA;;;IAgBAS,4BAAAA;;;;uBApBiC,iBAAiB;AAIxD,6BAA8D;IACnER,MAAM;IACNC,MAAM;AACR,EAAE;AAEF,MAAMC,uBAAmBL,sBAAAA,EAAgB;IACvCM,eAAe;IACfC,SAAS;IACTC,YAAY;IACZC,QAAQ;IACRC,SAAS;AACX;AAKO,qCAAqC,CAACE;IAC3C;IAEA,MAAMC,oBAAoBR;IAC1BO,MAAMT,IAAI,CAACW,SAAS,OAAGb,mBAAAA,EAAaC,qBAAqBC,IAAI,EAAES,MAAMT,IAAI,CAACW,SAAS;IACnF,IAAIF,MAAMR,IAAI,EAAE;QACdQ,MAAMR,IAAI,CAACU,SAAS,OAAGb,mBAAAA,EAAaY,mBAAmBX,qBAAqBE,IAAI,EAAEQ,MAAMR,IAAI,CAACU,SAAS;IACxG;IACA,OAAOF;AACT,EAAE"}

View File

@@ -0,0 +1,24 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "BreadcrumbButton", {
enumerable: true,
get: function() {
return BreadcrumbButton;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _useBreadcrumbButton = require("./useBreadcrumbButton");
const _renderBreadcrumbButton = require("./renderBreadcrumbButton");
const _useBreadcrumbButtonStylesstyles = require("./useBreadcrumbButtonStyles.styles");
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const BreadcrumbButton = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useBreadcrumbButton.useBreadcrumbButton_unstable)(props, ref);
(0, _useBreadcrumbButtonStylesstyles.useBreadcrumbButtonStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useBreadcrumbButtonStyles_unstable')(state);
return (0, _renderBreadcrumbButton.renderBreadcrumbButton_unstable)(state);
});
BreadcrumbButton.displayName = 'BreadcrumbButton';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/BreadcrumbButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useBreadcrumbButton_unstable } from './useBreadcrumbButton';\nimport { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';\nimport { useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport type { BreadcrumbButtonProps } from './BreadcrumbButton.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * A button component which is used inside the Breadcrumb.\n */\nexport const BreadcrumbButton: ForwardRefComponent<BreadcrumbButtonProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumbButton_unstable(props, ref);\n\n useBreadcrumbButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbButtonStyles_unstable')(state);\n\n return renderBreadcrumbButton_unstable(state);\n});\n\nBreadcrumbButton.displayName = 'BreadcrumbButton';\n"],"names":["React","useBreadcrumbButton_unstable","renderBreadcrumbButton_unstable","useBreadcrumbButtonStyles_unstable","useCustomStyleHook_unstable","BreadcrumbButton","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;qCACc,wBAAwB;wCACrB,2BAA2B;iDACxB,qCAAqC;qCAC5C,kCAAkC;AAOvE,MAAMK,mBAAAA,WAAAA,GAA+DL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IACnG,MAAMC,YAAQR,iDAAAA,EAA6BM,OAAOC;QAElDL,mEAAAA,EAAmCM;QACnCL,gDAAAA,EAA4B,sCAAsCK;IAElE,WAAOP,uDAAAA,EAAgCO;AACzC,GAAG;AAEHJ,iBAAiBK,WAAW,GAAG"}

View File

@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

View File

@@ -0,0 +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":""}

View File

@@ -0,0 +1,34 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbButton: function() {
return _BreadcrumbButton.BreadcrumbButton;
},
breadcrumbButtonClassNames: function() {
return _useBreadcrumbButtonStylesstyles.breadcrumbButtonClassNames;
},
renderBreadcrumbButton_unstable: function() {
return _renderBreadcrumbButton.renderBreadcrumbButton_unstable;
},
useBreadcrumbButtonBase_unstable: function() {
return _useBreadcrumbButton.useBreadcrumbButtonBase_unstable;
},
useBreadcrumbButtonStyles_unstable: function() {
return _useBreadcrumbButtonStylesstyles.useBreadcrumbButtonStyles_unstable;
},
useBreadcrumbButton_unstable: function() {
return _useBreadcrumbButton.useBreadcrumbButton_unstable;
}
});
const _BreadcrumbButton = require("./BreadcrumbButton");
const _renderBreadcrumbButton = require("./renderBreadcrumbButton");
const _useBreadcrumbButton = require("./useBreadcrumbButton");
const _useBreadcrumbButtonStylesstyles = require("./useBreadcrumbButtonStyles.styles");

View File

@@ -0,0 +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":";;;;;;;;;;;;eAASA,kCAAgB;;;eAUhBI,2DAA0B;;;eAF1BH,uDAA+B;;;eACDE,qDAAgC;;;eAClCE,mEAAkC;;;eAD9DH,iDAA4B;;;kCATJ,qBAAqB;wCAQN,2BAA2B;qCACI,wBAAwB;iDACxB,qCAAqC"}

View File

@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderBreadcrumbButton_unstable", {
enumerable: true,
get: function() {
return renderBreadcrumbButton_unstable;
}
});
const _reactbutton = require("@fluentui/react-button");
const renderBreadcrumbButton_unstable = (state)=>{
return (0, _reactbutton.renderButton_unstable)(state);
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/renderBreadcrumbButton.tsx"],"sourcesContent":["import type { BreadcrumbButtonState } from './BreadcrumbButton.types';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\nimport { renderButton_unstable } from '@fluentui/react-button';\n\n/**\n * Render the final JSX of BreadcrumbButton\n */\nexport const renderBreadcrumbButton_unstable = (state: BreadcrumbButtonState): JSXElement => {\n return renderButton_unstable(state);\n};\n"],"names":["renderButton_unstable","renderBreadcrumbButton_unstable","state"],"mappings":";;;;;;;;;;6BAGsC,yBAAyB;AAKxD,MAAMC,kCAAkC,CAACC;IAC9C,WAAOF,kCAAAA,EAAsBE;AAC/B,EAAE"}

View File

@@ -0,0 +1,49 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
useBreadcrumbButtonBase_unstable: function() {
return useBreadcrumbButtonBase_unstable;
},
useBreadcrumbButton_unstable: function() {
return useBreadcrumbButton_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactbutton = require("@fluentui/react-button");
const _BreadcrumbContext = require("../Breadcrumb/BreadcrumbContext");
const useBreadcrumbButton_unstable = (props, ref)=>{
const { size } = (0, _BreadcrumbContext.useBreadcrumbContext_unstable)();
const state = useBreadcrumbButtonBase_unstable(props, ref);
return {
...state,
size
};
};
const useBreadcrumbButtonBase_unstable = (props, ref)=>{
const { current = false, as, ...rest } = props;
const controlType = (as !== null && as !== void 0 ? as : props.href) ? 'a' : 'button';
var _props_ariacurrent, _props_ariadisabled;
const { size: _size, ...buttonState } = (0, _reactbutton.useButton_unstable)({
role: undefined,
type: undefined,
as: controlType,
iconPosition: 'before',
'aria-current': current ? (_props_ariacurrent = props['aria-current']) !== null && _props_ariacurrent !== void 0 ? _props_ariacurrent : 'page' : undefined,
'aria-disabled': current ? (_props_ariadisabled = props['aria-disabled']) !== null && _props_ariadisabled !== void 0 ? _props_ariadisabled : true : undefined,
...rest
}, ref);
return {
...buttonState,
current
};
};

View File

@@ -0,0 +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;;;;;;;;;;;;IA2CaQ,gCAAAA;;;gCApBAL;;;;;iEArBU,QAAQ;6BAEI,yBAAyB;mCAEd,kCAAkC;AAiBzE,MAAMA,+BAA+B,CAC1CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,OAAGJ,gDAAAA;IACjB,MAAMK,QAAQC,iCAAiCJ,OAAOC;IAEtD,OAAO;QACL,GAAGE,KAAK;QACRD;IACF;AACF,EAAE;AASK,yCAAyC,CAC9CF,OACAC;IAEA,MAAM,EAAEI,UAAU,KAAK,EAAEC,EAAE,EAAE,GAAGC,MAAM,GAAGP;IAEzC,MAAMQ,cAAcF,CAAAA,OAAAA,QAAAA,OAAAA,KAAAA,IAAAA,KAAON,MAA+BS,IAAAA,AAAG,IAAI,MAAM;QAQzCT,oBACCA;IAP/B,MAAM,EAAEE,MAAMQ,KAAK,EAAE,GAAGC,aAAa,OAAGd,+BAAAA,EACtC;QACEe,MAAMC;QACNC,MAAMD;QACNP,IAAIE;QACJO,cAAc;QACd,gBAAgBV,UAAUL,CAAAA,qBAAAA,KAAK,CAAC,eAAA,AAAe,MAAA,QAArBA,uBAAAA,KAAAA,IAAAA,qBAAyB,SAASa;QAC5D,iBAAiBR,UAAUL,CAAAA,sBAAAA,KAAK,CAAC,gBAAA,AAAgB,MAAA,QAAtBA,wBAAAA,KAAAA,IAAAA,sBAA0B,OAAOa;QAC5D,GAAGN,IAAI;IACT,GACAN;IAGF,OAAO;QACL,GAAGU,WAAW;QACdN;IACF;AACF,EAAE"}

View File

@@ -0,0 +1,240 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbButtonClassNames: function() {
return breadcrumbButtonClassNames;
},
useBreadcrumbButtonStyles_unstable: function() {
return useBreadcrumbButtonStyles_unstable;
}
});
const _react = require("@griffel/react");
const _reactbutton = require("@fluentui/react-button");
const _reacttheme = require("@fluentui/react-theme");
const _reacticons = require("@fluentui/react-icons");
const breadcrumbButtonClassNames = {
root: 'fui-BreadcrumbButton',
icon: 'fui-BreadcrumbButton__icon'
};
/**
* CSS variable names used internally for styling in the Breadcrumb.
*/ const breadcrumbCSSVars = {
breadcrumbIconSizeVar: '--fui-Breadcrumb--icon-size',
breadcrumbIconLineHeightVar: '--fui-Breadcrumb--icon-line-height'
};
const useIconStyles = /*#__PURE__*/ (0, _react.__styles)({
base: {
Be2twd7: "fsj74e5",
Bqenvij: "f1qfv4wv",
Bg96gwp: "f15xapk4",
a9b677: "f17j33op",
t21cq0: [
"fm0x6gh",
"fbyavb5"
]
},
small: {
u3h8gg: "f1qfi7kw",
Biu6dll: "f1876atl"
},
medium: {
u3h8gg: "f1h9446d",
Biu6dll: "f10xfswh"
},
large: {
u3h8gg: "f5hcofs",
Biu6dll: "f1a6v6zl"
}
}, {
d: [
".fsj74e5{font-size:var(--fui-Breadcrumb--icon-size);}",
".f1qfv4wv{height:var(--fui-Breadcrumb--icon-size);}",
".f15xapk4{line-height:var(--fui-Breadcrumb--icon-line-height);}",
".f17j33op{width:var(--fui-Breadcrumb--icon-size);}",
".fm0x6gh{margin-right:var(--spacingHorizontalXS);}",
".fbyavb5{margin-left:var(--spacingHorizontalXS);}",
".f1qfi7kw{--fui-Breadcrumb--icon-size:12px;}",
".f1876atl{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase200);}",
".f1h9446d{--fui-Breadcrumb--icon-size:16px;}",
".f10xfswh{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase400);}",
".f5hcofs{--fui-Breadcrumb--icon-size:20px;}",
".f1a6v6zl{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase600);}"
]
});
const defaultButtonStyles = {
backgroundColor: _reacttheme.tokens.colorTransparentBackground,
color: _reacttheme.tokens.colorNeutralForeground2,
cursor: 'auto'
};
const currentIconStyles = {
...defaultButtonStyles,
[`& .${_reactbutton.buttonClassNames.icon}`]: {
color: 'unset'
},
[`& .${_reacticons.iconFilledClassName}`]: {
display: 'none'
},
[`& .${_reacticons.iconRegularClassName}`]: {
display: 'inline'
}
};
const useStyles = /*#__PURE__*/ (0, _react.__styles)({
root: {
Bf4jedk: "f18p0k4z",
j4b8c3: "fv6wr3j"
},
small: {
Bqenvij: "frvgh55",
Bahqtrf: "fk6fouc",
Be2twd7: "fy9rknc",
Bhrd7zp: "figsok6",
Bg96gwp: "fwrc4pm",
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: "f1r1wyb6"
},
medium: {
Bqenvij: "f1d2rq10",
Bahqtrf: "fk6fouc",
Be2twd7: "fkhj508",
Bhrd7zp: "figsok6",
Bg96gwp: "f1i3iumi",
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: "f1r1wyb6"
},
large: {
Bqenvij: "fbhnoac",
Bahqtrf: "fk6fouc",
Be2twd7: "fod5ikn",
Bhrd7zp: "figsok6",
Bg96gwp: "faaz57k",
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: "f1bnz8pu"
},
current: {
Jwef8y: "f9ql6rf",
Bi91k9c: "f3p8bqa",
eoavqd: "f14w7a5u",
Bbdnnc7: "f1irjp3o",
Bk3fhr4: "f19vpps7",
Bmfj8id: "fv5swzo",
iro3zm: "f3h1zc4",
B2d53fq: "f1xkgyln",
c3iz72: "f17wbbfx",
x3br3k: "fofxw0a",
em6i61: "f1ol4fw6",
vm6p8p: "f1q1lw4e",
Bszkowt: "ff24m",
Dyrjrp: "ft5r8e9",
ezr58z: "f1cbpfqp",
nhk3du: "f1motppv",
Bfrek18: "fi9vkhg",
G209fr: "f1fg3nnv"
},
currentSmall: {
Bahqtrf: "fk6fouc",
Be2twd7: "fy9rknc",
Bhrd7zp: "fl43uef",
Bg96gwp: "fwrc4pm"
},
currentMedium: {
Bahqtrf: "fk6fouc",
Be2twd7: "fkhj508",
Bhrd7zp: "fl43uef",
Bg96gwp: "f1i3iumi"
},
currentLarge: {
Bahqtrf: "fk6fouc",
Be2twd7: "fod5ikn",
Bhrd7zp: "fl43uef",
Bg96gwp: "faaz57k"
}
}, {
d: [
".f18p0k4z{min-width:unset;}",
".fv6wr3j{text-wrap:nowrap;}",
".frvgh55{height:24px;}",
".fk6fouc{font-family:var(--fontFamilyBase);}",
".fy9rknc{font-size:var(--fontSizeBase200);}",
".figsok6{font-weight:var(--fontWeightRegular);}",
".fwrc4pm{line-height:var(--lineHeightBase200);}",
[
".f1r1wyb6{padding:var(--spacingHorizontalSNudge);}",
{
p: -1
}
],
".f1d2rq10{height:32px;}",
".fkhj508{font-size:var(--fontSizeBase300);}",
".f1i3iumi{line-height:var(--lineHeightBase300);}",
[
".f1r1wyb6{padding:var(--spacingHorizontalSNudge);}",
{
p: -1
}
],
".fbhnoac{height:40px;}",
".fod5ikn{font-size:var(--fontSizeBase400);}",
".faaz57k{line-height:var(--lineHeightBase400);}",
[
".f1bnz8pu{padding:var(--spacingHorizontalS);}",
{
p: -1
}
],
".ff24m:disabled{background-color:var(--colorTransparentBackground);}",
".ft5r8e9:disabled{color:var(--colorNeutralForeground2);}",
".f1cbpfqp:disabled{cursor:auto;}",
".f1motppv:disabled .fui-Button__icon{color:unset;}",
".fi9vkhg:disabled .fui-Icon-filled{display:none;}",
".f1fg3nnv:disabled .fui-Icon-regular{display:inline;}",
".fl43uef{font-weight:var(--fontWeightSemibold);}"
],
h: [
".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",
".f3p8bqa:hover{color:var(--colorNeutralForeground2);}",
".f14w7a5u:hover{cursor:auto;}",
".f1irjp3o:hover .fui-Button__icon{color:unset;}",
".f19vpps7:hover .fui-Icon-filled{display:none;}",
".fv5swzo:hover .fui-Icon-regular{display:inline;}",
".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}",
".f1xkgyln:hover:active{color:var(--colorNeutralForeground2);}",
".f17wbbfx:hover:active{cursor:auto;}",
".fofxw0a:hover:active .fui-Button__icon{color:unset;}",
".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}",
".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}"
]
});
const useBreadcrumbButtonStyles_unstable = (state)=>{
'use no memo';
const styles = useStyles();
const iconStyles = useIconStyles();
const currentSizeMap = {
small: styles.currentSmall,
medium: styles.currentMedium,
large: styles.currentLarge
};
state.root.className = (0, _react.mergeClasses)(breadcrumbButtonClassNames.root, styles[state.size], styles.root, state.current && currentSizeMap[state.size], state.current && styles.current, state.root.className);
if (state.icon) {
state.icon.className = (0, _react.mergeClasses)(iconStyles.base, iconStyles[state.size], state.icon.className);
}
(0, _reactbutton.useButtonStyles_unstable)(state);
return state;
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,128 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbButtonClassNames: function() {
return breadcrumbButtonClassNames;
},
useBreadcrumbButtonStyles_unstable: function() {
return useBreadcrumbButtonStyles_unstable;
}
});
const _react = require("@griffel/react");
const _reactbutton = require("@fluentui/react-button");
const _reacttheme = require("@fluentui/react-theme");
const _reacticons = require("@fluentui/react-icons");
const breadcrumbButtonClassNames = {
root: 'fui-BreadcrumbButton',
icon: 'fui-BreadcrumbButton__icon'
};
/**
* CSS variable names used internally for styling in the Breadcrumb.
*/ const breadcrumbCSSVars = {
breadcrumbIconSizeVar: '--fui-Breadcrumb--icon-size',
breadcrumbIconLineHeightVar: '--fui-Breadcrumb--icon-line-height'
};
const useIconStyles = (0, _react.makeStyles)({
base: {
fontSize: `var(${breadcrumbCSSVars.breadcrumbIconSizeVar})`,
height: `var(${breadcrumbCSSVars.breadcrumbIconSizeVar})`,
lineHeight: `var(${breadcrumbCSSVars.breadcrumbIconLineHeightVar})`,
width: `var(${breadcrumbCSSVars.breadcrumbIconSizeVar})`,
marginRight: _reacttheme.tokens.spacingHorizontalXS
},
small: {
[breadcrumbCSSVars.breadcrumbIconSizeVar]: '12px',
[breadcrumbCSSVars.breadcrumbIconLineHeightVar]: _reacttheme.tokens.lineHeightBase200
},
medium: {
[breadcrumbCSSVars.breadcrumbIconSizeVar]: '16px',
[breadcrumbCSSVars.breadcrumbIconLineHeightVar]: _reacttheme.tokens.lineHeightBase400
},
large: {
[breadcrumbCSSVars.breadcrumbIconSizeVar]: '20px',
[breadcrumbCSSVars.breadcrumbIconLineHeightVar]: _reacttheme.tokens.lineHeightBase600
}
});
const defaultButtonStyles = {
backgroundColor: _reacttheme.tokens.colorTransparentBackground,
color: _reacttheme.tokens.colorNeutralForeground2,
cursor: 'auto'
};
const currentIconStyles = {
...defaultButtonStyles,
[`& .${_reactbutton.buttonClassNames.icon}`]: {
color: 'unset'
},
[`& .${_reacticons.iconFilledClassName}`]: {
display: 'none'
},
[`& .${_reacticons.iconRegularClassName}`]: {
display: 'inline'
}
};
const useStyles = (0, _react.makeStyles)({
root: {
minWidth: 'unset',
textWrap: 'nowrap'
},
small: {
height: '24px',
..._reacttheme.typographyStyles.caption1,
padding: _reacttheme.tokens.spacingHorizontalSNudge
},
medium: {
height: '32px',
..._reacttheme.typographyStyles.body1,
padding: _reacttheme.tokens.spacingHorizontalSNudge
},
large: {
height: '40px',
..._reacttheme.typographyStyles.body2,
padding: _reacttheme.tokens.spacingHorizontalS
},
current: {
':hover': {
...currentIconStyles
},
':hover:active': {
...currentIconStyles
},
':disabled': {
...currentIconStyles
}
},
currentSmall: {
..._reacttheme.typographyStyles.caption1Strong
},
currentMedium: {
..._reacttheme.typographyStyles.body1Strong
},
currentLarge: {
..._reacttheme.typographyStyles.subtitle2
}
});
const useBreadcrumbButtonStyles_unstable = (state)=>{
'use no memo';
const styles = useStyles();
const iconStyles = useIconStyles();
const currentSizeMap = {
small: styles.currentSmall,
medium: styles.currentMedium,
large: styles.currentLarge
};
state.root.className = (0, _react.mergeClasses)(breadcrumbButtonClassNames.root, styles[state.size], styles.root, state.current && currentSizeMap[state.size], state.current && styles.current, state.root.className);
if (state.icon) {
state.icon.className = (0, _react.mergeClasses)(iconStyles.base, iconStyles[state.size], state.icon.className);
}
(0, _reactbutton.useButtonStyles_unstable)(state);
return state;
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,24 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "BreadcrumbDivider", {
enumerable: true,
get: function() {
return BreadcrumbDivider;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _useBreadcrumbDivider = require("./useBreadcrumbDivider");
const _renderBreadcrumbDivider = require("./renderBreadcrumbDivider");
const _useBreadcrumbDividerStylesstyles = require("./useBreadcrumbDividerStyles.styles");
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const BreadcrumbDivider = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useBreadcrumbDivider.useBreadcrumbDivider_unstable)(props, ref);
(0, _useBreadcrumbDividerStylesstyles.useBreadcrumbDividerStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useBreadcrumbDividerStyles_unstable')(state);
return (0, _renderBreadcrumbDivider.renderBreadcrumbDivider_unstable)(state);
});
BreadcrumbDivider.displayName = 'BreadcrumbDivider';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbDivider/BreadcrumbDivider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useBreadcrumbDivider_unstable } from './useBreadcrumbDivider';\nimport { renderBreadcrumbDivider_unstable } from './renderBreadcrumbDivider';\nimport { useBreadcrumbDividerStyles_unstable } from './useBreadcrumbDividerStyles.styles';\nimport type { BreadcrumbDividerProps } from './BreadcrumbDivider.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * A divider component which is used inside the Breadcrumb\n */\nexport const BreadcrumbDivider: ForwardRefComponent<BreadcrumbDividerProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumbDivider_unstable(props, ref);\n\n useBreadcrumbDividerStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbDividerStyles_unstable')(state);\n\n return renderBreadcrumbDivider_unstable(state);\n});\n\nBreadcrumbDivider.displayName = 'BreadcrumbDivider';\n"],"names":["React","useBreadcrumbDivider_unstable","renderBreadcrumbDivider_unstable","useBreadcrumbDividerStyles_unstable","useCustomStyleHook_unstable","BreadcrumbDivider","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;sCACe,yBAAyB;yCACtB,4BAA4B;kDACzB,sCAAsC;qCAG9C,kCAAkC;AAKvE,MAAMK,oBAAAA,WAAAA,GAAiEL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IACrG,MAAMC,YAAQR,mDAAAA,EAA8BM,OAAOC;QAEnDL,qEAAAA,EAAoCM;QACpCL,gDAAAA,EAA4B,uCAAuCK;IAEnE,WAAOP,yDAAAA,EAAiCO;AAC1C,GAAG;AAEHJ,kBAAkBK,WAAW,GAAG"}

View File

@@ -0,0 +1,6 @@
/**
* BreadcrumbDivider base state (excludes size, which is a design prop injected from context)
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,34 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbDivider: function() {
return _BreadcrumbDivider.BreadcrumbDivider;
},
breadcrumbDividerClassNames: function() {
return _useBreadcrumbDividerStylesstyles.breadcrumbDividerClassNames;
},
renderBreadcrumbDivider_unstable: function() {
return _renderBreadcrumbDivider.renderBreadcrumbDivider_unstable;
},
useBreadcrumbDividerBase_unstable: function() {
return _useBreadcrumbDivider.useBreadcrumbDividerBase_unstable;
},
useBreadcrumbDividerStyles_unstable: function() {
return _useBreadcrumbDividerStylesstyles.useBreadcrumbDividerStyles_unstable;
},
useBreadcrumbDivider_unstable: function() {
return _useBreadcrumbDivider.useBreadcrumbDivider_unstable;
}
});
const _BreadcrumbDivider = require("./BreadcrumbDivider");
const _renderBreadcrumbDivider = require("./renderBreadcrumbDivider");
const _useBreadcrumbDivider = require("./useBreadcrumbDivider");
const _useBreadcrumbDividerStylesstyles = require("./useBreadcrumbDividerStyles.styles");

View File

@@ -0,0 +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":";;;;;;;;;;;;eAASA,oCAAiB;;;eAUjBI,6DAA2B;;;eAF3BH,yDAAgC;;;eACDE,uDAAiC;;;eACnCE,qEAAmC;;;eADhEH,mDAA6B;;;mCATJ,sBAAsB;yCAQP,4BAA4B;sCACI,yBAAyB;kDACzB,sCAAsC"}

View File

@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderBreadcrumbDivider_unstable", {
enumerable: true,
get: function() {
return renderBreadcrumbDivider_unstable;
}
});
const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
const _reactutilities = require("@fluentui/react-utilities");
const renderBreadcrumbDivider_unstable = (state)=>{
(0, _reactutilities.assertSlots)(state);
return /*#__PURE__*/ (0, _jsxruntime.jsx)(state.root, {});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbDivider/renderBreadcrumbDivider.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\nimport type { BreadcrumbDividerState, BreadcrumbDividerSlots } from './BreadcrumbDivider.types';\n\n/**\n * Render the final JSX of BreadcrumbDivider\n */\nexport const renderBreadcrumbDivider_unstable = (state: BreadcrumbDividerState): JSXElement => {\n assertSlots<BreadcrumbDividerSlots>(state);\n\n return <state.root />;\n};\n"],"names":["assertSlots","renderBreadcrumbDivider_unstable","state","root"],"mappings":";;;;;;;;;;4BACA,gDAAiD;gCAErB,4BAA4B;AAQjD,MAAMC,mCAAmC,CAACC;QAC/CF,2BAAAA,EAAoCE;IAEpC,OAAA,WAAA,OAAO,eAAA,EAACA,MAAMC,IAAI,EAAA,CAAA;AACpB,EAAE"}

View File

@@ -0,0 +1,59 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
useBreadcrumbDividerBase_unstable: function() {
return useBreadcrumbDividerBase_unstable;
},
useBreadcrumbDivider_unstable: function() {
return useBreadcrumbDivider_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactutilities = require("@fluentui/react-utilities");
const _reacticons = require("@fluentui/react-icons");
const _BreadcrumbContext = require("../Breadcrumb/BreadcrumbContext");
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const useBreadcrumbDivider_unstable = (props, ref)=>{
const { size } = (0, _BreadcrumbContext.useBreadcrumbContext_unstable)();
const state = useBreadcrumbDividerBase_unstable(props, ref);
const { dir } = (0, _reactsharedcontexts.useFluent_unstable)();
return {
...state,
root: {
...state.root,
children: getDividerIcon(dir)
},
size
};
};
const useBreadcrumbDividerBase_unstable = (props, ref)=>{
return {
components: {
root: 'li'
},
root: _reactutilities.slot.always((0, _reactutilities.getIntrinsicElementProps)('li', {
ref,
'aria-hidden': true,
...props
}), {
elementType: 'li'
})
};
};
/**
* Get icon of the divider
*
* @param dir - RTL or LTR
*/ function getDividerIcon(dir) {
return dir === 'rtl' ? /*#__PURE__*/ _react.createElement(_reacticons.ChevronLeftRegular, null) : /*#__PURE__*/ _react.createElement(_reacticons.ChevronRightRegular, null);
}

View File

@@ -0,0 +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;;;;;;;;;;;;qCAgDaa;eAAAA;;iCAzBAL;;;;;iEArBU,QAAQ;gCACgB,4BAA4B;4BAOnB,wBAAwB;mCAClC,kCAAkC;qCAChC,kCAAkC;AAW3E,MAAMA,gCAAgC,CAC3CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGN,oDAAAA;IACjB,MAAMO,QAAQC,kCAAkCJ,OAAOC;IACvD,MAAM,EAAEI,GAAG,EAAE,OAAGP,uCAAAA;IAEhB,OAAO;QACL,GAAGK,KAAK;QACRG,MAAM;YACJ,GAAGH,MAAMG,IAAI;YACbC,UAAUC,eAAeH;QAC3B;QACAH;IACF;AACF,EAAE;AASK,0CAA0C,CAC/CF,OACAC;IAEA,OAAO;QACLQ,YAAY;YACVH,MAAM;QACR;QACAA,MAAMb,oBAAAA,CAAKiB,MAAM,KACflB,wCAAAA,EAAyB,MAAM;YAC7BS;YACA,eAAe;YACf,GAAGD,KAAK;QACV,IACA;YAAEW,aAAa;QAAK;IAExB;AACF,EAAE;AAEF;;;;CAIC,GACD,SAASH,eAAeH,GAAW;IACjC,OAAOA,QAAQ,QAAA,WAAA,GAAQ,OAAA,aAAA,CAACV,8BAAAA,EAAAA,QAAAA,WAAAA,GAAwB,OAAA,aAAA,CAACD,+BAAAA,EAAAA;AACnD"}

View File

@@ -0,0 +1,53 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbDividerClassNames: function() {
return breadcrumbDividerClassNames;
},
useBreadcrumbDividerStyles_unstable: function() {
return useBreadcrumbDividerStyles_unstable;
}
});
const _react = require("@griffel/react");
const breadcrumbDividerClassNames = {
root: 'fui-BreadcrumbDivider'
};
/**
* Styles for the root slot
*/ const useStyles = /*#__PURE__*/ (0, _react.__resetStyles)("rk008qs", null, [
".rk008qs{display:flex;}"
]);
const useIconStyles = /*#__PURE__*/ (0, _react.__styles)({
small: {
Be2twd7: "f1ugzwwg"
},
medium: {
Be2twd7: "f4ybsrx"
},
large: {
Be2twd7: "fe5j1ua"
}
}, {
d: [
".f1ugzwwg{font-size:12px;}",
".f4ybsrx{font-size:16px;}",
".fe5j1ua{font-size:20px;}"
]
});
const useBreadcrumbDividerStyles_unstable = (state)=>{
'use no memo';
const styles = useStyles();
const iconStyles = useIconStyles();
const { size = 'medium' } = state;
state.root.className = (0, _react.mergeClasses)(breadcrumbDividerClassNames.root, styles, iconStyles[size], state.root.className);
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["useBreadcrumbDividerStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';\nexport const breadcrumbDividerClassNames = {\n root: 'fui-BreadcrumbDivider'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeResetStyles({\n display: 'flex'\n});\nconst useIconStyles = makeStyles({\n small: {\n fontSize: '12px'\n },\n medium: {\n fontSize: '16px'\n },\n large: {\n fontSize: '20px'\n }\n});\n/**\n * Apply styling to the BreadcrumbDivider slots based on the state\n */ export const useBreadcrumbDividerStyles_unstable = (state)=>{\n 'use no memo';\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const { size = 'medium' } = state;\n state.root.className = mergeClasses(breadcrumbDividerClassNames.root, styles, iconStyles[size], state.root.className);\n return state;\n};\n"],"names":["__styles","__resetStyles","mergeClasses","breadcrumbDividerClassNames","root","useStyles","useIconStyles","small","Be2twd7","medium","large","d","useBreadcrumbDividerStyles_unstable","state","styles","iconStyles","size","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAECG,2BAA2B;;;uCAqBY;;;;uBAtBM,gBAAgB;AACnE,oCAAoC;IACvCC,IAAI,EAAE;AACV,CAAC;AACD;;CAEA,GAAI,MAAMC,SAAS,GAAA,WAAA,OAAGJ,oBAAA,EAAA,WAAA,MAAA;IAAA;CAErB,CAAC;AACF,MAAMK,aAAa,GAAA,WAAA,OAAGN,eAAA,EAAA;IAAAO,KAAA,EAAA;QAAAC,OAAA,EAAA;IAAA;IAAAC,MAAA,EAAA;QAAAD,OAAA,EAAA;IAAA;IAAAE,KAAA,EAAA;QAAAF,OAAA,EAAA;IAAA;AAAA,GAAA;IAAAG,CAAA,EAAA;QAAA;QAAA;QAAA;KAAA;AAAA,CAUrB,CAAC;AAGS,MAAMC,uCAAuCC,KAAK,IAAG;IAC5D,aAAa;IACb,MAAMC,MAAM,GAAGT,SAAS,CAAC,CAAC;IAC1B,MAAMU,UAAU,GAAGT,aAAa,CAAC,CAAC;IAClC,MAAM,EAAEU,IAAI,GAAG,QAAA,EAAU,GAAGH,KAAK;IACjCA,KAAK,CAACT,IAAI,CAACa,SAAS,OAAGf,mBAAY,EAACC,2BAA2B,CAACC,IAAI,EAAEU,MAAM,EAAEC,UAAU,CAACC,IAAI,CAAC,EAAEH,KAAK,CAACT,IAAI,CAACa,SAAS,CAAC;IACrH,OAAOJ,KAAK;AAChB,CAAC"}

View File

@@ -0,0 +1,47 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbDividerClassNames: function() {
return breadcrumbDividerClassNames;
},
useBreadcrumbDividerStyles_unstable: function() {
return useBreadcrumbDividerStyles_unstable;
}
});
const _react = require("@griffel/react");
const breadcrumbDividerClassNames = {
root: 'fui-BreadcrumbDivider'
};
/**
* Styles for the root slot
*/ const useStyles = (0, _react.makeResetStyles)({
display: 'flex'
});
const useIconStyles = (0, _react.makeStyles)({
small: {
fontSize: '12px'
},
medium: {
fontSize: '16px'
},
large: {
fontSize: '20px'
}
});
const useBreadcrumbDividerStyles_unstable = (state)=>{
'use no memo';
const styles = useStyles();
const iconStyles = useIconStyles();
const { size = 'medium' } = state;
state.root.className = (0, _react.mergeClasses)(breadcrumbDividerClassNames.root, styles, iconStyles[size], state.root.className);
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbDivider/useBreadcrumbDividerStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { BreadcrumbDividerSlots, BreadcrumbDividerState } from './BreadcrumbDivider.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const breadcrumbDividerClassNames: SlotClassNames<BreadcrumbDividerSlots> = {\n root: 'fui-BreadcrumbDivider',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeResetStyles({\n display: 'flex',\n});\n\nconst useIconStyles = makeStyles({\n small: {\n fontSize: '12px',\n },\n medium: {\n fontSize: '16px',\n },\n large: {\n fontSize: '20px',\n },\n});\n\n/**\n * Apply styling to the BreadcrumbDivider slots based on the state\n */\nexport const useBreadcrumbDividerStyles_unstable = (state: BreadcrumbDividerState): BreadcrumbDividerState => {\n 'use no memo';\n\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const { size = 'medium' } = state;\n\n state.root.className = mergeClasses(breadcrumbDividerClassNames.root, styles, iconStyles[size], state.root.className);\n\n return state;\n};\n"],"names":["makeStyles","makeResetStyles","mergeClasses","breadcrumbDividerClassNames","root","useStyles","display","useIconStyles","small","fontSize","medium","large","useBreadcrumbDividerStyles_unstable","state","styles","iconStyles","size","className"],"mappings":"AAAA;;;;;;;;;;;;IAMaG,2BAAAA;;;IA0BAS,mCAAAA;;;;uBA9B6C,iBAAiB;AAIpE,oCAA4E;IACjFR,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYJ,sBAAAA,EAAgB;IAChCK,SAAS;AACX;AAEA,MAAMC,oBAAgBP,iBAAAA,EAAW;IAC/BQ,OAAO;QACLC,UAAU;IACZ;IACAC,QAAQ;QACND,UAAU;IACZ;IACAE,OAAO;QACLF,UAAU;IACZ;AACF;AAKO,4CAA4C,CAACI;IAClD;IAEA,MAAMC,SAAST;IACf,MAAMU,aAAaR;IACnB,MAAM,EAAES,OAAO,QAAQ,EAAE,GAAGH;IAE5BA,MAAMT,IAAI,CAACa,SAAS,OAAGf,mBAAAA,EAAaC,4BAA4BC,IAAI,EAAEU,QAAQC,UAAU,CAACC,KAAK,EAAEH,MAAMT,IAAI,CAACa,SAAS;IAEpH,OAAOJ;AACT,EAAE"}

View File

@@ -0,0 +1,24 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "BreadcrumbItem", {
enumerable: true,
get: function() {
return BreadcrumbItem;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _useBreadcrumbItem = require("./useBreadcrumbItem");
const _renderBreadcrumbItem = require("./renderBreadcrumbItem");
const _useBreadcrumbItemStylesstyles = require("./useBreadcrumbItemStyles.styles");
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const BreadcrumbItem = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useBreadcrumbItem.useBreadcrumbItem_unstable)(props, ref);
(0, _useBreadcrumbItemStylesstyles.useBreadcrumbItemStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useBreadcrumbItemStyles_unstable')(state);
return (0, _renderBreadcrumbItem.renderBreadcrumbItem_unstable)(state);
});
BreadcrumbItem.displayName = 'BreadcrumbItem';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbItem/BreadcrumbItem.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useBreadcrumbItem_unstable } from './useBreadcrumbItem';\nimport { renderBreadcrumbItem_unstable } from './renderBreadcrumbItem';\nimport { useBreadcrumbItemStyles_unstable } from './useBreadcrumbItemStyles.styles';\nimport type { BreadcrumbItemProps } from './BreadcrumbItem.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * BreadcrumbItem component is a wrapper for BreadcrumbLink and BreadcrumbButton.\n * It can be used as a non-interactive item.\n */\nexport const BreadcrumbItem: ForwardRefComponent<BreadcrumbItemProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumbItem_unstable(props, ref);\n\n useBreadcrumbItemStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbItemStyles_unstable')(state);\n\n return renderBreadcrumbItem_unstable(state);\n});\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n"],"names":["React","useBreadcrumbItem_unstable","renderBreadcrumbItem_unstable","useBreadcrumbItemStyles_unstable","useCustomStyleHook_unstable","BreadcrumbItem","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;mCACY,sBAAsB;sCACnB,yBAAyB;+CACtB,mCAAmC;qCAGxC,kCAAkC;AAMvE,MAAMK,iBAAAA,WAAAA,GAA2DL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IAC/F,MAAMC,YAAQR,6CAAAA,EAA2BM,OAAOC;QAEhDL,+DAAAA,EAAiCM;QACjCL,gDAAAA,EAA4B,oCAAoCK;IAEhE,WAAOP,mDAAAA,EAA8BO;AACvC,GAAG;AAEHJ,eAAeK,WAAW,GAAG"}

View File

@@ -0,0 +1,6 @@
/**
* BreadcrumbItem base state (excludes size, which is a design prop injected from context)
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,34 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
BreadcrumbItem: function() {
return _BreadcrumbItem.BreadcrumbItem;
},
breadcrumbItemClassNames: function() {
return _useBreadcrumbItemStylesstyles.breadcrumbItemClassNames;
},
renderBreadcrumbItem_unstable: function() {
return _renderBreadcrumbItem.renderBreadcrumbItem_unstable;
},
useBreadcrumbItemBase_unstable: function() {
return _useBreadcrumbItem.useBreadcrumbItemBase_unstable;
},
useBreadcrumbItemStyles_unstable: function() {
return _useBreadcrumbItemStylesstyles.useBreadcrumbItemStyles_unstable;
},
useBreadcrumbItem_unstable: function() {
return _useBreadcrumbItem.useBreadcrumbItem_unstable;
}
});
const _BreadcrumbItem = require("./BreadcrumbItem");
const _renderBreadcrumbItem = require("./renderBreadcrumbItem");
const _useBreadcrumbItem = require("./useBreadcrumbItem");
const _useBreadcrumbItemStylesstyles = require("./useBreadcrumbItemStyles.styles");

View File

@@ -0,0 +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":";;;;;;;;;;;;eAASA,8BAAc;;;eAUdI,uDAAwB;;;eAFxBH,mDAA6B;;;eACDE,iDAA8B;;;eAChCE,+DAAgC;;;eAD1DH,6CAA0B;;;gCATJ,mBAAmB;sCAQJ,yBAAyB;mCACI,sBAAsB;+CACtB,mCAAmC"}

View File

@@ -0,0 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderBreadcrumbItem_unstable", {
enumerable: true,
get: function() {
return renderBreadcrumbItem_unstable;
}
});
const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
const _reactutilities = require("@fluentui/react-utilities");
const renderBreadcrumbItem_unstable = (state)=>{
(0, _reactutilities.assertSlots)(state);
return /*#__PURE__*/ (0, _jsxruntime.jsx)(state.root, {
children: state.root.children
});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbItem/renderBreadcrumbItem.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\nimport type { BreadcrumbItemState, BreadcrumbItemSlots } from './BreadcrumbItem.types';\n\n/**\n * Render the final JSX of BreadcrumbItem\n */\nexport const renderBreadcrumbItem_unstable = (state: BreadcrumbItemState): JSXElement => {\n assertSlots<BreadcrumbItemSlots>(state);\n\n return <state.root>{state.root.children}</state.root>;\n};\n"],"names":["assertSlots","renderBreadcrumbItem_unstable","state","root","children"],"mappings":";;;;;;;;;;4BACA,gDAAiD;gCAErB,4BAA4B;AAQjD,MAAMC,gCAAgC,CAACC;QAC5CF,2BAAAA,EAAiCE;IAEjC,OAAA,WAAA,OAAO,eAAA,EAACA,MAAMC,IAAI,EAAA;kBAAED,MAAMC,IAAI,CAACC,QAAQ;;AACzC,EAAE"}

View File

@@ -0,0 +1,44 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
useBreadcrumbItemBase_unstable: function() {
return useBreadcrumbItemBase_unstable;
},
useBreadcrumbItem_unstable: function() {
return useBreadcrumbItem_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactutilities = require("@fluentui/react-utilities");
const _BreadcrumbContext = require("../Breadcrumb/BreadcrumbContext");
const useBreadcrumbItem_unstable = (props, ref)=>{
const { size } = (0, _BreadcrumbContext.useBreadcrumbContext_unstable)();
const state = useBreadcrumbItemBase_unstable(props, ref);
return {
...state,
size
};
};
const useBreadcrumbItemBase_unstable = (props, ref)=>{
return {
components: {
root: 'li'
},
root: _reactutilities.slot.always((0, _reactutilities.getIntrinsicElementProps)('li', {
ref,
...props
}), {
elementType: 'li'
})
};
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbItem/useBreadcrumbItem.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type {\n BreadcrumbItemBaseProps,\n BreadcrumbItemBaseState,\n BreadcrumbItemProps,\n BreadcrumbItemState,\n} from './BreadcrumbItem.types';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\n\n/**\n * Create the state required to render BreadcrumbItem.\n *\n * The returned state can be modified with hooks such as useBreadcrumbItemStyles_unstable,\n * before being passed to renderBreadcrumbItem_unstable.\n *\n * @param props - props from this instance of BreadcrumbItem\n * @param ref - reference to root HTMLElement of BreadcrumbItem\n */\nexport const useBreadcrumbItem_unstable = (\n props: BreadcrumbItemProps,\n ref: React.Ref<HTMLLIElement>,\n): BreadcrumbItemState => {\n const { size } = useBreadcrumbContext_unstable();\n const state = useBreadcrumbItemBase_unstable(props, ref);\n\n return {\n ...state,\n size,\n };\n};\n\n/**\n * Base hook for BreadcrumbItem component, which manages state related to slots structure\n * without design props. Note: size is provided via BreadcrumbContext in the full hook.\n *\n * @param props - props from this instance of BreadcrumbItem\n * @param ref - reference to root HTMLElement of BreadcrumbItem\n */\nexport const useBreadcrumbItemBase_unstable = (\n props: BreadcrumbItemBaseProps,\n ref: React.Ref<HTMLLIElement>,\n): BreadcrumbItemBaseState => {\n return {\n components: { root: 'li' },\n root: slot.always(\n getIntrinsicElementProps('li', {\n ref,\n ...props,\n }),\n { elementType: 'li' },\n ),\n };\n};\n"],"names":["React","getIntrinsicElementProps","slot","useBreadcrumbContext_unstable","useBreadcrumbItem_unstable","props","ref","size","state","useBreadcrumbItemBase_unstable","components","root","always","elementType"],"mappings":"AAAA;;;;;;;;;;;;IAyCaS,8BAAAA;;;8BApBAL;;;;;iEAnBU,QAAQ;gCACgB,4BAA4B;mCAO7B,kCAAkC;AAWzE,MAAMA,6BAA6B,CACxCC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,OAAGJ,gDAAAA;IACjB,MAAMK,QAAQC,+BAA+BJ,OAAOC;IAEpD,OAAO;QACL,GAAGE,KAAK;QACRD;IACF;AACF,EAAE;AASK,uCAAuC,CAC5CF,OACAC;IAEA,OAAO;QACLI,YAAY;YAAEC,MAAM;QAAK;QACzBA,MAAMT,oBAAAA,CAAKU,MAAM,KACfX,wCAAAA,EAAyB,MAAM;YAC7BK;YACA,GAAGD,KAAK;QACV,IACA;YAAEQ,aAAa;QAAK;IAExB;AACF,EAAE"}

View File

@@ -0,0 +1,32 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbItemClassNames: function() {
return breadcrumbItemClassNames;
},
useBreadcrumbItemStyles_unstable: function() {
return useBreadcrumbItemStyles_unstable;
}
});
const _react = require("@griffel/react");
const breadcrumbItemClassNames = {
root: 'fui-BreadcrumbItem'
};
const useBreadcrumbItemResetStyles = /*#__PURE__*/ (0, _react.__resetStyles)("r1tl60rs", null, [
".r1tl60rs{display:flex;align-items:center;color:var(--colorNeutralForeground2);box-sizing:border-box;text-wrap:nowrap;}"
]);
const useBreadcrumbItemStyles_unstable = (state)=>{
'use no memo';
const resetStyles = useBreadcrumbItemResetStyles();
state.root.className = (0, _react.mergeClasses)(breadcrumbItemClassNames.root, resetStyles, state.root.className);
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["useBreadcrumbItemStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeResetStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const breadcrumbItemClassNames = {\n root: 'fui-BreadcrumbItem'\n};\nconst useBreadcrumbItemResetStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n boxSizing: 'border-box',\n textWrap: 'nowrap'\n});\n/**\n * Apply styling to the BreadcrumbItem slots based on the state\n */ export const useBreadcrumbItemStyles_unstable = (state)=>{\n 'use no memo';\n const resetStyles = useBreadcrumbItemResetStyles();\n state.root.className = mergeClasses(breadcrumbItemClassNames.root, resetStyles, state.root.className);\n return state;\n};\n"],"names":["__resetStyles","mergeClasses","tokens","breadcrumbItemClassNames","root","useBreadcrumbItemResetStyles","useBreadcrumbItemStyles_unstable","state","resetStyles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;4BAGyB;;;oCAYY;;;;uBAdH,gBAAgB;AAEvD,MAAMG,2BAA2B;IACpCC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,4BAA4B,GAAA,WAAA,OAAGL,oBAAA,EAAA,YAAA,MAAA;IAAA;CAMpC,CAAC;AAGS,MAAMM,oCAAoCC,KAAK,IAAG;IACzD,aAAa;IACb,MAAMC,WAAW,GAAGH,4BAA4B,CAAC,CAAC;IAClDE,KAAK,CAACH,IAAI,CAACK,SAAS,OAAGR,mBAAY,EAACE,wBAAwB,CAACC,IAAI,EAAEI,WAAW,EAAED,KAAK,CAACH,IAAI,CAACK,SAAS,CAAC;IACrG,OAAOF,KAAK;AAChB,CAAC"}

View File

@@ -0,0 +1,37 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
breadcrumbItemClassNames: function() {
return breadcrumbItemClassNames;
},
useBreadcrumbItemStyles_unstable: function() {
return useBreadcrumbItemStyles_unstable;
}
});
const _react = require("@griffel/react");
const _reacttheme = require("@fluentui/react-theme");
const breadcrumbItemClassNames = {
root: 'fui-BreadcrumbItem'
};
const useBreadcrumbItemResetStyles = (0, _react.makeResetStyles)({
display: 'flex',
alignItems: 'center',
color: _reacttheme.tokens.colorNeutralForeground2,
boxSizing: 'border-box',
textWrap: 'nowrap'
});
const useBreadcrumbItemStyles_unstable = (state)=>{
'use no memo';
const resetStyles = useBreadcrumbItemResetStyles();
state.root.className = (0, _react.mergeClasses)(breadcrumbItemClassNames.root, resetStyles, state.root.className);
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbItem/useBreadcrumbItemStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { BreadcrumbItemSlots, BreadcrumbItemState } from './BreadcrumbItem.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\n\nexport const breadcrumbItemClassNames: SlotClassNames<BreadcrumbItemSlots> = {\n root: 'fui-BreadcrumbItem',\n};\n\nconst useBreadcrumbItemResetStyles = makeResetStyles({\n display: 'flex',\n alignItems: 'center',\n color: tokens.colorNeutralForeground2,\n boxSizing: 'border-box',\n textWrap: 'nowrap',\n});\n\n/**\n * Apply styling to the BreadcrumbItem slots based on the state\n */\nexport const useBreadcrumbItemStyles_unstable = (state: BreadcrumbItemState): BreadcrumbItemState => {\n 'use no memo';\n\n const resetStyles = useBreadcrumbItemResetStyles();\n\n state.root.className = mergeClasses(breadcrumbItemClassNames.root, resetStyles, state.root.className);\n\n return state;\n};\n"],"names":["makeResetStyles","mergeClasses","tokens","breadcrumbItemClassNames","root","useBreadcrumbItemResetStyles","display","alignItems","color","colorNeutralForeground2","boxSizing","textWrap","useBreadcrumbItemStyles_unstable","state","resetStyles","className"],"mappings":"AAAA;;;;;;;;;;;;4BAOaG;;;oCAeAS;;;;uBApBiC,iBAAiB;4BAGxC,wBAAwB;AAExC,MAAMT,2BAAgE;IAC3EC,MAAM;AACR,EAAE;AAEF,MAAMC,mCAA+BL,sBAAAA,EAAgB;IACnDM,SAAS;IACTC,YAAY;IACZC,OAAON,kBAAAA,CAAOO,uBAAuB;IACrCC,WAAW;IACXC,UAAU;AACZ;AAKO,MAAMC,mCAAmC,CAACC;IAC/C;IAEA,MAAMC,cAAcT;IAEpBQ,MAAMT,IAAI,CAACW,SAAS,OAAGd,mBAAAA,EAAaE,yBAAyBC,IAAI,EAAEU,aAAaD,MAAMT,IAAI,CAACW,SAAS;IAEpG,OAAOF;AACT,EAAE"}

View File

@@ -0,0 +1,110 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
Breadcrumb: function() {
return _Breadcrumb.Breadcrumb;
},
BreadcrumbButton: function() {
return _BreadcrumbButton.BreadcrumbButton;
},
BreadcrumbDivider: function() {
return _BreadcrumbDivider.BreadcrumbDivider;
},
BreadcrumbItem: function() {
return _BreadcrumbItem.BreadcrumbItem;
},
BreadcrumbProvider: function() {
return _Breadcrumb.BreadcrumbProvider;
},
breadcrumbButtonClassNames: function() {
return _BreadcrumbButton.breadcrumbButtonClassNames;
},
breadcrumbClassNames: function() {
return _Breadcrumb.breadcrumbClassNames;
},
breadcrumbDividerClassNames: function() {
return _BreadcrumbDivider.breadcrumbDividerClassNames;
},
breadcrumbItemClassNames: function() {
return _BreadcrumbItem.breadcrumbItemClassNames;
},
isTruncatableBreadcrumbContent: function() {
return _index.isTruncatableBreadcrumbContent;
},
partitionBreadcrumbItems: function() {
return _index.partitionBreadcrumbItems;
},
renderBreadcrumbButton_unstable: function() {
return _BreadcrumbButton.renderBreadcrumbButton_unstable;
},
renderBreadcrumbDivider_unstable: function() {
return _BreadcrumbDivider.renderBreadcrumbDivider_unstable;
},
renderBreadcrumbItem_unstable: function() {
return _BreadcrumbItem.renderBreadcrumbItem_unstable;
},
renderBreadcrumb_unstable: function() {
return _Breadcrumb.renderBreadcrumb_unstable;
},
truncateBreadcrumLongTooltip: function() {
return _index.truncateBreadcrumLongTooltip;
},
truncateBreadcrumbLongName: function() {
return _index.truncateBreadcrumbLongName;
},
useBreadcrumbA11yBehavior_unstable: function() {
return _Breadcrumb.useBreadcrumbA11yBehavior_unstable;
},
useBreadcrumbBase_unstable: function() {
return _Breadcrumb.useBreadcrumbBase_unstable;
},
useBreadcrumbButtonBase_unstable: function() {
return _BreadcrumbButton.useBreadcrumbButtonBase_unstable;
},
useBreadcrumbButtonStyles_unstable: function() {
return _BreadcrumbButton.useBreadcrumbButtonStyles_unstable;
},
useBreadcrumbButton_unstable: function() {
return _BreadcrumbButton.useBreadcrumbButton_unstable;
},
useBreadcrumbContext_unstable: function() {
return _Breadcrumb.useBreadcrumbContext_unstable;
},
useBreadcrumbDividerBase_unstable: function() {
return _BreadcrumbDivider.useBreadcrumbDividerBase_unstable;
},
useBreadcrumbDividerStyles_unstable: function() {
return _BreadcrumbDivider.useBreadcrumbDividerStyles_unstable;
},
useBreadcrumbDivider_unstable: function() {
return _BreadcrumbDivider.useBreadcrumbDivider_unstable;
},
useBreadcrumbItemBase_unstable: function() {
return _BreadcrumbItem.useBreadcrumbItemBase_unstable;
},
useBreadcrumbItemStyles_unstable: function() {
return _BreadcrumbItem.useBreadcrumbItemStyles_unstable;
},
useBreadcrumbItem_unstable: function() {
return _BreadcrumbItem.useBreadcrumbItem_unstable;
},
useBreadcrumbStyles_unstable: function() {
return _Breadcrumb.useBreadcrumbStyles_unstable;
},
useBreadcrumb_unstable: function() {
return _Breadcrumb.useBreadcrumb_unstable;
}
});
const _Breadcrumb = require("./Breadcrumb");
const _BreadcrumbDivider = require("./BreadcrumbDivider");
const _BreadcrumbItem = require("./BreadcrumbItem");
const _index = require("./utils/index");
const _BreadcrumbButton = require("./BreadcrumbButton");

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n Breadcrumb,\n renderBreadcrumb_unstable,\n useBreadcrumb_unstable,\n useBreadcrumbBase_unstable,\n useBreadcrumbA11yBehavior_unstable,\n useBreadcrumbStyles_unstable,\n breadcrumbClassNames,\n} from './Breadcrumb';\nexport type {\n BreadcrumbSlots,\n BreadcrumbProps,\n BreadcrumbState,\n BreadcrumbBaseProps,\n BreadcrumbBaseState,\n} from './Breadcrumb';\nexport {\n BreadcrumbDivider,\n breadcrumbDividerClassNames,\n renderBreadcrumbDivider_unstable,\n useBreadcrumbDividerStyles_unstable,\n useBreadcrumbDivider_unstable,\n useBreadcrumbDividerBase_unstable,\n} from './BreadcrumbDivider';\nexport type {\n BreadcrumbDividerProps,\n BreadcrumbDividerSlots,\n BreadcrumbDividerState,\n BreadcrumbDividerBaseProps,\n BreadcrumbDividerBaseState,\n} from './BreadcrumbDivider';\nexport {\n BreadcrumbItem,\n breadcrumbItemClassNames,\n renderBreadcrumbItem_unstable,\n useBreadcrumbItemStyles_unstable,\n useBreadcrumbItem_unstable,\n useBreadcrumbItemBase_unstable,\n} from './BreadcrumbItem';\nexport type {\n BreadcrumbItemProps,\n BreadcrumbItemSlots,\n BreadcrumbItemState,\n BreadcrumbItemBaseProps,\n BreadcrumbItemBaseState,\n} from './BreadcrumbItem';\nexport {\n partitionBreadcrumbItems,\n truncateBreadcrumbLongName,\n truncateBreadcrumLongTooltip,\n isTruncatableBreadcrumbContent,\n} from './utils/index';\nexport type { PartitionBreadcrumbItemsOptions, PartitionBreadcrumbItems } from './utils/index';\nexport {\n BreadcrumbButton,\n breadcrumbButtonClassNames,\n renderBreadcrumbButton_unstable,\n useBreadcrumbButtonStyles_unstable,\n useBreadcrumbButton_unstable,\n useBreadcrumbButtonBase_unstable,\n} from './BreadcrumbButton';\nexport type {\n BreadcrumbButtonProps,\n BreadcrumbButtonSlots,\n BreadcrumbButtonState,\n BreadcrumbButtonBaseProps,\n BreadcrumbButtonBaseState,\n} from './BreadcrumbButton';\nexport { BreadcrumbProvider, useBreadcrumbContext_unstable } from './Breadcrumb';\nexport type { BreadcrumbContextValues } from './Breadcrumb';\n"],"names":["Breadcrumb","renderBreadcrumb_unstable","useBreadcrumb_unstable","useBreadcrumbBase_unstable","useBreadcrumbA11yBehavior_unstable","useBreadcrumbStyles_unstable","breadcrumbClassNames","BreadcrumbDivider","breadcrumbDividerClassNames","renderBreadcrumbDivider_unstable","useBreadcrumbDividerStyles_unstable","useBreadcrumbDivider_unstable","useBreadcrumbDividerBase_unstable","BreadcrumbItem","breadcrumbItemClassNames","renderBreadcrumbItem_unstable","useBreadcrumbItemStyles_unstable","useBreadcrumbItem_unstable","useBreadcrumbItemBase_unstable","partitionBreadcrumbItems","truncateBreadcrumbLongName","truncateBreadcrumLongTooltip","isTruncatableBreadcrumbContent","BreadcrumbButton","breadcrumbButtonClassNames","renderBreadcrumbButton_unstable","useBreadcrumbButtonStyles_unstable","useBreadcrumbButton_unstable","useBreadcrumbButtonBase_unstable","BreadcrumbProvider","useBreadcrumbContext_unstable"],"mappings":";;;;;;;;;;;IACEA,UAAU;;;;eAqDVuB,kCAAgB;;;eArChBhB,oCAAiB;;;eAejBM,8BAAc;;;eAoCPgB,8BAAkB;;;eAbzBL,4CAA0B;;;eAhD1BlB,gCAAoB;;;eAWpBE,8CAA2B;;;eAe3BM,wCAAwB;;kCAiBM;eAA9BQ;;;eAHAH,+BAAwB;;IASxBM,+BAA+B;;;IArC/BhB;kEAAgC;;;eAehCM,6CAA6B;;;eAhC7Bd,qCAAyB;;;eA+CzBoB,mCAA4B;;;eAD5BD,iCAA0B;;;eA3C1BhB,8CAAkC;;;eADlCD,sCAA0B;;IAuD1ByB,gCAAgC;;;;eAFhCF,oDAAkC;;;eAClCC,8CAA4B;;;eAUDG,yCAA6B,QAAQ,eAAe;;;eA9C/ElB,oDAAiC;;;eAFjCF,sDAAmC;;;eACnCC,gDAA6B;;;eAgB7BO,8CAA8B;;;eAF9BF,gDAAgC;;;eAChCC,0CAA0B;;gCA9BE;eAA5BZ;;;eAHAH,kCAAsB;;;4BAKjB,eAAe;mCAef,sBAAsB;gCAetB,mBAAmB;uBAanB,gBAAgB;kCAShB,qBAAqB"}

View File

@@ -0,0 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
isTruncatableBreadcrumbContent: function() {
return _truncateBreadcrumb.isTruncatableBreadcrumbContent;
},
partitionBreadcrumbItems: function() {
return _partitionBreadcrumbItems.partitionBreadcrumbItems;
},
truncateBreadcrumLongTooltip: function() {
return _truncateBreadcrumb.truncateBreadcrumLongTooltip;
},
truncateBreadcrumbLongName: function() {
return _truncateBreadcrumb.truncateBreadcrumbLongName;
}
});
const _partitionBreadcrumbItems = require("./partitionBreadcrumbItems");
const _truncateBreadcrumb = require("./truncateBreadcrumb");

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/utils/index.ts"],"sourcesContent":["export { partitionBreadcrumbItems } from './partitionBreadcrumbItems';\nexport type { PartitionBreadcrumbItems, PartitionBreadcrumbItemsOptions } from './partitionBreadcrumbItems';\nexport {\n truncateBreadcrumbLongName,\n truncateBreadcrumLongTooltip,\n isTruncatableBreadcrumbContent,\n} from './truncateBreadcrumb';\n"],"names":["partitionBreadcrumbItems","truncateBreadcrumbLongName","truncateBreadcrumLongTooltip","isTruncatableBreadcrumbContent"],"mappings":";;;;;;;;;;;;eAKEG,kDAA8B;;;eALvBH,kDAAwB;;;eAI/BE,gDAA4B;;;eAD5BD,8CAA0B;;;0CAHa,6BAA6B;oCAM/D,uBAAuB"}

View File

@@ -0,0 +1,43 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "partitionBreadcrumbItems", {
enumerable: true,
get: function() {
return partitionBreadcrumbItems;
}
});
const DEFAULT_OVERFLOW_INDEX = 1;
const DEFAULT_MAX_DISPLAYED_ITEMS = 6;
const partitionBreadcrumbItems = (options)=>{
let startDisplayedItems;
let overflowItems;
let endDisplayedItems;
const { items = [] } = options;
const itemsCount = items.length;
const maxDisplayedItems = getMaxDisplayedItems(options.maxDisplayedItems);
var _options_overflowIndex;
let overflowIndex = (_options_overflowIndex = options.overflowIndex) !== null && _options_overflowIndex !== void 0 ? _options_overflowIndex : DEFAULT_OVERFLOW_INDEX;
startDisplayedItems = items.slice(0, overflowIndex);
const numberItemsToHide = itemsCount - maxDisplayedItems;
if (numberItemsToHide > 0) {
overflowIndex = overflowIndex >= maxDisplayedItems ? maxDisplayedItems - 1 : overflowIndex;
const menuLastItemIdx = overflowIndex + numberItemsToHide;
startDisplayedItems = startDisplayedItems.slice(0, overflowIndex);
overflowItems = items.slice(overflowIndex, menuLastItemIdx);
if (menuLastItemIdx < itemsCount) {
endDisplayedItems = items.slice(menuLastItemIdx, itemsCount);
}
} else if (overflowIndex < itemsCount) {
endDisplayedItems = items.slice(overflowIndex, itemsCount);
}
return {
startDisplayedItems,
overflowItems,
endDisplayedItems
};
};
function getMaxDisplayedItems(maxDisplayedItems) {
return maxDisplayedItems && maxDisplayedItems >= 0 ? maxDisplayedItems : DEFAULT_MAX_DISPLAYED_ITEMS;
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/utils/partitionBreadcrumbItems.ts"],"sourcesContent":["const DEFAULT_OVERFLOW_INDEX = 1;\nconst DEFAULT_MAX_DISPLAYED_ITEMS = 6;\n\nexport type PartitionBreadcrumbItemsOptions<T> = {\n items: readonly T[];\n maxDisplayedItems?: number;\n overflowIndex?: number;\n};\n\nexport type PartitionBreadcrumbItems<T> = {\n startDisplayedItems: readonly T[];\n overflowItems?: readonly T[];\n endDisplayedItems?: readonly T[];\n};\n\n/**\n * Get the displayed items and overflowing items based on the array of BreadcrumbItems needed for Breadcrumb.\n *\n * @param options - Configure the partition options\n *\n * @returns Three arrays split into displayed items and overflow items based on maxDisplayedItems.\n */\nexport const partitionBreadcrumbItems = <T>(\n options: PartitionBreadcrumbItemsOptions<T>,\n): PartitionBreadcrumbItems<T> => {\n let startDisplayedItems;\n let overflowItems;\n let endDisplayedItems;\n\n const { items = [] } = options;\n const itemsCount = items.length;\n const maxDisplayedItems = getMaxDisplayedItems(options.maxDisplayedItems);\n let overflowIndex = options.overflowIndex ?? DEFAULT_OVERFLOW_INDEX;\n startDisplayedItems = items.slice(0, overflowIndex);\n\n const numberItemsToHide = itemsCount - maxDisplayedItems;\n\n if (numberItemsToHide > 0) {\n overflowIndex = overflowIndex >= maxDisplayedItems ? maxDisplayedItems - 1 : overflowIndex;\n const menuLastItemIdx = overflowIndex + numberItemsToHide;\n\n startDisplayedItems = startDisplayedItems.slice(0, overflowIndex);\n overflowItems = items.slice(overflowIndex, menuLastItemIdx);\n if (menuLastItemIdx < itemsCount) {\n endDisplayedItems = items.slice(menuLastItemIdx, itemsCount);\n }\n } else if (overflowIndex < itemsCount) {\n endDisplayedItems = items.slice(overflowIndex, itemsCount);\n }\n\n return {\n startDisplayedItems,\n overflowItems,\n endDisplayedItems,\n };\n};\n\nfunction getMaxDisplayedItems(maxDisplayedItems: number | undefined) {\n return maxDisplayedItems && maxDisplayedItems >= 0 ? maxDisplayedItems : DEFAULT_MAX_DISPLAYED_ITEMS;\n}\n"],"names":["DEFAULT_OVERFLOW_INDEX","DEFAULT_MAX_DISPLAYED_ITEMS","partitionBreadcrumbItems","options","startDisplayedItems","overflowItems","endDisplayedItems","items","itemsCount","length","maxDisplayedItems","getMaxDisplayedItems","overflowIndex","slice","numberItemsToHide","menuLastItemIdx"],"mappings":";;;;+BAsBaE;;;;;;AAtBb,MAAMF,yBAAyB;AAC/B,MAAMC,8BAA8B;AAqB7B,iCAAiC,CACtCE;IAEA,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,MAAM,EAAEC,QAAQ,EAAE,EAAE,GAAGJ;IACvB,MAAMK,aAAaD,MAAME,MAAM;IAC/B,MAAMC,oBAAoBC,qBAAqBR,QAAQO,iBAAiB;QACpDP;IAApB,IAAIS,gBAAgBT,CAAAA,yBAAAA,QAAQS,aAAAA,AAAa,MAAA,QAArBT,2BAAAA,KAAAA,IAAAA,yBAAyBH;IAC7CI,sBAAsBG,MAAMM,KAAK,CAAC,GAAGD;IAErC,MAAME,oBAAoBN,aAAaE;IAEvC,IAAII,oBAAoB,GAAG;QACzBF,gBAAgBA,iBAAiBF,oBAAoBA,oBAAoB,IAAIE;QAC7E,MAAMG,kBAAkBH,gBAAgBE;QAExCV,sBAAsBA,oBAAoBS,KAAK,CAAC,GAAGD;QACnDP,gBAAgBE,MAAMM,KAAK,CAACD,eAAeG;QAC3C,IAAIA,kBAAkBP,YAAY;YAChCF,oBAAoBC,MAAMM,KAAK,CAACE,iBAAiBP;QACnD;IACF,OAAO,IAAII,gBAAgBJ,YAAY;QACrCF,oBAAoBC,MAAMM,KAAK,CAACD,eAAeJ;IACjD;IAEA,OAAO;QACLJ;QACAC;QACAC;IACF;AACF,EAAE;AAEF,SAASK,qBAAqBD,iBAAqC;IACjE,OAAOA,qBAAqBA,qBAAqB,IAAIA,oBAAoBT;AAC3E"}

View File

@@ -0,0 +1,37 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
isTruncatableBreadcrumbContent: function() {
return isTruncatableBreadcrumbContent;
},
truncateBreadcrumLongTooltip: function() {
return truncateBreadcrumLongTooltip;
},
truncateBreadcrumbLongName: function() {
return truncateBreadcrumbLongName;
}
});
const MAX_NAME_LENGTH = 30;
const MAX_TOOLTIP_LENGTH = 80;
const truncateBreadcrumb = (content, maxLength)=>{
return isTruncatableBreadcrumbContent(content, maxLength) ? content.trim().slice(0, maxLength).concat('...') : content;
};
const isTruncatableBreadcrumbContent = (content, maxLength)=>{
return content.length > maxLength;
};
const truncateBreadcrumbLongName = (content, maxLength)=>{
const truncateLength = maxLength || MAX_NAME_LENGTH;
return truncateBreadcrumb(content, truncateLength);
};
const truncateBreadcrumLongTooltip = (content, maxLength)=>{
const truncateLength = maxLength || MAX_TOOLTIP_LENGTH;
return truncateBreadcrumb(content, truncateLength);
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/utils/truncateBreadcrumb.ts"],"sourcesContent":["const MAX_NAME_LENGTH = 30;\nconst MAX_TOOLTIP_LENGTH = 80;\n\nconst truncateBreadcrumb = (content: string, maxLength: number): string => {\n return isTruncatableBreadcrumbContent(content, maxLength)\n ? content.trim().slice(0, maxLength).concat('...')\n : content;\n};\n\nexport const isTruncatableBreadcrumbContent = (content: string, maxLength: number): boolean => {\n return content.length > maxLength;\n};\n\nexport const truncateBreadcrumbLongName = (content: string, maxLength?: number): string => {\n const truncateLength = maxLength || MAX_NAME_LENGTH;\n return truncateBreadcrumb(content, truncateLength);\n};\n\nexport const truncateBreadcrumLongTooltip = (content: string, maxLength?: number): string => {\n const truncateLength = maxLength || MAX_TOOLTIP_LENGTH;\n return truncateBreadcrumb(content, truncateLength);\n};\n"],"names":["MAX_NAME_LENGTH","MAX_TOOLTIP_LENGTH","truncateBreadcrumb","content","maxLength","isTruncatableBreadcrumbContent","trim","slice","concat","length","truncateBreadcrumbLongName","truncateLength","truncateBreadcrumLongTooltip"],"mappings":";;;;;;;;;;;kCASaK;;;gCASAO;;;8BALAF;;;;AAbb,MAAMV,kBAAkB;AACxB,MAAMC,qBAAqB;AAE3B,MAAMC,qBAAqB,CAACC,SAAiBC;IAC3C,OAAOC,+BAA+BF,SAASC,aAC3CD,QAAQG,IAAI,GAAGC,KAAK,CAAC,GAAGH,WAAWI,MAAM,CAAC,SAC1CL;AACN;AAEO,MAAME,iCAAiC,CAACF,SAAiBC;IAC9D,OAAOD,QAAQM,MAAM,GAAGL;AAC1B,EAAE;AAEK,MAAMM,6BAA6B,CAACP,SAAiBC;IAC1D,MAAMO,iBAAiBP,aAAaJ;IACpC,OAAOE,mBAAmBC,SAASQ;AACrC,EAAE;AAEK,MAAMC,+BAA+B,CAACT,SAAiBC;IAC5D,MAAMO,iBAAiBP,aAAaH;IACpC,OAAOC,mBAAmBC,SAASQ;AACrC,EAAE"}

View File

@@ -0,0 +1 @@
export { Breadcrumb, BreadcrumbProvider, breadcrumbClassNames, breadcrumbDefaultValue, renderBreadcrumb_unstable, useBreadcrumbContext_unstable, useBreadcrumbStyles_unstable, useBreadcrumb_unstable, useBreadcrumbBase_unstable, useBreadcrumbA11yBehavior_unstable } from './components/Breadcrumb/index';

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1 @@
export { BreadcrumbButton, breadcrumbButtonClassNames, renderBreadcrumbButton_unstable, useBreadcrumbButtonStyles_unstable, useBreadcrumbButton_unstable, useBreadcrumbButtonBase_unstable } from './components/BreadcrumbButton/index';

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1 @@
export { BreadcrumbDivider, breadcrumbDividerClassNames, renderBreadcrumbDivider_unstable, useBreadcrumbDividerStyles_unstable, useBreadcrumbDivider_unstable, useBreadcrumbDividerBase_unstable } from './components/BreadcrumbDivider/index';

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1 @@
export { BreadcrumbItem, breadcrumbItemClassNames, renderBreadcrumbItem_unstable, useBreadcrumbItemStyles_unstable, useBreadcrumbItem_unstable, useBreadcrumbItemBase_unstable } from './components/BreadcrumbItem/index';

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,17 @@
'use client';
import * as React from 'react';
import { useBreadcrumb_unstable } from './useBreadcrumb';
import { renderBreadcrumb_unstable } from './renderBreadcrumb';
import { useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';
import { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
/**
* Breadcrumb component - TODO: add more docs
*/ export const Breadcrumb = /*#__PURE__*/ React.forwardRef((props, ref)=>{
const state = useBreadcrumb_unstable(props, ref);
const contextValues = useBreadcrumbContextValues_unstable(state);
useBreadcrumbStyles_unstable(state);
useCustomStyleHook_unstable('useBreadcrumbStyles_unstable')(state);
return renderBreadcrumb_unstable(state, contextValues);
});
Breadcrumb.displayName = 'Breadcrumb';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useBreadcrumb_unstable } from './useBreadcrumb';\nimport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nimport { useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\nimport type { BreadcrumbProps } from './Breadcrumb.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Breadcrumb component - TODO: add more docs\n */\nexport const Breadcrumb: ForwardRefComponent<BreadcrumbProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumb_unstable(props, ref);\n const contextValues = useBreadcrumbContextValues_unstable(state);\n\n useBreadcrumbStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbStyles_unstable')(state);\n\n return renderBreadcrumb_unstable(state, contextValues);\n});\n\nBreadcrumb.displayName = 'Breadcrumb';\n"],"names":["React","useBreadcrumb_unstable","renderBreadcrumb_unstable","useBreadcrumbStyles_unstable","useBreadcrumbContextValues_unstable","useCustomStyleHook_unstable","Breadcrumb","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,4BAA4B,QAAQ,+BAA+B;AAG5E,SAASC,mCAAmC,QAAQ,8BAA8B;AAClF,SAASC,2BAA2B,QAAQ,kCAAkC;AAE9E;;CAEC,GACD,OAAO,MAAMC,2BAAmDN,MAAMO,UAAU,CAAC,CAACC,OAAOC;IACvF,MAAMC,QAAQT,uBAAuBO,OAAOC;IAC5C,MAAME,gBAAgBP,oCAAoCM;IAE1DP,6BAA6BO;IAC7BL,4BAA4B,gCAAgCK;IAE5D,OAAOR,0BAA0BQ,OAAOC;AAC1C,GAAG;AAEHL,WAAWM,WAAW,GAAG"}

View File

@@ -0,0 +1 @@
export { };

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,17 @@
'use client';
import * as React from 'react';
const BreadcrumbContext = React.createContext(undefined);
/**
* @internal
*/ export const breadcrumbDefaultValue = {
size: 'medium'
};
/**
* @internal
*/ export const BreadcrumbProvider = BreadcrumbContext.Provider;
/**
* @internal
*/ export const useBreadcrumbContext_unstable = ()=>{
var _React_useContext;
return (_React_useContext = React.useContext(BreadcrumbContext)) !== null && _React_useContext !== void 0 ? _React_useContext : breadcrumbDefaultValue;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/BreadcrumbContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { BreadcrumbContextValues } from './Breadcrumb.types';\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValues | undefined>(undefined);\n\n/**\n * @internal\n */\nexport const breadcrumbDefaultValue: BreadcrumbContextValues = {\n size: 'medium',\n};\n\n/**\n * @internal\n */\nexport const BreadcrumbProvider = BreadcrumbContext.Provider;\n\n/**\n * @internal\n */\nexport const useBreadcrumbContext_unstable = (): BreadcrumbContextValues =>\n React.useContext(BreadcrumbContext) ?? breadcrumbDefaultValue;\n"],"names":["React","BreadcrumbContext","createContext","undefined","breadcrumbDefaultValue","size","BreadcrumbProvider","Provider","useBreadcrumbContext_unstable","useContext"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAG/B,MAAMC,oBAAoBD,MAAME,aAAa,CAAsCC;AAEnF;;CAEC,GACD,OAAO,MAAMC,yBAAkD;IAC7DC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMC,qBAAqBL,kBAAkBM,QAAQ,CAAC;AAE7D;;CAEC,GACD,OAAO,MAAMC,gCAAgC;QAC3CR;WAAAA,CAAAA,oBAAAA,MAAMS,UAAU,CAACR,gCAAjBD,+BAAAA,oBAAuCI;EAAuB"}

View File

@@ -0,0 +1,5 @@
export { Breadcrumb } from './Breadcrumb';
export { BreadcrumbProvider, breadcrumbDefaultValue, useBreadcrumbContext_unstable } from './BreadcrumbContext';
export { renderBreadcrumb_unstable } from './renderBreadcrumb';
export { useBreadcrumb_unstable, useBreadcrumbBase_unstable, useBreadcrumbA11yBehavior_unstable } from './useBreadcrumb';
export { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';

View File

@@ -0,0 +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"}

View File

@@ -0,0 +1,16 @@
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
import { assertSlots } from '@fluentui/react-utilities';
import { BreadcrumbProvider } from './BreadcrumbContext';
/**
* Render the final JSX of Breadcrumb
*/ export const renderBreadcrumb_unstable = (state, contextValues)=>{
assertSlots(state);
return /*#__PURE__*/ _jsx(state.root, {
children: /*#__PURE__*/ _jsx(BreadcrumbProvider, {
value: contextValues,
children: state.list && /*#__PURE__*/ _jsx(state.list, {
children: state.root.children
})
})
});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/renderBreadcrumb.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\nimport { BreadcrumbProvider } from './BreadcrumbContext';\nimport type { BreadcrumbState, BreadcrumbSlots, BreadcrumbContextValues } from './Breadcrumb.types';\n/**\n * Render the final JSX of Breadcrumb\n */\nexport const renderBreadcrumb_unstable = (\n state: BreadcrumbState,\n contextValues: BreadcrumbContextValues,\n): JSXElement => {\n assertSlots<BreadcrumbSlots>(state);\n return (\n <state.root>\n <BreadcrumbProvider value={contextValues}>\n {state.list && <state.list>{state.root.children}</state.list>}\n </BreadcrumbProvider>\n </state.root>\n );\n};\n"],"names":["assertSlots","BreadcrumbProvider","renderBreadcrumb_unstable","state","contextValues","root","value","list","children"],"mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,4BAA4B;AAGxD,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CACvCC,OACAC;IAEAJ,YAA6BG;IAC7B,qBACE,KAACA,MAAME,IAAI;kBACT,cAAA,KAACJ;YAAmBK,OAAOF;sBACxBD,MAAMI,IAAI,kBAAI,KAACJ,MAAMI,IAAI;0BAAEJ,MAAME,IAAI,CAACG,QAAQ;;;;AAIvD,EAAE"}

View File

@@ -0,0 +1,72 @@
'use client';
import * as React from 'react';
import { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';
import { useArrowNavigationGroup } from '@fluentui/react-tabster';
/**
* Create the state required to render Breadcrumb.
*
* The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,
* before being passed to renderBreadcrumb_unstable.
*
* @param props - props from this instance of Breadcrumb
* @param ref - reference to root HTMLElement of Breadcrumb
*/ export const useBreadcrumb_unstable = (props, ref)=>{
const { focusMode = 'tab', size = 'medium', ...breadcrumbProps } = props;
const state = useBreadcrumbBase_unstable(breadcrumbProps, ref);
const focusAttributes = useBreadcrumbA11yBehavior_unstable({
focusMode
});
return {
...state,
root: {
...focusAttributes,
...state.root
},
size
};
};
/**
* Base hook for Breadcrumb component, which manages state related to slots structure and ARIA attributes.
*
* Note: keyboard navigation behavior is not handled in this hook, but in useBreadcrumbA11yBehavior_unstable.
*
* @param props - props from this instance of Breadcrumb
* @param ref - reference to root HTMLElement of Breadcrumb
*/ export const useBreadcrumbBase_unstable = (props, ref)=>{
const { focusMode = 'tab', list, ...rest } = props;
var _props_arialabel;
return {
components: {
root: 'nav',
list: 'ol'
},
root: slot.always(getIntrinsicElementProps('nav', {
ref,
'aria-label': (_props_arialabel = props['aria-label']) !== null && _props_arialabel !== void 0 ? _props_arialabel : 'breadcrumb',
...rest
}), {
elementType: 'nav'
}),
list: slot.optional(list, {
renderByDefault: true,
defaultProps: {
role: 'list'
},
elementType: 'ol'
})
};
};
/**
* Hook to get accessibility attributes for Breadcrumb component, such as roving tab index.
* Based on Tabster's useArrowNavigationGroup.
*
* @param focusMode - whether the Breadcrumb uses arrow key navigation or tab key navigation
* @returns Tabster DOM attributes
*/ export const useBreadcrumbA11yBehavior_unstable = ({ focusMode })=>{
const focusAttributes = useArrowNavigationGroup({
circular: true,
axis: 'horizontal',
memorizeCurrent: true
});
return focusMode === 'arrow' ? focusAttributes : {};
};

View File

@@ -0,0 +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"}

Some files were not shown because too many files have changed in this diff Show More