diff --git a/CHANGELOG.md b/CHANGELOG.md index ca5488be..ce325296 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ -## [8.17.0](https://github.com/AxisCommunications/fluent-components/compare/38eb6078d96f18c71c51a22f52961daa9062e015..140904fbfd3c56bde08d14c6f33968552e227e77) (2024-03-05T10:45:19.659Z) +## [8.18.0](https://github.com/AxisCommunications/fluent-components/compare/f5b6b274dacd01e30374f6e1a60798b9a411f511..703ba4dbf8a00c1b6791ee548753cd9a94b1bf47) (2024-03-14T14:05:47.206Z) -### 🐛 Bug fixes +### 🚧 Maintenance - - **topbar**: use correct my systems icon (#220) ([140904f](https://github.com/AxisCommunications/fluent-components/commit/140904fbfd3c56bde08d14c6f33968552e227e77)) + - add classNames for stepper part (#224) ([703ba4d](https://github.com/AxisCommunications/fluent-components/commit/703ba4dbf8a00c1b6791ee548753cd9a94b1bf47)) + - bump react in examples (#223) ([5dc135a](https://github.com/AxisCommunications/fluent-components/commit/5dc135a550c835b2f026bcd3871db469a5cbd004)) diff --git a/components/password-input/package.json b/components/password-input/package.json index ecd5905b..8f452cb3 100644 --- a/components/password-input/package.json +++ b/components/password-input/package.json @@ -1,6 +1,6 @@ { "name": "@axiscommunications/fluent-password-input", - "version": "8.17.0", + "version": "8.18.0", "description": "Password input for Fluent UI v9", "homepage": "https://github.com/AxisCommunications/fluent-components#readme", "repository": { diff --git a/components/slider/package.json b/components/slider/package.json index bbafb726..44be8530 100644 --- a/components/slider/package.json +++ b/components/slider/package.json @@ -1,6 +1,6 @@ { "name": "@axiscommunications/fluent-slider", - "version": "8.17.0", + "version": "8.18.0", "description": "Axis branded Slider", "homepage": "https://github.com/AxisCommunications/fluent-components#readme", "repository": { diff --git a/components/stepper/package.json b/components/stepper/package.json index 0fa48a53..8ebf35f6 100644 --- a/components/stepper/package.json +++ b/components/stepper/package.json @@ -1,6 +1,6 @@ { "name": "@axiscommunications/fluent-stepper", - "version": "8.17.0", + "version": "8.18.0", "description": "Stepper for Fluent UI v9", "homepage": "https://github.com/AxisCommunications/fluent-components#readme", "repository": { diff --git a/components/stepper/src/index.ts b/components/stepper/src/index.ts index 32f55811..28272f6e 100644 --- a/components/stepper/src/index.ts +++ b/components/stepper/src/index.ts @@ -1,4 +1,5 @@ export { Stepper } from "./stepper"; export { StepperDialog } from "./stepper-dialog"; +export { StepperDialogClassNames } from "./stepper-dialog.styles"; export type { DialogStep, StepperDialogProps } from "./stepper-dialog.types"; export type { Step, StepperProps } from "./stepper.types"; diff --git a/components/stepper/src/stepper-dialog.styles.ts b/components/stepper/src/stepper-dialog.styles.ts index fd83b875..ed0159bf 100644 --- a/components/stepper/src/stepper-dialog.styles.ts +++ b/components/stepper/src/stepper-dialog.styles.ts @@ -1,6 +1,25 @@ -import { makeStyles, shorthands, tokens } from "@fluentui/react-components"; +import { + makeStyles, + mergeClasses, + shorthands, + tokens, +} from "@fluentui/react-components"; -export const useStepperDialogStyles = makeStyles({ +const ROOT_CLASS_NAME = "axis-StepperDialog"; + +export const StepperDialogClassNames = { + root: ROOT_CLASS_NAME, + container: `${ROOT_CLASS_NAME}-container`, + content: `${ROOT_CLASS_NAME}-content`, + buttonContainer: `${ROOT_CLASS_NAME}-buttons-container`, + buttons: `${ROOT_CLASS_NAME}-buttons`, + cancel: `${ROOT_CLASS_NAME}-cancel`, + previous: `${ROOT_CLASS_NAME}-previous`, + next: `${ROOT_CLASS_NAME}-next`, + finish: `${ROOT_CLASS_NAME}-finish`, +}; + +const useStyles = makeStyles({ root: { display: "flex", flexDirection: "column", @@ -35,3 +54,56 @@ export const useStepperDialogStyles = makeStyles({ ...shorthands.gap(tokens.spacingHorizontalL), }, }); + +type TUseStepperDialogStyles = { + className?: string; + vertical?: boolean; +}; + +export function useStepperDialogStyles({ + vertical, + className, +}: TUseStepperDialogStyles) { + const styles = useStyles(); + + const rootStyles = mergeClasses( + StepperDialogClassNames.root, + styles.root, + className + ); + const containerStyles = mergeClasses( + StepperDialogClassNames.container, + styles.stepperContainer, + vertical && styles.stepperContainerVertical + ); + const contentStyles = mergeClasses( + StepperDialogClassNames.content, + styles.stepContent + ); + const buttonContainerStyles = mergeClasses( + StepperDialogClassNames.buttonContainer, + styles.buttonContainer + ); + const buttonStyles = mergeClasses( + StepperDialogClassNames.buttons, + styles.buttons + ); + + const buttonCancel = mergeClasses(StepperDialogClassNames.cancel); + const buttonPrevious = mergeClasses(StepperDialogClassNames.previous); + const buttonNext = mergeClasses(StepperDialogClassNames.next); + const buttonFinish = mergeClasses(StepperDialogClassNames.finish); + + return { + styles, + rootStyles, + containerStyles, + contentStyles, + buttonContainerStyles, + buttonStyles, + buttonCancel, + buttonPrevious, + buttonNext, + buttonFinish, + }; +} diff --git a/components/stepper/src/stepper-dialog.tsx b/components/stepper/src/stepper-dialog.tsx index f078dcac..1f8640b1 100644 --- a/components/stepper/src/stepper-dialog.tsx +++ b/components/stepper/src/stepper-dialog.tsx @@ -1,8 +1,8 @@ +import { Button } from "@fluentui/react-components"; import React, { useCallback } from "react"; -import { Button, mergeClasses } from "@fluentui/react-components"; +import { Stepper } from "./stepper"; import { useStepperDialogStyles } from "./stepper-dialog.styles"; import { StepperDialogProps } from "./stepper-dialog.types"; -import { Stepper } from "./stepper"; export const StepperDialog = ({ currentStep, @@ -16,7 +16,20 @@ export const StepperDialog = ({ nextLabel, previousLabel, finishLabel, + className, }: StepperDialogProps) => { + const { + rootStyles, + containerStyles, + contentStyles, + buttonContainerStyles, + buttonStyles, + buttonCancel, + buttonPrevious, + buttonNext, + buttonFinish, + } = useStepperDialogStyles({ vertical, className }); + const onNext = useCallback( () => onStepChange(currentStep + 1), [currentStep, onStepChange] @@ -25,15 +38,10 @@ export const StepperDialog = ({ () => onStepChange(currentStep - 1), [currentStep, onStepChange] ); - const styles = useStepperDialogStyles(); - const rootStyles = mergeClasses("axis-StepperDialog", styles.root); - const stepperContainerStyles = mergeClasses( - styles.stepperContainer, - vertical && styles.stepperContainerVertical - ); + return (