@liner-fe/prism 1.1.13 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Button/index.d.ts +2 -2
- package/lib/index.cjs +6 -4
- package/lib/index.cjs.map +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.mjs +8 -4
- package/lib/index.mjs.map +3 -3
- package/package.json +1 -1
- package/src/components/Button/index.tsx +7 -18
- package/src/index.ts +2 -0
|
@@ -24,12 +24,12 @@ export interface DefaultButtonProps extends CommonButtonProps, VariantProps<type
|
|
|
24
24
|
align?: 'center' | 'spaceBetween';
|
|
25
25
|
}
|
|
26
26
|
export interface TextButtonProps extends CommonButtonProps, VariantProps<typeof textButtonVariants> {
|
|
27
|
-
as
|
|
27
|
+
as: 'text';
|
|
28
28
|
asChild?: boolean;
|
|
29
29
|
level?: 'inversePrimary' | 'neutralPrimary' | 'inverseStaticPrimary';
|
|
30
30
|
}
|
|
31
31
|
export interface IconButtonProps extends CommonButtonProps, VariantProps<typeof iconButtonVariants> {
|
|
32
|
-
as
|
|
32
|
+
as: 'icon';
|
|
33
33
|
asChild?: boolean;
|
|
34
34
|
}
|
|
35
35
|
export type ButtonProps = DefaultButtonProps | TextButtonProps | IconButtonProps;
|
package/lib/index.cjs
CHANGED
|
@@ -39,6 +39,7 @@ __export(src_exports, {
|
|
|
39
39
|
objectToArray: () => objectToArray
|
|
40
40
|
});
|
|
41
41
|
module.exports = __toCommonJS(src_exports);
|
|
42
|
+
var import_global = require("@liner-fe/design-token/global.css");
|
|
42
43
|
|
|
43
44
|
// src/utils/object.ts
|
|
44
45
|
var objectToArray = /* @__PURE__ */ __name((obj) => {
|
|
@@ -123,11 +124,12 @@ var Button = (0, import_react.forwardRef)((props, ref) => {
|
|
|
123
124
|
const Comp = props.asChild ? import_react_slot.Slot : "button";
|
|
124
125
|
switch (props.as) {
|
|
125
126
|
case "default":
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
case void 0:
|
|
128
|
+
const { as, asChild, level = "primary", align = "center", size = "cta", ...rest } = props;
|
|
129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...rest, className: (0, import_clsx.default)(defaultButtonVariants({ level, align, size })), ref });
|
|
128
130
|
case "text":
|
|
129
|
-
const { level: textLevel = "inversePrimary" } = props;
|
|
130
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...
|
|
131
|
+
const { as: textAs, asChild: textAsChild, level: textLevel = "inversePrimary", ...textRest } = props;
|
|
132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...textRest, className: (0, import_clsx.default)(textButtonVariants({ level: textLevel })), ref });
|
|
131
133
|
}
|
|
132
134
|
});
|
|
133
135
|
var Component = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: "TEST" }), "Component");
|
package/lib/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/utils/object.ts", "../src/components/Button/index.tsx", "../src/components/Button/style.module.scss"],
|
|
4
|
-
"sourcesContent": ["export * from './utils/object';\nexport * from './components/Button';\n", "export const objectToArray = <T extends Record<string, any>>(obj: T) => {\n return Object.entries(obj);\n};\n", "import React, { ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport style from './style.module.scss';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\n\nconst defaultButtonVariants = cva([style.button, style.default], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n inverse: style.inverse,\n },\n align: {\n center: style['align-center'],\n spaceBetween: style['align-space-between'],\n },\n size: {\n cta: style.cta,\n l: style.l,\n m: style.m,\n s: style.s,\n },\n },\n});\nconst textButtonVariants = cva([style.button, style.text], {\n variants: {\n level: {\n inversePrimary: style['inverse-primary'],\n neutralPrimary: style['neutral-primary'],\n inverseStaticPrimary: style['inverse-static-primary'],\n },\n },\n});\nconst iconButtonVariants = cva([style.button, style.icon], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n },\n weight: {\n //\n },\n },\n});\n\nconst getButtonVariant = (props: ButtonProps) => {\n switch (props.as) {\n case 'default':\n const { level = 'primary', align = 'center', size = 'cta' } = props;\n return defaultButtonVariants({ level, align, size });\n case 'text':\n return textButtonVariants({ level: props.level });\n case 'icon':\n return iconButtonVariants({ level: props.level });\n }\n};\n\ninterface CommonButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n as?: 'default' | 'text' | 'icon';\n asChild?: boolean;\n}\nexport interface DefaultButtonProps extends CommonButtonProps, VariantProps<typeof defaultButtonVariants> {\n as?: 'default';\n asChild?: boolean;\n level?: 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'quinary' | 'negative' | 'inverse';\n size?: 'cta' | 'l' | 'm' | 's';\n align?: 'center' | 'spaceBetween';\n // isLoading?: boolean;\n // leftIcon?: ReactNode;\n // rightIcon?: ReactNode;\n}\nexport interface TextButtonProps extends CommonButtonProps, VariantProps<typeof textButtonVariants> {\n as?: 'text';\n asChild?: boolean;\n level?: 'inversePrimary' | 'neutralPrimary' | 'inverseStaticPrimary';\n}\nexport interface IconButtonProps extends CommonButtonProps, VariantProps<typeof iconButtonVariants> {\n as?: 'icon';\n asChild?: boolean;\n // weight\n}\nexport type ButtonProps = DefaultButtonProps | TextButtonProps | IconButtonProps;\n\n/**\n * \uBC84\uD2BC \uCEF4\uD3EC\uB10C\uD2B8\n */\nexport const DefaultButton = forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ as = 'default', asChild = false, level = 'primary', align = 'center', size = 'cta', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n }\n);\n\nexport const TextButton = forwardRef<HTMLButtonElement, TextButtonProps>(\n ({ as = 'text', asChild = false, level = 'inversePrimary', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(textButtonVariants({ level }))} ref={ref} />;\n }\n);\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n switch (props.as) {\n case 'default':\n const { level = 'primary', align = 'center', size = 'cta' } = props;\n return <Comp {...props} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n case 'text':\n const { level: textLevel = 'inversePrimary' } = props;\n return <Comp {...props} className={clsx(textButtonVariants({ level: textLevel }))} ref={ref} />;\n // case 'icon':\n // return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n }\n});\n\nexport const Component = () => <div>TEST</div>;\n", ".button {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n font-style: normal;\n font-size: var(--lp-pri-font-size-16);\n font-weight: var(--lp-pri-font-weight-700);\n line-height: 130%;\n overflow: hidden;\n cursor: pointer;\n}\n.button:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n cursor: not-allowed;\n}\n\n.default {\n color: var(--inverse-label-static-primary);\n background: var(--lp-pri-achromatic-white);\n}\n\n.text {\n background: none;\n color: var(--inverse-label-static-primary);\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n}\n.text:not(:disabled):hover {\n text-decoration: underline;\n text-underline-offset: 0.2rem;\n}\n\n.icon {\n background: none;\n}\n\n.primary {\n background: #4058FF;\n}\n.primary:not(:disabled):hover {\n background: #3346cc;\n}\n\n.secondary {\n background: var(--inverse-container-high);\n}\n.secondary:not(:disabled):hover {\n background: #121212;\n}\n\n.tertiary {\n background: rgba(109, 109, 112, 0.0784313725);\n color: var(--neutral-label-primary);\n}\n.tertiary:not(:disabled):hover {\n background: #ebebeb;\n}\n\n.quaternary {\n color: var(--neutral-label-primary);\n border: 1px solid var(--neutral-border-overlay-normal);\n}\n.quaternary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quaternary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.quinary {\n color: rgba(109, 109, 112, 0.8);\n}\n.quinary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quinary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.negative {\n background: var(--function-negative);\n}\n.negative:not(:disabled):hover {\n background: #af1b1c;\n}\n\n.inverse {\n color: var(--neutral-label-primary);\n}\n.inverse:not(:disabled):hover {\n background: #f5f5f5;\n}\n\n.cta {\n border-radius: 8px;\n padding: 13.5px 12px;\n font-size: var(--lp-pri-font-size-16);\n min-width: 129px;\n max-height: 48px;\n}\n\n.l {\n border-radius: 6px;\n padding: 10.5px 8px;\n font-size: var(--lp-pri-font-size-15);\n min-width: 107px;\n max-height: 40px;\n}\n\n.m {\n border-radius: 6px;\n padding: 7px 6px;\n font-size: var(--lp-pri-font-size-14);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 91px;\n max-height: 32px;\n}\n\n.s {\n border-radius: 6px;\n padding: 3.5px 6px;\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 89px;\n max-height: 24px;\n}\n\n.align-center {\n justify-content: center;\n}\n\n.align-space-between {\n justify-content: space-between;\n}\n\n.inverse-primary {\n color: var(--inverse-label-static-primary);\n}\n\n.neutral-primary {\n color: rgba(109, 109, 112, 0.8);\n opacity: 0.8;\n}\n\n.inverse-static-primary {\n color: var(--inverse-label-static-primary);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvZnJvbnRlbmQtcGFja2FnZXMvZnJvbnRlbmQtcGFja2FnZXMvcGFja2FnZXMvbGluZXItcHJpc20vc3JjL2NvbXBvbmVudHMvQnV0dG9uIiwic291cmNlcyI6WyJzdHlsZS5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQUdKO0VBQ0U7OztBQUtGO0VBQ0U7O0FBRUE7RUFDRTs7O0FBR0o7RUFDRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBR0o7RUFFRTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdKO0VBRUU7O0FBRUE7RUFDRTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0o7RUFFRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUVFOztBQUVBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBRUU7RUFDQTs7O0FBRUY7RUFDRSIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG5cbiAgZm9udC1zdHlsZTpub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNzAwKTtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7IC8vIFRPRE86IO2GoO2BsFxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLWNvbnRhaW5lci1taWQpO1xuICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXRlcnRpYXJ5KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbi8vIGFzXG4uZGVmYXVsdCB7XG4gIGNvbG9yOiB2YXIoLS1pbnZlcnNlLWxhYmVsLXN0YXRpYy1wcmltYXJ5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbHAtcHJpLWFjaHJvbWF0aWMtd2hpdGUpOyAvLyBUT0RPOiDthqDtgbBcbiAgLy8gY29sb3I6IHZhcigtLWJyYW5kLWNvbnRhaW5lci1taWQpO1xufVxuLnRleHQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xMyk7IFxuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJyZW07XG4gIH1cbn1cbi5pY29uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgXG59XG5cbi8vIERlZmF1bHRCdXR0b24gLSBsZXZlbFxuLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNDA1OEZGOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4ICjsg4nsg4Eg64uk66aEKVxuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzMzNDZjYztcbiAgfVxufVxuLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWludmVyc2UtY29udGFpbmVyLWhpZ2gpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzEyMTIxMjtcbiAgfVxufVxuLnRlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZDogIzZENkQ3MDE0O1xuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHsgLy8gVE9ETzog7Yag7YGw7Jy866GcIOuzgO2ZmFxuICAgIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIH1cbn1cbi5xdWF0ZXJuYXJ5IHtcbiAgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCBuZXV0cmFsL2JvcmRlci9vdmVybGF5L25vcm1hbFxuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC1ib3JkZXItb3ZlcmxheS1ub3JtYWwpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLnF1aW5hcnkge1xuICAvLyBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1zZWNvbmRhcnkpO1xuICBjb2xvcjogIzZENkQ3MENDOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7IC8vIFRPRE86IO2GoO2BsOycvOuhnCDrs4DtmZhcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLm5lZ2F0aXZlIHtcbiAgLy8gVE9ETzogZnVudGlvbi9jb250YWluZXIvbmVnYXRpdmVcbiAgYmFja2dyb3VuZDogdmFyKC0tZnVuY3Rpb24tbmVnYXRpdmUpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2FmMWIxYztcbiAgfVxufVxuLmludmVyc2Uge1xuICAvLyBUT0RPOiBuZXV0cmFsL2xhYmVsL3N0YXRpYy9wcmltYXJ5XG4gIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXByaW1hcnkpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxufVxuXG4vLyBzaXplXG4uY3RhIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogMTMuNXB4IDEycHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTYpO1xuICBtaW4td2lkdGg6IDEyOXB4O1xuICBtYXgtaGVpZ2h0OiA0OHB4O1xufVxuLmwge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAxMC41cHggOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgZm9udC1zaXplOiB2YXIoLS1scC1wcmktZm9udC1zaXplLTE1KTtcbiAgbWluLXdpZHRoOiAxMDdweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi5tIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogN3B4IDZweDsgLy8gVE9ETzog7Yag7YGwXG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNTAwKTtcbiAgbWluLXdpZHRoOiA5MXB4O1xuICBtYXgtaGVpZ2h0OiAzMnB4O1xufVxuLnMge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAzLjVweCA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTMpO1xuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG4gIG1pbi13aWR0aDogODlweDtcbiAgbWF4LWhlaWdodDogMjRweDtcbn1cblxuLy8gYWxpZ25cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbGlnbi1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4vLyBUZXh0QnV0dG9uIC0gbGV2ZWxcbi5pbnZlcnNlLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7IC8vIFRPRE86IO2GoO2BsCDsl4XrjbDsnbTtirggKOyDieyDgSDri6TrpoQpXG59XG4ubmV1dHJhbC1wcmltYXJ5IHtcbiAgLy8gY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtc2Vjb25kYXJ5KTsgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCAo7IOJ7IOBIOuLpOumhClcbiAgY29sb3I6ICM2RDZENzBDQztcbiAgb3BhY2l0eTogMC44O1xufVxuLmludmVyc2Utc3RhdGljLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG59Il19 */"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;
|
|
4
|
+
"sourcesContent": ["import \"@liner-fe/design-token/global.css\";\n\nexport * from './utils/object';\nexport * from './components/Button';\n", "export const objectToArray = <T extends Record<string, any>>(obj: T) => {\n return Object.entries(obj);\n};\n", "import React, { ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport style from './style.module.scss';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\n\nconst defaultButtonVariants = cva([style.button, style.default], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n inverse: style.inverse,\n },\n align: {\n center: style['align-center'],\n spaceBetween: style['align-space-between'],\n },\n size: {\n cta: style.cta,\n l: style.l,\n m: style.m,\n s: style.s,\n },\n },\n});\nconst textButtonVariants = cva([style.button, style.text], {\n variants: {\n level: {\n inversePrimary: style['inverse-primary'],\n neutralPrimary: style['neutral-primary'],\n inverseStaticPrimary: style['inverse-static-primary'],\n },\n },\n});\nconst iconButtonVariants = cva([style.button, style.icon], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n },\n weight: {\n //\n },\n },\n});\n\ninterface CommonButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n as?: 'default' | 'text' | 'icon';\n asChild?: boolean;\n}\nexport interface DefaultButtonProps extends CommonButtonProps, VariantProps<typeof defaultButtonVariants> {\n as?: 'default';\n asChild?: boolean;\n level?: 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'quinary' | 'negative' | 'inverse';\n size?: 'cta' | 'l' | 'm' | 's';\n align?: 'center' | 'spaceBetween';\n // isLoading?: boolean;\n // leftIcon?: ReactNode;\n // rightIcon?: ReactNode;\n}\nexport interface TextButtonProps extends CommonButtonProps, VariantProps<typeof textButtonVariants> {\n as: 'text';\n asChild?: boolean;\n level?: 'inversePrimary' | 'neutralPrimary' | 'inverseStaticPrimary';\n}\nexport interface IconButtonProps extends CommonButtonProps, VariantProps<typeof iconButtonVariants> {\n as: 'icon';\n asChild?: boolean;\n // weight\n}\nexport type ButtonProps = DefaultButtonProps | TextButtonProps | IconButtonProps;\n\n/**\n * \uBC84\uD2BC \uCEF4\uD3EC\uB10C\uD2B8\n */\nexport const DefaultButton = forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ as = 'default', asChild = false, level = 'primary', align = 'center', size = 'cta', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n }\n);\n\nexport const TextButton = forwardRef<HTMLButtonElement, TextButtonProps>(\n ({ as = 'text', asChild = false, level = 'inversePrimary', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(textButtonVariants({ level }))} ref={ref} />;\n }\n);\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n switch (props.as) {\n case 'default':\n case undefined:\n const { as, asChild, level = 'primary', align = 'center', size = 'cta',...rest } = props;\n return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n case 'text':\n const { as:textAs, asChild:textAsChild, level: textLevel = 'inversePrimary', ...textRest } = props;\n return <Comp {...textRest} className={clsx(textButtonVariants({ level: textLevel }))} ref={ref} />;\n // case 'icon':\n // return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n }\n});\n\nexport const Component = () => <div>TEST</div>;\n", ".button {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n font-style: normal;\n font-size: var(--lp-pri-font-size-16);\n font-weight: var(--lp-pri-font-weight-700);\n line-height: 130%;\n overflow: hidden;\n cursor: pointer;\n}\n.button:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n cursor: not-allowed;\n}\n\n.default {\n color: var(--inverse-label-static-primary);\n background: var(--lp-pri-achromatic-white);\n}\n\n.text {\n background: none;\n color: var(--inverse-label-static-primary);\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n}\n.text:not(:disabled):hover {\n text-decoration: underline;\n text-underline-offset: 0.2rem;\n}\n\n.icon {\n background: none;\n}\n\n.primary {\n background: #4058FF;\n}\n.primary:not(:disabled):hover {\n background: #3346cc;\n}\n\n.secondary {\n background: var(--inverse-container-high);\n}\n.secondary:not(:disabled):hover {\n background: #121212;\n}\n\n.tertiary {\n background: rgba(109, 109, 112, 0.0784313725);\n color: var(--neutral-label-primary);\n}\n.tertiary:not(:disabled):hover {\n background: #ebebeb;\n}\n\n.quaternary {\n color: var(--neutral-label-primary);\n border: 1px solid var(--neutral-border-overlay-normal);\n}\n.quaternary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quaternary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.quinary {\n color: rgba(109, 109, 112, 0.8);\n}\n.quinary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quinary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.negative {\n background: var(--function-negative);\n}\n.negative:not(:disabled):hover {\n background: #af1b1c;\n}\n\n.inverse {\n color: var(--neutral-label-primary);\n}\n.inverse:not(:disabled):hover {\n background: #f5f5f5;\n}\n\n.cta {\n border-radius: 8px;\n padding: 13.5px 12px;\n font-size: var(--lp-pri-font-size-16);\n min-width: 129px;\n max-height: 48px;\n}\n\n.l {\n border-radius: 6px;\n padding: 10.5px 8px;\n font-size: var(--lp-pri-font-size-15);\n min-width: 107px;\n max-height: 40px;\n}\n\n.m {\n border-radius: 6px;\n padding: 7px 6px;\n font-size: var(--lp-pri-font-size-14);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 91px;\n max-height: 32px;\n}\n\n.s {\n border-radius: 6px;\n padding: 3.5px 6px;\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 89px;\n max-height: 24px;\n}\n\n.align-center {\n justify-content: center;\n}\n\n.align-space-between {\n justify-content: space-between;\n}\n\n.inverse-primary {\n color: var(--inverse-label-static-primary);\n}\n\n.neutral-primary {\n color: rgba(109, 109, 112, 0.8);\n opacity: 0.8;\n}\n\n.inverse-static-primary {\n color: var(--inverse-label-static-primary);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvZnJvbnRlbmQtcGFja2FnZXMvZnJvbnRlbmQtcGFja2FnZXMvcGFja2FnZXMvbGluZXItcHJpc20vc3JjL2NvbXBvbmVudHMvQnV0dG9uIiwic291cmNlcyI6WyJzdHlsZS5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQUdKO0VBQ0U7OztBQUtGO0VBQ0U7O0FBRUE7RUFDRTs7O0FBR0o7RUFDRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBR0o7RUFFRTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdKO0VBRUU7O0FBRUE7RUFDRTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0o7RUFFRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUVFOztBQUVBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBRUU7RUFDQTs7O0FBRUY7RUFDRSIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG5cbiAgZm9udC1zdHlsZTpub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNzAwKTtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7IC8vIFRPRE86IO2GoO2BsFxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLWNvbnRhaW5lci1taWQpO1xuICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXRlcnRpYXJ5KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbi8vIGFzXG4uZGVmYXVsdCB7XG4gIGNvbG9yOiB2YXIoLS1pbnZlcnNlLWxhYmVsLXN0YXRpYy1wcmltYXJ5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbHAtcHJpLWFjaHJvbWF0aWMtd2hpdGUpOyAvLyBUT0RPOiDthqDtgbBcbiAgLy8gY29sb3I6IHZhcigtLWJyYW5kLWNvbnRhaW5lci1taWQpO1xufVxuLnRleHQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xMyk7IFxuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJyZW07XG4gIH1cbn1cbi5pY29uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgXG59XG5cbi8vIERlZmF1bHRCdXR0b24gLSBsZXZlbFxuLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNDA1OEZGOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4ICjsg4nsg4Eg64uk66aEKVxuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzMzNDZjYztcbiAgfVxufVxuLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWludmVyc2UtY29udGFpbmVyLWhpZ2gpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzEyMTIxMjtcbiAgfVxufVxuLnRlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZDogIzZENkQ3MDE0O1xuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHsgLy8gVE9ETzog7Yag7YGw7Jy866GcIOuzgO2ZmFxuICAgIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIH1cbn1cbi5xdWF0ZXJuYXJ5IHtcbiAgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCBuZXV0cmFsL2JvcmRlci9vdmVybGF5L25vcm1hbFxuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC1ib3JkZXItb3ZlcmxheS1ub3JtYWwpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLnF1aW5hcnkge1xuICAvLyBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1zZWNvbmRhcnkpO1xuICBjb2xvcjogIzZENkQ3MENDOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7IC8vIFRPRE86IO2GoO2BsOycvOuhnCDrs4DtmZhcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLm5lZ2F0aXZlIHtcbiAgLy8gVE9ETzogZnVudGlvbi9jb250YWluZXIvbmVnYXRpdmVcbiAgYmFja2dyb3VuZDogdmFyKC0tZnVuY3Rpb24tbmVnYXRpdmUpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2FmMWIxYztcbiAgfVxufVxuLmludmVyc2Uge1xuICAvLyBUT0RPOiBuZXV0cmFsL2xhYmVsL3N0YXRpYy9wcmltYXJ5XG4gIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXByaW1hcnkpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxufVxuXG4vLyBzaXplXG4uY3RhIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogMTMuNXB4IDEycHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTYpO1xuICBtaW4td2lkdGg6IDEyOXB4O1xuICBtYXgtaGVpZ2h0OiA0OHB4O1xufVxuLmwge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAxMC41cHggOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgZm9udC1zaXplOiB2YXIoLS1scC1wcmktZm9udC1zaXplLTE1KTtcbiAgbWluLXdpZHRoOiAxMDdweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi5tIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogN3B4IDZweDsgLy8gVE9ETzog7Yag7YGwXG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNTAwKTtcbiAgbWluLXdpZHRoOiA5MXB4O1xuICBtYXgtaGVpZ2h0OiAzMnB4O1xufVxuLnMge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAzLjVweCA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTMpO1xuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG4gIG1pbi13aWR0aDogODlweDtcbiAgbWF4LWhlaWdodDogMjRweDtcbn1cblxuLy8gYWxpZ25cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbGlnbi1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4vLyBUZXh0QnV0dG9uIC0gbGV2ZWxcbi5pbnZlcnNlLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7IC8vIFRPRE86IO2GoO2BsCDsl4XrjbDsnbTtirggKOyDieyDgSDri6TrpoQpXG59XG4ubmV1dHJhbC1wcmltYXJ5IHtcbiAgLy8gY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtc2Vjb25kYXJ5KTsgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCAo7IOJ7IOBIOuLpOumhClcbiAgY29sb3I6ICM2RDZENzBDQztcbiAgb3BhY2l0eTogMC44O1xufVxuLmludmVyc2Utc3RhdGljLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG59Il19 */"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["clsx"]
|
|
7
7
|
}
|
package/lib/index.d.ts
CHANGED
package/lib/index.mjs
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
+
// src/index.ts
|
|
5
|
+
import "@liner-fe/design-token/global.css";
|
|
6
|
+
|
|
4
7
|
// src/utils/object.ts
|
|
5
8
|
var objectToArray = /* @__PURE__ */ __name((obj) => {
|
|
6
9
|
return Object.entries(obj);
|
|
@@ -84,11 +87,12 @@ var Button = forwardRef((props, ref) => {
|
|
|
84
87
|
const Comp = props.asChild ? Slot : "button";
|
|
85
88
|
switch (props.as) {
|
|
86
89
|
case "default":
|
|
87
|
-
|
|
88
|
-
|
|
90
|
+
case void 0:
|
|
91
|
+
const { as, asChild, level = "primary", align = "center", size = "cta", ...rest } = props;
|
|
92
|
+
return /* @__PURE__ */ jsx(Comp, { ...rest, className: clsx(defaultButtonVariants({ level, align, size })), ref });
|
|
89
93
|
case "text":
|
|
90
|
-
const { level: textLevel = "inversePrimary" } = props;
|
|
91
|
-
return /* @__PURE__ */ jsx(Comp, { ...
|
|
94
|
+
const { as: textAs, asChild: textAsChild, level: textLevel = "inversePrimary", ...textRest } = props;
|
|
95
|
+
return /* @__PURE__ */ jsx(Comp, { ...textRest, className: clsx(textButtonVariants({ level: textLevel })), ref });
|
|
92
96
|
}
|
|
93
97
|
});
|
|
94
98
|
var Component = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx("div", { children: "TEST" }), "Component");
|
package/lib/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/utils/object.ts", "../src/components/Button/index.tsx", "../src/components/Button/style.module.scss"],
|
|
4
|
-
"sourcesContent": ["export const objectToArray = <T extends Record<string, any>>(obj: T) => {\n return Object.entries(obj);\n};\n", "import React, { ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport style from './style.module.scss';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\n\nconst defaultButtonVariants = cva([style.button, style.default], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n inverse: style.inverse,\n },\n align: {\n center: style['align-center'],\n spaceBetween: style['align-space-between'],\n },\n size: {\n cta: style.cta,\n l: style.l,\n m: style.m,\n s: style.s,\n },\n },\n});\nconst textButtonVariants = cva([style.button, style.text], {\n variants: {\n level: {\n inversePrimary: style['inverse-primary'],\n neutralPrimary: style['neutral-primary'],\n inverseStaticPrimary: style['inverse-static-primary'],\n },\n },\n});\nconst iconButtonVariants = cva([style.button, style.icon], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n },\n weight: {\n //\n },\n },\n});\n\nconst getButtonVariant = (props: ButtonProps) => {\n switch (props.as) {\n case 'default':\n const { level = 'primary', align = 'center', size = 'cta' } = props;\n return defaultButtonVariants({ level, align, size });\n case 'text':\n return textButtonVariants({ level: props.level });\n case 'icon':\n return iconButtonVariants({ level: props.level });\n }\n};\n\ninterface CommonButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n as?: 'default' | 'text' | 'icon';\n asChild?: boolean;\n}\nexport interface DefaultButtonProps extends CommonButtonProps, VariantProps<typeof defaultButtonVariants> {\n as?: 'default';\n asChild?: boolean;\n level?: 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'quinary' | 'negative' | 'inverse';\n size?: 'cta' | 'l' | 'm' | 's';\n align?: 'center' | 'spaceBetween';\n // isLoading?: boolean;\n // leftIcon?: ReactNode;\n // rightIcon?: ReactNode;\n}\nexport interface TextButtonProps extends CommonButtonProps, VariantProps<typeof textButtonVariants> {\n as?: 'text';\n asChild?: boolean;\n level?: 'inversePrimary' | 'neutralPrimary' | 'inverseStaticPrimary';\n}\nexport interface IconButtonProps extends CommonButtonProps, VariantProps<typeof iconButtonVariants> {\n as?: 'icon';\n asChild?: boolean;\n // weight\n}\nexport type ButtonProps = DefaultButtonProps | TextButtonProps | IconButtonProps;\n\n/**\n * \uBC84\uD2BC \uCEF4\uD3EC\uB10C\uD2B8\n */\nexport const DefaultButton = forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ as = 'default', asChild = false, level = 'primary', align = 'center', size = 'cta', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n }\n);\n\nexport const TextButton = forwardRef<HTMLButtonElement, TextButtonProps>(\n ({ as = 'text', asChild = false, level = 'inversePrimary', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(textButtonVariants({ level }))} ref={ref} />;\n }\n);\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n switch (props.as) {\n case 'default':\n const { level = 'primary', align = 'center', size = 'cta' } = props;\n return <Comp {...props} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n case 'text':\n const { level: textLevel = 'inversePrimary' } = props;\n return <Comp {...props} className={clsx(textButtonVariants({ level: textLevel }))} ref={ref} />;\n // case 'icon':\n // return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n }\n});\n\nexport const Component = () => <div>TEST</div>;\n", ".button {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n font-style: normal;\n font-size: var(--lp-pri-font-size-16);\n font-weight: var(--lp-pri-font-weight-700);\n line-height: 130%;\n overflow: hidden;\n cursor: pointer;\n}\n.button:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n cursor: not-allowed;\n}\n\n.default {\n color: var(--inverse-label-static-primary);\n background: var(--lp-pri-achromatic-white);\n}\n\n.text {\n background: none;\n color: var(--inverse-label-static-primary);\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n}\n.text:not(:disabled):hover {\n text-decoration: underline;\n text-underline-offset: 0.2rem;\n}\n\n.icon {\n background: none;\n}\n\n.primary {\n background: #4058FF;\n}\n.primary:not(:disabled):hover {\n background: #3346cc;\n}\n\n.secondary {\n background: var(--inverse-container-high);\n}\n.secondary:not(:disabled):hover {\n background: #121212;\n}\n\n.tertiary {\n background: rgba(109, 109, 112, 0.0784313725);\n color: var(--neutral-label-primary);\n}\n.tertiary:not(:disabled):hover {\n background: #ebebeb;\n}\n\n.quaternary {\n color: var(--neutral-label-primary);\n border: 1px solid var(--neutral-border-overlay-normal);\n}\n.quaternary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quaternary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.quinary {\n color: rgba(109, 109, 112, 0.8);\n}\n.quinary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quinary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.negative {\n background: var(--function-negative);\n}\n.negative:not(:disabled):hover {\n background: #af1b1c;\n}\n\n.inverse {\n color: var(--neutral-label-primary);\n}\n.inverse:not(:disabled):hover {\n background: #f5f5f5;\n}\n\n.cta {\n border-radius: 8px;\n padding: 13.5px 12px;\n font-size: var(--lp-pri-font-size-16);\n min-width: 129px;\n max-height: 48px;\n}\n\n.l {\n border-radius: 6px;\n padding: 10.5px 8px;\n font-size: var(--lp-pri-font-size-15);\n min-width: 107px;\n max-height: 40px;\n}\n\n.m {\n border-radius: 6px;\n padding: 7px 6px;\n font-size: var(--lp-pri-font-size-14);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 91px;\n max-height: 32px;\n}\n\n.s {\n border-radius: 6px;\n padding: 3.5px 6px;\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 89px;\n max-height: 24px;\n}\n\n.align-center {\n justify-content: center;\n}\n\n.align-space-between {\n justify-content: space-between;\n}\n\n.inverse-primary {\n color: var(--inverse-label-static-primary);\n}\n\n.neutral-primary {\n color: rgba(109, 109, 112, 0.8);\n opacity: 0.8;\n}\n\n.inverse-static-primary {\n color: var(--inverse-label-static-primary);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvZnJvbnRlbmQtcGFja2FnZXMvZnJvbnRlbmQtcGFja2FnZXMvcGFja2FnZXMvbGluZXItcHJpc20vc3JjL2NvbXBvbmVudHMvQnV0dG9uIiwic291cmNlcyI6WyJzdHlsZS5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQUdKO0VBQ0U7OztBQUtGO0VBQ0U7O0FBRUE7RUFDRTs7O0FBR0o7RUFDRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBR0o7RUFFRTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdKO0VBRUU7O0FBRUE7RUFDRTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0o7RUFFRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUVFOztBQUVBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBRUU7RUFDQTs7O0FBRUY7RUFDRSIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG5cbiAgZm9udC1zdHlsZTpub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNzAwKTtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7IC8vIFRPRE86IO2GoO2BsFxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLWNvbnRhaW5lci1taWQpO1xuICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXRlcnRpYXJ5KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbi8vIGFzXG4uZGVmYXVsdCB7XG4gIGNvbG9yOiB2YXIoLS1pbnZlcnNlLWxhYmVsLXN0YXRpYy1wcmltYXJ5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbHAtcHJpLWFjaHJvbWF0aWMtd2hpdGUpOyAvLyBUT0RPOiDthqDtgbBcbiAgLy8gY29sb3I6IHZhcigtLWJyYW5kLWNvbnRhaW5lci1taWQpO1xufVxuLnRleHQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xMyk7IFxuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJyZW07XG4gIH1cbn1cbi5pY29uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgXG59XG5cbi8vIERlZmF1bHRCdXR0b24gLSBsZXZlbFxuLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNDA1OEZGOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4ICjsg4nsg4Eg64uk66aEKVxuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzMzNDZjYztcbiAgfVxufVxuLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWludmVyc2UtY29udGFpbmVyLWhpZ2gpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzEyMTIxMjtcbiAgfVxufVxuLnRlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZDogIzZENkQ3MDE0O1xuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHsgLy8gVE9ETzog7Yag7YGw7Jy866GcIOuzgO2ZmFxuICAgIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIH1cbn1cbi5xdWF0ZXJuYXJ5IHtcbiAgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCBuZXV0cmFsL2JvcmRlci9vdmVybGF5L25vcm1hbFxuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC1ib3JkZXItb3ZlcmxheS1ub3JtYWwpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLnF1aW5hcnkge1xuICAvLyBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1zZWNvbmRhcnkpO1xuICBjb2xvcjogIzZENkQ3MENDOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7IC8vIFRPRE86IO2GoO2BsOycvOuhnCDrs4DtmZhcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLm5lZ2F0aXZlIHtcbiAgLy8gVE9ETzogZnVudGlvbi9jb250YWluZXIvbmVnYXRpdmVcbiAgYmFja2dyb3VuZDogdmFyKC0tZnVuY3Rpb24tbmVnYXRpdmUpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2FmMWIxYztcbiAgfVxufVxuLmludmVyc2Uge1xuICAvLyBUT0RPOiBuZXV0cmFsL2xhYmVsL3N0YXRpYy9wcmltYXJ5XG4gIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXByaW1hcnkpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxufVxuXG4vLyBzaXplXG4uY3RhIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogMTMuNXB4IDEycHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTYpO1xuICBtaW4td2lkdGg6IDEyOXB4O1xuICBtYXgtaGVpZ2h0OiA0OHB4O1xufVxuLmwge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAxMC41cHggOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgZm9udC1zaXplOiB2YXIoLS1scC1wcmktZm9udC1zaXplLTE1KTtcbiAgbWluLXdpZHRoOiAxMDdweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi5tIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogN3B4IDZweDsgLy8gVE9ETzog7Yag7YGwXG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNTAwKTtcbiAgbWluLXdpZHRoOiA5MXB4O1xuICBtYXgtaGVpZ2h0OiAzMnB4O1xufVxuLnMge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAzLjVweCA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTMpO1xuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG4gIG1pbi13aWR0aDogODlweDtcbiAgbWF4LWhlaWdodDogMjRweDtcbn1cblxuLy8gYWxpZ25cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbGlnbi1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4vLyBUZXh0QnV0dG9uIC0gbGV2ZWxcbi5pbnZlcnNlLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7IC8vIFRPRE86IO2GoO2BsCDsl4XrjbDsnbTtirggKOyDieyDgSDri6TrpoQpXG59XG4ubmV1dHJhbC1wcmltYXJ5IHtcbiAgLy8gY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtc2Vjb25kYXJ5KTsgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCAo7IOJ7IOBIOuLpOumhClcbiAgY29sb3I6ICM2RDZENzBDQztcbiAgb3BhY2l0eTogMC44O1xufVxuLmludmVyc2Utc3RhdGljLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG59Il19 */"],
|
|
5
|
-
"mappings": ";;;;
|
|
3
|
+
"sources": ["../src/index.ts", "../src/utils/object.ts", "../src/components/Button/index.tsx", "../src/components/Button/style.module.scss"],
|
|
4
|
+
"sourcesContent": ["import \"@liner-fe/design-token/global.css\";\n\nexport * from './utils/object';\nexport * from './components/Button';\n", "export const objectToArray = <T extends Record<string, any>>(obj: T) => {\n return Object.entries(obj);\n};\n", "import React, { ButtonHTMLAttributes, forwardRef } from 'react';\n\nimport style from './style.module.scss';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\n\nconst defaultButtonVariants = cva([style.button, style.default], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n inverse: style.inverse,\n },\n align: {\n center: style['align-center'],\n spaceBetween: style['align-space-between'],\n },\n size: {\n cta: style.cta,\n l: style.l,\n m: style.m,\n s: style.s,\n },\n },\n});\nconst textButtonVariants = cva([style.button, style.text], {\n variants: {\n level: {\n inversePrimary: style['inverse-primary'],\n neutralPrimary: style['neutral-primary'],\n inverseStaticPrimary: style['inverse-static-primary'],\n },\n },\n});\nconst iconButtonVariants = cva([style.button, style.icon], {\n variants: {\n level: {\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary,\n quaternary: style.quaternary,\n quinary: style.quinary,\n negative: style.negative,\n },\n weight: {\n //\n },\n },\n});\n\ninterface CommonButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n as?: 'default' | 'text' | 'icon';\n asChild?: boolean;\n}\nexport interface DefaultButtonProps extends CommonButtonProps, VariantProps<typeof defaultButtonVariants> {\n as?: 'default';\n asChild?: boolean;\n level?: 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'quinary' | 'negative' | 'inverse';\n size?: 'cta' | 'l' | 'm' | 's';\n align?: 'center' | 'spaceBetween';\n // isLoading?: boolean;\n // leftIcon?: ReactNode;\n // rightIcon?: ReactNode;\n}\nexport interface TextButtonProps extends CommonButtonProps, VariantProps<typeof textButtonVariants> {\n as: 'text';\n asChild?: boolean;\n level?: 'inversePrimary' | 'neutralPrimary' | 'inverseStaticPrimary';\n}\nexport interface IconButtonProps extends CommonButtonProps, VariantProps<typeof iconButtonVariants> {\n as: 'icon';\n asChild?: boolean;\n // weight\n}\nexport type ButtonProps = DefaultButtonProps | TextButtonProps | IconButtonProps;\n\n/**\n * \uBC84\uD2BC \uCEF4\uD3EC\uB10C\uD2B8\n */\nexport const DefaultButton = forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ as = 'default', asChild = false, level = 'primary', align = 'center', size = 'cta', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n }\n);\n\nexport const TextButton = forwardRef<HTMLButtonElement, TextButtonProps>(\n ({ as = 'text', asChild = false, level = 'inversePrimary', ...rest }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return <Comp {...rest} className={clsx(textButtonVariants({ level }))} ref={ref} />;\n }\n);\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {\n const Comp = props.asChild ? Slot : 'button';\n\n switch (props.as) {\n case 'default':\n case undefined:\n const { as, asChild, level = 'primary', align = 'center', size = 'cta',...rest } = props;\n return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;\n case 'text':\n const { as:textAs, asChild:textAsChild, level: textLevel = 'inversePrimary', ...textRest } = props;\n return <Comp {...textRest} className={clsx(textButtonVariants({ level: textLevel }))} ref={ref} />;\n // case 'icon':\n // return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;\n }\n});\n\nexport const Component = () => <div>TEST</div>;\n", ".button {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n font-style: normal;\n font-size: var(--lp-pri-font-size-16);\n font-weight: var(--lp-pri-font-weight-700);\n line-height: 130%;\n overflow: hidden;\n cursor: pointer;\n}\n.button:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n cursor: not-allowed;\n}\n\n.default {\n color: var(--inverse-label-static-primary);\n background: var(--lp-pri-achromatic-white);\n}\n\n.text {\n background: none;\n color: var(--inverse-label-static-primary);\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n}\n.text:not(:disabled):hover {\n text-decoration: underline;\n text-underline-offset: 0.2rem;\n}\n\n.icon {\n background: none;\n}\n\n.primary {\n background: #4058FF;\n}\n.primary:not(:disabled):hover {\n background: #3346cc;\n}\n\n.secondary {\n background: var(--inverse-container-high);\n}\n.secondary:not(:disabled):hover {\n background: #121212;\n}\n\n.tertiary {\n background: rgba(109, 109, 112, 0.0784313725);\n color: var(--neutral-label-primary);\n}\n.tertiary:not(:disabled):hover {\n background: #ebebeb;\n}\n\n.quaternary {\n color: var(--neutral-label-primary);\n border: 1px solid var(--neutral-border-overlay-normal);\n}\n.quaternary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quaternary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.quinary {\n color: rgba(109, 109, 112, 0.8);\n}\n.quinary:not(:disabled):hover {\n background: #f5f5f5;\n}\n.quinary:disabled {\n background: var(--neutral-container-mid);\n color: var(--neutral-label-tertiary);\n opacity: 0.4;\n}\n\n.negative {\n background: var(--function-negative);\n}\n.negative:not(:disabled):hover {\n background: #af1b1c;\n}\n\n.inverse {\n color: var(--neutral-label-primary);\n}\n.inverse:not(:disabled):hover {\n background: #f5f5f5;\n}\n\n.cta {\n border-radius: 8px;\n padding: 13.5px 12px;\n font-size: var(--lp-pri-font-size-16);\n min-width: 129px;\n max-height: 48px;\n}\n\n.l {\n border-radius: 6px;\n padding: 10.5px 8px;\n font-size: var(--lp-pri-font-size-15);\n min-width: 107px;\n max-height: 40px;\n}\n\n.m {\n border-radius: 6px;\n padding: 7px 6px;\n font-size: var(--lp-pri-font-size-14);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 91px;\n max-height: 32px;\n}\n\n.s {\n border-radius: 6px;\n padding: 3.5px 6px;\n font-size: var(--lp-pri-font-size-13);\n font-weight: var(--lp-pri-font-weight-500);\n min-width: 89px;\n max-height: 24px;\n}\n\n.align-center {\n justify-content: center;\n}\n\n.align-space-between {\n justify-content: space-between;\n}\n\n.inverse-primary {\n color: var(--inverse-label-static-primary);\n}\n\n.neutral-primary {\n color: rgba(109, 109, 112, 0.8);\n opacity: 0.8;\n}\n\n.inverse-static-primary {\n color: var(--inverse-label-static-primary);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvZnJvbnRlbmQtcGFja2FnZXMvZnJvbnRlbmQtcGFja2FnZXMvcGFja2FnZXMvbGluZXItcHJpc20vc3JjL2NvbXBvbmVudHMvQnV0dG9uIiwic291cmNlcyI6WyJzdHlsZS5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQUdKO0VBQ0U7OztBQUtGO0VBQ0U7O0FBRUE7RUFDRTs7O0FBR0o7RUFDRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FBR0o7RUFFRTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdKO0VBRUU7O0FBRUE7RUFDRTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0o7RUFFRTs7QUFFQTtFQUNFOzs7QUFHSjtFQUVFOztBQUVBO0VBQ0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBRUU7RUFDQTs7O0FBRUY7RUFDRSIsInNvdXJjZXNDb250ZW50IjpbIi5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG5cbiAgZm9udC1zdHlsZTpub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNzAwKTtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7IC8vIFRPRE86IO2GoO2BsFxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLWNvbnRhaW5lci1taWQpO1xuICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXRlcnRpYXJ5KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbi8vIGFzXG4uZGVmYXVsdCB7XG4gIGNvbG9yOiB2YXIoLS1pbnZlcnNlLWxhYmVsLXN0YXRpYy1wcmltYXJ5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbHAtcHJpLWFjaHJvbWF0aWMtd2hpdGUpOyAvLyBUT0RPOiDthqDtgbBcbiAgLy8gY29sb3I6IHZhcigtLWJyYW5kLWNvbnRhaW5lci1taWQpO1xufVxuLnRleHQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xMyk7IFxuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJyZW07XG4gIH1cbn1cbi5pY29uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgXG59XG5cbi8vIERlZmF1bHRCdXR0b24gLSBsZXZlbFxuLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNDA1OEZGOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4ICjsg4nsg4Eg64uk66aEKVxuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzMzNDZjYztcbiAgfVxufVxuLnNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWludmVyc2UtY29udGFpbmVyLWhpZ2gpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogIzEyMTIxMjtcbiAgfVxufVxuLnRlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZDogIzZENkQ3MDE0O1xuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHsgLy8gVE9ETzog7Yag7YGw7Jy866GcIOuzgO2ZmFxuICAgIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIH1cbn1cbi5xdWF0ZXJuYXJ5IHtcbiAgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCBuZXV0cmFsL2JvcmRlci9vdmVybGF5L25vcm1hbFxuICBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1wcmltYXJ5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC1ib3JkZXItb3ZlcmxheS1ub3JtYWwpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLnF1aW5hcnkge1xuICAvLyBjb2xvcjogdmFyKC0tbmV1dHJhbC1sYWJlbC1zZWNvbmRhcnkpO1xuICBjb2xvcjogIzZENkQ3MENDOyAvLyBUT0RPOiDthqDtgbAg7JeF642w7J207Yq4XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7IC8vIFRPRE86IO2GoO2BsOycvOuhnCDrs4DtmZhcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5ldXRyYWwtY29udGFpbmVyLW1pZCk7XG4gICAgY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtdGVydGlhcnkpO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuLm5lZ2F0aXZlIHtcbiAgLy8gVE9ETzogZnVudGlvbi9jb250YWluZXIvbmVnYXRpdmVcbiAgYmFja2dyb3VuZDogdmFyKC0tZnVuY3Rpb24tbmVnYXRpdmUpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2FmMWIxYztcbiAgfVxufVxuLmludmVyc2Uge1xuICAvLyBUT0RPOiBuZXV0cmFsL2xhYmVsL3N0YXRpYy9wcmltYXJ5XG4gIGNvbG9yOiB2YXIoLS1uZXV0cmFsLWxhYmVsLXByaW1hcnkpO1xuXG4gICY6bm90KDpkaXNhYmxlZCk6aG92ZXIgeyAvLyBUT0RPOiDthqDtgbDsnLzroZwg67OA7ZmYXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxufVxuXG4vLyBzaXplXG4uY3RhIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogMTMuNXB4IDEycHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTYpO1xuICBtaW4td2lkdGg6IDEyOXB4O1xuICBtYXgtaGVpZ2h0OiA0OHB4O1xufVxuLmwge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAxMC41cHggOHB4OyAvLyBUT0RPOiDthqDtgbBcbiAgZm9udC1zaXplOiB2YXIoLS1scC1wcmktZm9udC1zaXplLTE1KTtcbiAgbWluLXdpZHRoOiAxMDdweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi5tIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyAvLyBUT0RPOiDthqDtgbBcbiAgcGFkZGluZzogN3B4IDZweDsgLy8gVE9ETzog7Yag7YGwXG4gIGZvbnQtc2l6ZTogdmFyKC0tbHAtcHJpLWZvbnQtc2l6ZS0xNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1scC1wcmktZm9udC13ZWlnaHQtNTAwKTtcbiAgbWluLXdpZHRoOiA5MXB4O1xuICBtYXgtaGVpZ2h0OiAzMnB4O1xufVxuLnMge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBwYWRkaW5nOiAzLjVweCA2cHg7IC8vIFRPRE86IO2GoO2BsFxuICBmb250LXNpemU6IHZhcigtLWxwLXByaS1mb250LXNpemUtMTMpO1xuICBmb250LXdlaWdodDogdmFyKC0tbHAtcHJpLWZvbnQtd2VpZ2h0LTUwMCk7XG4gIG1pbi13aWR0aDogODlweDtcbiAgbWF4LWhlaWdodDogMjRweDtcbn1cblxuLy8gYWxpZ25cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbGlnbi1zcGFjZS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4vLyBUZXh0QnV0dG9uIC0gbGV2ZWxcbi5pbnZlcnNlLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7IC8vIFRPRE86IO2GoO2BsCDsl4XrjbDsnbTtirggKOyDieyDgSDri6TrpoQpXG59XG4ubmV1dHJhbC1wcmltYXJ5IHtcbiAgLy8gY29sb3I6IHZhcigtLW5ldXRyYWwtbGFiZWwtc2Vjb25kYXJ5KTsgLy8gVE9ETzog7Yag7YGwIOyXheuNsOydtO2KuCAo7IOJ7IOBIOuLpOumhClcbiAgY29sb3I6ICM2RDZENzBDQztcbiAgb3BhY2l0eTogMC44O1xufVxuLmludmVyc2Utc3RhdGljLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0taW52ZXJzZS1sYWJlbC1zdGF0aWMtcHJpbWFyeSk7XG59Il19 */"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -53,18 +53,6 @@ const iconButtonVariants = cva([style.button, style.icon], {
|
|
|
53
53
|
},
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
-
const getButtonVariant = (props: ButtonProps) => {
|
|
57
|
-
switch (props.as) {
|
|
58
|
-
case 'default':
|
|
59
|
-
const { level = 'primary', align = 'center', size = 'cta' } = props;
|
|
60
|
-
return defaultButtonVariants({ level, align, size });
|
|
61
|
-
case 'text':
|
|
62
|
-
return textButtonVariants({ level: props.level });
|
|
63
|
-
case 'icon':
|
|
64
|
-
return iconButtonVariants({ level: props.level });
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
56
|
interface CommonButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
69
57
|
as?: 'default' | 'text' | 'icon';
|
|
70
58
|
asChild?: boolean;
|
|
@@ -80,12 +68,12 @@ export interface DefaultButtonProps extends CommonButtonProps, VariantProps<type
|
|
|
80
68
|
// rightIcon?: ReactNode;
|
|
81
69
|
}
|
|
82
70
|
export interface TextButtonProps extends CommonButtonProps, VariantProps<typeof textButtonVariants> {
|
|
83
|
-
as
|
|
71
|
+
as: 'text';
|
|
84
72
|
asChild?: boolean;
|
|
85
73
|
level?: 'inversePrimary' | 'neutralPrimary' | 'inverseStaticPrimary';
|
|
86
74
|
}
|
|
87
75
|
export interface IconButtonProps extends CommonButtonProps, VariantProps<typeof iconButtonVariants> {
|
|
88
|
-
as
|
|
76
|
+
as: 'icon';
|
|
89
77
|
asChild?: boolean;
|
|
90
78
|
// weight
|
|
91
79
|
}
|
|
@@ -121,11 +109,12 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) =>
|
|
|
121
109
|
|
|
122
110
|
switch (props.as) {
|
|
123
111
|
case 'default':
|
|
124
|
-
|
|
125
|
-
|
|
112
|
+
case undefined:
|
|
113
|
+
const { as, asChild, level = 'primary', align = 'center', size = 'cta',...rest } = props;
|
|
114
|
+
return <Comp {...rest} className={clsx(defaultButtonVariants({ level, align, size }))} ref={ref} />;
|
|
126
115
|
case 'text':
|
|
127
|
-
const { level: textLevel = 'inversePrimary' } = props;
|
|
128
|
-
return <Comp {...
|
|
116
|
+
const { as:textAs, asChild:textAsChild, level: textLevel = 'inversePrimary', ...textRest } = props;
|
|
117
|
+
return <Comp {...textRest} className={clsx(textButtonVariants({ level: textLevel }))} ref={ref} />;
|
|
129
118
|
// case 'icon':
|
|
130
119
|
// return <Comp {...props} className={clsx(iconButtonVariants({ level: props.level }))} ref={ref} />;
|
|
131
120
|
}
|
package/src/index.ts
CHANGED