@pixpilot/shadcn-ui 0.37.2 → 0.38.1

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.
@@ -1,6 +1,6 @@
1
1
  import { Select, SelectContent } from "@pixpilot/shadcn";
2
2
  import React, { ComponentProps } from "react";
3
- import * as react_jsx_runtime1 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/ColorSelect.d.ts
6
6
  interface ColorSelectOption {
@@ -15,6 +15,6 @@ type BaseColorSelectProps = {
15
15
  placeholder?: string;
16
16
  keyboardMode?: 'cycle' | 'dropdown';
17
17
  } & Omit<ComponentProps<typeof Select>, 'value' | 'onValueChange' | 'children'>;
18
- declare function ColorSelect(props: BaseColorSelectProps): react_jsx_runtime1.JSX.Element;
18
+ declare function ColorSelect(props: BaseColorSelectProps): react_jsx_runtime3.JSX.Element;
19
19
  //#endregion
20
20
  export { BaseColorSelectProps, ColorSelect, ColorSelectOption };
@@ -1,6 +1,6 @@
1
1
  import { Card } from "@pixpilot/shadcn";
2
2
  import React, { ReactNode } from "react";
3
- import * as react_jsx_runtime2 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/ContentCard.d.ts
6
6
  interface SectionCardProps extends React.ComponentProps<typeof Card> {
@@ -8,7 +8,7 @@ interface SectionCardProps extends React.ComponentProps<typeof Card> {
8
8
  children: ReactNode;
9
9
  marginBottom?: boolean;
10
10
  }
11
- declare function ContentCard(props: SectionCardProps): react_jsx_runtime2.JSX.Element;
11
+ declare function ContentCard(props: SectionCardProps): react_jsx_runtime1.JSX.Element;
12
12
  declare namespace ContentCard {
13
13
  var displayName: string;
14
14
  }
@@ -1,6 +1,6 @@
1
1
  import { Calendar } from "@pixpilot/shadcn";
2
2
  import { ComponentProps } from "react";
3
- import * as react_jsx_runtime3 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/DatePicker.d.ts
6
6
  type DatePickerProps = {
@@ -8,7 +8,7 @@ type DatePickerProps = {
8
8
  onChange?: (date: Date | undefined) => void;
9
9
  placeholder?: string;
10
10
  } & Omit<ComponentProps<typeof Calendar>, 'selected' | 'onSelect' | 'mode'>;
11
- declare function DatePicker(props: DatePickerProps): react_jsx_runtime3.JSX.Element;
11
+ declare function DatePicker(props: DatePickerProps): react_jsx_runtime2.JSX.Element;
12
12
  declare namespace DatePicker {
13
13
  var displayName: string;
14
14
  }
@@ -13,8 +13,9 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
13
  * Perfect for visibility toggles, theme switches, or any boolean state with visual feedback.
14
14
  * Icons can be React components (like lucide-react icons) or SVG markup strings.
15
15
  */
16
- const IconToggle = react.default.forwardRef(({ checked: controlledChecked, defaultChecked = false, onCheckedChange, onChange, checkedIcon, uncheckedIcon, size = "default", variant = "default", className, disabled,...props }, ref) => {
16
+ const IconToggle = react.default.forwardRef(({ checked: controlledChecked, defaultChecked = false, onCheckedChange, onChange, checkedIcon, uncheckedIcon, size = "default", variant = "default", iconSize = "1rem", className, disabled, style: styleProp,...props }, ref) => {
17
17
  const [uncontrolledChecked, setUncontrolledChecked] = react.default.useState(defaultChecked);
18
+ const resolvedIconSize = typeof iconSize === "number" ? `${iconSize}px` : iconSize;
18
19
  const isControlled = controlledChecked !== void 0;
19
20
  const checked = isControlled ? controlledChecked : uncontrolledChecked;
20
21
  const handleClick = (0, react.useCallback)((e) => {
@@ -37,8 +38,10 @@ const IconToggle = react.default.forwardRef(({ checked: controlledChecked, defau
37
38
  if (require_svg.isSvgMarkupString(icon)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
38
39
  "data-slot": "svg-mask",
39
40
  "aria-hidden": "true",
40
- className: "inline-block size-[1.2em]",
41
+ className: "inline-block",
41
42
  style: {
43
+ width: "var(--icon-toggle-icon-size)",
44
+ height: "var(--icon-toggle-icon-size)",
42
45
  backgroundColor: "currentColor",
43
46
  WebkitMaskImage: require_svg.svgMarkupToMaskUrl(icon),
44
47
  maskImage: require_svg.svgMarkupToMaskUrl(icon),
@@ -70,7 +73,11 @@ const IconToggle = react.default.forwardRef(({ checked: controlledChecked, defau
70
73
  "data-state": checked ? "checked" : "unchecked",
71
74
  "data-slot": "icon-toggle",
72
75
  disabled,
73
- className: (0, __pixpilot_shadcn.cn)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-all outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-[1.2em] [&_svg]:shrink-0", sizeClasses[size], variantClasses[variant], className),
76
+ className: (0, __pixpilot_shadcn.cn)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-all outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-[var(--icon-toggle-icon-size)] [&_svg]:shrink-0", sizeClasses[size], variantClasses[variant], className),
77
+ style: {
78
+ ...styleProp ?? {},
79
+ ["--icon-toggle-icon-size"]: resolvedIconSize
80
+ },
74
81
  onClick: handleClick,
75
82
  ...props,
76
83
  children: checked ? renderIcon(checkedIcon) : renderIcon(uncheckedIcon)
@@ -38,6 +38,14 @@ interface IconToggleProps extends Omit<React.ComponentProps<'button'>, 'onChange
38
38
  * @default 'default'
39
39
  */
40
40
  variant?: 'default' | 'outline' | 'ghost';
41
+ /**
42
+ * Icon size for both React SVG icons (e.g. lucide-react) and SVG string masks.
43
+ * Provide any valid CSS length (e.g. `'16px'`, `'1.25rem'`) or a number (px).
44
+ *
45
+ * Note: This is independent of `font-size` (e.g. `text-lg`).
46
+ * @default '1rem'
47
+ */
48
+ iconSize?: string | number;
41
49
  }
42
50
  /**
43
51
  * IconToggle - A toggle button component with customizable icons for checked/unchecked states.
@@ -38,6 +38,14 @@ interface IconToggleProps extends Omit<React.ComponentProps<'button'>, 'onChange
38
38
  * @default 'default'
39
39
  */
40
40
  variant?: 'default' | 'outline' | 'ghost';
41
+ /**
42
+ * Icon size for both React SVG icons (e.g. lucide-react) and SVG string masks.
43
+ * Provide any valid CSS length (e.g. `'16px'`, `'1.25rem'`) or a number (px).
44
+ *
45
+ * Note: This is independent of `font-size` (e.g. `text-lg`).
46
+ * @default '1rem'
47
+ */
48
+ iconSize?: string | number;
41
49
  }
42
50
  /**
43
51
  * IconToggle - A toggle button component with customizable icons for checked/unchecked states.
@@ -9,8 +9,9 @@ import { jsx } from "react/jsx-runtime";
9
9
  * Perfect for visibility toggles, theme switches, or any boolean state with visual feedback.
10
10
  * Icons can be React components (like lucide-react icons) or SVG markup strings.
11
11
  */
12
- const IconToggle = React.forwardRef(({ checked: controlledChecked, defaultChecked = false, onCheckedChange, onChange, checkedIcon, uncheckedIcon, size = "default", variant = "default", className, disabled,...props }, ref) => {
12
+ const IconToggle = React.forwardRef(({ checked: controlledChecked, defaultChecked = false, onCheckedChange, onChange, checkedIcon, uncheckedIcon, size = "default", variant = "default", iconSize = "1rem", className, disabled, style: styleProp,...props }, ref) => {
13
13
  const [uncontrolledChecked, setUncontrolledChecked] = React.useState(defaultChecked);
14
+ const resolvedIconSize = typeof iconSize === "number" ? `${iconSize}px` : iconSize;
14
15
  const isControlled = controlledChecked !== void 0;
15
16
  const checked = isControlled ? controlledChecked : uncontrolledChecked;
16
17
  const handleClick = useCallback((e) => {
@@ -33,8 +34,10 @@ const IconToggle = React.forwardRef(({ checked: controlledChecked, defaultChecke
33
34
  if (isSvgMarkupString(icon)) return /* @__PURE__ */ jsx("span", {
34
35
  "data-slot": "svg-mask",
35
36
  "aria-hidden": "true",
36
- className: "inline-block size-[1.2em]",
37
+ className: "inline-block",
37
38
  style: {
39
+ width: "var(--icon-toggle-icon-size)",
40
+ height: "var(--icon-toggle-icon-size)",
38
41
  backgroundColor: "currentColor",
39
42
  WebkitMaskImage: svgMarkupToMaskUrl(icon),
40
43
  maskImage: svgMarkupToMaskUrl(icon),
@@ -66,7 +69,11 @@ const IconToggle = React.forwardRef(({ checked: controlledChecked, defaultChecke
66
69
  "data-state": checked ? "checked" : "unchecked",
67
70
  "data-slot": "icon-toggle",
68
71
  disabled,
69
- className: cn("inline-flex items-center justify-center rounded-md text-sm font-medium transition-all outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-[1.2em] [&_svg]:shrink-0", sizeClasses[size], variantClasses[variant], className),
72
+ className: cn("inline-flex items-center justify-center rounded-md text-sm font-medium transition-all outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-[var(--icon-toggle-icon-size)] [&_svg]:shrink-0", sizeClasses[size], variantClasses[variant], className),
73
+ style: {
74
+ ...styleProp ?? {},
75
+ ["--icon-toggle-icon-size"]: resolvedIconSize
76
+ },
70
77
  onClick: handleClick,
71
78
  ...props,
72
79
  children: checked ? renderIcon(checkedIcon) : renderIcon(uncheckedIcon)
@@ -1,10 +1,10 @@
1
1
  import { FileUploadInlineProps } from "./types.cjs";
2
- import * as react_jsx_runtime8 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/file-upload-inline/FileUploadInline.d.ts
5
5
  /**
6
6
  * FileUploadInline - An inline file upload component using FileUpload primitives
7
7
  */
8
- declare function FileUploadInline(props: FileUploadInlineProps): react_jsx_runtime8.JSX.Element;
8
+ declare function FileUploadInline(props: FileUploadInlineProps): react_jsx_runtime7.JSX.Element;
9
9
  //#endregion
10
10
  export { FileUploadInline };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime9 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
2
  import { InputProps } from "@pixpilot/shadcn";
3
3
  import * as React$1 from "react";
4
4
 
@@ -10,6 +10,6 @@ type InputProps$1 = InputProps & {
10
10
  prefixClassName?: string;
11
11
  suffixClassName?: string;
12
12
  };
13
- declare function Input(props: InputProps$1): react_jsx_runtime9.JSX.Element;
13
+ declare function Input(props: InputProps$1): react_jsx_runtime8.JSX.Element;
14
14
  //#endregion
15
15
  export { Input, InputProps$1 as InputProps };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime7 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/theme-toggle/ThemeModeToggleButton.d.ts
4
4
  interface ThemeModeToggleButtonProps {
@@ -13,7 +13,7 @@ interface ThemeModeToggleButtonProps {
13
13
  * Light/Dark toggle button.
14
14
  * Pure component - toggles between light and dark.
15
15
  */
16
- declare function ThemeModeToggleButton(props: ThemeModeToggleButtonProps): react_jsx_runtime7.JSX.Element;
16
+ declare function ThemeModeToggleButton(props: ThemeModeToggleButtonProps): react_jsx_runtime9.JSX.Element;
17
17
  declare namespace ThemeModeToggleButton {
18
18
  var displayName: string;
19
19
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pixpilot/shadcn-ui",
3
3
  "type": "module",
4
- "version": "0.37.2",
4
+ "version": "0.38.1",
5
5
  "description": "Custom UI components and utilities built with shadcn/ui.",
6
6
  "author": "m.doaie <m.doaie@hotmail.com>",
7
7
  "license": "MIT",
@@ -46,7 +46,7 @@
46
46
  "pretty-bytes": "^7.1.0",
47
47
  "react-responsive": "^10.0.1",
48
48
  "sonner": "2.0.7",
49
- "@pixpilot/shadcn": "0.7.0"
49
+ "@pixpilot/shadcn": "0.7.1"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@storybook/react": "^8.6.14",