@semcore/pills 5.11.1 → 5.12.0-prerelease.1

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,7 +2,23 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [5.11.1-prerelease.0] - 2023-11-09
5
+ ## [5.12.0-prerelease.1] - 2023-11-23
6
+
7
+ ### Added
8
+
9
+ - New behavior `auto` instead of `radio` and `manual` instead of `tags`.
10
+
11
+ ### Fixed
12
+
13
+ - Selection of disabled `Pills.Item`.
14
+
15
+ ## [5.11.2] - 2023-11-21
16
+
17
+ ### Changed
18
+
19
+ - Version prepatch update due to children dependencies update (`@semcore/flex-box` [5.10.1 ~> 5.10.2], `@semcore/neighbor-location` [4.9.1 ~> 4.9.2], `@semcore/utils` [4.10.2 ~> 4.10.3], `@semcore/core` [2.9.1 ~> 2.9.2]).
20
+
21
+ ## [5.11.1] - 2023-11-09
6
22
 
7
23
  ### Changed
8
24
 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![downloads](https://img.shields.io/npm/dt/@semcore/pills.svg)](https://www.npmjs.com/package/@semcore/pills)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/semrush/intergalactic/blob/master/LICENSE)
6
6
 
7
- > This component is part of the Intergalactic design system
7
+ > This component is part of the Intergalactic Design System
8
8
 
9
9
  ### 📖 [Component documentation](https://developer.semrush.com/intergalactic/components/pills/)
10
10
 
package/lib/cjs/Pills.js CHANGED
@@ -19,21 +19,25 @@ var _flexBox = require("@semcore/flex-box");
19
19
  var _neighborLocation = _interopRequireWildcard(require("@semcore/neighbor-location"));
20
20
  var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/keyboardFocusEnhance"));
21
21
  var _addonTextChildren = _interopRequireDefault(require("@semcore/utils/lib/addonTextChildren"));
22
+ var _logger = _interopRequireDefault(require("@semcore/utils/lib/logger"));
22
23
  /*__reshadow-styles__:"./style/pills.shadow.css"*/
23
- var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPill_m96vm_gg_,.___SPills_m96vm_gg_{display:inline-flex;align-items:center;justify-content:center;outline:0}.___SPills_m96vm_gg_{isolation:isolate}.___SPill_m96vm_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;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;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_m96vm_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_m96vm_gg_:active,.___SPill_m96vm_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_m96vm_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_m96vm_gg_.__selected_m96vm_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_m96vm_gg_.__disabled_m96vm_gg_{cursor:default;pointer-events:none}.___SPill_m96vm_gg_.__disabled_m96vm_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPills_m96vm_gg_.__keyboardFocused_m96vm_gg_:not(._behavior_tabs_m96vm_gg_){box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SPill_m96vm_gg_.__keyboardFocused_m96vm_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SText_m96vm_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_m96vm_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_m96vm_gg_._size_m_m96vm_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SText_m96vm_gg_,.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SText_m96vm_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SAddon_m96vm_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SAddon_m96vm_gg_:only-child,.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SText_m96vm_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_m96vm_gg_._neighborLocation_right_m96vm_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_m96vm_gg_._neighborLocation_both_m96vm_gg_{border-radius:0;margin-left:-1px}.___SPill_m96vm_gg_._neighborLocation_left_m96vm_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "m96vm_gg_") /*__reshadow_css_end__*/, {
24
- "__SPills": "___SPills_m96vm_gg_",
25
- "__SPill": "___SPill_m96vm_gg_",
26
- "_selected": "__selected_m96vm_gg_",
27
- "_keyboardFocused": "__keyboardFocused_m96vm_gg_",
28
- "_behavior_tabs": "_behavior_tabs_m96vm_gg_",
29
- "__SText": "___SText_m96vm_gg_",
30
- "__SAddon": "___SAddon_m96vm_gg_",
31
- "_neighborLocation_right": "_neighborLocation_right_m96vm_gg_",
32
- "_neighborLocation_both": "_neighborLocation_both_m96vm_gg_",
33
- "_neighborLocation_left": "_neighborLocation_left_m96vm_gg_",
34
- "_disabled": "__disabled_m96vm_gg_",
35
- "_size_m": "_size_m_m96vm_gg_",
36
- "_size_l": "_size_l_m96vm_gg_"
24
+ var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPill_njfhv_gg_,.___SPills_njfhv_gg_{display:inline-flex;align-items:center;justify-content:center;outline:0}.___SPills_njfhv_gg_{isolation:isolate}.___SPill_njfhv_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;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;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_njfhv_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_njfhv_gg_:active,.___SPill_njfhv_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_njfhv_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_njfhv_gg_.__selected_njfhv_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_njfhv_gg_.__disabled_njfhv_gg_{cursor:default;pointer-events:none}.___SPill_njfhv_gg_.__disabled_njfhv_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_auto_njfhv_gg_,.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_radio_njfhv_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_manual_njfhv_gg_>.___SPill_njfhv_gg_.__keyboardFocused_njfhv_gg_,.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_tag_njfhv_gg_>.___SPill_njfhv_gg_.__keyboardFocused_njfhv_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SText_njfhv_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_njfhv_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_njfhv_gg_._size_m_njfhv_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SText_njfhv_gg_,.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SText_njfhv_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SAddon_njfhv_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SAddon_njfhv_gg_:only-child,.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SText_njfhv_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_njfhv_gg_._neighborLocation_right_njfhv_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_njfhv_gg_._neighborLocation_both_njfhv_gg_{border-radius:0;margin-left:-1px}.___SPill_njfhv_gg_._neighborLocation_left_njfhv_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "njfhv_gg_") /*__reshadow_css_end__*/, {
25
+ "__SPills": "___SPills_njfhv_gg_",
26
+ "__SPill": "___SPill_njfhv_gg_",
27
+ "_selected": "__selected_njfhv_gg_",
28
+ "_keyboardFocused": "__keyboardFocused_njfhv_gg_",
29
+ "_behavior_auto": "_behavior_auto_njfhv_gg_",
30
+ "_behavior_radio": "_behavior_radio_njfhv_gg_",
31
+ "__SText": "___SText_njfhv_gg_",
32
+ "__SAddon": "___SAddon_njfhv_gg_",
33
+ "_neighborLocation_right": "_neighborLocation_right_njfhv_gg_",
34
+ "_neighborLocation_both": "_neighborLocation_both_njfhv_gg_",
35
+ "_neighborLocation_left": "_neighborLocation_left_njfhv_gg_",
36
+ "_disabled": "__disabled_njfhv_gg_",
37
+ "_behavior_manual": "_behavior_manual_njfhv_gg_",
38
+ "_behavior_tag": "_behavior_tag_njfhv_gg_",
39
+ "_size_m": "_size_m_njfhv_gg_",
40
+ "_size_l": "_size_l_njfhv_gg_"
37
41
  });
