@kaizen/components 1.64.7 → 1.64.8

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.
@@ -2,10 +2,8 @@
2
2
 
3
3
  var tslib = require('tslib');
4
4
  var React = require('react');
5
- var focus = require('@react-aria/focus');
6
- var listbox = require('@react-aria/listbox');
7
- var utils = require('@react-aria/utils');
8
5
  var classnames = require('classnames');
6
+ var reactAria = require('react-aria');
9
7
  require('../../../../Icon/subcomponents/SVG/SVG.cjs');
10
8
  var CheckIcon = require('../../../../Icon/CheckIcon.cjs');
11
9
  var SelectContext = require('../../context/SelectContext.cjs');
@@ -23,16 +21,30 @@ var Option = function (_a) {
23
21
  props = tslib.__rest(_a, ["item", "classNameOverride"]);
24
22
  var state = SelectContext.useSelectContext().state;
25
23
  var ref = React__default.default.useRef(null);
26
- var _b = listbox.useOption({
24
+ var _b = reactAria.useOption({
27
25
  key: item.key
28
26
  }, state, ref),
29
27
  optionProps = _b.optionProps,
30
28
  isSelected = _b.isSelected,
31
29
  isDisabled = _b.isDisabled;
32
- var _c = focus.useFocusRing(),
30
+ var onPointerUp = optionProps.onPointerUp,
31
+ restOptionProps = tslib.__rest(optionProps, ["onPointerUp"]);
32
+ var _c = reactAria.useFocusRing(),
33
33
  isFocusVisible = _c.isFocusVisible,
34
34
  focusProps = _c.focusProps;
35
- return React__default.default.createElement("li", tslib.__assign({}, utils.mergeProps(optionProps, focusProps, props), {
35
+ return React__default.default.createElement("li", tslib.__assign({}, reactAria.mergeProps(restOptionProps, focusProps, props, {
36
+ onPointerUp: function (e) {
37
+ if (e.pointerType === "touch") {
38
+ // On touch devices, the listbox closes too quickly so below elements will trigger their pointer events.
39
+ // Slow it down a bit to prevent the appearance of propagation.
40
+ setTimeout(function () {
41
+ return state.setSelectedKey(item.key);
42
+ }, 250);
43
+ } else {
44
+ onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp(e);
45
+ }
46
+ }
47
+ }), {
36
48
  ref: ref,
37
49
  className: classnames__default.default(Option_module.option, isSelected && Option_module.isSelected, isFocusVisible && Option_module.isFocusVisible, isDisabled && Option_module.disabled, classNameOverride),
38
50
  "aria-label": item.textValue
@@ -1,9 +1,7 @@
1
1
  import { __rest, __assign } from 'tslib';
2
2
  import React from 'react';
3
- import { useFocusRing } from '@react-aria/focus';
4
- import { useOption } from '@react-aria/listbox';
5
- import { mergeProps } from '@react-aria/utils';
6
3
  import classnames from 'classnames';
4
+ import { useOption, useFocusRing, mergeProps } from 'react-aria';
7
5
  import '../../../../Icon/subcomponents/SVG/SVG.mjs';
8
6
  import { CheckIcon } from '../../../../Icon/CheckIcon.mjs';
9
7
  import { useSelectContext } from '../../context/SelectContext.mjs';
@@ -21,10 +19,24 @@ const Option = /*#__PURE__*/function () {
21
19
  optionProps = _b.optionProps,
22
20
  isSelected = _b.isSelected,
23
21
  isDisabled = _b.isDisabled;
22
+ var onPointerUp = optionProps.onPointerUp,
23
+ restOptionProps = __rest(optionProps, ["onPointerUp"]);
24
24
  var _c = useFocusRing(),
25
25
  isFocusVisible = _c.isFocusVisible,
26
26
  focusProps = _c.focusProps;
27
- return /*#__PURE__*/React.createElement("li", __assign({}, mergeProps(optionProps, focusProps, props), {
27
+ return /*#__PURE__*/React.createElement("li", __assign({}, mergeProps(restOptionProps, focusProps, props, {
28
+ onPointerUp: function (e) {
29
+ if (e.pointerType === "touch") {
30
+ // On touch devices, the listbox closes too quickly so below elements will trigger their pointer events.
31
+ // Slow it down a bit to prevent the appearance of propagation.
32
+ setTimeout(function () {
33
+ return state.setSelectedKey(item.key);
34
+ }, 250);
35
+ } else {
36
+ onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp(e);
37
+ }
38
+ }
39
+ }), {
28
40
  ref: ref,
29
41
  className: classnames(styles.option, isSelected && styles.isSelected, isFocusVisible && styles.isFocusVisible, isDisabled && styles.disabled, classNameOverride),
30
42
  "aria-label": item.textValue
package/dist/styles.css CHANGED
@@ -1,37 +1,117 @@
1
1
  @layer tokens, normalize, reset;@layer tokens{:root{--theme-key:heart;--animation-easing-function-ease-in-out:cubic-bezier(0.455,0.03,0.515,0.955);--animation-easing-function-ease-in:cubic-bezier(0.55,0.085,0.68,0.53);--animation-easing-function-ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--animation-easing-function-linear:linear;--animation-easing-function-bounce-in:cubic-bezier(0.485,0.155,0.24,1.245);--animation-easing-function-bounce-out:cubic-bezier(0.485,0.155,0.515,0.845);--animation-easing-function-bounce-in-out:cubic-bezier(0.76,-0.245,0.24,1.245);--animation-duration-instant:0ms;--animation-duration-immediate:100ms;--animation-duration-rapid:200ms;--animation-duration-fast:300ms;--animation-duration-slow:400ms;--animation-duration-deliberate:700ms;--border-solid-border-width:2px;--border-solid-border-radius:7px;--border-solid-border-style:solid;--border-solid-border-color:#e1e2ea;--border-solid-border-color-rgb:225,226,234;--border-dashed-border-width:2px;--border-dashed-border-radius:7px;--border-dashed-border-style:dashed;--border-borderless-border-width:2px;--border-borderless-border-radius:7px;--border-borderless-border-style:solid;--border-borderless-border-color:transparent;--border-borderless-border-color-rgb:0,0,0;--border-focus-ring-border-width:2px;--border-focus-ring-border-radius:10px;--border-focus-ring-border-style:solid;--border-width-1:1px;--color-purple-100:#f4edf8;--color-purple-100-rgb:244,237,248;--color-purple-200:#dfc9ea;--color-purple-200-rgb:223,201,234;--color-purple-300:#c9a5dd;--color-purple-300-rgb:201,165,221;--color-purple-400:#ae67b1;--color-purple-400-rgb:174,103,177;--color-purple-500:#844587;--color-purple-500-rgb:132,69,135;--color-purple-600:#5f3361;--color-purple-600-rgb:95,51,97;--color-purple-700:#4a234d;--color-purple-700-rgb:74,35,77;--color-purple-800:#2f2438;--color-purple-800-rgb:47,36,56;--color-blue-100:#e6f6ff;--color-blue-100-rgb:230,246,255;--color-blue-200:#bde2f5;--color-blue-200-rgb:189,226,245;--color-blue-300:#73c0e8;--color-blue-300-rgb:115,192,232;--color-blue-400:#008bd6;--color-blue-400-rgb:0,139,214;--color-blue-500:#0168b3;--color-blue-500-rgb:1,104,179;--color-blue-600:#004970;--color-blue-600-rgb:0,73,112;--color-blue-700:#003157;--color-blue-700-rgb:0,49,87;--color-green-100:#e8f8f4;--color-green-100-rgb:232,248,244;--color-green-200:#c4ede2;--color-green-200-rgb:196,237,226;--color-green-300:#8fdbc7;--color-green-300-rgb:143,219,199;--color-green-400:#5dcaad;--color-green-400-rgb:93,202,173;--color-green-500:#3f9a86;--color-green-500-rgb:63,154,134;--color-green-600:#2c7d67;--color-green-600-rgb:44,125,103;--color-green-700:#22594a;--color-green-700-rgb:34,89,74;--color-yellow-100:#fff9e4;--color-yellow-100-rgb:255,249,228;--color-yellow-200:#ffeeb3;--color-yellow-200-rgb:255,238,179;--color-yellow-300:#ffe36e;--color-yellow-300-rgb:255,227,110;--color-yellow-400:#ffca4d;--color-yellow-400-rgb:255,202,77;--color-yellow-500:#ffb600;--color-yellow-500-rgb:255,182,0;--color-yellow-600:#c68600;--color-yellow-600-rgb:198,134,0;--color-yellow-700:#876400;--color-yellow-700-rgb:135,100,0;--color-red-100:#fdeaee;--color-red-100-rgb:253,234,238;--color-red-200:#f9c2cb;--color-red-200-rgb:249,194,203;--color-red-300:#f597a8;--color-red-300-rgb:245,151,168;--color-red-400:#e0707d;--color-red-400-rgb:224,112,125;--color-red-500:#c93b55;--color-red-500-rgb:201,59,85;--color-red-600:#a82433;--color-red-600-rgb:168,36,51;--color-red-700:#6c1e20;--color-red-700-rgb:108,30,32;--color-orange-100:#fff0e8;--color-orange-100-rgb:255,240,232;--color-orange-200:#ffd1b9;--color-orange-200-rgb:255,209,185;--color-orange-300:#ffb08a;--color-orange-300-rgb:255,176,138;--color-orange-400:#ff9461;--color-orange-400-rgb:255,148,97;--color-orange-500:#e96c2f;--color-orange-500-rgb:233,108,47;--color-orange-600:#b74302;--color-orange-600-rgb:183,67,2;--color-orange-700:#903c00;--color-orange-700-rgb:144,60,0;--color-gray-100:#f9f9f9;--color-gray-100-rgb:249,249,249;--color-gray-200:#f4f4f5;--color-gray-200-rgb:244,244,245;--color-gray-300:#eaeaec;--color-gray-300-rgb:234,234,236;--color-gray-400:#cdcdd0;--color-gray-400-rgb:205,205,208;--color-gray-500:#878792;--color-gray-500-rgb:135,135,146;--color-gray-600:#524e56;--color-gray-600-rgb:82,78,86;--color-white:#fff;--color-white-rgb:255,255,255;--color-black:#000;--color-black-rgb:0,0,0;--data-viz-favorable:#7dd5bd;--data-viz-favorable-rgb:125,213,189;--data-viz-unfavorable:#e68d97;--data-viz-unfavorable-rgb:230,141,151;--layout-content-max-width:1392px;--layout-content-max-width-with-sidebar:1080px;--layout-content-side-margin:72px;--layout-mobile-actions-drawer-height:60px;--layout-navigation-bar-height:72px;--layout-breakpoints-medium:768px;--layout-breakpoints-large:1080px;--shadow-small-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 3px 16px 0 rgba(0,0,0,.06);--shadow-large-box-shadow:0 3px 9px 0 rgba(0,0,0,.1),0 8px 40px 0 rgba(0,0,0,.08);--spacing-0:0;--spacing-1:.0625rem;--spacing-2:.125rem;--spacing-4:.25rem;--spacing-6:.375rem;--spacing-8:.5rem;--spacing-12:.75rem;--spacing-16:1rem;--spacing-20:1.25rem;--spacing-24:1.5rem;--spacing-32:2rem;--spacing-40:2.5rem;--spacing-48:3rem;--spacing-56:3.5rem;--spacing-64:4rem;--spacing-72:4.5rem;--spacing-80:5rem;--spacing-96:6rem;--spacing-112:7rem;--spacing-128:8rem;--spacing-160:10rem;--spacing-200:12.5rem;--spacing-240:15rem;--spacing-280:17.5rem;--spacing-320:20rem;--spacing-xs:0.375rem;--spacing-sm:0.75rem;--spacing-md:1.5rem;--spacing-lg:2.25rem;--spacing-xl:3rem;--spacing-xxl:3.75rem;--spacing-xxxl:4.5rem;--spacing-xxxxl:5.25rem;--spacing-xxxxxl:6rem;--typography-data-large-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-font-weight:700;--typography-data-large-font-size:5.25rem;--typography-data-large-line-height:5.25rem;--typography-data-large-letter-spacing:normal;--typography-data-large-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-units-font-weight:700;--typography-data-large-units-font-size:2.625rem;--typography-data-large-units-line-height:5.25rem;--typography-data-large-units-letter-spacing:normal;--typography-data-medium-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-font-weight:700;--typography-data-medium-font-size:3rem;--typography-data-medium-line-height:5rem;--typography-data-medium-letter-spacing:normal;--typography-data-medium-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-units-font-weight:700;--typography-data-medium-units-font-size:1.5rem;--typography-data-medium-units-line-height:5rem;--typography-data-medium-units-letter-spacing:normal;--typography-data-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-font-weight:700;--typography-data-small-font-size:1.5rem;--typography-data-small-line-height:1.5rem;--typography-data-small-letter-spacing:normal;--typography-data-small-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-units-font-weight:700;--typography-data-small-units-font-size:1.125rem;--typography-data-small-units-line-height:1.5rem;--typography-data-small-units-letter-spacing:normal;--typography-display-0-font-family:"Tiempos Headline",Georgia,serif;--typography-display-0-font-weight:800;--typography-display-0-font-size:4.5rem;--typography-display-0-line-height:5.25rem;--typography-display-0-letter-spacing:0em;--typography-heading-1-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-1-font-weight:700;--typography-heading-1-font-size:2.125rem;--typography-heading-1-line-height:2.625rem;--typography-heading-1-letter-spacing:normal;--typography-heading-2-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-2-font-weight:700;--typography-heading-2-font-size:1.75rem;--typography-heading-2-line-height:2.25rem;--typography-heading-2-letter-spacing:normal;--typography-heading-3-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-3-font-weight:700;--typography-heading-3-font-size:1.375rem;--typography-heading-3-line-height:1.875rem;--typography-heading-3-letter-spacing:normal;--typography-heading-4-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-4-font-weight:600;--typography-heading-4-font-size:1.125rem;--typography-heading-4-line-height:1.5rem;--typography-heading-4-letter-spacing:normal;--typography-heading-5-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-5-font-weight:600;--typography-heading-5-font-size:1rem;--typography-heading-5-line-height:1.5rem;--typography-heading-5-letter-spacing:normal;--typography-heading-6-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-6-font-weight:700;--typography-heading-6-font-size:0.875rem;--typography-heading-6-line-height:1.5rem;--typography-heading-6-letter-spacing:normal;--typography-paragraph-intro-lede-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-intro-lede-font-weight:400;--typography-paragraph-intro-lede-font-size:1.25rem;--typography-paragraph-intro-lede-line-height:1.875rem;--typography-paragraph-intro-lede-letter-spacing:0;--typography-paragraph-intro-lede-max-width:975px;--typography-paragraph-body-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-body-font-weight:400;--typography-paragraph-body-font-size:1rem;--typography-paragraph-body-line-height:1.5rem;--typography-paragraph-body-letter-spacing:normal;--typography-paragraph-body-max-width:780px;--typography-paragraph-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-small-font-weight:400;--typography-paragraph-small-font-size:0.875rem;--typography-paragraph-small-line-height:1.125rem;--typography-paragraph-small-letter-spacing:normal;--typography-paragraph-small-max-width:680px;--typography-paragraph-extra-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-extra-small-font-weight:400;--typography-paragraph-extra-small-font-size:0.75rem;--typography-paragraph-extra-small-line-height:1.125rem;--typography-paragraph-extra-small-letter-spacing:normal;--typography-paragraph-extra-small-max-width:600px;--typography-paragraph-bold-font-weight:600;--typography-button-primary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-primary-font-weight:700;--typography-button-primary-font-size:1.125rem;--typography-button-primary-line-height:1.5rem;--typography-button-primary-letter-spacing:normal;--typography-button-secondary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-secondary-font-weight:500;--typography-button-secondary-font-size:1rem;--typography-button-secondary-line-height:1.5rem;--typography-button-secondary-letter-spacing:normal}}@layer normalize{html{text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}}@layer reset{@font-face{font-family:Tiempos Headline;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff)}@font-face{font-family:Tiempos Headline;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff)}@font-face{font-family:Greycliff CF;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-light.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-regular.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-medium.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-demi-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-extra-bold.woff) format("woff")}@font-face{font-family:Inter;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff)}@font-face{font-family:Inter;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff)}@font-face{font-family:Inter;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff)}@font-face{font-family:Inter;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff)}@font-face{font-family:Inter;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff)}@font-face{font-family:Inter;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff)}@font-face{font-family:IBM Plex Mono;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff)}}@layer reset{*,:after,:before{border-color:var(--border-solid-border-color,"currentColor");border-style:solid;border-width:0}}
2
- .MenuItem-module_item__DPerF {
3
- font-family: var(--typography-paragraph-body-font-family);
4
- font-size: var(--typography-paragraph-body-font-size);
5
- letter-spacing: var(--typography-paragraph-body-letter-spacing);
6
- font-weight: var(--typography-paragraph-body-font-weight);
7
- line-height: var(--typography-paragraph-body-line-height);
8
- color: rgba(var(--color-purple-800-rgb), 0.7);
9
- padding: var(--spacing-6) var(--spacing-8);
10
- border: var(--border-focus-ring-border-width) var(--border-focus-ring-border-style) transparent;
11
- border-radius: 4px;
2
+ /** THIS IS AN AUTOGENERATED FILE **/
3
+ /** THIS IS AN AUTOGENERATED FILE **/
4
+ .OverlayArrow-module_overlayArrow__hoDyK {
12
5
  display: flex;
13
- gap: 0 var(--spacing-8);
14
- align-items: center;
15
- margin-inline: var(--spacing-6);
16
- text-decoration: none;
17
- cursor: pointer;
6
+ padding: 8px;
18
7
  }
19
-
20
- .MenuItem-module_iconWrapper__bRdQN {
21
- flex-shrink: 0;
22
- display: flex;
23
- align-items: center;
8
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=top], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] {
9
+ padding: 0 8px;
10
+ }
11
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] {
12
+ padding: 8px 0;
13
+ }
14
+ .OverlayArrow-module_overlayArrow__hoDyK path {
15
+ fill: var(--color-purple-800, #2f2438);
16
+ box-shadow: var(--shadow-small-box-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 3px 16px 0 rgba(0, 0, 0, 0.06));
17
+ }
18
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] svg {
19
+ transform: rotate(90deg);
20
+ }
21
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] svg {
22
+ transform: rotate(180deg);
23
+ }
24
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left] svg {
25
+ transform: rotate(270deg);
26
+ }
27
+ .OverlayArrow-module_overlayArrow__hoDyK.OverlayArrow-module_reversed__-WGcR path {
28
+ fill: var(--color-white, #ffffff);
29
+ }
30
+ /** THIS IS AN AUTOGENERATED FILE **/
31
+ /** THIS IS AN AUTOGENERATED FILE **/
32
+ /** THIS IS AN AUTOGENERATED FILE **/
33
+ /** THIS IS AN AUTOGENERATED FILE **/
34
+ /** THIS IS AN AUTOGENERATED FILE **/
35
+ /** THIS IS AN AUTOGENERATED FILE **/
36
+ .Tooltip-module_tooltip__efL1m {
37
+ max-width: 200px;
38
+ padding: var(--spacing-8, 0.5rem) var(--spacing-12, 0.75rem);
39
+ color: var(--color-white, #ffffff);
40
+ text-align: center;
41
+ font-family: var(--typography-paragraph-extra-small-font-family, "Inter", "Noto Sans", Helvetica, Arial, sans-serif);
42
+ font-size: var(--typography-paragraph-extra-small-font-size, 0.75rem);
43
+ font-weight: var(--typography-paragraph-extra-small-font-weight, 400);
44
+ letter-spacing: var(--typography-paragraph-extra-small-letter-spacing, normal);
45
+ line-height: var(--typography-paragraph-extra-small-line-height, 1.125rem);
46
+ border-radius: var(--border-solid-border-radius, 7px);
47
+ box-shadow: var(--shadow-small-box-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 3px 16px 0 rgba(0, 0, 0, 0.06));
48
+ background-color: var(--color-purple-800, #2f2438);
49
+ text-wrap: pretty;
50
+ /* fixes FF gap */
51
+ transform: translate3d(0, 0, 0);
52
+ }
53
+ .Tooltip-module_tooltip__efL1m.Tooltip-module_reversed__NnCbZ {
54
+ background-color: var(--color-white, #ffffff);
55
+ color: var(--color-purple-800, #2f2438);
56
+ }
57
+ .Tooltip-module_tooltip__efL1m[data-placement=top] {
58
+ --origin: translateY(4px);
59
+ }
60
+ .Tooltip-module_tooltip__efL1m[data-placement=bottom] {
61
+ --origin: translateY(-4px);
62
+ }
63
+ .Tooltip-module_tooltip__efL1m[data-placement=right] {
64
+ --origin: translateX(-4px);
65
+ }
66
+ .Tooltip-module_tooltip__efL1m[data-placement=left] {
67
+ --origin: translateX(4px);
68
+ }
69
+ .Tooltip-module_tooltip__efL1m[data-entering] {
70
+ animation: Tooltip-module_slide__lFdGA var(--animation-duration-fast, 300ms);
71
+ }
72
+ .Tooltip-module_tooltip__efL1m[data-exiting] {
73
+ animation: Tooltip-module_slide__lFdGA var(--animation-duration-fast, 300ms) reverse var(--animation-easing-function-ease-in, cubic-bezier(0.55, 0.085, 0.68, 0.53));
24
74
  }
25
75
 
26
- .MenuItem-module_item__DPerF[data-focused] {
27
- background-color: var(--color-blue-100);
28
- color: var(--color-blue-500);
76
+ @keyframes Tooltip-module_slide__lFdGA {
77
+ from {
78
+ transform: var(--origin);
79
+ opacity: 0;
80
+ }
81
+ to {
82
+ transform: translateY(0);
83
+ opacity: 1;
84
+ }
85
+ }
86
+ .Menu-module_menu__iHYqh {
87
+ background-color: var(--color-white);
88
+ color: var(--color-purple-800);
89
+ width: 248px;
90
+ max-height: 22rem;
91
+ overflow: auto;
92
+ padding-block: var(--spacing-6);
29
93
  outline: none;
30
- border-color: var(--color-blue-500);
94
+ border-radius: var(--border-solid-border-radius);
95
+ box-shadow: var(--shadow-large-box-shadow);
31
96
  }
32
97
 
33
- .MenuItem-module_item__DPerF[data-disabled] {
34
- opacity: 0.3;
98
+ .Menu-module_menu__iHYqh .react-aria-Header {
99
+ font-family: var(--typography-heading-6-font-family);
100
+ font-size: var(--typography-heading-6-font-size);
101
+ letter-spacing: var(--typography-heading-6-letter-spacing);
102
+ font-weight: var(--typography-heading-6-font-weight);
103
+ line-height: var(--typography-heading-6-line-height);
104
+ padding: var(--spacing-6) 10px;
105
+ margin-inline: var(--spacing-6);
106
+ }
107
+
108
+ .Menu-module_menu__iHYqh section:not(:last-of-type)::after {
109
+ width: 100%;
110
+ height: 1px;
111
+ background-color: var(--border-solid-border-color);
112
+ content: "";
113
+ display: block;
114
+ margin-block: var(--spacing-6);
35
115
  }
36
116
  .Button-module_button__QOSYH {
37
117
  --button-min-height-width: var(--spacing-48);
@@ -121,122 +201,42 @@
121
201
  --button-icon-size: var(--spacing-16);
122
202
  gap: var(--spacing-8);
123
203
  }
124
- .Menu-module_menu__iHYqh {
125
- background-color: var(--color-white);
126
- color: var(--color-purple-800);
127
- width: 248px;
128
- max-height: 22rem;
129
- overflow: auto;
130
- padding-block: var(--spacing-6);
131
- outline: none;
132
- border-radius: var(--border-solid-border-radius);
133
- box-shadow: var(--shadow-large-box-shadow);
134
- }
135
-
136
- .Menu-module_menu__iHYqh .react-aria-Header {
137
- font-family: var(--typography-heading-6-font-family);
138
- font-size: var(--typography-heading-6-font-size);
139
- letter-spacing: var(--typography-heading-6-letter-spacing);
140
- font-weight: var(--typography-heading-6-font-weight);
141
- line-height: var(--typography-heading-6-line-height);
142
- padding: var(--spacing-6) 10px;
143
- margin-inline: var(--spacing-6);
144
- }
145
-
146
- .Menu-module_menu__iHYqh section:not(:last-of-type)::after {
147
- width: 100%;
148
- height: 1px;
149
- background-color: var(--border-solid-border-color);
150
- content: "";
151
- display: block;
152
- margin-block: var(--spacing-6);
153
- }
154
204
  .Focusable-module_focusableWrapper__NfuIi {
155
205
  display: inline-flex;
156
206
  }
157
- /** THIS IS AN AUTOGENERATED FILE **/
158
- /** THIS IS AN AUTOGENERATED FILE **/
159
- /** THIS IS AN AUTOGENERATED FILE **/
160
- /** THIS IS AN AUTOGENERATED FILE **/
161
- /** THIS IS AN AUTOGENERATED FILE **/
162
- /** THIS IS AN AUTOGENERATED FILE **/
163
- .Tooltip-module_tooltip__efL1m {
164
- max-width: 200px;
165
- padding: var(--spacing-8, 0.5rem) var(--spacing-12, 0.75rem);
166
- color: var(--color-white, #ffffff);
167
- text-align: center;
168
- font-family: var(--typography-paragraph-extra-small-font-family, "Inter", "Noto Sans", Helvetica, Arial, sans-serif);
169
- font-size: var(--typography-paragraph-extra-small-font-size, 0.75rem);
170
- font-weight: var(--typography-paragraph-extra-small-font-weight, 400);
171
- letter-spacing: var(--typography-paragraph-extra-small-letter-spacing, normal);
172
- line-height: var(--typography-paragraph-extra-small-line-height, 1.125rem);
173
- border-radius: var(--border-solid-border-radius, 7px);
174
- box-shadow: var(--shadow-small-box-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 3px 16px 0 rgba(0, 0, 0, 0.06));
175
- background-color: var(--color-purple-800, #2f2438);
176
- text-wrap: pretty;
177
- /* fixes FF gap */
178
- transform: translate3d(0, 0, 0);
179
- }
180
- .Tooltip-module_tooltip__efL1m.Tooltip-module_reversed__NnCbZ {
181
- background-color: var(--color-white, #ffffff);
182
- color: var(--color-purple-800, #2f2438);
183
- }
184
- .Tooltip-module_tooltip__efL1m[data-placement=top] {
185
- --origin: translateY(4px);
186
- }
187
- .Tooltip-module_tooltip__efL1m[data-placement=bottom] {
188
- --origin: translateY(-4px);
189
- }
190
- .Tooltip-module_tooltip__efL1m[data-placement=right] {
191
- --origin: translateX(-4px);
192
- }
193
- .Tooltip-module_tooltip__efL1m[data-placement=left] {
194
- --origin: translateX(4px);
195
- }
196
- .Tooltip-module_tooltip__efL1m[data-entering] {
197
- animation: Tooltip-module_slide__lFdGA var(--animation-duration-fast, 300ms);
198
- }
199
- .Tooltip-module_tooltip__efL1m[data-exiting] {
200
- animation: Tooltip-module_slide__lFdGA var(--animation-duration-fast, 300ms) reverse var(--animation-easing-function-ease-in, cubic-bezier(0.55, 0.085, 0.68, 0.53));
207
+ .MenuItem-module_item__DPerF {
208
+ font-family: var(--typography-paragraph-body-font-family);
209
+ font-size: var(--typography-paragraph-body-font-size);
210
+ letter-spacing: var(--typography-paragraph-body-letter-spacing);
211
+ font-weight: var(--typography-paragraph-body-font-weight);
212
+ line-height: var(--typography-paragraph-body-line-height);
213
+ color: rgba(var(--color-purple-800-rgb), 0.7);
214
+ padding: var(--spacing-6) var(--spacing-8);
215
+ border: var(--border-focus-ring-border-width) var(--border-focus-ring-border-style) transparent;
216
+ border-radius: 4px;
217
+ display: flex;
218
+ gap: 0 var(--spacing-8);
219
+ align-items: center;
220
+ margin-inline: var(--spacing-6);
221
+ text-decoration: none;
222
+ cursor: pointer;
201
223
  }
202
224
 
203
- @keyframes Tooltip-module_slide__lFdGA {
204
- from {
205
- transform: var(--origin);
206
- opacity: 0;
207
- }
208
- to {
209
- transform: translateY(0);
210
- opacity: 1;
211
- }
212
- }
213
- /** THIS IS AN AUTOGENERATED FILE **/
214
- /** THIS IS AN AUTOGENERATED FILE **/
215
- .OverlayArrow-module_overlayArrow__hoDyK {
225
+ .MenuItem-module_iconWrapper__bRdQN {
226
+ flex-shrink: 0;
216
227
  display: flex;
217
- padding: 8px;
218
- }
219
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=top], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] {
220
- padding: 0 8px;
221
- }
222
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] {
223
- padding: 8px 0;
224
- }
225
- .OverlayArrow-module_overlayArrow__hoDyK path {
226
- fill: var(--color-purple-800, #2f2438);
227
- box-shadow: var(--shadow-small-box-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 3px 16px 0 rgba(0, 0, 0, 0.06));
228
- }
229
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] svg {
230
- transform: rotate(90deg);
231
- }
232
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] svg {
233
- transform: rotate(180deg);
228
+ align-items: center;
234
229
  }
235
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left] svg {
236
- transform: rotate(270deg);
230
+
231
+ .MenuItem-module_item__DPerF[data-focused] {
232
+ background-color: var(--color-blue-100);
233
+ color: var(--color-blue-500);
234
+ outline: none;
235
+ border-color: var(--color-blue-500);
237
236
  }
238
- .OverlayArrow-module_overlayArrow__hoDyK.OverlayArrow-module_reversed__-WGcR path {
239
- fill: var(--color-white, #ffffff);
237
+
238
+ .MenuItem-module_item__DPerF[data-disabled] {
239
+ opacity: 0.3;
240
240
  }
241
241
  .SVG-module_icon__8J5Ev {
242
242
  width: 20px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaizen/components",
3
- "version": "1.64.7",
3
+ "version": "1.64.8",
4
4
  "description": "Kaizen component library",
5
5
  "author": "Geoffrey Chong <geoff.chong@cultureamp.com>",
6
6
  "homepage": "https://cultureamp.design",
@@ -120,8 +120,8 @@
120
120
  "svgo": "^3.3.2",
121
121
  "tslib": "^2.7.0",
122
122
  "tsx": "^4.17.0",
123
- "@kaizen/design-tokens": "10.6.2",
124
- "@kaizen/package-bundler": "1.1.6"
123
+ "@kaizen/package-bundler": "1.1.6",
124
+ "@kaizen/design-tokens": "10.6.2"
125
125
  },
126
126
  "peerDependencies": {
127
127
  "@cultureamp/i18n-react-intl": "^2.5.9",
@@ -1,5 +1,6 @@
1
1
  import React from "react"
2
2
  import { Meta, StoryObj } from "@storybook/react"
3
+ import { RadioField, RadioGroup } from "~components/Radio"
3
4
  import { Select } from "../Select"
4
5
  import { SelectOption } from "../types"
5
6
  import {
@@ -26,6 +27,10 @@ const meta = {
26
27
  args: {
27
28
  label: "Label",
28
29
  items: singleMockItems,
30
+ onFocus: undefined,
31
+ onFocusChange: undefined,
32
+ onOpenChange: undefined,
33
+ onSelectionChange: undefined,
29
34
  },
30
35
  parameters: {
31
36
  actions: {
@@ -190,3 +195,45 @@ export const PortalContainer: Story = {
190
195
  },
191
196
  parameters: { docs: { source: { type: "code" } } },
192
197
  }
198
+
199
+ export const TouchDeviceTest: Story = {
200
+ name: "Touch Device Pointer Event (Manual Test)",
201
+ render: args => {
202
+ const [selected, setSelected] = React.useState("radio-1")
203
+ return (
204
+ <div>
205
+ <p>
206
+ On touch devices, the radios below were changing when selecting an
207
+ option sitting above it.
208
+ <br />
209
+ At this time, we could not automate this test, so this story exists
210
+ for manual testing.
211
+ </p>
212
+ <Select {...args} />
213
+ <RadioGroup labelText="Radio group">
214
+ <RadioField
215
+ labelText="Label 1"
216
+ name="radio-group"
217
+ value="radio-value-1"
218
+ onChange={() => setSelected("radio-1")}
219
+ selectedStatus={selected === "radio-1"}
220
+ />
221
+ <RadioField
222
+ labelText="Label 2"
223
+ name="radio-group"
224
+ value="radio-value-2"
225
+ onChange={() => setSelected("radio-2")}
226
+ selectedStatus={selected === "radio-2"}
227
+ />
228
+ <RadioField
229
+ labelText="Label 3"
230
+ name="radio-group"
231
+ value="radio-value-3"
232
+ onChange={() => setSelected("radio-3")}
233
+ selectedStatus={selected === "radio-3"}
234
+ />
235
+ </RadioGroup>
236
+ </div>
237
+ )
238
+ },
239
+ }
@@ -1,8 +1,7 @@
1
1
  import React, { HTMLAttributes } from "react"
2
- import { useFocusRing } from "@react-aria/focus"
3
- import { useOption } from "@react-aria/listbox"
4
- import { mergeProps } from "@react-aria/utils"
2
+ import { FocusableElement } from "@react-types/shared"
5
3
  import classnames from "classnames"
4
+ import { mergeProps, useFocusRing, useOption } from "react-aria"
6
5
  import { CheckIcon } from "~components/Icon"
7
6
  import { OverrideClassName } from "~components/types/OverrideClassName"
8
7
  import { useSelectContext } from "../../context"
@@ -26,11 +25,23 @@ export const Option = <Option extends SelectOption = SelectOption>({
26
25
  ref
27
26
  )
28
27
 
28
+ const { onPointerUp, ...restOptionProps } = optionProps
29
+
29
30
  const { isFocusVisible, focusProps } = useFocusRing()
30
31
 
31
32
  return (
32
33
  <li
33
- {...mergeProps(optionProps, focusProps, props)}
34
+ {...mergeProps(restOptionProps, focusProps, props, {
35
+ onPointerUp: (e: React.PointerEvent<FocusableElement>) => {
36
+ if (e.pointerType === "touch") {
37
+ // On touch devices, the listbox closes too quickly so below elements will trigger their pointer events.
38
+ // Slow it down a bit to prevent the appearance of propagation.
39
+ setTimeout(() => state.setSelectedKey(item.key), 250)
40
+ } else {
41
+ onPointerUp?.(e)
42
+ }
43
+ },
44
+ })}
34
45
  ref={ref}
35
46
  className={classnames(
36
47
  styles.option,