sanity-plugin-iconify 4.0.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/index.cjs +13 -10
- package/dist/index.d.cts +29 -16
- package/dist/index.d.mts +29 -16
- package/dist/index.mjs +10 -7
- package/package.json +33 -32
- package/src/combobox/iconify-combobox.tsx +2 -1
- package/src/combobox/unset-button.tsx +1 -1
- package/src/iconify-input.tsx +1 -1
- package/src/lib/api.ts +0 -1
- package/src/lib/icon-types.gen.ts +1 -1
- package/src/lib/types.ts +1 -3
package/README.md
CHANGED
|
@@ -41,7 +41,9 @@ Enhance your [Sanity](https://www.sanity.io/) project with the Iconify plugin, w
|
|
|
41
41
|
|
|
42
42
|
## 🚀 Getting Started
|
|
43
43
|
|
|
44
|
-
> **Requires Sanity Studio
|
|
44
|
+
> **Requires Sanity Studio v6.9.2 or later** — the first release to ship [`@sanity/ui`](https://github.com/sanity-io/ui) v4. The plugin declares `@sanity/ui` as a peer dependency so it shares the Studio's own copy; a Studio that ships `@sanity/ui` v3 would load a second, separate copy and break React context.
|
|
45
|
+
>
|
|
46
|
+
> For Sanity Studio v5, or v6.0–v6.9.1, install `sanity-plugin-iconify@4`. For Sanity Studio v3/v4, use [v2.x](https://github.com/waspeer/sanity-plugin-iconify/tree/v2).
|
|
45
47
|
|
|
46
48
|
### Installation
|
|
47
49
|
|
package/dist/index.cjs
CHANGED
|
@@ -16,7 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
}
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
20
20
|
value: mod,
|
|
21
21
|
enumerable: true
|
|
22
22
|
}) : target, mod));
|
|
@@ -25,6 +25,8 @@ let sanity = require("sanity");
|
|
|
25
25
|
let _sanity_ui = require("@sanity/ui");
|
|
26
26
|
let _sanity_ui_theme = require("@sanity/ui/theme");
|
|
27
27
|
let react = require("react");
|
|
28
|
+
let _sanity_ui_popover = require("@sanity/ui/popover");
|
|
29
|
+
let _sanity_ui_toast = require("@sanity/ui/toast");
|
|
28
30
|
let downshift = require("downshift");
|
|
29
31
|
let ts_pattern = require("ts-pattern");
|
|
30
32
|
let _tanstack_react_query = require("@tanstack/react-query");
|
|
@@ -33,7 +35,7 @@ let styled_components = require("styled-components");
|
|
|
33
35
|
styled_components = __toESM(styled_components, 1);
|
|
34
36
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
35
37
|
let _iconify_react = require("@iconify/react");
|
|
36
|
-
let
|
|
38
|
+
let _sanity_icons_Trash = require("@sanity/icons/Trash");
|
|
37
39
|
let _iconify_utils = require("@iconify/utils");
|
|
38
40
|
let change_case = require("change-case");
|
|
39
41
|
//#region src/lib/api.ts
|
|
@@ -80,7 +82,7 @@ function useSearch({ collections }) {
|
|
|
80
82
|
},
|
|
81
83
|
enabled: debouncedTerm.length > 0,
|
|
82
84
|
placeholderData: _tanstack_react_query.keepPreviousData,
|
|
83
|
-
staleTime:
|
|
85
|
+
staleTime: 3e5
|
|
84
86
|
});
|
|
85
87
|
return {
|
|
86
88
|
term,
|
|
@@ -216,7 +218,7 @@ function UnsetButton(props) {
|
|
|
216
218
|
radius: 2,
|
|
217
219
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_sanity_ui.Button, {
|
|
218
220
|
"data-testid": "iconify-unset",
|
|
219
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
221
|
+
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_sanity_icons_Trash.TrashIcon, {}),
|
|
220
222
|
onClick: onUnset,
|
|
221
223
|
mode: "bleed",
|
|
222
224
|
fontSize: 1,
|
|
@@ -229,7 +231,7 @@ function UnsetButton(props) {
|
|
|
229
231
|
const IconifyCombobox = (0, react.memo)(function IconifyCombobox(props) {
|
|
230
232
|
const { selectedIcon, onSelect: pushSelection, collections, studioElementProps, fieldFocused } = props;
|
|
231
233
|
const id = (0, react.useId)();
|
|
232
|
-
const toast = (0,
|
|
234
|
+
const toast = (0, _sanity_ui_toast.useToast)();
|
|
233
235
|
const inputRef = (0, react.useRef)(null);
|
|
234
236
|
const composedInputRef = (0, react.useCallback)((node) => {
|
|
235
237
|
inputRef.current = node;
|
|
@@ -304,7 +306,7 @@ const IconifyCombobox = (0, react.memo)(function IconifyCombobox(props) {
|
|
|
304
306
|
onBlur: handleBlur,
|
|
305
307
|
selectedIcon,
|
|
306
308
|
suffix: selectedIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(UnsetButton, { onUnset: handleUnset }) : null
|
|
307
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
309
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_sanity_ui_popover.Popover, {
|
|
308
310
|
open: true,
|
|
309
311
|
style: { display: isOpen ? "block" : "none" },
|
|
310
312
|
placement: "bottom",
|
|
@@ -350,15 +352,16 @@ const IconifyInput = (0, react.memo)(function IconifyInput(props) {
|
|
|
350
352
|
const options = schemaType.options;
|
|
351
353
|
const collections = !!options?.collections?.length && options.collections || !!config?.collections?.length && config.collections || null;
|
|
352
354
|
const showName = options?.showName ?? config?.showName ?? false;
|
|
355
|
+
const handleSelect = (0, react.useCallback)((icon) => {
|
|
356
|
+
pushChange(icon === "" ? (0, sanity.unset)() : (0, sanity.set)(icon, ["name"]));
|
|
357
|
+
}, [pushChange]);
|
|
353
358
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(QueryClientProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_sanity_ui.ThemeProvider, {
|
|
354
359
|
theme,
|
|
355
360
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_sanity_ui.Stack, {
|
|
356
|
-
|
|
361
|
+
gap: 2,
|
|
357
362
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconifyCombobox, {
|
|
358
363
|
selectedIcon,
|
|
359
|
-
onSelect:
|
|
360
|
-
pushChange(icon === "" ? (0, sanity.unset)() : (0, sanity.set)(icon, ["name"]));
|
|
361
|
-
}, [pushChange]),
|
|
364
|
+
onSelect: handleSelect,
|
|
362
365
|
collections,
|
|
363
366
|
studioElementProps: elementProps,
|
|
364
367
|
fieldFocused: focused
|
package/dist/index.d.cts
CHANGED
|
@@ -1,37 +1,50 @@
|
|
|
1
1
|
import { BaseSchemaDefinition, BaseSchemaDefinition as BaseSchemaDefinition$1, ConditionalPropertyCallbackContext, FieldGroupDefinition, FieldsetDefinition, InitialValueProperty, ObjectOptions, RuleDef, ValidationBuilder } from "sanity";
|
|
2
|
-
|
|
3
2
|
//#region node_modules/.pnpm/@iconify+types@2.0.0/node_modules/@iconify/types/types.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* Icon set information block.
|
|
6
5
|
*/
|
|
7
6
|
interface IconifyInfo {
|
|
8
7
|
// Icon set name.
|
|
9
|
-
name: string;
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
name: string;
|
|
9
|
+
// Total number of icons.
|
|
10
|
+
total?: number;
|
|
11
|
+
// Version string.
|
|
12
|
+
version?: string;
|
|
13
|
+
// Author information.
|
|
12
14
|
author: {
|
|
13
15
|
// Author name.
|
|
14
|
-
name: string;
|
|
16
|
+
name: string;
|
|
17
|
+
// Link to author's website or icon set website.
|
|
15
18
|
url?: string;
|
|
16
|
-
};
|
|
19
|
+
};
|
|
20
|
+
// License
|
|
17
21
|
license: {
|
|
18
22
|
// Human readable license.
|
|
19
|
-
title: string;
|
|
20
|
-
|
|
23
|
+
title: string;
|
|
24
|
+
// SPDX license identifier.
|
|
25
|
+
spdx?: string;
|
|
26
|
+
// License URL.
|
|
21
27
|
url?: string;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
};
|
|
29
|
+
// Array of icons that should be used for samples in icon sets list.
|
|
30
|
+
samples?: string[];
|
|
31
|
+
// Icon grid: number or array of numbers.
|
|
32
|
+
height?: number | number[];
|
|
33
|
+
// Display height for samples: 16 - 24
|
|
34
|
+
displayHeight?: number;
|
|
35
|
+
// Category on Iconify collections list.
|
|
36
|
+
category?: string;
|
|
37
|
+
// List of tags to group similar icon sets.
|
|
38
|
+
tags?: string[];
|
|
39
|
+
// Palette status. True if icons have predefined color scheme, false if icons use currentColor.
|
|
28
40
|
// Ideally, icon set should not mix icons with and without palette to simplify search.
|
|
29
|
-
palette?: boolean;
|
|
41
|
+
palette?: boolean;
|
|
42
|
+
// If true, icon set should not appear in icon sets list.
|
|
30
43
|
hidden?: boolean;
|
|
31
44
|
}
|
|
32
45
|
//#endregion
|
|
33
46
|
//#region src/lib/icon-types.gen.d.ts
|
|
34
|
-
type IconPrefix = 'material-symbols' | 'material-symbols-light' | 'ic' | 'mdi' | 'mdi-light' | 'line-md' | 'solar' | 'tabler' | 'boxicons' | 'mingcute' | 'ri' | 'mynaui' | 'iconamoon' | 'iconoir' | 'lucide' | 'lucide-lab' | 'uil' | 'tdesign' | 'si' | 'majesticons' | 'gg' | 'flowbite' | 'basil' | 'pixelarticons' | 'pixel' | 'akar-icons' | 'ci' | 'proicons' | 'typcn' | 'meteor-icons' | 'prime' | 'circum' | 'fe' | 'eos-icons' | 'bitcoin-icons' | 'humbleicons' | 'uim' | 'uit' | 'uis' | 'gridicons' | 'mi' | 'cuida' | 'weui' | 'duo-icons' | 'svg-spinners' | 'hugeicons' | 'lets-icons' | 'streamline-ultimate' | 'streamline-plump' | 'streamline-sharp' | 'mage' | 'stash' | 'lineicons' | 'wordpress' | 'icon-park-outline' | 'icon-park-solid' | 'icon-park-twotone' | 'jam' | 'streamline-cyber' | 'guidance' | 'carbon' | 'ion' | 'famicons' | 'ant-design' | 'lsicon' | 'gravity-ui' | 'cil' | 'at-icons' | 'ep' | 'charm' | 'quill' | 'bytesize' | 'bi' | 'streamline-pixel' | 'streamline-block' | 'rivet-icons' | 'nimbus' | 'formkit' | 'fluent' | 'ph' | 'glyphs' | 'glyphs-poly' | 'teenyicons' | 'clarity' | 'streamline-freehand' | 'ix' | 'octicon' | 'memory' | 'system-uicons' | 'radix-icons' | 'zondicons' | 'uiw' | 'codex' | 'ei' | 'heroicons' | 'sidekickicons' | 'pepicons-pop' | 'pepicons-print' | 'pepicons-pencil' | 'f7' | 'pajamas' | 'garden' | 'streamline' | 'streamline-flex' | 'fa7-solid' | 'fa7-regular' | 'picon' | 'ooui' | 'oui' | 'nrk' | 'dinkie-icons' | 'qlementine-icons' | 'streamline-ultimate-color' | 'streamline-plump-color' | 'streamline-freehand-color' | 'streamline-kameleon-color' | 'streamline-stickies-color' | 'fluent-color' | 'streamline-color' | 'streamline-flex-color' | 'streamline-sharp-color' | 'streamline-cyber-color' | 'icon-park' | 'marketeq' | 'vscode-icons' | 'codicon' | 'material-icon-theme' | 'file-icons' | 'devicon' | 'devicon-plain' | 'catppuccin' | 'skill-icons' | 'gcp' | 'unjs' | 'simple-icons' | 'logos' | 'streamline-logos' | 'cib' | 'fa7-brands' | 'bxl' | 'nonicons' | 'arcticons' | 'cbi' | 'brandico' | 'entypo-social' | 'token' | 'token-branded' | 'cryptocurrency' | 'cryptocurrency-color' | 'openmoji' | 'twemoji' | 'noto' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'fxemoji' | 'streamline-emojis' | 'circle-flags' | 'flag' | 'flagpack' | 'cif' | 'pinhead' | 'roentgen' | 'maki' | 'temaki' | 'gis' | 'map' | 'geo' | 'game-icons' | 'fad' | 'academicons' | 'wi' | 'meteocons' | 'healthicons' | 'medical-icon' | 'covid' | 'ginetex' | 'la' | 'eva' | 'dashicons' | 'flat-color-icons' | 'entypo' | 'foundation' | 'raphael' | 'icons8' | 'iwwa' | 'gala' | 'heroicons-outline' | 'heroicons-solid' | 'bx' | 'bxs' | 'fa6-solid' | 'fa6-regular' | 'fa6-brands' | 'fa-solid' | 'fa-regular' | 'fa-brands' | 'fa' | 'fluent-mdl2' | 'fontisto' | 'icomoon-free' | 'subway' | 'oi' | 'wpf' | 'simple-line-icons' | 'et' | 'el' | 'vaadin' | 'grommet-icons' | 'whh' | 'si-glyph' | 'zmdi' | 'ls' | 'bpmn' | 'flat-ui' | 'vs' | 'topcoat' | 'il' | 'websymbol' | 'fontelico' | 'ps' | 'feather' | 'mono-icons' | 'pepicons' | 'fluent-emoji';
|
|
47
|
+
type IconPrefix = 'material-symbols' | 'material-symbols-light' | 'ic' | 'mdi' | 'mdi-light' | 'line-md' | 'solar' | 'tabler' | 'boxicons' | 'mingcute' | 'ri' | 'mynaui' | 'griddy-icons' | 'iconamoon' | 'iconoir' | 'lucide' | 'lucide-lab' | 'uil' | 'tdesign' | 'si' | 'majesticons' | 'gg' | 'flowbite' | 'vadivam' | 'basil' | 'pixelarticons' | 'pixel' | 'akar-icons' | 'ci' | 'proicons' | 'typcn' | 'meteor-icons' | 'prime' | 'circum' | 'fe' | 'eos-icons' | 'bitcoin-icons' | 'humbleicons' | 'uim' | 'uit' | 'uis' | 'gridicons' | 'mi' | 'cuida' | 'weui' | 'duo-icons' | 'svg-spinners' | 'reicon' | 'hugeicons' | 'lets-icons' | 'streamline-ultimate' | 'streamline-plump' | 'streamline-sharp' | 'mage' | 'stash' | 'lineicons' | 'wordpress' | 'icon-park-outline' | 'icon-park-solid' | 'icon-park-twotone' | 'jam' | 'streamline-cyber' | 'guidance' | 'carbon' | 'ion' | 'famicons' | 'ant-design' | 'lsicon' | 'gravity-ui' | 'cil' | 'at-icons' | 'ep' | 'charm' | 'quill' | 'bytesize' | 'bi' | 'streamline-pixel' | 'streamline-block' | 'rivet-icons' | 'nimbus' | 'formkit' | 'fluent' | 'ph' | 'glyphs' | 'glyphs-poly' | 'teenyicons' | 'clarity' | 'streamline-freehand' | 'ix' | 'octicon' | 'memory' | 'system-uicons' | 'radix-icons' | 'zondicons' | 'uiw' | 'codex' | 'ei' | 'heroicons' | 'sidekickicons' | 'pepicons-pop' | 'pepicons-print' | 'pepicons-pencil' | 'f7' | 'pajamas' | 'garden' | 'streamline' | 'streamline-flex' | 'fa7-solid' | 'fa7-regular' | 'picon' | 'ooui' | 'oui' | 'nrk' | 'dinkie-icons' | 'qlementine-icons' | 'streamline-ultimate-color' | 'streamline-plump-color' | 'streamline-freehand-color' | 'streamline-kameleon-color' | 'streamline-stickies-color' | 'fluent-color' | 'streamline-color' | 'streamline-flex-color' | 'streamline-sharp-color' | 'streamline-cyber-color' | 'icon-park' | 'marketeq' | 'vscode-icons' | 'codicon' | 'material-icon-theme' | 'file-icons' | 'devicon' | 'devicon-plain' | 'catppuccin' | 'skill-icons' | 'gcp' | 'k8s' | 'unjs' | 'simple-icons' | 'logos' | 'streamline-logos' | 'cib' | 'fa7-brands' | 'bxl' | 'nonicons' | 'arcticons' | 'thesvg' | 'thesvg-color' | 'selfhst' | 'cbi' | 'brandico' | 'entypo-social' | 'token' | 'token-branded' | 'cryptocurrency' | 'cryptocurrency-color' | 'openmoji' | 'twemoji' | 'noto' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'fxemoji' | 'streamline-emojis' | 'circle-flags' | 'flag' | 'flagpack' | 'cif' | 'pinhead' | 'roentgen' | 'maki' | 'temaki' | 'gis' | 'map' | 'geo' | 'osmic' | 'game-icons' | 'fad' | 'academicons' | 'wi' | 'meteocons' | 'healthicons' | 'medical-icon' | 'covid' | 'ginetex' | 'la' | 'eva' | 'dashicons' | 'flat-color-icons' | 'entypo' | 'foundation' | 'raphael' | 'icons8' | 'iwwa' | 'gala' | 'heroicons-outline' | 'heroicons-solid' | 'bx' | 'bxs' | 'fa6-solid' | 'fa6-regular' | 'fa6-brands' | 'fa-solid' | 'fa-regular' | 'fa-brands' | 'fa' | 'fluent-mdl2' | 'fontisto' | 'icomoon-free' | 'subway' | 'oi' | 'wpf' | 'simple-line-icons' | 'et' | 'el' | 'vaadin' | 'grommet-icons' | 'whh' | 'si-glyph' | 'zmdi' | 'ls' | 'bpmn' | 'flat-ui' | 'vs' | 'topcoat' | 'il' | 'websymbol' | 'fontelico' | 'ps' | 'feather' | 'mono-icons' | 'pepicons' | 'fluent-emoji';
|
|
35
48
|
//#endregion
|
|
36
49
|
//#region src/lib/types.d.ts
|
|
37
50
|
type IconOptions = {
|
package/dist/index.d.mts
CHANGED
|
@@ -1,37 +1,50 @@
|
|
|
1
1
|
import { BaseSchemaDefinition, BaseSchemaDefinition as BaseSchemaDefinition$1, ConditionalPropertyCallbackContext, FieldGroupDefinition, FieldsetDefinition, InitialValueProperty, ObjectOptions, RuleDef, ValidationBuilder } from "sanity";
|
|
2
|
-
|
|
3
2
|
//#region node_modules/.pnpm/@iconify+types@2.0.0/node_modules/@iconify/types/types.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* Icon set information block.
|
|
6
5
|
*/
|
|
7
6
|
interface IconifyInfo {
|
|
8
7
|
// Icon set name.
|
|
9
|
-
name: string;
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
name: string;
|
|
9
|
+
// Total number of icons.
|
|
10
|
+
total?: number;
|
|
11
|
+
// Version string.
|
|
12
|
+
version?: string;
|
|
13
|
+
// Author information.
|
|
12
14
|
author: {
|
|
13
15
|
// Author name.
|
|
14
|
-
name: string;
|
|
16
|
+
name: string;
|
|
17
|
+
// Link to author's website or icon set website.
|
|
15
18
|
url?: string;
|
|
16
|
-
};
|
|
19
|
+
};
|
|
20
|
+
// License
|
|
17
21
|
license: {
|
|
18
22
|
// Human readable license.
|
|
19
|
-
title: string;
|
|
20
|
-
|
|
23
|
+
title: string;
|
|
24
|
+
// SPDX license identifier.
|
|
25
|
+
spdx?: string;
|
|
26
|
+
// License URL.
|
|
21
27
|
url?: string;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
};
|
|
29
|
+
// Array of icons that should be used for samples in icon sets list.
|
|
30
|
+
samples?: string[];
|
|
31
|
+
// Icon grid: number or array of numbers.
|
|
32
|
+
height?: number | number[];
|
|
33
|
+
// Display height for samples: 16 - 24
|
|
34
|
+
displayHeight?: number;
|
|
35
|
+
// Category on Iconify collections list.
|
|
36
|
+
category?: string;
|
|
37
|
+
// List of tags to group similar icon sets.
|
|
38
|
+
tags?: string[];
|
|
39
|
+
// Palette status. True if icons have predefined color scheme, false if icons use currentColor.
|
|
28
40
|
// Ideally, icon set should not mix icons with and without palette to simplify search.
|
|
29
|
-
palette?: boolean;
|
|
41
|
+
palette?: boolean;
|
|
42
|
+
// If true, icon set should not appear in icon sets list.
|
|
30
43
|
hidden?: boolean;
|
|
31
44
|
}
|
|
32
45
|
//#endregion
|
|
33
46
|
//#region src/lib/icon-types.gen.d.ts
|
|
34
|
-
type IconPrefix = 'material-symbols' | 'material-symbols-light' | 'ic' | 'mdi' | 'mdi-light' | 'line-md' | 'solar' | 'tabler' | 'boxicons' | 'mingcute' | 'ri' | 'mynaui' | 'iconamoon' | 'iconoir' | 'lucide' | 'lucide-lab' | 'uil' | 'tdesign' | 'si' | 'majesticons' | 'gg' | 'flowbite' | 'basil' | 'pixelarticons' | 'pixel' | 'akar-icons' | 'ci' | 'proicons' | 'typcn' | 'meteor-icons' | 'prime' | 'circum' | 'fe' | 'eos-icons' | 'bitcoin-icons' | 'humbleicons' | 'uim' | 'uit' | 'uis' | 'gridicons' | 'mi' | 'cuida' | 'weui' | 'duo-icons' | 'svg-spinners' | 'hugeicons' | 'lets-icons' | 'streamline-ultimate' | 'streamline-plump' | 'streamline-sharp' | 'mage' | 'stash' | 'lineicons' | 'wordpress' | 'icon-park-outline' | 'icon-park-solid' | 'icon-park-twotone' | 'jam' | 'streamline-cyber' | 'guidance' | 'carbon' | 'ion' | 'famicons' | 'ant-design' | 'lsicon' | 'gravity-ui' | 'cil' | 'at-icons' | 'ep' | 'charm' | 'quill' | 'bytesize' | 'bi' | 'streamline-pixel' | 'streamline-block' | 'rivet-icons' | 'nimbus' | 'formkit' | 'fluent' | 'ph' | 'glyphs' | 'glyphs-poly' | 'teenyicons' | 'clarity' | 'streamline-freehand' | 'ix' | 'octicon' | 'memory' | 'system-uicons' | 'radix-icons' | 'zondicons' | 'uiw' | 'codex' | 'ei' | 'heroicons' | 'sidekickicons' | 'pepicons-pop' | 'pepicons-print' | 'pepicons-pencil' | 'f7' | 'pajamas' | 'garden' | 'streamline' | 'streamline-flex' | 'fa7-solid' | 'fa7-regular' | 'picon' | 'ooui' | 'oui' | 'nrk' | 'dinkie-icons' | 'qlementine-icons' | 'streamline-ultimate-color' | 'streamline-plump-color' | 'streamline-freehand-color' | 'streamline-kameleon-color' | 'streamline-stickies-color' | 'fluent-color' | 'streamline-color' | 'streamline-flex-color' | 'streamline-sharp-color' | 'streamline-cyber-color' | 'icon-park' | 'marketeq' | 'vscode-icons' | 'codicon' | 'material-icon-theme' | 'file-icons' | 'devicon' | 'devicon-plain' | 'catppuccin' | 'skill-icons' | 'gcp' | 'unjs' | 'simple-icons' | 'logos' | 'streamline-logos' | 'cib' | 'fa7-brands' | 'bxl' | 'nonicons' | 'arcticons' | 'cbi' | 'brandico' | 'entypo-social' | 'token' | 'token-branded' | 'cryptocurrency' | 'cryptocurrency-color' | 'openmoji' | 'twemoji' | 'noto' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'fxemoji' | 'streamline-emojis' | 'circle-flags' | 'flag' | 'flagpack' | 'cif' | 'pinhead' | 'roentgen' | 'maki' | 'temaki' | 'gis' | 'map' | 'geo' | 'game-icons' | 'fad' | 'academicons' | 'wi' | 'meteocons' | 'healthicons' | 'medical-icon' | 'covid' | 'ginetex' | 'la' | 'eva' | 'dashicons' | 'flat-color-icons' | 'entypo' | 'foundation' | 'raphael' | 'icons8' | 'iwwa' | 'gala' | 'heroicons-outline' | 'heroicons-solid' | 'bx' | 'bxs' | 'fa6-solid' | 'fa6-regular' | 'fa6-brands' | 'fa-solid' | 'fa-regular' | 'fa-brands' | 'fa' | 'fluent-mdl2' | 'fontisto' | 'icomoon-free' | 'subway' | 'oi' | 'wpf' | 'simple-line-icons' | 'et' | 'el' | 'vaadin' | 'grommet-icons' | 'whh' | 'si-glyph' | 'zmdi' | 'ls' | 'bpmn' | 'flat-ui' | 'vs' | 'topcoat' | 'il' | 'websymbol' | 'fontelico' | 'ps' | 'feather' | 'mono-icons' | 'pepicons' | 'fluent-emoji';
|
|
47
|
+
type IconPrefix = 'material-symbols' | 'material-symbols-light' | 'ic' | 'mdi' | 'mdi-light' | 'line-md' | 'solar' | 'tabler' | 'boxicons' | 'mingcute' | 'ri' | 'mynaui' | 'griddy-icons' | 'iconamoon' | 'iconoir' | 'lucide' | 'lucide-lab' | 'uil' | 'tdesign' | 'si' | 'majesticons' | 'gg' | 'flowbite' | 'vadivam' | 'basil' | 'pixelarticons' | 'pixel' | 'akar-icons' | 'ci' | 'proicons' | 'typcn' | 'meteor-icons' | 'prime' | 'circum' | 'fe' | 'eos-icons' | 'bitcoin-icons' | 'humbleicons' | 'uim' | 'uit' | 'uis' | 'gridicons' | 'mi' | 'cuida' | 'weui' | 'duo-icons' | 'svg-spinners' | 'reicon' | 'hugeicons' | 'lets-icons' | 'streamline-ultimate' | 'streamline-plump' | 'streamline-sharp' | 'mage' | 'stash' | 'lineicons' | 'wordpress' | 'icon-park-outline' | 'icon-park-solid' | 'icon-park-twotone' | 'jam' | 'streamline-cyber' | 'guidance' | 'carbon' | 'ion' | 'famicons' | 'ant-design' | 'lsicon' | 'gravity-ui' | 'cil' | 'at-icons' | 'ep' | 'charm' | 'quill' | 'bytesize' | 'bi' | 'streamline-pixel' | 'streamline-block' | 'rivet-icons' | 'nimbus' | 'formkit' | 'fluent' | 'ph' | 'glyphs' | 'glyphs-poly' | 'teenyicons' | 'clarity' | 'streamline-freehand' | 'ix' | 'octicon' | 'memory' | 'system-uicons' | 'radix-icons' | 'zondicons' | 'uiw' | 'codex' | 'ei' | 'heroicons' | 'sidekickicons' | 'pepicons-pop' | 'pepicons-print' | 'pepicons-pencil' | 'f7' | 'pajamas' | 'garden' | 'streamline' | 'streamline-flex' | 'fa7-solid' | 'fa7-regular' | 'picon' | 'ooui' | 'oui' | 'nrk' | 'dinkie-icons' | 'qlementine-icons' | 'streamline-ultimate-color' | 'streamline-plump-color' | 'streamline-freehand-color' | 'streamline-kameleon-color' | 'streamline-stickies-color' | 'fluent-color' | 'streamline-color' | 'streamline-flex-color' | 'streamline-sharp-color' | 'streamline-cyber-color' | 'icon-park' | 'marketeq' | 'vscode-icons' | 'codicon' | 'material-icon-theme' | 'file-icons' | 'devicon' | 'devicon-plain' | 'catppuccin' | 'skill-icons' | 'gcp' | 'k8s' | 'unjs' | 'simple-icons' | 'logos' | 'streamline-logos' | 'cib' | 'fa7-brands' | 'bxl' | 'nonicons' | 'arcticons' | 'thesvg' | 'thesvg-color' | 'selfhst' | 'cbi' | 'brandico' | 'entypo-social' | 'token' | 'token-branded' | 'cryptocurrency' | 'cryptocurrency-color' | 'openmoji' | 'twemoji' | 'noto' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'fxemoji' | 'streamline-emojis' | 'circle-flags' | 'flag' | 'flagpack' | 'cif' | 'pinhead' | 'roentgen' | 'maki' | 'temaki' | 'gis' | 'map' | 'geo' | 'osmic' | 'game-icons' | 'fad' | 'academicons' | 'wi' | 'meteocons' | 'healthicons' | 'medical-icon' | 'covid' | 'ginetex' | 'la' | 'eva' | 'dashicons' | 'flat-color-icons' | 'entypo' | 'foundation' | 'raphael' | 'icons8' | 'iwwa' | 'gala' | 'heroicons-outline' | 'heroicons-solid' | 'bx' | 'bxs' | 'fa6-solid' | 'fa6-regular' | 'fa6-brands' | 'fa-solid' | 'fa-regular' | 'fa-brands' | 'fa' | 'fluent-mdl2' | 'fontisto' | 'icomoon-free' | 'subway' | 'oi' | 'wpf' | 'simple-line-icons' | 'et' | 'el' | 'vaadin' | 'grommet-icons' | 'whh' | 'si-glyph' | 'zmdi' | 'ls' | 'bpmn' | 'flat-ui' | 'vs' | 'topcoat' | 'il' | 'websymbol' | 'fontelico' | 'ps' | 'feather' | 'mono-icons' | 'pepicons' | 'fluent-emoji';
|
|
35
48
|
//#endregion
|
|
36
49
|
//#region src/lib/types.d.ts
|
|
37
50
|
type IconOptions = {
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { definePlugin, set, unset } from "sanity";
|
|
2
|
-
import { Box, Button, Card, Flex, Grid,
|
|
2
|
+
import { Box, Button, Card, Flex, Grid, Stack, Text, TextInput, ThemeProvider } from "@sanity/ui";
|
|
3
3
|
import { buildTheme } from "@sanity/ui/theme";
|
|
4
4
|
import { forwardRef, memo, useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
|
|
5
|
+
import { Popover } from "@sanity/ui/popover";
|
|
6
|
+
import { useToast } from "@sanity/ui/toast";
|
|
5
7
|
import { useCombobox } from "downshift";
|
|
6
8
|
import { match } from "ts-pattern";
|
|
7
9
|
import { QueryClient, QueryClientProvider, keepPreviousData, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
@@ -9,7 +11,7 @@ import { useDebounce } from "use-debounce";
|
|
|
9
11
|
import styled from "styled-components";
|
|
10
12
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
13
|
import { Icon } from "@iconify/react";
|
|
12
|
-
import { TrashIcon } from "@sanity/icons";
|
|
14
|
+
import { TrashIcon } from "@sanity/icons/Trash";
|
|
13
15
|
import { stringToIcon } from "@iconify/utils";
|
|
14
16
|
import { sentenceCase } from "change-case";
|
|
15
17
|
//#region src/lib/api.ts
|
|
@@ -56,7 +58,7 @@ function useSearch({ collections }) {
|
|
|
56
58
|
},
|
|
57
59
|
enabled: debouncedTerm.length > 0,
|
|
58
60
|
placeholderData: keepPreviousData,
|
|
59
|
-
staleTime:
|
|
61
|
+
staleTime: 3e5
|
|
60
62
|
});
|
|
61
63
|
return {
|
|
62
64
|
term,
|
|
@@ -326,15 +328,16 @@ const IconifyInput = memo(function IconifyInput(props) {
|
|
|
326
328
|
const options = schemaType.options;
|
|
327
329
|
const collections = !!options?.collections?.length && options.collections || !!config?.collections?.length && config.collections || null;
|
|
328
330
|
const showName = options?.showName ?? config?.showName ?? false;
|
|
331
|
+
const handleSelect = useCallback((icon) => {
|
|
332
|
+
pushChange(icon === "" ? unset() : set(icon, ["name"]));
|
|
333
|
+
}, [pushChange]);
|
|
329
334
|
return /* @__PURE__ */ jsx(QueryClientProvider$1, { children: /* @__PURE__ */ jsx(ThemeProvider, {
|
|
330
335
|
theme,
|
|
331
336
|
children: /* @__PURE__ */ jsxs(Stack, {
|
|
332
|
-
|
|
337
|
+
gap: 2,
|
|
333
338
|
children: [/* @__PURE__ */ jsx(IconifyCombobox, {
|
|
334
339
|
selectedIcon,
|
|
335
|
-
onSelect:
|
|
336
|
-
pushChange(icon === "" ? unset() : set(icon, ["name"]));
|
|
337
|
-
}, [pushChange]),
|
|
340
|
+
onSelect: handleSelect,
|
|
338
341
|
collections,
|
|
339
342
|
studioElementProps: elementProps,
|
|
340
343
|
fieldFocused: focused
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sanity-plugin-iconify",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Icon picker based on Iconify",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -65,51 +65,52 @@
|
|
|
65
65
|
"browserslist": "extends @sanity/browserslist-config",
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@iconify/react": "^6.0.2",
|
|
68
|
-
"@iconify/utils": "^3.1.
|
|
69
|
-
"@sanity/icons": "^
|
|
68
|
+
"@iconify/utils": "^3.1.4",
|
|
69
|
+
"@sanity/icons": "^5.2.1",
|
|
70
70
|
"@sanity/incompatible-plugin": "^1.0.5",
|
|
71
|
-
"@
|
|
72
|
-
"@tanstack/react-query": "^5.101.0",
|
|
71
|
+
"@tanstack/react-query": "^5.101.4",
|
|
73
72
|
"change-case": "^5.4.4",
|
|
74
|
-
"downshift": "^9.
|
|
73
|
+
"downshift": "^9.4.0",
|
|
75
74
|
"ts-pattern": "^5.9.0",
|
|
76
75
|
"use-debounce": "^10.1.1"
|
|
77
76
|
},
|
|
78
77
|
"devDependencies": {
|
|
79
|
-
"@commitlint/cli": "^21.
|
|
80
|
-
"@commitlint/config-conventional": "^21.
|
|
81
|
-
"@iconify/json": "^2.2.
|
|
78
|
+
"@commitlint/cli": "^21.2.2",
|
|
79
|
+
"@commitlint/config-conventional": "^21.2.2",
|
|
80
|
+
"@iconify/json": "^2.2.517",
|
|
82
81
|
"@iconify/types": "^2.0.0",
|
|
83
|
-
"@playwright/test": "^1.
|
|
84
|
-
"@release-it/conventional-changelog": "^
|
|
82
|
+
"@playwright/test": "^1.62.1",
|
|
83
|
+
"@release-it/conventional-changelog": "^12.0.0",
|
|
85
84
|
"@sanity/plugin-kit": "^4.0.20",
|
|
86
|
-
"@
|
|
87
|
-
"@tanstack/
|
|
88
|
-
"@
|
|
85
|
+
"@sanity/ui": "^4.0.3",
|
|
86
|
+
"@tanstack/eslint-plugin-query": "^5.101.4",
|
|
87
|
+
"@tanstack/react-query-devtools": "^5.101.4",
|
|
88
|
+
"@types/react": "^19.2.18",
|
|
89
89
|
"@types/styled-components": "^5.1.36",
|
|
90
|
-
"@vitejs/plugin-react": "^6.0.
|
|
91
|
-
"@vitest/ui": "^4.1.
|
|
90
|
+
"@vitejs/plugin-react": "^6.0.5",
|
|
91
|
+
"@vitest/ui": "^4.1.10",
|
|
92
92
|
"@waspeer/config": "^3.0.0",
|
|
93
|
-
"eslint": "^10.1
|
|
94
|
-
"lefthook": "^2.1.
|
|
95
|
-
"npm-run-all2": "^9.0.
|
|
96
|
-
"prettier": "^3.
|
|
97
|
-
"publint": "^0.3.
|
|
98
|
-
"react": "^19.2.
|
|
99
|
-
"react-dom": "^19.2.
|
|
100
|
-
"react-is": "^19.2.
|
|
101
|
-
"release-it": "^
|
|
93
|
+
"eslint": "^10.8.1",
|
|
94
|
+
"lefthook": "^2.1.10",
|
|
95
|
+
"npm-run-all2": "^9.0.3",
|
|
96
|
+
"prettier": "^3.9.6",
|
|
97
|
+
"publint": "^0.3.23",
|
|
98
|
+
"react": "^19.2.8",
|
|
99
|
+
"react-dom": "^19.2.8",
|
|
100
|
+
"react-is": "^19.2.8",
|
|
101
|
+
"release-it": "^21.0.2",
|
|
102
102
|
"rimraf": "^6.1.3",
|
|
103
|
-
"sanity": "^6.
|
|
104
|
-
"tsdown": "^0.22.
|
|
105
|
-
"tsx": "^4.
|
|
106
|
-
"typescript": "^6.0.
|
|
107
|
-
"vite": "^8.
|
|
108
|
-
"vitest": "^4.1.
|
|
103
|
+
"sanity": "^6.9.2",
|
|
104
|
+
"tsdown": "^0.22.14",
|
|
105
|
+
"tsx": "^4.23.12",
|
|
106
|
+
"typescript": "^6.0.3",
|
|
107
|
+
"vite": "^8.2.1",
|
|
108
|
+
"vitest": "^4.1.10"
|
|
109
109
|
},
|
|
110
110
|
"peerDependencies": {
|
|
111
|
+
"@sanity/ui": "^4.0.1",
|
|
111
112
|
"react": "^19.2",
|
|
112
|
-
"sanity": "^
|
|
113
|
+
"sanity": "^6.9.2",
|
|
113
114
|
"styled-components": "^6"
|
|
114
115
|
},
|
|
115
116
|
"packageManager": "pnpm@10.17.0",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Popover
|
|
1
|
+
import { Popover } from '@sanity/ui/popover';
|
|
2
|
+
import { useToast } from '@sanity/ui/toast';
|
|
2
3
|
import { useCombobox } from 'downshift';
|
|
3
4
|
import { memo, useCallback, useEffect, useId, useRef } from 'react';
|
|
4
5
|
import type { ObjectInputProps } from 'sanity';
|
package/src/iconify-input.tsx
CHANGED
|
@@ -36,7 +36,7 @@ export const IconifyInput = memo(function IconifyInput(props: IconifyInputProps)
|
|
|
36
36
|
return (
|
|
37
37
|
<QueryClientProvider>
|
|
38
38
|
<ThemeProvider theme={theme}>
|
|
39
|
-
<Stack
|
|
39
|
+
<Stack gap={2}>
|
|
40
40
|
<IconifyCombobox
|
|
41
41
|
selectedIcon={selectedIcon}
|
|
42
42
|
onSelect={handleSelect}
|
package/src/lib/api.ts
CHANGED
|
@@ -44,7 +44,6 @@ export function useSearch({ collections }: { collections: string[] | null }) {
|
|
|
44
44
|
[setDebouncedTerm],
|
|
45
45
|
);
|
|
46
46
|
|
|
47
|
-
// eslint-disable-next-line @tanstack/query/exhaustive-deps -- queryClient from useQueryClient() is a stable reference, not a query dependency
|
|
48
47
|
const { isLoading, isError, error, data, isPlaceholderData } = useQuery<string[], Error>({
|
|
49
48
|
queryKey: ['search', collections, debouncedTerm],
|
|
50
49
|
queryFn: async ({ signal }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type IconPrefix = 'material-symbols' | 'material-symbols-light' | 'ic' | 'mdi' | 'mdi-light' | 'line-md' | 'solar' | 'tabler' | 'boxicons' | 'mingcute' | 'ri' | 'mynaui' | 'iconamoon' | 'iconoir' | 'lucide' | 'lucide-lab' | 'uil' | 'tdesign' | 'si' | 'majesticons' | 'gg' | 'flowbite' | 'basil' | 'pixelarticons' | 'pixel' | 'akar-icons' | 'ci' | 'proicons' | 'typcn' | 'meteor-icons' | 'prime' | 'circum' | 'fe' | 'eos-icons' | 'bitcoin-icons' | 'humbleicons' | 'uim' | 'uit' | 'uis' | 'gridicons' | 'mi' | 'cuida' | 'weui' | 'duo-icons' | 'svg-spinners' | 'hugeicons' | 'lets-icons' | 'streamline-ultimate' | 'streamline-plump' | 'streamline-sharp' | 'mage' | 'stash' | 'lineicons' | 'wordpress' | 'icon-park-outline' | 'icon-park-solid' | 'icon-park-twotone' | 'jam' | 'streamline-cyber' | 'guidance' | 'carbon' | 'ion' | 'famicons' | 'ant-design' | 'lsicon' | 'gravity-ui' | 'cil' | 'at-icons' | 'ep' | 'charm' | 'quill' | 'bytesize' | 'bi' | 'streamline-pixel' | 'streamline-block' | 'rivet-icons' | 'nimbus' | 'formkit' | 'fluent' | 'ph' | 'glyphs' | 'glyphs-poly' | 'teenyicons' | 'clarity' | 'streamline-freehand' | 'ix' | 'octicon' | 'memory' | 'system-uicons' | 'radix-icons' | 'zondicons' | 'uiw' | 'codex' | 'ei' | 'heroicons' | 'sidekickicons' | 'pepicons-pop' | 'pepicons-print' | 'pepicons-pencil' | 'f7' | 'pajamas' | 'garden' | 'streamline' | 'streamline-flex' | 'fa7-solid' | 'fa7-regular' | 'picon' | 'ooui' | 'oui' | 'nrk' | 'dinkie-icons' | 'qlementine-icons' | 'streamline-ultimate-color' | 'streamline-plump-color' | 'streamline-freehand-color' | 'streamline-kameleon-color' | 'streamline-stickies-color' | 'fluent-color' | 'streamline-color' | 'streamline-flex-color' | 'streamline-sharp-color' | 'streamline-cyber-color' | 'icon-park' | 'marketeq' | 'vscode-icons' | 'codicon' | 'material-icon-theme' | 'file-icons' | 'devicon' | 'devicon-plain' | 'catppuccin' | 'skill-icons' | 'gcp' | 'unjs' | 'simple-icons' | 'logos' | 'streamline-logos' | 'cib' | 'fa7-brands' | 'bxl' | 'nonicons' | 'arcticons' | 'cbi' | 'brandico' | 'entypo-social' | 'token' | 'token-branded' | 'cryptocurrency' | 'cryptocurrency-color' | 'openmoji' | 'twemoji' | 'noto' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'fxemoji' | 'streamline-emojis' | 'circle-flags' | 'flag' | 'flagpack' | 'cif' | 'pinhead' | 'roentgen' | 'maki' | 'temaki' | 'gis' | 'map' | 'geo' | 'game-icons' | 'fad' | 'academicons' | 'wi' | 'meteocons' | 'healthicons' | 'medical-icon' | 'covid' | 'ginetex' | 'la' | 'eva' | 'dashicons' | 'flat-color-icons' | 'entypo' | 'foundation' | 'raphael' | 'icons8' | 'iwwa' | 'gala' | 'heroicons-outline' | 'heroicons-solid' | 'bx' | 'bxs' | 'fa6-solid' | 'fa6-regular' | 'fa6-brands' | 'fa-solid' | 'fa-regular' | 'fa-brands' | 'fa' | 'fluent-mdl2' | 'fontisto' | 'icomoon-free' | 'subway' | 'oi' | 'wpf' | 'simple-line-icons' | 'et' | 'el' | 'vaadin' | 'grommet-icons' | 'whh' | 'si-glyph' | 'zmdi' | 'ls' | 'bpmn' | 'flat-ui' | 'vs' | 'topcoat' | 'il' | 'websymbol' | 'fontelico' | 'ps' | 'feather' | 'mono-icons' | 'pepicons' | 'fluent-emoji';
|
|
1
|
+
export type IconPrefix = 'material-symbols' | 'material-symbols-light' | 'ic' | 'mdi' | 'mdi-light' | 'line-md' | 'solar' | 'tabler' | 'boxicons' | 'mingcute' | 'ri' | 'mynaui' | 'griddy-icons' | 'iconamoon' | 'iconoir' | 'lucide' | 'lucide-lab' | 'uil' | 'tdesign' | 'si' | 'majesticons' | 'gg' | 'flowbite' | 'vadivam' | 'basil' | 'pixelarticons' | 'pixel' | 'akar-icons' | 'ci' | 'proicons' | 'typcn' | 'meteor-icons' | 'prime' | 'circum' | 'fe' | 'eos-icons' | 'bitcoin-icons' | 'humbleicons' | 'uim' | 'uit' | 'uis' | 'gridicons' | 'mi' | 'cuida' | 'weui' | 'duo-icons' | 'svg-spinners' | 'reicon' | 'hugeicons' | 'lets-icons' | 'streamline-ultimate' | 'streamline-plump' | 'streamline-sharp' | 'mage' | 'stash' | 'lineicons' | 'wordpress' | 'icon-park-outline' | 'icon-park-solid' | 'icon-park-twotone' | 'jam' | 'streamline-cyber' | 'guidance' | 'carbon' | 'ion' | 'famicons' | 'ant-design' | 'lsicon' | 'gravity-ui' | 'cil' | 'at-icons' | 'ep' | 'charm' | 'quill' | 'bytesize' | 'bi' | 'streamline-pixel' | 'streamline-block' | 'rivet-icons' | 'nimbus' | 'formkit' | 'fluent' | 'ph' | 'glyphs' | 'glyphs-poly' | 'teenyicons' | 'clarity' | 'streamline-freehand' | 'ix' | 'octicon' | 'memory' | 'system-uicons' | 'radix-icons' | 'zondicons' | 'uiw' | 'codex' | 'ei' | 'heroicons' | 'sidekickicons' | 'pepicons-pop' | 'pepicons-print' | 'pepicons-pencil' | 'f7' | 'pajamas' | 'garden' | 'streamline' | 'streamline-flex' | 'fa7-solid' | 'fa7-regular' | 'picon' | 'ooui' | 'oui' | 'nrk' | 'dinkie-icons' | 'qlementine-icons' | 'streamline-ultimate-color' | 'streamline-plump-color' | 'streamline-freehand-color' | 'streamline-kameleon-color' | 'streamline-stickies-color' | 'fluent-color' | 'streamline-color' | 'streamline-flex-color' | 'streamline-sharp-color' | 'streamline-cyber-color' | 'icon-park' | 'marketeq' | 'vscode-icons' | 'codicon' | 'material-icon-theme' | 'file-icons' | 'devicon' | 'devicon-plain' | 'catppuccin' | 'skill-icons' | 'gcp' | 'k8s' | 'unjs' | 'simple-icons' | 'logos' | 'streamline-logos' | 'cib' | 'fa7-brands' | 'bxl' | 'nonicons' | 'arcticons' | 'thesvg' | 'thesvg-color' | 'selfhst' | 'cbi' | 'brandico' | 'entypo-social' | 'token' | 'token-branded' | 'cryptocurrency' | 'cryptocurrency-color' | 'openmoji' | 'twemoji' | 'noto' | 'fluent-emoji-flat' | 'fluent-emoji-high-contrast' | 'noto-v1' | 'emojione' | 'emojione-monotone' | 'emojione-v1' | 'fxemoji' | 'streamline-emojis' | 'circle-flags' | 'flag' | 'flagpack' | 'cif' | 'pinhead' | 'roentgen' | 'maki' | 'temaki' | 'gis' | 'map' | 'geo' | 'osmic' | 'game-icons' | 'fad' | 'academicons' | 'wi' | 'meteocons' | 'healthicons' | 'medical-icon' | 'covid' | 'ginetex' | 'la' | 'eva' | 'dashicons' | 'flat-color-icons' | 'entypo' | 'foundation' | 'raphael' | 'icons8' | 'iwwa' | 'gala' | 'heroicons-outline' | 'heroicons-solid' | 'bx' | 'bxs' | 'fa6-solid' | 'fa6-regular' | 'fa6-brands' | 'fa-solid' | 'fa-regular' | 'fa-brands' | 'fa' | 'fluent-mdl2' | 'fontisto' | 'icomoon-free' | 'subway' | 'oi' | 'wpf' | 'simple-line-icons' | 'et' | 'el' | 'vaadin' | 'grommet-icons' | 'whh' | 'si-glyph' | 'zmdi' | 'ls' | 'bpmn' | 'flat-ui' | 'vs' | 'topcoat' | 'il' | 'websymbol' | 'fontelico' | 'ps' | 'feather' | 'mono-icons' | 'pepicons' | 'fluent-emoji';
|
package/src/lib/types.ts
CHANGED
|
@@ -49,9 +49,7 @@ export type IconConditionalPropertyCallbackContext = Omit<
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export type IconConditionalProperty =
|
|
52
|
-
| boolean
|
|
53
|
-
| ((context: IconConditionalPropertyCallbackContext) => boolean)
|
|
54
|
-
| undefined;
|
|
52
|
+
boolean | ((context: IconConditionalPropertyCallbackContext) => boolean) | undefined;
|
|
55
53
|
|
|
56
54
|
export interface IconDefinition extends Omit<BaseSchemaDefinition, 'hidden' | 'readOnly'> {
|
|
57
55
|
type: 'icon';
|