@semcore/pills 16.1.0 → 16.1.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,7 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [16.1.0] - 2026-05-07
5
+ ## [16.1.1] - 2026-05-07
6
6
 
7
7
  ### Added
8
8
 
package/lib/cjs/Pills.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
@@ -12,26 +13,41 @@ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSup
12
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
15
  var _core = require("@semcore/core");
15
- var _baseComponents = require("@semcore/base-components");
16
16
  var _addonTextChildren = _interopRequireDefault(require("@semcore/core/lib/utils/addonTextChildren"));
17
17
  var _a11yEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/a11yEnhance"));
18
+ var _logger = _interopRequireDefault(require("@semcore/core/lib/utils/logger"));
19
+ var _flexBox = require("@semcore/flex-box");
20
+ var _neighborLocation = _interopRequireWildcard(require("@semcore/neighbor-location"));
18
21
  var _react = _interopRequireDefault(require("react"));
19
22
  /*!__reshadow-styles__:"./style/pills.shadow.css"*/
20
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SPills_x9pvr_gg_{display:inline-flex;align-items:center;justify-content:center;isolation:isolate;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039));border-color:var(--intergalactic-border-info-active, rgb(135, 150, 239));z-index:3}@supports (color:color(display-p3 0 0 0%)){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039))}@media (color-gamut:p3){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, color(display-p3 0.12567 0.31309 0.96324 / 0.039))}}}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_,.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:focus-visible{z-index:3}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:active{z-index:2}@media (hover:hover){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:hover{z-index:2}}.___SPill_x9pvr_gg_{display:inline-flex;align-items:center;justify-content:center;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, rgb(255, 255, 255));border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));border-radius:var(--intergalactic-control-rounded, 6px)}@supports (color:color(display-p3 0 0 0%)){.___SPill_x9pvr_gg_{border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___SPill_x9pvr_gg_{border:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___SPill_x9pvr_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_x9pvr_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_x9pvr_gg_:hover{background:var(--intergalactic-bg-primary-neutral-hover, rgb(248, 249, 248))}}.___SPill_x9pvr_gg_.__disabled_x9pvr_gg_{cursor:default;pointer-events:none}.___SPill_x9pvr_gg_.__disabled_x9pvr_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___SText_x9pvr_gg_{color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899));display:inline-flex}.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));display:inline-flex;align-items:center;justify-content:center}@supports (color:color(display-p3 0 0 0%)){.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SText_x9pvr_gg_,.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SText_x9pvr_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:only-child,.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SText_x9pvr_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._neighborLocation_right_x9pvr_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_x9pvr_gg_._neighborLocation_both_x9pvr_gg_{border-radius:0;margin-left:-1px}.___SPill_x9pvr_gg_._neighborLocation_left_x9pvr_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}", /*__inner_css_end__*/"x9pvr_gg_"),
23
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SPills_1kwud_gg_{display:inline-flex;align-items:center;justify-content:center;isolation:isolate;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039));border-color:var(--intergalactic-border-info-active, rgba(0, 40, 230, 0.419));z-index:3}@supports (color:color(display-p3 0 0 0%)){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039))}@media (color-gamut:p3){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, color(display-p3 0.12567 0.31309 0.96324 / 0.039))}}}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_,.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:focus-visible{z-index:3}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:active{z-index:2}@media (hover:hover){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:hover{z-index:2}}.___SPill_1kwud_gg_{display:inline-flex;align-items:center;justify-content:center;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, rgb(255, 255, 255));border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));border-radius:var(--intergalactic-control-rounded, 6px)}@supports (color:color(display-p3 0 0 0%)){.___SPill_1kwud_gg_{border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___SPill_1kwud_gg_{border:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___SPill_1kwud_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_1kwud_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_1kwud_gg_:hover{background:var(--intergalactic-bg-primary-neutral-hover, rgb(248, 249, 248))}}.___SPill_1kwud_gg_.__disabled_1kwud_gg_{cursor:default;pointer-events:none}.___SPill_1kwud_gg_.__disabled_1kwud_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___SText_1kwud_gg_{color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899));display:inline-flex}.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));display:inline-flex;align-items:center;justify-content:center}@supports (color:color(display-p3 0 0 0%)){.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SPill_1kwud_gg_._size_m_1kwud_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SText_1kwud_gg_,.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SText_1kwud_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:only-child,.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SText_1kwud_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._neighborLocation_right_1kwud_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_1kwud_gg_._neighborLocation_both_1kwud_gg_{border-radius:0;margin-left:-1px}.___SPill_1kwud_gg_._neighborLocation_left_1kwud_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}", /*__inner_css_end__*/"1kwud_gg_"),
21
24
  /*__reshadow_css_end__*/
22
25
  {
23
- "__SText": "___SText_x9pvr_gg_",
24
- "__SAddon": "___SAddon_x9pvr_gg_",
25
- "__SPill": "___SPill_x9pvr_gg_",
26
- "_neighborLocation_right": "_neighborLocation_right_x9pvr_gg_",
27
- "_neighborLocation_both": "_neighborLocation_both_x9pvr_gg_",
28
- "_neighborLocation_left": "_neighborLocation_left_x9pvr_gg_",
29
- "__SPills": "___SPills_x9pvr_gg_",
30
- "_selected": "__selected_x9pvr_gg_",
31
- "_disabled": "__disabled_x9pvr_gg_",
32
- "_size_m": "_size_m_x9pvr_gg_",
33
- "_size_l": "_size_l_x9pvr_gg_"
26
+ "__SText": "___SText_1kwud_gg_",
27
+ "__SAddon": "___SAddon_1kwud_gg_",
28
+ "__SPill": "___SPill_1kwud_gg_",
29
+ "_neighborLocation_right": "_neighborLocation_right_1kwud_gg_",
30
+ "_neighborLocation_both": "_neighborLocation_both_1kwud_gg_",
31
+ "_neighborLocation_left": "_neighborLocation_left_1kwud_gg_",
32
+ "__SPills": "___SPills_1kwud_gg_",
33
+ "_selected": "__selected_1kwud_gg_",
34
+ "_disabled": "__disabled_1kwud_gg_",
35
+ "_size_m": "_size_m_1kwud_gg_",
36
+ "_size_l": "_size_l_1kwud_gg_"
34
37
  });
38
+ var optionsA11yEnhance = {
39
+ onNeighborChange: function onNeighborChange(neighborElement, props) {
40
+ if (neighborElement) {
41
+ neighborElement.focus();
42
+ if (props.behavior === 'auto' || props.behavior === 'radio') {
43
+ neighborElement.click();
44
+ }
45
+ }
46
+ },
47
+ childSelector: function childSelector(props) {
48
+ return props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'];
49
+ }
50
+ };
35
51
  var RootPills = /*#__PURE__*/function (_Component) {
36
52
  function RootPills() {
37
53
  var _this;
@@ -47,23 +63,39 @@ var RootPills = /*#__PURE__*/function (_Component) {
47
63
  };
48
64
  });
