@mks2508/mks-ui 0.5.7 → 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 +2 -0
  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 +1 -1
  4. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts.map +1 -1
  5. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.js +173 -43
  6. package/dist/react-ui/ui/DynamicToggle/{DynamicToggle-DOR3Ld-k.css → DynamicToggle-DJLwEkHr.css} +12 -19
  7. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +12 -20
  8. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -0
  9. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts.map +1 -1
  10. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.js +7 -1
  11. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +55 -31
  12. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts.map +1 -1
  13. package/dist/react-ui/ui/DynamicToggle/index.d.ts +9 -3
  14. package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
  15. package/dist/react-ui/ui/DynamicToggle/index.js +47 -34
  16. package/package.json +52 -13
  17. package/src/assets/react.svg +0 -1
  18. package/src/core/index.ts +0 -7
  19. package/src/core/types.ts +0 -82
  20. package/src/css.d.ts +0 -7
  21. package/src/index.css +0 -129
  22. package/src/index.ts +0 -29
  23. package/src/react-ui/blocks/Terminal/ResttyAdapter.ts +0 -278
  24. package/src/react-ui/blocks/Terminal/Terminal.adapter.ts +0 -97
  25. package/src/react-ui/blocks/Terminal/Terminal.theme.restty.ts +0 -155
  26. package/src/react-ui/blocks/Terminal/Terminal.theme.ts +0 -80
  27. package/src/react-ui/blocks/Terminal/Terminal.types.ts +0 -438
  28. package/src/react-ui/blocks/Terminal/TerminalDisplay.styles.ts +0 -38
  29. package/src/react-ui/blocks/Terminal/TerminalDisplay.tsx +0 -254
  30. package/src/react-ui/blocks/Terminal/TerminalDisplay.types.ts +0 -73
  31. package/src/react-ui/blocks/Terminal/TerminalPanel.tsx +0 -269
  32. package/src/react-ui/blocks/Terminal/TerminalRestty.tsx +0 -326
  33. package/src/react-ui/blocks/Terminal/TerminalXterm.tsx +0 -230
  34. package/src/react-ui/blocks/Terminal/XTermAdapter.ts +0 -163
  35. package/src/react-ui/blocks/Terminal/chrome.ts +0 -25
  36. package/src/react-ui/blocks/Terminal/components/LogLineBadges.tsx +0 -316
  37. package/src/react-ui/blocks/Terminal/components/SpecializedSyntaxHighlighter.tsx +0 -218
  38. package/src/react-ui/blocks/Terminal/components/SyntaxHighlight.tsx +0 -386
  39. package/src/react-ui/blocks/Terminal/components/TerminalLogBadge.tsx +0 -67
  40. package/src/react-ui/blocks/Terminal/components/index.ts +0 -10
  41. package/src/react-ui/blocks/Terminal/display.ts +0 -46
  42. package/src/react-ui/blocks/Terminal/hooks/index.ts +0 -22
  43. package/src/react-ui/blocks/Terminal/hooks/useTerminalSettings.ts +0 -229
  44. package/src/react-ui/blocks/Terminal/hooks/useTerminalWebSocket.ts +0 -292
  45. package/src/react-ui/blocks/Terminal/index.ts +0 -111
  46. package/src/react-ui/blocks/Terminal/panel/LogLinesViewer.tsx +0 -330
  47. package/src/react-ui/blocks/Terminal/panel/TerminalDebugPanel.tsx +0 -242
  48. package/src/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.tsx +0 -202
  49. package/src/react-ui/blocks/Terminal/panel/TerminalFilterTabs.tsx +0 -140
  50. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.tsx +0 -68
  51. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.ts +0 -85
  52. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.tsx +0 -383
  53. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.tsx +0 -439
  54. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.tsx +0 -550
  55. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.ts +0 -259
  56. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.ts +0 -75
  57. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx +0 -266
  58. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts +0 -82
  59. package/src/react-ui/blocks/Terminal/panel/TerminalPanelFooter.tsx +0 -112
  60. package/src/react-ui/blocks/Terminal/panel/TerminalPanelHeader.tsx +0 -178
  61. package/src/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.tsx +0 -203
  62. package/src/react-ui/blocks/Terminal/panel/TerminalSessionControl.tsx +0 -252
  63. package/src/react-ui/blocks/Terminal/panel/TerminalSessionTabs.tsx +0 -334
  64. package/src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.tsx +0 -261
  65. package/src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx +0 -248
  66. package/src/react-ui/blocks/Terminal/panel/index.ts +0 -72
  67. package/src/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.css +0 -59
  68. package/src/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.css +0 -59
  69. package/src/react-ui/blocks/Terminal/parsing/BadgeFormatter.ts +0 -180
  70. package/src/react-ui/blocks/Terminal/parsing/HttpLogParser.ts +0 -248
  71. package/src/react-ui/blocks/Terminal/parsing/LogParser.types.ts +0 -283
  72. package/src/react-ui/blocks/Terminal/parsing/LogParserService.ts +0 -686
  73. package/src/react-ui/blocks/Terminal/parsing/MultilineAggregator.ts +0 -466
  74. package/src/react-ui/blocks/Terminal/parsing/PersistentLogBuffer.ts +0 -343
  75. package/src/react-ui/blocks/Terminal/parsing/SyntaxHighlighter.ts +0 -167
  76. package/src/react-ui/blocks/Terminal/parsing/TableParser.ts +0 -348
  77. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiColorMapper.ts +0 -251
  78. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiParser.ts +0 -390
  79. package/src/react-ui/blocks/Terminal/parsing/ansi/ansi.constants.ts +0 -320
  80. package/src/react-ui/blocks/Terminal/parsing/ansi/index.ts +0 -20
  81. package/src/react-ui/blocks/Terminal/parsing/index.ts +0 -69
  82. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevel.types.ts +0 -68
  83. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevelDetector.ts +0 -436
  84. package/src/react-ui/blocks/Terminal/parsing/levels/index.ts +0 -14
  85. package/src/react-ui/blocks/index.ts +0 -11
  86. package/src/react-ui/components/MorphingPopover/MorphingPopover.types.ts +0 -49
  87. package/src/react-ui/components/MorphingPopover/index.tsx +0 -186
  88. package/src/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -153
  89. package/src/react-ui/components/index.ts +0 -9
  90. package/src/react-ui/hooks/Animation/UseAutoHeight.tsx +0 -123
  91. package/src/react-ui/hooks/DOM/UseIsInView.tsx +0 -44
  92. package/src/react-ui/hooks/Formatting/UseListFormat.ts +0 -134
  93. package/src/react-ui/hooks/State/UseControlledState.tsx +0 -57
  94. package/src/react-ui/hooks/State/UseDataState.tsx +0 -76
  95. package/src/react-ui/hooks/index.ts +0 -20
  96. package/src/react-ui/icons/index.ts +0 -12
  97. package/src/react-ui/icons/lucide-animated/activity.tsx +0 -109
  98. package/src/react-ui/icons/lucide-animated/arrow-down-to-line.tsx +0 -51
  99. package/src/react-ui/icons/lucide-animated/arrow-up.tsx +0 -50
  100. package/src/react-ui/icons/lucide-animated/bell-electric.tsx +0 -124
  101. package/src/react-ui/icons/lucide-animated/bell.tsx +0 -93
  102. package/src/react-ui/icons/lucide-animated/bot.tsx +0 -122
  103. package/src/react-ui/icons/lucide-animated/box.tsx +0 -117
  104. package/src/react-ui/icons/lucide-animated/check.tsx +0 -21
  105. package/src/react-ui/icons/lucide-animated/circle-check.tsx +0 -107
  106. package/src/react-ui/icons/lucide-animated/delete.tsx +0 -133
  107. package/src/react-ui/icons/lucide-animated/download.tsx +0 -99
  108. package/src/react-ui/icons/lucide-animated/edit-2.tsx +0 -21
  109. package/src/react-ui/icons/lucide-animated/globe.tsx +0 -23
  110. package/src/react-ui/icons/lucide-animated/home.tsx +0 -103
  111. package/src/react-ui/icons/lucide-animated/index.ts +0 -38
  112. package/src/react-ui/icons/lucide-animated/layers.tsx +0 -23
  113. package/src/react-ui/icons/lucide-animated/layout-panel-top.tsx +0 -143
  114. package/src/react-ui/icons/lucide-animated/list.tsx +0 -54
  115. package/src/react-ui/icons/lucide-animated/package.tsx +0 -24
  116. package/src/react-ui/icons/lucide-animated/palette.tsx +0 -25
  117. package/src/react-ui/icons/lucide-animated/plus.tsx +0 -92
  118. package/src/react-ui/icons/lucide-animated/refresh-cw.tsx +0 -24
  119. package/src/react-ui/icons/lucide-animated/rocket.tsx +0 -24
  120. package/src/react-ui/icons/lucide-animated/save.tsx +0 -23
  121. package/src/react-ui/icons/lucide-animated/search.tsx +0 -94
  122. package/src/react-ui/icons/lucide-animated/settings.tsx +0 -92
  123. package/src/react-ui/icons/lucide-animated/terminal.tsx +0 -46
  124. package/src/react-ui/icons/lucide-animated/trash-2.tsx +0 -25
  125. package/src/react-ui/icons/lucide-animated/trending-down.tsx +0 -151
  126. package/src/react-ui/icons/lucide-animated/trending-up.tsx +0 -150
  127. package/src/react-ui/icons/lucide-animated/type.tsx +0 -23
  128. package/src/react-ui/icons/lucide-animated/upload.tsx +0 -23
  129. package/src/react-ui/icons/lucide-animated/x.tsx +0 -102
  130. package/src/react-ui/index.ts +0 -30
  131. package/src/react-ui/lib/get-strict-context.tsx +0 -56
  132. package/src/react-ui/lib/icon-wrapper.tsx +0 -70
  133. package/src/react-ui/lib/index.ts +0 -9
  134. package/src/react-ui/lib/utils.ts +0 -24
  135. package/src/react-ui/primitives/AutoHeight/index.tsx +0 -74
  136. package/src/react-ui/primitives/CountingNumber/index.tsx +0 -147
  137. package/src/react-ui/primitives/Highlight/Highlight.types.ts +0 -136
  138. package/src/react-ui/primitives/Highlight/index.tsx +0 -577
  139. package/src/react-ui/primitives/Slot/index.tsx +0 -128
  140. package/src/react-ui/primitives/index.ts +0 -16
  141. package/src/react-ui/primitives/waapi/Gooey/Gooey.types.ts +0 -141
  142. package/src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx +0 -217
  143. package/src/react-ui/primitives/waapi/Gooey/GooeyFilter.tsx +0 -77
  144. package/src/react-ui/primitives/waapi/Gooey/MorphPath.tsx +0 -58
  145. package/src/react-ui/primitives/waapi/Gooey/gooey-utils.ts +0 -253
  146. package/src/react-ui/primitives/waapi/Gooey/index.ts +0 -50
  147. package/src/react-ui/primitives/waapi/Gooey/useMorphPath.ts +0 -48
  148. package/src/react-ui/primitives/waapi/Morph/Morph.types.ts +0 -106
  149. package/src/react-ui/primitives/waapi/Morph/MorphContext.tsx +0 -21
  150. package/src/react-ui/primitives/waapi/Morph/index.tsx +0 -56
  151. package/src/react-ui/primitives/waapi/Morph/techniques/index.ts +0 -12
  152. package/src/react-ui/primitives/waapi/Morph/techniques/useCSSGridMorph.ts +0 -89
  153. package/src/react-ui/primitives/waapi/Morph/techniques/useFLIPClipPath.ts +0 -176
  154. package/src/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.ts +0 -87
  155. package/src/react-ui/primitives/waapi/Morph/useMorph.ts +0 -101
  156. package/src/react-ui/primitives/waapi/Reorder/Reorder.types.ts +0 -177
  157. package/src/react-ui/primitives/waapi/Reorder/index.tsx +0 -260
  158. package/src/react-ui/primitives/waapi/Reorder/useReorder.ts +0 -47
  159. package/src/react-ui/primitives/waapi/Reorder/useReorderPresence.ts +0 -209
  160. package/src/react-ui/primitives/waapi/Reorder/utils/separatorCoordination.ts +0 -104
  161. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.ts +0 -14
  162. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.types.ts +0 -84
  163. package/src/react-ui/primitives/waapi/SlidingNumber/index.tsx +0 -474
  164. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.styles.ts +0 -32
  165. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.types.ts +0 -69
  166. package/src/react-ui/primitives/waapi/SlidingText/index.tsx +0 -140
  167. package/src/react-ui/primitives/waapi/core/animationConstants.ts +0 -215
  168. package/src/react-ui/primitives/waapi/core/index.ts +0 -53
  169. package/src/react-ui/primitives/waapi/core/types.ts +0 -200
  170. package/src/react-ui/primitives/waapi/core/useAnimationOrchestrator.ts +0 -430
  171. package/src/react-ui/primitives/waapi/core/useElementRegistry.ts +0 -81
  172. package/src/react-ui/primitives/waapi/core/useFLIPAnimation.ts +0 -138
  173. package/src/react-ui/primitives/waapi/core/usePositionCapture.ts +0 -106
  174. package/src/react-ui/primitives/waapi/index.ts +0 -139
  175. package/src/react-ui/styles/animations.css +0 -369
  176. package/src/react-ui/ui/Accordion/Accordion.styles.ts +0 -72
  177. package/src/react-ui/ui/Accordion/Accordion.types.ts +0 -199
  178. package/src/react-ui/ui/Accordion/index.tsx +0 -362
  179. package/src/react-ui/ui/AlertDialog/AlertDialog.styles.ts +0 -38
  180. package/src/react-ui/ui/AlertDialog/AlertDialog.types.ts +0 -296
  181. package/src/react-ui/ui/AlertDialog/index.tsx +0 -540
  182. package/src/react-ui/ui/Badge/Badge.styles.ts +0 -43
  183. package/src/react-ui/ui/Badge/Badge.types.ts +0 -26
  184. package/src/react-ui/ui/Badge/index.tsx +0 -34
  185. package/src/react-ui/ui/Button/Button.styles.ts +0 -57
  186. package/src/react-ui/ui/Button/Button.types.ts +0 -63
  187. package/src/react-ui/ui/Button/index.tsx +0 -155
  188. package/src/react-ui/ui/Card/Card.styles.ts +0 -32
  189. package/src/react-ui/ui/Card/Card.types.ts +0 -39
  190. package/src/react-ui/ui/Card/index.tsx +0 -130
  191. package/src/react-ui/ui/Checkbox/Checkbox.styles.ts +0 -40
  192. package/src/react-ui/ui/Checkbox/Checkbox.types.ts +0 -98
  193. package/src/react-ui/ui/Checkbox/index.tsx +0 -233
  194. package/src/react-ui/ui/Combobox/Combobox.styles.ts +0 -34
  195. package/src/react-ui/ui/Combobox/Combobox.types.ts +0 -89
  196. package/src/react-ui/ui/Combobox/index.tsx +0 -331
  197. package/src/react-ui/ui/CornerBracket/CornerBracket.styles.ts +0 -38
  198. package/src/react-ui/ui/CornerBracket/CornerBracket.types.ts +0 -15
  199. package/src/react-ui/ui/CornerBracket/index.tsx +0 -49
  200. package/src/react-ui/ui/DataCard/DataCard.styles.ts +0 -94
  201. package/src/react-ui/ui/DataCard/DataCard.types.ts +0 -125
  202. package/src/react-ui/ui/DataCard/index.tsx +0 -340
  203. package/src/react-ui/ui/Dialog/Dialog.styles.ts +0 -59
  204. package/src/react-ui/ui/Dialog/Dialog.types.ts +0 -284
  205. package/src/react-ui/ui/Dialog/index.tsx +0 -452
  206. package/src/react-ui/ui/DropdownMenu/DropdownMenu.styles.ts +0 -35
  207. package/src/react-ui/ui/DropdownMenu/DropdownMenu.types.ts +0 -81
  208. package/src/react-ui/ui/DropdownMenu/index.tsx +0 -300
  209. package/src/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -376
  210. package/src/react-ui/ui/DynamicToggle/DynamicToggle.styles.ts +0 -85
  211. package/src/react-ui/ui/DynamicToggle/DynamicToggle.types.ts +0 -180
  212. package/src/react-ui/ui/DynamicToggle/index.tsx +0 -316
  213. package/src/react-ui/ui/DynamicToggle/prototype-v7-ios.html +0 -413
  214. package/src/react-ui/ui/DynamicToggle/prototype-v7.html +0 -615
  215. package/src/react-ui/ui/DynamicToggle/prototype-v8-gooey-safari.html +0 -560
  216. package/src/react-ui/ui/DynamicToggle/prototype-v8b-react-structure.html +0 -227
  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,27 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { cn } from '@/react-ui/lib/utils';
