@metamask-previews/design-system-react 0.0.0-preview.909f2e9
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/CHANGELOG.md +10 -0
- package/LICENSE +20 -0
- package/README.md +15 -0
- package/dist/Button.cjs +10 -0
- package/dist/Button.cjs.map +1 -0
- package/dist/Button.d.cts +7 -0
- package/dist/Button.d.cts.map +1 -0
- package/dist/Button.d.mts +7 -0
- package/dist/Button.d.mts.map +1 -0
- package/dist/Button.mjs +10 -0
- package/dist/Button.mjs.map +1 -0
- package/dist/Button.test.cjs +29 -0
- package/dist/Button.test.cjs.map +1 -0
- package/dist/Button.test.d.cts +2 -0
- package/dist/Button.test.d.cts.map +1 -0
- package/dist/Button.test.d.mts +2 -0
- package/dist/Button.test.d.mts.map +1 -0
- package/dist/Button.test.mjs +32 -0
- package/dist/Button.test.mjs.map +1 -0
- package/dist/Text.cjs +40 -0
- package/dist/Text.cjs.map +1 -0
- package/dist/Text.d.cts +19 -0
- package/dist/Text.d.cts.map +1 -0
- package/dist/Text.d.mts +19 -0
- package/dist/Text.d.mts.map +1 -0
- package/dist/Text.mjs +40 -0
- package/dist/Text.mjs.map +1 -0
- package/dist/Text.test.cjs +23 -0
- package/dist/Text.test.cjs.map +1 -0
- package/dist/Text.test.d.cts +2 -0
- package/dist/Text.test.d.cts.map +1 -0
- package/dist/Text.test.d.mts +2 -0
- package/dist/Text.test.d.mts.map +1 -0
- package/dist/Text.test.mjs +26 -0
- package/dist/Text.test.mjs.map +1 -0
- package/dist/index.cjs +8 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +79 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
[Unreleased]: https://github.com/MetaMask/metamask-design-system/
|
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 MetaMask
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# `@metamask/design-system-react`
|
|
2
|
+
|
|
3
|
+
Design system react ui components
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
`yarn add @metamask/design-system-react`
|
|
8
|
+
|
|
9
|
+
or
|
|
10
|
+
|
|
11
|
+
`npm install @metamask/design-system-react`
|
|
12
|
+
|
|
13
|
+
## Contributing
|
|
14
|
+
|
|
15
|
+
This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/metamask-design-system#readme).
|
package/dist/Button.cjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Button = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const Button = ({ children, ...props }) => (react_1.default.createElement("button", { className: "px-4 h-8 rounded-full bg-primary-default text-primary-inverse", ...props }, children));
|
|
9
|
+
exports.Button = Button;
|
|
10
|
+
//# sourceMappingURL=Button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.cjs","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAQnB,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE,CAAC,CAC7D,0CACE,SAAS,EAAC,+DAA+D,KACrE,KAAK,IAER,QAAQ,CACF,CACV,CAAC;AAPW,QAAA,MAAM,UAOjB","sourcesContent":["import React from 'react';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Button contents */\n children: React.ReactNode;\n}\n\nexport const Button = ({ children, ...props }: ButtonProps) => (\n <button\n className=\"px-4 h-8 rounded-full bg-primary-default text-primary-inverse\"\n {...props}\n >\n {children}\n </button>\n);\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/** Button contents */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const Button: ({ children, ...props }: ButtonProps) => React.JSX.Element;
|
|
7
|
+
//# sourceMappingURL=Button.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.cts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc;AAE1B,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,sBAAsB;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,2BAA4B,WAAW,sBAOzD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/** Button contents */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const Button: ({ children, ...props }: ButtonProps) => React.JSX.Element;
|
|
7
|
+
//# sourceMappingURL=Button.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.mts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc;AAE1B,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,sBAAsB;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,2BAA4B,WAAW,sBAOzD,CAAC"}
|
package/dist/Button.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
function $importDefault(module) {
|
|
2
|
+
if (module?.__esModule) {
|
|
3
|
+
return module.default;
|
|
4
|
+
}
|
|
5
|
+
return module;
|
|
6
|
+
}
|
|
7
|
+
import $React from "react";
|
|
8
|
+
const React = $importDefault($React);
|
|
9
|
+
export const Button = ({ children, ...props }) => (React.createElement("button", { className: "px-4 h-8 rounded-full bg-primary-default text-primary-inverse", ...props }, children));
|
|
10
|
+
//# sourceMappingURL=Button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.mjs","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAK,cAAc;;AAQ1B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE,CAAC,CAC7D,gCACE,SAAS,EAAC,+DAA+D,KACrE,KAAK,IAER,QAAQ,CACF,CACV,CAAC","sourcesContent":["import React from 'react';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Button contents */\n children: React.ReactNode;\n}\n\nexport const Button = ({ children, ...props }: ButtonProps) => (\n <button\n className=\"px-4 h-8 rounded-full bg-primary-default text-primary-inverse\"\n {...props}\n >\n {children}\n </button>\n);\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const react_2 = require("@testing-library/react");
|
|
8
|
+
const Button_1 = require("./Button.cjs");
|
|
9
|
+
describe('Button Component', () => {
|
|
10
|
+
it('renders children correctly', () => {
|
|
11
|
+
(0, react_2.render)(react_1.default.createElement(Button_1.Button, null, "Click Me"));
|
|
12
|
+
expect(react_2.screen.getByText('Click Me')).toBeInTheDocument();
|
|
13
|
+
});
|
|
14
|
+
it('applies the correct classes', () => {
|
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(Button_1.Button, null, "Styled Button"));
|
|
16
|
+
expect(container.firstChild).toHaveClass('px-4 h-8 rounded-full bg-primary-default text-primary-inverse');
|
|
17
|
+
});
|
|
18
|
+
it('handles click events', () => {
|
|
19
|
+
const handleClick = jest.fn();
|
|
20
|
+
(0, react_2.render)(react_1.default.createElement(Button_1.Button, { onClick: handleClick }, "Click"));
|
|
21
|
+
react_2.fireEvent.click(react_2.screen.getByText('Click'));
|
|
22
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
23
|
+
});
|
|
24
|
+
it('passes additional props to the button element', () => {
|
|
25
|
+
(0, react_2.render)(react_1.default.createElement(Button_1.Button, { "aria-label": "custom-button" }, "Accessible Button"));
|
|
26
|
+
expect(react_2.screen.getByLabelText('custom-button')).toBeInTheDocument();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=Button.test.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.test.cjs","sourceRoot":"","sources":["../src/Button.test.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAAmE;AACnE,yCAAkC;AAElC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,IAAA,cAAM,EAAC,8BAAC,eAAM,mBAAkB,CAAC,CAAC;QAClC,MAAM,CAAC,cAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,eAAM,wBAAuB,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CACtC,+DAA+D,CAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAA,cAAM,EAAC,8BAAC,eAAM,IAAC,OAAO,EAAE,WAAW,YAAgB,CAAC,CAAC;QACrD,iBAAS,CAAC,KAAK,CAAC,cAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,IAAA,cAAM,EAAC,8BAAC,eAAM,kBAAY,eAAe,wBAA2B,CAAC,CAAC;QACtE,MAAM,CAAC,cAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { render, screen, fireEvent } from '@testing-library/react';\nimport { Button } from './Button';\n\ndescribe('Button Component', () => {\n it('renders children correctly', () => {\n render(<Button>Click Me</Button>);\n expect(screen.getByText('Click Me')).toBeInTheDocument();\n });\n\n it('applies the correct classes', () => {\n const { container } = render(<Button>Styled Button</Button>);\n expect(container.firstChild).toHaveClass(\n 'px-4 h-8 rounded-full bg-primary-default text-primary-inverse',\n );\n });\n\n it('handles click events', () => {\n const handleClick = jest.fn();\n render(<Button onClick={handleClick}>Click</Button>);\n fireEvent.click(screen.getByText('Click'));\n expect(handleClick).toHaveBeenCalledTimes(1);\n });\n\n it('passes additional props to the button element', () => {\n render(<Button aria-label=\"custom-button\">Accessible Button</Button>);\n expect(screen.getByLabelText('custom-button')).toBeInTheDocument();\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.test.d.cts","sourceRoot":"","sources":["../src/Button.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.test.d.mts","sourceRoot":"","sources":["../src/Button.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function $importDefault(module) {
|
|
2
|
+
if (module?.__esModule) {
|
|
3
|
+
return module.default;
|
|
4
|
+
}
|
|
5
|
+
return module;
|
|
6
|
+
}
|
|
7
|
+
import $React from "react";
|
|
8
|
+
const React = $importDefault($React);
|
|
9
|
+
import $testinglibraryreact from "@testing-library/react";
|
|
10
|
+
const { render, screen, fireEvent } = $testinglibraryreact;
|
|
11
|
+
import { Button } from "./Button.mjs";
|
|
12
|
+
describe('Button Component', () => {
|
|
13
|
+
it('renders children correctly', () => {
|
|
14
|
+
render(React.createElement(Button, null, "Click Me"));
|
|
15
|
+
expect(screen.getByText('Click Me')).toBeInTheDocument();
|
|
16
|
+
});
|
|
17
|
+
it('applies the correct classes', () => {
|
|
18
|
+
const { container } = render(React.createElement(Button, null, "Styled Button"));
|
|
19
|
+
expect(container.firstChild).toHaveClass('px-4 h-8 rounded-full bg-primary-default text-primary-inverse');
|
|
20
|
+
});
|
|
21
|
+
it('handles click events', () => {
|
|
22
|
+
const handleClick = jest.fn();
|
|
23
|
+
render(React.createElement(Button, { onClick: handleClick }, "Click"));
|
|
24
|
+
fireEvent.click(screen.getByText('Click'));
|
|
25
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
26
|
+
});
|
|
27
|
+
it('passes additional props to the button element', () => {
|
|
28
|
+
render(React.createElement(Button, { "aria-label": "custom-button" }, "Accessible Button"));
|
|
29
|
+
expect(screen.getByLabelText('custom-button')).toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=Button.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.test.mjs","sourceRoot":"","sources":["../src/Button.test.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAK,cAAc;;;;AAE1B,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAElC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,oBAAC,MAAM,mBAAkB,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,MAAM,wBAAuB,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CACtC,+DAA+D,CAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,oBAAC,MAAM,IAAC,OAAO,EAAE,WAAW,YAAgB,CAAC,CAAC;QACrD,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,oBAAC,MAAM,kBAAY,eAAe,wBAA2B,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { render, screen, fireEvent } from '@testing-library/react';\nimport { Button } from './Button';\n\ndescribe('Button Component', () => {\n it('renders children correctly', () => {\n render(<Button>Click Me</Button>);\n expect(screen.getByText('Click Me')).toBeInTheDocument();\n });\n\n it('applies the correct classes', () => {\n const { container } = render(<Button>Styled Button</Button>);\n expect(container.firstChild).toHaveClass(\n 'px-4 h-8 rounded-full bg-primary-default text-primary-inverse',\n );\n });\n\n it('handles click events', () => {\n const handleClick = jest.fn();\n render(<Button onClick={handleClick}>Click</Button>);\n fireEvent.click(screen.getByText('Click'));\n expect(handleClick).toHaveBeenCalledTimes(1);\n });\n\n it('passes additional props to the button element', () => {\n render(<Button aria-label=\"custom-button\">Accessible Button</Button>);\n expect(screen.getByLabelText('custom-button')).toBeInTheDocument();\n });\n});\n"]}
|
package/dist/Text.cjs
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Text = exports.TextVariant = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
var TextVariant;
|
|
9
|
+
(function (TextVariant) {
|
|
10
|
+
// Display Sizes
|
|
11
|
+
TextVariant["DisplayMd"] = "display-md";
|
|
12
|
+
// Heading Sizes
|
|
13
|
+
TextVariant["HeadingLg"] = "heading-lg";
|
|
14
|
+
TextVariant["HeadingMd"] = "heading-md";
|
|
15
|
+
TextVariant["HeadingSm"] = "heading-sm";
|
|
16
|
+
// Font Sizes
|
|
17
|
+
TextVariant["BodyLg"] = "body-lg";
|
|
18
|
+
TextVariant["BodyMd"] = "body-md";
|
|
19
|
+
TextVariant["BodySm"] = "body-sm";
|
|
20
|
+
TextVariant["BodyXs"] = "body-xs";
|
|
21
|
+
})(TextVariant || (exports.TextVariant = TextVariant = {}));
|
|
22
|
+
// Create a mapping from TextVariant to Tailwind class names
|
|
23
|
+
const typographyClassMap = {
|
|
24
|
+
[TextVariant.DisplayMd]: 'text-s-display-md font-s-display-md leading-s-display-md tracking-s-display-md lg:text-l-display-md lg:font-l-display-md lg:leading-l-display-md lg:tracking-l-display-md',
|
|
25
|
+
[TextVariant.HeadingLg]: 'text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg',
|
|
26
|
+
[TextVariant.HeadingMd]: 'text-s-heading-md font-s-heading-md leading-s-heading-md tracking-s-heading-md lg:text-l-heading-md lg:font-l-heading-md lg:leading-l-heading-md lg:tracking-l-heading-md',
|
|
27
|
+
[TextVariant.HeadingSm]: 'text-s-heading-sm font-s-heading-sm leading-s-heading-sm tracking-s-heading-sm lg:text-l-heading-sm lg:font-l-heading-sm lg:leading-l-heading-sm lg:tracking-l-heading-sm',
|
|
28
|
+
[TextVariant.BodyLg]: 'text-s-body-lg-medium font-s-body-lg-medium leading-s-body-lg-medium tracking-s-body-lg-medium lg:text-l-body-lg-medium lg:font-l-body-lg-medium lg:leading-l-body-lg-medium lg:tracking-l-body-lg-medium',
|
|
29
|
+
[TextVariant.BodyMd]: 'text-s-body-md font-s-body-md leading-s-body-md tracking-s-body-md lg:text-l-body-md lg:font-l-body-md lg:leading-l-body-md lg:tracking-l-body-md',
|
|
30
|
+
[TextVariant.BodySm]: 'text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm',
|
|
31
|
+
[TextVariant.BodyXs]: 'text-s-body-xs font-s-body-xs leading-s-body-xs tracking-s-body-xs lg:text-l-body-xs lg:font-l-body-xs lg:leading-l-body-xs lg:tracking-l-body-xs',
|
|
32
|
+
};
|
|
33
|
+
// Update the Text component to use the TextVariant enum
|
|
34
|
+
const Text = ({ variant, children, className }) => {
|
|
35
|
+
// Map the TextVariant to corresponding class names from typography.ts
|
|
36
|
+
const variantClass = typographyClassMap[variant];
|
|
37
|
+
return react_1.default.createElement("p", { className: `${variantClass} ${className}` }, children);
|
|
38
|
+
};
|
|
39
|
+
exports.Text = Text;
|
|
40
|
+
//# sourceMappingURL=Text.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.cjs","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,IAAY,WAcX;AAdD,WAAY,WAAW;IACrB,gBAAgB;IAChB,uCAAwB,CAAA;IAExB,gBAAgB;IAChB,uCAAwB,CAAA;IACxB,uCAAwB,CAAA;IACxB,uCAAwB,CAAA;IAExB,aAAa;IACb,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;AACpB,CAAC,EAdW,WAAW,2BAAX,WAAW,QActB;AAQD,4DAA4D;AAC5D,MAAM,kBAAkB,GAAgC;IACtD,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,2MAA2M;IAC7M,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,mJAAmJ;IACrJ,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,mJAAmJ;IACrJ,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,mJAAmJ;CACtJ,CAAC;AAEF,wDAAwD;AACjD,MAAM,IAAI,GAAwB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IAC5E,sEAAsE;IACtE,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO,qCAAG,SAAS,EAAE,GAAG,YAAY,IAAI,SAAS,EAAE,IAAG,QAAQ,CAAK,CAAC;AACtE,CAAC,CAAC;AALW,QAAA,IAAI,QAKf","sourcesContent":["import React from 'react';\n\nexport enum TextVariant {\n // Display Sizes\n DisplayMd = 'display-md',\n\n // Heading Sizes\n HeadingLg = 'heading-lg',\n HeadingMd = 'heading-md',\n HeadingSm = 'heading-sm',\n\n // Font Sizes\n BodyLg = 'body-lg',\n BodyMd = 'body-md',\n BodySm = 'body-sm',\n BodyXs = 'body-xs',\n}\n\ninterface TextProps {\n variant: TextVariant;\n children: React.ReactNode;\n className?: string;\n}\n\n// Create a mapping from TextVariant to Tailwind class names\nconst typographyClassMap: Record<TextVariant, string> = {\n [TextVariant.DisplayMd]:\n 'text-s-display-md font-s-display-md leading-s-display-md tracking-s-display-md lg:text-l-display-md lg:font-l-display-md lg:leading-l-display-md lg:tracking-l-display-md',\n [TextVariant.HeadingLg]:\n 'text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg',\n [TextVariant.HeadingMd]:\n 'text-s-heading-md font-s-heading-md leading-s-heading-md tracking-s-heading-md lg:text-l-heading-md lg:font-l-heading-md lg:leading-l-heading-md lg:tracking-l-heading-md',\n [TextVariant.HeadingSm]:\n 'text-s-heading-sm font-s-heading-sm leading-s-heading-sm tracking-s-heading-sm lg:text-l-heading-sm lg:font-l-heading-sm lg:leading-l-heading-sm lg:tracking-l-heading-sm',\n [TextVariant.BodyLg]:\n 'text-s-body-lg-medium font-s-body-lg-medium leading-s-body-lg-medium tracking-s-body-lg-medium lg:text-l-body-lg-medium lg:font-l-body-lg-medium lg:leading-l-body-lg-medium lg:tracking-l-body-lg-medium',\n [TextVariant.BodyMd]:\n 'text-s-body-md font-s-body-md leading-s-body-md tracking-s-body-md lg:text-l-body-md lg:font-l-body-md lg:leading-l-body-md lg:tracking-l-body-md',\n [TextVariant.BodySm]:\n 'text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm',\n [TextVariant.BodyXs]:\n 'text-s-body-xs font-s-body-xs leading-s-body-xs tracking-s-body-xs lg:text-l-body-xs lg:font-l-body-xs lg:leading-l-body-xs lg:tracking-l-body-xs',\n};\n\n// Update the Text component to use the TextVariant enum\nexport const Text: React.FC<TextProps> = ({ variant, children, className }) => {\n // Map the TextVariant to corresponding class names from typography.ts\n const variantClass = typographyClassMap[variant];\n\n return <p className={`${variantClass} ${className}`}>{children}</p>;\n};\n"]}
|
package/dist/Text.d.cts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare enum TextVariant {
|
|
3
|
+
DisplayMd = "display-md",
|
|
4
|
+
HeadingLg = "heading-lg",
|
|
5
|
+
HeadingMd = "heading-md",
|
|
6
|
+
HeadingSm = "heading-sm",
|
|
7
|
+
BodyLg = "body-lg",
|
|
8
|
+
BodyMd = "body-md",
|
|
9
|
+
BodySm = "body-sm",
|
|
10
|
+
BodyXs = "body-xs"
|
|
11
|
+
}
|
|
12
|
+
interface TextProps {
|
|
13
|
+
variant: TextVariant;
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const Text: React.FC<TextProps>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=Text.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.d.cts","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc;AAE1B,oBAAY,WAAW;IAErB,SAAS,eAAe;IAGxB,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,SAAS,eAAe;IAGxB,MAAM,YAAY;IAClB,MAAM,YAAY;IAClB,MAAM,YAAY;IAClB,MAAM,YAAY;CACnB;AAED,UAAU,SAAS;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuBD,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAKpC,CAAC"}
|
package/dist/Text.d.mts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare enum TextVariant {
|
|
3
|
+
DisplayMd = "display-md",
|
|
4
|
+
HeadingLg = "heading-lg",
|
|
5
|
+
HeadingMd = "heading-md",
|
|
6
|
+
HeadingSm = "heading-sm",
|
|
7
|
+
BodyLg = "body-lg",
|
|
8
|
+
BodyMd = "body-md",
|
|
9
|
+
BodySm = "body-sm",
|
|
10
|
+
BodyXs = "body-xs"
|
|
11
|
+
}
|
|
12
|
+
interface TextProps {
|
|
13
|
+
variant: TextVariant;
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const Text: React.FC<TextProps>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=Text.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.d.mts","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc;AAE1B,oBAAY,WAAW;IAErB,SAAS,eAAe;IAGxB,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,SAAS,eAAe;IAGxB,MAAM,YAAY;IAClB,MAAM,YAAY;IAClB,MAAM,YAAY;IAClB,MAAM,YAAY;CACnB;AAED,UAAU,SAAS;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuBD,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAKpC,CAAC"}
|
package/dist/Text.mjs
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
function $importDefault(module) {
|
|
2
|
+
if (module?.__esModule) {
|
|
3
|
+
return module.default;
|
|
4
|
+
}
|
|
5
|
+
return module;
|
|
6
|
+
}
|
|
7
|
+
import $React from "react";
|
|
8
|
+
const React = $importDefault($React);
|
|
9
|
+
export var TextVariant;
|
|
10
|
+
(function (TextVariant) {
|
|
11
|
+
// Display Sizes
|
|
12
|
+
TextVariant["DisplayMd"] = "display-md";
|
|
13
|
+
// Heading Sizes
|
|
14
|
+
TextVariant["HeadingLg"] = "heading-lg";
|
|
15
|
+
TextVariant["HeadingMd"] = "heading-md";
|
|
16
|
+
TextVariant["HeadingSm"] = "heading-sm";
|
|
17
|
+
// Font Sizes
|
|
18
|
+
TextVariant["BodyLg"] = "body-lg";
|
|
19
|
+
TextVariant["BodyMd"] = "body-md";
|
|
20
|
+
TextVariant["BodySm"] = "body-sm";
|
|
21
|
+
TextVariant["BodyXs"] = "body-xs";
|
|
22
|
+
})(TextVariant || (TextVariant = {}));
|
|
23
|
+
// Create a mapping from TextVariant to Tailwind class names
|
|
24
|
+
const typographyClassMap = {
|
|
25
|
+
[TextVariant.DisplayMd]: 'text-s-display-md font-s-display-md leading-s-display-md tracking-s-display-md lg:text-l-display-md lg:font-l-display-md lg:leading-l-display-md lg:tracking-l-display-md',
|
|
26
|
+
[TextVariant.HeadingLg]: 'text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg',
|
|
27
|
+
[TextVariant.HeadingMd]: 'text-s-heading-md font-s-heading-md leading-s-heading-md tracking-s-heading-md lg:text-l-heading-md lg:font-l-heading-md lg:leading-l-heading-md lg:tracking-l-heading-md',
|
|
28
|
+
[TextVariant.HeadingSm]: 'text-s-heading-sm font-s-heading-sm leading-s-heading-sm tracking-s-heading-sm lg:text-l-heading-sm lg:font-l-heading-sm lg:leading-l-heading-sm lg:tracking-l-heading-sm',
|
|
29
|
+
[TextVariant.BodyLg]: 'text-s-body-lg-medium font-s-body-lg-medium leading-s-body-lg-medium tracking-s-body-lg-medium lg:text-l-body-lg-medium lg:font-l-body-lg-medium lg:leading-l-body-lg-medium lg:tracking-l-body-lg-medium',
|
|
30
|
+
[TextVariant.BodyMd]: 'text-s-body-md font-s-body-md leading-s-body-md tracking-s-body-md lg:text-l-body-md lg:font-l-body-md lg:leading-l-body-md lg:tracking-l-body-md',
|
|
31
|
+
[TextVariant.BodySm]: 'text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm',
|
|
32
|
+
[TextVariant.BodyXs]: 'text-s-body-xs font-s-body-xs leading-s-body-xs tracking-s-body-xs lg:text-l-body-xs lg:font-l-body-xs lg:leading-l-body-xs lg:tracking-l-body-xs',
|
|
33
|
+
};
|
|
34
|
+
// Update the Text component to use the TextVariant enum
|
|
35
|
+
export const Text = ({ variant, children, className }) => {
|
|
36
|
+
// Map the TextVariant to corresponding class names from typography.ts
|
|
37
|
+
const variantClass = typographyClassMap[variant];
|
|
38
|
+
return React.createElement("p", { className: `${variantClass} ${className}` }, children);
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=Text.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.mjs","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAK,cAAc;;AAE1B,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACrB,gBAAgB;IAChB,uCAAwB,CAAA;IAExB,gBAAgB;IAChB,uCAAwB,CAAA;IACxB,uCAAwB,CAAA;IACxB,uCAAwB,CAAA;IAExB,aAAa;IACb,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;IAClB,iCAAkB,CAAA;AACpB,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAQD,4DAA4D;AAC5D,MAAM,kBAAkB,GAAgC;IACtD,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,SAAS,CAAC,EACrB,2KAA2K;IAC7K,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,2MAA2M;IAC7M,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,mJAAmJ;IACrJ,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,mJAAmJ;IACrJ,CAAC,WAAW,CAAC,MAAM,CAAC,EAClB,mJAAmJ;CACtJ,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IAC5E,sEAAsE;IACtE,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO,2BAAG,SAAS,EAAE,GAAG,YAAY,IAAI,SAAS,EAAE,IAAG,QAAQ,CAAK,CAAC;AACtE,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nexport enum TextVariant {\n // Display Sizes\n DisplayMd = 'display-md',\n\n // Heading Sizes\n HeadingLg = 'heading-lg',\n HeadingMd = 'heading-md',\n HeadingSm = 'heading-sm',\n\n // Font Sizes\n BodyLg = 'body-lg',\n BodyMd = 'body-md',\n BodySm = 'body-sm',\n BodyXs = 'body-xs',\n}\n\ninterface TextProps {\n variant: TextVariant;\n children: React.ReactNode;\n className?: string;\n}\n\n// Create a mapping from TextVariant to Tailwind class names\nconst typographyClassMap: Record<TextVariant, string> = {\n [TextVariant.DisplayMd]:\n 'text-s-display-md font-s-display-md leading-s-display-md tracking-s-display-md lg:text-l-display-md lg:font-l-display-md lg:leading-l-display-md lg:tracking-l-display-md',\n [TextVariant.HeadingLg]:\n 'text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg',\n [TextVariant.HeadingMd]:\n 'text-s-heading-md font-s-heading-md leading-s-heading-md tracking-s-heading-md lg:text-l-heading-md lg:font-l-heading-md lg:leading-l-heading-md lg:tracking-l-heading-md',\n [TextVariant.HeadingSm]:\n 'text-s-heading-sm font-s-heading-sm leading-s-heading-sm tracking-s-heading-sm lg:text-l-heading-sm lg:font-l-heading-sm lg:leading-l-heading-sm lg:tracking-l-heading-sm',\n [TextVariant.BodyLg]:\n 'text-s-body-lg-medium font-s-body-lg-medium leading-s-body-lg-medium tracking-s-body-lg-medium lg:text-l-body-lg-medium lg:font-l-body-lg-medium lg:leading-l-body-lg-medium lg:tracking-l-body-lg-medium',\n [TextVariant.BodyMd]:\n 'text-s-body-md font-s-body-md leading-s-body-md tracking-s-body-md lg:text-l-body-md lg:font-l-body-md lg:leading-l-body-md lg:tracking-l-body-md',\n [TextVariant.BodySm]:\n 'text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm',\n [TextVariant.BodyXs]:\n 'text-s-body-xs font-s-body-xs leading-s-body-xs tracking-s-body-xs lg:text-l-body-xs lg:font-l-body-xs lg:leading-l-body-xs lg:tracking-l-body-xs',\n};\n\n// Update the Text component to use the TextVariant enum\nexport const Text: React.FC<TextProps> = ({ variant, children, className }) => {\n // Map the TextVariant to corresponding class names from typography.ts\n const variantClass = typographyClassMap[variant];\n\n return <p className={`${variantClass} ${className}`}>{children}</p>;\n};\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const react_2 = require("@testing-library/react");
|
|
8
|
+
const Text_1 = require("./Text.cjs");
|
|
9
|
+
describe('Text Component', () => {
|
|
10
|
+
it('renders children correctly', () => {
|
|
11
|
+
(0, react_2.render)(react_1.default.createElement(Text_1.Text, { variant: Text_1.TextVariant.BodyMd }, "Hello, World!"));
|
|
12
|
+
expect(react_2.screen.getByText('Hello, World!')).toBeInTheDocument();
|
|
13
|
+
});
|
|
14
|
+
it('applies the correct variant classes', () => {
|
|
15
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(Text_1.Text, { variant: Text_1.TextVariant.HeadingLg }, "Heading"));
|
|
16
|
+
expect(container.firstChild).toHaveClass('text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg');
|
|
17
|
+
});
|
|
18
|
+
it('merges additional class names', () => {
|
|
19
|
+
const { container } = (0, react_2.render)(react_1.default.createElement(Text_1.Text, { variant: Text_1.TextVariant.BodySm, className: "custom-class" }, "Custom Class"));
|
|
20
|
+
expect(container.firstChild).toHaveClass('text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm custom-class');
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=Text.test.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.test.cjs","sourceRoot":"","sources":["../src/Text.test.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAAwD;AACxD,qCAA2C;AAE3C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,IAAA,cAAM,EAAC,8BAAC,WAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,MAAM,oBAAsB,CAAC,CAAC;QAChE,MAAM,CAAC,cAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAC1B,8BAAC,WAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,SAAS,cAAgB,CACrD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CACtC,2KAA2K,CAC5K,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAC1B,8BAAC,WAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,MAAM,EAAE,SAAS,EAAC,cAAc,mBAEpD,CACR,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CACtC,gKAAgK,CACjK,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport { Text, TextVariant } from './Text';\n\ndescribe('Text Component', () => {\n it('renders children correctly', () => {\n render(<Text variant={TextVariant.BodyMd}>Hello, World!</Text>);\n expect(screen.getByText('Hello, World!')).toBeInTheDocument();\n });\n\n it('applies the correct variant classes', () => {\n const { container } = render(\n <Text variant={TextVariant.HeadingLg}>Heading</Text>,\n );\n expect(container.firstChild).toHaveClass(\n 'text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg',\n );\n });\n\n it('merges additional class names', () => {\n const { container } = render(\n <Text variant={TextVariant.BodySm} className=\"custom-class\">\n Custom Class\n </Text>,\n );\n expect(container.firstChild).toHaveClass(\n 'text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm custom-class',\n );\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.test.d.cts","sourceRoot":"","sources":["../src/Text.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.test.d.mts","sourceRoot":"","sources":["../src/Text.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
function $importDefault(module) {
|
|
2
|
+
if (module?.__esModule) {
|
|
3
|
+
return module.default;
|
|
4
|
+
}
|
|
5
|
+
return module;
|
|
6
|
+
}
|
|
7
|
+
import $React from "react";
|
|
8
|
+
const React = $importDefault($React);
|
|
9
|
+
import $testinglibraryreact from "@testing-library/react";
|
|
10
|
+
const { render, screen } = $testinglibraryreact;
|
|
11
|
+
import { Text, TextVariant } from "./Text.mjs";
|
|
12
|
+
describe('Text Component', () => {
|
|
13
|
+
it('renders children correctly', () => {
|
|
14
|
+
render(React.createElement(Text, { variant: TextVariant.BodyMd }, "Hello, World!"));
|
|
15
|
+
expect(screen.getByText('Hello, World!')).toBeInTheDocument();
|
|
16
|
+
});
|
|
17
|
+
it('applies the correct variant classes', () => {
|
|
18
|
+
const { container } = render(React.createElement(Text, { variant: TextVariant.HeadingLg }, "Heading"));
|
|
19
|
+
expect(container.firstChild).toHaveClass('text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg');
|
|
20
|
+
});
|
|
21
|
+
it('merges additional class names', () => {
|
|
22
|
+
const { container } = render(React.createElement(Text, { variant: TextVariant.BodySm, className: "custom-class" }, "Custom Class"));
|
|
23
|
+
expect(container.firstChild).toHaveClass('text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm custom-class');
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=Text.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.test.mjs","sourceRoot":"","sources":["../src/Text.test.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,MAAK,cAAc;;;;AAE1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAe;AAE3C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,MAAM,oBAAsB,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,SAAS,cAAgB,CACrD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CACtC,2KAA2K,CAC5K,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAC,cAAc,mBAEpD,CACR,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CACtC,gKAAgK,CACjK,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport { Text, TextVariant } from './Text';\n\ndescribe('Text Component', () => {\n it('renders children correctly', () => {\n render(<Text variant={TextVariant.BodyMd}>Hello, World!</Text>);\n expect(screen.getByText('Hello, World!')).toBeInTheDocument();\n });\n\n it('applies the correct variant classes', () => {\n const { container } = render(\n <Text variant={TextVariant.HeadingLg}>Heading</Text>,\n );\n expect(container.firstChild).toHaveClass(\n 'text-s-heading-lg font-s-heading-lg leading-s-heading-lg tracking-s-heading-lg lg:text-l-heading-lg lg:font-l-heading-lg lg:leading-l-heading-lg lg:tracking-l-heading-lg',\n );\n });\n\n it('merges additional class names', () => {\n const { container } = render(\n <Text variant={TextVariant.BodySm} className=\"custom-class\">\n Custom Class\n </Text>,\n );\n expect(container.firstChild).toHaveClass(\n 'text-s-body-sm font-s-body-sm leading-s-body-sm tracking-s-body-sm lg:text-l-body-sm lg:font-l-body-sm lg:leading-l-body-sm lg:tracking-l-body-sm custom-class',\n );\n });\n});\n"]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Text = exports.Button = void 0;
|
|
4
|
+
var Button_1 = require("./Button.cjs");
|
|
5
|
+
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } });
|
|
6
|
+
var Text_1 = require("./Text.cjs");
|
|
7
|
+
Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return Text_1.Text; } });
|
|
8
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,mCAA8B;AAArB,4FAAA,IAAI,OAAA","sourcesContent":["export { Button } from './Button';\nexport { Text } from './Text';\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,IAAI,EAAE,mBAAe"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,IAAI,EAAE,mBAAe"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAiB;AAClC,OAAO,EAAE,IAAI,EAAE,mBAAe","sourcesContent":["export { Button } from './Button';\nexport { Text } from './Text';\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metamask-previews/design-system-react",
|
|
3
|
+
"version": "0.0.0-preview.909f2e9",
|
|
4
|
+
"description": "Design system react ui components",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"MetaMask",
|
|
7
|
+
"Ethereum"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/MetaMask/metamask-design-system/tree/main/packages/design-system-react#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/MetaMask/metamask-design-system/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/MetaMask/metamask-design-system.git"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./dist/index.d.mts",
|
|
23
|
+
"default": "./dist/index.mjs"
|
|
24
|
+
},
|
|
25
|
+
"require": {
|
|
26
|
+
"types": "./dist/index.d.cts",
|
|
27
|
+
"default": "./dist/index.cjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"./package.json": "./package.json"
|
|
31
|
+
},
|
|
32
|
+
"main": "./dist/index.cjs",
|
|
33
|
+
"types": "./dist/index.d.cts",
|
|
34
|
+
"files": [
|
|
35
|
+
"dist/"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
|
|
39
|
+
"build:docs": "typedoc",
|
|
40
|
+
"changelog:update": "../../scripts/update-changelog.sh @metamask/design-system-react",
|
|
41
|
+
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/design-system-react",
|
|
42
|
+
"publish:preview": "yarn npm publish --tag preview",
|
|
43
|
+
"since-latest-release": "../../scripts/since-latest-release.sh",
|
|
44
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
|
|
45
|
+
"test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
|
|
46
|
+
"test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose",
|
|
47
|
+
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@metamask-previews/design-system-tailwind-preset": "0.0.0-preview.909f2e9",
|
|
51
|
+
"@metamask/auto-changelog": "^3.4.4",
|
|
52
|
+
"@storybook/react": "^8.3.5",
|
|
53
|
+
"@storybook/test": "^8.3.5",
|
|
54
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
55
|
+
"@testing-library/react": "^16.0.1",
|
|
56
|
+
"@types/jest": "^27.4.1",
|
|
57
|
+
"@types/react": "^18.2.0",
|
|
58
|
+
"@types/react-dom": "^18.2.0",
|
|
59
|
+
"deepmerge": "^4.2.2",
|
|
60
|
+
"jest": "^27.5.1",
|
|
61
|
+
"ts-jest": "^27.1.4",
|
|
62
|
+
"typedoc": "^0.24.8",
|
|
63
|
+
"typedoc-plugin-missing-exports": "^2.0.0",
|
|
64
|
+
"typescript": "~5.2.2"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"@metamask/design-tokens": "^4.0.0",
|
|
68
|
+
"react": "^16.0.0",
|
|
69
|
+
"react-dom": "^16.0.0",
|
|
70
|
+
"tailwindcss": "^3.0.0"
|
|
71
|
+
},
|
|
72
|
+
"engines": {
|
|
73
|
+
"node": "^18.18 || >=20"
|
|
74
|
+
},
|
|
75
|
+
"publishConfig": {
|
|
76
|
+
"access": "public",
|
|
77
|
+
"registry": "https://registry.npmjs.org/"
|
|
78
|
+
}
|
|
79
|
+
}
|