@salt-ds/core 1.44.0 → 1.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/css/salt-core.css +449 -11
  3. package/dist-cjs/combo-box/ComboBox.js +4 -1
  4. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  5. package/dist-cjs/dropdown/Dropdown.js +6 -2
  6. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  7. package/dist-cjs/index.js +4 -0
  8. package/dist-cjs/index.js.map +1 -1
  9. package/dist-cjs/list-box/ListBox.js +6 -2
  10. package/dist-cjs/list-box/ListBox.js.map +1 -1
  11. package/dist-cjs/list-control/ListControlState.js +6 -5
  12. package/dist-cjs/list-control/ListControlState.js.map +1 -1
  13. package/dist-cjs/stepper/Step.css.js +6 -0
  14. package/dist-cjs/stepper/Step.css.js.map +1 -0
  15. package/dist-cjs/stepper/Step.js +166 -0
  16. package/dist-cjs/stepper/Step.js.map +1 -0
  17. package/dist-cjs/stepper/Stepper.css.js +6 -0
  18. package/dist-cjs/stepper/Stepper.css.js.map +1 -0
  19. package/dist-cjs/stepper/Stepper.js +40 -0
  20. package/dist-cjs/stepper/Stepper.js.map +1 -0
  21. package/dist-cjs/stepper/internal/StepConnector.css.js +6 -0
  22. package/dist-cjs/stepper/internal/StepConnector.css.js.map +1 -0
  23. package/dist-cjs/stepper/internal/StepConnector.js +27 -0
  24. package/dist-cjs/stepper/internal/StepConnector.js.map +1 -0
  25. package/dist-cjs/stepper/internal/StepExpandTrigger.css.js +6 -0
  26. package/dist-cjs/stepper/internal/StepExpandTrigger.css.js.map +1 -0
  27. package/dist-cjs/stepper/internal/StepExpandTrigger.js +45 -0
  28. package/dist-cjs/stepper/internal/StepExpandTrigger.js.map +1 -0
  29. package/dist-cjs/stepper/internal/StepIcon.css.js +6 -0
  30. package/dist-cjs/stepper/internal/StepIcon.css.js.map +1 -0
  31. package/dist-cjs/stepper/internal/StepIcon.js +62 -0
  32. package/dist-cjs/stepper/internal/StepIcon.js.map +1 -0
  33. package/dist-cjs/stepper/internal/StepScreenReaderOnly.js +13 -0
  34. package/dist-cjs/stepper/internal/StepScreenReaderOnly.js.map +1 -0
  35. package/dist-cjs/stepper/internal/StepText.css.js +6 -0
  36. package/dist-cjs/stepper/internal/StepText.css.js.map +1 -0
  37. package/dist-cjs/stepper/internal/StepText.js +50 -0
  38. package/dist-cjs/stepper/internal/StepText.js.map +1 -0
  39. package/dist-cjs/stepper/internal/StepperProvider.js +19 -0
  40. package/dist-cjs/stepper/internal/StepperProvider.js.map +1 -0
  41. package/dist-cjs/toggle-button/ToggleButton.css.js +1 -1
  42. package/dist-cjs/toggle-button/ToggleButton.js +32 -19
  43. package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
  44. package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js +1 -1
  45. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +30 -6
  46. package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  47. package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  48. package/dist-es/combo-box/ComboBox.js +4 -1
  49. package/dist-es/combo-box/ComboBox.js.map +1 -1
  50. package/dist-es/dropdown/Dropdown.js +6 -2
  51. package/dist-es/dropdown/Dropdown.js.map +1 -1
  52. package/dist-es/index.js +2 -0
  53. package/dist-es/index.js.map +1 -1
  54. package/dist-es/list-box/ListBox.js +6 -2
  55. package/dist-es/list-box/ListBox.js.map +1 -1
  56. package/dist-es/list-control/ListControlState.js +6 -5
  57. package/dist-es/list-control/ListControlState.js.map +1 -1
  58. package/dist-es/stepper/Step.css.js +4 -0
  59. package/dist-es/stepper/Step.css.js.map +1 -0
  60. package/dist-es/stepper/Step.js +164 -0
  61. package/dist-es/stepper/Step.js.map +1 -0
  62. package/dist-es/stepper/Stepper.css.js +4 -0
  63. package/dist-es/stepper/Stepper.css.js.map +1 -0
  64. package/dist-es/stepper/Stepper.js +38 -0
  65. package/dist-es/stepper/Stepper.js.map +1 -0
  66. package/dist-es/stepper/internal/StepConnector.css.js +4 -0
  67. package/dist-es/stepper/internal/StepConnector.css.js.map +1 -0
  68. package/dist-es/stepper/internal/StepConnector.js +25 -0
  69. package/dist-es/stepper/internal/StepConnector.js.map +1 -0
  70. package/dist-es/stepper/internal/StepExpandTrigger.css.js +4 -0
  71. package/dist-es/stepper/internal/StepExpandTrigger.css.js.map +1 -0
  72. package/dist-es/stepper/internal/StepExpandTrigger.js +43 -0
  73. package/dist-es/stepper/internal/StepExpandTrigger.js.map +1 -0
  74. package/dist-es/stepper/internal/StepIcon.css.js +4 -0
  75. package/dist-es/stepper/internal/StepIcon.css.js.map +1 -0
  76. package/dist-es/stepper/internal/StepIcon.js +60 -0
  77. package/dist-es/stepper/internal/StepIcon.js.map +1 -0
  78. package/dist-es/stepper/internal/StepScreenReaderOnly.js +11 -0
  79. package/dist-es/stepper/internal/StepScreenReaderOnly.js.map +1 -0
  80. package/dist-es/stepper/internal/StepText.css.js +4 -0
  81. package/dist-es/stepper/internal/StepText.css.js.map +1 -0
  82. package/dist-es/stepper/internal/StepText.js +48 -0
  83. package/dist-es/stepper/internal/StepText.js.map +1 -0
  84. package/dist-es/stepper/internal/StepperProvider.js +15 -0
  85. package/dist-es/stepper/internal/StepperProvider.js.map +1 -0
  86. package/dist-es/toggle-button/ToggleButton.css.js +1 -1
  87. package/dist-es/toggle-button/ToggleButton.js +32 -19
  88. package/dist-es/toggle-button/ToggleButton.js.map +1 -1
  89. package/dist-es/toggle-button-group/ToggleButtonGroup.css.js +1 -1
  90. package/dist-es/toggle-button-group/ToggleButtonGroup.js +30 -6
  91. package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -1
  92. package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -1
  93. package/dist-types/combo-box/useComboBox.d.ts +7 -7
  94. package/dist-types/index.d.ts +1 -0
  95. package/dist-types/list-control/ListControlState.d.ts +7 -7
  96. package/dist-types/stepper/Step.d.ts +46 -0
  97. package/dist-types/stepper/Stepper.d.ts +9 -0
  98. package/dist-types/stepper/index.d.ts +2 -0
  99. package/dist-types/stepper/internal/StepConnector.d.ts +1 -0
  100. package/dist-types/stepper/internal/StepExpandTrigger.d.ts +5 -0
  101. package/dist-types/stepper/internal/StepIcon.d.ts +8 -0
  102. package/dist-types/stepper/internal/StepScreenReaderOnly.d.ts +5 -0
  103. package/dist-types/stepper/internal/StepText.d.ts +5 -0
  104. package/dist-types/stepper/internal/StepperProvider.d.ts +9 -0
  105. package/dist-types/toggle-button/ToggleButton.d.ts +25 -1
  106. package/dist-types/toggle-button-group/ToggleButtonGroup.d.ts +16 -2
  107. package/dist-types/toggle-button-group/ToggleButtonGroupContext.d.ts +6 -2
  108. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ import type { ButtonProps } from "../button";
