@giddaa-housing/ui 1.0.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/css/generated/shared.css +1 -1
- 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 +33 -33
- package/dist/bullet-chart.js +121 -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 +58 -59
- package/dist/chart.js +376 -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 +164 -0
- package/dist/data-table.js +673 -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 +38 -41
- package/dist/funnel-chart.js +167 -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 +88 -89
- package/dist/line-chart.js +142 -104
- 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 +61 -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 +60 -60
- package/dist/pie-chart.js +140 -148
- 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/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 +43 -46
- package/dist/sparkline.js +221 -251
- package/dist/stepper.d.ts +23 -24
- package/dist/stepper.js +149 -246
- package/dist/styles.css +510 -108
- 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 +113 -154
- package/dist/tabs.d.ts +23 -15
- package/dist/tabs.js +71 -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 +54 -57
- package/dist/tree-map.js +227 -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 +28 -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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
2
|
+
import { Button } from "./button.js";
|
|
3
|
+
import { PopoverTrigger } from "./popover.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/lib/picker.tsx
|
|
6
|
+
function PickerTrigger({ icon: Icon, displayValue, placeholder, disabled, open, className }) {
|
|
7
|
+
return /* @__PURE__ */ jsxs(PopoverTrigger, {
|
|
8
|
+
disabled,
|
|
9
|
+
className: cn("flex h-10 w-full items-center justify-between rounded-full border px-3.5 text-gdt-sm transition-[border-color,box-shadow] outline-none", disabled ? "cursor-not-allowed border-line-subtle bg-surface text-fg-caption-placeholder" : open ? "border-line-focus bg-canvas text-fg-primary inset-ring-1 inset-ring-line-focus" : "border-line bg-canvas text-fg-primary hover:border-line-strong", className),
|
|
10
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
11
|
+
className: cn("min-w-0 truncate", !displayValue && "text-fg-caption-placeholder"),
|
|
12
|
+
children: displayValue || placeholder
|
|
13
|
+
}), /* @__PURE__ */ jsx(Icon, { className: cn("ml-2 size-4 shrink-0", disabled ? "text-fg-caption-placeholder" : "text-fg-secondary") })]
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function PickerFooter({ secondaryLabel, onSecondary, onApply }) {
|
|
17
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
18
|
+
className: "flex w-full items-center justify-between border-t border-line-subtle px-4 py-3",
|
|
19
|
+
children: [/* @__PURE__ */ jsx(Button, {
|
|
20
|
+
variant: "tertiary-outline",
|
|
21
|
+
size: "sm",
|
|
22
|
+
onClick: onSecondary,
|
|
23
|
+
children: secondaryLabel
|
|
24
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
25
|
+
size: "sm",
|
|
26
|
+
onClick: onApply,
|
|
27
|
+
children: "Apply"
|
|
28
|
+
})]
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { PickerTrigger as n, PickerFooter as t };
|
package/dist/pie-chart.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { t as ComponentSize } from "./size-context-D4mYvcg8.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/pie-chart.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Pie / donut charts are composed from recharts plot primitives directly —
|
|
6
6
|
* recharts identifies `PieChart`, `Pie`, and `Cell` by component identity, so
|
|
@@ -31,20 +31,20 @@ import { ComponentSize } from './size-context.js';
|
|
|
31
31
|
/** Pie sizes line up with the three shared `ComponentSize` values. */
|
|
32
32
|
type PieChartSize = ComponentSize;
|
|
33
33
|
type PieChartLayout = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
/** Square plot box in px (width = height); width is NOT parent-driven here. */
|
|
35
|
+
size: number;
|
|
36
|
+
/** Donut hole radius in px. Pass `0` to the `Pie` for a filled pie. */
|
|
37
|
+
innerRadius: number;
|
|
38
|
+
/** Outer ring radius in px. */
|
|
39
|
+
outerRadius: number;
|
|
40
|
+
/** Gap between segments, in degrees. */
|
|
41
|
+
paddingAngle: number;
|
|
42
|
+
/** Corner radius of each segment. */
|
|
43
|
+
cornerRadius: number;
|
|
44
|
+
/** Center total font size. */
|
|
45
|
+
totalFontSize: number;
|
|
46
|
+
/** Center caption font size. */
|
|
47
|
+
captionFontSize: number;
|
|
48
48
|
};
|
|
49
49
|
declare const PIE_CHART_LAYOUT: Record<PieChartSize, PieChartLayout>;
|
|
50
50
|
/**
|
|
@@ -60,28 +60,28 @@ declare const PIE_CHART_PALETTE: readonly ["var(--color-forest-700)", "var(--col
|
|
|
60
60
|
* onto `Pie`, then pass the data-specific props (`data`, `dataKey`, `nameKey`)
|
|
61
61
|
* directly afterwards. `type="pie"` collapses the donut hole (`innerRadius` 0).
|
|
62
62
|
*/
|
|
63
|
-
declare function usePieChartLayout({ size, type
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
declare function usePieChartLayout({ size, type }?: {
|
|
64
|
+
size?: PieChartSize;
|
|
65
|
+
type?: "donut" | "pie";
|
|
66
66
|
}): {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
pie: {
|
|
75
|
-
innerRadius: number;
|
|
76
|
-
outerRadius: number;
|
|
77
|
-
paddingAngle: number;
|
|
78
|
-
cornerRadius: number;
|
|
79
|
-
strokeWidth: number;
|
|
80
|
-
};
|
|
81
|
-
label: {
|
|
82
|
-
totalFontSize: number;
|
|
83
|
-
captionFontSize: number;
|
|
67
|
+
container: {
|
|
68
|
+
className: string;
|
|
69
|
+
style: {
|
|
70
|
+
width: number;
|
|
71
|
+
height: number;
|
|
84
72
|
};
|
|
73
|
+
};
|
|
74
|
+
pie: {
|
|
75
|
+
innerRadius: number;
|
|
76
|
+
outerRadius: number;
|
|
77
|
+
paddingAngle: number;
|
|
78
|
+
cornerRadius: number;
|
|
79
|
+
strokeWidth: number;
|
|
80
|
+
};
|
|
81
|
+
label: {
|
|
82
|
+
totalFontSize: number;
|
|
83
|
+
captionFontSize: number;
|
|
84
|
+
};
|
|
85
85
|
};
|
|
86
86
|
/**
|
|
87
87
|
* Center label for a donut — the hero total over a short caption. Pass it to
|
|
@@ -89,18 +89,18 @@ declare function usePieChartLayout({ size, type, }?: {
|
|
|
89
89
|
* the `Pie`; recharts injects the `viewBox` carrying the polar center (cx/cy).
|
|
90
90
|
*/
|
|
91
91
|
type PieCenterLabelProps = {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
92
|
+
/** Hero figure — pre-formatted, e.g. "₦1.1M". */
|
|
93
|
+
total: React.ReactNode;
|
|
94
|
+
/** Short label describing what the total represents, e.g. "Total spend". */
|
|
95
|
+
caption?: React.ReactNode;
|
|
96
|
+
/** Explicit size; otherwise inherited from the nearest `SizeProvider`. */
|
|
97
|
+
size?: PieChartSize;
|
|
98
|
+
viewBox?: {
|
|
99
|
+
cx?: number;
|
|
100
|
+
cy?: number;
|
|
101
|
+
};
|
|
102
102
|
};
|
|
103
|
-
declare function PieCenterLabel({ total, caption, size, viewBox
|
|
103
|
+
declare function PieCenterLabel({ total, caption, size, viewBox }: PieCenterLabelProps): React.JSX.Element | null;
|
|
104
104
|
/**
|
|
105
105
|
* Rich legend for pie/donut charts. Unlike the shared `ChartLegendContent`
|
|
106
106
|
* (marker + label only), each row pairs a colour dot with the category name, its
|
|
@@ -108,18 +108,18 @@ declare function PieCenterLabel({ total, caption, size, viewBox, }: PieCenterLab
|
|
|
108
108
|
* mini table. Values and percentages are pre-formatted by the caller.
|
|
109
109
|
*/
|
|
110
110
|
type PieLegendItem = {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
/** Category name, e.g. "Housing". */
|
|
112
|
+
label: string;
|
|
113
|
+
/** Segment colour — should match the matching `Cell` fill. */
|
|
114
|
+
color: string;
|
|
115
|
+
/** Pre-formatted value, e.g. "₦420k". */
|
|
116
|
+
value: React.ReactNode;
|
|
117
|
+
/** Pre-formatted share, e.g. "38%". */
|
|
118
|
+
percentage: React.ReactNode;
|
|
119
119
|
};
|
|
120
120
|
declare function PieChartLegend({ items, size, className, ...props }: React.ComponentProps<"ul"> & {
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
items: PieLegendItem[];
|
|
122
|
+
size?: PieChartSize;
|
|
123
123
|
}): React.JSX.Element;
|
|
124
|
-
|
|
125
|
-
export { PIE_CHART_LAYOUT, PIE_CHART_PALETTE, PieCenterLabel, type PieCenterLabelProps, type PieChartLayout, PieChartLegend, type PieChartSize, type PieLegendItem, usePieChartLayout };
|
|
124
|
+
//#endregion
|
|
125
|
+
export { PIE_CHART_LAYOUT, PIE_CHART_PALETTE, PieCenterLabel, type PieCenterLabelProps, type PieChartLayout, PieChartLegend, type PieChartSize, type PieLegendItem, usePieChartLayout };
|
package/dist/pie-chart.js
CHANGED
|
@@ -1,157 +1,149 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
} from "./chunk-HL3ZSYES.js";
|
|
5
|
-
import {
|
|
6
|
-
cn
|
|
7
|
-
} from "./chunk-Y4TTYVNE.js";
|
|
8
|
-
|
|
9
|
-
// src/pie-chart.tsx
|
|
10
|
-
import { cva } from "class-variance-authority";
|
|
2
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
+
import { useComponentSize } from "./size-context.js";
|
|
11
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
//#region src/pie-chart.tsx
|
|
7
|
+
const PIE_CHART_LAYOUT = {
|
|
8
|
+
sm: {
|
|
9
|
+
size: 132,
|
|
10
|
+
innerRadius: 42,
|
|
11
|
+
outerRadius: 64,
|
|
12
|
+
paddingAngle: 2,
|
|
13
|
+
cornerRadius: 0,
|
|
14
|
+
totalFontSize: 18,
|
|
15
|
+
captionFontSize: 9
|
|
16
|
+
},
|
|
17
|
+
md: {
|
|
18
|
+
size: 176,
|
|
19
|
+
innerRadius: 56,
|
|
20
|
+
outerRadius: 84,
|
|
21
|
+
paddingAngle: 2,
|
|
22
|
+
cornerRadius: 0,
|
|
23
|
+
totalFontSize: 24,
|
|
24
|
+
captionFontSize: 11
|
|
25
|
+
},
|
|
26
|
+
lg: {
|
|
27
|
+
size: 224,
|
|
28
|
+
innerRadius: 72,
|
|
29
|
+
outerRadius: 108,
|
|
30
|
+
paddingAngle: 2,
|
|
31
|
+
cornerRadius: 0,
|
|
32
|
+
totalFontSize: 30,
|
|
33
|
+
captionFontSize: 12
|
|
34
|
+
}
|
|
40
35
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Categorical palette for pie/donut segments, ordered by share. Giddaa has no
|
|
38
|
+
* `chart-1`…`chart-N` tokens yet, so these map to the brand scales: forest →
|
|
39
|
+
* brass → moss → clay → stone. Assign by index, or override per `Cell`.
|
|
40
|
+
*/
|
|
41
|
+
const PIE_CHART_PALETTE = [
|
|
42
|
+
"var(--color-forest-700)",
|
|
43
|
+
"var(--color-brass-500)",
|
|
44
|
+
"var(--color-moss-600)",
|
|
45
|
+
"var(--color-clay-500)",
|
|
46
|
+
"var(--color-stone-500)"
|
|
47
47
|
];
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Resolve the pie-chart layout for an explicit or inherited component size and
|
|
50
|
+
* chart `type`. The returned object groups the giddaa defaults by the recharts
|
|
51
|
+
* component they belong to — spread `container` onto `ChartContainer` and `pie`
|
|
52
|
+
* onto `Pie`, then pass the data-specific props (`data`, `dataKey`, `nameKey`)
|
|
53
|
+
* directly afterwards. `type="pie"` collapses the donut hole (`innerRadius` 0).
|
|
54
|
+
*/
|
|
55
|
+
function usePieChartLayout({ size, type = "donut" } = {}) {
|
|
56
|
+
const layout = PIE_CHART_LAYOUT[useComponentSize(size)];
|
|
57
|
+
return {
|
|
58
|
+
container: {
|
|
59
|
+
className: "aspect-square shrink-0",
|
|
60
|
+
style: {
|
|
61
|
+
width: layout.size,
|
|
62
|
+
height: layout.size
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
pie: {
|
|
66
|
+
innerRadius: type === "pie" ? 0 : layout.innerRadius,
|
|
67
|
+
outerRadius: layout.outerRadius,
|
|
68
|
+
paddingAngle: type === "pie" ? 0 : layout.paddingAngle,
|
|
69
|
+
cornerRadius: layout.cornerRadius,
|
|
70
|
+
strokeWidth: 0
|
|
71
|
+
},
|
|
72
|
+
label: {
|
|
73
|
+
totalFontSize: layout.totalFontSize,
|
|
74
|
+
captionFontSize: layout.captionFontSize
|
|
75
|
+
}
|
|
76
|
+
};
|
|
70
77
|
}
|
|
71
|
-
function PieCenterLabel({
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"tspan",
|
|
96
|
-
{
|
|
97
|
-
x: cx,
|
|
98
|
-
y: captionY,
|
|
99
|
-
className: "fill-fg-secondary font-medium",
|
|
100
|
-
style: { fontSize: label.captionFontSize },
|
|
101
|
-
children: caption
|
|
102
|
-
}
|
|
103
|
-
)
|
|
104
|
-
] });
|
|
78
|
+
function PieCenterLabel({ total, caption, size, viewBox }) {
|
|
79
|
+
const { label } = usePieChartLayout({ size });
|
|
80
|
+
if (!viewBox || viewBox.cx == null || viewBox.cy == null) return null;
|
|
81
|
+
const { cx, cy } = viewBox;
|
|
82
|
+
const captionY = cy + label.totalFontSize * .72;
|
|
83
|
+
return /* @__PURE__ */ jsxs("text", {
|
|
84
|
+
x: cx,
|
|
85
|
+
y: cy,
|
|
86
|
+
textAnchor: "middle",
|
|
87
|
+
dominantBaseline: "central",
|
|
88
|
+
children: [/* @__PURE__ */ jsx("tspan", {
|
|
89
|
+
x: cx,
|
|
90
|
+
y: caption == null ? cy : cy - label.captionFontSize * .5,
|
|
91
|
+
className: "fill-fg-primary font-extrabold tabular-nums",
|
|
92
|
+
style: { fontSize: label.totalFontSize },
|
|
93
|
+
children: total
|
|
94
|
+
}), caption != null && /* @__PURE__ */ jsx("tspan", {
|
|
95
|
+
x: cx,
|
|
96
|
+
y: captionY,
|
|
97
|
+
className: "fill-fg-secondary font-medium",
|
|
98
|
+
style: { fontSize: label.captionFontSize },
|
|
99
|
+
children: caption
|
|
100
|
+
})]
|
|
101
|
+
});
|
|
105
102
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
},
|
|
114
|
-
defaultVariants: { size: "md" }
|
|
103
|
+
const pieLegendVariants = cva("flex min-w-0 flex-col", {
|
|
104
|
+
variants: { size: {
|
|
105
|
+
sm: "gap-1.5 text-gdt-xs",
|
|
106
|
+
md: "gap-2 text-gdt-sm",
|
|
107
|
+
lg: "gap-2.5 text-gdt-sm"
|
|
108
|
+
} },
|
|
109
|
+
defaultVariants: { size: "md" }
|
|
115
110
|
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
const pieLegendDotVariants = cva("shrink-0 rounded-full", {
|
|
112
|
+
variants: { size: {
|
|
113
|
+
sm: "size-2",
|
|
114
|
+
md: "size-2.5",
|
|
115
|
+
lg: "size-3"
|
|
116
|
+
} },
|
|
117
|
+
defaultVariants: { size: "md" }
|
|
121
118
|
});
|
|
122
|
-
function PieChartLegend({
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
119
|
+
function PieChartLegend({ items, size, className, ...props }) {
|
|
120
|
+
const resolvedSize = useComponentSize(size);
|
|
121
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
122
|
+
className: cn(pieLegendVariants({ size: resolvedSize }), className),
|
|
123
|
+
...props,
|
|
124
|
+
children: items.map((item) => /* @__PURE__ */ jsxs("li", {
|
|
125
|
+
className: "flex items-center gap-2.5",
|
|
126
|
+
children: [
|
|
127
|
+
/* @__PURE__ */ jsx("span", {
|
|
128
|
+
"aria-hidden": "true",
|
|
129
|
+
className: cn(pieLegendDotVariants({ size: resolvedSize })),
|
|
130
|
+
style: { backgroundColor: item.color }
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ jsx("span", {
|
|
133
|
+
className: "min-w-0 flex-1 truncate text-fg-primary",
|
|
134
|
+
children: item.label
|
|
135
|
+
}),
|
|
136
|
+
/* @__PURE__ */ jsx("span", {
|
|
137
|
+
className: "shrink-0 tabular-nums text-fg-secondary",
|
|
138
|
+
children: item.value
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ jsx("span", {
|
|
141
|
+
className: "w-9 shrink-0 text-right font-bold tabular-nums text-fg-primary",
|
|
142
|
+
children: item.percentage
|
|
143
|
+
})
|
|
144
|
+
]
|
|
145
|
+
}, item.label))
|
|
146
|
+
});
|
|
149
147
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
PIE_CHART_PALETTE,
|
|
153
|
-
PieCenterLabel,
|
|
154
|
-
PieChartLegend,
|
|
155
|
-
usePieChartLayout
|
|
156
|
-
};
|
|
157
|
-
//# sourceMappingURL=pie-chart.js.map
|
|
148
|
+
//#endregion
|
|
149
|
+
export { PIE_CHART_LAYOUT, PIE_CHART_PALETTE, PieCenterLabel, PieChartLegend, usePieChartLayout };
|
package/dist/popover.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as React from
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { t as ComponentSize } from "./size-context-D4mYvcg8.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Popover as Popover$1 } from "@base-ui/react/popover";
|
|
4
|
+
//#region src/popover.d.ts
|
|
5
5
|
declare function Popover({ ...props }: Popover$1.Root.Props): React.JSX.Element;
|
|
6
6
|
declare function PopoverTrigger({ ...props }: Popover$1.Trigger.Props): React.JSX.Element;
|
|
7
7
|
type PopoverContentProps = Popover$1.Popup.Props & Pick<Popover$1.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset"> & {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
showArrow?: boolean;
|
|
9
|
+
size?: ComponentSize;
|
|
10
10
|
};
|
|
11
11
|
declare function PopoverContent({ className, align, alignOffset, side, sideOffset, showArrow, size, children, ...props }: PopoverContentProps): React.JSX.Element;
|
|
12
12
|
declare function PopoverHeader({ className, border, ...props }: React.ComponentProps<"div"> & {
|
|
13
|
-
|
|
13
|
+
border?: boolean;
|
|
14
14
|
}): React.JSX.Element;
|
|
15
15
|
declare function PopoverBody({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
16
16
|
declare function PopoverFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
17
17
|
declare function PopoverTitle({ className, ...props }: Popover$1.Title.Props): React.JSX.Element;
|
|
18
18
|
declare function PopoverDescription({ className, ...props }: Popover$1.Description.Props): React.JSX.Element;
|
|
19
|
-
|
|
20
|
-
export { Popover, PopoverBody, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverTitle, PopoverTrigger };
|
|
19
|
+
//#endregion
|
|
20
|
+
export { Popover, PopoverBody, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverTitle, PopoverTrigger };
|
package/dist/popover.js
CHANGED
|
@@ -1,24 +1,73 @@
|
|
|
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 } from "./size-context.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Popover as Popover$1 } from "@base-ui/react/popover";
|
|
6
|
+
//#region src/popover.tsx
|
|
7
|
+
function Popover({ ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(Popover$1.Root, {
|
|
9
|
+
"data-slot": "popover",
|
|
10
|
+
...props
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function PopoverTrigger({ ...props }) {
|
|
14
|
+
return /* @__PURE__ */ jsx(Popover$1.Trigger, {
|
|
15
|
+
"data-slot": "popover-trigger",
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 6, showArrow = true, size = "md", children, ...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(Popover$1.Positioner, {
|
|
21
|
+
align,
|
|
22
|
+
alignOffset,
|
|
23
|
+
side,
|
|
24
|
+
sideOffset,
|
|
25
|
+
className: "isolate z-50",
|
|
26
|
+
children: /* @__PURE__ */ jsxs(Popover$1.Popup, {
|
|
27
|
+
"data-slot": "popover-content",
|
|
28
|
+
className: cn("z-50 relative flex w-72 max-w-[calc(100vw-2rem)] origin-(--transform-origin) flex-col rounded-lg border-0 bg-surface-overlay py-4 text-gdt-sm text-fg-primary shadow-2 outline-hidden duration-100 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-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 has-[&_[data-slot=popover-footer]]:pb-0", className),
|
|
29
|
+
...props,
|
|
30
|
+
children: [/* @__PURE__ */ jsx(SizeProvider, {
|
|
31
|
+
size,
|
|
32
|
+
children
|
|
33
|
+
}), showArrow ? /* @__PURE__ */ jsx(Popover$1.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]
|
|
34
|
+
})
|
|
35
|
+
}) });
|
|
36
|
+
}
|
|
37
|
+
function PopoverHeader({ className, border, ...props }) {
|
|
38
|
+
return /* @__PURE__ */ jsx("div", {
|
|
39
|
+
"data-slot": "popover-header",
|
|
40
|
+
className: cn("flex flex-col gap-0.5 px-4", border && "border-b border-line-subtle pb-3", className),
|
|
41
|
+
...props
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function PopoverBody({ className, ...props }) {
|
|
45
|
+
return /* @__PURE__ */ jsx("div", {
|
|
46
|
+
"data-slot": "popover-body",
|
|
47
|
+
className: cn("px-4 py-2", className),
|
|
48
|
+
...props
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function PopoverFooter({ className, ...props }) {
|
|
52
|
+
return /* @__PURE__ */ jsx("div", {
|
|
53
|
+
"data-slot": "popover-footer",
|
|
54
|
+
className: cn("flex flex-row items-center gap-2 px-4 border-t border-line-subtle pt-3", className),
|
|
55
|
+
...props
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function PopoverTitle({ className, ...props }) {
|
|
59
|
+
return /* @__PURE__ */ jsx(Popover$1.Title, {
|
|
60
|
+
"data-slot": "popover-title",
|
|
61
|
+
className: cn("text-gdt-sm font-semibold text-fg-primary", className),
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function PopoverDescription({ className, ...props }) {
|
|
66
|
+
return /* @__PURE__ */ jsx(Popover$1.Description, {
|
|
67
|
+
"data-slot": "popover-description",
|
|
68
|
+
className: cn("text-gdt-xs font-normal text-fg-secondary", className),
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
export { Popover, PopoverBody, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverTitle, PopoverTrigger };
|