Merged in feat/SW-1711-switch-icons (pull request #1558)

Switches out all the old icons to new ones, and moves them to the design system. The new icons are of three different types: Materialise Symbol, Nucleo, and Customized. Also adds further mapping between facilities/amenities and icons.

Approved-by: Michael Zetterberg
Approved-by: Erik Tiekstra
This commit is contained in:
Matilda Landström
2025-03-27 09:42:52 +00:00
parent 93c7fe64bf
commit 5de2a993a7
524 changed files with 4442 additions and 6802 deletions

View File

@@ -0,0 +1,67 @@
import type { NucleoIconProps } from '../../icon'
import { colorVariants } from '../colorVariants'
function BathroomCabinet2(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<rect
height="8"
width="17.999"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x="3.001"
y="15"
/>
<path
d="M9,11a2,2,0,0,1,4,0h0v4"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="7.999"
x2="19.999"
y1="19"
y2="19"
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="8"
x2="7.999"
y1="15"
y2="23"
/>
<polyline
fill="none"
points="5 11 1 11 1 1 23 1 23 11 17 11"
stroke={fill}
strokeWidth={strokewidth}
/>
</g>
</svg>
)
}
export default BathroomCabinet2

View File

@@ -0,0 +1,92 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function ConferenceRoom(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<rect
height="18"
width="10"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x="7"
y="3"
/>
<circle cx="2" cy="6" fill={fill} r="1" stroke="none" />
<circle cx="2" cy="12" fill={fill} r="1" stroke="none" />
<circle cx="2" cy="18" fill={fill} r="1" stroke="none" />
<circle cx="22" cy="6" fill={fill} r="1" stroke="none" />
<circle cx="22" cy="12" fill={fill} r="1" stroke="none" />
<circle cx="22" cy="18" fill={fill} r="1" stroke="none" />
<circle
cx="2"
cy="6"
fill="none"
r="1"
stroke={fill}
strokeWidth={strokewidth}
/>
<circle
cx="2"
cy="12"
fill="none"
r="1"
stroke={fill}
strokeWidth={strokewidth}
/>
<circle
cx="2"
cy="18"
fill="none"
r="1"
stroke={fill}
strokeWidth={strokewidth}
/>
<circle
cx="22"
cy="6"
fill="none"
r="1"
stroke={fill}
strokeWidth={strokewidth}
/>
<circle
cx="22"
cy="12"
fill="none"
r="1"
stroke={fill}
strokeWidth={strokewidth}
/>
<circle
cx="22"
cy="18"
fill="none"
r="1"
stroke={fill}
strokeWidth={strokewidth}
/>
</g>
</svg>
)
}
export default ConferenceRoom

View File

@@ -0,0 +1,56 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Door2(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<rect
height="22"
width="16"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x="4"
y="1"
/>
<rect
height="6"
width="8"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x="8"
y="5"
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="8"
x2="8"
y1="15"
y2="17"
/>
</g>
</svg>
)
}
export default Door2

View File

@@ -0,0 +1,92 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Hairdresser1(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="16"
x2="19"
y1="5"
y2="5"
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="16"
x2="19"
y1="9"
y2="9"
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="12"
x2="6"
y1="1"
y2="18"
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="4"
x2="10"
y1="1"
y2="18"
/>
<path
d="M16,13h.79a2,2,0,0,1,1.99,2.2L18,23h5V3a2,2,0,0,0-2-2H16"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<rect
height="7"
width="5"
fill="none"
rx="2.5"
stroke={fill}
strokeWidth={strokewidth}
x="1"
y="16"
/>
<rect
height="7"
width="5"
fill="none"
rx="2.5"
stroke={fill}
strokeWidth={strokewidth}
transform="translate(25 39) rotate(180)"
x="10"
y="16"
/>
</g>
</svg>
)
}
export default Hairdresser1

View File

