@fiestaboard/ui 5.10.0 → 5.12.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/components/chrome/page-card.d.ts +122 -0
- package/dist/components/chrome/page-card.js +46 -0
- package/dist/components/chrome/page-card.js.map +1 -0
- package/dist/components/chrome/page-header.js +1 -0
- package/dist/components/chrome/page-header.js.map +1 -1
- package/dist/components/chrome/page-inset.d.ts +6 -0
- package/dist/components/chrome/page-inset.js.map +1 -1
- package/dist/components/chrome/page-toolbar.js +1 -0
- package/dist/components/chrome/page-toolbar.js.map +1 -1
- package/dist/components/chrome/sidebar.d.ts +31 -9
- package/dist/components/chrome/sidebar.js +139 -138
- package/dist/components/chrome/sidebar.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +56 -55
- package/package.json +1 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
interface PageCardProps {
|
|
2
|
+
children: React.ReactNode;
|
|
3
|
+
className?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Pins the card to its parent's height so one section can scroll inside it
|
|
6
|
+
* rather than the page scrolling as a whole — the schedule calendar's shape.
|
|
7
|
+
* Pair with `PageLayout`'s own `fillHeight`, and mark the scrolling block
|
|
8
|
+
* with `<PageSection fill>`.
|
|
9
|
+
*/
|
|
10
|
+
fillHeight?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* THE WHOLE ROUTE, IN ONE CARD. The page title, the toolbar and the content
|
|
14
|
+
* are blocks inside a single surface whose border sits on `PageLayout`'s
|
|
15
|
+
* gutter.
|
|
16
|
+
*
|
|
17
|
+
* WHY, given that the three of them already shared a column. `Card` puts its
|
|
18
|
+
* border on the gutter and its words 24px inboard of it, and #270/#272 moved
|
|
19
|
+
* `PageHeader`, `PageToolbar` and bare content onto that same 24. The column
|
|
20
|
+
* was right. What was missing is that nothing DREW the border explaining it —
|
|
21
|
+
* so a reader met words indented from the page edge for no visible reason, and
|
|
22
|
+
* a route had two left edges of which only one was ever justified by something
|
|
23
|
+
* you could see. Three passes tried to align blocks to an invisible landmark.
|
|
24
|
+
* This makes the landmark visible instead, which is the one move that ends the
|
|
25
|
+
* argument rather than relocating it.
|
|
26
|
+
*
|
|
27
|
+
* BLOCKS THAT PAD THEMSELVES. The padding and the divider live on
|
|
28
|
+
* `PageSection`, not on a `[&>*]` rule here. That was the first shape and
|
|
29
|
+
* adoption killed it within a day: a settings route wraps its sections in
|
|
30
|
+
* `TabsContent`, an expandable one wraps its section in `Collapsible`, and a
|
|
31
|
+
* conditional wraps one in nothing at all — none of which are direct children,
|
|
32
|
+
* so every one of them lost its inset and its rule. A child selector can only
|
|
33
|
+
* see one level, and real routes nest.
|
|
34
|
+
*
|
|
35
|
+
* So this styles only what it must: `PageHeader` and `PageToolbar` predate the
|
|
36
|
+
* component and space themselves with a bottom margin, which is right on a
|
|
37
|
+
* page background and wrong inside a card. Those two get their margin swapped
|
|
38
|
+
* for block padding here, by slot. Everything else pads itself and composes to
|
|
39
|
+
* any depth.
|
|
40
|
+
*
|
|
41
|
+
* WHAT KEEPS ITS BORDER INSIDE. Sections flatten; items do not. A settings
|
|
42
|
+
* group or a Setup/Preview panel is a region of the page, so it loses its
|
|
43
|
+
* border and becomes a `PageSection`. A page tile, a collection tile or a
|
|
44
|
+
* plugin card is a thing you click to open, and its border IS the click
|
|
45
|
+
* target — flattening those removes the affordance, so they stay bordered
|
|
46
|
+
* inside whatever section holds them. That is a call-site judgement rather
|
|
47
|
+
* than a prop: a route swaps `Card`/`CardHeader`/`CardTitle` for
|
|
48
|
+
* `PageSection title=…` and leaves its tile grids alone.
|
|
49
|
+
*
|
|
50
|
+
* ADDITIVE ON PURPOSE. FiestaUI reaches FiestaBoard through npm, so the two
|
|
51
|
+
* repos cannot turn over in one commit. `PageHeader` and `PageToolbar` keep
|
|
52
|
+
* the standalone bottom margins they carry today and this zeroes them through
|
|
53
|
+
* their `data-slot`s, so a route that has not migrated renders exactly as it
|
|
54
|
+
* does now.
|
|
55
|
+
*/
|
|
56
|
+
export declare const PageCard: import("react").MemoExoticComponent<({ children, className, fillHeight }: PageCardProps) => import("react").JSX.Element>;
|
|
57
|
+
/**
|
|
58
|
+
* Standard div props come along so a section can take an `id` (the settings
|
|
59
|
+
* screens deep-link to one), an `aria-*`, a `style`. `title` is omitted
|
|
60
|
+
* because the HTML attribute of that name is a string tooltip and this one is
|
|
61
|
+
* a heading node — leaving both in scope would let a typo silently render a
|
|
62
|
+
* browser tooltip instead of a heading.
|
|
63
|
+
*/
|
|
64
|
+
interface PageSectionProps extends Omit<React.ComponentProps<"div">, "title"> {
|
|
65
|
+
children: React.ReactNode;
|
|
66
|
+
/** Renders a `CardTitle` at the settings-card scale (#274). */
|
|
67
|
+
title?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Leading glyph for the title, forwarded to `CardTitle`'s icon slot — so it
|
|
70
|
+
* is decorative and never announced, the title's text being the name.
|
|
71
|
+
*
|
|
72
|
+
* Exists because the settings screens this component replaces had already
|
|
73
|
+
* converged on it: 24 of FiestaBoard's section headers spell out
|
|
74
|
+
* `flex items-center gap-2 text-base` with an `h-4 w-4` glyph by hand, which
|
|
75
|
+
* is the exact pattern #274 added the slot for.
|
|
76
|
+
*/
|
|
77
|
+
icon?: React.ReactNode;
|
|
78
|
+
/** Sits under the title, in `CardDescription`'s tone. */
|
|
79
|
+
description?: React.ReactNode;
|
|
80
|
+
/** Right-aligned slot on the title row — a section-level action. */
|
|
81
|
+
action?: React.ReactNode;
|
|
82
|
+
/**
|
|
83
|
+
* Makes this the block that scrolls under `PageCard fillHeight`. Exactly one
|
|
84
|
+
* section per card should take it.
|
|
85
|
+
*/
|
|
86
|
+
fill?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Accessible name for the scroll region `fill` creates. Only read when
|
|
89
|
+
* `fill` is set. Defaults to the section's `title` when that is a string.
|
|
90
|
+
*/
|
|
91
|
+
scrollLabel?: string;
|
|
92
|
+
className?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Classes for the CONTENT region, below the heading.
|
|
95
|
+
*
|
|
96
|
+
* This exists because the collapse costs something: `Card` split its
|
|
97
|
+
* heading and its body into two components a consumer could class
|
|
98
|
+
* separately, and `PageSection` is one node doing both. Nearly every
|
|
99
|
+
* settings section it replaces carries a `space-y-*` that belongs to the
|
|
100
|
+
* body alone — put on the root it would also space the heading away from
|
|
101
|
+
* the body, on top of the heading's own margin.
|
|
102
|
+
*/
|
|
103
|
+
contentClassName?: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A BLOCK INSIDE A `PageCard`, optionally titled. This is what a content
|
|
107
|
+
* `Card` becomes once the route itself is the card — the same heading and the
|
|
108
|
+
* same words, with its border traded for the hairline above it.
|
|
109
|
+
*
|
|
110
|
+
* IT PADS ITSELF, and draws its own top rule when it is not the first thing in
|
|
111
|
+
* its container. That is what lets it sit inside a `TabsContent`, a
|
|
112
|
+
* `Collapsible` or a bare conditional and still land on the content column —
|
|
113
|
+
* the arrangement every real settings route turns out to need, and the one a
|
|
114
|
+
* parent's `[&>*]` rule cannot reach.
|
|
115
|
+
*
|
|
116
|
+
* REPLACES `PageInset`. That component existed to put bare body content on the
|
|
117
|
+
* content column of a route that had no card to explain the column. A route
|
|
118
|
+
* that IS a card does not need it: the block padding here does the same 24 and
|
|
119
|
+
* draws the rule as well.
|
|
120
|
+
*/
|
|
121
|
+
export declare const PageSection: import("react").MemoExoticComponent<({ children, title, icon, description, action, fill, scrollLabel, className, contentClassName, ...rest }: PageSectionProps) => import("react").JSX.Element>;
|
|
122
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { cn as e } from "../../lib/utils.js";
|
|
2
|
+
import { Card as t, CardDescription as n, CardTitle as r } from "../containment/card.js";
|
|
3
|
+
import { memo as i } from "react";
|
|
4
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/chrome/page-card.tsx
|
|
6
|
+
var s = i(function({ children: n, className: r, fillHeight: i }) {
|
|
7
|
+
return /* @__PURE__ */ a(t, {
|
|
8
|
+
"data-slot": "page-card",
|
|
9
|
+
className: e("gap-0 overflow-hidden py-0", "[&>[data-slot=page-header]]:mb-0 [&>[data-slot=page-header]]:py-6", "[&>[data-slot=page-toolbar]]:mb-0 [&>[data-slot=page-toolbar]]:py-6", "[&>[data-slot=page-toolbar]]:border-t", i && "min-h-0 flex-1", r),
|
|
10
|
+
children: n
|
|
11
|
+
});
|
|
12
|
+
}), c = i(function({ children: t, title: i, icon: s, description: c, action: l, fill: u, scrollLabel: d, className: f, contentClassName: p, ...m }) {
|
|
13
|
+
let h = i != null || c != null || l != null, g = d ?? (typeof i == "string" ? i : void 0);
|
|
14
|
+
return /* @__PURE__ */ o("div", {
|
|
15
|
+
"data-slot": "page-section",
|
|
16
|
+
className: e("px-6 py-6 [&:not(:first-child)]:border-t", u && "flex min-h-0 flex-1 flex-col overflow-hidden", f),
|
|
17
|
+
...m,
|
|
18
|
+
children: [h && /* @__PURE__ */ o("div", {
|
|
19
|
+
className: "mb-4 flex items-start justify-between gap-4",
|
|
20
|
+
children: [/* @__PURE__ */ o("div", {
|
|
21
|
+
className: "min-w-0",
|
|
22
|
+
children: [i != null && /* @__PURE__ */ a(r, {
|
|
23
|
+
size: "base",
|
|
24
|
+
icon: s,
|
|
25
|
+
children: i
|
|
26
|
+
}), c != null && /* @__PURE__ */ a(n, {
|
|
27
|
+
className: "mt-1.5",
|
|
28
|
+
children: c
|
|
29
|
+
})]
|
|
30
|
+
}), l]
|
|
31
|
+
}), u ? /* @__PURE__ */ a("div", {
|
|
32
|
+
className: e("min-h-0 flex-1 overflow-auto", p),
|
|
33
|
+
tabIndex: 0,
|
|
34
|
+
role: g ? "region" : void 0,
|
|
35
|
+
"aria-label": g,
|
|
36
|
+
children: t
|
|
37
|
+
}) : p ? /* @__PURE__ */ a("div", {
|
|
38
|
+
className: p,
|
|
39
|
+
children: t
|
|
40
|
+
}) : t]
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { s as PageCard, c as PageSection };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=page-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-card.js","names":[],"sources":["../../../src/components/chrome/page-card.tsx"],"mappings":";;;;;AA6DA,IAAa,IAAW,EAAK,SAAkB,EAAE,aAAU,cAAW,iBAA6B;CACjG,OACE,kBAAC,GAAD;EACE,aAAU;EACV,WAAW,EAET,8BAKA,qEACA,uEACA,yCACA,KAAc,kBACd,CACF;EAEC;CACG,CAAA;AAEV,CAAC,GAmEY,IAAc,EAAK,SAAqB,EACnD,aACA,UACA,SACA,gBACA,WACA,SACA,gBACA,cACA,qBACA,GAAG,KACgB;CACnB,IAAM,IAAa,KAAS,QAAQ,KAAe,QAAQ,KAAU,MAQ/D,IAAQ,MAAgB,OAAO,KAAU,WAAW,IAAQ,KAAA;CAClE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EAKT,4CACA,KAAQ,gDACR,CACF;EACA,GAAI;EAXN,UAAA,CAaG,KACC,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACG,KAAS,QACR,kBAAC,GAAD;KAAW,MAAK;KAAa;KAC1B,UAAA;IACQ,CAAA,GAEZ,KAAe,QAAQ,kBAAC,GAAD;KAAiB,WAAU;KAAU,UAAA;IAA6B,CAAA,CACvF;GACJ,CAAA,GAAA,CACE;EAEN,CAAA,GAAA,IACC,kBAAC,OAAD;GACE,WAAW,EAAG,gCAAgC,CAAgB;GAC9D,UAAU;GAIV,MAAM,IAAQ,WAAW,KAAA;GACzB,cAAY;GAEX;EACE,CAAA,IACH,IAEF,kBAAC,OAAD;GAAK,WAAW;GAAmB;EAAc,CAAA,IAEjD,CAEC;;AAET,CAAC"}
|
|
@@ -25,6 +25,7 @@ function s(e) {
|
|
|
25
25
|
var c = t(function({ icon: t, title: i, description: a, children: c, className: l, animationDelay: u = "0ms", hue: d }) {
|
|
26
26
|
let f = d ?? s(i);
|
|
27
27
|
return /* @__PURE__ */ r("div", {
|
|
28
|
+
"data-slot": "page-header",
|
|
28
29
|
className: e("mb-6 flex flex-wrap items-start justify-between gap-x-6 gap-y-3 px-6 animate-card-fade-in", l),
|
|
29
30
|
style: { animationDelay: u },
|
|
30
31
|
children: [/* @__PURE__ */ r("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header.js","names":[],"sources":["../../../src/components/chrome/page-header.tsx"],"mappings":";;;;AAMA,IAAM,IAAsC,EAAE,UAAU,WAAW,GAStD,IAAY;CAAC;CAAO;CAAU;CAAU;CAAS;CAAQ;AAAQ,GAIxE,IAAqC;CACzC,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,MAAM;CACN,QAAQ;AACV;AAqBA,SAAgB,EAAQ,GAAuB;CAC7C,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,KAE/B,AADA,KAAK,EAAK,WAAW,CAAC,GACtB,IAAI,KAAK,KAAK,GAAG,QAAU;CAE7B,OAAO,EAAU,KAAK,IAAI,CAAC,IAAI,EAAU;AAC3C;AA8DA,IAAa,IAAa,EAAK,SAAoB,EACjD,MAAM,GACN,UACA,gBACA,aACA,cACA,oBAAiB,OACjB,UACkB;CAClB,IAAM,IAAW,KAAO,EAAQ,CAAK;CACrC,OACE,kBAAC,OAAD;EACE,WAAW,EACT,6FACA,CACF;EACA,OAAO,EAAE,kBAAe;
|
|
1
|
+
{"version":3,"file":"page-header.js","names":[],"sources":["../../../src/components/chrome/page-header.tsx"],"mappings":";;;;AAMA,IAAM,IAAsC,EAAE,UAAU,WAAW,GAStD,IAAY;CAAC;CAAO;CAAU;CAAU;CAAS;CAAQ;AAAQ,GAIxE,IAAqC;CACzC,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,MAAM;CACN,QAAQ;AACV;AAqBA,SAAgB,EAAQ,GAAuB;CAC7C,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,KAE/B,AADA,KAAK,EAAK,WAAW,CAAC,GACtB,IAAI,KAAK,KAAK,GAAG,QAAU;CAE7B,OAAO,EAAU,KAAK,IAAI,CAAC,IAAI,EAAU;AAC3C;AA8DA,IAAa,IAAa,EAAK,SAAoB,EACjD,MAAM,GACN,UACA,gBACA,aACA,cACA,oBAAiB,OACjB,UACkB;CAClB,IAAM,IAAW,KAAO,EAAQ,CAAK;CACrC,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,6FACA,CACF;EACA,OAAO,EAAE,kBAAe;EAN1B,UAAA,CAQE,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;IAAd,UAAA,CACE,kBAAC,GAAD;KAAM,WAAW,EAAG,yBAAyB,EAAU,EAAS;KAAG,eAAY;IAAQ,CAAA,GACtF,CACC;GACJ,CAAA,GAAA,kBAAC,KAAD;IAAG,WAAU;IAAoB,UAAA;GAAe,CAAA,CAC7C;EACJ,CAAA,GAAA,CACE;;AAET,CAAC,GAcY,IAAuB,EAAK,WAAgC;CACvE,OACE,kBAAC,OAAD;EAAK,OAAM;EAAI,QAAO;EAAI,eAAY;EAAO,OAAO;EAClD,UAAA,kBAAC,QAAD,EAAA,UACE,kBAAC,kBAAD;GAAgB,IAAG;GAAqB,eAAc;GAAiB,IAAG;GAAI,IAAG;GAAI,IAAG;GAAK,IAAG;GAAhG,UAAA;IACE,kBAAC,QAAD;KAAM,QAAO;KAAK,WAAU;IAAkB,CAAA;IAC9C,kBAAC,QAAD;KAAM,QAAO;KAAM,WAAU;IAAkB,CAAA;IAC/C,kBAAC,QAAD;KAAM,QAAO;KAAM,WAAU;IAAkB,CAAA;IAC/C,kBAAC,QAAD;KAAM,QAAO;KAAM,WAAU;IAAkB,CAAA;IAC/C,kBAAC,QAAD;KAAM,QAAO;KAAM,WAAU;IAAkB,CAAA;IAC/C,kBAAC,QAAD;KAAM,QAAO;KAAO,WAAU;IAAkB,CAAA;GAClC;EACZ,CAAA,EAAA,CAAA;CACH,CAAA;AAET,CAAC"}
|
|
@@ -3,6 +3,12 @@ interface PageInsetProps {
|
|
|
3
3
|
className?: string;
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
+
* @deprecated Use `PageSection` inside a `PageCard`. This component exists to
|
|
7
|
+
* put bare body content on the content column of a route that has no card to
|
|
8
|
+
* explain that column — and the route is now the card, so the column explains
|
|
9
|
+
* itself and the section draws the divider too. Kept working for consumers
|
|
10
|
+
* mid-migration; removed no earlier than the next major.
|
|
11
|
+
*
|
|
6
12
|
* THE CONTENT COLUMN, FOR BODY CONTENT THAT IS NOT A CARD. Wraps its children
|
|
7
13
|
* in the same `px-6` that `PageHeader` and `PageToolbar` carry, so a tab strip,
|
|
8
14
|
* a byline or a bare paragraph lands on the vertical the page title and every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-inset.js","names":[],"sources":["../../../src/components/chrome/page-inset.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"page-inset.js","names":[],"sources":["../../../src/components/chrome/page-inset.tsx"],"mappings":";;;;AA8CA,IAAa,IAAY,EAAK,SAAmB,EAAE,aAAU,gBAA6B;CACxF,OAAO,kBAAC,OAAD;EAAK,WAAW,EAAG,QAAQ,CAAS;EAAI;CAAc,CAAA;AAC/D,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
|
4
4
|
//#region src/components/chrome/page-toolbar.tsx
|
|
5
5
|
var i = { animationDelay: "50ms" }, a = t(function({ left: t, right: a, children: o, className: s }) {
|
|
6
6
|
return /* @__PURE__ */ n("div", {
|
|
7
|
+
"data-slot": "page-toolbar",
|
|
7
8
|
className: e("mb-4 px-6 animate-card-fade-in", s),
|
|
8
9
|
style: i,
|
|
9
10
|
children: o ?? /* @__PURE__ */ r("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-toolbar.js","names":[],"sources":["../../../src/components/chrome/page-toolbar.tsx"],"mappings":";;;;AAKA,IAAM,IAAqC,EAAE,gBAAgB,OAAO,GAmCvD,IAAc,EAAK,SAAqB,EAAE,SAAM,UAAO,aAAU,gBAA+B;CAC3G,OACE,kBAAC,OAAD;EAAK,WAAW,EAAG,kCAAkC,CAAS;EAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"page-toolbar.js","names":[],"sources":["../../../src/components/chrome/page-toolbar.tsx"],"mappings":";;;;AAKA,IAAM,IAAqC,EAAE,gBAAgB,OAAO,GAmCvD,IAAc,EAAK,SAAqB,EAAE,SAAM,UAAO,aAAU,gBAA+B;CAC3G,OACE,kBAAC,OAAD;EAAK,aAAU;EAAe,WAAW,EAAG,kCAAkC,CAAS;EAAG,OAAO;EAC9F,UAAA,KACC,kBAAC,OAAD;GACE,WAAW,EACT,qCACA,KAAQ,IAAQ,oBAAoB,IAAQ,gBAAgB,eAC9D;GAJF,UAAA,CAMG,KAAQ,kBAAC,OAAD;IAAK,WAAU;IAA2B,UAAA;GAAU,CAAA,GAC5D,KAAS,kBAAC,OAAD;IAAK,WAAU;IAA2B,UAAA;GAAW,CAAA,CAC5D;;CAEJ,CAAA;AAET,CAAC"}
|
|
@@ -24,7 +24,11 @@ export interface SidebarLinkProps {
|
|
|
24
24
|
export interface SidebarLabels {
|
|
25
25
|
mainNavigation: string;
|
|
26
26
|
primaryNavigation: string;
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated No longer rendered. The rail has one nav landmark, named by
|
|
29
|
+
* `primaryNavigation`; there is no second list left to label.
|
|
30
|
+
*/
|
|
31
|
+
secondaryNavigation?: string;
|
|
28
32
|
navigationMenu: string;
|
|
29
33
|
openMenu: string;
|
|
30
34
|
closeMenu: string;
|
|
@@ -35,8 +39,21 @@ export interface SidebarLabels {
|
|
|
35
39
|
}
|
|
36
40
|
export interface SidebarProps {
|
|
37
41
|
labels: SidebarLabels;
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
/**
|
|
43
|
+
* The nav list, top to bottom — one flat array rendered into one <nav>.
|
|
44
|
+
* Order is entirely the app's: put help, settings and sign-out at the end
|
|
45
|
+
* of it like any other destination.
|
|
46
|
+
*/
|
|
47
|
+
items?: SidebarNavItem[];
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use `items`. Renders as the head of the single nav list.
|
|
50
|
+
*/
|
|
51
|
+
primaryItems?: SidebarNavItem[];
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use `items`. Renders after `primaryItems` (and after the AI
|
|
54
|
+
* row, which keeps its old position at the seam) in the same single list.
|
|
55
|
+
*/
|
|
56
|
+
secondaryItems?: SidebarNavItem[];
|
|
40
57
|
/**
|
|
41
58
|
* Renders internal navigation links — inject your router's Link here
|
|
42
59
|
* (FiestaBoard passes its ViewTransitionLink). External items render a
|
|
@@ -56,12 +73,17 @@ export interface SidebarProps {
|
|
|
56
73
|
/** Click handler for the logo. When present, the lockup renders as a button. */
|
|
57
74
|
onLogoClick?: (e: React.MouseEvent) => void;
|
|
58
75
|
/**
|
|
59
|
-
* AI assistant nav entry; omit to hide. Renders as
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
76
|
+
* AI assistant nav entry; omit to hide. Renders as a row of the one nav
|
|
77
|
+
* list — visually identical to the items around it, scrolling with them.
|
|
78
|
+
* It used to be its own one-row section between two hairlines below the
|
|
79
|
+
* list; a single entry fenced off by dividers read as a stranded
|
|
63
80
|
* mini-menu, and every hairline it added shrank the space the list had
|
|
64
81
|
* before it needed to scroll.
|
|
82
|
+
*
|
|
83
|
+
* With `items` it is the last row before `renderAccount`. With the
|
|
84
|
+
* deprecated primary/secondary pair it sits at the seam between them —
|
|
85
|
+
* where it rendered when those were two separate lists — so consumers
|
|
86
|
+
* migrating on their own schedule see the merge, not a reshuffle.
|
|
65
87
|
*/
|
|
66
88
|
ai?: {
|
|
67
89
|
active: boolean;
|
|
@@ -70,7 +92,7 @@ export interface SidebarProps {
|
|
|
70
92
|
/** Board switcher slots (rendered only when provided). */
|
|
71
93
|
boardSelector?: React.ReactNode;
|
|
72
94
|
mobileBoardSelector?: React.ReactNode;
|
|
73
|
-
/** Account row
|
|
95
|
+
/** Account row; renders as the last row of the nav list, scrolling with it. */
|
|
74
96
|
renderAccount?: (ctx: {
|
|
75
97
|
variant: "mobile" | "desktop";
|
|
76
98
|
collapsed: boolean;
|
|
@@ -84,4 +106,4 @@ export interface SidebarProps {
|
|
|
84
106
|
/** Gap between the app edge and the sidebar in px. */
|
|
85
107
|
sidebarInset: number;
|
|
86
108
|
}
|
|
87
|
-
export declare const Sidebar: import("react").MemoExoticComponent<({ labels, primaryItems, secondaryItems, renderLink, collapsed, transitioning, onToggleCollapsed, onTransitionEnd, logoIconSrc, onLogoClick, ai, boardSelector, mobileBoardSelector, renderAccount, versionSlot, themeToggleSlot, maxWidth, sidebarInset, }: SidebarProps) => import("react").JSX.Element>;
|
|
109
|
+
export declare const Sidebar: import("react").MemoExoticComponent<({ labels, items, primaryItems, secondaryItems, renderLink, collapsed, transitioning, onToggleCollapsed, onTransitionEnd, logoIconSrc, onLogoClick, ai, boardSelector, mobileBoardSelector, renderAccount, versionSlot, themeToggleSlot, maxWidth, sidebarInset, }: SidebarProps) => import("react").JSX.Element>;
|
|
@@ -5,18 +5,20 @@ import { Tooltip as n, TooltipContent as r, TooltipProvider as i, TooltipTrigger
|
|
|
5
5
|
import { FIESTA_ICON_DATA_URI as o } from "./fiesta-icon.js";
|
|
6
6
|
import { FiestaLogo as s } from "./fiesta-logo.js";
|
|
7
7
|
import { ChevronLeft as ee, ChevronRight as te, Menu as ne, Sparkles as c, X as l } from "lucide-react";
|
|
8
|
-
import { Fragment as
|
|
9
|
-
import { Fragment as
|
|
8
|
+
import { Fragment as re, memo as u, useEffect as d, useRef as f, useState as p } from "react";
|
|
9
|
+
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
10
10
|
//#region src/components/chrome/sidebar.tsx
|
|
11
|
-
var
|
|
11
|
+
var _ = "nav-active font-semibold", v = "text-sidebar-foreground nav-active-hover", y = "flex items-center gap-3 rounded-lg px-4 py-3 text-base font-medium min-h-[48px]", b = e(y, _), ie = e(y, v), x = "flex w-full items-center gap-3 rounded-lg px-4 py-3 text-base font-medium min-h-[48px]", ae = e(x, _), oe = e(x, v), S = "flex items-center gap-3 py-2 pl-[14px] pr-3 rounded-lg text-sm font-medium transition-colors", se = e(S, _), ce = e(S, v), C = "flex w-full items-center gap-3 py-2 pl-[14px] pr-3 rounded-lg text-sm font-medium transition-colors", w = e(C, _), T = e(C, v), E = "whitespace-nowrap overflow-hidden transition-opacity duration-fast", D = e(E, "opacity-0 max-w-0"), O = e(E, "opacity-100 max-w-48 delay-150"), k = "lg:hidden fixed inset-0 z-[var(--z-mobile-backdrop)] bg-black/25 backdrop-blur-[2px] transition-opacity duration-base pointer-events-none", A = e(k, "opacity-100 pointer-events-auto"), j = e(k, "opacity-0"), M = "lg:hidden fixed top-[calc(var(--mobile-header-height,56px)+16px)] left-3 right-3 z-[var(--z-mobile-menu)] flex max-h-[calc(100dvh-var(--mobile-header-height,56px)-2rem)] flex-col overflow-hidden sidebar-gradient-horizontal", le = e(M, "opacity-100"), ue = e(M, "opacity-0 pointer-events-none"), N = "clip-path var(--motion-duration-slower) var(--motion-ease-spring), opacity var(--motion-duration-exit) var(--motion-ease-standard)", de = {
|
|
12
12
|
clipPath: "inset(0 0 0 0 round var(--radius-chrome-mobile, 16px))",
|
|
13
|
-
transition:
|
|
14
|
-
},
|
|
13
|
+
transition: N
|
|
14
|
+
}, fe = {
|
|
15
15
|
clipPath: "inset(0 0 100% 0 round var(--radius-chrome-mobile, 16px))",
|
|
16
|
-
transition:
|
|
17
|
-
},
|
|
18
|
-
let [K, q] =
|
|
19
|
-
|
|
16
|
+
transition: N
|
|
17
|
+
}, P = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])", F = [], I = u(function({ labels: u, items: _, primaryItems: v, secondaryItems: y, renderLink: x, collapsed: S, transitioning: C = !1, onToggleCollapsed: E, onTransitionEnd: k, logoIconSrc: M = o, onLogoClick: N, ai: I, boardSelector: L, mobileBoardSelector: R, renderAccount: z, versionSlot: B, themeToggleSlot: V, maxWidth: H, sidebarInset: pe }) {
|
|
18
|
+
let U = _ ?? v ?? F, W = _ ? F : y ?? F, G = !!(_ && (v || y)), [K, q] = p(!1), [me, he] = p(0), J = f(null), Y = f(null), X = f(null);
|
|
19
|
+
d(() => {
|
|
20
|
+
G && console.warn("[Sidebar] `items` was passed alongside `primaryItems`/`secondaryItems`. The deprecated props are being IGNORED — fold their entries into `items`, which is one flat list.");
|
|
21
|
+
}, [G]), d(() => {
|
|
20
22
|
let e = J.current;
|
|
21
23
|
if (!e) return;
|
|
22
24
|
let t = null, n = "", r = () => {
|
|
@@ -29,12 +31,12 @@ var v = "nav-active font-semibold", y = "text-sidebar-foreground nav-active-hove
|
|
|
29
31
|
return i.observe(e), r(), () => {
|
|
30
32
|
i.disconnect(), t !== null && cancelAnimationFrame(t), document.documentElement.style.removeProperty("--mobile-header-height");
|
|
31
33
|
};
|
|
32
|
-
}, []),
|
|
34
|
+
}, []), d(() => (K ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
|
|
33
35
|
document.body.style.overflow = "";
|
|
34
|
-
}), [K]),
|
|
36
|
+
}), [K]), d(() => {
|
|
35
37
|
if (K) {
|
|
36
38
|
let e = Y.current;
|
|
37
|
-
(e?.querySelector(
|
|
39
|
+
(e?.querySelector(P) ?? e)?.focus();
|
|
38
40
|
let t = (e) => {
|
|
39
41
|
e.key === "Escape" && q(!1);
|
|
40
42
|
};
|
|
@@ -43,11 +45,11 @@ var v = "nav-active font-semibold", y = "text-sidebar-foreground nav-active-hove
|
|
|
43
45
|
let e = X.current;
|
|
44
46
|
X.current = null, e?.focus();
|
|
45
47
|
}, [K]);
|
|
46
|
-
function
|
|
48
|
+
function ge(e) {
|
|
47
49
|
if (e.key !== "Tab") return;
|
|
48
50
|
let t = Y.current;
|
|
49
51
|
if (!t) return;
|
|
50
|
-
let n = t.querySelectorAll(
|
|
52
|
+
let n = t.querySelectorAll(P);
|
|
51
53
|
if (n.length === 0) {
|
|
52
54
|
e.preventDefault();
|
|
53
55
|
return;
|
|
@@ -55,239 +57,238 @@ var v = "nav-active font-semibold", y = "text-sidebar-foreground nav-active-hove
|
|
|
55
57
|
let r = n[0], i = n[n.length - 1], a = document.activeElement;
|
|
56
58
|
e.shiftKey ? (a === r || a === t) && (e.preventDefault(), i.focus()) : a === i && (e.preventDefault(), r.focus());
|
|
57
59
|
}
|
|
58
|
-
|
|
60
|
+
d(() => {
|
|
59
61
|
let e = null, t = () => {
|
|
60
62
|
e = null;
|
|
61
|
-
let t = Math.max(0, (document.body.clientWidth -
|
|
62
|
-
|
|
63
|
+
let t = Math.max(0, (document.body.clientWidth - H) / 2);
|
|
64
|
+
he((e) => e === t ? e : t);
|
|
63
65
|
}, n = () => {
|
|
64
66
|
e === null && (e = requestAnimationFrame(t));
|
|
65
67
|
};
|
|
66
68
|
return t(), window.addEventListener("resize", n), () => {
|
|
67
69
|
window.removeEventListener("resize", n), e !== null && cancelAnimationFrame(e);
|
|
68
70
|
};
|
|
69
|
-
}, [
|
|
71
|
+
}, [H]);
|
|
70
72
|
function Z(e) {
|
|
71
|
-
let t = e.icon, n = e.active ?
|
|
72
|
-
return e.external ? /* @__PURE__ */
|
|
73
|
+
let t = e.icon, n = e.active ? b : ie;
|
|
74
|
+
return e.external ? /* @__PURE__ */ g("a", {
|
|
73
75
|
href: e.href,
|
|
74
76
|
target: "_blank",
|
|
75
77
|
rel: "noopener noreferrer",
|
|
76
78
|
onClick: () => q(!1),
|
|
77
79
|
className: n,
|
|
78
|
-
children: [/* @__PURE__ */
|
|
79
|
-
}, e.key) : /* @__PURE__ */
|
|
80
|
+
children: [/* @__PURE__ */ h(t, { className: "h-5 w-5" }), e.label]
|
|
81
|
+
}, e.key) : /* @__PURE__ */ h("span", {
|
|
80
82
|
className: "contents",
|
|
81
|
-
children:
|
|
83
|
+
children: x({
|
|
82
84
|
href: e.href,
|
|
83
85
|
onClick: () => q(!1),
|
|
84
86
|
onMouseEnter: e.onPrefetch,
|
|
85
87
|
onFocus: e.onPrefetch,
|
|
86
88
|
className: n,
|
|
87
|
-
children: /* @__PURE__ */
|
|
89
|
+
children: /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(t, { className: "h-5 w-5" }), e.label] })
|
|
88
90
|
}, e)
|
|
89
91
|
}, e.key);
|
|
90
92
|
}
|
|
91
93
|
function Q(e) {
|
|
92
|
-
let t = e.icon, i = e.active ?
|
|
93
|
-
className:
|
|
94
|
+
let t = e.icon, i = e.active ? se : ce, o = /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(t, { className: "h-5 w-5 flex-shrink-0" }), /* @__PURE__ */ h("span", {
|
|
95
|
+
className: S ? D : O,
|
|
94
96
|
children: e.label
|
|
95
|
-
})] }), s = e.external ? /* @__PURE__ */
|
|
97
|
+
})] }), s = e.external ? /* @__PURE__ */ h("a", {
|
|
96
98
|
href: e.href,
|
|
97
99
|
target: "_blank",
|
|
98
100
|
rel: "noopener noreferrer",
|
|
99
101
|
className: i,
|
|
100
|
-
"aria-label":
|
|
102
|
+
"aria-label": S ? e.label : void 0,
|
|
101
103
|
children: o
|
|
102
|
-
}) :
|
|
104
|
+
}) : x({
|
|
103
105
|
href: e.href,
|
|
104
106
|
onMouseEnter: e.onPrefetch,
|
|
105
107
|
onFocus: e.onPrefetch,
|
|
106
108
|
className: i,
|
|
107
|
-
"aria-label":
|
|
109
|
+
"aria-label": S ? e.label : void 0,
|
|
108
110
|
children: o
|
|
109
111
|
}, e);
|
|
110
|
-
return
|
|
112
|
+
return S ? /* @__PURE__ */ g(n, { children: [/* @__PURE__ */ h(a, {
|
|
111
113
|
asChild: !0,
|
|
112
114
|
children: s
|
|
113
|
-
}), /* @__PURE__ */
|
|
115
|
+
}), /* @__PURE__ */ h(r, {
|
|
114
116
|
side: "right",
|
|
115
117
|
className: "font-medium",
|
|
116
118
|
children: e.label
|
|
117
|
-
})] }, e.key) : /* @__PURE__ */
|
|
119
|
+
})] }, e.key) : /* @__PURE__ */ h(re, { children: s }, e.key);
|
|
118
120
|
}
|
|
119
121
|
let $ = (t) => {
|
|
120
|
-
let n = t === "mobile" ? /* @__PURE__ */
|
|
122
|
+
let n = t === "mobile" ? /* @__PURE__ */ h(s, {
|
|
121
123
|
size: "sm",
|
|
122
124
|
className: "logo-on-gradient whitespace-nowrap"
|
|
123
|
-
}) : /* @__PURE__ */
|
|
124
|
-
src:
|
|
125
|
+
}) : /* @__PURE__ */ h(s, { className: e("logo-on-gradient whitespace-nowrap overflow-hidden transition-opacity duration-fast", S ? "opacity-0 max-w-0" : "opacity-100 max-w-48 delay-150") }), r = /* @__PURE__ */ h("img", {
|
|
126
|
+
src: M,
|
|
125
127
|
alt: "",
|
|
126
128
|
width: 32,
|
|
127
129
|
height: 32,
|
|
128
130
|
className: "flex-shrink-0"
|
|
129
131
|
}), i = t === "mobile" ? "flex items-center gap-3 flex-1 ml-2" : "flex items-center gap-2 overflow-hidden px-4 py-4";
|
|
130
|
-
return
|
|
132
|
+
return N ? /* @__PURE__ */ g("button", {
|
|
131
133
|
type: "button",
|
|
132
|
-
onClick:
|
|
133
|
-
"aria-label":
|
|
134
|
+
onClick: N,
|
|
135
|
+
"aria-label": u.logoButtonAriaLabel,
|
|
134
136
|
className: e(i, "cursor-pointer text-left", t === "desktop" && "w-full"),
|
|
135
137
|
children: [r, n]
|
|
136
|
-
}) : /* @__PURE__ */
|
|
138
|
+
}) : /* @__PURE__ */ g("div", {
|
|
137
139
|
className: i,
|
|
138
140
|
children: [r, n]
|
|
139
141
|
});
|
|
140
142
|
};
|
|
141
|
-
return /* @__PURE__ */
|
|
142
|
-
/* @__PURE__ */
|
|
143
|
+
return /* @__PURE__ */ g(m, { children: [
|
|
144
|
+
/* @__PURE__ */ h("header", {
|
|
143
145
|
ref: J,
|
|
144
146
|
className: "lg:hidden fixed top-2 left-3 right-3 z-[var(--z-mobile-header)] overflow-hidden sidebar-gradient-horizontal",
|
|
145
|
-
children: /* @__PURE__ */
|
|
147
|
+
children: /* @__PURE__ */ g("div", {
|
|
146
148
|
className: "relative z-[1] flex min-h-14 flex-wrap items-center gap-y-2 px-3 py-2",
|
|
147
149
|
children: [
|
|
148
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ h(t, {
|
|
149
151
|
variant: "ghost",
|
|
150
152
|
size: "icon",
|
|
151
153
|
className: "h-9 w-9 flex-shrink-0 -ml-2 text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
152
154
|
onClick: (e) => {
|
|
153
155
|
K || (X.current = e.currentTarget), q(!K);
|
|
154
156
|
},
|
|
155
|
-
"aria-label": K ?
|
|
156
|
-
children:
|
|
157
|
+
"aria-label": K ? u.closeMenu : u.openMenu,
|
|
158
|
+
children: h(K ? l : ne, { className: "h-6 w-6" })
|
|
157
159
|
}),
|
|
158
160
|
$("mobile"),
|
|
159
|
-
|
|
161
|
+
R && /* @__PURE__ */ h("div", {
|
|
160
162
|
className: "ml-auto pl-2 flex-shrink-0",
|
|
161
|
-
children:
|
|
163
|
+
children: R
|
|
162
164
|
})
|
|
163
165
|
]
|
|
164
166
|
})
|
|
165
167
|
}),
|
|
166
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ h("div", {
|
|
167
169
|
"data-testid": "mobile-backdrop",
|
|
168
|
-
className: K ?
|
|
170
|
+
className: K ? A : j,
|
|
169
171
|
onClick: () => q(!1),
|
|
170
172
|
"aria-hidden": "true"
|
|
171
173
|
}),
|
|
172
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ g("div", {
|
|
173
175
|
ref: Y,
|
|
174
|
-
className: K ?
|
|
176
|
+
className: K ? le : ue,
|
|
175
177
|
role: K ? "dialog" : void 0,
|
|
176
178
|
"aria-modal": K ? !0 : void 0,
|
|
177
|
-
"aria-label": K ?
|
|
179
|
+
"aria-label": K ? u.navigationMenu : void 0,
|
|
178
180
|
"aria-hidden": !K,
|
|
179
181
|
inert: !K || void 0,
|
|
180
182
|
tabIndex: K ? -1 : void 0,
|
|
181
|
-
onKeyDown:
|
|
182
|
-
style: K ?
|
|
183
|
+
onKeyDown: ge,
|
|
184
|
+
style: K ? de : fe,
|
|
183
185
|
children: [
|
|
184
|
-
/* @__PURE__ */
|
|
185
|
-
"aria-label":
|
|
186
|
+
/* @__PURE__ */ g("nav", {
|
|
187
|
+
"aria-label": u.primaryNavigation,
|
|
186
188
|
className: "min-h-0 flex-1 space-y-1 overflow-y-auto px-3 py-4",
|
|
187
|
-
children: [
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
children: [/* @__PURE__ */ _("nav", {
|
|
200
|
-
"aria-label": d.secondaryNavigation,
|
|
201
|
-
className: "space-y-1",
|
|
202
|
-
children: [y.map(Z), H?.({
|
|
189
|
+
children: [
|
|
190
|
+
U.map(Z),
|
|
191
|
+
I && /* @__PURE__ */ g("button", {
|
|
192
|
+
type: "button",
|
|
193
|
+
onClick: () => {
|
|
194
|
+
I.onOpen(), q(!1);
|
|
195
|
+
},
|
|
196
|
+
className: I.active ? ae : oe,
|
|
197
|
+
children: [/* @__PURE__ */ h(c, { className: "h-5 w-5" }), u.aiAssistant]
|
|
198
|
+
}),
|
|
199
|
+
W.map(Z),
|
|
200
|
+
z?.({
|
|
203
201
|
variant: "mobile",
|
|
204
202
|
collapsed: !1
|
|
205
|
-
})
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
203
|
+
})
|
|
204
|
+
]
|
|
205
|
+
}),
|
|
206
|
+
/* @__PURE__ */ h("div", { className: "shrink-0 border-t border-sidebar-border mx-3" }),
|
|
207
|
+
/* @__PURE__ */ g("div", {
|
|
208
|
+
className: "shrink-0 flex items-center justify-between gap-2 px-7 py-3 text-sidebar-foreground",
|
|
209
|
+
children: [B, V]
|
|
210
210
|
})
|
|
211
211
|
]
|
|
212
212
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ h(i, {
|
|
214
214
|
delayDuration: 0,
|
|
215
|
-
children: /* @__PURE__ */
|
|
216
|
-
"aria-label":
|
|
217
|
-
className: e("hidden lg:fixed lg:top-3 lg:bottom-3 lg:z-[var(--z-sidebar)] lg:block sidebar-gradient sidebar-transition",
|
|
218
|
-
style: { left:
|
|
215
|
+
children: /* @__PURE__ */ g("aside", {
|
|
216
|
+
"aria-label": u.mainNavigation,
|
|
217
|
+
className: e("hidden lg:fixed lg:top-3 lg:bottom-3 lg:z-[var(--z-sidebar)] lg:block sidebar-gradient sidebar-transition", S ? "lg:w-16" : "lg:w-64", C && "is-transitioning"),
|
|
218
|
+
style: { left: me + pe },
|
|
219
219
|
onTransitionEnd: (e) => {
|
|
220
|
-
e.target === e.currentTarget && e.propertyName === "width" &&
|
|
220
|
+
e.target === e.currentTarget && e.propertyName === "width" && k?.();
|
|
221
221
|
},
|
|
222
|
-
children: [/* @__PURE__ */
|
|
222
|
+
children: [/* @__PURE__ */ g(n, { children: [/* @__PURE__ */ h(a, {
|
|
223
223
|
asChild: !0,
|
|
224
|
-
children: /* @__PURE__ */
|
|
225
|
-
onClick:
|
|
226
|
-
"aria-label":
|
|
224
|
+
children: /* @__PURE__ */ h("button", {
|
|
225
|
+
onClick: E,
|
|
226
|
+
"aria-label": S ? u.expandSidebar : u.collapseSidebar,
|
|
227
227
|
className: "absolute -right-3.5 top-[51px] z-[var(--z-sidebar-toggle)] flex h-7 w-7 items-center justify-center rounded-full border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-md transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
228
|
-
children:
|
|
228
|
+
children: h(S ? te : ee, { className: "h-3.5 w-3.5" })
|
|
229
229
|
})
|
|
230
|
-
}), /* @__PURE__ */
|
|
230
|
+
}), /* @__PURE__ */ h(r, {
|
|
231
231
|
side: "right",
|
|
232
|
-
children:
|
|
233
|
-
})] }), /* @__PURE__ */
|
|
232
|
+
children: S ? u.expandSidebar : u.collapseSidebar
|
|
233
|
+
})] }), /* @__PURE__ */ g("div", {
|
|
234
234
|
className: "relative z-[1] flex h-full flex-col overflow-hidden",
|
|
235
235
|
children: [
|
|
236
236
|
$("desktop"),
|
|
237
|
-
|
|
237
|
+
L && /* @__PURE__ */ h("div", {
|
|
238
238
|
className: "shrink-0 px-2 pb-3",
|
|
239
|
-
children:
|
|
239
|
+
children: L
|
|
240
240
|
}),
|
|
241
|
-
/* @__PURE__ */
|
|
242
|
-
/* @__PURE__ */
|
|
243
|
-
"aria-label":
|
|
241
|
+
/* @__PURE__ */ h("div", { className: "mx-2 border-t border-sidebar-border" }),
|
|
242
|
+
/* @__PURE__ */ g("nav", {
|
|
243
|
+
"aria-label": u.primaryNavigation,
|
|
244
244
|
className: "min-h-0 flex-1 space-y-1 overflow-y-auto py-4 px-2",
|
|
245
|
-
children: [
|
|
246
|
-
|
|
247
|
-
children: /* @__PURE__ */
|
|
245
|
+
children: [
|
|
246
|
+
U.map(Q),
|
|
247
|
+
I && (S ? /* @__PURE__ */ g(n, { children: [/* @__PURE__ */ h(a, {
|
|
248
|
+
asChild: !0,
|
|
249
|
+
children: /* @__PURE__ */ g("button", {
|
|
250
|
+
type: "button",
|
|
251
|
+
onClick: I.onOpen,
|
|
252
|
+
"aria-label": u.aiAssistant,
|
|
253
|
+
className: I.active ? w : T,
|
|
254
|
+
children: [/* @__PURE__ */ h(c, { className: "h-5 w-5 flex-shrink-0" }), /* @__PURE__ */ h("span", {
|
|
255
|
+
className: D,
|
|
256
|
+
children: u.aiAssistant
|
|
257
|
+
})]
|
|
258
|
+
})
|
|
259
|
+
}), /* @__PURE__ */ h(r, {
|
|
260
|
+
side: "right",
|
|
261
|
+
className: "font-medium",
|
|
262
|
+
children: u.aiAssistant
|
|
263
|
+
})] }) : /* @__PURE__ */ g("button", {
|
|
248
264
|
type: "button",
|
|
249
|
-
onClick:
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
children: d.aiAssistant
|
|
265
|
+
onClick: I.onOpen,
|
|
266
|
+
className: I.active ? w : T,
|
|
267
|
+
children: [/* @__PURE__ */ h(c, { className: "h-5 w-5 flex-shrink-0" }), /* @__PURE__ */ h("span", {
|
|
268
|
+
className: O,
|
|
269
|
+
children: u.aiAssistant
|
|
255
270
|
})]
|
|
271
|
+
})),
|
|
272
|
+
W.map(Q),
|
|
273
|
+
z?.({
|
|
274
|
+
variant: "desktop",
|
|
275
|
+
collapsed: S
|
|
256
276
|
})
|
|
257
|
-
|
|
258
|
-
side: "right",
|
|
259
|
-
className: "font-medium",
|
|
260
|
-
children: d.aiAssistant
|
|
261
|
-
})] }) : /* @__PURE__ */ _("button", {
|
|
262
|
-
type: "button",
|
|
263
|
-
onClick: L.onOpen,
|
|
264
|
-
className: L.active ? k : A,
|
|
265
|
-
children: [/* @__PURE__ */ g(c, { className: "h-5 w-5 flex-shrink-0" }), /* @__PURE__ */ g("span", {
|
|
266
|
-
className: N,
|
|
267
|
-
children: d.aiAssistant
|
|
268
|
-
})]
|
|
269
|
-
}))]
|
|
277
|
+
]
|
|
270
278
|
}),
|
|
271
|
-
/* @__PURE__ */
|
|
272
|
-
/* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ h("div", { className: "mx-2 border-t border-sidebar-border" }),
|
|
280
|
+
/* @__PURE__ */ h("div", {
|
|
273
281
|
className: "shrink-0 px-2 pt-2 pb-3",
|
|
274
|
-
children:
|
|
275
|
-
"
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
className: e("mt-2 border-t border-sidebar-border/80 py-2", C ? "flex flex-col items-center gap-1" : "flex items-center justify-between gap-2 pl-[14px] pr-3"),
|
|
283
|
-
children: [/* @__PURE__ */ g("div", {
|
|
284
|
-
className: e("min-w-0 overflow-hidden whitespace-nowrap", C ? "order-2 w-full truncate text-center" : "order-1"),
|
|
285
|
-
children: U
|
|
286
|
-
}), /* @__PURE__ */ g("div", {
|
|
287
|
-
className: e("flex-shrink-0", C ? "order-1" : "order-2"),
|
|
288
|
-
children: W
|
|
282
|
+
children: /* @__PURE__ */ g("div", {
|
|
283
|
+
className: e("py-2", S ? "flex flex-col items-center gap-1" : "flex items-center justify-between gap-2 pl-[14px] pr-3"),
|
|
284
|
+
children: [/* @__PURE__ */ h("div", {
|
|
285
|
+
className: e("min-w-0 overflow-hidden whitespace-nowrap", S ? "order-2 w-full truncate text-center" : "order-1"),
|
|
286
|
+
children: B
|
|
287
|
+
}), /* @__PURE__ */ h("div", {
|
|
288
|
+
className: e("flex-shrink-0", S ? "order-1" : "order-2"),
|
|
289
|
+
children: V
|
|
289
290
|
})]
|
|
290
|
-
})
|
|
291
|
+
})
|
|
291
292
|
})
|
|
292
293
|
]
|
|
293
294
|
})]
|
|
@@ -296,6 +297,6 @@ var v = "nav-active font-semibold", y = "text-sidebar-foreground nav-active-hove
|
|
|
296
297
|
] });
|
|
297
298
|
});
|
|
298
299
|
//#endregion
|
|
299
|
-
export {
|
|
300
|
+
export { I as Sidebar };
|
|
300
301
|
|
|
301
302
|
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/chrome/sidebar.tsx"],"mappings":";;;;;;;;;;AAgBA,IAAM,IAAkB,4BAClB,IAAoB,4CAEpB,IAAmB,mFACnB,IAAqB,EAAG,GAAkB,CAAe,GACzD,
|
|
1
|
+
{"version":3,"file":"sidebar.js","names":[],"sources":["../../../src/components/chrome/sidebar.tsx"],"mappings":";;;;;;;;;;AAgBA,IAAM,IAAkB,4BAClB,IAAoB,4CAEpB,IAAmB,mFACnB,IAAqB,EAAG,GAAkB,CAAe,GACzD,KAAuB,EAAG,GAAkB,CAAiB,GAM7D,IAAiB,0FACjB,KAAmB,EAAG,GAAgB,CAAe,GACrD,KAAqB,EAAG,GAAgB,CAAiB,GAEzD,IACJ,gGACI,KAAsB,EAAG,GAAmB,CAAe,GAC3D,KAAwB,EAAG,GAAmB,CAAiB,GAE/D,IACJ,uGACI,IAAoB,EAAG,GAAiB,CAAe,GACvD,IAAsB,EAAG,GAAiB,CAAiB,GAE3D,IAAiB,sEACjB,IAAsB,EAAG,GAAgB,mBAAmB,GAC5D,IAAqB,EAAG,GAAgB,gCAAgC,GAExE,IACJ,6IACI,IAAuB,EAAG,GAAsB,iCAAiC,GACjF,IAAyB,EAAG,GAAsB,WAAW,GAE7D,IACJ,kOACI,KAAmB,EAAG,GAAkB,aAAa,GACrD,KAAqB,EAAG,GAAkB,+BAA+B,GAGzE,IACJ,sIACI,KAA8C;CAClD,UAAU;CACV,YAAY;AACd,GACM,KAAgD;CACpD,UAAU;CACV,YAAY;AACd,GAMM,IACJ,+IAmBI,IAAgC,CAAC,GA6F1B,IAAU,EAAK,SAAiB,EAC3C,WACA,UACA,iBACA,mBACA,eACA,cACA,mBAAgB,IAChB,sBACA,oBACA,iBAAc,GACd,gBACA,OACA,kBACA,wBACA,kBACA,gBACA,oBACA,aACA,oBACe;CAMf,IAAM,IAAgB,KAAS,KAAgB,GACzC,IAAe,IAAQ,IAAe,KAAkB,GASxD,IAA0B,GAAQ,MAAU,KAAgB,KAE5D,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,CAAC,IAAU,MAAe,EAAS,CAAC,GACpC,IAAY,EAAoB,IAAI,GACpC,IAAgB,EAAuB,IAAI,GAG3C,IAAiB,EAA2B,IAAI;CA8DtD,AA5DA,QAAgB;EACT,KACL,QAAQ,KACN,2KAEF;CACF,GAAG,CAAC,CAAuB,CAAC,GAK5B,QAAgB;EACd,IAAM,IAAS,EAAU;EACzB,IAAI,CAAC,GAAQ;EACb,IAAI,IAAuB,MACvB,IAAO,IACL,UAAgB;GACpB,IAAQ;GACR,IAAM,IAAO,GAAG,EAAO,aAAa;GAIhC,MAAS,MACb,IAAO,GACP,SAAS,gBAAgB,MAAM,YAAY,0BAA0B,CAAI;EAC3E,GAQM,IAAK,IAAI,qBAJS;GAClB,MAAU,SACd,IAAQ,sBAAsB,CAAO;EACvC,CACuC;EAGvC,OAFA,EAAG,QAAQ,CAAM,GACjB,EAAQ,SACK;GAGX,AAFA,EAAG,WAAW,GACV,MAAU,QAAM,qBAAqB,CAAK,GAC9C,SAAS,gBAAgB,MAAM,eAAe,wBAAwB;EACxE;CACF,GAAG,CAAC,CAAC,GAEL,SACM,IACF,SAAS,KAAK,MAAM,WAAW,WAE/B,SAAS,KAAK,MAAM,WAAW,UAEpB;EACX,SAAS,KAAK,MAAM,WAAW;CACjC,IACC,CAAC,CAAc,CAAC,GAQnB,QAAgB;EACd,IAAI,GAAgB;GAClB,IAAM,IAAO,EAAc;GAE3B,CADc,GAAM,cAA2B,CAAkB,KACvD,EAAA,EAAO,MAAM;GACvB,IAAM,KAAa,MAAqB;IACtC,AAAI,EAAE,QAAQ,YAAU,EAAkB,EAAK;GACjD;GAEA,OADA,SAAS,iBAAiB,WAAW,CAAS,SACjC,SAAS,oBAAoB,WAAW,CAAS;EAChE;EACA,IAAM,IAAU,EAAe;EAE/B,AADA,EAAe,UAAU,MACzB,GAAS,MAAM;CACjB,GAAG,CAAC,CAAc,CAAC;CAMnB,SAAS,GAAwB,GAAwC;EACvE,IAAI,EAAE,QAAQ,OAAO;EACrB,IAAM,IAAO,EAAc;EAC3B,IAAI,CAAC,GAAM;EACX,IAAM,IAAY,EAAK,iBAA8B,CAAkB;EACvE,IAAI,EAAU,WAAW,GAAG;GAC1B,EAAE,eAAe;GACjB;EACF;EACA,IAAM,IAAQ,EAAU,IAClB,IAAO,EAAU,EAAU,SAAS,IACpC,IAAS,SAAS;EACxB,AAAI,EAAE,YACA,MAAW,KAAS,MAAW,OACjC,EAAE,eAAe,GACjB,EAAK,MAAM,KAEJ,MAAW,MACpB,EAAE,eAAe,GACjB,EAAM,MAAM;CAEhB;CAEA,QAAgB;EACd,IAAI,IAAuB,MACrB,UAAe;GACnB,IAAQ;GACR,IAAM,IAAO,KAAK,IAAI,IAAI,SAAS,KAAK,cAAc,KAAY,CAAC;GAInE,IAAa,MAAU,MAAS,IAAO,IAAO,CAAK;EACrD,GAEM,UAAkB;GAClB,MAAU,SACd,IAAQ,sBAAsB,CAAM;EACtC;EAGA,OAFA,EAAO,GACP,OAAO,iBAAiB,UAAU,CAAS,SAC9B;GAEX,AADA,OAAO,oBAAoB,UAAU,CAAS,GAC1C,MAAU,QAAM,qBAAqB,CAAK;EAChD;CACF,GAAG,CAAC,CAAQ,CAAC;CAEb,SAAS,EAAoB,GAAsB;EACjD,IAAM,IAAO,EAAK,MACZ,IAAkB,EAAK,SAAS,IAAqB;EAkB3D,OAhBI,EAAK,WAEL,kBAAC,KAAD;GAEE,MAAM,EAAK;GACX,QAAO;GACP,KAAI;GACJ,eAAe,EAAkB,EAAK;GACtC,WAAW;GANb,UAAA,CAQE,kBAAC,GAAD,EAAM,WAAU,UAAW,CAAA,GAC1B,EAAK,KACL;EATI,GAAA,EAAK,GAST,IAKL,kBAAC,QAAD;GAAqB,WAAU;GAC5B,UAAA,EACC;IACE,MAAM,EAAK;IACX,eAAe,EAAkB,EAAK;IACtC,cAAc,EAAK;IACnB,SAAS,EAAK;IACd,WAAW;IACX,UACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAM,WAAU,UAAW,CAAA,GAC1B,EAAK,KACN,EAAA,CAAA;GAEN,GACA,CACF;EACI,GAjBK,EAAK,GAiBV;CAEV;CAEA,SAAS,EAAqB,GAAsB;EAClD,IAAM,IAAO,EAAK,MACZ,IAAgB,EAAK,SAAS,KAAsB,IAEpD,IACJ,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAM,WAAU,wBAAyB,CAAA,GACzC,kBAAC,QAAD;GAAM,WAAW,IAAY,IAAsB;GAAqB,UAAA,EAAK;EAAY,CAAA,CACzF,EAAA,CAAA,GAGE,IAAO,EAAK,WAChB,kBAAC,KAAD;GACE,MAAM,EAAK;GACX,QAAO;GACP,KAAI;GACJ,WAAW;GACX,cAAY,IAAY,EAAK,QAAQ,KAAA;GAEpC,UAAA;EACA,CAAA,IAEH,EACE;GACE,MAAM,EAAK;GACX,cAAc,EAAK;GACnB,SAAS,EAAK;GACd,WAAW;GACX,cAAc,IAAY,EAAK,QAAQ,KAAA;GACvC,UAAU;EACZ,GACA,CACF;EAYF,OAJK,IAKH,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GAAgB,SAAA;GAAS,UAAA;EAA2C,CAAA,GACpE,kBAAC,GAAD;GAAgB,MAAK;GAAQ,WAAU;GACpC,UAAA,EAAK;EACQ,CAAA,CACT,EAAA,GALK,EAAK,GAKV,IATF,kBAAC,IAAD,EAAA,UAA0B,EAAe,GAA1B,EAAK,GAAqB;CAWpD;CAEA,IAAM,KAAa,MAAkC;EACnD,IAAM,IACJ,MAAY,WACV,kBAAC,GAAD;GAAY,MAAK;GAAK,WAAU;EAAsC,CAAA,IAEtE,kBAAC,GAAD,EACE,WAAW,EACT,uFACA,IAAY,sBAAsB,gCACpC,EACD,CAAA,GAEC,IAAO,kBAAC,OAAD;GAAK,KAAK;GAAa,KAAI;GAAG,OAAO;GAAI,QAAQ;GAAI,WAAU;EAAiB,CAAA,GACvF,IACJ,MAAY,WAIR,wCACA;EAeN,OAbI,IAEA,kBAAC,UAAD;GACE,MAAK;GACL,SAAS;GACT,cAAY,EAAO;GACnB,WAAW,EAAG,GAAc,4BAA4B,MAAY,aAAa,QAAQ;GAJ3F,UAAA,CAMG,GACA,CACK;OAIV,kBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACG,GACA,CACE;;CAET;CAEA,OACE,kBAAA,GAAA,EAAA,UAAA;EAIE,kBAAC,UAAD;GACE,KAAK;GACL,WAAU;GAOV,UAAA,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,kBAAC,GAAD;MACE,SAAQ;MACR,MAAK;MACL,WAAU;MACV,UAAU,MAAM;OAId,AADK,MAAgB,EAAe,UAAU,EAAE,gBAChD,EAAkB,CAAC,CAAc;MACnC;MACA,cAAY,IAAiB,EAAO,YAAY,EAAO;MAEtD,UAAiB,EAAjB,IAAkB,IAA4B,IAA7B,EAAG,WAAU,UAAW,CAA+B;KACnE,CAAA;KACP,EAAU,QAAQ;KAClB,KAAuB,kBAAC,OAAD;MAAK,WAAU;MAA8B,UAAA;KAAyB,CAAA;IAC3F;;EACC,CAAA;EAGR,kBAAC,OAAD;GACE,eAAY;GACZ,WAAW,IAAiB,IAAuB;GACnD,eAAe,EAAkB,EAAK;GACtC,eAAY;EACb,CAAA;EAGD,kBAAC,OAAD;GACE,KAAK;GACL,WAAW,IAAiB,KAAmB;GAC/C,MAAM,IAAiB,WAAW,KAAA;GAClC,cAAY,IAAiB,KAAO,KAAA;GACpC,cAAY,IAAiB,EAAO,iBAAiB,KAAA;GACrD,eAAa,CAAC;GACd,OAAO,CAAC,KAAwB,KAAA;GAGhC,UAAU,IAAiB,KAAK,KAAA;GAChC,WAAW;GACX,OAAO,IAAiB,KAAyB;GAZnD,UAAA;IAkBE,kBAAC,OAAD;KAAK,cAAY,EAAO;KAAmB,WAAU;KAArD,UAAA;MACG,EAAc,IAAI,CAAmB;MACrC,KACC,kBAAC,UAAD;OACE,MAAK;OACL,eAAe;QAEb,AADA,EAAG,OAAO,GACV,EAAkB,EAAK;OACzB;OACA,WAAW,EAAG,SAAS,KAAmB;OAN5C,UAAA,CAQE,kBAAC,GAAD,EAAU,WAAU,UAAW,CAAA,GAC9B,EAAO,WACF;;MAET,EAAa,IAAI,CAAmB;MACpC,IAAgB;OAAE,SAAS;OAAU,WAAW;MAAM,CAAC;KACrD;;IACL,kBAAC,OAAD,EAAK,WAAU,+CAAgD,CAAA;IAK/D,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACG,GACA,CACE;;GACF;;EAGL,kBAAC,GAAD;GAAiB,eAAe;GAC9B,UAAA,kBAAC,SAAD;IACE,cAAY,EAAO;IACnB,WAAW,EACT,6GACA,IAAY,YAAY,WACxB,KAAiB,kBACnB;IACA,OAAO,EAAE,MAAM,KAAW,GAAa;IACvC,kBAAkB,MAAM;KACtB,AAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,WACrD,IAAkB;IAEtB;IAZF,UAAA,CAeE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAgB,SAAA;KACd,UAAA,kBAAC,UAAD;MACE,SAAS;MACT,cAAY,IAAY,EAAO,gBAAgB,EAAO;MAWtD,WAAU;MAET,UAAY,EAAZ,IAAa,KAA2C,IAA5C,EAAc,WAAU,cAAe,CAA0C;KACxF,CAAA;IACM,CAAA,GAChB,kBAAC,GAAD;KAAgB,MAAK;KAAS,UAAA,IAAY,EAAO,gBAAgB,EAAO;IAAgC,CAAA,CACjG,EAAA,CAAA,GAgBT,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA;MAIG,EAAU,SAAS;MACnB,KAAiB,kBAAC,OAAD;OAAK,WAAU;OAAsB,UAAA;MAAmB,CAAA;MAE1E,kBAAC,OAAD,EAAK,WAAU,sCAAuC,CAAA;MAKtD,kBAAC,OAAD;OAAK,cAAY,EAAO;OAAmB,WAAU;OAArD,UAAA;QACG,EAAc,IAAI,CAAoB;QACtC,MACE,IACC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;SAAgB,SAAA;SACd,UAAA,kBAAC,UAAD;UACE,MAAK;UACL,SAAS,EAAG;UACZ,cAAY,EAAO;UACnB,WAAW,EAAG,SAAS,IAAoB;UAJ7C,UAAA,CAME,kBAAC,GAAD,EAAU,WAAU,wBAAyB,CAAA,GAC7C,kBAAC,QAAD;WAAM,WAAW;WAAsB,UAAA,EAAO;UAAkB,CAAA,CAC1D;;QACM,CAAA,GAChB,kBAAC,GAAD;SAAgB,MAAK;SAAQ,WAAU;SACpC,UAAA,EAAO;QACM,CAAA,CACT,EAAA,CAAA,IAIT,kBAAC,UAAD;SACE,MAAK;SACL,SAAS,EAAG;SACZ,WAAW,EAAG,SAAS,IAAoB;SAH7C,UAAA,CAKE,kBAAC,GAAD,EAAU,WAAU,wBAAyB,CAAA,GAC7C,kBAAC,QAAD;UAAM,WAAW;UAAqB,UAAA,EAAO;SAAkB,CAAA,CACzD;;QAEX,EAAa,IAAI,CAAoB;QACrC,IAAgB;SAAE,SAAS;SAAW;QAAU,CAAC;OAC/C;;MAEL,kBAAC,OAAD,EAAK,WAAU,sCAAuC,CAAA;MAEtD,kBAAC,OAAD;OAAK,WAAU;OAKb,UAAA,kBAAC,OAAD;QACE,WAAW,EACT,QACA,IACI,qCACA,wDACN;QANF,UAAA,CAQE,kBAAC,OAAD;SACE,WAAW,EACT,6CACA,IAAY,wCAAwC,SACtD;SAEC,UAAA;QACE,CAAA,GACL,kBAAC,OAAD;SAAK,WAAW,EAAG,iBAAiB,IAAY,YAAY,SAAS;SAAI,UAAA;QAAqB,CAAA,CAC3F;;MACF,CAAA;KACF;IACA,CAAA,CAAA;;EACQ,CAAA;CACjB,EAAA,CAAA;AAEN,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ export * from "./components/chrome/fiesta-logo";
|
|
|
66
66
|
export * from "./components/chrome/language-selector";
|
|
67
67
|
export * from "./components/chrome/main-content";
|
|
68
68
|
export * from "./components/chrome/nav-list";
|
|
69
|
+
export * from "./components/chrome/page-card";
|
|
69
70
|
export * from "./components/chrome/page-header";
|
|
70
71
|
export * from "./components/chrome/page-inset";
|
|
71
72
|
export * from "./components/chrome/page-layout";
|
package/dist/index.js
CHANGED
|
@@ -59,58 +59,59 @@ import { FiestaLogo as jn } from "./components/chrome/fiesta-logo.js";
|
|
|
59
59
|
import { LanguageSelector as Mn } from "./components/chrome/language-selector.js";
|
|
60
60
|
import { MainContent as Nn } from "./components/chrome/main-content.js";
|
|
61
61
|
import { NavList as Pn, NavListItem as Fn, NavListLink as In, NavListSection as Ln, NavListSectionContent as Rn, NavListSectionTrigger as zn } from "./components/chrome/nav-list.js";
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
-
import {
|
|
76
|
-
import {
|
|
77
|
-
import {
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
import {
|
|
95
|
-
import {
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import {
|
|
102
|
-
import {
|
|
103
|
-
import {
|
|
104
|
-
import {
|
|
105
|
-
import {
|
|
106
|
-
import {
|
|
107
|
-
import {
|
|
108
|
-
import {
|
|
109
|
-
import {
|
|
110
|
-
import {
|
|
111
|
-
import {
|
|
112
|
-
import {
|
|
113
|
-
import {
|
|
114
|
-
import {
|
|
115
|
-
import {
|
|
116
|
-
|
|
62
|
+
import { PageCard as Bn, PageSection as Vn } from "./components/chrome/page-card.js";
|
|
63
|
+
import { PAGE_HUES as Hn, PageHeader as Un, PageIconGradientDefs as Wn, pageHue as Gn } from "./components/chrome/page-header.js";
|
|
64
|
+
import { PageInset as Kn } from "./components/chrome/page-inset.js";
|
|
65
|
+
import { PageLayout as qn } from "./components/chrome/page-layout.js";
|
|
66
|
+
import { PageToolbar as Jn } from "./components/chrome/page-toolbar.js";
|
|
67
|
+
import { Pagination as Yn, paginationRange as Xn } from "./components/chrome/pagination.js";
|
|
68
|
+
import { Sidebar as Zn } from "./components/chrome/sidebar.js";
|
|
69
|
+
import { SkipToContent as Qn } from "./components/chrome/skip-to-content.js";
|
|
70
|
+
import { ThemeToggle as $n } from "./components/chrome/theme-toggle.js";
|
|
71
|
+
import { TopNav as er, TopNavActions as tr, TopNavBrand as nr, TopNavItem as rr, TopNavLink as ir, TopNavList as ar, TopNavMenuTrigger as or } from "./components/chrome/top-nav.js";
|
|
72
|
+
import { WizardProgress as sr } from "./components/wizard/wizard-progress.js";
|
|
73
|
+
import { ALL_COLOR_CODES as cr, AVAILABLE_COLORS as lr, BOARD_COLORS as ur, COLOR_CODE_MAP as dr, COLOR_DISPLAY as fr, FIESTABOARD_COLORS as pr, getBoardColor as mr, isValidBoardColor as hr, resolveColorCode as gr } from "./lib/board-colors.js";
|
|
74
|
+
import { BOARD_CHARS as _r, EXTRA_CHARS as vr, applyCode62Glyph as yr, getCharFromToken as br, getCharIndex as xr, isColorTile as Sr, messageToGrid as Cr, messageToText as wr, parseLine as Tr, resolveCode62Glyph as Er, tokensEqual as Dr } from "./lib/board-characters.js";
|
|
75
|
+
import { BoardTeaser as Or } from "./components/board/board-teaser.js";
|
|
76
|
+
import { BoardBackdrop as kr } from "./components/board/board-backdrop.js";
|
|
77
|
+
import { WizardShell as Ar } from "./components/wizard/wizard-shell.js";
|
|
78
|
+
import { DEVICE_DIMENSIONS as jr, MAX_NOTES_PER_AXIS as Mr, NOTE_COLS as Nr, NOTE_ROWS as Pr, isNoteArray as Fr, noteArrayDimensions as Ir, resolveDimensions as Lr } from "./lib/board-dimensions.js";
|
|
79
|
+
import { BoardDisplay as Rr, FLAP_SPEED_PRESETS as zr, deriveFlapTiming as Br, resolveFlapSpeed as Vr } from "./components/board/board-display.js";
|
|
80
|
+
import { ScaledBoardDisplay as Hr } from "./components/board/scaled-board-display.js";
|
|
81
|
+
import { StaticBoardDisplay as Ur } from "./components/board/static-board-display.js";
|
|
82
|
+
import { DEFAULT_SHAPE_LABELS as Wr, previewLabel as Gr, previewLabels as Kr, previewMessage as qr } from "./lib/board-previews.js";
|
|
83
|
+
import { BarList as Jr } from "./components/data/bar-list.js";
|
|
84
|
+
import { StatStrip as Yr, StatStripItem as Xr } from "./components/data/stat-strip.js";
|
|
85
|
+
import { BoardShowcase as Zr, DEFAULT_SHOWCASE_LABELS as Qr } from "./components/plugin/board-showcase.js";
|
|
86
|
+
import { PLUGIN_CATEGORIES as $r, PluginCategoryBadge as ei } from "./components/plugin/plugin-category-badge.js";
|
|
87
|
+
import { ScaledBoardTeaser as ti } from "./components/plugin/scaled-board-teaser.js";
|
|
88
|
+
import { PluginCard as ni } from "./components/plugin/plugin-card.js";
|
|
89
|
+
import { BOARD_CODE_TO_COLOR as ri, BOARD_COLOR_CODES as ii, CURSOR_ANCHOR as ai, DEFAULT_BOARD_LINES as oi, DEFAULT_BOARD_WIDTH as si, FILL_SPACE_REPEAT_VAR as ci, FILL_SPACE_VAR as li } from "./components/editor/constants.js";
|
|
90
|
+
import { NodeViewInjectionProvider as ui, useNodeViewInjection as di } from "./components/editor/node-views/node-view-context.js";
|
|
91
|
+
import { ColorTileNodeView as fi, DEFAULT_COLOR_TILE_NODE_VIEW_LABELS as pi } from "./components/editor/node-views/color-tile-node-view.js";
|
|
92
|
+
import { ColorTileNode as mi } from "./components/editor/extensions/color-tile-node.js";
|
|
93
|
+
import { DEFAULT_FILL_SPACE_NODE_VIEW_LABELS as hi, FillSpaceNodeView as gi } from "./components/editor/node-views/fill-space-node-view.js";
|
|
94
|
+
import { FillSpaceNode as _i } from "./components/editor/extensions/fill-space-node.js";
|
|
95
|
+
import { DEFAULT_FORMULA_NODE_VIEW_LABELS as vi, FormulaNodeView as yi } from "./components/editor/node-views/formula-node-view.js";
|
|
96
|
+
import { FormulaNode as bi } from "./components/editor/extensions/formula-node.js";
|
|
97
|
+
import { LineNavigation as xi } from "./components/editor/extensions/line-navigation.js";
|
|
98
|
+
import { SingleParagraphDoc as Si } from "./components/editor/extensions/single-paragraph-doc.js";
|
|
99
|
+
import { TrailingNewline as Ci } from "./components/editor/extensions/trailing-newline.js";
|
|
100
|
+
import { DEFAULT_VARIABLE_NODE_VIEW_LABELS as wi, VariableNodeView as Ti } from "./components/editor/node-views/variable-node-view.js";
|
|
101
|
+
import { VariableNode as Ei } from "./components/editor/extensions/variable-node.js";
|
|
102
|
+
import { DEFAULT_WRAPPED_TEXT_VIEW_LABELS as Di, WrappedTextView as Oi } from "./components/editor/node-views/wrapped-text-view.js";
|
|
103
|
+
import { WrappedTextNode as ki } from "./components/editor/extensions/wrapped-text-node.js";
|
|
104
|
+
import { ColorPickerContent as Ai, DEFAULT_COLOR_PICKER_LABELS as ji } from "./components/editor/color-picker-content.js";
|
|
105
|
+
import { DRAW_CHARS as Mi, brushToCell as Ni, cellsToLine as Pi, isPositionalLine as Fi, lineToCells as Ii, paintLine as Li, renderPositionalLine as Ri } from "./components/editor/utils/draw-mode.js";
|
|
106
|
+
import { DEFAULT_DRAW_CHAR_PICKER_LABELS as zi, DrawCharPickerContent as Bi } from "./components/editor/draw-char-picker-content.js";
|
|
107
|
+
import { DEFAULT_FORMATTING_PICKER_LABELS as Vi, FormattingPickerContent as Hi } from "./components/editor/formatting-picker-content.js";
|
|
108
|
+
import { DEFAULT_TOOLBAR_DROPDOWN_LABELS as Ui, ToolbarDropdown as Wi } from "./components/editor/toolbar-dropdown.js";
|
|
109
|
+
import { parseLineContent as Gi, parseTemplateSimple as Ki, serializeTemplateSimple as qi } from "./components/editor/utils/serialization.js";
|
|
110
|
+
import { insertTemplateContent as Ji } from "./components/editor/utils/insertion.js";
|
|
111
|
+
import { DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS as Yi, TemplateEditorToolbar as Xi } from "./components/editor/template-editor-toolbar.js";
|
|
112
|
+
import { buildStrokeTransaction as Zi, lineRanges as Qi } from "./components/editor/utils/stroke-transaction.js";
|
|
113
|
+
import { DEFAULT_TEMPLATE_EDITOR_LABELS as $i, TemplateEditor as ea } from "./components/editor/template-editor.js";
|
|
114
|
+
import { DEFAULT_FILTER_PICKER_LABELS as ta, FilterPickerContent as na } from "./components/editor/filter-picker-content.js";
|
|
115
|
+
import { DEFAULT_VARIABLE_PICKER_LABELS as ra, VariablePickerContent as ia, createLucideIconResolver as aa, getPluginsWithNestedArrays as oa } from "./components/editor/variable-picker-content.js";
|
|
116
|
+
import { calculateLineLength as sa, getOverflowAmount as ca, willOverflow as la } from "./components/editor/utils/length-calculator.js";
|
|
117
|
+
export { cr as ALL_COLOR_CODES, lr as AVAILABLE_COLORS, t as Accordion, n as AccordionContent, r as AccordionItem, i as AccordionTrigger, _ as ActionCard, E as Alert, D as AlertDescription, $ as AlertDialog, ee as AlertDialogAction, te as AlertDialogCancel, ne as AlertDialogContent, re as AlertDialogDescription, ie as AlertDialogFooter, ae as AlertDialogHeader, oe as AlertDialogOverlay, se as AlertDialogPortal, ce as AlertDialogTitle, le as AlertDialogTrigger, O as AlertTitle, _r as BOARD_CHARS, ri as BOARD_CODE_TO_COLOR, ur as BOARD_COLORS, ii as BOARD_COLOR_CODES, M as Badge, Jr as BarList, kr as BoardBackdrop, Rr as BoardDisplay, vn as BoardIcon, yn as BoardSelector, Zr as BoardShowcase, Or as BoardTeaser, J as Box, bn as Breadcrumb, xn as BreadcrumbEllipsis, Sn as BreadcrumbItem, Cn as BreadcrumbLink, wn as BreadcrumbList, Tn as BreadcrumbPage, En as BreadcrumbSeparator, A as Button, dr as COLOR_CODE_MAP, fr as COLOR_DISPLAY, ai as CURSOR_ANCHOR, s as Card, c as CardAction, l as CardContent, u as CardDescription, d as CardFooter, f as CardHeader, p as CardTitle, L as Checkbox, P as Chip, Ye as Code, y as Collapsible, b as CollapsibleContent, x as CollapsibleTrigger, Ai as ColorPickerContent, mi as ColorTileNode, fi as ColorTileNodeView, R as Combobox, V as CopyButton, oi as DEFAULT_BOARD_LINES, si as DEFAULT_BOARD_WIDTH, ji as DEFAULT_COLOR_PICKER_LABELS, pi as DEFAULT_COLOR_TILE_NODE_VIEW_LABELS, z as DEFAULT_COMBOBOX_LABELS, zi as DEFAULT_DRAW_CHAR_PICKER_LABELS, hi as DEFAULT_FILL_SPACE_NODE_VIEW_LABELS, ta as DEFAULT_FILTER_PICKER_LABELS, Vi as DEFAULT_FORMATTING_PICKER_LABELS, vi as DEFAULT_FORMULA_NODE_VIEW_LABELS, Wr as DEFAULT_SHAPE_LABELS, Qr as DEFAULT_SHOWCASE_LABELS, $i as DEFAULT_TEMPLATE_EDITOR_LABELS, Yi as DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS, Ui as DEFAULT_TOOLBAR_DROPDOWN_LABELS, wi as DEFAULT_VARIABLE_NODE_VIEW_LABELS, ra as DEFAULT_VARIABLE_PICKER_LABELS, Di as DEFAULT_WRAPPED_TEXT_VIEW_LABELS, jr as DEVICE_DIMENSIONS, Mi as DRAW_CHARS, ue as Dialog, de as DialogClose, fe as DialogContent, pe as DialogDescription, me as DialogFooter, he as DialogHeader, ge as DialogOverlay, _e as DialogPortal, ve as DialogTitle, ye as DialogTrigger, Bi as DrawCharPickerContent, be as DropdownMenu, xe as DropdownMenuCheckboxItem, Se as DropdownMenuContent, Ce as DropdownMenuGroup, we as DropdownMenuItem, Te as DropdownMenuLabel, Ee as DropdownMenuPortal, De as DropdownMenuRadioGroup, Oe as DropdownMenuRadioItem, ke as DropdownMenuSeparator, Ae as DropdownMenuShortcut, je as DropdownMenuSub, Me as DropdownMenuSubContent, Ne as DropdownMenuSubTrigger, Pe as DropdownMenuTrigger, vr as EXTRA_CHARS, I as EmptyState, pr as FIESTABOARD_COLORS, Dn as FIESTA_ICON_DATA_URI, On as FIESTA_ICON_PALETTE, kn as FIESTA_ICON_SVG, ci as FILL_SPACE_REPEAT_VAR, li as FILL_SPACE_VAR, zr as FLAP_SPEED_PRESETS, ht as FadeContent, G as Field, An as FiestaIcon, jn as FiestaLogo, _i as FillSpaceNode, gi as FillSpaceNodeView, na as FilterPickerContent, Y as Flex, Hi as FormattingPickerContent, bi as FormulaNode, yi as FormulaNodeView, Z as Grid, Xe as Heading, h as IconTile, K as Input, S as JsonTree, Qe as Kbd, W as Label, Mn as LanguageSelector, Fe as Lightbox, Ie as LightboxClose, Le as LightboxContent, Re as LightboxFooter, ze as LightboxOverlay, Be as LightboxPortal, Ve as LightboxTrigger, xi as LineNavigation, et as List, tt as ListItem, Mr as MAX_NOTES_PER_AXIS, Nn as MainContent, C as MediaFrame, w as MediaFrameBar, T as MediaFrameMedia, Nr as NOTE_COLS, Pr as NOTE_ROWS, Pn as NavList, Fn as NavListItem, In as NavListLink, Ln as NavListSection, Rn as NavListSectionContent, zn as NavListSectionTrigger, ui as NodeViewInjectionProvider, Hn as PAGE_HUES, $r as PLUGIN_CATEGORIES, Bn as PageCard, Un as PageHeader, Wn as PageIconGradientDefs, Kn as PageInset, qn as PageLayout, Vn as PageSection, Jn as PageToolbar, Yn as Pagination, ni as PluginCard, ei as PluginCategoryBadge, He as Popover, Ue as PopoverClose, We as PopoverContent, Ge as PopoverDescription, Ke as PopoverTitle, qe as PopoverTrigger, Hr as ScaledBoardDisplay, ti as ScaledBoardTeaser, rt as ScrollArea, it as ScrollBar, q as SecretInput, Kt as SegmentedControl, qt as SegmentedControlItem, yt as Select, bt as SelectContent, xt as SelectGroup, St as SelectItem, Ct as SelectLabel, wt as SelectScrollDownButton, Tt as SelectScrollUpButton, Et as SelectSeparator, Dt as SelectTrigger, Ot as SelectValue, nn as Sheet, rn as SheetClose, an as SheetContent, on as SheetDescription, sn as SheetFooter, cn as SheetHeader, ln as SheetOverlay, un as SheetPortal, dn as SheetTitle, fn as SheetTrigger, Zn as Sidebar, Si as SingleParagraphDoc, gt as Skeleton, Qn as SkipToContent, kt as Slider, a as Spinner, en as Stack, Yr as StatStrip, Xr as StatStripItem, Ur as StaticBoardDisplay, _t as StatusDot, At as Swatch, jt as SwatchGroup, Lt as Switch, at as Table, ot as TableBody, st as TableCell, ct as TableHead, lt as TableHeader, ut as TableRow, dt as Tabs, ft as TabsContent, pt as TabsList, mt as TabsTrigger, ea as TemplateEditor, Xi as TemplateEditorToolbar, H as Text, _n as TextLink, Rt as Textarea, $n as ThemeToggle, zt as TimePicker, Bt as TimezonePicker, Ht as Toggle, Jt as ToggleCard, Yt as ToggleCardGroup, Ut as ToggleGroup, Wi as ToolbarDropdown, pn as Tooltip, mn as TooltipContent, hn as TooltipProvider, gn as TooltipTrigger, er as TopNav, tr as TopNavActions, nr as TopNavBrand, rr as TopNavItem, ir as TopNavLink, ar as TopNavList, or as TopNavMenuTrigger, Ci as TrailingNewline, Ei as VariableNode, Ti as VariableNodeView, ia as VariablePickerContent, sr as WizardProgress, Ar as WizardShell, ki as WrappedTextNode, Oi as WrappedTextView, v as actionCardMedallionVariants, k as alertVariants, yr as applyCode62Glyph, N as badgeVariants, Ni as brushToCell, Zi as buildStrokeTransaction, j as buttonVariants, sa as calculateLineLength, m as cardSurfaceClassName, Pi as cellsToLine, F as chipVariants, e as cn, aa as createLucideIconResolver, B as defaultComboboxFilter, Br as deriveFlapTiming, X as flexVariants, mr as getBoardColor, br as getCharFromToken, xr as getCharIndex, ca as getOverflowAmount, oa as getPluginsWithNestedArrays, Q as gridVariants, Ze as headingVariants, g as iconTileVariants, Ji as insertTemplateContent, Sr as isColorTile, Fr as isNoteArray, Fi as isPositionalLine, hr as isValidBoardColor, Qi as lineRanges, Ii as lineToCells, Vt as listTimezones, nt as listVariants, Cr as messageToGrid, wr as messageToText, Ir as noteArrayDimensions, Gn as pageHue, Xn as paginationRange, Li as paintLine, Tr as parseLine, Gi as parseLineContent, Ki as parseTemplateSimple, Gr as previewLabel, Kr as previewLabels, qr as previewMessage, Ri as renderPositionalLine, Er as resolveCode62Glyph, gr as resolveColorCode, Lr as resolveDimensions, Vr as resolveFlapSpeed, Xt as segmentedControlItemVariants, Zt as segmentedControlVariants, qi as serializeTemplateSimple, o as spinnerVariants, tn as stackVariants, vt as statusDotVariants, Mt as swatchFillVariants, Nt as swatchGlyphVariants, Pt as swatchGroupVariants, Ft as swatchIndicatorVariants, It as swatchVariants, U as textVariants, Qt as toggleCardGroupVariants, $t as toggleCardVariants, Wt as toggleGroupVariants, Gt as toggleVariants, Dr as tokensEqual, $e as useKbdPlatform, di as useNodeViewInjection, Je as usePopoverClose, la as willOverflow };
|