49
65
  (0, _defineProperty2["default"])(_this, "bindHandleKeyDown", function (value) {
50
- return function (e) {
51
- if (e.key === 'Enter' || e.key === ' ') {
52
- e.preventDefault();
53
- _this.handlers.value(value, e);
66
+ return function (event) {
67
+ if (event.key === 'Enter' || event.key === ' ') {
68
+ event.preventDefault();
69
+ _this.handlers.value(value, event);
54
70
  }
55
71
  };
56
72
  });
73
+ (0, _defineProperty2["default"])(_this, "changeIndex", function (startIndex, type) {
74
+ var selectable = false;
75
+ while (!selectable && startIndex >= 0 && startIndex < _this.itemValues.length) {
76
+ if (type === 'increment') startIndex++;
77
+ if (type === 'decrement') startIndex--;
78
+ var element = _this.itemRefs[startIndex];
79
+ if ((element === null || element === void 0 ? void 0 : element.disabled) === false) {
80
+ selectable = true;
81
+ }
82
+ }
83
+ return startIndex >= 0 && startIndex < _this.itemValues.length ? startIndex : undefined;
84
+ });
57
85
  return _this;
58
86
  }
59
87
  (0, _inherits2["default"])(RootPills, _Component);
60
88
  return (0, _createClass2["default"])(RootPills, [{
89
+ key: "componentDidMount",
90
+ value: function componentDidMount() {
91
+ _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');
92
+ _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');
93
+ }
94
+ }, {
61
95
  key: "uncontrolledProps",
62
96
  value: function uncontrolledProps() {
63
97
  return {
64
- value: function value(_value, e) {
65
- return _value;
66
- }
98
+ value: null
67
99
  };
68
100
  }
69
101
  }, {
@@ -92,7 +124,7 @@ var RootPills = /*#__PURE__*/function (_Component) {
92
124
  value: function render() {
93
125
  var _ref = this.asProps,
94
126
  _ref5;
95
- var SPills = _baseComponents.Box;
127
+ var SPills = _flexBox.Box;
96
128
  var _this$asProps2 = this.asProps,
97
129
  Children = _this$asProps2.Children,
98
130
  styles = _this$asProps2.styles,
@@ -101,10 +133,10 @@ var RootPills = /*#__PURE__*/function (_Component) {
101
133
  behavior = _this$asProps2.behavior,
102
134
  value = _this$asProps2.value;
103
135
  return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPills, _ref5.cn("SPills", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
104
- "role": behavior === 'auto' ? 'radiogroup' : 'tablist',
136
+ "role": behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist',
105
137
  "aria-disabled": disabled,
106
138
  "use:tabIndex": value !== null ? -1 : 0
107
- }, _ref))), /*#__PURE__*/_react["default"].createElement(_baseComponents.NeighborLocation, _ref5.cn("NeighborLocation", {
139
+ }, _ref))), /*#__PURE__*/_react["default"].createElement(_neighborLocation["default"], _ref5.cn("NeighborLocation", {
108
140
  "controlsLength": controlsLength
109
141
  }), /*#__PURE__*/_react["default"].createElement(Children, _ref5.cn("Children", {}))));
110
142
  }
@@ -120,24 +152,11 @@ var RootPills = /*#__PURE__*/function (_Component) {
120
152
  behavior: behavior !== null && behavior !== void 0 ? behavior : 'auto'
121
153
  };
122
154
  });
123
- (0, _defineProperty2["default"])(RootPills, "enhance", [(0, _a11yEnhance["default"])({
124
- onNeighborChange: function onNeighborChange(neighborElement, props) {
125
- if (neighborElement) {
126
- neighborElement.focus();
127
- if (props.behavior === 'auto') {
128
- neighborElement.click();
129
- }
130
- }
131
- },
132
- childSelector: function childSelector(props) {
133
- var selector = props.behavior === 'auto' ? ['role', 'radio'] : ['role', 'tab'];
134
- return selector;
135
- }
136
- })]);
155
+ (0, _defineProperty2["default"])(RootPills, "enhance", [(0, _a11yEnhance["default"])(optionsA11yEnhance)]);
137
156
  function Pill(props) {
138
157
  var _ref2 = arguments[0],
139
158
  _ref6;
140
- var SPill = _baseComponents.Box;
159
+ var SPill = _flexBox.Box;
141
160
  var Children = props.Children,
142
161
  styles = props.styles,
143
162
  addonLeft = props.addonLeft,
@@ -146,12 +165,15 @@ function Pill(props) {
146
165
  disabled = props.disabled,
147
166
  index = props.index,
148
167
  behavior = props.behavior;
149
- var neighborLocation = (0, _baseComponents.useNeighborLocationDetect)(index);
150
- var roleAreaProps = {
151
- 'role': behavior === 'auto' ? 'radio' : 'tab',
152
- 'aria-checked': behavior === 'auto' ? selected : undefined,
153
- 'aria-selected': behavior !== 'auto' ? selected : undefined
154
- };
168
+ var neighborLocation = (0, _neighborLocation.useNeighborLocationDetect)(index);
169
+ var roleAreaProps = {};
170
+ if (behavior === 'radio' || behavior === 'auto') {
171
+ roleAreaProps.role = 'radio';
172
+ roleAreaProps['aria-checked'] = selected;
173
+ } else {
174
+ roleAreaProps.role = 'tab';
175
+ roleAreaProps['aria-selected'] = selected;
176
+ }
155
177
  return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPill, _ref6.cn("SPill", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])({
156
178
  "tag": 'button',
157
179
  "type": 'button',
@@ -167,7 +189,7 @@ function Pill(props) {
167
189
  function Text(props) {
168
190
  var _ref3 = arguments[0],
169
191
  _ref7;
170
- var SText = _baseComponents.Box;
192
+ var SText = _flexBox.Box;
171
193
  return _ref7 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SText, _ref7.cn("SText", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
172
194
  "tag": 'span'
173
195
  }, _ref3))));
@@ -175,19 +197,19 @@ function Text(props) {
175
197
  function Addon(props) {
176
198
  var _ref4 = arguments[0],
177
199
  _ref8;
178
- var SAddon = _baseComponents.Box;
200
+ var SAddon = _flexBox.Box;
179
201
  return _ref8 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SAddon, _ref8.cn("SAddon", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
180
202
  "tag": 'span'
181
203
  }, _ref4))));
182
204
  }
183
- var wrapPills = exports.wrapPills = function wrapPills(wrapper) {
184
- return wrapper;
185
- };
186
205
  var Pills = (0, _core.createComponent)(RootPills, {
187
206
  Item: [Pill, {
188
207
  Text: Text,
189
208
  Addon: Addon
190
209
  }]
191
210
  });
211
+ var wrapPills = exports.wrapPills = function wrapPills(wrapper) {
212
+ return wrapper;
213
+ };
192
214
  var _default = exports["default"] = Pills;
193
215
  //# sourceMappingURL=Pills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pills.js","names":["_core","require","_baseComponents","_addonTextChildren","_interopRequireDefault","_a11yEnhance","_react","style","sstyled","insert","RootPills","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","value","e","handlers","key","preventDefault","_inherits2","_createClass2","uncontrolledProps","getItemProps","props","index","_this$asProps","asProps","size","disabled","behavior","isSelected","itemValues","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","NeighborLocation","Component","_ref9","defaultValue","a11yEnhance","onNeighborChange","neighborElement","focus","click","childSelector","selector","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","roleAreaProps","undefined","Pills","Item","Addon","tag","addonTextChildren","Text","_ref3","_ref7","SText","_ref4","_ref8","SAddon","wrapPills","exports","wrapper","createComponent","_default"],"sources":["../../src/Pills.tsx"],"sourcesContent":["import { NeighborLocation, Box, useNeighborLocationDetect } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';\nimport React from 'react';\n\nimport type { NSPills } from './Pills.type';\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component<\n Intergalactic.InternalTypings.InferComponentProps<NSPills.Component>,\n typeof RootPills.enhance,\n NSPills.Handlers\n> {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }: NSPills.Props) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n });\n\n itemValues: Array<NSPills.Pill.Props['value']> = [];\n\n static enhance = [a11yEnhance({\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) => {\n const selector = props.behavior === 'auto' ? ['role', 'radio'] : ['role', 'tab'];\n\n return selector as [string, string];\n },\n })] as const;\n\n uncontrolledProps() {\n return {\n value: (value: NSPills.Pill.Props['value'], e: React.SyntheticEvent) => value,\n };\n }\n\n bindHandlerClick = (value: NSPills.Pill.Props['value']) => (e: React.MouseEvent) => {\n this.handlers.value(value, e);\n };\n\n bindHandleKeyDown = (value: NSPills.Pill.Props['value']) => (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.handlers.value(value, e);\n }\n };\n\n getItemProps(props: NSPills.Pill.Props, index: number) {\n const { value, size, disabled, behavior } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(props.value),\n };\n }\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior, value } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'auto' ? 'radiogroup' : 'tablist'}\n aria-disabled={disabled}\n use:tabIndex={value !== null ? -1 : 0}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props: Intergalactic.InternalTypings.InferChildComponentProps<NSPills.Pill.Component, typeof RootPills, 'Item'>) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n\n const roleAreaProps = {\n 'role': behavior === 'auto' ? 'radio' : 'tab',\n 'aria-checked': behavior === 'auto' ? selected : undefined,\n 'aria-selected': behavior !== 'auto' ? selected : undefined,\n };\n\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n tabIndex={0}\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\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\nfunction Text(props: Intergalactic.InternalTypings.InferComponentProps<NSPills.Pill.Text.Component>) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: Intergalactic.InternalTypings.InferComponentProps<NSPills.Pill.Addon.Component>) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const wrapPills = <PropsExtending extends {}>(wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<NSPills.WrapComponent>\n > &\n PropsExtending,\n) => React.ReactNode) => wrapper as NSPills.WrapComponent<PropsExtending>;\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n}) as unknown as NSPills.Component;\n\nexport default Pills;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Pills.js","names":["_core","require","_addonTextChildren","_interopRequireDefault","_a11yEnhance","_logger","_flexBox","_neighborLocation","_interopRequireWildcard","_react","style","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","RootPills","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","value","e","handlers","event","key","preventDefault","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","_inherits2","_createClass2","componentDidMount","log","warn","asProps","uncontrolledProps","getItemProps","index","_this$asProps","size","isSelected","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","Component","_ref9","defaultValue","a11yEnhance","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","roleAreaProps","role","Pills","Item","Addon","tag","addonTextChildren","Text","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","wrapPills","exports","wrapper","_default"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';\nimport log from '@semcore/core/lib/utils/logger';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport React from 'react';\n\nimport style from './style/pills.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto' || props.behavior === 'radio') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) =>\n props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'],\n};\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 });\n\n itemValues = [];\n static enhance = [a11yEnhance(optionsA11yEnhance)];\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 bindHandleKeyDown = (value) => (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value, size, disabled, behavior } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(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 render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior, value } = 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 use:tabIndex={value !== null ? -1 : 0}\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 tabIndex={0}\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\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\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 const wrapPills = (wrapper) => wrapper;\n\nexport default Pills;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport type React from 'react';\n\nexport type PillsValue = string | number | boolean | null;\n\n/**\n * @deprecated\n * use `manual`\n */\nexport type DeprecatedBehaviorTabs = 'tabs';\n/**\n * @deprecated\n * use `auto`\n */\nexport type DeprecatedBehaviorRadio = 'radio';\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 `auto` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `auto` behavior in forms\n * while `manual` behavior for navigation and layout.\n * @default tabs\n */\n behavior?:\n DeprecatedBehaviorTabs | DeprecatedBehaviorRadio\n | 'auto'\n | 'manual';\n };\n\n/** @deprecated */\nexport interface IPillProps extends PillProps, UnknownProperties {}\nexport type PillProps = BoxProps &\n NeighborItemProps & {\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<PropsExtending = {}> = (<\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 PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', PillsProps>;\n\ndeclare const Pills: IntergalacticPillsComponent & {\n Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\ndeclare const wrapPills: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticPillsComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticPillsComponent<PropsExtending>;\nexport { wrapPills };\n\nexport default Pills;\n"],"mappings":"","ignoreList":[]}
