@box/blueprint-web 14.24.2 → 14.25.1

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.
@@ -2,9 +2,10 @@ import { type Crumb } from './types';
2
2
  interface BreadcrumbDropdownProps {
3
3
  crumbsToRender: Crumb[];
4
4
  iconButton: React.ReactNode;
5
+ isInteractive: boolean;
5
6
  listRef?: React.RefObject<HTMLLIElement>;
6
7
  onPageLinkClick: (id: string) => void;
7
8
  size: 'xsmall' | 'small' | 'medium' | 'large';
8
9
  }
9
- export declare function BreadcrumbDropdown({ crumbsToRender, iconButton, listRef, onPageLinkClick, size, }: BreadcrumbDropdownProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function BreadcrumbDropdown({ crumbsToRender, iconButton, isInteractive, listRef, onPageLinkClick, size, }: BreadcrumbDropdownProps): import("react/jsx-runtime").JSX.Element;
10
11
  export {};
@@ -1,14 +1,14 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useCallback } from 'react';
3
- import { PointerRight } from '@box/blueprint-web-assets/icons/Fill';
4
3
  import { EllipsizableText } from '../ellipsizable-text/ellipsizable-text.js';
5
4
  import { DropdownMenu } from '../primitives/dropdown-menu/index.js';
6
- import { getSeparatorSize } from './utils.js';
5
+ import { BreadcrumbItemSeparator } from './breadcrumb-item-separator.js';
7
6
  import styles from './breadcrumb.module.js';
8
7
 
9
8
  function BreadcrumbDropdown({
10
9
  crumbsToRender,
11
10
  iconButton,
11
+ isInteractive,
12
12
  listRef,
13
13
  onPageLinkClick,
14
14
  size
@@ -35,10 +35,9 @@ function BreadcrumbDropdown({
35
35
  })
36
36
  }, crumb.id))
37
37
  })]
38
- }), jsx(PointerRight, {
39
- height: getSeparatorSize(size),
40
- role: "presentation",
41
- width: getSeparatorSize(size)
38
+ }), jsx(BreadcrumbItemSeparator, {
39
+ isInteractive: isInteractive,
40
+ size: size
42
41
  })]
43
42
  });
44
43
  }
@@ -0,0 +1,7 @@
1
+ import { type BreadcrumbProps } from './types';
2
+ type BreadcrumbItemSeparatorProps = {
3
+ isInteractive: boolean;
4
+ size: NonNullable<BreadcrumbProps['size']>;
5
+ };
6
+ export declare function BreadcrumbItemSeparator({ isInteractive, size }: BreadcrumbItemSeparatorProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,33 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { PointerRight } from '@box/blueprint-web-assets/icons/Fill';
3
+ import { Text } from '../text/text.js';
4
+ import { getNonInteractiveSeparatorVariantFromSize, getSeparatorSize } from './utils.js';
5
+ import styles from './breadcrumb.module.js';
6
+
7
+ function BreadcrumbItemSeparator({
8
+ isInteractive,
9
+ size
10
+ }) {
11
+ if (isInteractive) {
12
+ const dimension = getSeparatorSize(size);
13
+ return jsx(PointerRight, {
14
+ height: dimension,
15
+ role: "presentation",
16
+ width: dimension
17
+ });
18
+ }
19
+ return jsx("span", {
20
+ "aria-hidden": "true",
21
+ className: styles.breadcrumbSlashSeparator,
22
+ children: jsx(Text, {
23
+ as: "span",
24
+ style: {
25
+ color: 'var(--bp-text-text-on-light-tertiary)'
26
+ },
27
+ variant: getNonInteractiveSeparatorVariantFromSize(size),
28
+ children: "/"
29
+ })
30
+ });
31
+ }
32
+
33
+ export { BreadcrumbItemSeparator };
@@ -1,15 +1,16 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import noop from 'lodash/noop';
3
3
  import { forwardRef, useRef } from 'react';
4
- import { FolderTree, PointerRight } from '@box/blueprint-web-assets/icons/Fill';
4
+ import { FolderTree } from '@box/blueprint-web-assets/icons/Fill';
5
5
  import { Home } from '@box/blueprint-web-assets/icons/MediumFilled';
6
6
  import { useBreakpoint, Breakpoint } from '../utils/useBreakpoint.js';
7
7
  import { EllipsisTruncationView } from './ellipsis-truncation-view.js';
8
8
  import { FolderTreeTruncationView } from './folder-tree-truncation-view.js';
9
9
  import { FullView } from './full-view.js';
10
10
  import { MobileView } from './mobile-view.js';
11
+ import { BreadcrumbItemSeparator } from './breadcrumb-item-separator.js';
11
12
  import { useFolderTreeTruncation } from './useFolderTreeTruncation.js';
12
- import { getSeparatorSize, getContainerHeight, getRootIconSize } from './utils.js';
13
+ import { getContainerHeight, getRootIconSize } from './utils.js';
13
14
  import styles from './breadcrumb.module.js';
14
15
 
15
16
  const ELLIPSIS_TRUNCATION_THRESHOLD = 7;
@@ -100,10 +101,9 @@ const Breadcrumb = /*#__PURE__*/forwardRef((props, forwardedRef) => {
100
101
  }) : jsx(FolderTree, {
101
102
  height: rootIconSize,
102
103
  width: rootIconSize
103
- }), jsx(PointerRight, {
104
- height: getSeparatorSize(size),
105
- role: "presentation",
106
- width: getSeparatorSize(size)
104
+ }), jsx(BreadcrumbItemSeparator, {
105
+ isInteractive: isInteractive,
106
+ size: size
107
107
  })]
