@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.
Files changed (173) hide show
  1. package/README.md +183 -111
  2. package/dist/accordion/accordion.css +6 -10
  3. package/dist/accordion/accordion.d.ts +1 -1
  4. package/dist/accordion/accordion.js +1 -1
  5. package/dist/accordion/accordion.module.js.map +1 -1
  6. package/dist/accordion/parts.d.ts +1 -1
  7. package/dist/accordion/parts.js +2 -2
  8. package/dist/alert-dialog/alert-dialog.css +84 -0
  9. package/dist/alert-dialog/alert-dialog.d.ts +44 -0
  10. package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
  11. package/dist/alert-dialog/alert-dialog.js +46 -0
  12. package/dist/alert-dialog/alert-dialog.js.map +1 -0
  13. package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
  14. package/dist/alert-dialog/alert-dialog.module.js +14 -0
  15. package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
  16. package/dist/alert-dialog/index.d.ts +3 -0
  17. package/dist/alert-dialog/index.js +4 -0
  18. package/dist/alert-dialog/parts.d.ts +28 -0
  19. package/dist/alert-dialog/parts.d.ts.map +1 -0
  20. package/dist/alert-dialog/parts.js +62 -0
  21. package/dist/alert-dialog/parts.js.map +1 -0
  22. package/dist/badge/badge.css +3 -7
  23. package/dist/badge/badge.d.ts +1 -1
  24. package/dist/badge/badge.module.js.map +1 -1
  25. package/dist/button/button.css +36 -22
  26. package/dist/button/button.d.ts +7 -7
  27. package/dist/button/button.js +1 -1
  28. package/dist/button/button.js.map +1 -1
  29. package/dist/button/button.module.js.map +1 -1
  30. package/dist/card/card.css +5 -9
  31. package/dist/card/card.d.ts +1 -1
  32. package/dist/card/card.module.js.map +1 -1
  33. package/dist/checkbox/checkbox.css +3 -7
  34. package/dist/checkbox/checkbox.d.ts +1 -1
  35. package/dist/checkbox/checkbox.js +1 -1
  36. package/dist/checkbox/checkbox.module.js.map +1 -1
  37. package/dist/checkbox/parts.js +1 -1
  38. package/dist/collapsible/collapsible.css +7 -11
  39. package/dist/collapsible/collapsible.d.ts +1 -1
  40. package/dist/collapsible/collapsible.module.js.map +1 -1
  41. package/dist/collapsible/parts.js +1 -1
  42. package/dist/context-menu/context-menu.css +151 -0
  43. package/dist/context-menu/context-menu.d.ts +36 -0
  44. package/dist/context-menu/context-menu.d.ts.map +1 -0
  45. package/dist/context-menu/context-menu.js +54 -0
  46. package/dist/context-menu/context-menu.js.map +1 -0
  47. package/dist/context-menu/context-menu.module.css.d.ts +2 -0
  48. package/dist/context-menu/context-menu.module.js +18 -0
  49. package/dist/context-menu/context-menu.module.js.map +1 -0
  50. package/dist/context-menu/index.d.ts +3 -0
  51. package/dist/context-menu/index.js +4 -0
  52. package/dist/context-menu/parts.d.ts +38 -0
  53. package/dist/context-menu/parts.d.ts.map +1 -0
  54. package/dist/context-menu/parts.js +91 -0
  55. package/dist/context-menu/parts.js.map +1 -0
  56. package/dist/dialog/dialog.css +27 -22
  57. package/dist/dialog/dialog.d.ts +9 -1
  58. package/dist/dialog/dialog.d.ts.map +1 -1
  59. package/dist/dialog/dialog.js +7 -4
  60. package/dist/dialog/dialog.js.map +1 -1
  61. package/dist/dialog/dialog.module.js +2 -0
  62. package/dist/dialog/dialog.module.js.map +1 -1
  63. package/dist/dialog/parts.js +1 -1
  64. package/dist/drawer/drawer.css +9 -13
  65. package/dist/drawer/drawer.d.ts +1 -1
  66. package/dist/drawer/drawer.module.js.map +1 -1
  67. package/dist/drawer/parts.d.ts +1 -1
  68. package/dist/drawer/parts.js +1 -1
  69. package/dist/index.css +1603 -1299
  70. package/dist/index.d.ts +30 -24
  71. package/dist/index.js +41 -32
  72. package/dist/input/input.css +5 -9
  73. package/dist/input/input.js +1 -1
  74. package/dist/input/input.module.js.map +1 -1
  75. package/dist/layer-order.css +22 -0
  76. package/dist/menu/menu.css +13 -17
  77. package/dist/menu/menu.d.ts +1 -1
  78. package/dist/menu/menu.module.js.map +1 -1
  79. package/dist/menu/menuitemshortcut.js +1 -1
  80. package/dist/menu/parts.js +1 -1
  81. package/dist/number-field/number-field.css +12 -16
  82. package/dist/number-field/number-field.d.ts +1 -1
  83. package/dist/number-field/number-field.js +1 -1
  84. package/dist/number-field/number-field.module.js.map +1 -1
  85. package/dist/number-field/parts.js +1 -1
  86. package/dist/progress/parts.js +1 -1
  87. package/dist/progress/progress.css +1 -5
  88. package/dist/progress/progress.module.js.map +1 -1
  89. package/dist/reset.css +6 -6
  90. package/dist/select/parts.js +1 -1
  91. package/dist/select/select.css +14 -16
  92. package/dist/select/select.d.ts +5 -2
  93. package/dist/select/select.d.ts.map +1 -1
  94. package/dist/select/select.js +11 -2
  95. package/dist/select/select.js.map +1 -1
  96. package/dist/select/select.module.js.map +1 -1
  97. package/dist/separator/separator.css +1 -5
  98. package/dist/separator/separator.js +1 -1
  99. package/dist/separator/separator.module.js.map +1 -1
  100. package/dist/slider/index.d.ts +3 -0
  101. package/dist/slider/index.js +4 -0
  102. package/dist/slider/parts.d.ts +38 -0
  103. package/dist/slider/parts.d.ts.map +1 -0
  104. package/dist/slider/parts.js +69 -0
  105. package/dist/slider/parts.js.map +1 -0
  106. package/dist/slider/slider.css +97 -0
  107. package/dist/slider/slider.d.ts +38 -0
  108. package/dist/slider/slider.d.ts.map +1 -0
  109. package/dist/slider/slider.js +41 -0
  110. package/dist/slider/slider.js.map +1 -0
  111. package/dist/slider/slider.module.css.d.ts +2 -0
  112. package/dist/slider/slider.module.js +15 -0
  113. package/dist/slider/slider.module.js.map +1 -0
  114. package/dist/styles/reset.css +6 -6
  115. package/dist/styles/tokens.css +91 -76
  116. package/dist/switch/parts.js +1 -1
  117. package/dist/switch/switch.css +2 -6
  118. package/dist/switch/switch.d.ts +1 -1
  119. package/dist/switch/switch.js +1 -1
  120. package/dist/switch/switch.module.js.map +1 -1
  121. package/dist/tabs/parts.js +1 -1
  122. package/dist/tabs/tabs.css +5 -9
  123. package/dist/tabs/tabs.d.ts +1 -1
  124. package/dist/tabs/tabs.module.js.map +1 -1
  125. package/dist/tailwind-theme.css +23 -23
  126. package/dist/toast/parts.js +1 -1
  127. package/dist/toast/toast.css +11 -15
  128. package/dist/toast/toast.d.ts +1 -1
  129. package/dist/toast/toast.module.js.map +1 -1
  130. package/dist/tokens.css +98 -82
  131. package/dist/tooltip/parts.js +1 -1
  132. package/dist/tooltip/tooltip.css +7 -11
  133. package/dist/tooltip/tooltip.d.ts +1 -1
  134. package/dist/tooltip/tooltip.module.js.map +1 -1
  135. package/package.json +18 -1
  136. package/src/accordion/accordion.module.css +6 -20
  137. package/src/alert-dialog/alert-dialog.module.css +91 -0
  138. package/src/alert-dialog/alert-dialog.tsx +69 -0
  139. package/src/alert-dialog/index.ts +7 -0
  140. package/src/alert-dialog/parts.tsx +73 -0
  141. package/src/badge/badge.module.css +3 -13
  142. package/src/button/button.module.css +44 -64
  143. package/src/button/button.tsx +7 -7
  144. package/src/card/card.module.css +5 -16
  145. package/src/checkbox/checkbox.module.css +3 -14
  146. package/src/collapsible/collapsible.module.css +7 -20
  147. package/src/context-menu/context-menu.module.css +168 -0
  148. package/src/context-menu/context-menu.tsx +75 -0
  149. package/src/context-menu/index.ts +21 -0
  150. package/src/context-menu/parts.tsx +99 -0
  151. package/src/dialog/dialog.module.css +26 -33
  152. package/src/dialog/dialog.tsx +14 -1
  153. package/src/drawer/drawer.module.css +9 -58
  154. package/src/index.ts +21 -185
  155. package/src/input/input.module.css +5 -21
  156. package/src/menu/menu.module.css +13 -43
  157. package/src/number-field/number-field.module.css +12 -28
  158. package/src/progress/progress.module.css +1 -10
  159. package/src/select/select.module.css +14 -35
  160. package/src/select/select.tsx +14 -5
  161. package/src/separator/separator.module.css +1 -5
  162. package/src/slider/index.ts +14 -0
  163. package/src/slider/parts.tsx +90 -0
  164. package/src/slider/slider.module.css +110 -0
  165. package/src/slider/slider.tsx +68 -0
  166. package/src/styles/layer-order.css +22 -0
  167. package/src/styles/reset.css +6 -6
  168. package/src/styles/tailwind-theme.css +23 -23
  169. package/src/styles/tokens.css +98 -82
  170. package/src/switch/switch.module.css +2 -12
  171. package/src/tabs/tabs.module.css +5 -18
  172. package/src/toast/toast.module.css +11 -51
  173. package/src/tooltip/tooltip.module.css +7 -18
