@pingux/astro 1.2.0-alpha.8 → 1.3.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.
Files changed (137) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
  3. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
  4. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
  5. package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
  6. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +8 -5
  7. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +20 -17
  8. package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
  9. package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
  10. package/lib/cjs/components/ArrayField/ArrayField.js +213 -0
  11. package/lib/cjs/components/ArrayField/ArrayField.stories.js +223 -0
  12. package/lib/cjs/components/ArrayField/ArrayField.test.js +208 -0
  13. package/lib/cjs/components/ArrayField/ArrayFieldDeleteButton.js +61 -0
  14. package/lib/cjs/components/ArrayField/index.js +27 -0
  15. package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  16. package/lib/cjs/components/Button/Button.js +14 -2
  17. package/lib/cjs/components/Button/Button.stories.js +33 -33
  18. package/lib/cjs/components/CodeView/CodeView.js +3 -3
  19. package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
  20. package/lib/cjs/components/Link/Link.js +2 -1
  21. package/lib/cjs/components/ListView/ListView.js +9 -13
  22. package/lib/cjs/components/ListView/ListView.stories.js +3 -0
  23. package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
  24. package/lib/cjs/components/Loader/Loader.stories.js +3 -3
  25. package/lib/cjs/components/Modal/Modal.js +3 -0
  26. package/lib/cjs/components/Modal/Modal.stories.js +12 -67
  27. package/lib/cjs/components/NavBar/NavBar.js +30 -4
  28. package/lib/cjs/components/NavBar/NavBar.stories.js +70 -463
  29. package/lib/cjs/components/NavBar/NavBar.test.js +51 -1
  30. package/lib/cjs/components/NavBarSection/NavBarItem.js +137 -0
  31. package/lib/cjs/components/NavBarSection/NavBarItemButton.js +96 -0
  32. package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +1 -1
  33. package/lib/cjs/components/NavBarSection/NavBarItemLink.js +98 -0
  34. package/lib/cjs/components/NavBarSection/NavBarSection.js +10 -8
  35. package/lib/cjs/components/NavBarSection/index.js +28 -1
  36. package/lib/cjs/components/OverlayPanel/OverlayPanel.js +2 -16
  37. package/lib/cjs/components/OverlayPanel/OverlayPanel.test.js +44 -0
  38. package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
  39. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  40. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
  41. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
  42. package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
  43. package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +8 -1
  44. package/lib/cjs/components/TextAreaField/TextAreaField.js +54 -9
  45. package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +31 -52
  46. package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
  47. package/lib/cjs/context/AccordionGridContext/index.js +20 -0
  48. package/lib/cjs/context/NavBarContext/index.js +20 -0
  49. package/lib/cjs/hooks/index.js +9 -0
  50. package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
  51. package/lib/cjs/hooks/useField/useField.js +5 -0
  52. package/lib/cjs/{components/AccordionGridGroup/AccordionGridContext.js → hooks/useNavBarPress/index.js} +7 -6
  53. package/lib/cjs/hooks/useNavBarPress/useNavBarPress.js +38 -0
  54. package/lib/cjs/hooks/useNavBarPress/useNavBarPress.test.js +42 -0
  55. package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
  56. package/lib/cjs/index.js +80 -58
  57. package/lib/cjs/layouts/ListLayout.stories.js +6 -6
  58. package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
  59. package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
  60. package/lib/cjs/styles/variants/accordion.js +39 -7
  61. package/lib/cjs/styles/variants/boxes.js +10 -24
  62. package/lib/cjs/styles/variants/buttons.js +27 -1
  63. package/lib/cjs/styles/variants/codeView.js +91 -0
  64. package/lib/cjs/styles/variants/navBar.js +68 -0
  65. package/lib/cjs/styles/variants/separator.js +2 -1
  66. package/lib/cjs/styles/variants/text.js +3 -1
  67. package/lib/cjs/styles/variants/variants.js +3 -0
  68. package/lib/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
  69. package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
  70. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
  71. package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
  72. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +8 -6
  73. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +22 -18
  74. package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
  75. package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
  76. package/lib/components/ArrayField/ArrayField.js +179 -0
  77. package/lib/components/ArrayField/ArrayField.stories.js +196 -0
  78. package/lib/components/ArrayField/ArrayField.test.js +185 -0
  79. package/lib/components/ArrayField/ArrayFieldDeleteButton.js +43 -0
  80. package/lib/components/ArrayField/index.js +2 -0
  81. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  82. package/lib/components/Button/Button.js +15 -3
  83. package/lib/components/Button/Button.stories.js +17 -15
  84. package/lib/components/CodeView/CodeView.js +2 -2
  85. package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
  86. package/lib/components/Link/Link.js +2 -1
  87. package/lib/components/ListView/ListView.js +9 -12
  88. package/lib/components/ListView/ListView.stories.js +3 -0
  89. package/lib/components/ListViewItem/ListViewItem.js +14 -3
  90. package/lib/components/Loader/Loader.stories.js +1 -1
  91. package/lib/components/Modal/Modal.js +4 -1
  92. package/lib/components/Modal/Modal.stories.js +11 -60
  93. package/lib/components/NavBar/NavBar.js +25 -4
  94. package/lib/components/NavBar/NavBar.stories.js +71 -462
  95. package/lib/components/NavBar/NavBar.test.js +39 -2
  96. package/lib/components/NavBarSection/NavBarItem.js +111 -0
  97. package/lib/components/NavBarSection/NavBarItemButton.js +69 -0
  98. package/lib/components/NavBarSection/NavBarItemHeader.js +1 -1
  99. package/lib/components/NavBarSection/NavBarItemLink.js +71 -0
  100. package/lib/components/NavBarSection/NavBarSection.js +9 -8
  101. package/lib/components/NavBarSection/index.js +4 -1
  102. package/lib/components/OverlayPanel/OverlayPanel.js +3 -16
  103. package/lib/components/OverlayPanel/OverlayPanel.test.js +38 -0
  104. package/lib/components/RockerButton/RockerButton.js +14 -21
  105. package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  106. package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
  107. package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
  108. package/lib/components/SearchField/SearchField.stories.js +0 -11
  109. package/lib/components/SelectFieldBase/SelectFieldBase.js +8 -1
  110. package/lib/components/TextAreaField/TextAreaField.js +54 -10
  111. package/lib/components/TextAreaField/TextAreaField.stories.js +26 -42
  112. package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
  113. package/lib/context/AccordionGridContext/index.js +5 -0
  114. package/lib/context/NavBarContext/index.js +5 -0
  115. package/lib/hooks/index.js +1 -0
  116. package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
  117. package/lib/hooks/useField/useField.js +5 -0
  118. package/lib/hooks/useNavBarPress/index.js +1 -0
  119. package/lib/hooks/useNavBarPress/useNavBarPress.js +27 -0
  120. package/lib/hooks/useNavBarPress/useNavBarPress.test.js +36 -0
  121. package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
  122. package/lib/index.js +2 -0
  123. package/lib/layouts/ListLayout.stories.js +6 -6
  124. package/lib/recipes/ConditionalFilter.stories.js +7 -3
  125. package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
  126. package/lib/styles/variants/accordion.js +26 -5
  127. package/lib/styles/variants/boxes.js +10 -24
  128. package/lib/styles/variants/buttons.js +27 -1
  129. package/lib/styles/variants/codeView.js +91 -0
  130. package/lib/styles/variants/navBar.js +46 -0
  131. package/lib/styles/variants/separator.js +2 -1
  132. package/lib/styles/variants/text.js +3 -1
  133. package/lib/styles/variants/variants.js +2 -0
  134. package/package.json +5 -3
  135. package/lib/cjs/recipes/ArrayField.stories.js +0 -169
  136. package/lib/components/AccordionGridGroup/AccordionGridContext.js +0 -2
  137. package/lib/recipes/ArrayField.stories.js +0 -134
