sinwan-ui-core 0.0.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,166 @@
1
+ import {
2
+ isSinwanElement2,
3
+ flattenChildren2
4
+ } from "./chunks/chunk-7r6fwdyt.js";
5
+ import {
6
+ Slot2
7
+ } from "./chunks/chunk-bw9vp0y9.js";
8
+ import {
9
+ toFloatingPlacement2,
10
+ basePlacement2,
11
+ readDocumentRtl2,
12
+ createRectReference2,
13
+ createSizeFloating2,
14
+ createPointReference2,
15
+ computePosition2,
16
+ estimatePosition2,
17
+ useAnchorPosition2,
18
+ usePointPosition2
19
+ } from "./chunks/chunk-6r59k5mb.js";
20
+ import {
21
+ SinwanPortal2,
22
+ signal2,
23
+ Presence2,
24
+ UiPortal2,
25
+ useControllableState2,
26
+ getFocusableElements2,
27
+ trapFocus2
28
+ } from "./chunks/chunk-ejwby1pn.js";
29
+ import {
30
+ For2,
31
+ TabsKey2,
32
+ TabsRoot2,
33
+ TabsList2,
34
+ TabsTrigger2,
35
+ TabsContent2,
36
+ AccordionKey2,
37
+ AccordionItemKey2,
38
+ AccordionRoot2,
39
+ AccordionItem2,
40
+ AccordionTrigger2,
41
+ AccordionContent2,
42
+ CheckboxRoot2,
43
+ SwitchRoot2,
44
+ RadioGroupKey2,
45
+ RadioGroupRoot2,
46
+ RadioGroupItem2,
47
+ ToggleRoot2,
48
+ ToggleGroupKey2,
49
+ ToggleGroupRoot2,
50
+ ToggleGroupItem2
51
+ } from "./chunks/chunk-te52bwb8.js";
52
+ import {
53
+ DirectionKey2,
54
+ DirectionProvider2,
55
+ useDirection2
56
+ } from "./chunks/chunk-f6hw8ash.js";
57
+ import {
58
+ isDismissExemptPointerTarget2
59
+ } from "./chunks/chunk-9whagkb6.js";
60
+ import {
61
+ createMenuSubApi2,
62
+ createMenuSubTriggerHandlers2,
63
+ isInsideMenuSubContent2,
64
+ MenuSubContentLayer2
65
+ } from "./chunks/chunk-8zvv4kad.js";
66
+ import {
67
+ DialogKey2,
68
+ DialogRoot2,
69
+ DialogTrigger2,
70
+ DialogClose2,
71
+ DialogOverlay2,
72
+ DialogContent2,
73
+ CollapsibleKey2,
74
+ CollapsibleRoot2,
75
+ CollapsibleTrigger2,
76
+ CollapsibleContent2,
77
+ PopoverKey2,
78
+ PopoverRoot2,
79
+ PopoverTrigger2,
80
+ PopoverContent2,
81
+ TooltipKey2,
82
+ TooltipProvider2,
83
+ TooltipRoot2,
84
+ TooltipTrigger2,
85
+ TooltipContent2
86
+ } from "./chunks/chunk-94xhejch.js";
87
+ import {
88
+ ThemeKey2,
89
+ ThemeProvider2,
90
+ useTheme2,
91
+ ThemeToggle2
92
+ } from "./chunks/chunk-xaegn57w.js";
93
+ export {
94
+ AccordionContent2 as AccordionContent,
95
+ AccordionItem2 as AccordionItem,
96
+ AccordionItemKey2 as AccordionItemKey,
97
+ AccordionKey2 as AccordionKey,
98
+ AccordionRoot2 as AccordionRoot,
99
+ AccordionTrigger2 as AccordionTrigger,
100
+ CheckboxRoot2 as CheckboxRoot,
101
+ CollapsibleContent2 as CollapsibleContent,
102
+ CollapsibleKey2 as CollapsibleKey,
103
+ CollapsibleRoot2 as CollapsibleRoot,
104
+ CollapsibleTrigger2 as CollapsibleTrigger,
105
+ DialogClose2 as DialogClose,
106
+ DialogContent2 as DialogContent,
107
+ DialogKey2 as DialogKey,
108
+ DialogOverlay2 as DialogOverlay,
109
+ DialogRoot2 as DialogRoot,
110
+ DialogTrigger2 as DialogTrigger,
111
+ DirectionKey2 as DirectionKey,
112
+ DirectionProvider2 as DirectionProvider,
113
+ For2 as For,
114
+ MenuSubContentLayer2 as MenuSubContentLayer,
115
+ PopoverContent2 as PopoverContent,
116
+ PopoverKey2 as PopoverKey,
117
+ PopoverRoot2 as PopoverRoot,
118
+ PopoverTrigger2 as PopoverTrigger,
119
+ Presence2 as Presence,
120
+ RadioGroupItem2 as RadioGroupItem,
121
+ RadioGroupKey2 as RadioGroupKey,
122
+ RadioGroupRoot2 as RadioGroupRoot,
123
+ SinwanPortal2 as SinwanPortal,
124
+ Slot2 as Slot,
125
+ SwitchRoot2 as SwitchRoot,
126
+ TabsContent2 as TabsContent,
127
+ TabsKey2 as TabsKey,
128
+ TabsList2 as TabsList,
129
+ TabsRoot2 as TabsRoot,
130
+ TabsTrigger2 as TabsTrigger,
131
+ ThemeKey2 as ThemeKey,
132
+ ThemeProvider2 as ThemeProvider,
133
+ ThemeToggle2 as ThemeToggle,
134
+ ToggleGroupItem2 as ToggleGroupItem,
135
+ ToggleGroupKey2 as ToggleGroupKey,
136
+ ToggleGroupRoot2 as ToggleGroupRoot,
137
+ ToggleRoot2 as ToggleRoot,
138
+ TooltipContent2 as TooltipContent,
139
+ TooltipKey2 as TooltipKey,
140
+ TooltipProvider2 as TooltipProvider,
141
+ TooltipRoot2 as TooltipRoot,
142
+ TooltipTrigger2 as TooltipTrigger,
143
+ UiPortal2 as UiPortal,
144
+ basePlacement2 as basePlacement,
145
+ computePosition2 as computePosition,
146
+ createMenuSubApi2 as createMenuSubApi,
147
+ createMenuSubTriggerHandlers2 as createMenuSubTriggerHandlers,
148
+ createPointReference2 as createPointReference,
149
+ createRectReference2 as createRectReference,
150
+ createSizeFloating2 as createSizeFloating,
151
+ estimatePosition2 as estimatePosition,
152
+ flattenChildren2 as flattenChildren,
153
+ getFocusableElements2 as getFocusableElements,
154
+ isDismissExemptPointerTarget2 as isDismissExemptPointerTarget,
155
+ isInsideMenuSubContent2 as isInsideMenuSubContent,
156
+ isSinwanElement2 as isSinwanElement,
157
+ readDocumentRtl2 as readDocumentRtl,
158
+ signal2 as signal,
159
+ toFloatingPlacement2 as toFloatingPlacement,
160
+ trapFocus2 as trapFocus,
161
+ useAnchorPosition2 as useAnchorPosition,
162
+ useControllableState2 as useControllableState,
163
+ useDirection2 as useDirection,
164
+ usePointPosition2 as usePointPosition,
165
+ useTheme2 as useTheme
166
+ };
@@ -0,0 +1,34 @@
1
+ import { type SinwanNode } from "sinwan/component";
2
+ import { type Computed, type Signal } from "sinwan/reactivity";
3
+ export type MenuSubApi = {
4
+ open: Signal<boolean> | Computed<boolean>;
5
+ setOpen: (value: boolean) => void;
6
+ triggerEl: Signal<HTMLElement | null>;
7
+ cancelClose: () => void;
8
+ requestClose: (delayMs?: number) => void;
9
+ };
10
+ export type MenuSubOptions = {
11
+ controlled: boolean;
12
+ defaultOpen?: boolean;
13
+ readOpen: () => boolean;
14
+ onOpenChange?: (open: boolean) => void;
15
+ /** Open state of the menu or submenu that contains this submenu; the sub closes when it turns false. */
16
+ parentOpen?: () => boolean;
17
+ };
18
+ export type MenuSubTriggerHandlers = {
19
+ onMouseEnter: () => void;
20
+ onMouseLeave: () => void;
21
+ onClick: () => void;
22
+ onKeyDown: (event: KeyboardEvent) => void;
23
+ };
24
+ export declare function createMenuSubApi(options: MenuSubOptions): MenuSubApi;
25
+ /** Hover, click and ArrowRight open the sub (never toggle it closed); leaving starts the hover close delay. */
26
+ export declare function createMenuSubTriggerHandlers(api: MenuSubApi): MenuSubTriggerHandlers;
27
+ export declare function isInsideMenuSubContent(target: EventTarget | null): boolean;
28
+ export type MenuSubContentLayerProps = {
29
+ api: MenuSubApi;
30
+ slot: string;
31
+ class?: string;
32
+ children?: SinwanNode;
33
+ };
34
+ export declare function MenuSubContentLayer(props: MenuSubContentLayerProps): SinwanNode;
@@ -0,0 +1,14 @@
1
+ import {
2
+ createMenuSubApi2,
3
+ createMenuSubTriggerHandlers2,
4
+ isInsideMenuSubContent2,
5
+ MenuSubContentLayer2
6
+ } from "./chunks/chunk-8zvv4kad.js";
7
+ import"./chunks/chunk-ejwby1pn.js";
8
+ import"./chunks/chunk-6r59k5mb.js";
9
+ export {
10
+ MenuSubContentLayer2 as MenuSubContentLayer,
11
+ createMenuSubApi2 as createMenuSubApi,
12
+ createMenuSubTriggerHandlers2 as createMenuSubTriggerHandlers,
13
+ isInsideMenuSubContent2 as isInsideMenuSubContent
14
+ };
@@ -0,0 +1,111 @@
1
+ import { type InjectionKey, type SinwanNode } from "sinwan/component";
2
+ import { signal, type Computed, type Signal } from "sinwan/reactivity";
3
+ import { type Align, type Placement } from "./core";
4
+ export type OpenApi = {
5
+ open: Signal<boolean> | Computed<boolean>;
6
+ setOpen: (value: boolean) => void;
7
+ triggerEl: ReturnType<typeof signal<HTMLElement | null>>;
8
+ requestClose: (delayMs?: number) => void;
9
+ cancelClose: () => void;
10
+ isHoverOpenBlocked: () => boolean;
11
+ setPointerOverTrigger: (over: boolean) => void;
12
+ };
13
+ export declare const DialogKey: InjectionKey<OpenApi>;
14
+ export type DialogRootProps = {
15
+ children?: SinwanNode;
16
+ open?: boolean;
17
+ defaultOpen?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ };
20
+ export declare const DialogRoot: import("sinwan/component").SinwanComponent<DialogRootProps>;
21
+ export declare const DialogTrigger: import("sinwan/component").SinwanComponent<{
22
+ children?: SinwanNode;
23
+ class?: string;
24
+ asChild?: boolean;
25
+ }>;
26
+ export declare const DialogClose: import("sinwan/component").SinwanComponent<{
27
+ children?: SinwanNode;
28
+ class?: string;
29
+ asChild?: boolean;
30
+ }>;
31
+ export declare const DialogOverlay: import("sinwan/component").SinwanComponent<{
32
+ class?: string;
33
+ }>;
34
+ export declare const DialogContent: import("sinwan/component").SinwanComponent<{
35
+ [key: `data-${string}`]: string | undefined;
36
+ children?: SinwanNode;
37
+ class?: string;
38
+ onEscapeKeyDown?: (e: KeyboardEvent) => void;
39
+ "data-side"?: string;
40
+ "data-size"?: string;
41
+ "data-vaul-drawer-direction"?: string;
42
+ "data-slot"?: string;
43
+ }>;
44
+ export declare const CollapsibleKey: InjectionKey<{
45
+ open: Signal<boolean> | Computed<boolean>;
46
+ setOpen: (v: boolean) => void;
47
+ }>;
48
+ export declare const CollapsibleRoot: import("sinwan/component").SinwanComponent<{
49
+ children?: SinwanNode;
50
+ open?: boolean;
51
+ defaultOpen?: boolean;
52
+ onOpenChange?: (open: boolean) => void;
53
+ class?: string;
54
+ }>;
55
+ export declare const CollapsibleTrigger: import("sinwan/component").SinwanComponent<{
56
+ children?: SinwanNode;
57
+ class?: string;
58
+ asChild?: boolean;
59
+ }>;
60
+ export declare const CollapsibleContent: import("sinwan/component").SinwanComponent<{
61
+ children?: SinwanNode;
62
+ class?: string;
63
+ }>;
64
+ export declare const PopoverKey: InjectionKey<OpenApi & {
65
+ placement: Placement;
66
+ align: Align;
67
+ }>;
68
+ export declare const PopoverRoot: import("sinwan/component").SinwanComponent<{
69
+ children?: SinwanNode;
70
+ open?: boolean;
71
+ defaultOpen?: boolean;
72
+ onOpenChange?: (open: boolean) => void;
73
+ placement?: Placement;
74
+ align?: Align;
75
+ }>;
76
+ export declare const PopoverTrigger: import("sinwan/component").SinwanComponent<{
77
+ children?: SinwanNode;
78
+ class?: string;
79
+ asChild?: boolean;
80
+ }>;
81
+ export declare const PopoverContent: import("sinwan/component").SinwanComponent<{
82
+ children?: SinwanNode;
83
+ class?: string;
84
+ side?: Placement;
85
+ align?: Align;
86
+ sideOffset?: number;
87
+ onmouseenter?: (event: MouseEvent) => void;
88
+ onmouseleave?: (event: MouseEvent) => void;
89
+ }>;
90
+ export declare const TooltipKey: InjectionKey<OpenApi>;
91
+ export declare const TooltipProvider: import("sinwan/component").SinwanComponent<{
92
+ children?: SinwanNode;
93
+ delayDuration?: number;
94
+ }>;
95
+ export declare const TooltipRoot: import("sinwan/component").SinwanComponent<{
96
+ children?: SinwanNode;
97
+ open?: boolean;
98
+ defaultOpen?: boolean;
99
+ onOpenChange?: (open: boolean) => void;
100
+ }>;
101
+ export declare const TooltipTrigger: import("sinwan/component").SinwanComponent<{
102
+ children?: SinwanNode;
103
+ class?: string;
104
+ asChild?: boolean;
105
+ }>;
106
+ export declare const TooltipContent: import("sinwan/component").SinwanComponent<{
107
+ children?: SinwanNode;
108
+ class?: string;
109
+ side?: Placement;
110
+ sideOffset?: number;
111
+ }>;
@@ -0,0 +1,47 @@
1
+ import {
2
+ DialogKey2,
3
+ DialogRoot2,
4
+ DialogTrigger2,
5
+ DialogClose2,
6
+ DialogOverlay2,
7
+ DialogContent2,
8
+ CollapsibleKey2,
9
+ CollapsibleRoot2,
10
+ CollapsibleTrigger2,
11
+ CollapsibleContent2,
12
+ PopoverKey2,
13
+ PopoverRoot2,
14
+ PopoverTrigger2,
15
+ PopoverContent2,
16
+ TooltipKey2,
17
+ TooltipProvider2,
18
+ TooltipRoot2,
19
+ TooltipTrigger2,
20
+ TooltipContent2
21
+ } from "./chunks/chunk-94xhejch.js";
22
+ import"./chunks/chunk-bw9vp0y9.js";
23
+ import"./chunks/chunk-7r6fwdyt.js";
24
+ import"./chunks/chunk-9whagkb6.js";
25
+ import"./chunks/chunk-ejwby1pn.js";
26
+ import"./chunks/chunk-6r59k5mb.js";
27
+ export {
28
+ CollapsibleContent2 as CollapsibleContent,
29
+ CollapsibleKey2 as CollapsibleKey,
30
+ CollapsibleRoot2 as CollapsibleRoot,
31
+ CollapsibleTrigger2 as CollapsibleTrigger,
32
+ DialogClose2 as DialogClose,
33
+ DialogContent2 as DialogContent,
34
+ DialogKey2 as DialogKey,
35
+ DialogOverlay2 as DialogOverlay,
36
+ DialogRoot2 as DialogRoot,
37
+ DialogTrigger2 as DialogTrigger,
38
+ PopoverContent2 as PopoverContent,
39
+ PopoverKey2 as PopoverKey,
40
+ PopoverRoot2 as PopoverRoot,
41
+ PopoverTrigger2 as PopoverTrigger,
42
+ TooltipContent2 as TooltipContent,
43
+ TooltipKey2 as TooltipKey,
44
+ TooltipProvider2 as TooltipProvider,
45
+ TooltipRoot2 as TooltipRoot,
46
+ TooltipTrigger2 as TooltipTrigger
47
+ };
package/dist/slot.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { SinwanNode } from "sinwan/component";
2
+ /**
3
+ * Merge Slot props onto a single Sinwan element child (asChild pattern).
4
+ */
5
+ export declare function Slot(props: {
6
+ children?: unknown;
7
+ [key: string]: unknown;
8
+ }): SinwanNode;
package/dist/slot.js ADDED
@@ -0,0 +1,7 @@
1
+ import {
2
+ Slot2
3
+ } from "./chunks/chunk-bw9vp0y9.js";
4
+ import"./chunks/chunk-7r6fwdyt.js";
5
+ export {
6
+ Slot2 as Slot
7
+ };
@@ -0,0 +1,34 @@
1
+ import { type InjectionKey, type SinwanNode } from "sinwan/component";
2
+ import { type Signal } from "sinwan/reactivity";
3
+ export type Theme = "light" | "dark" | "system";
4
+ export type ResolvedTheme = "light" | "dark";
5
+ export type Palette = "credit-blue" | "jomlaty";
6
+ export type ThemeApi = {
7
+ theme: Signal<Theme>;
8
+ resolved: Signal<ResolvedTheme>;
9
+ setTheme: (theme: Theme) => void;
10
+ themes: Theme[];
11
+ palette: Signal<Palette>;
12
+ setPalette: (palette: Palette) => void;
13
+ palettes: Palette[];
14
+ };
15
+ export declare const ThemeKey: InjectionKey<ThemeApi>;
16
+ export type ThemeProviderProps = {
17
+ children?: SinwanNode;
18
+ defaultTheme?: Theme;
19
+ forcedTheme?: Theme;
20
+ storageKey?: string;
21
+ defaultPalette?: Palette;
22
+ forcedPalette?: Palette;
23
+ paletteStorageKey?: string;
24
+ palettes?: Palette[];
25
+ disableTransitionOnChange?: boolean;
26
+ enableSystem?: boolean;
27
+ attribute?: "class" | "data-theme";
28
+ };
29
+ export declare const ThemeProvider: import("sinwan/component").SinwanComponent<ThemeProviderProps>;
30
+ export declare function useTheme(): ThemeApi;
31
+ export declare const ThemeToggle: import("sinwan/component").SinwanComponent<{
32
+ class?: string;
33
+ children?: SinwanNode;
34
+ }>;
package/dist/theme.js ADDED
@@ -0,0 +1,12 @@
1
+ import {
2
+ ThemeKey2,
3
+ ThemeProvider2,
4
+ useTheme2,
5
+ ThemeToggle2
6
+ } from "./chunks/chunk-xaegn57w.js";
7
+ export {
8
+ ThemeKey2 as ThemeKey,
9
+ ThemeProvider2 as ThemeProvider,
10
+ ThemeToggle2 as ThemeToggle,
11
+ useTheme2 as useTheme
12
+ };
@@ -0,0 +1,11 @@
1
+ import type { SinwanElement, SinwanNode } from "sinwan/component";
2
+ export type DivProps = JSX.IntrinsicElements["div"];
3
+ export type ButtonHTMLProps = JSX.IntrinsicElements["button"];
4
+ export type InputHTMLProps = JSX.IntrinsicElements["input"];
5
+ export type TextareaHTMLProps = JSX.IntrinsicElements["textarea"];
6
+ export type LabelHTMLProps = JSX.IntrinsicElements["label"];
7
+ export type AnchorHTMLProps = JSX.IntrinsicElements["a"];
8
+ export type SpanProps = JSX.IntrinsicElements["span"];
9
+ export type SVGProps = JSX.IntrinsicElements["svg"];
10
+ export declare function isSinwanElement(node: SinwanNode): node is SinwanElement;
11
+ export declare function flattenChildren(children: SinwanNode | undefined): SinwanNode[];
package/dist/types.js ADDED
@@ -0,0 +1,8 @@
1
+ import {
2
+ isSinwanElement2,
3
+ flattenChildren2
4
+ } from "./chunks/chunk-7r6fwdyt.js";
5
+ export {
6
+ flattenChildren2 as flattenChildren,
7
+ isSinwanElement2 as isSinwanElement
8
+ };
package/package.json CHANGED
@@ -1,15 +1,118 @@
1
1
  {
2
- "version": "0.0.0",
3
2
  "name": "sinwan-ui-core",
4
- "module": "index.ts",
3
+ "version": "1.0.0",
4
+ "description": "Headless behaviour primitives for Sinwan UI components: overlays, floating positioning, dismiss layers, controls, slots, theme and direction.",
5
+ "author": "Mohammed Ben Cheikh",
6
+ "license": "MIT",
7
+ "homepage": "https://sinwanjs.com",
8
+ "bugs": "https://github.com/sinwanjs/sinwan-ui-core/issues",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/sinwanjs/sinwan-ui-core.git"
12
+ },
5
13
  "type": "module",
