@code-sherpas/pharos-react 0.20.3 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,134 @@
1
+ import { ComponentProps, ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import { Toast as BaseToast } from '@base-ui/react/toast';
3
+ /**
4
+ * A brief, non-blocking message about something that just happened — "Settings
5
+ * saved", "Couldn't send the invitation" — shown in a corner of the screen and
6
+ * gone on its own (Decision D30). Wraps Base UI's `Toast`, which provides the
7
+ * accessibility contract:
8
+ *
9
+ * - the toasts live in a **`region` landmark that is a live region from the
10
+ * start**, so a toast is announced when it appears (politely; urgently with
11
+ * `priority: 'high'`) without the consumer adding one;
12
+ * - **F6** moves focus into that region and Tab walks its toasts and buttons;
13
+ * - a toast **pauses its timer** while the pointer is over the region or focus
14
+ * is inside it, so nobody loses a message while reading or reaching it;
15
+ * - it can be swiped away, and the close button is the single-pointer
16
+ * alternative to the swipe (WCAG 2.5.7).
17
+ *
18
+ * The API follows shadcn's `Toaster` + a hook, over Base UI's provider and
19
+ * manager: `ToastProvider` at the root, one `Toaster` where the toasts render,
20
+ * and `useToast()` wherever one is raised. Pharos owns no text (quality
21
+ * standard § 5): the region's name and the close button's name are required
22
+ * props of `Toaster`, localised by the consumer.
23
+ *
24
+ * A toast is for feedback that can be missed. A message the person must act on,
25
+ * or one that blocks the flow, is a `Dialog`; an error tied to a field is shown
26
+ * next to the field.
27
+ *
28
+ * @example
29
+ * <ToastProvider>
30
+ * <App />
31
+ * <Toaster position="top-center" label="Notifications" closeLabel="Close" />
32
+ * </ToastProvider>
33
+ *
34
+ * const toast = useToast();
35
+ * toast.add({ title: 'Settings saved', variant: 'success' });
36
+ */
37
+ /** What a toast is about. Mirrors `Badge`'s semantic variants. */
38
+ export type ToastVariant = 'default' | 'success' | 'info' | 'warning' | 'destructive';
39
+ export interface ToastOptions {
40
+ /**
41
+ * Identifies the toast. Adding one with the id of a toast still on screen
42
+ * replaces it in place and restarts its timer — the way to avoid stacking
43
+ * the same message twice.
44
+ */
45
+ id?: string;
46
+ /** The message. Also what assistive technology announces. */
47
+ title?: ReactNode;
48
+ /** Detail under the title. */
49
+ description?: ReactNode;
50
+ /**
51
+ * What the toast is about. Every variant but `default` adds an icon, so the
52
+ * meaning never rests on colour alone.
53
+ * @default 'default'
54
+ */
55
+ variant?: ToastVariant;
56
+ /**
57
+ * Milliseconds before it closes on its own; `0` keeps it until closed. A
58
+ * toast with an `action` defaults to `0`: a control that disappears on a
59
+ * timer is a control some people never reach (WCAG 2.2.1).
60
+ * @default the provider's `timeout`
61
+ */
62
+ timeout?: number;
63
+ /**
64
+ * `high` announces it at once, interrupting; reserve it for what genuinely
65
+ * cannot wait. Everything else is announced when the screen reader is idle.
66
+ * @default 'low'
67
+ */
68
+ priority?: 'low' | 'high';
69
+ /**
70
+ * One button in the toast — "Undo", "Retry". Its `children` are its label;
71
+ * clicking it runs `onClick` and closes the toast.
72
+ */
73
+ action?: ComponentPropsWithoutRef<'button'>;
74
+ /** Called when the toast starts closing, whatever closed it. */
75
+ onClose?: () => void;
76
+ }
77
+ export interface UseToastReturnValue {
78
+ /** Shows a toast and returns its id. */
79
+ add: (options: ToastOptions) => string;
80
+ /** Closes one toast by id, or every toast when called without one. */
81
+ close: (id?: string) => void;
82
+ /** Changes a toast that is on screen. */
83
+ update: (id: string, options: Omit<ToastOptions, 'id'>) => void;
84
+ }
85
+ /**
86
+ * Raises, updates and closes toasts. Must be called inside a `ToastProvider`.
87
+ */
88
+ export declare function useToast(): UseToastReturnValue;
89
+ export interface ToastProviderProps {
90
+ children?: ReactNode;
91
+ /**
92
+ * Default milliseconds before a toast closes on its own. Seven seconds is
93
+ * enough to read two lines at a relaxed pace; the timer also pauses while
94
+ * the pointer or focus is on the toasts.
95
+ * @default 7000
96
+ */
97
+ timeout?: number;
98
+ /**
99
+ * How many toasts are on screen at once; adding one more closes the oldest.
100
+ * @default 3
101
+ */
102
+ limit?: number;
103
+ }
104
+ /** Holds the toasts of the whole app. Place it once, near the root. */
105
+ export declare function ToastProvider({ timeout, limit, children }: ToastProviderProps): import("react").JSX.Element;
106
+ export declare namespace ToastProvider {
107
+ var displayName: string;
108
+ }
109
+ /** Where on the screen the toasts appear. Logical: `start` is left in LTR. */
110
+ export type ToasterPosition = 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';
111
+ export interface ToasterProps extends Omit<ComponentProps<typeof BaseToast.Viewport>, 'children' | 'aria-label'> {
112
+ /**
113
+ * Where the toasts appear. The newest is always the one nearest the edge.
114
+ * @default 'bottom-end'
115
+ */
116
+ position?: ToasterPosition;
117
+ /** Name of the region that holds the toasts, e.g. "Notifications". */
118
+ label: string;
119
+ /** Name of each toast's close button, e.g. "Close". */
120
+ closeLabel: string;
121
+ /**
122
+ * Distance from the edge the toasts sit on: a number of pixels or any CSS
123
+ * length, `var()` included. For a layout whose top or bottom is taken by
124
+ * its own bars, so the toasts appear below or above them, not over them.
125
+ * @default 16px (`--pharos-spacing-4`)
126
+ */
127
+ offset?: number | string;
128
+ }
129
+ /** Renders the toasts. Place it once, inside `ToastProvider`. */
130
+ export declare function Toaster({ position, label, closeLabel, offset, className, style, ...rest }: ToasterProps): import("react").JSX.Element;
131
+ export declare namespace Toaster {
132
+ var displayName: string;
133
+ }
134
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/components/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAE7B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAM1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,kEAAkE;AAClE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5C,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC;IACvC,sEAAsE;IACtE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yCAAyC;IACzC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;CACjE;AAYD;;GAEG;AACH,wBAAgB,QAAQ,IAAI,mBAAmB,CAe9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,EAAE,OAAc,EAAE,KAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,+BAMxF;yBANe,aAAa;;;AAU7B,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB,MAAM,WAAW,YAAa,SAAQ,IAAI,CACxC,cAAc,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,EACzC,UAAU,GAAG,YAAY,CAC1B;IACC;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,EACtB,QAAuB,EACvB,KAAK,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,YAAY,+BA6Dd;yBArEe,OAAO"}
@@ -0,0 +1,173 @@
1
+ "use client";
2
+ import { cn as e } from "../lib/cn.js";
3
+ import { Button as t } from "./Button.js";
4
+ import { IconButton as n } from "./IconButton.js";
5
+ import r from "./Toast.module.js";
6
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ import { useMemo as o } from "react";
8
+ import { Toast as s } from "@base-ui/react/toast";
9
+ //#region src/components/Toast.tsx
10
+ function c({ variant: e, action: t, timeout: n, ...r }) {
11
+ return {
12
+ ...r,
13
+ type: e,
14
+ actionProps: t,
15
+ timeout: n ?? (t === void 0 ? void 0 : 0)
16
+ };
17
+ }
18
+ function l() {
19
+ let { add: e, close: t, update: n } = s.useToastManager();
20
+ return o(() => ({
21
+ add: function({ id: t, ...n }) {
22
+ return e({
23
+ id: t,
24
+ ...c(n)
25
+ });
26
+ },
27
+ close: t,
28
+ update: function(e, t) {
29
+ n(e, c(t));
30
+ }
31
+ }), [
32
+ e,
33
+ t,
34
+ n
35
+ ]);
36
+ }
37
+ function u({ timeout: e = 7e3, limit: t = 3, children: n }) {
38
+ return /* @__PURE__ */ i(s.Provider, {
39
+ timeout: e,
40
+ limit: t,
41
+ children: n
42
+ });
43
+ }
44
+ u.displayName = "ToastProvider";
45
+ function d({ position: o = "bottom-end", label: c, closeLabel: l, offset: u, className: d, style: p, ...h }) {
46
+ let { toasts: g, close: _ } = s.useToastManager(), [v] = o.split("-"), y = u === void 0 ? void 0 : { "--pharos-toast-offset": typeof u == "number" ? `${u}px` : u };
47
+ return /* @__PURE__ */ i(s.Portal, { children: /* @__PURE__ */ i(s.Viewport, {
48
+ "aria-label": c,
49
+ "data-pharos-position": o,
50
+ className: e(r.viewport, d),
51
+ style: typeof p == "function" ? (e) => ({
52
+ ...p(e),
53
+ ...y
54
+ }) : {
55
+ ...p,
56
+ ...y
57
+ },
58
+ ...h,
59
+ children: g.map((e) => /* @__PURE__ */ i(s.Root, {
60
+ toast: e,
61
+ swipeDirection: v === "top" ? [
62
+ "up",
63
+ "right",
64
+ "left"
65
+ ] : [
66
+ "down",
67
+ "right",
68
+ "left"
69
+ ],
70
+ "data-pharos-slot": "toast",
71
+ "data-pharos-variant": e.type ?? "default",
72
+ className: r.toast,
73
+ children: /* @__PURE__ */ a(s.Content, {
74
+ className: r.content,
75
+ children: [
76
+ /* @__PURE__ */ i(f, { variant: e.type }),
77
+ /* @__PURE__ */ a("div", {
78
+ className: r.text,
79
+ children: [
80
+ /* @__PURE__ */ i(s.Title, { className: r.title }),
81
+ /* @__PURE__ */ i(s.Description, { className: r.description }),
82
+ e.actionProps && /* @__PURE__ */ i(s.Action, {
83
+ className: r.action,
84
+ render: /* @__PURE__ */ i(t, {
85
+ intent: "secondary",
86
+ size: "sm"
87
+ }),
88
+ onClick: function() {
89
+ _(e.id);
90
+ }
91
+ })
92
+ ]
93
+ }),
94
+ /* @__PURE__ */ i(s.Close, {
95
+ className: r.close,
96
+ render: /* @__PURE__ */ i(n, {
97
+ intent: "ghost",
98
+ size: "sm",
99
+ "aria-label": l
100
+ }),
101
+ children: /* @__PURE__ */ i(m, {})
102
+ })
103
+ ]
104
+ })
105
+ }, e.id))
106
+ }) });
107
+ }
108
+ d.displayName = "Toaster";
109
+ function f({ variant: e }) {
110
+ switch (e) {
111
+ case "success": return /* @__PURE__ */ a(p, { children: [/* @__PURE__ */ i("circle", {
112
+ cx: "12",
113
+ cy: "12",
114
+ r: "10"
115
+ }), /* @__PURE__ */ i("path", { d: "m9 12 2 2 4-4" })] });
116
+ case "info": return /* @__PURE__ */ a(p, { children: [
117
+ /* @__PURE__ */ i("circle", {
118
+ cx: "12",
119
+ cy: "12",
120
+ r: "10"
121
+ }),
122
+ /* @__PURE__ */ i("path", { d: "M12 16v-4" }),
123
+ /* @__PURE__ */ i("path", { d: "M12 8h.01" })
124
+ ] });
125
+ case "warning": return /* @__PURE__ */ a(p, { children: [
126
+ /* @__PURE__ */ i("path", {
127
+ className: r.warningFill,
128
+ d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"
129
+ }),
130
+ /* @__PURE__ */ i("path", { d: "M12 9v4" }),
131
+ /* @__PURE__ */ i("path", { d: "M12 17h.01" })
132
+ ] });
133
+ case "destructive": return /* @__PURE__ */ a(p, { children: [
134
+ /* @__PURE__ */ i("circle", {
135
+ cx: "12",
136
+ cy: "12",
137
+ r: "10"
138
+ }),
139
+ /* @__PURE__ */ i("path", { d: "M12 8v4" }),
140
+ /* @__PURE__ */ i("path", { d: "M12 16h.01" })
141
+ ] });
142
+ default: return null;
143
+ }
144
+ }
145
+ function p({ children: e }) {
146
+ return /* @__PURE__ */ i("svg", {
147
+ className: r.icon,
148
+ viewBox: "0 0 24 24",
149
+ fill: "none",
150
+ stroke: "currentColor",
151
+ strokeWidth: "2",
152
+ strokeLinecap: "round",
153
+ strokeLinejoin: "round",
154
+ "aria-hidden": "true",
155
+ children: e
156
+ });
157
+ }
158
+ function m() {
159
+ return /* @__PURE__ */ a("svg", {
160
+ viewBox: "0 0 24 24",
161
+ fill: "none",
162
+ stroke: "currentColor",
163
+ strokeWidth: "2",
164
+ strokeLinecap: "round",
165
+ strokeLinejoin: "round",
166
+ "aria-hidden": "true",
167
+ children: [/* @__PURE__ */ i("path", { d: "M18 6 6 18" }), /* @__PURE__ */ i("path", { d: "m6 6 12 12" })]
168
+ });
169
+ }
170
+ //#endregion
171
+ export { u as ToastProvider, d as Toaster, l as useToast };
172
+
173
+ //# sourceMappingURL=Toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.js","names":[],"sources":["../../src/components/Toast.tsx"],"sourcesContent":["'use client';\n\nimport {\n useMemo,\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type CSSProperties,\n type ReactNode,\n} from 'react';\nimport { Toast as BaseToast } from '@base-ui/react/toast';\nimport { cn } from '../lib/cn';\nimport { Button } from './Button';\nimport { IconButton } from './IconButton';\nimport styles from './Toast.module.css';\n\n/**\n * A brief, non-blocking message about something that just happened — \"Settings\n * saved\", \"Couldn't send the invitation\" — shown in a corner of the screen and\n * gone on its own (Decision D30). Wraps Base UI's `Toast`, which provides the\n * accessibility contract:\n *\n * - the toasts live in a **`region` landmark that is a live region from the\n * start**, so a toast is announced when it appears (politely; urgently with\n * `priority: 'high'`) without the consumer adding one;\n * - **F6** moves focus into that region and Tab walks its toasts and buttons;\n * - a toast **pauses its timer** while the pointer is over the region or focus\n * is inside it, so nobody loses a message while reading or reaching it;\n * - it can be swiped away, and the close button is the single-pointer\n * alternative to the swipe (WCAG 2.5.7).\n *\n * The API follows shadcn's `Toaster` + a hook, over Base UI's provider and\n * manager: `ToastProvider` at the root, one `Toaster` where the toasts render,\n * and `useToast()` wherever one is raised. Pharos owns no text (quality\n * standard § 5): the region's name and the close button's name are required\n * props of `Toaster`, localised by the consumer.\n *\n * A toast is for feedback that can be missed. A message the person must act on,\n * or one that blocks the flow, is a `Dialog`; an error tied to a field is shown\n * next to the field.\n *\n * @example\n * <ToastProvider>\n * <App />\n * <Toaster position=\"top-center\" label=\"Notifications\" closeLabel=\"Close\" />\n * </ToastProvider>\n *\n * const toast = useToast();\n * toast.add({ title: 'Settings saved', variant: 'success' });\n */\n\n/** What a toast is about. Mirrors `Badge`'s semantic variants. */\nexport type ToastVariant = 'default' | 'success' | 'info' | 'warning' | 'destructive';\n\nexport interface ToastOptions {\n /**\n * Identifies the toast. Adding one with the id of a toast still on screen\n * replaces it in place and restarts its timer — the way to avoid stacking\n * the same message twice.\n */\n id?: string;\n /** The message. Also what assistive technology announces. */\n title?: ReactNode;\n /** Detail under the title. */\n description?: ReactNode;\n /**\n * What the toast is about. Every variant but `default` adds an icon, so the\n * meaning never rests on colour alone.\n * @default 'default'\n */\n variant?: ToastVariant;\n /**\n * Milliseconds before it closes on its own; `0` keeps it until closed. A\n * toast with an `action` defaults to `0`: a control that disappears on a\n * timer is a control some people never reach (WCAG 2.2.1).\n * @default the provider's `timeout`\n */\n timeout?: number;\n /**\n * `high` announces it at once, interrupting; reserve it for what genuinely\n * cannot wait. Everything else is announced when the screen reader is idle.\n * @default 'low'\n */\n priority?: 'low' | 'high';\n /**\n * One button in the toast — \"Undo\", \"Retry\". Its `children` are its label;\n * clicking it runs `onClick` and closes the toast.\n */\n action?: ComponentPropsWithoutRef<'button'>;\n /** Called when the toast starts closing, whatever closed it. */\n onClose?: () => void;\n}\n\nexport interface UseToastReturnValue {\n /** Shows a toast and returns its id. */\n add: (options: ToastOptions) => string;\n /** Closes one toast by id, or every toast when called without one. */\n close: (id?: string) => void;\n /** Changes a toast that is on screen. */\n update: (id: string, options: Omit<ToastOptions, 'id'>) => void;\n}\n\n/** Translates Pharos's options to Base UI's: `variant` travels as its `type`. */\nfunction toBaseOptions({ variant, action, timeout, ...rest }: Omit<ToastOptions, 'id'>) {\n return {\n ...rest,\n type: variant,\n actionProps: action,\n timeout: timeout ?? (action === undefined ? undefined : 0),\n };\n}\n\n/**\n * Raises, updates and closes toasts. Must be called inside a `ToastProvider`.\n */\nexport function useToast(): UseToastReturnValue {\n const { add, close, update } = BaseToast.useToastManager();\n // Base UI's methods are stable, so this is too: safe in an effect's deps.\n return useMemo(\n () => ({\n add: function addToast({ id, ...options }) {\n return add({ id, ...toBaseOptions(options) });\n },\n close,\n update: function updateToast(id, options) {\n update(id, toBaseOptions(options));\n },\n }),\n [add, close, update],\n );\n}\n\nexport interface ToastProviderProps {\n children?: ReactNode;\n /**\n * Default milliseconds before a toast closes on its own. Seven seconds is\n * enough to read two lines at a relaxed pace; the timer also pauses while\n * the pointer or focus is on the toasts.\n * @default 7000\n */\n timeout?: number;\n /**\n * How many toasts are on screen at once; adding one more closes the oldest.\n * @default 3\n */\n limit?: number;\n}\n\n/** Holds the toasts of the whole app. Place it once, near the root. */\nexport function ToastProvider({ timeout = 7000, limit = 3, children }: ToastProviderProps) {\n return (\n <BaseToast.Provider timeout={timeout} limit={limit}>\n {children}\n </BaseToast.Provider>\n );\n}\n\nToastProvider.displayName = 'ToastProvider';\n\n/** Where on the screen the toasts appear. Logical: `start` is left in LTR. */\nexport type ToasterPosition =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end';\n\nexport interface ToasterProps extends Omit<\n ComponentProps<typeof BaseToast.Viewport>,\n 'children' | 'aria-label'\n> {\n /**\n * Where the toasts appear. The newest is always the one nearest the edge.\n * @default 'bottom-end'\n */\n position?: ToasterPosition;\n /** Name of the region that holds the toasts, e.g. \"Notifications\". */\n label: string;\n /** Name of each toast's close button, e.g. \"Close\". */\n closeLabel: string;\n /**\n * Distance from the edge the toasts sit on: a number of pixels or any CSS\n * length, `var()` included. For a layout whose top or bottom is taken by\n * its own bars, so the toasts appear below or above them, not over them.\n * @default 16px (`--pharos-spacing-4`)\n */\n offset?: number | string;\n}\n\n/** Renders the toasts. Place it once, inside `ToastProvider`. */\nexport function Toaster({\n position = 'bottom-end',\n label,\n closeLabel,\n offset,\n className,\n style,\n ...rest\n}: ToasterProps) {\n const { toasts, close } = BaseToast.useToastManager();\n const [edge] = position.split('-');\n const offsetStyle =\n offset === undefined\n ? undefined\n : ({\n '--pharos-toast-offset': typeof offset === 'number' ? `${offset}px` : offset,\n } as CSSProperties);\n return (\n <BaseToast.Portal>\n <BaseToast.Viewport\n aria-label={label}\n data-pharos-position={position}\n className={cn(styles.viewport, className)}\n style={\n typeof style === 'function'\n ? (state) => ({ ...style(state), ...offsetStyle })\n : { ...style, ...offsetStyle }\n }\n {...rest}\n >\n {toasts.map((toast) => (\n <BaseToast.Root\n key={toast.id}\n toast={toast}\n swipeDirection={edge === 'top' ? ['up', 'right', 'left'] : ['down', 'right', 'left']}\n data-pharos-slot=\"toast\"\n data-pharos-variant={(toast.type as ToastVariant | undefined) ?? 'default'}\n className={styles.toast}\n >\n <BaseToast.Content className={styles.content}>\n <VariantIcon variant={toast.type as ToastVariant | undefined} />\n <div className={styles.text}>\n <BaseToast.Title className={styles.title} />\n <BaseToast.Description className={styles.description} />\n {/* Under the text, so the message keeps the whole width at\n * any size. Base UI runs the action and leaves the toast;\n * once acted on, it has said what it had to say. */}\n {toast.actionProps && (\n <BaseToast.Action\n className={styles.action}\n render={<Button intent=\"secondary\" size=\"sm\" />}\n onClick={function closeOnceActedOn() {\n close(toast.id);\n }}\n />\n )}\n </div>\n <BaseToast.Close\n className={styles.close}\n render={<IconButton intent=\"ghost\" size=\"sm\" aria-label={closeLabel} />}\n >\n <XIcon />\n </BaseToast.Close>\n </BaseToast.Content>\n </BaseToast.Root>\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nToaster.displayName = 'Toaster';\n\n/**\n * The variant's icon, inlined from Lucide's path data so the bundle pulls no\n * icon dependency (D4, as in `Select`). Decorative to assistive technology:\n * the title says what happened.\n */\nfunction VariantIcon({ variant }: { variant: ToastVariant | undefined }) {\n switch (variant) {\n case 'success':\n return (\n <Glyph>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </Glyph>\n );\n case 'info':\n return (\n <Glyph>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </Glyph>\n );\n case 'warning':\n return (\n <Glyph>\n <path\n className={styles.warningFill}\n d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"\n />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </Glyph>\n );\n case 'destructive':\n return (\n <Glyph>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 8v4\" />\n <path d=\"M12 16h.01\" />\n </Glyph>\n );\n default:\n return null;\n }\n}\n\nfunction Glyph({ children }: { children: ReactNode }) {\n return (\n <svg\n className={styles.icon}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n {children}\n </svg>\n );\n}\n\nfunction XIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ var e = {
2
+ viewport: "_viewport_b05po_18",
3
+ toast: "_toast_b05po_61",
4
+ content: "_content_b05po_128",
5
+ icon: "_icon_b05po_137",
6
+ text: "_text_b05po_143",
7
+ warningFill: "_warningFill_b05po_170",
8
+ title: "_title_b05po_177",
9
+ description: "_description_b05po_184",
10
+ action: "_action_b05po_191",
11
+ close: "_close_b05po_198"
12
+ };
13
+ //#endregion
14
+ export { e as default };
15
+
16
+ //# sourceMappingURL=Toast.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.module.js","names":[],"sources":["../../src/components/Toast.module.css"],"sourcesContent":["/* Toast.module.css\n *\n * Per-component CSS Modules definition (Decision D9). Hashed into\n * `dist/styles.css`. Styles the toasts over Base UI's `Toast`: a fixed region\n * in one corner (or centred on one edge), holding a column of cards.\n *\n * z-index: the region sits on the toast layer (decision D29, 1700): above\n * modals and popovers, so a toast raised from inside a dialog is not hidden by\n * it, and below tooltips. The fallbacks are D29's and the current palette's\n * values, for a consumer whose pharos-tokens predates them.\n *\n * Layout uses logical properties only, so `start`/`end` follow the writing\n * direction. Motion comes from Base UI's `data-starting-style` /\n * `data-ending-style`, and collapses to a fade under reduced motion.\n */\n\n/* === Region (Toast.Viewport) === */\n.viewport {\n /* The inline gap, and the block one unless `offset` sets\n * `--pharos-toast-offset`. */\n --pharos-toast-edge-gap: var(--pharos-spacing-4);\n\n position: fixed;\n z-index: var(--pharos-z-index-toast, 1700);\n box-sizing: border-box;\n inline-size: min(22.5rem, calc(100% - 2 * var(--pharos-toast-edge-gap)));\n\n display: flex;\n flex-direction: column;\n gap: var(--pharos-spacing-2);\n\n /* The region itself never blocks the page under its empty area. */\n pointer-events: none;\n outline: none;\n}\n\n/* Newest first (Base UI's order), so the newest is nearest the edge. */\n.viewport[data-pharos-position^='top'] {\n inset-block-start: var(--pharos-toast-offset, var(--pharos-toast-edge-gap));\n}\n\n.viewport[data-pharos-position^='bottom'] {\n inset-block-end: var(--pharos-toast-offset, var(--pharos-toast-edge-gap));\n flex-direction: column-reverse;\n}\n\n.viewport[data-pharos-position$='start'] {\n inset-inline-start: var(--pharos-toast-edge-gap);\n}\n\n.viewport[data-pharos-position$='end'] {\n inset-inline-end: var(--pharos-toast-edge-gap);\n}\n\n.viewport[data-pharos-position$='center'] {\n inset-inline: 0;\n margin-inline: auto;\n}\n\n/* === Toast (Toast.Root) === */\n.toast {\n --pharos-toast-enter-shift: calc(-1 * var(--pharos-spacing-4));\n\n box-sizing: border-box;\n pointer-events: auto;\n\n background-color: var(--pharos-color-surface-card, var(--pharos-color-base-white));\n border: 1px solid var(--pharos-color-border-subtle, var(--pharos-color-neutral-200));\n border-radius: var(--pharos-radius-lg);\n box-shadow: var(--pharos-shadow-lg);\n\n font-family: var(--pharos-font-family-sans);\n font-size: var(--pharos-font-size-sm);\n line-height: 1.43; /* 14 / 20, D3 */\n color: var(--pharos-color-neutral-900);\n\n /* Swiping moves it with the finger. */\n transform: translate(var(--toast-swipe-movement-x, 0), var(--toast-swipe-movement-y, 0));\n transition-property: opacity, transform;\n transition-duration: var(--pharos-duration-normal);\n transition-timing-function: var(--pharos-easing-out);\n}\n\n.viewport[data-pharos-position^='bottom'] .toast {\n --pharos-toast-enter-shift: var(--pharos-spacing-4);\n}\n\n/* Arrives from, and leaves towards, the edge it sits on. */\n.toast[data-starting-style],\n.toast[data-ending-style] {\n opacity: 0;\n transform: translateY(var(--pharos-toast-enter-shift));\n}\n\n/* Swiped away: keeps going the way the finger went. */\n.toast[data-ending-style][data-swipe-direction='left'] {\n transform: translateX(calc(var(--toast-swipe-movement-x, 0) - 100%));\n}\n\n.toast[data-ending-style][data-swipe-direction='right'] {\n transform: translateX(calc(var(--toast-swipe-movement-x, 0) + 100%));\n}\n\n.toast[data-limited] {\n opacity: 0;\n}\n\n/* The system's focus ring (as Button): a white halo, then the accent. Kept as\n * box-shadow plus the card's own shadow, so the ring is not lost under it. */\n.toast:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 2px var(--pharos-color-base-white),\n 0 0 0 4px var(--pharos-color-primary-600),\n var(--pharos-shadow-lg);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .toast,\n .toast[data-starting-style],\n .toast[data-ending-style] {\n transform: none;\n transition-property: opacity;\n }\n}\n\n/* === Content (Toast.Content) === */\n.content {\n display: flex;\n align-items: flex-start;\n gap: var(--pharos-spacing-3);\n padding-block: var(--pharos-spacing-3);\n padding-inline: var(--pharos-spacing-4) var(--pharos-spacing-2);\n}\n\n/* 20 px, the height of the title's first line, so the two line up. */\n.icon {\n flex-shrink: 0;\n inline-size: var(--pharos-spacing-5);\n block-size: var(--pharos-spacing-5);\n}\n\n.text {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--pharos-spacing-0-5);\n min-inline-size: 0;\n overflow-wrap: anywhere;\n}\n\n.toast[data-pharos-variant='success'] .icon {\n color: var(--pharos-color-semantic-success-fg);\n}\n\n.toast[data-pharos-variant='info'] .icon {\n color: var(--pharos-color-semantic-info-fg);\n}\n\n.toast[data-pharos-variant='destructive'] .icon {\n color: var(--pharos-color-semantic-error-fg);\n}\n\n/* Amber does not reach 3:1 on white as a stroke, so warning is a filled\n * triangle with the glyph in its on-colour, the way a warning sign reads. */\n.toast[data-pharos-variant='warning'] .icon {\n color: var(--pharos-color-semantic-warning-on);\n}\n\n.warningFill {\n fill: var(--pharos-color-semantic-warning-fg);\n stroke: var(--pharos-color-semantic-warning-fg);\n}\n\n/* Base UI renders the title as an `<h2>`: its size and line come from here,\n * not from the browser's or the page's heading styles. */\n.title {\n margin: 0;\n font-size: var(--pharos-font-size-sm);\n line-height: inherit;\n font-weight: var(--pharos-font-weight-semibold);\n}\n\n.description {\n margin: 0;\n font-size: var(--pharos-font-size-sm);\n line-height: inherit;\n color: var(--pharos-color-neutral-600);\n}\n\n.action {\n align-self: flex-start;\n margin-block-start: var(--pharos-spacing-2);\n}\n\n/* The 32 px button is centred on the title's first 20 px line: it rises 6 px\n * into the padding instead of pushing the card taller. */\n.close {\n flex-shrink: 0;\n margin-block: calc(-1 * var(--pharos-spacing-1-5)) calc(-1 * var(--pharos-spacing-1-5));\n}\n"],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -34,5 +34,7 @@ export { Switch } from './components/Switch';
34
34
  export type { SwitchProps } from './components/Switch';
