@speakeasy-api/moonshine 2.0.0-alpha.1 → 2.0.0-alpha.3
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.
- package/LICENSE +21 -0
- package/README.md +49 -23
- package/package.json +33 -50
- package/scripts/generate-utility-docs.js +324 -0
- package/src/assets/icons/external/github.svg +3 -0
- package/src/assets/icons/external/maven.svg +152 -0
- package/src/assets/icons/external/npm.svg +4 -0
- package/src/assets/icons/external/nuget.svg +5 -0
- package/src/assets/icons/external/packagist.svg +1 -0
- package/src/assets/icons/external/pypi.svg +182 -0
- package/src/assets/icons/external/rubygems.svg +14 -0
- package/src/assets/icons/external/terraform.svg +1 -0
- package/src/assets/icons/languages/csharp.svg +1 -0
- package/src/assets/icons/languages/go.svg +1 -0
- package/src/assets/icons/languages/java.svg +1 -0
- package/src/assets/icons/languages/json.svg +2 -0
- package/src/assets/icons/languages/php.svg +1 -0
- package/src/assets/icons/languages/postman.svg +3 -0
- package/src/assets/icons/languages/python.svg +1 -0
- package/src/assets/icons/languages/ruby.svg +1 -0
- package/src/assets/icons/languages/swift.svg +1 -0
- package/src/assets/icons/languages/terraform.svg +1 -0
- package/src/assets/icons/languages/typescript.svg +1 -0
- package/src/assets/icons/languages/unity.svg +1 -0
- package/src/base.css +12 -12
- package/src/components/AIChat/AIChatContainer.tsx +71 -0
- package/src/components/AIChat/AIChatMessage.tsx +135 -0
- package/src/components/AIChat/AIChatMessageComposer.tsx +175 -0
- package/src/components/AIChat/AIChatMessageList.tsx +34 -0
- package/src/components/AIChat/AIChatModelSelector.tsx +159 -0
- package/src/components/AIChat/componentsTypes.ts +36 -0
- package/src/components/AIChat/context.ts +15 -0
- package/src/components/AIChat/index.ts +12 -0
- package/src/components/AIChat/parts/AIChatMessageFilePart.tsx +129 -0
- package/src/components/AIChat/parts/AIChatMessageReasoningPart.tsx +23 -0
- package/src/components/AIChat/parts/AIChatMessageSourcePart.tsx +58 -0
- package/src/components/AIChat/parts/AIChatMessageTextPart.tsx +33 -0
- package/src/components/AIChat/parts/AIChatMessageToolInvocationPart.tsx +53 -0
- package/src/components/AIChat/parts/AIChatMessageToolPart.tsx +395 -0
- package/src/components/AIChat/parts/AIChatMessageToolResultPart.tsx +46 -0
- package/src/components/AIChat/toolCallApproval.ts +61 -0
- package/src/components/AIChat/types.ts +97 -0
- package/src/components/ActionBar/index.tsx +184 -0
- package/src/components/Alert/index.tsx +118 -0
- package/src/components/Alert/types.ts +12 -0
- package/src/components/AppLayout/context.tsx +31 -0
- package/src/components/AppLayout/index.tsx +550 -0
- package/src/components/AppLayout/provider.tsx +40 -0
- package/src/components/AppLayout/useAppLayoutKeys.ts +26 -0
- package/src/components/Badge/index.tsx +227 -0
- package/src/components/Button/index.tsx +531 -0
- package/src/components/Card/index.tsx +193 -0
- package/src/components/CodeEditorLayout/index.tsx +394 -0
- package/src/components/CodeEditorLayout/styles.module.css +8 -0
- package/src/components/CodeHighlight/Pre.tsx +63 -0
- package/src/components/CodePlayground/index.tsx +411 -0
- package/src/components/CodeSnippet/codeSnippet.css +97 -0
- package/src/components/CodeSnippet/index.tsx +224 -0
- package/src/components/Combobox/index.tsx +193 -0
- package/src/components/Command/index.tsx +152 -0
- package/src/components/Container/index.tsx +31 -0
- package/src/components/ContextDropdown/index.tsx +150 -0
- package/src/components/Dialog/index.tsx +123 -0
- package/src/components/DragNDrop/DragNDropArea.tsx +30 -0
- package/src/components/DragNDrop/DragOverlay.tsx +4 -0
- package/src/components/DragNDrop/Draggable.tsx +97 -0
- package/src/components/DragNDrop/Droppable.tsx +51 -0
- package/src/components/Dropdown/index.tsx +201 -0
- package/src/components/ExternalPill/index.tsx +58 -0
- package/src/components/Facepile/index.tsx +309 -0
- package/src/components/GradientCircle/gradientCircle.css +34 -0
- package/src/components/GradientCircle/index.tsx +143 -0
- package/src/components/Grid/index.tsx +150 -0
- package/src/components/Heading/index.tsx +54 -0
- package/src/components/HighlightedText/index.tsx +152 -0
- package/src/components/Icon/customIcons/createCustomLucideIcon.ts +25 -0
- package/src/components/Icon/customIcons/gems.ts +26 -0
- package/{dist/go-CiWl_aXI.mjs → src/components/Icon/customIcons/go.ts} +21 -19
- package/src/components/Icon/customIcons/index.ts +11 -0
- package/{dist/maven-DhmnGXoB.mjs → src/components/Icon/customIcons/maven.ts} +17 -15
- package/src/components/Icon/customIcons/npm.ts +19 -0
- package/{dist/nuget-5a2icRS2.mjs → src/components/Icon/customIcons/nuget.ts} +17 -15
- package/src/components/Icon/customIcons/packagist.ts +124 -0
- package/{dist/pypi-DsuRYjdK.mjs → src/components/Icon/customIcons/pypi.ts} +16 -14
- package/src/components/Icon/index.tsx +83 -0
- package/src/components/Icon/isIconName.ts +10 -0
- package/src/components/Icon/names.ts +14 -0
- package/src/components/IconButton/index.tsx +51 -0
- package/src/components/Input/index.tsx +98 -0
- package/src/components/KeyHint/index.tsx +118 -0
- package/src/components/LanguageIndicator/index.tsx +68 -0
- package/src/components/Link/index.tsx +153 -0
- package/src/components/LoggedInUserMenu/index.tsx +116 -0
- package/src/components/Logo/Animated.tsx +191 -0
- package/src/components/Logo/index.tsx +17 -0
- package/src/components/Logo/speakeasy-logo.riv +0 -0
- package/src/components/Logo/svgs/index.tsx +126 -0
- package/src/components/Modal/index.tsx +104 -0
- package/src/components/PageHeader/index.tsx +227 -0
- package/src/components/PageHeader/styles.module.css +27 -0
- package/src/components/Popover/index.tsx +35 -0
- package/src/components/PromptInput/index.tsx +372 -0
- package/src/components/PullRequestLink/index.tsx +64 -0
- package/src/components/ResizablePanel/index.tsx +119 -0
- package/src/components/Score/index.module.css +32 -0
- package/src/components/Score/index.tsx +268 -0
- package/src/components/ScrollArea/index.tsx +48 -0
- package/src/components/SegmentedButton/index.module.css +19 -0
- package/src/components/SegmentedButton/index.tsx +101 -0
- package/src/components/Select/index.tsx +159 -0
- package/src/components/Separator/index.tsx +23 -0
- package/src/components/Skeleton/index.tsx +61 -0
- package/src/components/Skeleton/skeleton.css +52 -0
- package/src/components/Stack/index.tsx +137 -0
- package/src/components/Subnav/index.tsx +315 -0
- package/src/components/Switch/index.tsx +29 -0
- package/src/components/Table/context/context.tsx +19 -0
- package/src/components/Table/context/tableProvider.tsx +39 -0
- package/src/components/Table/index.tsx +707 -0
- package/src/components/Table/styles.module.css +25 -0
- package/src/components/Tabs/index.tsx +87 -0
- package/src/components/TargetLanguageIcon/index.tsx +84 -0
- package/src/components/Text/index.tsx +59 -0
- package/src/components/ThemeSwitcher/index.tsx +118 -0
- package/src/components/Timeline/index.tsx +290 -0
- package/src/components/Tooltip/index.tsx +41 -0
- package/src/components/UserAvatar/index.tsx +87 -0
- package/src/components/UserAvatar/sizeMap.ts +12 -0
- package/src/components/Wizard/index.tsx +208 -0
- package/src/components/Wizard/types.ts +17 -0
- package/src/components/WorkspaceSelector/CreateOrg.tsx +95 -0
- package/src/components/WorkspaceSelector/CreateWorkspace.tsx +196 -0
- package/src/components/WorkspaceSelector/OrgList.tsx +115 -0
- package/src/components/WorkspaceSelector/OrgSelector.tsx +207 -0
- package/src/components/WorkspaceSelector/RecentWorkspaces.tsx +83 -0
- package/src/components/WorkspaceSelector/ScrollingList.tsx +84 -0
- package/src/components/WorkspaceSelector/SearchBox.tsx +40 -0
- package/src/components/WorkspaceSelector/WorkspaceItem.tsx +37 -0
- package/src/components/WorkspaceSelector/WorkspaceList.tsx +107 -0
- package/src/components/WorkspaceSelector/index.tsx +400 -0
- package/src/components/WorkspaceSelector/styles.css +74 -0
- package/src/components/__beta__/CLIWizard/index.tsx +357 -0
- package/src/components/__beta__/CLIWizard/terminal-command.tsx +108 -0
- package/src/components/__beta__/CLIWizard/terminal.tsx +83 -0
- package/src/components/__beta__/README.md +3 -0
- package/src/components/index.mdx +38 -0
- package/src/context/ConfigContext.tsx +43 -0
- package/src/context/ModalContext.tsx +118 -0
- package/src/context/theme.ts +1 -0
- package/src/hooks/useAppLayout.ts +10 -0
- package/src/hooks/useConfig.ts +10 -0
- package/src/hooks/useIsMounted.ts +13 -0
- package/src/hooks/useModal.tsx +10 -0
- package/src/hooks/useTailwindBreakpoint.ts +47 -0
- package/src/hooks/useTheme.ts +13 -0
- package/src/index.ts +234 -0
- package/src/lib/assert.ts +9 -0
- package/src/lib/codeUtils.ts +177 -0
- package/src/lib/debounce.ts +9 -0
- package/src/lib/responsiveMappers.ts +69 -0
- package/src/lib/responsiveUtils.ts +23 -0
- package/src/lib/storybookUtils.tsx +26 -0
- package/src/lib/typeUtils.ts +109 -0
- package/src/lib/utils.ts +85 -0
- package/src/styles/codeSyntax.css +59 -0
- package/src/styles/globals.css +51 -0
- package/src/types.ts +200 -0
- package/src/utilities.css +347 -6
- package/src/vite-env.d.ts +6 -0
- package/types/utilities.d.ts +43 -1
- package/dist/components/AIChat/AIChatContainer.d.ts +0 -25
- package/dist/components/AIChat/AIChatMessage.d.ts +0 -19
- package/dist/components/AIChat/AIChatMessageComposer.d.ts +0 -22
- package/dist/components/AIChat/AIChatMessageList.d.ts +0 -6
- package/dist/components/AIChat/AIChatModelSelector.d.ts +0 -14
- package/dist/components/AIChat/componentsTypes.d.ts +0 -11
- package/dist/components/AIChat/context.d.ts +0 -3
- package/dist/components/AIChat/index.d.ts +0 -12
- package/dist/components/AIChat/parts/AIChatMessageFilePart.d.ts +0 -7
- package/dist/components/AIChat/parts/AIChatMessageReasoningPart.d.ts +0 -5
- package/dist/components/AIChat/parts/AIChatMessageSourcePart.d.ts +0 -9
- package/dist/components/AIChat/parts/AIChatMessageTextPart.d.ts +0 -5
- package/dist/components/AIChat/parts/AIChatMessageToolInvocationPart.d.ts +0 -6
- package/dist/components/AIChat/parts/AIChatMessageToolPart.d.ts +0 -33
- package/dist/components/AIChat/parts/AIChatMessageToolResultPart.d.ts +0 -5
- package/dist/components/AIChat/toolCallApproval.d.ts +0 -15
- package/dist/components/AIChat/types.d.ts +0 -78
- package/dist/components/ActionBar/index.d.ts +0 -36
- package/dist/components/Alert/index.d.ts +0 -18
- package/dist/components/Alert/types.d.ts +0 -4
- package/dist/components/Badge/index.d.ts +0 -10
- package/dist/components/Button/index.d.ts +0 -11
- package/dist/components/Card/index.d.ts +0 -47
- package/dist/components/CodeEditorLayout/index.d.ts +0 -101
- package/dist/components/CodePlayground/index.d.ts +0 -108
- package/dist/components/CodePlayground/lineNumbers.d.ts +0 -2
- package/dist/components/CodePlayground/tokenTransitions.d.ts +0 -2
- package/dist/components/CodePlayground/wordWrap.d.ts +0 -2
- package/dist/components/CodeSnippet/index.d.ts +0 -50
- package/dist/components/Combobox/index.d.ts +0 -35
- package/dist/components/Command/index.d.ts +0 -80
- package/dist/components/Container/index.d.ts +0 -9
- package/dist/components/ContextDropdown/index.d.ts +0 -7
- package/dist/components/ContextDropdown/provider.d.ts +0 -22
- package/dist/components/ContextDropdown/useModal.d.ts +0 -11
- package/dist/components/Dialog/index.d.ts +0 -19
- package/dist/components/DragNDrop/DragNDropArea.d.ts +0 -8
- package/dist/components/DragNDrop/DragOverlay.d.ts +0 -1
- package/dist/components/DragNDrop/Draggable.d.ts +0 -29
- package/dist/components/DragNDrop/Droppable.d.ts +0 -28
- package/dist/components/Dropdown/index.d.ts +0 -27
- package/dist/components/ExternalPill/index.d.ts +0 -12
- package/dist/components/Facepile/index.d.ts +0 -16
- package/dist/components/GradientCircle/index.d.ts +0 -10
- package/dist/components/Grid/index.d.ts +0 -80
- package/dist/components/Heading/index.d.ts +0 -12
- package/dist/components/HighlightedText/index.d.ts +0 -19
- package/dist/components/Icon/customIcons/createCustomLucideIcon.d.ts +0 -3
- package/dist/components/Icon/customIcons/gems.d.ts +0 -2
- package/dist/components/Icon/customIcons/go.d.ts +0 -2
- package/dist/components/Icon/customIcons/index.d.ts +0 -10
- package/dist/components/Icon/customIcons/maven.d.ts +0 -2
- package/dist/components/Icon/customIcons/npm.d.ts +0 -2
- package/dist/components/Icon/customIcons/nuget.d.ts +0 -2
- package/dist/components/Icon/customIcons/packagist.d.ts +0 -2
- package/dist/components/Icon/customIcons/pypi.d.ts +0 -2
- package/dist/components/Icon/index.d.ts +0 -10
- package/dist/components/Icon/isIconName.d.ts +0 -2
- package/dist/components/Icon/names.d.ts +0 -6
- package/dist/components/Input/index.d.ts +0 -8
- package/dist/components/KeyHint/index.d.ts +0 -16
- package/dist/components/LanguageIndicator/index.d.ts +0 -7
- package/dist/components/Link/index.d.ts +0 -19
- package/dist/components/LoggedInUserMenu/index.d.ts +0 -17
- package/dist/components/Logo/Animated.d.ts +0 -7
- package/dist/components/Logo/index.d.ts +0 -7
- package/dist/components/Logo/svgs/index.d.ts +0 -6
- package/dist/components/Navbar/Slim.d.ts +0 -33
- package/dist/components/Navbar/index.d.ts +0 -15
- package/dist/components/PageHeader/index.d.ts +0 -45
- package/dist/components/Popover/index.d.ts +0 -8
- package/dist/components/PromptInput/index.d.ts +0 -55
- package/dist/components/PullRequestLink/index.d.ts +0 -10
- package/dist/components/ResizablePanel/index.d.ts +0 -26
- package/dist/components/Score/index.d.ts +0 -37
- package/dist/components/ScrollArea/index.d.ts +0 -5
- package/dist/components/Select/index.d.ts +0 -13
- package/dist/components/Separator/index.d.ts +0 -6
- package/dist/components/Skeleton/index.d.ts +0 -27
- package/dist/components/Stack/index.d.ts +0 -33
- package/dist/components/Subnav/index.d.ts +0 -12
- package/dist/components/Switch/index.d.ts +0 -4
- package/dist/components/Table/context/context.d.ts +0 -8
- package/dist/components/Table/context/tableProvider.d.ts +0 -6
- package/dist/components/Table/index.d.ts +0 -94
- package/dist/components/Tabs/index.d.ts +0 -21
- package/dist/components/TargetLanguageIcon/index.d.ts +0 -7
- package/dist/components/Text/index.d.ts +0 -19
- package/dist/components/ThemeSwitcher/index.d.ts +0 -5
- package/dist/components/Tooltip/index.d.ts +0 -8
- package/dist/components/UserAvatar/index.d.ts +0 -9
- package/dist/components/UserAvatar/sizeMap.d.ts +0 -3
- package/dist/components/Wizard/index.d.ts +0 -19
- package/dist/components/Wizard/types.d.ts +0 -15
- package/dist/components/WorkspaceSelector/CreateOrg.d.ts +0 -6
- package/dist/components/WorkspaceSelector/CreateWorkspace.d.ts +0 -17
- package/dist/components/WorkspaceSelector/OrgList.d.ts +0 -11
- package/dist/components/WorkspaceSelector/OrgSelector.d.ts +0 -13
- package/dist/components/WorkspaceSelector/RecentWorkspaces.d.ts +0 -11
- package/dist/components/WorkspaceSelector/ScrollingList.d.ts +0 -21
- package/dist/components/WorkspaceSelector/SearchBox.d.ts +0 -9
- package/dist/components/WorkspaceSelector/WorkspaceItem.d.ts +0 -9
- package/dist/components/WorkspaceSelector/WorkspaceList.d.ts +0 -10
- package/dist/components/WorkspaceSelector/index.d.ts +0 -34
- package/dist/components/__beta__/CLIWizard/index.d.ts +0 -21
- package/dist/components/__beta__/CLIWizard/terminal-command.d.ts +0 -19
- package/dist/components/__beta__/CLIWizard/terminal.d.ts +0 -26
- package/dist/context/ConfigContext.d.ts +0 -18
- package/dist/context/theme.d.ts +0 -1
- package/dist/createCustomLucideIcon-YlrRX5h9.mjs +0 -19
- package/dist/createCustomLucideIcon-YlrRX5h9.mjs.map +0 -1
- package/dist/gems-BcsO9cXq.mjs +0 -24
- package/dist/gems-BcsO9cXq.mjs.map +0 -1
- package/dist/github-kgjMtfE7.mjs +0 -11
- package/dist/github-kgjMtfE7.mjs.map +0 -1
- package/dist/go-CiWl_aXI.mjs.map +0 -1
- package/dist/hooks/useConfig.d.ts +0 -2
- package/dist/hooks/useIsMounted.d.ts +0 -1
- package/dist/hooks/useTailwindBreakpoint.d.ts +0 -3
- package/dist/hooks/useTheme.d.ts +0 -6
- package/dist/index-COXZ9O-g.mjs +0 -50882
- package/dist/index-COXZ9O-g.mjs.map +0 -1
- package/dist/index.d.ts +0 -73
- package/dist/lib/assert.d.ts +0 -2
- package/dist/lib/codeUtils.d.ts +0 -35
- package/dist/lib/debounce.d.ts +0 -1
- package/dist/lib/responsiveMappers.d.ts +0 -10
- package/dist/lib/responsiveUtils.d.ts +0 -3
- package/dist/lib/storybookUtils.d.ts +0 -5
- package/dist/lib/typeUtils.d.ts +0 -24
- package/dist/lib/utils.d.ts +0 -23
- package/dist/lucide-icons-BDw0imyx.mjs +0 -28054
- package/dist/lucide-icons-BDw0imyx.mjs.map +0 -1
- package/dist/maven-DhmnGXoB.mjs.map +0 -1
- package/dist/maven-W_nkSDNW.mjs +0 -107
- package/dist/maven-W_nkSDNW.mjs.map +0 -1
- package/dist/moonshine.es.js +0 -114
- package/dist/moonshine.es.js.map +0 -1
- package/dist/npm-BWTcVvFH.mjs +0 -11
- package/dist/npm-BWTcVvFH.mjs.map +0 -1
- package/dist/npm-CvQ4GKW4.mjs +0 -17
- package/dist/npm-CvQ4GKW4.mjs.map +0 -1
- package/dist/nuget-5a2icRS2.mjs.map +0 -1
- package/dist/nuget-CV5HU1JR.mjs +0 -11
- package/dist/nuget-CV5HU1JR.mjs.map +0 -1
- package/dist/packagist-CET6q9hi.mjs +0 -118
- package/dist/packagist-CET6q9hi.mjs.map +0 -1
- package/dist/packagist-D01fn9N_.mjs +0 -11
- package/dist/packagist-D01fn9N_.mjs.map +0 -1
- package/dist/pypi-DLh6kIJe.mjs +0 -11
- package/dist/pypi-DLh6kIJe.mjs.map +0 -1
- package/dist/pypi-DsuRYjdK.mjs.map +0 -1
- package/dist/rubygems-DeiNjcDV.mjs +0 -11
- package/dist/rubygems-DeiNjcDV.mjs.map +0 -1
- package/dist/speakeasy-logo-ByBTXLWb.mjs +0 -5
- package/dist/speakeasy-logo-ByBTXLWb.mjs.map +0 -1
- package/dist/style.css +0 -1
- package/dist/terraform-C4aktQ0o.mjs +0 -11
- package/dist/terraform-C4aktQ0o.mjs.map +0 -1
- package/dist/types.d.ts +0 -80
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs')
|
|
4
|
+
const path = require('path')
|
|
5
|
+
const postcss = require('postcss')
|
|
6
|
+
|
|
7
|
+
// Paths
|
|
8
|
+
const UTILITIES_CSS = path.join(__dirname, '../src/utilities.css')
|
|
9
|
+
const BASE_CSS = path.join(__dirname, '../src/base.css')
|
|
10
|
+
const CLAUDE_MD = path.join(__dirname, '../CLAUDE.md')
|
|
11
|
+
const TYPES_DIR = path.join(__dirname, '../types')
|
|
12
|
+
const UTILITIES_TYPES = path.join(TYPES_DIR, 'utilities.d.ts')
|
|
13
|
+
|
|
14
|
+
// Ensure types directory exists
|
|
15
|
+
if (!fs.existsSync(TYPES_DIR)) {
|
|
16
|
+
fs.mkdirSync(TYPES_DIR)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Parse CSS and extract utilities
|
|
20
|
+
async function extractUtilities(cssPath) {
|
|
21
|
+
if (!fs.existsSync(cssPath)) {
|
|
22
|
+
console.error(`CSS file not found: ${cssPath}`)
|
|
23
|
+
return []
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const css = fs.readFileSync(cssPath, 'utf8')
|
|
27
|
+
|
|
28
|
+
let ast
|
|
29
|
+
try {
|
|
30
|
+
ast = postcss.parse(css)
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error(`Error parsing CSS file ${cssPath}:`, error.message)
|
|
33
|
+
return []
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const utilities = []
|
|
37
|
+
|
|
38
|
+
ast.walkAtRules('utility', (rule) => {
|
|
39
|
+
const name = rule.params.trim()
|
|
40
|
+
|
|
41
|
+
// Extract the CSS properties
|
|
42
|
+
const properties = []
|
|
43
|
+
rule.walkDecls((decl) => {
|
|
44
|
+
// Skip nested rules (like @variant)
|
|
45
|
+
if (decl.parent === rule) {
|
|
46
|
+
properties.push(` ${decl.prop}: ${decl.value};`)
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
// Check for variant rules (like dark mode)
|
|
51
|
+
const variants = []
|
|
52
|
+
rule.walkAtRules('variant', (variantRule) => {
|
|
53
|
+
const variantProps = []
|
|
54
|
+
variantRule.walkDecls((decl) => {
|
|
55
|
+
variantProps.push(` ${decl.prop}: ${decl.value};`)
|
|
56
|
+
})
|
|
57
|
+
variants.push({
|
|
58
|
+
name: variantRule.params.trim(),
|
|
59
|
+
properties: variantProps,
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
utilities.push({
|
|
64
|
+
name,
|
|
65
|
+
properties,
|
|
66
|
+
variants,
|
|
67
|
+
raw: rule.toString(),
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
return utilities
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Extract theme colors that are exposed as utilities
|
|
75
|
+
async function extractThemeColors(cssPath) {
|
|
76
|
+
const css = fs.readFileSync(cssPath, 'utf8')
|
|
77
|
+
const ast = postcss.parse(css)
|
|
78
|
+
const colors = new Set()
|
|
79
|
+
|
|
80
|
+
ast.walkAtRules('theme', (rule) => {
|
|
81
|
+
rule.walkDecls((decl) => {
|
|
82
|
+
if (decl.prop.startsWith('--color-') && !decl.prop.includes('*')) {
|
|
83
|
+
const colorName = decl.prop.replace('--color-', '')
|
|
84
|
+
// Only include semantic colors, not raw values
|
|
85
|
+
if (
|
|
86
|
+
!colorName.match(
|
|
87
|
+
/^(brand|neutral|destructive|warning|success|info)-\d+$/
|
|
88
|
+
)
|
|
89
|
+
) {
|
|
90
|
+
colors.add(colorName)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
return Array.from(colors)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Generate TypeScript definitions
|
|
100
|
+
function generateTypeDefinitions(utilities, themeColors) {
|
|
101
|
+
const utilityTypes = utilities.map((u) => ` | '${u.name}'`).join('\n')
|
|
102
|
+
|
|
103
|
+
// Generate color utility types
|
|
104
|
+
const colorPrefixes = ['bg', 'text', 'border', 'ring', 'divide']
|
|
105
|
+
const colorUtilities = themeColors
|
|
106
|
+
.flatMap((color) =>
|
|
107
|
+
colorPrefixes.map((prefix) => ` | '${prefix}-${color}'`)
|
|
108
|
+
)
|
|
109
|
+
.join('\n')
|
|
110
|
+
|
|
111
|
+
return `/**
|
|
112
|
+
* Auto-generated TypeScript definitions for Moonshine utilities
|
|
113
|
+
* Generated on: ${new Date().toISOString()}
|
|
114
|
+
*
|
|
115
|
+
* DO NOT EDIT THIS FILE DIRECTLY
|
|
116
|
+
* Run 'pnpm generate:docs' to update
|
|
117
|
+
*/
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Custom utility classes defined in utilities.css
|
|
121
|
+
*/
|
|
122
|
+
export type MoonshineUtilities =
|
|
123
|
+
${utilityTypes};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Semantic color utilities available from theme
|
|
127
|
+
* These are auto-generated from theme colors with standard prefixes
|
|
128
|
+
*/
|
|
129
|
+
export type MoonshineColorUtilities =
|
|
130
|
+
${colorUtilities};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* All available Moonshine utility classes
|
|
134
|
+
*/
|
|
135
|
+
export type MoonshineClasses = MoonshineUtilities | MoonshineColorUtilities;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Helper type for className props
|
|
139
|
+
*/
|
|
140
|
+
export type MoonshineClassName = MoonshineClasses | MoonshineClasses[] | undefined | null | false;
|
|
141
|
+
`
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Generate documentation section for CLAUDE.md
|
|
145
|
+
function generateDocSection(utilities) {
|
|
146
|
+
const sections = []
|
|
147
|
+
|
|
148
|
+
// Group utilities by type
|
|
149
|
+
const typography = utilities.filter(
|
|
150
|
+
(u) => u.name.startsWith('text-') || u.name.startsWith('typography-')
|
|
151
|
+
)
|
|
152
|
+
const backgrounds = utilities.filter((u) => u.name.startsWith('bg-'))
|
|
153
|
+
const borders = utilities.filter((u) => u.name.startsWith('border-'))
|
|
154
|
+
const other = utilities.filter(
|
|
155
|
+
(u) =>
|
|
156
|
+
!u.name.startsWith('text-') &&
|
|
157
|
+
!u.name.startsWith('typography-') &&
|
|
158
|
+
!u.name.startsWith('bg-') &&
|
|
159
|
+
!u.name.startsWith('border-')
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
sections.push('## Available Utility Classes\n')
|
|
163
|
+
sections.push(
|
|
164
|
+
'This section is auto-generated from the CSS files. Last updated: ' +
|
|
165
|
+
new Date().toISOString() +
|
|
166
|
+
'\n'
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
// Typography
|
|
170
|
+
if (typography.length > 0) {
|
|
171
|
+
sections.push('### Typography Utilities\n')
|
|
172
|
+
typography.forEach((u) => {
|
|
173
|
+
sections.push(`#### \`${u.name}\`\n`)
|
|
174
|
+
sections.push('```css')
|
|
175
|
+
sections.push(`.${u.name} {`)
|
|
176
|
+
sections.push(u.properties.join('\n'))
|
|
177
|
+
|
|
178
|
+
if (u.variants.length > 0) {
|
|
179
|
+
u.variants.forEach((v) => {
|
|
180
|
+
sections.push(`\n /* ${v.name} variant */`)
|
|
181
|
+
sections.push(v.properties.join('\n'))
|
|
182
|
+
})
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
sections.push('}')
|
|
186
|
+
sections.push('```\n')
|
|
187
|
+
})
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Backgrounds
|
|
191
|
+
if (backgrounds.length > 0) {
|
|
192
|
+
sections.push('### Background Utilities\n')
|
|
193
|
+
backgrounds.forEach((u) => {
|
|
194
|
+
sections.push(`#### \`${u.name}\`\n`)
|
|
195
|
+
sections.push('```css')
|
|
196
|
+
sections.push(`.${u.name} {`)
|
|
197
|
+
sections.push(u.properties.join('\n'))
|
|
198
|
+
|
|
199
|
+
if (u.variants.length > 0) {
|
|
200
|
+
u.variants.forEach((v) => {
|
|
201
|
+
sections.push(`\n /* ${v.name} variant */`)
|
|
202
|
+
sections.push(v.properties.join('\n'))
|
|
203
|
+
})
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
sections.push('}')
|
|
207
|
+
sections.push('```\n')
|
|
208
|
+
})
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Borders
|
|
212
|
+
if (borders.length > 0) {
|
|
213
|
+
sections.push('### Border Utilities\n')
|
|
214
|
+
borders.forEach((u) => {
|
|
215
|
+
sections.push(`#### \`${u.name}\`\n`)
|
|
216
|
+
sections.push('```css')
|
|
217
|
+
sections.push(`.${u.name} {`)
|
|
218
|
+
sections.push(u.properties.join('\n'))
|
|
219
|
+
sections.push('}')
|
|
220
|
+
sections.push('```\n')
|
|
221
|
+
})
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Other
|
|
225
|
+
if (other.length > 0) {
|
|
226
|
+
sections.push('### Other Utilities\n')
|
|
227
|
+
other.forEach((u) => {
|
|
228
|
+
sections.push(`#### \`${u.name}\`\n`)
|
|
229
|
+
sections.push('```css')
|
|
230
|
+
sections.push(`.${u.name} {`)
|
|
231
|
+
sections.push(u.properties.join('\n'))
|
|
232
|
+
sections.push('}')
|
|
233
|
+
sections.push('```\n')
|
|
234
|
+
})
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
return sections.join('\n')
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// Update CLAUDE.md with generated content
|
|
241
|
+
function updateClaudeMd(newContent) {
|
|
242
|
+
const claudeMd = fs.readFileSync(CLAUDE_MD, 'utf8')
|
|
243
|
+
|
|
244
|
+
// Find the section to replace
|
|
245
|
+
const startMarker = '## Available Utility Classes'
|
|
246
|
+
const endMarker = '## Migration Notes'
|
|
247
|
+
|
|
248
|
+
const startIndex = claudeMd.indexOf(startMarker)
|
|
249
|
+
let endIndex = claudeMd.indexOf(endMarker)
|
|
250
|
+
|
|
251
|
+
// If end marker not found, look for the next ## heading
|
|
252
|
+
if (endIndex === -1) {
|
|
253
|
+
const afterStart = claudeMd.substring(startIndex + startMarker.length)
|
|
254
|
+
const nextHeadingMatch = afterStart.match(/\n## /)
|
|
255
|
+
if (nextHeadingMatch) {
|
|
256
|
+
endIndex = startIndex + startMarker.length + nextHeadingMatch.index + 1
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (startIndex === -1) {
|
|
261
|
+
console.error(
|
|
262
|
+
'Could not find "## Available Utility Classes" section in CLAUDE.md'
|
|
263
|
+
)
|
|
264
|
+
console.error(
|
|
265
|
+
'Please ensure CLAUDE.md contains this section for auto-generation to work'
|
|
266
|
+
)
|
|
267
|
+
return
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if (endIndex === -1 || endIndex <= startIndex) {
|
|
271
|
+
// No end marker found, append to end of file
|
|
272
|
+
const updated = claudeMd + '\n\n' + newContent
|
|
273
|
+
fs.writeFileSync(CLAUDE_MD, updated, 'utf8')
|
|
274
|
+
console.log(' Appended to end of CLAUDE.md (no end marker found)')
|
|
275
|
+
} else {
|
|
276
|
+
const before = claudeMd.substring(0, startIndex)
|
|
277
|
+
const after = claudeMd.substring(endIndex)
|
|
278
|
+
const updated = before + newContent + '\n' + after
|
|
279
|
+
fs.writeFileSync(CLAUDE_MD, updated, 'utf8')
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Main function
|
|
284
|
+
async function main() {
|
|
285
|
+
console.log('🎨 Generating Moonshine utility documentation...\n')
|
|
286
|
+
|
|
287
|
+
try {
|
|
288
|
+
// Extract utilities
|
|
289
|
+
console.log('📖 Reading utilities.css...')
|
|
290
|
+
const utilities = await extractUtilities(UTILITIES_CSS)
|
|
291
|
+
console.log(` Found ${utilities.length} utility classes`)
|
|
292
|
+
|
|
293
|
+
// Extract theme colors
|
|
294
|
+
console.log('🎨 Reading theme colors from utilities.css...')
|
|
295
|
+
const themeColors = await extractThemeColors(UTILITIES_CSS)
|
|
296
|
+
console.log(` Found ${themeColors.length} theme colors`)
|
|
297
|
+
|
|
298
|
+
// Generate TypeScript definitions
|
|
299
|
+
console.log('\n📝 Generating TypeScript definitions...')
|
|
300
|
+
const typeDefs = generateTypeDefinitions(utilities, themeColors)
|
|
301
|
+
fs.writeFileSync(UTILITIES_TYPES, typeDefs, 'utf8')
|
|
302
|
+
console.log(
|
|
303
|
+
` Written to ${path.relative(process.cwd(), UTILITIES_TYPES)}`
|
|
304
|
+
)
|
|
305
|
+
|
|
306
|
+
// Generate documentation
|
|
307
|
+
console.log('\n📚 Generating documentation...')
|
|
308
|
+
const docSection = generateDocSection(utilities)
|
|
309
|
+
updateClaudeMd(docSection)
|
|
310
|
+
console.log(` Updated ${path.relative(process.cwd(), CLAUDE_MD)}`)
|
|
311
|
+
|
|
312
|
+
console.log('\n✅ Documentation generation complete!')
|
|
313
|
+
console.log('\n💡 Tip: Import the types in your components:')
|
|
314
|
+
console.log(
|
|
315
|
+
' import type { MoonshineClasses } from "@speakeasy-api/moonshine/types/utilities"'
|
|
316
|
+
)
|
|
317
|
+
} catch (error) {
|
|
318
|
+
console.error('\n❌ Error generating documentation:', error)
|
|
319
|
+
process.exit(1)
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// Run the script
|
|
324
|
+
main()
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg viewBox="0 0 128 128" width="16" height="16">
|
|
2
|
+
<g fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z"></path><path d="M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zM31.312 98.012c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237zm4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"></path></g>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"
|
|
2
|
+
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient id="a" x1="-7274.8" y1="2082.507" x2="-7243.872" y2="2046.343"
|
|
5
|
+
gradientTransform="matrix(-0.023, -0.116, -0.116, 0.023, 79.68, -889.484)"
|
|
6
|
+
gradientUnits="userSpaceOnUse">
|
|
7
|
+
<stop offset="0" stop-color="#f69923" />
|
|
8
|
+
<stop offset="0.312" stop-color="#f79a23" />
|
|
9
|
+
<stop offset="0.838" stop-color="#e97826" />
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="b" x1="-7503.689" y1="2086.595" x2="-7283.036" y2="2086.595"
|
|
12
|
+
gradientTransform="matrix(-0.023, -0.116, -0.116, 0.023, 79.68, -889.484)"
|
|
13
|
+
gradientUnits="userSpaceOnUse">
|
|
14
|
+
<stop offset="0.323" stop-color="#9e2064" />
|
|
15
|
+
<stop offset="0.63" stop-color="#c92037" />
|
|
16
|
+
<stop offset="0.751" stop-color="#cd2335" />
|
|
17
|
+
<stop offset="1" stop-color="#e97826" />
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<linearGradient id="c" x1="-7477.053" y1="2064.42" x2="-7345.566" y2="2064.42"
|
|
20
|
+
gradientTransform="matrix(-0.023, -0.116, -0.116, 0.023, 79.68, -889.484)"
|
|
21
|
+
gradientUnits="userSpaceOnUse">
|
|
22
|
+
<stop offset="0" stop-color="#282662" />
|
|
23
|
+
<stop offset="0.095" stop-color="#662e8d" />
|
|
24
|
+
<stop offset="0.788" stop-color="#9f2064" />
|
|
25
|
+
<stop offset="0.949" stop-color="#cd2032" />
|
|
26
|
+
</linearGradient>
|
|
27
|
+
<linearGradient id="d" x1="-7491.296" y1="2088.633" x2="-7270.643" y2="2088.633" xlink:href="#b" />
|
|
28
|
+
<linearGradient id="e" x1="-7475.203" y1="2085.61" x2="-7359.244" y2="2085.61" xlink:href="#c" />
|
|
29
|
+
<linearGradient id="f" x1="-7491.296" y1="2065.799" x2="-7270.643" y2="2065.799" xlink:href="#b" />
|
|
30
|
+
<linearGradient id="g" x1="-7504.984" y1="2066.905" x2="-7284.331" y2="2066.905" xlink:href="#b" />
|
|
31
|
+
<linearGradient id="h" x1="-7491.296" y1="2058.959" x2="-7270.643" y2="2058.959" xlink:href="#b" />
|
|
32
|
+
<linearGradient id="i" x1="-7491.296" y1="2059.762" x2="-7270.643" y2="2059.762" xlink:href="#b" />
|
|
33
|
+
<linearGradient id="j" x1="-8307.632" y1="2040.008" x2="-8276.704" y2="2003.844"
|
|
34
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#a" />
|
|
35
|
+
<linearGradient id="k" x1="-8536.521" y1="2044.096" x2="-8315.868" y2="2044.096"
|
|
36
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#b" />
|
|
37
|
+
<linearGradient id="l" x1="-8509.885" y1="2021.921" x2="-8378.397" y2="2021.921"
|
|
38
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#c" />
|
|
39
|
+
<linearGradient id="m" x1="-8524.128" y1="2046.134" x2="-8303.475" y2="2046.134"
|
|
40
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#b" />
|
|
41
|
+
<linearGradient id="n" x1="-8508.035" y1="2043.111" x2="-8392.076" y2="2043.111"
|
|
42
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#c" />
|
|
43
|
+
<linearGradient id="o" x1="-8524.128" y1="2023.3" x2="-8303.475" y2="2023.3"
|
|
44
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#b" />
|
|
45
|
+
<linearGradient id="p" x1="-8537.816" y1="2024.407" x2="-8317.163" y2="2024.407"
|
|
46
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#b" />
|
|
47
|
+
<linearGradient id="q" x1="-8524.128" y1="2016.46" x2="-8303.475" y2="2016.46"
|
|
48
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#b" />
|
|
49
|
+
<linearGradient id="r" x1="-8524.128" y1="2017.263" x2="-8303.475" y2="2017.263"
|
|
50
|
+
gradientTransform="matrix(0.074, -0.112, -0.112, -0.074, 864.083, -775.51)" xlink:href="#b" />
|
|
51
|
+
</defs>
|
|
52
|
+
<title>file_type_maven</title>
|
|
53
|
+
<path
|
|
54
|
+
d="M5.976,2.533a9.539,9.539,0,0,0-.4,2.655l1.427.691a17.928,17.928,0,0,1,.1-2.541c.005-.058.011-.092.011-.092,0,.031-.009.061-.011.092A15.939,15.939,0,0,0,7.1,5.845a27.79,27.79,0,0,0,2.114-2A3.041,3.041,0,0,0,7.621,2.144S6.357,1.634,5.976,2.533Z"
|
|
55
|
+
style="fill:url(#a)" />
|
|
56
|
+
<path d="M9.688,9.722A.018.018,0,0,0,9.7,9.709l-.08.071c0,.007-.009.013-.01.019Z"
|
|
57
|
+
style="fill:none" />
|
|
58
|
+
<path d="M10.562,12.19c-.038.046-.083.091-.128.136C10.478,12.282,10.523,12.236,10.562,12.19Z"
|
|
59
|
+
style="fill:none" />
|
|
60
|
+
<path
|
|
61
|
+
d="M9.741,19.776c0-.021-.014-.044-.018-.065-.122-.445-.24-.876-.355-1.3-.125-.474-.244-.939-.359-1.391-.118-.473-.231-.937-.336-1.384-.112-.472-.215-.925-.311-1.366-.077-.359-.152-.707-.221-1.047-.024-.115-.045-.225-.066-.336-.042-.222-.086-.436-.126-.647s-.073-.386-.109-.575c-.011-.064-.022-.128-.034-.186L7.8,11.444l-.069.062-.142-.07c0,.015.005.032.01.047.047.285.1.573.152.863.03.164.063.332.093.5.088.465.181.926.282,1.393s.2.94.308,1.4.214.914.324,1.368.222.9.338,1.346c.119.466.24.925.365,1.374.026.1.055.206.085.3.1.366.2.721.3,1.073l.229.115.076-.068a.069.069,0,0,0-.009-.029C9.993,20.668,9.865,20.215,9.741,19.776Z"
|
|
62
|
+
style="fill:none" />
|
|
63
|
+
<path
|
|
64
|
+
d="M10.924,13.495c-.067.073-.136.142-.206.211h0c.036-.033.073-.072.107-.108A1.212,1.212,0,0,0,10.924,13.495Z"
|
|
65
|
+
style="fill:#be202e" />
|
|
66
|
+
<path
|
|
67
|
+
d="M10.924,13.495c-.067.073-.136.142-.206.211h0c.036-.033.073-.072.107-.108A1.212,1.212,0,0,0,10.924,13.495Z"
|
|
68
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
69
|
+
<path
|
|
70
|
+
d="M10.4,12.356h0c.012-.009.021-.021.032-.03.045-.045.09-.09.128-.136-.05.055-.107.108-.161.166Z"
|
|
71
|
+
style="fill:#be202e" />
|
|
72
|
+
<path
|
|
73
|
+
d="M10.4,12.356h0c.012-.009.021-.021.032-.03.045-.045.09-.09.128-.136-.05.055-.107.108-.161.166Z"
|
|
74
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
75
|
+
<path
|
|
76
|
+
d="M7.38,10.092q-.1-.712-.18-1.4c-.055-.477-.1-.945-.131-1.408,0-.028-.005-.056,0-.081C7.032,6.751,7.01,6.31,7,5.878L5.575,5.191c0,.086-.01.175-.013.269-.014.341-.025.7-.028,1.085,0,.43,0,.878.008,1.347.01.432.028.882.051,1.34.023.392.049.788.081,1.192,0,.017,0,.028,0,.046l1.906.965C7.517,10.984,7.447,10.536,7.38,10.092Z"
|
|
77
|
+
style="fill:url(#b)" />
|
|
78
|
+
<path
|
|
79
|
+
d="M10.2,21.362c.1.356.212.723.328,1.095,0,0,0,.011,0,.015.016.054.029.105.049.157.076.251.149.474.307.984a1.927,1.927,0,0,1,1.094.262,1.563,1.563,0,0,0-1.041-.566,3.349,3.349,0,0,0,1.827-2.977c-.012-.106-.026-.216-.047-.326a1.347,1.347,0,0,1-.766,1.152l0,0,0,0a3.766,3.766,0,0,0,.61-2.373c-.015-.193-.04-.4-.075-.619a3.056,3.056,0,0,1-1.772,2.462l-.578.532C10.157,21.227,10.175,21.293,10.2,21.362Z"
|
|
80
|
+
style="fill:url(#c)" />
|
|
81
|
+
<path
|
|
82
|
+
d="M9.453,19.735c-.121-.452-.242-.911-.365-1.374-.116-.444-.227-.892-.338-1.346s-.218-.911-.324-1.368-.21-.934-.308-1.4-.19-.931-.282-1.393c-.033-.168-.063-.332-.093-.5-.053-.286-.1-.574-.152-.863,0-.015-.005-.032-.01-.047l-1.895-.967a.679.679,0,0,1,.007.091c.038.429.075.865.126,1.3s.106.89.172,1.341c.056.38.116.757.179,1.138.013.075.028.154.041.228.087.471.181.926.282,1.351.113.482.235.934.357,1.356.082.276.163.542.246.794.072.212.15.425.225.635.181.493.382.971.6,1.438l1.915.97c-.1-.352-.2-.71-.3-1.073C9.508,19.941,9.482,19.84,9.453,19.735Z"
|
|
83
|
+
style="fill:url(#d)" />
|
|
84
|
+
<path
|
|
85
|
+
d="M7.947,20.208a14.86,14.86,0,0,0,.881,1.627c.011.016.022.038.033.054a3.864,3.864,0,0,0-1.46-.113,5.37,5.37,0,0,1,2.353,1.371,2.468,2.468,0,0,1-1.112.558,2.46,2.46,0,0,0,1.22-.108,3,3,0,0,0-.742,1.447,3.084,3.084,0,0,1,1.205-1.276c.575,1.906,1.267,3.972,2.034,6.14a.577.577,0,0,0,.09-.541c-.141-.389-1.054-2.968-2.095-6.468-.03-.1-.056-.2-.089-.3-.009-.029-.016-.054-.025-.084q-.16-.55-.326-1.132c-.024-.09-.05-.174-.074-.265l0,0-1.915-.97A.357.357,0,0,0,7.947,20.208Z"
|
|
86
|
+
style="fill:url(#e)" />
|
|
87
|
+
<path
|
|
88
|
+
d="M7.806,11.476c.011.064.023.121.034.186.037.19.07.382.109.575.04.211.084.426.126.647.021.111.042.222.066.336.069.34.144.688.221,1.047.1.441.2.894.311,1.366.1.446.218.911.336,1.384.115.451.231.913.359,1.391.112.423.233.858.355,1.3,0,.021.014.044.018.065.123.439.252.892.386,1.353a.069.069,0,0,0,.009.029l.578-.532c-.015,0-.026.013-.045.021a5.547,5.547,0,0,0,1.408-3.114,7.47,7.47,0,0,0-.018-1.737,11.925,11.925,0,0,0-.278-1.486c-.114-.458-.254-.944-.425-1.456a2.891,2.891,0,0,1-.441.637l-.1.11c-.033.037-.07.069-.107.108h0a3.377,3.377,0,0,0,.416-2.507,3.176,3.176,0,0,1-.572.991c-.038.046-.083.091-.128.136-.012.009-.021.021-.036.033h0a3.52,3.52,0,0,0,.371-.814,1.509,1.509,0,0,0,.043-.17c.02-.087.034-.175.047-.263.005-.058.014-.112.019-.171a2.461,2.461,0,0,0,0-.413c0-.046,0-.087-.011-.13-.011-.064-.019-.124-.031-.182-.046-.267-.1-.5-.149-.7-.026-.1-.05-.192-.076-.275-.012-.033-.018-.065-.03-.1-.031-.091-.056-.175-.084-.245a2.452,2.452,0,0,0-.105-.242h0a.532.532,0,0,1-.042.115,3.749,3.749,0,0,1-.65.934l.533-.487L9.687,9.7a.018.018,0,0,0-.009.013A1.082,1.082,0,0,0,9.6,9.8c0-.007.009-.013.01-.019L7.79,11.446C7.805,11.459,7.807,11.469,7.806,11.476Z"
|
|
89
|
+
style="fill:url(#f)" />
|
|
90
|
+
<path
|
|
91
|
+
d="M7.1,5.845c.022.4.057.848.1,1.344a.485.485,0,0,0,.009.078c.041.433.094.9.162,1.409.058.439.122.9.2,1.4.065.433.145.886.227,1.367l1.82-1.667a2.987,2.987,0,0,0,.457-1.647c0-.143-.011-.293-.022-.447A14.324,14.324,0,0,0,9.895,6.25a12.46,12.46,0,0,0-.271-1.287,6.825,6.825,0,0,0-.209-.653c-.065-.163-.133-.312-.2-.454A28.8,28.8,0,0,1,7.1,5.845Z"
|
|
92
|
+
style="fill:url(#g)" />
|
|
93
|
+
<path d="M10.827,13.6c-.033.037-.07.069-.107.108h0A1.391,1.391,0,0,1,10.827,13.6Z"
|
|
94
|
+
style="fill:#be202e" />
|
|
95
|
+
<path d="M10.827,13.6c-.033.037-.07.069-.107.108h0A1.391,1.391,0,0,1,10.827,13.6Z"
|
|
96
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
97
|
+
<path d="M10.827,13.6c-.033.037-.07.069-.107.108h0A1.391,1.391,0,0,1,10.827,13.6Z"
|
|
98
|
+
style="fill:url(#h)" />
|
|
99
|
+
<path d="M10.4,12.359c.012-.009.021-.021.036-.033-.012.009-.021.021-.036.033Z"
|
|
100
|
+
style="fill:#be202e" />
|
|
101
|
+
<path d="M10.4,12.359c.012-.009.021-.021.036-.033-.012.009-.021.021-.036.033Z"
|
|
102
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
103
|
+
<path d="M10.4,12.359c.012-.009.021-.021.036-.033-.012.009-.021.021-.036.033Z"
|
|
104
|
+
style="fill:url(#i)" />
|
|
105
|
+
<path
|
|
106
|
+
d="M24.627,2.891A10.789,10.789,0,0,0,22.2,4.713l.6,1.69a20.278,20.278,0,0,1,2.1-1.965c.051-.042.082-.066.082-.066-.026.024-.056.042-.082.066a18.028,18.028,0,0,0-2,2.013,31.432,31.432,0,0,0,3.288.072,3.44,3.44,0,0,0,.071-2.639S25.647,2.47,24.627,2.891Z"
|
|
107
|
+
style="fill:url(#j)" />
|
|
108
|
+
<path d="M21.9,11.627a.02.02,0,0,0,.017,0l-.121-.007c-.006,0-.017,0-.023.008Z" style="fill:none" />
|
|
109
|
+
<path d="M20.645,14.308c-.068.007-.14.007-.212.008C20.506,14.315,20.578,14.315,20.645,14.308Z"
|
|
110
|
+
style="fill:none" />
|
|
111
|
+
<path
|
|
112
|
+
d="M13.958,19.763c.014-.02.023-.046.037-.067.255-.456.5-.9.75-1.331.276-.481.55-.95.816-1.4.28-.474.559-.938.829-1.381.285-.468.561-.915.835-1.346.223-.35.439-.689.654-1.018.072-.111.143-.217.214-.323.142-.212.278-.419.413-.621.127-.186.248-.368.369-.55.042-.06.084-.121.12-.176l.021-.03-.1,0-.058-.169c-.008.015-.021.03-.029.046-.189.266-.378.538-.563.815-.106.156-.213.318-.325.479-.3.444-.591.889-.879,1.346s-.584.918-.867,1.375-.554.905-.826,1.359-.537.9-.8,1.352c-.274.47-.542.935-.8,1.4-.059.1-.119.21-.173.313-.21.374-.413.738-.611,1.1l.093.274.116.006a.078.078,0,0,0,.016-.031C13.452,20.681,13.709,20.214,13.958,19.763Z"
|
|
113
|
+
style="fill:none" />
|
|
114
|
+
<path
|
|
115
|
+
d="M19.9,15.646c-.112.006-.223.006-.334.006h0c.055,0,.116,0,.172,0A1.371,1.371,0,0,0,19.9,15.646Z"
|
|
116
|
+
style="fill:#be202e" />
|
|
117
|
+
<path
|
|
118
|
+
d="M19.9,15.646c-.112.006-.223.006-.334.006h0c.055,0,.116,0,.172,0A1.371,1.371,0,0,0,19.9,15.646Z"
|
|
119
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
120
|
+
<path d="M20.384,14.314h0c.016,0,.033,0,.05,0,.072,0,.144,0,.212-.008-.084,0-.172,0-.261.006Z"
|
|
121
|
+
style="fill:#be202e" />
|
|
122
|
+
<path d="M20.384,14.314h0c.016,0,.033,0,.05,0,.072,0,.144,0,.212-.008-.084,0-.172,0-.261.006Z"
|
|
123
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
124
|
+
<path
|
|
125
|
+
d="M19.751,10.091q.486-.652.968-1.272c.334-.428.672-.838,1.013-1.237.02-.025.041-.049.06-.069.334-.389.666-.761,1-1.117l-.6-1.685c-.071.067-.147.134-.224.205-.283.263-.579.547-.884.851-.344.343-.7.707-1.064,1.091-.335.356-.678.732-1.023,1.119-.293.334-.587.673-.882,1.024l-.034.039.767,2.291C19.153,10.918,19.452,10.5,19.751,10.091Z"
|
|
126
|
+
style="fill:url(#k)" />
|
|
127
|
+
<path
|
|
128
|
+
d="M13.063,21.4c-.2.37-.4.75-.605,1.142,0,.005-.007.01-.008.015-.03.057-.06.108-.085.165-.138.262-.256.5-.534,1.036a2.18,2.18,0,0,1,.673,1.08,1.768,1.768,0,0,0-.388-1.282c1.558.3,2.973.1,3.836-.945.075-.094.15-.194.221-.3a1.524,1.524,0,0,1-1.532.318h0A4.26,4.26,0,0,0,17.017,21.2c.141-.168.284-.352.431-.558a3.456,3.456,0,0,1-3.383.574l-.888-.031C13.139,21.261,13.1,21.328,13.063,21.4Z"
|
|
129
|
+
style="fill:url(#l)" />
|
|
130
|
+
<path
|
|
131
|
+
d="M13.758,19.5c.262-.461.529-.926.8-1.4.26-.45.525-.9.8-1.352s.549-.906.826-1.359.573-.919.867-1.375.587-.9.879-1.346c.107-.162.213-.318.325-.479.184-.272.374-.544.563-.815.008-.015.021-.03.029-.046l-.757-2.284a.768.768,0,0,1-.067.079c-.31.376-.626.756-.934,1.149s-.622.8-.927,1.217c-.257.35-.508.7-.76,1.058-.049.07-.1.146-.148.217-.3.449-.591.889-.847,1.312-.292.478-.554.939-.789,1.375-.153.288-.3.566-.433.835-.111.228-.217.461-.323.69-.246.54-.464,1.085-.661,1.633l.771,2.3c.2-.365.406-.728.611-1.1C13.638,19.71,13.7,19.608,13.758,19.5Z"
|
|
132
|
+
style="fill:url(#m)" />
|
|
133
|
+
<path
|
|
134
|
+
d="M12.17,18.686a16.808,16.808,0,0,0-.583,2.01c0,.022-.013.048-.016.07a4.37,4.37,0,0,0-1.086-1.251,6.074,6.074,0,0,1,.805,2.973,2.792,2.792,0,0,1-1.339-.435,2.782,2.782,0,0,0,1.068.883,3.4,3.4,0,0,0-1.747.575,3.488,3.488,0,0,1,1.984-.069C10.2,25.432,9.12,27.645,8.015,30a.652.652,0,0,0,.5-.364c.2-.426,1.51-3.226,3.453-6.872.054-.1.113-.205.168-.314.016-.031.03-.057.046-.087q.308-.57.637-1.17c.052-.092.1-.18.151-.272v-.005l-.771-2.3A.4.4,0,0,0,12.17,18.686Z"
|
|
135
|
+
style="fill:url(#n)" />
|
|
136
|
+
<path
|
|
137
|
+
d="M18.994,11.544c-.042.06-.078.116-.12.176-.121.182-.247.363-.369.55s-.271.409-.413.621c-.071.106-.142.212-.214.323-.215.329-.431.669-.654,1.018-.274.431-.55.878-.835,1.346-.27.443-.549.906-.829,1.381-.266.454-.539.919-.816,1.4-.246.43-.494.875-.75,1.331-.014.02-.023.046-.037.067-.249.451-.506.918-.765,1.4a.078.078,0,0,0-.016.031l.888.031c-.015-.008-.032-.01-.053-.019a6.274,6.274,0,0,0,3.607-1.389A8.449,8.449,0,0,0,18.986,18.4a13.487,13.487,0,0,0,.956-1.417c.272-.459.546-.962.815-1.51a3.269,3.269,0,0,1-.861.162l-.168.009c-.056,0-.111,0-.172,0h0a3.82,3.82,0,0,0,2.326-1.688,3.592,3.592,0,0,1-1.248.344c-.068.007-.14.007-.212.008-.016,0-.033,0-.055,0h0a3.981,3.981,0,0,0,.945-.36,1.707,1.707,0,0,0,.17-.1c.086-.054.166-.114.247-.174.051-.042.1-.08.151-.122a2.784,2.784,0,0,0,.326-.335c.034-.039.066-.073.094-.114.042-.06.083-.115.119-.171.175-.251.32-.48.439-.684.059-.1.112-.194.158-.282.016-.036.037-.067.054-.1.048-.1.094-.186.127-.264a2.773,2.773,0,0,0,.107-.278h0a.6.6,0,0,1-.125.059,4.24,4.24,0,0,1-1.265.236l.816.031-.816-.031a.02.02,0,0,0-.017,0,1.224,1.224,0,0,0-.128,0c.006,0,.017,0,.023-.008l-2.79-.1C19.007,11.529,19,11.539,18.994,11.544Z"
|
|
138
|
+
style="fill:url(#o)" />
|
|
139
|
+
<path
|
|
140
|
+
d="M22.9,6.452c-.3.339-.628.728-.986,1.164a.548.548,0,0,0-.055.07c-.311.381-.638.8-.989,1.263-.3.4-.62.824-.954,1.29-.292.4-.587.829-.9,1.281l2.79.1a3.379,3.379,0,0,0,1.677-.962c.111-.117.224-.244.338-.377A16.2,16.2,0,0,0,24.828,9a14.093,14.093,0,0,0,.8-1.251,7.72,7.72,0,0,0,.351-.691c.077-.183.141-.356.2-.525A32.58,32.58,0,0,1,22.9,6.452Z"
|
|
141
|
+
style="fill:url(#p)" />
|
|
142
|
+
<path d="M19.738,15.655c-.056,0-.111,0-.172,0h0A1.573,1.573,0,0,1,19.738,15.655Z"
|
|
143
|
+
style="fill:#be202e" />
|
|
144
|
+
<path d="M19.738,15.655c-.056,0-.111,0-.172,0h0A1.573,1.573,0,0,1,19.738,15.655Z"
|
|
145
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
146
|
+
<path d="M19.738,15.655c-.056,0-.111,0-.172,0h0A1.573,1.573,0,0,1,19.738,15.655Z"
|
|
147
|
+
style="fill:url(#q)" />
|
|
148
|
+
<path d="M20.378,14.313c.016,0,.033,0,.055,0-.016,0-.033,0-.055,0Z" style="fill:#be202e" />
|
|
149
|
+
<path d="M20.378,14.313c.016,0,.033,0,.055,0-.016,0-.033,0-.055,0Z"
|
|
150
|
+
style="fill:#be202e;opacity:0.3499999940395355;isolation:isolate" />
|
|
151
|
+
<path d="M20.378,14.313c.016,0,.033,0,.055,0-.016,0-.033,0-.055,0Z" style="fill:url(#r)" />
|
|
152
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg viewBox="0 0 128 110" width="16" height="16">
|
|
2
|
+
<path fill="currentColor"
|
|
3
|
+
d="M2 38.5h124v43.71H64v7.29H36.44v-7.29H2zm6.89 36.43h13.78V53.07h6.89v21.86h6.89V45.79H8.89zm34.44-29.14v36.42h13.78v-7.28h13.78V45.79zm13.78 7.29H64v14.56h-6.89zm20.67-7.29v29.14h13.78V53.07h6.89v21.86h6.89V53.07h6.89v21.86h6.89V45.79z"></path>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg viewBox="0 0 128 128" width="16" height="16">
|
|
2
|
+
<path
|
|
3
|
+
d="M9.313 2.508c-3.356.43-6.32 2.418-7.958 5.344C.457 9.457.043 11.07.04 12.969c0 1.789.297 3.117 1.063 4.687 1.421 2.938 4.117 5.008 7.468 5.73.86.184 2.95.2 3.848.032 3.844-.723 6.926-3.375 8.168-7.02.422-1.222.508-1.824.508-3.398 0-1.531-.043-1.883-.418-3.094-1.063-3.492-3.887-6.21-7.406-7.125-1.176-.304-2.825-.418-3.957-.273zM56.5 25.531C42.586 26.72 30.95 36.625 27.602 50.125c-.422 1.688-.579 2.617-.864 5.031-.101.864-.152 38.29-.05 39.969.148 2.613.523 4.844 1.218 7.25 3.106 10.77 11.625 19.27 22.367 22.313 1.829.511 3.766.882 5.82 1.105 1.009.105 2.071.113 20.72.113 20.835 0 20.07.012 22.25-.289a32.469 32.469 0 0014.96-6.148c1.747-1.305 3.922-3.332 5.239-4.875 1.261-1.489 2.699-3.524 3.644-5.188 1.914-3.355 3.324-7.457 3.867-11.25.332-2.273.309-.824.332-21.781.02-13.656.008-19.71-.043-20.438-.468-7.023-3.007-13.374-7.55-18.874-.762-.926-3.082-3.243-4.012-4.012-4.656-3.856-9.867-6.25-15.688-7.2-2.48-.406-.769-.374-22.562-.39-15.938-.004-19.969.008-20.75.07zm-2.875 14.895c4.8.855 8.73 4.21 10.281 8.773.977 2.883.95 5.926-.07 8.77-.68 1.894-2 3.894-3.43 5.187-2.554 2.332-5.601 3.532-8.968 3.532-3.633 0-6.833-1.32-9.383-3.868-2.149-2.152-3.438-4.78-3.805-7.789-.102-.812-.086-2.5.031-3.343.824-6.008 5.57-10.633 11.657-11.376.792-.093 2.867-.03 3.687.114zM96.188 73.03c4.695.602 8.8 2.582 12.18 5.875 2.53 2.469 4.257 5.227 5.35 8.563.708 2.133.97 3.738 1.012 6.125.043 2.43-.16 4.125-.77 6.27-1.315 4.679-4.397 8.937-8.46 11.69-5.25 3.563-11.648 4.571-17.836 2.813-2.344-.66-5.14-2.097-7.102-3.64-5.164-4.079-8.132-10.172-8.124-16.715.007-7.282 3.773-14.051 10-17.942 2.8-1.757 5.968-2.808 9.437-3.132.855-.083 3.395-.024 4.313.093zm0 0"
|
|
4
|
+
fill="currentColor"></path>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg height="16" viewBox="3.01810963 0 758.25189037 627.7911721" width="16" xmlns="http://www.w3.org/2000/svg"><g stroke-linecap="round" stroke-linejoin="round" stroke-width="6.04"><path d="m76.62 357.52v68.42a4.58 4.58 0 0 1 -6.73 4l-64.44-34.16a4.58 4.58 0 0 1 0-8.09l64.44-34.21a4.58 4.58 0 0 1 6.73 4z" fill="#e1743f" stroke="#e1743f"/><path d="m488 596.62v-241.27l-5.32-1.28-43.68 20.23v230h41.3a7.67 7.67 0 0 0 7.7-7.64z" fill="#c25934" stroke="#c25934"/><path d="m761 332c.27.8-32.74-60.77-32.74-60.77l-45.26 51.66z" fill="#e1743f" stroke="#e1743f"/><path d="m251.59 104.92h-38a11.72 11.72 0 0 0 -6.43 1.92l-131.29 86.16a11.72 11.72 0 0 0 -5.29 9.79v412.14a11.72 11.72 0 0 0 11.72 11.72h78.2a11.72 11.72 0 0 0 8.28-3.43l81.22-81.22-162.84-245.54a11.72 11.72 0 0 1 3.3-16.24q.37-.24.75-.46l101.15-56.5a11.72 11.72 0 0 0 6-10.23v-45.03a11.72 11.72 0 0 1 3-7.88z" fill="#c25934" stroke="#c25934"/><path d="m431.85 626.65h-113.53a7.67 7.67 0 0 1 -6.32-3.33l-227.06-330.46a7.67 7.67 0 0 1 2-10.66q.27-.18.55-.34l110.84-61.91v145.65a7.67 7.67 0 0 0 7.64 7.67l233 1v245.24a7.14 7.14 0 0 1 -7.14 7.14z" fill="#e1743f" stroke="#e1743f"/></g><path d="m336.35 79.33a3 3 0 0 1 -3-3v-70.33a3 3 0 0 1 4.45-2.66l131 70.27a3 3 0 0 1 -1.43 5.68z" fill="#c25934"/><path d="m336.35 6 131 70.27h-131zm0-6a6 6 0 0 0 -6 6v70.31a6 6 0 0 0 6 6h131a6 6 0 0 0 2.82-11.31l-130.97-70.28a6 6 0 0 0 -2.85-.72z" fill="#c25934"/><g stroke-linecap="round" stroke-linejoin="round" stroke-width="6.04"><path d="m728.34 271.11-97.16-12.07-49.58 47.17 2.2 12.72 43.38 67.81z" fill="#c25934" stroke="#c25934"/><path d="m626.39 387.08-42.59-68.15-30-173.58a14.08 14.08 0 0 0 -5.13-8.64l-77.73-61.61h-149.53a12.9 12.9 0 0 0 -5.24 1.11l-64.58 28.7 187.41 269.39 43.66-20.23z" fill="#e1743f" stroke="#e1743f"/><path d="m198.36 365.6v-197.1a13 13 0 0 1 3.38-8.74l49.86-54.85 187.4 269.39-233-1a7.67 7.67 0 0 1 -7.64-7.7z" fill="#e68c59" stroke="#e68c59"/></g></svg>
|