Skip to content

Commit 75932c9

Browse files
committed
Merge branch 'develop' into feat/text-editor-migrate
2 parents 7aed4ee + 73cb94d commit 75932c9

13 files changed

Lines changed: 203 additions & 2 deletions

File tree

packages/frappe-ui-react/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,21 @@
4242
"@headlessui/react": "^2.2.9",
4343
"@popperjs/core": "^2.11.8",
4444
"@tailwindcss/typography": "^0.5.19",
45+
"@tiptap/extension-blockquote": "^3.17.1",
4546
"@tiptap/extension-code-block-lowlight": "^3.17.1",
4647
"@tiptap/extension-highlight": "^3.17.1",
47-
"@tiptap/extension-blockquote": "^3.17.1",
4848
"@tiptap/extension-horizontal-rule": "^3.17.1",
49-
"@tiptap/extension-strike": "^3.17.1",
5049
"@tiptap/extension-list": "^3.17.1",
5150
"@tiptap/extension-placeholder": "^3.17.1",
51+
"@tiptap/extension-strike": "^3.17.1",
5252
"@tiptap/extension-table": "^3.17.1",
5353
"@tiptap/extension-task-list": "^3.17.1",
5454
"@tiptap/extension-text-align": "^3.17.1",
5555
"@tiptap/extension-text-style": "^3.17.1",
5656
"@tiptap/pm": "^3.17.1",
5757
"@tiptap/react": "^3.17.1",
5858
"@tiptap/starter-kit": "^3.17.1",
59+
"class-variance-authority": "^0.7.1",
5960
"clsx": "^2.1.1",
6061
"dayjs": "^1.11.19",
6162
"dompurify": "^3.3.1",
@@ -68,6 +69,7 @@
6869
"react-grid-layout": "^1.5.3",
6970
"react-resizable": "^3.1.3",
7071
"styled-components": "^6.3.8",
72+
"tailwind-merge": "^3.4.0",
7173
"tailwindcss": "^4.1.18"
7274
},
7375
"devDependencies": {

packages/frappe-ui-react/src/components/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ export * from "./fileUploader";
1919
export * from "./formControl";
2020
export * from "./gridLayout";
2121
export * from "./hooks";
22+
export * from "./label";
2223
export * from "./listview";
2324
export * from "./password";
2425
export * from "./progress";
2526
export * from "./popover";
2627
export * from "./rating";
2728
export * from "./select";
2829
export * from "./sidebar";
30+
export * from "./skeleton";
2931
export * from "./spinner";
3032
export * from "./switch";
3133
export { default as TabButtons } from "./tabButtons";
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { Label } from "./label";
2+
export * from "./types";
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import type { Meta, StoryObj } from "@storybook/react-vite";
2+
import { Label } from "./label";
3+
import { Field } from "@base-ui/react/field";
4+
5+
const meta: Meta<typeof Label> = {
6+
title: "Components/Label",
7+
component: Label,
8+
parameters: {
9+
layout: "centered",
10+
},
11+
tags: ["autodocs"],
12+
argTypes: {
13+
children: {
14+
description: "The label text component",
15+
},
16+
},
17+
};
18+
19+
export default meta;
20+
type Story = StoryObj<typeof meta>;
21+
22+
export const Default: Story = {
23+
args: {
24+
children: "Label Text",
25+
},
26+
render: ({ children }) => {
27+
return (
28+
<Field.Root>
29+
<Label>{children}</Label>
30+
</Field.Root>
31+
);
32+
},
33+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* External dependencies.
3+
*/
4+
import { Field } from "@base-ui/react/field";
5+
import { cva } from "class-variance-authority";
6+
7+
/**
8+
* Internal dependencies.
9+
*/
10+
import type { LabelProps } from "./types";
11+
import { cn } from "../../utils";
12+
13+
const labelVariants = cva(
14+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
15+
);
16+
17+
export const Label: React.FC<LabelProps> = ({
18+
children,
19+
className,
20+
...props
21+
}) => {
22+
return (
23+
<Field.Label className={cn(labelVariants(), className)} {...props}>
24+
{children}
25+
</Field.Label>
26+
);
27+
};
28+
29+
Label.displayName = "Label";
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
2+
children: React.ReactNode;
3+
className?: string;
4+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "./skeleton";
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import type { Meta, StoryObj } from "@storybook/react-vite";
2+
import { Skeleton } from "./skeleton";
3+
4+
const meta: Meta<typeof Skeleton> = {
5+
title: "Components/Skeleton",
6+
tags: ["autodocs"],
7+
component: Skeleton,
8+
parameters: { docs: { source: { type: "dynamic" } }, layout: "centered" },
9+
argTypes: {
10+
className: {
11+
control: "text",
12+
description: "CSS classes for the Label",
13+
type: "string",
14+
},
15+
},
16+
};
17+
export default meta;
18+
19+
type Story = StoryObj<typeof Skeleton>;
20+
21+
export const Default: Story = {
22+
args: {
23+
className: "w-[100px] h-[100px]",
24+
},
25+
render: (args) => {
26+
return <Skeleton className={args.className} />;
27+
},
28+
};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* External dependencies.
3+
*/
4+
import clsx from "clsx";
5+
6+
export const Skeleton = ({
7+
className,
8+
...props
9+
}: React.HTMLAttributes<HTMLDivElement>) => {
10+
return (
11+
<div
12+
className={clsx("animate-pulse rounded-md bg-surface-gray-4", className)}
13+
{...props}
14+
/>
15+
);
16+
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* External dependencies.
3+
*/
4+
import { type ClassValue, clsx } from "clsx";
5+
import { twMerge } from "tailwind-merge";
6+
7+
export function cn(...args: ClassValue[]) {
8+
return twMerge(clsx(args));
9+
}

0 commit comments

Comments
 (0)