@box/blueprint-web 18.0.0 → 18.2.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.
@@ -1,4 +1,4 @@
1
1
  import '../index.css';
2
- var styles = {"tableSortingContainer":"bp_main_module_tableSortingContainer--17b22","resizableTableContainer":"bp_main_module_resizableTableContainer--17b22","resizableTable":"bp_main_module_resizableTable--17b22","tableHeader":"bp_main_module_tableHeader--17b22","column":"bp_main_module_column--17b22","columnNameWrapper":"bp_main_module_columnNameWrapper--17b22","columnName":"bp_main_module_columnName--17b22","focusVisible":"bp_main_module_focusVisible--17b22","sorted":"bp_main_module_sorted--17b22","sortingFlexWrapper":"bp_main_module_sortingFlexWrapper--17b22","columnResizer":"bp_main_module_columnResizer--17b22","dropdownHeaderContainer":"bp_main_module_dropdownHeaderContainer--17b22","droppableColumn":"bp_main_module_droppableColumn--17b22","actionColumn":"bp_main_module_actionColumn--17b22","hiddenColumn":"bp_main_module_hiddenColumn--17b22","tableBody":"bp_main_module_tableBody--17b22","row":"bp_main_module_row--17b22","cell":"bp_main_module_cell--17b22","actionsWrapper":"bp_main_module_actionsWrapper--17b22","actionChildren":"bp_main_module_actionChildren--17b22","actions":"bp_main_module_actions--17b22","alwaysShowSelection":"bp_main_module_alwaysShowSelection--17b22","isCellHidden":"bp_main_module_isCellHidden--17b22","droppableTarget":"bp_main_module_droppableTarget--17b22","rowDraggingHighlighted":"bp_main_module_rowDraggingHighlighted--17b22"};
2
+ var styles = {"tableSortingContainer":"bp_main_module_tableSortingContainer--e8456","resizableTableContainer":"bp_main_module_resizableTableContainer--e8456","resizableTable":"bp_main_module_resizableTable--e8456","tableHeader":"bp_main_module_tableHeader--e8456","column":"bp_main_module_column--e8456","columnNameWrapper":"bp_main_module_columnNameWrapper--e8456","columnName":"bp_main_module_columnName--e8456","focusVisible":"bp_main_module_focusVisible--e8456","sorted":"bp_main_module_sorted--e8456","sortingFlexWrapper":"bp_main_module_sortingFlexWrapper--e8456","columnResizer":"bp_main_module_columnResizer--e8456","dropdownHeaderContainer":"bp_main_module_dropdownHeaderContainer--e8456","droppableColumn":"bp_main_module_droppableColumn--e8456","actionColumn":"bp_main_module_actionColumn--e8456","hiddenColumn":"bp_main_module_hiddenColumn--e8456","tableBody":"bp_main_module_tableBody--e8456","row":"bp_main_module_row--e8456","cell":"bp_main_module_cell--e8456","actionsWrapper":"bp_main_module_actionsWrapper--e8456","actionChildren":"bp_main_module_actionChildren--e8456","actions":"bp_main_module_actions--e8456","alwaysShowSelection":"bp_main_module_alwaysShowSelection--e8456","isCellHidden":"bp_main_module_isCellHidden--e8456","droppableTarget":"bp_main_module_droppableTarget--e8456","rowDraggingHighlighted":"bp_main_module_rowDraggingHighlighted--e8456"};
3
3
 
4
4
  export { styles as default };
@@ -2,8 +2,7 @@ import { type ForwardedRef } from 'react';
2
2
  import { type RowProps as PrimitiveRowProps } from 'react-aria-components';
3
3
  export type RowProps<T> = PrimitiveRowProps<T> & {
4
4
  /**
5
- * Whether another row can be dropped onto this row. When `false`, the row fades to 50% opacity
6
- * while another row in the table is dragged.
5
+ * Set to `false` to style this item as an invalid drop target.
7
6
  */
8
7
  isDroppableTarget?: boolean;
9
8
  };
@@ -39,8 +39,8 @@ export type TableProps = PrimitiveTableProps & {
39
39
  */
40
40
  selectionVisibility?: SelectionVisibility;
41
41
  /**
42
- * Changes visual styles for drag and drop. When `true`, the dragged row and the row being dropped
43
- * onto are highlighted with grey, instead of the dragged row fading to 50% opacity.
42
+ * Changes visual styles for drag and drop. When `true`, rows will have reduced opacity
43
+ * when being dragged, and drop targets will have a colored background.
44
44
  */
45
45
  isRowDraggingHighlighted?: boolean;
46
46
  };