38
42
  var RootPills = /*#__PURE__*/function (_Component) {
39
43
  (0, _inherits2["default"])(RootPills, _Component);
@@ -52,31 +56,53 @@ var RootPills = /*#__PURE__*/function (_Component) {
52
56
  _this.handlers.value(value, e);
53
57
  };
54
58
  });
59
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeIndex", function (startIndex, type) {
60
+ var selectable = false;
61
+ while (!selectable && startIndex >= 0 && startIndex < _this.itemValues.length) {
62
+ if (type === 'increment') startIndex++;
63
+ if (type === 'decrement') startIndex--;
64
+ var element = _this.itemRefs[startIndex];
65
+ if ((element === null || element === void 0 ? void 0 : element.disabled) === false) {
66
+ selectable = true;
67
+ }
68
+ }
69
+ return startIndex >= 0 && startIndex < _this.itemValues.length ? startIndex : undefined;
70
+ });
55
71
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event) {
56
72
  if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;
57
- if (_this.asProps.behavior === 'radio') {
73
+ var behavior = _this.asProps.behavior;
74
+ if (behavior === 'radio' || behavior === 'auto') {
58
75
  var selectedIndex = _this.itemValues.findIndex(function (value) {
59
76
  return value === _this.asProps.value;
60
77
  });
61
78
  if (selectedIndex === -1) return;
62
- if (event.key === 'ArrowLeft') selectedIndex--;
63
- if (event.key === 'ArrowRight') selectedIndex++;
64
- if (selectedIndex < 0 || selectedIndex >= _this.itemValues.length) return;
65
- _this.handlers.value(_this.itemValues[selectedIndex], event);
79
+ selectedIndex = _this.changeIndex(selectedIndex, event.key === 'ArrowLeft' ? 'decrement' : 'increment');
80
+ if (selectedIndex !== undefined) {
81
+ var _this$itemRefs$select;
82
+ _this.handlers.value(_this.itemValues[selectedIndex], event);
83
+ (_this$itemRefs$select = _this.itemRefs[selectedIndex]) === null || _this$itemRefs$select === void 0 ? void 0 : _this$itemRefs$select.focus();
84
+ }
66
85
  } else {
67
- var _this$itemRefs$focuse;
68
86
  var focusedIndex = _this.itemRefs.findIndex(function (item) {
69
87
  return item === document.activeElement;
70
88
  });
71
89
  if (focusedIndex === -1) return;
72
- if (event.key === 'ArrowLeft') focusedIndex--;
73
- if (event.key === 'ArrowRight') focusedIndex++;
74
- (_this$itemRefs$focuse = _this.itemRefs[focusedIndex]) === null || _this$itemRefs$focuse === void 0 ? void 0 : _this$itemRefs$focuse.focus();
90
+ focusedIndex = _this.changeIndex(focusedIndex, event.key === 'ArrowLeft' ? 'decrement' : 'increment');
91
+ if (focusedIndex !== undefined) {
92
+ var _this$itemRefs$focuse;
93
+ (_this$itemRefs$focuse = _this.itemRefs[focusedIndex]) === null || _this$itemRefs$focuse === void 0 ? void 0 : _this$itemRefs$focuse.focus();
94
+ }
75
95
  }
76
96
  });
77
97
  return _this;
78
98
  }
