@speakeasy-api/moonshine 1.33.4 → 2.0.0-alpha.2
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/README.md +26 -10
- package/package.json +12 -23
- 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/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-DsW1bFpz.mjs → src/components/Icon/customIcons/go.ts} +21 -19
- package/src/components/Icon/customIcons/index.ts +11 -0
- package/{dist/maven-Dub5liK1.mjs → src/components/Icon/customIcons/maven.ts} +17 -15
- package/src/components/Icon/customIcons/npm.ts +19 -0
- package/{dist/nuget-D86y5HDl.mjs → src/components/Icon/customIcons/nuget.ts} +17 -15
- package/src/components/Icon/customIcons/packagist.ts +124 -0
- package/{dist/pypi-2SUX-2OR.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/vite-env.d.ts +6 -0
- package/types/utilities.d.ts +1 -1
- package/dist/components/AIChat/AIChatContainer.d.ts +0 -26
- 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 -79
- 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/AppLayout/context.d.ts +0 -16
- package/dist/components/AppLayout/index.d.ts +0 -131
- package/dist/components/AppLayout/provider.d.ts +0 -8
- package/dist/components/AppLayout/useAppLayoutKeys.d.ts +0 -1
- package/dist/components/Badge/index.d.ts +0 -21
- package/dist/components/Button/index.d.ts +0 -22
- package/dist/components/Card/index.d.ts +0 -47
- package/dist/components/CodeEditorLayout/index.d.ts +0 -101
- package/dist/components/CodeHighlight/Pre.d.ts +0 -8
- package/dist/components/CodePlayground/index.d.ts +0 -102
- package/dist/components/CodeSnippet/index.d.ts +0 -49
- 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/Dialog/index.d.ts +0 -21
- 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/IconButton/index.d.ts +0 -14
- 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 -15
- 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/Modal/index.d.ts +0 -8
- 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/SegmentedButton/index.d.ts +0 -23
- 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 -6
- package/dist/components/Timeline/index.d.ts +0 -49
- package/dist/components/Tooltip/index.d.ts +0 -9
- 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 -12
- 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 -11
- package/dist/components/WorkspaceSelector/index.d.ts +0 -36
- package/dist/components/__beta__/CLIWizard/index.d.ts +0 -19
- 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/ModalContext.d.ts +0 -22
- package/dist/context/theme.d.ts +0 -1
- package/dist/createCustomLucideIcon-CatlpFc0.mjs +0 -19
- package/dist/createCustomLucideIcon-CatlpFc0.mjs.map +0 -1
- package/dist/gems-DQ7pOLLr.mjs +0 -24
- package/dist/gems-DQ7pOLLr.mjs.map +0 -1
- package/dist/github-kgjMtfE7.mjs +0 -11
- package/dist/github-kgjMtfE7.mjs.map +0 -1
- package/dist/go-DsW1bFpz.mjs.map +0 -1
- package/dist/hooks/useAppLayout.d.ts +0 -1
- package/dist/hooks/useConfig.d.ts +0 -2
- package/dist/hooks/useIsMounted.d.ts +0 -1
- package/dist/hooks/useModal.d.ts +0 -11
- package/dist/hooks/useTailwindBreakpoint.d.ts +0 -3
- package/dist/hooks/useTheme.d.ts +0 -6
- package/dist/index-C9bJtuJ5.mjs +0 -16347
- package/dist/index-C9bJtuJ5.mjs.map +0 -1
- package/dist/index.d.ts +0 -80
- package/dist/lib/assert.d.ts +0 -2
- package/dist/lib/codeUtils.d.ts +0 -36
- 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 -24
- package/dist/maven-Dub5liK1.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 -125
- 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-BYcG5_q9.mjs +0 -17
- package/dist/npm-BYcG5_q9.mjs.map +0 -1
- package/dist/nuget-CV5HU1JR.mjs +0 -11
- package/dist/nuget-CV5HU1JR.mjs.map +0 -1
- package/dist/nuget-D86y5HDl.mjs.map +0 -1
- package/dist/packagist-BFSSrw4p.mjs +0 -118
- package/dist/packagist-BFSSrw4p.mjs.map +0 -1
- package/dist/packagist-D01fn9N_.mjs +0 -11
- package/dist/packagist-D01fn9N_.mjs.map +0 -1
- package/dist/pypi-2SUX-2OR.mjs.map +0 -1
- package/dist/pypi-DLh6kIJe.mjs +0 -11
- package/dist/pypi-DLh6kIJe.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 -85
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ Add this to the top of your project's CSS file where you configure Tailwind:
|
|
|
33
33
|
|
|
34
34
|
**Note:** The `@reference` directive is required for Tailwind v4 to recognize Moonshine's custom utilities and make them available in your project.
|
|
35
35
|
|
|
36
|
-
### 3. Import Moonshine's
|
|
36
|
+
### 3. Import Moonshine's CSS
|
|
37
37
|
|
|
38
38
|
In your main app file (or root layout):
|
|
39
39
|
|
|
@@ -41,6 +41,8 @@ In your main app file (or root layout):
|
|
|
41
41
|
import '@speakeasy-api/moonshine/moonshine.css'
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
**Note:** Moonshine distributes as pure TypeScript, and Vite will process the CSS from source automatically.
|
|
45
|
+
|
|
44
46
|
### 4. Set up the Provider
|
|
45
47
|
|
|
46
48
|
Wrap your application in the `MoonshineConfigProvider` component:
|
|
@@ -52,7 +54,7 @@ import { MoonshineConfigProvider } from '@speakeasy-api/moonshine'
|
|
|
52
54
|
</MoonshineConfigProvider>
|
|
53
55
|
```
|
|
54
56
|
|
|
55
|
-
###
|
|
57
|
+
### 6. Configure Custom Fonts (Optional)
|
|
56
58
|
|
|
57
59
|
Moonshine uses custom fonts (Diatype, Tobias). If you have licenses for these fonts, add them to your project:
|
|
58
60
|
|
|
@@ -79,7 +81,7 @@ Moonshine uses custom fonts (Diatype, Tobias). If you have licenses for these fo
|
|
|
79
81
|
|
|
80
82
|
If you don't have these fonts, the design system will fall back to system fonts.
|
|
81
83
|
|
|
82
|
-
###
|
|
84
|
+
### 7. Use Components and Utilities
|
|
83
85
|
|
|
84
86
|
```tsx
|
|
85
87
|
import { Grid } from '@speakeasy-api/moonshine'
|
|
@@ -112,7 +114,7 @@ The types are automatically generated during the build process and include:
|
|
|
112
114
|
|
|
113
115
|
💡 **Tip**: This prevents typos and helps you discover available utilities without leaving your editor!
|
|
114
116
|
|
|
115
|
-
The package is built with [vite](https://vitejs.dev/)
|
|
117
|
+
The package is built with [vite](https://vitejs.dev/) and distributed as **pure TypeScript**. Consumers using Vite will transpile the TypeScript on-the-fly, eliminating the need for a separate build step when linking the library locally.
|
|
116
118
|
|
|
117
119
|
### Using Tailwind Merge
|
|
118
120
|
|
|
@@ -206,8 +208,7 @@ import type { MoonshineClasses } from '@speakeasy-api/moonshine/types/utilities'
|
|
|
206
208
|
|
|
207
209
|
1. Clone the repository
|
|
208
210
|
2. Run `pnpm install` to install the dependencies
|
|
209
|
-
3. Run `pnpm
|
|
210
|
-
4. Run `pnpm storybook` to start the storybook server
|
|
211
|
+
3. Run `pnpm storybook` to start the storybook server
|
|
211
212
|
|
|
212
213
|
If you'd like to develop Moonshine in tandem with another app, you can follow the steps outlined below in the **Linking the library locally** section.
|
|
213
214
|
|
|
@@ -264,18 +265,33 @@ Run `pnpm test` to run the tests.
|
|
|
264
265
|
|
|
265
266
|
### Linking the library locally
|
|
266
267
|
|
|
267
|
-
|
|
268
|
+
Since Moonshine distributes as pure TypeScript, linking is much simpler - no build step required!
|
|
268
269
|
|
|
269
|
-
|
|
270
|
+
1. **Link the library** from within your consuming app:
|
|
270
271
|
|
|
271
272
|
```bash
|
|
272
273
|
pnpm link ../path/to/moonshine
|
|
273
274
|
```
|
|
274
275
|
|
|
275
|
-
|
|
276
|
+
For example, if `moonshine` is a sibling of your app directory:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
pnpm link ../moonshine
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
2. **Start your dev server** - Vite will automatically transpile the TypeScript from the linked library.
|
|
283
|
+
|
|
284
|
+
The lockfile within your app should reference the linked copy:
|
|
276
285
|
|
|
277
286
|
```yaml
|
|
278
287
|
'@speakeasy-api/moonshine':
|
|
279
|
-
specifier: ^0.
|
|
288
|
+
specifier: ^2.0.0-alpha.1
|
|
280
289
|
version: link:../../../../moonshine
|
|
281
290
|
```
|
|
291
|
+
|
|
292
|
+
**Benefits of pure TypeScript distribution:**
|
|
293
|
+
|
|
294
|
+
- ✅ No need to run `tsc` in watch mode
|
|
295
|
+
- ✅ No build conflicts between library and consumer
|
|
296
|
+
- ✅ Instant updates when you change source files
|
|
297
|
+
- ✅ Simpler development workflow
|
package/package.json
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speakeasy-api/moonshine",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-alpha.2",
|
|
4
4
|
"packageManager": "pnpm@9.0.0",
|
|
5
5
|
"description": "Speakeasy's design system Moonshine",
|
|
6
6
|
"sideEffects": false,
|
|
7
|
-
"main": "
|
|
8
|
-
"module": "
|
|
9
|
-
"types": "
|
|
7
|
+
"main": "src/index.ts",
|
|
8
|
+
"module": "src/index.ts",
|
|
9
|
+
"types": "src/index.ts",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
|
-
"types": "./
|
|
13
|
-
"
|
|
14
|
-
"
|
|
12
|
+
"types": "./src/index.ts",
|
|
13
|
+
"import": "./src/index.ts",
|
|
14
|
+
"require": "./src/index.ts"
|
|
15
15
|
},
|
|
16
16
|
"./moonshine.css": {
|
|
17
|
-
"require": "./
|
|
18
|
-
"import": "./
|
|
17
|
+
"require": "./src/global.css",
|
|
18
|
+
"import": "./src/global.css",
|
|
19
|
+
"default": "./src/global.css"
|
|
19
20
|
},
|
|
20
21
|
"./src/global.css": {
|
|
21
22
|
"require": "./src/global.css",
|
|
@@ -26,28 +27,16 @@
|
|
|
26
27
|
"type": "git",
|
|
27
28
|
"url": "https://github.com/speakeasy-api/moonshine.git"
|
|
28
29
|
},
|
|
29
|
-
"files": [
|
|
30
|
-
"dist",
|
|
31
|
-
"src/global.css",
|
|
32
|
-
"src/base.css",
|
|
33
|
-
"src/utilities.css",
|
|
34
|
-
"types"
|
|
35
|
-
],
|
|
36
30
|
"scripts": {
|
|
37
|
-
"clean": "rimraf dist",
|
|
38
|
-
"build": "pnpm clean && vite build",
|
|
39
|
-
"build:watch": "vite build --watch --mode development",
|
|
40
31
|
"type-check": "tsc --noEmit --skipLibCheck",
|
|
41
|
-
"prepack": "pnpm
|
|
32
|
+
"prepack": "pnpm type-check",
|
|
42
33
|
"storybook": "storybook dev -p 6006",
|
|
43
34
|
"build-storybook": "storybook build",
|
|
44
35
|
"chromatic": "chromatic",
|
|
45
36
|
"lint": "eslint",
|
|
46
37
|
"lint:fix": "eslint --fix",
|
|
47
38
|
"test": "vitest",
|
|
48
|
-
"
|
|
49
|
-
"generate:docs": "node scripts/generate-utility-docs.js",
|
|
50
|
-
"postbuild": "pnpm generate:docs"
|
|
39
|
+
"generate:docs": "node scripts/generate-utility-docs.js"
|
|
51
40
|
},
|
|
52
41
|
"author": "Speakeasy",
|
|
53
42
|
"license": "ISC",
|
|
@@ -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>
|