@@ -70,10 +70,10 @@ var RockerButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
70
70
  var _context;
71
71
 
72
72
  var children = props.children,
73
- isDisabled = props.isDisabled,
74
73
  onSelectionChange = props.onSelectionChange,
75
74
  tabListProps = props.tabListProps,
76
- others = (0, _objectWithoutProperties2["default"])(props, ["children", "isDisabled", "onSelectionChange", "tabListProps"]);
75
+ disabledKeys = props.disabledKeys,
76
+ others = (0, _objectWithoutProperties2["default"])(props, ["children", "onSelectionChange", "tabListProps", "disabledKeys"]);
77
77
  var buttonGroupRef = (0, _react.useRef)();
78
78
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
79
79
  /* istanbul ignore next */
@@ -102,8 +102,7 @@ var RockerButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
102
102
  }), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
103
103
  return (0, _react2.jsx)(_RockerButton.CollectionRockerButton, {
104
104
  key: item.key,
105
- item: item,
106
- isDisabled: isDisabled
105
+ item: item
107
106
  });
108
107
  }))));
109
108
  });
@@ -114,15 +113,12 @@ RockerButtonGroup.propTypes = {
114
113
  /** The button key that is currently selected. (controlled) */
115
114
  selectedKey: _propTypes["default"].string,
116
115
 
117
- /** Whether the entire button group is disabled. */
118
- isDisabled: _propTypes["default"].bool,
116
+ /** Which keys should be disabled. */
117
+ disabledKeys: _propTypes["default"].arrayOf(_propTypes["default"].string),
119
118
 
120
119
  /** Handler that is called when the selected button has changed. */
121
120
  onSelectionChange: _propTypes["default"].func
122
121
  };
