@brijbyte/agentic-ui 0.0.1-beta → 0.0.2

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 (375) hide show
  1. package/README.md +808 -0
  2. package/dist/accordion/accordion.css +85 -0
  3. package/dist/accordion/accordion.d.ts +28 -0
  4. package/dist/accordion/accordion.d.ts.map +1 -0
  5. package/dist/accordion/accordion.js +51 -0
  6. package/dist/accordion/accordion.js.map +1 -0
  7. package/dist/accordion/accordion.module.css.d.ts +2 -0
  8. package/dist/accordion/accordion.module.js +14 -0
  9. package/dist/accordion/accordion.module.js.map +1 -0
  10. package/dist/accordion/index.d.ts +3 -0
  11. package/dist/accordion/index.js +4 -0
  12. package/dist/accordion/parts.d.ts +28 -0
  13. package/dist/accordion/parts.d.ts.map +1 -0
  14. package/dist/accordion/parts.js +55 -0
  15. package/dist/accordion/parts.js.map +1 -0
  16. package/dist/alert-dialog/alert-dialog.css +84 -0
  17. package/dist/alert-dialog/alert-dialog.d.ts +44 -0
  18. package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
  19. package/dist/alert-dialog/alert-dialog.js +46 -0
  20. package/dist/alert-dialog/alert-dialog.js.map +1 -0
  21. package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
  22. package/dist/alert-dialog/alert-dialog.module.js +14 -0
  23. package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
  24. package/dist/alert-dialog/index.d.ts +3 -0
  25. package/dist/alert-dialog/index.js +4 -0
  26. package/dist/alert-dialog/parts.d.ts +28 -0
  27. package/dist/alert-dialog/parts.d.ts.map +1 -0
  28. package/dist/alert-dialog/parts.js +62 -0
  29. package/dist/alert-dialog/parts.js.map +1 -0
  30. package/dist/badge/badge.css +66 -0
  31. package/dist/badge/badge.d.ts +20 -0
  32. package/dist/badge/badge.d.ts.map +1 -0
  33. package/dist/badge/badge.js +21 -0
  34. package/dist/badge/badge.js.map +1 -0
  35. package/dist/badge/badge.module.css.d.ts +2 -0
  36. package/dist/badge/badge.module.js +16 -0
  37. package/dist/badge/badge.module.js.map +1 -0
  38. package/dist/badge/index.d.ts +2 -0
  39. package/dist/badge/index.js +3 -0
  40. package/dist/button/button.css +242 -0
  41. package/dist/button/button.d.ts +28 -0
  42. package/dist/button/button.d.ts.map +1 -0
  43. package/dist/button/button.js +34 -0
  44. package/dist/button/button.js.map +1 -0
  45. package/dist/button/button.module.css.d.ts +2 -0
  46. package/dist/button/button.module.js +27 -0
  47. package/dist/button/button.module.js.map +1 -0
  48. package/dist/button/index.d.ts +2 -0
  49. package/dist/button/index.js +3 -0
  50. package/dist/card/card.css +64 -0
  51. package/dist/card/card.d.ts +41 -0
  52. package/dist/card/card.d.ts.map +1 -0
  53. package/dist/card/card.js +50 -0
  54. package/dist/card/card.js.map +1 -0
  55. package/dist/card/card.module.css.d.ts +2 -0
  56. package/dist/card/card.module.js +15 -0
  57. package/dist/card/card.module.js.map +1 -0
  58. package/dist/card/index.d.ts +2 -0
  59. package/dist/card/index.js +3 -0
  60. package/dist/checkbox/checkbox.css +72 -0
  61. package/dist/checkbox/checkbox.d.ts +29 -0
  62. package/dist/checkbox/checkbox.d.ts.map +1 -0
  63. package/dist/checkbox/checkbox.js +40 -0
  64. package/dist/checkbox/checkbox.js.map +1 -0
  65. package/dist/checkbox/checkbox.module.css.d.ts +2 -0
  66. package/dist/checkbox/checkbox.module.js +11 -0
  67. package/dist/checkbox/checkbox.module.js.map +1 -0
  68. package/dist/checkbox/index.d.ts +3 -0
  69. package/dist/checkbox/index.js +4 -0
  70. package/dist/checkbox/parts.d.ts +20 -0
  71. package/dist/checkbox/parts.d.ts.map +1 -0
  72. package/dist/checkbox/parts.js +51 -0
  73. package/dist/checkbox/parts.js.map +1 -0
  74. package/dist/collapsible/collapsible.css +88 -0
  75. package/dist/collapsible/collapsible.d.ts +24 -0
  76. package/dist/collapsible/collapsible.d.ts.map +1 -0
  77. package/dist/collapsible/collapsible.js +44 -0
  78. package/dist/collapsible/collapsible.js.map +1 -0
  79. package/dist/collapsible/collapsible.module.css.d.ts +2 -0
  80. package/dist/collapsible/collapsible.module.js +12 -0
  81. package/dist/collapsible/collapsible.module.js.map +1 -0
  82. package/dist/collapsible/index.d.ts +3 -0
  83. package/dist/collapsible/index.js +4 -0
  84. package/dist/collapsible/parts.d.ts +23 -0
  85. package/dist/collapsible/parts.d.ts.map +1 -0
  86. package/dist/collapsible/parts.js +44 -0
  87. package/dist/collapsible/parts.js.map +1 -0
  88. package/dist/context-menu/context-menu.css +151 -0
  89. package/dist/context-menu/context-menu.d.ts +36 -0
  90. package/dist/context-menu/context-menu.d.ts.map +1 -0
  91. package/dist/context-menu/context-menu.js +54 -0
  92. package/dist/context-menu/context-menu.js.map +1 -0
  93. package/dist/context-menu/context-menu.module.css.d.ts +2 -0
  94. package/dist/context-menu/context-menu.module.js +18 -0
  95. package/dist/context-menu/context-menu.module.js.map +1 -0
  96. package/dist/context-menu/index.d.ts +3 -0
  97. package/dist/context-menu/index.js +4 -0
  98. package/dist/context-menu/parts.d.ts +38 -0
  99. package/dist/context-menu/parts.d.ts.map +1 -0
  100. package/dist/context-menu/parts.js +91 -0
  101. package/dist/context-menu/parts.js.map +1 -0
  102. package/dist/dialog/dialog.css +125 -0
  103. package/dist/dialog/dialog.d.ts +40 -0
  104. package/dist/dialog/dialog.d.ts.map +1 -0
  105. package/dist/dialog/dialog.js +57 -0
  106. package/dist/dialog/dialog.js.map +1 -0
  107. package/dist/dialog/dialog.module.css.d.ts +2 -0
  108. package/dist/dialog/dialog.module.js +17 -0
  109. package/dist/dialog/dialog.module.js.map +1 -0
  110. package/dist/dialog/index.d.ts +3 -0
  111. package/dist/dialog/index.js +4 -0
  112. package/dist/dialog/parts.d.ts +38 -0
  113. package/dist/dialog/parts.d.ts.map +1 -0
  114. package/dist/dialog/parts.js +75 -0
  115. package/dist/dialog/parts.js.map +1 -0
  116. package/dist/drawer/drawer.css +253 -0
  117. package/dist/drawer/drawer.d.ts +38 -0
  118. package/dist/drawer/drawer.d.ts.map +1 -0
  119. package/dist/drawer/drawer.js +87 -0
  120. package/dist/drawer/drawer.js.map +1 -0
  121. package/dist/drawer/drawer.module.css.d.ts +2 -0
  122. package/dist/drawer/drawer.module.js +20 -0
  123. package/dist/drawer/drawer.module.js.map +1 -0
  124. package/dist/drawer/index.d.ts +3 -0
  125. package/dist/drawer/index.js +4 -0
  126. package/dist/drawer/parts.d.ts +58 -0
  127. package/dist/drawer/parts.d.ts.map +1 -0
  128. package/dist/drawer/parts.js +107 -0
  129. package/dist/drawer/parts.js.map +1 -0
  130. package/dist/index.css +2701 -0
  131. package/dist/index.d.ts +39 -0
  132. package/dist/index.js +62 -0
  133. package/dist/input/index.d.ts +2 -0
  134. package/dist/input/index.js +3 -0
  135. package/dist/input/input.css +103 -0
  136. package/dist/input/input.d.ts +17 -0
  137. package/dist/input/input.d.ts.map +1 -0
  138. package/dist/input/input.js +37 -0
  139. package/dist/input/input.js.map +1 -0
  140. package/dist/input/input.module.css.d.ts +2 -0
  141. package/dist/input/input.module.js +18 -0
  142. package/dist/input/input.module.js.map +1 -0
  143. package/dist/layer-order.css +22 -0
  144. package/dist/menu/index.d.ts +4 -0
  145. package/dist/menu/index.js +5 -0
  146. package/dist/menu/menu.css +154 -0
  147. package/dist/menu/menu.d.ts +50 -0
  148. package/dist/menu/menu.d.ts.map +1 -0
  149. package/dist/menu/menu.js +69 -0
  150. package/dist/menu/menu.js.map +1 -0
  151. package/dist/menu/menu.module.css.d.ts +2 -0
  152. package/dist/menu/menu.module.js +19 -0
  153. package/dist/menu/menu.module.js.map +1 -0
  154. package/dist/menu/menuitemshortcut.d.ts +9 -0
  155. package/dist/menu/menuitemshortcut.d.ts.map +1 -0
  156. package/dist/menu/menuitemshortcut.js +15 -0
  157. package/dist/menu/menuitemshortcut.js.map +1 -0
  158. package/dist/menu/parts.d.ts +39 -0
  159. package/dist/menu/parts.d.ts.map +1 -0
  160. package/dist/menu/parts.js +76 -0
  161. package/dist/menu/parts.js.map +1 -0
  162. package/dist/number-field/index.d.ts +3 -0
  163. package/dist/number-field/index.js +4 -0
  164. package/dist/number-field/number-field.css +111 -0
  165. package/dist/number-field/number-field.d.ts +31 -0
  166. package/dist/number-field/number-field.d.ts.map +1 -0
  167. package/dist/number-field/number-field.js +78 -0
  168. package/dist/number-field/number-field.js.map +1 -0
  169. package/dist/number-field/number-field.module.css.d.ts +2 -0
  170. package/dist/number-field/number-field.module.js +16 -0
  171. package/dist/number-field/number-field.module.js.map +1 -0
  172. package/dist/number-field/parts.d.ts +38 -0
  173. package/dist/number-field/parts.d.ts.map +1 -0
  174. package/dist/number-field/parts.js +74 -0
  175. package/dist/number-field/parts.js.map +1 -0
  176. package/dist/progress/index.d.ts +3 -0
  177. package/dist/progress/index.js +4 -0
  178. package/dist/progress/parts.d.ts +20 -0
  179. package/dist/progress/parts.d.ts.map +1 -0
  180. package/dist/progress/parts.js +42 -0
  181. package/dist/progress/parts.js.map +1 -0
  182. package/dist/progress/progress.css +71 -0
  183. package/dist/progress/progress.d.ts +27 -0
  184. package/dist/progress/progress.d.ts.map +1 -0
  185. package/dist/progress/progress.js +27 -0
  186. package/dist/progress/progress.js.map +1 -0
  187. package/dist/progress/progress.module.css.d.ts +2 -0
  188. package/dist/progress/progress.module.js +19 -0
  189. package/dist/progress/progress.module.js.map +1 -0
  190. package/dist/reset.css +91 -0
  191. package/dist/select/index.d.ts +3 -0
  192. package/dist/select/index.js +4 -0
  193. package/dist/select/parts.d.ts +65 -0
  194. package/dist/select/parts.d.ts.map +1 -0
  195. package/dist/select/parts.js +134 -0
  196. package/dist/select/parts.js.map +1 -0
  197. package/dist/select/select.css +157 -0
  198. package/dist/select/select.d.ts +41 -0
  199. package/dist/select/select.d.ts.map +1 -0
  200. package/dist/select/select.js +89 -0
  201. package/dist/select/select.js.map +1 -0
  202. package/dist/select/select.module.css.d.ts +2 -0
  203. package/dist/select/select.module.js +17 -0
  204. package/dist/select/select.module.js.map +1 -0
  205. package/dist/separator/index.d.ts +2 -0
  206. package/dist/separator/index.js +3 -0
  207. package/dist/separator/separator.css +16 -0
  208. package/dist/separator/separator.d.ts +16 -0
  209. package/dist/separator/separator.d.ts.map +1 -0
  210. package/dist/separator/separator.js +17 -0
  211. package/dist/separator/separator.js.map +1 -0
  212. package/dist/separator/separator.module.css.d.ts +2 -0
  213. package/dist/separator/separator.module.js +6 -0
  214. package/dist/separator/separator.module.js.map +1 -0
  215. package/dist/slider/index.d.ts +3 -0
  216. package/dist/slider/index.js +4 -0
  217. package/dist/slider/parts.d.ts +38 -0
  218. package/dist/slider/parts.d.ts.map +1 -0
  219. package/dist/slider/parts.js +69 -0
  220. package/dist/slider/parts.js.map +1 -0
  221. package/dist/slider/slider.css +97 -0
  222. package/dist/slider/slider.d.ts +38 -0
  223. package/dist/slider/slider.d.ts.map +1 -0
  224. package/dist/slider/slider.js +41 -0
  225. package/dist/slider/slider.js.map +1 -0
  226. package/dist/slider/slider.module.css.d.ts +2 -0
  227. package/dist/slider/slider.module.js +15 -0
  228. package/dist/slider/slider.module.js.map +1 -0
  229. package/dist/styles/reset.css +69 -0
  230. package/dist/styles/tokens.css +276 -0
  231. package/dist/switch/index.d.ts +3 -0
  232. package/dist/switch/index.js +4 -0
  233. package/dist/switch/parts.d.ts +18 -0
  234. package/dist/switch/parts.d.ts.map +1 -0
  235. package/dist/switch/parts.js +39 -0
  236. package/dist/switch/parts.js.map +1 -0
  237. package/dist/switch/switch.css +64 -0
  238. package/dist/switch/switch.d.ts +28 -0
  239. package/dist/switch/switch.d.ts.map +1 -0
  240. package/dist/switch/switch.js +26 -0
  241. package/dist/switch/switch.js.map +1 -0
  242. package/dist/switch/switch.module.css.d.ts +2 -0
  243. package/dist/switch/switch.module.js +11 -0
  244. package/dist/switch/switch.module.js.map +1 -0
  245. package/dist/tabs/index.d.ts +3 -0
  246. package/dist/tabs/index.js +4 -0
  247. package/dist/tabs/parts.d.ts +23 -0
  248. package/dist/tabs/parts.d.ts.map +1 -0
  249. package/dist/tabs/parts.js +48 -0
  250. package/dist/tabs/parts.js.map +1 -0
  251. package/dist/tabs/tabs.css +86 -0
  252. package/dist/tabs/tabs.d.ts +28 -0
  253. package/dist/tabs/tabs.d.ts.map +1 -0
  254. package/dist/tabs/tabs.js +30 -0
  255. package/dist/tabs/tabs.js.map +1 -0
  256. package/dist/tabs/tabs.module.css.d.ts +2 -0
  257. package/dist/tabs/tabs.module.js +11 -0
  258. package/dist/tabs/tabs.module.js.map +1 -0
  259. package/dist/tailwind-theme.css +142 -0
  260. package/dist/toast/index.d.ts +3 -0
  261. package/dist/toast/index.js +4 -0
  262. package/dist/toast/parts.d.ts +33 -0
  263. package/dist/toast/parts.d.ts.map +1 -0
  264. package/dist/toast/parts.js +62 -0
  265. package/dist/toast/parts.js.map +1 -0
  266. package/dist/toast/toast.css +207 -0
  267. package/dist/toast/toast.d.ts +43 -0
  268. package/dist/toast/toast.d.ts.map +1 -0
  269. package/dist/toast/toast.js +156 -0
  270. package/dist/toast/toast.js.map +1 -0
  271. package/dist/toast/toast.module.css.d.ts +2 -0
  272. package/dist/toast/toast.module.js +25 -0
  273. package/dist/toast/toast.module.js.map +1 -0
  274. package/dist/tokens.css +404 -0
  275. package/dist/tooltip/index.d.ts +3 -0
  276. package/dist/tooltip/index.js +4 -0
  277. package/dist/tooltip/parts.d.ts +23 -0
  278. package/dist/tooltip/parts.d.ts.map +1 -0
  279. package/dist/tooltip/parts.js +53 -0
  280. package/dist/tooltip/parts.js.map +1 -0
  281. package/dist/tooltip/tooltip.css +60 -0
  282. package/dist/tooltip/tooltip.d.ts +22 -0
  283. package/dist/tooltip/tooltip.d.ts.map +1 -0
  284. package/dist/tooltip/tooltip.js +23 -0
  285. package/dist/tooltip/tooltip.js.map +1 -0
  286. package/dist/tooltip/tooltip.module.css.d.ts +2 -0
  287. package/dist/tooltip/tooltip.module.js +10 -0
  288. package/dist/tooltip/tooltip.module.js.map +1 -0
  289. package/package.json +153 -4
  290. package/src/accordion/accordion.module.css +75 -0
  291. package/src/accordion/accordion.tsx +50 -0
  292. package/src/accordion/index.ts +6 -0
  293. package/src/accordion/parts.tsx +68 -0
  294. package/src/alert-dialog/alert-dialog.module.css +91 -0
  295. package/src/alert-dialog/alert-dialog.tsx +69 -0
  296. package/src/alert-dialog/index.ts +7 -0
  297. package/src/alert-dialog/parts.tsx +73 -0
  298. package/src/badge/badge.module.css +60 -0
  299. package/src/badge/badge.tsx +19 -0
  300. package/src/badge/index.ts +3 -0
  301. package/src/button/button.module.css +229 -0
  302. package/src/button/button.tsx +67 -0
  303. package/src/button/index.ts +3 -0
  304. package/src/card/card.module.css +56 -0
  305. package/src/card/card.tsx +54 -0
  306. package/src/card/index.ts +3 -0
  307. package/src/checkbox/checkbox.module.css +69 -0
  308. package/src/checkbox/checkbox.tsx +38 -0
  309. package/src/checkbox/index.ts +6 -0
  310. package/src/checkbox/parts.tsx +54 -0
  311. package/src/collapsible/collapsible.module.css +81 -0
  312. package/src/collapsible/collapsible.tsx +38 -0
  313. package/src/collapsible/index.ts +6 -0
  314. package/src/collapsible/parts.tsx +52 -0
  315. package/src/context-menu/context-menu.module.css +168 -0
  316. package/src/context-menu/context-menu.tsx +75 -0
  317. package/src/context-menu/index.ts +21 -0
  318. package/src/context-menu/parts.tsx +99 -0
  319. package/src/css.d.ts +8 -0
  320. package/src/dialog/dialog.module.css +116 -0
  321. package/src/dialog/dialog.tsx +73 -0
  322. package/src/dialog/index.ts +13 -0
  323. package/src/dialog/parts.tsx +96 -0
  324. package/src/drawer/drawer.module.css +240 -0
  325. package/src/drawer/drawer.tsx +96 -0
  326. package/src/drawer/index.ts +24 -0
  327. package/src/drawer/parts.tsx +122 -0
  328. package/src/index.ts +237 -0
  329. package/src/input/index.ts +3 -0
  330. package/src/input/input.module.css +93 -0
  331. package/src/input/input.tsx +39 -0
  332. package/src/menu/index.ts +7 -0
  333. package/src/menu/menu.module.css +142 -0
  334. package/src/menu/menu.tsx +108 -0
  335. package/src/menu/menuitemshortcut.tsx +9 -0
  336. package/src/menu/parts.tsx +90 -0
  337. package/src/number-field/index.ts +20 -0
  338. package/src/number-field/number-field.module.css +98 -0
  339. package/src/number-field/number-field.tsx +75 -0
  340. package/src/number-field/parts.tsx +91 -0
  341. package/src/progress/index.ts +6 -0
  342. package/src/progress/parts.tsx +51 -0
  343. package/src/progress/progress.module.css +61 -0
  344. package/src/progress/progress.tsx +42 -0
  345. package/src/select/index.ts +30 -0
  346. package/src/select/parts.tsx +171 -0
  347. package/src/select/select.module.css +146 -0
  348. package/src/select/select.tsx +98 -0
  349. package/src/separator/index.ts +3 -0
  350. package/src/separator/separator.module.css +14 -0
  351. package/src/separator/separator.tsx +20 -0
  352. package/src/slider/index.ts +14 -0
  353. package/src/slider/parts.tsx +90 -0
  354. package/src/slider/slider.module.css +110 -0
  355. package/src/slider/slider.tsx +68 -0
  356. package/src/styles/layer-order.css +22 -0
  357. package/src/styles/reset.css +91 -0
  358. package/src/styles/tailwind-theme.css +142 -0
  359. package/src/styles/tokens.css +404 -0
  360. package/src/switch/index.ts +6 -0
  361. package/src/switch/parts.tsx +44 -0
  362. package/src/switch/switch.module.css +57 -0
  363. package/src/switch/switch.tsx +33 -0
  364. package/src/tabs/index.ts +6 -0
  365. package/src/tabs/parts.tsx +48 -0
  366. package/src/tabs/tabs.module.css +79 -0
  367. package/src/tabs/tabs.tsx +48 -0
  368. package/src/toast/index.ts +6 -0
  369. package/src/toast/parts.tsx +76 -0
  370. package/src/toast/toast.module.css +212 -0
  371. package/src/toast/toast.tsx +129 -0
  372. package/src/tooltip/index.ts +6 -0
  373. package/src/tooltip/parts.tsx +62 -0
  374. package/src/tooltip/tooltip.module.css +56 -0
  375. package/src/tooltip/tooltip.tsx +30 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","names":["styles","BaseMenu","Menu"],"sources":["../../src/menu/menu.tsx"],"sourcesContent":["import type { ReactNode, ReactElement } from \"react\";\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport styles from \"./menu.module.css\";\n\n// ─── Types ──────────────────────────────────────────────────────────────────\n\nexport interface MenuItemDef {\n type?: \"item\";\n label: ReactNode;\n value?: string;\n disabled?: boolean;\n shortcut?: ReactNode;\n onSelect?: () => void;\n}\n\nexport interface MenuSeparatorDef {\n type: \"separator\";\n}\n\nexport interface MenuGroupDef {\n type: \"group\";\n label?: ReactNode;\n items: MenuItemDef[];\n}\n\nexport type MenuEntry = MenuItemDef | MenuSeparatorDef | MenuGroupDef;\n\nexport interface MenuProps {\n /** The button/element that opens the menu. */\n trigger: ReactElement;\n items: MenuEntry[];\n /** @default \"bottom\" */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /** @default \"start\" */\n align?: \"start\" | \"center\" | \"end\";\n /** @default 4 */\n sideOffset?: number;\n /** controlled open state */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n}\n\n// ─── Arrow SVG ─────────────────────────────────────────────────────────────\n\nfunction ArrowSvg() {\n return (\n <svg width=\"20\" height=\"10\" viewBox=\"0 0 20 10\" fill=\"none\" aria-hidden>\n <path\n d=\"M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z\"\n className={styles[\"arrow-fill\"]}\n />\n <path\n d=\"M8.99542 1.85876C9.75604 1.17425 10.9106 1.17422 11.6713 1.85878L16.5281 6.22989C17.0789 6.72568 17.7938 7.00001 18.5349 7.00001L15.89 7L11.0023 2.60207C10.622 2.2598 10.0447 2.2598 9.66436 2.60207L4.77734 7L2.13171 7.00001C2.87284 7.00001 3.58774 6.72568 4.13861 6.22989L8.99542 1.85876Z\"\n className={styles[\"arrow-stroke\"]}\n />\n <path\n d=\"M10.3333 3.34539L5.47654 7.71648C4.55842 8.54279 3.36693 9 2.13172 9H0V8H2.13172C3.11989 8 4.07308 7.63423 4.80758 6.97318L9.66437 2.60207C10.0447 2.25979 10.622 2.2598 11.0023 2.60207L15.8591 6.97318C16.5936 7.63423 17.5468 8 18.5349 8H20V9H18.5349C17.2998 9 16.1083 8.54278 15.1901 7.71648L10.3333 3.34539Z\"\n className={styles[\"arrow-stroke\"]}\n />\n </svg>\n );\n}\n\n// ─── Item renderer ──────────────────────────────────────────────────────────\n\nfunction renderEntry(entry: MenuEntry, index: number): ReactNode {\n if (entry.type === \"separator\") {\n return <BaseMenu.Separator key={index} className={styles.separator} />;\n }\n\n if (entry.type === \"group\") {\n return (\n <BaseMenu.Group key={index}>\n {entry.label && <BaseMenu.GroupLabel className={styles[\"group-label\"]}>{entry.label}</BaseMenu.GroupLabel>}\n {entry.items.map((item, i) => renderEntry(item, i))}\n </BaseMenu.Group>\n );\n }\n\n return (\n <BaseMenu.Item key={entry.value ?? index} className={styles.item} disabled={entry.disabled} onClick={entry.onSelect}>\n <span className={styles[\"item-text\"]}>{entry.label}</span>\n {entry.shortcut && <span className={styles[\"item-shortcut\"]}>{entry.shortcut}</span>}\n </BaseMenu.Item>\n );\n}\n\n// ─── High-level Menu ────────────────────────────────────────────────────────\n\nexport function Menu({ trigger, items, side = \"bottom\", align = \"start\", sideOffset = 4, className, onOpenChange, ...props }: MenuProps) {\n return (\n <BaseMenu.Root onOpenChange={onOpenChange as never} {...props}>\n <BaseMenu.Trigger render={trigger} />\n <BaseMenu.Portal>\n <BaseMenu.Positioner className={`${styles.positioner} ${className ?? \"\"}`} side={side} align={align} sideOffset={sideOffset}>\n <BaseMenu.Popup className={styles.popup}>\n <BaseMenu.Arrow className={styles.arrow}>\n <ArrowSvg />\n </BaseMenu.Arrow>\n {items.map((entry, i) => renderEntry(entry, i))}\n </BaseMenu.Popup>\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n </BaseMenu.Root>\n );\n}\nexport { styles as MenuStyles };\n"],"mappings":";;;;AA6CA,SAAS,WAAW;AAClB,QACE,qBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,eAAA;YAA5D;GACE,oBAAC,QAAD;IACE,GAAE;IACF,WAAWA,oBAAO;IAClB,CAAA;GACF,oBAAC,QAAD;IACE,GAAE;IACF,WAAWA,oBAAO;IAClB,CAAA;GACF,oBAAC,QAAD;IACE,GAAE;IACF,WAAWA,oBAAO;IAClB,CAAA;GACE;;;AAMV,SAAS,YAAY,OAAkB,OAA0B;AAC/D,KAAI,MAAM,SAAS,YACjB,QAAO,oBAACC,KAAS,WAAV,EAAgC,WAAWD,oBAAO,WAAa,EAAtC,MAAsC;AAGxE,KAAI,MAAM,SAAS,QACjB,QACE,qBAACC,KAAS,OAAV,EAAA,UAAA,CACG,MAAM,SAAS,oBAACA,KAAS,YAAV;EAAqB,WAAWD,oBAAO;YAAiB,MAAM;EAA4B,CAAA,EACzG,MAAM,MAAM,KAAK,MAAM,MAAM,YAAY,MAAM,EAAE,CAAC,CACpC,EAAA,EAHI,MAGJ;AAIrB,QACE,qBAACC,KAAS,MAAV;EAA0C,WAAWD,oBAAO;EAAM,UAAU,MAAM;EAAU,SAAS,MAAM;YAA3G,CACE,oBAAC,QAAD;GAAM,WAAWA,oBAAO;aAAe,MAAM;GAAa,CAAA,EACzD,MAAM,YAAY,oBAAC,QAAD;GAAM,WAAWA,oBAAO;aAAmB,MAAM;GAAgB,CAAA,CACtE;IAHI,MAAM,SAAS,MAGnB;;AAMpB,SAAgBE,OAAK,EAAE,SAAS,OAAO,OAAO,UAAU,QAAQ,SAAS,aAAa,GAAG,WAAW,cAAc,GAAG,SAAoB;AACvI,QACE,qBAACD,KAAS,MAAV;EAA6B;EAAuB,GAAI;YAAxD,CACE,oBAACA,KAAS,SAAV,EAAkB,QAAQ,SAAW,CAAA,EACrC,oBAACA,KAAS,QAAV,EAAA,UACE,oBAACA,KAAS,YAAV;GAAqB,WAAW,GAAGD,oBAAO,WAAW,GAAG,aAAa;GAAY;GAAa;GAAmB;aAC/G,qBAACC,KAAS,OAAV;IAAgB,WAAWD,oBAAO;cAAlC,CACE,oBAACC,KAAS,OAAV;KAAgB,WAAWD,oBAAO;eAChC,oBAAC,UAAD,EAAY,CAAA;KACG,CAAA,EAChB,MAAM,KAAK,OAAO,MAAM,YAAY,OAAO,EAAE,CAAC,CAChC;;GACG,CAAA,EACN,CAAA,CACJ"}