@@ -86,8 +86,8 @@ export declare const Table: import("react").ForwardRefExoticComponent<PrimitiveT
86
86
  */
87
87
  selectionVisibility?: SelectionVisibility;
88
88
  /**
89
- * Changes visual styles for drag and drop. When `true`, the dragged row and the row being dropped
90
- * onto are highlighted with grey, instead of the dragged row fading to 50% opacity.
89
+ * Changes visual styles for drag and drop. When `true`, rows will have reduced opacity
90
+ * when being dragged, and drop targets will have a colored background.
91
91
  */
92
92
  isRowDraggingHighlighted?: boolean;
93
93
  } & import("react").RefAttributes<HTMLTableElement>>;
@@ -1,6 +1,11 @@
1
1
  export { type ToolbarButtonProps, type ToolbarIconProps, type ToolbarInputProps, type ToolbarLinkProps, type ToolbarProps, type ToolbarSeparatorProps, type ToolbarToggleGroupProps, type ToolbarToggleItemProps, type ToolbarTriggerButtonProps, type ToolbarTextToggleItemProps, } from './types';
2
2
  /**
3
3
  * A container for grouping a set of controls, such as buttons, toggle groups or dropdowns.
4
+ *
5
+ * `Toolbar.Root` accepts an optional `colorScheme` (`light` | `dark`). Dark is a
6
+ * STOPGAP for Preview Context Toolbar only — see the dark remap block at the end of
7
+ * `toolbar.module.scss`. Do not treat this as Blueprint app-wide theming.
8
+ *
4
9
  * @example
5
10
  * <Toolbar.Root>
6
11
  * <Toolbar.ToggleGroup type="single">
@@ -21,10 +26,18 @@ export { type ToolbarButtonProps, type ToolbarIconProps, type ToolbarInputProps,
21
26
  * Upload <Toolbar.DropdownIndicator direction="down" />
22
27
  * </Toolbar.Button>
23
28
  * </Toolbar.Root>
29
+ *
30
+ * @example Dark scheme (Preview Context Toolbar stopgap)
31
+ * <Toolbar.Root colorScheme="dark" aria-label="Annotations">
32
+ * <Toolbar.ToggleGroup type="single" value="markup">
33
+ * <Toolbar.ToggleItem aria-label="markup" icon={Pencil} value="markup" />
34
+ * </Toolbar.ToggleGroup>
35
+ * </Toolbar.Root>
24
36
  */
