@semcore/pills 4.4.21 → 4.4.23

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
@@ -2,6 +2,18 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [4.4.23] - 2023-05-04
6
+
7
+ ### Changed
8
+
9
+ - Version patch update due to children dependencies update (`@semcore/flex-box` [4.7.21 ~> 4.7.22], `@semcore/neighbor-location` [3.1.27 ~> 3.1.28], `@semcore/utils` [3.50.5 ~> 3.50.6]).
10
+
11
+ ## [4.4.22] - 2023-05-04
12
+
13
+ ### Added
14
+
15
+ - Allowed pills focus navigation with left and right keyboard arrows.
16
+
5
17
  ## [4.4.21] - 2023-05-03
6
18
 
7
19
  ### Changed
package/lib/cjs/Pills.js CHANGED
@@ -20,19 +20,19 @@ var _neighborLocation = _interopRequireWildcard(require("@semcore/neighbor-locat
20
20
  var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/keyboardFocusEnhance"));
21
21
  var _addonTextChildren = _interopRequireDefault(require("@semcore/utils/lib/addonTextChildren"));
22
22
  /*__reshadow-styles__:"./style/pills.shadow.css"*/
23
- var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPill_17uwr_gg_,.___SPills_17uwr_gg_{display:inline-flex;align-items:center;justify-content:center}.___SPills_17uwr_gg_{isolation:isolate}.___SPill_17uwr_gg_{line-height:normal;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:var(--intergalactic-control-rounded, 6px)}.___SPill_17uwr_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_17uwr_gg_:active,.___SPill_17uwr_gg_:focus{outline:0;text-decoration:none}@media (hover:hover){.___SPill_17uwr_gg_:hover{outline:0;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_17uwr_gg_.__selected_17uwr_gg_{background:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_17uwr_gg_.__disabled_17uwr_gg_{cursor:default;pointer-events:none}.___SPill_17uwr_gg_.__disabled_17uwr_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPill_17uwr_gg_.__keyboardFocused_17uwr_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SText_17uwr_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_17uwr_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_17uwr_gg_._size_m_17uwr_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SText_17uwr_gg_,.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SText_17uwr_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SAddon_17uwr_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SAddon_17uwr_gg_:only-child,.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SText_17uwr_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_17uwr_gg_._neighborLocation_right_17uwr_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_17uwr_gg_._neighborLocation_both_17uwr_gg_{border-radius:0;margin-left:-1px}.___SPill_17uwr_gg_._neighborLocation_left_17uwr_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "17uwr_gg_") /*__reshadow_css_end__*/, {
24
- "__SPills": "___SPills_17uwr_gg_",
25
- "__SPill": "___SPill_17uwr_gg_",
26
- "_selected": "__selected_17uwr_gg_",
27
- "_disabled": "__disabled_17uwr_gg_",
28
- "_keyboardFocused": "__keyboardFocused_17uwr_gg_",
29
- "__SText": "___SText_17uwr_gg_",
30
- "__SAddon": "___SAddon_17uwr_gg_",
31
- "_size_m": "_size_m_17uwr_gg_",
32
- "_size_l": "_size_l_17uwr_gg_",
33
- "_neighborLocation_right": "_neighborLocation_right_17uwr_gg_",
34
- "_neighborLocation_both": "_neighborLocation_both_17uwr_gg_",
35
- "_neighborLocation_left": "_neighborLocation_left_17uwr_gg_"
23
+ var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPill_1ovug_gg_,.___SPills_1ovug_gg_{display:inline-flex;align-items:center;justify-content:center}.___SPills_1ovug_gg_{isolation:isolate}.___SPill_1ovug_gg_{line-height:normal;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:var(--intergalactic-control-rounded, 6px)}.___SPill_1ovug_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_1ovug_gg_:active,.___SPill_1ovug_gg_:focus{outline:0;text-decoration:none}@media (hover:hover){.___SPill_1ovug_gg_:hover{outline:0;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_1ovug_gg_.__selected_1ovug_gg_{background:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_1ovug_gg_.__disabled_1ovug_gg_{cursor:default;pointer-events:none}.___SPill_1ovug_gg_.__disabled_1ovug_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPill_1ovug_gg_.__keyboardFocused_1ovug_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SText_1ovug_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_1ovug_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_1ovug_gg_._size_m_1ovug_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SText_1ovug_gg_,.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SText_1ovug_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SAddon_1ovug_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SAddon_1ovug_gg_:only-child,.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SText_1ovug_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1ovug_gg_._neighborLocation_right_1ovug_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_1ovug_gg_._neighborLocation_both_1ovug_gg_{border-radius:0;margin-left:-1px}.___SPill_1ovug_gg_._neighborLocation_left_1ovug_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "1ovug_gg_") /*__reshadow_css_end__*/, {
24
+ "__SPills": "___SPills_1ovug_gg_",
25
+ "__SPill": "___SPill_1ovug_gg_",
26
+ "_selected": "__selected_1ovug_gg_",
27
+ "_disabled": "__disabled_1ovug_gg_",
28
+ "_keyboardFocused": "__keyboardFocused_1ovug_gg_",
29
+ "__SText": "___SText_1ovug_gg_",
30
+ "__SAddon": "___SAddon_1ovug_gg_",
31
+ "_size_m": "_size_m_1ovug_gg_",
32
+ "_size_l": "_size_l_1ovug_gg_",
33
+ "_neighborLocation_right": "_neighborLocation_right_1ovug_gg_",
34
+ "_neighborLocation_both": "_neighborLocation_both_1ovug_gg_",
35
+ "_neighborLocation_left": "_neighborLocation_left_1ovug_gg_"
36
36
  });
37
37
  var RootPills = /*#__PURE__*/function (_Component) {
38
38
  (0, _inherits2["default"])(RootPills, _Component);
@@ -44,11 +44,23 @@ var RootPills = /*#__PURE__*/function (_Component) {
44
44
  args[_key] = arguments[_key];
45
45
  }
46
46
  _this = _super.call.apply(_super, [this].concat(args));
47
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "itemRefs", []);
47
48
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerClick", function (value) {
48
49
  return function (e) {
49
50
  _this.handlers.value(value, e);
50
51
  };
51
52
  });
53
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event) {
54
+ var _this$itemRefs$focuse;
55
+ if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;
56
+ var focusedIndex = _this.itemRefs.findIndex(function (item) {
57
+ return item === document.activeElement;
58
+ });
59
+ if (focusedIndex === -1) return;
60
+ if (event.key === 'ArrowLeft') focusedIndex--;
61
+ if (event.key === 'ArrowRight') focusedIndex++;
62
+ (_this$itemRefs$focuse = _this.itemRefs[focusedIndex]) === null || _this$itemRefs$focuse === void 0 ? void 0 : _this$itemRefs$focuse.focus();
63
+ });
52
64
  return _this;
53
65
  }
54
66
  (0, _createClass2["default"])(RootPills, [{
@@ -60,13 +72,17 @@ var RootPills = /*#__PURE__*/function (_Component) {
60
72
  }
61
73
  }, {
62
74
  key: "getItemProps",
63
- value: function getItemProps(props, i) {
75
+ value: function getItemProps(props, index) {
76
+ var _this2 = this;
64
77
  var _this$asProps = this.asProps,
65
78
  value = _this$asProps.value,
66
79
  size = _this$asProps.size,
67
80
  disabled = _this$asProps.disabled;
68
81
  return {
69
- index: i,
82
+ ref: function ref(node) {
83
+ return _this2.itemRefs[index] = node;
84
+ },
85
+ index: index,
70
86
  size: size,
71
87
  disabled: disabled,
72
88
  selected: value === props.value,
@@ -86,7 +102,8 @@ var RootPills = /*#__PURE__*/function (_Component) {
86
102
  disabled = _this$asProps2.disabled;
87
103
  return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPills, _ref5.cn("SPills", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
88
104
  "role": "radiogroup",
89
- "aria-disabled": disabled
105
+ "aria-disabled": disabled,
106
+ "onKeyDown": this.handleKeyDown
90
107
  }, _ref))), /*#__PURE__*/_react["default"].createElement(_neighborLocation["default"], _ref5.cn("NeighborLocation", {
91
108
  "controlsLength": controlsLength
92
109
  }), /*#__PURE__*/_react["default"].createElement(Children, _ref5.cn("Children", {}))));
@@ -1 +1 @@
1
- {"version":3,"file":"Pills.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","style","sstyled","insert","RootPills","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","e","handlers","_createClass2","key","uncontrolledProps","getItemProps","props","i","_this$asProps","asProps","size","disabled","index","selected","onClick","bindHandlerClick","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","Component","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","Pills","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","_default","exports"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\n\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = {\n size: 'm',\n defaultValue: null,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, i) {\n const { value, size, disabled } = this.asProps;\n return {\n index: i,\n size,\n disabled,\n selected: value === props.value,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled } = this.asProps;\n\n return sstyled(styles)(\n <SPills render={Box} role=\"radiogroup\" aria-disabled={disabled}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n return sstyled(styles)(\n <SPill\n render={Box}\n tag=\"button\"\n type=\"button\"\n role=\"radio\"\n neighborLocation={neighborLocation}\n aria-checked={selected}\n aria-disabled={disabled}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag=\"span\" />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag=\"span\" />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport default Pills;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Pills.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","style","sstyled","insert","RootPills","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","e","handlers","event","_this$itemRefs$focuse","key","focusedIndex","itemRefs","findIndex","item","document","activeElement","focus","_createClass2","uncontrolledProps","getItemProps","props","index","_this2","_this$asProps","asProps","size","disabled","ref","node","selected","onClick","bindHandlerClick","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","handleKeyDown","Component","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","Pills","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","_default","exports"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\n\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = {\n size: 'm',\n defaultValue: null,\n };\n itemRefs = [];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size, disabled } = this.asProps;\n return {\n ref: (node) => (this.itemRefs[index] = node),\n index: index,\n size,\n disabled,\n selected: value === props.value,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n handleKeyDown = (event) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n\n let focusedIndex = this.itemRefs.findIndex((item) => item === document.activeElement);\n if (focusedIndex === -1) return;\n\n if (event.key === 'ArrowLeft') focusedIndex--;\n if (event.key === 'ArrowRight') focusedIndex++;\n\n this.itemRefs[focusedIndex]?.focus();\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role=\"radiogroup\"\n aria-disabled={disabled}\n onKeyDown={this.handleKeyDown}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n return sstyled(styles)(\n <SPill\n render={Box}\n tag=\"button\"\n type=\"button\"\n role=\"radio\"\n neighborLocation={neighborLocation}\n aria-checked={selected}\n aria-disabled={disabled}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag=\"span\" />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag=\"span\" />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport default Pills;\n"],"mappings":"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"}
package/lib/es6/Pills.js CHANGED
@@ -17,19 +17,19 @@ import NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-l
17
17
  import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
18
18
  import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
19
19
  /*__reshadow-styles__:"./style/pills.shadow.css"*/
20
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPill_17uwr_gg_,.___SPills_17uwr_gg_{display:inline-flex;align-items:center;justify-content:center}.___SPills_17uwr_gg_{isolation:isolate}.___SPill_17uwr_gg_{line-height:normal;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:var(--intergalactic-control-rounded, 6px)}.___SPill_17uwr_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_17uwr_gg_:active,.___SPill_17uwr_gg_:focus{outline:0;text-decoration:none}@media (hover:hover){.___SPill_17uwr_gg_:hover{outline:0;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_17uwr_gg_.__selected_17uwr_gg_{background:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_17uwr_gg_.__disabled_17uwr_gg_{cursor:default;pointer-events:none}.___SPill_17uwr_gg_.__disabled_17uwr_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPill_17uwr_gg_.__keyboardFocused_17uwr_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SText_17uwr_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_17uwr_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_17uwr_gg_._size_m_17uwr_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SText_17uwr_gg_,.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SText_17uwr_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_m_17uwr_gg_ .___SAddon_17uwr_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SAddon_17uwr_gg_:only-child,.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SText_17uwr_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_17uwr_gg_._size_l_17uwr_gg_ .___SAddon_17uwr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_17uwr_gg_._neighborLocation_right_17uwr_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_17uwr_gg_._neighborLocation_both_17uwr_gg_{border-radius:0;margin-left:-1px}.___SPill_17uwr_gg_._neighborLocation_left_17uwr_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "17uwr_gg_") /*__reshadow_css_end__*/, {
21
- "__SPills": "___SPills_17uwr_gg_",
22
- "__SPill": "___SPill_17uwr_gg_",
23
- "_selected": "__selected_17uwr_gg_",
24
- "_disabled": "__disabled_17uwr_gg_",
25
- "_keyboardFocused": "__keyboardFocused_17uwr_gg_",
26
- "__SText": "___SText_17uwr_gg_",
27
- "__SAddon": "___SAddon_17uwr_gg_",
28
- "_size_m": "_size_m_17uwr_gg_",
29
- "_size_l": "_size_l_17uwr_gg_",
30
- "_neighborLocation_right": "_neighborLocation_right_17uwr_gg_",
31
- "_neighborLocation_both": "_neighborLocation_both_17uwr_gg_",
32
- "_neighborLocation_left": "_neighborLocation_left_17uwr_gg_"
20
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPill_1ovug_gg_,.___SPills_1ovug_gg_{display:inline-flex;align-items:center;justify-content:center}.___SPills_1ovug_gg_{isolation:isolate}.___SPill_1ovug_gg_{line-height:normal;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:var(--intergalactic-control-rounded, 6px)}.___SPill_1ovug_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_1ovug_gg_:active,.___SPill_1ovug_gg_:focus{outline:0;text-decoration:none}@media (hover:hover){.___SPill_1ovug_gg_:hover{outline:0;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_1ovug_gg_.__selected_1ovug_gg_{background:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_1ovug_gg_.__disabled_1ovug_gg_{cursor:default;pointer-events:none}.___SPill_1ovug_gg_.__disabled_1ovug_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPill_1ovug_gg_.__keyboardFocused_1ovug_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.3))}.___SText_1ovug_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_1ovug_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_1ovug_gg_._size_m_1ovug_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SText_1ovug_gg_,.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SText_1ovug_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_m_1ovug_gg_ .___SAddon_1ovug_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SAddon_1ovug_gg_:only-child,.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SText_1ovug_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_1ovug_gg_._size_l_1ovug_gg_ .___SAddon_1ovug_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1ovug_gg_._neighborLocation_right_1ovug_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_1ovug_gg_._neighborLocation_both_1ovug_gg_{border-radius:0;margin-left:-1px}.___SPill_1ovug_gg_._neighborLocation_left_1ovug_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "1ovug_gg_") /*__reshadow_css_end__*/, {
21
+ "__SPills": "___SPills_1ovug_gg_",
22
+ "__SPill": "___SPill_1ovug_gg_",
23
+ "_selected": "__selected_1ovug_gg_",
24
+ "_disabled": "__disabled_1ovug_gg_",
25
+ "_keyboardFocused": "__keyboardFocused_1ovug_gg_",
26
+ "__SText": "___SText_1ovug_gg_",
27
+ "__SAddon": "___SAddon_1ovug_gg_",
28
+ "_size_m": "_size_m_1ovug_gg_",
29
+ "_size_l": "_size_l_1ovug_gg_",
30
+ "_neighborLocation_right": "_neighborLocation_right_1ovug_gg_",
31
+ "_neighborLocation_both": "_neighborLocation_both_1ovug_gg_",
32
+ "_neighborLocation_left": "_neighborLocation_left_1ovug_gg_"
33
33
  });
34
34
  var RootPills = /*#__PURE__*/function (_Component) {
35
35
  _inherits(RootPills, _Component);
@@ -41,11 +41,23 @@ var RootPills = /*#__PURE__*/function (_Component) {
41
41
  args[_key] = arguments[_key];
42
42
  }
43
43
  _this = _super.call.apply(_super, [this].concat(args));
44
+ _defineProperty(_assertThisInitialized(_this), "itemRefs", []);
44
45
  _defineProperty(_assertThisInitialized(_this), "bindHandlerClick", function (value) {
45
46
  return function (e) {
46
47
  _this.handlers.value(value, e);
47
48
  };
48
49
  });
50
+ _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (event) {
51
+ var _this$itemRefs$focuse;
52
+ if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;
53
+ var focusedIndex = _this.itemRefs.findIndex(function (item) {
54
+ return item === document.activeElement;
55
+ });
56
+ if (focusedIndex === -1) return;
57
+ if (event.key === 'ArrowLeft') focusedIndex--;
58
+ if (event.key === 'ArrowRight') focusedIndex++;
59
+ (_this$itemRefs$focuse = _this.itemRefs[focusedIndex]) === null || _this$itemRefs$focuse === void 0 ? void 0 : _this$itemRefs$focuse.focus();
60
+ });
49
61
  return _this;
50
62
  }
51
63
  _createClass(RootPills, [{
@@ -57,13 +69,17 @@ var RootPills = /*#__PURE__*/function (_Component) {
57
69
  }
58
70
  }, {
59
71
  key: "getItemProps",
60
- value: function getItemProps(props, i) {
72
+ value: function getItemProps(props, index) {
73
+ var _this2 = this;
61
74
  var _this$asProps = this.asProps,
62
75
  value = _this$asProps.value,
63
76
  size = _this$asProps.size,
64
77
  disabled = _this$asProps.disabled;
65
78
  return {
66
- index: i,
79
+ ref: function ref(node) {
80
+ return _this2.itemRefs[index] = node;
81
+ },
82
+ index: index,
67
83
  size: size,
68
84
  disabled: disabled,
69
85
  selected: value === props.value,
@@ -83,7 +99,8 @@ var RootPills = /*#__PURE__*/function (_Component) {
83
99
  disabled = _this$asProps2.disabled;
84
100
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SPills, _ref5.cn("SPills", _objectSpread({}, _assignProps({
85
101
  "role": "radiogroup",
86
- "aria-disabled": disabled
102
+ "aria-disabled": disabled,
103
+ "onKeyDown": this.handleKeyDown
87
104
  }, _ref))), /*#__PURE__*/React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
88
105
  "controlsLength": controlsLength
89
106
  }), /*#__PURE__*/React.createElement(Children, _ref5.cn("Children", {}))));
@@ -1 +1 @@
1
- {"version":3,"file":"Pills.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","useNeighborLocationDetect","keyboardFocusEnhance","addonTextChildren","style","_sstyled","insert","RootPills","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","value","e","handlers","_createClass","key","uncontrolledProps","getItemProps","props","i","_this$asProps","asProps","size","disabled","index","selected","onClick","bindHandlerClick","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","_assignProps2","Pills","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\n\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = {\n size: 'm',\n defaultValue: null,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, i) {\n const { value, size, disabled } = this.asProps;\n return {\n index: i,\n size,\n disabled,\n selected: value === props.value,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled } = this.asProps;\n\n return sstyled(styles)(\n <SPills render={Box} role=\"radiogroup\" aria-disabled={disabled}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n return sstyled(styles)(\n <SPill\n render={Box}\n tag=\"button\"\n type=\"button\"\n role=\"radio\"\n neighborLocation={neighborLocation}\n aria-checked={selected}\n aria-disabled={disabled}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag=\"span\" />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag=\"span\" />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport default Pills;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Pills.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","useNeighborLocationDetect","keyboardFocusEnhance","addonTextChildren","style","_sstyled","insert","RootPills","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","value","e","handlers","event","_this$itemRefs$focuse","key","focusedIndex","itemRefs","findIndex","item","document","activeElement","focus","_createClass","uncontrolledProps","getItemProps","props","index","_this2","_this$asProps","asProps","size","disabled","ref","node","selected","onClick","bindHandlerClick","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","handleKeyDown","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","_assignProps2","Pills","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\n\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = {\n size: 'm',\n defaultValue: null,\n };\n itemRefs = [];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size, disabled } = this.asProps;\n return {\n ref: (node) => (this.itemRefs[index] = node),\n index: index,\n size,\n disabled,\n selected: value === props.value,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n handleKeyDown = (event) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n\n let focusedIndex = this.itemRefs.findIndex((item) => item === document.activeElement);\n if (focusedIndex === -1) return;\n\n if (event.key === 'ArrowLeft') focusedIndex--;\n if (event.key === 'ArrowRight') focusedIndex++;\n\n this.itemRefs[focusedIndex]?.focus();\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role=\"radiogroup\"\n aria-disabled={disabled}\n onKeyDown={this.handleKeyDown}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n return sstyled(styles)(\n <SPill\n render={Box}\n tag=\"button\"\n type=\"button\"\n role=\"radio\"\n neighborLocation={neighborLocation}\n aria-checked={selected}\n aria-disabled={disabled}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag=\"span\" />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag=\"span\" />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport default Pills;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/pills",
3
3
  "description": "Semrush Pills Component",
4
- "version": "4.4.21",
4
+ "version": "4.4.23",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",