35
35
  export { RadioGroup, RadioGroupItem } from './components/RadioGroup';
36
36
  export type { RadioGroupProps, RadioGroupItemProps } from './components/RadioGroup';
37
+ export { ToastProvider, Toaster, useToast } from './components/Toast';
38
+ export type { ToastProviderProps, ToasterProps, ToasterPosition, ToastOptions, ToastVariant, UseToastReturnValue, } from './components/Toast';
37
39
  export { cn } from './lib/cn';
38
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,4 +17,5 @@ import { Dialog as ge, DialogClose as _e, DialogContent as ve, DialogDescription
17
17
  import { Checkbox as we } from "./components/Checkbox.js";
18
18
  import { Switch as Te } from "./components/Switch.js";
19
19
  import { RadioGroup as Ee, RadioGroupItem as De } from "./components/RadioGroup.js";
20
- export { x as Avatar, S as AvatarFallback, C as AvatarGroup, w as AvatarImage, s as Badge, t as Button, m as Card, h as CardContent, g as CardDescription, _ as CardFooter, v as CardHeader, y as CardTitle, we as Checkbox, K as Combobox, q as ComboboxChip, J as ComboboxChipRemove, Y as ComboboxChips, X as ComboboxClear, Z as ComboboxContent, Q as ComboboxControl, $ as ComboboxEmpty, ee as ComboboxGroup, te as ComboboxGroupLabel, ne as ComboboxInput, re as ComboboxItem, ie as ComboboxList, ae as ComboboxSeparator, oe as ComboboxTrigger, ge as Dialog, _e as DialogClose, ve as DialogContent, ye as DialogDescription, be as DialogFooter, xe as DialogHeader, Se as DialogTitle, Ce as DialogTrigger, T as DropdownMenu, E as DropdownMenuContent, D as DropdownMenuGroup, O as DropdownMenuItem, k as DropdownMenuLabel, A as DropdownMenuSeparator, j as DropdownMenuTrigger, a as IconButton, l as Input, M as Popover, N as PopoverClose, P as PopoverContent, F as PopoverDescription, I as PopoverTitle, L as PopoverTrigger, Ee as RadioGroup, De as RadioGroupItem, R as Select, z as SelectContent, B as SelectGroup, V as SelectItem, H as SelectLabel, U as SelectSeparator, W as SelectTrigger, G as SelectValue, p as Separator, se as Sheet, ce as SheetClose, le as SheetContent, ue as SheetDescription, de as SheetFooter, fe as SheetHeader, pe as SheetTitle, me as SheetTrigger, r as Spinner, Te as Switch, d as Textarea, c as badgeVariants, n as buttonVariants, b as cardVariants, e as cn, o as iconButtonVariants, u as inputVariants, he as sheetVariants, i as spinnerVariants, f as textareaVariants };
20
+ import { ToastProvider as Oe, Toaster as ke, useToast as Ae } from "./components/Toast.js";
21
+ export { x as Avatar, S as AvatarFallback, C as AvatarGroup, w as AvatarImage, s as Badge, t as Button, m as Card, h as CardContent, g as CardDescription, _ as CardFooter, v as CardHeader, y as CardTitle, we as Checkbox, K as Combobox, q as ComboboxChip, J as ComboboxChipRemove, Y as ComboboxChips, X as ComboboxClear, Z as ComboboxContent, Q as ComboboxControl, $ as ComboboxEmpty, ee as ComboboxGroup, te as ComboboxGroupLabel, ne as ComboboxInput, re as ComboboxItem, ie as ComboboxList, ae as ComboboxSeparator, oe as ComboboxTrigger, ge as Dialog, _e as DialogClose, ve as DialogContent, ye as DialogDescription, be as DialogFooter, xe as DialogHeader, Se as DialogTitle, Ce as DialogTrigger, T as DropdownMenu, E as DropdownMenuContent, D as DropdownMenuGroup, O as DropdownMenuItem, k as DropdownMenuLabel, A as DropdownMenuSeparator, j as DropdownMenuTrigger, a as IconButton, l as Input, M as Popover, N as PopoverClose, P as PopoverContent, F as PopoverDescription, I as PopoverTitle, L as PopoverTrigger, Ee as RadioGroup, De as RadioGroupItem, R as Select, z as SelectContent, B as SelectGroup, V as SelectItem, H as SelectLabel, U as SelectSeparator, W as SelectTrigger, G as SelectValue, p as Separator, se as Sheet, ce as SheetClose, le as SheetContent, ue as SheetDescription, de as SheetFooter, fe as SheetHeader, pe as SheetTitle, me as SheetTrigger, r as Spinner, Te as Switch, d as Textarea, Oe as ToastProvider, ke as Toaster, c as badgeVariants, n as buttonVariants, b as cardVariants, e as cn, o as iconButtonVariants, u as inputVariants, he as sheetVariants, i as spinnerVariants, f as textareaVariants, Ae as useToast };
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
- ._root_1xx27_21{box-sizing:border-box;background-color:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-700);font-family:var(--pharos-font-family-sans);-webkit-user-select:none;user-select:none;--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -1);flex-shrink:0;justify-content:center;align-items:center;font-weight:500;line-height:1;display:inline-flex;position:relative;overflow:hidden}._shapeCircle_1xx27_63{border-radius:var(--pharos-radius-full)}._shapeSquare_1xx27_67{border-radius:var(--pharos-radius-md)}._sizeSm_1xx27_86{width:var(--pharos-spacing-8);height:var(--pharos-spacing-8);--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -.75);font-size:.75rem}._sizeMd_1xx27_93{width:var(--pharos-spacing-10);height:var(--pharos-spacing-10);--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -1);font-size:.875rem}._sizeLg_1xx27_100{width:var(--pharos-spacing-12);height:var(--pharos-spacing-12);--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -1.25);font-size:1rem}._image_1xx27_118{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block;position:absolute;inset:0}._fallback_1xx27_134{text-align:center;width:100%;height:100%;font:inherit;color:inherit;justify-content:center;align-items:center;display:inline-flex}._sizeSm_1xx27_86 ._fallback_1xx27_134>svg{width:var(--pharos-spacing-5);height:var(--pharos-spacing-5)}._sizeMd_1xx27_93 ._fallback_1xx27_134>svg{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6)}._sizeLg_1xx27_100 ._fallback_1xx27_134>svg{width:var(--pharos-spacing-7);height:var(--pharos-spacing-7)}._group_1xx27_175{align-items:center;display:inline-flex}._group_1xx27_175>._root_1xx27_21{box-shadow:0 0 0 2px var(--pharos-avatar-group-ring,var(--pharos-color-base-white));position:relative}._group_1xx27_175>._root_1xx27_21+._root_1xx27_21{margin-left:var(--pharos-avatar-overlap)}._badge_zrawy_5{align-items:center;gap:var(--pharos-spacing-1);padding:0 var(--pharos-spacing-2);height:var(--pharos-spacing-5);border-radius:var(--pharos-radius-full);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-xs);font-weight:var(--pharos-font-weight-medium);white-space:nowrap;text-box-trim:trim-both;text-box-edge:cap alphabetic;border:1px solid #0000;width:fit-content;line-height:1;display:inline-flex}._badge_zrawy_5>svg{pointer-events:none;flex:none;width:.75em;height:.75em}._default_zrawy_30{background:var(--pharos-color-neutral-900);color:var(--pharos-color-base-white)}._secondary_zrawy_35{background:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-900)}._destructive_zrawy_40{background:var(--pharos-color-semantic-error-fg);color:var(--pharos-color-semantic-error-on)}._outline_zrawy_45{color:var(--pharos-color-neutral-900);border-color:var(--pharos-color-neutral-500);background:0 0}._success_zrawy_55{background:var(--pharos-color-semantic-success-fg);color:var(--pharos-color-semantic-success-on)}._warning_zrawy_60{background:var(--pharos-color-semantic-warning-fg);color:var(--pharos-color-semantic-warning-on)}._info_zrawy_65{background:var(--pharos-color-semantic-info-fg);color:var(--pharos-color-semantic-info-on)}._button_iu0wg_18{appearance:none;box-sizing:border-box;border-radius:var(--pharos-radius-full);white-space:nowrap;text-box-trim:trim-both;text-box-edge:cap alphabetic;font-family:var(--pharos-font-family-sans);font-style:normal;font-weight:var(--pharos-font-weight-medium);font-variant:normal;font-kerning:auto;font-optical-sizing:auto;font-size-adjust:none;font-feature-settings:normal;font-variation-settings:normal;letter-spacing:normal;text-transform:none;font-stretch:100%;font-size:var(--pharos-font-size-sm);-webkit-user-select:none;user-select:none;cursor:pointer;color:inherit;transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);background-color:#0000;border:0 solid #0000;justify-content:center;align-items:center;margin:0;padding-top:0;padding-bottom:0;line-height:1.5;text-decoration:none;display:inline-flex}._button_iu0wg_18:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--button-focus-ring,var(--pharos-color-primary-600));outline:none}._button_iu0wg_18:disabled{pointer-events:none;cursor:not-allowed;opacity:.5}._primary_iu0wg_127{background-color:var(--pharos-color-neutral-900);color:var(--pharos-color-base-white);--button-focus-ring:var(--pharos-color-primary-600)}._primary_iu0wg_127:hover{background-color:var(--pharos-color-neutral-700)}._primary_iu0wg_127:active{background-color:var(--pharos-color-neutral-950)}._secondary_iu0wg_141{background-color:var(--pharos-color-base-white);color:var(--pharos-color-neutral-900);border:1px solid var(--pharos-color-neutral-500);--button-focus-ring:var(--pharos-color-primary-600)}._secondary_iu0wg_141:hover{background-color:var(--pharos-color-neutral-50)}._secondary_iu0wg_141:active{background-color:var(--pharos-color-neutral-100)}._ghost_iu0wg_161{color:var(--pharos-color-neutral-900);--button-focus-ring:var(--pharos-color-primary-600);background-color:#0000}._ghost_iu0wg_161:hover{background-color:var(--pharos-color-neutral-100)}._ghost_iu0wg_161:active{background-color:var(--pharos-color-neutral-200)}._destructive_iu0wg_175{background-color:var(--pharos-color-semantic-error-fg);color:var(--pharos-color-semantic-error-on);--button-focus-ring:var(--pharos-color-semantic-error-fg)}._destructive_iu0wg_175:hover{background-color:var(--pharos-color-semantic-error-fg-hover)}._destructive_iu0wg_175:active{background-color:var(--pharos-color-semantic-error-fg-active)}._sizeSm_iu0wg_197{height:var(--pharos-spacing-8);gap:var(--pharos-spacing-1-5);padding:0 var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm);line-height:1.42857}._sizeMd_iu0wg_205{height:var(--pharos-spacing-10);gap:var(--pharos-spacing-2);padding:0 var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm);line-height:1.42857}._sizeLg_iu0wg_213{height:var(--pharos-spacing-12);gap:var(--pharos-spacing-2);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base);line-height:1.5}._card_yxgwa_10{background-color:var(--pharos-color-base-white);border-radius:var(--pharos-radius-2xl);gap:var(--pharos-spacing-6);font-family:var(--pharos-font-family-sans);color:var(--pharos-color-neutral-900);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);border:0 solid #0000;flex-direction:column;display:flex}._default_yxgwa_42{border:1px solid var(--pharos-color-neutral-200)}._elevated_yxgwa_46{box-shadow:var(--pharos-shadow-md);border:0 solid #0000}._outlined_yxgwa_51{border:1px solid var(--pharos-color-neutral-300)}._header_yxgwa_62{gap:var(--pharos-spacing-1-5);padding:var(--pharos-spacing-6) var(--pharos-spacing-6) 0;flex-direction:column;display:flex}._title_yxgwa_69{font-size:var(--pharos-font-size-base);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.25}._description_yxgwa_77{font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);color:var(--pharos-color-neutral-500);margin:0;line-height:1.5}._content_yxgwa_85{padding:0 var(--pharos-spacing-6)}._footer_yxgwa_95{align-items:center;gap:var(--pharos-spacing-3);padding:0 var(--pharos-spacing-6) var(--pharos-spacing-6);display:flex}._root_1v9tz_14{box-sizing:border-box;width:var(--pharos-spacing-5);height:var(--pharos-spacing-5);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-sm);background-color:var(--pharos-color-base-white);color:var(--pharos-color-base-white);cursor:pointer;transition-property:background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}._root_1v9tz_14:hover:not([data-disabled]):not([data-checked]):not([data-indeterminate]){border-color:var(--pharos-color-neutral-700)}._root_1v9tz_14[data-checked],._root_1v9tz_14[data-indeterminate]{background-color:var(--pharos-color-neutral-900);border-color:var(--pharos-color-neutral-900)}._root_1v9tz_14[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._root_1v9tz_14:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._root_1v9tz_14[data-disabled]{cursor:not-allowed;opacity:.5}._indicator_1v9tz_65{color:var(--pharos-color-base-white);justify-content:center;align-items:center;display:inline-flex}._icon_1v9tz_72{width:var(--pharos-spacing-3);height:var(--pharos-spacing-3)}._iconIndeterminate_1v9tz_79,._indicator_1v9tz_65[data-indeterminate] ._iconCheck_1v9tz_83{display:none}._indicator_1v9tz_65[data-indeterminate] ._iconIndeterminate_1v9tz_79{display:block}._control_1owey_5{box-sizing:border-box;align-items:center;gap:var(--pharos-spacing-2);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;font-family:var(--pharos-font-family-sans);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);display:flex}._control_1owey_5:focus-within{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600)}._control_1owey_5[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._control_1owey_5:has([aria-invalid=true]){border-color:var(--pharos-color-semantic-error-fg)}._chips_1owey_61{gap:var(--pharos-spacing-1);padding:var(--pharos-spacing-1) var(--pharos-spacing-2);flex-wrap:wrap}._input_1owey_70{appearance:none;min-width:0;color:var(--pharos-color-neutral-900);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);background:0 0;border:none;outline:none;flex:auto;margin:0;line-height:1.25}._input_1owey_70::placeholder{color:var(--pharos-color-neutral-500);opacity:1}._input_1owey_70:disabled{cursor:not-allowed}._inputSizeSm_1owey_99{height:var(--pharos-spacing-8);padding:0 var(--pharos-spacing-3)}._inputSizeMd_1owey_104{height:var(--pharos-spacing-10);padding:0 var(--pharos-spacing-4)}._inputSizeLg_1owey_109{height:var(--pharos-spacing-12);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}._chipsInput_1owey_117{height:var(--pharos-spacing-7);padding:0 var(--pharos-spacing-1);flex:4rem}._trigger_1owey_124,._clear_1owey_125{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6);color:var(--pharos-color-neutral-500);cursor:default;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-inline-end:var(--pharos-spacing-1);padding:0;display:inline-flex}._trigger_1owey_124 svg,._clear_1owey_125 svg{width:1rem;height:1rem}._trigger_1owey_124[data-popup-open] svg{transition:transform var(--pharos-duration-fast) var(--pharos-easing-out);transform:rotate(180deg)}._chip_1owey_61{align-items:center;gap:var(--pharos-spacing-1);padding:0 var(--pharos-spacing-1) 0 var(--pharos-spacing-2);height:var(--pharos-spacing-6);border-radius:var(--pharos-radius-sm);background-color:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-900);font-size:var(--pharos-font-size-xs);display:inline-flex}._chip_1owey_61[data-highlighted]{background-color:var(--pharos-color-neutral-200)}._chipRemove_1owey_169{width:var(--pharos-spacing-4);height:var(--pharos-spacing-4);border-radius:var(--pharos-radius-sm);color:var(--pharos-color-neutral-500);cursor:default;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}._chipRemove_1owey_169:hover{color:var(--pharos-color-neutral-900)}._chipRemove_1owey_169 svg{width:.875rem;height:.875rem}._positioner_1owey_204{z-index:var(--pharos-z-index-popover,1500)}._content_1owey_193{box-sizing:border-box;width:var(--anchor-width);max-height:var(--available-height);padding:var(--pharos-spacing-1);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;overflow-y:auto}._content_1owey_193[data-starting-style],._content_1owey_193[data-ending-style]{opacity:0;transform:scale(.96)}._item_1owey_14{align-items:flex-start;gap:var(--pharos-spacing-2);padding:var(--pharos-spacing-2) var(--pharos-spacing-3);border-radius:var(--pharos-radius-sm);color:var(--pharos-color-neutral-900);cursor:default;-webkit-user-select:none;user-select:none;scroll-margin:var(--pharos-spacing-1);outline:none;display:flex;position:relative}._item_1owey_14[data-highlighted]{background-color:var(--pharos-color-neutral-100)}._item_1owey_14[data-disabled]{color:var(--pharos-color-neutral-400);pointer-events:none}._itemText_1owey_14{overflow-wrap:anywhere;white-space:normal;flex:auto;min-width:0}._itemIndicator_1owey_275{block-size:1lh;color:var(--pharos-color-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}._itemIndicator_1owey_275 svg{width:1rem;height:1rem}._empty_1owey_299{color:var(--pharos-color-neutral-500);text-align:center}._empty_1owey_299:not(:empty){padding:var(--pharos-spacing-3)}._label_1owey_309{padding:var(--pharos-spacing-2) var(--pharos-spacing-3) var(--pharos-spacing-1);font-size:var(--pharos-font-size-xs);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-600)}._separator_1owey_316{height:1px;margin:var(--pharos-spacing-1) 0;background-color:var(--pharos-color-neutral-200)}@media (pointer:coarse){._input_1owey_70{font-size:var(--pharos-font-size-base)}}._backdrop_1gqfj_20{z-index:var(--pharos-z-index-modal,1400);background-color:color-mix(in srgb, var(--pharos-color-base-black) 50%, transparent);transition:opacity var(--pharos-duration-normal) var(--pharos-easing-out);position:fixed;inset:0}._backdrop_1gqfj_20[data-starting-style],._backdrop_1gqfj_20[data-ending-style]{opacity:0}._content_1gqfj_34{transform-origin:50%;z-index:var(--pharos-z-index-modal,1400);box-sizing:border-box;width:calc(100% - 2 * var(--pharos-spacing-4));max-width:32rem;max-height:calc(100dvh - 2 * var(--pharos-spacing-6));gap:var(--pharos-spacing-4);padding:var(--pharos-spacing-6);background-color:var(--pharos-color-base-white);border-radius:var(--pharos-radius-lg);box-shadow:var(--pharos-shadow-xl);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}._content_1gqfj_34[data-starting-style],._content_1gqfj_34[data-ending-style]{opacity:0;transform:translate(-50%,-50%)scale(.96)}._header_1gqfj_77{gap:var(--pharos-spacing-1);flex-direction:column;display:flex}._title_1gqfj_83{font-size:var(--pharos-font-size-lg);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.4}._description_1gqfj_91{font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-600);margin:0;line-height:1.5}._footer_1gqfj_98{gap:var(--pharos-spacing-2);justify-content:flex-end;margin-top:auto;display:flex}._positioner_yfokk_9{z-index:var(--pharos-z-index-popover,1500)}._content_yfokk_4{box-sizing:border-box;min-width:12rem;padding:var(--pharos-spacing-1);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out)}._content_yfokk_4[data-starting-style],._content_yfokk_4[data-ending-style]{opacity:0;transform:scale(.96)}._item_yfokk_5{box-sizing:border-box;align-items:center;gap:var(--pharos-spacing-2);width:100%;padding:var(--pharos-spacing-1-5) var(--pharos-spacing-2);border-radius:var(--pharos-radius-sm);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-medium);color:var(--pharos-color-neutral-700);cursor:default;-webkit-user-select:none;user-select:none;scroll-margin:var(--pharos-spacing-1);transition-property:background-color,color;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;line-height:1.25;display:flex}._item_yfokk_5[data-highlighted]{background-color:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-900)}._item_yfokk_5[data-disabled]{color:var(--pharos-color-neutral-500);opacity:.6;pointer-events:none}._item_yfokk_5>svg{flex-shrink:0;width:1rem;height:1rem}._itemDestructive_yfokk_114{color:var(--pharos-color-semantic-error-fg)}._itemDestructive_yfokk_114[data-highlighted]{background-color:var(--pharos-color-semantic-error-bg);color:var(--pharos-color-semantic-error-fg-hover)}._separator_yfokk_6{height:1px;margin:var(--pharos-spacing-1) calc(var(--pharos-spacing-1) * -1);background-color:var(--pharos-color-neutral-200)}._label_yfokk_6{padding:var(--pharos-spacing-1-5) var(--pharos-spacing-2);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-500)}._button_ltuh2_14{appearance:none;box-sizing:border-box;border-radius:var(--pharos-radius-full);-webkit-user-select:none;user-select:none;cursor:pointer;color:inherit;font-family:var(--pharos-font-family-sans);transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);background-color:#0000;border:0 solid #0000;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}._button_ltuh2_14:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--icon-button-focus-ring,var(--pharos-color-primary-600));outline:none}._button_ltuh2_14:disabled{pointer-events:none;cursor:not-allowed;opacity:.5}._primary_ltuh2_74{background-color:var(--pharos-color-neutral-900);color:var(--pharos-color-base-white);--icon-button-focus-ring:var(--pharos-color-primary-600)}._primary_ltuh2_74:hover{background-color:var(--pharos-color-neutral-700)}._primary_ltuh2_74:active{background-color:var(--pharos-color-neutral-950)}._secondary_ltuh2_88{background-color:var(--pharos-color-base-white);color:var(--pharos-color-neutral-900);border:1px solid var(--pharos-color-neutral-500);--icon-button-focus-ring:var(--pharos-color-primary-600)}._secondary_ltuh2_88:hover{background-color:var(--pharos-color-neutral-50)}._secondary_ltuh2_88:active{background-color:var(--pharos-color-neutral-100)}._ghost_ltuh2_107{color:var(--pharos-color-neutral-900);--icon-button-focus-ring:var(--pharos-color-primary-600);background-color:#0000}._ghost_ltuh2_107:hover{background-color:var(--pharos-color-neutral-100)}._ghost_ltuh2_107:active{background-color:var(--pharos-color-neutral-200)}._destructive_ltuh2_121{background-color:var(--pharos-color-semantic-error-fg);color:var(--pharos-color-semantic-error-on);--icon-button-focus-ring:var(--pharos-color-semantic-error-fg)}._destructive_ltuh2_121:hover{background-color:var(--pharos-color-semantic-error-fg-hover)}._destructive_ltuh2_121:active{background-color:var(--pharos-color-semantic-error-fg-active)}._sizeSm_ltuh2_150{width:var(--pharos-spacing-8);height:var(--pharos-spacing-8)}._sizeSm_ltuh2_150>svg{width:var(--pharos-spacing-4);height:var(--pharos-spacing-4)}._sizeMd_ltuh2_160{width:var(--pharos-spacing-10);height:var(--pharos-spacing-10)}._sizeMd_ltuh2_160>svg{width:var(--pharos-spacing-5);height:var(--pharos-spacing-5)}._sizeLg_ltuh2_170{width:var(--pharos-spacing-12);height:var(--pharos-spacing-12)}._sizeLg_ltuh2_170>svg{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6)}@keyframes _pharos-spinner-spin_gg970_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._spinner_gg970_28{color:currentColor;vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}._icon_gg970_46{width:100%;height:100%;animation:_pharos-spinner-spin_gg970_1 var(--pharos-duration-slow,1s) linear infinite}@media (prefers-reduced-motion:reduce){._icon_gg970_46{animation-duration:4s}}._sizeSm_gg970_69{width:var(--pharos-spacing-4);height:var(--pharos-spacing-4)}._sizeMd_gg970_74{width:var(--pharos-spacing-5);height:var(--pharos-spacing-5)}._sizeLg_gg970_79{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6)}._srOnly_gg970_87{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._input_1ueoc_14{appearance:none;box-sizing:border-box;border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;color:var(--pharos-color-neutral-900);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);margin:0;line-height:1.25}._input_1ueoc_14::placeholder{color:var(--pharos-color-neutral-500);opacity:1}._input_1ueoc_14:focus-visible{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._input_1ueoc_14:disabled{cursor:not-allowed;opacity:.5}._input_1ueoc_14[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._input_1ueoc_14[aria-invalid=true]:focus-visible{border-color:var(--pharos-color-semantic-error-fg);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-semantic-error-fg)}._sizeSm_1ueoc_97{height:var(--pharos-spacing-8);padding:0 var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm)}._sizeMd_1ueoc_103{height:var(--pharos-spacing-10);padding:0 var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm)}._sizeLg_1ueoc_109{height:var(--pharos-spacing-12);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}@media (pointer:coarse){._input_1ueoc_14,._sizeSm_1ueoc_97,._sizeMd_1ueoc_103{font-size:var(--pharos-font-size-base)}}._positioner_1mqln_15{z-index:var(--pharos-z-index-popover,1500)}._content_1mqln_4{box-sizing:border-box;max-width:20rem;padding:var(--pharos-spacing-4);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none}._content_1mqln_4[data-starting-style],._content_1mqln_4[data-ending-style]{opacity:0;transform:scale(.96)}._title_1mqln_5{font-size:var(--pharos-font-size-base);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.4}._description_1mqln_5{margin:var(--pharos-spacing-1) 0 0;font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-600);line-height:1.5}._group_rsllu_18{gap:var(--pharos-spacing-2);flex-direction:column;display:flex}._item_rsllu_24{box-sizing:border-box;width:var(--pharos-spacing-5);height:var(--pharos-spacing-5);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-base-white);cursor:pointer;transition-property:background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}._item_rsllu_24:hover:not([data-disabled]):not([data-checked]){border-color:var(--pharos-color-neutral-700)}._item_rsllu_24[data-checked]{border-color:var(--pharos-color-neutral-900)}._group_rsllu_18[aria-invalid=true] ._item_rsllu_24{border-color:var(--pharos-color-semantic-error-fg)}._item_rsllu_24:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._item_rsllu_24[data-disabled]{cursor:not-allowed;opacity:.5}._indicator_rsllu_75{width:var(--pharos-spacing-2);height:var(--pharos-spacing-2);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-neutral-900);display:inline-flex}._trigger_1qe34_35{appearance:none;box-sizing:border-box;justify-content:space-between;align-items:center;gap:var(--pharos-spacing-2);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;color:var(--pharos-color-neutral-900);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);text-align:start;cursor:default;transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);margin:0;line-height:1.25;display:inline-flex}._trigger_1qe34_35:focus-visible{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._trigger_1qe34_35:disabled,._trigger_1qe34_35[data-disabled]{cursor:not-allowed;opacity:.5}._trigger_1qe34_35[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._trigger_1qe34_35[aria-invalid=true]:focus-visible{border-color:var(--pharos-color-semantic-error-fg);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-semantic-error-fg)}._sizeSm_1qe34_92{height:var(--pharos-spacing-8);padding:0 var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm)}._sizeMd_1qe34_98{height:var(--pharos-spacing-10);padding:0 var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm)}._sizeLg_1qe34_104{height:var(--pharos-spacing-12);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}._value_1qe34_113{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._value_1qe34_113[data-placeholder]{color:var(--pharos-color-neutral-500)}._icon_1qe34_127{color:var(--pharos-color-neutral-500);transition:transform var(--pharos-duration-fast) var(--pharos-easing-out);flex:none;justify-content:center;align-items:center;display:inline-flex}._icon_1qe34_127 svg{width:1rem;height:1rem}._icon_1qe34_127[data-popup-open]{transform:rotate(180deg)}._positioner_1qe34_24{z-index:var(--pharos-z-index-popover,1500)}._content_1qe34_146{box-sizing:border-box;width:var(--anchor-width);max-height:var(--available-height);padding:var(--pharos-spacing-1);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;overflow-y:auto}._content_1qe34_146[data-starting-style],._content_1qe34_146[data-ending-style]{opacity:0;transform:scale(.96)}._item_1qe34_17{align-items:flex-start;gap:var(--pharos-spacing-2);padding:var(--pharos-spacing-2) var(--pharos-spacing-3);border-radius:var(--pharos-radius-sm);color:var(--pharos-color-neutral-900);cursor:default;-webkit-user-select:none;user-select:none;scroll-margin:var(--pharos-spacing-1);outline:none;display:flex;position:relative}._item_1qe34_17[data-highlighted]{background-color:var(--pharos-color-neutral-100)}._item_1qe34_17[data-disabled]{color:var(--pharos-color-neutral-400);pointer-events:none}._itemText_1qe34_17{overflow-wrap:anywhere;white-space:normal;flex:auto;min-width:0}._itemIndicator_1qe34_231{block-size:1lh;color:var(--pharos-color-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}._itemIndicator_1qe34_231 svg{width:1rem;height:1rem}._label_1qe34_247{padding:var(--pharos-spacing-2) var(--pharos-spacing-3) var(--pharos-spacing-1);font-size:var(--pharos-font-size-xs);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-600)}._separator_1qe34_255{height:1px;margin:var(--pharos-spacing-1) 0;background-color:var(--pharos-color-neutral-200)}._separator_da90p_13{background-color:var(--pharos-color-neutral-200);border:0;flex-shrink:0;margin:0}._horizontal_da90p_29{width:100%;height:1px}._vertical_da90p_34{width:1px;height:100%}._backdrop_titsa_18{z-index:var(--pharos-z-index-modal,1400);background-color:color-mix(in srgb, var(--pharos-color-base-black) 50%, transparent);transition:opacity var(--pharos-duration-normal) var(--pharos-easing-out);position:fixed;inset:0}._backdrop_titsa_18[data-starting-style],._backdrop_titsa_18[data-ending-style]{opacity:0}._content_titsa_34{z-index:var(--pharos-z-index-modal,1400);box-sizing:border-box;gap:var(--pharos-spacing-4);padding:var(--pharos-spacing-6);background-color:var(--pharos-color-base-white);box-shadow:var(--pharos-shadow-xl);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transition:transform var(--pharos-duration-normal) var(--pharos-easing-out);outline:none;flex-direction:column;display:flex;position:fixed;overflow-y:auto}._sideRight_titsa_57{border-left:1px solid var(--pharos-color-neutral-200);width:min(24rem,100vw);height:100dvh;top:0;bottom:0;right:0}._sideRight_titsa_57[data-starting-style],._sideRight_titsa_57[data-ending-style]{transform:translate(100%)}._sideLeft_titsa_70{border-right:1px solid var(--pharos-color-neutral-200);width:min(24rem,100vw);height:100dvh;top:0;bottom:0;left:0}._sideLeft_titsa_70[data-starting-style],._sideLeft_titsa_70[data-ending-style]{transform:translate(-100%)}._sideTop_titsa_83{border-bottom:1px solid var(--pharos-color-neutral-200);width:100vw;max-height:100dvh;top:0;left:0;right:0}._sideTop_titsa_83[data-starting-style],._sideTop_titsa_83[data-ending-style]{transform:translateY(-100%)}._sideBottom_titsa_96{border-top:1px solid var(--pharos-color-neutral-200);width:100vw;max-height:100dvh;bottom:0;left:0;right:0}._sideBottom_titsa_96[data-starting-style],._sideBottom_titsa_96[data-ending-style]{transform:translateY(100%)}._header_titsa_110{gap:var(--pharos-spacing-1);flex-direction:column;display:flex}._title_titsa_116{font-size:var(--pharos-font-size-lg);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.4}._description_titsa_124{font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-600);margin:0;line-height:1.5}._footer_titsa_131{gap:var(--pharos-spacing-2);justify-content:flex-end;margin-top:auto;display:flex}._root_5v2er_17{box-sizing:border-box;width:var(--pharos-spacing-10);height:var(--pharos-spacing-6);padding:var(--pharos-spacing-1);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-neutral-300);cursor:pointer;transition-property:background-color,box-shadow;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);border:none;flex-shrink:0;align-items:center;display:inline-flex}._root_5v2er_17:hover:not([data-disabled]):not([data-checked]){background-color:var(--pharos-color-neutral-400)}._root_5v2er_17[data-checked]{background-color:var(--pharos-color-neutral-900)}._root_5v2er_17[data-checked]:hover:not([data-disabled]){background-color:var(--pharos-color-neutral-700)}._root_5v2er_17[aria-invalid=true]{box-shadow:inset 0 0 0 1px var(--pharos-color-semantic-error-fg)}._root_5v2er_17:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._root_5v2er_17[data-disabled]{cursor:not-allowed;opacity:.5}._thumb_5v2er_72{box-sizing:border-box;width:var(--pharos-spacing-4);height:var(--pharos-spacing-4);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-base-white);transition-property:transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out)}._root_5v2er_17[data-checked] ._thumb_5v2er_72{transform:translateX(var(--pharos-spacing-4))}._textarea_145hb_21{appearance:none;box-sizing:border-box;border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;color:var(--pharos-color-neutral-900);resize:vertical;font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);margin:0;line-height:1.5}._textarea_145hb_21::placeholder{color:var(--pharos-color-neutral-500);opacity:1}._textarea_145hb_21:focus-visible{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._textarea_145hb_21:disabled{cursor:not-allowed;opacity:.5;resize:none}._textarea_145hb_21[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._textarea_145hb_21[aria-invalid=true]:focus-visible{border-color:var(--pharos-color-semantic-error-fg);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-semantic-error-fg)}._sizeSm_145hb_113{min-height:var(--pharos-spacing-16);padding:var(--pharos-spacing-2) var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm)}._sizeMd_145hb_119{min-height:var(--pharos-spacing-20);padding:var(--pharos-spacing-2-5) var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm)}._sizeLg_145hb_125{min-height:var(--pharos-spacing-24);padding:var(--pharos-spacing-3) var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}@media (pointer:coarse){._textarea_145hb_21,._sizeSm_145hb_113,._sizeMd_145hb_119{font-size:var(--pharos-font-size-base)}}
1
+ ._root_1xx27_21{box-sizing:border-box;background-color:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-700);font-family:var(--pharos-font-family-sans);-webkit-user-select:none;user-select:none;--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -1);flex-shrink:0;justify-content:center;align-items:center;font-weight:500;line-height:1;display:inline-flex;position:relative;overflow:hidden}._shapeCircle_1xx27_63{border-radius:var(--pharos-radius-full)}._shapeSquare_1xx27_67{border-radius:var(--pharos-radius-md)}._sizeSm_1xx27_86{width:var(--pharos-spacing-8);height:var(--pharos-spacing-8);--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -.75);font-size:.75rem}._sizeMd_1xx27_93{width:var(--pharos-spacing-10);height:var(--pharos-spacing-10);--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -1);font-size:.875rem}._sizeLg_1xx27_100{width:var(--pharos-spacing-12);height:var(--pharos-spacing-12);--pharos-avatar-overlap:calc(var(--pharos-spacing-2) * -1.25);font-size:1rem}._image_1xx27_118{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block;position:absolute;inset:0}._fallback_1xx27_134{text-align:center;width:100%;height:100%;font:inherit;color:inherit;justify-content:center;align-items:center;display:inline-flex}._sizeSm_1xx27_86 ._fallback_1xx27_134>svg{width:var(--pharos-spacing-5);height:var(--pharos-spacing-5)}._sizeMd_1xx27_93 ._fallback_1xx27_134>svg{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6)}._sizeLg_1xx27_100 ._fallback_1xx27_134>svg{width:var(--pharos-spacing-7);height:var(--pharos-spacing-7)}._group_1xx27_175{align-items:center;display:inline-flex}._group_1xx27_175>._root_1xx27_21{box-shadow:0 0 0 2px var(--pharos-avatar-group-ring,var(--pharos-color-base-white));position:relative}._group_1xx27_175>._root_1xx27_21+._root_1xx27_21{margin-left:var(--pharos-avatar-overlap)}._badge_zrawy_5{align-items:center;gap:var(--pharos-spacing-1);padding:0 var(--pharos-spacing-2);height:var(--pharos-spacing-5);border-radius:var(--pharos-radius-full);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-xs);font-weight:var(--pharos-font-weight-medium);white-space:nowrap;text-box-trim:trim-both;text-box-edge:cap alphabetic;border:1px solid #0000;width:fit-content;line-height:1;display:inline-flex}._badge_zrawy_5>svg{pointer-events:none;flex:none;width:.75em;height:.75em}._default_zrawy_30{background:var(--pharos-color-neutral-900);color:var(--pharos-color-base-white)}._secondary_zrawy_35{background:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-900)}._destructive_zrawy_40{background:var(--pharos-color-semantic-error-fg);color:var(--pharos-color-semantic-error-on)}._outline_zrawy_45{color:var(--pharos-color-neutral-900);border-color:var(--pharos-color-neutral-500);background:0 0}._success_zrawy_55{background:var(--pharos-color-semantic-success-fg);color:var(--pharos-color-semantic-success-on)}._warning_zrawy_60{background:var(--pharos-color-semantic-warning-fg);color:var(--pharos-color-semantic-warning-on)}._info_zrawy_65{background:var(--pharos-color-semantic-info-fg);color:var(--pharos-color-semantic-info-on)}._button_iu0wg_18{appearance:none;box-sizing:border-box;border-radius:var(--pharos-radius-full);white-space:nowrap;text-box-trim:trim-both;text-box-edge:cap alphabetic;font-family:var(--pharos-font-family-sans);font-style:normal;font-weight:var(--pharos-font-weight-medium);font-variant:normal;font-kerning:auto;font-optical-sizing:auto;font-size-adjust:none;font-feature-settings:normal;font-variation-settings:normal;letter-spacing:normal;text-transform:none;font-stretch:100%;font-size:var(--pharos-font-size-sm);-webkit-user-select:none;user-select:none;cursor:pointer;color:inherit;transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);background-color:#0000;border:0 solid #0000;justify-content:center;align-items:center;margin:0;padding-top:0;padding-bottom:0;line-height:1.5;text-decoration:none;display:inline-flex}._button_iu0wg_18:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--button-focus-ring,var(--pharos-color-primary-600));outline:none}._button_iu0wg_18:disabled{pointer-events:none;cursor:not-allowed;opacity:.5}._primary_iu0wg_127{background-color:var(--pharos-color-neutral-900);color:var(--pharos-color-base-white);--button-focus-ring:var(--pharos-color-primary-600)}._primary_iu0wg_127:hover{background-color:var(--pharos-color-neutral-700)}._primary_iu0wg_127:active{background-color:var(--pharos-color-neutral-950)}._secondary_iu0wg_141{background-color:var(--pharos-color-base-white);color:var(--pharos-color-neutral-900);border:1px solid var(--pharos-color-neutral-500);--button-focus-ring:var(--pharos-color-primary-600)}._secondary_iu0wg_141:hover{background-color:var(--pharos-color-neutral-50)}._secondary_iu0wg_141:active{background-color:var(--pharos-color-neutral-100)}._ghost_iu0wg_161{color:var(--pharos-color-neutral-900);--button-focus-ring:var(--pharos-color-primary-600);background-color:#0000}._ghost_iu0wg_161:hover{background-color:var(--pharos-color-neutral-100)}._ghost_iu0wg_161:active{background-color:var(--pharos-color-neutral-200)}._destructive_iu0wg_175{background-color:var(--pharos-color-semantic-error-fg);color:var(--pharos-color-semantic-error-on);--button-focus-ring:var(--pharos-color-semantic-error-fg)}._destructive_iu0wg_175:hover{background-color:var(--pharos-color-semantic-error-fg-hover)}._destructive_iu0wg_175:active{background-color:var(--pharos-color-semantic-error-fg-active)}._sizeSm_iu0wg_197{height:var(--pharos-spacing-8);gap:var(--pharos-spacing-1-5);padding:0 var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm);line-height:1.42857}._sizeMd_iu0wg_205{height:var(--pharos-spacing-10);gap:var(--pharos-spacing-2);padding:0 var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm);line-height:1.42857}._sizeLg_iu0wg_213{height:var(--pharos-spacing-12);gap:var(--pharos-spacing-2);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base);line-height:1.5}._card_yxgwa_10{background-color:var(--pharos-color-base-white);border-radius:var(--pharos-radius-2xl);gap:var(--pharos-spacing-6);font-family:var(--pharos-font-family-sans);color:var(--pharos-color-neutral-900);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);border:0 solid #0000;flex-direction:column;display:flex}._default_yxgwa_42{border:1px solid var(--pharos-color-neutral-200)}._elevated_yxgwa_46{box-shadow:var(--pharos-shadow-md);border:0 solid #0000}._outlined_yxgwa_51{border:1px solid var(--pharos-color-neutral-300)}._header_yxgwa_62{gap:var(--pharos-spacing-1-5);padding:var(--pharos-spacing-6) var(--pharos-spacing-6) 0;flex-direction:column;display:flex}._title_yxgwa_69{font-size:var(--pharos-font-size-base);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.25}._description_yxgwa_77{font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);color:var(--pharos-color-neutral-500);margin:0;line-height:1.5}._content_yxgwa_85{padding:0 var(--pharos-spacing-6)}._footer_yxgwa_95{align-items:center;gap:var(--pharos-spacing-3);padding:0 var(--pharos-spacing-6) var(--pharos-spacing-6);display:flex}._root_1v9tz_14{box-sizing:border-box;width:var(--pharos-spacing-5);height:var(--pharos-spacing-5);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-sm);background-color:var(--pharos-color-base-white);color:var(--pharos-color-base-white);cursor:pointer;transition-property:background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}._root_1v9tz_14:hover:not([data-disabled]):not([data-checked]):not([data-indeterminate]){border-color:var(--pharos-color-neutral-700)}._root_1v9tz_14[data-checked],._root_1v9tz_14[data-indeterminate]{background-color:var(--pharos-color-neutral-900);border-color:var(--pharos-color-neutral-900)}._root_1v9tz_14[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._root_1v9tz_14:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._root_1v9tz_14[data-disabled]{cursor:not-allowed;opacity:.5}._indicator_1v9tz_65{color:var(--pharos-color-base-white);justify-content:center;align-items:center;display:inline-flex}._icon_1v9tz_72{width:var(--pharos-spacing-3);height:var(--pharos-spacing-3)}._iconIndeterminate_1v9tz_79,._indicator_1v9tz_65[data-indeterminate] ._iconCheck_1v9tz_83{display:none}._indicator_1v9tz_65[data-indeterminate] ._iconIndeterminate_1v9tz_79{display:block}._control_1owey_5{box-sizing:border-box;align-items:center;gap:var(--pharos-spacing-2);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;font-family:var(--pharos-font-family-sans);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);display:flex}._control_1owey_5:focus-within{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600)}._control_1owey_5[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._control_1owey_5:has([aria-invalid=true]){border-color:var(--pharos-color-semantic-error-fg)}._chips_1owey_61{gap:var(--pharos-spacing-1);padding:var(--pharos-spacing-1) var(--pharos-spacing-2);flex-wrap:wrap}._input_1owey_70{appearance:none;min-width:0;color:var(--pharos-color-neutral-900);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);background:0 0;border:none;outline:none;flex:auto;margin:0;line-height:1.25}._input_1owey_70::placeholder{color:var(--pharos-color-neutral-500);opacity:1}._input_1owey_70:disabled{cursor:not-allowed}._inputSizeSm_1owey_99{height:var(--pharos-spacing-8);padding:0 var(--pharos-spacing-3)}._inputSizeMd_1owey_104{height:var(--pharos-spacing-10);padding:0 var(--pharos-spacing-4)}._inputSizeLg_1owey_109{height:var(--pharos-spacing-12);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}._chipsInput_1owey_117{height:var(--pharos-spacing-7);padding:0 var(--pharos-spacing-1);flex:4rem}._trigger_1owey_124,._clear_1owey_125{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6);color:var(--pharos-color-neutral-500);cursor:default;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-inline-end:var(--pharos-spacing-1);padding:0;display:inline-flex}._trigger_1owey_124 svg,._clear_1owey_125 svg{width:1rem;height:1rem}._trigger_1owey_124[data-popup-open] svg{transition:transform var(--pharos-duration-fast) var(--pharos-easing-out);transform:rotate(180deg)}._chip_1owey_61{align-items:center;gap:var(--pharos-spacing-1);padding:0 var(--pharos-spacing-1) 0 var(--pharos-spacing-2);height:var(--pharos-spacing-6);border-radius:var(--pharos-radius-sm);background-color:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-900);font-size:var(--pharos-font-size-xs);display:inline-flex}._chip_1owey_61[data-highlighted]{background-color:var(--pharos-color-neutral-200)}._chipRemove_1owey_169{width:var(--pharos-spacing-4);height:var(--pharos-spacing-4);border-radius:var(--pharos-radius-sm);color:var(--pharos-color-neutral-500);cursor:default;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}._chipRemove_1owey_169:hover{color:var(--pharos-color-neutral-900)}._chipRemove_1owey_169 svg{width:.875rem;height:.875rem}._positioner_1owey_204{z-index:var(--pharos-z-index-popover,1500)}._content_1owey_193{box-sizing:border-box;width:var(--anchor-width);max-height:var(--available-height);padding:var(--pharos-spacing-1);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;overflow-y:auto}._content_1owey_193[data-starting-style],._content_1owey_193[data-ending-style]{opacity:0;transform:scale(.96)}._item_1owey_14{align-items:flex-start;gap:var(--pharos-spacing-2);padding:var(--pharos-spacing-2) var(--pharos-spacing-3);border-radius:var(--pharos-radius-sm);color:var(--pharos-color-neutral-900);cursor:default;-webkit-user-select:none;user-select:none;scroll-margin:var(--pharos-spacing-1);outline:none;display:flex;position:relative}._item_1owey_14[data-highlighted]{background-color:var(--pharos-color-neutral-100)}._item_1owey_14[data-disabled]{color:var(--pharos-color-neutral-400);pointer-events:none}._itemText_1owey_14{overflow-wrap:anywhere;white-space:normal;flex:auto;min-width:0}._itemIndicator_1owey_275{block-size:1lh;color:var(--pharos-color-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}._itemIndicator_1owey_275 svg{width:1rem;height:1rem}._empty_1owey_299{color:var(--pharos-color-neutral-500);text-align:center}._empty_1owey_299:not(:empty){padding:var(--pharos-spacing-3)}._label_1owey_309{padding:var(--pharos-spacing-2) var(--pharos-spacing-3) var(--pharos-spacing-1);font-size:var(--pharos-font-size-xs);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-600)}._separator_1owey_316{height:1px;margin:var(--pharos-spacing-1) 0;background-color:var(--pharos-color-neutral-200)}@media (pointer:coarse){._input_1owey_70{font-size:var(--pharos-font-size-base)}}._backdrop_1gqfj_20{z-index:var(--pharos-z-index-modal,1400);background-color:color-mix(in srgb, var(--pharos-color-base-black) 50%, transparent);transition:opacity var(--pharos-duration-normal) var(--pharos-easing-out);position:fixed;inset:0}._backdrop_1gqfj_20[data-starting-style],._backdrop_1gqfj_20[data-ending-style]{opacity:0}._content_1gqfj_34{transform-origin:50%;z-index:var(--pharos-z-index-modal,1400);box-sizing:border-box;width:calc(100% - 2 * var(--pharos-spacing-4));max-width:32rem;max-height:calc(100dvh - 2 * var(--pharos-spacing-6));gap:var(--pharos-spacing-4);padding:var(--pharos-spacing-6);background-color:var(--pharos-color-base-white);border-radius:var(--pharos-radius-lg);box-shadow:var(--pharos-shadow-xl);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}._content_1gqfj_34[data-starting-style],._content_1gqfj_34[data-ending-style]{opacity:0;transform:translate(-50%,-50%)scale(.96)}._header_1gqfj_77{gap:var(--pharos-spacing-1);flex-direction:column;display:flex}._title_1gqfj_83{font-size:var(--pharos-font-size-lg);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.4}._description_1gqfj_91{font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-600);margin:0;line-height:1.5}._footer_1gqfj_98{gap:var(--pharos-spacing-2);justify-content:flex-end;margin-top:auto;display:flex}._positioner_yfokk_9{z-index:var(--pharos-z-index-popover,1500)}._content_yfokk_4{box-sizing:border-box;min-width:12rem;padding:var(--pharos-spacing-1);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out)}._content_yfokk_4[data-starting-style],._content_yfokk_4[data-ending-style]{opacity:0;transform:scale(.96)}._item_yfokk_5{box-sizing:border-box;align-items:center;gap:var(--pharos-spacing-2);width:100%;padding:var(--pharos-spacing-1-5) var(--pharos-spacing-2);border-radius:var(--pharos-radius-sm);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-medium);color:var(--pharos-color-neutral-700);cursor:default;-webkit-user-select:none;user-select:none;scroll-margin:var(--pharos-spacing-1);transition-property:background-color,color;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;line-height:1.25;display:flex}._item_yfokk_5[data-highlighted]{background-color:var(--pharos-color-neutral-100);color:var(--pharos-color-neutral-900)}._item_yfokk_5[data-disabled]{color:var(--pharos-color-neutral-500);opacity:.6;pointer-events:none}._item_yfokk_5>svg{flex-shrink:0;width:1rem;height:1rem}._itemDestructive_yfokk_114{color:var(--pharos-color-semantic-error-fg)}._itemDestructive_yfokk_114[data-highlighted]{background-color:var(--pharos-color-semantic-error-bg);color:var(--pharos-color-semantic-error-fg-hover)}._separator_yfokk_6{height:1px;margin:var(--pharos-spacing-1) calc(var(--pharos-spacing-1) * -1);background-color:var(--pharos-color-neutral-200)}._label_yfokk_6{padding:var(--pharos-spacing-1-5) var(--pharos-spacing-2);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-500)}._button_ltuh2_14{appearance:none;box-sizing:border-box;border-radius:var(--pharos-radius-full);-webkit-user-select:none;user-select:none;cursor:pointer;color:inherit;font-family:var(--pharos-font-family-sans);transition-property:color,background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);background-color:#0000;border:0 solid #0000;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}._button_ltuh2_14:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--icon-button-focus-ring,var(--pharos-color-primary-600));outline:none}._button_ltuh2_14:disabled{pointer-events:none;cursor:not-allowed;opacity:.5}._primary_ltuh2_74{background-color:var(--pharos-color-neutral-900);color:var(--pharos-color-base-white);--icon-button-focus-ring:var(--pharos-color-primary-600)}._primary_ltuh2_74:hover{background-color:var(--pharos-color-neutral-700)}._primary_ltuh2_74:active{background-color:var(--pharos-color-neutral-950)}._secondary_ltuh2_88{background-color:var(--pharos-color-base-white);color:var(--pharos-color-neutral-900);border:1px solid var(--pharos-color-neutral-500);--icon-button-focus-ring:var(--pharos-color-primary-600)}._secondary_ltuh2_88:hover{background-color:var(--pharos-color-neutral-50)}._secondary_ltuh2_88:active{background-color:var(--pharos-color-neutral-100)}._ghost_ltuh2_107{color:var(--pharos-color-neutral-900);--icon-button-focus-ring:var(--pharos-color-primary-600);background-color:#0000}._ghost_ltuh2_107:hover{background-color:var(--pharos-color-neutral-100)}._ghost_ltuh2_107:active{background-color:var(--pharos-color-neutral-200)}._destructive_ltuh2_121{background-color:var(--pharos-color-semantic-error-fg);color:var(--pharos-color-semantic-error-on);--icon-button-focus-ring:var(--pharos-color-semantic-error-fg)}._destructive_ltuh2_121:hover{background-color:var(--pharos-color-semantic-error-fg-hover)}._destructive_ltuh2_121:active{background-color:var(--pharos-color-semantic-error-fg-active)}._sizeSm_ltuh2_150{width:var(--pharos-spacing-8);height:var(--pharos-spacing-8)}._sizeSm_ltuh2_150>svg{width:var(--pharos-spacing-4);height:var(--pharos-spacing-4)}._sizeMd_ltuh2_160{width:var(--pharos-spacing-10);height:var(--pharos-spacing-10)}._sizeMd_ltuh2_160>svg{width:var(--pharos-spacing-5);height:var(--pharos-spacing-5)}._sizeLg_ltuh2_170{width:var(--pharos-spacing-12);height:var(--pharos-spacing-12)}._sizeLg_ltuh2_170>svg{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6)}@keyframes _pharos-spinner-spin_gg970_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._spinner_gg970_28{color:currentColor;vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}._icon_gg970_46{width:100%;height:100%;animation:_pharos-spinner-spin_gg970_1 var(--pharos-duration-slow,1s) linear infinite}@media (prefers-reduced-motion:reduce){._icon_gg970_46{animation-duration:4s}}._sizeSm_gg970_69{width:var(--pharos-spacing-4);height:var(--pharos-spacing-4)}._sizeMd_gg970_74{width:var(--pharos-spacing-5);height:var(--pharos-spacing-5)}._sizeLg_gg970_79{width:var(--pharos-spacing-6);height:var(--pharos-spacing-6)}._srOnly_gg970_87{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._input_1ueoc_14{appearance:none;box-sizing:border-box;border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;color:var(--pharos-color-neutral-900);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);margin:0;line-height:1.25}._input_1ueoc_14::placeholder{color:var(--pharos-color-neutral-500);opacity:1}._input_1ueoc_14:focus-visible{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._input_1ueoc_14:disabled{cursor:not-allowed;opacity:.5}._input_1ueoc_14[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._input_1ueoc_14[aria-invalid=true]:focus-visible{border-color:var(--pharos-color-semantic-error-fg);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-semantic-error-fg)}._sizeSm_1ueoc_97{height:var(--pharos-spacing-8);padding:0 var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm)}._sizeMd_1ueoc_103{height:var(--pharos-spacing-10);padding:0 var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm)}._sizeLg_1ueoc_109{height:var(--pharos-spacing-12);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}@media (pointer:coarse){._input_1ueoc_14,._sizeSm_1ueoc_97,._sizeMd_1ueoc_103{font-size:var(--pharos-font-size-base)}}._positioner_1mqln_15{z-index:var(--pharos-z-index-popover,1500)}._content_1mqln_4{box-sizing:border-box;max-width:20rem;padding:var(--pharos-spacing-4);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none}._content_1mqln_4[data-starting-style],._content_1mqln_4[data-ending-style]{opacity:0;transform:scale(.96)}._title_1mqln_5{font-size:var(--pharos-font-size-base);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.4}._description_1mqln_5{margin:var(--pharos-spacing-1) 0 0;font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-600);line-height:1.5}._group_rsllu_18{gap:var(--pharos-spacing-2);flex-direction:column;display:flex}._item_rsllu_24{box-sizing:border-box;width:var(--pharos-spacing-5);height:var(--pharos-spacing-5);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-base-white);cursor:pointer;transition-property:background-color,border-color,box-shadow;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}._item_rsllu_24:hover:not([data-disabled]):not([data-checked]){border-color:var(--pharos-color-neutral-700)}._item_rsllu_24[data-checked]{border-color:var(--pharos-color-neutral-900)}._group_rsllu_18[aria-invalid=true] ._item_rsllu_24{border-color:var(--pharos-color-semantic-error-fg)}._item_rsllu_24:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._item_rsllu_24[data-disabled]{cursor:not-allowed;opacity:.5}._indicator_rsllu_75{width:var(--pharos-spacing-2);height:var(--pharos-spacing-2);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-neutral-900);display:inline-flex}._trigger_1qe34_35{appearance:none;box-sizing:border-box;justify-content:space-between;align-items:center;gap:var(--pharos-spacing-2);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;color:var(--pharos-color-neutral-900);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);text-align:start;cursor:default;transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);margin:0;line-height:1.25;display:inline-flex}._trigger_1qe34_35:focus-visible{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._trigger_1qe34_35:disabled,._trigger_1qe34_35[data-disabled]{cursor:not-allowed;opacity:.5}._trigger_1qe34_35[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._trigger_1qe34_35[aria-invalid=true]:focus-visible{border-color:var(--pharos-color-semantic-error-fg);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-semantic-error-fg)}._sizeSm_1qe34_92{height:var(--pharos-spacing-8);padding:0 var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm)}._sizeMd_1qe34_98{height:var(--pharos-spacing-10);padding:0 var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm)}._sizeLg_1qe34_104{height:var(--pharos-spacing-12);padding:0 var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}._value_1qe34_113{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._value_1qe34_113[data-placeholder]{color:var(--pharos-color-neutral-500)}._icon_1qe34_127{color:var(--pharos-color-neutral-500);transition:transform var(--pharos-duration-fast) var(--pharos-easing-out);flex:none;justify-content:center;align-items:center;display:inline-flex}._icon_1qe34_127 svg{width:1rem;height:1rem}._icon_1qe34_127[data-popup-open]{transform:rotate(180deg)}._positioner_1qe34_24{z-index:var(--pharos-z-index-popover,1500)}._content_1qe34_146{box-sizing:border-box;width:var(--anchor-width);max-height:var(--available-height);padding:var(--pharos-spacing-1);background-color:var(--pharos-color-base-white);border:1px solid var(--pharos-color-neutral-200);border-radius:var(--pharos-radius-md);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform-origin:var(--transform-origin);transition-property:opacity,transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);outline:none;overflow-y:auto}._content_1qe34_146[data-starting-style],._content_1qe34_146[data-ending-style]{opacity:0;transform:scale(.96)}._item_1qe34_17{align-items:flex-start;gap:var(--pharos-spacing-2);padding:var(--pharos-spacing-2) var(--pharos-spacing-3);border-radius:var(--pharos-radius-sm);color:var(--pharos-color-neutral-900);cursor:default;-webkit-user-select:none;user-select:none;scroll-margin:var(--pharos-spacing-1);outline:none;display:flex;position:relative}._item_1qe34_17[data-highlighted]{background-color:var(--pharos-color-neutral-100)}._item_1qe34_17[data-disabled]{color:var(--pharos-color-neutral-400);pointer-events:none}._itemText_1qe34_17{overflow-wrap:anywhere;white-space:normal;flex:auto;min-width:0}._itemIndicator_1qe34_231{block-size:1lh;color:var(--pharos-color-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}._itemIndicator_1qe34_231 svg{width:1rem;height:1rem}._label_1qe34_247{padding:var(--pharos-spacing-2) var(--pharos-spacing-3) var(--pharos-spacing-1);font-size:var(--pharos-font-size-xs);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-600)}._separator_1qe34_255{height:1px;margin:var(--pharos-spacing-1) 0;background-color:var(--pharos-color-neutral-200)}._separator_da90p_13{background-color:var(--pharos-color-neutral-200);border:0;flex-shrink:0;margin:0}._horizontal_da90p_29{width:100%;height:1px}._vertical_da90p_34{width:1px;height:100%}._backdrop_titsa_18{z-index:var(--pharos-z-index-modal,1400);background-color:color-mix(in srgb, var(--pharos-color-base-black) 50%, transparent);transition:opacity var(--pharos-duration-normal) var(--pharos-easing-out);position:fixed;inset:0}._backdrop_titsa_18[data-starting-style],._backdrop_titsa_18[data-ending-style]{opacity:0}._content_titsa_34{z-index:var(--pharos-z-index-modal,1400);box-sizing:border-box;gap:var(--pharos-spacing-4);padding:var(--pharos-spacing-6);background-color:var(--pharos-color-base-white);box-shadow:var(--pharos-shadow-xl);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transition:transform var(--pharos-duration-normal) var(--pharos-easing-out);outline:none;flex-direction:column;display:flex;position:fixed;overflow-y:auto}._sideRight_titsa_57{border-left:1px solid var(--pharos-color-neutral-200);width:min(24rem,100vw);height:100dvh;top:0;bottom:0;right:0}._sideRight_titsa_57[data-starting-style],._sideRight_titsa_57[data-ending-style]{transform:translate(100%)}._sideLeft_titsa_70{border-right:1px solid var(--pharos-color-neutral-200);width:min(24rem,100vw);height:100dvh;top:0;bottom:0;left:0}._sideLeft_titsa_70[data-starting-style],._sideLeft_titsa_70[data-ending-style]{transform:translate(-100%)}._sideTop_titsa_83{border-bottom:1px solid var(--pharos-color-neutral-200);width:100vw;max-height:100dvh;top:0;left:0;right:0}._sideTop_titsa_83[data-starting-style],._sideTop_titsa_83[data-ending-style]{transform:translateY(-100%)}._sideBottom_titsa_96{border-top:1px solid var(--pharos-color-neutral-200);width:100vw;max-height:100dvh;bottom:0;left:0;right:0}._sideBottom_titsa_96[data-starting-style],._sideBottom_titsa_96[data-ending-style]{transform:translateY(100%)}._header_titsa_110{gap:var(--pharos-spacing-1);flex-direction:column;display:flex}._title_titsa_116{font-size:var(--pharos-font-size-lg);font-weight:var(--pharos-font-weight-semibold);color:var(--pharos-color-neutral-900);margin:0;line-height:1.4}._description_titsa_124{font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-600);margin:0;line-height:1.5}._footer_titsa_131{gap:var(--pharos-spacing-2);justify-content:flex-end;margin-top:auto;display:flex}._root_5v2er_17{box-sizing:border-box;width:var(--pharos-spacing-10);height:var(--pharos-spacing-6);padding:var(--pharos-spacing-1);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-neutral-300);cursor:pointer;transition-property:background-color,box-shadow;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out);border:none;flex-shrink:0;align-items:center;display:inline-flex}._root_5v2er_17:hover:not([data-disabled]):not([data-checked]){background-color:var(--pharos-color-neutral-400)}._root_5v2er_17[data-checked]{background-color:var(--pharos-color-neutral-900)}._root_5v2er_17[data-checked]:hover:not([data-disabled]){background-color:var(--pharos-color-neutral-700)}._root_5v2er_17[aria-invalid=true]{box-shadow:inset 0 0 0 1px var(--pharos-color-semantic-error-fg)}._root_5v2er_17:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._root_5v2er_17[data-disabled]{cursor:not-allowed;opacity:.5}._thumb_5v2er_72{box-sizing:border-box;width:var(--pharos-spacing-4);height:var(--pharos-spacing-4);border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-full);background-color:var(--pharos-color-base-white);transition-property:transform;transition-duration:var(--pharos-duration-fast);transition-timing-function:var(--pharos-easing-out)}._root_5v2er_17[data-checked] ._thumb_5v2er_72{transform:translateX(var(--pharos-spacing-4))}._textarea_145hb_21{appearance:none;box-sizing:border-box;border:1px solid var(--pharos-color-neutral-500);border-radius:var(--pharos-radius-md);background-color:var(--pharos-color-base-white);width:100%;color:var(--pharos-color-neutral-900);resize:vertical;font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);font-weight:var(--pharos-font-weight-regular);transition-property:border-color,box-shadow;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);margin:0;line-height:1.5}._textarea_145hb_21::placeholder{color:var(--pharos-color-neutral-500);opacity:1}._textarea_145hb_21:focus-visible{border-color:var(--pharos-color-primary-600);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600);outline:none}._textarea_145hb_21:disabled{cursor:not-allowed;opacity:.5;resize:none}._textarea_145hb_21[aria-invalid=true]{border-color:var(--pharos-color-semantic-error-fg)}._textarea_145hb_21[aria-invalid=true]:focus-visible{border-color:var(--pharos-color-semantic-error-fg);box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-semantic-error-fg)}._sizeSm_145hb_113{min-height:var(--pharos-spacing-16);padding:var(--pharos-spacing-2) var(--pharos-spacing-3);font-size:var(--pharos-font-size-sm)}._sizeMd_145hb_119{min-height:var(--pharos-spacing-20);padding:var(--pharos-spacing-2-5) var(--pharos-spacing-4);font-size:var(--pharos-font-size-sm)}._sizeLg_145hb_125{min-height:var(--pharos-spacing-24);padding:var(--pharos-spacing-3) var(--pharos-spacing-6);font-size:var(--pharos-font-size-base)}@media (pointer:coarse){._textarea_145hb_21,._sizeSm_145hb_113,._sizeMd_145hb_119{font-size:var(--pharos-font-size-base)}}._viewport_b05po_18{--pharos-toast-edge-gap:var(--pharos-spacing-4);z-index:var(--pharos-z-index-toast,1700);box-sizing:border-box;inline-size:min(22.5rem, calc(100% - 2 * var(--pharos-toast-edge-gap)));gap:var(--pharos-spacing-2);pointer-events:none;outline:none;flex-direction:column;display:flex;position:fixed}._viewport_b05po_18[data-pharos-position^=top]{inset-block-start:var(--pharos-toast-offset,var(--pharos-toast-edge-gap))}._viewport_b05po_18[data-pharos-position^=bottom]{flex-direction:column-reverse;inset-block-end:var(--pharos-toast-offset,var(--pharos-toast-edge-gap))}._viewport_b05po_18[data-pharos-position$=start]{inset-inline-start:var(--pharos-toast-edge-gap)}._viewport_b05po_18[data-pharos-position$=end]{inset-inline-end:var(--pharos-toast-edge-gap)}._viewport_b05po_18[data-pharos-position$=center]{margin-inline:auto;inset-inline:0}._toast_b05po_61{--pharos-toast-enter-shift:calc(-1 * var(--pharos-spacing-4));box-sizing:border-box;pointer-events:auto;background-color:var(--pharos-color-surface-card,var(--pharos-color-base-white));border:1px solid var(--pharos-color-border-subtle,var(--pharos-color-neutral-200));border-radius:var(--pharos-radius-lg);box-shadow:var(--pharos-shadow-lg);font-family:var(--pharos-font-family-sans);font-size:var(--pharos-font-size-sm);color:var(--pharos-color-neutral-900);transform:translate(var(--toast-swipe-movement-x,0), var(--toast-swipe-movement-y,0));transition-property:opacity,transform;transition-duration:var(--pharos-duration-normal);transition-timing-function:var(--pharos-easing-out);line-height:1.43}._viewport_b05po_18[data-pharos-position^=bottom] ._toast_b05po_61{--pharos-toast-enter-shift:var(--pharos-spacing-4)}._toast_b05po_61[data-starting-style],._toast_b05po_61[data-ending-style]{opacity:0;transform:translateY(var(--pharos-toast-enter-shift))}._toast_b05po_61[data-ending-style][data-swipe-direction=left]{transform:translateX(calc(var(--toast-swipe-movement-x,0) - 100%))}._toast_b05po_61[data-ending-style][data-swipe-direction=right]{transform:translateX(calc(var(--toast-swipe-movement-x,0) + 100%))}._toast_b05po_61[data-limited]{opacity:0}._toast_b05po_61:focus-visible{box-shadow:0 0 0 2px var(--pharos-color-base-white), 0 0 0 4px var(--pharos-color-primary-600), var(--pharos-shadow-lg);outline:none}@media (prefers-reduced-motion:reduce){._toast_b05po_61,._toast_b05po_61[data-starting-style],._toast_b05po_61[data-ending-style]{transition-property:opacity;transform:none}}._content_b05po_128{align-items:flex-start;gap:var(--pharos-spacing-3);padding-block:var(--pharos-spacing-3);padding-inline:var(--pharos-spacing-4) var(--pharos-spacing-2);display:flex}._icon_b05po_137{inline-size:var(--pharos-spacing-5);block-size:var(--pharos-spacing-5);flex-shrink:0}._text_b05po_143{gap:var(--pharos-spacing-0-5);overflow-wrap:anywhere;flex-direction:column;flex:1;min-inline-size:0;display:flex}._toast_b05po_61[data-pharos-variant=success] ._icon_b05po_137{color:var(--pharos-color-semantic-success-fg)}._toast_b05po_61[data-pharos-variant=info] ._icon_b05po_137{color:var(--pharos-color-semantic-info-fg)}._toast_b05po_61[data-pharos-variant=destructive] ._icon_b05po_137{color:var(--pharos-color-semantic-error-fg)}._toast_b05po_61[data-pharos-variant=warning] ._icon_b05po_137{color:var(--pharos-color-semantic-warning-on)}._warningFill_b05po_170{fill:var(--pharos-color-semantic-warning-fg);stroke:var(--pharos-color-semantic-warning-fg)}._title_b05po_177{font-size:var(--pharos-font-size-sm);line-height:inherit;font-weight:var(--pharos-font-weight-semibold);margin:0}._description_b05po_184{font-size:var(--pharos-font-size-sm);line-height:inherit;color:var(--pharos-color-neutral-600);margin:0}._action_b05po_191{align-self:flex-start;margin-block-start:var(--pharos-spacing-2)}._close_b05po_198{margin-block:calc(-1 * var(--pharos-spacing-1-5)) calc(-1 * var(--pharos-spacing-1-5));flex-shrink:0}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-sherpas/pharos-react",
3
- "version": "0.20.3",
3
+ "version": "0.21.0",
4
4
  "description": "React component library for Code Sherpas. Consumes @code-sherpas/pharos-tokens. Vite library mode + CSS Modules — no Tailwind, no CSS framework required at the consumer.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -97,6 +97,10 @@
97
97
  "./Textarea": {
98
98
  "types": "./dist/components/Textarea.d.ts",
99
99
  "import": "./dist/components/Textarea.js"
100
+ },
101
+ "./Toast": {
102
+ "types": "./dist/components/Toast.d.ts",
103
+ "import": "./dist/components/Toast.js"
100
104
  }
101
105
  },
102
106
  "sideEffects": [