@wayke-se/components-react 5.2.0 → 6.0.0-beta.1

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 (145) hide show
  1. package/README.md +260 -140
  2. package/dist/assets/StyreneA-Bold-Web-4CXEYQLA-4CXEYQLA.woff2 +0 -0
  3. package/dist/assets/StyreneA-Bold-Web-AGBUOKS2-AGBUOKS2.woff +0 -0
  4. package/dist/assets/StyreneA-Light-Web-DAMPSUFB-DAMPSUFB.woff +0 -0
  5. package/dist/assets/StyreneA-Light-Web-EE4AJECE-EE4AJECE.woff2 +0 -0
  6. package/dist/assets/StyreneA-Medium-Web-53Q6X35A-53Q6X35A.woff +0 -0
  7. package/dist/assets/StyreneA-Medium-Web-7KYQNCKQ-7KYQNCKQ.woff2 +0 -0
  8. package/dist/assets/StyreneA-Regular-Web-7SAOGHB5-7SAOGHB5.woff2 +0 -0
  9. package/dist/assets/StyreneA-Regular-Web-XFBCXNPA-XFBCXNPA.woff +0 -0
  10. package/dist/chunks/chunk-XBJKSIMP.js +2 -0
  11. package/dist/chunks/chunk-XBJKSIMP.js.map +7 -0
  12. package/dist/chunks/dist-3TYBTGV5.js +1969 -0
  13. package/dist/chunks/dist-3TYBTGV5.js.map +7 -0
  14. package/dist/index.js +1037 -3129
  15. package/dist/index.js.map +4 -4
  16. package/dist/style.css +1 -0
  17. package/dist/types/src/@types/filter.d.ts +7 -1
  18. package/dist/types/src/Gql/ad/legacyWaykeId.d.ts +1 -0
  19. package/dist/types/src/Gql/ad/propertyTree.d.ts +5 -0
  20. package/dist/types/src/Gql/ad/queries.d.ts +9 -0
  21. package/dist/types/src/Gql/ad/types.d.ts +378 -0
  22. package/dist/types/src/Gql/ad/useAd.d.ts +8 -0
  23. package/dist/types/src/Gql/ad/useInsuranceInquiry.d.ts +11 -0
  24. package/dist/types/src/Gql/ad/useLoanCalculation.d.ts +14 -0
  25. package/dist/types/src/Gql/ad/useRelatedAds.d.ts +12 -0
  26. package/dist/types/src/Gql/ad/view.d.ts +94 -0
  27. package/dist/types/src/Gql/client.d.ts +11 -0
  28. package/dist/types/src/Gql/config.d.ts +9 -0
  29. package/dist/types/src/Gql/facets.d.ts +19 -0
  30. package/dist/types/src/Gql/hit.d.ts +5 -0
  31. package/dist/types/src/Gql/legacyParams.d.ts +7 -0
  32. package/dist/types/src/Gql/queries.d.ts +17 -0
  33. package/dist/types/src/Gql/searchParams.d.ts +55 -0
  34. package/dist/types/src/Gql/suggest.d.ts +8 -0
  35. package/dist/types/src/Gql/types.d.ts +131 -0
  36. package/dist/types/src/Gql/useAdsSearch.d.ts +21 -0
  37. package/dist/types/src/State/Ad/AdContext.d.ts +5 -0
  38. package/dist/types/src/State/Router/RouterContext.d.ts +15 -0
  39. package/dist/types/src/State/Router/RouterProvider.d.ts +6 -0
  40. package/dist/types/src/State/Router/useRouter.d.ts +2 -0
  41. package/dist/types/src/State/Search/SearchContext.d.ts +15 -9
  42. package/dist/types/src/State/Search/SearchProvider.d.ts +1 -5
  43. package/dist/types/src/State/Settings/SettingsContext.d.ts +2 -12
  44. package/dist/types/src/State/Settings/settings.d.ts +62 -0
  45. package/dist/types/src/State/Settings/useSettings.d.ts +1 -1
  46. package/dist/types/src/components/ActionList/index.d.ts +3 -10
  47. package/dist/types/src/components/DocumentList/index.d.ts +3 -3
  48. package/dist/types/src/components/Filter/index.d.ts +1 -3
  49. package/dist/types/src/components/FilterPanel/checkListFacet.d.ts +2 -3
  50. package/dist/types/src/components/FilterPanel/colorFacet.d.ts +2 -3
  51. package/dist/types/src/components/FilterPanel/faceSelector.d.ts +2 -3
  52. package/dist/types/src/components/FilterPanel/index.d.ts +8 -15
  53. package/dist/types/src/components/FilterPanel/rangeFacet.d.ts +3 -3
  54. package/dist/types/src/components/FinancialOptions/LoanModal.d.ts +3 -7
  55. package/dist/types/src/components/FinancialOptions/index.d.ts +5 -7
  56. package/dist/types/src/components/FinancialOptions/leasing.d.ts +3 -3
  57. package/dist/types/src/components/FinancialOptions/loan.d.ts +3 -7
  58. package/dist/types/src/components/Gallery/index.d.ts +3 -5
  59. package/dist/types/src/components/Grid/index.d.ts +3 -7
  60. package/dist/types/src/components/InsuranceOptions/Insurance.d.ts +4 -6
  61. package/dist/types/src/components/InsuranceOptions/InsuranceFree.d.ts +5 -7
  62. package/dist/types/src/components/InsuranceOptions/InsuranceFreeModal.d.ts +4 -4
  63. package/dist/types/src/components/InsuranceOptions/InsuranceModal.d.ts +4 -6
  64. package/dist/types/src/components/InsuranceOptions/index.d.ts +5 -6
  65. package/dist/types/src/components/LeadForm/index.d.ts +1 -6
  66. package/dist/types/src/components/Lightbox/index.d.ts +2 -2
  67. package/dist/types/src/components/Map/index.d.ts +4 -2
  68. package/dist/types/src/components/OpeningHours/index.d.ts +2 -2
  69. package/dist/types/src/components/ProductCard/HitCard.d.ts +10 -0
  70. package/dist/types/src/components/ProductCard/index.d.ts +9 -13
  71. package/dist/types/src/components/SearchBar/index.d.ts +4 -1
  72. package/dist/types/src/components/SearchBar/wrapper.d.ts +10 -0
  73. package/dist/types/src/components/SortSelect/index.d.ts +1 -2
  74. package/dist/types/src/hooks/useSubmitLead.d.ts +1 -1
  75. package/dist/types/src/index.d.ts +5 -4
  76. package/dist/types/src/layouts/WaykeComposite.d.ts +3 -8
  77. package/dist/types/src/layouts/WaykeCompositeWithProvider.d.ts +1 -1
  78. package/dist/types/src/layouts/search/index.d.ts +6 -7
  79. package/dist/types/src/layouts/searchItem/Accessories/AccessoryModal.d.ts +2 -2
  80. package/dist/types/src/layouts/searchItem/Accessories/index.d.ts +2 -2
  81. package/dist/types/src/layouts/searchItem/Branch.d.ts +3 -4
  82. package/dist/types/src/layouts/searchItem/CheckList.d.ts +3 -15
  83. package/dist/types/src/layouts/searchItem/Documents.d.ts +2 -2
  84. package/dist/types/src/layouts/searchItem/ManufacturerPackagesOption.d.ts +2 -2
  85. package/dist/types/src/layouts/searchItem/PackageOptions.d.ts +3 -3
  86. package/dist/types/src/layouts/searchItem/Property.d.ts +1 -6
  87. package/dist/types/src/layouts/searchItem/Related.d.ts +5 -6
  88. package/dist/types/src/layouts/searchItem/index.d.ts +8 -6
  89. package/dist/types/src/layouts/searchItem/useEcom.d.ts +7 -3
  90. package/dist/types/src/providers/WaykeProvider.d.ts +7 -21
  91. package/dist/types/src/utils/image.d.ts +14 -0
  92. package/dist/types/src/utils/sortOptions.d.ts +4 -13
  93. package/package.json +26 -22
  94. package/dist/assets/default.css +0 -1
  95. package/dist/assets/fonts/slick.svg +0 -14
  96. package/dist/index.mjs +0 -5511
  97. package/dist/index.mjs.map +0 -7
  98. package/dist/types/src/@types/action.d.ts +0 -3
  99. package/dist/types/src/@types/codegen/types.d.ts +0 -433
  100. package/dist/types/src/@types/queryFilter.d.ts +0 -5
  101. package/dist/types/src/@types/search.d.ts +0 -114
  102. package/dist/types/src/State/CentralStorage/CentralStorageContext.d.ts +0 -5
  103. package/dist/types/src/State/CentralStorage/CentralStorageProvider.d.ts +0 -6
  104. package/dist/types/src/State/CentralStorage/useCentralStorage.d.ts +0 -6
  105. package/dist/types/src/State/Path/PathContext.d.ts +0 -8
  106. package/dist/types/src/State/Path/PathProvider.d.ts +0 -6
  107. package/dist/types/src/State/Path/reducer.d.ts +0 -14
  108. package/dist/types/src/State/Path/usePath.d.ts +0 -3
  109. package/dist/types/src/State/RelatedSearch/RelatedSearchContext.d.ts +0 -9
  110. package/dist/types/src/State/RelatedSearch/RelatedSearchProvider.d.ts +0 -9
  111. package/dist/types/src/State/RelatedSearch/useRelatedSearch.d.ts +0 -2
  112. package/dist/types/src/State/Settings/SettingsProvider.d.ts +0 -11
  113. package/dist/types/src/components/Video/QuickNavVideo.d.ts +0 -7
  114. package/dist/types/src/hooks/apolloTypes.d.ts +0 -6
  115. package/dist/types/src/hooks/useHasBeenVisible.d.ts +0 -2
  116. package/dist/types/src/hooks/useHashGuid.d.ts +0 -2
  117. package/dist/types/src/hooks/useInsurance.d.ts +0 -4
  118. package/dist/types/src/hooks/useLoan.d.ts +0 -4
  119. package/dist/types/src/hooks/useOnScreen.d.ts +0 -2
  120. package/dist/types/src/hooks/usePrevious.d.ts +0 -2
  121. package/dist/types/src/hooks/useSearchItem.d.ts +0 -4
  122. package/dist/types/src/hooks/useSearchItemBranch.d.ts +0 -4
  123. package/dist/types/src/hooks/useSessionStorage.d.ts +0 -7
  124. package/dist/types/src/layouts/searchItem/BranchModal.d.ts +0 -9
  125. package/dist/types/src/providers/WaykeItemProvidet.d.ts +0 -24
  126. package/dist/types/src/providers/graphqlProvider.d.ts +0 -6
  127. package/dist/types/src/queries/INSURANCE_CALCULATION.d.ts +0 -2
  128. package/dist/types/src/queries/LOAN_CALCULATION.d.ts +0 -2
  129. package/dist/types/src/queries/SEARCH_ITEM_BRANCH_QUERY.d.ts +0 -2
  130. package/dist/types/src/queries/SEARCH_ITEM_QUERY.d.ts +0 -2
  131. package/dist/types/src/utils/deep-copy.d.ts +0 -5
  132. package/dist/types/src/utils/regex.d.ts +0 -3
  133. package/dist/types/src/utils/specification.d.ts +0 -28
  134. package/dist/types/src/utils/url.d.ts +0 -1
  135. package/dist/types/src/utils/vehicle-properties/compare-basic-properties.d.ts +0 -3
  136. package/dist/types/src/utils/vehicle-properties/compare-categories.d.ts +0 -3
  137. package/dist/types/src/utils/vehicle-properties/compare-properties.d.ts +0 -3
  138. package/dist/types/src/utils/vehicle-properties/custom-property-adder.d.ts +0 -13
  139. package/dist/types/src/utils/vehicle-properties/property-remover.d.ts +0 -7
  140. package/dist/types/src/utils/vehicle-properties/property-tree-creator.d.ts +0 -31
  141. package/dist/types/src/utils/vehicle-properties/property-tree-sorter.d.ts +0 -3
  142. /package/dist/assets/{ajax-loader.gif → ajax-loader-BOAPMZMT.gif} +0 -0
  143. /package/dist/assets/{fonts/slick.eot → slick-EVLS6IWX.eot} +0 -0
  144. /package/dist/assets/{fonts/slick.woff → slick-MU5EZO5G.woff} +0 -0
  145. /package/dist/assets/{fonts/slick.ttf → slick-NKQ64RRA.ttf} +0 -0
