@box/blueprint-web 6.7.0 → 6.8.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.
@@ -47,9 +47,7 @@ export declare const GridList: import("react").ForwardRefExoticComponent<import(
47
47
  /**
48
48
  * Styled wrapper over and image or icon.
49
49
  */
50
- Thumbnail: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
51
- ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
52
- }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
50
+ Thumbnail: import("react").ForwardRefExoticComponent<Omit<import("../../util-components/base-grid-list-item").BaseGridListThumbnailProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
53
51
  /**
54
52
  * Styled wrapper over the title of an item and potential Status components.
55
53
  */
@@ -51,9 +51,7 @@ export declare const LargeList: import("react").ForwardRefExoticComponent<import
51
51
  /**
52
52
  * Styled wrapper over an image or icon.
53
53
  */
54
- Thumbnail: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
55
- ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
56
- }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
54
+ Thumbnail: import("react").ForwardRefExoticComponent<Omit<import("../../util-components/base-grid-list-item").BaseGridListThumbnailProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
57
55
  /**
58
56
  * Styled wrapper over the title of an item and potential Status components.
59
57
  */
@@ -10,15 +10,23 @@
10
10
  <SmallList.Thumbnail>
11
11
  <img/>
12
12
  </SmallList.Thumbnail>
13
-
13
+
14
14
  <SmallList.Header>
15
15
  Title Placeholder
16
16
  </SmallList.Header>
17
-
17
+
18
18
  <SmallList.Subtitle>
19
19
  Subtitle Placeholder
20
20
  </SmallList.Subtitle>
21
21
 
22
+ <SmallList.Actions>
23
+ <SmallList.ActionIconButton
24
+ aria-label="delete item"
25
+ icon={XMark}
26
+ onClick={e => console.log('Event is clicked', e)}
27
+ />
28
+ </SmallList.Actions>
29
+
22
30
  </SmallList.Item>
23
31
  </SmallList>
24
32
  */
@@ -30,9 +38,7 @@ export declare const SmallList: import("react").ForwardRefExoticComponent<import
30
38
  /**
31
39
  * Styled wrapper over an image or icon.
32
40
  */
33
- Thumbnail: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
34
- ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
35
- }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
41
+ Thumbnail: import("react").ForwardRefExoticComponent<Omit<import("../../util-components/base-grid-list-item").BaseGridListThumbnailProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
36
42
  /**
37
43
  * Styled wrapper over the title of an item.
38
44
  */
@@ -43,5 +49,13 @@ export declare const SmallList: import("react").ForwardRefExoticComponent<import
43
49
  Subtitle: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
44
50
  ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
45
51
  }, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
52
+ /**
53
+ * Styled wrapper over the actions of an item.
54
+ */
55
+ Actions: import("react").ForwardRefExoticComponent<Omit<import("../../util-components/base-grid-list-item").BaseGridListActionsProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
56
+ /**
57
+ * Styled wrapper over an icon button.
58
+ */
59
+ ActionIconButton: import("react").ForwardRefExoticComponent<Omit<import("../../..").IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
46
60
  };
47
- export type { SmallListProps, SmallListHeaderProps, SmallListSubtitleProps, SmallListThumbnailProps, SmallListItemProps, } from './types';
61
+ export type { SmallListActionIconButtonProps, SmallListActionsProps, SmallListHeaderProps, SmallListItemProps, SmallListProps, SmallListSubtitleProps, SmallListThumbnailProps, } from './types';
@@ -12,15 +12,23 @@ import { SmallList as SmallList$1 } from './small-list.js';
12
12
  <SmallList.Thumbnail>
13
13
  <img/>
14
14
  </SmallList.Thumbnail>
15
-
15
+
16
16
  <SmallList.Header>
17
17
  Title Placeholder
18
18
  </SmallList.Header>
19
-
19
+
20
20
  <SmallList.Subtitle>
21
21
  Subtitle Placeholder
22
22
  </SmallList.Subtitle>
