@charcoal-ui/react 2.4.0 → 2.5.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.
- package/dist/components/DropdownSelector/Divider.d.ts +4 -0
- package/dist/components/DropdownSelector/Divider.d.ts.map +1 -0
- package/dist/components/DropdownSelector/ListBoxSection.d.ts +7 -0
- package/dist/components/DropdownSelector/ListBoxSection.d.ts.map +1 -0
- package/dist/components/DropdownSelector/Listbox.d.ts +1 -1
- package/dist/components/DropdownSelector/Listbox.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Option.d.ts +11 -0
- package/dist/components/DropdownSelector/Option.d.ts.map +1 -0
- package/dist/components/DropdownSelector/index.story.d.ts +1 -1
- package/dist/components/DropdownSelector/index.story.d.ts.map +1 -1
- package/dist/index.cjs.js +171 -127
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +155 -111
- package/dist/index.esm.js.map +1 -1
- package/dist/styled.d.ts +75 -73
- package/dist/styled.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/components/DropdownSelector/Divider.tsx +13 -0
- package/src/components/DropdownSelector/DropdownPopover.tsx +1 -1
- package/src/components/DropdownSelector/ListBoxSection.tsx +60 -0
- package/src/components/DropdownSelector/Listbox.tsx +11 -74
- package/src/components/DropdownSelector/Option.tsx +66 -0
- package/src/components/DropdownSelector/index.story.tsx +9 -14
- package/src/components/TagItem/index.tsx +5 -3
package/dist/index.cjs.js
CHANGED
|
@@ -1508,8 +1508,8 @@ var LoadingSpinnerIcon = import_react15.default.forwardRef(function LoadingSpinn
|
|
|
1508
1508
|
});
|
|
1509
1509
|
|
|
1510
1510
|
// src/components/DropdownSelector/index.tsx
|
|
1511
|
-
var
|
|
1512
|
-
var
|
|
1511
|
+
var import_react20 = __toESM(require("react"));
|
|
1512
|
+
var import_styled_components19 = __toESM(require("styled-components"));
|
|
1513
1513
|
var import_react_stately2 = require("react-stately");
|
|
1514
1514
|
var import_utils9 = require("@charcoal-ui/utils");
|
|
1515
1515
|
var import_visually_hidden2 = require("@react-aria/visually-hidden");
|
|
@@ -1517,63 +1517,29 @@ var import_select = require("@react-aria/select");
|
|
|
1517
1517
|
var import_button = require("@react-aria/button");
|
|
1518
1518
|
|
|
1519
1519
|
// src/components/DropdownSelector/Listbox.tsx
|
|
1520
|
+
var import_react18 = __toESM(require("react"));
|
|
1521
|
+
var import_styled_components17 = __toESM(require("styled-components"));
|
|
1522
|
+
var import_listbox3 = require("@react-aria/listbox");
|
|
1523
|
+
|
|
1524
|
+
// src/components/DropdownSelector/ListBoxSection.tsx
|
|
1525
|
+
var import_listbox2 = require("@react-aria/listbox");
|
|
1526
|
+
var import_separator = require("@react-aria/separator");
|
|
1527
|
+
var import_react17 = __toESM(require("react"));
|
|
1528
|
+
var import_styled_components16 = __toESM(require("styled-components"));
|
|
1529
|
+
|
|
1530
|
+
// src/components/DropdownSelector/Option.tsx
|
|
1520
1531
|
var import_react16 = __toESM(require("react"));
|
|
1521
1532
|
var import_styled_components14 = __toESM(require("styled-components"));
|
|
1522
1533
|
var import_listbox = require("@react-aria/listbox");
|
|
1523
1534
|
var import_utils7 = require("@react-aria/utils");
|
|
1524
1535
|
var import_focus2 = require("@react-aria/focus");
|
|
1525
1536
|
var import_utils8 = require("@charcoal-ui/utils");
|
|
1526
|
-
|
|
1527
|
-
state,
|
|
1528
|
-
mode = "default",
|
|
1529
|
-
...props
|
|
1530
|
-
}) => {
|
|
1531
|
-
const ref = (0, import_react16.useRef)(null);
|
|
1532
|
-
const { listBoxProps } = (0, import_listbox.useListBox)(props, state, ref);
|
|
1533
|
-
const collection = (0, import_react16.useMemo)(
|
|
1534
|
-
() => [...state.collection].map((node, index, self) => ({
|
|
1535
|
-
node,
|
|
1536
|
-
first: index === 0,
|
|
1537
|
-
last: index === self.length - 1
|
|
1538
|
-
})),
|
|
1539
|
-
[state.collection]
|
|
1540
|
-
);
|
|
1541
|
-
return /* @__PURE__ */ import_react16.default.createElement(ListboxRoot, { ref, ...listBoxProps }, collection.map(({ node, last }) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: node.key }, /* @__PURE__ */ import_react16.default.createElement(Option, { item: node, state, mode }), !last && mode === "separator" && /* @__PURE__ */ import_react16.default.createElement(Divider, null))));
|
|
1542
|
-
};
|
|
1543
|
-
var Listbox_default = (0, import_react16.memo)(Listbox);
|
|
1544
|
-
var ListboxRoot = import_styled_components14.default.ul`
|
|
1545
|
-
padding-left: 0;
|
|
1546
|
-
margin: 0;
|
|
1547
|
-
box-sizing: border-box;
|
|
1548
|
-
list-style: none;
|
|
1549
|
-
overflow: auto;
|
|
1550
|
-
max-height: inherit;
|
|
1551
|
-
|
|
1552
|
-
${theme((o) => [
|
|
1553
|
-
o.bg.background1,
|
|
1554
|
-
o.border.default,
|
|
1555
|
-
o.borderRadius(8),
|
|
1556
|
-
o.outline.default.focus
|
|
1557
|
-
])}
|
|
1558
|
-
`;
|
|
1559
|
-
var Divider = import_styled_components14.default.div.attrs({ role: "separator" })`
|
|
1560
|
-
display: flex;
|
|
1561
|
-
${theme((o) => [o.padding.horizontal(8)])}
|
|
1562
|
-
|
|
1563
|
-
&:before {
|
|
1564
|
-
content: '';
|
|
1565
|
-
display: block;
|
|
1566
|
-
width: 100%;
|
|
1567
|
-
height: 1px;
|
|
1568
|
-
background: #00000014;
|
|
1569
|
-
}
|
|
1570
|
-
`;
|
|
1571
|
-
var Option = ({ item, state, mode }) => {
|
|
1537
|
+
function Option({ item, state, mode }) {
|
|
1572
1538
|
const ref = (0, import_react16.useRef)(null);
|
|
1573
1539
|
const { optionProps, isSelected } = (0, import_listbox.useOption)(item, state, ref);
|
|
1574
1540
|
const { focusProps } = (0, import_focus2.useFocusRing)();
|
|
1575
|
-
return /* @__PURE__ */ import_react16.default.createElement(OptionRoot, { ...(0, import_utils7.mergeProps)(optionProps, focusProps), ref, mode },
|
|
1576
|
-
}
|
|
1541
|
+
return /* @__PURE__ */ import_react16.default.createElement(OptionRoot, { ...(0, import_utils7.mergeProps)(optionProps, focusProps), ref, mode }, /* @__PURE__ */ import_react16.default.createElement(OptionCheckIcon, { name: "16/Check", isSelected }), /* @__PURE__ */ import_react16.default.createElement(OptionText, null, item.rendered));
|
|
1542
|
+
}
|
|
1577
1543
|
var OptionRoot = import_styled_components14.default.li`
|
|
1578
1544
|
display: flex;
|
|
1579
1545
|
align-items: center;
|
|
@@ -1592,28 +1558,106 @@ var OptionRoot = import_styled_components14.default.li`
|
|
|
1592
1558
|
}
|
|
1593
1559
|
`;
|
|
1594
1560
|
var OptionCheckIcon = (0, import_styled_components14.default)(Icon_default)`
|
|
1561
|
+
visibility: hidden;
|
|
1595
1562
|
${theme((o) => [o.font.text2])}
|
|
1563
|
+
|
|
1564
|
+
${({ isSelected }) => isSelected && import_styled_components14.css`
|
|
1565
|
+
visibility: visible;
|
|
1566
|
+
`}
|
|
1596
1567
|
`;
|
|
1597
1568
|
var OptionText = import_styled_components14.default.span`
|
|
1598
1569
|
display: block;
|
|
1599
|
-
${
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1570
|
+
${theme((o) => [o.typography(14), o.font.text2])}
|
|
1571
|
+
`;
|
|
1572
|
+
|
|
1573
|
+
// src/components/DropdownSelector/Divider.tsx
|
|
1574
|
+
var import_styled_components15 = __toESM(require("styled-components"));
|
|
1575
|
+
var Divider = import_styled_components15.default.div.attrs({ role: "separator" })`
|
|
1576
|
+
display: flex;
|
|
1577
|
+
|
|
1578
|
+
&:before {
|
|
1579
|
+
content: '';
|
|
1580
|
+
display: block;
|
|
1581
|
+
width: 100%;
|
|
1582
|
+
height: 1px;
|
|
1583
|
+
background: #00000014;
|
|
1584
|
+
}
|
|
1585
|
+
`;
|
|
1586
|
+
|
|
1587
|
+
// src/components/DropdownSelector/ListBoxSection.tsx
|
|
1588
|
+
function ListBoxSection(props) {
|
|
1589
|
+
const { state } = props;
|
|
1590
|
+
const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
|
|
1591
|
+
heading: props.section.rendered,
|
|
1592
|
+
"aria-label": props.section["aria-label"]
|
|
1593
|
+
});
|
|
1594
|
+
const { separatorProps } = (0, import_separator.useSeparator)({
|
|
1595
|
+
elementType: "li"
|
|
1596
|
+
});
|
|
1597
|
+
return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, props.section.key !== props.state.collection.getFirstKey() && /* @__PURE__ */ import_react17.default.createElement(Divider, { ...separatorProps, role: "separator" }), /* @__PURE__ */ import_react17.default.createElement(StyledLi, { ...itemProps }, props.section.rendered != null && /* @__PURE__ */ import_react17.default.createElement(SectionSpan, { ...headingProps }, props.section.rendered), /* @__PURE__ */ import_react17.default.createElement(StyledUl, { ...groupProps }, [...props.section.childNodes].map((node) => /* @__PURE__ */ import_react17.default.createElement(Option, { key: node.key, item: node, state })))));
|
|
1598
|
+
}
|
|
1599
|
+
var SectionSpan = import_styled_components16.default.span`
|
|
1600
|
+
${theme((o) => [
|
|
1601
|
+
o.font.text3,
|
|
1602
|
+
o.typography(12).bold,
|
|
1603
|
+
o.margin.bottom(8).left(16).top(16)
|
|
1604
|
+
])}
|
|
1605
|
+
`;
|
|
1606
|
+
var StyledUl = import_styled_components16.default.ul`
|
|
1607
|
+
padding-left: 0;
|
|
1608
|
+
margin: 0;
|
|
1609
|
+
box-sizing: border-box;
|
|
1610
|
+
list-style: none;
|
|
1611
|
+
overflow: hidden;
|
|
1612
|
+
`;
|
|
1613
|
+
var StyledLi = import_styled_components16.default.li``;
|
|
1614
|
+
|
|
1615
|
+
// src/components/DropdownSelector/Listbox.tsx
|
|
1616
|
+
var Listbox = ({
|
|
1617
|
+
state,
|
|
1618
|
+
mode = "default",
|
|
1619
|
+
...props
|
|
1620
|
+
}) => {
|
|
1621
|
+
const ref = (0, import_react18.useRef)(null);
|
|
1622
|
+
const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, ref);
|
|
1623
|
+
const collection = (0, import_react18.useMemo)(
|
|
1624
|
+
() => [...state.collection].map((node, index, self) => ({
|
|
1625
|
+
node,
|
|
1626
|
+
first: index === 0,
|
|
1627
|
+
last: index === self.length - 1
|
|
1628
|
+
})),
|
|
1629
|
+
[state.collection]
|
|
1630
|
+
);
|
|
1631
|
+
return /* @__PURE__ */ import_react18.default.createElement(ListboxRoot, { ref, ...listBoxProps }, collection.map(({ node, last }) => /* @__PURE__ */ import_react18.default.createElement(import_react18.Fragment, { key: node.key }, node.type === "section" ? /* @__PURE__ */ import_react18.default.createElement(ListBoxSection, { section: node, state }) : /* @__PURE__ */ import_react18.default.createElement(Option, { item: node, state, mode }), !last && mode === "separator" && /* @__PURE__ */ import_react18.default.createElement(Divider, null))));
|
|
1632
|
+
};
|
|
1633
|
+
var Listbox_default = (0, import_react18.memo)(Listbox);
|
|
1634
|
+
var ListboxRoot = import_styled_components17.default.ul`
|
|
1635
|
+
padding-left: 0;
|
|
1636
|
+
margin: 0;
|
|
1637
|
+
box-sizing: border-box;
|
|
1638
|
+
list-style: none;
|
|
1639
|
+
overflow: auto;
|
|
1640
|
+
max-height: inherit;
|
|
1641
|
+
|
|
1642
|
+
${theme((o) => [
|
|
1643
|
+
o.bg.background1,
|
|
1644
|
+
o.border.default,
|
|
1645
|
+
o.borderRadius(8),
|
|
1646
|
+
o.padding.vertical(8),
|
|
1647
|
+
o.outline.default.focus
|
|
1604
1648
|
])}
|
|
1605
1649
|
`;
|
|
1606
1650
|
|
|
1607
1651
|
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
1608
|
-
var
|
|
1652
|
+
var import_react19 = __toESM(require("react"));
|
|
1609
1653
|
var import_overlays3 = require("@react-aria/overlays");
|
|
1610
|
-
var
|
|
1611
|
-
var DropdownPopoverDiv =
|
|
1654
|
+
var import_styled_components18 = __toESM(require("styled-components"));
|
|
1655
|
+
var DropdownPopoverDiv = import_styled_components18.default.div`
|
|
1612
1656
|
width: 100%;
|
|
1613
1657
|
${theme((o) => o.margin.top(4).bottom(4))}
|
|
1614
1658
|
`;
|
|
1615
1659
|
function DropdownPopover({ children, state, ...props }) {
|
|
1616
|
-
const ref = (0,
|
|
1660
|
+
const ref = (0, import_react19.useRef)(null);
|
|
1617
1661
|
const { popoverProps, underlayProps } = (0, import_overlays3.usePopover)(
|
|
1618
1662
|
{
|
|
1619
1663
|
...props,
|
|
@@ -1622,12 +1666,12 @@ function DropdownPopover({ children, state, ...props }) {
|
|
|
1622
1666
|
},
|
|
1623
1667
|
state
|
|
1624
1668
|
);
|
|
1625
|
-
(0,
|
|
1669
|
+
(0, import_react19.useEffect)(() => {
|
|
1626
1670
|
if (ref.current && props.triggerRef.current) {
|
|
1627
1671
|
ref.current.style.width = `${props.triggerRef.current.clientWidth}px`;
|
|
1628
1672
|
}
|
|
1629
1673
|
}, [props.triggerRef]);
|
|
1630
|
-
(0,
|
|
1674
|
+
(0, import_react19.useEffect)(() => {
|
|
1631
1675
|
if (state.isOpen && props.value !== void 0) {
|
|
1632
1676
|
window.requestAnimationFrame(() => {
|
|
1633
1677
|
if (props.value === void 0)
|
|
@@ -1642,7 +1686,7 @@ function DropdownPopover({ children, state, ...props }) {
|
|
|
1642
1686
|
});
|
|
1643
1687
|
}
|
|
1644
1688
|
}, [props.value, state.isOpen]);
|
|
1645
|
-
return /* @__PURE__ */
|
|
1689
|
+
return /* @__PURE__ */ import_react19.default.createElement(import_overlays3.Overlay, { portalContainer: document.body }, /* @__PURE__ */ import_react19.default.createElement("div", { ...underlayProps, style: { position: "fixed", inset: 0 } }), /* @__PURE__ */ import_react19.default.createElement(DropdownPopoverDiv, { ...popoverProps, ref }, /* @__PURE__ */ import_react19.default.createElement(import_overlays3.DismissButton, { onDismiss: () => state.close() }), children, /* @__PURE__ */ import_react19.default.createElement(import_overlays3.DismissButton, { onDismiss: () => state.close() })));
|
|
1646
1690
|
}
|
|
1647
1691
|
|
|
1648
1692
|
// src/components/DropdownSelector/index.tsx
|
|
@@ -1662,8 +1706,8 @@ var DropdownSelector = ({
|
|
|
1662
1706
|
...props
|
|
1663
1707
|
}) => {
|
|
1664
1708
|
const { visuallyHiddenProps } = (0, import_visually_hidden2.useVisuallyHidden)();
|
|
1665
|
-
const triggerRef = (0,
|
|
1666
|
-
const selectProps = (0,
|
|
1709
|
+
const triggerRef = (0, import_react20.useRef)(null);
|
|
1710
|
+
const selectProps = (0, import_react20.useMemo)(
|
|
1667
1711
|
() => ({
|
|
1668
1712
|
...props,
|
|
1669
1713
|
label,
|
|
@@ -1689,7 +1733,7 @@ var DropdownSelector = ({
|
|
|
1689
1733
|
} = (0, import_select.useSelect)(selectProps, state, triggerRef);
|
|
1690
1734
|
const { buttonProps } = (0, import_button.useButton)(triggerProps, triggerRef);
|
|
1691
1735
|
const hasAssertiveText = assertiveText !== void 0 && assertiveText.length > 0;
|
|
1692
|
-
return /* @__PURE__ */
|
|
1736
|
+
return /* @__PURE__ */ import_react20.default.createElement(DropdownSelectorRoot, { "aria-disabled": disabled, className }, /* @__PURE__ */ import_react20.default.createElement(
|
|
1693
1737
|
DropdownFieldLabel,
|
|
1694
1738
|
{
|
|
1695
1739
|
label,
|
|
@@ -1699,7 +1743,7 @@ var DropdownSelector = ({
|
|
|
1699
1743
|
...labelProps,
|
|
1700
1744
|
...!showLabel ? visuallyHiddenProps : {}
|
|
1701
1745
|
}
|
|
1702
|
-
), /* @__PURE__ */
|
|
1746
|
+
), /* @__PURE__ */ import_react20.default.createElement(
|
|
1703
1747
|
import_select.HiddenSelect,
|
|
1704
1748
|
{
|
|
1705
1749
|
state,
|
|
@@ -1709,15 +1753,15 @@ var DropdownSelector = ({
|
|
|
1709
1753
|
isDisabled: disabled,
|
|
1710
1754
|
autoComplete
|
|
1711
1755
|
}
|
|
1712
|
-
), /* @__PURE__ */
|
|
1756
|
+
), /* @__PURE__ */ import_react20.default.createElement(DropdownButtonWrapper, null, /* @__PURE__ */ import_react20.default.createElement(DropdownButton, { ...buttonProps, ref: triggerRef, invalid }, /* @__PURE__ */ import_react20.default.createElement(DropdownButtonText, { ...valueProps }, state.selectedItem ? state.selectedItem.rendered : props.placeholder), /* @__PURE__ */ import_react20.default.createElement(DropdownButtonIcon, { name: "16/Menu" })), state.isOpen && /* @__PURE__ */ import_react20.default.createElement(
|
|
1713
1757
|
DropdownPopover,
|
|
1714
1758
|
{
|
|
1715
1759
|
state,
|
|
1716
1760
|
triggerRef,
|
|
1717
1761
|
value: props.value ?? props.defaultValue
|
|
1718
1762
|
},
|
|
1719
|
-
/* @__PURE__ */
|
|
1720
|
-
)), hasAssertiveText && /* @__PURE__ */
|
|
1763
|
+
/* @__PURE__ */ import_react20.default.createElement(Listbox_default, { ...menuProps, state, mode })
|
|
1764
|
+
)), hasAssertiveText && /* @__PURE__ */ import_react20.default.createElement(
|
|
1721
1765
|
AssertiveText,
|
|
1722
1766
|
{
|
|
1723
1767
|
invalid,
|
|
@@ -1728,7 +1772,7 @@ var DropdownSelector = ({
|
|
|
1728
1772
|
};
|
|
1729
1773
|
var DropdownSelector_default = DropdownSelector;
|
|
1730
1774
|
var DropdownSelectorItem = import_react_stately2.Item;
|
|
1731
|
-
var DropdownSelectorRoot =
|
|
1775
|
+
var DropdownSelectorRoot = import_styled_components19.default.div`
|
|
1732
1776
|
position: relative;
|
|
1733
1777
|
display: inline-block;
|
|
1734
1778
|
width: 100%;
|
|
@@ -1738,15 +1782,15 @@ var DropdownSelectorRoot = import_styled_components16.default.div`
|
|
|
1738
1782
|
${theme((o) => o.disabled)}
|
|
1739
1783
|
}
|
|
1740
1784
|
`;
|
|
1741
|
-
var DropdownFieldLabel = (0,
|
|
1785
|
+
var DropdownFieldLabel = (0, import_styled_components19.default)(FieldLabel_default)`
|
|
1742
1786
|
width: 100%;
|
|
1743
1787
|
|
|
1744
1788
|
${theme((o) => o.margin.bottom(8))}
|
|
1745
1789
|
`;
|
|
1746
|
-
var DropdownButtonWrapper =
|
|
1790
|
+
var DropdownButtonWrapper = import_styled_components19.default.div`
|
|
1747
1791
|
position: relative;
|
|
1748
1792
|
`;
|
|
1749
|
-
var DropdownButton =
|
|
1793
|
+
var DropdownButton = import_styled_components19.default.button`
|
|
1750
1794
|
display: flex;
|
|
1751
1795
|
justify-content: space-between;
|
|
1752
1796
|
align-items: center;
|
|
@@ -1769,15 +1813,15 @@ var DropdownButton = import_styled_components16.default.button`
|
|
|
1769
1813
|
invalid && o.outline.assertive
|
|
1770
1814
|
])}
|
|
1771
1815
|
`;
|
|
1772
|
-
var DropdownButtonText =
|
|
1816
|
+
var DropdownButtonText = import_styled_components19.default.span`
|
|
1773
1817
|
text-align: left;
|
|
1774
1818
|
|
|
1775
1819
|
${theme((o) => [o.typography(14), o.font.text2])}
|
|
1776
1820
|
`;
|
|
1777
|
-
var DropdownButtonIcon = (0,
|
|
1821
|
+
var DropdownButtonIcon = (0, import_styled_components19.default)(Icon_default)`
|
|
1778
1822
|
${theme((o) => [o.font.text2])}
|
|
1779
1823
|
`;
|
|
1780
|
-
var AssertiveText =
|
|
1824
|
+
var AssertiveText = import_styled_components19.default.div`
|
|
1781
1825
|
${({ invalid }) => theme((o) => [
|
|
1782
1826
|
o.typography(14),
|
|
1783
1827
|
o.margin.top(8),
|
|
@@ -1786,32 +1830,32 @@ var AssertiveText = import_styled_components16.default.div`
|
|
|
1786
1830
|
`;
|
|
1787
1831
|
|
|
1788
1832
|
// src/components/SegmentedControl/index.tsx
|
|
1789
|
-
var
|
|
1833
|
+
var import_react22 = __toESM(require("react"));
|
|
1790
1834
|
var import_react_stately3 = require("react-stately");
|
|
1791
1835
|
var import_radio = require("@react-aria/radio");
|
|
1792
|
-
var
|
|
1836
|
+
var import_styled_components20 = __toESM(require("styled-components"));
|
|
1793
1837
|
var import_utils10 = require("@charcoal-ui/utils");
|
|
1794
1838
|
|
|
1795
1839
|
// src/components/SegmentedControl/RadioGroupContext.tsx
|
|
1796
|
-
var
|
|
1797
|
-
var RadioContext = (0,
|
|
1840
|
+
var import_react21 = __toESM(require("react"));
|
|
1841
|
+
var RadioContext = (0, import_react21.createContext)(null);
|
|
1798
1842
|
var RadioProvider = ({
|
|
1799
1843
|
value,
|
|
1800
1844
|
children
|
|
1801
1845
|
}) => {
|
|
1802
|
-
return /* @__PURE__ */
|
|
1846
|
+
return /* @__PURE__ */ import_react21.default.createElement(RadioContext.Provider, { value }, children);
|
|
1803
1847
|
};
|
|
1804
1848
|
var useRadioContext = () => {
|
|
1805
|
-
const state = (0,
|
|
1849
|
+
const state = (0, import_react21.useContext)(RadioContext);
|
|
1806
1850
|
if (state === null)
|
|
1807
1851
|
throw new Error("`<RadioProvider>` is not likely mounted.");
|
|
1808
1852
|
return state;
|
|
1809
1853
|
};
|
|
1810
1854
|
|
|
1811
1855
|
// src/components/SegmentedControl/index.tsx
|
|
1812
|
-
var SegmentedControl = (0,
|
|
1856
|
+
var SegmentedControl = (0, import_react22.forwardRef)(
|
|
1813
1857
|
function SegmentedControlInner(props, ref) {
|
|
1814
|
-
const ariaRadioGroupProps = (0,
|
|
1858
|
+
const ariaRadioGroupProps = (0, import_react22.useMemo)(
|
|
1815
1859
|
() => ({
|
|
1816
1860
|
...props,
|
|
1817
1861
|
isDisabled: props.disabled,
|
|
@@ -1822,12 +1866,12 @@ var SegmentedControl = (0, import_react20.forwardRef)(
|
|
|
1822
1866
|
);
|
|
1823
1867
|
const state = (0, import_react_stately3.useRadioGroupState)(ariaRadioGroupProps);
|
|
1824
1868
|
const { radioGroupProps } = (0, import_radio.useRadioGroup)(ariaRadioGroupProps, state);
|
|
1825
|
-
const segmentedControlItems = (0,
|
|
1869
|
+
const segmentedControlItems = (0, import_react22.useMemo)(() => {
|
|
1826
1870
|
return props.data.map(
|
|
1827
1871
|
(d) => typeof d === "string" ? { value: d, label: d } : d
|
|
1828
1872
|
);
|
|
1829
1873
|
}, [props.data]);
|
|
1830
|
-
return /* @__PURE__ */
|
|
1874
|
+
return /* @__PURE__ */ import_react22.default.createElement(SegmentedControlRoot, { ref, ...radioGroupProps }, /* @__PURE__ */ import_react22.default.createElement(RadioProvider, { value: state }, segmentedControlItems.map((item) => /* @__PURE__ */ import_react22.default.createElement(
|
|
1831
1875
|
Segmented,
|
|
1832
1876
|
{
|
|
1833
1877
|
key: item.value,
|
|
@@ -1838,11 +1882,11 @@ var SegmentedControl = (0, import_react20.forwardRef)(
|
|
|
1838
1882
|
))));
|
|
1839
1883
|
}
|
|
1840
1884
|
);
|
|
1841
|
-
var SegmentedControl_default = (0,
|
|
1885
|
+
var SegmentedControl_default = (0, import_react22.memo)(SegmentedControl);
|
|
1842
1886
|
var Segmented = ({ children, ...props }) => {
|
|
1843
1887
|
const state = useRadioContext();
|
|
1844
|
-
const ref = (0,
|
|
1845
|
-
const ariaRadioProps = (0,
|
|
1888
|
+
const ref = (0, import_react22.useRef)(null);
|
|
1889
|
+
const ariaRadioProps = (0, import_react22.useMemo)(
|
|
1846
1890
|
() => ({ ...props, isDisabled: props.disabled }),
|
|
1847
1891
|
[props]
|
|
1848
1892
|
);
|
|
@@ -1851,23 +1895,23 @@ var Segmented = ({ children, ...props }) => {
|
|
|
1851
1895
|
state,
|
|
1852
1896
|
ref
|
|
1853
1897
|
);
|
|
1854
|
-
return /* @__PURE__ */
|
|
1898
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
1855
1899
|
SegmentedRoot,
|
|
1856
1900
|
{
|
|
1857
1901
|
"aria-disabled": isDisabled || state.isReadOnly,
|
|
1858
1902
|
checked: isSelected
|
|
1859
1903
|
},
|
|
1860
|
-
/* @__PURE__ */
|
|
1861
|
-
/* @__PURE__ */
|
|
1904
|
+
/* @__PURE__ */ import_react22.default.createElement(SegmentedInput, { ...inputProps, ref }),
|
|
1905
|
+
/* @__PURE__ */ import_react22.default.createElement(RadioLabel2, null, /* @__PURE__ */ import_react22.default.createElement(SegmentedLabelInner, null, children))
|
|
1862
1906
|
);
|
|
1863
1907
|
};
|
|
1864
|
-
var SegmentedControlRoot =
|
|
1908
|
+
var SegmentedControlRoot = import_styled_components20.default.div`
|
|
1865
1909
|
display: inline-flex;
|
|
1866
1910
|
align-items: center;
|
|
1867
1911
|
|
|
1868
1912
|
${theme((o) => [o.bg.surface3, o.borderRadius(16)])}
|
|
1869
1913
|
`;
|
|
1870
|
-
var SegmentedRoot =
|
|
1914
|
+
var SegmentedRoot = import_styled_components20.default.label`
|
|
1871
1915
|
position: relative;
|
|
1872
1916
|
display: flex;
|
|
1873
1917
|
align-items: center;
|
|
@@ -1886,7 +1930,7 @@ var SegmentedRoot = import_styled_components17.default.label`
|
|
|
1886
1930
|
checked === true ? o.font.text5 : o.font.text2
|
|
1887
1931
|
])}
|
|
1888
1932
|
`;
|
|
1889
|
-
var SegmentedInput =
|
|
1933
|
+
var SegmentedInput = import_styled_components20.default.input`
|
|
1890
1934
|
position: absolute;
|
|
1891
1935
|
|
|
1892
1936
|
height: 0px;
|
|
@@ -1900,26 +1944,26 @@ var SegmentedInput = import_styled_components17.default.input`
|
|
|
1900
1944
|
white-space: nowrap;
|
|
1901
1945
|
opacity: 0;
|
|
1902
1946
|
`;
|
|
1903
|
-
var RadioLabel2 =
|
|
1947
|
+
var RadioLabel2 = import_styled_components20.default.div`
|
|
1904
1948
|
background: transparent;
|
|
1905
1949
|
display: flex;
|
|
1906
1950
|
align-items: center;
|
|
1907
1951
|
height: 22px;
|
|
1908
1952
|
`;
|
|
1909
|
-
var SegmentedLabelInner =
|
|
1953
|
+
var SegmentedLabelInner = import_styled_components20.default.div`
|
|
1910
1954
|
${theme((o) => [o.typography(14)])}
|
|
1911
1955
|
`;
|
|
1912
1956
|
|
|
1913
1957
|
// src/components/Checkbox/index.tsx
|
|
1914
|
-
var
|
|
1915
|
-
var
|
|
1958
|
+
var import_react23 = __toESM(require("react"));
|
|
1959
|
+
var import_styled_components21 = __toESM(require("styled-components"));
|
|
1916
1960
|
var import_checkbox = require("@react-aria/checkbox");
|
|
1917
1961
|
var import_utils11 = require("@react-aria/utils");
|
|
1918
1962
|
var import_react_stately4 = require("react-stately");
|
|
1919
1963
|
var import_utils12 = require("@charcoal-ui/utils");
|
|
1920
|
-
var Checkbox = (0,
|
|
1964
|
+
var Checkbox = (0, import_react23.forwardRef)(
|
|
1921
1965
|
function CheckboxInner(props, ref) {
|
|
1922
|
-
const ariaCheckboxProps = (0,
|
|
1966
|
+
const ariaCheckboxProps = (0, import_react23.useMemo)(
|
|
1923
1967
|
() => ({
|
|
1924
1968
|
...props,
|
|
1925
1969
|
isSelected: props.checked,
|
|
@@ -1933,14 +1977,14 @@ var Checkbox = (0, import_react21.forwardRef)(
|
|
|
1933
1977
|
const objectRef = (0, import_utils11.useObjectRef)(ref);
|
|
1934
1978
|
const { inputProps } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
|
|
1935
1979
|
const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
|
|
1936
|
-
return /* @__PURE__ */
|
|
1980
|
+
return /* @__PURE__ */ import_react23.default.createElement(InputRoot, { "aria-disabled": isDisabled }, /* @__PURE__ */ import_react23.default.createElement(CheckboxRoot, null, /* @__PURE__ */ import_react23.default.createElement(CheckboxInput, { type: "checkbox", ...inputProps }), /* @__PURE__ */ import_react23.default.createElement(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked }, /* @__PURE__ */ import_react23.default.createElement(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }))), "children" in props && /* @__PURE__ */ import_react23.default.createElement(InputLabel, null, props.children));
|
|
1937
1981
|
}
|
|
1938
1982
|
);
|
|
1939
|
-
var Checkbox_default = (0,
|
|
1940
|
-
var hiddenCss =
|
|
1983
|
+
var Checkbox_default = (0, import_react23.memo)(Checkbox);
|
|
1984
|
+
var hiddenCss = import_styled_components21.css`
|
|
1941
1985
|
visibility: hidden;
|
|
1942
1986
|
`;
|
|
1943
|
-
var InputRoot =
|
|
1987
|
+
var InputRoot = import_styled_components21.default.label`
|
|
1944
1988
|
position: relative;
|
|
1945
1989
|
display: flex;
|
|
1946
1990
|
|
|
@@ -1952,10 +1996,10 @@ var InputRoot = import_styled_components18.default.label`
|
|
|
1952
1996
|
gap: ${({ theme: theme4 }) => (0, import_utils12.px)(theme4.spacing[4])};
|
|
1953
1997
|
${theme((o) => [o.disabled])}
|
|
1954
1998
|
`;
|
|
1955
|
-
var CheckboxRoot =
|
|
1999
|
+
var CheckboxRoot = import_styled_components21.default.div`
|
|
1956
2000
|
position: relative;
|
|
1957
2001
|
`;
|
|
1958
|
-
var CheckboxInput =
|
|
2002
|
+
var CheckboxInput = import_styled_components21.default.input`
|
|
1959
2003
|
&[type='checkbox'] {
|
|
1960
2004
|
appearance: none;
|
|
1961
2005
|
display: block;
|
|
@@ -1975,7 +2019,7 @@ var CheckboxInput = import_styled_components18.default.input`
|
|
|
1975
2019
|
${theme((o) => [o.outline.default.focus, o.borderRadius(4)])}
|
|
1976
2020
|
}
|
|
1977
2021
|
`;
|
|
1978
|
-
var CheckboxInputOverlay =
|
|
2022
|
+
var CheckboxInputOverlay = import_styled_components21.default.div`
|
|
1979
2023
|
position: absolute;
|
|
1980
2024
|
top: -2px;
|
|
1981
2025
|
left: -2px;
|
|
@@ -1988,7 +2032,7 @@ var CheckboxInputOverlay = import_styled_components18.default.div`
|
|
|
1988
2032
|
|
|
1989
2033
|
${({ checked }) => checked !== true && hiddenCss};
|
|
1990
2034
|
`;
|
|
1991
|
-
var InputLabel =
|
|
2035
|
+
var InputLabel = import_styled_components21.default.div`
|
|
1992
2036
|
${theme((o) => [o.font.text2])}
|
|
1993
2037
|
|
|
1994
2038
|
font-size: 14px;
|
|
@@ -1997,16 +2041,16 @@ var InputLabel = import_styled_components18.default.div`
|
|
|
1997
2041
|
`;
|
|
1998
2042
|
|
|
1999
2043
|
// src/components/TagItem/index.tsx
|
|
2000
|
-
var
|
|
2044
|
+
var import_react24 = __toESM(require("react"));
|
|
2001
2045
|
var import_utils13 = require("@react-aria/utils");
|
|
2002
|
-
var
|
|
2046
|
+
var import_styled_components22 = __toESM(require("styled-components"));
|
|
2003
2047
|
var import_utils14 = require("@charcoal-ui/utils");
|
|
2004
2048
|
var import_button2 = require("@react-aria/button");
|
|
2005
2049
|
var sizeMap = {
|
|
2006
2050
|
S: 32,
|
|
2007
2051
|
M: 40
|
|
2008
2052
|
};
|
|
2009
|
-
var TagItem = (0,
|
|
2053
|
+
var TagItem = (0, import_react24.forwardRef)(
|
|
2010
2054
|
function TagItemInner({
|
|
2011
2055
|
label,
|
|
2012
2056
|
translatedLabel,
|
|
@@ -2018,7 +2062,7 @@ var TagItem = (0, import_react22.forwardRef)(
|
|
|
2018
2062
|
...props
|
|
2019
2063
|
}, _ref) {
|
|
2020
2064
|
const ref = (0, import_utils13.useObjectRef)(_ref);
|
|
2021
|
-
const ariaButtonProps = (0,
|
|
2065
|
+
const ariaButtonProps = (0, import_react24.useMemo)(
|
|
2022
2066
|
() => ({
|
|
2023
2067
|
elementType: "a",
|
|
2024
2068
|
isDisabled: disabled,
|
|
@@ -2028,7 +2072,7 @@ var TagItem = (0, import_react22.forwardRef)(
|
|
|
2028
2072
|
);
|
|
2029
2073
|
const { buttonProps } = (0, import_button2.useButton)(ariaButtonProps, ref);
|
|
2030
2074
|
const hasTranslatedLabel = translatedLabel !== void 0 && translatedLabel.length > 0;
|
|
2031
|
-
return /* @__PURE__ */
|
|
2075
|
+
return /* @__PURE__ */ import_react24.default.createElement(
|
|
2032
2076
|
TagItemRoot,
|
|
2033
2077
|
{
|
|
2034
2078
|
ref,
|
|
@@ -2036,13 +2080,13 @@ var TagItem = (0, import_react22.forwardRef)(
|
|
|
2036
2080
|
status,
|
|
2037
2081
|
...buttonProps
|
|
2038
2082
|
},
|
|
2039
|
-
/* @__PURE__ */
|
|
2040
|
-
/* @__PURE__ */
|
|
2083
|
+
/* @__PURE__ */ import_react24.default.createElement(Background, { bgColor, bgImage, status }),
|
|
2084
|
+
/* @__PURE__ */ import_react24.default.createElement(Inner, null, /* @__PURE__ */ import_react24.default.createElement(LabelWrapper, { isTranslate: hasTranslatedLabel }, hasTranslatedLabel && /* @__PURE__ */ import_react24.default.createElement(TranslatedLabel, null, /* @__PURE__ */ import_react24.default.createElement(Label3, null, translatedLabel)), /* @__PURE__ */ import_react24.default.createElement(Label3, null, label)), status === "active" && /* @__PURE__ */ import_react24.default.createElement(Icon_default, { name: "16/Remove" }))
|
|
2041
2085
|
);
|
|
2042
2086
|
}
|
|
2043
2087
|
);
|
|
2044
|
-
var TagItem_default = (0,
|
|
2045
|
-
var TagItemRoot =
|
|
2088
|
+
var TagItem_default = (0, import_react24.memo)(TagItem);
|
|
2089
|
+
var TagItemRoot = import_styled_components22.default.a`
|
|
2046
2090
|
isolation: isolate;
|
|
2047
2091
|
position: relative;
|
|
2048
2092
|
height: ${({ size }) => sizeMap[size]}px;
|
|
@@ -2058,7 +2102,6 @@ var TagItemRoot = import_styled_components19.default.a`
|
|
|
2058
2102
|
o.borderRadius(4),
|
|
2059
2103
|
status !== "active" && size === "M" && o.padding.horizontal(24),
|
|
2060
2104
|
status !== "active" && size === "S" && o.padding.horizontal(16),
|
|
2061
|
-
status === "inactive" && o.bg.surface3,
|
|
2062
2105
|
status === "inactive" ? o.font.text2 : o.font.text5,
|
|
2063
2106
|
...status === "active" ? [o.padding.left(16), o.padding.right(8)] : []
|
|
2064
2107
|
])}
|
|
@@ -2068,7 +2111,7 @@ var TagItemRoot = import_styled_components19.default.a`
|
|
|
2068
2111
|
cursor: default;
|
|
2069
2112
|
}
|
|
2070
2113
|
`;
|
|
2071
|
-
var Background =
|
|
2114
|
+
var Background = import_styled_components22.default.div`
|
|
2072
2115
|
position: absolute;
|
|
2073
2116
|
z-index: 1;
|
|
2074
2117
|
top: 0;
|
|
@@ -2077,8 +2120,9 @@ var Background = import_styled_components19.default.div`
|
|
|
2077
2120
|
height: 100%;
|
|
2078
2121
|
|
|
2079
2122
|
background-color: ${({ bgColor }) => bgColor};
|
|
2123
|
+
${({ status }) => status === "inactive" && theme((o) => o.bg.surface3)}
|
|
2080
2124
|
|
|
2081
|
-
${({ bgImage }) => bgImage !== void 0 &&
|
|
2125
|
+
${({ bgImage }) => bgImage !== void 0 && import_styled_components22.css`
|
|
2082
2126
|
${theme((o) => [o.bg.surface4])}
|
|
2083
2127
|
&::before {
|
|
2084
2128
|
content: '';
|
|
@@ -2094,25 +2138,25 @@ var Background = import_styled_components19.default.div`
|
|
|
2094
2138
|
}
|
|
2095
2139
|
`}
|
|
2096
2140
|
`;
|
|
2097
|
-
var Inner =
|
|
2141
|
+
var Inner = import_styled_components22.default.div`
|
|
2098
2142
|
display: inline-flex;
|
|
2099
2143
|
gap: ${({ theme: theme4 }) => (0, import_utils14.px)(theme4.spacing[8])};
|
|
2100
2144
|
align-items: center;
|
|
2101
2145
|
z-index: 2;
|
|
2102
2146
|
`;
|
|
2103
|
-
var labelCSS =
|
|
2147
|
+
var labelCSS = import_styled_components22.css`
|
|
2104
2148
|
${theme((o) => [o.typography(14).bold])}
|
|
2105
2149
|
`;
|
|
2106
|
-
var translateLabelCSS =
|
|
2150
|
+
var translateLabelCSS = import_styled_components22.css`
|
|
2107
2151
|
display: flex;
|
|
2108
2152
|
align-items: center;
|
|
2109
2153
|
flex-direction: column;
|
|
2110
2154
|
font-size: 10px;
|
|
2111
2155
|
`;
|
|
2112
|
-
var LabelWrapper =
|
|
2156
|
+
var LabelWrapper = import_styled_components22.default.div`
|
|
2113
2157
|
${({ isTranslate }) => isTranslate ?? false ? translateLabelCSS : labelCSS}
|
|
2114
2158
|
`;
|
|
2115
|
-
var Label3 =
|
|
2159
|
+
var Label3 = import_styled_components22.default.span`
|
|
2116
2160
|
max-width: 152px;
|
|
2117
2161
|
overflow: hidden;
|
|
2118
2162
|
text-overflow: ellipsis;
|
|
@@ -2121,7 +2165,7 @@ var Label3 = import_styled_components19.default.span`
|
|
|
2121
2165
|
color: inherit;
|
|
2122
2166
|
line-height: inherit;
|
|
2123
2167
|
`;
|
|
2124
|
-
var TranslatedLabel =
|
|
2168
|
+
var TranslatedLabel = import_styled_components22.default.div`
|
|
2125
2169
|
${theme((o) => [o.typography(12).bold])}
|
|
2126
2170
|
`;
|
|
2127
2171
|
// Annotate the CommonJS export names for ESM import in node:
|