@@ -1,26 +1,12 @@
1
1
  import React from 'react';
2
- export interface EcomSettings {
3
- url: string;
4
- /** @deprecated Not used since 3.0.0. Will be removed in the next major version. */
5
- useBankId?: boolean;
6
- /** @deprecated Not used since 3.0.0. Will be removed in the next major version. */
7
- displayBankIdAlert?: boolean;
8
- serviceLogotypeUrl?: string;
9
- bankIdThumbprint?: string;
10
- }
11
- export interface WaykeProviderSettings {
12
- url: string;
13
- urlMlt?: string;
14
- apiKey?: string;
15
- graphQlUrl: string;
16
- ecomSettings?: EcomSettings;
17
- googleMapsApiKey?: string;
18
- googleMapsMarker?: string;
19
- useQueryParamsFromUrl?: boolean;
20
- pathRoute?: string;
21
- }
2
+ import { WaykeProviderSettings } from '../State/Settings/settings';
3
+ export type { EcomSettings, WaykeProviderSettings } from '../State/Settings/settings';
22
4
  export type WaykeProviderProps = WaykeProviderSettings & {
23
5
  children?: React.ReactNode;
24
6
  };
25
- declare const WaykeProvider: ({ url, urlMlt, apiKey, ecomSettings, graphQlUrl, googleMapsApiKey, googleMapsMarker, useQueryParamsFromUrl, pathRoute, children, }: WaykeProviderProps) => React.JSX.Element;
7
+ /**
8
+ * Settings, routing, the search state and the theme for every Wayke component
9
+ * under it. Place it close to the root of the app, so its cache is kept.
10
+ */
11
+ declare const WaykeProvider: ({ children, ...settings }: WaykeProviderProps) => React.JSX.Element;
26
12
  export default WaykeProvider;
