@giddaa-housing/ui 0.1.0 → 1.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 +18 -6
- package/css/base.css +37 -0
- package/css/components.css +135 -0
- package/css/generated/shared.css +1 -0
- package/css/giddaa.css +402 -0
- package/css/preset.css +77 -0
- package/css/styles.css +2 -0
- package/css/theme.css +255 -0
- package/dist/accordion.d.ts +9 -10
- package/dist/accordion.js +41 -117
- package/dist/activity-timeline.d.ts +29 -0
- package/dist/activity-timeline.js +97 -0
- package/dist/alert.d.ts +8 -9
- package/dist/alert.js +53 -141
- package/dist/auth-layout.d.ts +23 -0
- package/dist/auth-layout.js +153 -0
- package/dist/avatar.d.ts +6 -6
- package/dist/avatar.js +40 -142
- package/dist/badge.d.ts +12 -13
- package/dist/badge.js +66 -114
- package/dist/bar-chart.d.ts +136 -114
- package/dist/bar-chart.js +244 -297
- package/dist/breadcrumb.d.ts +5 -5
- package/dist/breadcrumb.js +56 -148
- package/dist/bullet-chart.d.ts +33 -33
- package/dist/bullet-chart.js +123 -183
- package/dist/button-BZIeyUw6.d.ts +17 -0
- package/dist/button-group.d.ts +13 -16
- package/dist/button-group.js +38 -163
- package/dist/button.d.ts +2 -19
- package/dist/button.js +90 -142
- package/dist/calendar.d.ts +6 -6
- package/dist/calendar.js +134 -288
- package/dist/card.d.ts +14 -16
- package/dist/card.js +58 -174
- package/dist/carousel.d.ts +34 -35
- package/dist/carousel.js +319 -378
- package/dist/chart.d.ts +58 -59
- package/dist/chart.js +350 -466
- package/dist/checkbox.d.ts +10 -12
- package/dist/checkbox.js +84 -84
- package/dist/cn-BI_4DMBf.js +23 -0
- package/dist/collapsible.d.ts +7 -8
- package/dist/collapsible.js +23 -77
- package/dist/combobox.d.ts +10 -10
- package/dist/combobox.js +220 -696
- package/dist/cta.d.ts +64 -0
- package/dist/cta.js +192 -0
- package/dist/currency-selector.d.ts +41 -0
- package/dist/currency-selector.js +114 -0
- package/dist/data-table.d.ts +164 -0
- package/dist/data-table.js +673 -0
- package/dist/date-picker.d.ts +27 -20
- package/dist/date-picker.js +122 -520
- package/dist/details-card.d.ts +19 -0
- package/dist/details-card.js +118 -0
- package/dist/dialog.d.ts +13 -14
- package/dist/dialog.js +117 -320
- package/dist/dropdown-menu.d.ts +14 -14
- package/dist/dropdown-menu.js +170 -365
- package/dist/dropzone.d.ts +55 -55
- package/dist/dropzone.js +328 -467
- package/dist/editorial-card.d.ts +27 -0
- package/dist/editorial-card.js +144 -0
- package/dist/empty-state.d.ts +8 -9
- package/dist/empty-state.js +48 -135
- package/dist/field.d.ts +23 -25
- package/dist/field.js +111 -327
- package/dist/filter.d.ts +118 -0
- package/dist/filter.js +775 -0
- package/dist/footer.d.ts +40 -0
- package/dist/footer.js +227 -0
- package/dist/funnel-chart.d.ts +38 -41
- package/dist/funnel-chart.js +168 -563
- package/dist/gallery-indicator.d.ts +17 -0
- package/dist/gallery-indicator.js +75 -0
- package/dist/heatmap-chart.d.ts +95 -0
- package/dist/heatmap-chart.js +197 -0
- package/dist/infotip.d.ts +10 -0
- package/dist/infotip.js +40 -0
- package/dist/input-CfoEJ8A6.d.ts +12 -0
- package/dist/input-group.d.ts +16 -19
- package/dist/input-group.js +92 -372
- package/dist/input-size-context-C-SFx9sx.d.ts +10 -0
- package/dist/input-size-context.d.ts +2 -11
- package/dist/input-size-context.js +14 -20
- package/dist/input.d.ts +2 -13
- package/dist/input.js +23 -79
- package/dist/item.d.ts +7 -8
- package/dist/item.js +22 -89
- package/dist/kpi-card.d.ts +18 -20
- package/dist/kpi-card.js +84 -232
- package/dist/label.d.ts +6 -6
- package/dist/label.js +39 -66
- package/dist/line-chart.d.ts +88 -89
- package/dist/line-chart.js +143 -262
- package/dist/logo.d.ts +4 -4
- package/dist/logo.js +87 -141
- package/dist/map-indicator.d.ts +13 -0
- package/dist/map-indicator.js +83 -0
- package/dist/match.d.ts +15 -0
- package/dist/match.js +68 -0
- package/dist/media-gallery-hero.d.ts +58 -0
- package/dist/media-gallery-hero.js +201 -0
- package/dist/media-player.d.ts +60 -0
- package/dist/media-player.js +919 -0
- package/dist/multi-step-form.d.ts +56 -0
- package/dist/multi-step-form.js +342 -0
- package/dist/number-input.d.ts +34 -34
- package/dist/number-input.js +62 -413
- package/dist/page-header.d.ts +10 -11
- package/dist/page-header.js +34 -107
- package/dist/pagination.d.ts +17 -20
- package/dist/pagination.js +132 -341
- package/dist/password-input.d.ts +5 -12
- package/dist/password-input.js +32 -354
- package/dist/phone-input.d.ts +19 -19
- package/dist/phone-input.js +232 -561
- package/dist/photo-gallery.d.ts +20 -20
- package/dist/photo-gallery.js +314 -746
- package/dist/picker-lzgmsNfG.js +32 -0
- package/dist/pie-chart.d.ts +60 -60
- package/dist/pie-chart.js +141 -184
- package/dist/popover.d.ts +9 -9
- package/dist/popover.js +60 -156
- package/dist/price-tag.d.ts +34 -0
- package/dist/price-tag.js +118 -0
- package/dist/progress.d.ts +18 -16
- package/dist/progress.js +156 -300
- package/dist/property-listing-card.d.ts +29 -0
- package/dist/property-listing-card.js +117 -0
- package/dist/radar-chart.d.ts +108 -0
- package/dist/radar-chart.js +172 -0
- package/dist/radio-group.d.ts +11 -13
- package/dist/radio-group.js +47 -96
- package/dist/review-block.d.ts +18 -0
- package/dist/review-block.js +154 -0
- package/dist/rich-text-editor.d.ts +30 -14
- package/dist/rich-text-editor.js +594 -979
- package/dist/scatter-chart.d.ts +140 -0
- package/dist/scatter-chart.js +248 -0
- package/dist/search-input.d.ts +8 -15
- package/dist/search-input.js +58 -408
- package/dist/select.d.ts +8 -8
- package/dist/select.js +131 -291
- package/dist/separator.d.ts +8 -9
- package/dist/separator.js +31 -70
- package/dist/sheet.d.ts +11 -11
- package/dist/sheet.js +84 -262
- package/dist/sidebar.d.ts +32 -37
- package/dist/sidebar.js +380 -1055
- package/dist/size-context-D4mYvcg8.d.ts +10 -0
- package/dist/size-context.d.ts +2 -11
- package/dist/size-context.js +14 -18
- package/dist/skeleton.d.ts +4 -5
- package/dist/skeleton.js +9 -45
- package/dist/slider.d.ts +27 -0
- package/dist/slider.js +81 -0
- package/dist/sparkline.d.ts +43 -46
- package/dist/sparkline.js +223 -561
- package/dist/stepper.d.ts +23 -24
- package/dist/stepper.js +149 -276
- package/dist/styles.css +9995 -2
- package/dist/switch.d.ts +10 -12
- package/dist/switch.js +49 -106
- package/dist/table-card.d.ts +35 -0
- package/dist/table-card.js +125 -0
- package/dist/table.d.ts +18 -14
- package/dist/table.js +114 -182
- package/dist/tabs.d.ts +23 -15
- package/dist/tabs.js +62 -149
- package/dist/tag.d.ts +22 -23
- package/dist/tag.js +104 -156
- package/dist/testimonial-block.d.ts +33 -0
- package/dist/testimonial-block.js +208 -0
- package/dist/textarea-IS_D8pXf.d.ts +11 -0
- package/dist/textarea.d.ts +2 -12
- package/dist/textarea.js +20 -74
- package/dist/time-picker.d.ts +11 -11
- package/dist/time-picker.js +247 -464
- package/dist/toast.d.ts +16 -18
- package/dist/toast.js +154 -310
- package/dist/tooltip.d.ts +9 -10
- package/dist/tooltip.js +33 -91
- package/dist/tree-map.d.ts +54 -57
- package/dist/tree-map.js +231 -646
- package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
- package/dist/waterfall-chart.d.ts +126 -0
- package/dist/waterfall-chart.js +480 -0
- package/package.json +123 -34
- package/dist/accordion.js.map +0 -1
- package/dist/alert.js.map +0 -1
- package/dist/avatar.js.map +0 -1
- package/dist/badge.js.map +0 -1
- package/dist/bar-chart.js.map +0 -1
- package/dist/base.css +0 -32
- package/dist/breadcrumb.js.map +0 -1
- package/dist/bullet-chart.js.map +0 -1
- package/dist/button-group.js.map +0 -1
- package/dist/button.js.map +0 -1
- package/dist/calendar.js.map +0 -1
- package/dist/card.js.map +0 -1
- package/dist/carousel.js.map +0 -1
- package/dist/chart.js.map +0 -1
- package/dist/checkbox.js.map +0 -1
- package/dist/collapsible.js.map +0 -1
- package/dist/combobox.js.map +0 -1
- package/dist/date-picker.js.map +0 -1
- package/dist/dialog.js.map +0 -1
- package/dist/dropdown-menu.js.map +0 -1
- package/dist/dropzone.js.map +0 -1
- package/dist/empty-state.js.map +0 -1
- package/dist/field.js.map +0 -1
- 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.js.map +0 -1
- package/dist/index.d.ts +0 -87
- package/dist/index.js +0 -10448
- package/dist/index.js.map +0 -1
- package/dist/input-group.js.map +0 -1
- package/dist/input-size-context.js.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/item.js.map +0 -1
- package/dist/kpi-card.js.map +0 -1
- package/dist/label.js.map +0 -1
- package/dist/line-chart.js.map +0 -1
- package/dist/logo.js.map +0 -1
- package/dist/number-input.js.map +0 -1
- package/dist/page-header.js.map +0 -1
- package/dist/pagination.js.map +0 -1
- package/dist/password-input.js.map +0 -1
- package/dist/phone-input.js.map +0 -1
- package/dist/photo-gallery.js.map +0 -1
- package/dist/pie-chart.js.map +0 -1
- package/dist/popover.js.map +0 -1
- package/dist/progress.js.map +0 -1
- package/dist/radio-group.js.map +0 -1
- package/dist/red-hat-display.css +0 -2
- package/dist/rich-text-editor.js.map +0 -1
- package/dist/search-input.js.map +0 -1
- package/dist/select.js.map +0 -1
- package/dist/separator.js.map +0 -1
- package/dist/sheet.js.map +0 -1
- package/dist/sidebar.js.map +0 -1
- package/dist/size-context.js.map +0 -1
- package/dist/skeleton.js.map +0 -1
- package/dist/sparkline.js.map +0 -1
- package/dist/stepper.js.map +0 -1
- package/dist/switch.js.map +0 -1
- package/dist/tab-list.d.ts +0 -38
- package/dist/tab-list.js +0 -394
- package/dist/tab-list.js.map +0 -1
- package/dist/table.js.map +0 -1
- package/dist/tabs.js.map +0 -1
- package/dist/tag.js.map +0 -1
- package/dist/textarea.js.map +0 -1
- package/dist/theme/giddaa.css +0 -2
- package/dist/time-picker.js.map +0 -1
- package/dist/toast.js.map +0 -1
- package/dist/tooltip.js.map +0 -1
- package/dist/tree-map.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/gallery-indicator.d.ts
|
|
4
|
+
type GalleryIndicatorSize = "sm" | "md" | "lg";
|
|
5
|
+
declare const galleryIndicatorVariants: (props?: ({
|
|
6
|
+
size?: "lg" | "md" | "sm" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
type GalleryIndicatorProps = React.ComponentProps<"span"> & VariantProps<typeof galleryIndicatorVariants> & {
|
|
9
|
+
photoCount?: number;
|
|
10
|
+
currentPhoto?: number;
|
|
11
|
+
totalPhotos?: number;
|
|
12
|
+
label?: string;
|
|
13
|
+
};
|
|
14
|
+
declare function GalleryIndicatorIcon(props: React.SVGProps<SVGSVGElement>): React.JSX.Element;
|
|
15
|
+
declare function GalleryIndicator({ className, size, photoCount, currentPhoto, totalPhotos, label, children, ...props }: GalleryIndicatorProps): React.JSX.Element;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { GalleryIndicator, GalleryIndicatorIcon, type GalleryIndicatorProps, type GalleryIndicatorSize, galleryIndicatorVariants };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
//#region src/gallery-indicator.tsx
|
|
5
|
+
const galleryIndicatorVariants = cva("inline-flex w-fit shrink-0 items-center justify-center rounded-[100px] bg-black/40 px-3 font-bold leading-none whitespace-nowrap text-white shadow-[0px_0px_4px_0px_rgba(0,0,0,0.1)] backdrop-blur-[15px] sm:px-4", {
|
|
6
|
+
variants: { size: {
|
|
7
|
+
sm: "h-[35px] gap-2 text-gdt-xs sm:gap-4 [&>svg]:size-5",
|
|
8
|
+
md: "h-10 gap-2 text-gdt-sm sm:gap-4 [&>svg]:size-5",
|
|
9
|
+
lg: "h-10 gap-2 text-gdt-lg sm:h-[50px] sm:gap-4 [&>svg]:size-6"
|
|
10
|
+
} },
|
|
11
|
+
defaultVariants: { size: "md" }
|
|
12
|
+
});
|
|
13
|
+
function GalleryIndicatorIcon(props) {
|
|
14
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
15
|
+
"aria-hidden": "true",
|
|
16
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
+
viewBox: "0 0 24 24",
|
|
18
|
+
fill: "none",
|
|
19
|
+
...props,
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ jsx("path", {
|
|
22
|
+
d: "M5.75 17.5 3.63 7.62a2 2 0 0 1 1.53-2.37l9.66-2.07a2 2 0 0 1 2.37 1.53l.27 1.29",
|
|
23
|
+
stroke: "currentColor",
|
|
24
|
+
strokeLinecap: "round",
|
|
25
|
+
strokeLinejoin: "round",
|
|
26
|
+
strokeWidth: "2"
|
|
27
|
+
}),
|
|
28
|
+
/* @__PURE__ */ jsx("rect", {
|
|
29
|
+
width: "14.5",
|
|
30
|
+
height: "12.5",
|
|
31
|
+
x: "7",
|
|
32
|
+
y: "7.5",
|
|
33
|
+
stroke: "currentColor",
|
|
34
|
+
strokeLinejoin: "round",
|
|
35
|
+
strokeWidth: "2",
|
|
36
|
+
rx: "2"
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ jsx("path", {
|
|
39
|
+
d: "m8.75 17 3.31-3.31a1.25 1.25 0 0 1 1.77 0L17.25 17",
|
|
40
|
+
stroke: "currentColor",
|
|
41
|
+
strokeLinecap: "round",
|
|
42
|
+
strokeLinejoin: "round",
|
|
43
|
+
strokeWidth: "2"
|
|
44
|
+
}),
|
|
45
|
+
/* @__PURE__ */ jsx("path", {
|
|
46
|
+
d: "m15.5 15.25.81-.81a1.25 1.25 0 0 1 1.77 0L20.5 16.86",
|
|
47
|
+
stroke: "currentColor",
|
|
48
|
+
strokeLinecap: "round",
|
|
49
|
+
strokeLinejoin: "round",
|
|
50
|
+
strokeWidth: "2"
|
|
51
|
+
}),
|
|
52
|
+
/* @__PURE__ */ jsx("circle", {
|
|
53
|
+
cx: "17.25",
|
|
54
|
+
cy: "11.25",
|
|
55
|
+
r: "1.25",
|
|
56
|
+
fill: "currentColor"
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function GalleryIndicator({ className, size = "md", photoCount = 35, currentPhoto, totalPhotos = photoCount, label, children, ...props }) {
|
|
62
|
+
const resolvedLabel = children ?? label ?? (currentPhoto === void 0 ? `View All ${photoCount} Photos` : `${currentPhoto}/${totalPhotos}`);
|
|
63
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
64
|
+
"data-slot": "gallery-indicator",
|
|
65
|
+
"data-size": size,
|
|
66
|
+
className: cn(galleryIndicatorVariants({ size }), className),
|
|
67
|
+
...props,
|
|
68
|
+
children: [/* @__PURE__ */ jsx(GalleryIndicatorIcon, { className: "shrink-0 text-white" }), /* @__PURE__ */ jsx("span", {
|
|
69
|
+
className: "min-w-0 truncate",
|
|
70
|
+
children: resolvedLabel
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { GalleryIndicator, GalleryIndicatorIcon, galleryIndicatorVariants };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { t as ComponentSize } from "./size-context-D4mYvcg8.js";
|
|
2
|
+
import { ChartCard } from "./chart.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/heatmap-chart.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* A heatmap — a row × column grid encoding magnitude as fill intensity.
|
|
7
|
+
* Reach for one to compare a measure across two categorical dimensions at a
|
|
8
|
+
* glance (listing inquiries by neighbourhood and month, traffic by day and
|
|
9
|
+
* hour, repayment rate by branch and quarter).
|
|
10
|
+
*
|
|
11
|
+
* Unlike the other charts in this folder it is not built on recharts
|
|
12
|
+
* (recharts has no heatmap/matrix primitive); it is a CSS grid of cells, a
|
|
13
|
+
* hover/focus tooltip per cell, and an optional sequential-scale legend. It
|
|
14
|
+
* stays size-aware via the shared `SizeProvider` and reuses `ChartCard`.
|
|
15
|
+
*
|
|
16
|
+
* Color encodes magnitude, so cells are `--color-surface-brand` at a
|
|
17
|
+
* magnitude-scaled opacity (8/22/44/70/100%) rather than a distinct hue per
|
|
18
|
+
* bucket — the brand token already flips per theme, so the ramp stays
|
|
19
|
+
* correct in both without a separate token set. Never the categorical
|
|
20
|
+
* `chart-1`…`3` tokens, which encode identity, not amount.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <HeatmapChart
|
|
24
|
+
* data={[
|
|
25
|
+
* { row: "Lekki", column: "Jan", value: 42 },
|
|
26
|
+
* { row: "Lekki", column: "Feb", value: 58 },
|
|
27
|
+
* { row: "Yaba", column: "Jan", value: 21 },
|
|
28
|
+
* { row: "Yaba", column: "Feb", value: 30 },
|
|
29
|
+
* ]}
|
|
30
|
+
* title="Listing inquiries"
|
|
31
|
+
* description="By neighbourhood · Jan–Feb 2026"
|
|
32
|
+
* />
|
|
33
|
+
*/
|
|
34
|
+
/** Heatmap sizes line up with the three shared `ComponentSize` values. */
|
|
35
|
+
type HeatmapChartSize = ComponentSize;
|
|
36
|
+
type HeatmapChartCellDatum = {
|
|
37
|
+
/** Row category label. */
|
|
38
|
+
row: string;
|
|
39
|
+
/** Column category label. */
|
|
40
|
+
column: string;
|
|
41
|
+
/** Magnitude driving the cell's fill. Omit the datum entirely for "no data". */
|
|
42
|
+
value: number;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Sequential fill ramp — `--color-surface-brand` (already theme-aware) at five
|
|
46
|
+
* magnitude-scaled opacity stops: 8%, 22%, 44%, 70%, 100%. Index 0 is the
|
|
47
|
+
* lowest magnitude bucket, index 4 the highest — assign by bucket order,
|
|
48
|
+
* never by an arbitrary opacity pick. Relative color syntax (`rgb(from … / a)`)
|
|
49
|
+
* keeps each stop a true alpha over whatever surface it sits on, matching the
|
|
50
|
+
* shadow/gradient tokens in `styles/giddaa.css`.
|
|
51
|
+
*/
|
|
52
|
+
declare const HEATMAP_CHART_PALETTE: readonly ["rgb(from var(--color-surface-brand) r g b / 0.08)", "rgb(from var(--color-surface-brand) r g b / 0.22)", "rgb(from var(--color-surface-brand) r g b / 0.44)", "rgb(from var(--color-surface-brand) r g b / 0.7)", "rgb(from var(--color-surface-brand) r g b / 1)"];
|
|
53
|
+
type HeatmapChartLayout = {
|
|
54
|
+
/** Width/height of a single (square) cell in px. */
|
|
55
|
+
cellSize: number;
|
|
56
|
+
/** Gap between cells in px. */
|
|
57
|
+
gap: number;
|
|
58
|
+
/** Reserved width for row labels in px. */
|
|
59
|
+
rowLabelWidth: number;
|
|
60
|
+
/** Reserved height for the column header row in px. */
|
|
61
|
+
columnLabelHeight: number;
|
|
62
|
+
/** Row/column label font size in px. */
|
|
63
|
+
labelFontSize: number;
|
|
64
|
+
/** In-cell value label font size in px. */
|
|
65
|
+
valueFontSize: number;
|
|
66
|
+
/** Width of a single legend ramp swatch in px. */
|
|
67
|
+
legendSwatchSize: number;
|
|
68
|
+
};
|
|
69
|
+
declare const HEATMAP_CHART_LAYOUT: Record<HeatmapChartSize, HeatmapChartLayout>;
|
|
70
|
+
type HeatmapChartProps = Omit<React.ComponentProps<typeof ChartCard>, "size" | "children"> & {
|
|
71
|
+
/** Cells — one entry per row/column pair that has a value. */
|
|
72
|
+
data: HeatmapChartCellDatum[];
|
|
73
|
+
/** Row order, top to bottom. Defaults to first-seen order in `data`. */
|
|
74
|
+
rows?: string[];
|
|
75
|
+
/** Column order, left to right. Defaults to first-seen order in `data`. */
|
|
76
|
+
columns?: string[];
|
|
77
|
+
/** Fixed `[min, max]` for the color scale. Defaults to the data's range. */
|
|
78
|
+
domain?: [number, number];
|
|
79
|
+
/** Explicit size; otherwise inherited from the nearest `SizeProvider`. */
|
|
80
|
+
size?: HeatmapChartSize;
|
|
81
|
+
/** Chart heading. Omit to hide the title. */
|
|
82
|
+
title?: React.ReactNode;
|
|
83
|
+
/** Supporting metadata (period, source). Omit to hide the description. */
|
|
84
|
+
description?: React.ReactNode;
|
|
85
|
+
/** Show the sequential-scale legend under the grid. Default true. */
|
|
86
|
+
legend?: boolean;
|
|
87
|
+
/** Print the formatted value inside every cell. Default false — the
|
|
88
|
+
* hover/focus tooltip carries exact figures without crowding the grid. */
|
|
89
|
+
showValues?: boolean;
|
|
90
|
+
/** Format a cell value for the tooltip, legend, and in-cell label. */
|
|
91
|
+
valueFormatter?: (value: number) => string;
|
|
92
|
+
};
|
|
93
|
+
declare function HeatmapChart({ data, rows: rowsProp, columns: columnsProp, domain: domainProp, size, title, description, legend, showValues, valueFormatter, className, ...props }: HeatmapChartProps): React.JSX.Element;
|
|
94
|
+
//#endregion
|
|
95
|
+
export { HEATMAP_CHART_LAYOUT, HEATMAP_CHART_PALETTE, HeatmapChart, type HeatmapChartCellDatum, type HeatmapChartLayout, type HeatmapChartProps, type HeatmapChartSize };
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useComponentSize } from "./size-context.js";
|
|
3
|
+
import { ChartCard, ChartDescription, ChartHeader, ChartTitle } from "./chart.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Fragment as Fragment$1 } from "react";
|
|
6
|
+
//#region src/heatmap-chart.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Sequential fill ramp — `--color-surface-brand` (already theme-aware) at five
|
|
9
|
+
* magnitude-scaled opacity stops: 8%, 22%, 44%, 70%, 100%. Index 0 is the
|
|
10
|
+
* lowest magnitude bucket, index 4 the highest — assign by bucket order,
|
|
11
|
+
* never by an arbitrary opacity pick. Relative color syntax (`rgb(from … / a)`)
|
|
12
|
+
* keeps each stop a true alpha over whatever surface it sits on, matching the
|
|
13
|
+
* shadow/gradient tokens in `styles/giddaa.css`.
|
|
14
|
+
*/
|
|
15
|
+
const HEATMAP_CHART_PALETTE = [
|
|
16
|
+
"rgb(from var(--color-surface-brand) r g b / 0.08)",
|
|
17
|
+
"rgb(from var(--color-surface-brand) r g b / 0.22)",
|
|
18
|
+
"rgb(from var(--color-surface-brand) r g b / 0.44)",
|
|
19
|
+
"rgb(from var(--color-surface-brand) r g b / 0.7)",
|
|
20
|
+
"rgb(from var(--color-surface-brand) r g b / 1)"
|
|
21
|
+
];
|
|
22
|
+
const HEATMAP_CHART_LAYOUT = {
|
|
23
|
+
sm: {
|
|
24
|
+
cellSize: 20,
|
|
25
|
+
gap: 3,
|
|
26
|
+
rowLabelWidth: 64,
|
|
27
|
+
columnLabelHeight: 20,
|
|
28
|
+
labelFontSize: 10,
|
|
29
|
+
valueFontSize: 9,
|
|
30
|
+
legendSwatchSize: 14
|
|
31
|
+
},
|
|
32
|
+
md: {
|
|
33
|
+
cellSize: 26,
|
|
34
|
+
gap: 3,
|
|
35
|
+
rowLabelWidth: 80,
|
|
36
|
+
columnLabelHeight: 22,
|
|
37
|
+
labelFontSize: 11,
|
|
38
|
+
valueFontSize: 10,
|
|
39
|
+
legendSwatchSize: 16
|
|
40
|
+
},
|
|
41
|
+
lg: {
|
|
42
|
+
cellSize: 32,
|
|
43
|
+
gap: 4,
|
|
44
|
+
rowLabelWidth: 96,
|
|
45
|
+
columnLabelHeight: 24,
|
|
46
|
+
labelFontSize: 12,
|
|
47
|
+
valueFontSize: 11,
|
|
48
|
+
legendSwatchSize: 18
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/** Joins a row/column pair into a stable lookup key. */
|
|
52
|
+
function cellKey(row, column) {
|
|
53
|
+
return `${row}␟${column}`;
|
|
54
|
+
}
|
|
55
|
+
/** Buckets a value into one of the five palette steps (1 = lowest, 5 = highest). */
|
|
56
|
+
function heatmapStep(value, domain) {
|
|
57
|
+
const [min, max] = domain;
|
|
58
|
+
if (max <= min) return HEATMAP_CHART_PALETTE.length;
|
|
59
|
+
const ratio = (value - min) / (max - min);
|
|
60
|
+
const step = Math.ceil(ratio * HEATMAP_CHART_PALETTE.length);
|
|
61
|
+
return Math.min(HEATMAP_CHART_PALETTE.length, Math.max(1, step));
|
|
62
|
+
}
|
|
63
|
+
function HeatmapChart({ data, rows: rowsProp, columns: columnsProp, domain: domainProp, size, title, description, legend = true, showValues = false, valueFormatter = (value) => value.toLocaleString("en-NG"), className, ...props }) {
|
|
64
|
+
const resolvedSize = useComponentSize(size);
|
|
65
|
+
const layout = HEATMAP_CHART_LAYOUT[resolvedSize];
|
|
66
|
+
const rows = rowsProp ?? Array.from(new Set(data.map((d) => d.row)));
|
|
67
|
+
const columns = columnsProp ?? Array.from(new Set(data.map((d) => d.column)));
|
|
68
|
+
const valuesByKey = new Map(data.map((datum) => [cellKey(datum.row, datum.column), datum.value]));
|
|
69
|
+
const values = data.map((datum) => datum.value);
|
|
70
|
+
const domain = domainProp ?? [values.length ? Math.min(...values) : 0, values.length ? Math.max(...values) : 1];
|
|
71
|
+
return /* @__PURE__ */ jsxs(ChartCard, {
|
|
72
|
+
size: resolvedSize,
|
|
73
|
+
className,
|
|
74
|
+
...props,
|
|
75
|
+
children: [(title != null || description != null) && /* @__PURE__ */ jsxs(ChartHeader, { children: [title != null && /* @__PURE__ */ jsx(ChartTitle, { children: title }), description != null && /* @__PURE__ */ jsx(ChartDescription, { children: description })] }), /* @__PURE__ */ jsxs("div", {
|
|
76
|
+
className: "flex flex-col gap-3",
|
|
77
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
78
|
+
className: "overflow-x-auto",
|
|
79
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
80
|
+
className: "inline-grid",
|
|
81
|
+
style: {
|
|
82
|
+
gridTemplateColumns: `${layout.rowLabelWidth}px repeat(${columns.length}, ${layout.cellSize}px)`,
|
|
83
|
+
gap: layout.gap
|
|
84
|
+
},
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true" }),
|
|
87
|
+
columns.map((column) => /* @__PURE__ */ jsx("span", {
|
|
88
|
+
className: "flex items-end justify-center truncate px-0.5 pb-1 text-fg-secondary",
|
|
89
|
+
style: {
|
|
90
|
+
fontSize: layout.labelFontSize,
|
|
91
|
+
height: layout.columnLabelHeight
|
|
92
|
+
},
|
|
93
|
+
title: column,
|
|
94
|
+
children: column
|
|
95
|
+
}, column)),
|
|
96
|
+
rows.map((row) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
97
|
+
className: "flex items-center truncate pr-2 text-fg-secondary",
|
|
98
|
+
style: {
|
|
99
|
+
fontSize: layout.labelFontSize,
|
|
100
|
+
height: layout.cellSize
|
|
101
|
+
},
|
|
102
|
+
title: row,
|
|
103
|
+
children: row
|
|
104
|
+
}), columns.map((column) => /* @__PURE__ */ jsx(HeatmapChartCell, {
|
|
105
|
+
row,
|
|
106
|
+
column,
|
|
107
|
+
value: valuesByKey.get(cellKey(row, column)),
|
|
108
|
+
domain,
|
|
109
|
+
layout,
|
|
110
|
+
showValue: showValues,
|
|
111
|
+
valueFormatter
|
|
112
|
+
}, column))] }, row))
|
|
113
|
+
]
|
|
114
|
+
})
|
|
115
|
+
}), legend && /* @__PURE__ */ jsx(HeatmapChartLegend, {
|
|
116
|
+
domain,
|
|
117
|
+
layout,
|
|
118
|
+
valueFormatter
|
|
119
|
+
})]
|
|
120
|
+
})]
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* One grid cell. Missing data (no matching datum for this row/column) renders
|
|
125
|
+
* a dashed placeholder and is skipped from tab order — there is nothing to
|
|
126
|
+
* announce or hover. A valued cell is a focusable, hoverable swatch: the
|
|
127
|
+
* `aria-label` carries the row/column/value so screen readers get the exact
|
|
128
|
+
* figure without relying on the visual tooltip, which mirrors it for sighted
|
|
129
|
+
* hover/keyboard-focus use.
|
|
130
|
+
*/
|
|
131
|
+
function HeatmapChartCell({ row, column, value, domain, layout, showValue, valueFormatter }) {
|
|
132
|
+
if (value == null) return /* @__PURE__ */ jsx("span", {
|
|
133
|
+
className: "rounded-[4px] border border-line-subtle border-dashed",
|
|
134
|
+
style: {
|
|
135
|
+
width: layout.cellSize,
|
|
136
|
+
height: layout.cellSize
|
|
137
|
+
},
|
|
138
|
+
title: `${row} · ${column}: no data`
|
|
139
|
+
});
|
|
140
|
+
const step = heatmapStep(value, domain);
|
|
141
|
+
const color = HEATMAP_CHART_PALETTE[step - 1];
|
|
142
|
+
const formatted = valueFormatter(value);
|
|
143
|
+
const label = `${row} · ${column}: ${formatted}`;
|
|
144
|
+
const textColor = step >= 4 ? "var(--color-fg-on-brand)" : "var(--color-fg-primary)";
|
|
145
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
146
|
+
type: "button",
|
|
147
|
+
className: "group/cell relative flex items-center justify-center rounded-[4px] outline-none focus-visible:shadow-[0px_0px_0px_2px_var(--color-line-focus)]",
|
|
148
|
+
style: {
|
|
149
|
+
width: layout.cellSize,
|
|
150
|
+
height: layout.cellSize,
|
|
151
|
+
backgroundColor: color
|
|
152
|
+
},
|
|
153
|
+
"aria-label": label,
|
|
154
|
+
children: [showValue && /* @__PURE__ */ jsx("span", {
|
|
155
|
+
className: "pointer-events-none tabular-nums",
|
|
156
|
+
style: {
|
|
157
|
+
fontSize: layout.valueFontSize,
|
|
158
|
+
color: textColor
|
|
159
|
+
},
|
|
160
|
+
children: formatted
|
|
161
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
162
|
+
role: "tooltip",
|
|
163
|
+
className: "pointer-events-none absolute bottom-full left-1/2 z-10 mb-1.5 -translate-x-1/2 whitespace-nowrap rounded-md border border-line-subtle bg-surface-overlay px-2 py-1 text-fg-primary text-gdt-xs opacity-0 shadow-2 transition-opacity group-hover/cell:opacity-100 group-focus-visible/cell:opacity-100",
|
|
164
|
+
children: label
|
|
165
|
+
})]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/** Sequential-scale legend — the opacity ramp bounded by the domain's min/max. */
|
|
169
|
+
function HeatmapChartLegend({ domain, layout, valueFormatter }) {
|
|
170
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
171
|
+
className: "flex items-center gap-2 text-fg-caption-placeholder",
|
|
172
|
+
style: { fontSize: layout.labelFontSize },
|
|
173
|
+
children: [
|
|
174
|
+
/* @__PURE__ */ jsx("span", {
|
|
175
|
+
className: "tabular-nums",
|
|
176
|
+
children: valueFormatter(domain[0])
|
|
177
|
+
}),
|
|
178
|
+
/* @__PURE__ */ jsx("div", {
|
|
179
|
+
className: "flex overflow-hidden rounded-[3px]",
|
|
180
|
+
children: HEATMAP_CHART_PALETTE.map((color) => /* @__PURE__ */ jsx("span", {
|
|
181
|
+
"aria-hidden": "true",
|
|
182
|
+
style: {
|
|
183
|
+
backgroundColor: color,
|
|
184
|
+
width: layout.legendSwatchSize,
|
|
185
|
+
height: layout.legendSwatchSize / 2
|
|
186
|
+
}
|
|
187
|
+
}, color))
|
|
188
|
+
}),
|
|
189
|
+
/* @__PURE__ */ jsx("span", {
|
|
190
|
+
className: "tabular-nums",
|
|
191
|
+
children: valueFormatter(domain[1])
|
|
192
|
+
})
|
|
193
|
+
]
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
//#endregion
|
|
197
|
+
export { HEATMAP_CHART_LAYOUT, HEATMAP_CHART_PALETTE, HeatmapChart };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Popover } from "@base-ui/react/popover";
|
|
2
|
+
//#region src/infotip.d.ts
|
|
3
|
+
declare function Infotip({ ...props }: Popover.Root.Props): import("react").JSX.Element;
|
|
4
|
+
declare function InfotipTrigger({ ...props }: Popover.Trigger.Props): import("react").JSX.Element;
|
|
5
|
+
type InfotipContentProps = Popover.Popup.Props & Pick<Popover.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset"> & Pick<Popover.Portal.Props, "container"> & {
|
|
6
|
+
showArrow?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare function InfotipContent({ className, container, side, sideOffset, align, alignOffset, showArrow, children, ...props }: InfotipContentProps): import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Infotip, InfotipContent, InfotipTrigger };
|
package/dist/infotip.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Popover } from "@base-ui/react/popover";
|
|
5
|
+
//#region src/infotip.tsx
|
|
6
|
+
function Infotip({ ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(Popover.Root, {
|
|
8
|
+
"data-slot": "infotip",
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function InfotipTrigger({ ...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(Popover.Trigger, {
|
|
14
|
+
nativeButton: false,
|
|
15
|
+
"data-slot": "infotip-trigger",
|
|
16
|
+
openOnHover: true,
|
|
17
|
+
delay: 100,
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function InfotipContent({ className, container, side = "top", sideOffset = 6, align = "center", alignOffset = 0, showArrow = true, children, ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(Popover.Portal, {
|
|
23
|
+
container,
|
|
24
|
+
children: /* @__PURE__ */ jsx(Popover.Positioner, {
|
|
25
|
+
align,
|
|
26
|
+
alignOffset,
|
|
27
|
+
side,
|
|
28
|
+
sideOffset,
|
|
29
|
+
className: "isolate z-50",
|
|
30
|
+
children: /* @__PURE__ */ jsxs(Popover.Popup, {
|
|
31
|
+
"data-slot": "infotip-content",
|
|
32
|
+
className: cn("z-50 relative inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-[6px] border border-line bg-surface-overlay px-3 py-2 text-gdt-sm font-medium text-fg-primary shadow-2 duration-100 has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
33
|
+
...props,
|
|
34
|
+
children: [children, showArrow ? /* @__PURE__ */ jsx(Popover.Arrow, { className: "relative block w-3 h-1.5 overflow-clip data-[side=bottom]:top-[-6px] data-[side=left]:right-[-9px] data-[side=left]:rotate-90 data-[side=right]:left-[-9px] data-[side=right]:-rotate-90 data-[side=top]:bottom-[-6px] data-[side=top]:rotate-180 before:content-[''] before:absolute before:bottom-0 before:left-1/2 before:w-[calc(6px*sqrt(2))] before:h-[calc(6px*sqrt(2))] before:bg-surface-overlay before:border before:border-line before:[transform:translate(-50%,50%)_rotate(45deg)]" }) : null]
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { Infotip, InfotipContent, InfotipTrigger };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { t as InputComponentSize } from "./input-size-context-C-SFx9sx.js";
|
|
2
|
+
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/input.d.ts
|
|
5
|
+
declare const inputVariants: (props?: ({
|
|
6
|
+
size?: "lg" | "md" | "sm" | "xl" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
type InputProps = Omit<React.ComponentProps<"input">, "size"> & VariantProps<typeof inputVariants>;
|
|
9
|
+
type InputSize = InputComponentSize;
|
|
10
|
+
declare function Input({ className, size, type, ...props }: InputProps): React.JSX.Element;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { InputSize as n, inputVariants as r, Input as t };
|
package/dist/input-group.d.ts
CHANGED
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
import '@base-ui/react/button';
|
|
8
|
-
import './input-size-context.js';
|
|
9
|
-
|
|
1
|
+
import { t as Button } from "./button-BZIeyUw6.js";
|
|
2
|
+
import { n as InputSize } from "./input-CfoEJ8A6.js";
|
|
3
|
+
import { n as TextareaSize } from "./textarea-IS_D8pXf.js";
|
|
4
|
+
import { VariantProps } from "class-variance-authority";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
//#region src/input-group.d.ts
|
|
10
7
|
declare function InputGroup({ className, size, ...props }: React.ComponentProps<"div"> & {
|
|
11
|
-
|
|
8
|
+
size?: InputSize;
|
|
12
9
|
}): React.JSX.Element;
|
|
13
10
|
declare const inputGroupAddonVariants: (props?: ({
|
|
14
|
-
|
|
15
|
-
} &
|
|
11
|
+
align?: "block-end" | "block-start" | "inline-end" | "inline-start" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
13
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
|
|
17
14
|
declare const inputGroupButtonVariants: (props?: ({
|
|
18
|
-
|
|
19
|
-
} &
|
|
15
|
+
size?: "icon-sm" | "icon-xs" | "sm" | "xs" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
20
17
|
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, "size" | "type"> & VariantProps<typeof inputGroupButtonVariants> & {
|
|
21
|
-
|
|
18
|
+
type?: "button" | "submit" | "reset";
|
|
22
19
|
}): React.JSX.Element;
|
|
23
20
|
declare function InputGroupText({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
24
21
|
declare function InputGroupInput({ className, size, ...props }: Omit<React.ComponentProps<"input">, "size"> & {
|
|
25
|
-
|
|
22
|
+
size?: InputSize;
|
|
26
23
|
}): React.JSX.Element;
|
|
27
24
|
declare function InputGroupTextarea({ className, size, ...props }: Omit<React.ComponentProps<"textarea">, "size"> & {
|
|
28
|
-
|
|
25
|
+
size?: TextareaSize;
|
|
29
26
|
}): React.JSX.Element;
|
|
30
|
-
|
|
31
|
-
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
|
|
27
|
+
//#endregion
|
|
28
|
+
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
|