@box/blueprint-web 7.5.0 → 7.6.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.
@@ -67,6 +67,6 @@ export declare const GridList: import("react").ForwardRefExoticComponent<import(
67
67
  * Styled wrapper over an icon button.
68
68
  * Ensures proper behaviour when used in a grid list item.
69
69
  */
70
- ActionIconButton: import("react").ForwardRefExoticComponent<Omit<import("../..").IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
70
+ ActionIconButton: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/icon-button/types").IconButtonVariantsProps, "ref"> | Omit<import("../primitives/icon-button/types").IconButtonSmallUtilityVariantProps, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
71
71
  };
72
72
  export type { GridListActionIconButtonProps, GridListActionsProps, GridListDescriptionProps, GridListHeaderProps, GridListItemProps, GridListProps, GridListSubtitleProps, GridListThumbnailProps, } from './types';
package/lib-esm/index.css CHANGED
@@ -1066,7 +1066,7 @@
1066
1066
  cursor:default;
1067
1067
  }
1068
1068
 
1069
- .bp_icon_button_module_iconButton--12d63{
1069
+ .bp_icon_button_module_iconButton--a3df7{
1070
1070
  align-items:center;
1071
1071
  background:var(--surface-cta-surface-icon);
1072
1072
  border:0;
@@ -1077,64 +1077,82 @@
1077
1077
  justify-content:center;
1078
1078
  padding:0;
1079
1079
  }
1080
- .bp_icon_button_module_iconButton--12d63 .bp_icon_button_module_iconColor--12d63 *{
1080
+ .bp_icon_button_module_iconButton--a3df7 .bp_icon_button_module_iconColor--a3df7 *{
1081
1081
  fill:var(--icon-cta-icon);
1082
1082
  }
1083
- .bp_icon_button_module_iconButton--12d63[aria-disabled=true]{
1083
+ .bp_icon_button_module_iconButton--a3df7[aria-disabled=true]{
1084
1084
  background:var(--surface-cta-surface-icon-disabled);
1085
1085
  opacity:.3;
1086
1086
  }
1087
- .bp_icon_button_module_iconButton--12d63[aria-disabled=true] .bp_icon_button_module_iconColor--12d63 *{
1087
+ .bp_icon_button_module_iconButton--a3df7[aria-disabled=true] .bp_icon_button_module_iconColor--a3df7 *{
1088
1088
  fill:var(--gray-50);
1089
1089
  }
1090
- .bp_icon_button_module_iconButton--12d63:focus-visible{
1090
+ .bp_icon_button_module_iconButton--a3df7:focus-visible{
1091
1091
  outline:none;
1092
1092
  }
1093
- .bp_icon_button_module_iconButton--12d63[data-focus-visible]{
1093
+ .bp_icon_button_module_iconButton--a3df7[data-focus-visible]{
1094
1094
  outline:var(--border-2) solid var(--outline-focus-on-light);
1095
1095
  }
1096
- .bp_icon_button_module_iconButton--12d63:hover,.bp_icon_button_module_iconButton--12d63[data-focus-visible]{
1096
+ .bp_icon_button_module_iconButton--a3df7:hover,.bp_icon_button_module_iconButton--a3df7[data-focus-visible]{
1097
1097
  background:var(--surface-cta-surface-icon-hover);
1098
1098
  }
1099
- .bp_icon_button_module_iconButton--12d63:hover .bp_icon_button_module_iconColor--12d63 *,.bp_icon_button_module_iconButton--12d63[data-focus-visible] .bp_icon_button_module_iconColor--12d63 *{
1099
+ .bp_icon_button_module_iconButton--a3df7:hover .bp_icon_button_module_iconColor--a3df7 *,.bp_icon_button_module_iconButton--a3df7[data-focus-visible] .bp_icon_button_module_iconColor--a3df7 *{
1100
1100
  fill:var(--icon-cta-icon-hover);
1101
1101
  }
1102
- .bp_icon_button_module_iconButton--12d63:active,.bp_icon_button_module_iconButton--12d63[data-active]{
1102
+ .bp_icon_button_module_iconButton--a3df7:active,.bp_icon_button_module_iconButton--a3df7[data-active]{
1103
1103
  background:var(--surface-cta-surface-icon-pressed);
1104
1104
  }
1105
- .bp_icon_button_module_iconButton--12d63:active .bp_icon_button_module_iconColor--12d63 *,.bp_icon_button_module_iconButton--12d63[data-active] .bp_icon_button_module_iconColor--12d63 *{
1105
+ .bp_icon_button_module_iconButton--a3df7:active .bp_icon_button_module_iconColor--a3df7 *,.bp_icon_button_module_iconButton--a3df7[data-active] .bp_icon_button_module_iconColor--a3df7 *{
1106
1106
  fill:var(--icon-cta-icon-pressed);
1107
1107
  }
1108
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_large--12d63{
1108
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_large--a3df7{
1109
1109
  height:var(--size-10);
1110
1110
  width:var(--size-10);
1111
1111
  }
1112
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_small--12d63{
1112
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small--a3df7{
1113
1113
  height:var(--size-8);
1114
1114
  width:var(--size-8);
1115
1115
  }
1116
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_x-small--12d63{
1116
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_x-small--a3df7{
1117
1117
  height:var(--size-6);
1118
1118
  width:var(--size-6);
1119
1119
  }
1120
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63{
1120
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7{
1121
1121
  background:var(--surface-cta-surface-icon);
1122
1122
  }
1123
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63 .bp_icon_button_module_iconColor--12d63 *{
1123
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7 .bp_icon_button_module_iconColor--a3df7 *{
1124
1124
  fill:var(--icon-cta-icon-on-color);
1125
1125
  }
1126
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63:hover,.bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63[data-focus-visible]{
1126
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7:hover,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7[data-focus-visible]{
1127
1127
  background:var(--surface-cta-surface-icon-hover);
1128
1128
  }
1129
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63:hover .bp_icon_button_module_iconColor--12d63 *,.bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63[data-focus-visible] .bp_icon_button_module_iconColor--12d63 *{
1129
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7:hover .bp_icon_button_module_iconColor--a3df7 *,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7[data-focus-visible] .bp_icon_button_module_iconColor--a3df7 *{
1130
1130
  fill:var(--icon-cta-icon-on-color-hover);
1131
1131
  }
1132
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63:active,.bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63[data-active]{
1132
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7:active,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7[data-active]{
1133
1133
  background:var(--surface-cta-surface-icon-pressed);
1134
1134
  }
1135
- .bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63:active .bp_icon_button_module_iconColor--12d63 *,.bp_icon_button_module_iconButton--12d63.bp_icon_button_module_highContrast--12d63[data-active] .bp_icon_button_module_iconColor--12d63 *{
1135
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7:active .bp_icon_button_module_iconColor--a3df7 *,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_high-contrast--a3df7[data-active] .bp_icon_button_module_iconColor--a3df7 *{
1136
1136
  fill:var(--icon-cta-icon-on-color-pressed);
1137
1137
  }
1138
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7{
1139
+ background:var(--surface-cta-surface-icon-utility);
1140
+ }
1141
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7 .bp_icon_button_module_iconColor--a3df7 *{
1142
+ fill:var(--icon-cta-icon-utility);
1143
+ }
1144
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7:hover,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7[data-focus-visible]{
1145
+ background:var(--surface-cta-surface-icon-utility-hover);
1146
+ }
1147
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7:hover .bp_icon_button_module_iconColor--a3df7 *,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7[data-focus-visible] .bp_icon_button_module_iconColor--a3df7 *{
1148
+ fill:var(--icon-cta-icon-utility-hover);
1149
+ }
1150
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7:active,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7[data-active]{
1151
+ background:var(--surface-cta-surface-icon-utility-pressed);
1152
+ }
1153
+ .bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7:active .bp_icon_button_module_iconColor--a3df7 *,.bp_icon_button_module_iconButton--a3df7.bp_icon_button_module_small-utility--a3df7[data-active] .bp_icon_button_module_iconColor--a3df7 *{
1154
+ fill:var(--icon-cta-icon-utility-pressed);
1155
+ }
1138
1156
 
1139
1157
  .bp_collapsible_section_module_collapsibleSection--f411c{
1140
1158
  width:100%;
@@ -81,6 +81,6 @@ export declare const LargeList: import("react").ForwardRefExoticComponent<import
81
81
  * Styled wrapper over an icon button.
82
82
  * Ensures proper behaviour when used in a large list item.
83
83
  */
84
- ActionIconButton: import("react").ForwardRefExoticComponent<Omit<import("../..").IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
84
+ ActionIconButton: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/icon-button/types").IconButtonVariantsProps, "ref"> | Omit<import("../primitives/icon-button/types").IconButtonSmallUtilityVariantProps, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
85
85
  };
86
86
  export type { LargeListActionIconButtonProps, LargeListActionsProps, LargeListDescriptionProps, LargeListHeaderProps, LargeListItemProps, LargeListProps, LargeListSubtitleProps, LargeListThumbnailProps, LargeListSnippetProps, } from './types';
@@ -1,3 +1,2 @@
1
1
  /// <reference types="react" />
2
- import { type IconButtonProps } from './types';
3
- export declare const IconButton: import("react").ForwardRefExoticComponent<Omit<IconButtonProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
2
+ export declare const IconButton: import("react").ForwardRefExoticComponent<(Omit<import("./types").IconButtonVariantsProps, "ref"> | Omit<import("./types").IconButtonSmallUtilityVariantProps, "ref">) & import("react").RefAttributes<HTMLElement>>;
@@ -4,7 +4,7 @@ import clsx from 'clsx';
4
4
  import { forwardRef, useRef, createElement } from 'react';
5
5
  import { useForkRef } from '../../utils/useForkRef.js';
6
6
  import styles from './icon-button.module.js';
7
- import { iconSizeMap } from './utils.js';
7
+ import { getIconSize } from './utils.js';
8
8
 
9
9
  const IconButton = /*#__PURE__*/forwardRef((props, forwardedRef) => {
10
10
  const {
@@ -17,13 +17,11 @@ const IconButton = /*#__PURE__*/forwardRef((props, forwardedRef) => {
17
17
  return jsx(Button, {
18
18
  ...rest,
19
19
  ref: useForkRef(ref, forwardedRef),
20
- className: clsx([styles.iconButton, styles[size], {
21
- [styles.highContrast]: variant === 'high-contrast'
22
- }], props.className),
20
+ className: clsx([styles.iconButton, styles[size], styles[variant]], props.className),
23
21
  children: /*#__PURE__*/createElement(icon, {
24
22
  className: styles.iconColor,
25
- height: iconSizeMap[size],
26
- width: iconSizeMap[size],
23
+ height: getIconSize(props),
24
+ width: getIconSize(props),
27
25
  role: 'presentation'
28
26
  })
29
27
  });
@@ -1,4 +1,4 @@
1
1
  import '../../index.css';
2
- var styles = {"iconButton":"bp_icon_button_module_iconButton--12d63","iconColor":"bp_icon_button_module_iconColor--12d63","large":"bp_icon_button_module_large--12d63","small":"bp_icon_button_module_small--12d63","x-small":"bp_icon_button_module_x-small--12d63","highContrast":"bp_icon_button_module_highContrast--12d63"};
2
+ var styles = {"iconButton":"bp_icon_button_module_iconButton--a3df7","iconColor":"bp_icon_button_module_iconColor--a3df7","large":"bp_icon_button_module_large--a3df7","small":"bp_icon_button_module_small--a3df7","x-small":"bp_icon_button_module_x-small--a3df7","high-contrast":"bp_icon_button_module_high-contrast--a3df7","small-utility":"bp_icon_button_module_small-utility--a3df7"};
3
3
 
4
4
  export { styles as default };
@@ -1,6 +1,6 @@
1
1
  import { type ButtonProps as AriakitButtonProps } from '@ariakit/react';
2
2
  import { type FunctionComponent, type PropsWithChildren, type SVGProps } from 'react';
3
- export interface IconButtonProps extends AriakitButtonProps {
3
+ interface IconButtonCommonProps extends AriakitButtonProps {
4
4
  /**
5
5
  * Accessible label for the button.
6
6
  */
@@ -9,16 +9,30 @@ export interface IconButtonProps extends AriakitButtonProps {
9
9
  * Icon that will be rendered.
10
10
  */
11
11
  icon: FunctionComponent<PropsWithChildren<SVGProps<SVGSVGElement>>>;
12
+ }
13
+ export interface IconButtonVariantsProps extends IconButtonCommonProps {
14
+ /**
15
+ * The variant of the button.
16
+ *
17
+ * @default 'default'
18
+ */
19
+ variant?: 'default' | 'high-contrast';
12
20
  /**
13
21
  * Size of the button.
14
22
  *
15
23
  * @default 'small'
16
24
  */
17
25
  size?: 'x-small' | 'small' | 'large';
26
+ }
27
+ export interface IconButtonSmallUtilityVariantProps extends IconButtonCommonProps {
18
28
  /**
19
29
  * The variant of the button.
20
- *
21
- * @default 'default'
22
30
  */
23
- variant?: 'default' | 'high-contrast';
31
+ variant: 'small-utility';
32
+ /**
33
+ * The only acceptable size for the small-utility variant is 'small'.
34
+ */
35
+ size: 'small';
24
36
  }
37
+ export type IconButtonProps = IconButtonVariantsProps | IconButtonSmallUtilityVariantProps;
38
+ export {};
@@ -1,3 +1,3 @@
1
1
  import { type IconButtonProps } from './types';
2
- declare const iconSizeMap: Record<NonNullable<IconButtonProps['size']>, string>;
3
- export { iconSizeMap };
2
+ declare function getIconSize(props: IconButtonProps): string;
3
+ export { getIconSize };
@@ -5,5 +5,11 @@ const iconSizeMap = {
5
5
  small: Size5,
6
6
  large: Size6
7
7
  };
8
+ function getIconSize(props) {
9
+ if (props.variant === 'small-utility') {
10
+ return Size4;
11
+ }
12
+ return iconSizeMap[props.size || 'small'];
13
+ }
8
14
 
9
- export { iconSizeMap };
15
+ export { getIconSize };
@@ -3,7 +3,11 @@ export declare const SearchInput: import("react").ForwardRefExoticComponent<Omit
3
3
  /**
4
4
  * Styled wrapper over an icon button.
5
5
  */
6
- ActionButton: import("react").ForwardRefExoticComponent<Omit<import("./types").SearchInputActionButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
6
+ ActionButton: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/icon-button/types").IconButtonVariantsProps & {
7
+ searchInputActionButtonTooltip?: string | undefined;
8
+ }, "ref"> | Omit<import("../primitives/icon-button/types").IconButtonSmallUtilityVariantProps & {
9
+ searchInputActionButtonTooltip?: string | undefined;
10
+ }, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
7
11
  Controlled: import("react").ForwardRefExoticComponent<Omit<import("./search-input-controlled").SearchInputControlledProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
8
12
  };
9
13
  export type { SearchInputActionButtonProps, SearchInputProps } from './types';
@@ -1,3 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { type SearchInputActionButtonProps } from './types';
3
- export declare const SearchInputActionButton: import("react").ForwardRefExoticComponent<Omit<SearchInputActionButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
2
+ export declare const SearchInputActionButton: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/icon-button/types").IconButtonVariantsProps & {
3
+ searchInputActionButtonTooltip?: string | undefined;
4
+ }, "ref"> | Omit<import("../primitives/icon-button/types").IconButtonSmallUtilityVariantProps & {
5
+ searchInputActionButtonTooltip?: string | undefined;
6
+ }, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
@@ -56,6 +56,6 @@ export declare const SmallList: import("react").ForwardRefExoticComponent<import
56
56
  /**
57
57
  * Styled wrapper over an icon button.
58
58
  */
59
- ActionIconButton: import("react").ForwardRefExoticComponent<Omit<import("../..").IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
59
+ ActionIconButton: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/icon-button/types").IconButtonVariantsProps, "ref"> | Omit<import("../primitives/icon-button/types").IconButtonSmallUtilityVariantProps, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
60
60
  };
61
61
  export type { SmallListActionIconButtonProps, SmallListActionsProps, SmallListHeaderProps, SmallListItemProps, SmallListProps, SmallListSubtitleProps, SmallListThumbnailProps, } from './types';
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import { type BaseGridListActionsProps } from './types';
3
- export declare const BaseGridListActionIconButton: import("react").ForwardRefExoticComponent<Omit<import("../../primitives/icon-button").IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
3
+ export declare const BaseGridListActionIconButton: import("react").ForwardRefExoticComponent<(Omit<import("../../primitives/icon-button/types").IconButtonVariantsProps, "ref"> | Omit<import("../../primitives/icon-button/types").IconButtonSmallUtilityVariantProps, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
4
4
  export declare const BaseGridListActions: import("react").ForwardRefExoticComponent<Omit<BaseGridListActionsProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -79,7 +79,8 @@ const BaseGridListActionIconButton = /*#__PURE__*/forwardRef(function BaseGridLi
79
79
  ...props,
80
80
  ref: forwardedRef,
81
81
  render: render,
82
- size: size
82
+ size: size,
83
+ variant: "default"
83
84
  });
84
85
  });
85
86
  const BaseGridListActions = /*#__PURE__*/forwardRef(function BaseGridListActions(props, forwardedRef) {
@@ -34,6 +34,6 @@ export declare const BaseGridList: import("react").ForwardRefExoticComponent<imp
34
34
  * Styled wrapper over an icon button.
35
35
  * Ensures proper behaviour when used in a grid list item.
36
36
  */
37
- ActionIconButton: import("react").ForwardRefExoticComponent<Omit<import("../../..").IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
37
+ ActionIconButton: import("react").ForwardRefExoticComponent<(Omit<import("../../primitives/icon-button/types").IconButtonVariantsProps, "ref"> | Omit<import("../../primitives/icon-button/types").IconButtonSmallUtilityVariantProps, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
38
38
  };
39
39
  export type { BaseGridListActionIconButtonProps, BaseGridListActionsProps, BaseGridListDescriptionProps, BaseGridListHeaderProps, BaseGridListItemProps, BaseGridListProps, BaseGridListSubtitleProps, BaseGridListThumbnailProps, } from './types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "7.5.0",
3
+ "version": "7.6.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -58,7 +58,7 @@
58
58
  "@box/storybook-utils": "^0.2.1",
59
59
  "react-stately": "^3.31.1"
60
60
  },
61
- "gitHead": "6b32db6278fd0b5df74e3c58f3e5f9186a7f9787",
61
+ "gitHead": "c9bbabf657c8ecd41c1fc8e4a7f4c958ec4d2ad3",
62
62
  "module": "lib-esm/index.js",
63
63
  "main": "lib-esm/index.js",
64
64
  "exports": {