@mks2508/mks-ui 0.7.0 → 0.8.1

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 (214) hide show
  1. package/dist/react-ui/blocks/Terminal/TerminalDisplay.styles.d.ts +1 -1
  2. package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts +1 -1
  3. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts +1 -1
  4. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts +1 -1
  5. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts +1 -1
  6. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts +1 -1
  7. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts +1 -1
  8. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts +1 -1
  9. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts +1 -1
  10. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts +1 -1
  11. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts +1 -1
  12. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts +1 -1
  13. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts +1 -1
  14. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts +1 -1
  15. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts +1 -1
  16. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts +1 -1
  17. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.types.d.ts +1 -1
  18. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts +1 -1
  19. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts +1 -1
  20. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts +1 -1
  21. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts +1 -1
  22. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts +0 -1
  23. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts.map +1 -1
  24. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.js +56 -18
  25. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts +1 -1
  26. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts +1 -1
  27. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.d.ts +1 -1
  28. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.d.ts +1 -1
  29. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts +1 -1
  30. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts +1 -1
  31. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts +1 -1
  32. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts +1 -1
  33. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts +1 -1
  34. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts +1 -1
  35. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts +1 -1
  36. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.types.d.ts +1 -1
  37. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts +1 -1
  38. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts +1 -1
  39. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts +1 -1
  40. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts +1 -1
  41. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts +1 -1
  42. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts +1 -1
  43. package/dist/react-ui/components/MorphingPopover/MorphingPopover.types.d.ts +8 -3
  44. package/dist/react-ui/components/MorphingPopover/MorphingPopover.types.d.ts.map +1 -1
  45. package/dist/react-ui/index.js +24 -1
  46. package/dist/react-ui/primitives/AutoHeight/index.d.ts +1 -1
  47. package/dist/react-ui/primitives/CountingNumber/index.d.ts +1 -1
  48. package/dist/react-ui/primitives/DotMatrix/DotMatrix.types.d.ts +109 -0
  49. package/dist/react-ui/primitives/DotMatrix/DotMatrix.types.d.ts.map +1 -0
  50. package/dist/react-ui/primitives/DotMatrix/dot-matrix-B8DHjPGb.css +364 -0
  51. package/dist/react-ui/primitives/DotMatrix/dot-matrix.js +0 -0
  52. package/dist/react-ui/primitives/DotMatrix/index.d.ts +7 -0
  53. package/dist/react-ui/primitives/DotMatrix/index.d.ts.map +1 -0
  54. package/dist/react-ui/primitives/DotMatrix/index.js +185 -0
  55. package/dist/react-ui/primitives/DotMatrix/patterns.d.ts +32 -0
  56. package/dist/react-ui/primitives/DotMatrix/patterns.d.ts.map +1 -0
  57. package/dist/react-ui/primitives/DotMatrix/patterns.js +175 -0
  58. package/dist/react-ui/primitives/GooeyMorphingSurface/GooeyMorphingSurface.types.d.ts +100 -0
  59. package/dist/react-ui/primitives/GooeyMorphingSurface/GooeyMorphingSurface.types.d.ts.map +1 -0
  60. package/dist/react-ui/primitives/GooeyMorphingSurface/GooeyMorphingSurface.types.js +20 -0
  61. package/dist/react-ui/primitives/GooeyMorphingSurface/gooey-morphing-surface-DfdjAg5U.css +112 -0
  62. package/dist/react-ui/primitives/GooeyMorphingSurface/gooey-morphing-surface.js +0 -0
  63. package/dist/react-ui/primitives/GooeyMorphingSurface/index.d.ts +36 -0
  64. package/dist/react-ui/primitives/GooeyMorphingSurface/index.d.ts.map +1 -0
  65. package/dist/react-ui/primitives/GooeyMorphingSurface/index.js +141 -0
  66. package/dist/react-ui/primitives/index.d.ts +2 -0
  67. package/dist/react-ui/primitives/index.d.ts.map +1 -1
  68. package/dist/react-ui/primitives/index.js +4 -0
  69. package/dist/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.d.ts +1 -1
  70. package/dist/react-ui/primitives/waapi/SlidingText/SlidingText.styles.d.ts +1 -1
  71. package/dist/react-ui/ui/Accordion/Accordion.styles.d.ts +1 -1
  72. package/dist/react-ui/ui/Accordion/Accordion.types.d.ts +1 -1
  73. package/dist/react-ui/ui/AlertDialog/AlertDialog.styles.d.ts +1 -1
  74. package/dist/react-ui/ui/AlertDialog/AlertDialog.types.d.ts +1 -1
  75. package/dist/react-ui/ui/Badge/Badge.styles.d.ts +2 -2
  76. package/dist/react-ui/ui/Badge/Badge.types.d.ts +1 -1
  77. package/dist/react-ui/ui/Button/Button.styles.d.ts +2 -2
  78. package/dist/react-ui/ui/Button/Button.types.d.ts +1 -1
  79. package/dist/react-ui/ui/Card/Card.styles.d.ts +1 -1
  80. package/dist/react-ui/ui/Card/Card.types.d.ts +1 -1
  81. package/dist/react-ui/ui/Checkbox/Checkbox.styles.d.ts +1 -1
  82. package/dist/react-ui/ui/Checkbox/Checkbox.types.d.ts +1 -1
  83. package/dist/react-ui/ui/Combobox/Combobox.styles.d.ts +1 -1
  84. package/dist/react-ui/ui/Combobox/Combobox.types.d.ts +1 -1
  85. package/dist/react-ui/ui/CornerBracket/CornerBracket.styles.d.ts +1 -1
  86. package/dist/react-ui/ui/CornerBracket/CornerBracket.types.d.ts +1 -1
  87. package/dist/react-ui/ui/DataCard/DataCard.styles.d.ts +2 -2
  88. package/dist/react-ui/ui/DataCard/DataCard.types.d.ts +1 -1
  89. package/dist/react-ui/ui/DataCard/index.d.ts +1 -1
  90. package/dist/react-ui/ui/Dialog/Dialog.styles.d.ts +1 -1
  91. package/dist/react-ui/ui/Dialog/Dialog.types.d.ts +1 -1
  92. package/dist/react-ui/ui/DropdownMenu/DropdownMenu.styles.d.ts +1 -1
  93. package/dist/react-ui/ui/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  94. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -1
  95. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +1 -1
  96. package/dist/react-ui/ui/Field/Field.styles.d.ts +1 -1
  97. package/dist/react-ui/ui/Field/Field.types.d.ts +1 -1
  98. package/dist/react-ui/ui/FileIcon/FileIcon.styles.d.ts +25 -0
  99. package/dist/react-ui/ui/FileIcon/FileIcon.styles.d.ts.map +1 -0
  100. package/dist/react-ui/ui/FileIcon/FileIcon.styles.js +31 -0
  101. package/dist/react-ui/ui/FileIcon/FileIcon.types.d.ts +89 -0
  102. package/dist/react-ui/ui/FileIcon/FileIcon.types.d.ts.map +1 -0
  103. package/dist/react-ui/ui/FileIcon/index.d.ts +46 -0
  104. package/dist/react-ui/ui/FileIcon/index.d.ts.map +1 -0
  105. package/dist/react-ui/ui/FileIcon/index.js +138 -0
  106. package/dist/react-ui/ui/FileItem/FileItem.styles.d.ts +47 -0
  107. package/dist/react-ui/ui/FileItem/FileItem.styles.d.ts.map +1 -0
  108. package/dist/react-ui/ui/FileItem/FileItem.styles.js +60 -0
  109. package/dist/react-ui/ui/FileItem/FileItem.types.d.ts +84 -0
  110. package/dist/react-ui/ui/FileItem/FileItem.types.d.ts.map +1 -0
  111. package/dist/react-ui/ui/FileItem/index.d.ts +48 -0
  112. package/dist/react-ui/ui/FileItem/index.d.ts.map +1 -0
  113. package/dist/react-ui/ui/FileItem/index.js +124 -0
  114. package/dist/react-ui/ui/FilePanel/FilePanel.styles.d.ts +34 -0
  115. package/dist/react-ui/ui/FilePanel/FilePanel.styles.d.ts.map +1 -0
  116. package/dist/react-ui/ui/FilePanel/FilePanel.styles.js +57 -0
  117. package/dist/react-ui/ui/FilePanel/FilePanel.types.d.ts +55 -0
  118. package/dist/react-ui/ui/FilePanel/FilePanel.types.d.ts.map +1 -0
  119. package/dist/react-ui/ui/FilePanel/index.d.ts +55 -0
  120. package/dist/react-ui/ui/FilePanel/index.d.ts.map +1 -0
  121. package/dist/react-ui/ui/FilePanel/index.js +107 -0
  122. package/dist/react-ui/ui/FileTree/FileTree.styles.d.ts +31 -0
  123. package/dist/react-ui/ui/FileTree/FileTree.styles.d.ts.map +1 -0
  124. package/dist/react-ui/ui/FileTree/FileTree.styles.js +45 -0
  125. package/dist/react-ui/ui/FileTree/FileTree.types.d.ts +95 -0
  126. package/dist/react-ui/ui/FileTree/FileTree.types.d.ts.map +1 -0
  127. package/dist/react-ui/ui/FileTree/index.d.ts +60 -0
  128. package/dist/react-ui/ui/FileTree/index.d.ts.map +1 -0
  129. package/dist/react-ui/ui/FileTree/index.js +226 -0
  130. package/dist/react-ui/ui/GooeyButton/GooeyButton.types.d.ts +35 -0
  131. package/dist/react-ui/ui/GooeyButton/GooeyButton.types.d.ts.map +1 -0
  132. package/dist/react-ui/ui/GooeyButton/gooey-button-8rHWiw0w.css +47 -0
  133. package/dist/react-ui/ui/GooeyButton/gooey-button.js +0 -0
  134. package/dist/react-ui/ui/GooeyButton/index.d.ts +26 -0
  135. package/dist/react-ui/ui/GooeyButton/index.d.ts.map +1 -0
  136. package/dist/react-ui/ui/GooeyButton/index.js +118 -0
  137. package/dist/react-ui/ui/Input/Input.styles.d.ts +1 -1
  138. package/dist/react-ui/ui/Input/Input.types.d.ts +1 -1
  139. package/dist/react-ui/ui/InputGroup/InputGroup.styles.d.ts +1 -1
  140. package/dist/react-ui/ui/InputGroup/InputGroup.types.d.ts +1 -1
  141. package/dist/react-ui/ui/Label/Label.styles.d.ts +1 -1
  142. package/dist/react-ui/ui/Label/Label.types.d.ts +1 -1
  143. package/dist/react-ui/ui/Menu/Menu.styles.d.ts +1 -1
  144. package/dist/react-ui/ui/Menu/Menu.types.d.ts +2 -2
  145. package/dist/react-ui/ui/MiddleTruncatePath/MiddleTruncatePath.styles.d.ts +23 -0
  146. package/dist/react-ui/ui/MiddleTruncatePath/MiddleTruncatePath.styles.d.ts.map +1 -0
  147. package/dist/react-ui/ui/MiddleTruncatePath/MiddleTruncatePath.styles.js +32 -0
  148. package/dist/react-ui/ui/MiddleTruncatePath/MiddleTruncatePath.types.d.ts +43 -0
  149. package/dist/react-ui/ui/MiddleTruncatePath/MiddleTruncatePath.types.d.ts.map +1 -0
  150. package/dist/react-ui/ui/MiddleTruncatePath/index.d.ts +33 -0
  151. package/dist/react-ui/ui/MiddleTruncatePath/index.d.ts.map +1 -0
  152. package/dist/react-ui/ui/MiddleTruncatePath/index.js +60 -0
  153. package/dist/react-ui/ui/OperationCard/OperationCard.context.d.ts +17 -0
  154. package/dist/react-ui/ui/OperationCard/OperationCard.context.d.ts.map +1 -0
  155. package/dist/react-ui/ui/OperationCard/OperationCard.context.js +27 -0
  156. package/dist/react-ui/ui/OperationCard/OperationCard.styles.d.ts +19 -0
  157. package/dist/react-ui/ui/OperationCard/OperationCard.styles.d.ts.map +1 -0
  158. package/dist/react-ui/ui/OperationCard/OperationCard.styles.js +39 -0
  159. package/dist/react-ui/ui/OperationCard/OperationCard.types.d.ts +188 -0
  160. package/dist/react-ui/ui/OperationCard/OperationCard.types.d.ts.map +1 -0
  161. package/dist/react-ui/ui/OperationCard/index.d.ts +45 -0
  162. package/dist/react-ui/ui/OperationCard/index.d.ts.map +1 -0
  163. package/dist/react-ui/ui/OperationCard/index.js +118 -0
  164. package/dist/react-ui/ui/OperationCard/parts/OperationCardActions.d.ts +3 -0
  165. package/dist/react-ui/ui/OperationCard/parts/OperationCardActions.d.ts.map +1 -0
  166. package/dist/react-ui/ui/OperationCard/parts/OperationCardActions.js +86 -0
  167. package/dist/react-ui/ui/OperationCard/parts/OperationCardHeader.d.ts +14 -0
  168. package/dist/react-ui/ui/OperationCard/parts/OperationCardHeader.d.ts.map +1 -0
  169. package/dist/react-ui/ui/OperationCard/parts/OperationCardHeader.js +62 -0
  170. package/dist/react-ui/ui/OperationCard/parts/OperationCardProgress.d.ts +3 -0
  171. package/dist/react-ui/ui/OperationCard/parts/OperationCardProgress.d.ts.map +1 -0
  172. package/dist/react-ui/ui/OperationCard/parts/OperationCardProgress.js +37 -0
  173. package/dist/react-ui/ui/OperationCard/parts/OperationCardStats.d.ts +3 -0
  174. package/dist/react-ui/ui/OperationCard/parts/OperationCardStats.d.ts.map +1 -0
  175. package/dist/react-ui/ui/OperationCard/parts/OperationCardStats.js +42 -0
  176. package/dist/react-ui/ui/OperationCard/parts/OperationCardVisualizer.d.ts +3 -0
  177. package/dist/react-ui/ui/OperationCard/parts/OperationCardVisualizer.d.ts.map +1 -0
  178. package/dist/react-ui/ui/OperationCard/parts/OperationCardVisualizer.js +53 -0
  179. package/dist/react-ui/ui/Popover/Popover.styles.d.ts +1 -1
  180. package/dist/react-ui/ui/Popover/Popover.types.d.ts +1 -1
  181. package/dist/react-ui/ui/Progress/Progress.styles.d.ts +1 -1
  182. package/dist/react-ui/ui/Progress/Progress.types.d.ts +2 -2
  183. package/dist/react-ui/ui/Select/Select.styles.d.ts +1 -1
  184. package/dist/react-ui/ui/Select/Select.types.d.ts +1 -1
  185. package/dist/react-ui/ui/Separator/Separator.styles.d.ts +1 -1
  186. package/dist/react-ui/ui/Separator/Separator.types.d.ts +1 -1
  187. package/dist/react-ui/ui/Switch/Switch.styles.d.ts +1 -1
  188. package/dist/react-ui/ui/Switch/Switch.types.d.ts +1 -1
  189. package/dist/react-ui/ui/Tabs/Tabs.styles.d.ts +4 -4
  190. package/dist/react-ui/ui/Tabs/Tabs.types.d.ts +3 -3
  191. package/dist/react-ui/ui/TextFlow/TextFlow.styles.d.ts +1 -1
  192. package/dist/react-ui/ui/Textarea/Textarea.styles.d.ts +1 -1
  193. package/dist/react-ui/ui/Textarea/Textarea.types.d.ts +1 -1
  194. package/dist/react-ui/ui/Tooltip/Tooltip.styles.d.ts +1 -1
  195. package/dist/react-ui/ui/Tooltip/Tooltip.types.d.ts +1 -1
  196. package/dist/react-ui/ui/index.d.ts +7 -0
  197. package/dist/react-ui/ui/index.d.ts.map +1 -1
  198. package/dist/react-ui/ui/index.js +19 -0
  199. package/package.json +2 -2
  200. package/dist/index.css +0 -1059
  201. package/dist/react-ui/blocks/Sidebar/animations/tooltip.css +0 -330
  202. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.css +0 -60
  203. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.css +0 -60
  204. package/dist/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -154
  205. package/dist/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module.css +0 -20
  206. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -369
  207. package/dist/react-ui/ui/Tabs/Tabs.css +0 -38
  208. /package/dist/{css/blocks-Sidebar-animations-tooltip.css → react-ui/blocks/Sidebar/animations/tooltip-keyframes-DRT9W6Xj.css} +0 -0
  209. /package/dist/{css/blocks-Terminal-panel-TerminalFilterDropdown-terminal-filter-dropdown.module.css → react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module-G5zpw08N.css} +0 -0
  210. /package/dist/{css/blocks-Terminal-panel-TerminalSessionTabs-terminal-session-tabs.module.css → react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module-BAOuAeiX.css} +0 -0
  211. /package/dist/{css/components-MorphingPopover-morphing-popover.module.css → react-ui/components/MorphingPopover/morphing-popover.module-T3s-wJN-.css} +0 -0
  212. /package/dist/{css/primitives-waapi-Morph-techniques-useViewTransitions.module.css → react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module-DNDWYN8q.css} +0 -0
  213. /package/dist/{css/ui-DynamicToggle-DynamicToggle.css → react-ui/ui/DynamicToggle/DynamicToggle-DY2Hle7P.css} +0 -0
  214. /package/dist/{css/ui-Tabs-Tabs.css → react-ui/ui/Tabs/Tabs-DqzZRGB3.css} +0 -0