package/lib/cjs/index.js CHANGED
@@ -4,31 +4,22 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- var _exportNames = {
8
- wrapPills: true
9
- };
7
+ var _exportNames = {};
10
8
  Object.defineProperty(exports, "default", {
11
9
  enumerable: true,
12
10
  get: function get() {
13
11
  return _Pills["default"];
14
12
  }
15
13
  });
16
- Object.defineProperty(exports, "wrapPills", {
17
- enumerable: true,
18
- get: function get() {
19
- return _Pills.wrapPills;
20
- }
21
- });
22
14
  var _Pills = _interopRequireWildcard(require("./Pills"));
23
- var _Pills2 = require("./Pills.type");
24
- Object.keys(_Pills2).forEach(function (key) {
15
+ Object.keys(_Pills).forEach(function (key) {
25
16
  if (key === "default" || key === "__esModule") return;
26
17
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
27
- if (key in exports && exports[key] === _Pills2[key]) return;
18
+ if (key in exports && exports[key] === _Pills[key]) return;
28
19
  Object.defineProperty(exports, key, {
29
20
  enumerable: true,
30
21
  get: function get() {
31
- return _Pills2[key];
22
+ return _Pills[key];
32
23
  }
33
24
  });
34
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Pills","_interopRequireWildcard","require","_Pills2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../src/index.ts"],"sourcesContent":["export { default, wrapPills } from './Pills';\nexport * from './Pills.type';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_Pills","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Pills';\nexport * from './Pills';\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,MAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAd,MAAA,CAAAM,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -7,7 +7,7 @@ SPills {
7
7
 
8
8
  SPill[selected] {
9
9
  background: var(--intergalactic-control-secondary-info, oklch(0.527 0.264 262.9 / 0.039));
10
- border-color: var(--intergalactic-border-info-active, oklch(0.7 0.131 275.2));
10
+ border-color: var(--intergalactic-border-info-active, oklch(0.443 0.273 264.2 / 0.419));
11
11
  z-index: 3;
12
12
  }
13
13
  SPill:focus-visible, SPill[selected] {
package/lib/es6/Pills.js CHANGED
@@ -9,27 +9,42 @@ import { assignProps as _assignProps4 } from "@semcore/core";
9
9
  import { assignProps as _assignProps3 } from "@semcore/core";
10
10
  import { assignProps as _assignProps2 } from "@semcore/core";
11
11
  import { assignProps as _assignProps } from "@semcore/core";
12
- import { NeighborLocation, Box, useNeighborLocationDetect } from '@semcore/base-components';
13
12
  import { createComponent, Component, sstyled, Root } from '@semcore/core';
14
13
  import addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';
15
14
  import a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';
15
+ import log from '@semcore/core/lib/utils/logger';
16
+ import { Box } from '@semcore/flex-box';
17
+ import NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';
16
18
  import React from 'react';
17
19
  /*!__reshadow-styles__:"./style/pills.shadow.css"*/
18
- var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SPills_x9pvr_gg_{display:inline-flex;align-items:center;justify-content:center;isolation:isolate;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039));border-color:var(--intergalactic-border-info-active, rgb(135, 150, 239));z-index:3}@supports (color:color(display-p3 0 0 0%)){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039))}@media (color-gamut:p3){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, color(display-p3 0.12567 0.31309 0.96324 / 0.039))}}}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_,.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:focus-visible{z-index:3}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:active{z-index:2}@media (hover:hover){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:hover{z-index:2}}.___SPill_x9pvr_gg_{display:inline-flex;align-items:center;justify-content:center;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, rgb(255, 255, 255));border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));border-radius:var(--intergalactic-control-rounded, 6px)}@supports (color:color(display-p3 0 0 0%)){.___SPill_x9pvr_gg_{border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___SPill_x9pvr_gg_{border:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___SPill_x9pvr_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_x9pvr_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_x9pvr_gg_:hover{background:var(--intergalactic-bg-primary-neutral-hover, rgb(248, 249, 248))}}.___SPill_x9pvr_gg_.__disabled_x9pvr_gg_{cursor:default;pointer-events:none}.___SPill_x9pvr_gg_.__disabled_x9pvr_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___SText_x9pvr_gg_{color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899));display:inline-flex}.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));display:inline-flex;align-items:center;justify-content:center}@supports (color:color(display-p3 0 0 0%)){.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SText_x9pvr_gg_,.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SText_x9pvr_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:only-child,.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SText_x9pvr_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._neighborLocation_right_x9pvr_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_x9pvr_gg_._neighborLocation_both_x9pvr_gg_{border-radius:0;margin-left:-1px}.___SPill_x9pvr_gg_._neighborLocation_left_x9pvr_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}", /*__inner_css_end__*/"x9pvr_gg_"),
20
+ var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SPills_1kwud_gg_{display:inline-flex;align-items:center;justify-content:center;isolation:isolate;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039));border-color:var(--intergalactic-border-info-active, rgba(0, 40, 230, 0.419));z-index:3}@supports (color:color(display-p3 0 0 0%)){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039))}@media (color-gamut:p3){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, color(display-p3 0.12567 0.31309 0.96324 / 0.039))}}}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_,.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:focus-visible{z-index:3}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:active{z-index:2}@media (hover:hover){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:hover{z-index:2}}.___SPill_1kwud_gg_{display:inline-flex;align-items:center;justify-content:center;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, rgb(255, 255, 255));border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));border-radius:var(--intergalactic-control-rounded, 6px)}@supports (color:color(display-p3 0 0 0%)){.___SPill_1kwud_gg_{border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___SPill_1kwud_gg_{border:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___SPill_1kwud_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_1kwud_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_1kwud_gg_:hover{background:var(--intergalactic-bg-primary-neutral-hover, rgb(248, 249, 248))}}.___SPill_1kwud_gg_.__disabled_1kwud_gg_{cursor:default;pointer-events:none}.___SPill_1kwud_gg_.__disabled_1kwud_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___SText_1kwud_gg_{color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899));display:inline-flex}.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));display:inline-flex;align-items:center;justify-content:center}@supports (color:color(display-p3 0 0 0%)){.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SPill_1kwud_gg_._size_m_1kwud_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SText_1kwud_gg_,.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SText_1kwud_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:only-child,.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SText_1kwud_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._neighborLocation_right_1kwud_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_1kwud_gg_._neighborLocation_both_1kwud_gg_{border-radius:0;margin-left:-1px}.___SPill_1kwud_gg_._neighborLocation_left_1kwud_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}", /*__inner_css_end__*/"1kwud_gg_"),
19
21
  /*__reshadow_css_end__*/
