From 0eb0cb7d46900f985ed7f0781a1f5ee86a697773 Mon Sep 17 00:00:00 2001 From: ruru <142723369+ruru-m07@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:18:47 +0530 Subject: [PATCH 1/4] feat(components): add dropzone component --- apps/www/app/playground/page.tsx | 10 ++ .../preview/dropzone/advanceDropzone.tsx | 51 +++++++ .../components/preview/dropzone/dropzone.tsx | 15 ++ apps/www/components/preview/index.tsx | 2 + apps/www/content/docs/components/dropzone.mdx | 140 ++++++++++++++++++ apps/www/package.json | 1 + .../public/registry/components/dropzone.json | 11 ++ apps/www/public/registry/index.json | 6 + apps/www/registry/ui.ts | 6 + packages/ui/package.json | 1 + packages/ui/src/components/dropzone.tsx | 86 +++++++++++ pnpm-lock.yaml | 32 +++- 12 files changed, 359 insertions(+), 2 deletions(-) create mode 100644 apps/www/components/preview/dropzone/advanceDropzone.tsx create mode 100644 apps/www/components/preview/dropzone/dropzone.tsx create mode 100644 apps/www/content/docs/components/dropzone.mdx create mode 100644 apps/www/public/registry/components/dropzone.json create mode 100644 packages/ui/src/components/dropzone.tsx diff --git a/apps/www/app/playground/page.tsx b/apps/www/app/playground/page.tsx index 9364dc4..274daec 100644 --- a/apps/www/app/playground/page.tsx +++ b/apps/www/app/playground/page.tsx @@ -39,6 +39,8 @@ import { selectAnimationVariants, } from "ruru-ui/components/select"; import Modal, { ModalProvider } from "ruru-ui/components/modal"; +import { Dropzone } from "ruru-ui/components/dropzone"; +import AdvanceDropzone from "@/components/preview/dropzone/advanceDropzone"; const Playground = () => { const handleSubmit = async () => { @@ -607,6 +609,14 @@ const Playground = () => { + + console.log(acceptedFiles)} /> + + + + + +
); diff --git a/apps/www/components/preview/dropzone/advanceDropzone.tsx b/apps/www/components/preview/dropzone/advanceDropzone.tsx new file mode 100644 index 0000000..b8fded3 --- /dev/null +++ b/apps/www/components/preview/dropzone/advanceDropzone.tsx @@ -0,0 +1,51 @@ +"use client"; + +import React from "react"; +import { Dropzone, RD } from "ruru-ui/components/dropzone"; + +import { File } from "lucide-react"; + +const AdvanceDropzone = () => { + const [files, setFiles] = React.useState([]); + + function formatFileSize(bytes: number) { + if (bytes === 0) return "0 Bytes"; + const k = 1024; + const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i]; + } + + const onDrop = (acceptedFiles: RD.FileWithPath[]) => { + setFiles((p) => [...p, ...acceptedFiles]); + }; + + return ( +
+ + {files.length > 0 && ( +
+

+ Files +

+ {files.map((file, index) => ( +
+
+ + {file.path} +
+ + {formatFileSize(file.size)} + +
+ ))} +
+ )} +
+ ); +}; + +export default AdvanceDropzone; diff --git a/apps/www/components/preview/dropzone/dropzone.tsx b/apps/www/components/preview/dropzone/dropzone.tsx new file mode 100644 index 0000000..3626c1d --- /dev/null +++ b/apps/www/components/preview/dropzone/dropzone.tsx @@ -0,0 +1,15 @@ +"use client"; + +import React from "react"; +import { Wrapper } from "../wrapper"; +import { Dropzone } from "ruru-ui/components/dropzone"; + +const DropzonePreview = () => { + return ( + + + + ); +}; + +export default DropzonePreview; diff --git a/apps/www/components/preview/index.tsx b/apps/www/components/preview/index.tsx index 65a2a35..298fa93 100644 --- a/apps/www/components/preview/index.tsx +++ b/apps/www/components/preview/index.tsx @@ -30,6 +30,7 @@ import { BadgePreview } from "../badgePreview"; import Tabspreview from "../tabs"; import { default as ModalPreview } from "./Modal/preview"; import FormPreview from "./form/preview"; +import DropzonePreview from "./dropzone/dropzone"; export default { button: ( @@ -184,4 +185,5 @@ export default { ), + dropzone: , } as Record; diff --git a/apps/www/content/docs/components/dropzone.mdx b/apps/www/content/docs/components/dropzone.mdx new file mode 100644 index 0000000..f2ab0e7 --- /dev/null +++ b/apps/www/content/docs/components/dropzone.mdx @@ -0,0 +1,140 @@ +--- +title: Dropzone +description: Dropzone allows the user to drag and drop files to upload. +preview: dropzone +--- + +import { Tab, Tabs } from "fumadocs-ui/components/tabs"; +import { Tabs as Rutabs, Tab as Rutab } from "ruru-ui/components/tabs"; +import { Dropzone } from "ruru-ui/components/dropzone"; +import AdvanceDropzone from "@/components/preview/dropzone/advanceDropzone"; + +## Installation + + + + + +```bash +npx ruru-ui-cli@latest add dropzone +``` + + +```bash +pnpm dlx ruru-ui-cli@latest add dropzone +``` + + +```bash +npx ruru-ui-cli@latest add dropzone +``` + + +```bash +bunx --bun ruru-ui-cli@latest add dropzone +``` + + + + + +```package-install +npm install ruru-ui@latest +``` + + + +## Usage + +The `Dropzone` component is used to allow the user to drag and drop files to upload. +This component is a **wrapper** around the [react-dropzone](https://github.com/react-dropzone/react-dropzone) library. + + + + + + +```tsx +// [!code word:Dropzone] +import { Dropzone } from "ruru-ui/components/dropzone"; + +export function Demo() { + return console.log(acceptedFiles)} />; +} +``` + + + +--- + +### Advanced Example + +In this example, we learn how to handle files using the Dropzone component. + + + + + + +```tsx +"use client"; + +import React from "react"; +import { Dropzone, RD } from "ruru-ui/components/dropzone"; + +import { File } from "lucide-react"; + +const AdvanceDropzone = () => { + const [files, setFiles] = React.useState([]); + + function formatFileSize(bytes: number) { + if (bytes === 0) return "0 Bytes"; + const k = 1024; + const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i]; + } + + const onDrop = (acceptedFiles: RD.FileWithPath[]) => { + setFiles((p) => [...p, ...acceptedFiles]); + }; + + return ( +
+ + {files.length > 0 && ( +
+

+ Files +

+ {files.map((file, index) => ( +
+
+ + {file.path} +
+ + {formatFileSize(file.size)} + +
+ ))} +
+ )} +
+ ); +}; + +export default AdvanceDropzone; +``` +
+
+ +## Props + +| Name | Type | Default | Description | +| --------- | ------------------------------------------------- | ------- | --------------------------------------------------------- | +| className | string | "" | Optional additional class names for styling the dropzone. | +| props | DropzoneProps & React.RefAttributes\ | {} | Props passed to the `react-dropzone` component. | diff --git a/apps/www/package.json b/apps/www/package.json index c3d8fe1..9647d95 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -40,6 +40,7 @@ "react": "^18.3.1", "react-color-palette": "^7.3.0", "react-dom": "^18.3.1", + "react-dropzone": "^14.2.3", "react-resizable-panels": "^2.1.2", "rehype-katex": "^7.0.0", "remark-math": "^6.0.0", diff --git a/apps/www/public/registry/components/dropzone.json b/apps/www/public/registry/components/dropzone.json new file mode 100644 index 0000000..32e33fe --- /dev/null +++ b/apps/www/public/registry/components/dropzone.json @@ -0,0 +1,11 @@ +{ + "name": "dropzone", + "dependencies": ["react-dropzone"], + "files": [ + { + "name": "dropzone.tsx", + "content": "\"use client\";\n\nimport React from \"react\";\nimport { cn } from \"@/utils/cn\";\nimport { FilePlusIcon } from \"@radix-ui/react-icons\";\nimport ReactDropzone, { DropzoneProps, DropzoneRef } from \"react-dropzone\";\n\n\nexport const Dropzone = ({\n className,\n ...props\n}: DropzoneProps &\n React.RefAttributes & {\n className?: string;\n }): React.ReactNode => {\n return (\n <>\n {}\n \n {}\n \n {({ getRootProps, getInputProps, isDragActive }) => (\n
\n {}\n \n \n {isDragActive ? (\n \n
\n
\n \n \n Drop to Upload file\n \n
\n
\n ) : (\n \n
\n \n \n Drag files here to add them to your repository\n \n \n or{\" \"}\n \n choose your file\n \n \n
\n )}\n \n
\n )}\n
\n \n \n );\n};\n\nimport * as RD from \"react-dropzone\";\nexport { RD };\n" + } + ], + "type": "components:ui" +} diff --git a/apps/www/public/registry/index.json b/apps/www/public/registry/index.json index ca316a9..e38e069 100644 --- a/apps/www/public/registry/index.json +++ b/apps/www/public/registry/index.json @@ -78,5 +78,11 @@ "name": "label", "files": ["label.tsx"], "type": "components:ui" + }, + { + "name": "dropzone", + "dependencies": ["react-dropzone"], + "files": ["dropzone.tsx"], + "type": "components:ui" } ] diff --git a/apps/www/registry/ui.ts b/apps/www/registry/ui.ts index 6657438..a8ad817 100644 --- a/apps/www/registry/ui.ts +++ b/apps/www/registry/ui.ts @@ -81,4 +81,10 @@ export const ui: Registry = [ type: "components:ui", files: ["label.tsx"], }, + { + name: "dropzone", + type: "components:ui", + files: ["dropzone.tsx"], + dependencies: ["react-dropzone"], + }, ]; diff --git a/packages/ui/package.json b/packages/ui/package.json index 69839a1..779d562 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -104,6 +104,7 @@ "framer-motion": "^11.3.28", "next-themes": "^0.3.0", "react": "^18.2.0", + "react-dropzone": "^14.2.3", "react-hook-form": "^7.53.0", "tailwind-merge": "^2.4.0", "tailwindcss-animate": "^1.0.7", diff --git a/packages/ui/src/components/dropzone.tsx b/packages/ui/src/components/dropzone.tsx new file mode 100644 index 0000000..396aaa4 --- /dev/null +++ b/packages/ui/src/components/dropzone.tsx @@ -0,0 +1,86 @@ +"use client"; + +import React from "react"; +import { cn } from "@/utils/cn"; +import { FilePlusIcon } from "@radix-ui/react-icons"; +import ReactDropzone, { DropzoneProps, DropzoneRef } from "react-dropzone"; + +/** + * Dropzone component allows users to drag and drop files for upload. + * It integrates with `react-dropzone` to handle file drag-and-drop events. + * + * @param {string} className - Optional additional class names for styling the dropzone. + * @param {DropzoneProps & React.RefAttributes} props - Props passed to the `react-dropzone` component. + * + * @returns {React.ReactNode} - A dropzone area with visual indicators for drag-and-drop actions. + */ +export const Dropzone = ({ + className, + ...props +}: DropzoneProps & + React.RefAttributes & { + className?: string; + }): React.ReactNode => { + return ( + <> + {/* Wrapper div with optional class names */} +
+ {/* ReactDropzone handles file drag and drop logic */} + + {({ getRootProps, getInputProps, isDragActive }) => ( +
+ {/* Root dropzone area */} +
+ + {isDragActive ? ( + // When a file is dragged over the dropzone +
+
+ + + Drop to Upload file + +
+
+ ) : ( + // Default state of the dropzone when no file is dragged +
+ + + Drag files here to add them to your repository + + + or{" "} + + choose your file + + +
+ )} +
+
+ )} +
+
+ + ); +}; + +import * as RD from "react-dropzone"; +export { RD }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b9a8bf..41dd3f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -218,6 +218,9 @@ importers: react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) + react-dropzone: + specifier: ^14.2.3 + version: 14.2.3(react@18.3.1) react-resizable-panels: specifier: ^2.1.2 version: 2.1.2(react-dom@18.3.1)(react@18.3.1) @@ -417,6 +420,9 @@ importers: react: specifier: ^18.2.0 version: 18.3.1 + react-dropzone: + specifier: ^14.2.3 + version: 14.2.3(react@18.3.1) react-hook-form: specifier: ^7.53.0 version: 7.53.0(react@18.3.1) @@ -4186,6 +4192,11 @@ packages: hasBin: true dev: false + /attr-accept@2.2.2: + resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} + engines: {node: '>=4'} + dev: false + /autoprefixer@10.4.19(postcss@8.4.39): resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -5810,6 +5821,13 @@ packages: flat-cache: 3.2.0 dev: true + /file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} + engines: {node: '>= 12'} + dependencies: + tslib: 2.6.2 + dev: false + /fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -8920,7 +8938,6 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: true /property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} @@ -8986,6 +9003,18 @@ packages: scheduler: 0.23.2 dev: false + /react-dropzone@14.2.3(react@18.3.1): + resolution: {integrity: sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==} + engines: {node: '>= 10.13'} + peerDependencies: + react: '>= 16.8 || 18.0.0' + dependencies: + attr-accept: 2.2.2 + file-selector: 0.6.0 + prop-types: 15.8.1 + react: 18.3.1 + dev: false + /react-hook-form@7.53.0(react@18.3.1): resolution: {integrity: sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==} engines: {node: '>=18.0.0'} @@ -8997,7 +9026,6 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: true /react-medium-image-zoom@5.2.7(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-I2mC3zQMmJ/JH5D04WIT5cS8jxFvB9Ybr3ORiIIeT3hPWRxT6mnC4dNUyvO1mVxxg158H6249UClr7tXRm5IUQ==} From a99f540279f23248ecf13258e42936d114d2e620 Mon Sep 17 00:00:00 2001 From: ruru <142723369+ruru-m07@users.noreply.github.com> Date: Tue, 24 Sep 2024 18:08:53 +0530 Subject: [PATCH 2/4] fix(docs): fix dropzone docs and make it more cleaner --- apps/www/content/docs/components/dropzone.mdx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/www/content/docs/components/dropzone.mdx b/apps/www/content/docs/components/dropzone.mdx index f2ab0e7..c50c83c 100644 --- a/apps/www/content/docs/components/dropzone.mdx +++ b/apps/www/content/docs/components/dropzone.mdx @@ -51,7 +51,9 @@ This component is a **wrapper** around the [react-dropzone](https://github.com/r - +
+ +
```tsx @@ -73,7 +75,9 @@ In this example, we learn how to handle files using the Dropzone component. - +
+ +
```tsx @@ -132,6 +136,17 @@ export default AdvanceDropzone;
+## Import + +We are exporting the `RD` component from the `react-dropzone` module. +Here RD is the alias for the `react-dropzone` library. + +```tsx title="dropzone.tsx" +// [!code word:RD] +import * as RD from "react-dropzone"; +export { RD }; +``` + ## Props | Name | Type | Default | Description | From 40ffc6eef1c037abba6a8ea34149d68b87f7c635 Mon Sep 17 00:00:00 2001 From: ruru <142723369+ruru-m07@users.noreply.github.com> Date: Tue, 24 Sep 2024 18:39:44 +0530 Subject: [PATCH 3/4] chore(sitemap): update sitemap config and sitemap.xml --- apps/www/next-sitemap.config.js | 16 -------- apps/www/public/robots.txt | 3 ++ apps/www/public/sitemap-0.xml | 67 +++++++++++++++++---------------- 3 files changed, 37 insertions(+), 49 deletions(-) diff --git a/apps/www/next-sitemap.config.js b/apps/www/next-sitemap.config.js index 150c9f6..88dd169 100644 --- a/apps/www/next-sitemap.config.js +++ b/apps/www/next-sitemap.config.js @@ -1,30 +1,14 @@ -const { execSync } = require("child_process"); - /** @type {import('next-sitemap').IConfig} */ module.exports = { siteUrl: process.env.SITE_URL || "https://ruru-ui.vercel.app", generateRobotsTxt: true, exclude: ["/api/*"], transform: async (config, path) => { - const lastmod = await getLastModifiedDate(path); return { loc: path, changefreq: config.changefreq, priority: config.priority, - lastmod, alternateRefs: config.alternateRefs ?? [], }; }, }; - -async function getLastModifiedDate(path) { - try { - const timestamp = execSync(`git log -1 --format=%ct ${path}`) - .toString() - .trim(); - return new Date(parseInt(timestamp, 10) * 1000).toISOString(); - } catch (error) { - console.error(`Error getting last modified date for ${path}:`, error); - return new Date().toISOString(); // Fallback to current date - } -} diff --git a/apps/www/public/robots.txt b/apps/www/public/robots.txt index a4690f9..685b79c 100644 --- a/apps/www/public/robots.txt +++ b/apps/www/public/robots.txt @@ -2,5 +2,8 @@ User-agent: * Allow: / +# Host +Host: https://ruru-ui.vercel.app + # Sitemaps Sitemap: https://ruru-ui.vercel.app/sitemap.xml diff --git a/apps/www/public/sitemap-0.xml b/apps/www/public/sitemap-0.xml index fada55a..6ccf3fb 100644 --- a/apps/www/public/sitemap-0.xml +++ b/apps/www/public/sitemap-0.xml @@ -1,36 +1,37 @@ -https://ruru-ui.vercel.app/color2024-09-19T13:01:48.136Zdaily0.7 -https://ruru-ui.vercel.app/playground2024-09-19T13:01:48.366Zdaily0.7 -https://ruru-ui.vercel.app/blocks/login-12024-09-19T13:01:48.627Zdaily0.7 -https://ruru-ui.vercel.app/blocks/register-12024-09-19T13:01:49.034Zdaily0.7 -https://ruru-ui.vercel.app/blocks/forgot-12024-09-19T13:01:49.467Zdaily0.7 -https://ruru-ui.vercel.app/theme__2024-09-19T13:01:49.716Zdaily0.7 -https://ruru-ui.vercel.app/sponsors2024-09-19T13:01:50.000Zdaily0.7 -https://ruru-ui.vercel.app2024-09-19T13:01:50.303Zdaily0.7 -https://ruru-ui.vercel.app/docs/animation2024-09-19T13:01:50.579Zdaily0.7 -https://ruru-ui.vercel.app/docs/block2024-09-19T13:01:50.826Zdaily0.7 -https://ruru-ui.vercel.app/docs/cli2024-09-19T13:01:51.081Zdaily0.7 -https://ruru-ui.vercel.app/docs/dark-mode2024-09-19T13:01:51.334Zdaily0.7 -https://ruru-ui.vercel.app/docs/hooks2024-09-19T13:01:51.578Zdaily0.7 -https://ruru-ui.vercel.app/docs2024-09-19T13:01:51.780Zdaily0.7 -https://ruru-ui.vercel.app/docs/installation2024-09-19T13:01:52.025Zdaily0.7 -https://ruru-ui.vercel.app/docs/provider2024-09-19T13:01:52.231Zdaily0.7 -https://ruru-ui.vercel.app/docs/ruru-json2024-09-19T13:01:52.420Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/avatar2024-09-19T13:01:52.683Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/badge2024-09-19T13:01:52.876Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/button2024-09-19T13:01:53.131Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/checkbox2024-09-19T13:01:53.356Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/form2024-09-19T13:01:53.544Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/input2024-09-19T13:01:53.758Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/label2024-09-19T13:01:53.997Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/modal2024-09-19T13:01:54.221Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/select2024-09-19T13:01:54.408Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/spinner2024-09-19T13:01:54.635Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/switch2024-09-19T13:01:54.854Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/tabs2024-09-19T13:01:55.093Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/textarea2024-09-19T13:01:55.282Zdaily0.7 -https://ruru-ui.vercel.app/docs/components/tooltip2024-09-19T13:01:55.480Zdaily0.7 -https://ruru-ui.vercel.app/blocks2024-09-19T13:01:55.645Zdaily0.7 -https://ruru-ui.vercel.app/theme2024-09-19T13:01:55.883Zdaily0.7 +https://ruru-ui.vercel.app/theme__daily0.7 +https://ruru-ui.vercel.app/colordaily0.7 +https://ruru-ui.vercel.app/blocks/login-1daily0.7 +https://ruru-ui.vercel.app/blocks/register-1daily0.7 +https://ruru-ui.vercel.app/blocks/forgot-1daily0.7 +https://ruru-ui.vercel.appdaily0.7 +https://ruru-ui.vercel.app/playgrounddaily0.7 +https://ruru-ui.vercel.app/docs/animationdaily0.7 +https://ruru-ui.vercel.app/docs/blockdaily0.7 +https://ruru-ui.vercel.app/docs/clidaily0.7 +https://ruru-ui.vercel.app/docs/dark-modedaily0.7 +https://ruru-ui.vercel.app/docs/hooksdaily0.7 +https://ruru-ui.vercel.app/docsdaily0.7 +https://ruru-ui.vercel.app/docs/installationdaily0.7 +https://ruru-ui.vercel.app/docs/providerdaily0.7 +https://ruru-ui.vercel.app/docs/ruru-jsondaily0.7 +https://ruru-ui.vercel.app/docs/components/avatardaily0.7 +https://ruru-ui.vercel.app/docs/components/badgedaily0.7 +https://ruru-ui.vercel.app/docs/components/buttondaily0.7 +https://ruru-ui.vercel.app/docs/components/checkboxdaily0.7 +https://ruru-ui.vercel.app/docs/components/dropzonedaily0.7 +https://ruru-ui.vercel.app/docs/components/formdaily0.7 +https://ruru-ui.vercel.app/docs/components/inputdaily0.7 +https://ruru-ui.vercel.app/docs/components/labeldaily0.7 +https://ruru-ui.vercel.app/docs/components/modaldaily0.7 +https://ruru-ui.vercel.app/docs/components/selectdaily0.7 +https://ruru-ui.vercel.app/docs/components/spinnerdaily0.7 +https://ruru-ui.vercel.app/docs/components/switchdaily0.7 +https://ruru-ui.vercel.app/docs/components/tabsdaily0.7 +https://ruru-ui.vercel.app/docs/components/textareadaily0.7 +https://ruru-ui.vercel.app/docs/components/tooltipdaily0.7 +https://ruru-ui.vercel.app/sponsorsdaily0.7 +https://ruru-ui.vercel.app/themedaily0.7 +https://ruru-ui.vercel.app/blocksdaily0.7 \ No newline at end of file From 4e79a6e4d27901524444c11b533269bcca7587d9 Mon Sep 17 00:00:00 2001 From: ruru <142723369+ruru-m07@users.noreply.github.com> Date: Tue, 24 Sep 2024 19:24:51 +0530 Subject: [PATCH 4/4] chore(release): bump version to v2.2.1 --- packages/ui/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 779d562..5c13b0c 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "ruru-ui", - "version": "2.2.0", + "version": "2.2.1", "description": "Ruru UI Components", "publishConfig": { "access": "public"