@shopify/cli-hydrogen 5.1.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/commands/hydrogen/build.js +10 -5
  2. package/dist/commands/hydrogen/check.js +1 -1
  3. package/dist/commands/hydrogen/codegen-unstable.js +3 -3
  4. package/dist/commands/hydrogen/dev.js +26 -17
  5. package/dist/commands/hydrogen/init.js +3 -0
  6. package/dist/commands/hydrogen/init.test.js +199 -51
  7. package/dist/commands/hydrogen/preview.js +4 -3
  8. package/dist/commands/hydrogen/setup.js +5 -2
  9. package/dist/commands/hydrogen/setup.test.js +62 -0
  10. package/dist/generator-templates/starter/app/components/Footer.tsx +1 -1
  11. package/dist/generator-templates/starter/app/components/Header.tsx +1 -1
  12. package/dist/generator-templates/starter/app/components/Search.tsx +3 -3
  13. package/dist/generator-templates/starter/app/root.tsx +24 -1
  14. package/dist/generator-templates/starter/app/routes/$.tsx +4 -0
  15. package/dist/generator-templates/starter/app/routes/_index.tsx +6 -2
  16. package/dist/generator-templates/starter/app/routes/account.$.tsx +1 -2
  17. package/dist/generator-templates/starter/app/routes/account.addresses.tsx +1 -1
  18. package/dist/generator-templates/starter/app/routes/account.orders._index.tsx +2 -7
  19. package/dist/generator-templates/starter/app/routes/account.profile.tsx +7 -2
  20. package/dist/generator-templates/starter/app/routes/account.tsx +4 -3
  21. package/dist/generator-templates/starter/app/routes/account_.activate.$id.$activationToken.tsx +6 -2
  22. package/dist/generator-templates/starter/app/routes/account_.login.tsx +6 -2
  23. package/dist/generator-templates/starter/app/routes/account_.logout.tsx +2 -6
  24. package/dist/generator-templates/starter/app/routes/blogs.$blogHandle.$articleHandle.tsx +1 -2
  25. package/dist/generator-templates/starter/app/routes/blogs.$blogHandle._index.tsx +1 -2
  26. package/dist/generator-templates/starter/app/routes/blogs._index.tsx +1 -2
  27. package/dist/generator-templates/starter/app/routes/cart.tsx +1 -2
  28. package/dist/generator-templates/starter/app/routes/collections.$handle.tsx +1 -2
  29. package/dist/generator-templates/starter/app/routes/pages.$handle.tsx +1 -2
  30. package/dist/generator-templates/starter/app/routes/policies.$handle.tsx +2 -3
  31. package/dist/generator-templates/starter/app/routes/products.$handle.tsx +23 -15
  32. package/dist/generator-templates/starter/app/routes/search.tsx +1 -2
  33. package/dist/generator-templates/starter/package.json +4 -4
  34. package/dist/generator-templates/starter/remix.config.js +1 -0
  35. package/dist/generator-templates/starter/storefrontapi.generated.d.ts +9 -9
  36. package/dist/lib/ast.js +9 -0
  37. package/dist/lib/check-version.test.js +1 -0
  38. package/dist/lib/codegen.js +17 -7
  39. package/dist/lib/environment-variables.js +15 -11
  40. package/dist/lib/file.test.js +4 -5
  41. package/dist/lib/find-port.js +9 -0
  42. package/dist/lib/flags.js +3 -2
  43. package/dist/lib/format-code.js +3 -0
  44. package/dist/lib/live-reload.js +62 -0
  45. package/dist/lib/log.js +6 -1
  46. package/dist/lib/mini-oxygen.js +28 -18
  47. package/dist/lib/missing-routes.js +17 -1
  48. package/dist/lib/onboarding/common.js +5 -0
  49. package/dist/lib/onboarding/local.js +21 -8
  50. package/dist/lib/onboarding/remote.js +8 -3
  51. package/dist/lib/remix-config.js +2 -0
  52. package/dist/lib/remix-version-check.test.js +1 -0
  53. package/dist/lib/setups/css/replacers.js +7 -4
  54. package/dist/lib/setups/i18n/replacers.js +7 -5
  55. package/dist/lib/setups/routes/generate.js +4 -1
  56. package/dist/lib/setups/routes/generate.test.js +10 -11
  57. package/dist/lib/template-downloader.js +4 -0
  58. package/dist/lib/transpile-ts.js +1 -0
  59. package/dist/lib/virtual-routes.js +4 -1
  60. package/dist/virtual-routes/components/HydrogenLogoBaseBW.jsx +26 -4
  61. package/dist/virtual-routes/components/HydrogenLogoBaseColor.jsx +40 -10
  62. package/dist/virtual-routes/components/IconBanner.jsx +286 -44
  63. package/dist/virtual-routes/components/IconDiscord.jsx +17 -1
  64. package/dist/virtual-routes/components/IconError.jsx +55 -17
  65. package/dist/virtual-routes/components/IconGithub.jsx +19 -1
  66. package/dist/virtual-routes/components/IconTwitter.jsx +17 -1
  67. package/dist/virtual-routes/components/Layout.jsx +1 -1
  68. package/dist/virtual-routes/routes/index.jsx +110 -94
  69. package/dist/virtual-routes/virtual-root.jsx +7 -15
  70. package/oclif.manifest.json +1 -1
  71. package/package.json +9 -8
@@ -1,17 +1,17 @@
1
1
  import { AbortError } from '@shopify/cli-kit/node/error';
2
2
  import { joinPath, relativePath } from '@shopify/cli-kit/node/path';
3
3
  import { fileExists } from '@shopify/cli-kit/node/fs';
4
- import { ts, tsx, js, jsx } from '@ast-grep/napi';
5
4
  import { replaceFileContent, findFileWithExtension } from '../../file.js';
5
+ import { importLangAstGrep } from '../../ast.js';
6
6
 
