@conciv/ui-kit-system 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/dist/avatar.d.ts +12 -0
  4. package/dist/avatar.d.ts.map +1 -0
  5. package/dist/button.d.ts +8 -0
  6. package/dist/button.d.ts.map +1 -0
  7. package/dist/collapsible.d.ts +8 -0
  8. package/dist/collapsible.d.ts.map +1 -0
  9. package/dist/combobox.d.ts +2 -0
  10. package/dist/combobox.d.ts.map +1 -0
  11. package/dist/dialog.d.ts +10 -0
  12. package/dist/dialog.d.ts.map +1 -0
  13. package/dist/environment.d.ts +2 -0
  14. package/dist/environment.d.ts.map +1 -0
  15. package/dist/hover-card.d.ts +12 -0
  16. package/dist/hover-card.d.ts.map +1 -0
  17. package/dist/index.d.ts +21 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +482 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/menu.d.ts +16 -0
  22. package/dist/menu.d.ts.map +1 -0
  23. package/dist/popover.d.ts +11 -0
  24. package/dist/popover.d.ts.map +1 -0
  25. package/dist/presence.d.ts +4 -0
  26. package/dist/presence.d.ts.map +1 -0
  27. package/dist/progress.d.ts +2 -0
  28. package/dist/progress.d.ts.map +1 -0
  29. package/dist/relative-time.d.ts +6 -0
  30. package/dist/relative-time.d.ts.map +1 -0
  31. package/dist/scroll-area.d.ts +10 -0
  32. package/dist/scroll-area.d.ts.map +1 -0
  33. package/dist/swap.d.ts +8 -0
  34. package/dist/swap.d.ts.map +1 -0
  35. package/dist/switch.d.ts +14 -0
  36. package/dist/switch.d.ts.map +1 -0
  37. package/dist/tabs.d.ts +14 -0
  38. package/dist/tabs.d.ts.map +1 -0
  39. package/dist/text-field.d.ts +12 -0
  40. package/dist/text-field.d.ts.map +1 -0
  41. package/dist/toast.d.ts +13 -0
  42. package/dist/toast.d.ts.map +1 -0
  43. package/dist/tokens.d.ts +166 -0
  44. package/dist/tokens.d.ts.map +1 -0
  45. package/dist/tokens.js +168 -0
  46. package/dist/tokens.js.map +1 -0
  47. package/dist/tooltip.d.ts +10 -0
  48. package/dist/tooltip.d.ts.map +1 -0
  49. package/package.json +79 -0
  50. package/src/tokens.css +42 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 aidx contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # @conciv/ui-kit-system
