rspress-plugin-api-extractor 0.1.1 → 0.2.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 (110) hide show
  1. package/README.md +2 -2
  2. package/api-extracted-package.js +426 -0
  3. package/build-program.js +120 -0
  4. package/build-stages.js +664 -0
  5. package/category-resolver.js +50 -0
  6. package/code-post-processor.js +38 -0
  7. package/config-helpers.js +106 -0
  8. package/config-utils.js +258 -0
  9. package/content-hash.js +79 -0
  10. package/errors.js +29 -0
  11. package/formatter.js +69 -0
  12. package/hide-cut-transformer.js +96 -0
  13. package/index.d.ts +901 -831
  14. package/index.js +4 -6332
  15. package/layers/ConfigServiceLive.js +377 -0
  16. package/layers/ObservabilityLive.js +136 -0
  17. package/layers/PathDerivationServiceLive.js +16 -0
  18. package/layers/SnapshotServiceLive.js +94 -0
  19. package/layers/TypeRegistryServiceLive.js +46 -0
  20. package/llms-processing.js +270 -0
  21. package/llms-program.js +262 -0
  22. package/loader.js +186 -0
  23. package/markdown/cross-linker.js +156 -0
  24. package/markdown/helpers.js +364 -0
  25. package/markdown/index.js +11 -0
  26. package/markdown/page-generators/class-page.js +357 -0
  27. package/markdown/page-generators/enum-page.js +152 -0
  28. package/markdown/page-generators/function-page.js +127 -0
  29. package/markdown/page-generators/index-pages.js +27 -0
  30. package/markdown/page-generators/interface-page.js +307 -0
  31. package/markdown/page-generators/namespace-page.js +280 -0
  32. package/markdown/page-generators/type-alias-page.js +110 -0
  33. package/markdown/page-generators/variable-page.js +110 -0
  34. package/markdown/shiki-utils.js +48 -0
  35. package/migrations/001_create_snapshots.js +25 -0
  36. package/model-loader.js +95 -0
  37. package/multi-entry-resolver.js +70 -0
  38. package/og-resolver.js +271 -0
  39. package/package.json +63 -72
  40. package/path-derivation.js +48 -0
  41. package/plugin.js +218 -0
  42. package/prettier-formatter.js +73 -0
  43. package/public/tsconfig/rspress.json +44 -0
  44. package/remark-api-codeblocks.js +130 -0
  45. package/remark-with-api.js +172 -0
  46. package/route-collisions.js +52 -0
  47. package/runtime/components/ApiExample/index.js +33 -0
  48. package/runtime/components/ApiLlmsPackageActions/index.js +277 -0
  49. package/runtime/components/ApiLlmsViewOptions/index.js +294 -0
  50. package/runtime/components/ApiMember/index.js +53 -0
  51. package/runtime/components/ApiSignature/index.js +36 -0
  52. package/runtime/components/EnumMembersTable/index.css +99 -0
  53. package/runtime/components/EnumMembersTable/index.js +38 -0
  54. package/runtime/components/EnumMembersTable/index.module.js +10 -0
  55. package/runtime/components/ExampleBlock/index.css +11 -0
  56. package/runtime/components/ExampleBlock/index.js +31 -0
  57. package/runtime/components/ExampleBlock/index.module.js +9 -0
  58. package/runtime/components/MarkdownContent/index.js +31 -0
  59. package/runtime/components/MarkdownText/index.js +33 -0
  60. package/runtime/components/MemberSignature/index.css +26 -0
  61. package/runtime/components/MemberSignature/index.js +54 -0
  62. package/runtime/components/MemberSignature/index.module.js +10 -0
  63. package/runtime/components/ParametersTable/index.css +103 -0
  64. package/runtime/components/ParametersTable/index.js +38 -0
  65. package/runtime/components/ParametersTable/index.module.js +10 -0
  66. package/runtime/components/SignatureBlock/index.css +26 -0
  67. package/runtime/components/SignatureBlock/index.js +36 -0
  68. package/runtime/components/SignatureBlock/index.module.js +10 -0
  69. package/runtime/components/SignatureCode/index.css +52 -0
  70. package/runtime/components/SignatureCode/index.js +44 -0
  71. package/runtime/components/SignatureCode/index.module.js +10 -0
  72. package/runtime/components/SignatureToolbar/index.css +122 -0
  73. package/runtime/components/SignatureToolbar/index.js +52 -0
  74. package/runtime/components/SignatureToolbar/index.module.js +14 -0
  75. package/runtime/components/buttons/ButtonGroup.js +16 -0
  76. package/runtime/components/buttons/CopyCodeButton.js +44 -0
  77. package/runtime/components/buttons/WrapSignatureButton.js +24 -0
  78. package/runtime/components/buttons/index.css +36 -0
  79. package/runtime/components/buttons/index.module.js +9 -0
  80. package/runtime/components/icons/CheckIcon/index.js +23 -0
  81. package/runtime/components/icons/CopyIcon/index.js +23 -0
  82. package/runtime/components/icons/UnwrapIcon/index.js +25 -0
  83. package/runtime/components/icons/WrapIcon/index.js +23 -0
  84. package/runtime/components/shared/_twoslash.css +440 -0
  85. package/runtime/components/shared/types.js +0 -0
  86. package/runtime/components/shared/variables.css +82 -0
  87. package/runtime/hooks/useWrapToggle.js +35 -0
  88. package/runtime/index.d.ts +513 -173
  89. package/runtime/index.js +13 -664
  90. package/runtime/utils/decode-hast.js +33 -0
  91. package/runtime/utils/hast-renderer.js +24 -0
  92. package/schemas/config.js +199 -0
  93. package/schemas/index.js +5 -0
  94. package/schemas/opengraph.js +26 -0
  95. package/schemas/performance.js +19 -0
  96. package/serve.js +133 -0
  97. package/services/ConfigService.js +7 -0
  98. package/services/PathDerivationService.js +7 -0
  99. package/services/SnapshotService.js +7 -0
  100. package/services/TypeRegistryService.js +7 -0
  101. package/shiki-transformer.js +758 -0
  102. package/tsconfig-parser.js +127 -0
  103. package/tsdoc-metadata.json +11 -11
  104. package/twoslash-patterns.js +87 -0
  105. package/twoslash-transformer.js +316 -0
  106. package/type-reference-extractor.js +201 -0
  107. package/typescript-config.js +168 -0
  108. package/vfs-registry.js +121 -0
  109. package/0~llms-program.js +0 -344
  110. package/runtime/index.css +0 -1016
