colibri-ui 0.8.83 → 0.8.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/Accordion/Accordion.module.css +4 -0
  2. package/Accordion/index.js +15 -23
  3. package/Autocomplete/Autocomplete.js +101 -132
  4. package/Avatar/Avatar.module.css +6 -0
  5. package/Avatar/index.js +102 -89
  6. package/Badge/Badge.module.css +2 -1
  7. package/Badge/Control/index.js +5 -3
  8. package/Badge/index.js +16 -16
  9. package/Button/index.js +23 -20
  10. package/Button/tokens.js +2 -2
  11. package/Calendar/Calendar.js +171 -269
  12. package/Card/Card.js +26 -32
  13. package/Checkbox/index.js +46 -43
  14. package/Chip/Chip.module.css +2 -1
  15. package/Chip/index.js +15 -15
  16. package/ClickOutside/index.js +10 -13
  17. package/CodeField/CodeField.js +113 -170
  18. package/Counter/Counter.module.css +2 -1
  19. package/Counter/index.js +21 -20
  20. package/Datepicker/components/DatePicker/index.js +81 -102
  21. package/Datepicker/index.js +17 -16
  22. package/DotsLoader/index.js +23 -15
  23. package/Drawer/Drawer.js +75 -97
  24. package/Drawer/Drawer.module.css +2 -1
  25. package/Dropdown/index.js +55 -68
  26. package/Dropzone/Dropzone.js +78 -168
  27. package/Dropzone/Dropzone.module.css +2 -1
  28. package/Editable/Editable.js +44 -57
  29. package/Grid/Item/index.js +11 -13
  30. package/Grid/index.js +15 -21
  31. package/Icons/ArrowNext.js +7 -8
  32. package/Icons/Cart.js +7 -8
  33. package/Icons/Check.js +7 -8
  34. package/Icons/Chevron.js +7 -8
  35. package/Icons/Close.js +6 -6
  36. package/Icons/Copy.js +7 -8
  37. package/Icons/Cross.js +6 -6
  38. package/Icons/CrossFill.js +7 -8
  39. package/Icons/Edit.js +7 -8
  40. package/Icons/Exit.js +7 -8
  41. package/Icons/EyeClosed.js +7 -8
  42. package/Icons/EyeOpen.js +7 -8
  43. package/Icons/Help.js +6 -6
  44. package/Icons/Info.js +7 -8
  45. package/Icons/Minus.js +7 -8
  46. package/Icons/More.js +7 -8
  47. package/Icons/Plus.js +7 -8
  48. package/Icons/Setting.js +7 -8
  49. package/Icons/Shield.js +7 -8
  50. package/Icons/Trash.js +7 -8
  51. package/Icons/User.js +7 -8
  52. package/Image/Image.module.css +4 -0
  53. package/Image/index.d.ts +1 -1
  54. package/Image/index.js +44 -37
  55. package/Input/index.d.ts +1 -1
  56. package/Input/index.js +38 -25
  57. package/Input/index.props.d.ts +1 -1
  58. package/InputRadio/index.js +32 -24
  59. package/List/List.js +81 -76
  60. package/Menu/Menu.module.css +2 -1
  61. package/Menu/components/MenuItem/index.js +17 -14
  62. package/Menu/index.js +22 -23
  63. package/Modal/components/Body/index.js +9 -8
  64. package/Modal/components/Close/Close.module.css +4 -0
  65. package/Modal/components/Close/index.js +13 -14
  66. package/Modal/components/Content/index.js +5 -6
  67. package/Modal/components/Footer/index.js +5 -3
  68. package/Modal/components/Header/index.js +13 -12
  69. package/Modal/components/Title/index.js +10 -9
  70. package/Modal/context.js +3 -3
  71. package/Modal/index.js +46 -68
  72. package/MultiSelect/components/MenuOverlay/index.js +48 -61
  73. package/MultiSelect/components/MenuOverlayItem/index.js +13 -14
  74. package/MultiSelect/index.js +72 -100
  75. package/MultiSelect/index.module.css +2 -1
  76. package/MultiSelect/utils/index.js +8 -18
  77. package/NumberInput/NumberInput.js +80 -112
  78. package/Portal/index.js +6 -10
  79. package/Progress/Progress.js +45 -58
  80. package/RadioGroup/Radio.js +29 -32
  81. package/RadioGroup/index.js +43 -46
  82. package/Rating/Rating.js +50 -63
  83. package/Select/components/MenuOverlay/index.js +16 -25
  84. package/Select/components/MenuOverlayItem/index.js +13 -11
  85. package/Select/index.js +39 -48
  86. package/Select/index.module.css +2 -1
  87. package/Separator/index.js +5 -6
  88. package/Sheet/Sheet.js +89 -121
  89. package/Sheet/Sheet.module.css +4 -2
  90. package/Skeleton/index.js +25 -30
  91. package/Slider/Slider.js +83 -119
  92. package/Status/index.js +17 -18
  93. package/Switch/Switch.module.css +2 -1
  94. package/Switch/index.js +22 -15
  95. package/TabsMenu/Tab/Tab.js +14 -10
  96. package/TabsMenu/Tab/Tab.module.css +2 -1
  97. package/TabsMenu/index.js +25 -26
  98. package/TabsPanels/Panel/index.js +6 -4
  99. package/TabsPanels/index.js +13 -10
  100. package/TextArea/index.d.ts +1 -1
  101. package/TextArea/index.js +31 -19
  102. package/Theme/breakpoints.js +5 -11
  103. package/Theme/colors/theme_buenos_aires.js +14 -14
  104. package/Theme/colors/theme_jaipur.js +14 -14
  105. package/Theme/global.css +0 -1
  106. package/Theme/index.js +1 -1
  107. package/TimeSelect/Label/index.js +11 -13
  108. package/TimeSelect/helpers.js +23 -42
  109. package/TimeSelect/index.js +32 -38
  110. package/Tooltip/index.js +36 -42
  111. package/Typography/index.js +17 -13
  112. package/Typography/index.props.d.ts +3 -0
  113. package/base/BaseInput/index.js +10 -8
  114. package/base/FormField/index.d.ts +1 -1
  115. package/base/FormField/index.js +27 -22
  116. package/base/FormField/index.props.d.ts +4 -0
  117. package/base/InputRoot/index.js +27 -27
  118. package/esm/Accordion/Accordion.module.css +4 -0
  119. package/esm/Accordion/index.js +15 -21
  120. package/esm/Autocomplete/Autocomplete.js +101 -130
  121. package/esm/Avatar/Avatar.module.css +6 -0
  122. package/esm/Avatar/index.js +102 -88
  123. package/esm/Badge/Badge.module.css +2 -1
  124. package/esm/Badge/Control/index.js +5 -3
  125. package/esm/Badge/index.js +16 -15
  126. package/esm/Button/index.js +23 -19
  127. package/esm/Button/tokens.js +2 -2
  128. package/esm/Calendar/Calendar.js +171 -267
  129. package/esm/Card/Card.js +26 -32
  130. package/esm/Checkbox/index.js +46 -42
  131. package/esm/Chip/Chip.module.css +2 -1
  132. package/esm/Chip/index.js +15 -14
  133. package/esm/ClickOutside/index.js +10 -13
  134. package/esm/CodeField/CodeField.js +113 -169
  135. package/esm/Counter/Counter.module.css +2 -1
  136. package/esm/Counter/index.js +21 -19
  137. package/esm/Datepicker/components/DatePicker/index.js +81 -101
  138. package/esm/Datepicker/index.js +17 -16
  139. package/esm/DotsLoader/index.js +23 -14
  140. package/esm/Drawer/Drawer.js +75 -96
  141. package/esm/Drawer/Drawer.module.css +2 -1
  142. package/esm/Dropdown/index.js +55 -66
  143. package/esm/Dropzone/Dropzone.js +78 -165
  144. package/esm/Dropzone/Dropzone.module.css +2 -1
  145. package/esm/Editable/Editable.js +44 -56
  146. package/esm/Grid/Item/index.js +11 -12
  147. package/esm/Grid/index.js +15 -21
  148. package/esm/Icons/ArrowNext.js +7 -8
  149. package/esm/Icons/Cart.js +7 -8
  150. package/esm/Icons/Check.js +7 -8
  151. package/esm/Icons/Chevron.js +7 -8
  152. package/esm/Icons/Close.js +6 -6
  153. package/esm/Icons/Copy.js +7 -8
  154. package/esm/Icons/Cross.js +6 -6
  155. package/esm/Icons/CrossFill.js +7 -8
  156. package/esm/Icons/Edit.js +7 -8
  157. package/esm/Icons/Exit.js +7 -8
  158. package/esm/Icons/EyeClosed.js +7 -8
  159. package/esm/Icons/EyeOpen.js +7 -8
  160. package/esm/Icons/Help.js +6 -6
  161. package/esm/Icons/Info.js +7 -8
  162. package/esm/Icons/Minus.js +7 -8
  163. package/esm/Icons/More.js +7 -8
  164. package/esm/Icons/Plus.js +7 -8
  165. package/esm/Icons/Setting.js +7 -8
  166. package/esm/Icons/Shield.js +7 -8
  167. package/esm/Icons/Trash.js +7 -8
  168. package/esm/Icons/User.js +7 -8
  169. package/esm/Image/Image.module.css +4 -0
  170. package/esm/Image/index.d.ts +1 -1
  171. package/esm/Image/index.js +44 -36
  172. package/esm/Input/index.d.ts +1 -1
  173. package/esm/Input/index.js +39 -26
  174. package/esm/Input/index.props.d.ts +1 -1
  175. package/esm/InputRadio/index.js +32 -23
  176. package/esm/List/List.js +81 -75
  177. package/esm/Menu/Menu.module.css +2 -1
  178. package/esm/Menu/components/MenuItem/index.js +17 -13
  179. package/esm/Menu/index.js +22 -23
  180. package/esm/Modal/components/Body/index.js +9 -7
  181. package/esm/Modal/components/Close/Close.module.css +4 -0
  182. package/esm/Modal/components/Close/index.js +13 -14
  183. package/esm/Modal/components/Content/index.js +5 -6
  184. package/esm/Modal/components/Footer/index.js +5 -3
  185. package/esm/Modal/components/Header/index.js +13 -11
  186. package/esm/Modal/components/Title/index.js +10 -9
  187. package/esm/Modal/context.js +3 -3
  188. package/esm/Modal/index.js +50 -70
  189. package/esm/MultiSelect/components/MenuOverlay/index.js +48 -60
  190. package/esm/MultiSelect/components/MenuOverlayItem/index.js +13 -14
  191. package/esm/MultiSelect/index.js +72 -97
  192. package/esm/MultiSelect/index.module.css +2 -1
  193. package/esm/MultiSelect/utils/index.js +8 -14
  194. package/esm/NumberInput/NumberInput.js +80 -111
  195. package/esm/Portal/index.js +6 -9
  196. package/esm/Progress/Progress.js +45 -58
  197. package/esm/RadioGroup/Radio.js +29 -32
  198. package/esm/RadioGroup/index.js +43 -45
  199. package/esm/Rating/Rating.js +50 -63
  200. package/esm/Select/components/MenuOverlay/index.js +16 -24
  201. package/esm/Select/components/MenuOverlayItem/index.js +13 -11
  202. package/esm/Select/index.js +39 -46
  203. package/esm/Select/index.module.css +2 -1
  204. package/esm/Separator/index.js +5 -6
  205. package/esm/Sheet/Sheet.js +89 -119
  206. package/esm/Sheet/Sheet.module.css +4 -2
  207. package/esm/Skeleton/index.js +25 -30
  208. package/esm/Slider/Slider.js +83 -119
  209. package/esm/Status/index.js +17 -17
  210. package/esm/Switch/Switch.module.css +2 -1
  211. package/esm/Switch/index.js +22 -14
  212. package/esm/TabsMenu/Tab/Tab.js +14 -9
  213. package/esm/TabsMenu/Tab/Tab.module.css +2 -1
  214. package/esm/TabsMenu/index.js +25 -26
  215. package/esm/TabsPanels/Panel/index.js +6 -4
  216. package/esm/TabsPanels/index.js +13 -10
  217. package/esm/TextArea/index.d.ts +1 -1
  218. package/esm/TextArea/index.js +32 -20
  219. package/esm/Theme/breakpoints.js +5 -11
  220. package/esm/Theme/colors/theme_buenos_aires.js +14 -14
  221. package/esm/Theme/colors/theme_jaipur.js +14 -14
  222. package/esm/Theme/global.css +0 -1
  223. package/esm/Theme/index.js +1 -1
  224. package/esm/TimeSelect/Label/index.js +11 -13
  225. package/esm/TimeSelect/helpers.js +22 -37
  226. package/esm/TimeSelect/index.js +32 -38
  227. package/esm/Tooltip/index.js +36 -41
  228. package/esm/Typography/index.js +17 -12
  229. package/esm/Typography/index.props.d.ts +3 -0
  230. package/esm/base/BaseInput/index.js +10 -8
  231. package/esm/base/FormField/index.d.ts +1 -1
  232. package/esm/base/FormField/index.js +27 -21
  233. package/esm/base/FormField/index.props.d.ts +4 -0
  234. package/esm/base/InputRoot/index.js +27 -26
  235. package/esm/helpers/date/index.js +4 -8
  236. package/esm/hooks/useMediaSizes/index.js +9 -15
  237. package/esm/hooks/useModalStack/index.js +6 -9
  238. package/esm/hooks/useOnClickOutside/index.js +6 -6
  239. package/esm/hooks/useScrollLock/index.js +10 -9
  240. package/esm/hooks/useTrapFocus/index.js +8 -10
  241. package/esm/lib/keyboard.js +2 -4
  242. package/helpers/date/index.js +21 -32
  243. package/hooks/useMediaSizes/index.js +9 -15
  244. package/hooks/useModalStack/index.js +6 -9
  245. package/hooks/useOnClickOutside/index.js +6 -6
  246. package/hooks/useScrollLock/index.js +10 -9
  247. package/hooks/useTrapFocus/index.js +8 -10
  248. package/lib/keyboard.js +2 -4
  249. package/package.json +5 -1