2
+
3
+ The conciv design system: SolidJS primitives (Button plus Ark-UI-based Collapsible,
4
+ HoverCard, ScrollArea, Combobox, Progress) styled with the shared UnoCSS preset, so every
5
+ surface looks and behaves identically. Each component is viewable in Storybook.
6
+
7
+ Part of [conciv](https://github.com/conciv-dev/conciv). It ships as a dependency of the
8
+ umbrella package — install that:
9
+
10
+ ```sh
11
+ npm install -D @conciv/it
12
+ ```
@@ -0,0 +1,12 @@
1
+ import { type ComponentProps } from 'solid-js';
2
+ import { Avatar as Ark } from '@ark-ui/solid/avatar';
3
+ declare function Root(props: ComponentProps<typeof Ark.Root>): import("solid-js").JSX.Element;
4
+ declare function Image(props: ComponentProps<typeof Ark.Image>): import("solid-js").JSX.Element;
5
+ declare function Fallback(props: ComponentProps<typeof Ark.Fallback>): import("solid-js").JSX.Element;
6
+ export declare const Avatar: typeof Ark & {
7
+ Root: typeof Root;
8
+ Image: typeof Image;
9
+ Fallback: typeof Fallback;
10
+ };
11
+ export {};
12
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../src/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAC,MAAM,UAAU,CAAA;AACxD,OAAO,EAAC,MAAM,IAAI,GAAG,EAAC,MAAM,sBAAsB,CAAA;AAOlD,iBAAS,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,kCAGnD;AAED,iBAAS,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,kCAGrD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,kCAG3D;AAED,eAAO,MAAM,MAAM;;;;CAAkD,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { type JSX } from 'solid-js';
2
+ export type ButtonVariant = 'solid' | 'ghost' | 'outline' | 'danger';
3
+ export type ButtonSize = 'sm' | 'md' | 'icon';
4
+ export declare function Button(props: JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
5
+ variant?: ButtonVariant;
6
+ size?: ButtonSize;
7
+ }): JSX.Element;
8
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,GAAG,EAAC,MAAM,UAAU,CAAA;AAE7C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;AACpE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAkB7C,wBAAgB,MAAM,CACpB,KAAK,EAAE,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAC,GAChG,GAAG,CAAC,OAAO,CASb"}
@@ -0,0 +1,8 @@
1
+ import { type ComponentProps } from 'solid-js';
2
+ import { Collapsible as Ark } from '@ark-ui/solid/collapsible';
3
+ declare function Content(props: ComponentProps<typeof Ark.Content>): import("solid-js").JSX.Element;
4
+ export declare const Collapsible: typeof Ark & {
5
+ Content: typeof Content;
6
+ };
7
+ export {};
8
+ //# sourceMappingURL=collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../src/collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAC,MAAM,UAAU,CAAA;AACxD,OAAO,EAAC,WAAW,IAAI,GAAG,EAAC,MAAM,2BAA2B,CAAA;AAI5D,iBAAS,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,kCAGzD;AAED,eAAO,MAAM,WAAW;;CAAoC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Combobox } from '@ark-ui/solid/combobox';
2
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../src/combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { JSX } from 'solid-js';
2
+ export declare function Dialog(props: {
3
+ open: boolean;
4
+ onOpenChange?: (open: boolean) => void;
5
+ label?: string;
6
+ dismissable?: boolean;
7
+ children: JSX.Element;
8
+ }): JSX.Element;
9
+ export type DialogApi = typeof Dialog;
10
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../src/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAQjC,wBAAgB,MAAM,CAAC,KAAK,EAAE;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;CACtB,GAAG,GAAG,CAAC,OAAO,CAkBd;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { EnvironmentProvider } from '@ark-ui/solid/environment';
2
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,2BAA2B,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { JSX } from 'solid-js';
2
+ export declare function HoverCard(props: {
3
+ trigger: JSX.Element;
4
+ triggerClass?: string;
5
+ children: JSX.Element;
6
+ openDelay?: number;
7
+ closeDelay?: number;
8
+ sideOffset?: number;
9
+ class?: string;
10
+ label?: string;
11
+ }): JSX.Element;
12
+ //# sourceMappingURL=hover-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../src/hover-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAMjC,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,GAAG,CAAC,OAAO,CAed"}
@@ -0,0 +1,21 @@
1
+ export { Button, type ButtonVariant, type ButtonSize } from './button.js';
2
+ export { Collapsible } from './collapsible.js';
3
+ export { HoverCard } from './hover-card.js';
4
+ export { ScrollArea } from './scroll-area.js';
5
+ export { Combobox } from './combobox.js';
6
+ export { Dialog, type DialogApi } from './dialog.js';
7
+ export { TextField, TextArea, type TextAreaProps } from './text-field.js';
8
+ export { Progress } from './progress.js';
9
+ export { Tooltip } from './tooltip.js';
10
+ export { Menu } from './menu.js';
11
+ export { Popover, type PopoverApi } from './popover.js';
12
+ export { Toast, createToaster, type ToasterInstance } from './toast.js';
13
+ export { Avatar } from './avatar.js';
14
+ export { RelativeTime } from './relative-time.js';
15
+ export { Tabs } from './tabs.js';
16
+ export { Switch } from './switch.js';
17
+ export { Swap } from './swap.js';
18
+ export { Presence } from './presence.js';
19
+ export { EnvironmentProvider } from './environment.js';
20
+ export { TOKENS, renderTokensCss, type ThemeTokenName, type ThemeTokens } from './tokens.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAC,MAAM,aAAa,CAAA;AACvE,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,MAAM,EAAE,KAAK,SAAS,EAAC,MAAM,aAAa,CAAA;AAClD,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,OAAO,EAAE,KAAK,UAAU,EAAC,MAAM,cAAc,CAAA;AACrD,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,KAAK,eAAe,EAAC,MAAM,YAAY,CAAA;AACrE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAC,MAAM,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAC,MAAM,aAAa,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,482 @@
1
+ import { TOKENS as e, renderTokensCss as t } from "./tokens.js";
2
+ import { className as n, createComponent as r, delegateEvents as i, effect as a, insert as ee, mergeProps as o, spread as s, template as c, use as te } from "solid-js/web";
3
+ import { Show as l, createEffect as u, onMount as d, splitProps as f } from "solid-js";
4
+ import { Collapsible as p } from "@ark-ui/solid/collapsible";
5
+ import { HoverCard as m } from "@ark-ui/solid/hover-card";
6
+ import { ScrollArea as h } from "@ark-ui/solid/scroll-area";
7
+ import { Combobox as g } from "@ark-ui/solid/combobox";
8
+ import { Dialog as _ } from "@ark-ui/solid/dialog";
9
+ import { Field as v } from "@ark-ui/solid/field";
10
+ import { Progress as y } from "@ark-ui/solid/progress";
11
+ import { Tooltip as b } from "@ark-ui/solid/tooltip";
12
+ import { Menu as x } from "@ark-ui/solid/menu";
13
+ import { Popover as S } from "@ark-ui/solid/popover";
14
+ import { Toast as C, Toaster as ne, createToaster as w } from "@ark-ui/solid/toast";
15
+ import { XIcon as T } from "lucide-solid";
16
+ import { Avatar as E } from "@ark-ui/solid/avatar";
17
+ import { Format as D } from "@ark-ui/solid/format";
18
+ import { Tabs as O } from "@ark-ui/solid/tabs";
19
+ import { Switch as k } from "@ark-ui/solid/switch";
20
+ import { Swap as A } from "@ark-ui/solid/swap";
21
+ import { Presence as j } from "@ark-ui/solid/presence";
22
+ import { EnvironmentProvider as M } from "@ark-ui/solid/environment";
23
+ //#region src/button.tsx
24
+ var N = /*#__PURE__*/ c("<button>"), P = "inline-flex items-center justify-center gap-1.5 font-pw cursor-pointer trans-btn focus-ring [border:1px_solid_transparent] disabled:opacity-50 disabled:cursor-not-allowed", F = {
25
+ solid: "bg-pw-accent text-pw-on-accent hover:bg-pw-accent-hi",
26
+ ghost: "bg-transparent text-pw-text-2 hover:text-pw-text hover:bg-pw-fill-strong",
27
+ outline: "bg-pw-fill text-pw-text [border-color:var(--pw-line)] hover:bg-pw-fill-strong",
28
+ danger: "bg-pw-danger text-pw-on-accent hover:opacity-90"
29
+ }, I = {
30
+ sm: "text-[0.6875rem] rounded-pw-sm py-0.5 px-2",
31
+ md: "text-[0.8125rem] rounded-pw-md py-2 px-3",
32
+ icon: "rounded-pw-md size-9.5"
33
+ };
34
+ function L(e) {
35
+ let [t, n] = f(e, [
36
+ "variant",
37
+ "size",
38
+ "class",
39
+ "type"
40
+ ]);
41
+ return (() => {
42
+ var e = N();
43
+ return s(e, o({
44
+ get type() {
45
+ return t.type ?? "button";
46
+ },
47
+ get class() {
48
+ return `${P} ${F[t.variant ?? "solid"]} ${I[t.size ?? "md"]} ${t.class ?? ""}`;
49
+ }
50
+ }, n), !1, !1), e;
51
+ })();
52
+ }
53
+ //#endregion
54
+ //#region src/collapsible.tsx
55
+ var R = "overflow-hidden data-[state=open]:anim-collapse-open data-[state=closed]:anim-collapse-closed";
56
+ function z(e) {
57
+ let [t, n] = f(e, ["class"]);
58
+ return r(p.Content, o(n, { get class() {
59
+ return `${R} ${t.class ?? ""}`;
60
+ } }));
61
+ }
62
+ var B = Object.assign({}, p, { Content: z }), V = "hidden data-[state=open]:block data-[state=open]:anim-combo z-[2147483647] w-60 rounded-pw-md overflow-hidden bg-pw-panel text-pw-text border border-pw-line shadow-pw-lg text-[0.75rem] focus-visible:outline-none";
63
+ function H(e) {
64
+ return r(m.Root, {
65
+ get openDelay() {
66
+ return e.openDelay ?? 0;
67
+ },
68
+ get closeDelay() {
69
+ return e.closeDelay ?? 120;
70
+ },
71
+ get positioning() {
72
+ return {
73
+ strategy: "fixed",
74
+ placement: "bottom-start",
75
+ gutter: e.sideOffset ?? 6
76
+ };
77
+ },
78
+ get children() {
79
+ return [r(m.Trigger, {
80
+ get class() {
81
+ return e.triggerClass;
82
+ },
83
+ get "aria-label"() {
84
+ return e.label;
85
+ },
86
+ get children() {
87
+ return e.trigger;
88
+ }
89
+ }), r(m.Positioner, { get children() {
90
+ return r(m.Content, {
91
+ get class() {
92
+ return `${V} ${e.class ?? ""}`;
93
+ },
94
+ get children() {
95
+ return e.children;
96
+ }
97
+ });
98
+ } })];
99
+ }
100
+ });
101
+ }
102
+ //#endregion
103
+ //#region src/scroll-area.tsx
104
+ var U = "flex p-0.5 opacity-0 pointer-events-none [transition:opacity_150ms] [&[data-hover]]:opacity-100 [&[data-scrolling]]:opacity-100 [&[data-hover]]:pointer-events-auto [&[data-scrolling]]:pointer-events-auto [&[data-orientation=vertical]]:w-2 [&[data-orientation=horizontal]]:h-2 [&[data-orientation=vertical]:not([data-overflow-y])]:hidden [&[data-orientation=horizontal]:not([data-overflow-x])]:hidden", W = "w-full rounded-pw-pill bg-pw-accent-link [&[data-orientation=horizontal]]:w-auto [&[data-orientation=horizontal]]:h-full";
105
+ function G(e) {
106
+ let [t, n] = f(e, ["class"]);
107
+ return r(h.Scrollbar, o(n, { get class() {
108
+ return `${U} ${t.class ?? ""}`;
109
+ } }));
110
+ }
111
+ function K(e) {
112
+ let [t, n] = f(e, ["class"]);
113
+ return r(h.Thumb, o(n, { get class() {
114
+ return `${W} ${t.class ?? ""}`;
115
+ } }));
116
+ }
117
+ var q = Object.assign({}, h, {
118
+ Scrollbar: G,
119
+ Thumb: K
120
+ }), J = "fixed inset-0 z-[2147483646] bg-[rgba(0,0,0,0.55)] [backdrop-filter:blur(0.125rem)]", Y = "fixed inset-0 z-[2147483647] flex items-center justify-center p-4", X = "w-90 max-w-[calc(100vw-2rem)] rounded-pw-lg bg-pw-panel text-pw-text border border-pw-line shadow-pw-lg p-4 focus-visible:outline-none data-[state=open]:anim-rise";
121
+ function Z(e) {
122
+ return r(_.Root, {
123
+ get open() {
124
+ return e.open;
125
+ },
126
+ onOpenChange: (t) => e.onOpenChange?.(t.open),
127
+ role: "alertdialog",
128
+ modal: !0,
129
+ get closeOnEscape() {
130
+ return e.dismissable ?? !1;
131
+ },
132
+ get closeOnInteractOutside() {
133
+ return e.dismissable ?? !1;
134
+ },
135
+ get children() {
136
+ return [r(_.Backdrop, { class: J }), r(_.Positioner, {
137
+ class: Y,
138
+ get children() {
139
+ return r(_.Content, {
140
+ class: X,
141
+ get "aria-label"() {
142
+ return e.label;
143
+ },
144
+ get children() {
145
+ return e.children;
146
+ }
147
+ });
148
+ }
149
+ })];
150
+ }
151
+ });
152
+ }
153
+ //#endregion
154
+ //#region src/text-field.tsx
155
+ var re = /*#__PURE__*/ c("<textarea>"), ie = "flex flex-col gap-1", ae = "text-[0.75rem] text-pw-text-2 font-pw", oe = "w-full font-pw text-[0.8125rem] rounded-pw-md bg-pw-fill text-pw-text [border:1px_solid_var(--pw-line)] py-2 px-3 focus-ring placeholder:text-pw-text-3";
156
+ function se(e) {
157
+ let [t, n] = f(e, ["label", "class"]);
158
+ return r(v.Root, {
159
+ get class() {
160
+ return `${ie} ${t.class ?? ""}`;
161
+ },
162
+ get children() {
163
+ return [r(l, {
164
+ get when() {
165
+ return t.label;
166
+ },
167
+ get children() {
168
+ return r(v.Label, {
169
+ class: ae,
170
+ get children() {
171
+ return t.label;
172
+ }
173
+ });
174
+ }
175
+ }), r(v.Input, o({ class: oe }, n))];
176
+ }
177
+ });
178
+ }
179
+ var ce = "w-full resize-none font-pw text-[0.8125rem] rounded-pw-md bg-pw-fill text-pw-text [border:1px_solid_var(--pw-line)] py-2 px-3 focus-ring placeholder:text-pw-text-3", le = "w-full resize-none [background:transparent] [border:none] [font:inherit] focus-visible:outline-none";
180
+ function Q(e, t) {
181
+ let n = getComputedStyle(e), r = Number.parseFloat(n.lineHeight) || 20, i = Number.parseFloat(n.paddingTop) + Number.parseFloat(n.paddingBottom) + Number.parseFloat(n.borderTopWidth) + Number.parseFloat(n.borderBottomWidth);
182
+ return t * r + i;
183
+ }
184
+ function ue(e) {
185
+ let [t, n] = f(e, [
186
+ "class",
187
+ "minRows",
188
+ "maxRows",
189
+ "onHeightChange",
190
+ "onInput",
191
+ "value",
192
+ "ref",
193
+ "unstyled"
194
+ ]), r, i = () => {
195
+ if (!r) return;
196
+ let e = Q(r, t.maxRows ?? 5), n = Q(r, t.minRows ?? 1);
197
+ r.style.height = "auto";
198
+ let i = Math.max(n, Math.min(r.scrollHeight, e));
199
+ r.style.height = `${i}px`, r.style.overflowY = r.scrollHeight > e ? "auto" : "hidden", t.onHeightChange?.(i);
200
+ };
201
+ d(i), u(() => {
202
+ t.value, i();
203
+ });
204
+ let a = t.ref;
205
+ return (() => {
206
+ var e = re();
207
+ return e.$$input = (e) => {
208
+ i(), typeof t.onInput == "function" && t.onInput(e);
209
+ }, te((e) => {
210
+ r = e, typeof a == "function" && a(e);
211
+ }, e), s(e, o({
212
+ get rows() {
213
+ return t.minRows ?? 1;
214
+ },
215
+ get class() {
216
+ return `${t.unstyled ? le : ce} ${t.class ?? ""}`;
217
+ },
218
+ get value() {
219
+ return t.value;
220
+ }
221
+ }, n), !1, !1), e;
222
+ })();
223
+ }
224
+ i(["input"]);
225
+ //#endregion
226
+ //#region src/tooltip.tsx
227
+ var de = "hidden data-[state=open]:block data-[state=open]:anim-combo z-[2147483647] rounded-pw-sm bg-pw-panel text-pw-text border border-pw-line shadow-pw-lg py-1 px-2 text-[0.6875rem] max-w-60 focus-visible:outline-none";
228
+ function fe(e) {
229
+ let [t, n] = f(e, [
230
+ "positioning",
231
+ "openDelay",
232
+ "closeDelay"
233
+ ]);
234
+ return r(b.Root, o({
235
+ get openDelay() {
236
+ return t.openDelay ?? 300;
237
+ },
238
+ get closeDelay() {
239
+ return t.closeDelay ?? 80;
240
+ },
241
+ get positioning() {
242
+ return {
243
+ strategy: "fixed",
244
+ placement: "top",
245
+ gutter: 6,
246
+ ...t.positioning
247
+ };
248
+ }
249
+ }, n));
250
+ }
251
+ function pe(e) {
252
+ let [t, n] = f(e, ["class"]);
253
+ return r(b.Content, o(n, { get class() {
254
+ return `${de} ${t.class ?? ""}`;
255
+ } }));
256
+ }
257
+ var me = Object.assign({}, b, {
258
+ Root: fe,
259
+ Content: pe
260
+ }), he = "hidden data-[state=open]:block data-[state=open]:anim-combo z-[2147483647] min-w-44 rounded-pw-md bg-pw-panel text-pw-text border border-pw-line shadow-pw-lg p-1 focus-visible:outline-none", ge = "flex items-center gap-2 min-h-8 py-1.5 px-2.5 rounded-pw-sm text-[0.8125rem] text-pw-text-2 cursor-pointer select-none outline-none data-[highlighted]:bg-pw-fill-strong data-[highlighted]:text-pw-text data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed", _e = "py-1.5 px-2.5 text-[0.6875rem] font-pw text-pw-text-3 uppercase tracking-wide", ve = "h-px my-1 bg-pw-line";
261
+ function ye(e) {
262
+ let [t, n] = f(e, ["positioning"]);
263
+ return r(x.Root, o({ get positioning() {
264
+ return {
265
+ strategy: "fixed",
266
+ placement: "bottom-start",
267
+ gutter: 4,
268
+ ...t.positioning
269
+ };
270
+ } }, n));
271
+ }
272
+ function be(e) {
273
+ let [t, n] = f(e, ["class"]);
274
+ return r(x.Content, o(n, { get class() {
275
+ return `${he} ${t.class ?? ""}`;
276
+ } }));
277
+ }
278
+ function xe(e) {
279
+ let [t, n] = f(e, ["class"]);
280
+ return r(x.Item, o(n, { get class() {
281
+ return `${ge} ${t.class ?? ""}`;
282
+ } }));
283
+ }
284
+ function Se(e) {
285
+ let [t, n] = f(e, ["class"]);
286
+ return r(x.ItemGroupLabel, o(n, { get class() {
287
+ return `${_e} ${t.class ?? ""}`;
288
+ } }));
289
+ }
290
+ function Ce(e) {
291
+ let [t, n] = f(e, ["class"]);
292
+ return r(x.Separator, o(n, { get class() {
293
+ return `${ve} ${t.class ?? ""}`;
294
+ } }));
295
+ }
296
+ var we = Object.assign({}, x, {
297
+ Root: ye,
298
+ Content: be,
299
+ Item: xe,
300
+ ItemGroupLabel: Se,
301
+ Separator: Ce
302
+ }), Te = "hidden data-[state=open]:block data-[state=open]:anim-rise z-[2147483647] rounded-pw-lg bg-pw-panel text-pw-text border border-pw-line shadow-pw-lg focus-visible:outline-none";
303
+ function Ee(e) {
304
+ let [t, n] = f(e, ["positioning"]);
305
+ return r(S.Root, o({ get positioning() {
306
+ return {
307
+ strategy: "fixed",
308
+ placement: "top-end",
309
+ gutter: 8,
310
+ ...t.positioning
311
+ };
312
+ } }, n));
313
+ }
314
+ function De(e) {
315
+ let [t, n] = f(e, ["class"]);
316
+ return r(S.Content, o(n, { get class() {
317
+ return `${Te} ${t.class ?? ""}`;
318
+ } }));
319
+ }
320
+ var Oe = Object.assign({}, S, {
321
+ Root: Ee,
322
+ Content: De
323
+ }), ke = "relative w-80 max-w-[calc(100vw-2rem)] flex flex-col gap-1 items-start py-3 pl-3.5 pr-9 rounded-pw-md bg-pw-panel text-pw-text border border-pw-line shadow-pw-lg [translate:var(--x)_var(--y)] [scale:var(--scale)] [z-index:var(--z-index)] [height:var(--height)] [opacity:var(--opacity)] data-[type=error]:[border-color:var(--pw-danger)] data-[type=success]:[border-color:var(--pw-success)]", Ae = "text-[0.8125rem] font-pw text-pw-text-hi", je = "text-[0.75rem] text-pw-text-2", Me = "absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-pw-sm text-pw-text-3 cursor-pointer hover:text-pw-text hover:bg-pw-fill-strong focus-ring";
324
+ function Ne(e) {
325
+ return r(ne, {
326
+ get toaster() {
327
+ return e.toaster;
328
+ },
329
+ children: (e) => r(C.Root, {
330
+ class: ke,
331
+ get children() {
332
+ return [
333
+ r(C.Title, {
334
+ class: Ae,
335
+ get children() {
336
+ return e().title;
337
+ }
338
+ }),
339
+ r(l, {
340
+ get when() {
341
+ return e().description;
342
+ },
343
+ get children() {
344
+ return r(C.Description, {
345
+ class: je,
346
+ get children() {
347
+ return e().description;
348
+ }
349
+ });
350
+ }
351
+ }),
352
+ r(C.CloseTrigger, {
353
+ class: Me,
354
+ "aria-label": "Dismiss notification",
355
+ get children() {
356
+ return r(T, { size: 16 });
357
+ }
358
+ })
359
+ ];
360
+ }
361
+ })
362
+ });
363
+ }
364
+ var Pe = Object.assign({}, C, {
365
+ Toaster: Ne,
366
+ createToaster: w
367
+ }), Fe = "inline-flex items-center justify-center size-7 rounded-pw-pill overflow-hidden bg-pw-fill-strong text-pw-text-2 text-[0.6875rem] font-pw select-none shrink-0", Ie = "size-full object-cover", Le = "inline-flex items-center justify-center size-full uppercase";
368
+ function Re(e) {
369
+ let [t, n] = f(e, ["class"]);
370
+ return r(E.Root, o(n, { get class() {
371
+ return `${Fe} ${t.class ?? ""}`;
372
+ } }));
373
+ }
374
+ function ze(e) {
375
+ let [t, n] = f(e, ["class"]);
376
+ return r(E.Image, o(n, { get class() {
377
+ return `${Ie} ${t.class ?? ""}`;
378
+ } }));
379
+ }
380
+ function Be(e) {
381
+ let [t, n] = f(e, ["class"]);
382
+ return r(E.Fallback, o(n, { get class() {
383
+ return `${Le} ${t.class ?? ""}`;
384
+ } }));
385
+ }
386
+ var Ve = Object.assign({}, E, {
387
+ Root: Re,
388
+ Image: ze,
389
+ Fallback: Be
390
+ }), He = /*#__PURE__*/ c("<span>");
391
+ function Ue(e) {
392
+ return (() => {
393
+ var t = He();
394
+ return ee(t, r(D.RelativeTime, {
395
+ get value() {
396
+ return e.value;
397
+ },
398
+ numeric: "auto",
399
+ style: "narrow"
400
+ })), a(() => n(t, e.class)), t;
401
+ })();
402
+ }
403
+ //#endregion
404
+ //#region src/tabs.tsx
405
+ var We = "relative flex items-center gap-1 border-b border-pw-line", Ge = "relative inline-flex items-center gap-1.5 py-2 px-3 text-[0.8125rem] font-pw text-pw-text-3 cursor-pointer select-none trans-btn hover:text-pw-text-2 data-[selected]:text-pw-text focus-ring disabled:opacity-50 disabled:cursor-not-allowed", Ke = "pt-3 focus-visible:outline-none", qe = "absolute bottom-0 h-0.5 bg-pw-accent [width:var(--width)] [left:var(--left)] trans-btn";
406
+ function Je(e) {
407
+ let [t, n] = f(e, ["class"]);
408
+ return r(O.List, o(n, { get class() {
409
+ return `${We} ${t.class ?? ""}`;
410
+ } }));
411
+ }
412
+ function Ye(e) {
413
+ let [t, n] = f(e, ["class"]);
414
+ return r(O.Trigger, o(n, { get class() {
415
+ return `${Ge} ${t.class ?? ""}`;
416
+ } }));
417
+ }
418
+ function Xe(e) {
419
+ let [t, n] = f(e, ["class"]);
420
+ return r(O.Content, o(n, { get class() {
421
+ return `${Ke} ${t.class ?? ""}`;
422
+ } }));
423
+ }
424
+ function Ze(e) {
425
+ let [t, n] = f(e, ["class"]);
426
+ return r(O.Indicator, o(n, { get class() {
427
+ return `${qe} ${t.class ?? ""}`;
428
+ } }));
429
+ }
430
+ var Qe = Object.assign({}, O, {
431
+ List: Je,
432
+ Trigger: Ye,
433
+ Content: Xe,
434
+ Indicator: Ze
435
+ }), $e = "inline-flex items-center gap-2 cursor-pointer select-none data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed", et = "relative inline-flex items-center w-8 h-4.5 rounded-pw-pill bg-pw-fill-strong [border:1px_solid_var(--pw-line)] trans-btn data-[state=checked]:bg-pw-accent data-[state=checked]:[border-color:var(--pw-accent)] focus-within:[outline:0.125rem_solid_var(--pw-accent)] focus-within:[outline-offset:0.125rem]", tt = "size-3.5 rounded-pw-pill bg-pw-text translate-x-0.5 trans-btn data-[state=checked]:translate-x-3.5 data-[state=checked]:bg-pw-on-accent", $ = "text-[0.8125rem] font-pw text-pw-text-2";
436
+ function nt(e) {
437
+ let [t, n] = f(e, ["class"]);
438
+ return r(k.Root, o(n, { get class() {
439
+ return `${$e} ${t.class ?? ""}`;
440
+ } }));
441
+ }
442
+ function rt(e) {
443
+ let [t, n] = f(e, ["class"]);
444
+ return r(k.Control, o(n, { get class() {
445
+ return `${et} ${t.class ?? ""}`;
446
+ } }));
447
+ }
448
+ function it(e) {
449
+ let [t, n] = f(e, ["class"]);
450
+ return r(k.Thumb, o(n, { get class() {
451
+ return `${tt} ${t.class ?? ""}`;
452
+ } }));
453
+ }
454
+ function at(e) {
455
+ let [t, n] = f(e, ["class"]);
456
+ return r(k.Label, o(n, { get class() {
457
+ return `${$} ${t.class ?? ""}`;
458
+ } }));
459
+ }
460
+ var ot = Object.assign({}, k, {
461
+ Root: nt,
462
+ Control: rt,
463
+ Thumb: it,
464
+ Label: at
465
+ }), st = "inline-flex [transition:opacity_150ms_ease,scale_150ms_ease] [&[hidden]]:opacity-0 [&[hidden]]:[scale:0.6] [&[hidden]]:[display:inline-flex]";
466
+ function ct(e) {
467
+ let [t, n] = f(e, ["class"]);
468
+ return r(A.Indicator, o(n, { get class() {
469
+ return `${st} ${t.class ?? ""}`;
470
+ } }));
471
+ }
472
+ var lt = Object.assign({}, A, { Indicator: ct }), ut = "data-[state=open]:anim-presence-in data-[state=closed]:anim-presence-out";
473
+ function dt(e) {
474
+ let [t, n] = f(e, ["class"]);
475
+ return r(j, o(n, { get class() {
476
+ return `${ut} ${t.class ?? ""}`;
477
+ } }));
478
+ }
479
+ //#endregion
480
+ export { Ve as Avatar, L as Button, B as Collapsible, g as Combobox, Z as Dialog, M as EnvironmentProvider, H as HoverCard, we as Menu, Oe as Popover, dt as Presence, y as Progress, Ue as RelativeTime, q as ScrollArea, lt as Swap, ot as Switch, e as TOKENS, Qe as Tabs, ue as TextArea, se as TextField, Pe as Toast, me as Tooltip, w as createToaster, t as renderTokensCss };
481
+
482
+ //# sourceMappingURL=index.js.map