@databricks/appkit-ui 0.18.0 → 0.19.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/CLAUDE.md +8 -1
- package/dist/cli/commands/plugin/create/scaffold.js +2 -8
- package/dist/cli/commands/plugin/create/scaffold.js.map +1 -1
- package/dist/react/file-browser/directory-list.d.ts +54 -0
- package/dist/react/file-browser/directory-list.d.ts.map +1 -0
- package/dist/react/file-browser/directory-list.js +74 -0
- package/dist/react/file-browser/directory-list.js.map +1 -0
- package/dist/react/file-browser/file-breadcrumb.d.ts +25 -0
- package/dist/react/file-browser/file-breadcrumb.d.ts.map +1 -0
- package/dist/react/file-browser/file-breadcrumb.js +27 -0
- package/dist/react/file-browser/file-breadcrumb.js.map +1 -0
- package/dist/react/file-browser/file-entry.d.ts +27 -0
- package/dist/react/file-browser/file-entry.d.ts.map +1 -0
- package/dist/react/file-browser/file-entry.js +31 -0
- package/dist/react/file-browser/file-entry.js.map +1 -0
- package/dist/react/file-browser/file-preview-panel.d.ts +42 -0
- package/dist/react/file-browser/file-preview-panel.d.ts.map +1 -0
- package/dist/react/file-browser/file-preview-panel.js +135 -0
- package/dist/react/file-browser/file-preview-panel.js.map +1 -0
- package/dist/react/file-browser/index.d.ts +7 -0
- package/dist/react/file-browser/index.js +6 -0
- package/dist/react/file-browser/new-folder-input.d.ts +36 -0
- package/dist/react/file-browser/new-folder-input.d.ts.map +1 -0
- package/dist/react/file-browser/new-folder-input.js +52 -0
- package/dist/react/file-browser/new-folder-input.js.map +1 -0
- package/dist/react/file-browser/types.d.ts +52 -0
- package/dist/react/file-browser/types.d.ts.map +1 -0
- package/dist/react/genie/genie-chat-message-list.js +1 -1
- package/dist/react/genie/genie-chat-message.js +1 -1
- package/dist/react/index.d.ts +9 -1
- package/dist/react/index.js +12 -5
- package/dist/react/lib/format.d.ts +14 -0
- package/dist/react/lib/format.d.ts.map +1 -0
- package/dist/react/lib/format.js +17 -1
- package/dist/react/lib/format.js.map +1 -1
- package/dist/react/table/data-table.js +1 -1
- package/dist/react/table/table-wrapper.js +1 -1
- package/dist/react/ui/breadcrumb.js +1 -1
- package/dist/react/ui/index.js +3 -3
- package/dist/react/ui/navigation-menu.js +1 -1
- package/dist/react/ui/sidebar.js +1 -1
- package/docs/api/appkit/Class.Plugin.md +60 -12
- package/docs/api/appkit/Class.ResourceRegistry.md +3 -3
- package/docs/api/appkit/Function.createApp.md +3 -3
- package/docs/api/appkit/Interface.PluginManifest.md +9 -3
- package/docs/api/appkit/TypeAlias.PluginData.md +45 -0
- package/docs/api/appkit/TypeAlias.ToPlugin.md +1 -1
- package/docs/api/appkit-ui/files/DirectoryList.md +36 -0
- package/docs/api/appkit-ui/files/FileBreadcrumb.md +27 -0
- package/docs/api/appkit-ui/files/FileEntry.md +27 -0
- package/docs/api/appkit-ui/files/FilePreviewPanel.md +32 -0
- package/docs/api/appkit-ui/files/NewFolderInput.md +30 -0
- package/docs/api/appkit.md +1 -0
- package/docs/configuration.md +15 -0
- package/docs/plugins/custom-plugins.md +4 -13
- package/docs/plugins/files.md +350 -0
- package/docs/plugins.md +2 -1
- package/llms.txt +8 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { FileBrowserLabels } from "./types.js";
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/react/file-browser/new-folder-input.d.ts
|
|
5
|
+
/** Props for the NewFolderInput component */
|
|
6
|
+
interface NewFolderInputProps extends Omit<React.ComponentProps<"div">, "children" | "onChange"> {
|
|
7
|
+
/** Current folder name value */
|
|
8
|
+
value: string;
|
|
9
|
+
/** Called when folder name changes */
|
|
10
|
+
onChange: (value: string) => void;
|
|
11
|
+
/** Called when the user confirms creation */
|
|
12
|
+
onCreate: () => void;
|
|
13
|
+
/** Called when the user cancels */
|
|
14
|
+
onCancel: () => void;
|
|
15
|
+
/** Whether folder creation is in progress */
|
|
16
|
+
creating?: boolean;
|
|
17
|
+
/** Auto-focus the input on mount */
|
|
18
|
+
autoFocus?: boolean;
|
|
19
|
+
/** Customizable labels */
|
|
20
|
+
labels?: Pick<FileBrowserLabels, "create" | "folderNamePlaceholder">;
|
|
21
|
+
}
|
|
22
|
+
/** Inline folder-name input with create/cancel actions */
|
|
23
|
+
declare function NewFolderInput({
|
|
24
|
+
value,
|
|
25
|
+
onChange,
|
|
26
|
+
onCreate,
|
|
27
|
+
onCancel,
|
|
28
|
+
creating,
|
|
29
|
+
autoFocus,
|
|
30
|
+
labels,
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}: NewFolderInputProps): react_jsx_runtime0.JSX.Element;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { NewFolderInput, NewFolderInputProps };
|
|
36
|
+
//# sourceMappingURL=new-folder-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-folder-input.d.ts","names":[],"sources":["../../../src/react/file-browser/new-folder-input.tsx"],"mappings":";;;;;UAOiB,mBAAA,SACP,IAAA,CAAK,KAAA,CAAM,cAAA;;EAEnB,KAAA;EAFA;EAIA,QAAA,GAAW,KAAA;EAJE;EAMb,QAAA;EAQS;EANT,QAAA;EARY;EAUZ,QAAA;EAVQ;EAYR,SAAA;EAZmB;EAcnB,MAAA,GAAS,IAAA,CAAK,iBAAA;AAAA;;iBAIA,cAAA,CAAA;EACd,KAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,SAAA;EACA,MAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,mBAAA,GAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { cn } from "../lib/utils.js";
|
|
2
|
+
import { Button } from "../ui/button.js";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { FolderPlus, Loader2, X } from "lucide-react";
|
|
6
|
+
|
|
7
|
+
//#region src/react/file-browser/new-folder-input.tsx
|
|
8
|
+
/** Inline folder-name input with create/cancel actions */
|
|
9
|
+
function NewFolderInput({ value, onChange, onCreate, onCancel, creating, autoFocus = true, labels, className, ...props }) {
|
|
10
|
+
const inputRef = useRef(null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (autoFocus) inputRef.current?.focus();
|
|
13
|
+
}, [autoFocus]);
|
|
14
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
"data-slot": "new-folder-input",
|
|
16
|
+
className: cn("flex items-center gap-2 px-4 py-3 border-b bg-muted/30", className),
|
|
17
|
+
...props,
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx(FolderPlus, { className: "h-5 w-5 text-blue-500 shrink-0" }),
|
|
20
|
+
/* @__PURE__ */ jsx("input", {
|
|
21
|
+
ref: inputRef,
|
|
22
|
+
type: "text",
|
|
23
|
+
value,
|
|
24
|
+
onChange: (e) => onChange(e.target.value),
|
|
25
|
+
onKeyDown: (e) => {
|
|
26
|
+
if (e.key === "Enter") onCreate();
|
|
27
|
+
if (e.key === "Escape") onCancel();
|
|
28
|
+
},
|
|
29
|
+
placeholder: labels?.folderNamePlaceholder ?? "Folder name",
|
|
30
|
+
className: "flex-1 text-sm bg-background border rounded px-2 py-1 outline-none focus:ring-1 focus:ring-ring",
|
|
31
|
+
disabled: creating
|
|
32
|
+
}),
|
|
33
|
+
/* @__PURE__ */ jsx(Button, {
|
|
34
|
+
variant: "ghost",
|
|
35
|
+
size: "sm",
|
|
36
|
+
disabled: creating || !value.trim(),
|
|
37
|
+
onClick: onCreate,
|
|
38
|
+
children: creating ? /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : labels?.create ?? "Create"
|
|
39
|
+
}),
|
|
40
|
+
/* @__PURE__ */ jsx("button", {
|
|
41
|
+
type: "button",
|
|
42
|
+
onClick: onCancel,
|
|
43
|
+
className: "text-muted-foreground hover:text-foreground",
|
|
44
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
|
|
45
|
+
})
|
|
46
|
+
]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
export { NewFolderInput };
|
|
52
|
+
//# sourceMappingURL=new-folder-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-folder-input.js","names":[],"sources":["../../../src/react/file-browser/new-folder-input.tsx"],"sourcesContent":["import { FolderPlus, Loader2, X } from \"lucide-react\";\nimport { useEffect, useRef } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport type { FileBrowserLabels } from \"./types\";\n\n/** Props for the NewFolderInput component */\nexport interface NewFolderInputProps\n extends Omit<React.ComponentProps<\"div\">, \"children\" | \"onChange\"> {\n /** Current folder name value */\n value: string;\n /** Called when folder name changes */\n onChange: (value: string) => void;\n /** Called when the user confirms creation */\n onCreate: () => void;\n /** Called when the user cancels */\n onCancel: () => void;\n /** Whether folder creation is in progress */\n creating?: boolean;\n /** Auto-focus the input on mount */\n autoFocus?: boolean;\n /** Customizable labels */\n labels?: Pick<FileBrowserLabels, \"create\" | \"folderNamePlaceholder\">;\n}\n\n/** Inline folder-name input with create/cancel actions */\nexport function NewFolderInput({\n value,\n onChange,\n onCreate,\n onCancel,\n creating,\n autoFocus = true,\n labels,\n className,\n ...props\n}: NewFolderInputProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (autoFocus) {\n inputRef.current?.focus();\n }\n }, [autoFocus]);\n\n return (\n <div\n data-slot=\"new-folder-input\"\n className={cn(\n \"flex items-center gap-2 px-4 py-3 border-b bg-muted/30\",\n className,\n )}\n {...props}\n >\n <FolderPlus className=\"h-5 w-5 text-blue-500 shrink-0\" />\n <input\n ref={inputRef}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") onCreate();\n if (e.key === \"Escape\") onCancel();\n }}\n placeholder={labels?.folderNamePlaceholder ?? \"Folder name\"}\n className=\"flex-1 text-sm bg-background border rounded px-2 py-1 outline-none focus:ring-1 focus:ring-ring\"\n disabled={creating}\n />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={creating || !value.trim()}\n onClick={onCreate}\n >\n {creating ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n (labels?.create ?? \"Create\")\n )}\n </Button>\n <button\n type=\"button\"\n onClick={onCancel}\n className=\"text-muted-foreground hover:text-foreground\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AA0BA,SAAgB,eAAe,EAC7B,OACA,UACA,UACA,UACA,UACA,YAAY,MACZ,QACA,WACA,GAAG,SACmB;CACtB,MAAM,WAAW,OAAyB,KAAK;AAE/C,iBAAgB;AACd,MAAI,UACF,UAAS,SAAS,OAAO;IAE1B,CAAC,UAAU,CAAC;AAEf,QACE,qBAAC;EACC,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;;GAEJ,oBAAC,cAAW,WAAU,mCAAmC;GACzD,oBAAC;IACC,KAAK;IACL,MAAK;IACE;IACP,WAAW,MAAM,SAAS,EAAE,OAAO,MAAM;IACzC,YAAY,MAAM;AAChB,SAAI,EAAE,QAAQ,QAAS,WAAU;AACjC,SAAI,EAAE,QAAQ,SAAU,WAAU;;IAEpC,aAAa,QAAQ,yBAAyB;IAC9C,WAAU;IACV,UAAU;KACV;GACF,oBAAC;IACC,SAAQ;IACR,MAAK;IACL,UAAU,YAAY,CAAC,MAAM,MAAM;IACnC,SAAS;cAER,WACC,oBAAC,WAAQ,WAAU,yBAAyB,GAE3C,QAAQ,UAAU;KAEd;GACT,oBAAC;IACC,MAAK;IACL,SAAS;IACT,WAAU;cAEV,oBAAC,KAAE,WAAU,YAAY;KAClB;;GACL"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//#region src/react/file-browser/types.d.ts
|
|
2
|
+
/** A single entry (file or directory) in a directory listing */
|
|
3
|
+
interface DirectoryEntry {
|
|
4
|
+
name?: string;
|
|
5
|
+
path?: string;
|
|
6
|
+
is_directory?: boolean;
|
|
7
|
+
file_size?: number;
|
|
8
|
+
last_modified?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Metadata and content preview for a selected file */
|
|
11
|
+
interface FilePreview {
|
|
12
|
+
contentLength: number | undefined;
|
|
13
|
+
contentType: string | undefined;
|
|
14
|
+
lastModified: string | undefined;
|
|
15
|
+
textPreview: string | null;
|
|
16
|
+
isText: boolean;
|
|
17
|
+
isImage: boolean;
|
|
18
|
+
}
|
|
19
|
+
/** Customizable labels for file browser components (i18n-ready) */
|
|
20
|
+
interface FileBrowserLabels {
|
|
21
|
+
/** Back button text (default: "Back to parent") */
|
|
22
|
+
backToParent?: string;
|
|
23
|
+
/** Empty directory message (default: "This directory is empty.") */
|
|
24
|
+
emptyDirectory?: string;
|
|
25
|
+
/** No volume configured message */
|
|
26
|
+
noVolumeConfigured?: string;
|
|
27
|
+
/** Retry button text (default: "Retry") */
|
|
28
|
+
retry?: string;
|
|
29
|
+
/** Select file prompt (default: "Select a file to preview") */
|
|
30
|
+
selectFilePrompt?: string;
|
|
31
|
+
/** Preview not available message */
|
|
32
|
+
previewNotAvailable?: string;
|
|
33
|
+
/** Failed to load preview message */
|
|
34
|
+
previewFailed?: string;
|
|
35
|
+
/** Download button text (default: "Download") */
|
|
36
|
+
download?: string;
|
|
37
|
+
/** Create button text (default: "Create") */
|
|
38
|
+
create?: string;
|
|
39
|
+
/** Folder name placeholder (default: "Folder name") */
|
|
40
|
+
folderNamePlaceholder?: string;
|
|
41
|
+
/** Size label (default: "Size") */
|
|
42
|
+
size?: string;
|
|
43
|
+
/** Type label (default: "Type") */
|
|
44
|
+
type?: string;
|
|
45
|
+
/** Modified label (default: "Modified") */
|
|
46
|
+
modified?: string;
|
|
47
|
+
/** Unknown value fallback (default: "Unknown") */
|
|
48
|
+
unknown?: string;
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { DirectoryEntry, FileBrowserLabels, FilePreview };
|
|
52
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/react/file-browser/types.ts"],"mappings":";;UACiB,cAAA;EACf,IAAA;EACA,IAAA;EACA,YAAA;EACA,SAAA;EACA,aAAA;AAAA;;UAIe,WAAA;EACf,aAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,MAAA;EACA,OAAA;AAAA;;UAIe,iBAAA;EANf;EAQA,YAAA;EANA;EAQA,cAAA;EARO;EAUP,kBAAA;EANgC;EAQhC,KAAA;EARgC;EAUhC,gBAAA;EANA;EAQA,mBAAA;EAJA;EAMA,aAAA;EAFA;EAIA,QAAA;EAAA;EAEA,MAAA;EAEA;EAAA,qBAAA;EAIA;EAFA,IAAA;EAMA;EAJA,IAAA;EAIO;EAFP,QAAA;;EAEA,OAAA;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
|
-
import { ScrollArea } from "../ui/scroll-area.js";
|
|
3
2
|
import { Skeleton } from "../ui/skeleton.js";
|
|
3
|
+
import { ScrollArea } from "../ui/scroll-area.js";
|
|
4
4
|
import { Spinner } from "../ui/spinner.js";
|
|
5
5
|
import { GenieChatMessage } from "./genie-chat-message.js";
|
|
6
6
|
import { useEffect, useLayoutEffect, useRef } from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
|
-
import { Avatar, AvatarFallback } from "../ui/avatar.js";
|
|
3
2
|
import { Card } from "../ui/card.js";
|
|
3
|
+
import { Avatar, AvatarFallback } from "../ui/avatar.js";
|
|
4
4
|
import { GenieQueryVisualization } from "./genie-query-visualization.js";
|
|
5
5
|
import { useMemo } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
package/dist/react/index.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ import { useAllThemeColors, useThemeColors } from "./charts/theme.js";
|
|
|
18
18
|
import { createTimeSeriesData, formatLabel, sortTimeSeriesAscending, toChartArray, toChartValue, truncateLabel } from "./charts/utils.js";
|
|
19
19
|
import { CartesianContext, HeatmapContext, OptionBuilderContext, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption } from "./charts/options.js";
|
|
20
20
|
import "./charts/index.js";
|
|
21
|
+
import { formatFileSize } from "./lib/format.js";
|
|
22
|
+
import { DirectoryEntry, FileBrowserLabels, FilePreview } from "./file-browser/types.js";
|
|
23
|
+
import { DirectoryList, DirectoryListProps } from "./file-browser/directory-list.js";
|
|
24
|
+
import { FileBreadcrumb, FileBreadcrumbProps } from "./file-browser/file-breadcrumb.js";
|
|
25
|
+
import { FileEntry, FileEntryProps } from "./file-browser/file-entry.js";
|
|
26
|
+
import { FilePreviewPanel, FilePreviewPanelProps } from "./file-browser/file-preview-panel.js";
|
|
27
|
+
import { NewFolderInput, NewFolderInputProps } from "./file-browser/new-folder-input.js";
|
|
28
|
+
import "./file-browser/index.js";
|
|
21
29
|
import { ColumnCategory, GenieColumnMeta, TransformedGenieData, transformGenieData } from "./genie/genie-query-transform.js";
|
|
22
30
|
import { ChartInference, inferChartType } from "./genie/genie-chart-inference.js";
|
|
23
31
|
import { GenieChatProps, GenieChatStatus, GenieMessageItem, UseGenieChatOptions, UseGenieChatReturn } from "./genie/types.js";
|
|
@@ -89,4 +97,4 @@ import { Textarea } from "./ui/textarea.js";
|
|
|
89
97
|
import { Toggle, toggleVariants } from "./ui/toggle.js";
|
|
90
98
|
import { ToggleGroup, ToggleGroupItem } from "./ui/toggle-group.js";
|
|
91
99
|
import "./ui/index.js";
|
|
92
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnalyticsFormat, AreaChart, AreaChartProps, AreaChartSpecificProps, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BarChartProps, BarChartSpecificProps, BaseChart, BaseChartProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartesianContext, ChartBaseProps, ChartColorPalette, ChartConfig, ChartContainer, ChartData, ChartInference, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartType, ChartWrapper, ChartWrapperProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnCategory, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataFormat, DataProps, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, DonutChartProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GenieAttachmentResponse, GenieChat, GenieChatInput, GenieChatMessage, GenieChatMessageList, GenieChatProps, GenieChatStatus, GenieColumnMeta, GenieMessageItem, GenieMessageResponse, GenieQueryVisualization, GenieStatementResponse, GenieStreamEvent, HeatmapChart, HeatmapChartProps, HeatmapChartSpecificProps, HeatmapContext, HoverCard, HoverCardContent, HoverCardTrigger, InferResultByFormat, InferRowType, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, LineChartProps, LineChartSpecificProps, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NormalizedChartData, NormalizedChartDataBase, NormalizedHeatmapData, OptionBuilderContext, Orientation, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, PieChartProps, PieChartSpecificProps, PluginRegistry, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerContext, PortalContainerProvider, Progress, QueryProps, QueryRegistry, RadarChart, RadarChartProps, RadarChartSpecificProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScatterChartProps, ScatterChartSpecificProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransformedGenieData, TypedArrowTable, UnifiedChartProps, UseAnalyticsQueryOptions, UseAnalyticsQueryResult, UseChartDataOptions, UseChartDataResult, UseGenieChatOptions, UseGenieChatReturn, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, cn, createChart, createTimeSeriesData, formatLabel, inferChartType, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, transformGenieData, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, useGenieChat, usePortalContainer, useResolvedPortalContainer, useSidebar, useThemeColors };
|
|
100
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnalyticsFormat, AreaChart, AreaChartProps, AreaChartSpecificProps, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BarChartProps, BarChartSpecificProps, BaseChart, BaseChartProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartesianContext, ChartBaseProps, ChartColorPalette, ChartConfig, ChartContainer, ChartData, ChartInference, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartType, ChartWrapper, ChartWrapperProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnCategory, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataFormat, DataProps, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectoryEntry, DirectoryList, DirectoryListProps, DonutChart, DonutChartProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FileBreadcrumb, FileBreadcrumbProps, FileBrowserLabels, FileEntry, FileEntryProps, FilePreview, FilePreviewPanel, FilePreviewPanelProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GenieAttachmentResponse, GenieChat, GenieChatInput, GenieChatMessage, GenieChatMessageList, GenieChatProps, GenieChatStatus, GenieColumnMeta, GenieMessageItem, GenieMessageResponse, GenieQueryVisualization, GenieStatementResponse, GenieStreamEvent, HeatmapChart, HeatmapChartProps, HeatmapChartSpecificProps, HeatmapContext, HoverCard, HoverCardContent, HoverCardTrigger, InferResultByFormat, InferRowType, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, LineChartProps, LineChartSpecificProps, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NewFolderInput, NewFolderInputProps, NormalizedChartData, NormalizedChartDataBase, NormalizedHeatmapData, OptionBuilderContext, Orientation, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, PieChartProps, PieChartSpecificProps, PluginRegistry, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerContext, PortalContainerProvider, Progress, QueryProps, QueryRegistry, RadarChart, RadarChartProps, RadarChartSpecificProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScatterChartProps, ScatterChartSpecificProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransformedGenieData, TypedArrowTable, UnifiedChartProps, UseAnalyticsQueryOptions, UseAnalyticsQueryResult, UseChartDataOptions, UseChartDataResult, UseGenieChatOptions, UseGenieChatReturn, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, cn, createChart, createTimeSeriesData, formatFileSize, formatLabel, inferChartType, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, transformGenieData, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, useGenieChat, usePortalContainer, useResolvedPortalContainer, useSidebar, useThemeColors };
|
package/dist/react/index.js
CHANGED
|
@@ -18,15 +18,23 @@ import { DonutChart, PieChart } from "./charts/pie/index.js";
|
|
|
18
18
|
import { RadarChart } from "./charts/radar/index.js";
|
|
19
19
|
import { ScatterChart } from "./charts/scatter/index.js";
|
|
20
20
|
import "./charts/index.js";
|
|
21
|
-
import {
|
|
21
|
+
import { formatFileSize } from "./lib/format.js";
|
|
22
22
|
import { cn } from "./lib/utils.js";
|
|
23
23
|
import { Button, buttonVariants } from "./ui/button.js";
|
|
24
|
+
import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./ui/card.js";
|
|
25
|
+
import { Skeleton } from "./ui/skeleton.js";
|
|
26
|
+
import { FileEntry } from "./file-browser/file-entry.js";
|
|
27
|
+
import { DirectoryList } from "./file-browser/directory-list.js";
|
|
28
|
+
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./ui/breadcrumb.js";
|
|
29
|
+
import { FileBreadcrumb } from "./file-browser/file-breadcrumb.js";
|
|
30
|
+
import { FilePreviewPanel } from "./file-browser/file-preview-panel.js";
|
|
31
|
+
import { NewFolderInput } from "./file-browser/new-folder-input.js";
|
|
32
|
+
import "./file-browser/index.js";
|
|
33
|
+
import { inferChartType } from "./genie/genie-chart-inference.js";
|
|
24
34
|
import { GenieChatInput } from "./genie/genie-chat-input.js";
|
|
25
35
|
import { ScrollArea, ScrollBar } from "./ui/scroll-area.js";
|
|
26
|
-
import { Skeleton } from "./ui/skeleton.js";
|
|
27
36
|
import { Spinner } from "./ui/spinner.js";
|
|
28
37
|
import { Avatar, AvatarFallback, AvatarImage } from "./ui/avatar.js";
|
|
29
|
-
import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./ui/card.js";
|
|
30
38
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./ui/table.js";
|
|
31
39
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs.js";
|
|
32
40
|
import { transformGenieData } from "./genie/genie-query-transform.js";
|
|
@@ -49,7 +57,6 @@ import { Alert, AlertDescription, AlertTitle } from "./ui/alert.js";
|
|
|
49
57
|
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from "./ui/alert-dialog.js";
|
|
50
58
|
import { AspectRatio } from "./ui/aspect-ratio.js";
|
|
51
59
|
import { Badge, badgeVariants } from "./ui/badge.js";
|
|
52
|
-
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./ui/breadcrumb.js";
|
|
53
60
|
import { Separator } from "./ui/separator.js";
|
|
54
61
|
import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants } from "./ui/button-group.js";
|
|
55
62
|
import { Calendar, CalendarDayButton } from "./ui/calendar.js";
|
|
@@ -87,4 +94,4 @@ import { Toggle, toggleVariants } from "./ui/toggle.js";
|
|
|
87
94
|
import { ToggleGroup, ToggleGroupItem } from "./ui/toggle-group.js";
|
|
88
95
|
import "./ui/index.js";
|
|
89
96
|
|
|
90
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BaseChart, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartWrapper, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GenieChat, GenieChatInput, GenieChatMessage, GenieChatMessageList, GenieQueryVisualization, HeatmapChart, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerContext, PortalContainerProvider, Progress, RadarChart, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, cn, createChart, createTimeSeriesData, formatLabel, inferChartType, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, transformGenieData, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, useGenieChat, usePortalContainer, useResolvedPortalContainer, useSidebar, useThemeColors };
|
|
97
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BarChart, BaseChart, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, CHART_COLOR_VARS, CHART_COLOR_VARS_CATEGORICAL, CHART_COLOR_VARS_DIVERGING, CHART_COLOR_VARS_SEQUENTIAL, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChartWrapper, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DATE_FIELD_PATTERNS, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectoryList, DonutChart, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FALLBACK_COLORS, FALLBACK_COLORS_CATEGORICAL, FALLBACK_COLORS_DIVERGING, FALLBACK_COLORS_SEQUENTIAL, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FileBreadcrumb, FileEntry, FilePreviewPanel, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GenieChat, GenieChatInput, GenieChatMessage, GenieChatMessageList, GenieQueryVisualization, HeatmapChart, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, LineChart, METADATA_DATE_PATTERNS, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NAME_FIELD_PATTERNS, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NewFolderInput, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PieChart, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerContext, PortalContainerProvider, Progress, RadarChart, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScatterChart, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buildCartesianOption, buildHeatmapOption, buildHorizontalBarOption, buildPieOption, buildRadarOption, buttonGroupVariants, buttonVariants, cn, createChart, createTimeSeriesData, formatFileSize, formatLabel, inferChartType, isArrowTable, isDataProps, isQueryProps, navigationMenuTriggerStyle, normalizeChartData, normalizeHeatmapData, sortTimeSeriesAscending, toChartArray, toChartValue, toggleVariants, transformGenieData, truncateLabel, useAllThemeColors, useAnalyticsQuery, useChartData, useFormField, useGenieChat, usePortalContainer, useResolvedPortalContainer, useSidebar, useThemeColors };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/react/lib/format.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Formats byte values into human-readable file sizes
|
|
4
|
+
* @param bytes - The file size in bytes
|
|
5
|
+
* @returns Formatted string (e.g., "1.5 KB", "3.2 MB")
|
|
6
|
+
* @example
|
|
7
|
+
* formatFileSize(512) // "512 B"
|
|
8
|
+
* formatFileSize(1536) // "1.5 KB"
|
|
9
|
+
* formatFileSize(2621440) // "2.5 MB"
|
|
10
|
+
*/
|
|
11
|
+
declare function formatFileSize(bytes: number | undefined): string;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { formatFileSize };
|
|
14
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","names":[],"sources":["../../../src/react/lib/format.ts"],"mappings":";;;;;;;;;;iBAiEgB,cAAA,CAAe,KAAA"}
|
package/dist/react/lib/format.js
CHANGED
|
@@ -34,9 +34,25 @@ function formatChartValue(value, fieldName) {
|
|
|
34
34
|
function formatFieldLabel(field) {
|
|
35
35
|
return field.replace(/[^a-zA-Z0-9_-]/g, "").replace(/([A-Z])/g, " $1").replace(/_/g, " ").replace(/\b\w/g, (l) => l.toUpperCase()).trim();
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Formats byte values into human-readable file sizes
|
|
39
|
+
* @param bytes - The file size in bytes
|
|
40
|
+
* @returns Formatted string (e.g., "1.5 KB", "3.2 MB")
|
|
41
|
+
* @example
|
|
42
|
+
* formatFileSize(512) // "512 B"
|
|
43
|
+
* formatFileSize(1536) // "1.5 KB"
|
|
44
|
+
* formatFileSize(2621440) // "2.5 MB"
|
|
45
|
+
*/
|
|
46
|
+
function formatFileSize(bytes) {
|
|
47
|
+
if (bytes === void 0 || bytes === null) return "Unknown";
|
|
48
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
49
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
50
|
+
if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
51
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
|
|
52
|
+
}
|
|
37
53
|
/** Regex for validating field names */
|
|
38
54
|
const SAFE_KEY_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
39
55
|
|
|
40
56
|
//#endregion
|
|
41
|
-
export { SAFE_KEY_REGEX, formatChartValue, formatFieldLabel };
|
|
57
|
+
export { SAFE_KEY_REGEX, formatChartValue, formatFieldLabel, formatFileSize };
|
|
42
58
|
//# sourceMappingURL=format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","names":[],"sources":["../../../src/react/lib/format.ts"],"sourcesContent":["/**\n * Formats numeric values based on field name context\n * @param value - The numeric value to format\n * @param fieldName - The field name to determine formatting\n * @returns Formatted string representation\n * @example\n * formatChartValue(1234.56, \"cost\") // \"$1,234.56\"\n * formatChartValue(5000, \"users\") // \"5.0k\"\n * formatChartValue(42.7, \"percentage\") // \"42.7\"\n */\nexport function formatChartValue(value: number, fieldName: string): string {\n if (\n fieldName.toLowerCase().includes(\"cost\") ||\n fieldName.toLowerCase().includes(\"price\") ||\n fieldName.toLowerCase().includes(\"spend\") ||\n fieldName.toLowerCase().includes(\"revenue\") ||\n fieldName.toLowerCase().includes(\"usd\")\n ) {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(value);\n }\n\n if (value >= 1000) {\n return new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n maximumFractionDigits: 1,\n }).format(value);\n }\n\n return value.toLocaleString(\"en-US\", {\n maximumFractionDigits: 2,\n });\n}\n\n/**\n * Converts field names to human-readable labels\n * @param field - Field name in camelCase or snake_case\n * @returns Formatted label with proper capitalization\n * @example\n * formatFieldLabel(\"totalCost\") // \"Total Cost\"\n * formatFieldLabel(\"user_name\") // \"User Name\"\n * formatFieldLabel(\"revenue\") // \"Revenue\"\n */\nexport function formatFieldLabel(field: string): string {\n const safe = field.replace(/[^a-zA-Z0-9_-]/g, \"\");\n return safe\n .replace(/([A-Z])/g, \" $1\")\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (l) => l.toUpperCase())\n .trim();\n}\n\n/** Regex for validating field names */\nexport const SAFE_KEY_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,iBAAiB,OAAe,WAA2B;AACzE,KACE,UAAU,aAAa,CAAC,SAAS,OAAO,IACxC,UAAU,aAAa,CAAC,SAAS,QAAQ,IACzC,UAAU,aAAa,CAAC,SAAS,QAAQ,IACzC,UAAU,aAAa,CAAC,SAAS,UAAU,IAC3C,UAAU,aAAa,CAAC,SAAS,MAAM,CAEvC,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,OAAO;EACP,UAAU;EACV,uBAAuB;EACvB,uBAAuB;EACxB,CAAC,CAAC,OAAO,MAAM;AAGlB,KAAI,SAAS,IACX,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,UAAU;EACV,uBAAuB;EACxB,CAAC,CAAC,OAAO,MAAM;AAGlB,QAAO,MAAM,eAAe,SAAS,EACnC,uBAAuB,GACxB,CAAC;;;;;;;;;;;AAYJ,SAAgB,iBAAiB,OAAuB;AAEtD,QADa,MAAM,QAAQ,mBAAmB,GAAG,CAE9C,QAAQ,YAAY,MAAM,CAC1B,QAAQ,MAAM,IAAI,CAClB,QAAQ,UAAU,MAAM,EAAE,aAAa,CAAC,CACxC,MAAM;;;
|
|
1
|
+
{"version":3,"file":"format.js","names":[],"sources":["../../../src/react/lib/format.ts"],"sourcesContent":["/**\n * Formats numeric values based on field name context\n * @param value - The numeric value to format\n * @param fieldName - The field name to determine formatting\n * @returns Formatted string representation\n * @example\n * formatChartValue(1234.56, \"cost\") // \"$1,234.56\"\n * formatChartValue(5000, \"users\") // \"5.0k\"\n * formatChartValue(42.7, \"percentage\") // \"42.7\"\n */\nexport function formatChartValue(value: number, fieldName: string): string {\n if (\n fieldName.toLowerCase().includes(\"cost\") ||\n fieldName.toLowerCase().includes(\"price\") ||\n fieldName.toLowerCase().includes(\"spend\") ||\n fieldName.toLowerCase().includes(\"revenue\") ||\n fieldName.toLowerCase().includes(\"usd\")\n ) {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }).format(value);\n }\n\n if (value >= 1000) {\n return new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n maximumFractionDigits: 1,\n }).format(value);\n }\n\n return value.toLocaleString(\"en-US\", {\n maximumFractionDigits: 2,\n });\n}\n\n/**\n * Converts field names to human-readable labels\n * @param field - Field name in camelCase or snake_case\n * @returns Formatted label with proper capitalization\n * @example\n * formatFieldLabel(\"totalCost\") // \"Total Cost\"\n * formatFieldLabel(\"user_name\") // \"User Name\"\n * formatFieldLabel(\"revenue\") // \"Revenue\"\n */\nexport function formatFieldLabel(field: string): string {\n const safe = field.replace(/[^a-zA-Z0-9_-]/g, \"\");\n return safe\n .replace(/([A-Z])/g, \" $1\")\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (l) => l.toUpperCase())\n .trim();\n}\n\n/**\n * Formats byte values into human-readable file sizes\n * @param bytes - The file size in bytes\n * @returns Formatted string (e.g., \"1.5 KB\", \"3.2 MB\")\n * @example\n * formatFileSize(512) // \"512 B\"\n * formatFileSize(1536) // \"1.5 KB\"\n * formatFileSize(2621440) // \"2.5 MB\"\n */\nexport function formatFileSize(bytes: number | undefined): string {\n if (bytes === undefined || bytes === null) return \"Unknown\";\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024)\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n}\n\n/** Regex for validating field names */\nexport const SAFE_KEY_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,iBAAiB,OAAe,WAA2B;AACzE,KACE,UAAU,aAAa,CAAC,SAAS,OAAO,IACxC,UAAU,aAAa,CAAC,SAAS,QAAQ,IACzC,UAAU,aAAa,CAAC,SAAS,QAAQ,IACzC,UAAU,aAAa,CAAC,SAAS,UAAU,IAC3C,UAAU,aAAa,CAAC,SAAS,MAAM,CAEvC,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,OAAO;EACP,UAAU;EACV,uBAAuB;EACvB,uBAAuB;EACxB,CAAC,CAAC,OAAO,MAAM;AAGlB,KAAI,SAAS,IACX,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,UAAU;EACV,uBAAuB;EACxB,CAAC,CAAC,OAAO,MAAM;AAGlB,QAAO,MAAM,eAAe,SAAS,EACnC,uBAAuB,GACxB,CAAC;;;;;;;;;;;AAYJ,SAAgB,iBAAiB,OAAuB;AAEtD,QADa,MAAM,QAAQ,mBAAmB,GAAG,CAE9C,QAAQ,YAAY,MAAM,CAC1B,QAAQ,MAAM,IAAI,CAClB,QAAQ,UAAU,MAAM,EAAE,aAAa,CAAC,CACxC,MAAM;;;;;;;;;;;AAYX,SAAgB,eAAe,OAAmC;AAChE,KAAI,UAAU,UAAa,UAAU,KAAM,QAAO;AAClD,KAAI,QAAQ,KAAM,QAAO,GAAG,MAAM;AAClC,KAAI,QAAQ,OAAO,KAAM,QAAO,IAAI,QAAQ,MAAM,QAAQ,EAAE,CAAC;AAC7D,KAAI,QAAQ,OAAO,OAAO,KACxB,QAAO,IAAI,SAAS,OAAO,OAAO,QAAQ,EAAE,CAAC;AAC/C,QAAO,IAAI,SAAS,OAAO,OAAO,OAAO,QAAQ,EAAE,CAAC;;;AAItD,MAAa,iBAAiB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { formatFieldLabel } from "../lib/format.js";
|
|
1
2
|
import { Button } from "../ui/button.js";
|
|
2
3
|
import { Table as Table$1, TableBody, TableCell, TableHead, TableHeader, TableRow } from "../ui/table.js";
|
|
3
|
-
import { formatFieldLabel } from "../lib/format.js";
|
|
4
4
|
import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger } from "../ui/dropdown-menu.js";
|
|
5
5
|
import { Input } from "../ui/input.js";
|
|
6
6
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useAnalyticsQuery } from "../hooks/use-analytics-query.js";
|
|
2
|
-
import { Button } from "../ui/button.js";
|
|
3
2
|
import { SAFE_KEY_REGEX, formatChartValue, formatFieldLabel } from "../lib/format.js";
|
|
3
|
+
import { Button } from "../ui/button.js";
|
|
4
4
|
import { Checkbox } from "../ui/checkbox.js";
|
|
5
5
|
import { EmptyState } from "./empty.js";
|
|
6
6
|
import { ErrorState } from "./error.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
4
3
|
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
4
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
5
5
|
|
|
6
6
|
//#region src/react/ui/breadcrumb.tsx
|
|
7
7
|
/** Navigation component showing the current page's location in the site hierarchy */
|
package/dist/react/ui/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Button, buttonVariants } from "./button.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
|
|
3
3
|
import { Skeleton } from "./skeleton.js";
|
|
4
|
+
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
|
|
5
|
+
import { ScrollArea, ScrollBar } from "./scroll-area.js";
|
|
4
6
|
import { Spinner } from "./spinner.js";
|
|
5
7
|
import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
|
|
6
|
-
import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
|
|
7
8
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table.js";
|
|
8
9
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "./tabs.js";
|
|
9
10
|
import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./dropdown-menu.js";
|
|
@@ -15,7 +16,6 @@ import { Alert, AlertDescription, AlertTitle } from "./alert.js";
|
|
|
15
16
|
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from "./alert-dialog.js";
|
|
16
17
|
import { AspectRatio } from "./aspect-ratio.js";
|
|
17
18
|
import { Badge, badgeVariants } from "./badge.js";
|
|
18
|
-
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
|
|
19
19
|
import { Separator } from "./separator.js";
|
|
20
20
|
import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants } from "./button-group.js";
|
|
21
21
|
import { Calendar, CalendarDayButton } from "./calendar.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../lib/utils.js";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { cva } from "class-variance-authority";
|
|
4
3
|
import { ChevronDownIcon } from "lucide-react";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
5
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
6
6
|
|
|
7
7
|
//#region src/react/ui/navigation-menu.tsx
|
package/dist/react/ui/sidebar.js
CHANGED
|
@@ -10,9 +10,9 @@ import { useIsMobile } from "../hooks/use-mobile.js";
|
|
|
10
10
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
|
|
11
11
|
import * as React$1 from "react";
|
|
12
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { PanelLeftIcon } from "lucide-react";
|
|
13
14
|
import { Slot } from "@radix-ui/react-slot";
|
|
14
15
|
import { cva } from "class-variance-authority";
|
|
15
|
-
import { PanelLeftIcon } from "lucide-react";
|
|
16
16
|
|
|
17
17
|
//#region src/react/ui/sidebar.tsx
|
|
18
18
|
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
@@ -32,7 +32,6 @@ const myManifest: PluginManifest = {
|
|
|
32
32
|
|
|
33
33
|
class MyPlugin extends Plugin<MyConfig> {
|
|
34
34
|
static manifest = myManifest;
|
|
35
|
-
name = 'myPlugin';
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
```
|
|
@@ -56,8 +55,7 @@ const myManifest: PluginManifest = {
|
|
|
56
55
|
};
|
|
57
56
|
|
|
58
57
|
class MyPlugin extends Plugin<MyConfig> {
|
|
59
|
-
static manifest = myManifest
|
|
60
|
-
name = 'myPlugin';
|
|
58
|
+
static manifest = myManifest<"myPlugin">;
|
|
61
59
|
|
|
62
60
|
// Runtime method: converts optional resources to required based on config
|
|
63
61
|
static getResourceRequirements(config: MyConfig) {
|
|
@@ -253,7 +251,7 @@ A proxied plugin instance that executes as the user
|
|
|
253
251
|
|
|
254
252
|
#### Throws[](#throws "Direct link to Throws")
|
|
255
253
|
|
|
256
|
-
|
|
254
|
+
AuthenticationError if user token is not available in request headers (production only). In development mode (`NODE_ENV=development`), falls back to the service principal instead of throwing.
|
|
257
255
|
|
|
258
256
|
***
|
|
259
257
|
|
|
@@ -267,6 +265,10 @@ userKey?: string): Promise<T | undefined>;
|
|
|
267
265
|
|
|
268
266
|
```
|
|
269
267
|
|
|
268
|
+
Execute a function with the plugin's interceptor chain.
|
|
269
|
+
|
|
270
|
+
All errors are caught and `undefined` is returned (production-safe). Route handlers should check for `undefined` and respond with an appropriate error status.
|
|
271
|
+
|
|
270
272
|
#### Type Parameters[](#type-parameters-1 "Direct link to Type Parameters")
|
|
271
273
|
|
|
272
274
|
| Type Parameter |
|
|
@@ -338,7 +340,6 @@ The returned object becomes the plugin's public API on the AppKit instance (e.g.
|
|
|
338
340
|
|
|
339
341
|
```ts
|
|
340
342
|
class MyPlugin extends Plugin {
|
|
341
|
-
name = "myPlugin";
|
|
342
343
|
private getData() { return []; }
|
|
343
344
|
|
|
344
345
|
exports() {
|
|
@@ -381,6 +382,26 @@ BasePlugin.getEndpoints
|
|
|
381
382
|
|
|
382
383
|
***
|
|
383
384
|
|
|
385
|
+
### getSkipBodyParsingPaths()[](#getskipbodyparsingpaths "Direct link to getSkipBodyParsingPaths()")
|
|
386
|
+
|
|
387
|
+
```ts
|
|
388
|
+
getSkipBodyParsingPaths(): ReadonlySet<string>;
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
#### Returns[](#returns-7 "Direct link to Returns")
|
|
393
|
+
|
|
394
|
+
`ReadonlySet`<`string`>
|
|
395
|
+
|
|
396
|
+
#### Implementation of[](#implementation-of-4 "Direct link to Implementation of")
|
|
397
|
+
|
|
398
|
+
```ts
|
|
399
|
+
BasePlugin.getSkipBodyParsingPaths
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
***
|
|
404
|
+
|
|
384
405
|
### injectRoutes()[](#injectroutes "Direct link to injectRoutes()")
|
|
385
406
|
|
|
386
407
|
```ts
|
|
@@ -394,11 +415,11 @@ injectRoutes(_: Router): void;
|
|
|
394
415
|
| --------- | -------- |
|
|
395
416
|
| `_` | `Router` |
|
|
396
417
|
|
|
397
|
-
#### Returns[](#returns-
|
|
418
|
+
#### Returns[](#returns-8 "Direct link to Returns")
|
|
398
419
|
|
|
399
420
|
`void`
|
|
400
421
|
|
|
401
|
-
#### Implementation of[](#implementation-of-
|
|
422
|
+
#### Implementation of[](#implementation-of-5 "Direct link to Implementation of")
|
|
402
423
|
|
|
403
424
|
```ts
|
|
404
425
|
BasePlugin.injectRoutes
|
|
@@ -421,12 +442,39 @@ protected registerEndpoint(name: string, path: string): void;
|
|
|
421
442
|
| `name` | `string` |
|
|
422
443
|
| `path` | `string` |
|
|
423
444
|
|
|
424
|
-
#### Returns[](#returns-
|
|
445
|
+
#### Returns[](#returns-9 "Direct link to Returns")
|
|
425
446
|
|
|
426
447
|
`void`
|
|
427
448
|
|
|
428
449
|
***
|
|
429
450
|
|
|
451
|
+
### resolveUserId()[](#resolveuserid "Direct link to resolveUserId()")
|
|
452
|
+
|
|
453
|
+
```ts
|
|
454
|
+
protected resolveUserId(req: Request): string;
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Resolve the effective user ID from a request.
|
|
459
|
+
|
|
460
|
+
Returns the `x-forwarded-user` header when present. In development mode (`NODE_ENV=development`) falls back to the current context user ID so that callers outside an active `runInUserContext` scope still get a consistent value.
|
|
461
|
+
|
|
462
|
+
#### Parameters[](#parameters-6 "Direct link to Parameters")
|
|
463
|
+
|
|
464
|
+
| Parameter | Type |
|
|
465
|
+
| --------- | --------- |
|
|
466
|
+
| `req` | `Request` |
|
|
467
|
+
|
|
468
|
+
#### Returns[](#returns-10 "Direct link to Returns")
|
|
469
|
+
|
|
470
|
+
`string`
|
|
471
|
+
|
|
472
|
+
#### Throws[](#throws-1 "Direct link to Throws")
|
|
473
|
+
|
|
474
|
+
AuthenticationError in production when no user header is present.
|
|
475
|
+
|
|
476
|
+
***
|
|
477
|
+
|
|
430
478
|
### route()[](#route "Direct link to route()")
|
|
431
479
|
|
|
432
480
|
```ts
|
|
@@ -440,14 +488,14 @@ protected route<_TResponse>(router: Router, config: RouteConfig): void;
|
|
|
440
488
|
| -------------- |
|
|
441
489
|
| `_TResponse` |
|
|
442
490
|
|
|
443
|
-
#### Parameters[](#parameters-
|
|
491
|
+
#### Parameters[](#parameters-7 "Direct link to Parameters")
|
|
444
492
|
|
|
445
493
|
| Parameter | Type |
|
|
446
494
|
| --------- | ------------- |
|
|
447
495
|
| `router` | `Router` |
|
|
448
496
|
| `config` | `RouteConfig` |
|
|
449
497
|
|
|
450
|
-
#### Returns[](#returns-
|
|
498
|
+
#### Returns[](#returns-11 "Direct link to Returns")
|
|
451
499
|
|
|
452
500
|
`void`
|
|
453
501
|
|
|
@@ -460,11 +508,11 @@ setup(): Promise<void>;
|
|
|
460
508
|
|
|
461
509
|
```
|
|
462
510
|
|
|
463
|
-
#### Returns[](#returns-
|
|
511
|
+
#### Returns[](#returns-12 "Direct link to Returns")
|
|
464
512
|
|
|
465
513
|
`Promise`<`void`>
|
|
466
514
|
|
|
467
|
-
#### Implementation of[](#implementation-of-
|
|
515
|
+
#### Implementation of[](#implementation-of-6 "Direct link to Implementation of")
|
|
468
516
|
|
|
469
517
|
```ts
|
|
470
518
|
BasePlugin.setup
|
|
@@ -43,9 +43,9 @@ Collects and registers resource requirements from an array of plugins. For each
|
|
|
43
43
|
|
|
44
44
|
#### Parameters[](#parameters "Direct link to Parameters")
|
|
45
45
|
|
|
46
|
-
| Parameter | Type
|
|
47
|
-
| ------------ |
|
|
48
|
-
| `rawPlugins` | `PluginData
|
|
46
|
+
| Parameter | Type | Description |
|
|
47
|
+
| ------------ | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- |
|
|
48
|
+
| `rawPlugins` | [`PluginData`](./docs/api/appkit/TypeAlias.PluginData.md)<`PluginConstructor`, `unknown`, `string`>\[] | Array of plugin data entries from createApp configuration |
|
|
49
49
|
|
|
50
50
|
#### Returns[](#returns-2 "Direct link to Returns")
|
|
51
51
|
|
|
@@ -16,9 +16,9 @@ Initializes telemetry, cache, and service context, then registers plugins in pha
|
|
|
16
16
|
|
|
17
17
|
## Type Parameters[](#type-parameters "Direct link to Type Parameters")
|
|
18
18
|
|
|
19
|
-
| Type Parameter
|
|
20
|
-
|
|
|
21
|
-
| `T` *extends* `PluginData
|
|
19
|
+
| Type Parameter |
|
|
20
|
+
| -------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
+
| `T` *extends* [`PluginData`](./docs/api/appkit/TypeAlias.PluginData.md)<`PluginConstructor`, `unknown`, `string`>\[] |
|
|
22
22
|
|
|
23
23
|
## Parameters[](#parameters "Direct link to Parameters")
|
|
24
24
|
|