@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
@@ -0,0 +1,141 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import "./gooey-morphing-surface.js";
3
+ import { DEFAULT_GOOEY_CONFIG } from "./GooeyMorphingSurface.types.js";
4
+ import { useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+
7
+ //#region src/react-ui/primitives/GooeyMorphingSurface/index.tsx
8
+ /**
9
+ * GooeyMorphingSurface — headless pill→card gooey morph primitive.
10
+ *
11
+ * Paints an SVG canvas where a pill-shaped rect sits on top and a card-
12
+ * shaped rect sits below (body). Both rects share a gaussian-blur +
13
+ * alpha-threshold filter that fuses them into a single silhouette with a
14
+ * soft metaball throat wherever they overlap. When `open` is false, the
15
+ * body rect is a geometric clone of the pill (same x/y/w/h/rx) — no extra
16
+ * halo, no pop. When `open` flips to true, all six SVG presentation attrs
17
+ * (x, y, width, height, rx, ry) interpolate in lock-step, producing a
18
+ * continuous morph from pill to card.
19
+ *
20
+ * The primitive is purely presentational: it does not own open state, does
21
+ * not bind click handlers, does not trap focus. Use `<GooeyButton>` for
22
+ * the ergonomic wrapper that adds those behaviours.
23
+ *
24
+ * @module @mks2508/mks-ui/react/primitives/GooeyMorphingSurface
25
+ */
26
+ /**
27
+ * Headless gooey pill→card morph surface.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <GooeyMorphingSurface
32
+ * open={open}
33
+ * pill={<span>Pull origin</span>}
34
+ * card={<ProgressCard transfer={transfer} />}
35
+ * config={{ blur: 12, mergeOverlap: 14 }}
36
+ * />
37
+ * ```
38
+ */
39
+ function GooeyMorphingSurface({ open, pill, card, config: userConfig, className, slots, "aria-hidden": ariaHidden = true }) {
40
+ const filterId = `gms-filter-${useId().replace(/:/g, "")}`;
41
+ const { pillWidth, pillHeight, cardWidth, cardHeight, cardRadius, mergeOverlap, blur, alphaAmp, alphaOffset, fill, durationMs, easing, pillOffsetX } = {
42
+ ...DEFAULT_GOOEY_CONFIG,
43
+ ...userConfig
44
+ };
45
+ const pillRadius = pillHeight / 2;
46
+ const svgHeight = pillHeight + cardHeight + mergeOverlap;
47
+ const pillX = (cardWidth - pillWidth) / 2 + pillOffsetX;
48
+ const bodyX = open ? 0 : pillX;
49
+ const bodyY = open ? pillHeight - mergeOverlap : 0;
50
+ const bodyW = open ? cardWidth : pillWidth;
51
+ const bodyH = open ? cardHeight + mergeOverlap : pillHeight;
52
+ const bodyR = open ? cardRadius : pillRadius;
53
+ const rootStyle = {
54
+ "--gms-pill-w": `${pillWidth}px`,
55
+ "--gms-pill-h": `${pillHeight}px`,
56
+ "--gms-card-w": `${cardWidth}px`,
57
+ "--gms-card-h": `${cardHeight}px`,
58
+ "--gms-card-r": `${cardRadius}px`,
59
+ "--gms-overlap": `${mergeOverlap}px`,
60
+ "--gms-pill-x": `${pillX}px`,
61
+ "--gms-fill": fill,
62
+ "--gms-duration": `${durationMs}ms`,
63
+ "--gms-ease": easing
64
+ };
65
+ const alphaMatrix = `1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 ${alphaAmp} ${alphaOffset}`;
66
+ return /* @__PURE__ */ jsx("div", {
67
+ className: cn("gms-root", slots?.root, className),
68
+ style: rootStyle,
69
+ children: /* @__PURE__ */ jsxs("div", {
70
+ className: cn("gms-shell", slots?.shell),
71
+ "data-open": open,
72
+ children: [
73
+ /* @__PURE__ */ jsxs("svg", {
74
+ className: "gms-svg",
75
+ width: cardWidth,
76
+ height: svgHeight,
77
+ "aria-hidden": ariaHidden,
78
+ children: [/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("filter", {
79
+ id: filterId,
80
+ x: "-20%",
81
+ y: "-20%",
82
+ width: "140%",
83
+ height: "140%",
84
+ colorInterpolationFilters: "sRGB",
85
+ children: [
86
+ /* @__PURE__ */ jsx("feGaussianBlur", {
87
+ in: "SourceGraphic",
88
+ stdDeviation: blur,
89
+ result: "blur"
90
+ }),
91
+ /* @__PURE__ */ jsx("feColorMatrix", {
92
+ in: "blur",
93
+ mode: "matrix",
94
+ values: alphaMatrix,
95
+ result: "goo"
96
+ }),
97
+ /* @__PURE__ */ jsx("feComposite", {
98
+ in: "SourceGraphic",
99
+ in2: "goo",
100
+ operator: "atop"
101
+ })
102
+ ]
103
+ }) }), /* @__PURE__ */ jsxs("g", {
104
+ filter: `url(#${filterId})`,
105
+ children: [/* @__PURE__ */ jsx("rect", {
106
+ x: pillX,
107
+ y: 0,
108
+ width: pillWidth,
109
+ height: pillHeight,
110
+ rx: pillRadius,
111
+ ry: pillRadius,
112
+ fill
113
+ }), /* @__PURE__ */ jsx("rect", {
114
+ className: "gms-body-rect",
115
+ fill,
116
+ style: {
117
+ x: bodyX,
118
+ y: bodyY,
119
+ width: bodyW,
120
+ height: bodyH,
121
+ rx: bodyR,
122
+ ry: bodyR
123
+ }
124
+ })]
125
+ })]
126
+ }),
127
+ /* @__PURE__ */ jsx("div", {
128
+ className: cn("gms-pill", slots?.pill),
129
+ children: pill
130
+ }),
131
+ /* @__PURE__ */ jsx("div", {
132
+ className: cn("gms-card", slots?.card),
133
+ children: card
134
+ })
135
+ ]
136
+ })
137
+ });
138
+ }
139
+
140
+ //#endregion
141
+ export { GooeyMorphingSurface };
@@ -9,5 +9,7 @@ export * from './Slot';
9
9
  export * from './Highlight';
