@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.
- package/dist/calendar/day-calendar.logic.js +2 -2
- package/dist/components/accordion.js +1 -1
- package/dist/components/bidi-text.d.ts +7 -0
- package/dist/components/bidi-text.js +22 -9
- package/dist/components/button.d.ts +2 -1
- package/dist/components/button.js +57 -3
- package/dist/components/button.native-classes.js +5 -0
- package/dist/components/button.shared.d.ts +1 -1
- package/dist/components/button.shared.js +1 -0
- package/dist/components/checkbox.js +2 -0
- package/dist/components/court-filter.d.ts +42 -0
- package/dist/components/court-filter.js +210 -0
- package/dist/components/identity-text.js +4 -2
- package/dist/components/landing.js +1 -1
- package/dist/components/middle-truncate.d.ts +19 -0
- package/dist/components/middle-truncate.js +112 -0
- package/dist/components/middle-truncate.logic.d.ts +11 -0
- package/dist/components/middle-truncate.logic.js +63 -0
- package/dist/components/separator.d.ts +26 -1
- package/dist/components/separator.js +52 -1
- package/dist/components/sidebar.d.ts +8 -1
- package/dist/components/sidebar.js +21 -1
- package/dist/components/tabs.js +12 -1
- package/dist/components/text.js +1 -1
- package/dist/components/text.native.js +3 -11
- package/dist/components/text.shared.d.ts +0 -29
- package/dist/components/text.shared.js +3 -33
- package/dist/icons.d.ts +2 -2
- package/dist/icons.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/inspector/chrome.js +2 -1
- package/dist/inspector/facet-bar.js +14 -8
- package/dist/lib/inline-reorder.js +3 -3
- package/dist/lib/tab-order.d.ts +19 -1
- package/dist/lib/tab-order.js +12 -10
- package/dist/review/review-comment-card.js +1 -1
- 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 };
|
package/dist/components/tabs.js
CHANGED
|
@@ -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",
|
package/dist/components/text.js
CHANGED
|
@@ -9,7 +9,7 @@ const WEIGHT_CLASS_NAMES = {
|
|
|
9
9
|
semibold: "font-semibold",
|
|
10
10
|
bold: "font-bold"
|
|
11
11
|
};
|
|
12
|
-
const faceClassName = (face) =>
|
|
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
|
|
7
|
-
*
|
|
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) =>
|
|
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";
|