23
23
 
24
+ <SmallList.Actions>
25
+ <SmallList.ActionIconButton
26
+ aria-label="delete item"
27
+ icon={XMark}
28
+ onClick={e => console.log('Event is clicked', e)}
29
+ />
30
+ </SmallList.Actions>
31
+
24
32
  </SmallList.Item>
25
33
  </SmallList>
26
34
  */
@@ -40,7 +48,15 @@ const SmallList = Object.assign(SmallList$1, {
40
48
  /**
41
49
  * Styled wrapper over the subtitle of an item.
42
50
  */
43
- Subtitle: BaseGridList.Subtitle
51
+ Subtitle: BaseGridList.Subtitle,
52
+ /**
53
+ * Styled wrapper over the actions of an item.
54
+ */
55
+ Actions: BaseGridList.Actions,
56
+ /**
57
+ * Styled wrapper over an icon button.
58
+ */
59
+ ActionIconButton: BaseGridList.ActionIconButton
44
60
  });
45
61
 
46
62
  export { SmallList };
@@ -1,4 +1,6 @@
1
- import { type BaseGridListHeaderProps, type BaseGridListItemProps, type BaseGridListProps, type BaseGridListSubtitleProps, type BaseGridListThumbnailProps } from '../../util-components/base-grid-list-item';
1
+ import { type BaseGridListActionIconButtonProps, type BaseGridListActionsProps, type BaseGridListHeaderProps, type BaseGridListItemProps, type BaseGridListProps, type BaseGridListSubtitleProps, type BaseGridListThumbnailProps } from '../../util-components/base-grid-list-item';
2
+ export type SmallListActionIconButtonProps = BaseGridListActionIconButtonProps;
3
+ export type SmallListActionsProps = BaseGridListActionsProps;
2
4
  export type SmallListHeaderProps = BaseGridListHeaderProps;
3
5
  export type SmallListThumbnailProps = BaseGridListThumbnailProps;
4
6
  export type SmallListSubtitleProps = BaseGridListSubtitleProps;
package/lib-esm/index.css CHANGED
@@ -1260,16 +1260,18 @@
1260
1260
  width:auto;
1261
1261
  }
1262
1262
  .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw{
1263
+ --actions-opacity:0;
1263
1264
  --thumbnail-size:var(--size-9);
1264
1265
  --item-background:var(--surface-item-small-surface);
1265
1266
  --item-hover:var(--surface-item-small-surface-hover);
1267
+ align-items:center;
1266
1268
  background:var(--item-background);
1267
1269
  border-radius:var(--radius-4);
1268
1270
  column-gap:var(--space-3);
1269
1271
  cursor:default;
1270
1272
  display:grid;
1271
- grid-template-areas:"thumbnail head" "thumbnail subtitle";
1272
- grid-template-columns:var(--thumbnail-size) auto;
1273
+ grid-template-areas:"thumbnail head actions" "thumbnail subtitle actions";
1274
+ grid-template-columns:var(--thumbnail-size) auto auto;
1273
1275
  outline:none;
1274
1276
  padding:var(--space-2) var(--space-3) var(--space-2) var(--space-3);
1275
1277
  position:relative;
@@ -1277,11 +1279,13 @@
1277
1279
  width:auto;
1278
1280
  }
1279
1281
  .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw.base-grid-list-item-module_loading__u4wHh{
1282
+ grid-template-columns:var(--thumbnail-size) auto 0;
1280
1283
  grid-template-rows:100% 0;
1281
1284
  }
1282
1285
  .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_thumbnail__hzNRu{
1283
1286
  align-items:center;
1284
1287
  aspect-ratio:1;
1288
+ display:flex;
1285
1289
  grid-area:thumbnail;
1286
1290
  justify-content:center;
1287
1291
  overflow:hidden;
@@ -1293,6 +1297,12 @@
1293
1297
  object-position:left;
1294
1298
  width:100%;
1295
1299
  }
