@floegence/floe-webapp-core 0.87.3 → 0.88.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.
package/dist/chat.css CHANGED
@@ -371,8 +371,8 @@
371
371
  background-color: var(--inline-code-background);
372
372
  color: var(--inline-code-foreground);
373
373
  font-family: var(--font-mono);
374
- font-size: 0.91em;
375
- font-weight: 400;
374
+ font-size: 0.96em;
375
+ font-weight: 500;
376
376
  line-height: inherit;
377
377
  white-space: break-spaces;
378
378
  overflow-wrap: anywhere;
@@ -0,0 +1,18 @@
1
+ import { type JSX } from 'solid-js';
2
+ export interface ActivityRailIconProps extends JSX.SvgSVGAttributes<SVGSVGElement> {
3
+ size?: number | string;
4
+ /** Navigation selection or an open disclosure; hover never fills the glyph. */
5
+ active?: boolean;
6
+ }
7
+ export interface ActivityRailGlyphProps extends ActivityRailIconProps {
8
+ shape: () => JSX.Element;
9
+ detail?: () => JSX.Element;
10
+ outline?: () => JSX.Element;
11
+ lines?: () => JSX.Element;
12
+ activeLines?: () => JSX.Element;
13
+ activeFillOpacity?: number;
14
+ identity?: string;
15
+ }
16
+ /** Shared light-face/solid-selection recipe. Factories give each SVG layer its
17
+ * own nodes; alpha cutouts reveal the actual surface in every shell theme. */
18
+ export declare function ActivityRailGlyph(props: ActivityRailGlyphProps): JSX.Element;
@@ -0,0 +1,76 @@
1
+ import { spread as p, mergeProps as h, insert as l, createComponent as d, setAttribute as o, effect as m, memo as k, template as i } from "solid-js/web";
2
+ import { splitProps as _, createUniqueId as $, Show as f } from "solid-js";
3
+ var w = /* @__PURE__ */ i("<svg><defs><mask maskUnits=userSpaceOnUse x=0 y=0 width=24 height=24 style=mask-type:luminance><rect width=24 height=24 fill=white stroke=none></rect><g fill=black stroke=black color=black stroke-width=1.5></svg>", !1, !0, !1), y = /* @__PURE__ */ i("<svg><g data-floe-rail-part=solid fill=currentColor stroke=none></svg>", !1, !0, !1), C = /* @__PURE__ */ i("<svg><g data-floe-rail-part=active-lines></svg>", !1, !0, !1), b = /* @__PURE__ */ i("<svg><g data-floe-rail-part=lines>"), x = /* @__PURE__ */ i("<svg><g data-floe-rail-part=face fill=currentColor fill-opacity=.13 stroke=none></svg>", !1, !0, !1), z = /* @__PURE__ */ i("<svg><g data-floe-rail-part=outline></svg>", !1, !0, !1);
4
+ function U(v) {
5
+ const [e, g] = _(v, ["size", "active", "shape", "detail", "outline", "lines", "activeLines", "activeFillOpacity", "identity", "class", "children"]), u = "floe-rail-cut-" + $();
6
+ return (() => {
7
+ var a = b(), c = a.firstChild;
8
+ return p(a, h(g, {
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ get width() {
11
+ return e.size ?? 24;
12
+ },
13
+ get height() {
14
+ return e.size ?? 24;
15
+ },
16
+ viewBox: "0 0 24 24",
17
+ fill: "none",
18
+ stroke: "currentColor",
19
+ "stroke-width": "1.5",
20
+ "stroke-linecap": "round",
21
+ "stroke-linejoin": "round",
22
+ get class() {
23
+ return e.class;
24
+ },
25
+ "aria-hidden": "true",
26
+ get "data-floe-rail-icon"() {
27
+ return e.identity;
28
+ },
29
+ get "data-floe-rail-active"() {
30
+ return e.active ? "true" : "false";
31
+ }
32
+ }), !0, !0), l(a, d(f, {
33
+ get when() {
34
+ return e.detail;
35
+ },
36
+ get children() {
37
+ var t = w(), r = t.firstChild, s = r.firstChild, n = s.nextSibling;
38
+ return o(r, "id", u), l(n, () => e.detail?.()), t;
39
+ }
40
+ }), c), l(c, () => e.lines?.()), l(a, d(f, {
41
+ get when() {
42
+ return e.active;
43
+ },
44
+ get fallback() {
45
+ return [(() => {
46
+ var t = x();
47
+ return l(t, () => e.shape()), t;
48
+ })(), (() => {
49
+ var t = z();
50
+ return l(t, (() => {
51
+ var r = k(() => !!e.outline);
52
+ return () => r() ? e.outline() : e.shape();
53
+ })(), null), l(t, () => e.detail?.(), null), t;
54
+ })()];
55
+ },
56
+ get children() {
57
+ return [(() => {
58
+ var t = y();
59
+ return l(t, () => e.shape()), m((r) => {
60
+ var s = e.activeFillOpacity ?? 1, n = e.detail ? "url(#" + u + ")" : void 0;
61
+ return s !== r.e && o(t, "fill-opacity", r.e = s), n !== r.t && o(t, "mask", r.t = n), r;
62
+ }, {
63
+ e: void 0,
64
+ t: void 0
65
+ }), t;
66
+ })(), (() => {
67
+ var t = C();
68
+ return l(t, () => e.activeLines?.()), t;
69
+ })()];
70
+ }
71
+ }), null), a;
72
+ })();
73
+ }
74
+ export {
75
+ U as ActivityRailGlyph
76
+ };
@@ -1,22 +1,21 @@
1
- import type { Component, JSX } from 'solid-js';
2
- export interface ActivityRailIconProps extends JSX.SvgSVGAttributes<SVGSVGElement> {
3
- size?: number | string;
4
- }
5
- /** Launchpad — four rounded tiles in a 2x2 field. */
1
+ import type { Component } from 'solid-js';
2
+ import { type ActivityRailIconProps } from './ActivityRailGlyph';
3
+ export { ActivityRailGlyph, type ActivityRailGlyphProps, type ActivityRailIconProps, } from './ActivityRailGlyph';
6
4
  export declare const RailLaunchpad: Component<ActivityRailIconProps>;