123
- RockerButtonGroup.defaultProps = {
124
- isDisabled: false
125
- };
126
122
  RockerButtonGroup.displayName = 'RockerButtonGroup';
127
123
  var _default = RockerButtonGroup;
128
124
  exports["default"] = _default;
@@ -10,7 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
 
13
- exports.DisabledRockerButtonGroup = exports.DisabledSingleButton = exports.withCustomSelectedColors = exports.Controlled = exports.Uncontrolled = exports.Default = exports["default"] = void 0;
13
+ exports.DisabledSingleButton = exports.withCustomSelectedColors = exports.Controlled = exports.Uncontrolled = exports.Default = exports["default"] = void 0;
14
14
 
15
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
16
 
@@ -129,26 +129,8 @@ exports.withCustomSelectedColors = withCustomSelectedColors;
129
129
 
130
130
  var DisabledSingleButton = function DisabledSingleButton() {
131
131
  return (0, _react2.jsx)(_RockerButtonGroup["default"], {
132
- defaultSelectedKey: "or"
133
- }, (0, _react2.jsx)(_RockerButton["default"], {
134
- name: "and",
135
- key: "and",
136
- isDisabled: true
137
- }, "And"), (0, _react2.jsx)(_RockerButton["default"], {
138
- name: "or",
139
- key: "or"
140
- }, "Or"), (0, _react2.jsx)(_RockerButton["default"], {
141
- name: "maybe",
142
- key: "maybe"
143
- }, "Maybe"));
144
- };
145
-
146
- exports.DisabledSingleButton = DisabledSingleButton;
147
-
148
- var DisabledRockerButtonGroup = function DisabledRockerButtonGroup() {
149
- return (0, _react2.jsx)(_RockerButtonGroup["default"], {
150
- isDisabled: true,
151
- defaultSelectedKey: "and"
132
+ defaultSelectedKey: "or",
133
+ disabledKeys: ['and']
152
134
  }, (0, _react2.jsx)(_RockerButton["default"], {
153
135
  name: "and",
154
136
  key: "and"
@@ -161,4 +143,4 @@ var DisabledRockerButtonGroup = function DisabledRockerButtonGroup() {
161
143
  }, "Maybe"));
162
144
  };
163
145
 
164
- exports.DisabledRockerButtonGroup = DisabledRockerButtonGroup;
146
+ exports.DisabledSingleButton = DisabledSingleButton;
@@ -82,9 +82,11 @@ test('buttonGroup is not disabled by default', function () {
82
82
  expect(buttonKey).not.toHaveClass('is-disabled');
83
83
  });
84
84
  });