@@ -0,0 +1,14 @@
1
+ export type ImageSpec = [width: number, height: number];
2
+ interface ImageOptions {
3
+ width: number;
4
+ height: number;
5
+ webp?: boolean;
6
+ }
7
+ export declare const imageUrl: (src: string, { width, height, webp }: ImageOptions) => string;
8
+ /**
9
+ * Width-limited URL for an image that may come from cfit (allowed widths only)
10
+ * or from a host that takes a free ?w=&h= (legacy media, blob storage).
11
+ */
12
+ export declare const imageWithWidth: (src: string, width: number, height?: number) => string;
13
+ export declare const imageSrcSet: (src: string, specs: ImageSpec[], webp?: boolean) => string;
14
+ export {};
@@ -1,13 +1,4 @@
1
- declare const SortOptionDisplayName: {
2
- PublishedAsc: string;
3
- PublishedDesc: string;
4
- PriceAsc: string;
5
- Pricedesc: string;
6
- ModelAsc: string;
7
- Modeldesc: string;
8
- MileageAsc: string;
9
- Mileagedesc: string;
10
- };
11
- type SortOptionDisplayName = 'relevance' | 'published-asc' | 'published-desc' | 'price-asc' | 'price-desc' | 'model-asc' | 'model-desc' | 'mileage-asc' | 'mileage-desc';
12
- export declare const getTranslatedSortOptionDisplayName: (str: string | SortOptionDisplayName) => string;
13
- export {};
1
+ export declare const sortOptions: () => {
2
+ value: string;
3
+ displayName: string;
4
+ }[];
package/package.json CHANGED
@@ -1,11 +1,22 @@
1
1
  {
2
2
  "name": "@wayke-se/components-react",
3
- "version": "5.2.0",
3
+ "version": "6.0.0-beta.1",
4
4
  "description": "",
5
- "module": "dist/index.mjs",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
5
  "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./style.css": "./dist/style.css",
15
+ "./package.json": "./package.json"
16
+ },
17
+ "sideEffects": [
18
+ "*.css"
19
+ ],
9
20
  "files": [
10
21
  "dist"
11
22
  ],
