@superxd-studio/adptr 0.5.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 (221) hide show
  1. package/GENERATIVE.md +101 -0
  2. package/INTERACTIONS.md +51 -0
  3. package/LICENSE +21 -0
  4. package/README.md +57 -0
  5. package/REUSE.md +170 -0
  6. package/REVIEW.md +68 -0
  7. package/THIRD-PARTY-NOTICES.md +28 -0
  8. package/ai-sdk/index.js +96 -0
  9. package/assets/ibm-plex-mono-cyrillic-400-normal.woff2 +0 -0
  10. package/assets/ibm-plex-mono-cyrillic-500-normal.woff2 +0 -0
  11. package/assets/ibm-plex-mono-cyrillic-ext-400-normal.woff2 +0 -0
  12. package/assets/ibm-plex-mono-cyrillic-ext-500-normal.woff2 +0 -0
  13. package/assets/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  14. package/assets/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  15. package/assets/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
  16. package/assets/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
  17. package/assets/ibm-plex-mono-vietnamese-400-normal.woff2 +0 -0
  18. package/assets/ibm-plex-mono-vietnamese-500-normal.woff2 +0 -0
  19. package/assets/instrument-sans-latin-ext-wght-normal.woff2 +0 -0
  20. package/assets/instrument-sans-latin-wght-normal.woff2 +0 -0
  21. package/assistant-ui/index.js +139 -0
  22. package/chunks/callout-DKMHSnjc.js +342 -0
  23. package/chunks/canvas-BJ15-XxE.js +598 -0
  24. package/chunks/controller-Cfpg0C7v.js +180 -0
  25. package/chunks/core-BCqVRLUy.js +312 -0
  26. package/chunks/text-field-BLtoaZFn.js +41 -0
  27. package/chunks/types-BGF7r1my.js +115 -0
  28. package/chunks/ui-9DyNsYXY.js +967 -0
  29. package/core/index.js +4 -0
  30. package/custom/index.js +64 -0
  31. package/examples/ai-sdk-backend/package.json +11 -0
  32. package/examples/ai-sdk-backend/server.mjs +316 -0
  33. package/examples/custom-backend/copy.mjs +7 -0
  34. package/examples/custom-backend/server.mjs +118 -0
  35. package/examples/generative/specs.json +2094 -0
  36. package/examples/review-backend/copy.mjs +27 -0
  37. package/examples/review-backend/package.json +11 -0
  38. package/examples/review-backend/server.mjs +276 -0
  39. package/examples/web-ai-sdk/index.html +12 -0
  40. package/examples/web-ai-sdk/package.json +21 -0
  41. package/examples/web-ai-sdk/src/copy.ts +1 -0
  42. package/examples/web-ai-sdk/src/main.tsx +64 -0
  43. package/examples/web-ai-sdk/tsconfig.json +13 -0
  44. package/examples/web-generative/index.html +12 -0
  45. package/examples/web-generative/package.json +23 -0
  46. package/examples/web-generative/src/copy.ts +42 -0
  47. package/examples/web-generative/src/main.tsx +74 -0
  48. package/examples/web-generative/tsconfig.json +14 -0
  49. package/examples/web-independent/index.html +12 -0
  50. package/examples/web-independent/package.json +20 -0
  51. package/examples/web-independent/src/main.tsx +32 -0
  52. package/examples/web-independent/tsconfig.json +14 -0
  53. package/examples/web-interactions/index.html +12 -0
  54. package/examples/web-interactions/package.json +21 -0
  55. package/examples/web-interactions/src/copy.ts +215 -0
  56. package/examples/web-interactions/src/examples.tsx +628 -0
  57. package/examples/web-interactions/src/main.tsx +116 -0
  58. package/examples/web-interactions/tsconfig.json +14 -0
  59. package/examples/web-review/index.html +12 -0
  60. package/examples/web-review/package.json +20 -0
  61. package/examples/web-review/src/main.tsx +59 -0
  62. package/examples/web-review/tsconfig.json +14 -0
  63. package/fonts.css +117 -0
  64. package/generative/index.js +1560 -0
  65. package/interactions/index.js +1591 -0
  66. package/langgraph-review/index.js +36 -0
  67. package/licenses/ai-sdk.txt +13 -0
  68. package/licenses/assistant-ui-generative.txt +21 -0
  69. package/licenses/assistant-ui.txt +23 -0
  70. package/licenses/ibm-plex-mono.txt +93 -0
  71. package/licenses/instrument-sans.txt +93 -0
  72. package/licenses/internationalized-date.txt +201 -0
  73. package/licenses/langgraph.txt +21 -0
  74. package/licenses/lucide.txt +43 -0
  75. package/licenses/react-markdown.txt +21 -0
  76. package/licenses/remark-gfm.txt +22 -0
  77. package/licenses/zod.txt +21 -0
  78. package/package.json +138 -0
  79. package/review/index.js +31 -0
  80. package/source/components/avatar.tsx +50 -0
  81. package/source/components/button.tsx +155 -0
  82. package/source/components/callout.tsx +65 -0
  83. package/source/components/canvas/connector.tsx +14 -0
  84. package/source/components/canvas/copy.ts +34 -0
  85. package/source/components/canvas/index.tsx +257 -0
  86. package/source/components/canvas/recorder.ts +36 -0
  87. package/source/components/date-time-field.tsx +77 -0
  88. package/source/components/flow-motion.tsx +109 -0
  89. package/source/components/icons.tsx +275 -0
  90. package/source/components/responsive-overlay.tsx +91 -0
  91. package/source/components/scenario-picker/copy.ts +5 -0
  92. package/source/components/scenario-picker/index.tsx +142 -0
  93. package/source/components/scroll-area.tsx +59 -0
  94. package/source/components/search-picker.tsx +127 -0
  95. package/source/components/segmented-control.tsx +123 -0
  96. package/source/components/skeleton.tsx +11 -0
  97. package/source/components/spinner.tsx +19 -0
  98. package/source/components/superxd-arrow.tsx +22 -0
  99. package/source/components/switch.tsx +45 -0
  100. package/source/components/text-field.tsx +81 -0
  101. package/source/components/thinking.tsx +16 -0
  102. package/source/components/ui/copy.ts +12 -0
  103. package/source/components/ui/display.tsx +276 -0
  104. package/source/components/ui/navigation.tsx +346 -0
  105. package/source/components/ui/portal-theme.tsx +28 -0
  106. package/source/components/ui/selection.tsx +336 -0
  107. package/source/lib/cn.ts +23 -0
  108. package/source/reusable/ai-sdk/index.ts +114 -0
  109. package/source/reusable/assistant-ui/index.tsx +266 -0
  110. package/source/reusable/core/attachments.ts +163 -0
  111. package/source/reusable/core/index.ts +417 -0
  112. package/source/reusable/custom/index.ts +90 -0
  113. package/source/reusable/generative/actions.ts +188 -0
  114. package/source/reusable/generative/copy.ts +47 -0
  115. package/source/reusable/generative/data.tsx +126 -0
  116. package/source/reusable/generative/index.tsx +517 -0
  117. package/source/reusable/generative/schema.ts +327 -0
  118. package/source/reusable/generative/timeline.tsx +214 -0
  119. package/source/reusable/generative/vocabulary.tsx +847 -0
  120. package/source/reusable/interactions/agent.ts +259 -0
  121. package/source/reusable/interactions/artifact.ts +236 -0
  122. package/source/reusable/interactions/context.tsx +38 -0
  123. package/source/reusable/interactions/copy.ts +117 -0
  124. package/source/reusable/interactions/feedback.ts +73 -0
  125. package/source/reusable/interactions/index.ts +11 -0
  126. package/source/reusable/interactions/presentation.tsx +483 -0
  127. package/source/reusable/interactions/store.ts +74 -0
  128. package/source/reusable/interactions/threads.ts +126 -0
  129. package/source/reusable/interactions/web.tsx +574 -0
  130. package/source/reusable/langgraph-review/index.ts +73 -0
  131. package/source/reusable/review/controller.ts +263 -0
  132. package/source/reusable/review/index.ts +47 -0
  133. package/source/reusable/review/types.ts +189 -0
  134. package/source/reusable/ui/index.ts +25 -0
  135. package/source/reusable/uploads/index.ts +48 -0
  136. package/source/reusable/web/attachments/copy.ts +23 -0
  137. package/source/reusable/web/attachments/index.tsx +233 -0
  138. package/source/reusable/web/copy.ts +22 -0
  139. package/source/reusable/web/index.tsx +470 -0
  140. package/source/reusable/web/message/copy.ts +26 -0
  141. package/source/reusable/web/message/index.tsx +388 -0
  142. package/source/reusable/web/message/streaming.ts +64 -0
  143. package/source/reusable/web/message/styles.css +21 -0
  144. package/source/reusable/web/review/copy.ts +78 -0
  145. package/source/reusable/web/review/flow.ts +24 -0
  146. package/source/reusable/web/review/index.tsx +506 -0
  147. package/source/reusable/web/styles.ts +2 -0
  148. package/source/styles/library.css +612 -0
  149. package/source/styles/theme.css +228 -0
  150. package/styles.css +3 -0
  151. package/styles.d.ts +1 -0
  152. package/types/components/avatar.d.ts +14 -0
  153. package/types/components/button.d.ts +36 -0
  154. package/types/components/callout.d.ts +19 -0
  155. package/types/components/canvas/connector.d.ts +2 -0
  156. package/types/components/canvas/copy.d.ts +34 -0
  157. package/types/components/canvas/index.d.ts +33 -0
  158. package/types/components/canvas/recorder.d.ts +10 -0
  159. package/types/components/date-time-field.d.ts +11 -0
  160. package/types/components/flow-motion.d.ts +38 -0
  161. package/types/components/icons.d.ts +138 -0
  162. package/types/components/responsive-overlay.d.ts +15 -0
  163. package/types/components/scenario-picker/copy.d.ts +5 -0
  164. package/types/components/scenario-picker/index.d.ts +14 -0
  165. package/types/components/scroll-area.d.ts +14 -0
  166. package/types/components/search-picker.d.ts +27 -0
  167. package/types/components/segmented-control.d.ts +23 -0
  168. package/types/components/skeleton.d.ts +4 -0
  169. package/types/components/spinner.d.ts +4 -0
  170. package/types/components/superxd-arrow.d.ts +5 -0
  171. package/types/components/switch.d.ts +8 -0
  172. package/types/components/text-field.d.ts +19 -0
  173. package/types/components/thinking.d.ts +8 -0
  174. package/types/components/ui/copy.d.ts +12 -0
  175. package/types/components/ui/display.d.ts +50 -0
  176. package/types/components/ui/navigation.d.ts +63 -0
  177. package/types/components/ui/portal-theme.d.ts +8 -0
  178. package/types/components/ui/selection.d.ts +37 -0
  179. package/types/lib/cn.d.ts +3 -0
  180. package/types/reusable/ai-sdk/index.d.ts +15 -0
  181. package/types/reusable/assistant-ui/index.d.ts +12 -0
  182. package/types/reusable/core/attachments.d.ts +54 -0
  183. package/types/reusable/core/index.d.ts +107 -0
  184. package/types/reusable/custom/index.d.ts +14 -0
  185. package/types/reusable/generative/actions.d.ts +45 -0
  186. package/types/reusable/generative/copy.d.ts +48 -0
  187. package/types/reusable/generative/data.d.ts +4 -0
  188. package/types/reusable/generative/index.d.ts +30 -0
  189. package/types/reusable/generative/schema.d.ts +303 -0
  190. package/types/reusable/generative/timeline.d.ts +21 -0
  191. package/types/reusable/generative/vocabulary.d.ts +34 -0
  192. package/types/reusable/interactions/agent.d.ts +98 -0
  193. package/types/reusable/interactions/artifact.d.ts +118 -0
  194. package/types/reusable/interactions/context.d.ts +130 -0
  195. package/types/reusable/interactions/copy.d.ts +115 -0
  196. package/types/reusable/interactions/feedback.d.ts +34 -0
  197. package/types/reusable/interactions/index.d.ts +10 -0
  198. package/types/reusable/interactions/presentation.d.ts +97 -0
  199. package/types/reusable/interactions/store.d.ts +29 -0
  200. package/types/reusable/interactions/threads.d.ts +38 -0
  201. package/types/reusable/interactions/web.d.ts +22 -0
  202. package/types/reusable/langgraph-review/index.d.ts +5 -0
  203. package/types/reusable/review/controller.d.ts +52 -0
  204. package/types/reusable/review/index.d.ts +12 -0
  205. package/types/reusable/review/types.d.ts +61 -0
  206. package/types/reusable/ui/index.d.ts +19 -0
  207. package/types/reusable/uploads/index.d.ts +11 -0
  208. package/types/reusable/web/attachments/copy.d.ts +25 -0
  209. package/types/reusable/web/attachments/index.d.ts +24 -0
  210. package/types/reusable/web/copy.d.ts +24 -0
  211. package/types/reusable/web/index.d.ts +41 -0
  212. package/types/reusable/web/message/copy.d.ts +27 -0
  213. package/types/reusable/web/message/index.d.ts +56 -0
  214. package/types/reusable/web/message/streaming.d.ts +27 -0
  215. package/types/reusable/web/review/copy.d.ts +72 -0
  216. package/types/reusable/web/review/flow.d.ts +3 -0
  217. package/types/reusable/web/review/index.d.ts +38 -0
  218. package/types/reusable/web/styles.d.ts +2 -0
  219. package/ui/index.js +4 -0
  220. package/uploads/index.js +34 -0
  221. package/web/index.js +931 -0