79
99
  (0, _createClass2["default"])(RootPills, [{
100
+ key: "componentDidMount",
101
+ value: function componentDidMount() {
102
+ _logger["default"].warn(this.asProps.behavior === 'tabs', 'Use behavior `manual` instead of `tabs`. \n`tabs` is deprecated and will be removed in the next major release.', 'Pills');
103
+ _logger["default"].warn(this.asProps.behavior === 'radio', 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \n`radio` is deprecated and will be removed in the next major release.', 'Pills');
104
+ }
105
+ }, {
80
106
  key: "uncontrolledProps",
81
107
  value: function uncontrolledProps() {
82
108
  return {
@@ -102,7 +128,7 @@ var RootPills = /*#__PURE__*/function (_Component) {
102
128
  disabled: disabled,
103
129
  selected: value === props.value,
104
130
  behavior: behavior,
105
- tabIndex: behavior === 'tabs' ? 0 : -1,
131
+ tabIndex: behavior === 'tabs' || behavior === 'manual' ? 0 : -1,
106
132
  onClick: this.bindHandlerClick(props.value)
107
133
  };
108
134
  }
@@ -119,7 +145,7 @@ var RootPills = /*#__PURE__*/function (_Component) {
119
145
  disabled = _this$asProps2.disabled,
120
146
  behavior = _this$asProps2.behavior;
121
147
  return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPills, _ref5.cn("SPills", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
122
- "role": behavior === 'radio' ? 'radiogroup' : 'tablist',
148
+ "role": behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist',
123
149
  "aria-disabled": disabled,
124
150
  "onKeyDown": this.handleKeyDown
125
151
  }, _ref))), /*#__PURE__*/_react["default"].createElement(_neighborLocation["default"], _ref5.cn("NeighborLocation", {
@@ -136,8 +162,8 @@ var RootPills = /*#__PURE__*/function (_Component) {
136
162
  return {
137
163
  size: 'm',
138
164
  defaultValue: null,
139
- behavior: behavior !== null && behavior !== void 0 ? behavior : 'tabs',
140
- tabIndex: behavior === 'tabs' ? -1 : 0
165
+ behavior: behavior !== null && behavior !== void 0 ? behavior : 'auto',
166
+ tabIndex: behavior === 'tabs' || behavior === 'manual' ? -1 : 0
141
167
  };
142
168
  });
143
169
  (0, _defineProperty2["default"])(RootPills, "enhance", [(0, _keyboardFocusEnhance["default"])()]);
@@ -155,7 +181,7 @@ function Pill(props) {
155
181
  behavior = props.behavior;
156
182
  var neighborLocation = (0, _neighborLocation.useNeighborLocationDetect)(index);
157
183
  var roleAreaProps = {};
158
- if (behavior === 'radio') {
184
+ if (behavior === 'radio' || behavior === 'auto') {
159
185
  roleAreaProps.role = 'radio';
160
186
  roleAreaProps['aria-checked'] = selected;
161
187
  } else {
@@ -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","event","key","asProps","behavior","selectedIndex","itemValues","findIndex","_this$itemRefs$focuse","focusedIndex","itemRefs","item","document","activeElement","focus","_createClass2","uncontrolledProps","getItemProps","props","index","_this2","_this$asProps","size","disabled","ref","node","selected","tabIndex","onClick","bindHandlerClick","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","handleKeyDown","Component","_ref9","defaultValue","keyboardFocusEnhance","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","roleAreaProps","role","Pills","Item","Addon","tag","addonTextChildren","Text","enhance","_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 = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'tabs',\n tabIndex: behavior === 'tabs' ? -1 : 0,\n });\n itemRefs = [];\n itemValues = [];\n static enhance = [keyboardFocusEnhance()];\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, behavior } = this.asProps;\n this.itemValues[index] = props.value;\n return {\n ref: (node) => {\n this.itemRefs[index] = node;\n },\n index: index,\n size,\n disabled,\n selected: value === props.value,\n behavior,\n tabIndex: behavior === 'tabs' ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n handleKeyDown = (event) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n if (this.asProps.behavior === 'radio') {\n let selectedIndex = this.itemValues.findIndex((value) => value === this.asProps.value);\n if (selectedIndex === -1) return;\n\n if (event.key === 'ArrowLeft') selectedIndex--;\n if (event.key === 'ArrowRight') selectedIndex++;\n if (selectedIndex < 0 || selectedIndex >= this.itemValues.length) return;\n\n this.handlers.value(this.itemValues[selectedIndex], event);\n } else {\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\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' ? 'radiogroup' : 'tablist'}\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, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\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","_logger","style","sstyled","insert","RootPills","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","e","handlers","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","event","key","behavior","asProps","selectedIndex","findIndex","changeIndex","_this$itemRefs$select","focus","focusedIndex","item","document","activeElement","_this$itemRefs$focuse","_createClass2","componentDidMount","log","warn","uncontrolledProps","getItemProps","props","index","_this2","_this$asProps","size","ref","node","selected","tabIndex","onClick","bindHandlerClick","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","handleKeyDown","Component","_ref9","defaultValue","keyboardFocusEnhance","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","roleAreaProps","role","Pills","Item","Addon","tag","addonTextChildren","Text","enhance","_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';\nimport log from '@semcore/utils/lib/logger';\n\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n tabIndex: behavior === 'tabs' || behavior === 'manual' ? -1 : 0,\n });\n itemRefs = [];\n itemValues = [];\n static enhance = [keyboardFocusEnhance()];\n\n componentDidMount() {\n log.warn(\n this.asProps.behavior === 'tabs',\n 'Use behavior `manual` instead of `tabs`. \\n`tabs` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n\n log.warn(\n this.asProps.behavior === 'radio',\n 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \\n`radio` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\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, index) {\n const { value, size, disabled, behavior } = this.asProps;\n this.itemValues[index] = props.value;\n return {\n ref: (node) => {\n this.itemRefs[index] = node;\n },\n index: index,\n size,\n disabled,\n selected: value === props.value,\n behavior,\n tabIndex: behavior === 'tabs' || behavior === 'manual' ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n changeIndex = (startIndex, type) => {\n let selectable = false;\n\n while (!selectable && startIndex >= 0 && startIndex < this.itemValues.length) {\n if (type === 'increment') startIndex++;\n if (type === 'decrement') startIndex--;\n\n const element = this.itemRefs[startIndex];\n\n if (element?.disabled === false) {\n selectable = true;\n }\n }\n\n return startIndex >= 0 && startIndex < this.itemValues.length ? startIndex : undefined;\n };\n\n handleKeyDown = (event) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n const behavior = this.asProps.behavior;\n if (behavior === 'radio' || behavior === 'auto') {\n let selectedIndex = this.itemValues.findIndex((value) => value === this.asProps.value);\n if (selectedIndex === -1) return;\n\n selectedIndex = this.changeIndex(\n selectedIndex,\n event.key === 'ArrowLeft' ? 'decrement' : 'increment',\n );\n\n if (selectedIndex !== undefined) {\n this.handlers.value(this.itemValues[selectedIndex], event);\n this.itemRefs[selectedIndex]?.focus();\n }\n } else {\n let focusedIndex = this.itemRefs.findIndex((item) => item === document.activeElement);\n if (focusedIndex === -1) return;\n\n focusedIndex = this.changeIndex(\n focusedIndex,\n event.key === 'ArrowLeft' ? 'decrement' : 'increment',\n );\n\n if (focusedIndex !== undefined) {\n this.itemRefs[focusedIndex]?.focus();\n }\n }\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist'}\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, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio' || behavior === 'auto') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\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 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport type PillsValue = string | number | boolean | null;\n\n/** @deprecated */\nexport interface IPillsProps<T extends PillsValue = PillsValue>\n extends PillsProps<T>,\n UnknownProperties {}\nexport type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProps &\n BoxProps & {\n /** Pills size */\n size?: 'l' | 'm';\n /** Disabled state */\n disabled?: boolean;\n /** Called when the selection is changed */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLSpanElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value for the selected pill */\n value?: T;\n /** Default value for the selected pill */\n defaultValue?: T;\n /** Sets semantic role for corresponding behavior,\n * when set to `radio` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `radio` behavior in forms\n * while `tabs` behavior for navigation and layout.\n * @default tabs\n */\n behavior?: 'tabs' | 'radio';\n };\n\n/** @deprecated */\nexport interface IPillProps extends PillProps, UnknownProperties {}\nexport type PillProps = BoxProps &\n NeighborItemProps &\n KeyboardFocusProps & {\n /** Pill value */\n value?: PillsValue;\n /** Disabled state */\n disabled?: boolean;\n /** Selected state */\n selected?: boolean;\n /** Left addon text */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface IPillsContext extends PillsContext, UnknownProperties {}\nexport type PillsContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IPillsHandlers extends PillsHandlers, UnknownProperties {}\nexport type PillsHandlers = {\n value: (value: PillsValue) => void;\n};\n\ntype IntergalacticPillsComponent = (<\n Value extends PillsValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n PillsProps<Value>,\n PillsContext,\n [handlers: PillsHandlers]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div'>;\n\ndeclare const Pills: IntergalacticPillsComponent & {\n Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\nexport default Pills;\n"],"mappings":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport type PillsValue = string | number | boolean | null;\n\n/** @deprecated */\nexport interface IPillsProps<T extends PillsValue = PillsValue>\n extends PillsProps<T>,\n UnknownProperties {}\nexport type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProps &\n KeyboardFocusProps &\n BoxProps & {\n /** Pills size */\n size?: 'l' | 'm';\n /** Disabled state */\n disabled?: boolean;\n /** Called when the selection is changed */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLSpanElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value for the selected pill */\n value?: T;\n /** Default value for the selected pill */\n defaultValue?: T;\n /** Sets semantic role for corresponding behavior,\n * when set to `radio` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `radio` behavior in forms\n * while `tabs` behavior for navigation and layout.\n * @default tabs\n */\n behavior?: /** @deprecated use `manual` */\n | 'tabs'\n /** @deprecated use `auto` */\n | 'radio'\n | 'auto'\n | 'manual';\n };\n\n/** @deprecated */\nexport interface IPillProps extends PillProps, UnknownProperties {}\nexport type PillProps = BoxProps &\n NeighborItemProps &\n KeyboardFocusProps & {\n /** Pill value */\n value?: PillsValue;\n /** Disabled state */\n disabled?: boolean;\n /** Selected state */\n selected?: boolean;\n /** Left addon text */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface IPillsContext extends PillsContext, UnknownProperties {}\nexport type PillsContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IPillsHandlers extends PillsHandlers, UnknownProperties {}\nexport type PillsHandlers = {\n value: (value: PillsValue) => void;\n};\n\ntype IntergalacticPillsComponent = (<\n Value extends PillsValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n PillsProps<Value>,\n PillsContext,\n [handlers: PillsHandlers]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div'>;\n\ndeclare const Pills: IntergalacticPillsComponent & {\n Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\nexport default Pills;\n"],"mappings":""}
@@ -64,13 +64,15 @@ SPill[disabled] {
64
64
  }
65
65
  }
66
66
 
67
- SPills[keyboardFocused]:not([behavior=tabs]) {
67
+ SPills[keyboardFocused][behavior=auto], SPills[keyboardFocused][behavior=radio] {
68
68
  box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
69
69
  }
70
70
 
71
- SPill[keyboardFocused] {
72
- box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
73
- z-index: 1;
71
+ SPills[keyboardFocused][behavior=manual], SPills[keyboardFocused][behavior=tag] {
72
+ > SPill[keyboardFocused] {
73
+ box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
74
+ z-index: 1;
75
+ }
74
76
  }
75
77
 
76
78
  SText {
package/lib/es6/Pills.js CHANGED
@@ -16,21 +16,25 @@ import { Box } from '@semcore/flex-box';
16
16
  import NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';
17
17
  import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
18
18
  import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
19
+ import log from '@semcore/utils/lib/logger';
19
20
  /*__reshadow-styles__:"./style/pills.shadow.css"*/
20
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPill_m96vm_gg_,.___SPills_m96vm_gg_{display:inline-flex;align-items:center;justify-content:center;outline:0}.___SPills_m96vm_gg_{isolation:isolate}.___SPill_m96vm_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;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;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_m96vm_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_m96vm_gg_:active,.___SPill_m96vm_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_m96vm_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_m96vm_gg_.__selected_m96vm_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_m96vm_gg_.__disabled_m96vm_gg_{cursor:default;pointer-events:none}.___SPill_m96vm_gg_.__disabled_m96vm_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPills_m96vm_gg_.__keyboardFocused_m96vm_gg_:not(._behavior_tabs_m96vm_gg_){box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SPill_m96vm_gg_.__keyboardFocused_m96vm_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SText_m96vm_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_m96vm_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_m96vm_gg_._size_m_m96vm_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SText_m96vm_gg_,.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SText_m96vm_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_m_m96vm_gg_ .___SAddon_m96vm_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SAddon_m96vm_gg_:only-child,.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SText_m96vm_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_m96vm_gg_._size_l_m96vm_gg_ .___SAddon_m96vm_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_m96vm_gg_._neighborLocation_right_m96vm_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_m96vm_gg_._neighborLocation_both_m96vm_gg_{border-radius:0;margin-left:-1px}.___SPill_m96vm_gg_._neighborLocation_left_m96vm_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "m96vm_gg_") /*__reshadow_css_end__*/, {
21
- "__SPills": "___SPills_m96vm_gg_",
22
- "__SPill": "___SPill_m96vm_gg_",
23
- "_selected": "__selected_m96vm_gg_",
24
- "_keyboardFocused": "__keyboardFocused_m96vm_gg_",
25
- "_behavior_tabs": "_behavior_tabs_m96vm_gg_",
26
- "__SText": "___SText_m96vm_gg_",
27
- "__SAddon": "___SAddon_m96vm_gg_",
28
- "_neighborLocation_right": "_neighborLocation_right_m96vm_gg_",
29
- "_neighborLocation_both": "_neighborLocation_both_m96vm_gg_",
30
- "_neighborLocation_left": "_neighborLocation_left_m96vm_gg_",
31
- "_disabled": "__disabled_m96vm_gg_",
32
- "_size_m": "_size_m_m96vm_gg_",
33
- "_size_l": "_size_l_m96vm_gg_"
21
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPill_njfhv_gg_,.___SPills_njfhv_gg_{display:inline-flex;align-items:center;justify-content:center;outline:0}.___SPills_njfhv_gg_{isolation:isolate}.___SPill_njfhv_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;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;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_njfhv_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_njfhv_gg_:active,.___SPill_njfhv_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_njfhv_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none;background:var(--intergalactic-bg-primary-neutral-hover, #f4f5f9)}}.___SPill_njfhv_gg_.__selected_njfhv_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));border-color:var(--intergalactic-border-info-active, #006dca);z-index:1}.___SPill_njfhv_gg_.__disabled_njfhv_gg_{cursor:default;pointer-events:none}.___SPill_njfhv_gg_.__disabled_njfhv_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.3)}.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_auto_njfhv_gg_,.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_radio_njfhv_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_manual_njfhv_gg_>.___SPill_njfhv_gg_.__keyboardFocused_njfhv_gg_,.___SPills_njfhv_gg_.__keyboardFocused_njfhv_gg_._behavior_tag_njfhv_gg_>.___SPill_njfhv_gg_.__keyboardFocused_njfhv_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));z-index:1}.___SText_njfhv_gg_{color:var(--intergalactic-text-primary, #191b23);display:inline-flex}.___SAddon_njfhv_gg_{color:var(--intergalactic-text-secondary, #6c6e79);display:inline-flex;align-items:center;justify-content:center}.___SPill_njfhv_gg_._size_m_njfhv_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SText_njfhv_gg_,.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SText_njfhv_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_m_njfhv_gg_ .___SAddon_njfhv_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SAddon_njfhv_gg_:only-child,.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SText_njfhv_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_njfhv_gg_._size_l_njfhv_gg_ .___SAddon_njfhv_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_njfhv_gg_._neighborLocation_right_njfhv_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_njfhv_gg_._neighborLocation_both_njfhv_gg_{border-radius:0;margin-left:-1px}.___SPill_njfhv_gg_._neighborLocation_left_njfhv_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}" /*__inner_css_end__*/, "njfhv_gg_") /*__reshadow_css_end__*/, {
22
+ "__SPills": "___SPills_njfhv_gg_",
23
+ "__SPill": "___SPill_njfhv_gg_",
24
+ "_selected": "__selected_njfhv_gg_",
25
+ "_keyboardFocused": "__keyboardFocused_njfhv_gg_",
26
+ "_behavior_auto": "_behavior_auto_njfhv_gg_",
27
+ "_behavior_radio": "_behavior_radio_njfhv_gg_",
28
+ "__SText": "___SText_njfhv_gg_",
29
+ "__SAddon": "___SAddon_njfhv_gg_",
30
+ "_neighborLocation_right": "_neighborLocation_right_njfhv_gg_",
31
+ "_neighborLocation_both": "_neighborLocation_both_njfhv_gg_",
32
+ "_neighborLocation_left": "_neighborLocation_left_njfhv_gg_",
33
+ "_disabled": "__disabled_njfhv_gg_",
34
+ "_behavior_manual": "_behavior_manual_njfhv_gg_",
35
+ "_behavior_tag": "_behavior_tag_njfhv_gg_",
36
+ "_size_m": "_size_m_njfhv_gg_",
37
+ "_size_l": "_size_l_njfhv_gg_"
34
38
  });
35
39
  var RootPills = /*#__PURE__*/function (_Component) {
36
40
  _inherits(RootPills, _Component);
@@ -49,31 +53,53 @@ var RootPills = /*#__PURE__*/function (_Component) {
49
53
  _this.handlers.value(value, e);
50
54
  };
51
55
  });
56
+ _defineProperty(_assertThisInitialized(_this), "changeIndex", function (startIndex, type) {
57
+ var selectable = false;
58
+ while (!selectable && startIndex >= 0 && startIndex < _this.itemValues.length) {
59
+ if (type === 'increment') startIndex++;
60
+ if (type === 'decrement') startIndex--;
61
+ var element = _this.itemRefs[startIndex];
62
+ if ((element === null || element === void 0 ? void 0 : element.disabled) === false) {
63
+ selectable = true;
64
+ }
65
+ }
66
+ return startIndex >= 0 && startIndex < _this.itemValues.length ? startIndex : undefined;
67
+ });
52
68
  _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (event) {
53
69
  if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;
54
- if (_this.asProps.behavior === 'radio') {
70
+ var behavior = _this.asProps.behavior;
71
+ if (behavior === 'radio' || behavior === 'auto') {
55
72
  var selectedIndex = _this.itemValues.findIndex(function (value) {
56
73
  return value === _this.asProps.value;
57
74
  });
58
75
  if (selectedIndex === -1) return;
59
- if (event.key === 'ArrowLeft') selectedIndex--;
60
- if (event.key === 'ArrowRight') selectedIndex++;
61
- if (selectedIndex < 0 || selectedIndex >= _this.itemValues.length) return;
62
- _this.handlers.value(_this.itemValues[selectedIndex], event);
76
+ selectedIndex = _this.changeIndex(selectedIndex, event.key === 'ArrowLeft' ? 'decrement' : 'increment');
77
+ if (selectedIndex !== undefined) {
78
+ var _this$itemRefs$select;
79
+ _this.handlers.value(_this.itemValues[selectedIndex], event);
80
+ (_this$itemRefs$select = _this.itemRefs[selectedIndex]) === null || _this$itemRefs$select === void 0 ? void 0 : _this$itemRefs$select.focus();
81
+ }
63
82
  } else {
64
- var _this$itemRefs$focuse;
65
83
  var focusedIndex = _this.itemRefs.findIndex(function (item) {
66
84
  return item === document.activeElement;
67
85
  });
68
86
  if (focusedIndex === -1) return;
69
- if (event.key === 'ArrowLeft') focusedIndex--;
70
- if (event.key === 'ArrowRight') focusedIndex++;
71
- (_this$itemRefs$focuse = _this.itemRefs[focusedIndex]) === null || _this$itemRefs$focuse === void 0 ? void 0 : _this$itemRefs$focuse.focus();
87
+ focusedIndex = _this.changeIndex(focusedIndex, event.key === 'ArrowLeft' ? 'decrement' : 'increment');
88
+ if (focusedIndex !== undefined) {
89
+ var _this$itemRefs$focuse;
90
+ (_this$itemRefs$focuse = _this.itemRefs[focusedIndex]) === null || _this$itemRefs$focuse === void 0 ? void 0 : _this$itemRefs$focuse.focus();
91
+ }
72
92
  }
73
93
  });
74
94
  return _this;
75
95
  }
76
96
  _createClass(RootPills, [{
97
+ key: "componentDidMount",
98
+ value: function componentDidMount() {
99
+ log.warn(this.asProps.behavior === 'tabs', 'Use behavior `manual` instead of `tabs`. \n`tabs` is deprecated and will be removed in the next major release.', 'Pills');
100
+ log.warn(this.asProps.behavior === 'radio', 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \n`radio` is deprecated and will be removed in the next major release.', 'Pills');
101
+ }
102
+ }, {
77
103
  key: "uncontrolledProps",
78
104
  value: function uncontrolledProps() {
79
105
  return {
@@ -99,7 +125,7 @@ var RootPills = /*#__PURE__*/function (_Component) {
99
125
  disabled: disabled,
100
126
  selected: value === props.value,
101
127
  behavior: behavior,
102
- tabIndex: behavior === 'tabs' ? 0 : -1,
128
+ tabIndex: behavior === 'tabs' || behavior === 'manual' ? 0 : -1,
103
129
  onClick: this.bindHandlerClick(props.value)
104
130
  };
105
131
  }
@@ -116,7 +142,7 @@ var RootPills = /*#__PURE__*/function (_Component) {
116
142
  disabled = _this$asProps2.disabled,
117
143
  behavior = _this$asProps2.behavior;
118
144
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SPills, _ref5.cn("SPills", _objectSpread({}, _assignProps({
119
- "role": behavior === 'radio' ? 'radiogroup' : 'tablist',
145
+ "role": behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist',
120
146
  "aria-disabled": disabled,
121
147
  "onKeyDown": this.handleKeyDown
122
148
  }, _ref))), /*#__PURE__*/React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
@@ -133,8 +159,8 @@ _defineProperty(RootPills, "defaultProps", function (_ref9) {
133
159
  return {
134
160
  size: 'm',
135
161
  defaultValue: null,
136
- behavior: behavior !== null && behavior !== void 0 ? behavior : 'tabs',
137
- tabIndex: behavior === 'tabs' ? -1 : 0
162
+ behavior: behavior !== null && behavior !== void 0 ? behavior : 'auto',
163
+ tabIndex: behavior === 'tabs' || behavior === 'manual' ? -1 : 0
138
164
  };
139
165
  });
140
166
  _defineProperty(RootPills, "enhance", [keyboardFocusEnhance()]);
@@ -152,7 +178,7 @@ function Pill(props) {
152
178
  behavior = props.behavior;
153
179
  var neighborLocation = useNeighborLocationDetect(index);
154
180
  var roleAreaProps = {};
155
- if (behavior === 'radio') {
181
+ if (behavior === 'radio' || behavior === 'auto') {
156
182
  roleAreaProps.role = 'radio';
157
183
  roleAreaProps['aria-checked'] = selected;
158
184
  } else {
@@ -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","event","key","asProps","behavior","selectedIndex","itemValues","findIndex","_this$itemRefs$focuse","focusedIndex","itemRefs","item","document","activeElement","focus","_createClass","uncontrolledProps","getItemProps","props","index","_this2","_this$asProps","size","disabled","ref","node","selected","tabIndex","onClick","bindHandlerClick","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","handleKeyDown","_ref9","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","roleAreaProps","role","_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 = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'tabs',\n tabIndex: behavior === 'tabs' ? -1 : 0,\n });\n itemRefs = [];\n itemValues = [];\n static enhance = [keyboardFocusEnhance()];\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, behavior } = this.asProps;\n this.itemValues[index] = props.value;\n return {\n ref: (node) => {\n this.itemRefs[index] = node;\n },\n index: index,\n size,\n disabled,\n selected: value === props.value,\n behavior,\n tabIndex: behavior === 'tabs' ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n handleKeyDown = (event) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n if (this.asProps.behavior === 'radio') {\n let selectedIndex = this.itemValues.findIndex((value) => value === this.asProps.value);\n if (selectedIndex === -1) return;\n\n if (event.key === 'ArrowLeft') selectedIndex--;\n if (event.key === 'ArrowRight') selectedIndex++;\n if (selectedIndex < 0 || selectedIndex >= this.itemValues.length) return;\n\n this.handlers.value(this.itemValues[selectedIndex], event);\n } else {\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\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' ? 'radiogroup' : 'tablist'}\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, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\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","log","style","_sstyled","insert","RootPills","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","value","e","handlers","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","event","key","behavior","asProps","selectedIndex","findIndex","changeIndex","_this$itemRefs$select","focus","focusedIndex","item","document","activeElement","_this$itemRefs$focuse","_createClass","componentDidMount","warn","uncontrolledProps","getItemProps","props","index","_this2","_this$asProps","size","ref","node","selected","tabIndex","onClick","bindHandlerClick","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","handleKeyDown","_ref9","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","roleAreaProps","role","_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';\nimport log from '@semcore/utils/lib/logger';\n\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n tabIndex: behavior === 'tabs' || behavior === 'manual' ? -1 : 0,\n });\n itemRefs = [];\n itemValues = [];\n static enhance = [keyboardFocusEnhance()];\n\n componentDidMount() {\n log.warn(\n this.asProps.behavior === 'tabs',\n 'Use behavior `manual` instead of `tabs`. \\n`tabs` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n\n log.warn(\n this.asProps.behavior === 'radio',\n 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \\n`radio` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\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, index) {\n const { value, size, disabled, behavior } = this.asProps;\n this.itemValues[index] = props.value;\n return {\n ref: (node) => {\n this.itemRefs[index] = node;\n },\n index: index,\n size,\n disabled,\n selected: value === props.value,\n behavior,\n tabIndex: behavior === 'tabs' || behavior === 'manual' ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n };\n }\n\n changeIndex = (startIndex, type) => {\n let selectable = false;\n\n while (!selectable && startIndex >= 0 && startIndex < this.itemValues.length) {\n if (type === 'increment') startIndex++;\n if (type === 'decrement') startIndex--;\n\n const element = this.itemRefs[startIndex];\n\n if (element?.disabled === false) {\n selectable = true;\n }\n }\n\n return startIndex >= 0 && startIndex < this.itemValues.length ? startIndex : undefined;\n };\n\n handleKeyDown = (event) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n const behavior = this.asProps.behavior;\n if (behavior === 'radio' || behavior === 'auto') {\n let selectedIndex = this.itemValues.findIndex((value) => value === this.asProps.value);\n if (selectedIndex === -1) return;\n\n selectedIndex = this.changeIndex(\n selectedIndex,\n event.key === 'ArrowLeft' ? 'decrement' : 'increment',\n );\n\n if (selectedIndex !== undefined) {\n this.handlers.value(this.itemValues[selectedIndex], event);\n this.itemRefs[selectedIndex]?.focus();\n }\n } else {\n let focusedIndex = this.itemRefs.findIndex((item) => item === document.activeElement);\n if (focusedIndex === -1) return;\n\n focusedIndex = this.changeIndex(\n focusedIndex,\n event.key === 'ArrowLeft' ? 'decrement' : 'increment',\n );\n\n if (focusedIndex !== undefined) {\n this.itemRefs[focusedIndex]?.focus();\n }\n }\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist'}\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, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio' || behavior === 'auto') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\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 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport type PillsValue = string | number | boolean | null;\n\n/** @deprecated */\nexport interface IPillsProps<T extends PillsValue = PillsValue>\n extends PillsProps<T>,\n UnknownProperties {}\nexport type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProps &\n BoxProps & {\n /** Pills size */\n size?: 'l' | 'm';\n /** Disabled state */\n disabled?: boolean;\n /** Called when the selection is changed */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLSpanElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value for the selected pill */\n value?: T;\n /** Default value for the selected pill */\n defaultValue?: T;\n /** Sets semantic role for corresponding behavior,\n * when set to `radio` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `radio` behavior in forms\n * while `tabs` behavior for navigation and layout.\n * @default tabs\n */\n behavior?: 'tabs' | 'radio';\n };\n\n/** @deprecated */\nexport interface IPillProps extends PillProps, UnknownProperties {}\nexport type PillProps = BoxProps &\n NeighborItemProps &\n KeyboardFocusProps & {\n /** Pill value */\n value?: PillsValue;\n /** Disabled state */\n disabled?: boolean;\n /** Selected state */\n selected?: boolean;\n /** Left addon text */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface IPillsContext extends PillsContext, UnknownProperties {}\nexport type PillsContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IPillsHandlers extends PillsHandlers, UnknownProperties {}\nexport type PillsHandlers = {\n value: (value: PillsValue) => void;\n};\n\ntype IntergalacticPillsComponent = (<\n Value extends PillsValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n PillsProps<Value>,\n PillsContext,\n [handlers: PillsHandlers]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div'>;\n\ndeclare const Pills: IntergalacticPillsComponent & {\n Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\nexport default Pills;\n"],"mappings":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport type PillsValue = string | number | boolean | null;\n\n/** @deprecated */\nexport interface IPillsProps<T extends PillsValue = PillsValue>\n extends PillsProps<T>,\n UnknownProperties {}\nexport type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProps &\n KeyboardFocusProps &\n BoxProps & {\n /** Pills size */\n size?: 'l' | 'm';\n /** Disabled state */\n disabled?: boolean;\n /** Called when the selection is changed */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLSpanElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value for the selected pill */\n value?: T;\n /** Default value for the selected pill */\n defaultValue?: T;\n /** Sets semantic role for corresponding behavior,\n * when set to `radio` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `radio` behavior in forms\n * while `tabs` behavior for navigation and layout.\n * @default tabs\n */\n behavior?: /** @deprecated use `manual` */\n | 'tabs'\n /** @deprecated use `auto` */\n | 'radio'\n | 'auto'\n | 'manual';\n };\n\n/** @deprecated */\nexport interface IPillProps extends PillProps, UnknownProperties {}\nexport type PillProps = BoxProps &\n NeighborItemProps &\n KeyboardFocusProps & {\n /** Pill value */\n value?: PillsValue;\n /** Disabled state */\n disabled?: boolean;\n /** Selected state */\n selected?: boolean;\n /** Left addon text */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface IPillsContext extends PillsContext, UnknownProperties {}\nexport type PillsContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IPillsHandlers extends PillsHandlers, UnknownProperties {}\nexport type PillsHandlers = {\n value: (value: PillsValue) => void;\n};\n\ntype IntergalacticPillsComponent = (<\n Value extends PillsValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n PillsProps<Value>,\n PillsContext,\n [handlers: PillsHandlers]\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div'>;\n\ndeclare const Pills: IntergalacticPillsComponent & {\n Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\nexport default Pills;\n"],"mappings":""}
@@ -64,13 +64,15 @@ SPill[disabled] {
64
64
  }
65
65
  }
66
66
 
67
- SPills[keyboardFocused]:not([behavior=tabs]) {
67
+ SPills[keyboardFocused][behavior=auto], SPills[keyboardFocused][behavior=radio] {
68
68
  box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
69
69
  }
70
70
 
71
- SPill[keyboardFocused] {
72
- box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
73
- z-index: 1;
71
+ SPills[keyboardFocused][behavior=manual], SPills[keyboardFocused][behavior=tag] {
72
+ > SPill[keyboardFocused] {
73
+ box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
74
+ z-index: 1;
75
+ }
74
76
  }
75
77
 
76
78
  SText {
@@ -11,6 +11,7 @@ export interface IPillsProps<T extends PillsValue = PillsValue>
11
11
  extends PillsProps<T>,
12
12
  UnknownProperties {}
13
13
  export type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProps &
14
+ KeyboardFocusProps &
14
15
  BoxProps & {
15
16
  /** Pills size */
16
17
  size?: 'l' | 'm';
@@ -32,7 +33,12 @@ export type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProp
32
33
  * while `tabs` behavior for navigation and layout.
33
34
  * @default tabs
34
35
  */
35
- behavior?: 'tabs' | 'radio';
36
+ behavior?: /** @deprecated use `manual` */
37
+ | 'tabs'
38
+ /** @deprecated use `auto` */
39
+ | 'radio'
40
+ | 'auto'
41
+ | 'manual';
36
42
  };
37
43
 
38
44
  /** @deprecated */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/pills",
3
3
  "description": "Semrush Pills Component",
4
- "version": "5.11.1",
4
+ "version": "5.12.0-prerelease.1",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -9,12 +9,12 @@
9
9
  "author": "UI-kit team <ui-kit-team@semrush.com>",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@semcore/flex-box": "5.10.1",
13
- "@semcore/neighbor-location": "4.9.1",
14
- "@semcore/utils": "4.10.2"
12
+ "@semcore/flex-box": "5.11.0-prerelease.1",
13
+ "@semcore/neighbor-location": "4.10.0-prerelease.1",
14
+ "@semcore/utils": "4.13.0-prerelease.1"
15
15
  },
16
16
  "peerDependencies": {
17
- "@semcore/core": "^2.9.1",
17
+ "@semcore/core": "^2.10.0-prerelease.1",
18
18
  "react": "16.8 - 18",
19
19
  "react-dom": "16.8 - 18"
20
20
  },