@atlaskit/checkbox 12.5.0 → 12.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/checkbox
2
2
 
3
+ ## 12.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`8d0fd2d3f6c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d0fd2d3f6c) - [ux] reduce stroke width from 2px to 1px with new color to meet contrast requirement
8
+
3
9
  ## 12.5.0
4
10
 
5
11
  ### Minor Changes
@@ -12,6 +12,7 @@ var _react = require("react");
12
12
  var _react2 = require("@emotion/react");
13
13
  var _usePlatformLeafEventHandler = require("@atlaskit/analytics-next/usePlatformLeafEventHandler");
14
14
  var _mergeRefs = _interopRequireDefault(require("@atlaskit/ds-lib/merge-refs"));
15
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
16
  var _internal = require("./internal");
16
17
  var _excluded = ["isChecked", "isDisabled", "isInvalid", "defaultChecked", "isIndeterminate", "size", "onChange", "analyticsContext", "label", "name", "value", "isRequired", "testId"];
17
18
  /** @jsx jsx */
@@ -42,7 +43,7 @@ var checkboxStyles = (0, _react2.css)({
42
43
  transition: 'color 0.2s ease-in-out, fill 0.2s ease-in-out',
43
44
  'rect:first-of-type': {
44
45
  stroke: 'var(--checkbox-border-color)',
45
- strokeWidth: 2,
46
+ strokeWidth: (0, _platformFeatureFlags.getBooleanFF)('platform.design-system-team.update-border-input_ff9l1') ? 1 : 2,
46
47
  transition: 'stroke 0.2s ease-in-out'
47
48
  }
48
49
  },
@@ -160,7 +161,7 @@ var Checkbox = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
160
161
  analyticsData: analyticsContext,
161
162
  componentName: 'checkbox',
162
163
  packageName: "@atlaskit/checkbox",
163
- packageVersion: "12.5.0"
164
+ packageVersion: "12.6.0"
164
165
  });
165
166
  var internalRef = (0, _react.useRef)(null);
166
167
  var mergedRefs = (0, _mergeRefs.default)([internalRef, ref]);
@@ -4,12 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
7
8
  var _colors = require("@atlaskit/theme/colors");