@@ -0,0 +1,116 @@
1
+ import { useState } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import { Tabs, Button } from "@superxd-studio/adptr/ui";
4
+ import "@superxd-studio/adptr/styles.css";
5
+ import "@superxd-studio/adptr/fonts.css";
6
+ import {
7
+ Foundation,
8
+ Presentation,
9
+ AgentExample,
10
+ ArtifactExample,
11
+ FeedbackExample,
12
+ HistoryExample,
13
+ } from "./examples";
14
+ import { layerCopy as copy } from "./copy";
15
+ function App() {
16
+ const [dark, setDark] = useState(false);
17
+ return (
18
+ <div className={`sxd min-h-dvh bg-surface-muted text-fg ${dark ? "dark" : ""}`}>
19
+ <main className="mx-auto flex max-w-2xl flex-col gap-8 p-6">
20
+ <h1 className="type-title text-fg-emphasis">{copy.consumerTitle}</h1>
21
+ <Button onPress={() => setDark(!dark)} aria-pressed={dark}>
22
+ {copy.consumerTheme}
23
+ </Button>
24
+ <Tabs
25
+ label={copy.consumerTitle}
26
+ items={[
27
+ {
28
+ id: "foundations",
29
+ label: copy.consumerFoundations,
30
+ content: (
31
+ <div className="flex flex-col gap-6">
32
+ {[
33
+ "checkbox",
34
+ "checkbox-group",
35
+ "radio-group",
36
+ "select",
37
+ "slider",
38
+ "toggle",
39
+ "form",
40
+ "menu",
41
+ "accordion",
42
+ "tabs",
43
+ "tooltip",
44
+ "dialog",
45
+ "pagination",
46
+ "breadcrumbs",
47
+ "card",
48
+ "badge",
49
+ "progress",
50
+ "separator",
51
+ "aspect-ratio",
52
+ "keyboard-hint",
53
+ "table",
54
+ "toast",
55
+ ].map((id) => (
56
+ <section key={id}>
57
+ <h2 className="mb-3 type-heading">
58
+ {copy.titles[id as keyof typeof copy.titles]}
59
+ </h2>
60
+ <Foundation id={id} />
61
+ </section>
62
+ ))}
63
+ </div>
64
+ ),
65
+ },
66
+ { id: "agent", label: copy.titles["agent-plan"], content: <AgentExample /> },
67
+ { id: "artifact", label: copy.titles.artifact, content: <ArtifactExample /> },
68
+ {
69
+ id: "feedback",
70
+ label: copy.titles["response-feedback"],
71
+ content: <FeedbackExample />,
72
+ },
73
+ {
74
+ id: "history",
75
+ label: copy.titles["conversation-history"],
76
+ content: <HistoryExample />,
77
+ },
78
+ {
79
+ id: "presentations",
80
+ label: copy.consumerPresentations,
81
+ content: (
82
+ <div className="flex flex-col gap-6">
83
+ {[
84
+ "reasoning",
85
+ "tool-presentation",
86
+ "sources",
87
+ "citation",
88
+ "retrieval-inspection",
89
+ "confidence",
90
+ "guardrail",
91
+ "agent-status",
92
+ "connection-status",
93
+ "composer-controls",
94
+ "quoted-reply",
95
+ "execution-inspector",
96
+ "observability",
97
+ ].map((id) => (
98
+ <section key={id}>
99
+ <h2 className="mb-3 type-heading">
100
+ {copy.titles[id as keyof typeof copy.titles]}
101
+ </h2>
102
+ <Presentation id={id} />
103
+ </section>
104
+ ))}
105
+ </div>
106
+ ),
107
+ },
108
+ ]}
109
+ />
110
+ </main>
111
+ </div>
112
+ );
113
+ }
114
+ const root = document.getElementById("root");
115
+ if (!root) throw new Error("Missing root");
116
+ createRoot(root).render(<App />);
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2023", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "Bundler",
7
+ "jsx": "react-jsx",
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "allowArbitraryExtensions": true
12
+ },
13
+ "include": ["src"]
14
+ }
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>SuperXD independent consumer</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/main.tsx"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "superxd-review-consumer",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "dev": "vite --host 127.0.0.1 --port 5301",
7
+ "build": "tsc --noEmit && vite build"
8
+ },
9
+ "dependencies": {
10
+ "@superxd-studio/adptr": "file:../..",
11
+ "react": "^19.3.0",
12
+ "react-dom": "^19.3.0"
13
+ },
14
+ "devDependencies": {
15
+ "@types/react": "^19.3.0",
16
+ "@types/react-dom": "^19.3.0",
17
+ "typescript": "~6.0",
18
+ "vite": "^8.3.1"
19
+ }
20
+ }
@@ -0,0 +1,59 @@
1
+ import { useState } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import {
4
+ ReviewController,
5
+ createHttpReviewAdapter,
6
+ type ReviewAdapter,
7
+ } from "@superxd-studio/adptr/review";
8
+ import { DraftReview } from "@superxd-studio/adptr/web";
9
+ import "@superxd-studio/adptr/styles.css";
10
+ import "@superxd-studio/adptr/fonts.css";
11
+ function App() {
12
+ const [controller] = useState(() => {
13
+ let adapter: Promise<ReviewAdapter> | undefined;
14
+ async function connect() {
15
+ return (adapter ??= fetch("http://127.0.0.1:5194/sessions", {
16
+ method: "POST",
17
+ headers: { "content-type": "application/json" },
18
+ body: JSON.stringify({ scenario: "normal" }),
19
+ })
20
+ .then(async (response) => {
21
+ if (!response.ok) throw new Error("Example not available");
22
+ const value: unknown = await response.json();
23
+ if (
24
+ !value ||
25
+ typeof value !== "object" ||
26
+ !("id" in value) ||
27
+ !("token" in value) ||
28
+ typeof value.id !== "string" ||
29
+ !/^[\w-]{1,100}$/.test(value.id) ||
30
+ typeof value.token !== "string" ||
31
+ !/^[a-f0-9]{64}$/.test(value.token)
32
+ )
33
+ throw new Error("Invalid local session");
34
+ return createHttpReviewAdapter({
35
+ endpoint: `http://127.0.0.1:5194/reviews/${value.id}`,
36
+ headers: () => ({ authorization: `Bearer ${value.token}` }),
37
+ });
38
+ })
39
+ .catch((error) => {
40
+ adapter = undefined;
41
+ throw error;
42
+ }));
43
+ }
44
+ return new ReviewController({
45
+ load: async (signal) => (await connect()).load(signal),
46
+ decide: async (decision, signal) => (await connect()).decide(decision, signal),
47
+ recover: async (id, signal) => (await connect()).recover(id, signal),
48
+ });
49
+ });
50
+ return (
51
+ <main className="mx-auto max-w-6xl bg-surface-muted p-6">
52
+ <h1 className="mb-8 type-title text-fg-emphasis">Your draft. Your decision.</h1>
53
+ <DraftReview controller={controller} />
54
+ </main>
55
+ );
56
+ }
57
+ const root = document.getElementById("root");
58
+ if (!root) throw new Error("Missing root");
59
+ createRoot(root).render(<App />);
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2023", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "Bundler",
7
+ "jsx": "react-jsx",
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "allowArbitraryExtensions": true
12
+ },
13
+ "include": ["src"]
14
+ }
package/fonts.css ADDED
@@ -0,0 +1,117 @@
1
+ /* instrument-sans-latin-ext-wght-normal */
2
+ @font-face {
3
+ font-family: 'Instrument Sans Variable';
4
+ font-style: normal;
5
+ font-display: swap;
6
+ font-weight: 400 700;
7
+ src: url(./assets/instrument-sans-latin-ext-wght-normal.woff2) format('woff2-variations');
8
+ unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
9
+ }
10
+
11
+ /* instrument-sans-latin-wght-normal */
12
+ @font-face {
13
+ font-family: 'Instrument Sans Variable';
14
+ font-style: normal;
15
+ font-display: swap;
16
+ font-weight: 400 700;
17
+ src: url(./assets/instrument-sans-latin-wght-normal.woff2) format('woff2-variations');
18
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
19
+ }
20
+ /* ibm-plex-mono-cyrillic-ext-400-normal */
21
+ @font-face {
22
+ font-family: 'IBM Plex Mono';
23
+ font-style: normal;
24
+ font-display: swap;
25
+ font-weight: 400;
26
+ src: url(./assets/ibm-plex-mono-cyrillic-ext-400-normal.woff2) format('woff2');
27
+ unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
28
+ }
29
+
30
+ /* ibm-plex-mono-cyrillic-400-normal */
31
+ @font-face {
32
+ font-family: 'IBM Plex Mono';
33
+ font-style: normal;
34
+ font-display: swap;
35
+ font-weight: 400;
36
+ src: url(./assets/ibm-plex-mono-cyrillic-400-normal.woff2) format('woff2');
37
+ unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
38
+ }
39
+
40
+ /* ibm-plex-mono-vietnamese-400-normal */
41
+ @font-face {
42
+ font-family: 'IBM Plex Mono';
43
+ font-style: normal;
44
+ font-display: swap;
45
+ font-weight: 400;
46
+ src: url(./assets/ibm-plex-mono-vietnamese-400-normal.woff2) format('woff2');
47
+ unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
48
+ }
49
+
50
+ /* ibm-plex-mono-latin-ext-400-normal */
51
+ @font-face {
52
+ font-family: 'IBM Plex Mono';
53
+ font-style: normal;
54
+ font-display: swap;
55
+ font-weight: 400;
56
+ src: url(./assets/ibm-plex-mono-latin-ext-400-normal.woff2) format('woff2');
57
+ unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
58
+ }
59
+
60
+ /* ibm-plex-mono-latin-400-normal */
61
+ @font-face {
62
+ font-family: 'IBM Plex Mono';
63
+ font-style: normal;
64
+ font-display: swap;
65
+ font-weight: 400;
66
+ src: url(./assets/ibm-plex-mono-latin-400-normal.woff2) format('woff2');
67
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
68
+ }
69
+ /* ibm-plex-mono-cyrillic-ext-500-normal */
70
+ @font-face {
71
+ font-family: 'IBM Plex Mono';
72
+ font-style: normal;
73
+ font-display: swap;
74
+ font-weight: 500;
75
+ src: url(./assets/ibm-plex-mono-cyrillic-ext-500-normal.woff2) format('woff2');
76
+ unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
77
+ }
78
+
79
+ /* ibm-plex-mono-cyrillic-500-normal */
80
+ @font-face {
81
+ font-family: 'IBM Plex Mono';
82
+ font-style: normal;
83
+ font-display: swap;
84
+ font-weight: 500;
85
+ src: url(./assets/ibm-plex-mono-cyrillic-500-normal.woff2) format('woff2');
86
+ unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
87
+ }
88
+
89
+ /* ibm-plex-mono-vietnamese-500-normal */
90
+ @font-face {
91
+ font-family: 'IBM Plex Mono';
92
+ font-style: normal;
93
+ font-display: swap;
94
+ font-weight: 500;
95
+ src: url(./assets/ibm-plex-mono-vietnamese-500-normal.woff2) format('woff2');
96
+ unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
97
+ }
98
+
99
+ /* ibm-plex-mono-latin-ext-500-normal */
100
+ @font-face {
101
+ font-family: 'IBM Plex Mono';
102
+ font-style: normal;
103
+ font-display: swap;
104
+ font-weight: 500;
105
+ src: url(./assets/ibm-plex-mono-latin-ext-500-normal.woff2) format('woff2');
106
+ unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
107
+ }
108
+
109
+ /* ibm-plex-mono-latin-500-normal */
110
+ @font-face {
111
+ font-family: 'IBM Plex Mono';
112
+ font-style: normal;
113
+ font-display: swap;
114
+ font-weight: 500;
115
+ src: url(./assets/ibm-plex-mono-latin-500-normal.woff2) format('woff2');
116
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
117
+ }