@@ -0,0 +1,2 @@
1
+ declare const styles: Record<string, string | undefined>;
2
+ export default styles;
@@ -0,0 +1,19 @@
1
+ //#region src/menu/menu.module.css
2
+ var menu_module_default = {
3
+ "arrow": "arrow_HVPjPa",
4
+ "arrow-fill": "arrow-fill_HVPjPa",
5
+ "arrow-stroke": "arrow-stroke_HVPjPa",
6
+ "group-label": "group-label_HVPjPa",
7
+ "item": "item_HVPjPa",
8
+ "item-indicator": "item-indicator_HVPjPa",
9
+ "item-shortcut": "item-shortcut_HVPjPa",
10
+ "item-text": "item-text_HVPjPa",
11
+ "popup": "popup_HVPjPa",
12
+ "positioner": "positioner_HVPjPa",
13
+ "separator": "separator_HVPjPa",
14
+ "submenu-trigger-icon": "submenu-trigger-icon_HVPjPa"
15
+ };
16
+ //#endregion
17
+ export { menu_module_default as default };
18
+
19
+ //# sourceMappingURL=menu.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.module.js","names":[],"sources":["../../src/menu/menu.module.css"],"sourcesContent":["@layer components {\n .positioner {\n outline: none;\n z-index: var(--z-dropdown);\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-mono);\n font-size: var(--font-size-sm);\n min-width: 200px;\n transform-origin: var(--transform-origin);\n outline: none;\n }\n @supports (backdrop-filter: blur(12px)) {\n .popup {\n backdrop-filter: blur(20px) saturate(1.8);\n -webkit-backdrop-filter: blur(20px) saturate(1.8);\n }\n }\n .popup[data-starting-style] {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 150ms var(--easing-ease-out),\n transform 150ms var(--easing-ease-out);\n }\n .popup[data-ending-style] {\n opacity: 0;\n transform: scale(0.98);\n transition:\n opacity 75ms var(--easing-ease-in),\n transform 75ms var(--easing-ease-in);\n }\n /* ─── Item ───────────────────────────────────────────────────────── */\n .item {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n /* Horizontal padding leaves room for the highlight inset */\n padding: var(--space-1-5) var(--space-3);\n margin: 1px var(--space-1);\n border-radius: var(--radius-md);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-primary);\n cursor: default;\n outline: none;\n user-select: none;\n position: relative;\n transition: none;\n }\n .item[data-highlighted] {\n background-color: var(--color-accent);\n color: var(--color-on-accent);\n }\n .item[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n /* ─── Item internals ─────────────────────────────────────────────── */\n .item-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n flex-shrink: 0;\n color: inherit;\n }\n .item-text {\n flex: 1;\n }\n .item-shortcut {\n margin-left: var(--space-6);\n font-size: var(--font-size-xs);\n color: var(--color-tertiary);\n letter-spacing: 0.02em;\n flex-shrink: 0;\n }\n .item[data-highlighted] .item-shortcut {\n color: color-mix(in srgb, var(--color-on-accent) 60%, transparent);\n }\n /* ─── Group label ────────────────────────────────────────────────── */\n .group-label {\n padding: var(--space-1-5) var(--space-3) var(--space-0-5);\n font-family: var(--font-mono);\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 margin-inline: var(--space-1);\n }\n /* ─── Separator ──────────────────────────────────────────────────── */\n .separator {\n margin: var(--space-1) 0;\n height: var(--border-width-base);\n background-color: var(--color-line-subtle);\n }\n /* ─── Submenu ────────────────────────────────────────────────────── */\n .submenu-trigger-icon {\n margin-left: auto;\n color: var(--color-tertiary);\n flex-shrink: 0;\n }\n .item[data-highlighted] .submenu-trigger-icon {\n color: color-mix(in srgb, var(--color-on-accent) 70%, transparent);\n }\n /* ─── Arrow ──────────────────────────────────────────────────────── */\n .arrow {\n display: flex;\n }\n .arrow[data-side=\"top\"] {\n bottom: -8px;\n rotate: 180deg;\n }\n .arrow[data-side=\"bottom\"] {\n top: -8px;\n rotate: 0deg;\n }\n .arrow[data-side=\"left\"] {\n right: -13px;\n rotate: 90deg;\n }\n .arrow[data-side=\"right\"] {\n left: -13px;\n rotate: -90deg;\n }\n .arrow-fill {\n fill: var(--color-overlay);\n }\n .arrow-stroke {\n fill: var(--color-line);\n }\n}\n"],"mappings":";AAwBA,IAAA,sBAAE;CAAA,SAAA;CAAA,cAAA;CAAA,gBAAA;CAAA,eAAA;CAAA,QAAA;CAAA,kBAAA;CAAA,iBAAA;CAAA,aAAA;CAAA,SAAA;CAAA,cAAA;CAAA,aAAA;CAAA,wBAAA;CAAA"}
@@ -0,0 +1,9 @@
1
+ import * as react from "react";
2
+ import { HTMLAttributes } from "react";
3
+
4
+ //#region src/menu/menuitemshortcut.d.ts
5
+ interface MenuItemShortcutProps extends HTMLAttributes<HTMLSpanElement> {}
6
+ declare const MenuItemShortcut: react.ForwardRefExoticComponent<MenuItemShortcutProps & react.RefAttributes<HTMLSpanElement>>;
7
+ //#endregion
8
+ export { MenuItemShortcut, MenuItemShortcutProps };
9
+ //# sourceMappingURL=menuitemshortcut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuitemshortcut.d.ts","names":[],"sources":["../../src/menu/menuitemshortcut.tsx"],"mappings":";;;;UAIiB,qBAAA,SAA8B,cAAA,CAAe,eAAA;AAAA,cAEjD,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA"}
@@ -0,0 +1,15 @@
1
+ import menu_module_default from "./menu.module.js";
2
+ import { forwardRef } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/menu/menuitemshortcut.tsx
5
+ const MenuItemShortcut = forwardRef(function MenuItemShortcut({ className, ...props }, ref) {
6
+ return /* @__PURE__ */ jsx("span", {
7
+ ref,
8
+ className: `${menu_module_default["item-shortcut"]} ${className ?? ""}`,
9
+ ...props
10
+ });
11
+ });
12
+ //#endregion
13
+ export { MenuItemShortcut };
14
+
15
+ //# sourceMappingURL=menuitemshortcut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuitemshortcut.js","names":["styles"],"sources":["../../src/menu/menuitemshortcut.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes } from \"react\";\nimport styles from \"./menu.module.css\";\n\nexport interface MenuItemShortcutProps extends HTMLAttributes<HTMLSpanElement> {}\n\nexport const MenuItemShortcut = forwardRef<HTMLSpanElement, MenuItemShortcutProps>(function MenuItemShortcut({ className, ...props }, ref) {\n return <span ref={ref} className={`${styles[\"item-shortcut\"]} ${className ?? \"\"}`} {...props} />;\n});\n"],"mappings":";;;;AAMA,MAAa,mBAAmB,WAAmD,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAS,KAAK;AACzI,QAAO,oBAAC,QAAD;EAAW;EAAK,WAAW,GAAGA,oBAAO,iBAAiB,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAChG"}
@@ -0,0 +1,39 @@
1
+ import { MenuItemShortcut } from "./menuitemshortcut.js";
2
+ import * as react from "react";
3
+ import { ComponentPropsWithoutRef } from "react";
4
+ import { Menu } from "@base-ui/react/menu";
5
+
6
+ //#region src/menu/parts.d.ts
7
+ type BasePositionerProps = ComponentPropsWithoutRef<typeof Menu.Positioner>;
8
+ type BasePopupProps = ComponentPropsWithoutRef<typeof Menu.Popup>;
9
+ type BaseItemProps = ComponentPropsWithoutRef<typeof Menu.Item>;
10
+ type BaseSeparatorProps = ComponentPropsWithoutRef<typeof Menu.Separator>;
11
+ type BaseGroupLabelProps = ComponentPropsWithoutRef<typeof Menu.GroupLabel>;
12
+ type BaseArrowProps = ComponentPropsWithoutRef<typeof Menu.Arrow>;
13
+ interface MenuPositionerProps extends Omit<BasePositionerProps, "className"> {
14
+ className?: string;
15
+ }
16
+ interface MenuPopupProps extends Omit<BasePopupProps, "className"> {
17
+ className?: string;
18
+ }
19
+ interface MenuItemProps extends Omit<BaseItemProps, "className"> {
20
+ className?: string;
21
+ }
22
+ interface MenuSeparatorProps extends Omit<BaseSeparatorProps, "className"> {
23
+ className?: string;
24
+ }
25
+ interface MenuGroupLabelProps extends Omit<BaseGroupLabelProps, "className"> {
26
+ className?: string;
27
+ }
28
+ interface MenuArrowProps extends Omit<BaseArrowProps, "className"> {
29
+ className?: string;
30
+ }
31
+ declare const MenuPositioner: react.ForwardRefExoticComponent<MenuPositionerProps & react.RefAttributes<HTMLDivElement>>;
32
+ declare const MenuPopup: react.ForwardRefExoticComponent<MenuPopupProps & react.RefAttributes<HTMLDivElement>>;
33
+ declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<HTMLElement>>;
34
+ declare const MenuSeparator: react.ForwardRefExoticComponent<MenuSeparatorProps & react.RefAttributes<HTMLDivElement>>;
35
+ declare const MenuGroupLabel: react.ForwardRefExoticComponent<MenuGroupLabelProps & react.RefAttributes<HTMLDivElement>>;
36
+ declare const MenuArrow: react.ForwardRefExoticComponent<MenuArrowProps & react.RefAttributes<HTMLDivElement>>;
37
+ //#endregion
38
+ export { MenuArrow, MenuArrowProps, MenuGroupLabel, MenuGroupLabelProps, MenuItem, MenuItemProps, MenuPopup, MenuPopupProps, MenuPositioner, MenuPositionerProps, MenuSeparator, MenuSeparatorProps };
39
+ //# sourceMappingURL=parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/menu/parts.tsx"],"mappings":";;;;;;KA6BK,mBAAA,GAAsB,wBAAA,QAAgC,IAAA,CAAS,UAAA;AAAA,KAC/D,cAAA,GAAiB,wBAAA,QAAgC,IAAA,CAAS,KAAA;AAAA,KAC1D,aAAA,GAAgB,wBAAA,QAAgC,IAAA,CAAS,IAAA;AAAA,KACzD,kBAAA,GAAqB,wBAAA,QAAgC,IAAA,CAAS,SAAA;AAAA,KAC9D,mBAAA,GAAsB,wBAAA,QAAgC,IAAA,CAAS,UAAA;AAAA,KAC/D,cAAA,GAAiB,wBAAA,QAAgC,IAAA,CAAS,KAAA;AAAA,UAE9C,mBAAA,SAA4B,IAAA,CAAK,mBAAA;EAChD,SAAA;AAAA;AAAA,UAEe,cAAA,SAAuB,IAAA,CAAK,cAAA;EAC3C,SAAA;AAAA;AAAA,UAEe,aAAA,SAAsB,IAAA,CAAK,aAAA;EAC1C,SAAA;AAAA;AAAA,UAEe,kBAAA,SAA2B,IAAA,CAAK,kBAAA;EAC/C,SAAA;AAAA;AAAA,UAEe,mBAAA,SAA4B,IAAA,CAAK,mBAAA;EAChD,SAAA;AAAA;AAAA,UAEe,cAAA,SAAuB,IAAA,CAAK,cAAA;EAC3C,SAAA;AAAA;AAAA,cAGW,cAAA,EAAc,KAAA,CAAA,yBAAA,CAAA,mBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOd,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAIT,QAAA,EAAQ,KAAA,CAAA,yBAAA,CAAA,aAAA,GAAA,KAAA,CAAA,aAAA,CAAA,WAAA;AAAA,cAIR,aAAA,EAAa,KAAA,CAAA,yBAAA,CAAA,kBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOb,cAAA,EAAc,KAAA,CAAA,yBAAA,CAAA,mBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOd,SAAA,EAAS,KAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA"}
@@ -0,0 +1,76 @@
1
+ import menu_module_default from "./menu.module.js";
2
+ import "./menuitemshortcut.js";
3
+ import { forwardRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Menu } from "@base-ui/react/menu";
6
+ //#region src/menu/parts.tsx
7
+ /**
8
+ * Styled primitives for Menu.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * import { Menu } from '@base-ui/react/menu';
13
+ * import {
14
+ * MenuPositioner, MenuPopup, MenuItem, MenuSeparator, MenuGroupLabel,
15
+ * } from '@brijbyte/agentic-ui/menu';
16
+ *
17
+ * <Menu.Root>
18
+ * <Menu.Trigger render={<button>Open</button>} />
19
+ * <Menu.Portal>
20
+ * <MenuPositioner sideOffset={4}>
21
+ * <MenuPopup>
22
+ * <MenuItem>Action</MenuItem>
23
+ * <MenuSeparator />
24
+ * <MenuItem>Another</MenuItem>
25
+ * </MenuPopup>
26
+ * </MenuPositioner>
27
+ * </Menu.Portal>
28
+ * </Menu.Root>
29
+ * ```
30
+ */
31
+ const MenuPositioner = forwardRef(function MenuPositioner({ className, ...props }, ref) {
32
+ return /* @__PURE__ */ jsx(Menu.Positioner, {
33
+ ref,
34
+ className: `${menu_module_default.positioner} ${className ?? ""}`,
35
+ ...props
36
+ });
37
+ });
38
+ const MenuPopup = forwardRef(function MenuPopup({ className, ...props }, ref) {
39
+ return /* @__PURE__ */ jsx(Menu.Popup, {
40
+ ref,
41
+ className: `${menu_module_default.popup} ${className ?? ""}`,
42
+ ...props
43
+ });
44
+ });
45
+ const MenuItem = forwardRef(function MenuItem({ className, ...props }, ref) {
46
+ return /* @__PURE__ */ jsx(Menu.Item, {
47
+ ref,
48
+ className: `${menu_module_default.item} ${className ?? ""}`,
49
+ ...props
50
+ });
51
+ });
52
+ const MenuSeparator = forwardRef(function MenuSeparator({ className, ...props }, ref) {
53
+ return /* @__PURE__ */ jsx(Menu.Separator, {
54
+ ref,
55
+ className: `${menu_module_default.separator} ${className ?? ""}`,
56
+ ...props
57
+ });
58
+ });
59
+ const MenuGroupLabel = forwardRef(function MenuGroupLabel({ className, ...props }, ref) {
60
+ return /* @__PURE__ */ jsx(Menu.GroupLabel, {
61
+ ref,
62
+ className: `${menu_module_default["group-label"]} ${className ?? ""}`,
63
+ ...props
64
+ });
65
+ });
66
+ const MenuArrow = forwardRef(function MenuArrow({ className, ...props }, ref) {
67
+ return /* @__PURE__ */ jsx(Menu.Arrow, {
68
+ ref,
69
+ className: `${menu_module_default.arrow} ${className ?? ""}`,
70
+ ...props
71
+ });
72
+ });
73
+ //#endregion
74
+ export { MenuArrow, MenuGroupLabel, MenuItem, MenuPopup, MenuPositioner, MenuSeparator };
75
+
76
+ //# sourceMappingURL=parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.js","names":["BaseMenu","styles"],"sources":["../../src/menu/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Menu.\n *\n * @example\n * ```tsx\n * import { Menu } from '@base-ui/react/menu';\n * import {\n * MenuPositioner, MenuPopup, MenuItem, MenuSeparator, MenuGroupLabel,\n * } from '@brijbyte/agentic-ui/menu';\n *\n * <Menu.Root>\n * <Menu.Trigger render={<button>Open</button>} />\n * <Menu.Portal>\n * <MenuPositioner sideOffset={4}>\n * <MenuPopup>\n * <MenuItem>Action</MenuItem>\n * <MenuSeparator />\n * <MenuItem>Another</MenuItem>\n * </MenuPopup>\n * </MenuPositioner>\n * </Menu.Portal>\n * </Menu.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport styles from \"./menu.module.css\";\n\ntype BasePositionerProps = ComponentPropsWithoutRef<typeof BaseMenu.Positioner>;\ntype BasePopupProps = ComponentPropsWithoutRef<typeof BaseMenu.Popup>;\ntype BaseItemProps = ComponentPropsWithoutRef<typeof BaseMenu.Item>;\ntype BaseSeparatorProps = ComponentPropsWithoutRef<typeof BaseMenu.Separator>;\ntype BaseGroupLabelProps = ComponentPropsWithoutRef<typeof BaseMenu.GroupLabel>;\ntype BaseArrowProps = ComponentPropsWithoutRef<typeof BaseMenu.Arrow>;\n\nexport interface MenuPositionerProps extends Omit<BasePositionerProps, \"className\"> {\n className?: string;\n}\nexport interface MenuPopupProps extends Omit<BasePopupProps, \"className\"> {\n className?: string;\n}\nexport interface MenuItemProps extends Omit<BaseItemProps, \"className\"> {\n className?: string;\n}\nexport interface MenuSeparatorProps extends Omit<BaseSeparatorProps, \"className\"> {\n className?: string;\n}\nexport interface MenuGroupLabelProps extends Omit<BaseGroupLabelProps, \"className\"> {\n className?: string;\n}\nexport interface MenuArrowProps extends Omit<BaseArrowProps, \"className\"> {\n className?: string;\n}\n\nexport const MenuPositioner = forwardRef<ComponentRef<typeof BaseMenu.Positioner>, MenuPositionerProps>(function MenuPositioner(\n { className, ...props },\n ref,\n) {\n return <BaseMenu.Positioner ref={ref} className={`${styles.positioner} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuPopup = forwardRef<ComponentRef<typeof BaseMenu.Popup>, MenuPopupProps>(function MenuPopup({ className, ...props }, ref) {\n return <BaseMenu.Popup ref={ref} className={`${styles.popup} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuItem = forwardRef<ComponentRef<typeof BaseMenu.Item>, MenuItemProps>(function MenuItem({ className, ...props }, ref) {\n return <BaseMenu.Item ref={ref} className={`${styles.item} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuSeparator = forwardRef<ComponentRef<typeof BaseMenu.Separator>, MenuSeparatorProps>(function MenuSeparator(\n { className, ...props },\n ref,\n) {\n return <BaseMenu.Separator ref={ref} className={`${styles.separator} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuGroupLabel = forwardRef<ComponentRef<typeof BaseMenu.GroupLabel>, MenuGroupLabelProps>(function MenuGroupLabel(\n { className, ...props },\n ref,\n) {\n return <BaseMenu.GroupLabel ref={ref} className={`${styles[\"group-label\"]} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const MenuArrow = forwardRef<ComponentRef<typeof BaseMenu.Arrow>, MenuArrowProps>(function MenuArrow({ className, ...props }, ref) {\n return <BaseMenu.Arrow ref={ref} className={`${styles.arrow} ${className ?? \"\"}`} {...props} />;\n});\n\n/** Convenience class for keyboard shortcut hints inside a MenuItem. */\nexport { MenuItemShortcut } from \"./menuitemshortcut\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,MAAa,iBAAiB,WAA0E,SAAS,eAC/G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,KAAS,YAAV;EAA0B;EAAK,WAAW,GAAGC,oBAAO,WAAW,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACzG;AAEF,MAAa,YAAY,WAAgE,SAAS,UAAU,EAAE,WAAW,GAAG,SAAS,KAAK;AACxI,QAAO,oBAACD,KAAS,OAAV;EAAqB;EAAK,WAAW,GAAGC,oBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC/F;AAEF,MAAa,WAAW,WAA8D,SAAS,SAAS,EAAE,WAAW,GAAG,SAAS,KAAK;AACpI,QAAO,oBAACD,KAAS,MAAV;EAAoB;EAAK,WAAW,GAAGC,oBAAO,KAAK,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC7F;AAEF,MAAa,gBAAgB,WAAwE,SAAS,cAC5G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,KAAS,WAAV;EAAyB;EAAK,WAAW,GAAGC,oBAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACvG;AAEF,MAAa,iBAAiB,WAA0E,SAAS,eAC/G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,KAAS,YAAV;EAA0B;EAAK,WAAW,GAAGC,oBAAO,eAAe,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC7G;AAEF,MAAa,YAAY,WAAgE,SAAS,UAAU,EAAE,WAAW,GAAG,SAAS,KAAK;AACxI,QAAO,oBAACD,KAAS,OAAV;EAAqB;EAAK,WAAW,GAAGC,oBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAC/F"}
@@ -0,0 +1,3 @@
1
+ import { NumberField, NumberFieldProps, styles } from "./number-field.js";
2
+ import { NumberFieldDecrement, NumberFieldDecrementProps, NumberFieldGroup, NumberFieldGroupProps, NumberFieldIncrement, NumberFieldIncrementProps, NumberFieldInput, NumberFieldInputProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, NumberFieldScrubAreaCursorProps, NumberFieldScrubAreaProps } from "./parts.js";
3
+ export { NumberField, NumberFieldDecrement, type NumberFieldDecrementProps, NumberFieldGroup, type NumberFieldGroupProps, NumberFieldIncrement, type NumberFieldIncrementProps, NumberFieldInput, type NumberFieldInputProps, type NumberFieldProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, type NumberFieldScrubAreaCursorProps, type NumberFieldScrubAreaProps, styles as NumberFieldStyles };
@@ -0,0 +1,4 @@
1
+ import number_field_module_default from "./number-field.module.js";
2
+ import { NumberField } from "./number-field.js";
3
+ import { NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, NumberFieldScrubAreaCursor } from "./parts.js";
4
+ export { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, NumberFieldScrubAreaCursor, number_field_module_default as NumberFieldStyles };
@@ -0,0 +1,111 @@
1
+ @layer components {
2
+ .root_msdI1W {
3
+ align-items: flex-start;
4
+ gap: var(--space-1);
5
+ flex-direction: column;
6
+ display: flex;
7
+ }
8
+
9
+ .scrub-area_msdI1W {
10
+ cursor: ew-resize;
11
+ user-select: none;
12
+ }
13
+
14
+ .scrub-area-cursor_msdI1W {
15
+ filter: drop-shadow(0 1px 1px #00000080);
16
+ }
17
+
18
+ .label_msdI1W {
19
+ cursor: ew-resize;
20
+ font-family: var(--font-mono);
21
+ font-size: var(--font-size-xs);
22
+ font-weight: var(--font-weight-medium);
23
+ color: var(--color-secondary);
24
+ letter-spacing: var(--letter-spacing-wide);
25
+ text-transform: uppercase;
26
+ }
27
+
28
+ .group_msdI1W {
29
+ display: flex;
30
+ }
31
+
32
+ .input_msdI1W {
33
+ box-sizing: border-box;
34
+ width: 6rem;
35
+ height: 2rem;
36
+ font-family: var(--font-mono);
37
+ font-size: var(--font-size-sm);
38
+ text-align: center;
39
+ font-variant-numeric: tabular-nums;
40
+ color: var(--color-primary);
41
+ background-color: var(--color-elevated);
42
+ border-top: var(--border-width-base) solid var(--color-line);
43
+ border-bottom: var(--border-width-base) solid var(--color-line);
44
+ transition: box-shadow var(--duration-fast) var(--easing-standard);
45
+ border-left: none;
46
+ border-right: none;
47
+ border-radius: 0;
48
+ outline: none;
49
+ margin: 0;
50
+ padding: 0;
51
+ font-weight: normal;
52
+ }
53
+
54
+ .input_msdI1W:focus {
55
+ z-index: 1;
56
+ box-shadow: inset 0 0 0 1.5px var(--color-accent);
57
+ }
58
+
59
+ .input_msdI1W[data-disabled] {
60
+ opacity: .44;
61
+ cursor: not-allowed;
62
+ }
63
+
64
+ .step-button_msdI1W {
65
+ box-sizing: border-box;
66
+ border: var(--border-width-base) solid var(--color-line);
67
+ background-color: var(--color-surface-1);
68
+ width: 2rem;
69
+ height: 2rem;
70
+ color: var(--color-secondary);
71
+ cursor: pointer;
72
+ user-select: none;
73
+ transition: background-color var(--duration-fast) var(--easing-standard),
74
+ color var(--duration-fast) var(--easing-standard),
75
+ transform .1s var(--easing-ease-out);
76
+ outline: none;
77
+ justify-content: center;
78
+ align-items: center;
79
+ margin: 0;
80
+ padding: 0;
81
+ display: flex;
82
+ }
83
+
84
+ .step-button_msdI1W:hover {
85
+ background-color: var(--color-hover);
86
+ color: var(--color-primary);
87
+ }
88
+
89
+ .step-button_msdI1W:active:not([data-disabled]) {
90
+ background-color: var(--color-active);
91
+ transform: scale(.93);
92
+ }
93
+
94
+ .step-button_msdI1W:focus-visible {
95
+ z-index: 1;
96
+ box-shadow: inset 0 0 0 1.5px var(--color-accent);
97
+ }
98
+
99
+ .step-button_msdI1W[data-disabled] {
100
+ opacity: .44;
101
+ cursor: not-allowed;
102
+ }
103
+
104
+ .decrement_msdI1W {
105
+ border-radius: var(--radius-md) 0 0 var(--radius-md);
106
+ }
107
+
108
+ .increment_msdI1W {
109
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
110
+ }
111
+ }
@@ -0,0 +1,31 @@
1
+ import { ReactNode } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import styles from "./number-field.module.css";
4
+
5
+ //#region src/number-field/number-field.d.ts
6
+ interface NumberFieldProps {
7
+ /** Visible label text. When present a scrub-area is also rendered. */
8
+ label?: ReactNode;
9
+ defaultValue?: number;
10
+ value?: number | null;
11
+ onValueChange?: (value: number | null) => void;
12
+ min?: number;
13
+ max?: number;
14
+ step?: number;
15
+ disabled?: boolean;
16
+ readOnly?: boolean;
17
+ required?: boolean;
18
+ name?: string;
19
+ format?: Intl.NumberFormatOptions;
20
+ allowWheelScrub?: boolean;
21
+ className?: string;
22
+ }
23
+ declare function NumberField({
24
+ label,
25
+ className,
26
+ onValueChange,
27
+ ...props
28
+ }: NumberFieldProps): react_jsx_runtime0.JSX.Element;
29
+ //#endregion
30
+ export { NumberField, NumberFieldProps, styles };
31
+ //# sourceMappingURL=number-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-field.d.ts","names":[],"sources":["../../src/number-field/number-field.tsx"],"mappings":";;;;;UAKiB,gBAAA;;EAEf,KAAA,GAAQ,SAAA;EACR,YAAA;EACA,KAAA;EACA,aAAA,IAAiB,KAAA;EACjB,GAAA;EACA,GAAA;EACA,IAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,IAAA;EACA,MAAA,GAAS,IAAA,CAAK,mBAAA;EACd,eAAA;EACA,SAAA;AAAA;AAAA,iBA2Bc,WAAA,CAAA;EAAc,KAAA;EAAO,SAAA;EAAW,aAAA;EAAA,GAAkB;AAAA,GAAS,gBAAA,GAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,78 @@
1
+ import number_field_module_default from "./number-field.module.js";
2
+ import { useId } from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { NumberField } from "@base-ui/react/number-field";
5
+ //#region src/number-field/number-field.tsx
6
+ function MinusIcon() {
7
+ return /* @__PURE__ */ jsx("svg", {
8
+ width: "10",
9
+ height: "10",
10
+ viewBox: "0 0 10 10",
11
+ fill: "none",
12
+ stroke: "currentColor",
13
+ strokeWidth: "1.6",
14
+ "aria-hidden": true,
15
+ children: /* @__PURE__ */ jsx("path", { d: "M0 5H10" })
16
+ });
17
+ }
18
+ function PlusIcon() {
19
+ return /* @__PURE__ */ jsx("svg", {
20
+ width: "10",
21
+ height: "10",
22
+ viewBox: "0 0 10 10",
23
+ fill: "none",
24
+ stroke: "currentColor",
25
+ strokeWidth: "1.6",
26
+ "aria-hidden": true,
27
+ children: /* @__PURE__ */ jsx("path", { d: "M0 5H5M10 5H5M5 5V0M5 5V10" })
28
+ });
29
+ }
30
+ function ScrubCursorIcon() {
31
+ return /* @__PURE__ */ jsx("svg", {
32
+ width: "24",
33
+ height: "12",
34
+ viewBox: "0 0 24 14",
35
+ fill: "currentColor",
36
+ stroke: "white",
37
+ strokeWidth: "0.5",
38
+ "aria-hidden": true,
39
+ children: /* @__PURE__ */ jsx("path", { d: "M19.5 5.5L6.49737 5.51844V2L1 6.9999L6.5 12L6.49737 8.5L19.5 8.5V12L25 6.9999L19.5 2V5.5Z" })
40
+ });
41
+ }
42
+ function NumberField$1({ label, className, onValueChange, ...props }) {
43
+ const id = useId();
44
+ return /* @__PURE__ */ jsxs(NumberField.Root, {
45
+ id,
46
+ className: `${number_field_module_default.root} ${className ?? ""}`,
47
+ onValueChange,
48
+ ...props,
49
+ children: [label && /* @__PURE__ */ jsxs(NumberField.ScrubArea, {
50
+ className: number_field_module_default["scrub-area"],
51
+ children: [/* @__PURE__ */ jsx("label", {
52
+ htmlFor: id,
53
+ className: number_field_module_default.label,
54
+ children: label
55
+ }), /* @__PURE__ */ jsx(NumberField.ScrubAreaCursor, {
56
+ className: number_field_module_default["scrub-area-cursor"],
57
+ children: /* @__PURE__ */ jsx(ScrubCursorIcon, {})
58
+ })]
59
+ }), /* @__PURE__ */ jsxs(NumberField.Group, {
60
+ className: number_field_module_default.group,
61
+ children: [
62
+ /* @__PURE__ */ jsx(NumberField.Decrement, {
63
+ className: `${number_field_module_default["step-button"]} ${number_field_module_default.decrement}`,
64
+ children: /* @__PURE__ */ jsx(MinusIcon, {})
65
+ }),
66
+ /* @__PURE__ */ jsx(NumberField.Input, { className: number_field_module_default.input }),
67
+ /* @__PURE__ */ jsx(NumberField.Increment, {
68
+ className: `${number_field_module_default["step-button"]} ${number_field_module_default.increment}`,
69
+ children: /* @__PURE__ */ jsx(PlusIcon, {})
70
+ })
71
+ ]
72
+ })]
73
+ });
74
+ }
75
+ //#endregion
76
+ export { NumberField$1 as NumberField };
77
+
78
+ //# sourceMappingURL=number-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-field.js","names":["NumberField","BaseNumberField","styles"],"sources":["../../src/number-field/number-field.tsx"],"sourcesContent":["import { useId } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { NumberField as BaseNumberField } from \"@base-ui/react/number-field\";\nimport styles from \"./number-field.module.css\";\n\nexport interface NumberFieldProps {\n /** Visible label text. When present a scrub-area is also rendered. */\n label?: ReactNode;\n defaultValue?: number;\n value?: number | null;\n onValueChange?: (value: number | null) => void;\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n format?: Intl.NumberFormatOptions;\n allowWheelScrub?: boolean;\n className?: string;\n}\n\nfunction MinusIcon() {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.6\" aria-hidden>\n <path d=\"M0 5H10\" />\n </svg>\n );\n}\n\nfunction PlusIcon() {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.6\" aria-hidden>\n <path d=\"M0 5H5M10 5H5M5 5V0M5 5V10\" />\n </svg>\n );\n}\n\nfunction ScrubCursorIcon() {\n return (\n <svg width=\"24\" height=\"12\" viewBox=\"0 0 24 14\" fill=\"currentColor\" stroke=\"white\" strokeWidth=\"0.5\" aria-hidden>\n <path d=\"M19.5 5.5L6.49737 5.51844V2L1 6.9999L6.5 12L6.49737 8.5L19.5 8.5V12L25 6.9999L19.5 2V5.5Z\" />\n </svg>\n );\n}\n\nexport function NumberField({ label, className, onValueChange, ...props }: NumberFieldProps) {\n const id = useId();\n\n return (\n <BaseNumberField.Root id={id} className={`${styles.root} ${className ?? \"\"}`} onValueChange={onValueChange as never} {...props}>\n {label && (\n <BaseNumberField.ScrubArea className={styles[\"scrub-area\"]}>\n <label htmlFor={id} className={styles.label}>\n {label}\n </label>\n <BaseNumberField.ScrubAreaCursor className={styles[\"scrub-area-cursor\"]}>\n <ScrubCursorIcon />\n </BaseNumberField.ScrubAreaCursor>\n </BaseNumberField.ScrubArea>\n )}\n <BaseNumberField.Group className={styles.group}>\n <BaseNumberField.Decrement className={`${styles[\"step-button\"]} ${styles.decrement}`}>\n <MinusIcon />\n </BaseNumberField.Decrement>\n <BaseNumberField.Input className={styles.input} />\n <BaseNumberField.Increment className={`${styles[\"step-button\"]} ${styles.increment}`}>\n <PlusIcon />\n </BaseNumberField.Increment>\n </BaseNumberField.Group>\n </BaseNumberField.Root>\n );\n}\nexport { styles as NumberFieldStyles };\n"],"mappings":";;;;;AAuBA,SAAS,YAAY;AACnB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,QAAO;EAAe,aAAY;EAAM,eAAA;YAClG,oBAAC,QAAD,EAAM,GAAE,WAAY,CAAA;EAChB,CAAA;;AAIV,SAAS,WAAW;AAClB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,QAAO;EAAe,aAAY;EAAM,eAAA;YAClG,oBAAC,QAAD,EAAM,GAAE,8BAA+B,CAAA;EACnC,CAAA;;AAIV,SAAS,kBAAkB;AACzB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAe,QAAO;EAAQ,aAAY;EAAM,eAAA;YACnG,oBAAC,QAAD,EAAM,GAAE,6FAA8F,CAAA;EAClG,CAAA;;AAIV,SAAgBA,cAAY,EAAE,OAAO,WAAW,eAAe,GAAG,SAA2B;CAC3F,MAAM,KAAK,OAAO;AAElB,QACE,qBAACC,YAAgB,MAAjB;EAA0B;EAAI,WAAW,GAAGC,4BAAO,KAAK,GAAG,aAAa;EAAqB;EAAwB,GAAI;YAAzH,CACG,SACC,qBAACD,YAAgB,WAAjB;GAA2B,WAAWC,4BAAO;aAA7C,CACE,oBAAC,SAAD;IAAO,SAAS;IAAI,WAAWA,4BAAO;cACnC;IACK,CAAA,EACR,oBAACD,YAAgB,iBAAjB;IAAiC,WAAWC,4BAAO;cACjD,oBAAC,iBAAD,EAAmB,CAAA;IACa,CAAA,CACR;MAE9B,qBAACD,YAAgB,OAAjB;GAAuB,WAAWC,4BAAO;aAAzC;IACE,oBAACD,YAAgB,WAAjB;KAA2B,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO;eACvE,oBAAC,WAAD,EAAa,CAAA;KACa,CAAA;IAC5B,oBAACD,YAAgB,OAAjB,EAAuB,WAAWC,4BAAO,OAAS,CAAA;IAClD,oBAACD,YAAgB,WAAjB;KAA2B,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO;eACvE,oBAAC,UAAD,EAAY,CAAA;KACc,CAAA;IACN;KACH"}
@@ -0,0 +1,2 @@
1
+ declare const styles: Record<string, string | undefined>;
2
+ export default styles;
@@ -0,0 +1,16 @@
1
+ //#region src/number-field/number-field.module.css
2
+ var number_field_module_default = {
3
+ "decrement": "decrement_msdI1W",
4
+ "group": "group_msdI1W",
5
+ "increment": "increment_msdI1W",
6
+ "input": "input_msdI1W",
7
+ "label": "label_msdI1W",
8
+ "root": "root_msdI1W",
9
+ "scrub-area": "scrub-area_msdI1W",
10
+ "scrub-area-cursor": "scrub-area-cursor_msdI1W",
11
+ "step-button": "step-button_msdI1W"
12
+ };
13
+ //#endregion
14
+ export { number_field_module_default as default };
15
+
16
+ //# sourceMappingURL=number-field.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-field.module.js","names":[],"sources":["../../src/number-field/number-field.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--space-1);\n }\n .scrub-area {\n cursor: ew-resize;\n user-select: none;\n }\n .scrub-area-cursor {\n filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5));\n }\n .label {\n cursor: ew-resize;\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n color: var(--color-secondary);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: uppercase;\n }\n .group {\n display: flex;\n }\n .input {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n width: 6rem;\n height: 2rem;\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n font-weight: normal;\n text-align: center;\n font-variant-numeric: tabular-nums;\n color: var(--color-primary);\n background-color: var(--color-elevated);\n border-top: var(--border-width-base) solid var(--color-line);\n border-bottom: var(--border-width-base) solid var(--color-line);\n border-left: none;\n border-right: none;\n border-radius: 0;\n outline: none;\n transition: box-shadow var(--duration-fast) var(--easing-standard);\n }\n .input:focus {\n z-index: 1;\n box-shadow: inset 0 0 0 1.5px var(--color-accent);\n }\n .input[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .step-button {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n margin: 0;\n padding: 0;\n border: var(--border-width-base) solid var(--color-line);\n background-color: var(--color-surface-1);\n color: var(--color-secondary);\n cursor: pointer;\n outline: none;\n user-select: none;\n transition:\n background-color var(--duration-fast) var(--easing-standard),\n color var(--duration-fast) var(--easing-standard),\n transform 100ms var(--easing-ease-out);\n }\n .step-button:hover {\n background-color: var(--color-hover);\n color: var(--color-primary);\n }\n .step-button:active:not([data-disabled]) {\n background-color: var(--color-active);\n transform: scale(0.93);\n }\n .step-button:focus-visible {\n z-index: 1;\n box-shadow: inset 0 0 0 1.5px var(--color-accent);\n }\n .step-button[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .decrement {\n border-radius: var(--radius-md) 0 0 var(--radius-md);\n }\n .increment {\n border-radius: 0 var(--radius-md) var(--radius-md) 0;\n }\n}\n"],"mappings":";AAkBA,IAAA,8BAAe;CAAC,aAAY;CAAc,SAAA;CAAA,aAAA;CAAA,SAAA;CAAA,SAAA;CAAA,QAAA;CAAA,cAAA;CAAA,qBAAA;CAAA,eAAA;CAAA"}
@@ -0,0 +1,38 @@
1
+ import * as react from "react";
2
+ import { ComponentPropsWithoutRef } from "react";
3
+ import { NumberField } from "@base-ui/react/number-field";
4
+
5
+ //#region src/number-field/parts.d.ts
6
+ type BaseGroupProps = ComponentPropsWithoutRef<typeof NumberField.Group>;
7
+ type BaseInputProps = ComponentPropsWithoutRef<typeof NumberField.Input>;
8
+ type BaseDecrementProps = ComponentPropsWithoutRef<typeof NumberField.Decrement>;
9
+ type BaseIncrementProps = ComponentPropsWithoutRef<typeof NumberField.Increment>;
10
+ type BaseScrubAreaProps = ComponentPropsWithoutRef<typeof NumberField.ScrubArea>;
11
+ type BaseScrubAreaCursorProps = ComponentPropsWithoutRef<typeof NumberField.ScrubAreaCursor>;
12
+ interface NumberFieldGroupProps extends Omit<BaseGroupProps, "className"> {
13
+ className?: string;
14
+ }
15
+ interface NumberFieldInputProps extends Omit<BaseInputProps, "className"> {
16
+ className?: string;
17
+ }
18
+ interface NumberFieldDecrementProps extends Omit<BaseDecrementProps, "className"> {
19
+ className?: string;
20
+ }
21
+ interface NumberFieldIncrementProps extends Omit<BaseIncrementProps, "className"> {
22
+ className?: string;
23
+ }
24
+ interface NumberFieldScrubAreaProps extends Omit<BaseScrubAreaProps, "className"> {
25
+ className?: string;
26
+ }
27
+ interface NumberFieldScrubAreaCursorProps extends Omit<BaseScrubAreaCursorProps, "className"> {
28
+ className?: string;
29
+ }
30
+ declare const NumberFieldGroup: react.ForwardRefExoticComponent<NumberFieldGroupProps & react.RefAttributes<HTMLDivElement>>;
31
+ declare const NumberFieldInput: react.ForwardRefExoticComponent<NumberFieldInputProps & react.RefAttributes<HTMLInputElement>>;
32
+ declare const NumberFieldDecrement: react.ForwardRefExoticComponent<NumberFieldDecrementProps & react.RefAttributes<HTMLButtonElement>>;
33
+ declare const NumberFieldIncrement: react.ForwardRefExoticComponent<NumberFieldIncrementProps & react.RefAttributes<HTMLButtonElement>>;
34
+ declare const NumberFieldScrubArea: react.ForwardRefExoticComponent<NumberFieldScrubAreaProps & react.RefAttributes<HTMLSpanElement>>;
35
+ declare const NumberFieldScrubAreaCursor: react.ForwardRefExoticComponent<NumberFieldScrubAreaCursorProps & react.RefAttributes<HTMLSpanElement>>;
36
+ //#endregion
37
+ export { NumberFieldDecrement, NumberFieldDecrementProps, NumberFieldGroup, NumberFieldGroupProps, NumberFieldIncrement, NumberFieldIncrementProps, NumberFieldInput, NumberFieldInputProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, NumberFieldScrubAreaCursorProps, NumberFieldScrubAreaProps };
38
+ //# sourceMappingURL=parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/number-field/parts.tsx"],"mappings":";;;;;KA4BK,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,cAAA,GAAiB,wBAAA,QAAgC,WAAA,CAAgB,KAAA;AAAA,KACjE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,kBAAA,GAAqB,wBAAA,QAAgC,WAAA,CAAgB,SAAA;AAAA,KACrE,wBAAA,GAA2B,wBAAA,QAAgC,WAAA,CAAgB,eAAA;AAAA,UAE/D,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,qBAAA,SAA8B,IAAA,CAAK,cAAA;EAClD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,yBAAA,SAAkC,IAAA,CAAK,kBAAA;EACtD,SAAA;AAAA;AAAA,UAEe,+BAAA,SAAwC,IAAA,CAAK,wBAAA;EAC5D,SAAA;AAAA;AAAA,cAGW,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOhB,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,cAOhB,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cAMpB,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cAMpB,oBAAA,EAAoB,KAAA,CAAA,yBAAA,CAAA,yBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA;AAAA,cAMpB,0BAAA,EAA0B,KAAA,CAAA,yBAAA,CAAA,+BAAA,GAAA,KAAA,CAAA,aAAA,CAAA,eAAA"}
@@ -0,0 +1,74 @@
1
+ import number_field_module_default from "./number-field.module.js";
2
+ import { forwardRef } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { NumberField } from "@base-ui/react/number-field";
5
+ //#region src/number-field/parts.tsx
6
+ /**
7
+ * Styled primitives for NumberField.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { NumberField } from '@base-ui/react/number-field';
12
+ * import {
13
+ * NumberFieldGroup,
14
+ * NumberFieldInput,
15
+ * NumberFieldDecrement,
16
+ * NumberFieldIncrement,
17
+ * } from '@brijbyte/agentic-ui/number-field';
18
+ *
19
+ * <NumberField.Root>
20
+ * <NumberField.ScrubArea>...</NumberField.ScrubArea>
21
+ * <NumberFieldGroup>
22
+ * <NumberFieldDecrement />
23
+ * <NumberFieldInput />
24
+ * <NumberFieldIncrement />
25
+ * </NumberFieldGroup>
26
+ * </NumberField.Root>
27
+ * ```
28
+ */
29
+ const NumberFieldGroup = forwardRef(function NumberFieldGroup({ className, ...props }, ref) {
30
+ return /* @__PURE__ */ jsx(NumberField.Group, {
31
+ ref,
32
+ className: `${number_field_module_default.group} ${className ?? ""}`,
33
+ ...props
34
+ });
35
+ });
36
+ const NumberFieldInput = forwardRef(function NumberFieldInput({ className, ...props }, ref) {
37
+ return /* @__PURE__ */ jsx(NumberField.Input, {
38
+ ref,
39
+ className: `${number_field_module_default.input} ${className ?? ""}`,
40
+ ...props
41
+ });
42
+ });
43
+ const NumberFieldDecrement = forwardRef(function NumberFieldDecrement({ className, ...props }, ref) {
44
+ return /* @__PURE__ */ jsx(NumberField.Decrement, {
45
+ ref,
46
+ className: `${number_field_module_default["step-button"]} ${number_field_module_default.decrement} ${className ?? ""}`,
47
+ ...props
48
+ });
49
+ });
50
+ const NumberFieldIncrement = forwardRef(function NumberFieldIncrement({ className, ...props }, ref) {
51
+ return /* @__PURE__ */ jsx(NumberField.Increment, {
52
+ ref,
53
+ className: `${number_field_module_default["step-button"]} ${number_field_module_default.increment} ${className ?? ""}`,
54
+ ...props
55
+ });
56
+ });
57
+ const NumberFieldScrubArea = forwardRef(function NumberFieldScrubArea({ className, ...props }, ref) {
58
+ return /* @__PURE__ */ jsx(NumberField.ScrubArea, {
59
+ ref,
60
+ className: `${number_field_module_default["scrub-area"]} ${className ?? ""}`,
61
+ ...props
62
+ });
63
+ });
64
+ const NumberFieldScrubAreaCursor = forwardRef(function NumberFieldScrubAreaCursor({ className, ...props }, ref) {
65
+ return /* @__PURE__ */ jsx(NumberField.ScrubAreaCursor, {
66
+ ref,
67
+ className: `${number_field_module_default["scrub-area-cursor"]} ${className ?? ""}`,
68
+ ...props
69
+ });
70
+ });
71
+ //#endregion
72
+ export { NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldScrubArea, NumberFieldScrubAreaCursor };
73
+
74
+ //# sourceMappingURL=parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.js","names":["BaseNumberField","styles"],"sources":["../../src/number-field/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for NumberField.\n *\n * @example\n * ```tsx\n * import { NumberField } from '@base-ui/react/number-field';\n * import {\n * NumberFieldGroup,\n * NumberFieldInput,\n * NumberFieldDecrement,\n * NumberFieldIncrement,\n * } from '@brijbyte/agentic-ui/number-field';\n *\n * <NumberField.Root>\n * <NumberField.ScrubArea>...</NumberField.ScrubArea>\n * <NumberFieldGroup>\n * <NumberFieldDecrement />\n * <NumberFieldInput />\n * <NumberFieldIncrement />\n * </NumberFieldGroup>\n * </NumberField.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { NumberField as BaseNumberField } from \"@base-ui/react/number-field\";\nimport styles from \"./number-field.module.css\";\n\ntype BaseGroupProps = ComponentPropsWithoutRef<typeof BaseNumberField.Group>;\ntype BaseInputProps = ComponentPropsWithoutRef<typeof BaseNumberField.Input>;\ntype BaseDecrementProps = ComponentPropsWithoutRef<typeof BaseNumberField.Decrement>;\ntype BaseIncrementProps = ComponentPropsWithoutRef<typeof BaseNumberField.Increment>;\ntype BaseScrubAreaProps = ComponentPropsWithoutRef<typeof BaseNumberField.ScrubArea>;\ntype BaseScrubAreaCursorProps = ComponentPropsWithoutRef<typeof BaseNumberField.ScrubAreaCursor>;\n\nexport interface NumberFieldGroupProps extends Omit<BaseGroupProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldInputProps extends Omit<BaseInputProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldDecrementProps extends Omit<BaseDecrementProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldIncrementProps extends Omit<BaseIncrementProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldScrubAreaProps extends Omit<BaseScrubAreaProps, \"className\"> {\n className?: string;\n}\nexport interface NumberFieldScrubAreaCursorProps extends Omit<BaseScrubAreaCursorProps, \"className\"> {\n className?: string;\n}\n\nexport const NumberFieldGroup = forwardRef<ComponentRef<typeof BaseNumberField.Group>, NumberFieldGroupProps>(function NumberFieldGroup(\n { className, ...props },\n ref,\n) {\n return <BaseNumberField.Group ref={ref} className={`${styles.group} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const NumberFieldInput = forwardRef<ComponentRef<typeof BaseNumberField.Input>, NumberFieldInputProps>(function NumberFieldInput(\n { className, ...props },\n ref,\n) {\n return <BaseNumberField.Input ref={ref} className={`${styles.input} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const NumberFieldDecrement = forwardRef<ComponentRef<typeof BaseNumberField.Decrement>, NumberFieldDecrementProps>(\n function NumberFieldDecrement({ className, ...props }, ref) {\n return <BaseNumberField.Decrement ref={ref} className={`${styles[\"step-button\"]} ${styles.decrement} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const NumberFieldIncrement = forwardRef<ComponentRef<typeof BaseNumberField.Increment>, NumberFieldIncrementProps>(\n function NumberFieldIncrement({ className, ...props }, ref) {\n return <BaseNumberField.Increment ref={ref} className={`${styles[\"step-button\"]} ${styles.increment} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const NumberFieldScrubArea = forwardRef<ComponentRef<typeof BaseNumberField.ScrubArea>, NumberFieldScrubAreaProps>(\n function NumberFieldScrubArea({ className, ...props }, ref) {\n return <BaseNumberField.ScrubArea ref={ref} className={`${styles[\"scrub-area\"]} ${className ?? \"\"}`} {...props} />;\n },\n);\n\nexport const NumberFieldScrubAreaCursor = forwardRef<ComponentRef<typeof BaseNumberField.ScrubAreaCursor>, NumberFieldScrubAreaCursorProps>(\n function NumberFieldScrubAreaCursor({ className, ...props }, ref) {\n return <BaseNumberField.ScrubAreaCursor ref={ref} className={`${styles[\"scrub-area-cursor\"]} ${className ?? \"\"}`} {...props} />;\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,YAAgB,OAAjB;EAA4B;EAAK,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACtG;AAEF,MAAa,mBAAmB,WAA8E,SAAS,iBACrH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,YAAgB,OAAjB;EAA4B;EAAK,WAAW,GAAGC,4BAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACtG;AAEF,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC1D,QAAO,oBAACD,YAAgB,WAAjB;EAAgC;EAAK,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAE1I;AAED,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC1D,QAAO,oBAACD,YAAgB,WAAjB;EAAgC;EAAK,WAAW,GAAGC,4BAAO,eAAe,GAAGA,4BAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAE1I;AAED,MAAa,uBAAuB,WAClC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;AAC1D,QAAO,oBAACD,YAAgB,WAAjB;EAAgC;EAAK,WAAW,GAAGC,4BAAO,cAAc,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAErH;AAED,MAAa,6BAA6B,WACxC,SAAS,2BAA2B,EAAE,WAAW,GAAG,SAAS,KAAK;AAChE,QAAO,oBAACD,YAAgB,iBAAjB;EAAsC;EAAK,WAAW,GAAGC,4BAAO,qBAAqB,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EAElI"}