10
10
  export * from './AutoHeight';
11
11
  export * from './CountingNumber';
12
+ export * from './DotMatrix';
13
+ export * from './GooeyMorphingSurface';
12
14
  export * from './waapi';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-ui/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-ui/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AAGvC,cAAc,SAAS,CAAC"}
@@ -2,6 +2,10 @@ import { Slot } from "./Slot/index.js";
2
2
  import { Highlight, HighlightItem, useHighlight } from "./Highlight/index.js";
3
3
  import { AutoHeight } from "./AutoHeight/index.js";
4
4
  import { CountingNumber } from "./CountingNumber/index.js";
5
+ import { DOT_MATRIX_PATTERNS, buildDelays } from "./DotMatrix/patterns.js";
6
+ import { DotMatrix } from "./DotMatrix/index.js";
7
+ import { DEFAULT_GOOEY_CONFIG } from "./GooeyMorphingSurface/GooeyMorphingSurface.types.js";
8
+ import { GooeyMorphingSurface } from "./GooeyMorphingSurface/index.js";
5
9
  import { ANIMATION_CONFIGS, ANIMATION_DEFAULTS, EASINGS, EFFECTS, PRESETS, RESPONSIVE_CONFIGS, TIMING, TRANSFORMS, getResponsiveDuration, getResponsiveStagger } from "./waapi/core/animationConstants.js";
6
10
  import { useElementRegistry } from "./waapi/core/useElementRegistry.js";
7
11
  import { usePositionCapture } from "./waapi/core/usePositionCapture.js";
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /**
3
3
  * Style slots for SlidingNumber component
4
4
  */
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /**
3
3
  * Style slots for SlidingText component
4
4
  */
@@ -7,7 +7,7 @@
7
7
  * @module @mks2508/mks-ui/react/ui/Accordion/Accordion.styles
8
8
  */
9
9
  import { type VariantProps } from 'class-variance-authority';
10
- import type { StyleSlots } from '../../../core/types';
10
+ import type { StyleSlots } from '@/core/types';
11
11
  import type { AccordionSlot } from './Accordion.types';
