@giddaa-housing/ui 3.1.0 → 3.3.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 -3
- package/css/theme.css +4 -1
- package/dist/accordion.js +3 -2
- package/dist/activity-timeline.js +2 -2
- package/dist/alert.js +4 -4
- package/dist/breadcrumb.js +3 -3
- package/dist/button.js +8 -4
- package/dist/calendar.js +3 -3
- package/dist/call-card.js +1 -1
- package/dist/carousel.js +3 -3
- package/dist/chart.js +1 -1
- package/dist/chat.js +1 -1
- package/dist/checkbox.js +2 -2
- 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.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 +8 -3
- package/dist/footer.js +16 -5
- package/dist/icons.d.ts +93 -0
- package/dist/icons.js +905 -0
- package/dist/infinite-scroll.js +1 -1
- package/dist/input-otp.js +2 -2
- package/dist/kpi-card.js +1 -1
- package/dist/match.js +1 -1
- package/dist/media-gallery-hero.js +4 -4
- package/dist/media-player.js +59 -48
- package/dist/message.js +1 -1
- package/dist/mobile-sidebar.js +4 -4
- package/dist/multi-step-form.js +2 -2
- package/dist/number-input.js +3 -3
- package/dist/pagination.js +4 -4
- package/dist/password-input.js +1 -1
- package/dist/phone-input.js +4 -4
- package/dist/photo-gallery.js +3 -3
- package/dist/price-tag.js +1 -1
- package/dist/property-listing-card.js +1 -1
- package/dist/rich-text-editor.js +4 -4
- package/dist/scroll-spy.d.ts +61 -0
- package/dist/scroll-spy.js +295 -0
- package/dist/search-input.js +1 -1
- package/dist/select.js +6 -6
- package/dist/sheet.js +2 -2
- package/dist/sidebar.js +1 -1
- package/dist/stepper.js +2 -2
- package/dist/styles.css +239 -26
- package/dist/tabs.d.ts +13 -1
- package/dist/tabs.js +9 -2
- 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 +56 -52
- package/dist/top-navbar.js +3 -3
- package/dist/video-player-dialog.d.ts +57 -0
- package/dist/video-player-dialog.js +188 -0
- package/package.json +17 -2
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
+
import { useComponentSize } from "./size-context.js";
|
|
4
|
+
import { t as useReducedMotion } from "./use-reduced-motion-BDvOK14x.js";
|
|
5
|
+
import { t as useUncontrolled } from "./use-uncontrolled-CLfM1XbB.js";
|
|
6
|
+
import { resolveTabsListVariant, tabsIndicatorClassName, tabsListVariants, tabsTriggerClassName } from "./tabs.js";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
//#region src/scroll-spy.tsx
|
|
10
|
+
const ScrollSpyContext = React.createContext(null);
|
|
11
|
+
/**
|
|
12
|
+
* The element this spy's sections actually scroll inside — a scrollable
|
|
13
|
+
* ancestor, or `document.scrollingElement` for the page. Everything is
|
|
14
|
+
* measured against it, so each instance answers only to its own scrollport:
|
|
15
|
+
* a spy in an open Sheet and a spy on the page behind it never see each
|
|
16
|
+
* other's scrolling.
|
|
17
|
+
*
|
|
18
|
+
* Returns `null` when nothing scrolls. A `position: fixed` ancestor with no
|
|
19
|
+
* scrollable element inside it — a short Dialog, say — is pinned to the
|
|
20
|
+
* viewport, so it neither moves with the page nor scrolls on its own. Falling
|
|
21
|
+
* back to the page there would read the page's scroll position and pin the
|
|
22
|
+
* last section active for a reader who never scrolled anything.
|
|
23
|
+
*
|
|
24
|
+
* Walked from a section rather than the root: the root often sits *outside*
|
|
25
|
+
* the scrolling region, as it does when a Sheet puts the list in its header
|
|
26
|
+
* and the sections in its scrolling body.
|
|
27
|
+
*/
|
|
28
|
+
function getScrollport(element) {
|
|
29
|
+
let node = element;
|
|
30
|
+
while (node && node !== document.documentElement) {
|
|
31
|
+
const { overflowY, position } = getComputedStyle(node);
|
|
32
|
+
if (overflowY === "auto" || overflowY === "scroll") return node;
|
|
33
|
+
if (position === "fixed") return null;
|
|
34
|
+
node = node.parentElement;
|
|
35
|
+
}
|
|
36
|
+
return document.scrollingElement;
|
|
37
|
+
}
|
|
38
|
+
function useScrollSpyContext(part) {
|
|
39
|
+
const context = React.useContext(ScrollSpyContext);
|
|
40
|
+
if (!context) throw new Error(`\`${part}\` must be rendered inside \`ScrollSpy\`.`);
|
|
41
|
+
return context;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* `Tabs` for a page that shows everything at once: every section stays mounted
|
|
45
|
+
* and visible, the triggers scroll to their section, and the active trigger
|
|
46
|
+
* tracks whichever section the reader is currently on.
|
|
47
|
+
*
|
|
48
|
+
* The parts mirror the `Tabs` API — `ScrollSpy` / `ScrollSpyList` /
|
|
49
|
+
* `ScrollSpyTrigger` / `ScrollSpyContent`, matched by `value` — and the list
|
|
50
|
+
* takes the same `variant` and `size` as `TabsList`, so the two read as one
|
|
51
|
+
* family. Overflow ("More" dropdowns, per-breakpoint trigger counts) is the
|
|
52
|
+
* consuming app's job, exactly as it is with `Tabs`;
|
|
53
|
+
* `scrollSpyTriggerClassName` is exported so an overflow button can match the
|
|
54
|
+
* real triggers.
|
|
55
|
+
*/
|
|
56
|
+
function ScrollSpy({ className, orientation = "horizontal", value, defaultValue, onValueChange, scrollOffset = 0, children, ...props }) {
|
|
57
|
+
const baseId = React.useId();
|
|
58
|
+
const reducedMotion = useReducedMotion();
|
|
59
|
+
const [activeValue, setActiveValue] = useUncontrolled({
|
|
60
|
+
value,
|
|
61
|
+
defaultValue,
|
|
62
|
+
onChange: (next) => {
|
|
63
|
+
if (next !== void 0) onValueChange?.(next);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const sectionsRef = React.useRef(/* @__PURE__ */ new Map());
|
|
67
|
+
const [sectionsVersion, setSectionsVersion] = React.useState(0);
|
|
68
|
+
const activeRef = React.useRef(activeValue);
|
|
69
|
+
const commitRef = React.useRef(setActiveValue);
|
|
70
|
+
React.useEffect(() => {
|
|
71
|
+
activeRef.current = activeValue;
|
|
72
|
+
commitRef.current = setActiveValue;
|
|
73
|
+
});
|
|
74
|
+
const registerSection = React.useCallback((sectionValue, element) => {
|
|
75
|
+
if (element) sectionsRef.current.set(sectionValue, element);
|
|
76
|
+
else sectionsRef.current.delete(sectionValue);
|
|
77
|
+
setSectionsVersion((version) => version + 1);
|
|
78
|
+
}, []);
|
|
79
|
+
React.useEffect(() => {
|
|
80
|
+
let frame = 0;
|
|
81
|
+
const [firstSection] = sectionsRef.current.values();
|
|
82
|
+
const scrollport = getScrollport(firstSection ?? null);
|
|
83
|
+
const isPage = scrollport === document.scrollingElement;
|
|
84
|
+
const measure = () => {
|
|
85
|
+
frame = 0;
|
|
86
|
+
const sections = [...sectionsRef.current.entries()].map(([sectionValue, element]) => ({
|
|
87
|
+
value: sectionValue,
|
|
88
|
+
top: element.getBoundingClientRect().top
|
|
89
|
+
})).sort((a, b) => a.top - b.top);
|
|
90
|
+
const first = sections[0];
|
|
91
|
+
const last = sections.at(-1);
|
|
92
|
+
if (!(first && last)) return;
|
|
93
|
+
const originTop = scrollport && !isPage ? scrollport.getBoundingClientRect().top : 0;
|
|
94
|
+
const atBottom = scrollport ? scrollport.scrollTop + scrollport.clientHeight >= scrollport.scrollHeight - 2 : false;
|
|
95
|
+
let next = first.value;
|
|
96
|
+
if (atBottom) next = last.value;
|
|
97
|
+
else for (const section of sections) if (section.top - originTop <= scrollOffset + 2) next = section.value;
|
|
98
|
+
if (next !== activeRef.current) {
|
|
99
|
+
activeRef.current = next;
|
|
100
|
+
commitRef.current(next);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const schedule = () => {
|
|
104
|
+
if (!frame) frame = requestAnimationFrame(measure);
|
|
105
|
+
};
|
|
106
|
+
measure();
|
|
107
|
+
const scrollTarget = isPage ? window : scrollport;
|
|
108
|
+
scrollTarget?.addEventListener("scroll", schedule, { passive: true });
|
|
109
|
+
window.addEventListener("resize", schedule, { passive: true });
|
|
110
|
+
return () => {
|
|
111
|
+
if (frame) cancelAnimationFrame(frame);
|
|
112
|
+
scrollTarget?.removeEventListener("scroll", schedule);
|
|
113
|
+
window.removeEventListener("resize", schedule);
|
|
114
|
+
};
|
|
115
|
+
}, [scrollOffset, sectionsVersion]);
|
|
116
|
+
const scrollToSection = React.useCallback((sectionValue) => {
|
|
117
|
+
const element = sectionsRef.current.get(sectionValue);
|
|
118
|
+
if (!element) return;
|
|
119
|
+
activeRef.current = sectionValue;
|
|
120
|
+
commitRef.current(sectionValue);
|
|
121
|
+
element.scrollIntoView({
|
|
122
|
+
behavior: reducedMotion ? "auto" : "smooth",
|
|
123
|
+
block: "start"
|
|
124
|
+
});
|
|
125
|
+
element.focus({ preventScroll: true });
|
|
126
|
+
}, [reducedMotion]);
|
|
127
|
+
const context = React.useMemo(() => ({
|
|
128
|
+
activeValue,
|
|
129
|
+
scrollOffset,
|
|
130
|
+
registerSection,
|
|
131
|
+
scrollToSection,
|
|
132
|
+
getTriggerId: (sectionValue) => `${baseId}-trigger-${sectionValue}`,
|
|
133
|
+
getSectionId: (sectionValue) => `${baseId}-section-${sectionValue}`
|
|
134
|
+
}), [
|
|
135
|
+
activeValue,
|
|
136
|
+
baseId,
|
|
137
|
+
registerSection,
|
|
138
|
+
scrollOffset,
|
|
139
|
+
scrollToSection
|
|
140
|
+
]);
|
|
141
|
+
return /* @__PURE__ */ jsx(ScrollSpyContext.Provider, {
|
|
142
|
+
value: context,
|
|
143
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
144
|
+
"data-slot": "scroll-spy",
|
|
145
|
+
className: cn("group/tabs flex gap-3 data-[orientation=horizontal]:flex-col", className),
|
|
146
|
+
"data-orientation": orientation,
|
|
147
|
+
...props,
|
|
148
|
+
children
|
|
149
|
+
})
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Keeps `element` inside `list`'s own scrollport, on whichever axis actually
|
|
154
|
+
* overflows. Deliberately not `scrollIntoView`: that walks every scrollable
|
|
155
|
+
* ancestor, and the page is the very thing driving the active section here —
|
|
156
|
+
* nudging it back would fight the reader mid-scroll. This touches only the
|
|
157
|
+
* list's `scrollLeft`/`scrollTop`.
|
|
158
|
+
*
|
|
159
|
+
* "Nearest" semantics with a margin: an already-visible trigger doesn't move,
|
|
160
|
+
* and one scrolled to leaves a sliver of its neighbour showing rather than
|
|
161
|
+
* sitting flush against the edge.
|
|
162
|
+
*/
|
|
163
|
+
const FOLLOW_MARGIN = 24;
|
|
164
|
+
function followActiveTrigger(list, element, behavior) {
|
|
165
|
+
const axes = [{
|
|
166
|
+
overflows: list.scrollWidth > list.clientWidth,
|
|
167
|
+
start: element.offsetLeft,
|
|
168
|
+
size: element.offsetWidth,
|
|
169
|
+
view: list.scrollLeft,
|
|
170
|
+
viewSize: list.clientWidth,
|
|
171
|
+
key: "left"
|
|
172
|
+
}, {
|
|
173
|
+
overflows: list.scrollHeight > list.clientHeight,
|
|
174
|
+
start: element.offsetTop,
|
|
175
|
+
size: element.offsetHeight,
|
|
176
|
+
view: list.scrollTop,
|
|
177
|
+
viewSize: list.clientHeight,
|
|
178
|
+
key: "top"
|
|
179
|
+
}];
|
|
180
|
+
const options = { behavior };
|
|
181
|
+
for (const axis of axes) {
|
|
182
|
+
if (!axis.overflows) continue;
|
|
183
|
+
const end = axis.start + axis.size;
|
|
184
|
+
const viewEnd = axis.view + axis.viewSize;
|
|
185
|
+
if (axis.start < axis.view) options[axis.key] = Math.max(0, axis.start - FOLLOW_MARGIN);
|
|
186
|
+
else if (end > viewEnd) options[axis.key] = end - axis.viewSize + FOLLOW_MARGIN;
|
|
187
|
+
}
|
|
188
|
+
if (options.left !== void 0 || options.top !== void 0) list.scrollTo(options);
|
|
189
|
+
}
|
|
190
|
+
function ScrollSpyList({ className, variant = "underline", size, children, scrollActiveIntoView = false, "aria-label": ariaLabel = "Section navigation", ...props }) {
|
|
191
|
+
const { activeValue } = useScrollSpyContext("ScrollSpyList");
|
|
192
|
+
const reducedMotion = useReducedMotion();
|
|
193
|
+
const hasFollowedRef = React.useRef(false);
|
|
194
|
+
const resolvedVariant = resolveTabsListVariant(variant);
|
|
195
|
+
const resolvedSize = useComponentSize(size);
|
|
196
|
+
const listRef = React.useRef(null);
|
|
197
|
+
const [indicator, setIndicator] = React.useState(null);
|
|
198
|
+
React.useEffect(() => {
|
|
199
|
+
const list = listRef.current;
|
|
200
|
+
if (!list) return;
|
|
201
|
+
const measure = () => {
|
|
202
|
+
const active = list.querySelector("[data-slot=\"scroll-spy-trigger\"][data-active]");
|
|
203
|
+
const next = active ? {
|
|
204
|
+
left: active.offsetLeft,
|
|
205
|
+
top: active.offsetTop,
|
|
206
|
+
width: active.offsetWidth,
|
|
207
|
+
height: active.offsetHeight
|
|
208
|
+
} : null;
|
|
209
|
+
setIndicator((current) => current?.left === next?.left && current?.top === next?.top && current?.width === next?.width && current?.height === next?.height ? current : next);
|
|
210
|
+
};
|
|
211
|
+
measure();
|
|
212
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
213
|
+
const observer = new ResizeObserver(measure);
|
|
214
|
+
observer.observe(list);
|
|
215
|
+
for (const trigger of list.querySelectorAll("[data-slot=\"scroll-spy-trigger\"]")) observer.observe(trigger);
|
|
216
|
+
return () => observer.disconnect();
|
|
217
|
+
}, [activeValue]);
|
|
218
|
+
React.useEffect(() => {
|
|
219
|
+
const list = listRef.current;
|
|
220
|
+
if (!(scrollActiveIntoView && list)) return;
|
|
221
|
+
const active = list.querySelector("[data-slot=\"scroll-spy-trigger\"][data-active]");
|
|
222
|
+
if (!active) return;
|
|
223
|
+
const behavior = reducedMotion || !hasFollowedRef.current ? "auto" : "smooth";
|
|
224
|
+
hasFollowedRef.current = true;
|
|
225
|
+
followActiveTrigger(list, active, behavior);
|
|
226
|
+
}, [
|
|
227
|
+
activeValue,
|
|
228
|
+
reducedMotion,
|
|
229
|
+
scrollActiveIntoView
|
|
230
|
+
]);
|
|
231
|
+
return /* @__PURE__ */ jsxs("nav", {
|
|
232
|
+
ref: listRef,
|
|
233
|
+
"data-slot": "scroll-spy-list",
|
|
234
|
+
"data-variant": resolvedVariant,
|
|
235
|
+
"data-size": resolvedSize,
|
|
236
|
+
"aria-label": ariaLabel,
|
|
237
|
+
className: cn(tabsListVariants({ variant: resolvedVariant }), className),
|
|
238
|
+
style: indicator ? {
|
|
239
|
+
"--active-tab-left": `${indicator.left}px`,
|
|
240
|
+
"--active-tab-top": `${indicator.top}px`,
|
|
241
|
+
"--active-tab-width": `${indicator.width}px`,
|
|
242
|
+
"--active-tab-height": `${indicator.height}px`
|
|
243
|
+
} : void 0,
|
|
244
|
+
...props,
|
|
245
|
+
children: [children, indicator ? /* @__PURE__ */ jsx("span", {
|
|
246
|
+
"aria-hidden": true,
|
|
247
|
+
className: tabsIndicatorClassName
|
|
248
|
+
}) : null]
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Trigger styling, exported so an overflow "More" button outside the list can
|
|
253
|
+
* render the same look — the `Tabs` trigger classes verbatim, so the two
|
|
254
|
+
* components stay pixel-identical.
|
|
255
|
+
*/
|
|
256
|
+
const scrollSpyTriggerClassName = tabsTriggerClassName;
|
|
257
|
+
function ScrollSpyTrigger({ className, value, type = "button", onClick, ...props }) {
|
|
258
|
+
const { activeValue, getSectionId, getTriggerId, scrollToSection } = useScrollSpyContext("ScrollSpyTrigger");
|
|
259
|
+
const isActive = activeValue === value;
|
|
260
|
+
return /* @__PURE__ */ jsx("button", {
|
|
261
|
+
"data-slot": "scroll-spy-trigger",
|
|
262
|
+
id: getTriggerId(value),
|
|
263
|
+
type,
|
|
264
|
+
"aria-controls": getSectionId(value),
|
|
265
|
+
"aria-current": isActive ? "location" : void 0,
|
|
266
|
+
"data-active": isActive ? "" : void 0,
|
|
267
|
+
className: cn(scrollSpyTriggerClassName, "cursor-pointer", className),
|
|
268
|
+
onClick: (event) => {
|
|
269
|
+
onClick?.(event);
|
|
270
|
+
if (!event.defaultPrevented) scrollToSection(value);
|
|
271
|
+
},
|
|
272
|
+
...props
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
function ScrollSpyContent({ className, value, style, tabIndex = -1, ...props }) {
|
|
276
|
+
const { activeValue, getSectionId, getTriggerId, registerSection, scrollOffset } = useScrollSpyContext("ScrollSpyContent");
|
|
277
|
+
return /* @__PURE__ */ jsx("section", {
|
|
278
|
+
ref: React.useCallback((element) => {
|
|
279
|
+
registerSection(value, element);
|
|
280
|
+
}, [registerSection, value]),
|
|
281
|
+
"data-slot": "scroll-spy-content",
|
|
282
|
+
"data-active": activeValue === value ? "" : void 0,
|
|
283
|
+
id: getSectionId(value),
|
|
284
|
+
"aria-labelledby": getTriggerId(value),
|
|
285
|
+
tabIndex,
|
|
286
|
+
className: cn("flex-1 text-sm outline-none", className),
|
|
287
|
+
style: {
|
|
288
|
+
scrollMarginTop: scrollOffset,
|
|
289
|
+
...style
|
|
290
|
+
},
|
|
291
|
+
...props
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
//#endregion
|
|
295
|
+
export { ScrollSpy, ScrollSpyContent, ScrollSpyList, ScrollSpyTrigger, scrollSpyTriggerClassName };
|
package/dist/search-input.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Search, X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "./input-group.js";
|
|
4
|
-
import { Search, X } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
//#region src/search-input.tsx
|
package/dist/select.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check, ChevronDown, ChevronUp } 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, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
import * as React from "react";
|
|
@@ -66,7 +66,7 @@ function SelectTrigger({ className, children, unstyled, ...props }) {
|
|
|
66
66
|
"data-size": resolvedSize,
|
|
67
67
|
className: cn(!unstyled && selectTriggerVariants({ size: resolvedSize }), className),
|
|
68
68
|
...props,
|
|
69
|
-
children: [children, /* @__PURE__ */ jsx(Select$1.Icon, { render: /* @__PURE__ */ jsx(
|
|
69
|
+
children: [children, /* @__PURE__ */ jsx(Select$1.Icon, { render: /* @__PURE__ */ jsx(ChevronDown, { className: "text-line-strong transition-transform group-data-disabled/select-trigger:text-fg-caption-placeholder data-popup-open:rotate-180" }) })]
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
function SelectContent({ className, children, side = "bottom", sideOffset = 8, align = "center", alignOffset = 0, alignItemWithTrigger = false, ...props }) {
|
|
@@ -111,9 +111,9 @@ function SelectItem({ className, children, ...props }) {
|
|
|
111
111
|
children: [multiple ? /* @__PURE__ */ jsx(Select$1.ItemIndicator, {
|
|
112
112
|
keepMounted: true,
|
|
113
113
|
className: "flex size-5 shrink-0 items-center justify-center rounded-sm border border-line bg-canvas text-transparent transition-[background-color,border-color,color] group-data-selected/select-item:border-action-primary group-data-selected/select-item:bg-action-primary group-data-selected/select-item:text-fg-on-brand group-data-disabled/select-item:border-line-subtle group-data-disabled/select-item:bg-surface group-data-disabled/select-item:text-fg-caption-placeholder [&>svg]:size-3",
|
|
114
|
-
children: /* @__PURE__ */ jsx(
|
|
114
|
+
children: /* @__PURE__ */ jsx(Check, {})
|
|
115
115
|
}) : null, /* @__PURE__ */ jsx(Select$1.ItemText, {
|
|
116
|
-
className: "flex min-w-0 flex-1 shrink-0 gap-2
|
|
116
|
+
className: "flex min-w-0 flex-1 shrink-0 items-center gap-2",
|
|
117
117
|
children
|
|
118
118
|
})]
|
|
119
119
|
});
|
|
@@ -130,7 +130,7 @@ function SelectScrollUpButton({ className, ...props }) {
|
|
|
130
130
|
"data-slot": "select-scroll-up-button",
|
|
131
131
|
className: cn("sticky top-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4", className),
|
|
132
132
|
...props,
|
|
133
|
-
children: /* @__PURE__ */ jsx(
|
|
133
|
+
children: /* @__PURE__ */ jsx(ChevronUp, {})
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
function SelectScrollDownButton({ className, ...props }) {
|
|
@@ -138,7 +138,7 @@ function SelectScrollDownButton({ className, ...props }) {
|
|
|
138
138
|
"data-slot": "select-scroll-down-button",
|
|
139
139
|
className: cn("sticky bottom-0 z-10 flex h-7 w-full cursor-default items-center justify-center bg-canvas text-fg-secondary [&_svg:not([class*='size-'])]:size-4", className),
|
|
140
140
|
...props,
|
|
141
|
-
children: /* @__PURE__ */ jsx(
|
|
141
|
+
children: /* @__PURE__ */ jsx(ChevronDown, {})
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
//#endregion
|
package/dist/sheet.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { X } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { SizeProvider } from "./size-context.js";
|
|
4
5
|
import { Button } from "./button.js";
|
|
5
6
|
import { DialogNestingProvider, useDialogNestingDepth } from "./dialog-nesting.js";
|
|
6
|
-
import { XIcon } from "lucide-react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { cva } from "class-variance-authority";
|
|
9
9
|
import { Dialog } from "@base-ui/react/dialog";
|
|
@@ -67,7 +67,7 @@ function SheetContent({ className, children, side = "left", size = "md", showClo
|
|
|
67
67
|
variant: "ghost",
|
|
68
68
|
className: "absolute z-10 size-7 border border-line bg-surface p-0 text-fg-primary shadow-(--elevation-e1-shadow) hover:bg-surface-raised group-data-[nested-dialog-open]/sheet-content:hidden group-data-[side=bottom]/sheet-content:-top-9 group-data-[side=bottom]/sheet-content:right-4 group-data-[side=top]/sheet-content:-bottom-9 group-data-[side=top]/sheet-content:right-4 group-data-[side=left]/sheet-content:-right-9 group-data-[side=left]/sheet-content:top-4 group-data-[side=right]/sheet-content:-left-9 group-data-[side=right]/sheet-content:top-4",
|
|
69
69
|
size: "icon-xs",
|
|
70
|
-
children: [/* @__PURE__ */ jsx(
|
|
70
|
+
children: [/* @__PURE__ */ jsx(X, {}), /* @__PURE__ */ jsx("span", {
|
|
71
71
|
className: "sr-only",
|
|
72
72
|
children: "Close"
|
|
73
73
|
})]
|
package/dist/sidebar.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Menu } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
4
|
import { Separator } from "./separator.js";
|
|
4
5
|
import { Button } from "./button.js";
|
|
@@ -7,7 +8,6 @@ import { t as useUncontrolled } from "./use-uncontrolled-CLfM1XbB.js";
|
|
|
7
8
|
import { Skeleton } from "./skeleton.js";
|
|
8
9
|
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
9
10
|
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
|
|
10
|
-
import { Menu } from "lucide-react";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
13
13
|
import { useRender } from "@base-ui/react/use-render";
|
package/dist/stepper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Check } from "./icons.js";
|
|
2
3
|
import { t as cn } from "./cn-BI_4DMBf.js";
|
|
3
|
-
import { CheckIcon } from "lucide-react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
import * as React from "react";
|
|
@@ -88,7 +88,7 @@ function StepperIndicator({ className, state: stateProp, children, ...props }) {
|
|
|
88
88
|
"data-state": resolved,
|
|
89
89
|
className: cn(indicatorVariants({ state: resolved }), className),
|
|
90
90
|
...props,
|
|
91
|
-
children: children ?? (resolved === "complete" ? /* @__PURE__ */ jsx(
|
|
91
|
+
children: children ?? (resolved === "complete" ? /* @__PURE__ */ jsx(Check, {
|
|
92
92
|
className: "size-4 sm:size-4.5",
|
|
93
93
|
strokeWidth: 2.5
|
|
94
94
|
}) : step)
|