3
+ export interface StepProps extends Omit<ComponentPropsWithoutRef<"li">, "onToggle"> {
4
+ /**
5
+ * The label of the step
6
+ */
7
+ label?: ReactNode;
8
+ /**
9
+ * Description text is displayed just below the label
10
+ **/
11
+ description?: ReactNode;
12
+ /**
13
+ * Optional string to determine the status of the step.
14
+ */
15
+ status?: StepStatus;
16
+ /**
17
+ * The stage of the step
18
+ */
19
+ stage?: StepStage;
20
+ /**
21
+ * Whether the step item is expanded.
22
+ */
23
+ expanded?: boolean;
24
+ /**
25
+ * Initial expanded state of the step.
26
+ */
27
+ defaultExpanded?: boolean;
28
+ /**
29
+ * Callback fired when the step is toggled.
30
+ */
31
+ onToggle?: ButtonProps["onClick"];
32
+ }
33
+ export declare type StepId = string;
34
+ export declare type StepStatus = "warning" | "error";
35
+ export declare type StepStage = "pending" | "locked" | "completed" | "inprogress" | "active";
36
+ export declare type StepDepth = number;
37
+ export interface StepProps extends Omit<ComponentPropsWithoutRef<"li">, "onToggle"> {
38
+ label?: ReactNode;
39
+ description?: ReactNode;
40
+ status?: StepStatus;
41
+ stage?: StepStage;
42
+ expanded?: boolean;
43
+ defaultExpanded?: boolean;
44
+ onToggle?: ButtonProps["onClick"];
45
+ }
46
+ export declare function Step({ id: idProp, label, description, status, stage, expanded: expandedProp, defaultExpanded, onToggle, className, style, children, ...rest }: StepProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type ComponentPropsWithoutRef } from "react";
2
+ export declare type StepperOrientation = "horizontal" | "vertical";
3
+ export interface StepperProps extends ComponentPropsWithoutRef<"ol"> {
4
+ /**
5
+ * The orientation of the stepper: defaults to horizontal.
6
+ */
7
+ orientation?: StepperOrientation;
8
+ }
9
+ export declare const Stepper: import("react").ForwardRefExoticComponent<StepperProps & import("react").RefAttributes<HTMLOListElement>>;
@@ -0,0 +1,2 @@
1
+ export * from "./Stepper";
2
+ export * from "./Step";
@@ -0,0 +1 @@
1
+ export declare function StepConnector(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { type ButtonProps } from "../../button";
2
+ export interface StepExpandTriggerProps extends ButtonProps {
3
+ expanded: boolean;
4
+ }
5
+ export declare function StepExpandTrigger({ id, expanded, className, ...props }: StepExpandTriggerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { IconProps } from "@salt-ds/icons";
2
+ import type { StepStage, StepStatus } from "../Step";
3
+ export interface StepIconProps extends IconProps {
4
+ stage: StepStage;
5
+ status?: StepStatus;
6
+ sizeMultiplier?: IconProps["size"];
7
+ }
8
+ export declare function StepIcon({ status, stage, size, sizeMultiplier, className, ...props }: StepIconProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ export interface StepScreenReaderOnlyProps extends ComponentPropsWithoutRef<"div"> {
3
+ children?: ReactNode;
4
+ }
5
+ export declare function StepScreenReaderOnly({ children, ...props }: StepScreenReaderOnlyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { type TextProps } from "../../text";
2
+ export interface StepTextProps extends TextProps<"div"> {
3
+ purpose: "label" | "description";
4
+ }
5
+ export declare function StepText({ id, purpose, className, styleAs, children, ...props }: StepTextProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type ReactNode } from "react";
2
+ import type { StepperOrientation } from "../Stepper";
3
+ export declare const StepperOrientationContext: import("react").Context<StepperOrientation>;
4
+ export declare const StepDepthContext: import("react").Context<number>;
5
+ export interface StepperProviderProps {
6
+ orientation: StepperOrientation;
7
+ children: ReactNode;
8
+ }
9
+ export declare function StepperProvider({ orientation: orientationProp, children, }: StepperProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,31 @@
1
1
  import { type ComponentPropsWithoutRef, type MouseEvent } from "react";
2
+ import type { ButtonAppearance, ButtonSentiment } from "../button";
2
3
  export interface ToggleButtonProps extends ComponentPropsWithoutRef<"button"> {
3
- selected?: boolean;
4
+ /**
5
+ * The appearance of the toggle button.
6
+ * @default solid
7
+ */
8
+ appearance?: Extract<ButtonAppearance, "bordered" | "solid">;
9
+ /**
10
+ * Callback fired when the toggle button's selection state is changed.
11
+ */
4
12
  onChange?: (event: MouseEvent<HTMLButtonElement>) => void;
13
+ /**
14
+ * If `true`, the toggle button will be read-only.
15
+ */
16
+ readOnly?: boolean;
17
+ /**
18
+ * The sentiment of the toggle button.
19
+ * @default neutral
20
+ */
21
+ sentiment?: ButtonSentiment;
22
+ /**
23
+ * Whether the toggle button is a selected state.
24
+ */
25
+ selected?: boolean;
26
+ /**
27
+ * Value of the toggle button, to be used when in a controlled state.
28
+ */
5
29
  value: string | ReadonlyArray<string> | number | undefined;
6
30
  }
7
31
  export declare const ToggleButton: import("react").ForwardRefExoticComponent<ToggleButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,6 +1,12 @@
1
1
  import { type ComponentPropsWithoutRef, type SyntheticEvent } from "react";
2
+ import type { ButtonAppearance, ButtonSentiment } from "../button";
2
3
  import { type Value } from "./ToggleButtonGroupContext";
3
4
  export interface ToggleButtonGroupProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
5
+ /**
6
+ * The appearance of all the toggle buttons within the group.
7
+ * @default solid
8
+ */
9
+ appearance?: Extract<ButtonAppearance, "bordered" | "solid">;
4
10
  /**
5
11
  * The default value. Use when the component is not controlled.
6
12
  */
@@ -10,17 +16,25 @@ export interface ToggleButtonGroupProps extends Omit<ComponentPropsWithoutRef<"d
10
16
  */
11
17
  disabled?: boolean;
12
18
  /**
13
- * The value. Use when the component is controlled.
19
+ * Value of the toggle button group, to be used when the component is controlled.
14
20
  */
15
21
  value?: Value;
16
22
  /**
17
23
  * Callback fired when the selection changes.
18
- * @param event
19
24
  */
20
25
  onChange?: (event: SyntheticEvent<HTMLButtonElement>) => void;
26
+ /**
27
+ * If `true`, the toggle button group will be read-only.
28
+ */
29
+ readOnly?: boolean;
21
30
  /**
22
31
  * The orientation of the toggle buttons.
23
32
  */
24
33
  orientation?: "horizontal" | "vertical";
34
+ /**
35
+ * The visual sentimenent of all the toggle buttons within the group.
36
+ * @default neutral
37
+ */
38
+ sentiment?: ButtonSentiment;
25
39
  }
26
40
  export declare const ToggleButtonGroup: import("react").ForwardRefExoticComponent<ToggleButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,12 +1,16 @@
1
1
  import { type SyntheticEvent } from "react";
2
+ import type { ButtonAppearance, ButtonSentiment } from "../button";
2
3
  export declare type Value = string | readonly string[] | number | undefined;
3
4
  export interface ToggleButtonGroupContextValue {
5
+ appearance?: Extract<ButtonAppearance, "bordered" | "solid">;
4
6
  disabled?: boolean;
5
- select: (event: SyntheticEvent<HTMLButtonElement>) => void;
6
- isSelected: (id: Value) => boolean;
7
7
  focus: (id: Value) => void;
8
8
  isFocused: (id: Value) => boolean;
9
+ isSelected: (id: Value) => boolean;
9
10
  orientation: "horizontal" | "vertical";
11
+ readOnly?: boolean;
12
+ select: (event: SyntheticEvent<HTMLButtonElement>) => void;
13
+ sentiment?: ButtonSentiment;
10
14
  }
11
15
  export declare const ToggleButtonGroupContext: import("react").Context<ToggleButtonGroupContextValue | undefined>;
12
16
  export declare function useToggleButtonGroup(): ToggleButtonGroupContextValue | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/core",
3
- "version": "1.44.0",
3
+ "version": "1.45.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",