108
108
  }), breadcrumbList]
109
109
  })
@@ -1,4 +1,4 @@
1
1
  import '../index.css';
2
- var styles = {"container":"bp_breadcrumb_module_container--30dee","breadcrumb":"bp_breadcrumb_module_breadcrumb--30dee","pageLink":"bp_breadcrumb_module_pageLink--30dee","linkWithHover":"bp_breadcrumb_module_linkWithHover--30dee","dropdownContent":"bp_breadcrumb_module_dropdownContent--30dee"};
2
+ var styles = {"container":"bp_breadcrumb_module_container--c0843","breadcrumb":"bp_breadcrumb_module_breadcrumb--c0843","pageLink":"bp_breadcrumb_module_pageLink--c0843","breadcrumbSlashSeparator":"bp_breadcrumb_module_breadcrumbSlashSeparator--c0843","crumbButton":"bp_breadcrumb_module_crumbButton--c0843","dropdownContent":"bp_breadcrumb_module_dropdownContent--c0843"};
3
3
 
4
4
  export { styles as default };
@@ -28,6 +28,7 @@ const EllipsisTruncationView = ({
28
28
  icon: Ellipsis,
29
29
  size: getIconButtonSize(size)
30
30
  }),
31
+ isInteractive: isInteractive,
31
32
  onPageLinkClick: onPageLinkClick,
32
33
  size: size
