@mks2508/mks-ui 0.5.7 → 0.6.0

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 (271) hide show
  1. package/dist/react-ui/index.js +2 -2
  2. package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts +2 -0
  3. package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts.map +1 -1
  4. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts +1 -1
  5. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts.map +1 -1
  6. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.js +173 -43
  7. package/dist/react-ui/ui/Dialog/Dialog.styles.d.ts.map +1 -1
  8. package/dist/react-ui/ui/Dialog/Dialog.styles.js +1 -0
  9. package/dist/react-ui/ui/Dialog/Dialog.types.d.ts +20 -1
  10. package/dist/react-ui/ui/Dialog/Dialog.types.d.ts.map +1 -1
  11. package/dist/react-ui/ui/Dialog/index.d.ts +28 -7
  12. package/dist/react-ui/ui/Dialog/index.d.ts.map +1 -1
  13. package/dist/react-ui/ui/Dialog/index.js +32 -5
  14. package/dist/react-ui/ui/DynamicToggle/{DynamicToggle-DOR3Ld-k.css → DynamicToggle-DJLwEkHr.css} +12 -19
  15. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +12 -20
  16. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -0
  17. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts.map +1 -1
  18. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.js +7 -1
  19. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +55 -31
  20. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts.map +1 -1
  21. package/dist/react-ui/ui/DynamicToggle/index.d.ts +9 -3
  22. package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
  23. package/dist/react-ui/ui/DynamicToggle/index.js +47 -34
  24. package/dist/react-ui/ui/index.js +1 -1
  25. package/package.json +52 -13
  26. package/src/assets/react.svg +0 -1
  27. package/src/core/index.ts +0 -7
  28. package/src/core/types.ts +0 -82
  29. package/src/css.d.ts +0 -7
  30. package/src/index.css +0 -129
  31. package/src/index.ts +0 -29
  32. package/src/react-ui/blocks/Terminal/ResttyAdapter.ts +0 -278
  33. package/src/react-ui/blocks/Terminal/Terminal.adapter.ts +0 -97
  34. package/src/react-ui/blocks/Terminal/Terminal.theme.restty.ts +0 -155
  35. package/src/react-ui/blocks/Terminal/Terminal.theme.ts +0 -80
  36. package/src/react-ui/blocks/Terminal/Terminal.types.ts +0 -438
  37. package/src/react-ui/blocks/Terminal/TerminalDisplay.styles.ts +0 -38
  38. package/src/react-ui/blocks/Terminal/TerminalDisplay.tsx +0 -254
  39. package/src/react-ui/blocks/Terminal/TerminalDisplay.types.ts +0 -73
  40. package/src/react-ui/blocks/Terminal/TerminalPanel.tsx +0 -269
  41. package/src/react-ui/blocks/Terminal/TerminalRestty.tsx +0 -326
  42. package/src/react-ui/blocks/Terminal/TerminalXterm.tsx +0 -230
  43. package/src/react-ui/blocks/Terminal/XTermAdapter.ts +0 -163
  44. package/src/react-ui/blocks/Terminal/chrome.ts +0 -25
  45. package/src/react-ui/blocks/Terminal/components/LogLineBadges.tsx +0 -316
  46. package/src/react-ui/blocks/Terminal/components/SpecializedSyntaxHighlighter.tsx +0 -218
  47. package/src/react-ui/blocks/Terminal/components/SyntaxHighlight.tsx +0 -386
  48. package/src/react-ui/blocks/Terminal/components/TerminalLogBadge.tsx +0 -67
  49. package/src/react-ui/blocks/Terminal/components/index.ts +0 -10
  50. package/src/react-ui/blocks/Terminal/display.ts +0 -46
  51. package/src/react-ui/blocks/Terminal/hooks/index.ts +0 -22
  52. package/src/react-ui/blocks/Terminal/hooks/useTerminalSettings.ts +0 -229
  53. package/src/react-ui/blocks/Terminal/hooks/useTerminalWebSocket.ts +0 -292
  54. package/src/react-ui/blocks/Terminal/index.ts +0 -111
  55. package/src/react-ui/blocks/Terminal/panel/LogLinesViewer.tsx +0 -330
  56. package/src/react-ui/blocks/Terminal/panel/TerminalDebugPanel.tsx +0 -242
  57. package/src/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.tsx +0 -202
  58. package/src/react-ui/blocks/Terminal/panel/TerminalFilterTabs.tsx +0 -140
  59. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.tsx +0 -68
  60. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.ts +0 -85
  61. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.tsx +0 -383
  62. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.tsx +0 -439
  63. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.tsx +0 -550
  64. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.ts +0 -259
  65. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.ts +0 -75
  66. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx +0 -266
  67. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts +0 -82
  68. package/src/react-ui/blocks/Terminal/panel/TerminalPanelFooter.tsx +0 -112
  69. package/src/react-ui/blocks/Terminal/panel/TerminalPanelHeader.tsx +0 -178
  70. package/src/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.tsx +0 -203
  71. package/src/react-ui/blocks/Terminal/panel/TerminalSessionControl.tsx +0 -252
  72. package/src/react-ui/blocks/Terminal/panel/TerminalSessionTabs.tsx +0 -334
  73. package/src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.tsx +0 -261
  74. package/src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx +0 -248
  75. package/src/react-ui/blocks/Terminal/panel/index.ts +0 -72
  76. package/src/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.css +0 -59
  77. package/src/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.css +0 -59
  78. package/src/react-ui/blocks/Terminal/parsing/BadgeFormatter.ts +0 -180
  79. package/src/react-ui/blocks/Terminal/parsing/HttpLogParser.ts +0 -248
  80. package/src/react-ui/blocks/Terminal/parsing/LogParser.types.ts +0 -283
  81. package/src/react-ui/blocks/Terminal/parsing/LogParserService.ts +0 -686
  82. package/src/react-ui/blocks/Terminal/parsing/MultilineAggregator.ts +0 -466
  83. package/src/react-ui/blocks/Terminal/parsing/PersistentLogBuffer.ts +0 -343
  84. package/src/react-ui/blocks/Terminal/parsing/SyntaxHighlighter.ts +0 -167
  85. package/src/react-ui/blocks/Terminal/parsing/TableParser.ts +0 -348
  86. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiColorMapper.ts +0 -251
  87. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiParser.ts +0 -390
  88. package/src/react-ui/blocks/Terminal/parsing/ansi/ansi.constants.ts +0 -320
  89. package/src/react-ui/blocks/Terminal/parsing/ansi/index.ts +0 -20
  90. package/src/react-ui/blocks/Terminal/parsing/index.ts +0 -69
  91. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevel.types.ts +0 -68
  92. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevelDetector.ts +0 -436
  93. package/src/react-ui/blocks/Terminal/parsing/levels/index.ts +0 -14
  94. package/src/react-ui/blocks/index.ts +0 -11
  95. package/src/react-ui/components/MorphingPopover/MorphingPopover.types.ts +0 -49
  96. package/src/react-ui/components/MorphingPopover/index.tsx +0 -186
  97. package/src/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -153
  98. package/src/react-ui/components/index.ts +0 -9
  99. package/src/react-ui/hooks/Animation/UseAutoHeight.tsx +0 -123
  100. package/src/react-ui/hooks/DOM/UseIsInView.tsx +0 -44
  101. package/src/react-ui/hooks/Formatting/UseListFormat.ts +0 -134
  102. package/src/react-ui/hooks/State/UseControlledState.tsx +0 -57
  103. package/src/react-ui/hooks/State/UseDataState.tsx +0 -76
  104. package/src/react-ui/hooks/index.ts +0 -20
  105. package/src/react-ui/icons/index.ts +0 -12
  106. package/src/react-ui/icons/lucide-animated/activity.tsx +0 -109
  107. package/src/react-ui/icons/lucide-animated/arrow-down-to-line.tsx +0 -51
  108. package/src/react-ui/icons/lucide-animated/arrow-up.tsx +0 -50
  109. package/src/react-ui/icons/lucide-animated/bell-electric.tsx +0 -124
  110. package/src/react-ui/icons/lucide-animated/bell.tsx +0 -93
  111. package/src/react-ui/icons/lucide-animated/bot.tsx +0 -122
  112. package/src/react-ui/icons/lucide-animated/box.tsx +0 -117
  113. package/src/react-ui/icons/lucide-animated/check.tsx +0 -21
  114. package/src/react-ui/icons/lucide-animated/circle-check.tsx +0 -107
  115. package/src/react-ui/icons/lucide-animated/delete.tsx +0 -133
  116. package/src/react-ui/icons/lucide-animated/download.tsx +0 -99
  117. package/src/react-ui/icons/lucide-animated/edit-2.tsx +0 -21
  118. package/src/react-ui/icons/lucide-animated/globe.tsx +0 -23
  119. package/src/react-ui/icons/lucide-animated/home.tsx +0 -103
  120. package/src/react-ui/icons/lucide-animated/index.ts +0 -38
  121. package/src/react-ui/icons/lucide-animated/layers.tsx +0 -23
  122. package/src/react-ui/icons/lucide-animated/layout-panel-top.tsx +0 -143
  123. package/src/react-ui/icons/lucide-animated/list.tsx +0 -54
  124. package/src/react-ui/icons/lucide-animated/package.tsx +0 -24
  125. package/src/react-ui/icons/lucide-animated/palette.tsx +0 -25
  126. package/src/react-ui/icons/lucide-animated/plus.tsx +0 -92
  127. package/src/react-ui/icons/lucide-animated/refresh-cw.tsx +0 -24
  128. package/src/react-ui/icons/lucide-animated/rocket.tsx +0 -24
  129. package/src/react-ui/icons/lucide-animated/save.tsx +0 -23
  130. package/src/react-ui/icons/lucide-animated/search.tsx +0 -94
  131. package/src/react-ui/icons/lucide-animated/settings.tsx +0 -92
  132. package/src/react-ui/icons/lucide-animated/terminal.tsx +0 -46
  133. package/src/react-ui/icons/lucide-animated/trash-2.tsx +0 -25
  134. package/src/react-ui/icons/lucide-animated/trending-down.tsx +0 -151
  135. package/src/react-ui/icons/lucide-animated/trending-up.tsx +0 -150
  136. package/src/react-ui/icons/lucide-animated/type.tsx +0 -23
  137. package/src/react-ui/icons/lucide-animated/upload.tsx +0 -23
  138. package/src/react-ui/icons/lucide-animated/x.tsx +0 -102
  139. package/src/react-ui/index.ts +0 -30
  140. package/src/react-ui/lib/get-strict-context.tsx +0 -56
  141. package/src/react-ui/lib/icon-wrapper.tsx +0 -70
  142. package/src/react-ui/lib/index.ts +0 -9
  143. package/src/react-ui/lib/utils.ts +0 -24
  144. package/src/react-ui/primitives/AutoHeight/index.tsx +0 -74
  145. package/src/react-ui/primitives/CountingNumber/index.tsx +0 -147
  146. package/src/react-ui/primitives/Highlight/Highlight.types.ts +0 -136
  147. package/src/react-ui/primitives/Highlight/index.tsx +0 -577
  148. package/src/react-ui/primitives/Slot/index.tsx +0 -128
  149. package/src/react-ui/primitives/index.ts +0 -16
  150. package/src/react-ui/primitives/waapi/Gooey/Gooey.types.ts +0 -141
  151. package/src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx +0 -217
  152. package/src/react-ui/primitives/waapi/Gooey/GooeyFilter.tsx +0 -77
  153. package/src/react-ui/primitives/waapi/Gooey/MorphPath.tsx +0 -58
  154. package/src/react-ui/primitives/waapi/Gooey/gooey-utils.ts +0 -253
  155. package/src/react-ui/primitives/waapi/Gooey/index.ts +0 -50
  156. package/src/react-ui/primitives/waapi/Gooey/useMorphPath.ts +0 -48
  157. package/src/react-ui/primitives/waapi/Morph/Morph.types.ts +0 -106
  158. package/src/react-ui/primitives/waapi/Morph/MorphContext.tsx +0 -21
  159. package/src/react-ui/primitives/waapi/Morph/index.tsx +0 -56
  160. package/src/react-ui/primitives/waapi/Morph/techniques/index.ts +0 -12
  161. package/src/react-ui/primitives/waapi/Morph/techniques/useCSSGridMorph.ts +0 -89
  162. package/src/react-ui/primitives/waapi/Morph/techniques/useFLIPClipPath.ts +0 -176
  163. package/src/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.ts +0 -87
  164. package/src/react-ui/primitives/waapi/Morph/useMorph.ts +0 -101
  165. package/src/react-ui/primitives/waapi/Reorder/Reorder.types.ts +0 -177
  166. package/src/react-ui/primitives/waapi/Reorder/index.tsx +0 -260
  167. package/src/react-ui/primitives/waapi/Reorder/useReorder.ts +0 -47
  168. package/src/react-ui/primitives/waapi/Reorder/useReorderPresence.ts +0 -209
  169. package/src/react-ui/primitives/waapi/Reorder/utils/separatorCoordination.ts +0 -104
  170. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.ts +0 -14
  171. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.types.ts +0 -84
  172. package/src/react-ui/primitives/waapi/SlidingNumber/index.tsx +0 -474
  173. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.styles.ts +0 -32
  174. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.types.ts +0 -69
  175. package/src/react-ui/primitives/waapi/SlidingText/index.tsx +0 -140
  176. package/src/react-ui/primitives/waapi/core/animationConstants.ts +0 -215
  177. package/src/react-ui/primitives/waapi/core/index.ts +0 -53
  178. package/src/react-ui/primitives/waapi/core/types.ts +0 -200
  179. package/src/react-ui/primitives/waapi/core/useAnimationOrchestrator.ts +0 -430
  180. package/src/react-ui/primitives/waapi/core/useElementRegistry.ts +0 -81
  181. package/src/react-ui/primitives/waapi/core/useFLIPAnimation.ts +0 -138
  182. package/src/react-ui/primitives/waapi/core/usePositionCapture.ts +0 -106
  183. package/src/react-ui/primitives/waapi/index.ts +0 -139
  184. package/src/react-ui/styles/animations.css +0 -369
  185. package/src/react-ui/ui/Accordion/Accordion.styles.ts +0 -72
  186. package/src/react-ui/ui/Accordion/Accordion.types.ts +0 -199
  187. package/src/react-ui/ui/Accordion/index.tsx +0 -362
  188. package/src/react-ui/ui/AlertDialog/AlertDialog.styles.ts +0 -38
  189. package/src/react-ui/ui/AlertDialog/AlertDialog.types.ts +0 -296
  190. package/src/react-ui/ui/AlertDialog/index.tsx +0 -540
  191. package/src/react-ui/ui/Badge/Badge.styles.ts +0 -43
  192. package/src/react-ui/ui/Badge/Badge.types.ts +0 -26
  193. package/src/react-ui/ui/Badge/index.tsx +0 -34
  194. package/src/react-ui/ui/Button/Button.styles.ts +0 -57
  195. package/src/react-ui/ui/Button/Button.types.ts +0 -63
  196. package/src/react-ui/ui/Button/index.tsx +0 -155
  197. package/src/react-ui/ui/Card/Card.styles.ts +0 -32
  198. package/src/react-ui/ui/Card/Card.types.ts +0 -39
  199. package/src/react-ui/ui/Card/index.tsx +0 -130
  200. package/src/react-ui/ui/Checkbox/Checkbox.styles.ts +0 -40
  201. package/src/react-ui/ui/Checkbox/Checkbox.types.ts +0 -98
  202. package/src/react-ui/ui/Checkbox/index.tsx +0 -233
  203. package/src/react-ui/ui/Combobox/Combobox.styles.ts +0 -34
  204. package/src/react-ui/ui/Combobox/Combobox.types.ts +0 -89
  205. package/src/react-ui/ui/Combobox/index.tsx +0 -331
  206. package/src/react-ui/ui/CornerBracket/CornerBracket.styles.ts +0 -38
  207. package/src/react-ui/ui/CornerBracket/CornerBracket.types.ts +0 -15
  208. package/src/react-ui/ui/CornerBracket/index.tsx +0 -49
  209. package/src/react-ui/ui/DataCard/DataCard.styles.ts +0 -94
  210. package/src/react-ui/ui/DataCard/DataCard.types.ts +0 -125
  211. package/src/react-ui/ui/DataCard/index.tsx +0 -340
  212. package/src/react-ui/ui/Dialog/Dialog.styles.ts +0 -59
  213. package/src/react-ui/ui/Dialog/Dialog.types.ts +0 -284
  214. package/src/react-ui/ui/Dialog/index.tsx +0 -452
  215. package/src/react-ui/ui/DropdownMenu/DropdownMenu.styles.ts +0 -35
  216. package/src/react-ui/ui/DropdownMenu/DropdownMenu.types.ts +0 -81
  217. package/src/react-ui/ui/DropdownMenu/index.tsx +0 -300
  218. package/src/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -376
  219. package/src/react-ui/ui/DynamicToggle/DynamicToggle.styles.ts +0 -85
  220. package/src/react-ui/ui/DynamicToggle/DynamicToggle.types.ts +0 -180
  221. package/src/react-ui/ui/DynamicToggle/index.tsx +0 -316
  222. package/src/react-ui/ui/DynamicToggle/prototype-v7-ios.html +0 -413
  223. package/src/react-ui/ui/DynamicToggle/prototype-v7.html +0 -615
  224. package/src/react-ui/ui/DynamicToggle/prototype-v8-gooey-safari.html +0 -560
  225. package/src/react-ui/ui/DynamicToggle/prototype-v8b-react-structure.html +0 -227
  226. package/src/react-ui/ui/DynamicToggle/prototype.html +0 -419
  227. package/src/react-ui/ui/Field/Field.styles.ts +0 -47
  228. package/src/react-ui/ui/Field/Field.types.ts +0 -60
  229. package/src/react-ui/ui/Field/index.tsx +0 -254
  230. package/src/react-ui/ui/Input/Input.styles.ts +0 -11
  231. package/src/react-ui/ui/Input/Input.types.ts +0 -10
  232. package/src/react-ui/ui/Input/index.tsx +0 -32
  233. package/src/react-ui/ui/InputGroup/InputGroup.styles.ts +0 -53
  234. package/src/react-ui/ui/InputGroup/InputGroup.types.ts +0 -44
  235. package/src/react-ui/ui/InputGroup/index.tsx +0 -149
  236. package/src/react-ui/ui/Label/Label.styles.ts +0 -10
  237. package/src/react-ui/ui/Label/Label.types.ts +0 -9
  238. package/src/react-ui/ui/Label/index.tsx +0 -27
  239. package/src/react-ui/ui/Menu/Menu.styles.ts +0 -71
  240. package/src/react-ui/ui/Menu/Menu.types.ts +0 -425
  241. package/src/react-ui/ui/Menu/index.tsx +0 -900
  242. package/src/react-ui/ui/Popover/Popover.styles.ts +0 -55
  243. package/src/react-ui/ui/Popover/Popover.types.ts +0 -261
  244. package/src/react-ui/ui/Popover/index.tsx +0 -422
  245. package/src/react-ui/ui/Progress/Progress.styles.ts +0 -36
  246. package/src/react-ui/ui/Progress/Progress.types.ts +0 -162
  247. package/src/react-ui/ui/Progress/index.tsx +0 -254
  248. package/src/react-ui/ui/Select/Select.styles.ts +0 -30
  249. package/src/react-ui/ui/Select/Select.types.ts +0 -51
  250. package/src/react-ui/ui/Select/index.tsx +0 -225
  251. package/src/react-ui/ui/Separator/Separator.styles.ts +0 -10
  252. package/src/react-ui/ui/Separator/Separator.types.ts +0 -10
  253. package/src/react-ui/ui/Separator/index.tsx +0 -37
  254. package/src/react-ui/ui/Switch/Switch.styles.ts +0 -50
  255. package/src/react-ui/ui/Switch/Switch.types.ts +0 -155
  256. package/src/react-ui/ui/Switch/index.tsx +0 -253
  257. package/src/react-ui/ui/Tabs/Tabs.css +0 -39
  258. package/src/react-ui/ui/Tabs/Tabs.styles.ts +0 -148
  259. package/src/react-ui/ui/Tabs/Tabs.types.ts +0 -255
  260. package/src/react-ui/ui/Tabs/index.tsx +0 -529
  261. package/src/react-ui/ui/TextFlow/TextFlow.styles.ts +0 -36
  262. package/src/react-ui/ui/TextFlow/TextFlow.types.ts +0 -118
  263. package/src/react-ui/ui/TextFlow/index.tsx +0 -276
  264. package/src/react-ui/ui/Textarea/Textarea.styles.ts +0 -10
  265. package/src/react-ui/ui/Textarea/Textarea.types.ts +0 -9
  266. package/src/react-ui/ui/Textarea/index.tsx +0 -27
  267. package/src/react-ui/ui/Tooltip/Tooltip.styles.ts +0 -43
  268. package/src/react-ui/ui/Tooltip/Tooltip.types.ts +0 -253
  269. package/src/react-ui/ui/Tooltip/index.tsx +0 -394
  270. package/src/react-ui/ui/index.ts +0 -41
  271. package/src/types/css-modules.d.ts +0 -18
