@mks2508/mks-ui 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts +2 -0
  2. package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts.map +1 -1
  3. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts +1 -1
  4. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts.map +1 -1
  5. package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.js +173 -43
  6. package/dist/react-ui/ui/DynamicToggle/{DynamicToggle-DOR3Ld-k.css → DynamicToggle-DJLwEkHr.css} +12 -19
  7. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +12 -20
  8. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -0
  9. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts.map +1 -1
  10. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.js +7 -1
  11. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +55 -31
  12. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts.map +1 -1
  13. package/dist/react-ui/ui/DynamicToggle/index.d.ts +9 -3
  14. package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
  15. package/dist/react-ui/ui/DynamicToggle/index.js +47 -34
  16. package/package.json +52 -13
  17. package/src/assets/react.svg +0 -1
  18. package/src/core/index.ts +0 -7
  19. package/src/core/types.ts +0 -82
  20. package/src/css.d.ts +0 -7
  21. package/src/index.css +0 -129
  22. package/src/index.ts +0 -29
  23. package/src/react-ui/blocks/Terminal/ResttyAdapter.ts +0 -278
  24. package/src/react-ui/blocks/Terminal/Terminal.adapter.ts +0 -97
  25. package/src/react-ui/blocks/Terminal/Terminal.theme.restty.ts +0 -155
  26. package/src/react-ui/blocks/Terminal/Terminal.theme.ts +0 -80
  27. package/src/react-ui/blocks/Terminal/Terminal.types.ts +0 -438
  28. package/src/react-ui/blocks/Terminal/TerminalDisplay.styles.ts +0 -38
  29. package/src/react-ui/blocks/Terminal/TerminalDisplay.tsx +0 -254
  30. package/src/react-ui/blocks/Terminal/TerminalDisplay.types.ts +0 -73
  31. package/src/react-ui/blocks/Terminal/TerminalPanel.tsx +0 -269
  32. package/src/react-ui/blocks/Terminal/TerminalRestty.tsx +0 -326
  33. package/src/react-ui/blocks/Terminal/TerminalXterm.tsx +0 -230
  34. package/src/react-ui/blocks/Terminal/XTermAdapter.ts +0 -163
  35. package/src/react-ui/blocks/Terminal/chrome.ts +0 -25
  36. package/src/react-ui/blocks/Terminal/components/LogLineBadges.tsx +0 -316
  37. package/src/react-ui/blocks/Terminal/components/SpecializedSyntaxHighlighter.tsx +0 -218
  38. package/src/react-ui/blocks/Terminal/components/SyntaxHighlight.tsx +0 -386
  39. package/src/react-ui/blocks/Terminal/components/TerminalLogBadge.tsx +0 -67
  40. package/src/react-ui/blocks/Terminal/components/index.ts +0 -10
  41. package/src/react-ui/blocks/Terminal/display.ts +0 -46
  42. package/src/react-ui/blocks/Terminal/hooks/index.ts +0 -22
  43. package/src/react-ui/blocks/Terminal/hooks/useTerminalSettings.ts +0 -229
  44. package/src/react-ui/blocks/Terminal/hooks/useTerminalWebSocket.ts +0 -292
  45. package/src/react-ui/blocks/Terminal/index.ts +0 -111
  46. package/src/react-ui/blocks/Terminal/panel/LogLinesViewer.tsx +0 -330
  47. package/src/react-ui/blocks/Terminal/panel/TerminalDebugPanel.tsx +0 -242
  48. package/src/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.tsx +0 -202
  49. package/src/react-ui/blocks/Terminal/panel/TerminalFilterTabs.tsx +0 -140
  50. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.tsx +0 -68
  51. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.ts +0 -85
  52. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.tsx +0 -383
  53. package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.tsx +0 -439
  54. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.tsx +0 -550
  55. package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.ts +0 -259
  56. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.ts +0 -75
  57. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx +0 -266
  58. package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts +0 -82
  59. package/src/react-ui/blocks/Terminal/panel/TerminalPanelFooter.tsx +0 -112
  60. package/src/react-ui/blocks/Terminal/panel/TerminalPanelHeader.tsx +0 -178
  61. package/src/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.tsx +0 -203
  62. package/src/react-ui/blocks/Terminal/panel/TerminalSessionControl.tsx +0 -252
  63. package/src/react-ui/blocks/Terminal/panel/TerminalSessionTabs.tsx +0 -334
  64. package/src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.tsx +0 -261
  65. package/src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx +0 -248
  66. package/src/react-ui/blocks/Terminal/panel/index.ts +0 -72
  67. package/src/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.css +0 -59
  68. package/src/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.css +0 -59
  69. package/src/react-ui/blocks/Terminal/parsing/BadgeFormatter.ts +0 -180
  70. package/src/react-ui/blocks/Terminal/parsing/HttpLogParser.ts +0 -248
  71. package/src/react-ui/blocks/Terminal/parsing/LogParser.types.ts +0 -283
  72. package/src/react-ui/blocks/Terminal/parsing/LogParserService.ts +0 -686
  73. package/src/react-ui/blocks/Terminal/parsing/MultilineAggregator.ts +0 -466
  74. package/src/react-ui/blocks/Terminal/parsing/PersistentLogBuffer.ts +0 -343
  75. package/src/react-ui/blocks/Terminal/parsing/SyntaxHighlighter.ts +0 -167
  76. package/src/react-ui/blocks/Terminal/parsing/TableParser.ts +0 -348
  77. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiColorMapper.ts +0 -251
  78. package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiParser.ts +0 -390
  79. package/src/react-ui/blocks/Terminal/parsing/ansi/ansi.constants.ts +0 -320
  80. package/src/react-ui/blocks/Terminal/parsing/ansi/index.ts +0 -20
  81. package/src/react-ui/blocks/Terminal/parsing/index.ts +0 -69
  82. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevel.types.ts +0 -68
  83. package/src/react-ui/blocks/Terminal/parsing/levels/LogLevelDetector.ts +0 -436
  84. package/src/react-ui/blocks/Terminal/parsing/levels/index.ts +0 -14
  85. package/src/react-ui/blocks/index.ts +0 -11
  86. package/src/react-ui/components/MorphingPopover/MorphingPopover.types.ts +0 -49
  87. package/src/react-ui/components/MorphingPopover/index.tsx +0 -186
  88. package/src/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -153
  89. package/src/react-ui/components/index.ts +0 -9
  90. package/src/react-ui/hooks/Animation/UseAutoHeight.tsx +0 -123
  91. package/src/react-ui/hooks/DOM/UseIsInView.tsx +0 -44
  92. package/src/react-ui/hooks/Formatting/UseListFormat.ts +0 -134
  93. package/src/react-ui/hooks/State/UseControlledState.tsx +0 -57
  94. package/src/react-ui/hooks/State/UseDataState.tsx +0 -76
  95. package/src/react-ui/hooks/index.ts +0 -20
  96. package/src/react-ui/icons/index.ts +0 -12
  97. package/src/react-ui/icons/lucide-animated/activity.tsx +0 -109
  98. package/src/react-ui/icons/lucide-animated/arrow-down-to-line.tsx +0 -51
  99. package/src/react-ui/icons/lucide-animated/arrow-up.tsx +0 -50
  100. package/src/react-ui/icons/lucide-animated/bell-electric.tsx +0 -124
  101. package/src/react-ui/icons/lucide-animated/bell.tsx +0 -93
  102. package/src/react-ui/icons/lucide-animated/bot.tsx +0 -122
  103. package/src/react-ui/icons/lucide-animated/box.tsx +0 -117
  104. package/src/react-ui/icons/lucide-animated/check.tsx +0 -21
  105. package/src/react-ui/icons/lucide-animated/circle-check.tsx +0 -107
  106. package/src/react-ui/icons/lucide-animated/delete.tsx +0 -133
  107. package/src/react-ui/icons/lucide-animated/download.tsx +0 -99
  108. package/src/react-ui/icons/lucide-animated/edit-2.tsx +0 -21
  109. package/src/react-ui/icons/lucide-animated/globe.tsx +0 -23
  110. package/src/react-ui/icons/lucide-animated/home.tsx +0 -103
  111. package/src/react-ui/icons/lucide-animated/index.ts +0 -38
  112. package/src/react-ui/icons/lucide-animated/layers.tsx +0 -23
  113. package/src/react-ui/icons/lucide-animated/layout-panel-top.tsx +0 -143
  114. package/src/react-ui/icons/lucide-animated/list.tsx +0 -54
  115. package/src/react-ui/icons/lucide-animated/package.tsx +0 -24
  116. package/src/react-ui/icons/lucide-animated/palette.tsx +0 -25
  117. package/src/react-ui/icons/lucide-animated/plus.tsx +0 -92
  118. package/src/react-ui/icons/lucide-animated/refresh-cw.tsx +0 -24
  119. package/src/react-ui/icons/lucide-animated/rocket.tsx +0 -24
  120. package/src/react-ui/icons/lucide-animated/save.tsx +0 -23
  121. package/src/react-ui/icons/lucide-animated/search.tsx +0 -94
  122. package/src/react-ui/icons/lucide-animated/settings.tsx +0 -92
  123. package/src/react-ui/icons/lucide-animated/terminal.tsx +0 -46
  124. package/src/react-ui/icons/lucide-animated/trash-2.tsx +0 -25
  125. package/src/react-ui/icons/lucide-animated/trending-down.tsx +0 -151
  126. package/src/react-ui/icons/lucide-animated/trending-up.tsx +0 -150
  127. package/src/react-ui/icons/lucide-animated/type.tsx +0 -23
  128. package/src/react-ui/icons/lucide-animated/upload.tsx +0 -23
  129. package/src/react-ui/icons/lucide-animated/x.tsx +0 -102
  130. package/src/react-ui/index.ts +0 -30
  131. package/src/react-ui/lib/get-strict-context.tsx +0 -56
  132. package/src/react-ui/lib/icon-wrapper.tsx +0 -70
  133. package/src/react-ui/lib/index.ts +0 -9
  134. package/src/react-ui/lib/utils.ts +0 -24
  135. package/src/react-ui/primitives/AutoHeight/index.tsx +0 -74
  136. package/src/react-ui/primitives/CountingNumber/index.tsx +0 -147
  137. package/src/react-ui/primitives/Highlight/Highlight.types.ts +0 -136
  138. package/src/react-ui/primitives/Highlight/index.tsx +0 -577
  139. package/src/react-ui/primitives/Slot/index.tsx +0 -128
  140. package/src/react-ui/primitives/index.ts +0 -16
  141. package/src/react-ui/primitives/waapi/Gooey/Gooey.types.ts +0 -141
  142. package/src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx +0 -217
  143. package/src/react-ui/primitives/waapi/Gooey/GooeyFilter.tsx +0 -77
  144. package/src/react-ui/primitives/waapi/Gooey/MorphPath.tsx +0 -58
  145. package/src/react-ui/primitives/waapi/Gooey/gooey-utils.ts +0 -253
  146. package/src/react-ui/primitives/waapi/Gooey/index.ts +0 -50
  147. package/src/react-ui/primitives/waapi/Gooey/useMorphPath.ts +0 -48
  148. package/src/react-ui/primitives/waapi/Morph/Morph.types.ts +0 -106
  149. package/src/react-ui/primitives/waapi/Morph/MorphContext.tsx +0 -21
  150. package/src/react-ui/primitives/waapi/Morph/index.tsx +0 -56
  151. package/src/react-ui/primitives/waapi/Morph/techniques/index.ts +0 -12
  152. package/src/react-ui/primitives/waapi/Morph/techniques/useCSSGridMorph.ts +0 -89
  153. package/src/react-ui/primitives/waapi/Morph/techniques/useFLIPClipPath.ts +0 -176
  154. package/src/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.ts +0 -87
  155. package/src/react-ui/primitives/waapi/Morph/useMorph.ts +0 -101
  156. package/src/react-ui/primitives/waapi/Reorder/Reorder.types.ts +0 -177
  157. package/src/react-ui/primitives/waapi/Reorder/index.tsx +0 -260
  158. package/src/react-ui/primitives/waapi/Reorder/useReorder.ts +0 -47
  159. package/src/react-ui/primitives/waapi/Reorder/useReorderPresence.ts +0 -209
  160. package/src/react-ui/primitives/waapi/Reorder/utils/separatorCoordination.ts +0 -104
  161. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.ts +0 -14
  162. package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.types.ts +0 -84
  163. package/src/react-ui/primitives/waapi/SlidingNumber/index.tsx +0 -474
  164. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.styles.ts +0 -32
  165. package/src/react-ui/primitives/waapi/SlidingText/SlidingText.types.ts +0 -69
  166. package/src/react-ui/primitives/waapi/SlidingText/index.tsx +0 -140
  167. package/src/react-ui/primitives/waapi/core/animationConstants.ts +0 -215
  168. package/src/react-ui/primitives/waapi/core/index.ts +0 -53
  169. package/src/react-ui/primitives/waapi/core/types.ts +0 -200
  170. package/src/react-ui/primitives/waapi/core/useAnimationOrchestrator.ts +0 -430
  171. package/src/react-ui/primitives/waapi/core/useElementRegistry.ts +0 -81
  172. package/src/react-ui/primitives/waapi/core/useFLIPAnimation.ts +0 -138
  173. package/src/react-ui/primitives/waapi/core/usePositionCapture.ts +0 -106
  174. package/src/react-ui/primitives/waapi/index.ts +0 -139
  175. package/src/react-ui/styles/animations.css +0 -369
  176. package/src/react-ui/ui/Accordion/Accordion.styles.ts +0 -72
  177. package/src/react-ui/ui/Accordion/Accordion.types.ts +0 -199
  178. package/src/react-ui/ui/Accordion/index.tsx +0 -362
  179. package/src/react-ui/ui/AlertDialog/AlertDialog.styles.ts +0 -38
  180. package/src/react-ui/ui/AlertDialog/AlertDialog.types.ts +0 -296
  181. package/src/react-ui/ui/AlertDialog/index.tsx +0 -540
  182. package/src/react-ui/ui/Badge/Badge.styles.ts +0 -43
  183. package/src/react-ui/ui/Badge/Badge.types.ts +0 -26
  184. package/src/react-ui/ui/Badge/index.tsx +0 -34
  185. package/src/react-ui/ui/Button/Button.styles.ts +0 -57
  186. package/src/react-ui/ui/Button/Button.types.ts +0 -63
  187. package/src/react-ui/ui/Button/index.tsx +0 -155
  188. package/src/react-ui/ui/Card/Card.styles.ts +0 -32
  189. package/src/react-ui/ui/Card/Card.types.ts +0 -39
  190. package/src/react-ui/ui/Card/index.tsx +0 -130
  191. package/src/react-ui/ui/Checkbox/Checkbox.styles.ts +0 -40
  192. package/src/react-ui/ui/Checkbox/Checkbox.types.ts +0 -98
  193. package/src/react-ui/ui/Checkbox/index.tsx +0 -233
  194. package/src/react-ui/ui/Combobox/Combobox.styles.ts +0 -34
  195. package/src/react-ui/ui/Combobox/Combobox.types.ts +0 -89
  196. package/src/react-ui/ui/Combobox/index.tsx +0 -331
  197. package/src/react-ui/ui/CornerBracket/CornerBracket.styles.ts +0 -38
  198. package/src/react-ui/ui/CornerBracket/CornerBracket.types.ts +0 -15
  199. package/src/react-ui/ui/CornerBracket/index.tsx +0 -49
  200. package/src/react-ui/ui/DataCard/DataCard.styles.ts +0 -94
  201. package/src/react-ui/ui/DataCard/DataCard.types.ts +0 -125
  202. package/src/react-ui/ui/DataCard/index.tsx +0 -340
  203. package/src/react-ui/ui/Dialog/Dialog.styles.ts +0 -59
  204. package/src/react-ui/ui/Dialog/Dialog.types.ts +0 -284
  205. package/src/react-ui/ui/Dialog/index.tsx +0 -452
  206. package/src/react-ui/ui/DropdownMenu/DropdownMenu.styles.ts +0 -35
  207. package/src/react-ui/ui/DropdownMenu/DropdownMenu.types.ts +0 -81
  208. package/src/react-ui/ui/DropdownMenu/index.tsx +0 -300
  209. package/src/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -376
  210. package/src/react-ui/ui/DynamicToggle/DynamicToggle.styles.ts +0 -85
  211. package/src/react-ui/ui/DynamicToggle/DynamicToggle.types.ts +0 -180
  212. package/src/react-ui/ui/DynamicToggle/index.tsx +0 -316
  213. package/src/react-ui/ui/DynamicToggle/prototype-v7-ios.html +0 -413
  214. package/src/react-ui/ui/DynamicToggle/prototype-v7.html +0 -615
  215. package/src/react-ui/ui/DynamicToggle/prototype-v8-gooey-safari.html +0 -560
  216. package/src/react-ui/ui/DynamicToggle/prototype-v8b-react-structure.html +0 -227
  217. package/src/react-ui/ui/DynamicToggle/prototype.html +0 -419
  218. package/src/react-ui/ui/Field/Field.styles.ts +0 -47
  219. package/src/react-ui/ui/Field/Field.types.ts +0 -60
  220. package/src/react-ui/ui/Field/index.tsx +0 -254
  221. package/src/react-ui/ui/Input/Input.styles.ts +0 -11
  222. package/src/react-ui/ui/Input/Input.types.ts +0 -10
  223. package/src/react-ui/ui/Input/index.tsx +0 -32
  224. package/src/react-ui/ui/InputGroup/InputGroup.styles.ts +0 -53
  225. package/src/react-ui/ui/InputGroup/InputGroup.types.ts +0 -44
  226. package/src/react-ui/ui/InputGroup/index.tsx +0 -149
  227. package/src/react-ui/ui/Label/Label.styles.ts +0 -10
  228. package/src/react-ui/ui/Label/Label.types.ts +0 -9
  229. package/src/react-ui/ui/Label/index.tsx +0 -27
  230. package/src/react-ui/ui/Menu/Menu.styles.ts +0 -71
  231. package/src/react-ui/ui/Menu/Menu.types.ts +0 -425
  232. package/src/react-ui/ui/Menu/index.tsx +0 -900
  233. package/src/react-ui/ui/Popover/Popover.styles.ts +0 -55
  234. package/src/react-ui/ui/Popover/Popover.types.ts +0 -261
  235. package/src/react-ui/ui/Popover/index.tsx +0 -422
  236. package/src/react-ui/ui/Progress/Progress.styles.ts +0 -36
  237. package/src/react-ui/ui/Progress/Progress.types.ts +0 -162
  238. package/src/react-ui/ui/Progress/index.tsx +0 -254
  239. package/src/react-ui/ui/Select/Select.styles.ts +0 -30
  240. package/src/react-ui/ui/Select/Select.types.ts +0 -51
  241. package/src/react-ui/ui/Select/index.tsx +0 -225
  242. package/src/react-ui/ui/Separator/Separator.styles.ts +0 -10
  243. package/src/react-ui/ui/Separator/Separator.types.ts +0 -10
  244. package/src/react-ui/ui/Separator/index.tsx +0 -37
  245. package/src/react-ui/ui/Switch/Switch.styles.ts +0 -50
  246. package/src/react-ui/ui/Switch/Switch.types.ts +0 -155
  247. package/src/react-ui/ui/Switch/index.tsx +0 -253
  248. package/src/react-ui/ui/Tabs/Tabs.css +0 -39
  249. package/src/react-ui/ui/Tabs/Tabs.styles.ts +0 -148
  250. package/src/react-ui/ui/Tabs/Tabs.types.ts +0 -255
  251. package/src/react-ui/ui/Tabs/index.tsx +0 -529
  252. package/src/react-ui/ui/TextFlow/TextFlow.styles.ts +0 -36
  253. package/src/react-ui/ui/TextFlow/TextFlow.types.ts +0 -118
  254. package/src/react-ui/ui/TextFlow/index.tsx +0 -276
  255. package/src/react-ui/ui/Textarea/Textarea.styles.ts +0 -10
  256. package/src/react-ui/ui/Textarea/Textarea.types.ts +0 -9
  257. package/src/react-ui/ui/Textarea/index.tsx +0 -27
  258. package/src/react-ui/ui/Tooltip/Tooltip.styles.ts +0 -43
  259. package/src/react-ui/ui/Tooltip/Tooltip.types.ts +0 -253
  260. package/src/react-ui/ui/Tooltip/index.tsx +0 -394
  261. package/src/react-ui/ui/index.ts +0 -41
  262. package/src/types/css-modules.d.ts +0 -18