1300
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_thumbnail__hzNRu.base-grid-list-item-module_customSize__eWPZX img,.base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_thumbnail__hzNRu.base-grid-list-item-module_customSize__eWPZX svg{
1301
+ height:unset;
1302
+ max-height:100%;
1303
+ max-width:100%;
1304
+ width:unset;
1305
+ }
1296
1306
  .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_header__8Cd7A{
1297
1307
  color:var(--text-text-on-light);
1298
1308
  font-family:Lato, -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
@@ -1325,10 +1335,57 @@
1325
1335
  text-overflow:ellipsis;
1326
1336
  white-space:nowrap;
1327
1337
  }
1338
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw:not(:has(.base-grid-list-item-module_header__8Cd7A)),.base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw:not(:has(.base-grid-list-item-module_subtitle__NKkK0)){
1339
+ grid-template-rows:100% 0;
1340
+ row-gap:0;
1341
+ }
1342
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J{
1343
+ align-items:center;
1344
+ display:flex;
1345
+ grid-area:actions;
1346
+ height:var(--space-6);
1347
+ justify-content:flex-end;
1348
+ opacity:var(--actions-opacity);
1349
+ padding-right:0;
1350
+ }
1351
+ @media (pointer: coarse){
1352
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J{
1353
+ --actions-opacity:1;
1354
+ }
1355
+ }
1356
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J .base-grid-list-item-module_selection__hs7YE{
1357
+ align-items:center;
1358
+ background:var(--item-background);
1359
+ border-radius:var(--radius-2);
1360
+ display:flex;
1361
+ height:var(--space-8);
1362
+ justify-content:center;
1363
+ width:var(--space-8);
1364
+ }
1365
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J .base-grid-list-item-module_selection__hs7YE:hover{
1366
+ background:var(--surface-cta-surface-icon-hover);
1367
+ }
1368
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J .base-grid-list-item-module_inner__rLb2D{
1369
+ align-items:center;
1370
+ border-radius:var(--radius-2);
1371
+ display:flex;
1372
+ gap:var(--space-2);
1373
+ justify-content:flex-end;
1374
+ margin-inline-end:var(--space-2);
1375
+ }
1376
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J .base-grid-list-item-module_inner__rLb2D:last-child{
1377
+ margin-inline-end:0;
1378
+ }
1379
+ .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw .base-grid-list-item-module_actions__tlu5J .base-grid-list-item-module_actionsCheckboxWrapper__51sTV{
1380
+ background:var(--item-hover);
1381
+ display:flex;
1382
+ }
1328
1383
  .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw[data-focus-visible],.base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw[data-focused],.base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw[data-hovered]{
1384
+ --actions-opacity:1;
1329
1385
  background:var(--item-hover);
1330
1386
  }
