@atlaskit/form 8.4.5 → 8.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/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @atlaskit/form
2
2
 
3
+ ## 8.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`c987bb60a89`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c987bb60a89) - Exposes an additional Label component in `@atlaskit/form` - this component is designed to be wrapped by the Field component but there are certain use cases that require a Label on its own. This is to fulfill those use cases.
8
+
9
+ ### Patch Changes
10
+
11
+ - [`58884c2f6c1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/58884c2f6c1) - Internal code change turning on a new linting rule.
12
+
13
+ ## 8.4.8
14
+
15
+ ### Patch Changes
16
+
17
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Updates usage of deprecated token names so they're aligned with the latest naming conventions. No UI or visual changes
18
+ - [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Bump dependency tiny-invariant to latest"
19
+ - Updated dependencies
20
+
21
+ ## 8.4.7
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies
26
+
27
+ ## 8.4.6
28
+
29
+ ### Patch Changes
30
+
31
+ - [`c55c736ecea`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c55c736ecea) - Patch VULN AFP-3486 AFP-3487 AFP-3488 AFP-3489
32
+
3
33
  ## 8.4.5
4
34
 
5
35
  ### Patch Changes
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@atlaskit/form/Label",
3
+ "main": "../dist/cjs/entry-points/label.js",
4
+ "module": "../dist/esm/entry-points/label.js",
5
+ "module:es2019": "../dist/es2019/entry-points/label.js",
6
+ "types": "../dist/types/entry-points/label.d.ts"
7
+ }
@@ -21,13 +21,19 @@ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _field = _interopRequireDefault(require("./field"));
23
23
 
24
+ var _excluded = ["children", "defaultIsChecked", "value"],
25
+ _excluded2 = ["value"],
26
+ _excluded3 = ["fieldProps"],
27
+ _excluded4 = ["value"],
28
+ _excluded5 = ["fieldProps"];
29
+
24
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
31
 
26
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
33
 
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
35
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
37
 
32
38
  /**
33
39
  * __Checkbox field__
@@ -43,7 +49,7 @@ var CheckboxField = function CheckboxField(props) {
43
49
  _props$defaultIsCheck = props.defaultIsChecked,
44
50
  defaultIsChecked = _props$defaultIsCheck === void 0 ? false : _props$defaultIsCheck,
45
51
  value = props.value,
46
- rest = (0, _objectWithoutProperties2.default)(props, ["children", "defaultIsChecked", "value"]); // Maintains a memoised list of the default values
52
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded); // Maintains a memoised list of the default values
47
53
 
48
54
  var defaultValue = (0, _react.useCallback)(function () {
49
55
  var currentValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -59,8 +65,8 @@ var CheckboxField = function CheckboxField(props) {
59
65
  }), function (_ref) {
60
66
  var _ref$fieldProps = _ref.fieldProps,
61
67
  fieldValue = _ref$fieldProps.value,
62
- otherFieldProps = (0, _objectWithoutProperties2.default)(_ref$fieldProps, ["value"]),
63
- others = (0, _objectWithoutProperties2.default)(_ref, ["fieldProps"]);
68
+ otherFieldProps = (0, _objectWithoutProperties2.default)(_ref$fieldProps, _excluded2),
69
+ others = (0, _objectWithoutProperties2.default)(_ref, _excluded3);
64
70
  return children(_objectSpread({
65
71
  fieldProps: _objectSpread(_objectSpread({}, otherFieldProps), {}, {
66
72
  isChecked: !!fieldValue.find(function (v) {
@@ -77,8 +83,8 @@ var CheckboxField = function CheckboxField(props) {
77
83
  }), function (_ref2) {
78
84
  var _ref2$fieldProps = _ref2.fieldProps,
79
85
  fieldValue = _ref2$fieldProps.value,
80
- otherFieldProps = (0, _objectWithoutProperties2.default)(_ref2$fieldProps, ["value"]),
81
- others = (0, _objectWithoutProperties2.default)(_ref2, ["fieldProps"]);
86
+ otherFieldProps = (0, _objectWithoutProperties2.default)(_ref2$fieldProps, _excluded4),
87
+ others = (0, _objectWithoutProperties2.default)(_ref2, _excluded5);
82
88
  return children(_objectSpread({
83
89
  fieldProps: _objectSpread(_objectSpread({}, otherFieldProps), {}, {
84
90
  isChecked: fieldValue,
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "Label", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _label.default;
12
+ }
13
+ });
14
+
15
+ var _label = _interopRequireDefault(require("../label"));
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "HelperMessage", {
6
+ Object.defineProperty(exports, "ErrorMessage", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _messages.HelperMessage;
9
+ return _messages.ErrorMessage;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "ErrorMessage", {
12
+ Object.defineProperty(exports, "HelperMessage", {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _messages.ErrorMessage;
15
+ return _messages.HelperMessage;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "ValidMessage", {
package/dist/cjs/field.js CHANGED
@@ -2,13 +2,11 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.default = Field;
11
8
  exports.FieldId = void 0;
9
+ exports.default = Field;
12
10
 
13
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
12
 
@@ -16,7 +14,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
16
14
 
17
15
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
18
16
 
19
- var _react = _interopRequireWildcard(require("react"));
17
+ var _react = require("react");
20
18
 
21
19
  var _core = require("@emotion/core");
22
20
 
@@ -26,64 +24,26 @@ var _tinyInvariant = _interopRequireDefault(require("tiny-invariant"));
26
24
 
27
25
  var _colors = require("@atlaskit/theme/colors");
28
26
 
29
- var _components = require("@atlaskit/theme/components");
30
-
31
27
  var _constants = require("@atlaskit/theme/constants");
32
28
 
33
- var _typography = require("@atlaskit/theme/typography");
34
-
35
29
  var _form = require("./form");
36
30
 
37
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
-
39
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+ var _label = _interopRequireDefault(require("./label"));
40
32
 
41
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
42
34
 
43
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
44
36
 
45
37
  var gridSize = (0, _constants.gridSize)();
46
38
  var fontFamily = (0, _constants.fontFamily)();
47
39
  var fieldWrapperStyles = (0, _core.css)({
48
- marginTop: "".concat(gridSize, "px")
49
- });
50
- var labelStyles = (0, _core.css)({
51
- display: 'inline-block',
52
- marginTop: 0,
53
- marginBottom: "".concat(gridSize * 0.5, "px"),
54
- fontFamily: "".concat(fontFamily)
40
+ marginTop: gridSize
55
41
  });
56
42
  var requiredIndicatorStyles = (0, _core.css)({
57
- paddingLeft: "".concat(gridSize * 0.25, "px"),
58
- color: "".concat("var(--ds-text-danger, ".concat(_colors.R400, ")")),
59
- fontFamily: "".concat(fontFamily)
60
- }); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
61
-
62
- var lightH200Styles = (0, _core.css)((0, _typography.h200)({
63
- theme: {
64
- mode: 'light'
65
- }
66
- })); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
67
-
68
- var darkH200Styles = (0, _core.css)((0, _typography.h200)({
69
- theme: {
70
- mode: 'dark'
71
- }
72
- }));
73
-
74
- var Label = function Label(_ref) {
75
- var children = _ref.children,
76
- fieldId = _ref.fieldId;
77
-
78
- var _useGlobalTheme = (0, _components.useGlobalTheme)(),
79
- mode = _useGlobalTheme.mode;
80
-
81
- return (0, _core.jsx)("label", {
82
- css: [mode === 'light' ? lightH200Styles : darkH200Styles, labelStyles],
83
- id: "".concat(fieldId, "-label"),
84
- htmlFor: fieldId
85
- }, children);
86
- };
43
+ paddingLeft: "".concat(gridSize / 4, "px"),
44
+ color: "var(--ds-text-danger, ".concat(_colors.R400, ")"),
45
+ fontFamily: fontFamily
46
+ });
87
47
 
88
48
  function isEvent(event) {
89
49
  return Boolean(event && event.target);
@@ -98,8 +58,7 @@ function isFunction(x) {
98
58
  *
99
59
  * A field id uses the context API. It provides the id of the field to message components. This links the message with the field of screenreaders.
100
60
  */
101
- var FieldId = /*#__PURE__*/_react.default.createContext(undefined);
102
-
61
+ var FieldId = /*#__PURE__*/(0, _react.createContext)(undefined);
103
62
  exports.FieldId = FieldId;
104
63
 
105
64
  function usePreviousRef(current) {
@@ -309,8 +268,9 @@ function Field(props) {
309
268
 
310
269
  return (0, _core.jsx)("div", {
311
270
  css: fieldWrapperStyles
312
- }, props.label && (0, _core.jsx)(Label, {
313
- fieldId: fieldId
271
+ }, props.label && (0, _core.jsx)(_label.default, {
272
+ htmlFor: fieldId,
273
+ id: "".concat(fieldId, "-label")
314
274
  }, props.label, props.isRequired && (0, _core.jsx)("span", {
315
275
  css: requiredIndicatorStyles,
316
276
  "aria-hidden": "true"
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FormHeaderTitle = exports.FormHeaderDescription = exports.FormHeaderContent = exports.default = void 0;
6
+ exports.default = exports.FormHeaderTitle = exports.FormHeaderDescription = exports.FormHeaderContent = void 0;
7
7
 
8
8
  var _core = require("@emotion/core");
9
9
 
@@ -100,7 +100,7 @@ var FormHeader = function FormHeader(_ref5) {
100
100
  var children = _ref5.children,
101
101
  description = _ref5.description,
102
102
  title = _ref5.title;
103
- return (0, _core.jsx)(FormHeaderWrapper, null, title && (0, _core.jsx)(FormHeaderTitle, null, title), description && (0, _core.jsx)(FormHeaderDescription, null, description), (0, _core.jsx)(FormHeaderContent, null, children));
103
+ return (0, _core.jsx)(FormHeaderWrapper, null, title && (0, _core.jsx)(FormHeaderTitle, null, title), description && (0, _core.jsx)(FormHeaderDescription, null, description), children && (0, _core.jsx)(FormHeaderContent, null, children));
104
104
  };
105
105
 
106
106
  var _default = FormHeader;
package/dist/cjs/form.js CHANGED
@@ -7,8 +7,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = Form;
11
10
  exports.IsDisabledContext = exports.FormContext = void 0;
11
+ exports.default = Form;
12
12
 
13
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
14
 
package/dist/cjs/index.js CHANGED
@@ -5,46 +5,46 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "default", {
8
+ Object.defineProperty(exports, "CheckboxField", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _form.default;
11
+ return _checkboxField.default;
12
12
  }
13
13
  });
14
- Object.defineProperty(exports, "FormHeader", {
14
+ Object.defineProperty(exports, "ErrorMessage", {
15
15
  enumerable: true,
16
16
  get: function get() {
17
- return _formHeader.default;
17
+ return _messages.ErrorMessage;
18
18
  }
19
19
  });
20
- Object.defineProperty(exports, "FormFooter", {
20
+ Object.defineProperty(exports, "Field", {
21
21
  enumerable: true,
22
22
  get: function get() {
23
- return _formFooter.default;
23
+ return _field.default;
24
24
  }
25
25
  });
26
- Object.defineProperty(exports, "FormSection", {
26
+ Object.defineProperty(exports, "Fieldset", {
27
27
  enumerable: true,
28
28
  get: function get() {
29
- return _formSection.default;
29
+ return _fieldset.default;
30
30
  }
31
31
  });
32
- Object.defineProperty(exports, "Field", {
32
+ Object.defineProperty(exports, "FormFooter", {
33
33
  enumerable: true,
34
34
  get: function get() {
35
- return _field.default;
35
+ return _formFooter.default;
36
36
  }
37
37
  });
38
- Object.defineProperty(exports, "CheckboxField", {
38
+ Object.defineProperty(exports, "FormHeader", {
39
39
  enumerable: true,
40
40
  get: function get() {
41
- return _checkboxField.default;
41
+ return _formHeader.default;
42
42
  }
43
43
  });
44
- Object.defineProperty(exports, "RangeField", {
44
+ Object.defineProperty(exports, "FormSection", {
45
45
  enumerable: true,
46
46
  get: function get() {
47
- return _rangeField.default;
47
+ return _formSection.default;
48
48
  }
49
49
  });
50
50
  Object.defineProperty(exports, "HelperMessage", {
@@ -53,10 +53,16 @@ Object.defineProperty(exports, "HelperMessage", {
53
53
  return _messages.HelperMessage;
54
54
  }
55
55
  });
56
- Object.defineProperty(exports, "ErrorMessage", {
56
+ Object.defineProperty(exports, "Label", {
57
57
  enumerable: true,
58
58
  get: function get() {
59
- return _messages.ErrorMessage;
59
+ return _label.default;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "RangeField", {
63
+ enumerable: true,
64
+ get: function get() {
65
+ return _rangeField.default;
60
66
  }
61
67
  });
62
68
  Object.defineProperty(exports, "ValidMessage", {
@@ -65,10 +71,10 @@ Object.defineProperty(exports, "ValidMessage", {
65
71
  return _messages.ValidMessage;
66
72
  }
67
73
  });
68
- Object.defineProperty(exports, "Fieldset", {
74
+ Object.defineProperty(exports, "default", {
69
75
  enumerable: true,
70
76
  get: function get() {
71
- return _fieldset.default;
77
+ return _form.default;
72
78
  }
73
79
  });
74
80
 
@@ -86,6 +92,8 @@ var _checkboxField = _interopRequireDefault(require("./checkbox-field"));
86
92
 
87
93
  var _rangeField = _interopRequireDefault(require("./range-field"));
88
94
 
95
+ var _label = _interopRequireDefault(require("./label"));
96
+
89
97
  var _messages = require("./messages");
90
98
 
91
99
  var _fieldset = _interopRequireDefault(require("./fieldset"));
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _core = require("@emotion/core");
9
+
10
+ var _components = require("@atlaskit/theme/components");
11
+
12
+ var _constants = require("@atlaskit/theme/constants");
13
+
14
+ var _typography = require("@atlaskit/theme/typography");
15
+
16
+ /** @jsx jsx */
17
+ var fontFamily = (0, _constants.fontFamily)();
18
+ var gridSize = (0, _constants.gridSize)();
19
+ var labelStyles = (0, _core.css)({
20
+ display: 'inline-block',
21
+ marginTop: 0,
22
+ marginBottom: gridSize / 2,
23
+ fontFamily: fontFamily
24
+ }); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
25
+
26
+ var lightH200Styles = (0, _core.css)((0, _typography.h200)({
27
+ theme: {
28
+ mode: 'light'
29
+ }
30
+ })); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
31
+
32
+ var darkH200Styles = (0, _core.css)((0, _typography.h200)({
33
+ theme: {
34
+ mode: 'dark'
35
+ }
36
+ }));
37
+ /**
38
+ * __Label__
39
+ *
40
+ * A label represents a caption for an item in a user interface.
41
+ *
42
+ * It's recommended that a label has a `4px` spacing above its associated
43
+ * control element.
44
+ */
45
+
46
+ var Label = function Label(_ref) {
47
+ var children = _ref.children,
48
+ htmlFor = _ref.htmlFor,
49
+ id = _ref.id;
50
+
51
+ var _useGlobalTheme = (0, _components.useGlobalTheme)(),
52
+ mode = _useGlobalTheme.mode;
53
+
54
+ return (0, _core.jsx)("label", {
55
+ css: [mode === 'light' ? lightH200Styles : darkH200Styles, labelStyles],
56
+ id: id,
57
+ htmlFor: htmlFor
58
+ }, children);
59
+ };
60
+
61
+ var _default = Label;
62
+ exports.default = _default;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ValidMessage = exports.ErrorMessage = exports.HelperMessage = void 0;
8
+ exports.ValidMessage = exports.HelperMessage = exports.ErrorMessage = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
@@ -44,7 +44,7 @@ var messageErrorColorStyles = (0, _core.css)({
44
44
  color: "var(--ds-text-danger, ".concat(_colors.R400, ")")
45
45
  });
46
46
  var messageNeutralColorStyles = (0, _core.css)({
47
- color: "var(--ds-text-lowEmphasis, ".concat(_colors.N200, ")")
47
+ color: "var(--ds-text-subtlest, ".concat(_colors.N200, ")")
48
48
  });
49
49
  var messageValidColorStyles = (0, _core.css)({
50
50
  color: "var(--ds-text-success, ".concat(_colors.G400, ")")
@@ -17,9 +17,13 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _field = _interopRequireDefault(require("./field"));
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20
+ var _excluded = ["children"],
21
+ _excluded2 = ["isInvalid", "isRequired"],
22
+ _excluded3 = ["fieldProps"];
21
23
 
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
27
 
24
28
  /**
25
29
  * __Range field__
@@ -32,20 +36,24 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
32
36
  */
33
37
  var RangeField = function RangeField(props) {
34
38
  var children = props.children,
35
- strippedProps = (0, _objectWithoutProperties2.default)(props, ["children"]); // isInvalid and isRequired are specifically invalid for range inputs
36
-
37
- return /*#__PURE__*/_react.default.createElement(_field.default, (0, _extends2.default)({}, strippedProps, {
38
- transform: Number
39
- }), function (_ref) {
40
- var _ref$fieldProps = _ref.fieldProps,
41
- isInvalid = _ref$fieldProps.isInvalid,
42
- isRequired = _ref$fieldProps.isRequired,
43
- fieldProps = (0, _objectWithoutProperties2.default)(_ref$fieldProps, ["isInvalid", "isRequired"]),
44
- rest = (0, _objectWithoutProperties2.default)(_ref, ["fieldProps"]);
45
- return children(_objectSpread({
46
- fieldProps: fieldProps
47
- }, rest));
48
- });
39
+ strippedProps = (0, _objectWithoutProperties2.default)(props, _excluded); // isInvalid and isRequired are specifically invalid for range inputs
40
+
41
+ return (
42
+ /*#__PURE__*/
43
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
44
+ _react.default.createElement(_field.default, (0, _extends2.default)({}, strippedProps, {
45
+ transform: Number
46
+ }), function (_ref) {
47
+ var _ref$fieldProps = _ref.fieldProps,
48
+ isInvalid = _ref$fieldProps.isInvalid,
49
+ isRequired = _ref$fieldProps.isRequired,
50
+ fieldProps = (0, _objectWithoutProperties2.default)(_ref$fieldProps, _excluded2),
51
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded3);
52
+ return children(_objectSpread({
53
+ fieldProps: fieldProps
54
+ }, rest));
55
+ })
56
+ );
49
57
  };
50
58
 
51
59
  var _default = RangeField;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/form",
3
- "version": "8.4.5",
3
+ "version": "8.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1 @@
1
+ export { default as Label } from '../label';
@@ -1,55 +1,22 @@
1
1
  /** @jsx jsx */
2
- import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { createContext, useContext, useEffect, useMemo, useRef, useState } from 'react';
3
3
  import { css, jsx } from '@emotion/core';
4
4
  import { uid } from 'react-uid';
5
5
  import invariant from 'tiny-invariant';
6
6
  import { R400 } from '@atlaskit/theme/colors';
7
- import { useGlobalTheme } from '@atlaskit/theme/components';
8
7
  import { fontFamily as getFontFamily, gridSize as getGridSize } from '@atlaskit/theme/constants';
9
- import { h200 } from '@atlaskit/theme/typography';
10
8
  import { FormContext, IsDisabledContext } from './form';
9
+ import Label from './label';
11
10
  const gridSize = getGridSize();
12
11
  const fontFamily = getFontFamily();
13
12
  const fieldWrapperStyles = css({
14
- marginTop: `${gridSize}px`
15
- });
16
- const labelStyles = css({
17
- display: 'inline-block',
18
- marginTop: 0,
19
- marginBottom: `${gridSize * 0.5}px`,
20
- fontFamily: `${fontFamily}`
13
+ marginTop: gridSize
21
14
  });
22
15
  const requiredIndicatorStyles = css({
23
- paddingLeft: `${gridSize * 0.25}px`,
24
- color: `${`var(--ds-text-danger, ${R400})`}`,
25
- fontFamily: `${fontFamily}`
26
- }); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
27
-
28
- const lightH200Styles = css(h200({
29
- theme: {
30
- mode: 'light'
31
- }
32
- })); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
33
-
34
- const darkH200Styles = css(h200({
35
- theme: {
36
- mode: 'dark'
37
- }
38
- }));
39
-
40
- const Label = ({
41
- children,
42
- fieldId
43
- }) => {
44
- const {
45
- mode
46
- } = useGlobalTheme();
47
- return jsx("label", {
48
- css: [mode === 'light' ? lightH200Styles : darkH200Styles, labelStyles],
49
- id: `${fieldId}-label`,
50
- htmlFor: fieldId
51
- }, children);
52
- };
16
+ paddingLeft: `${gridSize / 4}px`,
17
+ color: `var(--ds-text-danger, ${R400})`,
18
+ fontFamily
19
+ });
53
20
 
54
21
  function isEvent(event) {
55
22
  return Boolean(event && event.target);
@@ -64,7 +31,7 @@ function isFunction(x) {
64
31
  *
65
32
  * A field id uses the context API. It provides the id of the field to message components. This links the message with the field of screenreaders.
66
33
  */
67
- export const FieldId = /*#__PURE__*/React.createContext(undefined);
34
+ export const FieldId = /*#__PURE__*/createContext(undefined);
68
35
 
69
36
  function usePreviousRef(current) {
70
37
  const ref = useRef(current); // will be updated on the next render
@@ -264,7 +231,8 @@ export default function Field(props) {
264
231
  return jsx("div", {
265
232
  css: fieldWrapperStyles
266
233
  }, props.label && jsx(Label, {
267
- fieldId: fieldId
234
+ htmlFor: fieldId,
235
+ id: `${fieldId}-label`
268
236
  }, props.label, props.isRequired && jsx("span", {
269
237
  css: requiredIndicatorStyles,
270
238
  "aria-hidden": "true"
@@ -87,7 +87,7 @@ const FormHeader = ({
87
87
  description,
88
88
  title
89
89
  }) => {
90
- return jsx(FormHeaderWrapper, null, title && jsx(FormHeaderTitle, null, title), description && jsx(FormHeaderDescription, null, description), jsx(FormHeaderContent, null, children));
90
+ return jsx(FormHeaderWrapper, null, title && jsx(FormHeaderTitle, null, title), description && jsx(FormHeaderDescription, null, description), children && jsx(FormHeaderContent, null, children));
91
91
  };
92
92
 
93
93
  export default FormHeader;
@@ -5,5 +5,6 @@ export { default as FormSection } from './form-section';
5
5
  export { default as Field } from './field';
6
6
  export { default as CheckboxField } from './checkbox-field';
7
7
  export { default as RangeField } from './range-field';
8
+ export { default as Label } from './label';
8
9
  export { HelperMessage, ErrorMessage, ValidMessage } from './messages';
9
10
  export { default as Fieldset } from './fieldset'; // eslint-disable-next-line import/no-unresolved
@@ -0,0 +1,50 @@
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/core';
3
+ import { useGlobalTheme } from '@atlaskit/theme/components';
4
+ import { fontFamily as getFontFamily, gridSize as getGridSize } from '@atlaskit/theme/constants';
5
+ import { h200 } from '@atlaskit/theme/typography';
6
+ const fontFamily = getFontFamily();
7
+ const gridSize = getGridSize();
8
+ const labelStyles = css({
9
+ display: 'inline-block',
10
+ marginTop: 0,
11
+ marginBottom: gridSize / 2,
12
+ fontFamily: fontFamily
13
+ }); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
14
+
15
+ const lightH200Styles = css(h200({
16
+ theme: {
17
+ mode: 'light'
18
+ }
19
+ })); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
20
+
21
+ const darkH200Styles = css(h200({
22
+ theme: {
23
+ mode: 'dark'
24
+ }
25
+ }));
26
+ /**
27
+ * __Label__
28
+ *
29
+ * A label represents a caption for an item in a user interface.
30
+ *
31
+ * It's recommended that a label has a `4px` spacing above its associated
32
+ * control element.
33
+ */
34
+
35
+ const Label = ({
36
+ children,
37
+ htmlFor,
38
+ id
39
+ }) => {
40
+ const {
41
+ mode
42
+ } = useGlobalTheme();
43
+ return jsx("label", {
44
+ css: [mode === 'light' ? lightH200Styles : darkH200Styles, labelStyles],
45
+ id: id,
46
+ htmlFor: htmlFor
47
+ }, children);
48
+ };
49
+
50
+ export default Label;
@@ -26,7 +26,7 @@ const messageErrorColorStyles = css({
26
26
  color: `var(--ds-text-danger, ${R400})`
27
27
  });
28
28
  const messageNeutralColorStyles = css({
29
- color: `var(--ds-text-lowEmphasis, ${N200})`
29
+ color: `var(--ds-text-subtlest, ${N200})`
30
30
  });
31
31
  const messageValidColorStyles = css({
32
32
  color: `var(--ds-text-success, ${G400})`
@@ -17,19 +17,23 @@ const RangeField = props => {
17
17
  ...strippedProps
18
18
  } = props; // isInvalid and isRequired are specifically invalid for range inputs
19
19
 
20
- return /*#__PURE__*/React.createElement(Field, _extends({}, strippedProps, {
21
- transform: Number
22
- }), ({
23
- fieldProps: {
24
- isInvalid,
25
- isRequired,
26
- ...fieldProps
27
- },
28
- ...rest
29
- }) => children({
30
- fieldProps,
31
- ...rest
32
- }));
20
+ return (
21
+ /*#__PURE__*/
22
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
23
+ React.createElement(Field, _extends({}, strippedProps, {
24
+ transform: Number
25
+ }), ({
26
+ fieldProps: {
27
+ isInvalid,
28
+ isRequired,
29
+ ...fieldProps
30
+ },
31
+ ...rest
32
+ }) => children({
33
+ fieldProps,
34
+ ...rest
35
+ }))
36
+ );
33
37
  };
34
38
 
35
39
  export default RangeField;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/form",
3
- "version": "8.4.5",
3
+ "version": "8.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -2,10 +2,15 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["children", "defaultIsChecked", "value"],
6
+ _excluded2 = ["value"],
7
+ _excluded3 = ["fieldProps"],
8
+ _excluded4 = ["value"],
9
+ _excluded5 = ["fieldProps"];
5
10
 
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
12
 
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
14
 
10
15
  import React, { useCallback } from 'react';
11
16
  import Field from './field';
@@ -24,7 +29,7 @@ var CheckboxField = function CheckboxField(props) {
24
29
  _props$defaultIsCheck = props.defaultIsChecked,
25
30
  defaultIsChecked = _props$defaultIsCheck === void 0 ? false : _props$defaultIsCheck,
26
31
  value = props.value,
27
- rest = _objectWithoutProperties(props, ["children", "defaultIsChecked", "value"]); // Maintains a memoised list of the default values
32
+ rest = _objectWithoutProperties(props, _excluded); // Maintains a memoised list of the default values
28
33
 
29
34
 
30
35
  var defaultValue = useCallback(function () {
@@ -41,8 +46,8 @@ var CheckboxField = function CheckboxField(props) {
41
46
  }), function (_ref) {
42
47
  var _ref$fieldProps = _ref.fieldProps,
43
48
  fieldValue = _ref$fieldProps.value,
44
- otherFieldProps = _objectWithoutProperties(_ref$fieldProps, ["value"]),
45
- others = _objectWithoutProperties(_ref, ["fieldProps"]);
49
+ otherFieldProps = _objectWithoutProperties(_ref$fieldProps, _excluded2),
50
+ others = _objectWithoutProperties(_ref, _excluded3);
46
51
 
47
52
  return children(_objectSpread({
48
53
  fieldProps: _objectSpread(_objectSpread({}, otherFieldProps), {}, {
@@ -60,8 +65,8 @@ var CheckboxField = function CheckboxField(props) {
60
65
  }), function (_ref2) {
61
66
  var _ref2$fieldProps = _ref2.fieldProps,
62
67
  fieldValue = _ref2$fieldProps.value,
63
- otherFieldProps = _objectWithoutProperties(_ref2$fieldProps, ["value"]),
64
- others = _objectWithoutProperties(_ref2, ["fieldProps"]);
68
+ otherFieldProps = _objectWithoutProperties(_ref2$fieldProps, _excluded4),
69
+ others = _objectWithoutProperties(_ref2, _excluded5);
65
70
 
66
71
  return children(_objectSpread({
67
72
  fieldProps: _objectSpread(_objectSpread({}, otherFieldProps), {}, {
@@ -0,0 +1 @@
1
+ export { default as Label } from '../label';
package/dist/esm/field.js CHANGED
@@ -2,62 +2,29 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _typeof from "@babel/runtime/helpers/typeof";
4
4
 
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
 
9
9
  /** @jsx jsx */
10
- import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
10
+ import { createContext, useContext, useEffect, useMemo, useRef, useState } from 'react';
11
11
  import { css, jsx } from '@emotion/core';
12
12
  import { uid } from 'react-uid';
13
13
  import invariant from 'tiny-invariant';
14
14
  import { R400 } from '@atlaskit/theme/colors';
15
- import { useGlobalTheme } from '@atlaskit/theme/components';
16
15
  import { fontFamily as getFontFamily, gridSize as getGridSize } from '@atlaskit/theme/constants';
17
- import { h200 } from '@atlaskit/theme/typography';
18
16
  import { FormContext, IsDisabledContext } from './form';
17
+ import Label from './label';
19
18
  var gridSize = getGridSize();
20
19
  var fontFamily = getFontFamily();
21
20
  var fieldWrapperStyles = css({
22
- marginTop: "".concat(gridSize, "px")
23
- });
24
- var labelStyles = css({
25
- display: 'inline-block',
26
- marginTop: 0,
27
- marginBottom: "".concat(gridSize * 0.5, "px"),
28
- fontFamily: "".concat(fontFamily)
21
+ marginTop: gridSize
29
22
  });
30
23
  var requiredIndicatorStyles = css({
31
- paddingLeft: "".concat(gridSize * 0.25, "px"),
32
- color: "".concat("var(--ds-text-danger, ".concat(R400, ")")),
33
- fontFamily: "".concat(fontFamily)
34
- }); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
35
-
36
- var lightH200Styles = css(h200({
37
- theme: {
38
- mode: 'light'
39
- }
40
- })); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
41
-
42
- var darkH200Styles = css(h200({
43
- theme: {
44
- mode: 'dark'
45
- }
46
- }));
47
-
48
- var Label = function Label(_ref) {
49
- var children = _ref.children,
50
- fieldId = _ref.fieldId;
51
-
52
- var _useGlobalTheme = useGlobalTheme(),
53
- mode = _useGlobalTheme.mode;
54
-
55
- return jsx("label", {
56
- css: [mode === 'light' ? lightH200Styles : darkH200Styles, labelStyles],
57
- id: "".concat(fieldId, "-label"),
58
- htmlFor: fieldId
59
- }, children);
60
- };
24
+ paddingLeft: "".concat(gridSize / 4, "px"),
25
+ color: "var(--ds-text-danger, ".concat(R400, ")"),
26
+ fontFamily: fontFamily
27
+ });
61
28
 
62
29
  function isEvent(event) {
63
30
  return Boolean(event && event.target);
@@ -72,7 +39,7 @@ function isFunction(x) {
72
39
  *
73
40
  * A field id uses the context API. It provides the id of the field to message components. This links the message with the field of screenreaders.
74
41
  */
75
- export var FieldId = /*#__PURE__*/React.createContext(undefined);
42
+ export var FieldId = /*#__PURE__*/createContext(undefined);
76
43
 
77
44
  function usePreviousRef(current) {
78
45
  var ref = useRef(current); // will be updated on the next render
@@ -282,7 +249,8 @@ export default function Field(props) {
282
249
  return jsx("div", {
283
250
  css: fieldWrapperStyles
284
251
  }, props.label && jsx(Label, {
285
- fieldId: fieldId
252
+ htmlFor: fieldId,
253
+ id: "".concat(fieldId, "-label")
286
254
  }, props.label, props.isRequired && jsx("span", {
287
255
  css: requiredIndicatorStyles,
288
256
  "aria-hidden": "true"
@@ -83,7 +83,7 @@ var FormHeader = function FormHeader(_ref5) {
83
83
  var children = _ref5.children,
84
84
  description = _ref5.description,
85
85
  title = _ref5.title;
86
- return jsx(FormHeaderWrapper, null, title && jsx(FormHeaderTitle, null, title), description && jsx(FormHeaderDescription, null, description), jsx(FormHeaderContent, null, children));
86
+ return jsx(FormHeaderWrapper, null, title && jsx(FormHeaderTitle, null, title), description && jsx(FormHeaderDescription, null, description), children && jsx(FormHeaderContent, null, children));
87
87
  };
88
88
 
89
89
  export default FormHeader;
package/dist/esm/index.js CHANGED
@@ -5,5 +5,6 @@ export { default as FormSection } from './form-section';
5
5
  export { default as Field } from './field';
6
6
  export { default as CheckboxField } from './checkbox-field';
7
7
  export { default as RangeField } from './range-field';
8
+ export { default as Label } from './label';
8
9
  export { HelperMessage, ErrorMessage, ValidMessage } from './messages';
9
10
  export { default as Fieldset } from './fieldset'; // eslint-disable-next-line import/no-unresolved
@@ -0,0 +1,50 @@
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/core';
3
+ import { useGlobalTheme } from '@atlaskit/theme/components';
4
+ import { fontFamily as getFontFamily, gridSize as getGridSize } from '@atlaskit/theme/constants';
5
+ import { h200 } from '@atlaskit/theme/typography';
6
+ var fontFamily = getFontFamily();
7
+ var gridSize = getGridSize();
8
+ var labelStyles = css({
9
+ display: 'inline-block',
10
+ marginTop: 0,
11
+ marginBottom: gridSize / 2,
12
+ fontFamily: fontFamily
13
+ }); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
14
+
15
+ var lightH200Styles = css(h200({
16
+ theme: {
17
+ mode: 'light'
18
+ }
19
+ })); // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
20
+
21
+ var darkH200Styles = css(h200({
22
+ theme: {
23
+ mode: 'dark'
24
+ }
25
+ }));
26
+ /**
27
+ * __Label__
28
+ *
29
+ * A label represents a caption for an item in a user interface.
30
+ *
31
+ * It's recommended that a label has a `4px` spacing above its associated
32
+ * control element.
33
+ */
34
+
35
+ var Label = function Label(_ref) {
36
+ var children = _ref.children,
37
+ htmlFor = _ref.htmlFor,
38
+ id = _ref.id;
39
+
40
+ var _useGlobalTheme = useGlobalTheme(),
41
+ mode = _useGlobalTheme.mode;
42
+
43
+ return jsx("label", {
44
+ css: [mode === 'light' ? lightH200Styles : darkH200Styles, labelStyles],
45
+ id: id,
46
+ htmlFor: htmlFor
47
+ }, children);
48
+ };
49
+
50
+ export default Label;
@@ -26,7 +26,7 @@ var messageErrorColorStyles = css({
26
26
  color: "var(--ds-text-danger, ".concat(R400, ")")
27
27
  });
28
28
  var messageNeutralColorStyles = css({
29
- color: "var(--ds-text-lowEmphasis, ".concat(N200, ")")
29
+ color: "var(--ds-text-subtlest, ".concat(N200, ")")
30
30
  });
31
31
  var messageValidColorStyles = css({
32
32
  color: "var(--ds-text-success, ".concat(G400, ")")
@@ -1,10 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _excluded = ["children"],
5
+ _excluded2 = ["isInvalid", "isRequired"],
6
+ _excluded3 = ["fieldProps"];
4
7
 
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
9
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
11
 
9
12
  import React from 'react';
10
13
  import Field from './field';
@@ -20,22 +23,26 @@ import Field from './field';
20
23
  */
21
24
  var RangeField = function RangeField(props) {
22
25
  var children = props.children,
23
- strippedProps = _objectWithoutProperties(props, ["children"]); // isInvalid and isRequired are specifically invalid for range inputs
24
-
25
-
26
- return /*#__PURE__*/React.createElement(Field, _extends({}, strippedProps, {
27
- transform: Number
28
- }), function (_ref) {
29
- var _ref$fieldProps = _ref.fieldProps,
30
- isInvalid = _ref$fieldProps.isInvalid,
31
- isRequired = _ref$fieldProps.isRequired,
32
- fieldProps = _objectWithoutProperties(_ref$fieldProps, ["isInvalid", "isRequired"]),
33
- rest = _objectWithoutProperties(_ref, ["fieldProps"]);
34
-
35
- return children(_objectSpread({
36
- fieldProps: fieldProps
37
- }, rest));
38
- });
26
+ strippedProps = _objectWithoutProperties(props, _excluded); // isInvalid and isRequired are specifically invalid for range inputs
27
+
28
+
29
+ return (
30
+ /*#__PURE__*/
31
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
32
+ React.createElement(Field, _extends({}, strippedProps, {
33
+ transform: Number
34
+ }), function (_ref) {
35
+ var _ref$fieldProps = _ref.fieldProps,
36
+ isInvalid = _ref$fieldProps.isInvalid,
37
+ isRequired = _ref$fieldProps.isRequired,
38
+ fieldProps = _objectWithoutProperties(_ref$fieldProps, _excluded2),
39
+ rest = _objectWithoutProperties(_ref, _excluded3);
40
+
41
+ return children(_objectSpread({
42
+ fieldProps: fieldProps
43
+ }, rest));
44
+ })
45
+ );
39
46
  };
40
47
 
41
48
  export default RangeField;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/form",
3
- "version": "8.4.5",
3
+ "version": "8.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -0,0 +1,2 @@
1
+ export { default as Label } from '../label';
2
+ export type { LabelProps } from '../label';
@@ -1,5 +1,5 @@
1
1
  /** @jsx jsx */
2
- import React, { FormEvent, ReactNode } from 'react';
2
+ import { FormEvent, ReactNode } from 'react';
3
3
  declare type SupportedElements = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
4
4
  export interface FieldProps<FieldValue, Element extends SupportedElements = HTMLInputElement> {
5
5
  id: string;
@@ -34,7 +34,7 @@ export interface FieldComponentProps<FieldValue, Element extends SupportedElemen
34
34
  error?: string;
35
35
  valid: boolean;
36
36
  meta: Meta;
37
- }) => React.ReactNode;
37
+ }) => ReactNode;
38
38
  /**
39
39
  * Sets the default value of the field. If a function is provided, it is called with the current default value of the field.
40
40
  */
@@ -73,6 +73,6 @@ export interface FieldComponentProps<FieldValue, Element extends SupportedElemen
73
73
  *
74
74
  * A field id uses the context API. It provides the id of the field to message components. This links the message with the field of screenreaders.
75
75
  */
76
- export declare const FieldId: React.Context<string | undefined>;
76
+ export declare const FieldId: import("react").Context<string | undefined>;
77
77
  export default function Field<FieldValue = string, Element extends SupportedElements = HTMLInputElement>(props: FieldComponentProps<FieldValue, Element>): JSX.Element;
78
78
  export {};
@@ -9,6 +9,8 @@ export { default as CheckboxField } from './checkbox-field';
9
9
  export type { CheckboxFieldProps } from './checkbox-field';
10
10
  export { default as RangeField } from './range-field';
11
11
  export type { RangeFieldProps } from './range-field';
12
+ export { default as Label } from './label';
13
+ export type { LabelProps } from './label';
12
14
  export { HelperMessage, ErrorMessage, ValidMessage } from './messages';
13
15
  export { default as Fieldset } from './fieldset';
14
16
  export type { OnSubmitHandler, FormApi } from './types';
@@ -0,0 +1,16 @@
1
+ /** @jsx jsx */
2
+ import { FC } from 'react';
3
+ export interface LabelProps {
4
+ id?: string;
5
+ htmlFor: string;
6
+ }
7
+ /**
8
+ * __Label__
9
+ *
10
+ * A label represents a caption for an item in a user interface.
11
+ *
12
+ * It's recommended that a label has a `4px` spacing above its associated
13
+ * control element.
14
+ */
15
+ declare const Label: FC<LabelProps>;
16
+ export default Label;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/form",
3
- "version": "8.4.5",
3
+ "version": "8.5.0",
4
4
  "description": "A form allows users to input information.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -25,11 +25,11 @@
25
25
  "./Form": "./src/entry-points/form.tsx",
26
26
  "./Messages": "./src/entry-points/messages.tsx",
27
27
  "./RangeField": "./src/entry-points/range-field.tsx",
28
+ "./Label": "./src/entry-points/label.tsx",
28
29
  ".": "./src/index.tsx"
29
30
  },
30
31
  "atlassian": {
31
32
  "team": "Design System Team",
32
- "inPublicMirror": true,
33
33
  "releaseModel": "scheduled",
34
34
  "website": {
35
35
  "name": "Form"
@@ -37,38 +37,37 @@
37
37
  },
38
38
  "homepage": "https://atlassian.design/components/form/",
39
39
  "dependencies": {
40
- "@atlaskit/icon": "^21.9.0",
41
- "@atlaskit/theme": "^12.0.0",
42
- "@atlaskit/tokens": "^0.4.0",
40
+ "@atlaskit/icon": "^21.10.0",
41
+ "@atlaskit/theme": "^12.1.0",
42
+ "@atlaskit/tokens": "^0.6.0",
43
43
  "@babel/runtime": "^7.0.0",
44
44
  "@emotion/core": "^10.0.9",
45
45
  "final-form": "^4.20.1",
46
46
  "final-form-focus": "^1.1.2",
47
- "lodash": "^4.17.15",
47
+ "lodash": "^4.17.21",
48
48
  "react-uid": "^2.2.0",
49
- "tiny-invariant": "^0.0.3"
49
+ "tiny-invariant": "^1.2.0"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react": "^16.8.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@atlaskit/build-utils": "*",
56
55
  "@atlaskit/button": "^16.1.0",
57
56
  "@atlaskit/calendar": "^12.1.0",
58
57
  "@atlaskit/checkbox": "^12.3.0",
59
58
  "@atlaskit/datetime-picker": "^11.1.0",
60
59
  "@atlaskit/docs": "^9.0.0",
61
- "@atlaskit/dropdown-menu": "^11.0.0",
60
+ "@atlaskit/dropdown-menu": "^11.1.0",
62
61
  "@atlaskit/droplist": "^11.0.0",
63
62
  "@atlaskit/modal-dialog": "^12.2.0",
64
63
  "@atlaskit/radio": "^5.3.0",
65
- "@atlaskit/range": "^5.1.0",
64
+ "@atlaskit/range": "^6.0.0",
66
65
  "@atlaskit/section-message": "^6.1.0",
67
66
  "@atlaskit/select": "^15.2.0",
68
67
  "@atlaskit/ssr": "*",
69
- "@atlaskit/textarea": "^4.2.0",
68
+ "@atlaskit/textarea": "^4.3.0",
70
69
  "@atlaskit/textfield": "^5.1.0",
71
- "@atlaskit/toggle": "^12.3.0",
70
+ "@atlaskit/toggle": "^12.4.0",
72
71
  "@atlaskit/tooltip": "^17.5.0",
73
72
  "@atlaskit/visual-regression": "*",
74
73
  "@atlaskit/webdriver-runner": "*",