85
- test('each button is disabled when isDisabled prop is passed to RockerButtonGroup', function () {
85
+ test('rocker button is disabled when its key is included in disabledKeys', function () {
86
86
  getComponent({
87
- isDisabled: true
87
+ disabledKeys: (0, _map["default"])(testButtons).call(testButtons, function (button) {
88
+ return button.key;
89
+ })
88
90
  });
89
91
  (0, _forEach["default"])(testButtons).call(testButtons, function (button) {
90
92
  var buttonKey = _testWrapper.screen.getByText(button.key);
@@ -100,9 +102,7 @@ test('rockerButton renders selectedStyles prop when selected', function () {
100
102
  expect(buttonColorKey).toHaveClass('is-selected');
101
103
  });
102
104
  test('selected button can be changed by keyboard interaction', function () {
103
- getComponent(); // FIXME: Keyboard events must fire twice tests - unsure why at this time.
104
-
105
- _userEvent["default"].tab();
105
+ getComponent();
106
106
 
107
107
  _userEvent["default"].tab();
108
108
 
@@ -114,20 +114,11 @@ test('selected button can be changed by keyboard interaction', function () {
114
114
 
115
115
  expect(button1).not.toHaveClass('is-selected');
116
116
 
117
- _userEvent["default"].tab();
118
-
119
- _userEvent["default"].tab();
120
-
121
117
  _testWrapper.fireEvent.keyDown(_testWrapper.screen.getByText(testButtons[0].key), {
122
118
  key: 'ArrowRight',
123
119
  code: 'ArrowRight'
124
120
  });
125
121
 
126
- _testWrapper.fireEvent.keyDown(_testWrapper.screen.getByText(testButtons[1].key), {
127
- key: 'ArrowRight',
128
- code: 'ArrowRight'
129
- });
130
-
131
122
  expect(_testWrapper.screen.getByText(testButtons[1].key)).toHaveClass('is-selected');
132
123
  expect(_testWrapper.screen.getByText(testButtons[0].key)).not.toHaveClass('is-selected');
133
124
  });
@@ -10,7 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
 
13
- exports.ControlledWithDebouncedInput = exports.MaxLength = exports.NoClearButton = exports.CustomIcon = exports.Controlled = exports.Default = exports["default"] = void 0;
13
+ exports.ControlledWithDebouncedInput = exports.NoClearButton = exports.CustomIcon = exports.Controlled = exports.Default = exports["default"] = void 0;
14
14
 
15
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
16
 
@@ -137,20 +137,6 @@ var NoClearButton = function NoClearButton() {
137
137
 
138
138
  exports.NoClearButton = NoClearButton;
139
139
 
140
- var MaxLength = function MaxLength(args) {
141
- return (0, _react2.jsx)(_index.SearchField, (0, _extends2["default"])({}, args, {
142
- icon: _SearchIcon["default"],
143
- "aria-label": "Search Groups",
144
- onSubmit: function onSubmit(text) {
145
- return alert(text);
146
- } // eslint-disable-line no-alert
147
- ,
148
- maxLength: 9
149
- }));
150
- };
151
-
152
- exports.MaxLength = MaxLength;
153
-
154
140
  var ControlledWithDebouncedInput = function ControlledWithDebouncedInput() {
155
141
  var _useState3 = (0, _react.useState)(''),
156
142
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
@@ -80,6 +80,7 @@ var SelectFieldBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
80
80
  name = props.name,
81
81
  placeholder = props.placeholder,
82
82
  status = props.status,
83
+ slots = props.slots,
83
84
  columnStyleProps = props.columnStyleProps,
84
85
  fieldContainerProps = props.fieldContainerProps,
85
86
  fieldControlProps = props.fieldControlProps,
@@ -114,7 +115,7 @@ var SelectFieldBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
114
115
  sx: state.isOpen ? {
115
116
  transform: 'rotate(180deg)'
116
117
  } : null
117
- }))));
118
+ }))), slots === null || slots === void 0 ? void 0 : slots.inContainer);
118
119
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
119
120
  ref: ref,
120
121
  variant: "forms.input.wrapper"
@@ -181,6 +182,12 @@ SelectFieldBase.propTypes = {
181
182
  })
182
183
  }),
183
184
 
185
+ /** Provides a way to insert markup in specified places. */
186
+ slots: _propTypes["default"].shape({
187
+ /** The given node will be inserted into the field container. */
188
+ inContainer: _propTypes["default"].node
189
+ }),
190
+
184
191
  /** Control for interaction with SelectField */
185
192
  trigger: _propTypes["default"].node,
186
193
 
@@ -38,6 +38,8 @@ var _react = _interopRequireWildcard(require("react"));
38
38
 
39
39
  var _propTypes = _interopRequireDefault(require("prop-types"));
40
40
 
41
+ var _utils = require("@react-aria/utils");
42
+
41
43
  var _hooks = require("../../hooks");
42
44
 
43
45
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
@@ -63,7 +65,8 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
63
65
  var helperText = props.helperText,