1331
1387
  .base-grid-list-item-module_smallList__8lWoC .base-grid-list-item-module_smallListItem__MAhGw[data-focus-visible]::before{
1388
+ --actions-opacity:1;
1332
1389
  border-radius:.875rem;
1333
1390
  content:"";
1334
1391
  display:block;
@@ -14,7 +14,7 @@ import styles from './base-grid-list-item.module.js';
14
14
  import { RACButton } from './utils/rac-button.js';
15
15
  import { RACTooltip } from './utils/rac-tooltip.js';
16
16
 
17
- const LargeListActions = ({
17
+ const BaseListActions = ({
18
18
  children,
19
19
  selectionEnabled
20
20
  }) => {
@@ -49,6 +49,7 @@ const BaseGridListActionIconButton = /*#__PURE__*/forwardRef(function BaseGridLi
49
49
  // DOM props are e.g handlers passed from DropdownTrigger
50
50
  const {
51
51
  onClick,
52
+ size = 'small',
52
53
  ...domProps
53
54
  } = props;
54
55
  const render = useCallback(ariakitProps => {
@@ -78,7 +79,7 @@ const BaseGridListActionIconButton = /*#__PURE__*/forwardRef(function BaseGridLi
78
79
  ...props,
79
80
  ref: forwardedRef,
80
81
  render: render,
81
- size: "small"
82
+ size: size
82
83
  });
83
84
  });
84
85
  const BaseGridListActions = /*#__PURE__*/forwardRef(function BaseGridListActions(props, forwardedRef) {
@@ -102,7 +103,7 @@ const BaseGridListActions = /*#__PURE__*/forwardRef(function BaseGridListActions
102
103
  if (loading) {
103
104
  return null;
104
105
  }
105
- const isList = layout === 'list';
106
+ const isList = layout === 'list' || layout === 'small-list';
106
107
  const isSelectionEnabled = selectionMode === 'multiple';
107
108
  const isRenderPropUsed = typeof children === 'function';
108
109
  return jsxs(Fragment, {
@@ -110,7 +111,7 @@ const BaseGridListActions = /*#__PURE__*/forwardRef(function BaseGridListActions
110
111
  ...rest,
111
112
  ref: forkRef,
112
113
  className: clsx(styles.actions, className),
113
- children: isList ? jsx(LargeListActions, {
114
+ children: isList ? jsx(BaseListActions, {
114
115
  selectionEnabled: isSelectionEnabled,
115
116
  children: isRenderPropUsed ? children(setIsItemInteracted) : children
116
117
  }) : jsx(GridListActions, {
@@ -1,4 +1,3 @@
1
1
  /// <reference types="react" />
2
- export declare const BaseGridListThumbnail: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
- ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
- }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
2
+ import { type BaseGridListThumbnailProps } from './types';
3
+ export declare const BaseGridListThumbnail: import("react").ForwardRefExoticComponent<Omit<BaseGridListThumbnailProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -9,6 +9,7 @@ const BaseGridListThumbnail = /*#__PURE__*/forwardRef(function BaseGridListThumb
9
9
  const {
10
10
  children,
11
11
  className,
12
+ hasCustomSize,
12
13
  ...rest
13
14
  } = props;
14
15
  const {
@@ -19,6 +20,8 @@ const BaseGridListThumbnail = /*#__PURE__*/forwardRef(function BaseGridListThumb
19
20
  ref: forwardedRef,
20
21
  className: clsx(styles.thumbnail, {
21
22
  [styles.loading]: loading
23
+ }, {
24
+ [styles.customSize]: hasCustomSize
22
25
  }, className),
23
26
  children: loading ? jsx(Ghost, {
24
27
  borderRadius: "0.5rem",
@@ -1,4 +1,4 @@
1
1
  import '../../index.css';
2
- var styles = {"smallList":"base-grid-list-item-module_smallList__8lWoC","smallListItem":"base-grid-list-item-module_smallListItem__MAhGw","loading":"base-grid-list-item-module_loading__u4wHh","thumbnail":"base-grid-list-item-module_thumbnail__hzNRu","header":"base-grid-list-item-module_header__8Cd7A","subtitle":"base-grid-list-item-module_subtitle__NKkK0","largeList":"base-grid-list-item-module_largeList__RTycT","largeListItem":"base-grid-list-item-module_largeListItem__ikeWj","actions":"base-grid-list-item-module_actions__tlu5J","selection":"base-grid-list-item-module_selection__hs7YE","fade":"base-grid-list-item-module_fade__iMTDj","inner":"base-grid-list-item-module_inner__rLb2D","actionsCheckboxWrapper":"base-grid-list-item-module_actionsCheckboxWrapper__51sTV","description":"base-grid-list-item-module_description__peDK8","snippet":"base-grid-list-item-module_snippet__DyZBh","snippetContent":"base-grid-list-item-module_snippetContent__98AuK","react-aria-DropIndicator":"base-grid-list-item-module_react-aria-DropIndicator__KtS-o","gridList":"base-grid-list-item-module_gridList__9TIux","gridListItem":"base-grid-list-item-module_gridListItem__CIHkV","statusPin":"base-grid-list-item-module_statusPin__UPlTb","isItemInteracted":"base-grid-list-item-module_isItemInteracted__FbAYE","tooltipContent":"base-grid-list-item-module_tooltipContent__8oeUV","tooltipArrow":"base-grid-list-item-module_tooltipArrow__xIXK-"};
2
+ var styles = {"smallList":"base-grid-list-item-module_smallList__8lWoC","smallListItem":"base-grid-list-item-module_smallListItem__MAhGw","loading":"base-grid-list-item-module_loading__u4wHh","thumbnail":"base-grid-list-item-module_thumbnail__hzNRu","customSize":"base-grid-list-item-module_customSize__eWPZX","header":"base-grid-list-item-module_header__8Cd7A","subtitle":"base-grid-list-item-module_subtitle__NKkK0","actions":"base-grid-list-item-module_actions__tlu5J","selection":"base-grid-list-item-module_selection__hs7YE","inner":"base-grid-list-item-module_inner__rLb2D","actionsCheckboxWrapper":"base-grid-list-item-module_actionsCheckboxWrapper__51sTV","largeList":"base-grid-list-item-module_largeList__RTycT","largeListItem":"base-grid-list-item-module_largeListItem__ikeWj","fade":"base-grid-list-item-module_fade__iMTDj","description":"base-grid-list-item-module_description__peDK8","snippet":"base-grid-list-item-module_snippet__DyZBh","snippetContent":"base-grid-list-item-module_snippetContent__98AuK","react-aria-DropIndicator":"base-grid-list-item-module_react-aria-DropIndicator__KtS-o","gridList":"base-grid-list-item-module_gridList__9TIux","gridListItem":"base-grid-list-item-module_gridListItem__CIHkV","statusPin":"base-grid-list-item-module_statusPin__UPlTb","isItemInteracted":"base-grid-list-item-module_isItemInteracted__FbAYE","tooltipContent":"base-grid-list-item-module_tooltipContent__8oeUV","tooltipArrow":"base-grid-list-item-module_tooltipArrow__xIXK-"};
3
3
 
4
4
  export { styles as default };
@@ -14,9 +14,7 @@ export declare const BaseGridList: import("react").ForwardRefExoticComponent<imp
14
14
  /**
15
15
  * Styled wrapper over and image or icon.
16
16
  */
17
- Thumbnail: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
18
- ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
19
- }, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
17
+ Thumbnail: import("react").ForwardRefExoticComponent<Omit<import("./types").BaseGridListThumbnailProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
20
18
  /**
21
19
  * Styled wrapper over the title of an item and potential Status components.
22
20
  */
@@ -13,7 +13,9 @@ export declare enum ListLayout {
13
13
  export type BaseGridListHeaderProps = ComponentPropsWithRef<'span'> & {
14
14
  textValue?: string;
15
15
  };
16
- export type BaseGridListThumbnailProps = ComponentPropsWithRef<'div'>;
16
+ export type BaseGridListThumbnailProps = ComponentPropsWithRef<'div'> & {
17
+ hasCustomSize?: boolean;
18
+ };
17
19
  export type BaseGridListSubtitleProps = ComponentPropsWithRef<'span'>;
18
20
  export type BaseGridListDescriptionProps = ComponentPropsWithRef<'p'>;
19
21
  export type BaseGridListActionsProps = Modify<ComponentPropsWithRef<'div'>, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "6.7.0",
3
+ "version": "6.8.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -56,7 +56,7 @@
56
56
  "devDependencies": {
57
57
  "@box/storybook-utils": "^0.0.3"
58
58
  },
59
- "gitHead": "0ea8e47adeb6bd6eac16828ed06540ffda462f80",
59
+ "gitHead": "b85b77d7dd12faeedf014cbd0e92159e49ec6530",
60
60
  "module": "lib-esm/index.js",
61
61
  "main": "lib-esm/index.js",
62
62
  "exports": {