@@ -1,369 +0,0 @@
1
- /**
2
- * DynamicToggle v2 — CSS state transitions.
3
- *
4
- * Rules requiring :has(), container queries, clip-path, or pseudo-elements.
5
- * Layout, colors, sizing in Tailwind (DynamicToggle.styles.ts).
6
- *
7
- * @import '@mks2508/mks-ui/react/ui/DynamicToggle/DynamicToggle.module.css';
8
- */
9
-
10
- /* ── Variables ── */
11
- [data-slot="dt-root"] {
12
- --dt-dur: 0.22s;
13
- --dt-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
14
- --dt-fade: 0.45;
15
- --dt-indicator-dur: 0.3s;
16
- --dt-indicator-ease: cubic-bezier(0.4, 0, 0.2, 1);
17
- }
18
-
19
- /* ── Track: explicit row prevents h-full items from overflowing container ── */
20
- [data-slot="dt-root"] [data-slot="dt-track"] {
21
- grid-template-rows: minmax(0, 1fr);
22
- }
23
-
24
- /* ── Top-level option spans 2 grid cols ── */
25
- [data-slot="dt-root"] [data-slot="dt-track"] > label {
26
- grid-column: span 2;
27
- }
28
-
29
- /* ── Primary option text ── */
30
- [data-slot="dt-root"] [data-slot="dt-track"]:has(> input:checked) > label {
31
- color: var(--accent-foreground);
32
- z-index: 2;
33
- }
34
- [data-slot="dt-root"] [data-slot="dt-track"]:not(:has(> input:checked)) > label {
35
- color: var(--foreground);
36
- opacity: var(--dt-fade);
37
- }
38
-
39
- /* ── Group: container queries ── */
40
- [data-slot="dt-root"] [data-slot="dt-group"] {
41
- container-type: size;
42
- overflow: hidden;
43
- }
44
-
45
- /* ══════════════════════════════════════════════════════════
46
- * INDICATOR POSITIONING
47
- *
48
- * Modern: CSS Anchor Positioning — indicator follows active option
49
- * Fallback: translate-based positioning for older browsers
50
- * ══════════════════════════════════════════════════════════ */
51
-
52
- /* ── Anchor-based indicator (requires full anchor API) ── */
53
- @supports (anchor-scope: all) {
54
- /* Scope anchors per toggle instance */
55
- [data-slot="dt-root"]:not([data-indicator="translate"]) {
56
- anchor-scope: --dt-active;
57
- }
58
-
59
- /* Active option becomes the anchor via native :checked */
60
- [data-slot="dt-root"]:not([data-indicator="translate"]) [data-slot="dt-track"] > label:has(+ input:checked) {
61
- anchor-name: --dt-active;
62
- }
63
- [data-slot="dt-root"]:not([data-indicator="translate"]) [data-slot="dt-group"] > label:has(+ input:checked) {
64
- anchor-name: --dt-active;
65
- }
66
-
67
- /* Single unified indicator: morphs from full-width to half-width */
68
- [data-slot="dt-root"]:not([data-indicator="translate"]) [data-slot="dt-indicator"] {
69
- position-anchor: --dt-active;
70
- top: anchor(top);
71
- right: anchor(right);
72
- bottom: anchor(bottom);
73
- left: anchor(left);
74
- translate: none;
75
- width: auto;
76
- transition:
77
- top var(--dt-indicator-dur) var(--dt-indicator-ease),
78
- right var(--dt-indicator-dur) var(--dt-indicator-ease),
79
- bottom var(--dt-indicator-dur) var(--dt-indicator-ease),
80
- left var(--dt-indicator-dur) var(--dt-indicator-ease);
81
- }
82
-
83
- /* Hide the group indicator — unified indicator handles everything */
84
- [data-slot="dt-root"]:not([data-indicator="translate"]) [data-slot="dt-group-indicator"] {
85
- display: none;
86
- }
87
- }
88
-
89
- /* ── Inset-based fallback (older browsers) — same morph as anchor but hardcoded ── */
90
- @supports not (anchor-scope: all) {
91
- /* Unified indicator: left/right transition morphs width + position */
92
- [data-slot="dt-root"] [data-slot="dt-indicator"] {
93
- left: 50%;
94
- right: 0;
95
- width: auto;
96
- translate: none;
97
- transition:
98
- left var(--dt-indicator-dur) var(--dt-indicator-ease),
99
- right var(--dt-indicator-dur) var(--dt-indicator-ease);
100
- }
101
- /* Top-level checked: indicator covers left half */
102
- [data-slot="dt-root"] [data-slot="dt-track"]:has(> input:checked) [data-slot="dt-indicator"] {
103
- left: 0;
104
- right: 50%;
105
- }
106
- /* Group option 1 checked: indicator at 3rd quarter */
107
- [data-slot="dt-root"] [data-slot="dt-group"]:has(input:nth-of-type(1):checked) ~ [data-slot="dt-indicator"],
108
- [data-slot="dt-root"] [data-slot="dt-track"]:has([data-slot="dt-group"] input:nth-of-type(1):checked) [data-slot="dt-indicator"] {
109
- left: 50%;
110
- right: 25%;
111
- }
112
- /* Group option 2 checked: indicator at 4th quarter */
113
- [data-slot="dt-root"] [data-slot="dt-group"]:has(input:nth-of-type(2):checked) ~ [data-slot="dt-indicator"],
114
- [data-slot="dt-root"] [data-slot="dt-track"]:has([data-slot="dt-group"] input:nth-of-type(2):checked) [data-slot="dt-indicator"] {
115
- left: 75%;
116
- right: 0;
117
- }
118
- /* Hide group indicator — unified indicator handles everything */
119
- [data-slot="dt-root"] [data-slot="dt-group-indicator"] {
120
- display: none;
121
- }
122
- }
123
-
124
- /* ── Force inset mode via data-indicator="translate" (works regardless of @supports) ── */
125
- [data-slot="dt-root"][data-indicator="translate"] [data-slot="dt-indicator"] {
126
- left: 50%;
127
- right: 0;
128
- width: auto;
129
- translate: none;
130
- transition:
131
- left var(--dt-indicator-dur) var(--dt-indicator-ease),
132
- right var(--dt-indicator-dur) var(--dt-indicator-ease);
133
- }
134
- [data-slot="dt-root"][data-indicator="translate"] [data-slot="dt-track"]:has(> input:checked) [data-slot="dt-indicator"] {
135
- left: 0;
136
- right: 50%;
137
- }
138
- [data-slot="dt-root"][data-indicator="translate"] [data-slot="dt-track"]:has([data-slot="dt-group"] input:nth-of-type(1):checked) [data-slot="dt-indicator"] {
139
- left: 50%;
140
- right: 25%;
141
- }
142
- [data-slot="dt-root"][data-indicator="translate"] [data-slot="dt-track"]:has([data-slot="dt-group"] input:nth-of-type(2):checked) [data-slot="dt-indicator"] {
143
- left: 75%;
144
- right: 0;
145
- }
146
- [data-slot="dt-root"][data-indicator="translate"] [data-slot="dt-group-indicator"] {
147
- display: none;
148
- }
149
-
150
- /* ══════════════════════════════════════════════════════════
151
- * GROUP COLLAPSED STATE
152
- *
153
- * ::before = title text (via data-label attr)
154
- * ::after = combined opts text (via data-opts attr)
155
- * <label>s = controlled by data-collapsed mode
156
- *
157
- * 3 modes: title | opts | title-opts (default)
158
- * ══════════════════════════════════════════════════════════ */
159
-
160
- /* ── ::before — group title ── */
161
- [data-slot="dt-group"]::before {
162
- content: attr(data-label);
163
- position: absolute;
164
- left: 50%;
165
- top: 50%;
166
- translate: -50% -80%;
167
- color: var(--foreground);
168
- font-size: inherit;
169
- font-weight: 500;
170
- z-index: 2;
171
- white-space: nowrap;
172
- pointer-events: none;
173
- transition:
174
- scale var(--dt-dur) var(--dt-ease),
175
- translate var(--dt-dur) var(--dt-ease),
176
- opacity var(--dt-dur) var(--dt-ease);
177
- }
178
-
179
- /* ── ::after — combined opts text ── */
180
- [data-slot="dt-group"]::after {
181
- content: attr(data-opts);
182
- position: absolute;
183
- left: 50%;
184
- top: 50%;
185
- translate: -50% 20%;
186
- color: var(--muted-foreground);
187
- font-size: 0.85em;
188
- opacity: 0.6;
189
- z-index: 2;
190
- white-space: nowrap;
191
- pointer-events: none;
192
- transition: opacity var(--dt-dur) var(--dt-ease);
193
- }
194
- [data-slot="dt-group"]:not([data-opts])::after {
195
- content: none;
196
- }
197
-
198
- /* ── Group labels — transition props ── */
199
- [data-slot="dt-root"] [data-slot="dt-group"] label {
200
- color: var(--muted-foreground);
201
- cursor: pointer;
202
- z-index: 2;
203
- transition:
204
- color var(--dt-dur) var(--dt-ease),
205
- opacity var(--dt-dur) var(--dt-ease),
206
- translate var(--dt-dur) var(--dt-ease);
207
- }
208
- [data-slot="dt-root"] [data-slot="dt-group"] label span {
209
- display: grid;
210
- place-items: center;
211
- height: 100%;
212
- width: 100%;
213
- border-radius: var(--dt-radius, 9999px);
214
- transition: scale var(--dt-dur) var(--dt-ease);
215
- }
216
-
217
- /* ── Collapsed mode: "title" — only ::before, labels slide+scale out ── */
218
- [data-slot="dt-group"][data-collapsed="title"]::before {
219
- translate: -50% -50%;
220
- }
221
- [data-slot="dt-group"][data-collapsed="title"]::after {
222
- display: none;
223
- }
224
- [data-slot="dt-group"][data-collapsed="title"]:not(:has(input:checked)) label {
225
- opacity: 0;
226
- translate: 0 30%;
227
- }
228
- [data-slot="dt-group"][data-collapsed="title"]:not(:has(input:checked)) label span {
229
- scale: 0.5;
230
- }
231
-
232
- /* ── Collapsed mode: "opts" — only ::after, labels slide+scale out ── */
233
- [data-slot="dt-group"][data-collapsed="opts"]::before {
234
- display: none;
235
- }
236
- [data-slot="dt-group"][data-collapsed="opts"]::after {
237
- translate: -50% -50%;
238
- font-size: inherit;
239
- opacity: 0.7;
240
- }
241
- [data-slot="dt-group"][data-collapsed="opts"]:not(:has(input:checked)) label {
242
- opacity: 0;
243
- translate: 0 30%;
244
- }
245
- [data-slot="dt-group"][data-collapsed="opts"]:not(:has(input:checked)) label span {
246
- scale: 0.5;
247
- }
248
-
249
- /* ── Collapsed mode: "title-opts" — WIP: disabled, falls back to "title" behavior ── */
250
- /* TODO: title-opts needs a redesign — title (::before) and scaled labels overlap
251
- at all container sizes. The codepen original morph relied on specific dimensions
252
- that don't translate to the component's size variants. Needs a different approach
253
- (e.g., crossfade, flex layout, or JS-measured positions). */
254
- [data-slot="dt-group"][data-collapsed="title-opts"]::after {
255
- content: none;
256
- }
257
- [data-slot="dt-group"][data-collapsed="title-opts"]::before {
258
- translate: -50% -50%;
259
- }
260
- [data-slot="dt-group"][data-collapsed="title-opts"]:not(:has(input:checked)) label {
261
- opacity: 0;
262
- translate: 0 30%;
263
- }
264
-
265
- /* ── When group expanded ── */
266
- [data-slot="dt-group"]:has(input:checked)::before {
267
- translate: -50% -250%;
268
- scale: 0.85;
269
- }
270
- [data-slot="dt-group"]:has(input:checked)::after {
271
- opacity: 0;
272
- }
273
- [data-slot="dt-group"]:has(input:checked) label {
274
- opacity: 0.75;
275
- color: var(--muted-foreground);
276
- translate: 0 0;
277
- }
278
- [data-slot="dt-group"]:has(input:checked) label span {
279
- scale: 1;
280
- }
281
- [data-slot="dt-group"]:has(input:nth-of-type(1):checked) label:nth-of-type(1),
282
- [data-slot="dt-group"]:has(input:nth-of-type(2):checked) label:nth-of-type(2) {
283
- color: var(--foreground);
284
- opacity: 1;
285
- }
286
-
287
- /* ══════════════════════════════════════════════════════════
288
- * GROUP LABEL / BUBBLE (above or below the pill)
289
- *
290
- * Positioned via CSS. In filter/path morph modes, rendered with GooeyCanvas.
291
- * In none mode, simple CSS-driven show/hide.
292
- * bubblePosition: top | bottom (no left/right in v2)
293
- * ══════════════════════════════════════════════════════════ */
294
-
295
- [data-slot="dt-group-label"] {
296
- display: grid;
297
- grid-template-rows: 0fr;
298
- left: 20%;
299
- right: 20%;
300
- transition:
301
- grid-template-rows calc(var(--dt-dur) * 1.5) var(--dt-ease),
302
- opacity var(--dt-dur) var(--dt-ease);
303
- opacity: 0;
304
- background: var(--card);
305
- border: 1px solid var(--border);
306
- z-index: 3;
307
- transform: translateZ(0);
308
- -webkit-transform: translateZ(0);
309
- }
310
- [data-slot="dt-group-label"] > span {
311
- overflow: hidden;
312
- min-height: 0;
313
- display: flex;
314
- align-items: center;
315
- justify-content: center;
316
- padding: 0 0.75em;
317
- height: calc(var(--dt-h, 38px) * 0.4);
318
- box-sizing: border-box;
319
- }
320
-
321
- /* Top position */
322
- [data-slot="dt-group-label"][data-bubble-position="top"] {
323
- bottom: 100%;
324
- border-radius: calc(var(--dt-h, 38px) * 0.2) calc(var(--dt-h, 38px) * 0.2) 0 0;
325
- border-bottom: none;
326
- margin-bottom: -1px;
327
- }
328
-
329
- /* Bottom position */
330
- [data-slot="dt-group-label"][data-bubble-position="bottom"] {
331
- top: 100%;
332
- border-radius: 0 0 calc(var(--dt-h, 38px) * 0.2) calc(var(--dt-h, 38px) * 0.2);
333
- border-top: none;
334
- margin-top: -1px;
335
- }
336
-
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"] {
340
- grid-template-rows: 1fr;
341
- opacity: 1;
342
- }
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 {
345
- padding: 0.35em 0.75em;
346
- }
347
-
348
- /* ── Filter morph mode ── */
349
- [data-slot="dt-root"][data-morph="filter"] [data-slot="dt-group-label"] {
350
- border: none;
351
- }
352
- [data-slot="dt-root"][data-morph="filter"] [data-slot="dt-track"] {
353
- position: relative;
354
- z-index: 1;
355
- }
356
-
357
- /* ── Filter morph: ::before hides on expand, gooey canvas handles junction ── */
358
- [data-slot="dt-root"][data-morph="filter"] [data-slot="dt-group"]:has(input:checked)::before {
359
- opacity: 0;
360
- translate: -50% -80%;
361
- scale: 1;
362
- }
363
-
364
- /* ── Path morph mode ── */
365
- [data-slot="dt-root"][data-morph="path"] [data-slot="dt-track"] {
366
- position: relative;
367
- z-index: 1;
368
- }
369
-
@@ -1,38 +0,0 @@
1
- /**
2
- * Tabs CSS Anchor Positioning.
3
- *
4
- * Zero-JS position tracking for the sliding indicator using CSS Anchor API.
5
- * The indicator automatically follows the active tab via anchor positioning.
6
- */
7
-
8
- /* Scope anchors per Tabs instance */
9
- [data-slot="tabs-list"] {
10
- anchor-scope: --tabs-active;
11
- }
12
-
13
- /* Active tab becomes the anchor */
14
- [data-slot="tabs-tab"][data-active] {
15
- anchor-name: --tabs-active;
16
- }
17
-
18
- /* Indicator follows the active anchor */
19
- [data-slot="tabs-indicator"] {
20
- position-anchor: --tabs-active;
21
- left: anchor(left);
22
- right: anchor(right);
23
- transition:
24
- top 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
25
- left 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
26
- right 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
27
- bottom 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
28
- width 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
29
- height 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
30
- }
31
-
32
- /* Respect reduced motion preference */
33
- @media (prefers-reduced-motion: reduce) {
34
- [data-slot="tabs-indicator"] {
35
- transition-duration: 0ms;
36
- }
37
- }
38
-