@stll/ui 0.61.0 → 0.64.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 (38) hide show
  1. package/dist/calendar/day-calendar.logic.js +2 -2
  2. package/dist/components/accordion.js +1 -1
  3. package/dist/components/bidi-text.d.ts +7 -0
  4. package/dist/components/bidi-text.js +22 -9
  5. package/dist/components/button.d.ts +2 -1
  6. package/dist/components/button.js +57 -3
  7. package/dist/components/button.native-classes.js +5 -0
  8. package/dist/components/button.shared.d.ts +1 -1
  9. package/dist/components/button.shared.js +1 -0
  10. package/dist/components/checkbox.js +2 -0
  11. package/dist/components/court-filter.d.ts +42 -0
  12. package/dist/components/court-filter.js +210 -0
  13. package/dist/components/identity-text.js +4 -2
  14. package/dist/components/landing.js +1 -1
  15. package/dist/components/middle-truncate.d.ts +19 -0
  16. package/dist/components/middle-truncate.js +112 -0
  17. package/dist/components/middle-truncate.logic.d.ts +11 -0
  18. package/dist/components/middle-truncate.logic.js +63 -0
  19. package/dist/components/separator.d.ts +26 -1
  20. package/dist/components/separator.js +52 -1
  21. package/dist/components/sidebar.d.ts +8 -1
  22. package/dist/components/sidebar.js +21 -1
  23. package/dist/components/tabs.js +12 -1
  24. package/dist/components/text.js +1 -1
  25. package/dist/components/text.native.js +3 -11
  26. package/dist/components/text.shared.d.ts +0 -29
  27. package/dist/components/text.shared.js +3 -33
  28. package/dist/icons.d.ts +2 -2
  29. package/dist/icons.js +1 -1
  30. package/dist/index.d.ts +4 -4
  31. package/dist/index.js +4 -4
  32. package/dist/inspector/chrome.js +2 -1
  33. package/dist/inspector/facet-bar.js +14 -8
  34. package/dist/lib/inline-reorder.js +3 -3
  35. package/dist/lib/tab-order.d.ts +19 -1
  36. package/dist/lib/tab-order.js +12 -10
  37. package/dist/review/review-comment-card.js +1 -1
  38. package/package.json +14 -1