@@ -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-border-base);
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-border-subtle);
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-text-primary);
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-text-secondary);
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-border-subtle);
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;
@@ -1,5 +1,5 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
3
3
  import styles from "./card.module.css";
4
4
 
5
5
  //#region src/card/card.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"card.module.js","names":[],"sources":["../../src/card/card.module.css"],"sourcesContent":["@layer theme, base, components, utilities;\n\n@layer components {\n .root {\n background-color: var(--color-surface-1);\n border: var(--border-width-base) solid var(--color-border-base);\n border-radius: var(--radius-xl);\n overflow: hidden;\n }\n\n .root-elevated {\n box-shadow: var(--shadow-sm);\n }\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\n .root-interactive:hover {\n border-color: var(--color-accent);\n box-shadow: var(--shadow-md);\n }\n\n .root-interactive:active {\n transform: scale(0.995);\n }\n\n .header {\n padding: var(--space-4) var(--space-5);\n border-bottom: var(--border-width-base) solid var(--color-border-subtle);\n display: flex;\n flex-direction: column;\n gap: var(--space-0-5);\n }\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-text-primary);\n line-height: var(--line-height-tight);\n letter-spacing: var(--letter-spacing-tight);\n }\n\n .description {\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-text-secondary);\n line-height: var(--line-height-normal);\n }\n\n .body {\n padding: var(--space-4) var(--space-5);\n }\n\n .footer {\n padding: var(--space-3) var(--space-5);\n border-top: var(--border-width-base) solid var(--color-border-subtle);\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n}\n"],"mappings":";AAgBA,IAAA,sBAAc;CAAA,QAAA;CAAA,eAAA;CAAA,UAAA;CAAA,UAAA;CAAA,QAAA;CAAA,iBAAA;CAAA,oBAAA;CAAA,SAAA;CAAA"}
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-border-strong);
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-text-on-accent);
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-text-primary);
69
+ color: var(--color-primary);
72
70
  line-height: var(--line-height-normal);