4
- import { labelStyles } from './Label.styles';
5
- import type { ILabelProps } from './Label.types';
6
-
7
- /**
8
- * Label — accessible form label element.
9
- *
10
- * @example
11
- * ```tsx
12
- * <Label htmlFor="email">Email</Label>
13
- * ```
14
- */
15
- function Label({ className, slots, ...props }: ILabelProps) {
16
- return (
17
- <label
18
- data-slot="label"
19
- className={cn(labelStyles.root, slots?.root, className)}
20
- {...props}
21
- />
22
- );
23
- }
24
-
25
- export { Label };
26
- export type { ILabelProps } from './Label.types';
27
- export type { LabelSlot } from './Label.styles';
@@ -1,71 +0,0 @@
1
- /**
2
- * Style slots and defaults for the Menu component.
3
- *
4
- * Each slot maps to a visual region of the Menu. Consumers override
5
- * individual slots via the `slots` prop without touching internals.
6
- *
7
- * @module @mks2508/mks-ui/react/ui/Menu/Menu.styles
8
- *
9
- * @example
10
- * ```tsx
11
- * import { menuStyles } from './Menu.styles';
12
- * // menuStyles.popup => default popup classes
13
- * ```
14
- */
15
-
16
- import type { StyleSlots } from '@/core/types';
17
-
18
- /**
19
- * Union of all visual regions (slots) in the Menu component tree.
20
- *
21
- * @example
22
- * ```typescript
23
- * const overrides: SlotOverrides<MenuSlot> = {
24
- * popup: 'bg-zinc-900 border-cyan-500/30',
25
- * item: 'hover:bg-white/5',
26
- * };
27
- * ```
28
- */
29
- export type MenuSlot =
30
- | 'root'
31
- | 'popup'
32
- | 'trigger'
33
- | 'item'
34
- | 'checkboxItem'
35
- | 'radioItem'
36
- | 'group'
37
- | 'groupLabel'
38
- | 'separator'
39
- | 'shortcut'
40
- | 'arrow'
41
- | 'highlight'
42
- | 'submenuTrigger';
43
-
44
- /**
45
- * Default style map for every Menu slot.
46
- *
47
- * Base classes are intentionally minimal so consumers can fully
48
- * control the visual appearance through `slots` overrides.
49
- * No colors are hardcoded -- all visuals come from consumer styles.
50
- *
51
- * @example
52
- * ```typescript
53
- * import { menuStyles } from './Menu.styles';
54
- * cn(menuStyles.popup, slots?.popup, className);
55
- * ```
56
- */
57
- export const menuStyles: StyleSlots<MenuSlot> = {
58
- root: '',
59
- popup: '',
60
- trigger: '',
61
- item: '',
62
- checkboxItem: '',
63
- radioItem: '',
64
- group: '',
65
- groupLabel: '',
66
- separator: '',
67
- shortcut: '',
68
- arrow: '',
69
- highlight: '',
70
- submenuTrigger: '',
71
- };
@@ -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
- }