@@ -1,254 +0,0 @@
1
- 'use client';
2
-
3
- /**
4
- * Progress component with animated indicator and counting value display.
5
- *
6
- * Built on Base UI Progress primitives with Motion animations for
7
- * spring-based indicator width transitions and CountingNumber for
8
- * animated numeric value display.
9
- *
10
- * @module @mks2508/mks-ui/react/ui/Progress
11
- *
12
- * @example
13
- * ```tsx
14
- * import {
15
- * Progress,
16
- * ProgressTrack,
17
- * ProgressIndicator,
18
- * ProgressLabel,
19
- * ProgressValue,
20
- * } from '@mks2508/mks-ui';
21
- *
22
- * function MyProgress() {
23
- * return (
24
- * <Progress value={75}>
25
- * <ProgressLabel>Uploading...</ProgressLabel>
26
- * <ProgressTrack>
27
- * <ProgressIndicator />
28
- * </ProgressTrack>
29
- * <ProgressValue />
30
- * </Progress>
31
- * );
32
- * }
33
- * ```
34
- */
35
-
36
- import * as React from 'react';
37
- import { Progress as ProgressPrimitives } from '@base-ui/react/progress';
38
- import { motion } from 'motion/react';
39
-
40
- import { cn } from '@/react-ui/lib/utils';
41
- import { getStrictContext } from '@/react-ui/lib/get-strict-context';
42
- import { CountingNumber } from '@/react-ui/primitives/CountingNumber';
43
-
44
- import { progressStyles } from './Progress.styles';
45
- import type {
46
- ProgressContextType,
47
- IProgressProps,
48
- IProgressIndicatorProps,
49
- IProgressTrackProps,
50
- IProgressLabelProps,
51
- IProgressValueProps,
52
- } from './Progress.types';
53
-
54
- const [ProgressProvider, useProgress] =
55
- getStrictContext<ProgressContextType>('ProgressContext');
56
-
57
- const MotionProgressIndicator = motion.create(ProgressPrimitives.Indicator);
58
-
59
- /**
60
- * Progress root component that provides progress context to child components.
61
- *
62
- * Wraps Base UI `Progress.Root` with a context provider that shares the current
63
- * progress value with descendant components (indicator, value display, etc.).
64
- *
65
- * @param props - Progress props including Base UI root props, slots, and config
66
- * @returns A progress container element with context provider
67
- *
68
- * @example
69
- * ```tsx
70
- * <Progress value={50} slots={{ root: 'w-full max-w-md' }}>
71
- * <ProgressTrack>
72
- * <ProgressIndicator />
73
- * </ProgressTrack>
74
- * </Progress>
75
- * ```
76
- *
77
- * @example
78
- * ```tsx
79
- * // With label and animated value
80
- * <Progress value={loading}>
81
- * <div className="flex justify-between">
82
- * <ProgressLabel>Loading assets</ProgressLabel>
83
- * <ProgressValue />
84
- * </div>
85
- * <ProgressTrack>
86
- * <ProgressIndicator />
87
- * </ProgressTrack>
88
- * </Progress>
89
- * ```
90
- */
91
- function Progress({ className, slots, config: _config, ...props }: IProgressProps) {
92
- return (
93
- <ProgressProvider value={{ value: props.value ?? 0 }}>
94
- <ProgressPrimitives.Root
95
- data-slot="progress"
96
- className={cn(progressStyles.root, slots?.root, className)}
97
- {...props}
98
- />
99
- </ProgressProvider>
100
- );
101
- }
102
-
103
- /**
104
- * ProgressIndicator renders the animated filled bar within the track.
105
- *
106
- * Uses `motion.create` to wrap the Base UI Indicator with spring-based
107
- * width animation that transitions smoothly as the value changes.
108
- *
109
- * @param props - Indicator props including transition config and slot overrides
110
- * @returns A motion-enhanced indicator element
111
- *
112
- * @example
113
- * ```tsx
114
- * <ProgressTrack>
115
- * <ProgressIndicator
116
- * transition={{ type: 'spring', stiffness: 120, damping: 20 }}
117
- * slots={{ indicator: 'bg-cyan-500' }}
118
- * />
119
- * </ProgressTrack>
120
- * ```
121
- */
122
- function ProgressIndicator({
123
- transition = { type: 'spring', stiffness: 100, damping: 30 },
124
- className,
125
- slots,
126
- ...props
127
- }: IProgressIndicatorProps) {
128
- const { value } = useProgress();
129
-
130
- return (
131
- <MotionProgressIndicator
132
- data-slot="progress-indicator"
133
- animate={{ width: `${value}%` }}
134
- transition={transition}
135
- className={cn(progressStyles.indicator, slots?.indicator, className)}
136
- {...(props as React.ComponentProps<typeof MotionProgressIndicator>)}
137
- />
138
- );
139
- }
140
-
141
- /**
142
- * ProgressTrack renders the background track bar that contains the indicator.
143
- *
144
- * @param props - Track props including Base UI Track props and slot overrides
145
- * @returns A track element for the progress bar
146
- *
147
- * @example
148
- * ```tsx
149
- * <ProgressTrack slots={{ track: 'h-3 rounded-lg bg-zinc-800' }}>
150
- * <ProgressIndicator />
151
- * </ProgressTrack>
152
- * ```
153
- */
154
- function ProgressTrack({ className, slots, ...props }: IProgressTrackProps) {
155
- return (
156
- <ProgressPrimitives.Track
157
- data-slot="progress-track"
158
- className={cn(progressStyles.track, slots?.track, className)}
159
- {...props}
160
- />
161
- );
162
- }
163
-
164
- /**
165
- * ProgressLabel renders accessible label text for the progress bar.
166
- *
167
- * @param props - Label props including Base UI Label props and slot overrides
168
- * @returns A label element for the progress bar
169
- *
170
- * @example
171
- * ```tsx
172
- * <ProgressLabel slots={{ label: 'text-xs uppercase tracking-wide' }}>
173
- * Downloading...
174
- * </ProgressLabel>
175
- * ```
176
- */
177
- function ProgressLabel({ className, slots, ...props }: IProgressLabelProps) {
178
- return (
179
- <ProgressPrimitives.Label
180
- data-slot="progress-label"
181
- className={cn(progressStyles.label, slots?.label, className)}
182
- {...props}
183
- />
184
- );
185
- }
186
-
187
- /**
188
- * ProgressValue renders the current progress as an animated counting number.
189
- *
190
- * Uses the CountingNumber primitive for spring-based numeric transitions,
191
- * so the displayed value smoothly animates as progress changes.
192
- *
193
- * @param props - Value props combining Base UI Value with CountingNumber props and slot overrides
194
- * @returns An animated numeric value element
195
- *
196
- * @example
197
- * ```tsx
198
- * <ProgressValue
199
- * transition={{ stiffness: 80, damping: 20 }}
200
- * slots={{ value: 'font-mono text-cyan-400' }}
201
- * />
202
- * ```
203
- *
204
- * @example
205
- * ```tsx
206
- * // With decimal places
207
- * <ProgressValue decimalPlaces={1} decimalSeparator="." />
208
- * ```
209
- */
210
- function ProgressValue({
211
- transition = { stiffness: 80, damping: 20 },
212
- className,
213
- slots,
214
- ...props
215
- }: IProgressValueProps) {
216
- const { value } = useProgress();
217
-
218
- return (
219
- <ProgressPrimitives.Value
220
- data-slot="progress-value"
221
- render={
222
- <CountingNumber
223
- number={value ?? 0}
224
- transition={transition}
225
- className={cn(progressStyles.value, slots?.value, className)}
226
- {...props}
227
- />
228
- }
229
- />
230
- );
231
- }
232
-
233
- export {
234
- Progress,
235
- ProgressIndicator,
236
- ProgressTrack,
237
- ProgressLabel,
238
- ProgressValue,
239
- useProgress,
240
- };
241
-
242
- // Re-exports
243
- export type {
244
- IProgressProps,
245
- IProgressIndicatorProps,
246
- IProgressTrackProps,
247
- IProgressLabelProps,
248
- IProgressValueProps,
249
- IProgressConfig,
250
- ProgressContextType,
251
- ProgressSlot,
252
- } from './Progress.types';
253
-
254
- export { progressStyles } from './Progress.styles';
@@ -1,30 +0,0 @@
1
- import type { StyleSlots } from '@/core/types';
2
-
3
- /** Visual regions for the Select component family. */
4
- type SelectSlot =
5
- | 'root'
6
- | 'trigger'
7
- | 'content'
8
- | 'item'
9
- | 'label'
10
- | 'separator'
11
- | 'group'
12
- | 'value'
13
- | 'scrollButton';
14
-
15
- const selectStyles: StyleSlots<SelectSlot> = {
16
- root: '',
17
- trigger:
18
- 'border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*=\'size-\'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0',
19
- content:
20
- 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-lg shadow-md ring-1 duration-100 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 relative isolate z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none',
21
- item: 'focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*=\'size-\'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',
22
- label: 'text-muted-foreground px-1.5 py-1 text-xs',
23
- separator: 'bg-border -mx-1 my-1 h-px pointer-events-none',
24
- group: 'scroll-my-1 p-1',
25
- value: 'flex flex-1 text-left',
26
- scrollButton: 'bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=\'size-\'])]:size-4 w-full',
27
- };
28
-
29
- export { selectStyles };
30
- export type { SelectSlot };
@@ -1,51 +0,0 @@
1
- import type { Select as SelectPrimitive } from '@base-ui/react/select';
2
- import type { SlotOverrides } from '@/core/types';
3
- import type { SelectSlot } from './Select.styles';
4
-
5
- /** Props for the Select root. */
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- type ISelectProps = SelectPrimitive.Root.Props<any>;
8
-
9
- /** Props for SelectGroup. */
10
- type ISelectGroupProps = SelectPrimitive.Group.Props;
11
-
12
- /** Props for SelectValue. */
13
- type ISelectValueProps = SelectPrimitive.Value.Props;
14
-
15
- /** Props for SelectTrigger. */
16
- interface ISelectTriggerProps extends SelectPrimitive.Trigger.Props {
17
- /** Trigger size variant. */
18
- size?: 'sm' | 'default';
19
- /** Override classes for select visual regions. */
20
- slots?: SlotOverrides<SelectSlot>;
21
- }
22
-
23
- /** Props for SelectContent. */
24
- interface ISelectContentProps
25
- extends SelectPrimitive.Popup.Props,
26
- Pick<
27
- SelectPrimitive.Positioner.Props,
28
- 'align' | 'alignOffset' | 'side' | 'sideOffset' | 'alignItemWithTrigger'
29
- > {
30
- slots?: SlotOverrides<SelectSlot>;
31
- }
32
-
33
- /** Props for SelectLabel. */
34
- type ISelectLabelProps = SelectPrimitive.GroupLabel.Props;
35
-
36
- /** Props for SelectItem. */
37
- type ISelectItemProps = SelectPrimitive.Item.Props;
38
-
39
- /** Props for SelectSeparator. */
40
- type ISelectSeparatorProps = SelectPrimitive.Separator.Props;
41
-
42
- export type {
43
- ISelectProps,
44
- ISelectGroupProps,
45
- ISelectValueProps,
46
- ISelectTriggerProps,
47
- ISelectContentProps,
48
- ISelectLabelProps,
49
- ISelectItemProps,
50
- ISelectSeparatorProps,
51
- };
@@ -1,225 +0,0 @@
1
- import * as React from 'react';
2
- import { Select as SelectPrimitive } from '@base-ui/react/select';
3
-
4
- import { cn } from '@/react-ui/lib/utils';
5
- import { HugeiconsIcon } from '@hugeicons/react';
6
- import {
7
- UnfoldMoreIcon,
8
- Tick02Icon,
9
- ArrowUp01Icon,
10
- ArrowDown01Icon,
11
- } from '@hugeicons/core-free-icons';
12
- import { selectStyles } from './Select.styles';
13
- import type {
14
- ISelectGroupProps,
15
- ISelectValueProps,
16
- ISelectTriggerProps,
17
- ISelectContentProps,
18
- ISelectLabelProps,
19
- ISelectItemProps,
20
- ISelectSeparatorProps,
21
- } from './Select.types';
22
-
23
- /** Select — root component wrapping Base UI Select. */
24
- const Select = SelectPrimitive.Root;
25
-
26
- /** SelectGroup — groups related select items. */
27
- function SelectGroup({ className, ...props }: ISelectGroupProps) {
28
- return (
29
- <SelectPrimitive.Group
30
- data-slot="select-group"
31
- className={cn(selectStyles.group, className)}
32
- {...props}
33
- />
34
- );
35
- }
36
-
37
- /** SelectValue — displays the selected value text. */
38
- function SelectValue({ className, ...props }: ISelectValueProps) {
39
- return (
40
- <SelectPrimitive.Value
41
- data-slot="select-value"
42
- className={cn(selectStyles.value, className)}
43
- {...props}
44
- />
45
- );
46
- }
47
-
48
- /**
49
- * SelectTrigger — button that opens the select dropdown.
50
- *
51
- * @param size - Trigger size: 'default' or 'sm'
52
- *
53
- * @example
54
- * ```tsx
55
- * <SelectTrigger>
56
- * <SelectValue placeholder="Choose..." />
57
- * </SelectTrigger>
58
- * ```
59
- */
60
- function SelectTrigger({
61
- className,
62
- size = 'default',
63
- children,
64
- slots,
65
- ...props
66
- }: ISelectTriggerProps) {
67
- return (
68
- <SelectPrimitive.Trigger
69
- data-slot="select-trigger"
70
- data-size={size}
71
- className={cn(selectStyles.trigger, slots?.trigger, className)}
72
- {...props}
73
- >
74
- {children}
75
- <SelectPrimitive.Icon
76
- render={
77
- <HugeiconsIcon
78
- icon={UnfoldMoreIcon}
79
- strokeWidth={2}
80
- className="text-muted-foreground size-4 pointer-events-none"
81
- />
82
- }
83
- />
84
- </SelectPrimitive.Trigger>
85
- );
86
- }
87
-
88
- /** SelectContent — dropdown popup content for the select. */
89
- function SelectContent({
90
- className,
91
- children,
92
- side = 'bottom',
93
- sideOffset = 4,
94
- align = 'center',
95
- alignOffset = 0,
96
- alignItemWithTrigger = true,
97
- slots,
98
- ...props
99
- }: ISelectContentProps) {
100
- return (
101
- <SelectPrimitive.Portal>
102
- <SelectPrimitive.Positioner
103
- side={side}
104
- sideOffset={sideOffset}
105
- align={align}
106
- alignOffset={alignOffset}
107
- alignItemWithTrigger={alignItemWithTrigger}
108
- className="isolate z-50"
109
- >
110
- <SelectPrimitive.Popup
111
- data-slot="select-content"
112
- data-align-trigger={alignItemWithTrigger}
113
- className={cn(selectStyles.content, slots?.content, className)}
114
- {...props}
115
- >
116
- <SelectScrollUpButton />
117
- <SelectPrimitive.List>{children}</SelectPrimitive.List>
118
- <SelectScrollDownButton />
119
- </SelectPrimitive.Popup>
120
- </SelectPrimitive.Positioner>
121
- </SelectPrimitive.Portal>
122
- );
123
- }
124
-
125
- /** SelectLabel — label for a group of select items. */
126
- function SelectLabel({ className, ...props }: ISelectLabelProps) {
127
- return (
128
- <SelectPrimitive.GroupLabel
129
- data-slot="select-label"
130
- className={cn(selectStyles.label, className)}
131
- {...props}
132
- />
133
- );
134
- }
135
-
136
- /** SelectItem — a single selectable option. */
137
- function SelectItem({ className, children, ...props }: ISelectItemProps) {
138
- return (
139
- <SelectPrimitive.Item
140
- data-slot="select-item"
141
- className={cn(selectStyles.item, className)}
142
- {...props}
143
- >
144
- <SelectPrimitive.ItemText className="flex flex-1 gap-2 shrink-0 whitespace-nowrap">
145
- {children}
146
- </SelectPrimitive.ItemText>
147
- <SelectPrimitive.ItemIndicator
148
- render={
149
- <span className="pointer-events-none absolute right-2 flex size-4 items-center justify-center" />
150
- }
151
- >
152
- <HugeiconsIcon icon={Tick02Icon} strokeWidth={2} className="pointer-events-none" />
153
- </SelectPrimitive.ItemIndicator>
154
- </SelectPrimitive.Item>
155
- );
156
- }
157
-
158
- /** SelectSeparator — visual divider between select items. */
159
- function SelectSeparator({ className, ...props }: ISelectSeparatorProps) {
160
- return (
161
- <SelectPrimitive.Separator
162
- data-slot="select-separator"
163
- className={cn(selectStyles.separator, className)}
164
- {...props}
165
- />
166
- );
167
- }
168
-
169
- /** SelectScrollUpButton — scroll indicator for the top of the list. */
170
- function SelectScrollUpButton({
171
- className,
172
- ...props
173
- }: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {
174
- return (
175
- <SelectPrimitive.ScrollUpArrow
176
- data-slot="select-scroll-up-button"
177
- className={cn(selectStyles.scrollButton, 'top-0', className)}
178
- {...props}
179
- >
180
- <HugeiconsIcon icon={ArrowUp01Icon} strokeWidth={2} />
181
- </SelectPrimitive.ScrollUpArrow>
182
- );
183
- }
184
-
185
- /** SelectScrollDownButton — scroll indicator for the bottom of the list. */
186
- function SelectScrollDownButton({
187
- className,
188
- ...props
189
- }: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {
190
- return (
191
- <SelectPrimitive.ScrollDownArrow
192
- data-slot="select-scroll-down-button"
193
- className={cn(selectStyles.scrollButton, 'bottom-0', className)}
194
- {...props}
195
- >
196
- <HugeiconsIcon icon={ArrowDown01Icon} strokeWidth={2} />
197
- </SelectPrimitive.ScrollDownArrow>
198
- );
199
- }
200
-
201
- export {
202
- Select,
203
- SelectContent,
204
- SelectGroup,
205
- SelectItem,
206
- SelectLabel,
207
- SelectScrollDownButton,
208
- SelectScrollUpButton,
209
- SelectSeparator,
210
- SelectTrigger,
211
- SelectValue,
212
- };
213
-
214
- export type {
215
- ISelectProps,
216
- ISelectGroupProps,
217
- ISelectValueProps,
218
- ISelectTriggerProps,
219
- ISelectContentProps,
220
- ISelectLabelProps,
221
- ISelectItemProps,
222
- ISelectSeparatorProps,
223
- } from './Select.types';
224
-
225
- export type { SelectSlot } from './Select.styles';
@@ -1,10 +0,0 @@
1
- import type { StyleSlots } from '@/core/types';
2
-
3
- type SeparatorSlot = 'root';
4
-
5
- const separatorStyles: StyleSlots<SeparatorSlot> = {
6
- root: 'bg-border shrink-0 data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch',
7
- };
8
-
9
- export { separatorStyles };
10
- export type { SeparatorSlot };
@@ -1,10 +0,0 @@
1
- import type { Separator as SeparatorPrimitive } from '@base-ui/react/separator';
2
- import type { SlotOverrides } from '@/core/types';
3
- import type { SeparatorSlot } from './Separator.styles';
4
-
5
- /** Props for the Separator component. */
6
- interface ISeparatorProps extends SeparatorPrimitive.Props {
7
- slots?: SlotOverrides<SeparatorSlot>;
8
- }
9
-
10
- export type { ISeparatorProps };
@@ -1,37 +0,0 @@
1
- 'use client';
2
-
3
- import { Separator as SeparatorPrimitive } from '@base-ui/react/separator';
4
-
5
- import { cn } from '@/react-ui/lib/utils';
6
- import { separatorStyles } from './Separator.styles';
7
- import type { ISeparatorProps } from './Separator.types';
8
-
9
- /**
10
- * Separator — visual divider wrapping Base UI Separator.
11
- *
12
- * @param orientation - 'horizontal' or 'vertical'
13
- *
14
- * @example
15
- * ```tsx
16
- * <Separator orientation="horizontal" />
17
- * ```
18
- */
19
- function Separator({
20
- className,
21
- orientation = 'horizontal',
22
- slots,
23
- ...props
24
- }: ISeparatorProps) {
25
- return (
26
- <SeparatorPrimitive
27
- data-slot="separator"
28
- orientation={orientation}
29
- className={cn(separatorStyles.root, slots?.root, className)}
30
- {...props}
31
- />
32
- );
33
- }
34
-
35
- export { Separator };
36
- export type { ISeparatorProps } from './Separator.types';
37
- export type { SeparatorSlot } from './Separator.styles';
@@ -1,50 +0,0 @@
1
- /**
2
- * Style slots and CVA variants for the Switch component.
3
- *
4
- * @module @mks2508/mks-ui/react/ui/Switch/Switch.styles
5
- */
6
-
7
- import type { StyleSlots } from '@/core/types';
8
-
9
- import type { SwitchSlot } from './Switch.types';
10
-
11
- /**
12
- * Default style slots for the Switch component.
13
- * Each key maps to a visual region with its base Tailwind classes.
14
- *
15
- * - `root` - The outer switch track with rounded shape, background, and focus styles
16
- * - `thumb` - The sliding thumb indicator with sizing and shape
17
- * - `icon` - Icons positioned within the switch track or thumb
18
- *
19
- * @example
20
- * ```typescript
21
- * import { switchStyles } from './Switch.styles';
22
- *
23
- * // Access the root slot classes
24
- * const rootClasses = switchStyles.root;
25
- * // 'group inline-flex items-center ...'
26
- * ```
27
- */
28
- export const switchStyles: StyleSlots<SwitchSlot> = {
29
- root: [
30
- 'group inline-flex items-center',
31
- 'h-6 w-11 shrink-0',
32
- 'cursor-pointer rounded-full',
33
- 'border-2 border-transparent',
34
- 'bg-input',
35
- 'transition-colors',
36
- 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background',
37
- 'disabled:cursor-not-allowed disabled:opacity-50',
38
- 'data-[checked]:bg-primary',
39
- ].join(' '),
40
- thumb: [
41
- 'pointer-events-none block',
42
- 'size-5 rounded-full',
43
- 'bg-background',
44
- 'shadow-lg ring-0',
45
- ].join(' '),
46
- icon: [
47
- 'pointer-events-none',
48
- 'flex items-center justify-center',
49
- ].join(' '),
50
- };