@actioneer/ads 0.7.0 → 0.8.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.
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as n, Fragment as T } from "react/jsx-runtime";
2
+ import { jsx as e, jsxs as i, Fragment as T } from "react/jsx-runtime";
3
3
  import * as t from "react";
4
4
  import { MotionConfig as M, AnimatePresence as $, motion as D } from "motion/react";
5
5
  import { cn as f } from "../lib/cn.js";
6
6
  import { ChevronRight as V, FileText as W } from "../lib/icons.js";
7
7
  import { springDisclosure as q } from "../lib/motion.js";
8
8
  const B = t.forwardRef(
9
- ({ className: u, variant: a = "default", ...m }, i) => /* @__PURE__ */ e(
9
+ ({ className: u, variant: a = "default", ...m }, n) => /* @__PURE__ */ e(
10
10
  "div",
11
11
  {
12
- ref: i,
12
+ ref: n,
13
13
  role: "tree",
14
14
  "data-variant": a,
15
15
  className: f("group/tree flex flex-col gap-0.5 text-xs", u),
@@ -23,26 +23,26 @@ const E = t.forwardRef(
23
23
  className: u,
24
24
  label: a,
25
25
  icon: m,
26
- count: i,
26
+ count: n,
27
27
  endContent: v,
28
28
  defaultExpanded: R = !1,
29
29
  expanded: x,
30
30
  onExpandedChange: g,
31
- href: y,
31
+ href: w,
32
32
  isActive: s,
33
33
  onSelect: b,
34
34
  children: l,
35
35
  ..._
36
36
  }, j) => {
37
- const o = t.Children.count(l) > 0, N = x !== void 0, [z, F] = t.useState(R), r = N ? x : z, w = (c) => {
38
- N || F(c), g == null || g(c);
37
+ const o = t.Children.count(l) > 0, y = x !== void 0, [z, F] = t.useState(R), r = y ? x : z, N = (c) => {
38
+ y || F(c), g == null || g(c);
39
39
  }, d = f(
40
40
  "group/tree-row flex h-9 w-full items-center gap-1.5 rounded-md px-2 text-left",
41
41
  "outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring",
42
42
  "[&_svg]:size-4 [&_svg]:shrink-0",
43
- "group-data-[variant=sidebar]/tree:border group-data-[variant=sidebar]/tree:border-transparent group-data-[variant=sidebar]/tree:text-ng11",
44
- "group-data-[variant=sidebar]/tree:[&_svg]:size-5 group-data-[variant=sidebar]/tree:[&_svg]:text-ng11",
45
- s ? "bg-fill font-normal text-foreground group-data-[variant=sidebar]/tree:border-ng4 group-data-[variant=sidebar]/tree:bg-ng2 group-data-[variant=sidebar]/tree:text-ng11" : "text-muted-foreground hover:bg-fill/60 hover:text-foreground group-data-[variant=sidebar]/tree:hover:bg-ng1 group-data-[variant=sidebar]/tree:hover:text-ng11"
43
+ "group-data-[variant=sidebar]/tree:border group-data-[variant=sidebar]/tree:border-transparent group-data-[variant=sidebar]/tree:text-wg11",
44
+ "group-data-[variant=sidebar]/tree:[&_svg]:size-5 group-data-[variant=sidebar]/tree:[&_svg]:text-wg11",
45
+ s ? "bg-fill font-normal text-foreground group-data-[variant=sidebar]/tree:border-wg4 group-data-[variant=sidebar]/tree:bg-wg2 group-data-[variant=sidebar]/tree:text-wg11" : "text-muted-foreground hover:bg-fill/60 hover:text-foreground group-data-[variant=sidebar]/tree:hover:bg-wg1 group-data-[variant=sidebar]/tree:hover:text-wg11"
46
46
  ), p = m ?? (o ? null : /* @__PURE__ */ e(W, { className: "text-tertiary" })), k = s && t.isValidElement(p) ? t.cloneElement(
47
47
  p,
48
48
  { weight: "fill" }
@@ -55,18 +55,18 @@ const E = t.forwardRef(
55
55
  ),
56
56
  strokeWidth: 2
57
57
  }
58
- ), I = (i ?? t.Children.count(l)) > 0 && /* @__PURE__ */ e("span", { className: "shrink-0 tabular-nums text-xs text-tertiary", children: i ?? t.Children.count(l) }), h = /* @__PURE__ */ n(T, { children: [
58
+ ), I = (n ?? t.Children.count(l)) > 0 && /* @__PURE__ */ e("span", { className: "shrink-0 tabular-nums text-xs text-tertiary", children: n ?? t.Children.count(l) }), h = /* @__PURE__ */ i(T, { children: [
59
59
  k,
60
60
  /* @__PURE__ */ e("span", { className: "min-w-0 flex-1 truncate", children: a }),
61
61
  v,
62
- o && /* @__PURE__ */ n(T, { children: [
62
+ o && /* @__PURE__ */ i(T, { children: [
63
63
  I,
64
64
  C
65
65
  ] })
66
66
  ] });
67
- return /* @__PURE__ */ n("div", { ref: j, role: "treeitem", "aria-expanded": o ? r : void 0, "aria-selected": s, className: u, ..._, children: [
68
- o && b ? /* @__PURE__ */ n("div", { className: d, children: [
69
- /* @__PURE__ */ n(
67
+ return /* @__PURE__ */ i("div", { ref: j, role: "treeitem", "aria-expanded": o ? r : void 0, "aria-selected": s, className: u, ..._, children: [
68
+ o && b ? /* @__PURE__ */ i("div", { className: d, children: [
69
+ /* @__PURE__ */ i(
70
70
  "button",
71
71
  {
72
72
  type: "button",
@@ -87,11 +87,11 @@ const E = t.forwardRef(
87
87
  "aria-label": `${r ? "Collapse" : "Expand"} ${typeof a == "string" ? a : "tree item"}`,
88
88
  "aria-expanded": r,
89
89
  className: "inline-flex size-7 shrink-0 items-center justify-center rounded-sm outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring",
90
- onClick: () => w(!r),
90
+ onClick: () => N(!r),
91
91
  children: C
92
92
  }
93
93
  )
94
- ] }) : o ? /* @__PURE__ */ e("button", { type: "button", className: d, onClick: () => w(!r), children: h }) : y ? /* @__PURE__ */ e("a", { href: y, className: d, "aria-current": s ? "page" : void 0, children: h }) : /* @__PURE__ */ e("button", { type: "button", className: d, onClick: b, children: h }),
94
+ ] }) : o ? /* @__PURE__ */ e("button", { type: "button", className: d, onClick: () => N(!r), children: h }) : w ? /* @__PURE__ */ e("a", { href: w, className: d, "aria-current": s ? "page" : void 0, children: h }) : /* @__PURE__ */ e("button", { type: "button", className: d, onClick: b, children: h }),
95
95
  /* @__PURE__ */ e(M, { reducedMotion: "user", children: /* @__PURE__ */ e($, { initial: !1, children: o && r && /* @__PURE__ */ e(
96
96
  D.div,
97
97
  {
@@ -9,8 +9,8 @@ const u = a(
9
9
  variants: {
10
10
  variant: {
11
11
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
12
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20",
13
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
12
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
13
+ outline: "border bg-background shadow-100 hover:bg-accent hover:text-accent-foreground",
14
14
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
15
15
  ghost: "hover:bg-accent hover:text-accent-foreground",
16
16
  link: "text-primary underline-offset-4 hover:underline"
@@ -32,7 +32,7 @@ const u = a(
32
32
  }
33
33
  }
34
34
  );
35
- function f({
35
+ function p({
36
36
  className: o,
37
37
  variant: e = "default",
38
38
  size: t = "default",
@@ -52,6 +52,6 @@ function f({
52
52
  );
53
53
  }
54
54
  export {
55
- f as Button,
55
+ p as Button,
56
56
  u as buttonVariants
57
57
  };
@@ -1,28 +1,28 @@
1
1
  "use client";
2
2
  import { jsx as e, jsxs as c } from "react/jsx-runtime";
3
3
  import * as s from "react";
4
- import { Close as _ } from "../../lib/icons.js";
4
+ import { Close as b } from "../../lib/icons.js";
5
5
  import { Dialog as o } from "radix-ui";
6
- import { MotionConfig as v, AnimatePresence as x, motion as p } from "motion/react";
6
+ import { MotionConfig as v, AnimatePresence as h, motion as x } from "motion/react";
7
7
  import { cn as u } from "../../lib/cn.js";
8
8
  import "./button.js";
9
- import { modalPanelVariants as b, backdropVariants as C } from "../../lib/motion.js";
9
+ import { modalPanelVariants as C, backdropVariants as M } from "../../lib/motion.js";
10
10
  const m = s.createContext(!1);
11
- function j({
11
+ function k({
12
12
  open: t,
13
13
  defaultOpen: i = !1,
14
14
  onOpenChange: n,
15
15
  children: r,
16
16
  ...a
17
17
  }) {
18
- const l = t !== void 0, [d, h] = s.useState(i), f = l ? t : d;
18
+ const l = t !== void 0, [d, p] = s.useState(i), f = l ? t : d;
19
19
  return /* @__PURE__ */ e(m.Provider, { value: f, children: /* @__PURE__ */ e(
20
20
  o.Root,
21
21
  {
22
22
  "data-slot": "dialog",
23
23
  open: f,
24
24
  onOpenChange: (g) => {
25
- l || h(g), n == null || n(g);
25
+ l || p(g), n == null || n(g);
26
26
  },
27
27
  ...a,
28
28
  children: r
@@ -34,27 +34,27 @@ function R({
34
34
  }) {
35
35
  return /* @__PURE__ */ e(o.Trigger, { "data-slot": "dialog-trigger", ...t });
36
36
  }
37
- function M({
37
+ function D({
38
38
  ...t
39
39
  }) {
40
40
  return /* @__PURE__ */ e(o.Portal, { "data-slot": "dialog-portal", ...t });
41
41
  }
42
- function D({
42
+ function y({
43
43
  className: t,
44
44
  forceMount: i,
45
45
  asChild: n,
46
46
  ...r
47
47
  }) {
48
48
  const a = s.useContext(m);
49
- return /* @__PURE__ */ e(v, { reducedMotion: "user", children: /* @__PURE__ */ e(x, { initial: !1, children: a && /* @__PURE__ */ e(o.Overlay, { forceMount: !0, asChild: !0, ...r, children: /* @__PURE__ */ e(
50
- p.div,
49
+ return /* @__PURE__ */ e(v, { reducedMotion: "user", children: /* @__PURE__ */ e(h, { initial: !1, children: a && /* @__PURE__ */ e(o.Overlay, { forceMount: !0, asChild: !0, ...r, children: /* @__PURE__ */ e(
50
+ x.div,
51
51
  {
52
52
  "data-slot": "dialog-overlay",
53
- variants: C,
53
+ variants: M,
54
54
  initial: "hidden",
55
55
  animate: "visible",
56
56
  exit: "hidden",
57
- className: u("fixed inset-0 z-50 bg-black/50", t)
57
+ className: u("fixed inset-0 z-50 bg-overlay", t)
58
58
  }
59
59
  ) }) }) });
60
60
  }
@@ -67,9 +67,9 @@ function V({
67
67
  ...l
68
68
  }) {
69
69
  const d = s.useContext(m);
70
- return /* @__PURE__ */ c(M, { "data-slot": "dialog-portal", forceMount: !0, children: [
71
- /* @__PURE__ */ e(D, {}),
72
- /* @__PURE__ */ e(v, { reducedMotion: "user", children: /* @__PURE__ */ e(x, { initial: !1, children: d && /* @__PURE__ */ e(
70
+ return /* @__PURE__ */ c(D, { "data-slot": "dialog-portal", forceMount: !0, children: [
71
+ /* @__PURE__ */ e(y, {}),
72
+ /* @__PURE__ */ e(v, { reducedMotion: "user", children: /* @__PURE__ */ e(h, { initial: !1, children: d && /* @__PURE__ */ e(
73
73
  o.Content,
74
74
  {
75
75
  "data-slot": "dialog-content",
@@ -77,14 +77,14 @@ function V({
77
77
  className: "pointer-events-none fixed inset-0 z-50 grid place-items-center p-4 outline-none",
78
78
  ...l,
79
79
  children: /* @__PURE__ */ c(
80
- p.div,
80
+ x.div,
81
81
  {
82
- variants: b,
82
+ variants: C,
83
83
  initial: "hidden",
84
84
  animate: "visible",
85
85
  exit: "hidden",
86
86
  className: u(
87
- "pointer-events-auto relative flex max-h-[calc(100dvh-2rem)] w-full max-w-[38.75rem] flex-col overflow-hidden rounded-xl bg-elevated text-foreground shadow-[0_2px_4px_-1px_rgb(0_0_0/0.34),0_16px_32px_-8px_rgb(0_0_0/0.46)] outline-none max-sm:max-h-[calc(100dvh-1rem)] max-sm:rounded-lg",
87
+ "pointer-events-auto relative flex max-h-[calc(100dvh-2rem)] w-full max-w-[38.75rem] flex-col overflow-hidden rounded-xl bg-elevated text-foreground shadow-400 outline-none max-sm:max-h-[calc(100dvh-1rem)] max-sm:rounded-lg",
88
88
  t
89
89
  ),
90
90
  children: [
@@ -95,7 +95,7 @@ function V({
95
95
  "data-slot": "dialog-close",
96
96
  className: "absolute right-2 top-2 z-10 inline-flex size-7 items-center justify-center rounded-sm text-secondary outline-none transition-[background,color,transform] duration-150 ease-out hover:bg-muted hover:text-foreground active:scale-[0.97] focus-visible:ring-3 focus-visible:ring-ring disabled:pointer-events-none motion-reduce:transition-none motion-reduce:active:scale-100 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
97
97
  children: [
98
- /* @__PURE__ */ e(_, {}),
98
+ /* @__PURE__ */ e(b, {}),
99
99
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
100
100
  ]
101
101
  }
@@ -121,10 +121,10 @@ function A({
121
121
  );
122
122
  }
123
123
  export {
124
- j as Dialog,
124
+ k as Dialog,
125
125
  V as DialogContent,
126
- D as DialogOverlay,
127
- M as DialogPortal,
126
+ y as DialogOverlay,
127
+ D as DialogPortal,
128
128
  A as DialogTitle,
129
129
  R as DialogTrigger
130
130
  };
package/lib/icons.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as h } from "react/jsx-runtime";
3
3
  import * as C from "react";
4
- import { Code as g, Check as p, Copy as u, FileText as $, X as d, UploadSimple as k, EyeSlash as S, Eye as f, Minus as w, Plus as T, CaretDown as P, MagnifyingGlass as A, Info as L, WarningCircle as y, Warning as B, CheckCircle as m, CaretUp as U, ArrowsDownUp as x, ChatCircle as M, ArrowUpRight as D, Clock as I, Database as O, ArrowSquareOut as F, Table as b, CaretLeft as R, CaretRight as v, CornersOut as H, Magnet as G, Tray as W, ArrowLeft as E, DotsThree as z, User as V, XCircle as N, CircleDashed as Q, ArrowsClockwise as q, Paperclip as X, Quotes as j, At as J, Lightning as K, Sparkle as Y, File as Z, DownloadSimple as _, Image as n, BracketsCurly as ee, MusicNotes as oe, VideoCamera as te, ImageBroken as ne, Pulse as se, Archive as ae, ArrowDown as re, ArrowRight as ce, ArrowUp as le, Scroll as ie, Bell as he, Stack as Ce, BookOpen as ge, Brain as pe, CalendarBlank as ue, Phone as $e, ListChecks as de, Cube as ke, DotsNine as Se, Funnel as fe, Folder as we, FolderOpen as Te, Gauge as Pe, GitBranch as Ae, Hash as Le, ClockCounterClockwise as ye, House as Be, SquaresFour as me, Leaf as Ue, Lightbulb as xe, Link as Me, CircleNotch as De, SignOut as Ie, Envelope as Oe, Microphone as Fe, MicrophoneSlash as be, DotsThreeVertical as Re, Palette as ve, SidebarSimple as He, Pause as Ge, PencilSimple as We, PhoneSlash as Ee, ChartPie as ze, Play as Ve, Plug as Ne, Presentation as Qe, Rocket as qe, Gear as Xe, Shapes as je, ShareNetwork as Je, Star as Ke, Stop as Ye, ArrowsLeftRight as Ze, Target as _e, Binoculars as eo, TextB as oo, TextT as to, TextItalic as no, TextStrikethrough as so, TextUnderline as ao, ToggleRight as ro, Trash as co, Users as lo, Wrench as io } from "@phosphor-icons/react";
4
+ import { Code as g, Check as p, Copy as u, FileText as $, X as d, UploadSimple as S, EyeSlash as k, Eye as f, Minus as w, Plus as T, CaretDown as P, MagnifyingGlass as A, Info as L, WarningCircle as m, Warning as y, CheckCircle as B, CaretUp as U, ArrowsDownUp as x, ChatCircle as M, ArrowUpRight as D, Clock as I, Database as O, ArrowSquareOut as F, Table as b, CaretLeft as R, CaretRight as v, CornersOut as H, Magnet as G, Tray as W, ArrowLeft as E, DotsThree as z, User as V, XCircle as N, CircleDashed as Q, ArrowsClockwise as q, Paperclip as X, Quotes as j, At as J, Lightning as K, Sparkle as Y, File as Z, DownloadSimple as _, Image as n, BracketsCurly as ee, MusicNotes as oe, VideoCamera as te, ImageBroken as ne, Pulse as se, Archive as ae, ArrowDown as re, ArrowRight as ce, ArrowUp as le, Scroll as ie, Bell as he, Stack as Ce, BookOpen as ge, Brain as pe, CalendarBlank as ue, Phone as $e, ListChecks as de, Cube as Se, DotsNine as ke, FunnelSimple as fe, Folder as we, FolderOpen as Te, Gauge as Pe, GitBranch as Ae, Hash as Le, ClockCounterClockwise as me, House as ye, SquaresFour as Be, Leaf as Ue, Lightbulb as xe, Link as Me, CircleNotch as De, SignOut as Ie, Envelope as Oe, Microphone as Fe, MicrophoneSlash as be, DotsThreeVertical as Re, Palette as ve, SidebarSimple as He, Pause as Ge, PencilSimple as We, PhoneSlash as Ee, ChartPie as ze, Play as Ve, Plug as Ne, Presentation as Qe, Rocket as qe, Gear as Xe, Shapes as je, ShareNetwork as Je, Star as Ke, Stop as Ye, ArrowsLeftRight as Ze, Target as _e, Binoculars as eo, TextB as oo, TextT as to, TextItalic as no, TextStrikethrough as so, TextUnderline as ao, ToggleRight as ro, Trash as co, Users as lo, Wrench as io } from "@phosphor-icons/react";
5
5
  function e(s, a) {
6
6
  const o = C.forwardRef(function({ strokeWidth: t, weight: r, ...c }, l) {
7
7
  const i = r ?? (t != null && t >= 2 ? "bold" : "regular");
@@ -9,7 +9,7 @@ function e(s, a) {
9
9
  });
10
10
  return o.displayName = a, o;
11
11
  }
12
- const po = e(re, "ArrowDown"), uo = e(E, "ArrowLeft"), $o = e(ce, "ArrowRight"), ko = e(le, "ArrowUp"), So = e(D, "ArrowUpRight"), fo = e(P, "ChevronDown"), wo = e(R, "ChevronLeft"), To = e(v, "ChevronRight"), Po = e(U, "ChevronUp"), Ao = e(x, "SortIcon"), Lo = e(Ze, "SwapHorizontal"), yo = e(F, "ExternalLink"), Bo = e(He, "PanelLeft"), mo = e(J, "At"), Uo = e($e, "Call"), xo = e(d, "Close"), Mo = e(N, "CloseCircle"), Do = e(u, "Copy"), Io = e(_, "Download"), Oo = e(Ie, "LogOut"), Fo = e(Fe, "Mic"), bo = e(be, "MicOff"), Ro = e(Ee, "PhoneOff"), vo = e(We, "Pencil"), Ho = e(j, "Quote"), Go = e(f, "Eye"), Wo = e(S, "EyeOff"), Eo = e(Le, "Hash"), zo = e(n, "ImageUpload"), Vo = e(k, "Upload"), No = e(to, "TextFont"), Qo = e(oo, "TextBold"), qo = e(no, "TextItalicStyle"), Xo = e(so, "TextStrike"), jo = e(ao, "TextUnderlineStyle"), Jo = e(ro, "ToggleOn"), Ko = e(ue, "Calendar"), Yo = e(I, "Clock"), Zo = e(g, "Code"), _o = e(Ye, "Stop"), et = e(G, "Magnet"), ot = e(H, "Maximize"), tt = e(w, "Minus"), nt = e(z, "MoreHorizontal"), st = e(Re, "MoreVertical"), at = e(Se, "DragHandle"), rt = e(Me, "Link"), ct = e(T, "Plus"), lt = e(q, "Refresh"), it = e(ie, "AuditTrail"), ht = e(A, "Search"), Ct = e(Je, "Share"), gt = e(co, "Trash"), pt = e(p, "Check"), ut = e(De, "Loader"), $t = e(m, "CheckCircle"), dt = e(L, "Info"), kt = e(B, "Warning"), St = e(he, "Bell"), ft = e(y, "WarningCircle"), wt = e(se, "Activity"), Tt = e(M, "AgentChat"), Pt = e(K, "Bolt"), At = e(ge, "BookOpen"), Lt = e(pe, "Brain"), yt = e(de, "CheckList"), Bt = e(ke, "Component"), mt = e(O, "Database"), Ut = e(b, "Table"), xt = e(fe, "Filter"), Mt = e(ae, "Archive"), Dt = e(Z, "File"), It = e($, "FileText"), Ot = e(we, "Folder"), Ft = e(n, "Image"), bt = e(ne, "ImageOff"), Rt = e(oe, "Music"), vt = e(te, "Video"), Ht = e(ee, "Braces"), Gt = e(Te, "FolderOpen"), Wt = e(Pe, "Gauge"), Et = e(Ae, "GitBranch"), zt = e(ye, "HistoryClock"), Vt = e(Be, "Home"), Nt = e(Ce, "Blocks"), Qt = e(W, "Inbox"), qt = e(xe, "Lightbulb"), Xt = e(Ue, "Leaf"), jt = e(me, "LayoutGrid"), Jt = e(Oe, "Mail"), Kt = e(ve, "Palette"), Yt = e(ze, "PieChart"), Zt = e(Ne, "Plug"), _t = e(qe, "Rocket"), en = e(Xe, "Settings"), on = e(je, "Shapes"), tn = e(Y, "Sparkles"), nn = e(Ke, "Star"), sn = e(eo, "Telescope"), an = e(_e, "Target"), rn = e(V, "User"), cn = e(lo, "Users"), ln = e(Ve, "Play"), hn = e(Qe, "Presentation"), Cn = e(Ge, "Pause"), gn = e(X, "Paperclip"), pn = e(Q, "CircleDashed"), un = e(io, "Wrench");
12
+ const po = e(re, "ArrowDown"), uo = e(E, "ArrowLeft"), $o = e(ce, "ArrowRight"), So = e(le, "ArrowUp"), ko = e(D, "ArrowUpRight"), fo = e(P, "ChevronDown"), wo = e(R, "ChevronLeft"), To = e(v, "ChevronRight"), Po = e(U, "ChevronUp"), Ao = e(x, "SortIcon"), Lo = e(Ze, "SwapHorizontal"), mo = e(F, "ExternalLink"), yo = e(He, "PanelLeft"), Bo = e(J, "At"), Uo = e($e, "Call"), xo = e(d, "Close"), Mo = e(N, "CloseCircle"), Do = e(u, "Copy"), Io = e(_, "Download"), Oo = e(Ie, "LogOut"), Fo = e(Fe, "Mic"), bo = e(be, "MicOff"), Ro = e(Ee, "PhoneOff"), vo = e(We, "Pencil"), Ho = e(j, "Quote"), Go = e(f, "Eye"), Wo = e(k, "EyeOff"), Eo = e(Le, "Hash"), zo = e(n, "ImageUpload"), Vo = e(S, "Upload"), No = e(to, "TextFont"), Qo = e(oo, "TextBold"), qo = e(no, "TextItalicStyle"), Xo = e(so, "TextStrike"), jo = e(ao, "TextUnderlineStyle"), Jo = e(ro, "ToggleOn"), Ko = e(ue, "Calendar"), Yo = e(I, "Clock"), Zo = e(g, "Code"), _o = e(Ye, "Stop"), et = e(G, "Magnet"), ot = e(H, "Maximize"), tt = e(w, "Minus"), nt = e(z, "MoreHorizontal"), st = e(Re, "MoreVertical"), at = e(ke, "DragHandle"), rt = e(Me, "Link"), ct = e(T, "Plus"), lt = e(q, "Refresh"), it = e(ie, "AuditTrail"), ht = e(A, "Search"), Ct = e(Je, "Share"), gt = e(co, "Trash"), pt = e(p, "Check"), ut = e(De, "Loader"), $t = e(B, "CheckCircle"), dt = e(L, "Info"), St = e(y, "Warning"), kt = e(he, "Bell"), ft = e(m, "WarningCircle"), wt = e(se, "Activity"), Tt = e(M, "AgentChat"), Pt = e(K, "Bolt"), At = e(ge, "BookOpen"), Lt = e(pe, "Brain"), mt = e(de, "CheckList"), yt = e(Se, "Component"), Bt = e(O, "Database"), Ut = e(b, "Table"), xt = e(fe, "Filter"), Mt = e(ae, "Archive"), Dt = e(Z, "File"), It = e($, "FileText"), Ot = e(we, "Folder"), Ft = e(n, "Image"), bt = e(ne, "ImageOff"), Rt = e(oe, "Music"), vt = e(te, "Video"), Ht = e(ee, "Braces"), Gt = e(Te, "FolderOpen"), Wt = e(Pe, "Gauge"), Et = e(Ae, "GitBranch"), zt = e(me, "HistoryClock"), Vt = e(ye, "Home"), Nt = e(Ce, "Blocks"), Qt = e(W, "Inbox"), qt = e(xe, "Lightbulb"), Xt = e(Ue, "Leaf"), jt = e(Be, "LayoutGrid"), Jt = e(Oe, "Mail"), Kt = e(ve, "Palette"), Yt = e(ze, "PieChart"), Zt = e(Ne, "Plug"), _t = e(qe, "Rocket"), en = e(Xe, "Settings"), on = e(je, "Shapes"), tn = e(Y, "Sparkles"), nn = e(Ke, "Star"), sn = e(eo, "Telescope"), an = e(_e, "Target"), rn = e(V, "User"), cn = e(lo, "Users"), ln = e(Ve, "Play"), hn = e(Qe, "Presentation"), Cn = e(Ge, "Pause"), gn = e(X, "Paperclip"), pn = e(Q, "CircleDashed"), un = e(io, "Wrench");
13
13
  export {
14
14
  wt as Activity,
15
15
  Tt as AgentChat,
@@ -17,11 +17,11 @@ export {
17
17
  po as ArrowDown,
18
18
  uo as ArrowLeft,
19
19
  $o as ArrowRight,
20
- ko as ArrowUp,
21
- So as ArrowUpRight,
22
- mo as At,
20
+ So as ArrowUp,
21
+ ko as ArrowUpRight,
22
+ Bo as At,
23
23
  it as AuditTrail,
24
- St as Bell,
24
+ kt as Bell,
25
25
  Nt as Blocks,
26
26
  Pt as Bolt,
27
27
  At as BookOpen,
@@ -31,7 +31,7 @@ export {
31
31
  Uo as Call,
32
32
  pt as Check,
33
33
  $t as CheckCircle,
34
- yt as CheckList,
34
+ mt as CheckList,
35
35
  fo as ChevronDown,
36
36
  wo as ChevronLeft,
37
37
  To as ChevronRight,
@@ -41,12 +41,12 @@ export {
41
41
  xo as Close,
42
42
  Mo as CloseCircle,
43
43
  Zo as Code,
44
- Bt as Component,
44
+ yt as Component,
45
45
  Do as Copy,
46
- mt as Database,
46
+ Bt as Database,
47
47
  Io as Download,
48
48
  at as DragHandle,
49
- yo as ExternalLink,
49
+ mo as ExternalLink,
50
50
  Go as Eye,
51
51
  Wo as EyeOff,
52
52
  Dt as File,
@@ -80,7 +80,7 @@ export {
80
80
  st as MoreVertical,
81
81
  Rt as Music,
82
82
  Kt as Palette,
83
- Bo as PanelLeft,
83
+ yo as PanelLeft,
84
84
  gn as Paperclip,
85
85
  Cn as Pause,
86
86
  vo as Pencil,
@@ -116,7 +116,7 @@ export {
116
116
  rn as User,
117
117
  cn as Users,
118
118
  vt as Video,
119
- kt as Warning,
119
+ St as Warning,
120
120
  ft as WarningCircle,
121
121
  un as Wrench
122
122
  };
package/llms.txt CHANGED
@@ -16,8 +16,8 @@
16
16
  ## Tokens
17
17
 
18
18
  Reference semantic roles, never raw color/dimension literals (ads-lint rejects literals). Each role produces `bg-/text-/border-<role>` utilities:
19
- - `background`
20
- - `foreground`
19
+ - `background` — The shell canvas and its ink: the ground between top-level panels.
20
+ - `foreground` — The shell canvas and its ink: the ground between top-level panels.
21
21
  - `on-white-primary` — Contextual text hierarchies — three accessible levels per surface.
22
22
  - `on-white-secondary` — Contextual text hierarchies — three accessible levels per surface.
23
23
  - `on-white-tertiary` — Contextual text hierarchies — three accessible levels per surface.
@@ -27,14 +27,14 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
27
27
  - `primary` — Context-free compatibility aliases remain conservative.
28
28
  - `secondary` — Context-free compatibility aliases remain conservative.
29
29
  - `tertiary` — Context-free compatibility aliases remain conservative.
30
- - `surface`
31
- - `surface-foreground`
32
- - `elevated`
33
- - `muted`
34
- - `muted-foreground`
35
- - `card`
36
- - `card-foreground`
37
- - `specimen-stroke`
30
+ - `surface` — One continuous recess inside a white surface, never a screen-level ground.
31
+ - `surface-foreground` — One continuous recess inside a white surface, never a screen-level ground.
32
+ - `elevated` — One continuous recess inside a white surface, never a screen-level ground.
33
+ - `muted` — The hover and row-state wash: interaction, not a default item background.
34
+ - `muted-foreground` — The hover and row-state wash: interaction, not a default item background.
35
+ - `card` — The white working plane that sits on the canvas, and the specimen hairline.
36
+ - `card-foreground` — The white working plane that sits on the canvas, and the specimen hairline.
37
+ - `specimen-stroke` — The white working plane that sits on the canvas, and the specimen hairline.
38
38
  - `action-primary` — Primary CTA role — restrained Studio green, used sparingly.
39
39
  - `action-primary-foreground` — Primary CTA role — restrained Studio green, used sparingly.
40
40
  - `action-primary-hover` — Primary CTA role — restrained Studio green, used sparingly.
@@ -47,31 +47,31 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
47
47
  - `brand-text` — Compatibility action role — neutral ink, never a colored primary hue.
48
48
  - `fill` — Quiet fill — avatars, chips, and disabled controls
49
49
  - `fill-foreground` — Quiet fill — avatars, chips, and disabled controls
50
- - `table-shell` — Quiet fill — avatars, chips, and disabled controls
51
- - `table-stroke` — Quiet fill — avatars, chips, and disabled controls
52
- - `table-header-foreground` — Quiet fill — avatars, chips, and disabled controls
53
- - `artifact-canvas`
54
- - `accent`
55
- - `accent-foreground`
56
- - `success` — Lichen success-700 clears AA on White and both success soft fills;
57
- - `success-foreground` — Lichen success-700 clears AA on White and both success soft fills;
58
- - `warning` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
59
- - `warning-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
60
- - `danger` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
61
- - `danger-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
62
- - `info` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
63
- - `info-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
64
- - `border-primary`
65
- - `border-secondary`
66
- - `border-tertiary`
67
- - `border`
68
- - `border-strong`
69
- - `input`
70
- - `menu-stroke`
71
- - `toast-stroke`
72
- - `tree-stroke`
73
- - `ring`
74
- - `overlay`
50
+ - `table-shell` — Table surfaces: the white tray, its hairlines, and header ink.
51
+ - `table-stroke` — Table surfaces: the white tray, its hairlines, and header ink.
52
+ - `table-header-foreground` — Table surfaces: the white tray, its hairlines, and header ink.
53
+ - `artifact-canvas` — The artifact sheet: white warmed by a trace of the brand mark.
54
+ - `accent` — The active and selected wash, one step above hover.
55
+ - `accent-foreground` — The active and selected wash, one step above hover.
56
+ - `success` — Lichen success-700 clears AA on White and both success soft fills; success-600 is reserved for non-text marks because its 3.73:1 contrast on White does not clear body-text AA.
57
+ - `success-foreground` — Lichen success-700 clears AA on White and both success soft fills; success-600 is reserved for non-text marks because its 3.73:1 contrast on White does not clear body-text AA.
58
+ - `warning` — Amber-500 fill kept (it IS the caution signal); dark ink foreground instead of white = 6.94:1 (white on amber was 2.35:1, failed even 3:1).
59
+ - `warning-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground instead of white = 6.94:1 (white on amber was 2.35:1, failed even 3:1).
60
+ - `danger` — Danger and info: solid semantic fills carrying white foregrounds.
61
+ - `danger-foreground` — Danger and info: solid semantic fills carrying white foregrounds.
62
+ - `info` — Danger and info: solid semantic fills carrying white foregrounds.
63
+ - `info-foreground` — Danger and info: solid semantic fills carrying white foregrounds.
64
+ - `border-primary` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
65
+ - `border-secondary` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
66
+ - `border-tertiary` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
67
+ - `border` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
68
+ - `border-strong` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
69
+ - `input` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
70
+ - `menu-stroke` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
71
+ - `toast-stroke` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
72
+ - `tree-stroke` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
73
+ - `ring` — Focus ring and scrim, both translucent warm ink.
74
+ - `overlay` — Focus ring and scrim, both translucent warm ink.
75
75
 
76
76
  ## Design principles
77
77
 
@@ -97,7 +97,7 @@ Every surface defaults to shadow-0. Use the numbered elevation ladder only when
97
97
  - Do: When requested, use shadow-100 for controls, shadow-200 for raised surfaces and pressable cards, shadow-300 for menus, popovers, listboxes, and toasts, and shadow-400 for dialogs and overlay drawers.
98
98
  - Do: Reserve shadow-500 and shadow-600 for rare higher stacked layers; the legacy shadow-elevation hook resolves to shadow-0.
99
99
  - Don't: Infer permission to use a shadow from actionability, floating placement, or component type.
100
- - Don't: Use raw shadow values or legacy shadow-sm/md/lg/xl utilities.
100
+ - Don't: Use raw shadow values or legacy named shadow utilities.
101
101
  - Don't: Put a shadow on a non-interactive surface for decoration.
102
102
  - Don't: Use shadow-500 or shadow-600 as a routine default.
103
103
 
@@ -115,15 +115,15 @@ Component motion follows the closest Animate UI interaction pattern, using role-
115
115
  - Don't: Animate keyboard-initiated or 100×/day actions (e.g. a command-palette toggle).
116
116
  - Don't: Add motion to a component only because it is visible; static structure and decorative chrome stay still.
117
117
 
118
- ### 4. Icons: Hugeicons, stroke only [lint: icon-package-import]
118
+ ### 4. Icons: Phosphor, regular weight (fill for active) [lint: icon-package-import]
119
119
 
120
- All icons come from Hugeicons in the Stroke Rounded style only. Components import named icons from the @/lib/icons registry — never from an icon package directly — so a free→Pro swap or a restyle touches one file.
120
+ All icons come from Phosphor Icons at the regular weight — the stroke-led icon language of ADS. Components import named icons from the @/lib/icons registry — never from an icon package directly — so swapping the underlying set touches one file.
121
121
 
122
- - Do: Import icons from the @/lib/icons registry; add a new one there (stroke variant) before using it.
122
+ - Do: Import icons from the @/lib/icons registry; wrap a new Phosphor component with createIcon there before using it.
123
123
  - Do: Let icons default to size='1em' so they scale with text; size with a size prop or size-* class.
124
- - Do: Keep stroke weight at the drawn 1.5; strokeWidth={2} is the one sanctioned emphasis step.
125
- - Don't: Import from an icon package directly, or use solid/duotone/twotone/fill variants.
126
- - Don't: Use a stroke weight thinner than 1.5.
124
+ - Do: Render weight='fill' for the active or selected state, and weight='bold' for the rare heavier stroke.
125
+ - Don't: Import from an icon package directly, or install a second icon set.
126
+ - Don't: Leave an active nav item's icon at the regular stroke weight.
127
127
 
128
128
  ### 5. Demo screens: the shell owns the frame [judgment]
129
129
 
@@ -142,13 +142,17 @@ Indicator/status dots (Badge & Chip dot variants, ConnectionStatus, chart legend
142
142
 
143
143
  ### 7. ADS-first UI: use the library; extend only when asked [lint: deep-import, barrel-aliased-import, barrel-default-import, barrel-namespace-import, external-ui-import]
144
144
 
145
- Every UI decision stays synchronized with ADS. Before making a new screen/control/pattern, check the ADS component suite first and use the exact exported name from the public barrel. Do not hand-roll, alias, deep-import, or import external UI libraries.
145
+ Every UI decision stays synchronized with ADS. Search the full catalog before deciding a component is missing, and use the exact exported name from the public barrel. When the barrel genuinely has no primitive, the sanctioned fallback is a shadcn/ui component vendored into src/components/ui through the repo's components.json recipe — never a hand-rolled control and never a UI library imported at a call site.
146
146
 
147
147
  - Do: Use an existing ADS component by its exact exported name from the package barrel; compose existing components for layout-only patterns.
148
- - Do: Ask the user before extending ADS; only an explicit request authorizes new library work.
148
+ - Do: Search the whole catalog before concluding a component is missing — the documented specimens are a sample, not the inventory.
149
+ - Do: Fall back to shadcn/ui when the barrel has no primitive: vendor it with npx shadcn add into src/components/ui, import cn from @/lib/utils, and swap its lucide icons for @/lib/icons.
150
+ - Do: Let a vendored shadcn component inherit the ADS palette through the shadcn-compat aliases in theme.css rather than restyling it by hand.
151
+ - Do: Ask the user before promoting a vendored component into the public barrel; only an explicit request authorizes new library work.
149
152
  - Do: When authorized, add the component to the right family, export its exact name through the barrel, and document it.
150
153
  - Don't: Deep-import, alias, default/namespace-import, or hand-roll a local copy of a component.
151
- - Don't: Import a visual component directly from the web or an npm UI library.
154
+ - Don't: Import a visual component directly from the web or an npm UI library at a call site.
155
+ - Don't: Reach for the shadcn fallback before searching the catalog, or install a second component library beside it.
152
156
 
153
157
  ### 8. Minimal information per screen [judgment]
154
158
 
@@ -347,7 +351,6 @@ Before using any component below, preserve its built-in motion and apply the mot
347
351
  - [DropdownLabel] — component [docs](https://ads.actioneer.dev/#/dropdown)
348
352
  - [DropdownSeparator] — component [docs](https://ads.actioneer.dev/#/dropdown)
349
353
  - [DropdownTrigger] — component [docs](https://ads.actioneer.dev/#/dropdown)
350
- - [FloatingDrawer] — component (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
351
354
  - [InlineDrawer] — component (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
352
355
  - [Modal] — Use for a blocking, focused task or confirmation that must interrupt the page until resolved (portaled, focus-trapped, Escape/backdrop dismissible). (variants: size: sm|md|lg|xl|full; position: center|top) [docs](https://ads.actioneer.dev/#/modal)
353
356
  - [ModalBody] — component (variants: size: sm|md|lg|xl|full; position: center|top) [docs](https://ads.actioneer.dev/#/modal)
@@ -364,13 +367,11 @@ Before using any component below, preserve its built-in motion and apply the mot
364
367
  - [ToastProvider] — component [docs](https://ads.actioneer.dev/#/toast)
365
368
  - [CommandPaletteItem] — TypeScript type
366
369
  - [CommandPaletteProps] — TypeScript type
367
- - [DrawerAppearance] — TypeScript type
368
370
  - [DrawerProps] — TypeScript type
369
371
  - [DropdownContentProps] — TypeScript type
370
372
  - [DropdownItemProps] — TypeScript type
371
373
  - [DropdownProps] — TypeScript type
372
374
  - [DropdownTriggerProps] — TypeScript type
373
- - [FloatingDrawerProps] — TypeScript type
374
375
  - [InlineDrawerProps] — TypeScript type
375
376
  - [ModalBodyProps] — TypeScript type
376
377
  - [ModalDrawerProps] — TypeScript type
@@ -453,7 +454,7 @@ Before using any component below, preserve its built-in motion and apply the mot
453
454
  - [SeriesChart] — component [docs](https://ads.actioneer.dev/#/viz-charts)
454
455
  - [StatusAnswer] — component (variants: tone: default|primary|success|warning|danger|info) [docs](https://ads.actioneer.dev/#/ai/answer)
455
456
  - [Tab] — component (variants: orientation: horizontal|vertical; selected: true|false) [docs](https://ads.actioneer.dev/#/tabs)
456
- - [Table] — Use Table for structured tabular data that may need row selection, column sorting, sticky columns, or a paginated footer — not for simple key-value lists. Interactive rows inherit the shared soft neutral hover/focus sink and keep their normal table geometry; do not add a brand tint or hover-only corner rounding. Primary record links stay text-only in every state: never reveal an arrow, chevron, or other directional icon only on hover. Persistent row actions use a final sticky-right column plus elevatedActionColumn so one body-column shadow lifts the action surface instead of repeating on individual cells. The empty matching header cell remains transparent and non-sticky. [docs](https://ads.actioneer.dev/#/table)
457
+ - [Table] — Use Table for structured tabular data that may need row selection, column sorting, sticky columns, or a paginated footer — not for simple key-value lists. Every primary body-cell value defaults to text-m (15px / 22px); only clearly secondary metadata inside a cell may opt down to text-s. Interactive rows inherit the shared soft neutral hover/focus sink and keep their normal table geometry; do not add a brand tint or hover-only corner rounding. Primary record links stay text-only in every state: never reveal an arrow, chevron, or other directional icon only on hover. Persistent row actions use a final sticky-right column plus elevatedActionColumn so one body-column shadow lifts the action surface instead of repeating on individual cells. The empty matching header cell remains transparent and non-sticky. [docs](https://ads.actioneer.dev/#/table)
457
458
  - [TableAnswer] — component (variants: tone: default|primary|success|warning|danger|info) [docs](https://ads.actioneer.dev/#/ai/answer)
458
459
  - [TableBody] — component [docs](https://ads.actioneer.dev/#/table)
459
460
  - [TableCell] — component [docs](https://ads.actioneer.dev/#/table)