7
- const astGrep = { ts, tsx, js, jsx };
8
7
  async function replaceServerI18n({ rootDirectory, serverEntryPoint = "server" }, formatConfig, localeExtractImplementation) {
9
8
  const { filepath, astType } = await findEntryFile({
10
9
  rootDirectory,
11
10
  serverEntryPoint
12
11
  });
13
12
  await replaceFileContent(filepath, formatConfig, async (content) => {
14
- const root = astGrep[astType].parse(content).root();
13
+ const astGrep = await importLangAstGrep(astType);
14
+ const root = astGrep.parse(content).root();
15
15
  const requestIdentifier = root.find({
16
16
  rule: {
17
17
  kind: "identifier",
@@ -58,6 +58,7 @@ async function replaceServerI18n({ rootDirectory, serverEntryPoint = "server" },
58
58
  has: {
59
59
  kind: "identifier",
60
60
  regex: `^${hydrogenImportName}`
61
+ // could be appended with " as ..."
61
62
  }
62
63
  }
63
64
  });
@@ -154,10 +155,11 @@ async function replaceRemixEnv({ rootDirectory, serverEntryPoint }, formatConfig
154
155
  rootDirectory,
155
156
  entryFilepath
156
157
  ).replace(/.[tj]sx?$/, "");
157
- await replaceFileContent(remixEnvPath, formatConfig, (content) => {
158
+ await replaceFileContent(remixEnvPath, formatConfig, async (content) => {
158
159
  if (content.includes(`Storefront<`))
159
160
  return;
160
- const root = astGrep.ts.parse(content).root();
161
+ const astGrep = await importLangAstGrep("ts");
162
+ const root = astGrep.parse(content).root();
161
163
  const storefrontTypeNode = root.find({
162
164
  rule: {
163
165
  kind: "property_signature",
@@ -191,7 +191,9 @@ async function generateProjectFile(routeFrom, {
191
191
  function getDestinationRoute(routeFrom, localePrefix, v2Flags) {
192
192
  const routePath = routeFrom.replace(GENERATOR_ROUTE_DIR + "/", "");
193
193
  const filePrefix = localePrefix && !NO_LOCALE_PATTERNS.some((pattern) => pattern.test(routePath)) ? `($${localePrefix})` + (v2Flags.isV2RouteConvention ? "." : "/") : "";
194
- return GENERATOR_ROUTE_DIR + "/" + filePrefix + (v2Flags.isV2RouteConvention ? routePath : convertRouteToV1(routePath));
194
+ return GENERATOR_ROUTE_DIR + "/" + filePrefix + // The template file uses the v2 route convention, so we need to convert
195
+ // it to v1 if the user is not using v2.
196
+ (v2Flags.isV2RouteConvention ? routePath : convertRouteToV1(routePath));
195
197
  }
196
198
  async function findRouteDependencies(routeFilePath, appDirectory) {
197
199
  const filesToCheck = /* @__PURE__ */ new Set([routeFilePath]);
@@ -203,6 +205,7 @@ async function findRouteDependencies(routeFilePath, appDirectory) {
203
205
  continue;
204
206
  match = match.replace(
205
207
  "~",
208
+ // import from '~/components/...'
206
209
  relativePath(dirname(filePath), appDirectory) || "."
207
210
  );
208
211
  const resolvedMatchPath = resolvePath(dirname(filePath), match);
@@ -1,8 +1,7 @@
1
1
  import { describe, beforeEach, vi, it, expect } from 'vitest';
2
- import { temporaryDirectoryTask } from 'tempy';
3
2
  import { getResolvedRoutes, generateRoutes, generateProjectFile } from './generate.js';
4
3
  import { renderConfirmationPrompt } from '@shopify/cli-kit/node/ui';
5
- import { fileExists, readFile, mkdir, writeFile } from '@shopify/cli-kit/node/fs';
4
+ import { inTemporaryDirectory, fileExists, readFile, mkdir, writeFile } from '@shopify/cli-kit/node/fs';
6
5
  import { joinPath, dirname } from '@shopify/cli-kit/node/path';
7
6
  import { getTemplateAppFile } from '../../../lib/build.js';
8
7
  import { getRemixConfig } from '../../remix-config.js';
@@ -21,7 +20,7 @@ describe("generate/route", () => {
21
20
  expect(
22
21
  resolvedRouteFiles.find((item) => /account_?\.login/.test(item))
23
22
  ).toBeTruthy();
24
- await temporaryDirectoryTask(async (tmpDir) => {
23
+ await inTemporaryDirectory(async (tmpDir) => {
25
24
  const directories = await createHydrogenFixture(tmpDir, {
26
25
  files: [
27
26
  ["jsconfig.json", JSON.stringify({ compilerOptions: { test: "js" } })],
@@ -51,7 +50,7 @@ describe("generate/route", () => {
51
50
  });
52
51
  });
53
52
  it("figures out the locale if a home route already exists", async () => {
54
- await temporaryDirectoryTask(async (tmpDir) => {
53
+ await inTemporaryDirectory(async (tmpDir) => {
55
54
  const route = "routes/pages.$handle";
56
55
  const directories = await createHydrogenFixture(tmpDir, {
57
56
  files: [
@@ -89,7 +88,7 @@ describe("generate/route", () => {
89
88
  });
90
89
  describe("generateProjectFile", () => {
91
90
  it("generates a route file for Remix v1", async () => {
92
- await temporaryDirectoryTask(async (tmpDir) => {
91
+ await inTemporaryDirectory(async (tmpDir) => {
93
92
  const route = "routes/pages.$handle";
94
93
  const directories = await createHydrogenFixture(tmpDir, {
95
94
  files: [],
@@ -107,7 +106,7 @@ describe("generate/route", () => {
107
106
  });
108
107
  });
109
108
  it("generates a route file for Remix v2", async () => {
110
- await temporaryDirectoryTask(async (tmpDir) => {
109
+ await inTemporaryDirectory(async (tmpDir) => {
111
110
  const route = "routes/custom.path.$handle._index";
112
111
  const directories = await createHydrogenFixture(tmpDir, {
113
112
  files: [],
@@ -123,7 +122,7 @@ describe("generate/route", () => {
123
122
  });
124
123
  });
125
124
  it("generates route files with locale prefix", async () => {
126
- await temporaryDirectoryTask(async (tmpDir) => {
125
+ await inTemporaryDirectory(async (tmpDir) => {
127
126
  const routeCode = `const str = 'hello world'`;
128
127
  const directories = await createHydrogenFixture(tmpDir, {
129
128
  files: [],
@@ -174,7 +173,7 @@ describe("generate/route", () => {
174
173
  });
175
174
  });
176
175
  it("produces a typescript file when typescript argument is true", async () => {
177
- await temporaryDirectoryTask(async (tmpDir) => {
176
+ await inTemporaryDirectory(async (tmpDir) => {
178
177
  const route = "routes/pages.$handle";
179
178
  const directories = await createHydrogenFixture(tmpDir, {
180
179
  files: [],
@@ -191,7 +190,7 @@ describe("generate/route", () => {
191
190
  });
192
191
  });
193
192
  it("prompts the user if there the file already exists", async () => {
194
- await temporaryDirectoryTask(async (tmpDir) => {
193
+ await inTemporaryDirectory(async (tmpDir) => {
195
194
  vi.mocked(renderConfirmationPrompt).mockImplementationOnce(
196
195
  async () => true
197
196
  );
@@ -212,7 +211,7 @@ describe("generate/route", () => {
212
211
  });
213
212
  });
214
213
  it("does not prompt the user if the force property is true", async () => {
215
- await temporaryDirectoryTask(async (tmpDir) => {
214
+ await inTemporaryDirectory(async (tmpDir) => {
216
215
  vi.mocked(renderConfirmationPrompt).mockImplementationOnce(
217
216
  async () => true
218
217
  );
@@ -229,7 +228,7 @@ describe("generate/route", () => {
229
228
  });
230
229
  });
231
230
  it("generates all the route dependencies", async () => {
232
- await temporaryDirectoryTask(async (tmpDir) => {
231
+ await inTemporaryDirectory(async (tmpDir) => {
233
232
  const templates = [
234
233
  [
235
234
  "routes/pages.$pageHandle.tsx",
@@ -19,6 +19,7 @@ async function getLatestReleaseDownloadUrl(signal) {
19
19
  }
20
20
  const release = await response.json();
21
21
  return {
22
+ // @shopify/package-name@version => package-name@version
22
23
  version: release.name.split("/").pop() ?? release.name,
23
24
  url: release.tarball_url
24
25
  };
@@ -32,8 +33,11 @@ async function downloadTarball(url, storageDir, signal) {
32
33
  );
33
34
  }
34
35
  await pipeline(
36
+ // Download
35
37
  response.body,
38
+ // Decompress
36
39
  gunzipMaybe(),
40
+ // Unpack
37
41
  extract(storageDir, {
38
42
  strip: 1,
39
43
  filter: (name) => {
@@ -24,6 +24,7 @@ function transpileFile(code, config = DEFAULT_TS_CONFIG) {
24
24
  reportDiagnostics: false,
25
25
  compilerOptions: {
26
26
  ...config,
27
+ // '1' tells TypeScript to preserve the JSX syntax.
27
28
  jsx: 1,
28
29
  removeComments: false
29
30
  }
@@ -12,7 +12,10 @@ async function addVirtualRoutes(config) {
12
12
  const relativeFilePath = path.relative(virtualRoutesPath, absoluteFilePath);
13
13
  const routePath = relativeFilePath.replace(/\.[jt]sx?$/, "").replaceAll("\\", "/");
14
14
  const isIndex = /(^|\/)index$/.test(routePath);
15
- const normalizedVirtualRoutePath = isIndex ? routePath.slice(0, -"index".length).replace(/\/$/, "") || void 0 : routePath.replace(/\$/g, ":").replace(/[\[\]]/g, "");
15
+ const normalizedVirtualRoutePath = isIndex ? routePath.slice(0, -"index".length).replace(/\/$/, "") || void 0 : (
16
+ // TODO: support v2 flat routes?
17
+ routePath.replace(/\$/g, ":").replace(/[\[\]]/g, "")
18
+ );
16
19
  const hasUserRoute = userRouteList.some(
17
20
  (r) => r.parentId === "root" && r.path === normalizedVirtualRoutePath
18
21
  );
@@ -1,7 +1,29 @@
1
- const HydrogenLogoBaseBW = (props) => <svg width={81} height={82} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
2
- <path d="M39.955 81.28 2.138 61.19l12.933-6.818 14.562 7.733 12.218-6.441L27.29 47.93l12.933-6.833L78.04 61.189l-12.934 6.817L51.35 60.7l-12.236 6.457 13.774 7.308-12.933 6.817Z" fill="#000" />
3
- <path fillRule="evenodd" clipRule="evenodd" d="m40.225 0 39.953 21.227-15.073 7.945-13.756-7.308-10.096 5.328 13.775 7.309-15.075 7.945L0 21.22l15.073-7.945 14.562 7.732 10.078-5.313-14.56-7.731L40.225 0ZM29.426 7.967l14.564 7.734L29.63 23.27 15.07 15.537l-10.794 5.69 35.68 18.956 10.793-5.688-13.773-7.307L51.352 19.6l13.757 7.308 10.794-5.69-35.68-18.956-10.797 5.704Z" fill="#000" />
4
- </svg>;
1
+ const HydrogenLogoBaseBW = (props) => /* @__PURE__ */ React.createElement(
2
+ "svg",
3
+ {
4
+ width: 81,
5
+ height: 82,
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg",
8
+ ...props
9
+ },
10
+ /* @__PURE__ */ React.createElement(
11
+ "path",
12
+ {
13
+ d: "M39.955 81.28 2.138 61.19l12.933-6.818 14.562 7.733 12.218-6.441L27.29 47.93l12.933-6.833L78.04 61.189l-12.934 6.817L51.35 60.7l-12.236 6.457 13.774 7.308-12.933 6.817Z",
14
+ fill: "#000"
15
+ }
16
+ ),
17
+ /* @__PURE__ */ React.createElement(
18
+ "path",
19
+ {
20
+ fillRule: "evenodd",
21
+ clipRule: "evenodd",
22
+ d: "m40.225 0 39.953 21.227-15.073 7.945-13.756-7.308-10.096 5.328 13.775 7.309-15.075 7.945L0 21.22l15.073-7.945 14.562 7.732 10.078-5.313-14.56-7.731L40.225 0ZM29.426 7.967l14.564 7.734L29.63 23.27 15.07 15.537l-10.794 5.69 35.68 18.956 10.793-5.688-13.773-7.307L51.352 19.6l13.757 7.308 10.794-5.69-35.68-18.956-10.797 5.704Z",
23
+ fill: "#000"
24
+ }
25
+ )
26
+ );
5
27
  export {
6
28
  HydrogenLogoBaseBW
7
29
  };
@@ -1,13 +1,43 @@
1
- const HydrogenLogoBaseColor = (props) => <svg width={76} height={81} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
2
- <path d="M37.817 80.149 0 60.057l12.934-6.817 14.561 7.733 12.218-6.441-14.561-7.733 12.933-6.833 37.818 20.091-12.934 6.817-13.757-7.307-12.236 6.457 13.775 7.308-12.934 6.817Z" fill="#000" />
3
- <path d="M37.818 40.183 0 20.092l12.934-6.818 14.562 7.733 12.218-6.441-14.562-7.733L38.086 0l37.817 20.091-12.934 6.817-13.756-7.307-12.236 6.457 13.774 7.308-12.933 6.817Z" fill="url(#a)" />
4
- <defs><linearGradient id="a" x1={74.48} y1={21.654} x2={18.735} y2={51.694} gradientUnits="userSpaceOnUse">
5
- <stop offset={2e-3} stopColor="#430470" />
6
- <stop offset={0.385} stopColor="#8E01F0" />
7
- <stop offset={0.635} stopColor="#354CF6" />
8
- <stop offset={1} stopColor="#01FFFF" />
9
- </linearGradient></defs>
10
- </svg>;
1
+ import * as React from "react";
2
+ const HydrogenLogoBaseColor = (props) => /* @__PURE__ */ React.createElement(
3
+ "svg",
4
+ {
5
+ width: 76,
6
+ height: 81,
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg",
9
+ ...props
10
+ },
11
+ /* @__PURE__ */ React.createElement(
12
+ "path",
13
+ {
14
+ d: "M37.817 80.149 0 60.057l12.934-6.817 14.561 7.733 12.218-6.441-14.561-7.733 12.933-6.833 37.818 20.091-12.934 6.817-13.757-7.307-12.236 6.457 13.775 7.308-12.934 6.817Z",
15
+ fill: "#000"
16
+ }
17
+ ),
18
+ /* @__PURE__ */ React.createElement(
19
+ "path",
20
+ {
21
+ d: "M37.818 40.183 0 20.092l12.934-6.818 14.562 7.733 12.218-6.441-14.562-7.733L38.086 0l37.817 20.091-12.934 6.817-13.756-7.307-12.236 6.457 13.774 7.308-12.933 6.817Z",
22
+ fill: "url(#a)"
23
+ }
24
+ ),
25
+ /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement(
26
+ "linearGradient",
27
+ {
28
+ id: "a",
29
+ x1: 74.48,
30
+ y1: 21.654,
31
+ x2: 18.735,
32
+ y2: 51.694,
33
+ gradientUnits: "userSpaceOnUse"
34
+ },
35
+ /* @__PURE__ */ React.createElement("stop", { offset: 2e-3, stopColor: "#430470" }),
36
+ /* @__PURE__ */ React.createElement("stop", { offset: 0.385, stopColor: "#8E01F0" }),
37
+ /* @__PURE__ */ React.createElement("stop", { offset: 0.635, stopColor: "#354CF6" }),
38
+ /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "#01FFFF" })
39
+ ))
40
+ );
11
41
  export {
12
42
  HydrogenLogoBaseColor
13
43
  };
@@ -1,47 +1,289 @@
1
- const IconBanner = (props) => <svg width={32} height={36} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
2
- <path fill="#000" d="M0 9.726h1.455v1.455H0z" />
3
- <path fill="#E172AC" d="M1.454 9.726h1.455v1.455H1.454zM13.091 3.907h1.455v1.455h-1.455zM24.727 9.726h1.455v1.455h-1.455zM24.727 24.271h1.455v1.455h-1.455zM13.091 30.09h1.455v1.455h-1.455zM1.454 24.271h1.455v1.455H1.454z" />
4
- <path fill="#AC217D" d="M5.818 9.726h1.455v1.455H5.818zM17.454 3.907h1.455v1.455h-1.455zM29.091 9.726h1.455v1.455h-1.455zM21.818 16.998h1.455v1.455h-1.455zM21.818 18.454h1.455v1.455h-1.455zM20.363 24.271h1.455v1.455h-1.455zM20.363 11.181h1.455v1.455h-1.455zM29.091 24.271h1.455v1.455h-1.455zM17.455 30.09h1.455v1.455h-1.455zM5.818 24.271h1.455v1.455H5.818z" />
5
- <path fill="#000" d="M7.273 9.726h1.455v1.455H7.273zM1.454 8.271h1.455v1.455H1.454zM5.818 8.271h1.455v1.455H5.818zM2.909 6.817h1.455v1.455H2.909z" />
6
- <path fill="#D43694" d="M2.909 9.726h1.455v1.455H2.909zM14.546 3.907h1.455v1.455h-1.455zM26.182 9.726h1.455v1.455h-1.455zM18.909 11.181h1.455v1.455h-1.455z" />
7
- <path fill="#D43694" d="M20.363 12.635h1.455v1.455h-1.455zM20.363 14.09h1.455v1.455h-1.455z" />
8
- <path fill="#D43694" d="M20.363 15.544h1.455v1.455h-1.455zM11.636 11.181h1.455v1.455h-1.455z" />
9
- <path fill="#D43694" d="M10.182 12.635h1.455v1.455h-1.455zM10.182 14.09h1.455v1.455h-1.455z" />
10
- <path fill="#D43694" d="M10.182 15.544h1.455v1.455h-1.455zM10.182 19.908h1.455v1.455h-1.455z" />
11
- <path fill="#D43694" d="M10.182 21.362h1.455v1.455h-1.455zM10.182 22.817h1.455v1.455h-1.455z" />
12
- <path fill="#D43694" d="M11.636 24.271h1.455v1.455h-1.455zM20.363 19.908h1.455v1.455h-1.455z" />
13
- <path fill="#D43694" d="M20.363 21.362h1.455v1.455h-1.455zM20.363 22.817h1.455v1.455h-1.455z" />
14
- <path fill="#D43694" d="M18.909 24.271h1.455v1.455h-1.455zM26.182 24.271h1.455v1.455h-1.455zM14.545 30.09H16v1.455h-1.455zM2.909 24.271h1.455v1.455H2.909zM2.909 11.181h1.455v1.455H2.909zM14.546 5.361h1.455v1.455h-1.455zM26.182 11.181h1.455v1.455h-1.455zM26.182 25.726h1.455v1.455h-1.455z" />
15
- <path fill="#D43694" d="M14.546 31.544h1.455v1.455h-1.455zM2.909 25.726h1.455v1.455H2.909z" />
16
- <path fill="#000" d="M4.364 6.817h1.455v1.455H4.364z" />
17
- <path fill="#D43694" d="M4.364 9.726h1.455v1.455H4.364zM16 3.907h1.455v1.455H16zM27.637 9.726h1.455v1.455h-1.455zM27.637 24.271h1.455v1.455h-1.455zM16 30.09h1.455v1.455H16zM4.364 24.271h1.455v1.455H4.364z" />
18
- <path fill="#D43694" d="M4.364 11.181h1.455v1.455H4.364zM16 5.361h1.455v1.455H16zM27.637 11.181h1.455v1.455h-1.455zM27.637 25.726h1.455v1.455h-1.455zM16 31.544h1.455v1.455H16zM4.364 25.726h1.455v1.455H4.364z" />
19
- <path fill="#E172AC" d="M2.909 8.271h1.455v1.455H2.909zM14.545 2.453H16v1.455h-1.455zM26.182 8.271h1.455v1.455h-1.455zM26.182 22.817h1.455v1.455h-1.455zM14.546 28.635h1.455v1.455h-1.455zM2.909 22.817h1.455v1.455H2.909z" />
20
- <path fill="#AC217D" d="M2.909 12.635h1.455v1.455H2.909zM14.545 6.817H16v1.455h-1.455zM26.182 12.635h1.455v1.455h-1.455zM26.182 27.181h1.455v1.455h-1.455zM14.546 32.998h1.455v1.455h-1.455zM2.909 27.181h1.455v1.455H2.909z" />
21
- <path fill="#E172AC" d="M4.364 8.271h1.455v1.455H4.364zM16 2.453h1.455v1.455H16zM27.637 8.271h1.455v1.455h-1.455zM27.637 22.817h1.455v1.455h-1.455zM16 28.635h1.455v1.455H16zM4.364 22.817h1.455v1.455H4.364z" />
22
- <path fill="#AC217D" d="M4.364 12.635h1.455v1.455H4.364zM16 6.817h1.455v1.455H16zM27.637 12.635h1.455v1.455h-1.455zM27.637 27.181h1.455v1.455h-1.455zM16 32.998h1.455v1.455H16zM4.364 27.181h1.455v1.455H4.364z" />
23
- <path fill="#000" d="M2.909 14.09h1.455v1.455H2.909zM4.364 14.09h1.455v1.455H4.364zM0 11.181h1.455v1.455H0z" />
24
- <path fill="#000" d="M1.454 12.635h1.455v1.455H1.454z" />
25
- <path fill="#E172AC" d="M1.454 11.181h1.455v1.455H1.454zM8.727 16.998h1.455v1.455H8.727zM10.182 11.181h1.455v1.455h-1.455zM10.182 24.271h1.455v1.455h-1.455zM8.727 18.454h1.455v1.455H8.727zM13.091 5.361h1.455v1.455h-1.455zM24.727 11.181h1.455v1.455h-1.455zM24.727 25.726h1.455v1.455h-1.455zM13.091 31.544h1.455v1.455h-1.455zM1.454 25.726h1.455v1.455H1.454z" />
26
- <path fill="#AC217D" d="M5.818 11.181h1.455v1.455H5.818zM17.454 5.361h1.455v1.455h-1.455zM29.091 11.181h1.455v1.455h-1.455zM29.091 25.726h1.455v1.455h-1.455zM17.454 31.544h1.455v1.455h-1.455zM5.818 25.726h1.455v1.455H5.818z" />
27
- <path fill="#000" d="M5.818 12.635h1.455v1.455H5.818zM7.273 11.181h1.455v1.455H7.273zM0 24.271h1.455v1.455H0zM23.273 9.726h1.455v1.455h-1.455zM7.273 24.271h1.455v1.455H7.273zM30.546 9.726h1.455v1.455h-1.455zM1.455 22.817H2.91v1.455H1.455zM24.727 8.271h1.455v1.455h-1.455zM5.818 22.817h1.455v1.455H5.818zM29.091 8.271h1.455v1.455h-1.455zM2.909 21.362h1.455v1.455H2.909z" />
28
- <path fill="#000" d="M26.182 6.817h1.455v1.455h-1.455zM4.364 21.362h1.455v1.455H4.364zM27.637 6.817h1.455v1.455h-1.455zM2.909 28.635h1.455v1.455H2.909zM26.182 14.09h1.455v1.455h-1.455zM4.364 28.635h1.455v1.455H4.364zM27.637 14.09h1.455v1.455h-1.455zM1.454 27.181h1.455v1.455H1.454zM24.727 12.635h1.455v1.455h-1.455zM0 25.726h1.455v1.455H0z" />
29
- <path fill="#000" d="M23.273 11.181h1.455v1.455h-1.455zM5.818 27.181h1.455v1.455H5.818zM29.091 12.635h1.455v1.455h-1.455zM7.273 25.726h1.455v1.455H7.273zM30.546 11.181h1.455v1.455h-1.455zM23.273 24.271h1.455v1.455h-1.455zM11.636 30.09h1.455v1.455h-1.455zM11.636 3.907h1.455v1.455h-1.455zM18.909 30.09h1.455v1.455h-1.455zM30.546 24.271h1.455v1.455h-1.455zM13.091 28.635h1.455v1.455h-1.455zM18.909 3.907h1.455v1.455h-1.455zM17.454 28.635h1.455v1.455h-1.455z" />
30
- <path fill="#000" d="M24.727 22.817h1.455v1.455h-1.455zM14.546 27.181h1.455v1.455h-1.455zM13.091 2.453h1.455v1.455h-1.455z" />
31
- <path fill="#000" d="M16 27.181h1.455v1.455H16zM29.091 22.817h1.455v1.455h-1.455zM14.545 34.454H16v1.455h-1.455zM17.455 2.453h1.455v1.455h-1.455zM16 34.454h1.455v1.455H16zM26.182 21.362h1.455v1.455h-1.455zM13.091 32.998h1.455v1.455h-1.455zM14.546.998h1.455v1.455h-1.455zM11.636 31.544h1.455v1.455h-1.455zM27.637 21.362h1.455v1.455h-1.455zM17.454 32.998h1.455v1.455h-1.455z" />
32
- <path fill="#000" d="M16 .998h1.455v1.455H16zM18.909 31.544h1.455v1.455h-1.455zM26.182 28.635h1.455v1.455h-1.455zM14.546 8.271h1.455v1.455h-1.455zM27.637 28.635h1.455v1.455h-1.455z" />
33
- <path fill="#000" d="M16 8.271h1.455v1.455H16zM24.727 27.181h1.455v1.455h-1.455zM13.091 6.817h1.455v1.455h-1.455zM23.273 25.726h1.455v1.455h-1.455zM11.636 5.361h1.455v1.455h-1.455zM29.091 27.181h1.455v1.455h-1.455zM17.455 6.817h1.455v1.455h-1.455zM30.546 25.726h1.455v1.455h-1.455zM18.909 5.361h1.455v1.455h-1.455zM8.727 11.181h1.455v1.455H8.727z" />
34
- <path fill="#000" d="M8.727 12.635h1.455v1.455H8.727zM8.727 19.908h1.455v1.455H8.727zM21.818 19.908h1.455v1.455h-1.455zM21.818 11.181h1.455v1.455h-1.455z" />
35
- <path fill="#000" d="M8.727 21.362h1.455v1.455H8.727zM21.818 21.362h1.455v1.455h-1.455zM8.727 14.09h1.455v1.455H8.727zM21.818 12.635h1.455v1.455h-1.455zM8.727 22.817h1.455v1.455H8.727z" />
36
- <path fill="#000" d="M8.727 24.271h1.455v1.455H8.727zM7.273 16.998h1.455v1.455H7.273zM21.818 22.817h1.455v1.455h-1.455zM23.273 16.998h1.455v1.455h-1.455z" />
37
- <path fill="#000" d="M21.818 24.271h1.455v1.455h-1.455zM8.727 15.544h1.455v1.455H8.727zM21.818 14.09h1.455v1.455h-1.455zM7.273 18.454h1.455v1.455H7.273z" />
38
- <path fill="#000" d="M21.818 15.544h1.455v1.455h-1.455zM23.273 18.454h1.455v1.455h-1.455zM11.636 12.635h1.455v1.455h-1.455zM11.636 19.908h1.455v1.455h-1.455zM18.909 19.908h1.455v1.455h-1.455zM18.909 12.635h1.455v1.455h-1.455zM11.636 14.09h1.455v1.455h-1.455z" />
39
- <path fill="#000" d="M11.636 21.362h1.455v1.455h-1.455zM18.909 21.362h1.455v1.455h-1.455zM18.909 14.09h1.455v1.455h-1.455zM10.182 16.998h1.455v1.455h-1.455zM20.363 16.998h1.455v1.455h-1.455z" />
40
- <path fill="#000" d="M11.636 15.544h1.455v1.455h-1.455zM11.636 22.817h1.455v1.455h-1.455zM18.909 22.817h1.455v1.455h-1.455zM18.909 15.544h1.455v1.455h-1.455zM13.091 24.271h1.455v1.455h-1.455zM17.454 24.271h1.455v1.455h-1.455zM13.091 25.726h1.455v1.455h-1.455zM17.454 25.726h1.455v1.455h-1.455zM11.636 25.726h1.455v1.455h-1.455zM20.363 25.726h1.455v1.455h-1.455z" />
41
- <path fill="#000" d="M10.182 25.726h1.455v1.455h-1.455zM18.909 25.726h1.455v1.455h-1.455zM10.182 18.454h1.455v1.455h-1.455zM20.363 18.454h1.455v1.455h-1.455zM10.182 9.726h1.455v1.455h-1.455zM18.909 9.726h1.455v1.455h-1.455z" />
42
- <path fill="#000" d="M11.636 9.726h1.455v1.455h-1.455zM20.363 9.726h1.455v1.455h-1.455zM13.091 9.726h1.455v1.455h-1.455zM17.454 9.726h1.455v1.455h-1.455z" />
43
- <path fill="#000" d="M13.091 11.181h1.455v1.455h-1.455zM17.454 11.181h1.455v1.455h-1.455z" />
44
- </svg>;
1
+ const IconBanner = (props) => /* @__PURE__ */ React.createElement(
2
+ "svg",
3
+ {
4
+ width: 32,
5
+ height: 36,
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg",
8
+ ...props
9
+ },
10
+ /* @__PURE__ */ React.createElement("path", { fill: "#000", d: "M0 9.726h1.455v1.455H0z" }),
11
+ /* @__PURE__ */ React.createElement(
12
+ "path",
13
+ {
14
+ fill: "#E172AC",
15
+ d: "M1.454 9.726h1.455v1.455H1.454zM13.091 3.907h1.455v1.455h-1.455zM24.727 9.726h1.455v1.455h-1.455zM24.727 24.271h1.455v1.455h-1.455zM13.091 30.09h1.455v1.455h-1.455zM1.454 24.271h1.455v1.455H1.454z"
16
+ }
17
+ ),
18
+ /* @__PURE__ */ React.createElement(
19
+ "path",
20
+ {
21
+ fill: "#AC217D",
22
+ d: "M5.818 9.726h1.455v1.455H5.818zM17.454 3.907h1.455v1.455h-1.455zM29.091 9.726h1.455v1.455h-1.455zM21.818 16.998h1.455v1.455h-1.455zM21.818 18.454h1.455v1.455h-1.455zM20.363 24.271h1.455v1.455h-1.455zM20.363 11.181h1.455v1.455h-1.455zM29.091 24.271h1.455v1.455h-1.455zM17.455 30.09h1.455v1.455h-1.455zM5.818 24.271h1.455v1.455H5.818z"
23
+ }
24
+ ),
25
+ /* @__PURE__ */ React.createElement(
26
+ "path",
27
+ {
28
+ fill: "#000",
29
+ d: "M7.273 9.726h1.455v1.455H7.273zM1.454 8.271h1.455v1.455H1.454zM5.818 8.271h1.455v1.455H5.818zM2.909 6.817h1.455v1.455H2.909z"
30
+ }
31
+ ),
32
+ /* @__PURE__ */ React.createElement(
33
+ "path",
34
+ {
35
+ fill: "#D43694",
36
+ d: "M2.909 9.726h1.455v1.455H2.909zM14.546 3.907h1.455v1.455h-1.455zM26.182 9.726h1.455v1.455h-1.455zM18.909 11.181h1.455v1.455h-1.455z"
37
+ }
38
+ ),
39
+ /* @__PURE__ */ React.createElement(
40
+ "path",
41
+ {
42
+ fill: "#D43694",
43
+ d: "M20.363 12.635h1.455v1.455h-1.455zM20.363 14.09h1.455v1.455h-1.455z"
44
+ }
45
+ ),
46
+ /* @__PURE__ */ React.createElement(
47
+ "path",
48
+ {
49
+ fill: "#D43694",
50
+ d: "M20.363 15.544h1.455v1.455h-1.455zM11.636 11.181h1.455v1.455h-1.455z"
51
+ }
52
+ ),
53
+ /* @__PURE__ */ React.createElement(
54
+ "path",
55
+ {
56
+ fill: "#D43694",
57
+ d: "M10.182 12.635h1.455v1.455h-1.455zM10.182 14.09h1.455v1.455h-1.455z"
58
+ }
59
+ ),
60
+ /* @__PURE__ */ React.createElement(
61
+ "path",
62
+ {
63
+ fill: "#D43694",
64
+ d: "M10.182 15.544h1.455v1.455h-1.455zM10.182 19.908h1.455v1.455h-1.455z"
65
+ }
66
+ ),
67
+ /* @__PURE__ */ React.createElement(
68
+ "path",
69
+ {
70
+ fill: "#D43694",
71
+ d: "M10.182 21.362h1.455v1.455h-1.455zM10.182 22.817h1.455v1.455h-1.455z"
72
+ }
73
+ ),
74
+ /* @__PURE__ */ React.createElement(
75
+ "path",
76
+ {
77
+ fill: "#D43694",
78
+ d: "M11.636 24.271h1.455v1.455h-1.455zM20.363 19.908h1.455v1.455h-1.455z"
79
+ }
80
+ ),
81
+ /* @__PURE__ */ React.createElement(
82
+ "path",
83
+ {
84
+ fill: "#D43694",
85
+ d: "M20.363 21.362h1.455v1.455h-1.455zM20.363 22.817h1.455v1.455h-1.455z"
86
+ }
87
+ ),
88
+ /* @__PURE__ */ React.createElement(
89
+ "path",
90
+ {
91
+ fill: "#D43694",
92
+ d: "M18.909 24.271h1.455v1.455h-1.455zM26.182 24.271h1.455v1.455h-1.455zM14.545 30.09H16v1.455h-1.455zM2.909 24.271h1.455v1.455H2.909zM2.909 11.181h1.455v1.455H2.909zM14.546 5.361h1.455v1.455h-1.455zM26.182 11.181h1.455v1.455h-1.455zM26.182 25.726h1.455v1.455h-1.455z"
93
+ }
94
+ ),
95
+ /* @__PURE__ */ React.createElement(
96
+ "path",
97
+ {
98
+ fill: "#D43694",
99
+ d: "M14.546 31.544h1.455v1.455h-1.455zM2.909 25.726h1.455v1.455H2.909z"
100
+ }
101
+ ),
102
+ /* @__PURE__ */ React.createElement("path", { fill: "#000", d: "M4.364 6.817h1.455v1.455H4.364z" }),
103
+ /* @__PURE__ */ React.createElement(
104
+ "path",
105
+ {
106
+ fill: "#D43694",
107
+ d: "M4.364 9.726h1.455v1.455H4.364zM16 3.907h1.455v1.455H16zM27.637 9.726h1.455v1.455h-1.455zM27.637 24.271h1.455v1.455h-1.455zM16 30.09h1.455v1.455H16zM4.364 24.271h1.455v1.455H4.364z"
108
+ }
109
+ ),
110
+ /* @__PURE__ */ React.createElement(
111
+ "path",
112
+ {
113
+ fill: "#D43694",
114
+ d: "M4.364 11.181h1.455v1.455H4.364zM16 5.361h1.455v1.455H16zM27.637 11.181h1.455v1.455h-1.455zM27.637 25.726h1.455v1.455h-1.455zM16 31.544h1.455v1.455H16zM4.364 25.726h1.455v1.455H4.364z"
115
+ }
116
+ ),
117
+ /* @__PURE__ */ React.createElement(
118
+ "path",
119
+ {
120
+ fill: "#E172AC",
121
+ d: "M2.909 8.271h1.455v1.455H2.909zM14.545 2.453H16v1.455h-1.455zM26.182 8.271h1.455v1.455h-1.455zM26.182 22.817h1.455v1.455h-1.455zM14.546 28.635h1.455v1.455h-1.455zM2.909 22.817h1.455v1.455H2.909z"
122
+ }
123
+ ),
124
+ /* @__PURE__ */ React.createElement(
125
+ "path",
126
+ {
127
+ fill: "#AC217D",
128
+ d: "M2.909 12.635h1.455v1.455H2.909zM14.545 6.817H16v1.455h-1.455zM26.182 12.635h1.455v1.455h-1.455zM26.182 27.181h1.455v1.455h-1.455zM14.546 32.998h1.455v1.455h-1.455zM2.909 27.181h1.455v1.455H2.909z"
129
+ }
130
+ ),
131
+ /* @__PURE__ */ React.createElement(
132
+ "path",
133
+ {
134
+ fill: "#E172AC",
135
+ d: "M4.364 8.271h1.455v1.455H4.364zM16 2.453h1.455v1.455H16zM27.637 8.271h1.455v1.455h-1.455zM27.637 22.817h1.455v1.455h-1.455zM16 28.635h1.455v1.455H16zM4.364 22.817h1.455v1.455H4.364z"
136
+ }
137
+ ),
138
+ /* @__PURE__ */ React.createElement(
139
+ "path",
140
+ {
141
+ fill: "#AC217D",
142
+ d: "M4.364 12.635h1.455v1.455H4.364zM16 6.817h1.455v1.455H16zM27.637 12.635h1.455v1.455h-1.455zM27.637 27.181h1.455v1.455h-1.455zM16 32.998h1.455v1.455H16zM4.364 27.181h1.455v1.455H4.364z"
143
+ }
144
+ ),
145
+ /* @__PURE__ */ React.createElement(
146
+ "path",
147
+ {
148
+ fill: "#000",
149
+ d: "M2.909 14.09h1.455v1.455H2.909zM4.364 14.09h1.455v1.455H4.364zM0 11.181h1.455v1.455H0z"
150
+ }
151
+ ),
152
+ /* @__PURE__ */ React.createElement("path", { fill: "#000", d: "M1.454 12.635h1.455v1.455H1.454z" }),
153
+ /* @__PURE__ */ React.createElement(
154
+ "path",
155
+ {
156
+ fill: "#E172AC",
157
+ d: "M1.454 11.181h1.455v1.455H1.454zM8.727 16.998h1.455v1.455H8.727zM10.182 11.181h1.455v1.455h-1.455zM10.182 24.271h1.455v1.455h-1.455zM8.727 18.454h1.455v1.455H8.727zM13.091 5.361h1.455v1.455h-1.455zM24.727 11.181h1.455v1.455h-1.455zM24.727 25.726h1.455v1.455h-1.455zM13.091 31.544h1.455v1.455h-1.455zM1.454 25.726h1.455v1.455H1.454z"
158
+ }
159
+ ),
160
+ /* @__PURE__ */ React.createElement(
161
+ "path",
162
+ {
163
+ fill: "#AC217D",
164
+ d: "M5.818 11.181h1.455v1.455H5.818zM17.454 5.361h1.455v1.455h-1.455zM29.091 11.181h1.455v1.455h-1.455zM29.091 25.726h1.455v1.455h-1.455zM17.454 31.544h1.455v1.455h-1.455zM5.818 25.726h1.455v1.455H5.818z"
165
+ }
166
+ ),
167
+ /* @__PURE__ */ React.createElement(
168
+ "path",
169
+ {
170
+ fill: "#000",
171
+ d: "M5.818 12.635h1.455v1.455H5.818zM7.273 11.181h1.455v1.455H7.273zM0 24.271h1.455v1.455H0zM23.273 9.726h1.455v1.455h-1.455zM7.273 24.271h1.455v1.455H7.273zM30.546 9.726h1.455v1.455h-1.455zM1.455 22.817H2.91v1.455H1.455zM24.727 8.271h1.455v1.455h-1.455zM5.818 22.817h1.455v1.455H5.818zM29.091 8.271h1.455v1.455h-1.455zM2.909 21.362h1.455v1.455H2.909z"
172
+ }
173
+ ),
174
+ /* @__PURE__ */ React.createElement(
175
+ "path",
176
+ {
177
+ fill: "#000",
178
+ d: "M26.182 6.817h1.455v1.455h-1.455zM4.364 21.362h1.455v1.455H4.364zM27.637 6.817h1.455v1.455h-1.455zM2.909 28.635h1.455v1.455H2.909zM26.182 14.09h1.455v1.455h-1.455zM4.364 28.635h1.455v1.455H4.364zM27.637 14.09h1.455v1.455h-1.455zM1.454 27.181h1.455v1.455H1.454zM24.727 12.635h1.455v1.455h-1.455zM0 25.726h1.455v1.455H0z"
179
+ }
180
+ ),
181
+ /* @__PURE__ */ React.createElement(
182
+ "path",
183
+ {
184
+ fill: "#000",
185
+ d: "M23.273 11.181h1.455v1.455h-1.455zM5.818 27.181h1.455v1.455H5.818zM29.091 12.635h1.455v1.455h-1.455zM7.273 25.726h1.455v1.455H7.273zM30.546 11.181h1.455v1.455h-1.455zM23.273 24.271h1.455v1.455h-1.455zM11.636 30.09h1.455v1.455h-1.455zM11.636 3.907h1.455v1.455h-1.455zM18.909 30.09h1.455v1.455h-1.455zM30.546 24.271h1.455v1.455h-1.455zM13.091 28.635h1.455v1.455h-1.455zM18.909 3.907h1.455v1.455h-1.455zM17.454 28.635h1.455v1.455h-1.455z"
186
+ }
187
+ ),
188
+ /* @__PURE__ */ React.createElement(
189
+ "path",
190
+ {
191
+ fill: "#000",
192
+ d: "M24.727 22.817h1.455v1.455h-1.455zM14.546 27.181h1.455v1.455h-1.455zM13.091 2.453h1.455v1.455h-1.455z"
193
+ }
194
+ ),
195
+ /* @__PURE__ */ React.createElement(
196
+ "path",
197
+ {
198
+ fill: "#000",
199
+ d: "M16 27.181h1.455v1.455H16zM29.091 22.817h1.455v1.455h-1.455zM14.545 34.454H16v1.455h-1.455zM17.455 2.453h1.455v1.455h-1.455zM16 34.454h1.455v1.455H16zM26.182 21.362h1.455v1.455h-1.455zM13.091 32.998h1.455v1.455h-1.455zM14.546.998h1.455v1.455h-1.455zM11.636 31.544h1.455v1.455h-1.455zM27.637 21.362h1.455v1.455h-1.455zM17.454 32.998h1.455v1.455h-1.455z"
200
+ }
201
+ ),
202
+ /* @__PURE__ */ React.createElement(
203
+ "path",
204
+ {
205
+ fill: "#000",
206
+ d: "M16 .998h1.455v1.455H16zM18.909 31.544h1.455v1.455h-1.455zM26.182 28.635h1.455v1.455h-1.455zM14.546 8.271h1.455v1.455h-1.455zM27.637 28.635h1.455v1.455h-1.455z"
207
+ }
208
+ ),
209
+ /* @__PURE__ */ React.createElement(
210
+ "path",
211
+ {
212
+ fill: "#000",
213
+ d: "M16 8.271h1.455v1.455H16zM24.727 27.181h1.455v1.455h-1.455zM13.091 6.817h1.455v1.455h-1.455zM23.273 25.726h1.455v1.455h-1.455zM11.636 5.361h1.455v1.455h-1.455zM29.091 27.181h1.455v1.455h-1.455zM17.455 6.817h1.455v1.455h-1.455zM30.546 25.726h1.455v1.455h-1.455zM18.909 5.361h1.455v1.455h-1.455zM8.727 11.181h1.455v1.455H8.727z"
214
+ }
215
+ ),
216
+ /* @__PURE__ */ React.createElement(
217
+ "path",
218
+ {
219
+ fill: "#000",
220
+ d: "M8.727 12.635h1.455v1.455H8.727zM8.727 19.908h1.455v1.455H8.727zM21.818 19.908h1.455v1.455h-1.455zM21.818 11.181h1.455v1.455h-1.455z"
221
+ }
222
+ ),
223
+ /* @__PURE__ */ React.createElement(
224
+ "path",
225
+ {
226
+ fill: "#000",
227
+ d: "M8.727 21.362h1.455v1.455H8.727zM21.818 21.362h1.455v1.455h-1.455zM8.727 14.09h1.455v1.455H8.727zM21.818 12.635h1.455v1.455h-1.455zM8.727 22.817h1.455v1.455H8.727z"
228
+ }
229
+ ),
230
+ /* @__PURE__ */ React.createElement(
231
+ "path",
232
+ {
233
+ fill: "#000",
234
+ d: "M8.727 24.271h1.455v1.455H8.727zM7.273 16.998h1.455v1.455H7.273zM21.818 22.817h1.455v1.455h-1.455zM23.273 16.998h1.455v1.455h-1.455z"
235
+ }
236
+ ),
237
+ /* @__PURE__ */ React.createElement(
238
+ "path",
239
+ {
240
+ fill: "#000",
241
+ d: "M21.818 24.271h1.455v1.455h-1.455zM8.727 15.544h1.455v1.455H8.727zM21.818 14.09h1.455v1.455h-1.455zM7.273 18.454h1.455v1.455H7.273z"
242
+ }
243
+ ),
244
+ /* @__PURE__ */ React.createElement(
245
+ "path",
246
+ {
247
+ fill: "#000",
248
+ d: "M21.818 15.544h1.455v1.455h-1.455zM23.273 18.454h1.455v1.455h-1.455zM11.636 12.635h1.455v1.455h-1.455zM11.636 19.908h1.455v1.455h-1.455zM18.909 19.908h1.455v1.455h-1.455zM18.909 12.635h1.455v1.455h-1.455zM11.636 14.09h1.455v1.455h-1.455z"
249
+ }
250
+ ),
251
+ /* @__PURE__ */ React.createElement(
252
+ "path",
253
+ {
254
+ fill: "#000",
255
+ d: "M11.636 21.362h1.455v1.455h-1.455zM18.909 21.362h1.455v1.455h-1.455zM18.909 14.09h1.455v1.455h-1.455zM10.182 16.998h1.455v1.455h-1.455zM20.363 16.998h1.455v1.455h-1.455z"
256
+ }
257
+ ),
258
+ /* @__PURE__ */ React.createElement(
259
+ "path",
260
+ {
261
+ fill: "#000",
262
+ d: "M11.636 15.544h1.455v1.455h-1.455zM11.636 22.817h1.455v1.455h-1.455zM18.909 22.817h1.455v1.455h-1.455zM18.909 15.544h1.455v1.455h-1.455zM13.091 24.271h1.455v1.455h-1.455zM17.454 24.271h1.455v1.455h-1.455zM13.091 25.726h1.455v1.455h-1.455zM17.454 25.726h1.455v1.455h-1.455zM11.636 25.726h1.455v1.455h-1.455zM20.363 25.726h1.455v1.455h-1.455z"
263
+ }
264
+ ),
265
+ /* @__PURE__ */ React.createElement(
266
+ "path",
267
+ {
268
+ fill: "#000",
269
+ d: "M10.182 25.726h1.455v1.455h-1.455zM18.909 25.726h1.455v1.455h-1.455zM10.182 18.454h1.455v1.455h-1.455zM20.363 18.454h1.455v1.455h-1.455zM10.182 9.726h1.455v1.455h-1.455zM18.909 9.726h1.455v1.455h-1.455z"
270
+ }
271
+ ),
272
+ /* @__PURE__ */ React.createElement(
273
+ "path",
274
+ {
275
+ fill: "#000",
276
+ d: "M11.636 9.726h1.455v1.455h-1.455zM20.363 9.726h1.455v1.455h-1.455zM13.091 9.726h1.455v1.455h-1.455zM17.454 9.726h1.455v1.455h-1.455z"
277
+ }
278
+ ),
279
+ /* @__PURE__ */ React.createElement(
280
+ "path",
281
+ {
282
+ fill: "#000",
283
+ d: "M13.091 11.181h1.455v1.455h-1.455zM17.454 11.181h1.455v1.455h-1.455z"
284
+ }
285
+ )
286
+ );
45
287
  export {
46
288
  IconBanner
47
289
  };