12
12
  /**
13
13
  * Default Tailwind classes for each visual region of the Accordion.
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import type { Accordion as AccordionPrimitive } from '@base-ui/react/accordion';
10
10
  import type { HTMLMotionProps } from 'motion/react';
11
- import type { IBaseConfig, SlotOverrides } from '../../../core/types';
11
+ import type { IBaseConfig, SlotOverrides } from '@/core/types';
12
12
  import type { AccordionVariantProps } from './Accordion.styles';
13
13
  /**
14
14
  * Named visual regions of the Accordion that can be styled via the `slots` prop.
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module @mks2508/mks-ui/react/ui/AlertDialog/AlertDialog.styles
9
9
  */
10
- import type { StyleSlots } from '../../../core/types';
10
+ import type { StyleSlots } from '@/core/types';
11
11
  import type { AlertDialogSlot } from './AlertDialog.types';
12
12
  /**
13
13
  * Default Tailwind classes for each visual region of the AlertDialog.
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import type { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';
10
10
  import type { HTMLMotionProps } from 'motion/react';
11
- import type { IBaseConfig, SlotOverrides } from '../../../core/types';
11
+ import type { IBaseConfig, SlotOverrides } from '@/core/types';
12
12
  /**
13
13
  * Named visual regions of the AlertDialog that can be styled via the `slots` prop.
14
14
  *
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /** Visual regions for the Badge component. */
3
3
  type BadgeSlot = 'root';
4
4
  declare const badgeStyles: StyleSlots<BadgeSlot>;