@@ -0,0 +1,51 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function RecordPlayer3(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<path
d="M18 9V14L16.5 16"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M2 6L2 18C2 19.1046 2.89543 20 4 20L20 20C21.1046 20 22 19.1046 22 18L22 6C22 4.89543 21.1046 4 20 4L4 4C2.89543 4 2 4.89543 2 6Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M10 16C12.2091 16 14 14.2091 14 12C14 9.79086 12.2091 8 10 8C7.79086 8 6 9.79086 6 12C6 14.2091 7.79086 16 10 16Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M10 13C10.5523 13 11 12.5523 11 12C11 11.4477 10.5523 11 10 11C9.44772 11 9 11.4477 9 12C9 12.5523 9.44772 13 10 13Z"
fill={fill}
stroke="none"
/>
</g>
</svg>
)
}
export default RecordPlayer3

View File

@@ -0,0 +1,49 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Toilet2(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<path
d="M6,8V3A2.006,2.006,0,0,1,8,1h8a2.006,2.006,0,0,1,2,2V8"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M21,12H3v2a6.018,6.018,0,0,0,6,6H9v3h6V20h0a6.018,6.018,0,0,0,6-6Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="3.1"
x2="20.9"
y1="15"
y2="15"
/>
</g>
</svg>
)
}
export default Toilet2

View File

@@ -0,0 +1,58 @@
import type { NucleoIconProps } from '../../icon'
import { colorVariants } from '../colorVariants'
function UserPolice2(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<path
d="m4,22.429l3.549-1.014c.859-.245,1.451-1.03,1.451-1.923v-1.239"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="m20,22.429l-3.549-1.014c-.859-.245-1.451-1.03-1.451-1.923v-1.239"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="m18.473,8.408c.091.509.124,1.038.09,1.578l-.189,3.025c-.21,3.366-3.002,5.988-6.374,5.988h0c-3.373,0-6.164-2.622-6.374-5.988l-.189-3.025c-.034-.541-.001-1.069.09-1.579"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="m12,12c-6.406,0-6.576-4-6.576-4h13.153s-.17,4-6.576,4Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="m18.576,8l1.495-3.109c.238-.494.039-1.098-.456-1.334-2.349-1.12-4.885-1.893-7.616-2.307-2.73.414-5.267,1.187-7.616,2.307-.495.236-.693.84-.456,1.334l1.495,3.109"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<circle cx="12" cy="4.75" fill={fill} r="1.5" strokeWidth="0" />
</g>
</svg>
)
}
export default UserPolice2

View File

@@ -0,0 +1,59 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Bouquet(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<path
d="M20.45,11.5a1.707,1.707,0,0,0-2.415,0,1.706,1.706,0,0,1-2.414,0,1.706,1.706,0,0,0-2.414,0,1.706,1.706,0,0,1-2.414,0,1.706,1.706,0,0,0-2.414,0,1.706,1.706,0,0,1-2.414,0,1.707,1.707,0,0,0-2.415,0L10,19h4Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M11.378,2.877A6.631,6.631,0,0,1,16,1V4A4,4,0,0,1,8,4V1a4,4,0,0,1,4,4"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M6,8a2.528,2.528,0,0,1,.5-5H8"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M18,8a2.528,2.528,0,0,0-.5-5H16"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<polyline
fill="none"
points="10 19 9 23 15 23 14 19"
stroke={fill}
strokeWidth={strokewidth}
/>
</g>
</svg>
)
}
export default Bouquet

View File

@@ -0,0 +1,59 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Discount22(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<polygon
fill="none"
points="19,15 22,12 19,9 19,5 15,5 12,2 9,5 5,5 5,9 2,12 5,15 5,19 9,19 12,22 15,19 19,19 "
stroke={fill}
strokeWidth={strokewidth}
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="15"
x2="9"
y1="9"
y2="15"
/>
<circle
cx="9.5"
cy="9.5"
fill={fill}
r="1.5"
stroke="none"
strokeLinejoin="miter"
/>
<circle
cx="14.5"
cy="14.5"
fill={fill}
r="1.5"
stroke="none"
strokeLinejoin="miter"
/>
</g>
</svg>
)
}
export default Discount22

View File

@@ -0,0 +1,41 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function BowlingPins(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<path
d="M18.575,23A13.8,13.8,0,0,0,20,16.5c0-4-2-6-2-9,0-2.5.5-2.5.5-4a2.5,2.5,0,0,0-5,0c0,1.5.5,1.5.5,4,0,3-2,5-2,9A13.8,13.8,0,0,0,13.425,23Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M9.952,11.247a7.883,7.883,0,0,1-.7-2.929c0-2.045.438-2.045.438-3.273A2.121,2.121,0,0,0,7.5,3,2.121,2.121,0,0,0,5.312,5.045c0,1.228.438,1.228.438,3.273C5.75,10.773,4,12.409,4,15.682A10.7,10.7,0,0,0,5.247,21H10"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
</g>
</svg>
)
}
export default BowlingPins