73
71
  }
74
72
  }
75
-
76
- @layer utilities;
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
3
  import styles from "./checkbox.module.css";
4
4
 
5
5
  //#region src/checkbox/checkbox.d.ts
@@ -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 theme, base, components, utilities;\n\n@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\n .root[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\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-border-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\n .indicator:focus-visible {\n box-shadow: var(--shadow-focus);\n border-color: var(--color-accent);\n }\n\n .indicator:hover:not([data-disabled]) {\n border-color: var(--color-accent);\n }\n\n .indicator[data-checked],\n .indicator[data-indeterminate] {\n background-color: var(--color-accent);\n border-color: var(--color-accent);\n }\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\n /* Checkmark SVG */\n .icon {\n width: 10px;\n height: 10px;\n color: var(--color-text-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\n .indicator[data-checked] .icon,\n .indicator[data-indeterminate] .icon {\n opacity: 1;\n transform: scale(1);\n }\n\n .label {\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-text-primary);\n line-height: var(--line-height-normal);\n }\n}\n"],"mappings":";AAQA,IAAA,0BAAe;CAAC,QAAK;CAAA,aAAA;CAAA,SAAA;CAAA,QAAA;CAAA"}
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"}
@@ -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-text-primary);
15
+ color: var(--color-primary);
18
16
  background: var(--color-surface-1);