@@ -0,0 +1,112 @@
1
+ "use client";
2
+ import { cn } from "../lib/utils.js";
3
+ import { graphemesOf, splitForMiddleTruncate } from "./middle-truncate.logic.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/middle-truncate.tsx
6
+ /**
7
+ * One line of text that, when it does not fit, gives up its middle and keeps
8
+ * its end: `Smlouva o dílo – revize…klienta.docx`. For names whose end tells
9
+ * them apart (file names, versions, case numbers), where a trailing ellipsis
10
+ * would cut exactly that part.
11
+ *
12
+ * The head clips after its last whole character and the tail slides over the
13
+ * slack, so the ellipsis sits flush against the text instead of after a gap
14
+ * or half a glyph. The ellipsis is generated content with empty alternative
15
+ * text: the element's text and accessible name stay the full value.
16
+ */
17
+ const MiddleTruncate = ({ value, className }) => {
18
+ const split = splitForMiddleTruncate(value);
19
+ if (split === null) return /* @__PURE__ */ jsx("span", {
20
+ className: cn("min-w-0 overflow-hidden text-ellipsis whitespace-pre [unicode-bidi:isolate]", className),
21
+ dir: "auto",
22
+ title: value,
23
+ children: value
24
+ });
25
+ return /* @__PURE__ */ jsxs("span", {
26
+ className: cn("inline-flex max-w-full min-w-0 overflow-hidden whitespace-pre [unicode-bidi:isolate]", className),
27
+ "data-slot": "middle-truncate",
28
+ dir: "auto",
29
+ title: value,
30
+ children: [/* @__PURE__ */ jsx("span", {
31
+ className: "peer min-w-0 overflow-hidden",
32
+ ref: fitHeadWhileMounted,
33
+ children: split.head
34
+ }, value), /* @__PURE__ */ jsx("span", {
35
+ className: "shrink-0 peer-data-overflow:before:content-['…'_/_'']",
36
+ children: split.tail
37
+ })]
38
+ });
39
+ };
40
+ function fitHeadWhileMounted(head) {
41
+ fitHead(head);
42
+ const root = head.parentElement;
43
+ if (!root) return;
44
+ let frame;
45
+ const scheduleFit = () => {
46
+ if (frame !== void 0) return;
47
+ frame = requestAnimationFrame(() => {
48
+ frame = void 0;
49
+ fitHead(head);
50
+ });
51
+ };
52
+ const observer = new ResizeObserver(scheduleFit);
53
+ observer.observe(root);
54
+ document.fonts.addEventListener("loadingdone", scheduleFit);
55
+ return () => {
56
+ observer.disconnect();
57
+ document.fonts.removeEventListener("loadingdone", scheduleFit);
58
+ if (frame !== void 0) cancelAnimationFrame(frame);
59
+ };
60
+ }
61
+ /**
62
+ * Cuts an overflowing head after its last whole grapheme: clips the partial
63
+ * one and slides the tail over the slack. Measured from the inline-start edge,
64
+ * so the cut is right in either direction. Clipping and translating do not
65
+ * change layout, so the observed size stays the width the head is given.
66
+ */
67
+ function fitHead(head) {
68
+ const tail = head.nextElementSibling;
69
+ const text = head.firstChild;
70
+ if (!(tail instanceof HTMLElement) || !(text instanceof Text)) return;
71
+ delete head.dataset["overflow"];
72
+ head.style.clipPath = "";
73
+ tail.style.translate = "";
74
+ if (head.scrollWidth <= head.clientWidth) return;
75
+ head.dataset["overflow"] = "";
76
+ const rtl = getComputedStyle(head).direction === "rtl";
77
+ const root = head.parentElement;
78
+ const tailOverflow = root === null ? 0 : tail.getBoundingClientRect().width - root.getBoundingClientRect().width;
79
+ if (tailOverflow > 0) {
80
+ tail.style.translate = `${String(rtl ? tailOverflow : -tailOverflow)}px 0`;
81
+ return;
82
+ }
83
+ const box = head.getBoundingClientRect();
84
+ const availableWidth = box.width;
85
+ const range = document.createRange();
86
+ const widthTo = (end) => {
87
+ if (end === 0) return 0;
88
+ range.setStart(text, 0);
89
+ range.setEnd(text, end);
90
+ const rect = range.getBoundingClientRect();
91
+ return rtl ? box.right - rect.left : rect.right - box.left;
92
+ };
93
+ const ends = [];
94
+ let offset = 0;
95
+ for (const grapheme of graphemesOf(text.data)) {
96
+ offset += grapheme.length;
97
+ ends.push(offset);
98
+ }
99
+ let fits = 0;
100
+ let over = ends.length;
101
+ while (over - fits > 1) {
102
+ const middle = Math.floor((fits + over) / 2);
103
+ if (widthTo(ends[middle - 1] ?? 0) <= availableWidth) fits = middle;
104
+ else over = middle;
105
+ }
106
+ const slack = availableWidth - widthTo(ends[fits - 1] ?? 0);
107
+ if (slack <= 0) return;
108
+ head.style.clipPath = rtl ? `inset(-0.25em 0 -0.25em ${String(slack)}px)` : `inset(-0.25em ${String(slack)}px -0.25em 0)`;
109
+ tail.style.translate = `${String(rtl ? slack : -slack)}px 0`;
110
+ }
111
+ //#endregion
112
+ export { MiddleTruncate };
@@ -0,0 +1,11 @@
1
+ //#region src/components/middle-truncate.logic.d.ts
2
+ /** The value's user-perceived characters, so a cut never splits one. */
3
+ export declare const graphemesOf: (value: string) => string[];
4
+ type MiddleTruncateSplit = {
5
+ head: string;
6
+ tail: string;
7
+ };
8
+ /** The head and tail of `value`, or null when it should stay in one piece. */
9
+ export declare const splitForMiddleTruncate: (value: string) => MiddleTruncateSplit | null;
10
+ //#endregion
11
+ export {};
@@ -0,0 +1,63 @@
1
+ //#region src/components/middle-truncate.logic.ts
2
+ /** The tail aimed for, in graphemes; a word start nearby moves it. */
3
+ const TAIL = 10;
4
+ /** The shortest tail a word start may shrink it to. */
5
+ const MIN_TAIL = 4;
6
+ /** The longest tail a word start may stretch it to. */
7
+ const MAX_TAIL = 16;
8
+ /** Below this many head graphemes a split saves too little to be worth it. */
9
+ const MIN_HEAD = 4;
10
+ const WORD_BREAKS = /* @__PURE__ */ new Set([
11
+ "-",
12
+ "_",
13
+ "/",
14
+ "\\",
15
+ " "
16
+ ]);
17
+ let segmenter;
18
+ /** The value's user-perceived characters, so a cut never splits one. */
19
+ const graphemesOf = (value) => {
20
+ segmenter ??= new Intl.Segmenter(void 0, { granularity: "grapheme" });
21
+ return Array.from(segmenter.segment(value), ({ segment }) => segment);
22
+ };
23
+ const RTL_LETTER = /[\p{Script=Arabic}\p{Script=Hebrew}\p{Script=Syriac}\p{Script=Thaana}\p{Script=Nko}\p{Script=Adlam}]/u;
24
+ const strongDirections = (text) => Array.from(text.matchAll(/\p{L}/gu), (letter) => RTL_LETTER.test(letter[0]) ? "rtl" : "ltr");
25
+ /**
26
+ * The head and tail render as two boxes, each ordered on its own. A run in the
27
+ * other direction than the name's stays readable only while one box holds it:
28
+ * cut through it and its words swap sides even when nothing is truncated.
29
+ */
30
+ const cutsThroughForeignRun = (head, tail) => {
31
+ const before = strongDirections(head);
32
+ const base = before.at(0);
33
+ const last = before.at(-1);
34
+ return last !== base && strongDirections(tail).at(0) === last;
35
+ };
36
+ /** The head and tail of `value`, or null when it should stay in one piece. */
37
+ const splitForMiddleTruncate = (value) => {
38
+ const characters = graphemesOf(value);
39
+ if (characters.length < 14) return null;
40
+ const cut = tailStart(characters);
41
+ const head = characters.slice(0, cut).join("");
42
+ const tail = characters.slice(cut).join("");
43
+ return cutsThroughForeignRun(head, tail) ? null : {
44
+ head,
45
+ tail
46
+ };
47
+ };
48
+ /**
49
+ * The index the tail starts at: on a word when one starts within reach. A
50
+ * shorter tail is preferred so the head keeps more of the name; a longer one
51
+ * is the fallback.
52
+ */
53
+ function tailStart(characters) {
54
+ const aimed = characters.length - TAIL;
55
+ const startsWord = (index) => WORD_BREAKS.has(characters[index - 1] ?? "");
56
+ if (startsWord(aimed)) return aimed;
57
+ for (let index = aimed + 1; index <= characters.length - MIN_TAIL; index++) if (startsWord(index)) return index;
58
+ const longest = Math.max(MIN_HEAD, characters.length - MAX_TAIL);
59
+ for (let index = aimed - 1; index >= longest; index--) if (startsWord(index)) return index;
60
+ return aimed;
61
+ }
62
+ //#endregion
63
+ export { graphemesOf, splitForMiddleTruncate };
@@ -12,5 +12,30 @@ type TextSeparatorProps = PropsWithChildren<{
12
12
  * "or build a new one" divider that frames an either/or choice. The label
13
13
  * names the alternative; flanking hairlines split the two options. */
14
14
  declare const TextSeparator: ({ children, className, labelClassName }: TextSeparatorProps) => import("react").JSX.Element;
15
+ type ResizeSeparatorProps = {
16
+ className?: string;
17
+ /** Names what the separator resizes, e.g. "Resize filters". */
18
+ label: string;
19
+ /** The current width (px) of the column the separator resizes. */
20
+ value: number;
21
+ min: number;
22
+ max: number;
23
+ /** How far (px) one arrow key moves the separator. */
24
+ keyboardStep: number;
25
+ /**
26
+ * Receives a viewport x: the pointer's while dragging, and for an arrow key
27
+ * the separator's own centre moved one step in the pressed physical
28
+ * direction, so a drag and a key press feed the caller the same clamped
29
+ * resize path.
30
+ */
31
+ onResize: (clientX: number) => void;
32
+ };
33
+ /**
34
+ * The drag strip between two columns, operable without a pointer: a
35
+ * focusable vertical `separator` carrying the width it controls. A 4px grab
36
+ * zone straddles the adjacent column border through negative margins, so it
37
+ * adds no visible width of its own.
38
+ */
39
+ declare const ResizeSeparator: ({ className, label, value, min, max, keyboardStep, onResize }: ResizeSeparatorProps) => import("react").JSX.Element;
15
40
  //#endregion
16
- export { Separator, TextSeparator };
41
+ export { ResizeSeparator, Separator, TextSeparator };
@@ -1,5 +1,7 @@
1
+ "use client";
1
2
  import { cn } from "../lib/utils.js";
2
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { useRef } from "react";
3
5
  import { Separator as Separator$1 } from "@base-ui/react/separator";
4
6
  //#region src/components/separator.tsx
5
7
  const Separator = ({ className, orientation = "horizontal", ...props }) => /* @__PURE__ */ jsx(Separator$1, {
@@ -22,5 +24,54 @@ const TextSeparator = ({ children, className, labelClassName }) => /* @__PURE__
22
24
  /* @__PURE__ */ jsx("span", { className: "bg-border h-px flex-1" })
23
25
  ]
24
26
  });
