@visulima/dev-toolbar 1.0.0-alpha.1 → 1.0.0-alpha.10
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/CHANGELOG.md +218 -0
- package/LICENSE.md +116 -5
- package/README.md +70 -43
- package/bin/mcp.js +29 -0
- package/dist/apps/a11y/a11y-app.d.ts +0 -1
- package/dist/apps/a11y/a11y-store.d.ts +12 -16
- package/dist/apps/a11y/a11y-tooltip.d.ts +1 -2
- package/dist/apps/a11y/index.js +3 -3
- package/dist/apps/annotations/annotations-app.d.ts +4 -0
- package/dist/apps/annotations/index.d.ts +3 -0
- package/dist/apps/annotations/index.js +18 -0
- package/dist/apps/assets/assets-app.d.ts +4 -0
- package/dist/apps/assets/index.d.ts +3 -0
- package/dist/apps/assets/index.js +16 -0
- package/dist/apps/inspector/a11y-capture.d.ts +12 -0
- package/dist/apps/inspector/annotation-overlay.d.ts +55 -0
- package/dist/apps/inspector/annotation-settings.d.ts +33 -0
- package/dist/apps/inspector/element-utils.d.ts +115 -0
- package/dist/apps/inspector/freeze-animations.d.ts +22 -0
- package/dist/apps/inspector/index.d.ts +3 -0
- package/dist/apps/inspector/index.js +30 -0
- package/dist/apps/inspector/inspector-app.d.ts +14 -0
- package/dist/apps/inspector/rulers.d.ts +14 -0
- package/dist/apps/inspector/theme-palette.d.ts +34 -0
- package/dist/apps/module-graph/index.js +2 -2
- package/dist/apps/module-graph/module-graph-app.d.ts +0 -1
- package/dist/apps/performance/index.js +2 -2
- package/dist/apps/performance/performance-app.d.ts +0 -1
- package/dist/apps/performance/performance-tooltip.d.ts +0 -1
- package/dist/apps/seo/index.js +2 -2
- package/dist/apps/seo/seo-app.d.ts +0 -1
- package/dist/apps/settings/index.js +2 -2
- package/dist/apps/settings/settings-app.d.ts +0 -1
- package/dist/apps/tailwind/index.d.ts +3 -0
- package/dist/apps/tailwind/index.js +7 -0
- package/dist/apps/tailwind/tailwind-app.d.ts +4 -0
- package/dist/apps/timeline/index.js +2 -2
- package/dist/apps/timeline/timeline-app.d.ts +0 -1
- package/dist/apps/vite-config/index.js +2 -2
- package/dist/apps/vite-config/vite-config-app.d.ts +0 -1
- package/dist/client/overlay.js +1 -1
- package/dist/hooks/create-hook.d.ts +7 -5
- package/dist/hooks/events.d.ts +4 -2
- package/dist/hooks/global-hook.d.ts +6 -6
- package/dist/index.d.ts +4 -2
- package/dist/index.js +1 -1
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.js +1 -0
- package/dist/packem_chunks/inject-source.js +9 -0
- package/dist/packem_shared/Alert-D2CvX4fw.js +1 -0
- package/dist/packem_shared/Badge-BEgU04nl.js +1 -0
- package/dist/packem_shared/Button-Bkx66Co7.js +1 -0
- package/dist/packem_shared/Card-CJa4vHVc.js +1 -0
- package/dist/packem_shared/Icon-B6UHkC0o.js +1 -0
- package/dist/packem_shared/Input-Cs6aduTi.js +1 -0
- package/dist/packem_shared/Label-DyCng4Cp.js +1 -0
- package/dist/packem_shared/Popover-BtFVaZYg.js +1 -0
- package/dist/packem_shared/Progress-DN6zn-0l.js +1 -0
- package/dist/packem_shared/Select-DgQ4ss-s.js +1 -0
- package/dist/packem_shared/Separator-D38mKeZv.js +1 -0
- package/dist/packem_shared/Skeleton-Dv-tcA1P.js +1 -0
- package/dist/packem_shared/Switch-C3NTpeoR.js +1 -0
- package/dist/packem_shared/Tabs-DKWMiawt.js +1 -0
- package/dist/packem_shared/Textarea-Yfg3dLZi.js +1 -0
- package/dist/packem_shared/Tooltip-CioncSXj.js +1 -0
- package/dist/packem_shared/annotation-settings-Bv0TH4WI.js +1 -0
- package/dist/packem_shared/annotation-store-bLQRYMaI.js +1 -0
- package/dist/packem_shared/clsx-wGlvpUfw.js +1 -0
- package/dist/packem_shared/createClientRPCContext-DgRxrllw.js +1 -0
- package/dist/packem_shared/createDevToolbarHook-4bZZiHPI.js +1 -0
- package/dist/packem_shared/createServerRPCContext-D-yZrEjs.js +1 -0
- package/dist/packem_shared/getTimelineStore-B1cfjWV8.js +1 -0
- package/dist/packem_shared/{setupGlobalHook-CFuxsCyl.js → setupGlobalHook-CCf9Logv.js} +1 -1
- package/dist/packem_shared/sharedToolbarStylesheet-CaTdYhVe.js +2 -0
- package/dist/packem_shared/store-DaUtLjf3.js +1 -0
- package/dist/packem_shared/use-frame-state-CxrlPUM5.js +1 -0
- package/dist/packem_shared/use-theme-zpm4zmqP.js +1 -0
- package/dist/performance/monitor.d.ts +27 -26
- package/dist/rpc/client.d.ts +6 -4
- package/dist/rpc/functions/annotations.d.ts +28 -0
- package/dist/rpc/functions/assets.d.ts +16 -0
- package/dist/rpc/functions/module-graph.d.ts +2 -2
- package/dist/rpc/functions/open-in-editor.d.ts +13 -6
- package/dist/rpc/functions/tailwind-config.d.ts +15 -0
- package/dist/rpc/functions/vite-config.d.ts +80 -4
- package/dist/rpc/server.d.ts +11 -5
- package/dist/store/annotation-store.d.ts +41 -0
- package/dist/timeline/capture.d.ts +8 -0
- package/dist/timeline/index.d.ts +3 -1
- package/dist/timeline/store.d.ts +12 -22
- package/dist/toolbar/app-manager.d.ts +49 -40
- package/dist/toolbar/components/app-button.d.ts +2 -3
- package/dist/toolbar/components/app-canvas.d.ts +1 -2
- package/dist/toolbar/components/app-tooltip-overlay.d.ts +0 -1
- package/dist/toolbar/components/first-visit-hint.d.ts +3 -4
- package/dist/toolbar/components/pinned-tooltip-card.d.ts +0 -1
- package/dist/toolbar/components/toolbar-bar.d.ts +1 -7
- package/dist/toolbar/components/toolbar-container.d.ts +2 -8
- package/dist/toolbar/components/vite-overlay-button.d.ts +2 -3
- package/dist/toolbar/context/index.d.ts +1 -1
- package/dist/toolbar/context/toolbar-context.d.ts +43 -42
- package/dist/toolbar/global-api.d.ts +4 -3
- package/dist/toolbar/helpers.d.ts +5 -3
- package/dist/toolbar/hooks/index.d.ts +4 -4
- package/dist/toolbar/hooks/use-apps.d.ts +5 -3
- package/dist/toolbar/hooks/use-frame-state.d.ts +32 -16
- package/dist/toolbar/hooks/use-panel-visible.d.ts +9 -7
- package/dist/toolbar/hooks/use-position.d.ts +7 -5
- package/dist/toolbar/hooks/use-theme.d.ts +6 -4
- package/dist/toolbar/hooks/use-toolbar.d.ts +4 -2
- package/dist/toolbar/index.d.ts +9 -17
- package/dist/toolbar/index.js +3 -4
- package/dist/toolbar/settings.d.ts +7 -7
- package/dist/toolbar/stylesheet.d.ts +3 -1
- package/dist/toolbar/utils/index.d.ts +3 -3
- package/dist/types/annotations.d.ts +156 -0
- package/dist/types/app.d.ts +26 -14
- package/dist/types/global-api.d.ts +27 -31
- package/dist/types/hooks.d.ts +32 -34
- package/dist/types/index.d.ts +1 -0
- package/dist/types/messaging.d.ts +2 -2
- package/dist/types/rpc.d.ts +49 -7
- package/dist/types/timeline.d.ts +3 -3
- package/dist/types/toolbar.d.ts +1 -1
- package/dist/ui/components/alert.d.ts +19 -0
- package/dist/ui/components/badge.d.ts +9 -0
- package/dist/ui/components/button.d.ts +11 -0
- package/dist/ui/components/card.d.ts +16 -0
- package/dist/ui/components/icon.d.ts +5 -7
- package/dist/ui/components/input.d.ts +7 -0
- package/dist/ui/components/label.d.ts +7 -0
- package/dist/ui/components/popover.d.ts +27 -0
- package/dist/ui/components/progress.d.ts +7 -0
- package/dist/ui/components/select.d.ts +54 -0
- package/dist/ui/components/separator.d.ts +8 -0
- package/dist/ui/components/skeleton.d.ts +6 -0
- package/dist/ui/components/switch.d.ts +11 -0
- package/dist/ui/components/tabs.d.ts +28 -0
- package/dist/ui/components/textarea.d.ts +7 -0
- package/dist/ui/components/tooltip.d.ts +19 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.js +1 -0
- package/dist/vite/inject-source.d.ts +24 -0
- package/dist/vite/matcher.d.ts +6 -0
- package/dist/vite-plugin.d.ts +49 -6
- package/dist/vite-plugin.js +5 -2
- package/package.json +51 -12
- package/dist/apps/more/index.d.ts +0 -3
- package/dist/apps/more/index.js +0 -19
- package/dist/apps/more/more-app.d.ts +0 -5
- package/dist/packem_shared/TimelineStore-BgBrirKd.js +0 -1
- package/dist/packem_shared/cn-BEsR6GkP.js +0 -1
- package/dist/packem_shared/createClientRPCContext-DzKQpKTk.js +0 -1
- package/dist/packem_shared/createDevToolbarHook-DGNxqk8N.js +0 -1
- package/dist/packem_shared/createServerRPCContext-BVSesPXu.js +0 -1
- package/dist/packem_shared/icon-BUQ92HaT.js +0 -1
- package/dist/packem_shared/store-BxE0w51s.js +0 -1
- package/dist/rpc/index.d.ts +0 -8
- package/dist/utils/cn.d.ts +0 -8
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentChildren, JSX } from "preact";
|
|
2
|
+
interface CardProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children?: ComponentChildren;
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
interface CardTitleProps extends JSX.HTMLAttributes<HTMLHeadingElement> {
|
|
7
|
+
children?: ComponentChildren;
|
|
8
|
+
class?: string;
|
|
9
|
+
}
|
|
10
|
+
declare const Card: ({ children, class: className, ...rest }: CardProps) => JSX.Element;
|
|
11
|
+
declare const CardHeader: ({ children, class: className, ...rest }: CardProps) => JSX.Element;
|
|
12
|
+
declare const CardTitle: ({ children, class: className, ...rest }: CardTitleProps) => JSX.Element;
|
|
13
|
+
declare const CardDescription: ({ children, class: className, ...rest }: CardProps) => JSX.Element;
|
|
14
|
+
declare const CardContent: ({ children, class: className, ...rest }: CardProps) => JSX.Element;
|
|
15
|
+
declare const CardFooter: ({ children, class: className, ...rest }: CardProps) => JSX.Element;
|
|
16
|
+
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
/** @jsxImportSource preact */
|
|
2
1
|
import type { ComponentChildren } from "preact";
|
|
3
2
|
interface IconProps {
|
|
4
3
|
class?: string;
|
|
5
4
|
size?: number;
|
|
6
5
|
/**
|
|
7
|
-
* CSS data-URI from a `?data-uri&encoding=css` lucide-static import.
|
|
6
|
+
* CSS data-URI from a `?data-uri&encoding=css` lucide-static import.
|
|
8
7
|
* Uses CSS mask-image so the icon inherits currentColor from the parent.
|
|
9
8
|
*/
|
|
10
9
|
src: string;
|
|
@@ -12,10 +11,9 @@ interface IconProps {
|
|
|
12
11
|
/**
|
|
13
12
|
* Renders a lucide-static icon using CSS mask-image.
|
|
14
13
|
* Color is driven by the parent element's `color` property (currentColor).
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* <Icon src={xIcon} size={13} />
|
|
14
|
+
* @example
|
|
15
|
+
* import xIcon from "lucide-static/icons/x.d.ts";
|
|
16
|
+
* <Icon src={xIcon} size={13} />
|
|
19
17
|
*/
|
|
20
|
-
declare const Icon: ({
|
|
18
|
+
declare const Icon: ({ class: className, size, src }: IconProps) => ComponentChildren;
|
|
21
19
|
export default Icon;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JSX } from "preact";
|
|
2
|
+
import type { ForwardRefExoticComponent, RefAttributes } from "preact/compat";
|
|
3
|
+
interface InputProps extends JSX.InputHTMLAttributes {
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
|
|
7
|
+
export default Input;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentChildren, JSX } from "preact";
|
|
2
|
+
interface LabelProps extends JSX.LabelHTMLAttributes {
|
|
3
|
+
children?: ComponentChildren;
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const Label: ({ children, class: className, ...rest }: LabelProps) => JSX.Element;
|
|
7
|
+
export default Label;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ComponentChildren, JSX } from "preact";
|
|
2
|
+
interface PopoverProps {
|
|
3
|
+
children: ComponentChildren;
|
|
4
|
+
defaultOpen?: boolean;
|
|
5
|
+
onOpenChange?: (open: boolean) => void;
|
|
6
|
+
open?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface PopoverTriggerProps extends JSX.ButtonHTMLAttributes {
|
|
9
|
+
children: ComponentChildren;
|
|
10
|
+
class?: string;
|
|
11
|
+
}
|
|
12
|
+
interface PopoverContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
align?: "center" | "end" | "start";
|
|
14
|
+
children: ComponentChildren;
|
|
15
|
+
class?: string;
|
|
16
|
+
side?: "bottom" | "left" | "right" | "top";
|
|
17
|
+
sideOffset?: number;
|
|
18
|
+
}
|
|
19
|
+
interface PopoverCloseProps extends JSX.ButtonHTMLAttributes {
|
|
20
|
+
children?: ComponentChildren;
|
|
21
|
+
class?: string;
|
|
22
|
+
}
|
|
23
|
+
declare const Popover: ({ children, defaultOpen, onOpenChange, open }: PopoverProps) => JSX.Element;
|
|
24
|
+
declare const PopoverTrigger: ({ children, class: className, ...rest }: PopoverTriggerProps) => JSX.Element;
|
|
25
|
+
declare const PopoverContent: ({ align, children, class: className, side, sideOffset, ...rest }: PopoverContentProps) => JSX.Element | undefined;
|
|
26
|
+
declare const PopoverClose: ({ children, class: className, ...rest }: PopoverCloseProps) => JSX.Element;
|
|
27
|
+
export { Popover, PopoverClose, PopoverContent, PopoverTrigger };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JSX } from "preact";
|
|
2
|
+
interface ProgressProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
class?: string;
|
|
4
|
+
value?: number;
|
|
5
|
+
}
|
|
6
|
+
declare const Progress: ({ class: className, value, ...rest }: ProgressProps) => JSX.Element;
|
|
7
|
+
export default Progress;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ComponentChildren, JSX } from "preact";
|
|
2
|
+
interface SelectContextValue {
|
|
3
|
+
highlightedValue: string | null;
|
|
4
|
+
instanceId: string;
|
|
5
|
+
onSelect: (value: string) => void;
|
|
6
|
+
open: boolean;
|
|
7
|
+
search: string;
|
|
8
|
+
setHighlightedValue: (v: string | null) => void;
|
|
9
|
+
setOpen: (v: boolean) => void;
|
|
10
|
+
setSearch: (v: string) => void;
|
|
11
|
+
triggerRef: {
|
|
12
|
+
current: HTMLButtonElement | null;
|
|
13
|
+
};
|
|
14
|
+
value: string;
|
|
15
|
+
}
|
|
16
|
+
declare const useSelectContext: () => SelectContextValue;
|
|
17
|
+
interface SelectOption {
|
|
18
|
+
label: string;
|
|
19
|
+
value: string;
|
|
20
|
+
}
|
|
21
|
+
interface SelectProps {
|
|
22
|
+
children: ComponentChildren;
|
|
23
|
+
onValueChange?: (value: string) => void;
|
|
24
|
+
value?: string;
|
|
25
|
+
}
|
|
26
|
+
interface SelectTriggerProps extends Omit<JSX.ButtonHTMLAttributes, "children"> {
|
|
27
|
+
children: ComponentChildren;
|
|
28
|
+
class?: string;
|
|
29
|
+
}
|
|
30
|
+
interface SelectContentProps {
|
|
31
|
+
align?: "center" | "end" | "start";
|
|
32
|
+
children: ComponentChildren;
|
|
33
|
+
class?: string;
|
|
34
|
+
searchable?: boolean;
|
|
35
|
+
side?: "bottom" | "top";
|
|
36
|
+
sideOffset?: number;
|
|
37
|
+
}
|
|
38
|
+
interface SelectItemProps {
|
|
39
|
+
children: ComponentChildren;
|
|
40
|
+
class?: string;
|
|
41
|
+
value: string;
|
|
42
|
+
}
|
|
43
|
+
interface SelectValueProps {
|
|
44
|
+
class?: string;
|
|
45
|
+
options: SelectOption[];
|
|
46
|
+
placeholder?: string;
|
|
47
|
+
}
|
|
48
|
+
declare const Select: ({ children, onValueChange, value }: SelectProps) => JSX.Element;
|
|
49
|
+
declare const SelectTrigger: ({ children, class: className, ...rest }: SelectTriggerProps) => JSX.Element;
|
|
50
|
+
declare const SelectValue: ({ class: className, options, placeholder }: SelectValueProps) => JSX.Element;
|
|
51
|
+
declare const SelectContent: ({ align, children, class: className, searchable, side, sideOffset, }: SelectContentProps) => JSX.Element | undefined;
|
|
52
|
+
declare const SelectItem: ({ children, class: className, value: itemValue }: SelectItemProps) => JSX.Element;
|
|
53
|
+
export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, useSelectContext };
|
|
54
|
+
export type { SelectOption };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JSX } from "preact";
|
|
2
|
+
interface SeparatorProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
class?: string;
|
|
4
|
+
decorative?: boolean;
|
|
5
|
+
orientation?: "horizontal" | "vertical";
|
|
6
|
+
}
|
|
7
|
+
declare const Separator: ({ class: className, decorative, orientation, ...rest }: SeparatorProps) => JSX.Element;
|
|
8
|
+
export default Separator;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { JSX } from "preact";
|
|
2
|
+
interface SwitchProps extends Omit<JSX.ButtonHTMLAttributes, "onChange"> {
|
|
3
|
+
checked?: boolean;
|
|
4
|
+
class?: string;
|
|
5
|
+
defaultChecked?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
id?: string;
|
|
8
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const Switch: ({ checked, class: className, defaultChecked, disabled, id, onCheckedChange, ...rest }: SwitchProps) => JSX.Element;
|
|
11
|
+
export default Switch;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ComponentChildren, JSX } from "preact";
|
|
2
|
+
interface TabsProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children?: ComponentChildren;
|
|
4
|
+
class?: string;
|
|
5
|
+
defaultValue?: string;
|
|
6
|
+
onValueChange?: (value: string) => void;
|
|
7
|
+
value?: string;
|
|
8
|
+
}
|
|
9
|
+
interface TabsListProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
children?: ComponentChildren;
|
|
11
|
+
class?: string;
|
|
12
|
+
}
|
|
13
|
+
interface TabsTriggerProps extends JSX.ButtonHTMLAttributes {
|
|
14
|
+
children?: ComponentChildren;
|
|
15
|
+
class?: string;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
value: string;
|
|
18
|
+
}
|
|
19
|
+
interface TabsContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
20
|
+
children?: ComponentChildren;
|
|
21
|
+
class?: string;
|
|
22
|
+
value: string;
|
|
23
|
+
}
|
|
24
|
+
declare const Tabs: ({ children, class: className, defaultValue, onValueChange, value, ...rest }: TabsProps) => JSX.Element;
|
|
25
|
+
declare const TabsList: ({ children, class: className, ...rest }: TabsListProps) => JSX.Element;
|
|
26
|
+
declare const TabsTrigger: ({ children, class: className, disabled, value, ...rest }: TabsTriggerProps) => JSX.Element;
|
|
27
|
+
declare const TabsContent: ({ children, class: className, value, ...rest }: TabsContentProps) => JSX.Element | undefined;
|
|
28
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JSX } from "preact";
|
|
2
|
+
import type { ForwardRefExoticComponent, RefAttributes } from "preact/compat";
|
|
3
|
+
interface TextareaProps extends JSX.TextareaHTMLAttributes {
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const Textarea: ForwardRefExoticComponent<RefAttributes<HTMLTextAreaElement> & TextareaProps>;
|
|
7
|
+
export default Textarea;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ComponentChildren, JSX } from "preact";
|
|
2
|
+
interface TooltipProps {
|
|
3
|
+
children: ComponentChildren;
|
|
4
|
+
delayDuration?: number;
|
|
5
|
+
}
|
|
6
|
+
interface TooltipTriggerProps extends JSX.HTMLAttributes<HTMLSpanElement> {
|
|
7
|
+
children: ComponentChildren;
|
|
8
|
+
class?: string;
|
|
9
|
+
}
|
|
10
|
+
interface TooltipContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
children: ComponentChildren;
|
|
12
|
+
class?: string;
|
|
13
|
+
side?: "bottom" | "left" | "right" | "top";
|
|
14
|
+
sideOffset?: number;
|
|
15
|
+
}
|
|
16
|
+
declare const Tooltip: ({ children, delayDuration: _delayDuration }: TooltipProps) => JSX.Element;
|
|
17
|
+
declare const TooltipTrigger: ({ children, class: className, ...rest }: TooltipTriggerProps) => JSX.Element;
|
|
18
|
+
declare const TooltipContent: ({ children, class: className, side, sideOffset, ...rest }: TooltipContentProps) => JSX.Element | undefined;
|
|
19
|
+
export { Tooltip, TooltipContent, TooltipTrigger };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { Alert, AlertDescription, AlertTitle } from "./components/alert.d.ts";
|
|
2
|
+
export { default as Badge } from "./components/badge.d.ts";
|
|
3
|
+
export { default as Button } from "./components/button.d.ts";
|
|
4
|
+
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./components/card.d.ts";
|
|
5
|
+
export { default as Icon } from "./components/icon.d.ts";
|
|
6
|
+
export { default as Input } from "./components/input.d.ts";
|
|
7
|
+
export { default as Label } from "./components/label.d.ts";
|
|
8
|
+
export { Popover, PopoverClose, PopoverContent, PopoverTrigger } from "./components/popover.d.ts";
|
|
9
|
+
export { default as Progress } from "./components/progress.d.ts";
|
|
10
|
+
export type { SelectOption } from "./components/select.d.ts";
|
|
11
|
+
export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, useSelectContext } from "./components/select.d.ts";
|
|
12
|
+
export { default as Separator } from "./components/separator.d.ts";
|
|
13
|
+
export { default as Skeleton } from "./components/skeleton.d.ts";
|
|
14
|
+
export { default as Switch } from "./components/switch.d.ts";
|
|
15
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger } from "./components/tabs.d.ts";
|
|
16
|
+
export { default as Textarea } from "./components/textarea.d.ts";
|
|
17
|
+
export { Tooltip, TooltipContent, TooltipTrigger } from "./components/tooltip.d.ts";
|
|
18
|
+
export { clsx } from "clsx";
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Alert as o,AlertDescription as r,AlertTitle as a}from"../packem_shared/Alert-D2CvX4fw.js";import{default as p}from"../packem_shared/Badge-BEgU04nl.js";import{default as s}from"../packem_shared/Button-Bkx66Co7.js";import{Card as d,CardContent as m,CardDescription as n,CardFooter as i,CardHeader as u,CardTitle as T}from"../packem_shared/Card-CJa4vHVc.js";import{default as c}from"../packem_shared/Icon-B6UHkC0o.js";import{default as S}from"../packem_shared/Input-Cs6aduTi.js";import{default as P}from"../packem_shared/Label-DyCng4Cp.js";import{Popover as A,PopoverClose as I,PopoverContent as B,PopoverTrigger as D}from"../packem_shared/Popover-BtFVaZYg.js";import{default as h}from"../packem_shared/Progress-DN6zn-0l.js";import{Select as w,SelectContent as F,SelectItem as H,SelectTrigger as V,SelectValue as j,useSelectContext as q}from"../packem_shared/Select-DgQ4ss-s.js";import{default as z}from"../packem_shared/Separator-D38mKeZv.js";import{default as G}from"../packem_shared/Skeleton-Dv-tcA1P.js";import{default as K}from"../packem_shared/Switch-C3NTpeoR.js";import{Tabs as N,TabsContent as O,TabsList as Q,TabsTrigger as R}from"../packem_shared/Tabs-DKWMiawt.js";import{default as W}from"../packem_shared/Textarea-Yfg3dLZi.js";import{Tooltip as Y,TooltipContent as Z,TooltipTrigger as _}from"../packem_shared/Tooltip-CioncSXj.js";import{clsx as ee}from"../packem_shared/clsx-wGlvpUfw.js";export{o as Alert,r as AlertDescription,a as AlertTitle,p as Badge,s as Button,d as Card,m as CardContent,n as CardDescription,i as CardFooter,u as CardHeader,T as CardTitle,c as Icon,S as Input,P as Label,A as Popover,I as PopoverClose,B as PopoverContent,D as PopoverTrigger,h as Progress,w as Select,F as SelectContent,H as SelectItem,V as SelectTrigger,j as SelectValue,z as Separator,G as Skeleton,K as Switch,N as Tabs,O as TabsContent,Q as TabsList,R as TabsTrigger,W as Textarea,Y as Tooltip,Z as TooltipContent,_ as TooltipTrigger,ee as clsx,q as useSelectContext};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import generate from "@babel/generator";
|
|
2
|
+
declare const gen: typeof generate;
|
|
3
|
+
export declare const SOURCE_ATTR = "data-vdt-source";
|
|
4
|
+
export interface InjectSourceIgnore {
|
|
5
|
+
/** Component names or patterns to skip. */
|
|
6
|
+
components?: (RegExp | string)[];
|
|
7
|
+
/** File paths or patterns to skip. */
|
|
8
|
+
files?: (RegExp | string)[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Inject `data-vdt-source="<file>:<line>:<col>"` into every JSX opening element
|
|
12
|
+
* in the given source code, enabling the inspector to resolve elements back to
|
|
13
|
+
* their source location.
|
|
14
|
+
*
|
|
15
|
+
* Pass `originalCode` when the received `code` may have been pre-processed by an
|
|
16
|
+
* SSR pipeline (e.g. Vinxi / TanStack Start) that shifts JSX line numbers relative
|
|
17
|
+
* to the source file on disk. Positions are then read from `originalCode` but
|
|
18
|
+
* injected into `code`'s AST, ensuring server and client produce identical
|
|
19
|
+
* attribute values and React hydration never reports a mismatch.
|
|
20
|
+
*
|
|
21
|
+
* Returns `undefined` when the file was skipped or contained no JSX to transform.
|
|
22
|
+
*/
|
|
23
|
+
export declare const addSourceToJsx: (code: string, id: string, ignore?: InjectSourceIgnore, originalCode?: string) => ReturnType<typeof gen> | undefined;
|
|
24
|
+
export {};
|
package/dist/vite-plugin.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Plugin } from "vite";
|
|
2
2
|
import type { DevToolbarApp, ServerFunctions } from "./types/index.d.ts";
|
|
3
|
+
import type { InjectSourceIgnore } from "./vite/inject-source.d.ts";
|
|
3
4
|
/**
|
|
4
5
|
* Dev toolbar plugin options
|
|
5
6
|
*/
|
|
@@ -9,19 +10,26 @@ export interface DevToolbarOptions {
|
|
|
9
10
|
* useful for projects that do not use html file as an entry
|
|
10
11
|
*
|
|
11
12
|
* WARNING: only set this if you know exactly what it does.
|
|
12
|
-
* @default
|
|
13
|
+
* @default Empty string (disabled).
|
|
13
14
|
*/
|
|
14
15
|
appendTo?: string | RegExp;
|
|
15
16
|
/**
|
|
16
|
-
* Built-in apps to enable
|
|
17
|
+
* Built-in apps to enable. All apps are disabled by default — only
|
|
18
|
+
* `viteConfig`, `settings`, and the "more" drawer are shown out of the box.
|
|
19
|
+
* Explicitly set an app to `true` to enable it.
|
|
20
|
+
* @example { inspector: true, seo: true }
|
|
17
21
|
*/
|
|
18
22
|
apps?: {
|
|
19
23
|
[key: string]: boolean | undefined;
|
|
20
24
|
a11y?: boolean;
|
|
25
|
+
annotations?: boolean;
|
|
26
|
+
assets?: boolean;
|
|
27
|
+
inspector?: boolean;
|
|
21
28
|
moduleGraph?: boolean;
|
|
22
29
|
performance?: boolean;
|
|
23
30
|
seo?: boolean;
|
|
24
31
|
settings?: boolean;
|
|
32
|
+
tailwind?: boolean;
|
|
25
33
|
timeline?: boolean;
|
|
26
34
|
viteConfig?: boolean;
|
|
27
35
|
};
|
|
@@ -38,20 +46,47 @@ export interface DevToolbarOptions {
|
|
|
38
46
|
* Whether toolbar is visible by default
|
|
39
47
|
*/
|
|
40
48
|
defaultVisible?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* The editor to open when clicking "Open in editor" in the inspector.
|
|
51
|
+
* Accepts any value supported by `launch-editor` — an editor name/alias
|
|
52
|
+
* (e.g. `"code"`, `"webstorm"`, `"vim"`, `"atom"`) or the full path to
|
|
53
|
+
* the editor executable.
|
|
54
|
+
*
|
|
55
|
+
* If omitted, `launch-editor` auto-detects the editor from the `EDITOR`
|
|
56
|
+
* / `VISUAL` environment variables or from the currently running IDE
|
|
57
|
+
* process detected on the OS process list.
|
|
58
|
+
* @example "webstorm"
|
|
59
|
+
* @example "code"
|
|
60
|
+
*/
|
|
61
|
+
editor?: string;
|
|
41
62
|
/**
|
|
42
63
|
* Initial panel height as a percentage of the viewport height (20–95).
|
|
43
64
|
* @default 60
|
|
44
65
|
*/
|
|
45
66
|
height?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Inject `data-vdt-source="<file>:<line>:<col>"` attributes into every JSX
|
|
69
|
+
* opening element during development. This lets the inspector jump directly
|
|
70
|
+
* to the source file when an element is clicked.
|
|
71
|
+
*
|
|
72
|
+
* Only active when `mode === 'development'`. Set `enabled: false` to opt out.
|
|
73
|
+
* Use `ignore.files` / `ignore.components` to exclude specific paths or
|
|
74
|
+
* component names (strings are treated as glob patterns).
|
|
75
|
+
* @default { enabled: true }
|
|
76
|
+
*/
|
|
77
|
+
injectSource?: {
|
|
78
|
+
enabled?: boolean;
|
|
79
|
+
ignore?: InjectSourceIgnore;
|
|
80
|
+
};
|
|
46
81
|
/**
|
|
47
82
|
* Keyboard shortcut bindings.
|
|
48
83
|
* These are project-level defaults; users can still override them via the
|
|
49
84
|
* Settings app (stored in localStorage).
|
|
50
85
|
*/
|
|
51
86
|
keybindings?: {
|
|
52
|
-
/** Close active app / panel.
|
|
87
|
+
/** Close active app / panel. \@default "Escape" */
|
|
53
88
|
close?: string;
|
|
54
|
-
/** Toggle the DevTools panel open/closed.
|
|
89
|
+
/** Toggle the DevTools panel open/closed. \@default "Alt+Shift+D" */
|
|
55
90
|
toggle?: string;
|
|
56
91
|
};
|
|
57
92
|
/**
|
|
@@ -77,6 +112,14 @@ export interface DevToolbarOptions {
|
|
|
77
112
|
* @default false
|
|
78
113
|
*/
|
|
79
114
|
reduceMotion?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Strip all \@visulima/dev-toolbar imports and virtual modules when building
|
|
117
|
+
* for production (i.e. when `command !== 'serve'` or `mode === 'production'`).
|
|
118
|
+
* This guarantees the toolbar never ends up in a production bundle even if the
|
|
119
|
+
* user accidentally imports our package in application code.
|
|
120
|
+
* @default true
|
|
121
|
+
*/
|
|
122
|
+
removeDevtoolsOnBuild?: boolean;
|
|
80
123
|
/**
|
|
81
124
|
* Only activate the toolbar when the URL contains a specific query parameter.
|
|
82
125
|
* Useful for staging/production environments where you want opt-in debugging.
|
|
@@ -101,6 +144,6 @@ export interface DevToolbarOptions {
|
|
|
101
144
|
width?: number;
|
|
102
145
|
}
|
|
103
146
|
/**
|
|
104
|
-
*
|
|
147
|
+
* Returns the Vite plugin array for the dev toolbar.
|
|
105
148
|
*/
|
|
106
|
-
export declare const devToolbar: (options?: DevToolbarOptions) => Plugin;
|
|
149
|
+
export declare const devToolbar: (options?: DevToolbarOptions) => Plugin[];
|
package/dist/vite-plugin.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
var
|
|
2
|
-
${
|
|
1
|
+
var O=Object.defineProperty;var g=(e,r)=>O(e,"name",{value:r,configurable:!0});import{createRequire as x}from"node:module";import{normalizePath as I}from"vite";import{createServerRPCContext as k}from"./packem_shared/createServerRPCContext-D-yZrEjs.js";const F=x(import.meta.url),d=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,b=g(e=>{if(typeof d<"u"&&d.versions&&d.versions.node){const[r,f]=d.versions.node.split(".").map(Number);if(r>22||r===22&&f>=3||r===20&&f>=16)return d.getBuiltinModule(e)}return F(e)},"__cjs_getBuiltinModule"),P=b("node:fs"),T=b("node:path"),{fileURLToPath:S}=b("node:url");var R=Object.defineProperty,m=g((e,r)=>R(e,"name",{value:r,configurable:!0}),"u");const q=m(()=>I(T.dirname(S(import.meta.url))),"getDevToolbarPath"),D=/\?.+$/,M=/\/dist\/|\/build\//,N=/\.[jt]sx$/,W=m(e=>e.replace(D,""),"removeUrlQuery"),w="?__visulima-dev-toolbar-resource",h="virtual:visulima-dev-toolbar-options",_=`\0${h}`,u="virtual:visulima-dev-toolbar-path:",j="\0__visulima-dev-toolbar-empty",E=m((e={})=>{const r=q(),f=e.removeDevtoolsOnBuild??!0,$=e.injectSource?.enabled??!0;let v;return[{apply:"serve",config(){return{server:{watch:{ignored:["**/.devtoolbar/**"]}}}},configResolved(t){if(v=t,!e.appendTo){const o=new Set(t.plugins.map(n=>n.name));(o.has("tanstack-start-core:config")||o.has("tanstack-react-start:config"))&&(e.appendTo=/router\.tsx$/)}const a=/dev-toolbar[\\/]dist[\\/]|__visulima-dev-toolbar-resource/;for(const o of t.plugins){if(!o.name.includes("babel"))continue;const n=o.transform;if(!n)continue;const i=typeof n=="function"?n:typeof n=="object"&&"handler"in n?n.handler:void 0;if(typeof i!="function")continue;const s=m(function(l,c,...p){if(!a.test(c))return i.call(this,l,c,...p)},"wrapper");typeof n=="function"?o.transform=s:n.handler=s}},configureServer(t){k(t,e.serverFunctions,{editor:e.editor}),t.ws.on("connection",()=>{t.ws.send({event:"dev-toolbar:init",type:"custom"})}),t.middlewares.use("/__devtoolbar/events",async(a,o)=>{o.writeHead(200,{"Cache-Control":"no-cache",Connection:"keep-alive","Content-Type":"text/event-stream","X-Accel-Buffering":"no"});const n=m((c,p)=>{o.write(`event: ${c}
|
|
2
|
+
data: ${JSON.stringify(p)}
|
|
3
|
+
|
|
4
|
+
`)},"sendEvent");n("connected",{timestamp:Date.now()});const{watch:i}=await import("node:fs"),s=T.join(t.config.root,".devtoolbar","annotations.json");let l;try{l=i(s,{persistent:!1},c=>{c==="change"&&n("annotations.changed",{timestamp:Date.now()})}),l.on("error",()=>{})}catch{const{stat:c}=await import("node:fs/promises");let p=0;const C=setInterval(async()=>{try{const y=(await c(s)).mtimeMs;y!==p&&(p=y,n("annotations.changed",{timestamp:Date.now()}))}catch{}},2e3);a.on("close",()=>{clearInterval(C)});return}a.on("close",()=>{l?.close()})})},enforce:"pre",async load(t){if(t===_){const a=(e.customApps??[]).filter(o=>!o.component&&!o.init&&o.view?.type==="iframe").map(o=>({defaultOpen:o.defaultOpen,icon:o.icon,id:o.id,name:o.name,view:o.view}));return`export default ${JSON.stringify({apps:{a11y:e.apps?.a11y??!1,annotations:e.apps?.annotations??e.apps?.inspector??!1,assets:e.apps?.assets??!1,inspector:e.apps?.inspector??!1,moduleGraph:e.apps?.moduleGraph??!1,performance:e.apps?.performance??!1,seo:e.apps?.seo??!1,settings:e.apps?.settings??!0,tailwind:e.apps?.tailwind??!1,timeline:e.apps?.timeline??!1,viteConfig:e.apps?.viteConfig??!0},base:v.base,closeOnOutsideClick:e.closeOnOutsideClick??!0,customApps:a,defaultVisible:e.defaultVisible??!0,editor:e.editor??"",height:e.height??60,keybindings:e.keybindings??{},minimizePanelInactive:e.minimizePanelInactive??5e3,placement:e.placement??"bottom-center",position:e.position??"bottom",reduceMotion:e.reduceMotion??!1,requireUrlFlag:e.requireUrlFlag??!1,urlFlagName:e.urlFlagName??"devtools",width:e.width??80})};`}if(t.endsWith(w)){const a=W(t);return this.addWatchFile(a),await P.promises.readFile(a,"utf8")}},name:"@visulima/dev-toolbar",resolveId(t){if(t===h)return _;if(t.startsWith(u))return`${t.replace(u,`${r}/`)}${w}`},transform(t,a,o){if(o?.ssr)return;const{appendTo:n}=e,i=a.split("?",2)[0];if(n&&i&&(typeof n=="string"&&i.endsWith(n)||n instanceof RegExp&&n.test(i)))return`import '${u}client/overlay.js';
|
|
5
|
+
${t}`},transformIndexHtml(){return e.appendTo?void 0:{html:"",tags:[{attrs:{src:`${v.base||"/"}@id/${u}client/overlay.js`,type:"module"},injectTo:"head-prepend",tag:"script"}]}}},{enforce:"pre",name:"@visulima/dev-toolbar:inject-source",async transform(t,a){if(!$||v.mode!=="development"||a.includes("node_modules")||a.includes("?raw")||M.test(a)||!N.test(a.split("?")[0]??""))return;const{readFile:o}=await import("node:fs/promises");let n;try{const l=await o(a.split("?")[0]??a,"utf8");l!==t&&(n=l)}catch{}const{addSourceToJsx:i}=await import("./packem_chunks/inject-source.js"),s=i(t,a,e.injectSource?.ignore,n);if(s)return{code:s.code??t,map:s.map??void 0}}},{apply(t,{command:a,mode:o}){return f&&(a!=="serve"||o==="production")},load(t){if(t===j)return"export default {};"},name:"@visulima/dev-toolbar:remove-on-build",resolveId(t){if(t===h||t.startsWith(u))return j}}]},"devToolbar");export{E as devToolbar};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/dev-toolbar",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.10",
|
|
4
4
|
"description": "Devtools is a set of tools for building advanced devtools for your application",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"visulima",
|
|
@@ -49,14 +49,22 @@
|
|
|
49
49
|
"types": "./dist/apps/a11y/index.d.ts",
|
|
50
50
|
"default": "./dist/apps/a11y/index.js"
|
|
51
51
|
},
|
|
52
|
+
"./apps/assets": {
|
|
53
|
+
"types": "./dist/apps/assets/index.d.ts",
|
|
54
|
+
"default": "./dist/apps/assets/index.js"
|
|
55
|
+
},
|
|
56
|
+
"./apps/inspector": {
|
|
57
|
+
"types": "./dist/apps/inspector/index.d.ts",
|
|
58
|
+
"default": "./dist/apps/inspector/index.js"
|
|
59
|
+
},
|
|
60
|
+
"./apps/tailwind": {
|
|
61
|
+
"types": "./dist/apps/tailwind/index.d.ts",
|
|
62
|
+
"default": "./dist/apps/tailwind/index.js"
|
|
63
|
+
},
|
|
52
64
|
"./apps/module-graph": {
|
|
53
65
|
"types": "./dist/apps/module-graph/index.d.ts",
|
|
54
66
|
"default": "./dist/apps/module-graph/index.js"
|
|
55
67
|
},
|
|
56
|
-
"./apps/more": {
|
|
57
|
-
"types": "./dist/apps/more/index.d.ts",
|
|
58
|
-
"default": "./dist/apps/more/index.js"
|
|
59
|
-
},
|
|
60
68
|
"./apps/performance": {
|
|
61
69
|
"types": "./dist/apps/performance/index.d.ts",
|
|
62
70
|
"default": "./dist/apps/performance/index.js"
|
|
@@ -73,33 +81,64 @@
|
|
|
73
81
|
"types": "./dist/apps/timeline/index.d.ts",
|
|
74
82
|
"default": "./dist/apps/timeline/index.js"
|
|
75
83
|
},
|
|
84
|
+
"./apps/annotations": {
|
|
85
|
+
"types": "./dist/apps/annotations/index.d.ts",
|
|
86
|
+
"default": "./dist/apps/annotations/index.js"
|
|
87
|
+
},
|
|
76
88
|
"./apps/vite-config": {
|
|
77
89
|
"types": "./dist/apps/vite-config/index.d.ts",
|
|
78
90
|
"default": "./dist/apps/vite-config/index.js"
|
|
79
91
|
},
|
|
92
|
+
"./mcp": {
|
|
93
|
+
"types": "./dist/mcp/server.d.ts",
|
|
94
|
+
"default": "./dist/mcp/server.js"
|
|
95
|
+
},
|
|
80
96
|
"./toolbar": {
|
|
81
97
|
"types": "./dist/toolbar/index.d.ts",
|
|
82
98
|
"default": "./dist/toolbar/index.js"
|
|
83
99
|
},
|
|
100
|
+
"./ui": {
|
|
101
|
+
"types": "./dist/ui/index.d.ts",
|
|
102
|
+
"default": "./dist/ui/index.js"
|
|
103
|
+
},
|
|
84
104
|
"./package.json": "./package.json"
|
|
85
105
|
},
|
|
106
|
+
"bin": {
|
|
107
|
+
"visulima-dev-toolbar-mcp": "./bin/mcp.js"
|
|
108
|
+
},
|
|
86
109
|
"files": [
|
|
110
|
+
"bin",
|
|
87
111
|
"dist",
|
|
88
112
|
"README.md",
|
|
89
113
|
"CHANGELOG.md"
|
|
90
114
|
],
|
|
91
115
|
"dependencies": {
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
116
|
+
"@babel/generator": "^7.29.1",
|
|
117
|
+
"@babel/parser": "7.29.2",
|
|
118
|
+
"@babel/traverse": "^7.29.0",
|
|
119
|
+
"@floating-ui/dom": "^1.7.6",
|
|
120
|
+
"launch-editor": "2.13.2",
|
|
121
|
+
"preact": "^10.29.1"
|
|
97
122
|
},
|
|
98
123
|
"peerDependencies": {
|
|
99
|
-
"
|
|
124
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
125
|
+
"axe-core": "4.11.3",
|
|
126
|
+
"vite": "^6 || ^7 || ^8",
|
|
127
|
+
"zod": "^3.0.0"
|
|
128
|
+
},
|
|
129
|
+
"peerDependenciesMeta": {
|
|
130
|
+
"@modelcontextprotocol/sdk": {
|
|
131
|
+
"optional": true
|
|
132
|
+
},
|
|
133
|
+
"axe-core": {
|
|
134
|
+
"optional": true
|
|
135
|
+
},
|
|
136
|
+
"zod": {
|
|
137
|
+
"optional": true
|
|
138
|
+
}
|
|
100
139
|
},
|
|
101
140
|
"engines": {
|
|
102
|
-
"node": "
|
|
141
|
+
"node": "^22.14.0 || >=24.10.0"
|
|
103
142
|
},
|
|
104
143
|
"publishConfig": {
|
|
105
144
|
"access": "public",
|
package/dist/apps/more/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
var p=Object.defineProperty;var s=(n,t)=>p(n,"name",{value:t,configurable:!0});import{addHookName as m}from"preact/devtools";import{useState as u,useEffect as f}from"preact/hooks";import{m as g}from"../../packem_shared/cn-BEsR6GkP.js";import{jsxs as o,jsx as r}from"preact/jsx-runtime";const h=`<!-- @license lucide-static v0.575.0 - ISC -->
|
|
2
|
-
<svg
|
|
3
|
-
class="lucide lucide-more-horizontal"
|
|
4
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
-
width="24"
|
|
6
|
-
height="24"
|
|
7
|
-
viewBox="0 0 24 24"
|
|
8
|
-
fill="none"
|
|
9
|
-
stroke="currentColor"
|
|
10
|
-
stroke-width="2"
|
|
11
|
-
stroke-linecap="round"
|
|
12
|
-
stroke-linejoin="round"
|
|
13
|
-
>
|
|
14
|
-
<circle cx="12" cy="12" r="1" />
|
|
15
|
-
<circle cx="19" cy="12" r="1" />
|
|
16
|
-
<circle cx="5" cy="12" r="1" />
|
|
17
|
-
</svg>
|
|
18
|
-
`;var x=Object.defineProperty,i=s((n,t)=>x(n,"name",{value:t,configurable:!0}),"s");const b=i(n=>{const[t,c]=m(u([]),"apps");f(()=>{const e=globalThis.__VISULIMA_DEVTOOLS__;if(!e)return;const a=(e.getApps()??[]).filter(d=>!["dev-toolbar:a11y","dev-toolbar:settings","dev-toolbar:timeline","dev-toolbar:more","dev-toolbar:vite-config","dev-toolbar:module-graph","dev-toolbar:seo","dev-toolbar:performance"].includes(d.id));c(a)},[]);const l=i(e=>{globalThis.__VISULIMA_DEVTOOLS__?.openApp(e).catch(console.error)},"openApp");return t.length===0?o("div",{class:"p-8 flex flex-col items-center justify-center min-h-48 gap-5 text-center select-none",children:[r("div",{class:"size-14 bg-primary/5 border border-primary/20 flex items-center justify-center",children:r("svg",{"aria-hidden":"true",class:"size-6 text-primary/40",fill:"none",stroke:"currentColor","stroke-width":"1.5",viewBox:"0 0 24 24",children:r("path",{d:"M12 6v6m0 0v6m0-6h6m-6 0H6","stroke-linecap":"round","stroke-linejoin":"round"})})}),o("div",{class:"space-y-1.5",children:[r("p",{class:"text-[0.8125rem] font-medium text-foreground/70",children:"No additional apps registered"}),r("p",{class:"text-[0.725rem] text-muted-foreground",children:"Register a custom app to see it here"}),r("pre",{class:"mt-3 text-[0.65rem] font-mono text-primary/70 bg-primary/5 border border-primary/15 px-3 py-2 text-left",children:`window.__VISULIMA_DEVTOOLS__
|
|
19
|
-
.registerApp({ id, name, icon })`})]})]}):o("div",{class:"p-5",children:[o("h2",{class:"text-[0.65rem] font-bold uppercase tracking-[0.1em] text-muted-foreground mb-3 flex items-center gap-1.5",children:[r("span",{"aria-hidden":"true",class:"text-primary/50",children:"//"}),"Additional Apps"]}),r("div",{class:"grid grid-cols-2 gap-2",children:t.map(e=>o("button",{class:g("flex items-center gap-3 p-3","border border-border bg-card hover:bg-foreground/4","text-left cursor-pointer transition-colors duration-150"),onClick:i(()=>l(e.id),"onClick"),title:e.name,type:"button",children:[r("span",{class:"size-5 shrink-0 flex items-center justify-center text-[0.65rem] font-bold uppercase bg-foreground/8 text-foreground/70",children:e.name.slice(0,2)}),r("span",{class:"text-[0.8125rem] font-medium text-foreground truncate",children:e.name})]},e.id))})]})},"MoreApp"),A={component:b,icon:h,id:"dev-toolbar:more",name:"More"};export{A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as o,g as r}from"./store-BxE0w51s.js";export{o as TimelineStore,r as getTimelineStore};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var t=Object.defineProperty;var o=(r,e)=>t(r,"name",{value:e,configurable:!0});import{clsx as m}from"clsx";import{twMerge as a}from"tailwind-merge";var c=Object.defineProperty,n=o((r,e)=>c(r,"name",{value:e,configurable:!0}),"t");const l=n((...r)=>a(m(r)),"cn");export{l as m};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var s=Object.defineProperty;var d=(a,n)=>s(a,"name",{value:n,configurable:!0});var m=Object.defineProperty,c=d((a,n)=>m(a,"name",{value:n,configurable:!0}),"r");const p=c(a=>{const n={onConfigChange:c(()=>{},"onConfigChange"),onHMRUpdate:c(()=>{},"onHMRUpdate"),onModuleUpdate:c(()=>{},"onModuleUpdate"),...a},t=new Map;return globalThis.window!==void 0&&import.meta.hot&&(import.meta.hot.on("dev-toolbar:rpc:response",e=>{const o=t.get(e.id);o&&(t.delete(e.id),o.resolve(e.result))}),import.meta.hot.on("dev-toolbar:rpc:error",e=>{const o=t.get(e.id);o&&(t.delete(e.id),o.reject(new Error(e.error)))}),import.meta.hot.on("dev-toolbar:client",e=>{const{args:o,method:r}=e,i=n[r];if(i)try{i(...o)}catch(l){console.error(`[dev-toolbar] Error calling client function ${r}:`,l)}})),{async callServer(e,...o){if(globalThis.window===void 0||!import.meta.hot)throw new Error("RPC calls can only be made in browser environment with HMR");const r=`${Date.now()}-${Math.random().toString(36).slice(7)}`;return new Promise((i,l)=>{t.set(r,{reject:l,resolve:i}),setTimeout(()=>{t.has(r)&&(t.delete(r),l(new Error(`RPC call timeout: ${e}`)))},3e4),import.meta.hot.send("dev-toolbar:rpc",{args:o,id:r,method:e})})},registerFunction(e,o){n[e]=o}}},"createClientRPCContext");export{p as createClientRPCContext};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var d=Object.defineProperty;var c=(n,a)=>d(n,"name",{value:a,configurable:!0});var f=Object.defineProperty,l=c((n,a)=>f(n,"name",{value:a,configurable:!0}),"v");const g=l((n,a)=>{const r=new Map;return{addTimelineEvent(e,t){a&&a(e,t),this.emit("timeline:event",t)},emit(e,...t){const o=r.get(e);if(o)for(const i of o)try{i(...t)}catch(s){console.error(`[dev-toolbar] Error in hook handler for ${String(e)}:`,s)}},off(e,t){const o=r.get(e);o&&(t?(o.delete(t),o.size===0&&r.delete(e)):r.delete(e))},on(e,t){return r.has(e)||r.set(e,new Set),r.get(e).add(t),()=>{const o=r.get(e);o&&(o.delete(t),o.size===0&&r.delete(e))}},once(e,t){const o=l(((...i)=>{t(...i),this.off(e,o)}),"onceHandler");this.on(e,o)},registerApp(e){n&&n(e)}}},"createDevToolbarHook");export{g as createDevToolbarHook};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.defineProperty;var l=(e,r)=>p(e,"name",{value:r,configurable:!0});var g=Object.defineProperty,v=l((e,r)=>g(e,"name",{value:r,configurable:!0}),"u");const f=v(async e=>{const{moduleGraph:r}=e,t=[];return r.idToModuleMap.forEach(o=>{const n=[];o.importers.forEach(a=>{const s=a.url??a.id;s&&n.push(s)});const c=o.id??o.url,i=o.url??o.id;!c||!i||t.push({id:c,importerCount:o.importers.size,importerUrls:n,url:i})}),t},"getModuleGraph");var h=Object.defineProperty,m=l((e,r)=>h(e,"name",{value:r,configurable:!0}),"n$1");const b=m(async(e,r,t,o)=>{const n=e;if(n.openInEditor){await n.openInEditor(r,{column:o,line:t});return}const c=process.env.EDITOR||process.env.VISUAL||"code",i=r.startsWith("/")?r:`${e.config.root}/${r}`,a=t&&o?`:${t}:${o}`:t?`:${t}`:"",{spawn:s}=require("node:child_process");s(c,[`${i}${a}`],{detached:!0,stdio:"ignore"})},"openInEditor");var y=Object.defineProperty,$=l((e,r)=>y(e,"name",{value:r,configurable:!0}),"t");const C=$(async e=>({base:e.config.base,build:{outDir:e.config.build?.outDir},mode:e.config.mode,resolve:{alias:e.config.resolve.alias},root:e.config.root,server:{host:e.config.server?.host,https:e.config.server?.https,port:e.config.server?.port}}),"getViteConfig");var E=Object.defineProperty,d=l((e,r)=>E(e,"name",{value:r,configurable:!0}),"n");const I=d(e=>({getModuleGraph:d(async()=>f(e),"getModuleGraph"),getViteConfig:d(async()=>C(e),"getViteConfig"),openInEditor:d(async(r,t,o)=>b(e,r,t,o),"openInEditor"),readFile:d(async r=>{const{readFile:t}=await import("node:fs/promises"),o=r.startsWith("/")?r:`${e.config.root}/${r}`;return t(o,"utf-8")},"readFile")}),"createDefaultServerFunctions"),P=d((e,r)=>{const t={...I(e),...r};return e.ws.on("dev-toolbar:rpc",async(o,n)=>{const{args:c,id:i,method:a}=o,s=t[a];if(!s){n.send("dev-toolbar:rpc:error",{error:`Unknown RPC method: ${a}`,id:i});return}try{const u=await s(e,...c);n.send("dev-toolbar:rpc:response",{id:i,result:u})}catch(u){n.send("dev-toolbar:rpc:error",{error:u instanceof Error?u.message:String(u),id:i})}}),{callClient(o,...n){e.ws.send({data:{args:n,method:o},event:"dev-toolbar:client",type:"custom"})},registerFunction(o,n){t[o]=n},server:e}},"createServerRPCContext");export{P as createServerRPCContext};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var S=Object.defineProperty;var l=(e,t)=>S(e,"name",{value:t,configurable:!0});import{addHookName as g}from"preact/devtools";import{useState as f,useEffect as v}from"preact/hooks";import{m as w}from"./cn-BEsR6GkP.js";import{jsx as T}from"preact/jsx-runtime";var O=Object.defineProperty,s=l((e,t)=>O(e,"name",{value:t,configurable:!0}),"t$2");const _={toggle:"Alt+Shift+D",close:"Escape"},k="__v_dt__frame_state",a={closeOnOutsideClick:!0,height:60,isPip:!1,isFirstVisit:!0,keybindings:_,left:50,minimizePanelInactive:5e3,open:!1,position:"bottom",preferShowFloatingPanel:!0,reduceMotion:!1,route:"/",top:0,viewMode:"default",width:80},I=s(()=>{const e=globalThis.__VISULIMA_DEV_TOOLBAR_OPTIONS__;return e?{...a,closeOnOutsideClick:e.closeOnOutsideClick??a.closeOnOutsideClick,height:e.height??a.height,keybindings:{..._,...e.keybindings},minimizePanelInactive:e.minimizePanelInactive??a.minimizePanelInactive,position:e.position??a.position,reduceMotion:e.reduceMotion??a.reduceMotion,width:e.width??a.width}:{...a}},"buildEffectiveDefaults"),L=s(()=>{const e=I();if(globalThis.window===void 0)return e;try{const t=localStorage.getItem(k);if(t){const i=JSON.parse(t);return{...e,...i,keybindings:{...e.keybindings,...i.keybindings},open:!1}}}catch{}return e},"loadState"),M=s(e=>{if(globalThis.window!==void 0)try{localStorage.setItem(k,JSON.stringify(e))}catch{}},"saveState");let c=L();const d=new Set,$=s(()=>{for(const e of d)e()},"notifyListeners"),P=s(e=>{c={...c,...e},M(c),$()},"updateSharedState"),V=s(()=>{const[,e]=g(f(0),"forceUpdate");return v(()=>{const t=s(()=>{e(i=>i+1)},"listener");return d.add(t),()=>{d.delete(t)}},[]),{state:c,updateState:P}},"useFrameState");var E=Object.defineProperty,o=l((e,t)=>E(e,"name",{value:t,configurable:!0}),"t$1");const b="__v_dt__theme",h=o(()=>globalThis.window===void 0?"light":globalThis.window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light","getSystemTheme"),z=o(()=>{if(globalThis.window===void 0)return"system";try{const e=localStorage.getItem(b);if(e==="light"||e==="dark"||e==="system")return e}catch(e){console.warn("[dev-toolbar] Failed to load theme:",e)}return"system"},"loadTheme"),C=o(e=>{if(globalThis.window!==void 0)try{localStorage.setItem(b,e)}catch(t){console.warn("[dev-toolbar] Failed to save theme:",t)}},"saveTheme");let n=z(),r=n==="system"?h():n;const m=new Set,p=o(()=>{for(const e of m)e()},"notifyThemeListeners"),y=o(e=>{try{localStorage.setItem("__v-o__theme",e)}catch{}const t=globalThis.__v_o__current?.shadowRoot?.querySelector("#__v_o__root");t&&(e==="dark"?t.classList.add("dark"):t.classList.remove("dark"))},"syncViteOverlayTheme"),u=o(e=>{n=e,r=e==="system"?h():e,C(e),y(r),p()},"setSharedTheme");if(globalThis.window!==void 0){const e=globalThis.window.matchMedia("(prefers-color-scheme: dark)"),t=o(()=>{n==="system"&&(r=h(),y(r),p())},"handleSystemChange");e.addEventListener?e.addEventListener("change",t):e.addListener&&e.addListener(t)}const W=o(()=>{const[,e]=g(f(0),"forceUpdate");return v(()=>{const t=o(()=>{e(i=>i+1)},"listener");return m.add(t),()=>{m.delete(t)}},[]),{resolvedTheme:r,setTheme:u,theme:n,toggleTheme:o(()=>{u(r==="dark"?"light":"dark")},"toggleTheme")}},"useTheme");var F=Object.defineProperty,D=l((e,t)=>F(e,"name",{value:t,configurable:!0}),"o");const x=D(({src:e,size:t=13,class:i})=>T("span",{class:w("inline-block shrink-0",i),style:{backgroundColor:"currentColor",height:t,maskImage:`url(${e})`,maskRepeat:"no-repeat",maskSize:"contain",WebkitMaskImage:`url(${e})`,WebkitMaskRepeat:"no-repeat",WebkitMaskSize:"contain",width:t}}),"Icon");export{_ as D,W as a,x as i,V as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var v=Object.defineProperty;var o=(r,e)=>v(r,"name",{value:e,configurable:!0});const a=[{color:"#10B981",events:[],id:"hmr",label:"HMR Updates"},{color:"#3B82F6",events:[],id:"network",label:"Network"},{color:"#EF4444",events:[],id:"errors",label:"Errors"},{color:"#8B5CF6",events:[],id:"custom",label:"Custom"}];var g=Object.defineProperty,i=o((r,e)=>g(r,"name",{value:e,configurable:!0}),"i");class c{static{o(this,"TimelineStore")}static{i(this,"TimelineStore")}groups;maxEvents;constructor(e=1e3){this.maxEvents=e,this.groups=new Map;for(const t of a)this.groups.set(t.id,{...t,events:[]})}addEvent(e,t){let s=this.groups.get(e);s||(s={events:[],id:e,label:e},this.groups.set(e,s)),s.events.push(t),s.events.length>this.maxEvents&&s.events.shift(),s.events.sort((l,u)=>l.time-u.time)}getGroups(){return[...this.groups.values()]}getGroupEvents(e){return this.groups.get(e)?.events||[]}getAllEvents(){const e=[];for(const t of this.groups.values())e.push(...t.events);return e.sort((t,s)=>t.time-s.time)}clearGroup(e){const t=this.groups.get(e);t&&(t.events=[])}clearAll(){for(const e of this.groups.values())e.events=[]}getEventsInRange(e,t){return this.getAllEvents().filter(s=>s.time>=e&&s.time<=t)}}let n;const h=i(()=>(n||(n=new c),n),"getTimelineStore");export{a as D,c as T,h as g};
|