64
66
  isUnresizable = props.isUnresizable,
65
67
  rows = props.rows,
66
- status = props.status;
68
+ status = props.status,
69
+ slots = props.slots;
67
70
  var statusClasses = {
68
71
  isUnresizable: isUnresizable
69
72
  };
@@ -77,6 +80,9 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
77
80
 
78
81
  var textAreaRef = (0, _react.useRef)();
79
82
  var labelRef = (0, _react.useRef)();
83
+ var containerRef = (0, _react.useRef)();
84
+ var inputContainerRef = (0, _react.useRef)();
85
+ var slotContainer = (0, _react.useRef)();
80
86
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
81
87
  /* istanbul ignore next */
82
88
 
@@ -89,6 +95,24 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
89
95
  /* istanbul ignore next */
90
96
  labelRef.current.style.width = textAreaRef.current.style.width;
91
97
  };
98
+ /* istanbul ignore next */
99
+
100
+
101
+ var resizeSlotContainer = function resizeSlotContainer() {
102
+ inputContainerRef.current.style.width = textAreaRef.current.style.width;
103
+ };
104
+
105
+ var onResize = (0, _react.useCallback)(function () {
106
+ /* istanbul ignore next */
107
+ if (slots === null || slots === void 0 ? void 0 : slots.inContainer) {
108
+ resizeSlotContainer();
109
+ }
110
+ }, [slotContainer]);
111
+ (0, _utils.useResizeObserver)({
112
+ ref: textAreaRef,
113
+ onResize: onResize
114
+ });
115
+ (0, _utils.useLayoutEffect)(onResize, [onResize]);
92
116
 
93
117
  var _useLabelHeight = (0, _hooks.useLabelHeight)({
94
118
  labelRef: labelRef,
@@ -100,18 +124,22 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
100
124
  labelMode: props.labelMode
101
125
  });
102
126
  (0, _react.useEffect)(function () {
127
+ var thisRef = textAreaRef.current;
128
+
103
129
  if (!props.isUnresizable && props.labelMode === 'float') {
104
- textAreaRef.current.addEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
130
+ thisRef.addEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
105
131
  }
106
132
 
107
133
  return function () {
108
- textAreaRef.current.removeEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
134
+ thisRef.removeEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
109
135
  };
110
- }, []);
136
+ }, [props.isUnresizable, props.labelMode, props.resizeCallback]);
111
137
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
112
138
  variant: "forms.input.wrapper"
113
139
  }, fieldContainerProps, {
114
- sx: _objectSpread(_objectSpread({}, columnStyleProps === null || columnStyleProps === void 0 ? void 0 : columnStyleProps.sx), fieldContainerProps === null || fieldContainerProps === void 0 ? void 0 : fieldContainerProps.sx)
140
+ sx: _objectSpread(_objectSpread({}, columnStyleProps === null || columnStyleProps === void 0 ? void 0 : columnStyleProps.sx), fieldContainerProps === null || fieldContainerProps === void 0 ? void 0 : fieldContainerProps.sx),
141
+ ref: containerRef,
142
+ maxWidth: "100%"
115
143
  }), (0, _react2.jsx)(_Label["default"], (0, _extends2["default"])({
116
144
  ref: labelRef
117
145
  }, fieldLabelProps, {
@@ -119,12 +147,23 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
119
147
  gridRow: '1/5'
120
148
  }
121
149
  })), (0, _react2.jsx)(_Box["default"], {
150
+ isRow: true,
122
151
  variant: "forms.input.container",
123
- className: fieldControlProps.className
152
+ className: fieldControlProps.className,
153
+ minWidth: "40px",
154
+ maxWidth: "100%",
155
+ ref: inputContainerRef
124
156
  }, (0, _react2.jsx)(_TextArea["default"], (0, _extends2["default"])({
125
157
  ref: textAreaRef,
126
158
  rows: rows
127
- }, fieldControlProps))), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
159
+ }, fieldControlProps, {
160
+ sx: (slots === null || slots === void 0 ? void 0 : slots.inContainer) && {
161
+ paddingRight: '35px'
162
+ }
163
+ })), (slots === null || slots === void 0 ? void 0 : slots.inContainer) && (0, _react2.jsx)(_Box["default"], {
164
+ variant: "boxes.textFieldInContainerSlot",
165
+ ref: slotContainer
166
+ }, slots === null || slots === void 0 ? void 0 : slots.inContainer)), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
128
167
  status: status
