@fiestaboard/ui 5.1.0 → 5.3.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.
Files changed (30) hide show
  1. package/dist/components/board/board-display.d.ts +13 -1
  2. package/dist/components/board/board-display.js +103 -101
  3. package/dist/components/board/board-display.js.map +1 -1
  4. package/dist/components/board/static-board-display.d.ts +6 -1
  5. package/dist/components/board/static-board-display.js +36 -34
  6. package/dist/components/board/static-board-display.js.map +1 -1
  7. package/dist/components/chrome/breadcrumb.d.ts +43 -0
  8. package/dist/components/chrome/breadcrumb.js +76 -0
  9. package/dist/components/chrome/breadcrumb.js.map +1 -0
  10. package/dist/components/containment/media-frame.d.ts +28 -0
  11. package/dist/components/containment/media-frame.js +40 -0
  12. package/dist/components/containment/media-frame.js.map +1 -0
  13. package/dist/components/data/bar-list.d.ts +81 -0
  14. package/dist/components/data/bar-list.js +54 -0
  15. package/dist/components/data/bar-list.js.map +1 -0
  16. package/dist/components/feedback/chip.d.ts +28 -0
  17. package/dist/components/feedback/chip.js +29 -0
  18. package/dist/components/feedback/chip.js.map +1 -0
  19. package/dist/components/forms/toggle.d.ts +56 -0
  20. package/dist/components/forms/toggle.js +97 -0
  21. package/dist/components/forms/toggle.js.map +1 -0
  22. package/dist/components/overlays/lightbox.d.ts +37 -0
  23. package/dist/components/overlays/lightbox.js +54 -0
  24. package/dist/components/overlays/lightbox.js.map +1 -0
  25. package/dist/index.d.ts +6 -0
  26. package/dist/index.js +99 -93
  27. package/dist/lib/board-characters.d.ts +33 -7
  28. package/dist/lib/board-characters.js +14 -11
  29. package/dist/lib/board-characters.js.map +1 -1
  30. package/package.json +1 -1
