@entur/form 6.1.0 → 7.0.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.
@@ -61,7 +61,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
61
61
  return target;
62
62
  }
63
63
 
64
- var _excluded$e = ["children", "hideIcon", "variant", "className"];
64
+ var _excluded$g = ["children", "hideIcon", "variant", "className"];
65
65
  var AlertIcon = function AlertIcon(_ref) {
66
66
  var variant = _ref.variant;
67
67
  var iconClass = "eds-feedback-text__icon eds-feedback-text__icon--" + variant;
@@ -90,7 +90,7 @@ var FeedbackText = function FeedbackText(_ref2) {
90
90
  hideIcon = _ref2$hideIcon === void 0 ? false : _ref2$hideIcon,
91
91
  variant = _ref2.variant,
92
92
  className = _ref2.className,
93
- rest = _objectWithoutPropertiesLoose(_ref2, _excluded$e);
93
+ rest = _objectWithoutPropertiesLoose(_ref2, _excluded$g);
94
94
  return React__default["default"].createElement(typography.SubLabel, _extends({
95
95
  className: classNames__default["default"]('eds-feedback-text', {
96
96
  'eds-feedback-text--info': variant === 'info'
@@ -124,14 +124,14 @@ var useInputGroupContext = function useInputGroupContext() {
124
124
  return React__namespace.useContext(InputGroupContext);
125
125
  };
126
126
 
127
- var _excluded$d = ["label", "required", "labelId", "staticAnimation"];
127
+ var _excluded$f = ["label", "required", "labelId", "staticAnimation"];
128
128
  var InputGroupLabel = function InputGroupLabel(_ref) {
129
129
  var label = _ref.label,
130
130
  required = _ref.required,
131
131
  labelId = _ref.labelId,
132
132
  _ref$staticAnimation = _ref.staticAnimation,
133
133
  staticAnimation = _ref$staticAnimation === void 0 ? false : _ref$staticAnimation,
134
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
134
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$f);
135
135
  var _useInputGroupContext = useInputGroupContext(),
136
136
  isFilled = _useInputGroupContext.isFilled;
137
137
  var filler = staticAnimation || isFilled;
@@ -161,7 +161,7 @@ var useVariant = function useVariant() {
161
161
  return context;
162
162
  };
163
163
 
164
- var _excluded$c = ["children", "className", "dark", "disabled", "readOnly", "variant", "prepend", "append", "size", "isFilled", "label", "required", "labelTooltip", "feedback", "labelId", "labelProps", "style", "disableLabelAnimation", "ariaAlertOnFeedback"];
164
+ var _excluded$e = ["children", "className", "dark", "disabled", "readOnly", "variant", "prepend", "append", "size", "isFilled", "label", "required", "labelTooltip", "feedback", "labelId", "labelProps", "style", "disableLabelAnimation", "ariaAlertOnFeedback"];
165
165
  var BaseFormControl = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
166
166
  var children = _ref.children,
167
167
  className = _ref.className,
@@ -188,7 +188,7 @@ var BaseFormControl = /*#__PURE__*/React__default["default"].forwardRef(function
188
188
  disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
189
189
  _ref$ariaAlertOnFeedb = _ref.ariaAlertOnFeedback,
190
190
  ariaAlertOnFeedback = _ref$ariaAlertOnFeedb === void 0 ? false : _ref$ariaAlertOnFeedb,
191
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
191
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$e);
192
192
  var contextVariant = useVariant();
193
193
  var currentVariant = variant || contextVariant;
194
194
  return React__default["default"].createElement(InputGroupContextProvider, null, React__default["default"].createElement("div", _extends({
@@ -224,7 +224,7 @@ var BaseFormControl = /*#__PURE__*/React__default["default"].forwardRef(function
224
224
  }, feedback));
225
225
  });
226
226
 
227
- var _excluded$b = ["checked", "className", "children", "style", "disabled", "reduceClickArea"];
227
+ var _excluded$d = ["checked", "className", "children", "style", "disabled", "reduceClickArea"];
228
228
  var Checkbox = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
229
229
  var checked = _ref.checked,
230
230
  className = _ref.className,
@@ -233,19 +233,13 @@ var Checkbox = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
233
233
  _ref$disabled = _ref.disabled,
234
234
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
235
235
  reduceClickArea = _ref.reduceClickArea,
236
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
237
- // Trick to allow using a ref locally, while still allowing for ref forwarding
238
- // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle
239
- var innerRef = React__default["default"].useRef(null);
240
- //eslint-disable-next-line
241
- React__default["default"].useImperativeHandle(ref, function () {
242
- return innerRef.current;
243
- });
236
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
237
+ var inputRef = React__default["default"].useRef(null);
244
238
  var isIndeterminate = checked === 'indeterminate';
245
239
  var isControlled = checked !== undefined;
246
240
  React__default["default"].useEffect(function () {
247
- if (innerRef && innerRef.current) {
248
- innerRef.current.indeterminate = isIndeterminate;
241
+ if (inputRef && inputRef.current) {
242
+ inputRef.current.indeterminate = isIndeterminate;
249
243
  }
250
244
  }, [isIndeterminate]);
251
245
  return React__default["default"].createElement("label", {
@@ -256,7 +250,7 @@ var Checkbox = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
256
250
  style: style
257
251
  }, React__default["default"].createElement("input", _extends({
258
252
  type: "checkbox",
259
- ref: innerRef,
253
+ ref: utils.mergeRefs(ref, inputRef),
260
254
  checked: isControlled ? checked === true : undefined,
261
255
  disabled: disabled
262
256
  }, rest)), React__default["default"].createElement("span", {
@@ -292,12 +286,12 @@ var CheckboxIcon = function CheckboxIcon(_ref2) {
292
286
  }));
293
287
  };
294
288
 
295
- var _excluded$a = ["children", "className", "label"];
289
+ var _excluded$c = ["children", "className", "label"];
296
290
  var Fieldset = function Fieldset(_ref) {
297
291
  var children = _ref.children,
298
292
  className = _ref.className,
299
293
  label = _ref.label,
300
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
294
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
301
295
  return React__default["default"].createElement("fieldset", _extends({
302
296
  className: classNames__default["default"]('eds-fieldset', className)
303
297
  }, rest), label && React__default["default"].createElement(typography.Heading5, {
@@ -315,13 +309,14 @@ var useRadioGroupContext = function useRadioGroupContext() {
315
309
  return context;
316
310
  };
317
311
 
318
- var _excluded$9 = ["className", "children", "value", "disabled"];
312
+ var _excluded$b = ["className", "children", "value", "disabled"];
319
313
  var Radio = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
314
+ var _rest$name, _rest$checked, _rest$onChange;
320
315
  var className = _ref.className,
321
316
  children = _ref.children,
322
317
  value = _ref.value,
323
318
  disabled = _ref.disabled,
324
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
319
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
325
320
  var classList = classNames__default["default"](className, 'eds-form-component--radio__radio', {
326
321
  'eds-form-component--radio__radio--disabled': disabled
327
322
  });
@@ -333,11 +328,11 @@ var Radio = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, re
333
328
  className: "eds-form-component--radio__container"
334
329
  }, React__default["default"].createElement("input", _extends({
335
330
  type: "radio",
336
- name: name,
331
+ name: (_rest$name = rest.name) != null ? _rest$name : name,
337
332
  ref: ref,
338
333
  value: value,
339
- checked: selectedValue === value,
340
- onChange: onChange,
334
+ checked: (_rest$checked = rest.checked) != null ? _rest$checked : selectedValue === value,
335
+ onChange: (_rest$onChange = rest.onChange) != null ? _rest$onChange : onChange,
341
336
  disabled: disabled
342
337
  }, rest)), React__default["default"].createElement("span", {
343
338
  className: classList
@@ -350,30 +345,9 @@ var Radio = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, re
350
345
  }, children));
351
346
  });
352
347
 
353
- var _excluded$8 = ["name", "value", "children", "onChange", "label"];
354
- var RadioGroup = function RadioGroup(_ref) {
355
- var name = _ref.name,
356
- value = _ref.value,
357
- children = _ref.children,
358
- onChange = _ref.onChange,
359
- label = _ref.label,
360
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
361
- var contextValue = React__default["default"].useMemo(function () {
362
- return {
363
- name: name,
364
- value: value,
365
- onChange: onChange
366
- };
367
- }, [name, value, onChange]);
368
- return React__default["default"].createElement(RadioGroupContextProvider, {
369
- value: contextValue
370
- }, label ? React__default["default"].createElement(Fieldset, _extends({
371
- label: label
372
- }, rest), children) : children);
373
- };
374
-
375
- var _excluded$7 = ["className", "children", "value", "title", "secondaryLabel", "size", "hideCheckbox", "style", "id", "disabled"];
376
- var RadioPanel = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
348
+ var _excluded$a = ["className", "children", "value", "title", "secondaryLabel", "size", "hideSelectionIndicator", "style", "id", "disabled", "type", "onChange", "checked", "name"];
349
+ var InputPanelBase = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
350
+ var _ref2, _inputRef$current, _ref3, _inputRef$current2;
377
351
  var className = _ref.className,
378
352
  children = _ref.children,
379
353
  value = _ref.value,
@@ -381,60 +355,170 @@ var RadioPanel = /*#__PURE__*/React__default["default"].forwardRef(function (_re
381
355
  secondaryLabel = _ref.secondaryLabel,
382
356
  _ref$size = _ref.size,
383
357
  size = _ref$size === void 0 ? 'medium' : _ref$size,
384
- _ref$hideCheckbox = _ref.hideCheckbox,
385
- hideCheckbox = _ref$hideCheckbox === void 0 ? false : _ref$hideCheckbox,
358
+ _ref$hideSelectionInd = _ref.hideSelectionIndicator,
359
+ hideSelectionIndicator = _ref$hideSelectionInd === void 0 ? false : _ref$hideSelectionInd,
386
360
  style = _ref.style,
387
361
  id = _ref.id,
388
362
  _ref$disabled = _ref.disabled,
389
363
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
390
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
391
- var classList = classNames__default["default"](className, 'eds-radio-panel__container', "eds-radio-panel--" + size, {
392
- 'eds-radio-panel--disabled': disabled
393
- });
394
- var _useRadioGroupContext = useRadioGroupContext(),
395
- name = _useRadioGroupContext.name,
396
- selectedValue = _useRadioGroupContext.value,
397
- onChange = _useRadioGroupContext.onChange;
398
- var randomId = utils.useRandomId('eds-radiopanel');
399
- var radioPanelId = id || randomId;
364
+ _ref$type = _ref.type,
365
+ type = _ref$type === void 0 ? 'radio' : _ref$type,
366
+ onChange = _ref.onChange,
367
+ checked = _ref.checked,
368
+ name = _ref.name,
369
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
370
+ var classList = classNames__default["default"](className, 'eds-input-panel__container', "eds-input-panel--" + size);
371
+ var inputRef = React.useRef(null);
372
+ var defaultId = utils.useRandomId('eds-inputpanel');
373
+ var inputPanelId = id || defaultId;
374
+ var forceUpdate = utils.useForceUpdate();
375
+ var handleOnChange = function handleOnChange(e) {
376
+ if (onChange === undefined) forceUpdate();
377
+ onChange == null ? void 0 : onChange(e);
378
+ };
400
379
  return React__default["default"].createElement("label", {
401
- className: "eds-radio-panel__wrapper",
402
- htmlFor: radioPanelId
380
+ className: "eds-input-panel",
381
+ htmlFor: inputPanelId
403
382
  }, React__default["default"].createElement("input", _extends({
404
- type: "radio",
383
+ type: type,
405
384
  name: name,
406
- ref: ref,
385
+ ref: utils.mergeRefs(ref, inputRef),
407
386
  value: value,
408
- checked: selectedValue === value,
409
- onChange: onChange,
410
- id: radioPanelId,
387
+ checked: checked,
388
+ onChange: handleOnChange,
389
+ id: inputPanelId,
411
390
  disabled: disabled
412
391
  }, rest)), React__default["default"].createElement("div", {
413
392
  className: classList,
414
393
  style: style
415
394
  }, React__default["default"].createElement("div", {
416
- className: "eds-radio-panel__title-wrapper"
395
+ className: "eds-input-panel__title-wrapper"
417
396
  }, React__default["default"].createElement("div", {
418
- className: "eds-radio-panel__title"
397
+ className: "eds-input-panel__title"
419
398
  }, title), React__default["default"].createElement("div", {
420
- className: "eds-radio-panel__label"
421
- }, secondaryLabel && React__default["default"].createElement("span", null, secondaryLabel), !(disabled || hideCheckbox) && React__default["default"].createElement("span", {
422
- className: "eds-radio-panel__check"
423
- }, React__default["default"].createElement(RadioPanelCheck, null)))), children && React__default["default"].createElement("div", {
424
- className: "eds-radio-panel__additional-content"
399
+ className: "eds-input-panel__secondary-label-and-icon-wrapper"
400
+ }, secondaryLabel !== undefined && React__default["default"].createElement(React__default["default"].Fragment, null, secondaryLabel), React__default["default"].createElement("span", {
401
+ style: {
402
+ pointerEvents: 'none'
403
+ }
404
+ }, !(disabled || hideSelectionIndicator) && (type === 'radio' ? React__default["default"].createElement(Radio, {
405
+ name: "",
406
+ value: "",
407
+ checked: (_ref2 = checked != null ? checked : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.checked) != null ? _ref2 : false,
408
+ onChange: function onChange() {
409
+ return;
410
+ },
411
+ "aria-hidden": "true",
412
+ tabIndex: -1
413
+ }) : React__default["default"].createElement(Checkbox, {
414
+ checked: (_ref3 = checked != null ? checked : (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.checked) != null ? _ref3 : false,
415
+ onChange: function onChange() {
416
+ return null;
417
+ },
418
+ "aria-hidden": "true",
419
+ tabIndex: -1
420
+ }))))), children && React__default["default"].createElement("div", {
421
+ className: "eds-input-panel__additional-content"
425
422
  }, children)));
426
423
  });
427
- var RadioPanelCheck = function RadioPanelCheck() {
428
- return React__default["default"].createElement("svg", {
429
- className: "eds-checkbox-icon",
430
- width: "22px",
431
- height: "16px",
432
- viewBox: "6 11 37 33"
433
- }, React__default["default"].createElement("path", {
434
- className: "eds-checkbox-icon__path",
435
- d: "M14.1 27.2l7.1 7.2 14.6-14.8",
436
- fill: "none"
437
- }));
424
+
425
+ var _excluded$9 = ["className", "children", "value", "title", "secondaryLabel", "size", "hideRadioButton", "style", "id", "disabled"];
426
+ var RadioPanel = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
427
+ var className = _ref.className,
428
+ children = _ref.children,
429
+ value = _ref.value,
430
+ title = _ref.title,
431
+ secondaryLabel = _ref.secondaryLabel,
432
+ _ref$size = _ref.size,
433
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
434
+ _ref$hideRadioButton = _ref.hideRadioButton,
435
+ hideRadioButton = _ref$hideRadioButton === void 0 ? false : _ref$hideRadioButton,
436
+ style = _ref.style,
437
+ id = _ref.id,
438
+ _ref$disabled = _ref.disabled,
439
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
440
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
441
+ var _useRadioGroupContext = useRadioGroupContext(),
442
+ name = _useRadioGroupContext.name,
443
+ selected = _useRadioGroupContext.value,
444
+ onChange = _useRadioGroupContext.onChange;
445
+ return React__default["default"].createElement(InputPanelBase, _extends({
446
+ type: "radio",
447
+ name: name,
448
+ title: title,
449
+ value: value,
450
+ checked: selected === value,
451
+ onChange: onChange,
452
+ className: className,
453
+ secondaryLabel: secondaryLabel,
454
+ size: size,
455
+ hideSelectionIndicator: hideRadioButton,
456
+ style: style,
457
+ id: id,
458
+ disabled: disabled
459
+ }, rest, {
460
+ ref: ref
461
+ }), children);
462
+ });
463
+
464
+ var _excluded$8 = ["name", "checked", "onChange", "className", "children", "value", "title", "secondaryLabel", "size", "hideCheckbox", "style", "id", "disabled"];
465
+ var CheckboxPanel = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
466
+ var name = _ref.name,
467
+ checked = _ref.checked,
468
+ onChange = _ref.onChange,
469
+ className = _ref.className,
470
+ children = _ref.children,
471
+ value = _ref.value,
472
+ title = _ref.title,
473
+ secondaryLabel = _ref.secondaryLabel,
474
+ _ref$size = _ref.size,
475
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
476
+ _ref$hideCheckbox = _ref.hideCheckbox,
477
+ hideCheckbox = _ref$hideCheckbox === void 0 ? false : _ref$hideCheckbox,
478
+ style = _ref.style,
479
+ id = _ref.id,
480
+ _ref$disabled = _ref.disabled,
481
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
482
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
483
+ return React__default["default"].createElement(InputPanelBase, _extends({
484
+ type: "checkbox",
485
+ name: name,
486
+ title: title,
487
+ value: value,
488
+ checked: checked,
489
+ onChange: onChange,
490
+ className: className,
491
+ secondaryLabel: secondaryLabel,
492
+ size: size,
493
+ hideSelectionIndicator: hideCheckbox,
494
+ style: style,
495
+ id: id,
496
+ disabled: disabled
497
+ }, rest, {
498
+ ref: ref
499
+ }), children);
500
+ });
501
+
502
+ var _excluded$7 = ["name", "value", "children", "onChange", "label"];
503
+ var RadioGroup = function RadioGroup(_ref) {
504
+ var name = _ref.name,
505
+ value = _ref.value,
506
+ children = _ref.children,
507
+ onChange = _ref.onChange,
508
+ label = _ref.label,
509
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
510
+ var contextValue = React__default["default"].useMemo(function () {
511
+ return {
512
+ name: name,
513
+ value: value,
514
+ onChange: onChange
515
+ };
516
+ }, [name, value, onChange]);
517
+ return React__default["default"].createElement(RadioGroupContextProvider, {
518
+ value: contextValue
519
+ }, label ? React__default["default"].createElement(Fieldset, _extends({
520
+ label: label
521
+ }, rest), children) : children);
438
522
  };
439
523
 
440
524
  var _excluded$6 = ["className", "children", "labelPlacement", "icon", "hideIcon", "color", "contrastColor", "size", "checked"];
@@ -842,6 +926,7 @@ utils.warnAboutMissingStyles('form', 'icons', 'typography');
842
926
 
843
927
  exports.BaseFormControl = BaseFormControl;
844
928
  exports.Checkbox = Checkbox;
929
+ exports.CheckboxPanel = CheckboxPanel;
845
930
  exports.FeedbackText = FeedbackText;
846
931
  exports.Fieldset = Fieldset;
847
932
  exports.InputGroupContextProvider = InputGroupContextProvider;