20
22
  {
21
- "__SText": "___SText_x9pvr_gg_",
22
- "__SAddon": "___SAddon_x9pvr_gg_",
23
- "__SPill": "___SPill_x9pvr_gg_",
24
- "_neighborLocation_right": "_neighborLocation_right_x9pvr_gg_",
25
- "_neighborLocation_both": "_neighborLocation_both_x9pvr_gg_",
26
- "_neighborLocation_left": "_neighborLocation_left_x9pvr_gg_",
27
- "__SPills": "___SPills_x9pvr_gg_",
28
- "_selected": "__selected_x9pvr_gg_",
29
- "_disabled": "__disabled_x9pvr_gg_",
30
- "_size_m": "_size_m_x9pvr_gg_",
31
- "_size_l": "_size_l_x9pvr_gg_"
23
+ "__SText": "___SText_1kwud_gg_",
24
+ "__SAddon": "___SAddon_1kwud_gg_",
25
+ "__SPill": "___SPill_1kwud_gg_",
26
+ "_neighborLocation_right": "_neighborLocation_right_1kwud_gg_",
27
+ "_neighborLocation_both": "_neighborLocation_both_1kwud_gg_",
28
+ "_neighborLocation_left": "_neighborLocation_left_1kwud_gg_",
29
+ "__SPills": "___SPills_1kwud_gg_",
30
+ "_selected": "__selected_1kwud_gg_",
31
+ "_disabled": "__disabled_1kwud_gg_",
32
+ "_size_m": "_size_m_1kwud_gg_",
33
+ "_size_l": "_size_l_1kwud_gg_"
32
34
  });
35
+ var optionsA11yEnhance = {
36
+ onNeighborChange: function onNeighborChange(neighborElement, props) {
37
+ if (neighborElement) {
38
+ neighborElement.focus();
39
+ if (props.behavior === 'auto' || props.behavior === 'radio') {
40
+ neighborElement.click();
41
+ }
42
+ }
43
+ },
44
+ childSelector: function childSelector(props) {
45
+ return props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'];
46
+ }
47
+ };
33
48
  var RootPills = /*#__PURE__*/function (_Component) {
34
49
  function RootPills() {
35
50
  var _this;
@@ -45,23 +60,39 @@ var RootPills = /*#__PURE__*/function (_Component) {
45
60
  };
46
61
  });
