@lateralus-ai/shipping-ui 2.0.0-dev.25 → 2.0.0-dev.27
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/dist/index.cjs +13 -13
- package/dist/index.esm.js +812 -810
- package/dist/primitives/Button.d.ts +3 -1
- package/dist/primitives/Switch.d.ts +2 -2
- package/package.json +1 -1
- package/src/primitives/Button.tsx +6 -1
- package/src/primitives/Switch.tsx +7 -5
|
@@ -13,10 +13,12 @@ export type ButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "childre
|
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
icon?: ComponentType<IconProps> | ReactNode;
|
|
15
15
|
startIcon?: ComponentType<IconProps> | ReactNode;
|
|
16
|
+
/** Renders after the label, inside the same button (no split/dropdown segment). */
|
|
17
|
+
endIcon?: ComponentType<IconProps> | ReactNode;
|
|
16
18
|
dropdownOptions?: ButtonDropdownOption[];
|
|
17
19
|
dropdownOpen?: boolean;
|
|
18
20
|
onDropdownOpenChange?: (open: boolean) => void;
|
|
19
21
|
forcedState?: ButtonAppearance;
|
|
20
22
|
children: ReactNode;
|
|
21
23
|
};
|
|
22
|
-
export declare const Button: ({ hierarchy, disabled, icon, startIcon, dropdownOptions, dropdownOpen, onDropdownOpenChange, forcedState, children, className, type, onClick, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare const Button: ({ hierarchy, disabled, icon, startIcon, endIcon, dropdownOptions, dropdownOpen, onDropdownOpenChange, forcedState, children, className, type, onClick, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,7 +6,7 @@ export type SwitchProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChang
|
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
8
|
* On/off control — Figma Switch (3068:65681).
|
|
9
|
-
* Track: 36×16. Thumb: 24×24 (
|
|
10
|
-
* Raise-2 on
|
|
9
|
+
* Track: 36×16 (grey-400 off / grey-900 on). Thumb: 24×24 white (grey-50 off),
|
|
10
|
+
* 1px border matching track, Raise-2 shadow. Off left / on right, edges flush.
|
|
11
11
|
*/
|
|
12
12
|
export declare const Switch: ({ checked, onChange, disabled, className, ...props }: SwitchProps) => import("react/jsx-runtime").JSX.Element;
|
package/package.json
CHANGED
|
@@ -34,6 +34,8 @@ export type ButtonProps = Omit<
|
|
|
34
34
|
disabled?: boolean;
|
|
35
35
|
icon?: ComponentType<IconProps> | ReactNode;
|
|
36
36
|
startIcon?: ComponentType<IconProps> | ReactNode;
|
|
37
|
+
/** Renders after the label, inside the same button (no split/dropdown segment). */
|
|
38
|
+
endIcon?: ComponentType<IconProps> | ReactNode;
|
|
37
39
|
dropdownOptions?: ButtonDropdownOption[];
|
|
38
40
|
dropdownOpen?: boolean;
|
|
39
41
|
onDropdownOpenChange?: (open: boolean) => void;
|
|
@@ -110,6 +112,7 @@ export const Button = ({
|
|
|
110
112
|
disabled = false,
|
|
111
113
|
icon,
|
|
112
114
|
startIcon,
|
|
115
|
+
endIcon,
|
|
113
116
|
dropdownOptions,
|
|
114
117
|
dropdownOpen,
|
|
115
118
|
onDropdownOpenChange,
|
|
@@ -122,7 +125,8 @@ export const Button = ({
|
|
|
122
125
|
}: ButtonProps) => {
|
|
123
126
|
const resolvedIcon = icon ?? startIcon;
|
|
124
127
|
const renderedIcon = renderIcon(resolvedIcon);
|
|
125
|
-
const
|
|
128
|
+
const renderedEndIcon = renderIcon(endIcon);
|
|
129
|
+
const hasIcon = renderedIcon != null || renderedEndIcon != null;
|
|
126
130
|
const hasDropdown = Boolean(dropdownOptions?.length);
|
|
127
131
|
const dropdownDisabled = !dropdownOptions?.some((option) => !option.disabled);
|
|
128
132
|
const mainAppearance = getAppearance(disabled, forcedState);
|
|
@@ -148,6 +152,7 @@ export const Button = ({
|
|
|
148
152
|
>
|
|
149
153
|
{renderedIcon}
|
|
150
154
|
<span>{children}</span>
|
|
155
|
+
{renderedEndIcon}
|
|
151
156
|
</span>
|
|
152
157
|
);
|
|
153
158
|
|
|
@@ -12,8 +12,8 @@ export type SwitchProps = Omit<
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* On/off control — Figma Switch (3068:65681).
|
|
15
|
-
* Track: 36×16. Thumb: 24×24 (
|
|
16
|
-
* Raise-2 on
|
|
15
|
+
* Track: 36×16 (grey-400 off / grey-900 on). Thumb: 24×24 white (grey-50 off),
|
|
16
|
+
* 1px border matching track, Raise-2 shadow. Off left / on right, edges flush.
|
|
17
17
|
*/
|
|
18
18
|
export const Switch = ({
|
|
19
19
|
checked,
|
|
@@ -42,14 +42,16 @@ export const Switch = ({
|
|
|
42
42
|
aria-hidden
|
|
43
43
|
className={cn(
|
|
44
44
|
"pointer-events-none absolute inset-x-0 top-1/2 h-4 -translate-y-1/2 rounded-full transition-colors",
|
|
45
|
-
checked ? "bg-grey-900" : "bg-grey-
|
|
45
|
+
checked ? "bg-grey-900" : "bg-grey-400",
|
|
46
46
|
)}
|
|
47
47
|
/>
|
|
48
48
|
<span
|
|
49
49
|
aria-hidden
|
|
50
50
|
className={cn(
|
|
51
|
-
"relative inline-block size-6 rounded-full
|
|
52
|
-
checked
|
|
51
|
+
"relative inline-block size-6 rounded-full border border-solid shadow-raise2 transition-[transform,border-color,background-color]",
|
|
52
|
+
checked
|
|
53
|
+
? "translate-x-3 border-grey-900 bg-white"
|
|
54
|
+
: "translate-x-0 border-grey-400 bg-grey-50",
|
|
53
55
|
)}
|
|
54
56
|
/>
|
|
55
57
|
</button>
|