@giddaa-housing/ui 0.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/README.md +41 -0
- package/dist/accordion.d.ts +11 -0
- package/dist/accordion.js +124 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.d.ts +18 -0
- package/dist/alert.js +152 -0
- package/dist/alert.js.map +1 -0
- package/dist/avatar.d.ts +14 -0
- package/dist/avatar.js +152 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.d.ts +14 -0
- package/dist/badge.js +119 -0
- package/dist/badge.js.map +1 -0
- package/dist/bar-chart.d.ts +136 -0
- package/dist/bar-chart.js +302 -0
- package/dist/bar-chart.js.map +1 -0
- package/dist/base.css +32 -0
- package/dist/breadcrumb.d.ts +12 -0
- package/dist/breadcrumb.js +161 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/bullet-chart.d.ts +98 -0
- package/dist/bullet-chart.js +189 -0
- package/dist/bullet-chart.js.map +1 -0
- package/dist/button-group.d.ts +18 -0
- package/dist/button-group.js +170 -0
- package/dist/button-group.js.map +1 -0
- package/dist/button.d.ts +19 -0
- package/dist/button.js +146 -0
- package/dist/button.js.map +1 -0
- package/dist/calendar.d.ts +9 -0
- package/dist/calendar.js +293 -0
- package/dist/calendar.js.map +1 -0
- package/dist/card.d.ts +18 -0
- package/dist/card.js +186 -0
- package/dist/card.js.map +1 -0
- package/dist/carousel.d.ts +53 -0
- package/dist/carousel.js +396 -0
- package/dist/carousel.js.map +1 -0
- package/dist/chart.d.ts +122 -0
- package/dist/chart.js +494 -0
- package/dist/chart.js.map +1 -0
- package/dist/checkbox.d.ts +73 -0
- package/dist/checkbox.js +87 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/collapsible.d.ts +8 -0
- package/dist/collapsible.js +82 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/combobox.d.ts +30 -0
- package/dist/combobox.js +713 -0
- package/dist/combobox.js.map +1 -0
- package/dist/date-picker.d.ts +22 -0
- package/dist/date-picker.js +528 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/dialog.d.ts +30 -0
- package/dist/dialog.js +339 -0
- package/dist/dialog.js.map +1 -0
- package/dist/dropdown-menu.d.ts +35 -0
- package/dist/dropdown-menu.js +376 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/dropzone.d.ts +128 -0
- package/dist/dropzone.js +490 -0
- package/dist/dropzone.js.map +1 -0
- package/dist/empty-state.d.ts +17 -0
- package/dist/empty-state.js +146 -0
- package/dist/empty-state.js.map +1 -0
- package/dist/field.d.ts +29 -0
- package/dist/field.js +345 -0
- package/dist/field.js.map +1 -0
- package/dist/files/red-hat-display-latin-300-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-300-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-300-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-300-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-400-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-400-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-400-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-400-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-500-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-500-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-500-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-500-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-600-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-600-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-600-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-600-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-700-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-700-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-700-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-700-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-800-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-800-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-800-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-800-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-900-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-900-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-900-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-900-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-300-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-300-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-300-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-300-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-400-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-400-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-400-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-400-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-500-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-500-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-500-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-500-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-600-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-600-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-600-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-600-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-700-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-700-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-700-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-700-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-800-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-800-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-800-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-800-normal.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-900-italic.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-900-italic.woff2 +0 -0
- package/dist/files/red-hat-display-latin-ext-900-normal.woff +0 -0
- package/dist/files/red-hat-display-latin-ext-900-normal.woff2 +0 -0
- package/dist/funnel-chart.d.ts +84 -0
- package/dist/funnel-chart.js +569 -0
- package/dist/funnel-chart.js.map +1 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +10448 -0
- package/dist/index.js.map +1 -0
- package/dist/input-group.d.ts +31 -0
- package/dist/input-group.js +380 -0
- package/dist/input-group.js.map +1 -0
- package/dist/input-size-context.d.ts +11 -0
- package/dist/input-size-context.js +24 -0
- package/dist/input-size-context.js.map +1 -0
- package/dist/input.d.ts +13 -0
- package/dist/input.js +83 -0
- package/dist/input.js.map +1 -0
- package/dist/item.d.ts +8 -0
- package/dist/item.js +93 -0
- package/dist/item.js.map +1 -0
- package/dist/kpi-card.d.ts +24 -0
- package/dist/kpi-card.js +243 -0
- package/dist/kpi-card.js.map +1 -0
- package/dist/label.d.ts +8 -0
- package/dist/label.js +68 -0
- package/dist/label.js.map +1 -0
- package/dist/line-chart.d.ts +155 -0
- package/dist/line-chart.js +269 -0
- package/dist/line-chart.js.map +1 -0
- package/dist/logo.d.ts +6 -0
- package/dist/logo.js +146 -0
- package/dist/logo.js.map +1 -0
- package/dist/number-input.d.ts +41 -0
- package/dist/number-input.js +418 -0
- package/dist/number-input.js.map +1 -0
- package/dist/page-header.d.ts +13 -0
- package/dist/page-header.js +113 -0
- package/dist/page-header.js.map +1 -0
- package/dist/pagination.d.ts +35 -0
- package/dist/pagination.js +352 -0
- package/dist/pagination.js.map +1 -0
- package/dist/password-input.d.ts +13 -0
- package/dist/password-input.js +356 -0
- package/dist/password-input.js.map +1 -0
- package/dist/phone-input.d.ts +21 -0
- package/dist/phone-input.js +573 -0
- package/dist/phone-input.js.map +1 -0
- package/dist/photo-gallery.d.ts +42 -0
- package/dist/photo-gallery.js +756 -0
- package/dist/photo-gallery.js.map +1 -0
- package/dist/pie-chart.d.ts +125 -0
- package/dist/pie-chart.js +192 -0
- package/dist/pie-chart.js.map +1 -0
- package/dist/popover.d.ts +20 -0
- package/dist/popover.js +169 -0
- package/dist/popover.js.map +1 -0
- package/dist/progress.d.ts +28 -0
- package/dist/progress.js +315 -0
- package/dist/progress.js.map +1 -0
- package/dist/radio-group.d.ts +32 -0
- package/dist/radio-group.js +100 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/red-hat-display.css +2 -0
- package/dist/rich-text-editor.d.ts +16 -0
- package/dist/rich-text-editor.js +1000 -0
- package/dist/rich-text-editor.js.map +1 -0
- package/dist/search-input.d.ts +19 -0
- package/dist/search-input.js +411 -0
- package/dist/search-input.js.map +1 -0
- package/dist/select.d.ts +21 -0
- package/dist/select.js +305 -0
- package/dist/select.js.map +1 -0
- package/dist/separator.d.ts +10 -0
- package/dist/separator.js +72 -0
- package/dist/separator.js.map +1 -0
- package/dist/sheet.d.ts +24 -0
- package/dist/sheet.js +282 -0
- package/dist/sheet.js.map +1 -0
- package/dist/sidebar.d.ts +70 -0
- package/dist/sidebar.js +1078 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/size-context.d.ts +11 -0
- package/dist/size-context.js +22 -0
- package/dist/size-context.js.map +1 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +48 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/sparkline.d.ts +94 -0
- package/dist/sparkline.js +568 -0
- package/dist/sparkline.js.map +1 -0
- package/dist/stepper.d.ts +43 -0
- package/dist/stepper.js +296 -0
- package/dist/stepper.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/switch.d.ts +29 -0
- package/dist/switch.js +108 -0
- package/dist/switch.js.map +1 -0
- package/dist/tab-list.d.ts +38 -0
- package/dist/tab-list.js +394 -0
- package/dist/tab-list.js.map +1 -0
- package/dist/table.d.ts +69 -0
- package/dist/table.js +197 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.d.ts +18 -0
- package/dist/tabs.js +159 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tag.d.ts +25 -0
- package/dist/tag.js +160 -0
- package/dist/tag.js.map +1 -0
- package/dist/textarea.d.ts +12 -0
- package/dist/textarea.js +78 -0
- package/dist/textarea.js.map +1 -0
- package/dist/theme/giddaa.css +2 -0
- package/dist/time-picker.d.ts +13 -0
- package/dist/time-picker.js +472 -0
- package/dist/time-picker.js.map +1 -0
- package/dist/toast.d.ts +23 -0
- package/dist/toast.js +330 -0
- package/dist/toast.js.map +1 -0
- package/dist/tooltip.d.ts +11 -0
- package/dist/tooltip.js +96 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tree-map.d.ts +127 -0
- package/dist/tree-map.js +652 -0
- package/dist/tree-map.js.map +1 -0
- package/package.json +328 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
// src/components/ui/pagination.tsx
|
|
2
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
3
|
+
import {
|
|
4
|
+
ChevronLeftIcon,
|
|
5
|
+
ChevronRightIcon,
|
|
6
|
+
MoreHorizontalIcon
|
|
7
|
+
} from "lucide-react";
|
|
8
|
+
|
|
9
|
+
// src/lib/cn.ts
|
|
10
|
+
import { clsx } from "clsx";
|
|
11
|
+
import { extendTailwindMerge } from "tailwind-merge";
|
|
12
|
+
var twMerge = extendTailwindMerge({
|
|
13
|
+
extend: {
|
|
14
|
+
classGroups: {
|
|
15
|
+
"font-size": [
|
|
16
|
+
{
|
|
17
|
+
text: [
|
|
18
|
+
"gdt-display",
|
|
19
|
+
"gdt-h1",
|
|
20
|
+
"gdt-h2",
|
|
21
|
+
"gdt-h3",
|
|
22
|
+
"gdt-h4",
|
|
23
|
+
"gdt-h5",
|
|
24
|
+
"gdt-xl",
|
|
25
|
+
"gdt-lg",
|
|
26
|
+
"gdt-md",
|
|
27
|
+
"gdt-sm",
|
|
28
|
+
"gdt-xs",
|
|
29
|
+
"gdt-subtext",
|
|
30
|
+
"gdt-capitalized"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
function cn(...inputs) {
|
|
38
|
+
return twMerge(clsx(inputs));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// src/components/ui/button.tsx
|
|
42
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
43
|
+
import { cva } from "class-variance-authority";
|
|
44
|
+
import { Loader } from "lucide-react";
|
|
45
|
+
|
|
46
|
+
// src/components/ui/size-context.tsx
|
|
47
|
+
import { createContext, useContext } from "react";
|
|
48
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
49
|
+
var SizeContext = createContext(void 0);
|
|
50
|
+
function useComponentSize(size, fallback = "md") {
|
|
51
|
+
const inheritedSize = useContext(SizeContext);
|
|
52
|
+
return size ?? inheritedSize ?? fallback;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// src/components/ui/button.tsx
|
|
56
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
57
|
+
var buttonVariants = cva(
|
|
58
|
+
"group/button inline-flex shrink-0 items-center justify-center rounded-full bg-clip-padding whitespace-nowrap font-bold transition-[background-color,color,border-color,box-shadow,transform] outline-none select-none focus-visible:border-line-focus focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-line-danger aria-invalid:ring-3 aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
59
|
+
{
|
|
60
|
+
variants: {
|
|
61
|
+
variant: {
|
|
62
|
+
primary: "bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed",
|
|
63
|
+
"primary-outline": "border-2 border-action-primary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle",
|
|
64
|
+
secondary: "bg-surface-brand-subtle text-fg-brand hover:bg-action-primary-hover hover:text-fg-on-brand active:bg-action-primary-pressed active:text-fg-on-brand data-focused:bg-action-primary-hover data-pressed:bg-action-primary-pressed data-focused:text-fg-on-brand data-pressed:text-fg-on-brand",
|
|
65
|
+
"secondary-outline": "border-2 border-action-secondary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle",
|
|
66
|
+
tertiary: "bg-action-tertiary text-fg-primary hover:bg-action-tertiary-hover active:bg-action-tertiary-pressed data-focused:bg-action-tertiary-hover data-pressed:bg-action-tertiary-pressed",
|
|
67
|
+
"tertiary-outline": "border border-line-strong bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised",
|
|
68
|
+
ghost: "bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised",
|
|
69
|
+
danger: "bg-action-danger text-fg-on-brand hover:bg-action-danger-hover active:bg-action-danger-pressed data-focused:bg-action-danger-hover data-pressed:bg-action-danger-pressed",
|
|
70
|
+
"glass-overlay": "bg-surface-glass-overlay-button text-fg-on-brand",
|
|
71
|
+
"link-brand": "border-transparent bg-transparent px-0 text-fg-brand hover:underline active:underline active:opacity-70",
|
|
72
|
+
"link-neutral": "border-transparent bg-transparent px-0 text-fg-secondary hover:underline active:underline active:opacity-70"
|
|
73
|
+
},
|
|
74
|
+
size: {
|
|
75
|
+
sm: "h-8 gap-2 px-3.5 text-gdt-xs has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 [&_svg:not([class*='size-'])]:size-3.5",
|
|
76
|
+
md: "h-10 gap-2 px-4.5 text-gdt-sm has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4",
|
|
77
|
+
lg: "h-12.5 gap-2.5 px-5.5 text-gdt-md has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5 [&_svg:not([class*='size-'])]:size-4.5",
|
|
78
|
+
xl: "h-14 gap-3 px-6.5 text-gdt-lg has-data-[icon=inline-end]:pr-6 has-data-[icon=inline-start]:pl-6 [&_svg:not([class*='size-'])]:size-5",
|
|
79
|
+
icon: "size-10",
|
|
80
|
+
"icon-xs": "size-6 text-gdt-xs [&_svg:not([class*='size-'])]:size-3",
|
|
81
|
+
"icon-sm": "size-8 text-gdt-sm [&_svg:not([class*='size-'])]:size-3.5",
|
|
82
|
+
"icon-lg": "size-12.5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5",
|
|
83
|
+
"icon-xl": "size-14 text-gdt-lg [&_svg:not([class*='size-'])]:size-5"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
defaultVariants: {
|
|
87
|
+
variant: "primary",
|
|
88
|
+
size: "md"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
function Button({
|
|
93
|
+
className,
|
|
94
|
+
variant = "primary",
|
|
95
|
+
size,
|
|
96
|
+
isLoading = false,
|
|
97
|
+
children,
|
|
98
|
+
disabled = false,
|
|
99
|
+
...props
|
|
100
|
+
}) {
|
|
101
|
+
const inheritedSize = useComponentSize();
|
|
102
|
+
const resolvedSize = size ?? inheritedSize;
|
|
103
|
+
const _disabled = disabled || isLoading;
|
|
104
|
+
return /* @__PURE__ */ jsxs(
|
|
105
|
+
ButtonPrimitive,
|
|
106
|
+
{
|
|
107
|
+
"data-slot": "button",
|
|
108
|
+
className: cn(buttonVariants({ variant, size: resolvedSize, className })),
|
|
109
|
+
disabled: _disabled,
|
|
110
|
+
...props,
|
|
111
|
+
children: [
|
|
112
|
+
isLoading && /* @__PURE__ */ jsx2(Loader, { className: "size-4 animate-spin" }),
|
|
113
|
+
" ",
|
|
114
|
+
children
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
function ButtonLink({
|
|
120
|
+
className,
|
|
121
|
+
href,
|
|
122
|
+
variant = "primary",
|
|
123
|
+
size,
|
|
124
|
+
disabled = false,
|
|
125
|
+
onClick,
|
|
126
|
+
...props
|
|
127
|
+
}) {
|
|
128
|
+
const inheritedSize = useComponentSize();
|
|
129
|
+
const resolvedSize = size ?? inheritedSize;
|
|
130
|
+
return /* @__PURE__ */ jsx2(
|
|
131
|
+
"a",
|
|
132
|
+
{
|
|
133
|
+
"data-slot": "button-link",
|
|
134
|
+
href,
|
|
135
|
+
"aria-disabled": disabled,
|
|
136
|
+
tabIndex: disabled ? -1 : props.tabIndex,
|
|
137
|
+
className: cn(buttonVariants({ variant, size: resolvedSize, className })),
|
|
138
|
+
onClick: (event) => {
|
|
139
|
+
if (disabled) {
|
|
140
|
+
event.preventDefault();
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
onClick?.(event);
|
|
144
|
+
},
|
|
145
|
+
...props
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// src/components/ui/pagination.tsx
|
|
151
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
152
|
+
function Pagination({ className, ...props }) {
|
|
153
|
+
return /* @__PURE__ */ jsx3(
|
|
154
|
+
"nav",
|
|
155
|
+
{
|
|
156
|
+
"aria-label": "pagination",
|
|
157
|
+
"data-slot": "pagination",
|
|
158
|
+
className: cn("mx-auto flex w-full justify-center", className),
|
|
159
|
+
...props
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
function PaginationContent({
|
|
164
|
+
className,
|
|
165
|
+
...props
|
|
166
|
+
}) {
|
|
167
|
+
return /* @__PURE__ */ jsx3(
|
|
168
|
+
"ul",
|
|
169
|
+
{
|
|
170
|
+
"data-slot": "pagination-content",
|
|
171
|
+
className: cn("flex flex-wrap items-center gap-2", className),
|
|
172
|
+
...props
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
function PaginationItem({ ...props }) {
|
|
177
|
+
return /* @__PURE__ */ jsx3("li", { "data-slot": "pagination-item", ...props });
|
|
178
|
+
}
|
|
179
|
+
var paginationTriggerVariants = cva2(
|
|
180
|
+
"rounded-md font-medium shadow-none transition-[background-color,border-color,color] focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
|
|
181
|
+
{
|
|
182
|
+
variants: {
|
|
183
|
+
appearance: {
|
|
184
|
+
page: "px-0",
|
|
185
|
+
icon: "border border-line bg-transparent px-0 hover:border-line-strong",
|
|
186
|
+
control: "border border-line bg-transparent hover:border-line-strong"
|
|
187
|
+
},
|
|
188
|
+
isActive: {
|
|
189
|
+
true: "",
|
|
190
|
+
false: ""
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
compoundVariants: [
|
|
194
|
+
{
|
|
195
|
+
appearance: "page",
|
|
196
|
+
isActive: true,
|
|
197
|
+
className: "bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
appearance: "page",
|
|
201
|
+
isActive: false,
|
|
202
|
+
className: "bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
appearance: "icon",
|
|
206
|
+
isActive: false,
|
|
207
|
+
className: "text-fg-primary hover:bg-surface active:bg-surface-raised"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
appearance: "control",
|
|
211
|
+
isActive: false,
|
|
212
|
+
className: "text-fg-primary hover:bg-surface active:bg-surface-raised"
|
|
213
|
+
}
|
|
214
|
+
],
|
|
215
|
+
defaultVariants: {
|
|
216
|
+
appearance: "page",
|
|
217
|
+
isActive: false
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
);
|
|
221
|
+
function PaginationLink({
|
|
222
|
+
className,
|
|
223
|
+
appearance = "page",
|
|
224
|
+
getHref,
|
|
225
|
+
href,
|
|
226
|
+
isActive,
|
|
227
|
+
page,
|
|
228
|
+
...props
|
|
229
|
+
}) {
|
|
230
|
+
const resolvedHref = href ?? getHref?.(page) ?? `?page=${page}`;
|
|
231
|
+
return /* @__PURE__ */ jsx3(
|
|
232
|
+
ButtonLink,
|
|
233
|
+
{
|
|
234
|
+
href: resolvedHref,
|
|
235
|
+
variant: isActive && appearance === "page" ? "primary" : "ghost",
|
|
236
|
+
size: appearance === "control" ? "sm" : "icon-sm",
|
|
237
|
+
className: cn(
|
|
238
|
+
paginationTriggerVariants({
|
|
239
|
+
appearance,
|
|
240
|
+
isActive: Boolean(isActive)
|
|
241
|
+
}),
|
|
242
|
+
className
|
|
243
|
+
),
|
|
244
|
+
"aria-current": isActive ? "page" : void 0,
|
|
245
|
+
"data-slot": "pagination-link",
|
|
246
|
+
"data-active": isActive,
|
|
247
|
+
"data-appearance": appearance,
|
|
248
|
+
...props
|
|
249
|
+
}
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
function PaginationButton({
|
|
253
|
+
className,
|
|
254
|
+
appearance = "page",
|
|
255
|
+
isActive,
|
|
256
|
+
page,
|
|
257
|
+
...props
|
|
258
|
+
}) {
|
|
259
|
+
return /* @__PURE__ */ jsx3(
|
|
260
|
+
Button,
|
|
261
|
+
{
|
|
262
|
+
type: "button",
|
|
263
|
+
variant: isActive && appearance === "page" ? "primary" : "ghost",
|
|
264
|
+
size: appearance === "control" ? "sm" : "icon-sm",
|
|
265
|
+
className: cn(
|
|
266
|
+
paginationTriggerVariants({
|
|
267
|
+
appearance,
|
|
268
|
+
isActive: Boolean(isActive)
|
|
269
|
+
}),
|
|
270
|
+
className
|
|
271
|
+
),
|
|
272
|
+
"aria-current": isActive ? "page" : void 0,
|
|
273
|
+
"data-slot": "pagination-button",
|
|
274
|
+
"data-active": isActive,
|
|
275
|
+
"data-appearance": appearance,
|
|
276
|
+
"data-page": page,
|
|
277
|
+
...props
|
|
278
|
+
}
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
function PaginationPrevious({
|
|
282
|
+
className,
|
|
283
|
+
showLabel = true,
|
|
284
|
+
text = "Previous",
|
|
285
|
+
...props
|
|
286
|
+
}) {
|
|
287
|
+
return /* @__PURE__ */ jsxs2(
|
|
288
|
+
PaginationLink,
|
|
289
|
+
{
|
|
290
|
+
"aria-label": "Go to previous page",
|
|
291
|
+
appearance: showLabel ? "control" : "icon",
|
|
292
|
+
className: cn(showLabel ? "pl-1.5!" : "", className),
|
|
293
|
+
...props,
|
|
294
|
+
children: [
|
|
295
|
+
/* @__PURE__ */ jsx3(ChevronLeftIcon, { "data-icon": "inline-start", className: "cn-rtl-flip" }),
|
|
296
|
+
showLabel ? /* @__PURE__ */ jsx3("span", { className: "hidden sm:block", children: text }) : null
|
|
297
|
+
]
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
function PaginationNext({
|
|
302
|
+
className,
|
|
303
|
+
showLabel = true,
|
|
304
|
+
text = "Next",
|
|
305
|
+
...props
|
|
306
|
+
}) {
|
|
307
|
+
return /* @__PURE__ */ jsxs2(
|
|
308
|
+
PaginationLink,
|
|
309
|
+
{
|
|
310
|
+
"aria-label": "Go to next page",
|
|
311
|
+
appearance: showLabel ? "control" : "icon",
|
|
312
|
+
className: cn(showLabel ? "pr-1.5!" : "", className),
|
|
313
|
+
...props,
|
|
314
|
+
children: [
|
|
315
|
+
showLabel ? /* @__PURE__ */ jsx3("span", { className: "hidden sm:block", children: text }) : null,
|
|
316
|
+
/* @__PURE__ */ jsx3(ChevronRightIcon, { "data-icon": "inline-end", className: "cn-rtl-flip" })
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
function PaginationEllipsis({
|
|
322
|
+
className,
|
|
323
|
+
...props
|
|
324
|
+
}) {
|
|
325
|
+
return /* @__PURE__ */ jsxs2(
|
|
326
|
+
"span",
|
|
327
|
+
{
|
|
328
|
+
"aria-hidden": true,
|
|
329
|
+
"data-slot": "pagination-ellipsis",
|
|
330
|
+
className: cn(
|
|
331
|
+
"flex size-8 items-center justify-center text-fg-secondary [&_svg:not([class*='size-'])]:size-4",
|
|
332
|
+
className
|
|
333
|
+
),
|
|
334
|
+
...props,
|
|
335
|
+
children: [
|
|
336
|
+
/* @__PURE__ */ jsx3(MoreHorizontalIcon, {}),
|
|
337
|
+
/* @__PURE__ */ jsx3("span", { className: "sr-only", children: "More pages" })
|
|
338
|
+
]
|
|
339
|
+
}
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
export {
|
|
343
|
+
Pagination,
|
|
344
|
+
PaginationButton,
|
|
345
|
+
PaginationContent,
|
|
346
|
+
PaginationEllipsis,
|
|
347
|
+
PaginationItem,
|
|
348
|
+
PaginationLink,
|
|
349
|
+
PaginationNext,
|
|
350
|
+
PaginationPrevious
|
|
351
|
+
};
|
|
352
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/pagination.tsx","../src/lib/cn.ts","../src/components/ui/button.tsx","../src/components/ui/size-context.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport {\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tMoreHorizontalIcon,\n} from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, ButtonLink } from \"./button\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\n\t\t\taria-label=\"pagination\"\n\t\t\tdata-slot=\"pagination\"\n\t\t\tclassName={cn(\"mx-auto flex w-full justify-center\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"pagination-content\"\n\t\t\tclassName={cn(\"flex flex-wrap items-center gap-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n\treturn <li data-slot=\"pagination-item\" {...props} />;\n}\n\nconst paginationTriggerVariants = cva(\n\t\"rounded-md font-medium shadow-none transition-[background-color,border-color,color] focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]\",\n\t{\n\t\tvariants: {\n\t\t\tappearance: {\n\t\t\t\tpage: \"px-0\",\n\t\t\t\ticon: \"border border-line bg-transparent px-0 hover:border-line-strong\",\n\t\t\t\tcontrol: \"border border-line bg-transparent hover:border-line-strong\",\n\t\t\t},\n\t\t\tisActive: {\n\t\t\t\ttrue: \"\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [\n\t\t\t{\n\t\t\t\tappearance: \"page\",\n\t\t\t\tisActive: true,\n\t\t\t\tclassName:\n\t\t\t\t\t\"bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"page\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName:\n\t\t\t\t\t\"bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"icon\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName: \"text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tappearance: \"control\",\n\t\t\t\tisActive: false,\n\t\t\t\tclassName: \"text-fg-primary hover:bg-surface active:bg-surface-raised\",\n\t\t\t},\n\t\t],\n\t\tdefaultVariants: {\n\t\t\tappearance: \"page\",\n\t\t\tisActive: false,\n\t\t},\n\t},\n);\n\ntype PaginationTriggerAppearance = \"page\" | \"icon\" | \"control\";\n\ntype PaginationLinkProps = {\n\tisActive?: boolean;\n\tappearance?: PaginationTriggerAppearance;\n\tpage: number;\n\tgetHref?: (page: number) => string;\n\thref?: string;\n} & Omit<React.ComponentProps<typeof ButtonLink>, \"href\" | \"size\" | \"variant\">;\n\nfunction PaginationLink({\n\tclassName,\n\tappearance = \"page\",\n\tgetHref,\n\thref,\n\tisActive,\n\tpage,\n\t...props\n}: PaginationLinkProps) {\n\tconst resolvedHref = href ?? getHref?.(page) ?? `?page=${page}`;\n\n\treturn (\n\t\t<ButtonLink\n\t\t\thref={resolvedHref}\n\t\t\tvariant={isActive && appearance === \"page\" ? \"primary\" : \"ghost\"}\n\t\t\tsize={appearance === \"control\" ? \"sm\" : \"icon-sm\"}\n\t\t\tclassName={cn(\n\t\t\t\tpaginationTriggerVariants({\n\t\t\t\t\tappearance,\n\t\t\t\t\tisActive: Boolean(isActive),\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-link\"\n\t\t\tdata-active={isActive}\n\t\t\tdata-appearance={appearance}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype PaginationButtonProps = {\n\tisActive?: boolean;\n\tappearance?: PaginationTriggerAppearance;\n\tpage: number;\n} & Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\" | \"variant\">;\n\nfunction PaginationButton({\n\tclassName,\n\tappearance = \"page\",\n\tisActive,\n\tpage,\n\t...props\n}: PaginationButtonProps) {\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant={isActive && appearance === \"page\" ? \"primary\" : \"ghost\"}\n\t\t\tsize={appearance === \"control\" ? \"sm\" : \"icon-sm\"}\n\t\t\tclassName={cn(\n\t\t\t\tpaginationTriggerVariants({\n\t\t\t\t\tappearance,\n\t\t\t\t\tisActive: Boolean(isActive),\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-button\"\n\t\t\tdata-active={isActive}\n\t\t\tdata-appearance={appearance}\n\t\t\tdata-page={page}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationPrevious({\n\tclassName,\n\tshowLabel = true,\n\ttext = \"Previous\",\n\t...props\n}: React.ComponentProps<typeof PaginationLink> & {\n\tshowLabel?: boolean;\n\ttext?: string;\n}) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to previous page\"\n\t\t\tappearance={showLabel ? \"control\" : \"icon\"}\n\t\t\tclassName={cn(showLabel ? \"pl-1.5!\" : \"\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n\t\t\t{showLabel ? <span className=\"hidden sm:block\">{text}</span> : null}\n\t\t</PaginationLink>\n\t);\n}\n\nfunction PaginationNext({\n\tclassName,\n\tshowLabel = true,\n\ttext = \"Next\",\n\t...props\n}: React.ComponentProps<typeof PaginationLink> & {\n\tshowLabel?: boolean;\n\ttext?: string;\n}) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to next page\"\n\t\t\tappearance={showLabel ? \"control\" : \"icon\"}\n\t\t\tclassName={cn(showLabel ? \"pr-1.5!\" : \"\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showLabel ? <span className=\"hidden sm:block\">{text}</span> : null}\n\t\t\t<ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n\t\t</PaginationLink>\n\t);\n}\n\nfunction PaginationEllipsis({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\taria-hidden\n\t\t\tdata-slot=\"pagination-ellipsis\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex size-8 items-center justify-center text-fg-secondary [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<MoreHorizontalIcon />\n\t\t\t<span className=\"sr-only\">More pages</span>\n\t\t</span>\n\t);\n}\n\nexport {\n\tPagination,\n\tPaginationContent,\n\tPaginationEllipsis,\n\tPaginationItem,\n\tPaginationButton,\n\tPaginationLink,\n\tPaginationNext,\n\tPaginationPrevious,\n};\n","import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n\textend: {\n\t\tclassGroups: {\n\t\t\t\"font-size\": [\n\t\t\t\t{\n\t\t\t\t\ttext: [\n\t\t\t\t\t\t\"gdt-display\",\n\t\t\t\t\t\t\"gdt-h1\",\n\t\t\t\t\t\t\"gdt-h2\",\n\t\t\t\t\t\t\"gdt-h3\",\n\t\t\t\t\t\t\"gdt-h4\",\n\t\t\t\t\t\t\"gdt-h5\",\n\t\t\t\t\t\t\"gdt-xl\",\n\t\t\t\t\t\t\"gdt-lg\",\n\t\t\t\t\t\t\"gdt-md\",\n\t\t\t\t\t\t\"gdt-sm\",\n\t\t\t\t\t\t\"gdt-xs\",\n\t\t\t\t\t\t\"gdt-subtext\",\n\t\t\t\t\t\t\"gdt-capitalized\",\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n});\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Loader } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useComponentSize } from \"./size-context\";\n\nconst buttonVariants = cva(\n\t\"group/button inline-flex shrink-0 items-center justify-center rounded-full bg-clip-padding whitespace-nowrap font-bold transition-[background-color,color,border-color,box-shadow,transform] outline-none select-none focus-visible:border-line-focus focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)] active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-invalid:border-line-danger aria-invalid:ring-3 aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tprimary:\n\t\t\t\t\t\"bg-action-primary text-fg-on-brand hover:bg-action-primary-hover active:bg-action-primary-pressed\",\n\t\t\t\t\"primary-outline\":\n\t\t\t\t\t\"border-2 border-action-primary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle\",\n\t\t\t\tsecondary:\n\t\t\t\t\t\"bg-surface-brand-subtle text-fg-brand hover:bg-action-primary-hover hover:text-fg-on-brand active:bg-action-primary-pressed active:text-fg-on-brand data-focused:bg-action-primary-hover data-pressed:bg-action-primary-pressed data-focused:text-fg-on-brand data-pressed:text-fg-on-brand\",\n\t\t\t\t\"secondary-outline\":\n\t\t\t\t\t\"border-2 border-action-secondary bg-transparent text-fg-brand hover:bg-surface-brand-subtle active:bg-surface-brand-subtle data-focused:bg-surface-brand-subtle data-pressed:bg-surface-brand-subtle\",\n\t\t\t\ttertiary:\n\t\t\t\t\t\"bg-action-tertiary text-fg-primary hover:bg-action-tertiary-hover active:bg-action-tertiary-pressed data-focused:bg-action-tertiary-hover data-pressed:bg-action-tertiary-pressed\",\n\t\t\t\t\"tertiary-outline\":\n\t\t\t\t\t\"border border-line-strong bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised\",\n\t\t\t\tghost:\n\t\t\t\t\t\"bg-transparent text-fg-primary hover:bg-surface active:bg-surface-raised data-focused:bg-surface data-pressed:bg-surface-raised\",\n\t\t\t\tdanger:\n\t\t\t\t\t\"bg-action-danger text-fg-on-brand hover:bg-action-danger-hover active:bg-action-danger-pressed data-focused:bg-action-danger-hover data-pressed:bg-action-danger-pressed\",\n\t\t\t\t\"glass-overlay\": \"bg-surface-glass-overlay-button text-fg-on-brand\",\n\t\t\t\t\"link-brand\":\n\t\t\t\t\t\"border-transparent bg-transparent px-0 text-fg-brand hover:underline active:underline active:opacity-70\",\n\t\t\t\t\"link-neutral\":\n\t\t\t\t\t\"border-transparent bg-transparent px-0 text-fg-secondary hover:underline active:underline active:opacity-70\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tsm: \"h-8 gap-2 px-3.5 text-gdt-xs has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 [&_svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\tmd: \"h-10 gap-2 px-4.5 text-gdt-sm has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4\",\n\t\t\t\tlg: \"h-12.5 gap-2.5 px-5.5 text-gdt-md has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5 [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t\txl: \"h-14 gap-3 px-6.5 text-gdt-lg has-data-[icon=inline-end]:pr-6 has-data-[icon=inline-start]:pl-6 [&_svg:not([class*='size-'])]:size-5\",\n\t\t\t\ticon: \"size-10\",\n\t\t\t\t\"icon-xs\": \"size-6 text-gdt-xs [&_svg:not([class*='size-'])]:size-3\",\n\t\t\t\t\"icon-sm\": \"size-8 text-gdt-sm [&_svg:not([class*='size-'])]:size-3.5\",\n\t\t\t\t\"icon-lg\":\n\t\t\t\t\t\"size-12.5 text-gdt-md [&_svg:not([class*='size-'])]:size-4.5\",\n\t\t\t\t\"icon-xl\": \"size-14 text-gdt-lg [&_svg:not([class*='size-'])]:size-5\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"primary\",\n\t\t\tsize: \"md\",\n\t\t},\n\t},\n);\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nfunction Button({\n\tclassName,\n\tvariant = \"primary\",\n\tsize,\n\tisLoading = false,\n\tchildren,\n\tdisabled = false,\n\t...props\n}: ButtonPrimitive.Props &\n\tVariantProps<typeof buttonVariants> & { isLoading?: boolean }) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize = size ?? inheritedSize;\n\tconst _disabled = disabled || isLoading;\n\treturn (\n\t\t<ButtonPrimitive\n\t\t\tdata-slot=\"button\"\n\t\t\tclassName={cn(buttonVariants({ variant, size: resolvedSize, className }))}\n\t\t\tdisabled={_disabled}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isLoading && <Loader className=\"size-4 animate-spin\" />} {children}\n\t\t</ButtonPrimitive>\n\t);\n}\n\ntype ButtonLinkProps = Omit<React.ComponentProps<\"a\">, \"href\"> &\n\tVariantProps<typeof buttonVariants> & {\n\t\tdisabled?: boolean;\n\t\thref: string;\n\t};\n\nfunction ButtonLink({\n\tclassName,\n\thref,\n\tvariant = \"primary\",\n\tsize,\n\tdisabled = false,\n\tonClick,\n\t...props\n}: ButtonLinkProps) {\n\tconst inheritedSize = useComponentSize();\n\tconst resolvedSize: ButtonSize = size ?? inheritedSize;\n\n\treturn (\n\t\t<a\n\t\t\tdata-slot=\"button-link\"\n\t\t\thref={href}\n\t\t\taria-disabled={disabled}\n\t\t\ttabIndex={disabled ? -1 : props.tabIndex}\n\t\t\tclassName={cn(buttonVariants({ variant, size: resolvedSize, className }))}\n\t\t\tonClick={(event) => {\n\t\t\t\tif (disabled) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tonClick?.(event);\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Button, ButtonLink, buttonVariants };\n","\"use client\";\n\nimport { createContext, type ReactNode, useContext } from \"react\";\n\ntype ComponentSize = \"sm\" | \"md\" | \"lg\";\n\nconst SizeContext = createContext<ComponentSize | undefined>(undefined);\n\nfunction SizeProvider({\n\tchildren,\n\tsize,\n}: {\n\tchildren: ReactNode;\n\tsize?: ComponentSize | null;\n}) {\n\tif (!size) {\n\t\treturn <>{children}</>;\n\t}\n\n\treturn <SizeContext.Provider value={size}>{children}</SizeContext.Provider>;\n}\n\nfunction useComponentSize(\n\tsize?: ComponentSize | null,\n\tfallback: ComponentSize = \"md\",\n) {\n\tconst inheritedSize = useContext(SizeContext);\n\treturn size ?? inheritedSize ?? fallback;\n}\n\nexport { SizeProvider, useComponentSize, type ComponentSize };\n"],"mappings":"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","names":["cva","jsx","jsx","jsxs","cva"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { InputGroupInput } from './input-group.js';
|
|
3
|
+
import 'class-variance-authority/types';
|
|
4
|
+
import 'class-variance-authority';
|
|
5
|
+
import './button.js';
|
|
6
|
+
import '@base-ui/react/button';
|
|
7
|
+
import './input.js';
|
|
8
|
+
import './input-size-context.js';
|
|
9
|
+
import './textarea.js';
|
|
10
|
+
|
|
11
|
+
declare function PasswordInput({ className, size, disabled, readOnly, autoComplete, ...props }: Omit<React.ComponentProps<typeof InputGroupInput>, "type">): React.JSX.Element;
|
|
12
|
+
|
|
13
|
+
export { PasswordInput };
|