Skip to content

Commit

Permalink
feat: Add colors variables for custom icon styling (#20)
Browse files Browse the repository at this point in the history
  • Loading branch information
Franck Gaudin authored May 15, 2024
2 parents c9716c9 + 4e13dc1 commit c9b7aca
Show file tree
Hide file tree
Showing 55 changed files with 5,718 additions and 4,496 deletions.
20 changes: 20 additions & 0 deletions .changeset/proud-ads-relate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
"@hopper-ui/icons-react16": major
---

**Breaking Change**: Updated the icons variables to be more consistent with the other components.

Will need to update the style sheets to use the new CSS variables.

For example, they will need to replace:

| Old variable | New variable |
| ------------ | ------------ |
| `--hop-richicon-placeholder-surface-color` | `--hop-Richicon-placeholder-shadow` |
| `--hop-richicon-placeholder-icon-color` | `--hop-Richicon-placeholder-background` |
| `--hop-richicon-placeholder-icon-strong-color` | `--hop-Richicon-placeholder-fill` |

Add color variables for custom rich-icons styling

to change the background color, use the variable `--hop-Richicon-placeholder-background`
to change the shadow color, use the variable `--hop-Richicon-placeholder-shadow`
2 changes: 1 addition & 1 deletion .github/workflows/changeset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
uses: pnpm/action-setup@v2
id: pnpm-install
with:
version: 8
version: 9
run_install: false

- name: Get pnpm store directory
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,23 +32,23 @@ jobs:
name: Install pnpm
id: pnpm-install
with:
version: 8
version: 9
run_install: false

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm i --frozen-lockfile

Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
"type": "git",
"url": "git+https://github.com/gsoft-inc/wl-hopper-react16.git"
},
"packageManager": "[email protected]",
"scripts": {
"build": "pnpm -r build ",
"changeset": "changeset",
Expand Down
35 changes: 35 additions & 0 deletions packages/icons-react16/scripts/changeColorPlugin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import type { XastElement } from "svgo/lib/types.js";

import { colors } from "./svgo-config.ts";

const colorsProps = new Set([
"color",
"fill",
"flood-color",
"lighting-color",
"stop-color",
"stroke"
]);

export const changeColorPlugin = {
name: "changeColorPlugin",
description: "Change the color of the SVGs",
fn: () => {
return {
element: {
enter: (node: XastElement) => {
for (const [nodeName, nodeValue] of Object.entries(node.attributes)) {
if (colorsProps.has(nodeName)) {
let value = nodeValue;

if (colors[value]) {
value = colors[value];
}
node.attributes[nodeName] = value;
}
}
}
}
};
}
};
3 changes: 2 additions & 1 deletion packages/icons-react16/scripts/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ export const WarningWeakIconColor = "#E57723"; // --hop-warning-icon-weak

export const DecorativeOption7IconColor = "#2A2620"; // --hop-decorative-option7-icon
export const DecorativeOption7SurfaceColor = "#E5DED6"; // --hop-decorative-option7-surface
export const White = "#fff"; // --hop-status-neutral-surface
export const WhiteHexadecimal = "#fff";
export const White = "white"; // TODO: should be --hop-decorative-option7-icon-strong

export const ComponentDirectory = "src/generated-icon-components";
export const SVGsDirectory = "./node_modules/@hopper-ui/svg-icons/dist/icons/";
Expand Down
9 changes: 1 addition & 8 deletions packages/icons-react16/scripts/generate-components.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { transform } from "@svgr/core";
import fs from "fs";
import path from "path";
import { DecorativeOption7IconColor, DecorativeOption7SurfaceColor, IconSuffix, PrimaryIconColor, RichIconSuffix, WarningWeakIconColor, White } from "./constants.ts";
import { IconSuffix, RichIconSuffix } from "./constants.ts";
import type { MultiSourceIconSource } from "./fetch-svgs.ts";
import svgoConfig from "./svgo-config.ts";

Expand Down Expand Up @@ -33,13 +33,6 @@ export async function generateComponents(componentDirectory: string, icons: Mult
componentCode += transform.sync(data, {
typescript: true,
ref: true,
replaceAttrValues: {
[PrimaryIconColor]: "var(--hop-primary-icon)",
[WarningWeakIconColor]: "var(--hop-warning-icon-weak)",
[DecorativeOption7IconColor]: `var(--hop-richicon-placeholder-icon-color, ${DecorativeOption7IconColor})`,
[DecorativeOption7SurfaceColor]: `var(--hop-richicon-placeholder-surface-color, ${DecorativeOption7SurfaceColor})`,
[White]: `var(--hop-richicon-placeholder-icon-strong-color, ${White})` // TODO: should be --hop-decorative-option7-icon-strong once it exists
},
jsxRuntime: "automatic",
svgoConfig: svgoConfig,
plugins: ["@svgr/plugin-svgo", "@svgr/plugin-jsx"],
Expand Down
22 changes: 21 additions & 1 deletion packages/icons-react16/scripts/svgo-config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
import type { Config } from "svgo";

import { changeColorPlugin } from "./changeColorPlugin.ts";
import {
PrimaryIconColor,
WarningWeakIconColor,
DecorativeOption7IconColor,
DecorativeOption7SurfaceColor,
White,
WhiteHexadecimal
} from "./constants.ts";

export const colors: { [key: string]: string } = {
[PrimaryIconColor]: `var(--hop-Icon-placeholder-primary-icon, ${PrimaryIconColor})`,
[WarningWeakIconColor]: `var(--hop-Icon-placeholder-warning-icon-weak, ${WarningWeakIconColor})`,
[White]: `var(--hop-Richicon-placeholder-fill, ${WhiteHexadecimal})`,
[WhiteHexadecimal]: `var(--hop-Richicon-placeholder-fill, ${WhiteHexadecimal})`,
[DecorativeOption7IconColor]: `var(--hop-Richicon-placeholder-background, ${DecorativeOption7IconColor})`,
[DecorativeOption7SurfaceColor]: `var(--hop-Richicon-placeholder-shadow, ${DecorativeOption7SurfaceColor})`
};

const config : Config = {
plugins: [
{
Expand All @@ -10,7 +29,8 @@ const config : Config = {
}
}
},
"removeXMLNS"
"removeXMLNS",
changeColorPlugin
]
};

Expand Down
10 changes: 6 additions & 4 deletions packages/icons-react16/src/Icon.module.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.hop-icon {
color: inherit;
fill: currentcolor;
.hop-Icon {
--hop-Icon-placeholder-primary-icon: var(--hop-primary-icon);
--hop-Icon-placeholder-warning-icon-weak: var(--hop-warning-icon-weak);

display: inline-block;
pointer-events: none;
flex-shrink: 0;
color: inherit;
fill: currentcolor;
}
2 changes: 1 addition & 1 deletion packages/icons-react16/src/Icon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export const Icon = forwardRef<SVGSVGElement, IconProps>((props, ref) => {

const As = sizeMappings[size];
const classNames = [
styles["hop-icon"],
styles["hop-Icon"],
className
].filter(x => x !== undefined).join(" ");

Expand Down
55 changes: 27 additions & 28 deletions packages/icons-react16/src/RichIcon.module.css
Original file line number Diff line number Diff line change
@@ -1,58 +1,57 @@
.hop-RichIcon {
/* These tokens needs to match the ones defined in the generateComponents script */
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option7-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option7-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option7-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option7-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);

pointer-events: none;
display: inline-block;
flex-shrink: 0;
}

.hop-RichIcon--option1 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option1-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option1-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option1-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option1-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option2 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option2-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option2-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option2-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option2-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option3 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option3-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option3-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option3-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option3-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option4 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option4-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option4-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option4-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option4-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option5 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option5-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option5-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option5-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option5-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option6 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option6-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option6-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option6-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option6-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option7 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option7-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option7-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option7-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option7-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}

.hop-RichIcon--option8 {
--hop-richicon-placeholder-surface-color: var(--hop-decorative-option8-surface);
--hop-richicon-placeholder-icon-color: var(--hop-decorative-option8-icon);
--hop-richicon-placeholder-icon-strong-color: var(--hop-samoyed);
--hop-Richicon-placeholder-shadow: var(--hop-decorative-option8-surface);
--hop-Richicon-placeholder-background: var(--hop-decorative-option8-icon);
--hop-Richicon-placeholder-fill: var(--hop-samoyed);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import { createIcon } from "../createIcon.tsx";
import React, { forwardRef, type Ref, type SVGProps } from "react";

const NewCommentIcon16 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={16} height={16} viewBox="0 0 16 16" ref={ref} {...props}><path fillRule="evenodd" d="M8 2.504a5.5 5.5 0 0 0 0 11h5.047l-.864-.865a.75.75 0 0 1-.035-1.023 5.52 5.52 0 0 0 1.221-4.812.75.75 0 0 1 1.464-.326 7.02 7.02 0 0 1-1.12 5.57l1.675 1.675a.75.75 0 0 1-.53 1.28H8A7 7 0 1 1 9.527 1.172.75.75 0 1 1 9.2 2.635 5.5 5.5 0 0 0 8 2.504" /><path fill="var(--hop-primary-icon)" d="M13.246 4.753a2 2 0 1 0 0-4 2 2 0 0 0 0 4" /></svg>);
const NewCommentIcon24 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={24} height={24} viewBox="0 0 24 24" ref={ref} {...props}><path fillRule="evenodd" d="M11.948 4.5a7.5 7.5 0 0 0 0 15h7.241l-1.55-1.551a.75.75 0 0 1-.036-1.023A7.47 7.47 0 0 0 19.448 12a7.5 7.5 0 0 0-.262-1.972.75.75 0 1 1 1.447-.393c.205.754.315 1.547.315 2.365 0 2.01-.66 3.866-1.773 5.364l2.355 2.356A.75.75 0 0 1 21 21h-9.052a9 9 0 1 1 2.461-17.659.75.75 0 1 1-.41 1.443 7.5 7.5 0 0 0-2.052-.284" /><path fill="var(--hop-primary-icon)" d="M19 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6" /></svg>);
const NewCommentIcon32 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={32} height={32} viewBox="0 0 32 32" ref={ref} {...props}><path fillRule="evenodd" d="M16 6C10.477 6 6 10.477 6 16s4.477 10 10 10h9.656l-2.068-2.068a1 1 0 0 1-.047-1.364A9.96 9.96 0 0 0 26 16c0-.998-.146-1.961-.417-2.869a1 1 0 0 1 1.916-.572A12 12 0 0 1 28 16c0 2.68-.88 5.155-2.363 7.152l3.14 3.14A1 1 0 0 1 28.07 28H16C9.373 28 4 22.627 4 16S9.373 4 16 4c1.133 0 2.23.157 3.272.452a1 1 0 1 1-.544 1.924A10 10 0 0 0 16 6" /><path fill="var(--hop-primary-icon)" d="M25 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8" /></svg>);
const NewCommentIcon16 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={16} height={16} viewBox="0 0 16 16" ref={ref} {...props}><path fillRule="evenodd" d="M8 2.504a5.5 5.5 0 0 0 0 11h5.047l-.864-.865a.75.75 0 0 1-.035-1.023 5.52 5.52 0 0 0 1.221-4.812.75.75 0 0 1 1.464-.326 7.02 7.02 0 0 1-1.12 5.57l1.675 1.675a.75.75 0 0 1-.53 1.28H8A7 7 0 1 1 9.527 1.172.75.75 0 1 1 9.2 2.635 5.5 5.5 0 0 0 8 2.504" /><path fill="var(--hop-Icon-placeholder-primary-icon, #3B57FF)" d="M13.246 4.753a2 2 0 1 0 0-4 2 2 0 0 0 0 4" /></svg>);
const NewCommentIcon24 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={24} height={24} viewBox="0 0 24 24" ref={ref} {...props}><path fillRule="evenodd" d="M11.948 4.5a7.5 7.5 0 0 0 0 15h7.241l-1.55-1.551a.75.75 0 0 1-.036-1.023A7.47 7.47 0 0 0 19.448 12a7.5 7.5 0 0 0-.262-1.972.75.75 0 1 1 1.447-.393c.205.754.315 1.547.315 2.365 0 2.01-.66 3.866-1.773 5.364l2.355 2.356A.75.75 0 0 1 21 21h-9.052a9 9 0 1 1 2.461-17.659.75.75 0 1 1-.41 1.443 7.5 7.5 0 0 0-2.052-.284" /><path fill="var(--hop-Icon-placeholder-primary-icon, #3B57FF)" d="M19 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6" /></svg>);
const NewCommentIcon32 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={32} height={32} viewBox="0 0 32 32" ref={ref} {...props}><path fillRule="evenodd" d="M16 6C10.477 6 6 10.477 6 16s4.477 10 10 10h9.656l-2.068-2.068a1 1 0 0 1-.047-1.364A9.96 9.96 0 0 0 26 16c0-.998-.146-1.961-.417-2.869a1 1 0 0 1 1.916-.572A12 12 0 0 1 28 16c0 2.68-.88 5.155-2.363 7.152l3.14 3.14A1 1 0 0 1 28.07 28H16C9.373 28 4 22.627 4 16S9.373 4 16 4c1.133 0 2.23.157 3.272.452a1 1 0 1 1-.544 1.924A10 10 0 0 0 16 6" /><path fill="var(--hop-Icon-placeholder-primary-icon, #3B57FF)" d="M25 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8" /></svg>);