14
+ "main": "./dist/index.js",
15
+ "module": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "sinwan-ui-core:source": "./src/index.ts",
21
+ "import": "./dist/index.js",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "./controls": {
25
+ "types": "./dist/controls.d.ts",
26
+ "sinwan-ui-core:source": "./src/controls.tsx",
27
+ "import": "./dist/controls.js",
28
+ "default": "./dist/controls.js"
29
+ },
30
+ "./core": {
31
+ "types": "./dist/core.d.ts",
32
+ "sinwan-ui-core:source": "./src/core.tsx",
33
+ "import": "./dist/core.js",
34
+ "default": "./dist/core.js"
35
+ },
36
+ "./direction": {
37
+ "types": "./dist/direction.d.ts",
38
+ "sinwan-ui-core:source": "./src/direction.tsx",
39
+ "import": "./dist/direction.js",
40
+ "default": "./dist/direction.js"
41
+ },
42
+ "./dismiss": {
43
+ "types": "./dist/dismiss.d.ts",
44
+ "sinwan-ui-core:source": "./src/dismiss.ts",
45
+ "import": "./dist/dismiss.js",
46
+ "default": "./dist/dismiss.js"
47
+ },
48
+ "./floating": {
49
+ "types": "./dist/floating.d.ts",
50
+ "sinwan-ui-core:source": "./src/floating.ts",
51
+ "import": "./dist/floating.js",
52
+ "default": "./dist/floating.js"
53
+ },
54
+ "./menu-sub": {
55
+ "types": "./dist/menu-sub.d.ts",
56
+ "sinwan-ui-core:source": "./src/menu-sub.tsx",
57
+ "import": "./dist/menu-sub.js",
58
+ "default": "./dist/menu-sub.js"
59
+ },
60
+ "./overlay": {
61
+ "types": "./dist/overlay.d.ts",
62
+ "sinwan-ui-core:source": "./src/overlay.tsx",
63
+ "import": "./dist/overlay.js",
64
+ "default": "./dist/overlay.js"
65
+ },
66
+ "./slot": {
67
+ "types": "./dist/slot.d.ts",
68
+ "sinwan-ui-core:source": "./src/slot.ts",
69
+ "import": "./dist/slot.js",
70
+ "default": "./dist/slot.js"
71
+ },
72
+ "./theme": {
73
+ "types": "./dist/theme.d.ts",
74
+ "sinwan-ui-core:source": "./src/theme.tsx",
75
+ "import": "./dist/theme.js",
76
+ "default": "./dist/theme.js"
77
+ },
78
+ "./types": {
79
+ "types": "./dist/types.d.ts",
80
+ "sinwan-ui-core:source": "./src/types.ts",
81
+ "import": "./dist/types.js",
82
+ "default": "./dist/types.js"
83
+ }
84
+ },
85
+ "sideEffects": false,
86
+ "files": [
87
+ "dist",
88
+ "CHANGELOG.md"
89
+ ],
90
+ "keywords": [
91
+ "sinwan",
92
+ "ui",
93
+ "headless",
94
+ "primitives",
95
+ "accessibility",
96
+ "floating"
97
+ ],
6
98
  "scripts": {
7
- "typecheck": "bun check"
99
+ "build": "bun run build.ts",
100
+ "test": "bun test --coverage ./__tests__",
101
+ "typecheck": "bunx tsc -p tsconfig.json",
102
+ "exports:check": "bun run scripts/export-map.ts --check",
103
+ "exports:sync": "bun run scripts/export-map.ts --write"
104
+ },
105
+ "dependencies": {
106
+ "@floating-ui/dom": "^1.8.0"
8
107
  },
9
108
  "devDependencies": {
10
- "@types/bun": "latest"
109
+ "@types/bun": "latest",
110
+ "bun-plugin-sinwan": "1.0.0",
111
+ "happy-dom": "^20.14.5",
112
+ "sinwan": "^2.0.3",
113
+ "typescript": "^5.9.3"
11
114
  },
12
115
  "peerDependencies": {
13
- "typescript": "^7"
116
+ "sinwan": ">=2.0.3 <3.0.0"
14
117
  }
15
118
  }