@popgrids/ui 0.0.29 → 0.0.30
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/dist/banner-notification.cjs.map +1 -1
- package/dist/banner-notification.js.map +1 -1
- package/dist/button-link.cjs +10 -4
- package/dist/button-link.cjs.map +1 -1
- package/dist/button-link.d.cts +8 -4
- package/dist/button-link.d.ts +8 -4
- package/dist/button-link.js +10 -4
- package/dist/button-link.js.map +1 -1
- package/dist/button.cjs +45 -25
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +2 -2
- package/dist/button.d.ts +2 -2
- package/dist/button.js +45 -25
- package/dist/button.js.map +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.cjs.map +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/content-block.cjs +4 -4
- package/dist/content-block.cjs.map +1 -1
- package/dist/content-block.js +5 -5
- package/dist/content-block.js.map +1 -1
- package/dist/default-header.cjs +59 -0
- package/dist/default-header.cjs.map +1 -0
- package/dist/default-header.d.cts +19 -0
- package/dist/default-header.d.ts +19 -0
- package/dist/default-header.js +57 -0
- package/dist/default-header.js.map +1 -0
- package/dist/dialog.cjs +62 -46
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +62 -46
- package/dist/dialog.js.map +1 -1
- package/dist/dropdown-menu-B_GCzleM.d.cts +32 -0
- package/dist/dropdown-menu-B_GCzleM.d.ts +32 -0
- package/dist/dropdown-menu.cjs +17 -32
- package/dist/dropdown-menu.cjs.map +1 -1
- package/dist/dropdown-menu.d.cts +43 -29
- package/dist/dropdown-menu.d.ts +43 -29
- package/dist/dropdown-menu.js +17 -32
- package/dist/dropdown-menu.js.map +1 -1
- package/dist/footer.cjs +35 -155
- package/dist/footer.cjs.map +1 -1
- package/dist/footer.d.cts +7 -6
- package/dist/footer.d.ts +7 -6
- package/dist/footer.js +36 -156
- package/dist/footer.js.map +1 -1
- package/dist/index.cjs +676 -309
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +667 -310
- package/dist/index.js.map +1 -1
- package/dist/input-group.cjs +182 -0
- package/dist/input-group.cjs.map +1 -0
- package/dist/input-group.d.cts +42 -0
- package/dist/input-group.d.ts +42 -0
- package/dist/input-group.js +175 -0
- package/dist/input-group.js.map +1 -0
- package/dist/input.cjs +3 -3
- package/dist/input.cjs.map +1 -1
- package/dist/input.js +3 -3
- package/dist/input.js.map +1 -1
- package/dist/label.cjs +1 -1
- package/dist/label.cjs.map +1 -1
- package/dist/label.js +1 -1
- package/dist/label.js.map +1 -1
- package/dist/loader.cjs +12 -15
- package/dist/loader.cjs.map +1 -1
- package/dist/loader.js +13 -16
- package/dist/loader.js.map +1 -1
- package/dist/logo.cjs +311 -0
- package/dist/logo.cjs.map +1 -0
- package/dist/logo.d.cts +39 -0
- package/dist/logo.d.ts +39 -0
- package/dist/logo.js +309 -0
- package/dist/logo.js.map +1 -0
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/notification-badge.cjs.map +1 -1
- package/dist/notification-badge.js.map +1 -1
- package/dist/section-header.cjs +28 -45
- package/dist/section-header.cjs.map +1 -1
- package/dist/section-header.d.cts +1 -1
- package/dist/section-header.d.ts +1 -1
- package/dist/section-header.js +28 -45
- package/dist/section-header.js.map +1 -1
- package/dist/tag.cjs +6 -6
- package/dist/tag.cjs.map +1 -1
- package/dist/tag.js +6 -6
- package/dist/tag.js.map +1 -1
- package/dist/template-header.cjs +28 -0
- package/dist/template-header.cjs.map +1 -0
- package/dist/template-header.d.cts +13 -0
- package/dist/template-header.d.ts +13 -0
- package/dist/template-header.js +26 -0
- package/dist/template-header.js.map +1 -0
- package/dist/textarea.cjs +27 -0
- package/dist/textarea.cjs.map +1 -0
- package/dist/textarea.d.cts +10 -0
- package/dist/textarea.d.ts +10 -0
- package/dist/textarea.js +25 -0
- package/dist/textarea.js.map +1 -0
- package/dist/theme.css +229 -27
- package/dist/tooltip.cjs +5 -15
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.d.cts +1 -1
- package/dist/tooltip.d.ts +1 -1
- package/dist/tooltip.js +5 -15
- package/dist/tooltip.js.map +1 -1
- package/package.json +63 -3
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
4
|
+
var button = require('@base-ui/react/button');
|
|
5
|
+
var clsx = require('clsx');
|
|
6
|
+
var tailwindMerge = require('tailwind-merge');
|
|
7
|
+
var input = require('@base-ui/react/input');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
// src/components/input-group/input-group.tsx
|
|
11
|
+
function cn(...inputs) {
|
|
12
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
13
|
+
}
|
|
14
|
+
function Input({ className, type, ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16
|
+
input.Input,
|
|
17
|
+
{
|
|
18
|
+
type,
|
|
19
|
+
"data-slot": "input",
|
|
20
|
+
className: cn(
|
|
21
|
+
"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
|
|
22
|
+
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring",
|
|
23
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
24
|
+
className
|
|
25
|
+
),
|
|
26
|
+
...props
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
function Textarea({ className, ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
+
"textarea",
|
|
33
|
+
{
|
|
34
|
+
"data-slot": "textarea",
|
|
35
|
+
className: cn(
|
|
36
|
+
"field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
37
|
+
className
|
|
38
|
+
),
|
|
39
|
+
...props
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function InputGroup({ className, ...props }) {
|
|
44
|
+
return (
|
|
45
|
+
// biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
"div",
|
|
48
|
+
{
|
|
49
|
+
"data-slot": "input-group",
|
|
50
|
+
role: "group",
|
|
51
|
+
className: cn(
|
|
52
|
+
"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-sm border border-input shadow-xs outline-none transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",
|
|
53
|
+
className
|
|
54
|
+
),
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
var inputGroupAddonVariants = classVarianceAuthority.cva(
|
|
61
|
+
"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
|
|
62
|
+
{
|
|
63
|
+
variants: {
|
|
64
|
+
align: {
|
|
65
|
+
"inline-start": "order-first pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]",
|
|
66
|
+
"inline-end": "order-last pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]",
|
|
67
|
+
"block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
|
|
68
|
+
"block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
defaultVariants: {
|
|
72
|
+
align: "inline-start"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
function InputGroupAddon({ className, align = "inline-start", ...props }) {
|
|
77
|
+
const focusSiblingInput = (currentTarget) => {
|
|
78
|
+
if (!currentTarget.closest("button")) {
|
|
79
|
+
currentTarget.parentElement?.querySelector("input")?.focus();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return (
|
|
83
|
+
// biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout
|
|
84
|
+
// biome-ignore lint/a11y/noNoninteractiveElementInteractions: click-to-focus is an intentional UX enhancement
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
+
"div",
|
|
87
|
+
{
|
|
88
|
+
role: "group",
|
|
89
|
+
"data-slot": "input-group-addon",
|
|
90
|
+
"data-align": align,
|
|
91
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
92
|
+
onClick: (e) => focusSiblingInput(e.currentTarget),
|
|
93
|
+
onKeyDown: (e) => {
|
|
94
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
95
|
+
focusSiblingInput(e.currentTarget);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
...props
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
var inputGroupButtonVariants = classVarianceAuthority.cva("flex items-center gap-2 text-sm shadow-none", {
|
|
104
|
+
variants: {
|
|
105
|
+
size: {
|
|
106
|
+
xs: "h-5 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
107
|
+
sm: "",
|
|
108
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
109
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
defaultVariants: {
|
|
113
|
+
size: "xs"
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
function InputGroupButton({
|
|
117
|
+
className,
|
|
118
|
+
type = "button",
|
|
119
|
+
size = "xs",
|
|
120
|
+
...props
|
|
121
|
+
}) {
|
|
122
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
123
|
+
button.Button,
|
|
124
|
+
{
|
|
125
|
+
type,
|
|
126
|
+
"data-size": size,
|
|
127
|
+
className: cn(
|
|
128
|
+
"inline-flex cursor-pointer items-center justify-center text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
|
129
|
+
inputGroupButtonVariants({ size }),
|
|
130
|
+
className
|
|
131
|
+
),
|
|
132
|
+
...props
|
|
133
|
+
}
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
function InputGroupText({ className, ...props }) {
|
|
137
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
+
"span",
|
|
139
|
+
{
|
|
140
|
+
className: cn(
|
|
141
|
+
"flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",
|
|
142
|
+
className
|
|
143
|
+
),
|
|
144
|
+
...props
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
function InputGroupInput({ className, ...props }) {
|
|
149
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
150
|
+
Input,
|
|
151
|
+
{
|
|
152
|
+
"data-slot": "input-group-control",
|
|
153
|
+
className: cn(
|
|
154
|
+
"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent",
|
|
155
|
+
className
|
|
156
|
+
),
|
|
157
|
+
...props
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
function InputGroupTextarea({ className, ...props }) {
|
|
162
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
163
|
+
Textarea,
|
|
164
|
+
{
|
|
165
|
+
"data-slot": "input-group-control",
|
|
166
|
+
className: cn(
|
|
167
|
+
"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent",
|
|
168
|
+
className
|
|
169
|
+
),
|
|
170
|
+
...props
|
|
171
|
+
}
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
exports.InputGroup = InputGroup;
|
|
176
|
+
exports.InputGroupAddon = InputGroupAddon;
|
|
177
|
+
exports.InputGroupButton = InputGroupButton;
|
|
178
|
+
exports.InputGroupInput = InputGroupInput;
|
|
179
|
+
exports.InputGroupText = InputGroupText;
|
|
180
|
+
exports.InputGroupTextarea = InputGroupTextarea;
|
|
181
|
+
//# sourceMappingURL=input-group.cjs.map
|
|
182
|
+
//# sourceMappingURL=input-group.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/input-group/input-group.tsx"],"names":["twMerge","clsx","jsx","InputPrimitive","cva","ButtonPrimitive"],"mappings":"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","file":"input-group.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { InputProps } from \"./types\";\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import { cn } from \"../../lib/utils\";\nimport type { TextareaProps } from \"./types\";\n\nfunction Textarea({ className, ...props }: TextareaProps) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","\"use client\";\n\nimport { cva } from \"class-variance-authority\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Input } from \"../input\";\nimport { Textarea } from \"../textarea\";\nimport type {\n InputGroupAddonProps,\n InputGroupButtonProps,\n InputGroupInputProps,\n InputGroupProps,\n InputGroupTextareaProps,\n InputGroupTextProps,\n} from \"./types\";\n\nfunction InputGroup({ className, ...props }: InputGroupProps) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-sm border border-input shadow-xs outline-none transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\": \"order-last pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({ className, align = \"inline-start\", ...props }: InputGroupAddonProps) {\n const focusSiblingInput = (currentTarget: HTMLElement) => {\n if (!currentTarget.closest(\"button\")) {\n currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }\n };\n\n return (\n // biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout\n // biome-ignore lint/a11y/noNoninteractiveElementInteractions: click-to-focus is an intentional UX enhancement\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => focusSiblingInput(e.currentTarget)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n focusSiblingInput(e.currentTarget);\n }\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"flex items-center gap-2 text-sm shadow-none\", {\n variants: {\n size: {\n xs: \"h-5 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n});\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n size = \"xs\",\n ...props\n}: InputGroupButtonProps) {\n return (\n <ButtonPrimitive\n type={type}\n data-size={size}\n className={cn(\n \"inline-flex cursor-pointer items-center justify-center text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n inputGroupButtonVariants({ size }),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: InputGroupInputProps) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: InputGroupTextareaProps) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n};\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Button } from '@base-ui/react/button';
|
|
4
|
+
|
|
5
|
+
interface InputGroupProps extends React.ComponentProps<"div"> {
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type InputGroupAddonAlign = "inline-start" | "inline-end" | "block-start" | "block-end";
|
|
10
|
+
|
|
11
|
+
interface InputGroupAddonProps extends React.ComponentProps<"div"> {
|
|
12
|
+
align?: InputGroupAddonAlign;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
type InputGroupButtonSize = "xs" | "sm" | "icon-xs" | "icon-sm";
|
|
17
|
+
|
|
18
|
+
type InputGroupButtonProps = Omit<Button.Props, "className" | "render"> & {
|
|
19
|
+
size?: InputGroupButtonSize;
|
|
20
|
+
className?: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
interface InputGroupTextProps extends React.ComponentProps<"span"> {
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface InputGroupInputProps extends React.ComponentProps<"input"> {
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface InputGroupTextareaProps extends React.ComponentProps<"textarea"> {
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare function InputGroup({ className, ...props }: InputGroupProps): react_jsx_runtime.JSX.Element;
|
|
36
|
+
declare function InputGroupAddon({ className, align, ...props }: InputGroupAddonProps): react_jsx_runtime.JSX.Element;
|
|
37
|
+
declare function InputGroupButton({ className, type, size, ...props }: InputGroupButtonProps): react_jsx_runtime.JSX.Element;
|
|
38
|
+
declare function InputGroupText({ className, ...props }: InputGroupTextProps): react_jsx_runtime.JSX.Element;
|
|
39
|
+
declare function InputGroupInput({ className, ...props }: InputGroupInputProps): react_jsx_runtime.JSX.Element;
|
|
40
|
+
declare function InputGroupTextarea({ className, ...props }: InputGroupTextareaProps): react_jsx_runtime.JSX.Element;
|
|
41
|
+
|
|
42
|
+
export { InputGroup, InputGroupAddon, type InputGroupAddonAlign, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupButtonSize, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Button } from '@base-ui/react/button';
|
|
4
|
+
|
|
5
|
+
interface InputGroupProps extends React.ComponentProps<"div"> {
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
type InputGroupAddonAlign = "inline-start" | "inline-end" | "block-start" | "block-end";
|
|
10
|
+
|
|
11
|
+
interface InputGroupAddonProps extends React.ComponentProps<"div"> {
|
|
12
|
+
align?: InputGroupAddonAlign;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
type InputGroupButtonSize = "xs" | "sm" | "icon-xs" | "icon-sm";
|
|
17
|
+
|
|
18
|
+
type InputGroupButtonProps = Omit<Button.Props, "className" | "render"> & {
|
|
19
|
+
size?: InputGroupButtonSize;
|
|
20
|
+
className?: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
interface InputGroupTextProps extends React.ComponentProps<"span"> {
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface InputGroupInputProps extends React.ComponentProps<"input"> {
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface InputGroupTextareaProps extends React.ComponentProps<"textarea"> {
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare function InputGroup({ className, ...props }: InputGroupProps): react_jsx_runtime.JSX.Element;
|
|
36
|
+
declare function InputGroupAddon({ className, align, ...props }: InputGroupAddonProps): react_jsx_runtime.JSX.Element;
|
|
37
|
+
declare function InputGroupButton({ className, type, size, ...props }: InputGroupButtonProps): react_jsx_runtime.JSX.Element;
|
|
38
|
+
declare function InputGroupText({ className, ...props }: InputGroupTextProps): react_jsx_runtime.JSX.Element;
|
|
39
|
+
declare function InputGroupInput({ className, ...props }: InputGroupInputProps): react_jsx_runtime.JSX.Element;
|
|
40
|
+
declare function InputGroupTextarea({ className, ...props }: InputGroupTextareaProps): react_jsx_runtime.JSX.Element;
|
|
41
|
+
|
|
42
|
+
export { InputGroup, InputGroupAddon, type InputGroupAddonAlign, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupButtonSize, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps };
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
import { Button } from '@base-ui/react/button';
|
|
3
|
+
import { clsx } from 'clsx';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { Input as Input$1 } from '@base-ui/react/input';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
// src/components/input-group/input-group.tsx
|
|
9
|
+
function cn(...inputs) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
12
|
+
function Input({ className, type, ...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(
|
|
14
|
+
Input$1,
|
|
15
|
+
{
|
|
16
|
+
type,
|
|
17
|
+
"data-slot": "input",
|
|
18
|
+
className: cn(
|
|
19
|
+
"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
|
|
20
|
+
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring",
|
|
21
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
22
|
+
className
|
|
23
|
+
),
|
|
24
|
+
...props
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
function Textarea({ className, ...props }) {
|
|
29
|
+
return /* @__PURE__ */ jsx(
|
|
30
|
+
"textarea",
|
|
31
|
+
{
|
|
32
|
+
"data-slot": "textarea",
|
|
33
|
+
className: cn(
|
|
34
|
+
"field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
35
|
+
className
|
|
36
|
+
),
|
|
37
|
+
...props
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function InputGroup({ className, ...props }) {
|
|
42
|
+
return (
|
|
43
|
+
// biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout
|
|
44
|
+
/* @__PURE__ */ jsx(
|
|
45
|
+
"div",
|
|
46
|
+
{
|
|
47
|
+
"data-slot": "input-group",
|
|
48
|
+
role: "group",
|
|
49
|
+
className: cn(
|
|
50
|
+
"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-sm border border-input shadow-xs outline-none transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",
|
|
51
|
+
className
|
|
52
|
+
),
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
var inputGroupAddonVariants = cva(
|
|
59
|
+
"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
|
|
60
|
+
{
|
|
61
|
+
variants: {
|
|
62
|
+
align: {
|
|
63
|
+
"inline-start": "order-first pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]",
|
|
64
|
+
"inline-end": "order-last pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]",
|
|
65
|
+
"block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
|
|
66
|
+
"block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
defaultVariants: {
|
|
70
|
+
align: "inline-start"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
function InputGroupAddon({ className, align = "inline-start", ...props }) {
|
|
75
|
+
const focusSiblingInput = (currentTarget) => {
|
|
76
|
+
if (!currentTarget.closest("button")) {
|
|
77
|
+
currentTarget.parentElement?.querySelector("input")?.focus();
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
return (
|
|
81
|
+
// biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout
|
|
82
|
+
// biome-ignore lint/a11y/noNoninteractiveElementInteractions: click-to-focus is an intentional UX enhancement
|
|
83
|
+
/* @__PURE__ */ jsx(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
role: "group",
|
|
87
|
+
"data-slot": "input-group-addon",
|
|
88
|
+
"data-align": align,
|
|
89
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
90
|
+
onClick: (e) => focusSiblingInput(e.currentTarget),
|
|
91
|
+
onKeyDown: (e) => {
|
|
92
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
93
|
+
focusSiblingInput(e.currentTarget);
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
...props
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
var inputGroupButtonVariants = cva("flex items-center gap-2 text-sm shadow-none", {
|
|
102
|
+
variants: {
|
|
103
|
+
size: {
|
|
104
|
+
xs: "h-5 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
105
|
+
sm: "",
|
|
106
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
107
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
defaultVariants: {
|
|
111
|
+
size: "xs"
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
function InputGroupButton({
|
|
115
|
+
className,
|
|
116
|
+
type = "button",
|
|
117
|
+
size = "xs",
|
|
118
|
+
...props
|
|
119
|
+
}) {
|
|
120
|
+
return /* @__PURE__ */ jsx(
|
|
121
|
+
Button,
|
|
122
|
+
{
|
|
123
|
+
type,
|
|
124
|
+
"data-size": size,
|
|
125
|
+
className: cn(
|
|
126
|
+
"inline-flex cursor-pointer items-center justify-center text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
|
127
|
+
inputGroupButtonVariants({ size }),
|
|
128
|
+
className
|
|
129
|
+
),
|
|
130
|
+
...props
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
function InputGroupText({ className, ...props }) {
|
|
135
|
+
return /* @__PURE__ */ jsx(
|
|
136
|
+
"span",
|
|
137
|
+
{
|
|
138
|
+
className: cn(
|
|
139
|
+
"flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",
|
|
140
|
+
className
|
|
141
|
+
),
|
|
142
|
+
...props
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
function InputGroupInput({ className, ...props }) {
|
|
147
|
+
return /* @__PURE__ */ jsx(
|
|
148
|
+
Input,
|
|
149
|
+
{
|
|
150
|
+
"data-slot": "input-group-control",
|
|
151
|
+
className: cn(
|
|
152
|
+
"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent",
|
|
153
|
+
className
|
|
154
|
+
),
|
|
155
|
+
...props
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
function InputGroupTextarea({ className, ...props }) {
|
|
160
|
+
return /* @__PURE__ */ jsx(
|
|
161
|
+
Textarea,
|
|
162
|
+
{
|
|
163
|
+
"data-slot": "input-group-control",
|
|
164
|
+
className: cn(
|
|
165
|
+
"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent",
|
|
166
|
+
className
|
|
167
|
+
),
|
|
168
|
+
...props
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
|
|
174
|
+
//# sourceMappingURL=input-group.js.map
|
|
175
|
+
//# sourceMappingURL=input-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/input-group/input-group.tsx"],"names":["InputPrimitive","jsx","ButtonPrimitive"],"mappings":"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","file":"input-group.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { InputProps } from \"./types\";\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import { cn } from \"../../lib/utils\";\nimport type { TextareaProps } from \"./types\";\n\nfunction Textarea({ className, ...props }: TextareaProps) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","\"use client\";\n\nimport { cva } from \"class-variance-authority\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Input } from \"../input\";\nimport { Textarea } from \"../textarea\";\nimport type {\n InputGroupAddonProps,\n InputGroupButtonProps,\n InputGroupInputProps,\n InputGroupProps,\n InputGroupTextareaProps,\n InputGroupTextProps,\n} from \"./types\";\n\nfunction InputGroup({ className, ...props }: InputGroupProps) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-sm border border-input shadow-xs outline-none transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\": \"order-first pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\": \"order-last pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({ className, align = \"inline-start\", ...props }: InputGroupAddonProps) {\n const focusSiblingInput = (currentTarget: HTMLElement) => {\n if (!currentTarget.closest(\"button\")) {\n currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }\n };\n\n return (\n // biome-ignore lint/a11y/useSemanticElements: <fieldset> breaks flex layout\n // biome-ignore lint/a11y/noNoninteractiveElementInteractions: click-to-focus is an intentional UX enhancement\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => focusSiblingInput(e.currentTarget)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n focusSiblingInput(e.currentTarget);\n }\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\"flex items-center gap-2 text-sm shadow-none\", {\n variants: {\n size: {\n xs: \"h-5 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n});\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n size = \"xs\",\n ...props\n}: InputGroupButtonProps) {\n return (\n <ButtonPrimitive\n type={type}\n data-size={size}\n className={cn(\n \"inline-flex cursor-pointer items-center justify-center text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n inputGroupButtonVariants({ size }),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({ className, ...props }: InputGroupInputProps) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: InputGroupTextareaProps) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n};\n"]}
|
package/dist/input.cjs
CHANGED
|
@@ -16,9 +16,9 @@ function Input({ className, type, ...props }) {
|
|
|
16
16
|
type,
|
|
17
17
|
"data-slot": "input",
|
|
18
18
|
className: cn(
|
|
19
|
-
"
|
|
20
|
-
"focus-visible:border-ring focus-visible:ring-
|
|
21
|
-
"aria-invalid:
|
|
19
|
+
"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
|
|
20
|
+
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring",
|
|
21
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
22
22
|
className
|
|
23
23
|
),
|
|
24
24
|
...props
|
package/dist/input.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/input/input.tsx"],"names":["twMerge","clsx","jsx","InputPrimitive"],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACEA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAe;AACxD,EAAA,uBACEC,cAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4bAAA;AAAA,QACA,4EAAA;AAAA,QACA,wGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"input.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\nimport { InputProps } from \"./types\";\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/input/input.tsx"],"names":["twMerge","clsx","jsx","InputPrimitive"],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACEA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAe;AACxD,EAAA,uBACEC,cAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4bAAA;AAAA,QACA,4EAAA;AAAA,QACA,wGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"input.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { InputProps } from \"./types\";\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"]}
|
package/dist/input.js
CHANGED
|
@@ -14,9 +14,9 @@ function Input({ className, type, ...props }) {
|
|
|
14
14
|
type,
|
|
15
15
|
"data-slot": "input",
|
|
16
16
|
className: cn(
|
|
17
|
-
"
|
|
18
|
-
"focus-visible:border-ring focus-visible:ring-
|
|
19
|
-
"aria-invalid:
|
|
17
|
+
"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
|
|
18
|
+
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring",
|
|
19
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
20
20
|
className
|
|
21
21
|
),
|
|
22
22
|
...props
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/input/input.tsx"],"names":["InputPrimitive"],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACEA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAe;AACxD,EAAA,uBACE,GAAA;AAAA,IAACA,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4bAAA;AAAA,QACA,4EAAA;AAAA,QACA,wGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"input.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\nimport { InputProps } from \"./types\";\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/input/input.tsx"],"names":["InputPrimitive"],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACEA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAe;AACxD,EAAA,uBACE,GAAA;AAAA,IAACA,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4bAAA;AAAA,QACA,4EAAA;AAAA,QACA,wGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"input.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { InputProps } from \"./types\";\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"]}
|
package/dist/label.cjs
CHANGED
|
@@ -15,7 +15,7 @@ function Label({ className, render, ...props }) {
|
|
|
15
15
|
const defaultProps = {
|
|
16
16
|
"data-slot": "label",
|
|
17
17
|
className: cn(
|
|
18
|
-
"flex items-center gap-2 text-sm leading-none
|
|
18
|
+
"flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",
|
|
19
19
|
className
|
|
20
20
|
)
|
|
21
21
|
};
|
package/dist/label.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/label/label.tsx"],"names":["twMerge","clsx","useRender","mergeProps"],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;;;ACGA,SAAS,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,GAAG,OAAM,EAAe;AAC1D,EAAA,MAAM,YAAA,GAAwC;AAAA,IAC5C,WAAA,EAAa,OAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,qNAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAOC,mBAAA,CAAU;AAAA,IACf,cAAA,EAAgB,OAAA;AAAA,IAChB,MAAA;AAAA,IACA,KAAA,EAAOC,qBAAA,CAAoB,YAAA,EAAc,KAAK;AAAA,GAC/C,CAAA;AACH","file":"label.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { LabelProps } from \"./types\";\n\nfunction Label({ className, render, ...props }: LabelProps) {\n const defaultProps: Record<string, unknown> = {\n \"data-slot\": \"label\",\n className: cn(\n \"flex items-center gap-2 text-sm leading-none
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/label/label.tsx"],"names":["twMerge","clsx","useRender","mergeProps"],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;;;ACGA,SAAS,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,GAAG,OAAM,EAAe;AAC1D,EAAA,MAAM,YAAA,GAAwC;AAAA,IAC5C,WAAA,EAAa,OAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,qNAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAOC,mBAAA,CAAU;AAAA,IACf,cAAA,EAAgB,OAAA;AAAA,IAChB,MAAA;AAAA,IACA,KAAA,EAAOC,qBAAA,CAAoB,YAAA,EAAc,KAAK;AAAA,GAC/C,CAAA;AACH","file":"label.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { LabelProps } from \"./types\";\n\nfunction Label({ className, render, ...props }: LabelProps) {\n const defaultProps: Record<string, unknown> = {\n \"data-slot\": \"label\",\n className: cn(\n \"flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50\",\n className,\n ),\n };\n\n return useRender({\n defaultTagName: \"label\",\n render,\n props: mergeProps<\"label\">(defaultProps, props),\n });\n}\n\nexport { Label };\n"]}
|
package/dist/label.js
CHANGED
|
@@ -13,7 +13,7 @@ function Label({ className, render, ...props }) {
|
|
|
13
13
|
const defaultProps = {
|
|
14
14
|
"data-slot": "label",
|
|
15
15
|
className: cn(
|
|
16
|
-
"flex items-center gap-2 text-sm leading-none
|
|
16
|
+
"flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",
|
|
17
17
|
className
|
|
18
18
|
)
|
|
19
19
|
};
|
package/dist/label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/label/label.tsx"],"names":[],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;;;ACGA,SAAS,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,GAAG,OAAM,EAAe;AAC1D,EAAA,MAAM,YAAA,GAAwC;AAAA,IAC5C,WAAA,EAAa,OAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,qNAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAO,SAAA,CAAU;AAAA,IACf,cAAA,EAAgB,OAAA;AAAA,IAChB,MAAA;AAAA,IACA,KAAA,EAAO,UAAA,CAAoB,YAAA,EAAc,KAAK;AAAA,GAC/C,CAAA;AACH","file":"label.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { LabelProps } from \"./types\";\n\nfunction Label({ className, render, ...props }: LabelProps) {\n const defaultProps: Record<string, unknown> = {\n \"data-slot\": \"label\",\n className: cn(\n \"flex items-center gap-2 text-sm leading-none
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/label/label.tsx"],"names":[],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;;;ACGA,SAAS,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,GAAG,OAAM,EAAe;AAC1D,EAAA,MAAM,YAAA,GAAwC;AAAA,IAC5C,WAAA,EAAa,OAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,qNAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAO,SAAA,CAAU;AAAA,IACf,cAAA,EAAgB,OAAA;AAAA,IAChB,MAAA;AAAA,IACA,KAAA,EAAO,UAAA,CAAoB,YAAA,EAAc,KAAK;AAAA,GAC/C,CAAA;AACH","file":"label.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { LabelProps } from \"./types\";\n\nfunction Label({ className, render, ...props }: LabelProps) {\n const defaultProps: Record<string, unknown> = {\n \"data-slot\": \"label\",\n className: cn(\n \"flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50\",\n className,\n ),\n };\n\n return useRender({\n defaultTagName: \"label\",\n render,\n props: mergeProps<\"label\">(defaultProps, props),\n });\n}\n\nexport { Label };\n"]}
|
package/dist/loader.cjs
CHANGED
|
@@ -101,23 +101,20 @@ function Loader({
|
|
|
101
101
|
) }) })
|
|
102
102
|
]
|
|
103
103
|
}
|
|
104
|
-
) :
|
|
104
|
+
) : Array.from({ length: dotCount }, (_, index) => {
|
|
105
105
|
const delaySeconds = index * 0.035;
|
|
106
|
-
return (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
"
|
|
110
|
-
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
},
|
|
117
|
-
index
|
|
118
|
-
)
|
|
106
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
className: "absolute top-0 size-[3px] animate-loader-wave rounded-full bg-grayscale-200 motion-reduce:animate-none dark:bg-grayscale-700",
|
|
110
|
+
style: {
|
|
111
|
+
left: `${index}px`,
|
|
112
|
+
animationDelay: `${delaySeconds}s`
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
index
|
|
119
116
|
);
|
|
120
|
-
})
|
|
117
|
+
})
|
|
121
118
|
}
|
|
122
119
|
);
|
|
123
120
|
}
|