@giddaa-housing/ui 3.0.1 → 3.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 +173 -2
- package/css/preset.css +8 -1
- package/css/theme.css +4 -1
- package/dist/accordion.js +2 -2
- package/dist/activity-timeline.js +5 -5
- package/dist/alert.js +1 -1
- package/dist/auth-layout.js +18 -18
- package/dist/bar-chart.d.ts +1 -1
- package/dist/breadcrumb.js +3 -3
- package/dist/bullet-chart.d.ts +1 -1
- package/dist/button-group.d.ts +1 -1
- package/dist/button.js +2 -2
- package/dist/calendar.js +3 -3
- package/dist/call-card.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +3 -3
- package/dist/chart.d.ts +1 -1
- package/dist/chart.js +1 -1
- package/dist/chat.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/combobox.d.ts +1 -1
- package/dist/combobox.js +6 -6
- package/dist/cta.js +3 -3
- package/dist/currency-selector.d.ts +10 -8
- package/dist/currency-selector.js +247 -28
- package/dist/data-table.js +2 -2
- package/dist/date-picker.js +6 -6
- package/dist/dialog.js +2 -2
- package/dist/dropdown-menu.d.ts +1 -1
- package/dist/dropdown-menu.js +20 -20
- package/dist/dropzone.js +1 -1
- package/dist/editorial-card.d.ts +20 -11
- package/dist/editorial-card.js +67 -2
- package/dist/file-upload.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/footer.d.ts +4 -2
- package/dist/footer.js +38 -34
- package/dist/funnel-chart.d.ts +1 -1
- package/dist/heatmap-chart.d.ts +1 -1
- package/dist/icons.d.ts +93 -0
- package/dist/icons.js +905 -0
- package/dist/infinite-scroll.js +1 -1
- package/dist/input-group.js +4 -5
- package/dist/input-otp.js +2 -2
- package/dist/input-size-context.js +4 -2
- package/dist/input.js +1 -1
- package/dist/kpi-card.js +1 -1
- package/dist/line-chart.d.ts +1 -1
- package/dist/mask-input.d.ts +61 -0
- package/dist/mask-input.js +0 -0
- package/dist/match.js +1 -1
- package/dist/media-gallery-hero.js +1 -1
- package/dist/media-player.js +59 -48
- package/dist/message.js +1 -1
- package/dist/mobile-sidebar.d.ts +57 -0
- package/dist/mobile-sidebar.js +196 -0
- package/dist/multi-step-form.js +2 -2
- package/dist/number-input.d.ts +1 -1
- package/dist/number-input.js +3 -3
- package/dist/pagination.js +4 -4
- package/dist/password-input.js +1 -1
- package/dist/phone-input.d.ts +1 -1
- package/dist/phone-input.js +4 -4
- package/dist/photo-gallery.js +3 -3
- package/dist/pie-chart.d.ts +1 -1
- package/dist/popover.d.ts +1 -1
- package/dist/price-tag.js +1 -1
- package/dist/radar-chart.d.ts +1 -1
- package/dist/rich-text-editor.d.ts +1 -1
- package/dist/rich-text-editor.js +4 -4
- package/dist/scatter-chart.d.ts +1 -1
- package/dist/search-input.js +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js +6 -6
- package/dist/sheet.js +2 -2
- package/dist/sidebar.js +1 -1
- package/dist/{size-context-D4mYvcg8.d.ts → size-context-BX6kAdVj.d.ts} +2 -1
- package/dist/size-context.d.ts +2 -2
- package/dist/size-context.js +5 -2
- package/dist/sparkline.d.ts +1 -1
- package/dist/stepper.js +2 -2
- package/dist/styles.css +681 -128
- package/dist/table.js +2 -2
- package/dist/tabs.d.ts +1 -1
- package/dist/tag.d.ts +1 -1
- package/dist/tag.js +1 -1
- package/dist/testimonial-block.js +1 -1
- package/dist/theme-switcher.d.ts +31 -0
- package/dist/theme-switcher.js +78 -0
- package/dist/time-picker.js +2 -2
- package/dist/toast.d.ts +38 -10
- package/dist/toast.js +55 -52
- package/dist/top-navbar.d.ts +100 -0
- package/dist/top-navbar.js +295 -0
- package/dist/tree-map.d.ts +1 -1
- package/dist/video-player-dialog.d.ts +57 -0
- package/dist/video-player-dialog.js +188 -0
- package/dist/waterfall-chart.d.ts +1 -1
- package/package.json +25 -2
package/dist/dropdown-menu.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check, ChevronRight } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { SizeProvider, useComponentSize } from "./size-context.js";
|
|
4
|
-
import { CheckIcon, ChevronRightIcon } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
|
-
import { Menu
|
|
7
|
+
import { Menu } from "@base-ui/react/menu";
|
|
8
8
|
//#region src/dropdown-menu.tsx
|
|
9
9
|
function DropdownMenu({ children, size, ...props }) {
|
|
10
10
|
return /* @__PURE__ */ jsx(SizeProvider, {
|
|
11
11
|
size,
|
|
12
|
-
children: /* @__PURE__ */ jsx(Menu
|
|
12
|
+
children: /* @__PURE__ */ jsx(Menu.Root, {
|
|
13
13
|
"data-slot": "dropdown-menu",
|
|
14
14
|
...props,
|
|
15
15
|
children
|
|
@@ -17,13 +17,13 @@ function DropdownMenu({ children, size, ...props }) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
function DropdownMenuPortal({ ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx(Menu
|
|
20
|
+
return /* @__PURE__ */ jsx(Menu.Portal, {
|
|
21
21
|
"data-slot": "dropdown-menu-portal",
|
|
22
22
|
...props
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
function DropdownMenuTrigger({ ...props }) {
|
|
26
|
-
return /* @__PURE__ */ jsx(Menu
|
|
26
|
+
return /* @__PURE__ */ jsx(Menu.Trigger, {
|
|
27
27
|
"data-slot": "dropdown-menu-trigger",
|
|
28
28
|
...props
|
|
29
29
|
});
|
|
@@ -54,15 +54,15 @@ const dropdownMenuLabelVariants = cva("font-medium text-fg-secondary data-inset:
|
|
|
54
54
|
});
|
|
55
55
|
function DropdownMenuContent({ align = "start", alignOffset = 0, side = "bottom", sideOffset = 6, className, container, ...props }) {
|
|
56
56
|
const resolvedSize = useComponentSize();
|
|
57
|
-
return /* @__PURE__ */ jsx(Menu
|
|
57
|
+
return /* @__PURE__ */ jsx(Menu.Portal, {
|
|
58
58
|
container,
|
|
59
|
-
children: /* @__PURE__ */ jsx(Menu
|
|
59
|
+
children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
60
60
|
className: "isolate z-50 outline-none",
|
|
61
61
|
align,
|
|
62
62
|
alignOffset,
|
|
63
63
|
side,
|
|
64
64
|
sideOffset,
|
|
65
|
-
children: /* @__PURE__ */ jsx(Menu
|
|
65
|
+
children: /* @__PURE__ */ jsx(Menu.Popup, {
|
|
66
66
|
"data-slot": "dropdown-menu-content",
|
|
67
67
|
"data-size": resolvedSize,
|
|
68
68
|
className: cn(dropdownMenuContentVariants({ size: resolvedSize }), className),
|
|
@@ -72,7 +72,7 @@ function DropdownMenuContent({ align = "start", alignOffset = 0, side = "bottom"
|
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
function DropdownMenuGroup({ className, ...props }) {
|
|
75
|
-
return /* @__PURE__ */ jsx(Menu
|
|
75
|
+
return /* @__PURE__ */ jsx(Menu.Group, {
|
|
76
76
|
"data-slot": "dropdown-menu-group",
|
|
77
77
|
className: cn("scroll-my-1 space-y-0.5", className),
|
|
78
78
|
...props
|
|
@@ -80,7 +80,7 @@ function DropdownMenuGroup({ className, ...props }) {
|
|
|
80
80
|
}
|
|
81
81
|
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
82
82
|
const resolvedSize = useComponentSize();
|
|
83
|
-
return /* @__PURE__ */ jsx(Menu
|
|
83
|
+
return /* @__PURE__ */ jsx(Menu.GroupLabel, {
|
|
84
84
|
"data-slot": "dropdown-menu-label",
|
|
85
85
|
"data-inset": inset,
|
|
86
86
|
className: cn(dropdownMenuLabelVariants({ size: resolvedSize }), className),
|
|
@@ -89,7 +89,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
|
|
|
89
89
|
}
|
|
90
90
|
function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
91
91
|
const resolvedSize = useComponentSize();
|
|
92
|
-
return /* @__PURE__ */ jsx(Menu
|
|
92
|
+
return /* @__PURE__ */ jsx(Menu.Item, {
|
|
93
93
|
"data-slot": "dropdown-menu-item",
|
|
94
94
|
"data-inset": inset,
|
|
95
95
|
"data-size": resolvedSize,
|
|
@@ -99,20 +99,20 @@ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
function DropdownMenuSub({ ...props }) {
|
|
102
|
-
return /* @__PURE__ */ jsx(Menu
|
|
102
|
+
return /* @__PURE__ */ jsx(Menu.SubmenuRoot, {
|
|
103
103
|
"data-slot": "dropdown-menu-sub",
|
|
104
104
|
...props
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
108
108
|
const resolvedSize = useComponentSize();
|
|
109
|
-
return /* @__PURE__ */ jsxs(Menu
|
|
109
|
+
return /* @__PURE__ */ jsxs(Menu.SubmenuTrigger, {
|
|
110
110
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
111
111
|
"data-inset": inset,
|
|
112
112
|
"data-size": resolvedSize,
|
|
113
113
|
className: cn(dropdownMenuItemVariants({ size: resolvedSize }), "data-inset:pl-8 data-open:bg-surface data-open:text-fg-primary data-popup-open:bg-surface data-popup-open:text-fg-primary", className),
|
|
114
114
|
...props,
|
|
115
|
-
children: [children, /* @__PURE__ */ jsx(
|
|
115
|
+
children: [children, /* @__PURE__ */ jsx(ChevronRight, { className: "cn-rtl-flip ml-auto" })]
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
function DropdownMenuSubContent({ align = "start", alignOffset = -3, side = "right", sideOffset = 4, className, ...props }) {
|
|
@@ -128,7 +128,7 @@ function DropdownMenuSubContent({ align = "start", alignOffset = -3, side = "rig
|
|
|
128
128
|
}
|
|
129
129
|
function DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }) {
|
|
130
130
|
const resolvedSize = useComponentSize();
|
|
131
|
-
return /* @__PURE__ */ jsxs(Menu
|
|
131
|
+
return /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
|
|
132
132
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
133
133
|
"data-inset": inset,
|
|
134
134
|
"data-size": resolvedSize,
|
|
@@ -138,19 +138,19 @@ function DropdownMenuCheckboxItem({ className, children, checked, inset, ...prop
|
|
|
138
138
|
children: [/* @__PURE__ */ jsx("span", {
|
|
139
139
|
className: "pointer-events-none absolute right-3 flex items-center justify-center text-fg-brand",
|
|
140
140
|
"data-slot": "dropdown-menu-checkbox-item-indicator",
|
|
141
|
-
children: /* @__PURE__ */ jsx(Menu
|
|
141
|
+
children: /* @__PURE__ */ jsx(Menu.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(Check, {}) })
|
|
142
142
|
}), children]
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
145
|
function DropdownMenuRadioGroup({ ...props }) {
|
|
146
|
-
return /* @__PURE__ */ jsx(Menu
|
|
146
|
+
return /* @__PURE__ */ jsx(Menu.RadioGroup, {
|
|
147
147
|
"data-slot": "dropdown-menu-radio-group",
|
|
148
148
|
...props
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
function DropdownMenuRadioItem({ className, children, inset, ...props }) {
|
|
152
152
|
const resolvedSize = useComponentSize();
|
|
153
|
-
return /* @__PURE__ */ jsxs(Menu
|
|
153
|
+
return /* @__PURE__ */ jsxs(Menu.RadioItem, {
|
|
154
154
|
"data-slot": "dropdown-menu-radio-item",
|
|
155
155
|
"data-inset": inset,
|
|
156
156
|
"data-size": resolvedSize,
|
|
@@ -159,12 +159,12 @@ function DropdownMenuRadioItem({ className, children, inset, ...props }) {
|
|
|
159
159
|
children: [/* @__PURE__ */ jsx("span", {
|
|
160
160
|
className: "pointer-events-none absolute right-3 flex items-center justify-center text-fg-brand",
|
|
161
161
|
"data-slot": "dropdown-menu-radio-item-indicator",
|
|
162
|
-
children: /* @__PURE__ */ jsx(Menu
|
|
162
|
+
children: /* @__PURE__ */ jsx(Menu.RadioItemIndicator, { children: /* @__PURE__ */ jsx(Check, {}) })
|
|
163
163
|
}), children]
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
function DropdownMenuSeparator({ className, ...props }) {
|
|
167
|
-
return /* @__PURE__ */ jsx(Menu
|
|
167
|
+
return /* @__PURE__ */ jsx(Menu.Separator, {
|
|
168
168
|
"data-slot": "dropdown-menu-separator",
|
|
169
169
|
className: cn("pointer-events-none my-1 h-px bg-line-subtle", className),
|
|
170
170
|
...props
|
package/dist/dropzone.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { UploadCloud } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import { UploadCloud } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { createContext, use, useCallback, useRef, useState } from "react";
|
|
6
6
|
//#region src/lib/use-file-picker.ts
|
package/dist/editorial-card.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
3
4
|
//#region src/editorial-card.d.ts
|
|
4
5
|
declare const editorialCardVariants: (props?: ({
|
|
5
6
|
size?: "lg" | "md" | "sm" | null | undefined;
|
|
6
7
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
8
|
type EditorialCardProps = useRender.ComponentProps<"article"> & VariantProps<typeof editorialCardVariants>;
|
|
8
|
-
declare function EditorialCard({ className, render, size, ...props }: EditorialCardProps):
|
|
9
|
-
declare function EditorialCardHeader({ className, render, ...props }: useRender.ComponentProps<"div">):
|
|
10
|
-
declare function EditorialCardMeta({ className, render, ...props }: useRender.ComponentProps<"p">):
|
|
11
|
-
declare function EditorialCardTitle({ className, render, ...props }: useRender.ComponentProps<"h3">):
|
|
12
|
-
declare function EditorialCardMedia({ className, render, ...props }: useRender.ComponentProps<"div">):
|
|
13
|
-
declare function EditorialCardCategory({ className, render, ...props }: useRender.ComponentProps<"span">):
|
|
14
|
-
declare function EditorialCardPlayButton({ className, render, children, "aria-label": ariaLabel, ...props }: useRender.ComponentProps<"button">):
|
|
9
|
+
declare function EditorialCard({ className, render, size, ...props }: EditorialCardProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
10
|
+
declare function EditorialCardHeader({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
11
|
+
declare function EditorialCardMeta({ className, render, ...props }: useRender.ComponentProps<"p">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
12
|
+
declare function EditorialCardTitle({ className, render, ...props }: useRender.ComponentProps<"h3">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
13
|
+
declare function EditorialCardMedia({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
14
|
+
declare function EditorialCardCategory({ className, render, ...props }: useRender.ComponentProps<"span">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
15
|
+
declare function EditorialCardPlayButton({ className, render, children, "aria-label": ariaLabel, ...props }: useRender.ComponentProps<"button">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
15
16
|
type EditorialCardAttributionProps = Omit<useRender.ComponentProps<"div">, "children"> & {
|
|
16
17
|
authorName: string;
|
|
17
18
|
brand?: {
|
|
@@ -20,8 +21,16 @@ type EditorialCardAttributionProps = Omit<useRender.ComponentProps<"div">, "chil
|
|
|
20
21
|
};
|
|
21
22
|
prefix?: string;
|
|
22
23
|
};
|
|
23
|
-
declare function EditorialCardAttribution({ authorName, brand, className, prefix, render, ...props }: EditorialCardAttributionProps):
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
declare function EditorialCardAttribution({ authorName, brand, className, prefix, render, ...props }: EditorialCardAttributionProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
25
|
+
type EditorialCardRatingProps = Omit<useRender.ComponentProps<"div">, "children"> & {
|
|
26
|
+
rating: number;
|
|
27
|
+
source?: React.ReactNode;
|
|
28
|
+
totalReviews?: number;
|
|
29
|
+
reviewLabel?: string;
|
|
30
|
+
showScore?: boolean;
|
|
31
|
+
};
|
|
32
|
+
declare function EditorialCardRating({ className, rating, render, reviewLabel, showScore, source, totalReviews, ...props }: EditorialCardRatingProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
33
|
+
declare function EditorialCardExcerpt({ className, render, ...props }: useRender.ComponentProps<"p">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
34
|
+
declare function EditorialCardLink({ className, render, children, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
26
35
|
//#endregion
|
|
27
|
-
export { EditorialCard, EditorialCardAttribution, type EditorialCardAttributionProps, EditorialCardCategory, EditorialCardExcerpt, EditorialCardHeader, EditorialCardLink, EditorialCardMedia, EditorialCardMeta, EditorialCardPlayButton, type EditorialCardProps, EditorialCardTitle, editorialCardVariants };
|
|
36
|
+
export { EditorialCard, EditorialCardAttribution, type EditorialCardAttributionProps, EditorialCardCategory, EditorialCardExcerpt, EditorialCardHeader, EditorialCardLink, EditorialCardMedia, EditorialCardMeta, EditorialCardPlayButton, type EditorialCardProps, EditorialCardRating, type EditorialCardRatingProps, EditorialCardTitle, editorialCardVariants };
|
package/dist/editorial-card.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { ArrowRight, Play, Star } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
|
|
4
5
|
import { buttonVariants } from "./button.js";
|
|
5
|
-
import { ArrowRight, Play } from "lucide-react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
8
8
|
import { useRender } from "@base-ui/react/use-render";
|
|
9
9
|
import { cva } from "class-variance-authority";
|
|
10
10
|
//#region src/editorial-card.tsx
|
|
11
|
+
const STAR_INDEXES = [
|
|
12
|
+
0,
|
|
13
|
+
1,
|
|
14
|
+
2,
|
|
15
|
+
3,
|
|
16
|
+
4
|
|
17
|
+
];
|
|
11
18
|
const editorialCardVariants = cva("group/editorial-card relative flex w-full min-w-0 flex-col overflow-hidden rounded-2xl border border-line-subtle bg-surface text-fg-primary transition-[background-color,border-color,box-shadow]", {
|
|
12
19
|
variants: { size: {
|
|
13
20
|
sm: "gap-2.5 p-4",
|
|
@@ -119,6 +126,64 @@ function EditorialCardAttribution({ authorName, brand, className, prefix = "By",
|
|
|
119
126
|
state: { slot: "editorial-card-attribution" }
|
|
120
127
|
});
|
|
121
128
|
}
|
|
129
|
+
function clampRating(rating) {
|
|
130
|
+
return Math.min(5, Math.max(0, rating));
|
|
131
|
+
}
|
|
132
|
+
function formatRating(rating) {
|
|
133
|
+
return clampRating(rating).toFixed(1);
|
|
134
|
+
}
|
|
135
|
+
function formatReviewSource({ reviewLabel, source, totalReviews }) {
|
|
136
|
+
const label = reviewLabel ?? (totalReviews === 1 ? "review" : "reviews");
|
|
137
|
+
if (source && typeof totalReviews === "number") return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
138
|
+
totalReviews.toLocaleString(),
|
|
139
|
+
" ",
|
|
140
|
+
source,
|
|
141
|
+
" ",
|
|
142
|
+
label
|
|
143
|
+
] });
|
|
144
|
+
if (source) return source;
|
|
145
|
+
if (typeof totalReviews === "number") return `${totalReviews.toLocaleString()} ${label}`;
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
function EditorialCardRating({ className, rating, render, reviewLabel, showScore = true, source, totalReviews, ...props }) {
|
|
149
|
+
const formattedRating = formatRating(rating);
|
|
150
|
+
const roundedRating = Math.round(clampRating(rating));
|
|
151
|
+
const reviewSource = formatReviewSource({
|
|
152
|
+
reviewLabel,
|
|
153
|
+
source,
|
|
154
|
+
totalReviews
|
|
155
|
+
});
|
|
156
|
+
return useRender({
|
|
157
|
+
defaultTagName: "div",
|
|
158
|
+
props: mergeProps({
|
|
159
|
+
className: cn("flex min-w-0 flex-wrap items-center gap-gdt-sm text-fg-primary", className),
|
|
160
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
161
|
+
showScore ? /* @__PURE__ */ jsx("span", {
|
|
162
|
+
className: "font-bold text-gdt-sm group-data-[size=md]/editorial-card:text-gdt-md group-data-[size=lg]/editorial-card:text-gdt-lg",
|
|
163
|
+
children: formattedRating
|
|
164
|
+
}) : null,
|
|
165
|
+
/* @__PURE__ */ jsx("span", {
|
|
166
|
+
"aria-label": `${formattedRating} out of 5`,
|
|
167
|
+
className: cn("inline-flex shrink-0 items-center gap-0.5 text-surface-accent", "[&>svg]:size-4 group-data-[size=md]/editorial-card:[&>svg]:size-4.5 group-data-[size=lg]/editorial-card:[&>svg]:size-5"),
|
|
168
|
+
role: "img",
|
|
169
|
+
children: STAR_INDEXES.map((index) => /* @__PURE__ */ jsx(Star, {
|
|
170
|
+
"aria-hidden": "true",
|
|
171
|
+
fill: index < roundedRating ? "currentColor" : "none"
|
|
172
|
+
}, index))
|
|
173
|
+
}),
|
|
174
|
+
reviewSource ? /* @__PURE__ */ jsx("span", {
|
|
175
|
+
className: "text-gdt-xs text-fg-secondary group-data-[size=lg]/editorial-card:text-gdt-sm",
|
|
176
|
+
children: reviewSource
|
|
177
|
+
}) : null
|
|
178
|
+
] })
|
|
179
|
+
}, props),
|
|
180
|
+
render,
|
|
181
|
+
state: {
|
|
182
|
+
rating: formattedRating,
|
|
183
|
+
slot: "editorial-card-rating"
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
122
187
|
function EditorialCardExcerpt({ className, render, ...props }) {
|
|
123
188
|
return useRender({
|
|
124
189
|
defaultTagName: "p",
|
|
@@ -142,4 +207,4 @@ function EditorialCardLink({ className, render, children, ...props }) {
|
|
|
142
207
|
});
|
|
143
208
|
}
|
|
144
209
|
//#endregion
|
|
145
|
-
export { EditorialCard, EditorialCardAttribution, EditorialCardCategory, EditorialCardExcerpt, EditorialCardHeader, EditorialCardLink, EditorialCardMedia, EditorialCardMeta, EditorialCardPlayButton, EditorialCardTitle, editorialCardVariants };
|
|
210
|
+
export { EditorialCard, EditorialCardAttribution, EditorialCardCategory, EditorialCardExcerpt, EditorialCardHeader, EditorialCardLink, EditorialCardMedia, EditorialCardMeta, EditorialCardPlayButton, EditorialCardRating, EditorialCardTitle, editorialCardVariants };
|
package/dist/file-upload.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { File, X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { CircularProgress, Progress, ProgressValue } from "./progress.js";
|
|
4
|
-
import { File, X } from "lucide-react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
import { createContext, useContext } from "react";
|
|
7
7
|
//#region src/file-upload.tsx
|
package/dist/filter.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Plus, X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Button } from "./button.js";
|
|
4
5
|
import { Input } from "./input.js";
|
|
5
6
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select.js";
|
|
6
7
|
import { Field, FieldError } from "./field.js";
|
|
7
|
-
import { Plus, X } from "lucide-react";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
//#region src/filter.tsx
|
package/dist/footer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as InputSize } from "./input-CfoEJ8A6.js";
|
|
2
2
|
import { useRender } from "@base-ui/react/use-render";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
//#region src/footer.d.ts
|
|
@@ -33,7 +33,9 @@ declare function FooterSocialLink({ className, ...props }: React.ComponentProps<
|
|
|
33
33
|
declare function FooterNewsletter({ className, ...props }: React.ComponentProps<"form">): React.JSX.Element;
|
|
34
34
|
declare function FooterNewsletterTitle({ className, ...props }: React.ComponentProps<"h3">): React.JSX.Element;
|
|
35
35
|
declare function FooterNewsletterDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
|
|
36
|
-
declare function FooterNewsletterControl({ className, children, ...props }: React.ComponentProps<
|
|
36
|
+
declare function FooterNewsletterControl({ className, children, size, ...props }: React.ComponentProps<"div"> & {
|
|
37
|
+
size?: InputSize;
|
|
38
|
+
}): React.JSX.Element;
|
|
37
39
|
declare function FooterBottom({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
38
40
|
declare function FooterLegalLinks({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
|
|
39
41
|
//#endregion
|
package/dist/footer.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { ChevronRight } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import {
|
|
4
|
+
import { Button } from "./button.js";
|
|
5
|
+
import { Input } from "./input.js";
|
|
4
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
7
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
6
8
|
import { useRender } from "@base-ui/react/use-render";
|
|
@@ -12,7 +14,7 @@ function FooterRoot({ className, containerClassName, children, ...props }) {
|
|
|
12
14
|
...props,
|
|
13
15
|
children: /* @__PURE__ */ jsx("div", {
|
|
14
16
|
"data-slot": "footer-container",
|
|
15
|
-
className: cn("
|
|
17
|
+
className: cn("flex w-full flex-col", containerClassName),
|
|
16
18
|
children
|
|
17
19
|
})
|
|
18
20
|
});
|
|
@@ -20,70 +22,70 @@ function FooterRoot({ className, containerClassName, children, ...props }) {
|
|
|
20
22
|
function FooterCta({ className, ...props }) {
|
|
21
23
|
return /* @__PURE__ */ jsx("section", {
|
|
22
24
|
"data-slot": "footer-cta",
|
|
23
|
-
className: cn("grid gap-
|
|
25
|
+
className: cn("grid gap-5 bg-surface-brand px-5 py-gdt-3xl text-fg-on-brand md:px-gdt-6xl md:py-gdt-5xl xl:grid-cols-[minmax(0,1fr)_auto] xl:items-center", className),
|
|
24
26
|
...props
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
function FooterCtaContent({ className, ...props }) {
|
|
28
30
|
return /* @__PURE__ */ jsx("div", {
|
|
29
31
|
"data-slot": "footer-cta-content",
|
|
30
|
-
className: cn("flex max-w-
|
|
32
|
+
className: cn("flex max-w-140 flex-col gap-5 xl:gap-3", className),
|
|
31
33
|
...props
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
function FooterCtaTitle({ className, ...props }) {
|
|
35
37
|
return /* @__PURE__ */ jsx("h2", {
|
|
36
38
|
"data-slot": "footer-cta-title",
|
|
37
|
-
className: cn("text-gdt-
|
|
39
|
+
className: cn("text-gdt-h3 leading-10 text-current md:leading-[3.25rem]", className),
|
|
38
40
|
...props
|
|
39
41
|
});
|
|
40
42
|
}
|
|
41
43
|
function FooterCtaDescription({ className, ...props }) {
|
|
42
44
|
return /* @__PURE__ */ jsx("p", {
|
|
43
45
|
"data-slot": "footer-cta-description",
|
|
44
|
-
className: cn("text-gdt-sm text-current", className),
|
|
46
|
+
className: cn("text-gdt-sm text-current opacity-85 md:text-gdt-md", className),
|
|
45
47
|
...props
|
|
46
48
|
});
|
|
47
49
|
}
|
|
48
50
|
function FooterCtaActions({ className, ...props }) {
|
|
49
51
|
return /* @__PURE__ */ jsx("div", {
|
|
50
52
|
"data-slot": "footer-cta-actions",
|
|
51
|
-
className: cn("flex flex-
|
|
53
|
+
className: cn("flex w-full flex-col items-stretch gap-gdt-lg [&>*]:w-full xl:w-auto xl:flex-row xl:items-center xl:[&>*]:w-auto", className),
|
|
52
54
|
...props
|
|
53
55
|
});
|
|
54
56
|
}
|
|
55
57
|
function FooterBody({ className, ...props }) {
|
|
56
58
|
return /* @__PURE__ */ jsx("div", {
|
|
57
59
|
"data-slot": "footer-body",
|
|
58
|
-
className: cn("flex flex-col gap-gdt-6xl px-
|
|
60
|
+
className: cn("flex flex-col gap-gdt-6xl px-5 py-gdt-3xl md:gap-32 md:px-gdt-6xl md:py-gdt-5xl", className),
|
|
59
61
|
...props
|
|
60
62
|
});
|
|
61
63
|
}
|
|
62
64
|
function FooterHeader({ className, ...props }) {
|
|
63
65
|
return /* @__PURE__ */ jsx("div", {
|
|
64
66
|
"data-slot": "footer-header",
|
|
65
|
-
className: cn("flex
|
|
67
|
+
className: cn("flex w-full flex-col gap-1.5 border-b border-line-subtle pb-5 md:pb-7", className),
|
|
66
68
|
...props
|
|
67
69
|
});
|
|
68
70
|
}
|
|
69
71
|
function FooterTitle({ className, ...props }) {
|
|
70
72
|
return /* @__PURE__ */ jsx("h2", {
|
|
71
73
|
"data-slot": "footer-title",
|
|
72
|
-
className: cn("text-gdt-
|
|
74
|
+
className: cn("text-gdt-h4 text-fg-primary", className),
|
|
73
75
|
...props
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
function FooterDescription({ className, ...props }) {
|
|
77
79
|
return /* @__PURE__ */ jsx("p", {
|
|
78
80
|
"data-slot": "footer-description",
|
|
79
|
-
className: cn("text-gdt-
|
|
81
|
+
className: cn("text-gdt-sm text-fg-secondary", className),
|
|
80
82
|
...props
|
|
81
83
|
});
|
|
82
84
|
}
|
|
83
85
|
function FooterNav({ className, ...props }) {
|
|
84
86
|
return /* @__PURE__ */ jsx("nav", {
|
|
85
87
|
"data-slot": "footer-nav",
|
|
86
|
-
className: cn("grid
|
|
88
|
+
className: cn("grid grid-cols-2 gap-gdt-3xl md:grid-cols-4 xl:grid-cols-7", className),
|
|
87
89
|
...props
|
|
88
90
|
});
|
|
89
91
|
}
|
|
@@ -97,21 +99,21 @@ function FooterSection({ className, ...props }) {
|
|
|
97
99
|
function FooterSectionTitle({ className, ...props }) {
|
|
98
100
|
return /* @__PURE__ */ jsx("h3", {
|
|
99
101
|
"data-slot": "footer-section-title",
|
|
100
|
-
className: cn("text-gdt-
|
|
102
|
+
className: cn("text-gdt-md font-bold text-fg-primary", className),
|
|
101
103
|
...props
|
|
102
104
|
});
|
|
103
105
|
}
|
|
104
106
|
function FooterLinkList({ className, ...props }) {
|
|
105
107
|
return /* @__PURE__ */ jsx("ul", {
|
|
106
108
|
"data-slot": "footer-link-list",
|
|
107
|
-
className: cn("flex flex-col gap-gdt-
|
|
109
|
+
className: cn("flex flex-col gap-gdt-md", className),
|
|
108
110
|
...props
|
|
109
111
|
});
|
|
110
112
|
}
|
|
111
113
|
function FooterLinkItem({ className, ...props }) {
|
|
112
114
|
return /* @__PURE__ */ jsx("li", {
|
|
113
115
|
"data-slot": "footer-link-item",
|
|
114
|
-
className: cn("text-gdt-
|
|
116
|
+
className: cn("text-gdt-sm", className),
|
|
115
117
|
...props
|
|
116
118
|
});
|
|
117
119
|
}
|
|
@@ -119,10 +121,10 @@ function FooterLink({ className, children, render, showArrow = false, ...props }
|
|
|
119
121
|
return useRender({
|
|
120
122
|
defaultTagName: "a",
|
|
121
123
|
props: mergeProps({
|
|
122
|
-
className: cn("inline-flex items-center gap-gdt-sm text-fg-secondary transition-colors hover:text-fg-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-line-focus focus-visible:ring-offset-2", className),
|
|
123
|
-
children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { children }), showArrow && /* @__PURE__ */ jsx(
|
|
124
|
+
className: cn("inline-flex items-center gap-gdt-sm text-fg-secondary underline-offset-4 transition-colors hover:text-fg-brand hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-line-focus focus-visible:ring-offset-2", className),
|
|
125
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { children }), showArrow && /* @__PURE__ */ jsx(ChevronRight, {
|
|
124
126
|
"aria-hidden": "true",
|
|
125
|
-
|
|
127
|
+
className: "size-3.5"
|
|
126
128
|
})] })
|
|
127
129
|
}, props),
|
|
128
130
|
render,
|
|
@@ -132,21 +134,21 @@ function FooterLink({ className, children, render, showArrow = false, ...props }
|
|
|
132
134
|
function FooterContactGrid({ className, ...props }) {
|
|
133
135
|
return /* @__PURE__ */ jsx("div", {
|
|
134
136
|
"data-slot": "footer-contact-grid",
|
|
135
|
-
className: cn("grid gap-
|
|
137
|
+
className: cn("grid gap-5 lg:grid-cols-[minmax(0,1fr)_28.75rem] lg:gap-gdt-5xl", className),
|
|
136
138
|
...props
|
|
137
139
|
});
|
|
138
140
|
}
|
|
139
141
|
function FooterContact({ className, ...props }) {
|
|
140
142
|
return /* @__PURE__ */ jsx("address", {
|
|
141
143
|
"data-slot": "footer-contact",
|
|
142
|
-
className: cn("not-italic text-gdt-
|
|
144
|
+
className: cn("not-italic text-gdt-sm text-fg-secondary lg:order-first", className),
|
|
143
145
|
...props
|
|
144
146
|
});
|
|
145
147
|
}
|
|
146
148
|
function FooterContactTitle({ className, ...props }) {
|
|
147
149
|
return /* @__PURE__ */ jsx("h3", {
|
|
148
150
|
"data-slot": "footer-contact-title",
|
|
149
|
-
className: cn("mb-gdt-
|
|
151
|
+
className: cn("mb-gdt-xs text-gdt-sm font-bold text-fg-primary", className),
|
|
150
152
|
...props
|
|
151
153
|
});
|
|
152
154
|
}
|
|
@@ -167,45 +169,47 @@ function FooterSocialItem({ className, ...props }) {
|
|
|
167
169
|
function FooterSocialLink({ className, ...props }) {
|
|
168
170
|
return /* @__PURE__ */ jsx("a", {
|
|
169
171
|
"data-slot": "footer-social-link",
|
|
170
|
-
className: cn("inline-flex size-
|
|
172
|
+
className: cn("inline-flex size-10 items-center justify-center rounded-full bg-surface-raised text-fg-secondary transition-colors hover:bg-surface-brand hover:text-fg-on-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-line-focus focus-visible:ring-offset-2 [&>svg:not([class*='size-'])]:size-4.5", className),
|
|
171
173
|
...props
|
|
172
174
|
});
|
|
173
175
|
}
|
|
174
176
|
function FooterNewsletter({ className, ...props }) {
|
|
175
177
|
return /* @__PURE__ */ jsx("form", {
|
|
176
178
|
"data-slot": "footer-newsletter",
|
|
177
|
-
className: cn("flex flex-col gap-
|
|
179
|
+
className: cn("flex flex-col gap-3.5", className),
|
|
178
180
|
...props
|
|
179
181
|
});
|
|
180
182
|
}
|
|
181
183
|
function FooterNewsletterTitle({ className, ...props }) {
|
|
182
184
|
return /* @__PURE__ */ jsx("h3", {
|
|
183
185
|
"data-slot": "footer-newsletter-title",
|
|
184
|
-
className: cn("text-gdt-
|
|
186
|
+
className: cn("text-gdt-md font-semibold text-fg-primary", className),
|
|
185
187
|
...props
|
|
186
188
|
});
|
|
187
189
|
}
|
|
188
190
|
function FooterNewsletterDescription({ className, ...props }) {
|
|
189
191
|
return /* @__PURE__ */ jsx("p", {
|
|
190
192
|
"data-slot": "footer-newsletter-description",
|
|
191
|
-
className: cn("text-gdt-
|
|
193
|
+
className: cn("text-gdt-sm text-fg-secondary", className),
|
|
192
194
|
...props
|
|
193
195
|
});
|
|
194
196
|
}
|
|
195
|
-
function FooterNewsletterControl({ className, children, ...props }) {
|
|
196
|
-
return /* @__PURE__ */ jsx(
|
|
197
|
+
function FooterNewsletterControl({ className, children, size = "lg", ...props }) {
|
|
198
|
+
return /* @__PURE__ */ jsx("div", {
|
|
197
199
|
"data-slot": "footer-newsletter-control",
|
|
198
|
-
|
|
199
|
-
className: cn("max-w-md bg-canvas", className),
|
|
200
|
+
className: cn("flex w-full max-w-[28.75rem] flex-col gap-gdt-md md:flex-row", className),
|
|
200
201
|
...props,
|
|
201
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(
|
|
202
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Input, {
|
|
202
203
|
type: "email",
|
|
203
204
|
name: "email",
|
|
204
|
-
|
|
205
|
+
size,
|
|
206
|
+
placeholder: "Enter your email",
|
|
205
207
|
"aria-label": "Email address"
|
|
206
|
-
}), /* @__PURE__ */ jsx(
|
|
208
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
207
209
|
type: "submit",
|
|
208
210
|
variant: "primary",
|
|
211
|
+
size,
|
|
212
|
+
className: "w-full md:w-auto",
|
|
209
213
|
children: "Subscribe"
|
|
210
214
|
})] })
|
|
211
215
|
});
|
|
@@ -213,14 +217,14 @@ function FooterNewsletterControl({ className, children, ...props }) {
|
|
|
213
217
|
function FooterBottom({ className, ...props }) {
|
|
214
218
|
return /* @__PURE__ */ jsx("div", {
|
|
215
219
|
"data-slot": "footer-bottom",
|
|
216
|
-
className: cn("flex flex-col gap-
|
|
220
|
+
className: cn("flex flex-col gap-2.5 border-t border-line-subtle px-5 py-gdt-xl text-gdt-xs text-fg-secondary [&>[data-slot=footer-legal-links]]:order-first md:flex-row md:items-center md:justify-between md:px-gdt-6xl md:[&>[data-slot=footer-legal-links]]:order-none", className),
|
|
217
221
|
...props
|
|
218
222
|
});
|
|
219
223
|
}
|
|
220
224
|
function FooterLegalLinks({ className, ...props }) {
|
|
221
225
|
return /* @__PURE__ */ jsx("nav", {
|
|
222
226
|
"data-slot": "footer-legal-links",
|
|
223
|
-
className: cn("flex flex-wrap items-center gap-gdt-xl", className),
|
|
227
|
+
className: cn("flex flex-wrap items-center gap-5 md:gap-gdt-xl", className),
|
|
224
228
|
...props
|
|
225
229
|
});
|
|
226
230
|
}
|
package/dist/funnel-chart.d.ts
CHANGED
package/dist/heatmap-chart.d.ts
CHANGED