@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,540 +0,0 @@
1
- 'use client';
2
-
3
- /**
4
- * AlertDialog component with animated 3D flip entrance.
5
- *
6
- * Built on top of Base UI's AlertDialog primitive with Motion (Framer Motion)
7
- * animations. Features a perspective-based flip animation from configurable
8
- * directions, backdrop blur effects, and the StyleSlots pattern for granular
9
- * style overrides.
10
- *
11
- * AlertDialog is specifically designed for destructive or important confirmations
12
- * that require explicit user acknowledgment. Unlike Dialog, it blocks interaction
13
- * with the rest of the page.
14
- *
15
- * @module @mks2508/mks-ui/react/ui/AlertDialog
16
- *
17
- * @example
18
- * ```tsx
19
- * import {
20
- * AlertDialog,
21
- * AlertDialogTrigger,
22
- * AlertDialogPortal,
23
- * AlertDialogBackdrop,
24
- * AlertDialogPopup,
25
- * AlertDialogHeader,
26
- * AlertDialogFooter,
27
- * AlertDialogTitle,
28
- * AlertDialogDescription,
29
- * AlertDialogClose,
30
- * } from '@mks2508/mks-ui';
31
- *
32
- * function DeleteConfirmation() {
33
- * return (
34
- * <AlertDialog>
35
- * <AlertDialogTrigger>Delete Account</AlertDialogTrigger>
36
- * <AlertDialogPortal>
37
- * <AlertDialogBackdrop />
38
- * <AlertDialogPopup from="top">
39
- * <AlertDialogHeader>
40
- * <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
41
- * <AlertDialogDescription>
42
- * This action cannot be undone.
43
- * </AlertDialogDescription>
44
- * </AlertDialogHeader>
45
- * <AlertDialogFooter>
46
- * <AlertDialogClose>Cancel</AlertDialogClose>
47
- * <button>Delete</button>
48
- * </AlertDialogFooter>
49
- * </AlertDialogPopup>
50
- * </AlertDialogPortal>
51
- * </AlertDialog>
52
- * );
53
- * }
54
- * ```
55
- */
56
-
57
- import * as React from 'react';
58
- import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';
59
- import { AnimatePresence, motion } from 'motion/react';
60
-
61
- import { cn } from '@/react-ui/lib/utils';
62
- import { getStrictContext } from '@/react-ui/lib/get-strict-context';
63
- import { useControlledState } from '@/react-ui/hooks/State/UseControlledState';
64
-
65
- import { AlertDialogStyles } from './AlertDialog.styles';
66
- import type {
67
- AlertDialogContextType,
68
- IAlertDialogProps,
69
- IAlertDialogTriggerProps,
70
- IAlertDialogPortalProps,
71
- IAlertDialogBackdropProps,
72
- IAlertDialogPopupProps,
73
- IAlertDialogCloseProps,
74
- IAlertDialogHeaderProps,
75
- IAlertDialogFooterProps,
76
- IAlertDialogTitleProps,
77
- IAlertDialogDescriptionProps,
78
- } from './AlertDialog.types';
79
-
80
- // ---------------------------------------------------------------------------
81
- // Context
82
- // ---------------------------------------------------------------------------
83
-
84
- const [AlertDialogProvider, useAlertDialog] =
85
- getStrictContext<AlertDialogContextType>('AlertDialogContext');
86
-
87
- // ---------------------------------------------------------------------------
88
- // AlertDialog (root)
89
- // ---------------------------------------------------------------------------
90
-
91
- /**
92
- * Root AlertDialog component. Manages open state and provides context
93
- * to all child sub-components.
94
- *
95
- * Supports both controlled (`open` + `onOpenChange`) and uncontrolled
96
- * (`defaultOpen`) usage patterns.
97
- *
98
- * @param props - {@link IAlertDialogProps}
99
- * @returns The rendered alert dialog root
100
- *
101
- * @example
102
- * ```tsx
103
- * // Uncontrolled
104
- * <AlertDialog>
105
- * <AlertDialogTrigger>Open</AlertDialogTrigger>
106
- * <AlertDialogPortal>...</AlertDialogPortal>
107
- * </AlertDialog>
108
- *
109
- * // Controlled
110
- * const [open, setOpen] = useState(false);
111
- * <AlertDialog open={open} onOpenChange={setOpen}>
112
- * ...
113
- * </AlertDialog>
114
- * ```
115
- */
116
- function AlertDialog({
117
- slots: _slots,
118
- config: _config,
119
- ...props
120
- }: IAlertDialogProps) {
121
- const [isOpen, setIsOpen] = useControlledState({
122
- value: props?.open,
123
- defaultValue: props?.defaultOpen,
124
- onChange: props?.onOpenChange,
125
- });
126
-
127
- return (
128
- <AlertDialogProvider value={{ isOpen, setIsOpen }}>
129
- <AlertDialogPrimitive.Root
130
- data-slot="alert-dialog"
131
- {...props}
132
- onOpenChange={setIsOpen}
133
- />
134
- </AlertDialogProvider>
135
- );
136
- }
137
-
138
- // ---------------------------------------------------------------------------
139
- // AlertDialogTrigger
140
- // ---------------------------------------------------------------------------
141
-
142
- /**
143
- * Button that opens the AlertDialog when clicked.
144
- * Renders as a button element by default.
145
- *
146
- * @param props - {@link IAlertDialogTriggerProps}
147
- * @returns The rendered trigger button
148
- *
149
- * @example
150
- * ```tsx
151
- * <AlertDialogTrigger className="bg-destructive text-destructive-foreground">
152
- * Delete Account
153
- * </AlertDialogTrigger>
154
- * ```
155
- */
156
- function AlertDialogTrigger({
157
- slots: _slots,
158
- ...props
159
- }: IAlertDialogTriggerProps) {
160
- return (
161
- <AlertDialogPrimitive.Trigger
162
- data-slot="alert-dialog-trigger"
163
- {...props}
164
- />
165
- );
166
- }
167
-
168
- // ---------------------------------------------------------------------------
169
- // AlertDialogPortal
170
- // ---------------------------------------------------------------------------
171
-
172
- /**
173
- * Portal wrapper that renders alert dialog content outside the DOM hierarchy.
174
- * Manages AnimatePresence for enter/exit animations of the backdrop and popup.
175
- *
176
- * The portal is automatically kept mounted for exit animations and only
177
- * renders its children when the dialog is open.
178
- *
179
- * @param props - {@link IAlertDialogPortalProps}
180
- * @returns The rendered portal with AnimatePresence
181
- *
182
- * @example
183
- * ```tsx
184
- * <AlertDialogPortal>
185
- * <AlertDialogBackdrop />
186
- * <AlertDialogPopup>...</AlertDialogPopup>
187
- * </AlertDialogPortal>
188
- * ```
189
- */
190
- function AlertDialogPortal(props: IAlertDialogPortalProps) {
191
- const { isOpen } = useAlertDialog();
192
-
193
- return (
194
- <AnimatePresence>
195
- {isOpen && (
196
- <AlertDialogPrimitive.Portal
197
- data-slot="alert-dialog-portal"
198
- keepMounted
199
- {...props}
200
- />
201
- )}
202
- </AnimatePresence>
203
- );
204
- }
205
-
206
- // ---------------------------------------------------------------------------
207
- // AlertDialogBackdrop
208
- // ---------------------------------------------------------------------------
209
-
210
- /**
211
- * Semi-transparent overlay behind the alert dialog.
212
- * Animates in with a fade and optional blur effect.
213
- *
214
- * @param props - {@link IAlertDialogBackdropProps}
215
- * @returns The rendered animated backdrop
216
- *
217
- * @example
218
- * ```tsx
219
- * // Default backdrop
220
- * <AlertDialogBackdrop />
221
- *
222
- * // Custom backdrop with blur
223
- * <AlertDialogBackdrop
224
- * className="bg-black/60 backdrop-blur-md"
225
- * transition={{ duration: 0.3 }}
226
- * />
227
- * ```
228
- */
229
- function AlertDialogBackdrop({
230
- transition = { duration: 0.2, ease: 'easeInOut' },
231
- slots,
232
- className,
233
- ...props
234
- }: IAlertDialogBackdropProps) {
235
- return (
236
- <AlertDialogPrimitive.Backdrop
237
- data-slot="alert-dialog-backdrop"
238
- render={
239
- <motion.div
240
- key="alert-dialog-backdrop"
241
- className={cn(
242
- AlertDialogStyles.backdrop,
243
- slots?.backdrop,
244
- className,
245
- )}
246
- initial={{ opacity: 0, filter: 'blur(4px)' }}
247
- animate={{ opacity: 1, filter: 'blur(0px)' }}
248
- exit={{ opacity: 0, filter: 'blur(4px)' }}
249
- transition={transition}
250
- {...(props as any)}
251
- />
252
- }
253
- />
254
- );
255
- }
256
-
257
- // ---------------------------------------------------------------------------
258
- // AlertDialogPopup
259
- // ---------------------------------------------------------------------------
260
-
261
- /**
262
- * Main dialog container with a 3D perspective flip animation.
263
- *
264
- * The `from` prop controls which direction the dialog flips from:
265
- * - `top` / `bottom` rotate around the X axis
266
- * - `left` / `right` rotate around the Y axis
267
- *
268
- * Uses spring physics for a natural, bouncy entrance.
269
- *
270
- * @param props - {@link IAlertDialogPopupProps}
271
- * @returns The rendered animated popup
272
- *
273
- * @example
274
- * ```tsx
275
- * // Flip from top (default)
276
- * <AlertDialogPopup>...</AlertDialogPopup>
277
- *
278
- * // Flip from bottom with custom spring
279
- * <AlertDialogPopup
280
- * from="bottom"
281
- * transition={{ type: 'spring', stiffness: 200, damping: 30 }}
282
- * >
283
- * ...
284
- * </AlertDialogPopup>
285
- * ```
286
- */
287
- function AlertDialogPopup({
288
- from = 'top',
289
- initialFocus,
290
- finalFocus,
291
- transition = { type: 'spring', stiffness: 150, damping: 25 },
292
- slots,
293
- className,
294
- ...props
295
- }: IAlertDialogPopupProps) {
296
- const initialRotation =
297
- from === 'bottom' || from === 'left' ? '20deg' : '-20deg';
298
- const isVertical = from === 'top' || from === 'bottom';
299
- const rotateAxis = isVertical ? 'rotateX' : 'rotateY';
300
-
301
- return (
302
- <AlertDialogPrimitive.Popup
303
- initialFocus={initialFocus}
304
- finalFocus={finalFocus}
305
- render={
306
- <motion.div
307
- key="alert-dialog-popup"
308
- data-slot="alert-dialog-popup"
309
- className={cn(AlertDialogStyles.popup, slots?.popup, className)}
310
- initial={{
311
- opacity: 0,
312
- filter: 'blur(4px)',
313
- transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,
314
- }}
315
- animate={{
316
- opacity: 1,
317
- filter: 'blur(0px)',
318
- transform: `perspective(500px) ${rotateAxis}(0deg) scale(1)`,
319
- }}
320
- exit={{
321
- opacity: 0,
322
- filter: 'blur(4px)',
323
- transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,
324
- }}
325
- transition={transition}
326
- {...(props as any)}
327
- />
328
- }
329
- />
330
- );
331
- }
332
-
333
- // ---------------------------------------------------------------------------
334
- // AlertDialogClose
335
- // ---------------------------------------------------------------------------
336
-
337
- /**
338
- * Button that closes the AlertDialog when clicked.
339
- * Typically used in the footer alongside a confirm action.
340
- *
341
- * @param props - {@link IAlertDialogCloseProps}
342
- * @returns The rendered close button
343
- *
344
- * @example
345
- * ```tsx
346
- * <AlertDialogClose className="border border-border px-4 py-2 rounded-md">
347
- * Cancel
348
- * </AlertDialogClose>
349
- * ```
350
- */
351
- function AlertDialogClose({
352
- slots,
353
- className,
354
- ...props
355
- }: IAlertDialogCloseProps) {
356
- return (
357
- <AlertDialogPrimitive.Close
358
- data-slot="alert-dialog-close"
359
- className={cn(AlertDialogStyles.close, slots?.close, className)}
360
- {...props}
361
- />
362
- );
363
- }
364
-
365
- // ---------------------------------------------------------------------------
366
- // AlertDialogHeader
367
- // ---------------------------------------------------------------------------
368
-
369
- /**
370
- * Layout wrapper for the dialog title and description.
371
- * Provides consistent spacing and text alignment.
372
- *
373
- * @param props - {@link IAlertDialogHeaderProps}
374
- * @returns The rendered header container
375
- *
376
- * @example
377
- * ```tsx
378
- * <AlertDialogHeader>
379
- * <AlertDialogTitle>Confirm Action</AlertDialogTitle>
380
- * <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>
381
- * </AlertDialogHeader>
382
- * ```
383
- */
384
- function AlertDialogHeader({
385
- slots,
386
- className,
387
- ...props
388
- }: IAlertDialogHeaderProps) {
389
- return (
390
- <div
391
- data-slot="alert-dialog-header"
392
- className={cn(AlertDialogStyles.header, slots?.header, className)}
393
- {...props}
394
- />
395
- );
396
- }
397
-
398
- // ---------------------------------------------------------------------------
399
- // AlertDialogFooter
400
- // ---------------------------------------------------------------------------
401
-
402
- /**
403
- * Layout wrapper for dialog action buttons.
404
- * Uses responsive flex layout: column on mobile, row on desktop.
405
- *
406
- * @param props - {@link IAlertDialogFooterProps}
407
- * @returns The rendered footer container
408
- *
409
- * @example
410
- * ```tsx
411
- * <AlertDialogFooter>
412
- * <AlertDialogClose>Cancel</AlertDialogClose>
413
- * <Button variant="destructive" onClick={handleDelete}>
414
- * Delete
415
- * </Button>
416
- * </AlertDialogFooter>
417
- * ```
418
- */
419
- function AlertDialogFooter({
420
- slots,
421
- className,
422
- ...props
423
- }: IAlertDialogFooterProps) {
424
- return (
425
- <div
426
- data-slot="alert-dialog-footer"
427
- className={cn(AlertDialogStyles.footer, slots?.footer, className)}
428
- {...props}
429
- />
430
- );
431
- }
432
-
433
- // ---------------------------------------------------------------------------
434
- // AlertDialogTitle
435
- // ---------------------------------------------------------------------------
436
-
437
- /**
438
- * Title element for the AlertDialog.
439
- * Automatically associated with the dialog for accessibility via Base UI.
440
- *
441
- * @param props - {@link IAlertDialogTitleProps}
442
- * @returns The rendered title element
443
- *
444
- * @example
445
- * ```tsx
446
- * <AlertDialogTitle className="text-destructive">
447
- * Delete Workspace
448
- * </AlertDialogTitle>
449
- * ```
450
- */
451
- function AlertDialogTitle({
452
- slots,
453
- className,
454
- ...props
455
- }: IAlertDialogTitleProps) {
456
- return (
457
- <AlertDialogPrimitive.Title
458
- data-slot="alert-dialog-title"
459
- className={cn(AlertDialogStyles.title, slots?.title, className)}
460
- {...props}
461
- />
462
- );
463
- }
464
-
465
- // ---------------------------------------------------------------------------
466
- // AlertDialogDescription
467
- // ---------------------------------------------------------------------------
468
-
469
- /**
470
- * Description element for the AlertDialog.
471
- * Provides additional context about the action being confirmed.
472
- * Automatically associated with the dialog for accessibility via Base UI.
473
- *
474
- * @param props - {@link IAlertDialogDescriptionProps}
475
- * @returns The rendered description element
476
- *
477
- * @example
478
- * ```tsx
479
- * <AlertDialogDescription>
480
- * This will permanently delete the workspace and all associated data.
481
- * This action cannot be undone.
482
- * </AlertDialogDescription>
483
- * ```
484
- */
485
- function AlertDialogDescription({
486
- slots,
487
- className,
488
- ...props
489
- }: IAlertDialogDescriptionProps) {
490
- return (
491
- <AlertDialogPrimitive.Description
492
- data-slot="alert-dialog-description"
493
- className={cn(
494
- AlertDialogStyles.description,
495
- slots?.description,
496
- className,
497
- )}
498
- {...props}
499
- />
500
- );
501
- }
502
-
503
- // ---------------------------------------------------------------------------
504
- // Exports
505
- // ---------------------------------------------------------------------------
506
-
507
- export {
508
- AlertDialog,
509
- AlertDialogPortal,
510
- AlertDialogBackdrop,
511
- AlertDialogClose,
512
- AlertDialogTrigger,
513
- AlertDialogPopup,
514
- AlertDialogHeader,
515
- AlertDialogFooter,
516
- AlertDialogTitle,
517
- AlertDialogDescription,
518
- useAlertDialog,
519
- };
520
-
521
- // Re-export types
522
- export type {
523
- IAlertDialogProps,
524
- IAlertDialogTriggerProps,
525
- IAlertDialogPortalProps,
526
- IAlertDialogCloseProps,
527
- IAlertDialogBackdropProps,
528
- IAlertDialogPopupProps,
529
- IAlertDialogHeaderProps,
530
- IAlertDialogFooterProps,
531
- IAlertDialogTitleProps,
532
- IAlertDialogDescriptionProps,
533
- IAlertDialogConfig,
534
- AlertDialogSlot,
535
- AlertDialogContextType,
536
- AlertDialogFlipDirection,
537
- } from './AlertDialog.types';
538
-
539
- // Re-export styles
540
- export { AlertDialogStyles } from './AlertDialog.styles';
@@ -1,43 +0,0 @@
1
- import { cva } from 'class-variance-authority';
2
- import type { StyleSlots } from '@/core/types';
3
-
4
- /** Visual regions for the Badge component. */
5
- type BadgeSlot = 'root';
6
-
7
- const badgeStyles: StyleSlots<BadgeSlot> = {
8
- root: 'inline-flex items-center justify-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
9
- };
10
-
11
- /**
12
- * CVA variants for the Badge root.
13
- *
14
- * @see {@link https://cva.style/docs/getting-started/variants}
15
- */
16
- const badgeVariants = cva(
17
- 'inline-flex items-center justify-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
18
- {
19
- variants: {
20
- variant: {
21
- default:
22
- 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',
23
- secondary:
24
- 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
25
- destructive:
26
- 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
27
- outline: 'text-foreground',
28
- },
29
- size: {
30
- default: 'h-6 px-2.5 py-0.5',
31
- sm: 'h-5 px-2 text-[10px]',
32
- lg: 'h-7 px-3 text-sm',
33
- },
34
- },
35
- defaultVariants: {
36
- variant: 'default',
37
- size: 'default',
38
- },
39
- },
40
- );
41
-
42
- export { badgeStyles, badgeVariants };
43
- export type { BadgeSlot };
@@ -1,26 +0,0 @@
1
- import type { VariantProps } from 'class-variance-authority';
2
- import type { SlotOverrides } from '@/core/types';
3
- import type { badgeVariants, BadgeSlot } from './Badge.styles';
4
-
5
- /**
6
- * Props for the Badge component.
7
- *
8
- * @example
9
- * ```tsx
10
- * <Badge variant="secondary" size="sm">New</Badge>
11
- * ```
12
- */
13
- interface IBadgeProps
14
- extends React.HTMLAttributes<HTMLDivElement>,
15
- VariantProps<typeof badgeVariants> {
16
- /** Override classes for badge visual regions. */
17
- slots?: SlotOverrides<BadgeSlot>;
18
- }
19
-
20
- /** Available badge variants. */
21
- type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline';
22
-
23
- /** Available badge sizes. */
24
- type BadgeSize = 'default' | 'sm' | 'lg';
25
-
26
- export type { IBadgeProps, BadgeVariant, BadgeSize };
@@ -1,34 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { cn } from '@/react-ui/lib/utils';
4
- import { badgeVariants } from './Badge.styles';
5
- import type { IBadgeProps } from './Badge.types';
6
-
7
- /**
8
- * Badge — displays status labels, categories, or indicators.
9
- *
10
- * @param variant - Visual style: 'default', 'secondary', 'destructive', 'outline'
11
- * @param size - Badge size: 'default', 'sm', 'lg'
12
- * @param slots - Override classes for badge visual regions
13
- *
14
- * @example
15
- * ```tsx
16
- * <Badge variant="secondary">New</Badge>
17
- * <Badge variant="destructive" size="sm">Error</Badge>
18
- * ```
19
- */
20
- function Badge({ className, variant, size, slots, ...props }: IBadgeProps) {
21
- return (
22
- <div
23
- data-slot="badge"
24
- data-variant={variant}
25
- data-size={size}
26
- className={cn(badgeVariants({ variant, size }), slots?.root, className)}
27
- {...props}
28
- />
29
- );
30
- }
31
-
32
- export { Badge, badgeVariants };
33
- export type { IBadgeProps, BadgeVariant, BadgeSize } from './Badge.types';
34
- export type { BadgeSlot } from './Badge.styles';
@@ -1,57 +0,0 @@
1
- import { cva } from 'class-variance-authority';
2
- import type { StyleSlots } from '@/core/types';
3
-
4
- /** Visual regions for the Button component. */
5
- type ButtonSlot = 'root';
6
-
7
- const buttonStyles: StyleSlots<ButtonSlot> = {
8
- root: 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',
9
- };
10
-
11
- /**
12
- * CVA variants for the Button root.
13
- *
14
- * @see {@link https://cva.style/docs/getting-started/variants}
15
- */
16
- const buttonVariants = cva(
17
- 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 active:scale-[0.98]',
18
- {
19
- variants: {
20
- variant: {
21
- default:
22
- 'bg-primary text-primary-foreground hover:bg-primary/90',
23
- secondary:
24
- 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
25
- destructive:
26
- 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
27
- outline:
28
- 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
29
- ghost: 'hover:bg-accent hover:text-accent-foreground',
30
- link: 'text-primary underline-offset-4 hover:underline',
31
- success:
32
- 'bg-emerald-600 text-white hover:bg-emerald-700 focus-visible:ring-emerald-600',
33
- warning:
34
- 'bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-500',
35
- },
36
- size: {
37
- default: 'h-10 px-4 py-2',
38
- sm: 'h-9 rounded-md px-3 text-xs',
39
- lg: 'h-11 rounded-md px-8 text-base',
40
- icon: 'h-10 w-10 p-0',
41
- },
42
- },
43
- defaultVariants: {
44
- variant: 'default',
45
- size: 'default',
46
- },
47
- },
48
- );
49
-
50
- /** State-specific style classes for Button. */
51
- const buttonStateStyles = {
52
- pressed: 'scale-[0.98]',
53
- disabled: 'opacity-50 pointer-events-none',
54
- };
55
-
56
- export { buttonStyles, buttonVariants, buttonStateStyles };
57
- export type { ButtonSlot };