@mbao01/common 0.0.4 → 0.0.6
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/README.md +1 -2
- package/dist/types/components/Badge/Badge.d.ts +1 -1
- package/dist/types/components/Badge/constants.d.ts +5 -5
- package/dist/types/components/Badge/types.d.ts +3 -7
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +3 -0
- package/dist/types/components/Breadcrumbs/index.d.ts +1 -0
- package/dist/types/components/Breadcrumbs/types.d.ts +2 -0
- package/dist/types/components/Button/Button.d.ts +11 -2
- package/dist/types/components/Button/constants.d.ts +7 -8
- package/dist/types/components/Button/types.d.ts +6 -12
- package/dist/types/components/Card/Card.d.ts +10 -8
- package/dist/types/components/Card/constants.d.ts +6 -0
- package/dist/types/components/Card/types.d.ts +3 -18
- package/dist/types/components/Description/Description.d.ts +7 -0
- package/dist/types/components/Description/index.d.ts +1 -0
- package/dist/types/components/Description/types.d.ts +3 -0
- package/dist/types/components/Loading/Loading.d.ts +2 -0
- package/dist/types/components/Loading/constants.d.ts +5 -0
- package/dist/types/components/Loading/index.d.ts +1 -0
- package/dist/types/components/Loading/types.d.ts +3 -0
- package/dist/types/components/Skeleton/Skeleton.d.ts +2 -0
- package/dist/types/components/Skeleton/constants.d.ts +6 -0
- package/dist/types/components/Skeleton/index.d.ts +1 -0
- package/dist/types/components/Skeleton/types.d.ts +3 -0
- package/dist/types/components/Text/Text.d.ts +2 -4
- package/dist/types/components/Text/constants.d.ts +4 -5
- package/dist/types/components/Text/types.d.ts +4 -9
- package/dist/types/components/Tooltip/Tooltip.d.ts +14 -2
- package/dist/types/components/Tooltip/constants.d.ts +6 -5
- package/dist/types/components/Tooltip/index.d.ts +1 -1
- package/dist/types/components/Tooltip/types.d.ts +5 -10
- package/dist/types/index.d.ts +9 -2
- package/dist/types/libs/cva.d.ts +1 -0
- package/dist/types/libs/index.d.ts +1 -0
- package/dist/types/utilities/cn.d.ts +2 -0
- package/dist/types/utilities/getSubpaths/getSubpaths.d.ts +6 -0
- package/dist/types/utilities/getSubpaths/index.d.ts +1 -0
- package/dist/types/utilities/index.d.ts +2 -0
- package/package.json +12 -5
- package/plugin.js +1 -3
- package/src/components/Badge/Badge.tsx +4 -14
- package/src/components/Badge/constants.ts +28 -30
- package/src/components/Badge/types.ts +4 -17
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +13 -0
- package/src/components/Breadcrumbs/index.ts +1 -0
- package/src/components/Breadcrumbs/types.ts +3 -0
- package/src/components/Button/Button.tsx +51 -37
- package/src/components/Button/constants.ts +39 -43
- package/src/components/Button/types.ts +7 -25
- package/src/components/Card/Card.tsx +16 -23
- package/src/components/Card/constants.ts +22 -0
- package/src/components/Card/types.ts +4 -18
- package/src/components/Description/Description.tsx +34 -0
- package/src/components/Description/index.ts +1 -0
- package/src/components/Description/types.ts +5 -0
- package/src/components/Loading/Loading.tsx +18 -0
- package/src/components/Loading/constants.ts +30 -0
- package/src/components/Loading/index.ts +1 -0
- package/src/components/Loading/types.ts +5 -0
- package/src/components/Skeleton/Skeleton.tsx +22 -0
- package/src/components/Skeleton/constants.ts +40 -0
- package/src/components/Skeleton/index.ts +1 -0
- package/src/components/Skeleton/types.ts +5 -0
- package/src/components/Text/Text.tsx +24 -9
- package/src/components/Text/constants.ts +26 -28
- package/src/components/Text/types.ts +9 -20
- package/src/components/Tooltip/Tooltip.tsx +36 -11
- package/src/components/Tooltip/constants.ts +32 -31
- package/src/components/Tooltip/index.ts +1 -1
- package/src/components/Tooltip/types.ts +13 -22
- package/src/index.ts +12 -2
- package/src/libs/cva.ts +1 -0
- package/src/libs/index.ts +1 -0
- package/src/utilities/cn.ts +6 -0
- package/src/utilities/getSubpaths/getSubpaths.ts +34 -0
- package/src/utilities/getSubpaths/index.ts +1 -0
- package/src/utilities/index.ts +2 -0
- package/vitest-setup.ts +11 -1
- package/dist/types/components/Detail/Detail.d.ts +0 -2
- package/dist/types/components/Detail/index.d.ts +0 -1
- package/dist/types/components/Detail/types.d.ts +0 -5
- package/src/components/Detail/Detail.tsx +0 -10
- package/src/components/Detail/index.ts +0 -1
- package/src/components/Detail/types.ts +0 -6
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
1
|
+
import React from "react";
|
|
2
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3
|
+
import type { TooltipArrowProps, TooltipContentProps } from "./types";
|
|
4
|
+
import { getTooltipArrowClasses, getTooltipContentClasses } from "./constants";
|
|
5
|
+
import { cn } from "../../utilities";
|
|
6
|
+
|
|
7
|
+
const Tooltip = (props: TooltipPrimitive.TooltipProps) => (
|
|
8
|
+
<TooltipPrimitive.Root {...props} />
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
const TooltipArrow = ({ className, variant, ...props }: TooltipArrowProps) => (
|
|
12
|
+
<TooltipPrimitive.Arrow
|
|
13
|
+
className={cn(getTooltipArrowClasses({ variant }), className)}
|
|
14
|
+
{...props}
|
|
15
|
+
/>
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const TooltipContent = React.forwardRef<
|
|
19
|
+
React.ElementRef<typeof TooltipPrimitive.Content>,
|
|
20
|
+
TooltipContentProps
|
|
21
|
+
>(({ className, variant, ...props }, ref) => (
|
|
22
|
+
<TooltipPrimitive.Content
|
|
23
|
+
ref={ref}
|
|
24
|
+
className={cn(getTooltipContentClasses({ variant }), className)}
|
|
25
|
+
{...props}
|
|
26
|
+
/>
|
|
27
|
+
));
|
|
28
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
29
|
+
|
|
30
|
+
Tooltip.Content = TooltipContent;
|
|
31
|
+
Tooltip.Arrow = TooltipArrow;
|
|
32
|
+
Tooltip.Portal = TooltipPrimitive.Portal;
|
|
33
|
+
Tooltip.Provider = TooltipPrimitive.Provider;
|
|
34
|
+
Tooltip.Trigger = TooltipPrimitive.Trigger;
|
|
35
|
+
|
|
36
|
+
export { Tooltip };
|
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { TooltipPosition, TooltipVariant } from "./types";
|
|
1
|
+
import { cva } from "../../libs";
|
|
3
2
|
|
|
4
|
-
const
|
|
5
|
-
top:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
export const getTooltipContentClasses = cva(
|
|
4
|
+
"bg-base-200 text-base-content z-50 overflow-hidden rounded-md px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
5
|
+
{
|
|
6
|
+
variants: {
|
|
7
|
+
variant: {
|
|
8
|
+
primary: "bg-primary text-primary-content",
|
|
9
|
+
secondary: "bg-secondary text-secondary-content",
|
|
10
|
+
accent: "bg-accent text-accent-content",
|
|
11
|
+
neutral: "bg-neutral text-neutral-content",
|
|
12
|
+
info: "bg-info text-info-content",
|
|
13
|
+
success: "bg-success text-success-content",
|
|
14
|
+
warning: "bg-warning text-warning-content",
|
|
15
|
+
error: "bg-error text-error-content",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
}
|
|
19
|
+
);
|
|
10
20
|
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const getTooltipClasses = ({
|
|
26
|
-
variant,
|
|
27
|
-
position,
|
|
28
|
-
}: {
|
|
29
|
-
variant?: TooltipVariant;
|
|
30
|
-
position?: TooltipPosition;
|
|
31
|
-
}) => {
|
|
32
|
-
return c("tooltip", TOOLTIP_VARIANTS[variant!], TOOLTIP_POSITION[position!]);
|
|
33
|
-
};
|
|
21
|
+
export const getTooltipArrowClasses = cva("fill-base-200", {
|
|
22
|
+
variants: {
|
|
23
|
+
variant: {
|
|
24
|
+
primary: "fill-primary",
|
|
25
|
+
secondary: "fill-secondary",
|
|
26
|
+
accent: "fill-accent",
|
|
27
|
+
neutral: "fill-neutral",
|
|
28
|
+
info: "fill-info",
|
|
29
|
+
success: "fill-success",
|
|
30
|
+
warning: "fill-warning",
|
|
31
|
+
error: "fill-error",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Tooltip } from
|
|
1
|
+
export { Tooltip } from "./Tooltip";
|
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type VariantProps } from "../../libs";
|
|
2
|
+
import { getTooltipArrowClasses, getTooltipContentClasses } from "./constants";
|
|
3
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
2
4
|
|
|
3
|
-
export type
|
|
5
|
+
export type TooltipArrowProps = React.HTMLAttributes<
|
|
6
|
+
React.ElementRef<typeof TooltipPrimitive.Arrow>
|
|
7
|
+
> &
|
|
8
|
+
TooltipPrimitive.TooltipArrowProps &
|
|
9
|
+
VariantProps<typeof getTooltipArrowClasses>;
|
|
4
10
|
|
|
5
|
-
export type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
| 'accent'
|
|
11
|
-
| 'ghost'
|
|
12
|
-
| 'link'
|
|
13
|
-
| 'info'
|
|
14
|
-
| 'success'
|
|
15
|
-
| 'warning'
|
|
16
|
-
| 'error';
|
|
17
|
-
|
|
18
|
-
export type TooltipProps = {
|
|
19
|
-
tip: string;
|
|
20
|
-
children: ReactNode;
|
|
21
|
-
variant?: TooltipVariant;
|
|
22
|
-
position?: TooltipPosition;
|
|
23
|
-
className?: string;
|
|
24
|
-
};
|
|
11
|
+
export type TooltipContentProps = React.HTMLAttributes<
|
|
12
|
+
React.ElementRef<typeof TooltipPrimitive.Content>
|
|
13
|
+
> &
|
|
14
|
+
TooltipPrimitive.TooltipContentProps &
|
|
15
|
+
VariantProps<typeof getTooltipContentClasses>;
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/** actions */
|
|
2
2
|
export * from "./components/Button";
|
|
3
|
+
export * from "./components/Breadcrumbs";
|
|
4
|
+
|
|
5
|
+
/** data display */
|
|
6
|
+
export * from "./components/Badge";
|
|
3
7
|
export * from "./components/Card";
|
|
4
|
-
export * from "./components/
|
|
8
|
+
export * from "./components/Description";
|
|
5
9
|
export * from "./components/Text";
|
|
10
|
+
|
|
11
|
+
/** data input */
|
|
12
|
+
|
|
13
|
+
/** feedback */
|
|
14
|
+
export * from "./components/Loading";
|
|
15
|
+
export * from "./components/Skeleton";
|
|
6
16
|
export * from "./components/Tooltip";
|
package/src/libs/cva.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { cva, type VariantProps } from "class-variance-authority";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { cva, type VariantProps } from "./cva";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const PATH_SEPARATOR = "/";
|
|
2
|
+
|
|
3
|
+
const createPathObject = (
|
|
4
|
+
segment: string,
|
|
5
|
+
pathname: string,
|
|
6
|
+
pathLabels?: Record<string, string>
|
|
7
|
+
) => ({
|
|
8
|
+
href: { pathname },
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
10
|
+
label: pathLabels?.[pathname] || segment, // always fallback to segment if label does not exist
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export const getSubpaths = (
|
|
14
|
+
pathname: string,
|
|
15
|
+
pathLabels?: Record<string, string> | undefined,
|
|
16
|
+
includeRoot?: boolean
|
|
17
|
+
) => {
|
|
18
|
+
const segments = pathname?.split(PATH_SEPARATOR).filter(Boolean);
|
|
19
|
+
|
|
20
|
+
const breadcrumbs = segments.map((segment, index) => {
|
|
21
|
+
const path = `${PATH_SEPARATOR}${segments
|
|
22
|
+
.slice(0, index + 1)
|
|
23
|
+
.join(PATH_SEPARATOR)}`;
|
|
24
|
+
|
|
25
|
+
return createPathObject(segment, path, pathLabels);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
if (includeRoot) {
|
|
29
|
+
const ROOT_PATH = PATH_SEPARATOR;
|
|
30
|
+
breadcrumbs.unshift(createPathObject("", ROOT_PATH, pathLabels));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return breadcrumbs;
|
|
34
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getSubpaths } from "./getSubpaths";
|
package/vitest-setup.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
import { afterEach } from "vitest";
|
|
1
|
+
import { afterEach, vi } from "vitest";
|
|
2
2
|
import { cleanup } from "@testing-library/react";
|
|
3
3
|
import "@testing-library/jest-dom/vitest";
|
|
4
4
|
|
|
5
|
+
// Mock the ResizeObserver
|
|
6
|
+
const ResizeObserverMock = vi.fn(() => ({
|
|
7
|
+
observe: vi.fn(),
|
|
8
|
+
unobserve: vi.fn(),
|
|
9
|
+
disconnect: vi.fn(),
|
|
10
|
+
}));
|
|
11
|
+
|
|
12
|
+
// Stub the global ResizeObserver
|
|
13
|
+
vi.stubGlobal("ResizeObserver", ResizeObserverMock);
|
|
14
|
+
|
|
5
15
|
// runs a cleanup after each test case (e.g. clearing jsdom)
|
|
6
16
|
afterEach(() => {
|
|
7
17
|
cleanup();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Detail } from './Detail';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Detail } from './Detail';
|