@pixpilot/shadcn-ui 0.25.1 → 0.27.0

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 (56) hide show
  1. package/dist/AbsoluteFill.cjs +1 -0
  2. package/dist/AbsoluteFill.js +1 -0
  3. package/dist/Button.cjs +1 -0
  4. package/dist/Button.js +1 -0
  5. package/dist/ColorSelect.d.ts +2 -2
  6. package/dist/ContentCard.d.cts +2 -2
  7. package/dist/ContentCard.d.ts +2 -2
  8. package/dist/DatePicker.d.cts +2 -2
  9. package/dist/DatePicker.d.ts +2 -2
  10. package/dist/ScaledPreview.cjs +2 -0
  11. package/dist/ScaledPreview.js +2 -0
  12. package/dist/file-upload/FileUpload.d.cts +2 -2
  13. package/dist/file-upload/FileUpload.d.ts +2 -2
  14. package/dist/file-upload-inline/FileUploadInline.d.ts +2 -2
  15. package/dist/index.cjs +10 -1
  16. package/dist/index.d.cts +7 -2
  17. package/dist/index.d.ts +7 -2
  18. package/dist/index.js +7 -2
  19. package/dist/input/Input.d.ts +2 -2
  20. package/dist/layout/Layout.cjs +1 -0
  21. package/dist/layout/Layout.js +1 -0
  22. package/dist/layout/LayoutFooter.cjs +1 -0
  23. package/dist/layout/LayoutFooter.js +1 -0
  24. package/dist/layout/LayoutHeader.cjs +1 -0
  25. package/dist/layout/LayoutHeader.js +1 -0
  26. package/dist/layout/LayoutMain.cjs +1 -0
  27. package/dist/layout/LayoutMain.js +1 -0
  28. package/dist/theme-provider/index.d.ts +2 -2
  29. package/dist/theme-provider/index.js +2 -2
  30. package/dist/theme-toggle/ThemeModeDropdown.cjs +81 -0
  31. package/dist/theme-toggle/ThemeModeDropdown.d.cts +25 -0
  32. package/dist/theme-toggle/ThemeModeDropdown.d.ts +25 -0
  33. package/dist/theme-toggle/ThemeModeDropdown.js +76 -0
  34. package/dist/theme-toggle/ThemeModeSwitchInside.cjs +86 -0
  35. package/dist/theme-toggle/ThemeModeSwitchInside.d.cts +33 -0
  36. package/dist/theme-toggle/ThemeModeSwitchInside.d.ts +33 -0
  37. package/dist/theme-toggle/ThemeModeSwitchInside.js +82 -0
  38. package/dist/theme-toggle/ThemeModeSwitchOutside.cjs +68 -0
  39. package/dist/theme-toggle/ThemeModeSwitchOutside.d.cts +30 -0
  40. package/dist/theme-toggle/ThemeModeSwitchOutside.d.ts +30 -0
  41. package/dist/theme-toggle/ThemeModeSwitchOutside.js +63 -0
  42. package/dist/theme-toggle/ThemeModeToggleButton.cjs +48 -0
  43. package/dist/theme-toggle/ThemeModeToggleButton.d.cts +21 -0
  44. package/dist/theme-toggle/ThemeModeToggleButton.d.ts +21 -0
  45. package/dist/theme-toggle/ThemeModeToggleButton.js +43 -0
  46. package/dist/{ThemeToggle.cjs → theme-toggle/ThemeToggle.cjs} +13 -23
  47. package/dist/theme-toggle/ThemeToggle.d.cts +17 -0
  48. package/dist/theme-toggle/ThemeToggle.d.ts +17 -0
  49. package/dist/{ThemeToggle.js → theme-toggle/ThemeToggle.js} +13 -22
  50. package/dist/theme-toggle/index.cjs +5 -0
  51. package/dist/theme-toggle/index.d.cts +5 -0
  52. package/dist/theme-toggle/index.d.ts +5 -0
  53. package/dist/theme-toggle/index.js +5 -0
  54. package/package.json +1 -1
  55. package/dist/ThemeToggle.d.cts +0 -6
  56. package/dist/ThemeToggle.d.ts +0 -6
