reshaped 3.8.0-canary.6 → 3.8.0-canary.7

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 (55) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.js +10 -10
  4. package/dist/components/DropdownMenu/DropdownMenu.js +4 -4
  5. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +2 -2
  6. package/dist/components/Flyout/utilities/flyout.js +1 -1
  7. package/dist/components/Flyout/utilities/getPositionFallbacks.js +3 -3
  8. package/dist/components/Flyout/utilities/isFullyVisible.d.ts +0 -2
  9. package/dist/components/Flyout/utilities/isFullyVisible.js +5 -7
  10. package/dist/components/Hidden/Hidden.js +2 -1
  11. package/dist/components/MenuItem/MenuItem.module.css +1 -1
  12. package/dist/components/Popover/Popover.js +2 -2
  13. package/dist/components/Popover/Popover.module.css +1 -1
  14. package/dist/components/Popover/Popover.types.d.ts +2 -0
  15. package/dist/components/Reshaped/Reshaped.css +1 -1
  16. package/dist/components/Resizable/Resizable.js +4 -3
  17. package/dist/components/Select/Select.d.ts +8 -1
  18. package/dist/components/Select/Select.js +22 -48
  19. package/dist/components/Select/Select.module.css +1 -1
  20. package/dist/components/Select/Select.types.d.ts +56 -38
  21. package/dist/components/Select/SelectCustom.d.ts +3 -0
  22. package/dist/components/Select/SelectCustom.js +11 -0
  23. package/dist/components/Select/SelectCustomControlled.d.ts +4 -0
  24. package/dist/components/Select/SelectCustomControlled.js +88 -0
  25. package/dist/components/Select/SelectCustomUncontrolled.d.ts +4 -0
  26. package/dist/components/Select/SelectCustomUncontrolled.js +15 -0
  27. package/dist/components/Select/SelectEndContent.d.ts +3 -0
  28. package/dist/components/Select/SelectEndContent.js +12 -0
  29. package/dist/components/Select/SelectNative.d.ts +4 -0
  30. package/dist/components/Select/SelectNative.js +29 -0
  31. package/dist/components/Select/SelectOption.d.ts +4 -0
  32. package/dist/components/Select/SelectOption.js +15 -0
  33. package/dist/components/Select/SelectOptionGroup.d.ts +4 -0
  34. package/dist/components/Select/SelectOptionGroup.js +11 -0
  35. package/dist/components/Select/SelectRoot.d.ts +4 -0
  36. package/dist/components/Select/SelectRoot.js +21 -0
  37. package/dist/components/Select/SelectStartContent.d.ts +3 -0
  38. package/dist/components/Select/SelectStartContent.js +20 -0
  39. package/dist/components/Select/SelectTrigger.d.ts +4 -0
  40. package/dist/components/Select/SelectTrigger.js +16 -0
  41. package/dist/components/Select/tests/Select.stories.d.ts +35 -10
  42. package/dist/components/Select/tests/Select.stories.js +447 -175
  43. package/dist/components/Stepper/Stepper.js +2 -2
  44. package/dist/components/Stepper/Stepper.types.d.ts +2 -0
  45. package/dist/components/Stepper/tests/Stepper.stories.d.ts +1 -0
  46. package/dist/components/Stepper/tests/Stepper.stories.js +23 -0
  47. package/dist/components/Table/Table.js +6 -3
  48. package/dist/components/Timeline/Timeline.js +3 -2
  49. package/dist/components/Timeline/tests/Timeline.stories.js +0 -3
  50. package/dist/components/View/View.js +6 -4
  51. package/dist/utilities/props.d.ts +3 -0
  52. package/dist/utilities/props.js +19 -0
  53. package/package.json +1 -1
  54. package/dist/components/Select/tests/Select.test.stories.d.ts +0 -27
  55. package/dist/components/Select/tests/Select.test.stories.js +0 -132
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import SelectCustomControlled from "./SelectCustomControlled.js";
5
+ const SelectCustomUncontrolled = (props) => {
6
+ const { defaultValue, onChange, ...controlledProps } = props;
7
+ const [value, setValue] = React.useState(defaultValue || "");
8
+ const handleChange = (args) => {
9
+ setValue(args.value);
10
+ onChange?.(args);
11
+ };
12
+ return _jsx(SelectCustomControlled, { ...controlledProps, value: value, onChange: handleChange });
13
+ };
14
+ SelectCustomUncontrolled.displayName = "SelectCustomUncontrolled";
15
+ export default SelectCustomUncontrolled;
@@ -0,0 +1,3 @@
1
+ import type * as T from "./Select.types";
2
+ declare const SelectEndContent: React.FC<Pick<T.Props, "disabled" | "size">>;
3
+ export default SelectEndContent;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Icon from "../Icon/index.js";
3
+ import { responsivePropDependency } from "../../utilities/props.js";
4
+ import IconArrow from "../../icons/ChevronVertical.js";
5
+ import s from "./Select.module.css";
6
+ const SelectEndContent = (props) => {
7
+ const { disabled, size } = props;
8
+ return (_jsx("div", { className: s.arrow, children: _jsx(Icon, { svg: IconArrow, color: disabled ? "disabled" : "neutral-faded", size: responsivePropDependency(size, (size) => {
9
+ return size === "large" || size === "xlarge" ? 5 : 4;
10
+ }) }) }));
11
+ };
12
+ export default SelectEndContent;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type * as T from "./Select.types";
3
+ declare const SelectNative: React.FC<T.NativeProps>;
4
+ export default SelectNative;
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { classNames } from "../../utilities/props.js";
5
+ import SelectStartContent from "./SelectStartContent.js";
6
+ import SelectEndContent from "./SelectEndContent.js";
7
+ import s from "./Select.module.css";
8
+ const SelectNative = (props) => {
9
+ const { startSlot, icon, size, inputAttributes, onFocus, onBlur, disabled, name, value, defaultValue, onChange, onClick, placeholder, id, children, } = props;
10
+ const [empty, setEmpty] = React.useState(value === undefined ? !defaultValue : !value);
11
+ const selectClassNames = classNames(s.input, placeholder && empty && s["input--placeholder"]);
12
+ const handleChange = (event) => {
13
+ const nextValue = event.target.value;
14
+ // Uncontrolled placeholder
15
+ if (value === undefined)
16
+ setEmpty(!nextValue);
17
+ if (!onChange)
18
+ return;
19
+ onChange({ name, value: nextValue, event });
20
+ };
21
+ // Controlled placeholder
22
+ React.useEffect(() => {
23
+ if (value === undefined)
24
+ return;
25
+ setEmpty(!value);
26
+ }, [value]);
27
+ return (_jsxs(_Fragment, { children: [_jsx(SelectStartContent, { startSlot: startSlot, icon: icon, size: size }), _jsxs("select", { ...inputAttributes, onFocus: onFocus || inputAttributes?.onFocus, onBlur: onBlur || inputAttributes?.onBlur, onClick: onClick || inputAttributes?.onClick, className: selectClassNames, disabled: disabled, name: name, value: value, defaultValue: defaultValue, onChange: handleChange, id: id, children: [placeholder && _jsx("option", { value: "", children: placeholder }), children] }), _jsx(SelectEndContent, { disabled: disabled, size: size })] }));
28
+ };
29
+ export default SelectNative;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type * as T from "./Select.types";
3
+ declare const SelectOption: React.FC<T.OptionProps>;
4
+ export default SelectOption;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import DropdownMenu from "../DropdownMenu/index.js";
3
+ import { setComponentChildId } from "../../utilities/props.js";
4
+ import s from "./Select.module.css";
5
+ const SelectOption = (props) => {
6
+ const { value, ...menuItemProps } = props;
7
+ return (_jsx(DropdownMenu.Item, { ...menuItemProps, className: [menuItemProps.className, s.option], color: "neutral", attributes: {
8
+ ...menuItemProps.attributes,
9
+ value,
10
+ role: "option",
11
+ } }));
12
+ };
13
+ SelectOption.displayName = "Select.Option";
14
+ setComponentChildId(SelectOption, "Select.Option");
15
+ export default SelectOption;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type * as T from "./Select.types";
3
+ declare const SelectOptionGroup: React.FC<T.OptionGroupProps>;
4
+ export default SelectOptionGroup;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import View from "../View/index.js";
3
+ import Text from "../Text/index.js";
4
+ import { setComponentChildId } from "../../utilities/props.js";
5
+ const SelectOptionGroup = (props) => {
6
+ const { label, children } = props;
7
+ return (_jsxs(View, { attributes: { role: "group" }, gap: 1, children: [_jsx(View, { paddingInline: 3, paddingTop: 3, children: _jsx(Text, { variant: "caption-1", color: "neutral-faded", children: label }) }), _jsx(View.Item, { children: children })] }));
8
+ };
9
+ SelectOptionGroup.displayName = "Select.OptionGroup";
10
+ setComponentChildId(SelectOptionGroup, "Select.OptionGroup");
11
+ export default SelectOptionGroup;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type * as T from "./Select.types";
3
+ declare const SelectRoot: React.FC<T.RootProps>;
4
+ export default SelectRoot;
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import useElementId from "../../hooks/useElementId.js";
4
+ import { useFormControl } from "../FormControl/index.js";
5
+ import { classNames, responsiveClassNames } from "../../utilities/props.js";
6
+ import s from "./Select.module.css";
7
+ const SelectRoot = (passedProps) => {
8
+ const formControl = useFormControl();
9
+ const internalId = useElementId(passedProps.id);
10
+ const props = {
11
+ ...passedProps,
12
+ id: formControl?.attributes?.id || passedProps.inputAttributes?.id || internalId,
13
+ disabled: formControl?.disabled || passedProps.disabled,
14
+ hasError: formControl?.hasError || passedProps.hasError,
15
+ inputAttributes: { ...passedProps.inputAttributes, ...formControl?.attributes },
16
+ };
17
+ const { children, className, size = "medium", variant = "outline", hasError, disabled, attributes, } = props;
18
+ const rootClassName = classNames(s.root, className, size && responsiveClassNames(s, "--size", size), hasError && s["--status-error"], disabled && s["--disabled"], variant && s[`--variant-${variant}`]);
19
+ return (_jsx("div", { ...attributes, className: rootClassName, children: children(props) }));
20
+ };
21
+ export default SelectRoot;
@@ -0,0 +1,3 @@
1
+ import type * as T from "./Select.types";
2
+ declare const SelectStartContent: React.FC<Pick<T.Props, "startSlot" | "icon" | "size">>;
3
+ export default SelectStartContent;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Icon from "../Icon/index.js";
3
+ import { responsivePropDependency } from "../../utilities/props.js";
4
+ import s from "./Select.module.css";
5
+ const SelectStartContent = (props) => {
6
+ const { startSlot, icon, size } = props;
7
+ if (!startSlot && !icon)
8
+ return null;
9
+ if (icon) {
10
+ return (_jsx("div", { className: s.slot, children: _jsx(Icon, { size: responsivePropDependency(size, (size) => {
11
+ if (size === "large")
12
+ return 5;
13
+ if (size === "xlarge")
14
+ return 6;
15
+ return 4;
16
+ }), svg: icon }) }));
17
+ }
18
+ return _jsx("div", { className: s.slot, children: startSlot });
19
+ };
20
+ export default SelectStartContent;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type * as T from "./Select.types";
3
+ declare const SelectTrigger: React.FC<T.TriggerProps>;
4
+ export default SelectTrigger;
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import Actionable from "../Actionable/index.js";
4
+ import Text from "../Text/index.js";
5
+ import SelectStartContent from "./SelectStartContent.js";
6
+ import s from "./Select.module.css";
7
+ import SelectEndContent from "./SelectEndContent.js";
8
+ const SelectTrigger = (props) => {
9
+ const { children, disabled, onClick, onFocus, onBlur, inputAttributes, startSlot, icon, size, placeholder, value, name, id, } = props;
10
+ return (_jsxs(_Fragment, { children: [_jsxs(Actionable, { className: s.input, disabled: disabled, disableFocusRing: true, onClick: onClick, attributes: {
11
+ onFocus: onFocus || inputAttributes?.onFocus,
12
+ onBlur: onBlur || inputAttributes?.onBlur,
13
+ ...inputAttributes,
14
+ }, children: [_jsx(SelectStartContent, { startSlot: startSlot, icon: icon, size: size }), children ? _jsx(Text, { maxLines: 1, children: children }) : null, placeholder && !children ? _jsx(Text, { color: "disabled", children: placeholder }) : null, _jsx(SelectEndContent, { disabled: disabled, size: size })] }), _jsx("input", { type: "hidden", value: value, name: name, id: id })] }));
15
+ };
16
+ export default SelectTrigger;
@@ -1,6 +1,13 @@
1
+ import React from "react";
2
+ import { Mock } from "storybook/test";
3
+ import { StoryObj } from "@storybook/react-vite";
1
4
  declare const _default: {
2
5
  title: string;
3
- component: import("react").FC<import("./..").SelectProps>;
6
+ component: React.FC<import("../Select.types").NativeProps> & {
7
+ Custom: React.FC<import("../Select.types").CustomProps>;
8
+ Option: React.FC<import("../Select.types").OptionProps>;
9
+ OptionGroup: React.FC<import("../Select.types").OptionGroupProps>;
10
+ };
4
11
  parameters: {
5
12
  iframe: {
6
13
  url: string;
@@ -8,12 +15,30 @@ declare const _default: {
8
15
  };
9
16
  };
10
17
  export default _default;
11
- export declare const value: () => import("react").JSX.Element;
12
- export declare const variants: () => import("react").JSX.Element;
13
- export declare const size: () => import("react").JSX.Element;
14
- export declare const disabled: () => import("react").JSX.Element;
15
- export declare const error: () => import("react").JSX.Element;
16
- export declare const icon: () => import("react").JSX.Element;
17
- export declare const slots: () => import("react").JSX.Element;
18
- export declare const triggerComposition: () => import("react").JSX.Element;
19
- export declare const formControl: () => import("react").JSX.Element;
18
+ export declare const nativeRender: StoryObj;
19
+ export declare const customRender: StoryObj;
20
+ export declare const nativeHandlers: StoryObj<{
21
+ handleChange: Mock;
22
+ handleControlledChange: Mock;
23
+ handleFocus: Mock;
24
+ handleBlur: Mock;
25
+ handleClick: Mock;
26
+ }>;
27
+ export declare const customHandlers: StoryObj<{
28
+ handleChange: Mock;
29
+ handleControlledChange: Mock;
30
+ handleFocus: Mock;
31
+ handleBlur: Mock;
32
+ handleClick: Mock;
33
+ }>;
34
+ export declare const triggerOnly: StoryObj<{
35
+ handleClick: Mock;
36
+ }>;
37
+ export declare const variant: StoryObj;
38
+ export declare const size: StoryObj;
39
+ export declare const startSlot: StoryObj;
40
+ export declare const error: StoryObj;
41
+ export declare const disabled: StoryObj;
42
+ export declare const className: StoryObj;
43
+ export declare const fallback: StoryObj;
44
+ export declare const formControl: StoryObj;