components-svelte 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/components/Search.svelte +320 -0
  4. package/dist/components/Search.svelte.d.ts +31 -0
  5. package/dist/components/SearchButton.svelte +82 -0
  6. package/dist/components/SearchButton.svelte.d.ts +13 -0
  7. package/dist/components/SearchProvider.svelte +87 -0
  8. package/dist/components/SearchProvider.svelte.d.ts +17 -0
  9. package/dist/components/accordion/Accordion.svelte +150 -0
  10. package/dist/components/accordion/Accordion.svelte.d.ts +25 -0
  11. package/dist/components/accordion/AccordionCover.svelte +68 -0
  12. package/dist/components/accordion/AccordionCover.svelte.d.ts +13 -0
  13. package/dist/components/accordion/AccordionGroup.svelte +23 -0
  14. package/dist/components/accordion/AccordionGroup.svelte.d.ts +8 -0
  15. package/dist/components/accordion/accordion-url-utils.d.ts +4 -0
  16. package/dist/components/accordion/accordion-url-utils.js +48 -0
  17. package/dist/components/accordion/index.d.ts +29 -0
  18. package/dist/components/accordion/index.js +6 -0
  19. package/dist/components/badge/Badge.svelte +152 -0
  20. package/dist/components/badge/Badge.svelte.d.ts +23 -0
  21. package/dist/components/badge/index.d.ts +1 -0
  22. package/dist/components/badge/index.js +2 -0
  23. package/dist/components/callout/Callout.svelte +317 -0
  24. package/dist/components/callout/Callout.svelte.d.ts +17 -0
  25. package/dist/components/callout/Check.svelte +9 -0
  26. package/dist/components/callout/Check.svelte.d.ts +4 -0
  27. package/dist/components/callout/Danger.svelte +9 -0
  28. package/dist/components/callout/Danger.svelte.d.ts +4 -0
  29. package/dist/components/callout/Info.svelte +9 -0
  30. package/dist/components/callout/Info.svelte.d.ts +4 -0
  31. package/dist/components/callout/Note.svelte +9 -0
  32. package/dist/components/callout/Note.svelte.d.ts +4 -0
  33. package/dist/components/callout/Tip.svelte +9 -0
  34. package/dist/components/callout/Tip.svelte.d.ts +4 -0
  35. package/dist/components/callout/Warning.svelte +9 -0
  36. package/dist/components/callout/Warning.svelte.d.ts +4 -0
  37. package/dist/components/callout/index.d.ts +8 -0
  38. package/dist/components/callout/index.js +8 -0
  39. package/dist/components/card/Card.svelte +172 -0
  40. package/dist/components/card/Card.svelte.d.ts +21 -0
  41. package/dist/components/card/index.d.ts +3 -0
  42. package/dist/components/card/index.js +2 -0
  43. package/dist/components/code-block/BaseCodeBlock.svelte +249 -0
  44. package/dist/components/code-block/BaseCodeBlock.svelte.d.ts +10 -0
  45. package/dist/components/code-block/CodeBlock.svelte +185 -0
  46. package/dist/components/code-block/CodeBlock.svelte.d.ts +5 -0
  47. package/dist/components/code-block/CodeFooter.svelte +34 -0
  48. package/dist/components/code-block/CodeFooter.svelte.d.ts +8 -0
  49. package/dist/components/code-block/CodeHeader.svelte +52 -0
  50. package/dist/components/code-block/CodeHeader.svelte.d.ts +11 -0
  51. package/dist/components/code-block/CopyToClipboardButton.svelte +124 -0
  52. package/dist/components/code-block/CopyToClipboardButton.svelte.d.ts +4 -0
  53. package/dist/components/code-block/index.d.ts +10 -0
  54. package/dist/components/code-block/index.js +5 -0
  55. package/dist/components/code-block/types.d.ts +85 -0
  56. package/dist/components/code-block/types.js +1 -0
  57. package/dist/components/code-group/CodeGroup.svelte +327 -0
  58. package/dist/components/code-group/CodeGroup.svelte.d.ts +24 -0
  59. package/dist/components/code-group/CodeGroupSelect.svelte +170 -0
  60. package/dist/components/code-group/CodeGroupSelect.svelte.d.ts +25 -0
  61. package/dist/components/code-group/CodeSelectDropdown.svelte +74 -0
  62. package/dist/components/code-group/CodeSelectDropdown.svelte.d.ts +9 -0
  63. package/dist/components/code-group/LanguageDropdown.svelte +134 -0
  64. package/dist/components/code-group/LanguageDropdown.svelte.d.ts +11 -0
  65. package/dist/components/code-group/LanguageIcon.svelte +24 -0
  66. package/dist/components/code-group/LanguageIcon.svelte.d.ts +8 -0
  67. package/dist/components/code-group/context.d.ts +14 -0
  68. package/dist/components/code-group/context.js +2 -0
  69. package/dist/components/code-group/index.d.ts +8 -0
  70. package/dist/components/code-group/index.js +4 -0
  71. package/dist/components/color/Color.svelte +34 -0
  72. package/dist/components/color/Color.svelte.d.ts +10 -0
  73. package/dist/components/color/ColorItem.svelte +140 -0
  74. package/dist/components/color/ColorItem.svelte.d.ts +10 -0
  75. package/dist/components/color/ColorRow.svelte +27 -0
  76. package/dist/components/color/ColorRow.svelte.d.ts +8 -0
  77. package/dist/components/color/index.d.ts +1 -0
  78. package/dist/components/color/index.js +8 -0
  79. package/dist/components/columns/Box.svelte +15 -0
  80. package/dist/components/columns/Box.svelte.d.ts +7 -0
  81. package/dist/components/columns/Columns.svelte +31 -0
  82. package/dist/components/columns/Columns.svelte.d.ts +10 -0
  83. package/dist/components/columns/constants.d.ts +5 -0
  84. package/dist/components/columns/constants.js +3 -0
  85. package/dist/components/columns/index.d.ts +5 -0
  86. package/dist/components/columns/index.js +3 -0
  87. package/dist/components/expandable/Expandable.svelte +182 -0
  88. package/dist/components/expandable/Expandable.svelte.d.ts +22 -0
  89. package/dist/components/expandable/index.d.ts +3 -0
  90. package/dist/components/expandable/index.js +2 -0
  91. package/dist/components/frame/Frame.svelte +118 -0
  92. package/dist/components/frame/Frame.svelte.d.ts +15 -0
  93. package/dist/components/frame/index.d.ts +3 -0
  94. package/dist/components/frame/index.js +2 -0
  95. package/dist/components/icon/Icon.svelte +129 -0
  96. package/dist/components/icon/Icon.svelte.d.ts +18 -0
  97. package/dist/components/icon/index.d.ts +2 -0
  98. package/dist/components/icon/index.js +1 -0
  99. package/dist/components/index.d.ts +22 -0
  100. package/dist/components/index.js +22 -0
  101. package/dist/components/mermaid/Mermaid.svelte +181 -0
  102. package/dist/components/mermaid/Mermaid.svelte.d.ts +11 -0
  103. package/dist/components/mermaid/ZoomControls.svelte +74 -0
  104. package/dist/components/mermaid/ZoomControls.svelte.d.ts +12 -0
  105. package/dist/components/mermaid/index.d.ts +7 -0
  106. package/dist/components/mermaid/index.js +4 -0
  107. package/dist/components/mermaid/use-pan-zoom.svelte.d.ts +11 -0
  108. package/dist/components/mermaid/use-pan-zoom.svelte.js +41 -0
  109. package/dist/components/panel/Panel.svelte +27 -0
  110. package/dist/components/panel/Panel.svelte.d.ts +9 -0
  111. package/dist/components/panel/index.d.ts +3 -0
  112. package/dist/components/panel/index.js +2 -0
  113. package/dist/components/property/DeprecatedPill.svelte +16 -0
  114. package/dist/components/property/DeprecatedPill.svelte.d.ts +6 -0
  115. package/dist/components/property/InfoPill.svelte +32 -0
  116. package/dist/components/property/InfoPill.svelte.d.ts +10 -0
  117. package/dist/components/property/ParamHead.svelte +188 -0
  118. package/dist/components/property/ParamHead.svelte.d.ts +22 -0
  119. package/dist/components/property/Property.svelte +123 -0
  120. package/dist/components/property/Property.svelte.d.ts +24 -0
  121. package/dist/components/property/RequiredPill.svelte +16 -0
  122. package/dist/components/property/RequiredPill.svelte.d.ts +6 -0
  123. package/dist/components/property/index.d.ts +11 -0
  124. package/dist/components/property/index.js +6 -0
  125. package/dist/components/search/index.d.ts +7 -0
  126. package/dist/components/search/index.js +4 -0
  127. package/dist/components/search/use-search.d.ts +9 -0
  128. package/dist/components/search/use-search.js +6 -0
  129. package/dist/components/steps/Step.svelte +314 -0
  130. package/dist/components/steps/Step.svelte.d.ts +26 -0
  131. package/dist/components/steps/Steps.svelte +51 -0
  132. package/dist/components/steps/Steps.svelte.d.ts +11 -0
  133. package/dist/components/steps/constants.d.ts +4 -0
  134. package/dist/components/steps/constants.js +2 -0
  135. package/dist/components/steps/context.d.ts +10 -0
  136. package/dist/components/steps/context.js +2 -0
  137. package/dist/components/steps/index.d.ts +32 -0
  138. package/dist/components/steps/index.js +6 -0
  139. package/dist/components/tabs/Tabs.svelte +254 -0
  140. package/dist/components/tabs/Tabs.svelte.d.ts +16 -0
  141. package/dist/components/tabs/TabsItem.svelte +56 -0
  142. package/dist/components/tabs/TabsItem.svelte.d.ts +15 -0
  143. package/dist/components/tabs/context.d.ts +20 -0
  144. package/dist/components/tabs/context.js +2 -0
  145. package/dist/components/tabs/index.d.ts +27 -0
  146. package/dist/components/tabs/index.js +5 -0
  147. package/dist/components/tile/Tile.svelte +124 -0
  148. package/dist/components/tile/Tile.svelte.d.ts +12 -0
  149. package/dist/components/tile/index.d.ts +2 -0
  150. package/dist/components/tile/index.js +1 -0
  151. package/dist/components/tooltip/Tooltip.svelte +170 -0
  152. package/dist/components/tooltip/Tooltip.svelte.d.ts +23 -0
  153. package/dist/components/tooltip/index.d.ts +2 -0
  154. package/dist/components/tooltip/index.js +1 -0
  155. package/dist/components/tree/Tree.svelte +226 -0
  156. package/dist/components/tree/Tree.svelte.d.ts +9 -0
  157. package/dist/components/tree/TreeFile.svelte +44 -0
  158. package/dist/components/tree/TreeFile.svelte.d.ts +6 -0
  159. package/dist/components/tree/TreeFolder.svelte +107 -0
  160. package/dist/components/tree/TreeFolder.svelte.d.ts +10 -0
  161. package/dist/components/tree/context.d.ts +3 -0
  162. package/dist/components/tree/context.js +7 -0
  163. package/dist/components/tree/index.d.ts +10 -0
  164. package/dist/components/tree/index.js +9 -0
  165. package/dist/components/tree/tree-level-context.d.ts +8 -0
  166. package/dist/components/tree/tree-level-context.js +7 -0
  167. package/dist/components/tree/use-tree-level.d.ts +3 -0
  168. package/dist/components/tree/use-tree-level.js +5 -0
  169. package/dist/components/tree/utils.d.ts +9 -0
  170. package/dist/components/tree/utils.js +86 -0
  171. package/dist/components/update/Update.svelte +210 -0
  172. package/dist/components/update/Update.svelte.d.ts +34 -0
  173. package/dist/components/update/index.d.ts +4 -0
  174. package/dist/components/update/index.js +3 -0
  175. package/dist/components/view/View.svelte +52 -0
  176. package/dist/components/view/View.svelte.d.ts +14 -0
  177. package/dist/components/view/index.d.ts +3 -0
  178. package/dist/components/view/index.js +2 -0
  179. package/dist/constants/brands.d.ts +2 -0
  180. package/dist/constants/brands.js +4 -0
  181. package/dist/constants/index.d.ts +6 -0
  182. package/dist/constants/index.js +6 -0
  183. package/dist/constants/selectors.d.ts +125 -0
  184. package/dist/constants/selectors.js +125 -0
  185. package/dist/hooks/index.d.ts +8 -0
  186. package/dist/hooks/index.js +6 -0
  187. package/dist/hooks/use-expandable-memory.svelte.d.ts +6 -0
  188. package/dist/hooks/use-expandable-memory.svelte.js +89 -0
  189. package/dist/hooks/use-expandable.svelte.d.ts +15 -0
  190. package/dist/hooks/use-expandable.svelte.js +53 -0
  191. package/dist/hooks/use-get-shiki-highlighted-html.svelte.d.ts +8 -0
  192. package/dist/hooks/use-get-shiki-highlighted-html.svelte.js +36 -0
  193. package/dist/hooks/use-has-hover.d.ts +2 -0
  194. package/dist/hooks/use-has-hover.js +10 -0
  195. package/dist/hooks/use-is-dark-theme.svelte.d.ts +3 -0
  196. package/dist/hooks/use-is-dark-theme.svelte.js +25 -0
  197. package/dist/hooks/use-isomorphic-layout-effect.d.ts +3 -0
  198. package/dist/hooks/use-isomorphic-layout-effect.js +6 -0
  199. package/dist/index.d.ts +2 -0
  200. package/dist/index.js +2 -0
  201. package/dist/styles.css +2 -0
  202. package/dist/utils/cn.d.ts +3 -0
  203. package/dist/utils/cn.js +7 -0
  204. package/dist/utils/copy-to-clipboard.d.ts +4 -0
  205. package/dist/utils/copy-to-clipboard.js +50 -0
  206. package/dist/utils/dedent.d.ts +1 -0
  207. package/dist/utils/dedent.js +125 -0
  208. package/dist/utils/enhance-video-props.d.ts +4 -0
  209. package/dist/utils/enhance-video-props.js +25 -0
  210. package/dist/utils/get-node-text.d.ts +2 -0
  211. package/dist/utils/get-node-text.js +26 -0
  212. package/dist/utils/icon-utils.d.ts +18 -0
  213. package/dist/utils/icon-utils.js +30 -0
  214. package/dist/utils/is-absolute-url.d.ts +4 -0
  215. package/dist/utils/is-absolute-url.js +11 -0
  216. package/dist/utils/is-remote-url.d.ts +2 -0
  217. package/dist/utils/is-remote-url.js +12 -0
  218. package/dist/utils/make-marker-ids-unique.d.ts +2 -0
  219. package/dist/utils/make-marker-ids-unique.js +36 -0
  220. package/dist/utils/shiki/code-styling.d.ts +13 -0
  221. package/dist/utils/shiki/code-styling.js +1 -0
  222. package/dist/utils/shiki/constants.d.ts +21 -0
  223. package/dist/utils/shiki/constants.js +116 -0
  224. package/dist/utils/shiki/get-code-styling.d.ts +9 -0
  225. package/dist/utils/shiki/get-code-styling.js +38 -0
  226. package/dist/utils/shiki/get-shiki-background-colors.d.ts +20 -0
  227. package/dist/utils/shiki/get-shiki-background-colors.js +56 -0
  228. package/dist/utils/shiki/index.d.ts +30 -0
  229. package/dist/utils/shiki/index.js +209 -0
  230. package/dist/utils/shiki/lib.d.ts +4 -0
  231. package/dist/utils/shiki/lib.js +49 -0
  232. package/dist/utils/shiki/shiki-themes.d.ts +2 -0
  233. package/dist/utils/shiki/shiki-themes.js +64 -0
  234. package/dist/utils/shiki/snippet-presets.d.ts +27 -0
  235. package/dist/utils/shiki/snippet-presets.js +44 -0
  236. package/dist/utils/shiki/worker-client.d.ts +9 -0
  237. package/dist/utils/shiki/worker-client.js +22 -0
  238. package/dist/utils/shiki/worker.d.ts +1 -0
  239. package/dist/utils/shiki/worker.js +134 -0
  240. package/dist/utils/slugify.d.ts +2 -0
  241. package/dist/utils/slugify.js +9 -0
  242. package/package.json +100 -0