@@ -8,7 +8,7 @@ declare const badgeStyles: StyleSlots<BadgeSlot>;
8
8
  * @see {@link https://cva.style/docs/getting-started/variants}
9
9
  */
10
10
  declare const badgeVariants: (props?: ({
11
- variant?: "default" | "outline" | "secondary" | "destructive" | null | undefined;
11
+ variant?: "default" | "outline" | "destructive" | "secondary" | null | undefined;
12
12
  size?: "default" | "sm" | "lg" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  export { badgeStyles, badgeVariants };
@@ -1,5 +1,5 @@
1
1
  import type { VariantProps } from 'class-variance-authority';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { badgeVariants, BadgeSlot } from './Badge.styles';
4
4
  /**
5
5
  * Props for the Badge component.
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /** Visual regions for the Button component. */
3
3
  type ButtonSlot = 'root';
4
4
  declare const buttonStyles: StyleSlots<ButtonSlot>;
@@ -8,7 +8,7 @@ declare const buttonStyles: StyleSlots<ButtonSlot>;
8
8
  * @see {@link https://cva.style/docs/getting-started/variants}
9
9
  */
10
10
  declare const buttonVariants: (props?: ({
11
- variant?: "link" | "default" | "outline" | "ghost" | "secondary" | "destructive" | "success" | "warning" | "bare" | null | undefined;
11
+ variant?: "link" | "default" | "outline" | "success" | "destructive" | "warning" | "ghost" | "secondary" | "bare" | null | undefined;
12
12
  size?: "default" | "icon" | "sm" | "lg" | "bare" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  /** State-specific style classes for Button. */
@@ -1,5 +1,5 @@
1
1
  import type { VariantProps } from 'class-variance-authority';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { buttonVariants, ButtonSlot } from './Button.styles';
4
4
  /** Button interaction state. */
5
5
  interface IButtonState {
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /** Visual regions for the Card component. */
3
3
  type CardSlot = 'root' | 'header' | 'title' | 'description' | 'action' | 'content' | 'footer';
4
4
  declare const cardStyles: StyleSlots<CardSlot>;
@@ -1,5 +1,5 @@
1
1
  import type { VariantProps } from 'class-variance-authority';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { cardVariants, CardSlot } from './Card.styles';
4
4
  /** Props for the Card component. */
5
5
  interface ICardProps extends React.ComponentProps<'div'>, VariantProps<typeof cardVariants> {
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module @mks2508/mks-ui/react/ui/Checkbox/Checkbox.styles
5
5
  */
6
- import type { StyleSlots } from '../../../core/types';
6
+ import type { StyleSlots } from '@/core/types';
7
7
  import type { CheckboxSlot } from './Checkbox.types';
8
8
  /**
9
9
  * Default style slots for the Checkbox component.
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';
7
7
  import type { HTMLMotionProps, SVGMotionProps } from 'motion/react';
8
- import type { IBaseConfig, SlotOverrides } from '../../../core/types';
8
+ import type { IBaseConfig, SlotOverrides } from '@/core/types';
9
9
  /**
10
10
  * Available style slot names for the Checkbox component.
11
11
  * Each slot maps to a visual region that can be customized via the `slots` prop.
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /** Visual regions for the Combobox component family. */
3
3
  type ComboboxSlot = 'root' | 'trigger' | 'content' | 'list' | 'item' | 'label' | 'separator' | 'empty' | 'chips' | 'chip' | 'chipInput';
4
4
  declare const comboboxStyles: StyleSlots<ComboboxSlot>;
@@ -1,5 +1,5 @@
1
1
  import type { Combobox as ComboboxPrimitive } from '@base-ui/react';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { ComboboxSlot } from './Combobox.styles';
4
4
  /** Props for the Combobox root. */
5
5
  type IComboboxProps = ComboboxPrimitive.Root.Props<any, any>;
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  type CornerBracketSlot = 'root';
3
3
  declare const cornerBracketStyles: StyleSlots<CornerBracketSlot>;
4
4
  /** CVA variants for CornerBracket positioning and color. */
@@ -1,5 +1,5 @@
1
1
  import type { VariantProps } from 'class-variance-authority';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { bracketVariants, CornerBracketSlot } from './CornerBracket.styles';
4
4
  /** Props for the CornerBracket component. */
5
5
  interface ICornerBracketProps extends Omit<React.SVGProps<SVGSVGElement>, 'variant'>, VariantProps<typeof bracketVariants> {
@@ -14,7 +14,7 @@
14
14
  * </DataCard>
15
15
  * ```
16
16
  */
17
- import type { StyleSlots } from '../../../core/types';
17
+ import type { StyleSlots } from '@/core/types';
18
18
  /**
19
19
  * Visual slots for DataCard component family.
20
20
  */
@@ -33,7 +33,7 @@ export declare const dataCardStyles: StyleSlots<DataCardSlot>;
33
33
  */
34
34
  export declare const dataCardVariants: (props?: ({
35
35
  size?: "default" | "compact" | "spacious" | null | undefined;
36
- variant?: "default" | "destructive" | "success" | "warning" | "accent" | null | undefined;
36
+ variant?: "default" | "success" | "destructive" | "warning" | "accent" | null | undefined;
37
37
  glass?: boolean | null | undefined;
38
38
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
39
39
  /**
@@ -4,7 +4,7 @@
4
4
  * @module @mks2508/mks-ui/react/ui/DataCard
5
5
  */
6
6
  import type { VariantProps } from 'class-variance-authority';
7
- import type { SlotOverrides, IBaseConfig } from '../../../core/types';
7
+ import type { SlotOverrides, IBaseConfig } from '@/core/types';
8
8
  import type { dataCardVariants, DataCardSlot } from './DataCard.styles';
9
9
  export type { DataCardSlot } from './DataCard.styles';
10
10
  /** Visual variant names */
@@ -1,5 +1,5 @@
1
1
  import { dataCardVariants } from './DataCard.styles';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { IDataCardProps, IDataCardValueProps, IDataCardLabelProps, IDataCardToggleProps, IDataCardActionsProps, IDataCardBracketProps, IDataCardConfig, DataCardSlot } from './DataCard.types';
4
4
  type DataCardContextType = {
5
5
  variant: IDataCardProps['variant'];
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module @mks2508/mks-ui/react/ui/Dialog/Dialog.styles
9
9
  */
10
- import type { StyleSlots } from '../../../core/types';
10
+ import type { StyleSlots } from '@/core/types';
11
11
  import type { DialogSlot } from './Dialog.types';
12
12
  /**
13
13
  * Default Tailwind classes for each Dialog visual region.
@@ -9,7 +9,7 @@
9
9
  import type * as React from 'react';
10
10
  import type { Dialog as DialogPrimitive } from '@base-ui/react/dialog';
11
11
  import type { HTMLMotionProps } from 'motion/react';
12
- import type { SlotOverrides, IBaseConfig } from '../../../core/types';
12
+ import type { SlotOverrides, IBaseConfig } from '@/core/types';
13
13
  /**
14
14
  * Visual regions available for class-name overrides via the `slots` prop.
15
15
  *
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /** Visual regions for the DropdownMenu component family. */
3
3
  type DropdownMenuSlot = 'root' | 'content' | 'item' | 'label' | 'separator' | 'shortcut' | 'subTrigger' | 'subContent' | 'checkboxItem' | 'radioItem';
4
4
  declare const dropdownMenuStyles: StyleSlots<DropdownMenuSlot>;
@@ -1,5 +1,5 @@
1
1
  import type { Menu as MenuPrimitive } from '@base-ui/react/menu';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { DropdownMenuSlot } from './DropdownMenu.styles';
4
4
  /** Props for the DropdownMenu root. */
5
5
  type IDropdownMenuProps = MenuPrimitive.Root.Props;
@@ -7,7 +7,7 @@
7
7
  * @module @mks2508/mks-ui/react/ui/DynamicToggle
8
8
  */
9
9
  import { type VariantProps } from 'class-variance-authority';
10
- import type { StyleSlots } from '../../../core/types';
10
+ import type { StyleSlots } from '@/core/types';
11
11
  /** Slot names for DynamicToggle */
12
12
  export type DynamicToggleSlot = 'root' | 'track' | 'option' | 'indicator' | 'group' | 'groupIndicator' | 'groupLabel';
13
13
  /**
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module @mks2508/mks-ui/react/ui/DynamicToggle
9
9
  */
10
- import type { SlotOverrides, IBaseConfig } from '../../../core/types';
10
+ import type { SlotOverrides, IBaseConfig } from '@/core/types';
11
11
  import type { DynamicToggleSlot, DynamicToggleVariantProps } from './DynamicToggle.styles';
12
12
  /** How the group appears when collapsed (standalone option active). */
13
13
  export type DynamicToggleCollapsedMode = 'title' | 'opts' | 'title-opts';
@@ -1,4 +1,4 @@
1
- import type { StyleSlots } from '../../../core/types';
1
+ import type { StyleSlots } from '@/core/types';
2
2
  /** Visual regions for the Field component family. */
3
3
  type FieldSlot = 'root' | 'set' | 'legend' | 'group' | 'content' | 'label' | 'title' | 'description' | 'separator' | 'error';
4
4
  declare const fieldStyles: StyleSlots<FieldSlot>;
@@ -1,5 +1,5 @@
1
1
  import type { VariantProps } from 'class-variance-authority';
2
- import type { SlotOverrides } from '../../../core/types';
2
+ import type { SlotOverrides } from '@/core/types';
3
3
  import type { fieldVariants, FieldSlot } from './Field.styles';
4
4
  /** Props for the FieldSet component. */
5
5
  interface IFieldSetProps extends React.ComponentProps<'fieldset'> {
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Styles for FileIcon / FolderIcon components.
3
+ *
4
+ * @module @mks2508/mks-ui/react/ui/FileIcon
5
+ */
6
+ import type { StyleSlots } from '@/core/types';
7
+ /** Visual regions for the FileIcon component. */
8
+ export type FileIconSlot = 'root';
9
+ /**
10
+ * Default Tailwind classes for each FileIcon slot.
11
+ *
12
+ * | Slot | Region |
13
+ * |------|--------|
14
+ * | `root` | The `<img>` (or fallback glyph) element |
15
+ */
16
+ export declare const FileIconStyles: StyleSlots<FileIconSlot>;
17
+ /** CVA variants for the FileIcon root. */
18
+ export declare const fileIconVariants: (props?: ({} & import("class-variance-authority/types").ClassProp) | undefined) => string;
19
+ /** Visual regions for the FolderIcon component. */
20
+ export type FolderIconSlot = 'root';
21
+ /** Default Tailwind classes for each FolderIcon slot. */
22
+ export declare const FolderIconStyles: StyleSlots<FolderIconSlot>;
23
+ /** CVA variants for the FolderIcon root. */
24
+ export declare const folderIconVariants: (props?: ({} & import("class-variance-authority/types").ClassProp) | undefined) => string;
25
+ //# sourceMappingURL=FileIcon.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileIcon.styles.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/FileIcon/FileIcon.styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC,YAAY,CAE1C,CAAC;AAEX,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,2FAG3B,CAAC;AAEH,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,cAAc,CAE9C,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,2FAG7B,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { cva } from "class-variance-authority";
2
+
3
+ //#region src/react-ui/ui/FileIcon/FileIcon.styles.ts
4
+ /**
5
+ * Styles for FileIcon / FolderIcon components.
6
+ *
7
+ * @module @mks2508/mks-ui/react/ui/FileIcon
8
+ */
9
+ /**
10
+ * Default Tailwind classes for each FileIcon slot.
11
+ *
12
+ * | Slot | Region |
13
+ * |------|--------|
14
+ * | `root` | The `<img>` (or fallback glyph) element |
15
+ */
16
+ const FileIconStyles = { root: "shrink-0" };
17
+ /** CVA variants for the FileIcon root. */
18
+ const fileIconVariants = cva(FileIconStyles.root, {
19
+ variants: {},
20
+ defaultVariants: {}
21
+ });
22
+ /** Default Tailwind classes for each FolderIcon slot. */
23
+ const FolderIconStyles = { root: "shrink-0" };
24
+ /** CVA variants for the FolderIcon root. */
25
+ const folderIconVariants = cva(FolderIconStyles.root, {
26
+ variants: {},
27
+ defaultVariants: {}
28
+ });
29
+
30
+ //#endregion
31
+ export { FileIconStyles, FolderIconStyles, fileIconVariants, folderIconVariants };
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Types for FileIcon / FolderIcon components.
3
+ *
4
+ * @module @mks2508/mks-ui/react/ui/FileIcon
5
+ */
6
+ import type { SlotOverrides } from '@/core/types';
7
+ import type { FileIconSlot, FolderIconSlot } from './FileIcon.styles';
8
+ /**
9
+ * Function that resolves a filename to an icon asset identifier.
10
+ *
11
+ * Return value is the filename of the SVG (e.g. `"typescript.svg"`)
12
+ * which is appended to `basePath` to form the full URL.
13
+ *
14
+ * Defaults (when `vscode-material-icon-theme-js` is available as an
15
+ * optional peer) use the Material Icon Theme resolver. Consumers may
16
+ * pass their own to support custom icon sets.
17
+ */
18
+ export type FileIconResolver = (filename: string) => string;
19
+ /**
20
+ * Function that resolves a folder name (and open state) to an icon asset.
21
+ */
22
+ export type FolderIconResolver = (name: string, open: boolean) => string;
23
+ /**
24
+ * Props for FileIcon.
25
+ *
26
+ * @see {@link FileIconSlot} for available slot names
27
+ */
28
+ export interface IFileIconProps {
29
+ /** Filename (e.g. `"App.tsx"`, `"package.json"`, `".gitignore"`). */
30
+ filename: string;
31
+ /** Icon size in pixels. Default 16. */
32
+ size?: number;
33
+ /** Optional CSS class merged onto the root. */
34
+ className?: string;
35
+ /** Whether this entry is a submodule (renders a GitFork glyph). */
36
+ isSubmodule?: boolean;
37
+ /**
38
+ * Base path prefix where icon SVGs are hosted. Default `"/file-icons/"`.
39
+ * Consumers must serve the matching SVGs (same contract as Material Icon Theme).
40
+ */
41
+ basePath?: string;
42
+ /**
43
+ * Custom resolver to translate filename → SVG basename.
44
+ * Falls back to Material Icon Theme resolver if available at runtime.
45
+ */
46
+ resolve?: FileIconResolver;
47
+ /**
48
+ * Override default Tailwind classes for specific visual regions.
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * <FileIcon filename="App.tsx" slots={{ root: 'opacity-80' }} />
53
+ * ```
54
+ */
55
+ slots?: SlotOverrides<FileIconSlot>;
56
+ }
57
+ /**
58
+ * Props for FolderIcon.
59
+ *
60
+ * @see {@link FolderIconSlot} for available slot names
61
+ */
62
+ export interface IFolderIconProps {
63
+ /** Folder name (e.g. `"src"`, `"components"`, `"node_modules"`). */
64
+ name: string;
65
+ /** Whether the folder is open/expanded. Default false. */
66
+ open?: boolean;
67
+ /** Icon size in pixels. Default 16. */
68
+ size?: number;
69
+ /** Optional CSS class merged onto the root. */
70
+ className?: string;
71
+ /**
72
+ * Base path prefix where icon SVGs are hosted. Default `"/file-icons/"`.
73
+ */
74
+ basePath?: string;
75
+ /**
76
+ * Custom resolver (closed + open). Falls back to Material Icon Theme if available.
77
+ */
78
+ resolve?: FolderIconResolver;
79
+ /**
80
+ * Override default Tailwind classes for specific visual regions.
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * <FolderIcon name="src" slots={{ root: 'opacity-80' }} />
85
+ * ```
86
+ */
87
+ slots?: SlotOverrides<FolderIconSlot>;
88
+ }
89
+ //# sourceMappingURL=FileIcon.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileIcon.types.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/ui/FileIcon/FileIcon.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACvC"}