@lateralus-ai/shipping-ui 2.0.0-dev.26 → 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.
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lateralus-ai/shipping-ui",
3
- "version": "2.0.0-dev.26",
3
+ "version": "2.0.0-dev.27",
4
4
  "description": "Shared UI theme and components for Lateralus shipping applications",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.esm.js",
@@ -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 hasIcon = renderedIcon != null;
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