@brijbyte/agentic-ui 0.0.1 → 0.0.3
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/README.md +183 -111
- package/dist/accordion/accordion.css +6 -10
- package/dist/accordion/accordion.d.ts +1 -1
- package/dist/accordion/accordion.js +1 -1
- package/dist/accordion/accordion.module.js.map +1 -1
- package/dist/accordion/parts.d.ts +1 -1
- package/dist/accordion/parts.js +2 -2
- package/dist/alert-dialog/alert-dialog.css +84 -0
- package/dist/alert-dialog/alert-dialog.d.ts +44 -0
- package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog/alert-dialog.js +46 -0
- package/dist/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
- package/dist/alert-dialog/alert-dialog.module.js +14 -0
- package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
- package/dist/alert-dialog/index.d.ts +3 -0
- package/dist/alert-dialog/index.js +4 -0
- package/dist/alert-dialog/parts.d.ts +28 -0
- package/dist/alert-dialog/parts.d.ts.map +1 -0
- package/dist/alert-dialog/parts.js +62 -0
- package/dist/alert-dialog/parts.js.map +1 -0
- package/dist/badge/badge.css +3 -7
- package/dist/badge/badge.d.ts +1 -1
- package/dist/badge/badge.module.js.map +1 -1
- package/dist/button/button.css +36 -22
- package/dist/button/button.d.ts +7 -7
- package/dist/button/button.js +1 -1
- package/dist/button/button.js.map +1 -1
- package/dist/button/button.module.js.map +1 -1
- package/dist/card/card.css +5 -9
- package/dist/card/card.d.ts +1 -1
- package/dist/card/card.module.js.map +1 -1
- package/dist/checkbox/checkbox.css +3 -7
- package/dist/checkbox/checkbox.d.ts +1 -1
- package/dist/checkbox/checkbox.js +1 -1
- package/dist/checkbox/checkbox.module.js.map +1 -1
- package/dist/checkbox/parts.js +1 -1
- package/dist/collapsible/collapsible.css +7 -11
- package/dist/collapsible/collapsible.d.ts +1 -1
- package/dist/collapsible/collapsible.module.js.map +1 -1
- package/dist/collapsible/parts.js +1 -1
- package/dist/context-menu/context-menu.css +151 -0
- package/dist/context-menu/context-menu.d.ts +36 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +54 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/context-menu/context-menu.module.css.d.ts +2 -0
- package/dist/context-menu/context-menu.module.js +18 -0
- package/dist/context-menu/context-menu.module.js.map +1 -0
- package/dist/context-menu/index.d.ts +3 -0
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/parts.d.ts +38 -0
- package/dist/context-menu/parts.d.ts.map +1 -0
- package/dist/context-menu/parts.js +91 -0
- package/dist/context-menu/parts.js.map +1 -0
- package/dist/dialog/dialog.css +27 -22
- package/dist/dialog/dialog.d.ts +9 -1
- package/dist/dialog/dialog.d.ts.map +1 -1
- package/dist/dialog/dialog.js +7 -4
- package/dist/dialog/dialog.js.map +1 -1
- package/dist/dialog/dialog.module.js +2 -0
- package/dist/dialog/dialog.module.js.map +1 -1
- package/dist/dialog/parts.js +1 -1
- package/dist/drawer/drawer.css +9 -13
- package/dist/drawer/drawer.d.ts +1 -1
- package/dist/drawer/drawer.module.js.map +1 -1
- package/dist/drawer/parts.d.ts +1 -1
- package/dist/drawer/parts.js +1 -1
- package/dist/index.css +1603 -1299
- package/dist/index.d.ts +30 -24
- package/dist/index.js +41 -32
- package/dist/input/input.css +5 -9
- package/dist/input/input.js +1 -1
- package/dist/input/input.module.js.map +1 -1
- package/dist/layer-order.css +22 -0
- package/dist/menu/menu.css +13 -17
- package/dist/menu/menu.d.ts +1 -1
- package/dist/menu/menu.module.js.map +1 -1
- package/dist/menu/menuitemshortcut.js +1 -1
- package/dist/menu/parts.js +1 -1
- package/dist/number-field/number-field.css +12 -16
- package/dist/number-field/number-field.d.ts +1 -1
- package/dist/number-field/number-field.js +1 -1
- package/dist/number-field/number-field.module.js.map +1 -1
- package/dist/number-field/parts.js +1 -1
- package/dist/progress/parts.js +1 -1
- package/dist/progress/progress.css +1 -5
- package/dist/progress/progress.module.js.map +1 -1
- package/dist/reset.css +6 -6
- package/dist/select/parts.js +1 -1
- package/dist/select/select.css +14 -16
- package/dist/select/select.d.ts +5 -2
- package/dist/select/select.d.ts.map +1 -1
- package/dist/select/select.js +11 -2
- package/dist/select/select.js.map +1 -1
- package/dist/select/select.module.js.map +1 -1
- package/dist/separator/separator.css +1 -5
- package/dist/separator/separator.js +1 -1
- package/dist/separator/separator.module.js.map +1 -1
- package/dist/slider/index.d.ts +3 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/parts.d.ts +38 -0
- package/dist/slider/parts.d.ts.map +1 -0
- package/dist/slider/parts.js +69 -0
- package/dist/slider/parts.js.map +1 -0
- package/dist/slider/slider.css +97 -0
- package/dist/slider/slider.d.ts +38 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +41 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/slider/slider.module.css.d.ts +2 -0
- package/dist/slider/slider.module.js +15 -0
- package/dist/slider/slider.module.js.map +1 -0
- package/dist/styles/reset.css +6 -6
- package/dist/styles/tokens.css +91 -76
- package/dist/switch/parts.js +1 -1
- package/dist/switch/switch.css +2 -6
- package/dist/switch/switch.d.ts +1 -1
- package/dist/switch/switch.js +1 -1
- package/dist/switch/switch.module.js.map +1 -1
- package/dist/tabs/parts.js +1 -1
- package/dist/tabs/tabs.css +5 -9
- package/dist/tabs/tabs.d.ts +1 -1
- package/dist/tabs/tabs.module.js.map +1 -1
- package/dist/tailwind-theme.css +23 -23
- package/dist/toast/parts.js +1 -1
- package/dist/toast/toast.css +11 -15
- package/dist/toast/toast.d.ts +1 -1
- package/dist/toast/toast.module.js.map +1 -1
- package/dist/tokens.css +98 -82
- package/dist/tooltip/parts.js +1 -1
- package/dist/tooltip/tooltip.css +7 -11
- package/dist/tooltip/tooltip.d.ts +1 -1
- package/dist/tooltip/tooltip.module.js.map +1 -1
- package/package.json +18 -1
- package/src/accordion/accordion.module.css +6 -20
- package/src/alert-dialog/alert-dialog.module.css +91 -0
- package/src/alert-dialog/alert-dialog.tsx +69 -0
- package/src/alert-dialog/index.ts +7 -0
- package/src/alert-dialog/parts.tsx +73 -0
- package/src/badge/badge.module.css +3 -13
- package/src/button/button.module.css +44 -64
- package/src/button/button.tsx +7 -7
- package/src/card/card.module.css +5 -16
- package/src/checkbox/checkbox.module.css +3 -14
- package/src/collapsible/collapsible.module.css +7 -20
- package/src/context-menu/context-menu.module.css +168 -0
- package/src/context-menu/context-menu.tsx +75 -0
- package/src/context-menu/index.ts +21 -0
- package/src/context-menu/parts.tsx +99 -0
- package/src/dialog/dialog.module.css +26 -33
- package/src/dialog/dialog.tsx +14 -1
- package/src/drawer/drawer.module.css +9 -58
- package/src/index.ts +21 -185
- package/src/input/input.module.css +5 -21
- package/src/menu/menu.module.css +13 -43
- package/src/number-field/number-field.module.css +12 -28
- package/src/progress/progress.module.css +1 -10
- package/src/select/select.module.css +14 -35
- package/src/select/select.tsx +14 -5
- package/src/separator/separator.module.css +1 -5
- package/src/slider/index.ts +14 -0
- package/src/slider/parts.tsx +90 -0
- package/src/slider/slider.module.css +110 -0
- package/src/slider/slider.tsx +68 -0
- package/src/styles/layer-order.css +22 -0
- package/src/styles/reset.css +6 -6
- package/src/styles/tailwind-theme.css +23 -23
- package/src/styles/tokens.css +98 -82
- package/src/switch/switch.module.css +2 -12
- package/src/tabs/tabs.module.css +5 -18
- package/src/toast/toast.module.css +11 -51
- package/src/tooltip/tooltip.module.css +7 -18
package/dist/card/card.css
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
@layer theme, base;
|
|
2
|
-
|
|
3
1
|
@layer components {
|
|
4
2
|
.root_mD1LSW {
|
|
5
3
|
background-color: var(--color-surface-1);
|
|
6
|
-
border: var(--border-width-base) solid var(--color-
|
|
4
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
7
5
|
border-radius: var(--radius-xl);
|
|
8
6
|
overflow: hidden;
|
|
9
7
|
}
|
|
@@ -30,7 +28,7 @@
|
|
|
30
28
|
|
|
31
29
|
.header_mD1LSW {
|
|
32
30
|
padding: var(--space-4) var(--space-5);
|
|
33
|
-
border-bottom: var(--border-width-base) solid var(--color-
|
|
31
|
+
border-bottom: var(--border-width-base) solid var(--color-line-subtle);
|
|
34
32
|
gap: var(--space-0-5);
|
|
35
33
|
flex-direction: column;
|
|
36
34
|
display: flex;
|
|
@@ -40,7 +38,7 @@
|
|
|
40
38
|
font-family: var(--font-mono);
|
|
41
39
|
font-size: var(--font-size-md);
|
|
42
40
|
font-weight: var(--font-weight-semibold);
|
|
43
|
-
color: var(--color-
|
|
41
|
+
color: var(--color-primary);
|
|
44
42
|
line-height: var(--line-height-tight);
|
|
45
43
|
letter-spacing: var(--letter-spacing-tight);
|
|
46
44
|
}
|
|
@@ -48,7 +46,7 @@
|
|
|
48
46
|
.description_mD1LSW {
|
|
49
47
|
font-family: var(--font-mono);
|
|
50
48
|
font-size: var(--font-size-sm);
|
|
51
|
-
color: var(--color-
|
|
49
|
+
color: var(--color-secondary);
|
|
52
50
|
line-height: var(--line-height-normal);
|
|
53
51
|
}
|
|
54
52
|
|
|
@@ -58,11 +56,9 @@
|
|
|
58
56
|
|
|
59
57
|
.footer_mD1LSW {
|
|
60
58
|
padding: var(--space-3) var(--space-5);
|
|
61
|
-
border-top: var(--border-width-base) solid var(--color-
|
|
59
|
+
border-top: var(--border-width-base) solid var(--color-line-subtle);
|
|
62
60
|
align-items: center;
|
|
63
61
|
gap: var(--space-2);
|
|
64
62
|
display: flex;
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
|
-
|
|
68
|
-
@layer utilities;
|
package/dist/card/card.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.module.js","names":[],"sources":["../../src/card/card.module.css"],"sourcesContent":["@layer
|
|
1
|
+
{"version":3,"file":"card.module.js","names":[],"sources":["../../src/card/card.module.css"],"sourcesContent":["@layer components {\n .root {\n background-color: var(--color-surface-1);\n border: var(--border-width-base) solid var(--color-line);\n border-radius: var(--radius-xl);\n overflow: hidden;\n }\n .root-elevated {\n box-shadow: var(--shadow-sm);\n }\n .root-interactive {\n cursor: pointer;\n transition:\n border-color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard),\n transform var(--duration-fast) var(--easing-standard);\n }\n .root-interactive:hover {\n border-color: var(--color-accent);\n box-shadow: var(--shadow-md);\n }\n .root-interactive:active {\n transform: scale(0.995);\n }\n .header {\n padding: var(--space-4) var(--space-5);\n border-bottom: var(--border-width-base) solid var(--color-line-subtle);\n display: flex;\n flex-direction: column;\n gap: var(--space-0-5);\n }\n .title {\n font-family: var(--font-mono);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semibold);\n color: var(--color-primary);\n line-height: var(--line-height-tight);\n letter-spacing: var(--letter-spacing-tight);\n }\n .description {\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-secondary);\n line-height: var(--line-height-normal);\n }\n .body {\n padding: var(--space-4) var(--space-5);\n }\n .footer {\n padding: var(--space-3) var(--space-5);\n border-top: var(--border-width-base) solid var(--color-line-subtle);\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n}\n"],"mappings":";AAgBA,IAAA,sBAAE;CAAA,QAAA;CAAA,eAAA;CAAA,UAAA;CAAA,UAAA;CAAA,QAAA;CAAA,iBAAA;CAAA,oBAAA;CAAA,SAAA;CAAA"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@layer theme, base;
|
|
2
|
-
|
|
3
1
|
@layer components {
|
|
4
2
|
.root_J4At5G {
|
|
5
3
|
align-items: center;
|
|
@@ -16,7 +14,7 @@
|
|
|
16
14
|
|
|
17
15
|
.indicator_J4At5G {
|
|
18
16
|
border-radius: var(--radius-sm);
|
|
19
|
-
border: var(--border-width-base) solid var(--color-
|
|
17
|
+
border: var(--border-width-base) solid var(--color-line-strong);
|
|
20
18
|
background-color: var(--color-surface-1);
|
|
21
19
|
width: 16px;
|
|
22
20
|
height: 16px;
|
|
@@ -53,7 +51,7 @@
|
|
|
53
51
|
.icon_J4At5G {
|
|
54
52
|
width: 10px;
|
|
55
53
|
height: 10px;
|
|
56
|
-
color: var(--color-
|
|
54
|
+
color: var(--color-on-accent);
|
|
57
55
|
opacity: 0;
|
|
58
56
|
transition: opacity var(--duration-fast) var(--easing-standard),
|
|
59
57
|
transform var(--duration-fast) var(--easing-spring);
|
|
@@ -68,9 +66,7 @@
|
|
|
68
66
|
.label_J4At5G {
|
|
69
67
|
font-family: var(--font-mono);
|
|
70
68
|
font-size: var(--font-size-sm);
|
|
71
|
-
color: var(--color-
|
|
69
|
+
color: var(--color-primary);
|
|
72
70
|
line-height: var(--line-height-normal);
|
|
73
71
|
}
|
|
74
72
|
}
|
|
75
|
-
|
|
76
|
-
@layer utilities;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import checkbox_module_default from "./checkbox.module.js";
|
|
2
|
-
import { useId } from "react";
|
|
3
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from "react";
|
|
4
4
|
import { Checkbox } from "@base-ui/react/checkbox";
|
|
5
5
|
//#region src/checkbox/checkbox.tsx
|
|
6
6
|
function Checkbox$1({ children, id, className, onCheckedChange, ...props }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.module.js","names":[],"sources":["../../src/checkbox/checkbox.module.css"],"sourcesContent":["@layer
|
|
1
|
+
{"version":3,"file":"checkbox.module.js","names":[],"sources":["../../src/checkbox/checkbox.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n user-select: none;\n }\n .root[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .indicator {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border-radius: var(--radius-sm);\n border: var(--border-width-base) solid var(--color-line-strong);\n background-color: var(--color-surface-1);\n display: flex;\n align-items: center;\n justify-content: center;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard);\n outline: none;\n position: relative;\n }\n .indicator:focus-visible {\n box-shadow: var(--shadow-focus);\n border-color: var(--color-accent);\n }\n .indicator:hover:not([data-disabled]) {\n border-color: var(--color-accent);\n }\n .indicator[data-checked],\n .indicator[data-indeterminate] {\n background-color: var(--color-accent);\n border-color: var(--color-accent);\n }\n .indicator[data-checked]:hover,\n .indicator[data-indeterminate]:hover {\n background-color: var(--color-accent-hover);\n border-color: var(--color-accent-hover);\n }\n /* Checkmark SVG */\n .icon {\n width: 10px;\n height: 10px;\n color: var(--color-on-accent);\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity var(--duration-fast) var(--easing-standard),\n transform var(--duration-fast) var(--easing-spring);\n }\n .indicator[data-checked] .icon,\n .indicator[data-indeterminate] .icon {\n opacity: 1;\n transform: scale(1);\n }\n .label {\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-primary);\n line-height: var(--line-height-normal);\n }\n}\n"],"mappings":";AAQA,IAAA,0BAAa;CAAA,QAAU;CAAA,aAAA;CAAA,SAAA;CAAA,QAAA;CAAA"}
|
package/dist/checkbox/parts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import checkbox_module_default from "./checkbox.module.js";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
4
|
import { Checkbox } from "@base-ui/react/checkbox";
|
|
5
5
|
//#region src/checkbox/parts.tsx
|
|
6
6
|
/**
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@layer theme, base;
|
|
2
|
-
|
|
3
1
|
@layer components {
|
|
4
2
|
.root_rWN60G {
|
|
5
3
|
flex-direction: column;
|
|
@@ -14,9 +12,9 @@
|
|
|
14
12
|
font-family: var(--font-mono);
|
|
15
13
|
font-size: var(--font-size-sm);
|
|
16
14
|
font-weight: var(--font-weight-medium);
|
|
17
|
-
color: var(--color-
|
|
15
|
+
color: var(--color-primary);
|
|
18
16
|
background: var(--color-surface-1);
|
|
19
|
-
border: var(--border-width-base) solid var(--color-
|
|
17
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
20
18
|
border-radius: var(--radius-md);
|
|
21
19
|
cursor: pointer;
|
|
22
20
|
text-align: left;
|
|
@@ -40,7 +38,7 @@
|
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
.trigger_rWN60G:hover {
|
|
43
|
-
background-color: var(--color-
|
|
41
|
+
background-color: var(--color-hover);
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
.trigger_rWN60G:focus-visible {
|
|
@@ -53,7 +51,7 @@
|
|
|
53
51
|
}
|
|
54
52
|
|
|
55
53
|
.trigger-icon_rWN60G {
|
|
56
|
-
color: var(--color-
|
|
54
|
+
color: var(--color-tertiary);
|
|
57
55
|
transition: transform var(--duration-normal) var(--easing-standard);
|
|
58
56
|
flex-shrink: 0;
|
|
59
57
|
}
|
|
@@ -80,13 +78,11 @@
|
|
|
80
78
|
padding: var(--space-3) var(--space-3) var(--space-3) var(--space-3);
|
|
81
79
|
font-family: var(--font-mono);
|
|
82
80
|
font-size: var(--font-size-sm);
|
|
83
|
-
color: var(--color-
|
|
81
|
+
color: var(--color-secondary);
|
|
84
82
|
line-height: var(--line-height-relaxed);
|
|
85
|
-
border: var(--border-width-base) solid var(--color-
|
|
83
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
86
84
|
border-radius: 0 0 var(--radius-md) var(--radius-md);
|
|
87
|
-
background: var(--color-
|
|
85
|
+
background: var(--color-elevated);
|
|
88
86
|
border-top: none;
|
|
89
87
|
}
|
|
90
88
|
}
|
|
91
|
-
|
|
92
|
-
@layer utilities;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapsible.module.js","names":[],"sources":["../../src/collapsible/collapsible.module.css"],"sourcesContent":["@layer
|
|
1
|
+
{"version":3,"file":"collapsible.module.js","names":[],"sources":["../../src/collapsible/collapsible.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n flex-direction: column;\n gap: 0;\n }\n .trigger {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n color: var(--color-primary);\n background: var(--color-surface-1);\n border: var(--border-width-base) solid var(--color-line);\n border-radius: var(--radius-md);\n cursor: pointer;\n outline: none;\n text-align: left;\n user-select: none;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-bottom-left-radius var(--duration-normal) var(--easing-standard) var(--duration-normal),\n border-bottom-right-radius var(--duration-normal) var(--easing-standard) var(--duration-normal),\n border-bottom-color var(--duration-normal) var(--easing-standard) var(--duration-normal);\n }\n .trigger[data-panel-open] {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-color: transparent;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n border-bottom-left-radius var(--duration-normal) var(--easing-standard),\n border-bottom-right-radius var(--duration-normal) var(--easing-standard),\n border-bottom-color var(--duration-normal) var(--easing-standard);\n }\n .trigger:hover {\n background-color: var(--color-hover);\n }\n .trigger:focus-visible {\n box-shadow: var(--shadow-focus);\n }\n .trigger[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .trigger-icon {\n color: var(--color-tertiary);\n flex-shrink: 0;\n transition: transform var(--duration-normal) var(--easing-standard);\n }\n .trigger[data-panel-open] .trigger-icon {\n transform: rotate(90deg);\n }\n .panel {\n height: var(--collapsible-panel-height);\n overflow: hidden;\n transition: height var(--duration-normal) var(--easing-standard);\n }\n /* hide when not using hidden=\"until-found\" */\n .panel[hidden]:not([hidden=\"until-found\"]) {\n display: none;\n }\n .panel[data-starting-style],\n .panel[data-ending-style] {\n height: 0;\n }\n .panel-content {\n padding: var(--space-3) var(--space-3) var(--space-3) var(--space-3);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-secondary);\n line-height: var(--line-height-relaxed);\n border: var(--border-width-base) solid var(--color-line);\n border-top: none;\n border-radius: 0 0 var(--radius-md) var(--radius-md);\n background: var(--color-elevated);\n }\n}\n"],"mappings":";AAUA,IAAA,6BAAa;CAAG,SAAQ;CAAe,iBAAG;CAAA,QAAA;CAAA,WAAA;CAAA,gBAAA;CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import collapsible_module_default from "./collapsible.module.js";
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
4
|
import { Collapsible } from "@base-ui/react/collapsible";
|
|
5
5
|
//#region src/collapsible/parts.tsx
|
|
6
6
|
/**
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.positioner_U19WMG {
|
|
3
|
+
z-index: var(--z-dropdown);
|
|
4
|
+
outline: none;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.popup_U19WMG {
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
padding: var(--space-1) 0;
|
|
10
|
+
border-radius: var(--radius-lg);
|
|
11
|
+
background-color: var(--color-overlay);
|
|
12
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
13
|
+
box-shadow: var(--shadow-popover);
|
|
14
|
+
color: var(--color-primary);
|
|
15
|
+
font-family: var(--font-sans);
|
|
16
|
+
font-size: var(--font-size-md);
|
|
17
|
+
min-width: 220px;
|
|
18
|
+
transform-origin: var(--transform-origin);
|
|
19
|
+
transition: opacity .15s var(--easing-ease-out),
|
|
20
|
+
transform .15s var(--easing-ease-out);
|
|
21
|
+
outline: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@supports (backdrop-filter: blur(20px)) {
|
|
25
|
+
.popup_U19WMG {
|
|
26
|
+
-webkit-backdrop-filter: blur(20px) saturate(1.8);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.popup_U19WMG[data-starting-style] {
|
|
31
|
+
opacity: 0;
|
|
32
|
+
transform: scale(.97);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.popup_U19WMG[data-ending-style] {
|
|
36
|
+
opacity: 0;
|
|
37
|
+
transition: opacity 75ms var(--easing-ease-in),
|
|
38
|
+
transform 75ms var(--easing-ease-in);
|
|
39
|
+
transform: scale(.99);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.trigger_U19WMG {
|
|
43
|
+
-webkit-user-select: none;
|
|
44
|
+
user-select: none;
|
|
45
|
+
cursor: default;
|
|
46
|
+
outline: none;
|
|
47
|
+
display: block;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.item_U19WMG {
|
|
51
|
+
align-items: center;
|
|
52
|
+
gap: var(--space-2);
|
|
53
|
+
padding: var(--space-1) var(--space-4);
|
|
54
|
+
font-family: var(--font-sans);
|
|
55
|
+
font-size: var(--font-size-md);
|
|
56
|
+
color: var(--color-primary);
|
|
57
|
+
cursor: default;
|
|
58
|
+
user-select: none;
|
|
59
|
+
outline: none;
|
|
60
|
+
transition: none;
|
|
61
|
+
display: flex;
|
|
62
|
+
position: relative;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.item_U19WMG[data-highlighted] {
|
|
66
|
+
background-color: var(--color-accent);
|
|
67
|
+
color: var(--color-on-accent);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.item_U19WMG[data-disabled] {
|
|
71
|
+
opacity: .36;
|
|
72
|
+
cursor: not-allowed;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.item-icon_U19WMG {
|
|
76
|
+
width: 16px;
|
|
77
|
+
height: 16px;
|
|
78
|
+
color: inherit;
|
|
79
|
+
flex-shrink: 0;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
align-items: center;
|
|
82
|
+
display: flex;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.item-label_U19WMG {
|
|
86
|
+
flex: 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.item-shortcut_U19WMG {
|
|
90
|
+
margin-left: var(--space-8);
|
|
91
|
+
font-size: var(--font-size-sm);
|
|
92
|
+
color: var(--color-tertiary);
|
|
93
|
+
flex-shrink: 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.item_U19WMG[data-highlighted] .item-shortcut_U19WMG {
|
|
97
|
+
color: color-mix(in srgb, var(--color-on-accent) 60%, transparent);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.submenu-icon_U19WMG {
|
|
101
|
+
color: var(--color-tertiary);
|
|
102
|
+
flex-shrink: 0;
|
|
103
|
+
margin-left: auto;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.item_U19WMG[data-highlighted] .submenu-icon_U19WMG, .submenu-trigger_U19WMG[data-highlighted] .submenu-icon_U19WMG {
|
|
107
|
+
color: color-mix(in srgb, var(--color-on-accent) 70%, transparent);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.submenu-trigger_U19WMG {
|
|
111
|
+
align-items: center;
|
|
112
|
+
gap: var(--space-2);
|
|
113
|
+
padding: var(--space-1) var(--space-4);
|
|
114
|
+
font-family: var(--font-sans);
|
|
115
|
+
font-size: var(--font-size-md);
|
|
116
|
+
color: var(--color-primary);
|
|
117
|
+
cursor: default;
|
|
118
|
+
user-select: none;
|
|
119
|
+
outline: none;
|
|
120
|
+
transition: none;
|
|
121
|
+
display: flex;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.submenu-trigger_U19WMG[data-highlighted], .submenu-trigger_U19WMG[data-popup-open] {
|
|
125
|
+
background-color: var(--color-accent);
|
|
126
|
+
color: var(--color-on-accent);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.submenu-trigger_U19WMG[data-disabled] {
|
|
130
|
+
opacity: .36;
|
|
131
|
+
cursor: not-allowed;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.group-label_U19WMG {
|
|
135
|
+
padding: var(--space-1) var(--space-4) var(--space-0-5);
|
|
136
|
+
font-family: var(--font-sans);
|
|
137
|
+
font-size: var(--font-size-xs);
|
|
138
|
+
font-weight: var(--font-weight-semibold);
|
|
139
|
+
color: var(--color-tertiary);
|
|
140
|
+
text-transform: uppercase;
|
|
141
|
+
letter-spacing: var(--letter-spacing-wide);
|
|
142
|
+
cursor: default;
|
|
143
|
+
user-select: none;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.separator_U19WMG {
|
|
147
|
+
margin: var(--space-1) var(--space-4);
|
|
148
|
+
height: var(--border-width-base);
|
|
149
|
+
background-color: var(--color-line-subtle);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { ReactElement, ReactNode } from "react";
|
|
3
|
+
import styles from "./context-menu.module.css";
|
|
4
|
+
|
|
5
|
+
//#region src/context-menu/context-menu.d.ts
|
|
6
|
+
interface ContextMenuItemDef {
|
|
7
|
+
type?: "item";
|
|
8
|
+
label: ReactNode;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
shortcut?: string;
|
|
11
|
+
onSelect?: () => void;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
interface ContextMenuSeparatorDef {
|
|
15
|
+
type: "separator";
|
|
16
|
+
}
|
|
17
|
+
interface ContextMenuGroupDef {
|
|
18
|
+
type: "group";
|
|
19
|
+
label?: ReactNode;
|
|
20
|
+
items: ContextMenuItemDef[];
|
|
21
|
+
}
|
|
22
|
+
type ContextMenuEntry = ContextMenuItemDef | ContextMenuSeparatorDef | ContextMenuGroupDef;
|
|
23
|
+
interface ContextMenuProps {
|
|
24
|
+
/** The element that can be right-clicked / long-pressed to open the menu. */
|
|
25
|
+
children: ReactElement;
|
|
26
|
+
items: ContextMenuEntry[];
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
declare function ContextMenu({
|
|
30
|
+
children,
|
|
31
|
+
items,
|
|
32
|
+
className
|
|
33
|
+
}: ContextMenuProps): react_jsx_runtime0.JSX.Element;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { ContextMenu, ContextMenuEntry, ContextMenuGroupDef, ContextMenuItemDef, ContextMenuProps, ContextMenuSeparatorDef, styles };
|
|
36
|
+
//# sourceMappingURL=context-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.d.ts","names":[],"sources":["../../src/context-menu/context-menu.tsx"],"mappings":";;;;;UAIiB,kBAAA;EACf,IAAA;EACA,KAAA,EAAO,SAAA;EACP,IAAA,GAAO,SAAA;EACP,QAAA;EACA,QAAA;EACA,QAAA;AAAA;AAAA,UAGe,uBAAA;EACf,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,IAAA;EACA,KAAA,GAAQ,SAAA;EACR,KAAA,EAAO,kBAAA;AAAA;AAAA,KAGG,gBAAA,GAAmB,kBAAA,GAAqB,uBAAA,GAA0B,mBAAA;AAAA,UAE7D,gBAAA;EAZuB;EActC,QAAA,EAAU,YAAA;EACV,KAAA,EAAO,gBAAA;EACP,SAAA;AAAA;AAAA,iBAac,WAAA,CAAA;EAAc,QAAA;EAAU,KAAA;EAAO;AAAA,GAAa,gBAAA,GAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import context_menu_module_default from "./context-menu.module.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ContextMenu } from "@base-ui/react/context-menu";
|
|
4
|
+
//#region src/context-menu/context-menu.tsx
|
|
5
|
+
function RenderItem({ item, i }) {
|
|
6
|
+
return /* @__PURE__ */ jsxs(ContextMenu.Item, {
|
|
7
|
+
className: context_menu_module_default.item,
|
|
8
|
+
disabled: item.disabled,
|
|
9
|
+
onClick: item.onSelect,
|
|
10
|
+
children: [
|
|
11
|
+
item.icon && /* @__PURE__ */ jsx("span", {
|
|
12
|
+
className: context_menu_module_default["item-icon"],
|
|
13
|
+
children: item.icon
|
|
14
|
+
}),
|
|
15
|
+
/* @__PURE__ */ jsx("span", {
|
|
16
|
+
className: context_menu_module_default["item-label"],
|
|
17
|
+
children: item.label
|
|
18
|
+
}),
|
|
19
|
+
item.shortcut && /* @__PURE__ */ jsx("span", {
|
|
20
|
+
className: context_menu_module_default["item-shortcut"],
|
|
21
|
+
children: item.shortcut
|
|
22
|
+
})
|
|
23
|
+
]
|
|
24
|
+
}, i);
|
|
25
|
+
}
|
|
26
|
+
function ContextMenu$1({ children, items, className }) {
|
|
27
|
+
return /* @__PURE__ */ jsxs(ContextMenu.Root, { children: [/* @__PURE__ */ jsx(ContextMenu.Trigger, {
|
|
28
|
+
className: `${context_menu_module_default.trigger} ${className ?? ""}`,
|
|
29
|
+
render: children
|
|
30
|
+
}), /* @__PURE__ */ jsx(ContextMenu.Portal, { children: /* @__PURE__ */ jsx(ContextMenu.Positioner, {
|
|
31
|
+
className: context_menu_module_default.positioner,
|
|
32
|
+
children: /* @__PURE__ */ jsx(ContextMenu.Popup, {
|
|
33
|
+
className: context_menu_module_default.popup,
|
|
34
|
+
children: items.map((entry, i) => {
|
|
35
|
+
if (entry.type === "separator") return /* @__PURE__ */ jsx(ContextMenu.Separator, { className: context_menu_module_default.separator }, i);
|
|
36
|
+
if (entry.type === "group") return /* @__PURE__ */ jsxs(ContextMenu.Group, { children: [entry.label && /* @__PURE__ */ jsx(ContextMenu.GroupLabel, {
|
|
37
|
+
className: context_menu_module_default["group-label"],
|
|
38
|
+
children: entry.label
|
|
39
|
+
}), entry.items.map((item, j) => /* @__PURE__ */ jsx(RenderItem, {
|
|
40
|
+
item,
|
|
41
|
+
i: j
|
|
42
|
+
}, j))] }, i);
|
|
43
|
+
return /* @__PURE__ */ jsx(RenderItem, {
|
|
44
|
+
item: entry,
|
|
45
|
+
i
|
|
46
|
+
}, i);
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
}) })] });
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { ContextMenu$1 as ContextMenu };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=context-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.js","names":["BaseContextMenu","styles","ContextMenu"],"sources":["../../src/context-menu/context-menu.tsx"],"sourcesContent":["import type { ReactNode, ReactElement } from \"react\";\nimport { ContextMenu as BaseContextMenu } from \"@base-ui/react/context-menu\";\nimport styles from \"./context-menu.module.css\";\n\nexport interface ContextMenuItemDef {\n type?: \"item\";\n label: ReactNode;\n icon?: ReactNode;\n shortcut?: string;\n onSelect?: () => void;\n disabled?: boolean;\n}\n\nexport interface ContextMenuSeparatorDef {\n type: \"separator\";\n}\n\nexport interface ContextMenuGroupDef {\n type: \"group\";\n label?: ReactNode;\n items: ContextMenuItemDef[];\n}\n\nexport type ContextMenuEntry = ContextMenuItemDef | ContextMenuSeparatorDef | ContextMenuGroupDef;\n\nexport interface ContextMenuProps {\n /** The element that can be right-clicked / long-pressed to open the menu. */\n children: ReactElement;\n items: ContextMenuEntry[];\n className?: string;\n}\n\nfunction RenderItem({ item, i }: { item: ContextMenuItemDef; i: number }) {\n return (\n <BaseContextMenu.Item key={i} className={styles.item} disabled={item.disabled} onClick={item.onSelect}>\n {item.icon && <span className={styles[\"item-icon\"]}>{item.icon}</span>}\n <span className={styles[\"item-label\"]}>{item.label}</span>\n {item.shortcut && <span className={styles[\"item-shortcut\"]}>{item.shortcut}</span>}\n </BaseContextMenu.Item>\n );\n}\n\nexport function ContextMenu({ children, items, className }: ContextMenuProps) {\n return (\n <BaseContextMenu.Root>\n <BaseContextMenu.Trigger className={`${styles.trigger} ${className ?? \"\"}`} render={children} />\n <BaseContextMenu.Portal>\n <BaseContextMenu.Positioner className={styles.positioner}>\n <BaseContextMenu.Popup className={styles.popup}>\n {items.map((entry, i) => {\n if (entry.type === \"separator\") {\n return <BaseContextMenu.Separator key={i} className={styles.separator} />;\n }\n if (entry.type === \"group\") {\n return (\n <BaseContextMenu.Group key={i}>\n {entry.label && (\n <BaseContextMenu.GroupLabel className={styles[\"group-label\"]}>{entry.label}</BaseContextMenu.GroupLabel>\n )}\n {entry.items.map((item, j) => (\n <RenderItem key={j} item={item} i={j} />\n ))}\n </BaseContextMenu.Group>\n );\n }\n return <RenderItem key={i} item={entry} i={i} />;\n })}\n </BaseContextMenu.Popup>\n </BaseContextMenu.Positioner>\n </BaseContextMenu.Portal>\n </BaseContextMenu.Root>\n );\n}\n\nexport { styles as ContextMenuStyles };\n"],"mappings":";;;;AAgCA,SAAS,WAAW,EAAE,MAAM,KAA8C;AACxE,QACE,qBAACA,YAAgB,MAAjB;EAA8B,WAAWC,4BAAO;EAAM,UAAU,KAAK;EAAU,SAAS,KAAK;YAA7F;GACG,KAAK,QAAQ,oBAAC,QAAD;IAAM,WAAWA,4BAAO;cAAe,KAAK;IAAY,CAAA;GACtE,oBAAC,QAAD;IAAM,WAAWA,4BAAO;cAAgB,KAAK;IAAa,CAAA;GACzD,KAAK,YAAY,oBAAC,QAAD;IAAM,WAAWA,4BAAO;cAAmB,KAAK;IAAgB,CAAA;GAC7D;IAJI,EAIJ;;AAI3B,SAAgBC,cAAY,EAAE,UAAU,OAAO,aAA+B;AAC5E,QACE,qBAACF,YAAgB,MAAjB,EAAA,UAAA,CACE,oBAACA,YAAgB,SAAjB;EAAyB,WAAW,GAAGC,4BAAO,QAAQ,GAAG,aAAa;EAAM,QAAQ;EAAY,CAAA,EAChG,oBAACD,YAAgB,QAAjB,EAAA,UACE,oBAACA,YAAgB,YAAjB;EAA4B,WAAWC,4BAAO;YAC5C,oBAACD,YAAgB,OAAjB;GAAuB,WAAWC,4BAAO;aACtC,MAAM,KAAK,OAAO,MAAM;AACvB,QAAI,MAAM,SAAS,YACjB,QAAO,oBAACD,YAAgB,WAAjB,EAAmC,WAAWC,4BAAO,WAAa,EAAlC,EAAkC;AAE3E,QAAI,MAAM,SAAS,QACjB,QACE,qBAACD,YAAgB,OAAjB,EAAA,UAAA,CACG,MAAM,SACL,oBAACA,YAAgB,YAAjB;KAA4B,WAAWC,4BAAO;eAAiB,MAAM;KAAmC,CAAA,EAEzG,MAAM,MAAM,KAAK,MAAM,MACtB,oBAAC,YAAD;KAA0B;KAAM,GAAG;KAAK,EAAvB,EAAuB,CACxC,CACoB,EAAA,EAPI,EAOJ;AAG5B,WAAO,oBAAC,YAAD;KAAoB,MAAM;KAAU;KAAK,EAAxB,EAAwB;KAChD;GACoB,CAAA;EACG,CAAA,EACN,CAAA,CACJ,EAAA,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/context-menu/context-menu.module.css
|
|
2
|
+
var context_menu_module_default = {
|
|
3
|
+
"group-label": "group-label_U19WMG",
|
|
4
|
+
"item": "item_U19WMG",
|
|
5
|
+
"item-icon": "item-icon_U19WMG",
|
|
6
|
+
"item-label": "item-label_U19WMG",
|
|
7
|
+
"item-shortcut": "item-shortcut_U19WMG",
|
|
8
|
+
"popup": "popup_U19WMG",
|
|
9
|
+
"positioner": "positioner_U19WMG",
|
|
10
|
+
"separator": "separator_U19WMG",
|
|
11
|
+
"submenu-icon": "submenu-icon_U19WMG",
|
|
12
|
+
"submenu-trigger": "submenu-trigger_U19WMG",
|
|
13
|
+
"trigger": "trigger_U19WMG"
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { context_menu_module_default as default };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=context-menu.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.module.js","names":[],"sources":["../../src/context-menu/context-menu.module.css"],"sourcesContent":["@layer components {\n .positioner {\n outline: none;\n z-index: var(--z-dropdown);\n }\n\n .popup {\n box-sizing: border-box;\n padding: var(--space-1) 0;\n border-radius: var(--radius-lg);\n background-color: var(--color-overlay);\n border: var(--border-width-base) solid var(--color-line);\n box-shadow: var(--shadow-popover);\n color: var(--color-primary);\n font-family: var(--font-sans);\n font-size: var(--font-size-md);\n min-width: 220px;\n transform-origin: var(--transform-origin);\n outline: none;\n transition:\n opacity 150ms var(--easing-ease-out),\n transform 150ms var(--easing-ease-out);\n }\n\n @supports (backdrop-filter: blur(20px)) {\n .popup {\n backdrop-filter: blur(20px) saturate(1.8);\n -webkit-backdrop-filter: blur(20px) saturate(1.8);\n }\n }\n\n .popup[data-starting-style] {\n opacity: 0;\n transform: scale(0.97);\n }\n\n .popup[data-ending-style] {\n opacity: 0;\n transform: scale(0.99);\n transition:\n opacity 75ms var(--easing-ease-in),\n transform 75ms var(--easing-ease-in);\n }\n\n /* ─── Trigger area ───────────────────────────────────────────── */\n\n .trigger {\n display: block;\n outline: none;\n user-select: none;\n -webkit-user-select: none;\n cursor: default;\n }\n\n /* ─── Item ───────────────────────────────────────────────────── */\n\n .item {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n /* Full-width — no inset margin */\n padding: var(--space-1) var(--space-4);\n font-family: var(--font-sans);\n font-size: var(--font-size-md);\n color: var(--color-primary);\n cursor: default;\n outline: none;\n user-select: none;\n position: relative;\n transition: none;\n }\n\n .item[data-highlighted] {\n background-color: var(--color-accent);\n color: var(--color-on-accent);\n }\n\n .item[data-disabled] {\n opacity: 0.36;\n cursor: not-allowed;\n }\n\n /* ─── Item internals ─────────────────────────────────────────── */\n\n .item-icon {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n }\n\n .item-label {\n flex: 1;\n }\n\n .item-shortcut {\n margin-left: var(--space-8);\n font-size: var(--font-size-sm);\n color: var(--color-tertiary);\n flex-shrink: 0;\n }\n\n .item[data-highlighted] .item-shortcut {\n color: color-mix(in srgb, var(--color-on-accent) 60%, transparent);\n }\n\n .submenu-icon {\n margin-left: auto;\n color: var(--color-tertiary);\n flex-shrink: 0;\n }\n\n .item[data-highlighted] .submenu-icon,\n .submenu-trigger[data-highlighted] .submenu-icon {\n color: color-mix(in srgb, var(--color-on-accent) 70%, transparent);\n }\n\n /* ─── Submenu trigger ────────────────────────────────────────── */\n\n .submenu-trigger {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1) var(--space-4);\n font-family: var(--font-sans);\n font-size: var(--font-size-md);\n color: var(--color-primary);\n cursor: default;\n outline: none;\n user-select: none;\n transition: none;\n }\n\n .submenu-trigger[data-highlighted],\n .submenu-trigger[data-popup-open] {\n background-color: var(--color-accent);\n color: var(--color-on-accent);\n }\n\n .submenu-trigger[data-disabled] {\n opacity: 0.36;\n cursor: not-allowed;\n }\n\n /* ─── Group label ────────────────────────────────────────────── */\n\n .group-label {\n padding: var(--space-1) var(--space-4) var(--space-0-5);\n font-family: var(--font-sans);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-semibold);\n color: var(--color-tertiary);\n text-transform: uppercase;\n letter-spacing: var(--letter-spacing-wide);\n cursor: default;\n user-select: none;\n }\n\n /* ─── Separator ──────────────────────────────────────────────── */\n .separator {\n margin: var(--space-1) var(--space-4);\n height: var(--border-width-base);\n background-color: var(--color-line-subtle);\n }\n}\n"],"mappings":";AAsBA,IAAA,8BAAE;CAAA,eAAA;CAAA,QAAA;CAAA,aAAA;CAAA,cAAA;CAAA,iBAAA;CAAA,SAAA;CAAA,cAAA;CAAA,aAAA;CAAA,gBAAA;CAAA,mBAAA;CAAA,WAAA;CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ContextMenu, ContextMenuEntry, ContextMenuGroupDef, ContextMenuItemDef, ContextMenuProps, ContextMenuSeparatorDef, styles } from "./context-menu.js";
|
|
2
|
+
import { ContextMenuGroup, ContextMenuGroupLabel, ContextMenuGroupLabelProps, ContextMenuGroupProps, ContextMenuItem, ContextMenuItemProps, ContextMenuPopup, ContextMenuPopupProps, ContextMenuSeparator, ContextMenuSeparatorProps, ContextMenuSubmenuTrigger, ContextMenuSubmenuTriggerProps } from "./parts.js";
|
|
3
|
+
export { ContextMenu, type ContextMenuEntry, ContextMenuGroup, type ContextMenuGroupDef, ContextMenuGroupLabel, type ContextMenuGroupLabelProps, type ContextMenuGroupProps, ContextMenuItem, type ContextMenuItemDef, type ContextMenuItemProps, ContextMenuPopup, type ContextMenuPopupProps, type ContextMenuProps, ContextMenuSeparator, type ContextMenuSeparatorDef, type ContextMenuSeparatorProps, styles as ContextMenuStyles, ContextMenuSubmenuTrigger, type ContextMenuSubmenuTriggerProps };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import context_menu_module_default from "./context-menu.module.js";
|
|
2
|
+
import { ContextMenu } from "./context-menu.js";
|
|
3
|
+
import { ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPopup, ContextMenuSeparator, ContextMenuSubmenuTrigger } from "./parts.js";
|
|
4
|
+
export { ContextMenu, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPopup, ContextMenuSeparator, context_menu_module_default as ContextMenuStyles, ContextMenuSubmenuTrigger };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as react from "react";
|
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import { ContextMenu } from "@base-ui/react/context-menu";
|
|
4
|
+
|
|
5
|
+
//#region src/context-menu/parts.d.ts
|
|
6
|
+
type BasePopupProps = ComponentPropsWithoutRef<typeof ContextMenu.Popup>;
|
|
7
|
+
type BaseItemProps = ComponentPropsWithoutRef<typeof ContextMenu.Item>;
|
|
8
|
+
type BaseSeparatorProps = ComponentPropsWithoutRef<typeof ContextMenu.Separator>;
|
|
9
|
+
type BaseGroupProps = ComponentPropsWithoutRef<typeof ContextMenu.Group>;
|
|
10
|
+
type BaseGroupLabelProps = ComponentPropsWithoutRef<typeof ContextMenu.GroupLabel>;
|
|
11
|
+
type BaseSubmenuTriggerProps = ComponentPropsWithoutRef<typeof ContextMenu.SubmenuTrigger>;
|
|
12
|
+
interface ContextMenuPopupProps extends Omit<BasePopupProps, "className"> {
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
interface ContextMenuItemProps extends Omit<BaseItemProps, "className"> {
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
interface ContextMenuSeparatorProps extends Omit<BaseSeparatorProps, "className"> {
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
interface ContextMenuGroupProps extends Omit<BaseGroupProps, "className"> {
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
interface ContextMenuGroupLabelProps extends Omit<BaseGroupLabelProps, "className"> {
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
interface ContextMenuSubmenuTriggerProps extends Omit<BaseSubmenuTriggerProps, "className"> {
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
declare const ContextMenuPopup: react.ForwardRefExoticComponent<ContextMenuPopupProps & react.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
declare const ContextMenuItem: react.ForwardRefExoticComponent<ContextMenuItemProps & react.RefAttributes<HTMLElement>>;
|
|
32
|
+
declare const ContextMenuSeparator: react.ForwardRefExoticComponent<ContextMenuSeparatorProps & react.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
declare const ContextMenuGroup: react.ForwardRefExoticComponent<ContextMenuGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
declare const ContextMenuGroupLabel: react.ForwardRefExoticComponent<ContextMenuGroupLabelProps & react.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
declare const ContextMenuSubmenuTrigger: react.ForwardRefExoticComponent<ContextMenuSubmenuTriggerProps & react.RefAttributes<HTMLElement>>;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { ContextMenuGroup, ContextMenuGroupLabel, ContextMenuGroupLabelProps, ContextMenuGroupProps, ContextMenuItem, ContextMenuItemProps, ContextMenuPopup, ContextMenuPopupProps, ContextMenuSeparator, ContextMenuSeparatorProps, ContextMenuSubmenuTrigger, ContextMenuSubmenuTriggerProps };
|
|
38
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/context-menu/parts.tsx"],"mappings":";;;;;KA4BK,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,aAAA,GAAgB,wBAAA,QAAgC,WAAA,CAAgB,IAAA;AAAA,KAChE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,mBAAA,GAAsB,wBAAA,QAAgC,WAAA,CAAgB,UAAA;AAAA,KACtE,uBAAA,GAA0B,wBAAA,QAAgC,WAAA,CAAgB,cAAA;AAAA,UAE9D,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,oBAAA,SAA6B,IAAA,CAAK,aAAA;EACjD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,0BAAA,SAAmC,IAAA,CAAK,mBAAA;EACvD,SAAA;AAAA;AAAA,UAEe,8BAAA,SAAuC,IAAA,CAAK,uBAAA;EAC3D,SAAA;AAAA;AAAA,cAGW,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOhB,eAAA,EAAe,KAAA,CAAA,yBAAA,CAAA,oBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,WAAA;AAAA,cAOf,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAMpB,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOhB,qBAAA,EAAqB,KAAA,CAAA,yBAAA,CAAA,0BAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAMrB,yBAAA,EAAyB,KAAA,CAAA,yBAAA,CAAA,8BAAA,GAAA,KAAA,CAAA,aAAA,CAAA,WAAA"}
|