export const NewCommentIcon = createIcon(NewCommentIcon16, NewCommentIcon24, NewCommentIcon32, "NewCommentIcon");
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import { createIcon } from "../createIcon.tsx";
import React, { forwardRef, type Ref, type SVGProps } from "react";

const NewFilterIcon16 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={16} height={16} viewBox="0 0 16 16" ref={ref} {...props}><path fill="var(--hop-primary-icon)" d="M13 5a2 2 0 1 0 0-4 2 2 0 0 0 0 4" /><path fillRule="evenodd" d="M7.25 5.25a.75.75 0 0 0 1.5 0V4.5h.5a.75.75 0 0 0 0-1.5h-.5v-.75a.75.75 0 0 0-1.5 0V3h-4.5a.75.75 0 0 0 0 1.5h4.5zm-4.5 6.25a.75.75 0 0 0 0 1.5H4v.75a.75.75 0 0 0 1.5 0V13h7.75a.75.75 0 0 0 0-1.5H5.5v-.75a.75.75 0 0 0-1.5 0v.75zM2 8a.75.75 0 0 1 .75-.75h7.75V6.5a.75.75 0 0 1 1.5 0v.75h1.25a.75.75 0 0 1 0 1.5H12v.75a.75.75 0 0 1-1.5 0v-.75H2.75A.75.75 0 0 1 2 8" /></svg>);
const NewFilterIcon24 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={24} height={24} viewBox="0 0 24 24" ref={ref} {...props}><path fillRule="evenodd" d="M11.25 8.25a.75.75 0 0 0 1.5 0V6.5h1.5a.75.75 0 0 0 0-1.5h-1.5V3.25a.75.75 0 0 0-1.5 0V5H3.748a.75.75 0 0 0 0 1.5h7.502zm-7.502 3a.75.75 0 0 0 0 1.5h12.755v1.75a.75.75 0 0 0 1.5 0v-1.75h2.25a.75.75 0 0 0 0-1.5h-2.25V9.5a.75.75 0 0 0-1.5 0v1.75zm-.75 7a.75.75 0 0 1 .75-.75H5v-1.75a.75.75 0 0 1 1.5 0v1.75h13.752a.75.75 0 0 1 0 1.5H6.5v1.75a.75.75 0 0 1-1.5 0V19H3.748a.75.75 0 0 1-.75-.75" /><path fill="var(--hop-primary-icon)" d="M19 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6" /></svg>);
const NewFilterIcon32 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={32} height={32} viewBox="0 0 32 32" ref={ref} {...props}><path fillRule="evenodd" d="M15 9.75a1 1 0 1 0 2 0V8h2a1 1 0 1 0 0-2h-2V4.25a1 1 0 1 0-2 0V6H5a1 1 0 0 0 0 2h10zM5 15a1 1 0 1 0 0 2h18v1.75a1 1 0 1 0 2 0V17h2a1 1 0 1 0 0-2h-2v-1.75a1 1 0 1 0-2 0V15zM4 25a1 1 0 0 1 1-1h1v-1.75a1 1 0 1 1 2 0V24h19a1 1 0 1 1 0 2H8v1.75a1 1 0 1 1-2 0V26H5a1 1 0 0 1-1-1" /><path fill="var(--hop-primary-icon)" d="M25 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8" /></svg>);
const NewFilterIcon16 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={16} height={16} viewBox="0 0 16 16" ref={ref} {...props}><path fill="var(--hop-Icon-placeholder-primary-icon, #3B57FF)" d="M13 5a2 2 0 1 0 0-4 2 2 0 0 0 0 4" /><path fillRule="evenodd" d="M7.25 5.25a.75.75 0 0 0 1.5 0V4.5h.5a.75.75 0 0 0 0-1.5h-.5v-.75a.75.75 0 0 0-1.5 0V3h-4.5a.75.75 0 0 0 0 1.5h4.5zm-4.5 6.25a.75.75 0 0 0 0 1.5H4v.75a.75.75 0 0 0 1.5 0V13h7.75a.75.75 0 0 0 0-1.5H5.5v-.75a.75.75 0 0 0-1.5 0v.75zM2 8a.75.75 0 0 1 .75-.75h7.75V6.5a.75.75 0 0 1 1.5 0v.75h1.25a.75.75 0 0 1 0 1.5H12v.75a.75.75 0 0 1-1.5 0v-.75H2.75A.75.75 0 0 1 2 8" /></svg>);
const NewFilterIcon24 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={24} height={24} viewBox="0 0 24 24" ref={ref} {...props}><path fillRule="evenodd" d="M11.25 8.25a.75.75 0 0 0 1.5 0V6.5h1.5a.75.75 0 0 0 0-1.5h-1.5V3.25a.75.75 0 0 0-1.5 0V5H3.748a.75.75 0 0 0 0 1.5h7.502zm-7.502 3a.75.75 0 0 0 0 1.5h12.755v1.75a.75.75 0 0 0 1.5 0v-1.75h2.25a.75.75 0 0 0 0-1.5h-2.25V9.5a.75.75 0 0 0-1.5 0v1.75zm-.75 7a.75.75 0 0 1 .75-.75H5v-1.75a.75.75 0 0 1 1.5 0v1.75h13.752a.75.75 0 0 1 0 1.5H6.5v1.75a.75.75 0 0 1-1.5 0V19H3.748a.75.75 0 0 1-.75-.75" /><path fill="var(--hop-Icon-placeholder-primary-icon, #3B57FF)" d="M19 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6" /></svg>);
const NewFilterIcon32 = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => <svg width={32} height={32} viewBox="0 0 32 32" ref={ref} {...props}><path fillRule="evenodd" d="M15 9.75a1 1 0 1 0 2 0V8h2a1 1 0 1 0 0-2h-2V4.25a1 1 0 1 0-2 0V6H5a1 1 0 0 0 0 2h10zM5 15a1 1 0 1 0 0 2h18v1.75a1 1 0 1 0 2 0V17h2a1 1 0 1 0 0-2h-2v-1.75a1 1 0 1 0-2 0V15zM4 25a1 1 0 0 1 1-1h1v-1.75a1 1 0 1 1 2 0V24h19a1 1 0 1 1 0 2H8v1.75a1 1 0 1 1-2 0V26H5a1 1 0 0 1-1-1" /><path fill="var(--hop-Icon-placeholder-primary-icon, #3B57FF)" d="M25 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8" /></svg>);

export const NewFilterIcon = createIcon(NewFilterIcon16, NewFilterIcon24, NewFilterIcon32, "NewFilterIcon");
Loading

0 comments on commit c9b7aca

Please sign in to comment.