@mks2508/mks-ui 0.5.4 → 0.5.8

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 (262) hide show
  1. package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts +23 -4
  2. package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts.map +1 -1
  3. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts +2 -2
  4. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts.map +1 -1
  5. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.js +292 -31
  6. package/dist/react-ui/primitives/waapi/Gooey/gooey-utils.d.ts +7 -0
  7. package/dist/react-ui/primitives/waapi/Gooey/gooey-utils.d.ts.map +1 -1
  8. package/dist/react-ui/primitives/waapi/Gooey/gooey-utils.js +6 -1
  9. package/dist/react-ui/ui/DynamicToggle/{DynamicToggle-Cm6-VceQ.css → DynamicToggle-DJLwEkHr.css} +116 -51
  10. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +116 -51
  11. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -0
  12. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts.map +1 -1
  13. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.js +9 -3
  14. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +61 -31
  15. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts.map +1 -1
  16. package/dist/react-ui/ui/DynamicToggle/index.d.ts +9 -3
  17. package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
  18. package/dist/react-ui/ui/DynamicToggle/index.js +68 -37
  19. package/package.json +52 -13
  20. package/src/assets/react.svg +0 -1
  21. package/src/core/index.ts +0 -7
  22. package/src/core/types.ts +0 -82
  23. package/src/css.d.ts +0 -7
  24. package/src/index.css +0 -129
  25. package/src/index.ts +0 -29
  26. package/src/react-ui/blocks/Terminal/ResttyAdapter.ts +0 -278
  27. package/src/react-ui/blocks/Terminal/Terminal.adapter.ts +0 -97
  28. package/src/react-ui/blocks/Terminal/Terminal.theme.restty.ts +0 -155
  29. package/src/react-ui/blocks/Terminal/Terminal.theme.ts +0 -80
  30. package/src/react-ui/blocks/Terminal/Terminal.types.ts +0 -438
  31. package/src/react-ui/blocks/Terminal/TerminalDisplay.styles.ts +0 -38
  32. package/src/react-ui/blocks/Terminal/TerminalDisplay.tsx +0 -254
  33. package/src/react-ui/blocks/Terminal/TerminalDisplay.types.ts +0 -73
  34. package/src/react-ui/blocks/Terminal/TerminalPanel.tsx +0 -269
  35. package/src/react-ui/blocks/Terminal/TerminalRestty.tsx +0 -326
  36. package/src/react-ui/blocks/Terminal/TerminalXterm.tsx +0 -230
  37. package/src/react-ui/blocks/Terminal/XTermAdapter.ts +0 -163
  38. package/src/react-ui/blocks/Terminal/chrome.ts +0 -25
  39. package/src/react-ui/blocks/Terminal/components/LogLineBadges.tsx +0 -316
  40. package/src/react-ui/blocks/Terminal/components/SpecializedSyntaxHighlighter.tsx +0 -218
  41. package/src/react-ui/blocks/Terminal/components/SyntaxHighlight.tsx +0 -386
  42. package/src/react-ui/blocks/Terminal/components/TerminalLogBadge.tsx +0 -67
  43. package/src/react-ui/blocks/Terminal/components/index.ts +0 -10
  44. package/src/react-ui/blocks/Terminal/display.ts +0 -46
  45. package/src/react-ui/blocks/Terminal/hooks/index.ts +0 -22
  46. package/src/react-ui/blocks/Terminal/hooks/useTerminalSettings.ts +0 -229
  47. package/src/react-ui/blocks/Terminal/hooks/useTerminalWebSocket.ts +0 -292
  48. package/src/react-ui/blocks/Terminal/index.ts +0 -111
  49. package/src/react-ui/blocks/Terminal/panel/LogLinesViewer.tsx +0 -330
  50. package/src/react-ui/blocks/Terminal/panel/TerminalDebugPanel.tsx +0 -242
  51. package/src/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.tsx +0 -202
  52. package/src/react-ui/blocks/Terminal/panel/TerminalFilterTabs.tsx +0 -140
  53. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.tsx +0 -68
  54. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.ts +0 -85
  55. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.tsx +0 -383
  56. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.tsx +0 -439
  57. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.tsx +0 -550
  58. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.ts +0 -259
  59. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.ts +0 -75
  60. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx +0 -266
  61. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts +0 -82
  62. package/src/react-ui/blocks/Terminal/panel/TerminalPanelFooter.tsx +0 -112
  63. package/src/react-ui/blocks/Terminal/panel/TerminalPanelHeader.tsx +0 -178
  64. package/src/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.tsx +0 -203
  65. package/src/react-ui/blocks/Terminal/panel/TerminalSessionControl.tsx +0 -252
  66. package/src/react-ui/blocks/Terminal/panel/TerminalSessionTabs.tsx +0 -334
  67. package/src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.tsx +0 -261
  68. package/src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx +0 -248
  69. package/src/react-ui/blocks/Terminal/panel/index.ts +0 -72
  70. package/src/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.css +0 -59
  71. package/src/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.css +0 -59
  72. package/src/react-ui/blocks/Terminal/parsing/BadgeFormatter.ts +0 -180
  73. package/src/react-ui/blocks/Terminal/parsing/HttpLogParser.ts +0 -248
  74. package/src/react-ui/blocks/Terminal/parsing/LogParser.types.ts +0 -283
  75. package/src/react-ui/blocks/Terminal/parsing/LogParserService.ts +0 -686
  76. package/src/react-ui/blocks/Terminal/parsing/MultilineAggregator.ts +0 -466
  77. package/src/react-ui/blocks/Terminal/parsing/PersistentLogBuffer.ts +0 -343
  78. package/src/react-ui/blocks/Terminal/parsing/SyntaxHighlighter.ts +0 -167
  79. package/src/react-ui/blocks/Terminal/parsing/TableParser.ts +0 -348
  80. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiColorMapper.ts +0 -251
  81. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiParser.ts +0 -390
  82. package/src/react-ui/blocks/Terminal/parsing/ansi/ansi.constants.ts +0 -320
  83. package/src/react-ui/blocks/Terminal/parsing/ansi/index.ts +0 -20
  84. package/src/react-ui/blocks/Terminal/parsing/index.ts +0 -69
  85. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevel.types.ts +0 -68
  86. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevelDetector.ts +0 -436
  87. package/src/react-ui/blocks/Terminal/parsing/levels/index.ts +0 -14
  88. package/src/react-ui/blocks/index.ts +0 -11
  89. package/src/react-ui/components/MorphingPopover/MorphingPopover.types.ts +0 -49
  90. package/src/react-ui/components/MorphingPopover/index.tsx +0 -186
  91. package/src/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -153
  92. package/src/react-ui/components/index.ts +0 -9
  93. package/src/react-ui/hooks/Animation/UseAutoHeight.tsx +0 -123
  94. package/src/react-ui/hooks/DOM/UseIsInView.tsx +0 -44
  95. package/src/react-ui/hooks/Formatting/UseListFormat.ts +0 -134
  96. package/src/react-ui/hooks/State/UseControlledState.tsx +0 -57
  97. package/src/react-ui/hooks/State/UseDataState.tsx +0 -76
  98. package/src/react-ui/hooks/index.ts +0 -20
  99. package/src/react-ui/icons/index.ts +0 -12
  100. package/src/react-ui/icons/lucide-animated/activity.tsx +0 -109
  101. package/src/react-ui/icons/lucide-animated/arrow-down-to-line.tsx +0 -51
  102. package/src/react-ui/icons/lucide-animated/arrow-up.tsx +0 -50
  103. package/src/react-ui/icons/lucide-animated/bell-electric.tsx +0 -124
  104. package/src/react-ui/icons/lucide-animated/bell.tsx +0 -93
  105. package/src/react-ui/icons/lucide-animated/bot.tsx +0 -122
  106. package/src/react-ui/icons/lucide-animated/box.tsx +0 -117
  107. package/src/react-ui/icons/lucide-animated/check.tsx +0 -21
  108. package/src/react-ui/icons/lucide-animated/circle-check.tsx +0 -107
  109. package/src/react-ui/icons/lucide-animated/delete.tsx +0 -133
  110. package/src/react-ui/icons/lucide-animated/download.tsx +0 -99
  111. package/src/react-ui/icons/lucide-animated/edit-2.tsx +0 -21
  112. package/src/react-ui/icons/lucide-animated/globe.tsx +0 -23
  113. package/src/react-ui/icons/lucide-animated/home.tsx +0 -103
  114. package/src/react-ui/icons/lucide-animated/index.ts +0 -38
  115. package/src/react-ui/icons/lucide-animated/layers.tsx +0 -23
  116. package/src/react-ui/icons/lucide-animated/layout-panel-top.tsx +0 -143
  117. package/src/react-ui/icons/lucide-animated/list.tsx +0 -54
  118. package/src/react-ui/icons/lucide-animated/package.tsx +0 -24
  119. package/src/react-ui/icons/lucide-animated/palette.tsx +0 -25
  120. package/src/react-ui/icons/lucide-animated/plus.tsx +0 -92
  121. package/src/react-ui/icons/lucide-animated/refresh-cw.tsx +0 -24
  122. package/src/react-ui/icons/lucide-animated/rocket.tsx +0 -24
  123. package/src/react-ui/icons/lucide-animated/save.tsx +0 -23
  124. package/src/react-ui/icons/lucide-animated/search.tsx +0 -94
  125. package/src/react-ui/icons/lucide-animated/settings.tsx +0 -92
  126. package/src/react-ui/icons/lucide-animated/terminal.tsx +0 -46
  127. package/src/react-ui/icons/lucide-animated/trash-2.tsx +0 -25
  128. package/src/react-ui/icons/lucide-animated/trending-down.tsx +0 -151
  129. package/src/react-ui/icons/lucide-animated/trending-up.tsx +0 -150
  130. package/src/react-ui/icons/lucide-animated/type.tsx +0 -23
  131. package/src/react-ui/icons/lucide-animated/upload.tsx +0 -23
  132. package/src/react-ui/icons/lucide-animated/x.tsx +0 -102
  133. package/src/react-ui/index.ts +0 -30
  134. package/src/react-ui/lib/get-strict-context.tsx +0 -56
  135. package/src/react-ui/lib/icon-wrapper.tsx +0 -70
  136. package/src/react-ui/lib/index.ts +0 -9
  137. package/src/react-ui/lib/utils.ts +0 -24
  138. package/src/react-ui/primitives/AutoHeight/index.tsx +0 -74
  139. package/src/react-ui/primitives/CountingNumber/index.tsx +0 -147
  140. package/src/react-ui/primitives/Highlight/Highlight.types.ts +0 -136
  141. package/src/react-ui/primitives/Highlight/index.tsx +0 -577
  142. package/src/react-ui/primitives/Slot/index.tsx +0 -128
  143. package/src/react-ui/primitives/index.ts +0 -16
  144. package/src/react-ui/primitives/waapi/Gooey/Gooey.types.ts +0 -123
  145. package/src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx +0 -80
  146. package/src/react-ui/primitives/waapi/Gooey/GooeyFilter.tsx +0 -77
  147. package/src/react-ui/primitives/waapi/Gooey/MorphPath.tsx +0 -58
  148. package/src/react-ui/primitives/waapi/Gooey/gooey-utils.ts +0 -244
  149. package/src/react-ui/primitives/waapi/Gooey/index.ts +0 -50
  150. package/src/react-ui/primitives/waapi/Gooey/useMorphPath.ts +0 -48
  151. package/src/react-ui/primitives/waapi/Morph/Morph.types.ts +0 -106
  152. package/src/react-ui/primitives/waapi/Morph/MorphContext.tsx +0 -21
  153. package/src/react-ui/primitives/waapi/Morph/index.tsx +0 -56
  154. package/src/react-ui/primitives/waapi/Morph/techniques/index.ts +0 -12
  155. package/src/react-ui/primitives/waapi/Morph/techniques/useCSSGridMorph.ts +0 -89
  156. package/src/react-ui/primitives/waapi/Morph/techniques/useFLIPClipPath.ts +0 -176
  157. package/src/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.ts +0 -87
  158. package/src/react-ui/primitives/waapi/Morph/useMorph.ts +0 -101
  159. package/src/react-ui/primitives/waapi/Reorder/Reorder.types.ts +0 -177
  160. package/src/react-ui/primitives/waapi/Reorder/index.tsx +0 -260
  161. package/src/react-ui/primitives/waapi/Reorder/useReorder.ts +0 -47
  162. package/src/react-ui/primitives/waapi/Reorder/useReorderPresence.ts +0 -209
  163. package/src/react-ui/primitives/waapi/Reorder/utils/separatorCoordination.ts +0 -104
  164. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.ts +0 -14
  165. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.types.ts +0 -84
  166. package/src/react-ui/primitives/waapi/SlidingNumber/index.tsx +0 -474
  167. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.styles.ts +0 -32
  168. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.types.ts +0 -69
  169. package/src/react-ui/primitives/waapi/SlidingText/index.tsx +0 -140
  170. package/src/react-ui/primitives/waapi/core/animationConstants.ts +0 -215
  171. package/src/react-ui/primitives/waapi/core/index.ts +0 -53
  172. package/src/react-ui/primitives/waapi/core/types.ts +0 -200
  173. package/src/react-ui/primitives/waapi/core/useAnimationOrchestrator.ts +0 -430
  174. package/src/react-ui/primitives/waapi/core/useElementRegistry.ts +0 -81
  175. package/src/react-ui/primitives/waapi/core/useFLIPAnimation.ts +0 -138
  176. package/src/react-ui/primitives/waapi/core/usePositionCapture.ts +0 -106
  177. package/src/react-ui/primitives/waapi/index.ts +0 -139
  178. package/src/react-ui/styles/animations.css +0 -369
  179. package/src/react-ui/ui/Accordion/Accordion.styles.ts +0 -72
  180. package/src/react-ui/ui/Accordion/Accordion.types.ts +0 -199
  181. package/src/react-ui/ui/Accordion/index.tsx +0 -362
  182. package/src/react-ui/ui/AlertDialog/AlertDialog.styles.ts +0 -38
  183. package/src/react-ui/ui/AlertDialog/AlertDialog.types.ts +0 -296
  184. package/src/react-ui/ui/AlertDialog/index.tsx +0 -540
  185. package/src/react-ui/ui/Badge/Badge.styles.ts +0 -43
  186. package/src/react-ui/ui/Badge/Badge.types.ts +0 -26
  187. package/src/react-ui/ui/Badge/index.tsx +0 -34
  188. package/src/react-ui/ui/Button/Button.styles.ts +0 -57
  189. package/src/react-ui/ui/Button/Button.types.ts +0 -63
  190. package/src/react-ui/ui/Button/index.tsx +0 -155
  191. package/src/react-ui/ui/Card/Card.styles.ts +0 -32
  192. package/src/react-ui/ui/Card/Card.types.ts +0 -39
  193. package/src/react-ui/ui/Card/index.tsx +0 -130
  194. package/src/react-ui/ui/Checkbox/Checkbox.styles.ts +0 -40
  195. package/src/react-ui/ui/Checkbox/Checkbox.types.ts +0 -98
  196. package/src/react-ui/ui/Checkbox/index.tsx +0 -233
  197. package/src/react-ui/ui/Combobox/Combobox.styles.ts +0 -34
  198. package/src/react-ui/ui/Combobox/Combobox.types.ts +0 -89
  199. package/src/react-ui/ui/Combobox/index.tsx +0 -331
  200. package/src/react-ui/ui/CornerBracket/CornerBracket.styles.ts +0 -38
  201. package/src/react-ui/ui/CornerBracket/CornerBracket.types.ts +0 -15
  202. package/src/react-ui/ui/CornerBracket/index.tsx +0 -49
  203. package/src/react-ui/ui/DataCard/DataCard.styles.ts +0 -94
  204. package/src/react-ui/ui/DataCard/DataCard.types.ts +0 -125
  205. package/src/react-ui/ui/DataCard/index.tsx +0 -340
  206. package/src/react-ui/ui/Dialog/Dialog.styles.ts +0 -59
  207. package/src/react-ui/ui/Dialog/Dialog.types.ts +0 -284
  208. package/src/react-ui/ui/Dialog/index.tsx +0 -452
  209. package/src/react-ui/ui/DropdownMenu/DropdownMenu.styles.ts +0 -35
  210. package/src/react-ui/ui/DropdownMenu/DropdownMenu.types.ts +0 -81
  211. package/src/react-ui/ui/DropdownMenu/index.tsx +0 -300
  212. package/src/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -303
  213. package/src/react-ui/ui/DynamicToggle/DynamicToggle.styles.ts +0 -85
  214. package/src/react-ui/ui/DynamicToggle/DynamicToggle.types.ts +0 -174
  215. package/src/react-ui/ui/DynamicToggle/index.tsx +0 -294
  216. package/src/react-ui/ui/DynamicToggle/prototype-v7.html +0 -615
  217. package/src/react-ui/ui/DynamicToggle/prototype.html +0 -419
  218. package/src/react-ui/ui/Field/Field.styles.ts +0 -47
  219. package/src/react-ui/ui/Field/Field.types.ts +0 -60
  220. package/src/react-ui/ui/Field/index.tsx +0 -254
  221. package/src/react-ui/ui/Input/Input.styles.ts +0 -11
  222. package/src/react-ui/ui/Input/Input.types.ts +0 -10
  223. package/src/react-ui/ui/Input/index.tsx +0 -32
  224. package/src/react-ui/ui/InputGroup/InputGroup.styles.ts +0 -53
  225. package/src/react-ui/ui/InputGroup/InputGroup.types.ts +0 -44
  226. package/src/react-ui/ui/InputGroup/index.tsx +0 -149
  227. package/src/react-ui/ui/Label/Label.styles.ts +0 -10
  228. package/src/react-ui/ui/Label/Label.types.ts +0 -9
  229. package/src/react-ui/ui/Label/index.tsx +0 -27
  230. package/src/react-ui/ui/Menu/Menu.styles.ts +0 -71
  231. package/src/react-ui/ui/Menu/Menu.types.ts +0 -425
  232. package/src/react-ui/ui/Menu/index.tsx +0 -900
  233. package/src/react-ui/ui/Popover/Popover.styles.ts +0 -55
  234. package/src/react-ui/ui/Popover/Popover.types.ts +0 -261
  235. package/src/react-ui/ui/Popover/index.tsx +0 -422
  236. package/src/react-ui/ui/Progress/Progress.styles.ts +0 -36
  237. package/src/react-ui/ui/Progress/Progress.types.ts +0 -162
  238. package/src/react-ui/ui/Progress/index.tsx +0 -254
  239. package/src/react-ui/ui/Select/Select.styles.ts +0 -30
  240. package/src/react-ui/ui/Select/Select.types.ts +0 -51
  241. package/src/react-ui/ui/Select/index.tsx +0 -225
  242. package/src/react-ui/ui/Separator/Separator.styles.ts +0 -10
  243. package/src/react-ui/ui/Separator/Separator.types.ts +0 -10
  244. package/src/react-ui/ui/Separator/index.tsx +0 -37
  245. package/src/react-ui/ui/Switch/Switch.styles.ts +0 -50
  246. package/src/react-ui/ui/Switch/Switch.types.ts +0 -155
  247. package/src/react-ui/ui/Switch/index.tsx +0 -253
  248. package/src/react-ui/ui/Tabs/Tabs.css +0 -39
  249. package/src/react-ui/ui/Tabs/Tabs.styles.ts +0 -148
  250. package/src/react-ui/ui/Tabs/Tabs.types.ts +0 -255
  251. package/src/react-ui/ui/Tabs/index.tsx +0 -529
  252. package/src/react-ui/ui/TextFlow/TextFlow.styles.ts +0 -36
  253. package/src/react-ui/ui/TextFlow/TextFlow.types.ts +0 -118
  254. package/src/react-ui/ui/TextFlow/index.tsx +0 -276
  255. package/src/react-ui/ui/Textarea/Textarea.styles.ts +0 -10
  256. package/src/react-ui/ui/Textarea/Textarea.types.ts +0 -9
  257. package/src/react-ui/ui/Textarea/index.tsx +0 -27
  258. package/src/react-ui/ui/Tooltip/Tooltip.styles.ts +0 -43
  259. package/src/react-ui/ui/Tooltip/Tooltip.types.ts +0 -253
  260. package/src/react-ui/ui/Tooltip/index.tsx +0 -394
  261. package/src/react-ui/ui/index.ts +0 -41
  262. package/src/types/css-modules.d.ts +0 -18