@@ -0,0 +1,86 @@
1
+ const getParentTreeItem = (element, container) => {
2
+ const findParent = (parent) => {
3
+ if (!parent || parent === container) {
4
+ return null;
5
+ }
6
+ if (parent.getAttribute("role") === "group") {
7
+ const folder = parent.previousElementSibling;
8
+ if (folder instanceof HTMLElement &&
9
+ folder.getAttribute("role") === "treeitem") {
10
+ return folder;
11
+ }
12
+ }
13
+ return findParent(parent.parentElement);
14
+ };
15
+ return findParent(element.parentElement);
16
+ };
17
+ const getFirstChildTreeItem = (folder) => {
18
+ const group = folder.nextElementSibling;
19
+ if (group?.getAttribute("role") === "group") {
20
+ return group.querySelector('[role="treeitem"]');
21
+ }
22
+ return null;
23
+ };
24
+ const isInsideCollapsedGroup = (el, container) => {
25
+ const checkParent = (parent) => {
26
+ if (!parent || parent === container) {
27
+ return false;
28
+ }
29
+ if (parent.getAttribute("role") === "group") {
30
+ const folder = parent.previousElementSibling;
31
+ if (folder?.getAttribute("aria-expanded") === "false") {
32
+ return true;
33
+ }
34
+ }
35
+ return checkParent(parent.parentElement);
36
+ };
37
+ return checkParent(el.parentElement);
38
+ };
39
+ const getVisibleTreeItems = (container) => Array.from(container.querySelectorAll('[role="treeitem"]')).filter((el) => !isInsideCollapsedGroup(el, container));
40
+ const calculatePaddingLeft = (level) => {
41
+ return 6 + (level - 1) * 22;
42
+ };
43
+ let treeIdCounter = 0;
44
+ const createTreeId = () => {
45
+ treeIdCounter += 1;
46
+ if (typeof globalThis.crypto?.randomUUID === "function") {
47
+ return globalThis.crypto.randomUUID();
48
+ }
49
+ return `${Date.now().toString(36)}-${treeIdCounter.toString(36)}`;
50
+ };
51
+ const getTreeItemLabel = (element) => {
52
+ const labelSpan = element.querySelector("[title]");
53
+ return labelSpan?.textContent ?? element.textContent ?? null;
54
+ };
55
+ const getSiblingFolders = (element, container) => {
56
+ const findParentGroup = (el) => {
57
+ if (!el || el === container) {
58
+ return null;
59
+ }
60
+ if (el.getAttribute("role") === "group") {
61
+ return el;
62
+ }
63
+ if (el.getAttribute("role") === "tree") {
64
+ return el;
65
+ }
66
+ return findParentGroup(el.parentElement);
67
+ };
68
+ const parentGroup = findParentGroup(element.parentElement) ?? container;
69
+ return Array.from(parentGroup.children).flatMap((child) => {
70
+ const nested = child.querySelector(':scope > [role="treeitem"][aria-expanded]');
71
+ const direct = child instanceof HTMLElement &&
72
+ child.getAttribute("role") === "treeitem" &&
73
+ child.hasAttribute("aria-expanded")
74
+ ? child
75
+ : null;
76
+ return [nested, direct].filter((el) => el !== null);
77
+ });
78
+ };
79
+ const updateRovingTabindex = (container, target) => {
80
+ const allItems = container.querySelectorAll('[role="treeitem"]');
81
+ // Keep the original deliberate iteration used to maintain one tab stop.
82
+ allItems.forEach((item) => {
83
+ item.setAttribute("tabindex", item === target ? "0" : "-1");
84
+ });
85
+ };
86
+ export { getParentTreeItem, getFirstChildTreeItem, getVisibleTreeItems, calculatePaddingLeft, createTreeId, getTreeItemLabel, getSiblingFolders, updateRovingTabindex, };
@@ -0,0 +1,210 @@
1
+ <script lang="ts">
2
+ import { untrack } from "svelte";
3
+ import type { Snippet } from "svelte";
4
+ import type { HTMLAttributes } from "svelte/elements";
5
+
6
+ import { Classes } from "../../constants/selectors";
7
+ import { copyToClipboard } from "../../utils/copy-to-clipboard";
8
+ import { cn } from "../../utils/cn";
9
+ import Icon from "../icon/Icon.svelte";
10
+
11
+ export type UpdateRect = {
12
+ bottom: number;
13
+ height: number;
14
+ left: number;
15
+ right: number;
16
+ top: number;
17
+ width: number;
18
+ x: number;
19
+ y: number;
20
+ };
21
+
22
+ export type UpdateProps = HTMLAttributes<HTMLDivElement> & {
23
+ id: string;
24
+ label: string;
25
+ description?: string;
26
+ tags?: string[];
27
+ rss?: {
28
+ title?: string;
29
+ description?: string;
30
+ };
31
+ children?: string | Snippet;
32
+ className?: string;
33
+ ref?: HTMLDivElement | null;
34
+ "aria-label"?: string;
35
+ onRegisterHeading?: (id: string, rect: UpdateRect) => void;
36
+ onUnregisterHeading?: (id: string) => void;
37
+ hasContext?: boolean;
38
+ isVisible: boolean;
39
+ onCopyAnchorLink?: (id: string) => void;
40
+ };
41
+
42
+ let {
43
+ id,
44
+ label,
45
+ description,
46
+ tags,
47
+ rss: _rss,
48
+ children,
49
+ class: classAttribute,
50
+ className,
51
+ ref = $bindable(null),
52
+ "aria-label": ariaLabel = "Navigate to changelog",
53
+ onRegisterHeading,
54
+ onUnregisterHeading,
55
+ hasContext,
56
+ isVisible,
57
+ onCopyAnchorLink,
58
+ ...restProps
59
+ }: UpdateProps = $props();
60
+
61
+ let rect: UpdateRect | null = $state(null);
62
+
63
+ let tagsArray = $derived(
64
+ [...new Set((tags ?? []).map((tag) => tag.trim()).filter(Boolean))]
65
+ );
66
+
67
+ function measureContent(node: HTMLDivElement) {
68
+ const measure = () => {
69
+ const nextRect = node.getBoundingClientRect();
70
+ rect = {
71
+ bottom: nextRect.bottom,
72
+ height: nextRect.height,
73
+ left: nextRect.left,
74
+ right: nextRect.right,
75
+ top: nextRect.top,
76
+ width: nextRect.width,
77
+ x: nextRect.x,
78
+ y: nextRect.y,
79
+ };
80
+ };
81
+
82
+ // react-use-rect's default resize option is false, so this measures once
83
+ // when the content element is attached, matching the React component.
84
+ measure();
85
+
86
+ return {
87
+ destroy() {},
88
+ };
89
+ }
90
+
91
+ async function copyAnchorLink() {
92
+ if (typeof window === "undefined") {
93
+ return;
94
+ }
95
+
96
+ const result = await copyToClipboard(
97
+ `${window.location.href.split("#")[0]}#${encodeURIComponent(id)}`
98
+ );
99
+
100
+ if (result === "success") {
101
+ window.location.hash = encodeURIComponent(id);
102
+ onCopyAnchorLink?.(id);
103
+ }
104
+ }
105
+
106
+ // Register the measured content with integrations, replacing React's useRect effect.
107
+ $effect(() => {
108
+ if (!(hasContext && isVisible && rect)) {
109
+ return;
110
+ }
111
+
112
+ const currentId = id;
113
+ const currentRect = rect;
114
+ const registerHeading = onRegisterHeading;
115
+ const unregisterHeading = onUnregisterHeading;
116
+
117
+ // Keep callback-owned reactive state from becoming an accidental effect dependency.
118
+ untrack(() => registerHeading?.(currentId, currentRect));
119
+
120
+ return () => {
121
+ untrack(() => unregisterHeading?.(currentId));
122
+ };
123
+ });
124
+
125
+ let updateClass = $derived(
126
+ cn(
127
+ Classes.Update,
128
+ "update-container relative flex w-full flex-col items-start gap-2 py-8 lg:flex-row lg:gap-6",
129
+ classAttribute ?? className
130
+ )
131
+ );
132
+ </script>
133
+
134
+ {#if isVisible}
135
+ <div class={updateClass} id={id} bind:this={ref} {...restProps}>
136
+ <div class="group top-(--scroll-mt) flex w-full shrink-0 flex-col items-start justify-start lg:sticky lg:w-[160px]">
137
+ <div class="absolute">
138
+ <a
139
+ aria-label={ariaLabel}
140
+ class="group/link -ml-10 flex items-center border-0 opacity-0 focus:opacity-100 focus:outline-0 group-hover:opacity-100"
141
+ href={`#${encodeURIComponent(id)}`}
142
+ >
143
+ &#8203;
144
+ <div class="flex size-6 items-center justify-center rounded-md bg-white text-stone-400 shadow-sm ring-1 ring-stone-400/30 hover:ring-stone-400/60 group-focus/link:border-2 group-focus/link:border-primary dark:bg-background-dark dark:text-white/50 dark:ring-1 dark:ring-stone-700/25 dark:brightness-[1.35] dark:group-focus/link:border-primary-light dark:hover:ring-white/20 dark:hover:brightness-150">
145
+ <span aria-hidden="true" class="contents">
146
+ <Icon
147
+ class="size-3 bg-stone-400 dark:bg-white/50"
148
+ icon="link"
149
+ iconType="solid"
150
+ overrideColor={true}
151
+ overrideSize={true}
152
+ />
153
+ </span>
154
+ </div>
155
+ </a>
156
+ </div>
157
+
158
+ <!-- Preserve the React label click behavior; its anchor link remains a separate control. -->
159
+ <!-- Svelte's click-event suppressions cover React's three equivalent a11y lint suppressions. -->
160
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
161
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
162
+ <div
163
+ class="flex grow-0 cursor-pointer items-center justify-center rounded-lg bg-primary/10 px-2 py-1 font-medium text-primary text-sm dark:text-primary-light"
164
+ contenteditable="false"
165
+ data-component-part="update-label"
166
+ onclick={() => void copyAnchorLink()}
167
+ >
168
+ {label}
169
+ </div>
170
+
171
+ {#if tagsArray.length > 0}
172
+ <div
173
+ class="mt-3 flex flex-wrap gap-2 px-1 text-secondary text-sm dark:text-secondary-light"
174
+ data-component-part="update-tag-list"
175
+ >
176
+ {#each tagsArray as tag}
177
+ <span
178
+ class="inline-block rounded-lg font-medium text-sm"
179
+ data-component-part="update-tag"
180
+ >
181
+ {tag}
182
+ </span>
183
+ {/each}
184
+ </div>
185
+ {/if}
186
+
187
+ {#if description}
188
+ <div
189
+ class="wrap-break-word mt-3 max-w-[160px] px-1 text-secondary text-sm dark:text-secondary-light"
190
+ contenteditable="false"
191
+ data-component-part="update-description"
192
+ >
193
+ {description}
194
+ </div>
195
+ {/if}
196
+ </div>
197
+
198
+ <div class="max-w-full flex-1 overflow-hidden px-0.5" use:measureContent>
199
+ <div class="prose-sm" data-component-part="update-content">
200
+ {#if children}
201
+ {#if typeof children === "string"}
202
+ {children}
203
+ {:else}
204
+ {@render children()}
205
+ {/if}
206
+ {/if}
207
+ </div>
208
+ </div>
209
+ </div>
210
+ {/if}
@@ -0,0 +1,34 @@
1
+ import type { Snippet } from "svelte";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ export type UpdateRect = {
4
+ bottom: number;
5
+ height: number;
6
+ left: number;
7
+ right: number;
8
+ top: number;
9
+ width: number;
10
+ x: number;
11
+ y: number;
12
+ };
13
+ export type UpdateProps = HTMLAttributes<HTMLDivElement> & {
14
+ id: string;
15
+ label: string;
16
+ description?: string;
17
+ tags?: string[];
18
+ rss?: {
19
+ title?: string;
20
+ description?: string;
21
+ };
22
+ children?: string | Snippet;
23
+ className?: string;
24
+ ref?: HTMLDivElement | null;
25
+ "aria-label"?: string;
26
+ onRegisterHeading?: (id: string, rect: UpdateRect) => void;
27
+ onUnregisterHeading?: (id: string) => void;
28
+ hasContext?: boolean;
29
+ isVisible: boolean;
30
+ onCopyAnchorLink?: (id: string) => void;
31
+ };
32
+ declare const Update: import("svelte").Component<UpdateProps, {}, "ref">;
33
+ type Update = ReturnType<typeof Update>;
34
+ export default Update;
@@ -0,0 +1,4 @@
1
+ import Update from "./Update.svelte";
2
+ export type { UpdateProps, UpdateRect } from "./Update.svelte";
3
+ export { Update };
4
+ export { default } from "./Update.svelte";
@@ -0,0 +1,3 @@
1
+ import Update from "./Update.svelte";
2
+ export { Update };
3
+ export { default } from "./Update.svelte";
@@ -0,0 +1,52 @@
1
+ <script lang="ts">
2
+ import { onMount } from "svelte";
3
+ import type { Snippet } from "svelte";
4
+ import type { HTMLAttributes } from "svelte/elements";
5
+
6
+ import { Classes } from "../../constants/selectors";
7
+ import type { MultiViewItemType } from "../../utils/icon-utils";
8
+ import { cn } from "../../utils/cn";
9
+
10
+ export type ViewProps = HTMLAttributes<HTMLDivElement> & {
11
+ title: string;
12
+ /** @internal Pass multiViewItems from useMDXContent() */
13
+ items: MultiViewItemType[];
14
+ children?: Snippet;
15
+ className?: string;
16
+ ref?: HTMLDivElement | null;
17
+ };
18
+
19
+ let {
20
+ children,
21
+ title,
22
+ items,
23
+ class: classAttribute,
24
+ className,
25
+ ref = $bindable(null),
26
+ ...restProps
27
+ }: ViewProps = $props();
28
+
29
+ // Svelte's onMount replaces React's useIsomorphicLayoutEffect for the
30
+ // client-only mounted guard. This preserves the SSR-safe visibility check.
31
+ let mounted = $state(false);
32
+
33
+ onMount(() => {
34
+ mounted = true;
35
+ });
36
+
37
+ let isVisible = $derived(
38
+ items.find((item) => item.title === title)?.active ?? false
39
+ );
40
+
41
+ let viewClass = $derived(
42
+ cn(Classes.MultiViewItem, "prose dark:prose-invert", classAttribute ?? className)
43
+ );
44
+ </script>
45
+
46
+ {#if mounted && isVisible}
47
+ <div bind:this={ref} class={viewClass} {...restProps}>
48
+ {#if children}
49
+ {@render children()}
50
+ {/if}
51
+ </div>
52
+ {/if}
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from "svelte";
2
+ import type { HTMLAttributes } from "svelte/elements";
3
+ import type { MultiViewItemType } from "../../utils/icon-utils";
4
+ export type ViewProps = HTMLAttributes<HTMLDivElement> & {
5
+ title: string;
6
+ /** @internal Pass multiViewItems from useMDXContent() */
7
+ items: MultiViewItemType[];
8
+ children?: Snippet;
9
+ className?: string;
10
+ ref?: HTMLDivElement | null;
11
+ };
12
+ declare const View: import("svelte").Component<ViewProps, {}, "ref">;
13
+ type View = ReturnType<typeof View>;
14
+ export default View;
@@ -0,0 +1,3 @@
1
+ import View from "./View.svelte";
2
+ export type { default as ViewProps } from "./View.svelte";
3
+ export { View };
@@ -0,0 +1,2 @@
1
+ import View from "./View.svelte";
2
+ export { View };
@@ -0,0 +1,2 @@
1
+ declare const FONT_AWESOME_BRANDS: string[];
2
+ export { FONT_AWESOME_BRANDS };
@@ -0,0 +1,4 @@
1
+ const FONT_AWESOME_BRANDS = [
2
+ "viadeo-square", "supple", "x-twitter", "bootstrap", "weixin", "connectdevelop", "medium", "square-facebook", "ioxhost", "snapchat-ghost", "fonticons", "figma", "reddit-alien", "angrycreative", "imdb", "steam", "square-xing", "d-and-d-beyond", "font-awesome-logo-full", "tumblr", "pied-piper-square", "bandcamp", "red-river", "square-lastfm", "stackpath", "square-hacker-news", "strava", "dropbox", "meta", "microsoft", "creative-commons-nd", "square-tumblr", "dyalog", "squarespace", "google-plus-square", "whatsapp-square", "accusoft", "lastfm", "phoenix-squadron", "square-snapchat", "yelp", "cloudflare", "deviantart", "airbnb", "usps", "envira", "fulcrum", "linux", "foursquare", "bilibili", "drupal", "cc-stripe", "square-youtube", "edge-legacy", "dev", "speakap", "android", "git-square", "ethereum", "shirtsinbulk", "black-tie", "odnoklassniki", "fonticons-fi", "cc-amex", "js", "galactic-senate", "reacteurope", "openid", "gitlab", "sourcetree", "gg", "joget", "weibo", "aws", "sass", "cc-paypal", "superpowers", "rust", "sellcast", "java", "orcid", "tencent-weibo", "trade-federation", "viber", "ello", "wix", "mizuni", "leanpub", "bitbucket", "pagelines", "creative-commons", "github", "viacoin", "freebsd", "rebel", "square-steam", "fedex", "usb", "empire", "simplybuilt", "google-drive", "microblog", "square-figma", "etsy", "bimobject", "app-store-ios", "gripfire", "500px", "speaker-deck", "deskpro", "critical-role", "square-github", "vimeo-v", "stripe-s", "keybase", "yandex-international", "umbraco", "joomla", "google-play", "uniregistry", "d-and-d", "vsco", "kaggle", "cash-app", "hubspot", "confluence", "square-gitlab", "tidal", "youtube-square", "servicestack", "reddit-square", "npm", "square-font-awesome", "tor-browser", "square-whatsapp", "creative-commons-nc", "galactic-republic", "square-instagram", "raspberry-pi", "instagram-square", "tumblr-square", "mastodon", "letterboxd", "square-git", "42-group", "angular", "untappd", "apper", "git-alt", "sitrox", "behance-square", "vk", "vimeo", "discourse", "hotjar", "symfony", "slack-hash", "square-odnoklassniki", "skyatlas", "hacker-news", "files-pinwheel", "flutter", "instagram", "y-combinator", "linktree", "shopify", "webflow", "mendeley", "odysee", "wodu", "fort-awesome-alt", "threads", "square-linkedin", "r-project", "edge", "yammer", "11ty", "bots", "fly", "openai", "safari", "square-behance", "pied-piper-hat", "audible", "yoast", "fort-awesome", "square-dribbble", "python", "pix", "cc-apple-pay", "docker", "git", "blogger", "itch-io", "opensuse", "nfc-symbol", "creative-commons-nc-eu", "schlix", "mailchimp", "neos", "creative-commons-pd", "pinterest-p", "square-letterboxd", "digg", "bitcoin", "whmcs", "delicious", "bluesky", "hackerrank", "vimeo-square", "disqus", "telegram", "cc-discover", "centercode", "erlang", "medrt", "salesforce", "notion", "meetup", "square-vimeo", "wizards-of-the-coast", "markdown", "instalod", "padlet", "goodreads", "dribbble-square", "unity", "creative-commons-sampling-plus", "invision", "mix", "square-x-twitter", "gratipay", "magento", "bluetooth", "houzz", "expeditedssl", "the-red-yeti", "canadian-maple-leaf", "sith", "algolia", "ussunnah", "tex", "sellsy", "jira", "spotify", "intercom", "wolf-pack-battalion", "square-twitter", "flipboard", "google-wallet", "shopware", "jxl", "phoenix-framework", "wirsindhandwerk", "kickstarter-k", "gitlab-square", "cc-jcb", "researchgate", "lyft", "wpressr", "lastfm-square", "octopus-deploy", "periscope", "modx", "kickstarter", "slideshare", "snapchat", "font-awesome", "buy-n-large", "readme", "creative-commons-nc-jp", "themeisle", "html5", "replyd", "cuttlefish", "rockrms", "ravelry", "stubber", "quora", "font-awesome-alt", "monero", "hire-a-helper", "github-alt", "creative-commons-share", "yarn", "cc-visa", "dochub", "github-square", "laravel", "digital-ocean", "xing-square", "earlybirds", "centos", "bluetooth-b", "teamspeak", "square-google-plus", "wpexplorer", "first-order-alt", "ubuntu", "opencart", "pied-piper", "paypal", "suse", "wpbeginner", "deezer", "blogger-b", "rocketchat", "unsplash", "draft2digital", "playstation", "facebook", "amazon-pay", "square-font-awesome-stroke", "amazon", "quinscape", "free-code-camp", "vine", "pinterest", "creative-commons-sa", "css", "creative-commons-pd-alt", "stack-overflow", "page4", "mdb", "osi", "yandex", "whatsapp", "google", "chromecast", "line", "battle-net", "affiliatetheme", "brave", "atlassian", "aviato", "bity", "php", "stumbleupon-circle", "stripe", "jedi-order", "think-peaks", "buromobelexperte", "phabricator", "apple-pay", "artstation", "font-awesome-flag", "scribd", "stack-exchange", "fedora", "jenkins", "studiovinari", "glide", "adn", "square-web-awesome", "pixelfed", "css3-alt", "xing", "medapps", "redhat", "uncharted", "fantasy-flight-games", "facebook-f", "perbyte", "hips", "google-pay", "twitch", "cc-diners-club", "supportnow", "windows", "rev", "btc", "creative-commons-zero", "elementor", "shoelace", "square-pied-piper", "mintbit", "youtube", "accessible-icon", "gg-circle", "lumon-drop", "app-store", "codiepie", "stumbleupon", "nutritionix", "linkedin-in", "jsfiddle", "yahoo", "grav", "firefox-browser", "sticker-mule", "kakao-talk", "goodreads-g", "uber", "sketch", "creative-commons-remix", "itunes-note", "gulp", "keycdn", "diaspora", "cotton-bureau", "reddit", "alipay", "google-scholar", "cloudscale", "buysellads", "steam-symbol", "asymmetrik", "angellist", "wpforms", "linode", "js-square", "guilded", "avianex", "evernote", "codepen", "dribbble", "cc-amazon-pay", "xbox", "trello", "adversal", "dhl", "hornbill", "square-bluesky", "themeco", "square-kickstarter", "google-plus", "contao", "linkedin", "ideal", "mandalorian", "hashnode", "old-republic", "qq", "vaadin", "uikit", "lumon", "react", "creative-commons-by", "square-pinterest", "watchman-monitoring", "optin-monster", "twitter", "less", "dailymotion", "patreon", "swift", "discord", "hacker-news-square", "opera", "gitter", "buffer", "css3", "renren", "square-reddit", "ns8", "sistrix", "rendact", "duolingo", "vuejs", "debian", "facebook-square", "eleventy", "mixcloud", "firstdraft", "slack", "zhihu", "soundcloud", "product-hunt", "wikipedia-w", "space-awesome", "pied-piper-pp", "creative-commons-sampling", "hooli", "first-order", "glide-g", "ember", "gitkraken", "dart-lang", "steam-square", "wsh", "square-threads", "skype", "gofore", "ebay", "cpanel", "wordpress", "square-upwork", "w3c", "korvue", "cloudversify", "square-web-awesome-stroke", "web-awesome", "grunt", "viadeo", "wordpress-simple", "blackberry", "facebook-messenger", "pushed", "hive", "pandora", "amilia", "pied-piper-alt", "nfc-directional", "innosoft", "cloudsmith", "chrome", "forumbee", "snapchat-square", "node-js", "maxcdn", "apple", "pixiv", "napster", "nimblr", "vnv", "waze", "telegram-plane", "odnoklassniki-square", "google-plus-g", "palfed", "screenpal", "weebly", "autoprefixer", "searchengin", "square-viadeo", "pinterest-square", "brave-reverse", "megaport", "typo3", "deploydog", "node", "cc-mastercard", "tiktok", "twitter-square", "dashcube", "get-pocket", "golang", "ups", "medium-m", "behance", "resolving", "internet-explorer", "signal-messenger", "staylinked", "cmplid", "firefox", "flickr", "mixer", "square-js", "upwork", "itunes", "linear",
3
+ ];
4
+ export { FONT_AWESOME_BRANDS };
@@ -0,0 +1,6 @@
1
+ declare const MINTLIFY_ICONS_CDN_URL = "https://d3gk2c5xim1je2.cloudfront.net";
2
+ declare const MAX_DEFAULT_VALUE_LENGTH = 50;
3
+ declare const MAX_PREVIEW_BYTES = 50000;
4
+ declare const CHILD_TAB_IDS_ATTRIBUTE = "data-child-tab-ids";
5
+ declare const CHILD_HEADING_IDS_ATTRIBUTE = "data-child-heading-ids";
6
+ export { CHILD_HEADING_IDS_ATTRIBUTE, CHILD_TAB_IDS_ATTRIBUTE, MINTLIFY_ICONS_CDN_URL, MAX_DEFAULT_VALUE_LENGTH, MAX_PREVIEW_BYTES };
@@ -0,0 +1,6 @@
1
+ const MINTLIFY_ICONS_CDN_URL = "https://d3gk2c5xim1je2.cloudfront.net";
2
+ const MAX_DEFAULT_VALUE_LENGTH = 50;
3
+ const MAX_PREVIEW_BYTES = 50_000; // 0.05 mb / 50 kb
4
+ const CHILD_TAB_IDS_ATTRIBUTE = "data-child-tab-ids";
5
+ const CHILD_HEADING_IDS_ATTRIBUTE = "data-child-heading-ids";
6
+ export { CHILD_HEADING_IDS_ATTRIBUTE, CHILD_TAB_IDS_ATTRIBUTE, MINTLIFY_ICONS_CDN_URL, MAX_DEFAULT_VALUE_LENGTH, MAX_PREVIEW_BYTES };
@@ -0,0 +1,125 @@
1
+ declare const _classes: {
2
+ readonly Accordion: "accordion";
3
+ readonly AccordionGroup: "accordion-group";
4
+ readonly Callout: "callout";
5
+ readonly Card: "card";
6
+ readonly Columns: "columns";
7
+ readonly CodeBlock: "code-block";
8
+ readonly CodeBlockIcon: "code-block-icon";
9
+ readonly CodeGroup: "code-group";
10
+ readonly Expandable: "expandable";
11
+ readonly Field: "field";
12
+ readonly Frame: "frame";
13
+ readonly Icon: "icon";
14
+ readonly Mermaid: "mermaid";
15
+ readonly Step: "step";
16
+ readonly Steps: "steps";
17
+ readonly Tab: "tab";
18
+ readonly Tabs: "tabs";
19
+ readonly TabIcon: "tab-icon";
20
+ readonly Update: "update";
21
+ readonly Tooltip: "tooltip";
22
+ readonly Panel: "panel";
23
+ readonly APISection: "api-section";
24
+ readonly APISectionHeading: "api-section-heading";
25
+ readonly APISectionHeadingTitle: "api-section-heading-title";
26
+ readonly APISectionHeadingSubtitle: "api-section-heading-subtitle";
27
+ readonly OptionDropdown: "option-dropdown";
28
+ readonly TryitButton: "tryit-button";
29
+ readonly MethodPill: "method-pill";
30
+ readonly MethodNavPill: "method-nav-pill";
31
+ readonly NavTagPill: "nav-tag-pill";
32
+ readonly NavTagPillText: "nav-tag-pill-text";
33
+ readonly Anchors: "nav-anchors";
34
+ readonly Anchor: "nav-anchor";
35
+ readonly TabsBar: "nav-tabs";
36
+ readonly TabsBarItem: "nav-tabs-item";
37
+ readonly MobileNavTabsBarItem: "mobile-nav-tabs-item";
38
+ readonly TableOfContents: "toc";
39
+ readonly TableOfContentsItem: "toc-item";
40
+ readonly Footer: "footer";
41
+ readonly AdvancedFooter: "advanced-footer";
42
+ readonly SidebarGroupIcon: "sidebar-group-icon";
43
+ readonly SidebarGroupHeader: "sidebar-group-header";
44
+ readonly SidebarTitle: "sidebar-title";
45
+ readonly SidebarGroup: "sidebar-group";
46
+ readonly SidebarNavGroupDivider: "sidebar-nav-group-divider";
47
+ readonly NavBarLink: "navbar-link";
48
+ readonly TopbarRightContainer: "topbar-right-container";
49
+ readonly Logo: "nav-logo";
50
+ readonly PaginationPrev: "pagination-prev";
51
+ readonly PaginationNext: "pagination-next";
52
+ readonly PaginationTitle: "pagination-title";
53
+ readonly FeedbackToolbar: "feedback-toolbar";
54
+ readonly Eyebrow: "eyebrow";
55
+ readonly BreadcrumbList: "breadcrumb-list";
56
+ readonly BreadcrumbItem: "breadcrumb-item";
57
+ readonly Content: "mdx-content";
58
+ readonly DropdownTrigger: "nav-dropdown-trigger";
59
+ readonly DropdownContent: "nav-dropdown-content";
60
+ readonly DropdownItem: "nav-dropdown-item";
61
+ readonly DropdownItemTextContainer: "nav-dropdown-item-text-container";
62
+ readonly DropdownItemTitle: "nav-dropdown-item-title";
63
+ readonly DropdownItemDescription: "nav-dropdown-item-description";
64
+ readonly DropdownItemIcon: "nav-dropdown-item-icon";
65
+ readonly ProductsSelectorTrigger: "nav-dropdown-products-selector-trigger";
66
+ readonly ProductsSelectorContent: "nav-dropdown-products-selector-content";
67
+ readonly ProductsSelectorItem: "nav-dropdown-products-selector-item";
68
+ readonly ProductsSelectorItemTitle: "nav-dropdown-products-selector-item-title";
69
+ readonly ProductsSelectorItemDescription: "nav-dropdown-products-selector-item-description";
70
+ readonly ProductsSelectorItemIcon: "nav-dropdown-products-selector-item-icon";
71
+ readonly Link: "link";
72
+ readonly AlmondLayout: "almond-layout";
73
+ readonly AlmondNavBottomSection: "almond-nav-bottom-section";
74
+ readonly AlmondNavBottomSectionDivider: "almond-nav-bottom-section-divider";
75
+ readonly ChatAssistantSheet: "chat-assistant-sheet";
76
+ readonly ChatAssistantSheetHeader: "chat-assistant-sheet-header";
77
+ readonly ChatAssistantSheetContent: "chat-assistant-sheet-content";
78
+ readonly ChatAssistantInput: "chat-assistant-input";
79
+ readonly ChatAssistantFloatingInput: "chat-assistant-floating-input";
80
+ readonly ChatAssistantSendButton: "chat-assistant-send-button";
81
+ readonly ChatAssistantDisclaimerText: "chat-assistant-disclaimer-text";
82
+ readonly ChatAssistantPayloadItem: "chat-assistant-payload-item";
83
+ readonly StarterQuestionText: "starter-question-text";
84
+ readonly LoginLink: "login-link";
85
+ readonly LogoutLink: "logout-link";
86
+ readonly ContextualFeedbackContainer: "contextual-feedback-container";
87
+ readonly ContextualFeedbackForm: "contextual-feedback-form";
88
+ readonly ContextualFeedbackFormTitle: "contextual-feedback-form-title";
89
+ readonly ContextualFeedbackFormInput: "contextual-feedback-input";
90
+ readonly ContextualFeedbackFormButton: "contextual-feedback-button";
91
+ readonly ContextualFeedbackFormSubmitButton: "contextual-feedback-form-submit-button";
92
+ readonly CodeSnippetFeedbackPopoverContent: "code-snippet-feedback-popover-content";
93
+ readonly CodeSnippetFeedbackForm: "code-snippet-feedback-form";
94
+ readonly CodeSnippetFeedbackButton: "code-snippet-feedback-button";
95
+ readonly CodeSnippetFeedbackTextArea: "code-snippet-feedback-textarea";
96
+ readonly CodeSnippetFeedbackFormTitle: "code-snippet-feedback-form-title";
97
+ readonly CodeSnippetFeedbackFormDescription: "code-snippet-feedback-form-description";
98
+ readonly CodeSnippetFeedbackFormSubmitButton: "code-snippet-feedback-form-submit-button";
99
+ readonly NotFoundContainer: "not-found-container";
100
+ readonly NotFoundStatusCode: "not-found-status-code";
101
+ readonly NotFoundTitle: "not-found-title";
102
+ readonly NotFoundDescription: "not-found-description";
103
+ readonly NotFoundLogo: "not-found-logo";
104
+ readonly NotFoundLogoContainer: "not-found-logo-container";
105
+ readonly NotFoundMessage: "not-found-message";
106
+ readonly NotFoundGoBackButton: "not-found-go-back-button";
107
+ readonly NotFoundGoBackArrow: "not-found-go-back-arrow";
108
+ readonly NotFoundGoBackText: "not-found-go-back-text";
109
+ readonly NotFoundRecommendedPagesList: "not-found-recommended-pages-list";
110
+ readonly NotFoundRecommendedPageLink: "not-found-recommended-page-link";
111
+ readonly MultiViewItem: "multi-view-item";
112
+ readonly MultiViewDropdown: "multi-view-dropdown";
113
+ readonly MultiViewDropdownTrigger: "multi-view-dropdown-trigger";
114
+ readonly MultiViewDropdownContent: "multi-view-dropdown-content";
115
+ readonly MultiViewDropdownItem: "multi-view-dropdown-item";
116
+ readonly Color: "color";
117
+ readonly ColorRow: "color-row";
118
+ readonly ColorItem: "color-item";
119
+ readonly Tile: "tile";
120
+ readonly Tree: "tree";
121
+ readonly TreeFolder: "tree-folder";
122
+ readonly TreeFile: "tree-file";
123
+ };
124
+ declare const Classes: { readonly [K in keyof typeof _classes]: `${(typeof _classes)[K]}`; };
125
+ export { Classes };