@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
@@ -37,7 +37,7 @@ import { AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescript
37
37
  import { checkboxStyles } from "./ui/Checkbox/Checkbox.styles.js";
38
38
  import { Checkbox, CheckboxIndicator, useCheckbox } from "./ui/Checkbox/index.js";
39
39
  import { dialogStyles } from "./ui/Dialog/Dialog.styles.js";
40
- import { Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, useDialog } from "./ui/Dialog/index.js";
40
+ import { Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, useDialog } from "./ui/Dialog/index.js";
41
41
  import { useDataState } from "./hooks/State/UseDataState.js";
42
42
  import { Menu, MenuArrow, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuGroup, MenuGroupLabel, MenuHighlight, MenuHighlightItem, MenuItem, MenuPopup, MenuPortal, MenuPositioner, MenuRadioGroup, MenuRadioItem, MenuRadioItemIndicator, MenuSeparator, MenuShortcut, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, useMenu, useMenuActiveValue } from "./ui/Menu/index.js";
43
43
  import { popoverStyles } from "./ui/Popover/Popover.styles.js";
@@ -115,4 +115,4 @@ import { HugeIcons } from "./icons/index.js";
115
115
  import { IconWrapper } from "./lib/icon-wrapper.js";
116
116
  import "./lib/index.js";
117
117
 
118
- export { ANIMATION_CONFIGS, ANIMATION_DEFAULTS, Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionStyles, AccordionTrigger, ActivityIcon, AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPopup, AlertDialogPortal, AlertDialogStyles, AlertDialogTitle, AlertDialogTrigger, ArrowDownToLineIcon, ArrowUpIcon, AutoHeight, Badge, BellElectricIcon, BellIcon, BotIcon, BoxIcon, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Check, Checkbox, CheckboxIndicator, CircleCheckIcon, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, CornerBracket, CountingNumber, DataCard, DataCardActions, DataCardBracket, DataCardLabel, DataCardToggle, DataCardValue, DeleteIcon, Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DynamicToggle, DynamicToggleGroup, DynamicToggleOption, EASINGS, EFFECTS, Edit2, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, GOOEY_DEFAULTS, Globe, GooeyCanvas, GooeyFilter, Highlight, HighlightItem, HomeIcon, HugeIcons, IconWrapper, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, Layers, LayoutPanelTopIcon, ListIcon, Menu, MenuArrow, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuGroup, MenuGroupLabel, MenuHighlight, MenuHighlightItem, MenuItem, MenuPopup, MenuPortal, MenuPositioner, MenuRadioGroup, MenuRadioItem, MenuRadioItemIndicator, MenuSeparator, MenuShortcut, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Morph, MorphPath, MorphingPopover, MorphingPopoverWithTarget, PRESETS, Package, Palette, PlusIcon, Popover, PopoverArrow, PopoverBackdrop, PopoverClose, PopoverDescription, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RESPONSIVE_CONFIGS, RefreshCw, ReorderRoot as Reorder, Rocket, Save, SearchIcon, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsIcon, SlidingNumber, SlidingText, Slot, Switch, SwitchIcon, SwitchThumb, TIMING, TRANSFORMS, Tabs, TabsHighlight, TabsHighlightItem, TabsList, TabsPanel, TabsPanels, TabsTab, TerminalIcon, TextFlow, Textarea, Tooltip, TooltipArrow, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipProvider, TooltipTrigger, Trash2, TrendingDownIcon, TrendingUpIcon, Type, Upload, XIcon, accordionVariants, badgeVariants, bracketVariants, buildColorMatrixValues, buildFilterString, buttonStateStyles, buttonVariants, calculateSeparatorCoordination, cardVariants, checkboxStyles, cn, computeBlur, dataCardStyles, dataCardVariants, dialogStyles, dynamicToggleStyles, dynamicToggleVariants, fieldVariants, getResponsiveDuration, getResponsiveStagger, getStrictContext, inputGroupAddonVariants, inputGroupButtonVariants, morphPathDown, morphPathUp, popoverStyles, progressStyles, shouldShowSeparator, switchStyles, tabsIndicatorVariants, tabsListVariants, tabsTabVariants, tooltipStyles, useAccordionItem, useAlertDialog, useAnimationOrchestrator, useAutoHeight, useCSSGridMorph, useCheckbox, useComboboxAnchor, useControlledState, useDataCard, useDataState, useDialog, useDynamicToggle, useElementRegistry, useFLIPAnimation, useFLIPClipPath, useHighlight, useIsInView, useListFormat, useMenu, useMenuActiveValue, useMorph, useMorphContext, useMorphPath, usePopover, usePositionCapture, useProgress, useReorder, useReorderPresence, useSwitch, useTooltip, useViewTransitions };
118
+ export { ANIMATION_CONFIGS, ANIMATION_DEFAULTS, Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionStyles, AccordionTrigger, ActivityIcon, AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPopup, AlertDialogPortal, AlertDialogStyles, AlertDialogTitle, AlertDialogTrigger, ArrowDownToLineIcon, ArrowUpIcon, AutoHeight, Badge, BellElectricIcon, BellIcon, BotIcon, BoxIcon, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Check, Checkbox, CheckboxIndicator, CircleCheckIcon, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, CornerBracket, CountingNumber, DataCard, DataCardActions, DataCardBracket, DataCardLabel, DataCardToggle, DataCardValue, DeleteIcon, Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DynamicToggle, DynamicToggleGroup, DynamicToggleOption, EASINGS, EFFECTS, Edit2, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, GOOEY_DEFAULTS, Globe, GooeyCanvas, GooeyFilter, Highlight, HighlightItem, HomeIcon, HugeIcons, IconWrapper, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, Layers, LayoutPanelTopIcon, ListIcon, Menu, MenuArrow, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuGroup, MenuGroupLabel, MenuHighlight, MenuHighlightItem, MenuItem, MenuPopup, MenuPortal, MenuPositioner, MenuRadioGroup, MenuRadioItem, MenuRadioItemIndicator, MenuSeparator, MenuShortcut, MenuSubmenu, MenuSubmenuTrigger, MenuTrigger, Morph, MorphPath, MorphingPopover, MorphingPopoverWithTarget, PRESETS, Package, Palette, PlusIcon, Popover, PopoverArrow, PopoverBackdrop, PopoverClose, PopoverDescription, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RESPONSIVE_CONFIGS, RefreshCw, ReorderRoot as Reorder, Rocket, Save, SearchIcon, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SettingsIcon, SlidingNumber, SlidingText, Slot, Switch, SwitchIcon, SwitchThumb, TIMING, TRANSFORMS, Tabs, TabsHighlight, TabsHighlightItem, TabsList, TabsPanel, TabsPanels, TabsTab, TerminalIcon, TextFlow, Textarea, Tooltip, TooltipArrow, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipProvider, TooltipTrigger, Trash2, TrendingDownIcon, TrendingUpIcon, Type, Upload, XIcon, accordionVariants, badgeVariants, bracketVariants, buildColorMatrixValues, buildFilterString, buttonStateStyles, buttonVariants, calculateSeparatorCoordination, cardVariants, checkboxStyles, cn, computeBlur, dataCardStyles, dataCardVariants, dialogStyles, dynamicToggleStyles, dynamicToggleVariants, fieldVariants, getResponsiveDuration, getResponsiveStagger, getStrictContext, inputGroupAddonVariants, inputGroupButtonVariants, morphPathDown, morphPathUp, popoverStyles, progressStyles, shouldShowSeparator, switchStyles, tabsIndicatorVariants, tabsListVariants, tabsTabVariants, tooltipStyles, useAccordionItem, useAlertDialog, useAnimationOrchestrator, useAutoHeight, useCSSGridMorph, useCheckbox, useComboboxAnchor, useControlledState, useDataCard, useDataState, useDialog, useDynamicToggle, useElementRegistry, useFLIPAnimation, useFLIPClipPath, useHighlight, useIsInView, useListFormat, useMenu, useMenuActiveValue, useMorph, useMorphContext, useMorphPath, usePopover, usePositionCapture, useProgress, useReorder, useReorderPresence, useSwitch, useTooltip, useViewTransitions };
@@ -50,6 +50,8 @@ export interface IGooeyCanvasProps {
50
50
  bubbleHeight?: number;
51
51
  /** Bubble inset from edges as fraction 0-1 (default: 0.2) */
52
52
  bubbleInset?: number;
53
+ /** Bubble position relative to the pill (default: 'top') */
54
+ bubblePosition?: 'top' | 'bottom' | 'left' | 'right';
53
55
  /** Whether the bubble is expanded */
54
56
  expanded?: boolean;
55
57
  /** Drop-shadow outline blur in px (default: 0.5) */
@@ -1 +1 @@
1
- {"version":3,"file":"Gooey.types.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/primitives/waapi/Gooey/Gooey.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;IACrE,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"Gooey.types.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/primitives/waapi/Gooey/Gooey.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACrD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;IACrE,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -2,7 +2,7 @@ import type { IGooeyCanvasProps } from './Gooey.types';
2
2
  /**
3
3
  * GooeyCanvas — SVG rects + gooey filter, WAAPI-animated bubble.
4
4
  */
5
- declare function GooeyCanvas({ blur, height, width, radius, fillColor, bubbleHeight: bubbleHeightProp, bubbleInset, expanded, outlineBlur, outlineColor, outlineLayers, alphaGain, alphaOffset, expandDuration, collapseDuration, expandEasing, collapseEasing, className, }: IGooeyCanvasProps): import("react/jsx-runtime").JSX.Element;
5
+ declare function GooeyCanvas({ blur, height, width, radius, fillColor, bubbleHeight: bubbleHeightProp, bubbleInset, bubblePosition, expanded, outlineBlur, outlineColor, outlineLayers, alphaGain, alphaOffset, expandDuration, collapseDuration, expandEasing, collapseEasing, className, }: IGooeyCanvasProps): import("react/jsx-runtime").JSX.Element;
6
6
  declare namespace GooeyCanvas {
7
7
  var displayName: string;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GooeyCanvas.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;GAEG;AACH,iBAAS,WAAW,CAAC,EACnB,IAAI,EACJ,MAAW,EACX,KAAW,EACX,MAAa,EACb,SAAyB,EACzB,YAAY,EAAE,gBAAgB,EAC9B,WAAiB,EACjB,QAAgB,EAChB,WAAiB,EACjB,YAA8B,EAC9B,aAAiB,EACjB,SAAS,EACT,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,SAAS,GACV,EAAE,iBAAiB,2CAuKnB;kBA1LQ,WAAW;;;AA8LpB,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"GooeyCanvas.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOvD;;GAEG;AACH,iBAAS,WAAW,CAAC,EACnB,IAAI,EACJ,MAAW,EACX,KAAW,EACX,MAAa,EACb,SAAyB,EACzB,YAAY,EAAE,gBAAgB,EAC9B,WAAiB,EACjB,cAAsB,EACtB,QAAgB,EAChB,WAAiB,EACjB,YAA8B,EAC9B,aAAiB,EACjB,SAAS,EACT,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,SAAS,GACV,EAAE,iBAAiB,2CAwPnB;kBA5QQ,WAAW;;;AAgRpB,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -13,6 +13,10 @@ import { jsx, jsxs } from "react/jsx-runtime";
13
13
  * Uses SVG `<rect>` elements inside a filtered container. The bubble rect
14
14
  * animates via WAAPI for smooth cross-browser rendering.
15
15
  *
16
+ * Supports four bubble positions: top (default), bottom, left, right.
17
+ * For vertical positions (top/bottom), animates y/height.
18
+ * For horizontal positions (left/right), animates x/width.
19
+ *
16
20
  * Key patterns (derived from Sileo):
17
21
  * - Filter applied to canvas div, SVG content inside (not HTML children)
18
22
  * - `transform: translateZ(0)` + `contain: layout style` on canvas
@@ -21,26 +25,153 @@ import { jsx, jsxs } from "react/jsx-runtime";
21
25
  *
22
26
  * @module @mks2508/mks-ui/react/primitives/waapi/Gooey
23
27
  */
28
+ /** Whether a bubble position is horizontal (left/right). */
29
+ function isHorizontal(pos) {
30
+ return pos === "left" || pos === "right";
31
+ }
24
32
  /**
25
33
  * GooeyCanvas — SVG rects + gooey filter, WAAPI-animated bubble.
26
34
  */
27
- function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor = "var(--card)", bubbleHeight: bubbleHeightProp, bubbleInset = .2, expanded = false, outlineBlur = .5, outlineColor = "var(--border)", outlineLayers = 2, alphaGain, alphaOffset, expandDuration, collapseDuration, expandEasing, collapseEasing, className }) {
35
+ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor = "var(--card)", bubbleHeight: bubbleHeightProp, bubbleInset = .2, bubblePosition = "top", expanded = false, outlineBlur = .5, outlineColor = "var(--border)", outlineLayers = 2, alphaGain, alphaOffset, expandDuration, collapseDuration, expandEasing, collapseEasing, className }) {
28
36
  const filterId = React$1.useId().replace(/:/g, "") + "-goo";
29
37
  const computedBlur = blur ?? computeBlur(height);
30
38
  const bubbleRectRef = React$1.useRef(null);
31
39
  const animRef = React$1.useRef(null);
32
40
  const [ready, setReady] = React$1.useState(false);
33
41
  const lastValues = React$1.useRef({
34
- y: -1,
35
- h: -1
42
+ a: -1,
43
+ b: -1
36
44
  });
37
45
  const pad = 2;
38
46
  const effectiveR = Math.min(radius, height / 2);
47
+ const horiz = isHorizontal(bubblePosition);
39
48
  const bubbleH = bubbleHeightProp ?? Math.round(height * .4);
40
- const insetPx = width * bubbleInset;
41
- const bubbleW = width - 2 * insetPx;
42
49
  const bubbleR = Math.min(effectiveR * .6, bubbleH * .45, 12);
43
- const totalH = height + bubbleH;
50
+ const spanDim = horiz ? height : width;
51
+ const insetPx = spanDim * bubbleInset;
52
+ const bubbleSpan = spanDim - 2 * insetPx;
53
+ const svgW = horiz ? width + bubbleH : width;
54
+ const svgH = horiz ? height : height + bubbleH;
55
+ const pillX = bubblePosition === "left" ? bubbleH + pad : pad;
56
+ const pillY = bubblePosition === "top" ? bubbleH : 0;
57
+ const bubbleInitial = React$1.useMemo(() => {
58
+ switch (bubblePosition) {
59
+ case "top": return {
60
+ x: insetPx,
61
+ y: bubbleH,
62
+ w: bubbleSpan,
63
+ h: 0
64
+ };
65
+ case "bottom": return {
66
+ x: insetPx,
67
+ y: height,
68
+ w: bubbleSpan,
69
+ h: 0
70
+ };
71
+ case "left": return {
72
+ x: bubbleH,
73
+ y: insetPx,
74
+ w: 0,
75
+ h: bubbleSpan
76
+ };
77
+ case "right": return {
78
+ x: width - pad,
79
+ y: insetPx,
80
+ w: 0,
81
+ h: bubbleSpan
82
+ };
83
+ }
84
+ }, [
85
+ bubblePosition,
86
+ insetPx,
87
+ bubbleH,
88
+ bubbleSpan,
89
+ height,
90
+ width,
91
+ pad
92
+ ]);
93
+ const animTargets = React$1.useMemo(() => {
94
+ switch (bubblePosition) {
95
+ case "top": return {
96
+ attrs: ["y", "height"],
97
+ collapsed: {
98
+ a: bubbleH,
99
+ b: 0
100
+ },
101
+ expanded: {
102
+ a: 0,
103
+ b: bubbleH
104
+ }
105
+ };
106
+ case "bottom": return {
107
+ attrs: ["y", "height"],
108
+ collapsed: {
109
+ a: height,
110
+ b: 0
111
+ },
112
+ expanded: {
113
+ a: height,
114
+ b: bubbleH
115
+ }
116
+ };
117
+ case "left": return {
118
+ attrs: ["x", "width"],
119
+ collapsed: {
120
+ a: bubbleH,
121
+ b: 0
122
+ },
123
+ expanded: {
124
+ a: 0,
125
+ b: bubbleH
126
+ }
127
+ };
128
+ case "right": return {
129
+ attrs: ["x", "width"],
130
+ collapsed: {
131
+ a: width - pad,
132
+ b: 0
133
+ },
134
+ expanded: {
135
+ a: width - pad,
136
+ b: bubbleH
137
+ }
138
+ };
139
+ }
140
+ }, [
141
+ bubblePosition,
142
+ bubbleH,
143
+ height,
144
+ width,
145
+ pad
146
+ ]);
147
+ const svgStyle = React$1.useMemo(() => {
148
+ const base = {
149
+ position: "absolute",
150
+ overflow: "visible"
151
+ };
152
+ switch (bubblePosition) {
153
+ case "top": return {
154
+ ...base,
155
+ top: -bubbleH,
156
+ left: 0
157
+ };
158
+ case "bottom": return {
159
+ ...base,
160
+ top: 0,
161
+ left: 0
162
+ };
163
+ case "left": return {
164
+ ...base,
165
+ top: 0,
166
+ left: -bubbleH
167
+ };
168
+ case "right": return {
169
+ ...base,
170
+ top: 0,
171
+ left: 0
172
+ };
173
+ }
174
+ }, [bubblePosition, bubbleH]);
44
175
  const filterUrl = React$1.useMemo(() => `url(#${filterId})`, [filterId]);
45
176
  const outlineShadow = React$1.useMemo(() => {
46
177
  const shadow = `drop-shadow(0 0 ${outlineBlur}px ${outlineColor})`;
@@ -58,17 +189,21 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
58
189
  React$1.useEffect(() => {
59
190
  const rect = bubbleRectRef.current;
60
191
  if (!rect) return;
192
+ const init = expanded ? animTargets.expanded : animTargets.collapsed;
61
193
  lastValues.current = {
62
- y: expanded ? 0 : bubbleH,
63
- h: expanded ? bubbleH : 0
194
+ a: init.a,
195
+ b: init.b
64
196
  };
65
- if (expanded) rect.animate([{
66
- y: "0px",
67
- height: `${bubbleH}px`
68
- }], {
69
- duration: 0,
70
- fill: "forwards"
71
- });
197
+ if (expanded) {
198
+ const [attrA, attrB] = animTargets.attrs;
199
+ rect.animate([{
200
+ [attrA]: `${init.a}px`,
201
+ [attrB]: `${init.b}px`
202
+ }], {
203
+ duration: 0,
204
+ fill: "forwards"
205
+ });
206
+ }
72
207
  const raf = requestAnimationFrame(() => setReady(true));
73
208
  return () => cancelAnimationFrame(raf);
74
209
  }, []);
@@ -76,21 +211,21 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
76
211
  const rect = bubbleRectRef.current;
77
212
  if (!rect || !ready) return;
78
213
  const isExpanding = expanded;
214
+ const [attrA, attrB] = animTargets.attrs;
79
215
  const duration = getResponsiveDuration(isExpanding ? expandDuration ?? GOOEY_TIMING.EXPAND_DURATION : collapseDuration ?? GOOEY_TIMING.COLLAPSE_DURATION);
80
216
  const easing = isExpanding ? expandEasing ?? EASINGS.SPRING_GENTLE : collapseEasing ?? EASINGS.EASE_OUT_CUBIC;
81
- const toY = isExpanding ? 0 : bubbleH;
82
- const toH = isExpanding ? bubbleH : 0;
83
- const fromY = lastValues.current.y;
84
- const fromH = lastValues.current.h;
217
+ const to = isExpanding ? animTargets.expanded : animTargets.collapsed;
218
+ const fromA = lastValues.current.a;
219
+ const fromB = lastValues.current.b;
85
220
  lastValues.current = {
86
- y: toY,
87
- h: toH
221
+ a: to.a,
222
+ b: to.b
88
223
  };
89
224
  if (duration === 0) {
90
225
  if (animRef.current) animRef.current.cancel();
91
226
  rect.animate([{
92
- y: `${toY}px`,
93
- height: `${toH}px`
227
+ [attrA]: `${to.a}px`,
228
+ [attrB]: `${to.b}px`
94
229
  }], {
95
230
  duration: 0,
96
231
  fill: "forwards"
@@ -99,11 +234,11 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
99
234
  }
100
235
  if (animRef.current) animRef.current.cancel();
101
236
  animRef.current = rect.animate([{
102
- y: `${fromY}px`,
103
- height: `${fromH}px`
237
+ [attrA]: `${fromA}px`,
238
+ [attrB]: `${fromB}px`
104
239
  }, {
105
- y: `${toY}px`,
106
- height: `${toH}px`
240
+ [attrA]: `${to.a}px`,
241
+ [attrB]: `${to.b}px`
107
242
  }], {
108
243
  duration,
109
244
  easing,
@@ -112,7 +247,7 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
112
247
  }, [
113
248
  ready,
114
249
  expanded,
115
- bubbleH,
250
+ animTargets,
116
251
  expandDuration,
117
252
  collapseDuration,
118
253
  expandEasing,
@@ -124,15 +259,10 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
124
259
  className: cn("absolute inset-0 rounded-[inherit] pointer-events-none z-0 overflow-visible", className),
125
260
  children: /* @__PURE__ */ jsxs("svg", {
126
261
  "data-slot": "gooey-svg",
127
- width,
128
- height: totalH,
129
- viewBox: `0 0 ${width} ${totalH}`,
130
- style: {
131
- position: "absolute",
132
- top: -bubbleH,
133
- left: 0,
134
- overflow: "visible"
135
- },
262
+ width: svgW,
263
+ height: svgH,
264
+ viewBox: `0 0 ${svgW} ${svgH}`,
265
+ style: svgStyle,
136
266
  "aria-hidden": "true",
137
267
  children: [
138
268
  /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("filter", {
@@ -162,8 +292,8 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
162
292
  ]
163
293
  }) }),
164
294
  /* @__PURE__ */ jsx("rect", {
165
- x: pad,
166
- y: bubbleH,
295
+ x: pillX,
296
+ y: pillY,
167
297
  width: width - pad * 2,
168
298
  height: height - pad * 2,
169
299
  rx: effectiveR,
@@ -172,10 +302,10 @@ function GooeyCanvas({ blur, height = 32, width = 260, radius = 9999, fillColor
172
302
  }),
173
303
  /* @__PURE__ */ jsx("rect", {
174
304
  ref: bubbleRectRef,
175
- x: insetPx,
176
- y: bubbleH,
177
- width: bubbleW,
178
- height: 0,
305
+ x: bubbleInitial.x,
306
+ y: bubbleInitial.y,
307
+ width: bubbleInitial.w,
308
+ height: bubbleInitial.h,
179
309
  rx: bubbleR,
180
310
  ry: bubbleR,
181
311
  fill: fillColor
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.styles.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/Dialog/Dialog.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC,UAAU,CAkC/C,CAAC"}
1
+ {"version":3,"file":"Dialog.styles.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/Dialog/Dialog.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC,UAAU,CAqC/C,CAAC"}
@@ -13,6 +13,7 @@
13
13
  const dialogStyles = {
14
14
  root: "",
15
15
  backdrop: "fixed inset-0 z-50 bg-black/80",
16
+ viewport: "",
16
17
  popup: [
17
18
  "fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2",
18
19
  "w-full max-w-lg",
@@ -19,7 +19,7 @@ import type { SlotOverrides, IBaseConfig } from '../../../core/types';
19
19
  * <DialogPopup slots={{ popup: 'max-w-lg rounded-xl' }} />
20
20
  * ```
21
21
  */
22
- export type DialogSlot = 'root' | 'backdrop' | 'popup' | 'header' | 'footer' | 'title' | 'description' | 'close';
22
+ export type DialogSlot = 'root' | 'backdrop' | 'viewport' | 'popup' | 'header' | 'footer' | 'title' | 'description' | 'close';
23
23
  /**
24
24
  * Direction from which the dialog popup flips in during its entrance animation.
25
25
  *
@@ -124,6 +124,25 @@ export interface IDialogBackdropProps extends Omit<Omit<React.ComponentProps<typ
124
124
  /** Style slot overrides. */
125
125
  slots?: SlotOverrides<DialogSlot>;
126
126
  }
127
+ /**
128
+ * Props for the `DialogViewport` component.
129
+ * Required wrapper around DialogPopup per Base UI v1.x.
130
+ * Must be a direct child of DialogPortal.
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * <DialogPortal>
135
+ * <DialogBackdrop />
136
+ * <DialogViewport>
137
+ * <DialogPopup>...</DialogPopup>
138
+ * </DialogViewport>
139
+ * </DialogPortal>
140
+ * ```
141
+ */
142
+ export interface IDialogViewportProps extends React.ComponentProps<typeof DialogPrimitive.Viewport> {
143
+ /** Style slot overrides. */
144
+ slots?: SlotOverrides<DialogSlot>;
145
+ }
127
146
  /**
128
147
  * Props for the `DialogPopup` component.
129
148
  * The main content container with perspective-flip entrance animation.
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.types.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/Dialog/Dialog.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.types.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/Dialog/Dialog.types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DialogContextType, IDialogProps, IDialogTriggerProps, IDialogPortalProps, IDialogBackdropProps, IDialogPopupProps, IDialogCloseProps, IDialogHeaderProps, IDialogFooterProps, IDialogTitleProps, IDialogDescriptionProps } from './Dialog.types';
1
+ import type { DialogContextType, IDialogProps, IDialogTriggerProps, IDialogPortalProps, IDialogViewportProps, IDialogBackdropProps, IDialogPopupProps, IDialogCloseProps, IDialogHeaderProps, IDialogFooterProps, IDialogTitleProps, IDialogDescriptionProps } from './Dialog.types';
2
2
  declare const useDialog: () => DialogContextType;
3
3
  /**
4
4
  * Root Dialog component.
@@ -54,18 +54,39 @@ declare function DialogPortal({ slots: _slots, ...props }: IDialogPortalProps):
54
54
  * ```
55
55
  */
56
56
  declare function DialogBackdrop({ slots, className, transition, ...props }: IDialogBackdropProps): import("react/jsx-runtime").JSX.Element;
57
+ /**
58
+ * Required viewport wrapper around DialogPopup.
59
+ * Base UI v1.x requires Dialog.Viewport as a direct child of Dialog.Portal
60
+ * and parent of Dialog.Popup.
61
+ *
62
+ * @param props - Viewport props forwarded to Base UI Dialog.Viewport
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <DialogPortal>
67
+ * <DialogBackdrop />
68
+ * <DialogViewport>
69
+ * <DialogPopup>...</DialogPopup>
70
+ * </DialogViewport>
71
+ * </DialogPortal>
72
+ * ```
73
+ */
74
+ declare function DialogViewport({ slots, className, ...props }: IDialogViewportProps): import("react/jsx-runtime").JSX.Element;
57
75
  /**
58
76
  * Main dialog content container with a perspective-flip entrance animation.
59
77
  * The `from` prop controls the axis and direction of the 3D rotation.
78
+ * Must be wrapped in a `DialogViewport`.
60
79
  *
61
80
  * @param props - Popup props including `from` direction and motion transition overrides
62
81
  *
63
82
  * @example
64
83
  * ```tsx
65
- * <DialogPopup from="bottom" className="max-w-md">
66
- * <DialogTitle>Confirm</DialogTitle>
67
- * <p>Are you sure?</p>
68
- * </DialogPopup>
84
+ * <DialogViewport>
85
+ * <DialogPopup from="bottom" className="max-w-md">
86
+ * <DialogTitle>Confirm</DialogTitle>
87
+ * <p>Are you sure?</p>
88
+ * </DialogPopup>
89
+ * </DialogViewport>
69
90
  * ```
70
91
  */
71
92
  declare function DialogPopup({ from, initialFocus, finalFocus, slots, className, transition, ...props }: IDialogPopupProps): import("react/jsx-runtime").JSX.Element;
@@ -132,7 +153,7 @@ declare function DialogTitle({ slots, className, ...props }: IDialogTitleProps):
132
153
  * ```
133
154
  */
134
155
  declare function DialogDescription({ slots, className, ...props }: IDialogDescriptionProps): import("react/jsx-runtime").JSX.Element;
135
- export { Dialog, DialogPortal, DialogBackdrop, DialogClose, DialogTrigger, DialogPopup, DialogHeader, DialogFooter, DialogTitle, DialogDescription, useDialog, };
136
- export type { IDialogProps, IDialogTriggerProps, IDialogPortalProps, IDialogCloseProps, IDialogBackdropProps, IDialogPopupProps, IDialogHeaderProps, IDialogFooterProps, IDialogTitleProps, IDialogDescriptionProps, DialogContextType, DialogFlipDirection, DialogSlot, IDialogConfig, } from './Dialog.types';
156
+ export { Dialog, DialogPortal, DialogViewport, DialogBackdrop, DialogClose, DialogTrigger, DialogPopup, DialogHeader, DialogFooter, DialogTitle, DialogDescription, useDialog, };
157
+ export type { IDialogProps, IDialogTriggerProps, IDialogPortalProps, IDialogViewportProps, IDialogCloseProps, IDialogBackdropProps, IDialogPopupProps, IDialogHeaderProps, IDialogFooterProps, IDialogTitleProps, IDialogDescriptionProps, DialogContextType, DialogFlipDirection, DialogSlot, IDialogConfig, } from './Dialog.types';
137
158
  export { dialogStyles } from './Dialog.styles';
138
159
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/Dialog/index.tsx"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EACV,iBAAiB,EAEjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,QAAA,MAAuB,SAAS,yBACsB,CAAC;AAMvD;;;;;;;;;;;;GAYG;AACH,iBAAS,MAAM,CAAC,KAAK,EAAE,YAAY,2CAkBlC;AAMD;;;;;;;;;;;GAWG;AACH,iBAAS,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAQzE;AAMD;;;;;;;;;;;;;GAaG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAcpE;AAMD;;;;;;;;;;GAUG;AACH,iBAAS,cAAc,CAAC,EACtB,KAAK,EACL,SAAS,EACT,UAAiD,EACjD,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAiBtB;AAMD;;;;;;;;;;;;;GAaG;AACH,iBAAS,WAAW,CAAC,EACnB,IAAY,EACZ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,SAAS,EACT,UAA4D,EAC5D,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAoCnB;AAMD;;;;;;;;;;;GAWG;AACH,iBAAS,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAQrE;AAMD;;;;;;;;;;;;GAYG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQvE;AAMD;;;;;;;;;;;;GAYG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQvE;AAMD;;;;;;;;;GASG;AACH,iBAAS,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAQrE;AAMD;;;;;;;;;GASG;AACH,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAQzB;AAMD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,GACV,CAAC;AAGF,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/Dialog/index.tsx"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EACV,iBAAiB,EAEjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAMxB,QAAA,MAAuB,SAAS,yBACsB,CAAC;AAMvD;;;;;;;;;;;;GAYG;AACH,iBAAS,MAAM,CAAC,KAAK,EAAE,YAAY,2CAkBlC;AAMD;;;;;;;;;;;GAWG;AACH,iBAAS,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAQzE;AAMD;;;;;;;;;;;;;GAaG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAcpE;AAMD;;;;;;;;;;GAUG;AACH,iBAAS,cAAc,CAAC,EACtB,KAAK,EACL,SAAS,EACT,UAAiD,EACjD,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAiBtB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAQ3E;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,WAAW,CAAC,EACnB,IAAY,EACZ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,SAAS,EACT,UAA4D,EAC5D,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAoCnB;AAMD;;;;;;;;;;;GAWG;AACH,iBAAS,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAQrE;AAMD;;;;;;;;;;;;GAYG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQvE;AAMD;;;;;;;;;;;;GAYG;AACH,iBAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAQvE;AAMD;;;;;;;;;GASG;AACH,iBAAS,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAQrE;AAMD;;;;;;;;;GASG;AACH,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAQzB;AAMD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,GACV,CAAC;AAGF,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -121,17 +121,44 @@ function DialogBackdrop({ slots, className, transition = {
121
121
  });
122
122
  }
123
123
  /**
124
+ * Required viewport wrapper around DialogPopup.
125
+ * Base UI v1.x requires Dialog.Viewport as a direct child of Dialog.Portal
126
+ * and parent of Dialog.Popup.
127
+ *
128
+ * @param props - Viewport props forwarded to Base UI Dialog.Viewport
129
+ *
130
+ * @example
131
+ * ```tsx
132
+ * <DialogPortal>
133
+ * <DialogBackdrop />
134
+ * <DialogViewport>
135
+ * <DialogPopup>...</DialogPopup>
136
+ * </DialogViewport>
137
+ * </DialogPortal>
138
+ * ```
139
+ */
140
+ function DialogViewport({ slots, className, ...props }) {
141
+ return /* @__PURE__ */ jsx(Dialog.Viewport, {
142
+ "data-slot": "dialog-viewport",
143
+ className: cn(dialogStyles.viewport, slots?.viewport, className),
144
+ ...props
145
+ });
146
+ }
147
+ /**
124
148
  * Main dialog content container with a perspective-flip entrance animation.
125
149
  * The `from` prop controls the axis and direction of the 3D rotation.
150
+ * Must be wrapped in a `DialogViewport`.
126
151
  *
127
152
  * @param props - Popup props including `from` direction and motion transition overrides
128
153
  *
129
154
  * @example
130
155
  * ```tsx
131
- * <DialogPopup from="bottom" className="max-w-md">
132
- * <DialogTitle>Confirm</DialogTitle>
133
- * <p>Are you sure?</p>
134
- * </DialogPopup>
156
+ * <DialogViewport>
157
+ * <DialogPopup from="bottom" className="max-w-md">
158
+ * <DialogTitle>Confirm</DialogTitle>
159
+ * <p>Are you sure?</p>
160
+ * </DialogPopup>
161
+ * </DialogViewport>
135
162
  * ```
136
163
  */
137
164
  function DialogPopup({ from = "top", initialFocus, finalFocus, slots, className, transition = {
@@ -262,4 +289,4 @@ function DialogDescription({ slots, className, ...props }) {
262
289
  }
263
290
 
264
291
  //#endregion
265
- export { Dialog$1 as Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, useDialog };
292
+ export { Dialog$1 as Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogPopup, DialogPortal, DialogTitle, DialogTrigger, DialogViewport, useDialog };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * DynamicToggle — CSS state transitions.
2
+ * DynamicToggle v2 — CSS state transitions.
3
3
  *
4
4
  * Rules requiring :has(), container queries, clip-path, or pseudo-elements.
5
5
  * Layout, colors, sizing in Tailwind (DynamicToggle.styles.ts).
@@ -285,11 +285,11 @@
285
285
  }
286
286
 
287
287
  /* ══════════════════════════════════════════════════════════
288
- * GROUP LABEL (above/below the pill)
288
+ * GROUP LABEL / BUBBLE (above or below the pill)
289
289
  *
290
- * Replaces the old "bubble" element. Positioned via CSS grid.
291
- * In filter/path morph modes, rendered inside GooeyCanvas.
290
+ * Positioned via CSS. In filter/path morph modes, rendered with GooeyCanvas.
292
291
  * In none mode, simple CSS-driven show/hide.
292
+ * bubblePosition: top | bottom (no left/right in v2)
293
293
  * ══════════════════════════════════════════════════════════ */
294
294
 
295
295
  [data-slot="dt-group-label"] {
@@ -319,7 +319,7 @@
319
319
  }
320
320
 
321
321
  /* Top position */
322
- [data-slot="dt-group-label"][data-position="top"] {
322
+ [data-slot="dt-group-label"][data-bubble-position="top"] {
323
323
  bottom: 100%;
324
324
  border-radius: calc(var(--dt-h, 38px) * 0.2) calc(var(--dt-h, 38px) * 0.2) 0 0;
325
325
  border-bottom: none;
@@ -327,29 +327,25 @@
327
327
  }
328
328
 
329
329
  /* Bottom position */
330
- [data-slot="dt-group-label"][data-position="bottom"] {
330
+ [data-slot="dt-group-label"][data-bubble-position="bottom"] {
331
331
  top: 100%;
332
332
  border-radius: 0 0 calc(var(--dt-h, 38px) * 0.2) calc(var(--dt-h, 38px) * 0.2);
333
333
  border-top: none;
334
334
  margin-top: -1px;
335
335
  }
336
336
 
337
- /* When group active → group label grows */
338
- [data-slot="dt-root"]:not(:has([data-slot="dt-track"] > input:checked)) [data-slot="dt-group-label"] {
337
+ /* When group active → group label grows (vertical: top/bottom) */
338
+ [data-slot="dt-root"]:not(:has([data-slot="dt-track"] > input:checked)) [data-slot="dt-group-label"][data-bubble-position="top"],
339
+ [data-slot="dt-root"]:not(:has([data-slot="dt-track"] > input:checked)) [data-slot="dt-group-label"][data-bubble-position="bottom"] {
339
340
  grid-template-rows: 1fr;
340
341
  opacity: 1;
341
342
  }
342
- [data-slot="dt-root"]:not(:has([data-slot="dt-track"] > input:checked)) [data-slot="dt-group-label"] > span {
343
+ [data-slot="dt-root"]:not(:has([data-slot="dt-track"] > input:checked)) [data-slot="dt-group-label"][data-bubble-position="top"] > span,
344
+ [data-slot="dt-root"]:not(:has([data-slot="dt-track"] > input:checked)) [data-slot="dt-group-label"][data-bubble-position="bottom"] > span {
343
345
  padding: 0.35em 0.75em;
344
346
  }
345
347
 
346
348
  /* ── Filter morph mode ── */
347
- [data-slot="dt-root"][data-morph="filter"] {
348
- background: transparent;
349
- border-color: transparent;
350
- box-shadow: none;
351
- overflow: visible;
352
- }
353
349
  [data-slot="dt-root"][data-morph="filter"] [data-slot="dt-group-label"] {
354
350
  border: none;
355
351
  }
@@ -366,11 +362,8 @@
366
362
  }
367
363
 
368
364
  /* ── Path morph mode ── */
369
- [data-slot="dt-root"][data-morph="path"] {
370
- background: transparent;
371
- border-color: transparent;
372
- }
373
365
  [data-slot="dt-root"][data-morph="path"] [data-slot="dt-track"] {
374
366
  position: relative;
375
367
  z-index: 1;
376
368
  }
369
+