@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.
Files changed (44) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +20 -0
  3. package/README.md +15 -0
  4. package/dist/Button.cjs +10 -0
  5. package/dist/Button.cjs.map +1 -0
  6. package/dist/Button.d.cts +7 -0
  7. package/dist/Button.d.cts.map +1 -0
  8. package/dist/Button.d.mts +7 -0
  9. package/dist/Button.d.mts.map +1 -0
  10. package/dist/Button.mjs +10 -0
  11. package/dist/Button.mjs.map +1 -0
  12. package/dist/Button.test.cjs +29 -0
  13. package/dist/Button.test.cjs.map +1 -0
  14. package/dist/Button.test.d.cts +2 -0
  15. package/dist/Button.test.d.cts.map +1 -0
  16. package/dist/Button.test.d.mts +2 -0
  17. package/dist/Button.test.d.mts.map +1 -0
  18. package/dist/Button.test.mjs +32 -0
  19. package/dist/Button.test.mjs.map +1 -0
  20. package/dist/Text.cjs +40 -0
  21. package/dist/Text.cjs.map +1 -0
  22. package/dist/Text.d.cts +19 -0
  23. package/dist/Text.d.cts.map +1 -0
  24. package/dist/Text.d.mts +19 -0
  25. package/dist/Text.d.mts.map +1 -0
  26. package/dist/Text.mjs +40 -0
  27. package/dist/Text.mjs.map +1 -0
  28. package/dist/Text.test.cjs +23 -0
  29. package/dist/Text.test.cjs.map +1 -0
  30. package/dist/Text.test.d.cts +2 -0
  31. package/dist/Text.test.d.cts.map +1 -0
  32. package/dist/Text.test.d.mts +2 -0
  33. package/dist/Text.test.d.mts.map +1 -0
  34. package/dist/Text.test.mjs +26 -0
  35. package/dist/Text.test.mjs.map +1 -0
  36. package/dist/index.cjs +8 -0
  37. package/dist/index.cjs.map +1 -0
  38. package/dist/index.d.cts +3 -0
  39. package/dist/index.d.cts.map +1 -0
  40. package/dist/index.d.mts +3 -0
  41. package/dist/index.d.mts.map +1 -0
  42. package/dist/index.mjs +3 -0
  43. package/dist/index.mjs.map +1 -0
  44. 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).
@@ -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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Button.test.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.test.d.cts","sourceRoot":"","sources":["../src/Button.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Button.test.d.mts.map
@@ -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"]}
@@ -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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Text.test.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.test.d.cts","sourceRoot":"","sources":["../src/Text.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Text.test.d.mts.map
@@ -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"]}
@@ -0,0 +1,3 @@
1
+ export { Button } from "./Button.cjs";
2
+ export { Text } from "./Text.cjs";
3
+ //# sourceMappingURL=index.d.cts.map
@@ -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"}
@@ -0,0 +1,3 @@
1
+ export { Button } from "./Button.mjs";
2
+ export { Text } from "./Text.mjs";
3
+ //# sourceMappingURL=index.d.mts.map
@@ -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,3 @@
1
+ export { Button } from "./Button.mjs";
2
+ export { Text } from "./Text.mjs";
3
+ //# sourceMappingURL=index.mjs.map
@@ -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
+ }