View File

@@ -0,0 +1,68 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function PalmTree2(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<path
d="M11.4,23a21.14,21.14,0,0,0,1.594-8.059A21.111,21.111,0,0,0,11,6"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M4,15l7-9C6,6,2,9,4,15Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M21,12,11,6S20,2,21,12Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M11,6,3,5S7-1,11,6Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M11,6l9-3S11.971-2.161,11,6Z"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="1"
x2="23"
y1="23"
y2="23"
/>
</g>
</svg>
)
}
export default PalmTree2

View File

@@ -0,0 +1,70 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Chips3(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<polyline
fill="none"
points="4,9 4,3 8,3 "
stroke={fill}
strokeWidth={strokewidth}
/>
<polyline
fill="none"
points="16,9 16,2 20,2 20,9 "
stroke={fill}
strokeWidth={strokewidth}
/>
<polyline
fill="none"
points="8,9 8,1 12,1 12,9 "
stroke={fill}
strokeWidth={strokewidth}
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="12"
x2="16"
y1="5"
y2="5"
/>
<polygon
fill="none"
points="19,23 5,23 2,9 22,9 "
stroke={fill}
strokeWidth={strokewidth}
/>
<circle
cx="12"
cy="16"
fill="none"
r="3"
stroke={fill}
strokeWidth={strokewidth}
/>
</g>
</svg>
)
}
export default Chips3

View File

@@ -0,0 +1,59 @@
import { colorVariants } from '../colorVariants'
import type { NucleoIconProps } from '../../icon'
function Popcorn2(props: NucleoIconProps) {
const fill = props.color ? colorVariants[props.color] : 'currentColor'
const strokewidth = props.strokewidth || 2
const width = props.size || '1em'
const height = props.size || '1em'
return (
<svg
height={height}
width={width}
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<g
fill={fill}
strokeLinecap="round"
strokeLinejoin="round"
transform="translate(0.25 0.25)"
>
<polygon
fill="none"
points="21 7 3 7 5 23 19 23 21 7"
stroke={fill}
strokeWidth={strokewidth}
/>
<path
d="M19,5a3,3,0,0,0-3-3,2.97,2.97,0,0,0-1.47.4,2.986,2.986,0,0,0-5.06,0A2.97,2.97,0,0,0,8,2,3,3,0,0,0,5,5"
fill="none"
stroke={fill}
strokeWidth={strokewidth}
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="9"
x2="8"
y1="23"
y2="7"
/>
<line
fill="none"
stroke={fill}
strokeWidth={strokewidth}
x1="15"
x2="16"
y1="23"
y2="7"
/>
</g>
</svg>
)
}
export default Popcorn2

View File

@@ -0,0 +1,17 @@
export const colorVariants = {
'Icon/Default': 'var(--Icon-Default)',
'Icon/Intense': 'var(--Icon-Intense)',
'Icon/Accent': 'var(--Icon-Accent)',
'Icon/Inverted': 'var(--Icon-Inverted)',
'Icon/Interactive/Default': 'var(--Icon-Interactive-Default)',
'Icon/Interactive/Secondary': 'var(--Icon-Interactive-Secondary)',
'Icon/Interactive/Accent': 'var(--Icon-Interactive-Accent)',
'Icon/Interactive/Disabled': 'var(--Icon-Interactive-Disabled)',
'Icon/Interactive/Placeholder': 'var(--Icon-Interactive-Placeholder)',
'Icon/Feedback/Information': 'var(--Icon-Feedback-Information)',
'Icon/Feedback/Success': 'var(--Icon-Feedback-Success)',
'Icon/Feedback/Warning': 'var(--Icon-Feedback-Warning)',
'Icon/Feedback/Error': 'var(--Icon-Feedback-Error)',
'Icon/Feedback/Neutral': 'var(--Icon-Feedback-Neutral)',
CurrentColor: 'currentColor',
}