@crystallize/design-system 1.1.0 → 1.2.1

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 (127) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/index.css +1764 -0
  3. package/dist/index.d.ts +282 -2
  4. package/dist/index.js +1806 -5
  5. package/dist/index.mjs +1750 -0
  6. package/package.json +84 -78
  7. package/readme.md +9 -0
  8. package/src/Tokens.stories.tsx +18 -0
  9. package/src/action-menu/ActionMenu.stories.tsx +25 -0
  10. package/src/action-menu/action-item.tsx +16 -0
  11. package/src/action-menu/action-menu.css +38 -0
  12. package/src/action-menu/action-menu.tsx +25 -0
  13. package/src/action-menu/index.tsx +3 -0
  14. package/src/avatar/Avatar.stories.tsx +20 -0
  15. package/src/avatar/avatar.css +23 -0
  16. package/src/avatar/avatar.tsx +34 -0
  17. package/src/avatar/get-initials.ts +5 -0
  18. package/src/avatar/index.ts +1 -0
  19. package/src/button/Button.stories.tsx +105 -0
  20. package/src/button/button.css +116 -0
  21. package/src/button/button.tsx +136 -0
  22. package/src/button/index.ts +3 -0
  23. package/src/card/card.css +7 -0
  24. package/src/card/card.stories.tsx +24 -0
  25. package/src/card/card.tsx +27 -0
  26. package/src/card/index.ts +3 -0
  27. package/src/checkbox/checkbox.css +30 -0
  28. package/src/checkbox/checkbox.stories.tsx +62 -0
  29. package/src/checkbox/checkbox.tsx +28 -0
  30. package/src/checkbox/index.ts +1 -0
  31. package/src/colors/Colors.stories.tsx +127 -0
  32. package/src/colors/color-defaults.json +15 -0
  33. package/src/colors/color-pairing.json +12 -0
  34. package/src/colors/colors.json +158 -0
  35. package/src/colors/index.ts +1 -0
  36. package/src/colors/old-to-new.txt +19 -0
  37. package/src/colors/types.ts +29 -0
  38. package/src/dialog/Dialog.stories.tsx +168 -0
  39. package/src/dialog/config.tsx +134 -0
  40. package/src/dialog/confirm-dialog.tsx +62 -0
  41. package/src/dialog/destroyFns.ts +1 -0
  42. package/src/dialog/dialog.css +27 -0
  43. package/src/dialog/dialog.tsx +94 -0
  44. package/src/dialog/index.tsx +40 -0
  45. package/src/dialog/types.ts +41 -0
  46. package/src/dropdown-menu/DropdownMenu.stories.tsx +38 -0
  47. package/src/dropdown-menu/dropdown-menu-item.tsx +15 -0
  48. package/src/dropdown-menu/dropdown-menu-label.tsx +10 -0
  49. package/src/dropdown-menu/dropdown-menu-root.tsx +24 -0
  50. package/src/dropdown-menu/dropdown-menu.css +20 -0
  51. package/src/dropdown-menu/index.ts +11 -0
  52. package/src/icon-button/IconButton.stories.tsx +38 -0
  53. package/src/icon-button/icon-button.css +40 -0
  54. package/src/icon-button/icon-button.tsx +34 -0
  55. package/src/icon-button/index.ts +3 -0
  56. package/src/iconography/Icon.stories.tsx +47 -0
  57. package/src/iconography/arrow.tsx +15 -0
  58. package/src/iconography/atom.tsx +59 -0
  59. package/src/iconography/cancel.tsx +26 -0
  60. package/src/iconography/copy.tsx +24 -0
  61. package/src/iconography/crystal.tsx +93 -0
  62. package/src/iconography/edit.tsx +30 -0
  63. package/src/iconography/error.tsx +40 -0
  64. package/src/iconography/glasses.tsx +62 -0
  65. package/src/iconography/graphQL.tsx +90 -0
  66. package/src/iconography/index.ts +29 -0
  67. package/src/iconography/info.tsx +41 -0
  68. package/src/iconography/nail-polish.tsx +84 -0
  69. package/src/iconography/particle.tsx +88 -0
  70. package/src/iconography/triangle.tsx +27 -0
  71. package/src/iconography/warning.tsx +51 -0
  72. package/src/index.css +14 -0
  73. package/src/index.ts +32 -0
  74. package/src/inline-radio/index.ts +1 -0
  75. package/src/inline-radio/inline-radio.css +20 -0
  76. package/src/inline-radio/inline-radio.stories.tsx +62 -0
  77. package/src/inline-radio/inline-radio.tsx +26 -0
  78. package/src/input/Input.stories.tsx +26 -0
  79. package/src/input/index.ts +1 -0
  80. package/src/input/input.css +7 -0
  81. package/src/input/input.tsx +20 -0
  82. package/src/input-with-label/InputWithLabel.stories.tsx +98 -0
  83. package/src/input-with-label/index.ts +3 -0
  84. package/src/input-with-label/input-with-label.css +35 -0
  85. package/src/input-with-label/input-with-label.tsx +59 -0
  86. package/src/label/index.ts +1 -0
  87. package/src/label/label.css +3 -0
  88. package/src/label/label.stories.tsx +19 -0
  89. package/src/label/label.tsx +13 -0
  90. package/src/progress/Progress.stories.tsx +26 -0
  91. package/src/progress/index.ts +1 -0
  92. package/src/progress/progress.css +7 -0
  93. package/src/progress/progress.tsx +17 -0
  94. package/src/radio/index.ts +1 -0
  95. package/src/radio/radio.css +20 -0
  96. package/src/radio/radio.stories.tsx +142 -0
  97. package/src/radio/radio.tsx +19 -0
  98. package/src/select/index.ts +1 -0
  99. package/src/select/select-item.tsx +18 -0
  100. package/src/select/select-root.tsx +34 -0
  101. package/src/select/select.css +28 -0
  102. package/src/select/select.stories.tsx +74 -0
  103. package/src/select/select.ts +9 -0
  104. package/src/slider/Slider.stories.tsx +54 -0
  105. package/src/slider/index.ts +1 -0
  106. package/src/slider/slider.css +27 -0
  107. package/src/slider/slider.tsx +19 -0
  108. package/src/spinner/Spinner.stories.tsx +19 -0
  109. package/src/spinner/index.tsx +48 -0
  110. package/src/spinner/spinner.css +11 -0
  111. package/src/tag/Tag.stories.tsx +32 -0
  112. package/src/tag/index.ts +1 -0
  113. package/src/tag/tag.css +7 -0
  114. package/src/tag/tag.tsx +27 -0
  115. package/src/vite-env.d.ts +1 -0
  116. package/tailwind.config.cjs +51 -0
  117. package/LICENSE +0 -21
  118. package/README.md +0 -35
  119. package/dist/components/Button.d.ts +0 -11
  120. package/dist/components/Typography.d.ts +0 -14
  121. package/dist/design-system.cjs.development.js +0 -164
  122. package/dist/design-system.cjs.development.js.map +0 -1
  123. package/dist/design-system.cjs.production.min.js +0 -2
  124. package/dist/design-system.cjs.production.min.js.map +0 -1
  125. package/dist/design-system.esm.js +0 -156
  126. package/dist/design-system.esm.js.map +0 -1
  127. package/dist/styles/theme.d.ts +0 -2