129
168
  }, helperText));
130
169
  });
@@ -219,7 +258,13 @@ TextAreaField.propTypes = {
219
258
  controlProps: _propTypes["default"].shape({}),
220
259
 
221
260
  /** Props object that is spread directly into the label element. */
222
- labelProps: _propTypes["default"].shape({})
261
+ labelProps: _propTypes["default"].shape({}),
262
+
263
+ /** Provides a way to insert markup in specified places. */
264
+ slots: _propTypes["default"].shape({
265
+ /** The given node will be inserted into the field container. */
266
+ inContainer: _propTypes["default"].node
267
+ })
223
268
  };
224
269
  TextAreaField.defaultProps = {
225
270
  hasAutoFocus: false,
@@ -227,7 +272,7 @@ TextAreaField.defaultProps = {
227
272
  isReadOnly: false,
228
273
  isRequired: false,
229
274
  isUnresizable: false,
230
- rows: 2,
275
+ rows: 4,
231
276
  status: _statuses["default"].DEFAULT
232
277
  };
233
278
  TextAreaField.displayName = 'TextAreaField';
@@ -10,18 +10,24 @@ _Object$defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
 
13
- exports.MaxLength = exports.WithoutStatusIndicator = exports.Warning = exports.Success = exports.Error = exports.Unresizable = exports.Rows = exports.Required = exports.ReadOnly = exports.Disabled = exports.Controlled = exports.LeftLabel = exports.FloatLabel = exports.Default = exports["default"] = void 0;
13
+ exports.MaxLength = exports.WithoutStatusIndicator = exports.Error = exports.Unresizable = exports.Rows = exports.Required = exports.ReadOnly = exports.Disabled = exports.Controlled = exports.FloatLabel = exports.WithSlots = exports.Default = exports["default"] = void 0;
14
14
 
15
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
16
 
17
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
+
17
19
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
18
20
 
19
21
  var _react = _interopRequireWildcard(require("react"));
20
22
 
23
+ var _SearchIcon = _interopRequireDefault(require("mdi-react/SearchIcon"));
24
+
21
25
  var _ = _interopRequireDefault(require("."));
22
26
 
23
27
  var _Box = _interopRequireDefault(require("../Box"));
24
28
 
29
+ var _Icon = _interopRequireDefault(require("../Icon"));
30
+
25
31
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
26
32
 
27
33
  var _constants = require("../Label/constants");
@@ -85,6 +91,11 @@ var _default = {
85
91
  }
86
92
  };
87
93
  exports["default"] = _default;
94
+ var IconSlot = (0, _react2.jsx)(_Box["default"], {
95
+ isRow: true
96
+ }, (0, _react2.jsx)(_Icon["default"], {
97
+ icon: _SearchIcon["default"]
98
+ }));
88
99
 