7
- /** Notes — a page with a folded corner and writing rules. */
5
+ export declare const RailFiles: Component<ActivityRailIconProps>;
6
+ export declare const RailTerminal: Component<ActivityRailIconProps>;
7
+ export declare const RailMonitor: Component<ActivityRailIconProps>;
8
+ export declare const RailCode: Component<ActivityRailIconProps>;
9
+ export declare const RailGlobe: Component<ActivityRailIconProps>;
10
+ export declare const RailApplications: Component<ActivityRailIconProps>;
11
+ export declare const RailContainers: Component<ActivityRailIconProps>;
12
+ export declare const RailConnections: Component<ActivityRailIconProps>;
13
+ export declare const RailSwitch: Component<ActivityRailIconProps>;
14
+ export declare const RailSettings: Component<ActivityRailIconProps>;
8
15
  export declare const RailNotes: Component<ActivityRailIconProps>;
9
- /** Showcase — a workspace frame with chrome and a side rail. */
10
16
  export declare const RailShowcase: Component<ActivityRailIconProps>;
11
- /** Files — a tabbed folder. */
12
- export declare const RailFiles: Component<ActivityRailIconProps>;
13
- /** Search — lens. */
14
17
  export declare const RailSearch: Component<ActivityRailIconProps>;
15
- /** Settings — two rails with a knob each. Legible where a gear is not. */
16
- export declare const RailSettings: Component<ActivityRailIconProps>;
17
- /** Chat — speech bubble with a tail. */
18
18
  export declare const RailChat: Component<ActivityRailIconProps>;
19
- /** Design tokens — sheets stacked behind a front card. */
20
19
  export declare const RailDesignTokens: Component<ActivityRailIconProps>;
