@box/blueprint-web 13.6.1 → 13.7.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.
@@ -5,8 +5,9 @@ export interface AccordionItemHeaderProps {
5
5
  iconVariant?: 'alert-error' | 'status-pending' | 'status-modified';
6
6
  iconAriaLabel?: string;
7
7
  error?: string;
8
+ startElement?: ReactNode;
8
9
  }
9
- export declare const AccordionItemHeader: ({ title, status, iconVariant, iconAriaLabel, error }: AccordionItemHeaderProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const AccordionItemHeader: ({ title, status, iconVariant, iconAriaLabel, error, startElement, }: AccordionItemHeaderProps) => import("react/jsx-runtime").JSX.Element;
10
11
  export interface AccordionActionSlotProps {
11
12
  action?: ReactNode;
12
13
  }
@@ -31,7 +31,8 @@ const AccordionItemHeader = ({
31
31
  status,
32
32
  iconVariant,
33
33
  iconAriaLabel,
34
- error
34
+ error,
35
+ startElement
35
36
  }) => {
36
37
  const iconProps = iconVariant ? accordionIconVariantToIconProps[iconVariant] : undefined;
37
38
  const {
@@ -41,8 +42,14 @@ const AccordionItemHeader = ({
41
42
  } = iconProps ?? {};
42
43
  return jsxs("h4", {
43
44
  className: styles.accordionHeader,
44
- children: [jsx("span", {
45
- children: title
45
+ children: [jsxs("span", {
46
+ className: styles.accordionTitleGroup,
47
+ children: [startElement && jsx("span", {
48
+ className: styles.accordionStartElement,
49
+ children: startElement
50
+ }), jsx("span", {
51
+ children: title
52
+ })]
46
53
  }), isDefined(status) && jsx("span", {
47
54
  className: styles.accordionHeaderInfoSlot,
48
55
  children: jsx(Status, {
@@ -76,6 +76,7 @@ const Item = props => {
76
76
  iconVariant,
77
77
  iconAriaLabel,
78
78
  title,
79
+ startElement,
79
80
  disabled,
80
81
  error,
81
82
  errorIconAriaLabel,
@@ -113,7 +114,8 @@ const Item = props => {
113
114
  iconAriaLabel: iconAriaLabel,
114
115
  iconVariant: iconVariant,
115
116
  status: status,
116
- title: title
117
+ title: title,
118
+ startElement: startElement
117
119
  })
118
120
  }), jsx(AccordionActionSlot, {
119
121
  action: action
@@ -1,4 +1,4 @@
1
1
  import '../index.css';
2
- var styles = {"accordionItem":"bp_accordion_module_accordionItem--0d368","accordionContent":"bp_accordion_module_accordionContent--0d368","accordion":"bp_accordion_module_accordion--0d368","accordionContentWrapper":"bp_accordion_module_accordionContentWrapper--0d368","accordionInlineErrorWrapper":"bp_accordion_module_accordionInlineErrorWrapper--0d368","accordionFixedContent":"bp_accordion_module_accordionFixedContent--0d368","accordionHeader":"bp_accordion_module_accordionHeader--0d368","accordionHeaderInfoSlot":"bp_accordion_module_accordionHeaderInfoSlot--0d368","accordionSlot":"bp_accordion_module_accordionSlot--0d368","accordionChevronWrapper":"bp_accordion_module_accordionChevronWrapper--0d368","accordionTriggerIcon":"bp_accordion_module_accordionTriggerIcon--0d368","accordionIconWrapper":"bp_accordion_module_accordionIconWrapper--0d368","bgOnly":"bp_accordion_module_bgOnly--0d368","withIcon":"bp_accordion_module_withIcon--0d368","accordionTrigger":"bp_accordion_module_accordionTrigger--0d368","disabled":"bp_accordion_module_disabled--0d368","accordionHeaderContainer":"bp_accordion_module_accordionHeaderContainer--0d368"};
2
+ var styles = {"accordionItem":"bp_accordion_module_accordionItem--a6392","accordionContent":"bp_accordion_module_accordionContent--a6392","accordion":"bp_accordion_module_accordion--a6392","accordionContentWrapper":"bp_accordion_module_accordionContentWrapper--a6392","accordionInlineErrorWrapper":"bp_accordion_module_accordionInlineErrorWrapper--a6392","accordionFixedContent":"bp_accordion_module_accordionFixedContent--a6392","accordionHeader":"bp_accordion_module_accordionHeader--a6392","accordionTitleGroup":"bp_accordion_module_accordionTitleGroup--a6392","accordionStartElement":"bp_accordion_module_accordionStartElement--a6392","accordionHeaderInfoSlot":"bp_accordion_module_accordionHeaderInfoSlot--a6392","accordionSlot":"bp_accordion_module_accordionSlot--a6392","accordionChevronWrapper":"bp_accordion_module_accordionChevronWrapper--a6392","accordionTriggerIcon":"bp_accordion_module_accordionTriggerIcon--a6392","accordionIconWrapper":"bp_accordion_module_accordionIconWrapper--a6392","bgOnly":"bp_accordion_module_bgOnly--a6392","withIcon":"bp_accordion_module_withIcon--a6392","accordionTrigger":"bp_accordion_module_accordionTrigger--a6392","disabled":"bp_accordion_module_disabled--a6392","accordionHeaderContainer":"bp_accordion_module_accordionHeaderContainer--a6392"};
3
3
 
4
4
  export { styles as default };
@@ -64,6 +64,10 @@ export type AccordionSectionItem = AccordionBaseItem & Omit<RadixAccordionItemPr
64
64
  * Disabled state of the section.
65
65
  */
66
66
  disabled?: boolean;
67
+ /**
68
+ * Element displayed to the left of the title.
69
+ */
70
+ startElement?: React.ReactNode;
67
71
  } & HeaderSlotProps;
68
72
  export type AccordionItem = AccordionSectionItem | AccordionFixedItem;
69
73
  export type AccordionItemProps = AccordionItem & React.ComponentPropsWithRef<'div'>;
@@ -1458,7 +1458,7 @@
1458
1458
  background-color:var(--status-interactive-background-green-focus);
1459
1459
  }
1460
1460
 
1461
- .bp_accordion_module_accordionItem--0d368[data-modern=false]{
1461
+ .bp_accordion_module_accordionItem--a6392[data-modern=false]{
1462
1462
  --accordion-min-width:320px;
1463
1463
  --accordion-item-radius:none;
1464
1464
  --accordion-item-radius-expanded:none;
@@ -1497,7 +1497,7 @@
1497
1497
  --accordion-item-header-min-height:unset;
1498
1498
  }
1499
1499
 
1500
- .bp_accordion_module_accordionItem--0d368[data-modern=true]{
1500
+ .bp_accordion_module_accordionItem--a6392[data-modern=true]{
1501
1501
  --accordion-min-width:320px;
1502
1502
  --accordion-item-radius:var(--bp-radius-08);
1503
1503
  --accordion-item-radius-expanded:var(--bp-radius-10);
@@ -1536,19 +1536,19 @@
1536
1536
  --accordion-item-header-min-height:var(--bp-size-080);
1537
1537
  }
1538
1538
 
1539
- .bp_accordion_module_accordionContent--0d368[data-state=open]{
1540
- animation:bp_accordion_module_slideDown--0d368 .15s ease-out;
1539
+ .bp_accordion_module_accordionContent--a6392[data-state=open]{
1540
+ animation:bp_accordion_module_slideDown--a6392 .15s ease-out;
1541
1541
  }
1542
1542
 
1543
- .bp_accordion_module_accordionContent--0d368[data-state=closed]{
1544
- animation:bp_accordion_module_slideUp--0d368 .15s ease-out;
1543
+ .bp_accordion_module_accordionContent--a6392[data-state=closed]{
1544
+ animation:bp_accordion_module_slideUp--a6392 .15s ease-out;
1545
1545
  }
1546
1546
 
1547
- .bp_accordion_module_accordionContent--0d368{
1547
+ .bp_accordion_module_accordionContent--a6392{
1548
1548
  overflow:hidden;
1549
1549
  }
1550
1550
 
1551
- @keyframes bp_accordion_module_slideDown--0d368{
1551
+ @keyframes bp_accordion_module_slideDown--a6392{
1552
1552
  from{
1553
1553
  height:0;
1554
1554
  }
@@ -1556,7 +1556,7 @@
1556
1556
  height:var(--radix-accordion-content-height);
1557
1557
  }
1558
1558
  }
1559
- @keyframes bp_accordion_module_slideUp--0d368{
1559
+ @keyframes bp_accordion_module_slideUp--a6392{
1560
1560
  from{
1561
1561
  height:var(--radix-accordion-content-height);
1562
1562
  }
@@ -1564,14 +1564,14 @@
1564
1564
  height:0;
1565
1565
  }
1566
1566
  }
1567
- .bp_accordion_module_accordion--0d368{
1567
+ .bp_accordion_module_accordion--a6392{
1568
1568
  display:flex;
1569
1569
  flex-direction:column;
1570
1570
  gap:var(--bp-space-030);
1571
1571
  padding:var(--bp-space-030);
1572
1572
  }
1573
1573
 
1574
- .bp_accordion_module_accordionContentWrapper--0d368{
1574
+ .bp_accordion_module_accordionContentWrapper--a6392{
1575
1575
  display:flex;
1576
1576
  flex-direction:column;
1577
1577
  gap:var(--accordion-content-gap);
@@ -1580,26 +1580,26 @@
1580
1580
  padding-inline:var(--accordion-content-padding-inline);
1581
1581
  }
1582
1582
 
1583
- .bp_accordion_module_accordionInlineErrorWrapper--0d368{
1583
+ .bp_accordion_module_accordionInlineErrorWrapper--a6392{
1584
1584
  padding-block-start:var(--accordion-error-padding-block-start);
1585
1585
  padding-inline:var(--accordion-error-padding-inline);
1586
1586
  }
1587
1587
 
1588
- .bp_accordion_module_accordionItem--0d368{
1588
+ .bp_accordion_module_accordionItem--a6392{
1589
1589
  -webkit-tap-highlight-color:transparent;
1590
1590
  background:none;
1591
1591
  border-bottom:var(--accordion-item-border);
1592
1592
  border-radius:var(--accordion-item-radius);
1593
1593
  min-width:var(--accordion-min-width);
1594
1594
  }
1595
- .bp_accordion_module_accordionItem--0d368[data-state=open]{
1595
+ .bp_accordion_module_accordionItem--a6392[data-state=open]{
1596
1596
  background-color:var(--accordion-item-background-expanded);
1597
1597
  border:var(--accordion-item-border-expanded);
1598
1598
  border-bottom:var(--accordion-item-border-bottom-expanded);
1599
1599
  border-radius:var(--accordion-item-radius-expanded);
1600
1600
  }
1601
1601
 
1602
- .bp_accordion_module_accordionFixedContent--0d368{
1602
+ .bp_accordion_module_accordionFixedContent--a6392{
1603
1603
  background-color:var(--accordion-item-background-collapsed);
1604
1604
  border:var(--accordion-trigger-border);
1605
1605
  border-radius:var(--accordion-item-radius);
@@ -1610,7 +1610,7 @@
1610
1610
  padding-inline:var(--accordion-fixed-content-padding-inline);
1611
1611
  }
1612
1612
 
1613
- .bp_accordion_module_accordionHeader--0d368{
1613
+ .bp_accordion_module_accordionHeader--a6392{
1614
1614
  align-items:center;
1615
1615
  display:flex;
1616
1616
  justify-content:space-between;
@@ -1620,13 +1620,26 @@
1620
1620
  width:100%;
1621
1621
  }
1622
1622
 
1623
- .bp_accordion_module_accordionHeaderInfoSlot--0d368{
1623
+ .bp_accordion_module_accordionTitleGroup--a6392{
1624
+ align-items:center;
1625
+ display:flex;
1626
+ gap:var(--bp-space-020, .5rem);
1627
+ min-width:0;
1628
+ }
1629
+
1630
+ .bp_accordion_module_accordionStartElement--a6392{
1631
+ align-items:center;
1632
+ display:flex;
1633
+ flex-shrink:0;
1634
+ }
1635
+
1636
+ .bp_accordion_module_accordionHeaderInfoSlot--a6392{
1624
1637
  align-items:center;
1625
1638
  display:flex;
1626
1639
  margin-inline-start:var(--accordion-chevron-margin-inline-start);
1627
1640
  }
1628
1641
 
1629
- .bp_accordion_module_accordionItem--0d368[data-modern=false] .bp_accordion_module_accordionHeader--0d368{
1642
+ .bp_accordion_module_accordionItem--a6392[data-modern=false] .bp_accordion_module_accordionHeader--a6392{
1630
1643
  color:var(--accordion-header-text-color);
1631
1644
  font-family:var(--title-small-font-family);
1632
1645
  font-size:var(--title-small-font-size);
@@ -1637,7 +1650,7 @@
1637
1650
  text-transform:var(--title-small-text-case);
1638
1651
  }
1639
1652
 
1640
- .bp_accordion_module_accordionItem--0d368[data-modern=true] .bp_accordion_module_accordionHeader--0d368{
1653
+ .bp_accordion_module_accordionItem--a6392[data-modern=true] .bp_accordion_module_accordionHeader--a6392{
1641
1654
  color:var(--accordion-header-text-color);
1642
1655
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
1643
1656
  font-size:var(--bp-font-size-06);
@@ -1647,31 +1660,31 @@
1647
1660
  line-height:var(--bp-font-line-height-04);
1648
1661
  }
1649
1662
 
1650
- .bp_accordion_module_accordionSlot--0d368{
1663
+ .bp_accordion_module_accordionSlot--a6392{
1651
1664
  align-items:center;
1652
1665
  display:flex;
1653
1666
  }
1654
1667
 
1655
- .bp_accordion_module_accordionChevronWrapper--0d368{
1668
+ .bp_accordion_module_accordionChevronWrapper--a6392{
1656
1669
  align-items:center;
1657
1670
  cursor:pointer;
1658
1671
  display:flex;
1659
1672
  padding-inline-end:var(--space-6);
1660
1673
  }
1661
- .bp_accordion_module_accordionChevronWrapper--0d368 .bp_accordion_module_accordionTriggerIcon--0d368{
1674
+ .bp_accordion_module_accordionChevronWrapper--a6392 .bp_accordion_module_accordionTriggerIcon--a6392{
1662
1675
  flex-shrink:0;
1663
1676
  transform:var(--accordion-trigger-icon-transform-collapsed);
1664
1677
  }
1665
1678
 
1666
- .bp_accordion_module_accordionItem--0d368[data-modern=true] .bp_accordion_module_accordionChevronWrapper--0d368{
1679
+ .bp_accordion_module_accordionItem--a6392[data-modern=true] .bp_accordion_module_accordionChevronWrapper--a6392{
1667
1680
  padding-inline-end:var(--bp-space-040);
1668
1681
  }
1669
1682
 
1670
- .bp_accordion_module_accordionItem--0d368[data-state=open] .bp_accordion_module_accordionChevronWrapper--0d368 .bp_accordion_module_accordionTriggerIcon--0d368{
1683
+ .bp_accordion_module_accordionItem--a6392[data-state=open] .bp_accordion_module_accordionChevronWrapper--a6392 .bp_accordion_module_accordionTriggerIcon--a6392{
1671
1684
  transform:var(--accordion-trigger-icon-transform-expanded);
1672
1685
  }
1673
1686
 
1674
- .bp_accordion_module_accordionIconWrapper--0d368{
1687
+ .bp_accordion_module_accordionIconWrapper--a6392{
1675
1688
  align-items:center;
1676
1689
  border-radius:var(--accordion-icon-radius);
1677
1690
  display:flex;
@@ -1679,16 +1692,16 @@
1679
1692
  justify-content:center;
1680
1693
  width:var(--accordion-icon-size);
1681
1694
  }
1682
- .bp_accordion_module_accordionIconWrapper--0d368.bp_accordion_module_bgOnly--0d368{
1695
+ .bp_accordion_module_accordionIconWrapper--a6392.bp_accordion_module_bgOnly--a6392{
1683
1696
  height:var(--accordion-bg-only-status-size);
1684
1697
  width:var(--accordion-bg-only-status-size);
1685
1698
  }
1686
- .bp_accordion_module_accordionIconWrapper--0d368.bp_accordion_module_withIcon--0d368{
1699
+ .bp_accordion_module_accordionIconWrapper--a6392.bp_accordion_module_withIcon--a6392{
1687
1700
  height:var(--accordion-icon-size);
1688
1701
  width:var(--accordion-icon-size);
1689
1702
  }
1690
1703
 
1691
- .bp_accordion_module_accordionTrigger--0d368{
1704
+ .bp_accordion_module_accordionTrigger--a6392{
1692
1705
  align-items:center;
1693
1706
  background:#0000;
1694
1707
  border:none;
@@ -1699,19 +1712,19 @@
1699
1712
  padding:var(--accordion-trigger-padding);
1700
1713
  width:100%;
1701
1714
  }
1702
- .bp_accordion_module_accordionTrigger--0d368.bp_accordion_module_disabled--0d368,.bp_accordion_module_accordionTrigger--0d368:disabled{
1715
+ .bp_accordion_module_accordionTrigger--a6392.bp_accordion_module_disabled--a6392,.bp_accordion_module_accordionTrigger--a6392:disabled{
1703
1716
  cursor:default;
1704
1717
  opacity:.3;
1705
1718
  pointer-events:none;
1706
1719
  }
1707
- .bp_accordion_module_accordionTrigger--0d368:focus-visible{
1720
+ .bp_accordion_module_accordionTrigger--a6392:focus-visible{
1708
1721
  outline:none;
1709
1722
  }
1710
- .bp_accordion_module_accordionTrigger--0d368:hover:not(:disabled, .bp_accordion_module_disabled--0d368){
1723
+ .bp_accordion_module_accordionTrigger--a6392:hover:not(:disabled, .bp_accordion_module_disabled--a6392){
1711
1724
  cursor:pointer;
1712
1725
  }
1713
1726
 
1714
- .bp_accordion_module_accordionHeaderContainer--0d368{
1727
+ .bp_accordion_module_accordionHeaderContainer--a6392{
1715
1728
  align-items:stretch;
1716
1729
  background-color:var(--accordion-item-background-collapsed);
1717
1730
  border:var(--accordion-trigger-border);
@@ -1720,40 +1733,40 @@
1720
1733
  gap:var(--accordion-chevron-margin-inline-start);
1721
1734
  }
1722
1735
 
1723
- .bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368.bp_accordion_module_disabled--0d368),.bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368:disabled){
1736
+ .bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392.bp_accordion_module_disabled--a6392),.bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392:disabled){
1724
1737
  cursor:default;
1725
1738
  }
1726
- .bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368.bp_accordion_module_disabled--0d368) > .bp_accordion_module_accordionChevronWrapper--0d368,.bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368:disabled) > .bp_accordion_module_accordionChevronWrapper--0d368{
1739
+ .bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392.bp_accordion_module_disabled--a6392) > .bp_accordion_module_accordionChevronWrapper--a6392,.bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392:disabled) > .bp_accordion_module_accordionChevronWrapper--a6392{
1727
1740
  opacity:.3;
1728
1741
  pointer-events:none;
1729
1742
  }
1730
1743
 
1731
- .bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368[data-state=open]){
1744
+ .bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392[data-state=open]){
1732
1745
  background-color:initial;
1733
1746
  border:none;
1734
1747
  border-radius:var(--accordion-item-radius-expanded) var(--accordion-item-radius-expanded) 0 0;
1735
1748
  }
1736
1749
 
1737
- .bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368:focus-visible){
1750
+ .bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392:focus-visible){
1738
1751
  background-color:var(--accordion-trigger-collapsed-background-focus);
1739
1752
  border:var(--accordion-trigger-border-hover);
1740
1753
  box-shadow:var(--accordion-trigger-box-shadow);
1741
1754
  outline:none;
1742
1755
  }
1743
1756
 
1744
- .bp_accordion_module_accordionHeaderContainer--0d368:hover:not(:has(.bp_accordion_module_accordionTrigger--0d368:disabled), :has(.bp_accordion_module_accordionTrigger--0d368.bp_accordion_module_disabled--0d368)){
1757
+ .bp_accordion_module_accordionHeaderContainer--a6392:hover:not(:has(.bp_accordion_module_accordionTrigger--a6392:disabled), :has(.bp_accordion_module_accordionTrigger--a6392.bp_accordion_module_disabled--a6392)){
1745
1758
  background-color:var(--accordion-trigger-collapsed-background-hover);
1746
1759
  border:var(--accordion-trigger-border-hover);
1747
1760
  cursor:pointer;
1748
1761
  }
1749
1762
 
1750
- .bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368[data-state=open]):has(.bp_accordion_module_accordionTrigger--0d368:focus-visible){
1763
+ .bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392[data-state=open]):has(.bp_accordion_module_accordionTrigger--a6392:focus-visible){
1751
1764
  background-color:var(--accordion-trigger-expanded-background-focus);
1752
1765
  border:none;
1753
1766
  }
1754
1767
 
1755
- .bp_accordion_module_accordionHeaderContainer--0d368:has(.bp_accordion_module_accordionTrigger--0d368[data-state=open]):hover:not(:has(.bp_accordion_module_accordionTrigger--0d368:disabled),
1756
- :has(.bp_accordion_module_accordionTrigger--0d368.bp_accordion_module_disabled--0d368)){
1768
+ .bp_accordion_module_accordionHeaderContainer--a6392:has(.bp_accordion_module_accordionTrigger--a6392[data-state=open]):hover:not(:has(.bp_accordion_module_accordionTrigger--a6392:disabled),
1769
+ :has(.bp_accordion_module_accordionTrigger--a6392.bp_accordion_module_disabled--a6392)){
1757
1770
  background-color:initial;
1758
1771
  border:none;
1759
1772
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "13.6.1",
3
+ "version": "13.7.0",
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.15",
49
49
  "@ariakit/react-core": "0.4.15",
50
- "@box/blueprint-web-assets": "^4.104.10",
50
+ "@box/blueprint-web-assets": "^4.104.11",
51
51
  "@internationalized/date": "^3.7.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.16.71",
80
+ "@box/storybook-utils": "^0.16.72",
81
81
  "@figma/code-connect": "1.3.12",
82
82
  "@types/react": "^18.0.0",
83
83
  "@types/react-dom": "^18.0.0",