@giddaa-housing/ui 1.0.0 → 1.2.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/css/generated/shared.css +1 -1
- package/css/giddaa.css +12 -2
- package/dist/accordion.d.ts +9 -10
- package/dist/accordion.js +41 -87
- package/dist/activity-timeline.d.ts +12 -16
- package/dist/activity-timeline.js +83 -198
- package/dist/alert.d.ts +8 -9
- package/dist/alert.js +53 -111
- package/dist/auth-layout.d.ts +4 -4
- package/dist/auth-layout.js +143 -294
- package/dist/avatar.d.ts +6 -6
- package/dist/avatar.js +49 -19
- package/dist/badge.d.ts +12 -14
- package/dist/badge.js +71 -11
- package/dist/bar-chart.d.ts +65 -67
- package/dist/bar-chart.js +232 -207
- package/dist/breadcrumb.d.ts +5 -5
- package/dist/breadcrumb.js +56 -118
- package/dist/bullet-chart.d.ts +41 -37
- package/dist/bullet-chart.js +125 -148
- package/dist/button-BZIeyUw6.d.ts +17 -0
- package/dist/button-group.d.ts +13 -16
- package/dist/button-group.js +39 -88
- package/dist/button.d.ts +2 -19
- package/dist/button.js +94 -13
- package/dist/calendar.d.ts +6 -6
- package/dist/calendar.js +138 -17
- package/dist/card.d.ts +14 -16
- package/dist/card.js +59 -145
- package/dist/carousel.d.ts +34 -35
- package/dist/carousel.js +335 -20
- package/dist/chart.d.ts +90 -63
- package/dist/chart.js +573 -28
- package/dist/checkbox.d.ts +10 -12
- package/dist/checkbox.js +82 -47
- package/dist/cn-BI_4DMBf.js +23 -0
- package/dist/collapsible.d.ts +7 -8
- package/dist/collapsible.js +22 -47
- package/dist/combobox.d.ts +10 -10
- package/dist/combobox.js +236 -44
- package/dist/cta.d.ts +12 -14
- package/dist/cta.js +175 -341
- package/dist/currency-selector.d.ts +31 -32
- package/dist/currency-selector.js +106 -184
- package/dist/data-table.d.ts +168 -0
- package/dist/data-table.js +676 -0
- package/dist/date-picker.d.ts +22 -23
- package/dist/date-picker.js +119 -192
- package/dist/details-card.d.ts +7 -7
- package/dist/details-card.js +104 -253
- package/dist/dialog.d.ts +13 -14
- package/dist/dialog.js +116 -209
- package/dist/dropdown-menu.d.ts +13 -13
- package/dist/dropdown-menu.js +180 -37
- package/dist/dropzone.d.ts +55 -55
- package/dist/dropzone.js +327 -439
- package/dist/editorial-card.d.ts +23 -25
- package/dist/editorial-card.js +129 -296
- package/dist/empty-state.d.ts +8 -9
- package/dist/empty-state.js +48 -105
- package/dist/field.d.ts +23 -25
- package/dist/field.js +110 -221
- package/dist/filter.d.ts +118 -0
- package/dist/filter.js +775 -0
- package/dist/footer.d.ts +8 -15
- package/dist/footer.js +197 -400
- package/dist/funnel-chart.d.ts +49 -48
- package/dist/funnel-chart.js +170 -189
- package/dist/gallery-indicator.d.ts +11 -12
- package/dist/gallery-indicator.js +75 -12
- package/dist/heatmap-chart.d.ts +47 -50
- package/dist/heatmap-chart.js +186 -237
- package/dist/infotip.d.ts +8 -9
- package/dist/infotip.js +33 -59
- package/dist/input-CfoEJ8A6.d.ts +12 -0
- package/dist/input-group.d.ts +16 -20
- package/dist/input-group.js +99 -23
- 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 +17 -9
- package/dist/input.d.ts +2 -13
- package/dist/input.js +27 -11
- package/dist/item.d.ts +7 -8
- package/dist/item.js +22 -59
- package/dist/kpi-card.d.ts +18 -20
- package/dist/kpi-card.js +84 -192
- package/dist/label.d.ts +6 -6
- package/dist/label.js +40 -8
- package/dist/line-chart.d.ts +200 -129
- package/dist/line-chart.js +330 -105
- package/dist/list-item.d.ts +22 -0
- package/dist/list-item.js +84 -0
- package/dist/logo.d.ts +4 -4
- package/dist/logo.js +92 -9
- package/dist/map-indicator.d.ts +7 -7
- package/dist/map-indicator.js +80 -106
- package/dist/match.d.ts +10 -11
- package/dist/match.js +62 -107
- package/dist/media-gallery-hero.d.ts +40 -42
- package/dist/media-gallery-hero.js +182 -343
- package/dist/media-player.d.ts +17 -17
- package/dist/media-player.js +873 -1348
- 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 +64 -117
- package/dist/page-header.d.ts +10 -11
- package/dist/page-header.js +34 -79
- package/dist/pagination.d.ts +17 -21
- package/dist/pagination.js +132 -207
- package/dist/password-input.d.ts +5 -13
- package/dist/password-input.js +31 -55
- package/dist/phone-input.d.ts +19 -20
- package/dist/phone-input.js +226 -344
- package/dist/photo-gallery.d.ts +19 -19
- package/dist/photo-gallery.js +313 -449
- package/dist/picker-lzgmsNfG.js +32 -0
- package/dist/pie-chart.d.ts +121 -90
- package/dist/pie-chart.js +183 -149
- package/dist/popover.d.ts +9 -9
- package/dist/popover.js +72 -23
- package/dist/price-tag.d.ts +26 -27
- package/dist/price-tag.js +113 -173
- package/dist/progress.d.ts +16 -17
- package/dist/progress.js +169 -24
- package/dist/property-listing-card.d.ts +14 -17
- package/dist/property-listing-card.js +102 -220
- package/dist/purchase-option-card.d.ts +79 -0
- package/dist/purchase-option-card.js +176 -0
- package/dist/radar-chart.d.ts +29 -31
- package/dist/radar-chart.js +162 -137
- package/dist/radio-group.d.ts +11 -13
- package/dist/radio-group.js +46 -60
- package/dist/review-block.d.ts +14 -16
- package/dist/review-block.js +154 -10
- package/dist/rich-text-editor.d.ts +30 -14
- package/dist/rich-text-editor.js +592 -716
- package/dist/scatter-chart.d.ts +45 -47
- package/dist/scatter-chart.js +236 -240
- package/dist/search-input.d.ts +8 -16
- package/dist/search-input.js +57 -109
- package/dist/select.d.ts +8 -8
- package/dist/select.js +144 -27
- package/dist/separator.d.ts +8 -9
- package/dist/separator.js +32 -8
- package/dist/sheet.d.ts +11 -11
- package/dist/sheet.js +103 -24
- package/dist/sidebar.d.ts +32 -37
- package/dist/sidebar.js +364 -634
- package/dist/size-context-D4mYvcg8.d.ts +10 -0
- package/dist/size-context.d.ts +2 -11
- package/dist/size-context.js +17 -9
- package/dist/skeleton.d.ts +4 -5
- package/dist/skeleton.js +12 -8
- package/dist/slider.d.ts +8 -9
- package/dist/slider.js +64 -135
- package/dist/sparkline.d.ts +68 -58
- package/dist/sparkline.js +315 -251
- package/dist/stepper.d.ts +23 -24
- package/dist/stepper.js +149 -246
- package/dist/styles.css +1004 -116
- package/dist/switch.d.ts +10 -12
- package/dist/switch.js +48 -70
- 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 +117 -154
- package/dist/tabs.d.ts +33 -15
- package/dist/tabs.js +110 -18
- package/dist/tag.d.ts +21 -23
- package/dist/tag.js +103 -159
- package/dist/testimonial-block.d.ts +18 -19
- package/dist/testimonial-block.js +189 -358
- package/dist/textarea-IS_D8pXf.d.ts +11 -0
- package/dist/textarea.d.ts +2 -12
- package/dist/textarea.js +24 -11
- package/dist/time-picker.d.ts +11 -11
- package/dist/time-picker.js +245 -302
- package/dist/toast.d.ts +16 -18
- package/dist/toast.js +154 -205
- package/dist/tooltip.d.ts +8 -9
- package/dist/tooltip.js +37 -12
- package/dist/tree-map.d.ts +59 -62
- package/dist/tree-map.js +226 -269
- package/dist/use-uncontrolled-CLfM1XbB.js +21 -0
- package/dist/waterfall-chart.d.ts +94 -97
- package/dist/waterfall-chart.js +455 -552
- package/package.json +36 -9
- package/dist/accordion.js.map +0 -1
- package/dist/activity-timeline.js.map +0 -1
- package/dist/alert.js.map +0 -1
- package/dist/auth-layout.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/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/chunk-322YCNVL.js +0 -278
- package/dist/chunk-322YCNVL.js.map +0 -1
- package/dist/chunk-3ACQVT7A.js +0 -25
- package/dist/chunk-3ACQVT7A.js.map +0 -1
- package/dist/chunk-3T65TLJX.js +0 -334
- package/dist/chunk-3T65TLJX.js.map +0 -1
- package/dist/chunk-6ZSGQHH2.js +0 -192
- package/dist/chunk-6ZSGQHH2.js.map +0 -1
- package/dist/chunk-7TBMLFGW.js +0 -41
- package/dist/chunk-7TBMLFGW.js.map +0 -1
- package/dist/chunk-B4H6RNDH.js +0 -135
- package/dist/chunk-B4H6RNDH.js.map +0 -1
- package/dist/chunk-BUXCGZ6X.js +0 -219
- package/dist/chunk-BUXCGZ6X.js.map +0 -1
- package/dist/chunk-CHII2QHH.js +0 -58
- package/dist/chunk-CHII2QHH.js.map +0 -1
- package/dist/chunk-DMNOXRRW.js +0 -147
- package/dist/chunk-DMNOXRRW.js.map +0 -1
- package/dist/chunk-EFSOSSIC.js +0 -130
- package/dist/chunk-EFSOSSIC.js.map +0 -1
- package/dist/chunk-FZDSVMKY.js +0 -363
- package/dist/chunk-FZDSVMKY.js.map +0 -1
- package/dist/chunk-GJOFIJS3.js +0 -246
- package/dist/chunk-GJOFIJS3.js.map +0 -1
- package/dist/chunk-HL3ZSYES.js +0 -23
- package/dist/chunk-HL3ZSYES.js.map +0 -1
- package/dist/chunk-JVLUBAPB.js +0 -129
- package/dist/chunk-JVLUBAPB.js.map +0 -1
- package/dist/chunk-KDPYSOYZ.js +0 -64
- package/dist/chunk-KDPYSOYZ.js.map +0 -1
- package/dist/chunk-KSMDANKI.js +0 -43
- package/dist/chunk-KSMDANKI.js.map +0 -1
- package/dist/chunk-MEKCCOP5.js +0 -46
- package/dist/chunk-MEKCCOP5.js.map +0 -1
- package/dist/chunk-NOFXVRWL.js +0 -451
- package/dist/chunk-NOFXVRWL.js.map +0 -1
- package/dist/chunk-PC5MHNVA.js +0 -171
- package/dist/chunk-PC5MHNVA.js.map +0 -1
- package/dist/chunk-QKAQZ2GU.js +0 -122
- package/dist/chunk-QKAQZ2GU.js.map +0 -1
- package/dist/chunk-QZHSHSVV.js +0 -26
- package/dist/chunk-QZHSHSVV.js.map +0 -1
- package/dist/chunk-RBMK26XD.js +0 -19
- package/dist/chunk-RBMK26XD.js.map +0 -1
- package/dist/chunk-SFNJGF6M.js +0 -262
- package/dist/chunk-SFNJGF6M.js.map +0 -1
- package/dist/chunk-UJJNLGTM.js +0 -112
- package/dist/chunk-UJJNLGTM.js.map +0 -1
- package/dist/chunk-VGR4ZWJ3.js +0 -418
- package/dist/chunk-VGR4ZWJ3.js.map +0 -1
- package/dist/chunk-XG47P6D4.js +0 -99
- package/dist/chunk-XG47P6D4.js.map +0 -1
- package/dist/chunk-XZZAHNVM.js +0 -21
- package/dist/chunk-XZZAHNVM.js.map +0 -1
- package/dist/chunk-Y4TTYVNE.js +0 -36
- package/dist/chunk-Y4TTYVNE.js.map +0 -1
- package/dist/chunk-YDWIHW6Q.js +0 -69
- package/dist/chunk-YDWIHW6Q.js.map +0 -1
- package/dist/collapsible.js.map +0 -1
- package/dist/combobox.js.map +0 -1
- package/dist/cta.js.map +0 -1
- package/dist/currency-selector.js.map +0 -1
- package/dist/date-picker.js.map +0 -1
- package/dist/details-card.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/editorial-card.js.map +0 -1
- package/dist/empty-state.js.map +0 -1
- package/dist/field.js.map +0 -1
- package/dist/footer.js.map +0 -1
- package/dist/funnel-chart.js.map +0 -1
- package/dist/gallery-indicator.js.map +0 -1
- package/dist/heatmap-chart.js.map +0 -1
- package/dist/infotip.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/map-indicator.js.map +0 -1
- package/dist/match.js.map +0 -1
- package/dist/media-gallery-hero.js.map +0 -1
- package/dist/media-player.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/price-tag.js.map +0 -1
- package/dist/progress.js.map +0 -1
- package/dist/property-listing-card.js.map +0 -1
- package/dist/radar-chart.js.map +0 -1
- package/dist/radio-group.js.map +0 -1
- package/dist/review-block.js.map +0 -1
- package/dist/rich-text-editor.js.map +0 -1
- package/dist/scatter-chart.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/slider.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 -123
- 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/testimonial-block.js.map +0 -1
- package/dist/textarea.js.map +0 -1
- 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
- package/dist/waterfall-chart.js.map +0 -1
package/dist/progress.js
CHANGED
|
@@ -1,26 +1,171 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
2
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
+
import { SizeProvider, useComponentSize } from "./size-context.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { Progress as Progress$1 } from "@base-ui/react/progress";
|
|
8
|
+
//#region src/progress.tsx
|
|
9
|
+
const progressVariants = cva("group/progress flex w-full flex-wrap items-center", {
|
|
10
|
+
variants: { size: {
|
|
11
|
+
sm: "gap-x-2 gap-y-1.5",
|
|
12
|
+
md: "gap-x-3 gap-y-2",
|
|
13
|
+
lg: "gap-x-4 gap-y-2.5"
|
|
14
|
+
} },
|
|
15
|
+
defaultVariants: { size: "md" }
|
|
16
|
+
});
|
|
17
|
+
const circularProgressVariants = cva("relative grid place-items-center text-fg-on-brand", {
|
|
18
|
+
variants: { size: {
|
|
19
|
+
sm: "text-[9px]",
|
|
20
|
+
md: "text-[10px]",
|
|
21
|
+
lg: "text-gdt-xs"
|
|
22
|
+
} },
|
|
23
|
+
defaultVariants: { size: "md" }
|
|
24
|
+
});
|
|
25
|
+
const circularProgressLabelVariants = cva("relative z-10 font-medium tabular-nums leading-none", {
|
|
26
|
+
variants: {
|
|
27
|
+
size: {
|
|
28
|
+
sm: "text-[9px]",
|
|
29
|
+
md: "text-[10px]",
|
|
30
|
+
lg: "text-gdt-xs"
|
|
31
|
+
},
|
|
32
|
+
overlay: {
|
|
33
|
+
true: "grid place-items-center rounded-full bg-black/65 text-white shadow-sm backdrop-blur-[1px]",
|
|
34
|
+
false: ""
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
size: "md",
|
|
39
|
+
overlay: false
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const circularProgressSizes = {
|
|
43
|
+
sm: {
|
|
44
|
+
pixelSize: 40,
|
|
45
|
+
strokeWidth: 3
|
|
46
|
+
},
|
|
47
|
+
md: {
|
|
48
|
+
pixelSize: 48,
|
|
49
|
+
strokeWidth: 4
|
|
50
|
+
},
|
|
51
|
+
lg: {
|
|
52
|
+
pixelSize: 56,
|
|
53
|
+
strokeWidth: 5
|
|
54
|
+
}
|
|
25
55
|
};
|
|
26
|
-
|
|
56
|
+
function Progress({ className, children, value, size, disabled = false, ...props }) {
|
|
57
|
+
const resolvedSize = useComponentSize(size);
|
|
58
|
+
const hasCustomTrack = React.Children.toArray(children).some((child) => React.isValidElement(child) && child.type === ProgressTrack);
|
|
59
|
+
return /* @__PURE__ */ jsx(SizeProvider, {
|
|
60
|
+
size: resolvedSize,
|
|
61
|
+
children: /* @__PURE__ */ jsxs(Progress$1.Root, {
|
|
62
|
+
value,
|
|
63
|
+
"aria-disabled": disabled || void 0,
|
|
64
|
+
"data-disabled": disabled,
|
|
65
|
+
"data-size": resolvedSize,
|
|
66
|
+
"data-slot": "progress",
|
|
67
|
+
className: cn(progressVariants({ size: resolvedSize }), className),
|
|
68
|
+
...props,
|
|
69
|
+
children: [children, !hasCustomTrack && /* @__PURE__ */ jsx(ProgressTrack, { children: /* @__PURE__ */ jsx(ProgressIndicator, {}) })]
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function ProgressTrack({ className, ...props }) {
|
|
74
|
+
return /* @__PURE__ */ jsx(Progress$1.Track, {
|
|
75
|
+
className: cn("order-3 relative flex basis-full items-center overflow-hidden rounded-full bg-surface-raised", "group-data-[size=sm]/progress:h-1 group-data-[size=md]/progress:h-1.5 group-data-[size=lg]/progress:h-2", className),
|
|
76
|
+
"data-slot": "progress-track",
|
|
77
|
+
...props
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function ProgressIndicator({ className, ...props }) {
|
|
81
|
+
return /* @__PURE__ */ jsx(Progress$1.Indicator, {
|
|
82
|
+
"data-slot": "progress-indicator",
|
|
83
|
+
className: cn("h-full rounded-full bg-action-primary transition-[width,transform,background-color] duration-300 ease-out group-data-[disabled=true]/progress:bg-line-strong", className),
|
|
84
|
+
...props
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function ProgressLabel({ className, ...props }) {
|
|
88
|
+
return /* @__PURE__ */ jsx(Progress$1.Label, {
|
|
89
|
+
className: cn("order-1 min-w-0 text-fg-primary font-semibold leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder", "group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md", className),
|
|
90
|
+
"data-slot": "progress-label",
|
|
91
|
+
...props
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function ProgressValue({ className, ...props }) {
|
|
95
|
+
return /* @__PURE__ */ jsx(Progress$1.Value, {
|
|
96
|
+
className: cn("order-2 ml-auto shrink-0 tabular-nums text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder", "group-data-[size=sm]/progress:text-gdt-xs group-data-[size=md]/progress:text-gdt-sm group-data-[size=lg]/progress:text-gdt-md", className),
|
|
97
|
+
"data-slot": "progress-value",
|
|
98
|
+
...props
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function ProgressCaption({ className, ...props }) {
|
|
102
|
+
return /* @__PURE__ */ jsx("p", {
|
|
103
|
+
className: cn("order-4 basis-full text-fg-secondary leading-snug group-data-[disabled=true]/progress:text-fg-caption-placeholder", "group-data-[size=sm]/progress:text-gdt-subtext group-data-[size=md]/progress:text-gdt-xs group-data-[size=lg]/progress:text-gdt-sm", className),
|
|
104
|
+
"data-slot": "progress-caption",
|
|
105
|
+
...props
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function CircularProgress({ className, style, value, size, children, labelOverlay = false, pixelSize, strokeWidth, strokeLinecap = "round", ...props }) {
|
|
109
|
+
const resolvedSize = useComponentSize(size);
|
|
110
|
+
const progress = Math.min(100, Math.max(0, Math.round(Number.isFinite(value) ? value : 0)));
|
|
111
|
+
const resolvedDimensions = circularProgressSizes[resolvedSize];
|
|
112
|
+
const resolvedPixelSize = pixelSize ?? resolvedDimensions.pixelSize;
|
|
113
|
+
const resolvedStrokeWidth = strokeWidth ?? resolvedDimensions.strokeWidth;
|
|
114
|
+
const radius = (resolvedPixelSize - resolvedStrokeWidth) / 2;
|
|
115
|
+
const labelSize = resolvedPixelSize - resolvedStrokeWidth * 3;
|
|
116
|
+
const circumference = 2 * Math.PI * radius;
|
|
117
|
+
const strokeDashoffset = circumference - progress / 100 * circumference;
|
|
118
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
119
|
+
role: "progressbar",
|
|
120
|
+
"aria-valuemin": 0,
|
|
121
|
+
"aria-valuemax": 100,
|
|
122
|
+
"aria-valuenow": progress,
|
|
123
|
+
"aria-valuetext": `${progress}%`,
|
|
124
|
+
"data-slot": "circular-progress",
|
|
125
|
+
className: cn(circularProgressVariants({ size: resolvedSize }), className),
|
|
126
|
+
style: {
|
|
127
|
+
width: resolvedPixelSize,
|
|
128
|
+
height: resolvedPixelSize,
|
|
129
|
+
...style
|
|
130
|
+
},
|
|
131
|
+
...props,
|
|
132
|
+
children: [/* @__PURE__ */ jsxs("svg", {
|
|
133
|
+
"aria-hidden": "true",
|
|
134
|
+
className: "absolute inset-0 -rotate-90 transform",
|
|
135
|
+
focusable: "false",
|
|
136
|
+
width: resolvedPixelSize,
|
|
137
|
+
height: resolvedPixelSize,
|
|
138
|
+
viewBox: `0 0 ${resolvedPixelSize} ${resolvedPixelSize}`,
|
|
139
|
+
fill: "none",
|
|
140
|
+
stroke: "currentColor",
|
|
141
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
142
|
+
className: "text-line",
|
|
143
|
+
strokeWidth: resolvedStrokeWidth,
|
|
144
|
+
cx: resolvedPixelSize / 2,
|
|
145
|
+
cy: resolvedPixelSize / 2,
|
|
146
|
+
r: radius
|
|
147
|
+
}), /* @__PURE__ */ jsx("circle", {
|
|
148
|
+
className: "text-action-primary transition-[stroke-dashoffset] duration-300 ease-linear",
|
|
149
|
+
strokeWidth: resolvedStrokeWidth,
|
|
150
|
+
strokeLinecap,
|
|
151
|
+
strokeDasharray: circumference,
|
|
152
|
+
strokeDashoffset,
|
|
153
|
+
cx: resolvedPixelSize / 2,
|
|
154
|
+
cy: resolvedPixelSize / 2,
|
|
155
|
+
r: radius
|
|
156
|
+
})]
|
|
157
|
+
}), children ?? /* @__PURE__ */ jsxs("span", {
|
|
158
|
+
className: cn(circularProgressLabelVariants({
|
|
159
|
+
size: resolvedSize,
|
|
160
|
+
overlay: labelOverlay
|
|
161
|
+
})),
|
|
162
|
+
style: labelOverlay ? {
|
|
163
|
+
width: labelSize,
|
|
164
|
+
height: labelSize
|
|
165
|
+
} : void 0,
|
|
166
|
+
children: [progress, "%"]
|
|
167
|
+
})]
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
//#endregion
|
|
171
|
+
export { CircularProgress, Progress, ProgressCaption, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, circularProgressVariants, progressVariants };
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useRender } from
|
|
3
|
-
import { VariantProps } from
|
|
4
|
-
import * as React from
|
|
5
|
-
|
|
6
|
-
import '@base-ui/react/button';
|
|
7
|
-
|
|
1
|
+
import { n as ButtonLink, t as Button } from "./button-BZIeyUw6.js";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
|
+
import { VariantProps } from "class-variance-authority";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
//#region src/property-listing-card.d.ts
|
|
8
6
|
declare const propertyListingCardVariants: (props?: ({
|
|
9
|
-
|
|
10
|
-
} &
|
|
7
|
+
variant?: "default" | "elevated" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
9
|
type PropertyListingImage = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
id?: string;
|
|
11
|
+
src?: string;
|
|
12
|
+
alt?: string;
|
|
15
13
|
};
|
|
16
|
-
interface PropertyListingCardProps extends React.ComponentProps<"article">, VariantProps<typeof propertyListingCardVariants> {
|
|
17
|
-
}
|
|
14
|
+
interface PropertyListingCardProps extends React.ComponentProps<"article">, VariantProps<typeof propertyListingCardVariants> {}
|
|
18
15
|
declare function PropertyListingCard({ className, variant, ...props }: PropertyListingCardProps): React.JSX.Element;
|
|
19
16
|
declare function PropertyListingCardMedia({ className, images, children, ...props }: React.ComponentProps<"div"> & {
|
|
20
|
-
|
|
17
|
+
images?: PropertyListingImage[];
|
|
21
18
|
}): React.JSX.Element;
|
|
22
19
|
declare function PropertyListingCardMediaTop({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
23
20
|
declare function PropertyListingCardOptionsBar({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
@@ -28,5 +25,5 @@ declare function PropertyListingCardBadges({ className, ...props }: React.Compon
|
|
|
28
25
|
declare function PropertyListingCardActions({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
29
26
|
declare function PropertyListingCardActionButton({ className, type, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
30
27
|
declare function PropertyListingCardActionButtonLink({ className, ...props }: React.ComponentProps<typeof ButtonLink>): React.JSX.Element;
|
|
31
|
-
|
|
32
|
-
export { PropertyListingCard, PropertyListingCardActionButton, PropertyListingCardActionButtonLink, PropertyListingCardActions, PropertyListingCardBadges, PropertyListingCardDetails, PropertyListingCardMedia, PropertyListingCardMediaTop, PropertyListingCardOptionsBar, PropertyListingCardOverview, type PropertyListingCardProps, PropertyListingCardTitle, type PropertyListingImage, propertyListingCardVariants };
|
|
28
|
+
//#endregion
|
|
29
|
+
export { PropertyListingCard, PropertyListingCardActionButton, PropertyListingCardActionButtonLink, PropertyListingCardActions, PropertyListingCardBadges, PropertyListingCardDetails, PropertyListingCardMedia, PropertyListingCardMediaTop, PropertyListingCardOptionsBar, PropertyListingCardOverview, type PropertyListingCardProps, PropertyListingCardTitle, type PropertyListingImage, propertyListingCardVariants };
|
|
@@ -1,235 +1,117 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "
|
|
5
|
-
import {
|
|
6
|
-
Carousel,
|
|
7
|
-
CarouselContent,
|
|
8
|
-
CarouselIndicator,
|
|
9
|
-
CarouselItem
|
|
10
|
-
} from "./chunk-FZDSVMKY.js";
|
|
11
|
-
import "./chunk-HL3ZSYES.js";
|
|
12
|
-
import {
|
|
13
|
-
cn
|
|
14
|
-
} from "./chunk-Y4TTYVNE.js";
|
|
15
|
-
|
|
16
|
-
// src/property-listing-card.tsx
|
|
1
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
2
|
+
import { Button, ButtonLink } from "./button.js";
|
|
3
|
+
import { Carousel, CarouselContent, CarouselIndicator, CarouselItem } from "./carousel.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
5
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
18
6
|
import { useRender } from "@base-ui/react/use-render";
|
|
19
7
|
import { cva } from "class-variance-authority";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
function PropertyListingCard({
|
|
36
|
-
className,
|
|
37
|
-
variant,
|
|
38
|
-
...props
|
|
39
|
-
}) {
|
|
40
|
-
return /* @__PURE__ */ jsx(
|
|
41
|
-
"article",
|
|
42
|
-
{
|
|
43
|
-
className: cn(propertyListingCardVariants({ variant }), className),
|
|
44
|
-
...props
|
|
45
|
-
}
|
|
46
|
-
);
|
|
8
|
+
//#region src/property-listing-card.tsx
|
|
9
|
+
const propertyListingCardVariants = cva("relative flex w-full min-w-0 flex-col overflow-hidden text-fg-primary", {
|
|
10
|
+
variants: { variant: {
|
|
11
|
+
default: "rounded-none border-0 shadow-none",
|
|
12
|
+
elevated: "rounded-2xl bg-surface-overlay border border-line-subtle shadow-1"
|
|
13
|
+
} },
|
|
14
|
+
defaultVariants: { variant: "default" }
|
|
15
|
+
});
|
|
16
|
+
function PropertyListingCard({ className, variant, ...props }) {
|
|
17
|
+
return /* @__PURE__ */ jsx("article", {
|
|
18
|
+
className: cn(propertyListingCardVariants({ variant }), className),
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
47
21
|
}
|
|
48
|
-
function PropertyListingCardMedia({
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
CarouselItem,
|
|
73
|
-
{
|
|
74
|
-
className: "relative h-full",
|
|
75
|
-
children: /* @__PURE__ */ jsx(PropertyListingCardImage, { image: carouselImage })
|
|
76
|
-
},
|
|
77
|
-
carouselImage.id ?? carouselImage.src ?? carouselImage.alt ?? index
|
|
78
|
-
)) }),
|
|
79
|
-
/* @__PURE__ */ jsx(CarouselIndicator, { size: "sm", className: "bottom-16" })
|
|
80
|
-
]
|
|
81
|
-
}
|
|
82
|
-
) : images[0]?.src ? /* @__PURE__ */ jsx(
|
|
83
|
-
PropertyListingCardImage,
|
|
84
|
-
{
|
|
85
|
-
image: images[0],
|
|
86
|
-
className: "absolute inset-0 -z-10"
|
|
87
|
-
}
|
|
88
|
-
) : /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -z-10 grid place-items-center bg-surface-raised text-gdt-sm font-bold text-fg-caption-placeholder", children: "Property Image" }),
|
|
89
|
-
children
|
|
90
|
-
]
|
|
91
|
-
}
|
|
92
|
-
);
|
|
22
|
+
function PropertyListingCardMedia({ className, images = [], children, ...props }) {
|
|
23
|
+
const hasMultipleImages = images.length > 1;
|
|
24
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
25
|
+
className: cn("relative isolate min-h-70 overflow-hidden rounded-t-2xl bg-surface text-fg-primary", className),
|
|
26
|
+
...props,
|
|
27
|
+
children: [hasMultipleImages ? /* @__PURE__ */ jsxs(Carousel, {
|
|
28
|
+
imageSize: "full",
|
|
29
|
+
opts: { loop: true },
|
|
30
|
+
className: "absolute inset-0 -z-10 size-full rounded-none bg-surface",
|
|
31
|
+
children: [/* @__PURE__ */ jsx(CarouselContent, { children: images.map((carouselImage, index) => /* @__PURE__ */ jsx(CarouselItem, {
|
|
32
|
+
className: "relative h-full",
|
|
33
|
+
children: /* @__PURE__ */ jsx(PropertyListingCardImage, { image: carouselImage })
|
|
34
|
+
}, carouselImage.id ?? carouselImage.src ?? carouselImage.alt ?? index)) }), /* @__PURE__ */ jsx(CarouselIndicator, {
|
|
35
|
+
size: "sm",
|
|
36
|
+
className: "bottom-16"
|
|
37
|
+
})]
|
|
38
|
+
}) : images[0]?.src ? /* @__PURE__ */ jsx(PropertyListingCardImage, {
|
|
39
|
+
image: images[0],
|
|
40
|
+
className: "absolute inset-0 -z-10"
|
|
41
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
42
|
+
className: "absolute inset-0 -z-10 grid place-items-center bg-surface-raised text-gdt-sm font-bold text-fg-caption-placeholder",
|
|
43
|
+
children: "Property Image"
|
|
44
|
+
}), children]
|
|
45
|
+
});
|
|
93
46
|
}
|
|
94
|
-
function PropertyListingCardImage({
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
{
|
|
102
|
-
src: image.src,
|
|
103
|
-
alt: image.alt ?? "Property image",
|
|
104
|
-
className: cn("size-full object-cover", className),
|
|
105
|
-
...props
|
|
106
|
-
}
|
|
107
|
-
);
|
|
47
|
+
function PropertyListingCardImage({ image, className, ...props }) {
|
|
48
|
+
return /* @__PURE__ */ jsx("img", {
|
|
49
|
+
src: image.src,
|
|
50
|
+
alt: image.alt ?? "Property image",
|
|
51
|
+
className: cn("size-full object-cover", className),
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
108
54
|
}
|
|
109
|
-
function PropertyListingCardMediaTop({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
"div",
|
|
115
|
-
{
|
|
116
|
-
className: cn(
|
|
117
|
-
"absolute inset-x-2 top-2 z-10 flex items-start justify-between gap-3",
|
|
118
|
-
className
|
|
119
|
-
),
|
|
120
|
-
...props
|
|
121
|
-
}
|
|
122
|
-
);
|
|
55
|
+
function PropertyListingCardMediaTop({ className, ...props }) {
|
|
56
|
+
return /* @__PURE__ */ jsx("div", {
|
|
57
|
+
className: cn("absolute inset-x-2 top-2 z-10 flex items-start justify-between gap-3", className),
|
|
58
|
+
...props
|
|
59
|
+
});
|
|
123
60
|
}
|
|
124
|
-
function PropertyListingCardOptionsBar({
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
props: mergeProps(
|
|
132
|
-
{
|
|
133
|
-
className: cn(
|
|
134
|
-
"absolute inset-x-0 bottom-0 z-10 flex min-h-9.5 items-center justify-center gap-1 bg-black/80 px-4 py-1.5 text-center text-gdt-subtext font-extrabold tracking-wide text-white uppercase transition-[background-color] hover:bg-black/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-line-focus",
|
|
135
|
-
className
|
|
136
|
-
)
|
|
137
|
-
},
|
|
138
|
-
props
|
|
139
|
-
),
|
|
140
|
-
render,
|
|
141
|
-
state: {
|
|
142
|
-
slot: "property-listing-card-options-bar"
|
|
143
|
-
}
|
|
144
|
-
});
|
|
61
|
+
function PropertyListingCardOptionsBar({ className, render, ...props }) {
|
|
62
|
+
return useRender({
|
|
63
|
+
defaultTagName: "a",
|
|
64
|
+
props: mergeProps({ className: cn("absolute inset-x-0 bottom-0 z-10 flex min-h-9.5 items-center justify-center gap-1 bg-black/80 px-4 py-1.5 text-center text-gdt-subtext font-extrabold tracking-wide text-white uppercase transition-[background-color] hover:bg-black/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-line-focus", className) }, props),
|
|
65
|
+
render,
|
|
66
|
+
state: { slot: "property-listing-card-options-bar" }
|
|
67
|
+
});
|
|
145
68
|
}
|
|
146
|
-
function PropertyListingCardDetails({
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
69
|
+
function PropertyListingCardDetails({ className, ...props }) {
|
|
70
|
+
return /* @__PURE__ */ jsx("div", {
|
|
71
|
+
className: cn("flex flex-col gap-4 pt-4", className),
|
|
72
|
+
...props
|
|
73
|
+
});
|
|
151
74
|
}
|
|
152
|
-
function PropertyListingCardTitle({
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
"h3",
|
|
158
|
-
{
|
|
159
|
-
className: cn("text-gdt-md font-bold text-fg-primary", className),
|
|
160
|
-
...props
|
|
161
|
-
}
|
|
162
|
-
);
|
|
75
|
+
function PropertyListingCardTitle({ className, ...props }) {
|
|
76
|
+
return /* @__PURE__ */ jsx("h3", {
|
|
77
|
+
className: cn("text-gdt-md font-bold text-fg-primary", className),
|
|
78
|
+
...props
|
|
79
|
+
});
|
|
163
80
|
}
|
|
164
|
-
function PropertyListingCardOverview({
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
81
|
+
function PropertyListingCardOverview({ className, ...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx("p", {
|
|
83
|
+
className: cn("text-gdt-sm text-fg-secondary", className),
|
|
84
|
+
...props
|
|
85
|
+
});
|
|
169
86
|
}
|
|
170
|
-
function PropertyListingCardBadges({
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
87
|
+
function PropertyListingCardBadges({ className, ...props }) {
|
|
88
|
+
return /* @__PURE__ */ jsx("div", {
|
|
89
|
+
className: cn("flex flex-wrap gap-3", className),
|
|
90
|
+
...props
|
|
91
|
+
});
|
|
175
92
|
}
|
|
176
|
-
function PropertyListingCardActions({
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
"div",
|
|
182
|
-
{
|
|
183
|
-
className: cn(
|
|
184
|
-
"flex items-center gap-5 border-line-subtle border-t pt-4 mt-4",
|
|
185
|
-
className
|
|
186
|
-
),
|
|
187
|
-
...props
|
|
188
|
-
}
|
|
189
|
-
);
|
|
93
|
+
function PropertyListingCardActions({ className, ...props }) {
|
|
94
|
+
return /* @__PURE__ */ jsx("div", {
|
|
95
|
+
className: cn("flex items-center gap-5 border-line-subtle border-t pt-4 mt-4", className),
|
|
96
|
+
...props
|
|
97
|
+
});
|
|
190
98
|
}
|
|
191
|
-
function PropertyListingCardActionButton({
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
type,
|
|
200
|
-
variant: "tertiary",
|
|
201
|
-
size: "md",
|
|
202
|
-
className: cn("flex-1 bg-action-tertiary text-fg-primary", className),
|
|
203
|
-
...props
|
|
204
|
-
}
|
|
205
|
-
);
|
|
99
|
+
function PropertyListingCardActionButton({ className, type = "button", ...props }) {
|
|
100
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
101
|
+
type,
|
|
102
|
+
variant: "tertiary",
|
|
103
|
+
size: "md",
|
|
104
|
+
className: cn("flex-1 bg-action-tertiary text-fg-primary", className),
|
|
105
|
+
...props
|
|
106
|
+
});
|
|
206
107
|
}
|
|
207
|
-
function PropertyListingCardActionButtonLink({
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
variant: "tertiary",
|
|
215
|
-
size: "md",
|
|
216
|
-
className: cn("flex-1 bg-action-tertiary text-fg-primary", className),
|
|
217
|
-
...props
|
|
218
|
-
}
|
|
219
|
-
);
|
|
108
|
+
function PropertyListingCardActionButtonLink({ className, ...props }) {
|
|
109
|
+
return /* @__PURE__ */ jsx(ButtonLink, {
|
|
110
|
+
variant: "tertiary",
|
|
111
|
+
size: "md",
|
|
112
|
+
className: cn("flex-1 bg-action-tertiary text-fg-primary", className),
|
|
113
|
+
...props
|
|
114
|
+
});
|
|
220
115
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
PropertyListingCardActionButton,
|
|
224
|
-
PropertyListingCardActionButtonLink,
|
|
225
|
-
PropertyListingCardActions,
|
|
226
|
-
PropertyListingCardBadges,
|
|
227
|
-
PropertyListingCardDetails,
|
|
228
|
-
PropertyListingCardMedia,
|
|
229
|
-
PropertyListingCardMediaTop,
|
|
230
|
-
PropertyListingCardOptionsBar,
|
|
231
|
-
PropertyListingCardOverview,
|
|
232
|
-
PropertyListingCardTitle,
|
|
233
|
-
propertyListingCardVariants
|
|
234
|
-
};
|
|
235
|
-
//# sourceMappingURL=property-listing-card.js.map
|
|
116
|
+
//#endregion
|
|
117
|
+
export { PropertyListingCard, PropertyListingCardActionButton, PropertyListingCardActionButtonLink, PropertyListingCardActions, PropertyListingCardBadges, PropertyListingCardDetails, PropertyListingCardMedia, PropertyListingCardMediaTop, PropertyListingCardOptionsBar, PropertyListingCardOverview, PropertyListingCardTitle, propertyListingCardVariants };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/purchase-option-card.d.ts
|
|
5
|
+
declare const purchaseOptionCardVariants: (props?: ({
|
|
6
|
+
selected?: boolean | null | undefined;
|
|
7
|
+
disabled?: boolean | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
type PurchaseOptionCardProps = useRender.ComponentProps<"article"> & VariantProps<typeof purchaseOptionCardVariants>;
|
|
10
|
+
/**
|
|
11
|
+
* Root surface for a single purchase / mortgage option. Composable — assemble
|
|
12
|
+
* it from the header, grid, and footer parts so the actions can vary per use.
|
|
13
|
+
*
|
|
14
|
+
* `disabled` is propagated to descendants via a `data-disabled` group flag, so
|
|
15
|
+
* the header/grid text mutes automatically. Footer buttons are supplied by the
|
|
16
|
+
* consumer, so pass `disabled` to them too.
|
|
17
|
+
*
|
|
18
|
+
* <PurchaseOptionCard>
|
|
19
|
+
* <PurchaseOptionCardHeader>
|
|
20
|
+
* <PurchaseOptionCardMeta>
|
|
21
|
+
* <PurchaseOptionCardLabel>Mortgage Plan</PurchaseOptionCardLabel>
|
|
22
|
+
* <Badge variant="default" border={false} shape="round" size="sm">
|
|
23
|
+
* 20% Interest Rate
|
|
24
|
+
* </Badge>
|
|
25
|
+
* </PurchaseOptionCardMeta>
|
|
26
|
+
* <div>
|
|
27
|
+
* <PurchaseOptionCardAmount>₦1,200,000</PurchaseOptionCardAmount>
|
|
28
|
+
* <PurchaseOptionCardCadence>Per Month</PurchaseOptionCardCadence>
|
|
29
|
+
* </div>
|
|
30
|
+
* </PurchaseOptionCardHeader>
|
|
31
|
+
* <PurchaseOptionCardGrid>
|
|
32
|
+
* <PurchaseOptionCardItem label="Initial Deposit">₦5,000,000</PurchaseOptionCardItem>
|
|
33
|
+
* <PurchaseOptionCardItem label="Max Loan Amount">₦80,000,000</PurchaseOptionCardItem>
|
|
34
|
+
* <PurchaseOptionCardItem label="Max Payment Period" wide>20 Years</PurchaseOptionCardItem>
|
|
35
|
+
* </PurchaseOptionCardGrid>
|
|
36
|
+
* <PurchaseOptionCardFooter>
|
|
37
|
+
* <Button variant="primary-outline" size="md" className="flex-1">View Details</Button>
|
|
38
|
+
* <Button variant="primary" size="md" className="flex-1">Apply Now</Button>
|
|
39
|
+
* </PurchaseOptionCardFooter>
|
|
40
|
+
* </PurchaseOptionCard>
|
|
41
|
+
*/
|
|
42
|
+
declare function PurchaseOptionCard({ className, disabled, render, selected, ...props }: PurchaseOptionCardProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
43
|
+
/**
|
|
44
|
+
* Top section wrapper. Stacks the meta row and the headline figure, and draws
|
|
45
|
+
* the divider that separates the header from the grid.
|
|
46
|
+
*/
|
|
47
|
+
declare function PurchaseOptionCardHeader({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
48
|
+
/**
|
|
49
|
+
* Row inside the header that balances the plan label against the interest-rate
|
|
50
|
+
* badge (or any other trailing content).
|
|
51
|
+
*/
|
|
52
|
+
declare function PurchaseOptionCardMeta({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
53
|
+
/** Eyebrow label naming the plan type. */
|
|
54
|
+
declare function PurchaseOptionCardLabel({ className, render, ...props }: useRender.ComponentProps<"span">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
55
|
+
/** Headline figure — the plan's payment amount. */
|
|
56
|
+
declare function PurchaseOptionCardAmount({ className, render, ...props }: useRender.ComponentProps<"h3">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
57
|
+
/** Supporting cadence line beneath the headline figure. */
|
|
58
|
+
declare function PurchaseOptionCardCadence({ className, render, ...props }: useRender.ComponentProps<"p">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
59
|
+
/** Two-column grid holding the option's detail items. */
|
|
60
|
+
declare function PurchaseOptionCardGrid({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
61
|
+
type PurchaseOptionCardItemProps = useRender.ComponentProps<"div"> & {
|
|
62
|
+
/** Caption rendered beneath the value. */
|
|
63
|
+
label: React.ReactNode;
|
|
64
|
+
/** Span both grid columns. */
|
|
65
|
+
wide?: boolean;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* A single labelled detail cell in the grid. The value is passed as `children`,
|
|
69
|
+
* the caption via `label`. Use `wide` to span the full row.
|
|
70
|
+
*/
|
|
71
|
+
declare function PurchaseOptionCardItem({ children, className, label, render, wide, ...props }: PurchaseOptionCardItemProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
72
|
+
/**
|
|
73
|
+
* Action row at the foot of the card. Wraps the consumer-supplied buttons and
|
|
74
|
+
* draws the divider above them. Give each button `className="flex-1"` to share
|
|
75
|
+
* the row evenly.
|
|
76
|
+
*/
|
|
77
|
+
declare function PurchaseOptionCardFooter({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
78
|
+
//#endregion
|
|
79
|
+
export { PurchaseOptionCard, PurchaseOptionCardAmount, PurchaseOptionCardCadence, PurchaseOptionCardFooter, PurchaseOptionCardGrid, PurchaseOptionCardHeader, PurchaseOptionCardItem, type PurchaseOptionCardItemProps, PurchaseOptionCardLabel, PurchaseOptionCardMeta, type PurchaseOptionCardProps, purchaseOptionCardVariants };
|