27
+ /**
28
+ * The drag strip between two columns, operable without a pointer: a
29
+ * focusable vertical `separator` carrying the width it controls. A 4px grab
30
+ * zone straddles the adjacent column border through negative margins, so it
31
+ * adds no visible width of its own.
32
+ */
33
+ const ResizeSeparator = ({ className, label, value, min, max, keyboardStep, onResize }) => {
34
+ const isDraggingRef = useRef(false);
35
+ return /* @__PURE__ */ jsx("div", {
36
+ "aria-label": label,
37
+ "aria-orientation": "vertical",
38
+ "aria-valuemax": max,
39
+ "aria-valuemin": min,
40
+ "aria-valuenow": Math.round(value),
41
+ className: cn("hover:bg-border active:bg-border focus-visible:bg-border focus-visible:ring-ring z-10 -mx-0.5 w-1 shrink-0 cursor-col-resize focus-visible:ring-1 focus-visible:outline-none", className),
42
+ "data-slot": "resize-separator",
43
+ onKeyDown: (event) => {
44
+ let step;
45
+ switch (event.key) {
46
+ case "ArrowLeft":
47
+ step = -keyboardStep;
48
+ break;
49
+ case "ArrowRight":
50
+ step = keyboardStep;
51
+ break;
52
+ default: return;
53
+ }
54
+ event.preventDefault();
55
+ const rect = event.currentTarget.getBoundingClientRect();
56
+ onResize(rect.left + rect.width / 2 + step);
57
+ },
58
+ onPointerCancel: () => {
59
+ isDraggingRef.current = false;
60
+ },
61
+ onPointerDown: (event) => {
62
+ event.preventDefault();
63
+ isDraggingRef.current = true;
64
+ event.currentTarget.setPointerCapture(event.pointerId);
65
+ },
66
+ onPointerMove: (event) => {
67
+ if (isDraggingRef.current) onResize(event.clientX);
68
+ },
69
+ onPointerUp: () => {
70
+ isDraggingRef.current = false;
71
+ },
72
+ role: "separator",
73
+ tabIndex: 0
74
+ });
75
+ };
25
76
  //#endregion