@@ -1,227 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>v8b — Isolate CSS culprit</title>
7
- <style>
8
- :root {
9
- --fg: #e2e8f0; --bg: #0f172a; --card: #1e293b;
10
- --muted: #64748b; --border: #334155; --accent: #e2e8f0;
11
- --dt-dur: 0.22s; --dt-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
12
- --dt-indicator-dur: 0.3s; --dt-indicator-ease: cubic-bezier(0.4, 0, 0.2, 1);
13
- }
14
- * { box-sizing: border-box; margin: 0; }
15
- body {
16
- min-height: 100vh; display: flex; flex-direction: column; align-items: center;
17
- padding: 3rem 1rem; gap: 2rem; background: var(--bg);
18
- font-family: system-ui, sans-serif; color: var(--fg);
19
- }
20
- h2 { font-size: 1rem; }
21
- h3 { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 2px; }
22
- p.note { color: var(--muted); font-size: 10px; max-width: 200px; text-align: center; }
23
- .row { display: flex; gap: 3rem; flex-wrap: wrap; justify-content: center; }
24
- .col { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
25
- button {
26
- padding: 0.5rem 1.5rem; border-radius: 8px; border: 1px solid var(--border);
27
- background: var(--card); color: var(--fg); cursor: pointer; font-size: 0.8rem;
28
- }
29
-
30
- /* ════ Gooey canvas — EXACT same as v8 prototype ════ */
31
- .gooey-canvas {
32
- position: absolute; inset: 0;
33
- border-radius: 9999px;
34
- pointer-events: none;
35
- transform: translateZ(0);
36
- contain: layout style;
37
- overflow: visible;
38
- }
39
- .gooey-canvas svg { position: absolute; overflow: visible; }
40
-
41
- /* ════ Wrapper (same in all variants) ════ */
42
- .demo {
43
- position: relative;
44
- width: 260px; height: 38px;
45
- margin-top: 20px;
46
- border-radius: 9999px;
47
- }
48
-
49
- /* ════ React-like wrappers ════ */
50
- .dt-root {
51
- position: relative; padding: 2px; user-select: none;
52
- height: 38px; width: 260px; font-size: 12px; border-radius: 9999px;
53
- /* filter mode: */
54
- background: transparent; border: 1px solid transparent;
55
- overflow: visible;
56
- }
57
- .dt-track {
58
- position: relative; display: grid;
59
- grid-template-columns: repeat(4, 1fr);
60
- place-items: center; width: 100%; height: 100%;
61
- z-index: 1;
62
- }
63
- .dt-group {
64
- grid-column: span 2; position: relative;
65
- width: 100%; height: 100%;
66
- display: grid; grid-template-columns: repeat(2, 1fr);
67
- container-type: size; overflow: hidden;
68
- }
69
- .dt-indicator {
70
- position: absolute; width: 50%; left: 50%; top: 0; bottom: 0;
71
- background: var(--accent); border-radius: 9999px;
72
- pointer-events: none; z-index: 0;
73
- transition: left var(--dt-indicator-dur) var(--dt-indicator-ease);
74
- }
75
- .dt-option {
76
- display: inline-grid; place-items: center;
77
- cursor: pointer; font-weight: 500; z-index: 2;
78
- height: 100%; width: 100%; grid-column: span 2;
79
- }
80
- .dt-group label {
81
- display: inline-grid; place-items: center;
82
- cursor: pointer; font-weight: 500; z-index: 2;
83
- height: 100%; width: 100%; color: var(--muted);
84
- transition: color var(--dt-dur) var(--dt-ease), opacity var(--dt-dur) var(--dt-ease);
85
- }
86
- </style>
87
- </head>
88
- <body>
89
-
90
- <h2>v8b — What kills the gooey in Safari?</h2>
91
- <button onclick="toggleAll()">Toggle All</button>
92
-
93
- <div class="row">
94
- <div class="col">
95
- <h3>1: Bare (v8 exact)</h3>
96
- <div class="demo"><div class="gooey-canvas" id="c1"></div></div>
97
- </div>
98
-
99
- <div class="col">
100
- <h3>2: + dt-root only</h3>
101
- <p class="note">Root wrapper, no track/group</p>
102
- <div class="dt-root"><div class="gooey-canvas" id="c2"></div></div>
103
- </div>
104
-
105
- <div class="col">
106
- <h3>3: + track (z-index:1)</h3>
107
- <p class="note">Root + track with z-index:1</p>
108
- <div class="dt-root">
109
- <div class="gooey-canvas" id="c3"></div>
110
- <div class="dt-track"></div>
111
- </div>
112
- </div>
113
- </div>
114
-
115
- <div class="row" style="margin-top:1.5rem">
116
- <div class="col">
117
- <h3>4: + group (container+overflow)</h3>
118
- <p class="note">Full structure with labels</p>
119
- <div class="dt-root">
120
- <div class="gooey-canvas" id="c4"></div>
121
- <div class="dt-track">
122
- <div class="dt-indicator"></div>
123
- <label class="dt-option"><span>Free</span></label>
124
- <div class="dt-group">
125
- <label><span>Solo</span></label>
126
- <label><span>Team</span></label>
127
- </div>
128
- </div>
129
- </div>
130
- </div>
131
-
132
- <div class="col">
133
- <h3>5: Full BUT no container-type</h3>
134
- <p class="note">Group: container-type:normal, overflow:visible</p>
135
- <div class="dt-root">
136
- <div class="gooey-canvas" id="c5"></div>
137
- <div class="dt-track">
138
- <div class="dt-indicator"></div>
139
- <label class="dt-option"><span>Free</span></label>
140
- <div class="dt-group" style="container-type:normal;overflow:visible;">
141
- <label><span>Solo</span></label>
142
- <label><span>Team</span></label>
143
- </div>
144
- </div>
145
- </div>
146
- </div>
147
-
148
- <div class="col">
149
- <h3>6: Full BUT track z-index:auto</h3>
150
- <p class="note">Track without stacking context</p>
151
- <div class="dt-root">
152
- <div class="gooey-canvas" id="c6"></div>
153
- <div class="dt-track" style="z-index:auto;">
154
- <div class="dt-indicator"></div>
155
- <label class="dt-option"><span>Free</span></label>
156
- <div class="dt-group">
157
- <label><span>Solo</span></label>
158
- <label><span>Team</span></label>
159
- </div>
160
- </div>
161
- </div>
162
- </div>
163
- </div>
164
-
165
- <script>
166
- const W=260, H=38, PAD=2, BH=15, TH=H+BH;
167
- const ER=Math.min(9999,H/2), IPX=W*0.2, BW=W-2*IPX;
168
- const BR=Math.min(ER*0.6,BH*0.45,12), FILL='#1e293b', BLUR=Math.round(H*0.15);
169
- const SPRING=`linear(0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 12.9%, 0.938 16.7%, 1.017 19.4%, 1.067, 1.099 24.3%, 1.108 26%, 1.100, 1.078 30.1%, 1.049 32.5%, 0.994 37.3%, 0.981 40.2%, 0.974 43.4%, 0.975 50.2%, 0.997 62.5%, 1.001 74.7%, 1)`;
170
- const EOUT='cubic-bezier(0.33, 1, 0.68, 1)';
171
-
172
- let gid=0;
173
- function mkSVG(el) {
174
- const id='goo-'+(++gid);
175
- const svg=document.createElementNS('http://www.w3.org/2000/svg','svg');
176
- svg.setAttribute('width',W); svg.setAttribute('height',TH);
177
- svg.setAttribute('viewBox',`0 0 ${W} ${TH}`);
178
- svg.style.cssText=`position:absolute;top:-${BH}px;left:0;overflow:visible`;
179
- svg.innerHTML=`<defs><filter id="${id}" x="-20%" y="-20%" width="140%" height="140%" color-interpolation-filters="sRGB">
180
- <feGaussianBlur in="SourceGraphic" stdDeviation="${BLUR}" result="blur"/>
181
- <feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10" result="goo"/>
182
- <feComposite in="SourceGraphic" in2="goo" operator="atop"/>
183
- </filter></defs>`;
184
-
185
- const pill=document.createElementNS('http://www.w3.org/2000/svg','rect');
186
- pill.setAttribute('x',PAD); pill.setAttribute('y',BH);
187
- pill.setAttribute('width',W-PAD*2); pill.setAttribute('height',H-PAD*2);
188
- pill.setAttribute('rx',ER); pill.setAttribute('ry',ER);
189
- pill.setAttribute('fill',FILL);
190
- svg.appendChild(pill);
191
-
192
- const b=document.createElementNS('http://www.w3.org/2000/svg','rect');
193
- b.setAttribute('x',IPX); b.setAttribute('y',BH);
194
- b.setAttribute('width',BW); b.setAttribute('height',0);
195
- b.setAttribute('rx',BR); b.setAttribute('ry',BR);
196
- b.setAttribute('fill',FILL);
197
- svg.appendChild(b);
198
-
199
- el.style.filter=`url(#${id}) drop-shadow(0 0 0.5px #334155) drop-shadow(0 0 0.5px #334155)`;
200
- el.appendChild(svg);
201
- return b;
202
- }
203
-
204
- const toggles=[];
205
- function mk(cid) {
206
- const bubble=mkSVG(document.getElementById(cid));
207
- let exp=false, anim=null, last={y:BH,h:0};
208
- toggles.push(()=>{
209
- exp=!exp;
210
- const toY=exp?0:BH, toH=exp?BH:0;
211
- if(anim) anim.cancel();
212
- anim=bubble.animate(
213
- [{y:`${last.y}px`,height:`${last.h}px`},{y:`${toY}px`,height:`${toH}px`}],
214
- {duration:exp?550:400, easing:exp?SPRING:EOUT, fill:'forwards'}
215
- );
216
- last={y:toY,h:toH};
217
- });
218
- }
219
-
220
- function init(){
221
- ['c1','c2','c3','c4','c5','c6'].forEach(mk);
222
- }
223
- function toggleAll(){toggles.forEach(fn=>fn());}
224
- document.addEventListener('DOMContentLoaded',init);
225
- </script>
226
- </body>
227
- </html>
@@ -1,419 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>DynamicToggle Prototype v6</title>
7
- <style>
8
- :root {
9
- --fg: #e2e8f0;
10
- --bg: #0f172a;
11
- --card: #1e293b;
12
- --muted: #64748b;
13
- --border: #334155;
14
- --duration: 0.22;
15
- --drop-off: 0.4;
16
- --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
17
- }
18
-
19
- * { box-sizing: border-box; margin: 0; }
20
- body {
21
- min-height: 100vh;
22
- display: flex; flex-direction: column; align-items: center;
23
- padding: 4rem 1rem; gap: 3rem;
24
- background: var(--bg);
25
- font-family: system-ui, -apple-system, sans-serif;
26
- color: var(--fg);
27
- }
28
- h3 { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 2px; }
29
- .row { display: flex; gap: 2rem; align-items: end; flex-wrap: wrap; justify-content: center; }
30
-
31
- /* Debug toggle */
32
- #debug-toggle { position: fixed; top: 1rem; right: 1rem; z-index: 999; padding: 0.5rem 1rem; border-radius: 8px; background: #334155; color: #e2e8f0; border: 1px solid #475569; cursor: pointer; font-size: 12px; }
33
-
34
- /* ================================================================
35
- * CONTROL
36
- * ================================================================ */
37
- .control {
38
- --w: 260px;
39
- --h: 38px;
40
- --radius: 9999px;
41
- --font: 0.75rem;
42
- --_r: min(var(--radius), calc(var(--h) / 2));
43
- position: relative;
44
- width: var(--w);
45
- height: var(--h);
46
- background: var(--card);
47
- border-radius: var(--radius);
48
- border: 1px solid var(--border);
49
- padding: 2px;
50
- margin-top: calc(var(--h) * 0.8);
51
- }
52
-
53
- .control__track {
54
- display: grid; place-items: center;
55
- grid-template-columns: repeat(4, 1fr);
56
- width: 100%; height: 100%;
57
- position: relative;
58
- }
59
-
60
- .indicator {
61
- position: absolute;
62
- width: 50%; left: 0; top: 0; bottom: 0;
63
- background: var(--fg);
64
- border-radius: var(--radius);
65
- transition: translate calc(var(--duration) * 1s) var(--ease);
66
- }
67
-
68
- label {
69
- display: inline-grid; place-items: center;
70
- height: 100%; width: 100%;
71
- cursor: pointer; font-size: var(--font);
72
- color: var(--fg); z-index: 2; font-weight: 500;
73
- }
74
- .control__track > label { color: var(--card); }
75
-
76
- .sr-only {
77
- position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
78
- overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0;
79
- }
80
-
81
- .premium {
82
- width: 100%; height: 100%;
83
- display: grid; position: relative;
84
- grid-template-columns: 1fr 1fr;
85
- container-type: size;
86
- }
87
- .premium, .control__track > label:nth-of-type(1) { grid-column: span 2; }
88
- .premium::before { display: none; }
89
-
90
- .premium .indicator {
91
- background: var(--fg); left: 50%; top: 0;
92
- translate: -50% 0;
93
- transition: translate calc(var(--duration) * 1s) var(--ease),
94
- clip-path calc(var(--duration) * 1s) var(--ease),
95
- background calc(var(--duration) * 1s) var(--ease);
96
- clip-path: inset(73cqh calc(50% + 1px) calc(27cqh - 2px) calc(50% - 3px) round var(--radius));
97
- }
98
-
99
- .premium label span {
100
- display: grid; place-items: center; height: 100%; width: 100%;
101
- transition: scale calc(var(--duration) * 1s) var(--ease);
102
- }
103
- .premium label:nth-of-type(1) span { scale: 0.75; transform-origin: 150% 150%; border-radius: var(--radius); }
104
- .premium label:nth-of-type(2) span { scale: 0.75; transform-origin: -65% 150%; border-radius: var(--radius); }
105
- .premium label {
106
- color: var(--muted);
107
- transition: color calc(var(--duration) * 1s) var(--ease), opacity calc(var(--duration) * 1s) var(--ease);
108
- }
109
-
110
- .control__track:has(> :checked) > label { color: var(--card); }
111
- .control__track:not(:has(> :checked)) > label { color: var(--fg); opacity: var(--drop-off); }
112
- .control__track:not(:has(> :checked)) > .indicator { translate: 100% 0; }
113
- .control__track:has(> :checked) .premium .indicator { background: var(--muted); }
114
- .control__track:has(> :checked) .premium label { color: var(--muted); }
115
-
116
- .premium:has(:checked) label span { scale: 1; }
117
- .premium:has(:checked) .indicator { background: var(--card); clip-path: inset(0 0 0 0 round var(--radius)); }
118
- .premium:has(:checked) label { color: var(--muted); opacity: 0.75; }
119
- .premium:has(:nth-of-type(1):checked) label:nth-of-type(1),
120
- .premium:has(:nth-of-type(2):checked) label:nth-of-type(2) { color: var(--fg); opacity: 1; }
121
- .premium:has(:nth-of-type(1):checked) .indicator { translate: -100% 0; }
122
- .premium:has(:nth-of-type(2):checked) .indicator { translate: 0 0; }
123
-
124
- /* ================================================================
125
- * BUBBLE — full width, ears at bottom corners
126
- * Ears positioned at the junction line, curving inward
127
- * ================================================================ */
128
- .bubble {
129
- position: absolute;
130
- left: var(--_r);
131
- right: var(--_r);
132
- bottom: 100%;
133
- margin-bottom: -1px;
134
-
135
- display: flex;
136
- align-items: center;
137
- justify-content: center;
138
-
139
- background: var(--card);
140
- border: 1px solid var(--border);
141
- border-bottom: none;
142
- border-radius: calc(var(--_r) * 0.4) calc(var(--_r) * 0.4) 0 0;
143
-
144
- font-size: var(--font);
145
- font-weight: 500;
146
- color: var(--fg);
147
- white-space: nowrap;
148
- pointer-events: none;
149
-
150
- height: 0;
151
- padding: 0;
152
- opacity: 0;
153
- overflow: hidden;
154
-
155
- transition:
156
- height calc(var(--duration) * 1.5s) var(--ease),
157
- padding calc(var(--duration) * 1.5s) var(--ease),
158
- opacity calc(var(--duration) * 1s) var(--ease);
159
- }
160
-
161
- /*
162
- * Concave ears — positioned BELOW the bubble, extending into the
163
- * pill's border-radius corner area. The transparent quarter-circle
164
- * reveals the page bg, creating the concave junction.
165
- *
166
- * All positions adjustable via --ear-* CSS vars (control panel).
167
- */
168
- .bubble::before,
169
- .bubble::after {
170
- content: '';
171
- position: absolute;
172
- bottom: calc(-5px + var(--ear-ly, 0px));
173
- width: var(--_r);
174
- height: var(--_r);
175
- pointer-events: none;
176
- opacity: 0;
177
- transition: opacity calc(var(--duration) * 1s) var(--ease);
178
- }
179
- .bubble::before {
180
- left: calc(var(--_r) * -1 + var(--ear-lx, 0px));
181
- background: radial-gradient(
182
- circle at var(--ear-co-l, 0% 0%),
183
- transparent calc(var(--_r) - 1.5px),
184
- var(--border) calc(var(--_r) - 0.5px),
185
- var(--card) var(--_r)
186
- );
187
- }
188
- .bubble::after {
189
- right: calc(var(--_r) * -1 + var(--ear-rx, 0px));
190
- background: radial-gradient(
191
- circle at var(--ear-co-r, 100% 0%),
192
- transparent calc(var(--_r) - 1.5px),
193
- var(--border) calc(var(--_r) - 0.5px),
194
- var(--card) var(--_r)
195
- );
196
- }
197
- .control:has(.premium :checked) .bubble::before,
198
- .control:has(.premium :checked) .bubble::after {
199
- opacity: 1;
200
- }
201
-
202
- /* DEBUG: show ear boundaries */
203
- [data-debug="true"] .bubble { outline: 2px dashed red; }
204
- [data-debug="true"] .bubble::before { opacity: 1 !important; outline: 1px dashed cyan; }
205
- [data-debug="true"] .bubble::after { opacity: 1 !important; outline: 1px dashed magenta; }
206
-
207
- /* Active: bubble grows + ears show */
208
- .control:has(.premium :checked) .bubble {
209
- height: calc(var(--h) * 0.7);
210
- padding: 0 0.75em;
211
- opacity: 1;
212
- overflow: visible;
213
- }
214
- .control:has(.premium :checked) .bubble::before,
215
- .control:has(.premium :checked) .bubble::after {
216
- opacity: 1;
217
- }
218
-
219
- /* SIZES */
220
- .control.xs { --w: 170px; --h: 26px; --font: 9px; }
221
- .control.sm { --w: 210px; --h: 30px; --font: 10px; }
222
- .control.lg { --w: 320px; --h: 44px; --font: 14px; }
223
- .control.xl { --w: 400px; --h: 52px; --font: 16px; }
224
-
225
- /* SHAPES */
226
- .control.rounded { --radius: 12px; }
227
- .control.square { --radius: 6px; }
228
- </style>
229
- </head>
230
- <body>
231
-
232
- <div id="controls" style="position:fixed;top:1rem;right:1rem;z-index:999;background:#1e293b;border:1px solid #475569;border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:0.5rem;font-size:11px;color:#94a3b8;min-width:280px;">
233
- <div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem">
234
- <strong style="color:#e2e8f0">Ear Controls</strong>
235
- <button onclick="if(document.body.dataset.debug==='true'){document.body.dataset.debug='false'}else{document.body.dataset.debug='true'}" style="padding:2px 8px;border-radius:4px;background:#334155;color:#e2e8f0;border:1px solid #475569;cursor:pointer;font-size:10px">Debug Colors</button>
236
- </div>
237
-
238
- <label>Left X: <span id="v-lx">0</span>px
239
- <input type="range" min="-50" max="50" value="0" oninput="document.documentElement.style.setProperty('--ear-lx',this.value+'px');document.getElementById('v-lx').textContent=this.value" style="width:100%">
240
- </label>
241
- <label>Left Y (bottom offset): <span id="v-ly">0</span>
242
- <input type="range" min="-50" max="50" value="0" oninput="document.documentElement.style.setProperty('--ear-ly',this.value+'px');document.getElementById('v-ly').textContent=this.value" style="width:100%">
243
- </label>
244
- <label>Right X: <span id="v-rx">0</span>px
245
- <input type="range" min="-50" max="50" value="0" oninput="document.documentElement.style.setProperty('--ear-rx',this.value+'px');document.getElementById('v-rx').textContent=this.value" style="width:100%">
246
- </label>
247
- <label>Right Y (bottom offset): <span id="v-ry">0</span>
248
- <input type="range" min="-50" max="50" value="0" oninput="document.documentElement.style.setProperty('--ear-ry',this.value+'px');document.getElementById('v-ry').textContent=this.value" style="width:100%">
249
- </label>
250
- <div style="margin-top:0.25rem;border-top:1px solid #334155;padding-top:0.25rem">
251
- <strong style="color:#e2e8f0;font-size:10px">Quick: Both Y</strong>
252
- </div>
253
- <label>Both Y offset: <span id="v-by">0</span>
254
- <input type="range" min="-50" max="50" value="0" oninput="var v=this.value+'px';document.documentElement.style.setProperty('--ear-ly',v);document.documentElement.style.setProperty('--ear-ry',v);document.getElementById('v-by').textContent=this.value;document.getElementById('v-ly').textContent=this.value;document.getElementById('v-ry').textContent=this.value" style="width:100%">
255
- </label>
256
- <label>Circle Origin Left: <span id="v-co1">0% 0%</span>
257
- <select onchange="document.documentElement.style.setProperty('--ear-co-l',this.value);document.getElementById('v-co1').textContent=this.value" style="width:100%;background:#0f172a;color:#e2e8f0;border:1px solid #475569;border-radius:4px;padding:2px">
258
- <option value="0% 0%">0% 0% (top-left)</option>
259
- <option value="100% 0%">100% 0% (top-right)</option>
260
- <option value="100% 100%">100% 100% (bottom-right)</option>
261
- <option value="0% 100%">0% 100% (bottom-left)</option>
262
- <option value="50% 50%">50% 50% (center)</option>
263
- </select>
264
- </label>
265
- <label>Circle Origin Right: <span id="v-co2">100% 0%</span>
266
- <select onchange="document.documentElement.style.setProperty('--ear-co-r',this.value);document.getElementById('v-co2').textContent=this.value" style="width:100%;background:#0f172a;color:#e2e8f0;border:1px solid #475569;border-radius:4px;padding:2px">
267
- <option value="100% 0%">100% 0% (top-right)</option>
268
- <option value="0% 0%">0% 0% (top-left)</option>
269
- <option value="0% 100%">0% 100% (bottom-left)</option>
270
- <option value="100% 100%">100% 100% (bottom-right)</option>
271
- <option value="50% 50%">50% 50% (center)</option>
272
- </select>
273
- </label>
274
- <div style="margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid #334155;font-size:10px;color:#64748b" id="css-out"></div>
275
- <button onclick="
276
- var s=getComputedStyle(document.documentElement);
277
- document.getElementById('css-out').textContent=
278
- 'left:'+s.getPropertyValue('--ear-lx')+' bottom:'+s.getPropertyValue('--ear-ly')+
279
- ' | right:'+s.getPropertyValue('--ear-rx')+' bottom:'+s.getPropertyValue('--ear-ry')+
280
- ' | size:'+s.getPropertyValue('--ear-pct')+'% | L-origin:'+s.getPropertyValue('--ear-co-l')+
281
- ' | R-origin:'+s.getPropertyValue('--ear-co-r');
282
- " style="padding:4px 8px;border-radius:4px;background:#334155;color:#e2e8f0;border:1px solid #475569;cursor:pointer;font-size:10px">Copy Current Values</button>
283
- </div>
284
-
285
- <h3>All Sizes — Pill</h3>
286
- <div class="row">
287
- <div><h3>XS</h3>
288
- <div class="control xs">
289
- <div class="bubble">Changes</div>
290
- <div class="control__track"><div class="indicator"></div>
291
- <label for="xs-a">Tree</label><input class="sr-only" type="radio" name="xs" id="xs-a">
292
- <div class="premium"><div class="indicator"></div>
293
- <label for="xs-b"><span>Flat</span></label><input class="sr-only" type="radio" name="xs" id="xs-b" checked>
294
- <label for="xs-c"><span>Grp</span></label><input class="sr-only" type="radio" name="xs" id="xs-c">
295
- </div></div></div></div>
296
- <div><h3>SM</h3>
297
- <div class="control sm">
298
- <div class="bubble">Changes</div>
299
- <div class="control__track"><div class="indicator"></div>
300
- <label for="sm-a">Tree</label><input class="sr-only" type="radio" name="sm" id="sm-a">
301
- <div class="premium"><div class="indicator"></div>
302
- <label for="sm-b"><span>Flat</span></label><input class="sr-only" type="radio" name="sm" id="sm-b" checked>
303
- <label for="sm-c"><span>Grp</span></label><input class="sr-only" type="radio" name="sm" id="sm-c">
304
- </div></div></div></div>
305
- <div><h3>Default</h3>
306
- <div class="control">
307
- <div class="bubble">Premium</div>
308
- <div class="control__track"><div class="indicator"></div>
309
- <label for="df-a">Free</label><input class="sr-only" type="radio" name="df" id="df-a">
310
- <div class="premium"><div class="indicator"></div>
311
- <label for="df-b"><span>Solo</span></label><input class="sr-only" type="radio" name="df" id="df-b" checked>
312
- <label for="df-c"><span>Team</span></label><input class="sr-only" type="radio" name="df" id="df-c">
313
- </div></div></div></div>
314
- <div><h3>LG</h3>
315
- <div class="control lg">
316
- <div class="bubble">Billing</div>
317
- <div class="control__track"><div class="indicator"></div>
318
- <label for="lg-a">Annual</label><input class="sr-only" type="radio" name="lg" id="lg-a">
319
- <div class="premium"><div class="indicator"></div>
320
- <label for="lg-b"><span>Monthly</span></label><input class="sr-only" type="radio" name="lg" id="lg-b" checked>
321
- <label for="lg-c"><span>Weekly</span></label><input class="sr-only" type="radio" name="lg" id="lg-c">
322
- </div></div></div></div>
323
- <div><h3>XL</h3>
324
- <div class="control xl">
325
- <div class="bubble">Enterprise</div>
326
- <div class="control__track"><div class="indicator"></div>
327
- <label for="xl-a">Standard</label><input class="sr-only" type="radio" name="xl" id="xl-a">
328
- <div class="premium"><div class="indicator"></div>
329
- <label for="xl-b"><span>Business</span></label><input class="sr-only" type="radio" name="xl" id="xl-b" checked>
330
- <label for="xl-c"><span>Custom</span></label><input class="sr-only" type="radio" name="xl" id="xl-c">
331
- </div></div></div></div>
332
- </div>
333
-
334
- <h3>Rounded</h3>
335
- <div class="row">
336
- <div class="control sm rounded">
337
- <div class="bubble">Mode</div>
338
- <div class="control__track"><div class="indicator"></div>
339
- <label for="r1-a">Off</label><input class="sr-only" type="radio" name="r1" id="r1-a">
340
- <div class="premium"><div class="indicator"></div>
341
- <label for="r1-b"><span>Auto</span></label><input class="sr-only" type="radio" name="r1" id="r1-b" checked>
342
- <label for="r1-c"><span>Manual</span></label><input class="sr-only" type="radio" name="r1" id="r1-c">
343
- </div></div></div>
344
- <div class="control rounded">
345
- <div class="bubble">Theme</div>
346
- <div class="control__track"><div class="indicator"></div>
347
- <label for="r2-a">System</label><input class="sr-only" type="radio" name="r2" id="r2-a">
348
- <div class="premium"><div class="indicator"></div>
349
- <label for="r2-b"><span>Light</span></label><input class="sr-only" type="radio" name="r2" id="r2-b" checked>
350
- <label for="r2-c"><span>Dark</span></label><input class="sr-only" type="radio" name="r2" id="r2-c">
351
- </div></div></div>
352
- <div class="control lg rounded">
353
- <div class="bubble">Advanced</div>
354
- <div class="control__track"><div class="indicator"></div>
355
- <label for="r3-a">Basic</label><input class="sr-only" type="radio" name="r3" id="r3-a">
356
- <div class="premium"><div class="indicator"></div>
357
- <label for="r3-b"><span>Pro</span></label><input class="sr-only" type="radio" name="r3" id="r3-b" checked>
358
- <label for="r3-c"><span>Expert</span></label><input class="sr-only" type="radio" name="r3" id="r3-c">
359
- </div></div></div>
360
- </div>
361
-
362
- <h3>Square</h3>
363
- <div class="row">
364
- <div class="control sm square">
365
- <div class="bubble">Group</div>
366
- <div class="control__track"><div class="indicator"></div>
367
- <label for="sq1-a">A</label><input class="sr-only" type="radio" name="sq1" id="sq1-a">
368
- <div class="premium"><div class="indicator"></div>
369
- <label for="sq1-b"><span>B</span></label><input class="sr-only" type="radio" name="sq1" id="sq1-b" checked>
370
- <label for="sq1-c"><span>C</span></label><input class="sr-only" type="radio" name="sq1" id="sq1-c">
371
- </div></div></div>
372
- <div class="control square">
373
- <div class="bubble">Output</div>
374
- <div class="control__track"><div class="indicator"></div>
375
- <label for="sq2-a">Input</label><input class="sr-only" type="radio" name="sq2" id="sq2-a">
376
- <div class="premium"><div class="indicator"></div>
377
- <label for="sq2-b"><span>JSON</span></label><input class="sr-only" type="radio" name="sq2" id="sq2-b" checked>
378
- <label for="sq2-c"><span>XML</span></label><input class="sr-only" type="radio" name="sq2" id="sq2-c">
379
- </div></div></div>
380
- <div class="control lg square">
381
- <div class="bubble">Target</div>
382
- <div class="control__track"><div class="indicator"></div>
383
- <label for="sq3-a">Source</label><input class="sr-only" type="radio" name="sq3" id="sq3-a">
384
- <div class="premium"><div class="indicator"></div>
385
- <label for="sq3-b"><span>Dev</span></label><input class="sr-only" type="radio" name="sq3" id="sq3-b" checked>
386
- <label for="sq3-c"><span>Prod</span></label><input class="sr-only" type="radio" name="sq3" id="sq3-c">
387
- </div></div></div>
388
- </div>
389
-
390
- <h3>Collapsed (click left option)</h3>
391
- <div class="row">
392
- <div class="control">
393
- <div class="bubble">Premium</div>
394
- <div class="control__track"><div class="indicator"></div>
395
- <label for="ps-a">Free</label><input class="sr-only" type="radio" name="ps" id="ps-a" checked>
396
- <div class="premium"><div class="indicator"></div>
397
- <label for="ps-b"><span>Solo</span></label><input class="sr-only" type="radio" name="ps" id="ps-b">
398
- <label for="ps-c"><span>Team</span></label><input class="sr-only" type="radio" name="ps" id="ps-c">
399
- </div></div></div>
400
- <div class="control rounded">
401
- <div class="bubble">Premium</div>
402
- <div class="control__track"><div class="indicator"></div>
403
- <label for="ps2-a">Free</label><input class="sr-only" type="radio" name="ps2" id="ps2-a" checked>
404
- <div class="premium"><div class="indicator"></div>
405
- <label for="ps2-b"><span>Solo</span></label><input class="sr-only" type="radio" name="ps2" id="ps2-b">
406
- <label for="ps2-c"><span>Team</span></label><input class="sr-only" type="radio" name="ps2" id="ps2-c">
407
- </div></div></div>
408
- <div class="control square">
409
- <div class="bubble">Premium</div>
410
- <div class="control__track"><div class="indicator"></div>
411
- <label for="ps3-a">Free</label><input class="sr-only" type="radio" name="ps3" id="ps3-a" checked>
412
- <div class="premium"><div class="indicator"></div>
413
- <label for="ps3-b"><span>Solo</span></label><input class="sr-only" type="radio" name="ps3" id="ps3-b">
414
- <label for="ps3-c"><span>Team</span></label><input class="sr-only" type="radio" name="ps3" id="ps3-c">
415
- </div></div></div>
416
- </div>
417
-
418
- </body>
419
- </html>