25
37
  export declare const Toolbar: {
26
38
  /**
27
39
  * Contains all parts of the toolbar component.
40
+ * Optional `colorScheme` is a Preview stopgap — see module docs above.
28
41
  */
29
42
  Root: import("react").ForwardRefExoticComponent<import("./types").ToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
30
43
  /**
@@ -12,6 +12,11 @@ import { ToolbarTextToggleItem } from './toolbar-text-toggle-item.js';
12
12
 
13
13
  /**
14
14
  * A container for grouping a set of controls, such as buttons, toggle groups or dropdowns.
15
+ *
16
+ * `Toolbar.Root` accepts an optional `colorScheme` (`light` | `dark`). Dark is a
17
+ * STOPGAP for Preview Context Toolbar only — see the dark remap block at the end of
18
+ * `toolbar.module.scss`. Do not treat this as Blueprint app-wide theming.
19
+ *
15
20
  * @example
16
21
  * <Toolbar.Root>
17
22
  * <Toolbar.ToggleGroup type="single">
@@ -32,10 +37,18 @@ import { ToolbarTextToggleItem } from './toolbar-text-toggle-item.js';
32
37
  * Upload <Toolbar.DropdownIndicator direction="down" />
33
38
  * </Toolbar.Button>
34
39
  * </Toolbar.Root>
40
+ *
41
+ * @example Dark scheme (Preview Context Toolbar stopgap)
42
+ * <Toolbar.Root colorScheme="dark" aria-label="Annotations">
43
+ * <Toolbar.ToggleGroup type="single" value="markup">
44
+ * <Toolbar.ToggleItem aria-label="markup" icon={Pencil} value="markup" />
45
+ * </Toolbar.ToggleGroup>
46
+ * </Toolbar.Root>
35
47
  */
36
48
  const Toolbar = {
37
49
  /**
38
50
  * Contains all parts of the toolbar component.
51
+ * Optional `colorScheme` is a Preview stopgap — see module docs above.
39
52
  */
40
53
  Root: ToolbarRoot,
41
54
  /**
@@ -5,10 +5,12 @@ import clsx from 'clsx';
5
5
  import { forwardRef } from 'react';
6
6
  import styles from './toolbar.module.js';
7
7
 
8
- const ToolbarDropdownIndicator = /*#__PURE__*/forwardRef(({
8
+ const ToolbarDropdownIndicator = /*#__PURE__*/forwardRef((
9
+ // CSS var keeps light carets at gray-50 (#909090); dark remaps the var on the scheme root.
10
+ {
9
11
  direction = 'down',
10
12
  className,
11
- color
13
+ color = 'var(--toolbar-dropdown-indicator-color)'
12
14
  }, forwardedRef) => {
13
15
  return jsx(ChevronDown, {
14
16
  ref: forwardedRef,
@@ -1,14 +1,15 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { IconIconOnLight, Size5 } from '@box/blueprint-web-assets/tokens/tokens';
2
+ import { Size5 } from '@box/blueprint-web-assets/tokens/tokens';
3
3
  import clsx from 'clsx';
4
4
  import React__default, { forwardRef } from 'react';
5
5
  import styles from './toolbar.module.js';
6
6
 
7
7
  const ToolbarIcon = /*#__PURE__*/forwardRef((props, forwardedRef) => {
8
+ // Inherit from Toolbar item text color so light/dark schemes both work without a hardcoded fill.
8
9
  const {
9
10
  icon,
10
11
  className,
11
- color = IconIconOnLight
12
+ color = 'currentColor'
12
13
  } = props;
13
14
  return jsx("span", {
14
15
  ref: forwardedRef,
@@ -1,2 +1,11 @@
1
1
  import { type ToolbarProps } from './types';
2
+ /**
3
+ * Context Toolbar root.
4
+ *
5
+ * STOPGAP EXCEPTION — DO NOT COPY to other components.
6
+ * `colorScheme` is consumer-selected light|dark for Toolbar only until Launchpad
7
+ * ships a real theme/mode service (LXP-75). Expanding theming means rewriting,
8
+ * not cloning this prop + SCSS remap pattern. Figma drift risk is owned by Preview;
9
+ * keep dark/light VRTs green when changing remaps in `toolbar.module.scss`.
10
+ */
2
11
  export declare const ToolbarRoot: import("react").ForwardRefExoticComponent<ToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -6,6 +6,15 @@ import { ToolbarScrollableContainer } from './toolbar-scrollable-container.js';
6
6
  import styles from './toolbar.module.js';
7
7
  import { HorizontalScrollProvider } from './utils/horizontal-scroll-context.js';
8
8
 
9
+ /**
10
+ * Context Toolbar root.
11
+ *
12
+ * STOPGAP EXCEPTION — DO NOT COPY to other components.
13
+ * `colorScheme` is consumer-selected light|dark for Toolbar only until Launchpad
14
+ * ships a real theme/mode service (LXP-75). Expanding theming means rewriting,
15
+ * not cloning this prop + SCSS remap pattern. Figma drift risk is owned by Preview;
16
+ * keep dark/light VRTs green when changing remaps in `toolbar.module.scss`.
17
+ */
9
18
  const ToolbarRoot = /*#__PURE__*/forwardRef((props, forwardedRef) => {
10
19
  const {
11
20
  children,
@@ -16,13 +25,17 @@ const ToolbarRoot = /*#__PURE__*/forwardRef((props, forwardedRef) => {
16
25
  ariaLabelPrevButton,
17
26
  maxWidth,
18
27
  scrollStep,
28
+ colorScheme = 'light',
19
29
  ...rest
20
30
  } = props;
31
+ // Emit the attribute only in dark mode so light Toolbars keep the same DOM as master.
32
+ const dataColorScheme = colorScheme === 'dark' ? colorScheme : undefined;
21
33
  if (scrollable) {
22
34
  return jsx(ToolbarPrimitive.Root, {
23
35
  ...rest,
24
36
  ref: forwardedRef,
25
37
  className: clsx(styles.toolbarRoot, styles.ScrollableToolbarWithReducedPadding, className),
38
+ "data-color-scheme": dataColorScheme,
26
39
  style: {
27
40
  ...style,
28
41
  maxWidth
@@ -32,6 +45,7 @@ const ToolbarRoot = /*#__PURE__*/forwardRef((props, forwardedRef) => {
32
45
  children: jsx(ToolbarScrollableContainer, {
33
46
  ariaLabelNextButton: ariaLabelNextButton,
34
47
  ariaLabelPrevButton: ariaLabelPrevButton,
48
+ colorScheme: colorScheme,
35
49
  children: children
36
50
  })
37
51
  })
@@ -41,6 +55,7 @@ const ToolbarRoot = /*#__PURE__*/forwardRef((props, forwardedRef) => {
41
55
  ...rest,
42
56
  ref: forwardedRef,
43
57
  className: clsx(styles.toolbarRoot, className),
58
+ "data-color-scheme": dataColorScheme,
44
59
  style: style,
45
60
  children: children
46
61
  });
@@ -1,7 +1,9 @@
1
+ import { type ToolbarColorScheme } from './types';
1
2
  interface ScrollableContainerProps {
2
3
  children: React.ReactNode;
3
4
  ariaLabelPrevButton: string;
4
5
  ariaLabelNextButton: string;
6
+ colorScheme?: ToolbarColorScheme;
5
7
  }
6
8
  export declare const ToolbarScrollableContainer: import("react").ForwardRefExoticComponent<ScrollableContainerProps & import("react").RefAttributes<HTMLDivElement>>;
7
9
  export {};
@@ -13,7 +13,8 @@ const ScrollButton = ({
13
13
  ariaLabel,
14
14
  onClick,
15
15
  icon: Icon,
16
- separatorPosition
16
+ separatorPosition,
17
+ variant
17
18
  }) => jsxs("div", {
18
19
  className: clsx(styles.scrollButtonWrapper, {
19
20
  [styles.hidden]: hidden
@@ -21,14 +22,16 @@ const ScrollButton = ({
21
22
  children: [separatorPosition === 'before' && jsx(ToolbarSeparator, {}), jsx(IconButton, {
22
23
  "aria-label": ariaLabel,
23
24
  icon: Icon,
24
- onClick: onClick
25
+ onClick: onClick,
26
+ variant: variant
25
27
  }), separatorPosition === 'after' && jsx(ToolbarSeparator, {})]
26
28
  });
27
29
  const ToolbarScrollableContainer = /*#__PURE__*/forwardRef((props, forwardedRef) => {
28
30
  const {
29
31
  children,
30
32
  ariaLabelPrevButton,
31
- ariaLabelNextButton
33
+ ariaLabelNextButton,
34
+ colorScheme = 'light'
32
35
  } = props;
33
36
  const {
34
37
  scrollPosition,
@@ -36,6 +39,7 @@ const ToolbarScrollableContainer = /*#__PURE__*/forwardRef((props, forwardedRef)
36
39
  scrollRight,
37
40
  onAttach
38
41
  } = useScrollContext();
42
+ const scrollButtonVariant = colorScheme === 'dark' ? 'on-dark' : 'default';
39
43
  const onMountRef = useRefWithEffectMemoized(forwardedRef, node => {
40
44
  onAttach(node);
41
45
  });
@@ -45,7 +49,8 @@ const ToolbarScrollableContainer = /*#__PURE__*/forwardRef((props, forwardedRef)
45
49
  hidden: scrollPosition === 'start' || scrollPosition === 'none',
46
50
  icon: PointerChevronLeft,
47
51
  onClick: scrollLeft,
48
- separatorPosition: "after"
52
+ separatorPosition: "after",
53
+ variant: scrollButtonVariant
49
54
  }), jsx("div", {
50
55
  ref: onMountRef,
51
56
  className: clsx(styles.scrollableChildrenWrapper),
@@ -56,7 +61,8 @@ const ToolbarScrollableContainer = /*#__PURE__*/forwardRef((props, forwardedRef)
56
61
  hidden: scrollPosition === 'end' || scrollPosition === 'none',
57
62
  icon: PointerChevronRight,
58
63
  onClick: scrollRight,
59
- separatorPosition: "before"
64
+ separatorPosition: "before",
65
+ variant: scrollButtonVariant
60
66
  })]
61
67
  });
62
68
  });
@@ -1,15 +1,16 @@
1
1
  import { jsxs } from 'react/jsx-runtime';
2
- import { IconIconOnLight, Size5 } from '@box/blueprint-web-assets/tokens/tokens';
2
+ import { Size5 } from '@box/blueprint-web-assets/tokens/tokens';
3
3
  import * as ToolbarPrimitive from '@radix-ui/react-toolbar';
4
4
  import clsx from 'clsx';
5
5
  import { forwardRef, createElement } from 'react';
6
6
  import styles from './toolbar.module.js';
7
7
 
8
8
  const ToolbarToggleItem = /*#__PURE__*/forwardRef((props, forwardedRef) => {
9
+ // Inherit from Toolbar item text color so light/dark schemes both work without a hardcoded fill.
9
10
  const {
10
11
  children,
11
12
  icon,
12
- color = IconIconOnLight,
13
+ color = 'currentColor',
13
14
  ...rest
14
15
  } = props;
15
16
  return jsxs(ToolbarPrimitive.ToggleItem, {
@@ -1,4 +1,4 @@
1
1
  import '../index.css';
2
- var styles = {"dropdownIndicator":"bp_toolbar_module_dropdownIndicator--eb4ca","invertCaret":"bp_toolbar_module_invertCaret--eb4ca","toolbarRoot":"bp_toolbar_module_toolbarRoot--eb4ca","ScrollableToolbarWithReducedPadding":"bp_toolbar_module_ScrollableToolbarWithReducedPadding--eb4ca","toolbarItem":"bp_toolbar_module_toolbarItem--eb4ca","toolbarButton":"bp_toolbar_module_toolbarButton--eb4ca","toolbarTextToggleItem":"bp_toolbar_module_toolbarTextToggleItem--eb4ca","toolbarLink":"bp_toolbar_module_toolbarLink--eb4ca","scrollButtonWrapper":"bp_toolbar_module_scrollButtonWrapper--eb4ca","hidden":"bp_toolbar_module_hidden--eb4ca","scrollableChildrenWrapper":"bp_toolbar_module_scrollableChildrenWrapper--eb4ca","separator":"bp_toolbar_module_separator--eb4ca","toggleGroup":"bp_toolbar_module_toggleGroup--eb4ca","toolbarToggle":"bp_toolbar_module_toolbarToggle--eb4ca","triggerButtonSelectedWithColor":"bp_toolbar_module_triggerButtonSelectedWithColor--eb4ca","toolbarIcon":"bp_toolbar_module_toolbarIcon--eb4ca","toolbarLinkText":"bp_toolbar_module_toolbarLinkText--eb4ca","toolbarInputContainer":"bp_toolbar_module_toolbarInputContainer--eb4ca","toolbarInput":"bp_toolbar_module_toolbarInput--eb4ca","toolbarInputErrorIcon":"bp_toolbar_module_toolbarInputErrorIcon--eb4ca","toolbarInputError":"bp_toolbar_module_toolbarInputError--eb4ca","toolbarInputErrorIconHidden":"bp_toolbar_module_toolbarInputErrorIconHidden--eb4ca"};
2
+ var styles = {"dropdownIndicator":"bp_toolbar_module_dropdownIndicator--36b15","invertCaret":"bp_toolbar_module_invertCaret--36b15","toolbarRoot":"bp_toolbar_module_toolbarRoot--36b15","ScrollableToolbarWithReducedPadding":"bp_toolbar_module_ScrollableToolbarWithReducedPadding--36b15","toolbarItem":"bp_toolbar_module_toolbarItem--36b15","toolbarButton":"bp_toolbar_module_toolbarButton--36b15","toolbarTextToggleItem":"bp_toolbar_module_toolbarTextToggleItem--36b15","toolbarLink":"bp_toolbar_module_toolbarLink--36b15","scrollButtonWrapper":"bp_toolbar_module_scrollButtonWrapper--36b15","hidden":"bp_toolbar_module_hidden--36b15","scrollableChildrenWrapper":"bp_toolbar_module_scrollableChildrenWrapper--36b15","separator":"bp_toolbar_module_separator--36b15","toggleGroup":"bp_toolbar_module_toggleGroup--36b15","toolbarToggle":"bp_toolbar_module_toolbarToggle--36b15","triggerButtonSelectedWithColor":"bp_toolbar_module_triggerButtonSelectedWithColor--36b15","toolbarIcon":"bp_toolbar_module_toolbarIcon--36b15","toolbarLinkText":"bp_toolbar_module_toolbarLinkText--36b15","toolbarInputContainer":"bp_toolbar_module_toolbarInputContainer--36b15","toolbarInput":"bp_toolbar_module_toolbarInput--36b15","toolbarInputErrorIcon":"bp_toolbar_module_toolbarInputErrorIcon--36b15","toolbarInputError":"bp_toolbar_module_toolbarInputError--36b15","toolbarInputErrorIconHidden":"bp_toolbar_module_toolbarInputErrorIconHidden--36b15"};
3
3
 
4
4
  export { styles as default };
@@ -1,5 +1,16 @@
1
1
  import { type ToolbarButtonProps as ToolbarPrimitiveButtonProps, type ToolbarLinkProps as ToolbarPrimitiveLinkProps, type ToolbarProps as ToolbarPrimitiveProps, type ToolbarSeparatorProps as ToolbarPrimitiveSeparatorProps, type ToolbarToggleItemProps as ToolbarPrimitiveToggleItemProps, type ToggleGroupProps as ToolbarToggleGroupPrimitiveProps } from '@radix-ui/react-toolbar';
2
2
  import { type CSSProperties, type FunctionComponent, type HTMLAttributes, type PropsWithChildren, type SVGProps } from 'react';
3
+ /** Toolbar-only stopgap; not exported from the package root. */
4
+ export type ToolbarColorScheme = 'light' | 'dark';
5
+ interface ColorSchemeProps {
6
+ /**
7
+ * Color scheme of the toolbar. Independent of the page theme; the consumer chooses.
8
+ * Light remains the default so existing consumers are unchanged.
9
+ *
10
+ * @default 'light'
11
+ */
12
+ colorScheme?: ToolbarColorScheme;
13
+ }
3
14
  interface ToolbarWithoutScrollProps {
4
15
  scrollable?: false;
5
16
  }
@@ -20,9 +31,9 @@ interface ToolbarWithScrollProps extends ToolbarScrollOptions {
20
31
  scrollable: true;
21
32
  }
22
33
  type ScrollProps = ToolbarWithoutScrollProps | ToolbarWithScrollProps;
23
- export type ToolbarProps = ToolbarPrimitiveProps & ScrollProps;
34
+ export type ToolbarProps = ToolbarPrimitiveProps & ColorSchemeProps & ScrollProps;
24
35
  /** Scroll options can still be present at runtime when `scrollable` is falsy, e.g. `scrollable={isNarrow}`. */
25
- export type ToolbarRootRuntimeProps = ToolbarPrimitiveProps & ((ToolbarWithoutScrollProps & Partial<ToolbarScrollOptions>) | ToolbarWithScrollProps);
36
+ export type ToolbarRootRuntimeProps = ToolbarPrimitiveProps & ColorSchemeProps & ((ToolbarWithoutScrollProps & Partial<ToolbarScrollOptions>) | ToolbarWithScrollProps);
26
37
  export type ToolbarSeparatorProps = ToolbarPrimitiveSeparatorProps;
27
38
  export type ToolbarToggleGroupProps = ToolbarToggleGroupPrimitiveProps;
28
39
  interface ToolbarButtonCSS extends CSSProperties {
@@ -25,6 +25,7 @@ const BaseGridListItem = /*#__PURE__*/forwardRef(function BaseGridListItem(props
25
25
  const {
26
26
  children,
27
27
  className,
28
+ isDroppableTarget = true,
28
29
  loading = false,
29
30
  pinned = false,
30
31
  pinAriaLabel,
@@ -131,6 +132,8 @@ const BaseGridListItem = /*#__PURE__*/forwardRef(function BaseGridListItem(props
131
132
  // In V2 layouts, keep subtitle visible on hover/focus when there are no action buttons
132
133
  {
133
134
  [styles.noActions]: isV2Layout && !hasActions
135
+ }, {
136
+ [styles.droppableTarget]: isDroppableTarget
134
137
  }, className),
135
138
  textValue: textValue,
136
139
  children: jsxs(BaseGridListItemContext.Provider, {
@@ -1,4 +1,4 @@
1
1
  import '../../index.css';
2
- var styles = {"smallList":"bp_base_grid_list_item_module_smallList--1c940","smallListItem":"bp_base_grid_list_item_module_smallListItem--1c940","loading":"bp_base_grid_list_item_module_loading--1c940","thumbnail":"bp_base_grid_list_item_module_thumbnail--1c940","thumbnailContent":"bp_base_grid_list_item_module_thumbnailContent--1c940","header":"bp_base_grid_list_item_module_header--1c940","subtitle":"bp_base_grid_list_item_module_subtitle--1c940","actions":"bp_base_grid_list_item_module_actions--1c940","selection":"bp_base_grid_list_item_module_selection--1c940","inner":"bp_base_grid_list_item_module_inner--1c940","actionsCheckboxWrapper":"bp_base_grid_list_item_module_actionsCheckboxWrapper--1c940","largeList":"bp_base_grid_list_item_module_largeList--1c940","largeListItem":"bp_base_grid_list_item_module_largeListItem--1c940","fade":"bp_base_grid_list_item_module_fade--1c940","description":"bp_base_grid_list_item_module_description--1c940","snippet":"bp_base_grid_list_item_module_snippet--1c940","snippetContent":"bp_base_grid_list_item_module_snippetContent--1c940","gridList":"bp_base_grid_list_item_module_gridList--1c940","gridListItem":"bp_base_grid_list_item_module_gridListItem--1c940","statusPin":"bp_base_grid_list_item_module_statusPin--1c940","isItemInteracted":"bp_base_grid_list_item_module_isItemInteracted--1c940","tooltipContent":"bp_base_grid_list_item_module_tooltipContent--1c940","tooltipArrow":"bp_base_grid_list_item_module_tooltipArrow--1c940","gridListV2":"bp_base_grid_list_item_module_gridListV2--1c940","gridListV2Item":"bp_base_grid_list_item_module_gridListV2Item--1c940","noActions":"bp_base_grid_list_item_module_noActions--1c940","thumbnailBadges":"bp_base_grid_list_item_module_thumbnailBadges--1c940","statusBadge":"bp_base_grid_list_item_module_statusBadge--1c940","fileTypePill":"bp_base_grid_list_item_module_fileTypePill--1c940","textCentered":"bp_base_grid_list_item_module_textCentered--1c940","innerCentered":"bp_base_grid_list_item_module_innerCentered--1c940","gridListV2Small":"bp_base_grid_list_item_module_gridListV2Small--1c940","gridListV2XSmall":"bp_base_grid_list_item_module_gridListV2XSmall--1c940","gridListV2XSmallBordered":"bp_base_grid_list_item_module_gridListV2XSmallBordered--1c940","gridV2ClickShield":"bp_base_grid_list_item_module_gridV2ClickShield--1c940","listV2ClickShield":"bp_base_grid_list_item_module_listV2ClickShield--1c940","listV2":"bp_base_grid_list_item_module_listV2--1c940","listV2Item":"bp_base_grid_list_item_module_listV2Item--1c940","listV2Divider":"bp_base_grid_list_item_module_listV2Divider--1c940","content":"bp_base_grid_list_item_module_content--1c940","staticList":"bp_base_grid_list_item_module_staticList--1c940","staticListItem":"bp_base_grid_list_item_module_staticListItem--1c940"};
2
+ var styles = {"smallList":"bp_base_grid_list_item_module_smallList--1ce37","smallListItem":"bp_base_grid_list_item_module_smallListItem--1ce37","loading":"bp_base_grid_list_item_module_loading--1ce37","thumbnail":"bp_base_grid_list_item_module_thumbnail--1ce37","thumbnailContent":"bp_base_grid_list_item_module_thumbnailContent--1ce37","header":"bp_base_grid_list_item_module_header--1ce37","subtitle":"bp_base_grid_list_item_module_subtitle--1ce37","actions":"bp_base_grid_list_item_module_actions--1ce37","selection":"bp_base_grid_list_item_module_selection--1ce37","inner":"bp_base_grid_list_item_module_inner--1ce37","actionsCheckboxWrapper":"bp_base_grid_list_item_module_actionsCheckboxWrapper--1ce37","largeList":"bp_base_grid_list_item_module_largeList--1ce37","largeListItem":"bp_base_grid_list_item_module_largeListItem--1ce37","fade":"bp_base_grid_list_item_module_fade--1ce37","description":"bp_base_grid_list_item_module_description--1ce37","snippet":"bp_base_grid_list_item_module_snippet--1ce37","snippetContent":"bp_base_grid_list_item_module_snippetContent--1ce37","gridList":"bp_base_grid_list_item_module_gridList--1ce37","gridListItem":"bp_base_grid_list_item_module_gridListItem--1ce37","statusPin":"bp_base_grid_list_item_module_statusPin--1ce37","isItemInteracted":"bp_base_grid_list_item_module_isItemInteracted--1ce37","tooltipContent":"bp_base_grid_list_item_module_tooltipContent--1ce37","tooltipArrow":"bp_base_grid_list_item_module_tooltipArrow--1ce37","gridListV2":"bp_base_grid_list_item_module_gridListV2--1ce37","gridListV2Item":"bp_base_grid_list_item_module_gridListV2Item--1ce37","droppableTarget":"bp_base_grid_list_item_module_droppableTarget--1ce37","noActions":"bp_base_grid_list_item_module_noActions--1ce37","thumbnailBadges":"bp_base_grid_list_item_module_thumbnailBadges--1ce37","statusBadge":"bp_base_grid_list_item_module_statusBadge--1ce37","fileTypePill":"bp_base_grid_list_item_module_fileTypePill--1ce37","textCentered":"bp_base_grid_list_item_module_textCentered--1ce37","innerCentered":"bp_base_grid_list_item_module_innerCentered--1ce37","gridListV2Small":"bp_base_grid_list_item_module_gridListV2Small--1ce37","gridListV2XSmall":"bp_base_grid_list_item_module_gridListV2XSmall--1ce37","gridListV2XSmallBordered":"bp_base_grid_list_item_module_gridListV2XSmallBordered--1ce37","gridV2ClickShield":"bp_base_grid_list_item_module_gridV2ClickShield--1ce37","listV2ClickShield":"bp_base_grid_list_item_module_listV2ClickShield--1ce37","listV2":"bp_base_grid_list_item_module_listV2--1ce37","listV2Item":"bp_base_grid_list_item_module_listV2Item--1ce37","listV2Divider":"bp_base_grid_list_item_module_listV2Divider--1ce37","content":"bp_base_grid_list_item_module_content--1ce37","staticList":"bp_base_grid_list_item_module_staticList--1ce37","staticListItem":"bp_base_grid_list_item_module_staticListItem--1ce37"};
3
3
 
4
4
  export { styles as default };
@@ -139,5 +139,9 @@ export interface BaseGridListItemContextType {
139
139
  }
140
140
  export interface BaseGridListItemProps extends GridListItemProps, Omit<BaseGridListItemContextType, 'isItemInteracted' | 'setIsItemInteracted' | 'hasActions' | 'setHasActions'> {
141
141
  children?: ReactNode;
142
+ /**
143
+ * Set to `false` to style this item as an invalid drop target.
144
+ */
145
+ isDroppableTarget?: boolean;
142
146
  }
143
147
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "18.0.0",
3
+ "version": "18.2.0",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -55,7 +55,7 @@
55
55
  "dependencies": {
56
56
  "@ariakit/react": "0.4.21",
57
57
  "@ariakit/react-core": "0.4.21",
58
- "@box/blueprint-web-assets": "^5.11.14",
58
+ "@box/blueprint-web-assets": "^5.11.16",
59
59
  "@internationalized/date": "^3.12.0",
60
60
  "@radix-ui/react-accordion": "1.1.2",
61
61
  "@radix-ui/react-checkbox": "1.0.4",
@@ -86,7 +86,7 @@
86
86
  "devDependencies": {
87
87
  "@box/box-test-client": "^3.2.7",
88
88
  "@box/playwright-utils": "^2.8.5",
89
- "@box/storybook-utils": "^1.4.9",
89
+ "@box/storybook-utils": "^1.4.11",
90
90
  "@figma/code-connect": "1.4.4",
91
91
  "@playwright/test": "1.46.1",
92
92
  "@types/js-yaml": "^4.0.9",