26
- export { Separator, TextSeparator };
77
+ export { ResizeSeparator, Separator, TextSeparator };
@@ -4,6 +4,7 @@ import { Separator } from "./separator.js";
4
4
  import { SidebarLayout } from "./sidebar.logic.js";
5
5
  import { TooltipContent as TooltipPopup } from "./tooltip.js";
6
6
  import { VariantProps } from "class-variance-authority";
7
+ import { useRender } from "@base-ui/react/use-render";
7
8
  //#region src/components/sidebar.d.ts
8
9
  /**
9
10
  * Inline size the sidebar takes out of the layout row when expanded, in CSS
@@ -112,6 +113,12 @@ declare const sidebarMenuButtonVariants: (props?: ({
112
113
  * states cannot drift apart.
113
114
  */
114
115
  declare const sidebarIdentityTriggerClassName: (layout: SidebarLayout) => string;
116
+ /**
117
+ * The footer's avatar trigger as a button, laid out for the sidebar's
118
+ * current layout: the sign-in action, or (through `render`) any overlay
119
+ * trigger that opens from the identity slot.
120
+ */
121
+ declare const SidebarIdentityButton: ({ className, render, ...props }: useRender.ComponentProps<"button">) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
115
122
  declare const SidebarMenuButton: ({ asChild, isActive, variant, size, tooltip, className, ...props }: React.ComponentProps<"button"> & {
116
123
  asChild?: boolean;
117
124
  isActive?: boolean;
@@ -133,4 +140,4 @@ declare const SidebarMenuSubButton: ({ asChild, size, isActive, className, ...pr
133
140
  isActive?: boolean;
134
141
  }) => import("react").JSX.Element;
135
142
  //#endregion
136
- export { PanelTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
143
+ export { PanelTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarIdentityButton, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
@@ -12,6 +12,8 @@ import { deriveSidebarState, nextOpenMobile, nextRequestedOpen, resolveSidebarLa
12
12
  import { Skeleton } from "./skeleton.js";
13
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
14
  import { createContext, use, useId, useState } from "react";
15
+ import { mergeProps } from "@base-ui/react/merge-props";
16
+ import { useRender } from "@base-ui/react/use-render";
15
17
  import { panic } from "better-result";
16
18
  import { cva } from "class-variance-authority";
17
19
  //#region src/components/sidebar.tsx
@@ -322,6 +324,24 @@ const sidebarMenuButtonVariants = cva("peer/menu-button ring-sidebar-ring hover:
322
324
  * states cannot drift apart.
323
325
  */
324
326
  const sidebarIdentityTriggerClassName = (layout) => cn("ring-sidebar-ring hover:bg-sidebar-accent flex items-center overflow-hidden rounded-md text-start text-sm outline-hidden focus-visible:ring-2", layout === "rail" ? "size-8 justify-center p-0.5" : "w-full gap-2 p-2");
327
+ /**
328
+ * The footer's avatar trigger as a button, laid out for the sidebar's
329
+ * current layout: the sign-in action, or (through `render`) any overlay
330
+ * trigger that opens from the identity slot.
331
+ */
332
+ const SidebarIdentityButton = ({ className, render, ...props }) => {
333
+ const layout = useSidebarLayout();
334
+ const defaultProps = {
335
+ className: cn(sidebarIdentityTriggerClassName(layout), className),
336
+ "data-slot": "sidebar-identity-button",
337
+ type: render === void 0 ? "button" : void 0
338
+ };
339
+ return useRender({
340
+ defaultTagName: "button",
341
+ props: mergeProps(defaultProps, props),
342
+ render
343
+ });
344
+ };
325
345
  const SidebarMenuButton = ({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) => {
326
346
  const Comp = asChild ? Slot : "button";
327
347
  const sidebarLayout = useSidebarLayout();
@@ -400,4 +420,4 @@ const SidebarMenuSubButton = ({ asChild = false, size = "md", isActive = false,
400
420
  });
401
421
  };
402
422
  //#endregion
403
- export { PanelTrigger, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
423
+ export { PanelTrigger, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarIdentityButton, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { cn, composeRefs } from "../lib/utils.js";
3
- import { hasTabOrderChanged } from "../lib/tab-order.js";
3
+ import { hasTabOrderChanged, revealActiveTab } from "../lib/tab-order.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
6
6
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
@@ -21,6 +21,17 @@ const TabsList = ({ variant = "default", className, children, ref, ...props }) =
21
21
  tabOrderRef.current = tabs;
22
22
  if (hasTabOrderChanged(previousTabs, tabs)) setRemeasureToken((token) => token + 1);
23
23
  });
24
+ useIsoLayoutEffect(() => {
25
+ const list = listRef.current;
26
+ if (list === null || typeof ResizeObserver === "undefined") return;
27
+ const observer = new ResizeObserver(() => {
28
+ revealActiveTab(list);
29
+ });
30
+ observer.observe(list);
31
+ return () => {
32
+ observer.disconnect();
33
+ };
34
+ }, []);
24
35
  return /* @__PURE__ */ jsxs(Tabs$1.List, {
25
36
  className: cn("text-muted-foreground relative z-0 flex w-fit max-w-full items-center justify-center-safe gap-x-0.5", "scrollbar-none overflow-auto data-[orientation=horizontal]:overflow-y-hidden data-[orientation=horizontal]:overscroll-x-contain data-[orientation=vertical]:overflow-x-hidden data-[orientation=vertical]:overscroll-y-contain [&::-webkit-scrollbar]:hidden", "data-[orientation=vertical]:flex-col", variant === "default" ? "bg-muted text-foreground-label rounded-lg p-0.5" : "*:data-[slot=tabs-tab]:hover:bg-accent data-[orientation=horizontal]:py-1 data-[orientation=vertical]:px-1", className),
26
37
  "data-slot": "tabs-list",
@@ -9,7 +9,7 @@ const WEIGHT_CLASS_NAMES = {
9
9
  semibold: "font-semibold",
10
10
  bold: "font-bold"
11
11
  };
12
- const faceClassName = (face) => cn(face.family === "serif" && "font-serif", WEIGHT_CLASS_NAMES[face.weight], face.italic === true && "italic");
12
+ const faceClassName = (face) => WEIGHT_CLASS_NAMES[face.weight];
13
13
  /**
14
14
  * Text in one of the design system's roles (./text.shared.ts), the same role
15
15
  * the React Native renderer (./text.native.tsx) sets on a phone. Inline, so a
@@ -3,17 +3,9 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { Text as Text$1 } from "react-native";
4
4
  //#region src/components/text.native.tsx
5
5
  /**
6
- * The embedded font each face is, by the name the app registers it under:
7
- * DM Sans, the web's typeface, for the interface; the platform's Georgia for
8
- * reading, since the web reader's Source Serif 4 ships only as web fonts.
6
+ * The embedded DM Sans face, the web's typeface, for each weight, by the
7
+ * name the app registers it under.
9
8
  */
10
- const faceName = ({ family, weight, italic }) => {
11
- if (family === "serif") {
12
- if (weight === "bold" || weight === "semibold") return italic === true ? "Georgia-BoldItalic" : "Georgia-Bold";
13
- return italic === true ? "Georgia-Italic" : "Georgia";
14
- }
15
- return SANS_FACES[weight];
16
- };
17
9
  const SANS_FACES = {
18
10
  light: "DMSans-Light",
19
11
  regular: "DMSans-Regular",
@@ -31,7 +23,7 @@ const NOT_A_COLOUR = /^text-(?:xs|sm|base|lg|\d*xl|\[|left|center|right|justify|
31
23
  */
32
24
  const withForeground = (classes) => classes.split(/\s+/u).some((name) => name.startsWith("text-") && !NOT_A_COLOUR.test(name)) ? classes : `text-foreground ${classes}`;
33
25
  /** The font a role is set in, for a native control that draws its own text. */
34
- const textFontFamily = (variant) => faceName(TEXT_VARIANT_FACES[variant ?? "body"]);
26
+ const textFontFamily = (variant) => SANS_FACES[TEXT_VARIANT_FACES[variant ?? "body"].weight];
35
27
  /**
36
28
  * Text in one of the design system's roles (./text.shared.ts), as the web
37
29
  * renderer (./text.tsx) sets it: the same size and colour, in the role's
@@ -21,21 +21,10 @@ export declare const TEXT_VARIANT_CLASS_NAMES: {
21
21
  readonly badge: "text-[10px] uppercase tracking-[1px] text-muted-foreground";
22
22
  /** An inline link in a caption, underlined as legal links are. */
23
23
  readonly link: "text-sm text-muted-foreground underline";
24
- /**
25
- * A court decision's text, in the reader's serif at its 1.65 leading
26
- * (packages/decision-reader reader.css). Its emphases nest inside it and
27
- * keep its size.
28
- */
29
- readonly reading: "text-base leading-[26px]";
30
- readonly readingStrong: "";
31
- readonly readingEmphasis: "";
32
- readonly readingStrongEmphasis: "";
33
24
  };
34
25
  export type TextVariant = keyof typeof TEXT_VARIANT_CLASS_NAMES;
35
26
  export type TextFace = {
36
- readonly family: "sans" | "serif";
37
27
  readonly weight: "light" | "regular" | "medium" | "semibold" | "bold";
38
- readonly italic?: true;
39
28
  };
40
29
  /** The face each role is set in. */
41
30
  export declare const TEXT_VARIANT_FACES: {
@@ -51,24 +40,6 @@ export declare const TEXT_VARIANT_FACES: {
51
40
  readonly display: TextFace;
52
41
  readonly badge: TextFace;
53
42
  readonly link: TextFace;
54
- readonly reading: {
55
- readonly family: "serif";
56
- readonly weight: "regular";
57
- };
58
- readonly readingStrong: {
59
- readonly family: "serif";
60
- readonly weight: "bold";
61
- };
62
- readonly readingEmphasis: {
63
- readonly family: "serif";
64
- readonly weight: "regular";
65
- readonly italic: true;
66
- };
67
- readonly readingStrongEmphasis: {
68
- readonly family: "serif";
69
- readonly weight: "bold";
70
- readonly italic: true;
71
- };
72
43
  };
73
44
  /** The props every text renderer accepts, with one meaning. */
74
45
  export type TextContract = {
@@ -19,21 +19,9 @@ const TEXT_VARIANT_CLASS_NAMES = {
19
19
  /** A small bordered tag in capitals, as the beta is marked. */
20
20
  badge: "text-[10px] uppercase tracking-[1px] text-muted-foreground",
21
21
  /** An inline link in a caption, underlined as legal links are. */
22
- link: "text-sm text-muted-foreground underline",
23
- /**
24
- * A court decision's text, in the reader's serif at its 1.65 leading
25
- * (packages/decision-reader reader.css). Its emphases nest inside it and
26
- * keep its size.
27
- */
28
- reading: "text-base leading-[26px]",
29
- readingStrong: "",
30
- readingEmphasis: "",
31
- readingStrongEmphasis: ""
22
+ link: "text-sm text-muted-foreground underline"
32
23
  };
33
- const sans = (weight) => ({
34
- family: "sans",
35
- weight
36
- });
24
+ const sans = (weight) => ({ weight });
37
25
  /** The face each role is set in. */
38
26
  const TEXT_VARIANT_FACES = {
39
27
  body: sans("regular"),
@@ -47,25 +35,7 @@ const TEXT_VARIANT_FACES = {
47
35
  title: sans("semibold"),
48
36
  display: sans("light"),
49
37
  badge: sans("medium"),
50
- link: sans("regular"),
51
- reading: {
52
- family: "serif",
53
- weight: "regular"
54
- },
55
- readingStrong: {
56
- family: "serif",
57
- weight: "bold"
58
- },
59
- readingEmphasis: {
60
- family: "serif",
61
- weight: "regular",
62
- italic: true
63
- },
64
- readingStrongEmphasis: {
65
- family: "serif",
66
- weight: "bold",
67
- italic: true
68
- }
38
+ link: sans("regular")
69
39
  };
70
40
  //#endregion
71
41
  export { TEXT_VARIANT_CLASS_NAMES, TEXT_VARIANT_FACES };
package/dist/icons.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { ActivityIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookOpenIcon as CaseLawIcon, BookOpenIcon as SkillIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon as CopyFromMenuIcon, CopyIcon as CopyToClipboardIcon, CopyIcon as DuplicateIcon, CopyPlusIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, LoaderCircleIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, LucideIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquarePlusIcon as NewChatIcon, MessageSquareQuoteIcon as AddCommentIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WandSparklesIcon as AiActionIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon } from "lucide-react";
2
- export { ActivityIcon, AddCommentIcon, AiActionIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, CaseLawIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyFromMenuIcon, CopyPlusIcon, CopyToClipboardIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, DuplicateIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, LoaderCircleIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, type LucideIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, NewChatIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, SkillIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon };
1
+ import { ActivityIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, AppWindowMacIcon as BrowserControlIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookOpenIcon as CaseLawIcon, BookOpenIcon as SkillIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon as CopyFromMenuIcon, CopyIcon as CopyToClipboardIcon, CopyIcon as DuplicateIcon, CopyPlusIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, LoaderCircleIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, LucideIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquarePlusIcon as NewChatIcon, MessageSquareQuoteIcon as AddCommentIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, MicIcon as DictateIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WandSparklesIcon as AiActionIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon } from "lucide-react";
2
+ export { ActivityIcon, AddCommentIcon, AiActionIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BracesIcon, BrainIcon, BrowserControlIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, CaseLawIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyFromMenuIcon, CopyPlusIcon, CopyToClipboardIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DictateIcon, DollarSignIcon, DownloadIcon, DuplicateIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, LoaderCircleIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, type LucideIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, NewChatIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, SkillIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon };
package/dist/icons.js CHANGED
@@ -1 +1 @@
1
- export { ActivityIcon, MessageSquareQuoteIcon as AddCommentIcon, WandSparklesIcon as AiActionIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BracesIcon, BrainIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, BookOpenIcon as CaseLawIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon as CopyFromMenuIcon, CopyPlusIcon, CopyIcon as CopyToClipboardIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, CopyIcon as DuplicateIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, LoaderCircleIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MessageSquarePlusIcon as NewChatIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, BookOpenIcon as SkillIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon } from "lucide-react";
1
+ export { ActivityIcon, MessageSquareQuoteIcon as AddCommentIcon, WandSparklesIcon as AiActionIcon, AlarmClockIcon, AlertCircleIcon, AlertTriangleIcon, AlignJustifyIcon, AlignLeftIcon, ArchiveIcon, ArchiveRestoreIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, AtSignIcon, BanIcon, BanknoteIcon, BellIcon, BlocksIcon, BoldIcon, BookOpenCheckIcon, BookTextIcon, BookmarkIcon, BookmarkPlusIcon, BracesIcon, BrainIcon, AppWindowMacIcon as BrowserControlIcon, Building2Icon, BuildingIcon, CableIcon, CalendarClockIcon, CalendarIcon, BookOpenIcon as CaseLawIcon, CheckCheckIcon, CheckCircle2Icon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleAlertIcon, CircleCheckIcon, CircleDashedIcon, CircleDotIcon, CircleHelpIcon, CircleIcon, CircleOffIcon, CircleUserRoundIcon, ClipboardCheckIcon, ClipboardCopyIcon, ClipboardIcon, ClipboardListIcon, Clock3Icon, ClockIcon, CogIcon, Columns2Icon, Columns3Icon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon as CopyFromMenuIcon, CopyPlusIcon, CopyIcon as CopyToClipboardIcon, CornerDownLeftIcon, CpuIcon, CropIcon, DatabaseIcon, MicIcon as DictateIcon, DollarSignIcon, DownloadIcon, CopyIcon as DuplicateIcon, EditIcon, EllipsisIcon, EllipsisVerticalIcon, EqualIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileBadgeIcon, FileCheckIcon, FileCodeIcon, FileDiffIcon, FileDigitIcon, FileDownIcon, FileIcon, FileImageIcon, FileOutputIcon, FilePenLineIcon, FilePlus2Icon, FilePlusIcon, FileQuestionIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FileUpIcon, FilterIcon, FilterXIcon, FlagIcon, FlaskConicalIcon, FoldHorizontalIcon, FolderIcon, FolderInputIcon, FolderOpenIcon, FolderPlusIcon, FolderSyncIcon, FolderTreeIcon, FunctionSquareIcon, GanttChartIcon, GaugeIcon, GitBranchIcon, GitCommitHorizontalIcon, GitPullRequestIcon, GlobeIcon, GraduationCapIcon, GripVerticalIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HighlighterIcon, HistoryIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyRoundIcon, KeyboardIcon, LandmarkIcon, LanguagesIcon, LaptopIcon, LayersIcon, LayoutDashboardIcon, LayoutGridIcon, LayoutTemplateIcon, LibraryBigIcon, LibraryIcon, Link2Icon, LinkIcon, ListChecksIcon, ListFilterIcon, ListIcon, ListMinusIcon, ListOrderedIcon, ListTodoIcon, ListTreeIcon, ListXIcon, LoaderCircleIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, MailIcon, Maximize2Icon, MegaphoneIcon, MessageCircleQuestionIcon, MessageSquareIcon, MessageSquareTextIcon, MessageSquareWarningIcon, MessagesSquareIcon, Minimize2Icon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MessageSquarePlusIcon as NewChatIcon, PackageIcon, PaletteIcon, PanelLeftIcon, PanelRightIcon, PaperclipIcon, PauseIcon, PenIcon, PenLineIcon, PencilIcon, PencilLineIcon, PhoneIcon, PinIcon, PinOffIcon, PlayIcon, PlugIcon, PlusIcon, PowerIcon, PrinterIcon, QuoteIcon, Redo2Icon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RotateCcwIcon, RotateCwIcon, RouteIcon, Rows2Icon, Rows3Icon, SaveIcon, ScanSearchIcon, ScanTextIcon, ScissorsIcon, ScrollTextIcon, SearchIcon, SearchXIcon, SendIcon, ServerIcon, Settings2Icon, ShapesIcon, ShieldAlertIcon, ShieldCheckIcon, ShieldIcon, SigmaIcon, SignatureIcon, BookOpenIcon as SkillIcon, SlashIcon, SlidersHorizontalIcon, SparklesIcon, SplitIcon, SquareCheckIcon, SquareIcon, SquareMinusIcon, SquarePenIcon, StarIcon, StarOffIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, TableIcon, TagIcon, TagsIcon, TerminalIcon, TextIcon, TextQuoteIcon, ToggleLeftIcon, Trash2Icon, TrashIcon, TriangleAlertIcon, UnderlineIcon, Undo2Icon, UndoIcon, UnfoldHorizontalIcon, UngroupIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlusIcon, UserRoundIcon, UsersIcon, VideoIcon, WavesIcon, WindIcon, WorkflowIcon, WrapTextIcon, WrenchIcon, XCircleIcon, XIcon, XSquareIcon, ZapIcon } from "lucide-react";