@kadoui/react 1.0.0 → 1.0.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.
Files changed (179) hide show
  1. package/README.md +1 -0
  2. package/dist/components/AccessNavigation/AccessNavigation.d.ts.map +1 -1
  3. package/dist/components/AccessNavigation/AccessNavigation.jsx +1 -1
  4. package/dist/components/Accordion/AccordionBody.jsx +1 -1
  5. package/dist/components/Affix/Affix.jsx +1 -1
  6. package/dist/components/Breadcrumbs/BreadcrumbsItem.jsx +1 -1
  7. package/dist/components/Breadcrumbs/BreadcrumbsRoot.jsx +1 -1
  8. package/dist/components/Carousel/CarouselContainer.jsx +1 -1
  9. package/dist/components/Carousel/CarouselRoot.jsx +1 -1
  10. package/dist/components/ContextMenu/ContextMenuContent.d.ts.map +1 -1
  11. package/dist/components/ContextMenu/ContextMenuContent.jsx +2 -1
  12. package/dist/components/ContextMenu/ContextMenuRoot.d.ts.map +1 -1
  13. package/dist/components/ContextMenu/ContextMenuRoot.jsx +1 -1
  14. package/dist/components/Drawer/DrawerBody.jsx +1 -1
  15. package/dist/components/Drawer/DrawerPortal.jsx +1 -1
  16. package/dist/components/Drawer/DrawerRoot.jsx +1 -1
  17. package/dist/components/Dropdown/DropdownMenu.d.ts.map +1 -1
  18. package/dist/components/Dropdown/DropdownMenu.jsx +1 -1
  19. package/dist/components/Dropdown/DropdownRoot.d.ts.map +1 -1
  20. package/dist/components/Dropdown/DropdownRoot.jsx +2 -1
  21. package/dist/components/LinkLoader/LinkLoader.jsx +1 -1
  22. package/dist/components/Modal/ModalBody.jsx +1 -1
  23. package/dist/components/Modal/ModalContent.jsx +1 -1
  24. package/dist/components/Modal/ModalHeader.jsx +1 -1
  25. package/dist/components/Modal/ModalPortal.jsx +1 -1
  26. package/dist/components/Modal/ModalRoot.d.ts.map +1 -1
  27. package/dist/components/Modal/ModalRoot.jsx +1 -1
  28. package/dist/components/Otp/OtpInputs.jsx +1 -1
  29. package/dist/components/Otp/OtpRoot.jsx +1 -1
  30. package/dist/components/Progress/ProgressBar.jsx +1 -1
  31. package/dist/components/Progress/ProgressRoot.jsx +1 -1
  32. package/dist/components/Rating/RatingItems.jsx +1 -1
  33. package/dist/components/Rating/RatingRoot.jsx +1 -1
  34. package/dist/components/Sheet/SheetBody.jsx +1 -1
  35. package/dist/components/Sheet/SheetContent.jsx +1 -1
  36. package/dist/components/Sheet/SheetHeader.jsx +1 -1
  37. package/dist/components/Sheet/SheetPortal.jsx +1 -1
  38. package/dist/components/ShowMore/ShowMoreContent.jsx +1 -1
  39. package/dist/components/ShowMore/ShowMoreFade.jsx +1 -1
  40. package/dist/components/ShowMore/ShowMoreRoot.jsx +1 -1
  41. package/dist/components/ShowMore/ShowMoreTrigger.jsx +1 -1
  42. package/dist/components/Slide/SlideContent.jsx +1 -1
  43. package/dist/components/Slide/SlideHeader.jsx +1 -1
  44. package/dist/components/Slide/SlidePortal.jsx +1 -1
  45. package/dist/components/Spoiler/Spoiler.jsx +1 -1
  46. package/dist/components/Steps/StepsControls.jsx +1 -1
  47. package/dist/components/Tabs/TabsList.jsx +1 -1
  48. package/dist/components/Tabs/TabsPanel.jsx +1 -1
  49. package/dist/components/Toast/ToastBox.jsx +1 -1
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +5 -0
  53. package/dist/utils/browser.d.ts +3 -0
  54. package/dist/utils/browser.d.ts.map +1 -0
  55. package/dist/utils/browser.js +21 -0
  56. package/dist/utils/cn.d.ts +3 -0
  57. package/dist/utils/cn.d.ts.map +1 -0
  58. package/dist/utils/cn.js +3 -0
  59. package/dist/utils/form.d.ts +2 -0
  60. package/dist/utils/form.d.ts.map +1 -0
  61. package/dist/utils/form.js +8 -0
  62. package/package.json +4 -3
  63. package/src/components/AccessNavigation/AccessNavigation.tsx +0 -46
  64. package/src/components/Accordion/Accordion.ts +0 -8
  65. package/src/components/Accordion/AccordionBody.tsx +0 -31
  66. package/src/components/Accordion/AccordionContext.ts +0 -8
  67. package/src/components/Accordion/AccordionRoot.tsx +0 -17
  68. package/src/components/Accordion/AccordionToggle.tsx +0 -29
  69. package/src/components/Affix/Affix.tsx +0 -59
  70. package/src/components/Breadcrumbs/Breadcrumbs.ts +0 -6
  71. package/src/components/Breadcrumbs/BreadcrumbsContext.ts +0 -7
  72. package/src/components/Breadcrumbs/BreadcrumbsItem.tsx +0 -24
  73. package/src/components/Breadcrumbs/BreadcrumbsRoot.tsx +0 -21
  74. package/src/components/Carousel/Carousel.ts +0 -6
  75. package/src/components/Carousel/CarouselContainer.tsx +0 -18
  76. package/src/components/Carousel/CarouselContext.ts +0 -7
  77. package/src/components/Carousel/CarouselRoot.tsx +0 -75
  78. package/src/components/ClientOnly/ClientOnly.tsx +0 -12
  79. package/src/components/Clipboard/Clipboard.tsx +0 -36
  80. package/src/components/ContextMenu/ContextMenu.ts +0 -6
  81. package/src/components/ContextMenu/ContextMenuContent.tsx +0 -51
  82. package/src/components/ContextMenu/ContextMenuContext.ts +0 -9
  83. package/src/components/ContextMenu/ContextMenuRoot.tsx +0 -79
  84. package/src/components/Drawer/Drawer.ts +0 -10
  85. package/src/components/Drawer/DrawerBody.tsx +0 -67
  86. package/src/components/Drawer/DrawerContext.ts +0 -8
  87. package/src/components/Drawer/DrawerPortal.tsx +0 -40
  88. package/src/components/Drawer/DrawerRoot.tsx +0 -45
  89. package/src/components/Drawer/DrawerToggle.tsx +0 -21
  90. package/src/components/Dropdown/Dropdown.ts +0 -8
  91. package/src/components/Dropdown/DropdownContext.ts +0 -10
  92. package/src/components/Dropdown/DropdownMenu.tsx +0 -34
  93. package/src/components/Dropdown/DropdownRoot.tsx +0 -90
  94. package/src/components/Dropdown/DropdownToggle.tsx +0 -23
  95. package/src/components/LinkLoader/LinkLoader.tsx +0 -16
  96. package/src/components/Modal/Modal.ts +0 -14
  97. package/src/components/Modal/ModalBody.tsx +0 -12
  98. package/src/components/Modal/ModalContent.tsx +0 -44
  99. package/src/components/Modal/ModalContext.ts +0 -8
  100. package/src/components/Modal/ModalHeader.tsx +0 -10
  101. package/src/components/Modal/ModalPortal.tsx +0 -40
  102. package/src/components/Modal/ModalRoot.tsx +0 -47
  103. package/src/components/Modal/ModalTrigger.tsx +0 -21
  104. package/src/components/Otp/Otp.ts +0 -8
  105. package/src/components/Otp/OtpContext.ts +0 -10
  106. package/src/components/Otp/OtpHiddenInput.tsx +0 -15
  107. package/src/components/Otp/OtpInputs.tsx +0 -86
  108. package/src/components/Otp/OtpRoot.tsx +0 -26
  109. package/src/components/Pagination/Pagination.ts +0 -15
  110. package/src/components/Pagination/PaginationContext.tsx +0 -10
  111. package/src/components/Pagination/PaginationCounts.tsx +0 -17
  112. package/src/components/Pagination/PaginationNextBtn.tsx +0 -27
  113. package/src/components/Pagination/PaginationPrevBtn.tsx +0 -27
  114. package/src/components/Pagination/PaginationSearchParamsRoot.tsx +0 -45
  115. package/src/components/Pagination/PaginationStateRoot.tsx +0 -23
  116. package/src/components/PasswordInput/PasswordInput.ts +0 -8
  117. package/src/components/PasswordInput/PasswordInputContext.tsx +0 -8
  118. package/src/components/PasswordInput/PasswordInputField.tsx +0 -15
  119. package/src/components/PasswordInput/PasswordInputRoot.tsx +0 -17
  120. package/src/components/PasswordInput/PasswordInputToggle.tsx +0 -52
  121. package/src/components/Portal/Portal.tsx +0 -17
  122. package/src/components/Progress/Progress.ts +0 -6
  123. package/src/components/Progress/ProgressBar.tsx +0 -29
  124. package/src/components/Progress/ProgressContext.ts +0 -8
  125. package/src/components/Progress/ProgressRoot.tsx +0 -22
  126. package/src/components/QrCode/QrCode.tsx +0 -22
  127. package/src/components/Rating/Rating.ts +0 -6
  128. package/src/components/Rating/RatingContext.ts +0 -8
  129. package/src/components/Rating/RatingItems.tsx +0 -50
  130. package/src/components/Rating/RatingRoot.tsx +0 -22
  131. package/src/components/Sheet/Sheet.tsx +0 -14
  132. package/src/components/Sheet/SheetBody.tsx +0 -49
  133. package/src/components/Sheet/SheetContent.tsx +0 -8
  134. package/src/components/Sheet/SheetContext.ts +0 -14
  135. package/src/components/Sheet/SheetHeader.tsx +0 -24
  136. package/src/components/Sheet/SheetPortal.tsx +0 -35
  137. package/src/components/Sheet/SheetRoot.tsx +0 -56
  138. package/src/components/Sheet/SheetToggle.tsx +0 -21
  139. package/src/components/ShowMore/ShowMore.ts +0 -10
  140. package/src/components/ShowMore/ShowMoreContent.tsx +0 -31
  141. package/src/components/ShowMore/ShowMoreContext.ts +0 -11
  142. package/src/components/ShowMore/ShowMoreFade.tsx +0 -18
  143. package/src/components/ShowMore/ShowMoreRoot.tsx +0 -37
  144. package/src/components/ShowMore/ShowMoreTrigger.tsx +0 -23
  145. package/src/components/Slide/Slide.ts +0 -12
  146. package/src/components/Slide/SlideContent.tsx +0 -8
  147. package/src/components/Slide/SlideContext.ts +0 -11
  148. package/src/components/Slide/SlideHeader.tsx +0 -10
  149. package/src/components/Slide/SlidePortal.tsx +0 -26
  150. package/src/components/Slide/SlideRoot.tsx +0 -39
  151. package/src/components/Slide/SlideToggle.tsx +0 -21
  152. package/src/components/Spoiler/Spoiler.tsx +0 -28
  153. package/src/components/Steps/Steps.ts +0 -15
  154. package/src/components/Steps/StepsContext.tsx +0 -16
  155. package/src/components/Steps/StepsControls.tsx +0 -56
  156. package/src/components/Steps/StepsNextBtn.tsx +0 -27
  157. package/src/components/Steps/StepsPrevBtn.tsx +0 -27
  158. package/src/components/Steps/StepsSearchParamsRoot.tsx +0 -45
  159. package/src/components/Steps/StepsStateRoot.tsx +0 -23
  160. package/src/components/Swap/Swap.ts +0 -8
  161. package/src/components/Swap/SwapContext.ts +0 -9
  162. package/src/components/Swap/SwapItem.tsx +0 -16
  163. package/src/components/Swap/SwapRoot.tsx +0 -29
  164. package/src/components/Swap/SwapTrigger.tsx +0 -31
  165. package/src/components/Tabs/Tabs.ts +0 -10
  166. package/src/components/Tabs/TabsContext.ts +0 -11
  167. package/src/components/Tabs/TabsList.tsx +0 -12
  168. package/src/components/Tabs/TabsPanel.tsx +0 -23
  169. package/src/components/Tabs/TabsRoot.tsx +0 -18
  170. package/src/components/Tabs/TabsTab.tsx +0 -23
  171. package/src/components/Toast/Toast.ts +0 -3
  172. package/src/components/Toast/ToastBox.tsx +0 -50
  173. package/src/components/Toast/ToastRoot.tsx +0 -71
  174. package/src/components/Toast/toastStore.ts +0 -22
  175. package/src/components/Toggle/Toggle.ts +0 -6
  176. package/src/components/Toggle/ToggleContext.ts +0 -9
  177. package/src/components/Toggle/ToggleRoot.tsx +0 -26
  178. package/src/components/Toggle/ToggleSwitch.tsx +0 -41
  179. package/src/index.ts +0 -28
