diff --git a/nx.json b/nx.json index ed24d7ebfdd..63b34618cf7 100644 --- a/nx.json +++ b/nx.json @@ -60,14 +60,6 @@ "outputs": ["{projectRoot}/lib"], "cache": true }, - "copy:scss": { - "outputs": ["{projectRoot}/lib/scss"], - "cache": true - }, - "copy:fonts": { - "outputs": ["{projectRoot}/lib/css"], - "cache": true - }, "generate-icon-src": { "outputs": ["{projectRoot}/src/generated"], "cache": true diff --git a/packages/core/src/components/breadcrumbs/_breadcrumbs.scss b/packages/core/src/components/breadcrumbs/_breadcrumbs.scss index ede1a1e909a..697ee240918 100644 --- a/packages/core/src/components/breadcrumbs/_breadcrumbs.scss +++ b/packages/core/src/components/breadcrumbs/_breadcrumbs.scss @@ -1,7 +1,6 @@ // Copyright 2016 Palantir Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/variables"; .#{$ns}-breadcrumbs { diff --git a/packages/core/src/components/callout/_callout.scss b/packages/core/src/components/callout/_callout.scss index 269977e449e..6ef105b7ed1 100644 --- a/packages/core/src/components/callout/_callout.scss +++ b/packages/core/src/components/callout/_callout.scss @@ -19,19 +19,6 @@ $callout-padding-compact: $pt-spacing * 2; background-color: rgba($gray3, 0.15); } - // CSS API support - &[class*="#{$ns}-icon-"] { - padding-left: $callout-padding + $pt-icon-size-standard + ($pt-spacing * 2); - - &::before { - @include pt-icon($pt-icon-size-standard); - color: $pt-icon-color; - left: $callout-padding; - position: absolute; - top: $callout-padding + $callout-header-margin-top; - } - } - // High contrast mode hides backgrounds, so we need to use a border instead @media (forced-colors: active) and (prefers-color-scheme: dark) { border: 1px solid $pt-high-contrast-mode-border-color; @@ -78,7 +65,6 @@ $callout-padding-compact: $pt-spacing * 2; background-color: rgba($gray3, 0.2); } - &[class*="#{$ns}-icon-"]::before, &.#{$ns}-callout-icon > .#{$ns}-icon:first-child { color: $pt-dark-icon-color; } @@ -96,7 +82,6 @@ $callout-padding-compact: $pt-spacing * 2; border: 1px solid $pt-high-contrast-mode-border-color; } - &[class*="#{$ns}-icon-"]::before, > .#{$ns}-icon:first-child, .#{$ns}-heading { color: map.get($pt-intent-text-colors, $intent); @@ -109,7 +94,6 @@ $callout-padding-compact: $pt-spacing * 2; background-color: rgba($color, 0.2); } - &[class*="#{$ns}-icon-"]::before, > .#{$ns}-icon:first-child, .#{$ns}-heading { color: map.get($pt-dark-intent-text-colors, $intent); diff --git a/packages/core/src/components/dialog/_dialog.scss b/packages/core/src/components/dialog/_dialog.scss index e27817bec56..539b0b95dc8 100644 --- a/packages/core/src/components/dialog/_dialog.scss +++ b/packages/core/src/components/dialog/_dialog.scss @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. @use "sass:math"; -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/mixins"; @import "../../common/react-transition"; @import "../../common/variables"; diff --git a/packages/core/src/components/dialog/_multistep-dialog.scss b/packages/core/src/components/dialog/_multistep-dialog.scss index 527c7c81f21..36b4af58256 100644 --- a/packages/core/src/components/dialog/_multistep-dialog.scss +++ b/packages/core/src/components/dialog/_multistep-dialog.scss @@ -1,7 +1,6 @@ // Copyright 2020 Palantir Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/mixins"; @import "../../common/react-transition"; @import "../../common/variables"; diff --git a/packages/core/src/components/drawer/_drawer.scss b/packages/core/src/components/drawer/_drawer.scss index d908d6b0778..8e2b82ac6b0 100644 --- a/packages/core/src/components/drawer/_drawer.scss +++ b/packages/core/src/components/drawer/_drawer.scss @@ -1,7 +1,6 @@ // Copyright 2018 Palantir Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/mixins"; @import "../../common/react-transition"; @import "../../common/variables"; diff --git a/packages/core/src/components/forms/_common.scss b/packages/core/src/components/forms/_common.scss index 565572f07b9..58267664fdd 100644 --- a/packages/core/src/components/forms/_common.scss +++ b/packages/core/src/components/forms/_common.scss @@ -1,7 +1,6 @@ // Copyright 2015 Palantir Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/variables"; @import "../button/common"; diff --git a/packages/core/src/components/forms/_input-group.scss b/packages/core/src/components/forms/_input-group.scss index 1e133e7f168..02528bc2b21 100644 --- a/packages/core/src/components/forms/_input-group.scss +++ b/packages/core/src/components/forms/_input-group.scss @@ -72,7 +72,7 @@ $input-button-height-small: $pt-button-height-smaller !default; color: $pt-icon-color; &:empty { - @include pt-icon($pt-icon-size-standard); + @include pt-icon-sized($pt-icon-size-standard); } } diff --git a/packages/core/src/components/icon/_icon-mixins.scss b/packages/core/src/components/icon/_icon-mixins.scss index b6672e54104..1ce67725dd2 100644 --- a/packages/core/src/components/icon/_icon-mixins.scss +++ b/packages/core/src/components/icon/_icon-mixins.scss @@ -3,24 +3,10 @@ @import "@blueprintjs/colors/lib/scss/colors"; -@mixin pt-icon-font-smoothing() { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; -} - -@mixin pt-icon-sized( - $font-size: $pt-icon-size-standard, - $font-family-size: strip-unit($font-size) -) { - font-family: "blueprint-icons-#{$font-family-size}", sans-serif; +@mixin pt-icon-sized($font-size: $pt-icon-size-standard) { font-size: $font-size; - font-style: normal; - font-variant: normal; - font-weight: 400; height: $font-size; line-height: 1; - // We explicitly add dimensions here so that icon elements have proper sizing before their icon paths are loaded; - // this is useful (for example) to ensure that OverflowList takes proper measurements when partitioning on mount. width: $font-size; } @@ -40,7 +26,6 @@ } } -@mixin pt-icon($font-size: $pt-icon-size-standard, $font-family-size: strip-unit($font-size)) { - @include pt-icon-sized($font-size, $font-family-size); - @include pt-icon-font-smoothing; +@mixin pt-icon($font-size: $pt-icon-size-standard) { + @include pt-icon-sized($font-size); } diff --git a/packages/core/src/components/icon/_icon.scss b/packages/core/src/components/icon/_icon.scss index b68ec1d60a5..b6ef06a66f8 100644 --- a/packages/core/src/components/icon/_icon.scss +++ b/packages/core/src/components/icon/_icon.scss @@ -1,7 +1,6 @@ // Copyright 2015 Palantir Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/variables"; @import "../../common/variables-extended"; @import "icon-mixins"; @@ -57,45 +56,12 @@ // intent colors for both SVG and font icons are set in _typography-colors.scss -// -// Icon font styles -// -// TOOD: move to @blueprintjs/icons in v6.0 -// - span.#{$ns}-icon-standard { - @include pt-icon($pt-icon-size-standard); + @include pt-icon-sized($pt-icon-size-standard); display: inline-block; } span.#{$ns}-icon-large { - @include pt-icon($pt-icon-size-large); + @include pt-icon-sized($pt-icon-size-large); display: inline-block; } - -// only apply icon font styles when image is not present -span.#{$ns}-icon:empty { - font-family: $blueprint-icons-20-font; - font-size: inherit; - font-style: normal; - font-weight: 400; - line-height: 1; - - &::before { - @include pt-icon-font-smoothing; - } - - &.#{$ns}-icon-standard { - font-size: $pt-icon-size-standard; - } - - &.#{$ns}-icon-large { - font-size: $pt-icon-size-large; - } -} - -@each $name, $codepoint in $blueprint-icon-codepoints { - .#{$ns}-icon-#{$name}::before { - content: $codepoint; - } -} diff --git a/packages/core/src/components/icon/icon.mdx b/packages/core/src/components/icon/icon.mdx index e0cc445af3e..32c536da0b0 100644 --- a/packages/core/src/components/icon/icon.mdx +++ b/packages/core/src/components/icon/icon.mdx @@ -16,11 +16,10 @@ See the [**Icons package**](#icons) for a searchable list of all available UI ic import { Icon } from "@blueprintjs/core"; ``` -Blueprint provides icons in two formats (SVG and fonts). It's easy to change their color +Blueprint provides icons as SVGs. It's easy to change their color or apply effects like text shadows via standard SVG or CSS properties. -This section describes two ways of using Blueprint's UI icons: -via the `Icon` component to render SVG images or via CSS classes to use the icon font. +This section describes using Blueprint's UI icons via the `Icon` component to render SVG images. Many Blueprint components provide an `icon` prop which accepts an icon name (such as `"history"`) or a JSX element to use as the icon. When you specify @@ -139,32 +138,3 @@ Note that some `` props are not yet supported for these components, such a @interface DefaultSVGIconProps -## CSS API - -The CSS-only icons API uses the **icon fonts** from the **@blueprintjs/icons** package. -Note that _none of Blueprint's React components use the icon font_; it is only provided -for convenience to Blueprint consumers for rare situations where an icon font may be -preferred over icon SVGs. - -To use Blueprint UI icons via CSS, you must apply two classes to a `` element: - -- a **sizing class**, either `@ns-icon-standard` (16px) or `@ns-icon-large` (20px) -- an **icon name class**, such as `@ns-icon-projects` - -Icon classes also support the four `.@ns-intent-*` modifiers to color the image. - -```html - - - - -``` - -
-
Non-standard sizes
- -Generally, font icons should only be used at either 16px or 20px. However, if a non-standard size is -necessary, set a `font-size` that is whole multiple of 16 or 20 with the relevant size class. -You can instead use the class `@ns-icon` to make the icon inherit its size from surrounding text. - -
diff --git a/packages/core/src/components/icon/icon.tsx b/packages/core/src/components/icon/icon.tsx index 532bed020ec..51df38863b1 100644 --- a/packages/core/src/components/icon/icon.tsx +++ b/packages/core/src/components/icon/icon.tsx @@ -15,7 +15,7 @@ */ import classNames from "classnames"; -import { createElement, forwardRef, useEffect, useState } from "react"; +import { forwardRef, useEffect, useState } from "react"; import { type DefaultSVGIconProps, @@ -39,6 +39,8 @@ import { // re-export for convenience, since some users won't be importing from or have a direct dependency on the icons package export { type IconName, IconSize }; +const EMPTY_ICON_PATHS: IconPaths = []; + export interface IconOwnProps { /** * Whether the component should automatically load icon contents using an async import. @@ -117,8 +119,8 @@ export const Icon: IconComponent = forwardRef((props: IconPro const size = props.size ?? IconSize.STANDARD; - const [iconPaths, setIconPaths] = useState(() => - typeof icon === "string" ? Icons.getPaths(icon, size) : undefined, + const [iconPaths, setIconPaths] = useState(() => + typeof icon === "string" ? (Icons.getPaths(icon, size) ?? EMPTY_ICON_PATHS) : EMPTY_ICON_PATHS, ); useEffect(() => { @@ -137,7 +139,7 @@ export const Icon: IconComponent = forwardRef((props: IconPro .then(() => { // if this effect expired by the time icon loaded, then don't set state if (!shouldCancelIconLoading) { - setIconPaths(Icons.getPaths(icon, size)); + setIconPaths(Icons.getPaths(icon, size) ?? EMPTY_ICON_PATHS); } }) .catch(reason => { @@ -160,49 +162,26 @@ export const Icon: IconComponent = forwardRef((props: IconPro return icon; } - if (iconPaths == null) { - // fall back to icon font if unloaded or unable to load SVG implementation - const sizeClass = - size === IconSize.STANDARD - ? Classes.ICON_STANDARD - : size === IconSize.LARGE - ? Classes.ICON_LARGE - : undefined; - return createElement(tagName || "span", { - "aria-hidden": title ? undefined : true, - ...removeNonHTMLProps(htmlProps), - className: classNames( - Classes.ICON, - sizeClass, - Classes.iconClass(icon), - Classes.intentClass(intent), - className, - ), - "data-icon": icon, - ref, - title: htmlTitle, - }); - } else { - const pathElements = iconPaths.map((d, i) => ); - // HACKHACK: there is no good way to narrow the type of SVGIconContainerProps here because of the use - // of a conditional type within the type union that defines that interface. So we cast to . - // see https://github.com/microsoft/TypeScript/issues/24929, https://github.com/microsoft/TypeScript/issues/33014 - return ( - - children={pathElements} - // don't forward `Classes.ICON` or `Classes.iconClass(icon)` here, since the container will render those classes - className={classNames(Classes.intentClass(intent), className)} - color={color} - htmlTitle={htmlTitle} - iconName={icon} - ref={ref} - size={size} - svgProps={svgProps} - tagName={tagName} - title={title} - {...removeNonHTMLProps(htmlProps)} - /> - ); - } + const pathElements = iconPaths.map((d, i) => ); + + // HACKHACK: there is no good way to narrow the type of SVGIconContainerProps here because of the use + // of a conditional type within the type union that defines that interface. So we cast to . + // see https://github.com/microsoft/TypeScript/issues/24929, https://github.com/microsoft/TypeScript/issues/33014 + return ( + + children={pathElements} + // don't forward `Classes.ICON` or `Classes.iconClass(icon)` here, since the container will render those classes + className={classNames(Classes.intentClass(intent), className)} + color={color} + htmlTitle={htmlTitle} + iconName={icon} + ref={ref} + size={size} + svgProps={svgProps} + tagName={tagName} + title={title} + {...removeNonHTMLProps(htmlProps)} + /> + ); }); Icon.displayName = `${DISPLAYNAME_PREFIX}.Icon`; diff --git a/packages/core/src/components/menu/_menu.scss b/packages/core/src/components/menu/_menu.scss index 689be7c47b8..c1fd0485208 100644 --- a/packages/core/src/components/menu/_menu.scss +++ b/packages/core/src/components/menu/_menu.scss @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. @import "../../common/variables"; -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/mixins"; @import "./common"; @@ -32,7 +31,7 @@ &::before { // support pt-icon-* classes directly on this element - @include pt-icon; + @include pt-icon-sized; margin-right: $menu-item-padding; } @@ -40,7 +39,7 @@ @include menu-item-large; &::before { - @include pt-icon($pt-icon-size-large); + @include pt-icon-sized($pt-icon-size-large); margin-right: $menu-item-padding-large; } } diff --git a/packages/core/src/components/menu/_submenu.scss b/packages/core/src/components/menu/_submenu.scss index 49516dcda3f..5a7257acbaa 100644 --- a/packages/core/src/components/menu/_submenu.scss +++ b/packages/core/src/components/menu/_submenu.scss @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. @import "../../common/variables"; -@import "@blueprintjs/icons/lib/scss/variables"; @import "./common"; .#{$ns}-submenu { diff --git a/packages/core/src/components/segmented-control/segmentedControl.test.tsx b/packages/core/src/components/segmented-control/segmentedControl.test.tsx index ec959512665..4ad60411405 100644 --- a/packages/core/src/components/segmented-control/segmentedControl.test.tsx +++ b/packages/core/src/components/segmented-control/segmentedControl.test.tsx @@ -53,7 +53,7 @@ describe("", () => { const button = screen.getByRole("radio"); const icon = button.querySelector(`.${Classes.ICON}`); expect(icon).not.toBeNull(); - expect(icon!).toHaveAttribute("data-icon", IconNames.GRID); + expect(icon!.querySelector("svg")).toHaveAttribute("data-icon", IconNames.GRID); }); it("button text defaults to value when no label is passed", () => { diff --git a/packages/core/src/components/slider/_common.scss b/packages/core/src/components/slider/_common.scss index 1aee7cefbb6..2bae01e24e0 100644 --- a/packages/core/src/components/slider/_common.scss +++ b/packages/core/src/components/slider/_common.scss @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. @import "../../common/variables"; -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/mixins"; @import "../button/common"; diff --git a/packages/core/src/components/tag/_common.scss b/packages/core/src/components/tag/_common.scss index 2a82a05fa4f..f943b0c7402 100644 --- a/packages/core/src/components/tag/_common.scss +++ b/packages/core/src/components/tag/_common.scss @@ -360,21 +360,10 @@ $minimal-dark-tag-intent-colors: ( color: var(--bp-intent-default-foreground); } - // CSS API support - &:empty::before { - @include pt-icon; - content: map.get($blueprint-icon-codepoints, "small-cross"); - } - .#{$ns}-large & { /* stylelint-disable-next-line declaration-no-important */ margin-right: calc(var(--bp-surface-spacing) * -2) !important; padding: 0 var(--bp-surface-spacing) 0 0; - - &:empty::before { - // font-family name "blueprint-icons-20" requires a compile-time value for Sass string interpolation - @include pt-icon-sized(calc(var(--bp-surface-spacing) * 5), 20); - } } } diff --git a/packages/core/src/components/tag/compoundTag.test.tsx b/packages/core/src/components/tag/compoundTag.test.tsx index 9c44b9ddbb0..122fb9a1d82 100644 --- a/packages/core/src/components/tag/compoundTag.test.tsx +++ b/packages/core/src/components/tag/compoundTag.test.tsx @@ -40,8 +40,8 @@ describe("", () => { ); const icons = container.querySelectorAll(`.${Classes.ICON}`); expect(icons).toHaveLength(2); - expect(icons[0]).toHaveAttribute("data-icon", "tick"); - expect(icons[1]).toHaveAttribute("data-icon", "airplane"); + expect(icons[0].querySelector("svg")).toHaveAttribute("data-icon", "tick"); + expect(icons[1].querySelector("svg")).toHaveAttribute("data-icon", "airplane"); }); it("prefers endIcon to rightIcon", () => { diff --git a/packages/core/src/components/tag/tag.test.tsx b/packages/core/src/components/tag/tag.test.tsx index 09c33773802..20cb22ca574 100644 --- a/packages/core/src/components/tag/tag.test.tsx +++ b/packages/core/src/components/tag/tag.test.tsx @@ -42,7 +42,7 @@ describe("", () => { expect(icons).toHaveLength(2); expect(icons[0].firstChild).toBeInstanceOf(SVGElement); expect(icons[0].firstChild).toHaveAttribute("data-icon", "tick"); - expect(icons[1]).toHaveAttribute("data-icon", "airplane"); + expect(icons[1].querySelector("svg")).toHaveAttribute("data-icon", "airplane"); }); it("prefers endIcon to rightIcon", () => { diff --git a/packages/core/src/components/tree/_tree.scss b/packages/core/src/components/tree/_tree.scss index 09a2b6e44f5..ce0c0ea4ec9 100644 --- a/packages/core/src/components/tree/_tree.scss +++ b/packages/core/src/components/tree/_tree.scss @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. @use "sass:map"; -@import "@blueprintjs/icons/lib/scss/variables"; @import "../../common/variables"; @import "../../common/variables-extended"; @import "../../common/mixins"; @@ -88,11 +87,6 @@ $tree-intent-icon-colors: ( &.#{$ns}-tree-node-caret-open { transform: rotate(90deg); } - - // CSS API support - &.#{$ns}-icon-standard::before { - content: map.get($blueprint-icon-codepoints, "chevron-right"); - } } .#{$ns}-tree-node-icon { diff --git a/packages/core/src/docs/variables.mdx b/packages/core/src/docs/variables.mdx index 2464e3cfef5..ca07e55771f 100644 --- a/packages/core/src/docs/variables.mdx +++ b/packages/core/src/docs/variables.mdx @@ -38,31 +38,6 @@ Most icons should be displayed using the `` component from `@blueprintjs/i `icon` and `iconName` prop APIs available on many Blueprint components. These APIs have the advantage of rendering SVGs directly onto the page. -In some cases you may use the icon fonts instead with the CSS API targeting selectors of the kind -`span.@ns-icon-*` (be sure to include `.@ns-icon-standard` or `.@ns-icon-large` as well). - -In rare cases, you may need direct access to the code points the icon font. Blueprint provides these -variables in Sass as a map and in TypeScript as an object (see the [Icons section](#icons) for the -full list of identifiers): - -```scss -@import "@blueprintjs/icons/lib/scss/variables"; - -.my-custom-icon { - content: map-get($blueprint-icon-codepoints, "tick"); -} -``` - -```ts -import { getIconContentString } from "@blueprintjs/icons"; - -document.querySelector(".my-custom-icon").style.content = getIconContentString("tick"); -``` - -Sass variables are also provided for the two icon font families and their pixel sizes: - -- `$blueprint-icons-16` -- `$blueprint-icons-20` - `$pt-icon-size-standard` - `$pt-icon-size-large` diff --git a/packages/core/src/isotest.test.ts b/packages/core/src/isotest.test.ts index b4cc2a350a0..d380a20794d 100644 --- a/packages/core/src/isotest.test.ts +++ b/packages/core/src/isotest.test.ts @@ -71,6 +71,7 @@ const config: Record = { skip: true, }, Icon: { + className: false, props: { icon: "build" }, }, KeyComboTag: { diff --git a/packages/datetime/src/_common.scss b/packages/datetime/src/_common.scss index b9116af2cd0..b3af90d26f1 100644 --- a/packages/datetime/src/_common.scss +++ b/packages/datetime/src/_common.scss @@ -3,7 +3,6 @@ @import "@blueprintjs/colors/lib/scss/colors"; @import "@blueprintjs/core/src/common/variables"; -@import "@blueprintjs/icons/lib/scss/variables"; $datepicker-padding: $pt-spacing !default; diff --git a/packages/docs-app/src/blueprint.mdx b/packages/docs-app/src/blueprint.mdx index 175e262505c..869d44b4983 100644 --- a/packages/docs-app/src/blueprint.mdx +++ b/packages/docs-app/src/blueprint.mdx @@ -56,7 +56,5 @@ The following example shows an `index.html` file; the same stylesheets should be ```html - - ``` diff --git a/packages/docs-app/src/getting-started.mdx b/packages/docs-app/src/getting-started.mdx index 8bed0a2a58b..a21d09ed301 100644 --- a/packages/docs-app/src/getting-started.mdx +++ b/packages/docs-app/src/getting-started.mdx @@ -39,16 +39,12 @@ The JavaScript components are stable and their APIs adhere to [semantic versioni // using Node.js-style package resolution in a CSS file: @import "normalize.css"; @import "@blueprintjs/core/lib/css/blueprint.css"; - // include blueprint-icons.css for icon font support - @import "@blueprintjs/icons/lib/css/blueprint-icons.css"; ``` ```ts // or using a ESM bundler which resolves CSS files as modules: import "normalize.css"; import "@blueprintjs/core/lib/css/blueprint.css"; - // include blueprint-icons.css for icon font support - import "@blueprintjs/icons/lib/css/blueprint-icons.css"; ``` ```html @@ -56,8 +52,6 @@ The JavaScript components are stable and their APIs adhere to [semantic versioni - - ``` diff --git a/packages/docs-app/src/index.scss b/packages/docs-app/src/index.scss index c007133aad0..392e260169e 100644 --- a/packages/docs-app/src/index.scss +++ b/packages/docs-app/src/index.scss @@ -10,7 +10,6 @@ Licensed under the Apache License, Version 2.0. // import these first because they're the base layer @import "@blueprintjs/core/lib/css/blueprint.css"; @import "@blueprintjs/datetime/lib/css/blueprint-datetime.css"; -@import "@blueprintjs/icons/lib/css/blueprint-icons.css"; @import "@blueprintjs/select/lib/css/blueprint-select.css"; @import "@blueprintjs/table/lib/css/table.css"; @import "@blueprintjs/labs/lib/css/blueprint-labs.css"; diff --git a/packages/docs-app/src/styles/_colors.scss b/packages/docs-app/src/styles/_colors.scss index 3adc1aefb96..10ac3c4f7c8 100644 --- a/packages/docs-app/src/styles/_colors.scss +++ b/packages/docs-app/src/styles/_colors.scss @@ -3,7 +3,6 @@ @use "sass:map"; @use "sass:math"; -@import "@blueprintjs/icons/lib/scss/variables"; $palette-spacing: $pt-spacing * 5; $palette-border-radius: $pt-spacing; @@ -12,7 +11,7 @@ $swatch-height: $pt-input-height-large; $swatch-hover-offset: -$pt-spacing; $swatch-hover-message: "Click to copy hex code"; -$swatch-copied-message: "#{map.get($blueprint-icon-codepoints, "tick")} Copied to clipboard"; +$swatch-copied-message: "✓ Copied to clipboard"; @function palette-width($columns) { @return math.div(102% - 2% * $columns, $columns); @@ -43,7 +42,7 @@ $swatch-copied-message: "#{map.get($blueprint-icon-codepoints, "tick")} Copied t /* stylelint-disable declaration-no-important */ &.docs-clipboard-copied .docs-clipboard-message::after { content: $swatch-copied-message !important; - font-family: $blueprint-icons-16-font, $pt-font-family-monospace, sans-serif; + font-family: $pt-font-family-monospace, sans-serif; } &.docs-clipboard-copied .docs-clipboard-message[data-copied-message]::after { diff --git a/packages/docs-app/src/styles/_examples.scss b/packages/docs-app/src/styles/_examples.scss index 6feaafc1c02..b5f52fbd19f 100644 --- a/packages/docs-app/src/styles/_examples.scss +++ b/packages/docs-app/src/styles/_examples.scss @@ -5,7 +5,6 @@ @import "@blueprintjs/core/src/common/react-transition"; @import "@blueprintjs/core/src/common/variables-extended"; @import "@blueprintjs/core/src/components/icon/icon-mixins"; -@import "@blueprintjs/icons/lib/scss/variables"; // Generate a selector for a page ID by reference @function page($ref, $comparator: "$=") { @@ -279,9 +278,9 @@ width: $node-size; &::before { - @include pt-icon($icon-size, 16); + @include pt-icon-sized($icon-size); color: $white; - content: map.get($blueprint-icon-codepoints, "envelope"); + content: "✉"; left: ($node-size - $icon-size) * 0.5 - $node-border-width; position: relative; top: ($node-size - $icon-size) * 0.5 - $node-border-width; diff --git a/packages/docs-theme/src/common/sandbox.ts b/packages/docs-theme/src/common/sandbox.ts index dcc605f2520..563b9d25410 100644 --- a/packages/docs-theme/src/common/sandbox.ts +++ b/packages/docs-theme/src/common/sandbox.ts @@ -32,7 +32,6 @@ const BLUEPRINT_PACKAGE_MAP: Record }, "@blueprintjs/icons": { package: "@blueprintjs/icons", - css: ["@blueprintjs/icons/lib/css/blueprint-icons.css"], }, "@blueprintjs/datetime": { package: "@blueprintjs/datetime", @@ -122,7 +121,6 @@ export function extractStylesheets(imports: string[]): string[] { // Always include core Blueprint styles stylesheets.add("@blueprintjs/core/lib/css/blueprint.css"); - stylesheets.add("@blueprintjs/icons/lib/css/blueprint-icons.css"); for (const importPath of imports) { if (BLUEPRINT_PACKAGE_MAP[importPath]?.css) { @@ -170,10 +168,7 @@ export const getHtml = ({ title }: { title: string }) => { }; export const getIndex = (stylesheets?: string[], isDark = false) => { - const defaultStylesheets = [ - "@blueprintjs/core/lib/css/blueprint.css", - "@blueprintjs/icons/lib/css/blueprint-icons.css", - ]; + const defaultStylesheets = ["@blueprintjs/core/lib/css/blueprint.css"]; const allStylesheets = stylesheets || defaultStylesheets; const cssImports = allStylesheets.map(css => `import "${css}";`).join("\n"); diff --git a/packages/docs-theme/src/styles/_content.scss b/packages/docs-theme/src/styles/_content.scss index e4e347fd325..1e4a5b7121d 100644 --- a/packages/docs-theme/src/styles/_content.scss +++ b/packages/docs-theme/src/styles/_content.scss @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. @import "@blueprintjs/core/src/components/icon/icon-mixins"; -@import "@blueprintjs/icons/lib/scss/variables"; @import "variables"; $heading-margin: $pt-spacing * 10; diff --git a/packages/docs-theme/src/styles/_props.scss b/packages/docs-theme/src/styles/_props.scss index 75b77c92a03..7e5ea79d5de 100644 --- a/packages/docs-theme/src/styles/_props.scss +++ b/packages/docs-theme/src/styles/_props.scss @@ -59,7 +59,7 @@ color: $red3; &::after { - content: map.get($blueprint-icon-codepoints, "small-cross"); + content: "×"; } } @@ -71,7 +71,7 @@ } &::after { - content: map.get($blueprint-icon-codepoints, "small-tick"); + content: "✓"; } } diff --git a/packages/icons/icons.json b/packages/icons/icons.json index a4ff9e2da24..5da2749e6a9 100644 --- a/packages/icons/icons.json +++ b/packages/icons/icons.json @@ -3,4935 +3,4230 @@ "displayName": "Blank", "iconName": "blank", "tags": "empty, placeholder, nothing", - "group": "miscellaneous", - "codepoint": 61747 + "group": "miscellaneous" }, { "displayName": "Style", "iconName": "style", "tags": "visual style, editor, paint, paintbrush, color, add color, compose, draw, canvas", - "group": "editor", - "codepoint": 62164 + "group": "editor" }, { "displayName": "Align: left", "iconName": "align-left", "tags": "text flow, alignment, justification, range, flush left, rows, document", - "group": "editor", - "codepoint": 61709 + "group": "editor" }, { "displayName": "Align: center", "iconName": "align-center", "tags": "text flow, alignment, justification, range, centered, text, lines", - "group": "editor", - "codepoint": 61707 + "group": "editor" }, { "displayName": "Align: right", "iconName": "align-right", "tags": "text flow, alignment, justification, range, flush right", - "group": "editor", - "codepoint": 61710 + "group": "editor" }, { "displayName": "Align: justify", "iconName": "align-justify", "tags": "text flow, alignment, justification, range, justified, lines, menu, stack, stack, settings, list", - "group": "editor", - "codepoint": 61708 + "group": "editor" }, { "displayName": "Bold", "iconName": "bold", "tags": "typography, text, font style, weight", - "group": "editor", - "codepoint": 61749 + "group": "editor" }, { "displayName": "Italic", "iconName": "italic", "tags": "typography, text, font style, cursive, italics, cursor", - "group": "editor", - "codepoint": 61962 + "group": "editor" }, { "displayName": "Underline", "iconName": "underline", "tags": "typography, text, font style, underscore, a", - "group": "editor", - "codepoint": 62209 + "group": "editor" }, { "displayName": "Search around", "iconName": "search-around", "tags": "search, exploration, information, area, graph, link, connection, dot, network, links, connections, connect", - "group": "action", - "codepoint": 62111 + "group": "action" }, { "displayName": "Remove from graph", "iconName": "graph-remove", "tags": "circle, remove, delete, clear, graph, unavailable, delete object, block", - "group": "action", - "codepoint": 61908 + "group": "action" }, { "displayName": "Group objects", "iconName": "group-objects", "tags": "group, alignment, organization, arrangement, classification, objects, toggle, toggle button, radio buttons, lights, poll, pig, radio button, switch, two dots, plug, snout, adapter", - "group": "action", - "codepoint": 61914 + "group": "action" }, { "displayName": "Merge into links", "iconName": "merge-links", "tags": "merge, combine, consolidate, jointment, links, switch, button, toggle, kayak, seating, battle droid, outlet, connector", - "group": "action", - "codepoint": 62018 + "group": "action" }, { "displayName": "Layout", "iconName": "layout", "tags": "presentation, arrangement, graph", - "group": "data", - "codepoint": 61989 + "group": "data" }, { "displayName": "Layout: auto", "iconName": "layout-auto", "tags": "layout, presentation, arrangement, auto, graph, grid, covid, link, network, snowflake, atom, connection", - "group": "data", - "codepoint": 61980 + "group": "data" }, { "displayName": "Layout: circle", "iconName": "layout-circle", "tags": "layout, presentation, arrangement, circle, graph, grid", - "group": "data", - "codepoint": 61982 + "group": "data" }, { "displayName": "Layout: hierarchy", "iconName": "layout-hierarchy", "tags": "layout, presentation, arrangement, hierarchy, order, graph, grid, network, links, connector, integration, lineage, tree", - "group": "data", - "codepoint": 61985 + "group": "data" }, { "displayName": "Layout: grid", "iconName": "layout-grid", "tags": "layout, presentation, arrangement, grid, graph, grid, module, app, arrange", - "group": "data", - "codepoint": 61983 + "group": "data" }, { "displayName": "Layout: group by", "iconName": "layout-group-by", "tags": "layout, presentation, arrangement, group by, graph, grid, scatter, dots", - "group": "data", - "codepoint": 61984 + "group": "data" }, { "displayName": "Layout: skew grid", "iconName": "layout-skew-grid", "tags": "layout, presentation, arrangement, skew, graph, grid, eight, dots, nodes, pot holes", - "group": "data", - "codepoint": 61987 + "group": "data" }, { "displayName": "Geosearch", "iconName": "geosearch", "tags": "search, exploration, topography, geography, location, area, magnifying glass, globe", - "group": "action", - "codepoint": 61897 + "group": "action" }, { "displayName": "Heatmap", "iconName": "heatmap", "tags": "hierarchy, matrix, heat map, bubbles, circles, graph, splash, blob, ideas", - "group": "data", - "codepoint": 61930 + "group": "data" }, { "displayName": "Drive time", "iconName": "drive-time", "tags": "car, automobile, vehicle, van, drive, ride, distance, navigation, directions", - "group": "interface", - "codepoint": 61842 + "group": "interface" }, { "displayName": "Select", "iconName": "select", "tags": "selection, arrow, cursor, area, range, draw, drag, click, open, expand, minimize, manipulate, check box, crop", - "group": "action", - "codepoint": 62116 + "group": "action" }, { "displayName": "Predictive analysis", "iconName": "predictive-analysis", - "tags": "analysis, investigation, search, study, test, brain, it\u2019s a brain, definitely a brain, could mean anything, but, yep, still a brain", - "group": "action", - "codepoint": 62076 + "tags": "analysis, investigation, search, study, test, brain, it’s a brain, definitely a brain, could mean anything, but, yep, still a brain", + "group": "action" }, { "displayName": "Layers", "iconName": "layers", "tags": "levels, stack, cards", - "group": "interface", - "codepoint": 61979 + "group": "interface" }, { "displayName": "Locate", "iconName": "locate", "tags": "target, location, destination, mark, map, area, zoom, identify, crosshairs", - "group": "action", - "codepoint": 62001 + "group": "action" }, { "displayName": "Bookmark", "iconName": "bookmark", "tags": "marker, holder, section, identifier, favorites, tag, save", - "group": "action", - "codepoint": 61751 + "group": "action" }, { "displayName": "Citation", "iconName": "citation", "tags": "quotation, marks, excerpt, quote, end quote, grammar, punctuation", - "group": "editor", - "codepoint": 61780 + "group": "editor" }, { "displayName": "Tag", "iconName": "tag", "tags": "label, badge, identification", - "group": "action", - "codepoint": 62175 + "group": "action" }, { "displayName": "Clipboard", "iconName": "clipboard", "tags": "notepad, notebook, copy, transfer, storage, note", - "group": "action", - "codepoint": 61783 + "group": "action" }, { "displayName": "Selection", "iconName": "selection", "tags": "collection, circle, ring", - "group": "action", - "codepoint": 62117 + "group": "action" }, { "displayName": "Events", "iconName": "timeline-events", "tags": "calendar, timeframe, agenda, diary, day, week, month, schedule", - "group": "interface", - "codepoint": 62195 + "group": "interface" }, { "displayName": "Line chart", "iconName": "timeline-line-chart", "tags": "graph, line, chart, line chart, upward trend, time series, line graph", - "group": "data", - "codepoint": 62196 + "group": "data" }, { "displayName": "Bar chart", "iconName": "timeline-bar-chart", "tags": "graph, bar, chart, histogram", - "group": "data", - "codepoint": 62194 + "group": "data" }, { "displayName": "Applications", "iconName": "applications", "tags": "application, browser, windows, platforms, pages, duplicate, copy, page, website", - "group": "interface", - "codepoint": 61721 + "group": "interface" }, { "displayName": "Projects", "iconName": "projects", "tags": "drawer, sections, files, open, directory, folder, filing", - "group": "interface", - "codepoint": 62080 + "group": "interface" }, { "displayName": "Changes", "iconName": "changes", "tags": "arrows, direction, switch, exchange, upload, download, sync", - "group": "action", - "codepoint": 61766 + "group": "action" }, { "displayName": "Notifications", "iconName": "notifications", "tags": "bell, alarm, notice, warning, alert", - "group": "interface", - "codepoint": 62046 + "group": "interface" }, { "displayName": "Lock", "iconName": "lock", "tags": "engage, connect, join, close", - "group": "action", - "codepoint": 62002 + "group": "action" }, { "displayName": "Unlock", "iconName": "unlock", "tags": "disengage, disconnect, separate, open, unlocked, plaintext, authenticated, open lock, unsafe, editing", - "group": "action", - "codepoint": 62213 + "group": "action" }, { "displayName": "User", "iconName": "user", "tags": "person, human, male, female, character, customer, individual, identity, profile", - "group": "interface", - "codepoint": 62218 + "group": "interface" }, { "displayName": "Search template", "iconName": "search-template", "tags": "search, text, magnifying glass", - "group": "action", - "codepoint": 62112 + "group": "action" }, { "displayName": "Inbox", "iconName": "inbox", "tags": "folder, mail, file, message, drawer, container", - "group": "file", - "codepoint": 61951 + "group": "file" }, { "displayName": "More", "iconName": "more", "tags": "dots, three, extra, new, options, ellipses, break, pause, suspense, see more, loading", - "group": "interface", - "codepoint": 62026 + "group": "interface" }, { "displayName": "Help", "iconName": "help", "tags": "question mark, aid, advice, circle, question", - "group": "action", - "codepoint": 61932 + "group": "action" }, { "displayName": "Calendar", "iconName": "calendar", "tags": "timeframe, agenda, diary, day, week, month", - "group": "interface", - "codepoint": 61758 + "group": "interface" }, { "displayName": "Media", "iconName": "media", "tags": "audio, video, picture, image, drawing, illustration, landscape, photo", - "group": "media", - "codepoint": 62013 + "group": "media" }, { "displayName": "Link", "iconName": "link", "tags": "connection, network, chain, attach", - "group": "interface", - "codepoint": 61997 + "group": "interface" }, { "displayName": "Share", "iconName": "share", "tags": "square, arrow, export, open, new page, link, new window, new tab", - "group": "action", - "codepoint": 62129 + "group": "action" }, { "displayName": "Download", "iconName": "download", "tags": "circle, arrow, down, downloading", - "group": "action", - "codepoint": 61834 + "group": "action" }, { "displayName": "Document", "iconName": "document", "tags": "paper, page, file", - "group": "file", - "codepoint": 61824 + "group": "file" }, { "displayName": "Properties", "iconName": "properties", "tags": "lines, dots, three, list", - "group": "interface", - "codepoint": 62081 + "group": "interface" }, { "displayName": "Import", "iconName": "import", "tags": "arrow, down, importing, download", - "group": "action", - "codepoint": 61946 + "group": "action" }, { "displayName": "Export", "iconName": "export", "tags": "arrow, up, exporting, output, move out, upload, send", - "group": "action", - "codepoint": 61856 + "group": "action" }, { "displayName": "Minimize", "iconName": "minimize", "tags": "arrows, decrease, smaller, combine, shrink, compress, together, crash, resize, collision, close, connect, merge, conflict", - "group": "action", - "codepoint": 62019 + "group": "action" }, { "displayName": "Maximize", "iconName": "maximize", "tags": "arrows, increase, bigger, expand, opposite, diagonal, bidirectional", - "group": "action", - "codepoint": 62012 + "group": "action" }, { "displayName": "Tick", "iconName": "tick", "tags": "mark, sign, ok, approved, success, check, done, complete, confirm", - "group": "action", - "codepoint": 62191 + "group": "action" }, { "displayName": "Cross", "iconName": "cross", "tags": "cross mark, fail, delete, no, close, remove, not, available, unavailable, wrong, incorrect, cancel", - "group": "action", - "codepoint": 61801 + "group": "action" }, { "displayName": "Plus", "iconName": "plus", "tags": "sign, add, maximize, zoom in, append, enlarge, increase", - "group": "action", - "codepoint": 62073 + "group": "action" }, { "displayName": "Minus", "iconName": "minus", "tags": "sign, remove, minimize, zoom out, line, dash, space, hyphen, emdash, horizonal thin line", - "group": "action", - "codepoint": 62020 + "group": "action" }, { "displayName": "Arrow: left", "iconName": "arrow-left", "tags": "arrow, direction, left, backspace, back", - "group": "interface", - "codepoint": 61733 + "group": "interface" }, { "displayName": "Arrow: right", "iconName": "arrow-right", "tags": "arrow, direction, right, next", - "group": "interface", - "codepoint": 61734 + "group": "interface" }, { "displayName": "Exchange", "iconName": "exchange", "tags": "arrows, direction, network, swap, transfer, transaction, repeat, shuffle, cycle", - "group": "action", - "codepoint": 61853 + "group": "action" }, { "displayName": "Comparison", "iconName": "comparison", "tags": "analogy, layout, contrast, compare, check list, split", - "group": "action", - "codepoint": 61793 + "group": "action" }, { "displayName": "List", "iconName": "list", "tags": "agenda, four lines, table, rows, document, writing, block text, horizontal bars", - "group": "table", - "codepoint": 62000 + "group": "table" }, { "displayName": "Filter", "iconName": "filter", "tags": "filtering, funnel, tube, pipe", - "group": "action", - "codepoint": 61869 + "group": "action" }, { "displayName": "Confirm", "iconName": "confirm", "tags": "circle, tick, confirmation, acceptance, approval, authorization, submitted, done", - "group": "action", - "codepoint": 61796 + "group": "action" }, { "displayName": "Fork", "iconName": "fork", "tags": "divide, split, break, arrows, direction, branch", - "group": "action", - "codepoint": 61888 + "group": "action" }, { "displayName": "Trash", "iconName": "trash", "tags": "bin, rubbish, junk, remove, delete, garbage", - "group": "action", - "codepoint": 62202 + "group": "action" }, { "displayName": "Person", "iconName": "person", "tags": "human, male, female, character, customer, individual", - "group": "interface", - "codepoint": 62066 + "group": "interface" }, { "displayName": "People", "iconName": "people", "tags": "humans, males, females, characters, customers, individuals", - "group": "interface", - "codepoint": 62064 + "group": "interface" }, { "displayName": "Add", "iconName": "add", "tags": "circle, plus, symbol, join, medical, include, add item, new item", - "group": "action", - "codepoint": 61705 + "group": "action" }, { "displayName": "Remove", "iconName": "remove", "tags": "circle, minus, symbol, do not enter, negative, invalid, off, stop, blocked", - "group": "action", - "codepoint": 62096 + "group": "action" }, { "displayName": "Geolocation", "iconName": "geolocation", "tags": "geography, location, position, map, direction, arrow, cursor, pointer, mouse", - "group": "interface", - "codepoint": 61896 + "group": "interface" }, { "displayName": "Zoom in", "iconName": "zoom-in", "tags": "search, magnifying glass, plus, find, new, zoom, magnify, enlarge", - "group": "action", - "codepoint": 62238 + "group": "action" }, { "displayName": "Zoom out", "iconName": "zoom-out", "tags": "search, magnifying glass, minus, remove", - "group": "action", - "codepoint": 62239 + "group": "action" }, { "displayName": "Refresh", "iconName": "refresh", "tags": "circle, arrows, rotation, redo, re-run", - "group": "action", - "codepoint": 62089 + "group": "action" }, { "displayName": "Delete", "iconName": "delete", "tags": "circle, remove, cross, close, no, dead end, cancel", - "group": "action", - "codepoint": 61813 + "group": "action" }, { "displayName": "Cog", "iconName": "cog", "tags": "settings, circle, wheel, mechanical, tools, gear", - "group": "interface", - "codepoint": 61789 + "group": "interface" }, { "displayName": "Flag", "iconName": "flag", "tags": "map, position, country, nationality, pole", - "group": "interface", - "codepoint": 61870 + "group": "interface" }, { "displayName": "Pin", "iconName": "pin", "tags": "map, position, safety pin, attach, thubtack, sharp, push pin, thumb tack", - "group": "action", - "codepoint": 62069 + "group": "action" }, { "displayName": "Warning sign", "iconName": "warning-sign", "tags": "notification, warning, triangle, exclamation mark, sign, alert, caution", - "group": "interface", - "codepoint": 62229 + "group": "interface" }, { "displayName": "Error", "iconName": "error", "tags": "notification, failure, circle, exclamation mark, sign, warning, attention", - "group": "interface", - "codepoint": 61851 + "group": "interface" }, { "displayName": "Info sign", "iconName": "info-sign", "tags": "notification, information, circle, message, sign, info, tooltip", - "group": "interface", - "codepoint": 61952 + "group": "interface" }, { "displayName": "Credit card", "iconName": "credit-card", "tags": "payment, bank, transaction", - "group": "action", - "codepoint": 61800 + "group": "action" }, { "displayName": "Edit", "iconName": "edit", "tags": "annotate, pen, modify, draw, signature", - "group": "action", - "codepoint": 61844 + "group": "action" }, { "displayName": "History", "iconName": "history", "tags": "past, reverse, circle, arrow, out of date, refresh, clock, undo, rollback, rewind, revert, roll back, reverse time, counter", - "group": "action", - "codepoint": 61936 + "group": "action" }, { "displayName": "Search", "iconName": "search", "tags": "inspection, exploration, magnifying glass, find, help", - "group": "action", - "codepoint": 62114 + "group": "action" }, { "displayName": "Logout", "iconName": "log-out", "tags": "arrow, leave, next, exit, sign out, auth, authentication", - "group": "action", - "codepoint": 62004 + "group": "action" }, { "displayName": "Star", "iconName": "star", "tags": "shape, pin, mark, pro, new, favorite", - "group": "interface", - "codepoint": 62157 + "group": "interface" }, { "displayName": "Star: empty", "iconName": "star-empty", "tags": "shape, unpin, mark, star, favorite, like, goal, accomplishment", - "group": "interface", - "codepoint": 62156 + "group": "interface" }, { "displayName": "Sort: alphabetical", "iconName": "sort-alphabetical", "tags": "ascending, array, arrange, sort, alphabetize, alphabetical, string, compare", - "group": "action", - "codepoint": 62146 + "group": "action" }, { "displayName": "Sort: numerical", "iconName": "sort-numerical", "tags": "ascending, array, arrange, sort, numbers, range", - "group": "action", - "codepoint": 62150 + "group": "action" }, { "displayName": "Sort", "iconName": "sort", "tags": "ascending, array, arrange, sort, list, descending, scroll down, menu, scroll, decrease", - "group": "action", - "codepoint": 62151 + "group": "action" }, { "displayName": "Folder: opened", "iconName": "folder-open", "tags": "file, portfolio, case, files, folder", - "group": "file", - "codepoint": 61882 + "group": "file" }, { "displayName": "Folder: closed", "iconName": "folder-close", "tags": "file, portfolio, case, folder, directory, files", - "group": "file", - "codepoint": 61880 + "group": "file" }, { "displayName": "Folder: shared", "iconName": "folder-shared", "tags": "file, portfolio, case, email, upload, save, export, copy, folder", - "group": "file", - "codepoint": 61884 + "group": "file" }, { "displayName": "Caret: up", "iconName": "caret-up", "tags": "direction, order, up, chevron, triangle, arrow", - "group": "interface", - "codepoint": 61763 + "group": "interface" }, { "displayName": "Caret: right", "iconName": "caret-right", "tags": "direction, order, right, triangle, arrow", - "group": "interface", - "codepoint": 61762 + "group": "interface" }, { "displayName": "Caret: down", "iconName": "caret-down", "tags": "direction, order, down, triangle, arrow", - "group": "interface", - "codepoint": 61760 + "group": "interface" }, { "displayName": "Caret: left", "iconName": "caret-left", "tags": "direction, order, left, back, rewind, tab back", - "group": "interface", - "codepoint": 61761 + "group": "interface" }, { "displayName": "Menu: opened", "iconName": "menu-open", "tags": "show, navigation, menu, open, right, expand, indent", - "group": "interface", - "codepoint": 62015 + "group": "interface" }, { "displayName": "Menu: closed", "iconName": "menu-closed", "tags": "hide, navigation, list, left, dedent", - "group": "interface", - "codepoint": 62014 + "group": "interface" }, { "displayName": "Feed", "iconName": "feed", "tags": "rss, wifi, signal, radio, network", - "group": "interface", - "codepoint": 61863 + "group": "interface" }, { "displayName": "Two columns", "iconName": "two-columns", "tags": "layout, columns, switch, change, two, forward, shift, open sidebar, move sidebar, sidebar", - "group": "action", - "codepoint": 62207 + "group": "action" }, { "displayName": "One column", "iconName": "one-column", "tags": "layout, columns, switch, change, one, left, exit, collapse", - "group": "action", - "codepoint": 62052 + "group": "action" }, { "displayName": "Dot", "iconName": "dot", "tags": "point, circle, small", - "group": "miscellaneous", - "codepoint": 61826 + "group": "miscellaneous" }, { "displayName": "Property", "iconName": "property", "tags": "list, order, menu, filter, selection, selected item, highlighted list, focused element", - "group": "interface", - "codepoint": 62082 + "group": "interface" }, { "displayName": "Time", "iconName": "time", "tags": "clock, day, hours, minutes, seconds", - "group": "interface", - "codepoint": 62192 + "group": "interface" }, { "displayName": "Disable", "iconName": "disable", "tags": "off, circle, remove, do not enter, no, anti, cancel, exit, no selection", - "group": "action", - "codepoint": 61821 + "group": "action" }, { "displayName": "Unpin", "iconName": "unpin", "tags": "map, position, safety pin, detach, version, pushpin, pin, thumbtack", - "group": "action", - "codepoint": 62214 + "group": "action" }, { "displayName": "Flows", "iconName": "flows", "tags": "arrows, direction, links, proceed, link, leads to, flow, connection, processing, moving to, connect, pipeline", - "group": "data", - "codepoint": 61879 + "group": "data" }, { "displayName": "New text box", "iconName": "new-text-box", "tags": "text box, edit, new, create, new font", - "group": "action", - "codepoint": 62041 + "group": "action" }, { "displayName": "New link", "iconName": "new-link", "tags": "create, add, plus, link, chain, insert", - "group": "action", - "codepoint": 62037 + "group": "action" }, { "displayName": "New object", "iconName": "new-object", "tags": "create, add, plus, objects, circle, element, entity", - "group": "action", - "codepoint": 62038 + "group": "action" }, { "displayName": "Path search", "iconName": "path-search", "tags": "map, magnifying glass, position, location, locate", - "group": "action", - "codepoint": 62061 + "group": "action" }, { "displayName": "Automatic updates", "iconName": "automatic-updates", "tags": "circle, arrows, tick, amends, updates, recheck, reverify, refresh check, complete cycle, complete process, done, refresh, complete, checkpoint, saved state, backup, sync complete, check complete, ci check, passed", - "group": "action", - "codepoint": 61741 + "group": "action" }, { "displayName": "Page layout", "iconName": "page-layout", "tags": "browser, table, design, columns, module, application, layout, dashboard, web page sections, windows", - "group": "table", - "codepoint": 62056 + "group": "table" }, { "displayName": "Code", "iconName": "code", "tags": "markup, language, tag", - "group": "action", - "codepoint": 61788 + "group": "action" }, { "displayName": "Map", "iconName": "map", "tags": "location, position, geography, world", - "group": "interface", - "codepoint": 62011 + "group": "interface" }, { "displayName": "Search text", "iconName": "search-text", "tags": "magnifying glass, exploration, see, zoom, finder, examine", - "group": "action", - "codepoint": 62113 + "group": "action" }, { "displayName": "Envelope", "iconName": "envelope", "tags": "post, mail, send, email", - "group": "interface", - "codepoint": 61848 + "group": "interface" }, { "displayName": "Paperclip", "iconName": "paperclip", "tags": "attachment, add, paper clip, attach, clippy", - "group": "action", - "codepoint": 62059 + "group": "action" }, { "displayName": "Label", "iconName": "label", "tags": "text, tag, ticket, file, document, mail, print, paper", - "group": "interface", - "codepoint": 61976 + "group": "interface" }, { "displayName": "Globe", "iconName": "globe", "tags": "planet, earth, map, location, geography, world", - "group": "miscellaneous", - "codepoint": 61907 + "group": "miscellaneous" }, { "displayName": "Home", "iconName": "home", "tags": "house, building, destination", - "group": "miscellaneous", - "codepoint": 61937 + "group": "miscellaneous" }, { "displayName": "Table", "iconName": "th", "tags": "index, rows, columns, agenda, list, spreadsheet, table, sheet, entry", - "group": "table", - "codepoint": 62186 + "group": "table" }, { "displayName": "Table: list", "iconName": "th-list", "tags": "index, rows, list, order, series, table", - "group": "table", - "codepoint": 62185 + "group": "table" }, { "displayName": "Table: derived", "iconName": "th-derived", "tags": "get, obtain, take, acquire, index, rows, columns, list, table, row, add to dataset, go to dataset, provenance", - "group": "table", - "codepoint": 62182 + "group": "table" }, { "displayName": "Circle", "iconName": "circle", "tags": "radial, empty, area, radius, selection", - "group": "action", - "codepoint": 61779 + "group": "action" }, { "displayName": "Draw", "iconName": "draw", "tags": "selection, area, highlight, sketch, ink, write, fountain pen, edit, pointer, dropper, pen", - "group": "action", - "codepoint": 61837 + "group": "action" }, { "displayName": "Insert", "iconName": "insert", "tags": "square, plus, add, embed, include, inject", - "group": "action", - "codepoint": 61956 + "group": "action" }, { "displayName": "Helper management", "iconName": "helper-management", "tags": "square, widget, graph, chart, data, document, blocks, spreadsheet, format, right bottom justify, loading, snake", - "group": "interface", - "codepoint": 61933 + "group": "interface" }, { "displayName": "Send to", "iconName": "send-to", "tags": "circle, export, arrow, outside, external, pop out, open object, open item", - "group": "action", - "codepoint": 62121 + "group": "action" }, { "displayName": "Eye", "iconName": "eye-open", "tags": "show, visible, clear, view, vision, see, review, check", - "group": "interface", - "codepoint": 61859 + "group": "interface" }, { "displayName": "Folder: shared open", "iconName": "folder-shared-open", "tags": "file, portfolio, case, open, browse, folder, export, open folder", - "group": "file", - "codepoint": 61883 + "group": "file" }, { "displayName": "Social media", "iconName": "social-media", "tags": "circle, rotate, share, harmony, tadpoles, circuit, in progress, run, loop, cycle", - "group": "action", - "codepoint": 62144 + "group": "action" }, { "displayName": "Arrow: up", "iconName": "arrow-up", "tags": "direction, north, upwards", - "group": "interface", - "codepoint": 61737 + "group": "interface" }, { "displayName": "Arrow: down", "iconName": "arrow-down", "tags": "direction, south, see below, descend, scroll down", - "group": "interface", - "codepoint": 61732 + "group": "interface" }, { "displayName": "Arrows: horizontal", "iconName": "arrows-horizontal", "tags": "direction, level, bidirectional, left-right, resize, move horizontally, swap, switch, link, reaction, alternate", - "group": "interface", - "codepoint": 61738 + "group": "interface" }, { "displayName": "Arrows: vertical", "iconName": "arrows-vertical", "tags": "direction, level, two way, up down, drag up or down, expand, collapse, open", - "group": "interface", - "codepoint": 61739 + "group": "interface" }, { "displayName": "Resolve", "iconName": "resolve", "tags": "circles, divide, split, intersection, overlap, venn diagram", - "group": "action", - "codepoint": 62099 + "group": "action" }, { "displayName": "Graph", "iconName": "graph", "tags": "diagram, chemistry, molecule, directed graph, linked entities, relational elements", - "group": "data", - "codepoint": 61909 + "group": "data" }, { "displayName": "Briefcase", "iconName": "briefcase", "tags": "suitcase, business, case, baggage, work, kit, toolbox", - "group": "miscellaneous", - "codepoint": 61753 + "group": "miscellaneous" }, { "displayName": "Dollar", "iconName": "dollar", "tags": "currency, money, sign, usd", - "group": "miscellaneous", - "codepoint": 61825 + "group": "miscellaneous" }, { "displayName": "Ninja", "iconName": "ninja", "tags": "star, fighter, symbol, vortex, shuriken, throwing star, ninja star", - "group": "miscellaneous", - "codepoint": 62042 + "group": "miscellaneous" }, { "displayName": "Delta", "iconName": "delta", "tags": "symbol, triangle, diff, change, formula, greek, alphabet", - "group": "miscellaneous", - "codepoint": 61814 + "group": "miscellaneous" }, { "displayName": "Barcode", "iconName": "barcode", "tags": "product, scan, identifier, code", - "group": "miscellaneous", - "codepoint": 61746 + "group": "miscellaneous" }, { "displayName": "Torch", "iconName": "torch", "tags": "light, flashlight, tool, hint, search, find", - "group": "miscellaneous", - "codepoint": 62198 + "group": "miscellaneous" }, { "displayName": "Widget", "iconName": "widget", "tags": "square, corners, text box, fence, highlight area, select area, draw rectangle, grid, connection", - "group": "interface", - "codepoint": 62235 + "group": "interface" }, { "displayName": "Unresolve", "iconName": "unresolve", "tags": "split, divide, disconnect, separate, sets, subtraction, pancakes, union, group, join, venn diagram, overlap, circles", - "group": "action", - "codepoint": 62215 + "group": "action" }, { "displayName": "Offline", "iconName": "offline", "tags": "circle, lightning, disconnected, down, flash, quick, charger, download, electricity, power, voltage, lightning bolt, charging", - "group": "interface", - "codepoint": 62050 + "group": "interface" }, { "displayName": "Zoom to fit", "iconName": "zoom-to-fit", "tags": "fit, scale, resize, adjust, expand, zoom out, snapshot", - "group": "action", - "codepoint": 62240 + "group": "action" }, { "displayName": "Add to artifact", "iconName": "add-to-artifact", "tags": "list, plus, text, add, create, add item, add to list, add section, add page", - "group": "action", - "codepoint": 61703 + "group": "action" }, { "displayName": "Map marker", "iconName": "map-marker", "tags": "pin, map, location, position, geography, world, point", - "group": "interface", - "codepoint": 62010 + "group": "interface" }, { "displayName": "Chart", "iconName": "chart", "tags": "arrow, increase, up, line, bar, graph, trend, growth, increasing trend, trendline, upward", - "group": "data", - "codepoint": 61767 + "group": "data" }, { "displayName": "Control", "iconName": "control", "tags": "squares, layout, filled layout, filled module, module, page, dashboard, workshop, modular, application, window, app, tile, tessellate, task view", - "group": "interface", - "codepoint": 61799 + "group": "interface" }, { "displayName": "Multi select", "iconName": "multi-select", "tags": "layers, selection, list, files, multiple windows, tabs", - "group": "interface", - "codepoint": 62030 + "group": "interface" }, { "displayName": "Direction: left", "iconName": "direction-left", "tags": "pointer, west, direction, arrow left, back, pointer left, aircraft, plane", - "group": "interface", - "codepoint": 61819 + "group": "interface" }, { "displayName": "Direction: right", "iconName": "direction-right", "tags": "pointer, east, arrow, bullet, tag, send, location, aircraft, plane", - "group": "interface", - "codepoint": 61820 + "group": "interface" }, { "displayName": "Database", "iconName": "database", "tags": "stack, storage, can, data, source, dataset, data source", - "group": "data", - "codepoint": 61812 + "group": "data" }, { "displayName": "Pie chart", "iconName": "pie-chart", "tags": "circle, part, section, chart, visualization", - "group": "data", - "codepoint": 62068 + "group": "data" }, { "displayName": "Full circle", "iconName": "full-circle", "tags": "dot, point, orb, filled", - "group": "miscellaneous", - "codepoint": 61890 + "group": "miscellaneous" }, { "displayName": "Square", "iconName": "square", "tags": "empty, outline", - "group": "miscellaneous", - "codepoint": 62153 + "group": "miscellaneous" }, { "displayName": "Print", "iconName": "print", "tags": "printer, paper, send to printer", - "group": "action", - "codepoint": 62079 + "group": "action" }, { "displayName": "Presentation", "iconName": "presentation", "tags": "display, present, demo, show, canvas, dashboard", - "group": "interface", - "codepoint": 62078 + "group": "interface" }, { "displayName": "Ungroup objects", "iconName": "ungroup-objects", "tags": "split, divide, disconnect, separate, dots, more options, options", - "group": "action", - "codepoint": 62211 + "group": "action" }, { "displayName": "Chat", "iconName": "chat", "tags": "speech, conversation, communication, talk, comments, dialogue, comment", - "group": "action", - "codepoint": 61768 + "group": "action" }, { "displayName": "Comment", "iconName": "comment", "tags": "statement, discussion, opinion, view, chat, message, typing", - "group": "action", - "codepoint": 61792 + "group": "action" }, { "displayName": "Circle arrow: right", "iconName": "circle-arrow-right", "tags": "direction, east, go, next, submit, right arrow", - "group": "interface", - "codepoint": 61777 + "group": "interface" }, { "displayName": "Circle arrow: left", "iconName": "circle-arrow-left", "tags": "direction, west, return, backspace, back, go left", - "group": "interface", - "codepoint": 61776 + "group": "interface" }, { "displayName": "Circle arrow: up", "iconName": "circle-arrow-up", "tags": "direction, north, upload, upward, above, push, promote, publish", - "group": "interface", - "codepoint": 61778 + "group": "interface" }, { "displayName": "Circle arrow: down", "iconName": "circle-arrow-down", "tags": "direction, south, below, download, save to device, keep offline, next", - "group": "interface", - "codepoint": 61775 + "group": "interface" }, { "displayName": "Upload", "iconName": "upload", "tags": "arrow, circle, up, transfer", - "group": "action", - "codepoint": 62217 + "group": "action" }, { "displayName": "Asterisk", "iconName": "asterisk", "tags": "note, symbol, starred, marked, star", - "group": "miscellaneous", - "codepoint": 61740 + "group": "miscellaneous" }, { "displayName": "Cloud", "iconName": "cloud", "tags": "file, storage, weather, sky", - "group": "file", - "codepoint": 61786 + "group": "file" }, { "displayName": "Cloud: download", "iconName": "cloud-download", "tags": "file, storage, transfer", - "group": "file", - "codepoint": 61784 + "group": "file" }, { "displayName": "Cloud: upload", "iconName": "cloud-upload", "tags": "file, storage, transfer, export", - "group": "file", - "codepoint": 61785 + "group": "file" }, { "displayName": "Repeat", "iconName": "repeat", "tags": "circle, arrow, reload, cycle, refresh, reuse, retry, reset, new, start again", - "group": "action", - "codepoint": 62097 + "group": "action" }, { "displayName": "Move", "iconName": "move", "tags": "arrows, directions, position, location, drag, cursor", - "group": "action", - "codepoint": 62028 + "group": "action" }, { "displayName": "Chevron: left", "iconName": "chevron-left", "tags": "arrow, direction, open angle bracket, open tag", - "group": "interface", - "codepoint": 61772 + "group": "interface" }, { "displayName": "Chevron: right", "iconName": "chevron-right", "tags": "arrow, direction, next, forward, close angle bracket, close tag", - "group": "interface", - "codepoint": 61773 + "group": "interface" }, { "displayName": "Chevron: up", "iconName": "chevron-up", "tags": "arrow, direction, collapse, see here, exponent", - "group": "interface", - "codepoint": 61774 + "group": "interface" }, { "displayName": "Chevron: down", "iconName": "chevron-down", "tags": "arrow, direction, below", - "group": "interface", - "codepoint": 61770 + "group": "interface" }, { "displayName": "Random", "iconName": "random", "tags": "arrows, aim, direction, change, shuffle, mix, swap", - "group": "interface", - "codepoint": 62086 + "group": "interface" }, { "displayName": "Fullscreen", "iconName": "fullscreen", "tags": "size, arrows, increase, proportion, width, height, full screen, expand", - "group": "media", - "codepoint": 61892 + "group": "media" }, { "displayName": "Login", "iconName": "log-in", "tags": "arrow, sign in, auth, authentication", - "group": "action", - "codepoint": 62003 + "group": "action" }, { "displayName": "Heart", "iconName": "heart", "tags": "love, like, organ, human, feelings", - "group": "miscellaneous", - "codepoint": 61928 + "group": "miscellaneous" }, { "displayName": "Office", "iconName": "office", "tags": "building, business, location, street", - "group": "miscellaneous", - "codepoint": 62049 + "group": "miscellaneous" }, { "displayName": "Duplicate", "iconName": "duplicate", "tags": "copy, square, two, copies, stack, photocopy, boxes, documents, multiple pages, square stack, depth order", - "group": "action", - "codepoint": 61843 + "group": "action" }, { "displayName": "Ban circle", "iconName": "ban-circle", "tags": "circle, refusal, do not enter, inaccessible, screw head, flathead, slow, null, subtract, minus, delete", - "group": "action", - "codepoint": 61744 + "group": "action" }, { "displayName": "Camera", "iconName": "camera", "tags": "photograph, picture, video, photo", - "group": "media", - "codepoint": 61759 + "group": "media" }, { "displayName": "Mobile video", "iconName": "mobile-video", "tags": "film, broadcast, television, video, recording, video call, camera, camcorder", - "group": "media", - "codepoint": 62022 + "group": "media" }, { "displayName": "Video", "iconName": "video", "tags": "film, broadcast, television, play, youtube", - "group": "media", - "codepoint": 62223 + "group": "media" }, { "displayName": "Film", "iconName": "film", "tags": "movie, cinema, theatre, scroll, ladder", - "group": "media", - "codepoint": 61864 + "group": "media" }, { "displayName": "Settings", "iconName": "settings", "tags": "controls, knobs", - "group": "media", - "codepoint": 62127 + "group": "media" }, { "displayName": "Volume: off", "iconName": "volume-off", "tags": "audio, video, speaker, music, sound, low, mute, silence", - "group": "media", - "codepoint": 62226 + "group": "media" }, { "displayName": "Volume: down", "iconName": "volume-down", "tags": "audio, video, speaker, music, sound, quiet, lower", - "group": "media", - "codepoint": 62225 + "group": "media" }, { "displayName": "Volume: up", "iconName": "volume-up", "tags": "audio, video, speaker, music, sound, high, on, increase, loud", - "group": "media", - "codepoint": 62227 + "group": "media" }, { "displayName": "Music", "iconName": "music", "tags": "audio, video, note, sound", - "group": "media", - "codepoint": 62031 + "group": "media" }, { "displayName": "Step backward", "iconName": "step-backward", "tags": "player, media, controls, digital, analogue, film, audio, video, rewind, replay, back up, left, from start, backup, return", - "group": "media", - "codepoint": 62158 + "group": "media" }, { "displayName": "Fast backward", "iconName": "fast-backward", "tags": "player, media, controls, digital, analogue, film, audio, video, rewind, back, reverse", - "group": "media", - "codepoint": 61860 + "group": "media" }, { "displayName": "Pause", "iconName": "pause", "tags": "player, media, controls, digital, analogue, film, audio, video", - "group": "media", - "codepoint": 62063 + "group": "media" }, { "displayName": "Stop", "iconName": "stop", "tags": "player, media, controls, digital, analogue, film, audio, video, box, square, error, not possible, blocked, shape, filled", - "group": "media", - "codepoint": 62161 + "group": "media" }, { "displayName": "Play", "iconName": "play", "tags": "player, media, controls, digital, analogue, film, audio, video, triangle, right triangle, start", - "group": "media", - "codepoint": 62072 + "group": "media" }, { "displayName": "Fast forward", "iconName": "fast-forward", "tags": "player, media, controls, digital, analogue, film, audio, video, ff, forward, double arrow", - "group": "media", - "codepoint": 61861 + "group": "media" }, { "displayName": "Step forward", "iconName": "step-forward", "tags": "player, media, controls, digital, analogue, film, audio, video, play, fast forward, next, skip ahead, skip", - "group": "media", - "codepoint": 62160 + "group": "media" }, { "displayName": "Eject", "iconName": "eject", "tags": "player, media, controls, digital, analogue, film, audio, video", - "group": "media", - "codepoint": 61845 + "group": "media" }, { "displayName": "Record", "iconName": "record", "tags": "player, media, controls, digital, analogue, film, audio, video, circle, dot, filled circle", - "group": "media", - "codepoint": 62087 + "group": "media" }, { "displayName": "Desktop", "iconName": "desktop", "tags": "screen, monitor, display, computer, computer screen", - "group": "media", - "codepoint": 61816 + "group": "media" }, { "displayName": "Phone", "iconName": "phone", "tags": "telephone, call, ring", - "group": "media", - "codepoint": 62067 + "group": "media" }, { "displayName": "Lightbulb", "iconName": "lightbulb", "tags": "idea, glow, lamp, light", - "group": "miscellaneous", - "codepoint": 61995 + "group": "miscellaneous" }, { "displayName": "Glass", "iconName": "glass", "tags": "glassware, drink, cheers, cup, wine, chalice, goblet", - "group": "miscellaneous", - "codepoint": 61905 + "group": "miscellaneous" }, { "displayName": "Tint", "iconName": "tint", "tags": "drop, color, coloration, hue, tear, rain, water, rain drop, droplet", - "group": "media", - "codepoint": 62197 + "group": "media" }, { "displayName": "Flash", "iconName": "flash", "tags": "light, contrast, photograph, picture, sun, star, illuminate, examine, brighten, brightness, exposure", - "group": "media", - "codepoint": 61872 + "group": "media" }, { "displayName": "Font", "iconName": "font", "tags": "scale, typography, size, letter, alphabet", - "group": "editor", - "codepoint": 61887 + "group": "editor" }, { "displayName": "Header", "iconName": "header", "tags": "typography, section, layout, intersections, letter h, track segment, hotel, helicopter, helipad, capital h, headline", - "group": "editor", - "codepoint": 61925 + "group": "editor" }, { "displayName": "Saved", "iconName": "saved", "tags": "document, check mark, tick, approval, checks complete, checklist, approved, verified, confirm, valid, save, finished, confirmation, validation, checked, approved, done, ready, completed, certificate", - "group": "file", - "codepoint": 62109 + "group": "file" }, { "displayName": "Floppy disk", "iconName": "floppy-disk", "tags": "save, disk, save as, disk drive, disc drive", - "group": "interface", - "codepoint": 61873 + "group": "interface" }, { "displayName": "Book", "iconName": "book", "tags": "pages, album, brochure, manual, bookmark, notebook, journal, documentation, reading, instructions, file, cathedral", - "group": "miscellaneous", - "codepoint": 61750 + "group": "miscellaneous" }, { "displayName": "Hand: right", "iconName": "hand-right", "tags": "gesture, direction, point, pointer, pointing, finger, tip, attention", - "group": "interface", - "codepoint": 61918 + "group": "interface" }, { "displayName": "Hand: up", "iconName": "hand-up", "tags": "gesture, direction, point, pointer, pointing, finger, forefinger, click, cursor", - "group": "interface", - "codepoint": 61919 + "group": "interface" }, { "displayName": "Hand: down", "iconName": "hand-down", "tags": "gesture, direction, point, pointer, pointing, finger, select", - "group": "interface", - "codepoint": 61916 + "group": "interface" }, { "displayName": "Hand: left", "iconName": "hand-left", "tags": "gesture, direction, point, pointer, pointing, finger, this, here, click", - "group": "interface", - "codepoint": 61917 + "group": "interface" }, { "displayName": "Thumbs: up", "iconName": "thumbs-up", "tags": "hand, like, ok, good, okay", - "group": "interface", - "codepoint": 62189 + "group": "interface" }, { "displayName": "Thumbs: down", "iconName": "thumbs-down", "tags": "hand, dislike, bad", - "group": "interface", - "codepoint": 62188 + "group": "interface" }, { "displayName": "Box", "iconName": "box", "tags": "folder, carton, pack, archive, file, inbox, package, attachment", - "group": "file", - "codepoint": 61752 + "group": "file" }, { "displayName": "Compressed", "iconName": "compressed", "tags": "folder, carton, pack, shrink, wrap, shorten, download, drop", - "group": "file", - "codepoint": 61795 + "group": "file" }, { "displayName": "Shopping cart", "iconName": "shopping-cart", "tags": "trolley, mall, online, store, business", - "group": "miscellaneous", - "codepoint": 62134 + "group": "miscellaneous" }, { "displayName": "Shop", "iconName": "shop", "tags": "store, business, shopping", - "group": "miscellaneous", - "codepoint": 62133 + "group": "miscellaneous" }, { "displayName": "Layout: linear", "iconName": "layout-linear", "tags": "dot, three, dots, connection, line, pipeline, line of circles, beads, more, daisy, connect, graph", - "group": "data", - "codepoint": 61986 + "group": "data" }, { "displayName": "Undo", "iconName": "undo", "tags": "back, cancel, reverse, revoke, rollback, revert", - "group": "action", - "codepoint": 62210 + "group": "action" }, { "displayName": "Redo", "iconName": "redo", "tags": "forward, push, undo, revert, back, reverse", - "group": "action", - "codepoint": 62088 + "group": "action" }, { "displayName": "Code block", "iconName": "code-block", "tags": "code, markup, language, tag, lego piece, game, code repositories, builder, lego", - "group": "file", - "codepoint": 61787 + "group": "file" }, { "displayName": "Double caret: vertical", "iconName": "double-caret-vertical", "tags": "sort, arrow, list, elevator, scroll, navigate, expand, up, down, vertical, arrows", - "group": "interface", - "codepoint": 61828 + "group": "interface" }, { "displayName": "Double caret: horizontal", "iconName": "double-caret-horizontal", "tags": "sort, arrow, list, navigate, expand, slider, left, right, arrows", - "group": "interface", - "codepoint": 61827 + "group": "interface" }, { "displayName": "Sort: alphabetical descending", "iconName": "sort-alphabetical-desc", "tags": "order, list, array, arrange, sort descending, alphabet, ztoa", - "group": "action", - "codepoint": 62145 + "group": "action" }, { "displayName": "Sort: numerical descending", "iconName": "sort-numerical-desc", "tags": "order, list, array, arrange, descending", - "group": "action", - "codepoint": 62149 + "group": "action" }, { "displayName": "Take action", "iconName": "take-action", "tags": "case, court, deal, gavel, judge", - "group": "action", - "codepoint": 62176 + "group": "action" }, { "displayName": "Contrast", "iconName": "contrast", "tags": "color, brightness, settings, light, dark, mode, theme, cog", - "group": "media", - "codepoint": 61798 + "group": "media" }, { "displayName": "Eye: off", "iconName": "eye-off", "tags": "visibility, hide, unseen, hidden", - "group": "interface", - "codepoint": 61857 + "group": "interface" }, { "displayName": "Area chart", "iconName": "timeline-area-chart", "tags": "graph, line, diagram, trend up, growth, increasing", - "group": "data", - "codepoint": 62193 + "group": "data" }, { "displayName": "Doughnut chart", "iconName": "doughnut-chart", "tags": "circle, section, part, graph, quarter, pie chart, storage space, usage, statistics, donut, visualization", - "group": "data", - "codepoint": 61833 + "group": "data" }, { "displayName": "Layer", "iconName": "layer", "tags": "zone, level, diamond, point, link, connect", - "group": "interface", - "codepoint": 61978 + "group": "interface" }, { "displayName": "Grid", "iconName": "grid", "tags": "layout, arrangement, hashtag, pattern, patch", - "group": "data", - "codepoint": 61913 + "group": "data" }, { "displayName": "Polygon filter", "iconName": "polygon-filter", "tags": "shape, form, graph, polygon, area, boundary", - "group": "data", - "codepoint": 62074 + "group": "data" }, { "displayName": "Add to folder", "iconName": "add-to-folder", "tags": "file, portfolio, case, import, open", - "group": "file", - "codepoint": 61704 + "group": "file" }, { "displayName": "Layout: balloon", "iconName": "layout-balloon", "tags": "layout, presentation, arrangement, graph", - "group": "data", - "codepoint": 61981 + "group": "data" }, { "displayName": "Layout: sorted clusters", "iconName": "layout-sorted-clusters", "tags": "layout, presentation, arrangement, graph, grid, play button, data points, array, fleet, collection", - "group": "data", - "codepoint": 61988 + "group": "data" }, { "displayName": "Sort: ascending", "iconName": "sort-asc", "tags": "order, list, array, arrange, ascending, increasing, histogram, queue", - "group": "action", - "codepoint": 62147 + "group": "action" }, { "displayName": "Sort: descending", "iconName": "sort-desc", "tags": "order, list, array, arrange, descending, decreasing", - "group": "action", - "codepoint": 62148 + "group": "action" }, { "displayName": "Small cross", "iconName": "small-cross", "tags": "cross mark, fail, delete, no, close, remove, x, cancel, exit", - "group": "action", - "codepoint": 62138 + "group": "action" }, { "displayName": "Small tick", "iconName": "small-tick", "tags": "mark, sign, ok, approved, success, check, complete, agree, verify, yes, correct", - "group": "action", - "codepoint": 62142 + "group": "action" }, { "displayName": "Power", "iconName": "power", "tags": "button, on, off, toggle", - "group": "media", - "codepoint": 62075 + "group": "media" }, { "displayName": "Column layout", "iconName": "column-layout", "tags": "layout, arrangement, sidebar, side menu, side bar, panel, gui, table, section, columns, tables", - "group": "table", - "codepoint": 61791 + "group": "table" }, { "displayName": "Arrow: top left", "iconName": "arrow-top-left", "tags": "direction, north west, cursor, up left", - "group": "interface", - "codepoint": 61735 + "group": "interface" }, { "displayName": "Arrow: top right", "iconName": "arrow-top-right", "tags": "direction, north east, top right, pointer, up, diagonal, open in new tab, corner", - "group": "interface", - "codepoint": 61736 + "group": "interface" }, { "displayName": "Arrow: bottom right", "iconName": "arrow-bottom-right", "tags": "direction, south east, diagonal, down right", - "group": "interface", - "codepoint": 61731 + "group": "interface" }, { "displayName": "Arrow: bottom left", "iconName": "arrow-bottom-left", "tags": "direction, south west, arrow, diagonal, down left", - "group": "interface", - "codepoint": 61730 + "group": "interface" }, { "displayName": "Mugshot", "iconName": "mugshot", "tags": "person, photograph, picture, portrait, profile, user", - "group": "interface", - "codepoint": 62029 + "group": "interface" }, { "displayName": "Headset", "iconName": "headset", "tags": "headphones, call, communication, audio", - "group": "media", - "codepoint": 61926 + "group": "media" }, { "displayName": "Text highlight", "iconName": "text-highlight", "tags": "selector, content, type, input, insert, select, box, search, text area, textarea", - "group": "editor", - "codepoint": 62181 + "group": "editor" }, { "displayName": "Hand", "iconName": "hand", "tags": "gesture, fingers, raise hand", - "group": "interface", - "codepoint": 61920 + "group": "interface" }, { "displayName": "Chevron: backward", "iconName": "chevron-backward", "tags": "skip, direction, k", - "group": "interface", - "codepoint": 61769 + "group": "interface" }, { "displayName": "Chevron: forward", "iconName": "chevron-forward", "tags": "skip, direction, end", - "group": "interface", - "codepoint": 61771 + "group": "interface" }, { "displayName": "Rotate: document", "iconName": "rotate-document", "tags": "turn, anti clockwise, revert file, reset file, return file, change side, flip, undo", - "group": "editor", - "codepoint": 62105 + "group": "editor" }, { "displayName": "Rotate: page", "iconName": "rotate-page", "tags": "turn, anti clockwise, counterclockwise, left", - "group": "editor", - "codepoint": 62106 + "group": "editor" }, { "displayName": "Badge", "iconName": "badge", "tags": "emblem, symbol, identification, insignia, marker, protect, privacy, shield, law enforcement, police, sheriff, rule enforcement, security", - "group": "miscellaneous", - "codepoint": 61743 + "group": "miscellaneous" }, { "displayName": "Grid view", "iconName": "grid-view", "tags": "layout, arrangement, windows, boxes, squares, blocks, packing", - "group": "editor", - "codepoint": 61912 + "group": "editor" }, { "displayName": "Function", "iconName": "function", "tags": "math, calculation, logic, fx, formula, spreadsheet", - "group": "table", - "codepoint": 61893 + "group": "table" }, { "displayName": "Waterfall chart", "iconName": "waterfall-chart", "tags": "graph, diagram, bar chart, yield", - "group": "data", - "codepoint": 62230 + "group": "data" }, { "displayName": "Stacked chart", "iconName": "stacked-chart", "tags": "bar chart, graph, statistics, summary", - "group": "data", - "codepoint": 62154 + "group": "data" }, { "displayName": "Pulse", "iconName": "pulse", "tags": "medical, life, heartbeat, hospital, heart, graph, stock, trend, heart beat, alert, health", - "group": "miscellaneous", - "codepoint": 62084 + "group": "miscellaneous" }, { "displayName": "New person", "iconName": "new-person", "tags": "person, human, male, female, character, customer, individual, add, user, additional", - "group": "interface", - "codepoint": 62039 + "group": "interface" }, { "displayName": "Exclude row", "iconName": "exclude-row", "tags": "delete, remove, table, not equal, x, remove line, end point", - "group": "table", - "codepoint": 61854 + "group": "table" }, { "displayName": "Pivot table", "iconName": "pivot-table", "tags": "rotate, axis, hinge, corner, lift, open, lever", - "group": "table", - "codepoint": 62070 + "group": "table" }, { "displayName": "Segmented control", "iconName": "segmented-control", "tags": "button, switch, option, toggle, progress bar, boolean, erase, half", - "group": "interface", - "codepoint": 62115 + "group": "interface" }, { "displayName": "Highlight", "iconName": "highlight", "tags": "select, text, marker, pen", - "group": "action", - "codepoint": 61935 + "group": "action" }, { "displayName": "Filter: list", "iconName": "filter-list", "tags": "filtering, funnel, tube, pipe", - "group": "action", - "codepoint": 61866 + "group": "action" }, { "displayName": "Cut", "iconName": "cut", "tags": "scissors", - "group": "action", - "codepoint": 61807 + "group": "action" }, { "displayName": "Annotation", "iconName": "annotation", "tags": "note, comment, edit, write", - "group": "editor", - "codepoint": 61717 + "group": "editor" }, { "displayName": "Pivot", "iconName": "pivot", "tags": "rotate, axis, arrow bounce down right, add node, change direction, redirect, node, branch, graph", - "group": "action", - "codepoint": 62071 + "group": "action" }, { "displayName": "Ring", "iconName": "ring", "tags": "empty, circle, selection, hollow, empty, hole, disc, donut", - "group": "miscellaneous", - "codepoint": 62102 + "group": "miscellaneous" }, { "displayName": "Heat grid", "iconName": "heat-grid", "tags": "chart, map, squares, black and white", - "group": "data", - "codepoint": 61929 + "group": "data" }, { "displayName": "Gantt chart", "iconName": "gantt-chart", "tags": "bar chart, schedule, project, step chart, stairs, waterfall", - "group": "data", - "codepoint": 61894 + "group": "data" }, { "displayName": "Variable", "iconName": "variable", "tags": "math, calculation, function, input, parentheses, parameter", - "group": "table", - "codepoint": 62219 + "group": "table" }, { "displayName": "Manual", "iconName": "manual", "tags": "guide, instruction, documentation, docs, book, open", - "group": "interface", - "codepoint": 62005 + "group": "interface" }, { "displayName": "Add row: top", "iconName": "add-row-top", "tags": "table, attach, join", - "group": "table", - "codepoint": 61702 + "group": "table" }, { "displayName": "Add row: bottom", "iconName": "add-row-bottom", "tags": "table, attach, join, widget", - "group": "table", - "codepoint": 61701 + "group": "table" }, { "displayName": "Add column: left", "iconName": "add-column-left", "tags": "table, attach, join, tab, window, section", - "group": "table", - "codepoint": 61698 + "group": "table" }, { "displayName": "Add column: right", "iconName": "add-column-right", "tags": "table, attach, join, tab, window, section", - "group": "table", - "codepoint": 61699 + "group": "table" }, { "displayName": "Remove row: top", "iconName": "remove-row-top", "tags": "table, detach, delete, mail, cabinet, files, storage box", - "group": "table", - "codepoint": 62095 + "group": "table" }, { "displayName": "Remove row: bottom", "iconName": "remove-row-bottom", "tags": "table, detach, delete, box, files, container, oven", - "group": "table", - "codepoint": 62094 + "group": "table" }, { "displayName": "Remove column: left", "iconName": "remove-column-left", "tags": "table, detach, delete, sidebar, tab, window, section", - "group": "table", - "codepoint": 62091 + "group": "table" }, { "displayName": "Remove column: right", "iconName": "remove-column-right", "tags": "table, detach, delete, sidebar, section, widget, panel", - "group": "table", - "codepoint": 62092 + "group": "table" }, { "displayName": "Double chevron: left", "iconName": "double-chevron-left", "tags": "arrows, multiple, direction, expand, shift, go left, skip backward, quick reverse, move, open bracket, back", - "group": "interface", - "codepoint": 61830 + "group": "interface" }, { "displayName": "Double chevron: right", "iconName": "double-chevron-right", "tags": "arrows, multiple, direction, next, fast forward, advance, continue, go, end, double arrow", - "group": "interface", - "codepoint": 61831 + "group": "interface" }, { "displayName": "Double chevron: up", "iconName": "double-chevron-up", "tags": "arrows, multiple, direction, skip up, increase, power up, upload, swipe up, double, roof, collapse, upwards", - "group": "interface", - "codepoint": 61832 + "group": "interface" }, { "displayName": "Double chevron: down", "iconName": "double-chevron-down", "tags": "arrows, multiple, direction, downward, downgrade", - "group": "interface", - "codepoint": 61829 + "group": "interface" }, { "displayName": "Key: control", "iconName": "key-control", "tags": "interface, shortcuts, buttons, this, chevron-up, up, karat, caret, up arrow", - "group": "media", - "codepoint": 61966 + "group": "media" }, { "displayName": "Key: command", "iconName": "key-command", "tags": "interface, shortcuts, buttons", - "group": "media", - "codepoint": 61965 + "group": "media" }, { "displayName": "Key: shift", "iconName": "key-shift", "tags": "interface, shortcuts, buttons, look up, look at this", - "group": "media", - "codepoint": 61971 + "group": "media" }, { "displayName": "Key: backspace", "iconName": "key-backspace", "tags": "interface, shortcuts, buttons, delete, back", - "group": "media", - "codepoint": 61964 + "group": "media" }, { "displayName": "Key: delete", "iconName": "key-delete", "tags": "interface, shortcuts, buttons, backspace, close, remove", - "group": "media", - "codepoint": 61967 + "group": "media" }, { "displayName": "Key: escape", "iconName": "key-escape", "tags": "interface, shortcuts, buttons, export, back, leave", - "group": "media", - "codepoint": 61969 + "group": "media" }, { "displayName": "Key: enter", "iconName": "key-enter", "tags": "interface, shortcuts, buttons, turn, arrow, new line, return", - "group": "media", - "codepoint": 61968 + "group": "media" }, { "displayName": "Calculator", "iconName": "calculator", "tags": "math, device, value, numbers, total", - "group": "miscellaneous", - "codepoint": 61757 + "group": "miscellaneous" }, { "displayName": "Horizontal bar chart", "iconName": "horizontal-bar-chart", "tags": "graph, diagram, histogram", - "group": "data", - "codepoint": 61940 + "group": "data" }, { "displayName": "Small plus", "iconName": "small-plus", "tags": "sign, add, maximize, zoom in, cross, addition", - "group": "action", - "codepoint": 62140 + "group": "action" }, { "displayName": "Small minus", "iconName": "small-minus", "tags": "sign, remove, minimize, zoom out, minus, dash, line", - "group": "action", - "codepoint": 62139 + "group": "action" }, { "displayName": "Step chart", "iconName": "step-chart", "tags": "graph, diagram, stepwise, plot, data, trends, change, discrete, discontinuous", - "group": "data", - "codepoint": 62159 + "group": "data" }, { "displayName": "Euro", "iconName": "euro", "tags": "currency, money, eur", - "group": "miscellaneous", - "codepoint": 61852 + "group": "miscellaneous" }, { "displayName": "Drag handle: vertical", "iconName": "drag-handle-vertical", "tags": "move, pull, array, dots, spread", - "group": "action", - "codepoint": 61836 + "group": "action" }, { "displayName": "Drag handle: horizontal", "iconName": "drag-handle-horizontal", "tags": "move, pull, set, multiple, handle, grab, dots", - "group": "action", - "codepoint": 61835 + "group": "action" }, { "displayName": "Mobile phone", "iconName": "mobile-phone", "tags": "cellular, device, call, cell, tablet", - "group": "media", - "codepoint": 62021 + "group": "media" }, { "displayName": "Sim card", "iconName": "sim-card", "tags": "phone, cellular, sim, memory card, memory, encrypted file, document", - "group": "media", - "codepoint": 62136 + "group": "media" }, { "displayName": "Trending: up", "iconName": "trending-up", "tags": "growth, incline, progress, stocks, stonks, increase, rise", - "group": "data", - "codepoint": 62205 + "group": "data" }, { "displayName": "Trending: down", "iconName": "trending-down", "tags": "decrease, decline, loss, downward, arrow down, crash, stock, stonks, down forecast", - "group": "data", - "codepoint": 62204 + "group": "data" }, { "displayName": "Curved range chart", "iconName": "curved-range-chart", "tags": "graph, diagram, analysis, model, regression", - "group": "data", - "codepoint": 61806 + "group": "data" }, { "displayName": "Vertical bar chart: descending", "iconName": "vertical-bar-chart-desc", "tags": "graph, histogram, decreasing, descending trend, decreasing trend, levels, chart, decrease, lower", - "group": "data", - "codepoint": 62221 + "group": "data" }, { "displayName": "Horizontal bar chart: descending", "iconName": "horizontal-bar-chart-desc", "tags": "graph, histogram, increase, descending, sort, decreasing, list", - "group": "data", - "codepoint": 61939 + "group": "data" }, { "displayName": "Document: open", "iconName": "document-open", "tags": "paper, access, arrow, file, import", - "group": "file", - "codepoint": 61822 + "group": "file" }, { "displayName": "Document: share", "iconName": "document-share", "tags": "paper, send, link new, open in new tab, open in new window, paper with arrow, export", - "group": "file", - "codepoint": 61823 + "group": "file" }, { "displayName": "Distribution: horizontal", "iconName": "horizontal-distribution", "tags": "alignment, layout, position, lane, absolute, center, vertical, corridor, road, vehicle", - "group": "editor", - "codepoint": 61941 + "group": "editor" }, { "displayName": "Distribution: vertical", "iconName": "vertical-distribution", "tags": "alignment, layout, position, focus, centered, focus mode, road", - "group": "editor", - "codepoint": 62222 + "group": "editor" }, { "displayName": "Alignment: left", "iconName": "alignment-left", "tags": "layout, position", - "group": "editor", - "codepoint": 61713 + "group": "editor" }, { "displayName": "Alignment: vertical center", "iconName": "alignment-vertical-center", "tags": "layout, position, bars, biplane", - "group": "editor", - "codepoint": 61716 + "group": "editor" }, { "displayName": "Alignment: right", "iconName": "alignment-right", "tags": "layout, position", - "group": "editor", - "codepoint": 61714 + "group": "editor" }, { "displayName": "Alignment: top", "iconName": "alignment-top", "tags": "layout, position", - "group": "editor", - "codepoint": 61715 + "group": "editor" }, { "displayName": "Alignment: horizontal center", "iconName": "alignment-horizontal-center", "tags": "layout, position, drone, airplane, satellite, statistics, shadow analysis", - "group": "editor", - "codepoint": 61712 + "group": "editor" }, { "displayName": "Alignment: bottom", "iconName": "alignment-bottom", "tags": "layout, position, bars", - "group": "editor", - "codepoint": 61711 + "group": "editor" }, { "displayName": "Git: pull", "iconName": "git-pull", "tags": "github, repository, code, command, pull request, branch, insert, version control, merge", - "group": "action", - "codepoint": 61902 + "group": "action" }, { "displayName": "Git: merge", "iconName": "git-merge", "tags": "github, repository, code, command, branch, version control", - "group": "action", - "codepoint": 61900 + "group": "action" }, { "displayName": "Git: branch", "iconName": "git-branch", "tags": "github, repository, code, command, version control, fork", - "group": "action", - "codepoint": 61898 + "group": "action" }, { "displayName": "Git: commit", "iconName": "git-commit", "tags": "github, repository, code, command, node, link", - "group": "action", - "codepoint": 61899 + "group": "action" }, { "displayName": "Git: push", "iconName": "git-push", "tags": "github, repository, code, command, upload, export", - "group": "action", - "codepoint": 61903 + "group": "action" }, { "displayName": "Build", "iconName": "build", "tags": "hammer, tool, force, work", - "group": "action", - "codepoint": 61756 + "group": "action" }, { "displayName": "Symbol: circle", "iconName": "symbol-circle", "tags": "shape, figure, dot, filled, period, spot", - "group": "interface", - "codepoint": 62168 + "group": "interface" }, { "displayName": "Symbol: square", "iconName": "symbol-square", "tags": "shape, figure, stop", - "group": "interface", - "codepoint": 62171 + "group": "interface" }, { "displayName": "Symbol: diamond", "iconName": "symbol-diamond", "tags": "shape, figure, rhombus", - "group": "interface", - "codepoint": 62170 + "group": "interface" }, { "displayName": "Symbol: cross", "iconName": "symbol-cross", "tags": "shape, figure, plus, health, first aid", - "group": "interface", - "codepoint": 62169 + "group": "interface" }, { "displayName": "Symbol: triangle up", "iconName": "symbol-triangle-up", "tags": "shape, figure, up, upvote, higher priority, arrow", - "group": "interface", - "codepoint": 62173 + "group": "interface" }, { "displayName": "Symbol: triangle down", "iconName": "symbol-triangle-down", "tags": "shape, figure, below, minimise, minimize, downward, arrow, dropdown indicator", - "group": "interface", - "codepoint": 62172 + "group": "interface" }, { "displayName": "Wrench", "iconName": "wrench", "tags": "tool, repair, spanner, work", - "group": "miscellaneous", - "codepoint": 62237 + "group": "miscellaneous" }, { "displayName": "Application", "iconName": "application", "tags": "browser, windows, platform, page, note, webpage, document, header", - "group": "interface", - "codepoint": 61720 + "group": "interface" }, { "displayName": "Send to graph", "iconName": "send-to-graph", "tags": "transfer, move, arrow, nodes, insert graph", - "group": "action", - "codepoint": 62119 + "group": "action" }, { "displayName": "Send to map", "iconName": "send-to-map", "tags": "transfer, move, location, direction, brochure, pamphlet", - "group": "action", - "codepoint": 62120 + "group": "action" }, { "displayName": "Join table", "iconName": "join-table", "tags": "combine, attach, connect, link, unite, merge data, excel, calendars, dataframe, tables, sheets, intersection", - "group": "table", - "codepoint": 61963 + "group": "table" }, { "displayName": "Derive column", "iconName": "derive-column", "tags": "table, obtain, develop, function container, function in a box", - "group": "action", - "codepoint": 61815 + "group": "action" }, { "displayName": "Rotate image: left", "iconName": "image-rotate-left", "tags": "picture, turn, alternate, media, landscape", - "group": "media", - "codepoint": 61944 + "group": "media" }, { "displayName": "Rotate image: right", "iconName": "image-rotate-right", "tags": "picture, turn, alternate, media, landscape", - "group": "media", - "codepoint": 61945 + "group": "media" }, { "displayName": "Known vehicle", "iconName": "known-vehicle", "tags": "car, automobile, van, drive, ride, distance, navigation, directions, approved, checked", - "group": "interface", - "codepoint": 61974 + "group": "interface" }, { "displayName": "Unknown vehicle", "iconName": "unknown-vehicle", "tags": "car, automobile, van, drive, ride, distance, navigation, directions, missing, mystery, question mark", - "group": "interface", - "codepoint": 62212 + "group": "interface" }, { "displayName": "Scatter plot", "iconName": "scatter-plot", "tags": "graph, diagram, data", - "group": "data", - "codepoint": 62110 + "group": "data" }, { "displayName": "Oil field", "iconName": "oil-field", "tags": "fuel, petroleum, gas, well, drilling, pump, wheel, hammer, engineering, refinery", - "group": "interface", - "codepoint": 62051 + "group": "interface" }, { "displayName": "Rig", "iconName": "rig", "tags": "fuel, petroleum, gas, well, drilling, offshore, asset, flare, torch, oil, candle man", - "group": "interface", - "codepoint": 62100 + "group": "interface" }, { "displayName": "New map", "iconName": "map-create", "tags": "map, location, position, geography, world, new brochure, new pamphlet, navigation, travel, gps", - "group": "interface", - "codepoint": 62009 + "group": "interface" }, { "displayName": "Key: option", "iconName": "key-option", "tags": "interface, shortcuts, buttons, branch, fork, switch", - "group": "media", - "codepoint": 61970 + "group": "media" }, { "displayName": "List: detail view", "iconName": "list-detail-view", "tags": "agenda, four lines, table, info, additional options, menu, compare", - "group": "table", - "codepoint": 61999 + "group": "table" }, { "displayName": "Swap: vertical", "iconName": "swap-vertical", "tags": "direction, position, opposite, inverse, switch order, reverse order, back-and-forth, up, down, flow, filter, traffic, upload download, exchange", - "group": "interface", - "codepoint": 62166 + "group": "interface" }, { "displayName": "Swap: horizontal", "iconName": "swap-horizontal", "tags": "direction, position, opposite, inverse, two-way traffic, reverse, reversible, both ways, back-and-forth", - "group": "interface", - "codepoint": 62165 + "group": "interface" }, { "displayName": "Numbered list", "iconName": "numbered-list", "tags": "order, array, arrange, numeric, options, steps, to do", - "group": "action", - "codepoint": 62047 + "group": "action" }, { "displayName": "New grid item", "iconName": "new-grid-item", "tags": "layout, arrangement, add, squares, target, microsoft, block, quadrant", - "group": "editor", - "codepoint": 62034 + "group": "editor" }, { "displayName": "Git: repo", "iconName": "git-repo", "tags": "github, repository, code, command, bookmark, saved page, notepad, book, dictionary, notebook, file, dossier", - "group": "action", - "codepoint": 61904 + "group": "action" }, { "displayName": "Git: new branch", "iconName": "git-new-branch", "tags": "github, repository, code, command, pull request, pathway, branch, create, fork", - "group": "action", - "codepoint": 61901 + "group": "action" }, { "displayName": "Manually entered data", "iconName": "manually-entered-data", "tags": "input, human, writer, paragraph, write, notebook, pencil, edit, text", - "group": "editor", - "codepoint": 62006 + "group": "editor" }, { "displayName": "Airplane", "iconName": "airplane", "tags": "flight, jet, travel, trip, transport, take off, fly, aircraft, aerospace, airport", - "group": "interface", - "codepoint": 61706 + "group": "interface" }, { "displayName": "Merge columns", "iconName": "merge-columns", "tags": "layout, change, two, combine, unite, conflict, union, box, closed, contract, join, close, reconcile", - "group": "table", - "codepoint": 62017 + "group": "table" }, { "displayName": "Split columns", "iconName": "split-columns", "tags": "layout, change, two, break, divide, open, expand, bidirectional, arrows, rectangles, expanding, separate", - "group": "table", - "codepoint": 62152 + "group": "table" }, { "displayName": "Dashboard", "iconName": "dashboard", "tags": "panel, control, gauge, instrument, meter, speedometer, speed, dial, indicator", - "group": "interface", - "codepoint": 61809 + "group": "interface" }, { "displayName": "Publish function", "iconName": "publish-function", "tags": "math, calculation, share", - "group": "table", - "codepoint": 62083 + "group": "table" }, { "displayName": "Path", "iconName": "path", "tags": "hierarchy, trail, steps, sort, contour, ladder, zipper, drill down, hierarchy", - "group": "interface", - "codepoint": 62062 + "group": "interface" }, { "displayName": "Moon", "iconName": "moon", "tags": "night, sky, dark, sleep, do not disturb, night time, crescent", - "group": "miscellaneous", - "codepoint": 62025 + "group": "miscellaneous" }, { "displayName": "Remove column", "iconName": "remove-column", "tags": "table, detach, close sidebar, collapse, close, delete left", - "group": "table", - "codepoint": 62093 + "group": "table" }, { "displayName": "Numerical", "iconName": "numerical", "tags": "numbers, order, sort, arrange, array, counting, data, integers", - "group": "action", - "codepoint": 62048 + "group": "action" }, { "displayName": "Key: tab", "iconName": "key-tab", "tags": "interface, shortcuts, buttons, both ways, two way, push out", - "group": "media", - "codepoint": 61972 + "group": "media" }, { "displayName": "Regression chart", "iconName": "regression-chart", "tags": "graph, line, chart, scatter, plot, trend, correlation, mean, average", - "group": "data", - "codepoint": 62090 + "group": "data" }, { "displayName": "Translate", "iconName": "translate", "tags": "language, convert, character, mandarin, japanese, translation, conversion", - "group": "action", - "codepoint": 62201 + "group": "action" }, { "displayName": "Eye: on", "iconName": "eye-on", "tags": "visibility, show, visible, check, verify, accept, accessibility, vision, verified, seen, viewed", - "group": "interface", - "codepoint": 61858 + "group": "interface" }, { "displayName": "Vertical bar chart: ascending", "iconName": "vertical-bar-chart-asc", "tags": "graph, histogram, increasing, upward trend, signal strength, inreasing", - "group": "data", - "codepoint": 62220 + "group": "data" }, { "displayName": "Horizontal bar chart: ascending", "iconName": "horizontal-bar-chart-asc", "tags": "graph, histogram, sort, ranking, stats", - "group": "data", - "codepoint": 61938 + "group": "data" }, { "displayName": "Grouped bar chart", "iconName": "grouped-bar-chart", "tags": "graph, plot", - "group": "data", - "codepoint": 61915 + "group": "data" }, { "displayName": "Full stacked chart", "iconName": "full-stacked-chart", "tags": "graph, bar, cargo, inventory, bricks, wall, chimneys, shipping container, adjust, waterfall", - "group": "data", - "codepoint": 61891 + "group": "data" }, { "displayName": "Endorsed", "iconName": "endorsed", "tags": "tick, mark, sign, ok, approved, success, complete, verified, stamp of approval, check, agree", - "group": "action", - "codepoint": 61847 + "group": "action" }, { "displayName": "Follower", "iconName": "follower", "tags": "person, human, male, female, character, customer, individual, social, share, add, send, move, delegate, move person, next", - "group": "interface", - "codepoint": 61885 + "group": "interface" }, { "displayName": "Following", "iconName": "following", "tags": "person, human, male, female, character, customer, individual, social, receive, message, request", - "group": "interface", - "codepoint": 61886 + "group": "interface" }, { "displayName": "Menu", "iconName": "menu", "tags": "navigation, lines, list, stack, hamburger, paragraph, document, section", - "group": "interface", - "codepoint": 62016 + "group": "interface" }, { "displayName": "Collapse all", "iconName": "collapse-all", "tags": "arrows, chevron, reduce, smash, in between, up down", - "group": "interface", - "codepoint": 61790 + "group": "interface" }, { "displayName": "Expand all", "iconName": "expand-all", "tags": "arrows, chevron, enlarge, stretch, flex, volume", - "group": "interface", - "codepoint": 61855 + "group": "interface" }, { "displayName": "Intersection", "iconName": "intersection", "tags": "circles, combine, cross, venn diagram, overlap, link, intersect, union, inner join", - "group": "action", - "codepoint": 61957 + "group": "action" }, { "displayName": "Blocked person", "iconName": "blocked-person", "tags": "human, male, female, character, customer, individual, social, banned, prohibited", - "group": "interface", - "codepoint": 61748 + "group": "interface" }, { "displayName": "Slash", "iconName": "slash", "tags": "divide, separate, backslash, or", - "group": "action", - "codepoint": 62137 + "group": "action" }, { "displayName": "Percentage", "iconName": "percentage", "tags": "modulo, modulus, fraction, statistics", - "group": "action", - "codepoint": 62065 + "group": "action" }, { "displayName": "Satellite", "iconName": "satellite", "tags": "communication, space, radar, sensor, airplane, wifi, data, gps, orbit, landing", - "group": "miscellaneous", - "codepoint": 62108 + "group": "miscellaneous" }, { "displayName": "Paragraph", "iconName": "paragraph", "tags": "text, chapter, division, part", - "group": "editor", - "codepoint": 62060 + "group": "editor" }, { "displayName": "Bank account", "iconName": "bank-account", "tags": "money, finance, funds, piggy bank", - "group": "miscellaneous", - "codepoint": 61745 + "group": "miscellaneous" }, { "displayName": "Cell tower", "iconName": "cell-tower", "tags": "signal, communication, radio, mast, connection, aerial, radar, connectivity, internet, data, transmission, broadcast", - "group": "miscellaneous", - "codepoint": 61765 + "group": "miscellaneous" }, { "displayName": "ID number", "iconName": "id-number", "tags": "identification, person, document, contact, business card, profile, identity, badge, credential, certification", - "group": "miscellaneous", - "codepoint": 61943 + "group": "miscellaneous" }, { "displayName": "IP address", "iconName": "ip-address", "tags": "internet, protocol, number, network, geolocation, local, intellectual property, isp, internet service provider", - "group": "miscellaneous", - "codepoint": 61958 + "group": "miscellaneous" }, { "displayName": "Eraser", "iconName": "eraser", "tags": "delete, remove", - "group": "editor", - "codepoint": 61850 + "group": "editor" }, { "displayName": "Issue", "iconName": "issue", "tags": "circle, notification, failure, exclamation mark, sign, problem, warning, danger, notice, error", - "group": "interface", - "codepoint": 61961 + "group": "interface" }, { "displayName": "Issue: new", "iconName": "issue-new", "tags": "circle, notification, failure, exclamation mark, sign, problem, report, malfunction, alert, info", - "group": "interface", - "codepoint": 61960 + "group": "interface" }, { "displayName": "Issue: closed", "iconName": "issue-closed", "tags": "circle, notification, failure, exclamation mark, sign, problem, alert, verified, acknowledged, completed, resolved, check, urgent, important, view warning", - "group": "interface", - "codepoint": 61959 + "group": "interface" }, { "displayName": "Panel: stats", "iconName": "panel-stats", "tags": "sidebar, layout, list, window, side bar, drawer, menu, website, dashboard, tablet, report, dataset preview", - "group": "table", - "codepoint": 62057 + "group": "table" }, { "displayName": "Panel: table", "iconName": "panel-table", "tags": "sidebar, layout, spreadsheet, dataset view, grid, excel", - "group": "table", - "codepoint": 62058 + "group": "table" }, { "displayName": "Tick circle", "iconName": "tick-circle", "tags": "mark, sign, ok, approved, success, check", - "group": "action", - "codepoint": 62190 + "group": "action" }, { "displayName": "Prescription", "iconName": "prescription", "tags": "instruction, direction, medicine, drug, medication, mixture, reaction, pharmacy", - "group": "miscellaneous", - "codepoint": 62077 + "group": "miscellaneous" }, { "displayName": "Prescription: new", "iconName": "new-prescription", "tags": "instruction, direction, medicine, drug, medication, mixture, add, pharmacy", - "group": "miscellaneous", - "codepoint": 62040 + "group": "miscellaneous" }, { "displayName": "Filter: keep", "iconName": "filter-keep", "tags": "filtering, funnel, tube, pipe, retain, stay, complete, finished, applied", - "group": "action", - "codepoint": 61865 + "group": "action" }, { "displayName": "Filter: remove", "iconName": "filter-remove", "tags": "filtering, funnel, tube, pipe, delete, detach, discard, dismiss, close drilldown", - "group": "action", - "codepoint": 61868 + "group": "action" }, { "displayName": "Key", "iconName": "key", "tags": "lock, unlock, open, security, password, access", - "group": "interface", - "codepoint": 61973 + "group": "interface" }, { "displayName": "Feed: subscribed", "iconName": "feed-subscribed", "tags": "rss, tick, check, wifi, signal, connection", - "group": "interface", - "codepoint": 61862 + "group": "interface" }, { "displayName": "Widget: button", "iconName": "widget-button", "tags": "element, click, press, loading, more, details, options, breadcrumbs, additional, lego, dots", - "group": "interface", - "codepoint": 62232 + "group": "interface" }, { "displayName": "Widget: header", "iconName": "widget-header", "tags": "element, layout, top, refrigerator, fridge, section, div, container, split horizontal, tab, column", - "group": "interface", - "codepoint": 62234 + "group": "interface" }, { "displayName": "Widget: footer", "iconName": "widget-footer", "tags": "element, layout, bottom, window, section, div, container, guillotine", - "group": "interface", - "codepoint": 62233 + "group": "interface" }, { "displayName": "Header: one", "iconName": "header-one", "tags": "paragraph styling, formatting, hydrogen, heading", - "group": "editor", - "codepoint": 61922 + "group": "editor" }, { "displayName": "Header: two", "iconName": "header-two", "tags": "paragraph styling, formatting, hydrogen, chemistry, diatomic molecule, heading", - "group": "editor", - "codepoint": 61924 + "group": "editor" }, { "displayName": "Form", "iconName": "form", "tags": "response, fill, checklist, to do, tasks, checkbox", - "group": "data", - "codepoint": 61889 + "group": "data" }, { "displayName": "Series: add", "iconName": "series-add", "tags": "timeseries, plot, line, data, chart, new, create, graph, upwards trend, plus", - "group": "data", - "codepoint": 62122 + "group": "data" }, { "displayName": "Series: search", "iconName": "series-search", "tags": "timeseries, plot, line, data, chart, graph, find, investigate, inspect, finder, looker, trend, analyze", - "group": "data", - "codepoint": 62126 + "group": "data" }, { "displayName": "Series: filtered", "iconName": "series-filtered", "tags": "timeseries, plot, line, data, chart, reduce, reduced, search, variable, graph, metrics", - "group": "data", - "codepoint": 62125 + "group": "data" }, { "displayName": "Series: derived", "iconName": "series-derived", "tags": "timeseries, plot, line, data, chart, transform, transformed, compute, computed, modify, modified, altered, adjusted, trend, forecast, projection, prediction, expectation", - "group": "data", - "codepoint": 62124 + "group": "data" }, { "displayName": "Series: configuration", "iconName": "series-configuration", "tags": "timeseries, plot, line, data, chart, edit, modify, customize, adjust, alter, transform, trendline, goal, mountain sun, settings, configure", - "group": "data", - "codepoint": 62123 + "group": "data" }, { "displayName": "Console", "iconName": "console", "tags": "terminal, coding, code block, command line, input", - "group": "interface", - "codepoint": 61797 + "group": "interface" }, { "displayName": "Compass", "iconName": "compass", "tags": "map, direction, north south east west, magnetic poles, navigation", - "group": "interface", - "codepoint": 61794 + "group": "interface" }, { "displayName": "Walk", "iconName": "walk", "tags": "transportation, run, move, path, marching, going, person walking, march", - "group": "interface", - "codepoint": 62228 + "group": "interface" }, { "displayName": "Taxi", "iconName": "taxi", "tags": "transportation, car, move, police vehicle", - "group": "interface", - "codepoint": 62179 + "group": "interface" }, { "displayName": "Train", "iconName": "train", "tags": "transportation, public, move, rail, subway", - "group": "interface", - "codepoint": 62200 + "group": "interface" }, { "displayName": "Heart: broken", "iconName": "heart-broken", "tags": "love, like, organ, human, feelings, split, torn, failed, health, heartbreak, sadness, heart attack, unhealthy", - "group": "miscellaneous", - "codepoint": 61927 + "group": "miscellaneous" }, { "displayName": "Join: inner", "iconName": "inner-join", "tags": "circles, combine, connect, add, part, slice, cell, intersection, overlap, venn diagram", - "group": "action", - "codepoint": 61955 + "group": "action" }, { "displayName": "Join: left", "iconName": "left-join", "tags": "circles, combine, connect, add, part, slice, intersection, venn diagram, pill, battery, worlds, intersect", - "group": "action", - "codepoint": 61991 + "group": "action" }, { "displayName": "Join: right", "iconName": "right-join", "tags": "circles, combine, connect, add, part, slice, intersection, venn diagram", - "group": "action", - "codepoint": 62101 + "group": "action" }, { "displayName": "Strikethrough", "iconName": "strikethrough", "tags": "typography, text, font-style, line, removed, letter", - "group": "editor", - "codepoint": 62163 + "group": "editor" }, { "displayName": "Updated", "iconName": "updated", "tags": "time, recent, reload, successful, process complete, loading, reviewed", - "group": "interface", - "codepoint": 62216 + "group": "interface" }, { "displayName": "Outdated", "iconName": "outdated", "tags": "time, error, warning, reminder, late", - "group": "interface", - "codepoint": 62055 + "group": "interface" }, { "displayName": "Flame", "iconName": "flame", "tags": "fire, trendy, hot, popular", - "group": "miscellaneous", - "codepoint": 61871 + "group": "miscellaneous" }, { "displayName": "Folder: new", "iconName": "folder-new", "tags": "create, group, organize, sort, add", - "group": "file", - "codepoint": 61881 + "group": "file" }, { "displayName": "Mountain", "iconName": "mountain", "tags": "summit, climb, peak", - "group": "miscellaneous", - "codepoint": 62027 + "group": "miscellaneous" }, { "displayName": "Shield", "iconName": "shield", "tags": "protection, secure, security, safety, privacy, marking, control", - "group": "miscellaneous", - "codepoint": 62131 + "group": "miscellaneous" }, { "displayName": "Tree diagram", "iconName": "diagram-tree", "tags": "organization, chart, org, hierarchy, relationship, reference", - "group": "data", - "codepoint": 61818 + "group": "data" }, { "displayName": "Crown", "iconName": "crown", "tags": "hat, role, level, permission, king, owner", - "group": "miscellaneous", - "codepoint": 61802 + "group": "miscellaneous" }, { "displayName": "Globe: network", "iconName": "globe-network", "tags": "planet, earth, map, world, internet, website", - "group": "miscellaneous", - "codepoint": 61906 + "group": "miscellaneous" }, { "displayName": "Snowflake", "iconName": "snowflake", "tags": "weather, winter, freeze, ice, snow", - "group": "miscellaneous", - "codepoint": 62143 + "group": "miscellaneous" }, { "displayName": "Tree", "iconName": "tree", "tags": "forest, wood, landmark, conifer", - "group": "miscellaneous", - "codepoint": 62203 + "group": "miscellaneous" }, { "displayName": "Notifications: updated", "iconName": "notifications-updated", "tags": "bell, alarm, alert, notice, warning, resolve, approve, confirm, check, clear, read, configured, acknowledge, ack", - "group": "interface", - "codepoint": 62045 + "group": "interface" }, { "displayName": "List: columns", "iconName": "list-columns", "tags": "layout, arrangement, four lines, table, two, article, data, grid", - "group": "table", - "codepoint": 61998 + "group": "table" }, { "displayName": "Flow: linear", "iconName": "flow-linear", "tags": "workflow, edge, node, step, event, timeline, directed edge, right, advance, route, valve", - "group": "data", - "codepoint": 61876 + "group": "data" }, { "displayName": "Flow: branch", "iconName": "flow-branch", "tags": "workflow, edge, node, fork, arrows, split, two-way, decision point, split path", - "group": "data", - "codepoint": 61874 + "group": "data" }, { "displayName": "Flow: review", "iconName": "flow-review", "tags": "workflow, edge, node, reverse, expand, widen, tie fighter, split", - "group": "data", - "codepoint": 61878 + "group": "data" }, { "displayName": "Flow: review branch", "iconName": "flow-review-branch", "tags": "workflow, edge, node, fork, axis, graph, outward, away, location, relationship, links, unknown, grappling hook", - "group": "data", - "codepoint": 61877 + "group": "data" }, { "displayName": "Flow: end", "iconName": "flow-end", "tags": "workflow, edge, node, complete, finished, final, last, input, insert, relocate, right, endpoint, arrow, point, direction, destination, arrival, go to", - "group": "data", - "codepoint": 61875 + "group": "data" }, { "displayName": "Clean", "iconName": "clean", "tags": "correct, cleanse, clear, purify, stars, sparkle, twinkle", - "group": "action", - "codepoint": 61781 + "group": "action" }, { "displayName": "Table: filtered", "iconName": "th-filtered", "tags": "index, rows, columns, agenda, list, spreadsheet, funnel, spreadsheet, excel, sort", - "group": "table", - "codepoint": 62184 + "group": "table" }, { "displayName": "Lifesaver", "iconName": "lifesaver", "tags": "help, support, aid, advice, poker, casino, chip, circle", - "group": "miscellaneous", - "codepoint": 61994 + "group": "miscellaneous" }, { "displayName": "Cube", "iconName": "cube", "tags": "shape, 3d, object, box, package, container", - "group": "miscellaneous", - "codepoint": 61805 + "group": "miscellaneous" }, { "displayName": "Cube: add", "iconName": "cube-add", "tags": "shape, 3d, object, box, create", - "group": "miscellaneous", - "codepoint": 61803 + "group": "miscellaneous" }, { "displayName": "Cube: remove", "iconName": "cube-remove", "tags": "shape, 3d, object, delete cube, delete object, minus, box, deselect, unselect", - "group": "miscellaneous", - "codepoint": 61804 + "group": "miscellaneous" }, { "displayName": "Inbox: filtered", "iconName": "inbox-filtered", "tags": "folder, mail, file, message, funnel, mailbox", - "group": "file", - "codepoint": 61947 + "group": "file" }, { "displayName": "Inbox: geo", "iconName": "inbox-geo", "tags": "folder, mail, file, message, geography, location, area, globe, save map, save location, add location, international", - "group": "file", - "codepoint": 61948 + "group": "file" }, { "displayName": "Inbox: search", "iconName": "inbox-search", "tags": "folder, mail, file, message, inspection, exploration, magnifying glass, files", - "group": "file", - "codepoint": 61949 + "group": "file" }, { "displayName": "Inbox: update", "iconName": "inbox-update", "tags": "folder, mail, file, message, notifications, warning, new email", - "group": "file", - "codepoint": 61950 + "group": "file" }, { "displayName": "Inheritance", "iconName": "inheritance", "tags": "arrows, derive, move, input, insert", - "group": "action", - "codepoint": 61953 + "group": "action" }, { "displayName": "Reset", "iconName": "reset", "tags": "circle, arrow, refresh, rewind, counter-clockwise, loop, undo, retry, reload", - "group": "action", - "codepoint": 62098 + "group": "action" }, { "displayName": "Filter: open", "iconName": "filter-open", "tags": "filtering, funnel, tube, pipe, expand output", - "group": "action", - "codepoint": 61867 + "group": "action" }, { "displayName": "Table: disconnect", "iconName": "th-disconnect", "tags": "index, rows, columns, agenda, list, spreadsheet, unlink, detach, remove, delete, no storage", - "group": "table", - "codepoint": 62183 + "group": "table" }, { "displayName": "Equals", "iconName": "equals", "tags": "mathematical, equations, expression, formula, fence, lines, parallel", - "group": "action", - "codepoint": 61849 + "group": "action" }, { "displayName": "Not equal to", "iconName": "not-equal-to", "tags": "mathematical, equations, expression, formula, compare, comparison, neq", - "group": "action", - "codepoint": 62043 + "group": "action" }, { "displayName": "Greater than", "iconName": "greater-than", "tags": "mathematical, equations, expression, formula, compare, comparison, gt", - "group": "action", - "codepoint": 61911 + "group": "action" }, { "displayName": "Greater than or equal to", "iconName": "greater-than-or-equal-to", "tags": "mathematical, equations, expression, formula, compare, comparison, gte", - "group": "action", - "codepoint": 61910 + "group": "action" }, { "displayName": "Less than", "iconName": "less-than", "tags": "mathematical, equations, expression, formula, compare, comparison, lt", - "group": "action", - "codepoint": 61993 + "group": "action" }, { "displayName": "Less than or equal to", "iconName": "less-than-or-equal-to", "tags": "mathematical, equations, expression, formula, compare, comparison, lte", - "group": "action", - "codepoint": 61992 + "group": "action" }, { "displayName": "Learning", "iconName": "learning", "tags": "tutorial, teach, graduate, cap, clothing, graduation, hat, degree, education, study", - "group": "miscellaneous", - "codepoint": 61990 + "group": "miscellaneous" }, { "displayName": "New layer", "iconName": "new-layer", "tags": "levels, stack, cards, diamond, add plane", - "group": "interface", - "codepoint": 62035 + "group": "interface" }, { "displayName": "New layers", "iconName": "new-layers", "tags": "levels, stack, cards, create, plus, add", - "group": "interface", - "codepoint": 62036 + "group": "interface" }, { "displayName": "Stopwatch", "iconName": "stopwatch", "tags": "clock, day, hours, minutes, seconds, timer, time", - "group": "interface", - "codepoint": 62162 + "group": "interface" }, { "displayName": "Archive", "iconName": "archive", "tags": "compress, compression, zip, bundle, download, file", - "group": "action", - "codepoint": 61722 + "group": "action" }, { "displayName": "Unarchive", "iconName": "unarchive", "tags": "uncompress, unzip, unbundle, outbox, upload, save, store", - "group": "action", - "codepoint": 62208 + "group": "action" }, { "displayName": "Data lineage", "iconName": "data-lineage", "tags": "flow, rectangle, graph, downstream, upstream, propagation, hierarchy, merge, unify, integrate, link, relationship, model", - "group": "interface", - "codepoint": 61811 + "group": "interface" }, { "displayName": "New drawing", "iconName": "new-drawing", "tags": "selection, area, highlight, sketch, entry, write, add pen, modify, writing", - "group": "interface", - "codepoint": 62033 + "group": "interface" }, { "displayName": "Signal search", "iconName": "signal-search", "tags": "communication, radio, mast, towers, find, telecom, broadcast", - "group": "action", - "codepoint": 62135 + "group": "action" }, { "displayName": "Bring in data", "iconName": "bring-data", "tags": "copy, duplicate, add, download, decrease, reduce, down, rebase, land", - "group": "action", - "codepoint": 61754 + "group": "action" }, { "displayName": "Tractor", "iconName": "tractor", "tags": "automobile, vehicle, farming, agriculture, plantation", - "group": "interface", - "codepoint": 62199 + "group": "interface" }, { "displayName": "Truck", "iconName": "truck", "tags": "automobile, vehicle, car, van, drive, ride, distance, navigation, directions", - "group": "interface", - "codepoint": 62206 + "group": "interface" }, { "displayName": "Diagnosis", "iconName": "diagnosis", "tags": "doctor, science, heart, stethoscope, medical, examination, medicine, hospital, treatment", - "group": "interface", - "codepoint": 61817 + "group": "interface" }, { "displayName": "Lab test", "iconName": "lab-test", "tags": "science, beaker, chemistry, mixing, scientist, test tube, flask, formula, drug", - "group": "interface", - "codepoint": 61975 + "group": "interface" }, { "displayName": "Virus", "iconName": "virus", "tags": "doctor, medical, examination, disease, pandemic, sick, germ, covid, planet, explosion, black star", - "group": "interface", - "codepoint": 62224 + "group": "interface" }, { "displayName": "Inherited group membership", "iconName": "inherited-group", "tags": "inheritance, membership, people, share", - "group": "interface", - "codepoint": 61954 + "group": "interface" }, { "displayName": "Hat", "iconName": "hat", "tags": "head, clothing, cap, fedora, role, level, permission, detective, inspector", - "group": "miscellaneous", - "codepoint": 61921 + "group": "miscellaneous" }, { "displayName": "Cycle", "iconName": "cycle", "tags": "bike, cyclist, biker, rider, transportation, crossing, pedestrian, bicyclist, cycling, motorcycle", - "group": "interface", - "codepoint": 61808 + "group": "interface" }, { "displayName": "Route", "iconName": "route", "tags": "destination, travel, journey, road, transportation, directions, maps, navigation", - "group": "interface", - "codepoint": 62107 + "group": "interface" }, { "displayName": "Modal", "iconName": "modal", "tags": "application, layout, user-interface, UI, browser, window, app, dialog", - "group": "interface", - "codepoint": 62024 + "group": "interface" }, { "displayName": "Modal filled", "iconName": "modal-filled", "tags": "application, layout, user-interface, UI, window, app, dialog", - "group": "interface", - "codepoint": 62023 + "group": "interface" }, { "displayName": "Drawer left", "iconName": "drawer-left", "tags": "application, layout, user-interface, UI, export, transform, move, sliding door, flow right block", - "group": "interface", - "codepoint": 61839 + "group": "interface" }, { "displayName": "Drawer left filled", "iconName": "drawer-left-filled", "tags": "application, layout, user-interface, UI, right, shift, close door, justify, drag, move, output, rectangle arrow", - "group": "interface", - "codepoint": 61838 + "group": "interface" }, { "displayName": "Drawer right", "iconName": "drawer-right", "tags": "application, layout, user-interface, UI, left, door, arrow, move, shift, back, close, collapse", - "group": "interface", - "codepoint": 61841 + "group": "interface" }, { "displayName": "Drawer right filled", "iconName": "drawer-right-filled", "tags": "application, layout, user-interface, UI, exit, leave, shift, left, enter, go back", - "group": "interface", - "codepoint": 61840 + "group": "interface" }, { "displayName": "Application header", "iconName": "app-header", "tags": "application, layout, user-interface, UI, helipad, letter h, help, health, medical, hospital", - "group": "interface", - "codepoint": 61719 + "group": "interface" }, { "displayName": "Send message", "iconName": "send-message", "tags": "deliver, paper-airplane, post, mail", - "group": "action", - "codepoint": 62118 + "group": "action" }, { "displayName": "Backlink", "iconName": "backlink", "tags": "select, choose, point, extension, attach, add, chain", - "group": "interface", - "codepoint": 61742 + "group": "interface" }, { "displayName": "Geofence", "iconName": "geofence", "tags": "region, insert, pushback, click object, enter, focus, perimeter, area, polygon, shape", - "group": "interface", - "codepoint": 61895 + "group": "interface" }, { "displayName": "Data connection", "iconName": "data-connection", "tags": "connectivity, database, status, health, blank", - "group": "data", - "codepoint": 61810 + "group": "data" }, { "displayName": "Switch", "iconName": "switch", "tags": "electrical, broken graph, off, disconnect, open, broken link, disconnected, circuit", - "group": "miscellaneous", - "codepoint": 62167 + "group": "miscellaneous" }, { "displayName": "Array", "iconName": "array", "tags": "data, type, list, ellipses, items, more, dots, details", - "group": "miscellaneous", - "codepoint": 61729 + "group": "miscellaneous" }, { "displayName": "Boolean Array", "iconName": "array-boolean", "tags": "data, type, list, toggle, true, false", - "group": "miscellaneous", - "codepoint": 61724 + "group": "miscellaneous" }, { "displayName": "Date Array", "iconName": "array-date", "tags": "data, type, list, date, time, datetime, calendar", - "group": "miscellaneous", - "codepoint": 61725 + "group": "miscellaneous" }, { "displayName": "Numeric Array", "iconName": "array-numeric", "tags": "data, type, list, numbers, digits, set, range, count, integer", - "group": "miscellaneous", - "codepoint": 61726 + "group": "miscellaneous" }, { "displayName": "String Array", "iconName": "array-string", "tags": "data, type, list, quotes, quote", - "group": "miscellaneous", - "codepoint": 61727 + "group": "miscellaneous" }, { "displayName": "Timestamp Array", "iconName": "array-timestamp", "tags": "data, type, list, date, time, datetime, clock, delay, timespan", - "group": "miscellaneous", - "codepoint": 61728 + "group": "miscellaneous" }, { "displayName": "Layer Outline", "iconName": "layer-outline", "tags": "zone, level, empty, sideways diamond", - "group": "interface", - "codepoint": 61977 + "group": "interface" }, { "displayName": "Notifications: snooze", "iconName": "notifications-snooze", "tags": "information, message, suppress", - "group": "interface", - "codepoint": 62044 + "group": "interface" }, { "displayName": "High Priority", "iconName": "high-priority", "tags": "notification, message, loud, stop, emergency, exclamation, alert, attention, exclamation mark, !, warning, error, exclamation point, bang", - "group": "interface", - "codepoint": 61934 + "group": "interface" }, { "displayName": "Emoji", "iconName": "emoji", "tags": "message, chat, reaction, happy, smile, grin, smiley, happy face, excitement", - "group": "interface", - "codepoint": 61846 + "group": "interface" }, { "displayName": "Add Location", "iconName": "add-location", "tags": "location, new, plus, object, node, circle", - "group": "interface", - "codepoint": 61700 + "group": "interface" }, { "displayName": "Shapes", "iconName": "shapes", "tags": "geometric, building blocks", - "group": "interface", - "codepoint": 62128 + "group": "interface" }, { "displayName": "Shared Filter", "iconName": "shared-filter", "tags": "notification, contacts, funnel, people", - "group": "interface", - "codepoint": 62130 + "group": "interface" }, { "displayName": "One to one", "iconName": "one-to-one", "tags": "object, relation, ontology, link, connect, join, edge, nodes", - "group": "data", - "codepoint": 62054 + "group": "data" }, { "displayName": "One to many", "iconName": "one-to-many", "tags": "object, relation, ontology, branch, fork, split, usb, network, lineage", - "group": "data", - "codepoint": 62053 + "group": "data" }, { "displayName": "Many to one", "iconName": "many-to-one", "tags": "object, relation, ontology, link, connect, share, merge, flow", - "group": "data", - "codepoint": 62008 + "group": "data" }, { "displayName": "Many to many", "iconName": "many-to-many", "tags": "object, relation, ontology, graph, cross, nodes", - "group": "data", - "codepoint": 62007 + "group": "data" }, { "displayName": "Geometry: Stadium", "iconName": "stadium-geometry", "tags": "shape, race track, ellipse, discorectangle, obround, round, oval, loop, track, home button", - "group": "miscellaneous", - "codepoint": 62155 + "group": "miscellaneous" }, { "displayName": "Area of interest", "iconName": "area-of-interest", "tags": "NAI, named area, marked, marker, location, region, geo, tag, locate, point, map", - "group": "interface", - "codepoint": 61723 + "group": "interface" }, { "displayName": "Buggy", "iconName": "buggy", "tags": "vehicle, car, transportation, dune, offroad", - "group": "interface", - "codepoint": 61755 + "group": "interface" }, { "displayName": "Antenna", "iconName": "antenna", "tags": "signal, communication, radar, cellular, tower, service, beacon, radio, network", - "group": "miscellaneous", - "codepoint": 61718 + "group": "miscellaneous" }, { "displayName": "Tank", "iconName": "tank", "tags": "automobile, vehicle, armored, military, army", - "group": "interface", - "codepoint": 62177 + "group": "interface" }, { "displayName": "Third Party", "iconName": "third-party", "tags": "external, organization, organisation, network, public, access, social website, globe, global, internet", - "group": "interface", - "codepoint": 62187 + "group": "interface" }, { "displayName": "Rocket", "iconName": "rocket", "tags": "fly, space, launch, get started, kick off", - "group": "miscellaneous", - "codepoint": 62104 + "group": "miscellaneous" }, { "displayName": "Rocket (slanted)", "iconName": "rocket-slant", "tags": "fly, space", - "group": "miscellaneous", - "codepoint": 62103 + "group": "miscellaneous" }, { "displayName": "Header: three", "iconName": "header-three", "tags": "paragraph styling, formatting, triatomic hydrogen, chemistry", - "group": "editor", - "codepoint": 61923 + "group": "editor" }, { "displayName": "Helicopter", "iconName": "helicopter", "tags": "chopper, fly, aircraft, evacuation, rescue", - "group": "miscellaneous", - "codepoint": 61931 + "group": "miscellaneous" }, { "displayName": "Syringe", "iconName": "syringe", "tags": "vaccine, medicine, medication, needle, hypodermic, vaccination, shots, injections", - "group": "miscellaneous", - "codepoint": 62174 + "group": "miscellaneous" }, { "displayName": "Temperature", "iconName": "temperature", "tags": "thermometer, climate, weather", - "group": "miscellaneous", - "codepoint": 62180 + "group": "miscellaneous" }, { "displayName": "Waves", "iconName": "waves", "tags": "sea, ocean, tide, grass, water", - "group": "miscellaneous", - "codepoint": 62231 + "group": "miscellaneous" }, { "displayName": "Rain", "iconName": "rain", "tags": "precipitation, storm, weather, forecast, cloud", - "group": "miscellaneous", - "codepoint": 62085 + "group": "miscellaneous" }, { "displayName": "Lightning", "iconName": "lightning", "tags": "thunder, bolt, strike, weather, forecast, quick, flash, immediate, electricity, power, high voltage, spark", - "group": "miscellaneous", - "codepoint": 61996 + "group": "miscellaneous" }, { "displayName": "Wind", "iconName": "wind", "tags": "air, breath, draft, weather, forecast, blowing, current", - "group": "miscellaneous", - "codepoint": 62236 + "group": "miscellaneous" }, { "displayName": "Hurricane", "iconName": "hurricane", "tags": "storm, cyclone, typhoon, tropical storm, weather, forecast, swirl, fast, razor, saw, spin, whirl pool", - "group": "miscellaneous", - "codepoint": 61942 + "group": "miscellaneous" }, { "displayName": "Nest", "iconName": "nest", "tags": "indent, down right, folder, click, next, forward, continue", - "group": "interface", - "codepoint": 62032 + "group": "interface" }, { "displayName": "Target", "iconName": "target", "tags": "location, pinpoint, scope, center", - "group": "interface", - "codepoint": 62178 + "group": "interface" }, { "displayName": "Small square", "iconName": "small-square", "tags": "square, pixel, outline, border", - "group": "miscellaneous", - "codepoint": 62141 + "group": "miscellaneous" }, { "displayName": "Ship", "iconName": "ship", "tags": "transportation, boat, cruise, yacht, supply, supply chain, trip, shipping, ferry, coast guard", - "group": "interface", - "codepoint": 62132 + "group": "interface" }, { "displayName": "Cargo Ship", "iconName": "cargo-ship", "tags": "transportation, freight, boat, cruise, yacht, supply, supply chain, container, shipping, carrier, container ship", - "group": "interface", - "codepoint": 61764 + "group": "interface" }, { "displayName": "Clip", "iconName": "clip", "tags": "screenshot, segment, edit, point, target, circle, bullet, pointer, square, center, expand, dot", - "group": "interface", - "codepoint": 61782 + "group": "interface" }, { "displayName": "Add clip", "iconName": "add-clip", "tags": "screenshot, segment, select, selector, drag, addition, new, expand, point, create, object, location, marker", - "group": "interface", - "codepoint": 61697 + "group": "interface" }, { "displayName": "Rectangle", "iconName": "rectangle", "tags": "block, area, shape", - "group": "miscellaneous", - "codepoint": 62241 + "group": "miscellaneous" }, { "displayName": "Symbol: rectangle", "iconName": "symbol-rectangle", "tags": "filled shape, box", - "group": "interface", - "codepoint": 62242 + "group": "interface" }, { "displayName": "Fuel", "iconName": "fuel", "tags": "gas, refuel, gasoline tank", - "group": "interface", - "codepoint": 62243 + "group": "interface" }, { "displayName": "Playbook", "iconName": "playbook", "tags": "strategy, play, plan, course of action, map, navigate", - "group": "interface", - "codepoint": 62244 + "group": "interface" }, { "displayName": "Rectangle height", "iconName": "rect-height", "tags": "card, expand, elevator buttons, switch, up, down, toggle, vertical movement, dropdown list, choose", - "group": "interface", - "codepoint": 62245 + "group": "interface" }, { "displayName": "Rectangle width", "iconName": "rect-width", "tags": "card, horizontal, expand, tag, arrows, triangle brackets", - "group": "interface", - "codepoint": 62246 + "group": "interface" }, { "displayName": "Divide", "iconName": "divide", "tags": "math, symbol, mathematical, equations, expression, formula, division sign", - "group": "action", - "codepoint": 62247 + "group": "action" }, { "displayName": "Color fill", "iconName": "color-fill", "tags": "bucket, pour, drink", - "group": "interface", - "codepoint": 62248 + "group": "interface" }, { "displayName": "Horizontal space inbetween", "iconName": "horizontal-inbetween", "tags": "space, gap, in between, push out, expand, code, reformat, view source, divide, separate", - "group": "interface", - "codepoint": 62249 + "group": "interface" }, { "displayName": "Vertical space inbetween", "iconName": "vertical-inbetween", "tags": "space, vertical, gap, in between, expand, grow, elevator, expand line, lift", - "group": "interface", - "codepoint": 62250 + "group": "interface" }, { "displayName": "Open application", "iconName": "open-application", "tags": "new tab, external, click website, link to page, export to pdf, share, open in pop-up, upload, data, window, screen", - "group": "interface", - "codepoint": 62251 + "group": "interface" }, { "displayName": "Floating point number", "iconName": "floating-point", "tags": "number, double, decimal, version, first, original", - "group": "miscellaneous", - "codepoint": 62252 + "group": "miscellaneous" }, { "displayName": "Floating point array", "iconName": "array-floating-point", "tags": "data, type, list, number, numeric, float, double, decimal, format, version", - "group": "miscellaneous", - "codepoint": 62253 + "group": "miscellaneous" }, { "displayName": "Bug", "iconName": "bug", "tags": "issue, error, broken, insect, code, fail, software", - "group": "miscellaneous", - "codepoint": 62254 + "group": "miscellaneous" }, { "displayName": "Regex", "iconName": "regex", "tags": "syntax, code, string, parse, parsing, regular, expression", - "group": "miscellaneous", - "codepoint": 62255 + "group": "miscellaneous" }, { "displayName": "Anchor", "iconName": "anchor", "tags": "link, ship, navy, boat, sea, ocean, attach, sink", - "group": "action", - "codepoint": 62256 + "group": "action" }, { "displayName": "At", "iconName": "at", "tags": "email, mention, tag, address, asperand, rate of", - "group": "miscellaneous", - "codepoint": 62257 + "group": "miscellaneous" }, { "displayName": "Low Voltage Pole", "iconName": "low-voltage-pole", "tags": "power pole, electricity, utilities", - "group": "utilities", - "codepoint": 62258 + "group": "utilities" }, { "displayName": "High Voltage Pole", "iconName": "high-voltage-pole", "tags": "power pole, electricity, utilities", - "group": "utilities", - "codepoint": 62259 + "group": "utilities" }, { "displayName": "Small info sign", "iconName": "small-info-sign", "tags": "notification, information, circle, message, sign, info, tooltip", - "group": "interface", - "codepoint": 62260 + "group": "interface" }, { "displayName": "Aimpoints target", "iconName": "aimpoints-target", "tags": "target, aim, point, crosshair, mark", - "group": "interface", - "codepoint": 62261 + "group": "interface" }, { "displayName": "Cross circle", "iconName": "cross-circle", "tags": "circle, cross mark, fail, delete, no, close, remove, not, available, unavailable, wrong, incorrect, cancel", - "group": "action", - "codepoint": 62262 + "group": "action" }, { "displayName": "Intelligence", "iconName": "intelligence", "tags": "intelligence, intel, observe, watch, capture, humint", - "group": "miscellaneous", - "codepoint": 62263 + "group": "miscellaneous" }, { "displayName": "Axle", "iconName": "axle", "tags": "axle, shaft, rail, train, wheels", - "group": "miscellaneous", - "codepoint": 62264 + "group": "miscellaneous" }, { "displayName": "Subscript", "iconName": "subscript", "tags": "typography, text, font style", - "group": "editor", - "codepoint": 62265 + "group": "editor" }, { "displayName": "Superscript", "iconName": "superscript", "tags": "typography, text, font style", - "group": "editor", - "codepoint": 62266 + "group": "editor" }, { "displayName": "Locomotive", "iconName": "locomotive", "tags": "locomotive, loco, rail, train, engine, freight", - "group": "miscellaneous", - "codepoint": 62267 + "group": "miscellaneous" }, { "displayName": "Sensor", "iconName": "sensor", "tags": "sensor, detector, iot, wayside, alarm, device", - "group": "miscellaneous", - "codepoint": 62268 + "group": "miscellaneous" }, { "displayName": "Model", "iconName": "model", "tags": "model, ml", - "group": "action", - "codepoint": 62269 + "group": "action" }, { "displayName": "Lengthen text", "iconName": "lengthen-text", "tags": "long, longer, more, words, symbols", - "group": "editor", - "codepoint": 62270 + "group": "editor" }, { "displayName": "Shorten text", "iconName": "shorten-text", "tags": "short, shorter, less, words, symbols", - "group": "editor", - "codepoint": 62271 + "group": "editor" }, { "displayName": "Spell check", "iconName": "spell-check", "tags": "check, spelling, verify, validate, words, dictionary, grammar, text, edit", - "group": "editor", - "codepoint": 62272 + "group": "editor" }, { "displayName": "Detection", "iconName": "detection", "tags": "model, ml, scan", - "group": "miscellaneous", - "codepoint": 62273 + "group": "miscellaneous" }, { "displayName": "Ammunition", "iconName": "ammunition", "tags": "bullets, munition, rockets", - "group": "miscellaneous", - "codepoint": 62274 + "group": "miscellaneous" }, { "displayName": "Microphone", "iconName": "microphone", "tags": "microphone, mic, speaker", - "group": "media", - "codepoint": 62275 + "group": "media" }, { "displayName": "Geotime", "iconName": "geotime", "tags": "geo, time, date, location, spatial", - "group": "interface", - "codepoint": 62276 + "group": "interface" }, { "displayName": "Unlink", "iconName": "unlink", "tags": "unlink, link, property, connection", - "group": "action", - "codepoint": 62277 + "group": "action" }, { "displayName": "Paste variable", "iconName": "paste-variable", "tags": "paste, clipboard, variable", - "group": "action", - "codepoint": 62278 + "group": "action" }, { "displayName": "Phone call", "iconName": "phone-call", "tags": "phone, call, talk", - "group": "communication", - "codepoint": 62279 + "group": "communication" }, { "displayName": "Phone forward", "iconName": "phone-forward", "tags": "phone, call, forward", - "group": "communication", - "codepoint": 62280 + "group": "communication" }, { "displayName": "new-shield", "iconName": "new-shield", "tags": "shield, new, add, marking", - "group": "security", - "codepoint": 62281 + "group": "security" }, { "displayName": "group-item", "iconName": "group-item", "tags": "group, widget, item", - "group": "interface", - "codepoint": 62282 + "group": "interface" }, { "displayName": "Input", "iconName": "input", "tags": "input, right, arrow", - "group": "interface", - "codepoint": 62283 + "group": "interface" }, { "displayName": "generate", "iconName": "generate", "tags": "generate, ai, aip, create", - "group": "action", - "codepoint": 62284 + "group": "action" }, { "displayName": "explain", "iconName": "explain", "tags": "explain, ai, aip, describe", - "group": "action", - "codepoint": 62285 + "group": "action" }, { "displayName": "Cloud: tick", "iconName": "cloud-tick", "tags": "file, storage, transfer, save", - "group": "file", - "codepoint": 62286 + "group": "file" }, { "displayName": "trophy", "iconName": "trophy", "tags": "win, award, sport, trophy", - "group": "miscellaneous", - "codepoint": 62287 + "group": "miscellaneous" }, { "displayName": "soccer-ball", "iconName": "soccer-ball", "tags": "soccer, ball, sports", - "group": "miscellaneous", - "codepoint": 62288 + "group": "miscellaneous" }, { "displayName": "sports-stadium", "iconName": "sports-stadium", "tags": "stadium, sports", - "group": "miscellaneous", - "codepoint": 62289 + "group": "miscellaneous" }, { "displayName": "team", "iconName": "team", "tags": "person, people, teammate, team, sports", - "group": "miscellaneous", - "codepoint": 62290 + "group": "miscellaneous" }, { "displayName": "crop", "iconName": "crop", "tags": "image, media, edit, cut, resize", - "group": "action", - "codepoint": 62291 + "group": "action" }, { "displayName": "bring forward", "iconName": "bring-forward", "tags": "layer, stack, drawer, move", - "group": "action", - "codepoint": 62292 + "group": "action" }, { "displayName": "send backward", "iconName": "send-backward", "tags": "layer, stack, drawer, move", - "group": "action", - "codepoint": 62293 + "group": "action" }, { "displayName": "endnote", "iconName": "endnote", "tags": "footnote, notebook, note, reference, text, citation", - "group": "editor", - "codepoint": 62294 + "group": "editor" }, { "displayName": "Binary number", "iconName": "binary-number", "tags": "data, type, number, numeric, format", - "group": "data", - "codepoint": 62295 + "group": "data" }, { "displayName": "Curly braces", "iconName": "curly-braces", "tags": "data, type, format,punctuation, grammar", - "group": "miscellaneous", - "codepoint": 62296 + "group": "miscellaneous" }, { "displayName": "Bullseye", "iconName": "bullseye", "tags": "geography, location, position, map, direction, reference, point, target", - "group": "miscellaneous", - "codepoint": 62297 + "group": "miscellaneous" }, { "displayName": "Cloud: server", "iconName": "cloud-server", "tags": "storage, data, connectivity, database", - "group": "interface", - "codepoint": 62298 + "group": "interface" }, { "displayName": "Clipboard: file", "iconName": "clipboard-file", "tags": "paste, attach, file", - "group": "action", - "codepoint": 62299 + "group": "action" }, { "displayName": "Backward ten", "iconName": "backward-ten", "tags": "rewind, second, control, video", - "group": "media", - "codepoint": 62300 + "group": "media" }, { "displayName": "Forward ten", "iconName": "forward-ten", "tags": "second, control, video", - "group": "media", - "codepoint": 62301 + "group": "media" }, { "displayName": "Vector", "iconName": "vector", "tags": "math, numbers, model, ml, array", - "group": "miscellaneous", - "codepoint": 62302 + "group": "miscellaneous" }, { "displayName": "Layout two columns", "iconName": "layout-two-columns", "tags": "presentation, arrangement, layout, two, grid, columns", - "group": "interface", - "codepoint": 62303 + "group": "interface" }, { "displayName": "Layout two rows", "iconName": "layout-two-rows", "tags": "presentation, arrangement, layout, two, grid, rows", - "group": "interface", - "codepoint": 62304 + "group": "interface" }, { "displayName": "Layout three columns", "iconName": "layout-three-columns", "tags": "presentation, arrangement, layout, three, grid, columns", - "group": "interface", - "codepoint": 62305 + "group": "interface" }, { "displayName": "Layout three rows", "iconName": "layout-three-rows", "tags": "presentation, arrangement, layout, three, grid, rows", - "group": "interface", - "codepoint": 62306 + "group": "interface" }, { "displayName": "Layout bottom row two tiles", "iconName": "layout-bottom-row-two-tiles", "tags": "presentation, arrangement, layout, two, grid, rows", - "group": "interface", - "codepoint": 62307 + "group": "interface" }, { "displayName": "Layout bottom row three tiles", "iconName": "layout-bottom-row-three-tiles", "tags": "presentation, arrangement, layout, three, grid, rows", - "group": "interface", - "codepoint": 62308 + "group": "interface" }, { "displayName": "Layout left column two tiles", "iconName": "layout-left-column-two-tiles", "tags": "presentation, arrangement, layout, two, grid, columns", - "group": "interface", - "codepoint": 62309 + "group": "interface" }, { "displayName": "Layout left column three tiles", "iconName": "layout-left-column-three-tiles", "tags": "presentation, arrangement, layout, three, grid, columns", - "group": "interface", - "codepoint": 62310 + "group": "interface" }, { "displayName": "Layout right column two tiles", "iconName": "layout-right-column-two-tiles", "tags": "presentation, arrangement, layout, two, grid, columns", - "group": "interface", - "codepoint": 62311 + "group": "interface" }, { "displayName": "Layout right column three tiles", "iconName": "layout-right-column-three-tiles", "tags": "presentation, arrangement, layout, three, grid, columns", - "group": "interface", - "codepoint": 62312 + "group": "interface" }, { "displayName": "Layout top row two tiles", "iconName": "layout-top-row-two-tiles", "tags": "presentation, arrangement, layout, two, grid, rows", - "group": "interface", - "codepoint": 62313 + "group": "interface" }, { "displayName": "Layout top row three tiles", "iconName": "layout-top-row-three-tiles", "tags": "presentation, arrangement, layout, three, grid, rows", - "group": "interface", - "codepoint": 62314 + "group": "interface" }, { "displayName": "CSS style", "iconName": "css-style", "tags": "css, style, file, format", - "group": "file", - "codepoint": 62315 + "group": "file" }, { "displayName": "Data sync", "iconName": "data-sync", "tags": "sync, stack, storage, can, data, source, dataset, data source, database", - "group": "data", - "codepoint": 62316 + "group": "data" }, { "displayName": "Excavator", "iconName": "excavator", "tags": "construction, dig, machine, vehicle, work", - "group": "miscellaneous", - "codepoint": 62317 + "group": "miscellaneous" }, { "displayName": "Table sync", "iconName": "table-sync", "tags": "sync, storage, data, source, dataset, data source, index, rows, columns, agenda, list, spreadsheet, table, sheet, entry", - "group": "table", - "codepoint": 62318 + "group": "table" }, { "displayName": "Data search", "iconName": "data-search", "tags": "storage, data, dataset, search, query", - "group": "data", - "codepoint": 62319 + "group": "data" }, { "displayName": "Output", "iconName": "output", "tags": "output, right, arrow", - "group": "interface", - "codepoint": 62320 + "group": "interface" }, { "displayName": "Range ring", "iconName": "range-ring", "tags": "layer, map, reference, point, geography, distance, boundry", - "group": "miscellaneous", - "codepoint": 62321 + "group": "miscellaneous" }, { "displayName": "Block promote", "iconName": "block-promote", "tags": "release, channel, upgrade, line, arrow, direction, next, forward", - "group": "interface", - "codepoint": 62322 + "group": "interface" }, { "displayName": "Cubes", "iconName": "cubes", "tags": "module, blocks, shapes, hexagons, stack, geometry", - "group": "miscellaneous", - "codepoint": 62323 + "group": "miscellaneous" }, { "displayName": "Hexagon", "iconName": "hexagon", "tags": "entity, shape, geometry, polygon", - "group": "miscellaneous", - "codepoint": 62324 + "group": "miscellaneous" }, { "displayName": "Package", "iconName": "package", "tags": "product, box, parcel, delivery, container, carton, archive", - "group": "file", - "codepoint": 62325 + "group": "file" }, { "displayName": "Pill", "iconName": "pill", "tags": "label, capsule, medicine, health, drug, pharmaceutical", - "group": "miscellaneous", - "codepoint": 62326 + "group": "miscellaneous" }, { "displayName": "Server install", "iconName": "server-install", "tags": "environment, setup, network, IT, data, hosting, hardware", - "group": "interface", - "codepoint": 62327 + "group": "interface" }, { "displayName": "Server", "iconName": "server", "tags": "environment, setup, network, IT, data, hosting, hardware", - "group": "interface", - "codepoint": 62328 + "group": "interface" }, { "displayName": "Tag add", "iconName": "tag-add", "tags": "release, publish, label, badge, identification, plus, create", - "group": "action", - "codepoint": 62329 + "group": "action" }, { "displayName": "Tag promote", "iconName": "tag-promote", "tags": "release, label, badge, identification, upgrade, arrow, direction, next, forward", - "group": "action", - "codepoint": 62330 + "group": "action" }, { "displayName": "Tag refresh", "iconName": "tag-refresh", "tags": "release, evaluate, label, badge, identification, update, sync", - "group": "action", - "codepoint": 62331 + "group": "action" }, { "displayName": "Tag undo", "iconName": "tag-undo", "tags": "release, label, badge, identification, revert, recall, back, cancel, reverse, revoke, rollback", - "group": "action", - "codepoint": 62332 + "group": "action" }, { "displayName": "Tags", "iconName": "tags", "tags": "releases, labels, badges, identification, multiple, organization", - "group": "action", - "codepoint": 62333 + "group": "action" }, { "displayName": "Wrench redo", "iconName": "wrench-redo", "tags": "maintenance, override, tool, repair, spanner, work, fix, forward, window", - "group": "miscellaneous", - "codepoint": 62334 + "group": "miscellaneous" }, { "displayName": "Wrench snooze", "iconName": "wrench-snooze", "tags": "maintenance, suppress, tool, repair, spanner, work, delay, window", - "group": "miscellaneous", - "codepoint": 62335 + "group": "miscellaneous" }, { "displayName": "Wrench time", "iconName": "wrench-time", "tags": "maintenance, tool, repair, spanner, work, clock, duration, window", - "group": "miscellaneous", - "codepoint": 62336 + "group": "miscellaneous" }, { "displayName": "Panel", "iconName": "panel", "tags": "sidebar, layout, window, side bar, drawer, menu, website, dashboard", - "group": "table", - "codepoint": 62337 + "group": "table" }, { "displayName": "Globe: network add", "iconName": "globe-network-add", "tags": "planet, earth, map, world, internet, website, create, plus", - "group": "miscellaneous", - "codepoint": 62338 + "group": "miscellaneous" }, { "displayName": "Cube: edit", "iconName": "cube-edit", "tags": "shape, 3d, object, box, module, block, geometry, change, modify, update", - "group": "miscellaneous", - "codepoint": 62339 + "group": "miscellaneous" }, { "displayName": "Fighter Jet", "iconName": "fighter-jet", "tags": "shape, 3d, object, vehicle, military, flight, jet, fly, aircraft, aerospace", - "group": "interface", - "codepoint": 62340 + "group": "interface" }, { "displayName": "Linked squares", "iconName": "linked-squares", "tags": "app pairing, application, browser, cams, chain, connect, data, link, page, pages, platforms, sync, website, windows", - "group": "interface", - "codepoint": 62341 + "group": "interface" }, { "displayName": "British Pound", "iconName": "british-pound", "tags": "currency, money, sign, pound, uk, gbp", - "group": "miscellaneous", - "codepoint": 62342 + "group": "miscellaneous" }, { "displayName": "Arrows: arc", "iconName": "arrows-arc", "tags": "rotate cursor, curved, arrows", - "group": "interface", - "codepoint": 62343 + "group": "interface" }, { "displayName": "Rotate clockwise", "iconName": "rotate-cw", "tags": "arrow, box, object, clockwise, cw, right", - "group": "interface", - "codepoint": 62344 + "group": "interface" }, { "displayName": "Rotate counterclockwise", "iconName": "rotate-ccw", "tags": "arrow, box, object, counter-clockwise, ccw, left", - "group": "interface", - "codepoint": 62345 + "group": "interface" }, { "displayName": "Table: add", "iconName": "th-add", "tags": "index, rows, columns, agenda, list, spreadsheet, table, sheet, entry, new, create, plus", - "group": "table", - "codepoint": 62346 + "group": "table" }, { "displayName": "Table: list add", "iconName": "th-list-add", "tags": "index, rows, columns, agenda, list, order, series, spreadsheet, table, sheet, entry, new, create, plus", - "group": "table", - "codepoint": 62347 + "group": "table" }, { "displayName": "Table: virtual", "iconName": "th-virtual", "tags": "table, index, row, rows, columns, agenda, list, order, series, spreadsheet, table, sheet, entry, provenance", - "group": "table", - "codepoint": 62348 + "group": "table" }, { "displayName": "Table: virtual add", "iconName": "th-virtual-add", "tags": "table, index, row, rows, columns, agenda, list, order, series, spreadsheet, table, sheet, entry, new, create, plus, provenance", - "group": "table", - "codepoint": 62349 + "group": "table" }, { "displayName": "Filter sort: ascending", "iconName": "filter-sort-asc", "tags": "sort, filter, ascending", - "group": "interface", - "codepoint": 62350 + "group": "interface" }, { "displayName": "Filter sort: descending", "iconName": "filter-sort-desc", "tags": "sort, filter, descending", - "group": "interface", - "codepoint": 62351 + "group": "interface" }, { "displayName": "Object view", "iconName": "object-view", "tags": "shape, 3d, object, box, container, view", - "group": "miscellaneous", - "codepoint": 62352 + "group": "miscellaneous" }, { "displayName": "Data cloud", "iconName": "data-cloud", "tags": "data, source, data source, sync, cloud", - "group": "data", - "codepoint": 62353 + "group": "data" }, { "displayName": "Join: subtract right", "iconName": "subtract-right-join", "tags": "circles, combine, connect, add, subtract, part, slice, intersection, venn diagram, intersect", - "group": "action", - "codepoint": 62354 + "group": "action" }, { "displayName": "Run History", "iconName": "run-history", "tags": "run, play, history, rewind, review, re-watch", - "group": "action", - "codepoint": 62355 + "group": "action" }, { "displayName": "Object Array", "iconName": "array-object", "tags": "data, type, list, object", - "group": "miscellaneous", - "codepoint": 62356 + "group": "miscellaneous" }, { "displayName": "Construction", "iconName": "construction", "tags": "blockage, sign, road, stop", - "group": "miscellaneous", - "codepoint": 62357 + "group": "miscellaneous" }, { "displayName": "Announcement", "iconName": "announcement", "tags": "speaker, megaphone, loud, noise", - "group": "miscellaneous", - "codepoint": 62358 + "group": "miscellaneous" }, { "displayName": "Phone Search", "iconName": "phone-search", "tags": "investigate, inspect, phone, magnify", - "group": "interface", - "codepoint": 62359 + "group": "interface" }, { "displayName": "Notifications: add", "iconName": "notifications-add", "tags": "notification, plus, new, alert", - "group": "interface", - "codepoint": 62360 + "group": "interface" }, { "displayName": "Selection box", "iconName": "selection-box", "tags": "dashed, square, interface, interface object", - "group": "editor", - "codepoint": 62361 + "group": "editor" }, { "displayName": "Selection box: add", "iconName": "selection-box-add", "tags": "dashed, square, plus, add, interface, interface object", - "group": "editor", - "codepoint": 62362 + "group": "editor" }, { "displayName": "Selection box: edit", "iconName": "selection-box-edit", "tags": "dashed, square, modify, pencil, edit, interface, interface object", - "group": "editor", - "codepoint": 62363 + "group": "editor" }, { "displayName": "Pistol", "iconName": "pistol", "tags": "gun, handgun, firearm, shoot", - "group": "miscellaneous", - "codepoint": 62364 + "group": "miscellaneous" }, { "displayName": "Add: child", "iconName": "add-child", "tags": "descendant, nested, inside, within, insert, bottom, after", - "group": "interface", - "codepoint": 62365 + "group": "interface" }, { "displayName": "Add: parent", "iconName": "add-parent", "tags": "Ancestor, above, prior, top, insert", - "group": "miscellaneous", - "codepoint": 62366 + "group": "miscellaneous" }, { "displayName": "Root folder", "iconName": "root-folder", "tags": "folder, space, file-system, collaboration", - "group": "interface", - "codepoint": 62367 + "group": "interface" }, { "displayName": "Document: code", "iconName": "document-code", "tags": "code, script, programming, software, development, repository", - "group": "file", - "codepoint": 62368 + "group": "file" }, { "displayName": "Document: locked", "iconName": "document-locked", "tags": "file, secure, password, lock, protect", - "group": "file", - "codepoint": 62369 + "group": "file" }, { "displayName": "Gift box", "iconName": "gift-box", "tags": "gift, box, present, ribbon", - "group": "miscellaneous", - "codepoint": 62370 + "group": "miscellaneous" }, { "displayName": "Delete clip", "iconName": "delete-clip", "tags": "screenshot, segment, select, selector, delete, point, object, location, marker", - "group": "interface", - "codepoint": 62371 + "group": "interface" }, { "displayName": "Sweep", "iconName": "sweep", "tags": "broom, sweeper, broomstick, clean, linter, brush", - "group": "action", - "codepoint": 62372 + "group": "action" }, { "displayName": "Page break", "iconName": "page-break", "tags": "page break", - "group": "editor", - "codepoint": 62373 + "group": "editor" }, { "displayName": "Branch locked", "iconName": "branch-locked", "tags": "github, repository, code, command, version control, fork", - "group": "action", - "codepoint": 62374 + "group": "action" }, { "displayName": "Branch unlocked", "iconName": "branch-unlocked", "tags": "github, repository, code, command, version control, fork", - "group": "action", - "codepoint": 62375 + "group": "action" }, { "displayName": "Selection box: remove", "iconName": "selection-box-remove", "tags": "dashed, square, interfacae, remove, delete, interface object", - "group": "editor", - "codepoint": 62376 + "group": "editor" }, { "displayName": "Markdown", "iconName": "markdown", "tags": "markdown, text", - "group": "editor", - "codepoint": 62377 + "group": "editor" }, { "displayName": "Refresh off", "iconName": "refresh-off", "tags": "refresh, off, disabled, circle, arrow, reload", - "group": "action", - "codepoint": 62378 + "group": "action" }, { "displayName": "Variable layer", "iconName": "variable-layer", "tags": "variable, layer, global, page", - "group": "table", - "codepoint": 62379 + "group": "table" }, { "displayName": "Git: rebase", "iconName": "git-rebase", "tags": "github, repository, code, command, branch, version control", - "group": "action", - "codepoint": 62380 + "group": "action" }, { "displayName": "Console alert", "iconName": "console-alert", "tags": "terminal, coding, code block, command line, alert, warning", - "group": "interface", - "codepoint": 62381 + "group": "interface" }, { "displayName": "Wrap lines", "iconName": "wrap-lines", "tags": "wrap lines, wrap, text, arrow, return ", - "group": "editor", - "codepoint": 62382 + "group": "editor" }, { "displayName": "Won", "iconName": "won", "tags": "currency, money, sign, south korea, krw", - "group": "miscellaneous", - "codepoint": 62383 + "group": "miscellaneous" }, { "displayName": "Yen", "iconName": "yen", "tags": "currency, money, sign, japan, jpy", - "group": "miscellaneous", - "codepoint": 62384 + "group": "miscellaneous" }, { "displayName": "Drone: Quadcopter", "iconName": "drone", "tags": "drone, uav, aircraft, quadcopter, flying, vehicle", - "group": "miscellaneous", - "codepoint": 62385 + "group": "miscellaneous" }, { "displayName": "Drone: UAV", "iconName": "drone-uav", "tags": "drone, uav, aircraft, flying, vehicle", - "group": "miscellaneous", - "codepoint": 62386 + "group": "miscellaneous" }, { "displayName": "Spin", "iconName": "spin", "tags": "rotate, turn, cycle, arrow, movement, activity", - "group": "miscellaneous", - "codepoint": 62387 + "group": "miscellaneous" }, { "displayName": "Function: minimal", "iconName": "function-minimal", "tags": "math, calculation, logic, fx, formula, spreadsheet", - "group": "table", - "codepoint": 62388 + "group": "table" }, { "displayName": "Cube cutout", "iconName": "cube-cutout", "tags": "shape, 3d, object, box, container, view", - "group": "miscellaneous", - "codepoint": 62389 + "group": "miscellaneous" }, { "displayName": "Cube cutouts", "iconName": "cube-cutouts", "tags": "shape, 3d, object, box, layers, container, view", - "group": "miscellaneous", - "codepoint": 62390 + "group": "miscellaneous" }, { "displayName": "Fork end", "iconName": "fork-end", "tags": "merge, join", - "group": "action", - "codepoint": 62391 + "group": "action" }, { "displayName": "Add application", "iconName": "add-application", "tags": "application, browser, windows, platforms, pages, page, website", - "group": "action", - "codepoint": 62392 + "group": "action" }, { "displayName": "Add column: derived", "iconName": "add-derived-column", "tags": "table, column, add, calculate, formula, new, spreadsheet, data, plus", - "group": "table", - "codepoint": 62393 + "group": "table" }, { "displayName": "Add tile", "iconName": "add-tile", "tags": "plus, layout, module, grid, card, new, create, panel", - "group": "interface", - "codepoint": 62394 + "group": "interface" }, { "displayName": "Dashed circle", "iconName": "circle-dashed", "tags": "dotted, outline, border, pending, placeholder, empty, incomplete, partial", - "group": "miscellaneous", - "codepoint": 62395 + "group": "miscellaneous" }, { "displayName": "Descendant", "iconName": "descendant", "tags": "child, hierarchy, tree, node, nested, branch, relationship, lineage, arrow, sub", - "group": "action", - "codepoint": 62396 + "group": "action" }, { "displayName": "Engagement", "iconName": "engagement", "tags": "interaction, person, communication, chat, activity, participation, social, audience, outreach, user", - "group": "interface", - "codepoint": 62397 + "group": "interface" }, { "displayName": "New comment", "iconName": "new-comment", "tags": "comment, add, chat, speech, bubble, message, discussion, plus, create", - "group": "action", - "codepoint": 62398 + "group": "action" }, { "displayName": "Outer join", "iconName": "outer-join", "tags": "venn diagram, circles, overlap, union, data, merge, combine, set, database, sql", - "group": "action", - "codepoint": 62399 + "group": "action" }, { "displayName": "Popout", "iconName": "popout", "tags": "external, window, arrow, open, new window, detach, breakout, expand, separate", - "group": "action", - "codepoint": 62400 + "group": "action" }, { "displayName": "Frame to frame", "iconName": "frame-to-frame", "tags": "command, connection, connect, link, application, flow", - "group": "action", - "codepoint": 62401 + "group": "action" } ] diff --git a/packages/icons/package.json b/packages/icons/package.json index 51d0caa6710..b74befd5e87 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,12 +1,11 @@ { "name": "@blueprintjs/icons", "version": "6.9.0", - "description": "Components, fonts, icons, and css files for creating and displaying icons.", + "description": "Components and icon assets for creating and displaying SVG icons.", "main": "lib/cjs/generated/index.js", "module": "lib/esm/generated/index.js", "esnext": "lib/esnext/generated/index.js", "typings": "lib/esm/generated/index.d.ts", - "style": "lib/css/blueprint-icons.css", "files": [ "lib", "src", @@ -17,22 +16,17 @@ ], "scripts": { "clean": "rm -rf dist/* || rm -rf lib/**/* || rm -rf src/generated/* || true", - "compile": "npm-run-all -s \"generate-icon-src\" -p \"compile:*\" -p \"copy:*\"", + "compile": "npm-run-all -s \"generate-icon-src\" -p \"compile:*\"", "compile:esm": "tsc -p ./src/tsconfig.build.json", "compile:cjs": "tsc -p ./src/tsconfig.build.json -m commonjs --verbatimModuleSyntax false --outDir lib/cjs", "compile:esnext": "tsc -p ./src/tsconfig.build.json -t esnext --outDir lib/esnext", - "compile:css": "sass-compile ./src", - "copy:scss": "scripts/copy-scss.sh", - "copy:fonts": "scripts/copy-fonts.sh", - "dev": "run-p \"compile:esm --watch\" \"compile:css --watch\"", + "dev": "run-p \"compile:esm --watch\"", "dist": "run-s \"dist:*\"", - "dist:css": "css-dist lib/css", "dist:verify": "assert-package-layout", - "generate-icon-src": "node scripts/generate-icon-fonts.mjs && node scripts/generate-icon-paths.mjs && node scripts/generate-icon-components.mjs", - "lint": "run-p lint:scss lint:es", - "lint:scss": "sass-lint", + "generate-icon-src": "node scripts/generate-icon-paths.mjs && node scripts/generate-icon-components.mjs", + "lint": "es-lint", "lint:es": "es-lint", - "lint-fix": "es-lint --fix && sass-lint --fix", + "lint-fix": "es-lint --fix", "test": "run-s test:typeCheck test:iso test:vitest:run", "test:typeCheck": "tsc -p ./src/tsconfig.test.json", "test:iso": "vitest run --config vitest.config.isotest.mts", @@ -60,16 +54,13 @@ "@blueprintjs/stylelint-plugin": "workspace:^", "@blueprintjs/test-commons": "workspace:^", "@testing-library/react": "catalog:", - "@twbs/fantasticon": "^2.7.2", "@vitejs/plugin-react": "catalog:", - "@types/handlebars": "^4.1.0", "handlebars": "^4.7.8", "vitest": "catalog:", "npm-run-all": "^4.1.5", "react": "^18.3.1", "react-dom": "^18.3.1", "react-test-renderer": "^18.3.1", - "svg-parser": "^2.0.4", "typescript": "~5.9.3", "webpack-cli": "^5.1.4" }, diff --git a/packages/icons/scripts/common.mjs b/packages/icons/scripts/common.mjs index f4a1bc875d6..6a1b5ac0614 100644 --- a/packages/icons/scripts/common.mjs +++ b/packages/icons/scripts/common.mjs @@ -26,24 +26,12 @@ export const NS = "bp6"; /** @type { [16, 20] } */ export const ICON_SIZES = [16, 20]; -/** - * We need to scale up the icon paths during conversion so that the icons do not get visually degraded - * or compressed through rounding errors (svgicons2svgfont rasterizes the icons in order to convert them). - * - * After generating the icon font files, we also need to take care to scale the paths _back down_ by this - * factor in the icon component SVG paths, since we read the upscaled paths from SVG font at that point. - * - * @see https://github.com/palantir/blueprint/issues/5002 - */ -export const ICON_RASTER_SCALING_FACTOR = 20; - /** * @typedef {Object} IconMetadata * @property {string} displayName - "Icon name" for display * @property {string} iconName - `icon-name` for IconName and CSS class * @property {string} tags - comma separated list of tags describing this icon * @property {string} group - group to which this icon belongs - * @property {number} codepoint - icon font codepoint */ /** @type {IconMetadata[]} */ diff --git a/packages/icons/scripts/copy-fonts.sh b/packages/icons/scripts/copy-fonts.sh deleted file mode 100755 index 27fe69d5ddf..00000000000 --- a/packages/icons/scripts/copy-fonts.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# Reason: fonts must exist in output dir for CSS to reference them -# Usage: copy-fonts -# set INPUT / OUTPUT env varibles to change directories - -INPUT="${INPUT:-src/generated}" -OUTPUT="${OUTPUT:-lib/css}" - -mkdir -p "$OUTPUT" - -iconSizes=(16 20) - -for size in "${iconSizes[@]}"; do - for font in "$INPUT"/"$size"px/*.{eot,ttf,svg,woff,woff2}; do - cp "$font" "$OUTPUT/" - done -done diff --git a/packages/icons/scripts/copy-scss.sh b/packages/icons/scripts/copy-scss.sh deleted file mode 100755 index fa34d380dad..00000000000 --- a/packages/icons/scripts/copy-scss.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -# Reason: provide a public API to import Sass variables -# Usage: copy-scss -# set INPUT / OUTPUT env varibles to change directories - -INPUT="${INPUT:-src}" -OUTPUT="${OUTPUT:-lib/scss}" - -mkdir -p "$OUTPUT" -cp "$INPUT/generated/16px/_icon-variables.scss" "$OUTPUT/blueprint-icons-16.scss" -cp "$INPUT/generated/20px/_icon-variables.scss" "$OUTPUT/blueprint-icons-20.scss" - -cp "$INPUT/templates/_lib_variables.scss" "$OUTPUT/variables.scss" diff --git a/packages/icons/scripts/extractPathsFromResourceSvg.mjs b/packages/icons/scripts/extractPathsFromResourceSvg.mjs new file mode 100644 index 00000000000..e4e5756eedf --- /dev/null +++ b/packages/icons/scripts/extractPathsFromResourceSvg.mjs @@ -0,0 +1,32 @@ +/* + * Copyright 2026 Palantir Technologies, Inc. All rights reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// @ts-check + +/** + * Extracts SVG path `d` attribute values from optimized SVG markup. + * + * @param {string} markup + * @returns {string[]} + */ +export function extractPathsFromResourceSvg(markup) { + return ( + (markup.match(/ d="([^"]+)"/g) || []) + // strip off leading ` d="` and trailing `"` + .map(s => s.slice(4, -1)) + // strip out newlines and tabs, but keep other whitespace + .map(s => s.replace(/[\n\t]/g, "")) + ); +} diff --git a/packages/icons/scripts/generate-icon-components.mjs b/packages/icons/scripts/generate-icon-components.mjs index 9e4bab3d1f9..79c1a88b782 100644 --- a/packages/icons/scripts/generate-icon-components.mjs +++ b/packages/icons/scripts/generate-icon-components.mjs @@ -15,8 +15,6 @@ /** * @fileoverview Generates SVG React components for each icon. - * N.B. we expect ../src/generated/ to contain SVG definitions of all the icons already - * generated by fantasticon (in other words, run ./generate-icon-fonts.js first). */ // @ts-check @@ -25,24 +23,14 @@ import { pascalCase } from "change-case"; import Handlebars from "handlebars"; import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { join, resolve } from "node:path"; -import { parse } from "svg-parser"; -import { generatedComponentsDir, generatedSrcDir, ICON_RASTER_SCALING_FACTOR, ICON_SIZES } from "./common.mjs"; +import { svgOptimizer } from "@blueprintjs/node-build-scripts"; + +import { generatedComponentsDir, generatedSrcDir, ICON_SIZES, iconResourcesDir, iconsMetadata } from "./common.mjs"; +import { extractPathsFromResourceSvg } from "./extractPathsFromResourceSvg.mjs"; Handlebars.registerHelper("pascalCase", iconName => pascalCase(iconName)); -/** - * Notes on icon component template implementation: - * - * The components rendered by this template (``, ``, etc.) rely on a centered scale `transform` to - * display their SVG paths correctly. - * - * In this template, the `` element applies `transform-origin` using the `style` attribute rather than - * `transformOrigin`. Although `trasformOrigin` was added as a supported SVG attribute to React in 2023, - * it is still difficult to use without compile-time and/or runtime errors, see: - * - https://github.com/facebook/react/pull/26130 - * - https://github.com/palantir/blueprint/issues/6591 - */ const iconComponentTemplate = Handlebars.compile( readFileSync(resolve(import.meta.dirname, "iconComponent.tsx.hbs"), "utf8"), ); @@ -51,50 +39,46 @@ const componentsIndexTemplate = Handlebars.compile( ); const indexTemplate = Handlebars.compile(readFileSync(resolve(import.meta.dirname, "index.ts.hbs"), "utf8")); -/** @type { { 16: {[iconName: string]: string}; 20: {[iconName: string]: string} } } */ +const ICON_NAMES = iconsMetadata.map(icon => icon.iconName); + +/** @type { { 16: {[iconName: string]: string[]}; 20: {[iconName: string]: string[]} } } */ const iconPaths = { [ICON_SIZES[0]]: {}, [ICON_SIZES[1]]: {}, }; -// parse icon paths from the generated SVG font +// parse icon paths from source SVGs so static components align with path modules and for (const iconSize of ICON_SIZES) { - const iconFontSvgDocument = readFileSync( - join(generatedSrcDir, `${iconSize}px/blueprint-icons-${iconSize}.svg`), - "utf8", - ); - - console.info(`Parsing SVG glyphs from generated ${iconSize}px SVG icon font...`); - parseIconGlyphs(iconFontSvgDocument, (iconName, iconPath) => { - iconPaths[iconSize][iconName] = iconPath; - }); - console.info(`Parsed ${Object.keys(iconPaths[iconSize]).length} ${iconSize}px icons.`); + console.info(`Parsing ${iconSize}px icon paths from resource SVGs...`); + for (const iconName of ICON_NAMES) { + const filepath = join(iconResourcesDir, `${iconSize}px/${iconName}.svg`); + const svg = readFileSync(filepath, "utf-8"); + const optimizedSvg = await svgOptimizer.optimize(svg, { path: filepath }); + iconPaths[iconSize][iconName] = extractPathsFromResourceSvg(optimizedSvg.data); + } + console.info(`Parsed ${ICON_NAMES.length} ${iconSize}px icons.`); } // clear existing icon components console.info("Clearing existing icon modules..."); -rmSync(generatedComponentsDir, { recursive: true, force: true }); +rmSync(generatedComponentsDir, { force: true, recursive: true }); // generate an ES module for each icon console.info("Generating ES modules for each icon..."); mkdirSync(generatedComponentsDir, { recursive: true }); -for (const [iconName, icon16pxPath] of Object.entries(iconPaths[16])) { - const icon20pxPath = iconPaths[20][iconName]; - if (icon20pxPath === undefined) { +for (const [iconName, icon16pxPaths] of Object.entries(iconPaths[16])) { + const icon20pxPaths = iconPaths[20][iconName]; + if (icon20pxPaths === undefined) { console.error(`Could not find corresponding 20px icon path for ${iconName}, skipping!`); continue; } writeFileSync( join(generatedComponentsDir, `${iconName}.tsx`), - // Notes on icon component template implementation: - // - path "translation" transform must use "viewbox" dimensions, not "size", in order to avoid issues - // like https://github.com/palantir/blueprint/issues/6220 iconComponentTemplate({ + icon16pxPaths: icon16pxPaths.map(path => JSON.stringify(path)), + icon20pxPaths: icon20pxPaths.map(path => JSON.stringify(path)), iconName, - icon16pxPath, - icon20pxPath, - pathScaleFactor: 1 / ICON_RASTER_SCALING_FACTOR, }), ); } @@ -116,30 +100,3 @@ writeFileSync( ); console.info("Done."); - -/** - * Parse all icons of a given size from the SVG font generated by fantasticon. - * At this point we've already optimized the icon SVGs through svgo (via fantasticon), so - * we avoid duplicating that work by reading the generated glyphs here. - * - * @param {string} iconFontSvgDocument - * @param {(iconName: string, iconPath: string) => void} cb iterator for each icon path - */ -function parseIconGlyphs(iconFontSvgDocument, cb) { - const rootNode = parse(iconFontSvgDocument); - // @ts-ignore - const defs = rootNode.children[0].children[0]; - const glyphs = defs.children[0].children.filter(node => node.tagName === "glyph"); - - for (const glyph of glyphs) { - const name = glyph.properties["glyph-name"]; - - // HACKHACK: for some reason, there are duplicates with the suffix "-1", so we ignore those - if (name.endsWith("-1")) { - continue; - } - - const path = glyph.properties["d"]; - cb(name, path); - } -} diff --git a/packages/icons/scripts/generate-icon-fonts.mjs b/packages/icons/scripts/generate-icon-fonts.mjs deleted file mode 100644 index 76fa9a992ca..00000000000 --- a/packages/icons/scripts/generate-icon-fonts.mjs +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2021 Palantir Technologies, Inc. All rights reserved. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generates icon fonts and codepoints from SVG sources - */ - -// @ts-check - -import { FontAssetType, OtherAssetType, generateFonts as runFantasticon } from "@twbs/fantasticon"; -import { getLogger } from "@twbs/fantasticon/lib/cli/logger.js"; -import { mkdirSync } from "node:fs"; -import { join, resolve } from "node:path"; - -import { generatedSrcDir, ICON_RASTER_SCALING_FACTOR, iconResourcesDir, iconsMetadata, NS } from "./common.mjs"; - -const logger = getLogger(); - -/** @type {import("@twbs/fantasticon/lib/utils/codepoints").CodepointsMap} */ -const codepoints = {}; - -for (const icon of iconsMetadata) { - if (Object.values(codepoints).indexOf(icon.codepoint) !== -1) { - throw new Error( - `[generate-icon-fonts] Invalid metadata entry in icons.json: icon "${icon.iconName}" cannot have codepoint ${icon.codepoint}, it is already in use.`, - ); - } - codepoints[icon.iconName] = icon.codepoint; -} - -logger.start(); -await Promise.all([ - connectToLogger(generateFonts(16, `${NS}-icon-standard`)), - connectToLogger(generateFonts(20, `${NS}-icon-large`)), -]); - -/** - * @param {number} size - * @param {string} prefix - */ -async function generateFonts(size, prefix) { - mkdirSync(join(generatedSrcDir, `${size}px/paths`), { recursive: true }); - return runFantasticon({ - name: `blueprint-icons-${size}`, - inputDir: join(iconResourcesDir, `${size}px`), - outputDir: join(generatedSrcDir, `${size}px`), - normalize: true, - descent: 0, - fontHeight: size * ICON_RASTER_SCALING_FACTOR, - fontTypes: [FontAssetType.TTF, FontAssetType.EOT, FontAssetType.WOFF2, FontAssetType.WOFF, FontAssetType.SVG], - // CSS contains @font-face, SCSS contains codepoints, TS contains enums & codepoints - assetTypes: [OtherAssetType.CSS, OtherAssetType.SCSS, OtherAssetType.TS], - templates: { - // N.B. in icons-20, we don't generate CSS or the codepoints since we expect them to be the same as icons-16 - scss: resolve(import.meta.dirname, `icons-${size}.scss.hbs`), - css: resolve(import.meta.dirname, "icons.css.hbs"), - }, - pathOptions: { - scss: join(generatedSrcDir, `${size}px`, "_icon-variables.scss"), - }, - codepoints, - tag: "i", - prefix, - }); -} - -/** - * @param {Promise} runner - * @returns {Promise} - */ -async function connectToLogger(runner) { - try { - const results = await runner; - logger.results(results); - } catch (error) { - logger.error(error); - } -} diff --git a/packages/icons/scripts/generate-icon-paths.mjs b/packages/icons/scripts/generate-icon-paths.mjs index d3539b03f89..10534ea2842 100644 --- a/packages/icons/scripts/generate-icon-paths.mjs +++ b/packages/icons/scripts/generate-icon-paths.mjs @@ -21,22 +21,29 @@ // @ts-check -import { pascalCase } from "change-case"; -import { readFileSync } from "node:fs"; +import { pascalCase, snakeCase } from "change-case"; +import { mkdirSync, readFileSync } from "node:fs"; import { join } from "node:path"; import { svgOptimizer } from "@blueprintjs/node-build-scripts"; -import { ICON_SIZES, iconResourcesDir, iconsMetadata, writeLinesToFile } from "./common.mjs"; +import { generatedSrcDir, ICON_SIZES, iconResourcesDir, iconsMetadata, writeLinesToFile } from "./common.mjs"; +import { extractPathsFromResourceSvg } from "./extractPathsFromResourceSvg.mjs"; const ICON_NAMES = iconsMetadata.map(icon => icon.iconName); +const ICON_NAME_LITERAL_UNION = ICON_NAMES.map(iconName => `"${iconName}"`).join(" | "); +const ICON_NAME_ENUM_LINES = ICON_NAMES.map(iconName => ` ${snakeCase(iconName).toUpperCase()}: "${iconName}",`); + for (const iconSize of ICON_SIZES) { + mkdirSync(join(generatedSrcDir, `${iconSize}px`), { recursive: true }); + mkdirSync(join(generatedSrcDir, `${iconSize}px/paths`), { recursive: true }); const iconPaths = await getIconPaths(iconSize); for (const [iconName, pathStrings] of Object.entries(iconPaths)) { + const serializedPathStrings = pathStrings.map(path => JSON.stringify(path)); const line = - pathStrings.length > 0 - ? `export default [${pathStrings.join(", ")}];` + serializedPathStrings.length > 0 + ? `export default [${serializedPathStrings.join(", ")}];` : // special case for "blank" icon - we need an explicit typedef `const p: string[] = []; export default p;`; @@ -51,6 +58,17 @@ for (const iconSize of ICON_SIZES) { console.info("Done."); } +writeLinesToFile( + "16px/blueprint-icons-16.ts", + "/* eslint-disable camelcase */", + "", + `export type BlueprintIcons_16Id = ${ICON_NAME_LITERAL_UNION};`, + "", + "export const BlueprintIcons_16 = {", + ...ICON_NAME_ENUM_LINES, + "} as const satisfies Record;", +); + /** * Loads SVG file for each icon, extracts path strings `d="path-string"`, * and constructs map of icon name to array of path strings. @@ -64,11 +82,7 @@ async function getIconPaths(iconSize) { const filepath = join(iconResourcesDir, `${iconSize}px/${iconName}.svg`); const svg = readFileSync(filepath, "utf-8"); const optimizedSvg = await svgOptimizer.optimize(svg, { path: filepath }); - const pathStrings = (optimizedSvg.data.match(/ d="[^"]+"/g) || []) - // strip off leading 'd="' - .map(s => s.slice(3)) - // strip out newlines and tabs, but keep other whitespace - .map(s => s.replace(/[\n\t]/g, "")); + const pathStrings = extractPathsFromResourceSvg(optimizedSvg.data); iconPaths[iconName] = pathStrings; } console.info(`Parsed ${Object.keys(iconPaths).length} ${iconSize}px icons.`); diff --git a/packages/icons/scripts/iconComponent.tsx.hbs b/packages/icons/scripts/iconComponent.tsx.hbs index d2806f1d9d8..259d7c75d87 100644 --- a/packages/icons/scripts/iconComponent.tsx.hbs +++ b/packages/icons/scripts/iconComponent.tsx.hbs @@ -18,19 +18,20 @@ import type { SVGIconProps } from "../../svgIconProps"; import { IconSize } from "../../iconTypes"; import { SVGIconContainer } from "../../svgIconContainer"; +/** Path data for the 16px grid; matches {@link generate-icon-paths.mjs} / {@code } from core. */ +const PATHS_16 = [{{#each icon16pxPaths}}{{{this}}}{{#unless @last}}, {{/unless}}{{/each}}] as readonly string[]; + +/** Path data for the 20px grid; matches {@link generate-icon-paths.mjs} / {@code } from core. */ +const PATHS_20 = [{{#each icon20pxPaths}}{{{this}}}{{#unless @last}}, {{/unless}}{{/each}}] as readonly string[]; + export const {{pascalCase iconName}}: React.FC = React.forwardRef((props, ref) => { const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE; - const pixelGridSize = isLarge ? IconSize.LARGE : IconSize.STANDARD; - const translation = `${-1 * pixelGridSize / {{pathScaleFactor}} / 2}`; - const style = { transformOrigin: "center" }; + const paths = isLarge ? PATHS_20 : PATHS_16; return ( - + {paths.map((d, i) => ( + + ))} ); }); diff --git a/packages/icons/scripts/icons-16.scss.hbs b/packages/icons/scripts/icons-16.scss.hbs deleted file mode 100644 index 52faeaa54bd..00000000000 --- a/packages/icons/scripts/icons-16.scss.hbs +++ /dev/null @@ -1,7 +0,0 @@ -${{ name }}-font: "{{ name }}"; - -${{ name }}-codepoints: ( -{{# each codepoints }} - "{{ @key }}": "\\{{ codepoint this }}", -{{/ each }} -); diff --git a/packages/icons/scripts/icons-20.scss.hbs b/packages/icons/scripts/icons-20.scss.hbs deleted file mode 100644 index 4d48bad03ec..00000000000 --- a/packages/icons/scripts/icons-20.scss.hbs +++ /dev/null @@ -1 +0,0 @@ -${{ name }}-font: "{{ name }}"; diff --git a/packages/icons/scripts/icons.css.hbs b/packages/icons/scripts/icons.css.hbs deleted file mode 100644 index c1b07597659..00000000000 --- a/packages/icons/scripts/icons.css.hbs +++ /dev/null @@ -1,4 +0,0 @@ -@font-face { - font-family: "{{ name }}"; - src: {{{ fontSrc }}}; -} diff --git a/packages/icons/src/allPaths.ts b/packages/icons/src/allPaths.ts index 347ec49b770..c3774c2fd3e 100644 --- a/packages/icons/src/allPaths.ts +++ b/packages/icons/src/allPaths.ts @@ -34,7 +34,11 @@ export { IconSvgPaths16, IconSvgPaths20 }; */ export function getIconPaths(name: IconName, size: IconSize): IconPaths { const key = pascalCase(name) as PascalCase; - return size === IconSize.STANDARD ? IconSvgPaths16[key] : IconSvgPaths20[key]; + const iconPathRecord = + size === IconSize.STANDARD + ? (IconSvgPaths16 as Record) + : (IconSvgPaths20 as Record); + return iconPathRecord[key]; } /** diff --git a/packages/icons/src/blueprint-icons.scss b/packages/icons/src/blueprint-icons.scss deleted file mode 100644 index cffa457e1a3..00000000000 --- a/packages/icons/src/blueprint-icons.scss +++ /dev/null @@ -1,7 +0,0 @@ -/* -Copyright 2017-present Palantir Technologies, Inc. All rights reserved. -Licensed under the Apache License, Version 2.0. -*/ - -@import "generated/16px/blueprint-icons-16"; -@import "generated/20px/blueprint-icons-20"; diff --git a/packages/icons/src/iconCodepoints.ts b/packages/icons/src/iconCodepoints.ts deleted file mode 100644 index 7c1e1ee6901..00000000000 --- a/packages/icons/src/iconCodepoints.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2021 Palantir Technologies, Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// The two icon sets are identical aside from SVG paths, so we only need to import info for the 16px set -import { BLUEPRINT_ICONS_16_CODEPOINTS } from "./generated/16px/blueprint-icons-16"; -import type { IconName } from "./iconNames"; - -/** - * Icon codepoints as base 10 number strings. If you need to render these strings - * into an SVG document or as `::before` pseudo content, consider using `getIconContentString()` - * instead. - */ -export const IconCodepoints = BLUEPRINT_ICONS_16_CODEPOINTS; - -/** - * Returns the hex code content string which represents the codepoint in the icon font - * for a given icon. You can render this string to the DOM and if the icon font is loaded - * as an active font family, this string will be replaced with the associated icon. - */ -export function getIconContentString(icon: IconName) { - // parse base 10 number from string, then convert to hex code - return String.fromCodePoint(parseInt(IconCodepoints[icon], 10)); -} diff --git a/packages/icons/src/index.mdx b/packages/icons/src/index.mdx index 3c8601a1edc..98feda8d1fe 100644 --- a/packages/icons/src/index.mdx +++ b/packages/icons/src/index.mdx @@ -6,7 +6,7 @@ reference: icons # Icons The [**@blueprintjs/icons** NPM package](https://www.npmjs.com/package/@blueprintjs/icons) -provides over 500 vector UI icons in two sizes (16px and 20px) and two formats (SVG and fonts). +provides over 500 vector UI icons in two sizes (16px and 20px).
@@ -18,17 +18,5 @@ See the [**`Icon` component documentation**](#core/components/icon) (in the `@bl npm install --save @blueprintjs/icons ``` -For icon font support, import CSS with a bundler like webpack: - -```js -@import "@blueprintjs/icons/lib/css/blueprint-icons.css"; -``` - -...or in plain HTML: - -```html - -``` - Be sure to check out the [docs for loading icons](#icons/loading-icons) and the [full list of available icons](#icons/icons-list). diff --git a/packages/icons/src/index.ts b/packages/icons/src/index.ts index 66042ef04bb..ad3302f834d 100644 --- a/packages/icons/src/index.ts +++ b/packages/icons/src/index.ts @@ -20,6 +20,5 @@ export { IconSvgPaths16, IconSvgPaths20, getIconPaths } from "./allPaths"; export { Icons, type IconLoaderOptions, type IconPathsLoader } from "./iconLoader"; export type { DefaultSVGIconAttributes, DefaultSVGIconProps, SVGIconAttributes, SVGIconProps } from "./svgIconProps"; export { SVGIconContainer, type SVGIconContainerComponent, type SVGIconContainerProps } from "./svgIconContainer"; -export { getIconContentString, IconCodepoints } from "./iconCodepoints"; export { type IconName, IconNames } from "./iconNames"; export { IconSize, type IconPaths } from "./iconTypes"; diff --git a/packages/icons/src/templates/_lib_variables.scss b/packages/icons/src/templates/_lib_variables.scss deleted file mode 100644 index becd75131f5..00000000000 --- a/packages/icons/src/templates/_lib_variables.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2021 Palantir Technologies, Inc. All rights reserved. -// Licensed under the Apache License, Version 2.0. - -@import "blueprint-icons-16"; -@import "blueprint-icons-20"; - -$blueprint-icon-codepoints: $blueprint-icons-16-codepoints; diff --git a/packages/landing-app/src/index.scss b/packages/landing-app/src/index.scss index dd6adb974bd..b3cf7ea206d 100644 --- a/packages/landing-app/src/index.scss +++ b/packages/landing-app/src/index.scss @@ -6,7 +6,6 @@ Licensed under the Apache License, Version 2.0. */ @import "@blueprintjs/core/lib/css/blueprint.css"; -@import "@blueprintjs/icons/lib/css/blueprint-icons.css"; @import "@blueprintjs/colors/lib/scss/colors"; @import "@blueprintjs/core/src/common/variables"; @import "svgs"; diff --git a/packages/table-dev-app/src/index.scss b/packages/table-dev-app/src/index.scss index 0101be2450b..88ef67d417d 100644 --- a/packages/table-dev-app/src/index.scss +++ b/packages/table-dev-app/src/index.scss @@ -3,7 +3,6 @@ @import "normalize.css/normalize.css"; @import "@blueprintjs/core/lib/css/blueprint.css"; -@import "@blueprintjs/icons/lib/css/blueprint-icons.css"; @import "@blueprintjs/table/src/table"; body { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 082e921ba45..1a9d9c98f5c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -789,12 +789,6 @@ importers: '@testing-library/react': specifier: 'catalog:' version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.12))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@twbs/fantasticon': - specifier: ^2.7.2 - version: 2.9.0 - '@types/handlebars': - specifier: ^4.1.0 - version: 4.1.0 '@vitejs/plugin-react': specifier: 'catalog:' version: 5.1.0(vite@7.1.12(@types/node@24.10.0)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) @@ -813,9 +807,6 @@ importers: react-test-renderer: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) - svg-parser: - specifier: ^2.0.4 - version: 2.0.4 typescript: specifier: ~5.9.3 version: 5.9.3 @@ -1999,9 +1990,6 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -2230,10 +2218,6 @@ packages: resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - '@npmcli/fs@3.1.1': resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2242,11 +2226,6 @@ packages: resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} engines: {node: ^16.14.0 || >=18.0.0} - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - '@npmcli/node-gyp@3.0.0': resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3094,19 +3073,10 @@ packages: '@tokens-studio/types@0.5.2': resolution: {integrity: sha512-rzMcZP0bj2E5jaa7Fj0LGgYHysoCrbrxILVbT0ohsCUH5uCHY/u6J7Qw/TE0n6gR9Js/c9ZO9T8mOoz0HdLMbA==} - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} - '@twbs/fantasticon@2.9.0': - resolution: {integrity: sha512-YyS12HQtwLKgtHV6jHc+gd6wsBPxDvF0EuHRDzqJpSibhHegCJC0uCH1ER66XicF6mNBV6ht7d46f+pLYdbY3g==} - engines: {node: '>=14'} - hasBin: true - '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -3197,10 +3167,6 @@ packages: '@types/fuzzaldrin-plus@0.6.5': resolution: {integrity: sha512-fUFxKXq/Qu8WVgPtSkQMK7jF5odTnBaIthuhKQb6PivpTaTTUlOTMS3WsT+UpWVZcYQH5skjHuFRTNmrUGSDfg==} - '@types/handlebars@4.1.0': - resolution: {integrity: sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA==} - deprecated: This is a stub types definition. handlebars provides its own type definitions, so you do not need this installed. - '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} @@ -3502,11 +3468,6 @@ packages: webpack-dev-server: optional: true - '@xmldom/xmldom@0.7.13': - resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==} - engines: {node: '>=10.0.0'} - deprecated: this version has critical issues, please update to the latest version - '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -3535,9 +3496,6 @@ packages: a-sync-waterfall@1.0.1: resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3569,18 +3527,10 @@ packages: add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -3672,11 +3622,6 @@ packages: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -3873,9 +3818,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -3923,10 +3865,6 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bufferstreams@3.0.0: - resolution: {integrity: sha512-Qg0ggJUWJq90vtg4lDsGN9CDWvzBMQxhiEkSOD/sJfYt6BLect3eV1/S6K7SCSKJ34n60rf6U5eUPmQENVE4UA==} - engines: {node: '>=8.12.0'} - builtin-modules@1.1.1: resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} engines: {node: '>=0.10.0'} @@ -3939,10 +3877,6 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - cacache@18.0.4: resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -4146,10 +4080,6 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - comment-parser@1.4.1: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} @@ -4392,9 +4322,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - cubic2quad@1.2.1: - resolution: {integrity: sha512-wT5Y7mO8abrV16gnssKdmIhIbA9wSkeMzhh27jAguKrV82i24wER0vL5TGhUJ9dbJNDcigoRZ0IAHFEEEI4THQ==} - culori@4.0.2: resolution: {integrity: sha512-1+BhOB8ahCn4O0cep0Sh2l9KCOfOdY+BXJnKMHFFzDEouSr/el18QwXEMRlOj9UY5nCeA8UN3a/82rUWRBeyBw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4528,9 +4455,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -5054,9 +4978,6 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - filename-reserved-regex@2.0.0: resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} engines: {node: '>=4'} @@ -5209,11 +5130,6 @@ packages: fuzzaldrin-plus@0.6.0: resolution: {integrity: sha512-srIDThJHkdp3aPwJpR/HNzYZCRJwm07b/igxseoHSB7qR8e/gQp4F6lMGknE3TQI1Aq14TiFf/wzrHOp9LY/EA==} - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} @@ -5316,11 +5232,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-modules@2.0.0: resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} engines: {node: '>=6'} @@ -5490,10 +5401,6 @@ packages: http-parser-js@0.5.10: resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -5516,10 +5423,6 @@ packages: engines: {node: '>=12'} hasBin: true - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -5532,9 +5435,6 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -5588,9 +5488,6 @@ packages: resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} engines: {node: '>=18'} - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -6187,10 +6084,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -6216,10 +6109,6 @@ packages: resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==} engines: {node: '>=18'} - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - make-fetch-happen@13.0.1: resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6308,9 +6197,6 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - microbuffer@1.0.0: - resolution: {integrity: sha512-O/SUXauVN4x6RaEJFqSPcXNtLFL+QzJHKZlyDVYFwcDDRVca3Fa/37QXXC+4zAGGa4YhHrHxKXuuHvLDIQECtA==} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -6367,10 +6253,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -6382,18 +6264,10 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - minipass-collect@2.0.1: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - minipass-fetch@3.0.5: resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6472,9 +6346,6 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - nan@2.23.0: - resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -6535,11 +6406,6 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} hasBin: true - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true - node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} @@ -6552,11 +6418,6 @@ packages: node-releases@2.0.26: resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6609,11 +6470,6 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - nth-check@1.0.2: resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} @@ -6806,9 +6662,6 @@ packages: resolution: {integrity: sha512-MQEgDUvXCa3sGvqHg3pzHO8e9gqTCMPVrWUko3vPQGntwegmFo52mZb2abIVTjFnUcW0BcPz0D93jV5Cas1DWA==} engines: {node: '>=18'} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -7643,9 +7496,6 @@ packages: sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -7806,10 +7656,6 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} - slugify@1.6.6: - resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} - engines: {node: '>=8.0.0'} - smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -7820,10 +7666,6 @@ packages: sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -7894,10 +7736,6 @@ packages: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' @@ -8124,25 +7962,9 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - svg-pathdata@6.0.3: - resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==} - engines: {node: '>=12.0.0'} - svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - svg2ttf@6.0.3: - resolution: {integrity: sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==} - hasBin: true - - svgicons2svgfont@12.0.0: - resolution: {integrity: sha512-fjyDkhiG0M1TPBtZzD12QV3yDcG2fUgiqHPOCYzf7hHE40Hl3GhnE6P1njsJCCByhwM7MiufyDW3L7IOR5dg9w==} - engines: {node: '>=16.15.0'} - hasBin: true - svgo@1.3.2: resolution: {integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==} engines: {node: '>=4.0.0'} @@ -8154,9 +7976,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - svgpath@2.6.0: - resolution: {integrity: sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==} - swc-loader@0.2.6: resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} peerDependencies: @@ -8379,19 +8198,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - ttf2eot@3.1.0: - resolution: {integrity: sha512-aHTbcYosNHVqb2Qtt9Xfta77ae/5y0VfdwNLUS6sGBeGr22cX2JDMo/i5h3uuOf+FAD3akYOr17+fYd5NK8aXw==} - hasBin: true - - ttf2woff2@5.0.0: - resolution: {integrity: sha512-FplhShJd3rT8JGa8N04YWQuP7xRvwr9AIq+9/z5O/5ubqNiCADshKl8v51zJDFkhDVcYpdUqUpm7T4M53Z2JoQ==} - engines: {node: '>=14'} - hasBin: true - - ttf2woff@3.0.0: - resolution: {integrity: sha512-OvmFcj70PhmAsVQKfC15XoKH55cRWuaRzvr2fpTNhTNer6JBpG8n6vOhRrIgxMjcikyYt88xqYXMMVapJ4Rjvg==} - hasBin: true - twig-drupal-filters@3.2.0: resolution: {integrity: sha512-BSRyHsAII8/k9e7rLDOs/NtirIKxgHH7jKlLzCdjKAlRsNrAZQyFI0a3+SCt4PiqaZ6Zo9W+4/ZFlBJ0z+0AuA==} @@ -8494,18 +8300,10 @@ packages: resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} engines: {node: '>= 0.8.0'} - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -9463,8 +9261,6 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@gar/promisify@1.1.3': {} - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -9782,11 +9578,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@npmcli/fs@2.1.2': - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.7.3 - '@npmcli/fs@3.1.1': dependencies: semver: 7.7.3 @@ -9805,11 +9596,6 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/move-file@2.0.1': - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - '@npmcli/node-gyp@3.0.0': {} '@npmcli/package-json@5.2.1': @@ -10551,28 +10337,8 @@ snapshots: '@tokens-studio/types@0.5.2': {} - '@tootallnate/once@2.0.0': {} - '@trysound/sax@0.2.0': {} - '@twbs/fantasticon@2.9.0': - dependencies: - change-case: 4.1.2 - commander: 10.0.1 - figures: 3.2.0 - glob: 7.2.3 - handlebars: 4.7.8 - picocolors: 1.1.1 - slugify: 1.6.6 - svg2ttf: 6.0.3 - svgicons2svgfont: 12.0.0 - ttf2eot: 3.1.0 - ttf2woff: 3.0.0 - ttf2woff2: 5.0.0 - transitivePeerDependencies: - - bluebird - - supports-color - '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -10695,10 +10461,6 @@ snapshots: '@types/fuzzaldrin-plus@0.6.5': {} - '@types/handlebars@4.1.0': - dependencies: - handlebars: 4.7.8 - '@types/http-errors@2.0.5': {} '@types/http-proxy@1.17.17': @@ -11099,8 +10861,6 @@ snapshots: webpack: 5.102.1(@swc/core@1.13.20)(esbuild@0.27.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.102.1) - '@xmldom/xmldom@0.7.13': {} - '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -11125,8 +10885,6 @@ snapshots: a-sync-waterfall@1.0.1: {} - abbrev@1.1.1: {} - abbrev@2.0.0: {} accepts@1.3.8: @@ -11150,18 +10908,8 @@ snapshots: add-stream@1.0.0: {} - agent-base@6.0.2: - dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - agent-base@7.1.4: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -11238,11 +10986,6 @@ snapshots: are-docs-informative@0.0.2: {} - are-we-there-yet@3.0.1: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -11499,10 +11242,6 @@ snapshots: binary-extensions@2.3.0: {} - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - bl@4.1.0: dependencies: buffer: 5.7.1 @@ -11574,10 +11313,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bufferstreams@3.0.0: - dependencies: - readable-stream: 3.6.2 - builtin-modules@1.1.1: {} bundle-name@4.1.0: @@ -11586,29 +11321,6 @@ snapshots: bytes@3.1.2: {} - cacache@16.1.3: - dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird - cacache@18.0.4: dependencies: '@npmcli/fs': 3.1.1 @@ -11843,8 +11555,6 @@ snapshots: commander@7.2.0: {} - commander@9.5.0: {} - comment-parser@1.4.1: {} commondir@1.0.1: {} @@ -12137,8 +11847,6 @@ snapshots: csstype@3.1.3: {} - cubic2quad@1.2.1: {} - culori@4.0.2: {} damerau-levenshtein@1.0.8: {} @@ -12239,8 +11947,6 @@ snapshots: delayed-stream@1.0.0: {} - delegates@1.0.0: {} - depd@1.1.2: {} depd@2.0.0: {} @@ -12965,8 +12671,6 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-uri-to-path@1.0.0: {} - filename-reserved-regex@2.0.0: {} filenamify@4.3.0: @@ -13137,17 +12841,6 @@ snapshots: fuzzaldrin-plus@0.6.0: {} - gauge@4.0.4: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - generator-function@2.0.1: {} gensync@1.0.0-beta.2: {} @@ -13270,14 +12963,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - global-modules@2.0.0: dependencies: global-prefix: 3.0.0 @@ -13454,14 +13139,6 @@ snapshots: http-parser-js@0.5.10: {} - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -13508,13 +13185,6 @@ snapshots: - debug - supports-color - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -13526,10 +13196,6 @@ snapshots: human-signals@5.0.0: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - hyperdyperid@1.2.0: {} iconv-lite@0.4.24: @@ -13568,8 +13234,6 @@ snapshots: index-to-position@1.2.0: {} - infer-owner@1.0.4: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -14131,8 +13795,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@7.18.3: {} - lunr@2.3.9: {} lz-string@1.5.0: {} @@ -14157,28 +13819,6 @@ snapshots: make-dir@5.1.0: {} - make-fetch-happen@10.2.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - make-fetch-happen@13.0.1: dependencies: '@npmcli/agent': 2.2.2 @@ -14257,8 +13897,6 @@ snapshots: methods@1.1.2: {} - microbuffer@1.0.0: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -14302,10 +13940,6 @@ snapshots: dependencies: brace-expansion: 1.1.12 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.2 - minimatch@9.0.3: dependencies: brace-expansion: 2.0.2 @@ -14316,22 +13950,10 @@ snapshots: minimist@1.2.8: {} - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - minipass-collect@2.0.1: dependencies: minipass: 7.1.3 - minipass-fetch@2.1.2: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - minipass-fetch@3.0.5: dependencies: minipass: 7.1.3 @@ -14405,8 +14027,6 @@ snapshots: mute-stream@2.0.0: {} - nan@2.23.0: {} - nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -14473,23 +14093,6 @@ snapshots: transitivePeerDependencies: - supports-color - node-gyp@9.4.1: - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.3 - glob: 7.2.3 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 - semver: 7.7.3 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - node-machine-id@1.1.12: {} node-notifier@10.0.1: @@ -14512,10 +14115,6 @@ snapshots: node-releases@2.0.26: {} - nopt@6.0.0: - dependencies: - abbrev: 1.1.1 - nopt@7.2.1: dependencies: abbrev: 2.0.0 @@ -14579,13 +14178,6 @@ snapshots: dependencies: path-key: 4.0.0 - npmlog@6.0.2: - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - nth-check@1.0.2: dependencies: boolbase: 1.0.0 @@ -14875,8 +14467,6 @@ snapshots: dependencies: find-up-simple: 1.0.1 - pako@1.0.11: {} - param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -15697,8 +15287,6 @@ snapshots: sax@1.2.4: {} - sax@1.4.1: {} - saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -15904,8 +15492,6 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - slugify@1.6.6: {} - smart-buffer@4.2.0: {} snake-case@3.0.4: @@ -15919,14 +15505,6 @@ snapshots: uuid: 8.3.2 websocket-driver: 0.7.4 - socks-proxy-agent@7.0.0: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - socks: 2.8.7 - transitivePeerDependencies: - - supports-color - socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 @@ -16011,10 +15589,6 @@ snapshots: dependencies: minipass: 7.1.3 - ssri@9.0.1: - dependencies: - minipass: 3.3.6 - stable@0.1.8: {} stackback@0.0.2: {} @@ -16322,28 +15896,8 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svg-parser@2.0.4: {} - - svg-pathdata@6.0.3: {} - svg-tags@1.0.0: {} - svg2ttf@6.0.3: - dependencies: - '@xmldom/xmldom': 0.7.13 - argparse: 2.0.1 - cubic2quad: 1.2.1 - lodash: 4.17.21 - microbuffer: 1.0.0 - svgpath: 2.6.0 - - svgicons2svgfont@12.0.0: - dependencies: - commander: 9.5.0 - glob: 8.1.0 - sax: 1.4.1 - svg-pathdata: 6.0.3 - svgo@1.3.2: dependencies: chalk: 2.4.2 @@ -16370,8 +15924,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - svgpath@2.6.0: {} - swc-loader@0.2.6(@swc/core@1.13.20)(webpack@5.102.1(@swc/core@1.13.20)(esbuild@0.27.2)): dependencies: '@swc/core': 1.13.20 @@ -16592,25 +16144,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - ttf2eot@3.1.0: - dependencies: - argparse: 2.0.1 - - ttf2woff2@5.0.0: - dependencies: - bindings: 1.5.0 - bufferstreams: 3.0.0 - nan: 2.23.0 - node-gyp: 9.4.1 - transitivePeerDependencies: - - bluebird - - supports-color - - ttf2woff@3.0.0: - dependencies: - argparse: 2.0.1 - pako: 1.0.11 - twig-drupal-filters@3.2.0: dependencies: object-keys: 1.1.1 @@ -16720,18 +16253,10 @@ snapshots: dependencies: qs: 6.14.0 - unique-filename@2.0.1: - dependencies: - unique-slug: 3.0.0 - unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 - unique-slug@3.0.0: - dependencies: - imurmurhash: 0.1.4 - unique-slug@4.0.0: dependencies: imurmurhash: 0.1.4