@@ -15,7 +26,6 @@
15
26
  "lint": "npx @biomejs/biome check",
16
27
  "lint:fix": "npx @biomejs/biome check --write",
17
28
  "typecheck": "tsc --noEmit --skipLibCheck",
18
- "gen": "graphql-codegen --config ./codegen.yml",
19
29
  "generate-libphonenumber-metadata": "libphonenumber-metadata-generator src/utils/metadata.min.json --countries SE,NO --extended",
20
30
  "prepare": "husky",
21
31
  "start": "node ./esbuild/start.js",
@@ -35,39 +45,33 @@
35
45
  "styled-components": "^6"
36
46
  },
37
47
  "devDependencies": {
38
- "@biomejs/biome": "2.5.15",
39
- "@graphql-codegen/cli": "^7.4.5",
40
- "@graphql-codegen/typescript": "^6.1.1",
41
- "@types/googlemaps": "^3.43.3",
42
- "@types/node": "^24.19.1",
48
+ "@biomejs/biome": "2.6.3",
49
+ "@types/node": "^24.19.2",
43
50
  "@types/react": "^19.3.0",
44
51
  "@types/react-dom": "^19.3.0",
45
52
  "@types/react-slick": "^0.23.13",
46
- "@wayke-se/ecom-web": "^2.1.1",
47
- "dotenv": "^18.0.6",
53
+ "dotenv": "^18.0.9",
48
54
  "esbuild": "^0.28.2",
49
- "esbuild-plugin-copy": "^2.1.1",
50
55
  "husky": "^9.1.7",
51
56
  "libphonenumber-metadata-generator": "^2.0.6",
52
57
  "lint-staged": "^17.6.0",
53
- "react": "^19.3.0",
54
- "react-dom": "^19.3.0",
55
- "react-router-dom": "^7.18.4",
58
+ "react": "^19.3.1",
59
+ "react-dom": "^19.3.1",
60
+ "react-router-dom": "^7.18.5",
56
61
  "rimraf": "^6.1.3",
57
- "styled-components": "^6.5.3",
62
+ "styled-components": "^6.6.0",
58
63
  "typescript": "^7.0.2"
59
64
  },
