return MockObserver;
});
+// ResizeObserver
+
+const MockResizeObserverEntries = [
+ {
+ contentRect: {
+ width: 100,
+ height: 200,
+ },
+ },
+];
+
+const MockResizeObserver = {
+ observe: jest.fn(),
+ unobserve: jest.fn(),
+ disconnect: jest.fn(),
+};
+
+global.ResizeObserver = jest.fn().mockImplementation((callback) => {
+ callback(MockResizeObserverEntries, MockResizeObserver);
+ return MockResizeObserver;
+});
+
// Copied from pollyfill.io
// To be remove when upgrading jsdom https://github.com/jsdom/jsdom/releases/tag/22.1.0
// jest-environment-jsdom to v30
title?: string;
}
+/** @deprecated Use Checkbox from Echoes instead.
+ *
+ * Some of the props have changed or been renamed:
+ * - ~`aria-disabled`~ is now inferred from `isDisabled`
+ * - `ariaLabel` is now mandatory in the absence of `label`
+ * - ~`children`~ has been removed
+ * - `disabled` is now `isDisabled`
+ * - `label` is no longer used in the aria-label but displayed next to the checkbox
+ * - `loading` is now `isLoading`
+ * - ~`onClick`~ has been removed
+ * - ~`right`~ has been removed
+ * - `thirdState` is now represented by the `indeterminate` value of the `checked` prop
+ */
export function Checkbox({
checked,
disabled,
"@primer/octicons-react": "19.8.0",
"@react-spring/rafz": "9.7.3",
"@react-spring/web": "9.7.3",
- "@sonarsource/echoes-react": "0.1.1",
+ "@sonarsource/echoes-react": "0.1.2",
"@tanstack/react-query": "5.18.1",
"axios": "1.6.7",
"classnames": "2.5.1",
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import { CellComponent, Checkbox, TableRowInteractive } from 'design-system';
+import { Checkbox } from '@sonarsource/echoes-react';
+import { CellComponent, TableRowInteractive } from 'design-system';
import * as React from 'react';
import { hasMessage, translate, translateWithParameters } from '../../../helpers/l10n';
import {
<CellComponent className="sw-py-0 sw-border-0" key={channel}>
<div className="sw-justify-end sw-flex sw-items-center">
<Checkbox
- checked={isEnabled(type, channel)}
- id={checkboxId(type, channel)}
- label={translateWithParameters(
+ ariaLabel={translateWithParameters(
'notification.dispatcher.description_x',
getDispatcherLabel(type),
)}
- onCheck={(checked) => handleCheck(type, channel, checked)}
+ checked={isEnabled(type, channel)}
+ id={checkboxId(type, channel)}
+ onCheck={(checked) => handleCheck(type, channel, checked as boolean)}
/>
</div>
</CellComponent>
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+
+import { Checkbox, Spinner } from '@sonarsource/echoes-react';
import {
ButtonPrimary,
- Checkbox,
FlagMessage,
FormField,
Highlight,
LightLabel,
Modal,
RadioButton,
- Spinner,
} from 'design-system';
import { countBy, flattenDeep, pickBy, sortBy } from 'lodash';
import * as React from 'react';
};
renderNotificationsField = () => (
- <div>
- <Checkbox
- checked={this.state.notifications !== undefined}
- className="sw-my-2 sw-gap-1/2"
- id="send-notifications"
- onCheck={this.handleFieldCheck('notifications')}
- right
- >
- {translate('issue.send_notifications')}
- </Checkbox>
- </div>
+ <Checkbox
+ checked={this.state.notifications !== undefined}
+ id="send-notifications"
+ label={translate('issue.send_notifications')}
+ onCheck={this.handleFieldCheck('notifications')}
+ />
);
renderForm = () => {
const limitReached = paging && paging.total > MAX_PAGE_SIZE;
return (
- <Spinner loading={loading}>
+ <Spinner isLoading={loading}>
<form id="bulk-change-form" onSubmit={this.handleSubmit} className="sw-mr-4">
{limitReached && (
<FlagMessage className="sw-mb-4" variant="warning">
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+
import styled from '@emotion/styled';
+import { Checkbox, Spinner } from '@sonarsource/echoes-react';
import classNames from 'classnames';
import {
ButtonSecondary,
- Checkbox,
FlagMessage,
LAYOUT_FOOTER_HEIGHT,
LargeCenteredLayout,
PageContentFontWrapper,
- Spinner,
ToggleButton,
themeBorder,
themeColor,
return (
<div className="sw-float-left sw-flex sw-items-center">
<Checkbox
- checked={isChecked}
+ ariaLabel={translate('issues.select_all_issues')}
+ checked={thirdState ? 'indeterminate' : isChecked}
className="sw-mr-2"
- disabled={issues.length === 0}
id="issues-selection"
+ isDisabled={issues.length === 0}
onCheck={this.handleCheckAll}
- thirdState={thirdState}
title={translate('issues.select_all_issues')}
/>
>
{this.renderHeader({ openIssue, paging })}
- <Spinner loading={loadingRule}>
+ <Spinner isLoading={loadingRule}>
{openIssue && openRuleDetails ? (
<IssueTabViewer
activityTabContent={
<Spinner
ariaLabel={translate('issues.loading_issues')}
className="sw-mt-4"
- loading={loading}
+ isLoading={loading}
>
{checkAll && paging && paging.total > MAX_PAGE_SIZE && (
<div className="sw-mt-3">
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import { ActionCell, Badge, Checkbox, ContentCell, HoverLink, Note, TableRow } from 'design-system';
+
+import { Checkbox, LinkHighlight, LinkStandalone } from '@sonarsource/echoes-react';
+import { ActionCell, Badge, ContentCell, Note, TableRow } from 'design-system';
import * as React from 'react';
import { Project } from '../../api/project-management';
import PrivacyBadgeContainer from '../../components/common/PrivacyBadgeContainer';
selected: boolean;
}
-export default function ProjectRow(props: Props) {
+export default function ProjectRow(props: Readonly<Props>) {
const { currentUser, project, selected } = props;
const { data: githubProvisioningEnabled } = useGithubProvisioningEnabledQuery();
<TableRow data-project-key={project.key}>
<ContentCell>
<Checkbox
- label={translateWithParameters('projects_management.select_project', project.name)}
+ ariaLabel={translateWithParameters('projects_management.select_project', project.name)}
checked={selected}
onCheck={handleProjectCheck}
/>
</ContentCell>
<ContentCell className="it__project-row-text-cell">
- <HoverLink to={getComponentOverviewUrl(project.key, project.qualifier)}>
+ <LinkStandalone
+ highlight={LinkHighlight.CurrentColor}
+ to={getComponentOverviewUrl(project.key, project.qualifier)}
+ >
<Tooltip overlay={project.name} placement="left">
<span>{project.name}</span>
</Tooltip>
- </HoverLink>
+ </LinkStandalone>
{project.qualifier === ComponentQualifier.Project &&
githubProvisioningEnabled &&
!project.managed && <Badge className="sw-ml-1">{translate('local')}</Badge>}
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+import { Checkbox } from '@sonarsource/echoes-react';
import {
Badge,
BasicSeparator,
- Checkbox,
HelperHintIcon,
InputSearch,
SubnavigationAccordion,
/>
<div className="sw-mt-4 sw-flex sw-items-center">
- <Checkbox checked={showInternal} onCheck={() => setShowInternal((prev) => !prev)}>
- <span className="sw-ml-2">{translate('api_documentation.show_internal_v2')}</span>
- </Checkbox>
+ <Checkbox
+ checked={showInternal}
+ label={translate('api_documentation.show_internal_v2')}
+ onCheck={() => setShowInternal((prev) => !prev)}
+ />
<HelpTooltip
className="sw-ml-2"
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+
import styled from '@emotion/styled';
+import { Checkbox } from '@sonarsource/echoes-react';
import classNames from 'classnames';
-import { BasicSeparator, Checkbox, themeBorder } from 'design-system';
+import { BasicSeparator, themeBorder } from 'design-system';
import * as React from 'react';
import { deleteIssueComment, editIssueComment } from '../../../api/issues';
import { translate, translateWithParameters } from '../../../helpers/l10n';
{hasCheckbox && (
<span className="sw-mt-1/2 sw-ml-1 sw-self-start">
<Checkbox
+ ariaLabel={translateWithParameters('issues.action_select.label', issue.message)}
checked={checked ?? false}
onCheck={this.handleCheck}
- label={translateWithParameters('issues.action_select.label', issue.message)}
title={translate('issues.action_select')}
/>
</span>
languageName: node
linkType: hard
-"@sonarsource/echoes-react@npm:0.1.1":
- version: 0.1.1
- resolution: "@sonarsource/echoes-react@npm:0.1.1"
+"@sonarsource/echoes-react@npm:0.1.2":
+ version: 0.1.2
+ resolution: "@sonarsource/echoes-react@npm:0.1.2"
dependencies:
"@primer/octicons-react": "npm:19.8.0"
"@radix-ui/react-checkbox": "npm:1.0.4"
react-dom: ^17.0.0 || ^18.0.0
react-intl: ^6.0.0
react-router-dom: ^6.0.0
- checksum: 10/9d9901397aeef7faba3262281b919a186aeba5aaf3f27073a7895a0fe96fc2a2a5fb1ba9a4959401d11396e585075065cc4f18cff2ce8eabc48235032239d130
+ checksum: 10/fc25b30ed8ffa0186eb206ef2e71b444c334b4a350eb3e9e71874a064b9fe590b525ad2f1459d5d9de7882fb8be899a2a9e6154df758406900a5380f8e3810c2
languageName: node
linkType: hard
"@primer/octicons-react": "npm:19.8.0"
"@react-spring/rafz": "npm:9.7.3"
"@react-spring/web": "npm:9.7.3"
- "@sonarsource/echoes-react": "npm:0.1.1"
+ "@sonarsource/echoes-react": "npm:0.1.2"
"@swc/core": "npm:1.4.0"
"@swc/jest": "npm:0.2.36"
"@tanstack/react-query": "npm:5.18.1"