89
100
  var Default = function Default(args) {
90
101
  return (0, _react2.jsx)(_["default"], args);
@@ -92,6 +103,25 @@ var Default = function Default(args) {
92
103
 
93
104
  exports.Default = Default;
94
105
 
106
+ var WithSlots = function WithSlots(args) {
107
+ return (// This is an example of a slot that can be passed into the component
108
+ // const IconSlot = (
109
+ // <Box isRow>
110
+ // <Icon
111
+ // icon={SearchIcon}
112
+ // />
113
+ // </Box>
114
+ // );
115
+ (0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, args, {
116
+ slots: {
117
+ inContainer: IconSlot
118
+ }
119
+ }))
120
+ );
121
+ };
122
+
123
+ exports.WithSlots = WithSlots;
124
+
95
125
  var FloatLabel = function FloatLabel() {
96
126
  return (0, _react2.jsx)(_["default"], {
97
127
  label: "Example label",
@@ -101,37 +131,6 @@ var FloatLabel = function FloatLabel() {
101
131
 
102
132
  exports.FloatLabel = FloatLabel;
103
133
 
104
- var LeftLabel = function LeftLabel() {
105
- return (0, _react2.jsx)(_Box["default"], {
106
- gap: "xl",
107
- width: "fit-content"
108
- }, (0, _react2.jsx)(_["default"], {
109
- label: "Example label",
110
- labelMode: "left"
111
- }), (0, _react2.jsx)(_["default"], {
112
- label: "Example label that is much longer than the previous one",
113
- labelMode: "left",
114
- status: "error"
115
- }), (0, _react2.jsx)(_["default"], {
116
- label: "Example label with set width",
117
- labelMode: "left",
118
- containerProps: {
119
- sx: {
120
- gridTemplateColumns: '120px auto'
121
- }
122
- }
123
- }));
124
- };
125
-
126
- exports.LeftLabel = LeftLabel;
127
- LeftLabel.parameters = {
128
- docs: {
129
- description: {
130
- story: 'Users are able to override the default 40% column width when using left label by providing a new gridTemplatesColumn value, as shown in the example below.'
131
- }
132
- }
133
- };
134
-
135
134
  var Controlled = function Controlled() {
136
135
  var _useState = (0, _react.useState)(),
137
136
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -206,26 +205,6 @@ var Error = function Error() {
206
205
 
207
206
  exports.Error = Error;
208
207
 
209
- var Success = function Success() {
210
- return (0, _react2.jsx)(_["default"], {
211
- helperText: "Here is some helpful text...",
212
- label: "Example Label",
213
- status: "success"
214
- });
215
- };
216
-
217
- exports.Success = Success;
218
-
219
- var Warning = function Warning() {
220
- return (0, _react2.jsx)(_["default"], {
221
- helperText: "Here is some helpful text...",
222
- label: "Example Label",
223
- status: "warning"
224
- });
225
- };
226
-
227
- exports.Warning = Warning;
228
-
229
208
  var WithoutStatusIndicator = function WithoutStatusIndicator() {
230
209
  return (0, _react2.jsx)(_["default"], {
231
210
  label: "Example Label",
@@ -153,4 +153,16 @@ test('form wrapper will have a max label column width when custom width set', fu
153
153
  var textAreaContainer = _testWrapper.screen.getByTestId(testId);
154
154
 
155
155
  expect(textAreaContainer).toHaveStyle('grid-template-columns: 120px auto');
156
+ });
157
+ test('providing slot props causes slot to render', function () {
158
+ var slot = (0, _react3.jsx)("p", {
159
+ "data-testid": "testSlot"
160
+ }, "testText");
161
+ var slots = {
162
+ inContainer: slot
163
+ };
164
+ getComponent({
165
+ slots: slots
166
+ });
167
+ expect(_testWrapper.screen.getByTestId('testSlot')).toBeInTheDocument();
156
168
  });
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+
9
+ exports.useAccordionGridContext = exports.AccordionGridContext = void 0;
10
+
11
+ var _react = require("react");
12
+
13
+ var AccordionGridContext = /*#__PURE__*/(0, _react.createContext)({});
14
+ exports.AccordionGridContext = AccordionGridContext;
15
+
16
+ var useAccordionGridContext = function useAccordionGridContext() {
17
+ return (0, _react.useContext)(AccordionGridContext);
18
+ };
19
+
20
+ exports.useAccordionGridContext = useAccordionGridContext;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+
9
+ exports.useNavBarContext = exports.NavBarContext = void 0;
10
+
11
+ var _react = require("react");
12
+
13
+ var NavBarContext = /*#__PURE__*/(0, _react.createContext)({});
14
+ exports.NavBarContext = NavBarContext;
15
+
16
+ var useNavBarContext = function useNavBarContext() {
17
+ return (0, _react.useContext)(NavBarContext);
18
+ };
19
+
20
+ exports.useNavBarContext = useNavBarContext;
@@ -64,6 +64,13 @@ _Object$defineProperty(exports, "usePropWarning", {
64
64
  }
65
65
  });
66
66
 
67
+ _Object$defineProperty(exports, "useNavBarPress", {
68
+ enumerable: true,
69
+ get: function get() {
70
+ return _useNavBarPress["default"];
71
+ }
72
+ });
73
+
67
74
  _Object$defineProperty(exports, "useRockerButton", {
68
75
  enumerable: true,
69
76
  get: function get() {
@@ -108,6 +115,8 @@ var _useOverlayPanelState = _interopRequireDefault(require("./useOverlayPanelSta
108
115
 
109
116
  var _usePropWarning = _interopRequireDefault(require("./usePropWarning"));
110
117
 
118
+ var _useNavBarPress = _interopRequireDefault(require("./useNavBarPress"));
119
+
111
120
  var _useRockerButton = _interopRequireDefault(require("./useRockerButton"));
112
121
 
113
122
  var _useSelectField = _interopRequireDefault(require("./useSelectField"));
@@ -17,8 +17,9 @@ var _react = require("react");
17
17
  * e.g. "\`Component\` requires an aria-label."
18
18
  */
19
19
  var useAriaLabelWarning = function useAriaLabelWarning(component, ariaLabel) {
20
+ var condition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
20
21
  (0, _react.useEffect)(function () {
21
- if (process.env.NODE_ENV === 'development' && !ariaLabel) {
22
+ if (process.env.NODE_ENV === 'development' && condition && !ariaLabel) {
22
23
  // eslint-disable-next-line no-console
23
24
  console.warn("".concat(component, " requires an aria-label"), '\n', '\n', 'NOTE: This is a development-only warning and will not display in production.');
24
25
  }
@@ -145,6 +145,11 @@ var useField = function useField() {
145
145
  setHasValue(true);
146
146
  } else {
147
147
  setHasValue(false);
148
+ } // adding this function resolves the error brought up in UIP-5116
149
+
150
+
151
+ if (e.persist) {
152
+ e.persist();
148
153
  } // Make sure to call the original onChange event
149
154
 
150
155
 
@@ -8,10 +8,11 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
 
11
- exports.AccordionGridContext = void 0;
12
-
13
- var _react = _interopRequireDefault(require("react"));
14
-
15
- var AccordionGridContext = /*#__PURE__*/_react["default"].createContext(null);
11
+ _Object$defineProperty(exports, "default", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _useNavBarPress["default"];
15
+ }
16
+ });
16
17
 
17
- exports.AccordionGridContext = AccordionGridContext;
18
+ var _useNavBarPress = _interopRequireDefault(require("./useNavBarPress"));
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+
9
+ exports["default"] = void 0;
10
+
11
+ /**
12
+ * A custom hook that will call an onPressCallback function, if the function is provided.
13
+ * @param {Object} params The accepted parameters object
14
+ * @param {string} props.key The unique identifier that is assigned to the element being pressed
15
+ * @param {Object} state The state object tracking selected keys
16
+ * @param {function} state.setSelectedKeys The function that sets the selected keys
17
+ * @callback props.onPressCallback The callback that will be called only if provided
18
+ */
19
+ var useNavBarPress = function useNavBarPress(_ref, state) {
20
+ var key = _ref.key,
21
+ onPressCallback = _ref.onPressCallback;
22
+ var setSelectedKeys = state.setSelectedKeys;
23
+
24
+ var onNavPress = function onNavPress() {
25
+ setSelectedKeys(key);
26
+
27
+ if (onPressCallback) {
28
+ onPressCallback();
29
+ }
30
+ };
31
+
32
+ return {
33
+ onNavPress: onNavPress
34
+ };
35
+ };
36
+
37
+ var _default = useNavBarPress;
38
+ exports["default"] = _default;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _reactHooks = require("@testing-library/react-hooks");
6
+
7
+ var _ = _interopRequireDefault(require("./"));
8
+
9
+ var key = 'testKey';
10
+ test('using the onPress prop works as a callback', function () {
11
+ var onPress = jest.fn();
12
+ var setSelectedKeys = jest.fn();
13
+
14
+ var _renderHook = (0, _reactHooks.renderHook)(function () {
15
+ return (0, _["default"])({
16
+ key: key,
17
+ onPressCallback: onPress
18
+ }, {
19
+ setSelectedKeys: setSelectedKeys
20
+ });
21
+ }),
22
+ result = _renderHook.result;
23
+
24
+ result.current.onNavPress();
25
+ expect(onPress).toHaveBeenCalled();
26
+ });
27
+ test('if no onPress prop there is no callback', function () {
28
+ var onPress = jest.fn();
29
+ var setSelectedKeys = jest.fn();
30
+
31
+ var _renderHook2 = (0, _reactHooks.renderHook)(function () {
32
+ return (0, _["default"])({
33
+ key: key
34
+ }, {
35
+ setSelectedKeys: setSelectedKeys
36
+ });
37
+ }),
38
+ result = _renderHook2.result;
39
+
40
+ result.current.onNavPress();
41
+ expect(onPress).not.toHaveBeenCalled();
42
+ });