@journ/bloom 0.1.1
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/DESIGN.md +287 -0
- package/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/accordion-parts.d.ts +9 -0
- package/dist/accordion-parts.js +37 -0
- package/dist/accordion.d.ts +10 -0
- package/dist/accordion.js +10 -0
- package/dist/alert-dialog-parts.d.ts +16 -0
- package/dist/alert-dialog-parts.js +33 -0
- package/dist/alert-dialog.d.ts +15 -0
- package/dist/alert-dialog.js +15 -0
- package/dist/alert.d.ts +48 -0
- package/dist/alert.js +51 -0
- package/dist/animated-size.d.ts +6 -0
- package/dist/animated-size.js +12 -0
- package/dist/avatar-parts.d.ts +10 -0
- package/dist/avatar-parts.js +20 -0
- package/dist/avatar.d.ts +9 -0
- package/dist/avatar.js +9 -0
- package/dist/badge.d.ts +38 -0
- package/dist/badge.js +22 -0
- package/dist/breadcrumbs.d.ts +18 -0
- package/dist/breadcrumbs.js +44 -0
- package/dist/bulk-bar.d.ts +13 -0
- package/dist/bulk-bar.js +27 -0
- package/dist/button.d.ts +40 -0
- package/dist/button.js +41 -0
- package/dist/calendar-parts.d.ts +17 -0
- package/dist/calendar-parts.js +90 -0
- package/dist/calendar.d.ts +17 -0
- package/dist/calendar.js +17 -0
- package/dist/card.d.ts +51 -0
- package/dist/card.js +63 -0
- package/dist/carousel-parts.d.ts +13 -0
- package/dist/carousel-parts.js +53 -0
- package/dist/carousel.d.ts +11 -0
- package/dist/carousel.js +11 -0
- package/dist/checkbox-parts.d.ts +8 -0
- package/dist/checkbox-parts.js +21 -0
- package/dist/checkbox.d.ts +8 -0
- package/dist/checkbox.js +8 -0
- package/dist/chip.d.ts +45 -0
- package/dist/chip.js +55 -0
- package/dist/collapsible-parts.d.ts +8 -0
- package/dist/collapsible-parts.js +22 -0
- package/dist/collapsible.d.ts +9 -0
- package/dist/collapsible.js +9 -0
- package/dist/combobox-parts.d.ts +22 -0
- package/dist/combobox-parts.js +54 -0
- package/dist/combobox.d.ts +26 -0
- package/dist/combobox.js +21 -0
- package/dist/command-palette-parts.d.ts +13 -0
- package/dist/command-palette-parts.js +19 -0
- package/dist/command-palette.d.ts +17 -0
- package/dist/command-palette.js +17 -0
- package/dist/composer.d.ts +12 -0
- package/dist/composer.js +21 -0
- package/dist/context-menu-parts.d.ts +15 -0
- package/dist/context-menu-parts.js +10 -0
- package/dist/context-menu.d.ts +20 -0
- package/dist/context-menu.js +13 -0
- package/dist/currency-input-parts.d.ts +8 -0
- package/dist/currency-input-parts.js +13 -0
- package/dist/currency-input.d.ts +8 -0
- package/dist/currency-input.js +8 -0
- package/dist/data-table-parts.d.ts +10 -0
- package/dist/data-table-parts.js +65 -0
- package/dist/data-table.d.ts +12 -0
- package/dist/data-table.js +12 -0
- package/dist/date-input-parts.d.ts +7 -0
- package/dist/date-input-parts.js +12 -0
- package/dist/date-input.d.ts +8 -0
- package/dist/date-input.js +8 -0
- package/dist/date-picker-parts.d.ts +11 -0
- package/dist/date-picker-parts.js +8 -0
- package/dist/date-picker.d.ts +20 -0
- package/dist/date-picker.js +15 -0
- package/dist/date-range-picker-parts.d.ts +11 -0
- package/dist/date-range-picker-parts.js +8 -0
- package/dist/date-range-picker.d.ts +20 -0
- package/dist/date-range-picker.js +15 -0
- package/dist/description-list.d.ts +12 -0
- package/dist/description-list.js +23 -0
- package/dist/dialog-parts.d.ts +15 -0
- package/dist/dialog-parts.js +32 -0
- package/dist/dialog.d.ts +15 -0
- package/dist/dialog.js +15 -0
- package/dist/divider.d.ts +6 -0
- package/dist/divider.js +12 -0
- package/dist/drawer-parts.d.ts +13 -0
- package/dist/drawer-parts.js +31 -0
- package/dist/drawer.d.ts +15 -0
- package/dist/drawer.js +15 -0
- package/dist/dropdown-menu-parts.d.ts +15 -0
- package/dist/dropdown-menu-parts.js +10 -0
- package/dist/dropdown-menu.d.ts +20 -0
- package/dist/dropdown-menu.js +13 -0
- package/dist/empty-state.d.ts +16 -0
- package/dist/empty-state.js +40 -0
- package/dist/field-parts.d.ts +10 -0
- package/dist/field-parts.js +25 -0
- package/dist/field.d.ts +11 -0
- package/dist/field.js +11 -0
- package/dist/file-dropzone-parts.d.ts +12 -0
- package/dist/file-dropzone-parts.js +32 -0
- package/dist/file-dropzone.d.ts +10 -0
- package/dist/file-dropzone.js +10 -0
- package/dist/heading.d.ts +31 -0
- package/dist/heading.js +26 -0
- package/dist/hover-card-parts.d.ts +8 -0
- package/dist/hover-card-parts.js +20 -0
- package/dist/hover-card.d.ts +9 -0
- package/dist/hover-card.js +9 -0
- package/dist/icon-button.d.ts +44 -0
- package/dist/icon-button.js +39 -0
- package/dist/icon.d.ts +30 -0
- package/dist/icon.js +27 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.js +89 -0
- package/dist/input.d.ts +7 -0
- package/dist/input.js +14 -0
- package/dist/lib/cn.d.ts +6 -0
- package/dist/lib/cn.js +7 -0
- package/dist/lib/icon-tile.d.ts +32 -0
- package/dist/lib/icon-tile.js +23 -0
- package/dist/lib/interactive.d.ts +11 -0
- package/dist/lib/interactive.js +19 -0
- package/dist/lib/menu-parts.d.ts +25 -0
- package/dist/lib/menu-parts.js +41 -0
- package/dist/lib/modal-content.d.ts +10 -0
- package/dist/lib/modal-content.js +17 -0
- package/dist/lib/modal-parts.d.ts +7 -0
- package/dist/lib/modal-parts.js +15 -0
- package/dist/lib/overlay.d.ts +41 -0
- package/dist/lib/overlay.js +22 -0
- package/dist/lib/picker.d.ts +18 -0
- package/dist/lib/picker.js +25 -0
- package/dist/lib/text-styles.d.ts +25 -0
- package/dist/lib/text-styles.js +25 -0
- package/dist/lib/theme.d.ts +43 -0
- package/dist/lib/theme.js +45 -0
- package/dist/lib/tones.d.ts +52 -0
- package/dist/lib/tones.js +55 -0
- package/dist/lib/tv.d.ts +2 -0
- package/dist/lib/tv.js +2 -0
- package/dist/lib/use-enter.d.ts +15 -0
- package/dist/lib/use-enter.js +54 -0
- package/dist/link.d.ts +8 -0
- package/dist/link.js +13 -0
- package/dist/markdown.d.ts +10 -0
- package/dist/markdown.js +70 -0
- package/dist/message.d.ts +15 -0
- package/dist/message.js +25 -0
- package/dist/month-picker-parts.d.ts +2 -0
- package/dist/month-picker-parts.js +3 -0
- package/dist/month-picker.d.ts +15 -0
- package/dist/month-picker.js +15 -0
- package/dist/month-stepper-parts.d.ts +11 -0
- package/dist/month-stepper-parts.js +37 -0
- package/dist/month-stepper.d.ts +10 -0
- package/dist/month-stepper.js +10 -0
- package/dist/multiple-selector-parts.d.ts +18 -0
- package/dist/multiple-selector-parts.js +28 -0
- package/dist/multiple-selector.d.ts +28 -0
- package/dist/multiple-selector.js +23 -0
- package/dist/nav-bar.d.ts +10 -0
- package/dist/nav-bar.js +23 -0
- package/dist/navigation-menu-parts.d.ts +12 -0
- package/dist/navigation-menu-parts.js +47 -0
- package/dist/navigation-menu.d.ts +12 -0
- package/dist/navigation-menu.js +12 -0
- package/dist/otp-input-parts.d.ts +8 -0
- package/dist/otp-input-parts.js +17 -0
- package/dist/otp-input.d.ts +9 -0
- package/dist/otp-input.js +9 -0
- package/dist/page-header.d.ts +12 -0
- package/dist/page-header.js +23 -0
- package/dist/page.d.ts +45 -0
- package/dist/page.js +41 -0
- package/dist/pagination.d.ts +18 -0
- package/dist/pagination.js +49 -0
- package/dist/pill-select.d.ts +5 -0
- package/dist/pill-select.js +21 -0
- package/dist/popover-parts.d.ts +9 -0
- package/dist/popover-parts.js +21 -0
- package/dist/popover.d.ts +10 -0
- package/dist/popover.js +10 -0
- package/dist/portal.d.ts +2 -0
- package/dist/portal.js +2 -0
- package/dist/progress-parts.d.ts +38 -0
- package/dist/progress-parts.js +25 -0
- package/dist/progress.d.ts +8 -0
- package/dist/progress.js +8 -0
- package/dist/quantity-input-parts.d.ts +11 -0
- package/dist/quantity-input-parts.js +36 -0
- package/dist/quantity-input.d.ts +10 -0
- package/dist/quantity-input.js +10 -0
- package/dist/radio-parts.d.ts +7 -0
- package/dist/radio-parts.js +19 -0
- package/dist/radio.d.ts +8 -0
- package/dist/radio.js +8 -0
- package/dist/scroll-area-parts.d.ts +9 -0
- package/dist/scroll-area-parts.js +23 -0
- package/dist/scroll-area.d.ts +10 -0
- package/dist/scroll-area.js +10 -0
- package/dist/select-parts.d.ts +13 -0
- package/dist/select-parts.js +46 -0
- package/dist/select.d.ts +14 -0
- package/dist/select.js +14 -0
- package/dist/sheet-parts.d.ts +33 -0
- package/dist/sheet-parts.js +41 -0
- package/dist/sheet.d.ts +16 -0
- package/dist/sheet.js +16 -0
- package/dist/sidebar.d.ts +24 -0
- package/dist/sidebar.js +58 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +11 -0
- package/dist/slider-parts.d.ts +9 -0
- package/dist/slider-parts.js +26 -0
- package/dist/slider.d.ts +10 -0
- package/dist/slider.js +10 -0
- package/dist/spinner.d.ts +5 -0
- package/dist/spinner.js +10 -0
- package/dist/stack-parts.d.ts +39 -0
- package/dist/stack-parts.js +35 -0
- package/dist/stack.d.ts +10 -0
- package/dist/stack.js +10 -0
- package/dist/stat.d.ts +14 -0
- package/dist/stat.js +29 -0
- package/dist/step-button.d.ts +10 -0
- package/dist/step-button.js +14 -0
- package/dist/stepper-parts.d.ts +10 -0
- package/dist/stepper-parts.js +33 -0
- package/dist/stepper.d.ts +11 -0
- package/dist/stepper.js +11 -0
- package/dist/styles.css +2 -0
- package/dist/switch-parts.d.ts +7 -0
- package/dist/switch-parts.js +19 -0
- package/dist/switch.d.ts +8 -0
- package/dist/switch.js +8 -0
- package/dist/table.d.ts +20 -0
- package/dist/table.js +48 -0
- package/dist/tabs-parts.d.ts +9 -0
- package/dist/tabs-parts.js +25 -0
- package/dist/tabs.d.ts +10 -0
- package/dist/tabs.js +10 -0
- package/dist/tag-input-parts.d.ts +15 -0
- package/dist/tag-input-parts.js +24 -0
- package/dist/tag-input.d.ts +10 -0
- package/dist/tag-input.js +10 -0
- package/dist/text-morph.d.ts +6 -0
- package/dist/text-morph.js +14 -0
- package/dist/text-shimmer.d.ts +9 -0
- package/dist/text-shimmer.js +12 -0
- package/dist/text.d.ts +38 -0
- package/dist/text.js +32 -0
- package/dist/textarea.d.ts +5 -0
- package/dist/textarea.js +12 -0
- package/dist/time-range-parts.d.ts +10 -0
- package/dist/time-range-parts.js +22 -0
- package/dist/time-range.d.ts +10 -0
- package/dist/time-range.js +10 -0
- package/dist/toast-parts.d.ts +11 -0
- package/dist/toast-parts.js +39 -0
- package/dist/toast.d.ts +13 -0
- package/dist/toast.js +12 -0
- package/dist/toggle-group-parts.d.ts +7 -0
- package/dist/toggle-group-parts.js +17 -0
- package/dist/toggle-group.d.ts +8 -0
- package/dist/toggle-group.js +8 -0
- package/dist/tokens.css +64 -0
- package/dist/tooltip-parts.d.ts +9 -0
- package/dist/tooltip-parts.js +21 -0
- package/dist/tooltip.d.ts +10 -0
- package/dist/tooltip.js +10 -0
- package/dist/touch-target.d.ts +7 -0
- package/dist/touch-target.js +10 -0
- package/package.json +71 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
//#region src/sidebar.d.ts
|
|
3
|
+
declare const Layout: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
4
|
+
declare const Content: ({ className, ...props }: ComponentPropsWithRef<'main'>) => import("react").JSX.Element;
|
|
5
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<'aside'>) => import("react").JSX.Element;
|
|
6
|
+
declare const Header: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
7
|
+
declare const Body: ({ className, ...props }: ComponentPropsWithRef<'nav'>) => import("react").JSX.Element;
|
|
8
|
+
declare const Section: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
9
|
+
declare const Heading: ({ className, ...props }: ComponentPropsWithRef<'h3'>) => import("react").JSX.Element;
|
|
10
|
+
declare const Item: ({ className, children, ...props }: ComponentPropsWithRef<'a'>) => import("react").JSX.Element;
|
|
11
|
+
declare const Footer: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
12
|
+
declare const Sidebar: {
|
|
13
|
+
Layout: typeof Layout;
|
|
14
|
+
Root: typeof Root;
|
|
15
|
+
Header: typeof Header;
|
|
16
|
+
Body: typeof Body;
|
|
17
|
+
Section: typeof Section;
|
|
18
|
+
Heading: typeof Heading;
|
|
19
|
+
Item: typeof Item;
|
|
20
|
+
Footer: typeof Footer;
|
|
21
|
+
Content: typeof Content;
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Sidebar };
|
package/dist/sidebar.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { interactive } from "./lib/interactive.js";
|
|
3
|
+
import { selectedWhenCurrent } from "./lib/text-styles.js";
|
|
4
|
+
import { faintBorder, surfaceFill } from "./lib/theme.js";
|
|
5
|
+
import { TouchTarget } from "./touch-target.js";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { Sidebar as Sidebar$1 } from "@journ/nude/sidebar";
|
|
8
|
+
//#region src/sidebar.tsx
|
|
9
|
+
const Layout = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Layout, {
|
|
10
|
+
...props,
|
|
11
|
+
className: cn("flex min-h-dvh w-full", className)
|
|
12
|
+
});
|
|
13
|
+
const Content = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Content, {
|
|
14
|
+
...props,
|
|
15
|
+
className: cn("min-w-0 flex-1 p-6 lg:p-10", className)
|
|
16
|
+
});
|
|
17
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Root, {
|
|
18
|
+
...props,
|
|
19
|
+
className: cn(surfaceFill, faintBorder, "sticky top-0 flex h-dvh w-64 shrink-0 flex-col gap-4 border-r p-4", className)
|
|
20
|
+
});
|
|
21
|
+
const Header = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Header, {
|
|
22
|
+
...props,
|
|
23
|
+
className: cn("flex items-center gap-3 px-2 pt-2", className)
|
|
24
|
+
});
|
|
25
|
+
const Body = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Body, {
|
|
26
|
+
...props,
|
|
27
|
+
className: cn("scrollbar-bloom flex flex-1 flex-col gap-6 overflow-y-auto", className)
|
|
28
|
+
});
|
|
29
|
+
const Section = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Section, {
|
|
30
|
+
...props,
|
|
31
|
+
className: cn("flex flex-col gap-1", className)
|
|
32
|
+
});
|
|
33
|
+
const Heading = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Heading, {
|
|
34
|
+
...props,
|
|
35
|
+
className: cn("px-3 pb-1 text-xs opacity-50", className)
|
|
36
|
+
});
|
|
37
|
+
const Item = ({ className, children, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Item, {
|
|
38
|
+
...props,
|
|
39
|
+
className: cn(interactive, "flex items-center gap-3 px-3 py-2 text-sm/6 font-medium [&>svg]:size-4 [&>svg]:shrink-0", selectedWhenCurrent, className),
|
|
40
|
+
children: /* @__PURE__ */ jsx(TouchTarget, { children })
|
|
41
|
+
});
|
|
42
|
+
const Footer = ({ className, ...props }) => /* @__PURE__ */ jsx(Sidebar$1.Footer, {
|
|
43
|
+
...props,
|
|
44
|
+
className: cn("flex items-center gap-3 border-t border-current/10 px-2 pt-4", className)
|
|
45
|
+
});
|
|
46
|
+
const Sidebar = {
|
|
47
|
+
Layout,
|
|
48
|
+
Root,
|
|
49
|
+
Header,
|
|
50
|
+
Body,
|
|
51
|
+
Section,
|
|
52
|
+
Heading,
|
|
53
|
+
Item,
|
|
54
|
+
Footer,
|
|
55
|
+
Content
|
|
56
|
+
};
|
|
57
|
+
//#endregion
|
|
58
|
+
export { Sidebar };
|
package/dist/skeleton.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Skeleton as Skeleton$1 } from "@journ/nude/skeleton";
|
|
4
|
+
//#region src/skeleton.tsx
|
|
5
|
+
const Skeleton = ({ className, ...props }) => /* @__PURE__ */ jsx(Skeleton$1, {
|
|
6
|
+
"aria-hidden": true,
|
|
7
|
+
...props,
|
|
8
|
+
className: cn("h-4 animate-pulse bg-current/10 motion-reduce:animate-none", className)
|
|
9
|
+
});
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Skeleton };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import * as Nude from "@journ/nude/slider-parts";
|
|
3
|
+
//#region src/slider-parts.d.ts
|
|
4
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Root>) => import("react").JSX.Element;
|
|
5
|
+
declare const Track: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Track>) => import("react").JSX.Element;
|
|
6
|
+
declare const Range: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Range>) => import("react").JSX.Element;
|
|
7
|
+
declare const Thumb: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Thumb>) => import("react").JSX.Element;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { Range, Root, Thumb, Track };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { canvasFill } from "./lib/theme.js";
|
|
4
|
+
import { TouchTarget } from "./touch-target.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as Nude from "@journ/nude/slider-parts";
|
|
7
|
+
//#region src/slider-parts.tsx
|
|
8
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Root, {
|
|
9
|
+
...props,
|
|
10
|
+
className: cn("relative flex h-6 w-full touch-none items-center select-none data-disabled:opacity-50", className)
|
|
11
|
+
});
|
|
12
|
+
const Track = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Track, {
|
|
13
|
+
...props,
|
|
14
|
+
className: cn("relative h-2 grow overflow-hidden rounded-full bg-current/10", className)
|
|
15
|
+
});
|
|
16
|
+
const Range = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Range, {
|
|
17
|
+
...props,
|
|
18
|
+
className: cn("absolute h-full bg-current", className)
|
|
19
|
+
});
|
|
20
|
+
const Thumb = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Thumb, {
|
|
21
|
+
...props,
|
|
22
|
+
className: cn(canvasFill, "relative block size-5 rounded-full border-2 border-current outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-bloom-sky", className),
|
|
23
|
+
children: /* @__PURE__ */ jsx(TouchTarget, {})
|
|
24
|
+
});
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Range, Root, Thumb, Track };
|
package/dist/slider.d.ts
ADDED
package/dist/slider.js
ADDED
package/dist/spinner.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Spinner as Spinner$1 } from "@journ/nude/spinner";
|
|
4
|
+
//#region src/spinner.tsx
|
|
5
|
+
const Spinner = ({ className, ...props }) => /* @__PURE__ */ jsx(Spinner$1, {
|
|
6
|
+
...props,
|
|
7
|
+
className: cn("size-5 animate-spin motion-reduce:animate-none", className)
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Spinner };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { VariantProps } from "./lib/tv.js";
|
|
2
|
+
import { ComponentPropsWithRef } from "react";
|
|
3
|
+
import * as Nude from "@journ/nude/stack-parts";
|
|
4
|
+
//#region src/stack-parts.d.ts
|
|
5
|
+
declare const Root: ({ className, ...props }: Nude.RootProps) => import("react").JSX.Element;
|
|
6
|
+
declare const stackItem: import("tailwind-variants").TVReturnType<{
|
|
7
|
+
tone: {
|
|
8
|
+
readonly surface: "bg-bloom-surface dark:bg-bloom-surface-dark font-bloom-display text-bloom-foreground dark:text-bloom-foreground-dark border border-bloom-line dark:border-bloom-line-dark";
|
|
9
|
+
readonly coral: string;
|
|
10
|
+
readonly yellow: string;
|
|
11
|
+
readonly indigo: string;
|
|
12
|
+
readonly mint: string;
|
|
13
|
+
readonly sky: string;
|
|
14
|
+
};
|
|
15
|
+
}, undefined, "rounded-bloom relative -mt-6 flex flex-col gap-3 p-5 pb-9 data-[active=true]:pb-5", {
|
|
16
|
+
tone: {
|
|
17
|
+
readonly surface: "bg-bloom-surface dark:bg-bloom-surface-dark font-bloom-display text-bloom-foreground dark:text-bloom-foreground-dark border border-bloom-line dark:border-bloom-line-dark";
|
|
18
|
+
readonly coral: string;
|
|
19
|
+
readonly yellow: string;
|
|
20
|
+
readonly indigo: string;
|
|
21
|
+
readonly mint: string;
|
|
22
|
+
readonly sky: string;
|
|
23
|
+
};
|
|
24
|
+
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
25
|
+
tone: {
|
|
26
|
+
readonly surface: "bg-bloom-surface dark:bg-bloom-surface-dark font-bloom-display text-bloom-foreground dark:text-bloom-foreground-dark border border-bloom-line dark:border-bloom-line-dark";
|
|
27
|
+
readonly coral: string;
|
|
28
|
+
readonly yellow: string;
|
|
29
|
+
readonly indigo: string;
|
|
30
|
+
readonly mint: string;
|
|
31
|
+
readonly sky: string;
|
|
32
|
+
};
|
|
33
|
+
}, undefined>>;
|
|
34
|
+
type ItemProps = Nude.ItemProps & VariantProps<typeof stackItem>;
|
|
35
|
+
declare const Item: ({ tone, className, ...props }: ItemProps) => import("react").JSX.Element;
|
|
36
|
+
declare const Trigger: ({ className, ...props }: ComponentPropsWithRef<'button'>) => import("react").JSX.Element;
|
|
37
|
+
declare const Content: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
38
|
+
//#endregion
|
|
39
|
+
export { Content, Item, Root, Trigger };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { tv } from "./lib/tv.js";
|
|
3
|
+
import { cn } from "./lib/cn.js";
|
|
4
|
+
import { pressReset } from "./lib/interactive.js";
|
|
5
|
+
import { displayTitle } from "./lib/text-styles.js";
|
|
6
|
+
import { surfaceTones } from "./lib/tones.js";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import * as Nude from "@journ/nude/stack-parts";
|
|
9
|
+
//#region src/stack-parts.tsx
|
|
10
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Root, {
|
|
11
|
+
...props,
|
|
12
|
+
className: cn("flex flex-col pt-6", className)
|
|
13
|
+
});
|
|
14
|
+
const stackItem = tv({
|
|
15
|
+
base: "rounded-bloom relative -mt-6 flex flex-col gap-3 p-5 pb-9 data-[active=true]:pb-5",
|
|
16
|
+
variants: { tone: surfaceTones },
|
|
17
|
+
defaultVariants: { tone: "surface" }
|
|
18
|
+
});
|
|
19
|
+
const Item = ({ tone, className, ...props }) => /* @__PURE__ */ jsx(Nude.Item, {
|
|
20
|
+
...props,
|
|
21
|
+
className: stackItem({
|
|
22
|
+
tone,
|
|
23
|
+
class: className
|
|
24
|
+
})
|
|
25
|
+
});
|
|
26
|
+
const Trigger = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Trigger, {
|
|
27
|
+
...props,
|
|
28
|
+
className: cn(pressReset, displayTitle, "flex w-full cursor-pointer items-start justify-between gap-4 rounded-bloom text-left outline-none focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-bloom-sky", className)
|
|
29
|
+
});
|
|
30
|
+
const Content = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Content, {
|
|
31
|
+
...props,
|
|
32
|
+
className: cn("flex flex-col gap-3 data-[active=false]:hidden", className)
|
|
33
|
+
});
|
|
34
|
+
//#endregion
|
|
35
|
+
export { Content, Item, Root, Trigger };
|
package/dist/stack.d.ts
ADDED
package/dist/stack.js
ADDED
package/dist/stat.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
//#region src/stat.d.ts
|
|
3
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<'div'>) => import("react").JSX.Element;
|
|
4
|
+
declare const Label: ({ className, ...props }: ComponentPropsWithRef<'p'>) => import("react").JSX.Element;
|
|
5
|
+
declare const Value: ({ className, ...props }: ComponentPropsWithRef<'p'>) => import("react").JSX.Element;
|
|
6
|
+
declare const Hint: ({ className, ...props }: ComponentPropsWithRef<'p'>) => import("react").JSX.Element;
|
|
7
|
+
declare const Stat: {
|
|
8
|
+
Root: typeof Root;
|
|
9
|
+
Label: typeof Label;
|
|
10
|
+
Value: typeof Value;
|
|
11
|
+
Hint: typeof Hint;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Stat };
|
package/dist/stat.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { cn } from "./lib/cn.js";
|
|
2
|
+
import { displayLabel } from "./lib/text-styles.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Stat as Stat$1 } from "@journ/nude/stat";
|
|
5
|
+
//#region src/stat.tsx
|
|
6
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(Stat$1.Root, {
|
|
7
|
+
...props,
|
|
8
|
+
className: cn("flex flex-col gap-1", className)
|
|
9
|
+
});
|
|
10
|
+
const Label = ({ className, ...props }) => /* @__PURE__ */ jsx(Stat$1.Label, {
|
|
11
|
+
...props,
|
|
12
|
+
className: cn(displayLabel, className)
|
|
13
|
+
});
|
|
14
|
+
const Value = ({ className, ...props }) => /* @__PURE__ */ jsx(Stat$1.Value, {
|
|
15
|
+
...props,
|
|
16
|
+
className: cn("font-mono text-2xl/8 tabular-nums", className)
|
|
17
|
+
});
|
|
18
|
+
const Hint = ({ className, ...props }) => /* @__PURE__ */ jsx(Stat$1.Hint, {
|
|
19
|
+
...props,
|
|
20
|
+
className: cn("text-xs/5 opacity-60", className)
|
|
21
|
+
});
|
|
22
|
+
const Stat = {
|
|
23
|
+
Root,
|
|
24
|
+
Label,
|
|
25
|
+
Value,
|
|
26
|
+
Hint
|
|
27
|
+
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { Stat };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IconButtonProps } from "./icon-button.js";
|
|
2
|
+
import { LucideIcon } from "lucide-react";
|
|
3
|
+
//#region src/step-button.d.ts
|
|
4
|
+
type StepButtonStyle = Pick<IconButtonProps, 'tone' | 'size' | 'className' | 'children'>;
|
|
5
|
+
declare const stepButton: (Icon: LucideIcon, { tone, size, className, children }: StepButtonStyle) => {
|
|
6
|
+
className: string;
|
|
7
|
+
children: import("react").JSX.Element;
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { stepButton };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TouchTarget } from "./touch-target.js";
|
|
2
|
+
import { iconButton } from "./icon-button.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/step-button.tsx
|
|
5
|
+
const stepButton = (Icon, { tone = "ghost", size = "sm", className, children }) => ({
|
|
6
|
+
className: iconButton({
|
|
7
|
+
tone,
|
|
8
|
+
size,
|
|
9
|
+
class: className
|
|
10
|
+
}),
|
|
11
|
+
children: /* @__PURE__ */ jsx(TouchTarget, { children: children ?? /* @__PURE__ */ jsx(Icon, {}) })
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
export { stepButton };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import * as Nude from "@journ/nude/stepper-parts";
|
|
3
|
+
//#region src/stepper-parts.d.ts
|
|
4
|
+
declare const Root: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Root>) => import("react").JSX.Element;
|
|
5
|
+
declare const Item: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Item>) => import("react").JSX.Element;
|
|
6
|
+
declare const Indicator: ({ className, children, ...props }: ComponentPropsWithRef<'span'>) => import("react").JSX.Element;
|
|
7
|
+
declare const Label: ({ className, ...props }: ComponentPropsWithRef<'span'>) => import("react").JSX.Element;
|
|
8
|
+
declare const Description: ({ className, ...props }: ComponentPropsWithRef<'span'>) => import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Description, Indicator, Item, Label, Root };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { mutedText } from "./lib/text-styles.js";
|
|
4
|
+
import { Check } from "lucide-react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as Nude from "@journ/nude/stepper-parts";
|
|
7
|
+
//#region src/stepper-parts.tsx
|
|
8
|
+
const Root = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Root, {
|
|
9
|
+
...props,
|
|
10
|
+
className: cn("flex flex-col gap-4 sm:flex-row sm:gap-6", className)
|
|
11
|
+
});
|
|
12
|
+
const Item = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Item, {
|
|
13
|
+
...props,
|
|
14
|
+
className: cn("group flex flex-1 items-start gap-3 data-[status=upcoming]:opacity-60", className)
|
|
15
|
+
});
|
|
16
|
+
const Indicator = ({ className, children, ...props }) => {
|
|
17
|
+
const { status } = Nude.useStepperItem();
|
|
18
|
+
return /* @__PURE__ */ jsx(Nude.Indicator, {
|
|
19
|
+
...props,
|
|
20
|
+
className: cn("grid size-8 shrink-0 place-items-center rounded-full bg-current/10 font-mono text-xs tabular-nums", "group-data-[status=current]:bg-transparent group-data-[status=current]:ring-1 group-data-[status=current]:ring-current", "group-data-[status=complete]:bg-bloom-mint group-data-[status=complete]:text-bloom-ink [&>svg]:size-4", className),
|
|
21
|
+
children: children ?? (status === "complete" ? /* @__PURE__ */ jsx(Check, {}) : void 0)
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const Label = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Label, {
|
|
25
|
+
...props,
|
|
26
|
+
className: cn("block text-sm/6 font-medium", className)
|
|
27
|
+
});
|
|
28
|
+
const Description = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Description, {
|
|
29
|
+
...props,
|
|
30
|
+
className: cn("block", mutedText, className)
|
|
31
|
+
});
|
|
32
|
+
//#endregion
|
|
33
|
+
export { Description, Indicator, Item, Label, Root };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Description, Indicator, Item, Label, Root } from "./stepper-parts.js";
|
|
2
|
+
//#region src/stepper.d.ts
|
|
3
|
+
declare const Stepper: {
|
|
4
|
+
Root: typeof Root;
|
|
5
|
+
Item: typeof Item;
|
|
6
|
+
Indicator: typeof Indicator;
|
|
7
|
+
Label: typeof Label;
|
|
8
|
+
Description: typeof Description;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Stepper };
|
package/dist/stepper.js
ADDED
package/dist/styles.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-lg:1.125rem;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-5xl:3rem;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--radius-sm:.25rem;--radius-xl:.75rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bloom-ink:oklch(16% 0 0);--color-bloom-paper:oklch(98.5% 0 0);--color-bloom-coral:oklch(65% .24 26);--color-bloom-yellow:oklch(87% .17 92);--color-bloom-indigo:oklch(62% .19 275);--color-bloom-mint:oklch(74% .21 152);--color-bloom-sky:oklch(70% .15 245);--color-bloom-canvas:oklch(100% 0 0);--color-bloom-surface:oklch(100% 0 0);--color-bloom-foreground:oklch(18% 0 0);--color-bloom-accent:oklch(52% .13 75);--color-bloom-line:oklch(88.5% .004 95);--color-bloom-canvas-dark:oklch(16% 0 0);--color-bloom-surface-dark:oklch(16% 0 0);--color-bloom-foreground-dark:oklch(98.5% 0 0);--color-bloom-accent-dark:oklch(87% .17 92);--color-bloom-line-dark:oklch(22.6% 0 0);--font-bloom-display:"Hedvig Letters Sans", ui-sans-serif, system-ui, sans-serif;--radius-bloom:0rem;--animate-bloom-shimmer:bloom-shimmer 2.2s linear infinite}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:0}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-6{margin-block:calc(var(--spacing) * 6)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.-mt-6{margin-top:calc(var(--spacing) * -6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.mr-auto{margin-right:auto}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.-ml-3{margin-left:calc(var(--spacing) * -3)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-\[max\(100\%\,2\.75rem\)\]{width:max(100%,2.75rem);height:max(100%,2.75rem)}.size-full{width:100%;height:100%}.h-\(--radix-navigation-menu-viewport-height\){height:var(--radix-navigation-menu-viewport-height)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[85dvh\]{max-height:85dvh}.max-h-\[90dvh\]{max-height:90dvh}.min-h-0{min-height:0}.min-h-dvh{min-height:100dvh}.w-11{width:calc(var(--spacing) * 11)}.w-24{width:calc(var(--spacing) * 24)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--radix-select-trigger-width\){min-width:var(--radix-select-trigger-width)}.min-w-0{min-width:0}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-top{transform-origin:top}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-bloom-shimmer{animation:var(--animate-bloom-shimmer)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-y{resize:vertical}.scrollbar-bloom{scrollbar-width:thin;scrollbar-color:currentColor transparent}@supports (color:color-mix(in lab, red, red)){.scrollbar-bloom{scrollbar-color:color-mix(in oklab, currentColor 30%, transparent) transparent}}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[13px\]{gap:13px}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-1{row-gap:var(--spacing)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[inherit\]{border-radius:inherit}.rounded-bloom{border-radius:var(--radius-bloom)}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-bloom-coral\/40{border-color:#ff343866}@supports (color:color-mix(in lab, red, red)){.border-bloom-coral\/40{border-color:color-mix(in oklab, var(--color-bloom-coral) 40%, transparent)}}.border-bloom-indigo\/40{border-color:#6875f666}@supports (color:color-mix(in lab, red, red)){.border-bloom-indigo\/40{border-color:color-mix(in oklab, var(--color-bloom-indigo) 40%, transparent)}}.border-bloom-line{border-color:var(--color-bloom-line)}.border-bloom-mint\/40{border-color:#00cc6866}@supports (color:color-mix(in lab, red, red)){.border-bloom-mint\/40{border-color:color-mix(in oklab, var(--color-bloom-mint) 40%, transparent)}}.border-bloom-sky\/40{border-color:#3ba6f566}@supports (color:color-mix(in lab, red, red)){.border-bloom-sky\/40{border-color:color-mix(in oklab, var(--color-bloom-sky) 40%, transparent)}}.border-bloom-yellow\/40{border-color:#fccf2866}@supports (color:color-mix(in lab, red, red)){.border-bloom-yellow\/40{border-color:color-mix(in oklab, var(--color-bloom-yellow) 40%, transparent)}}.border-current,.border-current\/10{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/10{border-color:color-mix(in oklab, currentcolor 10%, transparent)}}.border-current\/15{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/15{border-color:color-mix(in oklab, currentcolor 15%, transparent)}}.border-current\/20{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/20{border-color:color-mix(in oklab, currentcolor 20%, transparent)}}.border-current\/25{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/25{border-color:color-mix(in oklab, currentcolor 25%, transparent)}}.border-current\/30{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/30{border-color:color-mix(in oklab, currentcolor 30%, transparent)}}.border-transparent{border-color:#0000}.bg-\[\#fff\]{background-color:#fff}.bg-bloom-canvas{background-color:var(--color-bloom-canvas)}.bg-bloom-canvas\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-bloom-canvas\/60{background-color:color-mix(in oklab, var(--color-bloom-canvas) 60%, transparent)}}.bg-bloom-coral{background-color:var(--color-bloom-coral)}.bg-bloom-coral\/15{background-color:#ff343826}@supports (color:color-mix(in lab, red, red)){.bg-bloom-coral\/15{background-color:color-mix(in oklab, var(--color-bloom-coral) 15%, transparent)}}.bg-bloom-foreground{background-color:var(--color-bloom-foreground)}.bg-bloom-foreground\/8{background-color:#12121214}@supports (color:color-mix(in lab, red, red)){.bg-bloom-foreground\/8{background-color:color-mix(in oklab, var(--color-bloom-foreground) 8%, transparent)}}.bg-bloom-foreground\/12{background-color:#1212121f}@supports (color:color-mix(in lab, red, red)){.bg-bloom-foreground\/12{background-color:color-mix(in oklab, var(--color-bloom-foreground) 12%, transparent)}}.bg-bloom-foreground\/30{background-color:#1212124d}@supports (color:color-mix(in lab, red, red)){.bg-bloom-foreground\/30{background-color:color-mix(in oklab, var(--color-bloom-foreground) 30%, transparent)}}.bg-bloom-indigo{background-color:var(--color-bloom-indigo)}.bg-bloom-indigo\/15{background-color:#6875f626}@supports (color:color-mix(in lab, red, red)){.bg-bloom-indigo\/15{background-color:color-mix(in oklab, var(--color-bloom-indigo) 15%, transparent)}}.bg-bloom-ink{background-color:var(--color-bloom-ink)}.bg-bloom-mint{background-color:var(--color-bloom-mint)}.bg-bloom-mint\/20{background-color:#00cc6833}@supports (color:color-mix(in lab, red, red)){.bg-bloom-mint\/20{background-color:color-mix(in oklab, var(--color-bloom-mint) 20%, transparent)}}.bg-bloom-sky{background-color:var(--color-bloom-sky)}.bg-bloom-sky\/15{background-color:#3ba6f526}@supports (color:color-mix(in lab, red, red)){.bg-bloom-sky\/15{background-color:color-mix(in oklab, var(--color-bloom-sky) 15%, transparent)}}.bg-bloom-surface{background-color:var(--color-bloom-surface)}.bg-bloom-yellow{background-color:var(--color-bloom-yellow)}.bg-bloom-yellow\/25{background-color:#fccf2840}@supports (color:color-mix(in lab, red, red)){.bg-bloom-yellow\/25{background-color:color-mix(in oklab, var(--color-bloom-yellow) 25%, transparent)}}.bg-current,.bg-current\/5{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/5{background-color:color-mix(in oklab, currentcolor 5%, transparent)}}.bg-current\/8{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/8{background-color:color-mix(in oklab, currentcolor 8%, transparent)}}.bg-current\/10{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/10{background-color:color-mix(in oklab, currentcolor 10%, transparent)}}.bg-current\/20{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/20{background-color:color-mix(in oklab, currentcolor 20%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-transparent{background-color:#0000}.bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-bloom-coral\/10{--tw-gradient-from:#ff34381a}@supports (color:color-mix(in lab, red, red)){.from-bloom-coral\/10{--tw-gradient-from:color-mix(in oklab, var(--color-bloom-coral) 10%, transparent)}}.from-bloom-coral\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-bloom-foreground\/40{--tw-gradient-from:#12121266}@supports (color:color-mix(in lab, red, red)){.from-bloom-foreground\/40{--tw-gradient-from:color-mix(in oklab, var(--color-bloom-foreground) 40%, transparent)}}.from-bloom-foreground\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-bloom-indigo\/10{--tw-gradient-from:#6875f61a}@supports (color:color-mix(in lab, red, red)){.from-bloom-indigo\/10{--tw-gradient-from:color-mix(in oklab, var(--color-bloom-indigo) 10%, transparent)}}.from-bloom-indigo\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-bloom-mint\/10{--tw-gradient-from:#00cc681a}@supports (color:color-mix(in lab, red, red)){.from-bloom-mint\/10{--tw-gradient-from:color-mix(in oklab, var(--color-bloom-mint) 10%, transparent)}}.from-bloom-mint\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-bloom-sky\/10{--tw-gradient-from:#3ba6f51a}@supports (color:color-mix(in lab, red, red)){.from-bloom-sky\/10{--tw-gradient-from:color-mix(in oklab, var(--color-bloom-sky) 10%, transparent)}}.from-bloom-sky\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-bloom-yellow\/10{--tw-gradient-from:#fccf281a}@supports (color:color-mix(in lab, red, red)){.from-bloom-yellow\/10{--tw-gradient-from:color-mix(in oklab, var(--color-bloom-yellow) 10%, transparent)}}.from-bloom-yellow\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-bloom-foreground{--tw-gradient-via:var(--color-bloom-foreground);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-bloom-coral\/10{--tw-gradient-to:#ff34381a}@supports (color:color-mix(in lab, red, red)){.to-bloom-coral\/10{--tw-gradient-to:color-mix(in oklab, var(--color-bloom-coral) 10%, transparent)}}.to-bloom-coral\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bloom-foreground\/40{--tw-gradient-to:#12121266}@supports (color:color-mix(in lab, red, red)){.to-bloom-foreground\/40{--tw-gradient-to:color-mix(in oklab, var(--color-bloom-foreground) 40%, transparent)}}.to-bloom-foreground\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bloom-indigo\/10{--tw-gradient-to:#6875f61a}@supports (color:color-mix(in lab, red, red)){.to-bloom-indigo\/10{--tw-gradient-to:color-mix(in oklab, var(--color-bloom-indigo) 10%, transparent)}}.to-bloom-indigo\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bloom-mint\/10{--tw-gradient-to:#00cc681a}@supports (color:color-mix(in lab, red, red)){.to-bloom-mint\/10{--tw-gradient-to:color-mix(in oklab, var(--color-bloom-mint) 10%, transparent)}}.to-bloom-mint\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bloom-sky\/10{--tw-gradient-to:#3ba6f51a}@supports (color:color-mix(in lab, red, red)){.to-bloom-sky\/10{--tw-gradient-to:color-mix(in oklab, var(--color-bloom-sky) 10%, transparent)}}.to-bloom-sky\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bloom-yellow\/10{--tw-gradient-to:#fccf281a}@supports (color:color-mix(in lab, red, red)){.to-bloom-yellow\/10{--tw-gradient-to:color-mix(in oklab, var(--color-bloom-yellow) 10%, transparent)}}.to-bloom-yellow\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-size-\[200\%_100\%\]{background-size:200% 100%}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[max\(2rem\,env\(safe-area-inset-top\)\)\]{padding-top:max(2rem, env(safe-area-inset-top))}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:var(--spacing)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-9{padding-bottom:calc(var(--spacing) * 9)}.pb-\[max\(1rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(1rem, env(safe-area-inset-bottom))}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-bloom-display{font-family:var(--font-bloom-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-2xl\/8{font-size:var(--text-2xl);line-height:calc(var(--spacing) * 8)}.text-3xl\/9{font-size:var(--text-3xl);line-height:calc(var(--spacing) * 9)}.text-5xl\/none{font-size:var(--text-5xl);line-height:1}.text-base\/6{font-size:var(--text-base);line-height:calc(var(--spacing) * 6)}.text-base\/7{font-size:var(--text-base);line-height:calc(var(--spacing) * 7)}.text-lg\/7{font-size:var(--text-lg);line-height:calc(var(--spacing) * 7)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/5{font-size:var(--text-sm);line-height:calc(var(--spacing) * 5)}.text-sm\/6{font-size:var(--text-sm);line-height:calc(var(--spacing) * 6)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\/5{font-size:var(--text-xs);line-height:calc(var(--spacing) * 5)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-pretty{text-wrap:pretty}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-\[oklch\(\.\.\.\)\]{color:oklch(...)}.text-bloom-accent{color:var(--color-bloom-accent)}.text-bloom-canvas{color:var(--color-bloom-canvas)}.text-bloom-coral{color:var(--color-bloom-coral)}.text-bloom-foreground{color:var(--color-bloom-foreground)}.text-bloom-ink{color:var(--color-bloom-ink)}.text-bloom-paper{color:var(--color-bloom-paper)}.text-current\/60{color:currentColor}@supports (color:color-mix(in lab, red, red)){.text-current\/60{color:color-mix(in oklab, currentcolor 60%, transparent)}}.text-inherit{color:inherit}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-current\/40{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){.decoration-current\/40{-webkit-text-decoration-color:color-mix(in oklab, currentcolor 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, currentcolor 40%, transparent);text-decoration-color:color-mix(in oklab, currentcolor 40%, transparent)}}.underline-offset-4{text-underline-offset:4px}.scheme-light{color-scheme:light}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[-webkit-tap-highlight-color\:transparent\]{-webkit-tap-highlight-color:transparent}.group-data-\[from\=user\]\:border:is(:where(.group)[data-from=user] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[from\=user\]\:border-current\/15:is(:where(.group)[data-from=user] *){border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.group-data-\[from\=user\]\:border-current\/15:is(:where(.group)[data-from=user] *){border-color:color-mix(in oklab, currentcolor 15%, transparent)}}.group-data-\[from\=user\]\:bg-transparent:is(:where(.group)[data-from=user] *){background-color:#0000}.group-data-\[state\=indeterminate\]\:block:is(:where(.group)[data-state=indeterminate] *){display:block}.group-data-\[state\=indeterminate\]\:hidden:is(:where(.group)[data-state=indeterminate] *){display:none}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[status\=complete\]\:bg-bloom-mint:is(:where(.group)[data-status=complete] *){background-color:var(--color-bloom-mint)}.group-data-\[status\=complete\]\:text-bloom-ink:is(:where(.group)[data-status=complete] *){color:var(--color-bloom-ink)}.group-data-\[status\=current\]\:bg-transparent:is(:where(.group)[data-status=current] *){background-color:#0000}.group-data-\[status\=current\]\:ring-1:is(:where(.group)[data-status=current] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[status\=current\]\:ring-current:is(:where(.group)[data-status=current] *){--tw-ring-color:currentcolor}.marker\:opacity-50 ::marker{opacity:.5}.marker\:opacity-50::marker{opacity:.5}.marker\:opacity-50 ::-webkit-details-marker{opacity:.5}.marker\:opacity-50::-webkit-details-marker{opacity:.5}.placeholder\:text-current\/40::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-current\/40::placeholder{color:color-mix(in oklab, currentcolor 40%, transparent)}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:-z-10:after{content:var(--tw-content);z-index:calc(10 * -1)}.after\:rounded-\[inherit\]:after{content:var(--tw-content);border-radius:inherit}.after\:transition-colors:after{content:var(--tw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:bg-current\/5:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-current\/5:hover{background-color:color-mix(in oklab, currentcolor 5%, transparent)}}.hover\:bg-current\/15:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-current\/15:hover{background-color:color-mix(in oklab, currentcolor 15%, transparent)}}.hover\:bg-current\/40:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-current\/40:hover{background-color:color-mix(in oklab, currentcolor 40%, transparent)}}.hover\:decoration-current:hover{text-decoration-color:currentColor}.hover\:opacity-100:hover{opacity:1}.hover\:after\:bg-current\/10:hover:after{content:var(--tw-content);background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:after\:bg-current\/10:hover:after{background-color:color-mix(in oklab, currentcolor 10%, transparent)}}}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-4:focus-visible{outline-offset:4px}.focus-visible\:outline-bloom-sky:focus-visible{outline-color:var(--color-bloom-sky)}.active\:after\:bg-current\/15:active:after{content:var(--tw-content);background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.active\:after\:bg-current\/15:active:after{background-color:color-mix(in oklab, currentcolor 15%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-100:disabled{opacity:1}.has-disabled\:opacity-50:has(:disabled){opacity:.5}.aria-busy\:pointer-events-none[aria-busy=true],.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-bloom-coral[aria-invalid=true]{border-color:var(--color-bloom-coral)}.aria-invalid\:text-bloom-coral[aria-invalid=true]{color:var(--color-bloom-coral)}.aria-\[current\=page\]\:border-bloom-line[aria-current=page]{border-color:var(--color-bloom-line)}.aria-\[current\=page\]\:bg-bloom-foreground\/4[aria-current=page]{background-color:#1212120a}@supports (color:color-mix(in lab, red, red)){.aria-\[current\=page\]\:bg-bloom-foreground\/4[aria-current=page]{background-color:color-mix(in oklab, var(--color-bloom-foreground) 4%, transparent)}}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-dragging\:border-current\/60[data-dragging]{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-dragging\:border-current\/60[data-dragging]{border-color:color-mix(in oklab, currentcolor 60%, transparent)}}.data-dragging\:bg-current\/5[data-dragging]{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-dragging\:bg-current\/5[data-dragging]{background-color:color-mix(in oklab, currentcolor 5%, transparent)}}.data-placeholder\:opacity-60[data-placeholder]{opacity:.6}.data-\[active\=false\]\:hidden[data-active=false]{display:none}.data-\[active\=true\]\:pb-5[data-active=true]{padding-bottom:calc(var(--spacing) * 5)}.data-\[checked\=true\]\:font-medium[data-checked=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[from\=user\]\:justify-end[data-from=user]{justify-content:flex-end}.data-\[highlighted\]\:bg-bloom-foreground\/8[data-highlighted]{background-color:#12121214}@supports (color:color-mix(in lab, red, red)){.data-\[highlighted\]\:bg-bloom-foreground\/8[data-highlighted]{background-color:color-mix(in oklab, var(--color-bloom-foreground) 8%, transparent)}}.data-\[orientation\=horizontal\]\:h-2\.5[data-orientation=horizontal]{height:calc(var(--spacing) * 2.5)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-2\.5[data-orientation=vertical]{width:calc(var(--spacing) * 2.5)}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[outside\=true\]\:opacity-30[data-outside=true]{opacity:.3}.data-\[placeholder\=true\]\:opacity-50[data-placeholder=true]{opacity:.5}.data-\[selected\=true\]\:after\:bg-current\/8[data-selected=true]:after{content:var(--tw-content);background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-\[selected\=true\]\:after\:bg-current\/8[data-selected=true]:after{background-color:color-mix(in oklab, currentcolor 8%, transparent)}}.data-\[state\=active\]\:bg-bloom-canvas[data-state=active]{background-color:var(--color-bloom-canvas)}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-current[data-state=checked],.data-\[state\=checked\]\:bg-current\/10[data-state=checked]{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-\[state\=checked\]\:bg-current\/10[data-state=checked]{background-color:color-mix(in oklab, currentcolor 10%, transparent)}}.data-\[state\=hidden\]\:opacity-0[data-state=hidden]{opacity:0}.data-\[state\=inactive\]\:text-current\/60[data-state=inactive]{color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-\[state\=inactive\]\:text-current\/60[data-state=inactive]{color:color-mix(in oklab, currentcolor 60%, transparent)}}.data-\[state\=indeterminate\]\:bg-current\/10[data-state=indeterminate]{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-\[state\=indeterminate\]\:bg-current\/10[data-state=indeterminate]{background-color:color-mix(in oklab, currentcolor 10%, transparent)}}.data-\[state\=off\]\:text-current\/60[data-state=off]{color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-\[state\=off\]\:text-current\/60[data-state=off]{color:color-mix(in oklab, currentcolor 60%, transparent)}}.data-\[state\=on\]\:bg-bloom-canvas[data-state=on]{background-color:var(--color-bloom-canvas)}.data-\[state\=selected\]\:bg-current\/5[data-state=selected]{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.data-\[state\=selected\]\:bg-current\/5[data-state=selected]{background-color:color-mix(in oklab, currentcolor 5%, transparent)}}.data-\[state\=visible\]\:opacity-100[data-state=visible]{opacity:1}.data-\[status\=upcoming\]\:opacity-60[data-status=upcoming]{opacity:.6}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media (min-width:40rem){.sm\:grid-cols-\[minmax\(8rem\,1fr\)_3fr\]{grid-template-columns:minmax(8rem,1fr) 3fr}.sm\:flex-row{flex-direction:row}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.sm\:border-current\/10{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.sm\:border-current\/10{border-color:color-mix(in oklab, currentcolor 10%, transparent)}}.sm\:py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.sm\:py-3{padding-block:calc(var(--spacing) * 3)}.sm\:text-sm\/6{font-size:var(--text-sm);line-height:calc(var(--spacing) * 6)}.sm\:focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.sm\:focus-within\:outline-bloom-sky:focus-within{outline-color:var(--color-bloom-sky)}}@media (min-width:48rem){.md\:inset-x-4{inset-inline:calc(var(--spacing) * 4)}.md\:inset-y-4{inset-block:calc(var(--spacing) * 4)}.md\:top-4{top:calc(var(--spacing) * 4)}.md\:right-4{right:calc(var(--spacing) * 4)}.md\:bottom-4{bottom:calc(var(--spacing) * 4)}.md\:left-4{left:calc(var(--spacing) * 4)}.md\:w-\(--radix-navigation-menu-viewport-width\){width:var(--radix-navigation-menu-viewport-width)}.md\:w-96{width:calc(var(--spacing) * 96)}}@media (min-width:64rem){.lg\:p-10{padding:calc(var(--spacing) * 10)}}.dark\:border-bloom-line-dark:where(.dark,.dark *){border-color:var(--color-bloom-line-dark)}@media (prefers-color-scheme:dark){.dark\:border-bloom-line-dark:where(:not(.light,.light *)){border-color:var(--color-bloom-line-dark)}}.dark\:bg-bloom-canvas-dark:where(.dark,.dark *){background-color:var(--color-bloom-canvas-dark)}@media (prefers-color-scheme:dark){.dark\:bg-bloom-canvas-dark:where(:not(.light,.light *)){background-color:var(--color-bloom-canvas-dark)}}.dark\:bg-bloom-canvas-dark\/80:where(.dark,.dark *){background-color:#0d0d0dcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-canvas-dark\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-canvas-dark) 80%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-canvas-dark\/80:where(:not(.light,.light *)){background-color:#0d0d0dcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-canvas-dark\/80:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-canvas-dark) 80%, transparent)}}}.dark\:bg-bloom-foreground-dark:where(.dark,.dark *){background-color:var(--color-bloom-foreground-dark)}@media (prefers-color-scheme:dark){.dark\:bg-bloom-foreground-dark:where(:not(.light,.light *)){background-color:var(--color-bloom-foreground-dark)}}.dark\:bg-bloom-foreground-dark\/8:where(.dark,.dark *){background-color:#fafafa14}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/8:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 8%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-foreground-dark\/8:where(:not(.light,.light *)){background-color:#fafafa14}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/8:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 8%, transparent)}}}.dark\:bg-bloom-foreground-dark\/10:where(.dark,.dark *){background-color:#fafafa1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 10%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-foreground-dark\/10:where(:not(.light,.light *)){background-color:#fafafa1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/10:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 10%, transparent)}}}.dark\:bg-bloom-foreground-dark\/30:where(.dark,.dark *){background-color:#fafafa4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 30%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-foreground-dark\/30:where(:not(.light,.light *)){background-color:#fafafa4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/30:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 30%, transparent)}}}.dark\:bg-bloom-foreground-dark\/40:where(.dark,.dark *){background-color:#fafafa66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 40%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-foreground-dark\/40:where(:not(.light,.light *)){background-color:#fafafa66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-foreground-dark\/40:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 40%, transparent)}}}.dark\:bg-bloom-mint\/15:where(.dark,.dark *){background-color:#00cc6826}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-mint\/15:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-mint) 15%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-mint\/15:where(:not(.light,.light *)){background-color:#00cc6826}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-mint\/15:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-mint) 15%, transparent)}}}.dark\:bg-bloom-surface-dark:where(.dark,.dark *){background-color:var(--color-bloom-surface-dark)}@media (prefers-color-scheme:dark){.dark\:bg-bloom-surface-dark:where(:not(.light,.light *)){background-color:var(--color-bloom-surface-dark)}}.dark\:bg-bloom-yellow\/15:where(.dark,.dark *){background-color:#fccf2826}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-yellow\/15:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-bloom-yellow) 15%, transparent)}}@media (prefers-color-scheme:dark){.dark\:bg-bloom-yellow\/15:where(:not(.light,.light *)){background-color:#fccf2826}@supports (color:color-mix(in lab, red, red)){.dark\:bg-bloom-yellow\/15:where(:not(.light,.light *)){background-color:color-mix(in oklab, var(--color-bloom-yellow) 15%, transparent)}}}.dark\:from-bloom-foreground-dark\/40:where(.dark,.dark *){--tw-gradient-from:#fafafa66}@supports (color:color-mix(in lab, red, red)){.dark\:from-bloom-foreground-dark\/40:where(.dark,.dark *){--tw-gradient-from:color-mix(in oklab, var(--color-bloom-foreground-dark) 40%, transparent)}}.dark\:from-bloom-foreground-dark\/40:where(.dark,.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@media (prefers-color-scheme:dark){.dark\:from-bloom-foreground-dark\/40:where(:not(.light,.light *)){--tw-gradient-from:#fafafa66}@supports (color:color-mix(in lab, red, red)){.dark\:from-bloom-foreground-dark\/40:where(:not(.light,.light *)){--tw-gradient-from:color-mix(in oklab, var(--color-bloom-foreground-dark) 40%, transparent)}}.dark\:from-bloom-foreground-dark\/40:where(:not(.light,.light *)){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}.dark\:via-bloom-foreground-dark:where(.dark,.dark *){--tw-gradient-via:var(--color-bloom-foreground-dark);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}@media (prefers-color-scheme:dark){.dark\:via-bloom-foreground-dark:where(:not(.light,.light *)){--tw-gradient-via:var(--color-bloom-foreground-dark);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}}.dark\:to-bloom-foreground-dark\/40:where(.dark,.dark *){--tw-gradient-to:#fafafa66}@supports (color:color-mix(in lab, red, red)){.dark\:to-bloom-foreground-dark\/40:where(.dark,.dark *){--tw-gradient-to:color-mix(in oklab, var(--color-bloom-foreground-dark) 40%, transparent)}}.dark\:to-bloom-foreground-dark\/40:where(.dark,.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}@media (prefers-color-scheme:dark){.dark\:to-bloom-foreground-dark\/40:where(:not(.light,.light *)){--tw-gradient-to:#fafafa66}@supports (color:color-mix(in lab, red, red)){.dark\:to-bloom-foreground-dark\/40:where(:not(.light,.light *)){--tw-gradient-to:color-mix(in oklab, var(--color-bloom-foreground-dark) 40%, transparent)}}.dark\:to-bloom-foreground-dark\/40:where(:not(.light,.light *)){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}.dark\:text-bloom-accent-dark:where(.dark,.dark *){color:var(--color-bloom-accent-dark)}@media (prefers-color-scheme:dark){.dark\:text-bloom-accent-dark:where(:not(.light,.light *)){color:var(--color-bloom-accent-dark)}}.dark\:text-bloom-canvas-dark:where(.dark,.dark *){color:var(--color-bloom-canvas-dark)}@media (prefers-color-scheme:dark){.dark\:text-bloom-canvas-dark:where(:not(.light,.light *)){color:var(--color-bloom-canvas-dark)}}.dark\:text-bloom-coral:where(.dark,.dark *){color:var(--color-bloom-coral)}@media (prefers-color-scheme:dark){.dark\:text-bloom-coral:where(:not(.light,.light *)){color:var(--color-bloom-coral)}}.dark\:text-bloom-foreground-dark:where(.dark,.dark *){color:var(--color-bloom-foreground-dark)}@media (prefers-color-scheme:dark){.dark\:text-bloom-foreground-dark:where(:not(.light,.light *)){color:var(--color-bloom-foreground-dark)}}.dark\:text-bloom-indigo:where(.dark,.dark *){color:var(--color-bloom-indigo)}@media (prefers-color-scheme:dark){.dark\:text-bloom-indigo:where(:not(.light,.light *)){color:var(--color-bloom-indigo)}}.dark\:text-bloom-mint:where(.dark,.dark *){color:var(--color-bloom-mint)}@media (prefers-color-scheme:dark){.dark\:text-bloom-mint:where(:not(.light,.light *)){color:var(--color-bloom-mint)}}.dark\:text-bloom-sky:where(.dark,.dark *){color:var(--color-bloom-sky)}@media (prefers-color-scheme:dark){.dark\:text-bloom-sky:where(:not(.light,.light *)){color:var(--color-bloom-sky)}}.dark\:text-bloom-yellow:where(.dark,.dark *){color:var(--color-bloom-yellow)}@media (prefers-color-scheme:dark){.dark\:text-bloom-yellow:where(:not(.light,.light *)){color:var(--color-bloom-yellow)}}.dark\:scheme-dark:where(.dark,.dark *){color-scheme:dark}@media (prefers-color-scheme:dark){.dark\:scheme-dark:where(:not(.light,.light *)){color-scheme:dark}}.dark\:aria-\[current\=page\]\:border-bloom-line-dark:where(.dark,.dark *)[aria-current=page]{border-color:var(--color-bloom-line-dark)}@media (prefers-color-scheme:dark){.dark\:aria-\[current\=page\]\:border-bloom-line-dark:where(:not(.light,.light *))[aria-current=page]{border-color:var(--color-bloom-line-dark)}}.dark\:aria-\[current\=page\]\:bg-bloom-foreground-dark\/4:where(.dark,.dark *)[aria-current=page]{background-color:#fafafa0a}@supports (color:color-mix(in lab, red, red)){.dark\:aria-\[current\=page\]\:bg-bloom-foreground-dark\/4:where(.dark,.dark *)[aria-current=page]{background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 4%, transparent)}}@media (prefers-color-scheme:dark){.dark\:aria-\[current\=page\]\:bg-bloom-foreground-dark\/4:where(:not(.light,.light *))[aria-current=page]{background-color:#fafafa0a}@supports (color:color-mix(in lab, red, red)){.dark\:aria-\[current\=page\]\:bg-bloom-foreground-dark\/4:where(:not(.light,.light *))[aria-current=page]{background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 4%, transparent)}}}.dark\:data-\[highlighted\]\:bg-bloom-foreground-dark\/8:where(.dark,.dark *)[data-highlighted]{background-color:#fafafa14}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[highlighted\]\:bg-bloom-foreground-dark\/8:where(.dark,.dark *)[data-highlighted]{background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 8%, transparent)}}@media (prefers-color-scheme:dark){.dark\:data-\[highlighted\]\:bg-bloom-foreground-dark\/8:where(:not(.light,.light *))[data-highlighted]{background-color:#fafafa14}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[highlighted\]\:bg-bloom-foreground-dark\/8:where(:not(.light,.light *))[data-highlighted]{background-color:color-mix(in oklab, var(--color-bloom-foreground-dark) 8%, transparent)}}}.dark\:data-\[state\=active\]\:bg-bloom-canvas-dark:where(.dark,.dark *)[data-state=active]{background-color:var(--color-bloom-canvas-dark)}@media (prefers-color-scheme:dark){.dark\:data-\[state\=active\]\:bg-bloom-canvas-dark:where(:not(.light,.light *))[data-state=active]{background-color:var(--color-bloom-canvas-dark)}}.dark\:data-\[state\=on\]\:bg-bloom-canvas-dark:where(.dark,.dark *)[data-state=on]{background-color:var(--color-bloom-canvas-dark)}@media (prefers-color-scheme:dark){.dark\:data-\[state\=on\]\:bg-bloom-canvas-dark:where(:not(.light,.light *))[data-state=on]{background-color:var(--color-bloom-canvas-dark)}}@media (forced-colors:active){.forced-colors\:outline-\[Highlight\]{outline-color:highlight}}@media (pointer:fine){.pointer-fine\:hidden{display:none}}.\[\&_code\]\:bg-transparent code{background-color:#0000}.\[\&_code\]\:p-0 code{padding:0}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:px-2 *)[cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:pt-2 *)[cmdk-group-heading]{padding-top:calc(var(--spacing) * 2)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:pb-1 *)[cmdk-group-heading]{padding-bottom:var(--spacing)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:font-mono *)[cmdk-group-heading]{font-family:var(--font-mono)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:text-xs *)[cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:opacity-60 *)[cmdk-group-heading]{opacity:.6}.\[\&\>\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&\>svg\]\:size-6>svg{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.\[\&\>svg\]\:size-8>svg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}@media (min-width:40rem){.sm\:\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}.\[\&\>tr\:last-child\]\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bloom-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import * as Nude from "@journ/nude/switch-parts";
|
|
3
|
+
//#region src/switch-parts.d.ts
|
|
4
|
+
declare const Root: ({ className, children, ...props }: ComponentPropsWithRef<typeof Nude.Root>) => import("react").JSX.Element;
|
|
5
|
+
declare const Thumb: ({ className, ...props }: ComponentPropsWithRef<typeof Nude.Thumb>) => import("react").JSX.Element;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { Root, Thumb };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { pressReset } from "./lib/interactive.js";
|
|
4
|
+
import { canvasFill, trackFill } from "./lib/theme.js";
|
|
5
|
+
import { TouchTarget } from "./touch-target.js";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import * as Nude from "@journ/nude/switch-parts";
|
|
8
|
+
//#region src/switch-parts.tsx
|
|
9
|
+
const Root = ({ className, children, ...props }) => /* @__PURE__ */ jsxs(Nude.Root, {
|
|
10
|
+
...props,
|
|
11
|
+
className: cn(pressReset, trackFill, "relative inline-flex h-6 w-11 shrink-0 cursor-default items-center rounded-full p-0.5 outline-none transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-bloom-sky", "data-[state=checked]:bg-current disabled:pointer-events-none disabled:opacity-50", className),
|
|
12
|
+
children: [/* @__PURE__ */ jsx(TouchTarget, {}), children]
|
|
13
|
+
});
|
|
14
|
+
const Thumb = ({ className, ...props }) => /* @__PURE__ */ jsx(Nude.Thumb, {
|
|
15
|
+
...props,
|
|
16
|
+
className: cn(canvasFill, "pointer-events-none block size-5 rounded-full transition-transform data-[state=checked]:translate-x-5", className)
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
export { Root, Thumb };
|
package/dist/switch.d.ts
ADDED