19
- border: var(--border-width-base) solid var(--color-border-base);
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-surface-hover);
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-text-tertiary);
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-text-secondary);
81
+ color: var(--color-secondary);
84
82
  line-height: var(--line-height-relaxed);
85
- border: var(--border-width-base) solid var(--color-border-base);
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-bg-elevated);
85
+ background: var(--color-elevated);
88
86
  border-top: none;
89
87
  }
90
88
  }
91
-
92
- @layer utilities;
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
3
  import styles from "./collapsible.module.css";
4
4
 
5
5
  //#region src/collapsible/collapsible.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.module.js","names":[],"sources":["../../src/collapsible/collapsible.module.css"],"sourcesContent":["@layer theme, base, components, utilities;\n\n@layer components {\n .root {\n display: flex;\n flex-direction: column;\n gap: 0;\n }\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-text-primary);\n background: var(--color-surface-1);\n border: var(--border-width-base) solid var(--color-border-base);\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\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\n .trigger:hover {\n background-color: var(--color-surface-hover);\n }\n\n .trigger:focus-visible {\n box-shadow: var(--shadow-focus);\n }\n\n .trigger[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n\n .trigger-icon {\n color: var(--color-text-tertiary);\n flex-shrink: 0;\n transition: transform var(--duration-normal) var(--easing-standard);\n }\n\n .trigger[data-panel-open] .trigger-icon {\n transform: rotate(90deg);\n }\n\n .panel {\n height: var(--collapsible-panel-height);\n overflow: hidden;\n transition: height var(--duration-normal) var(--easing-standard);\n }\n\n /* hide when not using hidden=\"until-found\" */\n .panel[hidden]:not([hidden=\"until-found\"]) {\n display: none;\n }\n\n .panel[data-starting-style],\n .panel[data-ending-style] {\n height: 0;\n }\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-text-secondary);\n line-height: var(--line-height-relaxed);\n border: var(--border-width-base) solid var(--color-border-base);\n border-top: none;\n border-radius: 0 0 var(--radius-md) var(--radius-md);\n background: var(--color-bg-elevated);\n }\n}\n"],"mappings":";AAUA,IAAA,6BAAa;CAAA,SAAI;CAAA,iBAAA;CAAA,QAAA;CAAA,WAAA;CAAA,gBAAA;CAAA"}
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,2 @@
1
+ declare const styles: Record<string, string | undefined>;
2
+ export default styles;
@@ -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"}