package/Icons/Setting.js CHANGED
@@ -7,14 +7,13 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
8
  var React__default = /*#__PURE__*/_interopDefault(React);
9
9
 
10
- var Setting = function Setting(_a) {
11
- var _a$fill = _a.fill,
12
- fill = _a$fill === void 0 ? "currentColor" : _a$fill,
13
- _a$width = _a.width,
14
- width = _a$width === void 0 ? 24 : _a$width,
15
- _a$height = _a.height,
16
- height = _a$height === void 0 ? 24 : _a$height,
17
- ref = _a.ref,
10
+ const Setting = _a => {
11
+ var {
12
+ fill = "currentColor",
13
+ width = 24,
14
+ height = 24,
15
+ ref
16
+ } = _a,
18
17
  props = tslib.__rest(_a, ["fill", "width", "height", "ref"]);
19
18
  return /*#__PURE__*/React__default.default.createElement("svg", Object.assign({}, props, {
20
19
  ref: ref,
package/Icons/Shield.js CHANGED
@@ -7,14 +7,13 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
8
  var React__default = /*#__PURE__*/_interopDefault(React);
9
9
 
10
- var Shield = function Shield(_a) {
11
- var _a$fill = _a.fill,
12
- fill = _a$fill === void 0 ? "currentColor" : _a$fill,
13
- _a$width = _a.width,
14
- width = _a$width === void 0 ? 24 : _a$width,
15
- _a$height = _a.height,
16
- height = _a$height === void 0 ? 24 : _a$height,
17
- ref = _a.ref,
10
+ const Shield = _a => {
11
+ var {
12
+ fill = "currentColor",
13
+ width = 24,
14
+ height = 24,
15
+ ref
16
+ } = _a,
18
17
  props = tslib.__rest(_a, ["fill", "width", "height", "ref"]);
19
18
  return /*#__PURE__*/React__default.default.createElement("svg", Object.assign({
20
19
  xmlns: "http://www.w3.org/2000/svg",
package/Icons/Trash.js CHANGED
@@ -7,14 +7,13 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
8
  var React__default = /*#__PURE__*/_interopDefault(React);
9
9
 
10
- var Trash = function Trash(_a) {
11
- var _a$fill = _a.fill,
12
- fill = _a$fill === void 0 ? "currentColor" : _a$fill,
13
- _a$width = _a.width,
14
- width = _a$width === void 0 ? 24 : _a$width,
15
- _a$height = _a.height,
16
- height = _a$height === void 0 ? 24 : _a$height,
17
- ref = _a.ref,
10
+ const Trash = _a => {
11
+ var {
12
+ fill = "currentColor",
13
+ width = 24,
14
+ height = 24,
15
+ ref
16
+ } = _a,
18
17
  props = tslib.__rest(_a, ["fill", "width", "height", "ref"]);
19
18
  return /*#__PURE__*/React__default.default.createElement("svg", Object.assign({
20
19
  xmlns: "http://www.w3.org/2000/svg",
package/Icons/User.js CHANGED
@@ -7,14 +7,13 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
7
 
8
8
  var React__default = /*#__PURE__*/_interopDefault(React);
9
9
 
10
- var User = function User(_a) {
11
- var _a$fill = _a.fill,
12
- fill = _a$fill === void 0 ? "currentColor" : _a$fill,
13
- _a$width = _a.width,
14
- width = _a$width === void 0 ? 24 : _a$width,
15
- _a$height = _a.height,
16
- height = _a$height === void 0 ? 24 : _a$height,
17
- ref = _a.ref,
10
+ const User = _a => {
11
+ var {
12
+ fill = "currentColor",
13
+ width = 24,
14
+ height = 24,
15
+ ref
16
+ } = _a,
18
17
  props = tslib.__rest(_a, ["fill", "width", "height", "ref"]);
19
18
  return /*#__PURE__*/React__default.default.createElement("svg", Object.assign({
20
19
  xmlns: "http://www.w3.org/2000/svg",
@@ -11,4 +11,8 @@
11
11
  }
12
12
  .root img :-moz-broken {
13
13
  opacity: 0;
14
+ }
15
+ .root img:focus-visible {
16
+ outline: var(--focus-ring-width) solid var(--color-focus-ring);
17
+ outline-offset: var(--focus-ring-width);
14
18
  }
package/Image/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import type { ImageProps } from "./index.props";
3
- export declare const Image: ({ className, loading, src, fallbackSrc, onClick, srcSet, sizes, ariaLabel, sources, alt, width, height, ref, ...props }: ImageProps) => React.JSX.Element;
3
+ export declare const Image: ({ className, loading, src, fallbackSrc, onClick, onKeyDown, srcSet, sizes, ariaLabel, sources, alt, width, height, ref, ...props }: ImageProps) => React.JSX.Element;
package/Image/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
3
  var tslib = require('tslib');
5
4
  var React = require('react');
6
5
  var clsx = require('clsx');
@@ -8,61 +7,69 @@ var styles = require('./Image.module.css');
8
7
 
9
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
9
 
11
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
12
10
  var React__default = /*#__PURE__*/_interopDefault(React);
13
11
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
14
12
  var styles__default = /*#__PURE__*/_interopDefault(styles);
15
13
 
16
- var emptyImage = "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";
17
- var Image = function Image(_a) {
18
- var className = _a.className,
19
- _a$loading = _a.loading,
20
- loading = _a$loading === void 0 ? "lazy" : _a$loading,
21
- src = _a.src,
22
- fallbackSrc = _a.fallbackSrc,
23
- onClick = _a.onClick,
24
- srcSet = _a.srcSet,
25
- sizes = _a.sizes,
26
- ariaLabel = _a.ariaLabel,
27
- _a$sources = _a.sources,
28
- sources = _a$sources === void 0 ? [] : _a$sources,
29
- _a$alt = _a.alt,
30
- alt = _a$alt === void 0 ? src : _a$alt,
31
- width = _a.width,
32
- height = _a.height,
33
- ref = _a.ref,
34
- props = tslib.__rest(_a, ["className", "loading", "src", "fallbackSrc", "onClick", "srcSet", "sizes", "ariaLabel", "sources", "alt", "width", "height", "ref"]);
35
- var _useState = React.useState(false),
36
- _useState2 = _slicedToArray__default.default(_useState, 2),
37
- isFailed = _useState2[0],
38
- setFailed = _useState2[1];
39
- var imageSrc = src || emptyImage;
40
- var imageSrcSet = srcSet;
41
- var sizeAttrs = {};
14
+ const emptyImage = "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";
15
+ const Image = _a => {
16
+ var {
17
+ className,
18
+ loading = "lazy",
19
+ src,
20
+ fallbackSrc,
21
+ onClick,
22
+ onKeyDown,
23
+ srcSet,
24
+ sizes,
25
+ ariaLabel,
26
+ sources = [],
27
+ alt = src,
28
+ width,
29
+ height,
30
+ ref
31
+ } = _a,
32
+ props = tslib.__rest(_a, ["className", "loading", "src", "fallbackSrc", "onClick", "onKeyDown", "srcSet", "sizes", "ariaLabel", "sources", "alt", "width", "height", "ref"]);
33
+ const [isFailed, setFailed] = React.useState(false);
34
+ const imageSrc = src || emptyImage;
35
+ const imageSrcSet = srcSet;
36
+ const sizeAttrs = {};
42
37
  if (width !== undefined) {
43
38
  sizeAttrs.width = width;
44
39
  }
45
40
  if (height !== undefined) {
46
41
  sizeAttrs.height = height;
47
42
  }
48
- var handleError = React.useCallback(function () {
43
+ const handleError = React.useCallback(() => {
49
44
  setFailed(true);
50
45
  }, []);
46
+ const interactiveProps = onClick ? {
47
+ role: "button",
48
+ tabIndex: 0,
49
+ onClick,
50
+ onKeyDown: event => {
51
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
52
+ if (event.defaultPrevented) return;
53
+ if (event.key !== "Enter" && event.key !== " ") return;
54
+ event.preventDefault();
55
+ event.currentTarget.click();
56
+ }
57
+ } : {
58
+ onKeyDown,
59
+ "aria-hidden": ariaLabel ? "false" : "true"
60
+ };
51
61
  return /*#__PURE__*/React__default.default.createElement("picture", {
52
62
  className: styles__default.default.root
53
- }, !!sources.length && sources.map(function (source, index) {
54
- return /*#__PURE__*/React__default.default.createElement("source", Object.assign({
55
- key: "item-".concat(index)
56
- }, source));
57
- }), /*#__PURE__*/React__default.default.createElement("img", Object.assign({
63
+ }, !!sources.length && sources.map((source, index) => (/*#__PURE__*/React__default.default.createElement("source", Object.assign({
64
+ key: `item-${index}`
65
+ }, source)))), /*#__PURE__*/React__default.default.createElement("img", Object.assign({
58
66
  ref: ref,
59
67
  alt: alt,
60
68
  style: sizeAttrs,
61
69
  className: clsx__default.default(className),
62
70
  loading: loading,
63
- "aria-hidden": ariaLabel ? "false" : "true",
64
- "aria-label": ariaLabel,
65
- onClick: onClick,
71
+ "aria-label": ariaLabel
72
+ }, interactiveProps, {
66
73
  onError: handleError,
67
74
  src: isFailed && fallbackSrc ? fallbackSrc : imageSrc,
68
75
  srcSet: imageSrcSet,
package/Input/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import type { InputProps } from "./index.props";
3
- export declare const Input: ({ className, startIcon, endIcon, label, hint, hasError, required, onChange, onFocus, onBlur, onKeyDown, inputRef, controlAfter, controlClassName, controlRef, disabled, variant, size, ref, ...props }: InputProps) => React.JSX.Element;
3
+ export declare const Input: ({ className, startIcon, endIcon, label, hint, hasError, required, onChange, onFocus, onBlur, onKeyDown, inputRef, controlAfter, controlClassName, controlRef, disabled, variant, size, ref, id, ...props }: InputProps) => React.JSX.Element;
package/Input/index.js CHANGED
@@ -12,30 +12,35 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
  var React__default = /*#__PURE__*/_interopDefault(React);
13
13
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
14
14
 
15
- var Input = function Input(_a) {
16
- var className = _a.className,
17
- startIcon = _a.startIcon,
18
- endIcon = _a.endIcon,
19
- label = _a.label,
20
- hint = _a.hint,
21
- hasError = _a.hasError,
22
- required = _a.required,
23
- onChange = _a.onChange,
24
- onFocus = _a.onFocus,
25
- onBlur = _a.onBlur,
26
- onKeyDown = _a.onKeyDown,
27
- inputRef = _a.inputRef,
28
- controlAfter = _a.controlAfter,
29
- controlClassName = _a.controlClassName,
30
- controlRef = _a.controlRef,
31
- disabled = _a.disabled,
32
- _a$variant = _a.variant,
33
- variant = _a$variant === void 0 ? "primary" : _a$variant,
34
- _a$size = _a.size,
35
- size = _a$size === void 0 ? "m" : _a$size,
36
- ref = _a.ref,
37
- props = tslib.__rest(_a, ["className", "startIcon", "endIcon", "label", "hint", "hasError", "required", "onChange", "onFocus", "onBlur", "onKeyDown", "inputRef", "controlAfter", "controlClassName", "controlRef", "disabled", "variant", "size", "ref"]);
38
- var control = /*#__PURE__*/React__default.default.createElement(index.InputRoot, {
15
+ const Input = _a => {
16
+ var _b;
17
+ var {
18
+ className,
19
+ startIcon,
20
+ endIcon,
21
+ label,
22
+ hint,
23
+ hasError,
24
+ required,
25
+ onChange,
26
+ onFocus,
27
+ onBlur,
28
+ onKeyDown,
29
+ inputRef,
30
+ controlAfter,
31
+ controlClassName,
32
+ controlRef,
33
+ disabled,
34
+ variant = "primary",
35
+ size = "m",
36
+ ref,
37
+ id
38
+ } = _a,
39
+ props = tslib.__rest(_a, ["className", "startIcon", "endIcon", "label", "hint", "hasError", "required", "onChange", "onFocus", "onBlur", "onKeyDown", "inputRef", "controlAfter", "controlClassName", "controlRef", "disabled", "variant", "size", "ref", "id"]);
40
+ const generatedId = React.useId();
41
+ const inputId = id !== null && id !== void 0 ? id : generatedId;
42
+ const hintId = hint ? `${inputId}-hint` : undefined;
43
+ const control = /*#__PURE__*/React__default.default.createElement(index.InputRoot, {
39
44
  ref: controlRef !== null && controlRef !== void 0 ? controlRef : ref,
40
45
  startIcon: startIcon,
41
46
  endIcon: endIcon,
@@ -45,17 +50,25 @@ var Input = function Input(_a) {
45
50
  hasError: hasError
46
51
  }, /*#__PURE__*/React__default.default.createElement(index$1.BaseInput, Object.assign({
47
52
  ref: inputRef,
53
+ disabled: disabled,
48
54
  onChange: onChange,
49
55
  onFocus: onFocus,
50
56
  onBlur: onBlur,
51
57
  onKeyDown: onKeyDown,
52
58
  type: "text"
53
- }, props)));
59
+ }, props, {
60
+ id: inputId,
61
+ required: required,
62
+ "aria-invalid": (_b = props["aria-invalid"]) !== null && _b !== void 0 ? _b : hasError || undefined,
63
+ "aria-describedby": clsx__default.default(props["aria-describedby"], hintId) || undefined
64
+ })));
54
65
  return /*#__PURE__*/React__default.default.createElement(index$2.FormField, {
55
66
  className: clsx__default.default(className),
56
67
  label: label,
68
+ htmlFor: inputId,
57
69
  required: required,
58
70
  hint: hint,
71
+ hintId: hintId,
59
72
  hasError: hasError
60
73
  }, controlAfter || controlClassName || controlRef ? (/*#__PURE__*/React__default.default.createElement("div", {
61
74
  className: controlClassName
@@ -1,7 +1,7 @@
1
1
  import type { ChangeEvent, ForwardedRef, InputHTMLAttributes, ReactNode, FocusEvent, KeyboardEvent, FormEvent, Ref } from "react";
2
2
  import type { FormFieldProps } from "../base/FormField/index.props";
3
3
  import type { Size, Variant } from "../base/InputRoot/index.props";
4
- export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "size">, Omit<FormFieldProps, "children"> {
4
+ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "size">, Omit<FormFieldProps, "children" | "htmlFor" | "hintId"> {
5
5
  controlAfter?: ReactNode;
6
6
  controlClassName?: string;
7
7
  controlRef?: Ref<HTMLDivElement>;
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
3
  var tslib = require('tslib');
5
4
  var React = require('react');
6
5
  var clsx = require('clsx');
@@ -9,34 +8,36 @@ var styles = require('./InputRadio.module.css');
9
8
 
10
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
10
 
12
- var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
13
11
  var React__default = /*#__PURE__*/_interopDefault(React);
14
12
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
15
13
  var styles__default = /*#__PURE__*/_interopDefault(styles);
16
14
 
17
- var InputRadio = /*#__PURE__*/React.memo(function (_a) {
18
- var checked = _a.checked,
19
- children = _a.children,
20
- className = _a.className,
21
- containerClassName = _a.containerClassName,
22
- disabled = _a.disabled,
23
- error = _a.error,
24
- id = _a.id,
25
- name = _a.name,
26
- note = _a.note,
27
- onBlur = _a.onBlur,
28
- onFocus = _a.onFocus,
29
- onChange = _a.onChange,
30
- onClick = _a.onClick,
31
- onMouseEnter = _a.onMouseEnter,
32
- style = _a.style,
33
- text = _a.text,
34
- value = _a.value,
35
- testid = _a.testid,
15
+ const InputRadio = /*#__PURE__*/React.memo(_a => {
16
+ var {
17
+ checked,
18
+ children,
19
+ className,
20
+ containerClassName,
21
+ disabled,
22
+ error,
23
+ id,
24
+ name,
25
+ note,
26
+ onBlur,
27
+ onFocus,
28
+ onChange,
29
+ onClick,
30
+ onMouseEnter,
31
+ style,
32
+ text,
33
+ value,
34
+ testid
35
+ } = _a,
36
36
  rest = tslib.__rest(_a, ["checked", "children", "className", "containerClassName", "disabled", "error", "id", "name", "note", "onBlur", "onFocus", "onChange", "onClick", "onMouseEnter", "style", "text", "value", "testid"]);
37
37
  return (
38
38
  /*#__PURE__*/
39
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events
39
+ // Keyboard activation of the nested radio dispatches a click that bubbles to the label.
40
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
40
41
  React__default.default.createElement("label", {
41
42
  className: clsx__default.default(styles__default.default.label, className),
42
43
  htmlFor: id,
@@ -45,13 +46,20 @@ var InputRadio = /*#__PURE__*/React.memo(function (_a) {
45
46
  onMouseEnter: onMouseEnter,
46
47
  "data-testid": testid
47
48
  }, /*#__PURE__*/React__default.default.createElement("div", {
48
- className: clsx__default.default(styles__default.default.container, _defineProperty__default.default(_defineProperty__default.default({}, styles__default.default["container_disabled"], Boolean(disabled)), styles__default.default["container_error"], Boolean(error)), containerClassName)
49
+ className: clsx__default.default(styles__default.default.container, {
50
+ [styles__default.default["container_disabled"]]: Boolean(disabled),
51
+ [styles__default.default["container_error"]]: Boolean(error)
52
+ }, containerClassName)
49
53
  }, /*#__PURE__*/React__default.default.createElement("input", Object.assign({
50
54
  type: "radio",
51
55
  id: id,
52
56
  value: value,
53
57
  name: name,
54
- className: clsx__default.default(styles__default.default.input, _defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default({}, styles__default.default["input_error"], Boolean(error)), styles__default.default["input_checked"], Boolean(checked)), styles__default.default["input_disabled"], Boolean(disabled))),
58
+ className: clsx__default.default(styles__default.default.input, {
59
+ [styles__default.default["input_error"]]: Boolean(error),
60
+ [styles__default.default["input_checked"]]: Boolean(checked),
61
+ [styles__default.default["input_disabled"]]: Boolean(disabled)
62
+ }),
55
63
  checked: checked,
56
64
  disabled: disabled,
57
65
  onChange: onChange,
package/List/List.js CHANGED
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
3
  var tslib = require('tslib');
5
4
  var React = require('react');
6
5
  var clsx = require('clsx');
@@ -8,116 +7,121 @@ var styles = require('./List.module.css');
8
7
 
9
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
9
 
11
- var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
12
10
  var React__default = /*#__PURE__*/_interopDefault(React);
13
11
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
14
12
  var styles__default = /*#__PURE__*/_interopDefault(styles);
15
13
 
16
- var ListContext = /*#__PURE__*/React.createContext({
14
+ const ListContext = /*#__PURE__*/React.createContext({
17
15
  disabled: false,
18
16
  dividers: false,
19
17
  surface: "none"
20
18
  });
21
- var ItemContent = function ItemContent(_ref) {
22
- var children = _ref.children,
23
- description = _ref.description,
24
- contentLeft = _ref.contentLeft,
25
- contentRight = _ref.contentRight;
26
- return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, contentLeft != null && /*#__PURE__*/React__default.default.createElement("span", {
27
- className: styles__default.default.left
28
- }, contentLeft), /*#__PURE__*/React__default.default.createElement("span", {
29
- className: styles__default.default.content
30
- }, /*#__PURE__*/React__default.default.createElement("span", {
31
- className: styles__default.default.title
32
- }, children), description != null && (/*#__PURE__*/React__default.default.createElement("span", {
33
- className: styles__default.default.description
34
- }, description))), contentRight != null && (/*#__PURE__*/React__default.default.createElement("span", {
35
- className: styles__default.default.right
36
- }, contentRight)));
37
- };
38
- var List = /*#__PURE__*/React.forwardRef(function (_a, ref) {
39
- var _a$size = _a.size,
40
- size = _a$size === void 0 ? "m" : _a$size,
41
- _a$density = _a.density,
42
- density = _a$density === void 0 ? "normal" : _a$density,
43
- _a$surface = _a.surface,
44
- surface = _a$surface === void 0 ? "none" : _a$surface,
45
- _a$dividers = _a.dividers,
46
- dividers = _a$dividers === void 0 ? false : _a$dividers,
47
- _a$disabled = _a.disabled,
48
- disabled = _a$disabled === void 0 ? false : _a$disabled,
49
- ariaLabel = _a.ariaLabel,
50
- className = _a.className,
51
- children = _a.children,
19
+ const ItemContent = ({
20
+ children,
21
+ description,
22
+ contentLeft,
23
+ contentRight
24
+ }) => (/*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, contentLeft != null && /*#__PURE__*/React__default.default.createElement("span", {
25
+ className: styles__default.default.left
26
+ }, contentLeft), /*#__PURE__*/React__default.default.createElement("span", {
27
+ className: styles__default.default.content
28
+ }, /*#__PURE__*/React__default.default.createElement("span", {
29
+ className: styles__default.default.title
30
+ }, children), description != null && (/*#__PURE__*/React__default.default.createElement("span", {
31
+ className: styles__default.default.description
32
+ }, description))), contentRight != null && (/*#__PURE__*/React__default.default.createElement("span", {
33
+ className: styles__default.default.right
34
+ }, contentRight))));
35
+ const List = /*#__PURE__*/React.forwardRef((_a, ref) => {
36
+ var {
37
+ size = "m",
38
+ density = "normal",
39
+ surface = "none",
40
+ dividers = false,
41
+ disabled = false,
42
+ ariaLabel,
43
+ className,
44
+ children
45
+ } = _a,
52
46
  rest = tslib.__rest(_a, ["size", "density", "surface", "dividers", "disabled", "ariaLabel", "className", "children"]);
53
- var context = React.useMemo(function () {
54
- return {
55
- disabled: disabled,
56
- dividers: dividers,
57
- surface: surface
58
- };
59
- }, [disabled, dividers, surface]);
47
+ const context = React.useMemo(() => ({
48
+ disabled,
49
+ dividers,
50
+ surface
51
+ }), [disabled, dividers, surface]);
60
52
  return /*#__PURE__*/React__default.default.createElement(ListContext.Provider, {
61
53
  value: context
62
54
  }, /*#__PURE__*/React__default.default.createElement("ul", Object.assign({}, rest, {
63
55
  ref: ref,
64
56
  "aria-label": ariaLabel,
65
- "aria-disabled": disabled || undefined,
66
- className: clsx__default.default(styles__default.default.list, styles__default.default["size_".concat(size)], styles__default.default["density_".concat(density)], styles__default.default["surface_".concat(surface)], _defineProperty__default.default(_defineProperty__default.default({}, styles__default.default.dividers, dividers), styles__default.default["list_disabled"], disabled), className)
57
+ className: clsx__default.default(styles__default.default.list, styles__default.default[`size_${size}`], styles__default.default[`density_${density}`], styles__default.default[`surface_${surface}`], {
58
+ [styles__default.default.dividers]: dividers,
59
+ [styles__default.default["list_disabled"]]: disabled
60
+ }, className)
67
61
  }), children));
68
62
  });
69
63
  List.displayName = "List";
70
- var ListItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
64
+ const ListItem = /*#__PURE__*/React.forwardRef((props, ref) => {
71
65
  var _a;
72
- var _useContext = React.useContext(ListContext),
73
- listDisabled = _useContext.disabled,
74
- dividers = _useContext.dividers,
75
- surface = _useContext.surface;
76
- var children = props.children,
77
- description = props.description,
78
- contentLeft = props.contentLeft,
79
- contentRight = props.contentRight,
80
- _props$disabled = props.disabled,
81
- disabled = _props$disabled === void 0 ? false : _props$disabled,
82
- _props$selected = props.selected,
83
- selected = _props$selected === void 0 ? false : _props$selected,
84
- className = props.className,
66
+ const {
67
+ disabled: listDisabled,
68
+ dividers,
69
+ surface
70
+ } = React.useContext(ListContext);
71
+ const {
72
+ children,
73
+ description,
74
+ contentLeft,
75
+ contentRight,
76
+ disabled = false,
77
+ selected = false,
78
+ className
79
+ } = props,
85
80
  interactiveProps = tslib.__rest(props, ["children", "description", "contentLeft", "contentRight", "disabled", "selected", "className"]);
86
- var isDisabled = listDisabled || disabled;
87
- var itemClassName = clsx__default.default(styles__default.default.item, _defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default({}, styles__default.default["item_surface"], surface === "items"), styles__default.default["item_divider"], dividers), styles__default.default.selected, selected), styles__default.default["item_disabled"], isDisabled), className);
88
- var content = /*#__PURE__*/React__default.default.createElement(ItemContent, {
81
+ const isDisabled = listDisabled || disabled;
82
+ const itemClassName = clsx__default.default(styles__default.default.item, {
83
+ [styles__default.default["item_surface"]]: surface === "items",
84
+ [styles__default.default["item_divider"]]: dividers,
85
+ [styles__default.default.selected]: selected,
86
+ [styles__default.default["item_disabled"]]: isDisabled
87
+ }, className);
88
+ const content = /*#__PURE__*/React__default.default.createElement(ItemContent, {
89
89
  contentLeft: contentLeft,
90
90
  contentRight: contentRight,
91
91
  description: description
92
92
  }, children);
93
93
  if ("href" in interactiveProps && interactiveProps.href) {
94
- var _b = interactiveProps,
95
- href = _b.href,
96
- onAction = _b.onAction,
97
- _onClick = _b.onClick,
94
+ const _b = interactiveProps,
95
+ {
96
+ href,
97
+ onAction,
98
+ onClick
99
+ } = _b,
98
100
  anchorProps = tslib.__rest(_b, ["href", "onAction", "onClick"]);
99
101
  return /*#__PURE__*/React__default.default.createElement("li", {
100
102
  ref: ref,
101
- className: itemClassName,
102
- "aria-disabled": isDisabled || undefined
103
+ className: itemClassName
103
104
  }, /*#__PURE__*/React__default.default.createElement("a", Object.assign({}, anchorProps, {
104
105
  href: isDisabled ? undefined : href,
105
106
  tabIndex: isDisabled ? -1 : anchorProps.tabIndex,
107
+ "aria-disabled": isDisabled || undefined,
106
108
  "aria-current": selected ? "page" : undefined,
107
109
  className: styles__default.default.action,
108
- onClick: function onClick(event) {
110
+ onClick: event => {
109
111
  if (isDisabled) {
110
112
  event.preventDefault();
111
113
  return;
112
114
  }
113
- _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
115
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
114
116
  if (!event.defaultPrevented) onAction === null || onAction === void 0 ? void 0 : onAction();
115
117
  }
116
118
  }), content));
117
119
  }
118
120
  if ("onAction" in interactiveProps && interactiveProps.onAction) {
119
- var _c = interactiveProps,
120
- _onAction = _c.onAction,
121
+ const _c = interactiveProps,
122
+ {
123
+ onAction
124
+ } = _c,
121
125
  buttonProps = tslib.__rest(_c, ["onAction"]);
122
126
  return /*#__PURE__*/React__default.default.createElement("li", {
123
127
  ref: ref,
@@ -127,23 +131,24 @@ var ListItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
127
131
  disabled: isDisabled,
128
132
  "aria-pressed": selected || undefined,
129
133
  className: styles__default.default.action,
130
- onClick: _onAction
134
+ onClick: onAction
131
135
  }), content));
132
136
  }
133
137
  return /*#__PURE__*/React__default.default.createElement("li", Object.assign({}, interactiveProps, {
134
138
  ref: ref,
135
139
  className: itemClassName,
136
- "aria-disabled": isDisabled || undefined,
137
140
  "aria-current": selected || undefined
138
141
  }), /*#__PURE__*/React__default.default.createElement("div", {
139
142
  className: styles__default.default["static-content"]
140
143
  }, content));
141
144
  });
142
145
  ListItem.displayName = "ListItem";
143
- var ListSection = /*#__PURE__*/React.forwardRef(function (_a, ref) {
144
- var title = _a.title,
145
- children = _a.children,
146
- className = _a.className,
146
+ const ListSection = /*#__PURE__*/React.forwardRef((_a, ref) => {
147
+ var {
148
+ title,
149
+ children,
150
+ className
151
+ } = _a,
147
152
  rest = tslib.__rest(_a, ["title", "children", "className"]);
148
153
  return /*#__PURE__*/React__default.default.createElement("li", Object.assign({}, rest, {
149
154
  ref: ref,