33
34
  }), lastTwoCrumbs.map((crumb, index) => jsx(PageLink, {
@@ -25,6 +25,7 @@ const FolderTreeTruncationView = ({
25
25
  icon: FolderTree,
26
26
  size: getIconButtonSize(size)
27
27
  }),
28
+ isInteractive: isInteractive,
28
29
  listRef: iconButtonRef,
29
30
  onPageLinkClick: onPageLinkClick,
30
31
  size: size
@@ -17,6 +17,7 @@ const MobileView = ({
17
17
  return jsxs(Fragment, {
18
18
  children: [hiddenCrumbs.length > 0 && jsx(BreadcrumbDropdown, {
19
19
  crumbsToRender: hiddenCrumbs,
20
+ isInteractive: isInteractive,
20
21
  iconButton: jsx(IconButton, {
21
22
  "aria-label": truncatedLinksIconAriaLabel,
22
23
  icon: FolderTree,
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useCallback } from 'react';
3
- import { PointerRight } from '@box/blueprint-web-assets/icons/Fill';
4
3
  import { EllipsizableText } from '../ellipsizable-text/ellipsizable-text.js';
5
- import { Link } from '../primitives/link/link.js';
6
4
  import { Text } from '../text/text.js';
7
- import { getBoldTextVariantFromSize, getTextVariantFromSize, getSeparatorSize } from './utils.js';
5
+ import { TextButton } from '../text-button/text-button.js';
6
+ import { BreadcrumbItemSeparator } from './breadcrumb-item-separator.js';
7
+ import { getBoldTextVariantFromSize, getTextVariantFromSize } from './utils.js';
8
8
  import styles from './breadcrumb.module.js';
9
9
 
10
10
  const PageLink = ({
@@ -39,24 +39,23 @@ const PageLink = ({
39
39
  }
40
40
  return jsxs("li", {
41
41
  className: styles.pageLink,
42
- children: [isInteractive ? jsx(Link, {
43
- className: styles.linkWithHover,
42
+ children: [isInteractive ? jsx(TextButton, {
43
+ className: styles.crumbButton,
44
+ color: "textOnLightSecondary",
44
45
  onClick: handlePageLinkClick,
45
- variant: "standalone",
46
- children: jsx(Text, {
47
- as: "span",
48
- color: "textOnLightSecondary",
49
- variant: getTextVariantFromSize(size),
50
- children: crumb.name
51
- })
46
+ variant: getTextVariantFromSize(size),
47
+ style: {
48
+ '--text-button-padding': 0
49
+ },
50
+ type: "button",
51
+ children: crumb.name
52
52
  }) : jsx(Text, {
53
53
  as: "span",
54
54
  variant: getTextVariantFromSize(size),
55
55
  children: crumb.name
56
- }), jsx(PointerRight, {
57
- height: getSeparatorSize(size),
58
- role: "presentation",
59
- width: getSeparatorSize(size)
56
+ }), jsx(BreadcrumbItemSeparator, {
57
+ isInteractive: isInteractive,
58
+ size: size
60
59
  })]
61
60
  }, crumb.id);
62
61
  };
@@ -1,7 +1,8 @@
1
- import { type BreadcrumbProps } from './types';
2
1
  import { type TypographyVariant } from '../text/types';
2
+ import { type BreadcrumbProps } from './types';
3
3
  export declare const getTextVariantFromSize: (size: BreadcrumbProps["size"]) => TypographyVariant;
4
4
  export declare const getBoldTextVariantFromSize: (size: BreadcrumbProps["size"]) => TypographyVariant;
5
+ export declare const getNonInteractiveSeparatorVariantFromSize: (size: BreadcrumbProps["size"]) => TypographyVariant;
5
6
  export declare const getSeparatorSize: (size: BreadcrumbProps["size"]) => string;
6
7
  export declare const getRootIconSize: (size: BreadcrumbProps["size"], hasTruncation?: boolean) => string;
7
8
  export declare const getContainerHeight: (size: BreadcrumbProps["size"], hasTruncation?: boolean) => string;
@@ -1,4 +1,4 @@
1
- import { bpSize030, bpSize040, bpSize020, bpSize060, bpSize080, bpSize050 } from '@box/blueprint-web-assets/tokens/tokens';
1
+ import { bpSize060, bpSize080, bpSize050, bpSize040, bpSize030, bpSize020 } from '@box/blueprint-web-assets/tokens/tokens';
2
2
 
3
3
  const getTextVariantFromSize = size => {
4
4
  switch (size) {
@@ -28,6 +28,19 @@ const getBoldTextVariantFromSize = size => {
28
28
  return 'bodyLargeBold';
29
29
  }
30
30
  };
31
+ const getNonInteractiveSeparatorVariantFromSize = size => {
32
+ switch (size) {
33
+ case 'xsmall':
34
+ case 'small':
35
+ return 'bodyDefault';
36
+ case 'medium':
37
+ return 'bodyLarge';
38
+ case 'large':
39
+ return 'titleXLarge';
40
+ default:
41
+ return 'bodyLarge';
42
+ }
43
+ };
31
44
  const getSeparatorSize = size => {
32
45
  switch (size) {
33
46
  case 'xsmall':
@@ -113,4 +126,4 @@ const getIconButtonSize = size => {
113
126
  }
114
127
  };
115
128
 
116
- export { getBoldTextVariantFromSize, getContainerHeight, getIconButtonSize, getRootIconSize, getSeparatorSize, getTextVariantFromSize };
129
+ export { getBoldTextVariantFromSize, getContainerHeight, getIconButtonSize, getNonInteractiveSeparatorVariantFromSize, getRootIconSize, getSeparatorSize, getTextVariantFromSize };
@@ -3300,10 +3300,10 @@
3300
3300
  .bp_menu_item_sections_module_menuItemSideContent--dd1ef.bp_menu_item_sections_module_textOnLightSecondary--dd1ef{
3301
3301
  color:var(--menu-item-text-color);
3302
3302
  }
3303
- .bp_breadcrumb_module_container--30dee{
3303
+ .bp_breadcrumb_module_container--c0843{
3304
3304
  width:100%;
3305
3305
  }
3306
- .bp_breadcrumb_module_container--30dee .bp_breadcrumb_module_breadcrumb--30dee{
3306
+ .bp_breadcrumb_module_container--c0843 .bp_breadcrumb_module_breadcrumb--c0843{
3307
3307
  align-items:center;
3308
3308
  display:flex;
3309
3309
  flex-wrap:nowrap;
@@ -3313,7 +3313,7 @@
3313
3313
  margin:0;
3314
3314
  padding:0;
3315
3315
  }
3316
- .bp_breadcrumb_module_container--30dee .bp_breadcrumb_module_pageLink--30dee{
3316
+ .bp_breadcrumb_module_container--c0843 .bp_breadcrumb_module_pageLink--c0843{
3317
3317
  align-items:center;
3318
3318
  display:flex;
3319
3319
  flex-shrink:0;
@@ -3322,16 +3322,19 @@
3322
3322
  overflow:hidden;
3323
3323
  white-space:nowrap;
3324
3324
  }
3325
- .bp_breadcrumb_module_container--30dee .bp_breadcrumb_module_pageLink--30dee:last-child{
3325
+ .bp_breadcrumb_module_container--c0843 .bp_breadcrumb_module_pageLink--c0843:last-child{
3326
3326
  flex-shrink:1;
3327
3327
  }
3328
-
3329
- .bp_breadcrumb_module_linkWithHover--30dee{
3330
- cursor:pointer;
3328
+ .bp_breadcrumb_module_container--c0843 .bp_breadcrumb_module_breadcrumbSlashSeparator--c0843{
3329
+ align-items:center;
3331
3330
  display:inline-flex;
3331
+ flex-shrink:0;
3332
+ }
3333
+
3334
+ .bp_breadcrumb_module_crumbButton--c0843{
3332
3335
  position:relative;
3333
3336
  }
3334
- .bp_breadcrumb_module_linkWithHover--30dee::after{
3337
+ .bp_breadcrumb_module_crumbButton--c0843::after{
3335
3338
  background-color:var(--bp-text-text-on-light-secondary);
3336
3339
  bottom:0;
3337
3340
  content:"";
@@ -3343,75 +3346,135 @@
3343
3346
  transition:transform var(--animation-duration-2) var(--animation-easing-ease-base);
3344
3347
  width:100%;
3345
3348
  }
3346
- .bp_breadcrumb_module_linkWithHover--30dee:hover::after{
3349
+ .bp_breadcrumb_module_crumbButton--c0843:hover::after{
3347
3350
  transform:scaleX(1);
3348
3351
  }
3349
3352
 
3350
- .bp_breadcrumb_module_dropdownContent--30dee{
3353
+ .bp_breadcrumb_module_dropdownContent--c0843{
3351
3354
  --blueprint-web-dropdown-menu-max-height:calc(var(--bp-size-300)*2);
3352
3355
  }
3353
- .bp_link_module_link--27104{
3354
- color:var(--text-cta-link);
3356
+
3357
+ .bp_text_button_module_textButton--997ae[data-modern=false]{
3358
+ --text-button-text-color:var(--text-cta-link);
3359
+ --text-button-radius:calc(var(--radius-1)/2);
3360
+ --text-button-padding:0;
3361
+ --text-button-scale-loader-width:var(--size-05);
3362
+ --text-button-scale-loader-height:0.625em;
3363
+ --text-button-scale-loader-border-radius:var(--radius-2);
3364
+ --text-button-text-color-hover:var(--text-cta-link-hover);
3365
+ --text-button-focus-box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
3366
+ --text-button-text-color-active:var(--text-cta-link-pressed);
3367
+ font-family:var(--body-default-bold-font-family);
3368
+ font-size:var(--body-default-bold-font-size);
3369
+ font-weight:var(--body-default-bold-font-weight);
3370
+ letter-spacing:var(--body-default-bold-letter-spacing);
3371
+ line-height:var(--body-default-bold-line-height);
3372
+ text-decoration:var(--body-default-bold-text-decoration);
3373
+ text-transform:var(--body-default-bold-text-case);
3355
3374
  }
3356
- .bp_link_module_link--27104:hover{
3357
- color:var(--text-cta-link-hover);
3375
+ .bp_text_button_module_textButton--997ae[data-modern=false].bp_text_button_module_isFontInherited--997ae{
3376
+ --text-button-radius-font-inherited:0.125em;
3377
+ --text-button-outline:var(--outline-focus-on-light);
3358
3378
  }
3359
- .bp_link_module_link--27104:active{
3360
- color:var(--text-cta-link-pressed);
3379
+ .bp_text_button_module_textButton--997ae[data-modern=false].bp_text_button_module_isIconButton--997ae{
3380
+ --text-button-gap:var(--space-1);
3361
3381
  }
3362
- .bp_link_module_link--27104:focus-visible:focus-visible{
3363
- box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
3364
- outline:none;
3365
- overflow:visible;
3382
+
3383
+ .bp_text_button_module_textButton--997ae[data-modern=true]{
3384
+ --text-button-text-color:var(--bp-text-cta-link);
3385
+ --text-button-radius:var(--bp-radius-04);
3386
+ --text-button-padding:0 var(--bp-space-010);
3387
+ --text-button-scale-loader-width:var(--bp-size-005);
3388
+ --text-button-scale-loader-height:0.625em;
3389
+ --text-button-scale-loader-border-radius:var(--bp-radius-03);
3390
+ --text-button-text-color-hover:var(--bp-text-cta-link-hover);
3391
+ --text-button-focus-box-shadow:0 0 0 var(--bp-border-02) var(--bp-outline-focus-on-light);
3392
+ --text-button-text-color-active:var(--bp-text-cta-link-pressed);
3393
+ font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
3394
+ font-size:var(--bp-font-size-05);
3395
+ font-style:normal;
3396
+ font-weight:var(--bp-font-weight-bold);
3397
+ letter-spacing:var(--bp-font-letter-spacing-01);
3398
+ line-height:var(--bp-font-line-height-04);
3366
3399
  }
3367
- .bp_link_module_link--27104:focus-visible{
3368
- border-radius:var(--radius-05);
3369
- color:var(--text-cta-link-hover);
3400
+ .bp_text_button_module_textButton--997ae[data-modern=true].bp_text_button_module_isFontInherited--997ae{
3401
+ --text-button-radius-font-inherited:0.375em;
3402
+ --text-button-outline:var(--bp-outline-focus-on-light);
3370
3403
  }
3371
- .bp_link_module_link--27104:focus-visible:active{
3372
- color:var(--text-cta-link-pressed);
3404
+ .bp_text_button_module_textButton--997ae[data-modern=true].bp_text_button_module_isIconButton--997ae{
3405
+ --text-button-gap:var(--bp-space-010);
3373
3406
  }
3374
- .bp_link_module_link--27104.bp_link_module_inheritFont--27104{
3407
+
3408
+ .bp_text_button_module_textButton--997ae{
3409
+ align-items:center;
3410
+ background:#0000;
3411
+ border:none;
3412
+ border-radius:var(--text-button-radius);
3413
+ color:var(--text-button-text-color);
3414
+ cursor:pointer;
3415
+ display:inline-flex;
3416
+ outline:0;
3417
+ padding:var(--text-button-padding);
3418
+ -webkit-user-select:text;
3419
+ user-select:text;
3420
+ }
3421
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_isFontInherited--997ae{
3422
+ border-radius:var(--text-button-radius-font-inherited);
3375
3423
  font:inherit;
3376
3424
  }
3377
- .bp_link_module_link--27104.bp_link_module_standalone--27104{
3378
- text-decoration:none;
3425
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_isFontInherited--997ae.bp_text_button_module_isIconButton--997ae{
3426
+ gap:.25em;
3379
3427
  }
3380
- .bp_link_module_link--27104.bp_link_module_hasIcon--27104{
3428
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_isFontInherited--997ae:not(:disabled)[data-focus-visible]{
3429
+ box-shadow:0 0 0 .125em var(--text-button-outline);
3430
+ }
3431
+ .bp_text_button_module_textButton--997ae .bp_text_button_module_scaleLoader--997ae div{
3432
+ border-radius:var(--text-button-scale-loader-border-radius);
3433
+ height:var(--text-button-scale-loader-height);
3434
+ width:var(--text-button-scale-loader-width);
3435
+ }
3436
+ .bp_text_button_module_textButton--997ae .bp_text_button_module_icon--997ae{
3381
3437
  align-items:center;
3382
- display:inline-flex;
3383
- gap:var(--space-1);
3438
+ display:flex;
3384
3439
  }
3385
- .bp_link_module_link--27104 .bp_link_module_icon--27104{
3386
- flex-shrink:0;
3440
+ .bp_text_button_module_textButton--997ae .bp_text_button_module_hideTextContent--997ae{
3441
+ visibility:hidden;
3387
3442
  }
3388
- .bp_link_module_link--27104 .bp_link_module_icon--27104 *{
3389
- fill:currentcolor;
3443
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_isEllipsized--997ae{
3444
+ max-width:100%;
3390
3445
  }
3391
-
3392
- .bp_link_module_link--27104:where([data-modern=false]){
3393
- font-family:var(--link-default-font-family);
3394
- font-size:var(--link-default-font-size);
3395
- font-weight:var(--link-default-font-weight);
3396
- letter-spacing:var(--link-default-letter-spacing);
3397
- line-height:var(--link-default-line-height);
3398
- text-decoration:var(--link-default-text-decoration);
3399
- text-transform:var(--link-default-text-case);
3446
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_isEllipsized--997ae .bp_text_button_module_text--997ae{
3447
+ display:block;
3448
+ min-width:0;
3449
+ overflow:hidden;
3450
+ text-overflow:ellipsis;
3451
+ white-space:nowrap;
3452
+ }
3453
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_isIconButton--997ae{
3454
+ gap:var(--text-button-gap);
3455
+ }
3456
+ .bp_text_button_module_textButton--997ae.bp_text_button_module_visuallyHidden--997ae{
3457
+ color:#0000;
3458
+ pointer-events:none;
3459
+ position:relative;
3460
+ }
3461
+ .bp_text_button_module_textButton--997ae:disabled{
3462
+ opacity:.3;
3463
+ }
3464
+ .bp_text_button_module_textButton--997ae:not(:disabled):hover,.bp_text_button_module_textButton--997ae:not(:disabled)[data-focus-visible]{
3465
+ color:var(--text-button-text-color-hover);
3466
+ }
3467
+ .bp_text_button_module_textButton--997ae:not(:disabled)[data-focus-visible]{
3468
+ box-shadow:var(--text-button-focus-box-shadow);
3469
+ }
3470
+ .bp_text_button_module_textButton--997ae:not(:disabled):active{
3471
+ color:var(--text-button-text-color-active);
3400
3472
  }
3401
3473
 
3402
- .bp_link_module_link--27104:where([data-modern=true]){
3403
- font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
3404
- font-size:var(--bp-font-size-05);
3405
- font-style:normal;
3406
- font-weight:var(--bp-font-weight-regular);
3407
- letter-spacing:var(--bp-font-letter-spacing-01);
3408
- line-height:var(--bp-font-line-height-04);
3409
- text-decoration-line:underline;
3410
- -webkit-text-decoration-skip-ink:none;
3411
- text-decoration-skip-ink:none;
3412
- text-decoration-style:solid;
3413
- text-decoration-thickness:auto;
3414
- text-underline-offset:auto;
3474
+ .bp_text_button_module_textButton--997ae[data-bp-animated=true]{
3475
+ transition-duration:var(--bp-duration-short);
3476
+ transition-property:color;
3477
+ transition-timing-function:var(--bp-curve-small-on);
3415
3478
  }
3416
3479
  .bp_button_wrapper_module_buttonWrapper--b0897{
3417
3480
  all:unset;
@@ -6782,6 +6845,69 @@
6782
6845
  .bp_empty_state_module_emptyState--2f813.bp_empty_state_module_small--2f813 .bp_empty_state_module_body--2f813:not(:last-child){
6783
6846
  margin-block-end:var(--space-4);
6784
6847
  }
6848
+ .bp_link_module_link--27104{
6849
+ color:var(--text-cta-link);
6850
+ }
6851
+ .bp_link_module_link--27104:hover{
6852
+ color:var(--text-cta-link-hover);
6853
+ }
6854
+ .bp_link_module_link--27104:active{
6855
+ color:var(--text-cta-link-pressed);
6856
+ }
6857
+ .bp_link_module_link--27104:focus-visible:focus-visible{
6858
+ box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
6859
+ outline:none;
6860
+ overflow:visible;
6861
+ }
6862
+ .bp_link_module_link--27104:focus-visible{
6863
+ border-radius:var(--radius-05);
6864
+ color:var(--text-cta-link-hover);
6865
+ }
6866
+ .bp_link_module_link--27104:focus-visible:active{
6867
+ color:var(--text-cta-link-pressed);
6868
+ }
6869
+ .bp_link_module_link--27104.bp_link_module_inheritFont--27104{
6870
+ font:inherit;
6871
+ }
6872
+ .bp_link_module_link--27104.bp_link_module_standalone--27104{
6873
+ text-decoration:none;
6874
+ }
6875
+ .bp_link_module_link--27104.bp_link_module_hasIcon--27104{
6876
+ align-items:center;
6877
+ display:inline-flex;
6878
+ gap:var(--space-1);
6879
+ }
6880
+ .bp_link_module_link--27104 .bp_link_module_icon--27104{
6881
+ flex-shrink:0;
6882
+ }
6883
+ .bp_link_module_link--27104 .bp_link_module_icon--27104 *{
6884
+ fill:currentcolor;
6885
+ }
6886
+
6887
+ .bp_link_module_link--27104:where([data-modern=false]){
6888
+ font-family:var(--link-default-font-family);
6889
+ font-size:var(--link-default-font-size);
6890
+ font-weight:var(--link-default-font-weight);
6891
+ letter-spacing:var(--link-default-letter-spacing);
6892
+ line-height:var(--link-default-line-height);
6893
+ text-decoration:var(--link-default-text-decoration);
6894
+ text-transform:var(--link-default-text-case);
6895
+ }
6896
+
6897
+ .bp_link_module_link--27104:where([data-modern=true]){
6898
+ font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
6899
+ font-size:var(--bp-font-size-05);
6900
+ font-style:normal;
6901
+ font-weight:var(--bp-font-weight-regular);
6902
+ letter-spacing:var(--bp-font-letter-spacing-01);
6903
+ line-height:var(--bp-font-line-height-04);
6904
+ text-decoration-line:underline;
6905
+ -webkit-text-decoration-skip-ink:none;
6906
+ text-decoration-skip-ink:none;
6907
+ text-decoration-style:solid;
6908
+ text-decoration-thickness:auto;
6909
+ text-underline-offset:auto;
6910
+ }
6785
6911
  .bp_base_grid_list_item_module_smallList--88380[data-modern=false]{
6786
6912
  --small-list-gap:var(--space-2);
6787
6913
  --small-list-padding:var(--space-1);
@@ -12561,129 +12687,6 @@ div[data-radix-popper-content-wrapper]:has([role=menu]):has([data-state=open]):h
12561
12687
  background-color:var(--switch-bg-on-hover);
12562
12688
  }
12563
12689
 
12564
- .bp_text_button_module_textButton--997ae[data-modern=false]{
12565
- --text-button-text-color:var(--text-cta-link);
12566
- --text-button-radius:calc(var(--radius-1)/2);
12567
- --text-button-padding:0;
12568
- --text-button-scale-loader-width:var(--size-05);
12569
- --text-button-scale-loader-height:0.625em;
12570
- --text-button-scale-loader-border-radius:var(--radius-2);
12571
- --text-button-text-color-hover:var(--text-cta-link-hover);
12572
- --text-button-focus-box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
12573
- --text-button-text-color-active:var(--text-cta-link-pressed);
12574
- font-family:var(--body-default-bold-font-family);
12575
- font-size:var(--body-default-bold-font-size);
12576
- font-weight:var(--body-default-bold-font-weight);
12577
- letter-spacing:var(--body-default-bold-letter-spacing);
12578
- line-height:var(--body-default-bold-line-height);
12579
- text-decoration:var(--body-default-bold-text-decoration);
12580
- text-transform:var(--body-default-bold-text-case);
12581
- }
12582
- .bp_text_button_module_textButton--997ae[data-modern=false].bp_text_button_module_isFontInherited--997ae{
12583
- --text-button-radius-font-inherited:0.125em;
12584
- --text-button-outline:var(--outline-focus-on-light);
12585
- }
12586
- .bp_text_button_module_textButton--997ae[data-modern=false].bp_text_button_module_isIconButton--997ae{
12587
- --text-button-gap:var(--space-1);
12588
- }
12589
-
12590
- .bp_text_button_module_textButton--997ae[data-modern=true]{
12591
- --text-button-text-color:var(--bp-text-cta-link);
12592
- --text-button-radius:var(--bp-radius-04);
12593
- --text-button-padding:0 var(--bp-space-010);
12594
- --text-button-scale-loader-width:var(--bp-size-005);
12595
- --text-button-scale-loader-height:0.625em;
12596
- --text-button-scale-loader-border-radius:var(--bp-radius-03);
12597
- --text-button-text-color-hover:var(--bp-text-cta-link-hover);
12598
- --text-button-focus-box-shadow:0 0 0 var(--bp-border-02) var(--bp-outline-focus-on-light);
12599
- --text-button-text-color-active:var(--bp-text-cta-link-pressed);
12600
- font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
12601
- font-size:var(--bp-font-size-05);
12602
- font-style:normal;
12603
- font-weight:var(--bp-font-weight-bold);
12604
- letter-spacing:var(--bp-font-letter-spacing-01);
12605
- line-height:var(--bp-font-line-height-04);
12606
- }
12607
- .bp_text_button_module_textButton--997ae[data-modern=true].bp_text_button_module_isFontInherited--997ae{
12608
- --text-button-radius-font-inherited:0.375em;
12609
- --text-button-outline:var(--bp-outline-focus-on-light);
12610
- }
12611
- .bp_text_button_module_textButton--997ae[data-modern=true].bp_text_button_module_isIconButton--997ae{
12612
- --text-button-gap:var(--bp-space-010);
12613
- }
12614
-
12615
- .bp_text_button_module_textButton--997ae{
12616
- align-items:center;
12617
- background:#0000;
12618
- border:none;
12619
- border-radius:var(--text-button-radius);
12620
- color:var(--text-button-text-color);
12621
- cursor:pointer;
12622
- display:inline-flex;
12623
- outline:0;
12624
- padding:var(--text-button-padding);
12625
- -webkit-user-select:text;
12626
- user-select:text;
12627
- }
12628
- .bp_text_button_module_textButton--997ae.bp_text_button_module_isFontInherited--997ae{
12629
- border-radius:var(--text-button-radius-font-inherited);
12630
- font:inherit;
12631
- }
12632
- .bp_text_button_module_textButton--997ae.bp_text_button_module_isFontInherited--997ae.bp_text_button_module_isIconButton--997ae{
12633
- gap:.25em;
12634
- }
12635
- .bp_text_button_module_textButton--997ae.bp_text_button_module_isFontInherited--997ae:not(:disabled)[data-focus-visible]{
12636
- box-shadow:0 0 0 .125em var(--text-button-outline);
12637
- }
12638
- .bp_text_button_module_textButton--997ae .bp_text_button_module_scaleLoader--997ae div{
12639
- border-radius:var(--text-button-scale-loader-border-radius);
12640
- height:var(--text-button-scale-loader-height);
12641
- width:var(--text-button-scale-loader-width);
12642
- }
12643
- .bp_text_button_module_textButton--997ae .bp_text_button_module_icon--997ae{
12644
- align-items:center;
12645
- display:flex;
12646
- }
12647
- .bp_text_button_module_textButton--997ae .bp_text_button_module_hideTextContent--997ae{
12648
- visibility:hidden;
12649
- }
12650
- .bp_text_button_module_textButton--997ae.bp_text_button_module_isEllipsized--997ae{
12651
- max-width:100%;
12652
- }
12653
- .bp_text_button_module_textButton--997ae.bp_text_button_module_isEllipsized--997ae .bp_text_button_module_text--997ae{
12654
- display:block;
12655
- min-width:0;
12656
- overflow:hidden;
12657
- text-overflow:ellipsis;
12658
- white-space:nowrap;
12659
- }
12660
- .bp_text_button_module_textButton--997ae.bp_text_button_module_isIconButton--997ae{
12661
- gap:var(--text-button-gap);
12662
- }
12663
- .bp_text_button_module_textButton--997ae.bp_text_button_module_visuallyHidden--997ae{
12664
- color:#0000;
12665
- pointer-events:none;
12666
- position:relative;
12667
- }
12668
- .bp_text_button_module_textButton--997ae:disabled{
12669
- opacity:.3;
12670
- }
12671
- .bp_text_button_module_textButton--997ae:not(:disabled):hover,.bp_text_button_module_textButton--997ae:not(:disabled)[data-focus-visible]{
12672
- color:var(--text-button-text-color-hover);
12673
- }
12674
- .bp_text_button_module_textButton--997ae:not(:disabled)[data-focus-visible]{
12675
- box-shadow:var(--text-button-focus-box-shadow);
12676
- }
12677
- .bp_text_button_module_textButton--997ae:not(:disabled):active{
12678
- color:var(--text-button-text-color-active);
12679
- }
12680
-
12681
- .bp_text_button_module_textButton--997ae[data-bp-animated=true]{
12682
- transition-duration:var(--bp-duration-short);
12683
- transition-property:color;
12684
- transition-timing-function:var(--bp-curve-small-on);
12685
- }
12686
-
12687
12690
  .bp_text_input_module_textInput--ede11.bp_text_input_module_textInput--ede11.bp_text_input_module_textInput--ede11 input:has(+ .bp_text_input_module_iconEnd--ede11){
12688
12691
  padding-inline-end:1.875rem;
12689
12692
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "14.24.2",
3
+ "version": "14.25.1",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@ariakit/react": "0.4.21",
49
49
  "@ariakit/react-core": "0.4.21",
50
- "@box/blueprint-web-assets": "^4.115.13",
50
+ "@box/blueprint-web-assets": "^4.116.1",
51
51
  "@internationalized/date": "^3.12.0",
52
52
  "@radix-ui/react-accordion": "1.1.2",
53
53
  "@radix-ui/react-checkbox": "1.0.4",
@@ -77,7 +77,7 @@
77
77
  "type-fest": "^3.2.0"
78
78
  },
79
79
  "devDependencies": {
80
- "@box/storybook-utils": "^0.18.13",
80
+ "@box/storybook-utils": "^0.18.15",
81
81
  "@figma/code-connect": "1.4.4",
82
82
  "@types/react": "^18.0.0",
83
83
  "@types/react-dom": "^18.0.0",