@@ -1,425 +0,0 @@
1
- /**
2
- * Type definitions for the Menu component.
3
- *
4
- * All interfaces use the IPrefix convention. Type aliases do not.
5
- * This module re-exports relevant types from base-ui and motion
6
- * combined with the v0.2.0 SlotOverrides/IBaseConfig pattern.
7
- *
8
- * @module @mks2508/mks-ui/react/ui/Menu/Menu.types
9
- */
10
-
11
- import type * as React from 'react';
12
- import type { Menu as MenuPrimitive } from '@base-ui/react/menu';
13
- import type { HTMLMotionProps, Transition } from 'motion/react';
14
-
15
- import type { IBaseConfig, SlotOverrides } from '@/core/types';
16
- import type { IHighlightProps, IHighlightItemProps } from '@/react-ui/primitives/Highlight';
17
- import type { MenuSlot } from './Menu.styles';
18
-
19
- // ---------------------------------------------------------------------------
20
- // Config
21
- // ---------------------------------------------------------------------------
22
-
23
- /**
24
- * Configuration interface for Menu behavior and animation.
25
- *
26
- * @example
27
- * ```tsx
28
- * const config: IMenuConfig = {
29
- * animation: { duration: 0.2, easing: 'ease-out' },
30
- * };
31
- * ```
32
- */
33
- export interface IMenuConfig extends IBaseConfig {
34
- /** Default motion transition for the popup entrance/exit. */
35
- popupTransition?: Transition;
36
- }
37
-
38
- // ---------------------------------------------------------------------------
39
- // Context types (type aliases -- no IPrefix)
40
- // ---------------------------------------------------------------------------
41
-
42
- /**
43
- * Internal context carrying the highlighted (focused) item value.
44
- *
45
- * @example
46
- * ```typescript
47
- * const ctx: MenuActiveValueContextType = {
48
- * highlightedValue: 'edit',
49
- * setHighlightedValue: (v) => {},
50
- * };
51
- * ```
52
- */
53
- export type MenuActiveValueContextType = {
54
- /** Currently highlighted item value, or null if none. */
55
- highlightedValue: string | null;
56
- /** Setter for the highlighted item value. */
57
- setHighlightedValue: (value: string | null) => void;
58
- };
59
-
60
- /**
61
- * Internal context for Menu open/close state.
62
- *
63
- * @example
64
- * ```typescript
65
- * const ctx: MenuContextType = { isOpen: true, setIsOpen: (v) => {} };
66
- * ```
67
- */
68
- export type MenuContextType = {
69
- /** Whether the menu is open. */
70
- isOpen: boolean | undefined;
71
- /** Setter for open state, matching base-ui's onOpenChange signature. */
72
- setIsOpen: IMenuProps['onOpenChange'];
73
- };
74
-
75
- // ---------------------------------------------------------------------------
76
- // Root
77
- // ---------------------------------------------------------------------------
78
-
79
- /**
80
- * Props for the root Menu component.
81
- * Extends base-ui Menu.Root props with slot overrides and config.
82
- *
83
- * @example
84
- * ```tsx
85
- * <Menu slots={{ popup: 'bg-zinc-900' }} config={{ popupTransition: { duration: 0.3 } }}>
86
- * ...
87
- * </Menu>
88
- * ```
89
- */
90
- export interface IMenuProps extends React.ComponentProps<typeof MenuPrimitive.Root> {
91
- /** Partial class overrides per slot. */
92
- slots?: SlotOverrides<MenuSlot>;
93
- /** Menu behavior / animation configuration. */
94
- config?: IMenuConfig;
95
- }
96
-
97
- // ---------------------------------------------------------------------------
98
- // Trigger
99
- // ---------------------------------------------------------------------------
100
-
101
- /**
102
- * Props for MenuTrigger -- the element that opens the menu.
103
- *
104
- * @example
105
- * ```tsx
106
- * <MenuTrigger className="px-3 py-2">Open</MenuTrigger>
107
- * ```
108
- */
109
- export interface IMenuTriggerProps
110
- extends React.ComponentProps<typeof MenuPrimitive.Trigger> {
111
- /** Partial class overrides per slot. */
112
- slots?: SlotOverrides<MenuSlot>;
113
- }
114
-
115
- // ---------------------------------------------------------------------------
116
- // Portal
117
- // ---------------------------------------------------------------------------
118
-
119
- /**
120
- * Props for MenuPortal. Wraps AnimatePresence for enter/exit transitions.
121
- * The `keepMounted` prop is managed internally.
122
- *
123
- * @example
124
- * ```tsx
125
- * <MenuPortal>
126
- * <MenuPositioner>...</MenuPositioner>
127
- * </MenuPortal>
128
- * ```
129
- */
130
- export interface IMenuPortalProps
131
- extends Omit<React.ComponentProps<typeof MenuPrimitive.Portal>, 'keepMounted'> {}
132
-
133
- // ---------------------------------------------------------------------------
134
- // Group / GroupLabel
135
- // ---------------------------------------------------------------------------
136
-
137
- /**
138
- * Props for MenuGroup -- groups related items with a label.
139
- *
140
- * @example
141
- * ```tsx
142
- * <MenuGroup>
143
- * <MenuGroupLabel>Actions</MenuGroupLabel>
144
- * <MenuItem>Edit</MenuItem>
145
- * </MenuGroup>
146
- * ```
147
- */
148
- export interface IMenuGroupProps
149
- extends React.ComponentProps<typeof MenuPrimitive.Group> {
150
- /** Partial class overrides per slot. */
151
- slots?: SlotOverrides<MenuSlot>;
152
- }
153
-
154
- /**
155
- * Props for MenuGroupLabel -- the label rendered above a group.
156
- *
157
- * @example
158
- * ```tsx
159
- * <MenuGroupLabel className="text-xs uppercase">Section</MenuGroupLabel>
160
- * ```
161
- */
162
- export interface IMenuGroupLabelProps
163
- extends React.ComponentProps<typeof MenuPrimitive.GroupLabel> {
164
- /** Partial class overrides per slot. */
165
- slots?: SlotOverrides<MenuSlot>;
166
- }
167
-
168
- // ---------------------------------------------------------------------------
169
- // Submenu
170
- // ---------------------------------------------------------------------------
171
-
172
- /**
173
- * Props for MenuSubmenu -- a nested menu with its own open state.
174
- *
175
- * @example
176
- * ```tsx
177
- * <MenuSubmenu>
178
- * <MenuSubmenuTrigger>More...</MenuSubmenuTrigger>
179
- * <MenuPortal>...</MenuPortal>
180
- * </MenuSubmenu>
181
- * ```
182
- */
183
- export interface IMenuSubmenuProps
184
- extends React.ComponentProps<typeof MenuPrimitive.SubmenuRoot> {}
185
-
186
- /**
187
- * Props for MenuSubmenuTrigger -- the item that opens a submenu.
188
- * Combines base-ui's SubmenuTrigger props with motion HTML props.
189
- *
190
- * @example
191
- * ```tsx
192
- * <MenuSubmenuTrigger id="more-actions">More...</MenuSubmenuTrigger>
193
- * ```
194
- */
195
- export interface IMenuSubmenuTriggerProps
196
- extends Omit<Omit<React.ComponentProps<typeof MenuPrimitive.SubmenuTrigger>, 'render'>, keyof HTMLMotionProps<'div'>>,
197
- HTMLMotionProps<'div'> {
198
- /** Whether the trigger is disabled. */
199
- disabled?: boolean;
200
- /** Partial class overrides per slot. */
201
- slots?: SlotOverrides<MenuSlot>;
202
- }
203
-
204
- // ---------------------------------------------------------------------------
205
- // Highlight
206
- // ---------------------------------------------------------------------------
207
-
208
- /**
209
- * Props for MenuHighlight -- animated background that follows the focused item.
210
- * Wraps the Highlight primitive with menu-specific defaults.
211
- *
212
- * @example
213
- * ```tsx
214
- * <MenuHighlight className="rounded-md bg-white/10" />
215
- * ```
216
- */
217
- export interface IMenuHighlightProps
218
- extends Omit<IHighlightProps, 'controlledItems' | 'enabled' | 'hover'> {
219
- /** Whether to animate on hover. */
220
- animateOnHover?: boolean;
221
- /** Partial class overrides per slot. */
222
- slots?: SlotOverrides<MenuSlot>;
223
- }
224
-
225
- /**
226
- * Props for MenuHighlightItem -- wraps a menu item for highlight tracking.
227
- *
228
- * @example
229
- * ```tsx
230
- * <MenuHighlightItem>
231
- * <MenuItem>Edit</MenuItem>
232
- * </MenuHighlightItem>
233
- * ```
234
- */
235
- export interface IMenuHighlightItemProps extends IHighlightItemProps {
236
- /** Partial class overrides per slot. */
237
- slots?: SlotOverrides<MenuSlot>;
238
- }
239
-
240
- // ---------------------------------------------------------------------------
241
- // Positioner / Popup
242
- // ---------------------------------------------------------------------------
243
-
244
- /**
245
- * Props for MenuPositioner -- positions the popup relative to the trigger.
246
- *
247
- * @example
248
- * ```tsx
249
- * <MenuPositioner sideOffset={8} align="start">
250
- * <MenuPopup>...</MenuPopup>
251
- * </MenuPositioner>
252
- * ```
253
- */
254
- export interface IMenuPositionerProps
255
- extends React.ComponentProps<typeof MenuPrimitive.Positioner> {}
256
-
257
- /**
258
- * Props for MenuPopup -- the visible flyout container.
259
- * Combines base-ui Popup with motion HTML props for animated entrance.
260
- *
261
- * @example
262
- * ```tsx
263
- * <MenuPopup className="rounded-lg border shadow-lg">
264
- * <MenuItem>Edit</MenuItem>
265
- * </MenuPopup>
266
- * ```
267
- */
268
- export interface IMenuPopupProps
269
- extends Omit<Omit<React.ComponentProps<typeof MenuPrimitive.Popup>, 'render'>, keyof HTMLMotionProps<'div'>>,
270
- HTMLMotionProps<'div'> {
271
- /** Partial class overrides per slot. */
272
- slots?: SlotOverrides<MenuSlot>;
273
- }
274
-
275
- // ---------------------------------------------------------------------------
276
- // Item
277
- // ---------------------------------------------------------------------------
278
-
279
- /**
280
- * Props for MenuItem -- a single actionable row in the menu.
281
- * Combines base-ui Item with motion HTML props.
282
- *
283
- * @example
284
- * ```tsx
285
- * <MenuItem id="edit" label="Edit">
286
- * <PencilIcon /> Edit
287
- * </MenuItem>
288
- * ```
289
- */
290
- export interface IMenuItemProps
291
- extends Omit<Omit<React.ComponentProps<typeof MenuPrimitive.Item>, 'render'>, keyof HTMLMotionProps<'div'>>,
292
- HTMLMotionProps<'div'> {
293
- /** Partial class overrides per slot. */
294
- slots?: SlotOverrides<MenuSlot>;
295
- }
296
-
297
- // ---------------------------------------------------------------------------
298
- // Checkbox Item
299
- // ---------------------------------------------------------------------------
300
-
301
- /**
302
- * Props for MenuCheckboxItem -- a toggleable checkbox menu item.
303
- *
304
- * @example
305
- * ```tsx
306
- * <MenuCheckboxItem checked={showGrid} onCheckedChange={setShowGrid}>
307
- * Show Grid
308
- * </MenuCheckboxItem>
309
- * ```
310
- */
311
- export interface IMenuCheckboxItemProps
312
- extends Omit<React.ComponentProps<typeof MenuPrimitive.CheckboxItem>, 'render'> {
313
- /** Partial class overrides per slot. */
314
- slots?: SlotOverrides<MenuSlot>;
315
- }
316
-
317
- /**
318
- * Props for MenuCheckboxItemIndicator -- the check/indeterminate indicator.
319
- * Combines base-ui CheckboxItemIndicator with motion HTML props.
320
- *
321
- * @example
322
- * ```tsx
323
- * <MenuCheckboxItemIndicator>
324
- * <CheckIcon />
325
- * </MenuCheckboxItemIndicator>
326
- * ```
327
- */
328
- export interface IMenuCheckboxItemIndicatorProps
329
- extends Omit<
330
- Omit<React.ComponentProps<typeof MenuPrimitive.CheckboxItemIndicator>, 'render'>,
331
- keyof HTMLMotionProps<'div'>
332
- >,
333
- HTMLMotionProps<'div'> {}
334
-
335
- // ---------------------------------------------------------------------------
336
- // Radio Group / Radio Item
337
- // ---------------------------------------------------------------------------
338
-
339
- /**
340
- * Props for MenuRadioGroup -- groups radio items for single-selection.
341
- *
342
- * @example
343
- * ```tsx
344
- * <MenuRadioGroup value={sortBy} onValueChange={setSortBy}>
345
- * <MenuRadioItem value="name">Name</MenuRadioItem>
346
- * <MenuRadioItem value="date">Date</MenuRadioItem>
347
- * </MenuRadioGroup>
348
- * ```
349
- */
350
- export interface IMenuRadioGroupProps
351
- extends React.ComponentProps<typeof MenuPrimitive.RadioGroup> {}
352
-
353
- /**
354
- * Props for MenuRadioItem -- a single option within a radio group.
355
- *
356
- * @example
357
- * ```tsx
358
- * <MenuRadioItem value="name">Sort by Name</MenuRadioItem>
359
- * ```
360
- */
361
- export interface IMenuRadioItemProps
362
- extends Omit<React.ComponentProps<typeof MenuPrimitive.RadioItem>, 'render'> {
363
- /** Partial class overrides per slot. */
364
- slots?: SlotOverrides<MenuSlot>;
365
- }
366
-
367
- /**
368
- * Props for MenuRadioItemIndicator -- the selection indicator dot/icon.
369
- * Combines base-ui RadioItemIndicator with motion HTML props.
370
- *
371
- * @example
372
- * ```tsx
373
- * <MenuRadioItemIndicator>
374
- * <DotIcon />
375
- * </MenuRadioItemIndicator>
376
- * ```
377
- */
378
- export interface IMenuRadioItemIndicatorProps
379
- extends Omit<
380
- Omit<React.ComponentProps<typeof MenuPrimitive.RadioItemIndicator>, 'render'>,
381
- keyof HTMLMotionProps<'div'>
382
- >,
383
- HTMLMotionProps<'div'> {}
384
-
385
- // ---------------------------------------------------------------------------
386
- // Shortcut / Arrow / Separator
387
- // ---------------------------------------------------------------------------
388
-
389
- /**
390
- * Props for MenuShortcut -- displays a keyboard shortcut hint.
391
- *
392
- * @example
393
- * ```tsx
394
- * <MenuShortcut>Ctrl+C</MenuShortcut>
395
- * ```
396
- */
397
- export interface IMenuShortcutProps extends React.ComponentProps<'span'> {
398
- /** Partial class overrides per slot. */
399
- slots?: SlotOverrides<MenuSlot>;
400
- }
401
-
402
- /**
403
- * Props for MenuArrow -- the directional arrow/caret of the popup.
404
- *
405
- * @example
406
- * ```tsx
407
- * <MenuArrow className="fill-zinc-800" />
408
- * ```
409
- */
410
- export interface IMenuArrowProps
411
- extends React.ComponentProps<typeof MenuPrimitive.Arrow> {}
412
-
413
- /**
414
- * Props for MenuSeparator -- a horizontal divider between items.
415
- *
416
- * @example
417
- * ```tsx
418
- * <MenuSeparator className="my-1 border-white/10" />
419
- * ```
420
- */
421
- export interface IMenuSeparatorProps
422
- extends React.ComponentProps<typeof MenuPrimitive.Separator> {
423
- /** Partial class overrides per slot. */
424
- slots?: SlotOverrides<MenuSlot>;
425
- }