21
20
  export declare const ActivityRailIcons: {
22
21
  readonly launchpad: Component<ActivityRailIconProps>;
@@ -27,4 +26,12 @@ export declare const ActivityRailIcons: {
27
26
  readonly settings: Component<ActivityRailIconProps>;
28
27
  readonly chat: Component<ActivityRailIconProps>;
29
28
  readonly designTokens: Component<ActivityRailIconProps>;
29
+ readonly terminal: Component<ActivityRailIconProps>;
30
+ readonly monitor: Component<ActivityRailIconProps>;
31
+ readonly code: Component<ActivityRailIconProps>;
32
+ readonly globe: Component<ActivityRailIconProps>;
33
+ readonly applications: Component<ActivityRailIconProps>;
34
+ readonly containers: Component<ActivityRailIconProps>;
35
+ readonly connections: Component<ActivityRailIconProps>;
36
+ readonly switch: Component<ActivityRailIconProps>;
30
37
  };
@@ -1,68 +1,107 @@
1
- import { createComponent as s, mergeProps as a, insert as c, effect as f, setAttribute as h, template as e } from "solid-js/web";
2
- var u = /* @__PURE__ */ e('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden=true>'), d = /* @__PURE__ */ e("<svg><rect x=3.5 y=3.5 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), o = /* @__PURE__ */ e("<svg><rect x=13 y=3.5 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), p = /* @__PURE__ */ e("<svg><rect x=3.5 y=13 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), m = /* @__PURE__ */ e("<svg><rect x=13 y=13 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), _ = /* @__PURE__ */ e('<svg><path d="M7 3.5h6.75a1.5 1.5 0 0 1 1.06.44l5.25 5.25a1.5 1.5 0 0 1 .44 1.06V18.5a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2Z"></svg>', !1, !0, !1), $ = /* @__PURE__ */ e('<svg><path d="M13.75 3.5v5.25a1.5 1.5 0 0 0 1.5 1.5H20.5"></svg>', !1, !0, !1), x = /* @__PURE__ */ e('<svg><path d="M8.5 13h9"></svg>', !1, !0, !1), w = /* @__PURE__ */ e('<svg><path d="M8.5 16.75h5.5"></svg>', !1, !0, !1), M = /* @__PURE__ */ e("<svg><rect x=3.5 y=4.5 width=17 height=15 rx=2.5></svg>", !1, !0, !1), y = /* @__PURE__ */ e('<svg><path d="M3.5 8.75h17"></svg>', !1, !0, !1), R = /* @__PURE__ */ e('<svg><path d="M9.5 8.75v10.75"></svg>', !1, !0, !1), k = /* @__PURE__ */ e('<svg><path d="M3.5 17.5V6.5a2 2 0 0 1 2-2h3.35a2 2 0 0 1 1.6.8l1 1.35a2 2 0 0 0 1.6.8h3.45a2 2 0 0 1 2 2v8.05a2 2 0 0 1-2 2H5.5a2 2 0 0 1-2-2Z"></svg>', !1, !0, !1), H = /* @__PURE__ */ e("<svg><circle cx=10.75 cy=10.75 r=6.25></svg>", !1, !0, !1), C = /* @__PURE__ */ e('<svg><path d="m15.25 15.25 5.25 5.25"></svg>', !1, !0, !1), S = /* @__PURE__ */ e('<svg><path d="M3.5 6.5h3.25"></svg>', !1, !0, !1), Z = /* @__PURE__ */ e('<svg><path d="M12.75 6.5h7.75"></svg>', !1, !0, !1), z = /* @__PURE__ */ e("<svg><circle cx=9.75 cy=6.5 r=2.75></svg>", !1, !0, !1), A = /* @__PURE__ */ e('<svg><path d="M3.5 17.5h8.75"></svg>', !1, !0, !1), B = /* @__PURE__ */ e('<svg><path d="M18.25 17.5h2.25"></svg>', !1, !0, !1), L = /* @__PURE__ */ e("<svg><circle cx=15.25 cy=17.5 r=2.75></svg>", !1, !0, !1), T = /* @__PURE__ */ e('<svg><path d="M20.5 7.5a3 3 0 0 0-3-3h-11a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h1.5v3.5L11.5 16.5H17.5a3 3 0 0 0 3-3Z"></svg>', !1, !0, !1), V = /* @__PURE__ */ e("<svg><rect x=6.5 y=3.5 width=14 height=14 rx=3.5></svg>", !1, !0, !1), b = /* @__PURE__ */ e('<svg><path d="M3.5 8.5v8a4 4 0 0 0 4 4h6"></svg>', !1, !0, !1);
3
- function l(t) {
4
- return (() => {
5
- var g = u();
6
- return c(g, () => t.children), f((r) => {
7
- var v = t.size ?? 24, i = t.size ?? 24, n = t.class;
8
- return v !== r.e && h(g, "width", r.e = v), i !== r.t && h(g, "height", r.t = i), n !== r.a && h(g, "class", r.a = n), r;
9
- }, {
10
- e: void 0,
11
- t: void 0,
12
- a: void 0
13
- }), g;
14
- })();
15
- }
16
- const j = (t) => s(l, a(t, {
17
- get children() {
18
- return [d(), o(), p(), m()];
19
- }
20
- })), D = (t) => s(l, a(t, {
21
- get children() {
22
- return [_(), $(), x(), w()];
23
- }
24
- })), F = (t) => s(l, a(t, {
25
- get children() {
26
- return [M(), y(), R()];
27
- }
28
- })), I = (t) => s(l, a(t, {
29
- get children() {
30
- return k();
31
- }
32
- })), N = (t) => s(l, a(t, {
33
- get children() {
34
- return [H(), C()];
35
- }
36
- })), P = (t) => s(l, a(t, {
37
- get children() {
38
- return [S(), Z(), z(), A(), B(), L()];
39
- }
40
- })), q = (t) => s(l, a(t, {
41
- get children() {
42
- return T();
43
- }
44
- })), E = (t) => s(l, a(t, {
45
- get children() {
46
- return [V(), b()];
47
- }
48
- })), J = {
49
- launchpad: j,
50
- notes: D,
51
- showcase: F,
52
- files: I,
53
- search: N,
54
- settings: P,
55
- chat: q,
56
- designTokens: E
1
+ import { createComponent as s, mergeProps as a, insert as g, template as t } from "solid-js/web";
2
+ import { ActivityRailGlyph as l } from "./ActivityRailGlyph.js";
3
+ var o = /* @__PURE__ */ t("<svg><rect x=3.5 y=5 width=17 height=14 rx=2.5></svg>", !1, !0, !1), c = /* @__PURE__ */ t("<svg><rect x=3.75 y=6.75 width=13.5 height=1.5 rx=.75></svg>", !1, !0, !1), f = /* @__PURE__ */ t('<svg><path d="M16 5.25q-.5-.3-.5.3v3.9q0 .6.5.3l3.2-1.85q.65-.4 0-.8Z"></svg>', !1, !0, !1), p = /* @__PURE__ */ t("<svg><rect x=3.5 y=3.5 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), d = /* @__PURE__ */ t("<svg><rect x=13 y=3.5 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), m = /* @__PURE__ */ t("<svg><rect x=3.5 y=13 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), v = /* @__PURE__ */ t("<svg><rect x=13 y=13 width=7.5 height=7.5 rx=2.2></svg>", !1, !0, !1), u = /* @__PURE__ */ t('<svg><path d="M3.5 8a2 2 0 0 1 2-2h3.15a2 2 0 0 1 1.6.8l.95 1.3a2 2 0 0 0 1.6.8h5.7a2 2 0 0 1 2 2v6.6a2 2 0 0 1-2 2H5.5a2 2 0 0 1-2-2Z"></svg>', !1, !0, !1), _ = /* @__PURE__ */ t('<svg><path fill=none d="m7 9 2.5 2.2q.8.8 0 1.6L7 15M13 15h3.5"></svg>', !1, !0, !1), $ = /* @__PURE__ */ t('<svg><path d="M3.5 15.5h1.6q.5 0 .65-.55L7.9 7.3q.25-.9.45 0l2.35 10.8q.2.9.45 0l2.1-6.9q.25-.8.6 0l1.4 3.75q.2.55.75.55h4.5V19.5H3.5Z"></svg>', !1, !0, !1), n = /* @__PURE__ */ t('<svg><path d="M3.5 15.5h1.6q.5 0 .65-.55L7.9 7.3q.25-.9.45 0l2.35 10.8q.2.9.45 0l2.1-6.9q.25-.8.6 0l1.4 3.75q.2.55.75.55h4.5"></svg>', !1, !0, !1), y = /* @__PURE__ */ t('<svg><path fill=none stroke-width=1.35 d="m8.5 9-2.2 2.2q-.8.8 0 1.6L8.5 15m7-6 2.2 2.2q.8.8 0 1.6L15.5 15M13 8.5l-2 7"></svg>', !1, !0, !1), M = /* @__PURE__ */ t("<svg><circle cx=12 cy=12 r=8.25></svg>", !1, !0, !1), w = /* @__PURE__ */ t('<svg><path fill=none stroke-width=1.4 d="M3.75 12h16.5M12 3.75c-4.6 4.8-4.6 11.7 0 16.5M12 3.75c4.6 4.8 4.6 11.7 0 16.5"></svg>', !1, !0, !1), x = /* @__PURE__ */ t('<svg><path fill=none stroke-width=1.3 d="M3.5 9h17"></svg>', !1, !0, !1), q = /* @__PURE__ */ t('<svg><path stroke-width=0 fill=currentColor d="M10 11.1q-.5-.3-.5.3v4.7q0 .6.5.3l4-2.35q.5-.3 0-.6Z"></svg>', !1, !0, !1), R = /* @__PURE__ */ t('<svg><path d="m10.6 4.25-5.1 2.8a3 3 0 0 0-1.75 2.7v4.9a3 3 0 0 0 1.75 2.7l5.1 2.8a3 3 0 0 0 2.8 0l5.1-2.8a3 3 0 0 0 1.75-2.7v-4.9a3 3 0 0 0-1.75-2.7l-5.1-2.8a3 3 0 0 0-2.8 0Z"></svg>', !1, !0, !1), L = /* @__PURE__ */ t('<svg><path fill=none stroke-width=1.4 d="m4 8.2 6.5 3.4q1.5.8 3 0L20 8.2M12 12v8.3"></svg>', !1, !0, !1), k = /* @__PURE__ */ t('<svg><path d="M7.25 11v3.75a2 2 0 0 0 2 2H13M16.75 13V9.25a2 2 0 0 0-2-2H11"></svg>', !1, !0, !1), H = /* @__PURE__ */ t('<svg><g transform="rotate(180 12 12)"></svg>', !1, !0, !1), Z = /* @__PURE__ */ t('<svg><path d="M4.5 7.5h14.75m-3.25-2.25 3.25 2.25L16 9.75M19.5 16.5H4.75M8 14.25 4.75 16.5 8 18.75"></svg>', !1, !0, !1), C = /* @__PURE__ */ t("<svg><circle cx=9.75 cy=6.5 r=2.75></svg>", !1, !0, !1), S = /* @__PURE__ */ t("<svg><circle cx=15.25 cy=17.5 r=2.75></svg>", !1, !0, !1), A = /* @__PURE__ */ t('<svg><path d="M3.5 6.5h3.5M12.5 6.5h8M3.5 17.5h9M18 17.5h2.5"></svg>', !1, !0, !1), b = /* @__PURE__ */ t('<svg><path d="M7 3.5h6.75a1.5 1.5 0 0 1 1.06.44l5.25 5.25a1.5 1.5 0 0 1 .44 1.06V18.5a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2Z"></svg>', !1, !0, !1), T = /* @__PURE__ */ t('<svg><path fill=none d="M13.75 3.5v5.25a1.5 1.5 0 0 0 1.5 1.5H20.5M8.5 13h9M8.5 16.75h5.5"></svg>', !1, !0, !1), V = /* @__PURE__ */ t("<svg><rect x=3.5 y=4.5 width=17 height=15 rx=2.5></svg>", !1, !0, !1), F = /* @__PURE__ */ t('<svg><path fill=none d="M3.5 8.75h17M9.5 8.75v10.75"></svg>', !1, !0, !1), G = /* @__PURE__ */ t("<svg><circle cx=10.75 cy=10.75 r=6.25></svg>", !1, !0, !1), D = /* @__PURE__ */ t('<svg><path d="m15.25 15.25 5.25 5.25"></svg>', !1, !0, !1), I = /* @__PURE__ */ t('<svg><path d="M20.5 7.5a3 3 0 0 0-3-3h-11a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h1.5v3.5L11.5 16.5H17.5a3 3 0 0 0 3-3Z"></svg>', !1, !0, !1), N = /* @__PURE__ */ t("<svg><rect x=6.5 y=3.5 width=14 height=14 rx=3.5></svg>", !1, !0, !1), O = /* @__PURE__ */ t('<svg><path d="M3.5 8.5v8a4 4 0 0 0 4 4h6"></svg>', !1, !0, !1);
4
+ const i = () => o(), r = () => [c(), f()], P = (e) => s(l, a(e, {
5
+ identity: "launchpad",
6
+ shape: () => [p(), d(), m(), v()]
7
+ })), W = (e) => s(l, a(e, {
8
+ identity: "files",
9
+ shape: () => u()
10
+ })), j = (e) => s(l, a(e, {
11
+ identity: "terminal",
12
+ shape: i,
13
+ detail: () => _()
14
+ })), z = (e) => s(l, a(e, {
15
+ identity: "monitor",
16
+ shape: () => $(),
17
+ outline: () => n(),
18
+ activeFillOpacity: 0.2,
19
+ activeLines: () => n()
20
+ })), B = (e) => s(l, a(e, {
21
+ identity: "code",
22
+ shape: i,
23
+ detail: () => y()
24
+ })), E = (e) => s(l, a(e, {
25
+ identity: "globe",
26
+ shape: () => M(),
27
+ detail: () => w()
28
+ })), J = (e) => s(l, a(e, {
29
+ identity: "applications",
30
+ shape: i,
31
+ detail: () => [x(), q()]
32
+ })), K = (e) => s(l, a(e, {
33
+ identity: "containers",
34
+ shape: () => R(),
35
+ detail: () => L()
36
+ })), Q = (e) => s(l, a(e, {
37
+ identity: "connections",
38
+ shape: () => [p(), v()],
39
+ lines: () => k()
40
+ })), U = (e) => s(l, a(e, {
41
+ identity: "switch",
42
+ shape: () => [s(r, {}), (() => {
43
+ var h = H();
44
+ return g(h, s(r, {})), h;
45
+ })()],
46
+ outline: () => Z()
47
+ })), X = (e) => s(l, a(e, {
48
+ identity: "settings",
49
+ shape: () => [C(), S()],
50
+ lines: () => A()
51
+ })), Y = (e) => s(l, a(e, {
52
+ identity: "notes",
53
+ shape: () => b(),
54
+ detail: () => T()
55
+ })), tt = (e) => s(l, a(e, {
56
+ identity: "showcase",
57
+ shape: () => V(),
58
+ detail: () => F()
59
+ })), et = (e) => s(l, a(e, {
60
+ identity: "search",
61
+ shape: () => G(),
62
+ lines: () => D()
63
+ })), st = (e) => s(l, a(e, {
64
+ identity: "chat",
65
+ shape: () => I()
66
+ })), at = (e) => s(l, a(e, {
67
+ identity: "design-tokens",
68
+ shape: () => N(),
69
+ lines: () => O()
70
+ })), ht = {
71
+ launchpad: P,
72
+ notes: Y,
73
+ showcase: tt,
74
+ files: W,
75
+ search: et,
76
+ settings: X,
77
+ chat: st,
78
+ designTokens: at,
79
+ terminal: j,
80
+ monitor: z,
81
+ code: B,
82
+ globe: E,
83
+ applications: J,
84
+ containers: K,
85
+ connections: Q,
86
+ switch: U
57
87
  };
58
88
  export {
59
- J as ActivityRailIcons,
60
- q as RailChat,
61
- E as RailDesignTokens,
62
- I as RailFiles,
63
- j as RailLaunchpad,
64
- D as RailNotes,
65
- N as RailSearch,
66
- P as RailSettings,
67
- F as RailShowcase
89
+ l as ActivityRailGlyph,
90
+ ht as ActivityRailIcons,
91
+ J as RailApplications,
92
+ st as RailChat,
93
+ B as RailCode,
94
+ Q as RailConnections,
95
+ K as RailContainers,
96
+ at as RailDesignTokens,
97
+ W as RailFiles,
98
+ E as RailGlobe,
99
+ P as RailLaunchpad,
100
+ z as RailMonitor,
101
+ Y as RailNotes,
102
+ et as RailSearch,
103
+ X as RailSettings,
104
+ tt as RailShowcase,
105
+ U as RailSwitch,
106
+ j as RailTerminal
68
107
  };
@@ -3,7 +3,7 @@ import type { JSX } from 'solid-js';
3
3
  export interface IconProps extends JSX.SvgSVGAttributes<SVGSVGElement> {
4
4
  size?: number | string;
5
5
  }
6
- export { ActivityRailIcons, RailLaunchpad, RailNotes, RailShowcase, RailFiles, RailSearch, RailSettings, RailChat, RailDesignTokens, } from './ActivityRailIcons';
6
+ export * from './ActivityRailIcons';
7
7
  export { DockTerminal, DockFolder, DockCpu, DockActivity, DockFileCode, DockSearch, DockGlobe, DockSparkles, DockBot, DockCode, DockMessageSquare, DockRegion, DockText, DockLayoutDashboard, DockLayers, } from './DockIcons';
8
8
  export declare const Region: (props?: IconProps) => JSX.Element;
9
9
  export declare const TextTool: (props?: IconProps) => JSX.Element;
@@ -5,6 +5,7 @@ export interface ActivityBarItem {
5
5
  id: string;
6
6
  icon: Component<{
7
7
  class?: string;
8
+ active?: boolean;
8
9
  }>;
9
10
  label: string;
10
11
  badge?: number | string | (() => number | string | undefined);
@@ -1,113 +1,116 @@
1
- import { insert as d, createComponent as o, effect as x, className as g, setAttribute as u, template as b, use as D, Dynamic as E, memo as R, delegateEvents as S } from "solid-js/web";
2
- import { createMemo as m, For as M, Show as B, onMount as j, onCleanup as q } from "solid-js";
3
- import { cn as v } from "../../utils/cn.js";
4
- import { deferNonBlocking as P } from "../../utils/defer.js";
5
- import { Tooltip as T } from "../ui/Tooltip.js";
6
- import { resolveActivityBarClick as _ } from "./activityBarBehavior.js";
7
- import { isBarItemContextMenuKey as K, keyboardBarItemContextMenuRequest as N } from "./barItemContextMenu.js";
8
- var X = /* @__PURE__ */ b('<div class="flex flex-col">'), Y = /* @__PURE__ */ b('<nav data-floe-shell-slot=activity-bar style=border-right-color:var(--activity-bar-border)><div class="flex flex-col">'), F = /* @__PURE__ */ b("<span>"), H = /* @__PURE__ */ b("<button type=button data-floe-interactive=press><span aria-hidden=true>");
9
- function U(t) {
10
- const r = m(() => t.activeId), c = m(() => t.collapsed ?? !1), s = m(() => t.onActiveChange), h = m(() => t.onCollapsedChange), f = (e) => {
11
- if (e.onClick) {
12
- P(() => e.onClick());
1
+ import { insert as v, createComponent as l, effect as y, className as h, setAttribute as d, template as x, use as E, Dynamic as R, memo as S, delegateEvents as j } from "solid-js/web";
2
+ import { createMemo as b, For as $, Show as D, onMount as q, onCleanup as P } from "solid-js";
3
+ import { cn as f } from "../../utils/cn.js";
4
+ import { deferNonBlocking as T } from "../../utils/defer.js";
5
+ import { Tooltip as _ } from "../ui/Tooltip.js";
6
+ import { resolveActivityBarClick as K } from "./activityBarBehavior.js";
7
+ import { isBarItemContextMenuKey as N, keyboardBarItemContextMenuRequest as X } from "./barItemContextMenu.js";
8
+ var Y = /* @__PURE__ */ x('<div class="flex flex-col">'), F = /* @__PURE__ */ x('<nav data-floe-shell-slot=activity-bar style=border-right-color:var(--activity-bar-border)><div class="flex flex-col">'), H = /* @__PURE__ */ x("<span>"), L = /* @__PURE__ */ x("<button type=button data-floe-interactive=press><span aria-hidden=true>");
9
+ function W(t) {
10
+ const o = b(() => t.activeId), c = b(() => t.collapsed ?? !1), s = b(() => t.onActiveChange), u = b(() => t.onCollapsedChange), m = (a) => {
11
+ if (a.onClick) {
12
+ T(() => a.onClick());
13
13
  return;
14
14
  }
15
- const a = _({
16
- clickedId: e.id,
17
- activeId: r(),
15
+ const e = K({
16
+ clickedId: a.id,
17
+ activeId: o(),
18
18
  collapsed: c(),
19
- behavior: e.collapseBehavior
19
+ behavior: a.collapseBehavior
20
20
  });
21
- a.nextActiveId !== r() && (typeof a.openSidebar == "boolean" ? s()(a.nextActiveId, {
22
- openSidebar: a.openSidebar
23
- }) : s()(a.nextActiveId)), typeof a.nextCollapsed == "boolean" && h()?.(a.nextCollapsed);
21
+ e.nextActiveId !== o() && (typeof e.openSidebar == "boolean" ? s()(e.nextActiveId, {
22
+ openSidebar: e.openSidebar
23
+ }) : s()(e.nextActiveId)), typeof e.nextCollapsed == "boolean" && u()?.(e.nextCollapsed);
24
24
  };
25
25
  return (() => {
26
- var e = Y(), a = e.firstChild;
27
- return d(a, o(M, {
26
+ var a = F(), e = a.firstChild;
27
+ return v(e, l($, {
28
28
  get each() {
29
29
  return t.items;
30
30
  },
31
- children: (n) => o($, {
31
+ children: (n) => l(B, {
32
32
  item: n,
33
33
  get isActive() {
34
- return r() === n.id;
34
+ return o() === n.id;
35
35
  },
36
- onClick: () => f(n)
36
+ onClick: () => m(n)
37
37
  })
38
- })), d(e, o(B, {
38
+ })), v(a, l(D, {
39
39
  get when() {
40
40
  return t.bottomItems?.length;
41
41
  },
42
42
  get children() {
43
- var n = X();
44
- return d(n, o(M, {
43
+ var n = Y();
44
+ return v(n, l($, {
45
45
  get each() {
46
46
  return t.bottomItems;
47
47
  },
48
- children: (i) => o($, {
49
- item: i,
48
+ children: (r) => l(B, {
49
+ item: r,
50
50
  get isActive() {
51
- return r() === i.id;
51
+ return o() === r.id;
52
52
  },
53
- onClick: () => f(i)
53
+ onClick: () => m(r)
54
54
  })
55
55
  })), n;
56
56
  }
57
- }), null), x((n) => {
58
- var i = v("w-10 md:w-12 flex flex-col justify-between shrink-0 min-h-0", "bg-activity-bar border-r border-[var(--floe-line-quiet)]", t.class), l = t.ariaLabel;
59
- return i !== n.e && g(e, n.e = i), l !== n.t && u(e, "aria-label", n.t = l), n;
57
+ }), null), y((n) => {
58
+ var r = f("w-10 md:w-12 flex flex-col justify-between shrink-0 min-h-0", "bg-activity-bar border-r border-[var(--floe-line-quiet)]", t.class), i = t.ariaLabel;
59
+ return r !== n.e && h(a, n.e = r), i !== n.t && d(a, "aria-label", n.t = i), n;
60
60
  }, {
61
61
  e: void 0,
62
62
  t: void 0
63
- }), e;
63
+ }), a;
64
64
  })();
65
65
  }
66
- function $(t) {
67
- let r;
68
- const c = () => typeof t.item.badge == "function" ? t.item.badge() : t.item.badge, s = () => typeof t.item.ariaExpanded == "function" ? t.item.ariaExpanded() : t.item.ariaExpanded;
69
- j(() => t.item.buttonRef?.(r ?? null)), q(() => t.item.buttonRef?.(null));
70
- const h = (e) => {
66
+ function B(t) {
67
+ let o;
68
+ const c = () => typeof t.item.badge == "function" ? t.item.badge() : t.item.badge, s = () => typeof t.item.ariaExpanded == "function" ? t.item.ariaExpanded() : t.item.ariaExpanded, u = () => t.isActive || s() === !0;
69
+ q(() => t.item.buttonRef?.(o ?? null)), P(() => t.item.buttonRef?.(null));
70
+ const m = (e) => {
71
71
  t.item.onContextMenu && (e.preventDefault(), e.stopPropagation(), t.item.onContextMenu({
72
72
  trigger: e.currentTarget,
73
73
  clientX: e.clientX,
74
74
  clientY: e.clientY,
75
75
  source: "pointer"
76
76
  }));
77
- }, f = (e) => {
78
- !t.item.onContextMenu || !K(e) || (e.preventDefault(), e.stopPropagation(), t.item.onContextMenu(N(e.currentTarget)));
77
+ }, a = (e) => {
78
+ !t.item.onContextMenu || !N(e) || (e.preventDefault(), e.stopPropagation(), t.item.onContextMenu(X(e.currentTarget)));
79
79
  };
80
- return o(T, {
80
+ return l(_, {
81
81
  get content() {
82
82
  return t.item.label;
83
83
  },
84
84
  placement: "right",
85
85
  delay: 0,
86
86
  get children() {
87
- var e = H(), a = e.firstChild;
88
- e.$$keydown = f, e.$$contextmenu = h, e.$$click = () => t.onClick();
89
- var n = r;
90
- return typeof n == "function" ? D(n, e) : r = e, d(e, o(E, {
87
+ var e = L(), n = e.firstChild;
88
+ e.$$keydown = a, e.$$contextmenu = m, e.$$click = () => t.onClick();
89
+ var r = o;
90
+ return typeof r == "function" ? E(r, e) : o = e, v(e, l(R, {
91
91
  get component() {
92
92
  return t.item.icon;
93
93
  },
94
+ get active() {
95
+ return u();
96
+ },
94
97
  get class() {
95
- return v("relative w-5 h-5 transition-colors duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", t.isActive ? "text-activity-bar-foreground-active" : "group-hover/activity-item:text-activity-bar-foreground-active");
98
+ return f("relative w-5 h-5 transition-colors duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", u() ? "text-activity-bar-foreground-active" : "group-hover/activity-item:text-activity-bar-foreground-active");
96
99
  }
97
- }), null), d(e, o(B, {
100
+ }), null), v(e, l(D, {
98
101
  get when() {
99
102
  return c();
100
103
  },
101
104
  get children() {
102
- var i = F();
103
- return d(i, (() => {
104
- var l = R(() => typeof c() == "number" && c() > 99);
105
- return () => l() ? "99+" : c();
106
- })()), x(() => g(i, v("absolute top-0.5 right-0.5 min-w-3.5 h-3.5 px-1", "flex items-center justify-center", "text-[length:var(--floe-type-caption)] font-medium rounded-full", "bg-activity-bar-badge text-activity-bar-badge-foreground"))), i;
105
+ var i = H();
106
+ return v(i, (() => {
107
+ var g = S(() => typeof c() == "number" && c() > 99);
108
+ return () => g() ? "99+" : c();
109
+ })()), y(() => h(i, f("absolute top-0.5 right-0.5 min-w-3.5 h-3.5 px-1", "flex items-center justify-center", "text-[length:var(--floe-type-caption)] font-medium rounded-full", "bg-activity-bar-badge text-activity-bar-badge-foreground"))), i;
107
110
  }
108
- }), null), x((i) => {
109
- var l = v("group/activity-item relative w-full aspect-square flex items-center justify-center cursor-pointer", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset", "text-activity-bar-foreground", t.isActive && "text-activity-bar-foreground-active"), y = t.item.label, C = t.isActive, k = s(), A = t.item.ariaControls, w = t.item.ariaHasPopup ?? (t.item.onContextMenu ? "menu" : void 0), I = v("absolute inset-1 rounded-md", "transition-colors duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", t.isActive ? "bg-[var(--floe-state-selected)]" : "bg-transparent group-hover/activity-item:bg-[var(--floe-state-hover)]");
110
- return l !== i.e && g(e, i.e = l), y !== i.t && u(e, "aria-label", i.t = y), C !== i.a && u(e, "aria-pressed", i.a = C), k !== i.o && u(e, "aria-expanded", i.o = k), A !== i.i && u(e, "aria-controls", i.i = A), w !== i.n && u(e, "aria-haspopup", i.n = w), I !== i.s && g(a, i.s = I), i;
111
+ }), null), y((i) => {
112
+ var g = f("group/activity-item relative w-full aspect-square flex items-center justify-center cursor-pointer", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset", "text-activity-bar-foreground", u() && "text-activity-bar-foreground-active"), C = t.item.label, k = t.isActive, A = s(), w = t.item.ariaControls, I = t.item.ariaHasPopup ?? (t.item.onContextMenu ? "menu" : void 0), M = f("absolute inset-1 rounded-md", "transition-colors duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", u() ? "bg-[var(--floe-state-selected)]" : "bg-transparent group-hover/activity-item:bg-[var(--floe-state-hover)]");
113
+ return g !== i.e && h(e, i.e = g), C !== i.t && d(e, "aria-label", i.t = C), k !== i.a && d(e, "aria-pressed", i.a = k), A !== i.o && d(e, "aria-expanded", i.o = A), w !== i.i && d(e, "aria-controls", i.i = w), I !== i.n && d(e, "aria-haspopup", i.n = I), M !== i.s && h(n, i.s = M), i;
111
114
  }, {
112
115
  e: void 0,
113
116
  t: void 0,
@@ -120,7 +123,7 @@ function $(t) {
120
123
  }
121
124
  });
122
125
  }
123
- S(["click", "contextmenu", "keydown"]);
126
+ j(["click", "contextmenu", "keydown"]);
124
127
  export {
125
- U as ActivityBar
128
+ W as ActivityBar
126
129
  };
@@ -4,6 +4,7 @@ export interface MobileTabBarItem extends Pick<ActivityBarItem, 'buttonRef' | 'a
4
4
  id: string;
5
5
  icon: Component<{
6
6
  class?: string;
7
+ active?: boolean;
7
8
  }>;
8
9
  label: string;
9
10
  badge?: number | string | (() => number | string | undefined);