@@ -1,50 +0,0 @@
1
- import { cn } from "@kadoui/utils";
2
- import { CheckIcon, CircleAlertIcon, TriangleAlertIcon, XIcon } from "lucide-react";
3
-
4
- import { ToastT } from "./ToastRoot";
5
-
6
- export type ToastBoxPropsT = {
7
- toast: ToastT;
8
- }
9
-
10
- export function ToastBox({ toast }: ToastBoxPropsT) {
11
- let toastIcon = null;
12
-
13
- switch (toast.status) {
14
- case "info": {
15
- toastIcon = <CircleAlertIcon className="toast-icon-info" />;
16
- break;
17
- }
18
-
19
- case "success": {
20
- toastIcon = <CheckIcon className="toast-icon-success" />;
21
- break;
22
- }
23
-
24
- case "warning": {
25
- toastIcon = <TriangleAlertIcon className="toast-icon-warning" />;
26
- break;
27
- }
28
-
29
- case "error": {
30
- toastIcon = <XIcon className="toast-icon-error" />;
31
- break;
32
- }
33
-
34
- default: {
35
- toastIcon = null;
36
- break;
37
- }
38
- }
39
-
40
- return (
41
- <div className={cn(
42
- toast.variant || "toast-fill",
43
- toast.size
44
- )}>
45
- {toastIcon}
46
- {toast.data}
47
- {toast.action}
48
- </div>
49
- )
50
- }
@@ -1,71 +0,0 @@
1
- "use client";
2
-
3
- import { createPortal } from "react-dom";
4
- import { useMounted } from "@mantine/hooks";
5
- import { ReactNode, useEffect } from "react";
6
- import { motion, AnimatePresence } from "framer-motion";
7
-
8
- import { ToastBox } from "./ToastBox";
9
- import { useToastStore } from "./toastStore";
10
-
11
- export type ToastT = {
12
- id: string;
13
- data: ReactNode;
14
- status?: "info" | "success" | "warning" | "error";
15
- variant?: "toast-fill" | "toast-glass";
16
- size?: "toast-sm" | "toast-lg";
17
- action?: ReactNode;
18
- duration?: number;
19
- };
20
-
21
- export type ToastRootT = {
22
- defaultDuration?: ToastT["duration"];
23
- }
24
-
25
- export function ToastRoot({ defaultDuration }: ToastRootT) {
26
- const mounted = useMounted();
27
-
28
- const toasts = useToastStore(store => store.toasts);
29
- const remove = useToastStore(store => store.remove);
30
-
31
- useEffect(() => {
32
- if (!toasts.length) {
33
- return;
34
- };
35
-
36
- const lastToast = toasts[toasts.length - 1];
37
-
38
- if (lastToast) {
39
- const duration = lastToast?.duration || defaultDuration || 2_000;
40
-
41
- setTimeout(() => {
42
- remove(lastToast.id);
43
- }, duration);
44
- }
45
- }, [toasts]);
46
-
47
- if (!mounted) {
48
- return null;
49
- };
50
-
51
- return createPortal(
52
- <>
53
- <div className="max-h-screen py-3 space-y-3 fixed top-0 left-center w-fit">
54
- <AnimatePresence>
55
- {toasts.toReversed().map(item => (
56
- <motion.div
57
- key={item.id}
58
- className="origin-top"
59
- initial={{ opacity: 0, y: -10, scale: 0 }}
60
- animate={{ opacity: 1, y: 0, scale: 1 }}
61
- exit={{ opacity: 0, y: -10, scale: 0 }}
62
- >
63
- <ToastBox toast={item} />
64
- </motion.div>
65
- ))}
66
- </AnimatePresence>
67
- </div>
68
- </>,
69
- document.body
70
- )
71
- }
@@ -1,22 +0,0 @@
1
- import { nanoid } from "nanoid";
2
- import { create } from "zustand";
3
-
4
- import { ToastT } from "./ToastRoot";
5
-
6
- type NewToastT = Omit<ToastT, "id">;
7
-
8
- type UseToastStoreT = {
9
- toasts: ToastT[];
10
- add: (newToast: NewToastT) => void;
11
- remove: (id: ToastT["id"]) => void;
12
- };
13
-
14
- export const useToastStore = create<UseToastStoreT>((set) => ({
15
- toasts: [],
16
- add: (newToast) => set(prev => ({ toasts: [...prev.toasts, { id: nanoid(), ...newToast }] })),
17
- remove: id => set(prev => ({ toasts: prev.toasts.filter(item => item.id !== id) })),
18
- }));
19
-
20
- export const addToast = (newToast: NewToastT) => {
21
- useToastStore.getState().add(newToast);
22
- }
@@ -1,6 +0,0 @@
1
- import { ToggleRoot } from "./ToggleRoot";
2
- import { ToggleSwitch } from "./ToggleSwitch";
3
-
4
- export const Toggle = Object.assign(ToggleRoot, {
5
- Switch: ToggleSwitch
6
- });
@@ -1,9 +0,0 @@
1
- import { createContext, Dispatch, SetStateAction } from "react";
2
-
3
- export type ToggleContextT = {
4
- isToggled: boolean;
5
- setToggled: Dispatch<SetStateAction<boolean>>;
6
- disabled?: boolean;
7
- }
8
-
9
- export const ToggleContext = createContext<ToggleContextT>({} as ToggleContextT);
@@ -1,26 +0,0 @@
1
- "use client";
2
-
3
- import { PropsWithChildren, useState } from "react"
4
-
5
- import { ToggleContext } from "./ToggleContext";
6
-
7
- export type ToggleRootPropsT = PropsWithChildren & {
8
- defaultToggled?: boolean;
9
- onChange?: (toggled: boolean) => void;
10
- disabled?: boolean;
11
- }
12
-
13
- export function ToggleRoot({ children, defaultToggled = false, disabled = false, onChange }: ToggleRootPropsT) {
14
- const [isToggled, setToggled] = useState(defaultToggled)
15
-
16
- const handleToggle = (newValue: boolean) => {
17
- setToggled(newValue);
18
- onChange?.(newValue);
19
- }
20
-
21
- return (
22
- <ToggleContext value={{ isToggled, disabled, setToggled: () => handleToggle }}>
23
- {children}
24
- </ToggleContext>
25
- )
26
- }
@@ -1,41 +0,0 @@
1
- "use client";
2
-
3
- import { HTMLAttributes, use } from "react";
4
-
5
- import { ToggleContext } from "./ToggleContext";
6
-
7
- export type ToggleSwitchPropsT = HTMLAttributes<HTMLButtonElement>;
8
-
9
- export function ToggleSwitch({ onClick, ...p }: ToggleSwitchPropsT) {
10
- const { isToggled, setToggled, disabled } = use(ToggleContext)
11
-
12
- const handleClick = (ev: React.MouseEvent<HTMLButtonElement>) => {
13
- if (!disabled) {
14
- onClick?.(ev);
15
- setToggled(!isToggled);
16
- }
17
- }
18
-
19
- const handleKeyDown = (ev: React.KeyboardEvent<HTMLButtonElement>) => {
20
- if ((ev.key === " " || ev.key === "Enter") && !disabled) {
21
- ev.preventDefault();
22
- setToggled(!isToggled);
23
- }
24
- }
25
-
26
- return (
27
- <button
28
- type="button"
29
- role="switch"
30
- disabled={disabled}
31
- onClick={handleClick}
32
- aria-checked={isToggled}
33
- onKeyDown={handleKeyDown}
34
- {...p}
35
- >
36
- <span className={isToggled ? "toggle-track-on" : "toggle-track-off"}>
37
- <span className={isToggled ? "toggle-thumb-on" : "toggle-thumb-off"} />
38
- </span>
39
- </button>
40
- )
41
- }
package/src/index.ts DELETED
@@ -1,28 +0,0 @@
1
- export * from "./components/AccessNavigation/AccessNavigation";
2
- export * from "./components/Accordion/Accordion";
3
- export * from "./components/Affix/Affix";
4
- export * from "./components/Breadcrumbs/Breadcrumbs";
5
- export * from "./components/Carousel/Carousel";
6
- export * from "./components/ClientOnly/ClientOnly";
7
- export * from "./components/Clipboard/Clipboard";
8
- export * from "./components/ContextMenu/ContextMenu";
9
- export * from "./components/Drawer/Drawer";
10
- export * from "./components/Dropdown/Dropdown";
11
- export * from "./components/LinkLoader/LinkLoader";
12
- export * from "./components/Modal/Modal";
13
- export * from "./components/Otp/Otp";
14
- export * from "./components/Pagination/Pagination";
15
- export * from "./components/PasswordInput/PasswordInput";
16
- export * from "./components/Portal/Portal";
17
- export * from "./components/Progress/Progress";
18
- export * from "./components/QrCode/QrCode";
19
- export * from "./components/Rating/Rating";
20
- export * from "./components/Sheet/Sheet";
21
- export * from "./components/ShowMore/ShowMore";
22
- export * from "./components/Slide/Slide";
23
- export * from "./components/Spoiler/Spoiler";
24
- export * from "./components/Steps/Steps";
25
- export * from "./components/Swap/Swap";
26
- export * from "./components/Tabs/Tabs";
27
- export * from "./components/Toast/Toast";
28
- export * from "./components/Toggle/Toggle";