8
9
  var theme = {
9
10
  light: {
10
11
  borderColor: {
11
- rest: "var(--ds-border-input, ".concat(_colors.N40, ")"),
12
- hovered: "var(--ds-border-input, ".concat(_colors.N40, ")"),
12
+ rest: "var(--ds-border-input, ".concat((0, _platformFeatureFlags.getBooleanFF)('platform.design-system-team.update-border-input_ff9l1') ? _colors.N100 : _colors.N40, ")"),
13
+ hovered: "var(--ds-border-input, ".concat((0, _platformFeatureFlags.getBooleanFF)('platform.design-system-team.update-border-input_ff9l1') ? _colors.N100 : _colors.N40, ")"),
13
14
  disabled: "var(--ds-background-disabled, ".concat(_colors.N20, ")"),
14
15
  checked: "var(--ds-background-selected-bold, ".concat(_colors.B400, ")"),
15
16
  active: "var(--ds-border, ".concat(_colors.B50, ")"),
@@ -34,7 +35,7 @@ var theme = {
34
35
  },
35
36
  dark: {
36
37
  borderColor: {
37
- rest: "var(--ds-border-input, ".concat(_colors.DN80, ")"),
38
+ rest: "var(--ds-border-input, ".concat((0, _platformFeatureFlags.getBooleanFF)('platform.design-system-team.update-border-input_ff9l1') ? _colors.DN200 : _colors.DN80, ")"),
38
39
  hovered: "var(--ds-border-input, ".concat(_colors.DN200, ")"),
39
40
  disabled: "var(--ds-background-disabled, ".concat(_colors.DN10, ")"),
40
41
  checked: "var(--ds-background-selected-bold, ".concat(_colors.B400, ")"),
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/checkbox",
3
- "version": "12.5.0",
3
+ "version": "12.6.0",
4
4
  "sideEffects": false
5
5
  }
@@ -4,6 +4,7 @@ import { forwardRef, memo, useCallback, useRef, useState } from 'react';
4
4
  import { css, jsx } from '@emotion/react';
5
5
  import { usePlatformLeafEventHandler } from '@atlaskit/analytics-next/usePlatformLeafEventHandler';
6
6
  import mergeRefs from '@atlaskit/ds-lib/merge-refs';
7
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
7
8
  import { CheckboxIcon, Label, LabelText, RequiredIndicator } from './internal';
8
9
  /* eslint-disable @repo/internal/styles/no-nested-styles */
9
10
  const checkboxStyles = css({
@@ -32,7 +33,7 @@ const checkboxStyles = css({
32
33
  transition: 'color 0.2s ease-in-out, fill 0.2s ease-in-out',
33
34
  'rect:first-of-type': {
34
35
  stroke: 'var(--checkbox-border-color)',
35
- strokeWidth: 2,
36
+ strokeWidth: getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? 1 : 2,
36
37
  transition: 'stroke 0.2s ease-in-out'
37
38
  }
38
39
  },
@@ -144,7 +145,7 @@ const Checkbox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Checkbox(pr
144
145
  analyticsData: analyticsContext,
145
146
  componentName: 'checkbox',
146
147
  packageName: "@atlaskit/checkbox",
147
- packageVersion: "12.5.0"
148
+ packageVersion: "12.6.0"
148
149
  });
149
150
  const internalRef = useRef(null);
150
151
  const mergedRefs = mergeRefs([internalRef, ref]);
@@ -1,9 +1,10 @@
1
- import { B100, B200, B300, B400, B50, B75, DN10, DN200, DN30, DN80, DN90, N10, N20, N30, N40, N70, R300 } from '@atlaskit/theme/colors';
1
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
2
+ import { B100, B200, B300, B400, B50, B75, DN10, DN200, DN30, DN80, DN90, N10, N100, N20, N30, N40, N70, R300 } from '@atlaskit/theme/colors';
2
3
  const theme = {
3
4
  light: {
4
5
  borderColor: {
5
- rest: `var(--ds-border-input, ${N40})`,
6
- hovered: `var(--ds-border-input, ${N40})`,
6
+ rest: `var(--ds-border-input, ${getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? N100 : N40})`,
7
+ hovered: `var(--ds-border-input, ${getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? N100 : N40})`,
7
8
  disabled: `var(--ds-background-disabled, ${N20})`,
8
9
  checked: `var(--ds-background-selected-bold, ${B400})`,
9
10
  active: `var(--ds-border, ${B50})`,
@@ -28,7 +29,7 @@ const theme = {
28
29
  },
29
30
  dark: {
30
31
  borderColor: {
31
- rest: `var(--ds-border-input, ${DN80})`,
32
+ rest: `var(--ds-border-input, ${getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? DN200 : DN80})`,
32
33
  hovered: `var(--ds-border-input, ${DN200})`,
33
34
  disabled: `var(--ds-background-disabled, ${DN10})`,
34
35
  checked: `var(--ds-background-selected-bold, ${B400})`,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/checkbox",
3
- "version": "12.5.0",
3
+ "version": "12.6.0",
4
4
  "sideEffects": false
5
5
  }
@@ -7,6 +7,7 @@ import { forwardRef, memo, useCallback, useRef, useState } from 'react';
7
7
  import { css, jsx } from '@emotion/react';
8
8
  import { usePlatformLeafEventHandler } from '@atlaskit/analytics-next/usePlatformLeafEventHandler';
9
9
  import mergeRefs from '@atlaskit/ds-lib/merge-refs';
10
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
10
11
  import { CheckboxIcon, Label, LabelText, RequiredIndicator } from './internal';
11
12
  /* eslint-disable @repo/internal/styles/no-nested-styles */
12
13
  var checkboxStyles = css({
@@ -35,7 +36,7 @@ var checkboxStyles = css({
35
36
  transition: 'color 0.2s ease-in-out, fill 0.2s ease-in-out',
36
37
  'rect:first-of-type': {
37
38
  stroke: 'var(--checkbox-border-color)',
38
- strokeWidth: 2,
39
+ strokeWidth: getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? 1 : 2,
39
40
  transition: 'stroke 0.2s ease-in-out'
40
41
  }
41
42
  },
@@ -153,7 +154,7 @@ var Checkbox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Checkbox(prop
153
154
  analyticsData: analyticsContext,
154
155
  componentName: 'checkbox',
155
156
  packageName: "@atlaskit/checkbox",
156
- packageVersion: "12.5.0"
157
+ packageVersion: "12.6.0"
157
158
  });
158
159
  var internalRef = useRef(null);
159
160
  var mergedRefs = mergeRefs([internalRef, ref]);
@@ -1,9 +1,10 @@
1
- import { B100, B200, B300, B400, B50, B75, DN10, DN200, DN30, DN80, DN90, N10, N20, N30, N40, N70, R300 } from '@atlaskit/theme/colors';
1
+ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
2
+ import { B100, B200, B300, B400, B50, B75, DN10, DN200, DN30, DN80, DN90, N10, N100, N20, N30, N40, N70, R300 } from '@atlaskit/theme/colors';
2
3
  var theme = {
3
4
  light: {
4
5
  borderColor: {
5
- rest: "var(--ds-border-input, ".concat(N40, ")"),
6
- hovered: "var(--ds-border-input, ".concat(N40, ")"),
6
+ rest: "var(--ds-border-input, ".concat(getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? N100 : N40, ")"),
7
+ hovered: "var(--ds-border-input, ".concat(getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? N100 : N40, ")"),
7
8
  disabled: "var(--ds-background-disabled, ".concat(N20, ")"),
8
9
  checked: "var(--ds-background-selected-bold, ".concat(B400, ")"),
9
10
  active: "var(--ds-border, ".concat(B50, ")"),
@@ -28,7 +29,7 @@ var theme = {
28
29
  },
29
30
  dark: {
30
31
  borderColor: {
31
- rest: "var(--ds-border-input, ".concat(DN80, ")"),
32
+ rest: "var(--ds-border-input, ".concat(getBooleanFF('platform.design-system-team.update-border-input_ff9l1') ? DN200 : DN80, ")"),
32
33
  hovered: "var(--ds-border-input, ".concat(DN200, ")"),
33
34
  disabled: "var(--ds-background-disabled, ".concat(DN10, ")"),
34
35
  checked: "var(--ds-background-selected-bold, ".concat(B400, ")"),
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/checkbox",
3
- "version": "12.5.0",
3
+ "version": "12.6.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * __Checkbox__
4
+ *
5
+ * A checkbox an input control that allows a user to select one or more options from a number of choices.
6
+ *
7
+ * - [Examples](https://atlassian.design/components/checkbox/examples)
8
+ * - [Code](https://atlassian.design/components/checkbox/code)
9
+ * - [Usage](https://atlassian.design/components/checkbox/usage)
10
+ */
11
+ declare const Checkbox: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<Omit<Omit<import("react").InputHTMLAttributes<HTMLInputElement>, "disabled" | "required" | "checked" | "css">, keyof import("./types").OwnProps> & import("./types").OwnProps & import("react").RefAttributes<HTMLInputElement>>>;
12
+ export default Checkbox;
@@ -0,0 +1,2 @@
1
+ export { default, default as Checkbox } from './checkbox';
2
+ export type { CheckboxProps } from './types';
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import type { Size } from '../types';
3
+ /**
4
+ * __Checkbox icon__
5
+ *
6
+ * A checkbox icon is the visual representation of checkbox state,
7
+ * which is shown instead of the native input.
8
+ *
9
+ * @internal
10
+ */
11
+ declare const CheckboxIcon: import("react").NamedExoticComponent<{
12
+ size: Size;
13
+ isIndeterminate: boolean;
14
+ isChecked: boolean;
15
+ }>;
16
+ export default CheckboxIcon;
@@ -0,0 +1,2 @@
1
+ export declare const fontFamily: string;
2
+ export declare const gridSize: number;
@@ -0,0 +1,4 @@
1
+ export { default as CheckboxIcon } from './checkbox-icon';
2
+ export { default as Label } from './label';
3
+ export { default as LabelText } from './label-text';
4
+ export { default as RequiredIndicator } from './required-indicator';
@@ -0,0 +1,4 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ import { LabelTextProps } from '../types';
4
+ export default function LabelText({ children }: LabelTextProps): jsx.JSX.Element;
@@ -0,0 +1,4 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ import { LabelProps } from '../types';
4
+ export default function Label({ children, isDisabled, testId, onClick, label, id, }: LabelProps): jsx.JSX.Element;
@@ -0,0 +1,3 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ export default function RequiredIndicator(): jsx.JSX.Element;
@@ -0,0 +1,55 @@
1
+ declare const theme: {
2
+ light: {
3
+ borderColor: {
4
+ rest: "var(--ds-border-input)";
5
+ hovered: "var(--ds-border-input)";
6
+ disabled: "var(--ds-background-disabled)";
7
+ checked: "var(--ds-background-selected-bold)";
8
+ active: "var(--ds-border)";
9
+ invalid: "var(--ds-border-danger)";
10
+ invalidAndChecked: "var(--ds-border-danger)";
11
+ focused: "var(--ds-border-focused)";
12
+ hoveredAndChecked: "var(--ds-background-selected-bold-hovered)";
13
+ };
14
+ boxColor: {
15
+ rest: "var(--ds-background-input)";
16
+ hovered: "var(--ds-background-input-hovered)";
17
+ disabled: "var(--ds-background-disabled)";
18
+ active: "var(--ds-background-input-pressed)";
19
+ hoveredAndChecked: "var(--ds-background-selected-bold-hovered)";
20
+ checked: "var(--ds-background-selected-bold)";
21
+ };
22
+ tickColor: {
23
+ disabledAndChecked: "var(--ds-icon-disabled)";
24
+ activeAndChecked: "var(--ds-icon-inverse)";
25
+ checked: "var(--ds-icon-inverse)";
26
+ };
27
+ };
28
+ dark: {
29
+ borderColor: {
30
+ rest: "var(--ds-border-input)";
31
+ hovered: "var(--ds-border-input)";
32
+ disabled: "var(--ds-background-disabled)";
33
+ checked: "var(--ds-background-selected-bold)";
34
+ active: "var(--ds-border)";
35
+ invalid: "var(--ds-border-danger)";
36
+ invalidAndChecked: "var(--ds-border-danger)";
37
+ focused: "var(--ds-border-focused)";
38
+ hoveredAndChecked: "var(--ds-background-selected-bold-hovered)";
39
+ };
40
+ boxColor: {
41
+ rest: "var(--ds-background-input)";
42
+ hovered: "var(--ds-background-input-hovered)";
43
+ disabled: "var(--ds-background-disabled)";
44
+ active: "var(--ds-background-input-pressed)";
45
+ hoveredAndChecked: "var(--ds-background-selected-bold-hovered)";
46
+ checked: "var(--ds-background-selected-bold)";
47
+ };
48
+ tickColor: {
49
+ disabledAndChecked: "var(--ds-icon-disabled)";
50
+ activeAndChecked: "var(--ds-icon-inverse)";
51
+ checked: "var(--ds-icon-inverse)";
52
+ };
53
+ };
54
+ };
55
+ export default theme;
@@ -0,0 +1,103 @@
1
+ import React from 'react';
2
+ import type UIAnalyticsEvent from '@atlaskit/analytics-next/UIAnalyticsEvent';
3
+ export declare type Size = 'small' | 'medium' | 'large' | 'xlarge';
4
+ /**
5
+ *
6
+ *
7
+ * CHECKBOX PROPTYPES
8
+ *
9
+ *
10
+ */
11
+ export declare type OwnProps = {
12
+ /**
13
+ * Sets whether the checkbox begins checked.
14
+ */
15
+ defaultChecked?: boolean;
16
+ /**
17
+ * id assigned to input
18
+ */
19
+ id?: string;
20
+ /**
21
+ * Sets whether the checkbox is checked or unchecked.
22
+ */
23
+ isChecked?: boolean;
24
+ /**
25
+ * Sets whether the checkbox is disabled.
26
+ */
27
+ isDisabled?: boolean;
28
+ /**
29
+ * Sets whether the checkbox is indeterminate. This only affects the
30
+ * style and does not modify the isChecked property.
31
+ */
32
+ isIndeterminate?: boolean;
33
+ /**
34
+ * Marks the field as invalid. Changes style of unchecked component.
35
+ */
36
+ isInvalid?: boolean;
37
+ /**
38
+ * Marks the field as required & changes the label style.
39
+ */
40
+ isRequired?: boolean;
41
+ /**
42
+ * The label to be displayed to the right of the checkbox. The label is part
43
+ * of the clickable element to select the checkbox.
44
+ */
45
+ label?: React.ReactChild;
46
+ /**
47
+ * The name of the submitted field in a checkbox.
48
+ */
49
+ name?: string;
50
+ /**
51
+ * Function that is called whenever the state of the checkbox changes. It will
52
+ * be called with an object containing the react synthetic event. Use currentTarget to get value, name and checked
53
+ */
54
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>, analyticsEvent: UIAnalyticsEvent) => void;
55
+ /**
56
+ * The value to be used in the checkbox input. This is the value that will be returned on form submission.
57
+ */
58
+ value?: number | string;
59
+ /**
60
+ * The size of the Checkbox
61
+ */
62
+ size?: Size;
63
+ /**
64
+ * A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests
65
+ * we have generated testid based on the one you pass to the Checkbox component:
66
+ * - `{testId}--hidden-checkbox` to check if it got changed to checked/unchecked.
67
+ */
68
+ testId?: string;
69
+ /**
70
+ * Additional information to be included in the `context` of analytics events that come from radio
71
+ */
72
+ analyticsContext?: Record<string, any>;
73
+ };
74
+ declare type Combine<First, Second> = Omit<First, keyof Second> & Second;
75
+ export declare type CheckboxProps = Combine<Omit<React.InputHTMLAttributes<HTMLInputElement>,
76
+ /**
77
+ * 'disabled', 'required', and 'checked' are omitted so that
78
+ * consumers must handle state using our props.
79
+ *
80
+ * 'css' is added globally to element attributes by emotion.
81
+ * This was causing a bug, making the css prop required in
82
+ * some cases. We explicitly omit it to avoid that.
83
+ *
84
+ * Because 'className' (which the css prop uses internally)
85
+ * is still available, this should not break existing usage.
86
+ */
87
+ 'disabled' | 'required' | 'checked' | 'css'>, OwnProps>;
88
+ export interface LabelTextProps extends React.HTMLProps<HTMLSpanElement> {
89
+ children: React.ReactNode;
90
+ }
91
+ export interface LabelProps extends React.HTMLProps<HTMLInputElement> {
92
+ isDisabled?: boolean;
93
+ /**
94
+ * A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests
95
+ */
96
+ testId?: string;
97
+ /**
98
+ * Click handler that is conditionally applied for Firefox
99
+ * as Firefox does not dispatch modified click events (e.g. Ctrl+Click) down to the underlying input element
100
+ */
101
+ onClick?: React.MouseEventHandler;
102
+ }
103
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/checkbox",
3
- "version": "12.5.0",
3
+ "version": "12.6.0",
4
4
  "description": "A checkbox is an input control that allows a user to select one or more options from a number of choices.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -29,6 +29,7 @@
29
29
  "@atlaskit/analytics-next": "^9.1.0",
30
30
  "@atlaskit/ds-lib": "^2.2.0",
31
31
  "@atlaskit/icon": "^21.12.0",
32
+ "@atlaskit/platform-feature-flags": "^0.2.0",
32
33
  "@atlaskit/theme": "^12.5.0",
33
34
  "@atlaskit/tokens": "^1.3.0",
34
35
  "@babel/runtime": "^7.0.0",
@@ -47,6 +48,7 @@
47
48
  "@atlaskit/visual-regression": "*",
48
49
  "@atlaskit/webdriver-runner": "*",
49
50
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
51
+ "@atlassian/feature-flags-test-utils": "*",
50
52
  "@testing-library/react": "^12.1.5",
51
53
  "jscodeshift": "^0.13.0",
52
54
  "react-dom": "^16.8.0",
@@ -79,6 +81,11 @@
79
81
  ]
80
82
  }
81
83
  },
84
+ "platform-feature-flags": {
85
+ "platform.design-system-team.update-border-input_ff9l1": {
86
+ "type": "boolean"
87
+ }
88
+ },
82
89
  "homepage": "https://atlassian.design/components/checkbox/",
83
90
  "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1"
84
91
  }