@medusajs/ui 1.0.0 → 2.1.0
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/LICENSE +21 -0
- package/README.md +51 -2
- package/dist/cjs/components/badge/badge.d.ts +16 -5
- package/dist/cjs/components/badge/badge.js +20 -31
- package/dist/cjs/components/badge/badge.js.map +1 -1
- package/dist/cjs/components/button/button.d.ts +1 -2
- package/dist/cjs/components/button/button.js +12 -40
- package/dist/cjs/components/button/button.js.map +1 -1
- package/dist/cjs/components/calendar/calendar.js +5 -5
- package/dist/cjs/components/calendar/calendar.js.map +1 -1
- package/dist/cjs/components/checkbox/checkbox.js +1 -1
- package/dist/cjs/components/checkbox/checkbox.js.map +1 -1
- package/dist/cjs/components/code-block/code-block.d.ts +3 -5
- package/dist/cjs/components/code-block/code-block.js +19 -19
- package/dist/cjs/components/code-block/code-block.js.map +1 -1
- package/dist/cjs/components/command-bar/command-bar.d.ts +22 -0
- package/dist/cjs/components/command-bar/command-bar.js +63 -0
- package/dist/cjs/components/command-bar/command-bar.js.map +1 -0
- package/dist/cjs/components/command-bar/index.d.ts +1 -0
- package/dist/cjs/components/command-bar/index.js +5 -0
- package/dist/cjs/components/command-bar/index.js.map +1 -0
- package/dist/cjs/components/container/container.d.ts +1 -1
- package/dist/cjs/components/container/container.js.map +1 -1
- package/dist/cjs/components/currency-input/currency-input.d.ts +21 -0
- package/dist/cjs/components/currency-input/currency-input.js +58 -0
- package/dist/cjs/components/currency-input/currency-input.js.map +1 -0
- package/dist/cjs/components/currency-input/index.d.ts +1 -0
- package/dist/cjs/components/currency-input/index.js +5 -0
- package/dist/cjs/components/currency-input/index.js.map +1 -0
- package/dist/cjs/components/date-picker/date-picker.d.ts +1 -1
- package/dist/cjs/components/date-picker/date-picker.js +138 -52
- package/dist/cjs/components/date-picker/date-picker.js.map +1 -1
- package/dist/cjs/components/drawer/drawer.d.ts +13 -15
- package/dist/cjs/components/drawer/drawer.js +53 -44
- package/dist/cjs/components/drawer/drawer.js.map +1 -1
- package/dist/cjs/components/dropdown-menu/dropdown-menu.js +7 -7
- package/dist/cjs/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/cjs/components/focus-modal/focus-modal.d.ts +9 -12
- package/dist/cjs/components/focus-modal/focus-modal.js +39 -35
- package/dist/cjs/components/focus-modal/focus-modal.js.map +1 -1
- package/dist/cjs/components/heading/heading.js +3 -3
- package/dist/cjs/components/heading/heading.js.map +1 -1
- package/dist/cjs/components/hint/hint.d.ts +1 -1
- package/dist/cjs/components/icon-badge/icon-badge.d.ts +20 -0
- package/dist/cjs/components/icon-badge/icon-badge.js +24 -0
- package/dist/cjs/components/icon-badge/icon-badge.js.map +1 -0
- package/dist/cjs/components/icon-badge/index.d.ts +1 -0
- package/dist/cjs/components/icon-badge/index.js +5 -0
- package/dist/cjs/components/icon-badge/index.js.map +1 -0
- package/dist/cjs/components/icon-button/icon-button.d.ts +21 -0
- package/dist/cjs/components/icon-button/icon-button.js +48 -0
- package/dist/cjs/components/icon-button/icon-button.js.map +1 -0
- package/dist/cjs/components/icon-button/index.d.ts +1 -0
- package/dist/cjs/components/icon-button/index.js +5 -0
- package/dist/cjs/components/icon-button/index.js.map +1 -0
- package/dist/cjs/components/input/input.js +6 -6
- package/dist/cjs/components/input/input.js.map +1 -1
- package/dist/cjs/components/kbd/kbd.d.ts +1 -1
- package/dist/cjs/components/kbd/kbd.js +4 -3
- package/dist/cjs/components/kbd/kbd.js.map +1 -1
- package/dist/cjs/components/progress-accordion/index.d.ts +1 -0
- package/dist/cjs/components/progress-accordion/index.js +5 -0
- package/dist/cjs/components/progress-accordion/index.js.map +1 -0
- package/dist/cjs/components/progress-accordion/progress-accordion.d.ts +19 -0
- package/dist/cjs/components/progress-accordion/progress-accordion.js +54 -0
- package/dist/cjs/components/progress-accordion/progress-accordion.js.map +1 -0
- package/dist/cjs/components/progress-tabs/index.d.ts +1 -0
- package/dist/cjs/components/progress-tabs/index.js +5 -0
- package/dist/cjs/components/progress-tabs/index.js.map +1 -0
- package/dist/cjs/components/progress-tabs/progress-tabs.d.ts +15 -0
- package/dist/cjs/components/progress-tabs/progress-tabs.js +46 -0
- package/dist/cjs/components/progress-tabs/progress-tabs.js.map +1 -0
- package/dist/cjs/components/prompt/prompt.js +3 -3
- package/dist/cjs/components/prompt/prompt.js.map +1 -1
- package/dist/cjs/components/radio-group/radio-group.d.ts +5 -0
- package/dist/cjs/components/radio-group/radio-group.js +25 -4
- package/dist/cjs/components/radio-group/radio-group.js.map +1 -1
- package/dist/cjs/components/select/select.js +4 -8
- package/dist/cjs/components/select/select.js.map +1 -1
- package/dist/cjs/components/status-badge/index.d.ts +1 -0
- package/dist/cjs/components/status-badge/index.js +5 -0
- package/dist/cjs/components/status-badge/index.js.map +1 -0
- package/dist/cjs/components/status-badge/status-badge.d.ts +6 -0
- package/dist/cjs/components/status-badge/status-badge.js +23 -0
- package/dist/cjs/components/status-badge/status-badge.js.map +1 -0
- package/dist/cjs/components/switch/switch.js +1 -1
- package/dist/cjs/components/switch/switch.js.map +1 -1
- package/dist/cjs/components/table/table.js +6 -7
- package/dist/cjs/components/table/table.js.map +1 -1
- package/dist/cjs/components/tabs/index.d.ts +1 -0
- package/dist/cjs/components/tabs/index.js +5 -0
- package/dist/cjs/components/tabs/index.js.map +1 -0
- package/dist/cjs/components/tabs/tabs.d.ts +11 -0
- package/dist/cjs/components/tabs/tabs.js +25 -0
- package/dist/cjs/components/tabs/tabs.js.map +1 -0
- package/dist/cjs/components/text/text.d.ts +1 -0
- package/dist/cjs/components/text/text.js +64 -7
- package/dist/cjs/components/text/text.js.map +1 -1
- package/dist/cjs/components/textarea/textarea.js +1 -1
- package/dist/cjs/components/textarea/textarea.js.map +1 -1
- package/dist/cjs/components/time-input/time-input.js +1 -1
- package/dist/cjs/components/time-input/time-input.js.map +1 -1
- package/dist/cjs/components/toast/toast.js +1 -1
- package/dist/cjs/components/toast/toast.js.map +1 -1
- package/dist/cjs/components/tooltip/tooltip.js +1 -1
- package/dist/cjs/components/tooltip/tooltip.js.map +1 -1
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +20 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.d.ts +5 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/components/badge/badge.d.ts +16 -5
- package/dist/esm/components/badge/badge.js +19 -31
- package/dist/esm/components/badge/badge.js.map +1 -1
- package/dist/esm/components/button/button.d.ts +1 -2
- package/dist/esm/components/button/button.js +12 -40
- package/dist/esm/components/button/button.js.map +1 -1
- package/dist/esm/components/calendar/calendar.js +5 -5
- package/dist/esm/components/calendar/calendar.js.map +1 -1
- package/dist/esm/components/checkbox/checkbox.js +1 -1
- package/dist/esm/components/checkbox/checkbox.js.map +1 -1
- package/dist/esm/components/code-block/code-block.d.ts +3 -5
- package/dist/esm/components/code-block/code-block.js +7 -7
- package/dist/esm/components/code-block/code-block.js.map +1 -1
- package/dist/esm/components/command-bar/command-bar.d.ts +22 -0
- package/dist/esm/components/command-bar/command-bar.js +59 -0
- package/dist/esm/components/command-bar/command-bar.js.map +1 -0
- package/dist/esm/components/command-bar/index.d.ts +1 -0
- package/dist/esm/components/command-bar/index.js +2 -0
- package/dist/esm/components/command-bar/index.js.map +1 -0
- package/dist/esm/components/container/container.d.ts +1 -1
- package/dist/esm/components/container/container.js.map +1 -1
- package/dist/esm/components/currency-input/currency-input.d.ts +21 -0
- package/dist/esm/components/currency-input/currency-input.js +54 -0
- package/dist/esm/components/currency-input/currency-input.js.map +1 -0
- package/dist/esm/components/currency-input/index.d.ts +1 -0
- package/dist/esm/components/currency-input/index.js +2 -0
- package/dist/esm/components/currency-input/index.js.map +1 -0
- package/dist/esm/components/date-picker/date-picker.d.ts +1 -1
- package/dist/esm/components/date-picker/date-picker.js +139 -53
- package/dist/esm/components/date-picker/date-picker.js.map +1 -1
- package/dist/esm/components/drawer/drawer.d.ts +13 -15
- package/dist/esm/components/drawer/drawer.js +53 -44
- package/dist/esm/components/drawer/drawer.js.map +1 -1
- package/dist/esm/components/dropdown-menu/dropdown-menu.js +7 -7
- package/dist/esm/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/esm/components/focus-modal/focus-modal.d.ts +9 -12
- package/dist/esm/components/focus-modal/focus-modal.js +39 -35
- package/dist/esm/components/focus-modal/focus-modal.js.map +1 -1
- package/dist/esm/components/heading/heading.js +3 -3
- package/dist/esm/components/heading/heading.js.map +1 -1
- package/dist/esm/components/hint/hint.d.ts +1 -1
- package/dist/esm/components/icon-badge/icon-badge.d.ts +20 -0
- package/dist/esm/components/icon-badge/icon-badge.js +20 -0
- package/dist/esm/components/icon-badge/icon-badge.js.map +1 -0
- package/dist/esm/components/icon-badge/index.d.ts +1 -0
- package/dist/esm/components/icon-badge/index.js +2 -0
- package/dist/esm/components/icon-badge/index.js.map +1 -0
- package/dist/esm/components/icon-button/icon-button.d.ts +21 -0
- package/dist/esm/components/icon-button/icon-button.js +43 -0
- package/dist/esm/components/icon-button/icon-button.js.map +1 -0
- package/dist/esm/components/icon-button/index.d.ts +1 -0
- package/dist/esm/components/icon-button/index.js +2 -0
- package/dist/esm/components/icon-button/index.js.map +1 -0
- package/dist/esm/components/input/input.js +6 -6
- package/dist/esm/components/input/input.js.map +1 -1
- package/dist/esm/components/kbd/kbd.d.ts +1 -1
- package/dist/esm/components/kbd/kbd.js +4 -3
- package/dist/esm/components/kbd/kbd.js.map +1 -1
- package/dist/esm/components/progress-accordion/index.d.ts +1 -0
- package/dist/esm/components/progress-accordion/index.js +2 -0
- package/dist/esm/components/progress-accordion/index.js.map +1 -0
- package/dist/esm/components/progress-accordion/progress-accordion.d.ts +19 -0
- package/dist/esm/components/progress-accordion/progress-accordion.js +50 -0
- package/dist/esm/components/progress-accordion/progress-accordion.js.map +1 -0
- package/dist/esm/components/progress-tabs/index.d.ts +1 -0
- package/dist/esm/components/progress-tabs/index.js +2 -0
- package/dist/esm/components/progress-tabs/index.js.map +1 -0
- package/dist/esm/components/progress-tabs/progress-tabs.d.ts +15 -0
- package/dist/esm/components/progress-tabs/progress-tabs.js +42 -0
- package/dist/esm/components/progress-tabs/progress-tabs.js.map +1 -0
- package/dist/esm/components/prompt/prompt.js +3 -3
- package/dist/esm/components/prompt/prompt.js.map +1 -1
- package/dist/esm/components/radio-group/radio-group.d.ts +5 -0
- package/dist/esm/components/radio-group/radio-group.js +25 -4
- package/dist/esm/components/radio-group/radio-group.js.map +1 -1
- package/dist/esm/components/select/select.js +5 -9
- package/dist/esm/components/select/select.js.map +1 -1
- package/dist/esm/components/status-badge/index.d.ts +1 -0
- package/dist/esm/components/status-badge/index.js +2 -0
- package/dist/esm/components/status-badge/index.js.map +1 -0
- package/dist/esm/components/status-badge/status-badge.d.ts +6 -0
- package/dist/esm/components/status-badge/status-badge.js +19 -0
- package/dist/esm/components/status-badge/status-badge.js.map +1 -0
- package/dist/esm/components/switch/switch.js +1 -1
- package/dist/esm/components/switch/switch.js.map +1 -1
- package/dist/esm/components/table/table.js +6 -7
- package/dist/esm/components/table/table.js.map +1 -1
- package/dist/esm/components/tabs/index.d.ts +1 -0
- package/dist/esm/components/tabs/index.js +2 -0
- package/dist/esm/components/tabs/index.js.map +1 -0
- package/dist/esm/components/tabs/tabs.d.ts +11 -0
- package/dist/esm/components/tabs/tabs.js +21 -0
- package/dist/esm/components/tabs/tabs.js.map +1 -0
- package/dist/esm/components/text/text.d.ts +1 -0
- package/dist/esm/components/text/text.js +64 -7
- package/dist/esm/components/text/text.js.map +1 -1
- package/dist/esm/components/textarea/textarea.js +1 -1
- package/dist/esm/components/textarea/textarea.js.map +1 -1
- package/dist/esm/components/time-input/time-input.js +1 -1
- package/dist/esm/components/time-input/time-input.js.map +1 -1
- package/dist/esm/components/toast/toast.js +1 -1
- package/dist/esm/components/toast/toast.js.map +1 -1
- package/dist/esm/components/tooltip/tooltip.js +1 -1
- package/dist/esm/components/tooltip/tooltip.js.map +1 -1
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +5 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +13 -6
|
@@ -3,54 +3,26 @@ import { cva } from "class-variance-authority";
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { clx } from "../../utils/clx";
|
|
5
5
|
import { Spinner } from "@medusajs/icons";
|
|
6
|
-
const buttonVariants = cva("disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled
|
|
6
|
+
const buttonVariants = cva(clx("transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none", "disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral disabled:after:hidden", "after:transition-fg after:absolute after:inset-0 after:content-['']"), {
|
|
7
7
|
variants: {
|
|
8
8
|
variant: {
|
|
9
|
-
primary: clx("shadow-buttons-
|
|
10
|
-
secondary: clx("shadow-buttons-neutral text-ui-fg-base
|
|
11
|
-
transparent: clx("text-ui-fg-base
|
|
12
|
-
danger: clx("shadow-buttons-
|
|
9
|
+
primary: clx("shadow-buttons-inverted text-ui-fg-on-inverted bg-ui-button-inverted after:button-inverted-gradient", "hover:bg-ui-button-inverted-hover hover:after:button-inverted-hover-gradient", "active:bg-ui-button-inverted-pressed active:after:button-inverted-pressed-gradient", "focus:!shadow-buttons-inverted-focus"),
|
|
10
|
+
secondary: clx("shadow-buttons-neutral text-ui-fg-base bg-ui-button-neutral after:button-neutral-gradient", "hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient", "active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient", "focus:shadow-buttons-neutral-focus"),
|
|
11
|
+
transparent: clx("after:hidden", "text-ui-fg-base bg-ui-button-transparent", "hover:bg-ui-button-transparent-hover", "active:bg-ui-button-transparent-pressed", "focus:shadow-buttons-neutral-focus focus:bg-ui-bg-base", "disabled:!bg-transparent disabled:!shadow-none"),
|
|
12
|
+
danger: clx("shadow-buttons-colored shadow-buttons-danger text-ui-fg-on-color bg-ui-button-danger after:button-danger-gradient", "hover:bg-ui-button-danger-hover hover:after:button-danger-hover-gradient", "active:bg-ui-button-danger-pressed active:after:button-danger-pressed-gradient", "focus:shadow-buttons-danger-focus"),
|
|
13
13
|
},
|
|
14
14
|
size: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
xlarge: "txt-compact-large-plus gap-x-2 px-[19px] py-[13px]",
|
|
19
|
-
},
|
|
20
|
-
format: {
|
|
21
|
-
default: "",
|
|
22
|
-
icon: "",
|
|
15
|
+
base: "txt-compact-small-plus gap-x-1.5 px-3 py-1.5",
|
|
16
|
+
large: "txt-compact-medium-plus gap-x-1.5 px-4 py-2.5",
|
|
17
|
+
xlarge: "txt-compact-large-plus gap-x-1.5 px-5 py-3.5",
|
|
23
18
|
},
|
|
24
19
|
},
|
|
25
20
|
defaultVariants: {
|
|
26
|
-
variant: "primary",
|
|
27
21
|
size: "base",
|
|
28
|
-
|
|
22
|
+
variant: "primary",
|
|
29
23
|
},
|
|
30
|
-
compoundVariants: [
|
|
31
|
-
{
|
|
32
|
-
size: "small",
|
|
33
|
-
format: "icon",
|
|
34
|
-
className: "px-px py-px",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
size: "base",
|
|
38
|
-
format: "icon",
|
|
39
|
-
className: "px-[5px] py-[5px]",
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
size: "large",
|
|
43
|
-
format: "icon",
|
|
44
|
-
className: "px-[9px] py-[9px]",
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
size: "xlarge",
|
|
48
|
-
format: "icon",
|
|
49
|
-
className: "px-[13px] py-[13px]",
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
24
|
});
|
|
53
|
-
const Button = React.forwardRef(({
|
|
25
|
+
const Button = React.forwardRef(({ variant = "primary", size = "base", className, asChild = false, children, isLoading = false, disabled, ...props }, ref) => {
|
|
54
26
|
const Component = asChild ? Slot : "button";
|
|
55
27
|
/**
|
|
56
28
|
* In the case of a button where asChild is true, and isLoading is true, we ensure that
|
|
@@ -60,13 +32,13 @@ const Button = React.forwardRef(({ size, variant, format, className, asChild = f
|
|
|
60
32
|
const renderInner = () => {
|
|
61
33
|
if (isLoading) {
|
|
62
34
|
return (React.createElement("span", { className: "pointer-events-none" },
|
|
63
|
-
React.createElement("div", { className: clx("bg-ui-bg-disabled absolute inset-0
|
|
35
|
+
React.createElement("div", { className: clx("bg-ui-bg-disabled absolute inset-0 flex items-center justify-center rounded-md") },
|
|
64
36
|
React.createElement(Spinner, { className: "animate-spin" })),
|
|
65
37
|
children));
|
|
66
38
|
}
|
|
67
39
|
return children;
|
|
68
40
|
};
|
|
69
|
-
return (React.createElement(Component, { ref: ref, ...props, className: clx(buttonVariants({ variant, size
|
|
41
|
+
return (React.createElement(Component, { ref: ref, ...props, className: clx(buttonVariants({ variant, size }), className), disabled: disabled || isLoading }, renderInner()));
|
|
70
42
|
});
|
|
71
43
|
Button.displayName = "Button";
|
|
72
44
|
export { Button, buttonVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../../src/components/button/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC,MAAM,cAAc,GAAG,GAAG,CACxB,
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../../src/components/button/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC,MAAM,cAAc,GAAG,GAAG,CACxB,GAAG,CACD,8GAA8G,EAC9G,8IAA8I,EAC9I,qEAAqE,CACtE,EACD;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,GAAG,CACV,qGAAqG,EACrG,8EAA8E,EAC9E,oFAAoF,EACpF,sCAAsC,CACvC;YACD,SAAS,EAAE,GAAG,CACZ,2FAA2F,EAC3F,4EAA4E,EAC5E,kFAAkF,EAClF,oCAAoC,CACrC;YACD,WAAW,EAAE,GAAG,CACd,cAAc,EACd,0CAA0C,EAC1C,sCAAsC,EACtC,yCAAyC,EACzC,wDAAwD,EACxD,gDAAgD,CACjD;YACD,MAAM,EAAE,GAAG,CACT,mHAAmH,EACnH,0EAA0E,EAC1E,gFAAgF,EAChF,mCAAmC,CACpC;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,8CAA8C;YACpD,KAAK,EAAE,+CAA+C;YACtD,MAAM,EAAE,8CAA8C;SACvD;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AASD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CACE,EACE,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,MAAM,EACb,SAAS,EACT,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE3C;;;;OAIG;IACH,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,SAAS,EAAE;YACb,OAAO,CACL,8BAAM,SAAS,EAAC,qBAAqB;gBACnC,6BACE,SAAS,EAAE,GAAG,CACZ,gFAAgF,CACjF;oBAED,oBAAC,OAAO,IAAC,SAAS,EAAC,cAAc,GAAG,CAChC;gBACL,QAAQ,CACJ,CACR,CAAA;SACF;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,KACJ,KAAK,EACT,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAC5D,QAAQ,EAAE,QAAQ,IAAI,SAAS,IAE9B,WAAW,EAAE,CACJ,CACb,CAAA;AACH,CAAC,CACF,CAAA;AACD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;AAE7B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\nimport { Spinner } from \"@medusajs/icons\"\n\nconst buttonVariants = cva(\n clx(\n \"transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none\",\n \"disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral disabled:after:hidden\",\n \"after:transition-fg after:absolute after:inset-0 after:content-['']\"\n ),\n {\n variants: {\n variant: {\n primary: clx(\n \"shadow-buttons-inverted text-ui-fg-on-inverted bg-ui-button-inverted after:button-inverted-gradient\",\n \"hover:bg-ui-button-inverted-hover hover:after:button-inverted-hover-gradient\",\n \"active:bg-ui-button-inverted-pressed active:after:button-inverted-pressed-gradient\",\n \"focus:!shadow-buttons-inverted-focus\"\n ),\n secondary: clx(\n \"shadow-buttons-neutral text-ui-fg-base bg-ui-button-neutral after:button-neutral-gradient\",\n \"hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient\",\n \"active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient\",\n \"focus:shadow-buttons-neutral-focus\"\n ),\n transparent: clx(\n \"after:hidden\",\n \"text-ui-fg-base bg-ui-button-transparent\",\n \"hover:bg-ui-button-transparent-hover\",\n \"active:bg-ui-button-transparent-pressed\",\n \"focus:shadow-buttons-neutral-focus focus:bg-ui-bg-base\",\n \"disabled:!bg-transparent disabled:!shadow-none\"\n ),\n danger: clx(\n \"shadow-buttons-colored shadow-buttons-danger text-ui-fg-on-color bg-ui-button-danger after:button-danger-gradient\",\n \"hover:bg-ui-button-danger-hover hover:after:button-danger-hover-gradient\",\n \"active:bg-ui-button-danger-pressed active:after:button-danger-pressed-gradient\",\n \"focus:shadow-buttons-danger-focus\"\n ),\n },\n size: {\n base: \"txt-compact-small-plus gap-x-1.5 px-3 py-1.5\",\n large: \"txt-compact-medium-plus gap-x-1.5 px-4 py-2.5\",\n xlarge: \"txt-compact-large-plus gap-x-1.5 px-5 py-3.5\",\n },\n },\n defaultVariants: {\n size: \"base\",\n variant: \"primary\",\n },\n }\n)\n\ninterface ButtonProps\n extends React.ComponentPropsWithoutRef<\"button\">,\n VariantProps<typeof buttonVariants> {\n isLoading?: boolean\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"base\",\n className,\n asChild = false,\n children,\n isLoading = false,\n disabled,\n ...props\n },\n ref\n ) => {\n const Component = asChild ? Slot : \"button\"\n\n /**\n * In the case of a button where asChild is true, and isLoading is true, we ensure that\n * only on element is passed as a child to the Slot component. This is because the Slot\n * component only accepts a single child.\n */\n const renderInner = () => {\n if (isLoading) {\n return (\n <span className=\"pointer-events-none\">\n <div\n className={clx(\n \"bg-ui-bg-disabled absolute inset-0 flex items-center justify-center rounded-md\"\n )}\n >\n <Spinner className=\"animate-spin\" />\n </div>\n {children}\n </span>\n )\n }\n\n return children\n }\n\n return (\n <Component\n ref={ref}\n {...props}\n className={clx(buttonVariants({ variant, size }), className)}\n disabled={disabled || isLoading}\n >\n {renderInner()}\n </Component>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { ChevronLeftMini, ChevronRightMini } from "@medusajs/icons";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { DayPicker, useDayRender, } from "react-day-picker";
|
|
5
|
-
import { buttonVariants } from "../button";
|
|
6
5
|
import { clx } from "../../utils/clx";
|
|
6
|
+
import { iconButtonVariants } from "../icon-button";
|
|
7
7
|
const Calendar = ({ className, classNames, mode = "single", showOutsideDays = true, ...props }) => {
|
|
8
8
|
return (React.createElement(DayPicker, { mode: mode, showOutsideDays: showOutsideDays, className: clx(className), classNames: {
|
|
9
9
|
months: "flex flex-col sm:flex-row",
|
|
@@ -11,15 +11,15 @@ const Calendar = ({ className, classNames, mode = "single", showOutsideDays = tr
|
|
|
11
11
|
caption: "flex justify-center relative items-center h-9",
|
|
12
12
|
caption_label: "txt-compact-small-plus absolute bottom-0 left-0 right-0 top-1 flex items-center justify-center text-ui-fg-base",
|
|
13
13
|
nav: "space-x-1 flex items-center bg-ui-bg-base-pressed rounded-md w-full h-full justify-between p-0.5",
|
|
14
|
-
nav_button: clx(
|
|
14
|
+
nav_button: clx(iconButtonVariants({ variant: "primary", size: "base" })),
|
|
15
15
|
nav_button_previous: "!absolute left-0.5",
|
|
16
16
|
nav_button_next: "!absolute right-0.5",
|
|
17
17
|
table: "w-full border-collapse space-y-1",
|
|
18
18
|
head_row: "flex w-full gap-x-2",
|
|
19
19
|
head_cell: clx("txt-compact-small-plus text-ui-fg-muted m-0 box-border flex h-8 w-8 items-center justify-center p-0"),
|
|
20
20
|
row: "flex w-full mt-2 gap-x-2",
|
|
21
|
-
cell: "txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative
|
|
22
|
-
day: "txt-compact-small-plus text-ui-fg-base bg-ui-bg-base
|
|
21
|
+
cell: "txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative",
|
|
22
|
+
day: "txt-compact-small-plus text-ui-fg-base bg-ui-bg-base hover:bg-ui-bg-base-hover focus:shadow-borders-interactive-with-focus h-8 w-8 rounded-md p-0 text-center outline-none transition-all",
|
|
23
23
|
day_selected: "bg-ui-bg-interactive text-ui-fg-on-color hover:bg-ui-bg-interactive focus:bg-ui-bg-interactive",
|
|
24
24
|
day_outside: "text-ui-fg-disabled aria-selected:text-ui-fg-on-color",
|
|
25
25
|
day_disabled: "text-ui-fg-disabled",
|
|
@@ -50,7 +50,7 @@ const Day = ({ date, displayMonth }) => {
|
|
|
50
50
|
return (React.createElement("div", { ...divProps, className: clx("flex items-center justify-center", divProps.className) }));
|
|
51
51
|
}
|
|
52
52
|
const { children: buttonChildren, className: buttonClassName, ...buttonPropsRest } = buttonProps;
|
|
53
|
-
return (React.createElement("button", { ref: ref, ...buttonPropsRest, className: clx("relative", buttonClassName) },
|
|
53
|
+
return (React.createElement("button", { ref: ref, ...buttonPropsRest, type: "button", className: clx("relative", buttonClassName) },
|
|
54
54
|
buttonChildren,
|
|
55
55
|
today && (React.createElement("span", { className: clx("absolute right-[5px] top-[5px] h-1 w-1 rounded-full", {
|
|
56
56
|
"bg-ui-fg-interactive": !selected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../../src/components/calendar/calendar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EACL,SAAS,EACT,YAAY,GAIb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../../src/components/calendar/calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { ChevronLeftMini, ChevronRightMini } from \"@medusajs/icons\"\nimport * as React from \"react\"\nimport {\n DayPicker,\n useDayRender,\n type DayPickerRangeProps,\n type DayPickerSingleProps,\n type DayProps,\n} from \"react-day-picker\"\n\nimport { clx } from \"@/utils/clx\"\nimport { iconButtonVariants } from \"../icon-button\"\n\ntype OmitKeys<T, K extends keyof T> = {\n [P in keyof T as P extends K ? never : P]: T[P]\n}\n\ntype KeysToOmit = \"showWeekNumber\" | \"captionLayout\" | \"mode\"\n\ntype SingleProps = OmitKeys<DayPickerSingleProps, KeysToOmit>\ntype RangeProps = OmitKeys<DayPickerRangeProps, KeysToOmit>\n\ntype CalendarProps =\n | ({\n mode: \"single\"\n } & SingleProps)\n | ({\n mode?: undefined\n } & SingleProps)\n | ({\n mode: \"range\"\n } & RangeProps)\n\nconst Calendar = ({\n className,\n classNames,\n mode = \"single\",\n showOutsideDays = true,\n ...props\n}: CalendarProps) => {\n return (\n <DayPicker\n mode={mode}\n showOutsideDays={showOutsideDays}\n className={clx(className)}\n classNames={{\n months: \"flex flex-col sm:flex-row\",\n month: \"space-y-2 p-3\",\n caption: \"flex justify-center relative items-center h-9\",\n caption_label:\n \"txt-compact-small-plus absolute bottom-0 left-0 right-0 top-1 flex items-center justify-center text-ui-fg-base\",\n nav: \"space-x-1 flex items-center bg-ui-bg-base-pressed rounded-md w-full h-full justify-between p-0.5\",\n nav_button: clx(\n iconButtonVariants({ variant: \"primary\", size: \"base\" })\n ),\n nav_button_previous: \"!absolute left-0.5\",\n nav_button_next: \"!absolute right-0.5\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex w-full gap-x-2\",\n head_cell: clx(\n \"txt-compact-small-plus text-ui-fg-muted m-0 box-border flex h-8 w-8 items-center justify-center p-0\"\n ),\n row: \"flex w-full mt-2 gap-x-2\",\n cell: \"txt-compact-small-plus relative rounded-md p-0 text-center focus-within:relative\",\n day: \"txt-compact-small-plus text-ui-fg-base bg-ui-bg-base hover:bg-ui-bg-base-hover focus:shadow-borders-interactive-with-focus h-8 w-8 rounded-md p-0 text-center outline-none transition-all\",\n day_selected:\n \"bg-ui-bg-interactive text-ui-fg-on-color hover:bg-ui-bg-interactive focus:bg-ui-bg-interactive\",\n day_outside: \"text-ui-fg-disabled aria-selected:text-ui-fg-on-color\",\n day_disabled: \"text-ui-fg-disabled\",\n day_range_middle:\n \"aria-selected:!bg-ui-bg-highlight aria-selected:!text-ui-fg-interactive\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: () => <ChevronLeftMini />,\n IconRight: () => <ChevronRightMini />,\n Day: Day,\n }}\n {...(props as SingleProps & RangeProps)}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nconst Day = ({ date, displayMonth }: DayProps) => {\n const ref = React.useRef<HTMLButtonElement>(null)\n const { activeModifiers, buttonProps, divProps, isButton, isHidden } =\n useDayRender(date, displayMonth, ref)\n\n const { selected, today, disabled, range_middle } = activeModifiers\n\n React.useEffect(() => {\n if (selected) {\n ref.current?.focus()\n }\n }, [selected])\n\n if (isHidden) {\n return <></>\n }\n\n if (!isButton) {\n return (\n <div\n {...divProps}\n className={clx(\"flex items-center justify-center\", divProps.className)}\n />\n )\n }\n\n const {\n children: buttonChildren,\n className: buttonClassName,\n ...buttonPropsRest\n } = buttonProps\n\n return (\n <button\n ref={ref}\n {...buttonPropsRest}\n type=\"button\"\n className={clx(\"relative\", buttonClassName)}\n >\n {buttonChildren}\n {today && (\n <span\n className={clx(\n \"absolute right-[5px] top-[5px] h-1 w-1 rounded-full\",\n {\n \"bg-ui-fg-interactive\": !selected,\n \"bg-ui-fg-on-color\": selected,\n \"!bg-ui-fg-interactive\": selected && range_middle,\n \"bg-ui-fg-disabled\": disabled,\n }\n )}\n />\n )}\n </button>\n )\n}\n\nexport { Calendar }\n"]}
|
|
@@ -5,7 +5,7 @@ import * as React from "react";
|
|
|
5
5
|
import { clx } from "../../utils/clx";
|
|
6
6
|
const Checkbox = React.forwardRef(({ className, checked, ...props }, ref) => {
|
|
7
7
|
return (React.createElement(Primitives.Root, { ...props, ref: ref, checked: checked, className: clx("group relative inline-flex h-5 w-5 items-center justify-center outline-none ", className) },
|
|
8
|
-
React.createElement("div", { className: "text-ui-fg-on-inverted bg-ui-bg-base shadow-borders-base
|
|
8
|
+
React.createElement("div", { className: "text-ui-fg-on-inverted bg-ui-bg-base shadow-borders-base group-hover:bg-ui-bg-base-hover group-focus:!shadow-borders-interactive-with-focus group-data-[state=checked]:bg-ui-bg-interactive group-data-[state=checked]:shadow-borders-interactive-with-shadow group-data-[state=indeterminate]:bg-ui-bg-interactive group-data-[state=indeterminate]:shadow-borders-interactive-with-shadow [&_path]:shadow-details-contrast-on-bg-interactive group-disabled:text-ui-fg-disabled group-disabled:!bg-ui-bg-disabled group-disabled:!shadow-borders-base transition-fg h-[14px] w-[14px] rounded-[3px]" },
|
|
9
9
|
React.createElement(Primitives.Indicator, { className: "absolute inset-0" }, checked === "indeterminate" ? React.createElement(MinusMini, null) : React.createElement(CheckMini, null)))));
|
|
10
10
|
});
|
|
11
11
|
Checkbox.displayName = "Checkbox";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../src/components/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1C,OAAO,CACL,oBAAC,UAAU,CAAC,IAAI,OACV,KAAK,EACT,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,GAAG,CACZ,8EAA8E,EAC9E,SAAS,CACV;QAED,6BAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../src/components/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1C,OAAO,CACL,oBAAC,UAAU,CAAC,IAAI,OACV,KAAK,EACT,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,GAAG,CACZ,8EAA8E,EAC9E,SAAS,CACV;QAED,6BAAK,SAAS,EAAC,ukBAAukB;YACplB,oBAAC,UAAU,CAAC,SAAS,IAAC,SAAS,EAAC,kBAAkB,IAC/C,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,oBAAC,SAAS,OAAG,CAAC,CAAC,CAAC,oBAAC,SAAS,OAAG,CACvC,CACnB,CACU,CACnB,CAAA;AACH,CAAC,CAAC,CAAA;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport { CheckMini, MinusMini } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-checkbox\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof Primitives.Root>,\n React.ComponentPropsWithoutRef<typeof Primitives.Root>\n>(({ className, checked, ...props }, ref) => {\n return (\n <Primitives.Root\n {...props}\n ref={ref}\n checked={checked}\n className={clx(\n \"group relative inline-flex h-5 w-5 items-center justify-center outline-none \",\n className\n )}\n >\n <div className=\"text-ui-fg-on-inverted bg-ui-bg-base shadow-borders-base group-hover:bg-ui-bg-base-hover group-focus:!shadow-borders-interactive-with-focus group-data-[state=checked]:bg-ui-bg-interactive group-data-[state=checked]:shadow-borders-interactive-with-shadow group-data-[state=indeterminate]:bg-ui-bg-interactive group-data-[state=indeterminate]:shadow-borders-interactive-with-shadow [&_path]:shadow-details-contrast-on-bg-interactive group-disabled:text-ui-fg-disabled group-disabled:!bg-ui-bg-disabled group-disabled:!shadow-borders-base transition-fg h-[14px] w-[14px] rounded-[3px]\">\n <Primitives.Indicator className=\"absolute inset-0\">\n {checked === \"indeterminate\" ? <MinusMini /> : <CheckMini />}\n </Primitives.Indicator>\n </div>\n </Primitives.Root>\n )\n})\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }\n"]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
export type CodeSnippet = {
|
|
3
3
|
label: string;
|
|
4
4
|
language: string;
|
|
5
5
|
code: string;
|
|
6
|
+
hideLineNumbers?: boolean;
|
|
6
7
|
};
|
|
7
8
|
type RootProps = {
|
|
8
9
|
snippets: CodeSnippet[];
|
|
@@ -10,11 +11,8 @@ type RootProps = {
|
|
|
10
11
|
type HeaderProps = {
|
|
11
12
|
hideLabels?: boolean;
|
|
12
13
|
};
|
|
13
|
-
type BodyProps = {
|
|
14
|
-
hideLineNumbers?: boolean;
|
|
15
|
-
};
|
|
16
14
|
declare const CodeBlock: (({ snippets, className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & RootProps) => React.JSX.Element) & {
|
|
17
|
-
Body: ({ className,
|
|
15
|
+
Body: ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => React.JSX.Element;
|
|
18
16
|
Header: (({ children, className, hideLabels, ...props }: React.HTMLAttributes<HTMLDivElement> & HeaderProps) => React.JSX.Element) & {
|
|
19
17
|
Meta: ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => React.JSX.Element;
|
|
20
18
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Highlight, themes } from "prism-react-renderer";
|
|
3
|
+
import * as React from "react";
|
|
2
4
|
import { Copy } from "../copy";
|
|
3
5
|
import { clx } from "../../utils/clx";
|
|
4
|
-
|
|
5
|
-
import React, { createContext, useContext, useState } from "react";
|
|
6
|
-
const CodeBlockContext = createContext(null);
|
|
6
|
+
const CodeBlockContext = React.createContext(null);
|
|
7
7
|
const useCodeBlockContext = () => {
|
|
8
|
-
const context = useContext(CodeBlockContext);
|
|
8
|
+
const context = React.useContext(CodeBlockContext);
|
|
9
9
|
if (context === null)
|
|
10
10
|
throw new Error("useCodeBlockContext can only be used within a CodeBlockContext");
|
|
11
11
|
return context;
|
|
12
12
|
};
|
|
13
13
|
const Root = ({ snippets, className, children, ...props }) => {
|
|
14
|
-
const [active, setActive] = useState(snippets[0]);
|
|
14
|
+
const [active, setActive] = React.useState(snippets[0]);
|
|
15
15
|
return (React.createElement(CodeBlockContext.Provider, { value: { snippets, active, setActive } },
|
|
16
16
|
React.createElement("div", { className: clx("border-ui-code-border overflow-hidden rounded-lg border", className), ...props }, children)));
|
|
17
17
|
};
|
|
@@ -28,7 +28,7 @@ const Meta = ({ className, ...props }) => {
|
|
|
28
28
|
return (React.createElement("div", { className: clx("text-ui-code-text-subtle ml-auto", className), ...props }));
|
|
29
29
|
};
|
|
30
30
|
const Header = Object.assign(HeaderComponent, { Meta });
|
|
31
|
-
const Body = ({ className,
|
|
31
|
+
const Body = ({ className, ...props }) => {
|
|
32
32
|
const { active } = useCodeBlockContext();
|
|
33
33
|
return (React.createElement("div", { className: clx("bg-ui-code-bg-base relative p-4", className), ...props },
|
|
34
34
|
React.createElement(Copy, { content: active.code, className: "text-ui-code-icon absolute right-4 top-4" }),
|
|
@@ -58,7 +58,7 @@ const Body = ({ className, hideLineNumbers = false, ...props }) => {
|
|
|
58
58
|
...style,
|
|
59
59
|
background: "transparent",
|
|
60
60
|
} }, tokens.map((line, i) => (React.createElement("div", { key: i, ...getLineProps({ line }), className: "flex" },
|
|
61
|
-
!hideLineNumbers && (React.createElement("span", { className: "text-ui-code-text-subtle" }, i + 1)),
|
|
61
|
+
!active.hideLineNumbers && (React.createElement("span", { className: "text-ui-code-text-subtle" }, i + 1)),
|
|
62
62
|
React.createElement("div", { className: "pl-4" }, line.map((token, key) => (React.createElement("span", { key: key, ...getTokenProps({ token }) })))))))))))));
|
|
63
63
|
};
|
|
64
64
|
const CodeBlock = Object.assign(Root, { Body, Header, Meta });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../../src/components/code-block/code-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../../src/components/code-block/code-block.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\nimport { Highlight, themes } from \"prism-react-renderer\"\nimport * as React from \"react\"\n\nimport { Copy } from \"@/components/copy\"\nimport { clx } from \"@/utils/clx\"\n\nexport type CodeSnippet = {\n label: string\n language: string\n code: string\n hideLineNumbers?: boolean\n}\n\ntype CodeBlockState = {\n snippets: CodeSnippet[]\n active: CodeSnippet\n setActive: (active: CodeSnippet) => void\n} | null\n\nconst CodeBlockContext = React.createContext<CodeBlockState>(null)\n\nconst useCodeBlockContext = () => {\n const context = React.useContext(CodeBlockContext)\n\n if (context === null)\n throw new Error(\n \"useCodeBlockContext can only be used within a CodeBlockContext\"\n )\n\n return context\n}\n\ntype RootProps = {\n snippets: CodeSnippet[]\n}\n\nconst Root = ({\n snippets,\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & RootProps) => {\n const [active, setActive] = React.useState(snippets[0])\n\n return (\n <CodeBlockContext.Provider value={{ snippets, active, setActive }}>\n <div\n className={clx(\n \"border-ui-code-border overflow-hidden rounded-lg border\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </CodeBlockContext.Provider>\n )\n}\n\ntype HeaderProps = {\n hideLabels?: boolean\n}\n\nconst HeaderComponent = ({\n children,\n className,\n hideLabels = false,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & HeaderProps) => {\n const { snippets, active, setActive } = useCodeBlockContext()\n return (\n <div\n className={clx(\n \"border-b-ui-code-border bg-ui-code-bg-header flex items-center gap-2 border-b px-4 py-3\",\n className\n )}\n {...props}\n >\n {!hideLabels &&\n snippets.map((snippet) => (\n <div\n className={clx(\n \"text-ui-code-text-subtle txt-compact-small-plus cursor-pointer rounded-full border border-transparent px-3 py-2 transition-all\",\n {\n \"text-ui-code-text-base border-ui-code-border bg-ui-code-bg-base cursor-default\":\n active.label === snippet.label,\n }\n )}\n key={snippet.label}\n onClick={() => setActive(snippet)}\n >\n {snippet.label}\n </div>\n ))}\n {children}\n </div>\n )\n}\n\nconst Meta = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n return (\n <div\n className={clx(\"text-ui-code-text-subtle ml-auto\", className)}\n {...props}\n />\n )\n}\n\nconst Header = Object.assign(HeaderComponent, { Meta })\n\nconst Body = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { active } = useCodeBlockContext()\n return (\n <div\n className={clx(\"bg-ui-code-bg-base relative p-4\", className)}\n {...props}\n >\n <Copy\n content={active.code}\n className=\"text-ui-code-icon absolute right-4 top-4\"\n />\n <div className=\"max-w-[90%]\">\n <Highlight\n theme={{\n ...themes.palenight,\n plain: {\n color: \"rgba(249, 250, 251, 1)\",\n backgroundColor: \"#111827\",\n },\n styles: [\n {\n types: [\"keyword\"],\n style: {\n color: \"var(--fg-on-color)\",\n },\n },\n {\n types: [\"maybe-class-name\"],\n style: {\n color: \"rgb(255, 203, 107)\",\n },\n },\n ...themes.palenight.styles,\n ],\n }}\n code={active.code}\n language={active.language}\n >\n {({ style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className=\"txt-compact-small whitespace-pre-wrap bg-transparent font-mono\"\n style={{\n ...style,\n background: \"transparent\",\n }}\n >\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })} className=\"flex\">\n {!active.hideLineNumbers && (\n <span className=\"text-ui-code-text-subtle\">{i + 1}</span>\n )}\n <div className=\"pl-4\">\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n </div>\n </div>\n )\n}\n\nconst CodeBlock = Object.assign(Root, { Body, Header, Meta })\n\nexport { CodeBlock }\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type CommandBarProps = React.PropsWithChildren<{
|
|
3
|
+
open?: boolean;
|
|
4
|
+
onOpenChange?: (open: boolean) => void;
|
|
5
|
+
defaultOpen?: boolean;
|
|
6
|
+
disableAutoFocus?: boolean;
|
|
7
|
+
}>;
|
|
8
|
+
interface CommandProps extends Omit<React.ComponentPropsWithoutRef<"button">, "children" | "onClick"> {
|
|
9
|
+
action: () => void | Promise<void>;
|
|
10
|
+
label: string;
|
|
11
|
+
shortcut: string;
|
|
12
|
+
}
|
|
13
|
+
declare const CommandBar: {
|
|
14
|
+
({ open, onOpenChange, defaultOpen, disableAutoFocus, children, }: CommandBarProps): React.JSX.Element;
|
|
15
|
+
displayName: string;
|
|
16
|
+
} & {
|
|
17
|
+
Command: React.ForwardRefExoticComponent<CommandProps & React.RefAttributes<HTMLButtonElement>>;
|
|
18
|
+
Value: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
Bar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
Seperator: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "children"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
};
|
|
22
|
+
export { CommandBar };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as Popover from "@radix-ui/react-popover";
|
|
3
|
+
import * as Portal from "@radix-ui/react-portal";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Kbd } from "../kbd";
|
|
6
|
+
import { clx } from "../../utils/clx";
|
|
7
|
+
const Root = ({ open = false, onOpenChange, defaultOpen = false, disableAutoFocus = true, children, }) => {
|
|
8
|
+
return (React.createElement(Popover.Root, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen },
|
|
9
|
+
React.createElement(Portal.Root, null,
|
|
10
|
+
React.createElement(Popover.Anchor, { className: clx("fixed bottom-8 left-1/2 h-px w-px -translate-x-1/2") })),
|
|
11
|
+
React.createElement(Popover.Portal, null,
|
|
12
|
+
React.createElement(Popover.Content, { side: "top", sideOffset: 0, onOpenAutoFocus: (e) => {
|
|
13
|
+
if (disableAutoFocus) {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
}
|
|
16
|
+
}, className: clx("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2") }, children))));
|
|
17
|
+
};
|
|
18
|
+
Root.displayName = "CommandBar";
|
|
19
|
+
const Value = React.forwardRef(({ className, ...props }, ref) => {
|
|
20
|
+
return (React.createElement("div", { ref: ref, className: clx("txt-compact-small-plus text-ui-contrast-fg-secondary px-3 py-2.5", className), ...props }));
|
|
21
|
+
});
|
|
22
|
+
Value.displayName = "CommandBar.Value";
|
|
23
|
+
const Bar = React.forwardRef(({ className, ...props }, ref) => {
|
|
24
|
+
return (React.createElement("div", { ref: ref, className: clx("bg-ui-contrast-bg-base relative flex items-center overflow-hidden rounded-full px-1", "after:shadow-elevation-flyout after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:content-['']", className), ...props }));
|
|
25
|
+
});
|
|
26
|
+
Bar.displayName = "CommandBar.Bar";
|
|
27
|
+
const Seperator = React.forwardRef(({ className, ...props }, ref) => {
|
|
28
|
+
return (React.createElement("div", { ref: ref, className: clx("bg-ui-contrast-border-base h-10 w-px", className), ...props }));
|
|
29
|
+
});
|
|
30
|
+
Seperator.displayName = "CommandBar.Seperator";
|
|
31
|
+
const Command = React.forwardRef(({ className, type = "button", label, action, shortcut, disabled, ...props }, ref) => {
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
const handleKeyDown = (event) => {
|
|
34
|
+
if (event.key === shortcut) {
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
event.stopPropagation();
|
|
37
|
+
action();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
if (!disabled) {
|
|
41
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
42
|
+
}
|
|
43
|
+
return () => {
|
|
44
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
45
|
+
};
|
|
46
|
+
}, [action, shortcut, disabled]);
|
|
47
|
+
return (React.createElement("button", { ref: ref, className: clx("bg-ui-contrast-bg-base txt-compact-small-plus transition-fg text-ui-contrast-fg-primary flex items-center gap-x-2 px-3 py-2.5 outline-none", "focus:bg-ui-contrast-bg-highlight focus:hover:bg-ui-contrast-bg-base-hover hover:bg-ui-contrast-bg-base-hover active:bg-ui-contrast-bg-base-pressed focus:active:bg-ui-contrast-bg-base-pressed disabled:!bg-ui-bg-disabled disabled:!text-ui-fg-disabled", "last-of-type:-mr-1 last-of-type:pr-4", className), type: type, onClick: action, ...props },
|
|
48
|
+
React.createElement("span", null, label),
|
|
49
|
+
React.createElement(Kbd, { className: "bg-ui-contrast-bg-subtle border-ui-contrast-border-base text-ui-contrast-fg-secondary" }, shortcut.toUpperCase())));
|
|
50
|
+
});
|
|
51
|
+
Command.displayName = "CommandBar.Command";
|
|
52
|
+
const CommandBar = Object.assign(Root, {
|
|
53
|
+
Command,
|
|
54
|
+
Value,
|
|
55
|
+
Bar,
|
|
56
|
+
Seperator,
|
|
57
|
+
});
|
|
58
|
+
export { CommandBar };
|
|
59
|
+
//# sourceMappingURL=command-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-bar.js","sourceRoot":"","sources":["../../../../src/components/command-bar/command-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as Popover from \"@radix-ui/react-popover\"\nimport * as Portal from \"@radix-ui/react-portal\"\nimport * as React from \"react\"\n\nimport { Kbd } from \"@/components/kbd\"\nimport { clx } from \"@/utils/clx\"\n\ntype CommandBarProps = React.PropsWithChildren<{\n open?: boolean\n onOpenChange?: (open: boolean) => void\n defaultOpen?: boolean\n disableAutoFocus?: boolean\n}>\n\nconst Root = ({\n open = false,\n onOpenChange,\n defaultOpen = false,\n disableAutoFocus = true,\n children,\n}: CommandBarProps) => {\n return (\n <Popover.Root\n open={open}\n onOpenChange={onOpenChange}\n defaultOpen={defaultOpen}\n >\n <Portal.Root>\n <Popover.Anchor\n className={clx(\"fixed bottom-8 left-1/2 h-px w-px -translate-x-1/2\")}\n />\n </Portal.Root>\n <Popover.Portal>\n <Popover.Content\n side=\"top\"\n sideOffset={0}\n onOpenAutoFocus={(e) => {\n if (disableAutoFocus) {\n e.preventDefault()\n }\n }}\n className={clx(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n )}\n >\n {children}\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\nRoot.displayName = \"CommandBar\"\n\nconst Value = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"txt-compact-small-plus text-ui-contrast-fg-secondary px-3 py-2.5\",\n className\n )}\n {...props}\n />\n )\n})\nValue.displayName = \"CommandBar.Value\"\n\nconst Bar = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"bg-ui-contrast-bg-base relative flex items-center overflow-hidden rounded-full px-1\",\n \"after:shadow-elevation-flyout after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:content-['']\",\n className\n )}\n {...props}\n />\n )\n})\nBar.displayName = \"CommandBar.Bar\"\n\nconst Seperator = React.forwardRef<\n HTMLDivElement,\n Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\"bg-ui-contrast-border-base h-10 w-px\", className)}\n {...props}\n />\n )\n})\nSeperator.displayName = \"CommandBar.Seperator\"\n\ninterface CommandProps\n extends Omit<\n React.ComponentPropsWithoutRef<\"button\">,\n \"children\" | \"onClick\"\n > {\n action: () => void | Promise<void>\n label: string\n shortcut: string\n}\n\nconst Command = React.forwardRef<HTMLButtonElement, CommandProps>(\n (\n { className, type = \"button\", label, action, shortcut, disabled, ...props },\n ref\n ) => {\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === shortcut) {\n event.preventDefault()\n event.stopPropagation()\n action()\n }\n }\n\n if (!disabled) {\n document.addEventListener(\"keydown\", handleKeyDown)\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n }\n }, [action, shortcut, disabled])\n\n return (\n <button\n ref={ref}\n className={clx(\n \"bg-ui-contrast-bg-base txt-compact-small-plus transition-fg text-ui-contrast-fg-primary flex items-center gap-x-2 px-3 py-2.5 outline-none\",\n \"focus:bg-ui-contrast-bg-highlight focus:hover:bg-ui-contrast-bg-base-hover hover:bg-ui-contrast-bg-base-hover active:bg-ui-contrast-bg-base-pressed focus:active:bg-ui-contrast-bg-base-pressed disabled:!bg-ui-bg-disabled disabled:!text-ui-fg-disabled\",\n \"last-of-type:-mr-1 last-of-type:pr-4\",\n className\n )}\n type={type}\n onClick={action}\n {...props}\n >\n <span>{label}</span>\n <Kbd className=\"bg-ui-contrast-bg-subtle border-ui-contrast-border-base text-ui-contrast-fg-secondary\">\n {shortcut.toUpperCase()}\n </Kbd>\n </button>\n )\n }\n)\nCommand.displayName = \"CommandBar.Command\"\n\nconst CommandBar = Object.assign(Root, {\n Command,\n Value,\n Bar,\n Seperator,\n})\n\nexport { CommandBar }\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./command-bar";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/command-bar/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA","sourcesContent":["export * from \"./command-bar\"\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
declare const Container: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
2
|
+
declare const Container: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
3
3
|
export { Container };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/components/container/container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,GAAG,CACZ,2EAA2E,EAC3E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,CAAA","sourcesContent":["import * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Container = React.forwardRef<\n HTMLDivElement,\n React.
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/components/container/container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACjC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,GAAG,CACZ,2EAA2E,EAC3E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,CAAA","sourcesContent":["import * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst Container = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clx(\n \"shadow-elevation-card-rest bg-ui-bg-base w-full rounded-lg px-8 pb-8 pt-6\",\n className\n )}\n {...props}\n />\n )\n})\nContainer.displayName = \"Container\"\n\nexport { Container }\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import Primitive from "react-currency-input-field";
|
|
3
|
+
import { VariantProps } from "class-variance-authority";
|
|
4
|
+
declare const currencyInputVariants: (props?: ({
|
|
5
|
+
size?: "base" | "small" | null | undefined;
|
|
6
|
+
} & ({
|
|
7
|
+
class: import("clsx").ClassValue;
|
|
8
|
+
className?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
class?: undefined;
|
|
11
|
+
className: import("clsx").ClassValue;
|
|
12
|
+
} | {
|
|
13
|
+
class?: undefined;
|
|
14
|
+
className?: undefined;
|
|
15
|
+
})) | undefined) => string;
|
|
16
|
+
interface CurrencyInputProps extends Omit<React.ComponentPropsWithoutRef<typeof Primitive>, "prefix" | "suffix" | "size">, VariantProps<typeof currencyInputVariants> {
|
|
17
|
+
symbol: string;
|
|
18
|
+
code: string;
|
|
19
|
+
}
|
|
20
|
+
declare const CurrencyInput: React.ForwardRefExoticComponent<CurrencyInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
21
|
+
export { CurrencyInput };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Primitive from "react-currency-input-field";
|
|
4
|
+
import { Text } from "../text";
|
|
5
|
+
import { clx } from "../../utils/clx";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
const currencyInputVariants = cva(clx("flex items-center gap-x-1", "bg-ui-bg-field hover:bg-ui-bg-field-hover shadow-buttons-neutral placeholder-ui-fg-muted text-ui-fg-base transition-fg relative w-full rounded-md", "focus-within:shadow-borders-interactive-with-active"), {
|
|
8
|
+
variants: {
|
|
9
|
+
size: {
|
|
10
|
+
base: "txt-compact-medium h-10 px-3",
|
|
11
|
+
small: "txt-compact-small h-8 px-2",
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: {
|
|
15
|
+
size: "base",
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
const CurrencyInput = React.forwardRef(({ size = "base", symbol, code, disabled, onInvalid, className, ...props }, ref) => {
|
|
19
|
+
const innerRef = React.useRef(null);
|
|
20
|
+
React.useImperativeHandle(ref, () => innerRef.current);
|
|
21
|
+
const [valid, setValid] = React.useState(true);
|
|
22
|
+
const onInnerInvalid = React.useCallback((event) => {
|
|
23
|
+
setValid(event.currentTarget.validity.valid);
|
|
24
|
+
if (onInvalid) {
|
|
25
|
+
onInvalid(event);
|
|
26
|
+
}
|
|
27
|
+
}, [onInvalid]);
|
|
28
|
+
return (React.createElement("div", { onClick: () => {
|
|
29
|
+
if (innerRef.current) {
|
|
30
|
+
innerRef.current.focus();
|
|
31
|
+
}
|
|
32
|
+
}, className: clx("w-full cursor-text justify-between overflow-hidden", currencyInputVariants({ size }), {
|
|
33
|
+
"text-ui-fg-disabled !bg-ui-bg-disabled !shadow-buttons-neutral !placeholder-ui-fg-disabled cursor-not-allowed": disabled,
|
|
34
|
+
"!shadow-borders-error invalid:!shadow-borders-error": props["aria-invalid"] || !valid,
|
|
35
|
+
}, className) },
|
|
36
|
+
React.createElement("span", { className: clx("w-fit", {
|
|
37
|
+
"py-[9px]": size === "base",
|
|
38
|
+
"py-[5px]": size === "small",
|
|
39
|
+
}), role: "presentation" },
|
|
40
|
+
React.createElement(Text, { className: clx("text-ui-fg-muted pointer-events-none select-none uppercase", {
|
|
41
|
+
"text-ui-fg-disabled": disabled,
|
|
42
|
+
}) }, code)),
|
|
43
|
+
React.createElement(Primitive, { className: "h-full min-w-0 flex-1 appearance-none bg-transparent text-right outline-none disabled:cursor-not-allowed", disabled: disabled, onInvalid: onInnerInvalid, ref: innerRef, ...props }),
|
|
44
|
+
React.createElement("span", { className: clx("w-fit min-w-[16px] text-right", {
|
|
45
|
+
"py-[9px]": size === "base",
|
|
46
|
+
"py-[5px]": size === "small",
|
|
47
|
+
}), role: "presentation" },
|
|
48
|
+
React.createElement(Text, { className: clx("text-ui-fg-muted pointer-events-none select-none", {
|
|
49
|
+
"text-ui-fg-disabled": disabled,
|
|
50
|
+
}) }, symbol))));
|
|
51
|
+
});
|
|
52
|
+
CurrencyInput.displayName = "CurrencyInput";
|
|
53
|
+
export { CurrencyInput };
|
|
54
|
+
//# sourceMappingURL=currency-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency-input.js","sourceRoot":"","sources":["../../../../src/components/currency-input/currency-input.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport Primitive from \"react-currency-input-field\"\n\nimport { Text } from \"@/components/text\"\nimport { clx } from \"@/utils/clx\"\nimport { VariantProps, cva } from \"class-variance-authority\"\n\nconst currencyInputVariants = cva(\n clx(\n \"flex items-center gap-x-1\",\n \"bg-ui-bg-field hover:bg-ui-bg-field-hover shadow-buttons-neutral placeholder-ui-fg-muted text-ui-fg-base transition-fg relative w-full rounded-md\",\n \"focus-within:shadow-borders-interactive-with-active\"\n ),\n {\n variants: {\n size: {\n base: \"txt-compact-medium h-10 px-3\",\n small: \"txt-compact-small h-8 px-2\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n }\n)\n\ninterface CurrencyInputProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive>,\n \"prefix\" | \"suffix\" | \"size\"\n >,\n VariantProps<typeof currencyInputVariants> {\n symbol: string\n code: string\n}\n\nconst CurrencyInput = React.forwardRef<HTMLInputElement, CurrencyInputProps>(\n (\n { size = \"base\", symbol, code, disabled, onInvalid, className, ...props },\n ref\n ) => {\n const innerRef = React.useRef<HTMLInputElement>(null)\n\n React.useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n ref,\n () => innerRef.current\n )\n\n const [valid, setValid] = React.useState(true)\n\n const onInnerInvalid = React.useCallback(\n (event: React.FormEvent<HTMLInputElement>) => {\n setValid(event.currentTarget.validity.valid)\n\n if (onInvalid) {\n onInvalid(event)\n }\n },\n [onInvalid]\n )\n\n return (\n <div\n onClick={() => {\n if (innerRef.current) {\n innerRef.current.focus()\n }\n }}\n className={clx(\n \"w-full cursor-text justify-between overflow-hidden\",\n currencyInputVariants({ size }),\n {\n \"text-ui-fg-disabled !bg-ui-bg-disabled !shadow-buttons-neutral !placeholder-ui-fg-disabled cursor-not-allowed\":\n disabled,\n \"!shadow-borders-error invalid:!shadow-borders-error\":\n props[\"aria-invalid\"] || !valid,\n },\n className\n )}\n >\n <span\n className={clx(\"w-fit\", {\n \"py-[9px]\": size === \"base\",\n \"py-[5px]\": size === \"small\",\n })}\n role=\"presentation\"\n >\n <Text\n className={clx(\n \"text-ui-fg-muted pointer-events-none select-none uppercase\",\n {\n \"text-ui-fg-disabled\": disabled,\n }\n )}\n >\n {code}\n </Text>\n </span>\n <Primitive\n className=\"h-full min-w-0 flex-1 appearance-none bg-transparent text-right outline-none disabled:cursor-not-allowed\"\n disabled={disabled}\n onInvalid={onInnerInvalid}\n ref={innerRef}\n {...props}\n />\n <span\n className={clx(\"w-fit min-w-[16px] text-right\", {\n \"py-[9px]\": size === \"base\",\n \"py-[5px]\": size === \"small\",\n })}\n role=\"presentation\"\n >\n <Text\n className={clx(\"text-ui-fg-muted pointer-events-none select-none\", {\n \"text-ui-fg-disabled\": disabled,\n })}\n >\n {symbol}\n </Text>\n </span>\n </div>\n )\n }\n)\nCurrencyInput.displayName = \"CurrencyInput\"\n\nexport { CurrencyInput }\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./currency-input";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/currency-input/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA","sourcesContent":["export * from \"./currency-input\"\n"]}
|