@@ -0,0 +1,97 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import * as t from "react";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { cva as r } from "class-variance-authority";
6
+ import { Toggle as i } from "@base-ui/react/toggle";
7
+ import { ToggleGroup as a } from "@base-ui/react/toggle-group";
8
+ //#region src/components/forms/toggle.tsx
9
+ var o = r([
10
+ "inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium",
11
+ "transition-[color,background-color,border-color,box-shadow] duration-control focus-ring",
12
+ "disabled:pointer-events-none disabled:opacity-50",
13
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14
+ "data-[pressed]:bg-primary data-[pressed]:text-primary-foreground",
15
+ "data-[pressed]:hover:bg-primary-hover data-[pressed]:active:bg-primary-active"
16
+ ], {
17
+ variants: {
18
+ variant: {
19
+ default: [
20
+ "bg-transparent",
21
+ "not-data-[pressed]:hover:bg-accent not-data-[pressed]:hover:text-accent-foreground",
22
+ "dark:not-data-[pressed]:hover:bg-accent/50"
23
+ ],
24
+ outline: [
25
+ "border bg-background shadow-xs",
26
+ "not-data-[pressed]:hover:bg-accent not-data-[pressed]:hover:text-accent-foreground",
27
+ "dark:border-input dark:not-data-[pressed]:bg-card dark:not-data-[pressed]:hover:bg-muted",
28
+ "data-[pressed]:border-primary"
29
+ ]
30
+ },
31
+ size: {
32
+ default: "h-9 min-w-9 px-2",
33
+ sm: "h-8 min-w-8 px-1.5",
34
+ lg: "h-10 min-w-10 px-2.5",
35
+ icon: "size-9",
36
+ "icon-sm": "size-8"
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ variant: "default",
41
+ size: "default"
42
+ }
43
+ }), s = t.createContext(null);
44
+ function c({ className: r, variant: a = "default", size: c = "default", onPressedChange: l, ...u }) {
45
+ let d = t.useContext(s);
46
+ return /* @__PURE__ */ n(i, {
47
+ "data-slot": "toggle",
48
+ "data-variant": a,
49
+ "data-size": c,
50
+ onPressedChange: (e) => l?.(e),
51
+ className: e(o({
52
+ variant: a,
53
+ size: c
54
+ }), d?.segmented && ["rounded-[0px] border-0 shadow-none focus-visible:z-10", d.orientation === "vertical" ? ["not-first:border-t not-first:border-input", "first:rounded-t-[calc(var(--radius-md)-1px)] last:rounded-b-[calc(var(--radius-md)-1px)]"] : ["not-first:border-l not-first:border-input", "first:rounded-l-[calc(var(--radius-md)-1px)] last:rounded-r-[calc(var(--radius-md)-1px)]"]], r),
55
+ ...u
56
+ });
57
+ }
58
+ var l = r("flex w-fit items-center", {
59
+ variants: {
60
+ segmented: {
61
+ false: "gap-1",
62
+ true: "isolate rounded-md border border-input bg-background shadow-xs dark:bg-card"
63
+ },
64
+ orientation: {
65
+ horizontal: "flex-row",
66
+ vertical: "flex-col items-stretch"
67
+ }
68
+ },
69
+ defaultVariants: {
70
+ segmented: !1,
71
+ orientation: "horizontal"
72
+ }
73
+ });
74
+ function u({ className: r, segmented: i = !1, orientation: o = "horizontal", onValueChange: c, ...u }) {
75
+ let d = t.useMemo(() => ({
76
+ segmented: i,
77
+ orientation: o
78
+ }), [i, o]);
79
+ return /* @__PURE__ */ n(s.Provider, {
80
+ value: d,
81
+ children: /* @__PURE__ */ n(a, {
82
+ "data-slot": "toggle-group",
83
+ "data-segmented": i ? "" : void 0,
84
+ orientation: o,
85
+ onValueChange: (e) => c?.(e),
86
+ className: e(l({
87
+ segmented: i,
88
+ orientation: o
89
+ }), r),
90
+ ...u
91
+ })
92
+ });
93
+ }
94
+ //#endregion
95
+ export { c as Toggle, u as ToggleGroup, l as toggleGroupVariants, o as toggleVariants };
96
+
97
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","names":[],"sources":["../../../src/components/forms/toggle.tsx"],"mappings":";;;;;;;;AA0CA,IAAM,IAAiB,EACrB;CACE;CACA;CACA;CACA;CAOA;CACA;AACF,GACA;CACE,UAAU;EAKR,SAAS;GAEP,SAAS;IACP;IACA;IACA;GACF;GAKA,SAAS;IACP;IACA;IACA;IACA;GACF;EACF;EAMA,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,WAAW;EACb;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF,GAmBM,IAA0B,EAAM,cAAmD,IAAI;AAU7F,SAAS,EAAO,EAAE,cAAW,aAAU,WAAW,UAAO,WAAW,oBAAiB,GAAG,KAAsB;CAC5G,IAAM,IAAQ,EAAM,WAAW,CAAuB;CAEtD,OACE,kBAAC,GAAD;EACE,aAAU;EACV,gBAAc;EACd,aAAW;EACX,kBAAkB,MAAY,IAAkB,CAAO;EACvD,WAAW,EACT,EAAe;GAAE;GAAS;EAAK,CAAC,GAgChC,GAAO,aAAa,CAClB,yDACA,EAAM,gBAAgB,aAClB,CACE,6CACA,0FACF,IACA,CACE,6CACA,0FACF,CACN,GACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,IAAsB,EAAI,2BAA2B;CACzD,UAAU;EACR,WAAW;GAET,OAAO;GAQP,MAAM;EACR;EACA,aAAa;GACX,YAAY;GACZ,UAAU;EACZ;CACF;CACA,iBAAiB;EACf,WAAW;EACX,aAAa;CACf;AACF,CAAC;AA8BD,SAAS,EAAY,EACnB,cACA,eAAY,IACZ,iBAAc,cACd,kBACA,GAAG,KACgB;CACnB,IAAM,IAAU,EAAM,eACb;EAAE;EAAW;CAAY,IAChC,CAAC,GAAW,CAAW,CACzB;CAEA,OACE,kBAAC,EAAwB,UAAzB;EAAkC,OAAO;EACvC,UAAA,kBAAC,GAAD;GACE,aAAU;GACV,kBAAgB,IAAY,KAAK,KAAA;GACpB;GACb,gBAAgB,MAAe,IAAgB,CAAU;GACzD,WAAW,EAAG,EAAoB;IAAE;IAAW;GAAY,CAAC,GAAG,CAAS;GACxE,GAAI;EACL,CAAA;CAC+B,CAAA;AAEtC"}
@@ -0,0 +1,37 @@
1
+ import { Dialog as LightboxPrimitive } from "@base-ui/react/dialog";
2
+ import * as React from "react";
3
+ /**
4
+ * Lightbox — click-to-zoom media viewer (issue #229 item 4).
5
+ *
6
+ * A styled composition of the same Base UI Dialog that dialog.tsx and
7
+ * sheet.tsx wrap, so Esc-to-close, backdrop-click dismissal, focus
8
+ * containment, body scroll lock and portalling are the primitive's, not
9
+ * re-implemented. The docs-site original hand-rolled all of that (keydown
10
+ * listener + overflow toggle + onClick-stopPropagation) and still had no
11
+ * focus trap; building on the dialog foundation is the point of promoting it.
12
+ *
13
+ * Differences from Dialog are presentational only: a near-opaque
14
+ * theme-invariant scrim, media floating on it with no card surface, and a
15
+ * viewport-pinned close chip.
16
+ */
17
+ declare const Lightbox: typeof LightboxPrimitive.Root;
18
+ declare function LightboxTrigger({ asChild, children, ...props }: React.ComponentProps<typeof LightboxPrimitive.Trigger> & {
19
+ asChild?: boolean;
20
+ }): React.JSX.Element;
21
+ declare const LightboxPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
22
+ declare function LightboxClose({ asChild, children, ...props }: React.ComponentProps<typeof LightboxPrimitive.Close> & {
23
+ asChild?: boolean;
24
+ }): React.JSX.Element;
25
+ declare function LightboxOverlay({ className, ...props }: React.ComponentProps<typeof LightboxPrimitive.Backdrop>): React.JSX.Element;
26
+ interface LightboxContentProps extends React.ComponentProps<typeof LightboxPrimitive.Popup> {
27
+ /**
28
+ * Accessible name for the dialog. Media dialogs have no visible title to
29
+ * point aria-labelledby at, so a label is defaulted rather than optional —
30
+ * override it with something content-specific ("Dashboard screenshot")
31
+ * when you can.
32
+ */
33
+ "aria-label"?: string;
34
+ }
35
+ declare function LightboxContent({ className, children, "aria-label": ariaLabel, ...props }: LightboxContentProps): React.JSX.Element;
36
+ declare function LightboxFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
37
+ export { Lightbox, LightboxClose, LightboxContent, LightboxFooter, LightboxOverlay, LightboxPortal, LightboxTrigger };
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { OverlayClose as t } from "./overlay-close.js";
4
+ import * as n from "react";
5
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
+ import { Dialog as a } from "@base-ui/react/dialog";
7
+ //#region src/components/overlays/lightbox.tsx
8
+ var o = a.Root;
9
+ function s({ asChild: e = !1, children: t, ...i }) {
10
+ return /* @__PURE__ */ r(a.Trigger, {
11
+ "data-slot": "lightbox-trigger",
12
+ ...e ? { render: n.Children.only(t) } : { children: t },
13
+ ...i
14
+ });
15
+ }
16
+ var c = a.Portal;
17
+ function l({ asChild: e = !1, children: t, ...i }) {
18
+ return /* @__PURE__ */ r(a.Close, {
19
+ "data-slot": "lightbox-close",
20
+ ...e ? { render: n.Children.only(t) } : { children: t },
21
+ ...i
22
+ });
23
+ }
24
+ function u({ className: t, ...n }) {
25
+ return /* @__PURE__ */ r(a.Backdrop, {
26
+ "data-slot": "lightbox-overlay",
27
+ className: e("fixed inset-0 z-[var(--z-modal)] bg-black/85 data-[open]:animate-in data-[ending-style]:animate-out data-[ending-style]:fade-out-0 data-[open]:fade-in-0", t),
28
+ ...n
29
+ });
30
+ }
31
+ function d({ className: n, children: o, "aria-label": s = "Media viewer", ...l }) {
32
+ return /* @__PURE__ */ i(c, { children: [/* @__PURE__ */ r(u, {}), /* @__PURE__ */ i(a.Popup, {
33
+ "data-slot": "lightbox-content",
34
+ "aria-label": s,
35
+ className: e("fixed left-[50%] top-[50%] z-[var(--z-modal)] flex max-h-[92svh] max-w-[92vw] translate-x-[-50%] translate-y-[-50%] flex-col items-center gap-3 pt-12 outline-none duration-base data-[open]:animate-in data-[ending-style]:animate-out data-[ending-style]:fade-out-0 data-[open]:fade-in-0 data-[ending-style]:zoom-out-95 data-[open]:zoom-in-95", "[&_img]:max-h-[78svh] [&_img]:max-w-[92vw] [&_img]:rounded-lg [&_img]:object-contain [&_img]:shadow-modal [&_video]:max-h-[78svh] [&_video]:max-w-[92vw] [&_video]:rounded-lg [&_video]:object-contain [&_video]:shadow-modal", n),
36
+ ...l,
37
+ children: [o, /* @__PURE__ */ r(t, {
38
+ "data-slot": "lightbox-close",
39
+ size: "md",
40
+ className: "right-0 top-0 bg-white/15 text-white hover:bg-white/25 focus-visible:ring-white/60"
41
+ })]
42
+ })] });
43
+ }
44
+ function f({ className: t, ...n }) {
45
+ return /* @__PURE__ */ r("div", {
46
+ "data-slot": "lightbox-footer",
47
+ className: e("flex flex-wrap items-center justify-center gap-2 text-white", t),
48
+ ...n
49
+ });
50
+ }
51
+ //#endregion
52
+ export { o as Lightbox, l as LightboxClose, d as LightboxContent, f as LightboxFooter, u as LightboxOverlay, c as LightboxPortal, s as LightboxTrigger };
53
+
54
+ //# sourceMappingURL=lightbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightbox.js","names":[],"sources":["../../../src/components/overlays/lightbox.tsx"],"mappings":";;;;;;;AAuBA,IAAM,IAAW,EAAkB;AAEnC,SAAS,EAAgB,EACvB,aAAU,IACV,aACA,GAAG,KAC8E;CACjF,OACE,kBAAC,EAAkB,SAAnB;EACE,aAAU;EACV,GAAK,IAAU,EAAE,QAAQ,EAAM,SAAS,KAAK,CAAQ,EAAwB,IAAI,EAAE,YAAS;EAC5F,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,IAAiB,EAAkB;AAEzC,SAAS,EAAc,EACrB,aAAU,IACV,aACA,GAAG,KAC4E;CAC/E,OACE,kBAAC,EAAkB,OAAnB;EACE,aAAU;EACV,GAAK,IAAU,EAAE,QAAQ,EAAM,SAAS,KAAK,CAAQ,EAAwB,IAAI,EAAE,YAAS;EAC5F,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAkE;CACzG,OACE,kBAAC,EAAkB,UAAnB;EACE,aAAU;EAWV,WAAW,EACT,4JACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAYA,SAAS,EAAgB,EACvB,cACA,aACA,cAAc,IAAY,gBAC1B,GAAG,KACoB;CACvB,OACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,CAAkB,CAAA,GAUlB,kBAAC,EAAkB,OAAnB;EACE,aAAU;EACV,cAAY;EACZ,WAAW,EAIT,uVAUA,iOACA,CACF;EACA,GAAI;EApBN,UAAA,CAsBG,GAgBD,kBAAC,GAAD;GACE,aAAU;GACV,MAAK;GACL,WAAU;EACX,CAAA,CACsB;CACX,CAAA,CAAA,EAAA,CAAA;AAEpB;AAEA,SAAS,EAAe,EAAE,cAAW,GAAG,KAAsC;CAC5E,OACE,kBAAC,OAAD;EACE,aAAU;EAKV,WAAW,EAAG,+DAA+D,CAAS;EACtF,GAAI;CACL,CAAA;AAEL"}
package/dist/index.d.ts CHANGED
@@ -10,8 +10,10 @@ export * from "./components/containment/accordion";
10
10
  export * from "./components/containment/card";
11
11
  export * from "./components/containment/collapsible";
12
12
  export * from "./components/containment/json-tree";
13
+ export * from "./components/containment/media-frame";
13
14
  export * from "./components/feedback/alert";
14
15
  export * from "./components/feedback/badge";
16
+ export * from "./components/feedback/chip";
15
17
  export * from "./components/feedback/empty-state";
16
18
  export * from "./components/forms/button";
17
19
  export * from "./components/forms/checkbox";
@@ -24,6 +26,7 @@ export * from "./components/layout/grid";
24
26
  export * from "./components/overlays/alert-dialog";
25
27
  export * from "./components/overlays/dialog";
26
28
  export * from "./components/overlays/dropdown-menu";
29
+ export * from "./components/overlays/lightbox";
27
30
  export * from "./components/overlays/popover";
28
31
  export * from "./components/typography/code";
29
32
  export * from "./components/typography/heading";
@@ -40,6 +43,7 @@ export * from "./components/forms/slider";
40
43
  export * from "./components/forms/switch";
41
44
  export * from "./components/forms/textarea";
42
45
  export * from "./components/forms/time-picker";
46
+ export * from "./components/forms/toggle";
43
47
  export * from "./components/forms/toggle-card";
44
48
  export * from "./components/layout/stack";
45
49
  export * from "./components/overlays/sheet";
@@ -48,6 +52,7 @@ export * from "./components/typography/text";
48
52
  export * from "./components/typography/text-link";
49
53
  export * from "./components/chrome/board-icon";
50
54
  export * from "./components/chrome/board-selector";
55
+ export * from "./components/chrome/breadcrumb";
51
56
  export * from "./components/chrome/fiesta-icon";
52
57
  export * from "./components/chrome/fiesta-logo";
53
58
  export * from "./components/chrome/language-selector";
@@ -70,6 +75,7 @@ export * from "./lib/board-characters";
70
75
  export * from "./lib/board-colors";
71
76
  export * from "./lib/board-dimensions";
72
77
  export * from "./lib/board-previews";
78
+ export * from "./components/data/bar-list";
73
79
  export * from "./components/data/stat-strip";
74
80
  export * from "./components/plugin/board-showcase";
75
81
  export * from "./components/plugin/plugin-card";
package/dist/index.js CHANGED
@@ -3,96 +3,102 @@ import { Accordion as t, AccordionContent as n, AccordionItem as r, AccordionTri
3
3
  import { Card as a, CardAction as o, CardContent as s, CardDescription as c, CardFooter as l, CardHeader as u, CardTitle as d } from "./components/containment/card.js";
4
4
  import { Collapsible as f, CollapsibleContent as p, CollapsibleTrigger as m } from "./components/containment/collapsible.js";
5
5
  import { JsonTree as h } from "./components/containment/json-tree.js";
6
- import { Alert as g, AlertDescription as _, AlertTitle as v, alertVariants as y } from "./components/feedback/alert.js";
7
- import { Badge as b, badgeVariants as x } from "./components/feedback/badge.js";
8
- import { EmptyState as S } from "./components/feedback/empty-state.js";
9
- import { Spinner as C, spinnerVariants as w } from "./components/feedback/spinner.js";
10
- import { Button as T, buttonVariants as E } from "./components/forms/button.js";
11
- import { Checkbox as D } from "./components/forms/checkbox.js";
12
- import { Input as O } from "./components/forms/input.js";
13
- import { Label as k } from "./components/forms/label.js";
14
- import { SecretInput as A } from "./components/forms/secret-input.js";
15
- import { Box as j } from "./components/layout/box.js";
16
- import { Flex as M, flexVariants as N } from "./components/layout/flex.js";
17
- import { Grid as P, gridVariants as F } from "./components/layout/grid.js";
18
- import { AlertDialog as I, AlertDialogAction as L, AlertDialogCancel as R, AlertDialogContent as z, AlertDialogDescription as B, AlertDialogFooter as V, AlertDialogHeader as H, AlertDialogOverlay as U, AlertDialogPortal as W, AlertDialogTitle as G, AlertDialogTrigger as K } from "./components/overlays/alert-dialog.js";
19
- import { Dialog as q, DialogClose as J, DialogContent as Y, DialogDescription as X, DialogFooter as Z, DialogHeader as Q, DialogOverlay as $, DialogPortal as ee, DialogTitle as te, DialogTrigger as ne } from "./components/overlays/dialog.js";
20
- import { DropdownMenu as re, DropdownMenuCheckboxItem as ie, DropdownMenuContent as ae, DropdownMenuGroup as oe, DropdownMenuItem as se, DropdownMenuLabel as ce, DropdownMenuPortal as le, DropdownMenuRadioGroup as ue, DropdownMenuRadioItem as de, DropdownMenuSeparator as fe, DropdownMenuShortcut as pe, DropdownMenuSub as me, DropdownMenuSubContent as he, DropdownMenuSubTrigger as ge, DropdownMenuTrigger as _e } from "./components/overlays/dropdown-menu.js";
21
- import { Popover as ve, PopoverClose as ye, PopoverContent as be, PopoverDescription as xe, PopoverTitle as Se, PopoverTrigger as Ce, usePopoverClose as we } from "./components/overlays/popover.js";
22
- import { Code as Te } from "./components/typography/code.js";
23
- import { Heading as Ee, headingVariants as De } from "./components/typography/heading.js";
24
- import { List as Oe, ListItem as ke, listVariants as Ae } from "./components/typography/list.js";
25
- import { ScrollArea as je, ScrollBar as Me } from "./components/containment/scroll-area.js";
26
- import { Table as Ne, TableBody as Pe, TableCell as Fe, TableHead as Ie, TableHeader as Le, TableRow as Re } from "./components/containment/table.js";
27
- import { Tabs as ze, TabsContent as Be, TabsList as Ve, TabsTrigger as He } from "./components/containment/tabs.js";
28
- import Ue from "./components/effects/react-bits/fade-content.js";
29
- import { Skeleton as We } from "./components/feedback/skeleton.js";
30
- import { StatusDot as Ge, statusDotVariants as Ke } from "./components/feedback/status-dot.js";
31
- import { Select as qe, SelectContent as Je, SelectGroup as Ye, SelectItem as Xe, SelectLabel as Ze, SelectScrollDownButton as Qe, SelectScrollUpButton as $e, SelectSeparator as et, SelectTrigger as tt, SelectValue as nt } from "./components/forms/select.js";
32
- import { Slider as rt } from "./components/forms/slider.js";
33
- import { Switch as it } from "./components/forms/switch.js";
34
- import { Textarea as at } from "./components/forms/textarea.js";
35
- import { Text as ot, textVariants as st } from "./components/typography/text.js";
36
- import { TimePicker as ct } from "./components/forms/time-picker.js";
37
- import { SegmentedControl as lt, SegmentedControlItem as ut, ToggleCard as dt, ToggleCardGroup as ft, segmentedControlItemVariants as pt, segmentedControlVariants as mt, toggleCardGroupVariants as ht, toggleCardVariants as gt } from "./components/forms/toggle-card.js";
38
- import { Stack as _t, stackVariants as vt } from "./components/layout/stack.js";
39
- import { Sheet as yt, SheetClose as bt, SheetContent as xt, SheetDescription as St, SheetFooter as Ct, SheetHeader as wt, SheetOverlay as Tt, SheetPortal as Et, SheetTitle as Dt, SheetTrigger as Ot } from "./components/overlays/sheet.js";
40
- import { Tooltip as kt, TooltipContent as At, TooltipProvider as jt, TooltipTrigger as Mt } from "./components/overlays/tooltip.js";
41
- import { TextLink as Nt } from "./components/typography/text-link.js";
42
- import { BoardIcon as Pt } from "./components/chrome/board-icon.js";
43
- import { BoardSelector as Ft } from "./components/chrome/board-selector.js";
44
- import { FIESTA_ICON_DATA_URI as It, FIESTA_ICON_PALETTE as Lt, FIESTA_ICON_SVG as Rt, FiestaIcon as zt } from "./components/chrome/fiesta-icon.js";
45
- import { FiestaLogo as Bt } from "./components/chrome/fiesta-logo.js";
46
- import { LanguageSelector as Vt } from "./components/chrome/language-selector.js";
47
- import { MainContent as Ht } from "./components/chrome/main-content.js";
48
- import { PAGE_HUES as Ut, PageHeader as Wt, PageIconGradientDefs as Gt, pageHue as Kt } from "./components/chrome/page-header.js";
49
- import { PageLayout as qt } from "./components/chrome/page-layout.js";
50
- import { PageToolbar as Jt } from "./components/chrome/page-toolbar.js";
51
- import { Sidebar as Yt } from "./components/chrome/sidebar.js";
52
- import { SkipToContent as Xt } from "./components/chrome/skip-to-content.js";
53
- import { ThemeToggle as Zt } from "./components/chrome/theme-toggle.js";
54
- import { WizardProgress as Qt } from "./components/wizard/wizard-progress.js";
55
- import { ALL_COLOR_CODES as $t, AVAILABLE_COLORS as en, BOARD_COLORS as tn, COLOR_CODE_MAP as nn, COLOR_DISPLAY as rn, FIESTABOARD_COLORS as an, getBoardColor as on, isValidBoardColor as sn, resolveColorCode as cn } from "./lib/board-colors.js";
56
- import { BOARD_CHARS as ln, EXTRA_CHARS as un, getCharFromToken as dn, getCharIndex as fn, isColorTile as pn, messageToGrid as mn, messageToText as hn, parseLine as gn, tokensEqual as _n } from "./lib/board-characters.js";
57
- import { BoardTeaser as vn } from "./components/board/board-teaser.js";
58
- import { BoardBackdrop as yn } from "./components/board/board-backdrop.js";
59
- import { WizardShell as bn } from "./components/wizard/wizard-shell.js";
60
- import { DEVICE_DIMENSIONS as xn, MAX_NOTES_PER_AXIS as Sn, NOTE_COLS as Cn, NOTE_ROWS as wn, isNoteArray as Tn, noteArrayDimensions as En, resolveDimensions as Dn } from "./lib/board-dimensions.js";
61
- import { BoardDisplay as On, FLAP_SPEED_PRESETS as kn, deriveFlapTiming as An, resolveFlapSpeed as jn } from "./components/board/board-display.js";
62
- import { ScaledBoardDisplay as Mn } from "./components/board/scaled-board-display.js";
63
- import { StaticBoardDisplay as Nn } from "./components/board/static-board-display.js";
64
- import { DEFAULT_SHAPE_LABELS as Pn, previewLabel as Fn, previewLabels as In, previewMessage as Ln } from "./lib/board-previews.js";
65
- import { StatStrip as Rn, StatStripItem as zn } from "./components/data/stat-strip.js";
66
- import { BoardShowcase as Bn, DEFAULT_SHOWCASE_LABELS as Vn } from "./components/plugin/board-showcase.js";
67
- import { PLUGIN_CATEGORIES as Hn, PluginCategoryBadge as Un } from "./components/plugin/plugin-category-badge.js";
68
- import { ScaledBoardTeaser as Wn } from "./components/plugin/scaled-board-teaser.js";
69
- import { PluginCard as Gn } from "./components/plugin/plugin-card.js";
70
- import { BOARD_CODE_TO_COLOR as Kn, BOARD_COLOR_CODES as qn, CURSOR_ANCHOR as Jn, DEFAULT_BOARD_LINES as Yn, DEFAULT_BOARD_WIDTH as Xn, FILL_SPACE_REPEAT_VAR as Zn, FILL_SPACE_VAR as Qn } from "./components/editor/constants.js";
71
- import { NodeViewInjectionProvider as $n, useNodeViewInjection as er } from "./components/editor/node-views/node-view-context.js";
72
- import { ColorTileNodeView as tr, DEFAULT_COLOR_TILE_NODE_VIEW_LABELS as nr } from "./components/editor/node-views/color-tile-node-view.js";
73
- import { ColorTileNode as rr } from "./components/editor/extensions/color-tile-node.js";
74
- import { DEFAULT_FILL_SPACE_NODE_VIEW_LABELS as ir, FillSpaceNodeView as ar } from "./components/editor/node-views/fill-space-node-view.js";
75
- import { FillSpaceNode as or } from "./components/editor/extensions/fill-space-node.js";
76
- import { DEFAULT_FORMULA_NODE_VIEW_LABELS as sr, FormulaNodeView as cr } from "./components/editor/node-views/formula-node-view.js";
77
- import { FormulaNode as lr } from "./components/editor/extensions/formula-node.js";
78
- import { LineNavigation as ur } from "./components/editor/extensions/line-navigation.js";
79
- import { SingleParagraphDoc as dr } from "./components/editor/extensions/single-paragraph-doc.js";
80
- import { TrailingNewline as fr } from "./components/editor/extensions/trailing-newline.js";
81
- import { DEFAULT_VARIABLE_NODE_VIEW_LABELS as pr, VariableNodeView as mr } from "./components/editor/node-views/variable-node-view.js";
82
- import { VariableNode as hr } from "./components/editor/extensions/variable-node.js";
83
- import { DEFAULT_WRAPPED_TEXT_VIEW_LABELS as gr, WrappedTextView as _r } from "./components/editor/node-views/wrapped-text-view.js";
84
- import { WrappedTextNode as vr } from "./components/editor/extensions/wrapped-text-node.js";
85
- import { ColorPickerContent as yr, DEFAULT_COLOR_PICKER_LABELS as br } from "./components/editor/color-picker-content.js";
86
- import { DRAW_CHARS as xr, brushToCell as Sr, cellsToLine as Cr, isPositionalLine as wr, lineToCells as Tr, paintLine as Er, renderPositionalLine as Dr } from "./components/editor/utils/draw-mode.js";
87
- import { DEFAULT_DRAW_CHAR_PICKER_LABELS as Or, DrawCharPickerContent as kr } from "./components/editor/draw-char-picker-content.js";
88
- import { DEFAULT_FORMATTING_PICKER_LABELS as Ar, FormattingPickerContent as jr } from "./components/editor/formatting-picker-content.js";
89
- import { DEFAULT_TOOLBAR_DROPDOWN_LABELS as Mr, ToolbarDropdown as Nr } from "./components/editor/toolbar-dropdown.js";
90
- import { parseLineContent as Pr, parseTemplateSimple as Fr, serializeTemplateSimple as Ir } from "./components/editor/utils/serialization.js";
91
- import { insertTemplateContent as Lr } from "./components/editor/utils/insertion.js";
92
- import { DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS as Rr, TemplateEditorToolbar as zr } from "./components/editor/template-editor-toolbar.js";
93
- import { buildStrokeTransaction as Br, lineRanges as Vr } from "./components/editor/utils/stroke-transaction.js";
94
- import { DEFAULT_TEMPLATE_EDITOR_LABELS as Hr, TemplateEditor as Ur } from "./components/editor/template-editor.js";
95
- import { DEFAULT_FILTER_PICKER_LABELS as Wr, FilterPickerContent as Gr } from "./components/editor/filter-picker-content.js";
96
- import { DEFAULT_VARIABLE_PICKER_LABELS as Kr, VariablePickerContent as qr, createLucideIconResolver as Jr, getPluginsWithNestedArrays as Yr } from "./components/editor/variable-picker-content.js";
97
- import { calculateLineLength as Xr, getOverflowAmount as Zr, willOverflow as Qr } from "./components/editor/utils/length-calculator.js";
98
- export { $t as ALL_COLOR_CODES, en as AVAILABLE_COLORS, t as Accordion, n as AccordionContent, r as AccordionItem, i as AccordionTrigger, g as Alert, _ as AlertDescription, I as AlertDialog, L as AlertDialogAction, R as AlertDialogCancel, z as AlertDialogContent, B as AlertDialogDescription, V as AlertDialogFooter, H as AlertDialogHeader, U as AlertDialogOverlay, W as AlertDialogPortal, G as AlertDialogTitle, K as AlertDialogTrigger, v as AlertTitle, ln as BOARD_CHARS, Kn as BOARD_CODE_TO_COLOR, tn as BOARD_COLORS, qn as BOARD_COLOR_CODES, b as Badge, yn as BoardBackdrop, On as BoardDisplay, Pt as BoardIcon, Ft as BoardSelector, Bn as BoardShowcase, vn as BoardTeaser, j as Box, T as Button, nn as COLOR_CODE_MAP, rn as COLOR_DISPLAY, Jn as CURSOR_ANCHOR, a as Card, o as CardAction, s as CardContent, c as CardDescription, l as CardFooter, u as CardHeader, d as CardTitle, D as Checkbox, Te as Code, f as Collapsible, p as CollapsibleContent, m as CollapsibleTrigger, yr as ColorPickerContent, rr as ColorTileNode, tr as ColorTileNodeView, Yn as DEFAULT_BOARD_LINES, Xn as DEFAULT_BOARD_WIDTH, br as DEFAULT_COLOR_PICKER_LABELS, nr as DEFAULT_COLOR_TILE_NODE_VIEW_LABELS, Or as DEFAULT_DRAW_CHAR_PICKER_LABELS, ir as DEFAULT_FILL_SPACE_NODE_VIEW_LABELS, Wr as DEFAULT_FILTER_PICKER_LABELS, Ar as DEFAULT_FORMATTING_PICKER_LABELS, sr as DEFAULT_FORMULA_NODE_VIEW_LABELS, Pn as DEFAULT_SHAPE_LABELS, Vn as DEFAULT_SHOWCASE_LABELS, Hr as DEFAULT_TEMPLATE_EDITOR_LABELS, Rr as DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS, Mr as DEFAULT_TOOLBAR_DROPDOWN_LABELS, pr as DEFAULT_VARIABLE_NODE_VIEW_LABELS, Kr as DEFAULT_VARIABLE_PICKER_LABELS, gr as DEFAULT_WRAPPED_TEXT_VIEW_LABELS, xn as DEVICE_DIMENSIONS, xr as DRAW_CHARS, q as Dialog, J as DialogClose, Y as DialogContent, X as DialogDescription, Z as DialogFooter, Q as DialogHeader, $ as DialogOverlay, ee as DialogPortal, te as DialogTitle, ne as DialogTrigger, kr as DrawCharPickerContent, re as DropdownMenu, ie as DropdownMenuCheckboxItem, ae as DropdownMenuContent, oe as DropdownMenuGroup, se as DropdownMenuItem, ce as DropdownMenuLabel, le as DropdownMenuPortal, ue as DropdownMenuRadioGroup, de as DropdownMenuRadioItem, fe as DropdownMenuSeparator, pe as DropdownMenuShortcut, me as DropdownMenuSub, he as DropdownMenuSubContent, ge as DropdownMenuSubTrigger, _e as DropdownMenuTrigger, un as EXTRA_CHARS, S as EmptyState, an as FIESTABOARD_COLORS, It as FIESTA_ICON_DATA_URI, Lt as FIESTA_ICON_PALETTE, Rt as FIESTA_ICON_SVG, Zn as FILL_SPACE_REPEAT_VAR, Qn as FILL_SPACE_VAR, kn as FLAP_SPEED_PRESETS, Ue as FadeContent, zt as FiestaIcon, Bt as FiestaLogo, or as FillSpaceNode, ar as FillSpaceNodeView, Gr as FilterPickerContent, M as Flex, jr as FormattingPickerContent, lr as FormulaNode, cr as FormulaNodeView, P as Grid, Ee as Heading, O as Input, h as JsonTree, k as Label, Vt as LanguageSelector, ur as LineNavigation, Oe as List, ke as ListItem, Sn as MAX_NOTES_PER_AXIS, Ht as MainContent, Cn as NOTE_COLS, wn as NOTE_ROWS, $n as NodeViewInjectionProvider, Ut as PAGE_HUES, Hn as PLUGIN_CATEGORIES, Wt as PageHeader, Gt as PageIconGradientDefs, qt as PageLayout, Jt as PageToolbar, Gn as PluginCard, Un as PluginCategoryBadge, ve as Popover, ye as PopoverClose, be as PopoverContent, xe as PopoverDescription, Se as PopoverTitle, Ce as PopoverTrigger, Mn as ScaledBoardDisplay, Wn as ScaledBoardTeaser, je as ScrollArea, Me as ScrollBar, A as SecretInput, lt as SegmentedControl, ut as SegmentedControlItem, qe as Select, Je as SelectContent, Ye as SelectGroup, Xe as SelectItem, Ze as SelectLabel, Qe as SelectScrollDownButton, $e as SelectScrollUpButton, et as SelectSeparator, tt as SelectTrigger, nt as SelectValue, yt as Sheet, bt as SheetClose, xt as SheetContent, St as SheetDescription, Ct as SheetFooter, wt as SheetHeader, Tt as SheetOverlay, Et as SheetPortal, Dt as SheetTitle, Ot as SheetTrigger, Yt as Sidebar, dr as SingleParagraphDoc, We as Skeleton, Xt as SkipToContent, rt as Slider, C as Spinner, _t as Stack, Rn as StatStrip, zn as StatStripItem, Nn as StaticBoardDisplay, Ge as StatusDot, it as Switch, Ne as Table, Pe as TableBody, Fe as TableCell, Ie as TableHead, Le as TableHeader, Re as TableRow, ze as Tabs, Be as TabsContent, Ve as TabsList, He as TabsTrigger, Ur as TemplateEditor, zr as TemplateEditorToolbar, ot as Text, Nt as TextLink, at as Textarea, Zt as ThemeToggle, ct as TimePicker, dt as ToggleCard, ft as ToggleCardGroup, Nr as ToolbarDropdown, kt as Tooltip, At as TooltipContent, jt as TooltipProvider, Mt as TooltipTrigger, fr as TrailingNewline, hr as VariableNode, mr as VariableNodeView, qr as VariablePickerContent, Qt as WizardProgress, bn as WizardShell, vr as WrappedTextNode, _r as WrappedTextView, y as alertVariants, x as badgeVariants, Sr as brushToCell, Br as buildStrokeTransaction, E as buttonVariants, Xr as calculateLineLength, Cr as cellsToLine, e as cn, Jr as createLucideIconResolver, An as deriveFlapTiming, N as flexVariants, on as getBoardColor, dn as getCharFromToken, fn as getCharIndex, Zr as getOverflowAmount, Yr as getPluginsWithNestedArrays, F as gridVariants, De as headingVariants, Lr as insertTemplateContent, pn as isColorTile, Tn as isNoteArray, wr as isPositionalLine, sn as isValidBoardColor, Vr as lineRanges, Tr as lineToCells, Ae as listVariants, mn as messageToGrid, hn as messageToText, En as noteArrayDimensions, Kt as pageHue, Er as paintLine, gn as parseLine, Pr as parseLineContent, Fr as parseTemplateSimple, Fn as previewLabel, In as previewLabels, Ln as previewMessage, Dr as renderPositionalLine, cn as resolveColorCode, Dn as resolveDimensions, jn as resolveFlapSpeed, pt as segmentedControlItemVariants, mt as segmentedControlVariants, Ir as serializeTemplateSimple, w as spinnerVariants, vt as stackVariants, Ke as statusDotVariants, st as textVariants, ht as toggleCardGroupVariants, gt as toggleCardVariants, _n as tokensEqual, er as useNodeViewInjection, we as usePopoverClose, Qr as willOverflow };
6
+ import { MediaFrame as g, MediaFrameBar as _, MediaFrameMedia as v } from "./components/containment/media-frame.js";
7
+ import { Alert as y, AlertDescription as b, AlertTitle as x, alertVariants as S } from "./components/feedback/alert.js";
8
+ import { Badge as C, badgeVariants as w } from "./components/feedback/badge.js";
9
+ import { Chip as T, chipVariants as E } from "./components/feedback/chip.js";
10
+ import { EmptyState as D } from "./components/feedback/empty-state.js";
11
+ import { Spinner as O, spinnerVariants as k } from "./components/feedback/spinner.js";
12
+ import { Button as A, buttonVariants as j } from "./components/forms/button.js";
13
+ import { Checkbox as M } from "./components/forms/checkbox.js";
14
+ import { Input as N } from "./components/forms/input.js";
15
+ import { Label as P } from "./components/forms/label.js";
16
+ import { SecretInput as F } from "./components/forms/secret-input.js";
17
+ import { Box as I } from "./components/layout/box.js";
18
+ import { Flex as L, flexVariants as R } from "./components/layout/flex.js";
19
+ import { Grid as z, gridVariants as B } from "./components/layout/grid.js";
20
+ import { AlertDialog as V, AlertDialogAction as H, AlertDialogCancel as U, AlertDialogContent as W, AlertDialogDescription as G, AlertDialogFooter as K, AlertDialogHeader as q, AlertDialogOverlay as J, AlertDialogPortal as Y, AlertDialogTitle as X, AlertDialogTrigger as Z } from "./components/overlays/alert-dialog.js";
21
+ import { Dialog as Q, DialogClose as $, DialogContent as ee, DialogDescription as te, DialogFooter as ne, DialogHeader as re, DialogOverlay as ie, DialogPortal as ae, DialogTitle as oe, DialogTrigger as se } from "./components/overlays/dialog.js";
22
+ import { DropdownMenu as ce, DropdownMenuCheckboxItem as le, DropdownMenuContent as ue, DropdownMenuGroup as de, DropdownMenuItem as fe, DropdownMenuLabel as pe, DropdownMenuPortal as me, DropdownMenuRadioGroup as he, DropdownMenuRadioItem as ge, DropdownMenuSeparator as _e, DropdownMenuShortcut as ve, DropdownMenuSub as ye, DropdownMenuSubContent as be, DropdownMenuSubTrigger as xe, DropdownMenuTrigger as Se } from "./components/overlays/dropdown-menu.js";
23
+ import { Lightbox as Ce, LightboxClose as we, LightboxContent as Te, LightboxFooter as Ee, LightboxOverlay as De, LightboxPortal as Oe, LightboxTrigger as ke } from "./components/overlays/lightbox.js";
24
+ import { Popover as Ae, PopoverClose as je, PopoverContent as Me, PopoverDescription as Ne, PopoverTitle as Pe, PopoverTrigger as Fe, usePopoverClose as Ie } from "./components/overlays/popover.js";
25
+ import { Code as Le } from "./components/typography/code.js";
26
+ import { Heading as Re, headingVariants as ze } from "./components/typography/heading.js";
27
+ import { List as Be, ListItem as Ve, listVariants as He } from "./components/typography/list.js";
28
+ import { ScrollArea as Ue, ScrollBar as We } from "./components/containment/scroll-area.js";
29
+ import { Table as Ge, TableBody as Ke, TableCell as qe, TableHead as Je, TableHeader as Ye, TableRow as Xe } from "./components/containment/table.js";
30
+ import { Tabs as Ze, TabsContent as Qe, TabsList as $e, TabsTrigger as et } from "./components/containment/tabs.js";
31
+ import tt from "./components/effects/react-bits/fade-content.js";
32
+ import { Skeleton as nt } from "./components/feedback/skeleton.js";
33
+ import { StatusDot as rt, statusDotVariants as it } from "./components/feedback/status-dot.js";
34
+ import { Select as at, SelectContent as ot, SelectGroup as st, SelectItem as ct, SelectLabel as lt, SelectScrollDownButton as ut, SelectScrollUpButton as dt, SelectSeparator as ft, SelectTrigger as pt, SelectValue as mt } from "./components/forms/select.js";
35
+ import { Slider as ht } from "./components/forms/slider.js";
36
+ import { Switch as gt } from "./components/forms/switch.js";
37
+ import { Textarea as _t } from "./components/forms/textarea.js";
38
+ import { Text as vt, textVariants as yt } from "./components/typography/text.js";
39
+ import { TimePicker as bt } from "./components/forms/time-picker.js";
40
+ import { Toggle as xt, ToggleGroup as St, toggleGroupVariants as Ct, toggleVariants as wt } from "./components/forms/toggle.js";
41
+ import { SegmentedControl as Tt, SegmentedControlItem as Et, ToggleCard as Dt, ToggleCardGroup as Ot, segmentedControlItemVariants as kt, segmentedControlVariants as At, toggleCardGroupVariants as jt, toggleCardVariants as Mt } from "./components/forms/toggle-card.js";
42
+ import { Stack as Nt, stackVariants as Pt } from "./components/layout/stack.js";
43
+ import { Sheet as Ft, SheetClose as It, SheetContent as Lt, SheetDescription as Rt, SheetFooter as zt, SheetHeader as Bt, SheetOverlay as Vt, SheetPortal as Ht, SheetTitle as Ut, SheetTrigger as Wt } from "./components/overlays/sheet.js";
44
+ import { Tooltip as Gt, TooltipContent as Kt, TooltipProvider as qt, TooltipTrigger as Jt } from "./components/overlays/tooltip.js";
45
+ import { TextLink as Yt } from "./components/typography/text-link.js";
46
+ import { BoardIcon as Xt } from "./components/chrome/board-icon.js";
47
+ import { BoardSelector as Zt } from "./components/chrome/board-selector.js";
48
+ import { Breadcrumb as Qt, BreadcrumbEllipsis as $t, BreadcrumbItem as en, BreadcrumbLink as tn, BreadcrumbList as nn, BreadcrumbPage as rn, BreadcrumbSeparator as an } from "./components/chrome/breadcrumb.js";
49
+ import { FIESTA_ICON_DATA_URI as on, FIESTA_ICON_PALETTE as sn, FIESTA_ICON_SVG as cn, FiestaIcon as ln } from "./components/chrome/fiesta-icon.js";
50
+ import { FiestaLogo as un } from "./components/chrome/fiesta-logo.js";
51
+ import { LanguageSelector as dn } from "./components/chrome/language-selector.js";
52
+ import { MainContent as fn } from "./components/chrome/main-content.js";
53
+ import { PAGE_HUES as pn, PageHeader as mn, PageIconGradientDefs as hn, pageHue as gn } from "./components/chrome/page-header.js";
54
+ import { PageLayout as _n } from "./components/chrome/page-layout.js";
55
+ import { PageToolbar as vn } from "./components/chrome/page-toolbar.js";
56
+ import { Sidebar as yn } from "./components/chrome/sidebar.js";
57
+ import { SkipToContent as bn } from "./components/chrome/skip-to-content.js";
58
+ import { ThemeToggle as xn } from "./components/chrome/theme-toggle.js";
59
+ import { WizardProgress as Sn } from "./components/wizard/wizard-progress.js";
60
+ import { ALL_COLOR_CODES as Cn, AVAILABLE_COLORS as wn, BOARD_COLORS as Tn, COLOR_CODE_MAP as En, COLOR_DISPLAY as Dn, FIESTABOARD_COLORS as On, getBoardColor as kn, isValidBoardColor as An, resolveColorCode as jn } from "./lib/board-colors.js";
61
+ import { BOARD_CHARS as Mn, EXTRA_CHARS as Nn, getCharFromToken as Pn, getCharIndex as Fn, isColorTile as In, messageToGrid as Ln, messageToText as Rn, parseLine as zn, resolveCode62Glyph as Bn, tokensEqual as Vn } from "./lib/board-characters.js";
62
+ import { BoardTeaser as Hn } from "./components/board/board-teaser.js";
63
+ import { BoardBackdrop as Un } from "./components/board/board-backdrop.js";
64
+ import { WizardShell as Wn } from "./components/wizard/wizard-shell.js";
65
+ import { DEVICE_DIMENSIONS as Gn, MAX_NOTES_PER_AXIS as Kn, NOTE_COLS as qn, NOTE_ROWS as Jn, isNoteArray as Yn, noteArrayDimensions as Xn, resolveDimensions as Zn } from "./lib/board-dimensions.js";
66
+ import { BoardDisplay as Qn, FLAP_SPEED_PRESETS as $n, deriveFlapTiming as er, resolveFlapSpeed as tr } from "./components/board/board-display.js";
67
+ import { ScaledBoardDisplay as nr } from "./components/board/scaled-board-display.js";
68
+ import { StaticBoardDisplay as rr } from "./components/board/static-board-display.js";
69
+ import { DEFAULT_SHAPE_LABELS as ir, previewLabel as ar, previewLabels as or, previewMessage as sr } from "./lib/board-previews.js";
70
+ import { BarList as cr } from "./components/data/bar-list.js";
71
+ import { StatStrip as lr, StatStripItem as ur } from "./components/data/stat-strip.js";
72
+ import { BoardShowcase as dr, DEFAULT_SHOWCASE_LABELS as fr } from "./components/plugin/board-showcase.js";
73
+ import { PLUGIN_CATEGORIES as pr, PluginCategoryBadge as mr } from "./components/plugin/plugin-category-badge.js";
74
+ import { ScaledBoardTeaser as hr } from "./components/plugin/scaled-board-teaser.js";
75
+ import { PluginCard as gr } from "./components/plugin/plugin-card.js";
76
+ import { BOARD_CODE_TO_COLOR as _r, BOARD_COLOR_CODES as vr, CURSOR_ANCHOR as yr, DEFAULT_BOARD_LINES as br, DEFAULT_BOARD_WIDTH as xr, FILL_SPACE_REPEAT_VAR as Sr, FILL_SPACE_VAR as Cr } from "./components/editor/constants.js";
77
+ import { NodeViewInjectionProvider as wr, useNodeViewInjection as Tr } from "./components/editor/node-views/node-view-context.js";
78
+ import { ColorTileNodeView as Er, DEFAULT_COLOR_TILE_NODE_VIEW_LABELS as Dr } from "./components/editor/node-views/color-tile-node-view.js";
79
+ import { ColorTileNode as Or } from "./components/editor/extensions/color-tile-node.js";
80
+ import { DEFAULT_FILL_SPACE_NODE_VIEW_LABELS as kr, FillSpaceNodeView as Ar } from "./components/editor/node-views/fill-space-node-view.js";
81
+ import { FillSpaceNode as jr } from "./components/editor/extensions/fill-space-node.js";
82
+ import { DEFAULT_FORMULA_NODE_VIEW_LABELS as Mr, FormulaNodeView as Nr } from "./components/editor/node-views/formula-node-view.js";
83
+ import { FormulaNode as Pr } from "./components/editor/extensions/formula-node.js";
84
+ import { LineNavigation as Fr } from "./components/editor/extensions/line-navigation.js";
85
+ import { SingleParagraphDoc as Ir } from "./components/editor/extensions/single-paragraph-doc.js";
86
+ import { TrailingNewline as Lr } from "./components/editor/extensions/trailing-newline.js";
87
+ import { DEFAULT_VARIABLE_NODE_VIEW_LABELS as Rr, VariableNodeView as zr } from "./components/editor/node-views/variable-node-view.js";
88
+ import { VariableNode as Br } from "./components/editor/extensions/variable-node.js";
89
+ import { DEFAULT_WRAPPED_TEXT_VIEW_LABELS as Vr, WrappedTextView as Hr } from "./components/editor/node-views/wrapped-text-view.js";
90
+ import { WrappedTextNode as Ur } from "./components/editor/extensions/wrapped-text-node.js";
91
+ import { ColorPickerContent as Wr, DEFAULT_COLOR_PICKER_LABELS as Gr } from "./components/editor/color-picker-content.js";
92
+ import { DRAW_CHARS as Kr, brushToCell as qr, cellsToLine as Jr, isPositionalLine as Yr, lineToCells as Xr, paintLine as Zr, renderPositionalLine as Qr } from "./components/editor/utils/draw-mode.js";
93
+ import { DEFAULT_DRAW_CHAR_PICKER_LABELS as $r, DrawCharPickerContent as ei } from "./components/editor/draw-char-picker-content.js";
94
+ import { DEFAULT_FORMATTING_PICKER_LABELS as ti, FormattingPickerContent as ni } from "./components/editor/formatting-picker-content.js";
95
+ import { DEFAULT_TOOLBAR_DROPDOWN_LABELS as ri, ToolbarDropdown as ii } from "./components/editor/toolbar-dropdown.js";
96
+ import { parseLineContent as ai, parseTemplateSimple as oi, serializeTemplateSimple as si } from "./components/editor/utils/serialization.js";
97
+ import { insertTemplateContent as ci } from "./components/editor/utils/insertion.js";
98
+ import { DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS as li, TemplateEditorToolbar as ui } from "./components/editor/template-editor-toolbar.js";
99
+ import { buildStrokeTransaction as di, lineRanges as fi } from "./components/editor/utils/stroke-transaction.js";
100
+ import { DEFAULT_TEMPLATE_EDITOR_LABELS as pi, TemplateEditor as mi } from "./components/editor/template-editor.js";
101
+ import { DEFAULT_FILTER_PICKER_LABELS as hi, FilterPickerContent as gi } from "./components/editor/filter-picker-content.js";
102
+ import { DEFAULT_VARIABLE_PICKER_LABELS as _i, VariablePickerContent as vi, createLucideIconResolver as yi, getPluginsWithNestedArrays as bi } from "./components/editor/variable-picker-content.js";
103
+ import { calculateLineLength as xi, getOverflowAmount as Si, willOverflow as Ci } from "./components/editor/utils/length-calculator.js";
104
+ export { Cn as ALL_COLOR_CODES, wn as AVAILABLE_COLORS, t as Accordion, n as AccordionContent, r as AccordionItem, i as AccordionTrigger, y as Alert, b as AlertDescription, V as AlertDialog, H as AlertDialogAction, U as AlertDialogCancel, W as AlertDialogContent, G as AlertDialogDescription, K as AlertDialogFooter, q as AlertDialogHeader, J as AlertDialogOverlay, Y as AlertDialogPortal, X as AlertDialogTitle, Z as AlertDialogTrigger, x as AlertTitle, Mn as BOARD_CHARS, _r as BOARD_CODE_TO_COLOR, Tn as BOARD_COLORS, vr as BOARD_COLOR_CODES, C as Badge, cr as BarList, Un as BoardBackdrop, Qn as BoardDisplay, Xt as BoardIcon, Zt as BoardSelector, dr as BoardShowcase, Hn as BoardTeaser, I as Box, Qt as Breadcrumb, $t as BreadcrumbEllipsis, en as BreadcrumbItem, tn as BreadcrumbLink, nn as BreadcrumbList, rn as BreadcrumbPage, an as BreadcrumbSeparator, A as Button, En as COLOR_CODE_MAP, Dn as COLOR_DISPLAY, yr as CURSOR_ANCHOR, a as Card, o as CardAction, s as CardContent, c as CardDescription, l as CardFooter, u as CardHeader, d as CardTitle, M as Checkbox, T as Chip, Le as Code, f as Collapsible, p as CollapsibleContent, m as CollapsibleTrigger, Wr as ColorPickerContent, Or as ColorTileNode, Er as ColorTileNodeView, br as DEFAULT_BOARD_LINES, xr as DEFAULT_BOARD_WIDTH, Gr as DEFAULT_COLOR_PICKER_LABELS, Dr as DEFAULT_COLOR_TILE_NODE_VIEW_LABELS, $r as DEFAULT_DRAW_CHAR_PICKER_LABELS, kr as DEFAULT_FILL_SPACE_NODE_VIEW_LABELS, hi as DEFAULT_FILTER_PICKER_LABELS, ti as DEFAULT_FORMATTING_PICKER_LABELS, Mr as DEFAULT_FORMULA_NODE_VIEW_LABELS, ir as DEFAULT_SHAPE_LABELS, fr as DEFAULT_SHOWCASE_LABELS, pi as DEFAULT_TEMPLATE_EDITOR_LABELS, li as DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS, ri as DEFAULT_TOOLBAR_DROPDOWN_LABELS, Rr as DEFAULT_VARIABLE_NODE_VIEW_LABELS, _i as DEFAULT_VARIABLE_PICKER_LABELS, Vr as DEFAULT_WRAPPED_TEXT_VIEW_LABELS, Gn as DEVICE_DIMENSIONS, Kr as DRAW_CHARS, Q as Dialog, $ as DialogClose, ee as DialogContent, te as DialogDescription, ne as DialogFooter, re as DialogHeader, ie as DialogOverlay, ae as DialogPortal, oe as DialogTitle, se as DialogTrigger, ei as DrawCharPickerContent, ce as DropdownMenu, le as DropdownMenuCheckboxItem, ue as DropdownMenuContent, de as DropdownMenuGroup, fe as DropdownMenuItem, pe as DropdownMenuLabel, me as DropdownMenuPortal, he as DropdownMenuRadioGroup, ge as DropdownMenuRadioItem, _e as DropdownMenuSeparator, ve as DropdownMenuShortcut, ye as DropdownMenuSub, be as DropdownMenuSubContent, xe as DropdownMenuSubTrigger, Se as DropdownMenuTrigger, Nn as EXTRA_CHARS, D as EmptyState, On as FIESTABOARD_COLORS, on as FIESTA_ICON_DATA_URI, sn as FIESTA_ICON_PALETTE, cn as FIESTA_ICON_SVG, Sr as FILL_SPACE_REPEAT_VAR, Cr as FILL_SPACE_VAR, $n as FLAP_SPEED_PRESETS, tt as FadeContent, ln as FiestaIcon, un as FiestaLogo, jr as FillSpaceNode, Ar as FillSpaceNodeView, gi as FilterPickerContent, L as Flex, ni as FormattingPickerContent, Pr as FormulaNode, Nr as FormulaNodeView, z as Grid, Re as Heading, N as Input, h as JsonTree, P as Label, dn as LanguageSelector, Ce as Lightbox, we as LightboxClose, Te as LightboxContent, Ee as LightboxFooter, De as LightboxOverlay, Oe as LightboxPortal, ke as LightboxTrigger, Fr as LineNavigation, Be as List, Ve as ListItem, Kn as MAX_NOTES_PER_AXIS, fn as MainContent, g as MediaFrame, _ as MediaFrameBar, v as MediaFrameMedia, qn as NOTE_COLS, Jn as NOTE_ROWS, wr as NodeViewInjectionProvider, pn as PAGE_HUES, pr as PLUGIN_CATEGORIES, mn as PageHeader, hn as PageIconGradientDefs, _n as PageLayout, vn as PageToolbar, gr as PluginCard, mr as PluginCategoryBadge, Ae as Popover, je as PopoverClose, Me as PopoverContent, Ne as PopoverDescription, Pe as PopoverTitle, Fe as PopoverTrigger, nr as ScaledBoardDisplay, hr as ScaledBoardTeaser, Ue as ScrollArea, We as ScrollBar, F as SecretInput, Tt as SegmentedControl, Et as SegmentedControlItem, at as Select, ot as SelectContent, st as SelectGroup, ct as SelectItem, lt as SelectLabel, ut as SelectScrollDownButton, dt as SelectScrollUpButton, ft as SelectSeparator, pt as SelectTrigger, mt as SelectValue, Ft as Sheet, It as SheetClose, Lt as SheetContent, Rt as SheetDescription, zt as SheetFooter, Bt as SheetHeader, Vt as SheetOverlay, Ht as SheetPortal, Ut as SheetTitle, Wt as SheetTrigger, yn as Sidebar, Ir as SingleParagraphDoc, nt as Skeleton, bn as SkipToContent, ht as Slider, O as Spinner, Nt as Stack, lr as StatStrip, ur as StatStripItem, rr as StaticBoardDisplay, rt as StatusDot, gt as Switch, Ge as Table, Ke as TableBody, qe as TableCell, Je as TableHead, Ye as TableHeader, Xe as TableRow, Ze as Tabs, Qe as TabsContent, $e as TabsList, et as TabsTrigger, mi as TemplateEditor, ui as TemplateEditorToolbar, vt as Text, Yt as TextLink, _t as Textarea, xn as ThemeToggle, bt as TimePicker, xt as Toggle, Dt as ToggleCard, Ot as ToggleCardGroup, St as ToggleGroup, ii as ToolbarDropdown, Gt as Tooltip, Kt as TooltipContent, qt as TooltipProvider, Jt as TooltipTrigger, Lr as TrailingNewline, Br as VariableNode, zr as VariableNodeView, vi as VariablePickerContent, Sn as WizardProgress, Wn as WizardShell, Ur as WrappedTextNode, Hr as WrappedTextView, S as alertVariants, w as badgeVariants, qr as brushToCell, di as buildStrokeTransaction, j as buttonVariants, xi as calculateLineLength, Jr as cellsToLine, E as chipVariants, e as cn, yi as createLucideIconResolver, er as deriveFlapTiming, R as flexVariants, kn as getBoardColor, Pn as getCharFromToken, Fn as getCharIndex, Si as getOverflowAmount, bi as getPluginsWithNestedArrays, B as gridVariants, ze as headingVariants, ci as insertTemplateContent, In as isColorTile, Yn as isNoteArray, Yr as isPositionalLine, An as isValidBoardColor, fi as lineRanges, Xr as lineToCells, He as listVariants, Ln as messageToGrid, Rn as messageToText, Xn as noteArrayDimensions, gn as pageHue, Zr as paintLine, zn as parseLine, ai as parseLineContent, oi as parseTemplateSimple, ar as previewLabel, or as previewLabels, sr as previewMessage, Qr as renderPositionalLine, Bn as resolveCode62Glyph, jn as resolveColorCode, Zn as resolveDimensions, tr as resolveFlapSpeed, kt as segmentedControlItemVariants, At as segmentedControlVariants, si as serializeTemplateSimple, k as spinnerVariants, Pt as stackVariants, it as statusDotVariants, yt as textVariants, jt as toggleCardGroupVariants, Mt as toggleCardVariants, Ct as toggleGroupVariants, wt as toggleVariants, Vn as tokensEqual, Tr as useNodeViewInjection, Ie as usePopoverClose, Ci as willOverflow };
@@ -47,12 +47,37 @@ export declare function getCharFromToken(token: BoardToken): string;
47
47
  * single brackets. End tags (`{/red}`, `{/}`) render nothing.
48
48
  */
49
49
  export declare function parseLine(line: string, maxTokens?: number): BoardToken[];
50
+ /**
51
+ * Which glyph a board's code-62 flap physically carries.
52
+ *
53
+ * Code 62 is one character code with two possible flaps. Vestaboard shipped
54
+ * every Flagship with a degree flap until 2026, when they replaced it with a
55
+ * heart on newly-manufactured units ("Every new Vestaboard purchased will ship
56
+ * with the heart in place of the degree symbol"). Note has always carried the
57
+ * heart. So `deviceType` alone no longer says what a board draws, and nothing
58
+ * queryable distinguishes a degree-era Flagship from a heart-era one — only the
59
+ * owner knows. See FiestaBoard#1657.
60
+ *
61
+ * This is display-only. Both glyphs encode to code 62 on the wire; nothing here
62
+ * changes what is sent to a board.
63
+ */
64
+ export type Code62Glyph = "degree" | "heart";
65
+ /**
66
+ * Decide which glyph a board draws for code 62.
67
+ *
68
+ * Note and note-array hardware only ever shipped the heart flap, so their glyph
69
+ * is a property of the device and `code62Glyph` is ignored for them. Flagship is
70
+ * the ambiguous one, and the caller has to say: unset means `"degree"`, the
71
+ * glyph every Flagship carried before the hardware change, so a caller that has
72
+ * not been taught about the new flap keeps rendering exactly as it did.
73
+ */
74
+ export declare function resolveCode62Glyph(deviceType: string, code62Glyph?: Code62Glyph): Code62Glyph;
50
75
  /**
51
76
  * Convert a message string to a rows×cols grid of tokens.
52
- * Lines are split on `\n`, truncated/padded to the grid, and on the Note
53
- * device the degree symbol (code 62) displays as a heart.
77
+ * Lines are split on `\n`, truncated/padded to the grid, and code 62 draws as
78
+ * the glyph {@link resolveCode62Glyph} picks for this board.
54
79
  */
55
- export declare function messageToGrid(message: string, rows: number, cols: number, deviceType?: string): BoardToken[][];
80
+ export declare function messageToGrid(message: string, rows: number, cols: number, deviceType?: string, code62Glyph?: Code62Glyph): BoardToken[][];
56
81
  /**
57
82
  * The plain text a board draws, for accessible names (issue #205).
58
83
  *
@@ -69,11 +94,12 @@ export declare function messageToGrid(message: string, rows: number, cols: numbe
69
94
  * (they occupy a cell but say nothing), lines join with a space, and runs of
70
95
  * whitespace collapse so a half-empty board does not announce a long silence.
71
96
  *
72
- * `deviceType` is taken for the same reason {@link messageToGrid} takes it: on
73
- * Note, `°` draws as a heart, and a name that said "degree" would describe
74
- * something the board is not showing.
97
+ * `deviceType` and `code62Glyph` are taken for the same reason
98
+ * {@link messageToGrid} takes them: they decide whether `°` draws as a heart,
99
+ * and a name that said "degree" would describe something the board is not
100
+ * showing.
75
101
  *
76
102
  * Returns `""` for a message that draws no text at all — a color-only board —
77
103
  * so callers can fall back to a generic name instead of a dangling prefix.
78
104
  */
79
- export declare function messageToText(message: string, deviceType?: string): string;
105
+ export declare function messageToText(message: string, deviceType?: string, code62Glyph?: Code62Glyph): string;
@@ -131,28 +131,31 @@ function u(t, n = Infinity) {
131
131
  return r;
132
132
  }
133
133
  function d(e, t) {
134
- return t && e.type === "char" && e.value === "°" ? {
134
+ return e === "note" || e === "note_array" ? "heart" : t ?? "degree";
135
+ }
136
+ function f(e, t) {
137
+ return t === "heart" && e.type === "char" && e.value === "°" ? {
135
138
  type: "char",
136
139
  value: "♥"
137
140
  } : e;
138
141
  }
139
- function f(e, t, n, i = "flagship") {
140
- let a = e.split("\n"), o = [], s = i === "note";
142
+ function p(e, t, n, i = "flagship", a) {
143
+ let o = e.split("\n"), s = [], c = d(i, a);
141
144
  for (let e = 0; e < t; e++) {
142
- let t = u(a[e] || "", n), i = [];
143
- for (let e = 0; e < n; e++) e < t.length ? i.push(d(t[e], s)) : i.push(r);
144
- o.push(i);
145
+ let t = u(o[e] || "", n), i = [];
146
+ for (let e = 0; e < n; e++) e < t.length ? i.push(f(t[e], c)) : i.push(r);
147
+ s.push(i);
145
148
  }
146
- return o;
149
+ return s;
147
150
  }
148
- function p(e, t = "flagship") {
149
- let n = t === "note";
151
+ function m(e, t = "flagship", n) {
152
+ let r = d(t, n);
150
153
  return e.split("\n").map((e) => u(e).map((e) => {
151
- let t = d(e, n);
154
+ let t = f(e, r);
152
155
  return t.type === "char" ? t.value : " ";
153
156
  }).join("")).join(" ").replace(/\s+/g, " ").trim();
154
157
  }
155
158
  //#endregion
156
- export { t as BOARD_CHARS, n as EXTRA_CHARS, l as getCharFromToken, c as getCharIndex, o as isColorTile, f as messageToGrid, p as messageToText, u as parseLine, i as tokensEqual };
159
+ export { t as BOARD_CHARS, n as EXTRA_CHARS, l as getCharFromToken, c as getCharIndex, o as isColorTile, p as messageToGrid, m as messageToText, u as parseLine, d as resolveCode62Glyph, i as tokensEqual };
157
160
 
158
161
  //# sourceMappingURL=board-characters.js.map