@bloomkit/react 0.1.1 → 0.1.3
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/README.md +24 -31
- package/dist/index.cjs +0 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2 -0
- package/dist/index.js +0 -25
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
// #style-inject:#style-inject
|
|
4
|
-
function styleInject(css, { insertAt } = {}) {
|
|
5
|
-
if (!css || typeof document === "undefined") return;
|
|
6
|
-
const head = document.head || document.getElementsByTagName("head")[0];
|
|
7
|
-
const style = document.createElement("style");
|
|
8
|
-
style.type = "text/css";
|
|
9
|
-
if (insertAt === "top") {
|
|
10
|
-
if (head.firstChild) {
|
|
11
|
-
head.insertBefore(style, head.firstChild);
|
|
12
|
-
} else {
|
|
13
|
-
head.appendChild(style);
|
|
14
|
-
}
|
|
15
|
-
} else {
|
|
16
|
-
head.appendChild(style);
|
|
17
|
-
}
|
|
18
|
-
if (style.styleSheet) {
|
|
19
|
-
style.styleSheet.cssText = css;
|
|
20
|
-
} else {
|
|
21
|
-
style.appendChild(document.createTextNode(css));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// src/styles/bloom.css
|
|
26
|
-
styleInject('/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n --font-mono:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --blur-sm: 8px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html,\n :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=button], [type=reset], [type=submit]),\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=until-found])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .visible {\n visibility: visible;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-\\[var\\(--space-lg\\)\\] {\n top: var(--space-lg);\n }\n .right-\\[var\\(--space-lg\\)\\] {\n right: var(--space-lg);\n }\n .right-\\[var\\(--space-xl\\)\\] {\n right: var(--space-xl);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-\\[var\\(--space-xl\\)\\] {\n bottom: var(--space-xl);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .z-50 {\n z-index: 50;\n }\n .z-\\[100\\] {\n z-index: 100;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .mx-auto {\n margin-inline: auto;\n }\n .my-\\[var\\(--space-xs\\)\\] {\n margin-block: var(--space-xs);\n }\n .mt-\\[var\\(--space-lg\\)\\] {\n margin-top: var(--space-lg);\n }\n .mt-\\[var\\(--space-sm\\)\\] {\n margin-top: var(--space-sm);\n }\n .mt-\\[var\\(--space-xs\\)\\] {\n margin-top: var(--space-xs);\n }\n .mb-\\[var\\(--space-lg\\)\\] {\n margin-bottom: var(--space-lg);\n }\n .mb-\\[var\\(--space-md\\)\\] {\n margin-bottom: var(--space-md);\n }\n .mb-\\[var\\(--space-sm\\)\\] {\n margin-bottom: var(--space-sm);\n }\n .mb-\\[var\\(--space-xs\\)\\] {\n margin-bottom: var(--space-xs);\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .inline-flex {\n display: inline-flex;\n }\n .h-\\[2px\\] {\n height: 2px;\n }\n .h-\\[6px\\] {\n height: 6px;\n }\n .h-\\[16px\\] {\n height: 16px;\n }\n .h-\\[22px\\] {\n height: 22px;\n }\n .h-\\[24px\\] {\n height: 24px;\n }\n .h-\\[28px\\] {\n height: 28px;\n }\n .h-\\[32px\\] {\n height: 32px;\n }\n .h-\\[36px\\] {\n height: 36px;\n }\n .h-\\[40px\\] {\n height: 40px;\n }\n .h-\\[44px\\] {\n height: 44px;\n }\n .h-\\[56px\\] {\n height: 56px;\n }\n .h-\\[200px\\] {\n height: 200px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .min-h-\\[100px\\] {\n min-height: 100px;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .w-\\[6px\\] {\n width: 6px;\n }\n .w-\\[22px\\] {\n width: 22px;\n }\n .w-\\[24px\\] {\n width: 24px;\n }\n .w-\\[32px\\] {\n width: 32px;\n }\n .w-\\[36px\\] {\n width: 36px;\n }\n .w-\\[40\\%\\] {\n width: 40%;\n }\n .w-\\[40px\\] {\n width: 40px;\n }\n .w-\\[50px\\] {\n width: 50px;\n }\n .w-\\[56px\\] {\n width: 56px;\n }\n .w-\\[60\\%\\] {\n width: 60%;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[280px\\] {\n width: 280px;\n }\n .w-\\[300px\\] {\n width: 300px;\n }\n .w-full {\n width: 100%;\n }\n .max-w-\\[380px\\] {\n max-width: 380px;\n }\n .max-w-\\[400px\\] {\n max-width: 400px;\n }\n .max-w-\\[480px\\] {\n max-width: 480px;\n }\n .max-w-\\[800px\\] {\n max-width: 800px;\n }\n .min-w-\\[180px\\] {\n min-width: 180px;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink {\n flex-shrink: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .grow {\n flex-grow: 1;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-\\[bloom-breathe_3s_ease-in-out_infinite\\] {\n animation: bloom-breathe 3s ease-in-out infinite;\n }\n .animate-\\[bloom-breathe_5s_ease-in-out_infinite\\] {\n animation: bloom-breathe 5s ease-in-out infinite;\n }\n .animate-\\[bloom-shimmer_3s_ease-in-out_infinite\\] {\n animation: bloom-shimmer 3s ease-in-out infinite;\n }\n .cursor-grab {\n cursor: grab;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .touch-none {\n touch-action: none;\n }\n .resize-y {\n resize: vertical;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-\\[2px\\] {\n gap: 2px;\n }\n .gap-\\[var\\(--space-3xl\\)\\] {\n gap: var(--space-3xl);\n }\n .gap-\\[var\\(--space-lg\\)\\] {\n gap: var(--space-lg);\n }\n .gap-\\[var\\(--space-md\\)\\] {\n gap: var(--space-md);\n }\n .gap-\\[var\\(--space-sm\\)\\] {\n gap: var(--space-sm);\n }\n .gap-\\[var\\(--space-xs\\)\\] {\n gap: var(--space-xs);\n }\n .-space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .rounded-\\[var\\(--bloom-radius\\)\\] {\n border-radius: var(--bloom-radius);\n }\n .rounded-\\[var\\(--bloom-radius-lg\\)\\] {\n border-radius: var(--bloom-radius-lg);\n }\n .rounded-\\[var\\(--bloom-radius-pill\\)\\] {\n border-radius: var(--bloom-radius-pill);\n }\n .rounded-\\[var\\(--bloom-radius-sm\\)\\] {\n border-radius: var(--bloom-radius-sm);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-\\[2px\\] {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l-\\[4px\\] {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-\\[var\\(--bloom-accent1\\)\\]\\/30 {\n border-color: var(--bloom-accent1);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--bloom-accent1) 30%, transparent);\n }\n }\n .border-\\[var\\(--bloom-accent1-deep\\)\\] {\n border-color: var(--bloom-accent1-deep);\n }\n .border-\\[var\\(--bloom-surface2\\)\\] {\n border-color: var(--bloom-surface2);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-l-\\[var\\(--bloom-accent1\\)\\] {\n border-left-color: var(--bloom-accent1);\n }\n .border-l-\\[var\\(--bloom-accent2\\)\\] {\n border-left-color: var(--bloom-accent2);\n }\n .border-l-\\[var\\(--bloom-accent3\\)\\] {\n border-left-color: var(--bloom-accent3);\n }\n .border-l-\\[var\\(--bloom-accent4\\)\\] {\n border-left-color: var(--bloom-accent4);\n }\n .bg-\\[var\\(--bloom-accent1\\)\\]\\/20 {\n background-color: var(--bloom-accent1);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\n }\n }\n .bg-\\[var\\(--bloom-accent1-deep\\)\\] {\n background-color: var(--bloom-accent1-deep);\n }\n .bg-\\[var\\(--bloom-accent1-deep\\)\\]\\/40 {\n background-color: var(--bloom-accent1-deep);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bloom-accent1-deep) 40%, transparent);\n }\n }\n .bg-\\[var\\(--bloom-accent2\\)\\]\\/20 {\n background-color: var(--bloom-accent2);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bloom-accent2) 20%, transparent);\n }\n }\n .bg-\\[var\\(--bloom-accent2-deep\\)\\] {\n background-color: var(--bloom-accent2-deep);\n }\n .bg-\\[var\\(--bloom-accent3\\)\\]\\/20 {\n background-color: var(--bloom-accent3);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bloom-accent3) 20%, transparent);\n }\n }\n .bg-\\[var\\(--bloom-accent3-deep\\)\\] {\n background-color: var(--bloom-accent3-deep);\n }\n .bg-\\[var\\(--bloom-accent4\\)\\]\\/20 {\n background-color: var(--bloom-accent4);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bloom-accent4) 20%, transparent);\n }\n }\n .bg-\\[var\\(--bloom-accent4-deep\\)\\] {\n background-color: var(--bloom-accent4-deep);\n }\n .bg-\\[var\\(--bloom-surface\\)\\] {\n background-color: var(--bloom-surface);\n }\n .bg-\\[var\\(--bloom-surface2\\)\\] {\n background-color: var(--bloom-surface2);\n }\n .bg-\\[var\\(--bloom-text\\)\\] {\n background-color: var(--bloom-text);\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-\\[var\\(--bloom-accent1-deep\\)\\] {\n --tw-gradient-from: var(--bloom-accent1-deep);\n --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));\n }\n .to-\\[var\\(--bloom-accent1\\)\\] {\n --tw-gradient-to: var(--bloom-accent1);\n --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));\n }\n .bg-\\[length\\:200\\%_100\\%\\] {\n background-size: 200% 100%;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-\\[var\\(--space-3xl\\)\\] {\n padding: var(--space-3xl);\n }\n .p-\\[var\\(--space-lg\\)\\] {\n padding: var(--space-lg);\n }\n .p-\\[var\\(--space-xl\\)\\] {\n padding: var(--space-xl);\n }\n .p-\\[var\\(--space-xs\\)\\] {\n padding: var(--space-xs);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .px-\\[28px\\] {\n padding-inline: 28px;\n }\n .px-\\[var\\(--space-lg\\)\\] {\n padding-inline: var(--space-lg);\n }\n .px-\\[var\\(--space-md\\)\\] {\n padding-inline: var(--space-md);\n }\n .py-\\[var\\(--space-md\\)\\] {\n padding-block: var(--space-md);\n }\n .py-\\[var\\(--space-sm\\)\\] {\n padding-block: var(--space-sm);\n }\n .py-\\[var\\(--space-xs\\)\\] {\n padding-block: var(--space-xs);\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pb-0 {\n padding-bottom: calc(var(--spacing) * 0);\n }\n .text-center {\n text-align: center;\n }\n .font-\\[family-name\\:var\\(--bloom-font\\)\\] {\n font-family: var(--bloom-font);\n }\n .font-\\[family-name\\:var\\(--bloom-font-display\\)\\] {\n font-family: var(--bloom-font-display);\n }\n .text-\\[14px\\] {\n font-size: 14px;\n }\n .text-\\[18px\\] {\n font-size: 18px;\n }\n .text-\\[length\\:var\\(--bloom-text-body\\)\\] {\n font-size: var(--bloom-text-body);\n }\n .text-\\[length\\:var\\(--bloom-text-caption\\)\\] {\n font-size: var(--bloom-text-caption);\n }\n .text-\\[length\\:var\\(--bloom-text-heading\\)\\] {\n font-size: var(--bloom-text-heading);\n }\n .text-\\[length\\:var\\(--bloom-text-micro\\)\\] {\n font-size: var(--bloom-text-micro);\n }\n .text-\\[length\\:var\\(--bloom-text-subheading\\)\\] {\n font-size: var(--bloom-text-subheading);\n }\n .leading-\\[var\\(--bloom-leading-heading\\)\\] {\n --tw-leading: var(--bloom-leading-heading);\n line-height: var(--bloom-leading-heading);\n }\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .tracking-\\[var\\(--bloom-letter-tight\\)\\] {\n --tw-tracking: var(--bloom-letter-tight);\n letter-spacing: var(--bloom-letter-tight);\n }\n .tracking-\\[var\\(--bloom-letter-wide\\)\\] {\n --tw-tracking: var(--bloom-letter-wide);\n letter-spacing: var(--bloom-letter-wide);\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .text-\\[var\\(--bloom-accent1-deep\\)\\] {\n color: var(--bloom-accent1-deep);\n }\n .text-\\[var\\(--bloom-accent2-deep\\)\\] {\n color: var(--bloom-accent2-deep);\n }\n .text-\\[var\\(--bloom-accent3-deep\\)\\] {\n color: var(--bloom-accent3-deep);\n }\n .text-\\[var\\(--bloom-accent4-deep\\)\\] {\n color: var(--bloom-accent4-deep);\n }\n .text-\\[var\\(--bloom-bg\\)\\] {\n color: var(--bloom-bg);\n }\n .text-\\[var\\(--bloom-text\\)\\] {\n color: var(--bloom-text);\n }\n .text-\\[var\\(--bloom-text-body\\)\\] {\n color: var(--bloom-text-body);\n }\n .text-\\[var\\(--bloom-text-caption\\)\\] {\n color: var(--bloom-text-caption);\n }\n .text-\\[var\\(--bloom-text-display-xl\\)\\] {\n color: var(--bloom-text-display-xl);\n }\n .text-\\[var\\(--bloom-text-heading\\)\\] {\n color: var(--bloom-text-heading);\n }\n .text-\\[var\\(--bloom-text-micro\\)\\] {\n color: var(--bloom-text-micro);\n }\n .text-\\[var\\(--bloom-text-secondary\\)\\] {\n color: var(--bloom-text-secondary);\n }\n .text-\\[var\\(--bloom-text-subheading\\)\\] {\n color: var(--bloom-text-subheading);\n }\n .text-white {\n color: var(--color-white);\n }\n .lowercase {\n text-transform: lowercase;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_1px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 0 1px 4px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[var\\(--bloom-shadow\\)\\] {\n --tw-shadow: var(--bloom-shadow);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[var\\(--bloom-shadow-hover\\)\\] {\n --tw-shadow: var(--bloom-shadow-hover);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .blur {\n --tw-blur: blur(8px);\n 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,);\n }\n .backdrop-blur-sm {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to,\n opacity,\n box-shadow,\n transform,\n translate,\n scale,\n rotate,\n filter,\n -webkit-backdrop-filter,\n backdrop-filter,\n display,\n content-visibility,\n overlay,\n pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property:\n transform,\n translate,\n scale,\n rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-\\[var\\(--bloom-duration\\)\\] {\n --tw-duration: var(--bloom-duration);\n transition-duration: var(--bloom-duration);\n }\n .duration-\\[var\\(--bloom-duration-fast\\)\\] {\n --tw-duration: var(--bloom-duration-fast);\n transition-duration: var(--bloom-duration-fast);\n }\n .ease-\\[var\\(--bloom-ease\\)\\] {\n --tw-ease: var(--bloom-ease);\n transition-timing-function: var(--bloom-ease);\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .duration-\\[var\\(--bloom-duration\\)\\] {\n animation-duration: var(--bloom-duration);\n }\n .duration-\\[var\\(--bloom-duration-fast\\)\\] {\n animation-duration: var(--bloom-duration-fast);\n }\n .ease-\\[var\\(--bloom-ease\\)\\] {\n animation-timing-function: var(--bloom-ease);\n }\n .ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n .fade-in-0 {\n --tw-enter-opacity: 0;\n }\n .zoom-in-95 {\n --tw-enter-scale: .95;\n }\n .placeholder\\:text-\\[var\\(--bloom-text-secondary\\)\\]\\/60 {\n &::placeholder {\n color: var(--bloom-text-secondary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--bloom-text-secondary) 60%, transparent);\n }\n }\n }\n .hover\\:-translate-y-\\[2px\\] {\n &:hover {\n @media (hover: hover) {\n --tw-translate-y: calc(2px * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .hover\\:-translate-y-\\[4px\\] {\n &:hover {\n @media (hover: hover) {\n --tw-translate-y: calc(4px * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .hover\\:scale-110 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:border-\\[var\\(--bloom-surface2\\)\\] {\n &:hover {\n @media (hover: hover) {\n border-color: var(--bloom-surface2);\n }\n }\n }\n .hover\\:bg-\\[var\\(--bloom-accent1\\)\\]\\/20 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bloom-accent1);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\n }\n }\n }\n }\n .hover\\:bg-\\[var\\(--bloom-surface\\)\\] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bloom-surface);\n }\n }\n }\n .hover\\:bg-\\[var\\(--bloom-surface2\\)\\] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--bloom-surface2);\n }\n }\n }\n .hover\\:text-\\[var\\(--bloom-text\\)\\] {\n &:hover {\n @media (hover: hover) {\n color: var(--bloom-text);\n }\n }\n }\n .hover\\:shadow-\\[var\\(--bloom-shadow-hover\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: var(--bloom-shadow-hover);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n }\n }\n .focus\\:border-\\[var\\(--bloom-accent1-deep\\)\\] {\n &:focus {\n border-color: var(--bloom-accent1-deep);\n }\n }\n .focus\\:ring-\\[4px\\] {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n }\n .focus\\:ring-\\[var\\(--bloom-accent1\\)\\]\\/20 {\n &:focus {\n --tw-ring-color: var(--bloom-accent1);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .focus-visible\\:ring-\\[4px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[var\\(--bloom-accent1\\)\\]\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--bloom-accent1);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-\\[var\\(--bloom-accent1\\)\\]\\/30 {\n &:focus-visible {\n --tw-ring-color: var(--bloom-accent1);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--bloom-accent1) 30%, transparent);\n }\n }\n }\n .focus-visible\\:outline-none {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .active\\:translate-y-0 {\n &:active {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .active\\:scale-\\[0\\.98\\] {\n &:active {\n scale: 0.98;\n }\n }\n .active\\:cursor-grabbing {\n &:active {\n cursor: grabbing;\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[highlighted\\]\\:bg-\\[var\\(--bloom-surface2\\)\\] {\n &[data-highlighted] {\n background-color: var(--bloom-surface2);\n }\n }\n .data-\\[state\\=active\\]\\:bg-\\[var\\(--bloom-surface2\\)\\] {\n &[data-state=active] {\n background-color: var(--bloom-surface2);\n }\n }\n .data-\\[state\\=active\\]\\:text-\\[var\\(--bloom-text\\)\\] {\n &[data-state=active] {\n color: var(--bloom-text);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[25px\\] {\n &[data-state=checked] {\n --tw-translate-x: 25px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-\\[var\\(--bloom-accent1-deep\\)\\] {\n &[data-state=checked] {\n background-color: var(--bloom-accent1-deep);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=closed] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=closed] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=closed] {\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=open] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=open] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=open] {\n --tw-enter-scale: .95;\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-\\[3px\\] {\n &[data-state=unchecked] {\n --tw-translate-x: 3px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n}\n@layer bloom.tokens {\n :root {\n --bloom-accent1: #B8D4C8;\n --bloom-accent1-deep: #6B9E8A;\n --bloom-accent2: #E8C4A0;\n --bloom-accent2-deep: #C49460;\n --bloom-accent3: #C4B5D4;\n --bloom-accent3-deep: #8E72A8;\n --bloom-accent4: #D4A0A0;\n --bloom-accent4-deep: #A06060;\n --bloom-bg: #FDFBF7;\n --bloom-surface: #F7F3EC;\n --bloom-surface2: #F0EBE1;\n --bloom-text: #2C2A25;\n --bloom-text-secondary: #7A756B;\n }\n :root.dark,\n [data-theme=dark] {\n --bloom-bg: #1A1917;\n --bloom-surface: #242320;\n --bloom-surface2: #2E2D29;\n --bloom-text: #E8E4DB;\n --bloom-text-secondary: #9A9590;\n --bloom-accent1: #8EBAA8;\n --bloom-accent1-deep: #5A8A72;\n --bloom-accent2: #D4A878;\n --bloom-accent2-deep: #B07840;\n --bloom-accent3: #A898BC;\n --bloom-accent3-deep: #7A5E98;\n --bloom-accent4: #BC8080;\n --bloom-accent4-deep: #904848;\n }\n @media (prefers-color-scheme: dark) {\n :root:not(.light):not([data-theme=light]) {\n --bloom-bg: #1A1917;\n --bloom-surface: #242320;\n --bloom-surface2: #2E2D29;\n --bloom-text: #E8E4DB;\n --bloom-text-secondary: #9A9590;\n --bloom-accent1: #8EBAA8;\n --bloom-accent1-deep: #5A8A72;\n --bloom-accent2: #D4A878;\n --bloom-accent2-deep: #B07840;\n --bloom-accent3: #A898BC;\n --bloom-accent3-deep: #7A5E98;\n --bloom-accent4: #BC8080;\n --bloom-accent4-deep: #904848;\n }\n }\n}\n@layer bloom.tokens {\n :root {\n --bloom-font: "DM Sans", sans-serif;\n --bloom-font-display: "Fraunces", serif;\n --bloom-letter-wide: 0.12em;\n --bloom-letter-tight: -0.02em;\n --bloom-text-display-xl: 42px;\n --bloom-text-display: 32px;\n --bloom-text-heading: 24px;\n --bloom-text-subheading: 18px;\n --bloom-text-body: 15px;\n --bloom-text-caption: 13px;\n --bloom-text-micro: 11px;\n --bloom-leading-display-xl: 1.1;\n --bloom-leading-display: 1.2;\n --bloom-leading-heading: 1.3;\n --bloom-leading-subheading: 1.4;\n --bloom-leading-body: 1.6;\n --bloom-leading-caption: 1.5;\n --bloom-leading-micro: 1.4;\n }\n}\n@layer bloom.tokens {\n :root {\n --space-xs: 4px;\n --space-sm: 8px;\n --space-md: 12px;\n --space-lg: 16px;\n --space-xl: 24px;\n --space-2xl: 32px;\n --space-3xl: 48px;\n --space-4xl: 64px;\n }\n}\n@layer bloom.tokens {\n :root {\n --bloom-radius-sm: 12px;\n --bloom-radius: 16px;\n --bloom-radius-lg: 24px;\n --bloom-radius-pill: 999px;\n }\n}\n@layer bloom.tokens {\n :root {\n --bloom-ease: cubic-bezier(0.4, 0, 0.2, 1);\n --bloom-duration: 500ms;\n --bloom-duration-slow: 800ms;\n --bloom-duration-fast: 300ms;\n }\n}\n@layer bloom.tokens {\n :root {\n --bloom-shadow: 0 2px 24px rgba(44, 42, 37, 0.06);\n --bloom-shadow-hover: 0 8px 40px rgba(44, 42, 37, 0.1);\n --bloom-blur-blob: blur(60px);\n --bloom-blur-card: blur(40px);\n }\n :root.dark,\n [data-theme=dark] {\n --bloom-shadow: 0 2px 24px rgba(0, 0, 0, 0.2);\n --bloom-shadow-hover: 0 8px 40px rgba(0, 0, 0, 0.3);\n }\n @media (prefers-color-scheme: dark) {\n :root:not(.light):not([data-theme=light]) {\n --bloom-shadow: 0 2px 24px rgba(0, 0, 0, 0.2);\n --bloom-shadow-hover: 0 8px 40px rgba(0, 0, 0, 0.3);\n }\n }\n}\n@layer bloom.animations {\n @keyframes bloom-breathe {\n 0%, 100% {\n transform: scale(1);\n opacity: 0.7;\n }\n 50% {\n transform: scale(1.08);\n opacity: 1;\n }\n }\n @keyframes bloom-float {\n 0%, 100% {\n transform: translateY(0) scale(1);\n }\n 50% {\n transform: translateY(-8px) scale(1.02);\n }\n }\n @keyframes bloom-morph {\n 0%, 100% {\n border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;\n }\n 25% {\n border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;\n }\n 50% {\n border-radius: 50% 60% 30% 60% / 30% 50% 70% 50%;\n }\n 75% {\n border-radius: 60% 30% 50% 40% / 70% 40% 60% 30%;\n }\n }\n @keyframes bloom-shimmer {\n 0% {\n background-position: -200% 0;\n }\n 100% {\n background-position: 200% 0;\n }\n }\n @keyframes bloom-shrink {\n 0% {\n width: 100%;\n }\n 100% {\n width: 0%;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n }\n .bloom-reduced-motion *,\n .bloom-reduced-motion *::before,\n .bloom-reduced-motion *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n}\n@layer bloom.base {\n .bloom {\n font-family: var(--bloom-font);\n font-size: var(--bloom-text-body);\n line-height: var(--bloom-leading-body);\n color: var(--bloom-text);\n background-color: var(--bloom-bg);\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-rotate-x { syntax: "*"; inherits: false; }\n@property --tw-rotate-y { syntax: "*"; inherits: false; }\n@property --tw-rotate-z { syntax: "*"; inherits: false; }\n@property --tw-skew-x { syntax: "*"; inherits: false; }\n@property --tw-skew-y { syntax: "*"; inherits: false; }\n@property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }\n@property --tw-gradient-position { syntax: "*"; inherits: false; }\n@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }\n@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }\n@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-leading { syntax: "*"; inherits: false; }\n@property --tw-font-weight { syntax: "*"; inherits: false; }\n@property --tw-tracking { syntax: "*"; inherits: false; }\n@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-ring-color { syntax: "*"; inherits: false; }\n@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-ring-color { syntax: "*"; inherits: false; }\n@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-ring-inset { syntax: "*"; inherits: false; }\n@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }\n@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }\n@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-blur { syntax: "*"; inherits: false; }\n@property --tw-brightness { syntax: "*"; inherits: false; }\n@property --tw-contrast { syntax: "*"; inherits: false; }\n@property --tw-grayscale { syntax: "*"; inherits: false; }\n@property --tw-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-invert { syntax: "*"; inherits: false; }\n@property --tw-opacity { syntax: "*"; inherits: false; }\n@property --tw-saturate { syntax: "*"; inherits: false; }\n@property --tw-sepia { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }\n@property --tw-backdrop-blur { syntax: "*"; inherits: false; }\n@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }\n@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }\n@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }\n@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-backdrop-invert { syntax: "*"; inherits: false; }\n@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }\n@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }\n@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }\n@property --tw-duration { syntax: "*"; inherits: false; }\n@property --tw-ease { syntax: "*"; inherits: false; }\n@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }\n@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }\n@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *,\n ::before,\n ::after,\n ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n');
|
|
27
|
-
|
|
28
3
|
// src/utils/cn.ts
|
|
29
4
|
import { clsx } from "clsx";
|
|
30
5
|
import { twMerge } from "tailwind-merge";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["#style-inject:#style-inject","../src/styles/bloom.css","../src/utils/cn.ts","../src/utils/motion-presets.ts","../src/hooks/use-reduced-motion.ts","../src/hooks/use-breathing.ts","../src/components/button/button.tsx","../src/components/button/button.variants.ts","../src/components/card/card.tsx","../src/components/card/card.variants.ts","../src/components/input/input.tsx","../src/components/input/input.variants.ts","../src/components/toggle/toggle.tsx","../src/components/badge/badge.tsx","../src/components/badge/badge.variants.ts","../src/components/alert/alert.tsx","../src/components/alert/alert.variants.ts","../src/components/avatar/avatar.tsx","../src/components/avatar/avatar.variants.ts","../src/components/tooltip/tooltip.tsx","../src/components/progress/progress.tsx","../src/components/progress/progress.variants.ts","../src/components/slider/slider.tsx","../src/components/modal/modal.tsx","../src/components/dropdown/dropdown.tsx","../src/components/tabs/tabs.tsx","../src/components/tabs/tabs.variants.ts","../src/components/date-picker/date-picker.tsx","../src/components/toast/toast.tsx","../src/components/toast/toast.variants.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/skeleton.variants.ts"],"sourcesContent":["\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\"/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\\n@layer properties;\\n@layer theme, base, components, utilities;\\n@layer theme {\\n :root,\\n :host {\\n --font-sans:\\n ui-sans-serif,\\n system-ui,\\n sans-serif,\\n \\\"Apple Color Emoji\\\",\\n \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\",\\n \\\"Noto Color Emoji\\\";\\n --font-mono:\\n ui-monospace,\\n SFMono-Regular,\\n Menlo,\\n Monaco,\\n Consolas,\\n \\\"Liberation Mono\\\",\\n \\\"Courier New\\\",\\n monospace;\\n --color-black: #000;\\n --color-white: #fff;\\n --spacing: 0.25rem;\\n --font-weight-light: 300;\\n --font-weight-normal: 400;\\n --font-weight-medium: 500;\\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\\n --blur-sm: 8px;\\n --default-transition-duration: 150ms;\\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n --default-font-family: var(--font-sans);\\n --default-mono-font-family: var(--font-mono);\\n }\\n}\\n@layer base {\\n *,\\n ::after,\\n ::before,\\n ::backdrop,\\n ::file-selector-button {\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n border: 0 solid;\\n }\\n html,\\n :host {\\n line-height: 1.5;\\n -webkit-text-size-adjust: 100%;\\n tab-size: 4;\\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\");\\n font-feature-settings: var(--default-font-feature-settings, normal);\\n font-variation-settings: var(--default-font-variation-settings, normal);\\n -webkit-tap-highlight-color: transparent;\\n }\\n hr {\\n height: 0;\\n color: inherit;\\n border-top-width: 1px;\\n }\\n abbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n }\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-size: inherit;\\n font-weight: inherit;\\n }\\n a {\\n color: inherit;\\n -webkit-text-decoration: inherit;\\n text-decoration: inherit;\\n }\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n code,\\n kbd,\\n samp,\\n pre {\\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace);\\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\\n font-size: 1em;\\n }\\n small {\\n font-size: 80%;\\n }\\n sub,\\n sup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n }\\n sub {\\n bottom: -0.25em;\\n }\\n sup {\\n top: -0.5em;\\n }\\n table {\\n text-indent: 0;\\n border-color: inherit;\\n border-collapse: collapse;\\n }\\n :-moz-focusring {\\n outline: auto;\\n }\\n progress {\\n vertical-align: baseline;\\n }\\n summary {\\n display: list-item;\\n }\\n ol,\\n ul,\\n menu {\\n list-style: none;\\n }\\n img,\\n svg,\\n video,\\n canvas,\\n audio,\\n iframe,\\n embed,\\n object {\\n display: block;\\n vertical-align: middle;\\n }\\n img,\\n video {\\n max-width: 100%;\\n height: auto;\\n }\\n button,\\n input,\\n select,\\n optgroup,\\n textarea,\\n ::file-selector-button {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n border-radius: 0;\\n background-color: transparent;\\n opacity: 1;\\n }\\n :where(select:is([multiple], [size])) optgroup {\\n font-weight: bolder;\\n }\\n :where(select:is([multiple], [size])) optgroup option {\\n padding-inline-start: 20px;\\n }\\n ::file-selector-button {\\n margin-inline-end: 4px;\\n }\\n ::placeholder {\\n opacity: 1;\\n }\\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\\n ::placeholder {\\n color: currentcolor;\\n @supports (color: color-mix(in lab, red, red)) {\\n color: color-mix(in oklab, currentcolor 50%, transparent);\\n }\\n }\\n }\\n textarea {\\n resize: vertical;\\n }\\n ::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n ::-webkit-date-and-time-value {\\n min-height: 1lh;\\n text-align: inherit;\\n }\\n ::-webkit-datetime-edit {\\n display: inline-flex;\\n }\\n ::-webkit-datetime-edit-fields-wrapper {\\n padding: 0;\\n }\\n ::-webkit-datetime-edit,\\n ::-webkit-datetime-edit-year-field,\\n ::-webkit-datetime-edit-month-field,\\n ::-webkit-datetime-edit-day-field,\\n ::-webkit-datetime-edit-hour-field,\\n ::-webkit-datetime-edit-minute-field,\\n ::-webkit-datetime-edit-second-field,\\n ::-webkit-datetime-edit-millisecond-field,\\n ::-webkit-datetime-edit-meridiem-field {\\n padding-block: 0;\\n }\\n ::-webkit-calendar-picker-indicator {\\n line-height: 1;\\n }\\n :-moz-ui-invalid {\\n box-shadow: none;\\n }\\n button,\\n input:where([type=button], [type=reset], [type=submit]),\\n ::file-selector-button {\\n appearance: button;\\n }\\n ::-webkit-inner-spin-button,\\n ::-webkit-outer-spin-button {\\n height: auto;\\n }\\n [hidden]:where(:not([hidden=until-found])) {\\n display: none !important;\\n }\\n}\\n@layer utilities {\\n .pointer-events-none {\\n pointer-events: none;\\n }\\n .visible {\\n visibility: visible;\\n }\\n .absolute {\\n position: absolute;\\n }\\n .fixed {\\n position: fixed;\\n }\\n .relative {\\n position: relative;\\n }\\n .inset-0 {\\n inset: calc(var(--spacing) * 0);\\n }\\n .top-1\\\\/2 {\\n top: calc(1 / 2 * 100%);\\n }\\n .top-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n top: var(--space-lg);\\n }\\n .right-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n right: var(--space-lg);\\n }\\n .right-\\\\[var\\\\(--space-xl\\\\)\\\\] {\\n right: var(--space-xl);\\n }\\n .bottom-0 {\\n bottom: calc(var(--spacing) * 0);\\n }\\n .bottom-\\\\[var\\\\(--space-xl\\\\)\\\\] {\\n bottom: var(--space-xl);\\n }\\n .left-0 {\\n left: calc(var(--spacing) * 0);\\n }\\n .left-1\\\\/2 {\\n left: calc(1 / 2 * 100%);\\n }\\n .z-50 {\\n z-index: 50;\\n }\\n .z-\\\\[100\\\\] {\\n z-index: 100;\\n }\\n .container {\\n width: 100%;\\n @media (width >= 40rem) {\\n max-width: 40rem;\\n }\\n @media (width >= 48rem) {\\n max-width: 48rem;\\n }\\n @media (width >= 64rem) {\\n max-width: 64rem;\\n }\\n @media (width >= 80rem) {\\n max-width: 80rem;\\n }\\n @media (width >= 96rem) {\\n max-width: 96rem;\\n }\\n }\\n .mx-auto {\\n margin-inline: auto;\\n }\\n .my-\\\\[var\\\\(--space-xs\\\\)\\\\] {\\n margin-block: var(--space-xs);\\n }\\n .mt-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n margin-top: var(--space-lg);\\n }\\n .mt-\\\\[var\\\\(--space-sm\\\\)\\\\] {\\n margin-top: var(--space-sm);\\n }\\n .mt-\\\\[var\\\\(--space-xs\\\\)\\\\] {\\n margin-top: var(--space-xs);\\n }\\n .mb-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n margin-bottom: var(--space-lg);\\n }\\n .mb-\\\\[var\\\\(--space-md\\\\)\\\\] {\\n margin-bottom: var(--space-md);\\n }\\n .mb-\\\\[var\\\\(--space-sm\\\\)\\\\] {\\n margin-bottom: var(--space-sm);\\n }\\n .mb-\\\\[var\\\\(--space-xs\\\\)\\\\] {\\n margin-bottom: var(--space-xs);\\n }\\n .block {\\n display: block;\\n }\\n .flex {\\n display: flex;\\n }\\n .grid {\\n display: grid;\\n }\\n .inline-flex {\\n display: inline-flex;\\n }\\n .h-\\\\[2px\\\\] {\\n height: 2px;\\n }\\n .h-\\\\[6px\\\\] {\\n height: 6px;\\n }\\n .h-\\\\[16px\\\\] {\\n height: 16px;\\n }\\n .h-\\\\[22px\\\\] {\\n height: 22px;\\n }\\n .h-\\\\[24px\\\\] {\\n height: 24px;\\n }\\n .h-\\\\[28px\\\\] {\\n height: 28px;\\n }\\n .h-\\\\[32px\\\\] {\\n height: 32px;\\n }\\n .h-\\\\[36px\\\\] {\\n height: 36px;\\n }\\n .h-\\\\[40px\\\\] {\\n height: 40px;\\n }\\n .h-\\\\[44px\\\\] {\\n height: 44px;\\n }\\n .h-\\\\[56px\\\\] {\\n height: 56px;\\n }\\n .h-\\\\[200px\\\\] {\\n height: 200px;\\n }\\n .h-full {\\n height: 100%;\\n }\\n .h-px {\\n height: 1px;\\n }\\n .min-h-\\\\[100px\\\\] {\\n min-height: 100px;\\n }\\n .min-h-screen {\\n min-height: 100vh;\\n }\\n .w-\\\\[6px\\\\] {\\n width: 6px;\\n }\\n .w-\\\\[22px\\\\] {\\n width: 22px;\\n }\\n .w-\\\\[24px\\\\] {\\n width: 24px;\\n }\\n .w-\\\\[32px\\\\] {\\n width: 32px;\\n }\\n .w-\\\\[36px\\\\] {\\n width: 36px;\\n }\\n .w-\\\\[40\\\\%\\\\] {\\n width: 40%;\\n }\\n .w-\\\\[40px\\\\] {\\n width: 40px;\\n }\\n .w-\\\\[50px\\\\] {\\n width: 50px;\\n }\\n .w-\\\\[56px\\\\] {\\n width: 56px;\\n }\\n .w-\\\\[60\\\\%\\\\] {\\n width: 60%;\\n }\\n .w-\\\\[200px\\\\] {\\n width: 200px;\\n }\\n .w-\\\\[280px\\\\] {\\n width: 280px;\\n }\\n .w-\\\\[300px\\\\] {\\n width: 300px;\\n }\\n .w-full {\\n width: 100%;\\n }\\n .max-w-\\\\[380px\\\\] {\\n max-width: 380px;\\n }\\n .max-w-\\\\[400px\\\\] {\\n max-width: 400px;\\n }\\n .max-w-\\\\[480px\\\\] {\\n max-width: 480px;\\n }\\n .max-w-\\\\[800px\\\\] {\\n max-width: 800px;\\n }\\n .min-w-\\\\[180px\\\\] {\\n min-width: 180px;\\n }\\n .flex-1 {\\n flex: 1;\\n }\\n .shrink {\\n flex-shrink: 1;\\n }\\n .shrink-0 {\\n flex-shrink: 0;\\n }\\n .grow {\\n flex-grow: 1;\\n }\\n .-translate-x-1\\\\/2 {\\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-y-1\\\\/2 {\\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .transform {\\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\\n }\\n .animate-\\\\[bloom-breathe_3s_ease-in-out_infinite\\\\] {\\n animation: bloom-breathe 3s ease-in-out infinite;\\n }\\n .animate-\\\\[bloom-breathe_5s_ease-in-out_infinite\\\\] {\\n animation: bloom-breathe 5s ease-in-out infinite;\\n }\\n .animate-\\\\[bloom-shimmer_3s_ease-in-out_infinite\\\\] {\\n animation: bloom-shimmer 3s ease-in-out infinite;\\n }\\n .cursor-grab {\\n cursor: grab;\\n }\\n .cursor-pointer {\\n cursor: pointer;\\n }\\n .touch-none {\\n touch-action: none;\\n }\\n .resize-y {\\n resize: vertical;\\n }\\n .grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n }\\n .grid-cols-7 {\\n grid-template-columns: repeat(7, minmax(0, 1fr));\\n }\\n .flex-col {\\n flex-direction: column;\\n }\\n .flex-wrap {\\n flex-wrap: wrap;\\n }\\n .items-center {\\n align-items: center;\\n }\\n .items-start {\\n align-items: flex-start;\\n }\\n .justify-between {\\n justify-content: space-between;\\n }\\n .justify-center {\\n justify-content: center;\\n }\\n .justify-end {\\n justify-content: flex-end;\\n }\\n .gap-\\\\[2px\\\\] {\\n gap: 2px;\\n }\\n .gap-\\\\[var\\\\(--space-3xl\\\\)\\\\] {\\n gap: var(--space-3xl);\\n }\\n .gap-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n gap: var(--space-lg);\\n }\\n .gap-\\\\[var\\\\(--space-md\\\\)\\\\] {\\n gap: var(--space-md);\\n }\\n .gap-\\\\[var\\\\(--space-sm\\\\)\\\\] {\\n gap: var(--space-sm);\\n }\\n .gap-\\\\[var\\\\(--space-xs\\\\)\\\\] {\\n gap: var(--space-xs);\\n }\\n .-space-x-2 {\\n :where(& > :not(:last-child)) {\\n --tw-space-x-reverse: 0;\\n margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));\\n margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)));\\n }\\n }\\n .overflow-hidden {\\n overflow: hidden;\\n }\\n .rounded-\\\\[var\\\\(--bloom-radius\\\\)\\\\] {\\n border-radius: var(--bloom-radius);\\n }\\n .rounded-\\\\[var\\\\(--bloom-radius-lg\\\\)\\\\] {\\n border-radius: var(--bloom-radius-lg);\\n }\\n .rounded-\\\\[var\\\\(--bloom-radius-pill\\\\)\\\\] {\\n border-radius: var(--bloom-radius-pill);\\n }\\n .rounded-\\\\[var\\\\(--bloom-radius-sm\\\\)\\\\] {\\n border-radius: var(--bloom-radius-sm);\\n }\\n .rounded-full {\\n border-radius: calc(infinity * 1px);\\n }\\n .border {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n .border-\\\\[2px\\\\] {\\n border-style: var(--tw-border-style);\\n border-width: 2px;\\n }\\n .border-b {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n .border-l-\\\\[4px\\\\] {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 4px;\\n }\\n .border-\\\\[var\\\\(--bloom-accent1\\\\)\\\\]\\\\/30 {\\n border-color: var(--bloom-accent1);\\n @supports (color: color-mix(in lab, red, red)) {\\n border-color: color-mix(in oklab, var(--bloom-accent1) 30%, transparent);\\n }\\n }\\n .border-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\] {\\n border-color: var(--bloom-accent1-deep);\\n }\\n .border-\\\\[var\\\\(--bloom-surface2\\\\)\\\\] {\\n border-color: var(--bloom-surface2);\\n }\\n .border-transparent {\\n border-color: transparent;\\n }\\n .border-l-\\\\[var\\\\(--bloom-accent1\\\\)\\\\] {\\n border-left-color: var(--bloom-accent1);\\n }\\n .border-l-\\\\[var\\\\(--bloom-accent2\\\\)\\\\] {\\n border-left-color: var(--bloom-accent2);\\n }\\n .border-l-\\\\[var\\\\(--bloom-accent3\\\\)\\\\] {\\n border-left-color: var(--bloom-accent3);\\n }\\n .border-l-\\\\[var\\\\(--bloom-accent4\\\\)\\\\] {\\n border-left-color: var(--bloom-accent4);\\n }\\n .bg-\\\\[var\\\\(--bloom-accent1\\\\)\\\\]\\\\/20 {\\n background-color: var(--bloom-accent1);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\\n }\\n }\\n .bg-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\] {\\n background-color: var(--bloom-accent1-deep);\\n }\\n .bg-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\]\\\\/40 {\\n background-color: var(--bloom-accent1-deep);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--bloom-accent1-deep) 40%, transparent);\\n }\\n }\\n .bg-\\\\[var\\\\(--bloom-accent2\\\\)\\\\]\\\\/20 {\\n background-color: var(--bloom-accent2);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--bloom-accent2) 20%, transparent);\\n }\\n }\\n .bg-\\\\[var\\\\(--bloom-accent2-deep\\\\)\\\\] {\\n background-color: var(--bloom-accent2-deep);\\n }\\n .bg-\\\\[var\\\\(--bloom-accent3\\\\)\\\\]\\\\/20 {\\n background-color: var(--bloom-accent3);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--bloom-accent3) 20%, transparent);\\n }\\n }\\n .bg-\\\\[var\\\\(--bloom-accent3-deep\\\\)\\\\] {\\n background-color: var(--bloom-accent3-deep);\\n }\\n .bg-\\\\[var\\\\(--bloom-accent4\\\\)\\\\]\\\\/20 {\\n background-color: var(--bloom-accent4);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--bloom-accent4) 20%, transparent);\\n }\\n }\\n .bg-\\\\[var\\\\(--bloom-accent4-deep\\\\)\\\\] {\\n background-color: var(--bloom-accent4-deep);\\n }\\n .bg-\\\\[var\\\\(--bloom-surface\\\\)\\\\] {\\n background-color: var(--bloom-surface);\\n }\\n .bg-\\\\[var\\\\(--bloom-surface2\\\\)\\\\] {\\n background-color: var(--bloom-surface2);\\n }\\n .bg-\\\\[var\\\\(--bloom-text\\\\)\\\\] {\\n background-color: var(--bloom-text);\\n }\\n .bg-black\\\\/40 {\\n background-color: color-mix(in srgb, #000 40%, transparent);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\\n }\\n }\\n .bg-transparent {\\n background-color: transparent;\\n }\\n .bg-white {\\n background-color: var(--color-white);\\n }\\n .bg-gradient-to-r {\\n --tw-gradient-position: to right in oklab;\\n background-image: linear-gradient(var(--tw-gradient-stops));\\n }\\n .from-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\] {\\n --tw-gradient-from: var(--bloom-accent1-deep);\\n --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));\\n }\\n .to-\\\\[var\\\\(--bloom-accent1\\\\)\\\\] {\\n --tw-gradient-to: var(--bloom-accent1);\\n --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));\\n }\\n .bg-\\\\[length\\\\:200\\\\%_100\\\\%\\\\] {\\n background-size: 200% 100%;\\n }\\n .object-cover {\\n object-fit: cover;\\n }\\n .p-\\\\[var\\\\(--space-3xl\\\\)\\\\] {\\n padding: var(--space-3xl);\\n }\\n .p-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n padding: var(--space-lg);\\n }\\n .p-\\\\[var\\\\(--space-xl\\\\)\\\\] {\\n padding: var(--space-xl);\\n }\\n .p-\\\\[var\\\\(--space-xs\\\\)\\\\] {\\n padding: var(--space-xs);\\n }\\n .px-4 {\\n padding-inline: calc(var(--spacing) * 4);\\n }\\n .px-8 {\\n padding-inline: calc(var(--spacing) * 8);\\n }\\n .px-\\\\[28px\\\\] {\\n padding-inline: 28px;\\n }\\n .px-\\\\[var\\\\(--space-lg\\\\)\\\\] {\\n padding-inline: var(--space-lg);\\n }\\n .px-\\\\[var\\\\(--space-md\\\\)\\\\] {\\n padding-inline: var(--space-md);\\n }\\n .py-\\\\[var\\\\(--space-md\\\\)\\\\] {\\n padding-block: var(--space-md);\\n }\\n .py-\\\\[var\\\\(--space-sm\\\\)\\\\] {\\n padding-block: var(--space-sm);\\n }\\n .py-\\\\[var\\\\(--space-xs\\\\)\\\\] {\\n padding-block: var(--space-xs);\\n }\\n .pt-0 {\\n padding-top: calc(var(--spacing) * 0);\\n }\\n .pb-0 {\\n padding-bottom: calc(var(--spacing) * 0);\\n }\\n .text-center {\\n text-align: center;\\n }\\n .font-\\\\[family-name\\\\:var\\\\(--bloom-font\\\\)\\\\] {\\n font-family: var(--bloom-font);\\n }\\n .font-\\\\[family-name\\\\:var\\\\(--bloom-font-display\\\\)\\\\] {\\n font-family: var(--bloom-font-display);\\n }\\n .text-\\\\[14px\\\\] {\\n font-size: 14px;\\n }\\n .text-\\\\[18px\\\\] {\\n font-size: 18px;\\n }\\n .text-\\\\[length\\\\:var\\\\(--bloom-text-body\\\\)\\\\] {\\n font-size: var(--bloom-text-body);\\n }\\n .text-\\\\[length\\\\:var\\\\(--bloom-text-caption\\\\)\\\\] {\\n font-size: var(--bloom-text-caption);\\n }\\n .text-\\\\[length\\\\:var\\\\(--bloom-text-heading\\\\)\\\\] {\\n font-size: var(--bloom-text-heading);\\n }\\n .text-\\\\[length\\\\:var\\\\(--bloom-text-micro\\\\)\\\\] {\\n font-size: var(--bloom-text-micro);\\n }\\n .text-\\\\[length\\\\:var\\\\(--bloom-text-subheading\\\\)\\\\] {\\n font-size: var(--bloom-text-subheading);\\n }\\n .leading-\\\\[var\\\\(--bloom-leading-heading\\\\)\\\\] {\\n --tw-leading: var(--bloom-leading-heading);\\n line-height: var(--bloom-leading-heading);\\n }\\n .font-light {\\n --tw-font-weight: var(--font-weight-light);\\n font-weight: var(--font-weight-light);\\n }\\n .font-medium {\\n --tw-font-weight: var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .font-normal {\\n --tw-font-weight: var(--font-weight-normal);\\n font-weight: var(--font-weight-normal);\\n }\\n .tracking-\\\\[var\\\\(--bloom-letter-tight\\\\)\\\\] {\\n --tw-tracking: var(--bloom-letter-tight);\\n letter-spacing: var(--bloom-letter-tight);\\n }\\n .tracking-\\\\[var\\\\(--bloom-letter-wide\\\\)\\\\] {\\n --tw-tracking: var(--bloom-letter-wide);\\n letter-spacing: var(--bloom-letter-wide);\\n }\\n .whitespace-nowrap {\\n white-space: nowrap;\\n }\\n .text-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\] {\\n color: var(--bloom-accent1-deep);\\n }\\n .text-\\\\[var\\\\(--bloom-accent2-deep\\\\)\\\\] {\\n color: var(--bloom-accent2-deep);\\n }\\n .text-\\\\[var\\\\(--bloom-accent3-deep\\\\)\\\\] {\\n color: var(--bloom-accent3-deep);\\n }\\n .text-\\\\[var\\\\(--bloom-accent4-deep\\\\)\\\\] {\\n color: var(--bloom-accent4-deep);\\n }\\n .text-\\\\[var\\\\(--bloom-bg\\\\)\\\\] {\\n color: var(--bloom-bg);\\n }\\n .text-\\\\[var\\\\(--bloom-text\\\\)\\\\] {\\n color: var(--bloom-text);\\n }\\n .text-\\\\[var\\\\(--bloom-text-body\\\\)\\\\] {\\n color: var(--bloom-text-body);\\n }\\n .text-\\\\[var\\\\(--bloom-text-caption\\\\)\\\\] {\\n color: var(--bloom-text-caption);\\n }\\n .text-\\\\[var\\\\(--bloom-text-display-xl\\\\)\\\\] {\\n color: var(--bloom-text-display-xl);\\n }\\n .text-\\\\[var\\\\(--bloom-text-heading\\\\)\\\\] {\\n color: var(--bloom-text-heading);\\n }\\n .text-\\\\[var\\\\(--bloom-text-micro\\\\)\\\\] {\\n color: var(--bloom-text-micro);\\n }\\n .text-\\\\[var\\\\(--bloom-text-secondary\\\\)\\\\] {\\n color: var(--bloom-text-secondary);\\n }\\n .text-\\\\[var\\\\(--bloom-text-subheading\\\\)\\\\] {\\n color: var(--bloom-text-subheading);\\n }\\n .text-white {\\n color: var(--color-white);\\n }\\n .lowercase {\\n text-transform: lowercase;\\n }\\n .uppercase {\\n text-transform: uppercase;\\n }\\n .shadow {\\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-\\\\[0_1px_4px_rgba\\\\(0\\\\,0\\\\,0\\\\,0\\\\.1\\\\)\\\\] {\\n --tw-shadow: 0 1px 4px var(--tw-shadow-color, rgba(0,0,0,0.1));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-\\\\[var\\\\(--bloom-shadow\\\\)\\\\] {\\n --tw-shadow: var(--bloom-shadow);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-\\\\[var\\\\(--bloom-shadow-hover\\\\)\\\\] {\\n --tw-shadow: var(--bloom-shadow-hover);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .blur {\\n --tw-blur: blur(8px);\\n 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,);\\n }\\n .backdrop-blur-sm {\\n --tw-backdrop-blur: blur(var(--blur-sm));\\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\\n }\\n .transition {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to,\\n opacity,\\n box-shadow,\\n transform,\\n translate,\\n scale,\\n rotate,\\n filter,\\n -webkit-backdrop-filter,\\n backdrop-filter,\\n display,\\n content-visibility,\\n overlay,\\n pointer-events;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-all {\\n transition-property: all;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-colors {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .transition-transform {\\n transition-property:\\n transform,\\n translate,\\n scale,\\n rotate;\\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration, var(--default-transition-duration));\\n }\\n .duration-\\\\[var\\\\(--bloom-duration\\\\)\\\\] {\\n --tw-duration: var(--bloom-duration);\\n transition-duration: var(--bloom-duration);\\n }\\n .duration-\\\\[var\\\\(--bloom-duration-fast\\\\)\\\\] {\\n --tw-duration: var(--bloom-duration-fast);\\n transition-duration: var(--bloom-duration-fast);\\n }\\n .ease-\\\\[var\\\\(--bloom-ease\\\\)\\\\] {\\n --tw-ease: var(--bloom-ease);\\n transition-timing-function: var(--bloom-ease);\\n }\\n .ease-in-out {\\n --tw-ease: var(--ease-in-out);\\n transition-timing-function: var(--ease-in-out);\\n }\\n .animate-in {\\n animation-name: enter;\\n animation-duration: 150ms;\\n --tw-enter-opacity: initial;\\n --tw-enter-scale: initial;\\n --tw-enter-rotate: initial;\\n --tw-enter-translate-x: initial;\\n --tw-enter-translate-y: initial;\\n }\\n .outline-none {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n .select-none {\\n -webkit-user-select: none;\\n user-select: none;\\n }\\n .duration-\\\\[var\\\\(--bloom-duration\\\\)\\\\] {\\n animation-duration: var(--bloom-duration);\\n }\\n .duration-\\\\[var\\\\(--bloom-duration-fast\\\\)\\\\] {\\n animation-duration: var(--bloom-duration-fast);\\n }\\n .ease-\\\\[var\\\\(--bloom-ease\\\\)\\\\] {\\n animation-timing-function: var(--bloom-ease);\\n }\\n .ease-in-out {\\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n }\\n .fade-in-0 {\\n --tw-enter-opacity: 0;\\n }\\n .zoom-in-95 {\\n --tw-enter-scale: .95;\\n }\\n .placeholder\\\\:text-\\\\[var\\\\(--bloom-text-secondary\\\\)\\\\]\\\\/60 {\\n &::placeholder {\\n color: var(--bloom-text-secondary);\\n @supports (color: color-mix(in lab, red, red)) {\\n color: color-mix(in oklab, var(--bloom-text-secondary) 60%, transparent);\\n }\\n }\\n }\\n .hover\\\\:-translate-y-\\\\[2px\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n --tw-translate-y: calc(2px * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n }\\n .hover\\\\:-translate-y-\\\\[4px\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n --tw-translate-y: calc(4px * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n }\\n .hover\\\\:scale-110 {\\n &:hover {\\n @media (hover: hover) {\\n --tw-scale-x: 110%;\\n --tw-scale-y: 110%;\\n --tw-scale-z: 110%;\\n scale: var(--tw-scale-x) var(--tw-scale-y);\\n }\\n }\\n }\\n .hover\\\\:border-\\\\[var\\\\(--bloom-surface2\\\\)\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n border-color: var(--bloom-surface2);\\n }\\n }\\n }\\n .hover\\\\:bg-\\\\[var\\\\(--bloom-accent1\\\\)\\\\]\\\\/20 {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--bloom-accent1);\\n @supports (color: color-mix(in lab, red, red)) {\\n background-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\\n }\\n }\\n }\\n }\\n .hover\\\\:bg-\\\\[var\\\\(--bloom-surface\\\\)\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--bloom-surface);\\n }\\n }\\n }\\n .hover\\\\:bg-\\\\[var\\\\(--bloom-surface2\\\\)\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n background-color: var(--bloom-surface2);\\n }\\n }\\n }\\n .hover\\\\:text-\\\\[var\\\\(--bloom-text\\\\)\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n color: var(--bloom-text);\\n }\\n }\\n }\\n .hover\\\\:shadow-\\\\[var\\\\(--bloom-shadow-hover\\\\)\\\\] {\\n &:hover {\\n @media (hover: hover) {\\n --tw-shadow: var(--bloom-shadow-hover);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n }\\n .focus\\\\:border-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\] {\\n &:focus {\\n border-color: var(--bloom-accent1-deep);\\n }\\n }\\n .focus\\\\:ring-\\\\[4px\\\\] {\\n &:focus {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n .focus\\\\:ring-\\\\[var\\\\(--bloom-accent1\\\\)\\\\]\\\\/20 {\\n &:focus {\\n --tw-ring-color: var(--bloom-accent1);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-ring-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\\n }\\n }\\n }\\n .focus\\\\:outline-none {\\n &:focus {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .focus-visible\\\\:ring-\\\\[4px\\\\] {\\n &:focus-visible {\\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n }\\n .focus-visible\\\\:ring-\\\\[var\\\\(--bloom-accent1\\\\)\\\\]\\\\/20 {\\n &:focus-visible {\\n --tw-ring-color: var(--bloom-accent1);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-ring-color: color-mix(in oklab, var(--bloom-accent1) 20%, transparent);\\n }\\n }\\n }\\n .focus-visible\\\\:ring-\\\\[var\\\\(--bloom-accent1\\\\)\\\\]\\\\/30 {\\n &:focus-visible {\\n --tw-ring-color: var(--bloom-accent1);\\n @supports (color: color-mix(in lab, red, red)) {\\n --tw-ring-color: color-mix(in oklab, var(--bloom-accent1) 30%, transparent);\\n }\\n }\\n }\\n .focus-visible\\\\:outline-none {\\n &:focus-visible {\\n --tw-outline-style: none;\\n outline-style: none;\\n }\\n }\\n .active\\\\:translate-y-0 {\\n &:active {\\n --tw-translate-y: calc(var(--spacing) * 0);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n .active\\\\:scale-\\\\[0\\\\.98\\\\] {\\n &:active {\\n scale: 0.98;\\n }\\n }\\n .active\\\\:cursor-grabbing {\\n &:active {\\n cursor: grabbing;\\n }\\n }\\n .disabled\\\\:pointer-events-none {\\n &:disabled {\\n pointer-events: none;\\n }\\n }\\n .disabled\\\\:cursor-not-allowed {\\n &:disabled {\\n cursor: not-allowed;\\n }\\n }\\n .disabled\\\\:opacity-50 {\\n &:disabled {\\n opacity: 50%;\\n }\\n }\\n .data-\\\\[disabled\\\\]\\\\:pointer-events-none {\\n &[data-disabled] {\\n pointer-events: none;\\n }\\n }\\n .data-\\\\[disabled\\\\]\\\\:opacity-50 {\\n &[data-disabled] {\\n opacity: 50%;\\n }\\n }\\n .data-\\\\[highlighted\\\\]\\\\:bg-\\\\[var\\\\(--bloom-surface2\\\\)\\\\] {\\n &[data-highlighted] {\\n background-color: var(--bloom-surface2);\\n }\\n }\\n .data-\\\\[state\\\\=active\\\\]\\\\:bg-\\\\[var\\\\(--bloom-surface2\\\\)\\\\] {\\n &[data-state=active] {\\n background-color: var(--bloom-surface2);\\n }\\n }\\n .data-\\\\[state\\\\=active\\\\]\\\\:text-\\\\[var\\\\(--bloom-text\\\\)\\\\] {\\n &[data-state=active] {\\n color: var(--bloom-text);\\n }\\n }\\n .data-\\\\[state\\\\=checked\\\\]\\\\:translate-x-\\\\[25px\\\\] {\\n &[data-state=checked] {\\n --tw-translate-x: 25px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n .data-\\\\[state\\\\=checked\\\\]\\\\:bg-\\\\[var\\\\(--bloom-accent1-deep\\\\)\\\\] {\\n &[data-state=checked] {\\n background-color: var(--bloom-accent1-deep);\\n }\\n }\\n .data-\\\\[state\\\\=closed\\\\]\\\\:animate-out {\\n &[data-state=closed] {\\n animation-name: exit;\\n animation-duration: 150ms;\\n --tw-exit-opacity: initial;\\n --tw-exit-scale: initial;\\n --tw-exit-rotate: initial;\\n --tw-exit-translate-x: initial;\\n --tw-exit-translate-y: initial;\\n }\\n }\\n .data-\\\\[state\\\\=closed\\\\]\\\\:fade-out-0 {\\n &[data-state=closed] {\\n --tw-exit-opacity: 0;\\n }\\n }\\n .data-\\\\[state\\\\=closed\\\\]\\\\:zoom-out-95 {\\n &[data-state=closed] {\\n --tw-exit-scale: .95;\\n }\\n }\\n .data-\\\\[state\\\\=open\\\\]\\\\:animate-in {\\n &[data-state=open] {\\n animation-name: enter;\\n animation-duration: 150ms;\\n --tw-enter-opacity: initial;\\n --tw-enter-scale: initial;\\n --tw-enter-rotate: initial;\\n --tw-enter-translate-x: initial;\\n --tw-enter-translate-y: initial;\\n }\\n }\\n .data-\\\\[state\\\\=open\\\\]\\\\:fade-in-0 {\\n &[data-state=open] {\\n --tw-enter-opacity: 0;\\n }\\n }\\n .data-\\\\[state\\\\=open\\\\]\\\\:zoom-in-95 {\\n &[data-state=open] {\\n --tw-enter-scale: .95;\\n }\\n }\\n .data-\\\\[state\\\\=unchecked\\\\]\\\\:translate-x-\\\\[3px\\\\] {\\n &[data-state=unchecked] {\\n --tw-translate-x: 3px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n }\\n}\\n@layer bloom.tokens {\\n :root {\\n --bloom-accent1: #B8D4C8;\\n --bloom-accent1-deep: #6B9E8A;\\n --bloom-accent2: #E8C4A0;\\n --bloom-accent2-deep: #C49460;\\n --bloom-accent3: #C4B5D4;\\n --bloom-accent3-deep: #8E72A8;\\n --bloom-accent4: #D4A0A0;\\n --bloom-accent4-deep: #A06060;\\n --bloom-bg: #FDFBF7;\\n --bloom-surface: #F7F3EC;\\n --bloom-surface2: #F0EBE1;\\n --bloom-text: #2C2A25;\\n --bloom-text-secondary: #7A756B;\\n }\\n :root.dark,\\n [data-theme=dark] {\\n --bloom-bg: #1A1917;\\n --bloom-surface: #242320;\\n --bloom-surface2: #2E2D29;\\n --bloom-text: #E8E4DB;\\n --bloom-text-secondary: #9A9590;\\n --bloom-accent1: #8EBAA8;\\n --bloom-accent1-deep: #5A8A72;\\n --bloom-accent2: #D4A878;\\n --bloom-accent2-deep: #B07840;\\n --bloom-accent3: #A898BC;\\n --bloom-accent3-deep: #7A5E98;\\n --bloom-accent4: #BC8080;\\n --bloom-accent4-deep: #904848;\\n }\\n @media (prefers-color-scheme: dark) {\\n :root:not(.light):not([data-theme=light]) {\\n --bloom-bg: #1A1917;\\n --bloom-surface: #242320;\\n --bloom-surface2: #2E2D29;\\n --bloom-text: #E8E4DB;\\n --bloom-text-secondary: #9A9590;\\n --bloom-accent1: #8EBAA8;\\n --bloom-accent1-deep: #5A8A72;\\n --bloom-accent2: #D4A878;\\n --bloom-accent2-deep: #B07840;\\n --bloom-accent3: #A898BC;\\n --bloom-accent3-deep: #7A5E98;\\n --bloom-accent4: #BC8080;\\n --bloom-accent4-deep: #904848;\\n }\\n }\\n}\\n@layer bloom.tokens {\\n :root {\\n --bloom-font: \\\"DM Sans\\\", sans-serif;\\n --bloom-font-display: \\\"Fraunces\\\", serif;\\n --bloom-letter-wide: 0.12em;\\n --bloom-letter-tight: -0.02em;\\n --bloom-text-display-xl: 42px;\\n --bloom-text-display: 32px;\\n --bloom-text-heading: 24px;\\n --bloom-text-subheading: 18px;\\n --bloom-text-body: 15px;\\n --bloom-text-caption: 13px;\\n --bloom-text-micro: 11px;\\n --bloom-leading-display-xl: 1.1;\\n --bloom-leading-display: 1.2;\\n --bloom-leading-heading: 1.3;\\n --bloom-leading-subheading: 1.4;\\n --bloom-leading-body: 1.6;\\n --bloom-leading-caption: 1.5;\\n --bloom-leading-micro: 1.4;\\n }\\n}\\n@layer bloom.tokens {\\n :root {\\n --space-xs: 4px;\\n --space-sm: 8px;\\n --space-md: 12px;\\n --space-lg: 16px;\\n --space-xl: 24px;\\n --space-2xl: 32px;\\n --space-3xl: 48px;\\n --space-4xl: 64px;\\n }\\n}\\n@layer bloom.tokens {\\n :root {\\n --bloom-radius-sm: 12px;\\n --bloom-radius: 16px;\\n --bloom-radius-lg: 24px;\\n --bloom-radius-pill: 999px;\\n }\\n}\\n@layer bloom.tokens {\\n :root {\\n --bloom-ease: cubic-bezier(0.4, 0, 0.2, 1);\\n --bloom-duration: 500ms;\\n --bloom-duration-slow: 800ms;\\n --bloom-duration-fast: 300ms;\\n }\\n}\\n@layer bloom.tokens {\\n :root {\\n --bloom-shadow: 0 2px 24px rgba(44, 42, 37, 0.06);\\n --bloom-shadow-hover: 0 8px 40px rgba(44, 42, 37, 0.1);\\n --bloom-blur-blob: blur(60px);\\n --bloom-blur-card: blur(40px);\\n }\\n :root.dark,\\n [data-theme=dark] {\\n --bloom-shadow: 0 2px 24px rgba(0, 0, 0, 0.2);\\n --bloom-shadow-hover: 0 8px 40px rgba(0, 0, 0, 0.3);\\n }\\n @media (prefers-color-scheme: dark) {\\n :root:not(.light):not([data-theme=light]) {\\n --bloom-shadow: 0 2px 24px rgba(0, 0, 0, 0.2);\\n --bloom-shadow-hover: 0 8px 40px rgba(0, 0, 0, 0.3);\\n }\\n }\\n}\\n@layer bloom.animations {\\n @keyframes bloom-breathe {\\n 0%, 100% {\\n transform: scale(1);\\n opacity: 0.7;\\n }\\n 50% {\\n transform: scale(1.08);\\n opacity: 1;\\n }\\n }\\n @keyframes bloom-float {\\n 0%, 100% {\\n transform: translateY(0) scale(1);\\n }\\n 50% {\\n transform: translateY(-8px) scale(1.02);\\n }\\n }\\n @keyframes bloom-morph {\\n 0%, 100% {\\n border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;\\n }\\n 25% {\\n border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;\\n }\\n 50% {\\n border-radius: 50% 60% 30% 60% / 30% 50% 70% 50%;\\n }\\n 75% {\\n border-radius: 60% 30% 50% 40% / 70% 40% 60% 30%;\\n }\\n }\\n @keyframes bloom-shimmer {\\n 0% {\\n background-position: -200% 0;\\n }\\n 100% {\\n background-position: 200% 0;\\n }\\n }\\n @keyframes bloom-shrink {\\n 0% {\\n width: 100%;\\n }\\n 100% {\\n width: 0%;\\n }\\n }\\n @media (prefers-reduced-motion: reduce) {\\n *,\\n *::before,\\n *::after {\\n animation-duration: 0.01ms !important;\\n animation-iteration-count: 1 !important;\\n transition-duration: 0.01ms !important;\\n }\\n }\\n .bloom-reduced-motion *,\\n .bloom-reduced-motion *::before,\\n .bloom-reduced-motion *::after {\\n animation-duration: 0.01ms !important;\\n animation-iteration-count: 1 !important;\\n transition-duration: 0.01ms !important;\\n }\\n}\\n@layer bloom.base {\\n .bloom {\\n font-family: var(--bloom-font);\\n font-size: var(--bloom-text-body);\\n line-height: var(--bloom-leading-body);\\n color: var(--bloom-text);\\n background-color: var(--bloom-bg);\\n }\\n}\\n@keyframes enter {\\n from {\\n opacity: var(--tw-enter-opacity, 1);\\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\\n }\\n}\\n@keyframes exit {\\n to {\\n opacity: var(--tw-exit-opacity, 1);\\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\\n }\\n}\\n@property --tw-translate-x { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-translate-y { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-translate-z { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-rotate-x { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-rotate-y { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-rotate-z { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-skew-x { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-skew-y { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-space-x-reverse { syntax: \\\"*\\\"; inherits: false; initial-value: 0; }\\n@property --tw-border-style { syntax: \\\"*\\\"; inherits: false; initial-value: solid; }\\n@property --tw-gradient-position { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-gradient-from { syntax: \\\"<color>\\\"; inherits: false; initial-value: #0000; }\\n@property --tw-gradient-via { syntax: \\\"<color>\\\"; inherits: false; initial-value: #0000; }\\n@property --tw-gradient-to { syntax: \\\"<color>\\\"; inherits: false; initial-value: #0000; }\\n@property --tw-gradient-stops { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-gradient-via-stops { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-gradient-from-position { syntax: \\\"<length-percentage>\\\"; inherits: false; initial-value: 0%; }\\n@property --tw-gradient-via-position { syntax: \\\"<length-percentage>\\\"; inherits: false; initial-value: 50%; }\\n@property --tw-gradient-to-position { syntax: \\\"<length-percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-leading { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-font-weight { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-tracking { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-inset-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-inset-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-inset-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-ring-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ring-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-inset-ring-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-inset-ring-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-ring-inset { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ring-offset-width { syntax: \\\"<length>\\\"; inherits: false; initial-value: 0px; }\\n@property --tw-ring-offset-color { syntax: \\\"*\\\"; inherits: false; initial-value: #fff; }\\n@property --tw-ring-offset-shadow { syntax: \\\"*\\\"; inherits: false; initial-value: 0 0 #0000; }\\n@property --tw-blur { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-brightness { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-contrast { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-grayscale { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-hue-rotate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-invert { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-opacity { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-saturate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-sepia { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-drop-shadow { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-drop-shadow-color { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-drop-shadow-alpha { syntax: \\\"<percentage>\\\"; inherits: false; initial-value: 100%; }\\n@property --tw-drop-shadow-size { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-blur { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-brightness { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-contrast { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-grayscale { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-hue-rotate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-invert { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-opacity { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-saturate { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-backdrop-sepia { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-duration { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-ease { syntax: \\\"*\\\"; inherits: false; }\\n@property --tw-scale-x { syntax: \\\"*\\\"; inherits: false; initial-value: 1; }\\n@property --tw-scale-y { syntax: \\\"*\\\"; inherits: false; initial-value: 1; }\\n@property --tw-scale-z { syntax: \\\"*\\\"; inherits: false; initial-value: 1; }\\n@layer properties {\\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\\n *,\\n ::before,\\n ::after,\\n ::backdrop {\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-translate-z: 0;\\n --tw-rotate-x: initial;\\n --tw-rotate-y: initial;\\n --tw-rotate-z: initial;\\n --tw-skew-x: initial;\\n --tw-skew-y: initial;\\n --tw-space-x-reverse: 0;\\n --tw-border-style: solid;\\n --tw-gradient-position: initial;\\n --tw-gradient-from: #0000;\\n --tw-gradient-via: #0000;\\n --tw-gradient-to: #0000;\\n --tw-gradient-stops: initial;\\n --tw-gradient-via-stops: initial;\\n --tw-gradient-from-position: 0%;\\n --tw-gradient-via-position: 50%;\\n --tw-gradient-to-position: 100%;\\n --tw-leading: initial;\\n --tw-font-weight: initial;\\n --tw-tracking: initial;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-color: initial;\\n --tw-shadow-alpha: 100%;\\n --tw-inset-shadow: 0 0 #0000;\\n --tw-inset-shadow-color: initial;\\n --tw-inset-shadow-alpha: 100%;\\n --tw-ring-color: initial;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-inset-ring-color: initial;\\n --tw-inset-ring-shadow: 0 0 #0000;\\n --tw-ring-inset: initial;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-blur: initial;\\n --tw-brightness: initial;\\n --tw-contrast: initial;\\n --tw-grayscale: initial;\\n --tw-hue-rotate: initial;\\n --tw-invert: initial;\\n --tw-opacity: initial;\\n --tw-saturate: initial;\\n --tw-sepia: initial;\\n --tw-drop-shadow: initial;\\n --tw-drop-shadow-color: initial;\\n --tw-drop-shadow-alpha: 100%;\\n --tw-drop-shadow-size: initial;\\n --tw-backdrop-blur: initial;\\n --tw-backdrop-brightness: initial;\\n --tw-backdrop-contrast: initial;\\n --tw-backdrop-grayscale: initial;\\n --tw-backdrop-hue-rotate: initial;\\n --tw-backdrop-invert: initial;\\n --tw-backdrop-opacity: initial;\\n --tw-backdrop-saturate: initial;\\n --tw-backdrop-sepia: initial;\\n --tw-duration: initial;\\n --tw-ease: initial;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-scale-z: 1;\\n }\\n }\\n}\\n\")","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import type { Transition, Variants } from \"motion/react\";\n\nexport const bloomTransition: Transition = {\n duration: 0.5,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionSlow: Transition = {\n duration: 0.8,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionFast: Transition = {\n duration: 0.3,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomSpring: Transition = {\n type: \"spring\",\n stiffness: 200,\n damping: 20,\n};\n\nexport const hoverLift: Variants = {\n initial: { y: 0, scale: 1 },\n hover: { y: -2, scale: 1 },\n tap: { y: 0, scale: 0.98 },\n};\n\nexport const cardHoverLift: Variants = {\n initial: { y: 0 },\n hover: { y: -4 },\n};\n\nexport const fadeIn: Variants = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n};\n\nexport const slideUp: Variants = {\n initial: { opacity: 0, y: 12 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 12 },\n};\n","import { useState, useEffect } from \"react\";\n\nexport function useReducedMotion(): boolean {\n const [reduced, setReduced] = useState(() => {\n if (typeof window === \"undefined\") return false;\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n return mq.matches || hasClass;\n });\n\n useEffect(() => {\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n const handleChange = () => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n };\n\n mq.addEventListener(\"change\", handleChange);\n\n const observer = new MutationObserver(() => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n });\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n });\n\n return () => {\n mq.removeEventListener(\"change\", handleChange);\n observer.disconnect();\n };\n }, []);\n\n return reduced;\n}\n","import { useMemo } from \"react\";\n\ninterface UseBreathingOptions {\n duration?: number;\n animation?: string;\n}\n\ninterface BreathingStyle {\n animationName: string;\n animationDuration: string;\n animationDelay: string;\n animationTimingFunction: string;\n animationIterationCount: string;\n}\n\nexport function useBreathing(options?: UseBreathingOptions): BreathingStyle {\n const { duration = 6, animation = \"bloom-breathe\" } = options ?? {};\n\n return useMemo(() => {\n const delay = Math.random() * duration;\n return {\n animationName: animation,\n animationDuration: `${duration}s`,\n animationDelay: `${delay.toFixed(2)}s`,\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n };\n }, [duration, animation]);\n}\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"../../utils/cn\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants & {\n asChild?: boolean;\n children: ReactNode;\n };\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, asChild = false, children, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant }), className)}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"font-[family-name:var(--bloom-font)] text-[14px] font-normal\",\n \"h-[44px] px-[28px]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"relative overflow-hidden cursor-pointer\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--bloom-accent1-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n secondary: [\n \"bg-[var(--bloom-surface)] text-[var(--bloom-text)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n ghost: [\n \"bg-transparent text-[var(--bloom-text)]\",\n \"hover:bg-[var(--bloom-surface)]\",\n \"active:scale-[0.98]\",\n ],\n accent: [\n \"bg-[var(--bloom-accent3-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n }\n);\n\nexport type ButtonVariants = Parameters<typeof buttonVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { cardVariants, type CardVariants } from \"./card.variants\";\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & CardVariants;\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} className={cn(cardVariants({ variant }), className)} {...props} />\n )\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)] pb-0\", className)} {...props} />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"font-[family-name:var(--bloom-font-display)] text-[18px] font-medium text-[var(--bloom-text)] leading-[var(--bloom-leading-heading)]\",\n className\n )}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)]\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)] pt-0 flex items-center\", className)} {...props} />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n","import { cva } from \"class-variance-authority\";\n\nexport const cardVariants = cva(\n [\n \"rounded-[var(--bloom-radius-lg)] bg-[var(--bloom-surface)]\",\n \"shadow-[var(--bloom-shadow)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"relative overflow-hidden\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n interactive: [\n \"cursor-pointer\",\n \"border border-transparent\",\n \"hover:border-[var(--bloom-surface2)]\",\n \"hover:-translate-y-[4px] hover:shadow-[var(--bloom-shadow-hover)]\",\n ],\n featured: [\n \"border border-[var(--bloom-accent1)]/30\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type CardVariants = Parameters<typeof cardVariants>[0];\n","import { forwardRef, type InputHTMLAttributes, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { inputVariants } from \"./input.variants\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", ...props }, ref) => (\n <input\n ref={ref}\n type={type}\n className={cn(inputVariants(), \"h-[44px]\", className)}\n {...props}\n />\n )\n);\nInput.displayName = \"Input\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(inputVariants(), \"min-h-[100px] resize-y\", className)}\n {...props}\n />\n )\n);\nTextarea.displayName = \"Textarea\";\n","import { cva } from \"class-variance-authority\";\n\nexport const inputVariants = cva([\n \"w-full\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"color-[var(--bloom-text)] text-[length:var(--bloom-text-body)]\",\n \"font-[family-name:var(--bloom-font)]\",\n \"px-[var(--space-lg)] py-[var(--space-md)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"placeholder:color-[var(--bloom-text-secondary)]/60\",\n \"focus:outline-none focus:ring-[4px] focus:ring-[var(--bloom-accent1)]/20 focus:border-[var(--bloom-accent1-deep)]\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {\n label?: string;\n}\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ className, label, ...props }, ref) => (\n <label className=\"inline-flex items-center gap-[var(--space-md)]\">\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-[28px] w-[50px] shrink-0 cursor-pointer items-center\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"border border-transparent\",\n \"bg-[var(--bloom-surface2)]\",\n \"transition-colors duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-[var(--bloom-accent1-deep)]\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n \"pointer-events-none block h-[22px] w-[22px] rounded-full bg-white\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"data-[state=unchecked]:translate-x-[3px]\",\n \"data-[state=checked]:translate-x-[25px]\"\n )}\n />\n </SwitchPrimitive.Root>\n {label && (\n <span className=\"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\">\n {label}\n </span>\n )}\n </label>\n )\n);\nToggle.displayName = \"Toggle\";\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { badgeVariants, type BadgeVariants } from \"./badge.variants\";\n\nconst dotColorMap = {\n sage: \"bg-[var(--bloom-accent1-deep)]\",\n sand: \"bg-[var(--bloom-accent2-deep)]\",\n lavender: \"bg-[var(--bloom-accent3-deep)]\",\n rose: \"bg-[var(--bloom-accent4-deep)]\",\n} as const;\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeVariants & {\n dot?: boolean;\n };\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = \"sage\", dot = false, children, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}>\n {dot && (\n <span\n data-bloom-dot=\"\"\n className={cn(\n \"h-[6px] w-[6px] rounded-full\",\n \"animate-[bloom-breathe_5s_ease-in-out_infinite]\",\n dotColorMap[variant ?? \"sage\"]\n )}\n />\n )}\n {children}\n </span>\n )\n);\nBadge.displayName = \"Badge\";\n","import { cva } from \"class-variance-authority\";\n\nexport const badgeVariants = cva(\n [\n \"inline-flex items-center gap-[var(--space-xs)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"px-[var(--space-md)] py-[var(--space-xs)]\",\n \"text-[var(--bloom-text-micro)] font-medium font-[family-name:var(--bloom-font)]\",\n \"tracking-[var(--bloom-letter-wide)] uppercase\",\n ],\n {\n variants: {\n variant: {\n sage: \"bg-[var(--bloom-accent1)]/20 text-[var(--bloom-accent1-deep)]\",\n sand: \"bg-[var(--bloom-accent2)]/20 text-[var(--bloom-accent2-deep)]\",\n lavender: \"bg-[var(--bloom-accent3)]/20 text-[var(--bloom-accent3-deep)]\",\n rose: \"bg-[var(--bloom-accent4)]/20 text-[var(--bloom-accent4-deep)]\",\n },\n },\n defaultVariants: {\n variant: \"sage\",\n },\n }\n);\n\nexport type BadgeVariants = Parameters<typeof badgeVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { alertVariants, type AlertVariants } from \"./alert.variants\";\n\nexport type AlertProps = HTMLAttributes<HTMLDivElement> & AlertVariants;\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n )\n);\nAlert.displayName = \"Alert\";\n\nexport const AlertTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\n \"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-subheading)] font-medium color-[var(--bloom-text)] mb-[var(--space-xs)]\",\n className\n )}\n {...props}\n />\n )\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport const AlertDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-[length:var(--bloom-text-body)] color-[var(--bloom-text-secondary)]\", className)}\n {...props}\n />\n )\n);\nAlertDescription.displayName = \"AlertDescription\";\n","import { cva } from \"class-variance-authority\";\n\nexport const alertVariants = cva(\n [\n \"relative rounded-[var(--bloom-radius)] p-[var(--space-lg)]\",\n \"bg-[var(--bloom-surface)]\",\n \"border-l-[4px]\",\n \"font-[family-name:var(--bloom-font)]\",\n ],\n {\n variants: {\n variant: {\n info: \"border-l-[var(--bloom-accent3)]\",\n success: \"border-l-[var(--bloom-accent1)]\",\n warning: \"border-l-[var(--bloom-accent2)]\",\n error: \"border-l-[var(--bloom-accent4)]\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport type AlertVariants = Parameters<typeof alertVariants>[0];\n","import { forwardRef, useState, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\n\nexport type AvatarProps = HTMLAttributes<HTMLDivElement> &\n AvatarVariants & {\n initials?: string;\n src?: string;\n alt?: string;\n };\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, size, initials, src, alt, ...props }, ref) => {\n const [imgError, setImgError] = useState(false);\n const showImage = src && !imgError;\n\n return (\n <div ref={ref} className={cn(avatarVariants({ size }), className)} {...props}>\n <span aria-hidden={showImage || undefined}>{initials}</span>\n {showImage && (\n <img\n src={src}\n alt={alt ?? initials ?? \"\"}\n onError={() => setImgError(true)}\n className=\"absolute inset-0 h-full w-full object-cover\"\n />\n )}\n </div>\n );\n }\n);\nAvatar.displayName = \"Avatar\";\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex -space-x-2\", className)}\n {...props}\n />\n )\n);\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { cva } from \"class-variance-authority\";\n\nexport const avatarVariants = cva(\n [\n \"relative inline-flex items-center justify-center\",\n \"rounded-full overflow-hidden\",\n \"bg-[var(--bloom-accent1)]/20 text-[var(--bloom-accent1-deep)]\",\n \"font-[family-name:var(--bloom-font)] font-medium\",\n \"select-none shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[32px] w-[32px] text-[var(--bloom-text-micro)]\",\n md: \"h-[40px] w-[40px] text-[var(--bloom-text-caption)]\",\n lg: \"h-[56px] w-[56px] text-[var(--bloom-text-body)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport type AvatarVariants = Parameters<typeof avatarVariants>[0];\n","import { type ReactNode } from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../utils/cn\";\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\nexport interface TooltipProps {\n content: ReactNode;\n children: ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n className?: string;\n}\n\nexport function Tooltip({ content, children, side = \"top\", className }: TooltipProps) {\n return (\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n sideOffset={8}\n className={cn(\n \"bloom z-50 rounded-[var(--bloom-radius-sm)]\",\n \"bg-[var(--bloom-text)] color-[var(--bloom-bg)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-caption)] font-[family-name:var(--bloom-font)]\",\n \"shadow-[var(--bloom-shadow)]\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n}\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { progressTrackVariants, progressFillVariants } from \"./progress.variants\";\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(progressTrackVariants(), className)}\n {...props}\n >\n <div\n className={progressFillVariants()}\n style={{ width: `${clampedValue}%` }}\n />\n </div>\n );\n }\n);\nProgress.displayName = \"Progress\";\n\nexport interface ProgressCircularProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n size?: number;\n strokeWidth?: number;\n}\n\nexport const ProgressCircular = forwardRef<HTMLDivElement, ProgressCircularProps>(\n ({ className, value = 0, size = 48, strokeWidth = 4, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - (clampedValue / 100) * circumference;\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"inline-flex\", className)}\n {...props}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-surface2)\"\n strokeWidth={strokeWidth}\n />\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-accent1-deep)\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{\n transition: `stroke-dashoffset var(--bloom-duration) var(--bloom-ease)`,\n }}\n />\n </svg>\n </div>\n );\n }\n);\nProgressCircular.displayName = \"ProgressCircular\";\n","import { cva } from \"class-variance-authority\";\n\nexport const progressTrackVariants = cva([\n \"relative w-full overflow-hidden\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"bg-[var(--bloom-surface2)]\",\n \"h-[6px]\",\n]);\n\nexport const progressFillVariants = cva([\n \"h-full rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"bg-gradient-to-r from-[var(--bloom-accent1-deep)] to-[var(--bloom-accent1)]\",\n \"bg-[length:200%_100%] animate-[bloom-shimmer_3s_ease-in-out_infinite]\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface SliderProps extends ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {}\n\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(\n ({ className, disabled, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n disabled={disabled}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(\n \"relative h-[6px] w-full grow overflow-hidden\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"bg-[var(--bloom-surface2)]\"\n )}\n >\n <SliderPrimitive.Range\n className={cn(\n \"absolute h-full\",\n \"bg-[var(--bloom-accent1-deep)]\",\n \"rounded-[var(--bloom-radius-pill)]\"\n )}\n />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb\n aria-disabled={disabled ? true : undefined}\n className={cn(\n \"block h-[24px] w-[24px] rounded-full\",\n \"bg-white border-[2px] border-[var(--bloom-accent1-deep)]\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"hover:scale-110\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"cursor-grab active:cursor-grabbing\"\n )}\n />\n </SliderPrimitive.Root>\n )\n);\nSlider.displayName = \"Slider\";\n","import { type ReactNode } from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n description?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function Modal({ open, onOpenChange, title, description, children, className }: ModalProps) {\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\"\n )}\n />\n <DialogPrimitive.Content\n className={cn(\n \"bloom fixed left-1/2 top-1/2 z-50\",\n \"-translate-x-1/2 -translate-y-1/2\",\n \"w-full max-w-[480px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xl)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"focus:outline-none\",\n className\n )}\n >\n {title && (\n <DialogPrimitive.Title\n className=\"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-heading)] font-medium color-[var(--bloom-text)] mb-[var(--space-sm)]\"\n >\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description\n className=\"text-[length:var(--bloom-text-body)] color-[var(--bloom-text-secondary)] mb-[var(--space-lg)]\"\n >\n {description}\n </DialogPrimitive.Description>\n )}\n {children}\n <DialogPrimitive.Close\n className={cn(\n \"absolute top-[var(--space-lg)] right-[var(--space-lg)]\",\n \"inline-flex items-center justify-center\",\n \"h-[32px] w-[32px] rounded-full\",\n \"color-[var(--bloom-text-secondary)] hover:color-[var(--bloom-text)]\",\n \"hover:bg-[var(--bloom-surface2)]\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\"\n )}\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n","import { type ReactNode, type ComponentPropsWithoutRef } from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownProps {\n trigger: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function Dropdown({ trigger, children, className }: DropdownProps) {\n return (\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>{trigger}</DropdownMenuPrimitive.Trigger>\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 min-w-[180px] overflow-hidden\",\n \"rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n );\n}\n\nexport interface DropdownItemProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {}\n\nexport function DropdownItem({ className, ...props }: DropdownItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n className={cn(\n \"relative flex items-center\",\n \"rounded-[var(--bloom-radius-sm)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"cursor-pointer select-none outline-none\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"data-[highlighted]:bg-[var(--bloom-surface2)]\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport interface DropdownSeparatorProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {}\n\nexport function DropdownSeparator({ className, ...props }: DropdownSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn(\"h-px my-[var(--space-xs)] bg-[var(--bloom-surface2)]\", className)}\n {...props}\n />\n );\n}\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../../utils/cn\";\nimport { tabsListVariants, type TabsListVariants } from \"./tabs.variants\";\n\nexport const Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n TabsListVariants;\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, variant, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n);\nTabsList.displayName = \"TabsList\";\n\nexport const TabsTrigger = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap\",\n \"px-[var(--space-lg)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)]\",\n \"color-[var(--bloom-text-secondary)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"hover:text-[var(--bloom-text)]\",\n \"data-[state=active]:text-[var(--bloom-text)]\",\n \"data-[state=active]:bg-[var(--bloom-surface2)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport const TabsContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-[var(--space-lg)]\",\n \"focus-visible:outline-none\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = \"TabsContent\";\n","import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\n [\n \"inline-flex items-center gap-[var(--space-xs)]\",\n \"font-[family-name:var(--bloom-font)]\",\n ],\n {\n variants: {\n variant: {\n default: \"border-b border-[var(--bloom-surface2)]\",\n pill: [\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type TabsListVariants = Parameters<typeof tabsListVariants>[0];\n","import { useState, useMemo } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n className?: string;\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nconst MONTH_NAMES = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\",\n];\n\nconst DAY_NAMES = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\n\nexport function DatePicker({ value, onChange, placeholder = \"Select date\", className }: DatePickerProps) {\n const [open, setOpen] = useState(false);\n const [viewDate, setViewDate] = useState(() => value ?? new Date());\n const viewYear = viewDate.getFullYear();\n const viewMonth = viewDate.getMonth();\n\n const days = useMemo(() => {\n const daysInMonth = getDaysInMonth(viewYear, viewMonth);\n const firstDay = getFirstDayOfMonth(viewYear, viewMonth);\n const cells: Array<number | null> = [];\n for (let i = 0; i < firstDay; i++) cells.push(null);\n for (let d = 1; d <= daysInMonth; d++) cells.push(d);\n return cells;\n }, [viewYear, viewMonth]);\n\n const isSelected = (day: number) => {\n if (!value) return false;\n return value.getFullYear() === viewYear && value.getMonth() === viewMonth && value.getDate() === day;\n };\n\n const prevMonth = () => setViewDate(new Date(viewYear, viewMonth - 1, 1));\n const nextMonth = () => setViewDate(new Date(viewYear, viewMonth + 1, 1));\n\n const selectDay = (day: number) => {\n const selected = new Date(viewYear, viewMonth, day);\n onChange?.(selected);\n setOpen(false);\n };\n\n const formattedValue = value\n ? value.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\", year: \"numeric\" })\n : null;\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-[var(--space-sm)]\",\n \"h-[44px] px-[var(--space-lg)]\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/20\",\n !formattedValue && \"color-[var(--bloom-text-secondary)]\",\n className\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2 6h12\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 1v3M11 1v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n {formattedValue ?? placeholder}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 w-[280px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-lg)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n )}\n >\n <div className=\"flex items-center justify-between mb-[var(--space-md)]\">\n <button\n onClick={prevMonth}\n className=\"p-[var(--space-xs)] rounded-full hover:bg-[var(--bloom-surface2)] transition-colors\"\n aria-label=\"Previous month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M10 4l-4 4 4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <span className=\"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\">\n {MONTH_NAMES[viewMonth]} {viewYear}\n </span>\n <button\n onClick={nextMonth}\n className=\"p-[var(--space-xs)] rounded-full hover:bg-[var(--bloom-surface2)] transition-colors\"\n aria-label=\"Next month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px] mb-[var(--space-xs)]\">\n {DAY_NAMES.map((d) => (\n <div key={d} className=\"text-center text-[length:var(--bloom-text-micro)] color-[var(--bloom-text-secondary)] font-medium py-[var(--space-xs)]\">\n {d}\n </div>\n ))}\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px]\">\n {days.map((day, i) =>\n day === null ? (\n <div key={`empty-${i}`} />\n ) : (\n <button\n key={day}\n onClick={() => selectDay(day)}\n className={cn(\n \"h-[36px] w-[36px] rounded-full\",\n \"flex items-center justify-center\",\n \"text-[length:var(--bloom-text-caption)] font-[family-name:var(--bloom-font)]\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"hover:bg-[var(--bloom-accent1)]/20\",\n isSelected(day)\n ? \"bg-[var(--bloom-accent1-deep)] color-white\"\n : \"color-[var(--bloom-text)]\"\n )}\n >\n {day}\n </button>\n )\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n","import {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { toastVariants, type ToastVariants } from \"./toast.variants\";\n\ninterface ToastData {\n id: string;\n title: string;\n description?: string;\n duration?: number;\n variant?: \"info\" | \"success\" | \"warning\" | \"error\" | null;\n}\n\ninterface ToastContextValue {\n toast: (data: Omit<ToastData, \"id\">) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nlet toastId = 0;\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<ToastData[]>([]);\n\n const toast = useCallback((data: Omit<ToastData, \"id\">) => {\n const id = String(++toastId);\n setToasts((prev) => [...prev, { ...data, id }]);\n }, []);\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast }}>\n {children}\n <div className=\"bloom fixed bottom-[var(--space-xl)] right-[var(--space-xl)] z-[100] flex flex-col gap-[var(--space-md)]\">\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} onDismiss={dismiss} />\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n\nfunction ToastItem({ toast: t, onDismiss }: { toast: ToastData; onDismiss: (id: string) => void }) {\n const duration = t.duration ?? 4000;\n\n useEffect(() => {\n const timer = setTimeout(() => onDismiss(t.id), duration);\n return () => clearTimeout(timer);\n }, [t.id, duration, onDismiss]);\n\n return (\n <div className={cn(toastVariants({ variant: t.variant }))}>\n <div className=\"flex-1\">\n <p className=\"text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\">\n {t.title}\n </p>\n {t.description && (\n <p className=\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\">\n {t.description}\n </p>\n )}\n </div>\n <button\n onClick={() => onDismiss(t.id)}\n className=\"color-[var(--bloom-text-secondary)] hover:color-[var(--bloom-text)] transition-colors shrink-0\"\n aria-label=\"Dismiss\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n <div\n className=\"absolute bottom-0 left-0 h-[2px] bg-[var(--bloom-accent1-deep)]/40\"\n style={{\n animation: `bloom-shrink ${duration}ms linear forwards`,\n }}\n />\n </div>\n );\n}\n","import { cva } from \"class-variance-authority\";\n\nexport const toastVariants = cva(\n [\n \"relative flex items-start gap-[var(--space-md)]\",\n \"w-full max-w-[380px]\",\n \"rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-lg)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"font-[family-name:var(--bloom-font)]\",\n \"overflow-hidden\",\n ],\n {\n variants: {\n variant: {\n info: \"border-l-[4px] border-l-[var(--bloom-accent3)]\",\n success: \"border-l-[4px] border-l-[var(--bloom-accent1)]\",\n warning: \"border-l-[4px] border-l-[var(--bloom-accent2)]\",\n error: \"border-l-[4px] border-l-[var(--bloom-accent4)]\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport type ToastVariants = Parameters<typeof toastVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { skeletonVariants, type SkeletonVariants } from \"./skeleton.variants\";\n\nexport type SkeletonProps = HTMLAttributes<HTMLDivElement> & SkeletonVariants;\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n);\nSkeleton.displayName = \"Skeleton\";\n","import { cva } from \"class-variance-authority\";\n\nexport const skeletonVariants = cva(\n [\n \"bg-[var(--bloom-surface2)]\",\n \"animate-[bloom-breathe_3s_ease-in-out_infinite]\",\n ],\n {\n variants: {\n variant: {\n text: \"h-[16px] w-full rounded-[var(--bloom-radius-sm)]\",\n card: \"h-[200px] w-full rounded-[var(--bloom-radius-lg)]\",\n avatar: \"h-[40px] w-[40px] rounded-full\",\n custom: \"\",\n },\n },\n defaultVariants: {\n variant: \"text\",\n },\n }\n);\n\nexport type SkeletonVariants = Parameters<typeof skeletonVariants>[0];\n"],"mappings":";;;AACyB,SAAR,YAA6B,KAAK,EAAE,SAAS,IAAI,CAAC,GAAG;AAC1D,MAAI,CAAC,OAAO,OAAO,aAAa,YAAa;AAE7C,QAAM,OAAO,SAAS,QAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC;AACrE,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,OAAO;AAEb,MAAI,aAAa,OAAO;AACtB,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa,OAAO,KAAK,UAAU;AAAA,IAC1C,OAAO;AACL,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF,OAAO;AACL,SAAK,YAAY,KAAK;AAAA,EACxB;AAEA,MAAI,MAAM,YAAY;AACpB,UAAM,WAAW,UAAU;AAAA,EAC7B,OAAO;AACL,UAAM,YAAY,SAAS,eAAe,GAAG,CAAC;AAAA,EAChD;AACF;;;ACvB8B,YAAY,4r4CAAs14C;;;ACA144C,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAA8B;AAClD,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACHO,IAAM,kBAA8B;AAAA,EACzC,UAAU;AAAA,EACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AAEO,IAAM,sBAAkC;AAAA,EAC7C,UAAU;AAAA,EACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AAEO,IAAM,sBAAkC;AAAA,EAC7C,UAAU;AAAA,EACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AAEO,IAAM,cAA0B;AAAA,EACrC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX;AAEO,IAAM,YAAsB;AAAA,EACjC,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE;AAAA,EAC1B,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE;AAAA,EACzB,KAAK,EAAE,GAAG,GAAG,OAAO,KAAK;AAC3B;AAEO,IAAM,gBAA0B;AAAA,EACrC,SAAS,EAAE,GAAG,EAAE;AAAA,EAChB,OAAO,EAAE,GAAG,GAAG;AACjB;AAEO,IAAM,SAAmB;AAAA,EAC9B,SAAS,EAAE,SAAS,EAAE;AAAA,EACtB,SAAS,EAAE,SAAS,EAAE;AAAA,EACtB,MAAM,EAAE,SAAS,EAAE;AACrB;AAEO,IAAM,UAAoB;AAAA,EAC/B,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,EAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,EAC5B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG;AAC5B;;;AC5CA,SAAS,UAAU,iBAAiB;AAE7B,SAAS,mBAA4B;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,MAAM;AAC3C,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,UAAM,KAAK,OAAO,WAAW,kCAAkC;AAC/D,UAAM,WAAW,SAAS,gBAAgB,UAAU,SAAS,sBAAsB;AACnF,WAAO,GAAG,WAAW;AAAA,EACvB,CAAC;AAED,YAAU,MAAM;AACd,UAAM,KAAK,OAAO,WAAW,kCAAkC;AAE/D,UAAM,eAAe,MAAM;AACzB,YAAM,WAAW,SAAS,gBAAgB,UAAU,SAAS,sBAAsB;AACnF,iBAAW,GAAG,WAAW,QAAQ;AAAA,IACnC;AAEA,OAAG,iBAAiB,UAAU,YAAY;AAE1C,UAAM,WAAW,IAAI,iBAAiB,MAAM;AAC1C,YAAM,WAAW,SAAS,gBAAgB,UAAU,SAAS,sBAAsB;AACnF,iBAAW,GAAG,WAAW,QAAQ;AAAA,IACnC,CAAC;AACD,aAAS,QAAQ,SAAS,iBAAiB;AAAA,MACzC,YAAY;AAAA,MACZ,iBAAiB,CAAC,OAAO;AAAA,IAC3B,CAAC;AAED,WAAO,MAAM;AACX,SAAG,oBAAoB,UAAU,YAAY;AAC7C,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;;;ACpCA,SAAS,eAAe;AAejB,SAAS,aAAa,SAA+C;AAC1E,QAAM,EAAE,WAAW,GAAG,YAAY,gBAAgB,IAAI,WAAW,CAAC;AAElE,SAAO,QAAQ,MAAM;AACnB,UAAM,QAAQ,KAAK,OAAO,IAAI;AAC9B,WAAO;AAAA,MACL,eAAe;AAAA,MACf,mBAAmB,GAAG,QAAQ;AAAA,MAC9B,gBAAgB,GAAG,MAAM,QAAQ,CAAC,CAAC;AAAA,MACnC,yBAAyB;AAAA,MACzB,yBAAyB;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,UAAU,SAAS,CAAC;AAC1B;;;AC5BA,SAAS,kBAA6D;AACtE,SAAS,YAAY;;;ACDrB,SAAS,WAAW;AAEb,IAAM,iBAAiB;AAAA,EAC5B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;AD5BM;AAJC,IAAM,SAAS;AAAA,EACpB,CAAC,EAAE,WAAW,SAAS,UAAU,OAAO,UAAU,GAAG,MAAM,GAAG,QAAQ;AACpE,UAAM,OAAO,UAAU,OAAO;AAC9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,QACpD;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;;;AE1BrB,SAAS,cAAAA,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,eAAeA;AAAA,EAC1B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADpBI,gBAAAC,YAAA;AAFG,IAAM,OAAOC;AAAA,EAClB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,aAAa,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO;AAEnF;AACA,KAAK,cAAc;AAEZ,IAAM,aAAaC;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,4BAA4B,SAAS,GAAI,GAAG,OAAO;AAEpF;AACA,WAAW,cAAc;AAElB,IAAM,YAAYC;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAc;AAEjB,IAAM,kBAAkBC;AAAA,EAC7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,oGAAoG,SAAS;AAAA,MAC1H,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;AAEvB,IAAM,cAAcC;AAAA,EACzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,uBAAuB,SAAS,GAAI,GAAG,OAAO;AAE/E;AACA,YAAY,cAAc;AAEnB,IAAM,aAAaC;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,8CAA8C,SAAS,GAAI,GAAG,OAAO;AAEtG;AACA,WAAW,cAAc;;;AEzDzB,SAAS,cAAAE,mBAAyE;;;ACAlF,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA,KAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ADLG,gBAAAC,YAAA;AAFG,IAAM,QAAQC;AAAA,EACnB,CAAC,EAAE,WAAW,OAAO,QAAQ,GAAG,MAAM,GAAG,QACvC,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,GAAG,cAAc,GAAG,YAAY,SAAS;AAAA,MACnD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,MAAM,cAAc;AAIb,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,cAAc,GAAG,0BAA0B,SAAS;AAAA,MACjE,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;;;AE7BvB,SAAS,cAAAE,mBAAiD;AAC1D,YAAY,qBAAqB;AAS7B,SAgBI,OAAAC,MAhBJ;AAFG,IAAM,SAASC;AAAA,EACpB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QAC/B,qBAAC,WAAM,WAAU,kDACf;AAAA,oBAAAD;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ,0BAAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IACC,SACC,gBAAAA,KAAC,UAAK,WAAU,uGACb,iBACH;AAAA,KAEJ;AAEJ;AACA,OAAO,cAAc;;;AC5CrB,SAAS,cAAAE,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADLI,SAEI,OAAAC,MAFJ,QAAAC,aAAA;AAdJ,IAAM,cAAc;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AACR;AAOO,IAAM,QAAQC;AAAA,EACnB,CAAC,EAAE,WAAW,UAAU,QAAQ,MAAM,OAAO,UAAU,GAAG,MAAM,GAAG,QACjE,gBAAAD,MAAC,UAAK,KAAU,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OACvE;AAAA,WACC,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,kBAAe;AAAA,QACf,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,YAAY,WAAW,MAAM;AAAA,QAC/B;AAAA;AAAA,IACF;AAAA,IAED;AAAA,KACH;AAEJ;AACA,MAAM,cAAc;;;AEjCpB,SAAS,cAAAG,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADdI,gBAAAC,YAAA;AAFG,IAAM,QAAQC;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD,KAAC,SAAI,KAAU,MAAK,SAAQ,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO;AAEjG;AACA,MAAM,cAAc;AAEb,IAAM,aAAaC;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,WAAW,cAAc;AAElB,IAAM,mBAAmBC;AAAA,EAC9B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,4EAA4E,SAAS;AAAA,MAClG,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,iBAAiB,cAAc;;;AEpC/B,SAAS,cAAAE,aAAY,YAAAC,iBAAqC;;;ACA1D,SAAS,OAAAC,YAAW;AAEb,IAAM,iBAAiBA;AAAA,EAC5B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;;;ADLM,SACE,OAAAC,MADF,QAAAC,aAAA;AANC,IAAM,SAASC;AAAA,EACpB,CAAC,EAAE,WAAW,MAAM,UAAU,KAAK,KAAK,GAAG,MAAM,GAAG,QAAQ;AAC1D,UAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,KAAK;AAC9C,UAAM,YAAY,OAAO,CAAC;AAE1B,WACE,gBAAAF,MAAC,SAAI,KAAU,WAAW,GAAG,eAAe,EAAE,KAAK,CAAC,GAAG,SAAS,GAAI,GAAG,OACrE;AAAA,sBAAAD,KAAC,UAAK,eAAa,aAAa,QAAY,oBAAS;AAAA,MACpD,aACC,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,KAAK,OAAO,YAAY;AAAA,UACxB,SAAS,MAAM,YAAY,IAAI;AAAA,UAC/B,WAAU;AAAA;AAAA,MACZ;AAAA,OAEJ;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;AAId,IAAM,cAAcE;AAAA,EACzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,mBAAmB,SAAS;AAAA,MACzC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,YAAY,cAAc;;;AE3C1B,YAAY,sBAAsB;AAc9B,SACE,OAAAI,MADF,QAAAC,aAAA;AAXG,IAAM,kBAAmC;AASzC,SAAS,QAAQ,EAAE,SAAS,UAAU,OAAO,OAAO,UAAU,GAAiB;AACpF,SACE,gBAAAA,MAAkB,uBAAjB,EACC;AAAA,oBAAAD,KAAkB,0BAAjB,EAAyB,SAAO,MAAE,UAAS;AAAA,IAC5C,gBAAAA,KAAkB,yBAAjB,EACC,0BAAAA;AAAA,MAAkB;AAAA,MAAjB;AAAA,QACC;AAAA,QACA,YAAY;AAAA,QACZ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA;AAAA,IACH,GACF;AAAA,KACF;AAEJ;;;ACrCA,SAAS,cAAAE,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,wBAAwBA,KAAI;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uBAAuBA,KAAI;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ADOO,gBAAAC,MAiCA,QAAAC,aAjCA;AAbD,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,QAAQ,GAAG,GAAG,MAAM,GAAG,QAAQ;AAC3C,UAAM,eAAe,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC;AACrD,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,WAAW,GAAG,sBAAsB,GAAG,SAAS;AAAA,QAC/C,GAAG;AAAA,QAEJ,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,qBAAqB;AAAA,YAChC,OAAO,EAAE,OAAO,GAAG,YAAY,IAAI;AAAA;AAAA,QACrC;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;AAQhB,IAAM,mBAAmBE;AAAA,EAC9B,CAAC,EAAE,WAAW,QAAQ,GAAG,OAAO,IAAI,cAAc,GAAG,GAAG,MAAM,GAAG,QAAQ;AACvE,UAAM,eAAe,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC;AACrD,UAAM,UAAU,OAAO,eAAe;AACtC,UAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,UAAM,SAAS,gBAAiB,eAAe,MAAO;AAEtD,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,WAAW,GAAG,eAAe,SAAS;AAAA,QACrC,GAAG;AAAA,QAEJ,0BAAAC,MAAC,SAAI,OAAO,MAAM,QAAQ,MAAM,SAAS,OAAO,IAAI,IAAI,IAAI,IAC1D;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,OAAO;AAAA,cACX,IAAI,OAAO;AAAA,cACX,GAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP;AAAA;AAAA,UACF;AAAA,UACA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,OAAO;AAAA,cACX,IAAI,OAAO;AAAA,cACX,GAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP;AAAA,cACA,eAAc;AAAA,cACd,iBAAiB;AAAA,cACjB,kBAAkB;AAAA,cAClB,WAAW,cAAc,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,cAC7C,OAAO;AAAA,gBACL,YAAY;AAAA,cACd;AAAA;AAAA,UACF;AAAA,WACF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,iBAAiB,cAAc;;;AEnF/B,SAAS,cAAAG,mBAAiD;AAC1D,YAAY,qBAAqB;AAO7B,SAiBI,OAAAC,OAjBJ,QAAAC,aAAA;AAFG,IAAM,SAASC;AAAA,EACpB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAClC,gBAAAD;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YAEA,0BAAAA;AAAA,cAAiB;AAAA,cAAhB;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,gBACF;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,iBAAe,WAAW,OAAO;AAAA,YACjC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AACA,OAAO,cAAc;;;AC/CrB,YAAY,qBAAqB;AAgBzB,gBAAAG,OAOA,QAAAC,aAPA;AAJD,SAAS,MAAM,EAAE,MAAM,cAAc,OAAO,aAAa,UAAU,UAAU,GAAe;AACjG,SACE,gBAAAD,MAAiB,sBAAhB,EAAqB,MAAY,cAChC,0BAAAC,MAAiB,wBAAhB,EACC;AAAA,oBAAAD;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IACA,gBAAAC;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA,mBACC,gBAAAD;AAAA,YAAiB;AAAA,YAAhB;AAAA,cACC,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,UAED,eACC,gBAAAA;AAAA,YAAiB;AAAA,YAAhB;AAAA,cACC,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,UAED;AAAA,UACD,gBAAAA;AAAA,YAAiB;AAAA,YAAhB;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,cACA,cAAW;AAAA,cAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,sBAAqB,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,GAC3F;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF;AAAA,KACF,GACF;AAEJ;;;ACxEA,YAAY,2BAA2B;AAWnC,SACE,OAAAE,OADF,QAAAC,aAAA;AAFG,SAAS,SAAS,EAAE,SAAS,UAAU,UAAU,GAAkB;AACxE,SACE,gBAAAA,MAAuB,4BAAtB,EACC;AAAA,oBAAAD,MAAuB,+BAAtB,EAA8B,SAAO,MAAE,mBAAQ;AAAA,IAChD,gBAAAA,MAAuB,8BAAtB,EACC,0BAAAA;AAAA,MAAuB;AAAA,MAAtB;AAAA,QACC,YAAY;AAAA,QACZ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA;AAAA,IACH,GACF;AAAA,KACF;AAEJ;AAIO,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAsB;AACvE,SACE,gBAAAA;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAIO,SAAS,kBAAkB,EAAE,WAAW,GAAG,MAAM,GAA2B;AACjF,SACE,gBAAAA;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,WAAW,GAAG,wDAAwD,SAAS;AAAA,MAC9E,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACjEA,SAAS,cAAAE,oBAAiD;AAC1D,YAAY,mBAAmB;;;ACD/B,SAAS,OAAAC,YAAW;AAEb,IAAM,mBAAmBA;AAAA,EAC9B;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADTI,gBAAAC,aAAA;AAPG,IAAM,OAAqB;AAK3B,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD;AAAA,IAAe;AAAA,IAAd;AAAA,MACC;AAAA,MACA,WAAW,GAAG,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MACrD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;AAEhB,IAAM,cAAcC,aAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAAc;AAEnB,IAAM,cAAcC,aAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAAc;;;AE5D1B,SAAS,YAAAE,WAAU,WAAAC,gBAAe;AAClC,YAAY,aAAa;AA0Ef,SACE,OAAAC,OADF,QAAAC,aAAA;AAhEV,SAAS,eAAe,MAAc,OAAuB;AAC3D,SAAO,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ;AAC9C;AAEA,SAAS,mBAAmB,MAAc,OAAuB;AAC/D,SAAO,IAAI,KAAK,MAAM,OAAO,CAAC,EAAE,OAAO;AACzC;AAEA,IAAM,cAAc;AAAA,EAClB;AAAA,EAAW;AAAA,EAAY;AAAA,EAAS;AAAA,EAAS;AAAA,EAAO;AAAA,EAChD;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAa;AAAA,EAAW;AAAA,EAAY;AACxD;AAEA,IAAM,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAEpD,SAAS,WAAW,EAAE,OAAO,UAAU,cAAc,eAAe,UAAU,GAAoB;AACvG,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAS,KAAK;AACtC,QAAM,CAAC,UAAU,WAAW,IAAIA,UAAS,MAAM,SAAS,oBAAI,KAAK,CAAC;AAClE,QAAM,WAAW,SAAS,YAAY;AACtC,QAAM,YAAY,SAAS,SAAS;AAEpC,QAAM,OAAOC,SAAQ,MAAM;AACzB,UAAM,cAAc,eAAe,UAAU,SAAS;AACtD,UAAM,WAAW,mBAAmB,UAAU,SAAS;AACvD,UAAM,QAA8B,CAAC;AACrC,aAAS,IAAI,GAAG,IAAI,UAAU,IAAK,OAAM,KAAK,IAAI;AAClD,aAAS,IAAI,GAAG,KAAK,aAAa,IAAK,OAAM,KAAK,CAAC;AACnD,WAAO;AAAA,EACT,GAAG,CAAC,UAAU,SAAS,CAAC;AAExB,QAAM,aAAa,CAAC,QAAgB;AAClC,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO,MAAM,YAAY,MAAM,YAAY,MAAM,SAAS,MAAM,aAAa,MAAM,QAAQ,MAAM;AAAA,EACnG;AAEA,QAAM,YAAY,MAAM,YAAY,IAAI,KAAK,UAAU,YAAY,GAAG,CAAC,CAAC;AACxE,QAAM,YAAY,MAAM,YAAY,IAAI,KAAK,UAAU,YAAY,GAAG,CAAC,CAAC;AAExE,QAAM,YAAY,CAAC,QAAgB;AACjC,UAAM,WAAW,IAAI,KAAK,UAAU,WAAW,GAAG;AAClD,eAAW,QAAQ;AACnB,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB,QACnB,MAAM,mBAAmB,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,MAAM,UAAU,CAAC,IACrF;AAEJ,SACE,gBAAAF,MAAS,cAAR,EAAa,MAAY,cAAc,SACtC;AAAA,oBAAAD,MAAS,iBAAR,EAAgB,SAAO,MACtB,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,CAAC,kBAAkB;AAAA,UACnB;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,4BAAAD,MAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,YACxF,gBAAAA,MAAC,UAAK,GAAE,WAAU,QAAO,gBAAe,aAAY,OAAM;AAAA,YAC1D,gBAAAA,MAAC,UAAK,GAAE,iBAAgB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,aACxF;AAAA,UACC,kBAAkB;AAAA;AAAA;AAAA,IACrB,GACF;AAAA,IACA,gBAAAA,MAAS,gBAAR,EACC,0BAAAC;AAAA,MAAS;AAAA,MAAR;AAAA,QACC,YAAY;AAAA,QACZ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAA,MAAC,SAAI,WAAU,0DACb;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,kBAAiB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAChH;AAAA;AAAA,YACF;AAAA,YACA,gBAAAC,MAAC,UAAK,WAAU,2HACb;AAAA,0BAAY,SAAS;AAAA,cAAE;AAAA,cAAE;AAAA,eAC5B;AAAA,YACA,gBAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,gBAAe,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAC9G;AAAA;AAAA,YACF;AAAA,aACF;AAAA,UAEA,gBAAAA,MAAC,SAAI,WAAU,mDACZ,oBAAU,IAAI,CAAC,MACd,gBAAAA,MAAC,SAAY,WAAU,0HACpB,eADO,CAEV,CACD,GACH;AAAA,UAEA,gBAAAA,MAAC,SAAI,WAAU,8BACZ,eAAK;AAAA,YAAI,CAAC,KAAK,MACd,QAAQ,OACN,gBAAAA,MAAC,WAAS,SAAS,CAAC,EAAI,IAExB,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBAEC,SAAS,MAAM,UAAU,GAAG;AAAA,gBAC5B,WAAW;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,WAAW,GAAG,IACV,+CACA;AAAA,gBACN;AAAA,gBAEC;AAAA;AAAA,cAbI;AAAA,YAcP;AAAA,UAEJ,GACF;AAAA;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ;;;AC5JA;AAAA,EACE;AAAA,EACA;AAAA,EACA,YAAAI;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,OAEK;;;ACPP,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADoBI,SAIM,OAAAC,OAJN,QAAAC,cAAA;AAvBJ,IAAM,eAAe,cAAwC,IAAI;AAE1D,SAAS,WAA8B;AAC5C,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;AAEA,IAAI,UAAU;AAEP,SAAS,cAAc,EAAE,SAAS,GAA4B;AACnE,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAAsB,CAAC,CAAC;AAEpD,QAAM,QAAQ,YAAY,CAAC,SAAgC;AACzD,UAAM,KAAK,OAAO,EAAE,OAAO;AAC3B,cAAU,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;AAAA,EAChD,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,YAAY,CAAC,OAAe;AAC1C,cAAU,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAAA,EACrD,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAD,OAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,MAAM,GACnC;AAAA;AAAA,IACD,gBAAAD,MAAC,SAAI,WAAU,4GACZ,iBAAO,IAAI,CAAC,MACX,gBAAAA,MAAC,aAAqB,OAAO,GAAG,WAAW,WAA3B,EAAE,EAAkC,CACrD,GACH;AAAA,KACF;AAEJ;AAEA,SAAS,UAAU,EAAE,OAAO,GAAG,UAAU,GAA0D;AACjG,QAAM,WAAW,EAAE,YAAY;AAE/B,EAAAG,WAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM,UAAU,EAAE,EAAE,GAAG,QAAQ;AACxD,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC,GAAG,CAAC,EAAE,IAAI,UAAU,SAAS,CAAC;AAE9B,SACE,gBAAAF,OAAC,SAAI,WAAW,GAAG,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,GACtD;AAAA,oBAAAA,OAAC,SAAI,WAAU,UACb;AAAA,sBAAAD,MAAC,OAAE,WAAU,8EACV,YAAE,OACL;AAAA,MACC,EAAE,eACD,gBAAAA,MAAC,OAAE,WAAU,oGACV,YAAE,aACL;AAAA,OAEJ;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,UAAU,EAAE,EAAE;AAAA,QAC7B,WAAU;AAAA,QACV,cAAW;AAAA,QAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,sBAAqB,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,GAC3F;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,WAAW,gBAAgB,QAAQ;AAAA,QACrC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;;;AE9FA,SAAS,cAAAI,oBAAuC;;;ACAhD,SAAS,OAAAC,aAAW;AAEb,IAAM,mBAAmBA;AAAA,EAC9B;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADZI,gBAAAC,aAAA;AAFG,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MACtD,eAAY;AAAA,MACX,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;","names":["forwardRef","cva","jsx","forwardRef","forwardRef","cva","jsx","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","cva","jsx","forwardRef","forwardRef","useState","cva","jsx","jsxs","forwardRef","useState","jsx","jsxs","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","cva","jsx","forwardRef","useState","useMemo","jsx","jsxs","useState","useMemo","useState","useEffect","cva","jsx","jsxs","useState","useEffect","forwardRef","cva","jsx","forwardRef"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/utils/motion-presets.ts","../src/hooks/use-reduced-motion.ts","../src/hooks/use-breathing.ts","../src/components/button/button.tsx","../src/components/button/button.variants.ts","../src/components/card/card.tsx","../src/components/card/card.variants.ts","../src/components/input/input.tsx","../src/components/input/input.variants.ts","../src/components/toggle/toggle.tsx","../src/components/badge/badge.tsx","../src/components/badge/badge.variants.ts","../src/components/alert/alert.tsx","../src/components/alert/alert.variants.ts","../src/components/avatar/avatar.tsx","../src/components/avatar/avatar.variants.ts","../src/components/tooltip/tooltip.tsx","../src/components/progress/progress.tsx","../src/components/progress/progress.variants.ts","../src/components/slider/slider.tsx","../src/components/modal/modal.tsx","../src/components/dropdown/dropdown.tsx","../src/components/tabs/tabs.tsx","../src/components/tabs/tabs.variants.ts","../src/components/date-picker/date-picker.tsx","../src/components/toast/toast.tsx","../src/components/toast/toast.variants.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/skeleton.variants.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import type { Transition, Variants } from \"motion/react\";\n\nexport const bloomTransition: Transition = {\n duration: 0.5,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionSlow: Transition = {\n duration: 0.8,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionFast: Transition = {\n duration: 0.3,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomSpring: Transition = {\n type: \"spring\",\n stiffness: 200,\n damping: 20,\n};\n\nexport const hoverLift: Variants = {\n initial: { y: 0, scale: 1 },\n hover: { y: -2, scale: 1 },\n tap: { y: 0, scale: 0.98 },\n};\n\nexport const cardHoverLift: Variants = {\n initial: { y: 0 },\n hover: { y: -4 },\n};\n\nexport const fadeIn: Variants = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n};\n\nexport const slideUp: Variants = {\n initial: { opacity: 0, y: 12 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 12 },\n};\n","import { useState, useEffect } from \"react\";\n\nexport function useReducedMotion(): boolean {\n const [reduced, setReduced] = useState(() => {\n if (typeof window === \"undefined\") return false;\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n return mq.matches || hasClass;\n });\n\n useEffect(() => {\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n const handleChange = () => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n };\n\n mq.addEventListener(\"change\", handleChange);\n\n const observer = new MutationObserver(() => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n });\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n });\n\n return () => {\n mq.removeEventListener(\"change\", handleChange);\n observer.disconnect();\n };\n }, []);\n\n return reduced;\n}\n","import { useMemo } from \"react\";\n\ninterface UseBreathingOptions {\n duration?: number;\n animation?: string;\n}\n\ninterface BreathingStyle {\n animationName: string;\n animationDuration: string;\n animationDelay: string;\n animationTimingFunction: string;\n animationIterationCount: string;\n}\n\nexport function useBreathing(options?: UseBreathingOptions): BreathingStyle {\n const { duration = 6, animation = \"bloom-breathe\" } = options ?? {};\n\n return useMemo(() => {\n const delay = Math.random() * duration;\n return {\n animationName: animation,\n animationDuration: `${duration}s`,\n animationDelay: `${delay.toFixed(2)}s`,\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n };\n }, [duration, animation]);\n}\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"../../utils/cn\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants & {\n asChild?: boolean;\n children: ReactNode;\n };\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, asChild = false, children, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant }), className)}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"font-[family-name:var(--bloom-font)] text-[14px] font-normal\",\n \"h-[44px] px-[28px]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"relative overflow-hidden cursor-pointer\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--bloom-accent1-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n secondary: [\n \"bg-[var(--bloom-surface)] text-[var(--bloom-text)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n ghost: [\n \"bg-transparent text-[var(--bloom-text)]\",\n \"hover:bg-[var(--bloom-surface)]\",\n \"active:scale-[0.98]\",\n ],\n accent: [\n \"bg-[var(--bloom-accent3-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n }\n);\n\nexport type ButtonVariants = Parameters<typeof buttonVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { cardVariants, type CardVariants } from \"./card.variants\";\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & CardVariants;\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} className={cn(cardVariants({ variant }), className)} {...props} />\n )\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)] pb-0\", className)} {...props} />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"font-[family-name:var(--bloom-font-display)] text-[18px] font-medium text-[var(--bloom-text)] leading-[var(--bloom-leading-heading)]\",\n className\n )}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)]\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)] pt-0 flex items-center\", className)} {...props} />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n","import { cva } from \"class-variance-authority\";\n\nexport const cardVariants = cva(\n [\n \"rounded-[var(--bloom-radius-lg)] bg-[var(--bloom-surface)]\",\n \"shadow-[var(--bloom-shadow)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"relative overflow-hidden\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n interactive: [\n \"cursor-pointer\",\n \"border border-transparent\",\n \"hover:border-[var(--bloom-surface2)]\",\n \"hover:-translate-y-[4px] hover:shadow-[var(--bloom-shadow-hover)]\",\n ],\n featured: [\n \"border border-[var(--bloom-accent1)]/30\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type CardVariants = Parameters<typeof cardVariants>[0];\n","import { forwardRef, type InputHTMLAttributes, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { inputVariants } from \"./input.variants\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", ...props }, ref) => (\n <input\n ref={ref}\n type={type}\n className={cn(inputVariants(), \"h-[44px]\", className)}\n {...props}\n />\n )\n);\nInput.displayName = \"Input\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(inputVariants(), \"min-h-[100px] resize-y\", className)}\n {...props}\n />\n )\n);\nTextarea.displayName = \"Textarea\";\n","import { cva } from \"class-variance-authority\";\n\nexport const inputVariants = cva([\n \"w-full\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"color-[var(--bloom-text)] text-[length:var(--bloom-text-body)]\",\n \"font-[family-name:var(--bloom-font)]\",\n \"px-[var(--space-lg)] py-[var(--space-md)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"placeholder:color-[var(--bloom-text-secondary)]/60\",\n \"focus:outline-none focus:ring-[4px] focus:ring-[var(--bloom-accent1)]/20 focus:border-[var(--bloom-accent1-deep)]\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {\n label?: string;\n}\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ className, label, ...props }, ref) => (\n <label className=\"inline-flex items-center gap-[var(--space-md)]\">\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-[28px] w-[50px] shrink-0 cursor-pointer items-center\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"border border-transparent\",\n \"bg-[var(--bloom-surface2)]\",\n \"transition-colors duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-[var(--bloom-accent1-deep)]\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n \"pointer-events-none block h-[22px] w-[22px] rounded-full bg-white\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"data-[state=unchecked]:translate-x-[3px]\",\n \"data-[state=checked]:translate-x-[25px]\"\n )}\n />\n </SwitchPrimitive.Root>\n {label && (\n <span className=\"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\">\n {label}\n </span>\n )}\n </label>\n )\n);\nToggle.displayName = \"Toggle\";\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { badgeVariants, type BadgeVariants } from \"./badge.variants\";\n\nconst dotColorMap = {\n sage: \"bg-[var(--bloom-accent1-deep)]\",\n sand: \"bg-[var(--bloom-accent2-deep)]\",\n lavender: \"bg-[var(--bloom-accent3-deep)]\",\n rose: \"bg-[var(--bloom-accent4-deep)]\",\n} as const;\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeVariants & {\n dot?: boolean;\n };\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = \"sage\", dot = false, children, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}>\n {dot && (\n <span\n data-bloom-dot=\"\"\n className={cn(\n \"h-[6px] w-[6px] rounded-full\",\n \"animate-[bloom-breathe_5s_ease-in-out_infinite]\",\n dotColorMap[variant ?? \"sage\"]\n )}\n />\n )}\n {children}\n </span>\n )\n);\nBadge.displayName = \"Badge\";\n","import { cva } from \"class-variance-authority\";\n\nexport const badgeVariants = cva(\n [\n \"inline-flex items-center gap-[var(--space-xs)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"px-[var(--space-md)] py-[var(--space-xs)]\",\n \"text-[var(--bloom-text-micro)] font-medium font-[family-name:var(--bloom-font)]\",\n \"tracking-[var(--bloom-letter-wide)] uppercase\",\n ],\n {\n variants: {\n variant: {\n sage: \"bg-[var(--bloom-accent1)]/20 text-[var(--bloom-accent1-deep)]\",\n sand: \"bg-[var(--bloom-accent2)]/20 text-[var(--bloom-accent2-deep)]\",\n lavender: \"bg-[var(--bloom-accent3)]/20 text-[var(--bloom-accent3-deep)]\",\n rose: \"bg-[var(--bloom-accent4)]/20 text-[var(--bloom-accent4-deep)]\",\n },\n },\n defaultVariants: {\n variant: \"sage\",\n },\n }\n);\n\nexport type BadgeVariants = Parameters<typeof badgeVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { alertVariants, type AlertVariants } from \"./alert.variants\";\n\nexport type AlertProps = HTMLAttributes<HTMLDivElement> & AlertVariants;\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n )\n);\nAlert.displayName = \"Alert\";\n\nexport const AlertTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\n \"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-subheading)] font-medium color-[var(--bloom-text)] mb-[var(--space-xs)]\",\n className\n )}\n {...props}\n />\n )\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport const AlertDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-[length:var(--bloom-text-body)] color-[var(--bloom-text-secondary)]\", className)}\n {...props}\n />\n )\n);\nAlertDescription.displayName = \"AlertDescription\";\n","import { cva } from \"class-variance-authority\";\n\nexport const alertVariants = cva(\n [\n \"relative rounded-[var(--bloom-radius)] p-[var(--space-lg)]\",\n \"bg-[var(--bloom-surface)]\",\n \"border-l-[4px]\",\n \"font-[family-name:var(--bloom-font)]\",\n ],\n {\n variants: {\n variant: {\n info: \"border-l-[var(--bloom-accent3)]\",\n success: \"border-l-[var(--bloom-accent1)]\",\n warning: \"border-l-[var(--bloom-accent2)]\",\n error: \"border-l-[var(--bloom-accent4)]\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport type AlertVariants = Parameters<typeof alertVariants>[0];\n","import { forwardRef, useState, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\n\nexport type AvatarProps = HTMLAttributes<HTMLDivElement> &\n AvatarVariants & {\n initials?: string;\n src?: string;\n alt?: string;\n };\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, size, initials, src, alt, ...props }, ref) => {\n const [imgError, setImgError] = useState(false);\n const showImage = src && !imgError;\n\n return (\n <div ref={ref} className={cn(avatarVariants({ size }), className)} {...props}>\n <span aria-hidden={showImage || undefined}>{initials}</span>\n {showImage && (\n <img\n src={src}\n alt={alt ?? initials ?? \"\"}\n onError={() => setImgError(true)}\n className=\"absolute inset-0 h-full w-full object-cover\"\n />\n )}\n </div>\n );\n }\n);\nAvatar.displayName = \"Avatar\";\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex -space-x-2\", className)}\n {...props}\n />\n )\n);\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { cva } from \"class-variance-authority\";\n\nexport const avatarVariants = cva(\n [\n \"relative inline-flex items-center justify-center\",\n \"rounded-full overflow-hidden\",\n \"bg-[var(--bloom-accent1)]/20 text-[var(--bloom-accent1-deep)]\",\n \"font-[family-name:var(--bloom-font)] font-medium\",\n \"select-none shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[32px] w-[32px] text-[var(--bloom-text-micro)]\",\n md: \"h-[40px] w-[40px] text-[var(--bloom-text-caption)]\",\n lg: \"h-[56px] w-[56px] text-[var(--bloom-text-body)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport type AvatarVariants = Parameters<typeof avatarVariants>[0];\n","import { type ReactNode } from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../utils/cn\";\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\nexport interface TooltipProps {\n content: ReactNode;\n children: ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n className?: string;\n}\n\nexport function Tooltip({ content, children, side = \"top\", className }: TooltipProps) {\n return (\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n sideOffset={8}\n className={cn(\n \"bloom z-50 rounded-[var(--bloom-radius-sm)]\",\n \"bg-[var(--bloom-text)] color-[var(--bloom-bg)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-caption)] font-[family-name:var(--bloom-font)]\",\n \"shadow-[var(--bloom-shadow)]\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n}\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { progressTrackVariants, progressFillVariants } from \"./progress.variants\";\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(progressTrackVariants(), className)}\n {...props}\n >\n <div\n className={progressFillVariants()}\n style={{ width: `${clampedValue}%` }}\n />\n </div>\n );\n }\n);\nProgress.displayName = \"Progress\";\n\nexport interface ProgressCircularProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n size?: number;\n strokeWidth?: number;\n}\n\nexport const ProgressCircular = forwardRef<HTMLDivElement, ProgressCircularProps>(\n ({ className, value = 0, size = 48, strokeWidth = 4, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - (clampedValue / 100) * circumference;\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"inline-flex\", className)}\n {...props}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-surface2)\"\n strokeWidth={strokeWidth}\n />\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-accent1-deep)\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{\n transition: `stroke-dashoffset var(--bloom-duration) var(--bloom-ease)`,\n }}\n />\n </svg>\n </div>\n );\n }\n);\nProgressCircular.displayName = \"ProgressCircular\";\n","import { cva } from \"class-variance-authority\";\n\nexport const progressTrackVariants = cva([\n \"relative w-full overflow-hidden\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"bg-[var(--bloom-surface2)]\",\n \"h-[6px]\",\n]);\n\nexport const progressFillVariants = cva([\n \"h-full rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"bg-gradient-to-r from-[var(--bloom-accent1-deep)] to-[var(--bloom-accent1)]\",\n \"bg-[length:200%_100%] animate-[bloom-shimmer_3s_ease-in-out_infinite]\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface SliderProps extends ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {}\n\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(\n ({ className, disabled, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n disabled={disabled}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(\n \"relative h-[6px] w-full grow overflow-hidden\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"bg-[var(--bloom-surface2)]\"\n )}\n >\n <SliderPrimitive.Range\n className={cn(\n \"absolute h-full\",\n \"bg-[var(--bloom-accent1-deep)]\",\n \"rounded-[var(--bloom-radius-pill)]\"\n )}\n />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb\n aria-disabled={disabled ? true : undefined}\n className={cn(\n \"block h-[24px] w-[24px] rounded-full\",\n \"bg-white border-[2px] border-[var(--bloom-accent1-deep)]\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"hover:scale-110\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"cursor-grab active:cursor-grabbing\"\n )}\n />\n </SliderPrimitive.Root>\n )\n);\nSlider.displayName = \"Slider\";\n","import { type ReactNode } from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n description?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function Modal({ open, onOpenChange, title, description, children, className }: ModalProps) {\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\"\n )}\n />\n <DialogPrimitive.Content\n className={cn(\n \"bloom fixed left-1/2 top-1/2 z-50\",\n \"-translate-x-1/2 -translate-y-1/2\",\n \"w-full max-w-[480px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xl)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"focus:outline-none\",\n className\n )}\n >\n {title && (\n <DialogPrimitive.Title\n className=\"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-heading)] font-medium color-[var(--bloom-text)] mb-[var(--space-sm)]\"\n >\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description\n className=\"text-[length:var(--bloom-text-body)] color-[var(--bloom-text-secondary)] mb-[var(--space-lg)]\"\n >\n {description}\n </DialogPrimitive.Description>\n )}\n {children}\n <DialogPrimitive.Close\n className={cn(\n \"absolute top-[var(--space-lg)] right-[var(--space-lg)]\",\n \"inline-flex items-center justify-center\",\n \"h-[32px] w-[32px] rounded-full\",\n \"color-[var(--bloom-text-secondary)] hover:color-[var(--bloom-text)]\",\n \"hover:bg-[var(--bloom-surface2)]\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\"\n )}\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n","import { type ReactNode, type ComponentPropsWithoutRef } from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownProps {\n trigger: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function Dropdown({ trigger, children, className }: DropdownProps) {\n return (\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>{trigger}</DropdownMenuPrimitive.Trigger>\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 min-w-[180px] overflow-hidden\",\n \"rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n );\n}\n\nexport interface DropdownItemProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {}\n\nexport function DropdownItem({ className, ...props }: DropdownItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n className={cn(\n \"relative flex items-center\",\n \"rounded-[var(--bloom-radius-sm)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"cursor-pointer select-none outline-none\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"data-[highlighted]:bg-[var(--bloom-surface2)]\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport interface DropdownSeparatorProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {}\n\nexport function DropdownSeparator({ className, ...props }: DropdownSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn(\"h-px my-[var(--space-xs)] bg-[var(--bloom-surface2)]\", className)}\n {...props}\n />\n );\n}\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../../utils/cn\";\nimport { tabsListVariants, type TabsListVariants } from \"./tabs.variants\";\n\nexport const Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n TabsListVariants;\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, variant, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n);\nTabsList.displayName = \"TabsList\";\n\nexport const TabsTrigger = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap\",\n \"px-[var(--space-lg)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)]\",\n \"color-[var(--bloom-text-secondary)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"hover:text-[var(--bloom-text)]\",\n \"data-[state=active]:text-[var(--bloom-text)]\",\n \"data-[state=active]:bg-[var(--bloom-surface2)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport const TabsContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-[var(--space-lg)]\",\n \"focus-visible:outline-none\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = \"TabsContent\";\n","import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\n [\n \"inline-flex items-center gap-[var(--space-xs)]\",\n \"font-[family-name:var(--bloom-font)]\",\n ],\n {\n variants: {\n variant: {\n default: \"border-b border-[var(--bloom-surface2)]\",\n pill: [\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type TabsListVariants = Parameters<typeof tabsListVariants>[0];\n","import { useState, useMemo } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n className?: string;\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nconst MONTH_NAMES = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\",\n];\n\nconst DAY_NAMES = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\n\nexport function DatePicker({ value, onChange, placeholder = \"Select date\", className }: DatePickerProps) {\n const [open, setOpen] = useState(false);\n const [viewDate, setViewDate] = useState(() => value ?? new Date());\n const viewYear = viewDate.getFullYear();\n const viewMonth = viewDate.getMonth();\n\n const days = useMemo(() => {\n const daysInMonth = getDaysInMonth(viewYear, viewMonth);\n const firstDay = getFirstDayOfMonth(viewYear, viewMonth);\n const cells: Array<number | null> = [];\n for (let i = 0; i < firstDay; i++) cells.push(null);\n for (let d = 1; d <= daysInMonth; d++) cells.push(d);\n return cells;\n }, [viewYear, viewMonth]);\n\n const isSelected = (day: number) => {\n if (!value) return false;\n return value.getFullYear() === viewYear && value.getMonth() === viewMonth && value.getDate() === day;\n };\n\n const prevMonth = () => setViewDate(new Date(viewYear, viewMonth - 1, 1));\n const nextMonth = () => setViewDate(new Date(viewYear, viewMonth + 1, 1));\n\n const selectDay = (day: number) => {\n const selected = new Date(viewYear, viewMonth, day);\n onChange?.(selected);\n setOpen(false);\n };\n\n const formattedValue = value\n ? value.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\", year: \"numeric\" })\n : null;\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-[var(--space-sm)]\",\n \"h-[44px] px-[var(--space-lg)]\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/20\",\n !formattedValue && \"color-[var(--bloom-text-secondary)]\",\n className\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2 6h12\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 1v3M11 1v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n {formattedValue ?? placeholder}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 w-[280px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-lg)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n )}\n >\n <div className=\"flex items-center justify-between mb-[var(--space-md)]\">\n <button\n onClick={prevMonth}\n className=\"p-[var(--space-xs)] rounded-full hover:bg-[var(--bloom-surface2)] transition-colors\"\n aria-label=\"Previous month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M10 4l-4 4 4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <span className=\"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\">\n {MONTH_NAMES[viewMonth]} {viewYear}\n </span>\n <button\n onClick={nextMonth}\n className=\"p-[var(--space-xs)] rounded-full hover:bg-[var(--bloom-surface2)] transition-colors\"\n aria-label=\"Next month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px] mb-[var(--space-xs)]\">\n {DAY_NAMES.map((d) => (\n <div key={d} className=\"text-center text-[length:var(--bloom-text-micro)] color-[var(--bloom-text-secondary)] font-medium py-[var(--space-xs)]\">\n {d}\n </div>\n ))}\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px]\">\n {days.map((day, i) =>\n day === null ? (\n <div key={`empty-${i}`} />\n ) : (\n <button\n key={day}\n onClick={() => selectDay(day)}\n className={cn(\n \"h-[36px] w-[36px] rounded-full\",\n \"flex items-center justify-center\",\n \"text-[length:var(--bloom-text-caption)] font-[family-name:var(--bloom-font)]\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"hover:bg-[var(--bloom-accent1)]/20\",\n isSelected(day)\n ? \"bg-[var(--bloom-accent1-deep)] color-white\"\n : \"color-[var(--bloom-text)]\"\n )}\n >\n {day}\n </button>\n )\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n","import {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { toastVariants, type ToastVariants } from \"./toast.variants\";\n\ninterface ToastData {\n id: string;\n title: string;\n description?: string;\n duration?: number;\n variant?: \"info\" | \"success\" | \"warning\" | \"error\" | null;\n}\n\ninterface ToastContextValue {\n toast: (data: Omit<ToastData, \"id\">) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nlet toastId = 0;\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<ToastData[]>([]);\n\n const toast = useCallback((data: Omit<ToastData, \"id\">) => {\n const id = String(++toastId);\n setToasts((prev) => [...prev, { ...data, id }]);\n }, []);\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast }}>\n {children}\n <div className=\"bloom fixed bottom-[var(--space-xl)] right-[var(--space-xl)] z-[100] flex flex-col gap-[var(--space-md)]\">\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} onDismiss={dismiss} />\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n\nfunction ToastItem({ toast: t, onDismiss }: { toast: ToastData; onDismiss: (id: string) => void }) {\n const duration = t.duration ?? 4000;\n\n useEffect(() => {\n const timer = setTimeout(() => onDismiss(t.id), duration);\n return () => clearTimeout(timer);\n }, [t.id, duration, onDismiss]);\n\n return (\n <div className={cn(toastVariants({ variant: t.variant }))}>\n <div className=\"flex-1\">\n <p className=\"text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\">\n {t.title}\n </p>\n {t.description && (\n <p className=\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\">\n {t.description}\n </p>\n )}\n </div>\n <button\n onClick={() => onDismiss(t.id)}\n className=\"color-[var(--bloom-text-secondary)] hover:color-[var(--bloom-text)] transition-colors shrink-0\"\n aria-label=\"Dismiss\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n <div\n className=\"absolute bottom-0 left-0 h-[2px] bg-[var(--bloom-accent1-deep)]/40\"\n style={{\n animation: `bloom-shrink ${duration}ms linear forwards`,\n }}\n />\n </div>\n );\n}\n","import { cva } from \"class-variance-authority\";\n\nexport const toastVariants = cva(\n [\n \"relative flex items-start gap-[var(--space-md)]\",\n \"w-full max-w-[380px]\",\n \"rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-lg)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"font-[family-name:var(--bloom-font)]\",\n \"overflow-hidden\",\n ],\n {\n variants: {\n variant: {\n info: \"border-l-[4px] border-l-[var(--bloom-accent3)]\",\n success: \"border-l-[4px] border-l-[var(--bloom-accent1)]\",\n warning: \"border-l-[4px] border-l-[var(--bloom-accent2)]\",\n error: \"border-l-[4px] border-l-[var(--bloom-accent4)]\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport type ToastVariants = Parameters<typeof toastVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { skeletonVariants, type SkeletonVariants } from \"./skeleton.variants\";\n\nexport type SkeletonProps = HTMLAttributes<HTMLDivElement> & SkeletonVariants;\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n);\nSkeleton.displayName = \"Skeleton\";\n","import { cva } from \"class-variance-authority\";\n\nexport const skeletonVariants = cva(\n [\n \"bg-[var(--bloom-surface2)]\",\n \"animate-[bloom-breathe_3s_ease-in-out_infinite]\",\n ],\n {\n variants: {\n variant: {\n text: \"h-[16px] w-full rounded-[var(--bloom-radius-sm)]\",\n card: \"h-[200px] w-full rounded-[var(--bloom-radius-lg)]\",\n avatar: \"h-[40px] w-[40px] rounded-full\",\n custom: \"\",\n },\n },\n defaultVariants: {\n variant: \"text\",\n },\n }\n);\n\nexport type SkeletonVariants = Parameters<typeof skeletonVariants>[0];\n"],"mappings":"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","names":["forwardRef","cva","jsx","forwardRef","forwardRef","cva","jsx","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","cva","jsx","forwardRef","forwardRef","useState","cva","jsx","jsxs","forwardRef","useState","jsx","jsxs","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","cva","jsx","forwardRef","useState","useMemo","jsx","jsxs","useState","useMemo","useState","useEffect","cva","jsx","jsxs","useState","useEffect","forwardRef","cva","jsx","forwardRef"]}
|