@@ -0,0 +1,54 @@
1
+ import type { StoryObj, Meta } from '@storybook/react';
2
+ import { useState } from 'react';
3
+ import { Slider } from '.';
4
+
5
+ const meta: Meta<typeof Slider> = {
6
+ title: 'Components/Slider',
7
+ component: Slider,
8
+ argTypes: {},
9
+ };
10
+
11
+ export default meta;
12
+ type Story = StoryObj<typeof Slider>;
13
+
14
+ export const Default: Story = {
15
+ args: {
16
+ 'aria-label': 'volume',
17
+ defaultValue: [50],
18
+ max: 100,
19
+ step: 1,
20
+ },
21
+ };
22
+
23
+ export const Vertical: Story = {
24
+ args: {
25
+ 'aria-label': 'volume',
26
+ defaultValue: [25],
27
+ max: 100,
28
+ orientation: 'vertical',
29
+ step: 1,
30
+ },
31
+ };
32
+
33
+ export const TransparentRange: Story = {
34
+ args: {
35
+ 'aria-label': 'volume',
36
+ defaultValue: [25],
37
+ max: 100,
38
+ step: 1,
39
+ transparentRange: true,
40
+ },
41
+ };
42
+
43
+ export const Controlled: Story = {
44
+ render: () => {
45
+ const [value, setValue] = useState<number[]>([25]);
46
+
47
+ return (
48
+ <div className="space-y-6">
49
+ <Slider aria-label="volume" step={1} max={100} onValueChange={setValue} value={value} />
50
+ <pre>{value}</pre>
51
+ </div>
52
+ );
53
+ },
54
+ };
@@ -0,0 +1 @@
1
+ export { Slider } from './slider';
@@ -0,0 +1,27 @@
1
+ .c-slider-root {
2
+ @apply relative flex w-52 touch-none select-none items-center;
3
+ @apply data-[orientation='horizontal']:h-5;
4
+ @apply data-[orientation='vertical']:h-28 data-[orientation='vertical']:w-5 data-[orientation='vertical']:flex-col;
5
+ }
6
+
7
+ .c-slider-track {
8
+ @apply relative grow rounded-full bg-gray-100-800;
9
+ @apply data-[orientation='horizontal']:h-[3px];
10
+ @apply data-[orientation='vertical']:w-[3px];
11
+ }
12
+
13
+ .c-slider-range {
14
+ @apply absolute rounded-full bg-gray-600-300;
15
+ @apply data-[orientation="horizontal"]:h-full;
16
+ @apply data-[orientation="vertical"]:w-full;
17
+ }
18
+
19
+ .c-slider-range-transparent {
20
+ @apply bg-transparent;
21
+ }
22
+
23
+ .c-slider-thumb {
24
+ @apply block h-5 w-5 rounded-xl bg-gray-600-300 shadow;
25
+ @apply hover:bg-gray-700-200;
26
+ @apply focus:shadow-lg focus:outline-none;
27
+ }
@@ -0,0 +1,19 @@
1
+ import * as SliderPrimitive from '@radix-ui/react-slider';
2
+ import { forwardRef } from 'react';
3
+
4
+ import './slider.css';
5
+
6
+ type SliderProps = SliderPrimitive.SliderProps & {
7
+ transparentRange?: boolean;
8
+ };
9
+
10
+ export const Slider = forwardRef<HTMLSpanElement, SliderProps>(({ transparentRange, ...delegated }, ref) => {
11
+ return (
12
+ <SliderPrimitive.Root className="c-slider-root" ref={ref} {...delegated}>
13
+ <SliderPrimitive.Track className="c-slider-track">
14
+ <SliderPrimitive.Range className={`c-slider-range ${transparentRange ? 'c-slider-range-transparent' : ''}`} />
15
+ </SliderPrimitive.Track>
16
+ <SliderPrimitive.Thumb className="c-slider-thumb" />
17
+ </SliderPrimitive.Root>
18
+ );
19
+ });
@@ -0,0 +1,19 @@
1
+ import type { StoryObj, Meta } from '@storybook/react';
2
+ import { Spinner } from '.';
3
+
4
+ const meta: Meta<typeof Spinner> = {
5
+ title: 'Components/Spinner',
6
+ component: Spinner,
7
+ argTypes: {
8
+ size: {
9
+ defaultValue: 30,
10
+ },
11
+ },
12
+ };
13
+
14
+ export default meta;
15
+ type Story = StoryObj<typeof Spinner>;
16
+
17
+ export const Default: Story = {
18
+ args: {},
19
+ };
@@ -0,0 +1,48 @@
1
+ import { cx } from 'class-variance-authority';
2
+ import { ComponentPropsWithRef, forwardRef, ReactNode } from 'react';
3
+
4
+ import './spinner.css';
5
+
6
+ const realSize = 40;
7
+
8
+ type SpinnerProps = ComponentPropsWithRef<'div'> & {
9
+ children?: ReactNode;
10
+ className?: string;
11
+ color?: string;
12
+ size?: number;
13
+ strokeSize?: number;
14
+ };
15
+
16
+ export const Spinner = forwardRef<HTMLDivElement, SpinnerProps>(
17
+ ({ children, className, color = 'currentColor', size = 30, strokeSize, ...delegated }, ref) => {
18
+ const viewSize = size || realSize;
19
+ const sizeHalf = realSize / 2;
20
+
21
+ return (
22
+ <div ref={ref} className={cx('c-spinner', className)} data-testid="loading-spinner" {...delegated}>
23
+ <svg viewBox={`0 0 ${realSize} ${realSize}`} x="0px" y="0px" style={{ width: viewSize, height: viewSize }}>
24
+ <circle
25
+ cx="20"
26
+ cy="20"
27
+ r="18"
28
+ style={{
29
+ stroke: color,
30
+ strokeWidth: strokeSize ? strokeSize : viewSize / 10,
31
+ strokeLinecap: 'round',
32
+ strokeDasharray: size < 16 ? size * 6 : size * 3.5,
33
+ transformOrigin: `${sizeHalf}px ${sizeHalf}px 0`,
34
+ }}
35
+ className="c-spinner-artifact"
36
+ />
37
+ </svg>
38
+ {children && (
39
+ <span className="c-spinner-children" style={{ fontSize: size ? `${size * 0.75}px` : '1em' }}>
40
+ {children}
41
+ </span>
42
+ )}
43
+ </div>
44
+ );
45
+ },
46
+ );
47
+
48
+ Spinner.displayName = 'Spinner';
@@ -0,0 +1,11 @@
1
+ .c-spinner {
2
+ @apply inline-flex items-center;
3
+
4
+ &-artifact {
5
+ @apply animate-spin fill-transparent;
6
+ }
7
+
8
+ &-children {
9
+ @apply ml-[15px] inline-block;
10
+ }
11
+ }
@@ -0,0 +1,32 @@
1
+ import type { StoryObj, Meta } from '@storybook/react';
2
+ import { Tag } from '.';
3
+
4
+ const meta: Meta<typeof Tag> = {
5
+ title: 'Components/Tag',
6
+ component: Tag,
7
+ argTypes: {},
8
+ };
9
+
10
+ export default meta;
11
+ type Story = StoryObj<typeof Tag>;
12
+
13
+ export const Default: Story = {
14
+ args: {
15
+ children: 'EUR',
16
+ },
17
+ };
18
+
19
+ export const Elevate: Story = {
20
+ args: {
21
+ children: 'EUR',
22
+ variant: 'elevate',
23
+ },
24
+ };
25
+
26
+ export const DarkMode: Story = {
27
+ args: {
28
+ children: '%',
29
+ variant: 'elevate',
30
+ className: 'c-dark',
31
+ },
32
+ };
@@ -0,0 +1 @@
1
+ export { Tag } from './tag';
@@ -0,0 +1,7 @@
1
+ .c-tag {
2
+ @apply inline-flex items-center rounded border border-solid border-gray-200-700 bg-purple-50-900 p-1 text-center text-xs font-medium text-gray-700-200 shadow-sm;
3
+ }
4
+
5
+ .c-tag-elevate {
6
+ @apply bg-elevate;
7
+ }
@@ -0,0 +1,27 @@
1
+ import { cva, VariantProps } from 'class-variance-authority';
2
+ import type { ComponentProps } from 'react';
3
+
4
+ import './tag.css';
5
+
6
+ type TagStylesProps = VariantProps<typeof tagStyles>;
7
+ const tagStyles = cva('c-tag', {
8
+ variants: {
9
+ variant: {
10
+ default: '',
11
+ elevate: 'c-tag-elevate',
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ variant: 'default',
16
+ },
17
+ });
18
+
19
+ export type TagProps = ComponentProps<'span'> & TagStylesProps;
20
+
21
+ export function Tag({ children, className, variant, ...delegated }: TagProps) {
22
+ return (
23
+ <span className={tagStyles({ className, variant })} {...delegated}>
24
+ {children}
25
+ </span>
26
+ );
27
+ }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -0,0 +1,51 @@
1
+ /* eslint-disable @typescript-eslint/no-var-requires */
2
+ const defaultTheme = require('tailwindcss/defaultTheme');
3
+ const colorsPlugin = require('./plugins/colors');
4
+
5
+ /** @type {import("tailwindcss").Config} */
6
+ module.exports = {
7
+ content: ['./src/**/*.tsx'],
8
+ safelist: ['c-dark'],
9
+ experimental: {
10
+ optimizeUniversalDefaults: true,
11
+ },
12
+ corePlugins: {
13
+ preflight: false,
14
+ },
15
+ theme: {
16
+ extend: {
17
+ fontFamily: {
18
+ sans: ['Roboto', ...defaultTheme.fontFamily.sans],
19
+ serif: ["'Roboto Slab'", ...defaultTheme.fontFamily.serif],
20
+ },
21
+ colors: {
22
+ // Some nice-to-have colors
23
+ transparent: 'transparent',
24
+ inherit: 'inherit',
25
+ },
26
+ keyframes: {
27
+ spin: {
28
+ '0%': {
29
+ transform: 'rotate(0deg)',
30
+ strokeDashoffset: 26.4, // 40 * 0.66
31
+ },
32
+ '50%': {
33
+ transform: 'rotate(720deg)',
34
+ strokeDashoffset: 125.6, // 40 * 3.14
35
+ },
36
+ '100%': {
37
+ transform: 'rotate(1080deg)',
38
+ strokeDashoffset: 26.4, // 40 * 0.66
39
+ },
40
+ },
41
+ },
42
+ animation: {
43
+ spin: 'spin 2s linear infinite',
44
+ },
45
+ boxShadow: {
46
+ DEFAULT: '0 2px 4px rgba(130,138,144,0.15)',
47
+ },
48
+ },
49
+ },
50
+ plugins: [colorsPlugin],
51
+ };
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2021 deekshasharma
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
21
- SOFTWARE.
package/README.md DELETED
@@ -1,35 +0,0 @@
1
- # How to install this library?
2
-
3
- ```bash
4
- yarn add @crystallize/ui styled-components
5
- ```
6
-
7
- Note: You also need React to be able to work with this library.
8
-
9
- ### How to import and use Button component
10
-
11
- ```js
12
- import {Button} from "@crystallize/ui";
13
-
14
- function App() {
15
- return (
16
- <div className="App" style={{justifyContent: "space-between", alignItems: "center", marginTop: "10vh"}}>
17
- <Button color={"primary"} variant="filled" size={"large"}>Add to Cart</Button>
18
- </div>
19
- );
20
- }
21
- ```
22
-
23
- ### How to import and use Typography component
24
-
25
- ```js
26
- import {Typography} from "@crystallize/ui";
27
-
28
- function App() {
29
- return (
30
- <div className="App" style={{justifyContent: "space-between", alignItems: "center", marginTop: "10vh"}}>
31
- <Typography color={"primary"} style={"h3"} align={"center"}>Headless e-Commerce is the future!</Typography>
32
- </div>
33
- );
34
- }
35
- ```
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- export interface ButtonProps {
3
- color?: 'primary' | 'secondary' | 'default';
4
- variant?: 'filled' | 'outlined' | 'text';
5
- size?: 'small' | 'medium' | 'large';
6
- onClick?: () => void;
7
- fullWidth?: boolean;
8
- disabled?: boolean;
9
- children?: React.ReactNode;
10
- }
11
- export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- export interface TypographyProps {
3
- color?: 'primary' | 'secondary' | 'primaryText' | 'secondaryText' | 'error';
4
- style?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'subtitle1' | 'subtitle2' | 'body1' | 'body2' | 'caption' | 'overline';
5
- underline?: boolean;
6
- bold?: boolean;
7
- display?: 'inline' | 'block' | 'inherit';
8
- gutter?: boolean;
9
- align?: 'left' | 'right' | 'center' | 'justify' | 'initial' | 'inherit';
10
- ellipsis?: boolean;
11
- textParagraph?: boolean;
12
- children?: React.ReactNode;
13
- }
14
- export declare const Typography: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLSpanElement>>;
@@ -1,164 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
- var React = _interopDefault(require('react'));
8
- var styled = require('styled-components');
9
- var styled__default = _interopDefault(styled);
10
-
11
- function _extends() {
12
- _extends = Object.assign || function (target) {
13
- for (var i = 1; i < arguments.length; i++) {
14
- var source = arguments[i];
15
-
16
- for (var key in source) {
17
- if (Object.prototype.hasOwnProperty.call(source, key)) {
18
- target[key] = source[key];
19
- }
20
- }
21
- }
22
-
23
- return target;
24
- };
25
-
26
- return _extends.apply(this, arguments);
27
- }
28
-
29
- function _taggedTemplateLiteralLoose(strings, raw) {
30
- if (!raw) {
31
- raw = strings.slice(0);
32
- }
33
-
34
- strings.raw = raw;
35
- return strings;
36
- }
37
-
38
- var _templateObject;
39
- var GlobalStyle = /*#__PURE__*/styled.createGlobalStyle(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n :root {\n --palette-common-white: #ffffff;\n --palette-common-black: #000000;\n \n --palette-primary-light: #CEEAE7;\n --palette-primary-main: #8fdecb;\n --palette-primary-dark: #8FDDCA;\n --palette-primary-contrastText: #4C4F5A;\n --palette-primary-400: #EDF7F6;\n --palette-primary-600: #68baa6;\n \n --palette-secondary-light: #FEFCDD;\n --palette-secondary-main: #FFEFD2;\n --palette-secondary-dark: #ba9147;\n --palette-secondary-contrastText: #4C4F5A;\n --palette-secondary-400: #fff7e8;\n \n --palette-error-light: #f47f98;\n --palette-error-main: #EF4836;\n --palette-error-dark: #d32f2f;\n --palette-error-contrastText: #ffffff;\n \n --palette-text-primary: #4C4F5A;\n --palette-text-secondary: rgba(0, 0, 0, 0.54);\n --palette-text-disabled: rgba(0, 0, 0, 0.38);\n --palette-text-hint: rgba(0, 0, 0, 0.38);\n \n --palette-action-disabled: rgba(0, 0, 0, 0.07);\n --palette-action-hover: rgba(0, 0, 0, 0.04);\n --palette-action-disabledBackground: rgba(0, 0, 0, 0.05);\n \n --border-radius-small: 10px;\n --border-radius-default: 40px;\n \n --shadow-none: none;\n --shadow-01: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);\n --shadow-02: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);\n --shadow-03: 0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12);\n --shadow-04: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);\n --shadow-05: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12);\n --shadow-06: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);\n --shadow-07: 0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12);\n --shadow-08: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);\n \n --ease-out:cubic-bezier(0.0, 0, 0.2, 1); \n --ease-in:cubic-bezier(0.4, 0, 1, 1); \n \n --spacing-sm: 10;\n --spacing-md: 20;\n --spacing-lg: 30;\n\n --html-font-size: 16;\n --default-font-size: 14;\n --font-weight-light: 300;\n --font-weight-regular: 400;\n --font-weight-medium: 500;\n --font-weight-bold: 700;\n --typography-gutter:0.35em;\n\n --default-font-family: 'Roboto', sans-serif;\n\n --caption-font-size: 0.75rem;\n --caption-line-height: 1.66;\n --caption-letter-spacing: 0.03333em;\n\n --overline-font-size: 0.75rem;\n --overline-line-height: 2.66;\n --overline-letter-spacing: 0.08333em;\n --overline-text-transform: uppercase;\n \n --body1-font-size: 1rem;\n --body1-line-height: 1.5;\n --body1-letter-spacing: 0.00938em;\n\n --body2-font-size: 0.875rem;\n --body2-line-height: 1.43;\n --body2-letter-spacing: 0.01071em;\n \n --subtitle1-font-size: 1rem;\n --subtitle1-line-height: 1.75;\n --subtitle1-letter-spacing: 0.00938em;\n\n --subtitle2-font-size: 0.875rem;\n --subtitle2-line-height: 1.57;\n --subtitle2-letter-spacing: 0.00714em;\n }\n \n button {\n font-family: var(--default-font-family);\n font-weight: var(--font-weight-medium);\n font-size: 0.875rem;\n line-height: 1.75;\n letter-spacing: 0.02857em;\n text-transform: uppercase;\n cursor: pointer;\n }\n \n \n h1 {\n font-weight: var(--font-weight-light);\n font-size: 6rem;\n line-height: 1.167;\n letter-spacing: -0.01562em;\n }\n \n h2 {\n font-weight: var(--font-weight-light);\n font-size: 3.75rem;\n line-height: 1.2;\n letter-spacing: -0.00833em;\n }\n \n h3 {\n font-weight: var(--font-weight-regular);\n font-size: 3rem;\n line-height: 1.167;\n letter-spacing: 0em;\n }\n\n h4 {\n font-weight: var(--font-weight-regular);\n font-size: 2.125rem;\n line-height: 1.235;\n letter-spacing: 0.00735em;\n }\n\n h5 {\n font-weight: var(--font-weight-regular);\n font-size: 1.5rem;\n line-height: 1.334;\n letter-spacing: 0em;\n }\n\n h6 {\n font-weight: var(--font-weight-medium);\n font-size: 1.25rem;\n line-height: 1.6;\n letter-spacing: 0.0075em;\n }\n"])));
40
- var getRemSize = function getRemSize(fontSize) {
41
- var defaultFontSize = 14;
42
- var htmlFontSize = 16;
43
- var coefficient = defaultFontSize / 14;
44
- return fontSize / htmlFontSize * coefficient;
45
- };
46
-
47
- var _templateObject$1, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
48
- var outlined = /*#__PURE__*/styled.css(_templateObject$1 || (_templateObject$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--palette-text-primary);\n padding: 5px 15px;\n border: 0.4px solid var(--palette-text-secondary);\n border-radius: var(--border-radius-default);\n &:hover {\n background-color: var(--palette-action-hover);\n }\n &:disabled {\n border: 1px solid var(--palette-action-disabled);\n background-color: var(--palette-action-disabled);\n }\n"])));
49
- var outlinedPrimary = /*#__PURE__*/styled.css(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--palette-primary-600);\n background-color: transparent;\n border: 1px solid var(--palette-primary-600);\n &:hover {\n border: 1px solid var(--palette-primary-dark);\n background-color: var(--palette-primary-400);\n }\n &:active {\n box-shadow: var(--shadow-05);\n }\n &:disabled {\n border: 1px solid var(--palette-action-disabled);\n color: var(--palette-text-disabled);\n background-color: var(--palette-action-disabled);\n }\n"])));
50
- var outlinedSecondary = /*#__PURE__*/styled.css(_templateObject3 || (_templateObject3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--palette-secondary-dark);\n background-color: transparent;\n border: 1px solid var(--palette-secondary-dark);\n &:hover {\n background-color: var(--palette-secondary-400);\n }\n &:active {\n box-shadow: var(--shadow-02);\n }\n &:disabled {\n border: 1px solid var(--palette-action-disabled);\n color: var(--palette-text-disabled);\n background-color: var(--palette-action-disabled);\n }\n"])));
51
- var filled = /*#__PURE__*/styled.css(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--palette-common-white);\n color: var(--palette-primary-contrastText);\n border-radius: var(--border-radius-default);\n box-shadow: var(--shadow-02);\n &:hover {\n background-color: var(--palette-action-hover);\n box-shadow: var(--shadow-04);\n }\n &:active {\n box-shadow: var(--shadow-08);\n }\n &:focus-visible {\n box-shadow: var(--shadow-06);\n }\n &:disabled {\n background-color: var(--palette-action-disabled);\n box-shadow: var(--shadow-none);\n }\n"])));
52
- var filledPrimary = /*#__PURE__*/styled.css(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--palette-primary-main);\n color: var(--palette-primary-contrastText);\n border-radius: var(--border-radius-default);\n &:hover {\n background-color: var(--palette-primary-dark);\n }\n &:disabled {\n background-color: var(--palette-action-disabled);\n }\n"])));
53
- var filledSecondary = /*#__PURE__*/styled.css(_templateObject6 || (_templateObject6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--palette-secondary-main);\n color: var(--palette-secondary-contrastText);\n border-radius: var(--border-radius-default);\n &:hover {\n background-color: var(--palette-secondary-dark);\n }\n &:disabled {\n background-color: var(--palette-action-disabled);\n }\n"])));
54
- var StyledButton = /*#__PURE__*/styled__default.button(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n border-style: none;\n outline: 0;\n display: inline-block;\n padding: 6px 16px;\n color: var(--palette-text-primary);\n background-color: transparent;\n\n /* color=primary and variant=text*/\n ", "\n\n /* color=secondary and variant=text*/\n ", "\n\n /* size=small*/\n ", "\n\n /* size=large*/\n ", ";\n\n /*variant=outlined*/\n ", ";\n\n /*variant=filled*/\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n ", ";\n\n"])), function (props) {
55
- return props.$color === 'primary' && styled.css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n color: var(--palette-primary-600);\n &:hover {\n background-color: var(--palette-primary-400);\n }\n &:disabled {\n background-color: transparent;\n }\n "])));
56
- }, function (props) {
57
- return props.$color === 'secondary' && styled.css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n color: var(--palette-secondary-dark);\n &:hover {\n background-color: var(--palette-secondary-400);\n }\n &:disabled {\n background-color: transparent;\n }\n "])));
58
- }, function (props) {
59
- return props.$size === 'small' && styled.css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n padding: 6px 12px;\n font-size: ", "rem;\n "])), getRemSize(13));
60
- }, function (props) {
61
- return props.$size === 'large' && styled.css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n padding: 8px 14px;\n font-size: ", "rem;\n "])), getRemSize(15));
62
- }, function (props) {
63
- return props.$variant === 'outlined' && outlined;
64
- }, function (props) {
65
- return props.$variant === 'filled' && filled;
66
- }, function (props) {
67
- return props.$fullWidth && styled.css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])));
68
- }, function (props) {
69
- return props.disabled && styled.css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n color: var(--palette-text-disabled);\n box-shadow: var(--shadow-none);\n "])));
70
- }, function (props) {
71
- return props.$variant === 'outlined' && props.$color === 'primary' && outlinedPrimary;
72
- }, function (props) {
73
- return props.$variant === 'outlined' && props.$color === 'secondary' && outlinedSecondary;
74
- }, function (props) {
75
- return props.$variant === 'filled' && props.$color === 'primary' && filledPrimary;
76
- }, function (props) {
77
- return props.$variant === 'filled' && props.$color === 'secondary' && filledSecondary;
78
- });
79
- var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
80
- var props = _extends({}, _ref);
81
-
82
- return React.createElement(React.Fragment, null, React.createElement(GlobalStyle, null), React.createElement(StyledButton, Object.assign({
83
- ref: ref,
84
- "$color": props.color || 'default',
85
- "$size": props.size || 'medium',
86
- "$fullWidth": props.fullWidth || false,
87
- disabled: props.disabled || false,
88
- "$variant": props.variant || 'text'
89
- }, props), props.children));
90
- });
91
-
92
- var _templateObject$2, _templateObject2$1, _templateObject3$1, _templateObject4$1, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8$1;
93
- var withEllipsis = /*#__PURE__*/styled.css(_templateObject$2 || (_templateObject$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])));
94
- var gutterBottom = "margin-bottom: var(--typography-gutter);";
95
- var paragraph = "margin-bottom: 16px;";
96
- var primaryColor = "color: var(--palette-primary-600);";
97
- var secondaryColor = "color: var(--palette-secondary-dark);";
98
- var primaryTextColor = "color: var(--palette-text-primary);";
99
- var secondaryTextColor = "color: var(--palette-text-secondary);";
100
- var errorColor = "color: var(--palette-error-main);";
101
- var Caption = /*#__PURE__*/styled.css(_templateObject2$1 || (_templateObject2$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--caption-font-size);\n line-height: var(--caption-line-height);\n letter-spacing: var(--caption-letter-spacing);\n"])));
102
- var Overline = /*#__PURE__*/styled.css(_templateObject3$1 || (_templateObject3$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--overline-font-size);\n line-height: var(--overline-line-height);\n letter-spacing: var(--overline-letter-spacing);\n text-transform: var(--overline-text-transform);\n"])));
103
- var Body2 = /*#__PURE__*/styled.css(_templateObject4$1 || (_templateObject4$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--body2-font-size);\n line-height: var(--body2-line-height);\n letter-spacing: var(--body2-letter-spacing);\n"])));
104
- var Body1 = /*#__PURE__*/styled.css(_templateObject5$1 || (_templateObject5$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--body1-font-size);\n line-height: var(--body1-line-height);\n letter-spacing: var(--body1-letter-spacing);\n"])));
105
- var Subtitle2 = /*#__PURE__*/styled.css(_templateObject6$1 || (_templateObject6$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-weight: var(--font-weight-medium);\n font-size: var(--subtitle2-font-size);\n line-height: var(--subtitle2-line-height);\n letter-spacing: var(--subtitle2-letter-spacing);\n"])));
106
- var Subtitle1 = /*#__PURE__*/styled.css(_templateObject7$1 || (_templateObject7$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--subtitle1-font-size);\n line-height: var(--subtitle1-line-height);\n letter-spacing: var(--subtitle1-letter-spacing);\n"])));
107
- var StyledTypography = /*#__PURE__*/styled__default.span(_templateObject8$1 || (_templateObject8$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: var(--default-font-family);\n margin: 0;\n display: ", ";\n text-align: ", ";\n text-decoration-line: ", ";\n font-weight: ", ";\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n"])), function (props) {
108
- return props.$display ? props.$display : "inherit";
109
- }, function (props) {
110
- return props.$align ? props.$align : "inherit";
111
- }, function (props) {
112
- return props.$underline && "underline";
113
- }, function (props) {
114
- return props.$bold ? "bold" : "var(--font-weight-regular)";
115
- }, function (props) {
116
- return props.$ellipsis && props.$display === 'block' && withEllipsis;
117
- }, function (props) {
118
- return props.$textParagraph && paragraph;
119
- }, function (props) {
120
- return props.$gutter && gutterBottom;
121
- }, function (props) {
122
- return props.$color === 'primary' && primaryColor;
123
- }, function (props) {
124
- return props.$color === 'secondary' && secondaryColor;
125
- }, function (props) {
126
- return props.$color === 'secondaryText' && secondaryTextColor;
127
- }, function (props) {
128
- return props.$color === 'error' && errorColor;
129
- }, function (props) {
130
- return (props.$color === 'primaryText' || !props.$color) && primaryTextColor;
131
- }, function (props) {
132
- return props.$style === 'subtitle1' && Subtitle1;
133
- }, function (props) {
134
- return props.$style === 'subtitle2' && Subtitle2;
135
- }, function (props) {
136
- return props.$style === 'body1' && Body1;
137
- }, function (props) {
138
- return props.$style === 'body2' && Body2;
139
- }, function (props) {
140
- return props.$style === 'overline' && Overline;
141
- }, function (props) {
142
- return props.$style === 'caption' && Caption;
143
- });
144
- var Typography = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
145
- var props = _extends({}, _ref);
146
-
147
- return React.createElement(React.Fragment, null, React.createElement(GlobalStyle, null), React.createElement(StyledTypography, {
148
- ref: ref,
149
- "$color": props.color || 'primaryText',
150
- "$style": props.style || 'subtitle1',
151
- "$display": props.display || 'inherit',
152
- "$gutter": props.gutter || false,
153
- "$align": props.align || 'inherit',
154
- "$ellipsis": props.ellipsis || false,
155
- "$textParagraph": props.textParagraph || false,
156
- "$underline": props.underline || false,
157
- "$bold": props.bold || false,
158
- as: props.style
159
- }, props.children));
160
- });
161
-
162
- exports.Button = Button;
163
- exports.Typography = Typography;
164
- //# sourceMappingURL=design-system.cjs.development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-system.cjs.development.js","sources":["../src/styles/theme.ts","../src/components/Button.tsx","../src/components/Typography.tsx"],"sourcesContent":["import { createGlobalStyle } from 'styled-components';\n\nexport const GlobalStyle = createGlobalStyle`\n :root {\n --palette-common-white: #ffffff;\n --palette-common-black: #000000;\n \n --palette-primary-light: #CEEAE7;\n --palette-primary-main: #8fdecb;\n --palette-primary-dark: #8FDDCA;\n --palette-primary-contrastText: #4C4F5A;\n --palette-primary-400: #EDF7F6;\n --palette-primary-600: #68baa6;\n \n --palette-secondary-light: #FEFCDD;\n --palette-secondary-main: #FFEFD2;\n --palette-secondary-dark: #ba9147;\n --palette-secondary-contrastText: #4C4F5A;\n --palette-secondary-400: #fff7e8;\n \n --palette-error-light: #f47f98;\n --palette-error-main: #EF4836;\n --palette-error-dark: #d32f2f;\n --palette-error-contrastText: #ffffff;\n \n --palette-text-primary: #4C4F5A;\n --palette-text-secondary: rgba(0, 0, 0, 0.54);\n --palette-text-disabled: rgba(0, 0, 0, 0.38);\n --palette-text-hint: rgba(0, 0, 0, 0.38);\n \n --palette-action-disabled: rgba(0, 0, 0, 0.07);\n --palette-action-hover: rgba(0, 0, 0, 0.04);\n --palette-action-disabledBackground: rgba(0, 0, 0, 0.05);\n \n --border-radius-small: 10px;\n --border-radius-default: 40px;\n \n --shadow-none: none;\n --shadow-01: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);\n --shadow-02: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);\n --shadow-03: 0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12);\n --shadow-04: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);\n --shadow-05: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12);\n --shadow-06: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);\n --shadow-07: 0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12);\n --shadow-08: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);\n \n --ease-out:cubic-bezier(0.0, 0, 0.2, 1); \n --ease-in:cubic-bezier(0.4, 0, 1, 1); \n \n --spacing-sm: 10;\n --spacing-md: 20;\n --spacing-lg: 30;\n\n --html-font-size: 16;\n --default-font-size: 14;\n --font-weight-light: 300;\n --font-weight-regular: 400;\n --font-weight-medium: 500;\n --font-weight-bold: 700;\n --typography-gutter:0.35em;\n\n --default-font-family: 'Roboto', sans-serif;\n\n --caption-font-size: 0.75rem;\n --caption-line-height: 1.66;\n --caption-letter-spacing: 0.03333em;\n\n --overline-font-size: 0.75rem;\n --overline-line-height: 2.66;\n --overline-letter-spacing: 0.08333em;\n --overline-text-transform: uppercase;\n \n --body1-font-size: 1rem;\n --body1-line-height: 1.5;\n --body1-letter-spacing: 0.00938em;\n\n --body2-font-size: 0.875rem;\n --body2-line-height: 1.43;\n --body2-letter-spacing: 0.01071em;\n \n --subtitle1-font-size: 1rem;\n --subtitle1-line-height: 1.75;\n --subtitle1-letter-spacing: 0.00938em;\n\n --subtitle2-font-size: 0.875rem;\n --subtitle2-line-height: 1.57;\n --subtitle2-letter-spacing: 0.00714em;\n }\n \n button {\n font-family: var(--default-font-family);\n font-weight: var(--font-weight-medium);\n font-size: 0.875rem;\n line-height: 1.75;\n letter-spacing: 0.02857em;\n text-transform: uppercase;\n cursor: pointer;\n }\n \n \n h1 {\n font-weight: var(--font-weight-light);\n font-size: 6rem;\n line-height: 1.167;\n letter-spacing: -0.01562em;\n }\n \n h2 {\n font-weight: var(--font-weight-light);\n font-size: 3.75rem;\n line-height: 1.2;\n letter-spacing: -0.00833em;\n }\n \n h3 {\n font-weight: var(--font-weight-regular);\n font-size: 3rem;\n line-height: 1.167;\n letter-spacing: 0em;\n }\n\n h4 {\n font-weight: var(--font-weight-regular);\n font-size: 2.125rem;\n line-height: 1.235;\n letter-spacing: 0.00735em;\n }\n\n h5 {\n font-weight: var(--font-weight-regular);\n font-size: 1.5rem;\n line-height: 1.334;\n letter-spacing: 0em;\n }\n\n h6 {\n font-weight: var(--font-weight-medium);\n font-size: 1.25rem;\n line-height: 1.6;\n letter-spacing: 0.0075em;\n }\n`;\n\nexport const getRemSize = (fontSize: number): number => {\n const defaultFontSize: number = 14;\n const htmlFontSize: number = 16;\n const coefficient: number = defaultFontSize / 14;\n return (fontSize / htmlFontSize) * coefficient;\n};\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { GlobalStyle, getRemSize } from '../styles/theme';\n\nexport interface ButtonProps {\n color?: 'primary' | 'secondary' | 'default';\n variant?: 'filled' | 'outlined' | 'text';\n size?: 'small' | 'medium' | 'large';\n onClick?: () => void;\n fullWidth?: boolean;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * This is to prevent error TS2339: Property '$color', $variant etc does not exist on type,\n * Styled components suggested using $ prefix with a prop when rendering the component. But we don't want consumers to use $ when using this library\n * https://github.com/styled-components/styled-components/issues/3279#issuecomment-695972483\n **/\ninterface StyledButtonProps {\n $color?: ButtonProps['color'];\n $variant?: ButtonProps['variant'];\n $size?: ButtonProps['size'];\n $onClick?: () => ButtonProps['onClick'];\n $fullWidth?: ButtonProps['fullWidth'];\n disabled?: boolean;\n}\n\nconst outlined = css`\n color: var(--palette-text-primary);\n padding: 5px 15px;\n border: 0.4px solid var(--palette-text-secondary);\n border-radius: var(--border-radius-default);\n &:hover {\n background-color: var(--palette-action-hover);\n }\n &:disabled {\n border: 1px solid var(--palette-action-disabled);\n background-color: var(--palette-action-disabled);\n }\n`;\n\nconst outlinedPrimary = css`\n color: var(--palette-primary-600);\n background-color: transparent;\n border: 1px solid var(--palette-primary-600);\n &:hover {\n border: 1px solid var(--palette-primary-dark);\n background-color: var(--palette-primary-400);\n }\n &:active {\n box-shadow: var(--shadow-05);\n }\n &:disabled {\n border: 1px solid var(--palette-action-disabled);\n color: var(--palette-text-disabled);\n background-color: var(--palette-action-disabled);\n }\n`;\n\nconst outlinedSecondary = css`\n color: var(--palette-secondary-dark);\n background-color: transparent;\n border: 1px solid var(--palette-secondary-dark);\n &:hover {\n background-color: var(--palette-secondary-400);\n }\n &:active {\n box-shadow: var(--shadow-02);\n }\n &:disabled {\n border: 1px solid var(--palette-action-disabled);\n color: var(--palette-text-disabled);\n background-color: var(--palette-action-disabled);\n }\n`;\n\nconst filled = css`\n background-color: var(--palette-common-white);\n color: var(--palette-primary-contrastText);\n border-radius: var(--border-radius-default);\n box-shadow: var(--shadow-02);\n &:hover {\n background-color: var(--palette-action-hover);\n box-shadow: var(--shadow-04);\n }\n &:active {\n box-shadow: var(--shadow-08);\n }\n &:focus-visible {\n box-shadow: var(--shadow-06);\n }\n &:disabled {\n background-color: var(--palette-action-disabled);\n box-shadow: var(--shadow-none);\n }\n`;\n\nconst filledPrimary = css`\n background-color: var(--palette-primary-main);\n color: var(--palette-primary-contrastText);\n border-radius: var(--border-radius-default);\n &:hover {\n background-color: var(--palette-primary-dark);\n }\n &:disabled {\n background-color: var(--palette-action-disabled);\n }\n`;\n\nconst filledSecondary = css`\n background-color: var(--palette-secondary-main);\n color: var(--palette-secondary-contrastText);\n border-radius: var(--border-radius-default);\n &:hover {\n background-color: var(--palette-secondary-dark);\n }\n &:disabled {\n background-color: var(--palette-action-disabled);\n }\n`;\n\nconst StyledButton = styled.button<StyledButtonProps>`\n border-style: none;\n outline: 0;\n display: inline-block;\n padding: 6px 16px;\n color: var(--palette-text-primary);\n background-color: transparent;\n\n /* color=primary and variant=text*/\n ${props =>\n props.$color === 'primary' &&\n css`\n color: var(--palette-primary-600);\n &:hover {\n background-color: var(--palette-primary-400);\n }\n &:disabled {\n background-color: transparent;\n }\n `}\n\n /* color=secondary and variant=text*/\n ${props =>\n props.$color === 'secondary' &&\n css`\n color: var(--palette-secondary-dark);\n &:hover {\n background-color: var(--palette-secondary-400);\n }\n &:disabled {\n background-color: transparent;\n }\n `}\n\n /* size=small*/\n ${props =>\n props.$size === 'small' &&\n css`\n padding: 6px 12px;\n font-size: ${getRemSize(13)}rem;\n `}\n\n /* size=large*/\n ${props =>\n props.$size === 'large' &&\n css`\n padding: 8px 14px;\n font-size: ${getRemSize(15)}rem;\n `};\n\n /*variant=outlined*/\n ${props => props.$variant === 'outlined' && outlined};\n\n /*variant=filled*/\n ${props => props.$variant === 'filled' && filled};\n ${props =>\n props.$fullWidth &&\n css`\n width: 100%;\n `};\n ${props =>\n props.disabled &&\n css`\n color: var(--palette-text-disabled);\n box-shadow: var(--shadow-none);\n `};\n ${props =>\n props.$variant === 'outlined' &&\n props.$color === 'primary' &&\n outlinedPrimary};\n ${props =>\n props.$variant === 'outlined' &&\n props.$color === 'secondary' &&\n outlinedSecondary};\n ${props =>\n props.$variant === 'filled' &&\n props.$color === 'primary' &&\n filledPrimary};\n ${props =>\n props.$variant === 'filled' &&\n props.$color === 'secondary' &&\n filledSecondary};\n\n`;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ ...props }, ref) => {\n return (\n <>\n <GlobalStyle />\n <StyledButton\n ref={ref}\n $color={props.color || 'default'}\n $size={props.size || 'medium'}\n $fullWidth={props.fullWidth || false}\n disabled={props.disabled || false}\n $variant={props.variant || 'text'}\n {...props}\n >\n {props.children}\n </StyledButton>\n </>\n );\n }\n);\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport { GlobalStyle } from '../styles/theme';\n\nexport interface TypographyProps {\n color?: 'primary' | 'secondary' | 'primaryText' | 'secondaryText' | 'error';\n style?:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'body1'\n | 'body2'\n | 'caption'\n | 'overline';\n underline?: boolean;\n bold?: boolean;\n display?: 'inline' | 'block' | 'inherit';\n gutter?: boolean;\n align?: 'left' | 'right' | 'center' | 'justify' | 'initial' | 'inherit';\n ellipsis?: boolean;\n textParagraph?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * This is to prevent error TS2339: Property '$color', $variant etc does not exist on type,\n * Styled components suggested using $ prefix with a prop when rendering the component. But we don't want consumers to use $ when using this library\n * https://github.com/styled-components/styled-components/issues/3279#issuecomment-695972483.\n **/\ninterface StyledTypographyProps {\n $color?: TypographyProps['color'];\n $style?: TypographyProps['style'];\n $underline?: TypographyProps['underline'];\n $bold?: TypographyProps['bold'];\n $display?: TypographyProps['display'];\n $gutter?: TypographyProps['gutter'];\n $align?: TypographyProps['align'];\n $ellipsis?: TypographyProps['ellipsis'];\n $textParagraph?: TypographyProps['textParagraph'];\n}\n\nconst withEllipsis = css`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst gutterBottom = `margin-bottom: var(--typography-gutter);`;\n\nconst paragraph = `margin-bottom: 16px;`;\n\nconst primaryColor = `color: var(--palette-primary-600);`;\n\nconst secondaryColor = `color: var(--palette-secondary-dark);`;\n\nconst primaryTextColor = `color: var(--palette-text-primary);`;\n\nconst secondaryTextColor = `color: var(--palette-text-secondary);`;\n\nconst errorColor = `color: var(--palette-error-main);`;\n\nconst Caption = css`\n font-size: var(--caption-font-size);\n line-height: var(--caption-line-height);\n letter-spacing: var(--caption-letter-spacing);\n`;\n\nconst Overline = css`\n font-size: var(--overline-font-size);\n line-height: var(--overline-line-height);\n letter-spacing: var(--overline-letter-spacing);\n text-transform: var(--overline-text-transform);\n`;\n\nconst Body2 = css`\n font-size: var(--body2-font-size);\n line-height: var(--body2-line-height);\n letter-spacing: var(--body2-letter-spacing);\n`;\n\nconst Body1 = css`\n font-size: var(--body1-font-size);\n line-height: var(--body1-line-height);\n letter-spacing: var(--body1-letter-spacing);\n`;\n\nconst Subtitle2 = css`\n font-weight: var(--font-weight-medium);\n font-size: var(--subtitle2-font-size);\n line-height: var(--subtitle2-line-height);\n letter-spacing: var(--subtitle2-letter-spacing);\n`;\n\nconst Subtitle1 = css`\n font-size: var(--subtitle1-font-size);\n line-height: var(--subtitle1-line-height);\n letter-spacing: var(--subtitle1-letter-spacing);\n`;\n\nconst StyledTypography = styled.span<StyledTypographyProps>`\n font-family: var(--default-font-family);\n margin: 0;\n display: ${props => (props.$display ? props.$display : `inherit`)};\n text-align: ${props => (props.$align ? props.$align : `inherit`)};\n text-decoration-line: ${props => props.$underline && `underline`};\n font-weight: ${props =>\n props.$bold ? `bold` : `var(--font-weight-regular)`};\n ${props => props.$ellipsis && props.$display === 'block' && withEllipsis}\n ${props => props.$textParagraph && paragraph}\n ${props => props.$gutter && gutterBottom}\n ${props => props.$color === 'primary' && primaryColor}\n ${props => props.$color === 'secondary' && secondaryColor}\n ${props => props.$color === 'secondaryText' && secondaryTextColor}\n ${props => props.$color === 'error' && errorColor}\n ${props =>\n (props.$color === 'primaryText' || !props.$color) && primaryTextColor}\n ${props => props.$style === 'subtitle1' && Subtitle1}\n ${props => props.$style === 'subtitle2' && Subtitle2}\n ${props => props.$style === 'body1' && Body1}\n ${props => props.$style === 'body2' && Body2}\n ${props => props.$style === 'overline' && Overline}\n ${props => props.$style === 'caption' && Caption}\n`;\n\nexport const Typography = React.forwardRef<HTMLSpanElement, TypographyProps>(\n ({ ...props }, ref) => {\n return (\n <>\n <GlobalStyle />\n <StyledTypography\n ref={ref}\n $color={props.color || 'primaryText'}\n $style={props.style || 'subtitle1'}\n $display={props.display || 'inherit'}\n $gutter={props.gutter || false}\n $align={props.align || 'inherit'}\n $ellipsis={props.ellipsis || false}\n $textParagraph={props.textParagraph || false}\n $underline={props.underline || false}\n $bold={props.bold || false}\n as={props.style}\n >\n {props.children}\n </StyledTypography>\n </>\n );\n }\n);\n"],"names":["GlobalStyle","createGlobalStyle","getRemSize","fontSize","defaultFontSize","htmlFontSize","coefficient","outlined","css","outlinedPrimary","outlinedSecondary","filled","filledPrimary","filledSecondary","StyledButton","styled","button","props","$color","$size","$variant","$fullWidth","disabled","Button","React","forwardRef","ref","color","size","fullWidth","variant","children","withEllipsis","gutterBottom","paragraph","primaryColor","secondaryColor","primaryTextColor","secondaryTextColor","errorColor","Caption","Overline","Body2","Body1","Subtitle2","Subtitle1","StyledTypography","span","$display","$align","$underline","$bold","$ellipsis","$textParagraph","$gutter","$style","Typography","style","display","gutter","align","ellipsis","textParagraph","underline","bold","as"],"mappings":"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"}