@vector-im/compound-web 7.10.0 → 7.10.2

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/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=compound-web&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=compound-web)
7
7
  [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=compound-web&metric=coverage)](https://sonarcloud.io/summary/new_code?id=compound-web)
8
8
 
9
- React implementation of Compound – Element's design system – See full documentation on https://compound.element.io and the [Figma component library](https://www.figma.com/file/rTaQE2nIUSLav4Tg3nozq7/Compound-Web-Components?type=design&node-id=129%3A4461&t=0cvCO0bpqRPGgkwa-1)
9
+ React implementation of Compound – Element's design system – See full documentation on https://compound.element.io
10
10
 
11
11
  ## Development
12
12
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const styles = {
4
- "unread-counter": "_unread-counter_1ibqq_8"
4
+ "unread-counter": "_unread-counter_9mg0k_8"
5
5
  };
6
6
  exports.default = styles;
7
7
  //# sourceMappingURL=UnreadCounter.module.css.cjs.map
@@ -1,5 +1,5 @@
1
1
  const styles = {
2
- "unread-counter": "_unread-counter_1ibqq_8"
2
+ "unread-counter": "_unread-counter_9mg0k_8"
3
3
  };
4
4
  export {
5
5
  styles as default
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const React = require("react");
5
+ const MenuItem = require("./MenuItem.cjs");
6
+ const Checkbox = require("../Form/Controls/Checkbox/Checkbox.cjs");
7
+ const CheckboxMenuItem = React.forwardRef(
8
+ function CheckboxMenuItem2({ className, label, onSelect, checked, disabled }, ref) {
9
+ const toggleId = React.useId();
10
+ const onChange = React.useCallback(() => {
11
+ }, []);
12
+ return /* @__PURE__ */ jsxRuntime.jsx(
13
+ MenuItem.MenuItem,
14
+ {
15
+ as: "div",
16
+ role: "menuitemcheckbox",
17
+ "aria-checked": checked,
18
+ className,
19
+ label,
20
+ onSelect,
21
+ disabled,
22
+ Icon: /* @__PURE__ */ jsxRuntime.jsx(
23
+ Checkbox.CheckboxInput,
24
+ {
25
+ id: toggleId,
26
+ ref,
27
+ "aria-hidden": true,
28
+ checked,
29
+ disabled,
30
+ onChange
31
+ }
32
+ )
33
+ }
34
+ );
35
+ }
36
+ );
37
+ exports.CheckboxMenuItem = CheckboxMenuItem;
38
+ //# sourceMappingURL=CheckboxMenuItem.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxMenuItem.cjs","sources":["../../../src/components/Menu/CheckboxMenuItem.tsx"],"sourcesContent":["/*\n * Copyright 2025 New Vector Ltd\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport React, { ComponentProps, forwardRef, useCallback, useId } from \"react\";\nimport { MenuItem } from \"./MenuItem\";\nimport { CheckboxInput } from \"../Form\";\n\ntype Props = Pick<\n ComponentProps<typeof MenuItem>,\n \"className\" | \"label\" | \"onSelect\" | \"disabled\"\n> & {\n /**\n * Whether the checkbox is checked.\n */\n checked: boolean;\n};\n\n/**\n * A menu item with a checkbox control.\n * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.\n */\nexport const CheckboxMenuItem = forwardRef<HTMLInputElement, Props>(\n function CheckboxMenuItem(\n { className, label, onSelect, checked, disabled },\n ref,\n ) {\n const toggleId = useId();\n // The checkbox is controlled and we intend to ignore its events. We do need\n // to at least set onChange though to make React happy.\n const onChange = useCallback(() => {}, []);\n\n // <label> elements are not allowed to have a role like menuitemcheckbox, so\n // we must instead use a plain <div> for the menu item and use aria-checked\n // etc. to communicate its state.\n return (\n <MenuItem\n as=\"div\"\n role=\"menuitemcheckbox\"\n aria-checked={checked}\n className={className}\n label={label}\n onSelect={onSelect}\n disabled={disabled}\n Icon={\n <CheckboxInput\n id={toggleId}\n ref={ref}\n // This is purely cosmetic; really the whole MenuItem is the toggle.\n aria-hidden\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n }\n />\n );\n },\n);\n"],"names":["forwardRef","CheckboxMenuItem","useId","useCallback","jsx","MenuItem","CheckboxInput"],"mappings":";;;;;;AAyBO,MAAM,mBAAmBA,MAAA;AAAA,EAC9B,SAASC,kBACP,EAAE,WAAW,OAAO,UAAU,SAAS,SAAS,GAChD,KACA;AACA,UAAM,WAAWC,MAAAA,MAAM;AAGjB,UAAA,WAAWC,MAAAA,YAAY,MAAM;AAAA,IAAC,GAAG,EAAE;AAMvC,WAAAC,2BAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,gBAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MACED,2BAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ;AAAA,YAEA,eAAW;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EAAA;AAGN;;"}
@@ -0,0 +1,38 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useId, useCallback } from "react";
3
+ import { MenuItem } from "./MenuItem.js";
4
+ import { CheckboxInput } from "../Form/Controls/Checkbox/Checkbox.js";
5
+ const CheckboxMenuItem = forwardRef(
6
+ function CheckboxMenuItem2({ className, label, onSelect, checked, disabled }, ref) {
7
+ const toggleId = useId();
8
+ const onChange = useCallback(() => {
9
+ }, []);
10
+ return /* @__PURE__ */ jsx(
11
+ MenuItem,
12
+ {
13
+ as: "div",
14
+ role: "menuitemcheckbox",
15
+ "aria-checked": checked,
16
+ className,
17
+ label,
18
+ onSelect,
19
+ disabled,
20
+ Icon: /* @__PURE__ */ jsx(
21
+ CheckboxInput,
22
+ {
23
+ id: toggleId,
24
+ ref,
25
+ "aria-hidden": true,
26
+ checked,
27
+ disabled,
28
+ onChange
29
+ }
30
+ )
31
+ }
32
+ );
33
+ }
34
+ );
35
+ export {
36
+ CheckboxMenuItem
37
+ };
38
+ //# sourceMappingURL=CheckboxMenuItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxMenuItem.js","sources":["../../../src/components/Menu/CheckboxMenuItem.tsx"],"sourcesContent":["/*\n * Copyright 2025 New Vector Ltd\n *\n * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial\n * Please see LICENSE files in the repository root for full details.\n */\n\nimport React, { ComponentProps, forwardRef, useCallback, useId } from \"react\";\nimport { MenuItem } from \"./MenuItem\";\nimport { CheckboxInput } from \"../Form\";\n\ntype Props = Pick<\n ComponentProps<typeof MenuItem>,\n \"className\" | \"label\" | \"onSelect\" | \"disabled\"\n> & {\n /**\n * Whether the checkbox is checked.\n */\n checked: boolean;\n};\n\n/**\n * A menu item with a checkbox control.\n * Must be used within a compound Menu or other `menu` or `menubar` aria role subtree.\n */\nexport const CheckboxMenuItem = forwardRef<HTMLInputElement, Props>(\n function CheckboxMenuItem(\n { className, label, onSelect, checked, disabled },\n ref,\n ) {\n const toggleId = useId();\n // The checkbox is controlled and we intend to ignore its events. We do need\n // to at least set onChange though to make React happy.\n const onChange = useCallback(() => {}, []);\n\n // <label> elements are not allowed to have a role like menuitemcheckbox, so\n // we must instead use a plain <div> for the menu item and use aria-checked\n // etc. to communicate its state.\n return (\n <MenuItem\n as=\"div\"\n role=\"menuitemcheckbox\"\n aria-checked={checked}\n className={className}\n label={label}\n onSelect={onSelect}\n disabled={disabled}\n Icon={\n <CheckboxInput\n id={toggleId}\n ref={ref}\n // This is purely cosmetic; really the whole MenuItem is the toggle.\n aria-hidden\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n }\n />\n );\n },\n);\n"],"names":["CheckboxMenuItem"],"mappings":";;;;AAyBO,MAAM,mBAAmB;AAAA,EAC9B,SAASA,kBACP,EAAE,WAAW,OAAO,UAAU,SAAS,SAAS,GAChD,KACA;AACA,UAAM,WAAW,MAAM;AAGjB,UAAA,WAAW,YAAY,MAAM;AAAA,IAAC,GAAG,EAAE;AAMvC,WAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,gBAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ;AAAA,YAEA,eAAW;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EAAA;AAGN;"}
package/dist/index.cjs CHANGED
@@ -13,10 +13,12 @@ const IndicatorIcon = require("./components/Icon/IndicatorIcon/IndicatorIcon.cjs
13
13
  const Link = require("./components/Link/Link.cjs");
14
14
  const Menu = require("./components/Menu/Menu.cjs");
15
15
  const MenuItem = require("./components/Menu/MenuItem.cjs");
16
+ const MenuTitle = require("./components/Menu/MenuTitle.cjs");
16
17
  const Progress = require("./components/Progress/Progress.cjs");
17
18
  const Search = require("./components/Search/Search.cjs");
18
19
  const Separator = require("./components/Separator/Separator.cjs");
19
20
  const ToggleMenuItem = require("./components/Menu/ToggleMenuItem.cjs");
21
+ const CheckboxMenuItem = require("./components/Menu/CheckboxMenuItem.cjs");
20
22
  const Tooltip = require("./components/Tooltip/Tooltip.cjs");
21
23
  const TooltipProvider = require("./components/Tooltip/TooltipProvider.cjs");
22
24
  const Toast = require("./components/Toast/Toast.cjs");
@@ -73,10 +75,12 @@ exports.IndicatorIcon = IndicatorIcon.IndicatorIcon;
73
75
  exports.Link = Link.Link;
74
76
  exports.Menu = Menu.Menu;
75
77
  exports.MenuItem = MenuItem.MenuItem;
78
+ exports.MenuTitle = MenuTitle.MenuTitle;
76
79
  exports.Progress = Progress.Progress;
77
80
  exports.Search = Search.Search;
78
81
  exports.Separator = Separator.Separator;
79
82
  exports.ToggleMenuItem = ToggleMenuItem.ToggleMenuItem;
83
+ exports.CheckboxMenuItem = CheckboxMenuItem.CheckboxMenuItem;
80
84
  exports.Tooltip = Tooltip.Tooltip;
81
85
  exports.TooltipProvider = TooltipProvider.TooltipProvider;
82
86
  exports.Toast = Toast.Toast;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -17,10 +17,12 @@ export { Link } from './components/Link/Link';
17
17
  export { NavBar, NavItem } from './components/Nav';
18
18
  export { Menu } from './components/Menu/Menu';
19
19
  export { MenuItem } from './components/Menu/MenuItem';
20
+ export { MenuTitle } from './components/Menu/MenuTitle';
20
21
  export { Progress } from './components/Progress/Progress';
21
22
  export { Search } from './components/Search/Search';
22
23
  export { Separator } from './components/Separator/Separator';
23
24
  export { ToggleMenuItem } from './components/Menu/ToggleMenuItem';
25
+ export { CheckboxMenuItem } from './components/Menu/CheckboxMenuItem';
24
26
  export { Tooltip } from './components/Tooltip/Tooltip';
25
27
  export { TooltipProvider } from './components/Tooltip/TooltipProvider';
26
28
  export { ReleaseAnnouncement } from './components/ReleaseAnnouncement';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EACL,OAAO,EACP,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,GACH,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EACL,WAAW,EAEX,WAAW,IAAI,OAAO,EACtB,SAAS,EACT,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EAEb,aAAa,IAAI,QAAQ,EACzB,YAAY,EACZ,UAAU,EAEV,UAAU,IAAI,KAAK,EACnB,aAAa,EACb,WAAW,EAEX,WAAW,IAAI,MAAM,EACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,YAAY,EACZ,WAAW,EACX,aAAa,EACb,KAAK,EACL,WAAW,EACX,KAAK,EACL,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAE1C;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,10 +11,12 @@ import { IndicatorIcon } from "./components/Icon/IndicatorIcon/IndicatorIcon.js"
11
11
  import { Link } from "./components/Link/Link.js";
12
12
  import { Menu } from "./components/Menu/Menu.js";
13
13
  import { MenuItem } from "./components/Menu/MenuItem.js";
14
+ import { MenuTitle } from "./components/Menu/MenuTitle.js";
14
15
  import { Progress } from "./components/Progress/Progress.js";
15
16
  import { Search } from "./components/Search/Search.js";
16
17
  import { Separator } from "./components/Separator/Separator.js";
17
18
  import { ToggleMenuItem } from "./components/Menu/ToggleMenuItem.js";
19
+ import { CheckboxMenuItem } from "./components/Menu/CheckboxMenuItem.js";
18
20
  import { Tooltip } from "./components/Tooltip/Tooltip.js";
19
21
  import { TooltipProvider } from "./components/Tooltip/TooltipProvider.js";
20
22
  import { Toast } from "./components/Toast/Toast.js";
@@ -67,6 +69,7 @@ export {
67
69
  CheckboxInput as Checkbox,
68
70
  CheckboxControl,
69
71
  CheckboxInput2 as CheckboxInput,
72
+ CheckboxMenuItem,
70
73
  ContextMenu,
71
74
  TextControl as Control,
72
75
  Dropdown,
@@ -93,6 +96,7 @@ export {
93
96
  MFAInput,
94
97
  Menu,
95
98
  MenuItem,
99
+ MenuTitle,
96
100
  Message,
97
101
  NavBar,
98
102
  NavItem,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/style.css CHANGED
@@ -1397,6 +1397,117 @@ ring after a simple click */
1397
1397
  border-color: var(--cpd-color-border-interactive-hovered);
1398
1398
  }
1399
1399
  /*
1400
+ Copyright 2025 New Vector Ltd.
1401
+ Copyright 2023 The Matrix.org Foundation C.I.C.
1402
+ Copyright 2023 New Vector Ltd
1403
+
1404
+ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
1405
+ Please see LICENSE files in the repository root for full details.
1406
+ */
1407
+
1408
+ ._container_1hel1_10 {
1409
+ --size: 20px;
1410
+
1411
+ display: grid;
1412
+ inline-size: var(--size);
1413
+ block-size: var(--size);
1414
+ }
1415
+
1416
+ ._input_1hel1_18,
1417
+ ._ui_1hel1_19 {
1418
+ box-sizing: border-box;
1419
+ grid-area: 1/1;
1420
+ inline-size: var(--size);
1421
+ block-size: var(--size);
1422
+ }
1423
+
1424
+ ._input_1hel1_18 {
1425
+ opacity: 0;
1426
+ margin: 0;
1427
+ cursor: pointer;
1428
+ }
1429
+
1430
+ ._ui_1hel1_19 {
1431
+ pointer-events: none;
1432
+ border-radius: 4px; /* TODO: Ought to be a token */
1433
+ border: 1px solid;
1434
+ border-color: var(--cpd-color-border-interactive-primary);
1435
+
1436
+ /** Default, rest state */
1437
+ color: transparent;
1438
+ }
1439
+
1440
+ ._ui_1hel1_19 svg {
1441
+ inline-size: var(--size);
1442
+ block-size: var(--size);
1443
+
1444
+ /* compensate for the parent border */
1445
+ margin: -1px;
1446
+ }
1447
+
1448
+ ._input_1hel1_18:checked + ._ui_1hel1_19 {
1449
+ color: var(--cpd-color-icon-on-solid-primary);
1450
+ background-color: var(--cpd-color-bg-accent-rest);
1451
+ border-color: var(--cpd-color-bg-accent-rest);
1452
+ }
1453
+
1454
+ ._input_1hel1_18:focus-visible + ._ui_1hel1_19 {
1455
+ outline: 2px solid var(--cpd-color-border-focused);
1456
+ outline-offset: 1px;
1457
+ }
1458
+
1459
+ ._input_1hel1_18[disabled] + ._ui_1hel1_19 {
1460
+ border-color: var(--cpd-color-border-disabled);
1461
+ background: var(--cpd-color-bg-canvas-disabled);
1462
+ }
1463
+
1464
+ ._input_1hel1_18[readonly] {
1465
+ pointer-events: none;
1466
+ }
1467
+
1468
+ ._input_1hel1_18[readonly] + ._ui_1hel1_19 {
1469
+ border-color: var(--cpd-color-border-interactive-secondary);
1470
+ background: var(--cpd-color-bg-subtle-secondary);
1471
+ }
1472
+
1473
+ ._input_1hel1_18[disabled]:checked + ._ui_1hel1_19 {
1474
+ border-color: var(--cpd-color-bg-action-primary-disabled);
1475
+ background: var(--cpd-color-bg-action-primary-disabled);
1476
+ }
1477
+
1478
+ ._input_1hel1_18[readonly]:checked + ._ui_1hel1_19 {
1479
+ color: var(--cpd-color-icon-secondary);
1480
+ }
1481
+
1482
+ @media (hover) {
1483
+ ._input_1hel1_18:not([disabled], [readonly], :checked):hover + ._ui_1hel1_19 {
1484
+ color: var(--cpd-color-icon-quaternary);
1485
+ border-color: var(--cpd-color-bg-accent-hovered);
1486
+
1487
+ /** TODO: have the shadow in the design tokens */
1488
+ box-shadow: 0 1.2px 2.4px 0 rgb(0 0 0 / 15%);
1489
+ }
1490
+
1491
+ ._input_1hel1_18:not([disabled], [readonly]):checked:hover + ._ui_1hel1_19 {
1492
+ border-color: var(--cpd-color-bg-accent-hovered);
1493
+ background: var(--cpd-color-bg-accent-hovered);
1494
+ }
1495
+
1496
+ ._input_1hel1_18[data-invalid]:not([disabled], [readonly]):checked:hover + ._ui_1hel1_19 {
1497
+ border-color: var(--cpd-color-bg-critical-hovered);
1498
+ background: var(--cpd-color-bg-critical-hovered);
1499
+ }
1500
+ }
1501
+
1502
+ ._input_1hel1_18[data-invalid]:not([disabled], :checked, [readonly]) + ._ui_1hel1_19 {
1503
+ border-color: var(--cpd-color-border-critical-primary);
1504
+ }
1505
+
1506
+ ._input_1hel1_18[data-invalid]:not([disabled], [readonly]):checked + ._ui_1hel1_19 {
1507
+ background-color: var(--cpd-color-bg-critical-primary);
1508
+ border-color: var(--cpd-color-bg-critical-primary);
1509
+ }
1510
+ /*
1400
1511
  Copyright 2024 New Vector Ltd.
1401
1512
 
1402
1513
  SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
@@ -1885,117 +1996,6 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
1885
1996
  Please see LICENSE files in the repository root for full details.
1886
1997
  */
1887
1998
 
1888
- ._container_1hel1_10 {
1889
- --size: 20px;
1890
-
1891
- display: grid;
1892
- inline-size: var(--size);
1893
- block-size: var(--size);
1894
- }
1895
-
1896
- ._input_1hel1_18,
1897
- ._ui_1hel1_19 {
1898
- box-sizing: border-box;
1899
- grid-area: 1/1;
1900
- inline-size: var(--size);
1901
- block-size: var(--size);
1902
- }
1903
-
1904
- ._input_1hel1_18 {
1905
- opacity: 0;
1906
- margin: 0;
1907
- cursor: pointer;
1908
- }
1909
-
1910
- ._ui_1hel1_19 {
1911
- pointer-events: none;
1912
- border-radius: 4px; /* TODO: Ought to be a token */
1913
- border: 1px solid;
1914
- border-color: var(--cpd-color-border-interactive-primary);
1915
-
1916
- /** Default, rest state */
1917
- color: transparent;
1918
- }
1919
-
1920
- ._ui_1hel1_19 svg {
1921
- inline-size: var(--size);
1922
- block-size: var(--size);
1923
-
1924
- /* compensate for the parent border */
1925
- margin: -1px;
1926
- }
1927
-
1928
- ._input_1hel1_18:checked + ._ui_1hel1_19 {
1929
- color: var(--cpd-color-icon-on-solid-primary);
1930
- background-color: var(--cpd-color-bg-accent-rest);
1931
- border-color: var(--cpd-color-bg-accent-rest);
1932
- }
1933
-
1934
- ._input_1hel1_18:focus-visible + ._ui_1hel1_19 {
1935
- outline: 2px solid var(--cpd-color-border-focused);
1936
- outline-offset: 1px;
1937
- }
1938
-
1939
- ._input_1hel1_18[disabled] + ._ui_1hel1_19 {
1940
- border-color: var(--cpd-color-border-disabled);
1941
- background: var(--cpd-color-bg-canvas-disabled);
1942
- }
1943
-
1944
- ._input_1hel1_18[readonly] {
1945
- pointer-events: none;
1946
- }
1947
-
1948
- ._input_1hel1_18[readonly] + ._ui_1hel1_19 {
1949
- border-color: var(--cpd-color-border-interactive-secondary);
1950
- background: var(--cpd-color-bg-subtle-secondary);
1951
- }
1952
-
1953
- ._input_1hel1_18[disabled]:checked + ._ui_1hel1_19 {
1954
- border-color: var(--cpd-color-bg-action-primary-disabled);
1955
- background: var(--cpd-color-bg-action-primary-disabled);
1956
- }
1957
-
1958
- ._input_1hel1_18[readonly]:checked + ._ui_1hel1_19 {
1959
- color: var(--cpd-color-icon-secondary);
1960
- }
1961
-
1962
- @media (hover) {
1963
- ._input_1hel1_18:not([disabled], [readonly], :checked):hover + ._ui_1hel1_19 {
1964
- color: var(--cpd-color-icon-quaternary);
1965
- border-color: var(--cpd-color-bg-accent-hovered);
1966
-
1967
- /** TODO: have the shadow in the design tokens */
1968
- box-shadow: 0 1.2px 2.4px 0 rgb(0 0 0 / 15%);
1969
- }
1970
-
1971
- ._input_1hel1_18:not([disabled], [readonly]):checked:hover + ._ui_1hel1_19 {
1972
- border-color: var(--cpd-color-bg-accent-hovered);
1973
- background: var(--cpd-color-bg-accent-hovered);
1974
- }
1975
-
1976
- ._input_1hel1_18[data-invalid]:not([disabled], [readonly]):checked:hover + ._ui_1hel1_19 {
1977
- border-color: var(--cpd-color-bg-critical-hovered);
1978
- background: var(--cpd-color-bg-critical-hovered);
1979
- }
1980
- }
1981
-
1982
- ._input_1hel1_18[data-invalid]:not([disabled], :checked, [readonly]) + ._ui_1hel1_19 {
1983
- border-color: var(--cpd-color-border-critical-primary);
1984
- }
1985
-
1986
- ._input_1hel1_18[data-invalid]:not([disabled], [readonly]):checked + ._ui_1hel1_19 {
1987
- background-color: var(--cpd-color-bg-critical-primary);
1988
- border-color: var(--cpd-color-bg-critical-primary);
1989
- }
1990
- /*
1991
- Copyright 2025 New Vector Ltd.
1992
- Copyright 2023 The Matrix.org Foundation C.I.C.
1993
- Copyright 2023 New Vector Ltd
1994
-
1995
- SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
1996
- Please see LICENSE files in the repository root for full details.
1997
- */
1998
-
1999
1999
  ._container_1e0uz_10 {
2000
2000
  --size: 20px;
2001
2001
 
@@ -2642,8 +2642,8 @@ Please see LICENSE files in the repository root for full details.
2642
2642
  * Please see LICENSE files in the repository root for full details.
2643
2643
  */
2644
2644
 
2645
- ._unread-counter_1ibqq_8 {
2646
- border-radius: 100%;
2645
+ ._unread-counter_9mg0k_8 {
2646
+ border-radius: 38px;
2647
2647
  font: var(--cpd-font-body-xs-semibold);
2648
2648
  color: var(--cpd-color-text-on-solid-primary);
2649
2649
  background-color: var(--cpd-color-icon-success-primary);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vector-im/compound-web",
3
- "version": "7.10.0",
3
+ "version": "7.10.2",
4
4
  "description": "Compound components for the Web",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  .unread-counter {
9
- border-radius: 100%;
9
+ border-radius: 38px;
10
10
  font: var(--cpd-font-body-xs-semibold);
11
11
  color: var(--cpd-color-text-on-solid-primary);
12
12
  background-color: var(--cpd-color-icon-success-primary);
package/src/index.ts CHANGED
@@ -34,10 +34,12 @@ export { Link } from "./components/Link/Link";
34
34
  export { NavBar, NavItem } from "./components/Nav";
35
35
  export { Menu } from "./components/Menu/Menu";
36
36
  export { MenuItem } from "./components/Menu/MenuItem";
37
+ export { MenuTitle } from "./components/Menu/MenuTitle";
37
38
  export { Progress } from "./components/Progress/Progress";
38
39
  export { Search } from "./components/Search/Search";
39
40
  export { Separator } from "./components/Separator/Separator";
40
41
  export { ToggleMenuItem } from "./components/Menu/ToggleMenuItem";
42
+ export { CheckboxMenuItem } from "./components/Menu/CheckboxMenuItem";
41
43
  export { Tooltip } from "./components/Tooltip/Tooltip";
42
44
  export { TooltipProvider } from "./components/Tooltip/TooltipProvider";
43
45
  export { ReleaseAnnouncement } from "./components/ReleaseAnnouncement";