@@ -15,6 +15,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
15
15
  function AbsoluteFill(props) {
16
16
  const { ref, className,...rest } = props;
17
17
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
18
+ "data-slot": "absolute-fill",
18
19
  ref,
19
20
  ...rest,
20
21
  className: (0, __pixpilot_shadcn.cn)("absolute top-0 right-0 bottom-0 left-0", className)
@@ -11,6 +11,7 @@ import { jsx } from "react/jsx-runtime";
11
11
  function AbsoluteFill(props) {
12
12
  const { ref, className,...rest } = props;
13
13
  return /* @__PURE__ */ jsx("div", {
14
+ "data-slot": "absolute-fill",
14
15
  ref,
15
16
  ...rest,
16
17
  className: cn("absolute top-0 right-0 bottom-0 left-0", className)
package/dist/Button.cjs CHANGED
@@ -33,6 +33,7 @@ function Button(props) {
33
33
  const showTooltip = hasTooltip || hasDisabledTooltip;
34
34
  const tooltipContent = hasDisabledTooltip ? disabledTooltip ?? "" : tooltip ?? title ?? "";
35
35
  const Loader = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
36
+ "data-slot": "button-loader",
36
37
  className: (0, __pixpilot_shadcn.cn)("flex items-center justify-center", loaderPlacement === "center" && "rounded-0 absolute inset-0", loaderPlacement === "start" && "mr-1", loaderPlacement === "end" && "ml-1"),
37
38
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Loader2, {
38
39
  className: "text-background animate-spin",
package/dist/Button.js CHANGED
@@ -28,6 +28,7 @@ function Button$1(props) {
28
28
  const showTooltip = hasTooltip || hasDisabledTooltip;
29
29
  const tooltipContent = hasDisabledTooltip ? disabledTooltip ?? "" : tooltip ?? title ?? "";
30
30
  const Loader = /* @__PURE__ */ jsx("div", {
31
+ "data-slot": "button-loader",
31
32
  className: cn("flex items-center justify-center", loaderPlacement === "center" && "rounded-0 absolute inset-0", loaderPlacement === "start" && "mr-1", loaderPlacement === "end" && "ml-1"),
32
33
  children: /* @__PURE__ */ jsx(Loader2, {
33
34
  className: "text-background animate-spin",
@@ -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_runtime2 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_runtime2.JSX.Element;
19
19
  //#endregion
20
20
  export { BaseColorSelectProps, ColorSelect, ColorSelectOption };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime3 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
2
2
  import { Card } from "@pixpilot/shadcn";
3
3
  import React, { ReactNode } from "react";
4
4
 
@@ -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_runtime3.JSX.Element;
11
+ declare function ContentCard(props: SectionCardProps): react_jsx_runtime2.JSX.Element;
12
12
  declare namespace ContentCard {
13
13
  var displayName: string;
14
14
  }
@@ -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_runtime3 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_runtime3.JSX.Element;
12
12
  declare namespace ContentCard {
13
13
  var displayName: string;
14
14
  }
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
2
2
  import { Calendar } from "@pixpilot/shadcn";
3
3
  import { ComponentProps } from "react";
4
4
 
@@ -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_runtime2.JSX.Element;
11
+ declare function DatePicker(props: DatePickerProps): react_jsx_runtime3.JSX.Element;
12
12
  declare namespace DatePicker {
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_runtime1 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_runtime1.JSX.Element;
12
12
  declare namespace DatePicker {
13
13
  var displayName: string;
14
14
  }
@@ -20,6 +20,7 @@ const ScaledPreview = ({ baseSize = DEFAULT_BASE_SIZE, scaleFactor, previewBoxSi
20
20
  const finalScale = forceScale ?? calculatedScale;
21
21
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
22
22
  ...rest,
23
+ "data-slot": "scaled-preview",
23
24
  style: {
24
25
  width: calculatedPreviewBoxSize.width,
25
26
  height: calculatedPreviewBoxSize.height,
@@ -27,6 +28,7 @@ const ScaledPreview = ({ baseSize = DEFAULT_BASE_SIZE, scaleFactor, previewBoxSi
27
28
  ...rest.style
28
29
  },
29
30
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
31
+ "data-slot": "scaled-preview-content",
30
32
  className: "absolute top-1/2 left-1/2",
31
33
  style: {
32
34
  width: baseSize.width,
@@ -17,6 +17,7 @@ const ScaledPreview = ({ baseSize = DEFAULT_BASE_SIZE, scaleFactor, previewBoxSi
17
17
  const finalScale = forceScale ?? calculatedScale;
18
18
  return /* @__PURE__ */ jsx("div", {
19
19
  ...rest,
20
+ "data-slot": "scaled-preview",
20
21
  style: {
21
22
  width: calculatedPreviewBoxSize.width,
22
23
  height: calculatedPreviewBoxSize.height,
@@ -24,6 +25,7 @@ const ScaledPreview = ({ baseSize = DEFAULT_BASE_SIZE, scaleFactor, previewBoxSi
24
25
  ...rest.style
25
26
  },
26
27
  children: /* @__PURE__ */ jsx("div", {
28
+ "data-slot": "scaled-preview-content",
27
29
  className: "absolute top-1/2 left-1/2",
28
30
  style: {
29
31
  width: baseSize.width,
@@ -1,7 +1,7 @@
1
1
  import { FileUploadProps } from "./types/index.cjs";
2
- import * as react_jsx_runtime9 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/file-upload/FileUpload.d.ts
5
- declare function FileUpload(props: FileUploadProps): react_jsx_runtime9.JSX.Element;
5
+ declare function FileUpload(props: FileUploadProps): react_jsx_runtime6.JSX.Element;
6
6
  //#endregion
7
7
  export { FileUpload };
@@ -1,7 +1,7 @@
1
1
  import { FileUploadProps } from "./types/index.js";
2
- import * as react_jsx_runtime7 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/file-upload/FileUpload.d.ts
5
- declare function FileUpload(props: FileUploadProps): react_jsx_runtime7.JSX.Element;
5
+ declare function FileUpload(props: FileUploadProps): react_jsx_runtime6.JSX.Element;
6
6
  //#endregion
7
7
  export { FileUpload };
@@ -1,10 +1,10 @@
1
1
  import { FileUploadInlineProps } from "./types.js";
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 };
package/dist/index.cjs CHANGED
@@ -53,7 +53,12 @@ require('./tabs/index.cjs');
53
53
  const require_tags_input = require('./tags-input.cjs');
54
54
  const require_ThemeProvider = require('./theme-provider/ThemeProvider.cjs');
55
55
  require('./theme-provider/index.cjs');
56
- const require_ThemeToggle = require('./ThemeToggle.cjs');
56
+ const require_ThemeModeDropdown = require('./theme-toggle/ThemeModeDropdown.cjs');
57
+ const require_ThemeModeSwitchInside = require('./theme-toggle/ThemeModeSwitchInside.cjs');
58
+ const require_ThemeModeSwitchOutside = require('./theme-toggle/ThemeModeSwitchOutside.cjs');
59
+ const require_ThemeModeToggleButton = require('./theme-toggle/ThemeModeToggleButton.cjs');
60
+ const require_ThemeToggle = require('./theme-toggle/ThemeToggle.cjs');
61
+ require('./theme-toggle/index.cjs');
57
62
  const require_toast = require('./toast/toast.cjs');
58
63
  require('./toast/index.cjs');
59
64
  let __pixpilot_shadcn = require("@pixpilot/shadcn");
@@ -98,6 +103,10 @@ exports.TabsContext = require_TabsContext.TabsContext;
98
103
  exports.TabsList = require_TabsList.TabsList;
99
104
  exports.TabsTrigger = require_TabsTrigger.TabsTrigger;
100
105
  exports.TagsInput = require_tags_input.TagsInput;
106
+ exports.ThemeModeDropdown = require_ThemeModeDropdown.ThemeModeDropdown;
107
+ exports.ThemeModeSwitchInside = require_ThemeModeSwitchInside.ThemeModeSwitchInside;
108
+ exports.ThemeModeSwitchOutside = require_ThemeModeSwitchOutside.ThemeModeSwitchOutside;
109
+ exports.ThemeModeToggleButton = require_ThemeModeToggleButton.ThemeModeToggleButton;
101
110
  exports.ThemeProvider = require_ThemeProvider.ThemeProvider;
102
111
  exports.ThemeToggle = require_ThemeToggle.ThemeToggle;
103
112
  exports.cn = __pixpilot_shadcn.cn;
package/dist/index.d.cts CHANGED
@@ -58,8 +58,13 @@ import "./tabs/index.cjs";
58
58
  import { TagsInput, TagsInputProps } from "./tags-input.cjs";
59
59
  import { ThemeProvider, ThemeProviderProps } from "./theme-provider/ThemeProvider.cjs";
60
60
  import { useTheme } from "./theme-provider/index.cjs";
61
- import { ThemeToggle } from "./ThemeToggle.cjs";
61
+ import { ThemeModeDropdown, ThemeModeDropdownProps } from "./theme-toggle/ThemeModeDropdown.cjs";
62
+ import { ThemeModeSwitchInside, ThemeModeSwitchInsideProps, ThemeModeSwitchInsideSize } from "./theme-toggle/ThemeModeSwitchInside.cjs";
63
+ import { ThemeModeSwitchOutside, ThemeModeSwitchOutsideProps } from "./theme-toggle/ThemeModeSwitchOutside.cjs";
64
+ import { ThemeModeToggleButton, ThemeModeToggleButtonProps } from "./theme-toggle/ThemeModeToggleButton.cjs";
65
+ import { ThemeToggle, ThemeToggleProps } from "./theme-toggle/ThemeToggle.cjs";
66
+ import "./theme-toggle/index.cjs";
62
67
  import { DEFAULT_ALERT_DURATION, ToastMessage, toast, toastError, toastInfo, toastSuccess, toastWarning } from "./toast/toast.cjs";
63
68
  import "./toast/index.cjs";
64
69
  import { cn } from "@pixpilot/shadcn";
65
- export { AbsoluteFill, Alert, AlertBaseProps, AlertProps, AlertVariant, AvatarUpload, AvatarUploadProps, BaseTabsTriggerProps, Button, ButtonLoaderProps, ButtonProps, CircleLoader, CircleLoaderProps, CloseButtonAbsolute, CloseButtonRounded, CloseButtonRoundedProps, ColorPicker, ColorPickerBase, ColorPickerBaseProps, ColorPickerBaseSection, ColorPickerProps, ColorSelect, ColorSelectOption, BaseColorSelectProps as ColorSelectProps, Combobox, ConfirmationDialogProps, ContentCard, DEFAULT_ALERT_DURATION, DatePicker, DatePickerProps, DialogProvider, DialogProviderProps, type FileMetadata, FileUpload, FileUploadBaseProps, FileUploadInline, FileUploadInlineBaseProps, FileUploadInlineProps, type FileUploadProgressCallBacks, type FileUploadProps, IconPicker, IconPickerProps, IconPickerVariant, IconProvider, IconProviderLoader, IconProviderProps, Input, InputProps, Layout, LayoutFooter, LayoutFooterProps, LayoutHeader, LayoutHeaderProps, LayoutMain, LayoutMainProps, LayoutProps, LoaderProps, LoadingOverlay, MultiFileUploadProps, OnChangeMultipleFiles, OnChangeSingleFile, Pagination, PaginationProps, PopoverCloseButtonProps, PresetColor, RichTextEditor, RichTextEditorProps, ScaledPreview, ScaledPreviewProps, ScaledPreviewSize, Select, SelectOption, SingleFileUploadProps, Slider, SliderInput, SliderInputProps, SliderProps, SliderSelect, SliderSelectOption, SliderSelectProps, SliderSelectValue, Tabs, TabsContent, TabsContext, TabsContextValue, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, TabsVariant, TagsInput, TagsInputProps, ThemeProvider, ThemeProviderProps, ThemeToggle, ToastMessage, ToolbarOption, cn, showConfirmDialog, toast, toastError, toastInfo, toastSuccess, toastWarning, useMediaQuery, useSelectKeyboard, useTabsContext, useTheme };
70
+ export { AbsoluteFill, Alert, AlertBaseProps, AlertProps, AlertVariant, AvatarUpload, AvatarUploadProps, BaseTabsTriggerProps, Button, ButtonLoaderProps, ButtonProps, CircleLoader, CircleLoaderProps, CloseButtonAbsolute, CloseButtonRounded, CloseButtonRoundedProps, ColorPicker, ColorPickerBase, ColorPickerBaseProps, ColorPickerBaseSection, ColorPickerProps, ColorSelect, ColorSelectOption, BaseColorSelectProps as ColorSelectProps, Combobox, ConfirmationDialogProps, ContentCard, DEFAULT_ALERT_DURATION, DatePicker, DatePickerProps, DialogProvider, DialogProviderProps, type FileMetadata, FileUpload, FileUploadBaseProps, FileUploadInline, FileUploadInlineBaseProps, FileUploadInlineProps, type FileUploadProgressCallBacks, type FileUploadProps, IconPicker, IconPickerProps, IconPickerVariant, IconProvider, IconProviderLoader, IconProviderProps, Input, InputProps, Layout, LayoutFooter, LayoutFooterProps, LayoutHeader, LayoutHeaderProps, LayoutMain, LayoutMainProps, LayoutProps, LoaderProps, LoadingOverlay, MultiFileUploadProps, OnChangeMultipleFiles, OnChangeSingleFile, Pagination, PaginationProps, PopoverCloseButtonProps, PresetColor, RichTextEditor, RichTextEditorProps, ScaledPreview, ScaledPreviewProps, ScaledPreviewSize, Select, SelectOption, SingleFileUploadProps, Slider, SliderInput, SliderInputProps, SliderProps, SliderSelect, SliderSelectOption, SliderSelectProps, SliderSelectValue, Tabs, TabsContent, TabsContext, TabsContextValue, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, TabsVariant, TagsInput, TagsInputProps, ThemeModeDropdown, ThemeModeDropdownProps, ThemeModeSwitchInside, ThemeModeSwitchInsideProps, ThemeModeSwitchInsideSize, ThemeModeSwitchOutside, ThemeModeSwitchOutsideProps, ThemeModeToggleButton, ThemeModeToggleButtonProps, ThemeProvider, ThemeProviderProps, ThemeToggle, ThemeToggleProps, ToastMessage, ToolbarOption, cn, showConfirmDialog, toast, toastError, toastInfo, toastSuccess, toastWarning, useMediaQuery, useSelectKeyboard, useTabsContext, useTheme };
package/dist/index.d.ts CHANGED
@@ -60,8 +60,13 @@ import "./tabs/index.js";
60
60
  import { TagsInput, TagsInputProps } from "./tags-input.js";
61
61
  import { ThemeProvider, ThemeProviderProps } from "./theme-provider/ThemeProvider.js";
62
62
  import { useTheme } from "./theme-provider/index.js";
63
- import { ThemeToggle } from "./ThemeToggle.js";
63
+ import { ThemeModeDropdown, ThemeModeDropdownProps } from "./theme-toggle/ThemeModeDropdown.js";
64
+ import { ThemeModeSwitchInside, ThemeModeSwitchInsideProps, ThemeModeSwitchInsideSize } from "./theme-toggle/ThemeModeSwitchInside.js";
65
+ import { ThemeModeSwitchOutside, ThemeModeSwitchOutsideProps } from "./theme-toggle/ThemeModeSwitchOutside.js";
66
+ import { ThemeModeToggleButton, ThemeModeToggleButtonProps } from "./theme-toggle/ThemeModeToggleButton.js";
67
+ import { ThemeToggle, ThemeToggleProps } from "./theme-toggle/ThemeToggle.js";
68
+ import "./theme-toggle/index.js";
64
69
  import { DEFAULT_ALERT_DURATION, ToastMessage, toast, toastError, toastInfo, toastSuccess, toastWarning } from "./toast/toast.js";
65
70
  import "./toast/index.js";
66
71
  import { cn } from "@pixpilot/shadcn";
67
- export { AbsoluteFill, Alert, AlertBaseProps, AlertProps, AlertVariant, AvatarUpload, AvatarUploadProps, BaseTabsTriggerProps, Button, ButtonLoaderProps, ButtonProps, CircleLoader, CircleLoaderProps, CloseButtonAbsolute, CloseButtonRounded, CloseButtonRoundedProps, ColorPicker, ColorPickerBase, ColorPickerBaseProps, ColorPickerBaseSection, ColorPickerProps, ColorSelect, ColorSelectOption, BaseColorSelectProps as ColorSelectProps, Combobox, ConfirmationDialogProps, ContentCard, DEFAULT_ALERT_DURATION, DatePicker, DatePickerProps, DialogProvider, DialogProviderProps, type FileMetadata, FileUpload, FileUploadBaseProps, FileUploadInline, FileUploadInlineBaseProps, FileUploadInlineProps, type FileUploadProgressCallBacks, type FileUploadProps, IconPicker, IconPickerProps, IconPickerVariant, IconProvider, IconProviderLoader, IconProviderProps, Input, InputProps, Layout, LayoutFooter, LayoutFooterProps, LayoutHeader, LayoutHeaderProps, LayoutMain, LayoutMainProps, LayoutProps, LoaderProps, LoadingOverlay, MultiFileUploadProps, OnChangeMultipleFiles, OnChangeSingleFile, Pagination, PaginationProps, PopoverCloseButtonProps, PresetColor, RichTextEditor, RichTextEditorProps, ScaledPreview, ScaledPreviewProps, ScaledPreviewSize, Select, SelectOption, SingleFileUploadProps, Slider, SliderInput, SliderInputProps, SliderProps, SliderSelect, SliderSelectOption, SliderSelectProps, SliderSelectValue, Tabs, TabsContent, TabsContext, TabsContextValue, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, TabsVariant, TagsInput, TagsInputProps, ThemeProvider, ThemeProviderProps, ThemeToggle, ToastMessage, ToolbarOption, cn, showConfirmDialog, toast, toastError, toastInfo, toastSuccess, toastWarning, useMediaQuery, useSelectKeyboard, useTabsContext, useTheme };
72
+ export { AbsoluteFill, Alert, AlertBaseProps, AlertProps, AlertVariant, AvatarUpload, AvatarUploadProps, BaseTabsTriggerProps, Button, ButtonLoaderProps, ButtonProps, CircleLoader, CircleLoaderProps, CloseButtonAbsolute, CloseButtonRounded, CloseButtonRoundedProps, ColorPicker, ColorPickerBase, ColorPickerBaseProps, ColorPickerBaseSection, ColorPickerProps, ColorSelect, ColorSelectOption, BaseColorSelectProps as ColorSelectProps, Combobox, ConfirmationDialogProps, ContentCard, DEFAULT_ALERT_DURATION, DatePicker, DatePickerProps, DialogProvider, DialogProviderProps, type FileMetadata, FileUpload, FileUploadBaseProps, FileUploadInline, FileUploadInlineBaseProps, FileUploadInlineProps, type FileUploadProgressCallBacks, type FileUploadProps, IconPicker, IconPickerProps, IconPickerVariant, IconProvider, IconProviderLoader, IconProviderProps, Input, InputProps, Layout, LayoutFooter, LayoutFooterProps, LayoutHeader, LayoutHeaderProps, LayoutMain, LayoutMainProps, LayoutProps, LoaderProps, LoadingOverlay, MultiFileUploadProps, OnChangeMultipleFiles, OnChangeSingleFile, Pagination, PaginationProps, PopoverCloseButtonProps, PresetColor, RichTextEditor, RichTextEditorProps, ScaledPreview, ScaledPreviewProps, ScaledPreviewSize, Select, SelectOption, SingleFileUploadProps, Slider, SliderInput, SliderInputProps, SliderProps, SliderSelect, SliderSelectOption, SliderSelectProps, SliderSelectValue, Tabs, TabsContent, TabsContext, TabsContextValue, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, TabsVariant, TagsInput, TagsInputProps, ThemeModeDropdown, ThemeModeDropdownProps, ThemeModeSwitchInside, ThemeModeSwitchInsideProps, ThemeModeSwitchInsideSize, ThemeModeSwitchOutside, ThemeModeSwitchOutsideProps, ThemeModeToggleButton, ThemeModeToggleButtonProps, ThemeProvider, ThemeProviderProps, ThemeToggle, ThemeToggleProps, ToastMessage, ToolbarOption, cn, showConfirmDialog, toast, toastError, toastInfo, toastSuccess, toastWarning, useMediaQuery, useSelectKeyboard, useTabsContext, useTheme };
package/dist/index.js CHANGED
@@ -54,9 +54,14 @@ import "./tabs/index.js";
54
54
  import { TagsInput } from "./tags-input.js";
55
55
  import { ThemeProvider } from "./theme-provider/ThemeProvider.js";
56
56
  import { useTheme } from "./theme-provider/index.js";
57
- import { ThemeToggle } from "./ThemeToggle.js";
57
+ import { ThemeModeDropdown } from "./theme-toggle/ThemeModeDropdown.js";
58
+ import { ThemeModeSwitchInside } from "./theme-toggle/ThemeModeSwitchInside.js";
59
+ import { ThemeModeSwitchOutside } from "./theme-toggle/ThemeModeSwitchOutside.js";
60
+ import { ThemeModeToggleButton } from "./theme-toggle/ThemeModeToggleButton.js";
61
+ import { ThemeToggle } from "./theme-toggle/ThemeToggle.js";
62
+ import "./theme-toggle/index.js";
58
63
  import { DEFAULT_ALERT_DURATION, toast, toastError, toastInfo, toastSuccess, toastWarning } from "./toast/toast.js";
59
64
  import "./toast/index.js";
60
65
  import { cn } from "@pixpilot/shadcn";
61
66
 
62
- export { AbsoluteFill, Alert, AvatarUpload, Button, CircleLoader, CloseButtonAbsolute, CloseButtonRounded, ColorPicker, ColorPickerBase, ColorSelect, Combobox, ContentCard, DEFAULT_ALERT_DURATION, DatePicker, DialogProvider, FileUpload, FileUploadInline, IconPicker, Input, Layout, LayoutFooter, LayoutHeader, LayoutMain, LoadingOverlay, Pagination, RichTextEditor, ScaledPreview, Select, Slider, SliderInput, SliderSelect, Tabs, TabsContent, TabsContext, TabsList, TabsTrigger, TagsInput, ThemeProvider, ThemeToggle, cn, showConfirmDialog, toast, toastError, toastInfo, toastSuccess, toastWarning, useMediaQuery, useSelectKeyboard, useTabsContext, useTheme };
67
+ export { AbsoluteFill, Alert, AvatarUpload, Button, CircleLoader, CloseButtonAbsolute, CloseButtonRounded, ColorPicker, ColorPickerBase, ColorSelect, Combobox, ContentCard, DEFAULT_ALERT_DURATION, DatePicker, DialogProvider, FileUpload, FileUploadInline, IconPicker, Input, Layout, LayoutFooter, LayoutHeader, LayoutMain, LoadingOverlay, Pagination, RichTextEditor, ScaledPreview, Select, Slider, SliderInput, SliderSelect, Tabs, TabsContent, TabsContext, TabsList, TabsTrigger, TagsInput, ThemeModeDropdown, ThemeModeSwitchInside, ThemeModeSwitchOutside, ThemeModeToggleButton, ThemeProvider, ThemeToggle, cn, showConfirmDialog, toast, toastError, toastInfo, toastSuccess, toastWarning, useMediaQuery, useSelectKeyboard, useTabsContext, useTheme };
@@ -1,6 +1,6 @@
1
1
  import { InputProps } from "@pixpilot/shadcn";
2
2
  import * as React$1 from "react";
3
- import * as react_jsx_runtime9 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/input/Input.d.ts
6
6
  type InputProps$1 = InputProps & {
@@ -10,6 +10,6 @@ type InputProps$1 = InputProps & {
10
10
  prefixClassName?: string;
11
11
  suffixClassName?: string;
12
12
  };
13
- declare function Input$1(props: InputProps$1): react_jsx_runtime9.JSX.Element;
13
+ declare function Input$1(props: InputProps$1): react_jsx_runtime8.JSX.Element;
14
14
  //#endregion
15
15
  export { Input$1 as Input, InputProps$1 as InputProps };
@@ -9,6 +9,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
  //#region src/layout/Layout.tsx
10
10
  const Layout = react.default.forwardRef(({ className, as: Component = "div",...props }, ref) => {
11
11
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
12
+ "data-slot": "layout",
12
13
  ref,
13
14
  className: (0, __pixpilot_shadcn.cn)("flex w-full flex-col overflow-hidden", "h-dvh", "max-h-full", className),
14
15
  ...props
@@ -5,6 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  //#region src/layout/Layout.tsx
6
6
  const Layout = React.forwardRef(({ className, as: Component = "div",...props }, ref) => {
7
7
  return /* @__PURE__ */ jsx(Component, {
8
+ "data-slot": "layout",
8
9
  ref,
9
10
  className: cn("flex w-full flex-col overflow-hidden", "h-dvh", "max-h-full", className),
10
11
  ...props
@@ -8,6 +8,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
8
8
 
9
9
  //#region src/layout/LayoutFooter.tsx
10
10
  const LayoutFooter = react.default.forwardRef(({ className, as: Component = "div",...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
11
+ "data-slot": "layout-footer",
11
12
  ...props,
12
13
  className: (0, __pixpilot_shadcn.cn)(className),
13
14
  ref
@@ -4,6 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/layout/LayoutFooter.tsx
6
6
  const LayoutFooter = React.forwardRef(({ className, as: Component = "div",...props }, ref) => /* @__PURE__ */ jsx(Component, {
7
+ "data-slot": "layout-footer",
7
8
  ...props,
8
9
  className: cn(className),
9
10
  ref
@@ -8,6 +8,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
8
8
 
9
9
  //#region src/layout/LayoutHeader.tsx
10
10
  const LayoutHeader = react.default.forwardRef(({ className, as: Component = "div",...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
11
+ "data-slot": "layout-header",
11
12
  ...props,
12
13
  className: (0, __pixpilot_shadcn.cn)(className),
13
14
  ref
@@ -4,6 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/layout/LayoutHeader.tsx
6
6
  const LayoutHeader = React.forwardRef(({ className, as: Component = "div",...props }, ref) => /* @__PURE__ */ jsx(Component, {
7
+ "data-slot": "layout-header",
7
8
  ...props,
8
9
  className: cn(className),
9
10
  ref
@@ -9,6 +9,7 @@ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
9
9
  //#region src/layout/LayoutMain.tsx
10
10
  const LayoutMain = react.default.forwardRef(({ autoScroll = true, className, as: Component = "div",...props }, ref) => {
11
11
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
12
+ "data-slot": "layout-main",
12
13
  ref,
13
14
  className: (0, __pixpilot_shadcn.cn)("flex-1", { "overflow-auto": autoScroll }, className),
14
15
  ...props
@@ -5,6 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  //#region src/layout/LayoutMain.tsx
6
6
  const LayoutMain = React.forwardRef(({ autoScroll = true, className, as: Component = "div",...props }, ref) => {
7
7
  return /* @__PURE__ */ jsx(Component, {
8
+ "data-slot": "layout-main",
8
9
  ref,
9
10
  className: cn("flex-1", { "overflow-auto": autoScroll }, className),
10
11
  ...props
@@ -1,3 +1,3 @@
1
1
  import { ThemeProvider as ThemeProvider$1, ThemeProviderProps } from "./ThemeProvider.js";
2
- import { useTheme as useTheme$1 } from "next-themes";
3
- export { useTheme$1 as useTheme };
2
+ import { useTheme } from "next-themes";
3
+ export { useTheme };
@@ -1,4 +1,4 @@
1
1
  import { ThemeProvider as ThemeProvider$1 } from "./ThemeProvider.js";
2
- import { useTheme as useTheme$1 } from "next-themes";
2
+ import { useTheme } from "next-themes";
3
3
 
4
- export { useTheme$1 as useTheme };
4
+ export { useTheme };
@@ -0,0 +1,81 @@
1
+ 'use client';
2
+
3
+
4
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
5
+ let __pixpilot_shadcn = require("@pixpilot/shadcn");
6
+ __pixpilot_shadcn = require_rolldown_runtime.__toESM(__pixpilot_shadcn);
7
+ let lucide_react = require("lucide-react");
8
+ lucide_react = require_rolldown_runtime.__toESM(lucide_react);
9
+ let react = require("react");
10
+ react = require_rolldown_runtime.__toESM(react);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
13
+
14
+ //#region src/theme-toggle/ThemeModeDropdown.tsx
15
+ /**
16
+ * Theme mode selector dropdown.
17
+ * Provides Light / Dark / System options.
18
+ * Pure component - requires theme and setTheme props.
19
+ */
20
+ function ThemeModeDropdown(props) {
21
+ const { align = "end", className, theme, setTheme, resolvedTheme, disabled } = props;
22
+ const isDark = resolvedTheme === "dark";
23
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.DropdownMenu, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_shadcn.DropdownMenuTrigger, {
24
+ asChild: true,
25
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.Button, {
26
+ variant: "outline",
27
+ size: "icon",
28
+ className: (0, __pixpilot_shadcn.cn)(className),
29
+ disabled,
30
+ children: [
31
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Sun, { className: (0, __pixpilot_shadcn.cn)("h-[1.2rem] w-[1.2rem] transition-all", isDark ? "scale-0 -rotate-90" : "scale-100 rotate-0") }),
32
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Moon, { className: (0, __pixpilot_shadcn.cn)("absolute h-[1.2rem] w-[1.2rem] transition-all", isDark ? "scale-100 rotate-0" : "scale-0 rotate-90") }),
33
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
34
+ className: "sr-only",
35
+ children: "Toggle theme"
36
+ })
37
+ ]
38
+ })
39
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.DropdownMenuContent, {
40
+ align,
41
+ children: [
42
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.DropdownMenuItem, {
43
+ onClick: () => setTheme?.("light"),
44
+ children: [
45
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Sun, { className: "h-4 w-4 mr-2" }),
46
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47
+ className: "flex-1",
48
+ children: "Light"
49
+ }),
50
+ theme === "light" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Check, { className: "h-4 w-4 ml-2" })
51
+ ]
52
+ }),
53
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.DropdownMenuItem, {
54
+ onClick: () => setTheme?.("dark"),
55
+ children: [
56
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Moon, { className: "h-4 w-4 mr-2" }),
57
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
58
+ className: "flex-1",
59
+ children: "Dark"
60
+ }),
61
+ theme === "dark" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Check, { className: "h-4 w-4 ml-2" })
62
+ ]
63
+ }),
64
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_shadcn.DropdownMenuItem, {
65
+ onClick: () => setTheme?.("system"),
66
+ children: [
67
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Monitor, { className: "h-4 w-4 mr-2" }),
68
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
69
+ className: "flex-1",
70
+ children: "System"
71
+ }),
72
+ theme === "system" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Check, { className: "h-4 w-4 ml-2" })
73
+ ]
74
+ })
75
+ ]
76
+ })] });
77
+ }
78
+ ThemeModeDropdown.displayName = "ThemeModeDropdown";
79
+
80
+ //#endregion
81
+ exports.ThemeModeDropdown = ThemeModeDropdown;
@@ -0,0 +1,25 @@
1
+ import * as react_jsx_runtime10 from "react/jsx-runtime";
2
+
3
+ //#region src/theme-toggle/ThemeModeDropdown.d.ts
4
+ interface ThemeModeDropdownProps {
5
+ align?: 'start' | 'center' | 'end';
6
+ className?: string;
7
+ /** Current theme value ("light" | "dark" | "system") */
8
+ theme?: string;
9
+ /** Function to change the theme */
10
+ setTheme?: (theme: string) => void;
11
+ /** The resolved theme ("light" | "dark") */
12
+ resolvedTheme?: string;
13
+ disabled?: boolean;
14
+ }
15
+ /**
16
+ * Theme mode selector dropdown.
17
+ * Provides Light / Dark / System options.
18
+ * Pure component - requires theme and setTheme props.
19
+ */
20
+ declare function ThemeModeDropdown(props: ThemeModeDropdownProps): react_jsx_runtime10.JSX.Element;
21
+ declare namespace ThemeModeDropdown {
22
+ var displayName: string;
23
+ }
24
+ //#endregion
25
+ export { ThemeModeDropdown, ThemeModeDropdownProps };
@@ -0,0 +1,25 @@
1
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
2
+
3
+ //#region src/theme-toggle/ThemeModeDropdown.d.ts
4
+ interface ThemeModeDropdownProps {
5
+ align?: 'start' | 'center' | 'end';
6
+ className?: string;
7
+ /** Current theme value ("light" | "dark" | "system") */
8
+ theme?: string;
9
+ /** Function to change the theme */
10
+ setTheme?: (theme: string) => void;
11
+ /** The resolved theme ("light" | "dark") */
12
+ resolvedTheme?: string;
13
+ disabled?: boolean;
14
+ }
15
+ /**
16
+ * Theme mode selector dropdown.
17
+ * Provides Light / Dark / System options.
18
+ * Pure component - requires theme and setTheme props.
19
+ */
20
+ declare function ThemeModeDropdown(props: ThemeModeDropdownProps): react_jsx_runtime9.JSX.Element;
21
+ declare namespace ThemeModeDropdown {
22
+ var displayName: string;
23
+ }
24
+ //#endregion
25
+ export { ThemeModeDropdown, ThemeModeDropdownProps };
@@ -0,0 +1,76 @@
1
+ 'use client';
2
+
3
+
4
+ import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, cn } from "@pixpilot/shadcn";
5
+ import { Check, Monitor, Moon, Sun } from "lucide-react";
6
+ import React from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+
9
+ //#region src/theme-toggle/ThemeModeDropdown.tsx
10
+ /**
11
+ * Theme mode selector dropdown.
12
+ * Provides Light / Dark / System options.
13
+ * Pure component - requires theme and setTheme props.
14
+ */
15
+ function ThemeModeDropdown(props) {
16
+ const { align = "end", className, theme, setTheme, resolvedTheme, disabled } = props;
17
+ const isDark = resolvedTheme === "dark";
18
+ return /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(DropdownMenuTrigger, {
19
+ asChild: true,
20
+ children: /* @__PURE__ */ jsxs(Button, {
21
+ variant: "outline",
22
+ size: "icon",
23
+ className: cn(className),
24
+ disabled,
25
+ children: [
26
+ /* @__PURE__ */ jsx(Sun, { className: cn("h-[1.2rem] w-[1.2rem] transition-all", isDark ? "scale-0 -rotate-90" : "scale-100 rotate-0") }),
27
+ /* @__PURE__ */ jsx(Moon, { className: cn("absolute h-[1.2rem] w-[1.2rem] transition-all", isDark ? "scale-100 rotate-0" : "scale-0 rotate-90") }),
28
+ /* @__PURE__ */ jsx("span", {
29
+ className: "sr-only",
30
+ children: "Toggle theme"
31
+ })
32
+ ]
33
+ })
34
+ }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
35
+ align,
36
+ children: [
37
+ /* @__PURE__ */ jsxs(DropdownMenuItem, {
38
+ onClick: () => setTheme?.("light"),
39
+ children: [
40
+ /* @__PURE__ */ jsx(Sun, { className: "h-4 w-4 mr-2" }),
41
+ /* @__PURE__ */ jsx("span", {
42
+ className: "flex-1",
43
+ children: "Light"
44
+ }),
45
+ theme === "light" && /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 ml-2" })
46
+ ]
47
+ }),
48
+ /* @__PURE__ */ jsxs(DropdownMenuItem, {
49
+ onClick: () => setTheme?.("dark"),
50
+ children: [
51
+ /* @__PURE__ */ jsx(Moon, { className: "h-4 w-4 mr-2" }),
52
+ /* @__PURE__ */ jsx("span", {
53
+ className: "flex-1",
54
+ children: "Dark"
55
+ }),
56
+ theme === "dark" && /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 ml-2" })
57
+ ]
58
+ }),
59
+ /* @__PURE__ */ jsxs(DropdownMenuItem, {
60
+ onClick: () => setTheme?.("system"),
61
+ children: [
62
+ /* @__PURE__ */ jsx(Monitor, { className: "h-4 w-4 mr-2" }),
63
+ /* @__PURE__ */ jsx("span", {
64
+ className: "flex-1",
65
+ children: "System"
66
+ }),
67
+ theme === "system" && /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 ml-2" })
68
+ ]
69
+ })
70
+ ]
71
+ })] });
72
+ }
73
+ ThemeModeDropdown.displayName = "ThemeModeDropdown";
74
+
75
+ //#endregion
76
+ export { ThemeModeDropdown };