60
65
  "dependencies": {
61
- "@apollo/client": "^4.3.3",
62
66
  "@emotion/is-prop-valid": "^1.4.0",
63
67
  "@photo-sphere-viewer/core": "^5.15.1",
68
+ "@wayke-se/ecom-web": "^2.1.1",
64
69
  "date-fns": "^4.4.0",
65
- "graphql": "^16.0.0 || ^17.0.0",
66
- "i18next": "^26.4.2",
70
+ "i18next": "^26.5.11",
67
71
  "libphonenumber-js": "^1.13.15",
68
- "marked": "^18.1.0",
72
+ "marked": "^18.1.2",
69
73
  "react-compound-slider": "^3.4.0",
70
- "react-i18next": "^17.0.16",
74
+ "react-i18next": "^17.1.9",
71
75
  "react-slick": "^0.31.0",
72
76
  "scroll-into-view-if-needed": "^3.1.0"
73
77
  },
@@ -1 +0,0 @@
1
- @charset 'UTF-8';.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}.slick-loading .slick-list{background:#fff url(ajax-loader.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(fonts/slick.eot);src:url(fonts/slick.eot?#iefix) format('embedded-opentype'),url(fonts/slick.woff) format('woff'),url(fonts/slick.ttf) format('truetype'),url(fonts/slick.svg#slick) format('svg')}.slick-next,.slick-prev{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;color:transparent;border:none;outline:0;background:0 0}.slick-next:focus,.slick-next:hover,.slick-prev:focus,.slick-prev:hover{color:transparent;outline:0;background:0 0}.slick-next:focus:before,.slick-next:hover:before,.slick-prev:focus:before,.slick-prev:hover:before{opacity:1}.slick-next.slick-disabled:before,.slick-prev.slick-disabled:before{opacity:.25}.slick-next:before,.slick-prev:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:'←'}[dir=rtl] .slick-prev:before{content:'→'}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:'→'}[dir=rtl] .slick-next:before{content:'←'}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:0;background:0 0}.slick-dots li button:focus,.slick-dots li button:hover{outline:0}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'•';text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>Generated by Fontastic.me</metadata>
5
- <defs>
6
- <font id="slick" horiz-adv-x="512">
7
- <font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
8
- <missing-glyph horiz-adv-x="512" />
9
-
10
- <glyph unicode="&#8594;" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
11
- <glyph unicode="&#8592;" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
12
- <glyph unicode="&#8226;" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
13
- <glyph unicode="&#97;" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
14
- </font></defs></svg>