@@ -0,0 +1,44 @@
1
+ import { hastToReact } from "../../utils/hast-renderer.js";
2
+ import index_module_default from "./index.module.js";
3
+ import { useEffect, useRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import clsx from "clsx";
6
+
7
+ //#region src/runtime/components/SignatureCode/index.tsx
8
+ /**
9
+ * Code block for displaying syntax-highlighted signatures
10
+ * Supports wrapped and unwrapped states
11
+ * Uses HAST for safe rendering without dangerouslySetInnerHTML
12
+ */
13
+ function SignatureCode({ hast, wrapped }) {
14
+ const containerRef = useRef(null);
15
+ useEffect(() => {
16
+ const container = containerRef.current;
17
+ if (!container) return;
18
+ const handleMouseOver = (e) => {
19
+ const hover = e.target.closest?.(".twoslash-hover");
20
+ if (!hover) return;
21
+ const popup = hover.querySelector(".twoslash-popup-container");
22
+ if (!popup) return;
23
+ const hoverRect = hover.getBoundingClientRect();
24
+ const containerWidth = container.getBoundingClientRect().width;
25
+ popup.style.setProperty("--popup-top", `${hoverRect.bottom + 4}px`);
26
+ popup.style.setProperty("--popup-left", `${hoverRect.left}px`);
27
+ popup.style.setProperty("--popup-max-width", `${containerWidth * .75}px`);
28
+ };
29
+ container.addEventListener("mouseover", handleMouseOver);
30
+ return () => container.removeEventListener("mouseover", handleMouseOver);
31
+ }, []);
32
+ if (!hast) return /* @__PURE__ */ jsx("div", {
33
+ ref: containerRef,
34
+ className: clsx(index_module_default.code, wrapped && index_module_default.wrapped)
35
+ });
36
+ return /* @__PURE__ */ jsx("div", {
37
+ ref: containerRef,
38
+ className: clsx("api-doc-code", index_module_default.code, wrapped && index_module_default.wrapped),
39
+ children: hastToReact(hast)
40
+ });
41
+ }
42
+
43
+ //#endregion
44
+ export { SignatureCode };
@@ -0,0 +1,10 @@
1
+ import './index.css';
2
+ //#region src/runtime/components/SignatureCode/index.module.css
3
+ var index_module_default = {
4
+ "code": "Ze8uHG_code",
5
+ "rpDark": "Ze8uHG_rp-dark",
6
+ "wrapped": "Ze8uHG_wrapped"
7
+ };
8
+
9
+ //#endregion
10
+ export { index_module_default as default };
@@ -0,0 +1,122 @@
1
+ .HQ_pKG_toolbar {
2
+ justify-content: flex-end;
3
+ align-items: flex-end;
4
+ gap: var(--api-spacing-sm);
5
+ padding: var(--api-spacing-sm);
6
+ background-color: var(--api-color-bg);
7
+ border-top-left-radius: var(--api-border-radius);
8
+ border-top-right-radius: var(--api-border-radius);
9
+ display: flex;
10
+ }
11
+
12
+ html.HQ_pKG_rp-dark .HQ_pKG_toolbar {
13
+ background-color: var(--api-color-bg);
14
+ border-bottom-color: var(--api-color-border);
15
+ }
16
+
17
+ .HQ_pKG_toolbar:has(.HQ_pKG_memberHeading) {
18
+ justify-content: space-between;
19
+ }
20
+
21
+ .HQ_pKG_toolbar h2, .HQ_pKG_toolbar h3 {
22
+ font-size: var(--api-font-size-lg);
23
+ padding-left: var(--api-spacing-sm);
24
+ font-family: var(--rp-font-family-mono);
25
+ margin-top: 0;
26
+ margin-bottom: 0;
27
+ }
28
+
29
+ .HQ_pKG_toolbarLeft {
30
+ gap: var(--api-spacing-sm);
31
+ flex-direction: column;
32
+ flex: 1;
33
+ display: flex;
34
+ }
35
+
36
+ .HQ_pKG_memberHeading {
37
+ font-size: var(--api-font-size-md);
38
+ color: var(--api-color-text);
39
+ height: auto;
40
+ font-weight: 600;
41
+ line-height: var(--api-line-height-base);
42
+ user-select: auto;
43
+ margin: 0;
44
+ position: relative;
45
+ overflow: visible;
46
+ }
47
+
48
+ html.HQ_pKG_rp-dark .HQ_pKG_memberHeading {
49
+ color: var(--api-color-text);
50
+ }
51
+
52
+ .HQ_pKG_memberHeading .rp-header-anchor {
53
+ opacity: 0;
54
+ font-weight: 500;
55
+ font-size: inherit;
56
+ color: var(--rp-c-brand);
57
+ text-decoration: none;
58
+ transition: color .25s, opacity .25s;
59
+ position: absolute;
60
+ left: -1.2rem;
61
+ }
62
+
63
+ .HQ_pKG_memberHeading:hover .rp-header-anchor {
64
+ opacity: .85;
65
+ }
66
+
67
+ .HQ_pKG_memberHeading .rp-header-anchor:hover {
68
+ border-bottom: 1px solid var(--rp-c-brand);
69
+ opacity: .85;
70
+ }
71
+
72
+ .HQ_pKG_memberHeadingH2 {
73
+ font-size: var(--api-font-size-lg);
74
+ text-transform: lowercase;
75
+ border-top: none;
76
+ margin-top: 0;
77
+ margin-bottom: 0;
78
+ padding-top: 0;
79
+ font-weight: 600;
80
+ line-height: 2rem;
81
+ }
82
+
83
+ .HQ_pKG_memberHeadingH2:before, .HQ_pKG_memberHeadingH2:after {
84
+ content: none;
85
+ margin: 0;
86
+ padding: 0;
87
+ display: none;
88
+ }
89
+
90
+ .HQ_pKG_memberHeadingH2 .rp-header-anchor {
91
+ font-size: var(--api-font-size-lg);
92
+ left: -1.5rem;
93
+ }
94
+
95
+ .HQ_pKG_summary {
96
+ padding: 0;
97
+ padding-left: var(--api-spacing-sm);
98
+ font-size: var(--api-font-size-md);
99
+ line-height: var(--api-line-height-base);
100
+ color: var(--api-color-text-secondary);
101
+ background-color: #0000;
102
+ border: none;
103
+ }
104
+
105
+ html.HQ_pKG_rp-dark .HQ_pKG_summary {
106
+ color: var(--api-color-text-secondary);
107
+ background-color: #0000;
108
+ border: none;
109
+ }
110
+
111
+ .HQ_pKG_summary p:first-child {
112
+ margin-top: 0;
113
+ }
114
+
115
+ .HQ_pKG_summary p:last-child, .HQ_pKG_summary ul:last-child, .HQ_pKG_summary ol:last-child {
116
+ margin-bottom: 0;
117
+ }
118
+
119
+ .HQ_pKG_buttons {
120
+ gap: var(--api-spacing-sm);
121
+ display: flex;
122
+ }
@@ -0,0 +1,52 @@
1
+ import { MarkdownContent } from "../MarkdownContent/index.js";
2
+ import index_module_default from "./index.module.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import clsx from "clsx";
5
+
6
+ //#region src/runtime/components/SignatureToolbar/index.tsx
7
+ /**
8
+ * Toolbar for signature blocks
9
+ * Displays optional heading, summary, and action buttons
10
+ */
11
+ function SignatureToolbar({ heading, summary, buttons }) {
12
+ const renderHeading = () => {
13
+ if (!heading) return null;
14
+ const HeadingTag = heading.level;
15
+ const headingClasses = heading.className || clsx("rp-toc-include", index_module_default.memberHeading, heading.level === "h2" && index_module_default.memberHeadingH2);
16
+ return /* @__PURE__ */ jsxs(HeadingTag, {
17
+ id: heading.id,
18
+ className: headingClasses,
19
+ children: [heading.id && /* @__PURE__ */ jsx("a", {
20
+ href: `#${heading.id}`,
21
+ className: "rp-header-anchor rp-link",
22
+ tabIndex: -1,
23
+ "aria-label": "Permalink",
24
+ children: "#"
25
+ }), heading.text]
26
+ });
27
+ };
28
+ const renderSummary = () => {
29
+ if (!summary) return null;
30
+ return /* @__PURE__ */ jsx("div", {
31
+ className: index_module_default.summary,
32
+ children: /* @__PURE__ */ jsx(MarkdownContent, { children: summary })
33
+ });
34
+ };
35
+ if (heading) return /* @__PURE__ */ jsxs("div", {
36
+ className: index_module_default.toolbar,
37
+ children: [/* @__PURE__ */ jsxs("div", {
38
+ className: index_module_default.toolbarLeft,
39
+ children: [renderHeading(), renderSummary()]
40
+ }), /* @__PURE__ */ jsx("div", {
41
+ className: index_module_default.buttons,
42
+ children: buttons
43
+ })]
44
+ });
45
+ return /* @__PURE__ */ jsx("div", {
46
+ className: index_module_default.toolbar,
47
+ children: buttons
48
+ });
49
+ }
50
+
51
+ //#endregion
52
+ export { SignatureToolbar };
@@ -0,0 +1,14 @@
1
+ import './index.css';
2
+ //#region src/runtime/components/SignatureToolbar/index.module.css
3
+ var index_module_default = {
4
+ "buttons": "HQ_pKG_buttons",
5
+ "memberHeading": "HQ_pKG_memberHeading",
6
+ "memberHeadingH2": "HQ_pKG_memberHeadingH2",
7
+ "rpDark": "HQ_pKG_rp-dark",
8
+ "summary": "HQ_pKG_summary",
9
+ "toolbar": "HQ_pKG_toolbar",
10
+ "toolbarLeft": "HQ_pKG_toolbarLeft"
11
+ };
12
+
13
+ //#endregion
14
+ export { index_module_default as default };
@@ -0,0 +1,16 @@
1
+ import index_module_default from "./index.module.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region src/runtime/components/buttons/ButtonGroup.tsx
5
+ /**
6
+ * Container for grouping multiple buttons with consistent spacing
7
+ */
8
+ function ButtonGroup({ children }) {
9
+ return /* @__PURE__ */ jsx("div", {
10
+ className: index_module_default.buttonGroup,
11
+ children
12
+ });
13
+ }
14
+
15
+ //#endregion
16
+ export { ButtonGroup };
@@ -0,0 +1,44 @@
1
+ import index_module_default from "./index.module.js";
2
+ import { CheckIcon } from "../icons/CheckIcon/index.js";
3
+ import { CopyIcon } from "../icons/CopyIcon/index.js";
4
+ import { useCallback, useState } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import clsx from "clsx";
7
+
8
+ //#region src/runtime/components/buttons/CopyCodeButton.tsx
9
+ /**
10
+ * Copy code button for code blocks
11
+ * Shows copy icon, changes to checkmark on success
12
+ */
13
+ function CopyCodeButton({ code }) {
14
+ const [copied, setCopied] = useState(false);
15
+ const handleCopy = useCallback(async () => {
16
+ try {
17
+ await navigator.clipboard.writeText(code);
18
+ setCopied(true);
19
+ setTimeout(() => setCopied(false), 2e3);
20
+ } catch {
21
+ const textarea = document.createElement("textarea");
22
+ textarea.value = code;
23
+ textarea.style.position = "fixed";
24
+ textarea.style.opacity = "0";
25
+ document.body.appendChild(textarea);
26
+ textarea.select();
27
+ document.execCommand("copy");
28
+ document.body.removeChild(textarea);
29
+ setCopied(true);
30
+ setTimeout(() => setCopied(false), 2e3);
31
+ }
32
+ }, [code]);
33
+ return /* @__PURE__ */ jsx("button", {
34
+ type: "button",
35
+ className: clsx(index_module_default.button, copied && "active"),
36
+ onClick: handleCopy,
37
+ "aria-label": copied ? "Copied!" : "Copy code",
38
+ title: copied ? "Copied!" : "Copy code",
39
+ children: copied ? /* @__PURE__ */ jsx(CheckIcon, { size: 16 }) : /* @__PURE__ */ jsx(CopyIcon, { size: 16 })
40
+ });
41
+ }
42
+
43
+ //#endregion
44
+ export { CopyCodeButton };
@@ -0,0 +1,24 @@
1
+ import index_module_default from "./index.module.js";
2
+ import { UnwrapIcon } from "../icons/UnwrapIcon/index.js";
3
+ import { WrapIcon } from "../icons/WrapIcon/index.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import clsx from "clsx";
6
+
7
+ //#region src/runtime/components/buttons/WrapSignatureButton.tsx
8
+ /**
9
+ * Wrap toggle button for API signature blocks
10
+ * Shows wrapped/unwrapped state with distinct icons
11
+ */
12
+ function WrapSignatureButton({ wrapped, onToggle }) {
13
+ return /* @__PURE__ */ jsx("button", {
14
+ type: "button",
15
+ className: clsx(index_module_default.button, wrapped && "active"),
16
+ onClick: onToggle,
17
+ "aria-label": wrapped ? "Disable line wrapping" : "Enable line wrapping",
18
+ title: wrapped ? "Disable wrapping" : "Enable wrapping",
19
+ children: wrapped ? /* @__PURE__ */ jsx(UnwrapIcon, { size: 16 }) : /* @__PURE__ */ jsx(WrapIcon, { size: 16 })
20
+ });
21
+ }
22
+
23
+ //#endregion
24
+ export { WrapSignatureButton };
@@ -0,0 +1,36 @@
1
+ .Fw3JAa_buttonGroup {
2
+ gap: var(--api-spacing-sm);
3
+ display: flex;
4
+ }
5
+
6
+ .Fw3JAa_button {
7
+ align-items: center;
8
+ gap: var(--api-spacing-xs);
9
+ padding: var(--api-spacing-xs) var(--api-spacing-md);
10
+ font-size: var(--api-font-size-sm);
11
+ font-weight: 500;
12
+ line-height: var(--api-line-height-button);
13
+ color: var(--api-color-text);
14
+ background-color: var(--api-color-bg-secondary);
15
+ border: 1px solid var(--api-color-border-secondary);
16
+ border-radius: var(--api-border-radius);
17
+ cursor: pointer;
18
+ transition: all var(--api-transition-fast);
19
+ display: inline-flex;
20
+ }
21
+
22
+ .Fw3JAa_button:hover {
23
+ background-color: var(--api-color-hover-bg);
24
+ border-color: var(--api-color-border-hover);
25
+ }
26
+
27
+ .Fw3JAa_button:active {
28
+ background-color: var(--api-color-active-bg);
29
+ transform: scale(.98);
30
+ }
31
+
32
+ .Fw3JAa_button svg {
33
+ flex-shrink: 0;
34
+ width: 16px;
35
+ height: 16px;
36
+ }
@@ -0,0 +1,9 @@
1
+ import './index.css';
2
+ //#region src/runtime/components/buttons/index.module.css
3
+ var index_module_default = {
4
+ "button": "Fw3JAa_button",
5
+ "buttonGroup": "Fw3JAa_buttonGroup"
6
+ };
7
+
8
+ //#endregion
9
+ export { index_module_default as default };
@@ -0,0 +1,23 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+
3
+ //#region src/runtime/components/icons/CheckIcon/index.tsx
4
+ /**
5
+ * Check/checkmark icon for success states
6
+ * Shows a checkmark indicating success/completion
7
+ */
8
+ function CheckIcon({ size = 16, ...props }) {
9
+ return /* @__PURE__ */ jsxs("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 24 24",
14
+ ...props,
15
+ children: [/* @__PURE__ */ jsx("title", { children: "Copied" }), /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M21 7L9 19l-5.5-5.5l1.41-1.41L9 16.17L19.59 5.59L21 7Z"
18
+ })]
19
+ });
20
+ }
21
+
22
+ //#endregion
23
+ export { CheckIcon };
@@ -0,0 +1,23 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+
3
+ //#region src/runtime/components/icons/CopyIcon/index.tsx
4
+ /**
5
+ * Copy icon for copy code buttons
6
+ * Shows two overlapping rectangles indicating copy/duplicate
7
+ */
8
+ function CopyIcon({ size = 16, ...props }) {
9
+ return /* @__PURE__ */ jsxs("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 24 24",
14
+ ...props,
15
+ children: [/* @__PURE__ */ jsx("title", { children: "Copy" }), /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"
18
+ })]
19
+ });
20
+ }
21
+
22
+ //#endregion
23
+ export { CopyIcon };
@@ -0,0 +1,25 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+
3
+ //#region src/runtime/components/icons/UnwrapIcon/index.tsx
4
+ /**
5
+ * Unwrap icon for text wrapping toggle buttons (active state)
6
+ * Shows wrapped lines with an arrow indicating active wrap mode
7
+ * Uses green color to indicate active state
8
+ */
9
+ function UnwrapIcon({ size = 16, ...props }) {
10
+ return /* @__PURE__ */ jsxs("svg", {
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ width: size,
13
+ height: size,
14
+ viewBox: "0 0 24 24",
15
+ "aria-label": "Wrapped",
16
+ ...props,
17
+ children: [/* @__PURE__ */ jsx("title", { children: "Unwrap" }), /* @__PURE__ */ jsx("path", {
18
+ fill: "#22a041",
19
+ d: "M21 5H3v2h18zM3 19h7v-2H3zm0-6h15c1 0 2 .43 2 2s-1 2-2 2h-2v-2l-4 3l4 3v-2h2c2.95 0 4-1.27 4-4c0-2.72-1-4-4-4H3z"
20
+ })]
21
+ });
22
+ }
23
+
24
+ //#endregion
25
+ export { UnwrapIcon };
@@ -0,0 +1,23 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+
3
+ //#region src/runtime/components/icons/WrapIcon/index.tsx
4
+ /**
5
+ * Wrap icon for text wrapping toggle buttons
6
+ * Shows lines with an arrow indicating text will wrap
7
+ */
8
+ function WrapIcon({ size = 16, ...props }) {
9
+ return /* @__PURE__ */ jsxs("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 24 24",
14
+ ...props,
15
+ children: [/* @__PURE__ */ jsx("title", { children: "Wrap" }), /* @__PURE__ */ jsx("path", {
16
+ fill: "currentColor",
17
+ d: "M16 7H3V5h13v2M3 19h13v-2H3v2m19-7l-4-3v2H3v2h15v2l4-3Z"
18
+ })]
19
+ });
20
+ }
21
+
22
+ //#endregion
23
+ export { WrapIcon };