From ede05fdc63e2805914192272ff6d8e1f2a9dd5af Mon Sep 17 00:00:00 2001 From: Harman-singh-waraich Date: Thu, 17 Apr 2025 16:31:44 +0530 Subject: [PATCH 1/3] chore: change-dark-mode-selector --- src/styles/theme.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/theme.css b/src/styles/theme.css index edab58a..e155a06 100644 --- a/src/styles/theme.css +++ b/src/styles/theme.css @@ -34,7 +34,7 @@ --klerosUIComponentsBaseRadius: 3px; } - :root[class="dark"] { + :root.dark { --klerosUIComponentsName: dark; --klerosUIComponentsPrimaryPurple: #7e1bd4; --klerosUIComponentsSecondaryPurple: #b45fff; From 29629c84f7befbc94ba17c1b5985491607b1e2ac Mon Sep 17 00:00:00 2001 From: Harman-singh-waraich Date: Thu, 17 Apr 2025 16:32:08 +0530 Subject: [PATCH 2/3] feat: modal --- src/lib/container/modal.tsx | 41 +++++++++++++++++++++++++++++------ src/lib/index.ts | 1 + src/stories/modal.stories.tsx | 29 +++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/lib/container/modal.tsx b/src/lib/container/modal.tsx index 7de2d21..45e9a02 100644 --- a/src/lib/container/modal.tsx +++ b/src/lib/container/modal.tsx @@ -2,23 +2,50 @@ import React from "react"; import { cn } from "../../utils"; import { Modal as AriaModal, + Dialog, + ModalOverlay, + type DialogProps, type ModalOverlayProps, } from "react-aria-components"; +interface ModalProps + extends Omit, + React.RefAttributes { + /** classname that applies to the modal overlay. */ + modalOverlayClassname?: ModalOverlayProps["className"]; + children?: DialogProps["children"]; +} + +/** A modal is an overlay element which blocks interaction with elements outside it. */ function Modal({ className, + modalOverlayClassname, + children, ...props -}: ModalOverlayProps & React.RefAttributes) { +}: Readonly) { return ( - - {props.children} - + + + {children} + + + ); } export default Modal; diff --git a/src/lib/index.ts b/src/lib/index.ts index d0f51ac..d5533d7 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -6,6 +6,7 @@ export { default as Button } from "./button"; export { default as Card } from "./container/card"; export { default as Box } from "./container/box"; +export { default as Modal } from "./container/modal"; export { default as DisplayLarge } from "./display/large"; export { default as DisplayIcon } from "./display/icon"; diff --git a/src/stories/modal.stories.tsx b/src/stories/modal.stories.tsx index 3276502..e8e733e 100644 --- a/src/stories/modal.stories.tsx +++ b/src/stories/modal.stories.tsx @@ -1,13 +1,22 @@ import type { Meta, StoryObj } from "@storybook/react"; - +import React, { useState } from "react"; import { IPreviewArgs } from "./utils"; -import ModalComponent from "../lib/container/box"; +import ModalComponent from "../lib/container/modal"; +import { Button } from "../lib"; const meta = { component: ModalComponent, title: "Containers/Modal", tags: ["autodocs"], + argTypes: { + isOpen: { + control: "boolean", + }, + isDismissable: { + control: "boolean", + }, + }, } satisfies Meta; export default meta; @@ -19,5 +28,21 @@ export const Modal: Story = { themeUI: "dark", backgroundUI: "light", className: "w-[500px]", + isDismissable: true, + }, + render: function Render(args) { + const [isOpen, setOpen] = useState(false); + return ( +
+
+ ); }, }; From 59b5a66820304dae641c865a08c50eb6c154121f Mon Sep 17 00:00:00 2001 From: Harman-singh-waraich Date: Thu, 17 Apr 2025 16:45:38 +0530 Subject: [PATCH 3/3] chore: release v3.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 48dbaac..43b9c74 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kleros/ui-components-library", - "version": "3.0.1", + "version": "3.1.2", "description": "UI components library which implements the Kleros design system.", "source": "./src/lib/index.ts", "main": "./dist/esm/ui-components-library.js",