47
62
  _defineProperty(_this, "bindHandleKeyDown", function (value) {
48
- return function (e) {
49
- if (e.key === 'Enter' || e.key === ' ') {
50
- e.preventDefault();
51
- _this.handlers.value(value, e);
63
+ return function (event) {
64
+ if (event.key === 'Enter' || event.key === ' ') {
65
+ event.preventDefault();
66
+ _this.handlers.value(value, event);
52
67
  }
53
68
  };
54
69
  });
70
+ _defineProperty(_this, "changeIndex", function (startIndex, type) {
71
+ var selectable = false;
72
+ while (!selectable && startIndex >= 0 && startIndex < _this.itemValues.length) {
73
+ if (type === 'increment') startIndex++;
74
+ if (type === 'decrement') startIndex--;
75
+ var element = _this.itemRefs[startIndex];
76
+ if ((element === null || element === void 0 ? void 0 : element.disabled) === false) {
77
+ selectable = true;
78
+ }
79
+ }
80
+ return startIndex >= 0 && startIndex < _this.itemValues.length ? startIndex : undefined;
81
+ });
55
82
  return _this;
56
83
  }
57
84
  _inherits(RootPills, _Component);
58
85
  return _createClass(RootPills, [{
86
+ key: "componentDidMount",
87
+ value: function componentDidMount() {
88
+ 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');
89
+ 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');
90
+ }
91
+ }, {
59
92
  key: "uncontrolledProps",
60
93
  value: function uncontrolledProps() {
61
94
  return {
62
- value: function value(_value, e) {
63
- return _value;
64
- }
95
+ value: null
65
96
  };
66
97
  }
67
98
  }, {
@@ -99,7 +130,7 @@ var RootPills = /*#__PURE__*/function (_Component) {
99
130
  behavior = _this$asProps2.behavior,
100
131
  value = _this$asProps2.value;
101
132
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SPills, _ref5.cn("SPills", _objectSpread({}, _assignProps({
102
- "role": behavior === 'auto' ? 'radiogroup' : 'tablist',
133
+ "role": behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist',
103
134
  "aria-disabled": disabled,
104
135
  "use:tabIndex": value !== null ? -1 : 0
105
136
  }, _ref))), /*#__PURE__*/React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
@@ -118,20 +149,7 @@ _defineProperty(RootPills, "defaultProps", function (_ref9) {
118
149
  behavior: behavior !== null && behavior !== void 0 ? behavior : 'auto'
119
150
  };
120
151
  });
121
- _defineProperty(RootPills, "enhance", [a11yEnhance({
122
- onNeighborChange: function onNeighborChange(neighborElement, props) {
123
- if (neighborElement) {
124
- neighborElement.focus();
125
- if (props.behavior === 'auto') {
126
- neighborElement.click();
127
- }
128
- }
129
- },
130
- childSelector: function childSelector(props) {
131
- var selector = props.behavior === 'auto' ? ['role', 'radio'] : ['role', 'tab'];
132
- return selector;
133
- }
134
- })]);
152
+ _defineProperty(RootPills, "enhance", [a11yEnhance(optionsA11yEnhance)]);
135
153
  function Pill(props) {
136
154
  var _ref2 = arguments[0],
137
155
  _ref6;
@@ -145,11 +163,14 @@ function Pill(props) {
145
163
  index = props.index,
146
164
  behavior = props.behavior;
147
165
  var neighborLocation = useNeighborLocationDetect(index);
148
- var roleAreaProps = {
149
- 'role': behavior === 'auto' ? 'radio' : 'tab',
150
- 'aria-checked': behavior === 'auto' ? selected : undefined,
151
- 'aria-selected': behavior !== 'auto' ? selected : undefined
152
- };
166
+ var roleAreaProps = {};
167
+ if (behavior === 'radio' || behavior === 'auto') {
168
+ roleAreaProps.role = 'radio';
169
+ roleAreaProps['aria-checked'] = selected;
170
+ } else {
171
+ roleAreaProps.role = 'tab';
172
+ roleAreaProps['aria-selected'] = selected;
173
+ }
153
174
  return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SPill, _ref6.cn("SPill", _objectSpread({}, _assignProps2(_objectSpread({
154
175
  "tag": 'button',
155
176
  "type": 'button',
@@ -178,14 +199,14 @@ function Addon(props) {
178
199
  "tag": 'span'
179
200
  }, _ref4))));
180
201
  }
181
- export var wrapPills = function wrapPills(wrapper) {
182
- return wrapper;
183
- };
184
202
  var Pills = createComponent(RootPills, {
185
203
  Item: [Pill, {
186
204
  Text: Text,
187
205
  Addon: Addon
188
206
  }]
189
207
  });
208
+ export var wrapPills = function wrapPills(wrapper) {
209
+ return wrapper;
210
+ };
190
211
  export default Pills;
191
212
  //# sourceMappingURL=Pills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pills.js","names":["NeighborLocation","Box","useNeighborLocationDetect","createComponent","Component","sstyled","Root","addonTextChildren","a11yEnhance","React","style","_sstyled","insert","RootPills","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","value","e","handlers","key","preventDefault","_inherits","_createClass","uncontrolledProps","getItemProps","props","index","_this$asProps","asProps","size","disabled","behavior","isSelected","itemValues","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","_ref9","defaultValue","onNeighborChange","neighborElement","focus","click","childSelector","selector","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","roleAreaProps","undefined","_assignProps2","Pills","Item","Addon","tag","Text","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapPills","wrapper"],"sources":["../../src/Pills.tsx"],"sourcesContent":["import { NeighborLocation, Box, useNeighborLocationDetect } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';\nimport React from 'react';\n\nimport type { NSPills } from './Pills.type';\nimport style from './style/pills.shadow.css';\n\nclass RootPills extends Component<\n Intergalactic.InternalTypings.InferComponentProps<NSPills.Component>,\n typeof RootPills.enhance,\n NSPills.Handlers\n> {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }: NSPills.Props) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n });\n\n itemValues: Array<NSPills.Pill.Props['value']> = [];\n\n static enhance = [a11yEnhance({\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) => {\n const selector = props.behavior === 'auto' ? ['role', 'radio'] : ['role', 'tab'];\n\n return selector as [string, string];\n },\n })] as const;\n\n uncontrolledProps() {\n return {\n value: (value: NSPills.Pill.Props['value'], e: React.SyntheticEvent) => value,\n };\n }\n\n bindHandlerClick = (value: NSPills.Pill.Props['value']) => (e: React.MouseEvent) => {\n this.handlers.value(value, e);\n };\n\n bindHandleKeyDown = (value: NSPills.Pill.Props['value']) => (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.handlers.value(value, e);\n }\n };\n\n getItemProps(props: NSPills.Pill.Props, index: number) {\n const { value, size, disabled, behavior } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(props.value),\n };\n }\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior, value } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'auto' ? 'radiogroup' : 'tablist'}\n aria-disabled={disabled}\n use:tabIndex={value !== null ? -1 : 0}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props: Intergalactic.InternalTypings.InferChildComponentProps<NSPills.Pill.Component, typeof RootPills, 'Item'>) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n\n const roleAreaProps = {\n 'role': behavior === 'auto' ? 'radio' : 'tab',\n 'aria-checked': behavior === 'auto' ? selected : undefined,\n 'aria-selected': behavior !== 'auto' ? selected : undefined,\n };\n\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n tabIndex={0}\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\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\nfunction Text(props: Intergalactic.InternalTypings.InferComponentProps<NSPills.Pill.Text.Component>) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: Intergalactic.InternalTypings.InferComponentProps<NSPills.Pill.Addon.Component>) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const wrapPills = <PropsExtending extends {}>(wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<NSPills.WrapComponent>\n > &\n PropsExtending,\n) => React.ReactNode) => wrapper as NSPills.WrapComponent<PropsExtending>;\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n}) as unknown as NSPills.Component;\n\nexport default Pills;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Pills.js","names":["createComponent","Component","sstyled","Root","addonTextChildren","a11yEnhance","log","Box","NeighborLocation","useNeighborLocationDetect","React","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","RootPills","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","value","e","handlers","event","key","preventDefault","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","_inherits","_createClass","componentDidMount","warn","asProps","uncontrolledProps","getItemProps","index","_this$asProps","size","isSelected","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","_ref9","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","roleAreaProps","role","_assignProps2","Pills","Item","Addon","tag","Text","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapPills","wrapper"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport a11yEnhance from '@semcore/core/lib/utils/enhances/a11yEnhance';\nimport log from '@semcore/core/lib/utils/logger';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport React from 'react';\n\nimport style from './style/pills.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto' || props.behavior === 'radio') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) =>\n props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'],\n};\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 });\n\n itemValues = [];\n static enhance = [a11yEnhance(optionsA11yEnhance)];\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 bindHandleKeyDown = (value) => (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value, size, disabled, behavior } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(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 render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior, value } = 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 use:tabIndex={value !== null ? -1 : 0}\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 tabIndex={0}\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\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\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 const wrapPills = (wrapper) => wrapper;\n\nexport default Pills;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';\nimport type React from 'react';\n\nexport type PillsValue = string | number | boolean | null;\n\n/**\n * @deprecated\n * use `manual`\n */\nexport type DeprecatedBehaviorTabs = 'tabs';\n/**\n * @deprecated\n * use `auto`\n */\nexport type DeprecatedBehaviorRadio = 'radio';\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 `auto` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `auto` behavior in forms\n * while `manual` behavior for navigation and layout.\n * @default tabs\n */\n behavior?:\n DeprecatedBehaviorTabs | DeprecatedBehaviorRadio\n | 'auto'\n | 'manual';\n };\n\n/** @deprecated */\nexport interface IPillProps extends PillProps, UnknownProperties {}\nexport type PillProps = BoxProps &\n NeighborItemProps & {\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<PropsExtending = {}> = (<\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 PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', PillsProps>;\n\ndeclare const Pills: IntergalacticPillsComponent & {\n Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\ndeclare const wrapPills: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticPillsComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticPillsComponent<PropsExtending>;\nexport { wrapPills };\n\nexport default Pills;\n"],"mappings":"","ignoreList":[]}
package/lib/es6/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { default, wrapPills } from './Pills';
2
- export * from './Pills.type';
1
+ export { default } from './Pills';
2
+ export * from './Pills';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","wrapPills"],"sources":["../../src/index.ts"],"sourcesContent":["export { default, wrapPills } from './Pills';\nexport * from './Pills.type';\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,SAAS,QAAQ,SAAS;AAC5C,cAAc,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Pills';\nexport * from './Pills';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,SAAS;AACjC,cAAc,SAAS","ignoreList":[]}
@@ -7,7 +7,7 @@ SPills {
7
7
 
8
8
  SPill[selected] {
9
9
  background: var(--intergalactic-control-secondary-info, oklch(0.527 0.264 262.9 / 0.039));
10
- border-color: var(--intergalactic-border-info-active, oklch(0.7 0.131 275.2));
10
+ border-color: var(--intergalactic-border-info-active, oklch(0.443 0.273 264.2 / 0.419));
11
11
  z-index: 3;
12
12
  }
13
13
  SPill:focus-visible, SPill[selected] {
package/lib/esm/Pills.mjs CHANGED
@@ -4,34 +4,49 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
4
  import _callSuper from "@babel/runtime/helpers/esm/callSuper";
5
5
  import _inherits from "@babel/runtime/helpers/esm/inherits";
6
6
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
7
- import { sstyled, assignProps, Component, createComponent } from "@semcore/core";
8
- import { Box, NeighborLocation, useNeighborLocationDetect } from "@semcore/base-components";
7
+ import { sstyled, createComponent, assignProps, Component } from "@semcore/core";
9
8
  import addonTextChildren from "@semcore/core/lib/utils/addonTextChildren";
10
9
  import a11yEnhance from "@semcore/core/lib/utils/enhances/a11yEnhance";
10
+ import log from "@semcore/core/lib/utils/logger";
11
+ import { Box } from "@semcore/flex-box";
12
+ import NeighborLocation, { useNeighborLocationDetect } from "@semcore/neighbor-location";
11
13
  import React from "react";
12
14
  /*!__reshadow-styles__:"./style/pills.shadow.css"*/
13
15
  var style = (
14
16
  /*__reshadow_css_start__*/
15
17
  (sstyled.insert(
16
18
  /*__inner_css_start__*/
17
- ".___SPills_x9pvr_gg_{display:inline-flex;align-items:center;justify-content:center;isolation:isolate;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039));border-color:var(--intergalactic-border-info-active, rgb(135, 150, 239));z-index:3}@supports (color:color(display-p3 0 0 0%)){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039))}@media (color-gamut:p3){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_{background:var(--intergalactic-control-secondary-info, color(display-p3 0.12567 0.31309 0.96324 / 0.039))}}}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_.__selected_x9pvr_gg_,.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:focus-visible{z-index:3}.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:active{z-index:2}@media (hover:hover){.___SPills_x9pvr_gg_ .___SPill_x9pvr_gg_:hover{z-index:2}}.___SPill_x9pvr_gg_{display:inline-flex;align-items:center;justify-content:center;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, rgb(255, 255, 255));border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));border-radius:var(--intergalactic-control-rounded, 6px)}@supports (color:color(display-p3 0 0 0%)){.___SPill_x9pvr_gg_{border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___SPill_x9pvr_gg_{border:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___SPill_x9pvr_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_x9pvr_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_x9pvr_gg_:hover{background:var(--intergalactic-bg-primary-neutral-hover, rgb(248, 249, 248))}}.___SPill_x9pvr_gg_.__disabled_x9pvr_gg_{cursor:default;pointer-events:none}.___SPill_x9pvr_gg_.__disabled_x9pvr_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___SText_x9pvr_gg_{color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899));display:inline-flex}.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));display:inline-flex;align-items:center;justify-content:center}@supports (color:color(display-p3 0 0 0%)){.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SAddon_x9pvr_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SText_x9pvr_gg_,.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SText_x9pvr_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_m_x9pvr_gg_ .___SAddon_x9pvr_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:only-child,.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SText_x9pvr_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._size_l_x9pvr_gg_ .___SAddon_x9pvr_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_x9pvr_gg_._neighborLocation_right_x9pvr_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_x9pvr_gg_._neighborLocation_both_x9pvr_gg_{border-radius:0;margin-left:-1px}.___SPill_x9pvr_gg_._neighborLocation_left_x9pvr_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}",
19
+ ".___SPills_1kwud_gg_{display:inline-flex;align-items:center;justify-content:center;isolation:isolate;border-radius:var(--intergalactic-control-rounded, 6px)}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039));border-color:var(--intergalactic-border-info-active, rgba(0, 40, 230, 0.419));z-index:3}@supports (color:color(display-p3 0 0 0%)){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, rgba(0, 81, 255, 0.039))}@media (color-gamut:p3){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_{background:var(--intergalactic-control-secondary-info, color(display-p3 0.12567 0.31309 0.96324 / 0.039))}}}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_.__selected_1kwud_gg_,.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:focus-visible{z-index:3}.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:active{z-index:2}@media (hover:hover){.___SPills_1kwud_gg_ .___SPill_1kwud_gg_:hover{z-index:2}}.___SPill_1kwud_gg_{display:inline-flex;align-items:center;justify-content:center;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, rgb(255, 255, 255));border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161));border-radius:var(--intergalactic-control-rounded, 6px)}@supports (color:color(display-p3 0 0 0%)){.___SPill_1kwud_gg_{border:1px solid var(--intergalactic-border-primary, rgba(0, 12, 8, 0.161))}@media (color-gamut:p3){.___SPill_1kwud_gg_{border:1px solid var(--intergalactic-border-primary, color(display-p3 0.00798 0.04498 0.03219 / 0.161))}}}.___SPill_1kwud_gg_::-moz-focus-inner{border:0;padding:0}.___SPill_1kwud_gg_:active{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SPill_1kwud_gg_:hover{background:var(--intergalactic-bg-primary-neutral-hover, rgb(248, 249, 248))}}.___SPill_1kwud_gg_.__disabled_1kwud_gg_{cursor:default;pointer-events:none}.___SPill_1kwud_gg_.__disabled_1kwud_gg_>*{opacity:var(--intergalactic-disabled-opacity, 0.4)}.___SText_1kwud_gg_{color:var(--intergalactic-text-primary, rgba(1, 5, 0, 0.899));display:inline-flex}.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583));display:inline-flex;align-items:center;justify-content:center}@supports (color:color(display-p3 0 0 0%)){.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, rgba(0, 3, 0, 0.583))}@media (color-gamut:p3){.___SAddon_1kwud_gg_{color:var(--intergalactic-text-secondary, color(display-p3 0.00228 0.01289 0.00252 / 0.583))}}}.___SPill_1kwud_gg_._size_m_1kwud_gg_{height:var(--intergalactic-form-control-m, 28px);min-width:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SText_1kwud_gg_,.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SText_1kwud_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_m_1kwud_gg_ .___SAddon_1kwud_gg_:only-child{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_{height:var(--intergalactic-form-control-l, 40px);min-width:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:only-child,.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SText_1kwud_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._size_l_1kwud_gg_ .___SAddon_1kwud_gg_:not(:only-child):last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SPill_1kwud_gg_._neighborLocation_right_1kwud_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SPill_1kwud_gg_._neighborLocation_both_1kwud_gg_{border-radius:0;margin-left:-1px}.___SPill_1kwud_gg_._neighborLocation_left_1kwud_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}",
18
20
  /*__inner_css_end__*/
19
- "x9pvr_gg_"
21
+ "1kwud_gg_"
20
22
  ), /*__reshadow_css_end__*/
21
23
  {
22
- "__SText": "___SText_x9pvr_gg_",
23
- "__SAddon": "___SAddon_x9pvr_gg_",
24
- "__SPill": "___SPill_x9pvr_gg_",
25
- "_neighborLocation_right": "_neighborLocation_right_x9pvr_gg_",
26
- "_neighborLocation_both": "_neighborLocation_both_x9pvr_gg_",
27
- "_neighborLocation_left": "_neighborLocation_left_x9pvr_gg_",
28
- "__SPills": "___SPills_x9pvr_gg_",
29
- "_selected": "__selected_x9pvr_gg_",
30
- "_disabled": "__disabled_x9pvr_gg_",
31
- "_size_m": "_size_m_x9pvr_gg_",
32
- "_size_l": "_size_l_x9pvr_gg_"
24
+ "__SText": "___SText_1kwud_gg_",
25
+ "__SAddon": "___SAddon_1kwud_gg_",
26
+ "__SPill": "___SPill_1kwud_gg_",
27
+ "_neighborLocation_right": "_neighborLocation_right_1kwud_gg_",
28
+ "_neighborLocation_both": "_neighborLocation_both_1kwud_gg_",
29
+ "_neighborLocation_left": "_neighborLocation_left_1kwud_gg_",
30
+ "__SPills": "___SPills_1kwud_gg_",
31
+ "_selected": "__selected_1kwud_gg_",
32
+ "_disabled": "__disabled_1kwud_gg_",
33
+ "_size_m": "_size_m_1kwud_gg_",
34
+ "_size_l": "_size_l_1kwud_gg_"
33
35
  })
34
36
  );
37
+ var optionsA11yEnhance = {
38
+ onNeighborChange: function onNeighborChange(neighborElement, props) {
39
+ if (neighborElement) {
40
+ neighborElement.focus();
41
+ if (props.behavior === "auto" || props.behavior === "radio") {
42
+ neighborElement.click();
43
+ }
44
+ }
45
+ },
46
+ childSelector: function childSelector(props) {
47
+ return props.behavior === "auto" || props.behavior === "radio" ? ["role", "radio"] : ["role", "tab"];
48
+ }
49
+ };
35
50
  var RootPills = /* @__PURE__ */ (function(_Component) {
36
51
  function RootPills2() {
37
52
  var _this;
@@ -47,23 +62,39 @@ var RootPills = /* @__PURE__ */ (function(_Component) {
47
62
  };
48
63
  });
49
64
  _defineProperty(_this, "bindHandleKeyDown", function(value) {
50
- return function(e) {
51
- if (e.key === "Enter" || e.key === " ") {
52
- e.preventDefault();
53
- _this.handlers.value(value, e);
65
+ return function(event) {
66
+ if (event.key === "Enter" || event.key === " ") {
67
+ event.preventDefault();
68
+ _this.handlers.value(value, event);
54
69
  }
55
70
  };
56
71
  });
72
+ _defineProperty(_this, "changeIndex", function(startIndex, type) {
73
+ var selectable = false;
74
+ while (!selectable && startIndex >= 0 && startIndex < _this.itemValues.length) {
75
+ if (type === "increment") startIndex++;
76
+ if (type === "decrement") startIndex--;
77
+ var element = _this.itemRefs[startIndex];
78
+ if ((element === null || element === void 0 ? void 0 : element.disabled) === false) {
79
+ selectable = true;
80
+ }
81
+ }
82
+ return startIndex >= 0 && startIndex < _this.itemValues.length ? startIndex : void 0;
83
+ });
57
84
  return _this;
58
85
  }
59
86
  _inherits(RootPills2, _Component);
60
87
  return _createClass(RootPills2, [{
88
+ key: "componentDidMount",
89
+ value: function componentDidMount() {
90
+ 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");
91
+ 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");
92
+ }
93
+ }, {
61
94
  key: "uncontrolledProps",
62
95
  value: function uncontrolledProps() {
63
96
  return {
64
- value: function value(_value, e) {
65
- return _value;
66
- }
97
+ value: null
67
98
  };
68
99
  }
69
100
  }, {
@@ -90,7 +121,7 @@ var RootPills = /* @__PURE__ */ (function(_Component) {
90
121
  var SPills = Box;
91
122
  var _this$asProps2 = this.asProps, Children = _this$asProps2.Children, styles = _this$asProps2.styles, controlsLength = _this$asProps2.controlsLength, disabled = _this$asProps2.disabled, behavior = _this$asProps2.behavior, value = _this$asProps2.value;
92
123
  return _ref5 = sstyled(styles), /* @__PURE__ */ React.createElement(SPills, _ref5.cn("SPills", _objectSpread({}, assignProps({
93
- "role": behavior === "auto" ? "radiogroup" : "tablist",
124
+ "role": behavior === "radio" || behavior === "auto" ? "radiogroup" : "tablist",
94
125
  "aria-disabled": disabled,
95
126
  "use:tabIndex": value !== null ? -1 : 0
96
127
  }, _ref))), /* @__PURE__ */ React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
@@ -109,30 +140,20 @@ _defineProperty(RootPills, "defaultProps", function(_ref9) {
109
140
  behavior: behavior !== null && behavior !== void 0 ? behavior : "auto"
110
141
  };
111
142
  });
112
- _defineProperty(RootPills, "enhance", [a11yEnhance({
113
- onNeighborChange: function onNeighborChange(neighborElement, props) {
114
- if (neighborElement) {
115
- neighborElement.focus();
116
- if (props.behavior === "auto") {
117
- neighborElement.click();
118
- }
119
- }
120
- },
121
- childSelector: function childSelector(props) {
122
- var selector = props.behavior === "auto" ? ["role", "radio"] : ["role", "tab"];
123
- return selector;
124
- }
125
- })]);
143
+ _defineProperty(RootPills, "enhance", [a11yEnhance(optionsA11yEnhance)]);
126
144
  function Pill(props) {
127
145
  var _ref2 = arguments[0], _ref6;
128
146
  var SPill = Box;
129
147
  var Children = props.Children, styles = props.styles, addonLeft = props.addonLeft, addonRight = props.addonRight, selected = props.selected, disabled = props.disabled, index = props.index, behavior = props.behavior;
130
148
  var neighborLocation = useNeighborLocationDetect(index);
131
- var roleAreaProps = {
132
- "role": behavior === "auto" ? "radio" : "tab",
133
- "aria-checked": behavior === "auto" ? selected : void 0,
134
- "aria-selected": behavior !== "auto" ? selected : void 0
135
- };
149
+ var roleAreaProps = {};
150
+ if (behavior === "radio" || behavior === "auto") {
151
+ roleAreaProps.role = "radio";
152
+ roleAreaProps["aria-checked"] = selected;
153
+ } else {
154
+ roleAreaProps.role = "tab";
155
+ roleAreaProps["aria-selected"] = selected;
156
+ }
136
157
  return _ref6 = sstyled(styles), /* @__PURE__ */ React.createElement(SPill, _ref6.cn("SPill", _objectSpread({}, assignProps(_objectSpread({
137
158
  "tag": "button",
138
159
  "type": "button",
@@ -159,15 +180,15 @@ function Addon(props) {
159
180
  "tag": "span"
160
181
  }, _ref4))));
161
182
  }
162
- var wrapPills = function wrapPills2(wrapper) {
163
- return wrapper;
164
- };
165
183
  var Pills = createComponent(RootPills, {
166
184
  Item: [Pill, {
167
185
  Text,
168
186
  Addon
169
187
  }]
170
188
  });
189
+ var wrapPills = function wrapPills2(wrapper) {
190
+ return wrapper;
191
+ };
171
192
  export {
172
193
  Pills as default,
173
194
  wrapPills
package/lib/esm/index.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  import { default as default2, wrapPills } from "./Pills.mjs";
2
- import "./Pills.type.mjs";
3
2
  export {
4
3
  default2 as default,
5
4
  wrapPills
@@ -7,7 +7,7 @@ SPills {
7
7
 
8
8
  SPill[selected] {
9
9
  background: var(--intergalactic-control-secondary-info, oklch(0.527 0.264 262.9 / 0.039));
10
- border-color: var(--intergalactic-border-info-active, oklch(0.7 0.131 275.2));
10
+ border-color: var(--intergalactic-border-info-active, oklch(0.443 0.273 264.2 / 0.419));
11
11
  z-index: 3;
12
12
  }
13
13
  SPill:focus-visible, SPill[selected] {
@@ -1,2 +1,111 @@
1
- export { default, wrapPills } from './Pills';
2
- export * from './Pills.type';
1
+ import type { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';
2
+ import type { Box, BoxProps } from '@semcore/flex-box';
3
+ import type { NeighborItemProps, NeighborLocationProps } from '@semcore/neighbor-location';
4
+ import type React from 'react';
5
+
6
+ export type PillsValue = string | number | boolean | null;
7
+
8
+ /**
9
+ * @deprecated
10
+ * use `manual`
11
+ */
12
+ export type DeprecatedBehaviorTabs = 'tabs';
13
+ /**
14
+ * @deprecated
15
+ * use `auto`
16
+ */
17
+ export type DeprecatedBehaviorRadio = 'radio';
18
+
19
+ /** @deprecated */
20
+ export interface IPillsProps<T extends PillsValue = PillsValue>
21
+ extends PillsProps<T>,
22
+ UnknownProperties {}
23
+ export type PillsProps<T extends PillsValue = PillsValue> = NeighborLocationProps &
24
+ BoxProps & {
25
+ /** Pills size */
26
+ size?: 'l' | 'm';
27
+ /** Disabled state */
28
+ disabled?: boolean;
29
+ /** Called when the selection is changed */
30
+ onChange?:
31
+ | ((value: T, e?: React.SyntheticEvent<HTMLSpanElement>) => void)
32
+ | React.Dispatch<React.SetStateAction<T>>;
33
+ /** Value for the selected pill */
34
+ value?: T;
35
+ /** Default value for the selected pill */
36
+ defaultValue?: T;
37
+ /** Sets semantic role for corresponding behavior,
38
+ * when set to `auto` pressing left and right arrows
39
+ * selects corresponding sibling pill.
40
+ *
41
+ * It's recommended to use `auto` behavior in forms
42
+ * while `manual` behavior for navigation and layout.
43
+ * @default tabs
44
+ */
45
+ behavior?:
46
+ DeprecatedBehaviorTabs | DeprecatedBehaviorRadio
47
+ | 'auto'
48
+ | 'manual';
49
+ };
50
+
51
+ /** @deprecated */
52
+ export interface IPillProps extends PillProps, UnknownProperties {}
53
+ export type PillProps = BoxProps &
54
+ NeighborItemProps & {
55
+ /** Pill value */
56
+ value?: PillsValue;
57
+ /** Disabled state */
58
+ disabled?: boolean;
59
+ /** Selected state */
60
+ selected?: boolean;
61
+ /** Left addon text */
62
+ addonLeft?: React.ElementType;
63
+ /** Right addon tag */
64
+ addonRight?: React.ElementType;
65
+ };
66
+
67
+ /** @deprecated */
68
+ export interface IPillsContext extends PillsContext, UnknownProperties {}
69
+ export type PillsContext = {
70
+ getItemProps: PropGetterFn;
71
+ };
72
+
73
+ /** @deprecated */
74
+ export interface IPillsHandlers extends PillsHandlers, UnknownProperties {}
75
+ export type PillsHandlers = {
76
+ value: (value: PillsValue) => void;
77
+ };
78
+
79
+ type IntergalacticPillsComponent<PropsExtending = {}> = (<
80
+ Value extends PillsValue,
81
+ Tag extends Intergalactic.Tag = 'div',
82
+ >(
83
+ props: Intergalactic.InternalTypings.ComponentProps<
84
+ Tag,
85
+ 'div',
86
+ PillsProps<Value>,
87
+ PillsContext,
88
+ [handlers: PillsHandlers]
89
+ > &
90
+ PropsExtending,
91
+ ) => Intergalactic.InternalTypings.ComponentRenderingResults) &
92
+ Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', PillsProps>;
93
+
94
+ declare const Pills: IntergalacticPillsComponent & {
95
+ Item: Intergalactic.Component<'button', PillProps, [handlers: PillsHandlers]> & {
96
+ Text: typeof Box;
97
+ Addon: typeof Box;
98
+ };
99
+ };
100
+
101
+ declare const wrapPills: <PropsExtending extends {}>(
102
+ wrapper: (
103
+ props: Intergalactic.InternalTypings.UntypeRefAndTag<
104
+ Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticPillsComponent>
105
+ > &
106
+ PropsExtending,
107
+ ) => React.ReactNode,
108
+ ) => IntergalacticPillsComponent<PropsExtending>;
109
+ export { wrapPills };
110
+
111
+ export default Pills;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/pills",
3
3
  "description": "Semrush Pills Component",
4
- "version": "16.1.0",
4
+ "version": "16.1.1",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,8 +14,8 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/flex-box": "16.1.0",
18
- "@semcore/neighbor-location": "16.1.0"
17
+ "@semcore/flex-box": "16.1.1",
18
+ "@semcore/neighbor-location": "16.1.1"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "@semcore/base-components": "^16.6.0"
@@ -28,8 +28,8 @@
28
28
  "devDependencies": {
29
29
  "@semcore/core": "16.6.0",
30
30
  "@semcore/testing-utils": "1.0.0",
31
- "@semcore/badge": "16.1.0",
32
- "@semcore/icon": "16.8.0"
31
+ "@semcore/icon": "16.8.1",
32
+ "@semcore/badge": "16.1.1"
33
33
  },
34
34
  "scripts": {
35
35
  "build": "pnpm semcore-builder --source=js && pnpm vite build"
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=Pills.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pills.type.js","names":[],"sources":["../../src/Pills.type.ts"],"sourcesContent":["import type { Box, BoxProps, NeighborItemProps, NeighborLocationProps } from '@semcore/base-components';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\ndeclare namespace NSPills {\n // TODO: It looks like the value isn't accurate. Revise and align it with the component's logic.\n type Value = string | number | boolean | null;\n type Props<T extends NSPills.Value = NSPills.Value> = NeighborLocationProps & 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 `auto` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `auto` behavior in forms\n * while `manual` behavior for navigation and layout.\n * @default tabs\n */\n behavior?:\n | 'auto'\n | 'manual';\n };\n type Ctx = {\n getItemProps: PropGetterFn;\n };\n type Handlers = {\n value: (value: Props['value'], event: React.SyntheticEvent) => Props['value'];\n };\n namespace Pill {\n type Props = BoxProps & NeighborItemProps & {\n /** Pill value */\n value?: NSPills.Value;\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 namespace Text {\n type Component = typeof Box;\n }\n namespace Addon {\n type Component = typeof Box;\n }\n\n type Component = Intergalactic.Component<'button', Props, [handlers: Handlers]>;\n }\n\n type WrapComponent<PropsExtending = {}> = (<\n V extends Value,\n Tag extends Intergalactic.Tag = 'div',\n >(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n Props<V>,\n Ctx,\n [handlers: Handlers]\n > &\n PropsExtending,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', Props>;\n\n type Component = WrapComponent & {\n Item: Pill.Component & {\n Text: Pill.Text.Component;\n Addon: Pill.Addon.Component;\n };\n };\n}\n\n/** @deprecated It will be removed in v18. */\nexport type PillsValue = NSPills.Value;\n/** @deprecated It will be removed in v18. */\nexport type PillsProps<T extends PillsValue = PillsValue> = NSPills.Props<T>;\n/** @deprecated It will be removed in v18. */\nexport type PillProps = NSPills.Pill.Props;\n/** @deprecated It will be removed in v18. */\nexport type PillsContext = NSPills.Ctx;\n/** @deprecated It will be removed in v18. */\nexport type PillsHandlers = NSPills.Handlers;\n\nexport type { NSPills };\n"],"mappings":"","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Pills.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pills.type.js","names":[],"sources":["../../src/Pills.type.ts"],"sourcesContent":["import type { Box, BoxProps, NeighborItemProps, NeighborLocationProps } from '@semcore/base-components';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type React from 'react';\n\ndeclare namespace NSPills {\n // TODO: It looks like the value isn't accurate. Revise and align it with the component's logic.\n type Value = string | number | boolean | null;\n type Props<T extends NSPills.Value = NSPills.Value> = NeighborLocationProps & 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 `auto` pressing left and right arrows\n * selects corresponding sibling pill.\n *\n * It's recommended to use `auto` behavior in forms\n * while `manual` behavior for navigation and layout.\n * @default tabs\n */\n behavior?:\n | 'auto'\n | 'manual';\n };\n type Ctx = {\n getItemProps: PropGetterFn;\n };\n type Handlers = {\n value: (value: Props['value'], event: React.SyntheticEvent) => Props['value'];\n };\n namespace Pill {\n type Props = BoxProps & NeighborItemProps & {\n /** Pill value */\n value?: NSPills.Value;\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 namespace Text {\n type Component = typeof Box;\n }\n namespace Addon {\n type Component = typeof Box;\n }\n\n type Component = Intergalactic.Component<'button', Props, [handlers: Handlers]>;\n }\n\n type WrapComponent<PropsExtending = {}> = (<\n V extends Value,\n Tag extends Intergalactic.Tag = 'div',\n >(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n Props<V>,\n Ctx,\n [handlers: Handlers]\n > &\n PropsExtending,\n ) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', Props>;\n\n type Component = WrapComponent & {\n Item: Pill.Component & {\n Text: Pill.Text.Component;\n Addon: Pill.Addon.Component;\n };\n };\n}\n\n/** @deprecated It will be removed in v18. */\nexport type PillsValue = NSPills.Value;\n/** @deprecated It will be removed in v18. */\nexport type PillsProps<T extends PillsValue = PillsValue> = NSPills.Props<T>;\n/** @deprecated It will be removed in v18. */\nexport type PillProps = NSPills.Pill.Props;\n/** @deprecated It will be removed in v18. */\nexport type PillsContext = NSPills.Ctx;\n/** @deprecated It will be removed in v18. */\nexport type PillsHandlers = NSPills.Handlers;\n\nexport type { NSPills };\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
-
@@ -1,6 +0,0 @@
1
- import type { Intergalactic } from '@semcore/core';
2
- import React from 'react';
3
- import type { NSPills } from './Pills.type';
4
- export declare const wrapPills: <PropsExtending extends {}>(wrapper: (props: Intergalactic.InternalTypings.UntypeRefAndTag<Intergalactic.InternalTypings.ComponentPropsNesting<NSPills.WrapComponent>> & PropsExtending) => React.ReactNode) => NSPills.WrapComponent<PropsExtending>;
5
- declare const Pills: NSPills.Component;
6
- export default Pills;
@@ -1,74 +0,0 @@
1
- import type { Box, BoxProps, NeighborItemProps, NeighborLocationProps } from '@semcore/base-components';
2
- import type { PropGetterFn, Intergalactic } from '@semcore/core';
3
- import type React from 'react';
4
- declare namespace NSPills {
5
- type Value = string | number | boolean | null;
6
- type Props<T extends NSPills.Value = NSPills.Value> = NeighborLocationProps & BoxProps & {
7
- /** Pills size */
8
- size?: 'l' | 'm';
9
- /** Disabled state */
10
- disabled?: boolean;
11
- /** Called when the selection is changed */
12
- onChange?: ((value: T, e?: React.SyntheticEvent<HTMLSpanElement>) => void) | React.Dispatch<React.SetStateAction<T>>;
13
- /** Value for the selected pill */
14
- value?: T;
15
- /** Default value for the selected pill */
16
- defaultValue?: T;
17
- /** Sets semantic role for corresponding behavior,
18
- * when set to `auto` pressing left and right arrows
19
- * selects corresponding sibling pill.
20
- *
21
- * It's recommended to use `auto` behavior in forms
22
- * while `manual` behavior for navigation and layout.
23
- * @default tabs
24
- */
25
- behavior?: 'auto' | 'manual';
26
- };
27
- type Ctx = {
28
- getItemProps: PropGetterFn;
29
- };
30
- type Handlers = {
31
- value: (value: Props['value'], event: React.SyntheticEvent) => Props['value'];
32
- };
33
- namespace Pill {
34
- type Props = BoxProps & NeighborItemProps & {
35
- /** Pill value */
36
- value?: NSPills.Value;
37
- /** Disabled state */
38
- disabled?: boolean;
39
- /** Selected state */
40
- selected?: boolean;
41
- /** Left addon text */
42
- addonLeft?: React.ElementType;
43
- /** Right addon tag */
44
- addonRight?: React.ElementType;
45
- };
46
- namespace Text {
47
- type Component = typeof Box;
48
- }
49
- namespace Addon {
50
- type Component = typeof Box;
51
- }
52
- type Component = Intergalactic.Component<'button', Props, [handlers: Handlers]>;
53
- }
54
- type WrapComponent<PropsExtending = {}> = (<V extends Value, Tag extends Intergalactic.Tag = 'div'>(props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', Props<V>, Ctx, [
55
- handlers: Handlers
56
- ]> & PropsExtending) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', Props>;
57
- type Component = WrapComponent & {
58
- Item: Pill.Component & {
59
- Text: Pill.Text.Component;
60
- Addon: Pill.Addon.Component;
61
- };
62
- };
63
- }
64
- /** @deprecated It will be removed in v18. */
65
- export type PillsValue = NSPills.Value;
66
- /** @deprecated It will be removed in v18. */
67
- export type PillsProps<T extends PillsValue = PillsValue> = NSPills.Props<T>;
68
- /** @deprecated It will be removed in v18. */
69
- export type PillProps = NSPills.Pill.Props;
70
- /** @deprecated It will be removed in v18. */
71
- export type PillsContext = NSPills.Ctx;
72
- /** @deprecated It will be removed in v18. */
73
- export type PillsHandlers = NSPills.Handlers;
74
- export type { NSPills };